diff --git a/agc_2-X/branches/agc_2.2.0/INSTALL b/agc_2-X/branches/agc_2.2.0/INSTALL new file mode 100644 index 00000000..0b873b1f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/INSTALL @@ -0,0 +1,17 @@ +################ INSTALL + +For in-depth installation instructions read the docs/SCRATCH_INSTALL.txt file + +For more brief install instructions read the docs/BASE_INSTALL.txt file + +For Requirements of astGUIclient/VICIDIAL read the docs/REQUIREMENTS.txt file + +For installtion on Ubuntu Linux read the docs/Ubuntu_install.txt + + +To place the astGUIclient/VICIDIAL files where they belong on the server: +run the install.pl script from this directory: +perl install.pl + + +If you are upgrading from a previous version, see the UPGRADE file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/active_list_refresh.php new file mode 100644 index 00000000..e33f0e76 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Mostrar Lista: "; +if ($ADD==1) {echo "Extensões Ativas";} +if ($ADD==2) {echo "Extensões Ocupadas";} +if ($ADD==3) {echo "Linhas externas";} +if ($ADD==4) {echo "Extensões Locais";} +if ($ADD==5) {echo "Conferencias";} +if ($ADD==99999) {echo "AJUDA";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/astguiclient.php new file mode 100644 index 00000000..c02f2512 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Você fez o logoff. Obrigado\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "astGUIclient web client: Login\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login
 
Login do Usuário:
Senha do Usuário:
Login do Telefone:
Senha do Telefone:

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "astGUIclient web client: Login do Telefone\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Brazil
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Login do Telefone
 
Login do Telefone:
Senha do Telefone:

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "astGUIclient web client: Login do Telefone\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login do Telefone
 
Desculpe seu login de telefone e senha não estão ativos nesta campanha, por favor tente novamente:
 
Login do Telefone:
Senha do Telefone:

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "astGUIclient web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +SAIR
\n"; ?> +
Painel PrincipalLinhas Ativas no PainelPainel de ConferênciasVerificar Caixa PostalChamadas Ativas
+
+ + +

Logout
+
+ + +
TRUNK DESLIGAR

+ Active Trunks Menu
+ Desligar o Canal   |   + Capturar o Canal   |   + Ouvir o Canal   |   + Atualizar   |   + Voltar a página principal +
+
+ + +
DESLIGAR LOCAL

+ Menu Local Ativo
+ Desligar Local   |   + Capturar Local   |   + Ouvir Local   |   + Atualizar   |   + Voltar a página principal +
+
+ + + + + + + +
TRANSFERIR CHAMADAS ATIVAS
Canal a ser transferido: Canal
Extensões:
Extensões do Menu
+
+ Enviar para a extensão selecionada

+ Enviar para a caixa postal selecionada

+ Envie para este número:


+ Atualizar


+ Voltar a página principal

+
Conferencias:
(Clique no número abaixo para enviar a conferência)
Enviar meu canal para
Menu das conferências
+
+ + + + + +
Discar a extensão local
Telefone ligando de: Canal
Extensões:
Extensões do Menu
+
+ Ligar para a extensão selecionada

+ Ligar para a caixa postal selecionada

+ Atualizar


+ Voltar a página principal

+
+
+ + +
CHAMADAS EM ESPERA:
+ Voltar a página principal

+
+
+ + + + + + + + + + + + + + + +
  +
CAIXA POSTAL     NOVO:     VELHO:             DISCAGEM MANUAL       DIAL
CHAMADAS EM ESPERA: 0                DISCAR A EXTENSÃO LOCAL
CHAMADAS SAINTES:
CHAMADAS ENTRANTES:
Versão do cliente web do astGUIClient: CONFIGURAÇÃO:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
FAVORITOS       editar
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
FAVORITOS

 
PARA ENVIAR MODIFICACOES FAVORITAS E NECESSARIO FAZER O SAIR
VOLTAR A TELA PRINCIPAL - as alterações serão ignoradas
+
+ +
+ + + + + + + + + + + + + +
+BATENTE | INICIAR     Atualizar a taxa: 1000 ms Mais rápido | Mais devagar

+
Inicializando..
+
Extensões Ativas
+ATUALIZAR | +ORDEM | +
Linhas externas
+ATUALIZAR | +ORDEM | +
Extensões Locais
+ATUALIZAR | +ORDEM | +
+ Data vai aqui

+
+ Data vai aqui

Atividade do Tronco +
+ Data vai aqui

Atividade Local +
+
+ + + + +
+ + +Lista das conferências + + + +
+Clique no número da conferência, a esquerda, para entrar na conferência +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/call_log_display.php new file mode 100644 index 00000000..17786b48 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Registro de Ligações"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten não é válido ou protocolo $protocol não é válido\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/conf_exten_check.php new file mode 100644 index 00000000..3ccfd0a1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Verificação da Extensão de Conferência"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten não é válido\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent isligadois hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Solicita, em fila: $RingCalls";} + else {$RingCalls = "Solicita, em fila: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|INICIAR",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_SAIR';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$CanalA[$counter] ~"; + # echo "$CanalA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten não é válido or Exten $exten não é válido\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Conferencia $conf_exten já foi registrado para $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/inbound_popup.php new file mode 100644 index 00000000..aec91725 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +CHAMADA ENTRANDO"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

CHAMADA ENTRANDO

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid não é válido\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Canal: $row[1]
CallerID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Canal=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "CUSTOMIZADO - \n"; + + echo "
Número Discado: $row[8]
Notas:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "DESLIGAR - \n"; + echo "ENVIAR PARA MINHA CAIXA POSTAL\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/live_exten_check.php new file mode 100644 index 00000000..a34ca68c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Verificação de extensões ativas"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten não é válido ou protocolo $protocol não é válido\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/manager_send.php new file mode 100644 index 00000000..45526668 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Gerente Envia: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AJUDA";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten não é válido or queryCID $queryCID não é válido, Originate comando não inserido\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando enviado para Exten $exten Canal $channelligado$server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "extenName $extenName Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "\nOriginateName Action não enviado\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "extenName $extenName Deve ser definido\n"; + echo "exten $exten Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "\nOriginateNameVmail Action não enviado\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten não é válido or queryCID $queryCID não é válido, Originate comando não inserido\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Você não tem permissão para discar para sessões de outro agente $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando enviado para Exten $exten Canal $channelligado$server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten não é válido or ext_context $ext_context or queryCID $queryCID não é válido, Hangup comando não inserido\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Canal $channel não é válido or queryCID $queryCID não é válido, Hangup comando não inserido\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel não está ativoligado$call_server_ip, Checking Live Canal...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Canal $channel não está ativoligado$call_server_ip, Hangup comando não inserido $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Canal $channel in use by another agentligado$call_server_ip, Hangup comando não inserido $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup comando enviado para Canal $channelligado$call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "exten $exten Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "auto_dial_level $auto_dial_level Deve ser definido\n"; + echo "campaign $campaign Deve ser definido\n"; + echo "uniqueid $uniqueid Deve ser definido\n"; + echo "lead_id $lead_id Deve ser definido\n"; + echo "\nRedirectVD Action não enviado\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "exten $exten Deve ser definido\n"; + echo "extenName $extenName Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "parkedby $parkedby Deve ser definido\n"; + echo "\nRedirectToPark Action não enviado\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "exten $exten Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "\nRedirectFromPark Action não enviado\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "extenName $extenName Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "\nRedirectName Action não enviado\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "extenName $extenName Deve ser definido\n"; + echo "exten $exten Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "\nRedirectNameVmail Action não enviado\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "ExtraCanal $extrachannel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "exten $exten Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "\nRedirect Action não enviado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conferenceligado$server_ip, Redirect comando não inserido\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não foi possível achar uma conferência vazialigado$server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canal $channel não está ativoligado$call_server_ip, Redirect comando não inserido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canal $channel não está ativoligado$server_ip, Redirect comando não inserido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect comando não inserido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX comando enviado para Canal $channelligado$call_server_ip and \nHungup $extrachannelligado$server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channelligado$call_server_ip, Hungup $extrachannelligado$server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channelligado$server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "ExtraCanal $extrachannel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "exten $exten Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "session_id $session_id Deve ser definido\n"; + echo "\nRedirect Action não enviado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conferenceligado$server_ip, Redirect comando não inserido\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não foi possível achar uma conferência vazialigado$server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canal $channel não está ativoligado$call_server_ip, Redirect comando não inserido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canal $channel não está ativoligado$server_ip, Redirect comando não inserido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está ativoligado$server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra comando enviado para Canal $channel and \nExtraCanal $extrachannel\n to $extenligado$server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $extenligado$server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra comando enviado para Canal $channelligado$call_server_ip and \nExtraCanal $extrachannel\n to $extenligado$server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma dessas variáveis não é válido:\n"; + echo "Canal $channel Deve ser maior que 2 caracteres\n"; + echo "queryCID $queryCID Deve ser maior que 14 caracateres\n"; + echo "exten $exten Deve ser definido\n"; + echo "ext_context $ext_context Deve ser definido\n"; + echo "ext_priority $ext_priority Deve ser definido\n"; + echo "\nRedirect Action não enviado\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canal $channel não está ativoligado$server_ip, Redirect comando não inserido\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect comando enviado para Canal $channelligado$server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canal $channel não é válido or queryCID $queryCID não é válido or filename: $filename não é válido, $ACTION comando não inserido\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canal $channel não está ativoligado$server_ip, $ACTION comando não inserido\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION comando enviado para Canal $channelligado$server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canal $channel não é válido or exten $exten não é válido or filename: $filename não é válido, $ACTION comando não inserido\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings goingligadoin this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION comando enviado para Canal $channelligado$server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n AS GRAVAÇÕES VÃO DURAR 60 MINUTOS\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Conferencia $exten, Stage $stage não é válido or queryCID $queryCID não é válido, Originate comando não inserido\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume comando enviado para Conferencia $exten, Stage $stage Canal $channelligado$server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/park_calls_display.php new file mode 100644 index 00000000..8d116875 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Mostra as ligações em espera"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten não é válido ou protocolo $protocol não é válido\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/timeclock.php new file mode 100644 index 00000000..ecf82225 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "O usuário ea senha que você digitou não são ativos no sistema
Por favor, tente novamente:"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Login do Usuário:
Senha do Usuário:
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='INICIAR', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='INICIAR'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'INICIAR') ) + { + ### You cannot log in or out within 30segundos of your last login/logout + $VDdisplayMESSAGE = "Você não pode efetuar login ou para fora dentro de 30 segundos do seu último login ou logout"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Login do Usuário:
Senha do Usuário:
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOSAIR') or ($status=='INICIAR') or ($status=='SAIR') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Você tem agora autenticado-out"; + $LOGtimeMESSAGE = "Você saiu em$NOW_TIME
Quantidade de tempo que foram registradas em:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='SAIR', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='SAIR', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='SAIR', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOSAIR') or ($status=='INICIAR') or ($status=='SAIR') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERRO: timeclock entrada do log já realizados:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "BACK TO Agent Login Screen";} + if ($referrer=='admin') + {$BACKlink = "Retornar para Administração";} + if ($referrer=='welcome') + {$BACKlink = "ANTERIOR a tela Bem-vindo";} + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOSAIR') or ($status=='INICIAR') or ($status=='SAIR') ) + { + $VDdisplayMESSAGE = "Vez desde que foi registrado em:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Você última autenticado-out em:$last_action_date

LOGIN Clique abaixo para log-in"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Quantidade de tempo que tem sido registrado em:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'SAIR'; + $LOGtimeMESSAGE = "Você autenticado-nos em: $last_action_date
Quantidade de tempo que tem sido registrado em:$totTIME_HMS

SAIR Clique abaixo para log-out"; + } + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Login do Usuário:
Senha do Usuário:
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vdc_db_query.php new file mode 100644 index 00000000..a27d1852 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script de consulta ao banco de dados"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('SAIR',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("INICIAR|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("INICIAR|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERRO: Não existem Shifts activado para o Grupo de Usuários\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERRO: Você não tem permissão para iniciar sessão no para fora do seu turno\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

GERENTE Override:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "GerenteLogin:
\n"; + $VDdisplayMESSAGE.= "GerenteSenha:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Escolha do Grupo $closer_choice não é válido\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Escolha do Grupo $closer_choice foi registrado para o usuário $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories não é válido\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories foi registrado para o usuário $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "LISTA DE DISCAGEM VAZIA\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context não é válido\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMERO\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMERO\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NUMERO NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST CHAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST CHAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CHAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "LISTA DE DISCAGEM VAZIA\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "TELEFONE ALTERNATIVO NUMERO STATUS NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count não é válido\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "TELEFONE ALTERNATIVO NUMERO STATUS CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage não é válido\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context não é válido\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " CHAMADA NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context não é válido\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CHAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID não é válido\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "REGISTRO NÃO DEFINIDO\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign não é válido\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inserido: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "REGISTRO NÃO DEFINIDO\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Inserido: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "REGISTRO NÃO DEFINIDO\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "REGISTRO NÃO DEFINIDO\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id não é válido\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inserido: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "REGISTRO NÃO DEFINIDO\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "REGISTRO NÃO DEFINIDO\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_BATENTE|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|REGISTRO_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campanha $campaign não é válido\n"; + echo "lead_id $lead_id não é válido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campanha $campaign não é válido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then sendligadoto vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If CHAMADABK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $userligado$server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten não é válido\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a SAIR record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','SAIR','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservationligadothe vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id não é válido\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### CHAMADABACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### INICIAR Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Usuário $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Ultimo Attempt, Date of Ultimo Non-Contact, Date of Ultimo Contact, Date of Ultimo Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' foi modificado para ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id não é válido\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage não é válido\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' está agora com o status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list não é válido\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status não é válido\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### INICIAR QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pausa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Chamadas na fila Ver condicionada para esta campanha\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic dataligadocalls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more infoligadothe calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           CHAMADA GROUP     TYPE  
TAKE CHAMADA     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Chamadas na fila Ver condicionada para esta campanha\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vicidial.php new file mode 100644 index 00000000..3ce6799c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Você fez o logoff. Obrigado\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show callsligadohold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofsegundos for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign nameligadologin pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DSTligadoserver for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a DISCAR link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookupsligadocampaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Desligar Cliente +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TelefoneSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT DISCAR by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Re-Login\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Brazil
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Re-Login
 
Login do Telefone:
Senha do Telefone:
Login do Usuário:
Senha do Usuário:
Campanha: $camp_form_code
  \n"; +echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Login da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Login do Usuário

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login da Campanha
 
Login do Usuário:
Senha do Usuário:
Campanha: $camp_form_code
  \n"; + echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Login\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login
 
Login do Telefone:
Senha do Telefone:
Login do Usuário:
Senha do Usuário:
Campanha: $camp_form_code
  \n"; + echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Login do Telefone\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Brazil
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Login do Telefone
 
Login do Telefone:
Senha do Telefone:
  \n"; +echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('SAIR',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "É necessário efetuar login AO PRIMEIRO TIMECLOCK
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("INICIAR|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("INICIAR|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERRO: Não existem Shifts activado para o Grupo de Usuários
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERRO: Você não tem permissão para iniciar sessão no para fora do seu turno
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

GERENTE Override:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "GerenteLogin:
\n"; + $VDdisplayMESSAGE.= "GerenteSenha:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Login da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Senha:
\n"; + echo "Campanha: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PREINICIAR_1|PREINICIAR_2|PREINICIAR_3|PREINICIAR_4|PREINICIAR_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PREINICIAR_1|PREINICIAR_2|PREINICIAR_3|PREINICIAR_4|PREINICIAR_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PREINICIAR_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PREINICIAR_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PREINICIAR_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PREINICIAR_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PREINICIAR_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "A campanha não está ativa, por favor tente novamente
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Usuário incorreto, por favor tente novamente
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Login da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login da Campanha
 
Login do Usuário:
Senha do Usuário:
Campanha: $camp_form_code
  \n"; + echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Login do Telefone Error\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login Error
 
Desculpe seu login de telefone e senha não estão ativos nesta campanha, por favor tente novamente:
 
Login do Telefone:
Senha do Telefone:

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CallerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TelefoneSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TelefoneSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowedligadothis campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_loginligadophone: $SIP_userpara a campanha: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### INICIAR SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NOVO record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls todayligadothat campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Login da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "Desculpe, não existem registros na fila de discagem\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Senha:
\n"; + echo "Campanha: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Login da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Brazil
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Senha:
\n"; + echo "Campanha: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsegundos counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Janeiro','February','Março','Abril','Pode','Junho', + 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +SAIR\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Chamadas Ativas
+
+ + + + + height=>

Agent Screen
+
+ + +DISCAGEM MANUAL       SELETOR RÁPIDO
+
+ + +X AGENDAMENTOS ATIVOS
+
+ + +
+
+ +segundos: +     + + + + D1 - DISCAR\n"; + echo "
\n"; + echo "D2 - DISCAR\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
AGENDAMENTOS POR AGENTE :
Clique em um dos contatos abaixo para ligar. Se você clicar em um contatos abaixo o mesmo será removido da lista de Agendamentos. +
+
+
  + Atualizar +                 + Voltar +
+
+ + + height=460>
NOVA DISCAGEM MANUAL PARA :

Digite abaixo a informação do novo contato que você deseja ligar. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Codigo de Área:   (Normalmente é 1 nos EUA-Canada)
Telefone Number: +   (12 digits max - digits only) +
Ligações Existentes Da Busca:   (Esta opção se verificado tentará encontrar o número de telefone no sistema antes de introduzi-lo como uma ligação nova)
+

+     +
+

Se você deseja ligar para um número que não está na lista de contatos, digite o número que voc6e deseja discar no campo Discagem Sobreposta abaixo. Para desligar essa ligação você deve abrir o link Ligações em sua sessão link no rodapé da página e desligar clicando no link do canal.
 
Discagem Sobreposta:   (digitos apenas por favor) +
+
+ Discar Agora +                 + Preview Call +                 + Voltar +
+
+ + + +
+
+ + + + +Your Status:
Calls Dialing: +
+ + + + + > + + +
+
+ + Transferir a conferência            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + CLOSER LOCAL     + + Desligar linha Xfer +
+ seconds +   + channel + + CONSULTIVO   + + Desligar ambas as linhas +
+ Número a ser discado +   +   + + + DISCAGEM SOBREPOSTA + + ABANDONAR CHAMADA A TRES +
+ Transferência sem acompanhamento +   + Discar com o cliente +   + Colocar chamada do cliente em espera +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Solicita, em fila:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Solicita Hide Na fila\n";} + else + {echo "Solicita Mostrar Em Fila\n";} + } +?> + + + +
  +Outros agentes Status:  
 
+ +
+Agentes de transferência disponíveis:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Status da ligação definida como:

+ -
+
+
+ + + height=70> + + + + +
Atalhos para os status: + Quanto ativo apenas pressione a tecla do teclado referente ao status desejado. A ligação será desligada e salva com o status definido automaticamemente:
+ + + + + +
+
+ + + height=70> + + + + + + +
Informação Precedente Da Rechamada: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Extensão Alt Telefone Informação: minimizar
+
+
+
+
+ +
+
+ + + + + +
maximizar
Alt Telefone Info
+
+ + + height=500>
Não existe ninguem na sua sessão:
+ Voltar +

+ Ligar novamente para o agente +
+
+ + + height=500>
O cliente desligou:
+ Voltar +

+ Finalize e coloque o status da ligação +
+
+ + + height=550>
Chamada Wrapup: segundos restantes no wrapup

+ +

+ Revestimento Wrapup e movimento sobre +
+
+ + +
+


+ Fechar Mensagem +
+
+ + + height=500>
Sua sessão foi incapacitada
SAIR

Voltar +
+
+ + + height=500>
Há um tempo sincronização problema com o seu sistema, por favor informe o seu administrador de sistema


Voltar +
+
+ + + height=500>

SAIR
+
+ + +
+
+ + +
 
+
+ + + height=47>
Qualquer alteração feita nesta página não será salva. Você deve mudar as informações do cliente antes de desligar a ligação.
+
+ + + height=460>
SELEÇÃO DE STATUS :       Desligue novamente       minimizar
+ Fim da seleção de status +
+ PAUSAR DISCAGEM DO AGENTE
+ LIMPAR FORMULARIO | + ENVIAR +

+ WEB FORM ENVIAR +

  +
+
+ + + height=460>
SELECIONE Um CÓDIGO Da PAUSA :
+ Pausa Code Selection + +

  +
+
+ + + height=460>
Selecionar um grupo ALIÁS :
+ Grupo Alias Selecção + +

  +
+
+ + + + + + height=460>
Selecione uma data para o retorno :
+ + + Selecione uma data abaixo   +     + Hour: +   + Minutes: +   + +  
+ ESTE AGENDAMENTO SO APARECE PARA MIM
";} + ?> + Comentarios do CB:

+ + ENVIAR

+ +

  +
+
+ + + height=460>
SELECAO DO GRUPO DE ENTRADA DO CLOSER
+ Seleção do grupo de entrada do closer +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + LIGACAO MISTURADA(ligações externas ativadas)
+ + REINICIAR | + ENVIAR +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ REINICIAR | + ENVIAR +



  +
+
+ + + + Canal + Canal + ESTE AGENDAMENTO SO APARECE PARA MIM
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " LIGACAO MISTURADA
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +ATALHOS DE STATUS INATIVOS + + + + +> + + + + +
Agent web-client version:     CONFIGURAÇÃO:               Servidor:              
+ +Mostrar informações de discagem do canal +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
STATUS:
+
+Discar proximo número
+ VISUALIZAR CONTATO
+ DISCAR TELEFONE ALT
+ + +GRAVANDO ARQUIVO:
+
+
+ID da gravação:
+
+ +Inicia Gravação
+
+Web Form
+ 0) + {echo "\"Web
\n";} +?> +
+Colocar em espera
+Transferir a conferência
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Desligar Cliente
+
+
Enviar DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Canal:
Informações do cliente:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Título:   Primeiro:   MI:  Ultimo:
Endereço1:
Endereço2: Endereço3:
Cidade: Estado: CEP:
Bairro: Vendedor: Sexo:
Telefone: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +Codigo de Area: Telefone Alternativo:
Mostrar: Email:
Comentários: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/voicemail_check.php new file mode 100644 index 00000000..e6fdf4e0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_br/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuário/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Verificar caixa postal"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "Caixa Postal $vmail_box não é válido\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/active_list_refresh.php new file mode 100644 index 00000000..8fa6b53a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Liste Display: "; +if ($ADD==1) {echo "Live Nebenstellen";} +if ($ADD==2) {echo "Besetzte Nebenstellen";} +if ($ADD==3) {echo "Amtsleitungen";} +if ($ADD==4) {echo "Lokale Nebenstellen";} +if ($ADD==5) {echo "Konferenzen";} +if ($ADD==99999) {echo "HILFE";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/astguiclient.php new file mode 100644 index 00000000..39031642 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Sie haben sich abgemeldet. Danke\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "astGUIclient web client: Login\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login
 
Benutzer Login:
Benutzer Passwort:
Telefon Login:
Telefon Passwort:

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "astGUIclient web client: Telefon Login\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Deutsch
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Telefon Login
 
Telefon Login:
Telefon Passwort:

VERSION: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "astGUIclient web client: Telefon Login\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Telefon Login
 
Ihr Telefon Login ist nicht aktiv, bitte versuchen sie es noch einmal:
 
Telefon Login:
Telefon Passwort:

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "astGUIclient web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +LOGOUT
\n"; ?> +
Haupt BedienfeldAktive Leitungen BedienfeldKonferenz BedienfeldVoicemail abhörenLive Anruf
+
+ + +

Logout
+
+ + +
TRUNK AUFLEGEN

+ Active Trunks Menu
+ Amtsleitung auflegen   |   + Amtsleitung übernehmen   |   + Amtsleitung hören   |   + Aktualisieren   |   + Zurück zu Hauptfenster +
+
+ + +
LOKALES AUFLEGEN

+ Aktives Lokales Menü
+ Lokale Leitung auflegen   |   + Lokale Leitung übernehmen   |   + Lokale Leitung hören   |   + Aktualisieren   |   + Zurück zu Hauptfenster +
+
+ + + + + + + +
ANRUF WEITERLEITEN
Leitung, die verbunden werden soll: Kanal
Erweiterungen:
Extension Menü
+
+ Verbinden mit ausgewählter Nebenstelle

+ Weiterleiten zur ausgewählte Voicemalbox

+ Verbinden mit dieser Nummer:


+ Aktualisieren


+ Zurück zu Hauptfenster

+
Konferenzen:
(Klicken Sie unten auf eine Nummer, um mit einer Konferenz zu verbinden)
Meinen Kanal auch verbinden
Konferenz Menü
+
+ + + + + +
LOKALE Nebenstellen wahl
Telefon ruft an von: Kanal
Erweiterungen:
Extension Menü
+
+ Rufe ausgewählte Nebenstelle an

+ Rufe ausgewählte Voicemalbox an

+ Aktualisieren


+ Zurück zu Hauptfenster

+
+
+ + +
GEPARKTE ANRUFE:
+ Zurück zu Hauptfenster

+
+
+ + + + + + + + + + + + + + + +
  +
VOICEMAIL     NEU:     ALT:             MANUELLER ANRUF       DIAL
GEPARKTE ANRUFE: 0                LOKALE NEBENSTELLEN
OUTBOUND ANRUFE:
INBOUND ANRUFE:
astGUIclient Web-Client VERSION: BUILD:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
FAVORITEN       bearbeiten
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
FAVORITEN

 
FAVORITEN ÄNDERUNGEN ÜBERNEHMEN - erfordert Logout
ZURÜCK ZUM HAUPTFENSTER - Änderungen verwerfen
+
+ +
+ + + + + + + + + + + + + +
+STOP | START     Aktualisierungsfrequenz: 1000 ms Schneller | Langsamer

+
Initialisierung..
+
Aktive Nebenstellen
+AKTUALISIEREN | +BESTELLEN | +
Amtsleitungen
+AKTUALISIEREN | +BESTELLEN | +
Lokale Nebenstellen
+AKTUALISIEREN | +BESTELLEN | +
+ Daten kommen hier rein

+
+ Daten kommen hier rein

Amtsleitungs Aktion +
+ Daten kommen hier rein

Lokale Aktion +
+
+ + + + +
+ + +Konferenzliste + + + +
+Klicken Sie auf die Konferenzraumnummer links, für Informationen über die Konferenz +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/call_log_display.php new file mode 100644 index 00000000..2d3161f2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Anruf Log Anzeige"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten ist unzulässig oder Protokoll $protocol ist unzulässig\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/conf_exten_check.php new file mode 100644 index 00000000..c4c32671 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Conf Extension Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten ist unzulässig\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is an is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Wartende Anrufe: $RingCalls";} + else {$RingCalls = "Wartende Anrufe: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|START",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_LOGOUT';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $KanalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $KanalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$KanalA[$counter] ~"; + # echo "$KanalA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten ist unzulässig or Exten $exten ist unzulässig\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Konferenz $conf_exten wurde registriert bei $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/inbound_popup.php new file mode 100644 index 00000000..a2d9f0e1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +LIVE INBOUND ANRUF"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

LIVE INBOUND ANRUF

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid ist unzulässig\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Kanal: $row[1]
AnruferID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Kanal=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "ANGEPASST - \n"; + + echo "
Gewählte Nummer: $row[8]
Notizen: $row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "AUFLEGEN - \n"; + echo "AN MEINE VOICEMAILBOX SENDEN\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/live_exten_check.php new file mode 100644 index 00000000..90665fe4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Aktive Nebenstelle überprüfen"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten ist unzulässig oder Protokoll $protocol ist unzulässig\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanalA: $ChanneLA[$counter] ~"; + echo "KanalB: $ChanneLB[$counter] ~"; + echo "KanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanalA: $ChanneLA[$counter] ~"; + echo "KanalB: $ChanneLB[$counter] ~"; + echo "KanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanalA: $ChanneLA[$counter] ~"; + echo "KanalB: $ChanneLB[$counter] ~"; + echo "KanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanalA: $ChanneLA[$counter] ~"; + echo "KanalB: $ChanneLB[$counter] ~"; + echo "KanalBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "KanalA: $ChanneLA[$counter] ~"; + echo "KanalB: $ChanneLB[$counter] ~"; + echo "KanalBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/manager_send.php new file mode 100644 index 00000000..079c2130 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "ManagerSenden: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "HILFE";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten ist unzulässig or queryCID $queryCID ist unzulässig, Originate Befehl nicht abgesetzt\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate Befehl gesendet für Exten $exten Kanal $channel an $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "extenName $extenName muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "\nOriginateName Action nicht gesendet\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "extenName $extenName muß eingestellt werden\n"; + echo "exten $exten muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "\nOriginateNameVmail Action nicht gesendet\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten ist unzulässig or queryCID $queryCID ist unzulässig, Originate Befehl nicht abgesetzt\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Sie sind nicht erlaubt, in anderen Anbieters Sitzungen DFÜ $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate Befehl gesendet für Exten $exten Kanal $channel an $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten ist unzulässig or ext_context $ext_context or queryCID $queryCID ist unzulässig, Hangup Befehl nicht abgesetzt\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Kanal $channel ist unzulässig or queryCID $queryCID ist unzulässig, Hangup Befehl nicht abgesetzt\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel ist nicht Live an $call_server_ip, Checking Live Kanal...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Kanal $channel ist nicht Live an $call_server_ip, Hangup Befehl nicht abgesetzt $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Kanal $channel in use by another agent an $call_server_ip, Hangup Befehl nicht abgesetzt $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup Befehl gesendet für Kanal $channel an $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "exten $exten muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "auto_dial_level $auto_dial_level muß eingestellt werden\n"; + echo "campaign $campaign muß eingestellt werden\n"; + echo "uniqueid $uniqueid muß eingestellt werden\n"; + echo "lead_id $lead_id muß eingestellt werden\n"; + echo "\nRedirectVD Action nicht gesendet\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "exten $exten muß eingestellt werden\n"; + echo "extenName $extenName muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "parkedby $parkedby muß eingestellt werden\n"; + echo "\nRedirectToPark Action nicht gesendet\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "exten $exten muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "\nRedirectFromPark Action nicht gesendet\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "extenName $extenName muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "\nRedirectName Action nicht gesendet\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "extenName $extenName muß eingestellt werden\n"; + echo "exten $exten muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "\nRedirectNameVmail Action nicht gesendet\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "ExtraKanal $extrachannel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "exten $exten muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "\nRedirect Action nicht gesendet\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference an $server_ip, Redirect Befehl nicht abgesetzt\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kann keine leere Konferenz finden an $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Kanal $channel ist nicht Live an $call_server_ip, Redirect Befehl nicht abgesetzt\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Kanal $channel ist nicht Live an $server_ip, Redirect Befehl nicht abgesetzt\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect Befehl nicht abgesetzt\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX Befehl gesendet für Kanal $channel an $call_server_ip and \nHungup $extrachannel an $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel an $call_server_ip, Hungup $extrachannel an $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel an $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "ExtraKanal $extrachannel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "exten $exten muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "session_id $session_id muß eingestellt werden\n"; + echo "\nRedirect Action nicht gesendet\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference an $server_ip, Redirect Befehl nicht abgesetzt\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kann keine leere Konferenz finden an $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Kanal $channel ist nicht Live an $call_server_ip, Redirect Befehl nicht abgesetzt\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Kanal $channel ist nicht Live an $server_ip, Redirect Befehl nicht abgesetzt\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel ist nicht Live an $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra Befehl gesendet für Kanal $channel and \nExtraKanal $extrachannel\n to $exten an $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten an $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra Befehl gesendet für Kanal $channel an $call_server_ip and \nExtraKanal $extrachannel\n to $exten an $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Eine dieser Variablen ist unzulässig:\n"; + echo "Kanal $channel muss länger als 2 Buchstaben sein\n"; + echo "queryCID $queryCID muss länger als 14 Buchstaben sein\n"; + echo "exten $exten muß eingestellt werden\n"; + echo "ext_context $ext_context muß eingestellt werden\n"; + echo "ext_priority $ext_priority muß eingestellt werden\n"; + echo "\nRedirect Action nicht gesendet\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Kanal $channel ist nicht Live an $server_ip, Redirect Befehl nicht abgesetzt\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect Befehl gesendet für Kanal $channel an $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Kanal $channel ist unzulässig or queryCID $queryCID ist unzulässig or filename: $filename ist unzulässig, $ACTION Befehl nicht abgesetzt\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Kanal $channel ist nicht Live an $server_ip, $ACTION Befehl nicht abgesetzt\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION Befehl gesendet für Kanal $channel an $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Kanal $channel ist unzulässig or exten $exten ist unzulässig or filename: $filename ist unzulässig, $ACTION Befehl nicht abgesetzt\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going an in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION Befehl gesendet für Kanal $channel an $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n AUFNAHME DAUERT BIS ZU 60 MINUTEN\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Konferenz $exten, Stage $stage ist unzulässig or queryCID $queryCID ist unzulässig, Originate Befehl nicht abgesetzt\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume Befehl gesendet für Konferenz $exten, Stage $stage Kanal $channel an $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/park_calls_display.php new file mode 100644 index 00000000..0604f966 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Geparkte Anruf anzeigen"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten ist unzulässig oder Protokoll $protocol ist unzulässig\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/timeclock.php new file mode 100644 index 00000000..31da253f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "Diese Benutzer und Passwort Kombination ist nicht gültig
Bitte noch einmal:"; + + echo"\n"; + echo"Agent Stechuhr\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Stechuhr
 
Benutzer Login:
Benutzer Passwort:
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'START') ) + { + ### You cannot log in or out within 30Sekunden of your last login/logout + $VDdisplayMESSAGE = "Bitte warten Sie wenigstens 30 Sekunden zwischen dem an- und abmelden und umgekehrt"; + + echo"\n"; + echo"Agent Stechuhr\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Stechuhr
 
Benutzer Login:
Benutzer Passwort:
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Sie sind jetzt abgemeldet"; + $LOGtimeMESSAGE = "Abgemeldet um $NOW_TIME
Zeit die sie angemeldet waren: $totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "FEHLER: Stechuhreintrag wurde bereits gemacht: $status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "ZURÜCK zur Benutzeranmeldung";} + if ($referrer=='admin') + {$BACKlink = "ZURÜCK zur Administration";} + if ($referrer=='welcome') + {$BACKlink = "ZURÜCK zur Einstiegsseite";} + + echo"\n"; + echo"Agent Stechuhr\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Stechuhr
 
$LOGtimeMESSAGE
 
$BACKlink
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) + { + $VDdisplayMESSAGE = "Zeit seit Sie das letzte mal angemeldet waren: $totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Zuletzt ausgelogged um: $last_action_date

Klicken Sie unten auf LOGIN um sich anzumelden"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Zeit die Sie bereits angemeldet sind: $totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'LOGOUT'; + $LOGtimeMESSAGE = "Angemeldet seit: $last_action_date
Zeit die Sie bereits angemeldet sind: $totTIME_HMS

Klicken Sie unten auf LOGOUT um sich abzumelden"; + } + + echo"\n"; + echo"Agent Stechuhr\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Stechuhr
 
$LOGtimeMESSAGE
 
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"Agent Stechuhr\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Stechuhr
 
Benutzer Login:
Benutzer Passwort:
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vdc_db_query.php new file mode 100644 index 00000000..6675183b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Datenbank-Abfrage Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('LOGOUT',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("START|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("START|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ManagerLogin:
\n"; + $VDdisplayMESSAGE.= "ManagerPasswort:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Gruppe Wählen $closer_choice ist unzulässig\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Gruppe Wählen $closer_choice ist beim Benutzer registriert worden $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories ist unzulässig\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories ist beim Benutzer registriert worden $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "HOPPER LEER\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context ist unzulässig\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMMER\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMMER\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NUMMER NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST ANRUF TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST ANRUF TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # ANRUFOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "HOPPER LEER\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "ALTERNATIVE TELEFONNUMMER NUMMER STATUS NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count ist unzulässig\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "ALTERNATIVE TELEFONNUMMER NUMMER STATUS CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage ist unzulässig\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context ist unzulässig\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " ANRUF NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context ist unzulässig\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # ANRUFOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID ist unzulässig\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "LOG NICHT EINGEGEBEN\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign ist unzulässig\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Eingefügt: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NICHT EINGEGEBEN\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Eingefügt: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "LOG NICHT EINGEGEBEN\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "LOG NICHT EINGEGEBEN\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id ist unzulässig\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Eingefügt: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NICHT EINGEGEBEN\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG NICHT EINGEGEBEN\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_STOP|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|AUFNAHME_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Kampagne $campaign ist unzulässig\n"; + echo "lead_id $lead_id ist unzulässig\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Kampagne $campaign ist unzulässig\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send an to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If ANRUFBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user an $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten ist unzulässig\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a LOGOUT record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation an the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id ist unzulässig\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### ANRUFBACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### START Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Benutzer $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Nachname Attempt, Date of Nachname Non-Contact, Date of Nachname Contact, Date of Nachname Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' wurde geändert zu ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id ist unzulässig\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage ist unzulässig\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' ist jetzt im Status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list ist unzulässig\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status ist unzulässig\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pause Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Anrufe in der Warteschlange Profil behindertengerechte für diese Kampagne\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data an calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info an the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           ANRUF GROUP     TYPE  
TAKE ANRUF     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Anrufe in der Warteschlange Profil behindertengerechte für diese Kampagne\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vicidial.php new file mode 100644 index 00000000..f62736bf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Sie haben sich abgemeldet. Danke\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls an hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofSekunden for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name an login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST an server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a WÄHLEN link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups an campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Kunden auflegen +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TelefonSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT WÄHLEN by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Re-Login\n"; +echo "\n"; +echo "\n"; +echo " Stechuhr
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Deutsch
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Re-Login
 
Telefon Login:
Telefon Passwort:
Benutzer Login:
Benutzer Passwort:
Kampagne: $camp_form_code
  \n"; +echo "

VERSION: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Kampagne Login\n"; + echo "\n"; + echo "\n"; + echo " Stechuhr
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Benutzer Login

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Kampagne Login
 
Benutzer Login:
Benutzer Passwort:
Kampagne: $camp_form_code
  \n"; + echo "

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Login\n"; + echo "\n"; + echo "\n"; + echo " Stechuhr
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login
 
Telefon Login:
Telefon Passwort:
Benutzer Login:
Benutzer Passwort:
Kampagne: $camp_form_code
  \n"; + echo "

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Telefon Login\n"; +echo "\n"; +echo "\n"; +echo " Stechuhr
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Deutsch
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Telefon Login
 
Telefon Login:
Telefon Passwort:
  \n"; +echo "

VERSION: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('LOGOUT',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Sie müssen sich in die TIMECLOCK ERSTE
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("START|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("START|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ManagerLogin:
\n"; + $VDdisplayMESSAGE.= "ManagerPasswort:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Kampagne Login\n"; + echo "\n"; + echo "\n"; + echo " Stechuhr
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Passwort:
\n"; + echo "Kampagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PZURÜCKSETZEN_1|PZURÜCKSETZEN_2|PZURÜCKSETZEN_3|PZURÜCKSETZEN_4|PZURÜCKSETZEN_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PZURÜCKSETZEN_1|PZURÜCKSETZEN_2|PZURÜCKSETZEN_3|PZURÜCKSETZEN_4|PZURÜCKSETZEN_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PZURÜCKSETZEN_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PZURÜCKSETZEN_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PZURÜCKSETZEN_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PZURÜCKSETZEN_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PZURÜCKSETZEN_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Die Kampagne ist nicht aktiv, versuchen sie es bitte noch einmal
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Falsches Passwort, versuchen sie es bitte noch einmal
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Kampagne Login\n"; + echo "\n"; + echo "\n"; + echo " Stechuhr
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Kampagne Login
 
Benutzer Login:
Benutzer Passwort:
Kampagne: $camp_form_code
  \n"; + echo "

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Telefon Login Error\n"; + echo "\n"; + echo "\n"; + echo " Stechuhr
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login Error
 
Ihr Telefon Login ist nicht aktiv, bitte versuchen sie es noch einmal:
 
Telefon Login:
Telefon Passwort:

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $AnruferID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TelefonSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TelefonSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed an this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login an phone: $SIP_user zur Kampagne: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NEU record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today an that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Kampagne Login\n"; + echo "\n"; + echo "\n"; + echo " Stechuhr
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "Es sind für diese Kampagne keine aktiven Adressen mehr im Hopper\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Passwort:
\n"; + echo "Kampagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Kampagne Login\n"; + echo "\n"; + echo "\n"; + echo " Stechuhr
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Deutsch
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Passwort:
\n"; + echo "Kampagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callSekunden counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Januar','February','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +LOGOUT\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Live Anruf
+
+ + + + + height=>

Agent Screen
+
+ + +MANUELLER ANRUF       SCHNELL WAHL
+
+ + +X AKTIVE WIEDERVORLAGEN
+
+ + +
+
+ +Sekunden: +     + + + + D1 - WÄHLEN\n"; + echo "
\n"; + echo "D2 - WÄHLEN\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
WIEDERVORLAGEN FÜR AGENT :
Klicken Sie jetzt unten auf eine Wiedervorlage, um den Kunden zurückzurufen. Danach wird die Wiedervorlage aus der Liste gelöscht.. +
+
+
  + Aktualisieren +                 + Zurück +
+
+ + + height=460>
NEUE MANUELLE ADRESSE FÜR :

Tragen Sie unten die Informationen zu der neuen Adresse ein, die SIE wählen möchten. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Wahl Code:   (Dieses ist normalerweise 49 in Deutschland)
Telefon Number: +   (12 digits max - digits only) +
Suche existierende Adresse:   (Wenn diese Option ausgewählt ist, wird versucht, die Telefonnummer im System zu finden, bevor eine neue Adresse eingefügt wird)
+

+     +
+

Wenn Sie eine Nummer wählen möchten, die nicht in der Adressliste aufgenommen werden soll, müssen die genaue Nummer in das WÄHL OVERRIDE Feld eintragen. Um diesen Anruf dann aufzulegen, müssen Sie auf den VERBINDUNGEN IN DIESER SITZUNG Link klicken, und dann über die Auswahl der Leitung den entsprechenden Anruf zu beenden..
 
Wahl Override:   (Bitte nur Zahlen) +
+
+ Jetzt wählen +                 + Vorschau Call +                 + Zurück +
+
+ + + +
+
+ + + + +Ihr Status:
Calls Dialing: +
+ + + + + > + + +
+
+ + Transfer - Konferenz            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + LOKALE SUPERVISOR NACHFRAGE     + + Nachfrage auflegen +
+ seconds +   + channel + + BERATENDE   + + Beide Leitungen auflegen +
+ Anzurufende Telefonnummer +   +   + + + WÄHL OVERRIDE + + NACHFRAGE VERLASSEN +
+ Verbinden ohne Nachfrage +   + mit Kunde wählen +   + Kundenanruf parken +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Anrufe in der Warteschlange:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Hide Anrufe in der Warteschlange\n";} + else + {echo "Zeigen Anrufe in der Warteschlange\n";} + } +?> + + + +
  +Andere Bevollmächtigte Status:  
 
+ +
+Verfügbare Transfer Agents:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Adresse hat das Gesprächsergebnis:

+ -
+
+
+ + + height=70> + + + + +
Gesprächsergebniss Tastaturkürzel: + Wenn aktiviert, drücken sie einfach die entsprechende Taste, um das Gesprächsgebnis zu speichern. Der Anruf wird dann automatisch aufgelegt.:
+ + + + + +
+
+ + + height=70> + + + + + + +
Informationen zur letzten Wiedervorlage: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Weitere alternative Telefonnummern: minimieren
+
+
+
+
+ +
+
+ + + + + +
maximieren
Alt Telefon Info
+
+ + + height=500>
Niemand ist in ihrer Konferenz.:
+ Zurück +

+ Agent wieder anrufen +
+
+ + + height=500>
Kunde hat aufgelegt:
+ Zurück +

+ Ende und Gesprächsergebniss +
+
+ + + height=550>
Anruf Nachbereitung: Verbleibende Sekunden der Nachbereitung

+ +

+ Beende Nachbereitung und mache weiter +
+
+ + +
+


+ Close Message +
+
+ + + height=500>
Ihre Sitzung ist gesperrt worden
LOGOUT

Zurück +
+
+ + + height=500>
Es ist eine Zeit-Synchronisation Problem mit Ihrem System haben, wenden Sie sich bitte sagen Sie sich an Ihren Systemadministrator


Zurück +
+
+ + + height=500>

LOGOUT
+
+ + +
+
+ + +
 
+
+ + + height=47>
Die Änderungen an den Kundendaten werden nicht übernommen. Sie müssen die Kundendaten ändern bevor Sie aufgelegt haben..
+
+ + + height=460>
ANRUF ABSCHLIESSEN :       Wieder Auflegen       minimieren
+ Gesprächsergebnis Auswahl +
+ WÄHLPAUSE
+ FORMULAR ZURÜCKSETZEN | + ÜBERNEHMEN +

+ WEB FORM ÜBERNEHMEN +

  +
+
+ + + height=460>
WÄHLEN Sie Einen PAUSE CODE :
+ Pause Code Selection + +

  +
+
+ + + height=460>
Wählen Sie eine Gruppe ALIAS :
+ Gruppe Alias Auswahl + +

  +
+
+ + + + + + height=460>
Wählen Sie ein Rückrufdatum :
+ + + Wählen Sie unten ein Datum   +     + Hour: +   + Minutes: +   + +  
+ NUR MEINE WIEDERVORLAGE
";} + ?> + WV Anmerkungen:

+ + ÜBERNEHMEN

+ +

  +
+
+ + + height=460>
SUPERVISOR INBOUND GRUPPENWAHL
+ Supervisor Inbound Gruppenwahl +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + INBOUND und OUTBOUND(Outbound aktiviert)
+ + ZURÜCKSETZEN | + ÜBERNEHMEN +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ ZURÜCKSETZEN | + ÜBERNEHMEN +



  +
+
+ + + + Kanal + Kanal + NUR MEINE WIEDERVORLAGE
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " INBOUND und OUTBOUND
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +TASTATURKÜRZEL DEAKTIVIERT + + + + +> + + + + +
Agent web-client version:     BUILD:               Server:              
+ +Konferenz Informationen anzeigen +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
STATUS:
+
+Nächste Nummer wählen
+ ADRESSEN VORSCHAU
+ ALT. NUMMER WÄHLEN
+ + +Aufzeichnungsdatei:
+
+
+Aufzeichnungs ID:
+
+ +Starte Aufnahme
+
+Web Formular
+ 0) + {echo "\"Web
\n";} +?> +
+Parke Anruf
+Transfer - Konferenz
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Kunden auflegen
+
+
DTMF Senden

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Kanal:
Kunden Information:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Titel:   Vorname:   MI:  Nachname:
Adresse1:
Adresse2: Adresse3:
Stadt: Bundesland: Postleitzahl:
Region: Anbieter ID: Geschlecht:
Telefon: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +LandesCode: Alternative Telefonnummer:
Zeigen: Email:
Anmerkungen: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/voicemail_check.php new file mode 100644 index 00000000..e0c12857 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_de/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Unzulässig Benutzername/Passwort: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Unzulässig server_ip: |$server_ip| or Unzulässig session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Unzulässig session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Voicemail Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "Voicemailbox $vmail_box ist unzulässig\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/active_list_refresh.php new file mode 100644 index 00000000..5fc286c3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Κατάλογος Οθόνης: "; +if ($ADD==1) {echo "Ενεργές τηλ. συνδέσεις";} +if ($ADD==2) {echo "Απασχολημένες τηλ. συνδέσεις";} +if ($ADD==3) {echo "Εξωτερικές γραμμές";} +if ($ADD==4) {echo "Τοπικές τηλ. συνδέσεις";} +if ($ADD==5) {echo "Διασκέψεις";} +if ($ADD==99999) {echo "ΒΟΗΘΕΙΑ";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/astguiclient.php new file mode 100644 index 00000000..9de655b0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "χειριστής astGUIclient: Σύνδεση\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Σύνδεση
 
Σύνδεση χρήστη:
Κωδικός πρόσβασης χρήστη:
Σύνδεση Τηλεφώνου:
Κωδικός πρόσβασης Τηλεφώνου:

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "χειριστής astGUIclient: Σύνδεση Τηλεφώνου\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Ελληνικά
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Σύνδεση Τηλεφώνου
 
Σύνδεση Τηλεφώνου:
Κωδικός πρόσβασης Τηλεφώνου:

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "χειριστής astGUIclient: Σύνδεση Τηλεφώνου\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Σύνδεση Τηλεφώνου
 
Συγγνώμη, αλλά η τηλεφωνική σύνδεση και ο κωδικός πρόσβασής σας δεν είναι ενεργά σε αυτό το σύστημα, παρακαλώ προσπαθήστε πάλι:
 
Σύνδεση Τηλεφώνου:
Κωδικός πρόσβασης Τηλεφώνου:

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "χειριστής astGUIclient\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +ΑΠΟΣΥΝΔΕΣΗ
\n"; ?> +
Κύριος ΠίνακαςΠίνακας Ενεργών ΓραμμώνΠίνακας διασκέψεωνΕλεγχος Φωνητικού ταχυδρομείουΕνεργή κλήση
+
+ + +

Logout
+
+ + +
TRUNK ΚΛΕΙΣΙΜΟ

+ Active Trunks Menu
+ Κλείσιμο Κορμού   |   + Κλέψιμο Κορμού   |   + Ακούστε Κορμό   |   + Ανανέωση   |   + Επιστροφή στο Βασικό Παράθυρο +
+
+ + +
ΤΟΠΙΚΟ ΚΛΕΙΣΙΜΟ ΤΗΛΕΦΩΝΟΥ

+ Ενεργές Τοπικές Επιλογές
+ Κλείσιμο τοπικού   |   + Κλέψιμο τοπικού   |   + Ακούστε τοπικό   |   + Ανανέωση   |   + Επιστροφή στο Βασικό Παράθυρο +
+
+ + + + + + + +
ΜΕΤΑΦΟΡΑ ΕΝΕΡΓΗΣ ΚΛΗΣΗΣ
Κανάλι προς μεταφορά: Κανάλι
Τηλ.συνδέσεις:
Επιλογές τηλ. συνδέσεων
+
+ Στείλε στην επιλεγμένη τηλ.σύνδεση

+ Στείλε στο επιλεγμένο vmail

+ Στείλε σε αυτόν τον αριθμό:


+ Ανανέωση


+ Επιστροφή στο Βασικό Παράθυρο

+
Διασκέψεις:
(επιλέξτε έναν αριθμό κατωτέρω που θα σταλεί σε μια διάσκεψη)
Στείλε το κανάλι μου επίσης
Επιλογές διασκέψεων
+
+ + + + + +
ΤΟΠΙΚΕΣ τηλ. συνδέσεις Κλήσεως
Τηλέφωνο που καλεί από: Κανάλι
Τηλ.συνδέσεις:
Επιλογές τηλ. συνδέσεων
+
+ Επιλεγμένη κλήση τηλ. σύνδεσης

+ Επιλεγμένη κλήση vmail

+ Ανανέωση


+ Επιστροφή στο Βασικό Παράθυρο

+
+
+ + +
ΣΤΑΘΜ.ΚΛΗΣΕΙΣ:
+ Επιστροφή στο Βασικό Παράθυρο

+
+
+ + + + + + + + + + + + + + + +
  +
ΦΩΝ.ΤΑΧ.     ΝΕΟ:     ΠΑΛΑΙΟ:             ΧΕΙΡ.ΚΛΗΣΗ       DIAL
ΣΤΑΘΜ.ΚΛΗΣΕΙΣ: 0                ΤΗΛ.ΣΥΝΔ. ΤΟΠΙΚΗΣ ΚΛΗΣΗΣ
ΕΞΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ:
ΕΙΣΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ:
ΈΚΔΟΣΗ astGUIclient: ΔΗΜΙΟΥΡΓΙΑ:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
ΑΓΑΠΗΜΕΝΑ       διορθώστε
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
ΑΓΑΠΗΜΕΝΑ

 
ΥΠΟΒΑΛΤΕ τις ΑΛΛΑΓΕΣ ΣΥΜΠΑΘΕΙΩΝ - απαιτεί την αποσύνδεση
ΠΙΣΩ στο ΚΥΡΙΟ ΠΑΡΑΘΥΡΟ - αγνοήστε τις αλλαγές που γίνονται
+
+ +
+ + + + + + + + + + + + + +
+ΣΤΑΣΗ | ΕΝΑΡΞΗ     Ρυθμός ανανέωσης: 1000 ms Γρηγορότερα | Πιό αργά

+
Αρχή..
+
Ενεργές τηλ. συνδέσεις
+ΑΝΑΝΕΩΣΗ | +ΤΑΞΙΝ | +
Εξωτερικές γραμμές
+ΑΝΑΝΕΩΣΗ | +ΤΑΞΙΝ | +
Τοπικές τηλ. συνδέσεις
+ΑΝΑΝΕΩΣΗ | +ΤΑΞΙΝ | +
+ Τα δεδομένα πηγαίνουν εδώ

+
+ Τα δεδομένα πηγαίνουν εδώ

Κίνηση Κορμού +
+ Τα δεδομένα πηγαίνουν εδώ

Τοπική Κίνηση +
+
+ + + + +
+ + +Κατάλογος διασκέψεων + + + +
+Επιλέξτε έναν αριθμό δωματίου συνδιάσκεψης στα αριστερά για τις πληροφορίες σε εκείνη την συνδιάσκεψη +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/call_log_display.php new file mode 100644 index 00000000..cd8eae17 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Έμφάνιση Καταγραμμένων Κλήσεων"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten δεν ισχύει ή πρωτόκολλο $protocol δεν ισχύει\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/conf_exten_check.php new file mode 100644 index 00000000..2340ce6f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Ελεγχος τηλ.σύνδεσης διάσκεψης"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten δεν ισχύει\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is στο is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Ζητεί, στο Queue: $RingCalls";} + else {$RingCalls = "Ζητεί, στο Queue: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|ΕΝΑΡΞΗ",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_ΑΠΟΣΥΝΔΕΣΗ';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Κατάσταση: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $ΚανάλιA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $ΚανάλιA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$ΚανάλιA[$counter] ~"; + # echo "$ΚανάλιA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten δεν ισχύει or Exten $exten δεν ισχύει\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Διάσκεψη $conf_exten έχει καταχωρηθεί $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/inbound_popup.php new file mode 100644 index 00000000..a724b0bd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +ΕΝΕΡΓΗ ΕΙΣΕΡΧΟΜΕΝΗ ΚΛΗΣΗ"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

ΕΝΕΡΓΗ ΕΙΣΕΡΧΟΜΕΝΗ ΚΛΗΣΗ

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid δεν ισχύει\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Κανάλι: $row[1]
CallerID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Κανάλι=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "ΣΥΝΗΘΕΙΑ - \n"; + + echo "
Αριθμός που καλέσατε: $row[8]
Σημειώσεις:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "ΚΛΕΙΣΙΜΟ - \n"; + echo "ΣΤΕΙΛΕ ΣΤΟ ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ΜΟΥ\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/live_exten_check.php new file mode 100644 index 00000000..9d9ce193 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Ελεγχος ενεργής τηλ.σύνδεσης"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten δεν ισχύει ή πρωτόκολλο $protocol δεν ισχύει\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "ΚανάλιA: $ChanneLA[$counter] ~"; + echo "ΚανάλιB: $ChanneLB[$counter] ~"; + echo "ΚανάλιBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "ΚανάλιA: $ChanneLA[$counter] ~"; + echo "ΚανάλιB: $ChanneLB[$counter] ~"; + echo "ΚανάλιBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "ΚανάλιA: $ChanneLA[$counter] ~"; + echo "ΚανάλιB: $ChanneLB[$counter] ~"; + echo "ΚανάλιBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "ΚανάλιA: $ChanneLA[$counter] ~"; + echo "ΚανάλιB: $ChanneLB[$counter] ~"; + echo "ΚανάλιBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "ΚανάλιA: $ChanneLA[$counter] ~"; + echo "ΚανάλιB: $ChanneLB[$counter] ~"; + echo "ΚανάλιBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/manager_send.php new file mode 100644 index 00000000..07af0f37 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Ο διαχτής στέλνει: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "ΒΟΗΘΕΙΑ";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten δεν ισχύει or queryCID $queryCID δεν ισχύει, Originate εντολή που δεν έγινε εισαγωγή\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate εντολή που στέλνεται για Exten $exten Κανάλι $channel στο $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "extenName $extenName πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "\nOriginateName Action μην σταλμένος\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "extenName $extenName πρέπει να τεθεί\n"; + echo "exten $exten πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "\nOriginateNameVmail Action μην σταλμένος\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten δεν ισχύει or queryCID $queryCID δεν ισχύει, Originate εντολή που δεν έγινε εισαγωγή\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Δεν επιτρέπεται να καλέσετε σε άλλες συνεδρίες πράκτορα $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate εντολή που στέλνεται για Exten $exten Κανάλι $channel στο $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten δεν ισχύει or ext_context $ext_context or queryCID $queryCID δεν ισχύει, Hangup εντολή που δεν έγινε εισαγωγή\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Κανάλι $channel δεν ισχύει or queryCID $queryCID δεν ισχύει, Hangup εντολή που δεν έγινε εισαγωγή\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel δεν είναι ενεργό στο $call_server_ip, Checking Live Κανάλι...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Κανάλι $channel δεν είναι ενεργό στο $call_server_ip, Hangup εντολή που δεν έγινε εισαγωγή $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Κανάλι $channel in use by another agent στο $call_server_ip, Hangup εντολή που δεν έγινε εισαγωγή $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup εντολή που στέλνεται για Κανάλι $channel στο $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "exten $exten πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "auto_dial_level $auto_dial_level πρέπει να τεθεί\n"; + echo "campaign $campaign πρέπει να τεθεί\n"; + echo "uniqueid $uniqueid πρέπει να τεθεί\n"; + echo "lead_id $lead_id πρέπει να τεθεί\n"; + echo "\nRedirectVD Action μην σταλμένος\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "exten $exten πρέπει να τεθεί\n"; + echo "extenName $extenName πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "parkedby $parkedby πρέπει να τεθεί\n"; + echo "\nRedirectToPark Action μην σταλμένος\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "exten $exten πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "\nRedirectFromPark Action μην σταλμένος\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "extenName $extenName πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "\nRedirectName Action μην σταλμένος\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "extenName $extenName πρέπει να τεθεί\n"; + echo "exten $exten πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "\nRedirectNameVmail Action μην σταλμένος\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "ExtraΚανάλι $extrachannel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "exten $exten πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "\nRedirect Action μην σταλμένος\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Δεν υπάρχει κενή διάσκεψη στο $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Κανάλι $channel δεν είναι ενεργό στο $call_server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect εντολή που δεν έγινε εισαγωγή\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX εντολή που στέλνεται για Κανάλι $channel στο $call_server_ip and \nHungup $extrachannel στο $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel στο $call_server_ip, Hungup $extrachannel στο $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel στο $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "ExtraΚανάλι $extrachannel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "exten $exten πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "session_id $session_id πρέπει να τεθεί\n"; + echo "\nRedirect Action μην σταλμένος\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Δεν υπάρχει κενή διάσκεψη στο $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Κανάλι $channel δεν είναι ενεργό στο $call_server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel δεν είναι ενεργό στο $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra εντολή που στέλνεται για Κανάλι $channel and \nExtraΚανάλι $extrachannel\n to $exten στο $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten στο $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra εντολή που στέλνεται για Κανάλι $channel στο $call_server_ip and \nExtraΚανάλι $extrachannel\n to $exten στο $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Μία από αυτές τις μεταβλητές δεν ισχύει:\n"; + echo "Κανάλι $channel πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες\n"; + echo "queryCID $queryCID πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες\n"; + echo "exten $exten πρέπει να τεθεί\n"; + echo "ext_context $ext_context πρέπει να τεθεί\n"; + echo "ext_priority $ext_priority πρέπει να τεθεί\n"; + echo "\nRedirect Action μην σταλμένος\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, Redirect εντολή που δεν έγινε εισαγωγή\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect εντολή που στέλνεται για Κανάλι $channel στο $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Κανάλι $channel δεν ισχύει or queryCID $queryCID δεν ισχύει or filename: $filename δεν ισχύει, $ACTION εντολή που δεν έγινε εισαγωγή\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Κανάλι $channel δεν είναι ενεργό στο $server_ip, $ACTION εντολή που δεν έγινε εισαγωγή\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION εντολή που στέλνεται για Κανάλι $channel στο $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Κανάλι $channel δεν ισχύει or exten $exten δεν ισχύει or filename: $filename δεν ισχύει, $ACTION εντολή που δεν έγινε εισαγωγή\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going στο in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION εντολή που στέλνεται για Κανάλι $channel στο $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n Η ΚΑΤΑΓΡΑΦΗ ΘΑ ΔΙΑΡΚΕΣΕΙ ΜΕΧΡΙ 60 ΛΕΠΤΑ\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Διάσκεψη $exten, Stage $stage δεν ισχύει or queryCID $queryCID δεν ισχύει, Originate εντολή που δεν έγινε εισαγωγή\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume εντολή που στέλνεται για Διάσκεψη $exten, Stage $stage Κανάλι $channel στο $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/park_calls_display.php new file mode 100644 index 00000000..0960e767 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Εμφάνιση Σταθμευμένων Κλήσεων"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten δεν ισχύει ή πρωτόκολλο $protocol δεν ισχύει\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/timeclock.php new file mode 100644 index 00000000..0d1cc06b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "Ο χρήστη και τον κωδικό πρόσβασης που πληκτρολογήσατε δεν είναι ενεργό στο σύστημα
Παρακαλώ δοκιμάστε ξανά:"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Σύνδεση χρήστη:
Κωδικός πρόσβασης χρήστη:
 

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='ΕΝΑΡΞΗ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='ΕΝΑΡΞΗ'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'ΕΝΑΡΞΗ') ) + { + ### You cannot log in or out within 30δευτερόλεπτα of your last login/logout + $VDdisplayMESSAGE = "Δεν μπορείτε να συνδεθείτε ή να αναφέρονται μέσα σε 30 δευτερόλεπτα από την τελευταία σας login ή logout"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Σύνδεση χρήστη:
Κωδικός πρόσβασης χρήστη:
 

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOΑΠΟΣΥΝΔΕΣΗ') or ($status=='ΕΝΑΡΞΗ') or ($status=='ΑΠΟΣΥΝΔΕΣΗ') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Έχετε πλέον συνδεθεί-out"; + $LOGtimeMESSAGE = "Έχετε αποσυνδεθεί από την$NOW_TIME
Ποσό φορά που ήταν συνδεδεμένος στο:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='ΑΠΟΣΥΝΔΕΣΗ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='ΑΠΟΣΥΝΔΕΣΗ', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='ΑΠΟΣΥΝΔΕΣΗ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOΑΠΟΣΥΝΔΕΣΗ') or ($status=='ΕΝΑΡΞΗ') or ($status=='ΑΠΟΣΥΝΔΕΣΗ') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERROR: timeclock καταχώρηση αρχείου καταγραφής που έχουν ήδη πραγματοποιηθεί:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "ΕΠΙΣΤΡΟΦΗ στο γραφείο Σύνδεση οθόνης";} + if ($referrer=='admin') + {$BACKlink = "ΕΠΙΣΤΡΟΦΗ στην Διοίκηση";} + if ($referrer=='welcome') + {$BACKlink = "ΕΠΙΣΤΡΟΦΗ στην οθόνη υποδοχής";} + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOΑΠΟΣΥΝΔΕΣΗ') or ($status=='ΕΝΑΡΞΗ') or ($status=='ΑΠΟΣΥΝΔΕΣΗ') ) + { + $VDdisplayMESSAGE = "Ο χρόνος από την τελευταία φορά που είναι συνδεδεμένος στο:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Μπορείτε τελευταίου συνδεδεμένου αναφέρονται σε:$last_action_date

Κάντε κλικ παρακάτω για να ΕΙΣΟΔΟΣ log-in"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Χρονικό διάστημα σας έχει συνδεθεί σε:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'ΑΠΟΣΥΝΔΕΣΗ'; + $LOGtimeMESSAGE = "Μπορείτε συνδεδεμένος στην διεύθυνση: $last_action_date
Χρονικό διάστημα σας έχει συνδεθεί σε:$totTIME_HMS

Κάντε κλικ παρακάτω για να ΑΠΟΣΥΝΔΕΣΗ log-out"; + } + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Σύνδεση χρήστη:
Κωδικός πρόσβασης χρήστη:
 

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vdc_db_query.php new file mode 100644 index 00000000..2b839831 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Κώδικας ερώτησης βάσεων δεδομένων"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('ΑΠΟΣΥΝΔΕΣΗ',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("ΕΝΑΡΞΗ|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("ΕΝΑΡΞΗ|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ΔιευθυντήςΣύνδεση:
\n"; + $VDdisplayMESSAGE.= "ΔιευθυντήςΚωδικός πρόσβασης:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Επιλογή ομάδας $closer_choice δεν ισχύει\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Επιλογή ομάδας $closer_choice έχει καταχωρηθεί στο χρήστη $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories δεν ισχύει\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories έχει καταχωρηθεί στο χρήστη $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "ΚΕΝΟΣ HOPPER\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context δεν ισχύει\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC ΑΡΙΘΜΟΣ\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC ΑΡΙΘΜΟΣ\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "ΑΡΙΘΜΟΣ NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST ΚΛΗΣΗ TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST ΚΛΗΣΗ TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # ΚΛΗΣΗOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ΚΕΝΟΣ HOPPER\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "ΕΝΑΛΛΑΚΤΙΚΟ ΤΗΛΕΦΩΝΟ ΑΡΙΘΜΟΣ ΚΑΤΑΣΤΑΣΗ NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count δεν ισχύει\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "ΕΝΑΛΛΑΚΤΙΚΟ ΤΗΛΕΦΩΝΟ ΑΡΙΘΜΟΣ ΚΑΤΑΣΤΑΣΗ CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage δεν ισχύει\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context δεν ισχύει\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " ΚΛΗΣΗ NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context δεν ισχύει\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # ΚΛΗΣΗOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID δεν ισχύει\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign δεν ισχύει\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Εισαγωγή : $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Εισαγωγή : $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id δεν ισχύει\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Εισαγωγή : $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_ΣΤΑΣΗ|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|ΕΓΓΡΑΦΗ_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Εκστρατεία $campaign δεν ισχύει\n"; + echo "lead_id $lead_id δεν ισχύει\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Εκστρατεία $campaign δεν ισχύει\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send στο to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If ΚΛΗΣΗBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user στο $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten δεν ισχύει\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a ΑΠΟΣΥΝΔΕΣΗ record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ΑΠΟΣΥΝΔΕΣΗ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation στο the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id δεν ισχύει\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### ΚΛΗΣΗBACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### ΕΝΑΡΞΗ Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Χρήστης $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Επίθετο Attempt, Date of Επίθετο Non-Contact, Date of Επίθετο Contact, Date of Επίθετο Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' έχει αλλαχτεί ' . $dispo_choice . " Κατάσταση\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id δεν ισχύει\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage δεν ισχύει\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' είναι τώρα στη κατάσταση ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list δεν ισχύει\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status δεν ισχύει\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### ΕΝΑΡΞΗ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Παύση Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Καλεί σε ουρά Δείτε τα άτομα με ειδικές ανάγκες για αυτή την καμπάνια\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data στο calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info στο the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           ΚΛΗΣΗ GROUP     TYPE  
TAKE ΚΛΗΣΗ     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Καλεί σε ουρά Δείτε τα άτομα με ειδικές ανάγκες για αυτή την καμπάνια\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vicidial.php new file mode 100644 index 00000000..dfa72ef1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls στο hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofδευτερόλεπτα for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name στο login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST στο server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a ΚΛΗΣΗ link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups στο campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Κλείσιμο Πελάτη +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$ΤηλSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT ΚΛΗΣΗ by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Επανασύνδεση\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Ελληνικά
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Επανασύνδεση
 
Σύνδεση Τηλεφώνου:
Κωδικός πρόσβασης Τηλεφώνου:
Σύνδεση χρήστη:
Κωδικός πρόσβασης χρήστη:
Εκστρατεία: $camp_form_code
  \n"; +echo "

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Σύνδεση εκστρατείας\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Σύνδεση χρήστη

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Σύνδεση εκστρατείας
 
Σύνδεση χρήστη:
Κωδικός πρόσβασης χρήστη:
Εκστρατεία: $camp_form_code
  \n"; + echo "

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Σύνδεση\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Σύνδεση
 
Σύνδεση Τηλεφώνου:
Κωδικός πρόσβασης Τηλεφώνου:
Σύνδεση χρήστη:
Κωδικός πρόσβασης χρήστη:
Εκστρατεία: $camp_form_code
  \n"; + echo "

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Σύνδεση Τηλεφώνου\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Ελληνικά
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Σύνδεση Τηλεφώνου
 
Σύνδεση Τηλεφώνου:
Κωδικός πρόσβασης Τηλεφώνου:
  \n"; +echo "

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('ΑΠΟΣΥΝΔΕΣΗ',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Πρέπει να συνδεθείτε ΣΤΗΝ ΠΡΩΤΗ ΤΟΥ TIMECLOCK
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("ΕΝΑΡΞΗ|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("ΕΝΑΡΞΗ|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ΔιευθυντήςΣύνδεση:
\n"; + $VDdisplayMESSAGE.= "ΔιευθυντήςΚωδικός πρόσβασης:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Σύνδεση εκστρατείας\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Σύνδεση: \n
"; + echo "Κωδικός πρόσβασης:
\n"; + echo "Εκστρατεία: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PΕΠΑΝΑΦΟΡΑ_1|PΕΠΑΝΑΦΟΡΑ_2|PΕΠΑΝΑΦΟΡΑ_3|PΕΠΑΝΑΦΟΡΑ_4|PΕΠΑΝΑΦΟΡΑ_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_1|PΕΠΑΝΑΦΟΡΑ_2|PΕΠΑΝΑΦΟΡΑ_3|PΕΠΑΝΑΦΟΡΑ_4|PΕΠΑΝΑΦΟΡΑ_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PΕΠΑΝΑΦΟΡΑ_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Η εκστρατεία είναι μη ενεργή, παρακαλώ προσπαθήστε πάλι
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Η σύνδεση δεν είναι σωστή, παρακαλώ προσπαθήστε πάλι
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Σύνδεση εκστρατείας\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Σύνδεση εκστρατείας
 
Σύνδεση χρήστη:
Κωδικός πρόσβασης χρήστη:
Εκστρατεία: $camp_form_code
  \n"; + echo "

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Σύνδεση Τηλεφώνου Error\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Σύνδεση Error
 
Συγγνώμη, αλλά η τηλεφωνική σύνδεση και ο κωδικός πρόσβασής σας δεν είναι ενεργά σε αυτό το σύστημα, παρακαλώ προσπαθήστε πάλι:
 
Σύνδεση Τηλεφώνου:
Κωδικός πρόσβασης Τηλεφώνου:

ΕΚΔΟΣΗ: $version       ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CallerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($ΤηλSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ΤηλSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed στο this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login στο phone: $SIP_user στην εκστρατεία: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### ΕΝΑΡΞΗ SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a ΝΕΟ record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today στο that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Σύνδεση εκστρατείας\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "Συγγνώμη, δεν υπάρχουν οδηγοί στον hopper για αυτήν την εκστρατεία\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Σύνδεση: \n
"; + echo "Κωδικός πρόσβασης:
\n"; + echo "Εκστρατεία: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Σύνδεση εκστρατείας\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Ελληνικά
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Σύνδεση: \n
"; + echo "Κωδικός πρόσβασης:
\n"; + echo "Εκστρατεία: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callδευτερόλεπτα counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Φεβρουάριος','February','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', + 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +ΑΠΟΣΥΝΔΕΣΗ\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Ενεργή κλήση
+
+ + + + + height=>

Agent Screen
+
+ + +ΧΕΙΡ.ΚΛΗΣΗ       ΓΡΗΓΟΡΟΣ ΠΙΝΑΚΑΣ
+
+ + +X ΕΝΕΡΓΕΣ ΕΠΑΝΑΚΛΗΣΕΙΣ
+
+ + +
+
+ +δευτερόλεπτα: +     + + + + D1 - ΚΛΗΣΗ\n"; + echo "
\n"; + echo "D2 - ΚΛΗΣΗ\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
ΕΠΑΝΑΚΛΗΣΕΙΣ ΓΙΑ ΤΟΝ ΧΕΙΡΙΣΤΗ :
Επιλέξτε μία επανάκληση παρακάτω για να καλέσετε τον πελάτη τώρα. Εάν επιλέξετε μία εγγραφή παρακάτω, θα διαγραφεί από την λίστα. +
+
+
  + Ανανέωση +                 + Επιστροφή +
+
+ + + height=460>
ΝΕΑ ΧΕΙΡΟΚΙΝΗΤΗ ΚΛΗΣΗ ΟΔΗΓΟΥ ΓΙΑ :

Καταχωρήστε τις πληροφορίες παρακάτω για τον νέο οδηγό που επιθυμήτε να καλέσετε. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Κωδικός Κλήσης:   (Αυτό είναι συνήθως ένα 1 στις ΗΠΑ)
Τηλ Number: +   (12 digits max - digits only) +
Αναζήτηση Οδηγών:   (Η επιλογή αυτή επιτρέπει να βρει τον αριθμό στο σύστημα προτού γίνει εισαγωγή ως νέος οδηγός)
+

+     +
+

Εάν θέλετε να καλέσετε έναν αριθμό και να μην προστεθεί ως νέος οδηγός, καταχωρήστε τον με την σωστή μορφή στο πεδίο Αγνόησε Κλήση παρακάτω. Για να κλείσετε αυτή την κλήση θα πρέπει να ανοίξετε το ΚΛΗΣΕΙΣ ΣΕ ΑΥΤΗ ΤΗΝ ΔΙΑΙΔΚΑΣΙΑ στο κάτω μέρος της οθόνης και να την κλείσετε επιλέγοντας το κανάλι.
 
Αγνόησε Κλήση:   (παρακαλώ μόνο ψηφία) +
+
+ Κάλεσε Τώρα +                 + Προεπισκόπηση πρόσκλησης +                 + Επιστροφή +
+
+ + + +
+
+ + + + +Your Κατάσταση:
Calls Dialing: +
+ + + + + > + + +
+
+ + Μεταφορά - διάσκεψη            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + ΤΟΠΙΚΟΣ CLOSER     + + Κλείσιμο Γραμμής Xfer +
+ seconds +   + channel + + ΣΥΜΒΟΥΛΕΥΤΙΚΗ   + + Κλείσιμο και τις δύο γραμμές +
+ Αριθμός για κλήση +   +   + + + Υπέρβαση Κλήσης + + ΑΠΟΧΩΡΗΣΗ 3μελής ΚΛΗΣΗΣ +
+ Τυφλή μεταφορά κλήσης +   + Κλήση με τον πελάτη +   + Στάθμευση κλήσης πελάτη +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Κλήσεις σε αναμονή:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Απόκρυψη καλεί Στην ουρά\n";} + else + {echo "Παρουσίαση καλεί Στην ουρά\n";} + } +?> + + + +
  +Άλλα Κατάσταση Πράκτορες:  
 
+ +
+Διαθέσιμο Agents Μεταφορά:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Τερματισμό Καθοδήγησης όπως:

+ -
+
+
+ + + height=70> + + + + +
Πλήκτρα κλειδιά Τερματισμού: + Όταν είναι ενεργό, πιέστε απλά το πλήκτρο κλειδί για τον επιθυμητό τερματισμό της κλήσης. Η κλήση θα τρεματίσει αυτόματα:
+ + + + + +
+
+ + + height=70> + + + + + + +
Προηγούμενες πληροφορίες επανάκλησης: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Εκτεταμένη Alt Τηλέφωνο Πληροφοριών: ελαχιστοποιήστε
+
+
+
+
+ +
+
+ + + + + +
μεγιστοποιήστε
Alt Τηλ Info
+
+ + + height=500>
Κανένας δεν είναι στη σύνοδό σας:
+ Επιστροφή +

+ Ξανακάλεσε τον Χειριστή +
+
+ + + height=500>
Ο πελάτης έχει κλείσει το τηλέφωνο:
+ Επιστροφή +

+ Τελείωσε και Τερμάτισε την Κλήση +
+
+ + + height=550>
Αναδίπλωση Κλήσης: απομύνοντα δευτερόλεπτα σε αναδίπλωση

+ +

+ Τελείωμα Αναδίπλωσης και Συνέχεια +
+
+ + +
+


+ Κλείσιμο Μήνυμα +
+
+ + + height=500>
Η σύνοδός σας έχει τεθεί εκτός λειτουργίας
ΑΠΟΣΥΝΔΕΣΗ

Επιστροφή +
+
+ + + height=500>
Υπάρχει ένα πρόβλημα συγχρονισμού με το χρόνο σας, παρακαλούμε ενημερώστε τον διαχειριστή του συστήματός σας


Επιστροφή +
+
+ + + height=500>

ΑΠΟΣΥΝΔΕΣΗ
+
+ + +
+
+ + +
 
+
+ + + height=47>
Οποιεσδήποτε αλλαγές που γίνονται στις πληροφορίες πελατών κατωτέρω αυτή τη στιγμή δεν θα είναι, πρέπει να αλλάξετε τις πληροφορίες πελατών ενώπιον σας Hangup η κλήση.
+
+ + + height=460>
Τερματισμός Κλήσης :       Ξανακλήσε       ελαχιστοποιήστε
+ Επιλογή τερματισμού της κλήσης +
+ ΤΕΡΜΑΤΙΣΜΟΣ ΚΛΗΣΗΣ
+ ΕΠΑΝΑΦΟΡΑ | + ΥΠΟΒΑΛΕΤΕ +

+ WEB FORM ΥΠΟΒΑΛΕΤΕ +

  +
+
+ + + height=460>
ΕΠΙΛΕΞΤΕ έναν ΚΩΔΙΚΑ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ :
+ Παύση Code Selection + +

  +
+
+ + + height=460>
ΕΠΙΛΕΞΤΕ ΟΜΑΔΑ ALIAS :
+ Γνωστός Ομάδα Επιλογής + +

  +
+
+ + + + + + height=460>
Επιλέξτε μια ημερομηνία CallBack :
+ + + Επιλέξτε μια ημερομηνία κατωτέρω   +     + Hour: +   + Minutes: +   + +  
+ ΜΟΝΟ ΤΗΝ ΕΠΑΝΑΚΛΗΣΗ ΜΟΥ
";} + ?> + Σχόλια CB:

+ + ΥΠΟΒΑΛΕΤΕ

+ +

  +
+
+ + + height=460>
CLOSER ΕΙΣΕΡΧΟΜΕΝΗ ΕΠΙΛΟΓΗ ΟΜΑΔΑΣ
+ Επιλογή Closer εισερχόμενης ομάδας +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + ΣΥΝΔΥΑΣΜΕΝΗ ΚΛΗΣΗ(εξερχόμενες ενεργοποιημένες)
+ + ΕΠΑΝΑΦΟΡΑ | + ΥΠΟΒΑΛΕΤΕ +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ ΕΠΑΝΑΦΟΡΑ | + ΥΠΟΒΑΛΕΤΕ +



  +
+
+ + + + Κανάλι + Κανάλι + ΜΟΝΟ ΤΗΝ ΕΠΑΝΑΚΛΗΣΗ ΜΟΥ
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " ΣΥΝΔΥΑΣΜΕΝΗ ΚΛΗΣΗ
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +ΠΛΗΚΤΡΑ ΚΛΕΙΔΙΑ ΑΝΕΝΕΡΓΑ + + + + +> + + + + +
Agent web-client version:     ΔΗΜΙΟΥΡΓΙΑ:               Κεντρικός υπολογιστής:              
+ +Παρουσίαση πληροφοριών κλήσης καναλιού διασκέψης +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
ΚΑΤΑΣΤΑΣΗ:
+
+Κλήση επόμενου αριθμού
+ ΠΡΟΒΟΛΗ ΟΔΗΓΟΥ
+ ΚΛΗΣΗ ENAΛ/ΚΟΥ ΤΗΛΕΦΩΝΟΥ
+ + +ΑΡΧΕΙΟ ΗΧΟΓΡ:
+
+
+ΤΑΥΤΟΤΗΤΑ ΕΓΓΡΑΦΗΣ:
+
+ +Εναρξη ηχογράφισης
+
+Σελίδα Διαδικτύου
+ 0) + {echo "\"Σελίδα
\n";} +?> +
+Στάθμευση Κλήσης
+Μεταφορά - διάσκεψη
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Κλείσιμο Πελάτη
+
+
Στείλε DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Κανάλι:
Πληροφορίες Πελάτη:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Τίτλος:   Πρώτο:   Μσ:  Επίθετο:
Διεύθυνση1:
Διεύθυνση2: Διεύθυνση3:
Πόλη: Κράτος: Ταχ.Κωδ.:
Επαρχία: ID προμηθευτού: Φύλο:
Τηλ: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +Κωδικός Κλήσης: Εναλ/κό Τηλ:
Παρουσίαση: Ηλεκτρονικό ταχυδρομείο:
Σχολιάζει: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/voicemail_check.php new file mode 100644 index 00000000..27af6fe3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_el/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Ακυρο Όνομα χρήστη/Κωδικός πρόσβασης: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Ακυρο server_ip: |$server_ip| or Ακυρο session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Ακυρο session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Έλεγχος φωνητικού ταχυδρομείου"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "Κουτί φωνητικού ταχυδρομείου $vmail_box δεν ισχύει\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_en/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_en/vicidial.php new file mode 100644 index 00000000..3881d790 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_en/vicidial.php @@ -0,0 +1,29 @@ +\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"click here to continue. . .\n"; +echo"\n"; + +exit; +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/active_list_refresh.php new file mode 100644 index 00000000..2ffce645 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Mostrar Listas: "; +if ($ADD==1) {echo "Extensiones Activas";} +if ($ADD==2) {echo "Extensiones Ocupadas";} +if ($ADD==3) {echo "Líneas de salida";} +if ($ADD==4) {echo "Extensiones Locales";} +if ($ADD==5) {echo "Conferencias";} +if ($ADD==99999) {echo "AYUDA";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/astguiclient.php new file mode 100644 index 00000000..63b79c83 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Usted ahora ha registrado hacia fuera. Gracias\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "web client astGUIclient: Conexión\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conexión
 
Conexión Del Usuario:
Contraseña Del Usuario:
Conexión Del Teléfono:
Contraseña Del Teléfono:

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "web client astGUIclient: Conexión Del Teléfono\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Español
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Conexión Del Teléfono
 
Conexión Del Teléfono:
Contraseña Del Teléfono:

VERSIÓN: $version       CONSTRUCCION: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "web client astGUIclient: Conexión Del Teléfono\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conexión Del Teléfono
 
Disculpe, la conexión del teléfono y contraseña no están activos en este sistema, intentelo otra vez por favor:
 
Conexión Del Teléfono:
Contraseña Del Teléfono:

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "web client astGUIclient\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +SALIR
\n"; ?> +
Pantalla PrincipalPantalla Lineas ActivasPantalla de ConferenciasComprobar buzón de vozLlamada Activa
+
+ + +

Logout
+
+ + +
TRUNK COLGAR

+ Active Trunks Menu
+ Colgar Trunk   |   + Capturar Trunk   |   + Escuchar Trunk   |   + Recarga   |   + Volver a la pantalla principal +
+
+ + +
Colgar Local

+ Menú Local Activa
+ Colgar Local   |   + Capturar Local   |   + Escuchar Local   |   + Recarga   |   + Volver a la pantalla principal +
+
+ + + + + + + +
TRANSFERIR LLAMADA ACTIVA
Canal que va a ser transferido: Canal
Extensiones:
Menú Extensiones
+
+ Envíe a la extensión seleccionada

+ Enviar al buzón de voz seleccionada

+ Envíe a este número:


+ Recarga


+ Volver a la pantalla principal

+
Conferencias:
(Pinchar en un número de abajo para enviar a una conferencia)
Enviar mi canal también
Menú de Conferencias
+
+ + + + + +
Marcar a Extensiones LOCALES
Teléfono llamando desde: Canal
Extensiones:
Menú Extensiones
+
+ Llamar extensión seleccionada

+ Llamar buzón de voz seleccionado

+ Recarga


+ Volver a la pantalla principal

+
+
+ + +
LLAMADAS APARCADAS:
+ Volver a la pantalla principal

+
+
+ + + + + + + + + + + + + + + +
  +
BUZÓN DE VOZ     NUEVO:     VIEJO:             MARCADO MANUAL       DIAL
LLAMADAS APARCADAS: 0                MARCAR EXTENSIONES LOCALES
LLAMADAS SALIENTES:
LLAMADAS ENTRANTES:
versión astGUIclient del tela-cliente: CONSTRUCCION:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
FAVORITOS       corrija
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
FAVORITOS

 
SOMETA LOS CAMBIOS de los FAVORITOS - requiere registro de estado de la máquina
DE NUEVO A VENTANA PRINCIPAL - no haga caso de los cambios realizados
+
+ +
+ + + + + + + + + + + + + +
+PARADA | COMIENZO     Actualizar la tarifa: 1000 ms Más rápido | Más lento

+
Inizializando..
+
Extensiones Activas
+ACTUALIZAR | +ORDEN | +
Líneas de salida
+ACTUALIZAR | +ORDEN | +
Extensiones Locales
+ACTUALIZAR | +ORDEN | +
+ Los Datos Van Aquí

+
+ Los Datos Van Aquí

Acciones en Trunk +
+ Los Datos Van Aquí

Acción Local +
+
+ + + + +
+ + +Lista De las Conferencias + + + +
+Pinchar a la izquierda del número de una sala de conferencias para obtener información +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/call_log_display.php new file mode 100644 index 00000000..9c2947cd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Motrar el registro de llamadas"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten No es válido o protocolo $protocol No es válido\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/conf_exten_check.php new file mode 100644 index 00000000..6811e306 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Comprobar la Extensión de Conf"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten No es válido\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is en is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Pide, en la cola: $RingCalls";} + else {$RingCalls = "Pide, en la cola: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|COMIENZO",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_SALIR';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Estado: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$CanalA[$counter] ~"; + # echo "$CanalA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten No es válido or Exten $exten No es válido\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Conferencia $conf_exten Ha sido registrado para $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/inbound_popup.php new file mode 100644 index 00000000..7555421a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +LLAMADA DE ENTRADA ACTIVA"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

LLAMADA DE ENTRADA ACTIVA

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid No es válido\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Canal: $row[1]
LlamadorID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Canal=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "A MEDIDA - \n"; + + echo "
Número Marcado: $row[8]
Notas:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "COLGAR - \n"; + echo "ENVIAR A MI BUZÓN DE VOZ\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/live_exten_check.php new file mode 100644 index 00000000..28404681 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Comprobar Extensión Activa"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten No es válido o protocolo $protocol No es válido\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/manager_send.php new file mode 100644 index 00000000..46379145 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Enviar al Manager: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AYUDA";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten No es válido or queryCID $queryCID No es válido, Originate comando no insertado\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando enviado a Exten $exten Canal $channel en $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "extenName $extenName debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "\nOriginateName Action no enviado\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "extenName $extenName debe ser fijado\n"; + echo "exten $exten debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "\nOriginateNameVmail Action no enviado\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten No es válido or queryCID $queryCID No es válido, Originate comando no insertado\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR No está autorizado para marcar en sesiones de otro agente $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando enviado a Exten $exten Canal $channel en $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten No es válido or ext_context $ext_context or queryCID $queryCID No es válido, Hangup comando no insertado\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Canal $channel No es válido or queryCID $queryCID No es válido, Hangup comando no insertado\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel no está activo en $call_server_ip, Checking Live Canal...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Canal $channel no está activo en $call_server_ip, Hangup comando no insertado $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Canal $channel in use by another agent en $call_server_ip, Hangup comando no insertado $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup comando enviado a Canal $channel en $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "exten $exten debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "auto_dial_level $auto_dial_level debe ser fijado\n"; + echo "campaign $campaign debe ser fijado\n"; + echo "uniqueid $uniqueid debe ser fijado\n"; + echo "lead_id $lead_id debe ser fijado\n"; + echo "\nRedirectVD Action no enviado\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "exten $exten debe ser fijado\n"; + echo "extenName $extenName debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "parkedby $parkedby debe ser fijado\n"; + echo "\nRedirectToPark Action no enviado\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "exten $exten debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "\nRedirectFromPark Action no enviado\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "extenName $extenName debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "\nRedirectName Action no enviado\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "extenName $extenName debe ser fijado\n"; + echo "exten $exten debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "\nRedirectNameVmail Action no enviado\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "ExtraCanal $extrachannel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "exten $exten debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "\nRedirect Action no enviado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference en $server_ip, Redirect comando no insertado\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No puede encontrar conferencia vacía en $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canal $channel no está activo en $call_server_ip, Redirect comando no insertado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canal $channel no está activo en $server_ip, Redirect comando no insertado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect comando no insertado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX comando enviado a Canal $channel en $call_server_ip and \nHungup $extrachannel en $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel en $call_server_ip, Hungup $extrachannel en $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel en $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "ExtraCanal $extrachannel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "exten $exten debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "session_id $session_id debe ser fijado\n"; + echo "\nRedirect Action no enviado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference en $server_ip, Redirect comando no insertado\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No puede encontrar conferencia vacía en $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canal $channel no está activo en $call_server_ip, Redirect comando no insertado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canal $channel no está activo en $server_ip, Redirect comando no insertado\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel no está activo en $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra comando enviado a Canal $channel and \nExtraCanal $extrachannel\n to $exten en $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten en $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra comando enviado a Canal $channel en $call_server_ip and \nExtraCanal $extrachannel\n to $exten en $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una de estas variables No es válido:\n"; + echo "Canal $channel debe ser mayor de 2 caracteres\n"; + echo "queryCID $queryCID debe ser mayor de 14 caracteres\n"; + echo "exten $exten debe ser fijado\n"; + echo "ext_context $ext_context debe ser fijado\n"; + echo "ext_priority $ext_priority debe ser fijado\n"; + echo "\nRedirect Action no enviado\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canal $channel no está activo en $server_ip, Redirect comando no insertado\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect comando enviado a Canal $channel en $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canal $channel No es válido or queryCID $queryCID No es válido or filename: $filename No es válido, $ACTION comando no insertado\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canal $channel no está activo en $server_ip, $ACTION comando no insertado\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION comando enviado a Canal $channel en $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canal $channel No es válido or exten $exten No es válido or filename: $filename No es válido, $ACTION comando no insertado\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going en in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION comando enviado a Canal $channel en $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n LA GRABACIÓN DURARÁ HASTA 60 MINUTOS\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Conferencia $exten, Stage $stage No es válido or queryCID $queryCID No es válido, Originate comando no insertado\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume comando enviado a Conferencia $exten, Stage $stage Canal $channel en $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/park_calls_display.php new file mode 100644 index 00000000..0e512d2b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Mostrar Llamadas Aparcadas"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten No es válido o protocolo $protocol No es válido\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/timeclock.php new file mode 100644 index 00000000..389c84d8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "El usuario y la contraseña que ha introducido no son activos en el sistema
Por favor, inténtelo de nuevo:"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Conexión Del Usuario:
Contraseña Del Usuario:
 

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='COMIENZO', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='COMIENZO'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'COMIENZO') ) + { + ### You cannot log in or out within 30segundos of your last login/logout + $VDdisplayMESSAGE = "No puede iniciar sesión o en un plazo de 30 segundos de su última conexión o desconexión"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Conexión Del Usuario:
Contraseña Del Usuario:
 

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOSALIR') or ($status=='COMIENZO') or ($status=='SALIR') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Ya ha iniciado la sesión en"; + $LOGtimeMESSAGE = "Que en la sesión$NOW_TIME
Cantidad de tiempo que se han registrado en:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='SALIR', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='SALIR', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='SALIR', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOSALIR') or ($status=='COMIENZO') or ($status=='SALIR') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERROR: timeclock entrada de registro ya realizados:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "VOLVER a la pantalla de Inicio";} + if ($referrer=='admin') + {$BACKlink = "VOLVER a la Administración";} + if ($referrer=='welcome') + {$BACKlink = "VOLVER a la pantalla de bienvenida";} + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOSALIR') or ($status=='COMIENZO') or ($status=='SALIR') ) + { + $VDdisplayMESSAGE = "Vez desde que se conectó por última vez en:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "-Usted se conectó por última vez en:$last_action_date

Haga clic en Conectarse a continuación para acceder al sistema"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Cantidad de tiempo que se han registrado en:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'SALIR'; + $LOGtimeMESSAGE = "Iniciado la sesión en que usted en: $last_action_date
Cantidad de tiempo que se han registrado en:$totTIME_HMS

Haga clic a continuación para acceder SALIR-out"; + } + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Conexión Del Usuario:
Contraseña Del Usuario:
 

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vdc_db_query.php new file mode 100644 index 00000000..2792deeb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Database Query Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('SALIR',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("COMIENZO|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("COMIENZO|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: No hay cambios habilitado para su grupo de usuarios\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: No se le permite acceder fuera de su turno\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

GERENTE DE TRANSFERENCIA:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "DirectorConexión:
\n"; + $VDdisplayMESSAGE.= "DirectorContraseña:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Opción Del Grupo $closer_choice No es válido\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Opción Del Grupo $closer_choice se ha registrado al usuario $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories No es válido\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories se ha registrado al usuario $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "TOLVA VACÍA\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context No es válido\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NÚMERO\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NÚMERO\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NÚMERO NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST LLAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST LLAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # LLAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "TOLVA VACÍA\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "TELÉFONO ALT NÚMERO ESTADO NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count No es válido\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "TELÉFONO ALT NÚMERO ESTADO CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage No es válido\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context No es válido\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " LLAMADA NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context No es válido\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # LLAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID No es válido\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "REGISTRO NO ENTRADO\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign No es válido\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Insertado: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "REGISTRO NO ENTRADO\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Insertado: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "REGISTRO NO ENTRADO\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "REGISTRO NO ENTRADO\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id No es válido\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Insertado: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "REGISTRO NO ENTRADO\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "REGISTRO NO ENTRADO\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_PARADA|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|GRABACIÓN_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campaña $campaign No es válido\n"; + echo "lead_id $lead_id No es válido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campaña $campaign No es válido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send en to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If LLAMADABK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user en $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten No es válido\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a SALIR record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','SALIR','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation en the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id No es válido\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### LLAMADABACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### COMIENZO Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Usuario $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Último Attempt, Date of Último Non-Contact, Date of Último Contact, Date of Último Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' se ha cambiado a ' . $dispo_choice . " Estado\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id No es válido\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage No es válido\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' ahora está en estado ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list No es válido\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status No es válido\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### COMIENZO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pausa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Ver las llamadas en cola de personas de movilidad reducida para esta campaña\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data en calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info en the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           LLAMADA GROUP     TYPE  
TAKE LLAMADA     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Ver las llamadas en cola de personas de movilidad reducida para esta campaña\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vicidial.php new file mode 100644 index 00000000..7a22f754 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Usted ahora ha registrado hacia fuera. Gracias\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls en hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofsegundos for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name en login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST en server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a DIAL link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups en campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Colgar al Cliente +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TeléfonoSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT DIAL by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Conexión Otra Vez\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Español
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Conexión Otra Vez
 
Conexión Del Teléfono:
Contraseña Del Teléfono:
Conexión Del Usuario:
Contraseña Del Usuario:
Campaña: $camp_form_code
  \n"; +echo "

VERSIÓN: $version       CONSTRUCCION: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Conexión en la Campaña\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Conexión Del Usuario

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conexión en la Campaña
 
Conexión Del Usuario:
Contraseña Del Usuario:
Campaña: $camp_form_code
  \n"; + echo "

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Conexión\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conexión
 
Conexión Del Teléfono:
Contraseña Del Teléfono:
Conexión Del Usuario:
Contraseña Del Usuario:
Campaña: $camp_form_code
  \n"; + echo "

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Conexión Del Teléfono\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Español
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Conexión Del Teléfono
 
Conexión Del Teléfono:
Contraseña Del Teléfono:
  \n"; +echo "

VERSIÓN: $version       CONSTRUCCION: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('SALIR',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "USTED DEBE ENTRAR A LA PRIMERA TIMECLOCK
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("COMIENZO|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("COMIENZO|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: No hay cambios habilitado para su grupo de usuarios
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: No se le permite acceder fuera de su turno
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

GERENTE DE TRANSFERENCIA:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "DirectorConexión:
\n"; + $VDdisplayMESSAGE.= "DirectorContraseña:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Conexión en la Campaña\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Conexión: \n
"; + echo "Contraseña:
\n"; + echo "Campaña: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PREINICIAR_1|PREINICIAR_2|PREINICIAR_3|PREINICIAR_4|PREINICIAR_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PREINICIAR_1|PREINICIAR_2|PREINICIAR_3|PREINICIAR_4|PREINICIAR_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PREINICIAR_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PREINICIAR_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PREINICIAR_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PREINICIAR_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PREINICIAR_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "La campaña no está activa, intentelo otra vez, por favor
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "La conexión incorrecta, intentelo otra vez, por favor
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Conexión en la Campaña\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conexión en la Campaña
 
Conexión Del Usuario:
Contraseña Del Usuario:
Campaña: $camp_form_code
  \n"; + echo "

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Conexión Del Teléfono Error\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conexión Error
 
Disculpe, la conexión del teléfono y contraseña no están activos en este sistema, intentelo otra vez por favor:
 
Conexión Del Teléfono:
Contraseña Del Teléfono:

VERSIÓN: $version       CONSTRUCCION: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $LlamadorID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TeléfonoSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TeléfonoSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed en this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login en phone: $SIP_user a la campaña: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### COMIENZO SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NUEVO record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today en that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Conexión en la Campaña\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "Lo siento, no hay leads en el hopper de esta campaña\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Conexión: \n
"; + echo "Contraseña:
\n"; + echo "Campaña: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Conexión en la Campaña\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Español
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Conexión: \n
"; + echo "Contraseña:
\n"; + echo "Campaña: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsegundos counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Enero','February','Marcha','Abril','Puede','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +SALIR\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Llamada Activa
+
+ + + + + height=>

Agent Screen
+
+ + +MARCADO MANUAL       DIAL RÁPIDO
+
+ + +X SERVICIOS REPETIDOS ACTIVOS
+
+ + +
+
+ +segundos: +     + + + + D1 - DIAL\n"; + echo "
\n"; + echo "D2 - DIAL\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
SERVICIOS REPETIDOS PARA EL AGENTE :
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. +
+
+
  + Recarga +                 + Vaya Detrás +
+
+ + + height=460>
NUEVO PLOMO MANUAL DEL DIAL PARA :

Incorpore la información abajo para el nuevo plomo que usted desea llamar. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Dial Código:   (Éste es generalmente un 1 en los U.S.A. y el Canadá)
Teléfono Number: +   (12 digits max - digits only) +
Plomos Existentes De la Búsqueda:   (Esta opción si está comprobada procurará encontrar el número de teléfono en el sistema antes de insertarlo como nuevo plomo)
+

+     +
+

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í.
 
Inválidoación Del Dial:   (los dígitos satisfacen solamente) +
+
+ Dial Ahora +                 + Vista previa de llamada +                 + Vaya Detrás +
+
+ + + +
+
+ + + + +Su Estado:
Calls Dialing: +
+ + + + + > + + +
+
+ + Transferencia - Conferencia            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + CLOSER LOCAL     + + Colgar Línea Xfer +
+ seconds +   + channel + + CONSULTIVO   + + Colgar Ambas Líneas +
+ Número a llamar +   +   + + + INVALIDACIÓN DEL MARCADO + + ABANDONAR LLAMADA 3-WAY +
+ Marcar Blind Transfer +   + Marcar Con El Cliente +   + Dial Del Cliente Del Parque +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Llamadas en cola:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Ocultar las llamadas en cola\n";} + else + {echo "Pide Mostrar la cola\n";} + } +?> + + + +
  +Otros agentes de Estado:  
 
+ +
+Agentes disponibles de transferencia:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Lead Dispositioned Como:

+ -
+
+
+ + + height=70> + + + + +
Teclas de acceso rápido a la Disposición: + 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:
+ + + + + +
+
+ + + height=70> + + + + + + +
Información Anterior Del Servicio repetido: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Teléfono de Información ampliado Alt: reduzca al mínimo
+
+
+
+
+ +
+
+ + + + + +
maximice
Alt Teléfono Info
+
+ + + height=500>
Nadie está en su sesión:
+ Vaya Detrás +

+ Agente De la Llamada Otra vez +
+
+ + + height=500>
El cliente ha colgado:
+ Vaya Detrás +

+ Final y llamada de la disposición +
+
+ + + height=550>
Llamada Wrapup: segundos restantes en wrapup

+ +

+ Final Wrapup y movimiento encendido +
+
+ + +
+


+ Cerrar Mensaje +
+
+ + + height=500>
Se ha inhabilitado su sesión
SALIR

Vaya Detrás +
+
+ + + height=500>
Hay un problema de sincronización de tiempo con su sistema, por favor, dígale a su administrador del sistema


Vaya Detrás +
+
+ + + height=500>

SALIR
+
+ + +
+
+ + +
 
+
+ + + height=47>
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.
+
+ + + height=460>
DISPOSITION LLAMADA :       Retraso Otra vez       reduzca al mínimo
+ selección de la disposición del End-of-call +
+ PARAR LA LLAMADA
+ REINICIAR | + ENVIAR +

+ WEB FORM ENVIAR +

  +
+
+ + + height=460>
SELECCIONE Un CÓDIGO De la PAUSA :
+ Pausa Code Selection + +

  +
+
+ + + height=460>
SELECCIONAR UN GRUPO DE ALIAS :
+ Grupo de Selección de Alias + +

  +
+
+ + + + + + height=460>
Seleccione una fecha del servicio repetido :
+ + + Seleccione una fecha abajo   +     + Hour: +   + Minutes: +   + +  
+ MI SERVICIO REPETIDO SOLAMENTE
";} + ?> + Comentarios de los CBES:

+ + ENVIAR

+ +

  +
+
+ + + height=460>
SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER
+ SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + BLENDED LLAMADAING(Salientes activdas)
+ + REINICIAR | + ENVIAR +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ REINICIAR | + ENVIAR +



  +
+
+ + + + Canal + Canal + MI SERVICIO REPETIDO SOLAMENTE
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " BLENDED LLAMADAING
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +TECLAS ACCESO RÁPIDO INACTIVAS + + + + +> + + + + +
Agent web-client version:     CONSTRUCCION:               Servidor:              
+ +Mostrar la información del canal Conferencia +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
ESTADO:
+
+Marcar el Siguiente Número
+ MOSTRAR LEAD
+ TELÉFONO DEL ALT
+ + +GRABANDO ARCHIVO:
+
+
+GRABACIÓN ID:
+
+ +Comenzar La Grabación
+
+Formulario Web
+ 0) + {echo "\"Formulario
\n";} +?> +
+Aparcar llamada
+Transferencia - Conferencia
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Colgar al Cliente
+
+
Enviar DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Canal:
Información Del Cliente:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Título:   Primero:   IM:   Último:
Dirección1:
Dirección2: Dirección3:
Ciudad: Estado: CódigoPostal:
Provincia: VendedorID: Género:
Teléfono: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +Código Del Dial: Teléfono Alt:
Demostración: Email:
Comentarios: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/voicemail_check.php new file mode 100644 index 00000000..5000b441 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_es/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Nombre del usuario/Contraseña: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Comprobar el buzón de voz"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "caja del buzón de voz $vmail_box No es válido\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/active_list_refresh.php new file mode 100644 index 00000000..95bd4142 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Mode Liste: "; +if ($ADD==1) {echo "Extensions en cours d'appel";} +if ($ADD==2) {echo "Extensions Occupées";} +if ($ADD==3) {echo "Lignes Extérieures";} +if ($ADD==4) {echo "Extensions Locales";} +if ($ADD==5) {echo "Conférences";} +if ($ADD==99999) {echo "AIDE";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/astguiclient.php new file mode 100644 index 00000000..a95ff105 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Vous êtes maintenant déconnecté.\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "astGUIclient Client Web: Ouverture de Session\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ouverture de Session
 
Ouverture de Session:
Mot de passe Utilisateur:
Ouverture de Session téléphonique:
Mot de passe du Téléphone:

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "astGUIclient Client Web: Ouverture de Session téléphonique\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Français
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Ouverture de Session téléphonique
 
Ouverture de Session téléphonique:
Mot de passe du Téléphone:

VERSION: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "astGUIclient Client Web: Ouverture de Session téléphonique\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ouverture de Session téléphonique
 
L'ouverture de la session Téléphonique à échoué, réessayez:
 
Ouverture de Session téléphonique:
Mot de passe du Téléphone:

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "astGUIclient Client Web\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +DÉCONNEXION
\n"; ?> +
Ecran PrincipalLignes ActivesConférencesConsulter Votre Boite VocaleAppel en cours
+
+ + +

Logout
+
+ + +
TRUNK RACCROCHER

+ Active Trunks Menu
+ Raccrocher le Faisceau   |   + Intercepter le Faisceau   |   + Ecoute du Faisceau   |   + Rafraichir   |   + Retour à la Fenêtre Principale +
+
+ + +
RACROCHAGE LOCAL

+ Menu Local Actif
+ Raccrochage Local   |   + Interception Locale   |   + Ecoute Locale   |   + Rafraichir   |   + Retour à la Fenêtre Principale +
+
+ + + + + + + +
TRANSFERT D'APPEL EN COURS
Canal à transférer: Canal
Extensions:
Extensions
+
+ Renvoyer l'Appel

+ Renvoyer vers la Boite Vocale

+ Renvoyer vers ce Numéro:


+ Rafraichir


+ Retour à la Fenêtre Principale

+
Conférences:
(Selectionnez un Numéro de Conférence)
Renvoyez également mon canal
Conférences
+
+ + + + + +
Composer une Extension LOCALE
Téléphone appelant de: Canal
Extensions:
Extensions
+
+ Appeler l'extension séléctionnée

+ Appeler la boite vocale séléctionnée

+ Rafraichir


+ Retour à la Fenêtre Principale

+
+
+ + +
APPELS EN ATTENTE:
+ Retour à la Fenêtre Principale

+
+
+ + + + + + + + + + + + + + + +
  +
Boite Vocale     NOUVEAU:     ANCIEN:             APPEL MANUEL       DIAL
APPELS EN ATTENTE: 0                EXTENSIONS LOCALES
APPELS SORTANTS:
APPELS ENTRANTS:
astGUIclient Client Web: BUILD:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
FAVORIS       Modifier
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
FAVORIS

 
Modification de paramétrage - vous devrez vous fermer la session
RETOUR À LA FENÊTRE PRINCIPALE - annuler les modifications
+
+ +
+ + + + + + + + + + + + + +
+ARRÊT | DEBUT     Vitesse de rafraichissement: 1000 ms Plus rapidement | Plus lentement

+
Initialisation..
+
Extensions Actives
+RAFRAICHIR | +ORDRE | +
Lignes Extérieures
+RAFRAICHIR | +ORDRE | +
Extensions Locales
+RAFRAICHIR | +ORDRE | +
+ Données Transférées vers

+
+ Données Transférées vers

Action sur Faisceau +
+ Données Transférées vers

Action Locale +
+
+ + + + +
+ + +Liste Des Conférences + + + +
+Cliquez à Gauche du numéro de salle de conférence pour obtenir des informations +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/call_log_display.php new file mode 100644 index 00000000..46d08fdc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Affichage de l'historique d'Appel"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten est invalide ou protocole $protocol est invalide\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/conf_exten_check.php new file mode 100644 index 00000000..14e91144 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Vérification de l'extension de la Conférence"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten est invalide\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is sur is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Appels dans la file d'attente: $RingCalls";} + else {$RingCalls = "Appels dans la file d'attente: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|DEBUT",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_DÉCONNEXION';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Statut: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$CanalA[$counter] ~"; + # echo "$CanalA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten est invalide or Exten $exten est invalide\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Conférence $conf_exten a été attribué à $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/inbound_popup.php new file mode 100644 index 00000000..b9caf9bb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +APPEL ENTRANT EN COURS"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

APPEL ENTRANT EN COURS

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid est invalide\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Canal: $row[1]
Appelant: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Canal=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "COUTUME - \n"; + + echo "
Numéro Composé: $row[8]
Notes:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "RACCROCHER - \n"; + echo "ENVOYEZ VERS MA BOITE VOCALE\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/live_exten_check.php new file mode 100644 index 00000000..6d0bee78 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Vérification De l'extension"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten est invalide ou protocole $protocol est invalide\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "CanalA: $ChanneLA[$counter] ~"; + echo "CanalB: $ChanneLB[$counter] ~"; + echo "CanalBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/manager_send.php new file mode 100644 index 00000000..b65fac24 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Envoi de l'Administrateur: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AIDE";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten est invalide or queryCID $queryCID est invalide, Originate commande non insérée\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate commande envoyée pour Exten $exten Canal $channel sur $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "extenName $extenName est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "\nOriginateName Action pas envoyé\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "extenName $extenName est obligatoire\n"; + echo "exten $exten est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "\nOriginateNameVmail Action pas envoyé\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten est invalide or queryCID $queryCID est invalide, Originate commande non insérée\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Vous n-êtes pas autorisé à composer dans les séances d-un autre agent $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate commande envoyée pour Exten $exten Canal $channel sur $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten est invalide or ext_context $ext_context or queryCID $queryCID est invalide, Hangup commande non insérée\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Canal $channel est invalide or queryCID $queryCID est invalide, Hangup commande non insérée\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel n'est pas en ligne sur $call_server_ip, Checking Live Canal...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Canal $channel n'est pas en ligne sur $call_server_ip, Hangup commande non insérée $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Canal $channel in use by another agent sur $call_server_ip, Hangup commande non insérée $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup commande envoyée pour Canal $channel sur $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "exten $exten est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "auto_dial_level $auto_dial_level est obligatoire\n"; + echo "campaign $campaign est obligatoire\n"; + echo "uniqueid $uniqueid est obligatoire\n"; + echo "lead_id $lead_id est obligatoire\n"; + echo "\nRedirectVD Action pas envoyé\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "exten $exten est obligatoire\n"; + echo "extenName $extenName est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "parkedby $parkedby est obligatoire\n"; + echo "\nRedirectToPark Action pas envoyé\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "exten $exten est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "\nRedirectFromPark Action pas envoyé\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "extenName $extenName est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "\nRedirectName Action pas envoyé\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "extenName $extenName est obligatoire\n"; + echo "exten $exten est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "\nRedirectNameVmail Action pas envoyé\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "ExtraCanal $extrachannel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "exten $exten est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "\nRedirect Action pas envoyé\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference sur $server_ip, Redirect commande non insérée\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Il n'y a pas de conférence disponible sur $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canal $channel n'est pas en ligne sur $call_server_ip, Redirect commande non insérée\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canal $channel n'est pas en ligne sur $server_ip, Redirect commande non insérée\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect commande non insérée\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX commande envoyée pour Canal $channel sur $call_server_ip and \nHungup $extrachannel sur $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel sur $call_server_ip, Hungup $extrachannel sur $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel sur $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "ExtraCanal $extrachannel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "exten $exten est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "session_id $session_id est obligatoire\n"; + echo "\nRedirect Action pas envoyé\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference sur $server_ip, Redirect commande non insérée\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Il n'y a pas de conférence disponible sur $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canal $channel n'est pas en ligne sur $call_server_ip, Redirect commande non insérée\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canal $channel n'est pas en ligne sur $server_ip, Redirect commande non insérée\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel n'est pas en ligne sur $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra commande envoyée pour Canal $channel and \nExtraCanal $extrachannel\n to $exten sur $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten sur $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra commande envoyée pour Canal $channel sur $call_server_ip and \nExtraCanal $extrachannel\n to $exten sur $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Une de ces variables est invalide:\n"; + echo "Canal $channel doit avoir plus de 2 caractères \n"; + echo "queryCID $queryCID doit avoir plus de 14 caractères \n"; + echo "exten $exten est obligatoire\n"; + echo "ext_context $ext_context est obligatoire\n"; + echo "ext_priority $ext_priority est obligatoire\n"; + echo "\nRedirect Action pas envoyé\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canal $channel n'est pas en ligne sur $server_ip, Redirect commande non insérée\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect commande envoyée pour Canal $channel sur $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canal $channel est invalide or queryCID $queryCID est invalide or filename: $filename est invalide, $ACTION commande non insérée\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canal $channel n'est pas en ligne sur $server_ip, $ACTION commande non insérée\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION commande envoyée pour Canal $channel sur $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canal $channel est invalide or exten $exten est invalide or filename: $filename est invalide, $ACTION commande non insérée\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going sur in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION commande envoyée pour Canal $channel sur $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n L'ENREGISTREMENT DURERA AU MAXIMUM 60 MINUTES\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Conférence $exten, Stage $stage est invalide or queryCID $queryCID est invalide, Originate commande non insérée\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume commande envoyée pour Conférence $exten, Stage $stage Canal $channel sur $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/park_calls_display.php new file mode 100644 index 00000000..e14563f4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Affichage des appels en Attente"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten est invalide ou protocole $protocol est invalide\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/timeclock.php new file mode 100644 index 00000000..1d14200a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "L'utilisateur et le mot de passe que vous avez entrés ne sont pas actifs dans le système
S'il vous plaît essayez de nouveau:"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Ouverture de Session:
Mot de passe Utilisateur:
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='DEBUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='DEBUT'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'DEBUT') ) + { + ### You cannot log in or out within 30secondes of your last login/logout + $VDdisplayMESSAGE = "Vous ne pouvez pas vous connecter ou dans un délai de 30 secondes de votre dernière connexion ou déconnexion"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Ouverture de Session:
Mot de passe Utilisateur:
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTODÉCONNEXION') or ($status=='DEBUT') or ($status=='DÉCONNEXION') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Vous avez maintenant connecté à"; + $LOGtimeMESSAGE = "Vous vous êtes connecté à$NOW_TIME
Montant de temps vous avez été enregistrés dans:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='DÉCONNEXION', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='DÉCONNEXION', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='DÉCONNEXION', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTODÉCONNEXION') or ($status=='DEBUT') or ($status=='DÉCONNEXION') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERREUR: timeclock entrée de journal déjà fait:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "RETOUR à l'Agent Ouverture de Session Screen";} + if ($referrer=='admin') + {$BACKlink = "RETOUR à l'administration";} + if ($referrer=='welcome') + {$BACKlink = "RETOUR à l'écran de bienvenue";} + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTODÉCONNEXION') or ($status=='DEBUT') or ($status=='DÉCONNEXION') ) + { + $VDdisplayMESSAGE = "Temps écoulé depuis la dernière session ont été vous-en:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Vous dernière connecté à:$last_action_date

Cliquez ci-dessous pour LOGIN log-in"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Montant de temps vous avez été enregistrés dans:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'DÉCONNEXION'; + $LOGtimeMESSAGE = "Vous vous êtes inscrit en ligne à: $last_action_date
Montant de temps vous avez été enregistrés dans:$totTIME_HMS

Cliquez ci-dessous pour vous connecter DÉCONNEXION-out"; + } + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Ouverture de Session:
Mot de passe Utilisateur:
 

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vdc_db_query.php new file mode 100644 index 00000000..03226f50 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script De Requète à la Base de données"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('DÉCONNEXION',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("DEBUT|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("DEBUT|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERREUR: Il n'y a pas de changements activée pour votre groupe d'utilisateurs\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERREUR: Vous n'êtes pas autorisés à se connecter à l'extérieur de votre quart de travail\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "GestionnaireOuverture de Session:
\n"; + $VDdisplayMESSAGE.= "GestionnaireMot de passe:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Selection De Groupe $closer_choice est invalide\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Selection De Groupe $closer_choice a été attribué à l'utilisateur $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories est invalide\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories a été attribué à l'utilisateur $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "LISTE D'APPEL VIDE\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context est invalide\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NOMBRE\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NOMBRE\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NOMBRE NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST APPEL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST APPEL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # APPELOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "LISTE D'APPEL VIDE\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "TELEPHONE 2nd. NOMBRE STATUT NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count est invalide\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "TELEPHONE 2nd. NOMBRE STATUT CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage est invalide\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context est invalide\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " APPEL NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context est invalide\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # APPELOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID est invalide\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "NOTATION NON ENTRÉE\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign est invalide\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inséré: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "NOTATION NON ENTRÉE\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Inséré: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "NOTATION NON ENTRÉE\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "NOTATION NON ENTRÉE\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id est invalide\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inséré: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "NOTATION NON ENTRÉE\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "NOTATION NON ENTRÉE\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_ARRÊT|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|ENREGISTREMENT_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campagne $campaign est invalide\n"; + echo "lead_id $lead_id est invalide\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campagne $campaign est invalide\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send sur to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If APPELBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user sur $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten est invalide\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a DÉCONNEXION record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','DÉCONNEXION','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation sur the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id est invalide\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### APPELBACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### DEBUT Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Utilisateur $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Nom Attempt, Date of Nom Non-Contact, Date of Nom Contact, Date of Nom Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' a été changé en ' . $dispo_choice . " Statut\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id est invalide\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage est invalide\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' le statut actuel est ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list est invalide\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status est invalide\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### DEBUT QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pause Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Appels en attente Voir désactivé pour cette campagne\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data sur calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info sur the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           APPEL GROUP     TYPE  
TAKE APPEL     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Appels en attente Voir désactivé pour cette campagne\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vicidial.php new file mode 100644 index 00000000..fcf7013d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Vous êtes maintenant déconnecté.\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls sur hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofsecondes for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name sur login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST sur server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a COMPOSER link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups sur campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Raccrocher +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TéléphoneSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT COMPOSER by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: S'identifier à nouveau\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Français
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
S'identifier à nouveau
 
Ouverture de Session téléphonique:
Mot de passe du Téléphone:
Ouverture de Session:
Mot de passe Utilisateur:
Campagne: $camp_form_code
  \n"; +echo "

VERSION: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Ouverture de Campagne\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Ouverture de Session

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ouverture de Campagne
 
Ouverture de Session:
Mot de passe Utilisateur:
Campagne: $camp_form_code
  \n"; + echo "

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Ouverture de Session\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ouverture de Session
 
Ouverture de Session téléphonique:
Mot de passe du Téléphone:
Ouverture de Session:
Mot de passe Utilisateur:
Campagne: $camp_form_code
  \n"; + echo "

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Ouverture de Session téléphonique\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Français
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Ouverture de Session téléphonique
 
Ouverture de Session téléphonique:
Mot de passe du Téléphone:
  \n"; +echo "

VERSION: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('DÉCONNEXION',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Vous devez vous connecter pour timeclock LE PREMIER
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("DEBUT|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("DEBUT|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERREUR: Il n'y a pas de changements activée pour votre groupe d'utilisateurs
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERREUR: Vous n'êtes pas autorisés à se connecter à l'extérieur de votre quart de travail
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "GestionnaireOuverture de Session:
\n"; + $VDdisplayMESSAGE.= "GestionnaireMot de passe:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Ouverture de Campagne\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Ouverture de Session: \n
"; + echo "Mot de passe:
\n"; + echo "Campagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PREINITIALISATION_1|PREINITIALISATION_2|PREINITIALISATION_3|PREINITIALISATION_4|PREINITIALISATION_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PREINITIALISATION_1|PREINITIALISATION_2|PREINITIALISATION_3|PREINITIALISATION_4|PREINITIALISATION_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PREINITIALISATION_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PREINITIALISATION_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PREINITIALISATION_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PREINITIALISATION_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PREINITIALISATION_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Campagne inactive, réessayez
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "L'ouverture de session a èchoué, réessayez
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Ouverture de Campagne\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ouverture de Campagne
 
Ouverture de Session:
Mot de passe Utilisateur:
Campagne: $camp_form_code
  \n"; + echo "

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Ouverture de Session téléphonique Error\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ouverture de Session Error
 
L'ouverture de la session Téléphonique à échoué, réessayez:
 
Ouverture de Session téléphonique:
Mot de passe du Téléphone:

VERSION: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $Appelant_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TéléphoneSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TéléphoneSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed sur this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login sur phone: $SIP_user Campagne:: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### DEBUT SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NOUVEAU record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today sur that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Ouverture de Campagne\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "Aucune fiche client n'est éligible pour cette campagne\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Ouverture de Session: \n
"; + echo "Mot de passe:
\n"; + echo "Campagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Ouverture de Campagne\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Français
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Ouverture de Session: \n
"; + echo "Mot de passe:
\n"; + echo "Campagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsecondes counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Janvier','February','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +DÉCONNEXION\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Appel en cours
+
+ + + + + height=>

Agent Screen
+
+ + +APPEL MANUEL       CADRAN RAPIDE
+
+ + +X RAPPELS EN COURS
+
+ + +
+
+ +secondes: +     + + + + D1 - COMPOSER\n"; + echo "
\n"; + echo "D2 - COMPOSER\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
RAPPELS PERSONNELS :
Selectionnez un rappel a éffectuer immédiatement. Une fois éffectué, ce rappel diparaitra de la liste. +
+
+
  + Rafraichir +                 + Retour +
+
+ + + height=460>
NOUVEL APPEL MANUEL VERS :

Nouveau prospect: remplissez le formulaire ci dessous. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Code d'Appel:   (La valeur de ce champ est habituellement 1 aux Etats-Unis et au Canada)
Téléphone Number: +   (12 digits max - digits only) +
Rechercher dans les fiches client existantes:   (Si cette option est activée, le numéro de téléphone sera recherché dans la base avant d'être inséré)
+

+     +
+

Si vous désirez composer un numéro sans insérer de nouvelle fiche client, entrez le N° a appeler dans le champ Surnumerotation. Pour raccrocher cet appel, vous devrez ouvrir la page Appels en Cours et raccrocher manuellement le canal correspondant.
 
Surnumérotation:   (Ce champ n'accepte que des chiffres) +
+
+ Appel Manuel +                 + Preview Call +                 + Retour +
+
+ + + +
+
+ + + + +Votre Statut:
Calls Dialing: +
+ + + + + > + + +
+
+ + Transfert - Conférence            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + CLOSER LOCAL     + + Raccrocher la ligne transférée +
+ seconds +   + channel + + CONSULTATIF   + + Raccrocher les deux lignes +
+ Numéro à appeler +   +   + + + SURNUMEROTATION + + QUITTER LA CONF A 3 +
+ Transfert immédiat +   + Appel Client +   + Mettre en Attente +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Appels en attente:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Cacher les appels en attente\n";} + else + {echo "Afficher les appels en attente\n";} + } +?> + + + +
  +Autres agents Etat:  
 
+ +
+Transfert des agents disponibles:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Fiche Prospect Statuée en:

+ -
+
+
+ + + height=70> + + + + +
Raccourcis clavier des Statut: + Si actif, utilisez le raccourci clavier pour statuer et raccrocher un appel:
+ + + + + +
+
+ + + height=70> + + + + + + +
Information De Rappels: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Extended Information Alt Téléphone: réduire
+
+
+
+
+ +
+
+ + + + + +
agrandir
Alt Téléphone Info
+
+ + + height=500>
Votre session est vide:
+ Retour +

+ Rappeler l'agent +
+
+ + + height=500>
Le client a raccroché:
+ Retour +

+ Terminer et Statuer l'Appel +
+
+ + + height=550>
Traitement Post Appel : secondes restant pour le traitement post appel

+ +

+ Terminer le traitement post appel et continuer +
+
+ + +
+


+ Fermer Message +
+
+ + + height=500>
Votre session a été neutralisée
DÉCONNEXION

Retour +
+
+ + + height=500>
Il ya un problème de synchronisation avec votre système, s'il vous plaît dites-le à votre administrateur système


Retour +
+
+ + + height=500>

DÉCONNEXION
+
+ + +
+
+ + +
 
+
+ + + height=47>
Aucune modification ne peut être prise en compte, les modifications doivent être validées avant de raccrocher.
+
+ + + height=460>
STATUER L'APPEL :       Décrochement Encore       réduire
+ Selection du status de fin d'appel +
+ PAUSE DE LA NUMEROTATION
+ EFFACER LE FORMULAIRE | + VALIDER +

+ WEB FORM VALIDER +

  +
+
+ + + height=460>
CHOISISSEZ Un CODE De PAUSE :
+ Pause Code Selection + +

  +
+
+ + + height=460>
CHOISIR UN GROUPE ALIAS :
+ Groupe de sélection Alias + +

  +
+
+ + + + + + height=460>
Choisissez une date de Rappel :
+ + + Choisissez une date ci-dessous   +     + Hour: +   + Minutes: +   + +  
+ RAPPELS PERSONNELS
";} + ?> + Commentaires du Rappel:

+ + VALIDER

+ +

  +
+
+ + + height=460>
UN CHOIX DE GROUPE D'ARRIVÉE PLUS ÉTROIT
+ Un Choix De Groupe D'arrivée Plus étroit +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + APPEL EN MODE BLENDED(Mode "Appels Sortants" Activé)
+ + REINITIALISATION | + VALIDER +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ REINITIALISATION | + VALIDER +



  +
+
+ + + + Canal + Canal + RAPPELS PERSONNELS
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " APPEL EN MODE BLENDED
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +RACCOURCIS INACTIFS + + + + +> + + + + +
Agent web-client version:     BUILD:               Serveur:              
+ +Montrez les informations sur la conférence +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
STATUT:
+
+Appel Numéro Suivant
+ Prévisualisation
+ APPEL NUM. 2nd.
+ + +ENREGISTREMENT:
+
+
+IDENTIFIANT:
+
+ +Enregistrer
+
+Formulaire Web
+ 0) + {echo "\"Formulaire
\n";} +?> +
+Mettre en Attente
+Transfert - Conférence
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Raccrocher
+
+
Envoyez DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Canal:
Informations Client:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Titre:   Prenom:   Mi:  Nom:
Adresse1:
Adresse2: Adresse3:
Ville: État: CodePostal:
Province: CodeVendeur: Sexe:
Téléphone: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +DialCode: Tel. 2nd:
Visualiser: Email:
Commentaires: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/voicemail_check.php new file mode 100644 index 00000000..3f979c5d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_fr/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalide Utilisateurname/Mot de passe: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalide server_ip: |$server_ip| or Invalide session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalide session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Consultation de la Boite Vocale"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "boîte vocale $vmail_box est invalide\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/active_list_refresh.php new file mode 100644 index 00000000..42773644 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Visualizza Lista: "; +if ($ADD==1) {echo "Estensioni Attive";} +if ($ADD==2) {echo "Estensioni Occupate";} +if ($ADD==3) {echo "Linee Esterne";} +if ($ADD==4) {echo "Interni Locali";} +if ($ADD==5) {echo "Conferenze";} +if ($ADD==99999) {echo "AIUTO";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/astguiclient.php new file mode 100644 index 00000000..249dd205 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Ora non sei collegato. Grazie\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "web client astGUIclient: Login\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login
 
Login Utente:
Password Utente:
Login Telefono:
Password Telefono:

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "web client astGUIclient: Login Telefono\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Italiano
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Login Telefono
 
Login Telefono:
Password Telefono:

VERSIONE: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "web client astGUIclient: Login Telefono\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login Telefono
 
Spiacente, il telefono inserito non e` attivo in questo sistema, riprova di nuovo:
 
Login Telefono:
Password Telefono:

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "web client astGUIclient\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +LOGOUT
\n"; ?> +
Pannello PrincipalePannello Linee AttivePannello ConferenzeControlla VoicemailChiamata in corso
+
+ + +

Logout
+
+ + +
TRUNK RIAGGANCIA

+ Active Trunks Menu
+ Disconnetti il Trunk   |   + Dirotta il Trunk   |   + Ascolta il Trunk   |   + Aggiorna   |   + Torna alla schermata principale +
+
+ + +
DISCONNETTI LOCALE

+ Menu Locale Attivo
+ Disconnetti locale   |   + Dirotta Locale   |   + Ascolta Locale   |   + Aggiorna   |   + Torna alla schermata principale +
+
+ + + + + + + +
TRASFERIMENTO DELLA CHIAMATA IN CORSO
Canale trasferito: Canale
Interni:
Menu Interni
+
+ Invia all`interno selezionato

+ Invia alla VoiceMail selezionata

+ Invia a questo numero:


+ Aggiorna


+ Torna alla schermata principale

+
Conferenze:
(Seleziona uno dei numeri sotto per inviarlo ad una conferenza)
Invia anche il mio canale
Menu Conferenze
+
+ + + + + +
LOCAL Interni Dial
Chiamata proveniente da: Canale
Interni:
Menu Interni
+
+ Chiama l`interno selezionato

+ Chiama la VoiceMail selezionata

+ Aggiorna


+ Torna alla schermata principale

+
+
+ + +
CHIAMATE IN ATTESA:
+ Torna alla schermata principale

+
+
+ + + + + + + + + + + + + + + +
  +
VOICEMAIL     NUOVO:     VECCHIO:             CHIAMATA MANUALE       DIAL
CHIAMATE IN ATTESA: 0                LOCAL CHIAMA EXTENSIONS
CHIAMATE OUTBOUND:
CHIAMATE INBOUND:
Versione di astGUIclient web-client: BUILD:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
PREFERITI       modifica
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
PREFERITI

 
SALVA I CAMBIAMENTI AI PREFERITI - richiede Logout
TORNA ALLA SCHERMATA PRECEDENTE- ignora i cambiamenti fatti
+
+ +
+ + + + + + + + + + + + + +
+ARRESTO | INIZIO     Frequenza di refresh: 1000 ms Piu` veloce | Piu` lento

+
Inizializzazione..
+
Interni Attivi
+AGGIORNA | +ORDINE | +
Linee Esterne
+AGGIORNA | +ORDINE | +
Interni Locali
+AGGIORNA | +ORDINE | +
+ I Dati vanno qui

+
+ I Dati vanno qui

Azione Trunk +
+ I Dati vanno qui

Azione Locale +
+
+ + + + +
+ + +Lista delle conferenze + + + +
+Fai click su una delle conferenze room sulla sinistra per avere informazioni a riguardo +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/call_log_display.php new file mode 100644 index 00000000..d20de4cb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Visualizza il Log della chiamata"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten non e` valido o protocollo $protocol non e` valido\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/conf_exten_check.php new file mode 100644 index 00000000..df5cfa1e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Conf Extension Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten non e` valido\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is su is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Chiamate in coda: $RingCalls";} + else {$RingCalls = "Chiamate in coda: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|INIZIO",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_LOGOUT';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Stato: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanaleA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanaleA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$CanaleA[$counter] ~"; + # echo "$CanaleA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten non e` valido or Exten $exten non e` valido\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Conferenza $conf_exten e` stato registrato su $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/inbound_popup.php new file mode 100644 index 00000000..886692ce --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +CHIAMATA INBOUND IN CORSO"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

CHIAMATA INBOUND IN CORSO

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid non e` valido\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Canale: $row[1]
CallerID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Canale=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "CLIENTE - \n"; + + echo "
Numero chiamato: $row[8]
Note:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "RIAGGANCIA - \n"; + echo "INVIA ALLA MIA VOICEMAIL\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/live_exten_check.php new file mode 100644 index 00000000..4c73c549 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Controllo Interni Attivi"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten non e` valido o protocollo $protocol non e` valido\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanaleA: $ChanneLA[$counter] ~"; + echo "CanaleB: $ChanneLB[$counter] ~"; + echo "CanaleBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanaleA: $ChanneLA[$counter] ~"; + echo "CanaleB: $ChanneLB[$counter] ~"; + echo "CanaleBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanaleA: $ChanneLA[$counter] ~"; + echo "CanaleB: $ChanneLB[$counter] ~"; + echo "CanaleBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanaleA: $ChanneLA[$counter] ~"; + echo "CanaleB: $ChanneLB[$counter] ~"; + echo "CanaleBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "CanaleA: $ChanneLA[$counter] ~"; + echo "CanaleB: $ChanneLB[$counter] ~"; + echo "CanaleBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/manager_send.php new file mode 100644 index 00000000..0a878412 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Invio Manager: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AIUTO";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten non e` valido or queryCID $queryCID non e` valido, Originate comando non inserito\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando inviato per Exten $exten Canale $channel su $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "extenName $extenName deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "\nOriginateName Action non inviato\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "extenName $extenName deve essere impostato\n"; + echo "exten $exten deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "\nOriginateNameVmail Action non inviato\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten non e` valido or queryCID $queryCID non e` valido, Originate comando non inserito\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Non ti è permesso di comporre in sessioni altro agente $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando inviato per Exten $exten Canale $channel su $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten non e` valido or ext_context $ext_context or queryCID $queryCID non e` valido, Hangup comando non inserito\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Canale $channel non e` valido or queryCID $queryCID non e` valido, Hangup comando non inserito\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel non e` attivo su $call_server_ip, Checking Live Canale...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Canale $channel non e` attivo su $call_server_ip, Hangup comando non inserito $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Canale $channel in use by another agent su $call_server_ip, Hangup comando non inserito $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup comando inviato per Canale $channel su $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "exten $exten deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "auto_dial_level $auto_dial_level deve essere impostato\n"; + echo "campaign $campaign deve essere impostato\n"; + echo "uniqueid $uniqueid deve essere impostato\n"; + echo "lead_id $lead_id deve essere impostato\n"; + echo "\nRedirectVD Action non inviato\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "exten $exten deve essere impostato\n"; + echo "extenName $extenName deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "parkedby $parkedby deve essere impostato\n"; + echo "\nRedirectToPark Action non inviato\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "exten $exten deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "\nRedirectFromPark Action non inviato\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "extenName $extenName deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "\nRedirectName Action non inviato\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "extenName $extenName deve essere impostato\n"; + echo "exten $exten deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "\nRedirectNameVmail Action non inviato\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "ExtraCanale $extrachannel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "exten $exten deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "\nRedirect Action non inviato\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference su $server_ip, Redirect comando non inserito\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Impossibile trovare conferenze vuote su $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canale $channel non e` attivo su $call_server_ip, Redirect comando non inserito\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canale $channel non e` attivo su $server_ip, Redirect comando non inserito\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect comando non inserito\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX comando inviato per Canale $channel su $call_server_ip and \nHungup $extrachannel su $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel su $call_server_ip, Hungup $extrachannel su $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel su $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "ExtraCanale $extrachannel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "exten $exten deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "session_id $session_id deve essere impostato\n"; + echo "\nRedirect Action non inviato\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference su $server_ip, Redirect comando non inserito\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Impossibile trovare conferenze vuote su $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canale $channel non e` attivo su $call_server_ip, Redirect comando non inserito\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canale $channel non e` attivo su $server_ip, Redirect comando non inserito\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel non e` attivo su $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra comando inviato per Canale $channel and \nExtraCanale $extrachannel\n to $exten su $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten su $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra comando inviato per Canale $channel su $call_server_ip and \nExtraCanale $extrachannel\n to $exten su $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Una di queste variabili non e` valido:\n"; + echo "Canale $channel deve avere piu' di 2 caratteri\n"; + echo "queryCID $queryCID deve avere piu' di 14 caratteri\n"; + echo "exten $exten deve essere impostato\n"; + echo "ext_context $ext_context deve essere impostato\n"; + echo "ext_priority $ext_priority deve essere impostato\n"; + echo "\nRedirect Action non inviato\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canale $channel non e` attivo su $server_ip, Redirect comando non inserito\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect comando inviato per Canale $channel su $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canale $channel non e` valido or queryCID $queryCID non e` valido or filename: $filename non e` valido, $ACTION comando non inserito\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canale $channel non e` attivo su $server_ip, $ACTION comando non inserito\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION comando inviato per Canale $channel su $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canale $channel non e` valido or exten $exten non e` valido or filename: $filename non e` valido, $ACTION comando non inserito\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going su in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION comando inviato per Canale $channel su $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n LA REGISTRAZIONE DURERA` FINO A 60 MINUTI\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Conferenza $exten, Stage $stage non e` valido or queryCID $queryCID non e` valido, Originate comando non inserito\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume comando inviato per Conferenza $exten, Stage $stage Canale $channel su $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/park_calls_display.php new file mode 100644 index 00000000..b3728be8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Display Chiamate in Attesa"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten non e` valido o protocollo $protocol non e` valido\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/timeclock.php new file mode 100644 index 00000000..9f538fdb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "Lutente e la password che hai inserito non sono attivi nel sistema
Si prega di riprovare:"; + + echo"\n"; + echo"AgentOrologio\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Orologio
 
Login Utente:
Password Utente:
 

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='INIZIO', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='INIZIO'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'INIZIO') ) + { + ### You cannot log in or out within 30secondi of your last login/logout + $VDdisplayMESSAGE = "Non è possibile accedere o entro 30 secondi del tuo ultimo accesso o il logout"; + + echo"\n"; + echo"AgentOrologio\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Orologio
 
Login Utente:
Password Utente:
 

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOLOGOUT') or ($status=='INIZIO') or ($status=='LOGOUT') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Lei ha appena effettuato laccesso-out"; + $LOGtimeMESSAGE = "Hai effettuato laccesso a$NOW_TIME
Importo di tempo sono state registrate in:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOLOGOUT') or ($status=='INIZIO') or ($status=='LOGOUT') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERRORE: orologio registro entrata già fatto:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "Torna alla schermata di login di agente";} + if ($referrer=='admin') + {$BACKlink = "BACK per Amministrazione";} + if ($referrer=='welcome') + {$BACKlink = "Torna alla schermata iniziale";} + + echo"\n"; + echo"AgentOrologio\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Orologio
 
$LOGtimeMESSAGE
 
$BACKlink
 

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOLOGOUT') or ($status=='INIZIO') or ($status=='LOGOUT') ) + { + $VDdisplayMESSAGE = "Tempo dallultimo registrato in:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "È lultima connesso a:$last_action_date

Clicca qui sotto per LOGIN log-in"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Quantità di tempo è stato registrato in:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'LOGOUT'; + $LOGtimeMESSAGE = "Hai effettuato laccesso al-in: $last_action_date
Quantità di tempo è stato registrato in:$totTIME_HMS

Clicca qui sotto per LOGOUT log-out"; + } + + echo"\n"; + echo"AgentOrologio\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Orologio
 
$LOGtimeMESSAGE
 
 

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentOrologio\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Orologio
 
Login Utente:
Password Utente:
 

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vdc_db_query.php new file mode 100644 index 00000000..e2731da7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script per query su Database"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('LOGOUT',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("INIZIO|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("INIZIO|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERRORE: Non ci sono cambiamenti abilitati per il tuo gruppo di utenti\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERRORE: Non ti è consentito di accedere al di fuori del proprio turno\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

Sovrascrive MANAGER:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ManagerLogin:
\n"; + $VDdisplayMESSAGE.= "ManagerPassword:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Scelta del Gruppo $closer_choice non e` valido\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Scelta del Gruppo $closer_choice e` stato registrato dall`utente $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories non e` valido\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories e` stato registrato dall`utente $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "LISTA DI CHIAMATA VUOTA\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context non e` valido\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMERO\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMERO\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NUMERO NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST CHIAMATA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST CHIAMATA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CHIAMATAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "LISTA DI CHIAMATA VUOTA\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "NUMERO ALTERNATIVO NUMERO STATO NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count non e` valido\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "NUMERO ALTERNATIVO NUMERO STATO CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage non e` valido\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context non e` valido\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " CHIAMATA NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context non e` valido\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CHIAMATAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID non e` valido\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "LOG NON INSERITO\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign non e` valido\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inserito: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NON INSERITO\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Inserito: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "LOG NON INSERITO\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "LOG NON INSERITO\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id non e` valido\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inserito: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NON INSERITO\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG NON INSERITO\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_ARRESTO|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|Registrazione_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campagna $campaign non e` valido\n"; + echo "lead_id $lead_id non e` valido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campagna $campaign non e` valido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send su to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If CHIAMATABK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user su $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten non e` valido\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a LOGOUT record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation su the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id non e` valido\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### CHIAMATABACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### INIZIO Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Utente $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Cognome Attempt, Date of Cognome Non-Contact, Date of Cognome Contact, Date of Cognome Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' e` cambiato ' . $dispo_choice . " Stato\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id non e` valido\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage non e` valido\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' e` ora nello stato ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list non e` valido\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status non e` valido\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### INIZIO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pausa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Chiamate in coda Visualizza disabili per questa campagna\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data su calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info su the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           CHIAMATA GROUP     TYPE  
TAKE CHIAMATA     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Chiamate in coda Visualizza disabili per questa campagna\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vicidial.php new file mode 100644 index 00000000..04c7943e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Ora non sei collegato. Grazie\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls su hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofsecondi for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name su login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST su server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a CHIAMA link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups su campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Riaggancia il cliente +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TelefonoSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT CHIAMA by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Re-Login\n"; +echo "\n"; +echo "\n"; +echo "Orologio
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Italiano
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Re-Login
 
Login Telefono:
Password Telefono:
Login Utente:
Password Utente:
Campagna: $camp_form_code
  \n"; +echo "

VERSIONE: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Login Campagna\n"; + echo "\n"; + echo "\n"; + echo "Orologio
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Login Utente

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login Campagna
 
Login Utente:
Password Utente:
Campagna: $camp_form_code
  \n"; + echo "

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Login\n"; + echo "\n"; + echo "\n"; + echo "Orologio
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login
 
Login Telefono:
Password Telefono:
Login Utente:
Password Utente:
Campagna: $camp_form_code
  \n"; + echo "

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Login Telefono\n"; +echo "\n"; +echo "\n"; +echo "Orologio
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Italiano
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Login Telefono
 
Login Telefono:
Password Telefono:
  \n"; +echo "

VERSIONE: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('LOGOUT',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "È necessario accedere al orologio LA PRIMA
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("INIZIO|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("INIZIO|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERRORE: Non ci sono cambiamenti abilitati per il tuo gruppo di utenti
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERRORE: Non ti è consentito di accedere al di fuori del proprio turno
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

Sovrascrive MANAGER:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ManagerLogin:
\n"; + $VDdisplayMESSAGE.= "ManagerPassword:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Login Campagna\n"; + echo "\n"; + echo "\n"; + echo "Orologio
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Password:
\n"; + echo "Campagna: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Campagna non attiva, prova di nuovo
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Login errato, prova di nuovo
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Login Campagna\n"; + echo "\n"; + echo "\n"; + echo "Orologio
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login Campagna
 
Login Utente:
Password Utente:
Campagna: $camp_form_code
  \n"; + echo "

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Login Telefono Error\n"; + echo "\n"; + echo "\n"; + echo "Orologio
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login Error
 
Spiacente, il telefono inserito non e` attivo in questo sistema, riprova di nuovo:
 
Login Telefono:
Password Telefono:

VERSIONE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CallerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TelefonoSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TelefonoSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed su this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login su phone: $SIP_user nella campagna: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### INIZIO SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NUOVO record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today su that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Login Campagna\n"; + echo "\n"; + echo "\n"; + echo "Orologio
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "Spiacenti, non ci sono contatti da chiamare per questa campagna\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Password:
\n"; + echo "Campagna: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Login Campagna\n"; + echo "\n"; + echo "\n"; + echo "Orologio
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Italiano
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Password:
\n"; + echo "Campagna: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsecondi counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', + 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +LOGOUT\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Chiamata in corso
+
+ + + + + height=>

Agent Screen
+
+ + +CHIAMATA MANUALE       CHIAMATA VELOCE
+
+ + +X CHIAMATABACK ATTIVE
+
+ + +
+
+ +secondi: +     + + + + D1 - CHIAMA\n"; + echo "
\n"; + echo "D2 - CHIAMA\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
RICHIAMI PER L`OPERATORE :
Selezionare una callback per chiamare il cliente ora. Una volta fatto click, il record sara` rimosso dalla lista. +
+
+
  + Aggiorna +                 + Torna Indietro +
+
+ + + height=460>
NUOVA CHIAMATA MANUALE PER IL CONTATTO :

Inserisci le informazioni per il nuovo contatto da chiamare. +
+ \n"; + } + ?> + Nota: tutti i nuovi contatti chiamati manualmente andranno nella lista

+ + + + + + + + + + + + + + + +
Codice di Chiamata:   (Vale 1 negli USA ed in Canada)
Telefono Number: +   (12 digits max - digits only) +
Cerca Contatti esistenti:   (Questa opzione tentera` di trovare il numero di telefono nel sistema prima di inserire un nuovo contatto)
+

+     +
+

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 Chiamata automatica field below. To hangup this call you will have to open the CHIAMATAS IN THIS SESSION link at the bottom of the screen and hang it up by clicking su its channel link there.
 
Chiamata automatica:   (solo digit per favore) +
+
+ Chiama Ora +                 + Anteprima invito +                 + Torna Indietro +
+
+ + + +
+
+ + + + +Il tuo stato:
Calls Dialing: +
+ + + + + > + + +
+
+ + Trasferimento - Conferenza            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + LOCAL CLOSER     + + Riaggancia la linea trasferita +
+ seconds +   + channel + + CONSULTIVO   + + Riaggancia entrambe le linee +
+ Numero da chiamare +   +   + + + CHIAMA OVERRIDE + + LASCIA LA CONFERENZA A 3 +
+ Effettua il Blind Transfer +   + Chiama il Cliente +   + Metti in attesa il cliente +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Chiamate in coda:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Nascondere chiamate in coda\n";} + else + {echo "Mostra le chiamate in coda\n";} + } +?> + + + +
  +Altri agenti Stato:  
 
+ +
+Agenti di trasferimento disponibili:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Esito Contatto:

+ -
+
+
+ + + height=70> + + + + +
Tasti Funzione per Esiti: + Se attivo, premi il tasto corrispondente all`esito desiderato e la chiamata sara` riagganciata automaticamente:
+ + + + + +
+
+ + + height=70> + + + + + + +
Informazioni richiamo precedente: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Estensione Alt Telefono informazioni: minimizza
+
+
+
+
+ +
+
+ + + + + +
ingrandisci
Alt Telefono Info
+
+ + + height=500>
Non c'è nessuno nella tua sessione:
+ Torna Indietro +

+ Chiama l`operatore di nuovo +
+
+ + + height=500>
Il cliente ha riagganciato:
+ Torna Indietro +

+ Termina e definisci un Esito per la chiamata +
+
+ + + height=550>
Call Wrapup: secondi di riposo restanti

+ +

+ Termina riposo e continua +
+
+ + +
+


+ Chiudi Message +
+
+ + + height=500>
La tua sessione e` stata disabilitata
LOGOUT

Torna Indietro +
+
+ + + height=500>
Cè un problema di sincronizzazione con il tempo il vostro sistema, si prega di informare lamministratore di sistema


Torna Indietro +
+
+ + + height=500>

LOGOUT
+
+ + +
+
+ + +
 
+
+ + + height=47>
Tutti i cambiamenti eseguiti sui dati del cliente non saranno salvati, bisogna effettuare le modifiche prima di riagganciare.
+
+ + + height=460>
ESITO CHIAMATA :       Aggancia di nuovo       minimizza
+ Selezione Esito di fine chiamata +
+ PAUSA OPERATORE
+ PULISCI IL FORM | + INVIA +

+ WEB FORM INVIA +

  +
+
+ + + height=460>
SELEZIONARE UN CODICE PAUSA:
+ Pausa Code Selection + +

  +
+
+ + + height=460>
SCEGLI UN GRUPPO ALIAS :
+ Gruppo Alias selezione + +

  +
+
+ + + + + + height=460>
Selezionare una data di richiamo! :
+ + + Seleziona una data qui sotto   +     + Ora: +   + Minuti: +   + +  
+ CHIAMATABACK PERSONALE (nessun altro potra` richiamarlo)
";} + ?> + Note Richiamo:

+ + INVIA

+ +

  +
+
+ + + height=460>
SELEZIONE del CLOSER INBOUND GROUP
+ Selezione del Closer Inbound Group +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + CHIAMATA MISTA(outbound attivato)
+ + RESET | + INVIA +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESET | + INVIA +



  +
+
+ + + + Canale + Canale + CHIAMATABACK PERSONALE (nessun altro potra` richiamarlo)
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " CHIAMATA MISTA
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +TASTI FUNZIONE DISATTIVATI + + + + +> + + + + +
Agent web-client version:     BUILD:               Server:              
+ +Mostra le informazioni relative al canale della conferenza +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
STATO:
+
+Chiama il prossimo numero
+ LEAD PREVIEW
+ CHIAMA ALT NUM
+ + +FILE REGISTRAZIONE:
+
+
+ID Registrazione:
+
+ +Start Registrazione
+
+Web Form
+ 0) + {echo "\"Web
\n";} +?> +
+Metti in attesa la chiamata
+Trasferimento - Conferenza
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Riaggancia il cliente
+
+
Trasmetti Tono Tastiera

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Canale:
Dati Cliente:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Titolo:   Nome:   MI:   Cognome:
Indirizzo1:
Indirizzo2: Indirizzo3:
Citta`: Stato: CAP:
Provincia: Vendor ID: Sesso:
Telefono: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +Prefisso: Num. Alternativo:
Mostra: Email:
Note: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/voicemail_check.php new file mode 100644 index 00000000..b119c033 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_it/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Utentename/Password non validi: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "ip del server non valido: |$server_ip| or Nome sessione non valido: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nome sessione non valido: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Controllo Voicemail"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "Casella Voicemail $vmail_box non e` valido\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/active_list_refresh.php new file mode 100644 index 00000000..2d86e8c1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Toon Lijst: "; +if ($ADD==1) {echo "Live Extenties";} +if ($ADD==2) {echo "Bezette Extenties";} +if ($ADD==3) {echo "Buiten Lijnen";} +if ($ADD==4) {echo "Lokale Extenties";} +if ($ADD==5) {echo "Conferenties";} +if ($ADD==99999) {echo "HELP";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/astguiclient.php new file mode 100644 index 00000000..38fb83de --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/astguiclient.php @@ -0,0 +1,2908 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Je ben nu uitgelogd. Bedankt\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "astGUIclient web client: Inloggen\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Inloggen
 
Gebruiker Inloggen:
Gebruiker Wachtwoord:
Telefoon Inloggen:
Telefoon Wachtwoord:

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "astGUIclient web client: Telefoon Inloggen\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Dutch
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Telefoon Inloggen
 
Telefoon Inloggen:
Telefoon Wachtwoord:

VERSIE: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "astGUIclient web client: Telefoon Inloggen\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Telefoon Inloggen
 
Sorry, je telefoon login en wachtwoord zijn niet acitef in dit systeem, probeer het nogmaals:
 
Telefoon Inloggen:
Telefoon Wachtwoord:

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "astGUIclient web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +UITLOGGEN
\n"; ?> +
Hoofd PaneelActieve lijnen paneelConferentie
+ paneelCheck voicemailLive Gesprek
+
+ + +

Logout
+
+ + +
TRUNK OPHANGEN

+ Active Trunks Menu
+ Trunk Ophangen   |   + Trunk Kapen   |   + Beluisten Trunk   |   + Ververs   |   + Terug naar hoofdscherm +
+
+ + +
OPHANGEN LOKAAL

+ Aktief Lokaal Menu
+ Openhangen Lokaal   |   + Kapen Lokaal   |   + Lokaal Beluisteren   |   + Ververs   |   + Terug naar hoofdscherm +
+
+ + + + + + + +
LIVE GESPREK TRANSFER
Kanaal om te transferen: Kanaal
Extenties:
Extentie Menu
+
+ Stuur naar geselecteerde extentie

+ Stuur naar geselecteerde vmail box

+ Stuur naar dit nummer:


+ Ververs


+ Terug naar hoofdscherm

+
Conferenties:
(klik op een onderstaand nummer om naar een conferentie te sturen)
Verstuur mijn kanaal ook
Conferentie Menu
+
+ + + + + +
Bel Lokale Extenties
Telefoon belt van: Kanaal
Extenties:
Extentie Menu
+
+ Bel geselecteerde extentie

+ Bel geselcteerde voicemail

+ Ververs


+ Terug naar hoofdscherm

+
+
+ + +
PARKEEREER GESPREKKEN:
+ Terug naar hoofdscherm

+
+
+ + + + + + + + + + + + + + + +
  +
VOICEMAIL     NIEUW:     OUD:             HANDMATIG BELLEN       DIAL
PARKEEREER GESPREKKEN: 0                LOKALE BEL EXTENTIES
UITGAANDE GESPREKKEN:
INKOMENDE GESPREKKEN:
astGUIclient web-client VERSIE: BUILD:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
FAVORIETEN       bewerk
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
FAVORIETEN

 
OPSLAAN FAVORIET AANPASSINGEN - opnieuw inloggen
TERUG NAAR HOOFD SCHERM - negeer gemaakte aanpassingen
+
+ +
+ + + + + + + + + + + + + +
+STOP | START     Ververs ratio: 1000 ms Sneller | Langzamer

+
Initialiseren..
+
Aktieve Extenties
+VERVERS | +SORTEER | +
Buiten Lijnen
+VERVERS | +SORTEER | +
Lokale Extenties
+VERVERS | +SORTEER | +
+ Data Komt Hier

+
+ Data Komt Hier

Trunk Actie +
+ Data Komt Hier

Lokale Actie +
+
+ + + + +
+ + +Conferentie Lijst + + + +
+Klik op een conferentie nummer aan de linkerkant voor informatie over die conferentie +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/call_log_display.php new file mode 100644 index 00000000..1bccdc9d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Gesprekken Log Display"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten is niet geldig of protocol $protocol is niet geldig\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/conf_exten_check.php new file mode 100644 index 00000000..44158ffc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/conf_exten_check.php @@ -0,0 +1,648 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Conf Extentie Controle"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten is niet geldig\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is op is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Gesprekken in Wachtrij: $RingCalls";} + else {$RingCalls = "Gesprekken in Wachtrij: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|START",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_UITLOGGEN';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $KanaalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $KanaalA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$KanaalA[$counter] ~"; + # echo "$KanaalA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten is niet geldig or Exten $exten is niet geldig\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Conferentie + $conf_exten is geregistreer aan $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/inbound_popup.php new file mode 100644 index 00000000..d4481c41 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +LIVE BINNENKOMEND GESPREK"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

LIVE BINNENKOMEND GESPREK

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid is niet geldig\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Kanaal: $row[1]
CallerID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Kanaal=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "CUSTOM - \n"; + + echo "
Nummer Gedraaid: $row[8]
Opmerkingen: $row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "OPHANGEN - \n"; + echo "STUUR NAAR MIJN VOICEMAIL\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/live_exten_check.php new file mode 100644 index 00000000..7c98dcf3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "LIve Extentie Controle"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten is niet geldig of protocol $protocol is niet geldig\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanaalA: $ChanneLA[$counter] ~"; + echo "KanaalB: $ChanneLB[$counter] ~"; + echo "KanaalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanaalA: $ChanneLA[$counter] ~"; + echo "KanaalB: $ChanneLB[$counter] ~"; + echo "KanaalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanaalA: $ChanneLA[$counter] ~"; + echo "KanaalB: $ChanneLB[$counter] ~"; + echo "KanaalBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanaalA: $ChanneLA[$counter] ~"; + echo "KanaalB: $ChanneLB[$counter] ~"; + echo "KanaalBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "KanaalA: $ChanneLA[$counter] ~"; + echo "KanaalB: $ChanneLB[$counter] ~"; + echo "KanaalBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/manager_send.php new file mode 100644 index 00000000..cd56155a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/manager_send.php @@ -0,0 +1,1705 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "ManagerSend: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "HELP";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten is niet geldig or queryCID $queryCID is niet geldig, Originate commando niet uitgevoerd\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate commando verstuurt Exten $exten Kanaal $channel op $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "extenName $extenName moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "\nOriginateName Action niet verstuurd\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "extenName $extenName moet gezet zijn\n"; + echo "exten $exten moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "\nOriginateNameVmail Action niet verstuurd\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten is niet geldig or queryCID $queryCID is niet geldig, Originate commando niet uitgevoerd\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR U bent niet toegestaan te bellen naar andere agent sessies $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate commando verstuurt Exten $exten Kanaal $channel op $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten is niet geldig or ext_context $ext_context or queryCID $queryCID is niet geldig, Hangup commando niet uitgevoerd\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Kanaal $channel is niet geldig or queryCID $queryCID is niet geldig, Hangup commando niet uitgevoerd\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel is niet live op $call_server_ip, Checking Live Kanaal...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Kanaal $channel is niet live op $call_server_ip, Hangup commando niet uitgevoerd $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Kanaal $channel in use by another agent op $call_server_ip, Hangup commando niet uitgevoerd $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup commando verstuurt Kanaal $channel op $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "exten $exten moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "auto_dial_level $auto_dial_level moet gezet zijn\n"; + echo "campaign $campaign moet gezet zijn\n"; + echo "uniqueid $uniqueid moet gezet zijn\n"; + echo "lead_id $lead_id moet gezet zijn\n"; + echo "\nRedirectVD Action niet verstuurd\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "exten $exten moet gezet zijn\n"; + echo "extenName $extenName moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "parkedby $parkedby moet gezet zijn\n"; + echo "\nRedirectToPark Action niet verstuurd\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "exten $exten moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "\nRedirectFromPark Action niet verstuurd\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "extenName $extenName moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "\nRedirectName Action niet verstuurd\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "extenName $extenName moet gezet zijn\n"; + echo "exten $exten moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "\nRedirectNameVmail Action niet verstuurd\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "ExtraKanaal $extrachannel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "exten $exten moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "\nRedirect Action niet verstuurd\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference op $server_ip, Redirect commando niet uitgevoerd\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kan geen lege conferentie vinden op $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Kanaal $channel is niet live op $call_server_ip, Redirect commando niet uitgevoerd\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Kanaal $channel is niet live op $server_ip, Redirect commando niet uitgevoerd\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect commando niet uitgevoerd\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX commando verstuurt Kanaal $channel op $call_server_ip and \nHungup $extrachannel op $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel op $call_server_ip, Hungup $extrachannel op $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel op $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "ExtraKanaal $extrachannel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "exten $exten moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "session_id $session_id moet gezet zijn\n"; + echo "\nRedirect Action niet verstuurd\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference op $server_ip, Redirect commando niet uitgevoerd\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Kan geen lege conferentie vinden op $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Kanaal $channel is niet live op $call_server_ip, Redirect commando niet uitgevoerd\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Kanaal $channel is niet live op $server_ip, Redirect commando niet uitgevoerd\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is niet live op $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra commando verstuurt Kanaal $channel and \nExtraKanaal $extrachannel\n to $exten op $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten op $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra commando verstuurt Kanaal $channel op $call_server_ip and \nExtraKanaal $extrachannel\n to $exten op $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Een van deze variabelen is niet geldig:\n"; + echo "Kanaal $channel moet groter zijn dan 2 karakters\n"; + echo "queryCID $queryCID moet groter zijn dan 14 karakters\n"; + echo "exten $exten moet gezet zijn\n"; + echo "ext_context $ext_context moet gezet zijn\n"; + echo "ext_priority $ext_priority moet gezet zijn\n"; + echo "\nRedirect Action niet verstuurd\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Kanaal $channel is niet live op $server_ip, Redirect commando niet uitgevoerd\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect commando verstuurt Kanaal $channel op $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Kanaal $channel is niet geldig or queryCID $queryCID is niet geldig or filename: $filename is niet geldig, $ACTION commando niet uitgevoerd\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Kanaal $channel is niet live op $server_ip, $ACTION commando niet uitgevoerd\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION commando verstuurt Kanaal $channel op $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Kanaal $channel is niet geldig or exten $exten is niet geldig or filename: $filename is niet geldig, $ACTION commando niet uitgevoerd\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going op in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION commando verstuurt Kanaal $channel op $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n OPNEMEN DUURT TOT 60 MINUTEN\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Conferentie + $exten, Stage $stage is niet geldig or queryCID $queryCID is niet geldig, Originate commando niet uitgevoerd\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume commando verstuurt Conferentie + $exten, Stage $stage Kanaal $channel op $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/park_calls_display.php new file mode 100644 index 00000000..53bf408a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Geparkeerde Gesprekken Tonen"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten is niet geldig of protocol $protocol is niet geldig\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/timeclock.php new file mode 100644 index 00000000..079cdca8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "De gebruiker en wachtwoord die je hebt ingevoerd zijn niet actief in het systeem
Probeer aub nogmaals:"; + + echo"\n"; + echo"Agent Tijdslot\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Tijdslot
 
Gebruiker Inloggen:
Gebruiker Wachtwoord:
 

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'START') ) + { + ### You cannot log in or out within 30seconden of your last login/logout + $VDdisplayMESSAGE = "Je kunt niet inloggen binnen 30 seconden na je laatste login of log-uit"; + + echo"\n"; + echo"Agent Tijdslot\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Tijdslot
 
Gebruiker Inloggen:
Gebruiker Wachtwoord:
 

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOUITLOGGEN') or ($status=='START') or ($status=='UITLOGGEN') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Je ben nu uitgelogd"; + $LOGtimeMESSAGE = "Je bent ingelogd op $NOW_TIME
Tijd die je ingelogd bent geweest: $totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='UITLOGGEN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='UITLOGGEN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='UITLOGGEN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOUITLOGGEN') or ($status=='START') or ($status=='UITLOGGEN') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "FOUT: tijdslot log toevoegin reeds gemaakt: $status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "TERUG naar Agent Inloggen Scherm";} + if ($referrer=='admin') + {$BACKlink = "TERUG naar Administratie";} + if ($referrer=='welcome') + {$BACKlink = "TERUG naar Welkomst Scherm";} + + echo"\n"; + echo"Agent Tijdslot\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Tijdslot
 
$LOGtimeMESSAGE
 
$BACKlink
 

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOUITLOGGEN') or ($status=='START') or ($status=='UITLOGGEN') ) + { + $VDdisplayMESSAGE = "Tijd sinds je laatste login: $totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Je laatste log-uit was om: $last_action_date

Klik INLOGGEN om in te loggen"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Tijd dat je bent ingelogged$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'UITLOGGEN'; + $LOGtimeMESSAGE = "Je bint ingelogged om: $last_action_date
Tijd dat je bent ingelogged$totTIME_HMS

Klik UITLOGGEN om uit te loggen"; + } + + echo"\n"; + echo"Agent Tijdslot\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Tijdslot
 
$LOGtimeMESSAGE
 
 

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"Agent Tijdslot\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Tijdslot
 
Gebruiker Inloggen:
Gebruiker Wachtwoord:
 

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vdc_db_query.php new file mode 100644 index 00000000..de586b4d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Database Query Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('UITLOGGEN',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("START|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("START|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "FOUT: Er zijn geen Verschuivingen ingeschakeld voor uw gebruikers-groep\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "FOUT: U bent niet toegestaan om in te loggen buiten uw verschuiving\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

MANAGER BOVEN:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ManagerInloggen:
\n"; + $VDdisplayMESSAGE.= "ManagerWachtwoord:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Groep Keuze $closer_choice is niet geldig\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Groep Keuze $closer_choice is geregistreerd voor gebruiker $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories is niet geldig\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories is geregistreerd voor gebruiker $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "HOPPER LEEG\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is niet geldig\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMMER\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMMER\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NUMMER NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST BEL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST BEL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # BELOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "HOPPER LEEG\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "ALT TEL. NUMMER STATUS NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count is niet geldig\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "ALT TEL. NUMMER STATUS CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage is niet geldig\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is niet geldig\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " BEL NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is niet geldig\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # BELOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID is niet geldig\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "LOG NIET INGEVOERD\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign is niet geldig\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Ingevoerd: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NIET INGEVOERD\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Ingevoerd: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "LOG NIET INGEVOERD\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "LOG NIET INGEVOERD\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id is niet geldig\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Ingevoerd: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NIET INGEVOERD\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG NIET INGEVOERD\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_STOP|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|OPENEMEN_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campagne $campaign is niet geldig\n"; + echo "lead_id $lead_id is niet geldig\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campagne $campaign is niet geldig\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send op to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If BELBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user op $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten is niet geldig\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a UITLOGGEN record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','UITLOGGEN','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation op the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id is niet geldig\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### BELBACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### START Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Gebruiker $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Laatste Attempt, Date of Laatste Non-Contact, Date of Laatste Contact, Date of Laatste Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' is veranderd naar ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id is niet geldig\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage is niet geldig\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' is nu in status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list is niet geldig\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status is niet geldig\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pauze Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Roept in wachtrij Bekijk een handicap voor deze campagne\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data op calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info op the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           BEL GROUP     TYPE  
TAKE BEL     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Roept in wachtrij Bekijk een handicap voor deze campagne\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vicidial.php new file mode 100644 index 00000000..eb56961e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Je ben nu uitgelogd. Bedankt\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls op hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofseconden for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name op login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST op server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a DIAL link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups op campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Ophangen Klant +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TelefoonSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT DIAL by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Opnieuw inloggen\n"; +echo "\n"; +echo "\n"; +echo " Tijdslot
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Dutch
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Opnieuw inloggen
 
Telefoon Inloggen:
Telefoon Wachtwoord:
Gebruiker Inloggen:
Gebruiker Wachtwoord:
Campagne: $camp_form_code
  \n"; +echo "

VERSIE: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Campagne Inloggen\n"; + echo "\n"; + echo "\n"; + echo " Tijdslot
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Gebruiker Inloggen

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Campagne Inloggen
 
Gebruiker Inloggen:
Gebruiker Wachtwoord:
Campagne: $camp_form_code
  \n"; + echo "

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Inloggen\n"; + echo "\n"; + echo "\n"; + echo " Tijdslot
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Inloggen
 
Telefoon Inloggen:
Telefoon Wachtwoord:
Gebruiker Inloggen:
Gebruiker Wachtwoord:
Campagne: $camp_form_code
  \n"; + echo "

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Telefoon Inloggen\n"; +echo "\n"; +echo "\n"; +echo " Tijdslot
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Dutch
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Telefoon Inloggen
 
Telefoon Inloggen:
Telefoon Wachtwoord:
  \n"; +echo "

VERSIE: $version       BUILD: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('UITLOGGEN',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "JE MOET EERS INLOGGEN IN HET TIJDSLOT
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("START|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("START|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "FOUT: Er zijn geen Verschuivingen ingeschakeld voor uw gebruikers-groep
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "FOUT: U bent niet toegestaan om in te loggen buiten uw verschuiving
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

MANAGER BOVEN:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ManagerInloggen:
\n"; + $VDdisplayMESSAGE.= "ManagerWachtwoord:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Campagne Inloggen\n"; + echo "\n"; + echo "\n"; + echo " Tijdslot
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Inloggen: \n
"; + echo "Wachtwoord:
\n"; + echo "Campagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Campagne is niet actief, probeer het aub nogmaals
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Ongeldige login, probeer het nog eens
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Campagne Inloggen\n"; + echo "\n"; + echo "\n"; + echo " Tijdslot
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Campagne Inloggen
 
Gebruiker Inloggen:
Gebruiker Wachtwoord:
Campagne: $camp_form_code
  \n"; + echo "

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Telefoon Inloggen Error\n"; + echo "\n"; + echo "\n"; + echo " Tijdslot
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Inloggen Error
 
Sorry, je telefoon login en wachtwoord zijn niet acitef in dit systeem, probeer het nogmaals:
 
Telefoon Inloggen:
Telefoon Wachtwoord:

VERSIE: $version       BUILD: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CallerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TelefoonSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TelefoonSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed op this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login op phone: $SIP_user naar campagne: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NIEUW record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today op that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Campagne Inloggen\n"; + echo "\n"; + echo "\n"; + echo " Tijdslot
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "Sorry, er zijn geen leads in de hopper voor deze campagne\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Inloggen: \n
"; + echo "Wachtwoord:
\n"; + echo "Campagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Campagne Inloggen\n"; + echo "\n"; + echo "\n"; + echo " Tijdslot
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Dutch
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Inloggen: \n
"; + echo "Wachtwoord:
\n"; + echo "Campagne: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callseconden counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Januari','February','Maart','April','Mei','Juni', + 'Juli','Agustus','September','Oktober','November','December'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +UITLOGGEN\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Live Gesprek
+
+ + + + + height=>

Agent Screen
+
+ + +HANDMATIG BELLEN       SNEL BELLEN
+
+ + +X AKTIEVE TERUGBELLERS
+
+ + +
+
+ +seconden: +     + + + + D1 - DIAL\n"; + echo "
\n"; + echo "D2 - DIAL\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
TERUGBELLERS VOOR AGENT :
Klik op een terugbeller om de klant nu terug te bellen. Als je hierop klikt, wordt deze verwijderd uit de lijst. +
+
+
  + Ververs +                 + Ga Terug +
+
+ + + height=460>
NIEUWE HANDMATIGE LEAD VOOR :

Voer de informatie voor de nieuwe lead hieronder in. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Dial Code:   (Dit is normaal gesproken een 1 in de USA en Canada)
Telefoon Number: +   (12 digits max - digits only) +
Zoek Bestaande Leads:   (Deze optie, als geselecteerd, probeert een telefoonnummer te vinden voordat deze als nieuwe lead wordt toegevoegd)
+

+     +
+

Als je een nummer belt en NIET wilt dat deze als nieuwe lead wordt toegevoegd, vul dan het exacte nummer in, in het Dial Override veld. Om op te hangen, dien je GESPREKKEN IN DEZE SESSIE te open, onderaan het scherm, en daar op te hangen door te klikken op de kanaal link.
 
Dial Override:   (alleen cijfers aub) +
+
+ Bel Nu +                 + Preview Call +                 + Ga Terug +
+
+ + + +
+
+ + + + +Jouw Status:
Calls Dialing: +
+ + + + + > + + +
+
+ + Transfer- Conferentie            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + LOKALE CLOSER     + + Ophangen Xfer Lijn +
+ seconds +   + channel + + ADVIESGROEP   + + Ophangen Beide Lijnen +
+ Nummer om te bellen +   +   + + + DIAL OVERRIDE + + VERLAAT 3-WAY GESPREK +
+ Bel Blinde Transfer +   + Bel Met Klant +   + Parkeer Klant Gesprek +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Roept in de wachtrij:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Verberg roept in de wachtrij\n";} + else + {echo "Toon roept in de wachtrij\n";} + } +?> + + + +
  +Andere Agenten Status:  
 
+ +
+Beschikbaar Transfer Agents:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Klant Gedispotioneerd Als:

+ -
+
+
+ + + height=70> + + + + +
Dispositie Hot Keys: + Wanneer aktief, kies de corresponderende toets op het toetsenbord, om dit geprek te dispositioneren. Het gesprek wordt opgehangen en automatisch gedispositioneerd:
+ + + + + +
+
+ + + height=70> + + + + + + +
Vorige Callback Informatie: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Uitgebreide Alt. Tel. Informatie minimaliseer
+
+
+
+
+ +
+
+ + + + + +
maximaliseer
Alt Telefoon Info
+
+ + + height=500>
Er is niemand in jouw sessie:
+ Ga Terug +

+ Bel Agent +
+
+ + + height=500>
Klant heeft opgehangen:
+ Ga Terug +

+ Afsluiten en Dispositioneren Gesprek +
+
+ + + height=550>
Call Wrapup: seconden over in wrapup

+ +

+ Wrapup afmaken en doorgaan +
+
+ + +
+


+ Close Message +
+
+ + + height=500>
Jouw sessie is disabled
UITLOGGEN

Ga Terug +
+
+ + + height=500>
Er is een tijd synchronisatie probleem met uw systeem, kunt u uw systeembeheerder


Ga Terug +
+
+ + + height=500>

UITLOGGEN
+
+ + +
+
+ + +
 
+
+ + + height=47>
Alle aanpassingen gedaan aan onderstaande klant informatie wordt niet doorgevoerd. Je moet de klant informatie aanpassen VOORDAT je VOLGENDE LEAD kiest.
+
+ + + height=460>
DISPOSITIONEER GESPREK :       Opnieuw Ophangen       minimaliseer
+ Einde gesprek Dispositie Selectie +
+ PAUZEER BELLEN
+ OPSCHONEN | + OPSLAAN +

+ WEB FORM OPSLAAN +

  +
+
+ + + height=460>
SELECTEER EEN PAUZE CODE :
+ Pauze Code Selection + +

  +
+
+ + + height=460>
KIES EEN GROEP ALIAS :
+ Groep Alias Selectie + +

  +
+
+ + + + + + height=460>
Selecteer een terugbel datum :
+ + + Selecteer een dautm   +     + Hour: +   + Minutes: +   + +  
+ ALLEEN MIJN TERUGBELLER
";} + ?> + CB Commentaar:

+ + OPSLAAN

+ +

  +
+
+ + + height=460>
CLOSER INKOMENDE GROEP SELECTIE
+ Close Inkomende Groep Selectie +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + BLENDED BELLEN(outbound geactiveerd)
+ + RESET | + OPSLAAN +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESET | + OPSLAAN +



  +
+
+ + + + Kanaal + Kanaal + ALLEEN MIJN TERUGBELLER
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " BLENDED BELLEN
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +HOT KEYS NIET AKTIEF + + + + +> + + + + +
Agent web-client version:     BUILD:               Server:              
+ +Toon conferentie gesprek kanaal informatie +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
STATUS:
+
+Bel Volgend Nummer
+ PREVIEW LEAD
+ BEL ALT. TEL.
+ + +OPNEEM BESTAND:
+
+
+OPENEMEN ID:
+
+ +Start Opnemen
+
+Web Formulier
+ 0) + {echo "\"Web
\n";} +?> +
+Parkeer Gesprek
+Transfer- Conferentie
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Ophangen Klant
+
+
Stuur DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Kanaal:
Klant Informatie:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Titel:   Eerste:   MI:   Laatste:
Adres1:
Adres2: Adres3:
Stad: Staat: Postcode:
Provincie: Vendor ID: Geslacht:
Telefoon: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +BelCode: Alt. Tel.:
Toon: Email:
Opmerkingen: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/voicemail_check.php new file mode 100644 index 00000000..e4b8ab0b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_nl/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Foutief Gebruikersnaam/Wachtwoord: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Foutief server_ip: |$server_ip| or Foutief session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Foutief session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Voicemail Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "Voicemail Box $vmail_box is niet geldig\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/active_list_refresh.php new file mode 100644 index 00000000..98e5b627 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Listy: "; +if ($ADD==1) {echo "Aktywne numery wewnętrzne";} +if ($ADD==2) {echo "Zajęte numery wewnętrzne";} +if ($ADD==3) {echo "Linie zewnętrzne";} +if ($ADD==4) {echo "Numery wewnętrzne";} +if ($ADD==5) {echo "Konferencje";} +if ($ADD==99999) {echo "POMOC";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/astguiclient.php new file mode 100644 index 00000000..f6596f0e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Wylogowałeś się. Do zobaczenia\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "klient astGUIclient: Login\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login
 
Login użytkownika:
Hasło użytkownika:
Login telefonu:
Hasło telefonu:

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "klient astGUIclient: Login telefonu\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Polski
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Login telefonu
 
Login telefonu:
Hasło telefonu:

WERSJA: $version       KOMPILACJA: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "klient astGUIclient: Login telefonu\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login telefonu
 
Login Twojego telefonu lub hasło są nieaktywne w tym systememie, spróbuj jeszcze raz:
 
Login telefonu:
Hasło telefonu:

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "klient astGUIclient\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +WYLOGUJ
\n"; ?> +
Główny panelPanel aktywnych liniPanel konferencyjnySprawdź pocztę głosowąAktywna rozmowa
+
+ + +

Logout
+
+ + +
TRUNK ROZŁĄCZ

+ Active Trunks Menu
+ Rozłącz międzymiastową   |   + Przejmij międzymiastową   |   + Odsłuchaj międzymiastową   |   + Odswież   |   + Wróć do Głównego okna +
+
+ + +
ROZŁĄCZ

+ Manu aktywnych lokalnych
+ Rozłącz lokalną   |   + Przejmij lokalną   |   + Podsłuchaj lokalną   |   + Odswież   |   + Wróć do Głównego okna +
+
+ + + + + + + +
AKTYWNA ROZMOWA PRZENIESIONA
Kanały do przeniesienia: Kanał
NumerWenętrzny:
Menu rozszerzeń
+
+ Przełącz do wybranego numeru wewnętrznego

+ Przełącz do poczty głosowej

+ Przełącz do numeru:


+ Odswież


+ Wróć do Głównego okna

+
Konferencje:
(wybierz poniższy numer w celu przełączenia do konferencji)
Przełącz również mój kanał
Menu konferencji
+
+ + + + + +
Wybieranie numerów wewnętrznych
Połączenie przychodzące z: Kanał
NumerWenętrzny:
Menu rozszerzeń
+
+ Połącz z wybranym numerem wewnętrznym

+ Połącz z wybraną skrzynką głosową

+ Odswież


+ Wróć do Głównego okna

+
+
+ + +
ZAWIESZONE ROZMOWY:
+ Wróć do Głównego okna

+
+
+ + + + + + + + + + + + + + + +
  +
POCZTAGŁOSOWA     NOWY:     STARY:             WYBIERANIE RĘCZNE       DIAL
ZAWIESZONE ROZMOWY: 0                NUMERY WEWNĘTRZNE
ROZMOWY WYCHODZĄCE:
ROZMOWY PRZYCHODZĄCE:
astGUIclient WERSJA: KOMPILACJA:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
ULUBIONE       edytuj
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
ULUBIONE

 
ZATWIERDŹ ZMIANY W ULUBIONYCH- wymaga wylogowania
Powrót do głónego okna - anulowanie wprowadzonych zmian
+
+ +
+ + + + + + + + + + + + + +
+BATENTE | START     Szybkość odswieżania: 1000 ms Szybciej | Wolniej

+
Inicjalizuje..
+
Aktywne numery wewnętrzne
+ODSWIEŻ | +PORZĄDEK | +
Linie zewnętrzne
+ODSWIEŻ | +PORZĄDEK | +
Numery wewnętrzne
+ODSWIEŻ | +PORZĄDEK | +
+ Data tutaj

+
+ Data tutaj

Operacje na międzymiastowych +
+ Data tutaj

Operacje na lokalnych +
+
+ + + + +
+ + +Lista konferencji + + + +
+Wybierz numer konferencji w celu uzyskania o niej informacji +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/call_log_display.php new file mode 100644 index 00000000..6c5606f6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Rejestr rozmów"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten nie jest prawidłowy lub protokół $protocol nie jest prawidłowy\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/conf_exten_check.php new file mode 100644 index 00000000..8304beef --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Sprawdzanie numeru wewnętrznego konferencji"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten nie jest prawidłowy\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is na is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Wzywa w kolejce: $RingCalls";} + else {$RingCalls = "Wzywa w kolejce: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|START",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_WYLOGUJ';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $KanałA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $KanałA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$KanałA[$counter] ~"; + # echo "$KanałA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten nie jest prawidłowy or Exten $exten nie jest prawidłowy\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Konferencja $conf_exten został zarejestrowany $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/inbound_popup.php new file mode 100644 index 00000000..237549eb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +AKTYWNA PRZYHODZĄCA ROZMOWA"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

AKTYWNA PRZYHODZĄCA ROZMOWA

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid nie jest prawidłowy\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Kanał: $row[1]
IDRozmówcy: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Kanał=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "UŻYTKOWNIKA - \n"; + + echo "
Wybierany numer: $row[8]
Uwagi:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "ROZŁĄCZ - \n"; + echo "PRZEŚLIJ DO MOJEJ POCZTY GŁOSOWEJ\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/live_exten_check.php new file mode 100644 index 00000000..306892f1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Sprawdzanie aktywnych numerów wewnętrznych"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten nie jest prawidłowy lub protokół $protocol nie jest prawidłowy\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanałA: $ChanneLA[$counter] ~"; + echo "KanałB: $ChanneLB[$counter] ~"; + echo "KanałBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanałA: $ChanneLA[$counter] ~"; + echo "KanałB: $ChanneLB[$counter] ~"; + echo "KanałBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanałA: $ChanneLA[$counter] ~"; + echo "KanałB: $ChanneLB[$counter] ~"; + echo "KanałBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanałA: $ChanneLA[$counter] ~"; + echo "KanałB: $ChanneLB[$counter] ~"; + echo "KanałBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "KanałA: $ChanneLA[$counter] ~"; + echo "KanałB: $ChanneLB[$counter] ~"; + echo "KanałBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/manager_send.php new file mode 100644 index 00000000..ba07e9d9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Wyślij do zarządzania: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "POMOC";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy, Originate komenda nie wstawiona\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate komenda wysłana do Exten $exten Kanał $channel na $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "extenName $extenName musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "\nOriginateName Action nie wysłano\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "extenName $extenName musi być ustawiony\n"; + echo "exten $exten musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "\nOriginateNameVmail Action nie wysłano\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy, Originate komenda nie wstawiona\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Nie masz uprawnień do wybierania numeru inne sesje agenta $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate komenda wysłana do Exten $exten Kanał $channel na $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten nie jest prawidłowy or ext_context $ext_context or queryCID $queryCID nie jest prawidłowy, Hangup komenda nie wstawiona\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Kanał $channel nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy, Hangup komenda nie wstawiona\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel nie jest aktywna na $call_server_ip, Checking Live Kanał...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Kanał $channel nie jest aktywna na $call_server_ip, Hangup komenda nie wstawiona $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Kanał $channel in use by another agent na $call_server_ip, Hangup komenda nie wstawiona $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup komenda wysłana do Kanał $channel na $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "exten $exten musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "auto_dial_level $auto_dial_level musi być ustawiony\n"; + echo "campaign $campaign musi być ustawiony\n"; + echo "uniqueid $uniqueid musi być ustawiony\n"; + echo "lead_id $lead_id musi być ustawiony\n"; + echo "\nRedirectVD Action nie wysłano\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "exten $exten musi być ustawiony\n"; + echo "extenName $extenName musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "parkedby $parkedby musi być ustawiony\n"; + echo "\nRedirectToPark Action nie wysłano\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "exten $exten musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "\nRedirectFromPark Action nie wysłano\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "extenName $extenName musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "\nRedirectName Action nie wysłano\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "extenName $extenName musi być ustawiony\n"; + echo "exten $exten musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "\nRedirectNameVmail Action nie wysłano\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "ExtraKanał $extrachannel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "exten $exten musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "\nRedirect Action nie wysłano\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference na $server_ip, Redirect komenda nie wstawiona\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie mogę znaleźć wolnej konferencji na $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Kanał $channel nie jest aktywna na $call_server_ip, Redirect komenda nie wstawiona\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Kanał $channel nie jest aktywna na $server_ip, Redirect komenda nie wstawiona\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect komenda nie wstawiona\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX komenda wysłana do Kanał $channel na $call_server_ip and \nHungup $extrachannel na $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel na $call_server_ip, Hungup $extrachannel na $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel na $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "ExtraKanał $extrachannel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "exten $exten musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "session_id $session_id musi być ustawiony\n"; + echo "\nRedirect Action nie wysłano\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference na $server_ip, Redirect komenda nie wstawiona\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie mogę znaleźć wolnej konferencji na $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Kanał $channel nie jest aktywna na $call_server_ip, Redirect komenda nie wstawiona\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Kanał $channel nie jest aktywna na $server_ip, Redirect komenda nie wstawiona\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie jest aktywna na $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra komenda wysłana do Kanał $channel and \nExtraKanał $extrachannel\n to $exten na $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten na $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra komenda wysłana do Kanał $channel na $call_server_ip and \nExtraKanał $extrachannel\n to $exten na $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jedna z tych zmiennych nie jest prawidłowy:\n"; + echo "Kanał $channel musi mieć więcej niż 2 znaki\n"; + echo "queryCID $queryCID musi mieć więcje niż 14 znaków\n"; + echo "exten $exten musi być ustawiony\n"; + echo "ext_context $ext_context musi być ustawiony\n"; + echo "ext_priority $ext_priority musi być ustawiony\n"; + echo "\nRedirect Action nie wysłano\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Kanał $channel nie jest aktywna na $server_ip, Redirect komenda nie wstawiona\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect komenda wysłana do Kanał $channel na $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Kanał $channel nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy or filename: $filename nie jest prawidłowy, $ACTION komenda nie wstawiona\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Kanał $channel nie jest aktywna na $server_ip, $ACTION komenda nie wstawiona\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION komenda wysłana do Kanał $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Kanał $channel nie jest prawidłowy or exten $exten nie jest prawidłowy or filename: $filename nie jest prawidłowy, $ACTION komenda nie wstawiona\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going na in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION komenda wysłana do Kanał $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n NAGRYWANIE BĘDZIE TRWAĆ MAKSYMALNIE 60 MINUT\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Konferencja $exten, Stage $stage nie jest prawidłowy or queryCID $queryCID nie jest prawidłowy, Originate komenda nie wstawiona\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume komenda wysłana do Konferencja $exten, Stage $stage Kanał $channel na $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/park_calls_display.php new file mode 100644 index 00000000..8a1b8d5a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Zawieszone rozmowy"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten nie jest prawidłowy lub protokół $protocol nie jest prawidłowy\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/timeclock.php new file mode 100644 index 00000000..f25009b5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "Użytkownika i hasło podane nie są aktywne w systemie
Please try again:"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Login użytkownika:
Hasło użytkownika:
 

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'START') ) + { + ### You cannot log in or out within 30sekundy of your last login/logout + $VDdisplayMESSAGE = "Nie można zalogować się w ciągu 30 sekund od ostatniego logowania lub wylogowywania"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Login użytkownika:
Hasło użytkownika:
 

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOWYLOGUJ') or ($status=='START') or ($status=='WYLOGUJ') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Musisz się zalogować-out"; + $LOGtimeMESSAGE = "Możesz zalogować się na$NOW_TIME
Czas był zalogowany w:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='WYLOGUJ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='WYLOGUJ', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='WYLOGUJ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOWYLOGUJ') or ($status=='START') or ($status=='WYLOGUJ') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERROR: timeclock wpisu już wykonane:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "POWRÓT pełnomocnika do ekranu logowania";} + if ($referrer=='admin') + {$BACKlink = "POWRÓT do administracji";} + if ($referrer=='welcome') + {$BACKlink = "Powrót do ekranu powitalnego";} + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOWYLOGUJ') or ($status=='START') or ($status=='WYLOGUJ') ) + { + $VDdisplayMESSAGE = "Czas od twojego ostatniego logowania w:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Ostatniego zalogowanego obecnie pod adresem:$last_action_date

Kliknij poniżej, aby LOGOWANIE log-in"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Kwota czas były rejestrowane w:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'WYLOGUJ'; + $LOGtimeMESSAGE = "Możesz zalogować się na stronie: $last_action_date
Kwota czas były rejestrowane w:$totTIME_HMS

Kliknij poniżej, aby zalogować WYLOGUJ-out"; + } + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Login użytkownika:
Hasło użytkownika:
 

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vdc_db_query.php new file mode 100644 index 00000000..4432379c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Skrypt zapytań do bazy danych"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('WYLOGUJ',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("START|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("START|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "BŁĄD: Brak Przesuwa aktywny dla grupy użytkowników\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "BŁĄD: Nie masz uprawnień, aby zalogować się poza swoim zmiany\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

KIEROWNIK nadrzędne:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "KierownikLogin:
\n"; + $VDdisplayMESSAGE.= "KierownikHasło:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Wybór grupowy $closer_choice nie jest prawidłowy\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Wybór grupowy $closer_choice został zarejestrowny dla użytkownika $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories nie jest prawidłowy\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories został zarejestrowny dla użytkownika $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "Zasobnik pusty\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context nie jest prawidłowy\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMER\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMER\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NUMER NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST Rozmowa TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST Rozmowa TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # RozmowaOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "Zasobnik pusty\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "NUMER ALT. NUMER STATUS NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count nie jest prawidłowy\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "NUMER ALT. NUMER STATUS CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage nie jest prawidłowy\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context nie jest prawidłowy\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " Rozmowa NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context nie jest prawidłowy\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # RozmowaOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID nie jest prawidłowy\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "Dziennik nie zapisany\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign nie jest prawidłowy\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Wstawiony: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "Dziennik nie zapisany\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Wstawiony: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "Dziennik nie zapisany\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "Dziennik nie zapisany\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id nie jest prawidłowy\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Wstawiony: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "Dziennik nie zapisany\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "Dziennik nie zapisany\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_BATENTE|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|NAGRYWAJ_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Kampania $campaign nie jest prawidłowy\n"; + echo "lead_id $lead_id nie jest prawidłowy\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Kampania $campaign nie jest prawidłowy\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send na to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If RozmowaBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user na $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten nie jest prawidłowy\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a WYLOGUJ record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','WYLOGUJ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation na the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id nie jest prawidłowy\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### RozmowaBACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### START Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Użytkownik $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Nazwisko Attempt, Date of Nazwisko Non-Contact, Date of Nazwisko Contact, Date of Nazwisko Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' zmieniono na ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id nie jest prawidłowy\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage nie jest prawidłowy\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' ma statusie ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list nie jest prawidłowy\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status nie jest prawidłowy\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Przerwa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Wzywa w kolejce Zobacz niepełnosprawnych w tej kampanii\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data na calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info na the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           Rozmowa GROUP     TYPE  
TAKE Rozmowa     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Wzywa w kolejce Zobacz niepełnosprawnych w tej kampanii\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vicidial.php new file mode 100644 index 00000000..45c9702f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Wylogowałeś się. Do zobaczenia\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls na hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofsekundy for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name na login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST na server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a WYBIERZ link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups na campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Odłącz kilenta +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TelefonSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT WYBIERZ by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Powtórne zalogowanie\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Polski
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Powtórne zalogowanie
 
Login telefonu:
Hasło telefonu:
Login użytkownika:
Hasło użytkownika:
Kampania: $camp_form_code
  \n"; +echo "

WERSJA: $version       KOMPILACJA: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Logowanie do kampani\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Login użytkownika

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Logowanie do kampani
 
Login użytkownika:
Hasło użytkownika:
Kampania: $camp_form_code
  \n"; + echo "

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Login\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login
 
Login telefonu:
Hasło telefonu:
Login użytkownika:
Hasło użytkownika:
Kampania: $camp_form_code
  \n"; + echo "

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Login telefonu\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Polski
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Login telefonu
 
Login telefonu:
Hasło telefonu:
  \n"; +echo "

WERSJA: $version       KOMPILACJA: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('WYLOGUJ',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Należy zalogować się do TIMECLOCK PIERWSZEJ
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("START|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("START|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "BŁĄD: Brak Przesuwa aktywny dla grupy użytkowników
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "BŁĄD: Nie masz uprawnień, aby zalogować się poza swoim zmiany
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

KIEROWNIK nadrzędne:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "KierownikLogin:
\n"; + $VDdisplayMESSAGE.= "KierownikHasło:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Logowanie do kampani\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Hasło:
\n"; + echo "Kampania: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Kampania nie aktywna, spróbuj jeszcze raz
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Login nie aktywny, spróbuj jeszcze raz
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Logowanie do kampani\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Logowanie do kampani
 
Login użytkownika:
Hasło użytkownika:
Kampania: $camp_form_code
  \n"; + echo "

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Login telefonu Error\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Login Error
 
Login Twojego telefonu lub hasło są nieaktywne w tym systememie, spróbuj jeszcze raz:
 
Login telefonu:
Hasło telefonu:

WERSJA: $version       KOMPILACJA: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $IDRozmówcy_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TelefonSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TelefonSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed na this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login na phone: $SIP_user do kampani: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NOWY record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today na that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Logowanie do kampani\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "Niestety, w zasobniku nie ma kontaktów oczekujących wykonania połączeń dla tej kampanii\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Hasło:
\n"; + echo "Kampania: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Logowanie do kampani\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Polski
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
"; + echo "Hasło:
\n"; + echo "Kampania: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsekundy counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Styczeń','February','Marzec','Kwiecień','Maj','Czerwiec', + 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +WYLOGUJ\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Aktywna rozmowa
+
+ + + + + height=>

Agent Screen
+
+ + +WYBIERANIE RĘCZNE       SZYBKA TARCZA
+
+ + +X AKTYWNE INNE TERMINY
+
+ + +
+
+ +sekundy: +     + + + + D1 - WYBIERZ\n"; + echo "
\n"; + echo "D2 - WYBIERZ\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
INNE TERMINY DLA AGENTA :
Kliknij poniżej na Inne terminy żeby teraz zadzwonić do klienta. Jeżeli klikniesz na rekordzie by zadzwonić, rekord zostanie usunięty z listy. +
+
+
  + Odswież +                 + Wróć +
+
+ + + height=460>
NOWE RĘCZNE WYBIERANIE NUMERU DLA :

Wpisz poniżej informacje o kontakcie do którego chcesz wykonać połączenie. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Kod wybierania:   (dla polski będzie to 48)
Telefon Number: +   (12 digits max - digits only) +
Przeszukuj rekordy:   (This option if checked will attempt to find the phone number in the system before inserting it as a new lead)
+

+     +
+

Jeżeli chcesz wybrać numer tak aby NIE został dodany jako nowy kontakt, wpisz dokładny numer telefonu w polu Wybierz ten numer poniżej. By zakończyć połączenie musisz otworzyć ROZMOWY W TEJ SESJI (w dole ekranu), i zakończyć połączenie klinając na link jego kanału..
 
Wybierz ten numer:   (tylko cyfry) +
+
+ Wybierz teraz +                 + Podgląd połączeń +                 + Wróć +
+
+ + + +
+
+ + + + +Twój Status:
Calls Dialing: +
+ + + + + > + + +
+
+ + Transfer - Konferencja            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + LOKALNY FINALIZUJĄCYCH     + + Rozłącz linię transferu +
+ seconds +   + channel + + KONSULTACYJNA   + + Rozłącz obie linie +
+ Numer do wybrania +   +   + + + WYBIERZ TEN NUMER + + WYJDŹ Z ROZMOWY 3-STRONNEJ +
+ Wybierz numer do nieweryfikowanego transferu +   + Połącz z klientem +   + Zawieś połączenie z klientem +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Wzywa w kolejce:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Ukryj wzywa w kolejce\n";} + else + {echo "Wzywa Pokaż w kolejce\n";} + } +?> + + + +
  +Inne leki Status:  
 
+ +
+Transfer Dostępne pełnomocników:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Połączenie rozdysponowane jako:

+ -
+
+
+ + + height=70> + + + + +
Klawisze skrótu dyspozycji: + Kiedy aktywne, naciśnij guzik na klawiaturze w celu wybrania opcji dla tej rozmowy. Rozmowa zostanie automatycznie rozłączona a opcja ustawiona:
+ + + + + +
+
+ + + height=70> + + + + + + +
Previous Callback Information: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Rozszerzony Alt telefonu: minimalizuj
+
+
+
+
+ +
+
+ + + + + +
maksymalizuj
Alt Telefon Info
+
+ + + height=500>
Nikt nie uczestniczy w Twojej sesji:
+ Wróć +

+ Ponownie połącz się z telefonem +
+
+ + + height=500>
Klient sie rozłączył:
+ Wróć +

+ Zakończ i wprowadź rezultat rozmowy +
+
+ + + height=550>
Call Wrapup sekundy remaining in wrapup

+ +

+ Finish Wrapup and Move On +
+
+ + +
+


+ Zamknij komunikat +
+
+ + + height=500>
Wasza sesja była uszkadzana
WYLOGUJ

Wróć +
+
+ + + height=500>
Istnieje problem synchronizacji czasu z systemem, należy powiadomić administratora systemu


Wróć +
+
+ + + height=500>

WYLOGUJ
+
+ + +
+
+ + +
 
+
+ + + height=47>
Zmiany wprowadzone w informacjach o kliencie będą zapisane tylko podczas trwania połączenia. Nie po rozłączaniu!.
+
+ + + height=460>
REZULTAT ROZMOWY :       Rozłącz się ponownie       minimalizuj
+ Koniec rozmowy, wybierz rezultat +
+ ZATRZYMAJ DZWONIENIE
+ WYCZYŚĆ FORMULARZ | + ZATWIERDŹ +

+ WEB FORM ZATWIERDŹ +

  +
+
+ + + height=460>
WYBÓR SZYFR PRZERWY :
+ Przerwa Code Selection + +

  +
+
+ + + height=460>
Wybierz grupę Alias :
+ Wybór grupy Alias + +

  +
+
+ + + + + + height=460>
Wybierz datę oddzwonienia :
+ + + Wybierz datę poniżej   +     + Hour: +   + Minutes: +   + +  
+ TYLKO MOJE INNE TERMINY
";} + ?> + Notatki:

+ + ZATWIERDŹ

+ +

  +
+
+ + + height=460>
SELEKCJA GRUPY ZAWNĘTRZNYCH FINALIZUJĄCYCH
+ Selekcja grupy zawnętrznych finalizujących +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + KOMBINOWANE POŁĄCZENIA(wychodzące aktywowane)
+ + RESET | + ZATWIERDŹ +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESET | + ZATWIERDŹ +



  +
+
+ + + + Kanał + Kanał + TYLKO MOJE INNE TERMINY
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " KOMBINOWANE POŁĄCZENIA
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +KLAWISZE SKRÓTU NIEAKTYWNE + + + + +> + + + + +
Agent web-client version:     KOMPILACJA:               Serwer:              
+ +Pokaż informacje o kanałach konferencyjnych +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
STATUS:
+
+Wybierz kolejny numer
+ PODGLĄD POŁĄCZEŃ
+ WYBIERANIE ALT NUM
+ + +PLIK NAGRANIA:
+
+
+NUMER NAGRANIA:
+
+ +Rozpocznij nagrywanie
+
+Web Formularz
+ 0) + {echo "\"Web
\n";} +?> +
+Zawieś rozmowę
+Transfer - Konferencja
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Odłącz kilenta
+
+
Wyślij tonowo

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Kanał:
Informacje o kliencie:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tytuł:   Imię:   2 Imię:   Nazwisko:
Adres1:
Adres2: Adres3:
Miasto: Stan: KodPocztowy:
Powiat: Vendedor ID: Płeć:
Telefon: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +Prefiks: Drugi telefon:
Pokaż: Email:
Komentarz: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/voicemail_check.php new file mode 100644 index 00000000..db993759 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pl/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nieprawidłowy NazwaUżytkownika/Hasło: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nieprawidłowy server_ip: |$server_ip| or Nieprawidłowy session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nieprawidłowy session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Sprawdzanie poczty głosowej"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "skrzynka poczty głosowej $vmail_box nie jest prawidłowy\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/active_list_refresh.php new file mode 100644 index 00000000..7f714668 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Exposição Da Lista: "; +if ($ADD==1) {echo "Extensões Vivas";} +if ($ADD==2) {echo "Extensões Ocupadas";} +if ($ADD==3) {echo "Linhas Exteriores";} +if ($ADD==4) {echo "Extensões Locais";} +if ($ADD==5) {echo "Conferências";} +if ($ADD==99999) {echo "AJUDA";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/astguiclient.php new file mode 100644 index 00000000..6c4ce683 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Você tem registrado agora para fora. Obrigado\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "web client astGUIclient: Início de uma sessão\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Início de uma sessão
 
Início de uma sessão Do Usuário:
Senha Do Usuário:
Início de uma sessão Do Telefone:
Senha Do Telefone:

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "web client astGUIclient: Início de uma sessão Do Telefone\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Português
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Início de uma sessão Do Telefone
 
Início de uma sessão Do Telefone:
Senha Do Telefone:

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "web client astGUIclient: Início de uma sessão Do Telefone\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Início de uma sessão Do Telefone
 
Pesaroso, seus início de uma sessão do telefone e senha não seja:
 
Início de uma sessão Do Telefone:
Senha Do Telefone:

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "web client astGUIclient\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +LOGOUT
\n"; ?> +
Painel PrincipalLinhas Ativas PainelPainel Das ConferênciasVerifique VoicemailVive A Chamada
+
+ + +

Logout
+
+ + +
TRUNK HANGUP

+ Active Trunks Menu
+ Tronco Do Hangup   |   + Tronco Do Hijack   |   + Escuta O Tronco   |   + Refresque   |   + Para trás à janela principal +
+
+ + +
HANGUP LOCAL

+ Menu Local Ativo
+ Local Do Hangup   |   + Local Do Hijack   |   + Escuta O Local   |   + Refresque   |   + Para trás à janela principal +
+
+ + + + + + + +
TRANSFERÊNCIA VIVA DA CHAMADA
Canaleta a ser transferida: Canaleta
Extensões:
Menu Das Extensões
+
+ Emita à extensão selecionada

+ Emita à caixa selecionada do vmail

+ Emita a este número:


+ Refresque


+ Para trás à janela principal

+
Conferências:
(estale sobre um número abaixo para emitir a uma conferência)
Emita minha canaleta demasiado
Menu Das Conferências
+
+ + + + + +
Seletor LOCAL Das Extensões
Telefone que chama-se de: Canaleta
Extensões:
Menu Das Extensões
+
+ Extensão selecionada chamada

+ Caixa selecionada chamada do vmail

+ Refresque


+ Para trás à janela principal

+
+
+ + +
CHAMADAS ESTACIONADAS:
+ Para trás à janela principal

+
+
+ + + + + + + + + + + + + + + +
  +
VOICEMAIL     NOVO:     VELHO:             SELETOR MANUAL       DIAL
CHAMADAS ESTACIONADAS: 0                EXTENSÕES LOCAIS DO SELETOR
CHAMADAS OUTBOUND :
CHAMADAS INBOUND:
VERSÃO astGUIclient do correia-cliente: CONFIGURAÇÃO:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
FAVORITOS       edite
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
FAVORITOS

 
SUBMETA MUDANÇAS dos FAVORITOS - requer o logout
PARA TRÁS À JANELA PRINCIPAL - ignore as mudanças feitas
+
+ +
+ + + + + + + + + + + + + +
+BATENTE | COMEÇO     Refresque a taxa: 1000 ms Mais rapidamente | Mais lento

+
Inicializar..
+
Extensões Ativas
+REFRESQUE | +ORDEM | +
Linhas Exteriores
+REFRESQUE | +ORDEM | +
Extensões Locais
+REFRESQUE | +ORDEM | +
+ Os Dados Vão Aqui

+
+ Os Dados Vão Aqui

Ação Do Tronco +
+ Os Dados Vão Aqui

Ação Local +
+
+ + + + +
+ + +Lista Das Conferências + + + +
+Estale sobre um número de quarto da conferência na esquerda para o +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/call_log_display.php new file mode 100644 index 00000000..987e46e7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Exposição Do Registro Da Chamada"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten é inválido ou protocolo $protocol é inválido\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/conf_exten_check.php new file mode 100644 index 00000000..fefc5e3f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Verificação Da Extensão De Conf"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten é inválido\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is em is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Solicita, em fila: $RingCalls";} + else {$RingCalls = "Solicita, em fila: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|COMEÇO",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_LOGOUT';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanaletaA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $CanaletaA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$CanaletaA[$counter] ~"; + # echo "$CanaletaA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten é inválido or Exten $exten é inválido\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Conferência $conf_exten foi registado a $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/inbound_popup.php new file mode 100644 index 00000000..0aa52190 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +CHAMADA INBOUND VIVA"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

CHAMADA INBOUND VIVA

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid é inválido\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Canaleta: $row[1]
CallerID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Canaleta=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "COSTUME - \n"; + + echo "
O Número Marcou: $row[8]
Notas:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "HANGUP - \n"; + echo "EMITA A MEU VOICEMAIL\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/live_exten_check.php new file mode 100644 index 00000000..0552b782 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Verificação Viva Da Extensão"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten é inválido ou protocolo $protocol é inválido\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanaletaA: $ChanneLA[$counter] ~"; + echo "CanaletaB: $ChanneLB[$counter] ~"; + echo "CanaletaBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanaletaA: $ChanneLA[$counter] ~"; + echo "CanaletaB: $ChanneLB[$counter] ~"; + echo "CanaletaBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanaletaA: $ChanneLA[$counter] ~"; + echo "CanaletaB: $ChanneLB[$counter] ~"; + echo "CanaletaBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "CanaletaA: $ChanneLA[$counter] ~"; + echo "CanaletaB: $ChanneLB[$counter] ~"; + echo "CanaletaBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "CanaletaA: $ChanneLA[$counter] ~"; + echo "CanaletaB: $ChanneLB[$counter] ~"; + echo "CanaletaBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/manager_send.php new file mode 100644 index 00000000..26aacd94 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "O Gerente Emite: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "AJUDA";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten é inválido or queryCID $queryCID é inválido, Originate comando não introduzido\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando emitido para Exten $exten Canaleta $channel em $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "extenName $extenName deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "\nOriginateName Action não emitido\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "extenName $extenName deve ser ajustado\n"; + echo "exten $exten deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "\nOriginateNameVmail Action não emitido\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten é inválido or queryCID $queryCID é inválido, Originate comando não introduzido\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Você não tem permissão para discar para sessões de outro agente $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate comando emitido para Exten $exten Canaleta $channel em $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten é inválido or ext_context $ext_context or queryCID $queryCID é inválido, Hangup comando não introduzido\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Canaleta $channel é inválido or queryCID $queryCID é inválido, Hangup comando não introduzido\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel não está vivo em $call_server_ip, Checking Live Canaleta...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Canaleta $channel não está vivo em $call_server_ip, Hangup comando não introduzido $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Canaleta $channel in use by another agent em $call_server_ip, Hangup comando não introduzido $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup comando emitido para Canaleta $channel em $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "exten $exten deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "auto_dial_level $auto_dial_level deve ser ajustado\n"; + echo "campaign $campaign deve ser ajustado\n"; + echo "uniqueid $uniqueid deve ser ajustado\n"; + echo "lead_id $lead_id deve ser ajustado\n"; + echo "\nRedirectVD Action não emitido\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "exten $exten deve ser ajustado\n"; + echo "extenName $extenName deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "parkedby $parkedby deve ser ajustado\n"; + echo "\nRedirectToPark Action não emitido\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "exten $exten deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "\nRedirectFromPark Action não emitido\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "extenName $extenName deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "\nRedirectName Action não emitido\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "extenName $extenName deve ser ajustado\n"; + echo "exten $exten deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "\nRedirectNameVmail Action não emitido\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "ExtraCanaleta $extrachannel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "exten $exten deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "\nRedirect Action não emitido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference em $server_ip, Redirect comando não introduzido\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não pode encontrar a conferência vazia em $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canaleta $channel não está vivo em $call_server_ip, Redirect comando não introduzido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canaleta $channel não está vivo em $server_ip, Redirect comando não introduzido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect comando não introduzido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX comando emitido para Canaleta $channel em $call_server_ip and \nHungup $extrachannel em $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel em $call_server_ip, Hungup $extrachannel em $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel em $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "ExtraCanaleta $extrachannel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "exten $exten deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "session_id $session_id deve ser ajustado\n"; + echo "\nRedirect Action não emitido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference em $server_ip, Redirect comando não introduzido\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Não pode encontrar a conferência vazia em $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Canaleta $channel não está vivo em $call_server_ip, Redirect comando não introduzido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Canaleta $channel não está vivo em $server_ip, Redirect comando não introduzido\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel não está vivo em $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra comando emitido para Canaleta $channel and \nExtraCanaleta $extrachannel\n to $exten em $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten em $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra comando emitido para Canaleta $channel em $call_server_ip and \nExtraCanaleta $extrachannel\n to $exten em $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Uma destas variáveis é inválido:\n"; + echo "Canaleta $channel deve ser mais grande de 2 caráteres\n"; + echo "queryCID $queryCID deve ser mais grande de 14 caráteres\n"; + echo "exten $exten deve ser ajustado\n"; + echo "ext_context $ext_context deve ser ajustado\n"; + echo "ext_priority $ext_priority deve ser ajustado\n"; + echo "\nRedirect Action não emitido\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canaleta $channel não está vivo em $server_ip, Redirect comando não introduzido\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect comando emitido para Canaleta $channel em $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canaleta $channel é inválido or queryCID $queryCID é inválido or filename: $filename é inválido, $ACTION comando não introduzido\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Canaleta $channel não está vivo em $server_ip, $ACTION comando não introduzido\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION comando emitido para Canaleta $channel em $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Canaleta $channel é inválido or exten $exten é inválido or filename: $filename é inválido, $ACTION comando não introduzido\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going em in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION comando emitido para Canaleta $channel em $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n A GRAVAÇÃO DURARÁ ATÉ 60 MINUTOS\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Conferência $exten, Stage $stage é inválido or queryCID $queryCID é inválido, Originate comando não introduzido\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume comando emitido para Conferência $exten, Stage $stage Canaleta $channel em $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/park_calls_display.php new file mode 100644 index 00000000..99c34930 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Exposição Estacionada Das Chamadas"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten é inválido ou protocolo $protocol é inválido\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/timeclock.php new file mode 100644 index 00000000..919ff2f4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "O usuário ea senha que você digitou não são ativos no sistema
Por favor, tente novamente:"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Início de uma sessão Do Usuário:
Senha Do Usuário:
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='COMEÇO', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='COMEÇO'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'COMEÇO') ) + { + ### You cannot log in or out within 30segundos of your last login/logout + $VDdisplayMESSAGE = "Você não pode efetuar login ou para fora dentro de 30 segundos do seu último login ou logout"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Início de uma sessão Do Usuário:
Senha Do Usuário:
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOLOGOUT') or ($status=='COMEÇO') or ($status=='LOGOUT') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Você tem agora autenticado-out"; + $LOGtimeMESSAGE = "Você saiu em$NOW_TIME
Quantidade de tempo que foram registradas em:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOLOGOUT') or ($status=='COMEÇO') or ($status=='LOGOUT') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERRO: timeclock entrada do log já realizados:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "BACK TO Agent Início de uma sessão Screen";} + if ($referrer=='admin') + {$BACKlink = "Retornar para Administração";} + if ($referrer=='welcome') + {$BACKlink = "ANTERIOR a tela Bem-vindo";} + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOLOGOUT') or ($status=='COMEÇO') or ($status=='LOGOUT') ) + { + $VDdisplayMESSAGE = "Vez desde que foi registrado em:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Você última autenticado-out em:$last_action_date

LOGIN Clique abaixo para log-in"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Quantidade de tempo que tem sido registrado em:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'LOGOUT'; + $LOGtimeMESSAGE = "Você autenticado-nos em: $last_action_date
Quantidade de tempo que tem sido registrado em:$totTIME_HMS

LOGOUT Clique abaixo para log-out"; + } + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Início de uma sessão Do Usuário:
Senha Do Usuário:
 

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vdc_db_query.php new file mode 100644 index 00000000..9cc1138e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Certificado Da Pergunta Da Base de dados"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('LOGOUT',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("COMEÇO|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("COMEÇO|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERRO: Não existem Shifts activado para o Grupo de Usuários\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERRO: Você não tem permissão para iniciar sessão no para fora do seu turno\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

GERENTE Override:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "GerenteInício de uma sessão:
\n"; + $VDdisplayMESSAGE.= "GerenteSenha:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Escolha Do Grupo $closer_choice é inválido\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Escolha Do Grupo $closer_choice foi registado ao usuário $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories é inválido\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories foi registado ao usuário $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "FUNIL VAZIO\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context é inválido\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NÚMERO\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NÚMERO\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NÚMERO NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST CHAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST CHAMADA TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CHAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "FUNIL VAZIO\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "ALT DEL TELEFONO NÚMERO STATUS NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count é inválido\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "ALT DEL TELEFONO NÚMERO STATUS CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage é inválido\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context é inválido\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " CHAMADA NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context é inválido\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CHAMADAOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID é inválido\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "REGISTRO NÃO ENTRADO\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign é inválido\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Introduzido: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "REGISTRO NÃO ENTRADO\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Introduzido: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "REGISTRO NÃO ENTRADO\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "REGISTRO NÃO ENTRADO\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id é inválido\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Introduzido: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "REGISTRO NÃO ENTRADO\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "REGISTRO NÃO ENTRADO\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_BATENTE|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|REGISTRO_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campanha $campaign é inválido\n"; + echo "lead_id $lead_id é inválido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campanha $campaign é inválido\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send em to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If CHAMADABK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user em $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten é inválido\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a LOGOUT record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation em the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id é inválido\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### CHAMADABACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### COMEÇO Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Usuário $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Último Attempt, Date of Último Non-Contact, Date of Último Contact, Date of Último Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' foi mudado a ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id é inválido\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage é inválido\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' está agora no status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list é inválido\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status é inválido\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### COMEÇO QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pausa Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Chamadas na fila Ver condicionada para esta campanha\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data em calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info em the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           CHAMADA GROUP     TYPE  
TAKE CHAMADA     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Chamadas na fila Ver condicionada para esta campanha\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vicidial.php new file mode 100644 index 00000000..c2616940 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Você tem registrado agora para fora. Obrigado\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls em hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofsegundos for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name em login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST em server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a SELETOR link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups em campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Cliente Do Hangup +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TelefoneSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT SELETOR by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Re-Início de uma sessão\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Português
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Re-Início de uma sessão
 
Início de uma sessão Do Telefone:
Senha Do Telefone:
Início de uma sessão Do Usuário:
Senha Do Usuário:
Campanha: $camp_form_code
  \n"; +echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Início de uma sessão Da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Início de uma sessão Do Usuário

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Início de uma sessão Da Campanha
 
Início de uma sessão Do Usuário:
Senha Do Usuário:
Campanha: $camp_form_code
  \n"; + echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Início de uma sessão\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Início de uma sessão
 
Início de uma sessão Do Telefone:
Senha Do Telefone:
Início de uma sessão Do Usuário:
Senha Do Usuário:
Campanha: $camp_form_code
  \n"; + echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Início de uma sessão Do Telefone\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Português
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Início de uma sessão Do Telefone
 
Início de uma sessão Do Telefone:
Senha Do Telefone:
  \n"; +echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('LOGOUT',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "É necessário efetuar login AO PRIMEIRO TIMECLOCK
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("COMEÇO|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("COMEÇO|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERRO: Não existem Shifts activado para o Grupo de Usuários
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERRO: Você não tem permissão para iniciar sessão no para fora do seu turno
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

GERENTE Override:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "GerenteInício de uma sessão:
\n"; + $VDdisplayMESSAGE.= "GerenteSenha:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Início de uma sessão Da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Início de uma sessão: \n
"; + echo "Senha:
\n"; + echo "Campanha: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESTAURAÇÃO_1|PRESTAURAÇÃO_2|PRESTAURAÇÃO_3|PRESTAURAÇÃO_4|PRESTAURAÇÃO_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESTAURAÇÃO_1|PRESTAURAÇÃO_2|PRESTAURAÇÃO_3|PRESTAURAÇÃO_4|PRESTAURAÇÃO_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESTAURAÇÃO_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESTAURAÇÃO_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESTAURAÇÃO_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESTAURAÇÃO_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESTAURAÇÃO_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "A campanha nao ativa, tenta por favor outra vez
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "O início de uma sessão incorreto, tenta por favor outra vez
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Início de uma sessão Da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Início de uma sessão Da Campanha
 
Início de uma sessão Do Usuário:
Senha Do Usuário:
Campanha: $camp_form_code
  \n"; + echo "

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Início de uma sessão Do Telefone Error\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Início de uma sessão Error
 
Pesaroso, seus início de uma sessão do telefone e senha não seja:
 
Início de uma sessão Do Telefone:
Senha Do Telefone:

VERSÃO: $version       CONFIGURAÇÃO: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CallerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TelefoneSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TelefoneSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed em this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login em phone: $SIP_user à campanha: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### COMEÇO SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NOVO record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today em that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Início de uma sessão Da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "Pesaroso, não há nenhuma ligação no funil para esta campanha\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Início de uma sessão: \n
"; + echo "Senha:
\n"; + echo "Campanha: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Início de uma sessão Da Campanha\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Português
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Início de uma sessão: \n
"; + echo "Senha:
\n"; + echo "Campanha: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsegundos counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Janeiro','February','Março','Abril','Pode','Junho', + 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +LOGOUT\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Vive A Chamada
+
+ + + + + height=>

Agent Screen
+
+ + +SELETOR MANUAL       SELETOR RÁPIDO
+
+ + +X RECHAMADAS ATIVAS
+
+ + +
+
+ +segundos: +     + + + + D1 - SELETOR\n"; + echo "
\n"; + echo "D2 - SELETOR\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
RECHAMADAS PARA O AGENTE :
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. +
+
+
  + Refresque +                 + Vá Para trás +
+
+ + + height=460>
LIGAÇÃO MANUAL NOVA DO SELETOR PARA :

Incorpore a informação abaixo para a ligação que nova você deseja se chamar. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Código Do Seletor:   (Este é geralmente um 1 nos EUA e no Canadá)
Telefone Number: +   (12 digits max - digits only) +
Ligações Existentes Da Busca:   (Esta opção se verificado tentará encontrar o número de telefone no sistema antes de introduzi-lo como uma ligação nova)
+

+     +
+

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á.
 
Ultrapassagem Do Seletor:   (os dígitos satisfazem somente) +
+
+ Seletor Agora +                 + Preview Call +                 + Vá Para trás +
+
+ + + +
+
+ + + + +Seu Status:
Calls Dialing: +
+ + + + + > + + +
+
+ + Transferência - Conferência            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + LOCAL MAIS PRÓXIMO     + + Linha De Xfer Do Hangup +
+ seconds +   + channel + + CONSULTIVO   + + Hangup Ambas as Linhas +
+ Número a chamar-se +   +   + + + ULTRAPASSAGEM DO SELETOR + + CHAMADA DA LICENÇA 3-WAY +
+ Transferência Da Cortina Do Seletor +   + Seletor Com Cliente +   + Seletor Do Cliente Do Parque +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Solicita, em fila:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Solicita Hide Na fila\n";} + else + {echo "Solicita Mostra Em Fila\n";} + } +?> + + + +
  +Outros agentes Status:  
 
+ +
+Agentes de transferência disponíveis:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Ligação Dispositioned Como:

+ -
+
+
+ + + height=70> + + + + +
Chaves Quentes Da Disposição: + Quando ativo, pressione simplesmente a chave de teclado para a:
+ + + + + +
+
+ + + height=70> + + + + + + +
Informação Precedente Da Rechamada: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Extensão Alt Telefone Informação: minimize
+
+
+
+
+ +
+
+ + + + + +
maximize
Alt Telefone Info
+
+ + + height=500>
Noone está em sua sessão:
+ Vá Para trás +

+ Agente Da Chamada Outra vez +
+
+ + + height=500>
O cliente pendurou acima:
+ Vá Para trás +

+ Revestimento e chamada da disposição +
+
+ + + height=550>
Chamada Wrapup: segundos restantes no wrapup

+ +

+ Revestimento Wrapup e movimento sobre +
+
+ + +
+


+ Fechar Mensagem +
+
+ + + height=500>
Sua sessão foi incapacitada
LOGOUT

Vá Para trás +
+
+ + + height=500>
Há um tempo sincronização problema com o seu sistema, por favor informe o seu administrador de sistema


Vá Para trás +
+
+ + + height=500>

LOGOUT
+
+ + +
+
+ + +
 
+
+ + + height=47>
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.
+
+ + + height=460>
CHAMADA DA DISPOSIÇÃO :       Hangup Outra vez       minimize
+ Extremidade-$$$-CHAME A Seleção Da Disposição +
+ PARE DE CHAMAR-SE
+ RESTAURAÇÃO | + SUBMETA +

+ WEB FORM SUBMETA +

  +
+
+ + + height=460>
SELECIONE Um CÓDIGO Da PAUSA :
+ Pausa Code Selection + +

  +
+
+ + + height=460>
Selecionar um grupo ALIÁS :
+ Grupo Alias Selecção + +

  +
+
+ + + + + + height=460>
Selecione uma data da rechamada :
+ + + Selecione uma data abaixo   +     + Hour: +   + Minutes: +   + +  
+ MINHA RECHAMADA SOMENTE
";} + ?> + Comentários dos CB:

+ + SUBMETA

+ +

  +
+
+ + + height=460>
SELEÇÃO DE GRUPO INBOUND MAIS PRÓXIMA
+ Seleção De Grupo Inbound Mais próxima +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + CHAMADA MISTURADA(outbound ativado)
+ + RESTAURAÇÃO | + SUBMETA +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESTAURAÇÃO | + SUBMETA +



  +
+
+ + + + Canaleta + Canaleta + MINHA RECHAMADA SOMENTE
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " CHAMADA MISTURADA
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +CHAVES QUENTES INATIVAS + + + + +> + + + + +
Agent web-client version:     CONFIGURAÇÃO:               Usuário:              
+ +Mostre a informação da canaleta da chamada de conferência +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
STATUS:
+
+Número Seguinte Do Seletor
+ INSPECÇÃO PRÉVIA DA LIGAÇÃO
+ ALT DO TELEFONE
+ + +LIMA DE GRAVAÇÃO:
+
+
+ID REGISTRO:
+
+ +Comece Gravar
+
+Formulário Da Correia fotorreceptora
+ 0) + {echo "\"Formulário
\n";} +?> +
+Chamada Do Parque
+Transferência - Conferência
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Cliente Do Hangup
+
+
Emita DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Canaleta:
Informação Do Cliente:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Título:   Prime:   Mi:  Último:
Endereço1:
Endereço2: Endereço3:
Cidade: Estado: PostCode:
Província: Vendedor Id: Sexo:
Telefone: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +DialCode: Alt. Telefone:
Mostra: Email:
Comentários: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/voicemail_check.php new file mode 100644 index 00000000..a874d40c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_pt/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Inválido Usuárioname/Senha: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Inválido server_ip: |$server_ip| or Inválido session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Inválido session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Verificação De Voicemail"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "caixa do voicemail $vmail_box é inválido\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/active_list_refresh.php new file mode 100644 index 00000000..ca7c00aa --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Показывать Списки: "; +if ($ADD==1) {echo "Активные расширения";} +if ($ADD==2) {echo "Занятые Расширения";} +if ($ADD==3) {echo "Внешние Линии";} +if ($ADD==4) {echo "Локальные Расширения";} +if ($ADD==5) {echo "Конференции";} +if ($ADD==99999) {echo "ПОМОЩЬ";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/astguiclient.php new file mode 100644 index 00000000..c38ff648 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Вы вышли из системы. Спасибо\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "web-клиент astGUIclient: Логин\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Логин
 
Логин Пользователя:
Пароль Пользователя:
Логин Телефона:
Пароль Телефона:

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "web-клиент astGUIclient: Логин Телефона\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Russian
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Логин Телефона
 
Логин Телефона:
Пароль Телефона:

ВЕРСИЯ: $version       СБОРКА: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "web-клиент astGUIclient: Логин Телефона\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Логин Телефона
 
Извините, но ваш логин и пароль телефона не активен в этой системе. Пожалуйста, попробуйте еще раз:
 
Логин Телефона:
Пароль Телефона:

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "web-клиент astGUIclient\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +ВЫХОД
\n"; ?> +
Главная ПанельПанель Активных ЛинийПанель КонференцийПроверьте Голосовую почтуЖивой Вызов
+
+ + +

Logout
+
+ + +
TRUNK РАЗЪЕДИНЕНИЕ

+ Active Trunks Menu
+ Hangup Trunk   |   + Hijack Trunk   |   + Listen Trunk   |   + Обновление   |   + Вернуться к Главному Окну +
+
+ + +
ЛОКАЛЬНВЙ РАЗЪЕДИНЕНИЕ

+ Активное Локальное Меню
+ Hangup Local   |   + Hijack Local   |   + Listen Local   |   + Обновление   |   + Вернуться к Главному Окну +
+
+ + + + + + + +
ПЕРЕВОД ЖИВОГО ВЫЗОВА
Канал в который будет переведен: Канал
Расширения:
Меню Расширений
+
+ Отправить в выбранное расширение

+ Отправить в выбранный vmail box

+ Отправить в этот номер:


+ Обновление


+ Вернуться к Главному Окну

+
Конференции:
(кликните на номере ниже, чтобы отправить в конференцию)
Отправить также мой канал
Меню Конференций
+
+ + + + + +
ЛОКАЛЬНОЕ Расширение Набора номера
Телефонный вызов от: Канал
Расширения:
Меню Расширений
+
+ Вызов в выбранное расширение

+ Вызов в выбранный vmail box

+ Обновление


+ Вернуться к Главному Окну

+
+
+ + +
ПАРКОВАТЬ ВЫЗОВ:
+ Вернуться к Главному Окну

+
+
+ + + + + + + + + + + + + + + +
  +
VOICEMAIL     НОВЫЙ:     СТАРЫЙ:             РУЧНОЙ НАБОР НОМЕРА       DIAL
ПАРКОВАТЬ ВЫЗОВ: 0                ЛОКАЛЬНЫЕ РАСШИРЕНИЯ НАБОРА НОМЕРА
ИСХОДЯЩИЕ ВЫЗОВЫ:
ВХОДЯЩИЕ ВЫЗОВЫ:
Версия web-клиента astGUIclient : СБОРКА:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
ИЗБРАННОЕ       редактировать
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
ИЗБРАННОЕ

 
ПОДТВЕРДИТЕ ИЗМЕНЕНИЕ ИЗБРАННОГО - требование для выхода из системы
ВЕРНУТЬСЯ К ГЛАВНОМУ ОКНУ - игнорирует сделанные изменения
+
+ +
+ + + + + + + + + + + + + +
+STOP | СТАРТ     Норма обновлений: 1000 ms Быстрее | Медленее

+
Инициализация..
+
Активные Расширения
+ОБНОВИТЬ | +ПОРЯДОК | +
Внешние Линии
+ОБНОВИТЬ | +ПОРЯДОК | +
Локальные Расширения
+ОБНОВИТЬ | +ПОРЯДОК | +
+ Данные Идут Сюда

+
+ Данные Идут Сюда

Trunk Action +
+ Данные Идут Сюда

Local Action +
+
+ + + + +
+ + +Список Конференций + + + +
+Для информации о конференции кликните на номер конференции слева +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/call_log_display.php new file mode 100644 index 00000000..61e10dab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Показать Логи Вызовов"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten это неправильно или протокол $protocol это неправильно\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/conf_exten_check.php new file mode 100644 index 00000000..cf896812 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Conf Extension Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten это неправильно\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is на is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Звонки в очереди: $RingCalls";} + else {$RingCalls = "Звонки в очереди: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|СТАРТ",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_ВЫХОД';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Статус: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $КаналA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $КаналA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$КаналA[$counter] ~"; + # echo "$КаналA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten это неправильно or Exten $exten это неправильно\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Конференция $conf_exten был зарегистрирован на $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/inbound_popup.php new file mode 100644 index 00000000..032c32e1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +ЖИВОЙ ВХОДЯЩИЙ ВЫЗОВ"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

ЖИВОЙ ВХОДЯЩИЙ ВЫЗОВ

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid это неправильно\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Канал: $row[1]
ВызывающийID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Канал=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "ПОЛЬЗОВАТЕЛЬСКИЙ - \n"; + + echo "
Набранный Номер: $row[8]
Примечания:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "РАЗЪЕДИНЕНИЕ - \n"; + echo "ПОСЛАТЬ В МОЙ VOICEMAIL\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/live_exten_check.php new file mode 100644 index 00000000..6226e934 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Live Extension Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten это неправильно или протокол $protocol это неправильно\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "КаналA: $ChanneLA[$counter] ~"; + echo "КаналB: $ChanneLB[$counter] ~"; + echo "КаналBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "КаналA: $ChanneLA[$counter] ~"; + echo "КаналB: $ChanneLB[$counter] ~"; + echo "КаналBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "КаналA: $ChanneLA[$counter] ~"; + echo "КаналB: $ChanneLB[$counter] ~"; + echo "КаналBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "КаналA: $ChanneLA[$counter] ~"; + echo "КаналB: $ChanneLB[$counter] ~"; + echo "КаналBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "КаналA: $ChanneLA[$counter] ~"; + echo "КаналB: $ChanneLB[$counter] ~"; + echo "КаналBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/manager_send.php new file mode 100644 index 00000000..9b4deb81 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Отослать Менеджеру: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "ПОМОЩЬ";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten это неправильно or queryCID $queryCID это неправильно, Originate команда не введена\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate посылать команду для Exten $exten Канал $channel на $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "extenName $extenName должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "\nOriginateName Action не послано\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "extenName $extenName должен быть установлен\n"; + echo "exten $exten должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "\nOriginateNameVmail Action не послано\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten это неправильно or queryCID $queryCID это неправильно, Originate команда не введена\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Вы не можете набрать в других сессиях агент $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate посылать команду для Exten $exten Канал $channel на $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten это неправильно or ext_context $ext_context or queryCID $queryCID это неправильно, Hangup команда не введена\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Канал $channel это неправильно or queryCID $queryCID это неправильно, Hangup команда не введена\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel это не активно на $call_server_ip, Checking Live Канал...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Канал $channel это не активно на $call_server_ip, Hangup команда не введена $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Канал $channel in use by another agent на $call_server_ip, Hangup команда не введена $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup посылать команду для Канал $channel на $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "exten $exten должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "auto_dial_level $auto_dial_level должен быть установлен\n"; + echo "campaign $campaign должен быть установлен\n"; + echo "uniqueid $uniqueid должен быть установлен\n"; + echo "lead_id $lead_id должен быть установлен\n"; + echo "\nRedirectVD Action не послано\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "exten $exten должен быть установлен\n"; + echo "extenName $extenName должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "parkedby $parkedby должен быть установлен\n"; + echo "\nRedirectToPark Action не послано\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "exten $exten должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "\nRedirectFromPark Action не послано\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "extenName $extenName должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "\nRedirectName Action не послано\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "extenName $extenName должен быть установлен\n"; + echo "exten $exten должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "\nRedirectNameVmail Action не послано\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "ExtraКанал $extrachannel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "exten $exten должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "\nRedirect Action не послано\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference на $server_ip, Redirect команда не введена\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Не могу найти свободную конференцию на $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Канал $channel это не активно на $call_server_ip, Redirect команда не введена\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Канал $channel это не активно на $server_ip, Redirect команда не введена\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect команда не введена\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX посылать команду для Канал $channel на $call_server_ip and \nHungup $extrachannel на $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel на $call_server_ip, Hungup $extrachannel на $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel на $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "ExtraКанал $extrachannel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "exten $exten должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "session_id $session_id должен быть установлен\n"; + echo "\nRedirect Action не послано\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference на $server_ip, Redirect команда не введена\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Не могу найти свободную конференцию на $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Канал $channel это не активно на $call_server_ip, Redirect команда не введена\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Канал $channel это не активно на $server_ip, Redirect команда не введена\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel это не активно на $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra посылать команду для Канал $channel and \nExtraКанал $extrachannel\n to $exten на $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten на $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra посылать команду для Канал $channel на $call_server_ip and \nExtraКанал $extrachannel\n to $exten на $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Одна из этих переменных это неправильно:\n"; + echo "Канал $channel должно быть больше чем 2 символа\n"; + echo "queryCID $queryCID должно быть больше чем 14 символов\n"; + echo "exten $exten должен быть установлен\n"; + echo "ext_context $ext_context должен быть установлен\n"; + echo "ext_priority $ext_priority должен быть установлен\n"; + echo "\nRedirect Action не послано\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Канал $channel это не активно на $server_ip, Redirect команда не введена\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect посылать команду для Канал $channel на $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Канал $channel это неправильно or queryCID $queryCID это неправильно or filename: $filename это неправильно, $ACTION команда не введена\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Канал $channel это не активно на $server_ip, $ACTION команда не введена\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION посылать команду для Канал $channel на $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Канал $channel это неправильно or exten $exten это неправильно or filename: $filename это неправильно, $ACTION команда не введена\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going на in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION посылать команду для Канал $channel на $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n ЗАПИСЬ МОЖЕТ ПРОДОЛЖАТЬСЯ ДО 60 МИН.\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Конференция $exten, Stage $stage это неправильно or queryCID $queryCID это неправильно, Originate команда не введена\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume посылать команду для Конференция $exten, Stage $stage Канал $channel на $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/park_calls_display.php new file mode 100644 index 00000000..9b99ff0b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Показать Паркованные Вызовы"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten это неправильно или протокол $protocol это неправильно\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/timeclock.php new file mode 100644 index 00000000..b2aab8e9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "Пользователя и пароль, которые вы вступили, не действующих в системе
Пожалуйста, повторите попытку:"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Логин Пользователя:
Пароль Пользователя:
 

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='СТАРТ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='СТАРТ'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'СТАРТ') ) + { + ### You cannot log in or out within 30секунды of your last login/logout + $VDdisplayMESSAGE = "Вы не можете войти или в течение 30 секунд после вашего последнего входа в систему или Logout"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Логин Пользователя:
Пароль Пользователя:
 

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOВЫХОД') or ($status=='СТАРТ') or ($status=='ВЫХОД') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Вы уже зарегистрированы отказа"; + $LOGtimeMESSAGE = "Вы вошли на$NOW_TIME
Количество раз, когда вы были зарегистрированы в:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='ВЫХОД', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='ВЫХОД', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='ВЫХОД', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOВЫХОД') or ($status=='СТАРТ') or ($status=='ВЫХОД') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ОШИБКА: timeclock вход вход уже сделал:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "BACK TO Агент Логин экрана";} + if ($referrer=='admin') + {$BACKlink = "BACK TO администрации";} + if ($referrer=='welcome') + {$BACKlink = "BACK приветствовать экрана";} + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOВЫХОД') or ($status=='СТАРТ') or ($status=='ВЫХОД') ) + { + $VDdisplayMESSAGE = "Время с момента вашего последнего входа в:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Вы последнего зарегистрированного по адресу:$last_action_date

Нажмите кнопку Вход для входа в"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Количество раз, когда вы вышли в:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'ВЫХОД'; + $LOGtimeMESSAGE = "Вы вошли в по адресу: $last_action_date
Количество раз, когда вы вышли в:$totTIME_HMS

Нажмите ВЫХОД для входа из"; + } + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Логин Пользователя:
Пароль Пользователя:
 

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vdc_db_query.php new file mode 100644 index 00000000..73ff7aa9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Скрипт Запроса Базы Данных"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('ВЫХОД',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("СТАРТ|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("СТАРТ|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ОШИБКА: Есть сдвиги не включена для пользователя группы\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ОШИБКА: Вы не можете войти в вашу за переход\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

МЕНЕДЖЕР Переопределить:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "МенеджерЛогин:
\n"; + $VDdisplayMESSAGE.= "МенеджерПароль:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Выбор Группы $closer_choice это неправильно\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Выбор Группы $closer_choice был зарегистрован пользователем $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories это неправильно\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories был зарегистрован пользователем $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "ПУСТОЙ КОНТЕЙНЕР\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context это неправильно\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC НОМЕР\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC НОМЕР\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "НОМЕР NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST ВЫЗОВ TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST ВЫЗОВ TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNПАУЗПАALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNПАУЗПАALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # ВЫЗОВOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ПУСТОЙ КОНТЕЙНЕР\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "АЛЬТ. ТЕЛЕФОН НОМЕР СТАТУС NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count это неправильно\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "АЛЬТ. ТЕЛЕФОН НОМЕР СТАТУС CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage это неправильно\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context это неправильно\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " ВЫЗОВ NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context это неправильно\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNПАУЗПАALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNПАУЗПАALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # ВЫЗОВOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID это неправильно\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "LOG НЕ ВВЕДЕН\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign это неправильно\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Введенный: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG НЕ ВВЕДЕН\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Введенный: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "LOG НЕ ВВЕДЕН\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "LOG НЕ ВВЕДЕН\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id это неправильно\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='ПАУЗПАALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='ПАУЗПАALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Введенный: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG НЕ ВВЕДЕН\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG НЕ ВВЕДЕН\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_STOP|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|ЗАПИСЬ_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Кампания $campaign это неправильно\n"; + echo "lead_id $lead_id это неправильно\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Кампания $campaign это неправильно\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send на to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If ВЫЗОВBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user на $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten это неправильно\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a ВЫХОД record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ВЫХОД','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation на the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='ПАУЗПА',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id это неправильно\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### ВЫЗОВBACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### СТАРТ Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Пользователь $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Фамилия Attempt, Date of Фамилия Non-Contact, Date of Фамилия Contact, Date of Фамилия Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' был изменен на ' . $dispo_choice . " Статус\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id это неправильно\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage это неправильно\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('ПАУЗПА',$stage)) {$QMstatus='ПАУЗПАALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' новый статус ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list это неправильно\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status это неправильно\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### СТАРТ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='ПАУЗПАREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Пауза Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -ПАУЗПАD  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Звонки в Очередь Открыть инвалидов для этой кампании\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data на calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info на the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           ВЫЗОВ GROUP     TYPE  
TAKE ВЫЗОВ     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Звонки в Очередь Открыть инвалидов для этой кампании\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vicidial.php new file mode 100644 index 00000000..8bbe3226 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Вы вышли из системы. Спасибо\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls на hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofсекунды for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name на login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST на server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a НАБОР НОМЕРА link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups на campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Разъединить Клиента +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$ТелефонSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT НАБОР НОМЕРА by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Re-Логин\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Russian
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Re-Логин
 
Логин Телефона:
Пароль Телефона:
Логин Пользователя:
Пароль Пользователя:
Кампания: $camp_form_code
  \n"; +echo "

ВЕРСИЯ: $version       СБОРКА: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Логин Кампании\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Логин Пользователя

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Логин Кампании
 
Логин Пользователя:
Пароль Пользователя:
Кампания: $camp_form_code
  \n"; + echo "

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Логин\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Логин
 
Логин Телефона:
Пароль Телефона:
Логин Пользователя:
Пароль Пользователя:
Кампания: $camp_form_code
  \n"; + echo "

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Логин Телефона\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Russian
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Логин Телефона
 
Логин Телефона:
Пароль Телефона:
  \n"; +echo "

ВЕРСИЯ: $version       СБОРКА: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('ВЫХОД',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Вы должны войти в систему TIMECLOCK ПЕРВЫЙ
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("СТАРТ|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("СТАРТ|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ОШИБКА: Есть сдвиги не включена для пользователя группы
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ОШИБКА: Вы не можете войти в вашу за переход
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

МЕНЕДЖЕР Переопределить:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "МенеджерЛогин:
\n"; + $VDdisplayMESSAGE.= "МенеджерПароль:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Логин Кампании\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Логин: \n
"; + echo "Пароль:
\n"; + echo "Кампания: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Кампания не активна, пожалуйста, попробуйте еще раз
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Логин неправильный, пожалуйста, попробуйте еще раз
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Логин Кампании\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Логин Кампании
 
Логин Пользователя:
Пароль Пользователя:
Кампания: $camp_form_code
  \n"; + echo "

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Логин Телефона Error\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Логин Error
 
Извините, но ваш логин и пароль телефона не активен в этой системе. Пожалуйста, попробуйте еще раз:
 
Логин Телефона:
Пароль Телефона:

ВЕРСИЯ: $version       СБОРКА: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $ВызывающийID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($ТелефонSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ТелефонSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed на this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login на phone: $SIP_user в кампанию: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### СТАРТ SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a НОВЫЙ record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today на that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='ПАУЗПАALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='ПАУЗПАALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Логин Кампании\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "Жаль, но leads нет в контейнере этой кампании\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Логин: \n
"; + echo "Пароль:
\n"; + echo "Кампания: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Логин Кампании\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Russian
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Логин: \n
"; + echo "Пароль:
\n"; + echo "Кампания: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='ПАУЗПАREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callсекунды counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Январь','February','Март','Апрель','Май','Июнь', + 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +ВЫХОД\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Живой Вызов
+
+ + + + + height=>

Agent Screen
+
+ + +РУЧНОЙ НАБОР НОМЕРА       БЫСТРЫЙ НАБОР НОМЕРА
+
+ + +X АКТИВНЫЕ ВЫЗОВBACK
+
+ + +
+
+ +секунды: +     + + + + D1 - НАБОР НОМЕРА\n"; + echo "
\n"; + echo "D2 - НАБОР НОМЕРА\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
ВЫЗОВBACK ДЛЯ ОПЕРАТОРА :
Чтобы позвонить клиенту сейчас, кликните на callback ниже. Если Вы нажмете на record ниже, чтобы позвонить, то это будет удалено из списка. +
+
+
  + Обновление +                 + Вернуться +
+
+ + + height=460>
НОВЫЙ LEAD РУЧНОЙ НАБОР НОМЕРА ДЛЯ :

Ведите информацию ниже для нового lead который вы хотите вызвать. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Код страны:   (Обычно 7 для России и некоторых стран СНГ)
Телефон Number: +   (12 digits max - digits only) +
Поиск Существующих Leads:   (Если эта опция выбрана, то будет предпринята попытка найти телефонный номер в системе, прежде чем вставить его как новый lead)
+

+     +
+

Если вы хотите набрать номер, но не добовлять новый lead, введите точный dialstring который вы хотите вызвать в поле Отмены Номера ниже. Для разъединения этого запроса вы должны будете открыть ссылку ЗАПРОСЫ В ЭТОЙ СЕССИИ внизу экрана, at the bottom of the screen and hang it up by clicking на its channel link there.
 
Отмененный набор номера:   (только цифры, пожалуйста) +
+
+ Новый Набор номера +                 + Предварительный Звоните +                 + Вернуться +
+
+ + + +
+
+ + + + +Ваш Статус:
Calls Dialing: +
+ + + + + > + + +
+
+ + Перевод - Конференция            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + ЛОКАЛЬНЫЙ CLOSER     + + Разъединение Xfer Линии +
+ seconds +   + channel + + КОНСУЛЬТАТИВНЫЙ   + + Разъединить Обе Линии +
+ Номер для вызова +   +   + + + НАБЕРИТЕ ОТМЕНУ + + ОСТАВИТЬ 3-WAY ЗАПРОС +
+ Слепой Перевод Набора номера +   + Набор номера С Клиентом +   + Парковать Набор номера Клиента +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Звонки в очередь:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Скрыть Звонки в очередь\n";} + else + {echo "Показать Звонки в очередь\n";} + } +?> + + + +
  +Другие агенты Статус:  
 
+ +
+Доступные Агенты передачи:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Lead Диспозицию как:

+ -
+
+
+ + + height=70> + + + + +
Горячие Клавиши Диспозиции: + Когда активно, просто нажмите клавишу желаемой диспозиции для этого запроса. Тогда запрос будет автоматически разъединен и dispositioned:
+ + + + + +
+
+ + + height=70> + + + + + + +
Предыдущая Информация о Callback: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Расширенная информация Alt Телефон: минимизировать
+
+
+
+
+ +
+
+ + + + + +
максимизировать
Alt Телефон Info
+
+ + + height=500>
Никого нет в вашей сессии:
+ Вернуться +

+ Вызов Оператора Снова +
+
+ + + height=500>
Клиент разъединен:
+ Вернуться +

+ Конец и Вызов Диспозиции +
+
+ + + height=550>
Call Wrapup: секунд осталось в wrapup

+ +

+ Финиш Wrapup и Переход +
+
+ + +
+


+ Закрыть сообщение +
+
+ + + height=500>
Ваша сессия отключена
ВЫХОД

Вернуться +
+
+ + + height=500>
Существует проблема синхронизации времени с вашей системой, пожалуйста, сообщите об этом вашему системному администратору


Вернуться +
+
+ + + height=500>

ВЫХОД
+
+ + +
+
+ + +
 
+
+ + + height=47>
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.
+
+ + + height=460>
DISPOSITION ВЫЗОВ :       Разъединить Снова       минимизировать
+ Выбор Диспозиции End-of-call +
+ ПАУЗА ВЫЗОВА
+ ОЧИСТИТЬ ФОРМУ | + SUBMIT +

+ WEB FORM SUBMIT +

  +
+
+ + + height=460>
ВЫБЕРИТЕ КОД ПАУЗЫ :
+ Пауза Code Selection + +

  +
+
+ + + height=460>
ВЫБОР ГРУППЫ ALIAS :
+ Группа Alias выбора + +

  +
+
+ + + + + + height=460>
Выберите дату для CallBack :
+ + + Выберите Дату Ниже   +     + Hour: +   + Minutes: +   + +  
+ ТОЛЬКО МОИ ВЫЗОВBACK
";} + ?> + CB Комментарии:

+ + SUBMIT

+ +

  +
+
+ + + height=460>
ВЫБОР INBOUND ГРУППЫ CLOSER
+ Closer Inbound Group Selection +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + BLENDED ВЫЗОВING(исходящие активированы)
+ + RESET | + SUBMIT +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ RESET | + SUBMIT +



  +
+
+ + + + Канал + Канал + ТОЛЬКО МОИ ВЫЗОВBACK
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " BLENDED ВЫЗОВING
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +НЕАКТИВНЫЕ ГОРЯЧИЕ КЛАВИШИ + + + + +> + + + + +
Agent web-client version:     СБОРКА:               Сервер:              
+ +Показать информацию о канале конференц-связи +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
СТАТУС:
+
+Набрать следующий номер
+ ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР LEAD
+ НАБРАТЬ АЛЬТ. НОМЕР
+ + +ФАЙЛ ЗАПИСИ:
+
+
+ID ЗАПИСИ:
+
+ +Начать Запись
+
+Web Форма
+ 0) + {echo "\"Web
\n";} +?> +
+Парковать Вызов
+Перевод - Конференция
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Разъединить Клиента
+
+
Послать DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Канал:
Информация Клиента:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Title:   Имя:   MI:   Фамилия:
Адрес1:
Адрес2: Адрес3:
Город: Округ: Индекс:
Область/Край: ID Вендора: Пол:
Телефон: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +Код: Альт. Телефон:
Показать: Email:
Комментарии: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/voicemail_check.php new file mode 100644 index 00000000..f775c5f5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_ru/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Недопустимо Пользовательname/Пароль: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Недопустимо server_ip: |$server_ip| or Недопустимо session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Недопустимо session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Проверка Voicemail"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "voicemail box $vmail_box это неправильно\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/active_list_refresh.php new file mode 100644 index 00000000..3f46525b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Zobraziť zoznamy: "; +if ($ADD==1) {echo "Aktívne pobočky";} +if ($ADD==2) {echo "Obsadené pobočky";} +if ($ADD==3) {echo "Vonkajšie linky";} +if ($ADD==4) {echo "Lokálne pobočky";} +if ($ADD==5) {echo "Konferencie";} +if ($ADD==99999) {echo "POMOC";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/astguiclient.php new file mode 100644 index 00000000..3efb17ec --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Práve ste sa odhlásili, Ďakujeme\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "web klient astGUIclient: Prihlásiť\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Prihlásiť
 
Meno užívateľa:
Heslo užívateľa:
Prihlásenie telefónu:
Heslo telefónu:

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "web klient astGUIclient: Prihlásenie telefónu\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Slovensky
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Prihlásenie telefónu
 
Prihlásenie telefónu:
Heslo telefónu:

VERZIA: $version       POSTAVENÉ: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "web klient astGUIclient: Prihlásenie telefónu\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Prihlásenie telefónu
 
Prepáčte, Vaše prihlasovacie meno a heslo nie sú aktívne v tomto systéme, prosím skúste znova:
 
Prihlásenie telefónu:
Heslo telefónu:

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "web klient astGUIclient\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +ODHLÁSIŤ
\n"; ?> +
Základný panelPanel aktívnych liniekPanel konferenciíOveriť hlasovú schránkuŽivý hovor
+
+ + +

Logout
+
+ + +
TRUNK POLOŹIŤ

+ Active Trunks Menu
+ Zložiť trunk   |   + Capturar Trunk   |   + Počúvať trunk   |   + Osviežiť   |   + Säť do zakladného okna +
+
+ + +
Zloženie lokálne

+ Aktívne lokálne menu
+ Zložiť lokálne   |   + Capturar Local   |   + Počúvať lokálne   |   + Osviežiť   |   + Säť do zakladného okna +
+
+ + + + + + + +
PRESMEROVANIE ŽIVÉHO HOVORU
Kanál má byť presmerovaný: Kanál
Pobočky:
Menu pobočiek
+
+ Poslať do vybranej pobočky

+ Poslať do vybranej odkazovej schránky

+ Poslať na toto číslo:


+ Osviežiť


+ Säť do zakladného okna

+
Konferencie:
(Kliknite na číslo dole pre poslanie do konferencie)
Poslať môj kanál tiež
Menu konferencií
+
+ + + + + +
Volanie LOKÁLNYCH pobočiek
Volanie telefónu z: Kanál
Pobočky:
Menu pobočiek
+
+ Volať vybrané pobočky

+ Volať vybrané hlasové schránky

+ Osviežiť


+ Säť do zakladného okna

+
+
+ + +
ZAZAPARKOVAŤOVANIE HOVOROV:
+ Säť do zakladného okna

+
+
+ + + + + + + + + + + + + + + +
  +
HLASOVÁ SCHRÁNKA     NOVÁ:     STARÁ:             RUČNÉ VOLANIE       DIAL
ZAZAPARKOVAŤOVANIE HOVOROV: 0                VOLANIE LOKÁLNYCH POBOČIEK
ODCHODZIE HOVORY:
PRÍCHODZIE HOVORY:
astGUIclient verzia web-klient: POSTAVENÉ:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
FAVORIZOVANÉ       upraviť
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
FAVORIZOVANÉ

 
POTVRDIT FAVORIZOVANÉ ZMENY – vyžaduje sa odhlásenie
BACK TO MAIN WINDOW - ignore changes made
+
+ +
+ + + + + + + + + + + + + +
+ZASTAVIŤ | SPUSTIŤ     Doba obnovenia: 1000 ms Rýchlejšie | Pomalšie

+
Inicializovať..
+
Aktívne pobočky
+OSVIEŽIŤ | +PORADIE | +
Vonkajšie linky
+OSVIEŽIŤ | +PORADIE | +
Lokálne pobočky
+OSVIEŽIŤ | +PORADIE | +
+ Tu sú dáta

+
+ Tu sú dáta

Trunk akcia +
+ Tu sú dáta

Lokálna akcia +
+
+ + + + +
+ + +Zoznam konferencií + + + +
+Kliknite ľavým tlačidlom na konferenciu pre získanie informácie +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/call_log_display.php new file mode 100644 index 00000000..ac32a7cf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Zobraziť log hovoru"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten Nie je správny alebo protokol $protocol Nie je správny\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/conf_exten_check.php new file mode 100644 index 00000000..4e6869d6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Overiť konferenčnú pobočku"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten Nie je správny\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is na is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Hovory v Queue: $RingCalls";} + else {$RingCalls = "Hovory v Queue: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|SPUSTIŤ",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_ODHLÁSIŤ';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Stav: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $KanálA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $KanálA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$KanálA[$counter] ~"; + # echo "$KanálA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten Nie je správny or Exten $exten Nie je správny\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Konferencia $conf_exten bol zaregistrovaný $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/inbound_popup.php new file mode 100644 index 00000000..17d239a2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +ŽIVÝ PRÍCHODZÍ HOVOR"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

ŽIVÝ PRÍCHODZÍ HOVOR

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid Nie je správny\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Kanál: $row[1]
IDvolajúceho: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Kanál=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "UPRAVENÉ - \n"; + + echo "
Volané číslo: $row[8]
Poznámky:$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "POLOŹIŤ - \n"; + echo "POSLAŤ DO MOJEJ HLASOVEJ SCHRÁNKY\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/live_exten_check.php new file mode 100644 index 00000000..33c26162 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Overiť aktívnu pobočku"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten Nie je správny alebo protokol $protocol Nie je správny\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanálA: $ChanneLA[$counter] ~"; + echo "KanálB: $ChanneLB[$counter] ~"; + echo "KanálBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanálA: $ChanneLA[$counter] ~"; + echo "KanálB: $ChanneLB[$counter] ~"; + echo "KanálBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanálA: $ChanneLA[$counter] ~"; + echo "KanálB: $ChanneLB[$counter] ~"; + echo "KanálBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "KanálA: $ChanneLA[$counter] ~"; + echo "KanálB: $ChanneLB[$counter] ~"; + echo "KanálBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "KanálA: $ChanneLA[$counter] ~"; + echo "KanálB: $ChanneLB[$counter] ~"; + echo "KanálBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/manager_send.php new file mode 100644 index 00000000..39574e30 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Poslať manažér: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "POMOC";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten Nie je správny or queryCID $queryCID Nie je správny, Originate príkaz nebol vložený\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate príkaz poslaný pre Exten $exten Kanál $channel na $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "extenName $extenName musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "\nOriginateName Action neodoslané\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "extenName $extenName musí byť nastavené\n"; + echo "exten $exten musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "\nOriginateNameVmail Action neodoslané\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten Nie je správny or queryCID $queryCID Nie je správny, Originate príkaz nebol vložený\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR Nie je dovolené, aby voľby do iných agent zasadnutí $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate príkaz poslaný pre Exten $exten Kanál $channel na $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten Nie je správny or ext_context $ext_context or queryCID $queryCID Nie je správny, Hangup príkaz nebol vložený\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Kanál $channel Nie je správny or queryCID $queryCID Nie je správny, Hangup príkaz nebol vložený\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel nie je živá na $call_server_ip, Checking Live Kanál...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Kanál $channel nie je živá na $call_server_ip, Hangup príkaz nebol vložený $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Kanál $channel in use by another agent na $call_server_ip, Hangup príkaz nebol vložený $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup príkaz poslaný pre Kanál $channel na $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "exten $exten musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "auto_dial_level $auto_dial_level musí byť nastavené\n"; + echo "campaign $campaign musí byť nastavené\n"; + echo "uniqueid $uniqueid musí byť nastavené\n"; + echo "lead_id $lead_id musí byť nastavené\n"; + echo "\nRedirectVD Action neodoslané\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "exten $exten musí byť nastavené\n"; + echo "extenName $extenName musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "parkedby $parkedby musí byť nastavené\n"; + echo "\nRedirectToPark Action neodoslané\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "exten $exten musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "\nRedirectFromPark Action neodoslané\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "extenName $extenName musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "\nRedirectName Action neodoslané\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "extenName $extenName musí byť nastavené\n"; + echo "exten $exten musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "\nRedirectNameVmail Action neodoslané\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "ExtraKanál $extrachannel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "exten $exten musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "\nRedirect Action neodoslané\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference na $server_ip, Redirect príkaz nebol vložený\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie je možné nájsť prázdnu konferenciu na $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Kanál $channel nie je živá na $call_server_ip, Redirect príkaz nebol vložený\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Kanál $channel nie je živá na $server_ip, Redirect príkaz nebol vložený\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect príkaz nebol vložený\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX príkaz poslaný pre Kanál $channel na $call_server_ip and \nHungup $extrachannel na $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel na $call_server_ip, Hungup $extrachannel na $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel na $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "ExtraKanál $extrachannel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "exten $exten musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "session_id $session_id musí byť nastavené\n"; + echo "\nRedirect Action neodoslané\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference na $server_ip, Redirect príkaz nebol vložený\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Nie je možné nájsť prázdnu konferenciu na $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Kanál $channel nie je živá na $call_server_ip, Redirect príkaz nebol vložený\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Kanál $channel nie je živá na $server_ip, Redirect príkaz nebol vložený\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel nie je živá na $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra príkaz poslaný pre Kanál $channel and \nExtraKanál $extrachannel\n to $exten na $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten na $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra príkaz poslaný pre Kanál $channel na $call_server_ip and \nExtraKanál $extrachannel\n to $exten na $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "Jeden z týchto premených Nie je správny:\n"; + echo "Kanál $channel musí byť viac ako 2 znaky\n"; + echo "queryCID $queryCID musí byť viac ako 14 znakov\n"; + echo "exten $exten musí byť nastavené\n"; + echo "ext_context $ext_context musí byť nastavené\n"; + echo "ext_priority $ext_priority musí byť nastavené\n"; + echo "\nRedirect Action neodoslané\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Kanál $channel nie je živá na $server_ip, Redirect príkaz nebol vložený\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect príkaz poslaný pre Kanál $channel na $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Kanál $channel Nie je správny or queryCID $queryCID Nie je správny or filename: $filename Nie je správny, $ACTION príkaz nebol vložený\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Kanál $channel nie je živá na $server_ip, $ACTION príkaz nebol vložený\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION príkaz poslaný pre Kanál $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Kanál $channel Nie je správny or exten $exten Nie je správny or filename: $filename Nie je správny, $ACTION príkaz nebol vložený\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going na in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION príkaz poslaný pre Kanál $channel na $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n NAHRÁVAŤ SA BUDE 60 MINÚT\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Konferencia $exten, Stage $stage Nie je správny or queryCID $queryCID Nie je správny, Originate príkaz nebol vložený\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume príkaz poslaný pre Konferencia $exten, Stage $stage Kanál $channel na $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/park_calls_display.php new file mode 100644 index 00000000..b7e1e7b3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Zobraziť zaparkované hovory"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten Nie je správny alebo protokol $protocol Nie je správny\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/timeclock.php new file mode 100644 index 00000000..e7a48c41 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "Užívateľa a heslo, ktoré ste zadali, nie sú aktívne v systéme
Prosím, skúste to znova:"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Meno užívateľa:
Heslo užívateľa:
 

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='SPUSTIŤ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='SPUSTIŤ'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'SPUSTIŤ') ) + { + ### You cannot log in or out within 30sekúnd of your last login/logout + $VDdisplayMESSAGE = "Nemôžete sa prihlásiť alebo sa do 30 sekúnd od vášho posledného prihlásenia alebo odhlásenie"; + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Meno užívateľa:
Heslo užívateľa:
 

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOODHLÁSIŤ') or ($status=='SPUSTIŤ') or ($status=='ODHLÁSIŤ') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "Teraz ste prihlásený-out"; + $LOGtimeMESSAGE = "Ste odhlásený na$NOW_TIME
Množstvo času, ste prihlásený-in:$totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='ODHLÁSIŤ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='ODHLÁSIŤ', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='ODHLÁSIŤ', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOODHLÁSIŤ') or ($status=='SPUSTIŤ') or ($status=='ODHLÁSIŤ') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERROR: timeclock log vstupe už bolo dosiahnuté:$status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "SPÄŤ na Agent Prihlásiť obrazovky";} + if ($referrer=='admin') + {$BACKlink = "SPÄŤ na administratívne";} + if ($referrer=='welcome') + {$BACKlink = "SPÄŤ na úvodnú obrazovku";} + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOODHLÁSIŤ') or ($status=='SPUSTIŤ') or ($status=='ODHLÁSIŤ') ) + { + $VDdisplayMESSAGE = "Čas od Vášho posledného prihlásenia-in:$totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "Ty posledný prihlásený-out na:$last_action_date

Kliknite nižšie k LOGIN LOG-IN"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Množstvo času, ktoré ste vykáceli-in:$totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'ODHLÁSIŤ'; + $LOGtimeMESSAGE = "Ste prihlásený-in na adrese: $last_action_date
Množstvo času, ktoré ste vykáceli-in:$totTIME_HMS

Kliknite na Logout nižšie log-out"; + } + + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"AgentTimeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
Meno užívateľa:
Heslo užívateľa:
 

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vdc_db_query.php new file mode 100644 index 00000000..854f496e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Databázový dotaz-script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('ODHLÁSIŤ',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("SPUSTIŤ|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("SPUSTIŤ|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: Nie sú k dispozícii žiadne Posuvy povolený pre užívateľské skupiny\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: Nemáte možnosť prihlásiť sa mimo vašej smeny\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

MANAGER prepísať:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ManažérPrihlásiť:
\n"; + $VDdisplayMESSAGE.= "ManažérHeslo:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Zmena skupiny $closer_choice Nie je správny\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Zmena skupiny $closer_choice bol zaregistrovaný pre užívateľa $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories Nie je správny\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories bol zaregistrovaný pre užívateľa $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "ZASOBNIK JE PRAZDNY\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context Nie je správny\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC ČÍSLO\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC ČÍSLO\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "ČÍSLO NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST HOVOR TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST HOVOR TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # HOVOROUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ZASOBNIK JE PRAZDNY\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "ALTERN. TELEFÓN ČÍSLO STAV NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count Nie je správny\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "ALTERN. TELEFÓN ČÍSLO STAV CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage Nie je správny\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context Nie je správny\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " HOVOR NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context Nie je správny\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # HOVOROUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID Nie je správny\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "LOG NEBOL ZADANÝ\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign Nie je správny\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Vložiť: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NEBOL ZADANÝ\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Vložiť: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "LOG NEBOL ZADANÝ\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "LOG NEBOL ZADANÝ\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id Nie je správny\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Vložiť: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NEBOL ZADANÝ\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG NEBOL ZADANÝ\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_ZASTAVIŤ|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|ZÁZNAM_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Kampaň $campaign Nie je správny\n"; + echo "lead_id $lead_id Nie je správny\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Kampaň $campaign Nie je správny\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send na to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If HOVORBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user na $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten Nie je správny\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a ODHLÁSIŤ record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','ODHLÁSIŤ','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation na the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id Nie je správny\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### HOVORBACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### SPUSTIŤ Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL Užívateľ $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Posledný Attempt, Date of Posledný Non-Contact, Date of Posledný Contact, Date of Posledný Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' bol zmenený pre ' . $dispo_choice . " Stav\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id Nie je správny\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage Nie je správny\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' je teraz v stave ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list Nie je správny\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status Nie je správny\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### SPUSTIŤ QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pauza Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Hovorov v zobrazení frontu Zakázané pre túto kampaň\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data na calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info na the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           HOVOR GROUP     TYPE  
TAKE HOVOR     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Hovorov v zobrazení frontu Zakázané pre túto kampaň\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vicidial.php new file mode 100644 index 00000000..41758510 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "Práve ste sa odhlásili, Ďakujeme\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls na hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number ofsekúnd for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name na login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST na server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a VOLAŤ link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups na campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Zložiť zákazníka +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$TelefónSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT VOLAŤ by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Znova prihlásiť\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Slovensky
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Znova prihlásiť
 
Prihlásenie telefónu:
Heslo telefónu:
Meno užívateľa:
Heslo užívateľa:
Kampaň: $camp_form_code
  \n"; +echo "

VERZIA: $version       POSTAVENÉ: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Prihlásenie kampane\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

Meno užívateľa

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Prihlásenie kampane
 
Meno užívateľa:
Heslo užívateľa:
Kampaň: $camp_form_code
  \n"; + echo "

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Prihlásiť\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Prihlásiť
 
Prihlásenie telefónu:
Heslo telefónu:
Meno užívateľa:
Heslo užívateľa:
Kampaň: $camp_form_code
  \n"; + echo "

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Prihlásenie telefónu\n"; +echo "\n"; +echo "\n"; +echo "Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English Slovensky
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Prihlásenie telefónu
 
Prihlásenie telefónu:
Heslo telefónu:
  \n"; +echo "

VERZIA: $version       POSTAVENÉ: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('ODHLÁSIŤ',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Musíte sa prihlásiť do TIMECLOCK PRVEJ
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("SPUSTIŤ|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("SPUSTIŤ|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: Nie sú k dispozícii žiadne Posuvy povolený pre užívateľské skupiny
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: Nemáte možnosť prihlásiť sa mimo vašej smeny
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

MANAGER prepísať:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "ManažérPrihlásiť:
\n"; + $VDdisplayMESSAGE.= "ManažérHeslo:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Prihlásenie kampane\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Prihlásiť: \n
"; + echo "Heslo:
\n"; + echo "Kampaň: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PZNOVU INCIALIZOVAŤ_1|PZNOVU INCIALIZOVAŤ_2|PZNOVU INCIALIZOVAŤ_3|PZNOVU INCIALIZOVAŤ_4|PZNOVU INCIALIZOVAŤ_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PZNOVU INCIALIZOVAŤ_1|PZNOVU INCIALIZOVAŤ_2|PZNOVU INCIALIZOVAŤ_3|PZNOVU INCIALIZOVAŤ_4|PZNOVU INCIALIZOVAŤ_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PZNOVU INCIALIZOVAŤ_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PZNOVU INCIALIZOVAŤ_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PZNOVU INCIALIZOVAŤ_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PZNOVU INCIALIZOVAŤ_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PZNOVU INCIALIZOVAŤ_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Kampaň nie je aktívna, prosím skúste znova
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Prihlasovacie meno je nesprávne, prosím skúste znova
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Prihlásenie kampane\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Prihlásenie kampane
 
Meno užívateľa:
Heslo užívateľa:
Kampaň: $camp_form_code
  \n"; + echo "

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Prihlásenie telefónu Error\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Prihlásiť Error
 
Prepáčte, Vaše prihlasovacie meno a heslo nie sú aktívne v tomto systéme, prosím skúste znova:
 
Prihlásenie telefónu:
Heslo telefónu:

VERZIA: $version       POSTAVENÉ: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $IDvolajúceho_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($TelefónSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($TelefónSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed na this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login na phone: $SIP_user do kampane: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### SPUSTIŤ SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NOVÁ record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today na that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Prihlásenie kampane\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "Prepáčte, ale nie sú záznamy v zásobníku pre túto kamaň\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Prihlásiť: \n
"; + echo "Heslo:
\n"; + echo "Kampaň: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Prihlásenie kampane\n"; + echo "\n"; + echo "\n"; + echo "Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English Slovensky
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Prihlásiť: \n
"; + echo "Heslo:
\n"; + echo "Kampaň: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live callsekúnd counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('Január','February','Marec','Apríl','Máj','Jún', + 'Júl','August','September','Október','November','Decemeber'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +ODHLÁSIŤ\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Živý hovor
+
+ + + + + height=>

Agent Screen
+
+ + +RUČNÉ VOLANIE       RÝCHLE VOLANIE
+
+ + +X AKTÍVNE PREPLÁNOVANÉ HOVORY
+
+ + +
+
+ +sekúnd: +     + + + + D1 - VOLAŤ\n"; + echo "
\n"; + echo "D2 - VOLAŤ\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
PREPLÁNOVANÉ HOVORY PRE AGENTA :
Kliknite na preplánovanie hovoru na volanie zákaznikovi znova. Ak kliknete na záznam nižšie budete ho volať a bude odstránený zo zoznamu. +
+
+
  + Osviežiť +                 + Vrátiť späť +
+
+ + + height=460>
NOVÉ manuálne vytáčanie pre zoznam kontaktov :

Zadajte nižšie uvedené informácie pre nový zoznam kontaktov, ktorý chcete volať. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Volať kód:   (To je obvykle 1 v USA-Kanada)
Telefón Number: +   (12 digits max - digits only) +
Vyhľadať existujúce zoznamy kontaktov:   (Táto voľba skontroluje, ak sa bude snažiť nájsť telefónne číslo do systému pred jeho vloženie ako nového zoznamu kontaktov)
+

+     +
+

Ak chcete vytočiť číslo, a nemáte ho v novom zozname kontaktov, vložte volané číslo , ktoré chcete volať do poľa Prepísať volanie. Pre ukončenie hovoru, budete musieť otvoriť odkaz HOVORY V TEJTO RELÁCII v spodnej časti obrazovky, a ukončiť požadovaný kanál.
 
Prepísanie volania:   (prosím len čísla) +
+
+ Volať znova +                 + Náhľad Výzva +                 + Vrátiť späť +
+
+ + + +
+
+ + + + +Váš stav:
Calls Dialing: +
+ + + + + > + + +
+
+ + Presmerovanie - Konferencia            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + LOKALNE ROZSIRENIE     + + Zložiť Xfer linku +
+ seconds +   + channel + + PORADNÝ   + + Zložiť obe linky +
+ Číslo na volanie +   +   + + + PREPISAT VOLANIE + + PONECHAT 3 CESTNE VOLANIE +
+ Volať slepé presmerovanie +   + Volanie so zákazníkom +   + Zaparkovať hovor so zákazníkom +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 Hovorov vo fronte:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Skryť žiada, aby vo fronte\n";} + else + {echo "Zobraziť žiada, aby vo fronte\n";} + } +?> + + + +
  +Ostatné zástupcovia Stav:  
 
+ +
+Dostupných prostriedkov Transfer:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
Kontakty pripravené ako:

+ -
+
+
+ + + height=70> + + + + +
Rozloženie horúcich kláves: + Keď je aktívne, jednoducho stlačte na klávesnici tlačidlo pre požadovanú dispozíciu pre tento hovor. Hovor bude potom ukončený automaticky:
+ + + + + +
+
+ + + height=70> + + + + + + +
Predchádzajúca informácia o preplánovaní hovoru: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
Rozšírená Alt Telefón Informácie: minimalizovať
+
+
+
+
+ +
+
+ + + + + +
maximalizovať
Alt Telefón Info
+
+ + + height=500>
Nikto nie je vo Vašej relácii:
+ Vrátiť späť +

+ Volať agenta znova +
+
+ + + height=500>
Zákazník položil:
+ Vrátiť späť +

+ Ukončenie a umiestnenie hovoru +
+
+ + + height=550>
Volanie Wrapup: sekúnd zostávajúcich na wrapup

+ +

+ Dokončiť Wrapup a presunúť na +
+
+ + +
+


+ Zavrieť správu +
+
+ + + height=500>
Vaša relácia bola ukončená
ODHLÁSIŤ

Vrátiť späť +
+
+ + + height=500>
Je synchronizácia času problém s vašim systémom, povedzte to, prosím, správcu systému


Vrátiť späť +
+
+ + + height=500>

ODHLÁSIŤ
+
+ + +
+
+ + +
 
+
+ + + height=47>
Všetky zmeny vykonané v informáciách o zákazníkovi teraz , budú vykonané, musíte zmeniť informácie o zákazníkovi pred ukončením hovoru.
+
+ + + height=460>
VYKONANIE HOVORU :       Položte znova       minimalizovať
+ Ukončenie hovoru vybranej dispozície +
+ PAUZA VOLAJUCEHO AGENTA
+ VYMAZAŤ FORMULÁR | + POTVRDIŤ +

+ WEB FORM POTVRDIŤ +

  +
+
+ + + height=460>
VYBRAŤ KÓD PAUZY :
+ Pauza Code Selection + +

  +
+
+ + + height=460>
VYBER GROUP ALIAS :
+ Skupina Alias Výber + +

  +
+
+ + + + + + height=460>
Vyberte dátum preplánovania hovoru :
+ + + Vyberte dátum nižšie   +     + Hour: +   + Minutes: +   + +  
+ LEN MOJE PREPLÁNOVANÉ HOVORY
";} + ?> + Poznámky CB:

+ + POTVRDIŤ

+ +

  +
+
+ + + height=460>
Užší výber prichádzajúce skupiny
+ Užší výber prichádzajúce skupiny +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + ZMIESANE VOLANIE(Odchádzaúce volanie aktivované)
+ + ZNOVU INCIALIZOVAŤ | + POTVRDIŤ +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ ZNOVU INCIALIZOVAŤ | + POTVRDIŤ +



  +
+
+ + + + Kanál + Kanál + LEN MOJE PREPLÁNOVANÉ HOVORY
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " ZMIESANE VOLANIE
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +NEAKTÍVNE RÝCHLE TLAČIDLÁ + + + + +> + + + + +
Agent web-client version:     POSTAVENÉ:               Server:              
+ +Ukázať informáciu o konferenčnom kanále +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
STAV:
+
+Volať ďalšie číslo
+ PREZRIET ZOZNAM KONTAKTOV
+ ALTER. ČÍSLO TELEFÓNU
+ + +SÚBOR NAHRÁVKY:
+
+
+ID NAHRÁVKY:
+
+ +Spustiť nahrávanie
+
+Web formulár
+ 0) + {echo "\"Web
\n";} +?> +
+Zaparkovaný hovor
+Presmerovanie - Konferencia
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+Zložiť zákazníka
+
+
Poslať DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   Kanál:
Informácia o zákazníkovi:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Titul:   Prvý:   MI:   Posledný:
Adresa1:
Adresa2: Adresa3:
Mesto: Štát: PSČ:
Kraj: zákaznícke: Pohlavie:
Telefón: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +Volací kód: Alter. číslo:
Prezrieť: Email:
Poznámky: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/voicemail_check.php new file mode 100644 index 00000000..71705ac9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_sk/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Nesprávny Užívateľské meno/Heslo: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Nesprávny server_ip: |$server_ip| or Nesprávny session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Nesprávny session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Overiť hlasovú schránku"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "hlasová schránka $vmail_box Nie je správny\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/active_list_refresh.php new file mode 100644 index 00000000..ac16bc42 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "清單顯示: "; +if ($ADD==1) {echo "進線分機";} +if ($ADD==2) {echo "忙線分機";} +if ($ADD==3) {echo "外線";} +if ($ADD==4) {echo "區域分機";} +if ($ADD==5) {echo "會議";} +if ($ADD==99999) {echo "協助";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/astguiclient.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/astguiclient.php new file mode 100644 index 00000000..62e2fc72 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "您已成功登出系統\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "astGUIclient web client: 登入\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
登入
 
使用者登入:
使用者密碼:
登入分機:
分機密碼:

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "astGUIclient web client: 登入分機\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English 中文繁體
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
登入分機
 
登入分機:
分機密碼:

版本: $version       版次: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "astGUIclient web client: 登入分機\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
登入分機
 
抱歉,分機所輸入的帳號密碼於系統中尚未啟用,請再試一次:
 
登入分機:
分機密碼:

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "astGUIclient web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
+ + + + + + + + + +
+ + +登出
\n"; ?> +
主控台現行線路控制台電話會議控制台檢視語音信箱通話中電話
+
+ + +

Logout
+
+ + +
TRUNK 掛斷

+ Active Trunks Menu
+ 掛斷 Trunk   |   + 介入 Trunk   |   + 監聽 Trunk   |   + 更新   |   + 回主畫面 +
+
+ + +
LOCAL 掛斷

+ 啟用Local畫面
+ 掛斷 Local   |   + 介入 Local   |   + 監聽 Local   |   + 更新   |   + 回主畫面 +
+
+ + + + + + + +
來電轉接
通話已被轉接: 渠道
分機:
分機表
+
+ 傳送給所選分機

+ 傳送給所選語音信箱

+ 傳送至該號碼:


+ 更新


+ 回主畫面

+
會議:
(點選號碼以送出會議邀請n)
傳送我的CHANNEL
電話會議功能
+
+ + + + + +
撥給LOCAL分機
電話來源: 渠道
分機:
分機表
+
+ 撥打所選分機

+ 撥打所選語音信箱

+ 更新


+ 回主畫面

+
+
+ + +
駐留ED 撥號S:
+ 回主畫面

+
+
+ + + + + + + + + + + + + + + +
  +
語音信箱     新:     舊:             人工撥號       DIAL
駐留ED 撥號S: 0                LOCAL撥打分機
外撥電話:
進線電話:
astGUIclient web-client版本: 版次:
+ + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
我的最愛       編輯
$favorites[$h] - $favorites_names[$h]
 
+
+ + + + + + + +
我的最愛

 
確認送出我的最愛變更 - 需要登出
回到主視窗 - 忽略變更
+
+ +
+ + + + + + + + + + + + + +
+停止 | 開始     更新比例: 1000 ms 較快速 | 較慢速

+
起始中..
+
使用中分機
+更新 | +次序 | +
外線
+更新 | +次序 | +
區域分機
+更新 | +次序 | +
+ 資料至此

+
+ 資料至此

Trunk 活動 +
+ 資料至此

Local 活動 +
+
+ + + + +
+ + +電話會議列表 + + + +
+點選會議室左方可瀏覽相關資訊 +
+ + + + + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/call_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/call_log_display.php new file mode 100644 index 00000000..dc5e60d9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "通話記錄顯示"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten 是無效的 或協定 $protocol 是無效的\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/conf_exten_check.php new file mode 100644 index 00000000..d64467c4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "確認會議中分機"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten 是無效的\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is on is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "佇列中等待電話: $RingCalls";} + else {$RingCalls = "佇列中等待電話: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|開始",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_登出';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|狀態: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $渠道A[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $渠道A[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$渠道A[$counter] ~"; + # echo "$渠道A[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten 是無效的 or Exten $exten 是無效的\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "會議 $conf_exten 被註冊至 $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/dbconnect.php new file mode 100644 index 00000000..723d3c59 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/inbound_popup.php new file mode 100644 index 00000000..d7148261 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +進線通話"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

進線通話

\n"; +echo "$NOW_TIME

\n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid 是無效的\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
渠道: $row[1]
CallerID: $row[3]
\n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_渠道=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "CUSTOM - \n"; + + echo "
已撥號碼: $row[8]
注意: $row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
\n"; + echo "掛斷 - \n"; + echo "傳送至我的語音信箱\n"; + echo "
\n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/live_exten_check.php new file mode 100644 index 00000000..21fa156e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "使用中分機確認"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten 是無效的 或協定 $protocol 是無效的\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "渠道A: $ChanneLA[$counter] ~"; + echo "渠道B: $ChanneLB[$counter] ~"; + echo "渠道Btrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/manager_send.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/manager_send.php new file mode 100644 index 00000000..d887f1c1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "管理者發送: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "協助";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten 是無效的 or queryCID $queryCID 是無效的, Originate 指令未插入\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate 指令發送 Exten $exten 渠道 $channel on $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "extenName $extenName 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nOriginateName Action 未送出\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "extenName $extenName 需被設定\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nOriginateNameVmail Action 未送出\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten 是無效的 or queryCID $queryCID 是無效的, Originate 指令未插入\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR 你不能撥入其他代理商會議 $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate 指令發送 Exten $exten 渠道 $channel on $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten 是無效的 or ext_context $ext_context or queryCID $queryCID 是無效的, Hangup 指令未插入\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "渠道 $channel 是無效的 or queryCID $queryCID 是無效的, Hangup 指令未插入\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel 非可用 on $call_server_ip, Checking Live 渠道...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "渠道 $channel 非可用 on $call_server_ip, Hangup 指令未插入 $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "渠道 $channel in use by another agent on $call_server_ip, Hangup 指令未插入 $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup 指令發送 渠道 $channel on $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "auto_dial_level $auto_dial_level 需被設定\n"; + echo "campaign $campaign 需被設定\n"; + echo "uniqueid $uniqueid 需被設定\n"; + echo "lead_id $lead_id 需被設定\n"; + echo "\nRedirectVD Action 未送出\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "extenName $extenName 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "parkedby $parkedby 需被設定\n"; + echo "\nRedirectToPark Action 未送出\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirectFromPark Action 未送出\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "extenName $extenName 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirectName Action 未送出\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "extenName $extenName 需被設定\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirectNameVmail Action 未送出\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "Extra渠道 $extrachannel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirect Action 未送出\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference on $server_ip, Redirect 指令未插入\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "找不到空會議 on $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "渠道 $channel 非可用 on $call_server_ip, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel 非可用 on $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "渠道 $channel 非可用 on $server_ip, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel 非可用 on $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX 指令發送 渠道 $channel on $call_server_ip and \nHungup $extrachannel on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel on $call_server_ip, Hungup $extrachannel on $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel on $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "Extra渠道 $extrachannel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "session_id $session_id 需被設定\n"; + echo "\nRedirect Action 未送出\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference on $server_ip, Redirect 指令未插入\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "找不到空會議 on $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "渠道 $channel 非可用 on $call_server_ip, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel 非可用 on $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "渠道 $channel 非可用 on $server_ip, Redirect 指令未插入\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel 非可用 on $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra 指令發送 渠道 $channel and \nExtra渠道 $extrachannel\n to $exten on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten on $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra 指令發送 渠道 $channel on $call_server_ip and \nExtra渠道 $extrachannel\n to $exten on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "其中一個變數 是無效的:\n"; + echo "渠道 $channel 需大於兩個字元\n"; + echo "queryCID $queryCID 需大於14個字元\n"; + echo "exten $exten 需被設定\n"; + echo "ext_context $ext_context 需被設定\n"; + echo "ext_priority $ext_priority 需被設定\n"; + echo "\nRedirect Action 未送出\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "渠道 $channel 非可用 on $server_ip, Redirect 指令未插入\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect 指令發送 渠道 $channel on $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "渠道 $channel 是無效的 or queryCID $queryCID 是無效的 or filename: $filename 是無效的, $ACTION 指令未插入\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "渠道 $channel 非可用 on $server_ip, $ACTION 指令未插入\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION 指令發送 渠道 $channel on $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "渠道 $channel 是無效的 or exten $exten 是無效的 or filename: $filename 是無效的, $ACTION 指令未插入\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going on in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION 指令發送 渠道 $channel on $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n 錄音長達60分鐘\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "會議 $exten, Stage $stage 是無效的 or queryCID $queryCID 是無效的, Originate 指令未插入\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume 指令發送 會議 $exten, Stage $stage 渠道 $channel on $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/park_calls_display.php new file mode 100644 index 00000000..9cd1aa07 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "顯示Parked Call"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten 是無效的 或協定 $protocol 是無效的\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/timeclock.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/timeclock.php new file mode 100644 index 00000000..74ad9a95 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "您所輸入的帳號和密碼並未在系統中被啟動
請重試:"; + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
使用者登入:
使用者密碼:
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='開始', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='開始'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != '開始') ) + { + ### You cannot log in or out within 30秒 of your last login/logout + $VDdisplayMESSAGE = "您不能在前次登出或登入後30秒內再次登出或登入"; + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
使用者登入:
使用者密碼:
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTO登出') or ($status=='開始') or ($status=='登出') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "您目前已登出"; + $LOGtimeMESSAGE = "您登出在$NOW_TIME
您登入的時間(多久時間): $totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='登出', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='登出', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='登出', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTO登出') or ($status=='開始') or ($status=='登出') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERROR: timeclock log entry already made: $status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "回到值機員登入畫面";} + if ($referrer=='admin') + {$BACKlink = "回到系統管理";} + if ($referrer=='welcome') + {$BACKlink = "回到歡迎畫面";} + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
$BACKlink
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTO登出') or ($status=='開始') or ($status=='登出') ) + { + $VDdisplayMESSAGE = "自從您上次登入已經有(多久時間): $totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "您上次登出在: $last_action_date

點選下方登入進行登入"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "您已經登入的時間(多久時間): $totTIME_HMS"; + $log_action = 'logout'; + $button_name = '登出'; + $LOGtimeMESSAGE = "您登入在: $last_action_date
您已經登入的時間(多久時間): $totTIME_HMS

點選下方登出進行登出"; + } + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
$LOGtimeMESSAGE
 
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Timeclock
 
使用者登入:
使用者密碼:
 

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vdc_db_query.php new file mode 100644 index 00000000..8d3f596f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL 資料查詢語法"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('登出',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("開始|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("開始|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "經理登入:
\n"; + $VDdisplayMESSAGE.= "經理密碼:
\n"; + $VDdisplayMESSAGE.= "




\n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "群組選項 $closer_choice 是無效的\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In 群組選項 $closer_choice 被註冊至使用者 $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories 是無效的\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories 被註冊至使用者 $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "HOPPER EMPTY\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context 是無效的\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC 號碼\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC 號碼\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "號碼 NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST 撥號 TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST 撥號 TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # 撥號OUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "HOPPER EMPTY\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "其他電話 號碼 狀態 NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count 是無效的\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "其他電話 號碼 狀態 CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage 是無效的\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context 是無效的\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " 撥號 NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context 是無效的\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # 撥號OUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID 是無效的\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "LOG未輸入\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign 是無效的\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG 已插入: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG未輸入\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG 已插入: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "LOG未輸入\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "LOG未輸入\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id 是無效的\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG 已插入: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG未輸入\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG未輸入\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_停止|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|錄音_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "活動 $campaign 是無效的\n"; + echo "lead_id $lead_id 是無效的\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "活動 $campaign 是無效的\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send on to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If 撥號BK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
\n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user on $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten 是無效的\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a 登出 record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','登出','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation on the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id 是無效的\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### 撥號BACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### 開始 Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL 使用者 $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of 姓 Attempt, Date of 姓 Non-Contact, Date of 姓 Contact, Date of 姓 Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
\n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
\n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' 已被修改為 ' . $dispo_choice . " 狀態\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id 是無效的\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage 是無效的\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' 目前狀態為 ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list 是無效的\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status 是無效的\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### 開始 QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " 暫停 Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
  $row[0] - $row[2]   $call_time  
  "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

\n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

Close Window "; + } + echo "
\n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "呼籲隊列查看停用此活動\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data on calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info on the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
    PHONE     NAME     WAIT     AGENT           撥號 GROUP     TYPE  
TAKE 撥號     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
    $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

 \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: 呼籲隊列查看停用此活動\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
$script_name
\n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
";} +echo "
\n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vicidial.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vicidial.php new file mode 100644 index 00000000..21ad04e7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "您已成功登出系統\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls on hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number of秒 for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name on login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST on server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a WÄHLEN link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups on campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon 掛斷客戶電話 +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$電話SComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT WÄHLEN by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: 重新登入\n"; +echo "\n"; +echo "\n"; +echo " Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English 中文繁體
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
重新登入
 
登入分機:
分機密碼:
使用者登入:
使用者密碼:
活動: $camp_form_code
  \n"; +echo "

版本: $version       版次: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

使用者登入

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
專案活動登入
 
使用者登入:
使用者密碼:
活動: $camp_form_code
  \n"; + echo "

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: 登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
登入
 
登入分機:
分機密碼:
使用者登入:
使用者密碼:
活動: $camp_form_code
  \n"; + echo "

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: 登入分機\n"; +echo "\n"; +echo "\n"; +echo " Timeclock
\n"; +echo "\n"; +echo "\n"; +echo "\n";echo "\n";echo "
English 中文繁體
\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
登入分機
 
登入分機:
分機密碼:
  \n"; +echo "

版本: $version       版次: $build
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('登出',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "您必須先登入TIMECLOCK
"; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("開始|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("開始|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group
"; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift
"; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

MANAGER OVERRIDE:
\n"; + $VDdisplayMESSAGE.= "
\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "經理登入:
\n"; + $VDdisplayMESSAGE.= "經理密碼:
\n"; + $VDdisplayMESSAGE.= "
\n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "登入: \n
"; + echo "密碼:
\n"; + echo "活動: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|P重置_1|P重置_2|P重置_3|P重置_4|P重置_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/P重置_1|P重置_2|P重置_3|P重置_4|P重置_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/P重置_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/P重置_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/P重置_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/P重置_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/P重置_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "專案活動未啟用,請再試一次
"; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "登入失敗,請重試
"; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

$VDdisplayMESSAGE

"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
專案活動登入
 
使用者登入:
使用者密碼:
活動: $camp_form_code
  \n"; + echo "

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: 登入分機 Error\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
登入 Error
 
抱歉,分機所輸入的帳號密碼於系統中尚未啟用,請再試一次:
 
登入分機:
分機密碼:

版本: $version       版次: $build
\n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CallerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($電話SComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($電話SComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed on this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login on phone: $SIP_user to campaign: $VD_campaign
\n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### 開始 SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a 新 record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today on that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "抱歉,本專案活動已無名單\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "登入: \n
"; + echo "密碼:
\n"; + echo "活動: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: 專案活動登入\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
\n"; + echo "\n"; + echo "\n"; +echo "\n";echo "\n"; echo "
English 中文繁體
\n"; + echo "Sorry, there are no available sessions\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "登入: \n
"; + echo "密碼:
\n"; + echo "活動: $camp_form_code
\n"; + echo "   \n"; + echo "\n"; + echo "
\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live call秒 counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('一月','February','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
"; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
"; +$CCAL_OUT .= "
 "; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
"; + $CCAL_OUT .= "
"; +$CCAL_OUT .= "
"; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
+ + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
+ + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +登出\n"; ?> +
+
+ + + height=30> + + + + + +
MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    通話中電話
+
+ + + + + height=>

Agent Screen
+
+ + +人工撥號       快速撥號
+
+ + +X 生效的回撥電話
+
+ + +
+
+ +秒: +     + + + + D1 - WÄHLEN\n"; + echo "
\n"; + echo "D2 - WÄHLEN\n"; + } + else {echo "
\n";} + ?> +

 
+
+ + + height=460>
值機員的回撥電話 :
點選以下回撥紀錄進行客戶回撥,如果點選紀錄進行撥號,該筆紀錄將會從名單內移除. +
+
+
  + 更新 +                 + 回上一頁 +
+
+ + + height=460>
新的人工撥號紀錄給 :

請輸入下面的資訊給您想要外撥的新紀錄. +
+ \n"; + } + ?> + Note: all new manual dial leads will go into list

+ + + + + + + + + + + + + + + +
Dial Code:   (This is usually a 1 in the USA-Canada)
電話 Number: +   (12 digits max - digits only) +
搜尋存在的紀錄:   (本選項勾選時,在增加新的紀錄時會尋找系統中的電話號碼)
+

+     +
+

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 撥號S IN THIS SESSION link at the bottom of the screen and hang it up by clicking on its channel link there.
 
Dial Override:   (限數字碼輸入) +
+
+ 立即撥號 +                 + 預覽電話 +                 + 回上一頁 +
+
+ + + +
+
+ + + + +您目前的狀態:
Calls Dialing: +
+ + + + + > + + +
+
+ + 轉接 - 電話會議            
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + LOCAL CLOSER     + + 掛斷轉接線 +
+ seconds +   + channel + + 協商   + + 全部掛斷 +
+ 撥打號碼 +   +   + + + 重撥 + + 離開三方通話 +
+ Dial Blind Transfer +   + Dial With Customer +   + Park Customer Dial +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
+ +
+
+
+
+ + + +
 呼籲在隊列:  
 
+ + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "隱藏呼籲在隊列\n";} + else + {echo "查看呼籲在隊列\n";} + } +?> + + + +
  +其他代理狀態:  
 
+ +
+可用代理轉讓:
+ +
Agents View +
+ + + 0) + { + echo "Dialable Leads:
 \n"; + } +?> +
+ + + + + + height=70> + +
設定結束碼為:

+ -
+
+
+ + + height=70> + + + + +
結束碼快捷鍵: + 啟用時,只需點選結束碼對應之快捷鍵,系統即會自動下結束碼與掛斷電話:
+ + + + + +
+
+ + + height=70> + + + + + + +
過去的回撥資訊: close
+
+
+
+
+ +
+
+ + + height=70> + + + + + + +
擴充的其他電話資訊: 最小
+
+
+
+
+ +
+
+ + + + + +
最大
Alt 電話 Info
+
+ + + height=500>
無人在你主持的會議中:
+ 回上一頁 +

+ 再次呼叫值機員 +
+
+ + + height=500>
客戶已掛斷電話:
+ 回上一頁 +

+ 結束通話並註記結束碼 +
+
+ + + height=550>
電話文書: 文書狀態尚餘秒數

+ +

+ 結束文書並繼續 +
+
+ + +
+


+ 關閉消息 +
+
+ + + height=500>
Your session has been disabled
登出

回上一頁 +
+
+ + + height=500>
系統中有時間同步問題,請洽系統管理者


回上一頁 +
+
+ + + height=500>

登出
+
+ + +
+
+ + +
 
+
+ + + height=47>
你必須先更改客戶資料,再掛斷電話。否則所做變更將不會生效!.
+
+ + + height=460>
通話結束 :       再次掛斷       最小
+ 結束碼選擇 +
+ 暫停值機員撥號
+ 清除表單 | + 確認送出 +

+ WEB FORM 確認送出 +

  +
+
+ + + height=460>
選擇暫停原因代碼 :
+ 暫停 Code Selection + +

  +
+
+ + + height=460>
選擇群組代名 :
+ 群組代名選擇 + +

  +
+
+ + + + + + height=460>
選擇回撥日期 :
+ + + 選擇日期小於   +     + Hour: +   + Minutes: +   + +  
+ 只有個人回撥
";} + ?> + CB 備註:

+ + 確認送出

+ +

  +
+
+ + + height=460>
CLOSER INBOUND GROUP SELECTION
+ Closer Inbound Group Selection +
+ 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + INBOUND/OUTBOUND BLENDING(啟動外撥)
+ + 重置 | + 確認送出 +



  +
+
+ + + height=460>
TERRITORY SELECTION
+ Territory Selection +
+ 重置 | + 確認送出 +



  +
+
+ + + + 渠道 + 渠道 + 只有個人回撥
";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " INBOUND/OUTBOUND BLENDING
";} + ?> +
+ + + + height=>
AGENT SCRIPT
+
+ + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +關閉快捷鍵 + + + + +> + + + + +
Agent web-client version:     版次:               主機:              
+ +顯示電話會議中的來電通道資訊 +

 
+
+ 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
+ + + +
+
+ + + + + id="MainTable"> + + + + + + + + + + + + + + + +
狀態:
+
+撥下一個號碼
+ LEAD PREVIEW
+ 撥打其他電話
+ + +錄音檔:
+
+
+音檔編號:
+
+ +啟動錄音
+
+表格
+ 0) + {echo "\"表格
\n";} +?> +
+Park Call
+轉接 - 電話會議
+ + 0) + {echo "\"Quick
\n";} +?> + + + + 0) + {echo "
\n";} +?> + + +
+掛斷客戶電話
+
+
傳送 DTMF

+
+
+
align=left valign=top> + + + + + + + + + + + + +
+ + + + + + + +
  Customer Time:   渠道:
客戶資訊:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
職銜:   名:   MI:  姓:
地址1:
地址2: 地址3:
市: 州: 郵遞區號:
省: Vendor ID: 性別:
電話: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +DialCode: 其他電話:
展現: 電郵:
備註: + +\n";} +else + {echo "\n";} +?> + +
+
+ +
+
> + 
+ + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/voicemail_check.php new file mode 100644 index 00000000..527645fc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/agc_tw/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "無效 使用者name/密碼: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "無效 server_ip: |$server_ip| or 無效 session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "無效 session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "檢視語音信箱"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "語音信箱 $vmail_box 是無效的\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSER_service_level.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSER_service_level.php new file mode 100644 index 00000000..beba62c5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSER_service_level.php @@ -0,0 +1,959 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80509-0943 - First build +# 80510-1500 - Added fixed scale hold time graph +# 80519-0413 - rewrote time intervals code and stats gathering code +# 80528-2320 - fixed small calculation bugs and display bugs, added more shifts +# 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Service Level Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo " to \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           ÄNDERN Sie | REPORTS \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "Wählen Sie eine IM-Gruppe und Zeitraum oberhalb und klicken Sie auf Senden\n";
+	}
+
+else
+{
+### FOR SHIFTS IT IS BEST TO STICK TO 15-MINUTE INCREMENTS FOR START TIMES ###
+
+if ($shift == 'AM') 
+	{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}   
+	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+	}
+if ($shift == 'PM') 
+	{
+#	$time_BEGIN=$PM_shift_BEGIN;
+#	$time_END=$PM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+#	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'DAYTIME') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '10AM-6PM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "10:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:59:59";}
+	}
+if ($shift == '9AM-1AM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "09:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '845-1745') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:44:59";}
+	}
+if ($shift == '1745-100') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "17:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+$SQdate_ARY =	explode(' ',$query_date_BEGIN);
+$SQday_ARY =	explode('-',$SQdate_ARY[0]);
+$SQtime_ARY =	explode(':',$SQdate_ARY[1]);
+$EQdate_ARY =	explode(' ',$query_date_END);
+$EQday_ARY =	explode('-',$EQdate_ARY[0]);
+$EQtime_ARY =	explode(':',$EQdate_ARY[1]);
+
+$SQepochDAY = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$SQepoch = mktime($SQtime_ARY[0], $SQtime_ARY[1], $SQtime_ARY[2], $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime($EQtime_ARY[0], $EQtime_ARY[1], $EQtime_ARY[2], $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+$SQsec = ( ($SQtime_ARY[0] * 3600) + ($SQtime_ARY[1] * 60) + ($SQtime_ARY[2] * 1) );
+$EQsec = ( ($EQtime_ARY[0] * 3600) + ($EQtime_ARY[1] * 60) + ($EQtime_ARY[2] * 1) );
+
+$DURATIONsec = ($EQepoch - $SQepoch);
+$DURATIONday = intval( ($DURATIONsec / 86400) + 1 );
+
+if ( ($EQsec < $SQsec) and ($DURATIONday < 1) )
+	{
+	$EQepoch = ($SQepochDAY + ($EQsec + 86400) );
+	$query_date_END = date("Y-m-d H:i:s", $EQepoch);
+	$DURATIONday++;
+	}
+
+echo "Inbound Service Level Report                      $NOW_TIME\n";
+echo "\n";
+echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
+#echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	$dSQepoch = ($SQepoch + ($d * 86400) );
+	$dEQepoch = ($SQepochDAY + ($EQsec + ($d * 86400) ) );
+
+	if ($EQsec < $SQsec)
+		{
+		$dEQepoch = ($dEQepoch + 86400);
+		}
+
+	$daySTART[$d] = date("Y-m-d H:i:s", $dSQepoch);
+	$dayEND[$d] = date("Y-m-d H:i:s", $dEQepoch);
+
+	$d++;
+	}
+
+##########################################################################
+#########  CALCULATE ALL OF THE 15-MINUTE PERIODS NEEDED FOR ALL DAYS ####
+
+### BUILD HOUR:MIN DISPLAY ARRAY ###
+$i=0;
+$h=4;
+$j=0;
+$Zhour=1;
+$active_time=0;
+$hour =		($SQtime_ARY[0] - 1);
+$startSEC = ($SQsec - 900);
+$endSEC =	($SQsec - 1);
+if ($SQtime_ARY[1] > 14) 
+	{
+	$h=1;
+	$hour++;
+	if ($hour < 10) {$hour = "0$hour";}
+	}
+if ($SQtime_ARY[1] > 29) {$h=2;}
+if ($SQtime_ARY[1] > 44) {$h=3;}
+while ($i < 96)
+	{
+	$startSEC = ($startSEC + 900);
+	$endSEC = ($endSEC + 900);
+	$time = '      ';
+	if ($h >= 4)
+		{
+		$hour++;
+		if ($Zhour == '00') 
+			{
+			$startSEC=0;
+			$endSEC=899;
+			}
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$Stime="$hour:00";
+		$Etime="$hour:15";
+		$time = "+$Stime-$Etime+";
+		}
+	if ($h == 1)
+		{
+		$Stime="$hour:15";
+		$Etime="$hour:30";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 2)
+		{
+		$Stime="$hour:30";
+		$Etime="$hour:45";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 3)
+		{
+		$Zhour=$hour;
+		$Zhour++;
+		if ($Zhour < 10) {$Zhour = "0$Zhour";}
+		if ($Zhour == 24) {$Zhour = "00";}
+		$Stime="$hour:45";
+		$Etime="$Zhour:00";
+		$time = " $Stime-$Etime ";
+		if ($Zhour == '00') 
+			{$hour = ($Zhour - 1);}
+		}
+
+	if ( ( ($startSEC >= $SQsec) and ($endSEC <= $EQsec) and ($EQsec > $SQsec) ) or 
+		( ($startSEC >= $SQsec) and ($EQsec < $SQsec) ) or 
+		( ($endSEC <= $EQsec) and ($EQsec < $SQsec) ) )
+		{
+		$HMdisplay[$j] =	$time;
+		$HMstart[$j] =		$Stime;
+		$HMend[$j] =		$Etime;
+		$HMSepoch[$j] =		$startSEC;
+		$HMEepoch[$j] =		$endSEC;
+
+		$j++;
+		}
+
+	$h++;
+	$i++;
+	}
+
+$TOTintervals = $j;
+
+
+### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
+$stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$records_to_grab = mysql_num_rows($rslt);
+$i=0;
+while ($i < $records_to_grab)
+	{
+	$row=mysql_fetch_row($rslt);
+	$qs[$i] = $row[0];
+	$dt[$i] = 0;
+	$ut[$i] = ($row[1] - $SQepochDAY);
+	while($ut[$i] >= 86400) 
+		{
+		$ut[$i] = ($ut[$i] - 86400);
+		$dt[$i]++;
+		}
+	if ( ($ut[$i] <= $EQsec) and ($EQsec < $SQsec) )
+		{
+		$dt[$i] = ($dt[$i] - 1);
+		}
+	$ls[$i] = $row[2];
+	$st[$i] = $row[3];
+
+#	echo "$qs[$i] $dt[$i] $ut[$i] $ls[$i] $st[$i]\n";
+
+	$i++;
+	}
+
+### PARSE THROUGH ALL RECORDS AND GENERATE STATS ###
+$MT[0]='0';
+$totCALLS=0;
+$totDROPS=0;
+$totQUEUE=0;
+$totCALLSsec=0;
+$totDROPSsec=0;
+$totQUEUEsec=0;
+$totCALLSmax=0;
+$totDROPSmax=0;
+$totQUEUEmax=0;
+$totCALLSdate=$MT;
+$totDROPSdate=$MT;
+$totQUEUEdate=$MT;
+$qrtCALLS=$MT;
+$qrtDROPS=$MT;
+$qrtQUEUE=$MT;
+$qrtCALLSsec=$MT;
+$qrtDROPSsec=$MT;
+$qrtQUEUEsec=$MT;
+$qrtCALLSavg=$MT;
+$qrtDROPSavg=$MT;
+$qrtQUEUEavg=$MT;
+$qrtCALLSmax=$MT;
+$qrtDROPSmax=$MT;
+$qrtQUEUEmax=$MT;
+$j=0;
+while ($j < $TOTintervals)
+	{
+	$jd__0[$j]=0; $jd_20[$j]=0; $jd_40[$j]=0; $jd_60[$j]=0; $jd_80[$j]=0; $jd100[$j]=0; $jd120[$j]=0; $jd121[$j]=0;
+	$Phd__0[$j]=0; $Phd_20[$j]=0; $Phd_40[$j]=0; $Phd_60[$j]=0; $Phd_80[$j]=0; $Phd100[$j]=0; $Phd120[$j]=0; $Phd121[$j]=0;
+	$qrtCALLS[$j]=0; $qrtCALLSsec[$j]=0; $qrtCALLSmax[$j]=0;
+	$qrtDROPS[$j]=0; $qrtDROPSsec[$j]=0; $qrtDROPSmax[$j]=0;
+	$qrtQUEUE[$j]=0; $qrtQUEUEsec[$j]=0; $qrtQUEUEmax[$j]=0;
+	$i=0;
+	while ($i < $records_to_grab)
+		{
+		if ( ($ut[$i] >= $HMSepoch[$j]) and ($ut[$i] <= $HMEepoch[$j]) )
+			{
+			$totCALLS++;
+			$totCALLSsec = ($totCALLSsec + $ls[$i]);
+			$totCALLSsecDATE[$dtt] = ($totCALLSsecDATE[$dtt] + $ls[$i]);
+			$qrtCALLS[$j]++;
+			$qrtCALLSsec[$j] = ($qrtCALLSsec[$j] + $ls[$i]);
+			$dtt = $dt[$i];
+			$totCALLSdate[$dtt]++;
+			if ($totCALLSmax < $ls[$i]) {$totCALLSmax = $ls[$i];}
+			if ($qrtCALLSmax[$j] < $ls[$i]) {$qrtCALLSmax[$j] = $ls[$i];}
+			if (ereg('DROP',$st[$i])) 
+				{
+				$totDROPS++;
+				$totDROPSsec = ($totDROPSsec + $ls[$i]);
+				$totDROPSsecDATE[$dtt] = ($totDROPSsecDATE[$dtt] + $ls[$i]);
+				$qrtDROPS[$j]++;
+				$qrtDROPSsec[$j] = ($qrtDROPSsec[$j] + $ls[$i]);
+				$totDROPSdate[$dtt]++;
+				if ($totDROPSmax < $ls[$i]) {$totDROPSmax = $ls[$i];}
+				if ($qrtDROPSmax[$j] < $ls[$i]) {$qrtDROPSmax[$j] = $ls[$i];}
+				}
+			if ($qs[$i] > 0) 
+				{
+				$totQUEUE++;
+				$totQUEUEsec = ($totQUEUEsec + $qs[$i]);
+				$totQUEUEsecDATE[$dtt] = ($totQUEUEsecDATE[$dtt] + $qs[$i]);
+				$qrtQUEUE[$j]++;
+				$qrtQUEUEsec[$j] = ($qrtQUEUEsec[$j] + $qs[$i]);
+				$totQUEUEdate[$dtt]++;
+				if ($totQUEUEmax < $qs[$i]) {$totQUEUEmax = $qs[$i];}
+				if ($qrtQUEUEmax[$j] < $qs[$i]) {$qrtQUEUEmax[$j] = $qs[$i];}
+				}
+
+			if ($qs[$i] == 0) {$hd__0[$j]++;}
+			if ( ($qs[$i] > 0) and ($qs[$i] <= 20) ) {$hd_20[$j]++;}
+			if ( ($qs[$i] > 20) and ($qs[$i] <= 40) ) {$hd_40[$j]++;}
+			if ( ($qs[$i] > 40) and ($qs[$i] <= 60) ) {$hd_60[$j]++;}
+			if ( ($qs[$i] > 60) and ($qs[$i] <= 80) ) {$hd_80[$j]++;}
+			if ( ($qs[$i] > 80) and ($qs[$i] <= 100) ) {$hd100[$j]++;}
+			if ( ($qs[$i] > 100) and ($qs[$i] <= 120) ) {$hd120[$j]++;}
+			if ($qs[$i] > 120) {$hd121[$j]++;}
+
+			}
+		
+		$i++;
+		}
+
+	$j++;
+	}
+
+
+
+
+###################################################
+### TOTALS SUMMARY SECTION ###
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                           |        |        |        |        |        |  AVG   |  AVG   |        |  TOTAL   |  AVG   |\n";
+echo "| SHIFT                                     |        |        |  AVG   |        |        | HOLD(s)| HOLD(s)|        | CALLTIME |CALLTIME|\n";
+echo "| DATE-TIME RANGE                           | DROPS  | DROP % | DROP(s)| HOLD   | HOLD % |  HOLD  | TOTAL  | CALLS  | MIN:SEC  |SECONDS |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	if ($totDROPSdate[$d] < 1) {$totDROPSdate[$d]=0;}
+	if ($totQUEUEdate[$d] < 1) {$totQUEUEdate[$d]=0;}
+	if ($totCALLSdate[$d] < 1) {$totCALLSdate[$d]=0;}
+
+	if ($totDROPSdate[$d] > 0)
+		{$totDROPSpctDATE[$d] = ( ($totDROPSdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totDROPSpctDATE[$d] = 0;}
+	$totDROPSpctDATE[$d] = round($totDROPSpctDATE[$d], 2);
+	if ($totQUEUEdate[$d] > 0)
+		{$totQUEUEpctDATE[$d] = ( ($totQUEUEdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totQUEUEpctDATE[$d] = 0;}
+	$totQUEUEpctDATE[$d] = round($totQUEUEpctDATE[$d], 2);
+
+	if ($totDROPSsecDATE[$d] > 0)
+		{$totDROPSavgDATE[$d] = ($totDROPSsecDATE[$d] / $totDROPSdate[$d]);}
+	else {$totDROPSavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEavgDATE[$d] = ($totQUEUEsecDATE[$d] / $totQUEUEdate[$d]);}
+	else {$totQUEUEavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEtotDATE[$d] = ($totQUEUEsecDATE[$d] / $totCALLSdate[$d]);}
+	else {$totQUEUEtotDATE[$d] = 0;}
+
+	if ($totCALLSsecDATE[$d] > 0)
+		{
+		$totCALLSavgDATE[$d] = ($totCALLSsecDATE[$d] / $totCALLSdate[$d]);
+
+		$totTIME_M = ($totCALLSsecDATE[$d] / 60);
+		$totTIME_M_int = round($totTIME_M, 2);
+		$totTIME_M_int = intval("$totTIME_M");
+		$totTIME_S = ($totTIME_M - $totTIME_M_int);
+		$totTIME_S = ($totTIME_S * 60);
+		$totTIME_S = round($totTIME_S, 0);
+		if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+		$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+		$totTIME_MS =		sprintf("%8s", $totTIME_MS);
+		}
+	else 
+		{
+		$totCALLSavgDATE[$d] = 0;
+		$totTIME_MS='        ';
+		}
+
+	$totCALLSavgDATE[$d] =	sprintf("%6.0f", $totCALLSavgDATE[$d]);
+	$totDROPSavgDATE[$d] =	sprintf("%7.2f", $totDROPSavgDATE[$d]);
+	$totQUEUEavgDATE[$d] =	sprintf("%7.2f", $totQUEUEavgDATE[$d]);
+	$totQUEUEtotDATE[$d] =	sprintf("%7.2f", $totQUEUEtotDATE[$d]);
+	$totDROPSpctDATE[$d] =	sprintf("%6.2f", $totDROPSpctDATE[$d]);
+	$totQUEUEpctDATE[$d] =	sprintf("%6.2f", $totQUEUEpctDATE[$d]);
+	$totDROPSdate[$d] =	sprintf("%6s", $totDROPSdate[$d]);
+	$totQUEUEdate[$d] =	sprintf("%6s", $totQUEUEdate[$d]);
+	$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
+
+	echo "| $daySTART[$d] - $dayEND[$d] | $totDROPSdate[$d] | $totDROPSpctDATE[$d]%|$totDROPSavgDATE[$d] | $totQUEUEdate[$d] | $totQUEUEpctDATE[$d]%|$totQUEUEavgDATE[$d] |$totQUEUEtotDATE[$d] | $totCALLSdate[$d] | $totTIME_MS | $totCALLSavgDATE[$d] |\n";
+	$d++;
+	}
+
+	if ($totDROPS > 0)
+		{$totDROPSpct = ( ($totDROPS / $totCALLS) * 100);}
+	else {$totDROPSpct = 0;}
+	$totDROPSpct = round($totDROPSpct, 2);
+	if ($totQUEUE > 0)
+		{$totQUEUEpct = ( ($totQUEUE / $totCALLS) * 100);}
+	else {$totQUEUEpct = 0;}
+	$totQUEUEpct = round($totQUEUEpct, 2);
+
+	if ($totDROPSsec > 0)
+		{$totDROPSavg = ($totDROPSsec / $totDROPS);}
+	else {$totDROPSavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEavg = ($totQUEUEsec / $totQUEUE);}
+	else {$totQUEUEavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEtot = ($totQUEUEsec / $totCALLS);}
+	else {$totQUEUEtot = 0;}
+
+if ($totCALLSsec > 0)
+	{
+	$totCALLSavg = ($totCALLSsec / $totCALLS);
+
+	$totTIME_M = ($totCALLSsec / 60);
+	$totTIME_M_int = round($totTIME_M, 2);
+	$totTIME_M_int = intval("$totTIME_M");
+	$totTIME_S = ($totTIME_M - $totTIME_M_int);
+	$totTIME_S = ($totTIME_S * 60);
+	$totTIME_S = round($totTIME_S, 0);
+	if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+	$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+	$totTIME_MS =		sprintf("%9s", $totTIME_MS);
+	}
+else 
+	{
+	$totCALLSavg = 0;
+	$totTIME_MS='         ';
+	}
+
+
+	$FtotCALLSavg =	sprintf("%6.0f", $totCALLSavg);
+	$FtotDROPSavg =	sprintf("%7.2f", $totDROPSavg);
+	$FtotQUEUEavg =	sprintf("%7.2f", $totQUEUEavg);
+	$FtotQUEUEtot =	sprintf("%7.2f", $totQUEUEtot);
+	$FtotDROPSpct =	sprintf("%6.2f", $totDROPSpct);
+	$FtotQUEUEpct =	sprintf("%6.2f", $totQUEUEpct);
+	$FtotDROPS =	sprintf("%6s", $totDROPS);
+	$FtotQUEUE =	sprintf("%6s", $totQUEUE);
+	$FtotCALLS =	sprintf("%6s", $totCALLS);
+
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                    TOTALS | $FtotDROPS | $FtotDROPSpct%|$FtotDROPSavg | $FtotQUEUE | $FtotQUEUEpct%|$FtotQUEUEavg |$FtotQUEUEtot | $FtotCALLS |$totTIME_MS | $FtotCALLSavg |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+
+	## FORMAT OUTPUT ##
+	$i=0;
+	$hi_hour_count=0;
+	$hi_hold_count=0;
+
+	while ($i < $TOTintervals)
+		{
+
+		if ($qrtCALLS[$i] > 0)
+			{$qrtCALLSavg[$i] = ($qrtCALLSsec[$i] / $qrtCALLS[$i]);}
+		else {$qrtCALLSavg[$i] = 0;}
+		if ($qrtDROPS[$i] > 0)
+			{$qrtDROPSavg[$i] = ($qrtDROPSsec[$i] / $qrtDROPS[$i]);}
+		else {$qrtDROPSavg[$i] = 0;}
+		if ($qrtQUEUE[$i] > 0)
+			{$qrtQUEUEavg[$i] = ($qrtQUEUEsec[$i] / $qrtQUEUE[$i]);}
+		else {$qrtQUEUEavg[$i] = 0;}
+
+		if ($qrtCALLS[$i] > $hi_hour_count) {$hi_hour_count = $qrtCALLS[$i];}
+		if ($qrtQUEUEavg[$i] > $hi_hold_count) {$hi_hold_count = $qrtQUEUEavg[$i];}
+
+		$qrtQUEUEavg[$i] = round($qrtQUEUEavg[$i], 0);
+		if (strlen($qrtQUEUEavg[$i])<1) {$qrtQUEUEavg[$i]=0;}
+		$qrtQUEUEmax[$i] = round($qrtQUEUEmax[$i], 0);
+		if (strlen($qrtQUEUEmax[$i])<1) {$qrtQUEUEmax[$i]=0;}
+
+		$i++;
+		}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{$hour_multiplier = (20 / $hi_hour_count);}
+if ($hi_hold_count < 1)
+	{$hold_multiplier = 0;}
+else
+	{$hold_multiplier = (20 / $hi_hold_count);}
+
+
+
+
+###################################################################
+#########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
+
+echo "\n";
+echo "---------- HOLD TIME, CALL AND DROP STATS\n";
+
+echo "";
+
+echo "";
+echo "\n";
+echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
+
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hour_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hour_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hour_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$call_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+$k=1;
+$Mk=0;
+$hold_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hold_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hold_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hold_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$hold_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$hold_scale .= "$scale_num";
+		}
+	else
+		{
+		$hold_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "|    TIME     |  AVG HOLD TIME (sec)  | (in seconds)  |  |    CALLS HANDLED      |       |       |\n";
+echo "| 15 MIN INT  |$hold_scale| AVG   | MAX   |  |$call_scale| DROPS | TOTAL |\n";
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+$i=0;
+while ($i < $TOTintervals)
+	{
+	$char_counter=0;
+	### BEGIN HOLD TIME TOTALS GRAPH ###
+		$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count > 0) {$no_lines_yet=0;}
+
+	$Gavg_hold = $qrtQUEUEavg[$i];
+	if ($Gavg_hold < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$TOT_lines++;
+			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+			echo "|$HMdisplay[$i]|";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+			}
+		}
+	else
+		{
+		$TOT_lines++;
+		$no_lines_yet=0;
+		$Xavg_hold = ($Gavg_hold * $hold_multiplier);
+		$Yavg_hold = (19 - $Xavg_hold);
+
+		$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+		$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+
+		echo "|$HMdisplay[$i]|";
+		$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
+		if ($char_counter >= 22) {echo "H";   $char_counter++;}
+		else {echo "*H";   $char_counter++;   $char_counter++;}
+		$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
+			while ($char_counter <= 22) {echo " ";   $char_counter++;}
+		echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+		}
+	### END HOLD TIME TOTALS GRAPH ###
+
+	$char_counter=0;
+ 	### BEGIN CALLS TOTALS GRAPH ###
+	$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			echo "  |";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtCALLS[$i] |     0 |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (19 - $Xhour_count);
+
+		$Gdrop_count = $qrtDROPS[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			if ($char_counter > 21) {echo "C";   $char_counter++;}
+			else {echo "*C";   $char_counter++;   $char_counter++;}
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "|     0 | $qrtCALLS[$i] |\n";
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "C";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "| $qrtDROPS[$i] | $qrtCALLS[$i] |\n";
+			}
+		}
+	### END CALLS TOTALS GRAPH ###
+
+	$i++;
+	}
+
+
+if ($totQUEUEsec > 0)
+	{$totQUEUEavgRAW = ($totCALLS / $totQUEUEsec);}
+else
+	{$totQUEUEavgRAW = 0;}
+$totQUEUEavg =	sprintf("%5s", $totQUEUEavg); 
+	while (strlen($totQUEUEavg)>5) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+$totQUEUEmax =	sprintf("%5s", $totQUEUEmax);
+	while (strlen($totQUEUEmax)>5) {$totQUEUEmax = ereg_replace(".$",'',$totQUEUEmax);}
+$totDROPS =	sprintf("%5s", $totDROPS);
+$totCALLS =	sprintf("%5s", $totCALLS);
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "| TOTAL                               | $totQUEUEavg | $totQUEUEmax |  |                       | $totDROPS | $totCALLS |\n";
+echo "+-------------------------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS, 15-MINUTE INCREMENT
+
+
+echo "\n";
+echo "---------- CALL HALTEZEIT AUFTEILUNG IN SEKUNDEN\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "|    TIME     |       |  % OF CALLS GROUPED BY HOLD TIME (SEC)  | |   AVERAGE TIME BEFORE ANTWORT (SEC)    |\n";
+echo "| 15 MIN INT  | CALLS |    0   20   40   60   80  100  120 120+ | | AVG  |0   20   40   60   80  100  120 |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+
+$APhd__0=0; $APhd_20=0; $APhd_40=0; $APhd_60=0; $APhd_80=0; $APhd100=0; $APhd120=0; $APhd121=0;
+$h=0;
+while ($h < $TOTintervals)
+	{
+	$Aavg_hold[$h] = $qrtQUEUEavg[$h]; 
+	if ($hd__0[$h] > 0) {$Phd__0[$h] = round( ( ($hd__0[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd__0[$h]=0;}
+	if ($hd_20[$h] > 0) {$Phd_20[$h] = round( ( ($hd_20[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_20[$h]=0;}
+	if ($hd_40[$h] > 0) {$Phd_40[$h] = round( ( ($hd_40[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_40[$h]=0;}
+	if ($hd_60[$h] > 0) {$Phd_60[$h] = round( ( ($hd_60[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_60[$h]=0;}
+	if ($hd_80[$h] > 0) {$Phd_80[$h] = round( ( ($hd_80[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_80[$h]=0;}
+	if ($hd100[$h] > 0) {$Phd100[$h] = round( ( ($hd100[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd100[$h]=0;}
+	if ($hd120[$h] > 0) {$Phd120[$h] = round( ( ($hd120[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd120[$h]=0;}
+	if ($hd121[$h] > 0) {$Phd121[$h] = round( ( ($hd121[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd121[$h]=0;}
+		while (strlen($qrtQUEUEavg[$h])>4) {$qrtQUEUEavg[$h] = ereg_replace(".$",'',$qrtQUEUEavg[$h]);}
+	$hd__0[$h] =	sprintf("%4s", $hd__0[$h]);
+	$hd_20[$h] =	sprintf("%4s", $hd_20[$h]);
+	$hd_40[$h] =	sprintf("%4s", $hd_40[$h]);
+	$hd_60[$h] =	sprintf("%4s", $hd_60[$h]);
+	$hd_80[$h] =	sprintf("%4s", $hd_80[$h]);
+	$hd100[$h] =	sprintf("%4s", $hd100[$h]);
+	$hd120[$h] =	sprintf("%4s", $hd120[$h]);
+	$hd121[$h] =	sprintf("%4s", $hd121[$h]);
+	$Phd__0[$h] =	sprintf("%4s", $Phd__0[$h]);
+	$Phd_20[$h] =	sprintf("%4s", $Phd_20[$h]);
+	$Phd_40[$h] =	sprintf("%4s", $Phd_40[$h]);
+	$Phd_60[$h] =	sprintf("%4s", $Phd_60[$h]);
+	$Phd_80[$h] =	sprintf("%4s", $Phd_80[$h]);
+	$Phd100[$h] =	sprintf("%4s", $Phd100[$h]);
+	$Phd120[$h] =	sprintf("%4s", $Phd120[$h]);
+	$Phd121[$h] =	sprintf("%4s", $Phd121[$h]);
+
+	$ALLcalls = ($ALLcalls + $qrtCALLS[$h]);
+	$ALLhd__0 = ($ALLhd__0 + $hd__0[$h]);
+	$ALLhd_20 = ($ALLhd_20 + $hd_20[$h]);
+	$ALLhd_40 = ($ALLhd_40 + $hd_40[$h]);
+	$ALLhd_60 = ($ALLhd_60 + $hd_60[$h]);
+	$ALLhd_80 = ($ALLhd_80 + $hd_80[$h]);
+	$ALLhd100 = ($ALLhd100 + $hd100[$h]);
+	$ALLhd120 = ($ALLhd120 + $hd120[$h]);
+	$ALLhd121 = ($ALLhd121 + $hd121[$h]);
+
+	if ( ($Aavg_hold[$h] < 1) or ($Aavg_hold[$h] > 119) )
+		{
+		if ($Aavg_hold[$h] < 1)		{$qrtQUEUEavg_scale[$h] = '                                ';}
+		if ($Aavg_hold[$h] > 119)	{$qrtQUEUEavg_scale[$h] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';}
+		}
+	else
+		{
+		$qrtQUEUEavg_val[$h] = ( (32 / 120) * $Aavg_hold[$h] );
+		$k=0;
+		$blank=0;
+		while ($k < 32)
+			{
+			if ($k <= $qrtQUEUEavg_val[$h]) 
+				{
+				if ($k < 1) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= 'x';
+				}
+			else 
+				{
+				if ( ($k > 0) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= ' ';
+				$blank++;
+				}
+			$k++;
+			if ( ($k > 31) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+			}
+		}
+
+	$Aavg_hold[$h] = sprintf("%4s", $Aavg_hold[$h]);
+	while (strlen($Aavg_hold[$h])>4) {$Aavg_hold[$h] = ereg_replace("^.",'',$Aavg_hold[$h]);}
+
+	echo "|$HMdisplay[$h]| $qrtCALLS[$h] | $Phd__0[$h] $Phd_20[$h] $Phd_40[$h] $Phd_60[$h] $Phd_80[$h] $Phd100[$h] $Phd120[$h] $Phd121[$h] | | $Aavg_hold[$h] |$qrtQUEUEavg_scale[$h]|\n";
+	
+	$h++;
+	}
+
+if ($ALLhd__0 > 0) {$APhd__0 = round( ( ($ALLhd__0 / $ALLcalls) * 100) );}
+if ($ALLhd_20 > 0) {$APhd_20 = round( ( ($ALLhd_20 / $ALLcalls) * 100) );}
+if ($ALLhd_40 > 0) {$APhd_40 = round( ( ($ALLhd_40 / $ALLcalls) * 100) );}
+if ($ALLhd_60 > 0) {$APhd_60 = round( ( ($ALLhd_60 / $ALLcalls) * 100) );}
+if ($ALLhd_80 > 0) {$APhd_80 = round( ( ($ALLhd_80 / $ALLcalls) * 100) );}
+if ($ALLhd100 > 0) {$APhd100 = round( ( ($ALLhd100 / $ALLcalls) * 100) );}
+if ($ALLhd120 > 0) {$APhd120 = round( ( ($ALLhd120 / $ALLcalls) * 100) );}
+if ($ALLhd121 > 0) {$APhd121 = round( ( ($ALLhd121 / $ALLcalls) * 100) );}
+
+$ALLcalls =	sprintf("%5s", $ALLcalls);
+$APhd__0 =	sprintf("%4s", $APhd__0);
+$APhd_20 =	sprintf("%4s", $APhd_20);
+$APhd_40 =	sprintf("%4s", $APhd_40);
+$APhd_60 =	sprintf("%4s", $APhd_60);
+$APhd_80 =	sprintf("%4s", $APhd_80);
+$APhd100 =	sprintf("%4s", $APhd100);
+$APhd120 =	sprintf("%4s", $APhd120);
+$APhd121 =	sprintf("%4s", $APhd121);
+
+	while (strlen($totQUEUEavg)>4) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "| TOTAL       | $ALLcalls | $APhd__0 $APhd_20 $APhd_40 $APhd_60 $APhd_80 $APhd100 $APhd120 $APhd121 | | $totQUEUEavg |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+\n";
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSERstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSERstats.php new file mode 100644 index 00000000..3eb3a41d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSERstats.php @@ -0,0 +1,1504 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1714 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 60905-1326 - Added queue time stats +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71025-0021 - Added status breakdown +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80709-0331 - Added time stats to call statuses +# 80722-2149 - Added Status Category stats +# 81015-0705 - Added IVR calls count +# 81024-0037 - Added multi-select inbound-groups +# 81105-2118 - Added Answered calls 15-minute breakdown +# 81109-2340 - Added custom indicators section +# 90116-1040 - Rewrite of the 15-minute sections to speed it up and allow multi-day calculations +# 90310-2037 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90801-0921 - Added in-group name to pulldown +# 91214-0955 - Added INITIAL QUEUE POSITION BREAKDOWN +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Zeitraum:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Inbound Gruppen: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ÄNDERN Sie | "; +echo "REPORTS | "; +echo "IVR REPORT \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+{
+echo "\n\n";
+echo "Wählen Sie eine IM-Gruppe und Zeitraum oberhalb und klicken Sie auf Senden\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "Inbound Call Stats: $group_string          $NOW_TIME\n";
+
+
+
+
+
+
+if ($group_ct > 1)
+	{
+	echo "\n";
+	echo "---------- MULTI-GROUP BREAKDOWN:\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+	echo "| IN-GROUP             | CALLS   | DROPS   | DROP %  | IVR     |\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	$i=0;
+	while($i < $group_ct)
+		{
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='$group[$i]' and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowx=mysql_fetch_row($rslt);
+
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowy=mysql_fetch_row($rslt);
+
+		$groupDISPLAY =	sprintf("%20s", $group[$i]);
+		$gTOTALcalls =	sprintf("%7s", $row[0]);
+		$gIVRcalls =	sprintf("%7s", $rowx[0]);
+		$gDROPcalls =	sprintf("%7s", $rowy[0]);
+		if ( ($gDROPcalls < 1) or ($gTOTALcalls < 1) )
+			{$gDROPpercent = '0';}
+		else
+			{
+			$gDROPpercent = (($gDROPcalls / $gTOTALcalls) * 100);
+			$gDROPpercent = round($gDROPpercent, 2);
+			}
+		$gDROPpercent =	sprintf("%6s", $gDROPpercent);
+
+		echo "| $groupDISPLAY | $gTOTALcalls | $gDROPcalls | $gDROPpercent% | $gIVRcalls |\n";
+		$i++;
+		}
+
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	}
+
+
+echo "\n";
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALS\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowy=mysql_fetch_row($rslt);
+
+$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) and comment_b='START';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowx=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$IVRcalls =	sprintf("%10s", $rowx[0]);
+$TOTALsec =		$row[1];
+if ( ($row[0] < 1) or ($TOTALsec < 1) )
+	{$average_call_seconds = '         0';}
+else
+	{
+	$average_call_seconds = ($TOTALsec / $row[0]);
+	$average_call_seconds = round($average_call_seconds, 0);
+	$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+	}
+$ANTWORTEDcalls  =	sprintf("%10s", $rowy[0]);
+if ( ($ANTWORTEDcalls < 1) or ($TOTALcalls < 1) )
+	{$ANTWORTEDpercent = '0';}
+else
+	{
+	$ANTWORTEDpercent = (($ANTWORTEDcalls / $TOTALcalls) * 100);
+	$ANTWORTEDpercent = round($ANTWORTEDpercent, 0);
+	}
+if ( ($rowy[0] < 1) or ($ANTWORTEDcalls < 1) )
+	{$average_answer_seconds = '         0';}
+else
+	{
+	$average_answer_seconds = ($rowy[1] / $rowy[0]);
+	$average_answer_seconds = round($average_answer_seconds, 2);
+	$average_answer_seconds =	sprintf("%10s", $average_answer_seconds);
+	}
+
+
+echo "Insgesamt fordert die in dieser In-Gruppe:       $TOTALcalls\n";
+echo "Average Call Length for all Calls:            $average_call_seconds seconds\n";
+echo "Answered Calls:                               $ANTWORTEDcalls  $ANTWORTEDpercent%\n";
+echo "Average queue time for Answered Calls:        $average_answer_seconds seconds\n";
+echo "Calls taken into the IVR for this In-Gruppe:  $IVRcalls\n";
+
+
+echo "\n";
+echo "---------- DROPS\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+	{$DROPpercent = '0';}
+else
+	{
+	$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+	$DROPpercent = round($DROPpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{
+	$average_hold_seconds = '         0';
+	}
+else
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+if ( ($ANTWORTEDcalls < 1) or ($DROPcalls < 1) )
+	{$DROP_ANTWORTEDpercent = '0';}
+else
+	{
+	$DROP_ANTWORTEDpercent = (($DROPcalls / $ANTWORTEDcalls) * 100);
+	$DROP_ANTWORTEDpercent = round($DROP_ANTWORTEDpercent, 0);
+	}
+
+echo "Gesamt-TROPFEN Anrufe:                                          $DROPcalls  $DROPpercent%               drop/answered: $DROP_ANTWORTEDpercent%\n";
+echo "Average hold time for DROP Calls:             $average_hold_seconds seconds\n";
+
+
+
+
+if (strlen($group_SQL)>3)
+	{
+	$stmt = "SELECT answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two from vicidial_inbound_groups where group_id IN($group_SQL) order by answer_sec_pct_rt_stat_one desc limit 1;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$Sanswer_sec_pct_rt_stat_one = $row[0];
+	$Sanswer_sec_pct_rt_stat_two = $row[1];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_one;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_one = $row[0];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_two;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_two = $row[0];
+
+	if ( ($ANTWORTEDcalls > 0) and ($answer_sec_pct_rt_stat_one > 0) and ($answer_sec_pct_rt_stat_two > 0) )
+		{
+		$PCTanswer_sec_pct_rt_stat_one = (($answer_sec_pct_rt_stat_one / $ANTWORTEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_one = round($PCTanswer_sec_pct_rt_stat_one, 0);
+		#$PCTanswer_sec_pct_rt_stat_one = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_one);
+		$PCTanswer_sec_pct_rt_stat_two = (($answer_sec_pct_rt_stat_two / $ANTWORTEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_two = round($PCTanswer_sec_pct_rt_stat_two, 0);
+		#$PCTanswer_sec_pct_rt_stat_two = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_two);
+		}
+	}
+echo "\n";
+echo "---------- CUSTOM INDICATORS\n";
+echo "GDE (Answered/Gesamtanrufe genommenin to this In-Group):  $ANTWORTEDpercent%\n";
+echo "ACR (Dropped/Answered):                                $DROP_ANTWORTEDpercent%\n";
+echo "TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):            $PCTanswer_sec_pct_rt_stat_one%\n";
+echo "TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):            $PCTanswer_sec_pct_rt_stat_two%\n";
+
+
+# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+$q=0;
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_campaign_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+
+##############################
+#########  CALL QUEUE STATS
+echo "\n";
+echo "---------- QUEUE STATS\n";
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and (queue_seconds > 0);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$QUEUEcalls =	sprintf("%10s", $row[0]);
+if ( ($QUEUEcalls < 1) or ($TOTALcalls < 1) )
+	{$QUEUEpercent = '0';}
+else
+	{
+	$QUEUEpercent = (($QUEUEcalls / $TOTALcalls) * 100);
+	$QUEUEpercent = round($QUEUEpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{$average_queue_seconds = '         0';}
+else
+	{
+	$average_queue_seconds = ($row[1] / $row[0]);
+	$average_queue_seconds = round($average_queue_seconds, 2);
+	$average_queue_seconds = sprintf("%10.2f", $average_queue_seconds);
+	}
+
+if ( ($TOTALcalls < 1) or ($row[1] < 1) )
+	{$average_total_queue_seconds = '         0';}
+else
+	{
+	$average_total_queue_seconds = ($row[1] / $TOTALcalls);
+	$average_total_queue_seconds = round($average_total_queue_seconds, 2);
+	$average_total_queue_seconds = sprintf("%10.2f", $average_total_queue_seconds);
+	}
+
+echo "Total Calls That entered Queue:               $QUEUEcalls  $QUEUEpercent%\n";
+echo "Average QUEUE Length for queue calls:         $average_queue_seconds seconds\n";
+echo "Average QUEUE Length across all calls:        $average_total_queue_seconds seconds\n";
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL HALTEZEIT AUFTEILUNG IN SEKUNDEN\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ($row[1] == 0) {$hd_0 = ($hd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$hd_5 = ($hd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$hd10 = ($hd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$hd15 = ($hd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$hd20 = ($hd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$hd25 = ($hd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$hd30 = ($hd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$hd35 = ($hd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$hd40 = ($hd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$hd45 = ($hd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$hd50 = ($hd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$hd55 = ($hd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$hd60 = ($hd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$hd90 = ($hd90 + $row[0]);}
+	if ($row[1] > 90) {$hd99 = ($hd99 + $row[0]);}
+	$i++;
+	}
+
+$hd_0 =	sprintf("%5s", $hd_0);
+$hd_5 =	sprintf("%5s", $hd_5);
+$hd10 =	sprintf("%5s", $hd10);
+$hd15 =	sprintf("%5s", $hd15);
+$hd20 =	sprintf("%5s", $hd20);
+$hd25 =	sprintf("%5s", $hd25);
+$hd30 =	sprintf("%5s", $hd30);
+$hd35 =	sprintf("%5s", $hd35);
+$hd40 =	sprintf("%5s", $hd40);
+$hd45 =	sprintf("%5s", $hd45);
+$hd50 =	sprintf("%5s", $hd50);
+$hd55 =	sprintf("%5s", $hd55);
+$hd60 =	sprintf("%5s", $hd60);
+$hd90 =	sprintf("%5s", $hd90);
+$hd99 =	sprintf("%5s", $hd99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $hd_0 $hd_5 $hd10 $hd15 $hd20 $hd25 $hd30 $hd35 $hd40 $hd45 $hd50 $hd55 $hd60 $hd90 $hd99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  CALL DROP TIME BREAKDOWN IN SECONDS
+
+$BDdropCALLS = 0;
+
+echo "\n";
+echo "---------- CALL DROP TIME BREAKDOWN IN SECONDS\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status IN('DROP','XDROP') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDdropCALLS = ($BDdropCALLS + $row[0]);
+
+	if ($row[1] == 0) {$dd_0 = ($dd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$dd_5 = ($dd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$dd10 = ($dd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$dd15 = ($dd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$dd20 = ($dd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$dd25 = ($dd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$dd30 = ($dd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$dd35 = ($dd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$dd40 = ($dd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$dd45 = ($dd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$dd50 = ($dd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$dd55 = ($dd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$dd60 = ($dd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$dd90 = ($dd90 + $row[0]);}
+	if ($row[1] > 90) {$dd99 = ($dd99 + $row[0]);}
+	$i++;
+	}
+
+$dd_0 =	sprintf("%5s", $dd_0);
+$dd_5 =	sprintf("%5s", $dd_5);
+$dd10 =	sprintf("%5s", $dd10);
+$dd15 =	sprintf("%5s", $dd15);
+$dd20 =	sprintf("%5s", $dd20);
+$dd25 =	sprintf("%5s", $dd25);
+$dd30 =	sprintf("%5s", $dd30);
+$dd35 =	sprintf("%5s", $dd35);
+$dd40 =	sprintf("%5s", $dd40);
+$dd45 =	sprintf("%5s", $dd45);
+$dd50 =	sprintf("%5s", $dd50);
+$dd55 =	sprintf("%5s", $dd55);
+$dd60 =	sprintf("%5s", $dd60);
+$dd90 =	sprintf("%5s", $dd90);
+$dd99 =	sprintf("%5s", $dd99);
+
+$BDdropCALLS =		sprintf("%10s", $BDdropCALLS);
+
+echo "| $dd_0 $dd_5 $dd10 $dd15 $dd20 $dd25 $dd30 $dd35 $dd40 $dd45 $dd50 $dd55 $dd60 $dd90 $dd99 | $BDdropCALLS |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS
+
+$BDansweredCALLS = 0;
+
+echo "\n";
+echo "           CALL ANTWORTED TIME AND PERCENT BREAKDOWN IN SECONDS\n";
+echo "          +-------------------------------------------------------------------------------------------+------------+\n";
+echo "          |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDansweredCALLS = ($BDansweredCALLS + $row[0]);
+	
+	### Get interval totals
+	if ($row[1] == 0) {$ad_0 = ($ad_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$ad_5 = ($ad_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$ad10 = ($ad10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$ad15 = ($ad15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$ad20 = ($ad20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$ad25 = ($ad25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$ad30 = ($ad30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$ad35 = ($ad35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$ad40 = ($ad40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$ad45 = ($ad45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$ad50 = ($ad50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$ad55 = ($ad55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$ad60 = ($ad60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$ad90 = ($ad90 + $row[0]);}
+	if ($row[1] > 90) {$ad99 = ($ad99 + $row[0]);}
+	$i++;
+	}
+
+### Calculate cumulative totals
+$Cad_0 =$ad_0;
+$Cad_5 =($Cad_0 + $ad_5);
+$Cad10 =($Cad_5 + $ad10);
+$Cad15 =($Cad10 + $ad15);
+$Cad20 =($Cad15 + $ad20);
+$Cad25 =($Cad20 + $ad25);
+$Cad30 =($Cad25 + $ad30);
+$Cad35 =($Cad30 + $ad35);
+$Cad40 =($Cad35 + $ad40);
+$Cad45 =($Cad40 + $ad45);
+$Cad50 =($Cad45 + $ad50);
+$Cad55 =($Cad50 + $ad55);
+$Cad60 =($Cad55 + $ad60);
+$Cad90 =($Cad60 + $ad90);
+$Cad99 =($Cad90 + $ad99);
+
+### Calculate interval percentages
+$pad_0=0; $pad_5=0; $pad10=0; $pad15=0; $pad20=0; $pad25=0; $pad30=0; $pad35=0; $pad40=0; $pad45=0; $pad50=0; $pad55=0; $pad60=0; $pad90=0; $pad99=0; 
+$pCad_0=0; $pCad_5=0; $pCad10=0; $pCad15=0; $pCad20=0; $pCad25=0; $pCad30=0; $pCad35=0; $pCad40=0; $pCad45=0; $pCad50=0; $pCad55=0; $pCad60=0; $pCad90=0; $pCad99=0; 
+if ( ($BDansweredCALLS > 0) and ($TOTALcalls > 0) )
+	{
+	if ($ad_0 > 0) {$pad_0 = (($ad_0 / $TOTALcalls) * 100);	$pad_0 = round($pad_0, 0);}
+	if ($ad_5 > 0) {$pad_5 = (($ad_5 / $TOTALcalls) * 100);	$pad_5 = round($pad_5, 0);}
+	if ($ad10 > 0) {$pad10 = (($ad10 / $TOTALcalls) * 100);	$pad10 = round($pad10, 0);}
+	if ($ad15 > 0) {$pad15 = (($ad15 / $TOTALcalls) * 100);	$pad15 = round($pad15, 0);}
+	if ($ad20 > 0) {$pad20 = (($ad20 / $TOTALcalls) * 100);	$pad20 = round($pad20, 0);}
+	if ($ad25 > 0) {$pad25 = (($ad25 / $TOTALcalls) * 100);	$pad25 = round($pad25, 0);}
+	if ($ad30 > 0) {$pad30 = (($ad30 / $TOTALcalls) * 100);	$pad30 = round($pad30, 0);}
+	if ($ad35 > 0) {$pad35 = (($ad35 / $TOTALcalls) * 100);	$pad35 = round($pad35, 0);}
+	if ($ad40 > 0) {$pad40 = (($ad40 / $TOTALcalls) * 100);	$pad40 = round($pad40, 0);}
+	if ($ad45 > 0) {$pad45 = (($ad45 / $TOTALcalls) * 100);	$pad45 = round($pad45, 0);}
+	if ($ad50 > 0) {$pad50 = (($ad50 / $TOTALcalls) * 100);	$pad50 = round($pad50, 0);}
+	if ($ad55 > 0) {$pad55 = (($ad55 / $TOTALcalls) * 100);	$pad55 = round($pad55, 0);}
+	if ($ad60 > 0) {$pad60 = (($ad60 / $TOTALcalls) * 100);	$pad60 = round($pad60, 0);}
+	if ($ad90 > 0) {$pad90 = (($ad90 / $TOTALcalls) * 100);	$pad90 = round($pad90, 0);}
+	if ($ad99 > 0) {$pad99 = (($ad99 / $TOTALcalls) * 100);	$pad99 = round($pad99, 0);}
+
+	if ($Cad_0 > 0) {$pCad_0 = (($Cad_0 / $TOTALcalls) * 100);	$pCad_0 = round($pCad_0, 0);}
+	if ($Cad_5 > 0) {$pCad_5 = (($Cad_5 / $TOTALcalls) * 100);	$pCad_5 = round($pCad_5, 0);}
+	if ($Cad10 > 0) {$pCad10 = (($Cad10 / $TOTALcalls) * 100);	$pCad10 = round($pCad10, 0);}
+	if ($Cad15 > 0) {$pCad15 = (($Cad15 / $TOTALcalls) * 100);	$pCad15 = round($pCad15, 0);}
+	if ($Cad20 > 0) {$pCad20 = (($Cad20 / $TOTALcalls) * 100);	$pCad20 = round($pCad20, 0);}
+	if ($Cad25 > 0) {$pCad25 = (($Cad25 / $TOTALcalls) * 100);	$pCad25 = round($pCad25, 0);}
+	if ($Cad30 > 0) {$pCad30 = (($Cad30 / $TOTALcalls) * 100);	$pCad30 = round($pCad30, 0);}
+	if ($Cad35 > 0) {$pCad35 = (($Cad35 / $TOTALcalls) * 100);	$pCad35 = round($pCad35, 0);}
+	if ($Cad40 > 0) {$pCad40 = (($Cad40 / $TOTALcalls) * 100);	$pCad40 = round($pCad40, 0);}
+	if ($Cad45 > 0) {$pCad45 = (($Cad45 / $TOTALcalls) * 100);	$pCad45 = round($pCad45, 0);}
+	if ($Cad50 > 0) {$pCad50 = (($Cad50 / $TOTALcalls) * 100);	$pCad50 = round($pCad50, 0);}
+	if ($Cad55 > 0) {$pCad55 = (($Cad55 / $TOTALcalls) * 100);	$pCad55 = round($pCad55, 0);}
+	if ($Cad60 > 0) {$pCad60 = (($Cad60 / $TOTALcalls) * 100);	$pCad60 = round($pCad60, 0);}
+	if ($Cad90 > 0) {$pCad90 = (($Cad90 / $TOTALcalls) * 100);	$pCad90 = round($pCad90, 0);}
+	if ($Cad99 > 0) {$pCad99 = (($Cad99 / $TOTALcalls) * 100);	$pCad99 = round($pCad99, 0);}
+
+	if ($Cad_0 > 0) {$ApCad_0 = (($Cad_0 / $BDansweredCALLS) * 100);	$ApCad_0 = round($ApCad_0, 0);}
+	if ($Cad_5 > 0) {$ApCad_5 = (($Cad_5 / $BDansweredCALLS) * 100);	$ApCad_5 = round($ApCad_5, 0);}
+	if ($Cad10 > 0) {$ApCad10 = (($Cad10 / $BDansweredCALLS) * 100);	$ApCad10 = round($ApCad10, 0);}
+	if ($Cad15 > 0) {$ApCad15 = (($Cad15 / $BDansweredCALLS) * 100);	$ApCad15 = round($ApCad15, 0);}
+	if ($Cad20 > 0) {$ApCad20 = (($Cad20 / $BDansweredCALLS) * 100);	$ApCad20 = round($ApCad20, 0);}
+	if ($Cad25 > 0) {$ApCad25 = (($Cad25 / $BDansweredCALLS) * 100);	$ApCad25 = round($ApCad25, 0);}
+	if ($Cad30 > 0) {$ApCad30 = (($Cad30 / $BDansweredCALLS) * 100);	$ApCad30 = round($ApCad30, 0);}
+	if ($Cad35 > 0) {$ApCad35 = (($Cad35 / $BDansweredCALLS) * 100);	$ApCad35 = round($ApCad35, 0);}
+	if ($Cad40 > 0) {$ApCad40 = (($Cad40 / $BDansweredCALLS) * 100);	$ApCad40 = round($ApCad40, 0);}
+	if ($Cad45 > 0) {$ApCad45 = (($Cad45 / $BDansweredCALLS) * 100);	$ApCad45 = round($ApCad45, 0);}
+	if ($Cad50 > 0) {$ApCad50 = (($Cad50 / $BDansweredCALLS) * 100);	$ApCad50 = round($ApCad50, 0);}
+	if ($Cad55 > 0) {$ApCad55 = (($Cad55 / $BDansweredCALLS) * 100);	$ApCad55 = round($ApCad55, 0);}
+	if ($Cad60 > 0) {$ApCad60 = (($Cad60 / $BDansweredCALLS) * 100);	$ApCad60 = round($ApCad60, 0);}
+	if ($Cad90 > 0) {$ApCad90 = (($Cad90 / $BDansweredCALLS) * 100);	$ApCad90 = round($ApCad90, 0);}
+	if ($Cad99 > 0) {$ApCad99 = (($Cad99 / $BDansweredCALLS) * 100);	$ApCad99 = round($ApCad99, 0);}
+	}
+
+### Format variables
+$ad_0 = sprintf("%5s", $ad_0);
+$ad_5 = sprintf("%5s", $ad_5);
+$ad10 = sprintf("%5s", $ad10);
+$ad15 = sprintf("%5s", $ad15);
+$ad20 = sprintf("%5s", $ad20);
+$ad25 = sprintf("%5s", $ad25);
+$ad30 = sprintf("%5s", $ad30);
+$ad35 = sprintf("%5s", $ad35);
+$ad40 = sprintf("%5s", $ad40);
+$ad45 = sprintf("%5s", $ad45);
+$ad50 = sprintf("%5s", $ad50);
+$ad55 = sprintf("%5s", $ad55);
+$ad60 = sprintf("%5s", $ad60);
+$ad90 = sprintf("%5s", $ad90);
+$ad99 = sprintf("%5s", $ad99);
+$Cad_0 = sprintf("%5s", $Cad_0);
+$Cad_5 = sprintf("%5s", $Cad_5);
+$Cad10 = sprintf("%5s", $Cad10);
+$Cad15 = sprintf("%5s", $Cad15);
+$Cad20 = sprintf("%5s", $Cad20);
+$Cad25 = sprintf("%5s", $Cad25);
+$Cad30 = sprintf("%5s", $Cad30);
+$Cad35 = sprintf("%5s", $Cad35);
+$Cad40 = sprintf("%5s", $Cad40);
+$Cad45 = sprintf("%5s", $Cad45);
+$Cad50 = sprintf("%5s", $Cad50);
+$Cad55 = sprintf("%5s", $Cad55);
+$Cad60 = sprintf("%5s", $Cad60);
+$Cad90 = sprintf("%5s", $Cad90);
+$Cad99 = sprintf("%5s", $Cad99);
+$pad_0 = sprintf("%4s", $pad_0) . '%';
+$pad_5 = sprintf("%4s", $pad_5) . '%';
+$pad10 = sprintf("%4s", $pad10) . '%';
+$pad15 = sprintf("%4s", $pad15) . '%';
+$pad20 = sprintf("%4s", $pad20) . '%';
+$pad25 = sprintf("%4s", $pad25) . '%';
+$pad30 = sprintf("%4s", $pad30) . '%';
+$pad35 = sprintf("%4s", $pad35) . '%';
+$pad40 = sprintf("%4s", $pad40) . '%';
+$pad45 = sprintf("%4s", $pad45) . '%';
+$pad50 = sprintf("%4s", $pad50) . '%';
+$pad55 = sprintf("%4s", $pad55) . '%';
+$pad60 = sprintf("%4s", $pad60) . '%';
+$pad90 = sprintf("%4s", $pad90) . '%';
+$pad99 = sprintf("%4s", $pad99) . '%';
+$pCad_0 = sprintf("%4s", $pCad_0) . '%';
+$pCad_5 = sprintf("%4s", $pCad_5) . '%';
+$pCad10 = sprintf("%4s", $pCad10) . '%';
+$pCad15 = sprintf("%4s", $pCad15) . '%';
+$pCad20 = sprintf("%4s", $pCad20) . '%';
+$pCad25 = sprintf("%4s", $pCad25) . '%';
+$pCad30 = sprintf("%4s", $pCad30) . '%';
+$pCad35 = sprintf("%4s", $pCad35) . '%';
+$pCad40 = sprintf("%4s", $pCad40) . '%';
+$pCad45 = sprintf("%4s", $pCad45) . '%';
+$pCad50 = sprintf("%4s", $pCad50) . '%';
+$pCad55 = sprintf("%4s", $pCad55) . '%';
+$pCad60 = sprintf("%4s", $pCad60) . '%';
+$pCad90 = sprintf("%4s", $pCad90) . '%';
+$pCad99 = sprintf("%4s", $pCad99) . '%';
+$ApCad_0 = sprintf("%4s", $ApCad_0) . '%';
+$ApCad_5 = sprintf("%4s", $ApCad_5) . '%';
+$ApCad10 = sprintf("%4s", $ApCad10) . '%';
+$ApCad15 = sprintf("%4s", $ApCad15) . '%';
+$ApCad20 = sprintf("%4s", $ApCad20) . '%';
+$ApCad25 = sprintf("%4s", $ApCad25) . '%';
+$ApCad30 = sprintf("%4s", $ApCad30) . '%';
+$ApCad35 = sprintf("%4s", $ApCad35) . '%';
+$ApCad40 = sprintf("%4s", $ApCad40) . '%';
+$ApCad45 = sprintf("%4s", $ApCad45) . '%';
+$ApCad50 = sprintf("%4s", $ApCad50) . '%';
+$ApCad55 = sprintf("%4s", $ApCad55) . '%';
+$ApCad60 = sprintf("%4s", $ApCad60) . '%';
+$ApCad90 = sprintf("%4s", $ApCad90) . '%';
+$ApCad99 = sprintf("%4s", $ApCad99) . '%';
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+### Format and output
+$answeredTOTALs = "$ad_0 $ad_5 $ad10 $ad15 $ad20 $ad25 $ad30 $ad35 $ad40 $ad45 $ad50 $ad55 $ad60 $ad90 $ad99 | $BDansweredCALLS |";
+$answeredCUMULATIVE = "$Cad_0 $Cad_5 $Cad10 $Cad15 $Cad20 $Cad25 $Cad30 $Cad35 $Cad40 $Cad45 $Cad50 $Cad55 $Cad60 $Cad90 $Cad99 | $BDansweredCALLS |";
+$answeredINT_PERCENT = "$pad_0 $pad_5 $pad10 $pad15 $pad20 $pad25 $pad30 $pad35 $pad40 $pad45 $pad50 $pad55 $pad60 $pad90 $pad99 |            |";
+$answeredCUM_PERCENT = "$pCad_0 $pCad_5 $pCad10 $pCad15 $pCad20 $pCad25 $pCad30 $pCad35 $pCad40 $pCad45 $pCad50 $pCad55 $pCad60 $pCad90 $pCad99 |            |";
+$answeredCUM_ANS_PERCENT = "$ApCad_0 $ApCad_5 $ApCad10 $ApCad15 $ApCad20 $ApCad25 $ApCad30 $ApCad35 $ApCad40 $ApCad45 $ApCad50 $ApCad55 $ApCad60 $ApCad90 $ApCad99 |            |";
+echo "INTERVAL  | $answeredTOTALs\n";
+echo "INT %     | $answeredINT_PERCENT\n";
+echo "CUMULATIVE| $answeredCUMULATIVE\n";
+echo "CUM %     | $answeredCUM_PERCENT\n";
+echo "CUM ANS % | $answeredCUM_ANS_PERCENT\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+
+##############################
+#########  CALL HANGUP REASON STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL HANGUP GRUND STATS\n";
+echo "+----------------------+------------+\n";
+echo "| HANGUP REASON        | CALLS      |\n";
+echo "+----------------------+------------+\n";
+
+$stmt="select count(*),term_reason from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by term_reason;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+	$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+#	if (ereg("NONE",$reason)) {$reason = 'NO ANSWER           ';}
+
+	echo "| $reason | $REASONcount |\n";
+
+	$i++;
+	}
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "+----------------------+------------+\n";
+echo "| TOTAL:               | $TOTALcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL STATUS STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL STATUS STATS\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| STATUS | DESCRIPTION          | KATEGORIE             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+
+
+## get counts and time totals for all statuses in this campaign
+$stmt="select count(*),status,sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by status;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$STATUScount =	$row[0];
+	$RAWstatus =	$row[1];
+	$r=0;  $foundstat=0;
+	while ($r < $statcats_to_print)
+		{
+		if ( ($statcat_list[$RAWstatus] == "$vsc_id[$r]") and ($foundstat < 1) )
+			{
+			$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+			}
+		$r++;
+		}
+
+	$TOTALcalls =	($TOTALcalls + $row[0]);
+	if ( ($STATUScount < 1) or ($TOTALsec < 1) )
+		{$STATUSrate = 0;}
+	else
+		{$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );}
+	$STATUSrate =	sprintf("%.2f", $STATUSrate);
+
+	$STATUShours =		sec_convert($row[2],'H'); 
+	$STATUSavg_sec =	($row[2] / $STATUScount); 
+	$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+	$STATUScount =	sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+	$status =	sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+	$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+	$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+	$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+
+	if ($non_latin < 1)
+		{
+		$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+		while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+		$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+		while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+		}
+	else
+		{
+		$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+		while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+		$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+		while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+		}
+
+
+	echo "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate |\n";
+
+	$i++;
+	}
+
+if ($TOTALcalls < 1)
+	{
+	$TOTALhours =	'0:00:00';
+	$TOTALavg =		'0:00:00';
+	$TOTALrate =	'0.00';
+	}
+else
+	{
+	if ( ($TOTALcalls < 1) or ($TOTALsec < 1) )
+		{$TOTALrate = 0;}
+	else
+		{$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );}
+	$TOTALrate =	sprintf("%.2f", $TOTALrate);
+
+	$TOTALhours =		sec_convert($TOTALsec,'H'); 
+	$TOTALavg_sec =		($TOTALsec / $TOTALcalls);
+	$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+	}
+$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |\n";
+echo "+------------------------------------------------------+------------+------------+----------+----------+\n";
+
+
+##############################
+#########  STATUS CATEGORY STATS
+
+echo "\n";
+echo "---------- CUSTOM STATUS KATEGORIE STATS\n";
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| KATEGORIE             | CALLS      | DESCRIPTION                    |\n";
+echo "+----------------------+------------+--------------------------------+\n";
+
+$TOTCATcalls=0;
+$r=0;
+while ($r < $statcats_to_print)
+	{
+	if ($vsc_id[$r] != 'UNDEFINED')
+		{
+		$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+		$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+		$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+		$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+		echo "| $category | $CATcount | $CATname |\n";
+		}
+
+	$r++;
+	}
+
+$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| TOTAL                | $TOTCATcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+##############################
+#########  CALL INITIAL QUEUE POSITION BREAKDOWN
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+echo "|     1     2     3     4     5     6     7     8     9    10    15    20    25   +25 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_position;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$positions_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $positions_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);}
+	if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);}
+	if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);}
+	if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);}
+	if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);}
+	if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);}
+	if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);}
+	if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);}
+	if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);}
+	if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);}
+	$i++;
+	}
+
+$qp_1 =	sprintf("%5s", $qp_1);
+$qp_2 =	sprintf("%5s", $qp_2);
+$qp_3=	sprintf("%5s", $qp_3);
+$qp_4 =	sprintf("%5s", $qp_4);
+$qp_5 =	sprintf("%5s", $qp_5);
+$qp_6 =	sprintf("%5s", $qp_6);
+$qp_7 =	sprintf("%5s", $qp_7);
+$qp_8 =	sprintf("%5s", $qp_8);
+$qp_9 =	sprintf("%5s", $qp_9);
+$qp10 =	sprintf("%5s", $qp10);
+$qp15 =	sprintf("%5s", $qp15);
+$qp20 =	sprintf("%5s", $qp20);
+$qp25 =	sprintf("%5s", $qp25);
+$qp99 =	sprintf("%5s", $qp99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  USER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTtime=0;
+$TOTavg=0;
+
+echo "\n";
+echo "---------- MITTELSTATS\n";
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| MITTEL                   | CALLS      | TIME H:M:S |AVERAGE |\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_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[2]);
+	$TOTtime = ($TOTtime + $row[3]);
+
+	$user =			sprintf("%-6s", $row[0]);
+	if ($non_latin < 1)
+		{
+		$full_name =	sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+		}
+	else
+		{
+		$full_name =	sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+		}
+	$USERcalls =	sprintf("%10s", $row[2]);
+	$USERtotTALK =	$row[3];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+	$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+	$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+	$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+	$i++;
+	}
+
+if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;}
+else
+	{
+	$TOTavg = ($TOTtime / $TOTcalls);
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	}
+
+$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+$TOTagents =		sprintf("%10s", $i);
+$TOTcalls =			sprintf("%10s", $TOTcalls);
+$TOTtime =			sprintf("%8s", $TOTtime);
+$TOTavg =			sprintf("%6s", $TOTavg);
+
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| TOTAL Bevollmächtigte: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+echo "+--------------------------+------------+------------+--------+\n";
+
+
+##############################
+#########  TIME STATS
+
+echo "\n";
+echo "---------- TIME STATS\n";
+
+echo "\n";
+
+
+##############################
+#########  15-minute increment breakdowns of total calls and drops, then answered table
+$BDansweredCALLS = 0;
+$stmt="SELECT status,queue_seconds,UNIX_TIMESTAMP(call_date),call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$calls_to_print = mysql_num_rows($rslt);
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$Cstatus[$j] =	$row[0];
+	$Cqueue[$j] =	$row[1];
+	$Cepoch[$j] =	$row[2];
+	$Cdate[$j] =	$row[3];
+	$Crem[$j] = ( ($Cepoch[$j] + $epoch_offset) % 86400); # find the remainder(Modulus) of seconds since start of the day
+#	echo "|$Cepoch[$j]|$Crem[$j]|$Cdate[$j]|\n";
+	$j++;
+	}
+
+### Loop through all call records and gather stats for total call/drop report and answered report
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$i=0; $sec=0; $sec_end=900;
+	while ($i <= 96)
+		{
+		if ( ($Crem[$j] >= $sec) and ($Crem[$j] < $sec_end) ) 
+			{
+			$Ftotal[$i]++;
+			if (ereg("DROP",$Cstatus[$j])) {$Fdrop[$i]++;}
+			if (!ereg("DROP|XDROP|HXFER|QVMAIL|HOLDTO|LIVE|QUEUE",$Cstatus[$j]))
+				{
+				$BDansweredCALLS++;
+				$Fanswer[$i]++;
+
+				if ($Cqueue[$j] == 0)								{$adB_0[$i]++;}
+				if ( ($Cqueue[$j] > 0) and ($Cqueue[$j] <= 5) )		{$adB_5[$i]++;}
+				if ( ($Cqueue[$j] > 5) and ($Cqueue[$j] <= 10) )	{$adB10[$i]++;}
+				if ( ($Cqueue[$j] > 10) and ($Cqueue[$j] <= 15) )	{$adB15[$i]++;}
+				if ( ($Cqueue[$j] > 15) and ($Cqueue[$j] <= 20) )	{$adB20[$i]++;}
+				if ( ($Cqueue[$j] > 20) and ($Cqueue[$j] <= 25) )	{$adB25[$i]++;}
+				if ( ($Cqueue[$j] > 25) and ($Cqueue[$j] <= 30) )	{$adB30[$i]++;}
+				if ( ($Cqueue[$j] > 30) and ($Cqueue[$j] <= 35) )	{$adB35[$i]++;}
+				if ( ($Cqueue[$j] > 35) and ($Cqueue[$j] <= 40) )	{$adB40[$i]++;}
+				if ( ($Cqueue[$j] > 40) and ($Cqueue[$j] <= 45) )	{$adB45[$i]++;}
+				if ( ($Cqueue[$j] > 45) and ($Cqueue[$j] <= 50) )	{$adB50[$i]++;}
+				if ( ($Cqueue[$j] > 50) and ($Cqueue[$j] <= 55) )	{$adB55[$i]++;}
+				if ( ($Cqueue[$j] > 55) and ($Cqueue[$j] <= 60) )	{$adB60[$i]++;}
+				if ( ($Cqueue[$j] > 60) and ($Cqueue[$j] <= 90) )	{$adB90[$i]++;}
+				if ($Cqueue[$j] > 90)								{$adB99[$i]++;}
+				}
+
+			}
+		$sec = ($sec + 900);
+		$sec_end = ($sec_end + 900);
+		$i++;
+		}
+	$j++;
+	}	##### END going through all records
+
+
+
+
+
+
+
+##### 15-minute total and drops graph
+$hi_hour_count=0;
+$last_full_record=0;
+$i=0;
+$h=0;
+while ($i <= 96)
+	{
+	$hour_count[$i] = $Ftotal[$i];
+	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+	if ($hour_count[$i] > 0) {$last_full_record = $i;}
+	$drop_count[$i] = $Fdrop[$i];
+	$i++;
+	}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+	}
+
+echo "\n";
+echo "DIAGRAMM IN 15 MINUZIÖSEN STUFENSPRÜNGEN VON GESAMTANRUFEN TAKEN INTO THIS IN-GROUP\n";
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 102) 
+	{
+	if ($Mk >= 5) 
+		{
+		$Mk=0;
+		if ( ($k < 1) or ($hour_multiplier <= 0) )
+			{$scale_num = 100;}
+		else
+			{
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			}
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		}
+	if ($h == 1) {$time = "   15 ";}
+	if ($h == 2) {$time = "   30 ";}
+	if ($h == 3) {$time = "   45 ";}
+	$Ghour_count = $hour_count[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ( ($no_lines_yet) or ($i > $last_full_record) )
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			echo "|$time|";
+			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (99 - $Xhour_count);
+
+		$Gdrop_count = $drop_count[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| 0     | $hour_count[$i] |\n";
+
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 102) {echo " ";   $char_counter++;}
+			echo "| $drop_count[$i] | $hour_count[$i] |\n";
+			}
+		}
+	
+	
+	$i++;
+	$h++;
+	}
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n\n";
+
+
+
+
+
+
+##### Answered wait time breakdown
+echo "\n";
+echo "---------- CALL ANTWORTED TIME BREAKDOWN IN SECONDS\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "| HOUR |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		$SQLtime = "$hour:$ZZ:00";
+		$SQLtimeEND = "$hour:15:00";
+		}
+	if ($h == 1) {$time = "   15 ";   $SQLtime = "$hour:15:00";   $SQLtimeEND = "$hour:30:00";}
+	if ($h == 2) {$time = "   30 ";   $SQLtime = "$hour:30:00";   $SQLtimeEND = "$hour:45:00";}
+	if ($h == 3) 
+		{
+		$time = "   45 ";
+		$SQLtime = "$hour:45:00";
+		$hourEND = ($hour + 1);
+		if ($hourEND < 10) {$hourEND = "0$hourEND";}
+		if ($hourEND > 23) {$SQLtimeEND = "23:59:59";}
+		else {$SQLtimeEND = "$hourEND:00:00";}
+		}
+
+
+	if (strlen($adB_0[$i]) < 1)  {$adB_0[$i]='-';}
+	if (strlen($adB_5[$i]) < 1)  {$adB_5[$i]='-';}
+	if (strlen($adB10[$i]) < 1)  {$adB10[$i]='-';}
+	if (strlen($adB15[$i]) < 1)  {$adB15[$i]='-';}
+	if (strlen($adB20[$i]) < 1)  {$adB20[$i]='-';}
+	if (strlen($adB25[$i]) < 1)  {$adB25[$i]='-';}
+	if (strlen($adB30[$i]) < 1)  {$adB30[$i]='-';}
+	if (strlen($adB35[$i]) < 1)  {$adB35[$i]='-';}
+	if (strlen($adB40[$i]) < 1)  {$adB40[$i]='-';}
+	if (strlen($adB45[$i]) < 1)  {$adB45[$i]='-';}
+	if (strlen($adB50[$i]) < 1)  {$adB50[$i]='-';}
+	if (strlen($adB55[$i]) < 1)  {$adB55[$i]='-';}
+	if (strlen($adB60[$i]) < 1)  {$adB60[$i]='-';}
+	if (strlen($adB90[$i]) < 1)  {$adB90[$i]='-';}
+	if (strlen($adB99[$i]) < 1)  {$adB99[$i]='-';}
+	if (strlen($Fanswer[$i]) < 1)  {$Fanswer[$i]='0';}
+
+	$adB_0[$i] = sprintf("%5s", $adB_0[$i]);
+	$adB_5[$i] = sprintf("%5s", $adB_5[$i]);
+	$adB10[$i] = sprintf("%5s", $adB10[$i]);
+	$adB15[$i] = sprintf("%5s", $adB15[$i]);
+	$adB20[$i] = sprintf("%5s", $adB20[$i]);
+	$adB25[$i] = sprintf("%5s", $adB25[$i]);
+	$adB30[$i] = sprintf("%5s", $adB30[$i]);
+	$adB35[$i] = sprintf("%5s", $adB35[$i]);
+	$adB40[$i] = sprintf("%5s", $adB40[$i]);
+	$adB45[$i] = sprintf("%5s", $adB45[$i]);
+	$adB50[$i] = sprintf("%5s", $adB50[$i]);
+	$adB55[$i] = sprintf("%5s", $adB55[$i]);
+	$adB60[$i] = sprintf("%5s", $adB60[$i]);
+	$adB90[$i] = sprintf("%5s", $adB90[$i]);
+	$adB99[$i] = sprintf("%5s", $adB99[$i]);
+	$Fanswer[$i] = sprintf("%10s", $Fanswer[$i]);
+
+	echo "|$time| $adB_0[$i] $adB_5[$i] $adB10[$i] $adB15[$i] $adB20[$i] $adB25[$i] $adB30[$i] $adB35[$i] $adB40[$i] $adB45[$i] $adB50[$i] $adB55[$i] $adB60[$i] $adB90[$i] $adB99[$i] | $Fanswer[$i] |\n";
+
+	$i++;
+	$h++;
+	}
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|TOTALS|                                                                                           | $BDansweredCALLS |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSERsummary_hourly.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_IVRfilter.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_IVRfilter.php new file mode 100644 index 00000000..2acddc97 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_IVRfilter.php @@ -0,0 +1,249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 81030-0432 - First build +# 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; + +?> + + + + + +\n"; +echo "VICIDIAL: VDL IVR Filter Stats\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Zeitraum:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ADMIN | "; +echo "REPORTS\n"; +echo "\n"; + +echo "
\n"; + +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+$shift = 'ALL';
+
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "VDL: IVR Filter Stats:           $NOW_TIME\n";
+
+
+echo "\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "| KATEGORIE             | CALLS   | UNIQUE  |      %  |\n";
+echo "+----------------------+---------+---------+---------+\n";
+
+
+$stmtA="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='CLEAN';";
+$rsltA=mysql_query($stmtA, $link);
+if ($DB) {echo "$stmtA\n";}
+$rowA=mysql_fetch_row($rsltA);
+
+$stmtB="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='NOT_FOUND';";
+$rsltB=mysql_query($stmtB, $link);
+if ($DB) {echo "$stmtB\n";}
+$rowB=mysql_fetch_row($rsltB);
+
+$stmtC="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='DNC';";
+$rsltC=mysql_query($stmtC, $link);
+if ($DB) {echo "$stmtC\n";}
+$rowC=mysql_fetch_row($rsltC);
+
+$stmtD="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='SALE';";
+$rsltD=mysql_query($stmtD, $link);
+if ($DB) {echo "$stmtD\n";}
+$rowD=mysql_fetch_row($rsltD);
+
+$stmtE="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='ARCHIVE';";
+$rsltE=mysql_query($stmtE, $link);
+if ($DB) {echo "$stmtE\n";}
+$rowE=mysql_fetch_row($rsltE);
+
+
+$total = ($rowA[0] + $rowB[0] + $rowC[0] + $rowD[0] + $rowE[0]);
+$Utotal = ($rowA[1] + $rowB[1] + $rowC[1] + $rowD[1] + $rowE[1]);
+
+$agent =	sprintf("%7s", $rowA[0]);
+$Uagent =	sprintf("%7s", $rowA[1]);
+if ( ($Utotal < 1) or ($rowA[1] < 1) )
+	{$UagentPERCENT = '0';}
+else
+	{$UagentPERCENT = (($rowA[1] / $Utotal) * 100);   $UagentPERCENT = round($UagentPERCENT, 2);}
+$UagentPERCENT =	sprintf("%6s", $UagentPERCENT);
+
+$ntfnd =	sprintf("%7s", $rowB[0]);
+$Untfnd =	sprintf("%7s", $rowB[1]);
+if ( ($Utotal < 1) or ($rowB[1] < 1) )
+	{$UntfndPERCENT = '0';}
+else
+	{$UntfndPERCENT = (($rowB[1] / $Utotal) * 100);   $UntfndPERCENT = round($UntfndPERCENT, 2);}
+$UntfndPERCENT =	sprintf("%6s", $UntfndPERCENT);
+
+$prdnc =	sprintf("%7s", $rowC[0]);
+$Uprdnc =	sprintf("%7s", $rowC[1]);
+if ( ($Utotal < 1) or ($rowC[1] < 1) )
+	{$UprdncPERCENT = '0';}
+else
+	{$UprdncPERCENT = (($rowC[1] / $Utotal) * 100);   $UprdncPERCENT = round($UprdncPERCENT, 2);}
+$UprdncPERCENT =	sprintf("%6s", $UprdncPERCENT);
+
+$psale =	sprintf("%7s", $rowD[0]);
+$Upsale =	sprintf("%7s", $rowD[1]);
+if ( ($Utotal < 1) or ($rowD[1] < 1) )
+	{$UpsalePERCENT = '0';}
+else
+	{$UpsalePERCENT = (($rowD[1] / $Utotal) * 100);   $UpsalePERCENT = round($UpsalePERCENT, 2);}
+$UpsalePERCENT =	sprintf("%6s", $UpsalePERCENT);
+
+$archv =	sprintf("%7s", $rowE[0]);
+$Uarchv =	sprintf("%7s", $rowE[1]);
+if ( ($Utotal < 1) or ($rowE[1] < 1) )
+	{$UarchvPERCENT = '0';}
+else
+	{$UarchvPERCENT = (($rowE[1] / $Utotal) * 100);   $UarchvPERCENT = round($UarchvPERCENT, 2);}
+$UarchvPERCENT =	sprintf("%6s", $UarchvPERCENT);
+
+$total =	sprintf("%7s", $total);
+$Utotal =	sprintf("%7s", $Utotal);
+
+
+echo "| CALL SENT TO MITTEL  | $agent | $Uagent | $UagentPERCENT% |\n";
+echo "| CALLERID NOT FOUND   | $ntfnd | $Untfnd | $UntfndPERCENT% |\n";
+echo "| PREVIOUS DNC         | $prdnc | $Uprdnc | $UprdncPERCENT% |\n";
+echo "| PREVIOUS SALE        | $psale | $Upsale | $UpsalePERCENT% |\n";
+echo "| ARCHIVE ONLY         | $archv | $Uarchv | $UarchvPERCENT% |\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "|               TOTALS:| $total | $Utotal |\n";
+echo "+----------------------+---------+---------+\n";
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_IVRstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_IVRstats.php new file mode 100644 index 00000000..9a398631 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_IVRstats.php @@ -0,0 +1,683 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81026-2026 - First build +# 81107-0341 - Added time range and option and 15-minute increment graph +# 81107-1148 - Added average times and totals +# 81108-0922 - Added no-callerID and unique caller counts +# 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "IVR Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Zeitraum:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Inbound Gruppen: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ÄNDERN Sie | "; +echo "REPORTS | "; +echo "GENAUERER REPORT \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "Wählen Sie eine IM-Gruppe und Zeitraum oberhalb und klicken Sie auf Senden\n";
+	}
+
+else
+	{
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
+
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
+
+	##### Grab all records for the IVR for the specified time period
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
+		}
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
+		{
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
+		else
+			{
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			}
+		$p++;
+		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT GESAMTANRUFEINTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
+	else
+		{
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
+		}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- TIME STATS\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
+		}
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
+		{
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "DIAGRAMM IN 15 MINUZIÖSEN STUFENSPRÜNGEN VON GESAMTANRUFEN TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
+	}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_OUTBOUNDsummary_interval.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +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; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_VDADstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_VDADstats.php new file mode 100644 index 00000000..51c35cc8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_VDADstats.php @@ -0,0 +1,1412 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 60619-1718 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 61215-1139 - Added drop percentage of answered and round-2 decimal +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80620-0031 - Fixed human answered calculation for drop perfentage +# 80709-0230 - Added time stats to call statuses +# 80717-2118 - Added calls/hour out of agent login time in status summary +# 80722-2049 - Added Status Category stats +# 81109-2341 - Added Productivity Rating +# 90225-1140 - Changed to multi-campaign capability +# 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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); + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} + $i++; + } + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +?> + + + + + +\n"; +echo "Outbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Termine:
"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Kampagnen:
"; +echo "\n"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($group[0]) > 1) + { + echo " ÄNDERN Sie | \n"; + echo " REPORTS \n"; + } +else + { + echo " CAMPAIGNS | \n"; + echo " REPORTS \n"; + } +echo "
"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n\n";
+	echo "WÄHLEN Sie BITTE Eine KAMPAGNE Vor UND DATUM OBEN UND KLICKEN REICHTEin\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+
+	$OUToutput = '';
+	$OUToutput .= "Outbound Calling Stats                             $NOW_TIME\n";
+
+	$OUToutput .= "\n";
+	$OUToutput .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+	$OUToutput .= "---------- TOTALS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcallsRAW = $row[0];
+	$TOTALsec =		$row[1];
+	$inTOTALcallsRAW=0;
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$TOTALdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inTOTALcallsRAW =	$y;
+		$TOTALsec = ($TOTALsec + $inTOTALsec);
+		$inTOTALcalls =	sprintf("%10s", $inTOTALcallsRAW);
+		}
+
+	$TOTALcalls =	sprintf("%10s", $TOTALcallsRAW);
+	if ( ($row[0] < 1) or ($TOTALsec < 1) )
+		{$average_call_seconds = '         0';}
+	else
+		{
+		$average_call_seconds = ($TOTALsec / $TOTALcallsRAW);
+		$average_call_seconds = round($average_call_seconds, 2);
+		$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+		}
+
+	$OUToutput .= "Gesamtanrufe gesetzt von dieser Kampagne:                       $TOTALcalls\n";
+	$OUToutput .= "Durchschnittliche Anruf-Länge für alle benennt in den Sekunden: $average_call_seconds\n";
+	if (eregi("YES",$include_rollover))
+		{$OUToutput .= "Calls that went to rollover In-Gruppe:        $inTOTALcalls\n";}
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- MENSCHLICHE ANTWORTS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN($customer_interactive_statuses) $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$CIcallsRAW =	$row[0];
+	$CIsec =		$row[1];
+
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and vicidial_closer_log.status IN($customer_interactive_statuses) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$CIdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inCIsec =	($inCIsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inCIcallsRAW =	$y;
+		$CIsec = ($CIsec + $inCIsec);
+		$CIcallsRAW = ($CIcallsRAW + $inCIcallsRAW);
+		}
+
+	$CIcalls =	sprintf("%10s", $CIcallsRAW);
+	if ( ($CIcallsRAW < 1) or ($CIsec < 1) )
+		{$average_ci_seconds = '         0';}
+	else
+		{
+		$average_ci_seconds = ($CIsec / $CIcallsRAW);
+		$average_ci_seconds = round($average_ci_seconds, 2);
+		$average_ci_seconds =	sprintf("%10s", $average_ci_seconds);
+		}
+	$CIsec =		sec_convert($CIsec,'H'); 
+
+
+	$OUToutput .= "Total Human Antworted calls for this Kampagne: $CIcalls\n";
+	$OUToutput .= "Average Call Length for all HA in seconds:    $average_ci_seconds     Total Time: $CIsec\n";
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- DROPS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status='DROP' and (length_in_sec <= 6000 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$DROPcalls =	sprintf("%10s", $row[0]);
+	$DROPcallsRAW =	$row[0];
+	$DROPseconds =	$row[1];
+
+
+	# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+	$q=0;
+	$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+
+	$stmt = "SELECT distinct status,status_name,human_answered,category from vicidial_campaign_statuses $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+	$camp_ANS_STAT_SQL = eregi_replace(",$",'',$camp_ANS_STAT_SQL);
+
+
+	$stmt="select count(*) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN($camp_ANS_STAT_SQL);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$ANTWORTcalls =	$row[0];
+
+	if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+		{$DROPpercent = '0';}
+	else
+		{
+		$DROPpercent = (($DROPcallsRAW / $TOTALcalls) * 100);
+		$DROPpercent = round($DROPpercent, 2);
+		}
+
+	if ( ($DROPcalls < 1) or ($ANTWORTcalls < 1) )
+		{$DROPANTWORTpercent = '0';}
+	else
+		{
+		$DROPANTWORTpercent = (($DROPcallsRAW / $ANTWORTcalls) * 100);
+		$DROPANTWORTpercent = round($DROPANTWORTpercent, 2);
+		}
+
+	if ( ($DROPseconds < 1) or ($DROPcallsRAW < 1) )
+		{$average_hold_seconds = '         0';}
+	else
+		{
+		$average_hold_seconds = ($DROPseconds / $DROPcallsRAW);
+		$average_hold_seconds = round($average_hold_seconds, 2);
+		$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+		}
+
+	$OUToutput .= "Total Outbound DROP Calls:                    $DROPcalls  $DROPpercent%\n";
+	$OUToutput .= "Percent of DROP Calls taken out of Answers:   $DROPcalls / $ANTWORTcalls  $DROPANTWORTpercent%\n";
+
+	if (eregi("YES",$include_rollover))
+		{
+		if ( ($DROPcalls < 1) or ($CIcallsRAW < 1) )
+			{$inDROPANTWORTpercent = '0';}
+		else
+			{
+			$inDROPANTWORTpercent = (($DROPcallsRAW / $CIcallsRAW) * 100);
+			$inDROPANTWORTpercent = round($inDROPANTWORTpercent, 2);
+			}
+
+		$OUToutput .= "Percent of DROP/Answer Calls with Rollover:   $DROPcalls / $CIcallsRAW  $inDROPANTWORTpercent%\n";
+		}
+
+	$OUToutput .= "Durchschnittliche Länge für TROPFEN Anrufe in den Sekunden:     $average_hold_seconds\n";
+
+	$stmt = "select closer_campaigns from vicidial_campaigns $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	$ccamps_to_print = mysql_num_rows($rslt);
+	$c=0;
+	while ($ccamps_to_print > $c)
+		{
+		$row=mysql_fetch_row($rslt);
+		$closer_campaigns = $row[0];
+		$closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns);
+		$closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
+		$closer_campaignsSQL .= "'$closer_campaigns',";
+		$c++;
+		}
+	$closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL);
+
+	$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($closer_campaignsSQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$TOTALanswers = ($row[0] + $ANTWORTcalls);
+
+
+	$stmt = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$agent_non_pause_sec = $row[0];
+
+	if ($agent_non_pause_sec > 0)
+		{
+		$AVG_ANTWORTagent_non_pause_sec = (($TOTALanswers / $agent_non_pause_sec) * 60);
+		$AVG_ANTWORTagent_non_pause_sec = round($AVG_ANTWORTagent_non_pause_sec, 2);
+		}
+	else
+		{$AVG_ANTWORTagent_non_pause_sec=0;}
+	$AVG_ANTWORTagent_non_pause_sec = sprintf("%10s", $AVG_ANTWORTagent_non_pause_sec);
+
+	$OUToutput .= "Productivity Rating:                          $AVG_ANTWORTagent_non_pause_sec\n";
+
+
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "----------AUTO-DIAL KEINE ANTWORTEN\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN('NA','B') and (length_in_sec <= 60 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$NAcalls =	sprintf("%10s", $row[0]);
+	if ( ($NAcalls < 1) or ($TOTALcalls < 1) )
+		{$NApercent = '0';}
+	else
+		{
+		$NApercent = (($NAcalls / $TOTALcalls) * 100);
+		$NApercent = round($NApercent, 2);
+		}
+
+	if ( ($row[0] < 1) or ($row[1] < 1) )
+		{$average_na_seconds = '         0';}
+	else
+		{
+		$average_na_seconds = ($row[1] / $row[0]);
+		$average_na_seconds = round($average_na_seconds, 2);
+		$average_na_seconds =	sprintf("%10s", $average_na_seconds);
+		}
+
+	$OUToutput .= "Total NA calls -Busy,Disconnect,RingNoAnswer: $NAcalls  $NApercent%\n";
+	$OUToutput .= "Durchschnittliche Anruf-Länge für Na benennt in den Sekunden:   $average_na_seconds\n";
+
+
+	##############################
+	#########  CALL HANGUP GRUND STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CALL HANGUP GRUND STATS\n";
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| HANGUP REASON        | CALLS      |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+	$stmt="select count(*),term_reason from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by term_reason;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$reasons_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $reasons_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$TOTALcalls = ($TOTALcalls + $row[0]);
+
+		$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+		$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+		if (ereg("NONE",$reason))	{$reason = 'NO ANTWORT           ';}
+		if (ereg("CALLER",$reason)) {$reason = 'CUSTOMER            ';}
+
+		$OUToutput .= "| $reason | $REASONcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| TOTAL:               | $TOTALcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+
+
+	##############################
+	#########  CALL STATUS STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CALL STATUS STATS\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+----------------------------------+----------+\n";
+	$OUToutput .= "|        |                      |                      |            |      CALL TIME                   |MITTELTIME|\n";
+	$OUToutput .= "| STATUS | DESCRIPTION          | KATEGORIE             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|CALLS/HOUR|\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+
+	$campaignSQL = "$group_SQLand";
+	if (eregi("YES",$include_rollover))
+		{$campaignSQL = "$both_group_SQLand";}
+	## Pull the count of agent seconds for the total tally
+	$stmt="SELECT sum(pause_sec + wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $campaignSQL and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000;";
+	$rslt=mysql_query($stmt, $link);
+	$Ctally_to_print = mysql_num_rows($rslt);
+	if ($Ctally_to_print > 0) 
+		{
+		$rowx=mysql_fetch_row($rslt);
+		$AGENTsec = "$rowx[0]";
+		}
+	if ($DB) {$OUToutput .= "$AGENTsec|$Ctally_to_print|$stmt\n";}
+
+
+	## get counts and time totals for all statuses in this campaign
+	$rollover_exclude_dropSQL='';
+	if (eregi("YES",$include_rollover))
+		{$rollover_exclude_dropSQL = "and status NOT IN('DROP')";}
+	$stmt="select count(*),status,sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $rollover_exclude_dropSQL $group_SQLand group by status;";
+
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$STATUScountARY[$i] =	$row[0];
+		$RAWstatusARY[$i] =		$row[1];
+		$RAWhoursARY[$i] =		$row[2];
+		$statusSQL .=			"'$row[1]',";
+		$i++;
+		}
+	if (eregi("YES",$include_rollover))
+		{
+		if (strlen($statusSQL) < 2)
+			{$statusSQL = "''";}
+		else
+			{
+			$statusSQL = eregi_replace(",$",'',$statusSQL);
+			}
+		$stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status NOT IN($statusSQL) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		$inS_statuses_to_print = mysql_num_rows($rslt);
+		$n=0;
+		while ($inS_statuses_to_print > $n) 
+			{
+			$rowx=mysql_fetch_row($rslt);
+			$STATUScountARY[$i] =	0;
+			$RAWstatusARY[$i] =		$rowx[0];
+			$RAWhoursARY[$i] =		0;
+			$i++;
+			$n++;
+			$statuses_to_print++;
+			}
+		}
+
+
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$STATUScount = $STATUScountARY[$i];
+		$RAWstatus = $RAWstatusARY[$i];
+		$RAWhours = $RAWhoursARY[$i];
+
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status='$RAWstatus' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			$in_statuses_to_print = mysql_num_rows($rslt);
+			if ($in_statuses_to_print > 0) 
+				{
+				$rowx=mysql_fetch_row($rslt);
+				$inSTATUScount =	$rowx[0];
+				$inRAWhours =		$rowx[1];
+
+				$STATUScount = ($STATUScount + $inSTATUScount);
+				$RAWhours = ($RAWhours + $inRAWhours);
+				}
+			}
+
+		$r=0;
+		while ($r < $statcats_to_print)
+			{
+			if ($statcat_list[$RAWstatus] == "$vsc_id[$r]")
+				{
+				$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+				}
+			$r++;
+			}
+		if ($AGENTsec < 1) {$AGENTsec=1;}
+		$TOTALcalls =	($TOTALcalls + $STATUScount);
+		$TOTALtimeS =	($TOTALtimeS + $RAWhours);
+		$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );
+			$STATUSrate =	sprintf("%.2f", $STATUSrate);
+		$AGENTrate =	($STATUScount / ($AGENTsec / 3600) );
+			$AGENTrate =	sprintf("%.2f", $AGENTrate);
+
+		$STATUShours =		sec_convert($RAWhours,'H'); 
+		$STATUSavg_sec =	($RAWhours / $STATUScount); 
+		$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+		$STATUScount =	sprintf("%10s", $STATUScount);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+		$status =	sprintf("%-6s", $RAWstatus);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+		$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+		$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+		$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+		$AGENTrate =	sprintf("%8s", $AGENTrate);while(strlen($AGENTrate)>8) {$AGENTrate = substr("$AGENTrate", 0, -1);}
+
+		if ($non_latin < 1)
+			{
+			$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+			while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+			$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+			while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+			}
+		else
+			{
+			$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+			while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+			$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+			while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+			}
+
+		$OUToutput .= "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate | $AGENTrate |\n";
+
+		$i++;
+		}
+
+	if ($TOTALcalls < 1)
+		{
+		$TOTALhours =	'0:00:00';
+		$TOTALavg =		'0:00:00';
+		$TOTALrate =	'0.00';
+		}
+	else
+		{
+		$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );
+			$TOTALrate =	sprintf("%.2f", $TOTALrate);
+		$aTOTALrate =	($TOTALcalls / ($AGENTsec / 3600) );
+			$aTOTALrate =	sprintf("%.2f", $aTOTALrate);
+
+		$aTOTALhours =		sec_convert($AGENTsec,'H'); 
+		$TOTALhours =		sec_convert($TOTALtimeS,'H'); 
+		$TOTALavg_sec =		($TOTALtimeS / $TOTALcalls);
+		$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+		}
+	$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+	$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+	$aTOTALhours =	sprintf("%10s", $aTOTALhours);while(strlen($aTOTALhours)>10) {$aTOTALhours = substr("$aTOTALhours", 0, -1);}
+	$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+	$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+	$aTOTALrate =	sprintf("%8s", $aTOTALrate);while(strlen($aTOTALrate)>8) {$aTOTALrate = substr("$aTOTALrate", 0, -1);}
+
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+	$OUToutput .= "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |          |\n";
+#	$OUToutput .= "|   AGENT TIME                                                      | $aTOTALhours |                     | $aTOTALrate |\n";
+	$OUToutput .= "+------------------------------------------------------+------------+------------+---------------------+----------+\n";
+
+
+
+
+
+	##############################
+	#########  LISTE IDENTIFIKATION BREAKDOWN STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- LISTE IDENTIFIKATION STATS\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| LIST                                     | CALLS      |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+	$stmt="select count(*),list_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by list_id;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$listids_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$LISTIDcalls[$i] =	$row[0];
+		$LISTIDlists[$i] =	$row[1];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$stmt="select list_name from vicidial_lists where list_id='$LISTIDlists[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$list_name_to_print = mysql_num_rows($rslt);
+		if ($list_name_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$LISTIDlist_names[$i] =	$row[0];
+			}
+
+		$TOTALcalls = ($TOTALcalls + $LISTIDcalls[$i]);
+
+		$LISTIDcount =	sprintf("%10s", $LISTIDcalls[$i]);while(strlen($LISTIDcount)>10) {$LISTIDcount = substr("$LISTIDcount", 0, -1);}
+		$LISTIDname =	sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
+
+		$OUToutput .= "| $LISTIDname | $LISTIDcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| TOTAL:                                   | $TOTALcalls |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+
+
+
+
+	if ( ($carrier_logging_active > 0) and ($carrier_stats == 'YES') )
+		{
+		##############################
+		#########  STATUS KATEGORIE STATS
+
+		$OUToutput .= "\n";
+		$OUToutput .= "---------- CARRIER CALL STATUSES\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| STATUS               | CALLS      |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+
+		## get counts and time totals for all statuses in this campaign
+		$stmt="select dialstatus,count(*) from vicidial_carrier_log vcl,vicidial_log vl where vcl.uniqueid=vl.uniqueid and vcl.call_date > \"$query_date_BEGIN\" and vcl.call_date < \"$query_date_END\" and vl.call_date > \"$query_date_BEGIN\" and vl.call_date < \"$query_date_END\" $group_SQLand group by dialstatus order by dialstatus;";
+		if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$carrierstatuses_to_print = mysql_num_rows($rslt);
+		$i=0;
+		while ($i < $carrierstatuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$TOTCARcalls = ($TOTCARcalls + $row[1]);
+			$CARstatus =	sprintf("%-20s", $row[0]); while(strlen($CARstatus)>20) {$CARstatus = substr("$CARstatus", 0, -1);}
+			$CARcount =		sprintf("%10s", $row[1]); while(strlen($CARcount)>10) {$CARcount = substr("$CARcount", 0, -1);}
+
+			$OUToutput .= "| $CARstatus | $CARcount |\n";
+
+			$i++;
+			}
+
+		$TOTCARcalls =	sprintf("%10s", $TOTCARcalls); while(strlen($TOTCARcalls)>10) {$TOTCARcalls = substr("$TOTCARcalls", 0, -1);}
+
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| TOTAL                | $TOTCARcalls |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		}
+
+
+	##############################
+	#########  STATUS KATEGORIE STATS
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CUSTOM STATUS KATEGORIE STATS\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| KATEGORIE             | CALLS      | DESCRIPTION                    |\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+
+
+	$TOTCATcalls=0;
+	$r=0;
+	while ($r < $statcats_to_print)
+		{
+		if ($vsc_id[$r] != 'UNDEFINED')
+			{
+			$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+			$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+			$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+			$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+			$OUToutput .= "| $category | $CATcount | $CATname |\n";
+			}
+		$r++;
+		}
+
+	$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| TOTAL                | $TOTCATcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+	##############################
+	#########  USER STATS
+
+	$TOTagents=0;
+	$TOTcalls=0;
+	$TOTtime=0;
+	$TOTavg=0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- MITTELSTATS\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| MITTEL                   | CALLS      | TIME H:M:S |AVERAGE |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\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_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$RAWuser[$i] =			$row[0];
+		$RAWfull_name[$i] =		$row[1];
+		$RAWuser_calls[$i] =	$row[2];
+		$RAWuser_talk[$i] =		$row[3];
+		$RAWuser_average[$i] =	$row[4];
+
+		$TOTcalls = ($TOTcalls + $row[2]);
+		$TOTtime = ($TOTtime + $row[3]);
+
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$user =	sprintf("%-6s", $RAWuser[$i]);while(strlen($user)>6) {$user = substr("$user", 0, -1);}
+		if ($non_latin < 1)
+			{
+			$full_name =	sprintf("%-15s", $RAWfull_name[$i]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+			}
+		else
+			{
+			$full_name =	sprintf("%-45s", $RAWfull_name[$i]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$length_in_secZ=0;
+			$queue_secondsZ=0;
+			$agent_alert_delayZ=0;
+			$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and user='$RAWuser[$i]' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_printZ = mysql_num_rows($rslt);
+			$y=0;
+			while ($y < $INallcalls_to_printZ)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				$length_in_secZ = $row[0];
+				$queue_secondsZ = $row[1];
+				$agent_alert_delayZ = $row[2];
+
+				$CIdelay =		round($agent_alert_delayZ / 1000);
+				$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+				if ($thiscallsec < 0)
+					{$thiscallsec = 0;}
+				$inCIsec =	($inCIsec + $thiscallsec);	
+
+				$y++;
+				}
+
+			$inCIcallsRAW =	$y;
+			$RAWuser_talk[$i] = ($RAWuser_talk[$i] + $inCIsec);
+			$RAWuser_calls[$i] = ($RAWuser_calls[$i] + $inCIcallsRAW);
+
+			$TOTcalls = ($TOTcalls + $inCIcallsRAW);
+			$TOTtime = ($TOTtime + $inCIsec);
+			}
+
+		$USERcalls =	sprintf("%10s", $RAWuser_calls[$i]);
+		$USERtotTALK =	$RAWuser_talk[$i];
+		$USERavgTALK =	round($RAWuser_talk[$i] / $RAWuser_calls[$i]);
+
+		$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+		$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+		$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+		$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+		$OUToutput .= "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+		$i++;
+		}
+
+	$rawTOTtime = $TOTtime;
+
+	if (!$TOTcalls) {$TOTcalls = 1;}
+	$TOTavg = ($TOTtime / $TOTcalls);
+
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+	$TOTagents =		sprintf("%10s", $i);
+	$TOTcalls =			sprintf("%10s", $TOTcalls);
+	$TOTtime =			sprintf("%8s", $TOTtime);
+	$TOTavg =			sprintf("%6s", $TOTavg);
+
+	$stmt="select avg(wait_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$AVGwait = $row[0];
+	$AVGwait_MS =	sec_convert($AVGwait,'H'); 
+	$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| TOTAL Bevollmächtigte: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| Average Wait time between calls                      $AVGwait |\n";
+	$OUToutput .= "+-------------------------------------------------------------+\n";
+
+
+
+	if ($costformat > 0)
+		{
+		$stmt="select campaign_id,phone_number,length_in_sec from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user=vicidial_users.user;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$allcalls_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $allcalls_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			if ($print_calls > 0)
+				{echo "$row[0]\t$row[1]\t$row[2]\n";}
+			$tempTALK = ($tempTALK + $row[2]);
+			$w++;
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select campaign_id,phone_number,length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_print = mysql_num_rows($rslt);
+			$w=0;
+			while ($w < $INallcalls_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				if ($print_calls > 0)
+				{	echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\n";}
+				$newTALK = ($row[2] - $row[3] - ($row[4] / 1000) );
+				if ($newTALK < 0) {$newTALK = 0;}
+				$tempTALK = ($tempTALK + $newTALK);
+				$w++;
+				}
+			}
+		$tempTALKmin = ($tempTALK  / 60);
+		if ($print_calls > 0)
+			{echo "$w\t$tempTALK\t$tempTALKmin\n";}
+
+		echo "
\n"; + $rawTOTtalk_min = round($tempTALK / 60); + $outbound_cost = ($rawTOTtalk_min * $outbound_rate); + $outbound_cost = sprintf("%8.2f", $outbound_cost); + + echo "OUTBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$outbound_rate = \$$outbound_cost\n"; + + exit; + } + + + echo "$OUToutput"; + + + + + if ($bottom_graph == 'YES') + { + ############################## + ######### TIME STATS + + echo "\n"; + echo "---------- TIME STATS\n"; + + echo "\n"; + + $hi_hour_count=0; + $last_full_record=0; + $i=0; + $h=0; + 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' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + $h++; + } + + if ($hi_hour_count < 1) + {$hour_multiplier = 0;} + else + { + $hour_multiplier = (100 / $hi_hour_count); + #$hour_multiplier = round($hour_multiplier, 0); + } + + echo "\n"; + echo "DIAGRAMM IN 15 MINUZIÖSEN STUFENSPRÜNGEN DER GESAMTANRUFE GESETZTVON DIESER KAMPAGNE\n"; + + $k=1; + $Mk=0; + $call_scale = '0'; + while ($k <= 102) + { + if ($Mk >= 5) + { + $Mk=0; + if ( ($k < 1) or ($hour_multiplier <= 0) ) + {$scale_num = 100;} + else + { + $scale_num=($k / $hour_multiplier); + $scale_num = round($scale_num, 0); + } + $LENscale_num = (strlen($scale_num)); + $k = ($k + $LENscale_num); + $call_scale .= "$scale_num"; + } + else + { + $call_scale .= " "; + $k++; $Mk++; + } + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + #echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | DROPS | TOTAL |\n"; + echo "| HOUR |$call_scale| DROPS | TOTAL |\n"; + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + $ZZ = '00'; + $i=0; + $h=4; + $hour= -1; + $no_lines_yet=1; + + while ($i <= 96) + { + $char_counter=0; + $time = ' '; + if ($h >= 4) + { + $hour++; + $h=0; + if ($hour < 10) {$hour = "0$hour";} + $time = "+$hour$ZZ+"; + } + if ($h == 1) {$time = " 15 ";} + if ($h == 2) {$time = " 30 ";} + if ($h == 3) {$time = " 45 ";} + $Ghour_count = $hour_count[$i]; + if ($Ghour_count < 1) + { + if ( ($no_lines_yet) or ($i > $last_full_record) ) + { + $do_nothing=1; + } + else + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + echo "|$time|"; + $k=0; while ($k <= 102) {echo " "; $k++;} + echo "| $hour_count[$i] |\n"; + } + } + else + { + $no_lines_yet=0; + $Xhour_count = ($Ghour_count * $hour_multiplier); + $Yhour_count = (99 - $Xhour_count); + + $Gdrop_count = $drop_count[$i]; + if ($Gdrop_count < 1) + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;} + echo "*X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 101) {echo " "; $char_counter++;} + echo "| 0 | $hour_count[$i] |\n"; + + } + else + { + $Xdrop_count = ($Gdrop_count * $hour_multiplier); + + # if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);} + + $XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 ); + + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + $drop_count[$i] = sprintf("%-5s", $drop_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xdrop_count) {echo ">"; $k++; $char_counter++;} + echo "D"; $char_counter++; + $k=0; while ($k <= $XXhour_count) {echo "*"; $k++; $char_counter++;} + echo "X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 102) {echo " "; $char_counter++;} + echo "| $drop_count[$i] | $hour_count[$i] |\n"; + } + } + + + $i++; + $h++; + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + ### END bottom graph + } + + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\nRun Time: $RUNtime seconds\n"; + } + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_VICIDIAL_hopperlist.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_VICIDIAL_hopperlist.php new file mode 100644 index 00000000..041fd060 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_VICIDIAL_hopperlist.php @@ -0,0 +1,167 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1654 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70115-1614 - Added ALT field for vicidial_hopper alt_dial column +# 71029-0852 - Added list_id to the output +# 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1' and modify_campaigns='1';"; + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.10.15';} + +$stmt="select campaign_id,campaign_name from vicidial_campaigns order by campaign_id;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $campaign_id[$i] =$row[0]; + $campaign_name[$i] =$row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Zufuhrbehälter-Liste Report\n"; +echo "
\n"; +#echo "\n"; +#echo "\n"; +echo "\n"; +echo "\n"; +echo "           ÄNDERN Sie \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "WÄHLEN Sie BITTE Eine KAMPAGNE OBEN Vor UND KLICKEN REICHT Ein\n";
+	}
+
+else
+	{
+	echo "Gegenwärtige Zufuhrbehälter-Lebhaftliste                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALS\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Gesamtleitungen im Zufuhrbehälter im Augenblick:       $TOTALcalls\n";
+
+
+	##############################
+	#########  LEAD STATS
+
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |PRIORITY| LEAD ID   | LISTE IDENTIFIKATION    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
+
+
+?>
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_admin_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_admin_log_display.php new file mode 100644 index 00000000..176a50b9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_admin_log_display.php @@ -0,0 +1,118 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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_admin_log_display.php +# +# CHANGES +# 50325-0932 - First build +# 51123-1443 - removed globals=on requirement +# 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'; +$build = '60620-1044'; + +$STARTtime = date("U"); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 8 and view_reports='1';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "VICIDIAL ADMIN LOG DISPLAY"; +echo "\n"; + +# Fri, 25 Mar 2005 + +$DAY_DATE = date("j"); +if ($DAY_DATE < 10) +# {$GREP_DATE = date("D, j M Y");} + {$GREP_DATE = date("D, 0j M Y");} +else + {$GREP_DATE = date("D, j M Y");} + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!$query_date) {$query_date = $GREP_DATE;} + +$Gquery_date = eregi_replace(" ",'\ ',$query_date); +echo "\n"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+echo "VICIDIAL Änderung der Registrierung ADMIN                             $NOW_TIME\n";
+
+#passthru("grep $Gquery_date /home/www/htdocs/vicidial/admin_changes_log.txt");
+passthru("grep $Gquery_date $WeBServeRRooT/vicidial/admin_changes_log.txt");
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_days_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_days_detail.php new file mode 100644 index 00000000..aaa22cb5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_days_detail.php @@ -0,0 +1,602 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-2202 - First build +# 90225-1051 - Added CSV download option +# 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&shift=$shift&DB=$DB&user=$user$groupQS"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Tage Status Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n";
+	echo "Bitte wählen Sie einen Benutzernamen und Datum-Zeit oben ein und klicken dann SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Tage Status Report: $user                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- MITTELDetails -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Tage Status Report: $user                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$dates='-';
+	$datesARY[0]='';
+	$date_namesARY[0]='';
+	$k=0;
+
+	$stmt="select date_format(event_time, '%Y-%m-%d') as date,count(*) as calls,status 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 vicidial_agent_log.user='$user' $group_SQL $user_group_SQL group by date,status order by date,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[1] > 0) and (strlen($row[2]) > 0) )
+			{
+			$date[$i] =			$row[0];
+			$calls[$i] =		$row[1];
+			$status[$i] =		$row[2];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$date[$i]-", $dates))
+				{
+				$dates .= "$date[$i]-";
+				$datesARY[$k] = $date[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| DATE       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "DATE,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Sdate=$datesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+	#			if ( (eregi("$date[$i]", $Sdate)) and ($Sstatus=="$status[$i]") )
+				if ( ($Sdate=="$date[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWdate = $Sdate;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		$Sdate =		sprintf("%-10s", $Sdate);
+			while(strlen($Suser)>10) {$Suser = substr("$Sdate", 0, -1);}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sdate | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWdate,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdate) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			{
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+			}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+
+	if ($file_download < 1)
+		{
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| TOTALS     | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + + +if ($file_download > 0) + { + $US='_'; + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_DAYS_$user$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + + + +echo "
\n"; +echo "
Termine:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Kampagnen:
"; +echo "\n"; +echo "
User:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($user) > 1) + { + echo " DOWNLOAD | \n"; + echo " USER | \n"; + echo " USER STATS | \n"; + } +else + {echo " BENUTZER | \n";} +echo "REPORTS \n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "              \n";}
+	else
+		{
+		echo "              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 120 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_performance.php
new file mode 100644
index 00000000..28dca6fa
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_performance.php
@@ -0,0 +1,258 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1711 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars
+# 90508-0644 - Changed to PHP long tags
+#
+
+require("dbconnect.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["group"]))				{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))		{$group=$_POST["group"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))		{$query_date=$_POST["query_date"];}
+if (isset($_GET["shift"]))				{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))		{$shift=$_POST["shift"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))				{$SUBMIT=$_GET["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 and view_reports='1';";
+	if ($DB) {echo "|$stmt|\n";}
+	if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	$row=mysql_fetch_row($rslt);
+	$auth=$row[0];
+
+  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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+?>
+
+
+
+
+
+\n";
+echo "VICIDIAL: Agent Performance\n";
+echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           ÄNDERN Sie | REPORTS \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A BEDIENERAND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+echo " NOTE: stats taken from 6 hour shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = "$query_date 08:45:00";   
+	$query_date_END = "$query_date 15:33:00";
+	$time_BEGIN = "08:45:00";   
+	$time_END = "15:33:00";
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = "$query_date 15:33:00";   
+	$query_date_END = "$query_date 23:15:00";
+	$time_BEGIN = "15:33:00";   
+	$time_END = "23:15:00";
+	}
+
+echo "VICIDIAL: Agent Performance                             $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Details -------------\n\n";
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "| USER NAME       | ID       | CALLS  | TALK   | TALKAVG| A    | B    | DC   | DNC  | N    | NI   | SALE |\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='" . mysql_real_escape_string($group) . "' group by full_name order by calls desc limit 1000;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$TOTcalls=($TOTcalls + $row[0]);
+	$TOTtotTALK=($TOTtotTALK + $row[1]);
+	$calls[$i] =	sprintf("%-6s", $row[0]);
+
+	if ($non_latin < 1)
+	{
+   	 $full_name[$i]=	sprintf("%-15s", $row[2]); 
+	 while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}
+
+	 $user[$i] =		sprintf("%-6s", $row[3]);
+        while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+       }
+	else
+	{	
+        $full_name[$i]=	sprintf("%-45s", $row[2]); 
+	 while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}
+
+ 	 $user[$i] =		sprintf("%-18s", $row[3]);
+	 while(mb_strlen($user[$i],'utf-8')>6) {$user[$i] = mb_substr("$user[$i]", 0, -1,'utf-8');}
+	}
+
+	$user[$i] =		sprintf("%-8s", $row[3]);
+	$USERtotTALK =	$row[1];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_M = ($USERtotTALK / 60);
+	$USERtotTALK_M = round($USERtotTALK_M, 2);
+	$USERtotTALK_M_int = intval("$USERtotTALK_M");
+	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
+	$USERtotTALK_S = ($USERtotTALK_S * 60);
+	$USERtotTALK_S = round($USERtotTALK_S, 0);
+	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
+	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
+	$pfUSERtotTALK_MS[$i] =		sprintf("%6s", $USERtotTALK_MS);
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$pfUSERavgTALK_MS[$i] =		sprintf("%6s", $USERavgTALK_MS);
+	$i++;
+	}
+
+$k=0;
+while($k < $i)
+	{
+	$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='" . mysql_real_escape_string($group) . "' group by status;";
+	if ($non_latin > 0)
+	{
+	$rslt=mysql_query("SET NAMES 'UTF8'");
+	}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$m=0;
+	while ($m < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($row[1] == 'A') {$ctA[$k]=sprintf("%-4s", $row[0]);		$TOT_A = ($TOT_A + $row[0]);}
+		if ($row[1] == 'B') {$ctB[$k]=sprintf("%-4s", $row[0]);		$TOT_B = ($TOT_B + $row[0]);}
+		if ($row[1] == 'DC') {$ctDC[$k]=sprintf("%-4s", $row[0]);	$TOT_DC = ($TOT_DC + $row[0]);}
+		if ($row[1] == 'DNC') {$ctDNC[$k]=sprintf("%-4s", $row[0]);	$TOT_DNC = ($TOT_DNC + $row[0]);}
+		if ($row[1] == 'N') {$ctN[$k]=sprintf("%-4s", $row[0]);		$TOT_N = ($TOT_N + $row[0]);}
+		if ($row[1] == 'NI') {$ctNI[$k]=sprintf("%-4s", $row[0]);	$TOT_NI = ($TOT_NI + $row[0]);}
+		if (($row[1] == 'SALE') || ($row[1] == 'XFER') ) {$ctSALE[$k]=sprintf("%-4s", $row[0]);	$TOT_SALE = ($TOT_SALE + $row[0]);}
+		$m++;
+		}
+	echo "| $full_name[$k] | $user[$k] | $calls[$k] | $pfUSERtotTALK_MS[$k] | $pfUSERavgTALK_MS[$k] | $ctA[$k] | $ctB[$k] | $ctDC[$k] | $ctDNC[$k] | $ctN[$k] | $ctNI[$k] | $ctSALE[$k] |\n";
+
+
+
+	$k++;
+	}
+
+	$TOTcalls =	sprintf("%-7s", $TOTcalls);
+
+	$TOTtotTALK_M = ($TOTtotTALK / 60);
+	$TOTtotTALK_M = round($TOTtotTALK_M, 2);
+	$TOTtotTALK_M_int = intval("$TOTtotTALK_M");
+	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
+	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
+	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
+	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
+	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
+	$TOTtotTALK_MS =		sprintf("%7s", $TOTtotTALK_MS);
+		while(strlen($TOTtotTALK_MS)>7) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+
+	$TOT_A = sprintf("%-5s", $TOT_A);
+	$TOT_B = sprintf("%-5s", $TOT_B);
+	$TOT_DC = sprintf("%-5s", $TOT_DC);
+	$TOT_DNC = sprintf("%-5s", $TOT_DNC);
+	$TOT_N = sprintf("%-5s", $TOT_N);
+	$TOT_NI = sprintf("%-5s", $TOT_NI);
+	$TOT_SALE = sprintf("%-5s", $TOT_SALE);
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "|  TOTALS                    | $TOTcalls| $TOTtotTALK_MS|        | $TOT_A| $TOT_B| $TOT_DC| $TOT_DNC| $TOT_N| $TOT_NI| $TOT_SALE|\n";
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+
+echo "\n";
+
+}
+
+
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_performance_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_performance_detail.php
new file mode 100644
index 00000000..cb08d70d
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_performance_detail.php
@@ -0,0 +1,822 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 71119-2359 - First build
+# 71121-0144 - Replace existing AST_agent_performance_detail.php script with this one
+#            - Fixed zero division bug
+# 71218-1155 - added end_date for multi-day reports
+# 80428-0144 - UTF8 cleanup
+# 80712-1007 - tally bug fixes and time display change
+# 81030-0346 - Added pause code stats
+# 81030-1924 - Added total non-pause and total logged-in time to pause code section
+# 81108-0716 - fixed user same-name bug
+# 81110-0056 - fixed pause code display bug
+# 90310-2039 - Admin header
+# 90508-0644 - Changed to PHP long tags
+# 90523-0935 - Rewrite of seconds to minutes and hours conversion
+# 90717-1500 - Changed to be multi-campaign, multi-user-group select
+# 90908-1058 - Added DEAD time statistics
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+
+if (strlen($shift)<2) {$shift='ALL';}
+
+$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&group=$group&user_group=$user_group&shift=$shift&DB=$DB";
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} +?> + + + + + +\n"; +echo "Agent Performance Detail\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Termine:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Kampagnen:
"; +echo "\n"; +echo "
Benutzer-Gruppen:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "Bitte wählen Sie eine Kampagne und Datum-Zeit oben ein und klicken dann SUBMIT\n";
+echo " NOTE: stats taken from shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+else {$ugSQL='';}
+
+echo "Agent Performance Detail                        $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Details -------------\n\n";
+
+
+
+
+
+$statuses='-';
+$statusesTXT='';
+$statusesHEAD='';
+$statusesHTML='';
+$statusesARY[0]='';
+$j=0;
+$users='-';
+$usersARY[0]='';
+$user_namesARY[0]='';
+$k=0;
+
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_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 pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+#	$row[0] = ($row[0] - 1);	# subtract 1 for login/logout event compensation
+	
+	$calls[$i] =		$row[0];
+	$talk_sec[$i] =		$row[1];
+	$full_name[$i] =	$row[2];
+	$user[$i] =			$row[3];
+	$pause_sec[$i] =	$row[4];
+	$wait_sec[$i] =		$row[5];
+	$dispo_sec[$i] =	$row[6];
+	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
+	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+		{
+		$statusesTXT = sprintf("%8s", $status[$i]);
+		$statusesHEAD .= "----------+";
+		$statusesHTML .= " $statusesTXT |";
+		$statuses .= "$status[$i]-";
+		$statusesARY[$j] = $status[$i];
+		$j++;
+		}
+	if (!eregi("-$user[$i]-", $users))
+		{
+		$users .= "$user[$i]-";
+		$usersARY[$k] = $user[$i];
+		$user_namesARY[$k] = $full_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "CALL STATS BREAKDOWN:\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+while ($m < $k)
+	{
+	$Suser=$usersARY[$m];
+	$Sfull_name=$user_namesARY[$m];
+	$Stime=0;
+	$Scalls=0;
+	$Stalk_sec=0;
+	$Spause_sec=0;
+	$Swait_sec=0;
+	$Sdispo_sec=0;
+	$Sdead_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$Stalk_sec =	($Stalk_sec + $talk_sec[$i]);
+				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
+				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
+				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
+				$SstatusTXT = sprintf("%8s", $calls[$i]);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	$TOTcalls=($TOTcalls + $Scalls);
+	$TOTtime=($TOTtime + $Stime);
+	$TOTtotTALK=($TOTtotTALK + $Stalk_sec);
+	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
+		else {$Stalk_avg=0;}
+	if ( ($Scalls > 0) and ($Spause_sec > 0) ) {$Spause_avg = ($Spause_sec/$Scalls);}
+		else {$Spause_avg=0;}
+	if ( ($Scalls > 0) and ($Swait_sec > 0) ) {$Swait_avg = ($Swait_sec/$Scalls);}
+		else {$Swait_avg=0;}
+	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
+		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
+
+	$RAWuser = $Suser;
+	$RAWcalls = $Scalls;
+	$Scalls =	sprintf("%6s", $Scalls);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{	
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
+
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
+	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
+
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
+
+	$TOPsorted_output[$m] = $Toutput;
+
+	if ($stage == 'ID')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'CALLS')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'TIME')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if (!ereg("ID|TIME|CALLS",$stage))
+		{echo "$Toutput";}
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+if (ereg("ID|TIME|CALLS",$stage))
+	{
+	if (ereg("ID",$stage))
+		{sort($TOPsort, SORT_NUMERIC);}
+	if (ereg("TIME|CALLS",$stage))
+		{rsort($TOPsort, SORT_NUMERIC);}
+
+	$m=0;
+	while ($m < $k)
+		{
+		$sort_split = explode("-----",$TOPsort[$m]);
+		$i = $sort_split[1];
+		$sort_order[$m] = "$i";
+		echo "$TOPsorted_output[$i]";
+		$m++;
+		}
+	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $rows_to_print)
+		{
+		if ($Sstatus=="$status[$i]")
+			{
+			$Scalls =		($Scalls + $calls[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$SUMstatusTXT = sprintf("%8s", $Scalls);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
+
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
+
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
+
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
+
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+
+
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+echo "\n\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$sub_statuses='-';
+$sub_statusesTXT='';
+$sub_statusesHEAD='';
+$sub_statusesHTML='';
+$sub_statusesARY=$MT;
+$j=0;
+$PCusers='-';
+$PCusersARY=$MT;
+$PCuser_namesARY=$MT;
+$k=0;
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + 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 pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$subs_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $subs_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$PCfull_name[$i] =	$row[0];
+	$PCuser[$i] =		$row[1];
+	$PCpause_sec[$i] =	$row[2];
+	$sub_status[$i] =	$row[3];
+	$PCnon_pause_sec[$i] =	$row[4];
+
+#	echo "$sub_status[$i]|$PCpause_sec[$i]\n";
+#	if ( (!eregi("-$sub_status[$i]-", $sub_statuses)) and (strlen($sub_status[$i])>0) )
+	if (!eregi("-$sub_status[$i]-", $sub_statuses))
+		{
+		$sub_statusesTXT = sprintf("%8s", $sub_status[$i]);
+		$sub_statusesHEAD .= "----------+";
+		$sub_statusesHTML .= " $sub_statusesTXT |";
+		$sub_statuses .= "$sub_status[$i]-";
+		$sub_statusesARY[$j] = $sub_status[$i];
+		$j++;
+		}
+	if (!eregi("-$PCuser[$i]-", $PCusers))
+		{
+		$PCusers .= "$PCuser[$i]-";
+		$PCusersARY[$k] = $PCuser[$i];
+		$PCuser_namesARY[$k] = $PCfull_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "PAUSE CODE BREAKDOWN:\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+$Suser_ct = count($usersARY);
+$TOTtotNONPAUSE = 0;
+$TOTtotTOTAL = 0;
+
+while ($m < $k)
+	{
+	$d=0;
+	while ($d < $Suser_ct)
+		{
+		if ($usersARY[$d] === "$PCusersARY[$m]")
+			{$pcPAUSEtotal = $PAUSEtotal[$d];}
+		$d++;
+		}
+	$Suser=$PCusersARY[$m];
+	$Sfull_name=$PCuser_namesARY[$m];
+	$Spause_sec=0;
+	$Snon_pause_sec=0;
+	$Stotal_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$sub_statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $subs_to_print)
+			{
+			if ( ($Suser=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") )
+				{
+				$Spause_sec =	($Spause_sec + $PCpause_sec[$i]);
+				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
+				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
+
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
+
+				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
+	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
+
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
+
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
+
+	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
+
+	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
+
+	echo "$BOTTOMoutput";
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+#if (ereg("ID|TIME|CALLS",$stage))
+#	{
+#	$n=0;
+#	while ($n <= $m)
+#		{
+#		$i = $sort_order[$m];
+#		echo "$BOTTOMsorted_output[$i]";
+#		$m--;
+#		}
+#	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$TOTtotPAUSE=0;
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$sub_statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $subs_to_print)
+		{
+		if ($Sstatus=="$sub_status[$i]")
+			{
+			$Scalls =		($Scalls + $PCpause_sec[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
+
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
+
+		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+	$TOT_AGENTS = sprintf("%-4s", $m);
+
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
+
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
+
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+
+
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+echo "\n\n";
+
+}
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_status_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_status_detail.php new file mode 100644 index 00000000..0febd0b6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_status_detail.php @@ -0,0 +1,666 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-1554 - First build +# 90225-2252 - Added CSV download option +# 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Status Detail Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "Bitte wählen Sie eine Kampagne oder Benutzergruppe und Datum-Zeit oben ein und klicken dann SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Status Detail Report                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- MITTELDetails -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Status Detail Report                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$users='-';
+	$usersARY[0]='';
+	$user_namesARY[0]='';
+	$k=0;
+
+	$stmt="select count(*) as calls,full_name,vicidial_users.user,status 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 $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3])))
+			{
+			$calls[$i] =		$row[0];
+			$full_name[$i] =	$row[1];
+			$user[$i] =			$row[2];
+			$status[$i] =		$row[3];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$user[$i]-", $users))
+				{
+				$users .= "$user[$i]-";
+				$usersARY[$k] = $user[$i];
+				$user_namesARY[$k] = $full_name[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "| USER NAME       | ID       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Suser=$usersARY[$m];
+		$Sfull_name=$user_namesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+				if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWuser = $Suser;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		if ($non_latin < 1)
+			{
+			 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
+				while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+			 $Suser =		sprintf("%-8s", $Suser);
+				while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+			}
+		else
+			{	
+				$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+			 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+
+				$Suser =	sprintf("%-24s", $Suser);
+			 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+			}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sfull_name | $Suser | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$Sfull_name,$RAWuser,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+	$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+	if ($file_download < 1)
+		{
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+----------------------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_STATUS$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +echo "
\n"; +echo "
Termine:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Kampagnen:
"; +echo "\n"; +echo "
Benutzer-Gruppen:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_time_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_time_detail.php
new file mode 100644
index 00000000..a98137e5
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_time_detail.php
@@ -0,0 +1,867 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+# 90522-0723 - First build
+# 90908-1103 - Added DEAD time stats
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='NAME';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_time_sheet.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_time_sheet.php
new file mode 100644
index 00000000..da1bdc80
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_time_sheet.php
@@ -0,0 +1,311 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1729 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 80624-0132 - Added vicidial_timeclock entries
+# 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["agent"]))				{$agent=$_GET["agent"];}
+	elseif (isset($_POST["agent"]))		{$agent=$_POST["agent"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["calls_summary"]))			{$calls_summary=$_GET["calls_summary"];}
+	elseif (isset($_POST["calls_summary"]))	{$calls_summary=$_POST["calls_summary"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))	{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))				{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))	{$SUBMIT=$_POST["SUBMIT"];}
+
+$user=$agent;
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+?>
+
+
+
+
+
+\n";
+echo "Agent Time Sheet";
+
+
+##### BEGIN Set variables to make header show properly #####
+$ADD =					'3';
+$hh =					'users';
+$LOGast_admin_access =	'1';
+$ADMIN =				'admin.php';
+$page_width='770';
+$section_width='750';
+$header_font_size='3';
+$subheader_font_size='2';
+$subcamp_font_size='2';
+$header_selected_bold='<b>';
+$header_nonselected_bold='';
+$users_color =		'#FFFF99';
+$users_font =		'BLACK';
+$users_color =		'#E6E6E6';
+$subcamp_color =	'#C6C6C6';
+##### END Set variables to make header show properly #####
+
+require("admin_header.php");
+
+echo "<TABLE WIDTH=$page_width BGCOLOR=\"#F0F5FE\" cellpadding=2 cellspacing=0><TR BGCOLOR=\"#F0F5FE\"><TD>\n";
+
+echo "AgentTime Sheetfor: $user\n";
+echo "<BR>\n";
+echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>   \n";
+echo "Date: <INPUT TYPE=TEXT NAME=query_date SIZE=19 MAXLENGTH=19 VALUE=\"$query_date\">\n";
+echo "User ID: <INPUT TYPE=TEXT NAME=agent SIZE=10 MAXLENGTH=20 VALUE=\"$agent\">\n";
+echo "<INPUT TYPE=Submit NAME=SUBMIT VALUE=SUBMIT>\n";
+echo "</FORM>\n\n";
+
+echo "<PRE><FONT SIZE=3>\n";
+
+
+if (!$agent)
+{
+echo "\n";
+echo "PLEASE SELECT AN MITTELID AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+echo " NOTE: stats taken from available agent log data\n";
+}
+
+else
+{
+$query_date_BEGIN = "$query_date 00:00:00";   
+$query_date_END = "$query_date 23:59:59";
+$time_BEGIN = "00:00:00";   
+$time_END = "23:59:59";
+
+$stmt="select full_name from vicidial_users where user='$agent';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$full_name = $row[0];
+
+echo "AgentTime Sheet                            $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- MITTELTIME SHEET: $agent - $full_name -------------\n\n";
+
+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 <= '" . 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);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
+
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
+
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+
+	echo "GESAMTANRUFETAKEN: $row[0]\n";
+	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
+	echo "PAUSE TIME:              $pfPAUSE_TIME_HMS     AVERAGE: $pfPAUSE_AVG_MS\n";
+	echo "WAIT TIME:               $pfWAIT_TIME_HMS     AVERAGE: $pfWAIT_AVG_MS\n";
+	echo "WRAPUP TIME:             $pfWRAPUP_TIME_HMS     AVERAGE: $pfWRAPUP_AVG_MS\n";
+	echo "----------------------------------------------------------------\n";
+	echo "TOTAL ACTIVE MITTELTIME: $pfTOTAL_TIME_HMS\n";
+
+	echo "\n";
+	}
+else
+	{
+	echo "<a href=\"$PHP_SELF?calls_summary=1&agent=$agent&query_date=$query_date\">Call Activity Summary</a>\n\n";
+
+	}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "FIRST LOGIN:          $row[0]\n";
+$start = $row[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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "LAST LOG ACTIVITY:    $row[0]\n";
+$end = $row[1];
+
+$login_time = ($end - $start);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+
+echo "-----------------------------------------\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
+
+
+### timeclock records
+
+
+##### vicidial_timeclock log records for user #####
+
+$total_login_time=0;
+$SQday_ARY =	explode('-',$query_date_BEGIN);
+$EQday_ARY =	explode('-',$query_date_END);
+$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+echo "\n";
+
+echo "<B>TIMECLOCK LOGIN/LOGOUT ZEIT:</B>\n";
+echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n";
+echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n";
+
+	$stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='$agent' and event_epoch >= '$SQepoch'  and event_epoch <= '$EQepoch';";
+	if ($DB>0) {echo "|$stmt|";}
+	$rslt=mysql_query($stmt, $link);
+	$events_to_print = mysql_num_rows($rslt);
+
+	$total_logs=0;
+	$o=0;
+	while ($events_to_print > $o) {
+		$row=mysql_fetch_row($rslt);
+		if ( ($row[0]=='START') or ($row[0]=='LOGIN') )
+			{$bgcolor='bgcolor="#B9CBFD"';} 
+		else
+			{$bgcolor='bgcolor="#9BB9FB"';}
+
+		$TC_log_date = date("Y-m-d H:i:s", $row[1]);
+
+		$manager_edit='';
+		if (strlen($row[6])>0) {$manager_edit = ' * ';}
+
+		if (ereg("LOGIN", $row[0]))
+			{
+			$login_sec='';
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> </td></tr>\n";
+			}
+		if (ereg("LOGOUT", $row[0]))
+			{
+			$login_sec = $row[3];
+			$total_login_time = ($total_login_time + $login_sec);
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> $event_hours_minutes";
+			if ($DB) {echo " - $total_login_time - $login_sec";}
+			echo "</td></tr>\n";
+			}
+		$o++;
+	}
+if (strlen($login_sec)<1)
+	{
+	$login_sec = ($STARTtime - $row[1]);
+	$total_login_time = ($total_login_time + $login_sec);
+		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
+	}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
+
+	if ($DB) {echo " - $total_login_time - $login_sec";}
+
+echo "<tr><td align=right><font size=2> </td>";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
+
+echo "</TABLE>\n";
+
+
+
+}
+
+
+
+?>
+
+</BODY></HTML>
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_timeclock_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_inboundEXTstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_inboundEXTstats.php new file mode 100644 index 00000000..550b42a7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_inboundEXTstats.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1';"; + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.11.20';} + +$stmt="select extension,full_number,inbound_name from inbound_numbers where server_ip='" . mysql_real_escape_string($server_ip) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$inbound_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + $inbound[$i] =$row[0]; + $fullnum[$i] =$row[1]; + $inbname[$i] =$row[2]; + $i++; + } +?> + + + + + +\n"; +#echo"\n"; +echo "ASTERISK: Inbound Anruf-Notfall\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "WÄHLEN Sie BITTE Eine ZAHL Vor UND DATUM OBEN UND KLICKEN REICHT Ein\n";
+}
+
+else
+{
+
+
+echo "ASTERISK: Inbound Anruf-Notfall                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALS\n";
+
+$extenSQL = "and extension='" . mysql_real_escape_string($group) . "'";
+if (eregi("\*",$group))
+	{$extenSQL = "and extension LIKE \"%$group\"";}
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$average_hold_seconds = ($row[1] / $row[0]);
+$average_hold_seconds = round($average_hold_seconds, 0);
+$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+
+echo "Gesamtanrufe, die in diese Zahl kamen:       $TOTALcalls\n";
+echo "Average Call Length(seconds) for all Calls:   $average_hold_seconds\n";
+
+echo "\n";
+echo "---------- DROPS\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+$DROPpercent = round($DROPpercent, 0);
+
+if ($row[0])
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+else {$DROPpercent=0;   $average_hold_seconds=0;}
+echo "Total DROP Calls:   (less than 10 seconds)    $DROPcalls  $DROPpercent%\n";
+echo "Average Call Length(seconds) for DROP Calls:  $average_hold_seconds\n";
+
+
+##############################
+#########  CALLS STATS
+
+echo "\n";
+echo "---------- CALL LISTINGS\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+echo "| CALLERID             | CALLERIDNAME         | LENGTH | DATE TIME           |\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$CID =			sprintf("%-20s", $row[0]);
+	$CIDname =		sprintf("%-20s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}
+	$datetime =		sprintf("%-19s", $row[3]);
+	$USERavgTALK =	$row[2];
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$USERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $CID | $CIDname | $USERavgTALK_MS | $datetime |\n";
+
+	$i++;
+	}
+
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+##############################
+#########  TIME STATS
+
+if ($output == 'FULL')
+	{
+
+	echo "\n";
+	echo "---------- TIME STATS\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+		$h++;
+		}
+
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+
+	echo "\n";
+	echo "DIAGRAMM IN 15 MINUZIÖSEN STUFENSPRÜNGEN VON GESAMTANRUFEN\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+	echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$Gdrop_count = $drop_count[$i];
+			if ($Gdrop_count < 1) 
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "*X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 101) {echo " ";   $char_counter++;}
+				echo "| 0     | $hour_count[$i] |\n";
+
+				}
+			else
+				{
+				$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+			#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+				$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+				echo "D";   $char_counter++;
+				$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 102) {echo " ";   $char_counter++;}
+				echo "| $drop_count[$i] | $hour_count[$i] |\n";
+				}
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+
+	}
+
+
+
+
+}
+
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_server_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_server_performance.php new file mode 100644 index 00000000..8ea9fdf7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_server_performance.php @@ -0,0 +1,346 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1732 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70417-1106 - Changed time frame to be definable per time range on a single day +# - Fixed vertical scaling issues +# 80118-1508 - Fixed horizontal scale marking issues +# 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_query_time"])) {$begin_query_time=$_GET["begin_query_time"];} + elseif (isset($_POST["begin_query_time"])) {$begin_query_time=$_POST["begin_query_time"];} +if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"];} + elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1' and modify_servers='1';"; + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +# path from root to where ploticus files will be stored +$PLOTroot = "vicidial/ploticus"; +$DOCroot = "$WeBServeRRooT/$PLOTroot/"; + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +if (!isset($begin_query_time)) {$begin_query_time = "$NOW_DATE 09:00:00";} +if (!isset($end_query_time)) {$end_query_time = "$NOW_DATE 15:30:00";} +if (!isset($group)) {$group = '';} + +$stmt="select server_ip from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + + + + + +\n"; +echo "Server Performance Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + + +echo "
\n"; +echo "Date/Time Range: \n"; +echo "to \n"; +echo "Server: \n"; +echo "\n"; +echo "             REPORTS \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A BEDIENERAND DATE/TIME RANGE ABOVE AND CLICK SUBMIT\n";
+}
+
+else
+{
+
+$query_date_BEGIN = $begin_query_time;   
+$query_date_END = $end_query_time;
+
+
+echo "Server Performance Report                            $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALS, PEAKS and AVERAGES\n";
+
+$stmt="select AVG(sysload),AVG(channels_total),MAX(sysload),MAX(channels_total),MAX(processes) 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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGload =	sprintf("%10s", $row[0]);
+$AVGchannels =	sprintf("%10s", $row[1]);
+$HIGHload =	$row[2];
+	$HIGHmulti = intval($HIGHload / 100);
+$HIGHchannels =	$row[3];
+$HIGHprocesses =$row[4];
+if ($row[2] > $row[3]) {$HIGHlimit = $row[2];}
+else {$HIGHlimit = $row[3];}
+if ($HIGHlimit < $row[4]) {$HIGHlimit = $row[4];}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGcpuUSER =	sprintf("%10s", $row[0]);
+$AVGcpuSYSTEM =	sprintf("%10s", $row[1]);
+$AVGcpuIDLE =	sprintf("%10s", $row[2]);
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$OFFHOOKtime =	sprintf("%10s", $row[1]);
+
+
+echo "Total Calls in/out on this server:        $TOTALcalls\n";
+echo "Total Off-Hook time on this server (min): $OFFHOOKtime\n";
+echo "Average/Peak channels in use for server:  $AVGchannels / $HIGHchannels\n";
+echo "Average/Peak load for server:             $AVGload / $HIGHload\n";
+echo "Average USER process cpu percentage:      $AVGcpuUSER %\n";
+echo "Average SYSTEM process cpu percentage:    $AVGcpuSYSTEM %\n";
+echo "Average IDLE process cpu percentage:      $AVGcpuIDLE %\n";
+
+echo "\n";
+echo "---------- LINE GRAPH:\n";
+
+
+
+##############################
+#########  Graph stats
+
+$DAT = '.dat';
+$HTM = '.htm';
+$PNG = '.png';
+$filedate = date("Y-m-d_His");
+$DATfile = "$group$query_date$shift$filedate$DAT";
+$HTMfile = "$group$query_date$shift$filedate$HTM";
+$PNGfile = "$group$query_date$shift$filedate$PNG";
+
+$HTMfp = fopen ("$DOCroot/$HTMfile", "a");
+$DATfp = fopen ("$DOCroot/$DATfile", "a");
+
+$stmt="select DATE_FORMAT(start_time,'%Y-%m-%d.%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 limit 99999;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	if ($i<1) {$time_BEGIN = $row[0];}
+	$time_END = $row[0];
+	$row[5] = intval(($row[5] + $row[6]) * $HIGHmulti);
+	$row[6] = intval($row[6] * $HIGHmulti);
+	if ($rows_to_print > 9999)
+		{
+		if ($rows_to_print <= 19999)
+			{
+			if (preg_match("/0$|2$|4$|6$|8$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 19999) and ($rows_to_print <= 49999) )
+			{
+			if (preg_match("/0$|5$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 49999) and ($rows_to_print <= 99999) )
+			{
+			if (preg_match("/0$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		}
+	else
+		{
+		fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+		}
+	$i++;
+	}
+fclose($DATfp);
+
+$rows_to_max = ($rows_to_print + 100);
+
+$time_scale_abb = '5 minutes';
+$time_scale_tick = '1 minute';
+if ($i > 1000) {$time_scale_abb = '10 minutes';   $time_scale_tick = '2 minutes';}
+if ($i > 1500) {$time_scale_abb = '15 minutes';   $time_scale_tick = '3 minutes';}
+if ($i > 2000) {$time_scale_abb = '20 minutes';   $time_scale_tick = '4 minutes';}
+if ($i > 3000) {$time_scale_abb = '30 minutes';   $time_scale_tick = '5 minutes';}
+if ($i > 4000) {$time_scale_abb = '40 minutes';   $time_scale_tick = '10 minutes';}
+if ($i > 5000) {$time_scale_abb = '60 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 6000) {$time_scale_abb = '90 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 7000) {$time_scale_abb = '120 minutes';   $time_scale_tick = '30 minutes';}
+
+print "rows: $i   tick: $time_scale_abb   scale: $time_scale_tick\n";
+
+$HTMcontent  = '';
+$HTMcontent .= "#proc page\n";
+$HTMcontent .= "#if @DEVICE in png,gif\n";
+$HTMcontent .= "   scale: 0.6\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#endif\n";
+$HTMcontent .= "#proc getdata\n";
+$HTMcontent .= "file: $DOCroot/$DATfile\n";
+$HTMcontent .= "fieldnames: userproc sysproc datetime load processes channels\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc areadef\n";
+$HTMcontent .= "title: Server $group   $query_date_BEGIN to $query_date_END\n";
+$HTMcontent .= "titledetails: size=14  align=C\n";
+$HTMcontent .= "rectangle: 1 1 12 7\n";
+$HTMcontent .= "xscaletype: datetime yyyy-mm-dd.hh:mm:ss\n";
+$HTMcontent .= "xrange: $time_BEGIN $time_END\n";
+$HTMcontent .= "yrange: 0 $HIGHlimit\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc xaxis\n";
+$HTMcontent .= "stubs: inc $time_scale_abb\n";
+$HTMcontent .= "minorticinc: $time_scale_tick\n";
+$HTMcontent .= "stubformat: hh:mma\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc yaxis\n";
+$HTMcontent .= "stubs: inc 50\n";
+$HTMcontent .= "grid: color=yellow\n";
+$HTMcontent .= "gridskip: min\n";
+$HTMcontent .= "ticincrement: 100 1000\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: userproc\n";
+$HTMcontent .= "linedetails: color=purple width=.5\n";
+$HTMcontent .= "fill: lavender\n";
+$HTMcontent .= "legendlabel: user proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: sysproc\n";
+$HTMcontent .= "linedetails: color=yelloworange width=.5\n";
+$HTMcontent .= "fill: dullyellow\n";
+$HTMcontent .= "legendlabel: system proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: load\n";
+$HTMcontent .= "linedetails: color=blue width=.5\n";
+$HTMcontent .= "legendlabel: load\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: processes\n";
+$HTMcontent .= "linedetails: color=red width=.5\n";
+$HTMcontent .= "legendlabel: processes\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: channels\n";
+$HTMcontent .= "linedetails: color=green width=.5\n";
+$HTMcontent .= "legendlabel: channels\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc legend\n";
+$HTMcontent .= "location: max-1 max\n";
+$HTMcontent .= "seglen: 0.2\n";
+$HTMcontent .= "\n";
+
+fwrite ($HTMfp, "$HTMcontent");
+fclose($HTMfp);
+
+
+passthru("/usr/local/bin/pl -png $DOCroot/$HTMfile -o $DOCroot/$PNGfile");
+
+sleep(1);
+
+echo "
"; +echo "\n"; +echo "\n"; + + +echo ""; + +} + + + +?> + +
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDAD.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDAD.php new file mode 100644 index 00000000..4e89abe6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDAD.php @@ -0,0 +1,445 @@ + LICENSE: AGPLv2 +# +# 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 +# 61114-2004 - Changed to display CLOSER and DEFAULT, added trunk shortage +# 80422-0305 - Added phone login to display, lower font size to 2 +# 81013-2227 - Fixed Remote Agent display bug +# 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["closer_display"])) {$closer_display=$_GET["closer_display"];} + elseif (isset($_POST["closer_display"])) {$closer_display=$_POST["closer_display"];} + +$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 and view_reports='1';"; + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "Server-Specific Real-Time Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
";
+
+###################################################################################
+###### SERVER INFORMATION
+###################################################################################
+
+$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where server_ip='" . mysql_real_escape_string($server_ip) . "';";
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$balanceSHORT = $row[0];
+
+echo "SERVER: $server_ip\n";
+
+
+
+###################################################################################
+###### TIME ON SYSTEM
+###################################################################################
+
+if ($closer_display>0) {$closer_display_reverse=0;   $closer_reverse_link='DEFAULT';}
+else {$closer_display_reverse=1;   $closer_reverse_link='CLOSER';}
+
+echo "Bevollmächtigte Time On Calls           $NOW_TIME    $closer_reverse_link | REPORTS\n\n";
+
+if ($closer_display>0)
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\n";
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+}
+else
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$Sextension[$i] =		$row[0];
+		$Suser[$i] =			$row[1];
+		$Ssessionid[$i] =		$row[2];
+		$Schannel[$i] =			$row[3];
+		$Sstatus[$i] =			$row[4];
+		$Sstart_time[$i] =		$row[5];
+		$Scall_time[$i] =		$row[6];
+		$Sfinish_time[$i] =		$row[7];
+		$Suniqueid[$i] =		$row[8];
+		$Slead_id[$i] =			$row[9];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$phone[$i]='          ';
+		if (eregi("R/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('R/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi("Local/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('Local/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi('SIP/',$Sextension[$i])) 
+			{
+			$protocol = 'SIP';
+			$dialplan = eregi_replace('SIP/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('IAX2/',$Sextension[$i])) 
+			{
+			$protocol = 'IAX2';
+			$dialplan = eregi_replace('IAX2/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('Zap/',$Sextension[$i])) 
+			{
+			$protocol = 'Zap';
+			$dialplan = eregi_replace('Zap/',"",$Sextension[$i]);
+			$exten = "extension='$dialplan'";
+			}
+
+		$stmt="select login from phones where server_ip='" . mysql_real_escape_string($server_ip) . "' and $exten and protocol='$protocol';";
+		$rslt=mysql_query($stmt, $link);
+		$row=mysql_fetch_row($rslt);
+		$login = $row[0];
+
+		$phone[$i] =			sprintf("%-10s", $login);
+
+		if (eregi("READY|PAUSED|CLOSER",$Sstatus[$i]))
+			{
+			$Schannel[$i]='';
+			$Sstart_time[$i]='- WAIT -';
+			$Scall_time[$i]=$Sfinish_time[$i];
+			}
+		$extension[$i] = eregi_replace('Local/',"",$Sextension[$i]);
+		$extension[$i] =		sprintf("%-10s", $extension[$i]);
+			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
+		$user[$i] =				sprintf("%-6s", $Suser[$i]);
+		$sessionid[$i] =		sprintf("%-9s", $Ssessionid[$i]);
+		$channel[$i] =			sprintf("%-19s", $Schannel[$i]);
+			$cc[$i]=0;
+		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
+			{
+			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
+			$cc[$i]++;
+			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
+			}
+		$status[$i] =			sprintf("%-6s", $Sstatus[$i]);
+		$start_time[$i] =		sprintf("%-8s", $Sstart_time[$i]);
+			$cd[$i]=0;
+		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
+			{
+			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
+			$cd[$i]++;
+			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
+			}
+		$uniqueid[$i] =			$Suniqueid[$i];
+		$lead_id[$i] =			$Slead_id[$i];
+		$closer[$i] =			$Suser[$i];
+		$call_time_S[$i] = ($STARTtime - $Scall_time[$i]);
+
+		$call_time_M[$i] = ($call_time_S[$i] / 60);
+		$call_time_M[$i] = round($call_time_M[$i], 2);
+		$call_time_M_int[$i] = intval("$call_time_M[$i]");
+		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
+		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
+		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
+		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
+		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
+		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
+
+		if ($closer_display<1)
+			{
+			$G = '';		$EG = '';
+			if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+			if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+			if (eregi("PAUSED",$Sstatus[$i])) 
+				{
+				if ($call_time_M_int >= 1) 
+					{$i++; continue;} 
+				else
+					{$G=''; $EG='';}
+				}
+			$agentcount++;
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG |\n";
+			}
+		$i++;
+		}
+
+		if ($closer_display>0)
+		{
+
+			$ext_count = $i;
+			$i=0;
+		while ($i < $ext_count)
+			{
+
+			$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$camp_to_print = mysql_num_rows($rslt);
+			if ($camp_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$campaign = sprintf("%-12s", $row[0]);
+				$camp_color = $row[0];
+				}
+			else
+				{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
+			if (eregi("READY|PAUSED|CLOSER",$status[$i]))
+				{$campaign = '            ';   	$camp_color = '';}
+
+			$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$xfer_to_print = mysql_num_rows($rslt);
+			if ($xfer_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$fronter = sprintf("%-6s", $row[0]);
+				}
+			else
+				{$fronter = '      ';}
+
+			$G = '';		$EG = '';
+			$G=""; $EG='';
+		#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+		#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
+
+			$i++;
+			}
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+		echo "  $i Mittel geloggt innen auf Bediener $server_ip\n\n";
+	#	echo "             - 5 Minuten oder mehr beim Anruf\n";
+	#	echo "             - Über 10 Minuten beim Anruf\n";
+		}
+	else
+		{
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+		echo "  $agentcount Mittel geloggt innen auf Bediener $server_ip\n\n";
+
+		echo "             - Pausierte Mittel\n";
+		echo "             - 5 Minuten oder mehr beim Anruf\n";
+		echo "             - Über 10 Minuten beim Anruf\n";
+		}
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "*********************************KEINE MITTEL BEI DEN ANRUFEN*********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+###################################################################################
+###### OUTBOUND CALLS
+###################################################################################
+#echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "Server-Specific Real-Time Report        TRUNK SHORT: $balanceSHORT          $NOW_TIME\n\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-19s", $row[0]);
+			$cc=0;
+		while ( (strlen($channel) > 19) and ($cc < 100) )
+			{
+			$channel = eregi_replace(".$","",$channel);   
+			$cc++;
+			if (strlen($channel) <= 19) {$cc=101;}
+			}
+		$start_time =		sprintf("%-8s", $row[5]);
+			$cd=0;
+		while ( (strlen($start_time) > 8) and ($cd < 100) )
+			{
+			$start_time = eregi_replace("^.","",$start_time);   
+			$cd++;
+			if (strlen($start_time) <= 8) {$cd=101;}
+			}
+		$status =			sprintf("%-6s", $row[1]);
+		$campaign =			sprintf("%-12s", $row[2]);
+			$all_phone = "$row[3]$row[4]";
+		$number_dialed =	sprintf("%-18s", $all_phone);
+		$call_time_S = ($STARTtime - $row[6]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if (eregi("LIVE",$status)) {$G=''; $EG='';}
+	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+		echo "  $i Anrufe, die auf Bediener gesetzt werden $server_ip\n\n";
+
+		echo "             - PHASENCANKLOPFEN\n";
+	#	echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	echo "*******************************KEIN PHASENCANKLOPFEN*********************************\n";
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	}
+
+
+?>
+
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDAD_closer.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDAD_closer.php new file mode 100644 index 00000000..cd820afc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDAD_closer.php @@ -0,0 +1,318 @@ + LICENSE: GPLv2 +### +# 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"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On VDAD\n"; +echo "
";
+
+###################################################################################
+###### TIME ON SYSTEM
+###################################################################################
+
+echo "VICIDIAL: Mittel Setzen Bei den Anrufen Zeit fest        $NOW_TIME    REPORTS\n\n";
+echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+echo "| STATION    | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+			if (eregi("READY|PAUSED|CLOSER",$row[4]))
+			{
+			$row[3]='';
+			$row[5]='- WAIT -';
+			$row[6]=$row[7];
+			}
+		$extension[$i] = eregi_replace('Local/',"",$row[0]);
+		$extension[$i] =		sprintf("%-10s", $extension[$i]);
+			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
+		$user[$i] =				sprintf("%-6s", $row[1]);
+		$sessionid[$i] =		sprintf("%-9s", $row[2]);
+		$channel[$i] =			sprintf("%-19s", $row[3]);
+			$cc[$i]=0;
+		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
+			{
+			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
+			$cc[$i]++;
+			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
+			}
+		$status[$i] =			sprintf("%-6s", $row[4]);
+		$start_time[$i] =		sprintf("%-8s", $row[5]);
+			$cd[$i]=0;
+		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
+			{
+			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
+			$cd[$i]++;
+			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
+			}
+		$uniqueid[$i] =			$row[8];
+		$lead_id[$i] =			$row[9];
+		$closer[$i] =			$row[1];
+		$call_time_S[$i] = ($STARTtime - $row[6]);
+
+		$call_time_M[$i] = ($call_time_S[$i] / 60);
+		$call_time_M[$i] = round($call_time_M[$i], 2);
+		$call_time_M_int[$i] = intval("$call_time_M[$i]");
+		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
+		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
+		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
+		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
+		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
+		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
+		$i++;
+		}
+		$ext_count = $i;
+		$i=0;
+	while ($i < $ext_count)
+		{
+
+		$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$camp_to_print = mysql_num_rows($rslt);
+		if ($camp_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$campaign = sprintf("%-12s", $row[0]);
+			$camp_color = $row[0];
+			}
+		else
+			{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
+		if (eregi("READY|PAUSED|CLOSER",$status[$i]))
+			{$campaign = '            ';   	$camp_color = '';}
+
+		$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$xfer_to_print = mysql_num_rows($rslt);
+		if ($xfer_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$fronter = sprintf("%-6s", $row[0]);
+			}
+		else
+			{$fronter = '      ';}
+
+		$G = '';		$EG = '';
+		$G=""; $EG='';
+	#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+	#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+
+		echo "| $G$extension[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+		echo "  $i Mittel geloggt innen auf Bediener $server_ip\n\n";
+
+	#	echo "             - 5 Minuten oder mehr beim Anruf\n";
+	#	echo "             - Über 10 Minuten beim Anruf\n";
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "*********************************KEINE MITTEL BEI DEN ANRUFEN*********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+###################################################################################
+###### OUTBOUND CALLS
+###################################################################################
+#echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "VICIDIAL: Time On VDAD                                              $NOW_TIME\n\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+
+#$link=mysql_connect("localhost", "cron", "1234");
+# $linkX=mysql_connect("localhost", "cron", "1234");
+#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='" . mysql_real_escape_string($server_ip) . "' order by auto_call_id desc;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-19s", $row[0]);
+			$cc=0;
+		while ( (strlen($channel) > 19) and ($cc < 100) )
+			{
+			$channel = eregi_replace(".$","",$channel);   
+			$cc++;
+			if (strlen($channel) <= 19) {$cc=101;}
+			}
+		$start_time =		sprintf("%-8s", $row[5]);
+			$cd=0;
+		while ( (strlen($start_time) > 8) and ($cd < 100) )
+			{
+			$start_time = eregi_replace("^.","",$start_time);   
+			$cd++;
+			if (strlen($start_time) <= 8) {$cd=101;}
+			}
+		$status =			sprintf("%-6s", $row[1]);
+		$campaign =			sprintf("%-12s", $row[2]);
+			$all_phone = "$row[3]$row[4]";
+		$number_dialed =	sprintf("%-18s", $all_phone);
+		$call_time_S = ($STARTtime - $row[6]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if (eregi("LIVE",$status)) {$G=''; $EG='';}
+	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+		echo "  $i Anrufe, die auf Bediener gesetzt werden $server_ip\n\n";
+
+		echo "             - PHASENCANKLOPFEN\n";
+	#	echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	echo "*******************************KEIN PHASENCANKLOPFEN*********************************\n";
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	}
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDADall.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDADall.php new file mode 100644 index 00000000..cc7a4410 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDADall.php @@ -0,0 +1,1986 @@ + LICENSE: AGPLv2 +# +# live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# CHANGELOG: +# 50406-0920 - Added Paused agents < 1 min +# 51130-1218 - Modified layout and info to show all servers in a vicidial system +# 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 +# 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 +# 60626-1453 - Added display of system load to bottom (Angelito Manansala) +# 60901-1123 - Changed display elements at the top of the screen +# 60905-1342 - Fixed non INCALL|QUEUE timer column +# 61002-1642 - Added TRUNK SHORT/FILL stats +# 61101-1318 - Added SIP and IAX Listen and Barge links option +# 61101-1647 - Added Usergroup column and user name option as well as sorting +# 61102-1155 - Made display of columns more modular, added ability to hide server info +# 61215-1131 - Added answered calls and drop percent taken from answered calls +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70123-1151 - Added non_latin options for substr in display variables, thanks Marin Blu +# 70206-1140 - Added call-type statuses to display(A-Auto, M-Manual, I-Inbound/Closer) +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80227-0418 - Added priority to waiting calls display +# 80311-1550 - Added calls_today on all agents and wait time/in-group for inbound calls +# 80422-0033 - Added phonediaplay option, allow for toggle-sorting on sortable fields +# 80422-1001 - Fixed sort by phone login +# 80424-0515 - Added non_latin lookup from system_settings +# 80525-1040 - Added IVR status display and summary for inbound calls +# 80619-2047 - Added DISPO status for post-call-work while paused +# 80704-0543 - Added DEAD status for agents INCALL with no live call +# 80822-1222 - Added option for display of customer phone number +# 81011-0335 - Fixed remote agent display bug +# 81022-1500 - Added inbound call stats display option +# 81029-1023 - Changed drop percent calculation for multi-stat reports +# 81029-1706 - Added pause code display if enabled per campaign +# 81108-2337 - Added inbound-only section +# 90105-1153 - Changed monitor links to use 0 prefix instead of 6 +# 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option +# 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended +# + + +$version = '2.2.0-49'; +$build = '91204-1548'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["inbound"])) {$inbound=$_GET["inbound"];} + elseif (isset($_POST["inbound"])) {$inbound=$_POST["inbound"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["usergroup"])) {$usergroup=$_GET["usergroup"];} + elseif (isset($_POST["usergroup"])) {$usergroup=$_POST["usergroup"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["SIPmonitorLINK"])) {$SIPmonitorLINK=$_GET["SIPmonitorLINK"];} + elseif (isset($_POST["SIPmonitorLINK"])) {$SIPmonitorLINK=$_POST["SIPmonitorLINK"];} +if (isset($_GET["IAXmonitorLINK"])) {$IAXmonitorLINK=$_GET["IAXmonitorLINK"];} + elseif (isset($_POST["IAXmonitorLINK"])) {$IAXmonitorLINK=$_POST["IAXmonitorLINK"];} +if (isset($_GET["UGdisplay"])) {$UGdisplay=$_GET["UGdisplay"];} + elseif (isset($_POST["UGdisplay"])) {$UGdisplay=$_POST["UGdisplay"];} +if (isset($_GET["UidORname"])) {$UidORname=$_GET["UidORname"];} + elseif (isset($_POST["UidORname"])) {$UidORname=$_POST["UidORname"];} +if (isset($_GET["orderby"])) {$orderby=$_GET["orderby"];} + elseif (isset($_POST["orderby"])) {$orderby=$_POST["orderby"];} +if (isset($_GET["SERVdisplay"])) {$SERVdisplay=$_GET["SERVdisplay"];} + elseif (isset($_POST["SERVdisplay"])) {$SERVdisplay=$_POST["SERVdisplay"];} +if (isset($_GET["CALLSdisplay"])) {$CALLSdisplay=$_GET["CALLSdisplay"];} + elseif (isset($_POST["CALLSdisplay"])) {$CALLSdisplay=$_POST["CALLSdisplay"];} +if (isset($_GET["PHONEdisplay"])) {$PHONEdisplay=$_GET["PHONEdisplay"];} + elseif (isset($_POST["PHONEdisplay"])) {$PHONEdisplay=$_POST["PHONEdisplay"];} +if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdisplay"];} + elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} +if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} + elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $outbound_autodial_active = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if (!isset($DB)) {$DB=0;} +if (!isset($RR)) {$RR=40;} +if (!isset($group)) {$group='';} +if (!isset($usergroup)) {$usergroup='';} +if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name +if (!isset($orderby)) {$orderby='timeup';} +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes +if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes +if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes +if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes +if (!isset($PAUSEcodes)) {$PAUSEcodes='N';} # 0=no, 1=yes +if (!isset($with_inbound)) + { + if ($outbound_autodial_active > 0) + {$with_inbound='N';} # N=no, Y=yes, O=only + else + {$with_inbound='O';} # N=no, Y=yes, O=only + } +$ingroup_detail=''; + +if (strlen($group)>1) {$groups[0] = $group; $RR=40;} +else {$group = $groups[0];} + +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); + + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } + + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } + +$load_ave = get_server_load(true); + +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + + +$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 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='ALL-ACTIVE'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $LISTnames[$i] =$row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($groups); +while($i < $group_ct) + { + $group_string .= "$groups[$i]|"; + $group_SQL .= "'$groups[$i]',"; + $groupQS .= "&groups[]=$groups[$i]"; + $i++; + } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $all_active = 0; + $group_SQL = "''"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; + } +else + { + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$usergroups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $usergroups_to_print) + { + $row=mysql_fetch_row($rslt); + $usergroups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$select_list = ""; +$select_list .= ""; +$select_list .= "
Select Kampagnen:
"; +$select_list .= ""; +$select_list .= "
(Um mehr als 1 Kampagne, halten Sie die Strg-Taste gedrückt und klicken Sie auf)"; +$select_list .= "
"; +$select_list .= "Fenster schließen

"; + +if ($UGdisplay > 0) + { + $select_list .= "Select Benutzer-Gruppe:
"; + $select_list .= "

"; + } + +$select_list .= "   Inbound:         "; +$select_list .= "
"; +$select_list .= "   "; +$select_list .= ""; +$select_list .= "VERSION: $version   BAU: $build"; +$select_list .= "
"; + +$open_list = "
Wählen Sie Report anzeigen Optionen
"; + +?> + + + + + + +\n"; + +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; +$rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +echo "\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; +echo "
\n"; +echo "Wählen Sie Report anzeigen Optionen"; +echo "
\n"; +echo "
\n"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; +if (eregi('ALL-ACTIVE',$group_string)) + { + echo "       ÄNDERN Sie | \n"; + } +else + { + echo "       ÄNDERN Sie | \n"; + } +echo "SUMMARY \n"; +echo "\n\n"; + + +if (!$group) {echo "

please select a campaign from the pulldown above
\n"; exit;} +else +{ +$multi_drop=0; +### Gather list of all Closer group ids for exclusion from stats +$stmt = "select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +$ingroups_to_print = mysql_num_rows($rslt); +while ($ingroups_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + $ccamps_to_print = mysql_num_rows($rslt); + $c=0; + while ($ccamps_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaignsSQL .= "'$closer_campaigns',"; + $c++; + } + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; + + if ($adastats>1) + { + $stmtB="select calls_today,drops_today,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4,hold_sec_stat_one,hold_sec_stat_two,hold_sec_answer_calls,hold_sec_drop_calls,hold_sec_queue_calls,campaign_id from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if ($DB > 0) {echo "\n|$stmtB|\n";} + + $r=0; + $rslt=mysql_query($stmtB, $link); + $ingroups_to_print = mysql_num_rows($rslt); + if ($ingroups_to_print > 0) + {$ingroup_detail .= "";} + while ($ingroups_to_print > $r) + { + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + $ingroupdetail = $row[16]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_ANTWORTagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_ANTWORTagent_non_pause_sec = round($AVG_ANTWORTagent_non_pause_sec, 2); + $AVG_ANTWORTagent_non_pause_sec = sprintf("%01.2f", $AVG_ANTWORTagent_non_pause_sec); + } + else + {$AVG_ANTWORTagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_ANTWORTagent_non_pause_sec=0; + } + + if (ereg("0$|2$|4$|6$|8$",$r)) {$bgcolor='#E6E6E6';} + else {$bgcolor='white';} + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + + $r++; + } + + if ($ingroups_to_print > 0) + {$ingroup_detail .= "
        $ingroupdetail   CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls  
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
ANTWORTS TODAY:  $answersTODAY    DROP PERCENT:  $drpctTODAY%    Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
";} + + } + + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; + + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; + } + + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; + + + if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_pause_codes_active = $row[0]; + + $rslt=mysql_query($stmtC, $link); + $row=mysql_fetch_row($rslt); + $agent_non_pause_sec = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_ANTWORTagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_ANTWORTagent_non_pause_sec = round($AVG_ANTWORTagent_non_pause_sec, 2); + $AVG_ANTWORTagent_non_pause_sec = sprintf("%01.2f", $AVG_ANTWORTagent_non_pause_sec); + } + else + {$AVG_ANTWORTagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_ANTWORTagent_non_pause_sec=0; + } + + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +##### NOT INBOUND ONLY ### +else + { + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $multi_drop++; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; + } + else + { + if ($DB > 0) {echo "\n|$with_inbound|$campaign_allow_inbound|\n";} + + if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) + { + $multi_drop++; + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} + + $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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + } + else + { + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + } + } + if ($DB > 0) {echo "\n|$stmt|$stmtB|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $DIALlev = $row[0]; + $DIALstatusA = $row[1]; + $DIALstatusB = $row[2]; + $DIALstatusC = $row[3]; + $DIALstatusD = $row[4]; + $DIALstatusE = $row[5]; + $DIALorder = $row[6]; + $DIALfilter = $row[7]; + $HOPlev = $row[8]; + $DIALmethod = $row[9]; + $maxDIALlev = $row[10]; + $DROPmax = $row[11]; + $targetDIFF = $row[12]; + $ADAintense = $row[13]; + $ADAavailonly = $row[14]; + $TAPERtime = $row[15]; + $CALLtime = $row[16]; + $DIALtimeout = $row[17]; + $DIALstatuses = $row[18]; + $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; + + + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDhop = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $DAleads = $row[0]; + $callsTODAY = $row[1]; + $dropsTODAY = $row[2]; + $drpctTODAY = $row[3]; + $diffONEMIN = $row[4]; + $agentsONEMIN = $row[5]; + $balanceFILL = $row[6]; + $answersTODAY = $row[7]; + if ($multi_drop > 0) + { + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + } + $VSCcat1 = $row[8]; + $VSCcat1tally = $row[9]; + $VSCcat2 = $row[10]; + $VSCcat2tally = $row[11]; + $VSCcat3 = $row[12]; + $VSCcat3tally = $row[13]; + $VSCcat4 = $row[14]; + $VSCcat4tally = $row[15]; + + if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } + else {$diffpctONEMIN = '0.00';} + + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $balanceSHORT = $row[0]; + + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "US-Mix: $row[0]"; + $DIALorder = "US-Mix: $row[0]"; + } + } + + echo "
CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls   TIME:   $NOW_TIME
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
ANTWORTS TODAY:  $answersTODAY    (Agent non-pause time / Answers)Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
DROP PERCENT:  $drpctTODAY%    PRODUCTIVITY:  $AVG_ANTWORTagent_non_pause_sec    
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + + + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
DIAL LEVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
- min   MAX LEVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL METHOD:  $DIALmethod    
HOPPER LEVEL:  $HOPlev     DROPPED / ANTWORTED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; + if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} + else + {echo "$drpctTODAY%";} + echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +echo "$ingroup_detail"; + +if ($adastats<2) + { + echo "+ VIEW MORE"; + } +else + { + echo "+ VIEW LESS"; + } +if ($UGdisplay>0) + { + echo "       Verberge User Group"; + } +else + { + echo "       VIEW User Group"; + } +if ($UidORname>0) + { + echo "       Zeige MITTELID"; + } +else + { + echo "       Zeige MITTELNAME"; + } +if ($SERVdisplay>0) + { + echo "       Verberge BEDIENERINFO"; + } +else + { + echo "       Zeige BEDIENERINFO"; + } +if ($CALLSdisplay>0) + { + echo "       Verberge WAITING CALLS"; + } +else + { + echo "       Zeige WAITING CALLS"; + } +if ($PHONEdisplay>0) + { + echo "       Verberge PHONES"; + } +else + { + echo "       Zeige PHONES"; + } +if ($CUSTPHONEdisplay>0) + { + echo "       Verberge CUSTPHONES"; + } +else + { + echo "       Zeige CUSTPHONES"; + } +echo "
"; + +echo "\n\n"; +} +################################################################################### +###### INBOUND/OUTBOUND CALLS +################################################################################### +if ($campaign_allow_inbound > 0) + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; + } +else + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; + } +if ($CALLSdisplay > 0) + { + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; + } +else + { + $stmtA = "SELECT status"; + } + + +$k=0; +$agentonlycount=0; +$stmt = "$stmtA $stmtB"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + { + $out_live++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + else + { + if (eregi("IVR",$row[0])) + { + $in_ivr++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + + $out_total++; + $i++; + } + + ##### MIDI alert audio file test ##### + # $test_midi=1; + # if ($test_midi > 0) + # { + # # echo ""; + # # echo ""; + # echo ""; + # echo " "; + # echo " "; + # echo " "; + # echo " "; + # echo " alt : test.mid"; + # echo ""; + # } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo "KEIN PHASENCANKLOPFEN\n"; + } + + + +################################################################################### +###### CALLS WAITING +################################################################################### +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} +$Cecho = ''; +$Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITY | $agentonlyheader\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +$p=0; +while($p<$k) + { + $Cstatus = sprintf("%-6s", $CDstatus[$p]); + $Ccampaign_id = sprintf("%-12s", $CDcampaign_id[$p]); + $Cphone_number = sprintf("%-12s", $CDphone_number[$p]); + $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); + $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); + $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); + + $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); + $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); + + $G = ''; $EG = ''; + if ($CDcall_type[$p] == 'IN') + { + $G=""; $EG=''; + } + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; + + $p++; + } +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +if ($p<1) + {$Cecho='';} + +################################################################################### +###### AGENT TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_dead=0; +$agent_total=0; + +$phoneord=$orderby; +$userord=$orderby; +$groupord=$orderby; +$timeord=$orderby; +$campaignord=$orderby; + +if ($phoneord=='phoneup') {$phoneord='phonedown';} + else {$phoneord='phoneup';} +if ($userord=='userup') {$userord='userdown';} + else {$userord='userup';} +if ($groupord=='groupup') {$groupord='groupdown';} + else {$groupord='groupup';} +if ($timeord=='timeup') {$timeord='timedown';} + else {$timeord='timeup';} +if ($campaignord=='campaignup') {$campaignord='campaigndown';} + else {$campaignord='campaignup';} + +$Aecho = ''; +$Aecho .= "VICIDIAL: Bevollmächtigte Time On Calls Kampagne: $group_string $NOW_TIME\n"; + + +$HDbegin = "+"; +$HTbegin = "|"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; +$HDusergroup = "--------------+"; +$HTusergroup = " User Group |"; +$HDsessionid = "------------------+"; +$HTsessionid = " SESSIONID |"; +$HDbarge = "-------+"; +$HTbarge = " BARGE |"; +$HDstatus = "----------+"; +$HTstatus = " STATUS |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; +$HDserver_ip = "-----------------+"; +$HTserver_ip = " BEDIENERIP |"; +$HDcall_server_ip = "-----------------+"; +$HTcall_server_ip = " CALL BEDIENERIP |"; +$HDtime = "---------+"; +$HTtime = " MM:SS |"; +$HDcampaign = "------------+"; +$HTcampaign = " CAMPAIGN |"; +$HDcalls = "-------+"; +$HTcalls = " CALLS |"; +$HDpause = ''; +$HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; + +if (!ereg("N",$agent_pause_codes_active)) + { + $HDstatus = "----------"; + $HTstatus = " STATUS "; + $HDpause = "-------+"; + $HTpause = " PAUSE |"; + } +if ($PHONEdisplay < 1) + { + $HDphone = ''; + $HTphone = ''; + } +if ($CUSTPHONEdisplay < 1) + { + $HDcustphone = ''; + $HTcustphone = ''; + } +if ($UGdisplay < 1) + { + $HDusergroup = ''; + $HTusergroup = ''; + } +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + { + $HDsessionid = "-----------+"; + $HTsessionid = " SESSIONID |"; + } +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) + { + $HDbarge = ''; + $HTbarge = ''; + } +if ($SERVdisplay < 1) + { + $HDserver_ip = ''; + $HTserver_ip = ''; + $HDcall_server_ip = ''; + $HTcall_server_ip = ''; + } + + + +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; +$Aecho .= "$Aline"; +$Aecho .= "$Bline"; +$Aecho .= "$Aline"; + +if ($orderby=='timeup') {$orderSQL='vicidial_live_agents.status,last_call_time';} +if ($orderby=='timedown') {$orderSQL='vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='campaignup') {$orderSQL='vicidial_live_agents.campaign_id,vicidial_live_agents.status,last_call_time';} +if ($orderby=='campaigndown') {$orderSQL='vicidial_live_agents.campaign_id desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='groupup') {$orderSQL='user_group,vicidial_live_agents.status,last_call_time';} +if ($orderby=='groupdown') {$orderSQL='user_group desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='phoneup') {$orderSQL='extension,server_ip';} +if ($orderby=='phonedown') {$orderSQL='extension desc,server_ip desc';} +if ($UidORname > 0) + { + if ($orderby=='userup') {$orderSQL='full_name,status,last_call_time';} + if ($orderby=='userdown') {$orderSQL='full_name desc,status desc,last_call_time desc';} + } +else + { + if ($orderby=='userup') {$orderSQL='vicidial_live_agents.user';} + if ($orderby=='userdown') {$orderSQL='vicidial_live_agents.user desc';} + } + +if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} +else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} +if (strlen($usergroup)<1) {$usergroupSQL = '';} +else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} + +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + + $Aextension[$i] = $row[0]; + $Auser[$i] = $row[1]; + $Asessionid[$i] = $row[2]; + $Astatus[$i] = $row[3]; + $Aserver_ip[$i] = $row[4]; + $Acall_time[$i] = $row[5]; + $Acall_finish[$i] = $row[6]; + $Acall_server_ip[$i] = $row[7]; + $Acampaign_id[$i] = $row[8]; + $Auser_group[$i] = $row[9]; + $Afull_name[$i] = $row[10]; + $Acomments[$i] = $row[11]; + $Acalls_today[$i] = $row[12]; + $Acallerid[$i] = $row[13]; + $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; + + $i++; + } + +$callerids=''; +$pausecode=''; +$stmt="select callerid,lead_id,phone_number from vicidial_auto_calls;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$calls_to_list = mysql_num_rows($rslt); + if ($calls_to_list > 0) + { + $i=0; + while ($i < $calls_to_list) + { + $row=mysql_fetch_row($rslt); + $callerids .= "$row[0]|"; + $VAClead_ids[$i] = $row[1]; + $VACphones[$i] = $row[2]; + $i++; + } + } + +### Lookup phone logins + $i=0; + while ($i < $talking_to_print) + { + if (eregi("R/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('R/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi("Local/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('Local/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi('SIP/',$Aextension[$i])) + { + $protocol = 'SIP'; + $dialplan = eregi_replace('SIP/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('IAX2/',$Aextension[$i])) + { + $protocol = 'IAX2'; + $dialplan = eregi_replace('IAX2/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('Zap/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + + $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $phones_to_print = mysql_num_rows($rslt); + if ($phones_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Alogin[$i] = "$row[0]-----$i"; + } + else + { + $Alogin[$i] = "$Aextension[$i]-----$i"; + } + $i++; + } + +### Sort by phone if selected + if ($orderby=='phoneup') + { + sort($Alogin); + } + if ($orderby=='phonedown') + { + rsort($Alogin); + } + +### Run through the loop to display agents + $j=0; + $agentcount=0; + while ($j < $talking_to_print) + { + $n=0; + $custphone=''; + while ($n < $calls_to_list) + { + if ( (ereg("$VAClead_ids[$n]", $Alead_id[$j])) and (strlen($VAClead_ids[$n]) == strlen($Alead_id[$j])) ) + {$custphone = $VACphones[$n];} + $n++; + } + + $phone_split = explode("-----",$Alogin[$j]); + $i = $phone_split[1]; + + if (eregi("READY|PAUSED",$Astatus[$i])) + { + $Acall_time[$i]=$Astate_change[$i]; + + if ($Alead_id[$i] > 0) + { + $Astatus[$i] = 'DISPO'; + $Lstatus = 'DISPO'; + $status = ' DISPO'; + } + } + if ($non_latin < 1) + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} + } + else + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} + } + + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); + $Luser = $Auser[$i]; + $user = sprintf("%-20s", $Auser[$i]); + $Lsessionid = $Asessionid[$i]; + $sessionid = sprintf("%-9s", $Asessionid[$i]); + $Lstatus = $Astatus[$i]; + $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; + $server_ip = sprintf("%-15s", $Aserver_ip[$i]); + $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); + $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); + $comments= $Acomments[$i]; + $calls_today = sprintf("%-5s", $Acalls_today[$i]); + + if (!ereg("N",$agent_pause_codes_active)) + {$pausecode=' ';} + else + {$pausecode='';} + + if (eregi("INCALL",$Lstatus)) + { + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) + { + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } + } + + if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) + {$CM='A';} + else + { + if (eregi("INBOUND",$comments)) + {$CM='I';} + else + {$CM='M';} + } + } + else {$CM=' ';} + + if ($UGdisplay > 0) + { + if ($non_latin < 1) + { + $user_group = sprintf("%-12s", $Auser_group[$i]); + while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} + } + else + { + $user_group = sprintf("%-40s", $Auser_group[$i]); + while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} + } + } + if ($UidORname > 0) + { + if ($non_latin < 1) + { + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} + } + else + { + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} + } + } + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} + else + {$call_time_S = ($STARTtime - $Acall_time[$i]);} + + $call_time_MS = sec_convert($call_time_S,'M'); + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) + { + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} + } + if ($Lstatus=='DEAD') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_dead++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + } + } + if ($Lstatus=='DISPO') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } + if ($Lstatus=='PAUSED') + { + if (!ereg("N",$agent_pause_codes_active)) + { + $stmtC="select sub_status from vicidial_agent_log where user='$Luser' order by agent_log_id desc limit 1;"; + $rsltC=mysql_query($stmtC,$link); + $rowC=mysql_fetch_row($rsltC); + $pausecode = sprintf("%-6s", $rowC[0]); + $pausecode = "$pausecode "; + } + else + {$pausecode='';} + + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } +# if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) +# {$G=''; $EG='';} + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) + { + $G=''; $EG=''; + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + + $L=''; + $R=''; + if ($SIPmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($SIPmonitorLINK>1) {$R=" | BARGE";} + if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} + + if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} + else {$CP = "";} + + if ($UGdisplay > 0) {$UGD = " $G$user_group$EG |";} + else {$UGD = "";} + + if ($SERVdisplay > 0) {$SVD = "$G$server_ip$EG | $G$call_server_ip$EG | ";} + else {$SVD = "";} + + if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} + else {$phoneD = " ";} + + $vac_stage=''; + $vac_campaign=''; + $INGRP=''; + if ($CM == 'I') + { + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ingrp_to_print = mysql_num_rows($rslt); + if ($ingrp_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); + $row[1] = eregi_replace(".*-",'',$row[1]); + $vac_stage = sprintf("%-4s", $row[1]); + } + + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; + } + + $agentcount++; + + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG + |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + + $j++; + } + + $Aecho .= "$Aline"; + $Aecho .= " $agentcount agents logged in on all servers\n"; + $Aecho .= " System Load Average: $load_ave\n\n"; + + # $Aecho .= " - Balanced call\n"; + $Aecho .= " - Agent waiting for call\n"; + $Aecho .= " - Agent waiting for call > 1 minute\n"; + $Aecho .= " - Agent waiting for call > 5 minutes\n"; + $Aecho .= " - Agent on call > 10 seconds\n"; + $Aecho .= " - Agent on call > 1 minute\n"; + $Aecho .= " - Agent on call > 5 minutes\n"; + $Aecho .= " - Agent Paused > 10 seconds\n"; + $Aecho .= " - Agent Paused > 1 minute\n"; + $Aecho .= " - Agent Paused > 5 minutes\n"; + $Aecho .= " - Agent on a dead call\n"; + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + echo "$NFB$agent_dead$NFE Agenten in fordert Toten      \n"; + + echo "
";
+		echo "";
+		echo "$Cecho";
+		echo "$Aecho";
+	}
+	else
+	{
+	echo "KEINE MITTEL BEI DEN ANRUFEN\n";
+	echo "
$Cecho";
+	}
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDADallSUMMARY.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDADallSUMMARY.php new file mode 100644 index 00000000..20136589 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonVDADallSUMMARY.php @@ -0,0 +1,457 @@ + LICENSE: AGPLv2 +# +# Summary for all campaigns live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# changes: +# 61102-1616 - first build +# 61215-1131 - added answered calls and drop percent taken from answered calls +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80525-1040 - Added IVR status summary display for inbound calls +# 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (!isset($RR)) {$gRRroup=4;} + + +$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 and view_reports='1';"; + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +$stmt="select campaign_id from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +?> + + + + + +\n"; +echo "Real-Time All Kampagnen Summary\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "Real-Time All Kampagnen Summary           \n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO "; +echo "       \n"; +if ($adastats<2) + { + echo "+ VIEW MORE SETTINGS"; + } +else + { + echo "- VIEW LESS SETTINGS"; + } +echo "       REPORTS"; +echo "

\n\n"; + +$k=0; +while($k<$groups_to_print) +{ +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$group = $groups[$k]; +echo "$group   -   "; +echo "Modify\n"; + + +$stmt = "select count(*) from vicidial_campaigns where campaign_id='$group' and campaign_allow_inbound='Y';"; +$rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +$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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DIALlev = $row[0]; +$DIALstatusA = $row[1]; +$DIALstatusB = $row[2]; +$DIALstatusC = $row[3]; +$DIALstatusD = $row[4]; +$DIALstatusE = $row[5]; +$DIALorder = $row[6]; +$DIALfilter = $row[7]; +$HOPlev = $row[8]; +$DIALmethod = $row[9]; +$maxDIALlev = $row[10]; +$DROPmax = $row[11]; +$targetDIFF = $row[12]; +$ADAintense = $row[13]; +$ADAavailonly = $row[14]; +$TAPERtime = $row[15]; +$CALLtime = $row[16]; +$DIALtimeout = $row[17]; +$DIALstatuses = $row[18]; + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + +$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$VDhop = $row[0]; + +$stmt="select dialable_leads,calls_today,drops_today,drops_answers_today_pct,differential_onemin,agents_average_onemin,balance_trunk_fill,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4 from vicidial_campaign_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DAleads = $row[0]; +$callsTODAY = $row[1]; +$dropsTODAY = $row[2]; +$drpctTODAY = $row[3]; +$diffONEMIN = $row[4]; +$agentsONEMIN = $row[5]; +$balanceFILL = $row[6]; +$answersTODAY = $row[7]; +$VSCcat1 = $row[8]; +$VSCcat1tally = $row[9]; +$VSCcat2 = $row[10]; +$VSCcat2tally = $row[11]; +$VSCcat3 = $row[12]; +$VSCcat3tally = $row[13]; +$VSCcat4 = $row[14]; +$VSCcat4tally = $row[15]; + +if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } +else {$diffpctONEMIN = '0.00';} + +$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$balanceSHORT = $row[0]; + +echo "
"; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
DIAL LEVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
  MAX LEVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL METHOD:  $DIALmethod    
HOPPER LEVEL:  $HOPlev     DROPPED / ANTWORTED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; +if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} +else + {echo "$drpctTODAY%";} +echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +### Header finish + + + + + +################################################################################ +### START calculating calls/agents +################################################################################ + +################################################################################ +###### OUTBOUND CALLS +################################################################################ +if ($campaign_allow_inbound > 0) + { + $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = preg_replace("/^ | -$/","",$row[0]); + $closer_campaigns = preg_replace("/ /","','",$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='" . mysql_real_escape_string($group) . "' and call_type='OUT') );"; + } +else + { + if ($group=='XXXX-ALL-ACTIVE-XXXX') {$groupSQL = '';} + else {$groupSQL = " and campaign_id='" . mysql_real_escape_string($group) . "'";} + + $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') $groupSQL;"; + } +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + {$out_live++;} + else + { + if (eregi("IVR",$row[0])) + {$in_ivr++;} + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + $out_total++; + $i++; + } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo "KEIN PHASENCANKLOPFEN\n"; + } + + +################################################################################### +###### TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_total=0; + +$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) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + $agentcount=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[3])) + { + $row[5]=$row[6]; + } + $Lstatus = $row[3]; + $status = sprintf("%-6s", $row[3]); + if (!eregi("INCALL|QUEUE",$row[3])) + {$call_time_S = ($STARTtime - $row[6]);} + else + {$call_time_S = ($STARTtime - $row[5]);} + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if (eregi("PAUSED",$row[3])) + { + if ($call_time_M_int >= 30) + {$i++; continue;} + else + { + $agent_paused++; $agent_total++; + } + } + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + $agentcount++; + + + $i++; + } + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + + echo "
";
+		echo "";
+	}
+	else
+	{
+	echo " NO AGENTS ON CALLS
\n"; + } + +################################################################################ +### END calculating calls/agents +################################################################################ + + + + + +echo "
"; + +echo "\n\n"; +$k++; +} + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeoncall.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeoncall.php new file mode 100644 index 00000000..4227f836 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeoncall.php @@ -0,0 +1,180 @@ + LICENSE: GPLv2 +### + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Call\n"; +echo "
\n\n";
+
+echo "VICIDIAL: Time On Call                                          $NOW_TIME\n\n";
+echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+echo "| STATION    | SESSIONID | CHANNEL   | NUMBER DIALED    | START TIME          | MINUTES |\n";
+echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+
+$stmt="SELECT count(*) from live_sip_channels where server_ip='$server_ip';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$parked_count = $row[0];
+	if ($parked_count > 0)
+	{
+	$stmt="select extension from live_channels where server_ip='$server_ip';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$ext_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$live_zap_counter=0;
+	$sessions = '';
+	while ($i < $ext_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if (preg_match("/^8600/i",$row[0]))
+			{
+			$sessions .= "$row[0]|";
+			}
+		$i++;
+		}
+	$sessions = preg_replace("/\|$/",'',$sessions);
+
+	if ($DB) {echo "SESSIONS: -$sessions-\n";}
+
+	$stmt="select * from live_sip_channels where server_ip='$server_ip' order by channel;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$parked_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$live_calls_counter=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ( (preg_match("/Zap\/|internal|ring/i",$row[3])) or (preg_match("/Local\//i",$row[0])) )
+			{
+			if ($DB) {echo "NOT STATION |$row[0]|$row[3]|\n";}
+			$session_id = '';
+			}
+		else 
+			{
+			if (preg_match("/$row[3]/i",$sessions))
+				{
+				if ($DB) {echo "LIVE STATION|$row[0]|$row[3]|\n";}
+				$session_id = $row[3];
+				$station = preg_replace("/SIP\//",'',$row[0]);
+				$station = preg_replace("/-.*/",'',$station);
+			
+				$LIVE_sessions[$live_calls_counter] =			"$session_id";
+				$LIVE_sessions_FORMAT[$live_calls_counter] =	sprintf("%-9s", $session_id);
+				$LIVE_stations[$live_calls_counter] =			"$station";
+				$LIVE_stations_FORMAT[$live_calls_counter] =	sprintf("%-10s", $station);
+
+		#		echo "| $station | $session_id | \n";
+
+				$live_calls_counter++;
+				}
+			else
+				{
+				if ($DB) {echo "NOT STATIONZ|$row[0]|$row[3]|\n";}
+				$session_id = '';
+				}
+			}
+
+		$i++;
+		}
+
+		if ($live_calls_counter > 0)
+		{
+		$i=0;
+		$LC_counter = $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;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$parked_to_print = mysql_num_rows($rslt);
+			$row=mysql_fetch_row($rslt);
+
+			$channel =			sprintf("%-9s", $row[0]);
+			$number_dialed =	sprintf("%-16s", $row[2]);
+			$start_time =		sprintf("%-19s", $row[3]);
+			$call_time_S = ($STARTtime - $row[4]);
+
+			$call_time_M = ($call_time_S / 60);
+			$call_time_M = round($call_time_M, 2);
+			$call_time_M_int = intval("$call_time_M");
+			$call_time_SEC = ($call_time_M - $call_time_M_int);
+			$call_time_SEC = ($call_time_SEC * 60);
+			$call_time_SEC = round($call_time_SEC, 0);
+			if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+			$call_time_MS = "$call_time_M_int:$call_time_SEC";
+			$call_time_MS =		sprintf("%7s", $call_time_MS);
+			$G = '';		$EG = '';
+			if ($call_time_M_int >= 12) {$G=''; $EG='';}
+			if ($call_time_M_int >= 31) {$G=''; $EG='';}
+
+			echo "| $G$LIVE_stations_FORMAT[$i]$EG | $G$LIVE_sessions_FORMAT[$i]$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+			$i++;
+			}
+
+		echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+		echo "  $i stations on live calls on server $server_ip\n\n";
+
+		echo "             - 12 minutes or more on live call\n";
+		echo "             - Over 30 minutes on live call\n";
+
+		}
+		else
+		{
+		echo "*****************************************************************************************\n";
+		echo "*****************************************************************************************\n";
+		echo "*************************************** NO LIVE STATIONS ********************************\n";
+		echo "*****************************************************************************************\n";
+		echo "*****************************************************************************************\n";
+		}
+
+	}
+	else
+	{
+	echo "*****************************************************************************************\n";
+	echo "*****************************************************************************************\n";
+	echo "*************************************** NO LIVE STATIONS ********************************\n";
+	echo "*****************************************************************************************\n";
+	echo "*****************************************************************************************\n";
+	}
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonpark.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonpark.php new file mode 100644 index 00000000..7a049e62 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/AST_timeonpark.php @@ -0,0 +1,220 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1042 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1';"; + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$timeONEhoursAGO = ($STARTtime - 3600); +$epochHALFhoursAGO = ($STARTtime - 1860); +$timeONEhoursAGO = date("Y-m-d H:i:s",$timeONEhoursAGO); +$timeHALFhoursAGO = date("Y-m-d H:i:s",$epochHALFhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where status='TALKING' and grab_time < '$timeONEhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + $stmt="delete from park_log where status='PARKED' and parked_time < '$timeHALFhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + } + } + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Park\n"; +echo "
\n\n";
+
+echo "VICIDIAL: Time On Park         $NOW_TIME    REPORTS\n\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+echo "| CHANNEL    | GROUP           | START TIME          | MINUTES |\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+
+#$link=mysql_connect("localhost", "cron", "1234");
+# $linkX=mysql_connect("localhost", "cron", "1234");
+#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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 1) {$G=''; $EG='';}
+		if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------+-----------------+---------------------+---------+\n";
+		echo "  $i callers waiting on server $server_ip\n\n";
+
+		echo "             - 1 minute or more on hold\n";
+		echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	echo "********************KEIN PHASENCANKLOPFEN*********************\n";
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	}
+
+###################################################################################
+###### TIME ON INBOUND CALLS
+###################################################################################
+echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "VICIDIAL: Bevollmächtigte Time On Inbound Calls                             $NOW_TIME\n\n";
+echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+echo "| STATION    | USER   | CHANNEL    | GROUP           | START TIME          | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$extension =		sprintf("%-10s", $row[0]);
+		$user =				sprintf("%-6s", $row[1]);
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 12) {$G=''; $EG='';}
+		if ($call_time_M_int >= 31) {$G=''; $EG='';}
+
+		echo "| $G$extension$EG | $G$user$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+		echo "  $i agents on calls on server $server_ip\n\n";
+
+		echo "             - 12 minutes or more on call\n";
+		echo "             - Over 30 minutes on call\n";
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "*********************************KEINE MITTEL BEI DEN ANRUFEN*********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin.php new file mode 100644 index 00000000..06129ac4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin.php @@ -0,0 +1,25016 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +###################################################################################################### +###################################################################################################### +####### static variable settings for display options +###################################################################################################### +###################################################################################################### + +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$campaigns_color = '#FFCC99'; +$lists_color = '#FFCCCC'; +$ingroups_color = '#CC99FF'; +$remoteagent_color ='#CCFFCC'; +$usergroups_color = '#CCFFFF'; +$scripts_color = '#99FFCC'; +$filters_color = '#CCCCCC'; +$admin_color = '#FF99FF'; +$reports_color = '#99FF33'; + $times_color = '#FF33FF'; + $shifts_color = '#FF33FF'; + $phones_color = '#FF33FF'; + $conference_color = '#FF33FF'; + $server_color = '#FF33FF'; + $templates_color = '#FF33FF'; + $carriers_color = '#FF33FF'; + $settings_color = '#FF33FF'; + $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; +$subcamp_color = '#FF9933'; +$users_font = 'BLACK'; +$campaigns_font = 'BLACK'; +$lists_font = 'BLACK'; +$ingroups_font = 'BLACK'; +$remoteagent_font = 'BLACK'; +$usergroups_font = 'BLACK'; +$scripts_font = 'BLACK'; +$filters_font = 'BLACK'; +$admin_font = 'BLACK'; +$reports_font = 'BLACK'; + $times_font = 'BLACK'; + $phones_font = 'BLACK'; + $conference_font = 'BLACK'; + $server_font = 'BLACK'; + $settings_font = 'BLACK'; + $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; +$subcamp_font = 'BLACK'; + +### comment this section out for colorful section headings +$users_color = '#E6E6E6'; +$campaigns_color = '#E6E6E6'; +$lists_color = '#E6E6E6'; +$ingroups_color = '#E6E6E6'; +$remoteagent_color ='#E6E6E6'; +$usergroups_color = '#E6E6E6'; +$scripts_color = '#E6E6E6'; +$filters_color = '#E6E6E6'; +$admin_color = '#E6E6E6'; +$reports_color = '#E6E6E6'; + $times_color = '#C6C6C6'; + $shifts_color = '#C6C6C6'; + $phones_color = '#C6C6C6'; + $conference_color = '#C6C6C6'; + $server_color = '#C6C6C6'; + $templates_color = '#C6C6C6'; + $carriers_color = '#C6C6C6'; + $settings_color = '#C6C6C6'; + $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; +$subcamp_color = '#C6C6C6'; +### + + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +###################################################################################################### +###################################################################################################### +####### Form variable declaration +###################################################################################################### +###################################################################################################### + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["active"])) {$active=$_GET["active"];} + elseif (isset($_POST["active"])) {$active=$_POST["active"];} +if (isset($_GET["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_GET["adaptive_dl_diff_target"];} + elseif (isset($_POST["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_POST["adaptive_dl_diff_target"];} +if (isset($_GET["adaptive_dropped_percentage"])) {$adaptive_dropped_percentage=$_GET["adaptive_dropped_percentage"];} + elseif (isset($_POST["adaptive_dropped_percentage"])){$adaptive_dropped_percentage=$_POST["adaptive_dropped_percentage"];} +if (isset($_GET["adaptive_intensity"])) {$adaptive_intensity=$_GET["adaptive_intensity"];} + elseif (isset($_POST["adaptive_intensity"])) {$adaptive_intensity=$_POST["adaptive_intensity"];} +if (isset($_GET["adaptive_latest_server_time"])) {$adaptive_latest_server_time=$_GET["adaptive_latest_server_time"];} + elseif (isset($_POST["adaptive_latest_server_time"])){$adaptive_latest_server_time=$_POST["adaptive_latest_server_time"];} +if (isset($_GET["adaptive_maximum_level"])) {$adaptive_maximum_level=$_GET["adaptive_maximum_level"];} + elseif (isset($_POST["adaptive_maximum_level"])) {$adaptive_maximum_level=$_POST["adaptive_maximum_level"];} +if (isset($_GET["SUB"])) {$SUB=$_GET["SUB"];} + elseif (isset($_POST["SUB"])) {$SUB=$_POST["SUB"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["admin_hangup_enabled"])) {$admin_hangup_enabled=$_GET["admin_hangup_enabled"];} + elseif (isset($_POST["admin_hangup_enabled"])) {$admin_hangup_enabled=$_POST["admin_hangup_enabled"];} +if (isset($_GET["admin_hijack_enabled"])) {$admin_hijack_enabled=$_GET["admin_hijack_enabled"];} + elseif (isset($_POST["admin_hijack_enabled"])) {$admin_hijack_enabled=$_POST["admin_hijack_enabled"];} +if (isset($_GET["admin_monitor_enabled"])) {$admin_monitor_enabled=$_GET["admin_monitor_enabled"];} + elseif (isset($_POST["admin_monitor_enabled"])) {$admin_monitor_enabled=$_POST["admin_monitor_enabled"];} +if (isset($_GET["AFLogging_enabled"])) {$AFLogging_enabled=$_GET["AFLogging_enabled"];} + elseif (isset($_POST["AFLogging_enabled"])) {$AFLogging_enabled=$_POST["AFLogging_enabled"];} +if (isset($_GET["agent_choose_ingroups"])) {$agent_choose_ingroups=$_GET["agent_choose_ingroups"];} + elseif (isset($_POST["agent_choose_ingroups"])) {$agent_choose_ingroups=$_POST["agent_choose_ingroups"];} +if (isset($_GET["agentcall_manual"])) {$agentcall_manual=$_GET["agentcall_manual"];} + elseif (isset($_POST["agentcall_manual"])) {$agentcall_manual=$_POST["agentcall_manual"];} +if (isset($_GET["agentonly_callbacks"])) {$agentonly_callbacks=$_GET["agentonly_callbacks"];} + elseif (isset($_POST["agentonly_callbacks"])) {$agentonly_callbacks=$_POST["agentonly_callbacks"];} +if (isset($_GET["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_GET["AGI_call_logging_enabled"];} + elseif (isset($_POST["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_POST["AGI_call_logging_enabled"];} +if (isset($_GET["agi_output"])) {$agi_output=$_GET["agi_output"];} + elseif (isset($_POST["agi_output"])) {$agi_output=$_POST["agi_output"];} +if (isset($_GET["allcalls_delay"])) {$allcalls_delay=$_GET["allcalls_delay"];} + elseif (isset($_POST["allcalls_delay"])) {$allcalls_delay=$_POST["allcalls_delay"];} +if (isset($_GET["allow_closers"])) {$allow_closers=$_GET["allow_closers"];} + elseif (isset($_POST["allow_closers"])) {$allow_closers=$_POST["allow_closers"];} +if (isset($_GET["alt_number_dialing"])) {$alt_number_dialing=$_GET["alt_number_dialing"];} + elseif (isset($_POST["alt_number_dialing"])) {$alt_number_dialing=$_POST["alt_number_dialing"];} +if (isset($_GET["alter_agent_interface_options"])) {$alter_agent_interface_options=$_GET["alter_agent_interface_options"];} + elseif (isset($_POST["alter_agent_interface_options"])) {$alter_agent_interface_options=$_POST["alter_agent_interface_options"];} +if (isset($_GET["am_message_exten"])) {$am_message_exten=$_GET["am_message_exten"];} + elseif (isset($_POST["am_message_exten"])) {$am_message_exten=$_POST["am_message_exten"];} +if (isset($_GET["amd_send_to_vmx"])) {$amd_send_to_vmx=$_GET["amd_send_to_vmx"];} + elseif (isset($_POST["amd_send_to_vmx"])) {$amd_send_to_vmx=$_POST["amd_send_to_vmx"];} +if (isset($_GET["answer_transfer_agent"])) {$answer_transfer_agent=$_GET["answer_transfer_agent"];} + elseif (isset($_POST["answer_transfer_agent"])) {$answer_transfer_agent=$_POST["answer_transfer_agent"];} +if (isset($_GET["ast_admin_access"])) {$ast_admin_access=$_GET["ast_admin_access"];} + elseif (isset($_POST["ast_admin_access"])) {$ast_admin_access=$_POST["ast_admin_access"];} +if (isset($_GET["ast_delete_phones"])) {$ast_delete_phones=$_GET["ast_delete_phones"];} + elseif (isset($_POST["ast_delete_phones"])) {$ast_delete_phones=$_POST["ast_delete_phones"];} +if (isset($_GET["asterisk_version"])) {$asterisk_version=$_GET["asterisk_version"];} + elseif (isset($_POST["asterisk_version"])) {$asterisk_version=$_POST["asterisk_version"];} +if (isset($_GET["ASTmgrSECRET"])) {$ASTmgrSECRET=$_GET["ASTmgrSECRET"];} + elseif (isset($_POST["ASTmgrSECRET"])) {$ASTmgrSECRET=$_POST["ASTmgrSECRET"];} +if (isset($_GET["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_GET["ASTmgrUSERNAME"];} + elseif (isset($_POST["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_POST["ASTmgrUSERNAME"];} +if (isset($_GET["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_GET["ASTmgrUSERNAMElisten"];} + elseif (isset($_POST["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_POST["ASTmgrUSERNAMElisten"];} +if (isset($_GET["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_GET["ASTmgrUSERNAMEsend"];} + elseif (isset($_POST["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_POST["ASTmgrUSERNAMEsend"];} +if (isset($_GET["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_GET["ASTmgrUSERNAMEupdate"];} + elseif (isset($_POST["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_POST["ASTmgrUSERNAMEupdate"];} +if (isset($_GET["attempt_delay"])) {$attempt_delay=$_GET["attempt_delay"];} + elseif (isset($_POST["attempt_delay"])) {$attempt_delay=$_POST["attempt_delay"];} +if (isset($_GET["attempt_maximum"])) {$attempt_maximum=$_GET["attempt_maximum"];} + elseif (isset($_POST["attempt_maximum"])) {$attempt_maximum=$_POST["attempt_maximum"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["auto_dial_next_number"])) {$auto_dial_next_number=$_GET["auto_dial_next_number"];} + elseif (isset($_POST["auto_dial_next_number"])) {$auto_dial_next_number=$_POST["auto_dial_next_number"];} +if (isset($_GET["available_only_ratio_tally"])) {$available_only_ratio_tally=$_GET["available_only_ratio_tally"];} + elseif (isset($_POST["available_only_ratio_tally"])){$available_only_ratio_tally=$_POST["available_only_ratio_tally"];} +if (isset($_GET["call_out_number_group"])) {$call_out_number_group=$_GET["call_out_number_group"];} + elseif (isset($_POST["call_out_number_group"])) {$call_out_number_group=$_POST["call_out_number_group"];} +if (isset($_GET["call_parking_enabled"])) {$call_parking_enabled=$_GET["call_parking_enabled"];} + elseif (isset($_POST["call_parking_enabled"])) {$call_parking_enabled=$_POST["call_parking_enabled"];} +if (isset($_GET["call_time_comments"])) {$call_time_comments=$_GET["call_time_comments"];} + elseif (isset($_POST["call_time_comments"])) {$call_time_comments=$_POST["call_time_comments"];} +if (isset($_GET["call_time_id"])) {$call_time_id=$_GET["call_time_id"];} + elseif (isset($_POST["call_time_id"])) {$call_time_id=$_POST["call_time_id"];} +if (isset($_GET["call_time_name"])) {$call_time_name=$_GET["call_time_name"];} + elseif (isset($_POST["call_time_name"])) {$call_time_name=$_POST["call_time_name"];} +if (isset($_GET["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_GET["CallerID_popup_enabled"];} + elseif (isset($_POST["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_POST["CallerID_popup_enabled"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["campaign_detail"])) {$campaign_detail=$_GET["campaign_detail"];} + elseif (isset($_POST["campaign_detail"])) {$campaign_detail=$_POST["campaign_detail"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["campaign_name"])) {$campaign_name=$_GET["campaign_name"];} + elseif (isset($_POST["campaign_name"])) {$campaign_name=$_POST["campaign_name"];} +if (isset($_GET["campaign_rec_exten"])) {$campaign_rec_exten=$_GET["campaign_rec_exten"];} + elseif (isset($_POST["campaign_rec_exten"])) {$campaign_rec_exten=$_POST["campaign_rec_exten"];} +if (isset($_GET["campaign_rec_filename"])) {$campaign_rec_filename=$_GET["campaign_rec_filename"];} + elseif (isset($_POST["campaign_rec_filename"])) {$campaign_rec_filename=$_POST["campaign_rec_filename"];} +if (isset($_GET["ingroup_rec_filename"])) {$ingroup_rec_filename=$_GET["ingroup_rec_filename"];} + elseif (isset($_POST["ingroup_rec_filename"])) {$ingroup_rec_filename=$_POST["ingroup_rec_filename"];} +if (isset($_GET["campaign_recording"])) {$campaign_recording=$_GET["campaign_recording"];} + elseif (isset($_POST["campaign_recording"])) {$campaign_recording=$_POST["campaign_recording"];} +if (isset($_GET["campaign_vdad_exten"])) {$campaign_vdad_exten=$_GET["campaign_vdad_exten"];} + elseif (isset($_POST["campaign_vdad_exten"])) {$campaign_vdad_exten=$_POST["campaign_vdad_exten"];} +if (isset($_GET["change_agent_campaign"])) {$change_agent_campaign=$_GET["change_agent_campaign"];} + elseif (isset($_POST["change_agent_campaign"])) {$change_agent_campaign=$_POST["change_agent_campaign"];} +if (isset($_GET["client_browser"])) {$client_browser=$_GET["client_browser"];} + elseif (isset($_POST["client_browser"])) {$client_browser=$_POST["client_browser"];} +if (isset($_GET["closer_default_blended"])) {$closer_default_blended=$_GET["closer_default_blended"];} + elseif (isset($_POST["closer_default_blended"])) {$closer_default_blended=$_POST["closer_default_blended"];} +if (isset($_GET["company"])) {$company=$_GET["company"];} + elseif (isset($_POST["company"])) {$company=$_POST["company"];} +if (isset($_GET["computer_ip"])) {$computer_ip=$_GET["computer_ip"];} + elseif (isset($_POST["computer_ip"])) {$computer_ip=$_POST["computer_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["conf_on_extension"])) {$conf_on_extension=$_GET["conf_on_extension"];} + elseif (isset($_POST["conf_on_extension"])) {$conf_on_extension=$_POST["conf_on_extension"];} +if (isset($_GET["conferencing_enabled"])) {$conferencing_enabled=$_GET["conferencing_enabled"];} + elseif (isset($_POST["conferencing_enabled"])) {$conferencing_enabled=$_POST["conferencing_enabled"];} +if (isset($_GET["CoNfIrM"])) {$CoNfIrM=$_GET["CoNfIrM"];} + elseif (isset($_POST["CoNfIrM"])) {$CoNfIrM=$_POST["CoNfIrM"];} +if (isset($_GET["ct_default_start"])) {$ct_default_start=$_GET["ct_default_start"];} + elseif (isset($_POST["ct_default_start"])) {$ct_default_start=$_POST["ct_default_start"];} +if (isset($_GET["ct_default_stop"])) {$ct_default_stop=$_GET["ct_default_stop"];} + elseif (isset($_POST["ct_default_stop"])) {$ct_default_stop=$_POST["ct_default_stop"];} +if (isset($_GET["ct_friday_start"])) {$ct_friday_start=$_GET["ct_friday_start"];} + elseif (isset($_POST["ct_friday_start"])) {$ct_friday_start=$_POST["ct_friday_start"];} +if (isset($_GET["ct_friday_stop"])) {$ct_friday_stop=$_GET["ct_friday_stop"];} + elseif (isset($_POST["ct_friday_stop"])) {$ct_friday_stop=$_POST["ct_friday_stop"];} +if (isset($_GET["ct_monday_start"])) {$ct_monday_start=$_GET["ct_monday_start"];} + elseif (isset($_POST["ct_monday_start"])) {$ct_monday_start=$_POST["ct_monday_start"];} +if (isset($_GET["ct_monday_stop"])) {$ct_monday_stop=$_GET["ct_monday_stop"];} + elseif (isset($_POST["ct_monday_stop"])) {$ct_monday_stop=$_POST["ct_monday_stop"];} +if (isset($_GET["ct_saturday_start"])) {$ct_saturday_start=$_GET["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"];} + elseif (isset($_POST["ct_saturday_stop"])) {$ct_saturday_stop=$_POST["ct_saturday_stop"];} +if (isset($_GET["ct_sunday_start"])) {$ct_sunday_start=$_GET["ct_sunday_start"];} + elseif (isset($_POST["ct_sunday_start"])) {$ct_sunday_start=$_POST["ct_sunday_start"];} +if (isset($_GET["ct_sunday_stop"])) {$ct_sunday_stop=$_GET["ct_sunday_stop"];} + elseif (isset($_POST["ct_sunday_stop"])) {$ct_sunday_stop=$_POST["ct_sunday_stop"];} +if (isset($_GET["ct_thursday_start"])) {$ct_thursday_start=$_GET["ct_thursday_start"];} + elseif (isset($_POST["ct_thursday_start"])) {$ct_thursday_start=$_POST["ct_thursday_start"];} +if (isset($_GET["ct_thursday_stop"])) {$ct_thursday_stop=$_GET["ct_thursday_stop"];} + elseif (isset($_POST["ct_thursday_stop"])) {$ct_thursday_stop=$_POST["ct_thursday_stop"];} +if (isset($_GET["ct_tuesday_start"])) {$ct_tuesday_start=$_GET["ct_tuesday_start"];} + elseif (isset($_POST["ct_tuesday_start"])) {$ct_tuesday_start=$_POST["ct_tuesday_start"];} +if (isset($_GET["ct_tuesday_stop"])) {$ct_tuesday_stop=$_GET["ct_tuesday_stop"];} + elseif (isset($_POST["ct_tuesday_stop"])) {$ct_tuesday_stop=$_POST["ct_tuesday_stop"];} +if (isset($_GET["ct_wednesday_start"])) {$ct_wednesday_start=$_GET["ct_wednesday_start"];} + elseif (isset($_POST["ct_wednesday_start"])) {$ct_wednesday_start=$_POST["ct_wednesday_start"];} +if (isset($_GET["ct_wednesday_stop"])) {$ct_wednesday_stop=$_GET["ct_wednesday_stop"];} + elseif (isset($_POST["ct_wednesday_stop"])) {$ct_wednesday_stop=$_POST["ct_wednesday_stop"];} +if (isset($_GET["DBX_database"])) {$DBX_database=$_GET["DBX_database"];} + elseif (isset($_POST["DBX_database"])) {$DBX_database=$_POST["DBX_database"];} +if (isset($_GET["DBX_pass"])) {$DBX_pass=$_GET["DBX_pass"];} + elseif (isset($_POST["DBX_pass"])) {$DBX_pass=$_POST["DBX_pass"];} +if (isset($_GET["DBX_port"])) {$DBX_port=$_GET["DBX_port"];} + elseif (isset($_POST["DBX_port"])) {$DBX_port=$_POST["DBX_port"];} +if (isset($_GET["DBX_server"])) {$DBX_server=$_GET["DBX_server"];} + elseif (isset($_POST["DBX_server"])) {$DBX_server=$_POST["DBX_server"];} +if (isset($_GET["DBX_user"])) {$DBX_user=$_GET["DBX_user"];} + elseif (isset($_POST["DBX_user"])) {$DBX_user=$_POST["DBX_user"];} +if (isset($_GET["DBY_database"])) {$DBY_database=$_GET["DBY_database"];} + elseif (isset($_POST["DBY_database"])) {$DBY_database=$_POST["DBY_database"];} +if (isset($_GET["DBY_pass"])) {$DBY_pass=$_GET["DBY_pass"];} + elseif (isset($_POST["DBY_pass"])) {$DBY_pass=$_POST["DBY_pass"];} +if (isset($_GET["DBY_port"])) {$DBY_port=$_GET["DBY_port"];} + elseif (isset($_POST["DBY_port"])) {$DBY_port=$_POST["DBY_port"];} +if (isset($_GET["DBY_server"])) {$DBY_server=$_GET["DBY_server"];} + elseif (isset($_POST["DBY_server"])) {$DBY_server=$_POST["DBY_server"];} +if (isset($_GET["DBY_user"])) {$DBY_user=$_GET["DBY_user"];} + elseif (isset($_POST["DBY_user"])) {$DBY_user=$_POST["DBY_user"];} +if (isset($_GET["delete_call_times"])) {$delete_call_times=$_GET["delete_call_times"];} + elseif (isset($_POST["delete_call_times"])) {$delete_call_times=$_POST["delete_call_times"];} +if (isset($_GET["delete_campaigns"])) {$delete_campaigns=$_GET["delete_campaigns"];} + elseif (isset($_POST["delete_campaigns"])) {$delete_campaigns=$_POST["delete_campaigns"];} +if (isset($_GET["delete_filters"])) {$delete_filters=$_GET["delete_filters"];} + elseif (isset($_POST["delete_filters"])) {$delete_filters=$_POST["delete_filters"];} +if (isset($_GET["delete_ingroups"])) {$delete_ingroups=$_GET["delete_ingroups"];} + elseif (isset($_POST["delete_ingroups"])) {$delete_ingroups=$_POST["delete_ingroups"];} +if (isset($_GET["delete_lists"])) {$delete_lists=$_GET["delete_lists"];} + elseif (isset($_POST["delete_lists"])) {$delete_lists=$_POST["delete_lists"];} +if (isset($_GET["delete_remote_agents"])) {$delete_remote_agents=$_GET["delete_remote_agents"];} + elseif (isset($_POST["delete_remote_agents"])) {$delete_remote_agents=$_POST["delete_remote_agents"];} +if (isset($_GET["delete_scripts"])) {$delete_scripts=$_GET["delete_scripts"];} + elseif (isset($_POST["delete_scripts"])) {$delete_scripts=$_POST["delete_scripts"];} +if (isset($_GET["delete_user_groups"])) {$delete_user_groups=$_GET["delete_user_groups"];} + elseif (isset($_POST["delete_user_groups"])) {$delete_user_groups=$_POST["delete_user_groups"];} +if (isset($_GET["delete_users"])) {$delete_users=$_GET["delete_users"];} + elseif (isset($_POST["delete_users"])) {$delete_users=$_POST["delete_users"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["dial_status_a"])) {$dial_status_a=$_GET["dial_status_a"];} + elseif (isset($_POST["dial_status_a"])) {$dial_status_a=$_POST["dial_status_a"];} +if (isset($_GET["dial_status_b"])) {$dial_status_b=$_GET["dial_status_b"];} + elseif (isset($_POST["dial_status_b"])) {$dial_status_b=$_POST["dial_status_b"];} +if (isset($_GET["dial_status_c"])) {$dial_status_c=$_GET["dial_status_c"];} + elseif (isset($_POST["dial_status_c"])) {$dial_status_c=$_POST["dial_status_c"];} +if (isset($_GET["dial_status_d"])) {$dial_status_d=$_GET["dial_status_d"];} + elseif (isset($_POST["dial_status_d"])) {$dial_status_d=$_POST["dial_status_d"];} +if (isset($_GET["dial_status_e"])) {$dial_status_e=$_GET["dial_status_e"];} + elseif (isset($_POST["dial_status_e"])) {$dial_status_e=$_POST["dial_status_e"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dialplan_number"])) {$dialplan_number=$_GET["dialplan_number"];} + elseif (isset($_POST["dialplan_number"])) {$dialplan_number=$_POST["dialplan_number"];} +if (isset($_GET["drop_call_seconds"])) {$drop_call_seconds=$_GET["drop_call_seconds"];} + elseif (isset($_POST["drop_call_seconds"])) {$drop_call_seconds=$_POST["drop_call_seconds"];} +if (isset($_GET["drop_exten"])) {$drop_exten=$_GET["drop_exten"];} + elseif (isset($_POST["drop_exten"])) {$drop_exten=$_POST["drop_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["dtmf_send_extension"])) {$dtmf_send_extension=$_GET["dtmf_send_extension"];} + elseif (isset($_POST["dtmf_send_extension"])) {$dtmf_send_extension=$_POST["dtmf_send_extension"];} +if (isset($_GET["enable_fast_refresh"])) {$enable_fast_refresh=$_GET["enable_fast_refresh"];} + elseif (isset($_POST["enable_fast_refresh"])) {$enable_fast_refresh=$_POST["enable_fast_refresh"];} +if (isset($_GET["enable_persistant_mysql"])) {$enable_persistant_mysql=$_GET["enable_persistant_mysql"];} + elseif (isset($_POST["enable_persistant_mysql"])) {$enable_persistant_mysql=$_POST["enable_persistant_mysql"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["fast_refresh_rate"])) {$fast_refresh_rate=$_GET["fast_refresh_rate"];} + elseif (isset($_POST["fast_refresh_rate"])) {$fast_refresh_rate=$_POST["fast_refresh_rate"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["fronter_display"])) {$fronter_display=$_GET["fronter_display"];} + elseif (isset($_POST["fronter_display"])) {$fronter_display=$_POST["fronter_display"];} +if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];} + elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["get_call_launch"])) {$get_call_launch=$_GET["get_call_launch"];} + elseif (isset($_POST["get_call_launch"])) {$get_call_launch=$_POST["get_call_launch"];} +if (isset($_GET["group_color"])) {$group_color=$_GET["group_color"];} + elseif (isset($_POST["group_color"])) {$group_color=$_POST["group_color"];} +if (isset($_GET["group_id"])) {$group_id=$_GET["group_id"];} + elseif (isset($_POST["group_id"])) {$group_id=$_POST["group_id"];} +if (isset($_GET["group_name"])) {$group_name=$_GET["group_name"];} + elseif (isset($_POST["group_name"])) {$group_name=$_POST["group_name"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["XFERgroups"])) {$XFERgroups=$_GET["XFERgroups"];} + elseif (isset($_POST["XFERgroups"])) {$XFERgroups=$_POST["XFERgroups"];} +if (isset($_GET["HKstatus"])) {$HKstatus=$_GET["HKstatus"];} + elseif (isset($_POST["HKstatus"])) {$HKstatus=$_POST["HKstatus"];} +if (isset($_GET["hopper_level"])) {$hopper_level=$_GET["hopper_level"];} + elseif (isset($_POST["hopper_level"])) {$hopper_level=$_POST["hopper_level"];} +if (isset($_GET["hotkey"])) {$hotkey=$_GET["hotkey"];} + elseif (isset($_POST["hotkey"])) {$hotkey=$_POST["hotkey"];} +if (isset($_GET["hotkeys_active"])) {$hotkeys_active=$_GET["hotkeys_active"];} + elseif (isset($_POST["hotkeys_active"])) {$hotkeys_active=$_POST["hotkeys_active"];} +if (isset($_GET["install_directory"])) {$install_directory=$_GET["install_directory"];} + elseif (isset($_POST["install_directory"])) {$install_directory=$_POST["install_directory"];} +if (isset($_GET["lead_filter_comments"])) {$lead_filter_comments=$_GET["lead_filter_comments"];} + elseif (isset($_POST["lead_filter_comments"])) {$lead_filter_comments=$_POST["lead_filter_comments"];} +if (isset($_GET["lead_filter_id"])) {$lead_filter_id=$_GET["lead_filter_id"];} + elseif (isset($_POST["lead_filter_id"])) {$lead_filter_id=$_POST["lead_filter_id"];} +if (isset($_GET["lead_filter_name"])) {$lead_filter_name=$_GET["lead_filter_name"];} + elseif (isset($_POST["lead_filter_name"])) {$lead_filter_name=$_POST["lead_filter_name"];} +if (isset($_GET["lead_filter_sql"])) {$lead_filter_sql=$_GET["lead_filter_sql"];} + elseif (isset($_POST["lead_filter_sql"])) {$lead_filter_sql=$_POST["lead_filter_sql"];} +if (isset($_GET["lead_order"])) {$lead_order=$_GET["lead_order"];} + elseif (isset($_POST["lead_order"])) {$lead_order=$_POST["lead_order"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["list_name"])) {$list_name=$_GET["list_name"];} + elseif (isset($_POST["list_name"])) {$list_name=$_POST["list_name"];} +if (isset($_GET["load_leads"])) {$load_leads=$_GET["load_leads"];} + elseif (isset($_POST["load_leads"])) {$load_leads=$_POST["load_leads"];} +if (isset($_GET["local_call_time"])) {$local_call_time=$_GET["local_call_time"];} + elseif (isset($_POST["local_call_time"])) {$local_call_time=$_POST["local_call_time"];} +if (isset($_GET["local_gmt"])) {$local_gmt=$_GET["local_gmt"];} + elseif (isset($_POST["local_gmt"])) {$local_gmt=$_POST["local_gmt"];} +if (isset($_GET["local_web_callerID_URL"])) {$local_web_callerID_URL=$_GET["local_web_callerID_URL"];} + elseif (isset($_POST["local_web_callerID_URL"])) {$local_web_callerID_URL=$_POST["local_web_callerID_URL"];} +if (isset($_GET["login"])) {$login=$_GET["login"];} + elseif (isset($_POST["login"])) {$login=$_POST["login"];} +if (isset($_GET["login_campaign"])) {$login_campaign=$_GET["login_campaign"];} + elseif (isset($_POST["login_campaign"])) {$login_campaign=$_POST["login_campaign"];} +if (isset($_GET["login_pass"])) {$login_pass=$_GET["login_pass"];} + elseif (isset($_POST["login_pass"])) {$login_pass=$_POST["login_pass"];} +if (isset($_GET["login_user"])) {$login_user=$_GET["login_user"];} + elseif (isset($_POST["login_user"])) {$login_user=$_POST["login_user"];} +if (isset($_GET["max_vicidial_trunks"])) {$max_vicidial_trunks=$_GET["max_vicidial_trunks"];} + elseif (isset($_POST["max_vicidial_trunks"])) {$max_vicidial_trunks=$_POST["max_vicidial_trunks"];} +if (isset($_GET["modify_call_times"])) {$modify_call_times=$_GET["modify_call_times"];} + elseif (isset($_POST["modify_call_times"])) {$modify_call_times=$_POST["modify_call_times"];} +if (isset($_GET["modify_leads"])) {$modify_leads=$_GET["modify_leads"];} + elseif (isset($_POST["modify_leads"])) {$modify_leads=$_POST["modify_leads"];} +if (isset($_GET["monitor_prefix"])) {$monitor_prefix=$_GET["monitor_prefix"];} + elseif (isset($_POST["monitor_prefix"])) {$monitor_prefix=$_POST["monitor_prefix"];} +if (isset($_GET["next_agent_call"])) {$next_agent_call=$_GET["next_agent_call"];} + elseif (isset($_POST["next_agent_call"])) {$next_agent_call=$_POST["next_agent_call"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["old_campaign_id"])) {$old_campaign_id=$_GET["old_campaign_id"];} + elseif (isset($_POST["old_campaign_id"])) {$old_campaign_id=$_POST["old_campaign_id"];} +if (isset($_GET["old_conf_exten"])) {$old_conf_exten=$_GET["old_conf_exten"];} + elseif (isset($_POST["old_conf_exten"])) {$old_conf_exten=$_POST["old_conf_exten"];} +if (isset($_GET["old_extension"])) {$old_extension=$_GET["old_extension"];} + elseif (isset($_POST["old_extension"])) {$old_extension=$_POST["old_extension"];} +if (isset($_GET["old_server_id"])) {$old_server_id=$_GET["old_server_id"];} + elseif (isset($_POST["old_server_id"])) {$old_server_id=$_POST["old_server_id"];} +if (isset($_GET["old_server_ip"])) {$old_server_ip=$_GET["old_server_ip"];} + elseif (isset($_POST["old_server_ip"])) {$old_server_ip=$_POST["old_server_ip"];} +if (isset($_GET["OLDuser_group"])) {$OLDuser_group=$_GET["OLDuser_group"];} + elseif (isset($_POST["OLDuser_group"])) {$OLDuser_group=$_POST["OLDuser_group"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["park_ext"])) {$park_ext=$_GET["park_ext"];} + elseif (isset($_POST["park_ext"])) {$park_ext=$_POST["park_ext"];} +if (isset($_GET["park_file_name"])) {$park_file_name=$_GET["park_file_name"];} + elseif (isset($_POST["park_file_name"])) {$park_file_name=$_POST["park_file_name"];} +if (isset($_GET["park_on_extension"])) {$park_on_extension=$_GET["park_on_extension"];} + elseif (isset($_POST["park_on_extension"])) {$park_on_extension=$_POST["park_on_extension"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["phone_type"])) {$phone_type=$_GET["phone_type"];} + elseif (isset($_POST["phone_type"])) {$phone_type=$_POST["phone_type"];} +if (isset($_GET["picture"])) {$picture=$_GET["picture"];} + elseif (isset($_POST["picture"])) {$picture=$_POST["picture"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_GET["QUEUE_ACTION_enabled"];} + elseif (isset($_POST["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_POST["QUEUE_ACTION_enabled"];} +if (isset($_GET["recording_exten"])) {$recording_exten=$_GET["recording_exten"];} + elseif (isset($_POST["recording_exten"])) {$recording_exten=$_POST["recording_exten"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["reset_hopper"])) {$reset_hopper=$_GET["reset_hopper"];} + elseif (isset($_POST["reset_hopper"])) {$reset_hopper=$_POST["reset_hopper"];} +if (isset($_GET["reset_list"])) {$reset_list=$_GET["reset_list"];} + elseif (isset($_POST["reset_list"])) {$reset_list=$_POST["reset_list"];} +if (isset($_GET["safe_harbor_exten"])) {$safe_harbor_exten=$_GET["safe_harbor_exten"];} + elseif (isset($_POST["safe_harbor_exten"])) {$safe_harbor_exten=$_POST["safe_harbor_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["scheduled_callbacks"])) {$scheduled_callbacks=$_GET["scheduled_callbacks"];} + elseif (isset($_POST["scheduled_callbacks"])) {$scheduled_callbacks=$_POST["scheduled_callbacks"];} +if (isset($_GET["script_comments"])) {$script_comments=$_GET["script_comments"];} + elseif (isset($_POST["script_comments"])) {$script_comments=$_POST["script_comments"];} +if (isset($_GET["script_id"])) {$script_id=$_GET["script_id"];} + elseif (isset($_POST["script_id"])) {$script_id=$_POST["script_id"];} +if (isset($_GET["script_name"])) {$script_name=$_GET["script_name"];} + elseif (isset($_POST["script_name"])) {$script_name=$_POST["script_name"];} +if (isset($_GET["script_text"])) {$script_text=$_GET["script_text"];} + elseif (isset($_POST["script_text"])) {$script_text=$_POST["script_text"];} +if (isset($_GET["selectable"])) {$selectable=$_GET["selectable"];} + elseif (isset($_POST["selectable"])) {$selectable=$_POST["selectable"];} +if (isset($_GET["server_description"])) {$server_description=$_GET["server_description"];} + elseif (isset($_POST["server_description"])) {$server_description=$_POST["server_description"];} +if (isset($_GET["server_id"])) {$server_id=$_GET["server_id"];} + elseif (isset($_POST["server_id"])) {$server_id=$_POST["server_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +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"];} +if (isset($_GET["state_rule"])) {$state_rule=$_GET["state_rule"];} + elseif (isset($_POST["state_rule"])) {$state_rule=$_POST["state_rule"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["status_name"])) {$status_name=$_GET["status_name"];} + elseif (isset($_POST["status_name"])) {$status_name=$_POST["status_name"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["sys_perf_log"])) {$sys_perf_log=$_GET["sys_perf_log"];} + elseif (isset($_POST["sys_perf_log"])) {$sys_perf_log=$_POST["sys_perf_log"];} +if (isset($_GET["telnet_host"])) {$telnet_host=$_GET["telnet_host"];} + elseif (isset($_POST["telnet_host"])) {$telnet_host=$_POST["telnet_host"];} +if (isset($_GET["telnet_port"])) {$telnet_port=$_GET["telnet_port"];} + elseif (isset($_POST["telnet_port"])) {$telnet_port=$_POST["telnet_port"];} +if (isset($_GET["updater_check_enabled"])) {$updater_check_enabled=$_GET["updater_check_enabled"];} + elseif (isset($_POST["updater_check_enabled"])) {$updater_check_enabled=$_POST["updater_check_enabled"];} +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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["user_level"])) {$user_level=$_GET["user_level"];} + elseif (isset($_POST["user_level"])) {$user_level=$_POST["user_level"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["user_switching_enabled"])) {$user_switching_enabled=$_GET["user_switching_enabled"];} + elseif (isset($_POST["user_switching_enabled"])) {$user_switching_enabled=$_POST["user_switching_enabled"];} +if (isset($_GET["vd_server_logs"])) {$vd_server_logs=$_GET["vd_server_logs"];} + elseif (isset($_POST["vd_server_logs"])) {$vd_server_logs=$_POST["vd_server_logs"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_GET["VICIDIAL_park_on_extension"];} + elseif (isset($_POST["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_POST["VICIDIAL_park_on_extension"];} +if (isset($_GET["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_GET["VICIDIAL_park_on_filename"];} + elseif (isset($_POST["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_POST["VICIDIAL_park_on_filename"];} +if (isset($_GET["vicidial_recording"])) {$vicidial_recording=$_GET["vicidial_recording"];} + elseif (isset($_POST["vicidial_recording"])) {$vicidial_recording=$_POST["vicidial_recording"];} +if (isset($_GET["vicidial_transfers"])) {$vicidial_transfers=$_GET["vicidial_transfers"];} + elseif (isset($_POST["vicidial_transfers"])) {$vicidial_transfers=$_POST["vicidial_transfers"];} +if (isset($_GET["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_GET["VICIDIAL_web_URL"];} + elseif (isset($_POST["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_POST["VICIDIAL_web_URL"];} +if (isset($_GET["voicemail_button_enabled"])) {$voicemail_button_enabled=$_GET["voicemail_button_enabled"];} + elseif (isset($_POST["voicemail_button_enabled"])) {$voicemail_button_enabled=$_POST["voicemail_button_enabled"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["voicemail_ext"])) {$voicemail_ext=$_GET["voicemail_ext"];} + elseif (isset($_POST["voicemail_ext"])) {$voicemail_ext=$_POST["voicemail_ext"];} +if (isset($_GET["voicemail_exten"])) {$voicemail_exten=$_GET["voicemail_exten"];} + elseif (isset($_POST["voicemail_exten"])) {$voicemail_exten=$_POST["voicemail_exten"];} +if (isset($_GET["voicemail_id"])) {$voicemail_id=$_GET["voicemail_id"];} + elseif (isset($_POST["voicemail_id"])) {$voicemail_id=$_POST["voicemail_id"];} +if (isset($_GET["web_form_address"])) {$web_form_address=$_GET["web_form_address"];} + elseif (isset($_POST["web_form_address"])) {$web_form_address=$_POST["web_form_address"];} +if (isset($_GET["wrapup_message"])) {$wrapup_message=$_GET["wrapup_message"];} + elseif (isset($_POST["wrapup_message"])) {$wrapup_message=$_POST["wrapup_message"];} +if (isset($_GET["wrapup_seconds"])) {$wrapup_seconds=$_GET["wrapup_seconds"];} + elseif (isset($_POST["wrapup_seconds"])) {$wrapup_seconds=$_POST["wrapup_seconds"];} +if (isset($_GET["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_GET["xferconf_a_dtmf"];} + elseif (isset($_POST["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_POST["xferconf_a_dtmf"];} +if (isset($_GET["xferconf_a_number"])) {$xferconf_a_number=$_GET["xferconf_a_number"];} + elseif (isset($_POST["xferconf_a_number"])) {$xferconf_a_number=$_POST["xferconf_a_number"];} +if (isset($_GET["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_GET["xferconf_b_dtmf"];} + elseif (isset($_POST["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_POST["xferconf_b_dtmf"];} +if (isset($_GET["xferconf_b_number"])) {$xferconf_b_number=$_GET["xferconf_b_number"];} + elseif (isset($_POST["xferconf_b_number"])) {$xferconf_b_number=$_POST["xferconf_b_number"];} +if (isset($_GET["vicidial_balance_active"])) {$vicidial_balance_active=$_GET["vicidial_balance_active"];} + elseif (isset($_POST["vicidial_balance_active"])) {$vicidial_balance_active=$_POST["vicidial_balance_active"];} +if (isset($_GET["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_GET["balance_trunks_offlimits"];} + elseif (isset($_POST["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_POST["balance_trunks_offlimits"];} +if (isset($_GET["dedicated_trunks"])) {$dedicated_trunks=$_GET["dedicated_trunks"];} + elseif (isset($_POST["dedicated_trunks"])) {$dedicated_trunks=$_POST["dedicated_trunks"];} +if (isset($_GET["trunk_restriction"])) {$trunk_restriction=$_GET["trunk_restriction"];} + elseif (isset($_POST["trunk_restriction"])) {$trunk_restriction=$_POST["trunk_restriction"];} +if (isset($_GET["campaigns"])) {$campaigns=$_GET["campaigns"];} + elseif (isset($_POST["campaigns"])) {$campaigns=$_POST["campaigns"];} +if (isset($_GET["dial_level_override"])) {$dial_level_override=$_GET["dial_level_override"];} + elseif (isset($_POST["dial_level_override"])) {$dial_level_override=$_POST["dial_level_override"];} +if (isset($_GET["concurrent_transfers"])) {$concurrent_transfers=$_GET["concurrent_transfers"];} + elseif (isset($_POST["concurrent_transfers"])) {$concurrent_transfers=$_POST["concurrent_transfers"];} +if (isset($_GET["auto_alt_dial"])) {$auto_alt_dial=$_GET["auto_alt_dial"];} + elseif (isset($_POST["auto_alt_dial"])) {$auto_alt_dial=$_POST["auto_alt_dial"];} +if (isset($_GET["modify_users"])) {$modify_users=$_GET["modify_users"];} + elseif (isset($_POST["modify_users"])) {$modify_users=$_POST["modify_users"];} +if (isset($_GET["modify_campaigns"])) {$modify_campaigns=$_GET["modify_campaigns"];} + elseif (isset($_POST["modify_campaigns"])) {$modify_campaigns=$_POST["modify_campaigns"];} +if (isset($_GET["modify_lists"])) {$modify_lists=$_GET["modify_lists"];} + elseif (isset($_POST["modify_lists"])) {$modify_lists=$_POST["modify_lists"];} +if (isset($_GET["modify_scripts"])) {$modify_scripts=$_GET["modify_scripts"];} + elseif (isset($_POST["modify_scripts"])) {$modify_scripts=$_POST["modify_scripts"];} +if (isset($_GET["modify_filters"])) {$modify_filters=$_GET["modify_filters"];} + elseif (isset($_POST["modify_filters"])) {$modify_filters=$_POST["modify_filters"];} +if (isset($_GET["modify_ingroups"])) {$modify_ingroups=$_GET["modify_ingroups"];} + elseif (isset($_POST["modify_ingroups"])) {$modify_ingroups=$_POST["modify_ingroups"];} +if (isset($_GET["modify_usergroups"])) {$modify_usergroups=$_GET["modify_usergroups"];} + elseif (isset($_POST["modify_usergroups"])) {$modify_usergroups=$_POST["modify_usergroups"];} +if (isset($_GET["modify_remoteagents"])) {$modify_remoteagents=$_GET["modify_remoteagents"];} + elseif (isset($_POST["modify_remoteagents"])) {$modify_remoteagents=$_POST["modify_remoteagents"];} +if (isset($_GET["modify_servers"])) {$modify_servers=$_GET["modify_servers"];} + elseif (isset($_POST["modify_servers"])) {$modify_servers=$_POST["modify_servers"];} +if (isset($_GET["view_reports"])) {$view_reports=$_GET["view_reports"];} + elseif (isset($_POST["view_reports"])) {$view_reports=$_POST["view_reports"];} +if (isset($_GET["agent_pause_codes_active"])) {$agent_pause_codes_active=$_GET["agent_pause_codes_active"];} + elseif (isset($_POST["agent_pause_codes_active"])) {$agent_pause_codes_active=$_POST["agent_pause_codes_active"];} +if (isset($_GET["pause_code"])) {$pause_code=$_GET["pause_code"];} + elseif (isset($_POST["pause_code"])) {$pause_code=$_POST["pause_code"];} +if (isset($_GET["pause_code_name"])) {$pause_code_name=$_GET["pause_code_name"];} + elseif (isset($_POST["pause_code_name"])) {$pause_code_name=$_POST["pause_code_name"];} +if (isset($_GET["billable"])) {$billable=$_GET["billable"];} + elseif (isset($_POST["billable"])) {$billable=$_POST["billable"];} +if (isset($_GET["campaign_description"])) {$campaign_description=$_GET["campaign_description"];} + elseif (isset($_POST["campaign_description"])) {$campaign_description=$_POST["campaign_description"];} +if (isset($_GET["campaign_stats_refresh"])) {$campaign_stats_refresh=$_GET["campaign_stats_refresh"];} + elseif (isset($_POST["campaign_stats_refresh"])){$campaign_stats_refresh=$_POST["campaign_stats_refresh"];} +if (isset($_GET["list_description"])) {$list_description=$_GET["list_description"];} + elseif (isset($_POST["list_description"])) {$list_description=$_POST["list_description"];} +if (isset($_GET["vicidial_recording_override"])) {$vicidial_recording_override=$_GET["vicidial_recording_override"];} + elseif (isset($_POST["vicidial_recording_override"])) {$vicidial_recording_override=$_POST["vicidial_recording_override"];} +if (isset($_GET["use_non_latin"])) {$use_non_latin=$_GET["use_non_latin"];} + elseif (isset($_POST["use_non_latin"])) {$use_non_latin=$_POST["use_non_latin"];} +if (isset($_GET["webroot_writable"])) {$webroot_writable=$_GET["webroot_writable"];} + elseif (isset($_POST["webroot_writable"])) {$webroot_writable=$_POST["webroot_writable"];} +if (isset($_GET["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_GET["enable_queuemetrics_logging"];} + elseif (isset($_POST["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_POST["enable_queuemetrics_logging"];} +if (isset($_GET["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_GET["queuemetrics_server_ip"];} + elseif (isset($_POST["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_POST["queuemetrics_server_ip"];} +if (isset($_GET["queuemetrics_dbname"])) {$queuemetrics_dbname=$_GET["queuemetrics_dbname"];} + elseif (isset($_POST["queuemetrics_dbname"])) {$queuemetrics_dbname=$_POST["queuemetrics_dbname"];} +if (isset($_GET["queuemetrics_login"])) {$queuemetrics_login=$_GET["queuemetrics_login"];} + elseif (isset($_POST["queuemetrics_login"])) {$queuemetrics_login=$_POST["queuemetrics_login"];} +if (isset($_GET["queuemetrics_pass"])) {$queuemetrics_pass=$_GET["queuemetrics_pass"];} + elseif (isset($_POST["queuemetrics_pass"])) {$queuemetrics_pass=$_POST["queuemetrics_pass"];} +if (isset($_GET["queuemetrics_url"])) {$queuemetrics_url=$_GET["queuemetrics_url"];} + elseif (isset($_POST["queuemetrics_url"])) {$queuemetrics_url=$_POST["queuemetrics_url"];} +if (isset($_GET["queuemetrics_log_id"])) {$queuemetrics_log_id=$_GET["queuemetrics_log_id"];} + elseif (isset($_POST["queuemetrics_log_id"])) {$queuemetrics_log_id=$_POST["queuemetrics_log_id"];} +if (isset($_GET["dial_status"])) {$dial_status=$_GET["dial_status"];} + elseif (isset($_POST["dial_status"])) {$dial_status=$_POST["dial_status"];} +if (isset($_GET["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_GET["queuemetrics_eq_prepend"];} + elseif (isset($_POST["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_POST["queuemetrics_eq_prepend"];} +if (isset($_GET["vicidial_agent_disable"])) {$vicidial_agent_disable=$_GET["vicidial_agent_disable"];} + elseif (isset($_POST["vicidial_agent_disable"])) {$vicidial_agent_disable=$_POST["vicidial_agent_disable"];} +if (isset($_GET["disable_alter_custdata"])) {$disable_alter_custdata=$_GET["disable_alter_custdata"];} + elseif (isset($_POST["disable_alter_custdata"])) {$disable_alter_custdata=$_POST["disable_alter_custdata"];} +if (isset($_GET["alter_custdata_override"])) {$alter_custdata_override=$_GET["alter_custdata_override"];} + elseif (isset($_POST["alter_custdata_override"])) {$alter_custdata_override=$_POST["alter_custdata_override"];} +if (isset($_GET["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_GET["no_hopper_leads_logins"];} + elseif (isset($_POST["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_POST["no_hopper_leads_logins"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["admin_home_url"])) {$admin_home_url=$_GET["admin_home_url"];} + elseif (isset($_POST["admin_home_url"])) {$admin_home_url=$_POST["admin_home_url"];} +if (isset($_GET["list_order_mix"])) {$list_order_mix=$_GET["list_order_mix"];} + elseif (isset($_POST["list_order_mix"])) {$list_order_mix=$_POST["list_order_mix"];} +if (isset($_GET["vcl_id"])) {$vcl_id=$_GET["vcl_id"];} + elseif (isset($_POST["vcl_id"])) {$vcl_id=$_POST["vcl_id"];} +if (isset($_GET["vcl_name"])) {$vcl_name=$_GET["vcl_name"];} + elseif (isset($_POST["vcl_name"])) {$vcl_name=$_POST["vcl_name"];} +if (isset($_GET["list_mix_container"])) {$list_mix_container=$_GET["list_mix_container"];} + elseif (isset($_POST["list_mix_container"])) {$list_mix_container=$_POST["list_mix_container"];} +if (isset($_GET["mix_method"])) {$mix_method=$_GET["mix_method"];} + elseif (isset($_POST["mix_method"])) {$mix_method=$_POST["mix_method"];} +if (isset($_GET["human_answered"])) {$human_answered=$_GET["human_answered"];} + elseif (isset($_POST["human_answered"])) {$human_answered=$_POST["human_answered"];} +if (isset($_GET["category"])) {$category=$_GET["category"];} + elseif (isset($_POST["category"])) {$category=$_POST["category"];} +if (isset($_GET["vsc_id"])) {$vsc_id=$_GET["vsc_id"];} + elseif (isset($_POST["vsc_id"])) {$vsc_id=$_POST["vsc_id"];} +if (isset($_GET["vsc_name"])) {$vsc_name=$_GET["vsc_name"];} + elseif (isset($_POST["vsc_name"])) {$vsc_name=$_POST["vsc_name"];} +if (isset($_GET["vsc_description"])) {$vsc_description=$_GET["vsc_description"];} + elseif (isset($_POST["vsc_description"])) {$vsc_description=$_POST["vsc_description"];} +if (isset($_GET["tovdad_display"])) {$tovdad_display=$_GET["tovdad_display"];} + elseif (isset($_POST["tovdad_display"])) {$tovdad_display=$_POST["tovdad_display"];} +if (isset($_GET["mix_container_item"])) {$mix_container_item=$_GET["mix_container_item"];} + elseif (isset($_POST["mix_container_item"])) {$mix_container_item=$_POST["mix_container_item"];} +if (isset($_GET["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_GET["enable_agc_xfer_log"];} + elseif (isset($_POST["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_POST["enable_agc_xfer_log"];} +if (isset($_GET["after_hours_action"])) {$after_hours_action=$_GET["after_hours_action"];} + elseif (isset($_POST["after_hours_action"])) {$after_hours_action=$_POST["after_hours_action"];} +if (isset($_GET["after_hours_message_filename"])) {$after_hours_message_filename=$_GET["after_hours_message_filename"];} + elseif (isset($_POST["after_hours_message_filename"])) {$after_hours_message_filename=$_POST["after_hours_message_filename"];} +if (isset($_GET["after_hours_exten"])) {$after_hours_exten=$_GET["after_hours_exten"];} + elseif (isset($_POST["after_hours_exten"])) {$after_hours_exten=$_POST["after_hours_exten"];} +if (isset($_GET["after_hours_voicemail"])) {$after_hours_voicemail=$_GET["after_hours_voicemail"];} + elseif (isset($_POST["after_hours_voicemail"])) {$after_hours_voicemail=$_POST["after_hours_voicemail"];} +if (isset($_GET["welcome_message_filename"])) {$welcome_message_filename=$_GET["welcome_message_filename"];} + elseif (isset($_POST["welcome_message_filename"])) {$welcome_message_filename=$_POST["welcome_message_filename"];} +if (isset($_GET["moh_context"])) {$moh_context=$_GET["moh_context"];} + elseif (isset($_POST["moh_context"])) {$moh_context=$_POST["moh_context"];} +if (isset($_GET["onhold_prompt_filename"])) {$onhold_prompt_filename=$_GET["onhold_prompt_filename"];} + elseif (isset($_POST["onhold_prompt_filename"])) {$onhold_prompt_filename=$_POST["onhold_prompt_filename"];} +if (isset($_GET["prompt_interval"])) {$prompt_interval=$_GET["prompt_interval"];} + elseif (isset($_POST["prompt_interval"])) {$prompt_interval=$_POST["prompt_interval"];} +if (isset($_GET["agent_alert_exten"])) {$agent_alert_exten=$_GET["agent_alert_exten"];} + elseif (isset($_POST["agent_alert_exten"])) {$agent_alert_exten=$_POST["agent_alert_exten"];} +if (isset($_GET["agent_alert_delay"])) {$agent_alert_delay=$_GET["agent_alert_delay"];} + elseif (isset($_POST["agent_alert_delay"])) {$agent_alert_delay=$_POST["agent_alert_delay"];} +if (isset($_GET["group_rank"])) {$group_rank=$_GET["group_rank"];} + elseif (isset($_POST["group_rank"])) {$group_rank=$_POST["group_rank"];} +if (isset($_GET["campaign_allow_inbound"])) {$campaign_allow_inbound=$_GET["campaign_allow_inbound"];} + elseif (isset($_POST["campaign_allow_inbound"])) {$campaign_allow_inbound=$_POST["campaign_allow_inbound"];} +if (isset($_GET["manual_dial_list_id"])) {$manual_dial_list_id=$_GET["manual_dial_list_id"];} + elseif (isset($_POST["manual_dial_list_id"])) {$manual_dial_list_id=$_POST["manual_dial_list_id"];} +if (isset($_GET["campaign_rank"])) {$campaign_rank=$_GET["campaign_rank"];} + elseif (isset($_POST["campaign_rank"])) {$campaign_rank=$_POST["campaign_rank"];} +if (isset($_GET["source_campaign_id"])) {$source_campaign_id=$_GET["source_campaign_id"];} + elseif (isset($_POST["source_campaign_id"])) {$source_campaign_id=$_POST["source_campaign_id"];} +if (isset($_GET["source_user_id"])) {$source_user_id=$_GET["source_user_id"];} + elseif (isset($_POST["source_user_id"])) {$source_user_id=$_POST["source_user_id"];} +if (isset($_GET["source_group_id"])) {$source_group_id=$_GET["source_group_id"];} + elseif (isset($_POST["source_group_id"])) {$source_group_id=$_POST["source_group_id"];} +if (isset($_GET["default_xfer_group"])) {$default_xfer_group=$_GET["default_xfer_group"];} + elseif (isset($_POST["default_xfer_group"])) {$default_xfer_group=$_POST["default_xfer_group"];} +if (isset($_GET["qc_enabled"])) {$qc_enabled=$_GET["qc_enabled"];} + elseif (isset($_POST["qc_enabled"])) {$qc_enabled=$_POST["qc_enabled"];} +if (isset($_GET["qc_user_level"])) {$qc_user_level=$_GET["qc_user_level"];} + elseif (isset($_POST["qc_user_level"])) {$qc_user_level=$_POST["qc_user_level"];} +if (isset($_GET["qc_pass"])) {$qc_pass=$_GET["qc_pass"];} + elseif (isset($_POST["qc_pass"])) {$qc_pass=$_POST["qc_pass"];} +if (isset($_GET["qc_finish"])) {$qc_finish=$_GET["qc_finish"];} + elseif (isset($_POST["qc_finish"])) {$qc_finish=$_POST["qc_finish"];} +if (isset($_GET["qc_commit"])) {$qc_commit=$_GET["qc_commit"];} + elseif (isset($_POST["qc_commit"])) {$qc_commit=$_POST["qc_commit"];} +if (isset($_GET["qc_campaigns"])) {$qc_campaigns=$_GET["qc_campaigns"];} + elseif (isset($_POST["qc_campaigns"])) {$qc_campaigns=$_POST["qc_campaigns"];} +if (isset($_GET["qc_groups"])) {$qc_groups=$_GET["qc_groups"];} + elseif (isset($_POST["qc_groups"])) {$qc_groups=$_POST["qc_groups"];} +if (isset($_GET["queue_priority"])) {$queue_priority=$_GET["queue_priority"];} + elseif (isset($_POST["queue_priority"])) {$queue_priority=$_POST["queue_priority"];} +if (isset($_GET["drop_inbound_group"])) {$drop_inbound_group=$_GET["drop_inbound_group"];} + elseif (isset($_POST["drop_inbound_group"])) {$drop_inbound_group=$_POST["drop_inbound_group"];} +if (isset($_GET["qc_statuses"])) {$qc_statuses=$_GET["qc_statuses"];} + elseif (isset($_POST["qc_statuses"])) {$qc_statuses=$_POST["qc_statuses"];} +if (isset($_GET["qc_lists"])) {$qc_lists=$_GET["qc_lists"];} + elseif (isset($_POST["qc_lists"])) {$qc_lists=$_POST["qc_lists"];} +if (isset($_GET["qc_get_record_launch"])) {$qc_get_record_launch=$_GET["qc_get_record_launch"];} + elseif (isset($_POST["qc_get_record_launch"])) {$qc_get_record_launch=$_POST["qc_get_record_launch"];} +if (isset($_GET["qc_show_recording"])) {$qc_show_recording=$_GET["qc_show_recording"];} + elseif (isset($_POST["qc_show_recording"])) {$qc_show_recording=$_POST["qc_show_recording"];} +if (isset($_GET["qc_shift_id"])) {$qc_shift_id=$_GET["qc_shift_id"];} + elseif (isset($_POST["qc_shift_id"])) {$qc_shift_id=$_POST["qc_shift_id"];} +if (isset($_GET["qc_web_form_address"])) {$qc_web_form_address=$_GET["qc_web_form_address"];} + elseif (isset($_POST["qc_web_form_address"])) {$qc_web_form_address=$_POST["qc_web_form_address"];} +if (isset($_GET["qc_script"])) {$qc_script=$_GET["qc_script"];} + elseif (isset($_POST["qc_script"])) {$qc_script=$_POST["qc_script"];} +if (isset($_GET["ingroup_recording_override"])) {$ingroup_recording_override=$_GET["ingroup_recording_override"];} + elseif (isset($_POST["ingroup_recording_override"])) {$ingroup_recording_override=$_POST["ingroup_recording_override"];} +if (isset($_GET["code"])) {$code=$_GET["code"];} + elseif (isset($_POST["code"])) {$code=$_POST["code"];} +if (isset($_GET["code_name"])) {$code_name=$_GET["code_name"];} + elseif (isset($_POST["code_name"])) {$code_name=$_POST["code_name"];} +if (isset($_GET["afterhours_xfer_group"])) {$afterhours_xfer_group=$_GET["afterhours_xfer_group"];} + elseif (isset($_POST["afterhours_xfer_group"])) {$afterhours_xfer_group=$_POST["afterhours_xfer_group"];} +if (isset($_GET["alias_id"])) {$alias_id=$_GET["alias_id"];} + elseif (isset($_POST["alias_id"])) {$alias_id=$_POST["alias_id"];} +if (isset($_GET["alias_name"])) {$alias_name=$_GET["alias_name"];} + elseif (isset($_POST["alias_name"])) {$alias_name=$_POST["alias_name"];} +if (isset($_GET["logins_list"])) {$logins_list=$_GET["logins_list"];} + elseif (isset($_POST["logins_list"])) {$logins_list=$_POST["logins_list"];} +if (isset($_GET["shift_id"])) {$shift_id=$_GET["shift_id"];} + elseif (isset($_POST["shift_id"])) {$shift_id=$_POST["shift_id"];} +if (isset($_GET["shift_name"])) {$shift_name=$_GET["shift_name"];} + elseif (isset($_POST["shift_name"])) {$shift_name=$_POST["shift_name"];} +if (isset($_GET["shift_start_time"])) {$shift_start_time=$_GET["shift_start_time"];} + elseif (isset($_POST["shift_start_time"])) {$shift_start_time=$_POST["shift_start_time"];} +if (isset($_GET["shift_length"])) {$shift_length=$_GET["shift_length"];} + elseif (isset($_POST["shift_length"])) {$shift_length=$_POST["shift_length"];} +if (isset($_GET["shift_weekdays"])) {$shift_weekdays=$_GET["shift_weekdays"];} + elseif (isset($_POST["shift_weekdays"])) {$shift_weekdays=$_POST["shift_weekdays"];} +if (isset($_GET["group_shifts"])) {$group_shifts=$_GET["group_shifts"];} + elseif (isset($_POST["group_shifts"])) {$group_shifts=$_POST["group_shifts"];} +if (isset($_GET["timeclock_end_of_day"])) {$timeclock_end_of_day=$_GET["timeclock_end_of_day"];} + elseif (isset($_POST["timeclock_end_of_day"])) {$timeclock_end_of_day=$_POST["timeclock_end_of_day"];} +if (isset($_GET["survey_first_audio_file"])) {$survey_first_audio_file=$_GET["survey_first_audio_file"];} + elseif (isset($_POST["survey_first_audio_file"])) {$survey_first_audio_file=$_POST["survey_first_audio_file"];} +if (isset($_GET["survey_dtmf_digits"])) {$survey_dtmf_digits=$_GET["survey_dtmf_digits"];} + elseif (isset($_POST["survey_dtmf_digits"])) {$survey_dtmf_digits=$_POST["survey_dtmf_digits"];} +if (isset($_GET["survey_ni_digit"])) {$survey_ni_digit=$_GET["survey_ni_digit"];} + elseif (isset($_POST["survey_ni_digit"])) {$survey_ni_digit=$_POST["survey_ni_digit"];} +if (isset($_GET["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_GET["survey_opt_in_audio_file"];} + elseif (isset($_POST["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_POST["survey_opt_in_audio_file"];} +if (isset($_GET["survey_ni_audio_file"])) {$survey_ni_audio_file=$_GET["survey_ni_audio_file"];} + elseif (isset($_POST["survey_ni_audio_file"])) {$survey_ni_audio_file=$_POST["survey_ni_audio_file"];} +if (isset($_GET["survey_method"])) {$survey_method=$_GET["survey_method"];} + elseif (isset($_POST["survey_method"])) {$survey_method=$_POST["survey_method"];} +if (isset($_GET["survey_no_response_action"])) {$survey_no_response_action=$_GET["survey_no_response_action"];} + elseif (isset($_POST["survey_no_response_action"])) {$survey_no_response_action=$_POST["survey_no_response_action"];} +if (isset($_GET["survey_ni_status"])) {$survey_ni_status=$_GET["survey_ni_status"];} + elseif (isset($_POST["survey_ni_status"])) {$survey_ni_status=$_POST["survey_ni_status"];} +if (isset($_GET["survey_response_digit_map"])) {$survey_response_digit_map=$_GET["survey_response_digit_map"];} + elseif (isset($_POST["survey_response_digit_map"])) {$survey_response_digit_map=$_POST["survey_response_digit_map"];} +if (isset($_GET["survey_xfer_exten"])) {$survey_xfer_exten=$_GET["survey_xfer_exten"];} + elseif (isset($_POST["survey_xfer_exten"])) {$survey_xfer_exten=$_POST["survey_xfer_exten"];} +if (isset($_GET["survey_camp_record_dir"])) {$survey_camp_record_dir=$_GET["survey_camp_record_dir"];} + elseif (isset($_POST["survey_camp_record_dir"])) {$survey_camp_record_dir=$_POST["survey_camp_record_dir"];} +if (isset($_GET["add_timeclock_log"])) {$add_timeclock_log=$_GET["add_timeclock_log"];} + elseif (isset($_POST["add_timeclock_log"])) {$add_timeclock_log=$_POST["add_timeclock_log"];} +if (isset($_GET["modify_timeclock_log"])) {$modify_timeclock_log=$_GET["modify_timeclock_log"];} + elseif (isset($_POST["modify_timeclock_log"])) {$modify_timeclock_log=$_POST["modify_timeclock_log"];} +if (isset($_GET["delete_timeclock_log"])) {$delete_timeclock_log=$_GET["delete_timeclock_log"];} + elseif (isset($_POST["delete_timeclock_log"])) {$delete_timeclock_log=$_POST["delete_timeclock_log"];} +if (isset($_GET["phone_numbers"])) {$phone_numbers=$_GET["phone_numbers"];} + elseif (isset($_POST["phone_numbers"])) {$phone_numbers=$_POST["phone_numbers"];} +if (isset($_GET["vdc_header_date_format"])) {$vdc_header_date_format=$_GET["vdc_header_date_format"];} + elseif (isset($_POST["vdc_header_date_format"])) {$vdc_header_date_format=$_POST["vdc_header_date_format"];} +if (isset($_GET["vdc_customer_date_format"])) {$vdc_customer_date_format=$_GET["vdc_customer_date_format"];} + elseif (isset($_POST["vdc_customer_date_format"])) {$vdc_customer_date_format=$_POST["vdc_customer_date_format"];} +if (isset($_GET["vdc_header_phone_format"])) {$vdc_header_phone_format=$_GET["vdc_header_phone_format"];} + elseif (isset($_POST["vdc_header_phone_format"])) {$vdc_header_phone_format=$_POST["vdc_header_phone_format"];} +if (isset($_GET["disable_alter_custphone"])) {$disable_alter_custphone=$_GET["disable_alter_custphone"];} + elseif (isset($_POST["disable_alter_custphone"])) {$disable_alter_custphone=$_POST["disable_alter_custphone"];} +if (isset($_GET["alter_custphone_override"])) {$alter_custphone_override=$_GET["alter_custphone_override"];} + elseif (isset($_POST["alter_custphone_override"])) {$alter_custphone_override=$_POST["alter_custphone_override"];} +if (isset($_GET["vdc_agent_api_access"])) {$vdc_agent_api_access=$_GET["vdc_agent_api_access"];} + elseif (isset($_POST["vdc_agent_api_access"])) {$vdc_agent_api_access=$_POST["vdc_agent_api_access"];} +if (isset($_GET["vdc_agent_api_active"])) {$vdc_agent_api_active=$_GET["vdc_agent_api_active"];} + elseif (isset($_POST["vdc_agent_api_active"])) {$vdc_agent_api_active=$_POST["vdc_agent_api_active"];} +if (isset($_GET["display_queue_count"])) {$display_queue_count=$_GET["display_queue_count"];} + elseif (isset($_POST["display_queue_count"])) {$display_queue_count=$_POST["display_queue_count"];} +if (isset($_GET["sale_category"])) {$sale_category=$_GET["sale_category"];} + elseif (isset($_POST["sale_category"])) {$sale_category=$_POST["sale_category"];} +if (isset($_GET["dead_lead_category"])) {$dead_lead_category=$_GET["dead_lead_category"];} + elseif (isset($_POST["dead_lead_category"])) {$dead_lead_category=$_POST["dead_lead_category"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["agent_clipboard_copy"])) {$agent_clipboard_copy=$_GET["agent_clipboard_copy"];} + elseif (isset($_POST["agent_clipboard_copy"])) {$agent_clipboard_copy=$_POST["agent_clipboard_copy"];} +if (isset($_GET["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_GET["agent_extended_alt_dial"];} + elseif (isset($_POST["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_POST["agent_extended_alt_dial"];} +if (isset($_GET["play_place_in_line"])) {$play_place_in_line=$_GET["play_place_in_line"];} + elseif (isset($_POST["play_place_in_line"])) {$play_place_in_line=$_POST["play_place_in_line"];} +if (isset($_GET["play_estimate_hold_time"])) {$play_estimate_hold_time=$_GET["play_estimate_hold_time"];} + elseif (isset($_POST["play_estimate_hold_time"])) {$play_estimate_hold_time=$_POST["play_estimate_hold_time"];} +if (isset($_GET["hold_time_option"])) {$hold_time_option=$_GET["hold_time_option"];} + elseif (isset($_POST["hold_time_option"])) {$hold_time_option=$_POST["hold_time_option"];} +if (isset($_GET["hold_time_option_seconds"])) {$hold_time_option_seconds=$_GET["hold_time_option_seconds"];} + elseif (isset($_POST["hold_time_option_seconds"])) {$hold_time_option_seconds=$_POST["hold_time_option_seconds"];} +if (isset($_GET["hold_time_option_exten"])) {$hold_time_option_exten=$_GET["hold_time_option_exten"];} + elseif (isset($_POST["hold_time_option_exten"])) {$hold_time_option_exten=$_POST["hold_time_option_exten"];} +if (isset($_GET["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_GET["hold_time_option_voicemail"];} + elseif (isset($_POST["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_POST["hold_time_option_voicemail"];} +if (isset($_GET["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_GET["hold_time_option_xfer_group"];} + elseif (isset($_POST["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_POST["hold_time_option_xfer_group"];} +if (isset($_GET["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_GET["hold_time_option_callback_filename"];} + elseif (isset($_POST["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_POST["hold_time_option_callback_filename"];} +if (isset($_GET["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_GET["hold_time_option_callback_list_id"];} + elseif (isset($_POST["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_POST["hold_time_option_callback_list_id"];} +if (isset($_GET["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_GET["hold_recall_xfer_group"];} + elseif (isset($_POST["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_POST["hold_recall_xfer_group"];} +if (isset($_GET["no_delay_call_route"])) {$no_delay_call_route=$_GET["no_delay_call_route"];} + elseif (isset($_POST["no_delay_call_route"])) {$no_delay_call_route=$_POST["no_delay_call_route"];} +if (isset($_GET["play_welcome_message"])) {$play_welcome_message=$_GET["play_welcome_message"];} + elseif (isset($_POST["play_welcome_message"])) {$play_welcome_message=$_POST["play_welcome_message"];} +if (isset($_GET["did_id"])) {$did_id=$_GET["did_id"];} + elseif (isset($_POST["did_id"])) {$did_id=$_POST["did_id"];} +if (isset($_GET["source_did"])) {$source_did=$_GET["source_did"];} + elseif (isset($_POST["source_did"])) {$source_did=$_POST["source_did"];} +if (isset($_GET["did_pattern"])) {$did_pattern=$_GET["did_pattern"];} + elseif (isset($_POST["did_pattern"])) {$did_pattern=$_POST["did_pattern"];} +if (isset($_GET["did_description"])) {$did_description=$_GET["did_description"];} + elseif (isset($_POST["did_description"])) {$did_description=$_POST["did_description"];} +if (isset($_GET["did_active"])) {$did_active=$_GET["did_active"];} + elseif (isset($_POST["did_active"])) {$did_active=$_POST["did_active"];} +if (isset($_GET["did_route"])) {$did_route=$_GET["did_route"];} + elseif (isset($_POST["did_route"])) {$did_route=$_POST["did_route"];} +if (isset($_GET["exten_context"])) {$exten_context=$_GET["exten_context"];} + elseif (isset($_POST["exten_context"])) {$exten_context=$_POST["exten_context"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["user_unavailable_action"])) {$user_unavailable_action=$_GET["user_unavailable_action"];} + elseif (isset($_POST["user_unavailable_action"])) {$user_unavailable_action=$_POST["user_unavailable_action"];} +if (isset($_GET["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_GET["user_route_settings_ingroup"];} + elseif (isset($_POST["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_POST["user_route_settings_ingroup"];} +if (isset($_GET["call_handle_method"])) {$call_handle_method=$_GET["call_handle_method"];} + elseif (isset($_POST["call_handle_method"])) {$call_handle_method=$_POST["call_handle_method"];} +if (isset($_GET["agent_search_method"])) {$agent_search_method=$_GET["agent_search_method"];} + elseif (isset($_POST["agent_search_method"])) {$agent_search_method=$_POST["agent_search_method"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["modify_inbound_dids"])) {$modify_inbound_dids=$_GET["modify_inbound_dids"];} + elseif (isset($_POST["modify_inbound_dids"])) {$modify_inbound_dids=$_POST["modify_inbound_dids"];} +if (isset($_GET["delete_inbound_dids"])) {$delete_inbound_dids=$_GET["delete_inbound_dids"];} + elseif (isset($_POST["delete_inbound_dids"])) {$delete_inbound_dids=$_POST["delete_inbound_dids"];} +if (isset($_GET["three_way_call_cid"])) {$three_way_call_cid=$_GET["three_way_call_cid"];} + elseif (isset($_POST["three_way_call_cid"])) {$three_way_call_cid=$_POST["three_way_call_cid"];} +if (isset($_GET["three_way_dial_prefix"])) {$three_way_dial_prefix=$_GET["three_way_dial_prefix"];} + elseif (isset($_POST["three_way_dial_prefix"])) {$three_way_dial_prefix=$_POST["three_way_dial_prefix"];} +if (isset($_GET["forced_timeclock_login"])) {$forced_timeclock_login=$_GET["forced_timeclock_login"];} + elseif (isset($_POST["forced_timeclock_login"])) {$forced_timeclock_login=$_POST["forced_timeclock_login"];} +if (isset($_GET["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_GET["answer_sec_pct_rt_stat_one"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_POST["answer_sec_pct_rt_stat_one"];} +if (isset($_GET["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_GET["answer_sec_pct_rt_stat_two"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_POST["answer_sec_pct_rt_stat_two"];} +if (isset($_GET["list_active_change"])) {$list_active_change=$_GET["list_active_change"];} + elseif (isset($_POST["list_active_change"])) {$list_active_change=$_POST["list_active_change"];} +if (isset($_GET["web_form_target"])) {$web_form_target=$_GET["web_form_target"];} + elseif (isset($_POST["web_form_target"])) {$web_form_target=$_POST["web_form_target"];} +if (isset($_GET["alt_server_ip"])) {$alt_server_ip=$_GET["alt_server_ip"];} + elseif (isset($_POST["alt_server_ip"])) {$alt_server_ip=$_POST["alt_server_ip"];} +if (isset($_GET["recording_web_link"])) {$recording_web_link=$_GET["recording_web_link"];} + elseif (isset($_POST["recording_web_link"])) {$recording_web_link=$_POST["recording_web_link"];} +if (isset($_GET["enable_vtiger_integration"])) {$enable_vtiger_integration=$_GET["enable_vtiger_integration"];} + elseif (isset($_POST["enable_vtiger_integration"])) {$enable_vtiger_integration=$_POST["enable_vtiger_integration"];} +if (isset($_GET["vtiger_server_ip"])) {$vtiger_server_ip=$_GET["vtiger_server_ip"];} + elseif (isset($_POST["vtiger_server_ip"])) {$vtiger_server_ip=$_POST["vtiger_server_ip"];} +if (isset($_GET["vtiger_dbname"])) {$vtiger_dbname=$_GET["vtiger_dbname"];} + elseif (isset($_POST["vtiger_dbname"])) {$vtiger_dbname=$_POST["vtiger_dbname"];} +if (isset($_GET["vtiger_login"])) {$vtiger_login=$_GET["vtiger_login"];} + elseif (isset($_POST["vtiger_login"])) {$vtiger_login=$_POST["vtiger_login"];} +if (isset($_GET["vtiger_pass"])) {$vtiger_pass=$_GET["vtiger_pass"];} + elseif (isset($_POST["vtiger_pass"])) {$vtiger_pass=$_POST["vtiger_pass"];} +if (isset($_GET["vtiger_url"])) {$vtiger_url=$_GET["vtiger_url"];} + elseif (isset($_POST["vtiger_url"])) {$vtiger_url=$_POST["vtiger_url"];} +if (isset($_GET["vtiger_search_category"])) {$vtiger_search_category=$_GET["vtiger_search_category"];} + elseif (isset($_POST["vtiger_search_category"])) {$vtiger_search_category=$_POST["vtiger_search_category"];} +if (isset($_GET["vtiger_create_call_record"])) {$vtiger_create_call_record=$_GET["vtiger_create_call_record"];} + elseif (isset($_POST["vtiger_create_call_record"])) {$vtiger_create_call_record=$_POST["vtiger_create_call_record"];} +if (isset($_GET["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_GET["vtiger_create_lead_record"];} + elseif (isset($_POST["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_POST["vtiger_create_lead_record"];} +if (isset($_GET["vtiger_screen_login"])) {$vtiger_screen_login=$_GET["vtiger_screen_login"];} + elseif (isset($_POST["vtiger_screen_login"])) {$vtiger_screen_login=$_POST["vtiger_screen_login"];} +if (isset($_GET["qc_features_active"])) {$qc_features_active=$_GET["qc_features_active"];} + elseif (isset($_POST["qc_features_active"])) {$qc_features_active=$_POST["qc_features_active"];} +if (isset($_GET["outbound_autodial_active"])) {$outbound_autodial_active=$_GET["outbound_autodial_active"];} + elseif (isset($_POST["outbound_autodial_active"])) {$outbound_autodial_active=$_POST["outbound_autodial_active"];} +if (isset($_GET["cpd_amd_action"])) {$cpd_amd_action=$_GET["cpd_amd_action"];} + elseif (isset($_POST["cpd_amd_action"])) {$cpd_amd_action=$_POST["cpd_amd_action"];} +if (isset($_GET["download_lists"])) {$download_lists=$_GET["download_lists"];} + elseif (isset($_POST["download_lists"])) {$download_lists=$_POST["download_lists"];} +if (isset($_GET["active_asterisk_server"])) {$active_asterisk_server=$_GET["active_asterisk_server"];} + elseif (isset($_POST["active_asterisk_server"])) {$active_asterisk_server=$_POST["active_asterisk_server"];} +if (isset($_GET["generate_vicidial_conf"])) {$generate_vicidial_conf=$_GET["generate_vicidial_conf"];} + elseif (isset($_POST["generate_vicidial_conf"])) {$generate_vicidial_conf=$_POST["generate_vicidial_conf"];} +if (isset($_GET["rebuild_conf_files"])) {$rebuild_conf_files=$_GET["rebuild_conf_files"];} + elseif (isset($_POST["rebuild_conf_files"])) {$rebuild_conf_files=$_POST["rebuild_conf_files"];} +if (isset($_GET["template_id"])) {$template_id=$_GET["template_id"];} + elseif (isset($_POST["template_id"])) {$template_id=$_POST["template_id"];} +if (isset($_GET["conf_override"])) {$conf_override=$_GET["conf_override"];} + elseif (isset($_POST["conf_override"])) {$conf_override=$_POST["conf_override"];} +if (isset($_GET["template_name"])) {$template_name=$_GET["template_name"];} + elseif (isset($_POST["template_name"])) {$template_name=$_POST["template_name"];} +if (isset($_GET["template_contents"])) {$template_contents=$_GET["template_contents"];} + elseif (isset($_POST["template_contents"])) {$template_contents=$_POST["template_contents"];} +if (isset($_GET["carrier_id"])) {$carrier_id=$_GET["carrier_id"];} + elseif (isset($_POST["carrier_id"])) {$carrier_id=$_POST["carrier_id"];} +if (isset($_GET["carrier_name"])) {$carrier_name=$_GET["carrier_name"];} + elseif (isset($_POST["carrier_name"])) {$carrier_name=$_POST["carrier_name"];} +if (isset($_GET["registration_string"])) {$registration_string=$_GET["registration_string"];} + elseif (isset($_POST["registration_string"])) {$registration_string=$_POST["registration_string"];} +if (isset($_GET["account_entry"])) {$account_entry=$_GET["account_entry"];} + elseif (isset($_POST["account_entry"])) {$account_entry=$_POST["account_entry"];} +if (isset($_GET["globals_string"])) {$globals_string=$_GET["globals_string"];} + elseif (isset($_POST["globals_string"])) {$globals_string=$_POST["globals_string"];} +if (isset($_GET["dialplan_entry"])) {$dialplan_entry=$_GET["dialplan_entry"];} + elseif (isset($_POST["dialplan_entry"])) {$dialplan_entry=$_POST["dialplan_entry"];} +if (isset($_GET["group_alias_id"])) {$group_alias_id=$_GET["group_alias_id"];} + elseif (isset($_POST["group_alias_id"])) {$group_alias_id=$_POST["group_alias_id"];} +if (isset($_GET["group_alias_name"])) {$group_alias_name=$_GET["group_alias_name"];} + elseif (isset($_POST["group_alias_name"])) {$group_alias_name=$_POST["group_alias_name"];} +if (isset($_GET["caller_id_number"])) {$caller_id_number=$_GET["caller_id_number"];} + elseif (isset($_POST["caller_id_number"])) {$caller_id_number=$_POST["caller_id_number"];} +if (isset($_GET["caller_id_name"])) {$caller_id_name=$_GET["caller_id_name"];} + elseif (isset($_POST["caller_id_name"])) {$caller_id_name=$_POST["caller_id_name"];} +if (isset($_GET["agent_allow_group_alias"])) {$agent_allow_group_alias=$_GET["agent_allow_group_alias"];} + elseif (isset($_POST["agent_allow_group_alias"])) {$agent_allow_group_alias=$_POST["agent_allow_group_alias"];} +if (isset($_GET["default_group_alias"])) {$default_group_alias=$_GET["default_group_alias"];} + elseif (isset($_POST["default_group_alias"])) {$default_group_alias=$_POST["default_group_alias"];} +if (isset($_GET["outbound_calls_per_second"])) {$outbound_calls_per_second=$_GET["outbound_calls_per_second"];} + elseif (isset($_POST["outbound_calls_per_second"])) {$outbound_calls_per_second=$_POST["outbound_calls_per_second"];} +if (isset($_GET["shift_enforcement"])) {$shift_enforcement=$_GET["shift_enforcement"];} + elseif (isset($_POST["shift_enforcement"])) {$shift_enforcement=$_POST["shift_enforcement"];} +if (isset($_GET["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_GET["agent_shift_enforcement_override"];} + elseif (isset($_POST["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_POST["agent_shift_enforcement_override"];} +if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_GET["manager_shift_enforcement_override"];} + elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} +if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} + elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} + + if (isset($script_id)) {$script_id= strtoupper($script_id);} + if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} + +if (strlen($dial_status) > 0) + { + $ADD='28'; + $status = $dial_status; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSenable_queuemetrics_logging = $row[1]; + $SSenable_vtiger_integration = $row[2]; + $SSqc_features_active = $row[3]; + $SSoutbound_autodial_active = $row[4]; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +###################################################################################################### +###################################################################################################### +####### Form variable filtering for security and data integrity +###################################################################################################### +###################################################################################################### + +if ($non_latin < 1) + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); + + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); + + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); + + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); + + ### Y or N ONLY ### + $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); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); + + + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $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); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); + + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); + + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); + + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); + + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); + + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### 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 hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); + + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); + + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); + + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + + + +##### END VARIABLE FILTERING FOR SECURITY ##### + + +# ViciDial database administration +# admin.php +# +# CHANGELOG: +# 50315-1110 - Added Custom Campaign Statuses +# 50317-1438 - Added Fronter Display var to inbound groups +# 50322-1355 - Added custom callerID per campaign +# 50517-1356 - Added user_groups sections and user_group to vicidial_users +# 50517-1440 - Added ability to logout (must click OK with empty user/pass) +# 50602-1622 - Added lead loader pages to load new files into vicidial_list +# 50620-1351 - Added custom vdad transfer AGI extension per campaign +# 50810-1414 - modified in groups to kick out spaces and dashes +# 50908-2136 - Added Custom Campaign HotKeys +# 50914-0950 - Fixed user search by user_group +# 50926-1358 - Modified to allow for language translation +# 50926-1615 - Added WeBRooTWritablE write controls +# 51020-1008 - Added editable web address and park ext - NEW dial campaigns +# 51020-1056 - Added fields and help for campaign recording control +# 51123-1335 - Altered code to function in php globals=off +# 51208-1038 - Added user_level changes, function controls and default user phones +# 51208-1556 - Added deletion of users/lists/campaigns/in groups/remote agents +# 51213-1706 - Added add/delete/modify vicidial scripts +# 51214-1737 - Added preview of vicidial script in popup window +# 51219-1225 - Added campaign and ingroups script selector and get_call_launch field +# 51222-1055 - Added am_message_exten to campaigns to allow for AM Message button +# 51222-1125 - Fixed new vicidial_campaigns default values not being assigned bug +# 51222-1156 - Added LOG OUT ALL AGENTS ON THIS CAMPAIGN button to campaign screen +# 60204-0659 - Fixed hopper reset bug +# 60207-1413 - Added AMD send to voicemail extension and xfer-conf dtmf presets +# 60213-1100 - Added several vicidial_users permissions fields +# 60215-1319 - Added On-hold CallBacks display and links +# 60227-1226 - Fixed vicidial_inbound_groups insert bug +# 60413-1308 - Fixed list display to have 1 row/status: count and time zone tables +# - Added status name in selected dial statuses in campaign screen +# 60417-1416 - Added vicidial_lead_filters sections +# - Changed the header links to color-coded sectional with sublinks below +# - Added filter name and script name to campaign and in-group modify sections +# - Added callback and alt dial options to campaigns section +# - Added callback, alt dial and other options to users section +# 60419-1628 - Alter Callbacks display to include status and LIVE listings, reordered +# 60421-1441 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60425-2355 - Added agent options to vicidial_users, reformatted user page +# 60502-1627 - Added drop_call_seconds and safe_harbor_ fields to campaign screen +# 60503-1228 - Added drop_call_seconds and drop_ fields to inbound groups screen +# 60505-1117 - Added initial framework for new local_call_times tables and definitions +# 60506-1033 - More revisions to the local_call_time section +# 60508-1354 - Finished call_times and state_call_times sections +# - Added modify/delete options for call_times +# 60509-1311 - Functionalize campaign dialable leads calculation +# - Change state_call_times selection from call_times to only allow one per state +# - Added dialable leads count popup to campaign screen if auto-calc is disabled +# - Added test dialable leads count popup to filter screen +# 60510-1050 - Added Wrapup seconds and Wrapup message to campaigns screen +# 60608-1401 - Added allowable inbound_groups checkboxes to CLOSER campaign detail screen +# 60609-1051 - Added add-to-dnc in LISTS section +# 60613-1415 - Added lead recycling options to campaign detail screen +# 60619-1523 - Added variable filtering to eliminate SQL injection attack threat +# 60622-1216 - Fixed HotKey addition form issues and variable filtering +# 60623-1159 - Fixed Scheduled Callbacks over-filtering bug and filter_sql bug +# 60808-1147 - Changed filtering for and added instructions for consutative transfers +# 60816-1552 - Added allcalls_delay start delay for recordings in vicidial.php +# 60817-2226 - Fixed bug that would not allow lead recycling of non-selectable statuses +# 60821-1543 - Added option to Omit Phone Code while dialing in vicidial +# 60821-1625 - Added ALLFORCE recording option for campaign_recording +# 60823-1154 - Added fields for adaptive dialing +# 60824-1326 - Added adaptive_latest_target_gmt for ADAPT_TAPERED dial method +# 60825-1205 - Added adaptive_intensity for ADAPT_ dial methods +# 60828-1019 - Changed adaptive_latest_target_gmt to adaptive_latest_server_time +# 60828-1115 - Added adaptive_dl_diff_target and changed intensity dropdown +# 60927-1246 - Added astguiclient/admin.php functions under SERVERS tab +# 61002-1402 - Added fields for vicidial balance trunk controls +# 61003-1123 - Added functions for vicidial_server_trunks records +# 61109-1022 - Added Emergency VDAC Jam Clear function to Campaign Detail screen +# 61110-1502 - Add ability to select NONE in dial statuses, new list_id must not be < 100 +# 61122-1228 - Added user group campaign restrictions +# 61122-1535 - Changed script_text to unfiltered and added more variables to SCRIPTS +# 61129-1028 - Added headers to Users and Phones with clickable order-by titles +# 70108-1405 - Added ADAPT OVERRIDE to allow for forced dial_level changes in ADAPT dial methods +# - Screen width definable at top of script, merged server_stats into this script +# 70109-1638 - Added ALTPH2 and ADDR3 hotkey options for alt number dialing with HotKeys +# 70109-1716 - Added concurrent_transfers option to vicidial_campaigns +# 70115-1152 - Aded (CLOSER|BLEND|INBND|_C$|_B$|_I$) options for CLOSER-type campaigns +# 70115-1532 - Added auto_alt_dial field to campaign screen for auto-dialing of alt numbers +# 70116-1200 - Added auto_alt_dial_status functionality to campaign screen +# 70117-1235 - Added header formatting variables at top of script +# - Moved Call Times and Phones/Server functions to Admin section +# 70118-1706 - Added new user group displays and links +# 70123-1519 - Added user permission settings for all sections +# 70124-1346 - Fixed spelling errors and formatting consistency +# 70202-1120 - Added agent_pause_codes section to campaigns +# 70205-1204 - Added memo, last dialed, timestamp and stats-refresh fields to vicidial_campaigns/lists +# 70206-1323 - Added user setting for vicidial_recording_override +# 70212-1412 - Added system settings section +# 70214-1226 - Added QueueMetrics Log ID field to system settings section +# 70219-1102 - Changed campaign dial statuses to be one string allowing for high limit +# 70223-0957 - Added queuemetrics_eq_prepend for custom ENTERQUEUE prepending of a field +# 70302-1111 - Fixed small bug in dialable leads calculation +# 70314-1133 - Added insert selection on script forms +# 70319-1423 - Added Alter Customer Data and agent disable display functions +# 70319-1625 - Added option to allow agents to login to outbound campaigns with no leads in the hopper +# 70322-1455 - Added sipsak messages parameters +# 70402-1157 - Added HOME link and entry to system_settings table, added QM link on reports section +# 70516-1628 - Started reformatting campaigns to use submenus to break up options +# 70529-1653 - Added help for list mix +# 70530-1354 - Added human_answered field to statuses, added system status modification +# 70530-1714 - Added lists for all campaign subsections +# 70531-1631 - Development on List mix admin interface +# 70601-1629 - More development on List mix admin interface, formatting, and added some javascript +# 70602-1300 - More development on List mix admin interface, more javascript +# 70608-1459 - Added option to set LIVE Callbacks to INACTIVE after one month +# 70612-1451 - Added Callback INACTIVE link for after one week, sort by user/group/entrydate +# 70614-0231 - Added Status Categories, ability to Modify Statuses, moved system statuses to sub-section +# 70623-1008 - List Mix section now allows modification of list mix entries +# 70629-1721 - List Mix section adding and removing of list entries active +# 70706-1636 - List Mix section cleanup and more error-checking +# 70908-0941 - Added agc logile enable system_settings +# 71020-1934 - Added inbound groups options: on-hold music, messages, call_times +# 71022-1343 - Added inbound group ranks for users +# 71029-1710 - Added option for campaign to be inbound and/or blended with no restrictions on the campaign_id name +# - Added 5th NEW and 6th NEW to the dial order options +# 71030-2010 - Added Manual Dial List ID field to campaigns table +# 71103-2207 - Added inbound_group_rank and fewest_calls to the inbound groups call order options +# 71113-1521 - Added campaign_rank to agent options +# - Added ability to Copy a campaign's setting to a new campaign +# 71113-2225 - Added ability to copy user and in-group settings to new users and in-groups +# 71116-0942 - Added campaign_rank and fewest_calls as methods for agent call routing +# 71122-1135 - Added default transfer group for campaigns and inbound groups +# 71125-1751 - Added allowable transfer groups to campaign detail screen +# 80107-1204 - Started framework for new QC section +# 80112-0242 - Added more options for lead order +# 80211-1901 - Added DB Schema Version to system settings display +# 80224-1334 - Added Queue Priority to in-groups and campaigns +# 80302-0232 - added drop_action and transfer to in-group for both in-groups and outbound +# 80310-1504 - added QC settings section to campaign screen +# 80317-2037 - Added Recording override settings to in-groups +# 80414-1505 - More work on QC, added vicidial_qc_codes +# 80424-0442 - Added non_latin system_settings lookup at top to override dbconnect setting +# 80505-0333 - Added phones_alias sections to allow for load-balanced-phone-logins +# 80512-1529 - Added auto-generate of User ID feature +# 80515-1345 - Added Shifts sub-section to Admin section +# 80528-0001 - Added campaign survey sub-section +# 80528-1102 - Added user timeclock edit options +# 80608-1304 - Changed add-to-DNC to allow for multiple entries per submission +# 80625-0032 - Added time/phone display format options to system settings +# 80703-0124 - Added alter cust phone and api settings +# 80715-1130 - Added Recycle leads limit count +# 80719-1351 - Changed QC settings in campaigns and In-Groups +# 80809-2305 - Added Sale and Dead Lead categories to status categories page +# 80815-1036 - Added manual dial filter to capaigns +# 80823-2124 - Added copy to clipboard campaign option +# 80829-2359 - Added EXTENDED auto_alt_dial options +# 80831-0406 - Added agent screen extended alt-dial option to campaigns +# 80909-0553 - Added campaign-specific DNC list option and add +# 81002-1101 - Added more in-group options and new DID section and user options +# 81007-0936 - Added three_way_call_cid option to campaigns +# 81012-1725 - Added INBOUND_MAN dial method allowing for manual list dialing with inbound calls +# 81030-0348 - Added campaign pause code force option +# 81030-2228 - Fixed DIDs creation issue +# 81103-1408 - Added 3way call dial prefix option +# 81107-1551 - Added Stats Percent of Calls Answered Within X seconds fields to in-groups +# 81118-0933 - Changed lists listing with links and more options +# 81119-0715 - Added ability to bulk enable/disable lists from modify campaign screen +# 81209-1538 - Added web_form_target to campaign screen +# 81210-1430 - Added http server IP and recording link options to servers +# 81222-0500 - Reformatted all listings to same format changed to field selects instead of * +# 81228-2300 - Added fields for vtiger integration and active vicidial_user display +# 90101-1216 - Added options for user synchronization with vtiger +# 90112-0335 - Added vtiger_create_lead_record and vtiger_create_lead_record options +# 90115-0502 - Activated AGENT DID routing option +# 90126-2256 - Added vtiger_screen_login campaign option and user agent alert option +# 90201-1503 - Added option to disable the viewing of inactive QC features +# 90202-0112 - Added option to disable outbound autodialing(or list dialing) +# 90202-0444 - Added cpd_amd_action option for processing of AMD messages +# 90209-1339 - Added download_lists option to allow downloading of lists +# 90210-1042 - Added options for auto-generation of asterisk conf files +# 90301-2026 - Added Vtiger group synchronization +# 90302-2046 - Changed Section heading to be on the left side of the screen +# 90303-0631 - Added web vars to agent campaign and in-group settings +# 90303-2047 - Added group aliases and default group aliases +# 90306-1214 - Added shift enforcement and server/system calls per second options +# 90308-0956 - Added server statistics +# 90309-0059 - Changed logging to admin_server_log +# 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 +# 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue +# +# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time + +$admin_version = '2.2.0-233'; +$build = '100104-1454'; + +$STARTtime = date("U"); +$SQLdate = date("Y-m-d H:i:s"); +$REPORTdate = date("Y-m-d"); +$MT[0]=''; +$US='_'; +$active_lists=0; +$inactive_lists=0; + +$month_old = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); +$past_week_date = date("Y-m-d H:i:s",$week_old); + +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Sie haben jetzt heraus geloggt. Danke\n"; + exit; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfull_name =$row[3]; + $LOGuser_level =$row[4]; + $LOGuser_group =$row[5]; + $LOGdelete_users =$row[8]; + $LOGdelete_user_groups =$row[9]; + $LOGdelete_lists =$row[10]; + $LOGdelete_campaigns =$row[11]; + $LOGdelete_ingroups =$row[12]; + $LOGdelete_remote_agents =$row[13]; + $LOGload_leads =$row[14]; + $LOGcampaign_detail =$row[15]; + $LOGast_admin_access =$row[16]; + $LOGast_delete_phones =$row[17]; + $LOGdelete_scripts =$row[18]; + $LOGdelete_filters =$row[29]; + $LOGalter_agent_interface =$row[30]; + $LOGdelete_call_times =$row[32]; + $LOGmodify_call_times =$row[33]; + $LOGmodify_users =$row[34]; + $LOGmodify_campaigns =$row[35]; + $LOGmodify_lists =$row[36]; + $LOGmodify_scripts =$row[37]; + $LOGmodify_filters =$row[38]; + $LOGmodify_ingroups =$row[39]; + $LOGmodify_usergroups =$row[40]; + $LOGmodify_remoteagents =$row[41]; + $LOGmodify_servers =$row[42]; + $LOGview_reports =$row[43]; + $LOGmodify_dids =$row[56]; + $LOGdelete_dids =$row[57]; + $LOGmanager_shift_enforcement_override=$row[61]; + $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns = $row[0]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|XXXX|$ip|$browser|$LOGfull_name|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +###################################################################################################### +###################################################################################################### +####### Header settings +###################################################################################################### +###################################################################################################### + + +header ("Content-type: text/html; charset=utf-8"); +echo "\n"; +echo "\n"; +echo "\n"; +echo "ADMINISTRATION: "; + +if (!isset($ADD)) {$ADD=0;} + +if ($ADD=="1") {$hh='users'; echo "Addieren Sie Neuen Benutzer";} +if ($ADD=="1A") {$hh='users'; echo "KopierenBenutzer";} +if ($ADD==11) {$hh='campaigns'; $sh='basic'; echo "Addieren Sie Neue Kampagne";} +if ($ADD==12) {$hh='campaigns'; $sh='basic'; echo "KopierenKampagne";} +if ($ADD==111) {$hh='lists'; echo "Addieren Sie Neue Liste";} +if ($ADD==121) {$hh='lists'; echo "Addieren Sie Neues DNC";} +if ($ADD==1111) {$hh='ingroups'; echo "Addieren Sie Neue In-Gruppe";} +if ($ADD==1211) {$hh='ingroups'; echo "KopierenIn-Gruppe";} +if ($ADD==1311) {$hh='ingroups'; echo "Add NewDID";} +if ($ADD==1411) {$hh='ingroups'; echo "KopierenDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Add-Ruf-Menü";} +if ($ADD==1611) {$hh='ingroups'; echo "Copy-Ruf-Menü";} +if ($ADD==11111) {$hh='remoteagent'; echo "Addieren Sie Neue Remotemittel";} +if ($ADD==111111) {$hh='usergroups'; echo "Addieren Sie Neue Benutzer-Gruppe";} +if ($ADD==1111111) {$hh='scripts'; echo "Addieren Sie Neuen Index";} +if ($ADD==11111111) {$hh='filters'; echo "Addieren Sie Neuen Filter";} +if ($ADD==111111111) {$hh='admin'; $sh='times'; echo "Füge neue Anrufzeit hinzu";} +if ($ADD==131111111) {$hh='admin'; $sh='shifts'; echo "Add NewShift";} +if ($ADD==1111111111) {$hh='admin'; $sh='times'; echo "Füge neue landesspezifische Anrufzeit hinzu";} +if ($ADD==11111111111) {$hh='admin'; $sh='phones'; echo "ADDIEREN SIE NEUES TELEFON";} +if ($ADD==12111111111) {$hh='admin'; $sh='phones'; echo "ADD NEW TEL ALIAS";} +if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "ADD NEW GROUP ALIAS";} +if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "ADDIEREN SIE NEUEN BEDIENER";} +if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "Neue CONF TEMPLATE";} +if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "ADD NEW CARRIER";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW TTS ENTRY";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC ON HOLD ENTRY";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW Voicemail-Box";} +if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "ADDIEREN SIE NEUE KONFERENZ";} +if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} +if ($ADD=='2') {$hh='users'; echo "Neue Benutzer-Hinzufügung";} +if ($ADD=='2A') {$hh='users'; echo "Neue Kopierte Benutzer-Hinzufügung";} +if ($ADD==20) {$hh='campaigns'; $sh='basic'; echo "Neue Kopierte Kampagne Hinzufügung";} +if ($ADD==21) {$hh='campaigns'; $sh='basic'; echo "Neue Kampagne Hinzufügung";} +if ($ADD==22) {$hh='campaigns'; $sh='status'; echo "Neue Kampagne Status-Hinzufügung";} +if ($ADD==23) {$hh='campaigns'; $sh='hotkey'; echo "New Kampagne HotKey Addition";} +if ($ADD==25) {$hh='campaigns'; $sh='recycle'; echo "Neue Kampagne Leitung Bereiten Hinzufügung Auf";} +if ($ADD==26) {$hh='campaigns'; $sh='autoalt'; echo "Neuer Vorwahlknopf-Status Des Automobil-Alt";} +if ($ADD==27) {$hh='campaigns'; $sh='pause'; echo "Neuer Mittel-Pause Code";} +if ($ADD==28) {$hh='campaigns'; $sh='dialstat'; echo "Kampagne Vorwahlknopf-Status Addiert";} +if ($ADD==29) {$hh='campaigns'; $sh='listmix'; echo "Kampagne Liste Mischung Fügte Hinzu";} +if ($ADD==211) {$hh='lists'; echo "Neue Liste Hinzufügung";} +if ($ADD==2111) {$hh='ingroups'; echo "Neue In-Gruppe Hinzufügung";} +if ($ADD==2011) {$hh='ingroups'; echo "Neue Kopierte In-Gruppe Hinzufügung";} +if ($ADD==2311) {$hh='ingroups'; echo "Neue DID-Zusatz";} +if ($ADD==2411) {$hh='ingroups'; echo "Neue Copied DID-Zusatz";} +if ($ADD==2511) {$hh='ingroups'; echo "Neue Call-Menü";} +if ($ADD==2611) {$hh='ingroups'; echo "Neue Call-Menü";} +if ($ADD==21111) {$hh='remoteagent'; echo "Neue Remotemittel-Hinzufügung";} +if ($ADD==211111) {$hh='usergroups'; echo "Neue Benutzer-Gruppe Hinzufügung";} +if ($ADD==2111111) {$hh='scripts'; echo "Neue Index-Hinzufügung";} +if ($ADD==21111111) {$hh='filters'; echo "Neue Filter-Hinzufügung";} +if ($ADD==211111111) {$hh='admin'; $sh='times'; echo "Neue Anrufzeit hinzufügen";} +if ($ADD==231111111) {$hh='admin'; $sh='shifts'; echo "Neue Shift Zusatz";} +if ($ADD==2111111111) {$hh='admin'; $sh='times'; echo "Neue landesspezifische Anrufzeit hinzufügen";} +if ($ADD==21111111111) {$hh='admin'; $sh='phones'; echo "ADDIEREN DES NEUEN TELEFONS";} +if ($ADD==22111111111) {$hh='admin'; $sh='phones'; echo "Neue TEL ALIAS";} +if ($ADD==23111111111) {$hh='admin'; $sh='phones'; echo "Neue GROUP ALIAS";} +if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "ADDIEREN DES NEUEN BEDIENERS";} +if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ADDIEREN DES NEUEN STAMM-SATZES DES BEDIENER-VICIDIAL";} +if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "Neue CONF TEMPLATE";} +if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "Neue CARRIER";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "Hinzufügen neuer TTS ENTRY";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "Hinzufügen neuer MUSIC ON HOLD ENTRY";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "Hinzufügen neuer Voicemail-Box";} +if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "ADDIEREN DER NEUEN KONFERENZ";} +if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} +if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "ADDIEREN VON VON VICIDIAL SYSTEMSTATUS";} +if ($ADD==231111111111111) {$hh='admin'; $sh='status'; echo "ADDIEREN VON VON VICIDIAL STATUS-KATEGORIE";} +if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "HINZUFÜGEN VICIDIAL QC-Statuscode";} +if ($ADD==3) {$hh='users'; echo "Ändern Sie Benutzer";} +if ($ADD==30) {$hh='campaigns'; echo "Kampagne Nicht Erlaubt";} +if ($ADD==31) + { + $hh='campaigns'; $sh='detail'; echo "Ändern Sie Kampagne - Detail - $campaign_id"; + if ($SUB==22) {echo " - Status";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Leitung Bereiten AufEntries";} + if ($SUB==26) {echo " - Auto Alt Dial Status";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - US-Mixes";} + if ($SUB=='20A') {echo " - Umfrage";} + } +if ($ADD==34) + { + $hh='campaigns'; $sh='basic'; echo "Ändern Sie Kampagne - Grundlegende Ansicht - $campaign_id"; + if ($SUB==22) {echo " - Status";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Leitung Bereiten AufEntries";} + if ($SUB==26) {echo " - Auto Alt Dial Status";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - US-Mixes";} + if ($SUB=='20A') {echo " - Umfrage";} + } +if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Kampagne Status";} +if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Kampagne HotKeys";} +if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "Kampagne Leitung Bereiten Eintragungen Auf";} +if ($ADD==36) {$hh='campaigns'; $sh='autoalt'; echo "Kampagne Selbstalt Vorwahlknopf-Status";} +if ($ADD==37) {$hh='campaigns'; $sh='pause'; echo "Kampagne Mittel-Pause Codes";} +if ($ADD==38) {$hh='campaigns'; $sh='dialstat'; echo "Kampagne Vorwahlknopf-Status";} +if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Kampagne Liste Mischungen";} +if ($ADD==311) {$hh='lists'; echo "Ändern Sie Liste";} +if ($ADD==3111) {$hh='ingroups'; echo "Ändern Sie In-Gruppe";} +if ($ADD==3311) {$hh='ingroups'; echo "ÄndernDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Ändern Call-Menü";} +if ($ADD==31111) {$hh='remoteagent'; echo "Ändern Sie Remotemittel";} +if ($ADD==311111) {$hh='usergroups'; echo "Ändern Sie Benutzer-Gruppen";} +if ($ADD==3111111) {$hh='scripts'; echo "Ändern Sie Index";} +if ($ADD==31111111) {$hh='filters'; echo "Ändern Sie Filter";} +if ($ADD==311111111) {$hh='admin'; $sh='times'; echo "Bearbeite Anrufzeit";} +if ($ADD==321111111) {$hh='admin'; $sh='times'; echo "Bearbeite Anrufzeit Landdefinitions-Liste";} +if ($ADD==331111111) {$hh='admin'; $sh='shifts'; echo "Ändern Shift";} +if ($ADD==3111111111) {$hh='admin'; $sh='times'; echo "Bearbeite landesspezifische Anrufzeit";} +if ($ADD==31111111111) {$hh='admin'; $sh='phones'; echo "ÄNDERN SIE TELEFON";} +if ($ADD==32111111111) {$hh='admin'; $sh='phones'; echo "MODIFY TEL ALIAS";} +if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFY GROUP ALIAS";} +if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "ÄNDERN SIE BEDIENER";} +if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} +if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ENTRY";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFY MUSIC ON HOLD ENTRY";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFY Voicemail-Box";} +if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "ÄNDERN SIE KONFERENZ";} +if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "ÄNDERN SIE VICIDIAL SYSTEM EINSTELLUNGEN";} +if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo "ÄNDERN SIE VICIDIAL SYSTEMSTATUS";} +if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo "ÄNDERN SIE VICIDIAL STATUS-KATEGORIE";} +if ($ADD==341111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC-Statuscode";} +if ($ADD=="4A") {$hh='users'; echo "Ändern Sie Benutzer - Admin";} +if ($ADD=="4B") {$hh='users'; echo "Ändern Sie Benutzer - Admin";} +if ($ADD==4) {$hh='users'; echo "Ändern Sie Benutzer";} +if ($ADD==41) {$hh='campaigns'; $sh='detail'; echo "Ändern Sie Kampagne";} +if ($ADD==42) {$hh='campaigns'; $sh='status'; echo "Ändern Sie Kampagne Status";} +if ($ADD==43) {$hh='campaigns'; $sh='hotkey'; echo "Ändern Sie Kampagne HotKey";} +if ($ADD==44) {$hh='campaigns'; $sh='basic'; echo "Ändern Sie Kampagne - Grundlegende Ansicht";} +if ($ADD==45) {$hh='campaigns'; $sh='recycle'; echo "Ändern Sie Kampagne Leitung Aufbereiten";} +if ($ADD==47) {$hh='campaigns'; $sh='pause'; echo "Ändern Sie Mittel-Pause Code";} +if ($ADD==48) {$hh='campaigns'; $sh='qc'; echo "Ändern Kampagne QC Einstellungen";} +if ($ADD==49) {$hh='campaigns'; $sh='listmix'; echo "Ändern Sie Kampagne Liste Mischung";} +if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Ändern Sie den Kampagnen";} +if ($ADD==411) {$hh='lists'; echo "Ändern Sie Liste";} +if ($ADD==4111) {$hh='ingroups'; echo "Ändern Sie In-Gruppe";} +if ($ADD==4311) {$hh='ingroups'; echo "ÄndernDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Ändern Call-Menü";} +if ($ADD==41111) {$hh='remoteagent'; echo "Ändern Sie Remotemittel";} +if ($ADD==411111) {$hh='usergroups'; echo "Ändern Sie Benutzer-Gruppen";} +if ($ADD==4111111) {$hh='scripts'; echo "Ändern Sie Index";} +if ($ADD==41111111) {$hh='filters'; echo "Ändern Sie Filter";} +if ($ADD==411111111) {$hh='admin'; $sh='times'; echo "Bearbeite Anrufzeit";} +if ($ADD==431111111) {$hh='admin'; $sh='shifts'; echo "Ändern Shift";} +if ($ADD==4111111111) {$hh='admin'; $sh='times'; echo "Bearbeite landesspezifische Anrufzeit";} +if ($ADD==41111111111) {$hh='admin'; $sh='phones'; echo "ÄNDERN SIE TELEFON";} +if ($ADD==42111111111) {$hh='admin'; $sh='phones'; echo "MODIFY TEL ALIAS";} +if ($ADD==43111111111) {$hh='admin'; $sh='phones'; echo "MODIFY GROUP ALIAS";} +if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "ÄNDERN SIE BEDIENER";} +if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "ÄNDERN SIE STAMM-SATZ DES BEDIENER-VICIDIAL";} +if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} +if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ENTRY";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFY MUSIC ON HOLD ENTRY";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFY Voicemail-Box";} +if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "ÄNDERN SIE KONFERENZ";} +if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "ÄNDERN SIE VICIDIAL SYSTEM EINSTELLUNGEN";} +if ($ADD==421111111111111) {$hh='admin'; $sh='status'; echo "ÄNDERN SIE VICIDIAL SYSTEMSTATUS";} +if ($ADD==431111111111111) {$hh='admin'; $sh='status'; echo "ÄNDERN SIE VICIDIAL STATUS-KATEGORIEN";} +if ($ADD==441111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC-Statuscode";} +if ($ADD==5) {$hh='users'; echo "LöschenUser";} +if ($ADD==51) {$hh='campaigns'; $sh='detail'; echo "LöschenKampagne";} +if ($ADD==52) {$hh='campaigns'; $sh='detail'; echo "Logout-Mittel";} +if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Dringlichkeits-VDAC Stau-Freier Raum";} +if ($ADD==511) {$hh='lists'; echo "LöschenList";} +if ($ADD==5111) {$hh='ingroups'; echo "LöschenIn-Group";} +if ($ADD==5311) {$hh='ingroups'; echo "LöschenDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Löschen-Ruf-Menü";} +if ($ADD==51111) {$hh='remoteagent'; echo "Löschung-Direktübertragung Mittel";} +if ($ADD==511111) {$hh='usergroups'; echo "Löschung-Benutzer Group";} +if ($ADD==5111111) {$hh='scripts'; echo "Löschung-Index";} +if ($ADD==51111111) {$hh='filters'; echo "Löschung-Filter";} +if ($ADD==511111111) {$hh='admin'; $sh='times'; echo "Lösche Anrufzeit";} +if ($ADD==531111111) {$hh='admin'; $sh='shifts'; echo "Löschen Shift";} +if ($ADD==5111111111) {$hh='admin'; $sh='times'; echo "Lösche landesspezifische Anrufzeit";} +if ($ADD==51111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==52111111111) {$hh='admin'; $sh='phones'; echo "DELETE TEL ALIAS";} +if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} +if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} +if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "TTS DELETE ENTRY";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE Voicemail-Box";} +if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==6) {$hh='users'; echo "LöschenUser";} +if ($ADD==61) {$hh='campaigns'; $sh='detail'; echo "LöschenKampagne";} +if ($ADD==62) {$hh='campaigns'; $sh='detail'; echo "Logout-Mittel";} +if ($ADD==63) {$hh='campaigns'; $sh='detail'; echo "Dringlichkeits-VDAC Stau-Freier Raum";} +if ($ADD==65) {$hh='campaigns'; $sh='recycle'; echo "Löschung-Leitung Bereiten Auf";} +if ($ADD==66) {$hh='campaigns'; $sh='autoalt'; echo "Selbstalt Vorwahlknopf-Status Der Löschung-";} +if ($ADD==67) {$hh='campaigns'; $sh='pause'; echo "Löschung-Mittel-Pause Code";} +if ($ADD==68) {$hh='campaigns'; $sh='dialstat'; echo "Kampagne Vorwahlknopf-Status Entfernt";} +if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "Kampagne Liste Mischung Entfernte";} +if ($ADD==611) {$hh='lists'; echo "LöschenList";} +if ($ADD==6111) {$hh='ingroups'; echo "LöschenIn-Group";} +if ($ADD==6311) {$hh='ingroups'; echo "LöschenDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Löschen-Ruf-Menü";} +if ($ADD==61111) {$hh='remoteagent'; echo "Löschung-Direktübertragung Mittel";} +if ($ADD==611111) {$hh='usergroups'; echo "Löschung-Benutzer Group";} +if ($ADD==6111111) {$hh='scripts'; echo "Löschung-Index";} +if ($ADD==61111111) {$hh='filters'; echo "Löschung-Filter";} +if ($ADD==611111111) {$hh='admin'; $sh='times'; echo "Lösche Anrufzeit";} +if ($ADD==631111111) {$hh='admin'; $sh='shifts'; echo "Löschen Shift";} +if ($ADD==6111111111) {$hh='admin'; $sh='times'; echo "Lösche landesspezifische Anrufzeit";} +if ($ADD==61111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE TEL ALIAS";} +if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} +if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "STAMM-SATZ DES LÖSCHUNG-BEDIENER-VICIDIAL";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "TTS DELETE ENTRY";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE Voicemail-Box";} +if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==73) {$hh='campaigns'; echo "Anzahl anrufbarer Anschlüsse";} +if ($ADD==7111111) {$hh='scripts'; echo "Vorbetrachtung-Index";} +if ($ADD==700000000000000) {$hh='reports'; echo "VICIDIAL Änderung der Registrierung ADMIN";} +if ($ADD==710000000000000) {$hh='reports'; echo "VICIDIAL USER ADMIN Änderung der Registrierung";} +if ($ADD==720000000000000) {$hh='reports'; echo "VICIDIAL ABSCHNITT ADMIN Änderung der Registrierung";} +if ($ADD==730000000000000) {$hh='reports'; echo "VICIDIAL DETAIL ADMIN Änderung der Registrierung";} +if ($ADD==0) {$hh='users'; echo "Benutzer-Liste";} +if ($ADD==8) {$hh='users'; echo "Wiederholungsbesuche Innerhalb Des Mittels";} +if ($ADD==81) {$hh='campaigns'; $sh='list'; echo "Wiederholungsbesuche Innerhalb Der Kampagne";} +if ($ADD==811) {$hh='lists'; echo "Wiederholungsbesuche Innerhalb Der Liste";} +if ($ADD==8111) {$hh='usergroups'; echo "Wiederholungsbesuche Innerhalb Der Benutzer-Gruppe";} +if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Kampagnen";} +if ($ADD==100) {$hh='lists'; echo "Listen";} +if ($ADD==1000) {$hh='ingroups'; echo "In-Gruppen";} +if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Call-Menüs";} +if ($ADD==10000) {$hh='remoteagent'; echo "Remotemittel";} +if ($ADD==100000) {$hh='usergroups'; echo "Benutzer-Gruppen";} +if ($ADD==1000000) {$hh='scripts'; echo "Indexe";} +if ($ADD==10000000) {$hh='filters'; echo "Filter";} +if ($ADD==100000000) {$hh='admin'; $sh='times'; echo "Anrufzeiten";} +if ($ADD==130000000) {$hh='admin'; $sh='shifts'; echo "Verschiebungen";} +if ($ADD==1000000000) {$hh='admin'; $sh='times'; echo "Landesspezische Anrufzeiten";} +if ($ADD==10000000000) {$hh='admin'; $sh='phones'; echo "TELEFON-LISTE";} +if ($ADD==12000000000) {$hh='admin'; $sh='phones'; echo "TEL ALIAS LISTE";} +if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GROUP ALIAS LISTE";} +if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "BEDIENER-LISTE";} +if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF Vorlagenliste";} +if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "CARRIER LISTE";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS TEILNEHMERLISTE";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "MUSIC ON HOLD TEILNEHMERLISTE";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "Voicemailboxen LISTE";} +if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "KONFERENZ-LISTE";} +if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL KONFERENZ-LISTE";} +if ($ADD==550) {$hh='users'; echo "Suchform";} +if ($ADD==551) {$hh='users'; echo "SUCHTELEFONE";} +if ($ADD==660) {$hh='users'; echo "Suchresultate";} +if ($ADD==661) {$hh='users'; echo "SUCHE RUFT RESULTATE AN";} +if ($ADD==99999) {$hh='users'; echo "HILFE";} +if ($ADD==999999) {$hh='reports'; echo "REPORTS";} + +if ( ($ADD>9) && ($ADD < 99998) ) + { + ##### get scripts listing for dynamic pulldown + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $scripts_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $scripts_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get filters listing for dynamic pulldown + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_sql from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + $filters_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($filters_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $filters_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $filtername_list["$rowx[0]"] = "$rowx[1]"; + $filtersql_list["$rowx[0]"] = "$rowx[2]"; + $o++; + } + + ##### get call_times listing for dynamic pulldown + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $times_to_print = mysql_num_rows($rslt); + + $o=0; + while ($times_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $call_times_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $call_timename_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + } + +if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD<70)) or ($ADD=="4A") or ($ADD=="4B") or (strlen($ADD)==12) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + + ##### BEGIN get campaigns listing for rankings ##### + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $campaigns_value=''; + $RANKcampaigns_list="<tr><td>CAMPAIGN</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $campaign_id_values[$o] = $rowx[0]; + $campaign_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + $group_web_vars=''; + $campaign_web=''; + $stmt="SELECT campaign_rank,calls_today,group_web_vars from vicidial_campaign_agents where user='$user' and campaign_id='$campaign_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_campaign_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_campaign_rank=0; $group_web_vars='';} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_GET["RANK_$campaign_id_values[$o]"];} + elseif (isset($_POST["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_POST["RANK_$campaign_id_values[$o]"];} + if (isset($_GET["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_GET["WEB_$campaign_id_values[$o]"];} + elseif (isset($_POST["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_POST["WEB_$campaign_id_values[$o]"];} + if ($non_latin < 1) + { + $campaign_rank = ereg_replace("[^-\_0-9]","",$campaign_rank); + $campaign_web = preg_replace("/;|\"|\'/","",$campaign_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', group_web_vars='$campaign_web' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', campaign_id='$campaign_id_values[$o]', user='$user', group_web_vars='$campaign_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_agents set campaign_weight='$campaign_rank' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$campaign_rank = $SELECT_campaign_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + # disable non user-group allowable campaign ranks + $stmt="SELECT user_group from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Ruser_group = $row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$Ruser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $UGcampaigns = explode(" ", $allowed_campaigns); + + $p=0; $RANK_camp_active=0; $CR_disabled = ''; + if (eregi('-ALL-CAMPAIGNS-',$allowed_campaigns)) + {$RANK_camp_active++;} + else + { + $UGcampaign_ct = count($UGcampaigns); + while ($p < $UGcampaign_ct) + { + if ($campaign_id_values[$o] == $UGcampaigns[$p]) + {$RANK_camp_active++;} + $p++; + } + } + if ($RANK_camp_active < 1) {$CR_disabled = 'DISABLED';} + + $RANKcampaigns_list .= "<tr $bgcolor><td>"; + $campaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] <BR>\n"; + $RANKcampaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] </td>"; + $RANKcampaigns_list .= "<td>     <select size=1 name=RANK_$campaign_id_values[$o] $CR_disabled>\n"; + $h="9"; + while ($h>=-9) + { + $RANKcampaigns_list .= "<option value=\"$h\""; + if ($h==$campaign_rank) + {$RANKcampaigns_list .= " SELECTED";} + $RANKcampaigns_list .= ">$h</option>"; + $h--; + } + if ( (strlen($campaign_web) < 1) and (strlen($group_web_vars) > 0) ) + {$campaign_web=$group_web_vars;} + $RANKcampaigns_list .= "</select></td>\n"; + $RANKcampaigns_list .= "<td align=right>     $calls_today</td>\n"; + $RANKcampaigns_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$campaign_id_values[$o] value=\"$campaign_web\"></td></tr>\n"; + $o++; + } + ##### END get campaigns listing for rankings ##### + + + ##### BEGIN get inbound groups listing for checkboxes ##### + $xfer_groupsSQL=''; + if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) + { + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + + 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';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + if ($ADD==3) + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; +# $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + $XFERgroups_list=''; + $RANKgroups_list="<tr><td>INBOUND GROUP</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_values[$o] = $rowx[0]; + $group_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($groups_to_print > $o) + { + $group_web_vars=''; + $group_web=''; + $stmt="SELECT group_rank,calls_today,group_web_vars from vicidial_inbound_group_agents where user='$user' and group_id='$group_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_group_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_group_rank=0;} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$group_id_values[$o]"])) {$group_rank=$_GET["RANK_$group_id_values[$o]"];} + elseif (isset($_POST["RANK_$group_id_values[$o]"])) {$group_rank=$_POST["RANK_$group_id_values[$o]"];} + if (isset($_GET["WEB_$group_id_values[$o]"])) {$group_web=$_GET["WEB_$group_id_values[$o]"];} + elseif (isset($_POST["WEB_$group_id_values[$o]"])) {$group_web=$_POST["WEB_$group_id_values[$o]"];} + + if ($non_latin < 1) + { + $group_rank = ereg_replace("[^-\_0-9]","",$group_rank); + $group_web = preg_replace("/;|\"|\'/","",$group_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_web_vars='$group_web' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_id='$group_id_values[$o]', user='$user', group_web_vars='$group_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_inbound_agents set group_weight='$group_rank' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$group_rank = $SELECT_group_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $groups_list .= "<input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $XFERgroups_list .= "<input type=\"checkbox\" name=\"XFERgroups[]\" value=\"$group_id_values[$o]\""; + $RANKgroups_list .= "<tr $bgcolor><td><input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $p=0; + $group_ct = count($groups); + while ($p < $group_ct) + { + if ($group_id_values[$o] == $groups[$p]) + { + $groups_list .= " CHECKED"; + $RANKgroups_list .= " CHECKED"; + $groups_value .= " $group_id_values[$o]"; + } + $p++; + } + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + if ($group_id_values[$o] == $XFERgroups[$p]) + { + $XFERgroups_list .= " CHECKED"; + $XFERgroups_value .= " $group_id_values[$o]"; + } + $p++; + } + $stmt="SELECT queue_priority from vicidial_inbound_groups where group_id='$group_id_values[$o]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VIG_priority = $row[0]; + + $groups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] - $VIG_priority <BR>\n"; + $XFERgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] <BR>\n"; + $RANKgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] </td>"; + $RANKgroups_list .= "<td>     <select size=1 name=RANK_$group_id_values[$o]>\n"; + $h="9"; + while ($h>=-9) + { + $RANKgroups_list .= "<option value=\"$h\""; + if ($h==$group_rank) + {$RANKgroups_list .= " SELECTED";} + $RANKgroups_list .= ">$h</option>"; + $h--; + } + if ( (strlen($group_web) < 1) and (strlen($group_web_vars) > 0) ) + {$group_web=$group_web_vars;} + $RANKgroups_list .= "</select></td>\n"; + $RANKgroups_list .= "<td align=right>     $calls_today</td>\n"; + $RANKgroups_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$group_id_values[$o] value=\"$group_web\"></td></tr>\n"; + $o++; + } + if (strlen($groups_value)>2) {$groups_value .= " -";} + if (strlen($XFERgroups_value)>2) {$XFERgroups_value .= " -";} + } + ##### END get inbound groups listing for checkboxes ##### + + +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) + { + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + { + $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $qc_allowed_campaigns = $row[1]; + $qc_allowed_inbound_groups = $row[2]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $campaigns = explode(" ", $allowed_campaigns); + $qc_allowed_campaigns = preg_replace("/ -$/","",$qc_allowed_campaigns); + $qc_campaigns = explode(" ", $qc_allowed_campaigns); + $qc_allowed_inbound_groups = preg_replace("/ -$/","",$qc_allowed_inbound_groups); + $qc_groups = explode(" ", $qc_allowed_inbound_groups); + } + + $campaigns_value=''; + $campaigns_list='<B><input type="checkbox" name="campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_campaigns_value=''; + $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_groups_value=''; + $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) + { + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } + $campaigns_list.="> ALL-CAMPAIGNS - BENUTZER KÖNNEN JEDE MÖGLICHE KAMPAGNE ANSEHEN</B><BR>\n"; + $qc_campaigns_list.="> ALL-CAMPAIGNS - Benutzer können alle Kampagnen, QC</B><BR>\n"; + $qc_groups_list.="> ALL-GROUPS - Benutzer können QC JEDENFALLS INBOUND GROUP</B><BR>\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaign_id_value = $rowx[0]; + $campaign_name_value = $rowx[1]; + $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; + $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; + $p=0; + while ($p<1000) + { + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) + { + # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; + $campaigns_list .= " CHECKED"; + $campaigns_value .= " $campaign_id_value"; + } + if ($campaign_id_value == $qc_campaigns[$p]) + { + $qc_campaigns_list .= " CHECKED"; + $qc_campaigns_value .= " $campaign_id_value"; + } + # echo "<!-- O $p|$campaign_id_value|$campaigns[$p]| -->"; + $p++; + } + $campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $qc_campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $o++; + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; + $p=0; + while ($p<2000) + { + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) + { + $qc_groups_list .= " CHECKED"; + $qc_groups_value .= " $group_id_value"; + } + $p++; + } + $qc_groups_list .= "> $group_id_value - $group_name_value<BR>\n"; + $o++; + } + + if (strlen($campaigns_value)>2) {$campaigns_value .= " -";} + if (strlen($qc_campaigns_value)>2) {$qc_campaigns_value .= " -";} + if (strlen($qc_groups_value)>2) {$qc_groups_value .= " -";} + } + ##### END get campaigns listing for checkboxes ##### + + +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rsltx=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rsltx); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + } + + + +$NWB = "   <a href=\"javascript:openNewWindow('$PHP_SELF?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"HILFE\" ALIGN=TOP></A>"; + + +###################################################################################################### +###################################################################################################### +####### 9 series, HELP screen +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=99999 display the HELP SCREENS +###################### + +if ($ADD==99999) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: HILFE


\n"; + + ?> + VICIDIAL_BENUTZERTABELLE

+ +
+ Benutzernummer - Dieses fangen ist, wohin Sie dieVICIDIAL Benutzernummer Zahl setzen, kann bis 8 Stellen in der Längesein, muß mindestens 2 Buchstaben lang sein auf. + +
+
+
+ Kennwort - Dieses fangen ist auf, wohin Sie das VICIDIALBenutzerkennwort setzen. Sein mindestens müssen 2 Buchstaben lang. + +
+
+
+ Voller Name - Dieses fangen ist auf, wohin Sie den vollenNamen der VICIDIAL Benutzer setzen. Sein mindestens müssen 2Buchstaben lang. + +
+
+
+ Benutzer-Niveau - Dieses Menü ist, wo Sie das VICIDIALBenutzer-Benutzerniveau vorwählen. Sein muß ein Niveau von inVICIDIAL zu loggen 1,, muß waagerecht ausgerichtet grösser sein, alsals genaueres innen zu loggen 2, Benutzerniveau 8 oder grösser seinmüssen, in admin Netzabschnitt zu erhalten. + +
+
+
+ Benutzer-Gruppe - Dieses Menü ist, wo Sie die VICIDIALBenutzergruppe vorwählen, daß dieser Benutzer gehört. Dieses hatkeine Beschränkungen diesmal, ist dieses gerecht, Benutzer zuunterteilen und die zukünftigen Eigenschaften zuzulassen, die nachihm gegründet werden. + +
+
+
+ Telefon-LOGON - Für hier ist, wo Sie einen RückstellungTelefon-LOGON-Wert wenn die Benutzermaschinenbordbücher invicidial.php einstellen können. Dieser Wert bevölkert dasphone_login automatisch wenn die Benutzermaschinenbordbücher innenmit ihrer Benutzer-überschreiten-Kampagne auf dem vicidial.phpLOGON-Schirm. + +
+
+
+ Telefon-Durchlauf - Für hier ist, wo Sie einen RückstellungTelefon-Durchlaufwert wenn die Benutzermaschinenbordbücher invicidial.php einstellen können. Dieser Wert bevölkert die phone_passautomatisch wenn die Benutzermaschinenbordbücher innen mit ihrerBenutzer-überschreiten-Kampagne auf dem vicidial.php LOGON-Schirm. + +
+
+
+ Aktive - Dieses Feld legt fest, ob der Benutzer in das System und können VICIDIAL Ressourcen. Der Standardwert ist Y + +
+
+
+ E-Mail, User-Code und Territorium - Dies sind optionale Felder. + +
+
+
+ Hot Keys aktiv - Diese Wahl, wenn Satz bis 1 dem Benutzer erlaubt,die Hot Keys schnelle-dispositioning Funktion innen zu verwenden vicidial.php. + +
+
+
+ Mittel wählen Ingroups - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, die ingroups zu wählen, denen sie Anrufe von wenn sie LOGONzu einer GENAUEREN oder INBOUND Kampagne empfangen. Andernfalls mußder Manager dieses auf ihrem Benutzersonderkommandoschirm der adminSeite einstellen. + +
+
+
+ Wählen Sie Agent Territories - Diese Option, wenn auf 1 gesetzt, kann der Anwender für die Gebiete wählen, dass sie, wenn sie Anrufe aus dem Login erhalten zu einem manuellen oder INBOUND_MAN Kampagne. Andernfalls wird der Benutzer eingestellt werden, dass alle Gebiete, die sie gesetzt sind, um in der User-Gebieten gehören Verwaltungs-Abschnitt verwenden. + +
+
+
+ Scheduled Callbacks - Diese Option ermöglicht es einem Agenten um einen Anruf zu Verfügung als CALLBK und wählen Sie das Datum und die Uhrzeit, zu der die Führung wieder aktiviert werden. + +
+
+
+ Mittel-Nur Wiederholungsbesuche - Diese Wahl erlaubt einemVertreter, einen Wiederholungsbesuch einzustellen, damit sie daseinzige Mittel sind, das die Kunde Rückseite benennen kann. Dieseserlaubt auch dem Vertreter, ihre Wiederholungsbesuch Auflistungen zusehen und sie zurück zu benennen, immer wenn sie zu wünschen. + +
+
+
+ Vertreter-Anruf-Handbuch - Diese Wahl erlaubt einem Vertreter,eine neue Leitung in das System manuell einzutragen und sie zubenennen. Dieses auch erlaubt das Benennen jeder möglicherTelefonnummer von ihrem vicidial Schirm und setzt diesen Anruf inihren Lernabschnitt. Verwenden Sie diese Wahl mit Vorsicht. + +
+
+
+ Vicidial Aufnahme - Diese Wahl kann verhindern, daß ein Mittelalle mögliche Aufnahmen tut, nachdem sie innen in vicidialprotokollieren. Diese Wahl muß eingeschaltet sein, damit vicidial demKampagne Aufnahmelernabschnitt folgt. + +
+
+
+ Vicidial Übertragungen - Diese Wahl kann verhindern, daß einMittel die Übertragung - Konferenzlernabschnitt von vicidial öffnet.Wenn dieses untauglich ist, kann das Mittel nicht dritterParteianruf, oder blinde Übertragung irgendeine benennt. + + 0) + { + ?> +
+
+
+ Genauere Rückstellung gemischt - Diese Wahl fällt einfach dasgemischte checkbox auf einem GENAUEREN LOGON-Schirm zurück. + + +
+
+
+ VICIDIAL Aufnahme-Übersteuerung - diese Wahl läuft über, was auchimmer die Wahl in der Kampagne für Aufnahme ist. UNTAUGLICH läuftnicht die Kampagne Aufnahmeeinstellung über. NIE sperrt Aufnahme aufdem Klienten. ONDEMAND ist die Rückstellung und erlaubt dem Vertreterzu notieren zu beginnen und, zu stoppen, wie gebraucht. ALLCALLSbeginnt Aufnahme auf dem Klienten, wann immer ein Anruf zu einemMittel geschickt wird. ALLFORCE beginnt Aufnahme auf dem Klienten,wann immer ein Anruf zu einem Mittel geschickt wird, das dem Mittelkeine Wahl gibt, um zu notieren zu stoppen. Für ALLCALLS und ALLFORCEgibt es eine Wahl, zum der Aufnahme zu benutzen verzögert, um untenauf sehr kurze Aufnahmen und recude Anlagen-Belastung zu schneiden. + +
+
+
+ Agent Shift Vollstreckung Override - Diese Einstellung überschreibt, was die Benutzer Benutzer-Gruppe hat für die Vollstreckung Shift. DEAKTIVIERT wird die Benutzergruppe Einstellung. AUS wird nicht in allen Schichten durchzusetzen. START wird nur die Durchsetzung der Login-Zeit, sondern wirkt sich nicht auf einen Vertreter, der mit über die Verlagerung, wenn sie bereits eingeloggt ALL wird durchzusetzen Verlagerung starten und meldet einen Agenten aus, nachdem sie über das Ende ihrer Schicht Zeit. Option ist standardmäßig deaktiviert. + +
+
+
+ Alarm aktiv - Dieses Feld zeigt an, ob der Agent hat Warnungen Web-Browser aktiviert, wenn Anrufe in Berührung kommen, ihre vicidial.php Sitzung. Der Standardwert ist 0 für NO. + +
+
+
+ Lassen Sie Alerts - Dieses Feld gibt Ihnen die Möglichkeit an den Agenten Browser erlauben Benachrichtigung durch die Agenten für die Lage versetzt werden, wenn Anrufe kommen in ihre vicidial.php Sitzung. Der Standardwert ist 0 für NO. + +
+
+
+ Kampagne ordnet - in diesem Abschnitt können Sie den Rank definieren,den ein Mittel für jede Kampagne hat. Diese Rank können gewohntSEIN,bevorzugte Anrufwegewahl zuzulassen, wenn folgender Vertreter-Anrufauf campaign_rank eingestellt wird. Auch in diesem Abschnitt sind die WEB VARs für jede Kampagne. Diese ermöglichen es jedem Agenten zu haben, eine andere Variable Zeichenfolge, die hinzugefügt werden können, um die Web-Formular oder SCRIPT Registerkarte URLs, indem Sie einfach setzen - A - web_vars - B - wie Sie würde jedem anderen Bereich. + +
+
+
+ Inbound Gruppen - Ist hier, wo Sie die inbound Gruppen vorwählen,die Sie Anrufe von empfangen möchten, wenn Sie die GENAUERE Kampagnevorgewählt haben. SieSIND auch in der Lage, den Rank oder Fähigkeit Niveaueinzustellen, in diesem Abschnitt für jede der inbound Gruppen sowieIn der LageSEIN, die Zahl den Anrufen zu sehen, die von jeder inboundGruppe für dieses spezifische Mittel empfangen werden. Auch in diesem Abschnitt ist die Fähigkeit, dem Mittel einen Rankfür jede inbound Gruppe zu geben. Diese Rank können für bevorzugteAnrufwegewahl verwendet werden, wenn diese Wahl auf dem IngruppeSchirm vorgewählt wird. Auch in diesem Abschnitt sind die WEB VARs für jede Kampagne. Diese ermöglichen es jedem Agenten zu haben, eine andere Variable Zeichenfolge, die hinzugefügt werden können, um die Web-Formular oder SCRIPT Registerkarte URLs, indem Sie einfach setzen - A - web_vars - B - wie Sie würde jedem anderen Bereich. + +
+
+
+ Mittel ändern Kunde Daten-Übersteuerung - diese Wahl läuft über,was auch immer die Wahl in der Kampagne für das Ändern von KundeDaten ist. NOT_ACTIVE verwendet, was auch immer Einstellung für dieKampagne anwesend ist. ALLOW_ALTER darf immer, damit das Mittel dieKunde Daten ändert, egal was die Kampagne Einstellung ist.Rückstellung ist NOT_ACTIVE. + +
+
+
+ Agent Alter Kunden Telefon Override - Mit dieser Option werden die unabhängig von der Option ist in der Kampagne für die Änderung der Kunde die Rufnummer ein. NOT_ACTIVE wird unabhängig Einstellung ist für die Kampagne. ALLOW_ALTER wird immer für den Agenten, um die Kunden-Nummer, egal, was die Kampagne Einstellung. Der Standardwert ist NOT_ACTIVE. + +
+
+
+ Benutzerdefinierte Felder - Diese fünf Felder können für verschiedene Zwecke verwendet werden, und sie können in das Web-Formular Adressen und Skripte als user_custom_one und so weiter gefüllt werden. + +
+
+
+ Ändern Sie Mittel-Schnittstelle Wahlen - diese Wahl, wenn Satzbis 1 dem administrativen Benutzer erlaubt, die MittelschnittstelleWahlen in admin.php zu ändern. + +
+
+
+ Löschung-Benutzer - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, andere Benutzer des Gleichgestellten oder wenigenBenutzerniveaus aus dem System zu löschen. + +
+
+
+ Löschung-Benutzer-Gruppen - Diese Wahl, wenn Satz bis 1 demBenutzer erlaubt, Benutzergruppen aus dem System zu löschen. + +
+
+
+ Löschung verzeichnet - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Listen aus dem System zu löschen. + +
+
+
+ Löschung wirbt - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Kampagnen aus dem System zu löschen. + +
+
+
+ Löschung In-Gruppen - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial In-Gruppen aus dem System zu löschen. + +
+
+
+ Löschung-Remotemittel - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Remotemittel aus dem System zu löschen. + + 0) + { + ?> +
+
+
+ Last führt - Diese Wahl, wenn Satz bis 1 dem Benutzer erlaubt,vicidial Leitungen in die vicidial_list Tabelle über die Netzgegründete Leitung Ladevorrichtung zu laden. + + +
+
+
+ Kampagne Detail - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, die Kampagne Detail-Schirmelemente anzusehen und zu ändern. + +
+
+
+ AGC Admin Zugang - Diese Wahl, wenn Satz bis 1 den Benutzer zumLOGON zu den astGUIclient admin Seiten erlaubt. + +
+
+
+ AGC Löschung-Telefone - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Telefoneintragungen in den astGUIclient admin Seiten zulöschen. + +
+
+
+ Löschung-Indexe - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Kampagne Indexe auf dem Indexänderung Schirm zu löschen. + +
+
+
+ Ändern Sie Leitungen - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Leitungen in der admin Abschnittleitung Suchresultate Seitezu ändern. + +
+
+
+ Ändern Sie Vertreter-Kampagne - Diese Wahl, wenn Satz bis 1 demBenutzer erlaubt, die Kampagne zu ändern, daß ein Mittel in geloggtwird, während sie in es geloggt werden. + + 0) + { + ?> +
+
+
+ Löschung filtert - Diese Wahl erlaubt dem Benutzer, in der LagezuSEIN, vicidial Leitung Filter aus dem System zu löschen. + + +
+
+
+ Löschen Anrufzeiten - Diese Option erlaubt dem Nutzer die Vicidial Anrufzeiten Aufzeichnungen und Vicidial Status Anrufzeiten Aufzeichnungen vom System zu löschen. + +
+
+
+ Ändere Anrufzeiten - 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. + +
+
+
+ Ändern Sie Abschnitte - diese Wahlen erlauben dem Benutzer, jedesanzusehen und zu ändern Abschnittaufzeichnungen. Wenn Satz bis 0, derBenutzer in der LageIST, die Abschnittliste, aber nicht das Detailoder den Änderung Schirm einer Aufzeichnung in diesem Abschnitt zusehen. + +
+
+
+ Ansicht berichtet - diese Wahl erlaubt dem Benutzer, die VICIDIALBerichte anzusehen. + + 0) + { + ?> +
+
+
+ QC aktiv - Diese Option ermöglicht es dem Benutzer, um sich in der Quality Control Agent-Bildschirm. + +
+
+
+ QC-Benutzer-Niveau - Diese Einstellung legt fest, was die Qualität der User-Agent ist. Dies wird diktieren der Ebene der Funktionalität für den Agenten in der QC-Abschnitt:
+ 1 - Nichts ändern
+ 2 - Ändern Sie nichts außer Status
+ 3 - Ändern Sie alle Felder
+ 4 - Überprüfen ersten QC
+ 5 - QC Statistiken anzeigen
+ 6 - Möglichkeit, Aufzeichnungen FINISHED
+ 7 - Manager Level
+ +
+
+
+ QC-Datensatz Pass - Diese Option ermöglicht es dem Agenten, um anzugeben, dass ein Datensatz hat die erste Runde der QC nach Überprüfung der Aufnahme. + +
+
+
+ QC-Datensatz Finish - Diese Option ermöglicht es dem Agenten, um anzugeben, dass eine Aufzeichnung beendet ist die zweite Runde der QC nach Überprüfung durch die Aufnahme. + +
+
+
+ QC-Datensatz Commit - Diese Option ermöglicht es dem Agenten festlegen, dass ein Datensatz wurde, die in QC. Es kann nicht mehr geändert werden, indem man. + + +
+
+
+ AddTimeclock Log Record - Diese Option ermöglicht es dem Benutzer, um an das timeclock Log. + +
+
+
+ ÄndernTimeclock Log Record - Diese Option ermöglicht es dem Benutzer zu ändern, Einträge in der Log-timeclock. + +
+
+
+ Löschen der RegistrierungTimeclock Record - Diese Option ermöglicht es dem Benutzer zu löschen, Einträge in der Log-timeclock. + +
+
+
+ Agent API-Zugang - Diese Option ermöglicht es, das Konto für die Verwendung mit der vicidial Agenten-API-Befehle. + +
+
+
+ Shift Manager Vollstreckung Override - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager, um ihre Benutzer und Kennwort für ein Agent-Bildschirm, um die Verlagerung Beschränkungen auf einen Agenten Sitzung, wenn der Agent versucht, sich außerhalb ihrer Schicht. Der Standardwert ist 0. + +
+
+
+ Download Listen - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager zu klicken Sie auf den Download-Link-Liste am unteren Rand einer Liste Änderung Bildschirm zu exportieren den gesamten Inhalt eines Verzeichnisses auf eine flache Datei. Der Standardwert ist 0. + +
+
+
+ Exportieren von Berichten - Diese Einstellung, wenn auf 1 gesetzt wird ein Manager für den Zugriff auf die Ausfuhr rufen Berichte über die Berichte Bildschirm. Der Standardwert ist 0. Für die Export-Bericht fordert, um das folgende Feld wird für die Ausfuhr:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, 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, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner + +
+
+
+ Löschen von DNC-Listen - Diese Einstellung, wenn auf 1 gesetzt, wird es den Manager, der Telefonnummern aus dem DNC-Listen in der VICIDIAL System zu entfernen. + + + + + + +



+ + VICIDIAL_CAMPAIGNSTABELLE

+
+
+ Kampagne Identifikation - Dieses ist der kurze Name der Kampagne,es ist nicht editable nach Ausgangsunterordnung, kann nicht Räumeenthalten und muß zwischen 2 und 8 Buchstaben im lengt seinh. + +
+
+
+ Kampagne Name - Dieses ist die Beschreibung der Kampagne, muß eszwischen 6 und 40 Buchstaben lang sein. + +
+
+
+ Kampagne Beschreibung - dieses ist ein Protokoll auffangenfür die Kampagne, ist es wahlweise freigestellt und kann ein Maximumvon 255 Buchstaben lang sein. + +
+
+
+ Kampagne Änderung Datum - dieses ist das letzte Mal, daß dieEinstellungen für diese Kampagne in jeder Hinsicht geändert wurden. + +
+
+
+ Letztes Kampagne LOGON-Datum - dieses ist das letzte Mal, daß einMittel in diese Kampagne geloggt wurde. + +
+
+
+ Letzte Kampagne Call Date - Dies ist das letzte Mal, dass ein Anruf wurde durch einen Vertreter in diese Kampagne angemeldet behandelt. + +
+
+
+ Kampagne Notfall erneuern - dieses checkbox erlaubt Ihnen, einenvicidial Notfall zu zwingen erneuern, selbst wenn die Kampagne nichtaktiv ist. + +
+
+
+ Aktiv - Dieses ist, wohin Sie die Kampagne auf aktives oderunaktiviertes einstellen. Wenn unaktiviert, kann noone in es loggen. + +
+
+
+ Park-Verlängerung - Dieses ist, wo Sie besonders anfertigenkönnen auf-halten Musik für VICIDIAL. Stellen Sie sicher, daß dieVerlängerung im Platz im extensions.conf ist und das, das es auf denDateinamen unten zeigt. + +
+
+
+ Park-Dateiname - Dieses ist, wo Sie besonders anfertigen könnenauf-halten Musik für VICIDIAL. Stellen Sie sicher, daß der Dateiname10 Buchstaben lang oder kleiner ist und daß die Akte im Platz im/var/lib/asterisk/sounds Verzeichnis ist. + +
+
+
+ Netz-Form - Dieses ist, wo Sie die kundenspezifische Webseiteeinstellen können, die geöffnet ist, wenn der Benutzer an dieNETZ-FORM-Taste klickt. So passen Sie die Abfragezeichenfolge nach dem Web-Formular, einfach beginnen, die Web-Formular mit VAR und dann die URL, die Sie verwenden möchten, ersetzt die Variablen mit den Variablen-Namen, die Sie verwenden möchten - A - phone_number - B -- genau wie in der Registerkarte INDEXE Abschnitt. + +
+
+
+ Netz-Form-Target- Hier können Sie die eigene Web-Seite, dass der Rahmen Web-Formular wird geöffnet, wenn der Nutzer auf die Netz-Form-Taste. Der Standardwert ist _blank. + +
+
+
+ Erlauben Sie Closers - Dieses ist, wo Sie einstellen können, obdie Benutzer dieser Kampagne die Wahl haben, zum des Anrufs zu einemgenauerem zu schicken. + +
+
+
+ Rückstellung Übergangsgruppe - dieses fangen ist dieRückstellung In-Gruppe auf, die automatisch vorgewählt wird, wenndas Mittel zum Bringenkonferenz Rahmen in ihrer Mittelschnittstellegeht. + +
+
+
+ Gewährte Übergangsgruppen - mit diesen checkbox Auflistungen könnenSie die Gruppen vorwählen, denen Mittel in dieser Kampagne bringenkönnen Anrufe zu. Erlauben Sie Closers muß ermöglicht werden, damitdiese Wahl oben darstellt. + + 0) + { + ?> +
+
+
+ Erlauben Sie Inbound und gemischt - dieses ist, wo Sie einstellenkönnen, ob die Benutzer dieser Kampagne die Wahl haben, zum von voninbound Anrufen mit dieser Kampagne zu nehmen. Wenn Sie gemischtesinbound und outbound tun möchten dann, muß dieses auf Y eingestelltwerden. Wenn Sie nur das outbound Wählen auf dieser Kampagne tunmöchten einstellten dieses auf N. Default sind N. + +
+
+
+ Vorwahlknopf-Status - Dieses ist, wohin Sie die Status einstellen,die Sie an innerhalb der Listen wählen wünschen, die für dieKampagne unten aktiv sind. Um einen anderen Status Vorwahlknopf hinzuzufügen, wählen Sie ihnvon der Drop-Down-Liste vor und Klicken FÜGT hinzu. Um einen derVorwahlknopfstatus zu entfernen, klicken Sie an dieENTFERNENVERBINDUNG nahe bei dem Status, den Sie entfernen möchten. + +
+
+
+ Liste Auftrag - Dieses Menü ist, wo Sie vorwählen, wie dieLeitungen, die die Status zusammenbringen, die oben vorgewähltwerden, in den Leitung Zufuhrbehälter eingesetzt werden: +
  - DOWN: wählen Sie die ersten Leitungen vor, die in die vicidial_list Tabellegeladen werden +
  - UP: wählen Sie die letzten Leitungen vor, die in die vicidial_listTabelle geladen werden +
  - UP PHONE: wählen Sie die höchste Telefonnummer und die Arbeiten seine Weiseunten vor +
  - DOWN PHONE: wählen Sie die niedrigste Telefonnummer und die Arbeiten seine Weiseoben vor +
  - UP LAST NAME: Anfänge mit letzten Namen beginnend mit Z und Arbeiten seine Weiseunten +
  - DOWN LAST NAME: Anfänge mit letzten Namen beginnend mit A und Arbeiten seine Weiseoben +
  - UP COUNT: Anfänge mit benannten Leitungen und Arbeiten seine Weise unten +
  - DOWN COUNT: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weiseoben +
  - DOWN COUNT 2nd NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jeder anderen Leitung einsetzt - dürfenNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus +
  - DOWN COUNT 3nd NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jeder dritten Leitung einsetzt - dürfenNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus +
  - DOWN COUNT 4th NEW: Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jedem einsetzt weiter, führen Sie - darfNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus +
  - RANDOM: Zufällig schnappt führen innerhalb der definierten Status und Listen +
  - UP LAST CALL TIME: Sortiert nach den neuesten Ortsgespräch Zeit für die Leitungen +
  - DOWN LAST CALL TIME: Sortiert nach den ältesten Ortsgespräch Zeit für die Leitungen +
  - UP RANK: Startet mit dem höchsten Rang und arbeitet sich nach unten +
  - DOWN RANK: Startet mit dem niedrigsten Rang und arbeitet dem Weg nach oben +
  - UP OWNER: Beginnt mit den Eigentümern beginnend mit Z und arbeitet sich nach unten +
  - DOWN OWNER: Beginnt mit den Eigentümern mit A beginnt und arbeitet dem Weg nach oben +
  - UP TIMEZONE: Startet mit Ost-West Zeitzonen und arbeitet +
  - DOWN TIMEZONE: Startet mit westlichen Zeitzonen und arbeitet Osten + +
+
+
+ Zufuhrbehälter waagerecht ausgerichtet - Dieses ist, wieviele dieVDhopper Indexversuche führt, um in der vicidial_hopper Tabelle fürdiese Kampagne zu halten. Wenn Sie VDhopper Index jede Minute laufenlassen, bilden Sie dieses etwas grösser als die Zahl Leitungen, dieSie in eine Minute durchmachen. + +
+
+
+ Leitung Filter - Dieses ist eine Methode der Entstörung IhrerLeitungen mit einem Fragment einer SQL Frage. Benutzen Sie dieseFunktion mit Vorsicht, es ist einfach mit, der geringfügigstenÄnderung zur SQL Aussage versehentlich zu wählen zu stoppen.Rückstellung ist KEINE. + +
+
+
+ Drop Lockout Time - Dies ist eine Zahl der Stunden, die DROP aufzugeben Anrufe verhindert werden, daß gewählt, zu deaktivieren, auf 0 gesetzt. Diese Einstellung ist sehr nützlich, in Ländern wie dem Vereinigten Königreich, wo gibt es Vorschriften, die verhindern versucht Berufung des Kunden innerhalb von 72 Stunden ein Abandon oder DROP. Der Standardwert ist 0. + +
+
+
+ Kraft-Zurückstellen des Zufuhrbehälters - erlaubt dieses Ihnen,aus dem Zufuhrbehälterinhalt nach Formunterordnung abzuwischen. Essollte wieder gefüllt werden, wenn der VDhopper Index läuft. + +
+
+
+ Vorwahlknopf-Methode - Dieses fangen ist die Weise, wie auf das Wählen zu definieren, stattfinden soll. Wenn HANDBUCH dann das auto_dial_level bei 0 verschlossen ist, es sei denn Vorwahlknopf-Methode geändert wird. Wenn VERHÄLTNIS dann der Normal, der eine Zeilenzahl für aktive Mittel wählt. ADAPT_HARD_LIMIT wählt predictively bis zum fallengelassenen Prozentsatz und dann erlaubt nicht das konkurrenzfähige Wählen, sobald die Tropfenbegrenzung erreicht wird, bis der Prozentsatz unten wieder geht. ADAPT_TAPERED läßt laufenden Überschuß den fallengelassenen Prozentsatz zur Hälfte erste der Verschiebung zu - wie durch das call_time definiert, das für Kampagne vorgewählt wird und erhält strenger, während die Verschiebung weitergeht. ADAPT_AVERAGE versucht, einen Durchschnitt oder den fallengelassenen Prozentsatz beizubehalten so, die konkurrenzfähig harte Begrenzungen nicht wie die anderen zwei Methoden auferlegen. Sie können nicht das Selbstvorwahlknopf-Niveau ändern, wenn Sie in irgendwelchen der ANPASSENVORWAHLKNOPFMETHODEN sind. Nur der Dialer kann das Vorwahlknopfniveau ändern wenn im vorbestimmten wählenden Modus. INBOUND_MAN ermöglicht es dem Agenten, um manuelle Einwahl Anrufe von einer Kampagne Liste, während in der Lage, die eingehenden Anrufe zwischen manuelle Einwahl fordert. + +
+
+
+ Selbstvorwahlknopf-Niveau - Dieses ist, wohin Sie einstellen,wieviele VICIDIAL sollte pro Mittel 0 verwenden des aktiven Mittelsnull zeichnet, Automobil, daswählen aus ist und die Mittel klicken,um jede Nummer zu wählen. Andernfalls hält VICIDIALWählverbindungen gleich den aktiven Mitteln, die mit demVorwahlknopfniveau multipliziert werden, um zu, wievielen Linien zukommen diese Kampagne auf jedem Bediener erlauben sollte. Das ANPASSENÜBERSTEUERUNG checkbox erlaubt Ihnen, ein neuesVorwahlknopfniveau zu zwingen, obwohl die Vorwahlknopfmethode in einemANPASSENMODUS ist. Dieses ist nützlich, wenn es eine drastischeVerschiebung in der Qualität der Leitungen gibt und Sie dasdial_level drastisch manuell ändern möchten. + +
+
+
+ Vorhandenes nur Tally - dieses fangen auf, wenn Satz zu YINCALL und WARTESCHLANGE Statusmittel ausläßt, wenn er die ZahlAnrufen zum Vorwahlknopf wenn nicht in MANUELLEN Vorwahlknopfmoduserrechnet. Rückstellung ist N. + +
+
+
+ Tropfen-Prozentsatz-Begrenzung - dieses fangen ist auf, wohinSie die Begrenzung auf den Prozentsatz der fallengelassenen Anrufe,die einstellten Sie beim Verwenden eineranpassungsfähig-vorbestimmten Vorwahlknopfmethode möchten, nichtMANUELL oder des VERHÄLTNISSES. + +
+
+
+ Maximum paßt den waagerecht ausgerichteten Vorwahlknopf an - diesesfangen ist auf, wohin Sie die Begrenzung auf die Begrenzungauf das numbr der Linien, die einstellten Sie gewählt pro Mittel beimVerwenden einer anpassungsfähig-vorbestimmten Vorwahlknopfmethodemöchten, nicht MANUELL oder des VERHÄLTNISSES. Diese Zahl kann alsdas Selbstvorwahlknopf-Niveau höher sein, wenn Ihre Kleinteile esstützen. Wert muß eine positive Nr. grösser als eine sein und kannDezimalstellen Rückstellung 3.0 haben. + +
+
+
+ Neueste Bediener-Zeit - dieses fangen wird verwendet nurdurch die ADAPT_TAPERED Vorwahlknopfmethode auf. Sie sollten in dieStunde hereinkommen und Minute, um der Sie stoppen, diese Kampagne zuersuchen, 2100 würde bedeuten, daß Sie stoppen, diese Kampagne bei9PM Bedienerzeit zu wählen. Dieses läßt den sich verjüngendenAlgorithmus entscheiden wie konkurrenzfähig zum Vorwahlknopf durch,wie lang Sie haben, bis Sie fertiges Benennen sind. + +
+
+
+ Passen Sie Intensität Modifizierfaktor an - dieses fangenwird verwendet, die vorbestimmte höhere oder niedrigere Intensitätzu justieren entweder auf. Das höhere eine positive Zahl, die Sievorwählen, grösser der Dialer den schreitenen Anruf erhöht, wenn esgeht oben und langsam der Dialer den schreitenen Anruf verringert,wenn es geht unten. Das niedriger die negative Zahl, Sie vorwählenhier, langsam erhöht der Dialer den schreitenen Anruf und schnellersenkt der Dialer den schreitenen Anruf, wenn es geht unten.Rückstellung ist 0. Dieses fangen wird verwendet nicht durchden HANDBUCH- oder VERHÄLTNIS-Vorwahlknopf Methoden auf. + +
+
+
+ Vorwahlknopf-waagerecht ausgerichtetes Unterschied-Ziel - diesesfangen wird verwendet zu definieren auf, ob Sie Haben einerspezifischen Anzahl von den Mitteln zielen möchten, die Anruf- oderAnklopfenmittel warten. Z.B. wenn Sie immer auf Durchschnitt einerMittel haben möchten frei, Anrufe sofort zu nehmen, würden Siedieses bis -1 einstellen, wenn Sie ein immer haben zielen möchtenersuchen um den Einfluß, der ein Mittel wartet, das Sie dieses bis 1einstellen würden. Rückstellung ist 0. Dieses fangen wirdverwendet nicht durch den HANDBUCH- oder VERHÄLTNIS-VorwahlknopfMethoden auf. + +
+
+
+ Gleichzeitige Übertragungen - diese Einstellung wird benutzt, um dieZahl Anrufen zu definieren, die zu den Mitteln gleichzeitig geschicktwerden können. Es wird empfohlen, daß diese Einstellung am AUTOMOBILgelassen wird. Dieses fangen wird verwendet nicht durch dieMANUELLE Vorwahlknopfmethode auf. + +
+
+
+ Queue-Priorität - Diese Einstellung wird verwendet, um die Reihenfolge, in der die Anrufe von diesem ausgehende Kampagne zu beantworten in Bezug auf die eingehenden Anrufe, wenn diese Kampagne ist in Blended-Modus. + +
+
+
+ Mehrere Kampagne Drop Rate Group - Diese Funktion erlaubt Ihnen, eine Kampagne als Mitglied einer Kampagne Drop-Rate-Fraktion, oder eine Gruppe von Kampagnen Menge, deren Human Beantwortete Anrufe und Drop fordert für alle Kampagnen in der Gruppe werden in einen gemeinsamen Drop Prozentsatz, oder aufgeben und abstimmen kombiniert werden. Dies ermöglicht es Ihnen, mehrere Kampagnen gleichzeitig und leichter Ablaufsteuerung Ihre Drop-Rate. Dies ist besonders nützlich in Großbritannien, wo die Vorschriften dieser Drop-Rate Berechnungsmethode mit Kampagnen-Gruppierung in der gleichen Firma Bewilligung, auch wenn es mehrere Kampagnen, die Firma läuft am selben Tag. Um dies für eine Kampagne zu aktivieren, wählen Sie einfach eine Gruppe aus der Liste. Es gibt 10 Gruppen in das System standardmäßig definiert, können Sie Ihren Systemadministrator wenden, um mehr hinzuzufügen. Option ist standardmäßig deaktiviert. + +
+
+
+ Wählende SelbstAlt-zahl - diese Einstellung wird benutzt, umwechselnde Nummer automatisch zu wählen auffängt, beimWählen im VERHÄLTNIS und ANPASST Vorwahlknopfmethoden, wenn eskeinen Kontakt an der Haupttelefonnummer für eine Leitung, die Na, B,DC und N Status gibt. Diese Einstellung wird nicht durch die MANUELLEVorwahlknopfmethode benutzt. EXTENDED stellvertretenden Zahlen sind die Zahlen in das System außerhalb der Standard-Bildschirm führen. Mit Extended können Sie Hunderte von Telefonnummern für einen einzigen Kunden aufnehmen. + +
+
+
+ Vorwahlknopf-Abschaltung - Wenn Sie, Anrufe, die normalerweiseHängezustand wurden, nachdem die Abschaltung, die in extensions.confanstatt Abschaltung an dieser Menge Sekunden definiert wurde wurde,wenn sie kleiner ist, als die extensions.conf Abschaltung definiertwerden. Dieses läßt schnell ändernde Vorwahlknopfabschaltungen vomBediener zum Bediener und zum Begrenzen der Effekte zu einer einzelnenKampagne zu. Wenn Sie eine Menge antwortende Maschine oder VoicemailAnrufe haben, können Sie diesen Wert, bis zwischen 21-26 zu ändernversuchen und sehen wünschen, wenn Resultate verbessern. + +
+
+
+ Kampagne VDAD Erweiterung - Dieses Feld erlaubt eine kundenspezifische Erweiterung VDAD Übertragung. Auf diese Weise können Sie verschiedene Call-Handling-Methoden je nach Ihrer Kampagne. + - 8364 - wie 8368 + - 8365 - wird die Forderung nur einem Agenten auf demselben Server wie der Anruf auf + - 8366 - Wird für die Presse-1 und Umfrage-Kampagnen + - 8367 - wird versuchen, zunächst schicken Sie die Forderung nach einem Agenten auf dem lokalen Server, dann wird es sich auf einem anderen Server + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Wird für Anrufbeantworter-Erkennung nach, dass ein gleiches Verhalten wie 8368 + - 8373 - Wird für Anrufbeantworter-Erkennung, die nach dem gleichen Verhalten wie 8366 + +
+
+
+ Antwortende Maschine Anzeige - Dieses Feld ist für die Eingabe von der Eingabeaufforderung zu spielen, wenn der Agent einen Anrufbeantworter und Klicks wird auf dem Anrufbeantworter Mitteilung Button in der Übertragung Konferenz Rahmen. Sie müssen diese entweder auf eine Audio-Datei in das Audio-Speicher oder ein TTS set prompt TTS, wenn auf Ihrem System aktiviert ist. + +
+
+
+ WaitForSilence Optionen - Wenn Wait For Silence ist auf Anrufe, die als Anrufbeantworter dann festgestellt werden diesem Bereich hat die gewünschten Optionen. Es gibt zwei Einstellungen durch ein Komma getrennt, ist die erste Option, wie lange Schweigen in Millisekunden erkennen und die zweite Option ist, wie oft erkennen, dass vor dem Abspielen der Nachricht. Der Standardwert ist LEER für Behinderte. Ein Standard-Wert für dieses wäre für 2 Sekunden Stille warten, zweimal: 2000,2 + +
+
+
+ AMD senden zu VM exten - erlaubt dieses Menü Ihnen zu definieren,ob eine Anzeige auf einer antwortenden Maschine gelassen wird, wennihr der Anruf wird sofort nachgeschickt zur Antworten-Maschine-AnzeigeVerlängerung ermittelt wird, wenn AMD aktiv ist und es festgestelltwird, daß der Anruf eine antwortende Maschine ist. + +
+
+
+ CPD AMD Action - Wenn Sie die Sangoma ParaXip Rufen Fortschritte Detection-Software, dann werden Sie zum Aktivieren dieser Einstellung, entweder sie DISPO, die Disposition der Anruf als AA und hängen Sie es, wenn der Anruf wird bearbeitet und wurde nicht gesendet, um noch ein Agent oder eine Nachricht zu senden, die den Aufruf der Anrufbeantworter die Nachricht für diese Kampagne. Standardwert ist deaktiviert. + +
+
+
+ Numerisches Wählen des Mittel-Alt - erlaubt diese Wahl einemVertreter, die wechselnde Telefonnummer manuell zu wählen, oderaddress3 fangen auf, nachdem die Hauptzahl benannt wordenist. + +
+
+
+ Sekunden zur Verbindung - Anzahl der Sekunden vom Abnehmen des Kunden bis zur Erkennung als Verbindung, betrifft nur abgehende Verbindungen. + +
+
+
+ Drop-Aktion - Mit diesem Menü können Sie wählen, was passiert, wenn er einen Anruf wartet seit mehr als das, was ist in der Drop-Call Sekunden ein. HANGUP einfach auflegen, das Gespräch, MESSAGE wird die Forderung der Drop-Erweiterung, die Sie definiert haben, unten, Voicemail wird der Anruf an die Voicemail-Box, die Sie definiert haben, und unter IN_GROUP wird der Aufruf an die Inbound-Gruppe, die weiter unten definiert ist + +
+
+
+ Sicherheitsnebenstelle - Dies ist die Wählplan Nebenstelle, wo sich die gewünschte Sicherheits-Audiodatei auf Ihrem Server befindet. + +
+
+
+ Voicemail - Wenn sie definiert werden, würden Anrufe, dienormalerweise FALLEN würden, anstatt auf diesen voicemail Kastenverwiesen, um eine Anzeige zu hören und zu lassen. + +
+
+
+ Drop-Transfer-Fraktion - Wenn Drop-Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie erreicht Drop Call Sekunden. + +
+
+
+ Gewähren Sie Kein-Zufuhrbehälter-Führt LOGON - wenn Satz zu Y,Mittel zum LOGON zur Kampagne erlaubt, selbst wenn es keine Leitungengibt, die in den Zufuhrbehälter für diese Kampagne geladen werden.Diese Funktion wird nicht in den CLOSER-type Kampagnen benötigt.Rückstellung ist N. + +
+
+
+ Nr. Hopper Dialing - Wenn diese aktiviert ist, wird der Trichter nicht ausgeführt werden für diese Kampagne. Diese Option ist nur verfügbar, wenn die DFÜ-Methode, mit manuellen oder INBOUND_MAN gesetzt ist. Es wird empfohlen, dass Sie diese Option nicht aktivieren, wenn Sie eine sehr große Datenbank haben, führen über 100.000 führt. With No Hopper Wählen Sie die folgenden Funktionen nicht:-Recycling, Auto-alt-Dialing, Verzeichnis-Mix, Liste Bestellung mit X. NEW. Wenn Sie Besitzer verwenden Nur Wählen Sie müssen keine Hopper Dialing aktiviert. Der Standardwert ist N für Behinderte. + +
+
+
+ Eigentümer nur Dialing - Wenn diese aktiviert ist, wird der Agent führt nur zu erhalten, dass sie in das Eigentum Parameter sind. Ist dies der USER dann die Vertreter muß der Benutzer in der Datenbank als Besitzer dies dazu führen, definiert. Ist dies das Hoheitsgebiet dann die Eigentümer der führen muss das Gebiet, in dem User Änderung Bildschirm für dieses Anbieters angegeben haben. Ist dies zu USER_GROUP dann die Eigentümer der führen muss der Benutzer die Gruppe, dass der Agent ist ein Mitglied der übereinstimmen. Für diese Funktion, um die DFÜ-Methode arbeiten müssen, um MANUAL oder INBOUND_MAN und Nr. Hopper Dialing eingestellt werden muss aktiviert sein. Der Standardwert ist KEINE für Behinderte. + + 0) + { + ?> +
+
+
+ Wählen Sie Agent Territories - Wenn diese Option aktiviert ist und der Agent gehört mindestens ein Gebiet, wird der Agent die Möglichkeit haben, die Auswahl Gebiete führt vom Zifferblatt. Der Agent wird eine Liste der verfügbaren Gebiete bei der Anmeldung zu sehen und sie wird die Fähigkeit, um wieder auf diesem Gebiet Liste haben, wenn angehalten, ihre Gebiete zu ändern. Für diese Funktion für die Arbeit der Eigentümer nur Dialing-Option zu GEBIET und User Gebiete gesetzt werden muss in den Einstellungen aktiviert werden. + + +
+
+
+ Liste Auftrag Mischung - läuft den Leitung Auftrag über undVorwahlknopf-Status fängt auf. Verwendet die Liste undStatusparameter für die vorgewählte Liste Mischung Eintragung imListe Mischung Unterseebootabschnitt anstatt. Rückstellung istUNTAUGLICH. + +
+
+
+ Liste Mischung Identifikation - Identifikation der Liste Mischung.Muß von 2-20 Buchstaben lang ohne Räume oder andere spezielleInterpunktion sein. + +
+
+
+ Liste Mischung Name - beschreibender Name der Liste Mischung. Muß von2-50 Buchstaben lang sein. + +
+
+
+ Liste Mischung Detail - der Aufbau der Liste Mischung Eintragung.Enthält die Liste Identifikation, Mischung Auftrag, Prozentsätze undStatus, die diese Liste Mischung bilden. Die Prozentsätze müssen bis100 immer addieren, und alle Listen müssen aktiv und eingestellt aufdie Kampagne sein, damit die Auftrag Mischung Eintragung aktiviertwerden kann. + +
+
+
+ Liste Mischung Methode - die Methode von alle Teile des Liste MischungDetails zusammen mischen. EVEN_MIX mischt Leitungen von jedem Teil,das mit den anderen Teilen, wie diese 1.2.3.1.2.3.1.2.3 durchgeschobenwird. IN_ORDER setzt die Leitungen in den Auftrag ein, in dem sie aufdem Liste Mischung Detailschirm 1.1.1.2.2.2.3.3.3 verzeichnet werden.GELEGENTLICHER Wille setzte sie in GELEGENTLICHEN Auftrag1.3.2.1.1.3.2.1.3 ein. Rückstellung ist IN_ORDER. + +
+
+
+ Agent Screen Erweiterte Alt Dial - Diese Funktion erlaubt es Agenten für den Zugriff auf erweiterte stellvertretenden Telefonnummern führt über die Standard-Telefon-und Alt Address3 Felder, die verwendet werden können in VICIDIAL für Telefonnummern außerhalb der Haupt-Telefonnummer. Die Ausdehnung Telefonnummern gewählt werden können automatisch über die Auto-Alt-Dial-Funktion in VICIDIAL Kampagne Einstellungen, aber die Aktivierung dieser Agent Screen-Funktion wird auch für den Agenten, um diese Zahlen aus ihrer Bevollmächtigten Bildschirm sowie Informationen zu bearbeiten. + +
+
+
+ Umfrage Erste Audio-Datei - Dies ist der Audio-Datei, die gespielt wird, sobald der Kunde nimmt das Telefon, wenn Sie eine Umfrage Kampagne. + +
+
+
+ Umfrage DTMF Digits - Dieses Feld ist, in dem Sie die Zahlen, dass ein Kunde kann Presse als eine Option auf eine Umfrage-Kampagne. gültig von DTMF-Ziffern sind0123456789*#. Alle Optionen mit Ausnahme der nicht interessiert, dritte und vierte Stelle Optionen werden nun zu den Umfrage-Methode nennen Weg. + +
+
+
+ Umfrage nicht interessiert Digit - Dieses Feld ist, wo Sie den Kunden Ziffer gedrückt wird, dass sie nicht daran interessiert sind. + +
+
+
+ Umfrage nicht interessiert Status - Dieses Feld ist, wo Sie den Status, der für die nicht interessiert. Wenn DNC verwendet wird und die Kampagne für die Verwendung DNC dann die Telefonnummer wird automatisch auf die interne VICIDIAL DNC Liste.und möglicherweise die Kampagne-spezifische DNC Liste. + +
+
+
+ Umfrage Opt-in Audio-Datei - Dies ist der Audio-Datei, die gespielt wird, wenn der Kunde hat sich bei der Erhebung, sich nicht-oder nicht reagiert, wenn die Nicht-Antwort-Aktion ist auf OptOut. Nach dieser Audio-Datei gespielt wird, die Umfrage-Methode Maßnahmen ergriffen werden. + +
+
+
+ Umfrage nicht interessiert Audio Datei - Dies ist der Audio-Datei, die gespielt wird, wenn der Kunde hat sich aus der Umfrage, nicht Opt-in ist oder nicht reagiert, wenn die Nicht-Antwort-Aktion ist auf OptIn. Nach dieser Audio-Datei gespielt wird, wird der Anruf wird dann. + +
+
+
+ Umfrage-Methode - Diese Option legt fest, was geschieht, auf eine Ausschreibung nach den Kunden hat sich in. AGENT_XFER wird der Anruf an den nächsten verfügbaren Agenten. VOICEMAIL wird der Anruf an die Voicemail-Box, die in den Bereich Voicemail. AUSDEHNUNG wird der Kunde auf die Ausdehnung der Definition in der Umfrage XFER Erweiterung Bereich. HANGUP hängt die Kunden. CAMPREC_60_WAV wird der Kunde auf eine Aufnahme, die mit ihrer Antwort, diese Aufnahme wird in einem Ordner mit dem Namen, wie sich die Kampagne innerhalb der Umfrage Kampagne Aufnahme Directory. + +
+
+
+ Umfrage Nr.-Response Action - Hier wird definiert, was passieren wird, wenn es keine Reaktion auf die Umfrage Frage. OptIn wird nur dann den Aufruf an die an der Umfrage-Methode, wenn der Kunde Pressen eine DTMF-Ziffern. OptOut wird der Kunde auf die Umfrage-Methode, auch wenn sie nicht drücken Sie eine DTMF-Ziffern. + +
+
+
+ Antworten Digit Karte - Das ist der Abschnitt, in dem Sie eine Beschreibung zu jedem DTMF-Ziffern Option, dass der Kunde auswählen kann. + +
+
+
+ Umfrage XFER Extension - , wenn die Methode der Erhebung AUSDEHNUNG ausgewählt ist dann der Kunde Aufruf richten Sie bitte an dieser dialplan Erweiterung. + +
+
+
+ Umfrage Kampagne Aufnahme der Dienststellen - , wenn die Methode der Erhebung CAMPREC_60_WAV ausgewählt ist dann der Kunde Reaktion wird erfasst und in ein Verzeichnis mit dem Namen nach der Kampagne innerhalb dieses Verzeichnisses. + +
+
+
+ Umfrage dritte Ziffer - Dies ermöglicht einen dritten Anruf weg, wenn die dritte Stelle in diesem Bereich definiert ist, gedrückt durch den Kunden. + +
+
+
+ Umfrage vierte Stelle - Dies ermöglicht ein Viertel nennen Weg, wenn die vierte Stelle in diesem Bereich definiert ist, gedrückt durch den Kunden. + +
+
+
+ Umfrage Dritten Audio-Datei - Dies ist der dritte Audiodatei auf die Auswahl des Kunden von der dritten Stelle Option gespielt werden. + +
+
+
+ Umfrage Dritten Status - Dies ist der dritte Status für den Anruf auf die Auswahl des Kunden von der dritten Stelle Option verwendet. + +
+
+
+ Umfrage dritte Erweiterung - Dies ist die dritte Erweiterung für den Anruf auf die Auswahl des Kunden von der dritten Stelle Option verwendet. Der Standardwert ist 8300, das hängt unmittelbar den Ruf nach der Audio-Datei Meldung abgespielt ist. + +
+
+
+ Agent Anzeige dialable Leads - Diese Option aktiviert wird, wenn die Anzahl der wählbaren führt in die Kampagne in der Agenten-Bildschirm zeigen. Diese Zahl wird in das System einmal pro Minute aktualisiert und wird auf dem Bildschirm des Agenten aktualisiert werden, alle paar Sekunden. + + + +
+
+
+ Folgender Vertreter-Anruf - Dieses stellt fest, welches Mittel denfolgenden Anruf empfängt, der vorhanden ist: +
  - random: Aufträge durch den gelegentlichen Updatewert in dervicidial_live_agents Tabelle +
  - oldest_call_start: Aufträge bis zum dem letzten Mal ein Mittel wurden einem Anrufgeschickt. Resultate in den Mitteln, die insgesamt ungefähr gleicheZahl von Anrufen empfangen. +
  - oldest_call_finish: Aufträge bis zum dem letzten Mal ein Mittel beendeten einen Anruf.Das AKA Mittel, das am längsten wartet, empfängt ersten Anruf. +
  - overall_user_level: Aufträge durch das user_level des Mittels, wie inden vicidial_users definiert legen ein höheres user_level empfangenmehr Anrufe ver. +
  - campaign_rank: Aufträge durch den Rank gegeben zum Mittel für dieKampagne. Stark zu am niedrigsten. +
  - fewest_calls: Aufträge durch die Zahl den Anrufen empfangen durch einMittel für diese spezifische inbound Gruppe. Wenige Anrufe zuerst. +
  - longest_wait_time: Bestellungen durch die Zeit, die Agenten aktiv gewartet auf einen Anruf. + +
+
+
+ Ortsgespräch-Zeit - Dieses ist, wohin Sie während welcherStunden Sie wählen möchten, wie bis zum der lokalen Zeit infestgestellt sind einstellten in, welchem Sie benennen. Dieses wirddurch Ortsnetzkennzahl gesteuert und wird auf Tageslicht-SparungenZeit eingestellt, wenn anwendbar. Allgemeine Richtlinien in den USAfür Geschäft zum Geschäft ist 9am bis 5pm und Geschäft zu denVerbraucheranrufen ist 9am bis 9pm. + +
+
+
+ Vorwahlknopf-Präfix - Dieses fangen zuläßt einen Wegdes Wählens leicht ändern auf, zum durch eine andere Methode zuerlöschen, ohne ein Umladen im Sternchen zu tun. Rückstellung ist 9gegründet nach einem 91NXXNXXXXXX im dial plan - extensions.conf. + +
+
+
+ Lassen Sie Telefon-Code aus - dieses fangen erlaubt Ihnen,das phone_code auszulassen auffangen beim Wählen innerhalbVICIDIAL auf. Zum Beispiel wenn Sie in Großbritannien vonGroßbritannien wählen, würden Sie 44 innen haben, wie Ihrphone_code für alle Leitungen auffangen, aber Sie gerade 10Stellen in Ihrem dial plan extensions.conf wählen möchten, um Anrufeanstelle von 44 dann 10 Stellen zu setzen. Rückstellung ist N. + +
+
+
+ Kampagne CallerID - Dieses fangen zuläßt das Senden einer kundenspezifischen callerid Zahl bei den outbound Anrufen auf. Dieses ist die Zahl, die oben auf dem callerid der Person darstellen würde, die, Sie anrufen. Die Rückstellung ist UNBEKANNT. Wenn Sie T1 benutzen, oder Eß, zum dieser Wahl heraus zu wählen nur vorhanden ist, wenn Sie PRIs verwenden - ISDN Tß oder Eß - die die kundenspezifische callerid Eigenschaft haben, die eingeschaltet wird, arbeitet dieses nicht mit Berauben-Spitze Service - RBS- Stromkreise. Dieses arbeitet auch durch das meiste VOIP - SIP oder IAX Stammversorger, die dynamisches outbound callerID erlauben. Das kundenspezifische callerID trifft nur auf die Anrufe zu, die direkt für die VICIDIAL Kampagne gesetzt werden, benennt jede mögliche 3. Partei, oder Übertragungen senden nicht das kundenspezifische callerID. ANMERKUNG: UNBEKANNT oder PRIVAT in auffangen manchmal sich setzen erbringt das Senden Ihrer Rückstellung callerID Zahl durch Ihre Fördermaschine mit den Anrufen. Sie können dieses prüfen wünschen und fangen 0000000000 in das callerid sich zu setzen anstatt auf, wenn Sie nicht Ihnen CallerID schicken möchten. + +
+
+
+ Kampagne Rec Verlängerung - Dieses fangen darf auf,damit eine kundenspezifische Aufnahmeverlängerung mit VICIDIALverwendet werden kann. Dieses erlaubt Ihnen, unterschiedlicheVerlängerungen zu verwenden, abhängend nach, wie lang Sie einemaximale Aufnahme erlauben möchten und welcher Art von Codec Sieinnen notieren möchten. Die Rückstellung exten ist 8309, die, wennSie folgen die SCRATCH_INSTALL Beispiele im WAV Format bis zu einerStunde lang notieren. Eine andere Wahl, die in den Beispieleneingeschlossen ist, ist 8310, die im G/M Format bis zu einer Stundelang notieren. + +
+
+
+ Kampagne Aufnahme - dieses Menü erlaubt Ihnen, zu wählen, welchesNiveau der Aufnahme auf dieser Kampagne erlaubt wird. NIE sperrtAufnahme auf dem Klienten. ONDEMAND ist die Rückstellung und erlaubtdem Vertreter zu notieren zu beginnen und, zu stoppen, wie gebraucht.ALLCALLS beginnt Aufnahme auf dem Klienten, wann immer ein Anruf zueinem Mittel geschickt wird. ALLFORCE beginnt Aufnahme auf demKlienten, wann immer ein Anruf zu einem Mittel geschickt wird, das demMittel keine Wahl gibt, um zu notieren zu stoppen. Für ALLCALLS undALLFORCE gibt es eine Wahl, zum der Aufnahme zu benutzen verzögert,um unten auf sehr kurze Aufnahmen und recude Anlagen-Belastung zuschneiden. + +
+
+
+ Kampagne Rec Dateiname - Dieses fangen erlaubt Ihnen, denNamen der Aufnahme besonders anzufertigen auf, wenn Kampagne AufnahmeONDEMAND oder ALLCALLS ist. Die erlaubten Variablen sind KAMPAGNECUSTPHONE FULLDATE TINYDATE EPOCHE-MITTEL. Die Rückstellung istFULLDATE_MITTELund würde wie dieses 20051020-103108_6666 aussehen.Ein anderes Beispiel ist CAMPAIGN_TINYDATE_CUSTPHONE, das wie diesesTESTCAMP_51020103108_3125551212 aussehen würde. 50 char max. + +
+
+
+ Das Notieren verzögert - für ALLCALLS und ALLFORCE nur Aufnahme.Dieser Einstellung Wille verzögert das Beginnen der Aufnahme beiallen Anrufen für die Zahl den Sekunden, die diesbezüglichspezifiziert werden, auffangen. Rückstellung ist 0. + +
+
+
+ Kampagne Index - Dieses Menü erlaubt Ihnen, den Index zu wählen,der auf dem Mittelschirm für diese Kampagne erscheint. Wählen SieKEINE vor, keinen Index für diese Kampagne zu zeigen. + +
+
+
+ Erhalten Sie Anruf-Produkteinführung - Dieses Menü erlaubt Ihnenzu wählen, ob Sie Automobil-ausstoßen die Netz-Form Seite in einemunterschiedlichen Fenster, Auto-switch zum INDEX-Vorsprung oder tunnichts wünschen, wenn ein Anruf zum Mittel für diese Kampagnegeschickt wird. + +
+
+
+ Xfer-Conf DTMF - Diese vier Felder können Sie zwei Arten von Transfer zum Konferenz-und DTMF-Presets. Wenn der Anruf oder die Kampagne geladen wird, wird das Skript vicidial.php zwei Tasten auf der Transfer-Konferenz Rahmen und auto show-bevölkern die Zahl-to-Dial und die Sende-DTMF-Felder, wenn gedrückt. Wenn Sie zulassen möchten Beratenden Transfers, ein Fronter, eine engere, haben die Agenten verwenden Sie die Checkbox BERATENDE, die nicht für Dritte nicht funktioniert-ViciDial beratende Anrufe. Für die nur noch der Agent auf die DFÜ mit Kunden-Taste. Dann kann der Agent nur LEAVE-3way-CALL und weiter zu ihrem nächsten Anruf. Wenn Sie möchten, Blind Transfer von Kunden zu einem VICIDIAL AGI-Skript für die Anmeldung oder einer IVR, dann setzen Sie AXFER der Zahl-to-Dial-Bereich zu ermöglichen. Sie können auch eine benutzerdefinierte Erweiterung nach dem AXFER, zum Beispiel, wenn Sie einen Anruf an einen besonderen IVR Sie auf eine Verlängerung 83900 gesetzt würden Sie AXFER83900 der Zahl in Verkehr gebracht werden-to-Dial-Feld. + +
+
+
+ Quick Transfer Button - Diese Option wird ein Quick Transfer-Taste, um den Agenten Bildschirm unter dem Transfer-Conf Schaltfläche -Hinzufügen- klicken, dass man blind Weiterleitung der Gespräche, damit werden die ausgewählten In-Group oder einer Nummer. IN_GROUP werden Anrufe an die Standard-Xfer für diese Kampagne, oder In-Group, wenn es einen eingehenden Anruf. Die Voreinstellungen werden die Aufrufe an die gewählte Voreinstellung. Der Standardwert ist N für Behinderte. + +
+
+
+ Vorab gefüllt Transfer Preset - Diese Option wird in der Anzahl zu Dial-Feld füllen Sie das Transfer Conference Rahmen des Bildschirms, wenn der Agent definiert. Der Standardwert ist N für Behinderte. + +
+
+
+ Timer-Aktion - Mit dieser Funktion können Sie die Aktionen nach einer bestimmten Zeit auslösen. D1 und D2 DIAL Optionen werden einen Aufruf der Transfer Conference Anzahl Presets starten und senden sie an die Agenten-Sitzung wird dies in der Regel für einfache IVR Validierung AGI-Anwendungen oder nur eine vorher aufgenommene Nachricht zu spielen verwendet. WebForm öffnet sich das Web-Formular-Adresse. MESSAGE_ONLY wird einfach Anzeige die Meldung, dass unten in das Feld ist. Niemand wird diese Funktion zu deaktivieren und ist der Standard -. + +
+
+
+ Timer-Aktion Message - Dies ist die Botschaft, die auf dem Bildschirm erscheint Agenten zum Zeitpunkt der Timer-Aktion ausgelöst wird. + +
+
+
+ Timer-Aktion Sekunden - Dies ist die Zeit nach dem Anruf des Kunden, dass die Timer-Aktion wird ausgelöst, verbunden. Der Standardwert ist -1, die auch inaktiv. + +
+
+
+ Zeitlich geplante Wiederholungsbesuche - Diese Wahl erlaubt einemMittel zur Einteilung einen Anruf als CALLBK und wählt die Daten unddie Zeit, an denen die Leitung reaktiviert wird. + +
+
+
+ Sekunden Nachbereitung - 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. + +
+
+
+ Nachbereitungsnachricht - Dies ist eine Kampagnen-spezifische Nachricht, die bei gesetzten Sekunden Nachbereitung auf dem Nachbereitungsbildschirm angezeigt wird. + +
+
+
+ Interne DNC Liste des Gebrauch-- definiert dieses, ob dieseKampagne Leitungen gegen die interne DNC Liste filtern soll. Wenn esauf Y eingestellt wird, sucht der Zufuhrbehälter nach jederTelefonnummer in der DNC Liste, bevor er sie in den Zufuhrbehälterlegt. Wenn er in der DNC Liste ist, dann, das sie dieses führt Statuszu DNCL also ändert, kann sie nicht gewählt werden. Rückstellungist N. Die AREACODE Option ist ebenso wie die Y-Option, nur dass diese Filter auch einen ganzen Vorwahl in Nordamerika dazu verwendet werden gewählt, in diesem Fall mit dem 201XXXXXXX Eintrag in der Liste DNC würde alle Anrufe in den 201 Ortsvorwahl zu blockieren, wenn aktiviert. + +
+
+
+ Verwenden Sie Kampagne DNC List - Diese legt fest, ob dieser Kampagne ist es, Filter führt gegen eine DNC-Liste, die sich speziell auf die Kampagne nur. Wenn es auf Y, der Trichter wird für jede Telefonnummer in der Kampagne-spezifische DNC-Liste, bevor sie in den Trichter. Wenn es in der Kampagne-spezifische DNC Liste, dann wird sich ändern, die Status DNCC, so kann er nicht gewählt werden. Der Standardwert ist N. Die AREACODE Option ist ebenso wie die Y-Option, nur dass diese Filter auch einen ganzen Vorwahl in Nordamerika dazu verwendet werden gewählt, in diesem Fall mit dem 201XXXXXXX Eintrag in der Liste DNC würde alle Anrufe in den 201 Ortsvorwahl zu blockieren, wenn aktiviert. + +
+
+
+ Gewährte Inbound Gruppen - 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. + +
+
+
+ Mittel-Pause kodiert aktives - läßt Mittel einen Pause Codevorwählen, wenn sie an die PAUSE Taste in vicidial.php klicken. PauseCodes sind pro Kampagne am unteren Bildschirmrand KampagneAnsichtdetail definierbar und sie werden in der vicidial_agent_logTabelle gespeichert. Rückstellung ist N. FORCE wird erzwungen, dass der Makler, um eine PAUSE-Code, wenn sie klicken Sie auf die PAUSE-Taste. + +
+
+
+ Sperren Sie ändern Kunde Daten - wenn Satz zu Y, nicht irgendwelchedes Kunde Datensatzes wenn Einteilungen eines Mittels der Anrufändert. Rückstellung ist N. + +
+
+
+ Deaktivieren Alter Customer Telefon - Bei der Einstellung Y, ändert nichts an den Kunden die Telefonnummer, wenn ein Agent Verfügungen den Anruf zu tätigen. Der Standardwert ist Y. Verwenden Sie die Verberge-Option zum vollständigen Entfernen der Kunde die Telefonnummer aus der Agenten-Anzeige. + +
+
+
+ Agent Anzeige Queue Count - Wenn Sie auf Y, wenn ein Kunde wartet auf einen Agenten, der Queue fordert Anzeige oben auf der Agenten-Bildschirm wird rot und zeigen die Anzahl der wartenden Anrufe. Der Standardwert ist Y. + +
+
+
+ Manuelle Vorwahlknopf-Liste Identifikation - das verwendet zu werdenRückstellung list_id, wenn ein Mittel placces ein manueller Anruf undeine neue Leitung Aufzeichnung im vicidial_list verursacht wird.Rückstellung ist 999. Dieses fangen kann nur Stellenenthalten auf. + +
+
+
+ Manual Dial Filter - Auf diese Weise können Sie zum Filtern der Anrufe, die Agenten sind im manuellen Modus wählen Sie für diese Kampagne durch eine Kombination der folgenden: DNC - die Kick Out, CAMPAIGNLISTEN - die Zahl muss innerhalb der Listen für die Kampagne KEINE - kein Filter auf manuelle Einwahl oder schnelle Einwahl Listen. + +
+
+
+ Agent Screen Zwischenablage kopieren - Diese Funktion ist derzeit nur in die Lage für den Internet Explorer. Diese Funktion ermöglicht es Ihnen, wählen Sie einen Bereich, der kopiert werden an den Computer Zwischenablage des Maklers Computer auf einen Anruf wird an einen Agenten. Häufig verwendet für diese sind, damit für die einfache Einfügen von Kontonummern oder Telefonnummern in Legacy-Anwendungen auf dem Client-Agent-Computer. + +
+
+
+ 3-Wege-Call Outbound CallerID - Diese legt fest, was gesendet wird, wie der Ausgang CallerID Reihe von 3-Wege-Anrufe, die von den Agenten, die Kampagne verwendet die eigene Kampagne CallerID, Kunde nutzt die Zahl der Kunden ist, dass aktive auf dem Bildschirm und Agenten AGENT_PHONE verwendet die CallerID für das Telefon, dass der Agent angemeldet ist, in. AGENT_CHOOSE ermöglicht es dem Agenten zu entscheiden, welche CallerID, die für 3-Wege-Anrufe aus einer Liste von Optionen. + +
+
+
+ 3-Wege-Call-Vorwahl - Diese legt fest, was als Vorwahl für 3-Wege-Anrufe, standardmäßig ist leer, so dass die Kampagne Vorwahl verwendet wird, so können Sie passthru Klingelton hören ist 88. + + 0) + { + ?> +
+
+
+ QC aktiv - Wenn Sie diesen Bereich auf Y-Agent ermöglicht die Quality Control Funktionen zur Verfügung stehen. Der Standardwert ist N. + +
+
+
+ QC-Status - Dieser Bereich ist, in dem Sie auswählen, welche Zustände führt sollte weg von der QC-System. Aktivieren Sie das Kontrollkästchen neben den Status, die Sie wollen, QC, zu überprüfen. + +
+
+
+ QC-Shift - Das ist die Verlagerung Zeitrahmen für die Pull-QC-Datensätze für eine Kampagne. Die Tage der Woche sind nicht für diese Funktionen. + +
+
+
+ QC Get Record Launch- Auf diese Weise können Sie eine der folgenden Aktionen ausgelöst werden dürfte, auf einem QC Agenten erhalten einen neuen Rekord. + +
+
+
+ QC Show-Aufnahme - Auf diese Weise können für eine Aufnahme, die im Zusammenhang mit der QC-Datensatz werden in der QC-Agent-Bildschirm. + +
+
+
+ QC WebForm Adresse - Dies ist die Website-Adresse, dass ein QC Agenten können sich an, wenn Sie auf den Link WebForm in der QC-Bildschirm. + +
+
+
+ QC-Script - Das ist das Skript, das verwendet werden kann, indem QC Agenten in den SCRIPT Registerkarte in der QC-Bildschirm. + + +
+
+
+ Vtiger Suche Kategorie - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung definieren, wo die vtiger_search.php Seite wird nach der Telefonnummer, die eingegeben wurde. Es gibt 4 Möglichkeiten, die genutzt werden kann in diesem Bereich: Lead-Diese Option wird die Suche durch die vtiger führt nur, Konto-Diese Option wird durch die Suche und vtiger alle Kontakte und sub-Kontakte für die Telefonnummer, Vendor-Diese Option wird nur durch die Suche vtiger Lieferanten, ACCTID-Diese Option funktioniert nur für Konten, und es wird die vicidial vendor_lead_code Bereich und versuchen Sie es um die Suche nach der vtiger-Konto-ID. Wenn es erfolglos versucht, andere Methoden zu finden, die Sie ausgewählt haben. Mehrere Optionen können verwendet werden, für jede Suche, sondern auf großen Datenbanken ist dies nicht empfohlen. Der Standardwert ist BLEI. UNIFIED_CONTACT-Diese Option wird die Beta-Vtiger 5.1.0 Funktion für die Suche nach der Telefonnummer Nutzung und bringen eine Suchseite in vtiger. + +
+
+
+ Vtiger Suche Dead-Konten - Wenn Vtiger Integration ist in den Systemeinstellungen aktivieren, dann wird diese Einstellung festlegen, ob Gelöschte Konten durchsucht werden, wenn der Agent WEB FORM Mausklicks genügen, um in der vtiger-System sucht. BEHINDERTE-deleted führt nicht durchsucht werden, ASK-führt wird gelöscht hast und der vtiger-Suche Web-Seite wird der Agent fragen, ob sie zu machen, der vtiger-Konto aktiv wollen, RESURRECT-automatisch machen das gelöschte Konto wieder aktiv und würde die Inanspruchnahme Agenten auf das Konto Bildschirm unverzüglich nach Klick auf Netz-Form. Option ist standardmäßig deaktiviert. + +
+
+
+ Vtiger Erstellen Call Record - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung festlegen, ob eine neue vtiger Aktivität wird für den Anruf, wenn der Agent geht an die vtiger_search Seite. Der Standardwert ist Y. Die DISPO Option wird eine Anrufe aufzeichnen der vtiger-Konto erstellen, ohne dass der Agent zu müssen, um der vtiger-Suchseite gehen über den Netz-Form. + +
+
+
+ Vtiger Erstellen Lead Record - Wenn vtiger Integration aktiviert ist in den System-Einstellungen und vtiger Suche Kategorie umfasst BLEI, dann wird diese Einstellung festlegen, ob eine neue vtiger führen wird erstellt, wenn der Agent geht an die vtiger_search Seite und wird nicht festgestellt, dass die Call-Telefonnummer. Der Standardwert ist Y. + +
+
+
+ Vtiger Login Screen - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung festlegen, ob der Benutzer angemeldet ist in der vtiger-Schnittstelle automatisch, wenn sie zur Anmeldung VICIDIAL. Der Standardwert ist Y. Die NEW_WINDOW Option wird ein neues Fenster bei der Anmeldung an die VICIDIAL Anbieters Bildschirm zu öffnen. + +
+
+
+ Vtiger Status Call - Wenn Vtiger Integration ist in den Systemeinstellungen aktivieren, dann wird diese Einstellung fest, ob der Status der vtiger-Konto mit dem Status der VICIDIAL Aufruf aktualisiert wird, nachdem es dispositioned worden ist. Der Standardwert ist N. + +
+
+
+ CRM Popup Login - Wenn auf Y gesetzt, so wird das CRM-Popup-Adresse verwendet, um ein neues Fenster auf Anbieters anmelden, um diese Kampagne zu öffnen. Der Standardwert ist N. + +
+
+
+ CRM Popup-Adresse - Die Internet-Adresse eines CRM-Login-Seite, kann es Variablen, wie das Web-Formular Adresse bevölkert haben, mit der VAR in der Front und mit - A - user_custom_one - B - Variablen definieren. + +
+
+
+ Start Call URL - Diese Web-URL-Adresse wird nicht von den Agenten zu sehen, aber es ist, wann immer ein Anruf an einen Agenten gesendet werden, wenn es gefüllt wird. Verwendet die gleichen Variablen wie die Web-Formularfelder und Skripte. Diese URL kann nicht ein relativer Pfad. Die Start-URL funktioniert nicht für die manuelle Einwahl fordert. Der Standardwert ist leer. + +
+
+
+ Dispo Call URL - Diese Web-URL-Adresse wird nicht von den Agenten zu sehen, aber es ist, wann immer ein Anruf von einem Agenten dispositioned, wenn sie gefüllt wird. Verwendet die gleichen Variablen wie die Web-Formularfelder und Skripte. dispo und talk_time sind die Variablen, die Sie verwenden können, um den Agenten abrufen definierten Disposition für den Anruf und die tatsächliche Sprechzeit in Sekunden des Anrufs. Diese URL kann nicht ein relativer Pfad. Der Standardwert ist leer. + +
+
+
+ Alias-Gruppe erlaubt - Wenn Sie möchten, dass Ihre Agenten zu verwenden Gruppe Aliase dann müssen Sie diese Gruppe Y. Aliases werden mehr in der Admin-Bereich, sie zuzulassen, um verschiedene callerIDs Handbuch für ausgehende Anrufe dass sie Platz. Der Standardwert ist N. + +
+
+
+ Standard-Fraktion Alias - Wenn Sie erlaubt Gruppe Aliases, dann ist dies die Gruppe Alias, die zuerst ausgewählten standardmäßig aktiviert, wenn der Agent sich für eine Gruppe Alias für einen ausgehenden Anruf Handbuch. Der Standardwert ist Keine oder leer. + +
+
+
+ Agent Profil Anrufe in der Warteschlange - Bei anderen aber none gesetzt ist, werden Vertreter der Lage sein, Informationen über Anrufe, die in der Warteschlange in ihrer Bevollmächtigten Bildschirm zu sehen sind. Wenn auf einen Zahlenwert setzen, die Anrufe angezeigt werden, um die Anzahl begrenzt werden ausgewählt. Der Standardwert ist KEINE. + +
+
+
+ Profil Anrufe in der Warteschlange Launch - Diese Einstellung, wenn auf AUTO eingestellt wird die Anrufe in der Warteschlange Frame angezeigt werden bei der Anmeldung durch den Agenten in der Agent dem Bildschirm haben. Standard ist -Manuell-. + +
+
+
+ Agent Grab Anrufe in der Warteschlange - Diese Option, wenn auf Y wird es den Agenten, um den Anruf, dass sie wählen wollen, aus der Anrufe in der Warteschlange anzeigen, indem Sie auf es, während der Pause. Bevollmächtigte werden nur in der Lage, eingehende Anrufe oder übertragen werden ersucht, nicht ausgehende Anrufe zu greifen. Der Standardwert ist N. + +
+
+
+ Call Agent Re-Queue Button - Diese Option, wenn auf Y fügt ein Re-Queue Customer-Taste, um den Agenten Bildschirm, so dass der Agent, um den Anruf zu einem AGENTDIRECT Warteschlange, die für den Agenten nur reserviert ist, zu senden. Der Standardwert ist N. + +
+
+
+ Agent Pause nach jedem Anruf - Diese Option, wenn auf Y wird der Agent Pause nach jedem Anruf automatisch. Der Standardwert ist N. + + + + + +



+ + VICIDIAL_LISTENTABELLE

+
+
+ Liste Identifikation - Dieses ist der numerische Name der Liste,es ist nicht editable nach Ausgangsunterordnung, muß nur Zahlenenthalten und muß zwischen 2 und 8 Buchstaben lang sein. Must be a number greater than 100. + +
+
+
+ Liste Name - This is the description of the list, it must be between 2 and 20 characters in length. + +
+
+
+ Liste Beschreibung - dieses ist das Protokoll auffangen fürdie Liste, es ist wahlweise freigestellt. + +
+
+
+ Liste Änderung Datum - dieses ist das letzte Mal, daß dieEinstellungen für diese Liste in jeder Hinsicht geändert wurden. + +
+
+
+ Liste Letzt-Anruf-Datum - dieses ist das letzte Mal, das wurdegewählt von dieser Liste führen. + +
+
+
+ Kampagne - This is the campaign that this list belongs to. A list can only be dialed on a single campaign at one time. + +
+
+
+ Aktiv - Dieses definiert, ob die Liste an oder nicht gewähltwerden soll. + +
+
+
+ Stellen Sie Führen-Benennen-Status für diese Liste - zurückstellt dieses alle Leitungen in dieser Liste zu N für das benannte\"not da letztes Zurückstellen \" zurück und bedeutet, daß jedemögliche Leitung jetzt benannt werden kann, wenn es der rechte Statusist, wie auf dem Kampagne Schirm definiert. + +
+
+
+ Reset Times - In diesem Feld können Sie zu setzen in Zeiten, durch einen Bindestrich getrennt, dass diese Liste automatisch zurückgesetzt werden durch das System. Die Zeiten im 24-Stunden-Format ohne Interpunktion werden, wäre zum Beispiel 0800-1700 die Liste 8 zurückgesetzt und 5pm jeden Tag. Der Standardwert ist leer. + +
+
+
+ Agent Script Override - Ist dieses Feld gesetzt ist, wird dies das Skript, dass der Agent sieht auf dem Bildschirm statt der Kampagne führen, wenn das Skript aus dieser Liste ist. Der Standardwert ist nicht gesetzt. + +
+
+
+ Kampagne CID Override - Ist dieses Feld gesetzt ist, wird diese die Kampagne CallerID, dass für Anrufe, die gestellt werden außer Kraft gesetzt ist, führt in dieser Liste. Der Standardwert ist nicht gesetzt. + +
+
+
+ Anrufbeantworter Nachricht Override - Ist dieses Feld gesetzt ist, wird diese Vorrang vor den Anrufbeantworter Message in der Kampagne für die Kunden in dieser Liste gesetzt. Der Standardwert ist nicht gesetzt. +
+
+
+ Drop Inbound-Fraktion Override - Ist dieses Feld gesetzt ist, in dieser Gruppe wird für ausgehende Anrufe, in dieser Liste verwendet werden, die Tropfen aus dem Outbound-Kampagne statt der Drop-in in der Kampagne Detailbild gesetzt. Der Standardwert ist nicht gesetzt. + +
+
+
+ Xfer-Conf-Nr Override - Diese fünf Felder ermöglichen Sie den Transfer Conference Anzahl Presets zu überschreiben, wenn das Blei aus dieser Liste. Der Standardwert ist leer. + + +
+
+
+ VICIDIAL DNC Liste - Diese Dont Call Liste enthält alle führen, die auf einen Status der DNC in das System. Durch die Listen - ADD Nummer DNC Seite können Sie manuell hinzufügen, Zahlen zu dieser Liste, so dass sie nicht durch Kampagnen, die die interne Liste DNC. Es besteht auch die Option, mit der Sie führt zu der Kampagne DNC-spezifische Listen für die Kampagnen, die sie. Wenn Sie die aktive DNC-Option auf -AREACODE dann können Sie auch die Vorwahl Wildcard-Einträge wie 201XXXXXXX, dass alle Anrufe auf die 201 Ortsvorwahl, wenn aktiviert-Block. + + + +



+ + VICIDIAL_INBOUND_GROUPSTABELLE

+
+
+ Gruppe Identifikation - Dieses ist der kurze Name der inboundGruppe, es ist nicht editable nach Ausgangsunterordnung, darf keineRäume enthalten und muß zwischen 2 und 20 Buchstaben lang sein. + +
+
+
+ Gruppe Name - Dieses ist die Beschreibung der Gruppe, muß eszwischen 2 und 30 Buchstaben lang sein. Kann nicht Schläge, plussesoder Räume einschließen . + +
+
+
+ Gruppe Farbe - Dieses ist die Farbe, die in der VICIDIAL KlientAPP anzeigt, wenn ein Anruf auf diese Gruppe hereinkommt. Es mußzwischen 2 und 7 Buchstaben lang sein. Wenn dieses eine HexagonfarbeDefinition ist, müssen Sie sich erinnern, sich a # am Anfang derZeichenkette zu setzen, oder VICIDIAL arbeitet nicht richtig. + +
+
+
+ Aktiv - Dieses stellt fest, ob diese Gruppe oben imVorwählerkasten wenn Maschinenbordbücher eines VICIDIAL Mittelsinnen zeigen. + +
+
+
+ Netz-Form - Dieses ist die kundenspezifische Adresse, die dasKlicken auf der NETZ-FORM-Taste in VICIDIAL Ihnen für zu den Anrufennimmt, die auf diese Gruppe hereinkommen. + +
+
+
+ Folgender Vertreter-Anruf - Dieses stellt fest, welches Mittel denfolgenden Anruf empfängt, der vorhanden ist: +
  - random: Aufträge durch den gelegentlichen Updatewert in dervicidial_live_agents Tabelle +
  - oldest_call_start: Aufträge bis zum dem letzten Mal ein Mittel wurden einem Anrufgeschickt. Resultate in den Mitteln, die insgesamt ungefähr gleicheZahl von Anrufen empfangen. +
  - oldest_call_finish: Aufträge bis zum dem letzten Mal ein Mittel beendeten einen Anruf.Das AKA Mittel, das am längsten wartet, empfängt ersten Anruf. +
  - overall_user_level: Aufträge durch das user_level des Mittels, wie inden vicidial_users definiert legen ein höheres user_level empfangenmehr Anrufe ver. +
  - inbound_group_rank: Aufträge durch den Rank gegeben zum Mittel fürdie spezifische inbound Gruppe. Stark zu am niedrigsten. +
  - fewest_calls: Aufträge durch die Zahl den Anrufen empfangen durch einMittel für diese spezifische inbound Gruppe. Wenige Anrufe zuerst. +
  - campaign_rank: Aufträge durch den Rank gegeben zum Mittel für dieKampagne. Stark zu am niedrigsten. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: Bestellungen durch die Zeit, die Agenten aktiv gewartet auf einen Anruf. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Fronter Anzeige - Dieses fangen feststellt auf, ob dasinbound VICIDIAL Mittel den fronter Namen - wenn es einen gibt -angezeigt im Status auffangen haben würde, wann der Anrufzum Mittel kommt. + +
+
+
+ Kampagne Index - Dieses Menü erlaubt Ihnen, den Index zu wählen,der auf dem Mittelschirm für diese Kampagne erscheint. Wählen SieKEINE vor, keinen Index für diese Kampagne zu zeigen. + +
+
+
+ Erhalten Sie Anruf-Produkteinführung - Dieses Menü erlaubt Ihnenzu wählen, ob Sie Automobil-ausstoßen die Netz-Form Seite in einemunterschiedlichen Fenster, Auto-switch zum INDEX-Vorsprung oder tunnichts wünschen, wenn ein Anruf zum Mittel für diese Kampagnegeschickt wird. + +
+
+
+ Xfer-Conf DTMF - Diese vier Felder können Sie zwei Arten von Transfer zum Konferenz-und DTMF-Presets. Wenn der Anruf oder die Kampagne geladen wird, wird das Skript vicidial.php zwei Tasten auf der Transfer-Konferenz Rahmen und auto show-bevölkern die Zahl-to-Dial und die Sende-DTMF-Felder, wenn gedrückt. Wenn Sie zulassen möchten Beratenden Transfers, ein Fronter, eine engere, haben die Agenten verwenden Sie die Checkbox BERATENDE, die nicht für Dritte nicht funktioniert-ViciDial beratende Anrufe. Für die nur noch der Agent auf die DFÜ mit Kunden-Taste. Dann kann der Agent nur LEAVE-3way-CALL und weiter zu ihrem nächsten Anruf. Wenn Sie möchten, Blind Transfer von Kunden zu einem VICIDIAL AGI-Skript für die Anmeldung oder einer IVR, dann setzen Sie AXFER der Zahl-to-Dial-Bereich zu ermöglichen. Sie können auch eine benutzerdefinierte Erweiterung nach dem AXFER, zum Beispiel, wenn Sie einen Anruf an einen besonderen IVR Sie auf eine Verlängerung 83900 gesetzt würden Sie AXFER83900 der Zahl in Verkehr gebracht werden-to-Dial-Feld. + +
+
+
+ Timer-Aktion - Mit dieser Funktion können Sie die Aktionen nach einer bestimmten Zeit auslösen. D1 und D2 DIAL Optionen werden einen Aufruf der Transfer Conference Anzahl Presets starten und senden sie an die Agenten-Sitzung wird dies in der Regel für einfache IVR Validierung AGI-Anwendungen oder nur eine vorher aufgenommene Nachricht zu spielen verwendet. WebForm öffnet sich das Web-Formular-Adresse. MESSAGE_ONLY wird einfach Anzeige die Meldung, dass unten in das Feld ist. Niemand wird diese Funktion zu deaktivieren und ist der Standard -. Diese Einstellung überschreibt die Kampagne Einstellungen. + +
+
+
+ Timer-Aktion Message - Dies ist die Botschaft, die auf dem Bildschirm erscheint Agenten zum Zeitpunkt der Timer-Aktion ausgelöst wird. + +
+
+
+ Timer-Aktion Sekunden - Dies ist die Zeit nach dem Anruf des Kunden, dass die Timer-Aktion wird ausgelöst, verbunden. Der Standardwert ist -1, die auch inaktiv. + +
+
+
+ Drop Call Sekunden - Die Anzahl der Sekunden eines Gesprächs bleibt in der Warteschlange, bevor sie als DROP. + +
+
+
+ Drop-Aktion - Mit diesem Menü können Sie wählen, was passiert, wenn er einen Anruf wartet seit mehr als das, was ist in der Drop-Call Sekunden ein. HANGUP einfach auflegen, das Gespräch, MESSAGE wird die Forderung der Drop-Erweiterung, die Sie definiert haben, unten, Voicemail wird der Anruf an die Voicemail-Box, die Sie definiert haben, und unter IN_GROUP wird der Aufruf an die Inbound-Gruppe, die weiter unten definiert ist. + +
+
+
+ Drop-Erweiterung - Wenn Drop-Aktion ist auf MESSAGE Dies ist der Plan wählen, dass sich die Aufforderung an, wenn sie erreicht Drop Call Sekunden. + +
+
+
+ Voicemail - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+
+
+ Drop-Transfer-Fraktion - Wenn Drop-Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie erreicht Drop Call Sekunden. + +
+
+
+ Anruf-Zeit - dieses ist der für diese inbound Gruppe zu verwendenAnrufzeitentwurf. Halten Sie im Verstand, daß die Zeit auf derBedienerzeit basiert. Rückstellung ist 24hours. + +
+
+
+ After Hours Aktion - Die Aktion durchführen, wenn sie nach Stunden wie in der Ausschreibung für diesen eingehenden Gruppe. HANGUP sofort hangup den Anruf, MESSASGE wird die Datei im After Hours Nachricht Filenam Bereich, AUSDEHNUNG wird die Aufforderung an die After Hours-Erweiterung in der dialplan und Voicemail wird der Anruf an die Voicemail-Box, die in den Bereich After Hours Voicemail , IN_GROUP wird die Aufforderung an die Inbound-Gruppe in der After Hours Transfer-Gruppe Wählen Sie Liste. Der Standardwert ist MESSAGE. + +
+
+
+ Nach Stunden Anzeige Dateinamen - die Audioakte gelegen auf demgespielt zu werden Bediener, wenn die Tätigkeit auf ANZEIGEeingestellt wird. Rückstellung ist VM-Auf Wiedersehen + +
+
+
+ Nach Stunden Verlängerung - die dialplan Verlängerung, zum desAnrufs zu senden, wenn die Tätigkeit auf VERLÄNGERUNG eingestelltwird. Rückstellung ist 8300. + +
+
+
+ Nach Stunden Voicemail - der voicemail Kasten, zum des Anrufs zusenden, wenn die Tätigkeit auf VOICEMAIL eingestellt wird. + +
+
+
+ After Hours Transfer Group - , wenn After Hours Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie die in der Gruppe außerhalb der Aufforderung zur Einreichung von Zeitplanung für die in-group. + +
+
+
+ Nr. Bevollmächtigte Nr. Queueing - Ist dieses Feld auf Y oder NO_PAUSED dann keine Anrufe in die Warteschlange für diese in-Gruppe gesetzt werden, wenn es keine Agenten und die Forderungen angemeldet gehen an die Nr. Agent Nr. Queue Aktion sind. Die NO_PAUSED Option wird auch das Senden der Anrufer in der Warteschlange, wenn es nur angehalten Agenten in der in-group sind. Der Standardwert ist N. + +
+
+
+ Kein Agent Nr. Queue Aktion - Wenn kein Anwalt keine Warteschlange aktiviert ist, wird dieses Feld definiert, wo die anrufen, wenn es keine Mittel sind, gehen in die In-Group. Der Standardwert ist MESSAGE, spielt dieser die Sound-Dateien in das Action Feld Wert und legt dann auf. + +
+
+
+ Kein Agent Nr. Queue Preis-Aktion - Dies ist der Wert für die Aktion vor. Der Standardwert ist nbdy-avail-to-take-call|vm-goodbye. + +
+
+
+ Willkommener Anzeige Dateiname - die Audioakte gelegen auf demgespielt zu werden Bediener, wenn der Anruf hereinkommt. Wenn Satz zu---NONE --- dann wird keine Anzeige gespielt. Rückstellung ist---NONE ---. Dieses Feld wie bei den anderen Audio-Felder im In-Gruppen, mit Ausnahme der Agent Alert Dateiname, können mehrere Audio-Dateien abgespielt, wenn Sie eine Pipe getrennte Liste von Audio-Dateien in den Bereich. + +
+
+
+ Jetzt Grußwort - Diese Einstellungen wählen Sie, wann Sie spielen die definierten Willkommensnachricht, immer spielen sie jedes Mal, nie nie spielen, IF_WAIT_ONLY nur spielen die Willkommen-Nachricht, wenn die Forderung nicht sofort zu einem Agenten , und YES_UNLESS_NODELAY immer spielen die Willkommen-Nachricht, es sei denn, die NO_DELAY Einstellung aktiviert ist. Der Standardwert ist IMMER. + +
+
+
+ Musik auf Einfluß-Kontext - die Musik auf dem Einflußkontext, zum zuverwenden, wann der Kunde auf Einfluß gesetzt wird. Rückstellung istRückstellung. + +
+
+
+ Auf Einfluß-Aufforderung Dateinamen - die Audioakte gelegen auf demin einem regelmäßigen Abstand gespielt zu werden Bediener, wenn derKunde auf Einfluß ist. Rückstellung ist generic_hold. DieseAudioakte MUSS 9 Sekunden oder kleiner in der Länge sein. + +
+
+
+ Auf Einfluß-Aufforderung Abstand - die Zeitspanne in den Sekunden, zuwarten, bevor an die haltenaufforderung gespielt wird. Rückstellungist 60. So deaktivieren Sie die On-Hold-Prompt, das Intervall auf 0. + +
+
+
+ Jetzt in den Line - Diese legt fest, ob die Anrufer hören, ihren Platz in der Zeile, wenn sie in der Warteschlange als auch, wenn sie hören, die announcemend. Der Standardwert ist N. + +
+
+
+ Jetzt Geschätzte Hold Time - Diese legt fest, ob die Anrufer hören, halten Sie die geschätzte Zeit, bevor sie übertragen werden, zu einem Makler. Der Standardwert ist N. Wenn der Kunde gehalten wird, und hört diese geschätzte hold time Nachricht, die Mindestzeit, die abgespielt werden soll 15 Sekunden. + +
+
+
+ Hold Time Option - Auf diese Weise können Sie die Weiterleitung von den Anruf halten, wenn die geschätzte Zeit über dem Betrag von Sekunden aus. Der Standardwert ist KEINE. + +
+
+
+ Hold Time Option Sekunden - Wenn Hold Time-Option ist gesetzt, was aber keiner, das ist die Anzahl der Sekunden des geschätzten halten auslösen wird Zeit, dass die Hold-Zeit-Option. Der Standardwert ist 360 Sekunden. + +
+
+
+ Hold Time Option Extension - Wenn Hold Time-Option auf Verlängerung, ist dies die dialplan, dass sich die Aufforderung an, wenn der geschätzte halten länger als die Hold Time Option Sekunden. + +
+
+
+ Hold Time Option Voicemail - Wenn Hold Time auf Voicemail, das ist die Voice-Mailbox, dass der Anruf an, wenn der geschätzte halten länger als die Hold Time Option Sekunden. + +
+
+
+ Hold Time Option Transfer In-Group - Wenn Hold Time-Option ist auf IN_GROUP, das ist die Gruppe, dass die eingehenden Anruf werden, wenn der geschätzte halten länger als die Hold Time Option Sekunden. + +
+
+
+ Hold Time Option Rückruf Dateiname - Wenn Hold Time-Option ist auf CALLERID_CALLBACK, Dies ist der Dateiname ein, dass gespielt wird, bevor der Anruf wird protokolliert, als eine neue dazu führen, dass die ID-Liste unten, wenn der geschätzte halten länger als die Hold Time Option Sekunden. + +
+
+
+ Hold Time Option Liste Rückruf-ID - Wenn Hold Time Option ist auf CALLERID_CALLBACK, Dies ist die Liste der Anruf-ID wird als neues führen, wenn der geschätzte halten länger als die Hold Time Option Sekunden. + +
+
+
+ Agent Alert Dateiname - Die Audio-Datei zu spielen, einen Agenten zu verkünden, dass ein Anruf ankommt, um den Agenten. Um diese Funktion nicht nutzen setzen Sie ihn auf X. Der Standardwert ist ding. + +
+
+
+ Mittel-Alarm verzögert - die Zeitspanne in den Millisekunden, zuwarten, bevor er den Anruf zum Mittel schickt, nachdem er an dieMittel-Alarmverlängerung gespielt hat. Rückstellung ist 1000. + +
+
+
+ Rückstellung Übergangsgruppe - dieses fangen ist dieRückstellung In-Gruppe auf, die automatisch vorgewählt wird, wenndas Mittel zum Bringenkonferenz Rahmen in ihrer Mittelschnittstellegeht. + +
+
+
+ In-Group-Aufnahme Override - Dieses Feld ermöglicht die zwingende der Kampagne rufen die Aufnahme-Einstellung. Diese Einstellung kann über die Aufnahme überschreiben vicidial_user Einstellung. Behinderte nicht überschreiben die Kampagne die Aufnahme-Einstellung. NIEMALS deaktiviert Aufnahme auf dem Client. OnDemand ist der Standard und ermöglicht es dem Agenten zu starten und stoppen Sie die Aufnahme wie gewünscht. ALLCALLS Starten der Aufnahme wird auf dem Client, wenn ein Anruf an einen Agenten. ALLFORCE Starten der Aufnahme wird auf dem Client, wenn ein Anruf an einen Agenten, die der Agent keine Option um die Aufnahme zu stoppen. + +
+
+
+ In-Group-Aufnahme Dateiname - Mit diesem Feld werden die Aufnahme der Kampagne Dateibenennungsschemata Regelung, es sei denn, es ist auf Keine eingestellt. Die Variablen sind erlaubt KAMPAGNE CUSTPHONE FullDate TINYDATE EPOCH AGENT. Der Standardwert ist FULLDATE_MITTELund würde so aussehen 20051020-103108_6666. Ein weiteres Beispiel ist CAMPAIGN_TINYDATE_CUSTPHONE, die wie folgt aussehen TESTCAMP_51020103108_3125551212. 50 Zeichen max. Der Standardwert ist KEINE. + + 0) + { + ?> +
+
+
+ QC aktiv - Wenn Sie diesen Bereich auf Y-Agent ermöglicht die Quality Control Funktionen zur Verfügung stehen. Der Standardwert ist N. + +
+
+
+ QC-Status - Dieser Bereich ist, in dem Sie auswählen, welche Zustände führt sollte weg von der QC-System. Aktivieren Sie das Kontrollkästchen neben den Status, die Sie wollen, QC, zu überprüfen. + +
+
+
+ QC-Shift - Das ist die Verlagerung Zeitrahmen für die Pull-QC-Datensätze für eine inbound_group. Die Tage der Woche sind nicht für diese Funktionen. + +
+
+
+ QC Get Record Launch- Auf diese Weise können Sie eine der folgenden Aktionen ausgelöst werden dürfte, auf einem QC Agenten erhalten einen neuen Rekord. + +
+
+
+ QC Show-Aufnahme - Auf diese Weise können für eine Aufnahme, die im Zusammenhang mit der QC-Datensatz werden in der QC-Agent-Bildschirm. + +
+
+
+ QC WebForm Adresse - Dies ist die Website-Adresse, dass ein QC Agenten können sich an, wenn Sie auf den Link WebForm in der QC-Bildschirm. + +
+
+
+ QC-Script - Das ist das Skript, das verwendet werden kann, indem QC Agenten in den SCRIPT Registerkarte in der QC-Bildschirm. + + +
+
+
+ Hold Recall Transfer In-Group - Wenn ein Kunde, um zu dieser Gruppe mehr als einmal, und das ist nicht auf None gesetzt wird, dann wird der Anruf automatisch an das In-Gruppe in diesem Bereich ausgewählt . Der Standardwert ist KEINE. + +
+
+
+ Nr. Delay Call Route - Wenn Sie diesen auf Y werden alle Wartezeiten und akustische und versuchen, den Anruf zu einem Agenten. Nicht überschreiben Willkommensnachricht oder halten Prompt Einstellungen. Der Standardwert ist N. + +
+
+
+ Statistiken Prozent der Anrufe innerhalb von X Sekunden - In diesem Feld können Sie die Anzahl der Sekunden, halten Sie die Echtzeit-Statistiken angezeigt wird zur Berechnung der Anteil der Anrufe, die beantwortet wurden beantwortet X Anzahl von Sekunden zu halten. + +
+
+
+ Start Call URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank. + +
+
+
+ Dispo Call URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank. + +
+
+
+ Standard-Fraktion Alias - Wenn Sie erlaubt Gruppe Aliases für die Kampagne, dass der Agent angemeldet ist, dann ist dies in der Gruppe ist, dass Alias zuerst ausgewählten standardmäßig auf einen Anruf, die von dieser Gruppe, wenn die Inbound-Agent dafür, Verwendung eines Alias-Fraktion für einen ausgehenden Anruf Handbuch. Der Standardwert ist Keine oder leer. + + + + + +



+ + VICIDIAL_INBOUND_DIDSTABELLE

+
+
+
+ DID-Erweiterung - Das ist die Zahl, die Erweiterung oder das getan hat, löst diesen Eintrag, und dass Sie Route innerhalb des Systems mit dieser Funktion. Es ist ein Standard DID vorbehalten, die Sie verwenden können, die nur das Wort-default-ohne Bindestriche, Allos, die Sie senden jede Aufforderung, die nicht mit einer anderen bestehenden Muster auf den Standard DID. + +
+
+
+ DID-Beschreibung - Das ist die Beschreibung von der DID-Routing-Eintrag. + +
+
+
+ DID-Aktive - Das ist der Bereich, in dem Sie die DID Eintrag aktiv oder nicht. Der Standardwert ist Y. + +
+
+
+ DID-Route - Diese Art der Route, die Sie der DID zu verwenden. Verlängerung wird ersucht, um die Erweiterung in unten, Voicemail senden Anrufe direkt an die Voicemail-Box eingetragen unter, der Agent wird Gespräche auf eine VICIDIAL Agenten, wenn sie angemeldet sind, TEL wird der Anruf zu einem ausgewählten Eintrag Telefone unter, IN_GROUP wird Senden Sie Anrufe direkt auf die angegebene Inbound-Gruppe. Standard ist die Erweiterung. CALLMENU wird der Anruf an die definierten Ruf-Menü. + +
+
+
+ Extension - , wenn die Erweiterung ist als der DID-Route, dann ist dies die Erweiterung dialplan, dass Anrufe werden an. Der Standardwert ist 9998811112, no-Service. + +
+
+
+ Erweiterung Kontext - , wenn die Erweiterung ist als der DID-Route, dann ist dies die dialplan Zusammenhang, dass Anrufe werden an. Die Voreinstellung ist Standard. + +
+
+
+ Voicemail-Box - Wenn Voicemail ist als der DID-Route, dann ist dies die Voicemail-Box, die Anrufe werden an. Der Standardwert ist leer. + +
+
+
+ Telefon Extension - Wenn PHONE ist als der DID-Route, dann ist das Telefon-Erweiterung, wird der Aufruf an. + +
+
+
+ Server-IP-Telefon - Wenn PHONE ist als der DID-Route, dann ist dies der Server-IP-Telefon für die Erweiterung, die Anrufe werden an. + +
+
+
+ Call-Menü - Wenn CALLMENU ist wie die DID-Route ausgewählt, dann ist dies der Ruf-Menü, dass Anrufe gesendet werden, werden. + +
+
+
+ User Agent - Wenn agent ist als der DID-Route, dann ist dies die VICIDIAL Agent, dass Anrufe werden an. + +
+
+
+ User-Aktion nicht verfügbar - Wenn agent ist als der DID-Route, und der Benutzer ist nicht angemeldet oder verfügbar sind, dann ist dies der Weg, den die Anrufe wird. + +
+
+
+ User-Einstellungen Route In-Group - Wenn agent ist als der DID-Route, dann ist dies die In-Group, die verwendet werden für die Queue-Einstellungen wie der Anrufer wartet, die an den Agenten. Der Standardwert ist AGENTDIRECT. + +
+
+
+ In-Group-ID - Wenn IN_GROUP ist als der DID-Route, dann ist dies die In-Group, die Anrufe werden an. + +
+
+
+ In-Group Call Handle Method - Wenn IN_GROUP ist wie die DID-Route ausgewählt, dann ist dies die Anrufannahme-Methode für diese Anrufe verwendet. CID wird eine neue Lead-Datensatz mit jedem Anruf mit der CallerID wie die Telefonnummer hinzufügen, wird CIDLOOKUP Versuch, die Telefonnummer, unter der CallerID im gesamten System-Lookup wird CIDLOOKUPRL Versuch, die Telefonnummer, unter der CallerID nur in einer speziellen Liste Lookup , wird CIDLOOKUPRC Versuch, die Telefonnummer, unter der CallerID in allen Listen, die auf die angegebene Kampagne gehören Lookup, CLOSER ist für VICIDIAL Closer fordert angegeben, wird eine neue ANI führen Datensatz hinzufügen bei jedem Anruf mit der ANI wie die Telefonnummer, ANILOOKUP wird versuchen, die Telefonnummer, unter der ANI im gesamten System-Lookup wird ANILOOKUPRL Versuch, die Telefonnummer, unter der ANI nur in einer speziellen Liste Lookup wird XDIGITID der Anrufer von einem X-stelligen Code prompt vor dem Aufruf wird gestellt werden, in der Warteschlange, wird der Anrufer VIDPROMPT prompt für ihre ID-Nummer und eine neue Lead-Satz mit dem CallerID wie die Telefonnummer und die ID als die Hersteller-ID zu erstellen, wird VIDPROMPTLOOKUP Versuch, die ID in das gesamte System-Lookup wird VIDPROMPTLOOKUPRL Versuch, Lookup die Hersteller-ID von der ID nur in einer speziellen Liste, wird VIDPROMPTLOOKUPRC Versuch, den Anbieter von der Lookup-ID ID in allen Listen, die auf die angegebene Kampagne gehören. Der Standardwert ist CID. + +
+
+
+ In-Group-Agent Suche Methode - Wenn IN_GROUP ist als der DID-Route, dann ist dies der Agent Suche Methode für die Inbound-Gruppe, LO ist Load-Balanced-Overflow und versuchen um den Ruf zu senden einem Agenten auf dem lokalen Server, bevor Sie versuchen, senden Sie sie an einen Agenten auf einem anderen Server, Load-LB ist ausgewogen und wird versuchen, um den Ruf zu senden, um zur nächsten Agent-Server, egal was sie sind, so ist nur Server-und nur versuchen, die Forderungen an Agenten auf dem Server, dass der Anruf kam auf. Der Standardwert ist LB. + +
+
+
+ In-Group-ID-Liste - Wenn IN_GROUP ist als der DID-Route, dann ist dies die ID-Liste führt, dass kann man suchen, durch und führt werden, wenn notwendig, in. + +
+
+
+ In-Group-ID-Kampagne - Wenn IN_GROUP ist als der DID-Route, dann ist dies die Kampagnen-ID, was kann man suchen, wenn das Gespräch mit Methode ist CIDLOOKUPRC. + +
+
+
+ In-Group Telefon Code - Wenn IN_GROUP ist als der DID-Route, dann ist das Telefon-Code verwendet, wenn eine neue Führung wird erstellt. + + + + +



+ + VICIDIAL_CALL MENUTABELLE

+
+
+ Menü-ID - Dies ist die ID für diesen Schritt der Aufforderung Menü. Dies wird auch angezeigt, wie der Kontext, die in der dialplan für diesen Aufruf ist im Menü. + +
+
+
+ Menu Name - Dieses Feld ist die Bezeichnung für den Aufruf im Menü. + +
+
+
+ Prompt Menu - Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu Beginn dieses Menüs spielen. Sie können mehrere propmts in dieses Feld eingeben und den anderen Bereichen, prompt, indem Sie diese mit einem Pipe-Zeichen. + +
+
+
+ Menü-Timeout - Dieses Feld ist, wo Sie den Timeout in Sekunden einstellen, dass das Menü wird für den Anrufer in einer DTMF-Wahl geben, warten. Festlegen dieses Feld auf Null 0 bedeutet, dass es keine Wartezeit nach der Eingabeaufforderung geben wird gespielt. + +
+
+
+ Menü-Timeout Prompt - Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu spielen, wenn das Zeitlimit erreicht ist. Default ist keiner, der nicht bei Audio-Timeout spielen. + +
+
+
+ Prompt Menu Ungültige - Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu spielen, wenn der Anrufer eine ungültige Option ausgewählt hat. Default ist keiner, der keine Audio-Wiedergabe auf ungültige. + +
+
+
+ Menü wiederholen - Dieses Feld ist, wo Sie die Anzahl der Male, dass das Menü nach dem ersten Mal, wenn keine gültige Wahl ist vom Anrufer aus spielen wird, zu definieren. Der Standardwert ist 1, um das Menü einmal wiederholen. + +
+
+
+ Menü Time Check - Dieses Feld ist, wo Sie wählen, ob der Ruf-Menü Zugriff auf die spezifischen Stunden in der ausgewählten Call Time eingerichtet eingeschränkt werden kann. Wenn der Call Time leer ist, wird diese Einstellung ignoriert. Der Standardwert ist 0 für Behinderte. + +
+
+
+ Anrufzeit ID - Dies ist die Call Time-ID, die verwendet werden, zu berufen, mal zu beschränken, wenn die Menü-Time Check Option aktiviert ist. + +
+
+
+ Track fordert in Real-Time-Report - Dieses Feld ist, wo Sie wählen, ob Sie den Anruf wollen, in das Echtzeit-Bildschirm als einen eingehenden IVR Call verfolgt werden können. Der Standardwert ist 1 für aktive. + +
+
+
+ Tracking-Fraktion - Dies ist die ID, die Sie für Anrufe an dieser Aufforderung Menü Länge, wenn man die IVR-Bericht verwenden können. Die Liste enthält CALLMENU als Standard-sowie alle In-Gruppen. + +
+
+
+ Optionswert - Dieses Feld ist, wo Sie den Menüpunkt definieren, Wahlmöglichkeiten: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. Die besondere TIMECHECK Option kann nur verwendet werden, wenn Sie Menü Time Check aktiviert und es gibt einen Call Time definiert für die Menü -. Um eine Option zu löschen, einfach die Route zu entfernen und die Option wird gelöscht, wenn Sie auf den Submit-Button. + +
+
+
+ Option Beschreibung - Dieses Feld ist, wo Sie die Möglichkeit, beschreiben kann, wird diese Beschreibung in den dialplan als Kommentar über die Möglichkeit genommen werden. + +
+
+
+ Option Route - Dieses Menü enthält die Optionen für die, wo der Anruf gesendet wird, falls diese Option ausgewählt ist: CALLMENU, Eigen-, DID, HANGUP, ERWEITERUNG, TEL. Für CALLMENU, sollte die Route Wert auf die Menü-ID des Call-Menü sein, dass Sie den Anruf an. Für die Eigen-, In-Gruppe, die Sie wollen, dass die Aufforderung an die Bedürfnisse geschickt werden, um ausgewählt werden, sowie die anderen 5 Optionen, die Notwendigkeit, ordnungsgemäß Route einen Anruf an eine Inbound-Gruppe eingestellt werden. Für DID, muss der Wert für die Route der DID-Muster, das Sie wollen, um den Anruf zu senden. Für HANGUP kann die Route Wert ist der Name einer Audio-Datei vor dem Aufhängen der Aufforderung zu spielen. DIE ERWEITERUNG, muss der Wert für die Route der dialplan Erweiterung, die Sie möchten den Anruf zu senden, und die Route Preis-Kontext ist der Kontext, dass die Verlängerung in der Lage ist, wenn leer gelassen Rahmen wird standardmäßig auf Standard. Für Telefon, muss die Route Preis zu sein Telefon anmelden Wert für die Handys Eintrag, den Sie möchten den Anruf zu senden. Für Voicemail, muss die Route Wert für die Voice-Mailbox-Nummer, die nicht verfügbar mesage wird abgespielt. Für AGI, muss die Route Wert für die AGI-Skript und alle Werte, die an sie übergeben werden. + +
+
+
+ Option Route Preis - Dieses Feld ist, wo Sie den Wert, der festlegt, wo in der gewählten Route Option, dass der Anruf eingeben, um die Anweisung bekommen,. + +
+
+
+ Option Route Preis Kontext - Dieses Feld ist optional und nur für die Extension Option Routen eingesetzt. + +
+
+
+ Custom Dilplan Eintrag - Dieses Feld ermöglicht es Ihnen, in jedem dialplan Elemente, die Sie für die Call-Menü eingeben wollen. + + + + + +



+ + VICIDIAL_REMOTE_AGENTSTABELLE

+
+
+ Benutzernummer Anfang - Dieses ist die beginnende Benutzernummer,die verwendet wird, wenn die Remotemitteleintragungen in das Systemeingesetzt werden. Wenn die Zeilenzahl in hohem Grade als 1eingestellt wird, wird diese Zahl durch eine erhöht, bis jede Linieeine Eintragung hat. Stellen Sie, ein neues VICIDIAL Benutzerkonto miteinem Benutzerniveau von 4 zu verursachen oder groß sicher, wenn Siesie in der LageSEIN wünschen, die vdremote.php Seite fürRemotenetzzugang dieses Kontos zu benutzen. + +
+
+
+ Zeilenzahl - Dieses definiert, wievieles Remotemittel Eintragungendas System verursacht, und stellt fest, wieviele Linien es denkt, daßes zur Zahl unter sicher senden kann. + +
+
+
+ Bediener IP - Eine Remotemitteleintragung ist für einenspezifischen Bediener, ist hier nur gut, wo Sie vorwählen, dasBediener Sie wünschen. + +
+
+
+ Externe Verlängerung - Dieses ist die Zahl, daß Sie die Anrufewünschen, die zu nachgeschickt werden. Überprüfen Sie, ob es einevolle dial plan Zahl ist und daß, wenn Sie 9 am Anfang benötigen, Sieihn innen hier setzen. Prüfen Sie, indem Sie diese Nummer von einemTelefon auf dem System wählen. + +
+
+
+ Status - Ist hier, wo Sie das Remotemittel an und abstellen.Sobald das Mittel aktiv ist, nimmt das System an, daß es Anrufe zuihm schicken kann. Es kann bis 30 Sekunden dauern, sobald Sie denStatus zu unaktiviertem ändern, um Anrufe, zu empfangen zu stoppen. + +
+
+
+ Kampagne - Ist hier, wo Sie die Kampagne vorwählen, daß dieseRemotemittel in geloggt werden. Inbound Notwendigkeiten, die GENAUEREKampagne zu verwenden und die inbound Kampagnen unter dervorzuwählen, die Sie Anrufe von empfangen möchten. + +
+
+
+ Inbound Gruppen - Ist hier, wo Sie die inbound Gruppen vorwählen,die Sie Anrufe von empfangen möchten, wenn Sie die GENAUERE Kampagnevorgewählt haben. + + +



+ + VICIDIAL_CAMPAIGN_LISTEN

+
+
+ Die Listen innerhalb dieser Kampagne werden hier verzeichnet, ob siewerden bezeichnet durch das Y aktiv sind, oder N und Sie zum ListeSchirm gehen können, indem sie auf der Liste Identifikation in derersten Spalte klicken. + + +



+ + VICIDIAL_CAMPAIGN_STATUSESTABELLE

+
+
+ Durch den Gebrauch von kundenspezifischen Kampagne Status, können SieStatus haben, die nur für eine spezifische Kampagne bestehen. DerStatus muß 1-8 Buchstaben lang sein, muß die Beschreibung 2-30Buchstaben lang sein und auswählbar definiert, ob es oben in VICIDIALals Einteilung zeigt. Human_answered auffangen wird verwendet, als, denTropfenprozentsatz oder Ungezwungenheit Rate errechnend. Einstellunghuman_answered zu Y verwendet diesen Status, als, diemenschlich-geantworteten Anrufe zählend. Die Kategorie Wahl erlaubt Ihnen, einige Status in ein catogy zugruppieren, das für statistische Analyse verwendet werden kann. + + + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYSTABELLE

+
+
+ Durch den Gebrauch von kundenspezifischen Kampagne hot keys, benenntVertreter, die verwenden, der vicidial Netz-Klient Dose Hängezustandund Einteilung, gerade indem sie einen einzelnen Schlüssel auf ihrerTastatur betätigen. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. + + + + + +



+ + VICIDIAL_LEAD_RECYCLETABELLE

+
+
+ 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. + + + + + +



+ + VICIDIAL SELBSTALT VORWAHLKNOPF-STATUS

+
+
+ Wenn das SelbstAlt-zahl Wählen wird eingestellt auffangen,dann die Leitungen, die sind, unter diesen Vorwahlknopfstatus desAutomobils Alt haben ihr alt_phone dispositioned, und-oder address3gewählt, nachdem irgendwelche von diesen Status kein-antworten,werden eingestellt auffängt. + + + + + +



+ + VICIDIAL MITTEL-PAUSE CODES

+
+
+ Wenn die Mittel-Pause aktives kodiert, fangen Sie wirdeingestellt auf aktives dann die Mittel in der LageIST, von diesenPause Codes vorzuwählen auf, wenn sie an die PAUSE Taste auf ihrenSchirmen klicken. Diese Daten werden dann im vicidialMittelmaschinenbordbuch gespeichert. Der Pause Code muß nurBuchstaben und Zahlen lang enthalten und kleiner als 7 Buchstabensein. Der Pause Codename kann nicht mehr als 30 Buchstaben sein. + + + + + +



+ + VICIDIAL_USER_GROUPSTABELLE

+
+
+ Benutzer-Gruppe - Dieses ist der kurze Name einer VicidialBenutzergruppe, der Versuch, zum keiner Räume zu benutzen, oderInterpunktion für dieses fangen Maximum 20 Buchstaben,Minimum von 2 Buchstaben auf. + +
+
+
+ Gruppe Name - Dieses ist die Beschreibung des vicidialBenutzergruppe Maximums von 40 Buchstaben. + +
+
+
+ ForceTimeclock Login - Diese Option ermöglicht es Ihnen, nicht zulassen, ein Agent der Anmeldung an der VICIDIAL Agent-Schnittstelle, wenn sie nicht angemeldet haben, in die timeclock. Der Standardwert ist N. Es ist eine Option zu befreien admin Benutzer, Stufen 8 und 9. + +
+
+
+ Shift Vollstreckung - Diese Einstellung ermöglicht es Ihnen, Agenten-Logins auf der Grundlage der Veränderungen, die ausgewählt werden. AUS wird nicht in allen Schichten durchzusetzen. START wird nur die Durchsetzung der Login-Zeit, sondern wirkt sich nicht auf einen Vertreter, der mit über die Verlagerung, wenn sie bereits eingeloggt ALL wird durchzusetzen Verlagerung starten und meldet einen Agenten aus, nachdem sie über das Ende ihrer Schicht Zeit. Standardeinstellung ist Aus. + +
+
+
+ Gruppe Verschiebungen - Dies ist eine Liste der wählbaren Schichten, die sich die Agenten anmelden, Zeit auf dem System. + +
+
+
+ Erlaubte Kampagnen - dieses ist eine auswählbare Liste der Kampagnen,zu denen Mitglieder dieser Benutzergruppe innen protokollieren könnenin. Die ALL-CAMPAIGNS Wahl erlaubt den Benutzern in dieser Gruppe, injeder möglicher Kampagne auf dem System innen zu sehen und zuprotokollieren. + +
+
+
+ Agent Status Sichtbare Gruppen - Dies ist eine Liste der wählbaren Benutzer-Gruppen und User-Funktionen, auf die Mitglieder dieser Benutzergruppe den Status sowie die Übertragung Anrufe innerhalb des Agent-Bildschirm anzeigen können. Der ALL-GRUPPEN Option ermöglicht es dem Benutzer in dieser Gruppe zu sehen und Anrufe für jeden Benutzer auf dem System. Die Kampagnen-AGENTUREN Option können Benutzer in dieser Gruppe zu sehen und Anrufe für jeden Benutzer in der Kampagne, dass sie angemeldet sind, in. + +
+
+
+ Agent Status View Time - Diese Option legt fest, ob der Agent die Höhe der Zeit, dass die Nutzer in ihrer Bevollmächtigten Seitenleiste in ihren aktuellen Status zu sehen gewesen sein wird. Der Standardwert ist N nicht oder deaktiviert. + + 0) + { + ?> +
+
+
+ QC erlaubt Kampagnen - Dies ist eine Liste der wählbaren Kampagnen, die Mitglieder dieser Gruppe in der Lage, QC. Die ALL-KAMPAGNEN Option ermöglicht es dem Benutzer in dieser Gruppe, QC einer Kampagne auf dem System. + +
+
+
+ QC erlaubt Inbound Gruppen - Dies ist eine Liste der wählbaren Eingang Gruppen, die Mitglieder dieser Gruppe in der Lage, QC. Die ALL-GRUPPEN Option ermöglicht es dem Benutzer in dieser Benutzergruppe zu QC jede eingehende Gruppe über das System. + + + + + +



+ + VICIDIAL_INDEXETABELLE

+
+
+ Index Identifikation - Dieses ist der kurze Name eines VicidialIndexes. Dieser muß ein einzigartiger Bezeichner sein. Der Versuch,zum keiner Räume oder die Interpunktion für dieses zu benutzenfangen Maximum 10 Buchstaben, Minimum von 2 Buchstaben auf. + +
+
+ Index-Name - Dieses ist der Titel einem Vicidial Index. Dieses isteine kurze Zusammenfassung der Indexmaximum 50 Buchstaben, Minimum von2 Buchstaben. Es sollte keine Räume geben, oder Interpunktionirgendwie der Art in den theis fangen auf. + +
+
+ Index kommentiert - Dieses ist, wo Sie Anmerkungen für einenVicidial Index wie - geändert, um Aufsteigen an Sept. 23 freizugeben-. Maximum 255 Buchstaben setzen können, Minimum von 2 Buchstaben. + +
+
+ Index-Text - 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, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

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?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Aktiv - Dieses stellt fest, ob dieser Index vorgewählt werdenkann, durch eine Kampagne verwendet zu werden. + + + + + + 0) + { + ?> +



+ + VICIDIAL_LEAD_FILTERTABELLE

+
+
+ Filter Identifikation - Dieses ist der kurze Name eines VicidialLeitung Filter. Dieser muß ein einzigartiger Bezeichner sein.Benutzen Sie keine Räume, oder Interpunktion für diesesfangen Maximum 10 Buchstaben, Minimum von 2 Buchstaben auf. + +
+
+ Filter-Name - Dieses ist ein beschreibenderer Name des Filter.Dieses ist eine kurze Zusammenfassung der Filtermaximum 30 Buchstaben,Minimum von 2 Buchstaben. + +
+
+ Filter kommentiert - Dieses ist, wo Sie Anmerkungen für einenVicidial Filter wie - Anrufe alle Kalifornien Leitungen -. Maximum 255Buchstaben setzen können, Minimum von 2 Buchstaben. + +
+
+ Filter SQL - Dieses ist, wohin Sie das SQL Frage Fragment setzen,das Sie vorbei filtern möchten anfangen nicht, oder Ende mit UND, dasdurch den Zufuhrbehälter cron Index automatisch hinzugefügt wird.eine Beispiel SQL Frage, die hier arbeiten würde, ist called_count \4 und called_count \. + + + + + +



+ + VICIDIAL_AnrufzeitenTABELLE

+
+
+ Anrufzeit ID - 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. + +
+
+ Anrufzeit Name - Dies ist ein besser beschreibender Name für die Anrufzeit Definition. Es ist eine kurze Zusammenfassung der Anrufzeit Definition. Maximal 30 Zeichen, mindestens 2. + +
+
+ Anrufzeit Kommentare - 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. + +
+
+ Standard Start and Stop Zeiten - 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. + +
+
+ Wochentag Start and Stop Zeit - 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. + +
+
+ Land Anrufzeit Definition - Dies ist die Liste der landspezifischen Anrufzeit Definitionen, die von dieser Anrufzeit Definition beachtet werden. + +
+
+ Landesspezifische Anrufzeit Definition - 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 . + + + + +



+ + VICIDIAL_SHIFTSTABELLE

+
+
+ Shift-ID - Das ist der kurze Name der Vicidial Shift Definition. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder Satzzeichen für dieses Feld. max 20 Zeichen, mindestens 2-Zeichen. + +
+
+ Shift Name - Dies ist eine beschreibende Bezeichnung der Shift Definition. Dies ist eine kurze Zusammenfassung der Shift Definition. max 50 Zeichen, mindestens 2-Zeichen. + +
+
+ Start Time Shift - Es ist an der Zeit, dass die Kampagne Schicht beginnt. Darf nur Zahlen, 9:30 AM wäre 0930 und 5:00 PM wäre 1700. + +
+
+ Shift Länge - Das ist die Zeit in Stunden und Minuten, dass die Kampagne Schicht dauert. 8 Stunden wäre 08:00 Uhr und 7 Stunden und 30 Minuten würde 07:30. + +
+
+ Shift Wochentage - In diesem Abschnitt sollten Sie die Tage der Woche, dass diese Verschiebung ist aktiv. + + + + + +



+
+ Audio-Store - Dieses Dienstprogramm ermöglicht es Ihnen, Audio-Dateien-Upload auf den Webserver, so dass sie auf alle ViciDial Server in einer Multi-Server-Cluster verteilt werden. Ein wichtiger Hinweis, nur zwei Audio-Dateitypen funktionieren wird,. Wav-Dateien, die PCM 16bit und 8k. GSM-Dateien, die 8bit 8k sind. Bitte überprüfen Sie, dass Ihre Dateien vor dem Upload korrekt formatiert sind sie hier. + + + +



+ + VICIDIAL_MUSIC_ON_HOLDTABELLE

+
+
+ Music On Hold ID - Dies ist der Kurzname eines Music On Hold Eintrag. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder sonstige Zeichen für dieses Feld. max 100 Zeichen, mindestens 2 Zeichen. + +
+
+ Music On Hold Name - Dies ist ein aussagekräftiger Name des Music On Hold Eintrag. Dies ist eine kurze Zusammenfassung der Music On Hold Kontext und wird als Kommentar in der musiconhold vicidial.conf-Datei zu zeigen. max 255 Zeichen, mindestens 2 Zeichen. + +
+
+ Aktive - Diese Option ermöglicht es Ihnen, die Wartemusik Eintrag aktiv oder inaktiv gesetzt. Inaktive wird entfernen Sie den Eintrag aus der conf-Dateien. + +
+
+ Zufälliger Reihenfolge - Diese Option ermöglicht es Ihnen, die Wiedergabe der Audio-Dateien in zufälliger Reihenfolge zu definieren. Wenn auf N dann die festgelegten Reihenfolge verwendet werden. + +
+
+ Filename - Um eine neue Audiodatei auf eine Music On Hold Eintrag hinzufügen, muss die Datei zuerst in der Audio zu speichern, dann können Sie die Datei auszuwählen und klicken Sie legt ihn in die Datei-Liste aufzunehmen. Music on Hold ist einmal pro Minute aktualisiert, wenn es zu Veränderungen vorgenommen. Alle Dateien, die nicht in der Wartemusik-Eintrag, der in der Musik präsentieren zu halten Ordner aufgeführt sind, werden gelöscht. + + + + +



+ + VICIDIAL_TTS_PROMPTSTABELLE

+
+
+ TTS-ID - Dies ist der Kurzname eines TTS-Eintrag. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder sonstige Zeichen für dieses Feld. max 50 Zeichen, mindestens 2 Zeichen. + +
+
+ TTS Name - Dies ist um einen beschreibenden Namen des TTS-Eintrag. Dies ist eine kurze Zusammenfassung der TTS-Definition. max 100 Zeichen, mindestens 2 Zeichen. + +
+
+ Aktive - Diese Option ermöglicht es Ihnen, die TTS-Eintrag aktiv oder inaktiv gesetzt. + +
+
+ TTS Text - Dies ist der eigentliche Text To Speech Datenfeld Cepstral, die für die Erstellung der Audio-Datei gesendet wird, um dem Kunden gespielt werden. Sie können Speech Synthesis Markup Language-SSML-Einsatz in diesem Bereich, zum Beispiel, <break time='1000ms'/> für 1 Sekunde Pause. Sie können auch mehrere Variablen wie Vorname, Nachname und Titel wie ViciDial Variablen wie Sie in einem Skript: - A - first_name - B -. Hier ist eine Liste der verfügbaren Variablen:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAILTABELLE

+
+
+ Voicemail-ID - Dies ist die Kennung der alle Zahlen dieses Postfach. Das darf nicht sein, ein Duplikat eines vorhandenen Voicemail-ID oder die Voicemail-ID eines Telefons auf dem System, mindestens 2 Zeichen. + +
+
+ Name - Dies ist der Name im Zusammenhang mit dieser Voicemail-Box. max 100 Zeichen, mindestens 2 Zeichen. + +
+
+ Password - Dies ist das Kennwort, das verwendet wird, um Zugriff auf die Voicemail-Box beim Wählen Nachrichten zu maximal 10 Zeichen, mindestens 2 Zeichen überprüfen zu gewinnen. + +
+
+ Aktive - Diese Option ermöglicht es Ihnen, die Voicemail-Box aktiv oder inaktiv gesetzt. Ist das Kontrollkästchen aktiviert kann man nicht die Nachrichten auf sie und man kann nicht kontrollieren Einträge in ihr. + +
+
+ Mit dieser Einstellung können Sie die Voicemail-Nachrichten geschickt haben eine E-Mail-Konto, wenn Ihr System so eingerichtet ist, senden E-Mail. Wenn dieses Feld leer ist, dann wird keine E-Mails verschickt werden. + +
+
+ Löschen Voicemail Nach E-Mail - Mit dieser Einstellung können Sie die Voicemail-Nachrichten aus dem System gelöscht haben, nachdem sie per E-Mail haben gewesen. Der Standardwert ist N. + + + + + 0) + { + ?> + +



+ + VICIDIAL LISTE LADEVORRICHTUNG FUNKTIONALITÄT

+
+
+ Die VICIDIAL grundlegende Netz-gegründete Leitung Ladevorrichtung isteinfach entworfen, um eine Leitung Akte zu nehmen - bis zu 8MB in derGröße - die entweder Vorsprung oder das abgegrenzte Rohr und es indie vicidial_list Tabelle zu laden ist. Die Leitung Ladevorrichtungläßt auffangen das Wählen zu und TXT- deutlich Text, CSV-Komma getrennte Werte und XLS- übertreffen Akte Formate. Die LeitungLadevorrichtung tut nicht Datenprüfung, aber sie erlaubt Ihnen, aufDuplikate in sich, innerhalb der Kampagne oder innerhalb des gesamtenSystems zu überprüfen. Auch überprüfen Sie, ob Sie die Listeerstellt haben, daß diese Leitungen darunter sein sollen, damit Siesie benutzen können. Ist hier eine Liste von auffängt inihrem korrekten Auftrag für die Leitung Akten: +
    +
  1. Verkäufer-Leitung Code - zeigt oben im Verkäufer, den Identifikationvom GUI auffangen +
  2. Quellenprogramm - interner Gebrauch nur für admins und DBAs +
  3. Liste Identifikation - die Liste Zahl, die diese Leitungen obendarunter zeigen +
  4. Telefon-Code - das Präfix für die Telefonnummer - 1 für US, 01144für Großbritannien, 01161 für AUS, usw. +
  5. Telefonnummer - muß mindestens 8 Stellen lang sein +
  6. Titel - Titel dem Kunden - Herr Ms Mrs, usw.... +
  7. Vorname +
  8. Mittlere Initiale +
  9. Letzter Name +
  10. Adresse Linie 1 +
  11. Adresse Linie 2 +
  12. Adresse Linie 3 +
  13. Stadt +
  14. Zustand - begrenzt auf 2 Buchstaben +
  15. Provinz +
  16. Postcode +
  17. Land +
  18. Geschlecht +
  19. Geburtsdatum +
  20. Wechselnde Telefonnummer + Sicherheit Phrase +
  21. Anmerkungen +
+ +
ANMERKUNGEN: Die übertreffenleitung Ladevorrichtung Funktionalitätwird durch eine Reihe Perl Indexe ermöglicht und muß eine richtigzusammengebaute /etc/astguiclient.conf Akte im Platz auf dem webserver haben. Auch ein Paarperl Module müssen für sie, um außerdemzu arbeiten - OLE-Storage_Lite-Storage_Lite undVerteilungsbogen-ParseExcel geladen werden. Sie können aufLaufzeitfehler in diesen überprüfen, indem Sie Ihre Apache error_logAkte betrachten. Auch für Doppelprüfungen gegen gampaignverzeichnet, die Liste, die neue Leitungen hat, in es einzusteigenmuß im System verursacht werden, bevor Sie beginnen, die Leitungen zuladen. + + + + +



+ + + + + + + TELEFON-TABELLE

+
+
+ Telefonverlängerung - Dieses fangen ist auf, wohin Sieden Telefonnamen setzen, während er scheint, nicht einschließlichdas Protokoll oder den Schrägstrich am Anfang mit einem Sternchenzuversehen. Z.B.: für das SIP Telefon SIP\/test101 würde dieTelefonverlängerung test101 sein. Auch denn Telefone IAX2 stellen Siesicher, daß Sie den vollen Telefonnamen verwenden:IAX2\/IAXphone1@IAXphone1 würde IAXphone1@IAXphone1 sein. Für ZapTelefone sicherstellen, daß Sie die volle Führung setzen: Zap/25-1würde 25-1 sein. Eine andere Anmerkung, stellen sicher, daß Sie dasProtokoll unten richtig für Ihre Art des Telefons einstellen. + +
+
+
+ Dial Plan Zahl - 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 + +
+
+
+ Voicemail Kasten - Dieses fangen ist für den voicemailKasten auf, daß die Anzeigen für zum Benutzer dieses Telefons gehen.Wir verwenden dieses, um auf voicemail Anzeigen und auf den Benutzerzu überprüfen, zum in der Lage zuSEIN, die VOICEMAIL Taste aufastGUIclient APP zu benutzen. + +
+
+
+ Outbound CallerID - Dieses fangen ist auf, wo Sie diecallerID Zahl eintragen würden, die Sie möchten, daß auf outboundAnrufe gesetzter Form der astguiclient Netz-Klient aussieht. Diesesarbeitet nicht auf RBS, non-PRI, T1/Eß. + +
+
+
+ Telefon-IP address - Dieses fangen ist für IP addressdes Telefons auf, wenn es ein VOIP Telefon ist. Dieses istauffangen ein wahlweise freigestelltes + +
+
+
+ Computer-IP address - Dieses fangen ist für IP addressComputer des Benutzers auf. Dieses ist auffangen einwahlweise freigestelltes + +
+
+
+ Bediener IP - Dieses Menü ist, wo Sie vorwählen, dem Bedienerdas Telefon auf aktiv ist. + +
+
+
+ LOGON - Der LOGON gewöhnt ge$$$WESEN für den Telefonbenutzer anLOGON zu den Klient Anwendungen. + +
+
+
+ Kennwort - Das Kennwort gewöhnt ge$$$WESEN für denTelefonbenutzer an LOGON zu den Klient Anwendungen. Wichtig ist dies das Passwort nur für den Agenten Weboberfläche Telefon anmelden, um die sip.conf oder iax.conf vergessen, oder geheim zu ändern, für dieses Telefon-Gerät müssen Sie die Conf-Datei Secret Feld weiter unten auf dieser Seite ändern. + +
+
+
+ Status - Der Status des Telefons im System, die AKTIVEN und ADMINdürfen, damit GUI Klienten arbeiten. Admin erlaubt Zugang zu dieseradministrativen Web site. Alle weiteren Status erlauben nicht GUI oderAdmin Netzzugang. + +
+
+
+ Aktives Konto - Ob das Telefon aktiv ist, es in die Liste im GUIKlienten einzusetzen. + +
+
+
+ Telefon-Art - Lediglich für administrative Anmerkungen. + +
+
+
+ Voller Name - Verwendet durch das GUIclient in der Liste deraktiven Telefone. + +
+
+
+ Firma - Lediglich für administrative Anmerkungen. + +
+
+
+ Telefon E-Mail - Die E-Mail-Adresse im Zusammenhang mit diesem Telefon-Eintrag. Dies ist für die Mailbox-Einstellungen. + +
+
+ Löschen Voicemail Nach E-Mail - Mit dieser Einstellung können Sie die Voicemail-Nachrichten aus dem System gelöscht haben, nachdem sie per E-Mail haben gewesen. Der Standardwert ist N. + +
+
+
+ Abbildung - Nicht schon eingeführt. + +
+
+
+ Neue Anzeigen - Zahl der neuen voicemail Anzeigen für diesesTelefon auf dem Sternchenbediener. + +
+
+
+ Alte Anzeigen - Zahl der alten voicemail Anzeigen für diesesTelefon auf dem Sternchenbediener. + +
+
+
+ Klient Protokoll - Das Protokoll, das das Telefon verwendet, anden Sternchenbediener anzuschließen: Sip, IAX2, Zap. Auch, es gibtexternal für Remotevorwahlknopfzahlen oder GeschwindigkeitVorwahlknopfzahlen, die Sie als Telefone verzeichnen möchten. + +
+
+
+ Lokales GMT - Der Unterschied Greenwich-Zeit von oder VON DERZULU-Zeit, in der das Telefon lokalisiert wird. STELLEN SIE NICHT AUFTAGESLICHT-SPARUNGEN ZEIT EIN. Dieses wird durch die VICIDIAL Kampagneverwendet, um die Zeit und Kunde Zeit genau anzuzeigen. + +
+
+
+ Telefon Ring Timeout - Dies ist die Zeit, in Sekunden, die das Telefon in der dialplan, bevor der Anruf an die Voicemail-Ring wird. Der Standardwert ist 60 Sekunden. + +
+
+
+ Manager-LOGON - Dieses ist der LOGON, dem die GUI Klienten fürdieses Telefon pflegen, die Datenbank zugänglich zu machen, in derdie Bedienerdaten liegen. + +
+
+
+ Manager-Geheimnis - Dieses ist das Kennwort, dem die GUI Klientenfür dieses Telefon pflegen, die Datenbank zugänglich zu machen, inder die Bedienerdaten liegen. + +
+
+
+ VICIDIAL Rückstellung Benutzer - Dieses soll einen Default-Wertin den VICIDIAL Benutzer legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keinen Benutzer. + +
+
+
+ VICIDIAL Rückstellung Durchlauf - Dieses soll einen Default-Wertin das VICIDIAL Kennwort legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keinen Durchlauf. + +
+
+
+ VICIDIAL Rückstellung Kampagne - Dieses soll einen Default-Wertin die VICIDIAL Kampagne legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keine Kampagne. + +
+
+
+ Park Exten - Dieses ist die Rückstellung Parkenverlängerung fürdie Klient apps. Überprüfen Sie, daß ein unterschiedliches manarbeitet, bevor Sie dieses ändern. + +
+
+
+ Conf Exten - This is the default Conference park extension for the client apps. Verify that a different one works before you change this. + +
+
+
+ VICIDIAL Park Exten - Dieses ist die RückstellungParkenverlängerung für VICIDIAL Klient APP. Überprüfen Sie, daßein unterschiedliches man arbeitet, bevor Sie dieses ändern. + +
+
+
+ VICIDIAL Park-Akte - Dieses ist der Rückstellung VICIDIALPark-Verlängerung Dateiname für die Klient apps. Überprüfen Sie,daß ein unterschiedliches man arbeitet, bevor Sie dieses ändern, daszu 10 Buchstaben begrenzt wird. + +
+
+
+ Überwachen Sie Präfix - This is the dial plan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records. + +
+
+
+ Aufnahme Exten - Dieses ist die dial plan Verlängerung für dieAufnahmeverlängerung, die verwendet wird, um in meetme Konferenzen zufallen, um sie zu notieren. Es dauert normalerweise bis zu einerStunde, wenn es nicht gestoppt wird, überprüft mit extensions.confAkte, bevor es ändert. + +
+
+
+ VMAIL Hauptexten - Dieses ist die dial plan Verlängerung, diegeht, Ihr voicemail. zu überprüfen, überprüfen mit extensions.confAkte, bevor es ändert. + +
+
+
+ VMAIL Dump Exten - Dieses ist das dial plan Präfix, das verwendetwird, um Anrufe direkt zum voicemail eines Benutzers von einemPhasenanruf in der astGUIclient APP zu schicken, überprüfen mitextensions.conf Akte, bevor es ändert. + +
+
+
+ Exten Kontext - Dies ist die Wählplan Zusammenhang, dass der Agent-Anwendungen, wie ViciDial, in erster Linie zu verwenden. Es wird davon ausgegangen, dass alle Zahlen, die durch den Client-Anwendungen gewählt diesem Zusammenhang verwenden, so ist es eine gute Idee, um sicherzustellen, das ist die am weitesten Kontext möglich ist. extensions.conf überprüfen, ob die Datei vor dem Wechsel. Standardmäßig ist der Standard -. + +
+
+
+ Telefon Kontext - Dies ist die Wählplan Zusammenhang, dass dieses Handy für die Einwahl zu verwenden. Wenn Sie ein Call-Center ausgeführt werden und Sie nicht möchten, dass Ihre Mitarbeiter in der Lage sein zu wählen, die außerhalb des ViciDial Anwendung zum Beispiel, dann würden Sie dieses Feld auf ein dialplan Zusammenhang, dass es nicht gibt, so etwas wie agent-nodial. Standardmäßig ist der Standard -. + +
+
+
+ Conf-Datei Secret - Das ist das Geheimnis, oder das Passwort für das Telefon in der IAX oder SIP-auto-generated conf-Datei für dieses Telefon. Der Grenzwert beträgt 20 alphanumerischen Zeichen Bindestrich und Unterstrich akzeptiert. Default is test. + +
+
+
+ DTMF senden Führung - Dieses ist die Führung Zeichenkette, diebenutzt wird, um DTMF Töne in meetme Konferenzen von den Klient appszu senden. Überprüfen Sie, daß und Kontext mit der extensions.confAkte exten. + +
+
+
+ Outbound Anruf-Gruppe - Dieses ist die Kanalgruppe, daß outboundAnrufe von diesem Telefon aus gesetzt werden. Es gibt Programme einesPaares in den Klient apps, die dieses verwenden. Für Zap Führungen,die Sie etwas wie Zap/g2 verwenden möchten, denn Stämme IAX2 Siedas volle IAX Präfix wie IAX2/VICItest1:secret@10.10.10.15:4569würden verwenden wollen. Überprüfen Sie die Stämme mit derextensions.conf Akte, es ist normalerweise, was Sie als die globaleVariable des STAMMES an der Oberseite der Akte definiert haben. + +
+
+
+ Datenbanksuchroutine-Position - Dieses ist auf nur UNIX/LINUXKlienten, der absolute Weg zu Mozilla anwendbar, oder FirefoxDatenbanksuchroutine auf der Maschine überprüfen dieses, indem siemanuell es ausstößt. + +
+
+
+ Anbringen Sie Verzeichnis - Dieses ist der Platz, in dem dieastGUIclient und astVICIDIAL Indexe auf Ihrer Maschine sind. FürWin32 sollte es etwas wie C:\\AST_VICI sein und für UNIX sollte esetwas wie /usr/local/perl_TK. sein überprüft dieses manuell. + +
+
+
+ CallerID URL - Dieses ist die Netzadresse der Seite, die benutztwird, um kundenspezifische callerID Nachschlagen zu tun, Rückstellungprüfen, dieadresse ist:http://astguiclient.sf.net/test_callerid_output.php + +
+
+
+ VICIDIAL Rückstellung URL - Dieses ist die Netzadresse der Seite,die benutzt wird, um kundenspezifische VICIDIAL Netz-Formfragen zutun, Rückstellung prüfen, dieadresse ist:http://astguiclient.sf.net/test_VICIDIAL_output.php + +
+
+
+ Anruf-Protokollierung - Dieses wird eingestellt, um auszurichten,wenn die call_log.agi Akte im Platz in der extensions.conf Akte füralles outbound ist und die Verlängerungen des Hängezustands ' h ',zum alle zu loggen benennt. Diese sollte 1, weil es für vieleastGUIclient und DIE VICIDIAL manditory ist Eigenschaften immer sein,zum richtig zu arbeiten. + +
+
+
+ Benutzer-Schaltung - 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 + +
+
+
+ Conferencing - Stellen Sie ein, um auszurichten, um Benutzer zuerlauben, Konferenzanrufe mit bis zu sechs externen Linien zubeginnen. + +
+
+
+ Admin Hängezustand - um Benutzer zu erlauben auszurichten Satz,zum Hängezustand irgendeine Linie am Willen durch astGUIclient in derLage zuSEIN. Gute Idee, diesem für Admin Benutzer nur zuermöglichen. + +
+
+
+ Admin Straßenräuber - Stellen Sie ein, um auszurichten, umBenutzer zu erlauben, in der Lage zuSEIN, zu ihrer Verlängerung jedemögliche Linie zu ergreifen und umzuadressieren am Willen durchastGUIclient. Gute Idee, diesem für Admin Benutzer nur zuermöglichen. Aber ist für Manager sehr nützlich. + +
+
+
+ Admin Monitor - Stellen Sie ein, um auszurichten, um Benutzer zuerlauben, in der Lage zuSEIN, zu ihrer Verlängerung jede möglicheLinie zu ergreifen und umzuadressieren am Willen durch astGUIclient.Gute Idee, diesem für Admin Benutzer nur zu ermöglichen. Aber istfür Manager und als Training Werkzeug sehr nützlich. + +
+
+
+ Parkschaltung - um Benutzer zu erlauben auszurichten der Satz, inder Lage zuSEIN zu parken ersucht um astGUIclient Einfluß, von jedemanderen astGUIclient Benutzer auf dem System aufgehoben zu werden.Anrufe bleiben auf Einfluß für bis zu einen halbe Stunde dannHängezustand. Normalerweise ermöglicht für alle. + +
+
+
+ Updater Überprüfung - Stellen Sie ein, um auszurichten, um einepopup Warnung anzuzeigen, die die updater Zeit nicht in 20 Sekundengeändert hat. Nützlich für Admin Benutzer. + +
+
+
+ Af Protokollierung - Stellen Sie ein, um auszurichten, um vieleTätigkeiten des astGUIclient Verbrauches in einer Textakte auf demComputer des Benutzers zu protokollieren. + +
+
+
+ Warteschlange ermöglichte - um Klient apps auszurichten Satz dasSternchen-zentrale Warteschlange System benutzen zu lassen. Erfordertfür VICIDIAL und für alle Benutzer empfohlen. + +
+
+
+ CallerID Popup - Stellen Sie ein, um auszurichten, um die Zahlenzuzulassen, die in der extensions.conf Akte definiert werden, umCallerID popup Schirme zu schicken den astGUIclient Benutzern. + +
+
+
+ VMail Taste - Stellen Sie ein, um auszurichten, um die VOICEMAILTaste anzuzeigen und die Anzeigen zählen Anzeige auf astGUIclient. + +
+
+
+ Schnell erneuern Sie - Stellen Sie ein, um auszurichten, um einerneuen Rate von zu ermöglichen erneuern von den Anrufinformationenfür das astGUIclient. Rückstellung arbeitsunfähige Rate ist 1000zweite des Ms.1. Kann Anlagen-Belastung erhöhen, wenn Sie diese Zahlsenken. + +
+
+
+ Schnell erneuern Sie Rate - in den Millisekunden. Nur verwendet,wenn schnell, erneuern Sie wird ermöglicht. Rückstellungarbeitsunfähige Rate ist 1000 zweite des Ms.1. Kann Anlagen-Belastungerhöhen, wenn Sie diese Zahl senken. + +
+
+
+ Persistant MySQL - Wenn er ermöglicht wird, bleibt derastGUIclient Anschluß angeschlossen, anstatt, jede Sekundeanzuschließen. Nützlich, wenn Sie ein schnelles die eingestellteRate erneuern lassen. Sie erhöht die Zahl Anschlüssen auf IhrerMySQL Maschine. + +
+
+
+ Selbstvorwahlknopf-folgende Zahl - wenn er ermöglicht wird,wählt der VICIDIAL Klient die folgende Nummer auf der Listeautomatisch nach Einteilung eines Anrufs, es sei denn sie vorwählten"auf, dem Einteilung Schirm zu wählen zu stoppen". + +
+
+
+ Stoppen Sie Rec nach jedem Anruf - wenn er ermöglicht wird,stoppt der VICIDIAL Klient, was Aufnahme weitergeht, nachdem jederAnruf dispositioned gewesen ist. Nützlich, wenn Sie eine MengeAufnahme tun oder Sie benutzen eine Netzform, um Aufnahme auszulösen. + +
+
+
+ Ermöglichen Sie SIPSAK Anzeigen - wenn er ermöglicht wird, schicktder Bediener Anzeigen zum SIP Telefon zur Anzeige auf der Telefon LCDAnzeige, wenn er in VICIDIAL geloggt wird. Eigenschaft arbeitet nurmit SIP Telefonen und erfordert sipsak Anwendung, auf das web serverangebracht zu werden. Rückstellung ist 0. + +
+
+
+ DBX Bediener - Der MySQL Datenbankbediener, den dieser Benutzeranschließen sollte an. + +
+
+
+ DBX Datenbank - Die MySQL Datenbank, die dieser Benutzeranschließen sollte an. Rückstellung ist Sternchen. + +
+
+
+ DBX Benutzer - Der MySQL Benutzer-LOGON, den dieser Benutzer beimAnschließen verwenden sollte. Rückstellung ist cron. + +
+
+
+ DBX Durchlauf - Das MySQL Benutzerkennwort, das dieser Benutzerbeim Anschließen verwenden sollte. Rückstellung ist 1234. + +
+
+
+ DBX Tor - Das MySQL TCP Tor, das dieser Benutzer beim Anschließenbenutzen sollte. Rückstellung ist 3306. + +
+
+
+ DBY Bediener - Der MySQL Datenbankbediener, den dieser Benutzeranschließen sollte an. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ DBY Datenbank - Die MySQL Datenbank, die dieser Benutzeranschließen sollte an. Rückstellung ist Sternchen. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ DBY Benutzer - Der MySQL Benutzer-LOGON, den dieser Benutzer beimAnschließen verwenden sollte. Rückstellung ist cron. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ DBY Durchlauf - Das MySQL Benutzerkennwort, das dieser Benutzerbeim Anschließen verwenden sollte. Rückstellung ist 1234. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ DBY Tor - Das MySQL TCP Tor, das dieser Benutzer beim Anschließenbenutzen sollte. Rückstellung ist 3306. Zweitensserver, nicht z.Z. verwendet. + +
+
+
+ Alias-ID - Die ID des Alias verwendet, um für Telefon-Lastenausgleich Logins. keine Leerzeichen oder andere Sonderzeichen erlaubt. Muss zwischen 2 und 20 Zeichen lang sein. + +
+
+
+ Alias-Name - Der Name für die Bezeichnung eines Handys Alias, muss zwischen 2 und 50 Zeichen lang sein. + +
+
+
+ Telefone Logins List - Das Komma getrennt Liste der Telefonnummern Logins verwendet, wenn ein Agent meldet sich mit Telefon Lastenausgleich Logins. Der Agent-Anwendung finden Sie die Aktive Server mit den wenigsten Makler eingeloggt ist und ein Anruf aus, dass der Server-Agent bei der Anmeldung. + +
+
+
+ Vorlagen-ID - Das ist die conf Datei template-ID, die dieses Telefon-Eintrag wird für die Asterisk-Einstellungen. Standard ist - KEINE --. + +
+
+
+ Conf Override Settings - If populated, and the Vorlagen-ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Alias-ID-Gruppe - die ID der Gruppe Alias von Agenten wählen Sie fordert von der VICIDIAL Agent-Schnittstelle mit verschiedenen Caller-IDs. keine Leerzeichen oder andere Sonderzeichen erlaubt. Muss zwischen 2 und 20 Zeichen lang sein. + +
+
+
+ Alias-Name-Fraktion - Der Name für die Bezeichnung einer Gruppe Alias, muss zwischen 2 und 50 Zeichen lang sein. + +
+
+
+ Anrufer-ID-Nummer - Die Caller-ID-Nummer, die in dieser Gruppe Alias. Muss nur Ziffern. + +
+
+
+ Anrufer-ID Name - Die Anrufer-ID-Namen ein, können mit dieser Gruppe Alias. Soweit wir wissen, wird dies nur funktionieren, in Kanada über den PRI-Leitungen und mit einer Schleife IAX Stamm durch Asterisk. + + + + +



+ + BEDIENER-TABELLE

+
+
+ Bediener Identifikation - Dieses fangen ist, wohin Sieden Sternchenbedienernamen setzen, doesnt müssen ein amtliches GebietUnterseeboot, gerade ein Spitzname sein auf, um den Bediener zu denAdmin Benutzern zu kennzeichnen. + +
+
+
+ Bediener-Beschreibung - auffangen, wo Sie eine kleine Phraseverwenden, um den Sternchenbediener zu beschreiben. + +
+
+
+ Bediener-IP address - auffangen, wo Sie das Netz-IP addressdes Sternchenbedieners setzten. + +
+
+
+ Aktiv - Stellen Sie ein, ob der Sternchenbediener aktiv oderunaktiviert ist. + +
+
+
+ System Load - Diese beiden Statistiken zeigen, die loadavg ein System mal 100 und die CPU-Auslastung Anteil des Bediener und wird jede Minute aktualisiert. Die loadavg sollte im Durchschnitt unter 100 multipliziert mit der Anzahl der CPU-Kernen Ihr System hat, für eine optimale Leistung zu erzielen. Die CPU-Auslastung Prozentsatz sollte Aufenthalt unter 50 für eine optimale Leistung zu erzielen. + +
+
+
+ Live-Channels - Dieses Feld zeigt die aktuelle Anzahl der Asterisk-Kanäle, die sich live über das System jetzt. Es ist wichtig zu beachten, dass die Anzahl der Kanäle Asterisk ist in der Regel viel höher als die tatsächliche Zahl der Anrufe auf einem System. Dieses Feld wird einmal pro Minute aktualisiert. + +
+
+
+ Disk Usage - Dieses Feld wird die Nutzung der Festplatte für jede Partition auf diesem Server. Dieses Feld wird einmal pro Minute aktualisiert. + +
+
+
+ Sternchen-Version - Stellen Sie die Version des Sternchens ein,die Sie auf diesen Bediener angebracht haben. Beispiele: ' 1.2 ', '1.0.8 ', ' 1.0.7 ', ' CVS_HEAD ', ' WIRKLICH ALTES ', usw.... Dieseswird verwendet, weil Versionen 1.0.8 und 1.0.9 eine andere Methode desBeschäftigens Local/ Führungen, eine Wanze, die in CVS v1.0geregelt worden ist, und Notwendigkeit, anders als behandelt zu werdenhaben, wenn die Behandlung ihres Local/ lenkt. Auch gegenwärtigesCVS_HEAD und der 1.2 Freigabebaumgebrauch unterschiedlicher Managerund Befehl gaben aus, also muß es anders als außerdem behandeltwerden. + +
+
+
+ Maximale VICIDIAL Stämme - Dieses fangen feststellt diemaximale Zeilenzahl auf, um denen der VICIDIAL Auto-dialer versucht,diesen Bediener zu ersuchen. Wenn Sie zwei volle PRI Tß VICIDIALingauf einem Bediener einweihen möchten dann, würden Sie dieses bis 46einstellen. Rückstellung ist 96. + +
+
+
+ Max Calls pro Sekunde - Diese Einstellung bestimmt die maximale Anzahl von Anrufen, die sich durch den Ausgang Auto-Einwahl-Script auf diesem Server pro Sekunde. Muss zwischen 1 und 100. Der Standardwert ist 20. + +
+
+
+ Telnet Wirt - Dieses ist die Adresse oder der Name desSternchenbedieners und ist, wie die Manageranwendungen an ihnanschließen von, wo sie laufen. Wenn sie auf den Sternchenbedienerlaufen, dann ist die Rückstellung von ' localhost ' fein. + +
+
+
+ Telnet Tor - Dieses ist das Tor des SternchenbedienerManageranschlußes und ist, wie die Manageranwendungen an ihnanschließen von, wo sie laufen. Die Rückstellung von ' 5038 ' istfein für einen Standard anbringen. + +
+
+
+ Manager-Benutzer - Das username oder der LOGON verwendeten, an denSternchenbedienermanager genericly anzuschließen. Rückstellung ist 'cron ' + +
+
+
+ Manager-Geheimnis - Das Geheimnis oder das Kennwort verwendeten,an den Sternchenbedienermanager genericly anzuschließen.Rückstellung ist ' 1234 ' + +
+
+
+ Manager-Update-Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für dieUpdateindexe optimiert wurde. Fallen Sie ist ' updatecron ' undannimmt das gleiche Geheimnis wie der generische Benutzer zurück. + +
+
+
+ Manager hören Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für Indexeoptimiert wurde, die nur auf Ausgang hören. Fallen Sie ist 'listencron ' und annimmt das gleiche Geheimnis wie der generischeBenutzer zurück. + +
+
+
+ Manager senden Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für Indexeoptimiert wurde, die dem Manager nur Tätigkeiten schicken. Fallen Sieist ' sendcron ' und annimmt das gleiche Geheimnis wie der generischeBenutzer zurück. + +
+
+
+ Conf-Datei Secret - Das ist das Geheimnis, oder das Passwort für den Server in die IAX automatisch generierte conf für diesen Server auf anderen Servern benötigt. Der Grenzwert beträgt 20 alphanumerischen Zeichen Bindestrich und Unterstrich akzeptiert. Default is test. + +
+
+
+ Bediener GMT versetzt - Der Unterschied bezüglich der Stunden vonder GMT Zeit eingestellt nicht auf Tageslicht-Sparung-Zeit desBedieners. Rückstellung ist ' - 5 ' + +
+
+
+ VMail Dump Exten - Das Verlängerung Präfix verwendet auf diesemBediener, um Anrufe direkt durch agc zu einem spezifischen voicemailKasten zu schicken. Rückstellung ist ' 85026666666666 ' + +
+
+
+ VICIDIAL ANZEIGE Verlängerung - Die Rückstellung Verlängerung,wenn keines in der Kampagne anwesend ist, Anrufe für VICIDIAL zumSelbstwählen zu schicken. Rückstellung ist ' 8365 ' + +
+
+
+ Rückstellung Kontext - Der Rückstellung dial plan Kontextverwendet für Indexe, die für diesen Bediener funktionieren.Rückstellung ist ' Rückstellung ' + +
+
+
+ System Leistung - die Einstellung dieser Wahl auf Y ermöglicht derProtokollierung von System Leistung Notfall für die Bedienermaschineeinschließlich Anlagen-Belastung, System Prozesse undSternchenführungen im Gebrauch. Rückstellung ist N. + +
+
+
+ Bediener-Maschinenbordbücher - die Einstellung dieser Wahl auf Yermöglicht der Protokollierung aller VICIDIAL bezogenen Indexe zuihren Textmaschinenbordbuchakten. Die Einstellung dieses auf N stopptSchreiben Maschinenbordbücher zu den Akten für diese Prozesse, auchdie Schirmprotokollierung des Sternchens ist untauglich, wenn diesesauf N eingestellt wird, wenn Sternchen begonnen wird. Rückstellungist Y. + +
+
+
+ AGI ausgegeben - die Einstellung dieser Wahl auf KEINE sperrt Ausgangvon allen VICIDIAL bezogenen AGI Indexen. Die Einstellung dieses aufSTDERR schickt das AGI, das zum Sternchen CLI ausgegeben wird. DieEinstellung dieses auf AKTE schickt den Ausgang zu einer Akte imMaschinenbordbuchverzeichnis. Die Einstellung dieses auf BEIDE schicktAusgang zum Sternchen CLI und zu einer Maschinenbordbuchakte.Rückstellung ist AKTE. + +
+
+
+ VICIDIAL Balance Wählen - dieses einstellend, fangen Sie zuY läßt den Bediener Balance Anrufe für Kampagnen in VICIDIAL legenauf, damit das definierte Vorwahlknopfniveau getroffen werden kann,selbst wenn es keine Mittel gibt, die in diese Kampagne auf diesemBediener geloggt werden. Rückstellung ist N. + +
+
+
+ VICIDIAL Balance Rang - In diesem Feld können Sie die Reihenfolge, in der dieser Server ist für das Gleichgewicht Einwahl verwendet werden, wenn Gleichgewicht Einwahl aktivieren gesetzt ist. Der Server mit dem höchsten Rang wird zuerst zu platzieren Balance füllen Anrufe verwendet. Der Standardwert ist 0. + +
+
+
+ VICIDIAL Balance Offlimits - diese Einstellung definiert die ZahlStämmen, um die VICIDIAL Balance nicht zu erlauben, die wählt, um zuverwenden. Z.B. wenn Sie haben, wird 40 maximale vicidial Stämme undBalance offlimits bis 10 eingestellt, die Sie nur in der LageSIND, 30Hauptluftlinien für VICIDIAL Balance das Wählen zu benutzen.Rückstellung ist 0. + +
+
+
+ Aufnahme Web-Link - Diese Einstellung erlaubt es Ihnen, sich über die Standard in der Anzeige der Aufnahme-Link im Admin-Web-Seiten. Der Standardwert ist SERVER_IP. + +
+
+
+ Alternate Recording Bediener IP - Diese Einstellung können Sie eine Server-IP oder andere Rechner-Namen ein, kann anstelle der server_ip in die Links zu den Aufnahmen in der Admin-Web-Seiten. Der Standardwert ist leer. + +
+
+
+ Aktive Server Asterisk - , wenn Asterisk läuft nicht auf diesem Server, oder, wenn VICIDIAL sollten nicht mit diesem Server, oder, wenn es nur mit diesem Server für andere Skripte wie die Be-Hopper Skript ausführen möchten, um dies zu N. Standard ist Y. + +
+
+
+ Aktive Agent Server - Das Setzen dieser Option wird die N-Agenten verhindern, dass auf diesem Server durch die vicidial Anbieters Bildschirm anmelden. Dies ist sehr nützlich, wenn Sie ein Telefon anmelden Lastenausgleich Setup. Der Standardwert ist Y. + +
+
+
+ Conf-Dateien erzeugen - Wenn Sie möchten, dass das System für die automatische Generierung von Sternchen conf-Dateien auf der Grundlage der Telefone Einträge, Träger Einträge und Load-Balancing-Setup in VICIDIAL dann dies auf Y. Der Standardwert ist Y. + +
+
+
+ Rebuild conf Dateien - Wenn Sie wollen, um einen Wiederaufbau der Asterisk conf-Dateien, oder wenn eines der Handys oder Carrier-Einträge geändert haben, dann sollte so eingestellt werden, dass Y. Nach der conf-Dateien wurden erzeugt und Asterisk hat wurden neu geladen, so wird diese Veränderung zu N. Voreingestellt ist Y. + +
+
+
+ Rebuild Music On Hold - Wenn Sie ein Wiederaufbau der Wartemusik-Dateien Gewalt oder wenn die Wartemusik Einträge oder Server-Einträge geändert haben, dann sollte dies auf Y., nachdem die Wartemusik-Dateien wurden synchronisiert und geladen gesetzt dann geändert werden, um N. Standard ist Y. + +
+
+
+ Klingt Update - Wenn Sie einen Scheck von Sound-Dateien auf diesem Server erzwingen wollen, und die zentrale Audio-Shop ist als ein System Einstellung aktiviert ist, wird dieses Feld ermöglicht die Töne Updater auf der nächsten Spitze der Minute ausführen. Jedes Mal, wenn eine Audio-Datei wird von der Web-Oberfläche wird automatisch auf Y für alle Server, Asterisk aktive haben hochgeladen. Der Standardwert ist N. + +
+
+
+ ViciDial Recording-Limit - Dieses Feld ist, wo Sie die maximale Anzahl der Minuten, die Aufzeichnung eines Anrufs von ViciDial eingeleitet werden kann gesetzt. Der Standardwert ist 60 Minuten. + +
+
+
+ Carrier Aktive Logging - Diese Einstellung erlaubt Ihnen, alle hangup Return-Codes für jede ausgehende Liste Wählen log Anrufe, die Sie platzieren. Der Standardwert ist N. + + + + + + +



+ + vicidial_conf_templatesTABELLE

+
+
+ Vorlagen-ID - Dieses Feld muss mindestens 2 Zeichen lang sein und nicht mehr als 15 Zeichen lang sein, kein Leerzeichen. Dies ist die ID, die verwendet werden, um die conf Vorlage des gesamten Systems. + +
+
+
+ Template Name - Dies ist der beschreibende Name der Conf-Datei-Vorlage Eintrag. + +
+
+
+ Template Inhalt - Dieses Feld ist, wo können Sie in den Einstellungen, die von allen Telefonen und-oder Luftfahrtunternehmen, die für die Verwendung dieser Vorlage conf. Bereiche, die nicht in diesem Feld sind: geheim, accountcode, Konto, Benutzernamen und Mailbox. + + + + + +



+ + vicidial_server_carriersTABELLE

+
+
+ Carrier-ID - Dieses Feld muss mindestens 2 Zeichen lang sein und nicht mehr als 15 Zeichen lang sein, kein Leerzeichen. Dies ist die ID, die verwendet werden, um die Träger für diesen speziellen Eintrag im gesamten System. + +
+
+
+ Carrier Name - Dies ist der beschreibende Name des Beförderers Eintrag. + +
+
+
+ Carrier Beschreibung - Dies ist in den Kommentaren des Sternchens conf-Dateien über den dialplan und Account-Einträge setzen. Maximal 255 Zeichen. + +
+
+
+ Anmeldung String - Dieses Feld ist, wo können Sie in die genaue String benötigt, der SIP-oder IAX-Konfigurations-Datei zu registrieren, um den Anbieter. Optional, aber dringend empfohlen, wenn Ihr durch die Registrierung. + +
+
+
+ Vorlagen-ID - Dieses optionale Feld ermöglicht es Ihnen, wählen Sie eine conf-Datei-Vorlage für dieses Luftfahrtunternehmen Eintrag. + +
+
+
+ Konto-Eintrag - Dieses Feld wird verwendet, wenn Sie nicht ausgewählt haben eine Vorlage zu verwenden, und es ist, wo können Sie in den spezifischen Einstellungen, die für diesen Träger. Wenn Sie sich in eingehenden Anrufen von diesem Luftfahrtunternehmen Stamm möchten Sie vielleicht die context = trunkinbound in diesem Bereich, so dass Sie verwenden können, der DID-Handling innerhalb VICIDIAL. + +
+
+
+ Protokoll - Mit diesem Feld können Sie festlegen, das Protokoll zu verwenden für die Carrier-Eintrag. Derzeit werden nur IAX-und SIP unterstützt werden. + +
+
+
+ Global String - Dieses optionale Feld können Sie die Definition einer globalen Variablen, die für die Träger in der dialplan. + +
+
+
+ Dialplan Eintrag - Dieses optionale Feld können Sie festlegen, eine Reihe von dialplan Einträge, die für diesen Träger. + +
+
+
+ Bediener IP - Dies ist der Server, dass dieser besondere Träger wird im Zusammenhang mit. + +
+
+
+ Aktive - Diese legt fest, ob der Träger wird in den automatisch generierten conf-Dateien oder nicht. + + + + + +



+ + KONFERENZTISCH

+
+
+ Konferenz-Zahl - Dieses fangen ist auf, wohin Sie diemeetme Konferenz dialpna Zahl setzen. Es wird auch empfohlen, daß diemeetme Zahl in meetme.conf diese Zahl für jede Eintragungzusammenbringt. Dieses ist für die Konferenzen in astGUIclient undwird für leave-3way-call Funktionalität in VICIDIAL verwendet. + +
+
+
+ Bediener IP - Das Menü, wo Sie den Sternchenbediener vorwählen,daß diese Konferenz eingeschaltet ist. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_TrunksTABELLE

+
+
+ VICIDIAL Bediener-Stämme erlaubt Ihnen, die gehenden Leitungeneinzuschränken, die auf diesem Bediener für die Kampagne benutztwerden, die auf einer Prokampagne Grundlage wählt. Sie haben dieWahl, zum einer spezifischen Zeilenzahl durch nur eine Kampagneverwendet zu werden aufzuheben,, sowie das Lassen dieser Kampagneüber seine reservierten Linien laufen in was Linien geöffnetbleiben, wie, lang an den Gruppenzeilen, die durch vicidial auf diesemBediener benutzt werden, sind kleiner als die Maximum VICIDIALStammeinstellung. Erlaubt Haben nicht irgendwelche dieserAufzeichnungen die Kampagne, die die Linie zuerst wählt, um da vieleLinien zu haben, während sie unter der Maximum VICIDIAL erhalten kannStammeinstellung. + + + + + +



+ + SYSTEM_SETTINGSTABELLE

+
+
+ Gebrauch Nicht-Lateinisch - diese Wahl erlaubt Ihnen, den NetzanzeigeIndex auf Buchstaben des Gebrauches UTF8 zurückzufallen und keinenfilternden Lateinisch-Buchstabefamilie regelmäßigen Ausdruck zu tunoder Formatierung anzuzeigen. Rückstellung ist 0. + +
+
+
+ Webroot schreibbar - diese Einstellung erlaubt Ihnen zu definieren, obTemperatur Akten und Authentisierung Akten in das webroot auf Ihr webserver gelegt werden sollten. Rückstellung ist 1. + +
+
+
+ VICIDIAL Mittel sperren Anzeige - diese fangen wirdverwendet, vorzuwählen auf, wann man einem Mittel zeigt, wann ihrLernabschnitt durch das System, eine Managertätigkeit oder durch einexternes Maß gesperrt worden ist. Die NOT_ACTIVE Einstellung sperrtdie Anzeige auf dem Mittelschirm. Die LIVE_MITTELEinstellung zeigt nurdie untaugliche Anzeige, wenn die Mittel vicidial_auto_callsAufzeichnung entfernt worden ist, wie während ein Kraft Logout oderDringlichkeitslogout an. + +
+
+
+ Erlauben Sie SIPSAK Anzeigen - wenn Satz bis 1, dieses dieTelefontabelle Einstellung richtig arbeiten läßt, schickt derBediener Anzeigen zum SIP Telefon zur Anzeige auf der Telefon LCDAnzeige, wenn er in VICIDIAL geloggt wird. Diese Eigenschaft arbeitetnur mit SIP Telefonen und erfordert sipsak Anwendung, auf das webserver angebracht zu werden. Rückstellung ist 0. + +
+
+
+ Agent API Aktive - Wenn auf 1 gesetzt, wird die Agent-API-Schnittstelle zu funktionieren. Standard ist 0. + +
+
+
+ Admin Haupt-URL - dieses ist die URL oder Web site Adresse, daß Siegehen, wenn Sie an die HAUPTVERBINDUNG an der Oberseite der admin.phpSeite klicken. + +
+
+
+ Ermöglichen Sie Vertreter-Übergangsprotokolldatei - diese Wahlprotokolliert in einer Textprotokolldatei auf dem webserver, jedesmalwenn ein Anruf auf ein Mittel gebracht wird. Rückstellung ist 0,gesperrt. + +
+
+
+ Timeclock End of Day - Diese Einstellung legt fest, wenn alle Benutzer werden automatisch abgemeldet der timeclock System. Läuft nur einmal pro Tag. darf nur 4 Ziffern 2 Digit Stunden und 2 Minuten in Ziffer 24 Stunden Zeit. Standard ist 0000. + +
+
+
+ LetzteTimeclock Auto Logout - Dieses Feld zeigt das Datum der letzten Auto-logout. + +
+
+
+ Agent Screen Header Datum Format - Mit diesem Menü können Sie das Format des Datums, das zeigt sich an der Spitze der VICIDIAL Agent Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Standard-Datum-Format Jahr Monat Tag gefolgt von 24-Stunden-Zeit
+ US_SLASH_24HR 06/24/2008 23:59:59 - USA Datum-Format mit Monat Tag Jahr gefolgt von 24-Stunden-Zeit
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 24-Stunden-Zeit
+ AL_TEXT_24HR JUN 24 23:59:59 - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 24-Stunden-Zeit
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Standard-Datum-Format Jahr Monat Tag gefolgt von 12-Stunden-Zeit
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - USA Datum-Format mit Monat Tag Jahr gefolgt von 12-Stunden-Zeit
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 12-Stunden-Zeit
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 12-Stunden-Zeit
+ +
+
+
+ Agent Screen Kunden Datum Format - Mit diesem Menü können Sie das Format des Kunden Zeitzone Datum, zeigt sich an der Spitze der Customer Information des VICIDIAL Agent Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Standard-Datum-Format Jahr Monat Tag gefolgt von 24-Stunden-Zeit
+ US_SLASH_24HR 06/24/2008 23:59:59 - USA Datum-Format mit Monat Tag Jahr gefolgt von 24-Stunden-Zeit
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 24-Stunden-Zeit
+ AL_TEXT_24HR JUN 24 23:59:59 - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 24-Stunden-Zeit
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Standard-Datum-Format Jahr Monat Tag gefolgt von 12-Stunden-Zeit
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - USA Datum-Format mit Monat Tag Jahr gefolgt von 12-Stunden-Zeit
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europäische Datumsformat mit Tag Monat Jahr gefolgt von 12-Stunden-Zeit
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Text-Format mit Datum abgekürzt Monat Tag gefolgt von 12-Stunden-Zeit
+ +
+
+
+ Agent Screen Kunden Telefon Format - Mit diesem Menü können Sie das Format des Kunden Rufnummer, zeigt sich in den Status des Agenten VICIDIAL Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist US_PARN
+ US_DASH 000-000-0000 - USA Bindestrich getrennt Telefonnummer
+ US_PARN (000)000-0000 - USA Bindestrich getrennt Nummer mit Vorwahl in Klammern
+ MS_NODS 0000000000 - Keine Formatierung
+ UK_DASH 00 0000-0000 - UK Bindestrich getrennt Telefonnummer mit Leerzeichen nach Stadt-Code
+ AU_SPAC 000 000 000 - Australia Leerzeichen getrennt Telefonnummer
+ IT_DASH 0000-000-000 - Italy Bindestrich getrennt Telefonnummer
+ FR_SPAC 00 00 00 00 00 - France Leerzeichen getrennt Telefonnummer
+ +
+
+
+ Agent interface API Access Aktive - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Agent Only Rückruf-Lock-Kampagne - Diese Option legt fest, ob AGENTONLY Rückrufe an der Kampagne, dass der Agent ursprünglich erstellt wurde ihnen im Rahmen gesperrt sind. Sie diesen Wert auf 1 bedeutet, dass der Agent kann nur wählen sie aus der Kampagne wurden sie unter festgelegten, 0 bedeutet, dass der Agent auf sie zugreifen, egal was sie in Aktion protokolliert werden können. Der Standardwert ist 1. + +
+
+
+ Central Sound Control Aktive - Diese Option legt fest, ob der Ton-Synchronisierung System aktiv ist, auf allen Servern. Der Standardwert ist 0 für inaktive. + +
+
+
+ Sounds Web Server - Dies ist die Server-Namen oder die IP-Adresse des Web-Server, der die Sound-Dateien auf diesem System Handling wird, muss dieses Spiel den Server-Namen oder die IP des Rechners, den Sie versuchen, die audio_store.php Webseite über den Zugang oder es wird nicht funktionieren . Standard ist 127.0.0.1. + +
+
+
+ Sounds Web-Verzeichnis - Diese automatisch generierten Verzeichnis-Name wird zufällig vom System als den Ort, dass die Audio-Lager gehalten werden geschaffen. Alle Audio-Dateien befinden sich in diesem Verzeichnis. + +
+
+
+ Aktive Voicemail-Server - Im Multi-Server-Systemen, ist dies der Server, der alle Voicemailboxen behandelt. Dieser Server ist auch, wenn die Einwahl-Anweisungen generiert werden aus hochgeladen werden, die 8168 Aufnahmen. + +
+
+
+ Outbound Auto-Dial Aktive - Mit dieser Option können Sie aktivieren oder deaktivieren Sie ausgehende Auto-Einwahl in VICIDIAL, in diesem Bereich auf 0 werden die Listen und Filter Abschnitte und viele Felder aus der Kampagne Änderung Bildschirme. Manuelle Eingabe Wählfeld wird noch innerhalb der zulässigen Agent-Bildschirm, aber keine Liste Einwahl möglich sein wird. Der Standardwert ist 1 für aktive. + +
+
+
+ Ratio Dial Limit - Dies ist die maximale Grenze der automatische Einwahl-Ebene in die Kampagne Bildschirm. + +
+
+
+ Max-FILL fordert pro Sekunde - Diese Einstellung bestimmt die maximale Anzahl von Anrufen, die sich durch den Automobil-füllen Sie Outbound-Dialing-Skript automatisch für alle Server, pro Sekunde. Muss zwischen 1 und 200. Der Standardwert ist 40. + +
+
+
+ Lassen Sie Custom Dialplan Einträge - Diese Option ermöglicht es Ihnen, benutzerdefinierte dialplan Zeilen in Call-Menüs geben. Der Standardwert ist 0 für inaktive. + +
+
+
+ User Gebiete Aktive - Diese Einstellung erlaubt Ihnen, damit die User Gebiete setttings vom Benutzer Änderung Bildschirm. Diese Funktion wurde hinzugefügt, um für mehr Integration mit einem angepassten vtiger-Installation erlauben, aber können Anwendungen in einer reinen ViciDial System haben könnte. Der Standardwert ist 0 für Behinderte. + +
+
+
+ Aktivieren Zweiten Webform - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Aktivieren TTS Integration - Diese Einstellung ermöglicht es Ihnen zu ermöglichen, Text-to-Speech Integration mit Cepstral. Dies ist derzeit nur für Outbound-Kampagnen Art Umfrage. Der Standardwert ist 0 für Behinderte. + +
+
+
+ QC Funktionen Aktive - Mit dieser Option können Sie aktivieren oder deaktivieren Sie die QC oder Quality Control-Funktionen. Der Standardwert ist 0 für inaktiv. + +
+
+
+ Ermöglichen Sie der QueueMetrics Protokollierung - diese Einstellungerlaubt Ihnen zu definieren, ob VICIDIAL Maschinenbordbucheintragungenin die queue_log Datenbanktabelle einsetzt, wieSternchen-Warteschlangen Tätigkeit. QueueMetrics ist,Geschlossenquellenstatistische Analyse Programm ein alleinstehendes.Sie müssen QueueMetrics haben bereits angebracht und zusammengebaut,bevor Sie dieser Eigenschaft ermöglichen. Rückstellung ist 0. + +
+
+
+ QueueMetrics Bediener IP - dieses ist das IP address der Datenbankfür Ihre QueueMetrics Installation. + +
+
+
+ QueueMetrics Datenbank-Name - dieses ist der Datenbankname für IhreQueueMetrics Datenbank. + +
+
+
+ QueueMetrics Datenbank-LOGON - dieses ist der Benutzername, derverwendet wird, um in Ihrer QueueMetrics Datenbank innen zuprotokollieren. + +
+
+
+ QueueMetrics Datenbank-Kennwort - dieses ist das Kennwort, dasverwendet wird, um in Ihrer QueueMetrics Datenbank innen zuprotokollieren. + +
+
+
+ QueueMetrics URL - Dieses ist die URL oder Web site Adresse, dieverwendet wird, um zu Ihrer QueueMetrics Installation zu kommen. + +
+
+
+ QueueMetrics Maschinenbordbuch Identifikation - dieses ist derBediener Identifikation, den alle VICIDIAL Maschinenbordbücher, diein die QueueMetrics Datenbank einsteigen, als Bezeichner für jedeAufzeichnung benutzen. + +
+
+
+ QueueMetrics EnterQueue stellen voran - dieses fangen wirdverwendet, das Voranstellen von einer der vicidial_list Datenzuzulassen auffängt vor der Telefonnummer des Kunden fürkundengebundene QueueMetrics Berichte auf. Rückstellung ist KEINE,alles nicht zu bevölkern. + +
+
+
+ Aktivieren vtiger Integration - Diese Einstellung erlaubt es Ihnen zu ermöglichen vtiger Integration mit VICIDIAL. Derzeit Links zu vtiger admin und als auch als Nutzer Replikation sind die einzigen Integration Features zur Verfügung stehen. Standard ist 0. + +
+
+
+ Vtiger HE Bediener IP - Das ist die IP-Adresse der Datenbank für Ihre vtiger-Installation. + +
+
+
+ Vtiger Datenbankname - Dies ist die Datenbank-Namen für Ihre Datenbank vtiger. + +
+
+
+ Vtiger Datenbank Login - Das ist die Benutzernamen verwendet, um sich in Ihrem vtiger-Datenbank. + +
+
+
+ Vtiger Passwort für die Datenbank - Dies ist das Passwort für die Anmeldung in Ihrem vtiger-Datenbank. + +
+
+
+ Vtiger URL - Das ist die URL oder Website-Adresse, um an Ihr vtiger-Installation. + + +



+ + VICIDIAL_STATUSESTABELLE

+
+
+ Durch den Gebrauch von Systemstatus, können Sie Status haben, diefür Kampagne und Ingruppe bestehen. Der Status muß 1-6 Buchstabenlang sein, muß die Beschreibung 2-30 Buchstaben lang sein undauswählbar definiert, ob es oben in VICIDIAL als Mitteleinteilungzeigt. Human_answered auffangen wird verwendet, als, denTropfenprozentsatz oder Ungezwungenheit Rate errechnend. Einstellunghuman_answered zu Y verwendet diesen Status, als, diemenschlich-geantworteten Anrufe zählend. Die Kategorie Wahl erlaubtIhnen, einige Status in ein catogy zu gruppieren, das fürstatistische Analyse verwendet werden kann. Außerdem gibt es 5 zusätzliche Einstellungen, die die Art Status:Verkauf, DNC, Kundenkontakt, nicht daran interessiert, nicht praktikabel definieren wird. + + + +



+ + VICIDIAL_STATUS_CATEGORIESTABELLE

+
+
+ Durch den Gebrauch von Systemstatuskategorien, können Sie diezusammen gruppieren Status, um statistische Analyse auf einer GruppeStatus zuzulassen. Die Kategorie Identifikation muß 2-20 Buchstabenlang ohne Räume sein, muß der Name 2-50 Buchstaben lang sein, istdie Beschreibung wahlweise freigestellt und TimeonVDAD Anzeigedefiniert, ob dieser Status einer von bis zu 4 Status ist, die auf derZeit auf VDAD Realzeitreport errechnet werden und angezeigt werdenkönnen. Der Verkauf Kategorie und Dead Lead Kategorie sind auch die von den US-Vorschlag, wenn die Analyse Liste Statistiken. + + + 0) + { + ?> +



+ + VICIDIAL QC-Status-Codes

+
+
+ Das Quality Control QC-System innerhalb VICIDIAL hat seinen eigenen Satz der Status-Codes, getrennt von denen der Call-Handling Funktionen der VICIDIAL. QC statuse Codes muss zwischen 2 und 8 Zeichen lang sein und keine Sonderzeichen wie Leerzeichen oder Doppelpunkt. Die QK-Status-Code Beschreibung muss zwischen 2 und 30 Zeichen lang sein. + + + + +







+







+ DAS ENDE +
+ \n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') + { + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } + } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Zeige Anzahl anrufbarer Anschlüsse -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "LISTEN: $camp_lists
\n"; + echo "STATUSES: $dial_statuses
\n"; + echo "FILTER: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=7111111 view sample script with test variables +###################### + +if ($ADD==7111111) + { + ##### TEST VARIABLES ##### + $vendor_lead_code = 'VENDOR:LEAD;CODE'; + $list_id = 'LISTID'; + $gmt_offset_now = 'GMTOFFSET'; + $phone_code = '1'; + $phone_number = '7275551212'; + $title = 'Mr.'; + $first_name = 'JOHN'; + $middle_initial = 'Q'; + $last_name = 'PUBLIC'; + $address1 = '1234 Main St.'; + $address2 = 'Apt. 3'; + $address3 = 'ADDRESS3'; + $city = 'CHICAGO'; + $state = 'IL'; + $province = 'PROVINCE'; + $postal_code = '33760'; + $country_code = 'USA'; + $gender = 'M'; + $date_of_birth = '1970-01-01'; + $alt_phone = '3125551111'; + $email = 'test@test.com'; + $security_phrase = 'SECUTIRY'; + $comments = 'COMMENTS FIELD'; + $RGfullname = 'JOE AGENT'; + $RGuser = '6666'; + $RGlead_id = '1234'; + $RGcampaign = 'TESTCAMP'; + $RGphone_login = 'gs102'; + $RGgroup = 'TESTCAMP'; + $RGchannel_group = 'TESTCAMP'; + $RGSQLdate = date("Y-m-d H:i:s"); + $RGepoch = date("U"); + $RGuniqueid = '1163095830.4136'; + $RGcustomer_zap_channel = 'Zap/1-1'; + $RGserver_ip = '10.10.10.15'; + $RGSIPexten = 'SIP/gs102'; + $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; + + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_text = stripslashes($row[3]); + + if (eregi("iframe src",$script_text)) + { + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address2); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $RGfullname = eregi_replace(' ','+',$RGfullname); + $RGuser = eregi_replace(' ','+',$RGuser); + $RGlead_id = eregi_replace(' ','+',$RGlead_id); + $RGcampaign = eregi_replace(' ','+',$RGcampaign); + $RGphone_login = eregi_replace(' ','+',$RGphone_login); + $RGgroup = eregi_replace(' ','+',$RGgroup); + $RGchannel_group = eregi_replace(' ','+',$RGchannel_group); + $RGSQLdate = eregi_replace(' ','+',$RGSQLdate); + $RGepoch = eregi_replace(' ','+',$RGepoch); + $RGuniqueid = eregi_replace(' ','+',$RGuniqueid); + $RGcustomer_zap_channel = eregi_replace(' ','+',$RGcustomer_zap_channel); + $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); + $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); + $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + + $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); + $script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); + $script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); + $script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); + $script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); + $script_text = eregi_replace('--A--title--B--',"$title",$script_text); + $script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); + $script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); + $script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); + $script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); + $script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); + $script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); + $script_text = eregi_replace('--A--city--B--',"$city",$script_text); + $script_text = eregi_replace('--A--state--B--',"$state",$script_text); + $script_text = eregi_replace('--A--province--B--',"$province",$script_text); + $script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); + $script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); + $script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); + $script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); + $script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); + $script_text = eregi_replace('--A--email--B--',"$email",$script_text); + $script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); + $script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); + $script_text = eregi_replace('--A--fullname--B--',"$RGfullname",$script_text); + $script_text = eregi_replace('--A--fronter--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--user--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--lead_id--B--',"$RGlead_id",$script_text); + $script_text = eregi_replace('--A--campaign--B--',"$RGcampaign",$script_text); + $script_text = eregi_replace('--A--phone_login--B--',"$RGphone_login",$script_text); + $script_text = eregi_replace('--A--group--B--',"$RGgroup",$script_text); + $script_text = eregi_replace('--A--channel_group--B--',"$RGchannel_group",$script_text); + $script_text = eregi_replace('--A--SQLdate--B--',"$RGSQLdate",$script_text); + $script_text = eregi_replace('--A--epoch--B--',"$RGepoch",$script_text); + $script_text = eregi_replace('--A--uniqueid--B--',"$RGuniqueid",$script_text); + $script_text = eregi_replace('--A--customer_zap_channel--B--',"$RGcustomer_zap_channel",$script_text); + $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); + $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); + $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); + $script_text = eregi_replace("\n","
",$script_text); + + + echo ""; + + echo "Vorbetrachtung-Index: $script_id
\n"; + echo "
\n"; + echo "
$script_name
\n"; + echo "$script_text\n"; + echo "
\n"; + + echo "\n"; + + exit; + } + + +$ADMIN=$PHP_SELF; +require("admin_header.php"); + + + + + +###################################################################################################### +###################################################################################################### +####### 1 series, ADD NEW forms for inserting new records into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=1 display the ADD NEW USER FORM SCREEN +###################### + +if ($ADD=="1") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADDIEREN Sie Einen NEUEN BENUTZER
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "
Benutzer-Zahl: Auto-Generated $NWB#vicidial_users-user$NWE
Benutzer-Zahl: $NWB#vicidial_users-user$NWE
Kennwort:$NWB#vicidial_users-pass$NWE
Voller Name: $NWB#vicidial_users-full_name$NWE
Benutzer-Niveau: $NWB#vicidial_users-user_level$NWE
Benutzer-Gruppe:
Telefon-LOGON: $NWB#vicidial_users-phone_login$NWE
Telefon-Durchlauf: $NWB#vicidial_users-phone_pass$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1A display the COPY USER FORM SCREEN +###################### + +if ($ADD=="1A") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPY BENUTZER\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($LOGuser_level==9) {$levelMAX=10;} + else {$levelMAX=$LOGuser_level;} + + echo "\n"; + echo "\n"; + echo "
Benutzer-Zahl: Auto-Generated $NWB#vicidial_users-user$NWE
Benutzer-Zahl: $NWB#vicidial_users-user$NWE
Kennwort:$NWB#vicidial_users-pass$NWE
Voller Name: $NWB#vicidial_users-full_name$NWE
Source User: $NWB#vicidial_users-user$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=11 display the ADD NEW CAMPAIGN FORM SCREEN +###################### + +if ($ADD==11) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADDIEREN Sie Eine NEUE KAMPAGNE\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
Kampagne Identifikation: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Identifikation: $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Name: $NWB#vicidial_campaigns-campaign_name$NWE
Kampagne Beschreibung: $NWB#vicidial_campaigns-campaign_description$NWE
Aktiv:$NWB#vicidial_campaigns-active$NWE
Park-Verlängerung: $NWB#vicidial_campaigns-park_ext$NWE
Park-Dateiname: $NWB#vicidial_campaigns-park_file_name$NWE
Netz-Form: $NWB#vicidial_campaigns-web_form_address$NWE
Erlauben Sie Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_campaigns-next_agent_call$NWE
Ortsgespräch-Zeit: $NWB#vicidial_campaigns-local_call_time$NWE
Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE
Index: $NWB#vicidial_campaigns-campaign_script$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=12 display the COPY CAMPAIGN FORM SCREEN +###################### + +if ($ADD==12) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
KopierenEine KAMPAGNE\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
Kampagne Identifikation: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Identifikation: $NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Name: $NWB#vicidial_campaigns-campaign_name$NWE
Quellkampagne:$NWB#vicidial_campaigns-campaign_id$NWE
Hinweis: Das Kopieren einer Kampagne kopiert alle Einstellungen aus dem Master-Kampagne, die Sie wählen, aber es wird nicht kopiert eine Kampagne-spezifische DNC, wenn es eine auf dem ausgewählten Master-Kampagne.
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=111 display the ADD NEW LIST FORM SCREEN +###################### + +if ($ADD==111) + { + if ($LOGmodify_lists==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD A NEW LIST\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Liste Identifikation: Auto-Generated $NWB#vicidial_lists-list_id$NWE
Liste Identifikation: (nur Stellen)$NWB#vicidial_lists-list_id$NWE
Liste Name: $NWB#vicidial_lists-list_name$NWE
Liste Beschreibung: $NWB#vicidial_lists-list_description$NWE
Kampagne: $NWB#vicidial_lists-campaign_id$NWE
Aktiv:$NWB#vicidial_lists-active$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=121 display the ADD NUMBER TO DNC FORM SCREEN and add a new number +###################### + +if ($ADD==121) + { + echo "
\n"; + echo ""; + + $campaigns_list = "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where use_campaign_dnc IN('Y','AREACODE') order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + if (strlen($phone_numbers) > 2) + { + $PN = explode("\n",$phone_numbers); + $PNct = count($PN); + $p=0; + while ($p < $PNct) + { + if ( (ereg('delete',$stage)) and ($LOGdelete_from_dnc > 0) ) + { + ##### BEGIN DELETE FROM DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC NICHT gelöscht - Diese Telefonnummer ist nicht in der Do Not Call List: $PN[$p]\n";} + else + { + $stmt="DELETE FROM vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC DELETED: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC NICHT gelöscht - Diese Telefonnummer ist nicht in der Do Not Call List: $PN[$p] $campaign_id\n";} + else + { + $stmt="DELETE FROM vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC DELETED: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END DELETE FROM DNC ##### + } + else + { + ##### BEGIN ADD TO DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC NICHT ADDIERT - diese Telefonnummer ist bereits in benennen nichtListe: $PN[$p]\n";} + else + { + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$PN[$p]');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC FÜGTE HINZU: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN FÜGEN SIE ZAHL DNC HINZU LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC NICHT ADDIERT - diese Telefonnummer ist bereits in benennen nichtListe: $PN[$p] $campaign_id\n";} + else + { + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$PN[$p]','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC FÜGTE HINZU: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN ADD NUMBER TO CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END ADD TO DNC ##### + } + $p++; + } + } + + if ($LOGdelete_from_dnc > 0) + {echo "
Hinzufügen oder Löschen von Rufnummern Von der DNC-LISTE\n";} + else + {echo "
ADD Nummern auf dem DNC-LISTE\n";} + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } + echo "\n"; + echo "
List:
Telefon-Nummern:

(einer Telefonnummer pro Zeile nur)
$NWB#vicidial_list-dnc$NWE
Hinzufügen oder Löschen:
\n"; + } + + +###################### +# ADD=1111 display the ADD NEW INBOUND GROUP SCREEN +###################### + +if ($ADD==1111) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADDIEREN Sie Eine NEUE INBOUND GRUPPE\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
Gruppe Identifikation: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Identifikation: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Name: $NWB#vicidial_inbound_groups-group_name$NWE
Gruppe Farbe: $NWB#vicidial_inbound_groups-group_color$NWE
Aktiv:$NWB#vicidial_inbound_groups-active$NWE
Netz-Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Voicemail: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Fronter Anzeige: $NWB#vicidial_inbound_groups-fronter_display$NWE
Index: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1211 display the COPY INBOUND GROUP SCREEN +###################### + +if ($ADD==1211) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPY INBOUND GRUPPE\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Gruppe Identifikation: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Identifikation: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Name: $NWB#vicidial_inbound_groups-group_name$NWE
Source Gruppe Identifikation: $NWB#vicidial_inbound_groups-group_id$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1311 display the ADD NEW DID SCREEN +###################### + +if ($ADD==1311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
Hinzufügen einer neuen DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
DID-Erweiterung: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
DID-Beschreibung:$NWB#vicidial_inbound_dids-did_description$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1411 display the COPY DID SCREEN +###################### + +if ($ADD==1411) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
COPY DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
DID-Erweiterung: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
DID-Beschreibung:$NWB#vicidial_inbound_dids-did_description$NWE
Quelle DID:$NWB#vicidial_inbound_dids-did_pattern$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1511 display the ADD NEW CALL MENU SCREEN +###################### + +if ($ADD==1511) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD A NEW CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Menü-ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menü-ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPY CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Menü-ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menü-ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
Quelle Menü: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN +###################### + +if ($ADD==11111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + echo "
ADDIEREN SIE NEUE REMOTEMITTEL\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Benutzernummer Anfang: (nur Zahlen, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Zeilenzahl: (nur Zahlen)$NWB#vicidial_remote_agents-number_of_lines$NWE
Bediener IP: $NWB#vicidial_remote_agents-server_ip$NWE
Externe Verlängerung: (dial plan Zahl wählte, um Mittel zu erreichen)$NWB#vicidial_remote_agents-conf_exten$NWE
Status:$NWB#vicidial_remote_agents-status$NWE
Kampagne: $NWB#vicidial_remote_agents-campaign_id$NWE
Inbound Gruppen: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=111111 display the ADD NEW USERS GROUP SCREEN +###################### + +if ($ADD==111111) + { + if ($LOGmodify_usergroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADDIEREN SIE NEUE BENUTZER-GRUPPE\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Gruppe:Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Gruppe: (keine Räume oder Interpunktion)$NWB#vicidial_user_groups-user_group$NWE
Beschreibung: (Beschreibung der Gruppe)$NWB#vicidial_user_groups-group_name$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1111111 display the ADD NEW SCRIPT SCREEN +###################### + +if ($ADD==1111111) + { + if ($LOGmodify_scripts==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD NEW SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Index Identifikation: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
Index Identifikation: (keine Räume oder Interpunktion)$NWB#vicidial_scripts-script_id$NWE
Index-Name: (Titel dem Index)$NWB#vicidial_scripts-script_name$NWE
Index-Anmerkungen: $NWB#vicidial_scripts-script_comments$NWE
Aktiv:$NWB#vicidial_scripts-active$NWE
Index-Text: "; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=11111111 display the ADD NEW FILTER SCREEN +###################### + +if ($ADD==11111111) + { + if ($LOGmodify_filters==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADDIEREN SIE NEUEN FILTER\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Filter Identifikation:Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
Filter Identifikation: (keine Räume oder Interpunktion)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Filter-Name: (kurze Beschreibung des Filter)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Filter-Anmerkungen: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filter Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=111111111 display the ADD NEW CALL TIME SCREEN +###################### + +if ($ADD==111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
Hinzufügen neuer Anrufzeiten\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
Anrufzeit ID: (keine Räume oder Interpunktion)$NWB#vicidial_call_times-call_time_id$NWE
Anrufzeit Name: (Kurze Beschreibung der Anrufzeit)$NWB#vicidial_call_times-call_time_name$NWE
Anrufzeit Kommentare: $NWB#vicidial_call_times-call_time_comments$NWE
Datums und Zeitoptionen erscheinen, wenn die Anrufzeitdefinition angelegt wurde
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1111111111 display the ADD NEW STATE CALL TIME SCREEN +###################### + +if ($ADD==1111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
Hinzufügen neuer landesspezifischer Anrufzeiten\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
Landesspezifische Anrufzeiten ID: (keine Räume oder Interpunktion)$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: (keine Räume oder Interpunktion)$NWB#vicidial_call_times-state_call_time_state$NWE
Landesspezifischer Anrufzeiten Name: (Kurze Beschreibung der Anrufzeit)$NWB#vicidial_call_times-call_time_name$NWE
Landesspezifischer Anrufzeiten Kommentar: $NWB#vicidial_call_times-call_time_comments$NWE
Datums und Zeitoptionen erscheinen, wenn die Anrufzeitdefinition angelegt wurde
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=131111111 display the ADD NEW SHIFT SCREEN +###################### + +if ($ADD==131111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW SHIFT\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift-ID: (keine Räume oder Interpunktion)$NWB#vicidial_shifts-shift_id$NWE
Shift Name: (Kurze Beschreibung der Verlagerung)$NWB#vicidial_shifts-shift_name$NWE
Start Time Shift:\n"; + echo "   Shift End Time:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Shift Länge: $NWB#vicidial_shifts-shift_length$NWE
Shift der Woche:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Sonntag
\n"; + echo "Montag
\n"; + echo "Dienstag
\n"; + echo "Mittwoch
\n"; + echo "Donnerstag
\n"; + echo "Freitag
\n"; + echo "Samstag
\n"; + echo "
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=11111111111 display the ADD NEW PHONE SCREEN +###################### + +if ($ADD==11111111111) + { + if ($LOGast_admin_access==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADDIEREN Sie Ein NEUES TELEFON\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Telefonverlängerung: Auto-Generated $NWB#phones-extension$NWE
Telefonverlängerung: $NWB#phones-extension$NWE
Dial Plan Zahl: (nur Stellen)$NWB#phones-dialplan_number$NWE
Voicemail-Box: (nur Stellen)$NWB#phones-voicemail_id$NWE
Outbound CallerID: (nur Stellen)$NWB#phones-outbound_cid$NWE
Telefon-IP address: (optional)$NWB#phones-phone_ip$NWE
Computer-IP address: (optional)$NWB#phones-computer_ip$NWE
Bediener IP: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Kennwort:$NWB#phones-pass$NWE
Status:$NWB#phones-status$NWE
Aktives Konto: $NWB#phones-active$NWE
Telefon-Art: $NWB#phones-phone_type$NWE
Voller Name: $NWB#phones-fullname$NWE
Firma:$NWB#phones-company$NWE
Abbildung:$NWB#phones-picture$NWE
Klient Protokoll: $NWB#phones-protocol$NWE
Lokales GMT: (Stellen Sie NICHT auf DST ein)$NWB#phones-local_gmt$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=12111111111 display the ADD NEW PHONE ALIAS SCREEN +###################### + +if ($ADD==12111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
Hinzufügen einer neuen TEL ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Alias-ID:$NWB#phones-alias_id$NWE
Alias-Name: $NWB#phones-alias_name$NWE
Telefon Logins Liste: (comma separated)$NWB#phones-logins_list$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=13111111111 display the ADD NEW GROUP ALIAS SCREEN +###################### + +if ($ADD==13111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
Eine neue Gruppe hinzuzufügen ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Alias-ID-Gruppe: $NWB#phones-group_alias_id$NWE
Gruppe Alias-Name: $NWB#phones-group_alias_name$NWE
CallerID Anzahl: $NWB#phones-caller_id_number$NWE
CallerID Name: $NWB#phones-caller_id_name$NWE
Aktiv:
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=111111111111 display the ADD NEW SERVER SCREEN +###################### + +if ($ADD==111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADDIEREN Sie Einen NEUEN BEDIENER\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Bediener Identifikation: $NWB#servers-server_id$NWE
Bediener-Beschreibung: $NWB#servers-server_description$NWE
Bediener-IP address: $NWB#servers-server_ip$NWE
Aktiv:$NWB#servers-active$NWE
Sternchen-Version: $NWB#servers-asterisk_version$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=131111111111 display the ADD NEW CONF TEMPLATE SCREEN +###################### + +if ($ADD==131111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Neue CONF TEMPLATE\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Vorlagen-ID: $NWB#vicidial_conf_templates-template_id$NWE
Template Name: $NWB#vicidial_conf_templates-template_name$NWE
Template-Inhalt: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=141111111111 display the ADD NEW CARRIER SCREEN +###################### + +if ($ADD==141111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW CARRIER\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Carrier-ID: $NWB#vicidial_server_carriers-carrier_id$NWE
Carrier Name: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Beschreibung: $NWB#vicidial_server_carriers-carrier_description$NWE
Anmeldung String: $NWB#vicidial_server_carriers-registration_string$NWE
Vorlagen-ID: $NWB#vicidial_server_carriers-template_id$NWE
Account-Eintrag: $NWB#vicidial_server_carriers-account_entry$NWE
Protokoll: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Eintrag: $NWB#vicidial_server_carriers-dialplan_entry$NWE
Bediener IP: $NWB#vicidial_server_carriers-server_ip$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=151111111111 display the ADD NEW TTS ENTRY SCREEN +###################### + +if ($ADD==151111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW TTS ENTRY\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS-ID: $NWB#vicidial_tts_prompts-tts_id$NWE
TTS Name: $NWB#vicidial_tts_prompts-tts_name$NWE
Aktiv:
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW MUSIC ON HOLD ENTRY\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $NWB#vicidial_music_on_hold-moh_id$NWE
Music On Hold Name: $NWB#vicidial_music_on_hold-moh_name$NWE
Zufälliger Reihenfolge:
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW Voicemail-Box\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Voicemail-ID: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Aktiv:
E-Mail:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN +###################### + +if ($ADD==1111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
ADDIEREN Sie Eine NEUE KONFERENZ\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Konferenz-Zahl: (nur Stellen)$NWB#conferences-conf_exten$NWE
Bediener IP: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=11111111111111 display the ADD NEW VICIDIAL CONFERENCE SCREEN +###################### + +if ($ADD==11111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
ADD A NEW VICIDIAL CONFERENCE\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Konferenz-Zahl: (nur Stellen)$NWB#conferences-conf_exten$NWE
Bediener IP: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + +###################################################################################################### +###################################################################################################### +####### 2 series, validates form data and inserts the new record into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=2 adds the new user to the system +###################### + +if ($ADD=="2") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
BENUTZER NICHT ADDIERT - es gibt bereits einen Benutzer im System mitdieser Benutzerzahl\n";} + else + { + if (ereg('AUTOGENERA',$user)) + { + $user = 'AUTOGENERA'; + } + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + { + echo "
BENUTZER NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
voller Name und Kennwort müssen mindestens 2 Buchstaben lang sein\n"; + echo "
Sie müssen sich für eine Benutzergruppe\n"; + } + else + { + if (ereg('AUTOGENERA',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + echo "
BENUTZER FÜGTE HINZU: $user\n"; + + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass) values('$user','$pass','$full_name','$user_level','$user_group','$phone_login','$phone_pass');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='ADD', record_id='$user', event_code='ADMIN ADD USER', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Aktive'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + } + } + + $ADD=3; + } + +###################### +# ADD=2A adds the copied new user to the system +###################### + +if ($ADD=="2A") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
BENUTZER NICHT ADDIERT - es gibt bereits einen Benutzer im System mitdieser Benutzerzahl\n";} + else + { + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + { + echo "
BENUTZER NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
voller Name und Kennwort müssen mindestens 2 Buchstaben lang sein\n"; + echo "\n"; + } + else + { + if (ereg('AUTOGEN',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) SELECT \"$user\",campaign_id,campaign_rank,campaign_weight,\"0\" from vicidial_campaign_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='COPY', record_id='$user', event_code='ADMIN COPY BENUTZER', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Aktive'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + echo "
USER COPIED: $user copied from $source_user_id\n"; + echo "

\n"; + echo "Click here to go to the user record\n"; + echo "

\n"; + + } + } + exit; + } + +###################### +# ADD=21 adds the new campaign to the system +###################### + +if ($ADD==21) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
KAMPAGNE NICHT ADDIERT - es gibt bereits eine Kampagne im System mitdieser Identifikation\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + { + echo "
KAMPAGNE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; + echo "
Kampagne Name muß zwischen 6 und 40 Buchstaben lang sein\n"; + } + else + { + echo "
KAMPAGNE ADDIERT: $campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,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,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$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','$SQLdate','Y','DISABLED','','','');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=20 adds copied new campaign to the system +###################### + +if ($ADD==20) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
KAMPAGNE NICHT ADDIERT - es gibt bereits eine Kampagne im System mitdieser Identifikation\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
KAMPAGNE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; + echo "
source Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=22 adds the new campaign status to the system +###################### + +if ($ADD==22) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
KAMPAGNE STATUS NICHT ADDIERT - es gibt bereits einen Kampagne-Statusim System mit diesem Namen\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
KAMPAGNE STATUS NICHT ADDIERT - es gibt bereits einen Globalstatus imSystem mit diesem Namen\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
KAMPAGNE STATUS NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; + echo "
Statusname muß zwischen 2 und 30 Buchstaben lang sein\n"; + } + else + { + echo "
KAMPAGNE STATUS ADDIERT: $campaign_id - $status\n"; + + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE STATUS', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $SUB=22; + $ADD=31; + } + + +###################### +# ADD=23 adds the new campaign hotkey to the system +###################### + +if ($ADD==23) + { + $HKstatus_data = explode('-----',$HKstatus); + $status = $HKstatus_data[0]; + $status_name = $HKstatus_data[1]; + + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_hotkeys where campaign_id='$campaign_id' and hotkey='$hotkey' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
KAMPAGNE HOT KEY NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; + } + else + { + echo "
KAMPAGNE HOT KEY FÜGTE HINZU: $campaign_id - $status - $hotkey\n"; + + $stmt="INSERT INTO vicidial_campaign_hotkeys values('$status','$hotkey','$status_name','$selectable','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE HOTKEY', event_sql=\"$SQL_log\", event_notes='Status:$status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=23; + $ADD=31; + } + + +###################### +# ADD=25 adds the new campaign lead recycle entry to the system +###################### + +if ($ADD==25) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
KAMPAGNE LEITUNG BEREITEN NICHT HINZUGEFÜGT auf - es gibt bereitseine Führenwiederverwertung für diese Kampagne mit diesem Status\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
KAMPAGNE LEITUNG BEREITEN NICHT HINZUGEFÜGT auf - gehen Sie bittezurück und betrachten Sie die Daten, die Sie eingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + echo "
Versuch verzögert muß mindestens 120 Sekunden sein und weniger als 43.200 Sekunden oder 12 Stunden\n"; + echo "
maximale Versuche müssen von 1 bis 10 sein\n"; + } + else + { + echo "
KAMPAGNE LEITUNG BEREITEN HINZUGEFÜGT AUF: $campaign_id - $status - $attempt_delay\n"; + + $stmt="INSERT INTO vicidial_lead_recycle(campaign_id,status,attempt_delay,attempt_maximum,active) values('$campaign_id','$status','$attempt_delay','$attempt_maximum','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=25; + $ADD=31; + } + + +###################### +# ADD=26 adds the new auto alt dial status to the campaign +###################### + +if ($ADD==26) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT ADDIERT - es gibt bereits eine Eintragung für diese Kampagne mit diesem Status\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + } + else + { + echo "
SELBSTALT VORWAHLKNOPF-STATUS FÜGTE HINZU: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $auto_alt_dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIAL', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE ALT DIAL', event_sql=\"$SQL_log\", event_notes='Status:$auto_alt_dial_statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=26; + $ADD=31; + } + + +###################### +# ADD=27 adds the new campaign agent pause code entry to the system +###################### + +if ($ADD==27) + { + echo ""; + $stmt="SELECT count(*) from vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MITTEL-PAUSE CODE NICHT ADDIERT - es gibt bereits eine Eintragung für diese Kampagne mit diesem PauseCode\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
MITTEL-PAUSE CODE NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; + } + else + { + echo "
MITTEL-PAUSE CODE FÜGTE HINZU: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="INSERT INTO vicidial_pause_codes(campaign_id,pause_code,pause_code_name,billable) values('$campaign_id','$pause_code','$pause_code_name','$billable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Pause Code: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=27; + $ADD=31; + } + + +###################### +# ADD=28 adds new status to the campaign dial statuses +###################### + +if ($ADD==28) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ADDIERT - es gibt bereits eine Eintragung für diese Kampagne mit diesem Status\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + } + else + { + echo "
KAMPAGNE VORWAHLKNOPF-STATUS ADDIERT: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Status:$statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + #$SUB=28; + $ADD=31; + } + + +###################### +# ADD=211 adds the new list to the system +###################### + +if ($ADD==211) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
LISTE NICHT ADDIERT - es gibt bereits eine Liste im System mit dieserIdentifikation\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + { + echo "
LISTE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Liste Identifikation muß zwischen 2 und 8 Buchstaben lang sein\n"; + echo "
Liste Name muß mindestens 2 Buchstaben lang sein\n"; + echo "
Liste Identifikation must be greater than 100\n"; + } + else + { + echo "
LISTE ADDIERT: $list_id\n"; + + $stmt="INSERT INTO vicidial_lists (list_id,list_name,campaign_id,active,list_description,list_changedate) values('$list_id','$list_name','$campaign_id','$active','$list_description','$SQLdate');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='ADD', record_id='$list_id', event_code='ADMIN ADD LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311; + } + + + +###################### +# ADD=2111 adds the new inbound group to the system +###################### + +if ($ADD==2111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GRUPPE NICHT ADDIERT - es gibt bereits eine Gruppe im System mitdieser Identifikation\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Gruppe Identifikation muß zwischen 2 und 20 Buchstaben lang sein undNr. enthalten ' -+'.\n"; + echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; + } + 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,web_form_address_two,start_call_url,dispo_call_url) 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); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; + $rslt=mysql_query($stmtA, $link); + + echo "
GRUPPE FÜGTE HINZU: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='ADD', record_id='$group_id', event_code='ADMIN ADD INBOUND GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2011 adds copied inbound group to the system +###################### + +if ($ADD==2011) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GRUPPE NICHT ADDIERT - es gibt bereits eine Gruppe im System mitdieser Identifikation\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Gruppe Identifikation muß zwischen 2 und 20 Buchstaben lang sein undNr. enthalten ' -+'.\n"; + echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; + } + 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,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); + + echo "
GRUPPE FÜGTE HINZU: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN COPY INBOUND GRUPPE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2311 adds the new did to the system +###################### + +if ($ADD==2311) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NICHT HINZUGEFÜGT - Es gibt bereits eine DID in das System mit dieser ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NICHT HINZUGEFÜGT - Es gibt bereits eine DID in das System mit dieser Erweiterung\n";} + else + { + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + { + echo "
NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern $did_description - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='ADD', record_id='$did_id', event_code='ADMIN ADD DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3311; + } + + +###################### +# ADD=2411 adds copied did to the system +###################### + +if ($ADD==2411) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NICHT HINZUGEFÜGT - Es gibt bereits eine DID in das System mit dieser Erweiterung\n";} + else + { + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + { + echo "
NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='COPY', record_id='$did_id', event_code='ADMIN COPY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3311; + } + + +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU NOT ADDED - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
CALL MENU NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Call Menü-ID muss zwischen 2 und 50 Zeichen lang sein und enthalten keine ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
CALL MENU ADDED: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU NOT ADDED - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
CALL MENU NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Call Menü-ID muss zwischen 2 und 50 Zeichen lang sein und enthalten keine ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CALL MENU ADDED: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=21111 adds new remote agents to the system +###################### + +if ($ADD==21111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_remote_agents where server_ip='$server_ip' and user_start='$user_start';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
REMOTEMITTEL NICHT ADDIERT - es gibt bereits eineRemotemitteleintragung beginnend mit diesem userID\n";} + else + { + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
REMOTEMITTEL NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
Benutzernummer Anfang und externe Verlängerung müssen mindestens 2Buchstaben lang sein\n"; + } + else + { + $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; + $rslt=mysql_query($stmt, $link); + + echo "
REMOTEMITTEL FÜGTEN HINZU: $user_start\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='ADD', record_id='$user_start', event_code='ADMIN ADD REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000; + } + +###################### +# ADD=211111 adds new user group to the system +###################### + +if ($ADD==211111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
BENUTZER-GRUPPE NICHT ADDIERT - es gibt bereits eine BenutzergruppeEintragung mit diesem Namen\n";} + else + { + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
BENUTZER-GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
Gruppe Name und Beschreibung müssen mindestens 2 Buchstaben langsein\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; + $rslt=mysql_query($stmt, $link); + + echo "
BENUTZER-GRUPPE ADDIERT: $user_group\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='ADD', record_id='$user_group', event_code='ADMIN ADDIEREN SIE BENUTZER-GRUPPE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + $ADD=100000; + } + +###################### +# ADD=2111111 adds new script to the system +###################### + +if ($ADD==2111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
INDEX NICHT ADDIERT - es gibt bereits eine Indexeintragung mit diesem Namen\n";} + else + { + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
INDEX NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Indexname, -beschreibung und -text müssen mindestens 2 Buchstabenlang sein\n"; + } + else + { + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + echo "
INDEX FÜGTE HINZU: $script_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INDEXE', event_type='ADD', record_id='$script_id', event_code='ADMIN ADDIEREN SIE INDEX', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=1000000; + } + + +###################### +# ADD=21111111 adds new filter to the system +###################### + +if ($ADD==21111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
FILTER NICHT ADDIERT - es gibt bereits eine Filtereintragung mitdieser Identifikation\n";} + else + { + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTER NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Filtern Sie Identifikation, Namen und SQL muß mindestens 2 Buchstabenlang sein\n"; + } + 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='" . mysql_real_escape_string($lead_filter_sql) . "';"; + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|";} + echo "
FILTER ADDIERT: $lead_filter_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTER', event_type='ADD', record_id='$lead_filter_id', event_code='ADMIN ADDIEREN SIE FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000000; + } + + +###################### +# ADD=211111111 adds new call time definition to the system +###################### + +if ($ADD==211111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Anrufzeit Definition nicht hinzugefügt - Es existiert bereits ein Anrufzeiteintrag mit dieser ID\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
Anrufzeit Definition nicht hinzugefügt - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID und Name müssen mindestens 2 Zeichen Länge haben\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
Anrufzeit hinzugefügt: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111; + } + + +###################### +# ADD=2111111111 adds new state call time definition to the system +###################### + +if ($ADD==2111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Landesspezifische Anrufzeitdefinition nicht hinzugefügt - Es existiert bereits ein Anrufzeiteintrag mit dieser ID\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
Landesspezifische Anrufzeitdefinition nicht hinzugefügt - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Landesspezifische Anrufzeit ID, Name und Land müssen mindestens 2 Zeichen Länge haben\n"; + } + else + { + $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
landesspezifische Anrufzeiten hinzugefügt: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES_STATE', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111; + } + + +###################### +# ADD=231111111 adds new shift definition to the system +###################### + +if ($ADD==231111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
UMSCHALT DEFINITION NICHT HINZUGEFÜGT - Es gibt bereits eine Verschiebung Eintrag mit dieser ID\n";} + else + { + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
UMSCHALT DEFINITION NICHT HINZUGEFÜGT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Shift-ID und Name muss mindestens 2 Zeichen lang sein\n"; + echo "
Start Time Shift muss aus 4 Ziffern in der Länge und eine gültige Uhrzeit\n"; + echo "
Shift Länge muss mindestens 5 Zeichen lang sein und 24 Stunden oder weniger\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
UMSCHALT ANGEFÜGT:$shift_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='ADD', record_id='$shift_id', event_code='ADMIN ADD SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111; + } + + +###################### +# ADD=21111111111 adds new phone to the system +###################### + +if ($ADD==21111111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TELEFON NICHT ADDIERT - es gibt bereits ein Telefon im System mitdiesem extension/server\n";} + else + { + $stmt="SELECT count(*) from phones where login='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - Es gibt bereits eine Telefonnummer in das System mit diesem Login\n";} + else + { + $stmt="SELECT count(*) from phones_alias where alias_id='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - Es gibt bereits eine Telefon-Alias in das System mit diesem Login\n";} + else + { + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a Voicemail-ID in the system with this ID\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
TELEFON NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Die folgenden Felder müssen Daten: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
TELEFON FÜGTE HINZU\n"; + + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + } + $ADD=31111111111; + } + + +###################### +# ADD=22111111111 adds new phone alias to the system +###################### + +if ($ADD==22111111111) + { + echo ""; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TEL ALIAS NOT ADDED - Es gibt bereits eine Telefon-Alias in das System mit dieser ID\n";} + else + { + $stmt="SELECT count(*) from phones where login='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TEL ALIAS NOT ADDED - Es gibt bereits eine Telefon-Login in das System mit dieser ID\n";} + else + { + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
TEL ALIAS NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
TEL ALIAS ADDED\n"; + + $stmt="INSERT INTO phones_alias (alias_id,alias_name,logins_list) values('$alias_id','$alias_name','$logins_list');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='ADD', record_id='$alias_id', event_code='ADMIN ADD TEL ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=32111111111; + } + + +###################### +# ADD=23111111111 adds new group alias to the system +###################### + +if ($ADD==23111111111) + { + echo ""; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP ALIAS NOT ADDED - Es gibt bereits eine Telefon-Alias in das System mit dieser ID\n";} + else + { + if (preg_match("/AGENT_PHONE|CUSTOMER|CAMPAIGN|NONE/",$group_alias_id)) + {echo "
GROUP ALIAS NOT ADDED - Sie können keine reservierten Wörter in der Gruppe Aliase\n";} + else + { + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
GROUP ALIAS NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
GROUP ALIAS ADDED\n"; + + $stmt="INSERT INTO groups_alias (group_alias_id,group_alias_name,caller_id_number,caller_id_name,active) values('$group_alias_id','$group_alias_name','$caller_id_number','$caller_id_name','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='ADD', record_id='$group_alias_id', event_code='ADMIN ADD GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=33111111111; + } + + +###################### +# ADD=211111111111 adds new server to the system +###################### + +if ($ADD==211111111111) + { + echo ""; + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
BEDIENERNOT ADDED - there is already a server in the system with this ID\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
BEDIENERNOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
BEDIENERADDED\n"; + + $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='ADD', record_id='$server_id', event_code='ADMIN ADD SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111111; + } + + +###################### +# ADD=221111111111 adds the new vicidial server trunk record to the system +###################### + +if ($ADD==221111111111) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - die Zahl vicidial Stämmen ist zu hoch: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - es gibt bereits eine Bediener-Stamm Aufzeichnung für diese Kampagne\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne muß zwischen 3 und 8 Buchstaben lang sein\n"; + echo "
server_ip verzögert muß mindestens 7 Buchstaben sein\n"; + echo "
Stämme müssen eine Stelle von 0 bis 9999 sein\n"; + } + else + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ ADDIERT: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + $stmt="INSERT INTO vicidial_server_trunks(server_ip,campaign_id,dedicated_trunks,trunk_restriction) values('$server_ip','$campaign_id','$dedicated_trunks','$trunk_restriction');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS_TRUNK', event_type='ADD', record_id='$server_ip', event_code='ADMIN ADD BEDIENERTRUNK', event_sql=\"$SQL_log\", event_notes='campaign: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=311111111111; + } + + +###################### +# ADD=231111111111 adds new conf template to the system +###################### + +if ($ADD==231111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CONF-Vorlagen nicht ADDED - Es gibt bereits eine Vorlage in das System mit dieser ID\n";} + else + { + if (strlen($template_id) < 2) + {echo "
CONF-Vorlagen nicht ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
CONF TEMPLATE ADDED\n"; + + $stmt="INSERT INTO vicidial_conf_templates (template_id,template_name,template_contents) values('$template_id','$template_name','$template_contents');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='ADD', record_id='$template_id', event_code='ADMIN ADD CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111; + } + + +###################### +# ADD=241111111111 adds new server carrier to the system +###################### + +if ($ADD==241111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CARRIER NOT ADDED - Es gibt bereits ein Luftfahrtunternehmen in das System mit dieser ID\n";} + else + { + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + {echo "
CARRIER NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
CARRIER ADDED\n"; + + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='ADD', record_id='$carrier_id', event_code='ADMIN ADD CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111; + } + + +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS Eintrag nicht ADDED - Es gibt bereits eine tts Eintrag in das System mit dieser ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS Eintrag nicht ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
TTS Entry Hinzugefügt\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MUSIC ON HOLD Eintrag nicht ADDED - Es gibt bereits eine moh Eintrag in das System mit dieser ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD Eintrag nicht ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
MUSIC ON HOLD Entry Hinzugefügt\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Voicemail-Box NOT ADDED - Es gibt bereits eine Voicemail-Box im System mit dieser ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Voicemail-Box NOT ADDED - gibt es bereits eine Telefonnummer in das System mit dieser Voicemail-ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
Voicemail-Box NOT ADDED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
Voicemail-Box ADDED\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + +###################### +# ADD=2111111111111 adds new conference to the system +###################### + +if ($ADD==2111111111111) + { + echo ""; + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
KONFERENZ NICHT ADDIERT - es gibt bereits eine Konferenz im System mitdieser Identifikation und Bediener\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
KONFERENZ NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + echo "
KONFERENZ FÜGTE HINZU\n"; + + $stmt="INSERT INTO conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111111; + } + + +###################### +# ADD=21111111111111 adds new vicidial conference to the system +###################### + +if ($ADD==21111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL KONFERENZ NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + echo "
VICIDIAL KONFERENZ FÜGTE HINZU\n"; + + $stmt="INSERT INTO vicidial_conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=31111111111111; + } + + +###################### +# ADD=221111111111111 adds the new system status to the system +###################### + +if ($ADD==221111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SYSTEMSTATUS NICHT ADDIERT - there is already a campaign-status in the system with this name: $row[0]\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SYSTEMSTATUS NICHT ADDIERT - there is already a global-status in the system with this name\n";} + else + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
SYSTEMSTATUS NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 8 Buchstaben lang sein\n"; + echo "
Statusname muß zwischen 2 und 30 Buchstaben lang sein\n"; + } + else + { + echo "
SYSTEMSTATUS ADDIERT: $status_name - $status\n"; + + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='ADD', record_id='$status', event_code='ADMIN ADD SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=321111111111111; + } + + +###################### +# ADD=231111111111111 adds the new status category to the system +###################### + +if ($ADD==231111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
STATUS-KATEGORIE NICHT ADDIERT - es gibt bereits eine Statuskategorie im System mit dieserIdentifikation: $row[0]\n";} + else + { + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + { + echo "
STATUS-KATEGORIE NICHT ADDIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Identifikation muß zwischen 2 und 20 Buchstaben lang sein\n"; + echo "
Namensname muß zwischen 2 und 50 Buchstaben lang sein\n"; + } + else + { + echo "
STATUS KATEGORIE ADDED: $vsc_id - $vsc_name\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
STÖRUNG: Es gibt bereits 4 den Status-Kategorienkatalog zurTimeOnVDAD Anzeige\n"; + } + + $stmt="INSERT INTO vicidial_status_categories (vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category) values('$vsc_id','$vsc_name','$vsc_description','$tovdad_display','$sale_category','$dead_lead_category');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='ADD', record_id='$vsc_id', event_code='ADMIN ADD STATUS KATEGORIE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111111; + } + + + +###################### +# ADD=241111111111111 adds the new qc status code to the system +###################### + +if ($ADD==241111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
QK-Status-Code nicht ADDED- Es gibt bereits eine qc Status Code in das System mit diesem Namen: $row[0]\n";} + else + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QK-Status-Code nicht ADDED- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Code muss zwischen 1 und 8 Zeichen lang sein\n"; + echo "
Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; + } + else + { + echo "
QK-Status-Code hinzuzufügen:$code_name - $code\n"; + + $stmt="INSERT INTO vicidial_qc_codes (code,code_name) values('$code','$code_name');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCSTATUSES', event_type='ADD', record_id='$code', event_code='ADMIN ADD QC STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111111; + } + + + +###################################################################################################### +###################################################################################################### +####### 4 series, record modifications submitted and DB is modified, then on to 3 series forms below +###################################################################################################### +###################################################################################################### + + + +###################### +# ADD=4A submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4A") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
BENUTZER ÄNDERTE - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Aktive'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4B submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4B") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
BENUTZER ÄNDERTE - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Aktive'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4 submit user modifications to the system +###################### + +if ($ADD==4) + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang\n"; + } + else + { + echo "
BENUTZER ÄNDERTE: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Aktive'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3; # go to user modification below + } + +###################### +# ADD=41 submit campaign modifications to the system - DETAIL +###################### + +if ($ADD==41) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $survey_camp_record_dir = '/home/survey'; + $survey_dtmf_digits = '1238'; + $survey_first_audio_file = 'US_pol_survey_hello'; + $survey_method = 'AGENT_XFER'; + $survey_ni_audio_file = ''; + $survey_ni_digit = '8'; + $survey_ni_status = 'NI'; + $survey_no_response_action = 'OPTIN'; + $survey_opt_in_audio_file = 'US_pol_survey_transfer'; + $survey_response_digit_map = '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|'; + $survey_xfer_exten = '8300'; + $voicemail_ext = ''; + $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
ACTIVE LISTEN CHANGED"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTEN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
KAMPAGNE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
der Kampagne Name muß mindestens 6 Buchstaben lang sein\n"; + echo "
|$campaign_name|$active|\n"; + } + else + { + echo "
KAMPAGNE ÄNDERTE: $campaign_id\n"; + + if ( ($dial_method != 'MANUAL') and ($dial_method != 'INBOUND_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; + } + else + { + if ($dial_level_override > 0) + { + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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', $adlSQL 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',drop_action='$drop_action',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',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + if ($reset_hopper == 'Y') + { + echo "
ZURÜCKSTELLEN DES KAMPAGNE LEITUNG ZUFUHRBEHÄLTERS\n"; + echo "
- Wartezeit 1 Minute, bevor folgende Nummer gewählt wird\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=42 modify/delete campaign status in the system +###################### + +if ($ADD==42) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
KAMPAGNE STATUS NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; + echo "
die Kampagne Kennzeichnung muß mindestens 2 Buchstaben lang sein\n"; + echo "
der Kampagne Status muß mindestens Buchstaben 1 lang sein\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
KUNDENSPEZIFISCHER KAMPAGNE STATUS GELÖSCHT: $campaign_id - $status\n"; + + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
KUNDENSPEZIFISCHER KAMPAGNE STATUS GEÄNDERT: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=43 delete campaign hotkey in the system +###################### + +if ($ADD==43) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
KAMPAGNE HOT KEY NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; + echo "
die Kampagne Kennzeichnung muß mindestens 2 Buchstaben lang sein\n"; + echo "
der Kampagne Status muß mindestens Buchstaben 1 lang sein\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
KUNDENSPEZIFISCHE KAMPAGNE HOT KEY LÖSCHTE: $campaign_id - $status - $hotkey\n"; + + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Status:$status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=44 submit campaign modifications to the system - Basic View +###################### + +if ($ADD==44) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $voicemail_ext = ''; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
ACTIVE LISTEN CHANGED"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTEN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
KAMPAGNE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
der Kampagne Name muß mindestens 6 Buchstaben lang sein\n"; + } + else + { + echo "
KAMPAGNE ÄNDERTE: $campaign_id\n"; + + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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',hopper_level='$hopper_level', $adlSQL lead_filter_id='$lead_filter_id',dial_method='$dial_method',adaptive_intensity='$adaptive_intensity',campaign_changedate='$SQLdate',list_order_mix='$list_order_mix' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_hopper == 'Y') + { + echo "
ZURÜCKSTELLEN DES KAMPAGNE LEITUNG ZUFUHRBEHÄLTERS\n"; + echo "
- Wartezeit 1 Minute, bevor folgende Nummer gewählt wird\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=34; # go to campaign modification form below + } + + +###################### +# ADD=45 modify campaign lead recycle in the system +###################### + +if ($ADD==45) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + echo "
Versuch verzögert muß mindestens 120 Sekunden sein und weniger als 43.200 Sekunden oder 12 Stunden\n"; + echo "
maximale Versuche müssen von 1 bis 10 sein\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=47 modify agent pause code in the system +###################### + +if ($ADD==47) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
MITTEL-PAUSE CODE NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_Code-Name muss zwischen 2 und 30 Zeichen lang sein\n"; + } + else + { + echo "
MITTELPAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=48 modify campaign QC settings in the system +###################### +if ($ADD==48) + { + if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
QK-EINSTELLUNGEN NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
QK-EINSTELLUNGEN MODIFIZIERT: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=40A modify campaign survey settings in the system +###################### + +if ($ADD=='40A') + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
UMFRAGE EINSTELLUNGEN NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + } + else + { + echo "
UMFRAGE EINSTELLUNGEN MODIFIZIERT: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=49 modify campaign list mix in the system +###################### + +if ($ADD==49) + { + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### + if ($stage=='MODIFY') + { + echo ""; + + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; + + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) + { + echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $list_id\n"; + } + } + + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
LISTE MISCHUNG NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
LISTE MISCHUNG NICHT GEÄNDERT: Sie können nicht die letzte list_id Eintragung aus einer ListeMischung löschen\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG ÄNDERTE: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
LISTE MISCHUNG NICHT ADDIERT- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
LISTE MISCHUNG NICHT ADDIERT- Es gibt bereits eine Liste Mischung mit dieser Identifikation imSystem\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADDIEREN SIE KAMPAGNE LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG ADDIERT:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
LISTE MISCHUNG NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG LÖSCHTE:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
LISTE MISCHUNG NICHT AKTIVIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='US-Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE MISCHUNG AKTIVIERTE: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=411 submit list modifications to the system +###################### + +if ($ADD==411) + { + if ($LOGmodify_lists==1) + { + echo ""; + + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + { + echo "
LISTE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n"; + echo "
Liste Name muß mindestens 2 Buchstaben lang sein\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
LISTE ÄNDERTE: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_list == 'Y') + { + echo "
ZURÜCKSTELLEN VON VON LIST-CALLED-STATUS\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
ENTFERNEN DER LISTE ZUFUHRBEHÄLTER-LEITUNGEN VOM ALTEN KAMPAGNEZUFUHRBEHÄLTER ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311; # go to list modification form below + } + + +###################### +# ADD=4111 modify in-group info in the system +###################### + +if ($ADD==4111) + { + if ($LOGmodify_ingroups==1) + { + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) + { + echo "
GRUPPE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n"; + echo "
Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
GRUPPE GEÄNDERT: $group_id\n"; + + $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_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3111; # go to in-group modification form below + } + + +###################### +# ADD=4311 modify did info in the system +###################### + +if ($ADD==4311) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
DID VERÄNDERTE: $did_pattern\n"; + + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3311; # go to did modification form below + } + + +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
CALL MENU NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
CALL MENU MODIFIED: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + if ($LOGmodify_remoteagents==1) + { + echo ""; + + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
REMOTEMITTEL NICHT GEÄNDERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n"; + echo "
Benutzernummer Anfang und externe Verlängerung müssen mindestens 2Buchstaben lang sein\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
REMOTEMITTEL GEÄNDERT\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below + } + + +###################### +# ADD=411111 modify user group info in the system +###################### + +if ($ADD==411111) + { + if ($LOGmodify_usergroups==1) + { + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
BENUTZER-GRUPPE NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben\n"; + echo "
Gruppe Name und Beschreibung müssen mindestens 2 Buchstaben langsein\n"; + } + else + { + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); + + echo "
BENUTZER-GRUPPE GEÄNDERT\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY User Group', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111; # go to user group modification form below + } + + +###################### +# ADD=4111111 modify script in the system +###################### + +if ($ADD==4111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
INDEX NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Indexname, -beschreibung und -text müssen mindestens 2 Buchstabenlang sein\n"; + } + else + { + $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); + + echo "
INDEX ÄNDERTE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INDEXE', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3111111; # go to script modification form below + } + + +###################### +# ADD=41111111 modify filter in the system +###################### + +if ($ADD==41111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTER NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Filtern Sie Identifikation, Namen und SQL muß mindestens 2 Buchstabenlang sein\n"; + } + else + { + $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); + + echo "
FILTER GEÄNDERT\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTER', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31111111; # go to filter modification form below + } + + +###################### +# ADD=411111111 modify call time in the system +###################### + +if ($ADD==411111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
Anrufzeit nicht geändert - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID und Name müssen mindestens 2 Zeichen Länge haben\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
Anrufzeit geändert\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111111; # go to call time modification form below + } + + +###################### +# ADD=4111111111 modify state call time in the system +###################### + +if ($ADD==4111111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
Landesspezifische Anrufzeit nicht geändert - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Landesspezifische Anrufzeit ID, Name und Land müssen mindestens 2 Zeichen Länge haben\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
Landesspezifische Anrufzeit geändert\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below + } + + +###################### +# ADD=431111111 modify shift in the system +###################### + +if ($ADD==431111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
SHIFT DEFINITION NOT MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Shift-ID und Name muss mindestens 2 Zeichen lang sein\n"; + echo "
Start Time Shift muss aus 4 Ziffern in der Länge und eine gültige Uhrzeit\n"; + echo "
Shift Länge muss mindestens 5 Zeichen lang sein und 24 Stunden oder weniger\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
UMSCHALT VERÄNDERTE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=331111111; # go to shift modification form below + } + + +###################### +# ADD=41111111111 modify phone record in the system +###################### + +if ($ADD==41111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
TELEFON NICHT GEÄNDERT - es gibt bereits ein Telefon im System mitdiesem extension/server\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
TELEFON NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + echo "
TELEFON GEÄNDERT: $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='" . 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', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN ÄNDERN SIE TELEFON', event_sql=\"$SQL_log\", event_notes='Bediener IP: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below + } + + +###################### +# ADD=42111111111 modify phone alias record in the system +###################### + +if ($ADD==42111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
TEL ALIAS NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
TEL ALIAS VERÄNDERTE: $alias_id\n"; + + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFY TEL ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below + } + + +###################### +# ADD=43111111111 modify group alias record in the system +###################### + +if ($ADD==43111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
GROUP ALIAS NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + echo "
GROUP ALIAS VERÄNDERTE: $alias_id\n"; + + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFY GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below + } + + +###################### +# ADD=411111111111 modify server record in the system +###################### + +if ($ADD==411111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
BEDIENERNOT MODIFIED - there is already a server in the system with this server_id\n";} + else + { + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
BEDIENER NICHT GEÄNDERT - es gibt bereits einen Bediener im Systemmit diesem server_ip\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
BEDIENER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
BEDIENER GEÄNDERT: $server_ip\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN ÄNDERN SIE BEDIENER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=421111111111 modify vicidial server trunks record in the system +###################### + +if ($ADD==421111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT - die Zahl vicidial Stämmen ist zu hoch: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne muß zwischen 3 und 8 Buchstaben lang sein\n"; + echo "
server_ip verzögert muß mindestens 7 Buchstaben sein\n"; + echo "
Stämme müssen eine Stelle von 0 bis 9999 sein\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
VICIDIAL BEDIENER-STAMM-SATZ ÄNDERTE: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTrunks', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN ÄNDERN SIE BEDIENER TRUNK', event_sql=\"$SQL_log\", event_notes='Kampagne: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=431111111111 modify conf template record in the system +###################### '$template_id','$template_name','$template_contents' + +if ($ADD==431111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
CONF-Vorlagen nicht VERÄNDERTE - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below + } + + +###################### +# ADD=441111111111 modify carrier record in the system +###################### + +if ($ADD==441111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
CARRIER NICHT MODIFIZIERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CARRIER VERÄNDERTE: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS Eintrag nicht MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS ENTRY MODIFIED: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD Eintrag nicht MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MUSIC ON HOLD ENTRY MODIFIED: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD Eintrag nicht MODIFIED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MUSIC ON HOLD ENTRY MODIFIED: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
Voicemail-Box NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Voicemail-Box MODIFIED: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below + } + + +###################### +# ADD=4111111111111 modify conference record in the system +###################### + +if ($ADD==4111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
KONFERENZ NICHT GEÄNDERT - es gibt bereits eine Konferenz im Systemmit diesem Verlängerung-Bediener\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
KONFERENZ NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + echo "
KONFERENZ ÄNDERTE: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below + } + + +###################### +# ADD=41111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==41111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL KONFERENZ NICHT GEÄNDERT - es gibt bereits eine Konferenz im Systemmit diesem Verlängerung-Bediener\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL KONFERENZ NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben\n";} + else + { + echo "
VICIDIAL KONFERENZ ÄNDERTE: $conf_exten\n"; + + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below + } + + +###################### +# ADD=411111111111111 modify vicidial system settings +###################### + +if ($ADD==411111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + echo "
VICIDIAL SYSTEM EINSTELLUNGEN GEÄNDERT WORDEN\n"; + + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSETTINGS', event_type='MODIFY', record_id='system_settings', event_code='ADMIN MODIFY SYSTEM SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111111111111; # go to vicidial system settings form below + } + + +###################### +# ADD=421111111111111 modify/delete system status in the system +###################### + +if ($ADD==421111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($status) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$status)) ) + { + echo "
SYSTEMSTATUS NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
der Systemstatus kann nicht ein reservierter Status sein:B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
der Systemstatus muß mindestens Buchstaben 1 lang sein\n"; + } + else + { + echo "
SYSTEM STATUS DELETED: $status\n"; + + $stmt="DELETE FROM vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='DELETE', record_id='$status', event_code='ADMIN DELETE SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
SYSTEMSTATUS NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
der Systemstatus muß mindestens Buchstaben 1 lang sein\n"; + echo "
der Systemstatusname muß mindestens Buchstaben 1 lang sein\n"; + } + else + { + echo "
SYSTEMSTATUS GEÄNDERT: $status\n"; + + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='MODIFY', record_id='$status', event_code='ADMIN MODIFY SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=321111111111111; # go to system settings modification form below + } + + +###################### +# ADD=431111111111111 modify/delete status category in the system +###################### + +if ($ADD==431111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + { + echo "
STATUS-KATEGORIE NICHT GEÄNDERT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
die Statuskategorie kann nicht eine reservierte Kategorie sein:UNDEFINED\n"; + echo "
die Statuskategorie muß mindestens 2 Buchstaben lang sein\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
STATUS-KATEGORIE LÖSCHTE: $vsc_id\n"; + + $stmt="DELETE FROM vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE STATUS KATEGORIE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
STATUS-KATEGORIE GEÄNDERT: $vsc_id\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
STÖRUNG: Es gibt bereits 4 den Status-Kategorienkatalog zurTimeOnVDAD Anzeige\n"; + } + + $stmt="UPDATE vicidial_status_categories SET vsc_name='$vsc_name',vsc_description='$vsc_description',tovdad_display='$tovdad_display',sale_category='$sale_category',dead_lead_category='$dead_lead_category' where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY STATUS KATEGORIE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=331111111111111; # go to system settings modification form below + } + + +###################### +# ADD=441111111111111 modify/delete qc status code in the system +###################### + +if ($ADD==441111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
QC-Statuscode nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
qc der Status-Code muss mindestens 1 Zeichen lang sein\n"; + } + else + { + echo "
QC-Statuscode gestrichen:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QK-Status-Code nicht geändert- Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
qc der Status-Code muss mindestens 1 Zeichen lang sein\n"; + echo "
qc Status der Code-Name muss mindestens 1 Zeichen lang sein\n"; + } + else + { + echo "
QK-Status-Code geändert:$code\n"; + + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below + } + + + + +###################################################################################################### +###################################################################################################### +####### 5 series, delete records confirmation +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=5 confirmation before deletion of user +###################### + +if ($ADD==5) + { + echo ""; + + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + { + echo "
BENUTZER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
User be at least 2 characters in length\n"; + } + else + { + echo "
BENUTZER-AUSLASSUNG BESTÄTIGUNG: $user\n"; + echo "

Klicken Sie hier, um Benutzer zu löschen $user


\n"; + } + + $ADD='3'; # go to user modification below + } + +###################### +# ADD=51 confirmation before deletion of campaign +###################### + +if ($ADD==51) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + { + echo "
KAMPAGNE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; + } + else + { + echo "
KAMPAGNE AUSLASSUNG BESTÄTIGUNG: $campaign_id\n"; + echo "

Klicken Sie hier, um Kampagne zu löschen $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=52 confirmation before logging all agents out of campaign of campaign +###################### + +if ($ADD==52) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
MITTEL GELOGGT NICHT AUS KAMPAGNE HERAUS - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; + } + else + { + echo "
MITTELLOGOUT-BESTÄTIGUNG: $campaign_id\n"; + echo "

Klicken Sie hier, um alle Mittel aus zu loggen $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record +###################### + +if ($ADD==53) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC NICHT LÖSCHTE FÜR KAMPAGNE - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; + } + else + { + echo "
VDAC AUSLÖSEBESTÄTIGUNG: $campaign_id\n"; + echo "

Klicken Sie hier, um das älteste zu löschen LEBEN Aufzeichnung inVDAC für $campaign_id


\n"; + } + + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + +###################### +# ADD=511 confirmation before deletion of list +###################### + +if ($ADD==511) + { + echo ""; + + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + { + echo "
LISTE NICHT GELÖSCHT WORDEN - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + echo "
LISTE AUSLASSUNG BESTÄTIGUNG: $list_id\n"; + echo "

Klicken Sie hier, um Liste und alle seine Leitungen zu löschen $list_id


\n"; + } + + $ADD='311'; # go to campaign modification below + } + +###################### +# ADD=5111 confirmation before deletion of in-group +###################### + +if ($ADD==5111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + { + echo "
IN-GROUP NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + echo "
IN-GROUP AUSLASSUNG BESTÄTIGUNG: $group_id\n"; + echo "

Klicken Sie hier, um Ingruppe zu löschen $group_id


\n"; + } + + $ADD='3111'; # go to in-group modification below + } + +###################### +# ADD=5311 confirmation before deletion of did +###################### + +if ($ADD==5311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + { + echo "
NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + echo "
DID STREICHUNG BESTÄTIGUNG: $menu_id\n"; + echo "

Klicken Sie hier, um zu löschenDID $did_id


\n"; + } + + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU NICHT gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
CALL MENU Bestätigungsfenster: $menu_id\n"; + echo "

Klicken Sie hier, um zu löschen CALL MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } + +###################### +# ADD=51111 confirmation before deletion of remote agent record +###################### + +if ($ADD==51111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + { + echo "
REMOTEMITTEL NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + echo "
REMOTEMITTEL-AUSLASSUNG BESTÄTIGUNG: $remote_agent_id\n"; + echo "

Klicken Sie hier, um Remotemittel zu löschen $remote_agent_id


\n"; + } + + $ADD='31111'; # go to remote agent modification below + } + +###################### +# ADD=511111 confirmation before deletion of user group record +###################### + +if ($ADD==511111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + { + echo "
BENUTZER-GRUPPE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
User_group be at least 2 characters in length\n"; + } + else + { + echo "
BENUTZER-GRUPPE AUSLASSUNG BESTÄTIGUNG: $user_group\n"; + echo "

Klicken Sie hier, um Benutzergruppe zu löschen $user_group


\n"; + } + + $ADD='311111'; # go to user group modification below + } + +###################### +# ADD=5111111 confirmation before deletion of script record +###################### + +if ($ADD==5111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + { + echo "
INDEX NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Script_id must be at least 2 characters in length\n"; + } + else + { + echo "
INDEX-AUSLASSUNG BESTÄTIGUNG: $script_id\n"; + echo "

Klicken Sie hier, um Index zu löschen $script_id


\n"; + } + + $ADD='3111111'; # go to script modification below + } + +###################### +# ADD=51111111 confirmation before deletion of filter record +###################### + +if ($ADD==51111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + { + echo "
FILTER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Filter Identifikation muß mindestens 2 Buchstaben lang sein\n"; + } + else + { + echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; + echo "

Klicken Sie hier, um Filter zu löschen$lead_filter_id


\n"; + } + + $ADD='31111111'; # go to filter modification below + } + +###################### +# ADD=511111111 confirmation before deletion of call time record +###################### + +if ($ADD==511111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
Anrufzeit nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID muss mindestens 2 Zeichen lang sein\n"; + } + else + { + echo "
Löschen der Anrufzeit bestätigen: $call_time_id\n"; + echo "

Klicken Sie hier, um zu löschencall time $call_time_id


\n"; + } + + $ADD='311111111'; # go to call time modification below + } + +###################### +# ADD=5111111111 confirmation before deletion of state call time record +###################### + +if ($ADD==5111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
Landesspezifische Anrufzeit nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID muss mindestens 2 Zeichen lang sein\n"; + } + else + { + echo "
Löschen der landesspezifischen Anrufzeit bestätigen: $call_time_id\n"; + echo "

Klicken Sie hier, um zu löschenstate call time $call_time_id


\n"; + } + + $ADD='3111111111'; # go to state call time modification below + } + +###################### +# ADD=531111111 confirmation before deletion of shift record +###################### + +if ($ADD==531111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
UMSCHALT nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + echo "
UMSCHALT STREICHUNG Bestätigung:$shift_id\n"; + echo "

Klicken Sie hier, um zu löschen Verschiebung $shift_id


\n"; + } + + $ADD='331111111'; # go to call time modification below + } + +###################### +# ADD=51111111111 confirmation before deletion of phone record +###################### + +if ($ADD==51111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
TELEFON NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; + } + else + { + echo "
TELEFON-AUSLASSUNG BESTÄTIGUNG: $extension - $server_ip\n"; + echo "

Klicken Sie hier, um Telefon zu löschen $extension - $server_ip


\n"; + } + $ADD='31111111111'; # go to phone modification below + } + + +###################### +# ADD=52111111111 confirmation before deletion of phone alias record +###################### + +if ($ADD==52111111111) + { + echo ""; + + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
TEL ALIAS nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + echo "
TEL ALIAS STREICHUNG BESTÄTIGUNG: $alias_id\n"; + echo "

Klicken Sie hier, um zu löschen Telefon Alias $alias_id


\n"; + } + $ADD='32111111111'; # go to phone alias modification below + } + + +###################### +# ADD=53111111111 confirmation before deletion of group alias record +###################### + +if ($ADD==53111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
GROUP ALIAS nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Alias-ID-Gruppe must be at least 2 characters in length\n"; + } + else + { + echo "
GROUP ALIAS STREICHUNG BESTÄTIGUNG: $group_alias_id\n"; + echo "

Klicken Sie hier, um Alias-Gruppe löschen $group_alias_id


\n"; + } + $ADD='33111111111'; # go to group alias modification below + } + + +###################### +# ADD=511111111111 confirmation before deletion of server record +###################### + +if ($ADD==511111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
BEDIENERNOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Bediener Identifikation be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; + } + else + { + echo "
BEDIENERDELETION CONFIRMATION: $server_id - $server_ip\n"; + echo "

Klicken Sie hier, um Telefon zu löschen $server_id - $server_ip


\n"; + } + $ADD='311111111111'; # go to server modification below + } + + +###################### +# ADD=531111111111 confirmation before deletion of conf template record +###################### + +if ($ADD==531111111111) + { + echo ""; + + if (strlen($template_id) < 2) + { + echo "
CONF TEMPLATE nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Vorlagen-ID von mindestens 2 Zeichen lang sein\n"; + } + else + { + echo "
CONF TEMPLATE STREICHUNG BESTÄTIGUNG: $template_id - $template_name\n"; + echo "

Klicken Sie hier, um zu löschen conf Vorlage $template_id - $template_name


\n"; + } + $ADD='331111111111'; # go to conf template modification below + } + + +###################### +# ADD=541111111111 confirmation before deletion of carrier record +###################### + +if ($ADD==541111111111) + { + echo ""; + + if (strlen($carrier_id) < 2) + { + echo "
CARRIER nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Carrier-ID von mindestens 2 Zeichen lang sein\n"; + } + else + { + echo "
CARRIER STREICHUNG BESTÄTIGUNG: $carrier_id - $carrier_name\n"; + echo "

Klicken Sie hier, um zu löschen Träger $carrier_id - $carrier_name


\n"; + } + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS Eintrag nicht DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
TTS-ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS ENTRY Bestätigungsfenster: $tts_id - $tts_name\n"; + echo "

Klicken Sie hier, um den Eintrag zu löschen tts $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
MUSIC ON HOLD Eintrag nicht DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
MUSIC ON HOLD ENTRY Bestätigungsfenster: $moh_id - $moh_name\n"; + echo "

Klicken Sie hier, um Wartemusik Eintrag löschen $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
Voicemail-Box NICHT gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Voicemail-ID be at least 2 characters in length\n"; + } + else + { + echo "
Voicemail-Box Bestätigungsfenster: $voicemail_id - $fullname\n"; + echo "

Klicken Sie hier, um zu löschen Voicemail-Box $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } + + +###################### +# ADD=5111111111111 confirmation before deletion of conference record +###################### + +if ($ADD==5111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; + } + else + { + echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Klicken Sie hier, um Telefon zu löschen $conf_exten - $server_ip


\n"; + } + $ADD='3111111111111'; # go to conference modification below + } + + +###################### +# ADD=51111111111111 confirmation before deletion of vicidial conference record +###################### + +if ($ADD==51111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; + } + else + { + echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Klicken Sie hier, um Telefon zu löschen $conf_exten - $server_ip


\n"; + } + $ADD='31111111111111'; # go to vicidial conference modification below + } + + + +###################################################################################################### +###################################################################################################### +####### 6 series, delete records +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=6 delete user record +###################### + +if ($ADD==6) + { + echo ""; + + if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) + { + echo "
BENUTZER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
User be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_users where user='$user' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='BENUTZER', event_type='DELETE', record_id='$user', event_code='ADMIN DELETE USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
BENUTZER-AUSLASSUNG FÜHRTE DURCH: $user\n"; + echo "

\n"; + } + + $ADD='0'; # go to user list + } + +###################### +# ADD=61 delete campaign record +###################### + +if ($ADD==61) + { + echo ""; + + if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) + { + echo "
KAMPAGNE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_campaigns where campaign_id='$campaign_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_statuses where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_hotkeys where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_callbacks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_lead_recycle where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_server_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_server_trunks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_pause_codes where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaigns_list_mix where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
ENTFERNEN DER LISTE ZUFUHRBEHÄLTER-LEITUNGEN VOM ALTEN KAMPAGNEZUFUHRBEHÄLTER ($campaign_id)\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
KAMPAGNE AUSLASSUNG FÜHRTE DURCH: $campaign_id\n"; + echo "

\n"; + } + + $ADD='10'; # go to campaigns list + } + + +###################### +# ADD=62 Logout all agents from a campaign +###################### + +if ($ADD==62) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
MITTEL GELOGGT NICHT AUS KAMPAGNE HERAUS - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; + } + else + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='LOGOUT', record_id='$campaign_id', event_code='ADMIN LOGOUT CAMPAIGN AGENTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MITTELLOGOUT FÜHRTE DURCH: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD='31'; # go to campaign modification below + } + + +###################### +# ADD=63 Emergency VDAC Jam Clear +###################### + +if ($ADD==63) + { + if ($LOGmodify_campaigns==1) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC NICHT LÖSCHTE FÜR KAMPAGNE - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_auto_calls where status='LIVE' and campaign_id='$campaign_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN JAM', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LETZTES VDAC SATZ GELÖSCHT FÜR KAMPAGNE: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + + +###################### +# ADD=65 delete campaign lead recycle in the system +###################### + +if ($ADD==65) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
KAMPAGNE LEITUNG BEREITEN NICHT GELÖSCHT AUF - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + echo "
Versuch verzögert muß mindestens 120 Sekunden sein\n"; + echo "
maximale Versuche müssen von 1 bis 10 sein\n"; + } + else + { + echo "
KAMPAGNE LEITUNG BEREITEN GELÖSCHT AUF: $campaign_id - $status - $attempt_delay\n"; + + $stmt="DELETE FROM vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=66 delete auto alt dial status from the campaign +###################### + +if ($ADD==66) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT GELÖSCHT - dieser Vorwahlknopfstatus des Automobils Alt ist nicht in dieserKampagne\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
SELBSTALT VORWAHLKNOPF-STATUS NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + } + else + { + echo "
SELBSTALT VORWAHLKNOPF-STATUS GELÖSCHT: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $auto_alt_dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIALS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN ALT DIAL', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=26; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=67 delete agent pause code in the system +###################### + +if ($ADD==67) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + { + echo "
KAMPAGNE PAUSE CODE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + } + else + { + echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; + + $stmt="DELETE FROM vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Status:$pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=68 remove campaign dial status +###################### + +if ($ADD==68) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ENTFERNT - dieser Vorwahlknopfstatus wird nicht für diese Kampagne vorgewählt\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
KAMPAGNE VORWAHLKNOPF-STATUS NICHT ENTFERNT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Status muß zwischen 1 und 6 Buchstaben lang sein\n"; + } + else + { + echo "
KAMPAGNE VORWAHLKNOPF-STATUS ENTFERNT: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUSES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Status:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + #$SUB=28; + $ADD=31; # go to campaign modification form below + } + +###################### +# ADD=611 delete list record and all leads within it +###################### + +if ($ADD==611) + { + echo ""; + + if ( ( strlen($list_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_lists < 1) ) + { + echo "
LISTE NICHT GELÖSCHT WORDEN - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_lists where list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + echo "
ENTFERNEN DER LISTE ZUFUHRBEHÄLTER-LEITUNGEN VOM ALTEN KAMPAGNEZUFUHRBEHÄLTER ($list_id)\n"; + $stmt="DELETE from vicidial_hopper where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
ENTFERNEN DER LISTE LEITUNGEN VON DER VICIDIAL_LIST TABELLE\n"; + $stmt="DELETE from vicidial_list where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='DELETE', record_id='$list_id', event_code='ADMIN DELETE LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LISTE AUSLASSUNG DURCHGEFÜHRT: $list_id\n"; + echo "

\n"; + } + + $ADD='100'; # go to lists list + } + +###################### +# ADD=6111 delete in-group record +###################### + +if ($ADD==6111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_ingroups < 1) ) + { + echo "
IN-GROUP NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_inbound_groups where group_id='$group_id' and group_id NOT IN('AGENTDIRECT') limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_inbound_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='DELETE', record_id='$group_id', event_code='ADMIN DELETE INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
IN-GROUP AUSLASSUNG FÜHRTE DURCH: $group_id\n"; + echo "

\n"; + } + + $ADD='1000'; # go to in-group list + } + + +###################### +# ADD=6311 delete did record +###################### + +if ($ADD==6311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_inbound_dids where did_id='$did_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='DELETE', record_id='$did_id', event_code='ADMIN DELETE DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
DID STREICHUNG COMPLETED: $did_id\n"; + echo "

\n"; + } + + $ADD='1300'; # go to did list + } + +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU NICHT gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CALL MENU LÖSCHEN BEENDET: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + +###################### +# ADD=61111 delete remote agent record +###################### + +if ($ADD==61111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_remote_agents < 1) ) + { + echo "
REMOTEMITTEL NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_remote_agents where remote_agent_id='$remote_agent_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='DELETE', record_id='$remote_agent_id', event_code='ADMIN DELETE REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
REMOTEMITTEL-AUSLASSUNG FÜHRTE DURCH: $remote_agent_id\n"; + echo "

\n"; + } + + $ADD='10000'; # go to remote agents list + } + +###################### +# ADD=611111 delete user group record +###################### + +if ($ADD==611111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_user_groups < 1) ) + { + echo "
BENUTZER-GRUPPE NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
User_group be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_user_groups where user_group='$user_group' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='DELETE', record_id='$user_group', event_code='ADMIN DELETE User Group', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
BENUTZER-GRUPPE AUSLASSUNG DURCHGEFÜHRT: $user_group\n"; + echo "

\n"; + } + + $ADD='100000'; # go to user group list + } + +###################### +# ADD=6111111 delete script record +###################### + +if ($ADD==6111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_scripts < 1) ) + { + echo "
INDEX NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Script_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_scripts where script_id='$script_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INDEXE', event_type='DELETE', record_id='$script_id', event_code='ADMIN DELETE SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
INDEX-AUSLASSUNG FÜHRTE DURCH: $script_id\n"; + echo "

\n"; + } + + $ADD='1000000'; # go to script list + } + + +###################### +# ADD=61111111 delete filter record +###################### + +if ($ADD==61111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_filters < 1) ) + { + echo "
FILTER NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Filter Identifikation muß mindestens 2 Buchstaben lang sein\n"; + } + else + { + $stmt="DELETE from vicidial_lead_filters where lead_filter_id='$lead_filter_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTER', event_type='DELETE', record_id='$lead_filter_id', event_code='ADMIN DELETE FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
FILTER-AUSLASSUNG DURCHGEFÜHRT: $lead_filter_id\n"; + echo "

\n"; + } + + $ADD='10000000'; # go to filter list + } + + +###################### +# ADD=611111111 delete call times record +###################### + +if ($ADD==611111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
Anrufzeit nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID muss mindestens 2 Zeichen lang sein\n"; + } + else + { + $stmt="DELETE from vicidial_call_times where call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Löschen der Anrufzeiten beendet: $call_time_id\n"; + echo "

\n"; + } + + $ADD='100000000'; # go to call times list + } + + +###################### +# ADD=6111111111 delete state call times record +###################### + +if ($ADD==6111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
Landesspezifische Anrufzeit nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Anrufzeit ID muss mindestens 2 Zeichen lang sein\n"; + } + else + { + $stmtA="DELETE from vicidial_state_call_times where state_call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="SELECT call_time_id,ct_state_call_times from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\" order by call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_ids[$o] = "$rowx[0]"; + $sct_states[$o] = "$rowx[1]"; + $o++; + } + $o=0; + while ($sct_to_print > $o) + { + $sct_states[$o] = eregi_replace("\|$call_time_id\|",'|',$sct_states[$o]); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$sct_states[$o]' where call_time_id='$sct_ids[$o]';"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + echo "Landesrichlinie gelöscht: $sct_ids[$o]
\n"; + $o++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Löschen der landesspezifischen Anrufzeit beendet: $call_time_id\n"; + echo "

\n"; + } + + $ADD='1000000000'; # go to call times list + } + + +###################### +# ADD=631111111 delete shift record +###################### + +if ($ADD==631111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
UMSCHALT nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_shifts where shift_id='$shift_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='DELETE', record_id='$shift_id', event_code='ADMIN DELETE SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
UMSCHALT STREICHUNG fertig gestellt: $shift_id\n"; + echo "

\n"; + } + + $ADD='130000000'; # go to shifts list + } + + +###################### +# ADD=61111111111 delete phone record +###################### + +if ($ADD==61111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
TELEFON NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from phones where extension='$extension' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='DELETE', record_id='$extension', event_code='ADMIN DELETE PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TELEFON-AUSLASSUNG DURCHGEFÜHRT: $extension - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000'; # go to phone list + } + + +###################### +# ADD=62111111111 delete phone alias record +###################### + +if ($ADD==62111111111) + { + echo ""; + + if ( (strlen($alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
TEL ALIAS nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from phones_alias where alias_id='$alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='DELETE', record_id='$alias_id', event_code='ADMIN DELETE TEL ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TEL ALIAS STREICHUNG COMPLETED: $alias_id\n"; + echo "

\n"; + } + $ADD='12000000000'; # go to phone alias list + } + + +###################### +# ADD=63111111111 delete group alias record +###################### + +if ($ADD==63111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
GROUP ALIAS nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Alias-ID-Gruppe must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from groups_alias where group_alias_id='$group_alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='DELETE', record_id='$group_alias_id', event_code='ADMIN DELETE GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
GROUP ALIAS STREICHUNG COMPLETED: $group_alias_id\n"; + echo "

\n"; + } + $ADD='13000000000'; # go to group alias list + } + + +###################### +# ADD=611111111111 delete server record +###################### + +if ($ADD==611111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
BEDIENERNOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Bediener Identifikation be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from servers where server_id='$server_id' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='DELETE', record_id='$server_id', event_code='ADMIN DELETE SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
BEDIENERDELETION COMPLETED: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='100000000000'; # go to server list + } + + +###################### +# ADD=621111111111 delete vicidial server trunk record in the system +###################### + +if ($ADD==621111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) ) + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ NICHT GELÖSCHT - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Kampagne muß zwischen 3 und 8 Buchstaben lang sein\n"; + echo "
server_ip verzögert muß mindestens 7 Buchstaben sein\n"; + } + else + { + echo "
VICIDIAL BEDIENER-STAMM-SATZ GELÖSCHT: $campaign_id - $server_ip\n"; + + $stmt="DELETE FROM vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTrunks', event_type='DELETE', record_id='$server_ip', event_code='ADMIN DELETE BEDIENERTRUNK', event_sql=\"$SQL_log\", event_notes='Kampagne: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=631111111111 delete conf template record +###################### + +if ($ADD==631111111111) + { + echo ""; + + if ( (strlen($template_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
CONF TEMPLATE nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Vorlagen-ID von mindestens 2 Zeichen lang sein\n"; + } + else + { + $stmt="UPDATE phones SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_server_carriers SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='DELETE', record_id='$template_id', event_code='ADMIN DELETE CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONF TEMPLATE STREICHUNG COMPLETED: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='130000000000'; # go to conf template list + } + + +###################### +# ADD=641111111111 delete carrier record +###################### + +if ($ADD==641111111111) + { + echo ""; + + if ( (strlen($carrier_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
CARRIER nicht gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Carrier-ID von mindestens 2 Zeichen lang sein\n"; + } + else + { + $stmt="SELECT server_ip from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $CARRIERserver_ip = $row[0]; + + $stmt="DELETE from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$CARRIERserver_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='DELETE', record_id='$carrier_id', event_code='ADMIN DELETE CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CARRIER STREICHUNG COMPLETED: $carrier_id\n"; + echo "

\n"; + } + $ADD='140000000000'; # go to carrier list + } + + +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS Eintrag nicht DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
TTS-ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
MUSIC ON HOLD Eintrag nicht DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MUSIC ON HOLD LÖSCHEN BEENDET: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Voicemail-Box NICHT gelöscht - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Voicemail-ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Voicemail-Box LÖSCHEN BEENDET: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + +###################### +# ADD=6111111111111 delete conference record +###################### + +if ($ADD==6111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='1000000000000'; # go to conference list + } + + +###################### +# ADD=61111111111111 delete vicidial conference record +###################### + +if ($ADD==61111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
Bediener IP be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
VICIDIAL CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000000'; # go to vicidial conference list + } + + + + + +###################################################################################################### +###################################################################################################### +####### 3 series, record modification forms +###################################################################################################### +###################################################################################################### + + + + +###################### +# ADD=3 modify user info in the system +###################### + +if ($ADD==3) + { + if ($LOGmodify_users==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Sie haben nicht Erlaubnis, diesen Benutzer zu ändern: $user\n"; + } + else + { + echo "
ÄNDERN Sie Einen BENUTZER-SATZ: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} + else + { + if ($LOGalter_agent_interface == "1") + {echo "\n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSuser_territories_active > 0) + { + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; + } + + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) + { + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + if ($LOGuser_level > 8) + { + echo "\n"; + + #9BB9FB + #B9CBFD + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
Benutzer-Zahl: $user$NWB#vicidial_users-user$NWE
Kennwort:$NWB#vicidial_users-pass$NWE
Voller Name: $NWB#vicidial_users-full_name$NWE
Benutzer-Niveau: $NWB#vicidial_users-user_level$NWE
Benutzer-Gruppe: $NWB#vicidial_users-user_group$NWE
Telefon-LOGON: $NWB#vicidial_users-phone_login$NWE
Telefon-Durchlauf: $NWB#vicidial_users-phone_pass$NWE
Aktiv:$NWB#vicidial_users-active$NWE
E-Mail:$NWB#vicidial_users-optional$NWE
User Code: $NWB#vicidial_users-optional$NWE
Main Territory: $NWB#vicidial_users-optional$NWE
User Territories: $Uterrs_list
MITTEL-SCHNITTSTELLE WAHLEN:
Mittel Wählen Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Wählen Sie Agent Territories: $NWB#vicidial_users-agent_choose_territories$NWE
Hot Keys Aktiv: $NWB#vicidial_users-hotkeys_active$NWE
Zeitlich geplante Wiederholungsbesuche: $NWB#vicidial_users-scheduled_callbacks$NWE
Mittel-Nur Wiederholungsbesuche: $NWB#vicidial_users-agentonly_callbacks$NWE
Vertreter-Anruf-Handbuch: $NWB#vicidial_users-agentcall_manual$NWE
Vicidial Aufnahme: $NWB#vicidial_users-vicidial_recording$NWE
Vicidial Übertragungen: $NWB#vicidial_users-vicidial_transfers$NWE
Genauere Rückstellung Gemischt: $NWB#vicidial_users-closer_default_blended$NWE
VICIDIAL Aufnahme-Übersteuerung: $NWB#vicidial_users-vicidial_recording_override$NWE
Mittel Ändern Kunde Daten-Übersteuerung: $NWB#vicidial_users-alter_custdata_override$NWE
Agent Alter Kunden Telefon AllowOverride:$NWB#vicidial_users-alter_custphone_override$NWE
Agent Shift Vollstreckung Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alarm aktiv: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Lassen Sie Alerts: $NWB#vicidial_users-allow_alerts$NWE
Kampagne Rank:$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Inbound Gruppen: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
QC aktiv:$NWB#vicidial_users-qc_enabled$NWE
QC-Benutzer-Niveau:$NWB#vicidial_users-qc_user_level$NWE
QC-Pass:$NWB#vicidial_users-qc_pass$NWE
QC-Finish:$NWB#vicidial_users-qc_finish$NWE
QC-Commit:$NWB#vicidial_users-qc_commit$NWE
ADMIN SCHNITTSTELLE WAHLEN:
Ansicht-Berichte: $NWB#vicidial_users-view_reports$NWE
Ändern Sie Mittel-Schnittstelle Wahlen:$NWB#vicidial_users-alter_agent_interface_options$NWE
Ändern Sie Benutzer: $NWB#vicidial_users-modify_sections$NWE
Ändern Sie Vertreter-Kampagne: $NWB#vicidial_users-change_agent_campaign$NWE
Löschung-Benutzer: $NWB#vicidial_users-delete_users$NWE
Ändern Sie Benutzer-Gruppen: $NWB#vicidial_users-modify_sections$NWE
Löschung-Benutzer-Gruppen: $NWB#vicidial_users-delete_user_groups$NWE
Ändern Sie Listen: $NWB#vicidial_users-modify_sections$NWE
Löschung-Listen: $NWB#vicidial_users-delete_lists$NWE
Last Leitungen: $NWB#vicidial_users-load_leads$NWE
Ändern Sie Leitungen: $NWB#vicidial_users-modify_leads$NWE
Download-Listen: $NWB#vicidial_users-modify_leads$NWE
Exportieren von Berichten: $NWB#vicidial_users-export_reports$NWE
Löschen von DNC-Listen: $NWB#vicidial_users-delete_from_dnc$NWE
Ändern Sie Kampagnen: $NWB#vicidial_users-modify_sections$NWE
Kampagne Detail: $NWB#vicidial_users-campaign_detail$NWE
Löschung-Kampagnen: $NWB#vicidial_users-delete_campaigns$NWE
Ändern Sie In-Gruppen: $NWB#vicidial_users-modify_sections$NWE
Löschung In-Gruppen: $NWB#vicidial_users-delete_ingroups$NWE
Ändern DIDS:$NWB#vicidial_users-modify_sections$NWE
Löschen DIDS:$NWB#vicidial_users-delete_ingroups$NWE
Ändern Sie Remotemittel: $NWB#vicidial_users-modify_sections$NWE
Löschung-Direktübertragung Mittel: $NWB#vicidial_users-delete_remote_agents$NWE
Ändern Sie Indexe: $NWB#vicidial_users-modify_sections$NWE
Löschung-Indexs: $NWB#vicidial_users-delete_scripts$NWE
Ändern Sie Filter: $NWB#vicidial_users-modify_sections$NWE
Löschung-Filter: $NWB#vicidial_users-delete_filters$NWE
AGC Admin Zugang: $NWB#vicidial_users-ast_admin_access$NWE
AGC Löschung-Telefone: $NWB#vicidial_users-ast_delete_phones$NWE
Bearbeite Anrufzeits: $NWB#vicidial_users-modify_call_times$NWE
Lösche Anrufzeits: $NWB#vicidial_users-delete_call_times$NWE
Ändern Sie Bediener: $NWB#vicidial_users-modify_sections$NWE
Agent API-Zugang:$NWB#vicidial_users-vdc_agent_api_access$NWE
AddTimeclock Log Record: $NWB#vicidial_users-add_timeclock_log$NWE
ÄndernTimeclock Log Record: $NWB#vicidial_users-modify_timeclock_log$NWE
Löschen der RegistrierungTimeclock Record: $NWB#vicidial_users-delete_timeclock_log$NWE
Shift Manager Vollstreckung Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

LÖSCHEN SIE DIESEN BENUTZER\n"; + } + echo "

Klicken Sie hier für Benutzerzeitblatt\n"; + echo "

Klicken Sie hier für Benutzerstatus\n"; + echo "

Klicken Sie hier für Benutzernotfall\n"; + echo "

Klicken Sie hier für die Benutzer mehrere Tage Status ausführlicher Bericht\n"; + echo "

Klicken Sie hier für Benutzer Wiederholungsbesuch Einflüsse\n"; + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Eintrag
\n"; + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=31 modify campaign info in the system - Detail view +###################### + +if ( ($LOGcampaign_detail < 1) and ($ADD==31) ) {$ADD=34;} # send to Basic if not allowed + +if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==31) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_name = $row[1]; + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $web_form_address = stripslashes($row[11]); + $allow_closers = $row[12]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $campaign_rec_exten = $row[22]; + $campaign_recording = $row[23]; + $campaign_rec_filename = $row[24]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $am_message_exten = $row[27]; + $amd_send_to_vmx = $row[28]; + $xferconf_a_dtmf = $row[29]; + $xferconf_a_number = $row[30]; + $xferconf_b_dtmf = $row[31]; + $xferconf_b_number = $row[32]; + $alt_number_dialing = $row[33]; + $scheduled_callbacks = $row[34]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $drop_call_seconds = $row[36]; + $drop_action = $row[37]; + $safe_harbor_exten = $row[38]; + $display_dialable_count = $row[39]; + $wrapup_seconds = $row[40]; + $wrapup_message = $row[41]; + # $closer_campaigns = $row[42]; + $use_internal_dnc = $row[43]; + $allcalls_delay = $row[44]; + $omit_phone_code = $row[45]; + $dial_method = $row[46]; + $available_only_ratio_tally = $row[47]; + $adaptive_dropped_percentage = $row[48]; + $adaptive_maximum_level = $row[49]; + $adaptive_latest_server_time = $row[50]; + $adaptive_intensity = $row[51]; + $adaptive_dl_diff_target = $row[52]; + $concurrent_transfers = $row[53]; + $auto_alt_dial = $row[54]; + $auto_alt_dial_statuses = $row[55]; + $agent_pause_codes_active = $row[56]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $disable_alter_custdata = $row[62]; + $no_hopper_leads_logins = $row[63]; + $list_order_mix = $row[64]; + $campaign_allow_inbound = $row[65]; + $manual_dial_list_id = $row[66]; + $default_xfer_group = $row[67]; + $queue_priority = $row[69]; + $drop_inbound_group = $row[70]; + $qc_enabled = $row[71]; + $qc_statuses = $row[72]; + $qc_lists = $row[73]; + $qc_shift_id = $row[74]; + $qc_get_record_launch = $row[75]; + $qc_show_recording = $row[76]; + $qc_web_form_address = stripslashes($row[77]); + $qc_script = $row[78]; + $survey_first_audio_file = $row[79]; + $survey_dtmf_digits = $row[80]; + $survey_ni_digit = $row[81]; + $survey_opt_in_audio_file = $row[82]; + $survey_ni_audio_file = $row[83]; + $survey_method = $row[84]; + $survey_no_response_action = $row[85]; + $survey_ni_status = $row[86]; + $survey_response_digit_map = $row[87]; + $survey_xfer_exten = $row[88]; + $survey_camp_record_dir = $row[89]; + $disable_alter_custphone = $row[90]; + $display_queue_count = $row[91]; + $manual_dial_filter = $row[92]; + $agent_clipboard_copy = $row[93]; + $agent_extended_alt_dial = $row[94]; + $use_campaign_dnc = $row[95]; + $three_way_call_cid = $row[96]; + $three_way_dial_prefix = $row[97]; + $web_form_target = $row[98]; + $vtiger_search_category = $row[99]; + $vtiger_create_call_record = $row[100]; + $vtiger_create_lead_record = $row[101]; + $vtiger_screen_login = $row[102]; + $cpd_amd_action = $row[103]; + $agent_allow_group_alias = $row[104]; + $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + + $qc_lists = preg_replace("/^ | -$/","",$qc_lists); + $QClists = explode(" ", $qc_lists); + $QCL_to_print = (count($QClists) -0); + + ##### get status listings for dynamic pulldown + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $qc_statuses_list=''; + $survey_ni_status_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') + { + $dial_statuses_list .= "\n"; + if ($survey_ni_status == $rowx[0]) + { + $survey_ni_status_list .= "\n"; + } + else + { + $survey_ni_status_list .= "\n"; + } + } + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic transfer group pulldown list menu + $stmt="SELECT group_id,group_name from vicidial_inbound_groups $xfer_groupsSQL order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==28) {$camp_qc_color=$subcamp_color;} + else {$camp_qc_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + if ($SUB=='20A') {$camp_survey_color=$subcamp_color;} + else {$camp_survey_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; + if ($SSqc_features_active > 0) + { + echo ""; + } + if ($SSoutbound_autodial_active < 1) + { + echo "\n"; + } + echo "\n"; + echo "
$row[0]: Basic Detail StatusHotKeysLead RecyclingAuto Alt DialUS-MixUmfragePause CodesQC Real-Time
\n"; + + echo "
\n"; + echo ""; + + echo "
\n"; + + if ($SUB < 1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "ENTFERNEN Sie\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + + + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($agent_allow_group_alias == 'Y') + { + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + } + + if ($SSenable_vtiger_integration > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + else + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($campaign_allow_inbound == 'Y') + { + echo "\n"; + } + + echo "\n"; + + if ($allow_closers == 'Y') + { + echo "\n"; + } + + echo "\n"; + echo "
Kampagne Identifikation: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Name: $NWB#vicidial_campaigns-campaign_name$NWE
Kampagne Beschreibung: $NWB#vicidial_campaigns-campaign_description$NWE
Kampagne Datum ändern: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Kampagne Login Datum: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Kampagne Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Aktiv:$NWB#vicidial_campaigns-active$NWE
Park-Verlängerung: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Netz-Form: $NWB#vicidial_campaigns-web_form_address$NWE
Netz-Form Two: $NWB#vicidial_campaigns-web_form_address$NWE
Netz-Form-Target: $NWB#vicidial_campaigns-web_form_target$NWE
Erlauben Sie Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Erlauben Sie Inbound und gemischt:$NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Vorwahlknopf-Status$o: \n"; + + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Status:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Liste Auftrag: $NWB#vicidial_campaigns-lead_order$NWE
US-Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Leitung Filter: $NWB#vicidial_campaigns-lead_filter_id$NWE
Drop Lockout Time: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Kraft-Zurückstellen des Zufuhrbehälters: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Vorwahlknopf-Methode: $NWB#vicidial_campaigns-dial_method$NWE
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       PASSEN SIE ÜBERSTEUERUNG AN
Vorhandenes Nur Tally: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Tropfen-Prozentsatz-Begrenzung: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Maximum Paßt Vorwahlknopf-Niveau An: number only $NWB#vicidial_campaigns-adaptive_maximum_level$NWE
Neueste Bediener-Zeit: 4 nur Stellen $NWB#vicidial_campaigns-adaptive_latest_server_time$NWE
Passen Sie Intensität Modifizierfaktor An: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Vorwahlknopf-Waagerecht ausgerichtetes Unterschied-Ziel: $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE
Gleichzeitige Übertragungen: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Queue-Priorität: $NWB#vicidial_campaigns-queue_priority$NWE
Mehrere Kampagne Drop Rate Gruppe:$NWB#vicidial_campaigns-drop_rate_group$NWE
SelbstAlt-zahl Wählen: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_campaigns-next_agent_call$NWE
Ortsgespräch-Zeit: $NWB#vicidial_campaigns-local_call_time$NWE
Vorwahlknopf-Abschaltung: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Vorwahlknopf-Präfix: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Lassen Sie Telefon-Code Aus: $NWB#vicidial_campaigns-omit_phone_code$NWE
Kampagne CallerID: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Kampagne VDAD exten: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Kampagne Rec exten: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Kampagne Aufnahme: $NWB#vicidial_campaigns-campaign_recording$NWE
Kampagne Rec Dateiname: $NWB#vicidial_campaigns-campaign_rec_filename$NWE
Das Notieren Verzögert: in seconds$NWB#vicidial_campaigns-allcalls_delay$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_campaigns-get_call_launch$NWE
Antwortende Maschine Anzeige: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
WaitForSilence Optionen: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD senden zu VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Aktion: $NWB#vicidial_campaigns-cpd_amd_action$NWE
BringenSie DTMF 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie DTMF 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
BringenSie Zahl 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Quick Transfer Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Vorab gefüllt Transfer Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Timer-Aktion: $NWB#vicidial_campaigns-timer_action$NWE
Timer-Aktion Message: $NWB#vicidial_campaigns-timer_action_message$NWE
Timer-Aktion Sekunden: $NWB#vicidial_campaigns-timer_action_seconds$NWE
Alternative Nummer wählen: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Zeitlich geplante Wiederholungsbesuche: $NWB#vicidial_campaigns-scheduled_callbacks$NWE
Verbindungsaufbau Sekunden: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Drop-Aktion:$NWB#vicidial_campaigns-drop_action$NWE
Sicherheitsnebenstelle: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Voicemail: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Drop-Transfer-Gruppe:$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Nachbereitung Sekunden $NWB#vicidial_campaigns-wrapup_seconds$NWE
Nachbereitung Nachricht $NWB#vicidial_campaigns-wrapup_message$NWE
Benutzen Sie Interne DNC Liste: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Verwenden Sie Kampagne DNC Liste: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentPause CodesAktiv:$NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Kampagne Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Sperren Sie Ändern Kunde Daten: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Deaktivieren Alter Kunde Telefon:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Gewähren Sie Kein-Zufuhrbehälter-Führt LOGON: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
Nr. Hopper Dialing: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Eigentümer nur Dialing: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Wählen Sie Agent Territories: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agent Anzeige dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Agent Anzeige Queue Count:$NWB#vicidial_campaigns-display_queue_count$NWE
Agent Profil Anrufe in der Warteschlange: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Profil Anrufe in der Warteschlange Launch: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agent Grab Anrufe in der Warteschlange: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Call Agent Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agent Pause nach jedem Anruf: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Manuelle Vorwahlknopf-Liste Identifikation:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manual Dial Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent Screen Zwischenablage kopieren: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agent Screen Erweiterte Alt Zifferblatt: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Wege-Call Outbound CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Wege-Call-Vorwahl: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Alias-Gruppe erlaubt: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Standard-Alias-Gruppe: $NWB#vicidial_campaigns-default_group_alias$NWE
Vtiger Suche Kategorie: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Suche Dead-Konten: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Vtiger Erstellen Call Record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Erstellen Lead Record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Status Call: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger Login Screen: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Popup-Adresse: $NWB#vicidial_campaigns-crm_login_address$NWE
Start Call URL: $NWB#vicidial_campaigns-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
Gewährte Inbound Gruppen:
"; + echo " $NWB#vicidial_campaigns-closer_campaigns$NWE
\n"; + echo "$groups_list"; + echo "
Rückstellung Übergangsgruppe:$NWB#vicidial_campaigns-default_xfer_group$NWE
Gewährte Übergangsgruppen:
"; + echo " $NWB#vicidial_campaigns-xfer_groups$NWE
\n"; + echo "$XFERgroups_list"; + echo "
\n"; + + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTEN INNERHALB DIESER KAMPAGNE:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
LISTE IDENTIFIKATIONLISTE NAMEBESCHREIBUNGLEADS COUNTAKTIVLAST CALL DATUMÄNDERN Sie
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]ÄNDERN Sie

\n"; + + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Diese Kampagne hat$active_lists aktive Listen und$inactive_lists unaktivierte Listen

\n"; + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - Verberge

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - Zeige

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Diese Kampagne hat$hopper_leads Leitungen im Vorwahlknopfzufuhrbehälter

\n"; + echo "Klicken Sie hier, um zu sehen, welche Leitungen im Zufuhrbehälter imAugenblick sind

\n"; + echo "Klicken Sie hier, um ein VDAD Bericht für diese Kampagne

\n"; + } + echo "Klicken Sie hier, um alle Wiederholungsbesuch Einflüsse in dieserKampagne zu sehen

\n"; + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Kampagne
\n"; + } + echo "
\n"; + } + + + ##### CAMPAIGN CUSTOM STATUSES ##### + if ($SUB==22) + { + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + echo "
\n"; + echo "
KUNDENSPEZIFISCHE STATUS INNERHALB DIESER KAMPAGNE:   $NWB#vicidial_campaign_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[5]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
STATUSBESCHREIBUNGAUSWÄHLBARMENSCHLICHE ANTWORTKATEGORIEMODIFY-DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + echo "LÖSCHUNG\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
ADDIEREN SIE NEUEN KUNDENSPEZIFISCHEN KAMPAGNE STATUS
\n"; + echo "\n"; + echo "\n"; + echo "Status:   \n"; + echo "Beschreibung:   \n"; + echo "Auswählbar:  
\n"; + echo "Human Antwort:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Kategorie:\n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN HOTKEYS ##### + if ($SUB==23) + { + echo "
GEWOHNHEIT HOT KEYS INNERHALB DIESER KAMPAGNE:   $NWB#vicidial_campaign_hotkeys$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + + } + + echo "
HOT KEYSTATUSBESCHREIBUNGLÖSCHUNG
$rowx[1]$rowx[0]$rowx[2]LÖSCHUNG
\n"; + + echo "
ADDIEREN SIE NEUE KUNDENSPEZIFISCHE KAMPAGNE HOT KEY
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Hotkey:   \n"; + echo "Status:   \n"; + echo "
\n"; + echo "

\n"; + } + + ##### CAMPAIGN LEAD RECYCLING ##### + if ($SUB==25) + { + ### display counts on leads that have hit the limit in this campaign + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $RECYCLE_status[$o] = $rowx[2]; + $RECYCLE_delay[$o] = $rowx[3]; + $RECYCLE_attempt[$o] = $rowx[4]; + $RECYCLE_active[$o] = $rowx[5]; + $RECYCLE_count[$o] = "'Y','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'"; + if ($RECYCLE_attempt[$o]==1) {$RECYCLE_count[$o] = "'Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==2) {$RECYCLE_count[$o] = "'Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==3) {$RECYCLE_count[$o] = "'Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==4) {$RECYCLE_count[$o] = "'Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==5) {$RECYCLE_count[$o] = "'Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==6) {$RECYCLE_count[$o] = "'Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==7) {$RECYCLE_count[$o] = "'Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==8) {$RECYCLE_count[$o] = "'Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==9) {$RECYCLE_count[$o] = "'Y9','Y10'";} + if ($RECYCLE_attempt[$o]>9) {$RECYCLE_count[$o] = "'Y10'";} + $o++; + } + $o=0; + + echo "

LEITUNG, DIE INNERHALB DIESER KAMPAGNE AUFBEREITET:   $NWB#vicidial_lead_recycle$NWE
\n"; + echo "\n"; + echo "\n"; + + while ($recycle_to_print > $o) + { + $recycle_limit=0; + if (strlen($camp_lists) > 2) + { + $stmt="SELECT count(*) from vicidial_list where status='$RECYCLE_status[$o]' and list_id IN($camp_lists) and called_since_last_reset IN($RECYCLE_count[$o]);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $counts_to_print = mysql_num_rows($rslt); + if ($counts_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + $recycle_limit = $rowx[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $o++; + } + + echo "
STATUSVERSUCH VERZÖGERTVERSUCH MAXIMUMLEADS AT LIMITAKTIV LÖSCHUNG
  $RECYCLE_status[$o]
\n"; + echo "\n"; + echo "\n"; + echo "
$recycle_limit   LÖSCHUNG
\n"; + + echo "
ADDIEREN SIE NEUE KAMPAGNE LEITUNG AUFBEREITEN
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Status:   \n"; + echo "Versuch Verzögert: \n"; + echo "Versuch Maximum: \n"; + echo "
\n"; + + echo "

\n"; + echo "
\n"; + echo "* Blei zählt, die aus dem aktiven Listen in der Kampagne nur.\n"; + } + + ##### CAMPAIGN AUTO-ALT-NUMBER DIALING ##### + if ($SUB==26) + { + echo "

SELBSTALT ZAHL, DIE FÜR DIESE KAMPAGNE WÄHLT:   $NWB#vicidial_auto_alt_dial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $auto_alt_dial_statuses = preg_replace("/ -$/","",$auto_alt_dial_statuses); + $AADstatuses = explode(" ", $auto_alt_dial_statuses); + $AADs_to_print = (count($AADstatuses) -1); + + $o=0; + while ($AADs_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $o++; + + echo "\n"; + echo "\n"; + } + + echo "
STATUSESLÖSCHUNG
$AADstatuses[$o]LÖSCHUNG
\n"; + + echo "
ADDIEREN SIE NEUE ZAHL-WÄHLENDEN STATUS DES AUTOMOBIL-ALT
\n"; + echo "\n"; + echo "\n"; + echo "Status:   \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN PAUSE CODES ##### + if ($SUB==27) + { + echo "

MITTEL-PAUSE CODES FÜR DIESE KAMPAGNE:   $NWB#vicidial_pause_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
PAUSE CODESVERRECHENBARÄNDERN SieLÖSCHUNG
$rowx[0]\n"; + echo "\n"; + echo "\n"; + echo "  \n"; + echo "
LÖSCHUNG
\n"; + + echo "
ADDIEREN SIE NEUEN MITTEL-PAUSE CODE
\n"; + echo "\n"; + echo "\n"; + echo "Pause Code: \n"; + echo "Pause Code-Name: \n"; + echo "   Verrechenbar: \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN QC SETTINGS ##### + if ( ($SUB==28) and ($SSqc_features_active > 0) ) + { + $stmt="SELECT list_id,list_name,active from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $qc_lists_list=''; + + $p=0; + while ($lists_to_print > $p) + { + $rowx=mysql_fetch_row($rslt); + $qc_lists_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "

QK-EINSTELLUNGEN für diese Kampagne:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; +# echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + echo "QC aktiv: $NWB#vicidial_campaigns-qc_enabled$NWE
QK-Status:
$NWB#vicidial_campaigns-qc_statuses$NWE
$qc_statuses_list
QC Lists:
$NWB#vicidial_campaigns-qc_lists$NWE
$qc_lists_list
QC-Webformular:$NWB#vicidial_campaigns-qc_web_form_address$NWE
QC-Script: $NWB#vicidial_campaigns-qc_script$NWE
QC-Shift: $NWB#vicidial_campaigns-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_campaigns-qc_get_record_launch$NWE
QC Show-Aufnahme: $NWB#vicidial_campaigns-qc_show_recording$NWE
\n"; + echo "

\n"; + } + + ##### CAMPAIGN SURVEY SETTINGS ##### + if ($SUB=='20A') + { + + echo "

UMFRAGE EINSTELLUNGEN für diese Kampagne:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "
Umfrage Erste Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Umfrage DTMF Digits: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
Umfrage nicht interessiert Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Umfrage Opt-in Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Umfrage nicht interessiert Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Umfrage-Methode: $NWB#vicidial_campaigns-survey_method$NWE
Umfrage Nr. Response-Aktion: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Umfrage kein Interesse Status: $NWB#vicidial_campaigns-survey_ni_status$NWE
Umfrage dritte Ziffer: $NWB#vicidial_campaigns-survey_third_digit$NWE
Umfrage Dritten Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Umfrage Dritten Status: $NWB#vicidial_campaigns-survey_third_status$NWE
Umfrage dritte Erweiterung: $NWB#vicidial_campaigns-survey_third_exten$NWE
Umfrage vierte Stelle: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Umfrage Vierte Audio-Datei: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Umfrage Vierte Status: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Umfrage Vierte Verlängerung: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Antworten Digit Karte: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Umfrage Umfrage XFER Erweiterung: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Umfrage Kampagne Aufnahme Directory: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
Voicemail: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; + echo "

\n"; + } + + + if ($SUB < 1) + { + echo "

\n"; + echo "LOGGEN SIE ALLE MITTEL AUS DIESER KAMPAGNE HERAUS

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + + if ($LOGdelete_campaigns > 0) + { + echo "

LÖSCHEN SIE DIESE KAMPAGNE\n"; + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } +} + + +###################### +# ADD=34 modify campaign info in the system - Basic View +###################### + +if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==34) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $display_dialable_count = $row[39]; + $dial_method = $row[46]; + $adaptive_intensity = $row[51]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $list_order_mix = $row[64]; + $default_xfer_group = $row[67]; + $campaign_allow_inbound = $row[65]; + $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active < 1) + { + echo ""; + } + echo "
$row[0]: Grundlegende Ansicht Detail-Ansicht US-Mix Echtzeit Bildschirm  
\n"; + + if ($SUB < 1) + { + echo "
\n"; + echo ""; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "ENTFERNEN Sie\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Kampagne Identifikation: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Kampagne Name: $NWB#vicidial_campaigns-campaign_name$NWE
Kampagne Beschreibung: $row[57]$NWB#vicidial_campaigns-campaign_description$NWE
Kampagne Datum ändern: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Kampagne Login Datum: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Aktiv:$NWB#vicidial_campaigns-active$NWE
Park-Verlängerung: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Netz-Form: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Erlauben Sie Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Rückstellung Übergangsgruppe:$default_xfer_group $NWB#vicidial_campaigns-default_xfer_group$NWE
Erlauben Sie Inbound und gemischt:$campaign_allow_inbound $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Vorwahlknopf-Status$o: \n"; + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Status:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Liste Auftrag: $NWB#vicidial_campaigns-lead_order$NWE
US-Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Leitung Filter: $NWB#vicidial_campaigns-lead_filter_id$NWE
Zufuhrbehälter-Niveau: $NWB#vicidial_campaigns-hopper_level$NWE
Kraft-Zurückstellen des Zufuhrbehälters: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Vorwahlknopf-Methode: $NWB#vicidial_campaigns-dial_method$NWE
Selbstvorwahlknopf-Niveau: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Passen Sie Intensität Modifizierfaktor An: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Script: $script_id
Erhalten Sie Anruf-Produkteinführung: $get_call_launch
\n"; + + echo "
\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
LISTEN INNERHALB DIESER KAMPAGNE:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
LISTE IDENTIFIKATIONLISTE NAMEBESCHREIBUNGLEADS COUNTAKTIVLAST CALL DATUMÄNDERN Sie
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]ÄNDERN Sie

\n"; + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Diese Kampagne hat$active_lists aktive Listen und$inactive_lists unaktivierte Listen

\n"; + + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - Verberge

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - Zeige

"; + } + + + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Diese Kampagne hat$hopper_leads Leitungen im Vorwahlknopfzufuhrbehälter

\n"; + echo "Klicken Sie hier, um zu sehen, welche Leitungen im Zufuhrbehälter imAugenblick sind

\n"; + echo "Klicken Sie hier, um ein VDAD Bericht für diese Kampagne

\n"; + } + echo "Klicken Sie hier, um alle Wiederholungsbesuch Einflüsse in dieserKampagne zu sehen

\n"; + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Kampagne
\n"; + } + + echo "
\n"; + + echo "
\n"; + + ### list of agent rank or skill-level for this campaign + echo "
\n"; + echo "
MITTEL-RANK FÜR DIESE KAMPAGNE:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + + echo "LOGGEN SIE ALLE MITTEL AUS DIESER KAMPAGNE HERAUS

\n"; + + + if ($LOGdelete_campaigns > 0) + { + echo "

LÖSCHEN SIE DIESE KAMPAGNE\n"; + } + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } +} + + +###################### +# ADD=31 or 34 and SUB=29 for list mixes +###################### +if ( ( ($ADD==34) or ($ADD==31) ) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ( ($ADD==34) or ($ADD==31) ) +{ + if ($LOGmodify_campaigns==1) + { + ##### CAMPAIGN LIST MIX SETTINGS ##### + if ($SUB==29) + { + ##### get list_id listings for dynamic pulldown + $stmt="SELECT list_id,list_name from vicidial_lists where campaign_id='$campaign_id' order by list_id"; + $rslt=mysql_query($stmt, $link); + $mixlists_to_print = mysql_num_rows($rslt); + $mixlists_list=""; + + $o=0; + while ($mixlists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixlists_list .= "\n"; + $mixlistsname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + + echo "

LISTE MISCHUNGEN FÜR DIESE KAMPAGNE:  $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; + + echo "
WARNUNG, empfehlen wir nur Liste Mix für fortgeschrittene Anwender, Bitte lesen Sie die ViciDial Manager-Handbuch
\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } + + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $rslt=mysql_query($stmt, $link); + $listmixes = mysql_num_rows($rslt); + $o=0; + while ($listmixes > $o) + { + $rowx=mysql_fetch_row($rslt); + $vcl_id=$rowx[0]; + $o++; + + if ($o < 2) + {$tablecolor='bgcolor="#99FF99"'; $bgcolor='bgcolor="#CCFFCC"';} + else + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$tablecolor='bgcolor="#B9CBFD"'; $bgcolor='bgcolor="#9BB9FB"';} + else + {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} + } + echo "
\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + } + else + {echo "$rowx[5]\n";} + echo "\n"; + echo "\n"; + +# list_id|order|percent|statuses|:list_id|order|percent|statuses|:... +# 101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -| +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX','TESTCAMP List Mix','TESTCAMP','101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX2','TESTCAMP List Mix2','TESTCAMP','101|1|20| A B -|:102|2|45| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX3','TESTCAMP List Mix3','TESTCAMP','101|1|30| A NA -|:102|2|35| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); + + $MIXentries = $MT; + $MIXentries = explode(":", $rowx[3]); + $Ms_to_print = (count($MIXentries) - 0); + $q=0; + while ($Ms_to_print > $q) + { + $MIXdetails = explode('|', $MIXentries[$q]); + $MIXdetailsLIST = $MIXdetails[0]; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $r=0; + while ($Ds_to_print > $r) + { + $r++; + $Dsql .= "'$Dstatuses[$r]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "\n"; + + + echo "\n"; + + + $q++; + + } + + + + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + $X='X'; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$vcl_id:\n"; + echo "\n"; + echo "     DELETE LIST MIX
Status:\n"; + if ($rowx[5]=='INACTIVE') + { + echo "$rowx[5]\n"; + echo "STELLEN SIE AUF AKTIVES EINMethod:\n"; + echo "
LISTE IDENTIFIKATIONPRIORITY% MIXSTATUSES
\n"; + echo "\n"; + echo "List: $MIXdetailsLIST   ENTFERNEN Sie\n"; + + + + echo " \n"; + echo "ADD   \n"; + echo "ENTFERNEN Sie\n"; + echo "
\n"; + echo "Difference %: \n"; + echo "   \n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "List: \n"; + + if ($q > 39) {$AE_disabled = 'DISABLED';} + else {$AE_disabled = '';} + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "ENTFERNEN Sie\n"; + echo "
\n"; + } + + + echo "

ADDIEREN SIE NEUE LISTE MIX
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Mix ID: Mix Name: Mix Method: "; + echo "
List: Dial Status:  
\n"; + + echo "
\n"; + + } + } + echo "
\n"; +} + + +###################### +# ADD=30 campaign not allowed +###################### + +if ($ADD==30) +{ +echo "
\n"; + echo ""; +echo "You do not have permission to view campaign $campaign_id\n"; +} + + +###################### +# ADD=32 display all campaign statuses +###################### +if ($ADD==32) +{ +echo "
\n"; + echo ""; + +echo "
KUNDENSPEZIFISCHE KAMPAGNE STATUS-AUFLISTUNGEN:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNAMESTATUSESÄNDERN Sie
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_statuses where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY STATUSES
\n"; +} + + +###################### +# ADD=33 display all campaign hotkeys +###################### +if ($ADD==33) +{ +echo "
\n"; + echo ""; + +echo "
KAMPAGNE HOTKEYS AUFLISTUNGEN:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNAMEHOTKEYSÄNDERN Sie
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_hotkeys where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY HOTKEYS
\n"; +} + + +###################### +# ADD=35 display all campaign lead recycle entries +###################### +if ($ADD==35) +{ +echo "
\n"; + echo ""; + +echo "
KAMPAGNE LEITUNG BEREITEN AUFLISTUNGEN AUF:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNAMELEITUNG BEREITET AUFÄNDERN Sie
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_lead_recycle where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY LEITUNG BEREITET AUF
\n"; +} + + +###################### +# ADD=36 display all campaign auto-alt dial entries +###################### +if ($ADD==36) +{ +echo "
\n"; + echo ""; + +echo "
KAMPAGNE LEITUNG AUTO-ALT VORWAHLKNOPF-AUFLISTUNGEN:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNAMEAUTO-ALT DIALÄNDERN Sie
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaigns_id_list[$o]';"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if (strlen($row[0])<3) + {echo "NONE";} + echo "MODIFY AUTO-ALT DIAL
\n"; +} + + +###################### +# ADD=37 display all campaign agent pause codes +###################### +if ($ADD==37) +{ +echo "
\n"; + echo ""; + +echo "
KAMPAGNE MITTEL-PAUSE CODE-AUFLISTUNGEN:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNAMEPAUSE CODESÄNDERN Sie
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT pause_code from vicidial_pause_codes where campaign_id='$campaigns_id_list[$o]' order by pause_code;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY PAUSE CODES
\n"; +} + + +###################### +# ADD=39 display all campaign list mixes +###################### +if ($ADD==39) +{ +echo "
\n"; + echo ""; + +echo "
KAMPAGNE LISTE MISCHUNG AUFLISTUNGEN:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNAMELIST MIXÄNDERN Sie
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT vcl_id from vicidial_campaigns_list_mix where campaign_id='$campaigns_id_list[$o]' order by status,vcl_id;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY LIST MIX
\n"; +} + + + + + +###################### +# ADD=311 modify list info in the system +###################### + +if ($ADD==311) + { + if ($LOGmodify_lists==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; + + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names + + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
ÄNDERN Sie Einen LISTEN SATZ: $list_id
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "
Liste Identifikation: $list_id$NWB#vicidial_lists-list_id$NWE
Liste Name: $NWB#vicidial_lists-list_name$NWE
Liste Beschreibung: $NWB#vicidial_lists-list_description$NWE
Kampagne: $NWB#vicidial_lists-campaign_id$NWE
Aktiv:$NWB#vicidial_lists-active$NWE
Stellen Sie Führen-Benennen-Status für diese Liste zurück: $NWB#vicidial_lists-reset_list$NWE
Reset Times: $NWB#vicidial_lists-reset_time$NWE
Liste Änderung Datum: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
US-Last Call Date: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agent Script Override: $NWB#vicidial_lists-agent_script_override$NWE
Kampagne CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
Anrufbeantworter Nachricht Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
Drop Inbound-Fraktion Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
BringenSie Zahl 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
BringenSie Zahl 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
BringenSie Zahl 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
BringenSie Zahl 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
BringenSie Zahl 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; + + echo "
\n"; + echo "
STATUS INNERHALB DIESER LISTE:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 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"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
STATUSSTATUS-NAMEBENANNTNICHT BENANNT
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
ZEIT-ZONEN INNERHALB DIESER LISTE:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
GMT VERSETZTE JETZT (lokale Zeit)BENANNTNICHT BENANNT
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
PRIVAT in dieser Liste:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERBENANNTNICHT BENANNT
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
RANKS in dieser Liste:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
RANKBENANNTNICHT BENANNT
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
TEILSUMMEN$lead_list[Y_count]$lead_list[N_count]
GESAMTMENGE$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
BENANNTE ZÄHLIMPULSE INNERHALB DIESER LISTE:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; + + $sts=0; + $statuses_called_to_print = count($status); + while ($statuses_called_to_print > $sts) + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; + $first++; + } + echo "\n"; + + echo "
STATUSSTATUS-NAME$first$FplusTEILSUMME
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
GESAMTMENGE$all_called_count[$first]$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Klicken Sie hier, um zu sehen, alle CallBack Platz in dieser Liste

\n"; + echo "

Klicken Sie hier, um diese Liste

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

LÖSCHEN SIE DIESE LISTE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Liste
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + +###################### +# ADD=3111 modify in-group info in the system +###################### + +if ($ADD==3111) + { + if ($LOGmodify_ingroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + + echo "
ÄNDERN Sie Einen GRUPPEN SATZ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
Gruppe Identifikation: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Gruppe Name: $NWB#vicidial_inbound_groups-group_name$NWE
Gruppe Farbe: $NWB#vicidial_inbound_groups-group_color$NWE
Aktiv:$NWB#vicidial_inbound_groups-active$NWE
Netz-Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Netz-Form Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Folgender Vertreter-Anruf: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Queue-Priorität: $NWB#vicidial_inbound_groups-queue_priority$NWE
Fronter Anzeige: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Erhalten Sie Anruf-Produkteinführung: $NWB#vicidial_inbound_groups-get_call_launch$NWE
BringenSie DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
BringenSie Zahl 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Timer-Aktion: $NWB#vicidial_inbound_groups-timer_action$NWE
Timer-Aktion Message: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Timer-Aktion Sekunden: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Verbindungsaufbau Sekunden: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop-Aktion:$NWB#vicidial_inbound_groups-drop_action$NWE
Verbindungsaufbaunebenstelle: $NWB#vicidial_inbound_groups-drop_exten$NWE
Voicemail: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop-Transfer-Gruppe:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Anruf-Zeit:$NWB#vicidial_inbound_groups-call_time_id$NWE
Nach Stunden Tätigkeit:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Nach Stunden Anzeige Dateinamen: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Nach Stunden Verlängerung:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Nach Stunden Voicemail: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
After Hours Transfer-Gruppe:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Nr. Bevollmächtigte Nr. Queueing: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
Kein Agent Nr. Queue Aktion: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Call-Menü:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   Liste Identifikation: "; + echo "
Kampagne Identifikation: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Erweiterung:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Voicemail-Box: voicemail chooser\n"; + } + + echo "
+
 
Willkommener Anzeige Dateiname: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Jetzt Grußwort:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Musik Auf Einfluß-Kontext: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
Auf Einfluß-Aufforderung Dateinamen: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Auf Einfluß-Aufforderung Abstand:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Jetzt im Einklang:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Jetzt Geschätzte Hold Time:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Hold Time Option:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Hold Time Option Sekunden:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Hold Time Option Extension:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Hold Time Option Voicemail: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Hold Time Option Transfer In-Group:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Hold Time Option Rückruf Dateiname: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Hold Time Option Liste Rückruf-ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agent Alert Dateiname: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
Mittel-Alarm Verzögert:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Rückstellung Übergangsgruppe:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Standard-Alias-Gruppe: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Hold Recall Transfer In-Group:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Nr. Delay Call Route:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
In-Group-Aufnahme AllowOverride:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
In-Group-Aufnahme Dateiname:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Statistiken Prozent der Anrufe innerhalb von X Sekunden 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Statistiken Prozent der Anrufe innerhalb von X Sekunden 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Start Call URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Inbound-Fraktion QC Einstellungen:
QC aktiv: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QK-Status:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC-Webformular:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC-Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC-Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Show-Aufnahme: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; + echo "

\n"; + + + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
MITTELRANKS FOR THIS INBOUND GROUP:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Klicken Sie hier, um zu sehen, einen Bericht für diese Gruppe ein -

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "KAMPAGNEN, diese Erlaubnis in-group:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

LÖSCHEN SIE DIESES IN-GROUP\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser In-Group\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + +###################### +# ADD=3311 modify did info in the system +###################### + +if ($ADD==3311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFY eine DID RECORD:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
DID-Erweiterung:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID-Beschreibung:$NWB#vicidial_inbound_dids-did_description$NWE
Aktiv:$NWB#vicidial_inbound_dids-did_active$NWE
DID-Route:$NWB#vicidial_inbound_dids-did_route$NWE
Erweiterung:$NWB#vicidial_inbound_dids-extension$NWE
Erweiterung Kontext:$NWB#vicidial_inbound_dids-exten_context$NWE
Voicemail-Box: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Tel. Durchwahl:$NWB#vicidial_inbound_dids-phone$NWE
Bediener IP: $NWB#vicidial_inbound_dids-server_ip$NWE
Call-Menü: $NWB#vicidial_inbound_dids-menu_id$NWE
User Agent:$NWB#vicidial_inbound_dids-user$NWE
User-Aktion nicht verfügbar:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
User-Einstellungen In Route-Gruppe:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-Gruppe Identifikation: $NWB#vicidial_inbound_dids-group_id$NWE
In-Group Call Griff Methode:$NWB#vicidial_inbound_dids-call_handle_method$NWE
In-Group-Agent Suche Methode:$NWB#vicidial_inbound_dids-agent_search_method$NWE
In-Group US-ID:$NWB#vicidial_inbound_dids-list_id$NWE
In-Group Kampagnen-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
In-Group Telefon Code:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Klicken Sie hier, um ein Traffic-Bericht für das DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

DELETE Das war\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser DID\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
Ändern einer CALL MENU RECORD: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Menü-ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
Prompt Menu: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Menü-Timeout: $NWB#vicidial_call_menu-menu_timeout$NWE
Menü-Timeout Prompt: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Prompt Menu Ungültige: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Menü wiederholen: $NWB#vicidial_call_menu-menu_repeat$NWE
Menü Time Check: $NWB#vicidial_call_menu-menu_time_check$NWE
Anruf-Zeit:$NWB#vicidial_call_menu-call_time_id$NWE
Track fordert in Real-Time-Report: $NWB#vicidial_call_menu-track_in_vdac$NWE
Tracking-Fraktion: $NWB#vicidial_call_menu-tracking_group$NWE
Call-Optionen-Menü:
+ Option: $dtmf_list   + Beschreibung: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Call-Menü:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   Liste Identifikation: "; + echo "
Kampagne Identifikation: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Erweiterung:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Voicemail-Box: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Option: $dtmf_list   + Beschreibung: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan Eintrag:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan Eintrag: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

DELETE THIS CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um Admin chages vgl. in diesem CALL MENU
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + +###################### +# ADD=31111 modify remote agents info in the system +###################### + +if ($ADD==31111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Benutzernummer Anfang: (nur Zahlen, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Zeilenzahl: (nur Zahlen)$NWB#vicidial_remote_agents-number_of_lines$NWE
Bediener IP: $NWB#vicidial_remote_agents-server_ip$NWE
Externe Verlängerung: (dial plan Zahl wählte, um Mittel zu erreichen)$NWB#vicidial_remote_agents-conf_exten$NWE
Status:$NWB#vicidial_remote_agents-status$NWE
Kampagne: $NWB#vicidial_remote_agents-campaign_id$NWE
Inbound Gruppen: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

LÖSCHEN SIE DIESES REMOTEMITTEL\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Remote Agent
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=311111 modify user group info in the system +###################### + +if ($ADD==311111) + { + if ($LOGmodify_usergroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
ÄNDERN Sie Eine BENUTZER-GRUPPE EINTRAGUNG\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + + echo "\n"; + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Gruppe: (keine Räume oder Interpunktion)$NWB#vicidial_user_groups-user_group$NWE
Beschreibung: (Beschreibung der Gruppe)$NWB#vicidial_user_groups-group_name$NWE
ForceTimeclock Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift Vollstreckung: $NWB#vicidial_user_groups-shift_enforcement$NWE
Erlaubte Kampagnen:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Gruppe Verschiebungen:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; + } + echo "
 
Agent Status Sichtbare Gruppen:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } + echo "
 
Agent Status View Time: $NWB#vicidial_user_groups-agent_status_view_time$NWE
QC erlaubt Kampagnen:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC erlaubt Inbound Gruppen:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; + + + ### list of users in this user group + + $active_confs = 0; + $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + echo "
\n"; + echo "
BENUTZER INNERHALB DIESER BENUTZER-GRUPPE: $users_to_print
\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
USERFULL NAMELEVELAKTIV
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Klicken Sie hier, um zu sehen, alle CallBack Platz in dieser Gruppe

\n"; + echo "

Klicken Sie hier, um zu sehen, dieTimeclock Status für diese Gruppe

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

LÖSCHEN SIE DIESE BENUTZER-GRUPPE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Benutzergruppe
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=3111111 modify script info in the system +###################### + +if ($ADD==3111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
ÄNDERN Sie Einen INDEX\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Index Identifikation: $script_id$NWB#vicidial_scripts-script_name$NWE
Index-Name: (Titel dem Index)$NWB#vicidial_scripts-script_name$NWE
Index-Anmerkungen: $NWB#vicidial_scripts-script_comments$NWE
Aktiv:$NWB#vicidial_scripts-active$NWE
Index-Text:

Vorbetrachtung-Index
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " KAMPAGNEN USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " IN-GROUPS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

LÖSCHEN SIE DIESEN INDEX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Skript\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=31111111 modify filter info in the system +###################### + +if ($ADD==31111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; + + echo "
ÄNDERN Sie Einen FILTER\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Filter Identifikation:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Filter-Name: (kurze Beschreibung des Filter)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Filter-Anmerkungen: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filter Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + echo "

"; + echo "
Testen der Kampagne:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + if ($LOGdelete_filters > 0) + { + echo "

LÖSCHEN SIE DIESEN FILTER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages dieser Filter\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=321111111 modify call time definition info in the system +###################### + +if ($ADD==321111111) + { + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Landesrichtlinie hinzugefügt: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Landesrichlinie gelöscht: $state_rule
\n"; + } + + $ADD=311111111; + } + else + { + echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; + } + } + + +###################### +# ADD=311111111 modify call time definition info in the system +###################### + +if ($ADD==311111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
Bearbeite eine Anrufzeit\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Anrufzeit ID: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Anrufzeit Name: (Kurze Beschreibung der Anrufzeit)$NWB#vicidial_call_times-call_time_name$NWE
Anrufzeit Kommentare: $NWB#vicidial_call_times-call_time_comments$NWE
Standard Start Standard Stop $NWB#vicidial_call_times-ct_default_start$NWE
Sonntag Start Sonntag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Montag Start Montag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Dienstag Start Dienstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Mittwoch Start Mittwoch Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Donnerstag Start Donnerstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Freitag Start Freitag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Sonnabend Start Sonnabend Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Aktive landesspezifische Anrufzeit Definitionen für diese Aufnahme:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "Kampagnen, die diese Anrufzeit nutzen:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "INBOUND GROUPS USING THIS CALL TIME:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

Lösche diese Anrufzeit Definition\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Aufforderung Zeit\n"; + } + } + else + { + echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; + } + + } + + +###################### +# ADD=3111111111 modify state call time definition info in the system +###################### + +if ($ADD==3111111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
Bearbeite eine landesspezifische Anrufzeit
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Anrufzeit ID: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Landesspezifischer Anrufzeiten Name: (Kurze Beschreibung der Anrufzeit)$NWB#vicidial_call_times-call_time_name$NWE
Landesspezifischer Anrufzeiten Kommentar: $NWB#vicidial_call_times-call_time_comments$NWE
Standard Start Standard Stop $NWB#vicidial_call_times-ct_default_start$NWE
Sonntag Start Sonntag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Montag Start Montag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Dienstag Start Dienstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Mittwoch Start Mittwoch Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Donnerstag Start Donnerstag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Freitag Start Freitag Stop $NWB#vicidial_call_times-ct_sunday_start$NWE
Sonnabend Start Sonnabend Stop $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "Anrufzeiten, die diese landesspezifische Anrufzeit benutzen:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

Diese landesspezifische Anrufzeitdefinition löschen\n"; + } + } + else + { + echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; + } + } + + +###################### +# ADD=331111111 modify shift definition info in the system +###################### + +if ($ADD==331111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
MODIFY A SHIFT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift-ID:$shift_id
Shift Name: (Kurze Beschreibung der Verlagerung)$NWB#vicidial_shifts-shift_name$NWE
Start Time Shift:\n"; + echo "   Shift End Time:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Shift Länge: $NWB#vicidial_shifts-shift_length$NWE
Shift der Woche:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Sonntag
\n"; + echo "Montag
\n"; + echo "Dienstag
\n"; + echo "Mittwoch
\n"; + echo "Donnerstag
\n"; + echo "Freitag
\n"; + echo "Samstag
\n"; + echo "
\n"; + + echo "


\n"; + echo "USER-Gruppen, die diese Verschiebung:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

DELETE Diese Verschiebung DEFINITION\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Verschiebung\n"; + } + } + else + { + echo "Sie haben nicht die Rechte, um diese Seite anzusehen. Bitte zurück gehen."; + } + + } + + +###################### +# ADD=31111111111 modify phone record in the system +###################### + +if ($ADD==31111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
ÄNDERN Sie Einen TELEFON-SATZ: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Telefonverlängerung: $NWB#phones-extension$NWE (Agent Screen Telefon-LOGON)
Dial Plan Zahl: (nur Stellen)$NWB#phones-dialplan_number$NWE
Voicemail-Box: (nur Stellen)$NWB#phones-voicemail_id$NWE
Outbound CallerID: (nur Stellen)$NWB#phones-outbound_cid$NWE
Telefon-IP address: (optional)$NWB#phones-phone_ip$NWE
Computer-IP address: (optional)$NWB#phones-computer_ip$NWE
Bediener IP: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Kennwort:$NWB#phones-pass$NWE
Status:$NWB#phones-status$NWE
Aktives Konto: $NWB#phones-active$NWE
Telefon-Art: $NWB#phones-phone_type$NWE
Voller Name: $NWB#phones-fullname$NWE
E-Mail: $NWB#phones-email$NWE
Löschen Voicemail Nach E-Mail: $NWB#phones-delete_vm_after_email$NWE
Firma:$NWB#phones-company$NWE
Abbildung:$NWB#phones-picture$NWE
Neue Anzeigen: $row[14]$NWB#phones-messages$NWE
Alte Anzeigen: $row[15]$NWB#phones-old_messages$NWE
Klient Protokoll: $NWB#phones-protocol$NWE
Lokales GMT: (Stellen Sie NICHT auf DST ein)$NWB#phones-local_gmt$NWE
Telefon Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
Manager-LOGON: $NWB#phones-ASTmgrUSERNAME$NWE
Manager-Geheimnis: $NWB#phones-ASTmgrSECRET$NWE
VICIDIAL Rückstellung Benutzer: $NWB#phones-login_user$NWE
VICIDIAL Rückstellung Durchlauf: $NWB#phones-login_pass$NWE
VICIDIAL Rückstellung Kampagne: $NWB#phones-login_campaign$NWE
Park Exten: $NWB#phones-park_on_extension$NWE
Conf Exten: $NWB#phones-conf_on_extension$NWE
VICIDIAL Park Exten: $NWB#phones-VICIDIAL_park_on_extension$NWE
VICIDIAL Park-Akte: $NWB#phones-VICIDIAL_park_on_filename$NWE
Überwachen Sie Präfix: $NWB#phones-monitor_prefix$NWE
Aufnahme Exten: $NWB#phones-recording_exten$NWE
VMailMain Exten: $NWB#phones-voicemail_exten$NWE
VMailDump Exten: $NWB#phones-voicemail_dump_exten$NWE
Exten Kontext: $NWB#phones-ext_context$NWE
Telefon Kontext: $NWB#phones-phone_context$NWE
Conf-Datei Secret: $NWB#phones-conf_secret$NWE
DTMFSend Führung: $NWB#phones-dtmf_send_extension$NWE
Outbound Anruf-Gruppe: $NWB#phones-call_out_number_group$NWE
Datenbanksuchroutine-Position: $NWB#phones-client_browser$NWE
Bringen Sie Verzeichnis An: $NWB#phones-install_directory$NWE
CallerID URL: $NWB#phones-local_web_callerID_URL$NWE
VICIDIAL Rückstellung URL: $NWB#phones-VICIDIAL_web_URL$NWE
Anruf-Protokollierung: $NWB#phones-AGI_call_logging_enabled$NWE
Benutzer-Schaltung: $NWB#phones-user_switching_enabled$NWE
Conferencing: $NWB#phones-conferencing_enabled$NWE
Admin Hängezustand: $NWB#phones-admin_hangup_enabled$NWE
Admin Straßenräuber: $NWB#phones-admin_hijack_enabled$NWE
Admin Monitor: $NWB#phones-admin_monitor_enabled$NWE
Parkschaltung: $NWB#phones-call_parking_enabled$NWE
Updater Überprüfung: $NWB#phones-updater_check_enabled$NWE
Af Protokollierung: $NWB#phones-AFLogging_enabled$NWE
Warteschlange Ermöglicht: $NWB#phones-QUEUE_ACTION_enabled$NWE
CallerID Popup: $NWB#phones-CallerID_popup_enabled$NWE
VMail Taste: $NWB#phones-voicemail_button_enabled$NWE
Schnell Erneuern Sie: $NWB#phones-enable_fast_refresh$NWE
Schnell Erneuern Sie Rate: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Selbstvorwahlknopf-Folgende Zahl: $NWB#phones-auto_dial_next_number$NWE
Stoppen Sie Rec nach jedem Anruf: $NWB#phones-VDstop_rec_after_each_call$NWE
Ermöglichen Sie SIPSAK Anzeigen: $NWB#phones-enable_sipsak_messages$NWE
DBX Bediener: (HauptsächlichDB Server)$NWB#phones-DBX_server$NWE
DBX Datenbank: (HauptsächlichServer Database)$NWB#phones-DBX_database$NWE
DBX Benutzer: (HauptsächlichDB Login)$NWB#phones-DBX_user$NWE
DBX Durchlauf: (HauptsächlichDB Secret)$NWB#phones-DBX_pass$NWE
DBX Tor: (HauptsächlichDB Port)$NWB#phones-DBX_port$NWE
DBY Bediener: (ZweitensDB Server)$NWB#phones-DBY_server$NWE
DBY Datenbank: (ZweitensServer Database)$NWB#phones-DBY_database$NWE
DBY Benutzer: (ZweitensDB Login)$NWB#phones-DBY_user$NWE
DBY Durchlauf: (ZweitensDB Secret)$NWB#phones-DBY_pass$NWE
DBY Tor: (ZweitensDB Port)$NWB#phones-DBY_port$NWE
Vorlagen-ID: $NWB#phones-template_id$NWE
Conf AllowOverride: $NWB#phones-conf_override$NWE
\n"; + + echo "

Klicken Sie hier für Telefonnotfall\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

LÖSCHEN SIE DIESES TELEFON\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=32111111111 modify phone alias record in the system +###################### + +if ($ADD==32111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFY A Telefon ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias-ID:$row[0] $NWB#phones-alias_id$NWE
Alias-Name: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
PHONES IN DIESER PHONES ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGINVERLÄNGERUNGSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Dieses Telefon ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Telefon Alias
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=33111111111 modify group alias record in the system +###################### + +if ($ADD==33111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFY A GROUP ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias-ID-Gruppe: $row[0] $NWB#phones-group_alias_id$NWE
Gruppe Alias-Name: $NWB#phones-group_alias_name$NWE
CallerID Anzahl: $NWB#phones-caller_id_number$NWE
CallerID Name: $NWB#phones-caller_id_name$NWE
Aktiv:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Diese Gruppe ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Gruppe Alias
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=311111111111 modify server record in the system +###################### + +if ($ADD==311111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; + + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + + echo "
ÄNDERN Sie Einen BEDIENER-SATZ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Bediener Identifikation: $NWB#servers-server_id$NWE
Bediener-Beschreibung: $NWB#servers-server_description$NWE
Bediener-IP address: $NWB#servers-server_ip$NWE
Aktiv:$NWB#servers-active$NWE
System Load: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live-Channels: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
Sternchen-Version: $NWB#servers-asterisk_version$NWE
Maximale VICIDIAL Stämme: $NWB#servers-max_vicidial_trunks$NWE
Max Calls pro Sekunde: $NWB#servers-outbound_calls_per_second$NWE
VICIDIAL Balance Wählen: $NWB#servers-vicidial_balance_active$NWE
VICIDIAL Balance Rang: $NWB#servers-vicidial_balance_rank$NWE
VICIDIAL Balance Offlimits: $NWB#servers-balance_trunks_offlimits$NWE
Telnet Wirt: $NWB#servers-telnet_host$NWE
Telnet Tor: $NWB#servers-telnet_port$NWE
Manager-Benutzer: $NWB#servers-ASTmgrUSERNAME$NWE
Manager-Geheimnis: $NWB#servers-ASTmgrSECRET$NWE
Manager-Update-Benutzer: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Manager Hören Benutzer: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Manager Senden Benutzer: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf-Datei Secret: $NWB#servers-conf_secret$NWE
Lokales GMT: (Stellen Sie NICHT auf DST ein)$NWB#servers-local_gmt$NWE
VMail Dump Exten: $NWB#servers-voicemail_dump_exten$NWE
VICIDIAL ANZEIGE Verlängerung: $NWB#servers-answer_transfer_agent$NWE
Rückstellung Kontext: $NWB#servers-ext_context$NWE
System Leistung: $NWB#servers-sys_perf_log$NWE
Bediener-Maschinenbordbücher: $NWB#servers-vd_server_logs$NWE
AGI Ausgang: $NWB#servers-agi_output$NWE
Carrier Aktive Logging: $NWB#servers-carrier_logging_active$NWE
Aufnahme Web-Link: $NWB#servers-recording_web_link$NWE
Alternate Recording Bediener IP: $NWB#servers-alt_server_ip$NWE
Aktive Asterisk Server: $NWB#servers-active_asterisk_server$NWE
Aktive Agent Server: $NWB#servers-active_agent_login_server$NWE
Conf-Dateien erzeugen: $NWB#servers-generate_vicidial_conf$NWE
Rebuild conf-Dateien: $NWB#servers-rebuild_conf_files$NWE
Rebuild Music On Hold: $NWB#servers-rebuild_music_on_hold$NWE
Klingt Update: $NWB#servers-sounds_update$NWE
ViciDial Recording-Limit: $NWB#servers-vicidial_recording_limit$NWE
\n"; + + + ### vicidial server trunk records for this server + echo "

VICIDIAL STÄMME FÜR DIESEN BEDIENER:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
KAMPAGNE STÄMME BESCHRÄNKUNG DELETE
$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "
LÖSCHUNG
\n"; + + echo "
ADDIEREN SIE NEUEN STAMM-SATZ DES BEDIENER-VICIDIAL
\n"; + echo "\n"; + echo "\n"; + echo "Trunks:
\n"; + echo "KAMPAGNE:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "

\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
CARRIERS IN DIESEM SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDNAMEREGISTRATIONAKTIV
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
TELEFONE INNERHALB DIESES BEDIENERS:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VERLÄNGERUNGNAMEAKTIV
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEVERLÄNGERUNG
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEVERLÄNGERUNG
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Dieser Bediener hat $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Dieser Bediener hat $active_phones aktive Telefone und $inactive_phones unaktivierte Telefone

\n"; + echo "Dieser Bediener hat $active_confs active conferences

\n"; + echo "Dieser Bediener hat $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS SERVER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Server
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=331111111111 modify conf template record in the system +###################### + +if ($ADD==331111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; + + echo "
MODIFY A CONF TEMPLATE RECORD: $row[0]
\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Vorlagen-ID: $template_id
Template Name: $NWB#vicidial_conf_templates-template_name$NWE
Template-Inhalt: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
PHONES SIE DIESE CONF TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VERLÄNGERUNGNAMESERVERAKTIV
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
CARRIERS SIE DIESE CONF TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERNAMESERVERAKTIV
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS CONF TEMPLATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu dieser Vorlage conf
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=341111111111 modify carrier record in the system +###################### + +if ($ADD==341111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFY A RECORD CARRIER: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Carrier-ID: $carrier_id
Carrier Name: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Beschreibung: $NWB#vicidial_server_carriers-carrier_description$NWE
Anmeldung String: $NWB#vicidial_server_carriers-registration_string$NWE
Vorlagen-ID: $NWB#vicidial_server_carriers-template_id$NWE
Account-Eintrag: $NWB#vicidial_server_carriers-account_entry$NWE
Protokoll: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Eintrag: $NWB#vicidial_server_carriers-dialplan_entry$NWE
Bediener IP: $NWB#vicidial_server_carriers-server_ip$NWE
Aktiv:$NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS CARRIER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages zu diesem Träger
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
Ändern eines TTS RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS-ID: $tts_id
TTS Name: $NWB#vicidial_tts_prompts-tts_name$NWE
Aktiv:$NWB#vicidial_tts_prompts-active$NWE
TTS Text: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS ENTRY TTS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um Admin chages vgl. in diesem TTS-Eintrag
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $moh_id
Music On Hold Name: $NWB#vicidial_music_on_hold-moh_name$NWE
Aktiv:$NWB#vicidial_music_on_hold-active$NWE
Zufälliger Reihenfolge: $NWB#vicidial_music_on_hold-random$NWE
Audio-Dateien: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rang:\n"; + + echo "   $rowx[0] - LÖSCHUNG
\n"; + $o++; + } + + echo "
Fügen Sie eine Audio-Datei: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE MUSIC ON HOLD ENTRY\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um Admin chages vgl. in diesem Music On Hold-Eintrag
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
Ändern einer Voicemail-Box: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Voicemail-ID: $voicemail_id
Kennwort:$NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
E-Mail:$NWB#vicidial_voicemail-email$NWE
Aktiv:$NWB#vicidial_voicemail-active$NWE
Löschen Voicemail Nach E-Mail: $NWB#vicidial_voicemail-delete_vm_after_email$NWE
Neue Anzeigen: $messages
Alte Anzeigen: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS Voicemail-Box\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um Admin chages vgl. in diesem Voicemail-Box
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=3111111111111 modify conference record in the system +###################### + +if ($ADD==3111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
ÄNDERN Sie Einen KONFERENZ-SATZ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Konferenz:$NWB#conferences-conf_exten$NWE
Bediener IP: $NWB#conferences-server_ip$NWE
Gegenwärtige Verlängerung:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Diese Konferenz\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +###################### +# ADD=31111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==31111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Konferenz:$NWB#conferences-conf_exten$NWE
Bediener IP: $NWB#conferences-server_ip$NWE
Gegenwärtige Verlängerung:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS VICIDIAL KONFERENZ\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + +###################### +# ADD=311111111111111 modify vicidial system settings +###################### + +if ($ADD==311111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; + + echo "
ÄNDERN SIE VICIDIAL SYSTEM EINSTELLUNGEN\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Version: $version
DB Schema Version: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto User-add Value: $auto_user_add_value
Installieren Datum: $install_date
Gebrauch Nicht-Lateinisch: $NWB#settings-use_non_latin$NWE
Webroot Schreibbar: $NWB#settings-webroot_writable$NWE
VICIDIAL Mittel Sperren Anzeige: $NWB#settings-vicidial_agent_disable$NWE
Erlauben Sie SIPSAK Anzeigen: $NWB#settings-allow_sipsak_messages$NWE
Admin Haupt-URL: $NWB#settings-admin_home_url$NWE
Ermöglichen Sie Vertreter-Übergangsprotokolldatei: $NWB#settings-enable_agc_xfer_log$NWE
Timeclock End-of-Day:$NWB#settings-timeclock_end_of_day$NWE
LetzteTimeclock Auto Logout: $timeclock_last_reset_date
Agent-Header Datum Screen Format: $NWB#settings-vdc_header_date_format$NWE
Agent Screen Kunden Datum Format: $NWB#settings-vdc_customer_date_format$NWE
Agent Screen Kunden Telefon Format: $NWB#settings-vdc_header_phone_format$NWE
Agent API Aktive:$NWB#settings-vdc_agent_api_active$NWE
Agent Only Rückruf-Lock-Kampagne: $NWB#settings-agentonly_callback_campaign_lock$NWE
Central Sound Control Aktiv:$NWB#settings-sounds_central_control_active$NWE
Sounds Web Server: $NWB#settings-sounds_web_server$NWE
Sounds Web-Verzeichnis: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Aktive Voicemail-Server: $NWB#settings-active_voicemail_server$NWE
Auto Dial Limit: $NWB#settings-auto_dial_limit$NWE
Outbound Auto-Dial Aktiv: $NWB#settings-outbound_autodial_active$NWE
Max-FILL fordert pro Sekunde: $NWB#settings-outbound_calls_per_second$NWE
Lassen Sie Custom Dialplan Einträge: $NWB#settings-allow_custom_dialplan$NWE
User Gebiete Aktiv:$NWB#settings-user_territories_active$NWE
Aktivieren Zweiten Webform: $NWB#settings-enable_second_webform$NWE
Aktivieren TTS Integration: $NWB#settings-enable_tts_integration$NWE
QC Funktionen aktiv: $NWB#settings-qc_features_active$NWE
QC Letzte Pull Zeit: $qc_last_pull_time
Ermöglichen Sie Der QueueMetrics Protokollierung: $NWB#settings-enable_queuemetrics_logging$NWE
QueueMetrics Bediener IP: $NWB#settings-queuemetrics_server_ip$NWE
QueueMetrics DB Name: $NWB#settings-queuemetrics_dbname$NWE
QueueMetrics DB LOGON: $NWB#settings-queuemetrics_login$NWE
QueueMetrics DB Kennwort: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
QueueMetrics Maschinenbordbuch Identifikation:$NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Stellen Voran: $NWB#settings-queuemetrics_eq_prepend$NWE
Aktivieren vtiger Integration: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Klicken Sie hier, um synchronisieren Sie Benutzer mit vtiger\n"; + echo "
Vtiger HE Bediener IP: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Kennwort:$NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Klicken Sie hier, um zu sehen, Admin chages auf die System-Einstellungen
\n"; + } + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + + + + +###################### +# ADD=321111111111111 modify vicidial system statuses +###################### + +if ($ADD==321111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL STATUS INNERHALB DIESES SYSTEMS:  $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
STATUSBESCHREIBUNGSELECT-
ABLE
HUMAN
ANTWORT
KATEGORIEMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "LÖSCHUNG\n"; + } + else + { + echo "LÖSCHUNG\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
ADDIEREN SIE NEUEN SYSTEMSTATUS
\n"; + echo "\n"; + echo "Status:   \n"; + echo "Beschreibung:
\n"; + echo "Auswählbar:   \n"; + echo "Human Antwort:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Kategorie:\n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + + + +###################### +# ADD=331111111111111 modify vicidial status categories +###################### + +if ($ADD==331111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL STATUS KATEGORIEN:   $NWB#vicidial_status_categories$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Avsc_id[$o] = $rowx[0]; + $Avsc_name[$o] = $rowx[1]; + $Avsc_description[$o] = $rowx[2]; + $Atovdad_display[$o] = $rowx[3]; + $Asale_category[$o] = $rowx[4]; + $Adead_lead_category[$o] = $rowx[5]; + $o++; + } + $p=0; + while ($o > $p) + { + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CATstatuses=''; + $stmt="SELECT status from vicidial_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + $stmt="SELECT status from vicidial_campaign_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $p++; + } + + echo "
KATEGORIENAMEStatus in dieser Kategorie
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$Avsc_id[$p]
\n"; + echo "$CATstatuses"; + echo "
TO VDAD Anzeige:     Verkauf Kategorie:     Dead Lead Kategorie:  
Beschreibung:
        \n"; + echo "   LÖSCHUNG
 
\n"; + + echo "
ADDIEREN SIE NEUE STATUS-KATEGORIE
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Anzeige:   \n"; + echo "Verkauf Kategorie:   \n"; + echo "Dead Lead Kategorie:  
\n"; + echo "Beschreibung:   \n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + + + +###################### +# ADD=341111111111111 modify vicidial QC status code +###################### + +if ($ADD==341111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL QC-Status-Codes mit Hilfe dieses Systems:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEBESCHREIBUNGMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "LÖSCHUNG\n"; + } + else + { + echo "LÖSCHUNG\n"; + } + echo "
\n"; + + echo "
Neue QC-Statuscode
\n"; + echo "\n"; + echo "Status:   \n"; + echo "Beschreibung:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) + { + echo "
\n"; + echo ""; + + echo "
SUCHE NACH Einem BENUTZER
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Benutzer-Zahl:
Voller Name:
Benutzer-Niveau:
Benutzer-Gruppe:
\n"; + } + +###################### +# ADD=660 user search results +###################### + +if ($ADD==660) + { + echo "
\n"; + echo ""; + + $SQL = ''; + if ($user) {$SQL .= " user LIKE \"%$user%\" and";} + if ($full_name) {$SQL .= " full_name LIKE \"%$full_name%\" and";} + if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} + if ($user_group) {$SQL .= " user_group = '$user_group' and";} + $SQL = eregi_replace(" and$", "", $SQL); + if (strlen($SQL)>5) {$SQL = "and $SQL";} + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; +# echo "\n|$stmt|\n"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
SUCHRESULTATE:\n"; + echo "
\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo "\n"; + $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]ÄNDERN Sie | Notfall | STATUS | TIME
\n"; + + } + + +###################################################################################################### +###################################################################################################### +####### 8 series, Callback lists +###################################################################################################### +###################################################################################################### + +###################### +# ADD=8 find all callbacks on hold by a User +###################### +if ($ADD==8) + { + if ($LOGmodify_users==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
User($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
User($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + + echo ""; + + $CBquerySQLwhere = "and user='$user'"; + + echo "
USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } + +###################### +# ADD=81 find all callbacks on hold within a Campaign +###################### +if ($ADD==81) + { + if ($LOGmodify_campaigns==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + + echo ""; + + $CBquerySQLwhere = "and campaign_id='$campaign_id'"; + + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } + +###################### +# ADD=811 find all callbacks on hold within a List +###################### +if ($ADD==811) + { + if ($LOGmodify_lists==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + + echo ""; + + $CBquerySQLwhere = "and list_id='$list_id'"; + + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } + +###################### +# ADD=8111 find all callbacks on hold within a user group +###################### +if ($ADD==8111) + { + if ($LOGmodify_usergroups==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; + + echo ""; + + $CBquerySQLwhere = "and user_group='$user_group'"; + + echo "
User Group CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } + +###################### +# ADD=82 display all callbacks on hold +###################### +if ($ADD==82) + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $LEVELlink='stage=LEVELUP';} + + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $rslt=mysql_query($stmt, $link); + $cb_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($cb_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
LEADLIST KAMPAGNEENTRYDATUMCALLBACKDATUMUSERRECIPIENTSTATUSGROUP
$row[1]$row[2]$row[3]$row[5]$row[6]$row[8]$row[9]$row[4]$row[11]
\n"; + + echo "$CBinactiveLINK"; + } + + + +###################################################################################################### +###################################################################################################### +####### 0 series, displays and searches +###################################################################################################### +###################################################################################################### + +###################### +# ADD=0 display all active users +###################### +if ($ADD==0) + { + echo "
\n"; + echo ""; + echo "
BENUTZER-AUFLISTUNGEN: "; + if (ereg('display_all',$status)) + { + $SQLstatus = ''; + echo "   Nur aktive Benutzer\n"; + } + else + { + $SQLstatus = "and active='Y'"; + echo "   Alle Nutzer anzeigen\n"; + } + + $USERlink='stage=USERIDDOWN'; + $NAMElink='stage=NAMEDOWN'; + $LEVELlink='stage=LEVELDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $SQLorder='order by full_name'; + if (eregi("USERIDUP",$stage)) {$SQLorder='order by user asc'; $USERlink='stage=USERIDDOWN';} + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc'; $USERlink='stage=USERIDUP';} + if (eregi("NAMEUP",$stage)) {$SQLorder='order by full_name asc'; $NAMElink='stage=NAMEDOWN';} + if (eregi("NAMEDOWN",$stage)) {$SQLorder='order by full_name desc'; $NAMElink='stage=NAMEUP';} + if (eregi("LEVELUP",$stage)) {$SQLorder='order by user_level asc'; $LEVELlink='stage=LEVELDOWN';} + if (eregi("LEVELDOWN",$stage)) {$SQLorder='order by user_level desc'; $LEVELlink='stage=LEVELUP';} + if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
USER IDFULL NAMELEVELGROUPAKTIVLINKS
$row[0]$row[1]$row[2]$row[3]$row[4]
ÄNDERN Sie | Notfall | STATUS | TIME
\n"; + } + +###################### +# ADD=10 display all campaigns +###################### +if ($ADD==10) + { + echo "
\n"; + echo ""; + + $stmt="SELECT campaign_id,campaign_name,active,dial_method,auto_dial_level,lead_order,dial_statuses from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + echo "
KAMPAGNE AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + $o++; + } + + echo "
Kampagnen-ID
NAME
ACTIVE   DIAL METHOD   LEVEL   BLEI BESTELLUNG   DIAL Status   ÄNDERN Sie
$row[0]   $row[1]   $row[2]   $row[3]   $row[4]   $row[5]   $row[6]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=100 display all lists +###################### +if ($ADD==100) + { + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
LISTE AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $lists_printed = ''; + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $lists_printed .= "'$row[0]',"; + $o++; + } + + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
LISTE IDENTIFIKATIONLISTE NAMEBESCHREIBUNGRTIMELEADS COUNTAKTIVLAST CALL DATUMCAMPAIGNÄNDERN Sie
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]ÄNDERN Sie
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]ÄNDERN Sie
\n"; + } + + + +###################### +# ADD=1000 display all inbound groups +###################### +if ($ADD==1000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,queue_priority,active,call_time_id,group_color from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $ingroups_to_print = mysql_num_rows($rslt); + + echo "
INBOUND GRUPPE AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($ingroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
IN-GROUPNAMEPRIORITYAKTIVTIMECOLORÄNDERN Sie
$row[0] $row[1] $row[2] $row[3] $row[4]  ÄNDERN Sie
\n"; + } + + +###################### +# ADD=1300 display all inbound dids +###################### +if ($ADD==1300) + { + echo "
\n"; + echo ""; + + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route from vicidial_inbound_dids order by did_pattern"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + + echo "
INBOUND DID LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
#DIDBESCHREIBUNGAKTIVROUTEÄNDERN Sie
$row[0] $row[1] $row[2] $row[3] $row[4]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
CALL MENU LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDNAMEPROMPTTIMEOUTOPTIONSÄNDERN Sie
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=10000 display all remote agents +###################### +if ($ADD==10000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id from vicidial_remote_agents order by server_ip,campaign_id,user_start"; + $rslt=mysql_query($stmt, $link); + $remoteagents_to_print = mysql_num_rows($rslt); + + echo "
REMOTEMITTEL-AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($remoteagents_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
USERLINESBEDIENER  CONF-EXTEN   STATUS   CAMPAIGN   ÄNDERN Sie
$row[1] $row[2] $row[3] $row[4] $row[5] $row[6]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=100000 display all user groups +###################### +if ($ADD==100000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,forced_timeclock_login from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $usergroups_to_print = mysql_num_rows($rslt); + + echo "
BENUTZER-GRUPPEN AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($usergroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
User GroupGroup NameFORCE TIMECLOCK   ÄNDERN Sie
$row[0] $row[1] $row[2]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=1000000 display all scripts +###################### +if ($ADD==1000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,active from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + + echo "
INDEX-AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SCRIPT IDSkriptnamenACTIVE   ÄNDERN Sie
$row[0] $row[1] $row[2]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=10000000 display all filters +###################### +if ($ADD==10000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + + echo "
LEITUNG FILTER-AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($filters_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
FILTER IDFILTER NAMEÄNDERN Sie
$row[0] $row[1]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=100000000 display all call times +###################### +if ($ADD==100000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,ct_default_start,ct_default_stop from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $calltimes_to_print = mysql_num_rows($rslt); + + echo "
Anrufzeiten Liste:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($calltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME NAMEDEFAULT STARTDEFAULT STOPÄNDERN Sie
$row[0] $row[1] $row[2] $row[3] ÄNDERN Sie
\n"; + } + +###################### +# ADD=1000000000 display all state call times +###################### +if ($ADD==1000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,sct_default_start,sct_default_stop from vicidial_state_call_times order by state_call_time_id"; + $rslt=mysql_query($stmt, $link); + $statecalltimes_to_print = mysql_num_rows($rslt); + + echo "
Liste der landesspezifische Anrufzeiten:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($statecalltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME STATECALLTIME NAMEDEFAULT STARTDEFAULT STOPÄNDERN Sie
$row[0] $row[1] $row[2] $row[3] $row[4] ÄNDERN Sie
\n"; + } + +###################### +# ADD=130000000 display all shifts +###################### +if ($ADD==130000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + + echo "
UMSCHALT LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($shifts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SHIFT-IDUMSCHALT NAMEUMSCHALT STARTUMSCHALT LÄNGEWOCHEÄNDERN Sie
$row[0] $row[1] $row[2] $row[3] $row[4] ÄNDERN Sie
\n"; + } + +###################### +# ADD=10000000000 display all phones +###################### +if ($ADD==10000000000) + { + echo "
\n"; + echo ""; + + $EXTENlink='stage=EXTENDOWN'; + $PROTOlink='stage=PROTODOWN'; + $SERVERlink='stage=SERVERDOWN'; + $STATUSlink='stage=STATUSDOWN'; + $SQLorder='order by extension,server_ip'; + if (eregi("EXTENUP",$stage)) {$SQLorder='order by extension asc'; $EXTENlink='stage=EXTENDOWN';} + if (eregi("EXTENDOWN",$stage)) {$SQLorder='order by extension desc'; $EXTENlink='stage=EXTENUP';} + if (eregi("PROTOUP",$stage)) {$SQLorder='order by protocol asc'; $PROTOlink='stage=PROTODOWN';} + if (eregi("PROTODOWN",$stage)) {$SQLorder='order by protocol desc'; $PROTOlink='stage=PROTOUP';} + if (eregi("SERVERUP",$stage)) {$SQLorder='order by server_ip asc'; $SERVERlink='stage=SERVERDOWN';} + if (eregi("SERVERDOWN",$stage)) {$SQLorder='order by server_ip desc'; $SERVERlink='stage=SERVERUP';} + if (eregi("STATUSUP",$stage)) {$SQLorder='order by status asc'; $STATUSlink='stage=STATUSDOWN';} + if (eregi("STATUSDOWN",$stage)) {$SQLorder='order by status desc'; $STATUSlink='stage=STATUSUP';} + $stmt="SELECT extension,protocol,server_ip,dialplan_number,voicemail_id,status,fullname,messages,old_messages from phones $SQLorder"; + $rslt=mysql_query($stmt, $link); + $phones_to_print = mysql_num_rows($rslt); + + echo "
TELEFON-AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phones_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo " + + + + + + + + "; + echo "\n"; + $o++; + } + + echo "
EXTENPROTOSERVERDIAL PLANSTATUSNAMEVMAILLINKS
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]$row[7]$row[8]ÄNDERN Sie | Notfall
\n"; + } + +###################### +# ADD=12000000000 display all phones alias +###################### +if ($ADD==12000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias order by alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
TEL ALIAS LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ALIAS IDAlias-NameTEL Logins LISTEÄNDERN Sie
$row[0]$row[1]$row[2]ÄNDERN Sie
\n"; + } + +###################### +# ADD=13000000000 display all group alias +###################### +if ($ADD==13000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias order by group_alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
GROUP ALIAS LISTEINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
GROUP ALIAS IDGROUP Alias-NameCID NUMBERCID NAMEAKTIVÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]$row[4]ÄNDERN Sie
\n"; + } + +###################### +# ADD=100000000000 display all servers +###################### +if ($ADD==100000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,local_gmt from servers order by server_id"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + + echo "
BEDIENER-AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($servers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
BEDIENERIDNAMEBEDIENERIPAKTIVASTERISKTrunksGMTÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]ÄNDERN Sie
\n"; + } + +###################### +# ADD=130000000000 display all conf templates +###################### +if ($ADD==130000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name from vicidial_conf_templates order by template_id"; + $rslt=mysql_query($stmt, $link); + $templates_to_print = mysql_num_rows($rslt); + + echo "
CONF VorlagenlisteINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($templates_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Vorlagen-IDTemplate NameÄNDERN Sie
$row[0]$row[1]ÄNDERN Sie
\n"; + } + +###################### +# ADD=140000000000 display all carriers +###################### +if ($ADD==140000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,server_ip,protocol,registration_string,active from vicidial_server_carriers order by carrier_id"; + $rslt=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rslt); + + echo "
CARRIER LISTEINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($carriers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Carrier-IDCarrier NameBediener IPProtocolAnmeldungAktiveÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS-IDTTS NameAktiveTTS TextÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameAktiveZufälliger ReihenfolgeÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
Voicemail-Boxen:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameAktiveNeue AnzeigenAlte AnzeigenDeleteÄNDERN Sie
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]ÄNDERN Sie
\n"; + } + + +###################### +# ADD=1000000000000 display all conferences +###################### +if ($ADD==1000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $conferences_to_print = mysql_num_rows($rslt); + + echo "
KONFERENZ-AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($conferences_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCEBEDIENERIPVERLÄNGERUNGÄNDERN Sie
$row[0]$row[1]$row[2]ÄNDERN Sie
\n"; + } + +###################### +# ADD=10000000000000 display all vicidial conferences +###################### +if ($ADD==10000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from vicidial_conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $vicidialconf_to_print = mysql_num_rows($rslt); + + echo "
VICIDIAL KONFERENZ-AUFLISTUNGEN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vicidialconf_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCEBEDIENERIPVERLÄNGERUNGÄNDERN Sie
$row[0] $row[1] $row[2]ÄNDERN Sie
\n"; + } + + + + + +###################### +# ADD=700000000000000 view all activity in the admin log +###################### + +if ($ADD==700000000000000) + { + echo "
\n"; + echo ""; + + if ($stage > 9999) + { + $next_limit = ($stage + 10000); + $limitSQL = "10000 offset $stage"; + } + else + { + $next_limit = "10000"; + $limitSQL = "10000"; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log order by event_date desc limit $limitSQL;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
Änderung der Registrierung ADMIN: (Letzte 10.000 Datensätze)\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDBESCHREIBUNGGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "NEXT\n"; + echo "
\n"; + } + + +###################### +# ADD=710000000000000 view all activity in the admin log made by one user +###################### + +if ($ADD==710000000000000) + { + echo "\n";echo "\n"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; + +?> +
+ +
\n"; + echo ""; + + $stmt="SELECT full_name from vicidial_users where user='$stage';"; + $rslt=mysql_query($stmt, $link); + $names_to_print = mysql_num_rows($rslt); + if ($names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $user_name = $row[0]; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where user='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
Änderung der Registrierung ADMIN: Änderungen $stage - $user_name\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDBESCHREIBUNGGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=720000000000000 view all activity in the admin log made to one section/value +###################### + +if ($ADD==720000000000000) + { + echo "\n"; +echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where event_section='$category' and record_id='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
Änderung der Registrierung ADMIN: Abschnitt Records - $category - $stage\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDBESCHREIBUNGGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=730000000000000 detail view of one admin log entry +###################### + +if ($ADD==730000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,val.user,ip_address,event_section,event_type,record_id,event_code,event_notes,event_sql,full_name from vicidial_admin_log val, vicidial_users vu where admin_log_id='$stage' and val.user=vu.user;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + if ($logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + echo "
Änderung der Registrierung ADMIN: Record Detail - $stage

\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + $row[9] = eregi_replace("',","' ,",$row[9]); + echo ""; + echo ""; + echo "\n"; + echo "
ID: $row[0]
DATE TIME: $row[1]
USER: $row[2] - $row[10]
IP: $row[3]
SECTION: $row[4]
TYPE: $row[5]
RECORD ID: $row[6]
DESCRIPTION: $row[7]
NOTES: $row[8]
SQL:

$row[9]



\n"; + echo "\n"; + echo "
\n"; + } + } + + +###################### +# ADD=999999 display reports section +###################### +if ($ADD==999999) + { + if ($LOGview_reports==1) + { + echo "
\n"; + echo ""; + + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $servers_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $sysload[$i] = $row[4]; + $channels_total[$i] = $row[5]; + $cpu_idle_percent[$i] = $row[6]; + $disk_usage[$i] = $row[7]; + $i++; + } + + $stmt="SELECT queuemetrics_url,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $queuemetrics_url_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; + ?> + + + + + + Server-Statistiken und Berichte + Server-Statistiken und Berichte

+
+       + + Real-Time Berichte
+
+ Inbound and Outbound Calling Berichte
+ + +
+       + + Agent Berichte
+
+ Time Clock Berichte
+
+ Other Berichte and Links
+ +
+ + +

+		
+		 $o)
+			{
+			$cpu = (100 - $cpu_idle_percent[$o]);
+			$disk = '';
+			$disk_ary = explode('|',$disk_usage[$o]);
+			$disk_ary_ct = count($disk_ary);
+			$k=0;
+			while ($k < $disk_ary_ct)
+				{
+				$disk_ary[$k] = preg_replace("/^\d* /","",$disk_ary[$k]);
+				if ($k<1) {$disk = "$disk_ary[$k]";}
+				else
+					{
+					if ($disk_ary[$k] > $disk) {$disk = "$disk_ary[$k]";}
+					}
+				$k++;
+				}
+			$disk = "$disk%";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			$o++;
+			}
+
+		echo "
SERVERBESCHREIBUNGIPACTLOADCHANDISKOUTBOUNDINBOUND
$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]$sysload[$o] - $cpu%$channels_total[$o]$diskLINKLINK
\n"; + } + else + { + echo "Sie haben nicht Erlaubnis, diese Seite anzusehen\n"; + exit; + } + } + + +echo "
\n"; +echo "
\n"; + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "
\n"; +echo "

"; +echo "VERSION: $admin_version
"; +echo "BAU: $build
\n"; + +?> + +
+
+ + + +1) + { + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sonntag lokale Zeit + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Montag lokale Zeit + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Dienstag lokale Zeit + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Mittwoch lokale Zeit + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Donnerstag lokale Zeit + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Freitag lokale Zeit + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Samstag lokale Zeit + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sonntag lokale Zeit + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Montag lokale Zeit + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Dienstag lokale Zeit + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Mittwoch lokale Zeit + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Donnerstag lokale Zeit + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Freitag lokale Zeit + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Samstag lokale Zeit + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL"; + #$DB=1; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rslt_rows = mysql_num_rows($rslt); + if ($rslt_rows) + { + $rowx=mysql_fetch_row($rslt); + $active_leads = "$rowx[0]"; + } + else {$active_leads = '0';} + + echo "|$DB|\n"; + echo "Diese Kampagne hat$active_leads führt, in jenen Listen gewählt zu werden\n"; + } + else + { + echo "keine Vorwahlknopfstatus vorgewählt für diese Kampagne\n"; + } + } + else + { + echo "Keine aktiven Listen für diese Kampagne gewählt\n"; + } + } +else + { + echo "Keine aktiven Listen für diese Kampagne gewählt\n"; + } +##### END calculate what gmt_offset_now values are within the allowed local_call_time setting ### +} +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin_header.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin_header.php new file mode 100644 index 00000000..4a715e6f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin_header.php @@ -0,0 +1,1287 @@ + LICENSE: AGPLv2 +# + +# CHANGES +# 90310-0709 - First Build +# 90508-0542 - Added Call Menu option, changed script to use long PHP tags +# 90514-0605 - Added audio prompt selection functions +# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option +# 90531-2339 - Added Dynamic options for Call Menu +# 90612-0852 - Changed relative links +# 90635-0943 - Added javascript for dynamic menus in In-Groups +# 90627-0548 - Added no-agent-no-queue options +# 90628-1016 - Added Text-to-speech options +# 90830-2213 - Added Music On Hold options +# 90904-1534 - Added launch_moh_chooser +# 90916-2334 - Added Voicemail options +# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus +# + + +######################### SMALL HTML HEADER BEGIN ####################################### +if($short_header) + { + ?> +
+ + + + + + + + + + + + +
    Benutzer     Kampagnen     Listen     Indexe     Filter     In-Gruppen     Benutzer-Gruppen     Remotemittel     Admin     Berichte  
+ 0) + { + if ($hh=='lists') + {$lists_hh="bgcolor=\"$lists_color\""; $lists_fc="$lists_font"; $lists_bold="$header_selected_bold";} + else {$lists_hh=''; $lists_fc='WHITE'; $lists_bold="$header_nonselected_bold";} + } +if ($hh=='ingroups') + {$ingroups_hh="bgcolor=\"$ingroups_color\""; $ingroups_fc="$ingroups_font"; $ingroups_bold="$header_selected_bold";} + else {$ingroups_hh=''; $ingroups_fc='WHITE'; $ingroups_bold="$header_nonselected_bold";} +if ($hh=='remoteagent') + {$remoteagent_hh="bgcolor=\"$remoteagent_color\""; $remoteagent_fc="$remoteagent_font"; $remoteagent_bold="$header_selected_bold";} + else {$remoteagent_hh=''; $remoteagent_fc='WHITE'; $remoteagent_bold="$header_nonselected_bold";} +if ($hh=='usergroups') + {$usergroups_hh="bgcolor=\"$usergroups_color\""; $usergroups_fc="$usergroups_font"; $usergroups_bold="$header_selected_bold";} + else {$usergroups_hh=''; $usergroups_fc='WHITE'; $usergroups_bold="$header_nonselected_bold";} +if ($hh=='scripts') + {$scripts_hh="bgcolor=\"$scripts_color\""; $scripts_fc="$scripts_font"; $scripts_bold="$header_selected_bold";} + else {$scripts_hh=''; $scripts_fc='WHITE'; $scripts_bold="$header_nonselected_bold";} +if ($SSoutbound_autodial_active > 0) + { + if ($hh=='filters') + {$filters_hh="bgcolor=\"$filters_color\""; $filters_fc="$filters_font"; $filters_bold="$header_selected_bold";} + else {$filters_hh=''; $filters_fc='WHITE'; $filters_bold="$header_nonselected_bold";} + } +if ($hh=='admin') + {$admin_hh="bgcolor=\"$admin_color\""; $admin_fc="$admin_font"; $admin_bold="$header_selected_bold";} + else {$admin_hh=''; $admin_fc='WHITE'; $admin_bold="$header_nonselected_bold";} +if ($hh=='reports') + {$reports_hh="bgcolor=\"$reports_color\""; $reports_fc="$reports_font"; $reports_bold="$header_selected_bold";} + else {$reports_hh=''; $reports_fc='WHITE'; $reports_bold="$header_nonselected_bold";} + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
English Deutsch
+ +\r\n"; + print " \r\n"; + } + $rec_count++; + } +$sthA->finish(); + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader_super.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader_super.pl new file mode 100644 index 00000000..9b09bba7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader_super.pl @@ -0,0 +1,1162 @@ +#!/usr/bin/perl +# +# listloader_super.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60906-1056 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1207 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$vars=$ARGV[0]; +@xls_fields=split(/\,/, $vars); + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +### Grab Server values from the database +$stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } +$sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[0]]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[1]]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[2]]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[3]]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[4]]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[5]]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[6]]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[7]]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[8]]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[9]]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[10]]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[11]]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[12]]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[13]]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[14]]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[15]]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[16]]; + if ($oWkC) {$country_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[17]]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[18]]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[19]]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[20]]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[21]]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } + + + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/new_listloader_superL.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/new_listloader_superL.php new file mode 100644 index 00000000..d1290697 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/new_listloader_superL.php @@ -0,0 +1,2258 @@ + LICENSE: AGPLv2 +# +# AST GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 60113-1603 - Fixed a few bugs in Excel import +# 60421-1624 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60616-1240 - added listID override +# 60616-1604 - added gmt lookup for each lead +# 60619-1651 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1121 - fixed for nonwritable directories +# 60906-1100 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1149 - added postal code GMT lookup and duplicate check options +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0417 - UTF8 changes +# 80514-1030 - removed filesize limit and raised number of errors to be displayed +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 81011-2009 - a few bug fixes +# 90309-1831 - Added admin_log logging +# 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# +# 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 = '2.2.0-33'; +$build = '91112-0616'; + + +require("dbconnect.php"); + +### links used for testing +#$link=mysql_connect("10.10.10.15", "cron", "1234"); +#mysql_select_db("asterisk"); +#$WeBServeRRooT = '/home/www/htdocs'; + +$US='_'; + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} +if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} +if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} + elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} +if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} + elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} +if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} +if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} + elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} +if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} + elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} +if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} +if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} +if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} + elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} +if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"];} + elseif (isset($_POST["province_field"])) {$province_field=$_POST["province_field"];} +if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} + elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} +if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} +if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} + elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} + elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} +if (isset($_GET["phone_code_override"])) {$phone_code_override=$_GET["phone_code_override"];} + elseif (isset($_POST["phone_code_override"])) {$phone_code_override=$_POST["phone_code_override"];} + $phone_code_override = (preg_replace("/\D/","",$phone_code_override)); + +# $country_field=$_GET["country_field"]; if (!$country_field) {$country_field=$_POST["country_field"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('new_listloader_superL.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HILFE\""; + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +function macfontfix($fontsize) { + + $browser = getenv("HTTP_USER_AGENT"); + $pctype = explode("(", $browser); + if (ereg("Mac",$pctype[1])) { + /* Browser is a Mac. If not Netscape 6, raise fonts */ + + $blownbrowser = explode('/', $browser); + $ver = explode(' ', $blownbrowser[1]); + $ver = $ver[0]; + if ($ver >= 5.0) return $fontsize; else return ($fontsize+2); + + } else return $fontsize; /* Browser is not a Mac - don't touch fonts */ +} + +echo "\n"; + +?> + + + +ADMINISTRATION: Lead Loader + + + +
+VICIDIAL logo +ADMINISTRATION
+ + + + 1) { + ?> + >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + + + + 1) + { + if ($sh=='basic') {$sh='list';} + if ($sh=='detail') {$sh='list';} + if ($sh=='dialstat') {$sh='list';} + + if ($sh=='list') {$list_sh="bgcolor=\"$subcamp_color\""; $list_fc="$subcamp_font";} + else {$list_sh=''; $list_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$subcamp_color\""; $status_fc="$subcamp_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='hotkey') {$hotkey_sh="bgcolor=\"$subcamp_color\""; $hotkey_fc="$subcamp_font";} + else {$hotkey_sh=''; $hotkey_fc='BLACK';} + if ($sh=='recycle') {$recycle_sh="bgcolor=\"$subcamp_color\""; $recycle_fc="$subcamp_font";} + else {$recycle_sh=''; $recycle_fc='BLACK';} + if ($sh=='autoalt') {$autoalt_sh="bgcolor=\"$subcamp_color\""; $autoalt_fc="$subcamp_font";} + else {$autoalt_sh=''; $autoalt_fc='BLACK';} + if ($sh=='pause') {$pause_sh="bgcolor=\"$subcamp_color\""; $pause_fc="$subcamp_font";} + else {$pause_sh=''; $pause_fc='BLACK';} + if ($sh=='listmix') {$listmix_sh="bgcolor=\"$subcamp_color\""; $listmix_fc="$subcamp_font";} + else {$listmix_sh=''; $listmix_fc='BLACK';} + + ?> + > + + > + + > + + 0) + { + ?> + > + + > + + > + + + > + + + + 0) + { + ?> + + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Add-Nummer löschen Von DNC';} + else {$DNClink = 'Add Number To DNC';} + ?> + >>>>> + + + + 1) + { + ?> + >> + + + 0) + { + ?> + + 1) + { + ?> + >> + + + + 1) + { + ?> + >>>>>>>>> + + + + 1) + { + ?> + >>>> + + + + 1) + { + ?> + >> + + + + 1) + { + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} + else {$times_sh=''; $times_fc='BLACK';} + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} + else {$shifts_sh=''; $shifts_fc='BLACK';} + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} + else {$templates_sh=''; $templates_fc='BLACK';} + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} + else {$carriers_sh=''; $carriers_fc='BLACK';} + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} + else {$phones_sh=''; $phones_fc='BLACK';} + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} + else {$server_sh=''; $server_fc='BLACK';} + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} + else {$conference_sh=''; $conference_fc='BLACK';} + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} + else {$settings_sh=''; $settings_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} + + ?> + > + + > + > + > + > + > + > + > + > + > + + 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + + + + +
WIDTH=160> + SIZE=>Benutzer +
+   >Benutzer anzeigen +
+   >Hinzufügen eines neuen Benutzers +
+   >KopierenBenutzer +
+   >Suche für einen Benutzer +
+   >User-Statistiken +
+   >User Status +
+   >Time Sheet
+   >User Territories
> + SIZE=>Kampagnen +
>   SIZE=>Kampagnen Main
>   SIZE=>Status
>   SIZE=>HotKeys
>   SIZE=>Lead-Recycling
>   SIZE=>Auto-Alt Dial
>   SIZE=>US-Mix
>   SIZE=>Pause Codes
> SIZE=>Listen
  + > Zeigen Sie Listen +
  + > Addieren Sie Eine Neue Liste +
  + > Suche Nach Einer Leitung +
  + > +
  + > Last Neue Leitungen +
> + SIZE=> Indexe +
  + > Zeigen Sie Indexe +
  + > Addieren Sie Einen Neuen Index +
> SIZE=> Filter
  + > Zeigen Sie Filter +
  + > Addieren Sie Einen Neuen Filter +
> + SIZE=> In-Gruppen +
  + > Zeigen Sie In-Gruppen +
  + > Addieren Sie Eine Neue In-Gruppe +
  + > KopierenIn-Gruppe
+
  + > Show DIDS +
  + > Hinzufügen einer neuen DID +
  + > KopierenDID
+
  + > Call-Menüs anzeigen +
  + > Fügen Sie ein neues Call-Menü +
  + > Copy-Ruf-Menü +
> + SIZE=> Benutzer-Gruppen +
  + > Zeigen Sie Benutzer-Gruppen +
  + > Addieren Sie Eine Neue Benutzer-Gruppe +
  + > Gruppe Stündlicher Report +
  + > Bulk-Gruppe ändern +
> + SIZE=> Remotemittel +
  + > Zeigen Sie Remotemittel +
  + > Addieren Sie Neue Remotemittel +
> + SIZE=> Admin +
COLSPAN=2>   + SIZE=> Anruf-Zeiten
>   + SIZE=> Verschiebungen
>   + SIZE=> Telefone
>   + SIZE=> Vorlagen
>   + SIZE=> Träger
>   + SIZE=> Bediener
>   + SIZE=> Konferenzen
>   + SIZE=> System Einstellungen
>   + SIZE=>Systemstatus
>   + SIZE=> Voicemail
>   + SIZE=> Audio-Store
>   + SIZE=> Music On Hold
>   + SIZE=> Text To Speech
> + SIZE=> Berichte +
 
+
BGCOLOR=#D9E6FE> + + + + + HEIGHT=15> + + + + + + + + + + + + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { + ?> + > + 1) and (!eregi('campaign',$hh) ) ) { + ?> + > + + > + 1) { + ?> +> + + + + +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + $call_log .= ""; + $call_log .= ""; + $call_log .= ""; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); + + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + + $campaign_id = $row[5]; + } + + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); + + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; + + echo "
Anrufinformationen: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
HAUPT | Timeclock | Logout  
>   > Zeigen Sie Kampagnen     |     > Addieren Sie Eine Neue Kampagne     |     > KopierenKampagne     |     > Realzeitkampagnen Zusammenfassend
  > Zeigen Sie Anruf-Zeiten  | > Addieren Sie Eine Neue Anruf-Zeit  | > Zeigen Sie Zustand-Anruf-Zeiten  | > Addieren Sie Eine Neue Zustand-Anruf-Zeit
  > Show Verschiebungen  | > Fügen Sie eine neue Schicht
  > Zeigen Sie Telefone  | > Addieren Sie Ein Neues Telefon  | > Telefon Alias Liste  | > Hinzufügen einer neuen Telefon Alias  | > Gruppe Alias Liste  | > Eine neue Gruppe hinzuzufügen Alias
  > Zeigen Sie Konferenzen   |   > Addieren Sie Eine Neue Konferenz   |   > Zeigen Sie VICIDIAL Konferenzen   |   > Addieren Sie Eine Neue VICIDIAL Konferenz
  > Zeigen Sie Bediener   |   > Addieren Sie Einen Neuen Bediener
  > Show-Vorlagen   |   > Fügen Sie eine neue Vorlage
  > Show Träger   |   > Add A New Carrier
  > TTS Einträge anzeigen   |   > Add A New TTS Eintrag
  > MOH Einträge anzeigen   |   > Add A New MOH Eintrag
  > Show Voicemail Entries   |   > Add A New Voicemail Entry
  > System Einstellungen
  >Systemstatus   |   >Status-Kategorien   |   >QK-Status-Codes
  >User-Statistiken   |   >User Status   |   >Time Sheet   |   >Tage Status
>  
+ LICENSE: AGPLv2 +# +# CHANGES +# +# 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 +# 60609-1112 - Added DNC list addition if status changed to DNC +# 60619-1539 - Added variable filtering to eliminate SQL injection attack threat +# 61130-1639 - Added recording_log lookup and list for this lead_id +# 61201-1136 - Added recording_log user(TSR) display and link +# 70305-1133 - Changed to default CHECKED modify logs upon status change +# 70424-1128 - Added campaign-specific statuses, reformatted recordings list +# 70702-1259 - Added recording location link and truncation +# 70906-2132 - Added closer_log records display +# 80428-0144 - UTF8 cleanup +# 80501-0454 - Added Hangup Reason to logs display +# 80516-0936 - Cleanup of logging changes, added vicidial_agent_log display +# 80701-0832 - Changed to allow for altering of main phone number +# 80805-2106 - Changed comments to TEXTAREA +# 81210-1529 - Added server recording display options +# 90309-1829 - Added admin_log logging +# 90508-0644 - Changed to PHP long tags +# 90708-1549 - Added phone number dialed to outbound log +# 90721-1246 - Added rank and owner as vicidial_list fields +# 90917-2355 - Added extended alt phone entries +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["old_phone"])) {$old_phone=$_GET["old_phone"];} + elseif (isset($_POST["old_phone"])) {$old_phone=$_POST["old_phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_GET["CBchangeUSERtoANY"];} + elseif (isset($_POST["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_POST["CBchangeUSERtoANY"];} +if (isset($_GET["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_GET["CBchangeUSERtoUSER"];} + elseif (isset($_POST["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_POST["CBchangeUSERtoUSER"];} +if (isset($_GET["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_GET["CBchangeANYtoUSER"];} + elseif (isset($_POST["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_POST["CBchangeANYtoUSER"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} + elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} +if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];} + elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];} +if (isset($_GET["modify_logs"])) {$modify_logs=$_GET["modify_logs"];} + elseif (isset($_POST["modify_logs"])) {$modify_logs=$_POST["modify_logs"];} +if (isset($_GET["modify_closer_logs"])) {$modify_closer_logs=$_GET["modify_closer_logs"];} + elseif (isset($_POST["modify_closer_logs"])) {$modify_closer_logs=$_POST["modify_closer_logs"];} +if (isset($_GET["modify_agent_logs"])) {$modify_agent_logs=$_GET["modify_agent_logs"];} + elseif (isset($_POST["modify_agent_logs"])) {$modify_agent_logs=$_POST["modify_agent_logs"];} +if (isset($_GET["add_closer_record"])) {$add_closer_record=$_GET["add_closer_record"];} + elseif (isset($_POST["add_closer_record"])) {$add_closer_record=$_POST["add_closer_record"];} + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $old_phone = ereg_replace("[^0-9]","",$old_phone); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $alt_phone = ereg_replace("[^0-9]","",$alt_phone); + } +if (strlen($phone_number)<6) {$phone_number=$old_phone;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Leitung notieren Änderung + + +
+ADMINISTRATION: Leitung notieren Änderung
\n"; + +if ($end_call > 0) + { + ### update the lead record in the vicidial_list table + $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) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "Informationen geändert

\n"; + echo "\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='MODIFY', record_id='$lead_id', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + if ( ($dispo != $status) and ($dispo == 'CALLBK') ) + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + + if ( ($dispo != $status) and ($status == 'DNC') ) + { + ### add lead to the internal DNC list + $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; + } + ### update last record in vicidial_log table + if (($dispo != $status) and ($modify_logs > 0)) + { + $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_closer_log table + if (($dispo != $status) and ($modify_closer_logs > 0)) + { + $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_agent_log table + if (($dispo != $status) and ($modify_agent_logs > 0)) + { + $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + if ($add_closer_record > 0) + { + ### 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('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . 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";} + $rslt=mysql_query($stmt, $link); + } + + + } +else + { + + if ($CBchangeUSERtoANY == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='" . mysql_real_escape_string($callback_id) . "';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to ANYONE
\n"; + } + if ($CBchangeUSERtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record user changed to $CBuser
\n"; + } + if ($CBchangeANYtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to USERONLY, user: $CBuser
\n"; + } + + + + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$u$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1] $row[15]   $row[10]
$y$row[3] $row[5] $row[1] $row[7] $row[9] $row[11] $row[13]   $row[14]   $row[15]   $row[17]
$y$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1]   $row[14]   $row[17]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     Lead ID: $lead_id
Fronter: $tsr     Liste Identifikation: $list_id
Vorname:   \n"; + echo " Letzter Name:
  \n"; + echo "Postcode:
Main Phone :
Rank :
Owner :
(with $log_campaign statuses)
Ändernvicidial log
Ändernagent log
Änderncloser log
Add closer log record
\n"; + echo "


\n"; + + if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) + { + ### find any vicidial_callback records for this lead + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group 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";} + $rslt=mysql_query($stmt, $link); + $CB_to_print = mysql_num_rows($rslt); + $rowx=mysql_fetch_row($rslt); + + if ($CB_to_print>0) + { + if ($rowx[9] == 'USERONLY') + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UserID: \n"; + echo "

\n"; + } + else + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UserID: \n"; + echo "

\n"; + } + } + else + { + echo "
No Callback records found
\n"; + } + } + } + else + { + echo "Leitung Nachschlagen FIEL für lead_id aus $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + echo "

\n"; + + echo "
\n"; + + if ($c > 0) + { + echo "EXTENDED alternative Rufnummern FÜR DIESES LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$alts_output\n"; + + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } + + echo "ANRUFE ZU DIESEM LEITUNG:\n"; + echo "\n"; + echo "\n"; + + echo "$call_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSR KAMPAGNE LIST LEAD HANGUP REASON PHONE
\n"; + echo "

\n"; + + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$closer_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSR KAMPAGNE LIST LEAD WAIT HANGUP REASON
\n"; + echo "

\n"; + + + echo "MITTELLOG RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$agent_log\n"; + + echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "

\n"; + + + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "$locat";} + else + {$location = $locat;} + $u++; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + + } + + + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
$u $row[12] $row[4] $row[8] $row[0]   $row[10] $location $row[13]
\n"; + } + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nIndexlaufzeit: $RUNtime seconds
"; + + +?> + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin_search_lead.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin_search_lead.php new file mode 100644 index 00000000..9be35610 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/admin_search_lead.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 80710-0023 - Added searching by list, user, status +# 90121-0500 - Added filter for phone to remove non-digits +# 90309-1828 - Added admin_log logging +# 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); +$phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner'; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Leitung Suche +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '100'; +$hh = 'lists'; +$LOGast_admin_access = '1'; +$SSoutbound_autodial_active = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$lists_color = '#FFFF99'; +$lists_font = 'BLACK'; +$lists_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + +echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; + +if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<form method=post name=search action=\"$PHP_SELF\">\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<b>Tragen Sie bitte a ein:<br> Vendor ID(Verkäuferleitung Code): <input type=text name=vendor_id size=10 maxlength=10> or \n"; + echo "<br><b>eine Haupttelefonnummer: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; + echo "<br><b>eine Leitung Identifikation: <input type=text name=lead_id size=10 maxlength=10> or\n"; + echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; + echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; + echo "<b>user: <input type=text name=user size=15 maxlength=20> <br><br>\n"; + echo "<input type=submit name=submit value=SUBMIT></b>\n"; + echo "</form>\n</center>\n"; + echo "</body></html>\n"; + exit; + } + +else + { + + if ($vendor_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; + } + else + { + if ($phone) + { + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } + } + else + { + if ($lead_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + } + else + { + if ( (strlen($status)>0) or (strlen($list_id)>0) or (strlen($user)>0) ) + { + $statusSQL = ''; + $list_idSQL = ''; + $userSQL = ''; + if (strlen($status)>0) + { + $statusSQL = "status='" . mysql_real_escape_string($status) . "'"; $SQLctA++; + } + if (strlen($list_id)>0) + { + if ($SQLctA > 0) {$andA = 'and';} + $list_idSQL = "$andA list_id='" . mysql_real_escape_string($list_id) . "'"; $SQLctB++; + } + if (strlen($user)>0) + { + if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} + $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; + } + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; + } + else + { + print "ERROR: you must search for something! Go back and search for something"; + exit; + } + } + } + } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + + if ($DB) + { + echo "\n\n$stmt\n\n"; + } + + $rslt=mysql_query("$stmt", $link); + $results_to_print = mysql_num_rows($rslt); + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<b>Die Suchvariablen, die Sie eintrugen, sind nicht im System aktiv</b><br><br>\n"; + echo "<b>Bitte zurück und verdoppeln Überprüfung gehen die Informationen,die Sie eintrugen und reichen wieder ein</b>\n"; + echo "</center>\n"; + echo "</body></html>\n"; + exit; + } + else + { + echo "<b>RESULTS: $results_to_print</b><BR><BR>\n"; + echo "<TABLE BGCOLOR=WHITE CELLPADDING=1 CELLSPACING=0>\n"; + echo "<TR BGCOLOR=BLACK>\n"; + echo "<TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>#</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LEAD ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>STATUS</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>VENDOR ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LAST AGENT</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LISTE IDENTIFIKATION</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>PHONE</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>NAME</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>CITY</B></FONT></TD>\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"; + echo "</TR>\n"; + $o=0; + while ($results_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $o++; + $search_lead = $row[0]; + 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]\" target=\"_blank\">$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[31]</FONT></TD>\n"; + echo "</TR>\n"; + } + echo "</TABLE>\n"; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n<a href=\"$PHP_SELF\">NEUE SUCHE</a>"; + + +echo "\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds"; + + +?> + + + +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/audio_store.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $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 > 7 and modify_campaigns='1'"; + 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|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $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); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/call_report_export.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/call_report_export.php new file mode 100644 index 00000000..77a49b05 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/call_report_export.php @@ -0,0 +1,562 @@ +<?php +# call_report_export.php +# +# displays options to select for downloading of leads and their vicidial_log +# and/or vicidial_closer_log information by status, list_id and date range. +# downloads to a flat text file that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} + elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and export_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### +if ($run_export > 0) + { + $US='_'; + $MT[0]=''; + $ip = getenv("REMOTE_ADDR"); + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $FILE_TIME = date("Ymd-His"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $campaign_ct = count($campaign); + $group_ct = count($group); + $user_group_ct = count($user_group); + $list_ct = count($list_id); + $status_ct = count($status); + $campaign_string='|'; + $group_string='|'; + $user_group_string='|'; + $list_string='|'; + $status_string='|'; + + $i=0; + while($i < $campaign_ct) + { + $campaign_string .= "$campaign[$i]|"; + $campaign_SQL .= "'$campaign[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$campaign_string) ) or ($campaign_ct < 1) ) + { + $campaign_SQL = "campaign_id IN('')"; + $RUNcampaign=0; + } + else + { + $campaign_SQL = eregi_replace(",$",'',$campaign_SQL); + $campaign_SQL = "and vl.campaign_id IN($campaign_SQL)"; + $RUNcampaign++; + } + + $i=0; + while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; + $group_SQL = "campaign_id IN('')"; + $RUNgroup=0; + } + else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and vl.campaign_id IN($group_SQL)"; + $RUNgroup++; + } + + $i=0; + while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } + else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vl.user_group IN($user_group_SQL)"; + } + + $i=0; + while($i < $list_ct) + { + $list_string .= "$list_id[$i]|"; + $list_SQL .= "'$list_id[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$list_string) ) or ($list_ct < 1) ) + { + $list_SQL = ""; + } + else + { + $list_SQL = eregi_replace(",$",'',$list_SQL); + $list_SQL = "and vi.list_id IN($list_SQL)"; + } + + $i=0; + while($i < $status_ct) + { + $status_string .= "$status[$i]|"; + $status_SQL .= "'$status[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$status_string) ) or ($status_ct < 1) ) + { + $status_SQL = ""; + } + else + { + $status_SQL = eregi_replace(",$",'',$status_SQL); + $status_SQL = "and vl.status IN($status_SQL)"; + } + + + if ($DB > 0) + { + echo "<BR>\n"; + echo "$campaign_ct|$campaign_string|$campaign_SQL\n"; + echo "<BR>\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + echo "$list_ct|$list_string|$list_SQL\n"; + echo "<BR>\n"; + echo "$status_ct|$status_string|$status_SQL\n"; + echo "<BR>\n"; + } + + $outbound_calls=0; + $export_rows=''; + $k=0; + if ($RUNcampaign > 0) + { + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $outbound_to_print = mysql_num_rows($rslt); + if ($outbound_to_print < 1) + { + echo "There are no outbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $outbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + $outbound_calls++; + } + } + } + + if ($RUNgroup > 0) + { + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmtA, $link); + if ($DB) {echo "$stmt\n";} + $inbound_to_print = mysql_num_rows($rslt); + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) + { + echo "There are no inbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + } + } + } + + + if ( ($outbound_to_print > 0) or ($inbound_to_print > 0) ) + { + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $TXTfilename = "EXPORT_CALL_REPORT_$FILE_TIME.txt"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$TXTfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } + } + else + { + echo "There are no calls during this time period for these parameters\n"; + exit; + } + } +##### END RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### + + +else + { + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $stmt="select campaign_id from vicidial_campaigns;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $campaigns_to_print = mysql_num_rows($rslt); + $i=0; + $LISTcampaigns[$i]='---NONE---'; + $i++; + $campaigns_to_print++; + while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTcampaigns[$i] =$row[0]; + $i++; + } + + $stmt="select group_id from vicidial_inbound_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; + while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $i++; + } + + $stmt="select user_group from vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; + while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + + $stmt="select list_id from vicidial_lists;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $lists_to_print = mysql_num_rows($rslt); + $i=0; + $LISTlists[$i]='---ALL---'; + $i++; + $lists_to_print++; + while ($i < $lists_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTlists[$i] =$row[0]; + $i++; + } + + $stmt="select status from vicidial_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $statuses_to_print = mysql_num_rows($rslt); + $i=0; + $LISTstatus[$i]='---ALL---'; + $i++; + $statuses_to_print++; + while ($i < $statuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + } + + $stmt="select distinct status from vicidial_campaign_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $Cstatuses_to_print = mysql_num_rows($rslt); + $j=0; + while ($j < $Cstatuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + $j++; + } + $statuses_to_print = ($statuses_to_print + $Cstatuses_to_print); + + echo "<HTML><HEAD>\n"; + + + echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; + + ##### BEGIN Set variables to make header show properly ##### + $ADD = '100'; + $hh = 'lists'; + $LOGast_admin_access = '1'; + $SSoutbound_autodial_active = '1'; + $ADMIN = 'admin.php'; + $page_width='770'; + $section_width='750'; + $header_font_size='3'; + $subheader_font_size='2'; + $subcamp_font_size='2'; + $header_selected_bold='<b>'; + $header_nonselected_bold=''; + $lists_color = '#FFFF99'; + $lists_font = 'BLACK'; + $lists_color = '#E6E6E6'; + $subcamp_color = '#C6C6C6'; + ##### END Set variables to make header show properly ##### + + require("admin_header.php"); + + + echo "<CENTER><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; + echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; + echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; + echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; + echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; + echo "<BR>to<BR>\n"; + echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; + $o=0; + while ($campaigns_to_print > $o) + { + if (ereg("\|$LISTcampaigns[$o]\|",$campaign_string)) + {echo "<option selected value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + else + {echo "<option value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; + $o=0; + while ($groups_to_print > $o) + { + if (ereg("\|$LISTgroups[$o]\|",$group_string)) + {echo "<option selected value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + else + {echo "<option value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; + $o=0; + while ($lists_to_print > $o) + { + if (ereg("\|$LISTlists[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + else + {echo "<option value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; + $o=0; + while ($statuses_to_print > $o) + { + if (ereg("\|$LISTstatus[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + else + {echo "<option value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; + echo "</TD></TR></TABLE>\n"; + echo "</FORM>\n\n"; + + } +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/count.htm b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/count.htm new file mode 100644 index 00000000..51f8a361 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/count.htm @@ -0,0 +1 @@ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/dbconnect.php new file mode 100644 index 00000000..dca45485 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/dbconnect.php @@ -0,0 +1,62 @@ +<?php +# +# dbconnect.php version 2.2.0 +# +# database connection settings and some global web settings +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database"); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules +$AM_shift_BEGIN = '03:45:00'; +$AM_shift_END = '17:45:00'; +$PM_shift_BEGIN = '17:45:01'; +$PM_shift_END = '23:59:59'; +$admin_qc_enabled = '0'; +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/fcstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/fcstats.php new file mode 100644 index 00000000..601b8e6c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/fcstats.php @@ -0,0 +1,601 @@ +<?php +# fcstats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 70813-1526 - First Build +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71217-1128 - Changed method for calculating stats +# 71228-1140 - added percentages, cross-day start/stop +# 80328-1139 - adapted for basic fronter/closer stats +# 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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); + +if (strlen($shift)<2) {$shift='ALL';} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = 'CL_TEST_L';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + +<HTML> +<HEAD> +<STYLE type="text/css"> +<!-- + .green {color: white; background-color: green} + .red {color: white; background-color: red} + .blue {color: white; background-color: blue} + .purple {color: white; background-color: purple} +--> + </STYLE> + +<?php +echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; +echo "<TITLE>In-Group Fronter-Closer Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           ÄNDERN Sie | REPORTS \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "PLEASE SELECT AN IN-GROUP AND DATE ABOVE THEN CLICK SUBMIT\n";
+}
+
+else
+{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#$query_date_BEGIN = "$query_date $time_BEGIN";   
+#$query_date_END = "$query_date $time_END";
+
+$Cqdate = explode('-',$query_date);
+
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(17, 45, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(17, 45, 1, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'ALL') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+
+echo "In-Group Fronter-Closer Stats Report                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n";
+
+$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "' and status = 'SALE';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$A1_points = ($row[0] * 1);
+$A1_points =	sprintf("%10s", $A1_points);
+$A1_tally =	sprintf("%10s", $row[0]);
+
+$TOT_tally = ($A1_tally + $A2_tally + $A3_tally + $A4_tally);
+$TOT_points = ($A1_points + $A2_points + $A3_points + $A4_points);
+$TOT_tally =	sprintf("%10s", $TOT_tally);
+$TOT_points =	sprintf("%10s", $TOT_points);
+
+echo "STATUS   CUSTOMERS\n";
+echo "SALES:   $A1_tally\n";
+
+echo "\n";
+
+
+
+
+
+
+
+
+
+##############################
+#########  FRONTER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTsales=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+
+echo "\n";
+echo "---------- FRONTER STATS\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| MITTEL                   |SUCCESS| XFERS  |SUCCESS%| SALE | DROP |OTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+#$stmt="select vicidial_xfer_log.user,full_name,count(*) from vicidial_xfer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_xfer_log.user is not null and vicidial_xfer_log.user=vicidial_users.user group by vicidial_xfer_log.user;";
+$stmt="select user,count(distinct lead_id) from vicidial_xfer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcallsRAW[$i] =	$row[1];
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; 
+	$stmt="select vc.status,count(distinct vc.lead_id) from vicidial_xfer_log vx, vicidial_closer_log vc where vx.call_date >= '$query_date_BEGIN' and vx.call_date <= '$query_date_END' and vc.call_date >= '$query_date_BEGIN' and vc.call_date <= '$query_date_END' and  vc.campaign_id='" . mysql_real_escape_string($group) . "' and vx.campaign_id='" . mysql_real_escape_string($group) . "' and vx.user='$userRAW[$i]' and vc.lead_id=vx.lead_id and vc.xfercallid=vx.xfercallid group by vc.status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) {$A1=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A2') and ($recL < 1) ) {$A2=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A3') and ($recL < 1) ) {$A3=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A4') and ($recL < 1) ) {$A4=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);
+	$totA2 = ($totA2 + $A2);
+	$totA3 = ($totA3 + $A3);
+	$totA4 = ($totA4 + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$TOTsales = ($TOTsales + $sales);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Spct = ( ($sales / $USERcallsRAW[$i]) * 100);}
+		else {$Spct=0;}
+	$Spct = round($Spct, 2);
+	$Spct =	sprintf("%01.2f", $Spct);
+	
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%5s", $sales);
+	$Spct =	sprintf("%6s", $Spct);
+
+	echo "| $user[$i] - $full_name[$i] | $sales | $USERcalls[$i] | $Spct%| $A1 | $DROP | $OTHER |\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totSpct = ( ($TOTsales / $TOTcalls) * 100);}
+	else {$totSpct=0;}
+$totSpct = round($totSpct, 2);
+$totSpct =	sprintf("%01.2f", $totSpct);
+$totSpct =	sprintf("%6s", $totSpct);
+	
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$TOTsales =		sprintf("%5s", $TOTsales);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+
+
+$stmt="select avg(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$AVGwait = $row[0];
+$AVGwait_M = ($AVGwait / 60);
+$AVGwait_M = round($AVGwait_M, 2);
+$AVGwait_M_int = intval("$AVGwait_M");
+$AVGwait_S = ($AVGwait_M - $AVGwait_M_int);
+$AVGwait_S = ($AVGwait_S * 60);
+$AVGwait_S = round($AVGwait_S, 0);
+if ($AVGwait_S < 10) {$AVGwait_S = "0$AVGwait_S";}
+$AVGwait_MS = "$AVGwait_M_int:$AVGwait_S";
+$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| TOTAL FRONTERS: $TOTagents   | $TOTsales | $TOTcalls | $totSpct%|$totA1 |$totDROP |$totOTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "|                          Average time in Queue for customers:    $AVGwait |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+
+
+
+
+##############################
+#########  CLOSER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+$TOTsales=0;
+
+echo "\n";
+echo "---------- CLOSER STATS\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| MITTEL                   | CALLS  | SALE | DROP |OTHER | SALE | CONV %|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+$stmt="select user,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+	$USERcallsRAW[$i] =	$row[1];
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; $uTOP=0; $uBOT=0; $points=0;
+	$stmt="select status,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user='$userRAW[$i]' group by status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) 
+			{
+			$A1=$row[1]; $recL++; 
+			$sales=($sales + $row[1]);
+			$points = ($points + ($row[1] * 1) );
+			}
+		if ( ($row[0]=='A2') and ($recL < 1) ) 
+			{
+			$A2=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A3') and ($recL < 1) ) 
+			{
+			$A3=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A4') and ($recL < 1) ) 
+			{
+			$A4=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 3) );
+			}
+#		if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+#		if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+#		if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+#		if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+#		if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);	$TOTsales = ($TOTsales + $A1);
+	$totA2 = ($totA2 + $A2);	$TOTsales = ($TOTsales + $A2);	$totTOP = ($totTOP + $A2);
+	$totA3 = ($totA3 + $A3);	$TOTsales = ($TOTsales + $A3);	$totBOT = ($totBOT + $A3);
+	$totA4 = ($totA4 + $A4);	$TOTsales = ($TOTsales + $A4);	$totTOP = ($totTOP + $A4);	$totBOT = ($totBOT + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$totPOINTS = ($totPOINTS + $points);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Cpct = ( ($sales / ( ($USERcallsRAW[$i] - 0) - $DROP) ) * 100);}
+		else {$Cpct=0;}
+	$Cpct = round($Cpct, 2);
+	$Cpct =	sprintf("%01.2f", $Cpct);
+	$Cpct =	sprintf("%6s", $Cpct);
+
+	if ( ($sales > 0) and ($uTOP > 0) ) {$TOP = ( ($uTOP / $sales) * 100);}
+		else {$TOP=0;}
+	$TOP = round($TOP, 0);
+	$TOP =	sprintf("%01.0f", $TOP);
+	$TOP =	sprintf("%3s", $TOP);
+
+	if ( ($sales > 0) and ($uBOT > 0) ) {$BOT = ( ($uBOT / $sales) * 100);}
+		else {$BOT=0;}
+	$BOT = round($BOT, 0);
+	$BOT =	sprintf("%01.0f", $BOT);
+	$BOT =	sprintf("%3s", $BOT);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($points > 0) ) {$ppc = ($points / ( ($USERcallsRAW[$i] - 0) - $DROP) );}
+		else {$ppc=0;}
+	$ppc = round($ppc, 2);
+	$ppc =	sprintf("%01.2f", $ppc);
+	$ppc =	sprintf("%4s", $ppc);
+
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%4s", $sales);
+
+	echo "| $user[$i] - $full_name[$i] | $USERcalls[$i] | $A1 | $DROP | $OTHER | $sales |$Cpct%|\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totCpct = ( ($TOTsales / ( ($TOTcalls - 0) - $totDROP) ) * 100);}
+	else {$totCpct=0;}
+$totCpct = round($totCpct, 2);
+$totCpct =	sprintf("%01.2f", $totCpct);
+$totCpct =	sprintf("%6s", $totCpct);
+		
+if ( ($TOTcalls > 0) and ($totPOINTS > 0) ) {$ppc = ($totPOINTS / ( ($TOTcalls - $totOTHER) - $totDROP) );}
+	else {$ppc=0;}
+$ppc = round($ppc, 2);
+$ppc =	sprintf("%01.2f", $ppc);
+$ppc =	sprintf("%4s", $ppc);
+		
+if ( ($TOTsales > 0) and ($totTOP > 0) ) {$TOP = ( ($totTOP / $TOTsales) * 100);}
+	else {$TOP=0;}
+$TOP = round($TOP, 0);
+$TOP =	sprintf("%01.0f", $TOP);
+$TOP =	sprintf("%3s", $TOP);
+
+if ( ($TOTsales > 0) and ($totBOT > 0) ) {$BOT = ( ($totBOT / $TOTsales) * 100);}
+	else {$BOT=0;}
+$BOT = round($BOT, 0);
+$BOT =	sprintf("%01.0f", $BOT);
+$BOT =	sprintf("%3s", $BOT);
+
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+$TOTsales =		sprintf("%5s", $TOTsales);
+
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| TOTAL CLOSERS:  $TOTagents   | $TOTcalls |$totA1 |$totDROP |$totOTHER |$TOTsales |$totCpct%|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+
+
+
+
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+if ($DB) {echo "\nRun Time: $RUNtime seconds\n";}
+}
+
+
+
+
+
+?>
+
+
+ + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/functions.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/group_hourly_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/group_hourly_stats.php new file mode 100644 index 00000000..c4ead42c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/group_hourly_stats.php @@ -0,0 +1,295 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1014 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["date_with_hour"])) {$date_with_hour=$_GET["date_with_hour"];} + elseif (isset($_POST["date_with_hour"])) {$date_with_hour=$_POST["date_with_hour"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$date_with_hour_default = date("Y-m-d H"); +$date_no_hour_default = $TODAY; + +if (!isset($date_with_hour)) {$date_with_hour = $date_with_hour_default;} + $date_no_hour = $date_with_hour; + $date_no_hour = eregi_replace(" ([0-9]{2})",'',$date_no_hour); +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + +# $stmt="SELECT full_name from vicidial_users where user='$user';"; +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# $full_name = $row[0]; + + } + + + + +?> + + + +ADMINISTRATION: Gruppe Stündlicher Notfall +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Gruppe Stündlicher Notfall <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +if ( ($group) and ($status) and ($date_with_hour) ) +{ +$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";} +$rslt=mysql_query($stmt, $link); +$tsrs_to_print = mysql_num_rows($rslt); + $o=0; + while($o < $tsrs_to_print) + { + $row=mysql_fetch_row($rslt); + $VDuser[$o] = "$row[0]"; + $VDname[$o] = "$row[1]"; + $o++; + } + + $o=0; + while($o < $tsrs_to_print) + { + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDtotal[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDday[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDcount[$o] = "$row[0]"; + $o++; + } + +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +echo "<B>TSR STUNDE ZÄHLIMPULSE: <a href=\"./admin.php?ADD=3111&group_id=$group\">$group</a> | $status | $date_with_hour | $date_no_hour</B>\n"; + +echo "<center><TABLE width=600 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>TSR </td><td align=left><font size=2>ID </td><td align=right><font size=2>   $status</td><td align=right><font size=2>   GESAMTANRUFE</td><td align=right><font size=2>   $status DAY</td><td align=right><font size=2>     </td></tr>\n"; + + $day_calls=0; + $hour_calls=0; + $total_calls=0; + $o=0; + while($o < $tsrs_to_print) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo "<tr $bgcolor><td><font size=2>$VDuser[$o]</td>"; + echo "<td align=left><font size=2> $VDname[$o]</td>\n"; + echo "<td align=right><font size=2> $VDcount[$o]</td>\n"; + echo "<td align=right><font size=2> $VDtotal[$o]</td>\n"; + echo "<td align=right><font size=2> $VDday[$o]</td>\n"; + echo "<td align=right><font size=1><a href=\"./admin.php?ADD=3&user=$VDuser[$o]\">ÄNDERN Sie</a> | <a href=\"./user_stats.php?user=$VDuser[$o]\">Notfall</a></td></tr>\n"; + $total_calls = ($total_calls + $VDtotal[$o]); + $hour_calls = ($hour_calls + $VDcount[$o]); + $day_calls = ($day_calls + $VDday[$o]); + + $o++; + } + +echo "<tr><td><font size=2>TOTAL </td><td align=right><font size=2> $status </td><td align=right><font size=2> $hour_calls</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $day_calls</td></tr>\n"; + + +} + +echo "</TABLE></center>\n"; +echo "<br><br>\n"; + + + echo "<br>Melden Sie bitte die Gruppe an, die Sie stündlichen Notfall fürerhalten möchten: <form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=$DB>\n"; + echo "group: <select size=1 name=group>\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $o=0; + $groups_list=''; + while ($groups_to_print > $o) { + $rowx=mysql_fetch_row($rslt); + if ($group == $group) + {$groups_list .= "<option selected value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + else + {$groups_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + $o++; + } + echo "$groups_list</select><br>\n"; + echo "status: <input type=text name=status size=10 maxlength=10 value=\"$status\">   (example: XFER)<br>\n"; + echo "date with hour: <input type=text name=date_with_hour size=14 maxlength=13 value=\"$date_with_hour\">   (example: 2004-06-25 14)<br>\n"; + echo "<input type=submit name=submit value=SUBMIT>\n"; + echo "<BR><BR><BR>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; + + +?> + + +</TD></TR></TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/help.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/help.gif new file mode 100644 index 00000000..5575d7c8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/help.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/list_download.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/list_download.php new file mode 100644 index 00000000..bf5b1e58 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/list_download.php @@ -0,0 +1,132 @@ +<?php +# list_download.php +# +# downloads the entire contents of a vicidial list ID to a flat text file +# that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and download_lists='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Unzulässiges Username/Password or no list download permission: |$PHP_AUTH_USER|\n"; + exit; + } + +$stmt="select count(*) from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$count_to_print = mysql_num_rows($rslt); +if ($count_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $leads_count =$row[0]; + $i++; + } + +if ($leads_count < 1) + { + echo "There are no leads in list_id: $list_id\n"; + exit; + } + +$US='_'; +$MT[0]=''; +$ip = getenv("REMOTE_ADDR"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +### LOG INSERTION Admin Log Table ### +$SQL_log = "$stmt|$stmtA|"; +$SQL_log = ereg_replace(';','',$SQL_log); +$SQL_log = addslashes($SQL_log); +$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='$list_id', event_code='ADMIN EXPORT LIST', event_sql=\"$SQL_log\", event_notes='';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + + +$TXTfilename = "LIST_$list_id$US$FILE_TIME.txt"; + +// We'll be outputting a TXT file +header('Content-type: application/octet-stream'); + +// It will be called LIST_101_20090209-121212.txt +header("Content-Disposition: attachment; filename=\"$TXTfilename\""); +header('Expires: 0'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); +header('Pragma: public'); +ob_clean(); +flush(); + +$stmt="select lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$leads_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $leads_to_print) + { + $row=mysql_fetch_row($rslt); + + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; + + $i++; + } + +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader.php new file mode 100644 index 00000000..5fee38ac --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader.php @@ -0,0 +1,926 @@ +<? +# listloader.php +# +# Copyright (C) 2007 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: GPLv2 +# +# AST Web GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 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 +# 60619-1652 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 60906-1059 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1046 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# +# 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 = '2.0.3'; +$build = '770417-1059'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +$submit_file=$_GET["submit_file"]; if (!$submit_file) {$submit_file=$_POST["submit_file"];} +$list_id_override=$_GET["list_id_override"]; if (!$list_id_override) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +$submit=$_GET["submit"]; if (!$submit) {$submit=$_POST["submit"];} +$SUBMIT=$_GET["SUBMIT"]; if (!$SUBMIT) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} + + +#$DB=1; +#$DBX=1; + +$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); + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('listloader.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"HILFE\" ALIGN=TOP></A>"; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + +echo "<html>\n"; +echo "<head>\n"; +echo "<!-- VERSION: $version BAU: $build -->\n"; +echo "<!-- SEED TIME $secX: $year-$mon-$mday $hour:$min:$sec LOCAL GMT VERSETZTE JETZT: $LOCAL_GMT_OFF DST: $isdst -->\n"; + + +?> + + +<script language="JavaScript1.2"> +function openNewWindow(url) { + window.open (url,"",'width=500,height=300,scrollbars=yes,menubar=yes,address=yes'); +} +function ShowProgress(good, bad, total, dup, post) { + parent.lead_count.document.open(); + parent.lead_count.document.write('<html><body><table border=0 width=200 cellpadding=10 cellspacing=0 align=center valign=top><tr bgcolor="#000000"><th colspan=2><font face="arial, helvetica" size=3 color=white>Gegenwärtiger Akte Status:</font></th></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Good:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+good+'</B></font></td></tr><tr bgcolor="#990000"><td align=right><font face="arial, helvetica" size=2 color=white><B>Bad:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+bad+'</B></font></td></tr><tr bgcolor="#000099"><td align=right><font face="arial, helvetica" size=2 color=white><B>Total:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+total+'</B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>   </B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>   </B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Duplicate:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+dup+'</B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Postal Match:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+post+'</B></font></td></tr></table><body></html>'); + parent.lead_count.document.close(); +} +</script> +</head> +<body> +<form action=<?=$PHP_SELF ?> method=post enctype="multipart/form-data"> +<table align=center width="500" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Last Leitungen von dieser Akte:</font></td> + <td align=left width="75%"><input type=file name="leadfile" value="<?=$leadfile ?>"> <? echo "$NWB#vicidial_list_loader$NWE"; ?></td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Liste Identifikation Override: </font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><input type=text value="" name='list_id_override' size=10 maxlength=8> (nur Zahlen or leave blank for values in the file)</td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Leitung Duplikat-Überprüfung: </font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><select size=1 name=dupcheck><option selected value="NONE">NO DUPLICATE CHECK</option><option value="DUP">CHECK FOR DUPLICATES BY PHONE IN LISTE IDENTIFIKATION</option></select></td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Vorbereitungs- und Anlaufzeit Zone Nachschlagen: </font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><select size=1 name=postalgmt><option selected value="AREA">COUNTRY CODE AND AREA CODE ONLY</option><option value="POSTAL">POSTAL CODE FIRST</option></select></td> + </tr> + <tr> + <td align=center><input type=submit value="SUBMIT" name='submit_file'></td> + <td align=center><input type=button onClick="javascript:document.location='listloader.php'" value="BEGINNEN SIE RÜBER" name='reload_page'></td> + </tr> + <tr><td colspan=2><font size=1><a href="new_listloader_superL.php" target="_parent">KLICKEN SIE HIER, UM ZUR SUPERLEITUNG LADEVORRICHTUNG ZU GEHEN (BETA VERSION)</a>     <a href="admin.php" target="_parent">ZURÜCK ZU ADMIN</a></font></td></tr> +</table> +</form> +<? + +#echo "|$LF_orig|$LF_path|\n"; + +if ($leadfile and filesize($LF_path)<=8388608) { + print "<script language='JavaScript1.2'>document.forms[0].leadfile.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;</script>"; + flush(); + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + $lead_file = "$LF_path"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + $pulldate=date("Y-m-d H:i:s"); + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Verarbeitung$delim_name-delimited file... ($tab_count|$pipe_count)\n"; + + if (strlen($list_id_override)>0) + { + print "<BR><BR>LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override<BR><BR>"; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city = $row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + + if (strlen($list_id_override)>0) + { + # print "<BR><BR>LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override<BR><BR>"; + $list_id = $list_id_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table ##### + if (eregi("DUP",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + $US='_'; + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_list .= "$phone_number$US$list_id|"; + + if (strlen($phone_code)<1) {$phone_code = '1';} + + $postalgmt_found=0; + if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $NA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NA_DST=0; + } else { + $NA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $NA_DST=0; + } else { + $NA_DST=1; + } + } + } else { + $NA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; + } elseif ($dd < ($dow+25)) { + $NA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; + } else { + $NA_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 7200) { + $NA_DST=1; + } else { + $NA_DST=0; + } + } + } else { + $NA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0);"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0),"; + $multi_insert_counter++; + } + + $good++; + } + else + { + if ($bad < 10) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) + { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup, $post)</script>"; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total<BR>DUPLICATE: $dup       POSTAL MATCH: $post</font></center>"; + + } else { + print "<center><font face='arial, helvetica' size=3 color='#990000'><B>STÖRUNG: Die Akte hat nicht die erforderliche Zahl vonauffängt, um sie zu verarbeiten.</B></font></center>"; + } + print "<script language='JavaScript1.2'>document.forms[0].leadfile.disabled=false; document.forms[0].submit_file.disabled=false; document.forms[0].reload_page.disabled=false;</script>"; +} else if (filesize($leadfile)>8388608) { + print "<center><font face='arial, helvetica' size=3 color='#990000'><B>STÖRUNG: Akte übersteigt die Begrenzung 8MB.</B></font></center>"; +} +?> +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader.pl new file mode 100644 index 00000000..052d93e0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader.pl @@ -0,0 +1,1160 @@ +#!/usr/bin/perl +# +# listloader.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60822-1121 - fixed for nonwritable directories +# 60906-1058 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1215 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = <conf>; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + + ### Grab Server values from the database + $stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } + $sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Processing Excel file...\n"; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][0]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][1]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][2]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][3]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][4]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][5]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][6]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][7]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][8]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][9]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][10]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][11]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][12]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][13]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][14]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][15]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][16]; + if ($oWkC) {$country=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][17]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][18]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][19]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][20]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][21]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][22]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup_lead, $postalgmt_found)</script>"; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total</font></center>"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloaderMAIN.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloaderMAIN.php new file mode 100644 index 00000000..a7126dcc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloaderMAIN.php @@ -0,0 +1,87 @@ +<?php +# listloaderMAIN.php +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# 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 +# +# changes: +# 60620-1149 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?><HTML> +<HEAD> +<TITLE>VICIDIAL: Leitung Ladevorrichtung Modul + + + + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader_rowdisplay.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader_rowdisplay.pl new file mode 100644 index 00000000..9caaeab2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/listloader_rowdisplay.pl @@ -0,0 +1,154 @@ +#!/usr/bin/perl +# +# listloader_rowdisplay.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } +} +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); +$var_str=""; + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for(my $iC = $oWkS->{MinCol} ; defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) { + $oWkC = $oWkS->{Cells}[0][$iC]; + if ($oWkC) { + $var_str.=$oWkC->Value."|"; + } else { + $var_str.="|"; + } + } +} + +@xls_row=split(/\|/, $var_str); + + +$stmtA = "select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + my $names = $sthA->{'NAME'}; + my $numFields = $sthA->{'NUM_OF_FIELDS'}; + for (my $i = 0; $i < $numFields; $i++) + { + # printf("%s%s", $i ? "," : "", $$names[$i]); + # printf("%s%s", $i ? "," : "", $$ref[$i]); + + $field_name=uc($$names[$i]); + $field_name=~s/\_/ /g; + print "
".$field_name.": \r\n"; + print " \r\n"; + print "
"; +?> + + +
method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Last Leitungen von dieser Akte:
Liste Identifikation Override: (nur Zahlen or leave blank for values in the file)
Telefon-Nr Override: (nur Zahlen or leave blank for values in the file)
Zu verwenden Dateiaufbau:Standard Format    Kundenspezifischer Plan
Leitung Duplikat-Überprüfung:
Vorbereitungs- und Anlaufzeit Zone Nachschlagen:
        
        ZURÜCK ZU ADMINLIST LOADER-     VERSION:     BAU:    
+ + +document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; + flush(); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.txt"); + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + { + $stmt_file=fopen("listloader_stmts.txt", "w"); + } + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + print "
Verarbeitung$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE: $phone_code_override

"; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($list_id_override)>0) + { + # print "

LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override

"; + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
STÖRUNG: Die Akte hat nicht die erforderliche Zahl vonauffängt, um sie zu verarbeiten.
"; + } + } else if (!eregi(".csv", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.xls"); + $file=fopen("$lead_file", "r"); + + print "
VerarbeitungExcel file... \n"; + if (strlen($list_id_override)>0) + { + print "

LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override

\n"; + } + if (strlen($phone_code_override)>0) + { + print "

TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE: $phone_code_override

\n"; + } + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } else { + # copy($leadfile, "./vicidial_temp_file.csv"); + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
VerarbeitungCSV file... \n"; + if (strlen($list_id_override)>0) + { + print "

LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + } + print ""; + } + +if ($leadfile) { + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + ### LOG INSERTION Admin Log Table ### + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTEN', event_type='LOAD', record_id='$list_id_override', event_code='ADMIN LOAD LIST', event_sql='', event_notes='File Name: $leadfile_name';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($file_layout=="standard") { + + print ""; + flush(); + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "
Verarbeitung$delim_name-delimited file... ($tab_count|$pipe_count)\n"; + if (strlen($list_id_override)>0) + { + print "

LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE: $phone_code_override

\n"; + } + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
STÖRUNG: Die Akte hat nicht die erforderliche Zahl vonauffängt, um sie zu verarbeiten.
"; + } + } else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + $file=fopen("$lead_file", "r"); + + # echo "|$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
VerarbeitungCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } + print ""; + + } else { + print "
"; + flush(); + print "\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1", $link); + + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + flush(); + $file=fopen("$lead_file", "r"); + print "
Verarbeitung$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE: $phone_code_override

"; + } + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + + } + } + else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + + # echo "|$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
VerarbeitungCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

LISTE IDENTIFIKATION OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE: $phone_code_override

"; + } + + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + $row=fgetcsv($file, 1000, ","); + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + } + } + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print "
VICIDIAL SpalteAkte Daten
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
        
\r\n"; + # } + print ""; + } +#} else if (filesize($leadfile)>8388608) { +# print "
ERROR: File exceeds the 8MB limit.
"; +} +?> + + + + + + + + +4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sonntag March to First Sonntag November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sonntag March to First Sonntag November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sonntag, to 6=Samstag) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sonntag April to Last Sonntag October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sonntag in April and last Sonntag in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sonntag March to Last Sonntag October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sonntag in March and last Sonntag in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sonntag October to Last Sonntag March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sonntag in October and last Sonntag in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sonntag October to Last Sonntag March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sonntag in October and last Sonntag in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sonntag October to Third Sonntag March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sonntag in October and third Sonntag in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sonntag October to Last Sonntag February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sonntag October to Last Sonntag February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # lokale Zeit calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + +?> +
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/non_agent_api.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/non_agent_api.php new file mode 100644 index 00000000..b64ab4c0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/non_agent_api.php @@ -0,0 +1,2500 @@ + LICENSE: AGPLv2 +# +# This script is designed as an API(Application Programming Interface) to allow +# other programs to interact with all non-agent-screen VICIDIAL functions +# +# required variables: +# - $user +# - $pass +# - $function - ('add_lead','version') +# - $source - ('vtiger','webform','adminweb') +# - $format - ('text','debug') + +# CHANGELOG: +# 80724-0021 - First build of script +# 80801-0047 - Added gmt lookup and hopper insert time validation +# 80909-2012 - Added support for campaign-specific DNC lists +# 80910-0020 - Added support for multi-alt-phones, added version function +# 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function +# + +$version = '2.2.0-16'; +$build = '91216-0331'; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["function"])) {$function=$_GET["function"];} + elseif (isset($_POST["function"])) {$function=$_POST["function"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["dnc_check"])) {$dnc_check=$_GET["dnc_check"];} + elseif (isset($_POST["dnc_check"])) {$dnc_check=$_POST["dnc_check"];} +if (isset($_GET["campaign_dnc_check"])) {$campaign_dnc_check=$_GET["campaign_dnc_check"];} + elseif (isset($_POST["campaign_dnc_check"])) {$campaign_dnc_check=$_POST["campaign_dnc_check"];} +if (isset($_GET["add_to_hopper"])) {$add_to_hopper=$_GET["add_to_hopper"];} + elseif (isset($_POST["add_to_hopper"])) {$add_to_hopper=$_POST["add_to_hopper"];} +if (isset($_GET["hopper_priority"])) {$hopper_priority=$_GET["hopper_priority"];} + elseif (isset($_POST["hopper_priority"])) {$hopper_priority=$_POST["hopper_priority"];} +if (isset($_GET["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_GET["hopper_local_call_time_check"];} + elseif (isset($_POST["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_POST["hopper_local_call_time_check"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phones"];} + elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} +if (isset($_GET["source"])) {$source=$_GET["source"];} + elseif (isset($_POST["source"])) {$source=$_POST["source"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $DB=ereg_replace("[^0-9]","",$DB); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); + $format = ereg_replace("[^0-9a-zA-Z]","",$format); + $list_id = ereg_replace("[^0-9]","",$list_id); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $vendor_lead_code = ereg_replace(";","",$vendor_lead_code); + $vendor_lead_code = ereg_replace("\+"," ",$vendor_lead_code); + $source_id = ereg_replace(";","",$source_id); + $source_id = ereg_replace("\+"," ",$source_id); + $gmt_offset_now = ereg_replace("-\_\.0-9","",$gmt_offset_now); + $title = ereg_replace("[^- \_\.0-9a-zA-Z]","",$title); + $first_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$first_name); + $first_name = ereg_replace("\+"," ",$first_name); + $middle_initial = ereg_replace("[^0-9a-zA-Z]","",$middle_initial); + $last_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$last_name); + $last_name = ereg_replace("\+"," ",$last_name); + $address1 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address1); + $address2 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address2); + $address3 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address3); + $address1 = ereg_replace("\+"," ",$address1); + $address2 = ereg_replace("\+"," ",$address2); + $address3 = ereg_replace("\+"," ",$address3); + $city = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$city); + $city = ereg_replace("\+"," ",$city); + $state = ereg_replace("[^- 0-9a-zA-Z]","",$state); + $province = ereg_replace("[^- \+\.\_0-9a-zA-Z]","",$province); + $province = ereg_replace("\+"," ",$province); + $postal_code = ereg_replace("[^- \+0-9a-zA-Z]","",$postal_code); + $postal_code = ereg_replace("\+"," ",$postal_code); + $country_code = ereg_replace("[^A-Z]","",$country_code); + $gender = ereg_replace("[^A-Z]","",$gender); + $date_of_birth = ereg_replace("[^-0-9]","",$date_of_birth); + $alt_phone = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$alt_phone); + $alt_phone = ereg_replace("\+"," ",$alt_phone); + $email = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$email); + $email = ereg_replace("\+"," ",$email); + $security_phrase = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$security_phrase); + $security_phrase = ereg_replace("\+"," ",$security_phrase); + $comments = ereg_replace(";","",$comments); + $comments = ereg_replace("\+"," ",$comments); + $dnc_check = ereg_replace("[^A-Z]","",$dnc_check); + $campaign_dnc_check = ereg_replace("[^A-Z]","",$campaign_dnc_check); + $add_to_hopper = ereg_replace("[^A-Z]","",$add_to_hopper); + $hopper_priority = ereg_replace("-0-9","",$hopper_priority); + $hopper_local_call_time_check = ereg_replace("[^A-Z]","",$hopper_local_call_time_check); + $campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); + $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); + $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); + $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); + } + +if (strlen($list_id)<1) {$list_id='999';} +if (strlen($phone_code)<1) {$phone_code='1';} +$USarea = substr($phone_number, 0, 3); +if (strlen($hopper_priority)<1) {$hopper_priority=0;} +if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$postalgmt=''; +$api_script = 'non-agent'; +$api_logging = 1; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +### Grab Server GMT value from the database +$stmt="SELECT local_gmt FROM servers where active='Y' limit 1;"; +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$gmt_recs = mysql_num_rows($rslt); +if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } +else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + +$LOCAL_GMT_OFF = $SERVER_GMT; +$LOCAL_GMT_OFF_STD = $SERVER_GMT; + + + + + +################################################################################ +### version - show version and date information for the API +################################################################################ +if ($function == 'version') + { + $data = "VERSION: $version|BUILD: $build|DATE: $NOW_TIME|EPOCH: $StarTtime"; + $result = 'SUCCESS'; + echo "$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + + + + + +################################################################################ +### add_lead - inserts a lead into the vicidial_list table +################################################################################ +if ($function == 'add_lead') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $modify_leads=$row[0]; + + if ($modify_leads < 1) + { + $result = 'ERROR'; + $result_reason = "add_lead USER DOES NOT HAVE PERMISSION TO ADD LEADS TO THE SYSTEM"; + echo "$result: $result_reason: |$user|$modify_leads|\n"; + $data = "$modify_leads"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ( (strlen($phone_number)<6) || (strlen($phone_number)>16) ) + { + $result = 'ERROR'; + $result_reason = "add_lead INVALID PHONE NUMBER"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN DNC"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN CAMPAIGN DNC"; + echo "$result: $result_reason - $phone_number|$campaign_id|$user\n"; + $data = "$phone_number|$campaign_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + + + ### get current gmt_offset of the phone_number + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',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',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $lead_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "add_lead LEAD HAS BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$lead_id|$gmt_offset|$user\n"; + $data = "$phone_number|$list_id|$lead_id|$gmt_offset"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + if (strlen($multi_alt_phones) > 5) + { + $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; + $map = explode('!', $multi_alt_phones); + $map_count = count($map); + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} + $g++; + $r=0; $s=0; $inserted_alt_phones=0; + while ($r < $map_count) + { + $s++; + $ncn=$MT; + $ncn = explode('_', $map[$r]); + print "$ncn[0]|$ncn[1]|$ncn[2]"; + + if (strlen($forcephonecode) > 0) + {$ALTm_phone_code[$r] = $forcephonecode;} + else + {$ALTm_phone_code[$r] = $ncn[1];} + if (strlen($ALTm_phone_code[$r]) < 1) + {$ALTm_phone_code[$r]='1';} + $ALTm_phone_number[$r] = $ncn[0]; + $ALTm_phone_note[$r] = $ncn[2]; + $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Zaffected_rows = mysql_affected_rows($link); + $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); + $r++; + } + $result = 'NOTICE'; + $result_reason = "add_lead MULTI-ALT-PHONE NUMBERS LOADED"; + echo "$result: $result_reason - $inserted_alt_phones|$lead_id|$user\n"; + $data = "$inserted_alt_phones|$lead_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + + if ($add_to_hopper == 'Y') + { + $dialable=1; + + $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $local_call_time=$row[0]; + $VD_campaign_id=$row[1]; + + if ($hopper_local_call_time_check == 'Y') + { + ### call function to determine if lead is dialable + $dialable = dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state); + } + if ($dialable < 1) + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME"; + echo "$result: $result_reason - $phone_number|$lead_id|$gmt_offset|$dialable|$user\n"; + $data = "$phone_number|$lead_id|$gmt_offset|$dialable"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + ### code to insert into hopper goes here + + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Haffected_rows = mysql_affected_rows($link); + if ($Haffected_rows > 0) + { + $hopper_id = mysql_insert_id($link); + + $result = 'NOTICE'; + $result_reason = "add_lead ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$hopper_id|$user\n"; + $data = "$phone_number|$lead_id|$hopper_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$stmt|$user\n"; + $data = "$phone_number|$lead_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + else + { + $result = 'ERROR'; + $result_reason = "add_lead LEAD HAS NOT BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$stmt|$user\n"; + $data = "$phone_number|$list_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } + } +################################################################################ +### END add_lead +################################################################################ + + + +$result = 'ERROR'; +$result_reason = "NO FUNCTION SPECIFIED"; +echo "$result: $result_reason\n"; +api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + + + + + + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + + + + + + +##### FUNCTIONS ##### + +##### LOOKUP GMT, FINDS THE CURRENT GMT OFFSET FOR A PHONE NUMBER ##### + +function lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code) +{ +require("dbconnect.php"); + +$postalgmt_found=0; +if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + + + + + +##### DETERMINE IF LEAD IS DIALABLE ##### +function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) + { + $dialable=0; + + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + if ($GMT_day==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } + } + + return $dialable; + } + +/* + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) + { + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + +*/ + + + + +##### Logging ##### +function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) + { + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/remote_dispo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/remote_dispo.php new file mode 100644 index 00000000..dc991f1f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/remote_dispo.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + +$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;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +?> + + +VICIDIAL DIREKTÜBERTRAGUNG: Anruf-Einteilung +\n"; +?> + + +
+ +"; + +if ($end_call > 0) +{ + +$call_length = ($STARTtime - $call_began); + + ### insert a NEW record to the vicidial_closer_log table + $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";} + $rslt=mysql_query($stmt, $link); + + ### update the lead record in the vicidial_list table + $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";} + $rslt=mysql_query($stmt, $link); + + echo "Anruf ist dispositioned gewesen       $NOW_TIME\n

\n"; + + echo "
\n"; + +} +else +{ + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $campaign_id = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; # + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; # + $address1 = "$row[16]"; # + $address2 = "$row[17]"; # + $address3 = "$row[18]"; # + $city = "$row[19]"; # + $state = "$row[20]"; # + $province = "$row[21]"; # + $postal_code = "$row[22]"; # + $country_code = "$row[23]"; # + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; # + $email = "$row[27]"; # + $security = "$row[28]"; # + $comments = "$row[29]"; # + + echo "
Anrufinformationen: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     Kampagne Identifikation: $campaign_id
Fronter: $tsr     Liste Identifikation: $list_id
Vorname:   \n"; + echo " Letzter Name:
  \n"; + echo "Postcode:
\n"; + echo "


\n"; + + } + else + { + echo "Leitung Nachschlagen FIEL für lead_id aus $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + + + +} + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nIndexlaufzeit: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/server_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/server_stats.php new file mode 100644 index 00000000..0040f875 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/server_stats.php @@ -0,0 +1,97 @@ + LICENSE: GPLv2 +### +# CHANGES +# +# 60620-1037 - Added Link back to Admin section +# - Added required user/pass to gain access to this page +# 61101-1331 - Added SIP/IAX listen/barge links +# + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select * from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $i++; + } +?> + + + + + +VICIDIAL: Bediener-Notfall and Reports +VICIDIAL: Bediener-Notfall and Reports                           +ZURÜCK ZU ADMIN

+ + +

+
+ $o)
+	{
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	$o++;
+	}
+
+?>
+
SERVERBESCHREIBUNGIP ADDRESSAKTIVVDAD timeVDcall timePARK timeCLOSER/INBOUND time
$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]LINKLINKLINKLINK
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_edit.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_edit.php new file mode 100644 index 00000000..1f626d3f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_edit.php @@ -0,0 +1,481 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80624-1342 - First build +# 80701-1323 - functional beta version done +# 90310-2109 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["oldLOGINepoch"])) {$oldLOGINepoch=$_GET["oldLOGINepoch"];} + elseif (isset($_POST["oldLOGINepoch"])) {$oldLOGINepoch=$_POST["oldLOGINepoch"];} +if (isset($_GET["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_GET["oldLOGOUTepoch"];} + elseif (isset($_POST["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_POST["oldLOGOUTepoch"];} +if (isset($_GET["oldLOGINdate"])) {$oldLOGINdate=$_GET["oldLOGINdate"];} + elseif (isset($_POST["oldLOGINdate"])) {$oldLOGINdate=$_POST["oldLOGINdate"];} +if (isset($_GET["oldLOGOUTdate"])) {$oldLOGOUTdate=$_GET["oldLOGOUTdate"];} + elseif (isset($_POST["oldLOGOUTdate"])) {$oldLOGOUTdate=$_POST["oldLOGOUTdate"];} +if (isset($_GET["LOGINepoch"])) {$LOGINepoch=$_GET["LOGINepoch"];} + elseif (isset($_POST["LOGINepoch"])) {$LOGINepoch=$_POST["LOGINepoch"];} +if (isset($_GET["LOGOUTepoch"])) {$LOGOUTepoch=$_GET["LOGOUTepoch"];} + elseif (isset($_POST["LOGOUTepoch"])) {$LOGOUTepoch=$_POST["LOGOUTepoch"];} +if (isset($_GET["notes"])) {$notes=$_GET["notes"];} + elseif (isset($_POST["notes"])) {$notes=$_POST["notes"];} +if (isset($_GET["LOGINevent_id"])) {$LOGINevent_id=$_GET["LOGINevent_id"];} + elseif (isset($_POST["LOGINevent_id"])) {$LOGINevent_id=$_POST["LOGINevent_id"];} +if (isset($_GET["LOGOUTevent_id"])) {$LOGOUTevent_id=$_GET["LOGOUTevent_id"];} + elseif (isset($_POST["LOGOUTevent_id"])) {$LOGOUTevent_id=$_POST["LOGOUTevent_id"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["timeclock_id"])) {$timeclock_id=$_GET["timeclock_id"];} + elseif (isset($_POST["timeclock_id"])) {$timeclock_id=$_POST["timeclock_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); +$invalid_record=0; + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $modify_timeclock_log = $row[1]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT event,tcid_link from vicidial_timeclock_log where timeclock_id='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $event = $row[0]; + $tcid_link = $row[1]; + } + if (ereg("LOGIN",$event)) + { + $LOGINevent_id = $timeclock_id; + $LOGOUTevent_id = $tcid_link; + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (ereg("LOGOUT",$event)) + { + $LOGOUTevent_id = $timeclock_id; + $stmt="SELECT timeclock_id from vicidial_timeclock_log where tcid_link='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_id = $row[0]; + } + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (strlen($LOGOUTevent_id)<1) + {$invalid_record++;} + + ### + if ($invalid_record < 1) + { + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGINevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_epoch = $row[0]; + $LOGINevent_date = $row[1]; + $LOGINlogin_sec = $row[2]; + $LOGINevent = $row[3]; + $LOGINuser = $row[4]; + $LOGINuser_group = $row[5]; + $LOGINip_address = $row[6]; + $LOGINshift_id = $row[7]; + $LOGINnotes = $row[8]; + $LOGINmanager_user = $row[9]; + $LOGINmanager_ip = $row[10]; + $LOGINevent_datestamp = $row[11]; + } + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGOUTevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGOUTevent_epoch = $row[0]; + $LOGOUTevent_date = $row[1]; + $LOGOUTlogin_sec = $row[2]; + $LOGOUTevent = $row[3]; + $LOGOUTuser = $row[4]; + $LOGOUTuser_group = $row[5]; + $LOGOUTip_address = $row[6]; + $LOGOUTshift_id = $row[7]; + $LOGOUTnotes = $row[8]; + $LOGOUTmanager_user = $row[9]; + $LOGOUTmanager_ip = $row[10]; + $LOGOUTevent_datestamp =$row[11]; + } + + $user=$LOGINuser; + } + } + + + +?> + + + +ADMINISTRATION:Timeclock Datensatz bearbeiten +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$TCedit_javascript = '1'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=720 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Timeclock Datensatz bearbeiten for <?php echo $user ?></TD><TD ALIGN=RIGHT>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + + + + + +##### BEGIN TIMECLOCK RECORD MODIFY ##### + +if ( ($invalid_record < 1) or (strlen($timeclock_id)<1) ) +{ + +if ($stage == "edit_TC_log") + { + $log_time = ($LOGOUTepoch - $LOGINepoch); + $NEXTevent_epoch = $StarTtimE; + $PREVevent_epoch = 0; + + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id > '$LOGOUTevent_id' and user='$user' order by timeclock_id limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $NEXTevent_epoch = $row[0]; + $NEXTevent_id = $row[1]; + } + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id < '$LOGINevent_id' and user='$user' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $PREVevent_epoch = $row[0]; + $PREVevent_id = $row[1]; + } + + if ( ($LOGINepoch <= $PREVevent_epoch) || ($LOGOUTepoch >= $NEXTevent_epoch) ) + { + echo "ERROR-Es gibt ein Problem mit den Daten, die Sie eingegeben haben, gehen Sie bitte zurück<BR>\n"; + echo "Ein timeclock Tagung können sich nicht ein anderes timeclock Sitzung<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + echo "$PREVevent_epoch<BR>\n"; + echo "$PREVevent_id<BR>\n"; + echo "$NEXTevent_epoch<BR>\n"; + echo "$NEXTevent_id<BR>\n"; + exit; + } + if ( ($LOGINepoch > $StarTtimE) || ($LOGOUTepoch > $StarTtimE) || ($log_time > 86400) || ($log_time < 1) ) + { + echo "ERROR-Es gibt ein Problem mit den Daten, die Sie eingegeben haben, gehen Sie bitte zurück<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$notes<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + exit; + } + else + { + $LOGINdatetime = date("Y-m-d H:i:s", $LOGINepoch); + $LOGOUTdatetime = date("Y-m-d H:i:s", $LOGOUTepoch); + + ### update LOGIN record in the timeclock log + $stmtA="UPDATE vicidial_timeclock_log set event_epoch='$LOGINepoch', event_date='$LOGINdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGINevent_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGINevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGINepoch|$oldLOGINdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + ### update LOGOUT record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set event_epoch='$LOGOUTepoch', event_date='$LOGOUTdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGOUTevent_id';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGOUTevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGOUTepoch|$oldLOGOUTdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + echo "The timeclock session has been updated. <A HREF=\"$PHP_SELF?timeclock_id=$LOGINevent_id\">Click here to view</A>.<BR>\n"; + exit; + } + } +##### END TIMECLOCK RECORD MODIFY ##### + + + + +echo "\n<BR>"; + +if ($modify_timeclock_log > 0) + { +# $LOGINevent_id = $timeclock_id; +# $LOGOUTevent_id = $tcid_link; + + $event_hours = ($LOGINlogin_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + + $stmt="SELECT full_name from vicidial_users where user='$LOGINuser';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST name=edit_log id=edit_log>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<input type=hidden name=oldLOGINepoch id=oldLOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGOUTepoch id=oldLOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGINdate id=oldLOGINdate value=\"$LOGINevent_date\">\n"; + echo "<input type=hidden name=oldLOGOUTdate id=oldLOGOUTdate value=\"$LOGOUTevent_date\">\n"; + echo "<input type=hidden name=LOGINepoch id=LOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=LOGOUTepoch id=LOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=LOGINevent_id id=LOGINevent_id value=\"$LOGINevent_id\">\n"; + echo "<input type=hidden name=LOGOUTevent_id id=LOGOUTevent_id value=\"$LOGOUTevent_id\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<TABLE Border=0><TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "        USER: $LOGINuser ($full_name)         \n"; + echo "HOURS: <span name=login_time id=login_time> $event_hours_int:$event_minutes_int </span>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD>\n"; + echo "<TABLE Border=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGIN TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGINbegin_date id=LOGINbegin_date value=\"$LOGINevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGINevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>User Gruppe:</TD><TD ALIGN=RIGHT>$LOGINuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGINip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGINmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGINmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGINnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGINevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + + echo "</TD><TD>         \n"; + echo "</TD><TD>\n"; + echo "<TABLE Border=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGOUT TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGOUTbegin_date id=LOGOUTbegin_date value=\"$LOGOUTevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGOUTevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>User Gruppe:</TD><TD ALIGN=RIGHT>$LOGOUTuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGOUTip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGOUTnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGOUTevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + echo "</TD></TR>\n"; + + echo "<TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "NEW NOTES: <input type=text name=notes value='' size=80 maxlength=255>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD COLSPAN=3 ALIGN=CENTER>\n"; + echo "<input type=button name=go_submit id=go_submit value=SUBMIT onclick=\"run_submit();\"><BR></form>\n"; + echo "</TD></TR></TABLE>\n"; + echo "<BR><BR>\n"; + } + + +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " - <a href=\"./user_stats.php?user=$user\">User-Statistiken</a>\n"; +echo " - <a href=\"./admin.php?ADD=3&user=$user\">Ändern Sie Benutzer</a>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +} +else +{ + +echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; +} +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_report.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_report.php new file mode 100644 index 00000000..b7811cd8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_report.php @@ -0,0 +1,361 @@ +<?php +# timeclock_report.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80529-0055 - First build +# 80617-1416 - Fixed totals tally bug +# 80707-0754 - Fixed groups bug, changed formatting +# 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +##### Pull values from posted form variables ##### +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($order)<2) {$order='hours_down';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + +##### START HTML ##### +?> + +<HTML> +<HEAD> + +<style type="text/css"> +<!-- + div.scroll_callback {height: 300px; width: 620px; overflow: scroll;} + div.scroll_list {height: 400px; width: 140px; overflow: scroll;} + div.scroll_script {height: 331px; width: 600px; background: #FFF5EC; overflow: scroll; font-size: 12px; font-family: sans-serif;} + div.text_input {overflow: auto; font-size: 10px; font-family: sans-serif;} + .body_text {font-size: 13px; font-family: sans-serif;} + .preview_text {font-size: 13px; font-family: sans-serif; background: #CCFFCC} + .preview_text_red {font-size: 13px; font-family: sans-serif; background: #FFCCCC} + .body_small {font-size: 11px; font-family: sans-serif;} + .body_tiny {font-size: 10px; font-family: sans-serif;} + .log_text {font-size: 11px; font-family: monospace;} + .log_text_red {font-size: 11px; font-family: monospace; font-weight: bold; background: #FF3333} + .sd_text {font-size: 16px; font-family: sans-serif; font-weight: bold;} + .sh_text {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .sb_text {font-size: 12px; font-family: sans-serif;} + .sk_text {font-size: 11px; font-family: sans-serif;} + .skb_text {font-size: 13px; font-family: sans-serif; font-weight: bold;} + .ON_conf {font-size: 11px; font-family: monospace; color: black; background: #FFFF99} + .OFF_conf {font-size: 11px; font-family: monospace; color: black; background: #FFCC77} + .cust_form {font-family: sans-serif; font-size: 10px; overflow: auto} + + .select_bold {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .header_white {font-size: 14px; font-family: sans-serif; font-weight: bold; color: white} + .data_records {font-size: 12px; font-family: sans-serif; color: black} + .data_records_fix {font-size: 12px; font-family: monospace; color: black} + .data_records_fix_small {font-size: 9px; font-family: monospace; color: black} + +--> +</style> + +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<TITLE>UserTimeclock Report + +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +$user_group_ct = count($user_group); +$user_group_string='|'; + +$i=0; +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_timeclock_log.user_group IN($user_group_SQL)"; + } + +if ($DB > 0) + { + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + } + +echo "<CENTER>\n"; +echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; +echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; +echo "<TABLE Border=0 CELLSPACING=6><TR><TD ALIGN=LEFT VALIGN=TOP>\n"; + +echo "<font class=\"select_bold\"><B>Zeitraum:</B></font><BR><CENTER>\n"; +echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; +echo "<BR>to<BR>\n"; +echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Benutzer-Gruppen:</B></font><BR><CENTER>\n"; +echo "<SELECT SIZE=5 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } +echo "</SELECT>\n"; + +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Order:</B></font><BR>\n"; +echo "<SELECT SIZE=1 NAME=order>\n"; +echo "<option selected value=\"$order\">$order</option>\n"; +echo "<option value=\"\">--</option>\n"; +echo "<option>hours_up</option>\n"; +echo "<option>hours_down</option>\n"; +echo "<option>user_up</option>\n"; +echo "<option>user_down</option>\n"; +echo "<option>name_up</option>\n"; +echo "<option>name_down</option>\n"; +echo "<option>group_up</option>\n"; +echo "<option>group_down</option>\n"; +echo "</SELECT><BR><CENTER>\n"; + +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>User:</B></font><BR>\n"; +echo "<INPUT TYPE=text NAME=user SIZE=7 MAXLENGTH=20 VALUE=\"$user\">\n"; + +echo "<BR><BR><INPUT TYPE=Submit NAME=SUBMIT VALUE=SUBMIT>\n"; +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "</TD><TD ALIGN=CENTER VALIGN=TOP ROWSPAN=3>\n"; +echo "<FONT class=\"select_bold\" COLOR=BLACK SIZE=2>     <a href=\"./admin.php?ADD=999999\">REPORTS</a> </FONT>\n"; + +echo "</TD></TR></TABLE>\n"; +echo "</FORM>\n\n"; + +echo "<PRE><FONT SIZE=3>\n"; + + +echo "UserTimeclock Report $NOW_TIME\n"; + +echo "Time range: $query_date to $end_date\n\n"; +echo "---------- USER TIMECLOCK DETAILS -------------\n"; +echo "These totals do NOT include any active sessions\n</PRE>\n"; + +echo "<TABLE Border=0 CELLSPACING=1 CELLPADDING=3><TR BGCOLOR=BLACK>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">#</TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  USER  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  NAME  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  GROUP  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  HOURS  </TD>\n"; +echo "</TR>\n"; + +$order_SQL=''; +if ($order == 'hours_up') {$order_SQL = "order by login";} +if ($order == 'hours_down') {$order_SQL = "order by login desc";} +if ($order == 'user_up') {$order_SQL = "order by vicidial_users.user";} +if ($order == 'user_down') {$order_SQL = "order by vicidial_users.user desc";} +if ($order == 'name_up') {$order_SQL = "order by full_name";} +if ($order == 'name_down') {$order_SQL = "order by full_name desc";} +if ($order == 'group_up') {$order_SQL = "order by vicidial_timeclock_log.user_group";} +if ($order == 'group_down') {$order_SQL = "order by vicidial_timeclock_log.user_group desc";} + +if (strlen($user) > 0) {$user_SQL = "and vicidial_timeclock_log.user='$user'";} +else {$user_SQL='';} + +$stmt="select vicidial_users.user,full_name,sum(login_sec) as login,vicidial_timeclock_log.user_group from vicidial_users,vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date 00:00:00' and event_date <= '$end_date 23:59:59' and vicidial_users.user=vicidial_timeclock_log.user $user_SQL $user_group_SQL group by vicidial_users.user,vicidial_timeclock_log.user_group $order_SQL limit 100000;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$rows_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $rows_to_print) + { + $dbHOURS=0; + $row=mysql_fetch_row($rslt); + $user_id[$i] = $row[0]; + $full_name[$i] = $row[1]; + $login_sec[$i] = $row[2]; $TOTlogin_sec = ($TOTlogin_sec + $row[2]); + $u_group[$i] = $row[3]; + + if ($login_sec[$i] > 0) + { + $dbHOURS = ($login_sec[$i] / 3600); + $dbHOURS = round($dbHOURS, 2); + $dbHOURS = sprintf("%01.2f", $dbHOURS); + } + else + {$dbHOURS='0.00';} + + $hours[$i] = $dbHOURS; + $hoursSORT[$i] = "$dbHOURS-----$i"; + + $i++; + } + + +$j=0; +while ($j < $rows_to_print) + { + + $hours_split = explode("-----",$hoursSORT[$j]); + $i = $hours_split[1]; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "<TR $bgcolor>\n"; + echo "<TD ALIGN=LEFT><FONT class=\"data_records_fix_small\">$j</TD>\n"; + echo "<TD><FONT class=\"data_records\"><A HREF=\"user_status.php?user=$user_id[$i]\">$user_id[$i]</A> </TD>\n"; + echo "<TD><FONT class=\"data_records\">$full_name[$i] </TD>\n"; + echo "<TD><FONT class=\"data_records\">$u_group[$i] </TD>\n"; + echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $hours[$i]</TD>\n"; + echo "</TR>\n"; + + $j++; + } + + +if ($TOTlogin_sec > 0) + { + $TOTdbHOURS = ($TOTlogin_sec / 3600); + $TOTdbHOURS = round($TOTdbHOURS, 0); + $TOTdbHOURS = sprintf("%01.0f", $TOTdbHOURS); + } +else + {$TOTdbHOURS='0.00';} + +$TOThours = $TOTdbHOURS; + + +echo "<TR BGCOLOR=#E6E6E6>\n"; +echo "<TD ALIGN=LEFT COLSPAN=4><FONT class=\"data_records\">TOTALS</TD>\n"; +echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $TOThours</TD>\n"; +echo "</TR>\n"; + +echo "</TABLE>\n"; + +echo "\n"; + +/* + $TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60); + $TOTavgWAIT_M = round($TOTavgWAIT_M, 2); + $TOTavgWAIT_M_int = intval("$TOTavgWAIT_M"); + $TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int); + $TOTavgWAIT_S = ($TOTavgWAIT_S * 60); + $TOTavgWAIT_S = round($TOTavgWAIT_S, 0); + if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";} + $TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S"; + $TOTavgWAIT_MS = sprintf("%6s", $TOTavgWAIT_MS); + while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);} +*/ +?> +</CENTER> +</BODY></HTML> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_status.php new file mode 100644 index 00000000..c0006b07 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/timeclock_status.php @@ -0,0 +1,550 @@ +<?php +# timeclock_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80602-0201 - First Build +# 80603-1500 - formatting changes +# 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$HHMM = date("Hi"); +$HHteod = substr($timeclock_end_of_day,0,2); +$MMteod = substr($timeclock_end_of_day,2,2); + +if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} +else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + +$EoDdate = date("Y-m-d H:i:s", $EoD); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + if ($row[0]==$user_group) + {$FORMuser_groups.="<option value=\"$row[0]\" SELECTED>$row[0]</option>";} + else + {$FORMuser_groups.="<option value=\"$row[0]\">$row[0]</option>";} + $i++; + } + +if (strlen($user_group) > 0) + { + $stmt="SELECT group_name from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + } + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION:Timeclock Status +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<CENTER> +<TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Timeclock Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php +echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; +echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>User Group</a>\n"; +?> +</TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<select size=1 name=user_group>$FORMuser_groups</select>"; +echo "<input type=submit name=submit value=submit>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; +echo "<br><center>\n"; + +if (strlen($user_group) < 1) + { + exit; + } + + +##### grab all users in this user_group ##### +$stmt="SELECT user,full_name from vicidial_users where user_group='" . mysql_real_escape_string($user_group) . "' order by full_name;"; +if ($DB>0) {echo "|$stmt|";} +$rslt=mysql_query($stmt, $link); +$users_to_print = mysql_num_rows($rslt); +$o=0; +while ($users_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $users[$o] = $row[0]; + $full_name[$o] = $row[1]; + $Vevent_time[$o] = ''; + $Vevent_epoch[$o] = 0; + $Vcampaign[$o] = ''; + $Tevent_epoch[$o] = ''; + $Tevent_date[$o] = ''; + $Tstatus[$o] = ''; + $Tip_address[$o] = ''; + $Tlogin_time[$o] = ''; + $Tlogin_sec[$o] = 0; + + $o++; + } + +$o=0; +while ($users_to_print > $o) + { + $total_login_time = 0; + ##### grab timeclock status record for this user ##### + $stmt="SELECT event_epoch,event_date,status,ip_address from vicidial_timeclock_status where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $stats_to_print = mysql_num_rows($rslt); + if ($stats_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_epoch[$o] = $row[0]; + $Tevent_date[$o] = $row[1]; + $Tstatus[$o] = $row[2]; + $Tip_address[$o] = $row[3]; + + if ( ($row[2]=='START') or ($row[2]=='LOGIN') ) + {$bgcolor[$o]='bgcolor="#B9CBFD"';} + else + {$bgcolor[$o]='bgcolor="#9BB9FB"';} + } + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event,event_epoch,login_sec from vicidial_timeclock_log where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $logs_to_parse = mysql_num_rows($rslt); + $p=0; + while ($logs_to_parse > $p) + { + $row=mysql_fetch_row($rslt); + if ( (ereg("LOGIN", $row[0])) or (ereg("START", $row[0])) ) + { + $login_sec=''; + $Tevent_time[$o] = date("Y-m-d H:i:s", $row[1]); + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[2]; + $total_login_time = ($total_login_time + $login_sec); + } + $p++; + } + if ( (strlen($login_sec)<1) and ($logs_to_parse > 0) ) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } + if ($logs_to_parse > 0) + { + $total_login_hours = ($total_login_time / 3600); + $total_login_hours_int = round($total_login_hours, 2); + $total_login_hours_int = intval("$total_login_hours"); + $total_login_minutes = ($total_login_hours - $total_login_hours_int); + $total_login_minutes = ($total_login_minutes * 60); + $total_login_minutes_int = round($total_login_minutes, 0); + if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + + $Tlogin_time[$o] = "$total_login_hours_int:$total_login_minutes_int"; + $Tlogin_sec[$o] = $total_login_time; + } + else + { + $total_login_time = 0; + $Tlogin_time[$o] = "0:00"; + $Tlogin_sec[$o] = $total_login_time; + } + + if ($DB>0) {echo "|$Tlogin_sec[$o]|$Tlogin_time[$o]|";} + + ##### grab vicidial_agent_log records in this user_group ##### + $stmt="SELECT event_time,UNIX_TIMESTAMP(event_time),campaign_id from vicidial_agent_log where user='$users[$o]' and event_time >= '$EoDdate' order by agent_log_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $vals_to_print = mysql_num_rows($rslt); + if ($vals_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Vevent_time[$o] = $row[0]; + $Vevent_epoch[$o] = $row[1]; + $Vcampaign[$o] = $row[2]; + } + + $o++; + } + + +##### print each user that has any activity for today ##### +echo "<br>\n"; +echo "<center>\n"; + +echo "<TABLE width=720 cellspacing=0 cellpadding=1>\n"; +echo "<TR>\n"; +echo "<TD bgcolor=\"#99FF33\">     </TD><TD align=left> TC Logged in and VICI active</TD>\n"; # bright green +echo "<TD bgcolor=\"#FFFF33\">     </TD><TD align=left> TC Logged in only</TD>\n"; # bright yellow +echo "<TD bgcolor=\"#FF6666\">     </TD><TD align=left> VICI active only</TD>\n"; # bright red +echo "</TR><TR>\n"; +echo "<TD bgcolor=\"#66CC66\">     </TD><TD align=left> TC Logged out and VICI active</TD>\n"; # dull green +echo "<TD bgcolor=\"#CCCC00\">     </TD><TD align=left> TC Logged out only</TD>\n"; # dull yellow +echo "<TD>     </TD><TD align=left>   </TD>\n"; +echo "</TR></TABLE><BR>\n"; + +echo "<B>USER STATUS FOR User Gruppe:$user_group</B>\n"; +echo "<TABLE width=700 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2># </td><td><font size=2>USER </td><td align=left><font size=2>NAME </td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> TC TIME</td><td align=right><font size=2>TC LOGIN</td><td align=right><font size=2> VICI LAST LOG</td><td align=right><font size=2> VICI CAMPAIGN</td></tr>\n"; + +$o=0; +$s=0; +while ($users_to_print > $o) + { + if ( ($Tlogin_sec[$o] > 0) or (strlen($Vevent_time[$o]) > 0) ) + { + if ( ($Tstatus[$o]=='START') or ($Tstatus[$o]=='LOGIN') ) + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#FFFF33"';} # yellow + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#99FF33"';} # green + } + else + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#CCCC00"';} # yellow + if (strlen($Vevent_time[$o]) > 0) + {$bgcolor[$o]='bgcolor="#FF6666"';} # red + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#66CC66"';} # green + } + + $s++; + echo "<tr $bgcolor[$o]>"; + echo "<td><font size=1>$s</td>"; + echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; + echo "<td><font size=2>$full_name[$o]</td>"; + echo "<td><font size=2>$Tip_address[$o]</td>"; + echo "<td align=right><font size=2>$Tlogin_time[$o]</td>"; + echo "<td align=right><font size=2>$Tevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vcampaign[$o]</td>"; + echo "</tr>"; + + if (strlen($Tstatus[$o])>0) + {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} + } + $o++; + } + + + +$total_login_hours = ($TOTlogin_sec / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr bgcolor=white>"; +echo "<td colspan=4><font size=2>TOTALS</td>"; +echo "<td align=right><font size=2>$total_login_hours_int:$total_login_minutes_int</td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "</tr>"; +echo "</table>"; + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php +exit; + + + + + + + + + + + +##### vicidial_timeclock log records for user ##### + +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK LOGIN/LOGOUT ZEIT:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours = ($login_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } +$total_login_hours = ($total_login_time / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_group_bulk_change.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_group_bulk_change.php new file mode 100644 index 00000000..dff38a53 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_group_bulk_change.php @@ -0,0 +1,271 @@ +<?php +# user_group_bulk_change.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# 81119-0918 - First build +# 90309-1830 - Added admin_log logging +# 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["old_group"])) {$old_group=$_GET["old_group"];} + elseif (isset($_POST["old_group"])) {$old_group=$_POST["old_group"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Benutzer-Gruppe Bulk ändern +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + + +?> + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Benutzer-Gruppe Bulk ändern</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### GROUP CHANGE FOR ALL USERS IN A USER GROUP ##### +if ($stage == "one_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group='" . mysql_real_escape_string($old_group) . "';"; + $rslt=mysql_query($stmt, $link); + + echo "All Benutzer-Gruppe $old_group Benutzer changed to the $group Benutzer-Gruppe<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK User Group CHANGE', event_sql=\"$SQL_log\", event_notes='Old Gruppe:$old_group';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +##### GROUP CHANGE FOR ALL USERS IN THE SYSTEM EXCEPT FOR LEVEL > 6 AND ADMIN GROUP ##### +if ($stage == "all_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group!='ADMIN' and user_group < 7;"; + $rslt=mysql_query($stmt, $link); + + echo "All non-Admin Benutzer changed to the $group Benutzer-Gruppe<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK User Group CHANGE', event_sql=\"$SQL_log\", event_notes='ALL NON-ADMIN;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +### one user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"one_user_group_change\">\n"; +echo "Change Benutzer in this group: <SELECT SIZE=1 NAME=old_group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR>   to this group: <SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=SUBMIT></CENTER><BR></form>\n"; + +echo "\n<BR><BR><BR>"; + + + +### all user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"all_user_group_change\">\n"; +echo "Change ALL non-Admin Benutzer to this group: <BR><SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=SUBMIT></CENTER><BR></form>\n"; + +echo "\n<BR>"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_stats.php new file mode 100644 index 00000000..1c2bae33 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_stats.php @@ -0,0 +1,677 @@ +<?php +# user_stats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1743 - Added variable filtering to eliminate SQL injection attack threat +# 61201-1136 - Added recordings display and changed calls to time range with 10000 limit +# 70118-1605 - Added user group column to login/out and calls lists +# 70702-1231 - Added recording location link and truncation +# 80117-0316 - Added vicidial_user_closer_log entries to display +# 80501-0506 - Added Hangup Reason to logs display +# 80523-2012 - Added vicidial timeclock records display +# 80617-1402 - Fixed timeclock total logged-in time +# 81210-1634 - Added server recording display options +# 90208-0504 - Added link to multi-day report and fixed call status summary section +# 90305-1226 - Added user_call_log manual dial logs +# 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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"); +$TODAY = date("Y-m-d"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + $stmt="SELECT full_name from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: User-Statistiken +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   User-Statistiken for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=text name=begin_date value=\"$begin_date\" size=10 maxsize=10> to \n"; +echo "<input type=text name=end_date value=\"$end_date\" size=10 maxsize=10>  \n"; +if (strlen($user)>1) + {echo "<input type=hidden name=user value=\"$user\">\n";} +else + {echo "<input type=text name=user size=12 maxlength=10>\n";} +echo "<input type=submit name=submit value=submit>\n"; + + +echo "           $user - $full_name<BR><BR>\n"; + +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " | <a href=\"./user_status.php?user=$user\">User Status</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Ändern Sie Benutzer</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">User multiple day status detail report</a>"; +echo "</center>\n"; + + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +##### vicidial agent talk time and status ##### + +echo "<B>MITTELGESPRÄCH ZEIT UND STATUS:</B>\n"; + +echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>STATUS</td><td align=right><font size=2>ZÄHLIMPULS</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + +$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); +$VLstatuses_to_print = mysql_num_rows($rslt); +$total_calls=0; +$o=0; $p=0; +while ($VLstatuses_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $p++; + $o++; + } + +$stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_closer_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); +$VCLstatuses_to_print = mysql_num_rows($rslt); +$o=0; +while ($VCLstatuses_to_print > $o) + { + $status_match=0; + $r=0; + $row=mysql_fetch_row($rslt); + while ($VLstatuses_to_print > $r) + { + if ($status[$r] == $row[1]) + { + $counts[$r] = ($counts[$r] + $row[0]); + $call_sec[$r] = ($call_sec[$r] + $row[2]); + $status_match++; + } + $r++; + } + if ($status_match < 1) + { + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $VLstatuses_to_print++; + $p++; + } + $o++; + } + +$o=0; +$total_sec=0; +while ($o < $p) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $call_hours_minutes = sec_convert($call_sec[$o],'H'); + + echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; + echo "<td align=right><font size=2> $counts[$o]</td>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $total_calls = ($total_calls + $counts[$o]); + $total_sec = ($total_sec + $call_sec[$o]); + $call_seconds=0; + $o++; + } + +$call_hours_minutes = sec_convert($total_sec,'H'); + +echo "<tr><td><font size=2>GESAMTANRUFE</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; +echo "</TABLE></center>\n"; + + +##### Login and Logout time from vicidial agent interface ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>MITTELLOGIN/LOGOUT ZEIT:</B>\n"; +echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td align=right><font size=2> KAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group 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); + $events_to_print = mysql_num_rows($rslt); + + $total_calls=0; + $o=0; + $event_start_seconds=''; + $event_stop_seconds=''; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if (eregi("LOGIN", $row[0])) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if (ereg("LOGIN", $row[0])) + { + $event_start_seconds = $row[1]; + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + if ($event_start_seconds) + { + + $event_stop_seconds = $row[1]; + $event_seconds = ($event_stop_seconds - $event_start_seconds); + $total_login_time = ($total_login_time + $event_seconds); + $event_hours_minutes = sec_convert($event_seconds,'H'); + + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; + $event_start_seconds=''; + $event_stop_seconds=''; + } + else + { + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + } + + $total_calls = ($total_calls + $row[0]); + + $call_seconds=0; + $o++; + } + +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +echo "<tr><td><font size=2>GESAMTMENGE</td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + +##### vicidial_timeclock log records for user ##### + +$total_login_time=0; +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK LOGIN/LOGOUT ZEIT:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>FALL </td><td align=right><font size=2>DATUM</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours_minutes = sec_convert($login_sec,'H'); + + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes"; + if ($DB) {echo " - $total_login_time - $login_sec";} + echo "</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} + } +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +if ($DB) {echo " - $total_login_time - $login_sec";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + +##### closer in-group selection logs ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> KAMPAGNE</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; + +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_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' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound calls for this time period ##### + +echo "<B>OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> KAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial 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' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent inbound calls for this time period ##### + +echo "<B>INBOUND/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> KAMPAGNE</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[17] </td></tr>\n"; + + } + + +echo "</TABLE></center><BR><BR>\n"; + + +##### vicidial recordings for this time period ##### + +echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "<a href=\"$location\">$locat</a>";} + else + {$location = $locat;} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td align=left><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[12]\" target=\"_blank\">$row[12]</A> </td>"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[8] </td>\n"; + echo "<td align=left><font size=2> $row[0] </td>\n"; + echo "<td align=center><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $location   </td>\n"; + echo "</tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound user manual calls for this time period ##### + +echo "<B>MANUAL OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CALL TYPE</td><td align=left><font size=2> SERVER</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> DIALED</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CALLERID</td><td align=right><font size=2> ALIAS</td></tr>\n"; + + $stmt="select call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id from user_call_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[0]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[2]</td>\n"; + echo "<td align=left><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[4] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[5]\" target=\"_blank\">$row[5]</A> </td>\n"; + echo "<td align=right><font size=2> $row[6] </td>\n"; + echo "<td align=right><font size=2> $row[7] </td></tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_status.php new file mode 100644 index 00000000..825ca5a4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_status.php @@ -0,0 +1,677 @@ +<?php +# user_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1738 - Added variable filtering to eliminate SQL injection attack threat +# 80603-1452 - Added manager timeclock force login/logout of user +# 81118-1034 - Disabled change campaign because it does not work +# 90208-0511 - Added link to user multi-day status report +# 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $agents_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $agents_to_print) + { + $row=mysql_fetch_row($rslt); + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; + $i++; + } + + $stmt="SELECT event_date,status,ip_address from vicidial_timeclock_status where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_date = $row[0]; + $Tstatus = $row[1]; + $Tip_address = $row[2]; + $i++; + } + + } + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: User Status +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   User Status for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### EMERGENCY CAMPAIGN CHANGE FOR AN AGENT ##### +if ($stage == "live_campaign_change") + { + $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); + + echo "Agent $user - $full_name changed to $group campaign<BR>\n"; + + exit; + } + +##### EMERGENCY LOGOUT OF AN AGENT ##### +if ($stage == "log_agent_out") + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; + + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } + + exit; + } + + + + + +##### BEGIN TIMECLOCK LOGOUT OF A USER ##### +if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($modify_timeclock_log > 0) ) + { + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $LOG_run=0; + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + } + + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; + } + + + ##### Run timeclock login queries ##### + if ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage == "tc_log_user_IN") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGIN of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update the user's timeclock status record + $stmtB="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtC="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGIN', record_id='$user', event_code='USER FORCED LOGIN FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Timeclock ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-in the user: $user - $full_name"; + } + + ##### Run timeclock logout queries ##### + if ( ( ($status=='LOGIN') or ($status=='START') ) and ($stage == "tc_log_user_OUT") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGOUT of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update last login record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_log record updated for $user: |$affected_rows| -->\n"; + + ### Update the user's timeclock status record + $stmtC="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtD="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtD\n";} + $rslt=mysql_query($stmtD, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Update last login record in the timeclock audit log + $stmtE="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtE\n";} + $rslt=mysql_query($stmtE, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_audit_log record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|$stmtD|$stmtE|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGOUT', record_id='$user', event_code='USER FORCED LOGOUT FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='User login time: $last_action_sec|Timeclock ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-out the user: $user - $full_name<BR>Amount of time user was logged-in: $totTIME_HMS"; + } + + if ($LOG_run < 1) + {$VDdisplayMESSAGE = "ERROR: timeclock log problem, could not process: $status|$stage";} + + echo "$VDdisplayMESSAGE\n"; + + exit; + } + +##### END TIMECLOCK LOGOUT OF A USER ##### + +if ($agents_to_print > 0) + { + echo "<BR>\n"; + echo "$user - $full_name \n"; + echo "       GROUP: $user_group <BR>\n"; + + echo "<TABLE CELLPADDING=0 CELLSPACING=0>"; + echo "<TR><TD ALIGN=RIGHT>Agent Logged in at server:</TD><TD ALIGN=LEFT>   $Aserver_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>in session:</TD><TD ALIGN=LEFT>   $Asession_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>from phone:</TD><TD ALIGN=LEFT>   $Aextension</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Agent is in campaign:</TD><TD ALIGN=LEFT>   $Acampaign</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} + echo "</TABLE>\n<BR>\n"; + + if ($change_agent_campaign > 0) + { + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; + echo "Current Kampagne: <SELECT SIZE=1 NAME=group>\n"; + $o=0; + while ($groups_to_print > $o) + { + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; + + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"log_agent_out\">\n"; + echo "<input type=submit name=submit value=\"EMERGENCY LOG MITTELOUT\"><BR></form>\n"; + } + } + +else + { + echo "Agent is not logged in\n<BR>"; + } + +echo "\n<BR>"; + +if ( ($Tstatus == "LOGIN") or ($Tstatus == "START") ) + { + echo "User $user($full_name) - is logged in to the timeclock. <BR>Login time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_OUT'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER OUT'; + } +else + { + echo "User $user($full_name) - is NOT logged in to the timeclock. <BR>Last logout time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_IN'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER IN'; + } + +if ($modify_timeclock_log > 0) + { + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"$TC_log_change_stage\">\n"; + echo "<input type=submit name=submit value=\"$TC_log_change_button\"><BR></form>\n"; + echo "<BR><BR>\n"; + } + + +$REPORTdate = date("Y-m-d"); +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " | <a href=\"./user_stats.php?user=$user\">User-Statistiken</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Ändern Sie Benutzer</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">User multiple day status detail report</a>"; +echo "</center>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nIndexlaufzeit: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_territories.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vdremote.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vdremote.php new file mode 100644 index 00000000..59311a64 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vdremote.php @@ -0,0 +1,591 @@ + LICENSE: AGPLv2 +# +# Changes +# 50307-1721 - First version +# 51123-1502 - removed requirement of PHP Globals=on +# 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 +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes +# + +$version = '2.2.0'; +$build = '91129-2249'; + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (!isset($force_logout)) {$force_logout = 0;} + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Sie haben jetzt heraus geloggt. Danke\n"; + 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'; +$STARTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Unzulässiges Username/Kennwort:|$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + $stmt="SELECT count(*) from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $authx=$row[0]; + + if($authx>0) + { + $stmt="SELECT remote_agent_id,server_ip,number_of_lines from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id=$row[0]; + $server_ip=$row[1]; + if (!$number_of_lines) {$number_of_lines=$row[2];} + + fwrite ($fp, "VDremote|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + echo "This remote agent does not exist: |$PHP_AUTH_USER|\n"; + exit; + } + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +if ($ADD==61111) + { + echo"\n"; + } +echo "\n"; +?> + +REMOTEMITTEL: $LOGfullname - $PHP_AUTH_USER "; + +if (!$ADD) {$ADD="31111";} +if ($ADD==31111) {echo "Ändern Sie Remotemittel";} +if ($ADD==41111) {echo "Ändern Sie Remotemittel";} +if ($ADD==61111) {echo "Remote Agent Status";} +if ($ADD==71111) {echo "Remote Agent Closer Stats";} + + +if (strlen($ADD)>4) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "\n"; + $o++; + } + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get inbound groups listing for checkboxes + if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $groups_list .= "2) {$groups_value .= " -";} + } + +?> + + + +
+ + + + +
  REMOTEMITTEL:   Logout  
  ÄNDERN Sie | ">STATUS | ">INBOUND NOTFALL
+"; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Benutzernummer Anfang: $user_start
Zeilenzahl: (nur Zahlen)
Bediener IP: $row[3]
Externe Verlängerung: (number dialed to reach agents [i.e. 913125551212])
Status:
Kampagne: $campaign_id
Inbound Gruppen: \n"; + echo "$groups_list"; + echo "
\n"; + echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; + } + + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + echo ""; + + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + {echo "
REMOTEMITTEL NICHT GEÄNDERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben\n";} + else + { + $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); + +# echo "$stmt\n"; + echo "
REMOTEMITTEL GEÄNDERT\n"; + + ### LOG CHANGES TO LOG FILE ### + $fp = fopen ("./admin_changes_log.txt", "a"); + fwrite ($fp, "$date|MODIFY REMOTEMITTEL ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); + fclose($fp); + } + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Benutzernummer Anfang: $user_start
Zeilenzahl: (nur Zahlen)
Bediener IP: $row[3]
Externe Verlängerung: (number dialed to reach agents [i.e. 913125551212])
Status:
Kampagne: $campaign_id
Inbound Gruppen: \n"; + echo "$groups_list"; + echo "
\n"; + echo "ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen\n"; + } + + + +###################### +# ADD=61111 status of remote agent in the system and active calls and queue +###################### + +if ($ADD==61111) + { + echo "
";
+
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+		{echo "
REMOTEMITTEL-STÖRUNG - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'" . mysql_real_escape_string($nextuser) . "',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' and user IN($users_list) order by extension;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $leadlink=0; + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[4])) + { + $row[3]=''; + $row[5]='- WARTEND -'; + $row[6]=$row[7]; + } + $extension = sprintf("%-10s", $row[0]); + $user = sprintf("%-6s", $row[1]); + $leadid = sprintf("%-12s", $row[2]); + if ($row[2] > 0) + { + $leadidLINK=$row[2]; + $leadlink++; + if ( eregi("QUEUE",$row[4]) ) {$row[6]=$STARTtime;} + $leadid = "$leadid"; + } + $channel = sprintf("%-10s", $row[3]); + $cc=0; + while ( (strlen($channel) > 10) and ($cc < 100) ) + { + $channel = eregi_replace(".$","",$channel); + $cc++; + if (strlen($channel) <= 10) {$cc=101;} + } + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = ($STARTtime - $row[6]); + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$extension$EG | $G$user$EG | $G$leadid$EG | $G$channel$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i Mittel geloggt innen auf Bediener $server_ip\n\n"; + + echo " - 5 Minuten oder mehr beim Anruf\n"; + echo " - Über 10 Minuten beim Anruf\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "*********************************KEINE MITTEL BEI DEN ANRUFEN*********************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
\n\n"; + } + + +###################### +# ADD=71111 stats for remote agents from closer logs(vicidial_closer_log) +###################### + +if ($ADD==71111) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n\n"; + echo "
";
+
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+		{echo "
REMOTEMITTEL-STÖRUNG - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'$nextuser',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + $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 user IN($users_list);"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $in_calls = $row[0]; + $in_time = $row[1]; + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); + + echo "Inbound Notfall des Remotemittels $NOW_TIME\n\n"; + echo "\n"; + echo "Gesamtanrufe genommen$query_date: $in_calls\n"; + echo "Gesamtgespräch Zeit an$query_date: $in_time_MS (minutes:seconds)\n"; + echo "\n"; + echo "\n"; + echo "Anrufliste für$query_date:\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + echo "| USER | LEADID | GROUP | PHONE NUM | STATUS | CALL TIME | MINUTES |\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + + + $stmt="select user,lead_id,campaign_id,phone_number,status,call_date,length_in_sec from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and user IN($users_list) order by call_date;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + $user = sprintf("%-8s", $row[0]); + $leadid = sprintf("%-10s", $row[1]); + $group = sprintf("%-14s", $row[2]); + $phone = sprintf("%-10s", $row[3]); + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = $row[6]; + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + # if ($call_time_M_int >= 5) {$G=''; $EG='';} + # if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$user$EG | $G$leadid$EG | $G$group$EG | $G$phone$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; + +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "*********************************KEIN ERSUCHT UM DIESEN TAG*******************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
\n\n"; + } + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nIndexlaufzeit: $RUNtime seconds
"; + + +?> + + +
+ + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_admin_web_logo.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_admin_web_logo.gif new file mode 100644 index 00000000..8c5a9d22 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_admin_web_logo.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_admin_web_logo_small.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_admin_web_logo_small.gif new file mode 100644 index 00000000..95738d49 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_admin_web_logo_small.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_sales_viewer.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_sales_viewer.php new file mode 100644 index 00000000..5d2af00f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vicidial_sales_viewer.php @@ -0,0 +1,258 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 80310-1500 - first build +# 90310-2135 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +if (isset($_GET["dcampaign"])) {$dcampaign=$_GET["dcampaign"];} + elseif (isset($_POST["dcampaign"])) {$dcampaign=$_POST["dcampaign"];} +if (isset($_GET["submit_report"])) {$submit_report=$_GET["submit_report"];} + elseif (isset($_POST["submit_report"])) {$submit_report=$_POST["submit_report"];} +if (isset($_GET["list_ids"])) {$list_ids=$_GET["list_ids"];} + elseif (isset($_POST["list_ids"])) {$list_ids=$_POST["list_ids"];} +if (isset($_GET["sales_number"])) {$sales_number=$_GET["sales_number"];} + elseif (isset($_POST["sales_number"])) {$sales_number=$_POST["sales_number"];} +if (isset($_GET["sales_time_frame"])) {$sales_time_frame=$_GET["sales_time_frame"];} + elseif (isset($_POST["sales_time_frame"])) {$sales_time_frame=$_POST["sales_time_frame"];} +if (isset($_GET["forc"])) {$forc=$_GET["forc"];} + elseif (isset($_POST["forc"])) {$forc=$_POST["forc"];} + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + +$PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); +$PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +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 "Unzulässiges Username/Password or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +?> + + +Recent Sales Lookup + + + + + +
"; +?> + +
+ + + + + + + + + + + + + + + + + + + + + +
Vicidial OUTBOUND recent sales report               Back to Admin +
+ + + + + + + + + + +
Select a campaign:
Select list ID(s) # (optional):
+
View sales made within the last OR...View the last sales**
(If you enter values in both fields, the results will be limited by the first criteria met)
Kampagne is:    Transfer  Non-transfer
** - sorted by call date
+
+0)) { $list_id_clause.="$lists[$i], "; } + } + $list_id_clause=substr($list_id_clause, 0, -2); + $list_id_clause.=")"; + + if ($sales_number && $sales_number>0) { + $sales_number=eregi_replace("[^0-9]", "", $sales_number); + $limit_clause="limit $sales_number"; + } else { + $sales_number=0; + $limit_clause=""; + } + if ($sales_time_frame && $sales_time_frame>0) { + $hours=$sales_time_frame/60; + $timestamp=date("YmdHis", mktime(date("H"),(date("i")-$sales_time_frame),date("s"),date("m"),date("d"),date("Y"))); + } else { + $timestamp=date("YmdHis", mktime(date("H"),date("i"),date("s"),date("m"),(date("d")-1),date("Y"))); + $hours=24; + } + print "
"; + print ""; + $i=0; + + $dfile=fopen("discover_stmts.txt", "w"); + if ($forc=="C") { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, u.full_name from vicidial_users u, vicidial_list v, vicidial_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause and vl.user=u.user order by call_date desc $limit_clause"; + } else { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, vl.user, vl.closer from vicidial_list v, vicidial_xfer_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause order by call_date desc $limit_clause"; + } + fwrite($dfile, "$stmt\n"); + $rslt=mysql_query($stmt, $link); + $q=0; + print "\n"; + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + while ($row=mysql_fetch_row($rslt)) { + $rec_stmt="select max(recording_id) from recording_log where lead_id='$row[4]'"; + $rec_rslt=mysql_query($rec_stmt, $link); + $rec_row=mysql_fetch_row($rec_rslt); + + if ($forc=="F") { + $rep_stmt="select full_name from vicidial_users where user='$row[5]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $fr_row=mysql_fetch_array($rep_rslt); + + $rep_stmt="select full_name from vicidial_users where user='$row[6]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $cl_row=mysql_fetch_array($rep_rslt); + + $rep_name="$fr_row[full_name]/$cl_row[full_name]"; + } else { + $rep_name=$row[5]; + } + + if ($i%2==0) {$bgcolor="#999999";} else {$bgcolor="#CCCCCC";} + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + flush(); + } + print "
Last ".mysql_num_rows($rslt)." sales made
Sales Rep(s)Customer NamePhoneRecording IDTimestamp
$rep_name$row[0] $row[1]$row[2]$rec_row[0]$row[3]
"; + passthru("$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign"); +# print "\n\n
$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign
\n"; + flush(); + print ""; + if ($forc=="F") { + print ""; + } + print ""; + print "
View complete Excel fronter report for this shiftView complete Excel sales report for this shift
"; +} +?> + +
+ + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vtiger_search.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vtiger_search.php new file mode 100644 index 00000000..6636a431 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vtiger_search.php @@ -0,0 +1,885 @@ + LICENSE: AGPLv2 +# +# This page does a search against a standard vtiger CRM system. If the record +# is not present, it will create a new one and send the agent's screen to that new page. +# +# This code is tested against vtiger 5.0.4 and 5.1.0 +# +# CHANGES +# 60719-1615 - First version +# 60801-2304 - Added mysql debug and auto-forward +# 60802-1111 - Added insertion of not-found record into vtiger system +# 71220-0000 - Modified by I. Taushanov for VTiger 5.03- search/create lead +# 80120-1934 - Added changes for compatibility with vtiger 5.0.3 +# 81229-1017 - Added usage of system_settings connection settings for vtiger database +# 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD +# 90111-1451 - Added logging of call as activity for account/lead +# 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$HHMMnow = date("H:i"); +$minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); +$HHMMend = date("H:i",$minute_old); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger Lookup\n"; +echo "\n"; + + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$vtc_conf_ct = mysql_num_rows($rslt); +if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + } +if (strlen($vtiger_search_category)<1) + {$vtiger_search_category = 'LEAD';} + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo 'Connected successfully'; +mysql_select_db("$vtiger_dbname", $linkV); + +# Methods of searching for records: +# +# ACCTID: +# $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; +# +# ACCOUNT: +# $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; +# +# VENDOR: +# $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; +# +# LEAD: +# $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; + +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} + + + +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + + + +########################################################################## +##### BEGIN - ACCTID - Search in the account records for accountid number +########################################################################## +if ($acctid_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCTID|$vendor_id|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - ACCTID - Search in the account records for accountid number +########################################################################## + + +########################################################################## +##### BEGIN - ACCOUNT - Search in the account records for phone number +########################################################################## +if ($account_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_account\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_contactdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_contactsubdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_contact + $stmt="SELECT contactsubscriptionid from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $contactid = $row[0]; + + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where contactid='$contactid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + if (strlen($accountid) > 0) + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - ACCOUNT - Search in the account records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - VENDOR - Search in the vendor records for phone number +########################################################################## +if ($vendor_search > 0) + { + $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nVENDOR|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_vendor + $stmt="SELECT vendorid from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $vendorid = $row[0]; + + # http://mysite.com/vtigercrm/index.php?module=Vendors&action=DetailView&record=2&parenttab=Inventory + $account_URL = "$vtiger_url/index.php?module=Vendors&action=DetailView&record=$vendorid&parenttab=Inventory"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+		echo "account found! VENDOR\n";
+		echo "vendorid:   $vendorid\n";
+		echo "phone:       $phone\n";
+		echo "

"; + exit; + } + } +########################################################################## +##### END - VENDOR - Search in the vendor records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - LEAD - Search in the leads records for phone number +########################################################################## +if ($lead_search > 0) + { + $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nLEAD|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + if (ereg('Y',$vtiger_create_lead_record)) + { + echo "\n"; + echo "\n"; + echo "
\n"; + echo "$phone not found, creating account...\n"; + + $DB=1; + + #Get logged in user ID + if ($DB) {echo "
";}
+			$stmt="SELECT id from vtiger_users where user_name='$user';";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			$row=mysql_fetch_row($rslt);
+			$user_id = $row[0];
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Vtiger no longer use auto increment for vtiger_crmentity crmid, vtiger_crmentity_seq is used instead to list next aviable entity ID
+			# Get next aviable id to use as  crmid in vtiger_crmentity	
+			$stmt="SELECT id from vtiger_crmentity_seq ;";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			$row=mysql_fetch_row($rslt);
+			$leadid = ($row[0] + 1);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			# Increase 	next aviable crmid with 1 so next record gets proper id
+			$stmt="UPDATE vtiger_crmentity_seq SET id = '$leadid';";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Insert values into vtiger_crmentity
+			$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$leadid', '$user_id', '$user_id','$user_id', 'Leads', '(Memo)', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if ($DB) {echo "|$leadid|\n";}
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leaddetails	
+			$stmt = "INSERT INTO vtiger_leaddetails (leadid,firstname,lastname,company) values('$leadid','$first_name','$last_name','$first_name $last_name');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leaddetails
+			$stmt = "INSERT INTO vtiger_leadaddress (leadaddressid,city,code,state,country,phone,mobile,lane) values('$leadid','$city','$postal_code','$province','$country','$phone','$alt_phone','$address1 $address2');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leadsubdetails	
+			$stmt = "INSERT INTO vtiger_leadsubdetails (leadsubscriptionid) VALUES ('$leadid');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Insert values into vtiger_leadscf, these are custom created fields example	
+			$stmt = "INSERT INTO vtiger_leadscf (leadid) VALUES ('$leadid');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			if ($DB) {echo "DONE creating lead records\n";}
+
+			if (ereg('Y',$vtiger_create_call_record))
+				{
+				### Log the call in Vtiger
+
+				#Get logged in user ID
+				$stmt="SELECT id from vtiger_users where user_name='$user';";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				$row=mysql_fetch_row($rslt);
+				$user_id = $row[0];
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				# Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity	
+				$stmt="SELECT id from vtiger_crmentity_seq ;";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				$row=mysql_fetch_row($rslt);
+				$activityid = ($row[0] + 1);
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+				# Increase next aviable crmid with 1 so next record gets proper id
+				$stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_salesmanactivityrel
+				$stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_seactivityrel
+				$stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_crmentity
+				$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+				#Insert values into vtiger_activity
+				$stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+
+				# http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales
+				$account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales";
+				}
+			else
+				{
+				# http://mysite.com/vtigercrm/index.php?module=Accounts&action=EditView&record=2&parenttab=Sales
+				$account_URL = "$vtiger_url/index.php?module=Leads&action=EditView&record=$leadid&parenttab=Sales";
+				}
+
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "
\n"; + + echo "
";
+			echo "account created! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + else + { + $stmt="SELECT leadaddressid from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $leadid = $row[0]; + + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - LEAD - Search in the leads records for phone number +########################################################################## + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n
$phone NOT FOUND

\n\n"; +echo "Click here to go to the Vtiger home page\n"; + +# echo "\n\n\n


\nscript runtime: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vtiger_user.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vtiger_user.php new file mode 100644 index 00000000..f53a989a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/vtiger_user.php @@ -0,0 +1,317 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81231-1307 - First build +# 90228-2152 - Added Groups support +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger user synchronization utility\n"; +echo "\n"; + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +##### grab the existing user_groups in the vicidial_user_groups table +$stmt="SELECT user_group,group_name FROM vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_groups_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $UGid[$i] = $row[0]; + $UGname[$i] = $row[1]; + $i++; + } + +##### grab the existing users in the vicidial_users table +$stmt="SELECT user,pass,full_name,user_level,active,user_group FROM vicidial_users;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_users_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_users_ct) + { + $row=mysql_fetch_row($rslt); + $user[$i] = $row[0]; + $pass[$i] = $row[1]; + $full_name[$i] = $row[2]; while (strlen($full_name[$i])>30) {$full_name[$i] = eregi_replace(".$",'',$full_name[$i]);} + $user_level[$i] = $row[3]; + $active[$i] = $row[4]; + $user_group[$i] = $row[5]; + $i++; + } + + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo "Connected successfully\n
\n"; +mysql_select_db("$vtiger_dbname", $linkV); + + +########################## +### BEGIN Group export +$i=0; +while ($i < $VD_groups_ct) + { + $VTgroup_name = $UGid[$i]; + $VTgroup_description = $UGname[$i]; + + $stmt="SELECT count(*) from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, grab groupid, update description + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + $VTugID[$i] = $groupid; + + $stmtA = "UPDATE vtiger_groups SET description='$VTgroup_description' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
\n"; + echo "
\n"; + } + + ### group doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $VTugID[$i] = $groupid; + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$VTgroup_name',description='$VTgroup_description';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
\n"; + echo "
\n"; + #### END CREATE NEW GROUP RECORD IN VTIGER + } + $i++; + } +### END Group export +########################## + + + +########################## +### BEGIN User export +$i=0; +while ($i < $VD_users_ct) + { + $user_name = $user[$i]; + $VUgroup = $user_group[$i]; + $user_password = $pass[$i]; + $last_name = $full_name[$i]; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level[$i] >= 7) {$roleid = 'H4';} + if ($user_level[$i] >= 8) {$roleid = 'H3';} + if ($user_level[$i] >= 9) {$roleid = 'H2';} + if ($user_level[$i] >= 9) {$is_admin = 'on';} + if (ereg('N',$active[$i])) {$status = 'Inactive';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + $i++; + + $j=0; + $all_VICIDIAL_groups_SQL=''; + while ($j < $VD_groups_ct) + { + if ( (eregi("$UGid[$j]",$VUgroup)) and ( (strlen($UGid[$j]))==(strlen($VUgroup)) ) ) + { + $groupid = $VTugID[$j]; + $VTgroup_name = $UGid[$j]; + $VTgroup_description = $UGname[$j]; + } + else + {$all_VICIDIAL_groups_SQL .= "'$VTugID[$j]',";} + $j++; + } + $all_VICIDIAL_groups_SQL = preg_replace("/.$/",'',$all_VICIDIAL_groups_SQL); + + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN($all_VICIDIAL_groups_SQL);"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + else + {$stmtC='';} + + echo "$user_name: $userid
\n"; + echo "$stmtA
\n"; + echo "$stmtB
\n"; + echo "$stmtC
\n"; + echo "$stmtD
\n"; + echo "
\n"; + + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "$user_name:
\n"; + echo "$stmtA
\n"; + echo "$stmtB
\n"; + echo "$stmtC
\n"; + echo "$stmtD
\n"; + echo "
\n"; + #### END CREATE NEW USER RECORD IN VTIGER + } + + + } +### END User export +########################## + + + + + +echo "DONE\n"; + +exit; + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome.php new file mode 100644 index 00000000..3f452ac4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome.php @@ -0,0 +1,26 @@ + LICENSE: AGPLv2 +# + +echo "ViciDial Willkommen\n"; +echo "\n"; +echo "\n"; +echo "




"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Willkommen
 
Agent Login
 
Timeclock
 
Administration
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome_demo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome_demo.php new file mode 100644 index 00000000..238cf5cf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome_demo.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



"; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
 
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Agent Login"; +echo "
"; +echo "   Spanish Agent Login"; +echo "
"; +echo "   German Agent Login"; +echo "
"; +echo "   Italian Agent Login"; +echo "
"; +echo "   Greek Agent Login"; +echo "
"; +echo "   French Agent Login"; +echo "
"; +echo "   Brazillian Portuguese Agent Login"; +echo "
"; +echo "   Portuguese Agent Login"; +echo "
"; +echo "   Polish Agent Login"; +echo "
"; +echo "   Slovak Agent Login"; +echo "
"; +echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; +echo "
\n"; + +echo "
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Administration"; +echo "
"; +echo "   Spanish Administration"; +echo "
"; +echo "   German Administration"; +echo "
"; +echo "   Italian Administration"; +echo "
"; +echo "   Greek Administration"; +echo "
"; +echo "   French Administration"; +echo "
\n"; +echo "
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome_languages.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome_languages.php new file mode 100644 index 00000000..d53707a9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_de/welcome_languages.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



"; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
 
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Agent Login"; +echo "
"; +echo "   Spanish Agent Login"; +echo "
"; +echo "   German Agent Login"; +echo "
"; +echo "   Italian Agent Login"; +echo "
"; +echo "   Greek Agent Login"; +echo "
"; +echo "   French Agent Login"; +echo "
"; +echo "   Brazillian Portuguese Agent Login"; +echo "
"; +echo "   Portuguese Agent Login"; +echo "
"; +echo "   Polish Agent Login"; +echo "
"; +echo "   Slovak Agent Login"; +echo "
"; +echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; +echo "
\n"; + +echo "
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Administration"; +echo "
"; +echo "   Spanish Administration"; +echo "
"; +echo "   German Administration"; +echo "
"; +echo "   Italian Administration"; +echo "
"; +echo "   Greek Administration"; +echo "
"; +echo "   French Administration"; +echo "
\n"; +echo "
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSER_service_level.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSER_service_level.php new file mode 100644 index 00000000..3a0ca089 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSER_service_level.php @@ -0,0 +1,959 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80509-0943 - First build +# 80510-1500 - Added fixed scale hold time graph +# 80519-0413 - rewrote time intervals code and stats gathering code +# 80528-2320 - fixed small calculation bugs and display bugs, added more shifts +# 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Service Level Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo " to \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           ΤΡΟΠΟΠΟΙΗΣΗ | ΑΝΑΦΟΡΕΣ \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "Επιλέξτε μια Ενδοομιλικών ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ άνω ΚΛΙΚ ΚΑΙ ΑΠΟΣΤΟΛΗ\n";
+	}
+
+else
+{
+### FOR SHIFTS IT IS BEST TO STICK TO 15-MINUTE INCREMENTS FOR START TIMES ###
+
+if ($shift == 'AM') 
+	{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}   
+	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+	}
+if ($shift == 'PM') 
+	{
+#	$time_BEGIN=$PM_shift_BEGIN;
+#	$time_END=$PM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+#	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'DAYTIME') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '10AM-6PM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "10:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:59:59";}
+	}
+if ($shift == '9AM-1AM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "09:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '845-1745') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:44:59";}
+	}
+if ($shift == '1745-100') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "17:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+$SQdate_ARY =	explode(' ',$query_date_BEGIN);
+$SQday_ARY =	explode('-',$SQdate_ARY[0]);
+$SQtime_ARY =	explode(':',$SQdate_ARY[1]);
+$EQdate_ARY =	explode(' ',$query_date_END);
+$EQday_ARY =	explode('-',$EQdate_ARY[0]);
+$EQtime_ARY =	explode(':',$EQdate_ARY[1]);
+
+$SQepochDAY = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$SQepoch = mktime($SQtime_ARY[0], $SQtime_ARY[1], $SQtime_ARY[2], $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime($EQtime_ARY[0], $EQtime_ARY[1], $EQtime_ARY[2], $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+$SQsec = ( ($SQtime_ARY[0] * 3600) + ($SQtime_ARY[1] * 60) + ($SQtime_ARY[2] * 1) );
+$EQsec = ( ($EQtime_ARY[0] * 3600) + ($EQtime_ARY[1] * 60) + ($EQtime_ARY[2] * 1) );
+
+$DURATIONsec = ($EQepoch - $SQepoch);
+$DURATIONday = intval( ($DURATIONsec / 86400) + 1 );
+
+if ( ($EQsec < $SQsec) and ($DURATIONday < 1) )
+	{
+	$EQepoch = ($SQepochDAY + ($EQsec + 86400) );
+	$query_date_END = date("Y-m-d H:i:s", $EQepoch);
+	$DURATIONday++;
+	}
+
+echo "Inbound Service Level Report                      $NOW_TIME\n";
+echo "\n";
+echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
+#echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	$dSQepoch = ($SQepoch + ($d * 86400) );
+	$dEQepoch = ($SQepochDAY + ($EQsec + ($d * 86400) ) );
+
+	if ($EQsec < $SQsec)
+		{
+		$dEQepoch = ($dEQepoch + 86400);
+		}
+
+	$daySTART[$d] = date("Y-m-d H:i:s", $dSQepoch);
+	$dayEND[$d] = date("Y-m-d H:i:s", $dEQepoch);
+
+	$d++;
+	}
+
+##########################################################################
+#########  CALCULATE ALL OF THE 15-MINUTE PERIODS NEEDED FOR ALL DAYS ####
+
+### BUILD HOUR:MIN DISPLAY ARRAY ###
+$i=0;
+$h=4;
+$j=0;
+$Zhour=1;
+$active_time=0;
+$hour =		($SQtime_ARY[0] - 1);
+$startSEC = ($SQsec - 900);
+$endSEC =	($SQsec - 1);
+if ($SQtime_ARY[1] > 14) 
+	{
+	$h=1;
+	$hour++;
+	if ($hour < 10) {$hour = "0$hour";}
+	}
+if ($SQtime_ARY[1] > 29) {$h=2;}
+if ($SQtime_ARY[1] > 44) {$h=3;}
+while ($i < 96)
+	{
+	$startSEC = ($startSEC + 900);
+	$endSEC = ($endSEC + 900);
+	$time = '      ';
+	if ($h >= 4)
+		{
+		$hour++;
+		if ($Zhour == '00') 
+			{
+			$startSEC=0;
+			$endSEC=899;
+			}
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$Stime="$hour:00";
+		$Etime="$hour:15";
+		$time = "+$Stime-$Etime+";
+		}
+	if ($h == 1)
+		{
+		$Stime="$hour:15";
+		$Etime="$hour:30";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 2)
+		{
+		$Stime="$hour:30";
+		$Etime="$hour:45";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 3)
+		{
+		$Zhour=$hour;
+		$Zhour++;
+		if ($Zhour < 10) {$Zhour = "0$Zhour";}
+		if ($Zhour == 24) {$Zhour = "00";}
+		$Stime="$hour:45";
+		$Etime="$Zhour:00";
+		$time = " $Stime-$Etime ";
+		if ($Zhour == '00') 
+			{$hour = ($Zhour - 1);}
+		}
+
+	if ( ( ($startSEC >= $SQsec) and ($endSEC <= $EQsec) and ($EQsec > $SQsec) ) or 
+		( ($startSEC >= $SQsec) and ($EQsec < $SQsec) ) or 
+		( ($endSEC <= $EQsec) and ($EQsec < $SQsec) ) )
+		{
+		$HMdisplay[$j] =	$time;
+		$HMstart[$j] =		$Stime;
+		$HMend[$j] =		$Etime;
+		$HMSepoch[$j] =		$startSEC;
+		$HMEepoch[$j] =		$endSEC;
+
+		$j++;
+		}
+
+	$h++;
+	$i++;
+	}
+
+$TOTintervals = $j;
+
+
+### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
+$stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$records_to_grab = mysql_num_rows($rslt);
+$i=0;
+while ($i < $records_to_grab)
+	{
+	$row=mysql_fetch_row($rslt);
+	$qs[$i] = $row[0];
+	$dt[$i] = 0;
+	$ut[$i] = ($row[1] - $SQepochDAY);
+	while($ut[$i] >= 86400) 
+		{
+		$ut[$i] = ($ut[$i] - 86400);
+		$dt[$i]++;
+		}
+	if ( ($ut[$i] <= $EQsec) and ($EQsec < $SQsec) )
+		{
+		$dt[$i] = ($dt[$i] - 1);
+		}
+	$ls[$i] = $row[2];
+	$st[$i] = $row[3];
+
+#	echo "$qs[$i] $dt[$i] $ut[$i] $ls[$i] $st[$i]\n";
+
+	$i++;
+	}
+
+### PARSE THROUGH ALL RECORDS AND GENERATE STATS ###
+$MT[0]='0';
+$totCALLS=0;
+$totDROPS=0;
+$totQUEUE=0;
+$totCALLSsec=0;
+$totDROPSsec=0;
+$totQUEUEsec=0;
+$totCALLSmax=0;
+$totDROPSmax=0;
+$totQUEUEmax=0;
+$totCALLSdate=$MT;
+$totDROPSdate=$MT;
+$totQUEUEdate=$MT;
+$qrtCALLS=$MT;
+$qrtDROPS=$MT;
+$qrtQUEUE=$MT;
+$qrtCALLSsec=$MT;
+$qrtDROPSsec=$MT;
+$qrtQUEUEsec=$MT;
+$qrtCALLSavg=$MT;
+$qrtDROPSavg=$MT;
+$qrtQUEUEavg=$MT;
+$qrtCALLSmax=$MT;
+$qrtDROPSmax=$MT;
+$qrtQUEUEmax=$MT;
+$j=0;
+while ($j < $TOTintervals)
+	{
+	$jd__0[$j]=0; $jd_20[$j]=0; $jd_40[$j]=0; $jd_60[$j]=0; $jd_80[$j]=0; $jd100[$j]=0; $jd120[$j]=0; $jd121[$j]=0;
+	$Phd__0[$j]=0; $Phd_20[$j]=0; $Phd_40[$j]=0; $Phd_60[$j]=0; $Phd_80[$j]=0; $Phd100[$j]=0; $Phd120[$j]=0; $Phd121[$j]=0;
+	$qrtCALLS[$j]=0; $qrtCALLSsec[$j]=0; $qrtCALLSmax[$j]=0;
+	$qrtDROPS[$j]=0; $qrtDROPSsec[$j]=0; $qrtDROPSmax[$j]=0;
+	$qrtQUEUE[$j]=0; $qrtQUEUEsec[$j]=0; $qrtQUEUEmax[$j]=0;
+	$i=0;
+	while ($i < $records_to_grab)
+		{
+		if ( ($ut[$i] >= $HMSepoch[$j]) and ($ut[$i] <= $HMEepoch[$j]) )
+			{
+			$totCALLS++;
+			$totCALLSsec = ($totCALLSsec + $ls[$i]);
+			$totCALLSsecDATE[$dtt] = ($totCALLSsecDATE[$dtt] + $ls[$i]);
+			$qrtCALLS[$j]++;
+			$qrtCALLSsec[$j] = ($qrtCALLSsec[$j] + $ls[$i]);
+			$dtt = $dt[$i];
+			$totCALLSdate[$dtt]++;
+			if ($totCALLSmax < $ls[$i]) {$totCALLSmax = $ls[$i];}
+			if ($qrtCALLSmax[$j] < $ls[$i]) {$qrtCALLSmax[$j] = $ls[$i];}
+			if (ereg('DROP',$st[$i])) 
+				{
+				$totDROPS++;
+				$totDROPSsec = ($totDROPSsec + $ls[$i]);
+				$totDROPSsecDATE[$dtt] = ($totDROPSsecDATE[$dtt] + $ls[$i]);
+				$qrtDROPS[$j]++;
+				$qrtDROPSsec[$j] = ($qrtDROPSsec[$j] + $ls[$i]);
+				$totDROPSdate[$dtt]++;
+				if ($totDROPSmax < $ls[$i]) {$totDROPSmax = $ls[$i];}
+				if ($qrtDROPSmax[$j] < $ls[$i]) {$qrtDROPSmax[$j] = $ls[$i];}
+				}
+			if ($qs[$i] > 0) 
+				{
+				$totQUEUE++;
+				$totQUEUEsec = ($totQUEUEsec + $qs[$i]);
+				$totQUEUEsecDATE[$dtt] = ($totQUEUEsecDATE[$dtt] + $qs[$i]);
+				$qrtQUEUE[$j]++;
+				$qrtQUEUEsec[$j] = ($qrtQUEUEsec[$j] + $qs[$i]);
+				$totQUEUEdate[$dtt]++;
+				if ($totQUEUEmax < $qs[$i]) {$totQUEUEmax = $qs[$i];}
+				if ($qrtQUEUEmax[$j] < $qs[$i]) {$qrtQUEUEmax[$j] = $qs[$i];}
+				}
+
+			if ($qs[$i] == 0) {$hd__0[$j]++;}
+			if ( ($qs[$i] > 0) and ($qs[$i] <= 20) ) {$hd_20[$j]++;}
+			if ( ($qs[$i] > 20) and ($qs[$i] <= 40) ) {$hd_40[$j]++;}
+			if ( ($qs[$i] > 40) and ($qs[$i] <= 60) ) {$hd_60[$j]++;}
+			if ( ($qs[$i] > 60) and ($qs[$i] <= 80) ) {$hd_80[$j]++;}
+			if ( ($qs[$i] > 80) and ($qs[$i] <= 100) ) {$hd100[$j]++;}
+			if ( ($qs[$i] > 100) and ($qs[$i] <= 120) ) {$hd120[$j]++;}
+			if ($qs[$i] > 120) {$hd121[$j]++;}
+
+			}
+		
+		$i++;
+		}
+
+	$j++;
+	}
+
+
+
+
+###################################################
+### TOTALS SUMMARY SECTION ###
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                           |        |        |        |        |        |  AVG   |  AVG   |        |  TOTAL   |  AVG   |\n";
+echo "| SHIFT                                     |        |        |  AVG   |        |        | HOLD(s)| HOLD(s)|        | CALLTIME |CALLTIME|\n";
+echo "| DATE-TIME RANGE                           | DROPS  | DROP % | DROP(s)| HOLD   | HOLD % |  HOLD  | TOTAL  | CALLS  | MIN:SEC  |SECONDS |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	if ($totDROPSdate[$d] < 1) {$totDROPSdate[$d]=0;}
+	if ($totQUEUEdate[$d] < 1) {$totQUEUEdate[$d]=0;}
+	if ($totCALLSdate[$d] < 1) {$totCALLSdate[$d]=0;}
+
+	if ($totDROPSdate[$d] > 0)
+		{$totDROPSpctDATE[$d] = ( ($totDROPSdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totDROPSpctDATE[$d] = 0;}
+	$totDROPSpctDATE[$d] = round($totDROPSpctDATE[$d], 2);
+	if ($totQUEUEdate[$d] > 0)
+		{$totQUEUEpctDATE[$d] = ( ($totQUEUEdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totQUEUEpctDATE[$d] = 0;}
+	$totQUEUEpctDATE[$d] = round($totQUEUEpctDATE[$d], 2);
+
+	if ($totDROPSsecDATE[$d] > 0)
+		{$totDROPSavgDATE[$d] = ($totDROPSsecDATE[$d] / $totDROPSdate[$d]);}
+	else {$totDROPSavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEavgDATE[$d] = ($totQUEUEsecDATE[$d] / $totQUEUEdate[$d]);}
+	else {$totQUEUEavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEtotDATE[$d] = ($totQUEUEsecDATE[$d] / $totCALLSdate[$d]);}
+	else {$totQUEUEtotDATE[$d] = 0;}
+
+	if ($totCALLSsecDATE[$d] > 0)
+		{
+		$totCALLSavgDATE[$d] = ($totCALLSsecDATE[$d] / $totCALLSdate[$d]);
+
+		$totTIME_M = ($totCALLSsecDATE[$d] / 60);
+		$totTIME_M_int = round($totTIME_M, 2);
+		$totTIME_M_int = intval("$totTIME_M");
+		$totTIME_S = ($totTIME_M - $totTIME_M_int);
+		$totTIME_S = ($totTIME_S * 60);
+		$totTIME_S = round($totTIME_S, 0);
+		if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+		$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+		$totTIME_MS =		sprintf("%8s", $totTIME_MS);
+		}
+	else 
+		{
+		$totCALLSavgDATE[$d] = 0;
+		$totTIME_MS='        ';
+		}
+
+	$totCALLSavgDATE[$d] =	sprintf("%6.0f", $totCALLSavgDATE[$d]);
+	$totDROPSavgDATE[$d] =	sprintf("%7.2f", $totDROPSavgDATE[$d]);
+	$totQUEUEavgDATE[$d] =	sprintf("%7.2f", $totQUEUEavgDATE[$d]);
+	$totQUEUEtotDATE[$d] =	sprintf("%7.2f", $totQUEUEtotDATE[$d]);
+	$totDROPSpctDATE[$d] =	sprintf("%6.2f", $totDROPSpctDATE[$d]);
+	$totQUEUEpctDATE[$d] =	sprintf("%6.2f", $totQUEUEpctDATE[$d]);
+	$totDROPSdate[$d] =	sprintf("%6s", $totDROPSdate[$d]);
+	$totQUEUEdate[$d] =	sprintf("%6s", $totQUEUEdate[$d]);
+	$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
+
+	echo "| $daySTART[$d] - $dayEND[$d] | $totDROPSdate[$d] | $totDROPSpctDATE[$d]%|$totDROPSavgDATE[$d] | $totQUEUEdate[$d] | $totQUEUEpctDATE[$d]%|$totQUEUEavgDATE[$d] |$totQUEUEtotDATE[$d] | $totCALLSdate[$d] | $totTIME_MS | $totCALLSavgDATE[$d] |\n";
+	$d++;
+	}
+
+	if ($totDROPS > 0)
+		{$totDROPSpct = ( ($totDROPS / $totCALLS) * 100);}
+	else {$totDROPSpct = 0;}
+	$totDROPSpct = round($totDROPSpct, 2);
+	if ($totQUEUE > 0)
+		{$totQUEUEpct = ( ($totQUEUE / $totCALLS) * 100);}
+	else {$totQUEUEpct = 0;}
+	$totQUEUEpct = round($totQUEUEpct, 2);
+
+	if ($totDROPSsec > 0)
+		{$totDROPSavg = ($totDROPSsec / $totDROPS);}
+	else {$totDROPSavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEavg = ($totQUEUEsec / $totQUEUE);}
+	else {$totQUEUEavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEtot = ($totQUEUEsec / $totCALLS);}
+	else {$totQUEUEtot = 0;}
+
+if ($totCALLSsec > 0)
+	{
+	$totCALLSavg = ($totCALLSsec / $totCALLS);
+
+	$totTIME_M = ($totCALLSsec / 60);
+	$totTIME_M_int = round($totTIME_M, 2);
+	$totTIME_M_int = intval("$totTIME_M");
+	$totTIME_S = ($totTIME_M - $totTIME_M_int);
+	$totTIME_S = ($totTIME_S * 60);
+	$totTIME_S = round($totTIME_S, 0);
+	if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+	$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+	$totTIME_MS =		sprintf("%9s", $totTIME_MS);
+	}
+else 
+	{
+	$totCALLSavg = 0;
+	$totTIME_MS='         ';
+	}
+
+
+	$FtotCALLSavg =	sprintf("%6.0f", $totCALLSavg);
+	$FtotDROPSavg =	sprintf("%7.2f", $totDROPSavg);
+	$FtotQUEUEavg =	sprintf("%7.2f", $totQUEUEavg);
+	$FtotQUEUEtot =	sprintf("%7.2f", $totQUEUEtot);
+	$FtotDROPSpct =	sprintf("%6.2f", $totDROPSpct);
+	$FtotQUEUEpct =	sprintf("%6.2f", $totQUEUEpct);
+	$FtotDROPS =	sprintf("%6s", $totDROPS);
+	$FtotQUEUE =	sprintf("%6s", $totQUEUE);
+	$FtotCALLS =	sprintf("%6s", $totCALLS);
+
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                    TOTALS | $FtotDROPS | $FtotDROPSpct%|$FtotDROPSavg | $FtotQUEUE | $FtotQUEUEpct%|$FtotQUEUEavg |$FtotQUEUEtot | $FtotCALLS |$totTIME_MS | $FtotCALLSavg |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+
+	## FORMAT OUTPUT ##
+	$i=0;
+	$hi_hour_count=0;
+	$hi_hold_count=0;
+
+	while ($i < $TOTintervals)
+		{
+
+		if ($qrtCALLS[$i] > 0)
+			{$qrtCALLSavg[$i] = ($qrtCALLSsec[$i] / $qrtCALLS[$i]);}
+		else {$qrtCALLSavg[$i] = 0;}
+		if ($qrtDROPS[$i] > 0)
+			{$qrtDROPSavg[$i] = ($qrtDROPSsec[$i] / $qrtDROPS[$i]);}
+		else {$qrtDROPSavg[$i] = 0;}
+		if ($qrtQUEUE[$i] > 0)
+			{$qrtQUEUEavg[$i] = ($qrtQUEUEsec[$i] / $qrtQUEUE[$i]);}
+		else {$qrtQUEUEavg[$i] = 0;}
+
+		if ($qrtCALLS[$i] > $hi_hour_count) {$hi_hour_count = $qrtCALLS[$i];}
+		if ($qrtQUEUEavg[$i] > $hi_hold_count) {$hi_hold_count = $qrtQUEUEavg[$i];}
+
+		$qrtQUEUEavg[$i] = round($qrtQUEUEavg[$i], 0);
+		if (strlen($qrtQUEUEavg[$i])<1) {$qrtQUEUEavg[$i]=0;}
+		$qrtQUEUEmax[$i] = round($qrtQUEUEmax[$i], 0);
+		if (strlen($qrtQUEUEmax[$i])<1) {$qrtQUEUEmax[$i]=0;}
+
+		$i++;
+		}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{$hour_multiplier = (20 / $hi_hour_count);}
+if ($hi_hold_count < 1)
+	{$hold_multiplier = 0;}
+else
+	{$hold_multiplier = (20 / $hi_hold_count);}
+
+
+
+
+###################################################################
+#########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
+
+echo "\n";
+echo "---------- HOLD TIME, CALL AND DROP STATS\n";
+
+echo "";
+
+echo "";
+echo "\n";
+echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
+
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hour_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hour_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hour_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$call_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+$k=1;
+$Mk=0;
+$hold_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hold_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hold_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hold_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$hold_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$hold_scale .= "$scale_num";
+		}
+	else
+		{
+		$hold_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "|    TIME     |  AVG HOLD TIME (sec)  | (in seconds)  |  |    CALLS HANDLED      |       |       |\n";
+echo "| 15 MIN INT  |$hold_scale| AVG   | MAX   |  |$call_scale| DROPS | TOTAL |\n";
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+$i=0;
+while ($i < $TOTintervals)
+	{
+	$char_counter=0;
+	### BEGIN HOLD TIME TOTALS GRAPH ###
+		$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count > 0) {$no_lines_yet=0;}
+
+	$Gavg_hold = $qrtQUEUEavg[$i];
+	if ($Gavg_hold < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$TOT_lines++;
+			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+			echo "|$HMdisplay[$i]|";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+			}
+		}
+	else
+		{
+		$TOT_lines++;
+		$no_lines_yet=0;
+		$Xavg_hold = ($Gavg_hold * $hold_multiplier);
+		$Yavg_hold = (19 - $Xavg_hold);
+
+		$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+		$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+
+		echo "|$HMdisplay[$i]|";
+		$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
+		if ($char_counter >= 22) {echo "H";   $char_counter++;}
+		else {echo "*H";   $char_counter++;   $char_counter++;}
+		$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
+			while ($char_counter <= 22) {echo " ";   $char_counter++;}
+		echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+		}
+	### END HOLD TIME TOTALS GRAPH ###
+
+	$char_counter=0;
+ 	### BEGIN CALLS TOTALS GRAPH ###
+	$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			echo "  |";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtCALLS[$i] |     0 |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (19 - $Xhour_count);
+
+		$Gdrop_count = $qrtDROPS[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			if ($char_counter > 21) {echo "C";   $char_counter++;}
+			else {echo "*C";   $char_counter++;   $char_counter++;}
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "|     0 | $qrtCALLS[$i] |\n";
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "C";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "| $qrtDROPS[$i] | $qrtCALLS[$i] |\n";
+			}
+		}
+	### END CALLS TOTALS GRAPH ###
+
+	$i++;
+	}
+
+
+if ($totQUEUEsec > 0)
+	{$totQUEUEavgRAW = ($totCALLS / $totQUEUEsec);}
+else
+	{$totQUEUEavgRAW = 0;}
+$totQUEUEavg =	sprintf("%5s", $totQUEUEavg); 
+	while (strlen($totQUEUEavg)>5) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+$totQUEUEmax =	sprintf("%5s", $totQUEUEmax);
+	while (strlen($totQUEUEmax)>5) {$totQUEUEmax = ereg_replace(".$",'',$totQUEUEmax);}
+$totDROPS =	sprintf("%5s", $totDROPS);
+$totCALLS =	sprintf("%5s", $totCALLS);
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "| TOTAL                               | $totQUEUEavg | $totQUEUEmax |  |                       | $totDROPS | $totCALLS |\n";
+echo "+-------------------------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS, 15-MINUTE INCREMENT
+
+
+echo "\n";
+echo "---------- ΧΡΟΝΟΣ ΥΠΟΒΟΛΗΣ ΠΑΡΑΔΙΔΟΜΕΝΕΣ ΚΑΤΑΝΟΜΗ ΣΕ SECONDS\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "|    TIME     |       |  % OF CALLS GROUPED BY HOLD TIME (SEC)  | |   AVERAGE TIME BEFORE ΑΠΑΝΤΗΣΗ (SEC)    |\n";
+echo "| 15 MIN INT  | CALLS |    0   20   40   60   80  100  120 120+ | | AVG  |0   20   40   60   80  100  120 |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+
+$APhd__0=0; $APhd_20=0; $APhd_40=0; $APhd_60=0; $APhd_80=0; $APhd100=0; $APhd120=0; $APhd121=0;
+$h=0;
+while ($h < $TOTintervals)
+	{
+	$Aavg_hold[$h] = $qrtQUEUEavg[$h]; 
+	if ($hd__0[$h] > 0) {$Phd__0[$h] = round( ( ($hd__0[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd__0[$h]=0;}
+	if ($hd_20[$h] > 0) {$Phd_20[$h] = round( ( ($hd_20[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_20[$h]=0;}
+	if ($hd_40[$h] > 0) {$Phd_40[$h] = round( ( ($hd_40[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_40[$h]=0;}
+	if ($hd_60[$h] > 0) {$Phd_60[$h] = round( ( ($hd_60[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_60[$h]=0;}
+	if ($hd_80[$h] > 0) {$Phd_80[$h] = round( ( ($hd_80[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_80[$h]=0;}
+	if ($hd100[$h] > 0) {$Phd100[$h] = round( ( ($hd100[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd100[$h]=0;}
+	if ($hd120[$h] > 0) {$Phd120[$h] = round( ( ($hd120[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd120[$h]=0;}
+	if ($hd121[$h] > 0) {$Phd121[$h] = round( ( ($hd121[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd121[$h]=0;}
+		while (strlen($qrtQUEUEavg[$h])>4) {$qrtQUEUEavg[$h] = ereg_replace(".$",'',$qrtQUEUEavg[$h]);}
+	$hd__0[$h] =	sprintf("%4s", $hd__0[$h]);
+	$hd_20[$h] =	sprintf("%4s", $hd_20[$h]);
+	$hd_40[$h] =	sprintf("%4s", $hd_40[$h]);
+	$hd_60[$h] =	sprintf("%4s", $hd_60[$h]);
+	$hd_80[$h] =	sprintf("%4s", $hd_80[$h]);
+	$hd100[$h] =	sprintf("%4s", $hd100[$h]);
+	$hd120[$h] =	sprintf("%4s", $hd120[$h]);
+	$hd121[$h] =	sprintf("%4s", $hd121[$h]);
+	$Phd__0[$h] =	sprintf("%4s", $Phd__0[$h]);
+	$Phd_20[$h] =	sprintf("%4s", $Phd_20[$h]);
+	$Phd_40[$h] =	sprintf("%4s", $Phd_40[$h]);
+	$Phd_60[$h] =	sprintf("%4s", $Phd_60[$h]);
+	$Phd_80[$h] =	sprintf("%4s", $Phd_80[$h]);
+	$Phd100[$h] =	sprintf("%4s", $Phd100[$h]);
+	$Phd120[$h] =	sprintf("%4s", $Phd120[$h]);
+	$Phd121[$h] =	sprintf("%4s", $Phd121[$h]);
+
+	$ALLcalls = ($ALLcalls + $qrtCALLS[$h]);
+	$ALLhd__0 = ($ALLhd__0 + $hd__0[$h]);
+	$ALLhd_20 = ($ALLhd_20 + $hd_20[$h]);
+	$ALLhd_40 = ($ALLhd_40 + $hd_40[$h]);
+	$ALLhd_60 = ($ALLhd_60 + $hd_60[$h]);
+	$ALLhd_80 = ($ALLhd_80 + $hd_80[$h]);
+	$ALLhd100 = ($ALLhd100 + $hd100[$h]);
+	$ALLhd120 = ($ALLhd120 + $hd120[$h]);
+	$ALLhd121 = ($ALLhd121 + $hd121[$h]);
+
+	if ( ($Aavg_hold[$h] < 1) or ($Aavg_hold[$h] > 119) )
+		{
+		if ($Aavg_hold[$h] < 1)		{$qrtQUEUEavg_scale[$h] = '                                ';}
+		if ($Aavg_hold[$h] > 119)	{$qrtQUEUEavg_scale[$h] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';}
+		}
+	else
+		{
+		$qrtQUEUEavg_val[$h] = ( (32 / 120) * $Aavg_hold[$h] );
+		$k=0;
+		$blank=0;
+		while ($k < 32)
+			{
+			if ($k <= $qrtQUEUEavg_val[$h]) 
+				{
+				if ($k < 1) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= 'x';
+				}
+			else 
+				{
+				if ( ($k > 0) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= ' ';
+				$blank++;
+				}
+			$k++;
+			if ( ($k > 31) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+			}
+		}
+
+	$Aavg_hold[$h] = sprintf("%4s", $Aavg_hold[$h]);
+	while (strlen($Aavg_hold[$h])>4) {$Aavg_hold[$h] = ereg_replace("^.",'',$Aavg_hold[$h]);}
+
+	echo "|$HMdisplay[$h]| $qrtCALLS[$h] | $Phd__0[$h] $Phd_20[$h] $Phd_40[$h] $Phd_60[$h] $Phd_80[$h] $Phd100[$h] $Phd120[$h] $Phd121[$h] | | $Aavg_hold[$h] |$qrtQUEUEavg_scale[$h]|\n";
+	
+	$h++;
+	}
+
+if ($ALLhd__0 > 0) {$APhd__0 = round( ( ($ALLhd__0 / $ALLcalls) * 100) );}
+if ($ALLhd_20 > 0) {$APhd_20 = round( ( ($ALLhd_20 / $ALLcalls) * 100) );}
+if ($ALLhd_40 > 0) {$APhd_40 = round( ( ($ALLhd_40 / $ALLcalls) * 100) );}
+if ($ALLhd_60 > 0) {$APhd_60 = round( ( ($ALLhd_60 / $ALLcalls) * 100) );}
+if ($ALLhd_80 > 0) {$APhd_80 = round( ( ($ALLhd_80 / $ALLcalls) * 100) );}
+if ($ALLhd100 > 0) {$APhd100 = round( ( ($ALLhd100 / $ALLcalls) * 100) );}
+if ($ALLhd120 > 0) {$APhd120 = round( ( ($ALLhd120 / $ALLcalls) * 100) );}
+if ($ALLhd121 > 0) {$APhd121 = round( ( ($ALLhd121 / $ALLcalls) * 100) );}
+
+$ALLcalls =	sprintf("%5s", $ALLcalls);
+$APhd__0 =	sprintf("%4s", $APhd__0);
+$APhd_20 =	sprintf("%4s", $APhd_20);
+$APhd_40 =	sprintf("%4s", $APhd_40);
+$APhd_60 =	sprintf("%4s", $APhd_60);
+$APhd_80 =	sprintf("%4s", $APhd_80);
+$APhd100 =	sprintf("%4s", $APhd100);
+$APhd120 =	sprintf("%4s", $APhd120);
+$APhd121 =	sprintf("%4s", $APhd121);
+
+	while (strlen($totQUEUEavg)>4) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "| TOTAL       | $ALLcalls | $APhd__0 $APhd_20 $APhd_40 $APhd_60 $APhd_80 $APhd100 $APhd120 $APhd121 | | $totQUEUEavg |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+\n";
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSERstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSERstats.php new file mode 100644 index 00000000..333d89eb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSERstats.php @@ -0,0 +1,1504 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1714 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 60905-1326 - Added queue time stats +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71025-0021 - Added status breakdown +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80709-0331 - Added time stats to call statuses +# 80722-2149 - Added Status Category stats +# 81015-0705 - Added IVR calls count +# 81024-0037 - Added multi-select inbound-groups +# 81105-2118 - Added Answered calls 15-minute breakdown +# 81109-2340 - Added custom indicators section +# 90116-1040 - Rewrite of the 15-minute sections to speed it up and allow multi-day calculations +# 90310-2037 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90801-0921 - Added in-group name to pulldown +# 91214-0955 - Added INITIAL QUEUE POSITION BREAKDOWN +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Χρονικό διάστημα:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Εισερχόμενες Ομάδες: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ΤΡΟΠΟΠΟΙΗΣΗ | "; +echo "ΑΝΑΦΟΡΕΣ | "; +echo "IVR REPORT \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+{
+echo "\n\n";
+echo "Επιλέξτε μια Ενδοομιλικών ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ άνω ΚΛΙΚ ΚΑΙ ΑΠΟΣΤΟΛΗ\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "Inbound Call Stats: $group_string          $NOW_TIME\n";
+
+
+
+
+
+
+if ($group_ct > 1)
+	{
+	echo "\n";
+	echo "---------- MULTI-GROUP BREAKDOWN:\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+	echo "| IN-GROUP             | CALLS   | DROPS   | DROP %  | IVR     |\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	$i=0;
+	while($i < $group_ct)
+		{
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='$group[$i]' and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowx=mysql_fetch_row($rslt);
+
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowy=mysql_fetch_row($rslt);
+
+		$groupDISPLAY =	sprintf("%20s", $group[$i]);
+		$gTOTALcalls =	sprintf("%7s", $row[0]);
+		$gIVRcalls =	sprintf("%7s", $rowx[0]);
+		$gDROPcalls =	sprintf("%7s", $rowy[0]);
+		if ( ($gDROPcalls < 1) or ($gTOTALcalls < 1) )
+			{$gDROPpercent = '0';}
+		else
+			{
+			$gDROPpercent = (($gDROPcalls / $gTOTALcalls) * 100);
+			$gDROPpercent = round($gDROPpercent, 2);
+			}
+		$gDROPpercent =	sprintf("%6s", $gDROPpercent);
+
+		echo "| $groupDISPLAY | $gTOTALcalls | $gDROPcalls | $gDROPpercent% | $gIVRcalls |\n";
+		$i++;
+		}
+
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	}
+
+
+echo "\n";
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALS\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowy=mysql_fetch_row($rslt);
+
+$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) and comment_b='START';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowx=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$IVRcalls =	sprintf("%10s", $rowx[0]);
+$TOTALsec =		$row[1];
+if ( ($row[0] < 1) or ($TOTALsec < 1) )
+	{$average_call_seconds = '         0';}
+else
+	{
+	$average_call_seconds = ($TOTALsec / $row[0]);
+	$average_call_seconds = round($average_call_seconds, 0);
+	$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+	}
+$ΑΠΑΝΤΗΣΗEDcalls  =	sprintf("%10s", $rowy[0]);
+if ( ($ΑΠΑΝΤΗΣΗEDcalls < 1) or ($TOTALcalls < 1) )
+	{$ΑΠΑΝΤΗΣΗEDpercent = '0';}
+else
+	{
+	$ΑΠΑΝΤΗΣΗEDpercent = (($ΑΠΑΝΤΗΣΗEDcalls / $TOTALcalls) * 100);
+	$ΑΠΑΝΤΗΣΗEDpercent = round($ΑΠΑΝΤΗΣΗEDpercent, 0);
+	}
+if ( ($rowy[0] < 1) or ($ΑΠΑΝΤΗΣΗEDcalls < 1) )
+	{$average_answer_seconds = '         0';}
+else
+	{
+	$average_answer_seconds = ($rowy[1] / $rowy[0]);
+	$average_answer_seconds = round($average_answer_seconds, 2);
+	$average_answer_seconds =	sprintf("%10s", $average_answer_seconds);
+	}
+
+
+echo "Σύνολο κλήσεις που λαμβάνονται σε αυτό το In-Ομάδα:       $TOTALcalls\n";
+echo "Average Call Length for all Calls:            $average_call_seconds seconds\n";
+echo "Answered Calls:                               $ΑΠΑΝΤΗΣΗEDcalls  $ΑΠΑΝΤΗΣΗEDpercent%\n";
+echo "Average queue time for Answered Calls:        $average_answer_seconds seconds\n";
+echo "Calls taken into the IVR for this In-Ομάδα:  $IVRcalls\n";
+
+
+echo "\n";
+echo "---------- ΕΓΚΑΤΑΛ\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+	{$DROPpercent = '0';}
+else
+	{
+	$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+	$DROPpercent = round($DROPpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{
+	$average_hold_seconds = '         0';
+	}
+else
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+if ( ($ΑΠΑΝΤΗΣΗEDcalls < 1) or ($DROPcalls < 1) )
+	{$DROP_ΑΠΑΝΤΗΣΗEDpercent = '0';}
+else
+	{
+	$DROP_ΑΠΑΝΤΗΣΗEDpercent = (($DROPcalls / $ΑΠΑΝΤΗΣΗEDcalls) * 100);
+	$DROP_ΑΠΑΝΤΗΣΗEDpercent = round($DROP_ΑΠΑΝΤΗΣΗEDpercent, 0);
+	}
+
+echo "Συνολικά ΕΓΚΑΤΑΛΕΙΜΕΝΕΣ κλήσεις: $DROPcalls  $DROPpercent%               drop/answered: $DROP_ΑΠΑΝΤΗΣΗEDpercent%\n";
+echo "Average hold time for DROP Calls:             $average_hold_seconds seconds\n";
+
+
+
+
+if (strlen($group_SQL)>3)
+	{
+	$stmt = "SELECT answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two from vicidial_inbound_groups where group_id IN($group_SQL) order by answer_sec_pct_rt_stat_one desc limit 1;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$Sanswer_sec_pct_rt_stat_one = $row[0];
+	$Sanswer_sec_pct_rt_stat_two = $row[1];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_one;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_one = $row[0];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_two;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_two = $row[0];
+
+	if ( ($ΑΠΑΝΤΗΣΗEDcalls > 0) and ($answer_sec_pct_rt_stat_one > 0) and ($answer_sec_pct_rt_stat_two > 0) )
+		{
+		$PCTanswer_sec_pct_rt_stat_one = (($answer_sec_pct_rt_stat_one / $ΑΠΑΝΤΗΣΗEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_one = round($PCTanswer_sec_pct_rt_stat_one, 0);
+		#$PCTanswer_sec_pct_rt_stat_one = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_one);
+		$PCTanswer_sec_pct_rt_stat_two = (($answer_sec_pct_rt_stat_two / $ΑΠΑΝΤΗΣΗEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_two = round($PCTanswer_sec_pct_rt_stat_two, 0);
+		#$PCTanswer_sec_pct_rt_stat_two = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_two);
+		}
+	}
+echo "\n";
+echo "---------- CUSTOM INDICATORS\n";
+echo "GDE (Answered/Συνολικές κλήσεις που διακομίστηκανin to this In-Group):  $ΑΠΑΝΤΗΣΗEDpercent%\n";
+echo "ACR (Dropped/Answered):                                $DROP_ΑΠΑΝΤΗΣΗEDpercent%\n";
+echo "TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):            $PCTanswer_sec_pct_rt_stat_one%\n";
+echo "TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):            $PCTanswer_sec_pct_rt_stat_two%\n";
+
+
+# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+$q=0;
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_campaign_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+
+##############################
+#########  CALL QUEUE STATS
+echo "\n";
+echo "---------- QUEUE STATS\n";
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and (queue_seconds > 0);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$QUEUEcalls =	sprintf("%10s", $row[0]);
+if ( ($QUEUEcalls < 1) or ($TOTALcalls < 1) )
+	{$QUEUEpercent = '0';}
+else
+	{
+	$QUEUEpercent = (($QUEUEcalls / $TOTALcalls) * 100);
+	$QUEUEpercent = round($QUEUEpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{$average_queue_seconds = '         0';}
+else
+	{
+	$average_queue_seconds = ($row[1] / $row[0]);
+	$average_queue_seconds = round($average_queue_seconds, 2);
+	$average_queue_seconds = sprintf("%10.2f", $average_queue_seconds);
+	}
+
+if ( ($TOTALcalls < 1) or ($row[1] < 1) )
+	{$average_total_queue_seconds = '         0';}
+else
+	{
+	$average_total_queue_seconds = ($row[1] / $TOTALcalls);
+	$average_total_queue_seconds = round($average_total_queue_seconds, 2);
+	$average_total_queue_seconds = sprintf("%10.2f", $average_total_queue_seconds);
+	}
+
+echo "Total Calls That entered Queue:               $QUEUEcalls  $QUEUEpercent%\n";
+echo "Average QUEUE Length for queue calls:         $average_queue_seconds seconds\n";
+echo "Average QUEUE Length across all calls:        $average_total_queue_seconds seconds\n";
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- ΧΡΟΝΟΣ ΥΠΟΒΟΛΗΣ ΠΑΡΑΔΙΔΟΜΕΝΕΣ ΚΑΤΑΝΟΜΗ ΣΕ SECONDS\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ($row[1] == 0) {$hd_0 = ($hd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$hd_5 = ($hd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$hd10 = ($hd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$hd15 = ($hd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$hd20 = ($hd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$hd25 = ($hd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$hd30 = ($hd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$hd35 = ($hd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$hd40 = ($hd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$hd45 = ($hd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$hd50 = ($hd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$hd55 = ($hd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$hd60 = ($hd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$hd90 = ($hd90 + $row[0]);}
+	if ($row[1] > 90) {$hd99 = ($hd99 + $row[0]);}
+	$i++;
+	}
+
+$hd_0 =	sprintf("%5s", $hd_0);
+$hd_5 =	sprintf("%5s", $hd_5);
+$hd10 =	sprintf("%5s", $hd10);
+$hd15 =	sprintf("%5s", $hd15);
+$hd20 =	sprintf("%5s", $hd20);
+$hd25 =	sprintf("%5s", $hd25);
+$hd30 =	sprintf("%5s", $hd30);
+$hd35 =	sprintf("%5s", $hd35);
+$hd40 =	sprintf("%5s", $hd40);
+$hd45 =	sprintf("%5s", $hd45);
+$hd50 =	sprintf("%5s", $hd50);
+$hd55 =	sprintf("%5s", $hd55);
+$hd60 =	sprintf("%5s", $hd60);
+$hd90 =	sprintf("%5s", $hd90);
+$hd99 =	sprintf("%5s", $hd99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $hd_0 $hd_5 $hd10 $hd15 $hd20 $hd25 $hd30 $hd35 $hd40 $hd45 $hd50 $hd55 $hd60 $hd90 $hd99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  CALL DROP TIME BREAKDOWN IN SECONDS
+
+$BDdropCALLS = 0;
+
+echo "\n";
+echo "---------- CALL DROP TIME BREAKDOWN IN SECONDS\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status IN('DROP','XDROP') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDdropCALLS = ($BDdropCALLS + $row[0]);
+
+	if ($row[1] == 0) {$dd_0 = ($dd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$dd_5 = ($dd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$dd10 = ($dd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$dd15 = ($dd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$dd20 = ($dd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$dd25 = ($dd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$dd30 = ($dd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$dd35 = ($dd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$dd40 = ($dd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$dd45 = ($dd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$dd50 = ($dd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$dd55 = ($dd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$dd60 = ($dd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$dd90 = ($dd90 + $row[0]);}
+	if ($row[1] > 90) {$dd99 = ($dd99 + $row[0]);}
+	$i++;
+	}
+
+$dd_0 =	sprintf("%5s", $dd_0);
+$dd_5 =	sprintf("%5s", $dd_5);
+$dd10 =	sprintf("%5s", $dd10);
+$dd15 =	sprintf("%5s", $dd15);
+$dd20 =	sprintf("%5s", $dd20);
+$dd25 =	sprintf("%5s", $dd25);
+$dd30 =	sprintf("%5s", $dd30);
+$dd35 =	sprintf("%5s", $dd35);
+$dd40 =	sprintf("%5s", $dd40);
+$dd45 =	sprintf("%5s", $dd45);
+$dd50 =	sprintf("%5s", $dd50);
+$dd55 =	sprintf("%5s", $dd55);
+$dd60 =	sprintf("%5s", $dd60);
+$dd90 =	sprintf("%5s", $dd90);
+$dd99 =	sprintf("%5s", $dd99);
+
+$BDdropCALLS =		sprintf("%10s", $BDdropCALLS);
+
+echo "| $dd_0 $dd_5 $dd10 $dd15 $dd20 $dd25 $dd30 $dd35 $dd40 $dd45 $dd50 $dd55 $dd60 $dd90 $dd99 | $BDdropCALLS |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS
+
+$BDansweredCALLS = 0;
+
+echo "\n";
+echo "           CALL ΑΠΑΝΤΗΣΗED TIME AND PERCENT BREAKDOWN IN SECONDS\n";
+echo "          +-------------------------------------------------------------------------------------------+------------+\n";
+echo "          |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDansweredCALLS = ($BDansweredCALLS + $row[0]);
+	
+	### Get interval totals
+	if ($row[1] == 0) {$ad_0 = ($ad_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$ad_5 = ($ad_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$ad10 = ($ad10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$ad15 = ($ad15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$ad20 = ($ad20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$ad25 = ($ad25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$ad30 = ($ad30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$ad35 = ($ad35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$ad40 = ($ad40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$ad45 = ($ad45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$ad50 = ($ad50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$ad55 = ($ad55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$ad60 = ($ad60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$ad90 = ($ad90 + $row[0]);}
+	if ($row[1] > 90) {$ad99 = ($ad99 + $row[0]);}
+	$i++;
+	}
+
+### Calculate cumulative totals
+$Cad_0 =$ad_0;
+$Cad_5 =($Cad_0 + $ad_5);
+$Cad10 =($Cad_5 + $ad10);
+$Cad15 =($Cad10 + $ad15);
+$Cad20 =($Cad15 + $ad20);
+$Cad25 =($Cad20 + $ad25);
+$Cad30 =($Cad25 + $ad30);
+$Cad35 =($Cad30 + $ad35);
+$Cad40 =($Cad35 + $ad40);
+$Cad45 =($Cad40 + $ad45);
+$Cad50 =($Cad45 + $ad50);
+$Cad55 =($Cad50 + $ad55);
+$Cad60 =($Cad55 + $ad60);
+$Cad90 =($Cad60 + $ad90);
+$Cad99 =($Cad90 + $ad99);
+
+### Calculate interval percentages
+$pad_0=0; $pad_5=0; $pad10=0; $pad15=0; $pad20=0; $pad25=0; $pad30=0; $pad35=0; $pad40=0; $pad45=0; $pad50=0; $pad55=0; $pad60=0; $pad90=0; $pad99=0; 
+$pCad_0=0; $pCad_5=0; $pCad10=0; $pCad15=0; $pCad20=0; $pCad25=0; $pCad30=0; $pCad35=0; $pCad40=0; $pCad45=0; $pCad50=0; $pCad55=0; $pCad60=0; $pCad90=0; $pCad99=0; 
+if ( ($BDansweredCALLS > 0) and ($TOTALcalls > 0) )
+	{
+	if ($ad_0 > 0) {$pad_0 = (($ad_0 / $TOTALcalls) * 100);	$pad_0 = round($pad_0, 0);}
+	if ($ad_5 > 0) {$pad_5 = (($ad_5 / $TOTALcalls) * 100);	$pad_5 = round($pad_5, 0);}
+	if ($ad10 > 0) {$pad10 = (($ad10 / $TOTALcalls) * 100);	$pad10 = round($pad10, 0);}
+	if ($ad15 > 0) {$pad15 = (($ad15 / $TOTALcalls) * 100);	$pad15 = round($pad15, 0);}
+	if ($ad20 > 0) {$pad20 = (($ad20 / $TOTALcalls) * 100);	$pad20 = round($pad20, 0);}
+	if ($ad25 > 0) {$pad25 = (($ad25 / $TOTALcalls) * 100);	$pad25 = round($pad25, 0);}
+	if ($ad30 > 0) {$pad30 = (($ad30 / $TOTALcalls) * 100);	$pad30 = round($pad30, 0);}
+	if ($ad35 > 0) {$pad35 = (($ad35 / $TOTALcalls) * 100);	$pad35 = round($pad35, 0);}
+	if ($ad40 > 0) {$pad40 = (($ad40 / $TOTALcalls) * 100);	$pad40 = round($pad40, 0);}
+	if ($ad45 > 0) {$pad45 = (($ad45 / $TOTALcalls) * 100);	$pad45 = round($pad45, 0);}
+	if ($ad50 > 0) {$pad50 = (($ad50 / $TOTALcalls) * 100);	$pad50 = round($pad50, 0);}
+	if ($ad55 > 0) {$pad55 = (($ad55 / $TOTALcalls) * 100);	$pad55 = round($pad55, 0);}
+	if ($ad60 > 0) {$pad60 = (($ad60 / $TOTALcalls) * 100);	$pad60 = round($pad60, 0);}
+	if ($ad90 > 0) {$pad90 = (($ad90 / $TOTALcalls) * 100);	$pad90 = round($pad90, 0);}
+	if ($ad99 > 0) {$pad99 = (($ad99 / $TOTALcalls) * 100);	$pad99 = round($pad99, 0);}
+
+	if ($Cad_0 > 0) {$pCad_0 = (($Cad_0 / $TOTALcalls) * 100);	$pCad_0 = round($pCad_0, 0);}
+	if ($Cad_5 > 0) {$pCad_5 = (($Cad_5 / $TOTALcalls) * 100);	$pCad_5 = round($pCad_5, 0);}
+	if ($Cad10 > 0) {$pCad10 = (($Cad10 / $TOTALcalls) * 100);	$pCad10 = round($pCad10, 0);}
+	if ($Cad15 > 0) {$pCad15 = (($Cad15 / $TOTALcalls) * 100);	$pCad15 = round($pCad15, 0);}
+	if ($Cad20 > 0) {$pCad20 = (($Cad20 / $TOTALcalls) * 100);	$pCad20 = round($pCad20, 0);}
+	if ($Cad25 > 0) {$pCad25 = (($Cad25 / $TOTALcalls) * 100);	$pCad25 = round($pCad25, 0);}
+	if ($Cad30 > 0) {$pCad30 = (($Cad30 / $TOTALcalls) * 100);	$pCad30 = round($pCad30, 0);}
+	if ($Cad35 > 0) {$pCad35 = (($Cad35 / $TOTALcalls) * 100);	$pCad35 = round($pCad35, 0);}
+	if ($Cad40 > 0) {$pCad40 = (($Cad40 / $TOTALcalls) * 100);	$pCad40 = round($pCad40, 0);}
+	if ($Cad45 > 0) {$pCad45 = (($Cad45 / $TOTALcalls) * 100);	$pCad45 = round($pCad45, 0);}
+	if ($Cad50 > 0) {$pCad50 = (($Cad50 / $TOTALcalls) * 100);	$pCad50 = round($pCad50, 0);}
+	if ($Cad55 > 0) {$pCad55 = (($Cad55 / $TOTALcalls) * 100);	$pCad55 = round($pCad55, 0);}
+	if ($Cad60 > 0) {$pCad60 = (($Cad60 / $TOTALcalls) * 100);	$pCad60 = round($pCad60, 0);}
+	if ($Cad90 > 0) {$pCad90 = (($Cad90 / $TOTALcalls) * 100);	$pCad90 = round($pCad90, 0);}
+	if ($Cad99 > 0) {$pCad99 = (($Cad99 / $TOTALcalls) * 100);	$pCad99 = round($pCad99, 0);}
+
+	if ($Cad_0 > 0) {$ApCad_0 = (($Cad_0 / $BDansweredCALLS) * 100);	$ApCad_0 = round($ApCad_0, 0);}
+	if ($Cad_5 > 0) {$ApCad_5 = (($Cad_5 / $BDansweredCALLS) * 100);	$ApCad_5 = round($ApCad_5, 0);}
+	if ($Cad10 > 0) {$ApCad10 = (($Cad10 / $BDansweredCALLS) * 100);	$ApCad10 = round($ApCad10, 0);}
+	if ($Cad15 > 0) {$ApCad15 = (($Cad15 / $BDansweredCALLS) * 100);	$ApCad15 = round($ApCad15, 0);}
+	if ($Cad20 > 0) {$ApCad20 = (($Cad20 / $BDansweredCALLS) * 100);	$ApCad20 = round($ApCad20, 0);}
+	if ($Cad25 > 0) {$ApCad25 = (($Cad25 / $BDansweredCALLS) * 100);	$ApCad25 = round($ApCad25, 0);}
+	if ($Cad30 > 0) {$ApCad30 = (($Cad30 / $BDansweredCALLS) * 100);	$ApCad30 = round($ApCad30, 0);}
+	if ($Cad35 > 0) {$ApCad35 = (($Cad35 / $BDansweredCALLS) * 100);	$ApCad35 = round($ApCad35, 0);}
+	if ($Cad40 > 0) {$ApCad40 = (($Cad40 / $BDansweredCALLS) * 100);	$ApCad40 = round($ApCad40, 0);}
+	if ($Cad45 > 0) {$ApCad45 = (($Cad45 / $BDansweredCALLS) * 100);	$ApCad45 = round($ApCad45, 0);}
+	if ($Cad50 > 0) {$ApCad50 = (($Cad50 / $BDansweredCALLS) * 100);	$ApCad50 = round($ApCad50, 0);}
+	if ($Cad55 > 0) {$ApCad55 = (($Cad55 / $BDansweredCALLS) * 100);	$ApCad55 = round($ApCad55, 0);}
+	if ($Cad60 > 0) {$ApCad60 = (($Cad60 / $BDansweredCALLS) * 100);	$ApCad60 = round($ApCad60, 0);}
+	if ($Cad90 > 0) {$ApCad90 = (($Cad90 / $BDansweredCALLS) * 100);	$ApCad90 = round($ApCad90, 0);}
+	if ($Cad99 > 0) {$ApCad99 = (($Cad99 / $BDansweredCALLS) * 100);	$ApCad99 = round($ApCad99, 0);}
+	}
+
+### Format variables
+$ad_0 = sprintf("%5s", $ad_0);
+$ad_5 = sprintf("%5s", $ad_5);
+$ad10 = sprintf("%5s", $ad10);
+$ad15 = sprintf("%5s", $ad15);
+$ad20 = sprintf("%5s", $ad20);
+$ad25 = sprintf("%5s", $ad25);
+$ad30 = sprintf("%5s", $ad30);
+$ad35 = sprintf("%5s", $ad35);
+$ad40 = sprintf("%5s", $ad40);
+$ad45 = sprintf("%5s", $ad45);
+$ad50 = sprintf("%5s", $ad50);
+$ad55 = sprintf("%5s", $ad55);
+$ad60 = sprintf("%5s", $ad60);
+$ad90 = sprintf("%5s", $ad90);
+$ad99 = sprintf("%5s", $ad99);
+$Cad_0 = sprintf("%5s", $Cad_0);
+$Cad_5 = sprintf("%5s", $Cad_5);
+$Cad10 = sprintf("%5s", $Cad10);
+$Cad15 = sprintf("%5s", $Cad15);
+$Cad20 = sprintf("%5s", $Cad20);
+$Cad25 = sprintf("%5s", $Cad25);
+$Cad30 = sprintf("%5s", $Cad30);
+$Cad35 = sprintf("%5s", $Cad35);
+$Cad40 = sprintf("%5s", $Cad40);
+$Cad45 = sprintf("%5s", $Cad45);
+$Cad50 = sprintf("%5s", $Cad50);
+$Cad55 = sprintf("%5s", $Cad55);
+$Cad60 = sprintf("%5s", $Cad60);
+$Cad90 = sprintf("%5s", $Cad90);
+$Cad99 = sprintf("%5s", $Cad99);
+$pad_0 = sprintf("%4s", $pad_0) . '%';
+$pad_5 = sprintf("%4s", $pad_5) . '%';
+$pad10 = sprintf("%4s", $pad10) . '%';
+$pad15 = sprintf("%4s", $pad15) . '%';
+$pad20 = sprintf("%4s", $pad20) . '%';
+$pad25 = sprintf("%4s", $pad25) . '%';
+$pad30 = sprintf("%4s", $pad30) . '%';
+$pad35 = sprintf("%4s", $pad35) . '%';
+$pad40 = sprintf("%4s", $pad40) . '%';
+$pad45 = sprintf("%4s", $pad45) . '%';
+$pad50 = sprintf("%4s", $pad50) . '%';
+$pad55 = sprintf("%4s", $pad55) . '%';
+$pad60 = sprintf("%4s", $pad60) . '%';
+$pad90 = sprintf("%4s", $pad90) . '%';
+$pad99 = sprintf("%4s", $pad99) . '%';
+$pCad_0 = sprintf("%4s", $pCad_0) . '%';
+$pCad_5 = sprintf("%4s", $pCad_5) . '%';
+$pCad10 = sprintf("%4s", $pCad10) . '%';
+$pCad15 = sprintf("%4s", $pCad15) . '%';
+$pCad20 = sprintf("%4s", $pCad20) . '%';
+$pCad25 = sprintf("%4s", $pCad25) . '%';
+$pCad30 = sprintf("%4s", $pCad30) . '%';
+$pCad35 = sprintf("%4s", $pCad35) . '%';
+$pCad40 = sprintf("%4s", $pCad40) . '%';
+$pCad45 = sprintf("%4s", $pCad45) . '%';
+$pCad50 = sprintf("%4s", $pCad50) . '%';
+$pCad55 = sprintf("%4s", $pCad55) . '%';
+$pCad60 = sprintf("%4s", $pCad60) . '%';
+$pCad90 = sprintf("%4s", $pCad90) . '%';
+$pCad99 = sprintf("%4s", $pCad99) . '%';
+$ApCad_0 = sprintf("%4s", $ApCad_0) . '%';
+$ApCad_5 = sprintf("%4s", $ApCad_5) . '%';
+$ApCad10 = sprintf("%4s", $ApCad10) . '%';
+$ApCad15 = sprintf("%4s", $ApCad15) . '%';
+$ApCad20 = sprintf("%4s", $ApCad20) . '%';
+$ApCad25 = sprintf("%4s", $ApCad25) . '%';
+$ApCad30 = sprintf("%4s", $ApCad30) . '%';
+$ApCad35 = sprintf("%4s", $ApCad35) . '%';
+$ApCad40 = sprintf("%4s", $ApCad40) . '%';
+$ApCad45 = sprintf("%4s", $ApCad45) . '%';
+$ApCad50 = sprintf("%4s", $ApCad50) . '%';
+$ApCad55 = sprintf("%4s", $ApCad55) . '%';
+$ApCad60 = sprintf("%4s", $ApCad60) . '%';
+$ApCad90 = sprintf("%4s", $ApCad90) . '%';
+$ApCad99 = sprintf("%4s", $ApCad99) . '%';
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+### Format and output
+$answeredTOTALs = "$ad_0 $ad_5 $ad10 $ad15 $ad20 $ad25 $ad30 $ad35 $ad40 $ad45 $ad50 $ad55 $ad60 $ad90 $ad99 | $BDansweredCALLS |";
+$answeredCUMULATIVE = "$Cad_0 $Cad_5 $Cad10 $Cad15 $Cad20 $Cad25 $Cad30 $Cad35 $Cad40 $Cad45 $Cad50 $Cad55 $Cad60 $Cad90 $Cad99 | $BDansweredCALLS |";
+$answeredINT_PERCENT = "$pad_0 $pad_5 $pad10 $pad15 $pad20 $pad25 $pad30 $pad35 $pad40 $pad45 $pad50 $pad55 $pad60 $pad90 $pad99 |            |";
+$answeredCUM_PERCENT = "$pCad_0 $pCad_5 $pCad10 $pCad15 $pCad20 $pCad25 $pCad30 $pCad35 $pCad40 $pCad45 $pCad50 $pCad55 $pCad60 $pCad90 $pCad99 |            |";
+$answeredCUM_ANS_PERCENT = "$ApCad_0 $ApCad_5 $ApCad10 $ApCad15 $ApCad20 $ApCad25 $ApCad30 $ApCad35 $ApCad40 $ApCad45 $ApCad50 $ApCad55 $ApCad60 $ApCad90 $ApCad99 |            |";
+echo "INTERVAL  | $answeredTOTALs\n";
+echo "INT %     | $answeredINT_PERCENT\n";
+echo "CUMULATIVE| $answeredCUMULATIVE\n";
+echo "CUM %     | $answeredCUM_PERCENT\n";
+echo "CUM ANS % | $answeredCUM_ANS_PERCENT\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+
+##############################
+#########  CALL HANGUP REASON STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL HANGUP REASON STATS\n";
+echo "+----------------------+------------+\n";
+echo "| HANGUP REASON        | CALLS      |\n";
+echo "+----------------------+------------+\n";
+
+$stmt="select count(*),term_reason from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by term_reason;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+	$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+#	if (ereg("NONE",$reason)) {$reason = 'NO ANSWER           ';}
+
+	echo "| $reason | $REASONcount |\n";
+
+	$i++;
+	}
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "+----------------------+------------+\n";
+echo "| TOTAL:               | $TOTALcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL STATUS STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL STATUS STATS\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| STATUS | DESCRIPTION          | ΚΑΤΗΓΟΡΙΑ             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+
+
+## get counts and time totals for all statuses in this campaign
+$stmt="select count(*),status,sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by status;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$STATUScount =	$row[0];
+	$RAWstatus =	$row[1];
+	$r=0;  $foundstat=0;
+	while ($r < $statcats_to_print)
+		{
+		if ( ($statcat_list[$RAWstatus] == "$vsc_id[$r]") and ($foundstat < 1) )
+			{
+			$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+			}
+		$r++;
+		}
+
+	$TOTALcalls =	($TOTALcalls + $row[0]);
+	if ( ($STATUScount < 1) or ($TOTALsec < 1) )
+		{$STATUSrate = 0;}
+	else
+		{$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );}
+	$STATUSrate =	sprintf("%.2f", $STATUSrate);
+
+	$STATUShours =		sec_convert($row[2],'H'); 
+	$STATUSavg_sec =	($row[2] / $STATUScount); 
+	$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+	$STATUScount =	sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+	$status =	sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+	$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+	$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+	$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+
+	if ($non_latin < 1)
+		{
+		$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+		while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+		$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+		while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+		}
+	else
+		{
+		$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+		while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+		$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+		while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+		}
+
+
+	echo "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate |\n";
+
+	$i++;
+	}
+
+if ($TOTALcalls < 1)
+	{
+	$TOTALhours =	'0:00:00';
+	$TOTALavg =		'0:00:00';
+	$TOTALrate =	'0.00';
+	}
+else
+	{
+	if ( ($TOTALcalls < 1) or ($TOTALsec < 1) )
+		{$TOTALrate = 0;}
+	else
+		{$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );}
+	$TOTALrate =	sprintf("%.2f", $TOTALrate);
+
+	$TOTALhours =		sec_convert($TOTALsec,'H'); 
+	$TOTALavg_sec =		($TOTALsec / $TOTALcalls);
+	$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+	}
+$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |\n";
+echo "+------------------------------------------------------+------------+------------+----------+----------+\n";
+
+
+##############################
+#########  STATUS CATEGORY STATS
+
+echo "\n";
+echo "---------- CUSTOM STATUS ΚΑΤΗΓΟΡΙΑ STATS\n";
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| ΚΑΤΗΓΟΡΙΑ             | CALLS      | DESCRIPTION                    |\n";
+echo "+----------------------+------------+--------------------------------+\n";
+
+$TOTCATcalls=0;
+$r=0;
+while ($r < $statcats_to_print)
+	{
+	if ($vsc_id[$r] != 'UNDEFINED')
+		{
+		$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+		$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+		$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+		$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+		echo "| $category | $CATcount | $CATname |\n";
+		}
+
+	$r++;
+	}
+
+$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| TOTAL                | $TOTCATcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+##############################
+#########  CALL INITIAL QUEUE POSITION BREAKDOWN
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+echo "|     1     2     3     4     5     6     7     8     9    10    15    20    25   +25 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_position;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$positions_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $positions_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);}
+	if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);}
+	if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);}
+	if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);}
+	if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);}
+	if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);}
+	if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);}
+	if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);}
+	if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);}
+	if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);}
+	$i++;
+	}
+
+$qp_1 =	sprintf("%5s", $qp_1);
+$qp_2 =	sprintf("%5s", $qp_2);
+$qp_3=	sprintf("%5s", $qp_3);
+$qp_4 =	sprintf("%5s", $qp_4);
+$qp_5 =	sprintf("%5s", $qp_5);
+$qp_6 =	sprintf("%5s", $qp_6);
+$qp_7 =	sprintf("%5s", $qp_7);
+$qp_8 =	sprintf("%5s", $qp_8);
+$qp_9 =	sprintf("%5s", $qp_9);
+$qp10 =	sprintf("%5s", $qp10);
+$qp15 =	sprintf("%5s", $qp15);
+$qp20 =	sprintf("%5s", $qp20);
+$qp25 =	sprintf("%5s", $qp25);
+$qp99 =	sprintf("%5s", $qp99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  USER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTtime=0;
+$TOTavg=0;
+
+echo "\n";
+echo "---------- ΧΕΙΡΙΣΤΗΣSTATS\n";
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| ΧΕΙΡΙΣΤΗΣ                   | CALLS      | TIME H:M:S |AVERAGE |\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_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[2]);
+	$TOTtime = ($TOTtime + $row[3]);
+
+	$user =			sprintf("%-6s", $row[0]);
+	if ($non_latin < 1)
+		{
+		$full_name =	sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+		}
+	else
+		{
+		$full_name =	sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+		}
+	$USERcalls =	sprintf("%10s", $row[2]);
+	$USERtotTALK =	$row[3];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+	$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+	$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+	$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+	$i++;
+	}
+
+if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;}
+else
+	{
+	$TOTavg = ($TOTtime / $TOTcalls);
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	}
+
+$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+$TOTagents =		sprintf("%10s", $i);
+$TOTcalls =			sprintf("%10s", $TOTcalls);
+$TOTtime =			sprintf("%8s", $TOTtime);
+$TOTavg =			sprintf("%6s", $TOTavg);
+
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| TOTAL Πράκτορες: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+echo "+--------------------------+------------+------------+--------+\n";
+
+
+##############################
+#########  TIME STATS
+
+echo "\n";
+echo "---------- ΣΤΑΤ.ΧΡΟΝ.\n";
+
+echo "\n";
+
+
+##############################
+#########  15-minute increment breakdowns of total calls and drops, then answered table
+$BDansweredCALLS = 0;
+$stmt="SELECT status,queue_seconds,UNIX_TIMESTAMP(call_date),call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$calls_to_print = mysql_num_rows($rslt);
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$Cstatus[$j] =	$row[0];
+	$Cqueue[$j] =	$row[1];
+	$Cepoch[$j] =	$row[2];
+	$Cdate[$j] =	$row[3];
+	$Crem[$j] = ( ($Cepoch[$j] + $epoch_offset) % 86400); # find the remainder(Modulus) of seconds since start of the day
+#	echo "|$Cepoch[$j]|$Crem[$j]|$Cdate[$j]|\n";
+	$j++;
+	}
+
+### Loop through all call records and gather stats for total call/drop report and answered report
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$i=0; $sec=0; $sec_end=900;
+	while ($i <= 96)
+		{
+		if ( ($Crem[$j] >= $sec) and ($Crem[$j] < $sec_end) ) 
+			{
+			$Ftotal[$i]++;
+			if (ereg("DROP",$Cstatus[$j])) {$Fdrop[$i]++;}
+			if (!ereg("DROP|XDROP|HXFER|QVMAIL|HOLDTO|LIVE|QUEUE",$Cstatus[$j]))
+				{
+				$BDansweredCALLS++;
+				$Fanswer[$i]++;
+
+				if ($Cqueue[$j] == 0)								{$adB_0[$i]++;}
+				if ( ($Cqueue[$j] > 0) and ($Cqueue[$j] <= 5) )		{$adB_5[$i]++;}
+				if ( ($Cqueue[$j] > 5) and ($Cqueue[$j] <= 10) )	{$adB10[$i]++;}
+				if ( ($Cqueue[$j] > 10) and ($Cqueue[$j] <= 15) )	{$adB15[$i]++;}
+				if ( ($Cqueue[$j] > 15) and ($Cqueue[$j] <= 20) )	{$adB20[$i]++;}
+				if ( ($Cqueue[$j] > 20) and ($Cqueue[$j] <= 25) )	{$adB25[$i]++;}
+				if ( ($Cqueue[$j] > 25) and ($Cqueue[$j] <= 30) )	{$adB30[$i]++;}
+				if ( ($Cqueue[$j] > 30) and ($Cqueue[$j] <= 35) )	{$adB35[$i]++;}
+				if ( ($Cqueue[$j] > 35) and ($Cqueue[$j] <= 40) )	{$adB40[$i]++;}
+				if ( ($Cqueue[$j] > 40) and ($Cqueue[$j] <= 45) )	{$adB45[$i]++;}
+				if ( ($Cqueue[$j] > 45) and ($Cqueue[$j] <= 50) )	{$adB50[$i]++;}
+				if ( ($Cqueue[$j] > 50) and ($Cqueue[$j] <= 55) )	{$adB55[$i]++;}
+				if ( ($Cqueue[$j] > 55) and ($Cqueue[$j] <= 60) )	{$adB60[$i]++;}
+				if ( ($Cqueue[$j] > 60) and ($Cqueue[$j] <= 90) )	{$adB90[$i]++;}
+				if ($Cqueue[$j] > 90)								{$adB99[$i]++;}
+				}
+
+			}
+		$sec = ($sec + 900);
+		$sec_end = ($sec_end + 900);
+		$i++;
+		}
+	$j++;
+	}	##### END going through all records
+
+
+
+
+
+
+
+##### 15-minute total and drops graph
+$hi_hour_count=0;
+$last_full_record=0;
+$i=0;
+$h=0;
+while ($i <= 96)
+	{
+	$hour_count[$i] = $Ftotal[$i];
+	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+	if ($hour_count[$i] > 0) {$last_full_record = $i;}
+	$drop_count[$i] = $Fdrop[$i];
+	$i++;
+	}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+	}
+
+echo "\n";
+echo "ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ TAKEN INTO THIS IN-GROUP\n";
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 102) 
+	{
+	if ($Mk >= 5) 
+		{
+		$Mk=0;
+		if ( ($k < 1) or ($hour_multiplier <= 0) )
+			{$scale_num = 100;}
+		else
+			{
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			}
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		}
+	if ($h == 1) {$time = "   15 ";}
+	if ($h == 2) {$time = "   30 ";}
+	if ($h == 3) {$time = "   45 ";}
+	$Ghour_count = $hour_count[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ( ($no_lines_yet) or ($i > $last_full_record) )
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			echo "|$time|";
+			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (99 - $Xhour_count);
+
+		$Gdrop_count = $drop_count[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| 0     | $hour_count[$i] |\n";
+
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 102) {echo " ";   $char_counter++;}
+			echo "| $drop_count[$i] | $hour_count[$i] |\n";
+			}
+		}
+	
+	
+	$i++;
+	$h++;
+	}
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n\n";
+
+
+
+
+
+
+##### Answered wait time breakdown
+echo "\n";
+echo "---------- CALL ΑΠΑΝΤΗΣΗED TIME BREAKDOWN IN SECONDS\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "| HOUR |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		$SQLtime = "$hour:$ZZ:00";
+		$SQLtimeEND = "$hour:15:00";
+		}
+	if ($h == 1) {$time = "   15 ";   $SQLtime = "$hour:15:00";   $SQLtimeEND = "$hour:30:00";}
+	if ($h == 2) {$time = "   30 ";   $SQLtime = "$hour:30:00";   $SQLtimeEND = "$hour:45:00";}
+	if ($h == 3) 
+		{
+		$time = "   45 ";
+		$SQLtime = "$hour:45:00";
+		$hourEND = ($hour + 1);
+		if ($hourEND < 10) {$hourEND = "0$hourEND";}
+		if ($hourEND > 23) {$SQLtimeEND = "23:59:59";}
+		else {$SQLtimeEND = "$hourEND:00:00";}
+		}
+
+
+	if (strlen($adB_0[$i]) < 1)  {$adB_0[$i]='-';}
+	if (strlen($adB_5[$i]) < 1)  {$adB_5[$i]='-';}
+	if (strlen($adB10[$i]) < 1)  {$adB10[$i]='-';}
+	if (strlen($adB15[$i]) < 1)  {$adB15[$i]='-';}
+	if (strlen($adB20[$i]) < 1)  {$adB20[$i]='-';}
+	if (strlen($adB25[$i]) < 1)  {$adB25[$i]='-';}
+	if (strlen($adB30[$i]) < 1)  {$adB30[$i]='-';}
+	if (strlen($adB35[$i]) < 1)  {$adB35[$i]='-';}
+	if (strlen($adB40[$i]) < 1)  {$adB40[$i]='-';}
+	if (strlen($adB45[$i]) < 1)  {$adB45[$i]='-';}
+	if (strlen($adB50[$i]) < 1)  {$adB50[$i]='-';}
+	if (strlen($adB55[$i]) < 1)  {$adB55[$i]='-';}
+	if (strlen($adB60[$i]) < 1)  {$adB60[$i]='-';}
+	if (strlen($adB90[$i]) < 1)  {$adB90[$i]='-';}
+	if (strlen($adB99[$i]) < 1)  {$adB99[$i]='-';}
+	if (strlen($Fanswer[$i]) < 1)  {$Fanswer[$i]='0';}
+
+	$adB_0[$i] = sprintf("%5s", $adB_0[$i]);
+	$adB_5[$i] = sprintf("%5s", $adB_5[$i]);
+	$adB10[$i] = sprintf("%5s", $adB10[$i]);
+	$adB15[$i] = sprintf("%5s", $adB15[$i]);
+	$adB20[$i] = sprintf("%5s", $adB20[$i]);
+	$adB25[$i] = sprintf("%5s", $adB25[$i]);
+	$adB30[$i] = sprintf("%5s", $adB30[$i]);
+	$adB35[$i] = sprintf("%5s", $adB35[$i]);
+	$adB40[$i] = sprintf("%5s", $adB40[$i]);
+	$adB45[$i] = sprintf("%5s", $adB45[$i]);
+	$adB50[$i] = sprintf("%5s", $adB50[$i]);
+	$adB55[$i] = sprintf("%5s", $adB55[$i]);
+	$adB60[$i] = sprintf("%5s", $adB60[$i]);
+	$adB90[$i] = sprintf("%5s", $adB90[$i]);
+	$adB99[$i] = sprintf("%5s", $adB99[$i]);
+	$Fanswer[$i] = sprintf("%10s", $Fanswer[$i]);
+
+	echo "|$time| $adB_0[$i] $adB_5[$i] $adB10[$i] $adB15[$i] $adB20[$i] $adB25[$i] $adB30[$i] $adB35[$i] $adB40[$i] $adB45[$i] $adB50[$i] $adB55[$i] $adB60[$i] $adB90[$i] $adB99[$i] | $Fanswer[$i] |\n";
+
+	$i++;
+	$h++;
+	}
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|TOTALS|                                                                                           | $BDansweredCALLS |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSERsummary_hourly.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_IVRfilter.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_IVRfilter.php new file mode 100644 index 00000000..bc35da25 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_IVRfilter.php @@ -0,0 +1,249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 81030-0432 - First build +# 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; + +?> + + + + + +\n"; +echo "VICIDIAL: VDL IVR Filter Stats\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Χρονικό διάστημα:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ADMIN | "; +echo "ΑΝΑΦΟΡΕΣ\n"; +echo "\n"; + +echo "
\n"; + +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+$shift = 'ALL';
+
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "VDL: IVR Filter Stats:           $NOW_TIME\n";
+
+
+echo "\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "| ΚΑΤΗΓΟΡΙΑ             | CALLS   | UNIQUE  |      %  |\n";
+echo "+----------------------+---------+---------+---------+\n";
+
+
+$stmtA="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Εισερχόμενα_IVR_FILTER' and comment_b='CLEAN';";
+$rsltA=mysql_query($stmtA, $link);
+if ($DB) {echo "$stmtA\n";}
+$rowA=mysql_fetch_row($rsltA);
+
+$stmtB="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Εισερχόμενα_IVR_FILTER' and comment_b='NOT_FOUND';";
+$rsltB=mysql_query($stmtB, $link);
+if ($DB) {echo "$stmtB\n";}
+$rowB=mysql_fetch_row($rsltB);
+
+$stmtC="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Εισερχόμενα_IVR_FILTER' and comment_b='EXISTING' and comment_c='DNC';";
+$rsltC=mysql_query($stmtC, $link);
+if ($DB) {echo "$stmtC\n";}
+$rowC=mysql_fetch_row($rsltC);
+
+$stmtD="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Εισερχόμενα_IVR_FILTER' and comment_b='EXISTING' and comment_c='SALE';";
+$rsltD=mysql_query($stmtD, $link);
+if ($DB) {echo "$stmtD\n";}
+$rowD=mysql_fetch_row($rsltD);
+
+$stmtE="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Εισερχόμενα_IVR_FILTER' and comment_b='EXISTING' and comment_c='ARCHIVE';";
+$rsltE=mysql_query($stmtE, $link);
+if ($DB) {echo "$stmtE\n";}
+$rowE=mysql_fetch_row($rsltE);
+
+
+$total = ($rowA[0] + $rowB[0] + $rowC[0] + $rowD[0] + $rowE[0]);
+$Utotal = ($rowA[1] + $rowB[1] + $rowC[1] + $rowD[1] + $rowE[1]);
+
+$agent =	sprintf("%7s", $rowA[0]);
+$Uagent =	sprintf("%7s", $rowA[1]);
+if ( ($Utotal < 1) or ($rowA[1] < 1) )
+	{$UagentPERCENT = '0';}
+else
+	{$UagentPERCENT = (($rowA[1] / $Utotal) * 100);   $UagentPERCENT = round($UagentPERCENT, 2);}
+$UagentPERCENT =	sprintf("%6s", $UagentPERCENT);
+
+$ntfnd =	sprintf("%7s", $rowB[0]);
+$Untfnd =	sprintf("%7s", $rowB[1]);
+if ( ($Utotal < 1) or ($rowB[1] < 1) )
+	{$UntfndPERCENT = '0';}
+else
+	{$UntfndPERCENT = (($rowB[1] / $Utotal) * 100);   $UntfndPERCENT = round($UntfndPERCENT, 2);}
+$UntfndPERCENT =	sprintf("%6s", $UntfndPERCENT);
+
+$prdnc =	sprintf("%7s", $rowC[0]);
+$Uprdnc =	sprintf("%7s", $rowC[1]);
+if ( ($Utotal < 1) or ($rowC[1] < 1) )
+	{$UprdncPERCENT = '0';}
+else
+	{$UprdncPERCENT = (($rowC[1] / $Utotal) * 100);   $UprdncPERCENT = round($UprdncPERCENT, 2);}
+$UprdncPERCENT =	sprintf("%6s", $UprdncPERCENT);
+
+$psale =	sprintf("%7s", $rowD[0]);
+$Upsale =	sprintf("%7s", $rowD[1]);
+if ( ($Utotal < 1) or ($rowD[1] < 1) )
+	{$UpsalePERCENT = '0';}
+else
+	{$UpsalePERCENT = (($rowD[1] / $Utotal) * 100);   $UpsalePERCENT = round($UpsalePERCENT, 2);}
+$UpsalePERCENT =	sprintf("%6s", $UpsalePERCENT);
+
+$archv =	sprintf("%7s", $rowE[0]);
+$Uarchv =	sprintf("%7s", $rowE[1]);
+if ( ($Utotal < 1) or ($rowE[1] < 1) )
+	{$UarchvPERCENT = '0';}
+else
+	{$UarchvPERCENT = (($rowE[1] / $Utotal) * 100);   $UarchvPERCENT = round($UarchvPERCENT, 2);}
+$UarchvPERCENT =	sprintf("%6s", $UarchvPERCENT);
+
+$total =	sprintf("%7s", $total);
+$Utotal =	sprintf("%7s", $Utotal);
+
+
+echo "| CALL SENT TO ΧΕΙΡΙΣΤΗΣ  | $agent | $Uagent | $UagentPERCENT% |\n";
+echo "| CALLERID NOT FOUND   | $ntfnd | $Untfnd | $UntfndPERCENT% |\n";
+echo "| PREVIOUS DNC         | $prdnc | $Uprdnc | $UprdncPERCENT% |\n";
+echo "| PREVIOUS SALE        | $psale | $Upsale | $UpsalePERCENT% |\n";
+echo "| ARCHIVE ONLY         | $archv | $Uarchv | $UarchvPERCENT% |\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "|               TOTALS:| $total | $Utotal |\n";
+echo "+----------------------+---------+---------+\n";
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_IVRstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_IVRstats.php new file mode 100644 index 00000000..5abf350b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_IVRstats.php @@ -0,0 +1,683 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81026-2026 - First build +# 81107-0341 - Added time range and option and 15-minute increment graph +# 81107-1148 - Added average times and totals +# 81108-0922 - Added no-callerID and unique caller counts +# 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "IVR Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Χρονικό διάστημα:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Εισερχόμενες Ομάδες: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ΤΡΟΠΟΠΟΙΗΣΗ | "; +echo "ΑΝΑΦΟΡΕΣ | "; +echo "ΑΝΑΦΟΡΑ CLOSER \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "Επιλέξτε μια Ενδοομιλικών ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ άνω ΚΛΙΚ ΚΑΙ ΑΠΟΣΤΟΛΗ\n";
+	}
+
+else
+	{
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
+
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
+
+	##### Grab all records for the IVR for the specified time period
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
+		}
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
+		{
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
+		else
+			{
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			}
+		$p++;
+		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣINTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
+	else
+		{
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
+		}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- ΣΤΑΤ.ΧΡΟΝ.\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
+		}
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
+		{
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
+	}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_OUTBOUNDsummary_interval.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +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; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_VDADstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_VDADstats.php new file mode 100644 index 00000000..d562e759 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_VDADstats.php @@ -0,0 +1,1412 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 60619-1718 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 61215-1139 - Added drop percentage of answered and round-2 decimal +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80620-0031 - Fixed human answered calculation for drop perfentage +# 80709-0230 - Added time stats to call statuses +# 80717-2118 - Added calls/hour out of agent login time in status summary +# 80722-2049 - Added Status Category stats +# 81109-2341 - Added Productivity Rating +# 90225-1140 - Changed to multi-campaign capability +# 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} + $i++; + } + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +?> + + + + + +\n"; +echo "Outbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Ημερομηνίες:
"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Εκστρατείες:
"; +echo "\n"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($group[0]) > 1) + { + echo " ΤΡΟΠΟΠΟΙΗΣΗ | \n"; + echo " ΑΝΑΦΟΡΕΣ \n"; + } +else + { + echo " CAMPAIGNS | \n"; + echo " ΑΝΑΦΟΡΕΣ \n"; + } +echo "
"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n\n";
+	echo "ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΜΙΑ ΕΚΣΤΡΑΤΕΙΑ ΚΑΙ ΜΙΑ ΗΜΕΡΟΜΗΝΙΑ ΑΝΩΤΕΡΩ, ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+
+	$OUToutput = '';
+	$OUToutput .= "Outbound Calling Stats                             $NOW_TIME\n";
+
+	$OUToutput .= "\n";
+	$OUToutput .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+	$OUToutput .= "---------- TOTALS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcallsRAW = $row[0];
+	$TOTALsec =		$row[1];
+	$inTOTALcallsRAW=0;
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$TOTALdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inTOTALcallsRAW =	$y;
+		$TOTALsec = ($TOTALsec + $inTOTALsec);
+		$inTOTALcalls =	sprintf("%10s", $inTOTALcallsRAW);
+		}
+
+	$TOTALcalls =	sprintf("%10s", $TOTALcallsRAW);
+	if ( ($row[0] < 1) or ($TOTALsec < 1) )
+		{$average_call_seconds = '         0';}
+	else
+		{
+		$average_call_seconds = ($TOTALsec / $TOTALcallsRAW);
+		$average_call_seconds = round($average_call_seconds, 2);
+		$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+		}
+
+	$OUToutput .= "Συνολικά κλήσεις που τοποθετήθηκαν από την Εκστρατεία: $TOTALcalls\n";
+	$OUToutput .= "Μέσος όρος σε δευτερόλεπτα για όλες τις κλήσεις: $average_call_seconds\n";
+	if (eregi("YES",$include_rollover))
+		{$OUToutput .= "Calls that went to rollover In-Ομάδα:        $inTOTALcalls\n";}
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ΑΝΘΡΩΠΙΝΗ ΑΠΑΝΤΗΣΗS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN($customer_interactive_statuses) $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$CIcallsRAW =	$row[0];
+	$CIsec =		$row[1];
+
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and vicidial_closer_log.status IN($customer_interactive_statuses) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$CIdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inCIsec =	($inCIsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inCIcallsRAW =	$y;
+		$CIsec = ($CIsec + $inCIsec);
+		$CIcallsRAW = ($CIcallsRAW + $inCIcallsRAW);
+		}
+
+	$CIcalls =	sprintf("%10s", $CIcallsRAW);
+	if ( ($CIcallsRAW < 1) or ($CIsec < 1) )
+		{$average_ci_seconds = '         0';}
+	else
+		{
+		$average_ci_seconds = ($CIsec / $CIcallsRAW);
+		$average_ci_seconds = round($average_ci_seconds, 2);
+		$average_ci_seconds =	sprintf("%10s", $average_ci_seconds);
+		}
+	$CIsec =		sec_convert($CIsec,'H'); 
+
+
+	$OUToutput .= "Total Ανθρώπινα Απάντησηed calls for this Εκστρατεία: $CIcalls\n";
+	$OUToutput .= "Average Call Length for all HA in seconds:    $average_ci_seconds     Total Time: $CIsec\n";
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ΕΓΚΑΤΑΛ\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status='DROP' and (length_in_sec <= 6000 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$DROPcalls =	sprintf("%10s", $row[0]);
+	$DROPcallsRAW =	$row[0];
+	$DROPseconds =	$row[1];
+
+
+	# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+	$q=0;
+	$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+
+	$stmt = "SELECT distinct status,status_name,human_answered,category from vicidial_campaign_statuses $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+	$camp_ANS_STAT_SQL = eregi_replace(",$",'',$camp_ANS_STAT_SQL);
+
+
+	$stmt="select count(*) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN($camp_ANS_STAT_SQL);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$ΑΠΑΝΤΗΣΗcalls =	$row[0];
+
+	if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+		{$DROPpercent = '0';}
+	else
+		{
+		$DROPpercent = (($DROPcallsRAW / $TOTALcalls) * 100);
+		$DROPpercent = round($DROPpercent, 2);
+		}
+
+	if ( ($DROPcalls < 1) or ($ΑΠΑΝΤΗΣΗcalls < 1) )
+		{$DROPΑΠΑΝΤΗΣΗpercent = '0';}
+	else
+		{
+		$DROPΑΠΑΝΤΗΣΗpercent = (($DROPcallsRAW / $ΑΠΑΝΤΗΣΗcalls) * 100);
+		$DROPΑΠΑΝΤΗΣΗpercent = round($DROPΑΠΑΝΤΗΣΗpercent, 2);
+		}
+
+	if ( ($DROPseconds < 1) or ($DROPcallsRAW < 1) )
+		{$average_hold_seconds = '         0';}
+	else
+		{
+		$average_hold_seconds = ($DROPseconds / $DROPcallsRAW);
+		$average_hold_seconds = round($average_hold_seconds, 2);
+		$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+		}
+
+	$OUToutput .= "Total Outbound DROP Calls:                    $DROPcalls  $DROPpercent%\n";
+	$OUToutput .= "Percent of DROP Calls taken out of Answers:   $DROPcalls / $ΑΠΑΝΤΗΣΗcalls  $DROPΑΠΑΝΤΗΣΗpercent%\n";
+
+	if (eregi("YES",$include_rollover))
+		{
+		if ( ($DROPcalls < 1) or ($CIcallsRAW < 1) )
+			{$inDROPΑΠΑΝΤΗΣΗpercent = '0';}
+		else
+			{
+			$inDROPΑΠΑΝΤΗΣΗpercent = (($DROPcallsRAW / $CIcallsRAW) * 100);
+			$inDROPΑΠΑΝΤΗΣΗpercent = round($inDROPΑΠΑΝΤΗΣΗpercent, 2);
+			}
+
+		$OUToutput .= "Percent of DROP/Answer Calls with Rollover:   $DROPcalls / $CIcallsRAW  $inDROPΑΠΑΝΤΗΣΗpercent%\n";
+		}
+
+	$OUToutput .= "Μέσος όρος σε δευτερόλεπτα για ΕΓΚΑΤΑΕΙΜΕΝΕΣ κλήσεις: $average_hold_seconds\n";
+
+	$stmt = "select closer_campaigns from vicidial_campaigns $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	$ccamps_to_print = mysql_num_rows($rslt);
+	$c=0;
+	while ($ccamps_to_print > $c)
+		{
+		$row=mysql_fetch_row($rslt);
+		$closer_campaigns = $row[0];
+		$closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns);
+		$closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
+		$closer_campaignsSQL .= "'$closer_campaigns',";
+		$c++;
+		}
+	$closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL);
+
+	$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($closer_campaignsSQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$TOTALanswers = ($row[0] + $ΑΠΑΝΤΗΣΗcalls);
+
+
+	$stmt = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$agent_non_pause_sec = $row[0];
+
+	if ($agent_non_pause_sec > 0)
+		{
+		$AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = (($TOTALanswers / $agent_non_pause_sec) * 60);
+		$AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = round($AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec, 2);
+		}
+	else
+		{$AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec=0;}
+	$AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = sprintf("%10s", $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec);
+
+	$OUToutput .= "Productivity Rating:                          $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec\n";
+
+
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ΜΗ ΑΠΑΝΤ ΑΥΤ ΚΛΗΣΕΙΣ\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN('NA','B') and (length_in_sec <= 60 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$NAcalls =	sprintf("%10s", $row[0]);
+	if ( ($NAcalls < 1) or ($TOTALcalls < 1) )
+		{$NApercent = '0';}
+	else
+		{
+		$NApercent = (($NAcalls / $TOTALcalls) * 100);
+		$NApercent = round($NApercent, 2);
+		}
+
+	if ( ($row[0] < 1) or ($row[1] < 1) )
+		{$average_na_seconds = '         0';}
+	else
+		{
+		$average_na_seconds = ($row[1] / $row[0]);
+		$average_na_seconds = round($average_na_seconds, 2);
+		$average_na_seconds =	sprintf("%10s", $average_na_seconds);
+		}
+
+	$OUToutput .= "Total NA calls -Busy,Disconnect,RingNoAnswer: $NAcalls  $NApercent%\n";
+	$OUToutput .= "Μέσος όρος σε δευτερόλεπτα για ΝΑ κλήσεις: $average_na_seconds\n";
+
+
+	##############################
+	#########  CALL HANGUP REASON STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CALL HANGUP REASON STATS\n";
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| HANGUP REASON        | CALLS      |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+	$stmt="select count(*),term_reason from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by term_reason;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$reasons_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $reasons_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$TOTALcalls = ($TOTALcalls + $row[0]);
+
+		$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+		$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+		if (ereg("NONE",$reason))	{$reason = 'NO ΑΠΑΝΤΗΣΗ           ';}
+		if (ereg("CALLER",$reason)) {$reason = 'CUSTOMER            ';}
+
+		$OUToutput .= "| $reason | $REASONcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| TOTAL:               | $TOTALcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+
+
+	##############################
+	#########  CALL STATUS STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CALL STATUS STATS\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+----------------------------------+----------+\n";
+	$OUToutput .= "|        |                      |                      |            |      CALL TIME                   |ΧΕΙΡΙΣΤΗΣTIME|\n";
+	$OUToutput .= "| STATUS | DESCRIPTION          | ΚΑΤΗΓΟΡΙΑ             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|CALLS/HOUR|\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+
+	$campaignSQL = "$group_SQLand";
+	if (eregi("YES",$include_rollover))
+		{$campaignSQL = "$both_group_SQLand";}
+	## Pull the count of agent seconds for the total tally
+	$stmt="SELECT sum(pause_sec + wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $campaignSQL and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000;";
+	$rslt=mysql_query($stmt, $link);
+	$Ctally_to_print = mysql_num_rows($rslt);
+	if ($Ctally_to_print > 0) 
+		{
+		$rowx=mysql_fetch_row($rslt);
+		$AGENTsec = "$rowx[0]";
+		}
+	if ($DB) {$OUToutput .= "$AGENTsec|$Ctally_to_print|$stmt\n";}
+
+
+	## get counts and time totals for all statuses in this campaign
+	$rollover_exclude_dropSQL='';
+	if (eregi("YES",$include_rollover))
+		{$rollover_exclude_dropSQL = "and status NOT IN('DROP')";}
+	$stmt="select count(*),status,sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $rollover_exclude_dropSQL $group_SQLand group by status;";
+
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$STATUScountARY[$i] =	$row[0];
+		$RAWstatusARY[$i] =		$row[1];
+		$RAWhoursARY[$i] =		$row[2];
+		$statusSQL .=			"'$row[1]',";
+		$i++;
+		}
+	if (eregi("YES",$include_rollover))
+		{
+		if (strlen($statusSQL) < 2)
+			{$statusSQL = "''";}
+		else
+			{
+			$statusSQL = eregi_replace(",$",'',$statusSQL);
+			}
+		$stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status NOT IN($statusSQL) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		$inS_statuses_to_print = mysql_num_rows($rslt);
+		$n=0;
+		while ($inS_statuses_to_print > $n) 
+			{
+			$rowx=mysql_fetch_row($rslt);
+			$STATUScountARY[$i] =	0;
+			$RAWstatusARY[$i] =		$rowx[0];
+			$RAWhoursARY[$i] =		0;
+			$i++;
+			$n++;
+			$statuses_to_print++;
+			}
+		}
+
+
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$STATUScount = $STATUScountARY[$i];
+		$RAWstatus = $RAWstatusARY[$i];
+		$RAWhours = $RAWhoursARY[$i];
+
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status='$RAWstatus' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			$in_statuses_to_print = mysql_num_rows($rslt);
+			if ($in_statuses_to_print > 0) 
+				{
+				$rowx=mysql_fetch_row($rslt);
+				$inSTATUScount =	$rowx[0];
+				$inRAWhours =		$rowx[1];
+
+				$STATUScount = ($STATUScount + $inSTATUScount);
+				$RAWhours = ($RAWhours + $inRAWhours);
+				}
+			}
+
+		$r=0;
+		while ($r < $statcats_to_print)
+			{
+			if ($statcat_list[$RAWstatus] == "$vsc_id[$r]")
+				{
+				$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+				}
+			$r++;
+			}
+		if ($AGENTsec < 1) {$AGENTsec=1;}
+		$TOTALcalls =	($TOTALcalls + $STATUScount);
+		$TOTALtimeS =	($TOTALtimeS + $RAWhours);
+		$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );
+			$STATUSrate =	sprintf("%.2f", $STATUSrate);
+		$AGENTrate =	($STATUScount / ($AGENTsec / 3600) );
+			$AGENTrate =	sprintf("%.2f", $AGENTrate);
+
+		$STATUShours =		sec_convert($RAWhours,'H'); 
+		$STATUSavg_sec =	($RAWhours / $STATUScount); 
+		$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+		$STATUScount =	sprintf("%10s", $STATUScount);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+		$status =	sprintf("%-6s", $RAWstatus);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+		$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+		$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+		$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+		$AGENTrate =	sprintf("%8s", $AGENTrate);while(strlen($AGENTrate)>8) {$AGENTrate = substr("$AGENTrate", 0, -1);}
+
+		if ($non_latin < 1)
+			{
+			$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+			while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+			$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+			while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+			}
+		else
+			{
+			$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+			while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+			$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+			while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+			}
+
+		$OUToutput .= "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate | $AGENTrate |\n";
+
+		$i++;
+		}
+
+	if ($TOTALcalls < 1)
+		{
+		$TOTALhours =	'0:00:00';
+		$TOTALavg =		'0:00:00';
+		$TOTALrate =	'0.00';
+		}
+	else
+		{
+		$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );
+			$TOTALrate =	sprintf("%.2f", $TOTALrate);
+		$aTOTALrate =	($TOTALcalls / ($AGENTsec / 3600) );
+			$aTOTALrate =	sprintf("%.2f", $aTOTALrate);
+
+		$aTOTALhours =		sec_convert($AGENTsec,'H'); 
+		$TOTALhours =		sec_convert($TOTALtimeS,'H'); 
+		$TOTALavg_sec =		($TOTALtimeS / $TOTALcalls);
+		$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+		}
+	$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+	$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+	$aTOTALhours =	sprintf("%10s", $aTOTALhours);while(strlen($aTOTALhours)>10) {$aTOTALhours = substr("$aTOTALhours", 0, -1);}
+	$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+	$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+	$aTOTALrate =	sprintf("%8s", $aTOTALrate);while(strlen($aTOTALrate)>8) {$aTOTALrate = substr("$aTOTALrate", 0, -1);}
+
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+	$OUToutput .= "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |          |\n";
+#	$OUToutput .= "|   AGENT TIME                                                      | $aTOTALhours |                     | $aTOTALrate |\n";
+	$OUToutput .= "+------------------------------------------------------+------------+------------+---------------------+----------+\n";
+
+
+
+
+
+	##############################
+	#########  ID ΛΙΣΤΑΣ BREAKDOWN STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ID ΛΙΣΤΑΣ STATS\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| LIST                                     | CALLS      |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+	$stmt="select count(*),list_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by list_id;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$listids_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$LISTIDcalls[$i] =	$row[0];
+		$LISTIDlists[$i] =	$row[1];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$stmt="select list_name from vicidial_lists where list_id='$LISTIDlists[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$list_name_to_print = mysql_num_rows($rslt);
+		if ($list_name_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$LISTIDlist_names[$i] =	$row[0];
+			}
+
+		$TOTALcalls = ($TOTALcalls + $LISTIDcalls[$i]);
+
+		$LISTIDcount =	sprintf("%10s", $LISTIDcalls[$i]);while(strlen($LISTIDcount)>10) {$LISTIDcount = substr("$LISTIDcount", 0, -1);}
+		$LISTIDname =	sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
+
+		$OUToutput .= "| $LISTIDname | $LISTIDcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| TOTAL:                                   | $TOTALcalls |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+
+
+
+
+	if ( ($carrier_logging_active > 0) and ($carrier_stats == 'YES') )
+		{
+		##############################
+		#########  STATUS ΚΑΤΗΓΟΡΙΑ STATS
+
+		$OUToutput .= "\n";
+		$OUToutput .= "---------- CARRIER CALL STATUSES\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| STATUS               | CALLS      |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+
+		## get counts and time totals for all statuses in this campaign
+		$stmt="select dialstatus,count(*) from vicidial_carrier_log vcl,vicidial_log vl where vcl.uniqueid=vl.uniqueid and vcl.call_date > \"$query_date_BEGIN\" and vcl.call_date < \"$query_date_END\" and vl.call_date > \"$query_date_BEGIN\" and vl.call_date < \"$query_date_END\" $group_SQLand group by dialstatus order by dialstatus;";
+		if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$carrierstatuses_to_print = mysql_num_rows($rslt);
+		$i=0;
+		while ($i < $carrierstatuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$TOTCARcalls = ($TOTCARcalls + $row[1]);
+			$CARstatus =	sprintf("%-20s", $row[0]); while(strlen($CARstatus)>20) {$CARstatus = substr("$CARstatus", 0, -1);}
+			$CARcount =		sprintf("%10s", $row[1]); while(strlen($CARcount)>10) {$CARcount = substr("$CARcount", 0, -1);}
+
+			$OUToutput .= "| $CARstatus | $CARcount |\n";
+
+			$i++;
+			}
+
+		$TOTCARcalls =	sprintf("%10s", $TOTCARcalls); while(strlen($TOTCARcalls)>10) {$TOTCARcalls = substr("$TOTCARcalls", 0, -1);}
+
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| TOTAL                | $TOTCARcalls |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		}
+
+
+	##############################
+	#########  STATUS ΚΑΤΗΓΟΡΙΑ STATS
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CUSTOM STATUS ΚΑΤΗΓΟΡΙΑ STATS\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| ΚΑΤΗΓΟΡΙΑ             | CALLS      | DESCRIPTION                    |\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+
+
+	$TOTCATcalls=0;
+	$r=0;
+	while ($r < $statcats_to_print)
+		{
+		if ($vsc_id[$r] != 'UNDEFINED')
+			{
+			$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+			$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+			$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+			$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+			$OUToutput .= "| $category | $CATcount | $CATname |\n";
+			}
+		$r++;
+		}
+
+	$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| TOTAL                | $TOTCATcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+	##############################
+	#########  USER STATS
+
+	$TOTagents=0;
+	$TOTcalls=0;
+	$TOTtime=0;
+	$TOTavg=0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ΧΕΙΡΙΣΤΗΣSTATS\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| ΧΕΙΡΙΣΤΗΣ                   | CALLS      | TIME H:M:S |AVERAGE |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\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_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$RAWuser[$i] =			$row[0];
+		$RAWfull_name[$i] =		$row[1];
+		$RAWuser_calls[$i] =	$row[2];
+		$RAWuser_talk[$i] =		$row[3];
+		$RAWuser_average[$i] =	$row[4];
+
+		$TOTcalls = ($TOTcalls + $row[2]);
+		$TOTtime = ($TOTtime + $row[3]);
+
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$user =	sprintf("%-6s", $RAWuser[$i]);while(strlen($user)>6) {$user = substr("$user", 0, -1);}
+		if ($non_latin < 1)
+			{
+			$full_name =	sprintf("%-15s", $RAWfull_name[$i]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+			}
+		else
+			{
+			$full_name =	sprintf("%-45s", $RAWfull_name[$i]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$length_in_secZ=0;
+			$queue_secondsZ=0;
+			$agent_alert_delayZ=0;
+			$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and user='$RAWuser[$i]' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_printZ = mysql_num_rows($rslt);
+			$y=0;
+			while ($y < $INallcalls_to_printZ)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				$length_in_secZ = $row[0];
+				$queue_secondsZ = $row[1];
+				$agent_alert_delayZ = $row[2];
+
+				$CIdelay =		round($agent_alert_delayZ / 1000);
+				$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+				if ($thiscallsec < 0)
+					{$thiscallsec = 0;}
+				$inCIsec =	($inCIsec + $thiscallsec);	
+
+				$y++;
+				}
+
+			$inCIcallsRAW =	$y;
+			$RAWuser_talk[$i] = ($RAWuser_talk[$i] + $inCIsec);
+			$RAWuser_calls[$i] = ($RAWuser_calls[$i] + $inCIcallsRAW);
+
+			$TOTcalls = ($TOTcalls + $inCIcallsRAW);
+			$TOTtime = ($TOTtime + $inCIsec);
+			}
+
+		$USERcalls =	sprintf("%10s", $RAWuser_calls[$i]);
+		$USERtotTALK =	$RAWuser_talk[$i];
+		$USERavgTALK =	round($RAWuser_talk[$i] / $RAWuser_calls[$i]);
+
+		$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+		$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+		$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+		$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+		$OUToutput .= "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+		$i++;
+		}
+
+	$rawTOTtime = $TOTtime;
+
+	if (!$TOTcalls) {$TOTcalls = 1;}
+	$TOTavg = ($TOTtime / $TOTcalls);
+
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+	$TOTagents =		sprintf("%10s", $i);
+	$TOTcalls =			sprintf("%10s", $TOTcalls);
+	$TOTtime =			sprintf("%8s", $TOTtime);
+	$TOTavg =			sprintf("%6s", $TOTavg);
+
+	$stmt="select avg(wait_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$AVGwait = $row[0];
+	$AVGwait_MS =	sec_convert($AVGwait,'H'); 
+	$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| TOTAL Πράκτορες: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| Average Wait time between calls                      $AVGwait |\n";
+	$OUToutput .= "+-------------------------------------------------------------+\n";
+
+
+
+	if ($costformat > 0)
+		{
+		$stmt="select campaign_id,phone_number,length_in_sec from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user=vicidial_users.user;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$allcalls_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $allcalls_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			if ($print_calls > 0)
+				{echo "$row[0]\t$row[1]\t$row[2]\n";}
+			$tempTALK = ($tempTALK + $row[2]);
+			$w++;
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select campaign_id,phone_number,length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_print = mysql_num_rows($rslt);
+			$w=0;
+			while ($w < $INallcalls_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				if ($print_calls > 0)
+				{	echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\n";}
+				$newTALK = ($row[2] - $row[3] - ($row[4] / 1000) );
+				if ($newTALK < 0) {$newTALK = 0;}
+				$tempTALK = ($tempTALK + $newTALK);
+				$w++;
+				}
+			}
+		$tempTALKmin = ($tempTALK  / 60);
+		if ($print_calls > 0)
+			{echo "$w\t$tempTALK\t$tempTALKmin\n";}
+
+		echo "
\n"; + $rawTOTtalk_min = round($tempTALK / 60); + $outbound_cost = ($rawTOTtalk_min * $outbound_rate); + $outbound_cost = sprintf("%8.2f", $outbound_cost); + + echo "ΕΞΕΡΧΟΜΕΝΟ $query_date to $end_date,   $rawTOTtalk_min minutes at \$$outbound_rate = \$$outbound_cost\n"; + + exit; + } + + + echo "$OUToutput"; + + + + + if ($bottom_graph == 'YES') + { + ############################## + ######### TIME STATS + + echo "\n"; + echo "---------- ΣΤΑΤ.ΧΡΟΝ.\n"; + + echo "\n"; + + $hi_hour_count=0; + $last_full_record=0; + $i=0; + $h=0; + 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' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + $h++; + } + + if ($hi_hour_count < 1) + {$hour_multiplier = 0;} + else + { + $hour_multiplier = (100 / $hi_hour_count); + #$hour_multiplier = round($hour_multiplier, 0); + } + + echo "\n"; + echo "ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ ΠΟΥ ΤΟΠΟΘΕΤΟΥΝΤΑΙ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ\n"; + + $k=1; + $Mk=0; + $call_scale = '0'; + while ($k <= 102) + { + if ($Mk >= 5) + { + $Mk=0; + if ( ($k < 1) or ($hour_multiplier <= 0) ) + {$scale_num = 100;} + else + { + $scale_num=($k / $hour_multiplier); + $scale_num = round($scale_num, 0); + } + $LENscale_num = (strlen($scale_num)); + $k = ($k + $LENscale_num); + $call_scale .= "$scale_num"; + } + else + { + $call_scale .= " "; + $k++; $Mk++; + } + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + #echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | DROPS | TOTAL |\n"; + echo "| HOUR |$call_scale| DROPS | TOTAL |\n"; + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + $ZZ = '00'; + $i=0; + $h=4; + $hour= -1; + $no_lines_yet=1; + + while ($i <= 96) + { + $char_counter=0; + $time = ' '; + if ($h >= 4) + { + $hour++; + $h=0; + if ($hour < 10) {$hour = "0$hour";} + $time = "+$hour$ZZ+"; + } + if ($h == 1) {$time = " 15 ";} + if ($h == 2) {$time = " 30 ";} + if ($h == 3) {$time = " 45 ";} + $Ghour_count = $hour_count[$i]; + if ($Ghour_count < 1) + { + if ( ($no_lines_yet) or ($i > $last_full_record) ) + { + $do_nothing=1; + } + else + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + echo "|$time|"; + $k=0; while ($k <= 102) {echo " "; $k++;} + echo "| $hour_count[$i] |\n"; + } + } + else + { + $no_lines_yet=0; + $Xhour_count = ($Ghour_count * $hour_multiplier); + $Yhour_count = (99 - $Xhour_count); + + $Gdrop_count = $drop_count[$i]; + if ($Gdrop_count < 1) + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;} + echo "*X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 101) {echo " "; $char_counter++;} + echo "| 0 | $hour_count[$i] |\n"; + + } + else + { + $Xdrop_count = ($Gdrop_count * $hour_multiplier); + + # if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);} + + $XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 ); + + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + $drop_count[$i] = sprintf("%-5s", $drop_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xdrop_count) {echo ">"; $k++; $char_counter++;} + echo "D"; $char_counter++; + $k=0; while ($k <= $XXhour_count) {echo "*"; $k++; $char_counter++;} + echo "X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 102) {echo " "; $char_counter++;} + echo "| $drop_count[$i] | $hour_count[$i] |\n"; + } + } + + + $i++; + $h++; + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + ### END bottom graph + } + + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\nRun Time: $RUNtime seconds\n"; + } + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_VICIDIAL_hopperlist.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_VICIDIAL_hopperlist.php new file mode 100644 index 00000000..0b39b286 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_VICIDIAL_hopperlist.php @@ -0,0 +1,167 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1654 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70115-1614 - Added ALT field for vicidial_hopper alt_dial column +# 71029-0852 - Added list_id to the output +# 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$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 and view_reports='1' and modify_campaigns='1';"; + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.10.15';} + +$stmt="select campaign_id,campaign_name from vicidial_campaigns order by campaign_id;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $campaign_id[$i] =$row[0]; + $campaign_name[$i] =$row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Λίστα Hopper Report\n"; +echo "
\n"; +#echo "\n"; +#echo "\n"; +echo "\n"; +echo "\n"; +echo "           ΤΡΟΠΟΠΟΙΗΣΗ \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΜΙΑ ΕΚΣΤΡΑΤΕΙΑ ΑΝΩΤΕΡΩ ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ\n";
+	}
+
+else
+	{
+	echo "Ενεργή Λίστα στον Hopper                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALS\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Αριθμός οδηγών στον hopper τώρα::       $TOTALcalls\n";
+
+
+	##############################
+	#########  LEAD STATS
+
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ| LEAD ID   | ID ΛΙΣΤΑΣ    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
+
+
+?>
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_admin_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_admin_log_display.php new file mode 100644 index 00000000..923954a8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_admin_log_display.php @@ -0,0 +1,118 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$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_admin_log_display.php +# +# CHANGES +# 50325-0932 - First build +# 51123-1443 - removed globals=on requirement +# 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'; +$build = '60620-1044'; + +$STARTtime = date("U"); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 8 and view_reports='1';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "ΔΙΑΧΕΙΡΙΣΗ LOG DISPLAY"; +echo "\n"; + +# Fri, 25 Mar 2005 + +$DAY_DATE = date("j"); +if ($DAY_DATE < 10) +# {$GREP_DATE = date("D, j M Y");} + {$GREP_DATE = date("D, 0j M Y");} +else + {$GREP_DATE = date("D, j M Y");} + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!$query_date) {$query_date = $GREP_DATE;} + +$Gquery_date = eregi_replace(" ",'\ ',$query_date); +echo "\n"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+echo "ΔΙΑΧΕΙΡΙΣΗ CHANGE LOG                             $NOW_TIME\n";
+
+#passthru("grep $Gquery_date /home/www/htdocs/vicidial/admin_changes_log.txt");
+passthru("grep $Gquery_date $WeBServeRRooT/vicidial/admin_changes_log.txt");
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_days_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_days_detail.php new file mode 100644 index 00000000..c43f6389 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_days_detail.php @@ -0,0 +1,602 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-2202 - First build +# 90225-1051 - Added CSV download option +# 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&shift=$shift&DB=$DB&user=$user$groupQS"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Ημέρες Status Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n";
+	echo "ΠΑΡΑΚΑΛΟΥΜΕ ΕΠΙΛΕΞΤΕ ΧΡΗΣΤΗ ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ-ΩΡΑ ΚΑΙ ΑΝΩ ΚΛΙΚ ΕΠΙΒΕΒΑΙΩΣΗ\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Ημέρες Status Report: $user                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- ΧΕΙΡΙΣΤΗΣΛεπτομέρειεςs -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Ημέρες Status Report: $user                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$dates='-';
+	$datesARY[0]='';
+	$date_namesARY[0]='';
+	$k=0;
+
+	$stmt="select date_format(event_time, '%Y-%m-%d') as date,count(*) as calls,status 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 vicidial_agent_log.user='$user' $group_SQL $user_group_SQL group by date,status order by date,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[1] > 0) and (strlen($row[2]) > 0) )
+			{
+			$date[$i] =			$row[0];
+			$calls[$i] =		$row[1];
+			$status[$i] =		$row[2];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$date[$i]-", $dates))
+				{
+				$dates .= "$date[$i]-";
+				$datesARY[$k] = $date[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| DATE       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "DATE,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Sdate=$datesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+	#			if ( (eregi("$date[$i]", $Sdate)) and ($Sstatus=="$status[$i]") )
+				if ( ($Sdate=="$date[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWdate = $Sdate;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		$Sdate =		sprintf("%-10s", $Sdate);
+			while(strlen($Suser)>10) {$Suser = substr("$Sdate", 0, -1);}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sdate | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWdate,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdate) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			{
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+			}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+
+	if ($file_download < 1)
+		{
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| TOTALS     | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + + +if ($file_download > 0) + { + $US='_'; + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_DAYS_$user$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + + + +echo "
\n"; +echo "
Ημερομηνίες:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Εκστρατείες:
"; +echo "\n"; +echo "
Χρήστης:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($user) > 1) + { + echo " ΛΗΨΗ | \n"; + echo " USER | \n"; + echo " USER STATS | \n"; + } +else + {echo " ΧΡΗΣΤΕΣ | \n";} +echo "ΑΝΑΦΟΡΕΣ \n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "              \n";}
+	else
+		{
+		echo "              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 120 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_performance.php
new file mode 100644
index 00000000..071c65c4
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_performance.php
@@ -0,0 +1,258 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1711 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars
+# 90508-0644 - Changed to PHP long tags
+#
+
+require("dbconnect.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["group"]))				{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))		{$group=$_POST["group"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))		{$query_date=$_POST["query_date"];}
+if (isset($_GET["shift"]))				{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))		{$shift=$_POST["shift"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"]))				{$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];}
+	elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"]))		{$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];}
+
+$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 and view_reports='1';";
+	if ($DB) {echo "|$stmt|\n";}
+	if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	$row=mysql_fetch_row($rslt);
+	$auth=$row[0];
+
+  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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+?>
+
+
+
+
+
+\n";
+echo "VICIDIAL: Agent Performance\n";
+echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           ΤΡΟΠΟΠΟΙΗΣΗ | ΑΝΑΦΟΡΕΣ \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A ΔΙΑΚΟΜΙΣΤΗΣ AND DATE-TIME ABOVE AND CLICK ΕΠΙΒΕΒΑΙΩΣΗ\n";
+echo " NOTE: stats taken from 6 hour shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = "$query_date 08:45:00";   
+	$query_date_END = "$query_date 15:33:00";
+	$time_BEGIN = "08:45:00";   
+	$time_END = "15:33:00";
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = "$query_date 15:33:00";   
+	$query_date_END = "$query_date 23:15:00";
+	$time_BEGIN = "15:33:00";   
+	$time_END = "23:15:00";
+	}
+
+echo "VICIDIAL: Agent Performance                             $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Λεπτομέρειεςs -------------\n\n";
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "| USER NAME       | ID       | CALLS  | TALK   | TALKAVG| A    | B    | DC   | DNC  | N    | NI   | SALE |\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='" . mysql_real_escape_string($group) . "' group by full_name order by calls desc limit 1000;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$TOTcalls=($TOTcalls + $row[0]);
+	$TOTtotTALK=($TOTtotTALK + $row[1]);
+	$calls[$i] =	sprintf("%-6s", $row[0]);
+
+	if ($non_latin < 1)
+	{
+   	 $full_name[$i]=	sprintf("%-15s", $row[2]); 
+	 while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}
+
+	 $user[$i] =		sprintf("%-6s", $row[3]);
+        while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+       }
+	else
+	{	
+        $full_name[$i]=	sprintf("%-45s", $row[2]); 
+	 while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}
+
+ 	 $user[$i] =		sprintf("%-18s", $row[3]);
+	 while(mb_strlen($user[$i],'utf-8')>6) {$user[$i] = mb_substr("$user[$i]", 0, -1,'utf-8');}
+	}
+
+	$user[$i] =		sprintf("%-8s", $row[3]);
+	$USERtotTALK =	$row[1];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_M = ($USERtotTALK / 60);
+	$USERtotTALK_M = round($USERtotTALK_M, 2);
+	$USERtotTALK_M_int = intval("$USERtotTALK_M");
+	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
+	$USERtotTALK_S = ($USERtotTALK_S * 60);
+	$USERtotTALK_S = round($USERtotTALK_S, 0);
+	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
+	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
+	$pfUSERtotTALK_MS[$i] =		sprintf("%6s", $USERtotTALK_MS);
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$pfUSERavgTALK_MS[$i] =		sprintf("%6s", $USERavgTALK_MS);
+	$i++;
+	}
+
+$k=0;
+while($k < $i)
+	{
+	$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='" . mysql_real_escape_string($group) . "' group by status;";
+	if ($non_latin > 0)
+	{
+	$rslt=mysql_query("SET NAMES 'UTF8'");
+	}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$m=0;
+	while ($m < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($row[1] == 'A') {$ctA[$k]=sprintf("%-4s", $row[0]);		$TOT_A = ($TOT_A + $row[0]);}
+		if ($row[1] == 'B') {$ctB[$k]=sprintf("%-4s", $row[0]);		$TOT_B = ($TOT_B + $row[0]);}
+		if ($row[1] == 'DC') {$ctDC[$k]=sprintf("%-4s", $row[0]);	$TOT_DC = ($TOT_DC + $row[0]);}
+		if ($row[1] == 'DNC') {$ctDNC[$k]=sprintf("%-4s", $row[0]);	$TOT_DNC = ($TOT_DNC + $row[0]);}
+		if ($row[1] == 'N') {$ctN[$k]=sprintf("%-4s", $row[0]);		$TOT_N = ($TOT_N + $row[0]);}
+		if ($row[1] == 'NI') {$ctNI[$k]=sprintf("%-4s", $row[0]);	$TOT_NI = ($TOT_NI + $row[0]);}
+		if (($row[1] == 'SALE') || ($row[1] == 'XFER') ) {$ctSALE[$k]=sprintf("%-4s", $row[0]);	$TOT_SALE = ($TOT_SALE + $row[0]);}
+		$m++;
+		}
+	echo "| $full_name[$k] | $user[$k] | $calls[$k] | $pfUSERtotTALK_MS[$k] | $pfUSERavgTALK_MS[$k] | $ctA[$k] | $ctB[$k] | $ctDC[$k] | $ctDNC[$k] | $ctN[$k] | $ctNI[$k] | $ctSALE[$k] |\n";
+
+
+
+	$k++;
+	}
+
+	$TOTcalls =	sprintf("%-7s", $TOTcalls);
+
+	$TOTtotTALK_M = ($TOTtotTALK / 60);
+	$TOTtotTALK_M = round($TOTtotTALK_M, 2);
+	$TOTtotTALK_M_int = intval("$TOTtotTALK_M");
+	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
+	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
+	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
+	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
+	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
+	$TOTtotTALK_MS =		sprintf("%7s", $TOTtotTALK_MS);
+		while(strlen($TOTtotTALK_MS)>7) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+
+	$TOT_A = sprintf("%-5s", $TOT_A);
+	$TOT_B = sprintf("%-5s", $TOT_B);
+	$TOT_DC = sprintf("%-5s", $TOT_DC);
+	$TOT_DNC = sprintf("%-5s", $TOT_DNC);
+	$TOT_N = sprintf("%-5s", $TOT_N);
+	$TOT_NI = sprintf("%-5s", $TOT_NI);
+	$TOT_SALE = sprintf("%-5s", $TOT_SALE);
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "|  TOTALS                    | $TOTcalls| $TOTtotTALK_MS|        | $TOT_A| $TOT_B| $TOT_DC| $TOT_DNC| $TOT_N| $TOT_NI| $TOT_SALE|\n";
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+
+echo "\n";
+
+}
+
+
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_performance_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_performance_detail.php
new file mode 100644
index 00000000..31b72079
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_performance_detail.php
@@ -0,0 +1,822 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 71119-2359 - First build
+# 71121-0144 - Replace existing AST_agent_performance_detail.php script with this one
+#            - Fixed zero division bug
+# 71218-1155 - added end_date for multi-day reports
+# 80428-0144 - UTF8 cleanup
+# 80712-1007 - tally bug fixes and time display change
+# 81030-0346 - Added pause code stats
+# 81030-1924 - Added total non-pause and total logged-in time to pause code section
+# 81108-0716 - fixed user same-name bug
+# 81110-0056 - fixed pause code display bug
+# 90310-2039 - Admin header
+# 90508-0644 - Changed to PHP long tags
+# 90523-0935 - Rewrite of seconds to minutes and hours conversion
+# 90717-1500 - Changed to be multi-campaign, multi-user-group select
+# 90908-1058 - Added DEAD time statistics
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"]))					{$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];}
+	elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"]))		{$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];}
+
+
+if (strlen($shift)<2) {$shift='ALL';}
+
+$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&group=$group&user_group=$user_group&shift=$shift&DB=$DB";
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} +?> + + + + + +\n"; +echo "Agent Performance Λεπτομέρειες\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Ημερομηνίες:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Εκστρατείες:
"; +echo "\n"; +echo "
Ομάδες Χρήστη:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " ΑΝΑΦΟΡΕΣ \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "Επιλέξτε μια καμπάνια ΗΜΕΡΟΜΗΝΙΑ ΚΑΙ ΩΡΑ-ΑΝΩ ΚΑΙ CLICK ΕΠΙΒΕΒΑΙΩΣΗ\n";
+echo " NOTE: stats taken from shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+else {$ugSQL='';}
+
+echo "Agent Performance Λεπτομέρειες                        $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Λεπτομέρειεςs -------------\n\n";
+
+
+
+
+
+$statuses='-';
+$statusesTXT='';
+$statusesHEAD='';
+$statusesHTML='';
+$statusesARY[0]='';
+$j=0;
+$users='-';
+$usersARY[0]='';
+$user_namesARY[0]='';
+$k=0;
+
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_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 pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+#	$row[0] = ($row[0] - 1);	# subtract 1 for login/logout event compensation
+	
+	$calls[$i] =		$row[0];
+	$talk_sec[$i] =		$row[1];
+	$full_name[$i] =	$row[2];
+	$user[$i] =			$row[3];
+	$pause_sec[$i] =	$row[4];
+	$wait_sec[$i] =		$row[5];
+	$dispo_sec[$i] =	$row[6];
+	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
+	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+		{
+		$statusesTXT = sprintf("%8s", $status[$i]);
+		$statusesHEAD .= "----------+";
+		$statusesHTML .= " $statusesTXT |";
+		$statuses .= "$status[$i]-";
+		$statusesARY[$j] = $status[$i];
+		$j++;
+		}
+	if (!eregi("-$user[$i]-", $users))
+		{
+		$users .= "$user[$i]-";
+		$usersARY[$k] = $user[$i];
+		$user_namesARY[$k] = $full_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "CALL STATS BREAKDOWN:\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+while ($m < $k)
+	{
+	$Suser=$usersARY[$m];
+	$Sfull_name=$user_namesARY[$m];
+	$Stime=0;
+	$Scalls=0;
+	$Stalk_sec=0;
+	$Spause_sec=0;
+	$Swait_sec=0;
+	$Sdispo_sec=0;
+	$Sdead_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$Stalk_sec =	($Stalk_sec + $talk_sec[$i]);
+				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
+				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
+				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
+				$SstatusTXT = sprintf("%8s", $calls[$i]);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	$TOTcalls=($TOTcalls + $Scalls);
+	$TOTtime=($TOTtime + $Stime);
+	$TOTtotTALK=($TOTtotTALK + $Stalk_sec);
+	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
+		else {$Stalk_avg=0;}
+	if ( ($Scalls > 0) and ($Spause_sec > 0) ) {$Spause_avg = ($Spause_sec/$Scalls);}
+		else {$Spause_avg=0;}
+	if ( ($Scalls > 0) and ($Swait_sec > 0) ) {$Swait_avg = ($Swait_sec/$Scalls);}
+		else {$Swait_avg=0;}
+	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
+		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
+
+	$RAWuser = $Suser;
+	$RAWcalls = $Scalls;
+	$Scalls =	sprintf("%6s", $Scalls);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{	
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
+
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
+	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
+
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
+
+	$TOPsorted_output[$m] = $Toutput;
+
+	if ($stage == 'ID')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'CALLS')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'TIME')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if (!ereg("ID|TIME|CALLS",$stage))
+		{echo "$Toutput";}
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+if (ereg("ID|TIME|CALLS",$stage))
+	{
+	if (ereg("ID",$stage))
+		{sort($TOPsort, SORT_NUMERIC);}
+	if (ereg("TIME|CALLS",$stage))
+		{rsort($TOPsort, SORT_NUMERIC);}
+
+	$m=0;
+	while ($m < $k)
+		{
+		$sort_split = explode("-----",$TOPsort[$m]);
+		$i = $sort_split[1];
+		$sort_order[$m] = "$i";
+		echo "$TOPsorted_output[$i]";
+		$m++;
+		}
+	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $rows_to_print)
+		{
+		if ($Sstatus=="$status[$i]")
+			{
+			$Scalls =		($Scalls + $calls[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$SUMstatusTXT = sprintf("%8s", $Scalls);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
+
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
+
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
+
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
+
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+
+
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+echo "\n\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$sub_statuses='-';
+$sub_statusesTXT='';
+$sub_statusesHEAD='';
+$sub_statusesHTML='';
+$sub_statusesARY=$MT;
+$j=0;
+$PCusers='-';
+$PCusersARY=$MT;
+$PCuser_namesARY=$MT;
+$k=0;
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + 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 pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$subs_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $subs_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$PCfull_name[$i] =	$row[0];
+	$PCuser[$i] =		$row[1];
+	$PCpause_sec[$i] =	$row[2];
+	$sub_status[$i] =	$row[3];
+	$PCnon_pause_sec[$i] =	$row[4];
+
+#	echo "$sub_status[$i]|$PCpause_sec[$i]\n";
+#	if ( (!eregi("-$sub_status[$i]-", $sub_statuses)) and (strlen($sub_status[$i])>0) )
+	if (!eregi("-$sub_status[$i]-", $sub_statuses))
+		{
+		$sub_statusesTXT = sprintf("%8s", $sub_status[$i]);
+		$sub_statusesHEAD .= "----------+";
+		$sub_statusesHTML .= " $sub_statusesTXT |";
+		$sub_statuses .= "$sub_status[$i]-";
+		$sub_statusesARY[$j] = $sub_status[$i];
+		$j++;
+		}
+	if (!eregi("-$PCuser[$i]-", $PCusers))
+		{
+		$PCusers .= "$PCuser[$i]-";
+		$PCusersARY[$k] = $PCuser[$i];
+		$PCuser_namesARY[$k] = $PCfull_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "PAUSE CODE BREAKDOWN:\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+$Suser_ct = count($usersARY);
+$TOTtotNONPAUSE = 0;
+$TOTtotTOTAL = 0;
+
+while ($m < $k)
+	{
+	$d=0;
+	while ($d < $Suser_ct)
+		{
+		if ($usersARY[$d] === "$PCusersARY[$m]")
+			{$pcPAUSEtotal = $PAUSEtotal[$d];}
+		$d++;
+		}
+	$Suser=$PCusersARY[$m];
+	$Sfull_name=$PCuser_namesARY[$m];
+	$Spause_sec=0;
+	$Snon_pause_sec=0;
+	$Stotal_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$sub_statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $subs_to_print)
+			{
+			if ( ($Suser=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") )
+				{
+				$Spause_sec =	($Spause_sec + $PCpause_sec[$i]);
+				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
+				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
+
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
+
+				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
+	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
+
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
+
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
+
+	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
+
+	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
+
+	echo "$BOTTOMoutput";
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+#if (ereg("ID|TIME|CALLS",$stage))
+#	{
+#	$n=0;
+#	while ($n <= $m)
+#		{
+#		$i = $sort_order[$m];
+#		echo "$BOTTOMsorted_output[$i]";
+#		$m--;
+#		}
+#	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$TOTtotPAUSE=0;
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$sub_statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $subs_to_print)
+		{
+		if ($Sstatus=="$sub_status[$i]")
+			{
+			$Scalls =		($Scalls + $PCpause_sec[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
+
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
+
+		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+	$TOT_AGENTS = sprintf("%-4s", $m);
+
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
+
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
+
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+
+
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+echo "\n\n";
+
+}
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_status_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_status_detail.php new file mode 100644 index 00000000..73a3a3df --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_status_detail.php @@ -0,0 +1,666 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-1554 - First build +# 90225-2252 - Added CSV download option +# 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Status Λεπτομέρειες Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "Επιλέξτε μια καμπάνια ή ομάδα χρηστών ΗΜΕΡΟΜΗΝΙΑ ΚΑΙ ΩΡΑ-ΑΝΩ ΚΑΙ CLICK ΕΠΙΒΕΒΑΙΩΣΗ\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Status Λεπτομέρειες Report                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- ΧΕΙΡΙΣΤΗΣΛεπτομέρειεςs -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Status Λεπτομέρειες Report                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$users='-';
+	$usersARY[0]='';
+	$user_namesARY[0]='';
+	$k=0;
+
+	$stmt="select count(*) as calls,full_name,vicidial_users.user,status 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 $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3])))
+			{
+			$calls[$i] =		$row[0];
+			$full_name[$i] =	$row[1];
+			$user[$i] =			$row[2];
+			$status[$i] =		$row[3];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$user[$i]-", $users))
+				{
+				$users .= "$user[$i]-";
+				$usersARY[$k] = $user[$i];
+				$user_namesARY[$k] = $full_name[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "| USER NAME       | ID       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Suser=$usersARY[$m];
+		$Sfull_name=$user_namesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+				if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWuser = $Suser;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		if ($non_latin < 1)
+			{
+			 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
+				while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+			 $Suser =		sprintf("%-8s", $Suser);
+				while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+			}
+		else
+			{	
+				$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+			 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+
+				$Suser =	sprintf("%-24s", $Suser);
+			 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+			}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sfull_name | $Suser | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$Sfull_name,$RAWuser,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+	$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+	if ($file_download < 1)
+		{
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+----------------------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_STATUS$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +echo "
\n"; +echo "
Ημερομηνίες:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Εκστρατείες:
"; +echo "\n"; +echo "
Ομάδες Χρήστη:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " ΛΗΨΗ | \n"; +echo " ΑΝΑΦΟΡΕΣ \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_time_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_time_detail.php
new file mode 100644
index 00000000..a98137e5
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_time_detail.php
@@ -0,0 +1,867 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+# 90522-0723 - First build
+# 90908-1103 - Added DEAD time stats
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='NAME';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_time_sheet.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_time_sheet.php
new file mode 100644
index 00000000..4d26daed
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_time_sheet.php
@@ -0,0 +1,311 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1729 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 80624-0132 - Added vicidial_timeclock entries
+# 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["agent"]))				{$agent=$_GET["agent"];}
+	elseif (isset($_POST["agent"]))		{$agent=$_POST["agent"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["calls_summary"]))			{$calls_summary=$_GET["calls_summary"];}
+	elseif (isset($_POST["calls_summary"]))	{$calls_summary=$_POST["calls_summary"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))	{$submit=$_POST["submit"];}
+if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"]))				{$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];}
+	elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"]))	{$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];}
+
+$user=$agent;
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+?>
+
+
+
+
+
+\n";
+echo "Agent Ώρα Φύλλο";
+
+
+##### BEGIN Set variables to make header show properly #####
+$ADD =					'3';
+$hh =					'users';
+$LOGast_admin_access =	'1';
+$ADMIN =				'admin.php';
+$page_width='770';
+$section_width='750';
+$header_font_size='3';
+$subheader_font_size='2';
+$subcamp_font_size='2';
+$header_selected_bold='<b>';
+$header_nonselected_bold='';
+$users_color =		'#FFFF99';
+$users_font =		'BLACK';
+$users_color =		'#E6E6E6';
+$subcamp_color =	'#C6C6C6';
+##### END Set variables to make header show properly #####
+
+require("admin_header.php");
+
+echo "<TABLE WIDTH=$page_width BGCOLOR=\"#F0F5FE\" cellpadding=2 cellspacing=0><TR BGCOLOR=\"#F0F5FE\"><TD>\n";
+
+echo "AgentΏρα Φύλλοfor: $user\n";
+echo "<BR>\n";
+echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>   \n";
+echo "Date: <INPUT TYPE=TEXT NAME=query_date SIZE=19 MAXLENGTH=19 VALUE=\"$query_date\">\n";
+echo "Χρήστης ID: <INPUT TYPE=TEXT NAME=agent SIZE=10 MAXLENGTH=20 VALUE=\"$agent\">\n";
+echo "<INPUT TYPE=Submit NAME=ΕΠΙΒΕΒΑΙΩΣΗ VALUE=ΥΠΟΒΑΛΛΩ>\n";
+echo "</FORM>\n\n";
+
+echo "<PRE><FONT SIZE=3>\n";
+
+
+if (!$agent)
+{
+echo "\n";
+echo "PLEASE SELECT AN ΧΕΙΡΙΣΤΗΣID AND DATE-TIME ABOVE AND CLICK ΕΠΙΒΕΒΑΙΩΣΗ\n";
+echo " NOTE: stats taken from available agent log data\n";
+}
+
+else
+{
+$query_date_BEGIN = "$query_date 00:00:00";   
+$query_date_END = "$query_date 23:59:59";
+$time_BEGIN = "00:00:00";   
+$time_END = "23:59:59";
+
+$stmt="select full_name from vicidial_users where user='$agent';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$full_name = $row[0];
+
+echo "AgentΏρα Φύλλο                            $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- ΧΕΙΡΙΣΤΗΣTIME SHEET: $agent - $full_name -------------\n\n";
+
+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 <= '" . 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);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
+
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
+
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+
+	echo "ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣTAKEN: $row[0]\n";
+	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
+	echo "PAUSE TIME:              $pfPAUSE_TIME_HMS     AVERAGE: $pfPAUSE_AVG_MS\n";
+	echo "WAIT TIME:               $pfWAIT_TIME_HMS     AVERAGE: $pfWAIT_AVG_MS\n";
+	echo "WRAPUP TIME:             $pfWRAPUP_TIME_HMS     AVERAGE: $pfWRAPUP_AVG_MS\n";
+	echo "----------------------------------------------------------------\n";
+	echo "TOTAL ACTIVE ΧΕΙΡΙΣΤΗΣTIME: $pfTOTAL_TIME_HMS\n";
+
+	echo "\n";
+	}
+else
+	{
+	echo "<a href=\"$PHP_SELF?calls_summary=1&agent=$agent&query_date=$query_date\">Call Activity Summary</a>\n\n";
+
+	}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "FIRST LOGIN:          $row[0]\n";
+$start = $row[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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "LAST LOG ACTIVITY:    $row[0]\n";
+$end = $row[1];
+
+$login_time = ($end - $start);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+
+echo "-----------------------------------------\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
+
+
+### timeclock records
+
+
+##### vicidial_timeclock log records for user #####
+
+$total_login_time=0;
+$SQday_ARY =	explode('-',$query_date_BEGIN);
+$EQday_ARY =	explode('-',$query_date_END);
+$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+echo "\n";
+
+echo "<B>TIMECLOCK  ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ:</B>\n";
+echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n";
+echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜΕΡΑ</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>ΩΡΕΣ:ΛΕΠΤΑ</td></tr>\n";
+
+	$stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='$agent' and event_epoch >= '$SQepoch'  and event_epoch <= '$EQepoch';";
+	if ($DB>0) {echo "|$stmt|";}
+	$rslt=mysql_query($stmt, $link);
+	$events_to_print = mysql_num_rows($rslt);
+
+	$total_logs=0;
+	$o=0;
+	while ($events_to_print > $o) {
+		$row=mysql_fetch_row($rslt);
+		if ( ($row[0]=='START') or ($row[0]=='LOGIN') )
+			{$bgcolor='bgcolor="#B9CBFD"';} 
+		else
+			{$bgcolor='bgcolor="#9BB9FB"';}
+
+		$TC_log_date = date("Y-m-d H:i:s", $row[1]);
+
+		$manager_edit='';
+		if (strlen($row[6])>0) {$manager_edit = ' * ';}
+
+		if (ereg("LOGIN", $row[0]))
+			{
+			$login_sec='';
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> </td></tr>\n";
+			}
+		if (ereg("LOGOUT", $row[0]))
+			{
+			$login_sec = $row[3];
+			$total_login_time = ($total_login_time + $login_sec);
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> $event_hours_minutes";
+			if ($DB) {echo " - $total_login_time - $login_sec";}
+			echo "</td></tr>\n";
+			}
+		$o++;
+	}
+if (strlen($login_sec)<1)
+	{
+	$login_sec = ($STARTtime - $row[1]);
+	$total_login_time = ($total_login_time + $login_sec);
+		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
+	}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
+
+	if ($DB) {echo " - $total_login_time - $login_sec";}
+
+echo "<tr><td align=right><font size=2> </td>";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
+
+echo "</TABLE>\n";
+
+
+
+}
+
+
+
+?>
+
+</BODY></HTML>
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_timeclock_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_inboundEXTstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_inboundEXTstats.php new file mode 100644 index 00000000..5ddd431a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_inboundEXTstats.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$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 and view_reports='1';"; + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.11.20';} + +$stmt="select extension,full_number,inbound_name from inbound_numbers where server_ip='" . mysql_real_escape_string($server_ip) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$inbound_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + $inbound[$i] =$row[0]; + $fullnum[$i] =$row[1]; + $inbname[$i] =$row[2]; + $i++; + } +?> + + + + + +\n"; +#echo"\n"; +echo "ASTERISK: Στατιστικά Εισερχομένων Κλήσεων\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΕΝΑΝ ΑΡΙΘΜΟ ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ ΑΝΩΤΕΡΩ, ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ\n";
+}
+
+else
+{
+
+
+echo "ASTERISK: Στατιστικά Εισερχομένων Κλήσεων                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALS\n";
+
+$extenSQL = "and extension='" . mysql_real_escape_string($group) . "'";
+if (eregi("\*",$group))
+	{$extenSQL = "and extension LIKE \"%$group\"";}
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$average_hold_seconds = ($row[1] / $row[0]);
+$average_hold_seconds = round($average_hold_seconds, 0);
+$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+
+echo "Συνολικές κλήσεις που ήρθαν σε αυτό τον αριθμό:       $TOTALcalls\n";
+echo "Average Call Length(seconds) for all Calls:   $average_hold_seconds\n";
+
+echo "\n";
+echo "---------- ΕΓΚΑΤΑΛ\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+$DROPpercent = round($DROPpercent, 0);
+
+if ($row[0])
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+else {$DROPpercent=0;   $average_hold_seconds=0;}
+echo "Total DROP Calls:   (less than 10 seconds)    $DROPcalls  $DROPpercent%\n";
+echo "Average Call Length(seconds) for DROP Calls:  $average_hold_seconds\n";
+
+
+##############################
+#########  CALLS STATS
+
+echo "\n";
+echo "---------- CALL LISTINGS\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+echo "| CALLERID             | CALLERIDNAME         | LENGTH | DATE TIME           |\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$CID =			sprintf("%-20s", $row[0]);
+	$CIDname =		sprintf("%-20s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}
+	$datetime =		sprintf("%-19s", $row[3]);
+	$USERavgTALK =	$row[2];
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$USERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $CID | $CIDname | $USERavgTALK_MS | $datetime |\n";
+
+	$i++;
+	}
+
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+##############################
+#########  TIME STATS
+
+if ($output == 'FULL')
+	{
+
+	echo "\n";
+	echo "---------- ΣΤΑΤ.ΧΡΟΝ.\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+		$h++;
+		}
+
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+
+	echo "\n";
+	echo "ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+	echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$Gdrop_count = $drop_count[$i];
+			if ($Gdrop_count < 1) 
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "*X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 101) {echo " ";   $char_counter++;}
+				echo "| 0     | $hour_count[$i] |\n";
+
+				}
+			else
+				{
+				$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+			#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+				$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+				echo "D";   $char_counter++;
+				$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 102) {echo " ";   $char_counter++;}
+				echo "| $drop_count[$i] | $hour_count[$i] |\n";
+				}
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+
+	}
+
+
+
+
+}
+
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_server_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_server_performance.php new file mode 100644 index 00000000..02c6edc1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_server_performance.php @@ -0,0 +1,346 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1732 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70417-1106 - Changed time frame to be definable per time range on a single day +# - Fixed vertical scaling issues +# 80118-1508 - Fixed horizontal scale marking issues +# 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_query_time"])) {$begin_query_time=$_GET["begin_query_time"];} + elseif (isset($_POST["begin_query_time"])) {$begin_query_time=$_POST["begin_query_time"];} +if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"];} + elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$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 and view_reports='1' and modify_servers='1';"; + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +# path from root to where ploticus files will be stored +$PLOTroot = "vicidial/ploticus"; +$DOCroot = "$WeBServeRRooT/$PLOTroot/"; + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +if (!isset($begin_query_time)) {$begin_query_time = "$NOW_DATE 09:00:00";} +if (!isset($end_query_time)) {$end_query_time = "$NOW_DATE 15:30:00";} +if (!isset($group)) {$group = '';} + +$stmt="select server_ip from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + + + + + +\n"; +echo "Server Performance Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + + +echo "
\n"; +echo "Date/Time Range: \n"; +echo "to \n"; +echo "Server: \n"; +echo "\n"; +echo "             ΑΝΑΦΟΡΕΣ \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A ΔΙΑΚΟΜΙΣΤΗΣ AND DATE/TIME RANGE ABOVE AND CLICK ΕΠΙΒΕΒΑΙΩΣΗ\n";
+}
+
+else
+{
+
+$query_date_BEGIN = $begin_query_time;   
+$query_date_END = $end_query_time;
+
+
+echo "Server Performance Report                            $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALS, PEAKS and AVERAGES\n";
+
+$stmt="select AVG(sysload),AVG(channels_total),MAX(sysload),MAX(channels_total),MAX(processes) 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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGload =	sprintf("%10s", $row[0]);
+$AVGchannels =	sprintf("%10s", $row[1]);
+$HIGHload =	$row[2];
+	$HIGHmulti = intval($HIGHload / 100);
+$HIGHchannels =	$row[3];
+$HIGHprocesses =$row[4];
+if ($row[2] > $row[3]) {$HIGHlimit = $row[2];}
+else {$HIGHlimit = $row[3];}
+if ($HIGHlimit < $row[4]) {$HIGHlimit = $row[4];}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGcpuUSER =	sprintf("%10s", $row[0]);
+$AVGcpuSYSTEM =	sprintf("%10s", $row[1]);
+$AVGcpuIDLE =	sprintf("%10s", $row[2]);
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$OFFHOOKtime =	sprintf("%10s", $row[1]);
+
+
+echo "Total Calls in/out on this server:        $TOTALcalls\n";
+echo "Total Off-Hook time on this server (min): $OFFHOOKtime\n";
+echo "Average/Peak channels in use for server:  $AVGchannels / $HIGHchannels\n";
+echo "Average/Peak load for server:             $AVGload / $HIGHload\n";
+echo "Average USER process cpu percentage:      $AVGcpuUSER %\n";
+echo "Average SYSTEM process cpu percentage:    $AVGcpuSYSTEM %\n";
+echo "Average IDLE process cpu percentage:      $AVGcpuIDLE %\n";
+
+echo "\n";
+echo "---------- LINE GRAPH:\n";
+
+
+
+##############################
+#########  Graph stats
+
+$DAT = '.dat';
+$HTM = '.htm';
+$PNG = '.png';
+$filedate = date("Y-m-d_His");
+$DATfile = "$group$query_date$shift$filedate$DAT";
+$HTMfile = "$group$query_date$shift$filedate$HTM";
+$PNGfile = "$group$query_date$shift$filedate$PNG";
+
+$HTMfp = fopen ("$DOCroot/$HTMfile", "a");
+$DATfp = fopen ("$DOCroot/$DATfile", "a");
+
+$stmt="select DATE_FORMAT(start_time,'%Y-%m-%d.%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 limit 99999;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	if ($i<1) {$time_BEGIN = $row[0];}
+	$time_END = $row[0];
+	$row[5] = intval(($row[5] + $row[6]) * $HIGHmulti);
+	$row[6] = intval($row[6] * $HIGHmulti);
+	if ($rows_to_print > 9999)
+		{
+		if ($rows_to_print <= 19999)
+			{
+			if (preg_match("/0$|2$|4$|6$|8$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 19999) and ($rows_to_print <= 49999) )
+			{
+			if (preg_match("/0$|5$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 49999) and ($rows_to_print <= 99999) )
+			{
+			if (preg_match("/0$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		}
+	else
+		{
+		fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+		}
+	$i++;
+	}
+fclose($DATfp);
+
+$rows_to_max = ($rows_to_print + 100);
+
+$time_scale_abb = '5 minutes';
+$time_scale_tick = '1 minute';
+if ($i > 1000) {$time_scale_abb = '10 minutes';   $time_scale_tick = '2 minutes';}
+if ($i > 1500) {$time_scale_abb = '15 minutes';   $time_scale_tick = '3 minutes';}
+if ($i > 2000) {$time_scale_abb = '20 minutes';   $time_scale_tick = '4 minutes';}
+if ($i > 3000) {$time_scale_abb = '30 minutes';   $time_scale_tick = '5 minutes';}
+if ($i > 4000) {$time_scale_abb = '40 minutes';   $time_scale_tick = '10 minutes';}
+if ($i > 5000) {$time_scale_abb = '60 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 6000) {$time_scale_abb = '90 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 7000) {$time_scale_abb = '120 minutes';   $time_scale_tick = '30 minutes';}
+
+print "rows: $i   tick: $time_scale_abb   scale: $time_scale_tick\n";
+
+$HTMcontent  = '';
+$HTMcontent .= "#proc page\n";
+$HTMcontent .= "#if @DEVICE in png,gif\n";
+$HTMcontent .= "   scale: 0.6\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#endif\n";
+$HTMcontent .= "#proc getdata\n";
+$HTMcontent .= "file: $DOCroot/$DATfile\n";
+$HTMcontent .= "fieldnames: userproc sysproc datetime load processes channels\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc areadef\n";
+$HTMcontent .= "title: Server $group   $query_date_BEGIN to $query_date_END\n";
+$HTMcontent .= "titledetails: size=14  align=C\n";
+$HTMcontent .= "rectangle: 1 1 12 7\n";
+$HTMcontent .= "xscaletype: datetime yyyy-mm-dd.hh:mm:ss\n";
+$HTMcontent .= "xrange: $time_BEGIN $time_END\n";
+$HTMcontent .= "yrange: 0 $HIGHlimit\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc xaxis\n";
+$HTMcontent .= "stubs: inc $time_scale_abb\n";
+$HTMcontent .= "minorticinc: $time_scale_tick\n";
+$HTMcontent .= "stubformat: hh:mma\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc yaxis\n";
+$HTMcontent .= "stubs: inc 50\n";
+$HTMcontent .= "grid: color=yellow\n";
+$HTMcontent .= "gridskip: min\n";
+$HTMcontent .= "ticincrement: 100 1000\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: userproc\n";
+$HTMcontent .= "linedetails: color=purple width=.5\n";
+$HTMcontent .= "fill: lavender\n";
+$HTMcontent .= "legendlabel: user proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: sysproc\n";
+$HTMcontent .= "linedetails: color=yelloworange width=.5\n";
+$HTMcontent .= "fill: dullyellow\n";
+$HTMcontent .= "legendlabel: system proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: load\n";
+$HTMcontent .= "linedetails: color=blue width=.5\n";
+$HTMcontent .= "legendlabel: load\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: processes\n";
+$HTMcontent .= "linedetails: color=red width=.5\n";
+$HTMcontent .= "legendlabel: processes\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: channels\n";
+$HTMcontent .= "linedetails: color=green width=.5\n";
+$HTMcontent .= "legendlabel: channels\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc legend\n";
+$HTMcontent .= "location: max-1 max\n";
+$HTMcontent .= "seglen: 0.2\n";
+$HTMcontent .= "\n";
+
+fwrite ($HTMfp, "$HTMcontent");
+fclose($HTMfp);
+
+
+passthru("/usr/local/bin/pl -png $DOCroot/$HTMfile -o $DOCroot/$PNGfile");
+
+sleep(1);
+
+echo "
"; +echo "\n"; +echo "\n"; + + +echo ""; + +} + + + +?> + +
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDAD.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDAD.php new file mode 100644 index 00000000..2d87dafa --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDAD.php @@ -0,0 +1,445 @@ + LICENSE: AGPLv2 +# +# 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 +# 61114-2004 - Changed to display CLOSER and DEFAULT, added trunk shortage +# 80422-0305 - Added phone login to display, lower font size to 2 +# 81013-2227 - Fixed Remote Agent display bug +# 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["closer_display"])) {$closer_display=$_GET["closer_display"];} + elseif (isset($_POST["closer_display"])) {$closer_display=$_POST["closer_display"];} + +$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 and view_reports='1';"; + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "Server-Specific Real-Time Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
";
+
+###################################################################################
+###### SERVER INFORMATION
+###################################################################################
+
+$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where server_ip='" . mysql_real_escape_string($server_ip) . "';";
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$balanceSHORT = $row[0];
+
+echo "SERVER: $server_ip\n";
+
+
+
+###################################################################################
+###### TIME ON SYSTEM
+###################################################################################
+
+if ($closer_display>0) {$closer_display_reverse=0;   $closer_reverse_link='DEFAULT';}
+else {$closer_display_reverse=1;   $closer_reverse_link='CLOSER';}
+
+echo "Πράκτορες Time On Calls           $NOW_TIME    $closer_reverse_link | ΑΝΑΦΟΡΕΣ\n\n";
+
+if ($closer_display>0)
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\n";
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+}
+else
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$Sextension[$i] =		$row[0];
+		$Suser[$i] =			$row[1];
+		$Ssessionid[$i] =		$row[2];
+		$Schannel[$i] =			$row[3];
+		$Sstatus[$i] =			$row[4];
+		$Sstart_time[$i] =		$row[5];
+		$Scall_time[$i] =		$row[6];
+		$Sfinish_time[$i] =		$row[7];
+		$Suniqueid[$i] =		$row[8];
+		$Slead_id[$i] =			$row[9];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$phone[$i]='          ';
+		if (eregi("R/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('R/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi("Local/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('Local/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi('SIP/',$Sextension[$i])) 
+			{
+			$protocol = 'SIP';
+			$dialplan = eregi_replace('SIP/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('IAX2/',$Sextension[$i])) 
+			{
+			$protocol = 'IAX2';
+			$dialplan = eregi_replace('IAX2/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('Zap/',$Sextension[$i])) 
+			{
+			$protocol = 'Zap';
+			$dialplan = eregi_replace('Zap/',"",$Sextension[$i]);
+			$exten = "extension='$dialplan'";
+			}
+
+		$stmt="select login from phones where server_ip='" . mysql_real_escape_string($server_ip) . "' and $exten and protocol='$protocol';";
+		$rslt=mysql_query($stmt, $link);
+		$row=mysql_fetch_row($rslt);
+		$login = $row[0];
+
+		$phone[$i] =			sprintf("%-10s", $login);
+
+		if (eregi("READY|PAUSED|CLOSER",$Sstatus[$i]))
+			{
+			$Schannel[$i]='';
+			$Sstart_time[$i]='- WAIT -';
+			$Scall_time[$i]=$Sfinish_time[$i];
+			}
+		$extension[$i] = eregi_replace('Local/',"",$Sextension[$i]);
+		$extension[$i] =		sprintf("%-10s", $extension[$i]);
+			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
+		$user[$i] =				sprintf("%-6s", $Suser[$i]);
+		$sessionid[$i] =		sprintf("%-9s", $Ssessionid[$i]);
+		$channel[$i] =			sprintf("%-19s", $Schannel[$i]);
+			$cc[$i]=0;
+		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
+			{
+			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
+			$cc[$i]++;
+			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
+			}
+		$status[$i] =			sprintf("%-6s", $Sstatus[$i]);
+		$start_time[$i] =		sprintf("%-8s", $Sstart_time[$i]);
+			$cd[$i]=0;
+		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
+			{
+			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
+			$cd[$i]++;
+			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
+			}
+		$uniqueid[$i] =			$Suniqueid[$i];
+		$lead_id[$i] =			$Slead_id[$i];
+		$closer[$i] =			$Suser[$i];
+		$call_time_S[$i] = ($STARTtime - $Scall_time[$i]);
+
+		$call_time_M[$i] = ($call_time_S[$i] / 60);
+		$call_time_M[$i] = round($call_time_M[$i], 2);
+		$call_time_M_int[$i] = intval("$call_time_M[$i]");
+		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
+		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
+		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
+		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
+		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
+		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
+
+		if ($closer_display<1)
+			{
+			$G = '';		$EG = '';
+			if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+			if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+			if (eregi("PAUSED",$Sstatus[$i])) 
+				{
+				if ($call_time_M_int >= 1) 
+					{$i++; continue;} 
+				else
+					{$G=''; $EG='';}
+				}
+			$agentcount++;
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG |\n";
+			}
+		$i++;
+		}
+
+		if ($closer_display>0)
+		{
+
+			$ext_count = $i;
+			$i=0;
+		while ($i < $ext_count)
+			{
+
+			$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$camp_to_print = mysql_num_rows($rslt);
+			if ($camp_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$campaign = sprintf("%-12s", $row[0]);
+				$camp_color = $row[0];
+				}
+			else
+				{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
+			if (eregi("READY|PAUSED|CLOSER",$status[$i]))
+				{$campaign = '            ';   	$camp_color = '';}
+
+			$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$xfer_to_print = mysql_num_rows($rslt);
+			if ($xfer_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$fronter = sprintf("%-6s", $row[0]);
+				}
+			else
+				{$fronter = '      ';}
+
+			$G = '';		$EG = '';
+			$G=""; $EG='';
+		#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+		#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
+
+			$i++;
+			}
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+		echo "  $i Χειριστές συνδεμένοι στον διακομιστή $server_ip\n\n";
+	#	echo "             - 5 λεπτά ή παραπάνω σε κλήση\n";
+	#	echo "             - Πάνω από 10 λεπτά σε κλήση\n";
+		}
+	else
+		{
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+		echo "  $agentcount Χειριστές συνδεμένοι στον διακομιστή $server_ip\n\n";
+
+		echo "             - Χειριστές σε παύση\n";
+		echo "             - 5 λεπτά ή παραπάνω σε κλήση\n";
+		echo "             - Πάνω από 10 λεπτά σε κλήση\n";
+		}
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "********************************* ΚΑΝΕΝΑΣ ΧΕΙΡ. ΣΕ ΚΛΗΣΕΙΣ *********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+###################################################################################
+###### OUTBOUND CALLS
+###################################################################################
+#echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "Server-Specific Real-Time Report        TRUNK SHORT: $balanceSHORT          $NOW_TIME\n\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-19s", $row[0]);
+			$cc=0;
+		while ( (strlen($channel) > 19) and ($cc < 100) )
+			{
+			$channel = eregi_replace(".$","",$channel);   
+			$cc++;
+			if (strlen($channel) <= 19) {$cc=101;}
+			}
+		$start_time =		sprintf("%-8s", $row[5]);
+			$cd=0;
+		while ( (strlen($start_time) > 8) and ($cd < 100) )
+			{
+			$start_time = eregi_replace("^.","",$start_time);   
+			$cd++;
+			if (strlen($start_time) <= 8) {$cd=101;}
+			}
+		$status =			sprintf("%-6s", $row[1]);
+		$campaign =			sprintf("%-12s", $row[2]);
+			$all_phone = "$row[3]$row[4]";
+		$number_dialed =	sprintf("%-18s", $all_phone);
+		$call_time_S = ($STARTtime - $row[6]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if (eregi("LIVE",$status)) {$G=''; $EG='';}
+	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+		echo "  $i κλήσεις που τοποθετήθηκαν στον διακομιστή $server_ip\n\n";
+
+		echo "             - ΑΝΑΜΟΝΗ ΕΝΕΡΓΗΣ ΚΛΗΣΗΣ\n";
+	#	echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	echo "*******************************ΔΕΝ ΥΠΑΡΧΟΥΝ ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΝΑΜΟΝΗ *********************************\n";
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	}
+
+
+?>
+
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDAD_closer.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDAD_closer.php new file mode 100644 index 00000000..07470b84 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDAD_closer.php @@ -0,0 +1,318 @@ + LICENSE: GPLv2 +### +# 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"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On VDAD\n"; +echo "
";
+
+###################################################################################
+###### TIME ON SYSTEM
+###################################################################################
+
+echo "VICIDIAL: Χρόνος Χειριστών σε κλήσεις                   $NOW_TIME    ΑΝΑΦΟΡΕΣ\n\n";
+echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+echo "| STATION    | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+			if (eregi("READY|PAUSED|CLOSER",$row[4]))
+			{
+			$row[3]='';
+			$row[5]='- WAIT -';
+			$row[6]=$row[7];
+			}
+		$extension[$i] = eregi_replace('Local/',"",$row[0]);
+		$extension[$i] =		sprintf("%-10s", $extension[$i]);
+			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
+		$user[$i] =				sprintf("%-6s", $row[1]);
+		$sessionid[$i] =		sprintf("%-9s", $row[2]);
+		$channel[$i] =			sprintf("%-19s", $row[3]);
+			$cc[$i]=0;
+		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
+			{
+			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
+			$cc[$i]++;
+			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
+			}
+		$status[$i] =			sprintf("%-6s", $row[4]);
+		$start_time[$i] =		sprintf("%-8s", $row[5]);
+			$cd[$i]=0;
+		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
+			{
+			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
+			$cd[$i]++;
+			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
+			}
+		$uniqueid[$i] =			$row[8];
+		$lead_id[$i] =			$row[9];
+		$closer[$i] =			$row[1];
+		$call_time_S[$i] = ($STARTtime - $row[6]);
+
+		$call_time_M[$i] = ($call_time_S[$i] / 60);
+		$call_time_M[$i] = round($call_time_M[$i], 2);
+		$call_time_M_int[$i] = intval("$call_time_M[$i]");
+		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
+		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
+		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
+		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
+		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
+		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
+		$i++;
+		}
+		$ext_count = $i;
+		$i=0;
+	while ($i < $ext_count)
+		{
+
+		$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$camp_to_print = mysql_num_rows($rslt);
+		if ($camp_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$campaign = sprintf("%-12s", $row[0]);
+			$camp_color = $row[0];
+			}
+		else
+			{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
+		if (eregi("READY|PAUSED|CLOSER",$status[$i]))
+			{$campaign = '            ';   	$camp_color = '';}
+
+		$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$xfer_to_print = mysql_num_rows($rslt);
+		if ($xfer_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$fronter = sprintf("%-6s", $row[0]);
+			}
+		else
+			{$fronter = '      ';}
+
+		$G = '';		$EG = '';
+		$G=""; $EG='';
+	#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+	#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+
+		echo "| $G$extension[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+		echo "  $i Χειριστές συνδεμένοι στον διακομιστή $server_ip\n\n";
+
+	#	echo "             - 5 λεπτά ή παραπάνω σε κλήση\n";
+	#	echo "             - Πάνω από 10 λεπτά σε κλήση\n";
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "********************************* ΚΑΝΕΝΑΣ ΧΕΙΡ. ΣΕ ΚΛΗΣΕΙΣ *********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+###################################################################################
+###### OUTBOUND CALLS
+###################################################################################
+#echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "VICIDIAL: Time On VDAD                                              $NOW_TIME\n\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+
+#$link=mysql_connect("localhost", "cron", "1234");
+# $linkX=mysql_connect("localhost", "cron", "1234");
+#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='" . mysql_real_escape_string($server_ip) . "' order by auto_call_id desc;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-19s", $row[0]);
+			$cc=0;
+		while ( (strlen($channel) > 19) and ($cc < 100) )
+			{
+			$channel = eregi_replace(".$","",$channel);   
+			$cc++;
+			if (strlen($channel) <= 19) {$cc=101;}
+			}
+		$start_time =		sprintf("%-8s", $row[5]);
+			$cd=0;
+		while ( (strlen($start_time) > 8) and ($cd < 100) )
+			{
+			$start_time = eregi_replace("^.","",$start_time);   
+			$cd++;
+			if (strlen($start_time) <= 8) {$cd=101;}
+			}
+		$status =			sprintf("%-6s", $row[1]);
+		$campaign =			sprintf("%-12s", $row[2]);
+			$all_phone = "$row[3]$row[4]";
+		$number_dialed =	sprintf("%-18s", $all_phone);
+		$call_time_S = ($STARTtime - $row[6]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if (eregi("LIVE",$status)) {$G=''; $EG='';}
+	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+		echo "  $i κλήσεις που τοποθετήθηκαν στον διακομιστή $server_ip\n\n";
+
+		echo "             - ΑΝΑΜΟΝΗ ΕΝΕΡΓΗΣ ΚΛΗΣΗΣ\n";
+	#	echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	echo "*******************************ΔΕΝ ΥΠΑΡΧΟΥΝ ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΝΑΜΟΝΗ *********************************\n";
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	}
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDADall.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDADall.php new file mode 100644 index 00000000..a92de3a6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDADall.php @@ -0,0 +1,1986 @@ + LICENSE: AGPLv2 +# +# live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# CHANGELOG: +# 50406-0920 - Added Paused agents < 1 min +# 51130-1218 - Modified layout and info to show all servers in a vicidial system +# 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 +# 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 +# 60626-1453 - Added display of system load to bottom (Angelito Manansala) +# 60901-1123 - Changed display elements at the top of the screen +# 60905-1342 - Fixed non INCALL|QUEUE timer column +# 61002-1642 - Added TRUNK SHORT/FILL stats +# 61101-1318 - Added SIP and IAX Listen and Barge links option +# 61101-1647 - Added Usergroup column and user name option as well as sorting +# 61102-1155 - Made display of columns more modular, added ability to hide server info +# 61215-1131 - Added answered calls and drop percent taken from answered calls +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70123-1151 - Added non_latin options for substr in display variables, thanks Marin Blu +# 70206-1140 - Added call-type statuses to display(A-Auto, M-Manual, I-Inbound/Closer) +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80227-0418 - Added priority to waiting calls display +# 80311-1550 - Added calls_today on all agents and wait time/in-group for inbound calls +# 80422-0033 - Added phonediaplay option, allow for toggle-sorting on sortable fields +# 80422-1001 - Fixed sort by phone login +# 80424-0515 - Added non_latin lookup from system_settings +# 80525-1040 - Added IVR status display and summary for inbound calls +# 80619-2047 - Added DISPO status for post-call-work while paused +# 80704-0543 - Added DEAD status for agents INCALL with no live call +# 80822-1222 - Added option for display of customer phone number +# 81011-0335 - Fixed remote agent display bug +# 81022-1500 - Added inbound call stats display option +# 81029-1023 - Changed drop percent calculation for multi-stat reports +# 81029-1706 - Added pause code display if enabled per campaign +# 81108-2337 - Added inbound-only section +# 90105-1153 - Changed monitor links to use 0 prefix instead of 6 +# 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option +# 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended +# + + +$version = '2.2.0-49'; +$build = '91204-1548'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["inbound"])) {$inbound=$_GET["inbound"];} + elseif (isset($_POST["inbound"])) {$inbound=$_POST["inbound"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["usergroup"])) {$usergroup=$_GET["usergroup"];} + elseif (isset($_POST["usergroup"])) {$usergroup=$_POST["usergroup"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["SIPmonitorLINK"])) {$SIPmonitorLINK=$_GET["SIPmonitorLINK"];} + elseif (isset($_POST["SIPmonitorLINK"])) {$SIPmonitorLINK=$_POST["SIPmonitorLINK"];} +if (isset($_GET["IAXmonitorLINK"])) {$IAXmonitorLINK=$_GET["IAXmonitorLINK"];} + elseif (isset($_POST["IAXmonitorLINK"])) {$IAXmonitorLINK=$_POST["IAXmonitorLINK"];} +if (isset($_GET["UGdisplay"])) {$UGdisplay=$_GET["UGdisplay"];} + elseif (isset($_POST["UGdisplay"])) {$UGdisplay=$_POST["UGdisplay"];} +if (isset($_GET["UidORname"])) {$UidORname=$_GET["UidORname"];} + elseif (isset($_POST["UidORname"])) {$UidORname=$_POST["UidORname"];} +if (isset($_GET["orderby"])) {$orderby=$_GET["orderby"];} + elseif (isset($_POST["orderby"])) {$orderby=$_POST["orderby"];} +if (isset($_GET["SERVdisplay"])) {$SERVdisplay=$_GET["SERVdisplay"];} + elseif (isset($_POST["SERVdisplay"])) {$SERVdisplay=$_POST["SERVdisplay"];} +if (isset($_GET["CALLSdisplay"])) {$CALLSdisplay=$_GET["CALLSdisplay"];} + elseif (isset($_POST["CALLSdisplay"])) {$CALLSdisplay=$_POST["CALLSdisplay"];} +if (isset($_GET["PHONEdisplay"])) {$PHONEdisplay=$_GET["PHONEdisplay"];} + elseif (isset($_POST["PHONEdisplay"])) {$PHONEdisplay=$_POST["PHONEdisplay"];} +if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdisplay"];} + elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} +if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} + elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $outbound_autodial_active = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if (!isset($DB)) {$DB=0;} +if (!isset($RR)) {$RR=40;} +if (!isset($group)) {$group='';} +if (!isset($usergroup)) {$usergroup='';} +if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name +if (!isset($orderby)) {$orderby='timeup';} +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes +if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes +if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes +if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes +if (!isset($PAUSEcodes)) {$PAUSEcodes='N';} # 0=no, 1=yes +if (!isset($with_inbound)) + { + if ($outbound_autodial_active > 0) + {$with_inbound='N';} # N=no, Y=yes, O=only + else + {$with_inbound='O';} # N=no, Y=yes, O=only + } +$ingroup_detail=''; + +if (strlen($group)>1) {$groups[0] = $group; $RR=40;} +else {$group = $groups[0];} + +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); + + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } + + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } + +$load_ave = get_server_load(true); + +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + + +$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 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='ALL-ACTIVE'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $LISTnames[$i] =$row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($groups); +while($i < $group_ct) + { + $group_string .= "$groups[$i]|"; + $group_SQL .= "'$groups[$i]',"; + $groupQS .= "&groups[]=$groups[$i]"; + $i++; + } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $all_active = 0; + $group_SQL = "''"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; + } +else + { + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$usergroups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $usergroups_to_print) + { + $row=mysql_fetch_row($rslt); + $usergroups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$select_list = ""; +$select_list .= ""; +$select_list .= "
Select Εκστρατείες:
"; +$select_list .= ""; +$select_list .= "
(Για να επιλέξετε περισσότερα από 1 εκστρατείας, κρατήστε πατημένο το πλήκτρο Ctrl και κάντε κλικ)"; +$select_list .= "
"; +$select_list .= "Κλείστε Panel

"; + +if ($UGdisplay > 0) + { + $select_list .= "Select Ομάδα Χρήστη:
"; + $select_list .= "

"; + } + +$select_list .= "   Inbound:         "; +$select_list .= "
"; +$select_list .= "   "; +$select_list .= ""; +$select_list .= "ΕΚΔΟΣΗ: $version   ΔΗΜΙΟΥΡΓΙΑ: $build"; +$select_list .= "
"; + +$open_list = "
Επιλογές εμφάνισης Επιλέξτε Έκθεση
"; + +?> + + + + + + +\n"; + +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; +$rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +echo "\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; +echo "
\n"; +echo "Επιλογές εμφάνισης Επιλέξτε Έκθεση"; +echo "
\n"; +echo "
\n"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; +if (eregi('ALL-ACTIVE',$group_string)) + { + echo "       ΤΡΟΠΟΠΟΙΗΣΗ | \n"; + } +else + { + echo "       ΤΡΟΠΟΠΟΙΗΣΗ | \n"; + } +echo "SUMMARY \n"; +echo "\n\n"; + + +if (!$group) {echo "

please select a campaign from the pulldown above
\n"; exit;} +else +{ +$multi_drop=0; +### Gather list of all Closer group ids for exclusion from stats +$stmt = "select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +$ingroups_to_print = mysql_num_rows($rslt); +while ($ingroups_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + $ccamps_to_print = mysql_num_rows($rslt); + $c=0; + while ($ccamps_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaignsSQL .= "'$closer_campaigns',"; + $c++; + } + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; + + if ($adastats>1) + { + $stmtB="select calls_today,drops_today,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4,hold_sec_stat_one,hold_sec_stat_two,hold_sec_answer_calls,hold_sec_drop_calls,hold_sec_queue_calls,campaign_id from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if ($DB > 0) {echo "\n|$stmtB|\n";} + + $r=0; + $rslt=mysql_query($stmtB, $link); + $ingroups_to_print = mysql_num_rows($rslt); + if ($ingroups_to_print > 0) + {$ingroup_detail .= "";} + while ($ingroups_to_print > $r) + { + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + $ingroupdetail = $row[16]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = round($AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec, 2); + $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = sprintf("%01.2f", $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec); + } + else + {$AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec=0; + } + + if (ereg("0$|2$|4$|6$|8$",$r)) {$bgcolor='#E6E6E6';} + else {$bgcolor='white';} + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + + $r++; + } + + if ($ingroups_to_print > 0) + {$ingroup_detail .= "
        $ingroupdetail   CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls  
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
ΑΠΑΝΤΗΣΗS TODAY:  $answersTODAY    DROP PERCENT:  $drpctTODAY%    Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
";} + + } + + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; + + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; + } + + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; + + + if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_pause_codes_active = $row[0]; + + $rslt=mysql_query($stmtC, $link); + $row=mysql_fetch_row($rslt); + $agent_non_pause_sec = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = round($AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec, 2); + $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec = sprintf("%01.2f", $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec); + } + else + {$AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec=0; + } + + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +##### NOT INBOUND ONLY ### +else + { + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $multi_drop++; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; + } + else + { + if ($DB > 0) {echo "\n|$with_inbound|$campaign_allow_inbound|\n";} + + if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) + { + $multi_drop++; + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} + + $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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + } + else + { + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + } + } + if ($DB > 0) {echo "\n|$stmt|$stmtB|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $DIALlev = $row[0]; + $DIALstatusA = $row[1]; + $DIALstatusB = $row[2]; + $DIALstatusC = $row[3]; + $DIALstatusD = $row[4]; + $DIALstatusE = $row[5]; + $DIALorder = $row[6]; + $DIALfilter = $row[7]; + $HOPlev = $row[8]; + $DIALmethod = $row[9]; + $maxDIALlev = $row[10]; + $DROPmax = $row[11]; + $targetDIFF = $row[12]; + $ADAintense = $row[13]; + $ADAavailonly = $row[14]; + $TAPERtime = $row[15]; + $CALLtime = $row[16]; + $DIALtimeout = $row[17]; + $DIALstatuses = $row[18]; + $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; + + + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDhop = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $DAleads = $row[0]; + $callsTODAY = $row[1]; + $dropsTODAY = $row[2]; + $drpctTODAY = $row[3]; + $diffONEMIN = $row[4]; + $agentsONEMIN = $row[5]; + $balanceFILL = $row[6]; + $answersTODAY = $row[7]; + if ($multi_drop > 0) + { + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + } + $VSCcat1 = $row[8]; + $VSCcat1tally = $row[9]; + $VSCcat2 = $row[10]; + $VSCcat2tally = $row[11]; + $VSCcat3 = $row[12]; + $VSCcat3tally = $row[13]; + $VSCcat4 = $row[14]; + $VSCcat4tally = $row[15]; + + if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } + else {$diffpctONEMIN = '0.00';} + + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $balanceSHORT = $row[0]; + + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "Κατάλογος Mix: $row[0]"; + $DIALorder = "Κατάλογος Mix: $row[0]"; + } + } + + echo "
CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls   TIME:   $NOW_TIME
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
ΑΠΑΝΤΗΣΗS TODAY:  $answersTODAY    (Agent non-pause time / Answers)Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
DROP PERCENT:  $drpctTODAY%    PRODUCTIVITY:  $AVG_ΑΠΑΝΤΗΣΗagent_non_pause_sec    
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + + + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
DIAL ΕΠΙΠΕΔΟ:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
- min   MAX ΕΠΙΠΕΔΟ:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     ΤΗΛΕΦΩΝΕΙΣΤΕ ΜΕΘΟΔΟΣ:  $DIALmethod    
HOPPER ΕΠΙΠΕΔΟ:  $HOPlev     DROPPED / ΑΠΑΝΤΗΣΗED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; + if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} + else + {echo "$drpctTODAY%";} + echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +echo "$ingroup_detail"; + +if ($adastats<2) + { + echo "+ VIEW MORE"; + } +else + { + echo "+ VIEW LESS"; + } +if ($UGdisplay>0) + { + echo "       ΑΠΟΚΡΥΨΗ ΟΜΑΔΑ ΧΡΗΣΤΩΝ"; + } +else + { + echo "       VIEW ΟΜΑΔΑ ΧΡΗΣΤΩΝ"; + } +if ($UidORname>0) + { + echo "       ΕΜΦΑΝΙΣΗ ΧΕΙΡΙΣΤΗΣID"; + } +else + { + echo "       ΕΜΦΑΝΙΣΗ ΧΕΙΡΙΣΤΗΣNAME"; + } +if ($SERVdisplay>0) + { + echo "       ΑΠΟΚΡΥΨΗ ΔΙΑΚΟΜΙΣΤΗΣ INFO"; + } +else + { + echo "       ΕΜΦΑΝΙΣΗ ΔΙΑΚΟΜΙΣΤΗΣ INFO"; + } +if ($CALLSdisplay>0) + { + echo "       ΑΠΟΚΡΥΨΗ WAITING CALLS"; + } +else + { + echo "       ΕΜΦΑΝΙΣΗ WAITING CALLS"; + } +if ($PHONEdisplay>0) + { + echo "       ΑΠΟΚΡΥΨΗ PHONES"; + } +else + { + echo "       ΕΜΦΑΝΙΣΗ PHONES"; + } +if ($CUSTPHONEdisplay>0) + { + echo "       ΑΠΟΚΡΥΨΗ CUSTPHONES"; + } +else + { + echo "       ΕΜΦΑΝΙΣΗ CUSTPHONES"; + } +echo "
"; + +echo "\n\n"; +} +################################################################################### +###### INBOUND/OUTBOUND CALLS +################################################################################### +if ($campaign_allow_inbound > 0) + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; + } +else + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; + } +if ($CALLSdisplay > 0) + { + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; + } +else + { + $stmtA = "SELECT status"; + } + + +$k=0; +$agentonlycount=0; +$stmt = "$stmtA $stmtB"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + { + $out_live++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + else + { + if (eregi("IVR",$row[0])) + { + $in_ivr++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + + $out_total++; + $i++; + } + + ##### MIDI alert audio file test ##### + # $test_midi=1; + # if ($test_midi > 0) + # { + # # echo ""; + # # echo ""; + # echo ""; + # echo " "; + # echo " "; + # echo " "; + # echo " "; + # echo " alt : test.mid"; + # echo ""; + # } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo "ΔΕΝ ΥΠΑΡΧΟΥΝ ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΝΑΜΟΝΗ \n"; + } + + + +################################################################################### +###### CALLS WAITING +################################################################################### +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} +$Cecho = ''; +$Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ | $agentonlyheader\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +$p=0; +while($p<$k) + { + $Cstatus = sprintf("%-6s", $CDstatus[$p]); + $Ccampaign_id = sprintf("%-12s", $CDcampaign_id[$p]); + $Cphone_number = sprintf("%-12s", $CDphone_number[$p]); + $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); + $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); + $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); + + $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); + $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); + + $G = ''; $EG = ''; + if ($CDcall_type[$p] == 'IN') + { + $G=""; $EG=''; + } + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; + + $p++; + } +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +if ($p<1) + {$Cecho='';} + +################################################################################### +###### AGENT TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_dead=0; +$agent_total=0; + +$phoneord=$orderby; +$userord=$orderby; +$groupord=$orderby; +$timeord=$orderby; +$campaignord=$orderby; + +if ($phoneord=='phoneup') {$phoneord='phonedown';} + else {$phoneord='phoneup';} +if ($userord=='userup') {$userord='userdown';} + else {$userord='userup';} +if ($groupord=='groupup') {$groupord='groupdown';} + else {$groupord='groupup';} +if ($timeord=='timeup') {$timeord='timedown';} + else {$timeord='timeup';} +if ($campaignord=='campaignup') {$campaignord='campaigndown';} + else {$campaignord='campaignup';} + +$Aecho = ''; +$Aecho .= "VICIDIAL: Πράκτορες Time On Calls Εκστρατεία: $group_string $NOW_TIME\n"; + + +$HDbegin = "+"; +$HTbegin = "|"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; +$HDusergroup = "--------------+"; +$HTusergroup = " ΟΜΑΔΑ ΧΡΗΣΤΩΝ |"; +$HDsessionid = "------------------+"; +$HTsessionid = " SESSIONID |"; +$HDbarge = "-------+"; +$HTbarge = " BARGE |"; +$HDstatus = "----------+"; +$HTstatus = " STATUS |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; +$HDserver_ip = "-----------------+"; +$HTserver_ip = " ΔΙΑΚΟΜΙΣΤΗΣ IP |"; +$HDcall_server_ip = "-----------------+"; +$HTcall_server_ip = " CALL ΔΙΑΚΟΜΙΣΤΗΣ IP |"; +$HDtime = "---------+"; +$HTtime = " MM:SS |"; +$HDcampaign = "------------+"; +$HTcampaign = " CAMPAIGN |"; +$HDcalls = "-------+"; +$HTcalls = " CALLS |"; +$HDpause = ''; +$HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; + +if (!ereg("N",$agent_pause_codes_active)) + { + $HDstatus = "----------"; + $HTstatus = " STATUS "; + $HDpause = "-------+"; + $HTpause = " PAUSE |"; + } +if ($PHONEdisplay < 1) + { + $HDphone = ''; + $HTphone = ''; + } +if ($CUSTPHONEdisplay < 1) + { + $HDcustphone = ''; + $HTcustphone = ''; + } +if ($UGdisplay < 1) + { + $HDusergroup = ''; + $HTusergroup = ''; + } +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + { + $HDsessionid = "-----------+"; + $HTsessionid = " SESSIONID |"; + } +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) + { + $HDbarge = ''; + $HTbarge = ''; + } +if ($SERVdisplay < 1) + { + $HDserver_ip = ''; + $HTserver_ip = ''; + $HDcall_server_ip = ''; + $HTcall_server_ip = ''; + } + + + +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; +$Aecho .= "$Aline"; +$Aecho .= "$Bline"; +$Aecho .= "$Aline"; + +if ($orderby=='timeup') {$orderSQL='vicidial_live_agents.status,last_call_time';} +if ($orderby=='timedown') {$orderSQL='vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='campaignup') {$orderSQL='vicidial_live_agents.campaign_id,vicidial_live_agents.status,last_call_time';} +if ($orderby=='campaigndown') {$orderSQL='vicidial_live_agents.campaign_id desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='groupup') {$orderSQL='user_group,vicidial_live_agents.status,last_call_time';} +if ($orderby=='groupdown') {$orderSQL='user_group desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='phoneup') {$orderSQL='extension,server_ip';} +if ($orderby=='phonedown') {$orderSQL='extension desc,server_ip desc';} +if ($UidORname > 0) + { + if ($orderby=='userup') {$orderSQL='full_name,status,last_call_time';} + if ($orderby=='userdown') {$orderSQL='full_name desc,status desc,last_call_time desc';} + } +else + { + if ($orderby=='userup') {$orderSQL='vicidial_live_agents.user';} + if ($orderby=='userdown') {$orderSQL='vicidial_live_agents.user desc';} + } + +if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} +else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} +if (strlen($usergroup)<1) {$usergroupSQL = '';} +else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} + +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + + $Aextension[$i] = $row[0]; + $Auser[$i] = $row[1]; + $Asessionid[$i] = $row[2]; + $Astatus[$i] = $row[3]; + $Aserver_ip[$i] = $row[4]; + $Acall_time[$i] = $row[5]; + $Acall_finish[$i] = $row[6]; + $Acall_server_ip[$i] = $row[7]; + $Acampaign_id[$i] = $row[8]; + $Auser_group[$i] = $row[9]; + $Afull_name[$i] = $row[10]; + $Acomments[$i] = $row[11]; + $Acalls_today[$i] = $row[12]; + $Acallerid[$i] = $row[13]; + $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; + + $i++; + } + +$callerids=''; +$pausecode=''; +$stmt="select callerid,lead_id,phone_number from vicidial_auto_calls;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$calls_to_list = mysql_num_rows($rslt); + if ($calls_to_list > 0) + { + $i=0; + while ($i < $calls_to_list) + { + $row=mysql_fetch_row($rslt); + $callerids .= "$row[0]|"; + $VAClead_ids[$i] = $row[1]; + $VACphones[$i] = $row[2]; + $i++; + } + } + +### Lookup phone logins + $i=0; + while ($i < $talking_to_print) + { + if (eregi("R/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('R/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi("Local/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('Local/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi('SIP/',$Aextension[$i])) + { + $protocol = 'SIP'; + $dialplan = eregi_replace('SIP/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('IAX2/',$Aextension[$i])) + { + $protocol = 'IAX2'; + $dialplan = eregi_replace('IAX2/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('Zap/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + + $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $phones_to_print = mysql_num_rows($rslt); + if ($phones_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Alogin[$i] = "$row[0]-----$i"; + } + else + { + $Alogin[$i] = "$Aextension[$i]-----$i"; + } + $i++; + } + +### Sort by phone if selected + if ($orderby=='phoneup') + { + sort($Alogin); + } + if ($orderby=='phonedown') + { + rsort($Alogin); + } + +### Run through the loop to display agents + $j=0; + $agentcount=0; + while ($j < $talking_to_print) + { + $n=0; + $custphone=''; + while ($n < $calls_to_list) + { + if ( (ereg("$VAClead_ids[$n]", $Alead_id[$j])) and (strlen($VAClead_ids[$n]) == strlen($Alead_id[$j])) ) + {$custphone = $VACphones[$n];} + $n++; + } + + $phone_split = explode("-----",$Alogin[$j]); + $i = $phone_split[1]; + + if (eregi("READY|PAUSED",$Astatus[$i])) + { + $Acall_time[$i]=$Astate_change[$i]; + + if ($Alead_id[$i] > 0) + { + $Astatus[$i] = 'DISPO'; + $Lstatus = 'DISPO'; + $status = ' DISPO'; + } + } + if ($non_latin < 1) + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} + } + else + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} + } + + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); + $Luser = $Auser[$i]; + $user = sprintf("%-20s", $Auser[$i]); + $Lsessionid = $Asessionid[$i]; + $sessionid = sprintf("%-9s", $Asessionid[$i]); + $Lstatus = $Astatus[$i]; + $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; + $server_ip = sprintf("%-15s", $Aserver_ip[$i]); + $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); + $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); + $comments= $Acomments[$i]; + $calls_today = sprintf("%-5s", $Acalls_today[$i]); + + if (!ereg("N",$agent_pause_codes_active)) + {$pausecode=' ';} + else + {$pausecode='';} + + if (eregi("INCALL",$Lstatus)) + { + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) + { + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } + } + + if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) + {$CM='A';} + else + { + if (eregi("Εισερχόμενα",$comments)) + {$CM='I';} + else + {$CM='M';} + } + } + else {$CM=' ';} + + if ($UGdisplay > 0) + { + if ($non_latin < 1) + { + $user_group = sprintf("%-12s", $Auser_group[$i]); + while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} + } + else + { + $user_group = sprintf("%-40s", $Auser_group[$i]); + while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} + } + } + if ($UidORname > 0) + { + if ($non_latin < 1) + { + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} + } + else + { + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} + } + } + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} + else + {$call_time_S = ($STARTtime - $Acall_time[$i]);} + + $call_time_MS = sec_convert($call_time_S,'M'); + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) + { + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} + } + if ($Lstatus=='DEAD') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_dead++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + } + } + if ($Lstatus=='DISPO') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } + if ($Lstatus=='PAUSED') + { + if (!ereg("N",$agent_pause_codes_active)) + { + $stmtC="select sub_status from vicidial_agent_log where user='$Luser' order by agent_log_id desc limit 1;"; + $rsltC=mysql_query($stmtC,$link); + $rowC=mysql_fetch_row($rsltC); + $pausecode = sprintf("%-6s", $rowC[0]); + $pausecode = "$pausecode "; + } + else + {$pausecode='';} + + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } +# if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) +# {$G=''; $EG='';} + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) + { + $G=''; $EG=''; + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + + $L=''; + $R=''; + if ($SIPmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($SIPmonitorLINK>1) {$R=" | BARGE";} + if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} + + if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} + else {$CP = "";} + + if ($UGdisplay > 0) {$UGD = " $G$user_group$EG |";} + else {$UGD = "";} + + if ($SERVdisplay > 0) {$SVD = "$G$server_ip$EG | $G$call_server_ip$EG | ";} + else {$SVD = "";} + + if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} + else {$phoneD = " ";} + + $vac_stage=''; + $vac_campaign=''; + $INGRP=''; + if ($CM == 'I') + { + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ingrp_to_print = mysql_num_rows($rslt); + if ($ingrp_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); + $row[1] = eregi_replace(".*-",'',$row[1]); + $vac_stage = sprintf("%-4s", $row[1]); + } + + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; + } + + $agentcount++; + + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG + |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + + $j++; + } + + $Aecho .= "$Aline"; + $Aecho .= " $agentcount agents logged in on all servers\n"; + $Aecho .= " System Load Average: $load_ave\n\n"; + + # $Aecho .= " - Balanced call\n"; + $Aecho .= " - Agent waiting for call\n"; + $Aecho .= " - Agent waiting for call > 1 minute\n"; + $Aecho .= " - Agent waiting for call > 5 minutes\n"; + $Aecho .= " - Agent on call > 10 seconds\n"; + $Aecho .= " - Agent on call > 1 minute\n"; + $Aecho .= " - Agent on call > 5 minutes\n"; + $Aecho .= " - Agent Paused > 10 seconds\n"; + $Aecho .= " - Agent Paused > 1 minute\n"; + $Aecho .= " - Agent Paused > 5 minutes\n"; + $Aecho .= " - Agent on a dead call\n"; + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + echo "$NFB$agent_dead$NFE πράκτορες νεκροί σε κλήσεις      \n"; + + echo "
";
+		echo "";
+		echo "$Cecho";
+		echo "$Aecho";
+	}
+	else
+	{
+	echo " ΚΑΝΕΝΑΣ ΧΕΙΡ. ΣΕ ΚΛΗΣΕΙΣ \n";
+	echo "
$Cecho";
+	}
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDADallSUMMARY.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDADallSUMMARY.php new file mode 100644 index 00000000..c0f77c90 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonVDADallSUMMARY.php @@ -0,0 +1,457 @@ + LICENSE: AGPLv2 +# +# Summary for all campaigns live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# changes: +# 61102-1616 - first build +# 61215-1131 - added answered calls and drop percent taken from answered calls +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80525-1040 - Added IVR status summary display for inbound calls +# 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +if (!isset($RR)) {$gRRroup=4;} + + +$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 and view_reports='1';"; + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +$stmt="select campaign_id from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +?> + + + + + +\n"; +echo "Real-Time All Εκστρατείες Summary\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "Real-Time All Εκστρατείες Summary           \n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO "; +echo "       \n"; +if ($adastats<2) + { + echo "+ VIEW MORE SETTINGS"; + } +else + { + echo "- VIEW LESS SETTINGS"; + } +echo "       ΑΝΑΦΟΡΕΣ"; +echo "

\n\n"; + +$k=0; +while($k<$groups_to_print) +{ +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$group = $groups[$k]; +echo "$group   -   "; +echo "Modify\n"; + + +$stmt = "select count(*) from vicidial_campaigns where campaign_id='$group' and campaign_allow_inbound='Y';"; +$rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +$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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DIALlev = $row[0]; +$DIALstatusA = $row[1]; +$DIALstatusB = $row[2]; +$DIALstatusC = $row[3]; +$DIALstatusD = $row[4]; +$DIALstatusE = $row[5]; +$DIALorder = $row[6]; +$DIALfilter = $row[7]; +$HOPlev = $row[8]; +$DIALmethod = $row[9]; +$maxDIALlev = $row[10]; +$DROPmax = $row[11]; +$targetDIFF = $row[12]; +$ADAintense = $row[13]; +$ADAavailonly = $row[14]; +$TAPERtime = $row[15]; +$CALLtime = $row[16]; +$DIALtimeout = $row[17]; +$DIALstatuses = $row[18]; + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + +$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$VDhop = $row[0]; + +$stmt="select dialable_leads,calls_today,drops_today,drops_answers_today_pct,differential_onemin,agents_average_onemin,balance_trunk_fill,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4 from vicidial_campaign_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DAleads = $row[0]; +$callsTODAY = $row[1]; +$dropsTODAY = $row[2]; +$drpctTODAY = $row[3]; +$diffONEMIN = $row[4]; +$agentsONEMIN = $row[5]; +$balanceFILL = $row[6]; +$answersTODAY = $row[7]; +$VSCcat1 = $row[8]; +$VSCcat1tally = $row[9]; +$VSCcat2 = $row[10]; +$VSCcat2tally = $row[11]; +$VSCcat3 = $row[12]; +$VSCcat3tally = $row[13]; +$VSCcat4 = $row[14]; +$VSCcat4tally = $row[15]; + +if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } +else {$diffpctONEMIN = '0.00';} + +$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$balanceSHORT = $row[0]; + +echo "
"; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
DIAL ΕΠΙΠΕΔΟ:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
  MAX ΕΠΙΠΕΔΟ:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     ΤΗΛΕΦΩΝΕΙΣΤΕ ΜΕΘΟΔΟΣ:  $DIALmethod    
HOPPER ΕΠΙΠΕΔΟ:  $HOPlev     DROPPED / ΑΠΑΝΤΗΣΗED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; +if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} +else + {echo "$drpctTODAY%";} +echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +### Header finish + + + + + +################################################################################ +### START calculating calls/agents +################################################################################ + +################################################################################ +###### OUTBOUND CALLS +################################################################################ +if ($campaign_allow_inbound > 0) + { + $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = preg_replace("/^ | -$/","",$row[0]); + $closer_campaigns = preg_replace("/ /","','",$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='" . mysql_real_escape_string($group) . "' and call_type='OUT') );"; + } +else + { + if ($group=='XXXX-ALL-ACTIVE-XXXX') {$groupSQL = '';} + else {$groupSQL = " and campaign_id='" . mysql_real_escape_string($group) . "'";} + + $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') $groupSQL;"; + } +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + {$out_live++;} + else + { + if (eregi("IVR",$row[0])) + {$in_ivr++;} + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + $out_total++; + $i++; + } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo "ΔΕΝ ΥΠΑΡΧΟΥΝ ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΝΑΜΟΝΗ \n"; + } + + +################################################################################### +###### TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_total=0; + +$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) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + $agentcount=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[3])) + { + $row[5]=$row[6]; + } + $Lstatus = $row[3]; + $status = sprintf("%-6s", $row[3]); + if (!eregi("INCALL|QUEUE",$row[3])) + {$call_time_S = ($STARTtime - $row[6]);} + else + {$call_time_S = ($STARTtime - $row[5]);} + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if (eregi("PAUSED",$row[3])) + { + if ($call_time_M_int >= 30) + {$i++; continue;} + else + { + $agent_paused++; $agent_total++; + } + } + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + $agentcount++; + + + $i++; + } + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + + echo "
";
+		echo "";
+	}
+	else
+	{
+	echo " NO AGENTS ON CALLS
\n"; + } + +################################################################################ +### END calculating calls/agents +################################################################################ + + + + + +echo "
"; + +echo "\n\n"; +$k++; +} + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeoncall.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeoncall.php new file mode 100644 index 00000000..76e2b1d6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeoncall.php @@ -0,0 +1,180 @@ + LICENSE: GPLv2 +### + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Call\n"; +echo "
\n\n";
+
+echo "VICIDIAL: Time On Call                                          $NOW_TIME\n\n";
+echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+echo "| STATION    | SESSIONID | CHANNEL   | NUMBER DIALED    | START TIME          | MINUTES |\n";
+echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+
+$stmt="SELECT count(*) from live_sip_channels where server_ip='$server_ip';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$parked_count = $row[0];
+	if ($parked_count > 0)
+	{
+	$stmt="select extension from live_channels where server_ip='$server_ip';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$ext_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$live_zap_counter=0;
+	$sessions = '';
+	while ($i < $ext_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if (preg_match("/^8600/i",$row[0]))
+			{
+			$sessions .= "$row[0]|";
+			}
+		$i++;
+		}
+	$sessions = preg_replace("/\|$/",'',$sessions);
+
+	if ($DB) {echo "SESSIONS: -$sessions-\n";}
+
+	$stmt="select * from live_sip_channels where server_ip='$server_ip' order by channel;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$parked_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$live_calls_counter=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ( (preg_match("/Zap\/|internal|ring/i",$row[3])) or (preg_match("/Local\//i",$row[0])) )
+			{
+			if ($DB) {echo "NOT STATION |$row[0]|$row[3]|\n";}
+			$session_id = '';
+			}
+		else 
+			{
+			if (preg_match("/$row[3]/i",$sessions))
+				{
+				if ($DB) {echo "LIVE STATION|$row[0]|$row[3]|\n";}
+				$session_id = $row[3];
+				$station = preg_replace("/SIP\//",'',$row[0]);
+				$station = preg_replace("/-.*/",'',$station);
+			
+				$LIVE_sessions[$live_calls_counter] =			"$session_id";
+				$LIVE_sessions_FORMAT[$live_calls_counter] =	sprintf("%-9s", $session_id);
+				$LIVE_stations[$live_calls_counter] =			"$station";
+				$LIVE_stations_FORMAT[$live_calls_counter] =	sprintf("%-10s", $station);
+
+		#		echo "| $station | $session_id | \n";
+
+				$live_calls_counter++;
+				}
+			else
+				{
+				if ($DB) {echo "NOT STATIONZ|$row[0]|$row[3]|\n";}
+				$session_id = '';
+				}
+			}
+
+		$i++;
+		}
+
+		if ($live_calls_counter > 0)
+		{
+		$i=0;
+		$LC_counter = $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;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$parked_to_print = mysql_num_rows($rslt);
+			$row=mysql_fetch_row($rslt);
+
+			$channel =			sprintf("%-9s", $row[0]);
+			$number_dialed =	sprintf("%-16s", $row[2]);
+			$start_time =		sprintf("%-19s", $row[3]);
+			$call_time_S = ($STARTtime - $row[4]);
+
+			$call_time_M = ($call_time_S / 60);
+			$call_time_M = round($call_time_M, 2);
+			$call_time_M_int = intval("$call_time_M");
+			$call_time_SEC = ($call_time_M - $call_time_M_int);
+			$call_time_SEC = ($call_time_SEC * 60);
+			$call_time_SEC = round($call_time_SEC, 0);
+			if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+			$call_time_MS = "$call_time_M_int:$call_time_SEC";
+			$call_time_MS =		sprintf("%7s", $call_time_MS);
+			$G = '';		$EG = '';
+			if ($call_time_M_int >= 12) {$G=''; $EG='';}
+			if ($call_time_M_int >= 31) {$G=''; $EG='';}
+
+			echo "| $G$LIVE_stations_FORMAT[$i]$EG | $G$LIVE_sessions_FORMAT[$i]$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+			$i++;
+			}
+
+		echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+		echo "  $i stations on live calls on server $server_ip\n\n";
+
+		echo "             - 12 minutes or more on live call\n";
+		echo "             - Over 30 minutes on live call\n";
+
+		}
+		else
+		{
+		echo "*****************************************************************************************\n";
+		echo "*****************************************************************************************\n";
+		echo "*************************************** NO LIVE STATIONS ********************************\n";
+		echo "*****************************************************************************************\n";
+		echo "*****************************************************************************************\n";
+		}
+
+	}
+	else
+	{
+	echo "*****************************************************************************************\n";
+	echo "*****************************************************************************************\n";
+	echo "*************************************** NO LIVE STATIONS ********************************\n";
+	echo "*****************************************************************************************\n";
+	echo "*****************************************************************************************\n";
+	}
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonpark.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonpark.php new file mode 100644 index 00000000..c373de42 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/AST_timeonpark.php @@ -0,0 +1,220 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1042 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$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 and view_reports='1';"; + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$timeONEhoursAGO = ($STARTtime - 3600); +$epochHALFhoursAGO = ($STARTtime - 1860); +$timeONEhoursAGO = date("Y-m-d H:i:s",$timeONEhoursAGO); +$timeHALFhoursAGO = date("Y-m-d H:i:s",$epochHALFhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where status='TALKING' and grab_time < '$timeONEhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + $stmt="delete from park_log where status='PARKED' and parked_time < '$timeHALFhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + } + } + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Park\n"; +echo "
\n\n";
+
+echo "VICIDIAL: Time On Park         $NOW_TIME    ΑΝΑΦΟΡΕΣ\n\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+echo "| CHANNEL    | GROUP           | START TIME          | MINUTES |\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+
+#$link=mysql_connect("localhost", "cron", "1234");
+# $linkX=mysql_connect("localhost", "cron", "1234");
+#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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 1) {$G=''; $EG='';}
+		if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------+-----------------+---------------------+---------+\n";
+		echo "  $i callers waiting on server $server_ip\n\n";
+
+		echo "             - 1 minute or more on hold\n";
+		echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	echo "********************ΔΕΝ ΥΠΑΡΧΟΥΝ ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΝΑΜΟΝΗ *********************\n";
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	}
+
+###################################################################################
+###### TIME ON INBOUND CALLS
+###################################################################################
+echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "VICIDIAL: Πράκτορες Time On Inbound Calls                             $NOW_TIME\n\n";
+echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+echo "| STATION    | USER   | CHANNEL    | GROUP           | START TIME          | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$extension =		sprintf("%-10s", $row[0]);
+		$user =				sprintf("%-6s", $row[1]);
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 12) {$G=''; $EG='';}
+		if ($call_time_M_int >= 31) {$G=''; $EG='';}
+
+		echo "| $G$extension$EG | $G$user$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+		echo "  $i agents on calls on server $server_ip\n\n";
+
+		echo "             - 12 minutes or more on call\n";
+		echo "             - Over 30 minutes on call\n";
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "********************************* ΚΑΝΕΝΑΣ ΧΕΙΡ. ΣΕ ΚΛΗΣΕΙΣ *********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin.php new file mode 100644 index 00000000..1ea589bc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin.php @@ -0,0 +1,25034 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +###################################################################################################### +###################################################################################################### +####### static variable settings for display options +###################################################################################################### +###################################################################################################### + +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$campaigns_color = '#FFCC99'; +$lists_color = '#FFCCCC'; +$ingroups_color = '#CC99FF'; +$remoteagent_color ='#CCFFCC'; +$usergroups_color = '#CCFFFF'; +$scripts_color = '#99FFCC'; +$filters_color = '#CCCCCC'; +$admin_color = '#FF99FF'; +$reports_color = '#99FF33'; + $times_color = '#FF33FF'; + $shifts_color = '#FF33FF'; + $phones_color = '#FF33FF'; + $conference_color = '#FF33FF'; + $server_color = '#FF33FF'; + $templates_color = '#FF33FF'; + $carriers_color = '#FF33FF'; + $settings_color = '#FF33FF'; + $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; +$subcamp_color = '#FF9933'; +$users_font = 'BLACK'; +$campaigns_font = 'BLACK'; +$lists_font = 'BLACK'; +$ingroups_font = 'BLACK'; +$remoteagent_font = 'BLACK'; +$usergroups_font = 'BLACK'; +$scripts_font = 'BLACK'; +$filters_font = 'BLACK'; +$admin_font = 'BLACK'; +$reports_font = 'BLACK'; + $times_font = 'BLACK'; + $phones_font = 'BLACK'; + $conference_font = 'BLACK'; + $server_font = 'BLACK'; + $settings_font = 'BLACK'; + $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; +$subcamp_font = 'BLACK'; + +### comment this section out for colorful section headings +$users_color = '#E6E6E6'; +$campaigns_color = '#E6E6E6'; +$lists_color = '#E6E6E6'; +$ingroups_color = '#E6E6E6'; +$remoteagent_color ='#E6E6E6'; +$usergroups_color = '#E6E6E6'; +$scripts_color = '#E6E6E6'; +$filters_color = '#E6E6E6'; +$admin_color = '#E6E6E6'; +$reports_color = '#E6E6E6'; + $times_color = '#C6C6C6'; + $shifts_color = '#C6C6C6'; + $phones_color = '#C6C6C6'; + $conference_color = '#C6C6C6'; + $server_color = '#C6C6C6'; + $templates_color = '#C6C6C6'; + $carriers_color = '#C6C6C6'; + $settings_color = '#C6C6C6'; + $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; +$subcamp_color = '#C6C6C6'; +### + + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +###################################################################################################### +###################################################################################################### +####### Form variable declaration +###################################################################################################### +###################################################################################################### + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["active"])) {$active=$_GET["active"];} + elseif (isset($_POST["active"])) {$active=$_POST["active"];} +if (isset($_GET["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_GET["adaptive_dl_diff_target"];} + elseif (isset($_POST["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_POST["adaptive_dl_diff_target"];} +if (isset($_GET["adaptive_dropped_percentage"])) {$adaptive_dropped_percentage=$_GET["adaptive_dropped_percentage"];} + elseif (isset($_POST["adaptive_dropped_percentage"])){$adaptive_dropped_percentage=$_POST["adaptive_dropped_percentage"];} +if (isset($_GET["adaptive_intensity"])) {$adaptive_intensity=$_GET["adaptive_intensity"];} + elseif (isset($_POST["adaptive_intensity"])) {$adaptive_intensity=$_POST["adaptive_intensity"];} +if (isset($_GET["adaptive_latest_server_time"])) {$adaptive_latest_server_time=$_GET["adaptive_latest_server_time"];} + elseif (isset($_POST["adaptive_latest_server_time"])){$adaptive_latest_server_time=$_POST["adaptive_latest_server_time"];} +if (isset($_GET["adaptive_maximum_level"])) {$adaptive_maximum_level=$_GET["adaptive_maximum_level"];} + elseif (isset($_POST["adaptive_maximum_level"])) {$adaptive_maximum_level=$_POST["adaptive_maximum_level"];} +if (isset($_GET["SUB"])) {$SUB=$_GET["SUB"];} + elseif (isset($_POST["SUB"])) {$SUB=$_POST["SUB"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["admin_hangup_enabled"])) {$admin_hangup_enabled=$_GET["admin_hangup_enabled"];} + elseif (isset($_POST["admin_hangup_enabled"])) {$admin_hangup_enabled=$_POST["admin_hangup_enabled"];} +if (isset($_GET["admin_hijack_enabled"])) {$admin_hijack_enabled=$_GET["admin_hijack_enabled"];} + elseif (isset($_POST["admin_hijack_enabled"])) {$admin_hijack_enabled=$_POST["admin_hijack_enabled"];} +if (isset($_GET["admin_monitor_enabled"])) {$admin_monitor_enabled=$_GET["admin_monitor_enabled"];} + elseif (isset($_POST["admin_monitor_enabled"])) {$admin_monitor_enabled=$_POST["admin_monitor_enabled"];} +if (isset($_GET["AFLogging_enabled"])) {$AFLogging_enabled=$_GET["AFLogging_enabled"];} + elseif (isset($_POST["AFLogging_enabled"])) {$AFLogging_enabled=$_POST["AFLogging_enabled"];} +if (isset($_GET["agent_choose_ingroups"])) {$agent_choose_ingroups=$_GET["agent_choose_ingroups"];} + elseif (isset($_POST["agent_choose_ingroups"])) {$agent_choose_ingroups=$_POST["agent_choose_ingroups"];} +if (isset($_GET["agentcall_manual"])) {$agentcall_manual=$_GET["agentcall_manual"];} + elseif (isset($_POST["agentcall_manual"])) {$agentcall_manual=$_POST["agentcall_manual"];} +if (isset($_GET["agentonly_callbacks"])) {$agentonly_callbacks=$_GET["agentonly_callbacks"];} + elseif (isset($_POST["agentonly_callbacks"])) {$agentonly_callbacks=$_POST["agentonly_callbacks"];} +if (isset($_GET["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_GET["AGI_call_logging_enabled"];} + elseif (isset($_POST["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_POST["AGI_call_logging_enabled"];} +if (isset($_GET["agi_output"])) {$agi_output=$_GET["agi_output"];} + elseif (isset($_POST["agi_output"])) {$agi_output=$_POST["agi_output"];} +if (isset($_GET["allcalls_delay"])) {$allcalls_delay=$_GET["allcalls_delay"];} + elseif (isset($_POST["allcalls_delay"])) {$allcalls_delay=$_POST["allcalls_delay"];} +if (isset($_GET["allow_closers"])) {$allow_closers=$_GET["allow_closers"];} + elseif (isset($_POST["allow_closers"])) {$allow_closers=$_POST["allow_closers"];} +if (isset($_GET["alt_number_dialing"])) {$alt_number_dialing=$_GET["alt_number_dialing"];} + elseif (isset($_POST["alt_number_dialing"])) {$alt_number_dialing=$_POST["alt_number_dialing"];} +if (isset($_GET["alter_agent_interface_options"])) {$alter_agent_interface_options=$_GET["alter_agent_interface_options"];} + elseif (isset($_POST["alter_agent_interface_options"])) {$alter_agent_interface_options=$_POST["alter_agent_interface_options"];} +if (isset($_GET["am_message_exten"])) {$am_message_exten=$_GET["am_message_exten"];} + elseif (isset($_POST["am_message_exten"])) {$am_message_exten=$_POST["am_message_exten"];} +if (isset($_GET["amd_send_to_vmx"])) {$amd_send_to_vmx=$_GET["amd_send_to_vmx"];} + elseif (isset($_POST["amd_send_to_vmx"])) {$amd_send_to_vmx=$_POST["amd_send_to_vmx"];} +if (isset($_GET["answer_transfer_agent"])) {$answer_transfer_agent=$_GET["answer_transfer_agent"];} + elseif (isset($_POST["answer_transfer_agent"])) {$answer_transfer_agent=$_POST["answer_transfer_agent"];} +if (isset($_GET["ast_admin_access"])) {$ast_admin_access=$_GET["ast_admin_access"];} + elseif (isset($_POST["ast_admin_access"])) {$ast_admin_access=$_POST["ast_admin_access"];} +if (isset($_GET["ast_delete_phones"])) {$ast_delete_phones=$_GET["ast_delete_phones"];} + elseif (isset($_POST["ast_delete_phones"])) {$ast_delete_phones=$_POST["ast_delete_phones"];} +if (isset($_GET["asterisk_version"])) {$asterisk_version=$_GET["asterisk_version"];} + elseif (isset($_POST["asterisk_version"])) {$asterisk_version=$_POST["asterisk_version"];} +if (isset($_GET["ASTmgrSECRET"])) {$ASTmgrSECRET=$_GET["ASTmgrSECRET"];} + elseif (isset($_POST["ASTmgrSECRET"])) {$ASTmgrSECRET=$_POST["ASTmgrSECRET"];} +if (isset($_GET["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_GET["ASTmgrUSERNAME"];} + elseif (isset($_POST["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_POST["ASTmgrUSERNAME"];} +if (isset($_GET["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_GET["ASTmgrUSERNAMElisten"];} + elseif (isset($_POST["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_POST["ASTmgrUSERNAMElisten"];} +if (isset($_GET["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_GET["ASTmgrUSERNAMEsend"];} + elseif (isset($_POST["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_POST["ASTmgrUSERNAMEsend"];} +if (isset($_GET["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_GET["ASTmgrUSERNAMEupdate"];} + elseif (isset($_POST["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_POST["ASTmgrUSERNAMEupdate"];} +if (isset($_GET["attempt_delay"])) {$attempt_delay=$_GET["attempt_delay"];} + elseif (isset($_POST["attempt_delay"])) {$attempt_delay=$_POST["attempt_delay"];} +if (isset($_GET["attempt_maximum"])) {$attempt_maximum=$_GET["attempt_maximum"];} + elseif (isset($_POST["attempt_maximum"])) {$attempt_maximum=$_POST["attempt_maximum"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["auto_dial_next_number"])) {$auto_dial_next_number=$_GET["auto_dial_next_number"];} + elseif (isset($_POST["auto_dial_next_number"])) {$auto_dial_next_number=$_POST["auto_dial_next_number"];} +if (isset($_GET["available_only_ratio_tally"])) {$available_only_ratio_tally=$_GET["available_only_ratio_tally"];} + elseif (isset($_POST["available_only_ratio_tally"])){$available_only_ratio_tally=$_POST["available_only_ratio_tally"];} +if (isset($_GET["call_out_number_group"])) {$call_out_number_group=$_GET["call_out_number_group"];} + elseif (isset($_POST["call_out_number_group"])) {$call_out_number_group=$_POST["call_out_number_group"];} +if (isset($_GET["call_parking_enabled"])) {$call_parking_enabled=$_GET["call_parking_enabled"];} + elseif (isset($_POST["call_parking_enabled"])) {$call_parking_enabled=$_POST["call_parking_enabled"];} +if (isset($_GET["call_time_comments"])) {$call_time_comments=$_GET["call_time_comments"];} + elseif (isset($_POST["call_time_comments"])) {$call_time_comments=$_POST["call_time_comments"];} +if (isset($_GET["call_time_id"])) {$call_time_id=$_GET["call_time_id"];} + elseif (isset($_POST["call_time_id"])) {$call_time_id=$_POST["call_time_id"];} +if (isset($_GET["call_time_name"])) {$call_time_name=$_GET["call_time_name"];} + elseif (isset($_POST["call_time_name"])) {$call_time_name=$_POST["call_time_name"];} +if (isset($_GET["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_GET["CallerID_popup_enabled"];} + elseif (isset($_POST["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_POST["CallerID_popup_enabled"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["campaign_detail"])) {$campaign_detail=$_GET["campaign_detail"];} + elseif (isset($_POST["campaign_detail"])) {$campaign_detail=$_POST["campaign_detail"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["campaign_name"])) {$campaign_name=$_GET["campaign_name"];} + elseif (isset($_POST["campaign_name"])) {$campaign_name=$_POST["campaign_name"];} +if (isset($_GET["campaign_rec_exten"])) {$campaign_rec_exten=$_GET["campaign_rec_exten"];} + elseif (isset($_POST["campaign_rec_exten"])) {$campaign_rec_exten=$_POST["campaign_rec_exten"];} +if (isset($_GET["campaign_rec_filename"])) {$campaign_rec_filename=$_GET["campaign_rec_filename"];} + elseif (isset($_POST["campaign_rec_filename"])) {$campaign_rec_filename=$_POST["campaign_rec_filename"];} +if (isset($_GET["ingroup_rec_filename"])) {$ingroup_rec_filename=$_GET["ingroup_rec_filename"];} + elseif (isset($_POST["ingroup_rec_filename"])) {$ingroup_rec_filename=$_POST["ingroup_rec_filename"];} +if (isset($_GET["campaign_recording"])) {$campaign_recording=$_GET["campaign_recording"];} + elseif (isset($_POST["campaign_recording"])) {$campaign_recording=$_POST["campaign_recording"];} +if (isset($_GET["campaign_vdad_exten"])) {$campaign_vdad_exten=$_GET["campaign_vdad_exten"];} + elseif (isset($_POST["campaign_vdad_exten"])) {$campaign_vdad_exten=$_POST["campaign_vdad_exten"];} +if (isset($_GET["change_agent_campaign"])) {$change_agent_campaign=$_GET["change_agent_campaign"];} + elseif (isset($_POST["change_agent_campaign"])) {$change_agent_campaign=$_POST["change_agent_campaign"];} +if (isset($_GET["client_browser"])) {$client_browser=$_GET["client_browser"];} + elseif (isset($_POST["client_browser"])) {$client_browser=$_POST["client_browser"];} +if (isset($_GET["closer_default_blended"])) {$closer_default_blended=$_GET["closer_default_blended"];} + elseif (isset($_POST["closer_default_blended"])) {$closer_default_blended=$_POST["closer_default_blended"];} +if (isset($_GET["company"])) {$company=$_GET["company"];} + elseif (isset($_POST["company"])) {$company=$_POST["company"];} +if (isset($_GET["computer_ip"])) {$computer_ip=$_GET["computer_ip"];} + elseif (isset($_POST["computer_ip"])) {$computer_ip=$_POST["computer_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["conf_on_extension"])) {$conf_on_extension=$_GET["conf_on_extension"];} + elseif (isset($_POST["conf_on_extension"])) {$conf_on_extension=$_POST["conf_on_extension"];} +if (isset($_GET["conferencing_enabled"])) {$conferencing_enabled=$_GET["conferencing_enabled"];} + elseif (isset($_POST["conferencing_enabled"])) {$conferencing_enabled=$_POST["conferencing_enabled"];} +if (isset($_GET["CoNfIrM"])) {$CoNfIrM=$_GET["CoNfIrM"];} + elseif (isset($_POST["CoNfIrM"])) {$CoNfIrM=$_POST["CoNfIrM"];} +if (isset($_GET["ct_default_start"])) {$ct_default_start=$_GET["ct_default_start"];} + elseif (isset($_POST["ct_default_start"])) {$ct_default_start=$_POST["ct_default_start"];} +if (isset($_GET["ct_default_stop"])) {$ct_default_stop=$_GET["ct_default_stop"];} + elseif (isset($_POST["ct_default_stop"])) {$ct_default_stop=$_POST["ct_default_stop"];} +if (isset($_GET["ct_friday_start"])) {$ct_friday_start=$_GET["ct_friday_start"];} + elseif (isset($_POST["ct_friday_start"])) {$ct_friday_start=$_POST["ct_friday_start"];} +if (isset($_GET["ct_friday_stop"])) {$ct_friday_stop=$_GET["ct_friday_stop"];} + elseif (isset($_POST["ct_friday_stop"])) {$ct_friday_stop=$_POST["ct_friday_stop"];} +if (isset($_GET["ct_monday_start"])) {$ct_monday_start=$_GET["ct_monday_start"];} + elseif (isset($_POST["ct_monday_start"])) {$ct_monday_start=$_POST["ct_monday_start"];} +if (isset($_GET["ct_monday_stop"])) {$ct_monday_stop=$_GET["ct_monday_stop"];} + elseif (isset($_POST["ct_monday_stop"])) {$ct_monday_stop=$_POST["ct_monday_stop"];} +if (isset($_GET["ct_saturday_start"])) {$ct_saturday_start=$_GET["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"];} + elseif (isset($_POST["ct_saturday_stop"])) {$ct_saturday_stop=$_POST["ct_saturday_stop"];} +if (isset($_GET["ct_sunday_start"])) {$ct_sunday_start=$_GET["ct_sunday_start"];} + elseif (isset($_POST["ct_sunday_start"])) {$ct_sunday_start=$_POST["ct_sunday_start"];} +if (isset($_GET["ct_sunday_stop"])) {$ct_sunday_stop=$_GET["ct_sunday_stop"];} + elseif (isset($_POST["ct_sunday_stop"])) {$ct_sunday_stop=$_POST["ct_sunday_stop"];} +if (isset($_GET["ct_thursday_start"])) {$ct_thursday_start=$_GET["ct_thursday_start"];} + elseif (isset($_POST["ct_thursday_start"])) {$ct_thursday_start=$_POST["ct_thursday_start"];} +if (isset($_GET["ct_thursday_stop"])) {$ct_thursday_stop=$_GET["ct_thursday_stop"];} + elseif (isset($_POST["ct_thursday_stop"])) {$ct_thursday_stop=$_POST["ct_thursday_stop"];} +if (isset($_GET["ct_tuesday_start"])) {$ct_tuesday_start=$_GET["ct_tuesday_start"];} + elseif (isset($_POST["ct_tuesday_start"])) {$ct_tuesday_start=$_POST["ct_tuesday_start"];} +if (isset($_GET["ct_tuesday_stop"])) {$ct_tuesday_stop=$_GET["ct_tuesday_stop"];} + elseif (isset($_POST["ct_tuesday_stop"])) {$ct_tuesday_stop=$_POST["ct_tuesday_stop"];} +if (isset($_GET["ct_wednesday_start"])) {$ct_wednesday_start=$_GET["ct_wednesday_start"];} + elseif (isset($_POST["ct_wednesday_start"])) {$ct_wednesday_start=$_POST["ct_wednesday_start"];} +if (isset($_GET["ct_wednesday_stop"])) {$ct_wednesday_stop=$_GET["ct_wednesday_stop"];} + elseif (isset($_POST["ct_wednesday_stop"])) {$ct_wednesday_stop=$_POST["ct_wednesday_stop"];} +if (isset($_GET["DBX_database"])) {$DBX_database=$_GET["DBX_database"];} + elseif (isset($_POST["DBX_database"])) {$DBX_database=$_POST["DBX_database"];} +if (isset($_GET["DBX_pass"])) {$DBX_pass=$_GET["DBX_pass"];} + elseif (isset($_POST["DBX_pass"])) {$DBX_pass=$_POST["DBX_pass"];} +if (isset($_GET["DBX_port"])) {$DBX_port=$_GET["DBX_port"];} + elseif (isset($_POST["DBX_port"])) {$DBX_port=$_POST["DBX_port"];} +if (isset($_GET["DBX_server"])) {$DBX_server=$_GET["DBX_server"];} + elseif (isset($_POST["DBX_server"])) {$DBX_server=$_POST["DBX_server"];} +if (isset($_GET["DBX_user"])) {$DBX_user=$_GET["DBX_user"];} + elseif (isset($_POST["DBX_user"])) {$DBX_user=$_POST["DBX_user"];} +if (isset($_GET["DBY_database"])) {$DBY_database=$_GET["DBY_database"];} + elseif (isset($_POST["DBY_database"])) {$DBY_database=$_POST["DBY_database"];} +if (isset($_GET["DBY_pass"])) {$DBY_pass=$_GET["DBY_pass"];} + elseif (isset($_POST["DBY_pass"])) {$DBY_pass=$_POST["DBY_pass"];} +if (isset($_GET["DBY_port"])) {$DBY_port=$_GET["DBY_port"];} + elseif (isset($_POST["DBY_port"])) {$DBY_port=$_POST["DBY_port"];} +if (isset($_GET["DBY_server"])) {$DBY_server=$_GET["DBY_server"];} + elseif (isset($_POST["DBY_server"])) {$DBY_server=$_POST["DBY_server"];} +if (isset($_GET["DBY_user"])) {$DBY_user=$_GET["DBY_user"];} + elseif (isset($_POST["DBY_user"])) {$DBY_user=$_POST["DBY_user"];} +if (isset($_GET["delete_call_times"])) {$delete_call_times=$_GET["delete_call_times"];} + elseif (isset($_POST["delete_call_times"])) {$delete_call_times=$_POST["delete_call_times"];} +if (isset($_GET["delete_campaigns"])) {$delete_campaigns=$_GET["delete_campaigns"];} + elseif (isset($_POST["delete_campaigns"])) {$delete_campaigns=$_POST["delete_campaigns"];} +if (isset($_GET["delete_filters"])) {$delete_filters=$_GET["delete_filters"];} + elseif (isset($_POST["delete_filters"])) {$delete_filters=$_POST["delete_filters"];} +if (isset($_GET["delete_ingroups"])) {$delete_ingroups=$_GET["delete_ingroups"];} + elseif (isset($_POST["delete_ingroups"])) {$delete_ingroups=$_POST["delete_ingroups"];} +if (isset($_GET["delete_lists"])) {$delete_lists=$_GET["delete_lists"];} + elseif (isset($_POST["delete_lists"])) {$delete_lists=$_POST["delete_lists"];} +if (isset($_GET["delete_remote_agents"])) {$delete_remote_agents=$_GET["delete_remote_agents"];} + elseif (isset($_POST["delete_remote_agents"])) {$delete_remote_agents=$_POST["delete_remote_agents"];} +if (isset($_GET["delete_scripts"])) {$delete_scripts=$_GET["delete_scripts"];} + elseif (isset($_POST["delete_scripts"])) {$delete_scripts=$_POST["delete_scripts"];} +if (isset($_GET["delete_user_groups"])) {$delete_user_groups=$_GET["delete_user_groups"];} + elseif (isset($_POST["delete_user_groups"])) {$delete_user_groups=$_POST["delete_user_groups"];} +if (isset($_GET["delete_users"])) {$delete_users=$_GET["delete_users"];} + elseif (isset($_POST["delete_users"])) {$delete_users=$_POST["delete_users"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["dial_status_a"])) {$dial_status_a=$_GET["dial_status_a"];} + elseif (isset($_POST["dial_status_a"])) {$dial_status_a=$_POST["dial_status_a"];} +if (isset($_GET["dial_status_b"])) {$dial_status_b=$_GET["dial_status_b"];} + elseif (isset($_POST["dial_status_b"])) {$dial_status_b=$_POST["dial_status_b"];} +if (isset($_GET["dial_status_c"])) {$dial_status_c=$_GET["dial_status_c"];} + elseif (isset($_POST["dial_status_c"])) {$dial_status_c=$_POST["dial_status_c"];} +if (isset($_GET["dial_status_d"])) {$dial_status_d=$_GET["dial_status_d"];} + elseif (isset($_POST["dial_status_d"])) {$dial_status_d=$_POST["dial_status_d"];} +if (isset($_GET["dial_status_e"])) {$dial_status_e=$_GET["dial_status_e"];} + elseif (isset($_POST["dial_status_e"])) {$dial_status_e=$_POST["dial_status_e"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dialplan_number"])) {$dialplan_number=$_GET["dialplan_number"];} + elseif (isset($_POST["dialplan_number"])) {$dialplan_number=$_POST["dialplan_number"];} +if (isset($_GET["drop_call_seconds"])) {$drop_call_seconds=$_GET["drop_call_seconds"];} + elseif (isset($_POST["drop_call_seconds"])) {$drop_call_seconds=$_POST["drop_call_seconds"];} +if (isset($_GET["drop_exten"])) {$drop_exten=$_GET["drop_exten"];} + elseif (isset($_POST["drop_exten"])) {$drop_exten=$_POST["drop_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["dtmf_send_extension"])) {$dtmf_send_extension=$_GET["dtmf_send_extension"];} + elseif (isset($_POST["dtmf_send_extension"])) {$dtmf_send_extension=$_POST["dtmf_send_extension"];} +if (isset($_GET["enable_fast_refresh"])) {$enable_fast_refresh=$_GET["enable_fast_refresh"];} + elseif (isset($_POST["enable_fast_refresh"])) {$enable_fast_refresh=$_POST["enable_fast_refresh"];} +if (isset($_GET["enable_persistant_mysql"])) {$enable_persistant_mysql=$_GET["enable_persistant_mysql"];} + elseif (isset($_POST["enable_persistant_mysql"])) {$enable_persistant_mysql=$_POST["enable_persistant_mysql"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["fast_refresh_rate"])) {$fast_refresh_rate=$_GET["fast_refresh_rate"];} + elseif (isset($_POST["fast_refresh_rate"])) {$fast_refresh_rate=$_POST["fast_refresh_rate"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["fronter_display"])) {$fronter_display=$_GET["fronter_display"];} + elseif (isset($_POST["fronter_display"])) {$fronter_display=$_POST["fronter_display"];} +if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];} + elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["get_call_launch"])) {$get_call_launch=$_GET["get_call_launch"];} + elseif (isset($_POST["get_call_launch"])) {$get_call_launch=$_POST["get_call_launch"];} +if (isset($_GET["group_color"])) {$group_color=$_GET["group_color"];} + elseif (isset($_POST["group_color"])) {$group_color=$_POST["group_color"];} +if (isset($_GET["group_id"])) {$group_id=$_GET["group_id"];} + elseif (isset($_POST["group_id"])) {$group_id=$_POST["group_id"];} +if (isset($_GET["group_name"])) {$group_name=$_GET["group_name"];} + elseif (isset($_POST["group_name"])) {$group_name=$_POST["group_name"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["XFERgroups"])) {$XFERgroups=$_GET["XFERgroups"];} + elseif (isset($_POST["XFERgroups"])) {$XFERgroups=$_POST["XFERgroups"];} +if (isset($_GET["HKstatus"])) {$HKstatus=$_GET["HKstatus"];} + elseif (isset($_POST["HKstatus"])) {$HKstatus=$_POST["HKstatus"];} +if (isset($_GET["hopper_level"])) {$hopper_level=$_GET["hopper_level"];} + elseif (isset($_POST["hopper_level"])) {$hopper_level=$_POST["hopper_level"];} +if (isset($_GET["hotkey"])) {$hotkey=$_GET["hotkey"];} + elseif (isset($_POST["hotkey"])) {$hotkey=$_POST["hotkey"];} +if (isset($_GET["hotkeys_active"])) {$hotkeys_active=$_GET["hotkeys_active"];} + elseif (isset($_POST["hotkeys_active"])) {$hotkeys_active=$_POST["hotkeys_active"];} +if (isset($_GET["install_directory"])) {$install_directory=$_GET["install_directory"];} + elseif (isset($_POST["install_directory"])) {$install_directory=$_POST["install_directory"];} +if (isset($_GET["lead_filter_comments"])) {$lead_filter_comments=$_GET["lead_filter_comments"];} + elseif (isset($_POST["lead_filter_comments"])) {$lead_filter_comments=$_POST["lead_filter_comments"];} +if (isset($_GET["lead_filter_id"])) {$lead_filter_id=$_GET["lead_filter_id"];} + elseif (isset($_POST["lead_filter_id"])) {$lead_filter_id=$_POST["lead_filter_id"];} +if (isset($_GET["lead_filter_name"])) {$lead_filter_name=$_GET["lead_filter_name"];} + elseif (isset($_POST["lead_filter_name"])) {$lead_filter_name=$_POST["lead_filter_name"];} +if (isset($_GET["lead_filter_sql"])) {$lead_filter_sql=$_GET["lead_filter_sql"];} + elseif (isset($_POST["lead_filter_sql"])) {$lead_filter_sql=$_POST["lead_filter_sql"];} +if (isset($_GET["lead_order"])) {$lead_order=$_GET["lead_order"];} + elseif (isset($_POST["lead_order"])) {$lead_order=$_POST["lead_order"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["list_name"])) {$list_name=$_GET["list_name"];} + elseif (isset($_POST["list_name"])) {$list_name=$_POST["list_name"];} +if (isset($_GET["load_leads"])) {$load_leads=$_GET["load_leads"];} + elseif (isset($_POST["load_leads"])) {$load_leads=$_POST["load_leads"];} +if (isset($_GET["local_call_time"])) {$local_call_time=$_GET["local_call_time"];} + elseif (isset($_POST["local_call_time"])) {$local_call_time=$_POST["local_call_time"];} +if (isset($_GET["local_gmt"])) {$local_gmt=$_GET["local_gmt"];} + elseif (isset($_POST["local_gmt"])) {$local_gmt=$_POST["local_gmt"];} +if (isset($_GET["local_web_callerID_URL"])) {$local_web_callerID_URL=$_GET["local_web_callerID_URL"];} + elseif (isset($_POST["local_web_callerID_URL"])) {$local_web_callerID_URL=$_POST["local_web_callerID_URL"];} +if (isset($_GET["login"])) {$login=$_GET["login"];} + elseif (isset($_POST["login"])) {$login=$_POST["login"];} +if (isset($_GET["login_campaign"])) {$login_campaign=$_GET["login_campaign"];} + elseif (isset($_POST["login_campaign"])) {$login_campaign=$_POST["login_campaign"];} +if (isset($_GET["login_pass"])) {$login_pass=$_GET["login_pass"];} + elseif (isset($_POST["login_pass"])) {$login_pass=$_POST["login_pass"];} +if (isset($_GET["login_user"])) {$login_user=$_GET["login_user"];} + elseif (isset($_POST["login_user"])) {$login_user=$_POST["login_user"];} +if (isset($_GET["max_vicidial_trunks"])) {$max_vicidial_trunks=$_GET["max_vicidial_trunks"];} + elseif (isset($_POST["max_vicidial_trunks"])) {$max_vicidial_trunks=$_POST["max_vicidial_trunks"];} +if (isset($_GET["modify_call_times"])) {$modify_call_times=$_GET["modify_call_times"];} + elseif (isset($_POST["modify_call_times"])) {$modify_call_times=$_POST["modify_call_times"];} +if (isset($_GET["modify_leads"])) {$modify_leads=$_GET["modify_leads"];} + elseif (isset($_POST["modify_leads"])) {$modify_leads=$_POST["modify_leads"];} +if (isset($_GET["monitor_prefix"])) {$monitor_prefix=$_GET["monitor_prefix"];} + elseif (isset($_POST["monitor_prefix"])) {$monitor_prefix=$_POST["monitor_prefix"];} +if (isset($_GET["next_agent_call"])) {$next_agent_call=$_GET["next_agent_call"];} + elseif (isset($_POST["next_agent_call"])) {$next_agent_call=$_POST["next_agent_call"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["old_campaign_id"])) {$old_campaign_id=$_GET["old_campaign_id"];} + elseif (isset($_POST["old_campaign_id"])) {$old_campaign_id=$_POST["old_campaign_id"];} +if (isset($_GET["old_conf_exten"])) {$old_conf_exten=$_GET["old_conf_exten"];} + elseif (isset($_POST["old_conf_exten"])) {$old_conf_exten=$_POST["old_conf_exten"];} +if (isset($_GET["old_extension"])) {$old_extension=$_GET["old_extension"];} + elseif (isset($_POST["old_extension"])) {$old_extension=$_POST["old_extension"];} +if (isset($_GET["old_server_id"])) {$old_server_id=$_GET["old_server_id"];} + elseif (isset($_POST["old_server_id"])) {$old_server_id=$_POST["old_server_id"];} +if (isset($_GET["old_server_ip"])) {$old_server_ip=$_GET["old_server_ip"];} + elseif (isset($_POST["old_server_ip"])) {$old_server_ip=$_POST["old_server_ip"];} +if (isset($_GET["OLDuser_group"])) {$OLDuser_group=$_GET["OLDuser_group"];} + elseif (isset($_POST["OLDuser_group"])) {$OLDuser_group=$_POST["OLDuser_group"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["park_ext"])) {$park_ext=$_GET["park_ext"];} + elseif (isset($_POST["park_ext"])) {$park_ext=$_POST["park_ext"];} +if (isset($_GET["park_file_name"])) {$park_file_name=$_GET["park_file_name"];} + elseif (isset($_POST["park_file_name"])) {$park_file_name=$_POST["park_file_name"];} +if (isset($_GET["park_on_extension"])) {$park_on_extension=$_GET["park_on_extension"];} + elseif (isset($_POST["park_on_extension"])) {$park_on_extension=$_POST["park_on_extension"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["phone_type"])) {$phone_type=$_GET["phone_type"];} + elseif (isset($_POST["phone_type"])) {$phone_type=$_POST["phone_type"];} +if (isset($_GET["picture"])) {$picture=$_GET["picture"];} + elseif (isset($_POST["picture"])) {$picture=$_POST["picture"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_GET["QUEUE_ACTION_enabled"];} + elseif (isset($_POST["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_POST["QUEUE_ACTION_enabled"];} +if (isset($_GET["recording_exten"])) {$recording_exten=$_GET["recording_exten"];} + elseif (isset($_POST["recording_exten"])) {$recording_exten=$_POST["recording_exten"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["reset_hopper"])) {$reset_hopper=$_GET["reset_hopper"];} + elseif (isset($_POST["reset_hopper"])) {$reset_hopper=$_POST["reset_hopper"];} +if (isset($_GET["reset_list"])) {$reset_list=$_GET["reset_list"];} + elseif (isset($_POST["reset_list"])) {$reset_list=$_POST["reset_list"];} +if (isset($_GET["safe_harbor_exten"])) {$safe_harbor_exten=$_GET["safe_harbor_exten"];} + elseif (isset($_POST["safe_harbor_exten"])) {$safe_harbor_exten=$_POST["safe_harbor_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["scheduled_callbacks"])) {$scheduled_callbacks=$_GET["scheduled_callbacks"];} + elseif (isset($_POST["scheduled_callbacks"])) {$scheduled_callbacks=$_POST["scheduled_callbacks"];} +if (isset($_GET["script_comments"])) {$script_comments=$_GET["script_comments"];} + elseif (isset($_POST["script_comments"])) {$script_comments=$_POST["script_comments"];} +if (isset($_GET["script_id"])) {$script_id=$_GET["script_id"];} + elseif (isset($_POST["script_id"])) {$script_id=$_POST["script_id"];} +if (isset($_GET["script_name"])) {$script_name=$_GET["script_name"];} + elseif (isset($_POST["script_name"])) {$script_name=$_POST["script_name"];} +if (isset($_GET["script_text"])) {$script_text=$_GET["script_text"];} + elseif (isset($_POST["script_text"])) {$script_text=$_POST["script_text"];} +if (isset($_GET["selectable"])) {$selectable=$_GET["selectable"];} + elseif (isset($_POST["selectable"])) {$selectable=$_POST["selectable"];} +if (isset($_GET["server_description"])) {$server_description=$_GET["server_description"];} + elseif (isset($_POST["server_description"])) {$server_description=$_POST["server_description"];} +if (isset($_GET["server_id"])) {$server_id=$_GET["server_id"];} + elseif (isset($_POST["server_id"])) {$server_id=$_POST["server_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +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"];} +if (isset($_GET["state_rule"])) {$state_rule=$_GET["state_rule"];} + elseif (isset($_POST["state_rule"])) {$state_rule=$_POST["state_rule"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["status_name"])) {$status_name=$_GET["status_name"];} + elseif (isset($_POST["status_name"])) {$status_name=$_POST["status_name"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["sys_perf_log"])) {$sys_perf_log=$_GET["sys_perf_log"];} + elseif (isset($_POST["sys_perf_log"])) {$sys_perf_log=$_POST["sys_perf_log"];} +if (isset($_GET["telnet_host"])) {$telnet_host=$_GET["telnet_host"];} + elseif (isset($_POST["telnet_host"])) {$telnet_host=$_POST["telnet_host"];} +if (isset($_GET["telnet_port"])) {$telnet_port=$_GET["telnet_port"];} + elseif (isset($_POST["telnet_port"])) {$telnet_port=$_POST["telnet_port"];} +if (isset($_GET["updater_check_enabled"])) {$updater_check_enabled=$_GET["updater_check_enabled"];} + elseif (isset($_POST["updater_check_enabled"])) {$updater_check_enabled=$_POST["updater_check_enabled"];} +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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["user_level"])) {$user_level=$_GET["user_level"];} + elseif (isset($_POST["user_level"])) {$user_level=$_POST["user_level"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["user_switching_enabled"])) {$user_switching_enabled=$_GET["user_switching_enabled"];} + elseif (isset($_POST["user_switching_enabled"])) {$user_switching_enabled=$_POST["user_switching_enabled"];} +if (isset($_GET["vd_server_logs"])) {$vd_server_logs=$_GET["vd_server_logs"];} + elseif (isset($_POST["vd_server_logs"])) {$vd_server_logs=$_POST["vd_server_logs"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_GET["VICIDIAL_park_on_extension"];} + elseif (isset($_POST["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_POST["VICIDIAL_park_on_extension"];} +if (isset($_GET["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_GET["VICIDIAL_park_on_filename"];} + elseif (isset($_POST["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_POST["VICIDIAL_park_on_filename"];} +if (isset($_GET["vicidial_recording"])) {$vicidial_recording=$_GET["vicidial_recording"];} + elseif (isset($_POST["vicidial_recording"])) {$vicidial_recording=$_POST["vicidial_recording"];} +if (isset($_GET["vicidial_transfers"])) {$vicidial_transfers=$_GET["vicidial_transfers"];} + elseif (isset($_POST["vicidial_transfers"])) {$vicidial_transfers=$_POST["vicidial_transfers"];} +if (isset($_GET["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_GET["VICIDIAL_web_URL"];} + elseif (isset($_POST["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_POST["VICIDIAL_web_URL"];} +if (isset($_GET["voicemail_button_enabled"])) {$voicemail_button_enabled=$_GET["voicemail_button_enabled"];} + elseif (isset($_POST["voicemail_button_enabled"])) {$voicemail_button_enabled=$_POST["voicemail_button_enabled"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["voicemail_ext"])) {$voicemail_ext=$_GET["voicemail_ext"];} + elseif (isset($_POST["voicemail_ext"])) {$voicemail_ext=$_POST["voicemail_ext"];} +if (isset($_GET["voicemail_exten"])) {$voicemail_exten=$_GET["voicemail_exten"];} + elseif (isset($_POST["voicemail_exten"])) {$voicemail_exten=$_POST["voicemail_exten"];} +if (isset($_GET["voicemail_id"])) {$voicemail_id=$_GET["voicemail_id"];} + elseif (isset($_POST["voicemail_id"])) {$voicemail_id=$_POST["voicemail_id"];} +if (isset($_GET["web_form_address"])) {$web_form_address=$_GET["web_form_address"];} + elseif (isset($_POST["web_form_address"])) {$web_form_address=$_POST["web_form_address"];} +if (isset($_GET["wrapup_message"])) {$wrapup_message=$_GET["wrapup_message"];} + elseif (isset($_POST["wrapup_message"])) {$wrapup_message=$_POST["wrapup_message"];} +if (isset($_GET["wrapup_seconds"])) {$wrapup_seconds=$_GET["wrapup_seconds"];} + elseif (isset($_POST["wrapup_seconds"])) {$wrapup_seconds=$_POST["wrapup_seconds"];} +if (isset($_GET["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_GET["xferconf_a_dtmf"];} + elseif (isset($_POST["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_POST["xferconf_a_dtmf"];} +if (isset($_GET["xferconf_a_number"])) {$xferconf_a_number=$_GET["xferconf_a_number"];} + elseif (isset($_POST["xferconf_a_number"])) {$xferconf_a_number=$_POST["xferconf_a_number"];} +if (isset($_GET["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_GET["xferconf_b_dtmf"];} + elseif (isset($_POST["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_POST["xferconf_b_dtmf"];} +if (isset($_GET["xferconf_b_number"])) {$xferconf_b_number=$_GET["xferconf_b_number"];} + elseif (isset($_POST["xferconf_b_number"])) {$xferconf_b_number=$_POST["xferconf_b_number"];} +if (isset($_GET["vicidial_balance_active"])) {$vicidial_balance_active=$_GET["vicidial_balance_active"];} + elseif (isset($_POST["vicidial_balance_active"])) {$vicidial_balance_active=$_POST["vicidial_balance_active"];} +if (isset($_GET["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_GET["balance_trunks_offlimits"];} + elseif (isset($_POST["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_POST["balance_trunks_offlimits"];} +if (isset($_GET["dedicated_trunks"])) {$dedicated_trunks=$_GET["dedicated_trunks"];} + elseif (isset($_POST["dedicated_trunks"])) {$dedicated_trunks=$_POST["dedicated_trunks"];} +if (isset($_GET["trunk_restriction"])) {$trunk_restriction=$_GET["trunk_restriction"];} + elseif (isset($_POST["trunk_restriction"])) {$trunk_restriction=$_POST["trunk_restriction"];} +if (isset($_GET["campaigns"])) {$campaigns=$_GET["campaigns"];} + elseif (isset($_POST["campaigns"])) {$campaigns=$_POST["campaigns"];} +if (isset($_GET["dial_level_override"])) {$dial_level_override=$_GET["dial_level_override"];} + elseif (isset($_POST["dial_level_override"])) {$dial_level_override=$_POST["dial_level_override"];} +if (isset($_GET["concurrent_transfers"])) {$concurrent_transfers=$_GET["concurrent_transfers"];} + elseif (isset($_POST["concurrent_transfers"])) {$concurrent_transfers=$_POST["concurrent_transfers"];} +if (isset($_GET["auto_alt_dial"])) {$auto_alt_dial=$_GET["auto_alt_dial"];} + elseif (isset($_POST["auto_alt_dial"])) {$auto_alt_dial=$_POST["auto_alt_dial"];} +if (isset($_GET["modify_users"])) {$modify_users=$_GET["modify_users"];} + elseif (isset($_POST["modify_users"])) {$modify_users=$_POST["modify_users"];} +if (isset($_GET["modify_campaigns"])) {$modify_campaigns=$_GET["modify_campaigns"];} + elseif (isset($_POST["modify_campaigns"])) {$modify_campaigns=$_POST["modify_campaigns"];} +if (isset($_GET["modify_lists"])) {$modify_lists=$_GET["modify_lists"];} + elseif (isset($_POST["modify_lists"])) {$modify_lists=$_POST["modify_lists"];} +if (isset($_GET["modify_scripts"])) {$modify_scripts=$_GET["modify_scripts"];} + elseif (isset($_POST["modify_scripts"])) {$modify_scripts=$_POST["modify_scripts"];} +if (isset($_GET["modify_filters"])) {$modify_filters=$_GET["modify_filters"];} + elseif (isset($_POST["modify_filters"])) {$modify_filters=$_POST["modify_filters"];} +if (isset($_GET["modify_ingroups"])) {$modify_ingroups=$_GET["modify_ingroups"];} + elseif (isset($_POST["modify_ingroups"])) {$modify_ingroups=$_POST["modify_ingroups"];} +if (isset($_GET["modify_usergroups"])) {$modify_usergroups=$_GET["modify_usergroups"];} + elseif (isset($_POST["modify_usergroups"])) {$modify_usergroups=$_POST["modify_usergroups"];} +if (isset($_GET["modify_remoteagents"])) {$modify_remoteagents=$_GET["modify_remoteagents"];} + elseif (isset($_POST["modify_remoteagents"])) {$modify_remoteagents=$_POST["modify_remoteagents"];} +if (isset($_GET["modify_servers"])) {$modify_servers=$_GET["modify_servers"];} + elseif (isset($_POST["modify_servers"])) {$modify_servers=$_POST["modify_servers"];} +if (isset($_GET["view_reports"])) {$view_reports=$_GET["view_reports"];} + elseif (isset($_POST["view_reports"])) {$view_reports=$_POST["view_reports"];} +if (isset($_GET["agent_pause_codes_active"])) {$agent_pause_codes_active=$_GET["agent_pause_codes_active"];} + elseif (isset($_POST["agent_pause_codes_active"])) {$agent_pause_codes_active=$_POST["agent_pause_codes_active"];} +if (isset($_GET["pause_code"])) {$pause_code=$_GET["pause_code"];} + elseif (isset($_POST["pause_code"])) {$pause_code=$_POST["pause_code"];} +if (isset($_GET["pause_code_name"])) {$pause_code_name=$_GET["pause_code_name"];} + elseif (isset($_POST["pause_code_name"])) {$pause_code_name=$_POST["pause_code_name"];} +if (isset($_GET["billable"])) {$billable=$_GET["billable"];} + elseif (isset($_POST["billable"])) {$billable=$_POST["billable"];} +if (isset($_GET["campaign_description"])) {$campaign_description=$_GET["campaign_description"];} + elseif (isset($_POST["campaign_description"])) {$campaign_description=$_POST["campaign_description"];} +if (isset($_GET["campaign_stats_refresh"])) {$campaign_stats_refresh=$_GET["campaign_stats_refresh"];} + elseif (isset($_POST["campaign_stats_refresh"])){$campaign_stats_refresh=$_POST["campaign_stats_refresh"];} +if (isset($_GET["list_description"])) {$list_description=$_GET["list_description"];} + elseif (isset($_POST["list_description"])) {$list_description=$_POST["list_description"];} +if (isset($_GET["vicidial_recording_override"])) {$vicidial_recording_override=$_GET["vicidial_recording_override"];} + elseif (isset($_POST["vicidial_recording_override"])) {$vicidial_recording_override=$_POST["vicidial_recording_override"];} +if (isset($_GET["use_non_latin"])) {$use_non_latin=$_GET["use_non_latin"];} + elseif (isset($_POST["use_non_latin"])) {$use_non_latin=$_POST["use_non_latin"];} +if (isset($_GET["webroot_writable"])) {$webroot_writable=$_GET["webroot_writable"];} + elseif (isset($_POST["webroot_writable"])) {$webroot_writable=$_POST["webroot_writable"];} +if (isset($_GET["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_GET["enable_queuemetrics_logging"];} + elseif (isset($_POST["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_POST["enable_queuemetrics_logging"];} +if (isset($_GET["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_GET["queuemetrics_server_ip"];} + elseif (isset($_POST["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_POST["queuemetrics_server_ip"];} +if (isset($_GET["queuemetrics_dbname"])) {$queuemetrics_dbname=$_GET["queuemetrics_dbname"];} + elseif (isset($_POST["queuemetrics_dbname"])) {$queuemetrics_dbname=$_POST["queuemetrics_dbname"];} +if (isset($_GET["queuemetrics_login"])) {$queuemetrics_login=$_GET["queuemetrics_login"];} + elseif (isset($_POST["queuemetrics_login"])) {$queuemetrics_login=$_POST["queuemetrics_login"];} +if (isset($_GET["queuemetrics_pass"])) {$queuemetrics_pass=$_GET["queuemetrics_pass"];} + elseif (isset($_POST["queuemetrics_pass"])) {$queuemetrics_pass=$_POST["queuemetrics_pass"];} +if (isset($_GET["queuemetrics_url"])) {$queuemetrics_url=$_GET["queuemetrics_url"];} + elseif (isset($_POST["queuemetrics_url"])) {$queuemetrics_url=$_POST["queuemetrics_url"];} +if (isset($_GET["queuemetrics_log_id"])) {$queuemetrics_log_id=$_GET["queuemetrics_log_id"];} + elseif (isset($_POST["queuemetrics_log_id"])) {$queuemetrics_log_id=$_POST["queuemetrics_log_id"];} +if (isset($_GET["dial_status"])) {$dial_status=$_GET["dial_status"];} + elseif (isset($_POST["dial_status"])) {$dial_status=$_POST["dial_status"];} +if (isset($_GET["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_GET["queuemetrics_eq_prepend"];} + elseif (isset($_POST["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_POST["queuemetrics_eq_prepend"];} +if (isset($_GET["vicidial_agent_disable"])) {$vicidial_agent_disable=$_GET["vicidial_agent_disable"];} + elseif (isset($_POST["vicidial_agent_disable"])) {$vicidial_agent_disable=$_POST["vicidial_agent_disable"];} +if (isset($_GET["disable_alter_custdata"])) {$disable_alter_custdata=$_GET["disable_alter_custdata"];} + elseif (isset($_POST["disable_alter_custdata"])) {$disable_alter_custdata=$_POST["disable_alter_custdata"];} +if (isset($_GET["alter_custdata_override"])) {$alter_custdata_override=$_GET["alter_custdata_override"];} + elseif (isset($_POST["alter_custdata_override"])) {$alter_custdata_override=$_POST["alter_custdata_override"];} +if (isset($_GET["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_GET["no_hopper_leads_logins"];} + elseif (isset($_POST["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_POST["no_hopper_leads_logins"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["admin_home_url"])) {$admin_home_url=$_GET["admin_home_url"];} + elseif (isset($_POST["admin_home_url"])) {$admin_home_url=$_POST["admin_home_url"];} +if (isset($_GET["list_order_mix"])) {$list_order_mix=$_GET["list_order_mix"];} + elseif (isset($_POST["list_order_mix"])) {$list_order_mix=$_POST["list_order_mix"];} +if (isset($_GET["vcl_id"])) {$vcl_id=$_GET["vcl_id"];} + elseif (isset($_POST["vcl_id"])) {$vcl_id=$_POST["vcl_id"];} +if (isset($_GET["vcl_name"])) {$vcl_name=$_GET["vcl_name"];} + elseif (isset($_POST["vcl_name"])) {$vcl_name=$_POST["vcl_name"];} +if (isset($_GET["list_mix_container"])) {$list_mix_container=$_GET["list_mix_container"];} + elseif (isset($_POST["list_mix_container"])) {$list_mix_container=$_POST["list_mix_container"];} +if (isset($_GET["mix_method"])) {$mix_method=$_GET["mix_method"];} + elseif (isset($_POST["mix_method"])) {$mix_method=$_POST["mix_method"];} +if (isset($_GET["human_answered"])) {$human_answered=$_GET["human_answered"];} + elseif (isset($_POST["human_answered"])) {$human_answered=$_POST["human_answered"];} +if (isset($_GET["category"])) {$category=$_GET["category"];} + elseif (isset($_POST["category"])) {$category=$_POST["category"];} +if (isset($_GET["vsc_id"])) {$vsc_id=$_GET["vsc_id"];} + elseif (isset($_POST["vsc_id"])) {$vsc_id=$_POST["vsc_id"];} +if (isset($_GET["vsc_name"])) {$vsc_name=$_GET["vsc_name"];} + elseif (isset($_POST["vsc_name"])) {$vsc_name=$_POST["vsc_name"];} +if (isset($_GET["vsc_description"])) {$vsc_description=$_GET["vsc_description"];} + elseif (isset($_POST["vsc_description"])) {$vsc_description=$_POST["vsc_description"];} +if (isset($_GET["tovdad_display"])) {$tovdad_display=$_GET["tovdad_display"];} + elseif (isset($_POST["tovdad_display"])) {$tovdad_display=$_POST["tovdad_display"];} +if (isset($_GET["mix_container_item"])) {$mix_container_item=$_GET["mix_container_item"];} + elseif (isset($_POST["mix_container_item"])) {$mix_container_item=$_POST["mix_container_item"];} +if (isset($_GET["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_GET["enable_agc_xfer_log"];} + elseif (isset($_POST["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_POST["enable_agc_xfer_log"];} +if (isset($_GET["after_hours_action"])) {$after_hours_action=$_GET["after_hours_action"];} + elseif (isset($_POST["after_hours_action"])) {$after_hours_action=$_POST["after_hours_action"];} +if (isset($_GET["after_hours_message_filename"])) {$after_hours_message_filename=$_GET["after_hours_message_filename"];} + elseif (isset($_POST["after_hours_message_filename"])) {$after_hours_message_filename=$_POST["after_hours_message_filename"];} +if (isset($_GET["after_hours_exten"])) {$after_hours_exten=$_GET["after_hours_exten"];} + elseif (isset($_POST["after_hours_exten"])) {$after_hours_exten=$_POST["after_hours_exten"];} +if (isset($_GET["after_hours_voicemail"])) {$after_hours_voicemail=$_GET["after_hours_voicemail"];} + elseif (isset($_POST["after_hours_voicemail"])) {$after_hours_voicemail=$_POST["after_hours_voicemail"];} +if (isset($_GET["welcome_message_filename"])) {$welcome_message_filename=$_GET["welcome_message_filename"];} + elseif (isset($_POST["welcome_message_filename"])) {$welcome_message_filename=$_POST["welcome_message_filename"];} +if (isset($_GET["moh_context"])) {$moh_context=$_GET["moh_context"];} + elseif (isset($_POST["moh_context"])) {$moh_context=$_POST["moh_context"];} +if (isset($_GET["onhold_prompt_filename"])) {$onhold_prompt_filename=$_GET["onhold_prompt_filename"];} + elseif (isset($_POST["onhold_prompt_filename"])) {$onhold_prompt_filename=$_POST["onhold_prompt_filename"];} +if (isset($_GET["prompt_interval"])) {$prompt_interval=$_GET["prompt_interval"];} + elseif (isset($_POST["prompt_interval"])) {$prompt_interval=$_POST["prompt_interval"];} +if (isset($_GET["agent_alert_exten"])) {$agent_alert_exten=$_GET["agent_alert_exten"];} + elseif (isset($_POST["agent_alert_exten"])) {$agent_alert_exten=$_POST["agent_alert_exten"];} +if (isset($_GET["agent_alert_delay"])) {$agent_alert_delay=$_GET["agent_alert_delay"];} + elseif (isset($_POST["agent_alert_delay"])) {$agent_alert_delay=$_POST["agent_alert_delay"];} +if (isset($_GET["group_rank"])) {$group_rank=$_GET["group_rank"];} + elseif (isset($_POST["group_rank"])) {$group_rank=$_POST["group_rank"];} +if (isset($_GET["campaign_allow_inbound"])) {$campaign_allow_inbound=$_GET["campaign_allow_inbound"];} + elseif (isset($_POST["campaign_allow_inbound"])) {$campaign_allow_inbound=$_POST["campaign_allow_inbound"];} +if (isset($_GET["manual_dial_list_id"])) {$manual_dial_list_id=$_GET["manual_dial_list_id"];} + elseif (isset($_POST["manual_dial_list_id"])) {$manual_dial_list_id=$_POST["manual_dial_list_id"];} +if (isset($_GET["campaign_rank"])) {$campaign_rank=$_GET["campaign_rank"];} + elseif (isset($_POST["campaign_rank"])) {$campaign_rank=$_POST["campaign_rank"];} +if (isset($_GET["source_campaign_id"])) {$source_campaign_id=$_GET["source_campaign_id"];} + elseif (isset($_POST["source_campaign_id"])) {$source_campaign_id=$_POST["source_campaign_id"];} +if (isset($_GET["source_user_id"])) {$source_user_id=$_GET["source_user_id"];} + elseif (isset($_POST["source_user_id"])) {$source_user_id=$_POST["source_user_id"];} +if (isset($_GET["source_group_id"])) {$source_group_id=$_GET["source_group_id"];} + elseif (isset($_POST["source_group_id"])) {$source_group_id=$_POST["source_group_id"];} +if (isset($_GET["default_xfer_group"])) {$default_xfer_group=$_GET["default_xfer_group"];} + elseif (isset($_POST["default_xfer_group"])) {$default_xfer_group=$_POST["default_xfer_group"];} +if (isset($_GET["qc_enabled"])) {$qc_enabled=$_GET["qc_enabled"];} + elseif (isset($_POST["qc_enabled"])) {$qc_enabled=$_POST["qc_enabled"];} +if (isset($_GET["qc_user_level"])) {$qc_user_level=$_GET["qc_user_level"];} + elseif (isset($_POST["qc_user_level"])) {$qc_user_level=$_POST["qc_user_level"];} +if (isset($_GET["qc_pass"])) {$qc_pass=$_GET["qc_pass"];} + elseif (isset($_POST["qc_pass"])) {$qc_pass=$_POST["qc_pass"];} +if (isset($_GET["qc_finish"])) {$qc_finish=$_GET["qc_finish"];} + elseif (isset($_POST["qc_finish"])) {$qc_finish=$_POST["qc_finish"];} +if (isset($_GET["qc_commit"])) {$qc_commit=$_GET["qc_commit"];} + elseif (isset($_POST["qc_commit"])) {$qc_commit=$_POST["qc_commit"];} +if (isset($_GET["qc_campaigns"])) {$qc_campaigns=$_GET["qc_campaigns"];} + elseif (isset($_POST["qc_campaigns"])) {$qc_campaigns=$_POST["qc_campaigns"];} +if (isset($_GET["qc_groups"])) {$qc_groups=$_GET["qc_groups"];} + elseif (isset($_POST["qc_groups"])) {$qc_groups=$_POST["qc_groups"];} +if (isset($_GET["queue_priority"])) {$queue_priority=$_GET["queue_priority"];} + elseif (isset($_POST["queue_priority"])) {$queue_priority=$_POST["queue_priority"];} +if (isset($_GET["drop_inbound_group"])) {$drop_inbound_group=$_GET["drop_inbound_group"];} + elseif (isset($_POST["drop_inbound_group"])) {$drop_inbound_group=$_POST["drop_inbound_group"];} +if (isset($_GET["qc_statuses"])) {$qc_statuses=$_GET["qc_statuses"];} + elseif (isset($_POST["qc_statuses"])) {$qc_statuses=$_POST["qc_statuses"];} +if (isset($_GET["qc_lists"])) {$qc_lists=$_GET["qc_lists"];} + elseif (isset($_POST["qc_lists"])) {$qc_lists=$_POST["qc_lists"];} +if (isset($_GET["qc_get_record_launch"])) {$qc_get_record_launch=$_GET["qc_get_record_launch"];} + elseif (isset($_POST["qc_get_record_launch"])) {$qc_get_record_launch=$_POST["qc_get_record_launch"];} +if (isset($_GET["qc_show_recording"])) {$qc_show_recording=$_GET["qc_show_recording"];} + elseif (isset($_POST["qc_show_recording"])) {$qc_show_recording=$_POST["qc_show_recording"];} +if (isset($_GET["qc_shift_id"])) {$qc_shift_id=$_GET["qc_shift_id"];} + elseif (isset($_POST["qc_shift_id"])) {$qc_shift_id=$_POST["qc_shift_id"];} +if (isset($_GET["qc_web_form_address"])) {$qc_web_form_address=$_GET["qc_web_form_address"];} + elseif (isset($_POST["qc_web_form_address"])) {$qc_web_form_address=$_POST["qc_web_form_address"];} +if (isset($_GET["qc_script"])) {$qc_script=$_GET["qc_script"];} + elseif (isset($_POST["qc_script"])) {$qc_script=$_POST["qc_script"];} +if (isset($_GET["ingroup_recording_override"])) {$ingroup_recording_override=$_GET["ingroup_recording_override"];} + elseif (isset($_POST["ingroup_recording_override"])) {$ingroup_recording_override=$_POST["ingroup_recording_override"];} +if (isset($_GET["code"])) {$code=$_GET["code"];} + elseif (isset($_POST["code"])) {$code=$_POST["code"];} +if (isset($_GET["code_name"])) {$code_name=$_GET["code_name"];} + elseif (isset($_POST["code_name"])) {$code_name=$_POST["code_name"];} +if (isset($_GET["afterhours_xfer_group"])) {$afterhours_xfer_group=$_GET["afterhours_xfer_group"];} + elseif (isset($_POST["afterhours_xfer_group"])) {$afterhours_xfer_group=$_POST["afterhours_xfer_group"];} +if (isset($_GET["alias_id"])) {$alias_id=$_GET["alias_id"];} + elseif (isset($_POST["alias_id"])) {$alias_id=$_POST["alias_id"];} +if (isset($_GET["alias_name"])) {$alias_name=$_GET["alias_name"];} + elseif (isset($_POST["alias_name"])) {$alias_name=$_POST["alias_name"];} +if (isset($_GET["logins_list"])) {$logins_list=$_GET["logins_list"];} + elseif (isset($_POST["logins_list"])) {$logins_list=$_POST["logins_list"];} +if (isset($_GET["shift_id"])) {$shift_id=$_GET["shift_id"];} + elseif (isset($_POST["shift_id"])) {$shift_id=$_POST["shift_id"];} +if (isset($_GET["shift_name"])) {$shift_name=$_GET["shift_name"];} + elseif (isset($_POST["shift_name"])) {$shift_name=$_POST["shift_name"];} +if (isset($_GET["shift_start_time"])) {$shift_start_time=$_GET["shift_start_time"];} + elseif (isset($_POST["shift_start_time"])) {$shift_start_time=$_POST["shift_start_time"];} +if (isset($_GET["shift_length"])) {$shift_length=$_GET["shift_length"];} + elseif (isset($_POST["shift_length"])) {$shift_length=$_POST["shift_length"];} +if (isset($_GET["shift_weekdays"])) {$shift_weekdays=$_GET["shift_weekdays"];} + elseif (isset($_POST["shift_weekdays"])) {$shift_weekdays=$_POST["shift_weekdays"];} +if (isset($_GET["group_shifts"])) {$group_shifts=$_GET["group_shifts"];} + elseif (isset($_POST["group_shifts"])) {$group_shifts=$_POST["group_shifts"];} +if (isset($_GET["timeclock_end_of_day"])) {$timeclock_end_of_day=$_GET["timeclock_end_of_day"];} + elseif (isset($_POST["timeclock_end_of_day"])) {$timeclock_end_of_day=$_POST["timeclock_end_of_day"];} +if (isset($_GET["survey_first_audio_file"])) {$survey_first_audio_file=$_GET["survey_first_audio_file"];} + elseif (isset($_POST["survey_first_audio_file"])) {$survey_first_audio_file=$_POST["survey_first_audio_file"];} +if (isset($_GET["survey_dtmf_digits"])) {$survey_dtmf_digits=$_GET["survey_dtmf_digits"];} + elseif (isset($_POST["survey_dtmf_digits"])) {$survey_dtmf_digits=$_POST["survey_dtmf_digits"];} +if (isset($_GET["survey_ni_digit"])) {$survey_ni_digit=$_GET["survey_ni_digit"];} + elseif (isset($_POST["survey_ni_digit"])) {$survey_ni_digit=$_POST["survey_ni_digit"];} +if (isset($_GET["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_GET["survey_opt_in_audio_file"];} + elseif (isset($_POST["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_POST["survey_opt_in_audio_file"];} +if (isset($_GET["survey_ni_audio_file"])) {$survey_ni_audio_file=$_GET["survey_ni_audio_file"];} + elseif (isset($_POST["survey_ni_audio_file"])) {$survey_ni_audio_file=$_POST["survey_ni_audio_file"];} +if (isset($_GET["survey_method"])) {$survey_method=$_GET["survey_method"];} + elseif (isset($_POST["survey_method"])) {$survey_method=$_POST["survey_method"];} +if (isset($_GET["survey_no_response_action"])) {$survey_no_response_action=$_GET["survey_no_response_action"];} + elseif (isset($_POST["survey_no_response_action"])) {$survey_no_response_action=$_POST["survey_no_response_action"];} +if (isset($_GET["survey_ni_status"])) {$survey_ni_status=$_GET["survey_ni_status"];} + elseif (isset($_POST["survey_ni_status"])) {$survey_ni_status=$_POST["survey_ni_status"];} +if (isset($_GET["survey_response_digit_map"])) {$survey_response_digit_map=$_GET["survey_response_digit_map"];} + elseif (isset($_POST["survey_response_digit_map"])) {$survey_response_digit_map=$_POST["survey_response_digit_map"];} +if (isset($_GET["survey_xfer_exten"])) {$survey_xfer_exten=$_GET["survey_xfer_exten"];} + elseif (isset($_POST["survey_xfer_exten"])) {$survey_xfer_exten=$_POST["survey_xfer_exten"];} +if (isset($_GET["survey_camp_record_dir"])) {$survey_camp_record_dir=$_GET["survey_camp_record_dir"];} + elseif (isset($_POST["survey_camp_record_dir"])) {$survey_camp_record_dir=$_POST["survey_camp_record_dir"];} +if (isset($_GET["add_timeclock_log"])) {$add_timeclock_log=$_GET["add_timeclock_log"];} + elseif (isset($_POST["add_timeclock_log"])) {$add_timeclock_log=$_POST["add_timeclock_log"];} +if (isset($_GET["modify_timeclock_log"])) {$modify_timeclock_log=$_GET["modify_timeclock_log"];} + elseif (isset($_POST["modify_timeclock_log"])) {$modify_timeclock_log=$_POST["modify_timeclock_log"];} +if (isset($_GET["delete_timeclock_log"])) {$delete_timeclock_log=$_GET["delete_timeclock_log"];} + elseif (isset($_POST["delete_timeclock_log"])) {$delete_timeclock_log=$_POST["delete_timeclock_log"];} +if (isset($_GET["phone_numbers"])) {$phone_numbers=$_GET["phone_numbers"];} + elseif (isset($_POST["phone_numbers"])) {$phone_numbers=$_POST["phone_numbers"];} +if (isset($_GET["vdc_header_date_format"])) {$vdc_header_date_format=$_GET["vdc_header_date_format"];} + elseif (isset($_POST["vdc_header_date_format"])) {$vdc_header_date_format=$_POST["vdc_header_date_format"];} +if (isset($_GET["vdc_customer_date_format"])) {$vdc_customer_date_format=$_GET["vdc_customer_date_format"];} + elseif (isset($_POST["vdc_customer_date_format"])) {$vdc_customer_date_format=$_POST["vdc_customer_date_format"];} +if (isset($_GET["vdc_header_phone_format"])) {$vdc_header_phone_format=$_GET["vdc_header_phone_format"];} + elseif (isset($_POST["vdc_header_phone_format"])) {$vdc_header_phone_format=$_POST["vdc_header_phone_format"];} +if (isset($_GET["disable_alter_custphone"])) {$disable_alter_custphone=$_GET["disable_alter_custphone"];} + elseif (isset($_POST["disable_alter_custphone"])) {$disable_alter_custphone=$_POST["disable_alter_custphone"];} +if (isset($_GET["alter_custphone_override"])) {$alter_custphone_override=$_GET["alter_custphone_override"];} + elseif (isset($_POST["alter_custphone_override"])) {$alter_custphone_override=$_POST["alter_custphone_override"];} +if (isset($_GET["vdc_agent_api_access"])) {$vdc_agent_api_access=$_GET["vdc_agent_api_access"];} + elseif (isset($_POST["vdc_agent_api_access"])) {$vdc_agent_api_access=$_POST["vdc_agent_api_access"];} +if (isset($_GET["vdc_agent_api_active"])) {$vdc_agent_api_active=$_GET["vdc_agent_api_active"];} + elseif (isset($_POST["vdc_agent_api_active"])) {$vdc_agent_api_active=$_POST["vdc_agent_api_active"];} +if (isset($_GET["display_queue_count"])) {$display_queue_count=$_GET["display_queue_count"];} + elseif (isset($_POST["display_queue_count"])) {$display_queue_count=$_POST["display_queue_count"];} +if (isset($_GET["sale_category"])) {$sale_category=$_GET["sale_category"];} + elseif (isset($_POST["sale_category"])) {$sale_category=$_POST["sale_category"];} +if (isset($_GET["dead_lead_category"])) {$dead_lead_category=$_GET["dead_lead_category"];} + elseif (isset($_POST["dead_lead_category"])) {$dead_lead_category=$_POST["dead_lead_category"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["agent_clipboard_copy"])) {$agent_clipboard_copy=$_GET["agent_clipboard_copy"];} + elseif (isset($_POST["agent_clipboard_copy"])) {$agent_clipboard_copy=$_POST["agent_clipboard_copy"];} +if (isset($_GET["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_GET["agent_extended_alt_dial"];} + elseif (isset($_POST["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_POST["agent_extended_alt_dial"];} +if (isset($_GET["play_place_in_line"])) {$play_place_in_line=$_GET["play_place_in_line"];} + elseif (isset($_POST["play_place_in_line"])) {$play_place_in_line=$_POST["play_place_in_line"];} +if (isset($_GET["play_estimate_hold_time"])) {$play_estimate_hold_time=$_GET["play_estimate_hold_time"];} + elseif (isset($_POST["play_estimate_hold_time"])) {$play_estimate_hold_time=$_POST["play_estimate_hold_time"];} +if (isset($_GET["hold_time_option"])) {$hold_time_option=$_GET["hold_time_option"];} + elseif (isset($_POST["hold_time_option"])) {$hold_time_option=$_POST["hold_time_option"];} +if (isset($_GET["hold_time_option_seconds"])) {$hold_time_option_seconds=$_GET["hold_time_option_seconds"];} + elseif (isset($_POST["hold_time_option_seconds"])) {$hold_time_option_seconds=$_POST["hold_time_option_seconds"];} +if (isset($_GET["hold_time_option_exten"])) {$hold_time_option_exten=$_GET["hold_time_option_exten"];} + elseif (isset($_POST["hold_time_option_exten"])) {$hold_time_option_exten=$_POST["hold_time_option_exten"];} +if (isset($_GET["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_GET["hold_time_option_voicemail"];} + elseif (isset($_POST["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_POST["hold_time_option_voicemail"];} +if (isset($_GET["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_GET["hold_time_option_xfer_group"];} + elseif (isset($_POST["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_POST["hold_time_option_xfer_group"];} +if (isset($_GET["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_GET["hold_time_option_callback_filename"];} + elseif (isset($_POST["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_POST["hold_time_option_callback_filename"];} +if (isset($_GET["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_GET["hold_time_option_callback_list_id"];} + elseif (isset($_POST["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_POST["hold_time_option_callback_list_id"];} +if (isset($_GET["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_GET["hold_recall_xfer_group"];} + elseif (isset($_POST["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_POST["hold_recall_xfer_group"];} +if (isset($_GET["no_delay_call_route"])) {$no_delay_call_route=$_GET["no_delay_call_route"];} + elseif (isset($_POST["no_delay_call_route"])) {$no_delay_call_route=$_POST["no_delay_call_route"];} +if (isset($_GET["play_welcome_message"])) {$play_welcome_message=$_GET["play_welcome_message"];} + elseif (isset($_POST["play_welcome_message"])) {$play_welcome_message=$_POST["play_welcome_message"];} +if (isset($_GET["did_id"])) {$did_id=$_GET["did_id"];} + elseif (isset($_POST["did_id"])) {$did_id=$_POST["did_id"];} +if (isset($_GET["source_did"])) {$source_did=$_GET["source_did"];} + elseif (isset($_POST["source_did"])) {$source_did=$_POST["source_did"];} +if (isset($_GET["did_pattern"])) {$did_pattern=$_GET["did_pattern"];} + elseif (isset($_POST["did_pattern"])) {$did_pattern=$_POST["did_pattern"];} +if (isset($_GET["did_description"])) {$did_description=$_GET["did_description"];} + elseif (isset($_POST["did_description"])) {$did_description=$_POST["did_description"];} +if (isset($_GET["did_active"])) {$did_active=$_GET["did_active"];} + elseif (isset($_POST["did_active"])) {$did_active=$_POST["did_active"];} +if (isset($_GET["did_route"])) {$did_route=$_GET["did_route"];} + elseif (isset($_POST["did_route"])) {$did_route=$_POST["did_route"];} +if (isset($_GET["exten_context"])) {$exten_context=$_GET["exten_context"];} + elseif (isset($_POST["exten_context"])) {$exten_context=$_POST["exten_context"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["user_unavailable_action"])) {$user_unavailable_action=$_GET["user_unavailable_action"];} + elseif (isset($_POST["user_unavailable_action"])) {$user_unavailable_action=$_POST["user_unavailable_action"];} +if (isset($_GET["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_GET["user_route_settings_ingroup"];} + elseif (isset($_POST["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_POST["user_route_settings_ingroup"];} +if (isset($_GET["call_handle_method"])) {$call_handle_method=$_GET["call_handle_method"];} + elseif (isset($_POST["call_handle_method"])) {$call_handle_method=$_POST["call_handle_method"];} +if (isset($_GET["agent_search_method"])) {$agent_search_method=$_GET["agent_search_method"];} + elseif (isset($_POST["agent_search_method"])) {$agent_search_method=$_POST["agent_search_method"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["modify_inbound_dids"])) {$modify_inbound_dids=$_GET["modify_inbound_dids"];} + elseif (isset($_POST["modify_inbound_dids"])) {$modify_inbound_dids=$_POST["modify_inbound_dids"];} +if (isset($_GET["delete_inbound_dids"])) {$delete_inbound_dids=$_GET["delete_inbound_dids"];} + elseif (isset($_POST["delete_inbound_dids"])) {$delete_inbound_dids=$_POST["delete_inbound_dids"];} +if (isset($_GET["three_way_call_cid"])) {$three_way_call_cid=$_GET["three_way_call_cid"];} + elseif (isset($_POST["three_way_call_cid"])) {$three_way_call_cid=$_POST["three_way_call_cid"];} +if (isset($_GET["three_way_dial_prefix"])) {$three_way_dial_prefix=$_GET["three_way_dial_prefix"];} + elseif (isset($_POST["three_way_dial_prefix"])) {$three_way_dial_prefix=$_POST["three_way_dial_prefix"];} +if (isset($_GET["forced_timeclock_login"])) {$forced_timeclock_login=$_GET["forced_timeclock_login"];} + elseif (isset($_POST["forced_timeclock_login"])) {$forced_timeclock_login=$_POST["forced_timeclock_login"];} +if (isset($_GET["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_GET["answer_sec_pct_rt_stat_one"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_POST["answer_sec_pct_rt_stat_one"];} +if (isset($_GET["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_GET["answer_sec_pct_rt_stat_two"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_POST["answer_sec_pct_rt_stat_two"];} +if (isset($_GET["list_active_change"])) {$list_active_change=$_GET["list_active_change"];} + elseif (isset($_POST["list_active_change"])) {$list_active_change=$_POST["list_active_change"];} +if (isset($_GET["web_form_target"])) {$web_form_target=$_GET["web_form_target"];} + elseif (isset($_POST["web_form_target"])) {$web_form_target=$_POST["web_form_target"];} +if (isset($_GET["alt_server_ip"])) {$alt_server_ip=$_GET["alt_server_ip"];} + elseif (isset($_POST["alt_server_ip"])) {$alt_server_ip=$_POST["alt_server_ip"];} +if (isset($_GET["recording_web_link"])) {$recording_web_link=$_GET["recording_web_link"];} + elseif (isset($_POST["recording_web_link"])) {$recording_web_link=$_POST["recording_web_link"];} +if (isset($_GET["enable_vtiger_integration"])) {$enable_vtiger_integration=$_GET["enable_vtiger_integration"];} + elseif (isset($_POST["enable_vtiger_integration"])) {$enable_vtiger_integration=$_POST["enable_vtiger_integration"];} +if (isset($_GET["vtiger_server_ip"])) {$vtiger_server_ip=$_GET["vtiger_server_ip"];} + elseif (isset($_POST["vtiger_server_ip"])) {$vtiger_server_ip=$_POST["vtiger_server_ip"];} +if (isset($_GET["vtiger_dbname"])) {$vtiger_dbname=$_GET["vtiger_dbname"];} + elseif (isset($_POST["vtiger_dbname"])) {$vtiger_dbname=$_POST["vtiger_dbname"];} +if (isset($_GET["vtiger_login"])) {$vtiger_login=$_GET["vtiger_login"];} + elseif (isset($_POST["vtiger_login"])) {$vtiger_login=$_POST["vtiger_login"];} +if (isset($_GET["vtiger_pass"])) {$vtiger_pass=$_GET["vtiger_pass"];} + elseif (isset($_POST["vtiger_pass"])) {$vtiger_pass=$_POST["vtiger_pass"];} +if (isset($_GET["vtiger_url"])) {$vtiger_url=$_GET["vtiger_url"];} + elseif (isset($_POST["vtiger_url"])) {$vtiger_url=$_POST["vtiger_url"];} +if (isset($_GET["vtiger_search_category"])) {$vtiger_search_category=$_GET["vtiger_search_category"];} + elseif (isset($_POST["vtiger_search_category"])) {$vtiger_search_category=$_POST["vtiger_search_category"];} +if (isset($_GET["vtiger_create_call_record"])) {$vtiger_create_call_record=$_GET["vtiger_create_call_record"];} + elseif (isset($_POST["vtiger_create_call_record"])) {$vtiger_create_call_record=$_POST["vtiger_create_call_record"];} +if (isset($_GET["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_GET["vtiger_create_lead_record"];} + elseif (isset($_POST["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_POST["vtiger_create_lead_record"];} +if (isset($_GET["vtiger_screen_login"])) {$vtiger_screen_login=$_GET["vtiger_screen_login"];} + elseif (isset($_POST["vtiger_screen_login"])) {$vtiger_screen_login=$_POST["vtiger_screen_login"];} +if (isset($_GET["qc_features_active"])) {$qc_features_active=$_GET["qc_features_active"];} + elseif (isset($_POST["qc_features_active"])) {$qc_features_active=$_POST["qc_features_active"];} +if (isset($_GET["outbound_autodial_active"])) {$outbound_autodial_active=$_GET["outbound_autodial_active"];} + elseif (isset($_POST["outbound_autodial_active"])) {$outbound_autodial_active=$_POST["outbound_autodial_active"];} +if (isset($_GET["cpd_amd_action"])) {$cpd_amd_action=$_GET["cpd_amd_action"];} + elseif (isset($_POST["cpd_amd_action"])) {$cpd_amd_action=$_POST["cpd_amd_action"];} +if (isset($_GET["download_lists"])) {$download_lists=$_GET["download_lists"];} + elseif (isset($_POST["download_lists"])) {$download_lists=$_POST["download_lists"];} +if (isset($_GET["active_asterisk_server"])) {$active_asterisk_server=$_GET["active_asterisk_server"];} + elseif (isset($_POST["active_asterisk_server"])) {$active_asterisk_server=$_POST["active_asterisk_server"];} +if (isset($_GET["generate_vicidial_conf"])) {$generate_vicidial_conf=$_GET["generate_vicidial_conf"];} + elseif (isset($_POST["generate_vicidial_conf"])) {$generate_vicidial_conf=$_POST["generate_vicidial_conf"];} +if (isset($_GET["rebuild_conf_files"])) {$rebuild_conf_files=$_GET["rebuild_conf_files"];} + elseif (isset($_POST["rebuild_conf_files"])) {$rebuild_conf_files=$_POST["rebuild_conf_files"];} +if (isset($_GET["template_id"])) {$template_id=$_GET["template_id"];} + elseif (isset($_POST["template_id"])) {$template_id=$_POST["template_id"];} +if (isset($_GET["conf_override"])) {$conf_override=$_GET["conf_override"];} + elseif (isset($_POST["conf_override"])) {$conf_override=$_POST["conf_override"];} +if (isset($_GET["template_name"])) {$template_name=$_GET["template_name"];} + elseif (isset($_POST["template_name"])) {$template_name=$_POST["template_name"];} +if (isset($_GET["template_contents"])) {$template_contents=$_GET["template_contents"];} + elseif (isset($_POST["template_contents"])) {$template_contents=$_POST["template_contents"];} +if (isset($_GET["carrier_id"])) {$carrier_id=$_GET["carrier_id"];} + elseif (isset($_POST["carrier_id"])) {$carrier_id=$_POST["carrier_id"];} +if (isset($_GET["carrier_name"])) {$carrier_name=$_GET["carrier_name"];} + elseif (isset($_POST["carrier_name"])) {$carrier_name=$_POST["carrier_name"];} +if (isset($_GET["registration_string"])) {$registration_string=$_GET["registration_string"];} + elseif (isset($_POST["registration_string"])) {$registration_string=$_POST["registration_string"];} +if (isset($_GET["account_entry"])) {$account_entry=$_GET["account_entry"];} + elseif (isset($_POST["account_entry"])) {$account_entry=$_POST["account_entry"];} +if (isset($_GET["globals_string"])) {$globals_string=$_GET["globals_string"];} + elseif (isset($_POST["globals_string"])) {$globals_string=$_POST["globals_string"];} +if (isset($_GET["dialplan_entry"])) {$dialplan_entry=$_GET["dialplan_entry"];} + elseif (isset($_POST["dialplan_entry"])) {$dialplan_entry=$_POST["dialplan_entry"];} +if (isset($_GET["group_alias_id"])) {$group_alias_id=$_GET["group_alias_id"];} + elseif (isset($_POST["group_alias_id"])) {$group_alias_id=$_POST["group_alias_id"];} +if (isset($_GET["group_alias_name"])) {$group_alias_name=$_GET["group_alias_name"];} + elseif (isset($_POST["group_alias_name"])) {$group_alias_name=$_POST["group_alias_name"];} +if (isset($_GET["caller_id_number"])) {$caller_id_number=$_GET["caller_id_number"];} + elseif (isset($_POST["caller_id_number"])) {$caller_id_number=$_POST["caller_id_number"];} +if (isset($_GET["caller_id_name"])) {$caller_id_name=$_GET["caller_id_name"];} + elseif (isset($_POST["caller_id_name"])) {$caller_id_name=$_POST["caller_id_name"];} +if (isset($_GET["agent_allow_group_alias"])) {$agent_allow_group_alias=$_GET["agent_allow_group_alias"];} + elseif (isset($_POST["agent_allow_group_alias"])) {$agent_allow_group_alias=$_POST["agent_allow_group_alias"];} +if (isset($_GET["default_group_alias"])) {$default_group_alias=$_GET["default_group_alias"];} + elseif (isset($_POST["default_group_alias"])) {$default_group_alias=$_POST["default_group_alias"];} +if (isset($_GET["outbound_calls_per_second"])) {$outbound_calls_per_second=$_GET["outbound_calls_per_second"];} + elseif (isset($_POST["outbound_calls_per_second"])) {$outbound_calls_per_second=$_POST["outbound_calls_per_second"];} +if (isset($_GET["shift_enforcement"])) {$shift_enforcement=$_GET["shift_enforcement"];} + elseif (isset($_POST["shift_enforcement"])) {$shift_enforcement=$_POST["shift_enforcement"];} +if (isset($_GET["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_GET["agent_shift_enforcement_override"];} + elseif (isset($_POST["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_POST["agent_shift_enforcement_override"];} +if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_GET["manager_shift_enforcement_override"];} + elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} +if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} + elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} + + if (isset($script_id)) {$script_id= strtoupper($script_id);} + if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} + +if (strlen($dial_status) > 0) + { + $ADD='28'; + $status = $dial_status; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSenable_queuemetrics_logging = $row[1]; + $SSenable_vtiger_integration = $row[2]; + $SSqc_features_active = $row[3]; + $SSoutbound_autodial_active = $row[4]; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +###################################################################################################### +###################################################################################################### +####### Form variable filtering for security and data integrity +###################################################################################################### +###################################################################################################### + +if ($non_latin < 1) + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); + + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); + + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); + + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); + + ### Y or N ONLY ### + $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); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); + + + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $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); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); + + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); + + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); + + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); + + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); + + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### 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 hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); + + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); + + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); + + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + + + +##### END VARIABLE FILTERING FOR SECURITY ##### + + +# ViciDial database administration +# admin.php +# +# CHANGELOG: +# 50315-1110 - Added Custom Campaign Statuses +# 50317-1438 - Added Fronter Display var to inbound groups +# 50322-1355 - Added custom callerID per campaign +# 50517-1356 - Added user_groups sections and user_group to vicidial_users +# 50517-1440 - Added ability to logout (must click OK with empty user/pass) +# 50602-1622 - Added lead loader pages to load new files into vicidial_list +# 50620-1351 - Added custom vdad transfer AGI extension per campaign +# 50810-1414 - modified in groups to kick out spaces and dashes +# 50908-2136 - Added Custom Campaign HotKeys +# 50914-0950 - Fixed user search by user_group +# 50926-1358 - Modified to allow for language translation +# 50926-1615 - Added WeBRooTWritablE write controls +# 51020-1008 - Added editable web address and park ext - NEW dial campaigns +# 51020-1056 - Added fields and help for campaign recording control +# 51123-1335 - Altered code to function in php globals=off +# 51208-1038 - Added user_level changes, function controls and default user phones +# 51208-1556 - Added deletion of users/lists/campaigns/in groups/remote agents +# 51213-1706 - Added add/delete/modify vicidial scripts +# 51214-1737 - Added preview of vicidial script in popup window +# 51219-1225 - Added campaign and ingroups script selector and get_call_launch field +# 51222-1055 - Added am_message_exten to campaigns to allow for AM Message button +# 51222-1125 - Fixed new vicidial_campaigns default values not being assigned bug +# 51222-1156 - Added LOG OUT ALL AGENTS ON THIS CAMPAIGN button to campaign screen +# 60204-0659 - Fixed hopper reset bug +# 60207-1413 - Added AMD send to voicemail extension and xfer-conf dtmf presets +# 60213-1100 - Added several vicidial_users permissions fields +# 60215-1319 - Added On-hold CallBacks display and links +# 60227-1226 - Fixed vicidial_inbound_groups insert bug +# 60413-1308 - Fixed list display to have 1 row/status: count and time zone tables +# - Added status name in selected dial statuses in campaign screen +# 60417-1416 - Added vicidial_lead_filters sections +# - Changed the header links to color-coded sectional with sublinks below +# - Added filter name and script name to campaign and in-group modify sections +# - Added callback and alt dial options to campaigns section +# - Added callback, alt dial and other options to users section +# 60419-1628 - Alter Callbacks display to include status and LIVE listings, reordered +# 60421-1441 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60425-2355 - Added agent options to vicidial_users, reformatted user page +# 60502-1627 - Added drop_call_seconds and safe_harbor_ fields to campaign screen +# 60503-1228 - Added drop_call_seconds and drop_ fields to inbound groups screen +# 60505-1117 - Added initial framework for new local_call_times tables and definitions +# 60506-1033 - More revisions to the local_call_time section +# 60508-1354 - Finished call_times and state_call_times sections +# - Added modify/delete options for call_times +# 60509-1311 - Functionalize campaign dialable leads calculation +# - Change state_call_times selection from call_times to only allow one per state +# - Added dialable leads count popup to campaign screen if auto-calc is disabled +# - Added test dialable leads count popup to filter screen +# 60510-1050 - Added Wrapup seconds and Wrapup message to campaigns screen +# 60608-1401 - Added allowable inbound_groups checkboxes to CLOSER campaign detail screen +# 60609-1051 - Added add-to-dnc in LISTS section +# 60613-1415 - Added lead recycling options to campaign detail screen +# 60619-1523 - Added variable filtering to eliminate SQL injection attack threat +# 60622-1216 - Fixed HotKey addition form issues and variable filtering +# 60623-1159 - Fixed Scheduled Callbacks over-filtering bug and filter_sql bug +# 60808-1147 - Changed filtering for and added instructions for consutative transfers +# 60816-1552 - Added allcalls_delay start delay for recordings in vicidial.php +# 60817-2226 - Fixed bug that would not allow lead recycling of non-selectable statuses +# 60821-1543 - Added option to Omit Phone Code while dialing in vicidial +# 60821-1625 - Added ALLFORCE recording option for campaign_recording +# 60823-1154 - Added fields for adaptive dialing +# 60824-1326 - Added adaptive_latest_target_gmt for ADAPT_TAPERED dial method +# 60825-1205 - Added adaptive_intensity for ADAPT_ dial methods +# 60828-1019 - Changed adaptive_latest_target_gmt to adaptive_latest_server_time +# 60828-1115 - Added adaptive_dl_diff_target and changed intensity dropdown +# 60927-1246 - Added astguiclient/admin.php functions under SERVERS tab +# 61002-1402 - Added fields for vicidial balance trunk controls +# 61003-1123 - Added functions for vicidial_server_trunks records +# 61109-1022 - Added Emergency VDAC Jam Clear function to Campaign Detail screen +# 61110-1502 - Add ability to select NONE in dial statuses, new list_id must not be < 100 +# 61122-1228 - Added user group campaign restrictions +# 61122-1535 - Changed script_text to unfiltered and added more variables to SCRIPTS +# 61129-1028 - Added headers to Users and Phones with clickable order-by titles +# 70108-1405 - Added ADAPT OVERRIDE to allow for forced dial_level changes in ADAPT dial methods +# - Screen width definable at top of script, merged server_stats into this script +# 70109-1638 - Added ALTPH2 and ADDR3 hotkey options for alt number dialing with HotKeys +# 70109-1716 - Added concurrent_transfers option to vicidial_campaigns +# 70115-1152 - Aded (CLOSER|BLEND|INBND|_C$|_B$|_I$) options for CLOSER-type campaigns +# 70115-1532 - Added auto_alt_dial field to campaign screen for auto-dialing of alt numbers +# 70116-1200 - Added auto_alt_dial_status functionality to campaign screen +# 70117-1235 - Added header formatting variables at top of script +# - Moved Call Times and Phones/Server functions to Admin section +# 70118-1706 - Added new user group displays and links +# 70123-1519 - Added user permission settings for all sections +# 70124-1346 - Fixed spelling errors and formatting consistency +# 70202-1120 - Added agent_pause_codes section to campaigns +# 70205-1204 - Added memo, last dialed, timestamp and stats-refresh fields to vicidial_campaigns/lists +# 70206-1323 - Added user setting for vicidial_recording_override +# 70212-1412 - Added system settings section +# 70214-1226 - Added QueueMetrics Log ID field to system settings section +# 70219-1102 - Changed campaign dial statuses to be one string allowing for high limit +# 70223-0957 - Added queuemetrics_eq_prepend for custom ENTERQUEUE prepending of a field +# 70302-1111 - Fixed small bug in dialable leads calculation +# 70314-1133 - Added insert selection on script forms +# 70319-1423 - Added Alter Customer Data and agent disable display functions +# 70319-1625 - Added option to allow agents to login to outbound campaigns with no leads in the hopper +# 70322-1455 - Added sipsak messages parameters +# 70402-1157 - Added HOME link and entry to system_settings table, added QM link on reports section +# 70516-1628 - Started reformatting campaigns to use submenus to break up options +# 70529-1653 - Added help for list mix +# 70530-1354 - Added human_answered field to statuses, added system status modification +# 70530-1714 - Added lists for all campaign subsections +# 70531-1631 - Development on List mix admin interface +# 70601-1629 - More development on List mix admin interface, formatting, and added some javascript +# 70602-1300 - More development on List mix admin interface, more javascript +# 70608-1459 - Added option to set LIVE Callbacks to INACTIVE after one month +# 70612-1451 - Added Callback INACTIVE link for after one week, sort by user/group/entrydate +# 70614-0231 - Added Status Categories, ability to Modify Statuses, moved system statuses to sub-section +# 70623-1008 - List Mix section now allows modification of list mix entries +# 70629-1721 - List Mix section adding and removing of list entries active +# 70706-1636 - List Mix section cleanup and more error-checking +# 70908-0941 - Added agc logile enable system_settings +# 71020-1934 - Added inbound groups options: on-hold music, messages, call_times +# 71022-1343 - Added inbound group ranks for users +# 71029-1710 - Added option for campaign to be inbound and/or blended with no restrictions on the campaign_id name +# - Added 5th NEW and 6th NEW to the dial order options +# 71030-2010 - Added Manual Dial List ID field to campaigns table +# 71103-2207 - Added inbound_group_rank and fewest_calls to the inbound groups call order options +# 71113-1521 - Added campaign_rank to agent options +# - Added ability to Copy a campaign's setting to a new campaign +# 71113-2225 - Added ability to copy user and in-group settings to new users and in-groups +# 71116-0942 - Added campaign_rank and fewest_calls as methods for agent call routing +# 71122-1135 - Added default transfer group for campaigns and inbound groups +# 71125-1751 - Added allowable transfer groups to campaign detail screen +# 80107-1204 - Started framework for new QC section +# 80112-0242 - Added more options for lead order +# 80211-1901 - Added DB Schema Version to system settings display +# 80224-1334 - Added Queue Priority to in-groups and campaigns +# 80302-0232 - added drop_action and transfer to in-group for both in-groups and outbound +# 80310-1504 - added QC settings section to campaign screen +# 80317-2037 - Added Recording override settings to in-groups +# 80414-1505 - More work on QC, added vicidial_qc_codes +# 80424-0442 - Added non_latin system_settings lookup at top to override dbconnect setting +# 80505-0333 - Added phones_alias sections to allow for load-balanced-phone-logins +# 80512-1529 - Added auto-generate of User ID feature +# 80515-1345 - Added Shifts sub-section to Admin section +# 80528-0001 - Added campaign survey sub-section +# 80528-1102 - Added user timeclock edit options +# 80608-1304 - Changed add-to-DNC to allow for multiple entries per submission +# 80625-0032 - Added time/phone display format options to system settings +# 80703-0124 - Added alter cust phone and api settings +# 80715-1130 - Added Recycle leads limit count +# 80719-1351 - Changed QC settings in campaigns and In-Groups +# 80809-2305 - Added Sale and Dead Lead categories to status categories page +# 80815-1036 - Added manual dial filter to capaigns +# 80823-2124 - Added copy to clipboard campaign option +# 80829-2359 - Added EXTENDED auto_alt_dial options +# 80831-0406 - Added agent screen extended alt-dial option to campaigns +# 80909-0553 - Added campaign-specific DNC list option and add +# 81002-1101 - Added more in-group options and new DID section and user options +# 81007-0936 - Added three_way_call_cid option to campaigns +# 81012-1725 - Added INBOUND_MAN dial method allowing for manual list dialing with inbound calls +# 81030-0348 - Added campaign pause code force option +# 81030-2228 - Fixed DIDs creation issue +# 81103-1408 - Added 3way call dial prefix option +# 81107-1551 - Added Stats Percent of Calls Answered Within X seconds fields to in-groups +# 81118-0933 - Changed lists listing with links and more options +# 81119-0715 - Added ability to bulk enable/disable lists from modify campaign screen +# 81209-1538 - Added web_form_target to campaign screen +# 81210-1430 - Added http server IP and recording link options to servers +# 81222-0500 - Reformatted all listings to same format changed to field selects instead of * +# 81228-2300 - Added fields for vtiger integration and active vicidial_user display +# 90101-1216 - Added options for user synchronization with vtiger +# 90112-0335 - Added vtiger_create_lead_record and vtiger_create_lead_record options +# 90115-0502 - Activated AGENT DID routing option +# 90126-2256 - Added vtiger_screen_login campaign option and user agent alert option +# 90201-1503 - Added option to disable the viewing of inactive QC features +# 90202-0112 - Added option to disable outbound autodialing(or list dialing) +# 90202-0444 - Added cpd_amd_action option for processing of AMD messages +# 90209-1339 - Added download_lists option to allow downloading of lists +# 90210-1042 - Added options for auto-generation of asterisk conf files +# 90301-2026 - Added Vtiger group synchronization +# 90302-2046 - Changed Section heading to be on the left side of the screen +# 90303-0631 - Added web vars to agent campaign and in-group settings +# 90303-2047 - Added group aliases and default group aliases +# 90306-1214 - Added shift enforcement and server/system calls per second options +# 90308-0956 - Added server statistics +# 90309-0059 - Changed logging to admin_server_log +# 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 +# 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue +# +# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time + +$admin_version = '2.2.0-233'; +$build = '100104-1454'; + +$STARTtime = date("U"); +$SQLdate = date("Y-m-d H:i:s"); +$REPORTdate = date("Y-m-d"); +$MT[0]=''; +$US='_'; +$active_lists=0; +$inactive_lists=0; + +$month_old = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); +$past_week_date = date("Y-m-d H:i:s",$week_old); + +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; + exit; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfull_name =$row[3]; + $LOGuser_level =$row[4]; + $LOGuser_group =$row[5]; + $LOGdelete_users =$row[8]; + $LOGdelete_user_groups =$row[9]; + $LOGdelete_lists =$row[10]; + $LOGdelete_campaigns =$row[11]; + $LOGdelete_ingroups =$row[12]; + $LOGdelete_remote_agents =$row[13]; + $LOGload_leads =$row[14]; + $LOGcampaign_detail =$row[15]; + $LOGast_admin_access =$row[16]; + $LOGast_delete_phones =$row[17]; + $LOGdelete_scripts =$row[18]; + $LOGdelete_filters =$row[29]; + $LOGalter_agent_interface =$row[30]; + $LOGdelete_call_times =$row[32]; + $LOGmodify_call_times =$row[33]; + $LOGmodify_users =$row[34]; + $LOGmodify_campaigns =$row[35]; + $LOGmodify_lists =$row[36]; + $LOGmodify_scripts =$row[37]; + $LOGmodify_filters =$row[38]; + $LOGmodify_ingroups =$row[39]; + $LOGmodify_usergroups =$row[40]; + $LOGmodify_remoteagents =$row[41]; + $LOGmodify_servers =$row[42]; + $LOGview_reports =$row[43]; + $LOGmodify_dids =$row[56]; + $LOGdelete_dids =$row[57]; + $LOGmanager_shift_enforcement_override=$row[61]; + $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns = $row[0]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|XXXX|$ip|$browser|$LOGfull_name|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +###################################################################################################### +###################################################################################################### +####### Header settings +###################################################################################################### +###################################################################################################### + + +header ("Content-type: text/html; charset=utf-8"); +echo "\n"; +echo "\n"; +echo "\n"; +echo "ADMINISTRATION: "; + +if (!isset($ADD)) {$ADD=0;} + +if ($ADD=="1") {$hh='users'; echo "Πρόσθεσε Νέο Χρήστη";} +if ($ADD=="1A") {$hh='users'; echo "Χρήστης αντιγράφων";} +if ($ADD==11) {$hh='campaigns'; $sh='basic'; echo "Πρόσθεσε Νέα Εκστρατεία";} +if ($ADD==12) {$hh='campaigns'; $sh='basic'; echo "Εκστρατεία αντιγράφων";} +if ($ADD==111) {$hh='lists'; echo "Πρόσθεσε Νέα Λίστα";} +if ($ADD==121) {$hh='lists'; echo "Προσθέστε νέο DNC";} +if ($ADD==1111) {$hh='ingroups'; echo "Πρόσθεσε Νέα Εισ-Ομάδα";} +if ($ADD==1211) {$hh='ingroups'; echo "$$$-ΟΜΑΔΑ αντιγράφων";} +if ($ADD==1311) {$hh='ingroups'; echo "Προσθήκη νέουDID";} +if ($ADD==1411) {$hh='ingroups'; echo "ΑντιγραφήDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Προσθήκη Call Μενού";} +if ($ADD==1611) {$hh='ingroups'; echo "Αντιγραφή Call Μενού";} +if ($ADD==11111) {$hh='remoteagent'; echo "Πρόσθεσε Νέους Απομακρυσμένους Χειριστές";} +if ($ADD==111111) {$hh='usergroups'; echo "Πρόσθεσε Νέα Ομάδα Χρηστών";} +if ($ADD==1111111) {$hh='scripts'; echo "Πρόσθεσε Νέο Βοηθό";} +if ($ADD==11111111) {$hh='filters'; echo "Πρόσθεσε Φίλτρο";} +if ($ADD==111111111) {$hh='admin'; $sh='times'; echo "Πρόσθεσε Νέο Χρόνο Κλήσης";} +if ($ADD==131111111) {$hh='admin'; $sh='shifts'; echo "Προσθήκη νέου Shift";} +if ($ADD==1111111111) {$hh='admin'; $sh='times'; echo "Πρόσθεσε Νέο Χρόνο Κλήσης Κατάστασης";} +if ($ADD==11111111111) {$hh='admin'; $sh='phones'; echo "ΠΡΟΣΘΕΣΕ ΝΕΟ ΤΗΛΕΦΩΝΟ";} +if ($ADD==12111111111) {$hh='admin'; $sh='phones'; echo "Προσθήκη νέου PHONE ALIAS";} +if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "Προσθήκη νέου GROUP ALIAS";} +if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "ΠΡΟΣΘΕΣΕ ΝΕΟ ΔΙΑΚΟΜΙΣΤΗ";} +if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "Προσθήκη νέου ΠΙΣΤ TEMPLATE";} +if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "Προσθήκη νέου ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "Προσθήκη νέου TTS ΕΙΣΟΔΟΣ";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "Προσθήκη νέουMusic on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "Προσθήκη νέου ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} +if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "ΠΡΟΣΘΕΣΕ ΝΕΑ ΣΥΝΔΙΑΛΕΞΗ";} +if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} +if ($ADD=='2') {$hh='users'; echo "Προσθήκη Νέου Χρήστη";} +if ($ADD=='2A') {$hh='users'; echo "Νέα αντιγραμμένη προσθήκη χρηστών";} +if ($ADD==20) {$hh='campaigns'; $sh='basic'; echo "Νέα αντιγραμμένη προσθήκη εκστρατείας";} +if ($ADD==21) {$hh='campaigns'; $sh='basic'; echo "Προσθήκη Νέας Εκστρατείας";} +if ($ADD==22) {$hh='campaigns'; $sh='status'; echo "Προσθήκη Νέας Κατάστασης Εκστρατείας";} +if ($ADD==23) {$hh='campaigns'; $sh='hotkey'; echo "New Εκστρατεία HotKey Addition";} +if ($ADD==25) {$hh='campaigns'; $sh='recycle'; echo "Νέα προσθήκη οδηγού ανακύκλωσης εκστρατείας";} +if ($ADD==26) {$hh='campaigns'; $sh='autoalt'; echo "Νέα αυτόματη θέση πινάκων ALT";} +if ($ADD==27) {$hh='campaigns'; $sh='pause'; echo "Νέος κώδικας μικρής διακοπής πρακτόρων";} +if ($ADD==28) {$hh='campaigns'; $sh='dialstat'; echo "Θέση πινάκων εκστρατείας προστιθέμενη";} +if ($ADD==29) {$hh='campaigns'; $sh='listmix'; echo "Μίγμα καταλόγων εκστρατείας προστιθέμενο";} +if ($ADD==211) {$hh='lists'; echo "Προσθήκη Νέας Λίστας";} +if ($ADD==2111) {$hh='ingroups'; echo "Προσθήκη Νέας Εισ-Ομάδας";} +if ($ADD==2011) {$hh='ingroups'; echo "Νέα αντιγραμμένη προσθήκη-ΟΜΑΔΑΣ";} +if ($ADD==2311) {$hh='ingroups'; echo "Νέα προσθήκη DID";} +if ($ADD==2411) {$hh='ingroups'; echo "Νέα προσθήκη αντιγραφή DID";} +if ($ADD==2511) {$hh='ingroups'; echo "Νέα Πρόσκληση Μενού";} +if ($ADD==2611) {$hh='ingroups'; echo "Νέα Πρόσκληση Μενού";} +if ($ADD==21111) {$hh='remoteagent'; echo "Προσθήκη Νέων Απομακρυσμένων Χειριστών";} +if ($ADD==211111) {$hh='usergroups'; echo "Προσθήκη Νέας Ομάδας Χρηστών";} +if ($ADD==2111111) {$hh='scripts'; echo "Νέα προσθήκη Βοηθού";} +if ($ADD==21111111) {$hh='filters'; echo "Προσθήκη Νέου Φίλτρου";} +if ($ADD==211111111) {$hh='admin'; $sh='times'; echo "Προσθήκη Νέου Χρόνου Κλήσης";} +if ($ADD==231111111) {$hh='admin'; $sh='shifts'; echo "Νέα προσθήκη Shift";} +if ($ADD==2111111111) {$hh='admin'; $sh='times'; echo "Προσθήκη Νέου Χρόνου Κλήσης Κατάστασης";} +if ($ADD==21111111111) {$hh='admin'; $sh='phones'; echo "ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΤΗΛΕΦΩΝΟΥ";} +if ($ADD==22111111111) {$hh='admin'; $sh='phones'; echo "Την προσθήκη νέων PHONE ALIAS";} +if ($ADD==23111111111) {$hh='admin'; $sh='phones'; echo "Την προσθήκη νέων GROUP ALIAS";} +if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΔΙΑΚΟΜΙΣΤΗ";} +if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ΠΡΟΣΘΕΤΕΙ ΝΕΑ ΕΓΓΡΑΦΗ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ";} +if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "Την προσθήκη νέων ΠΙΣΤ TEMPLATE";} +if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "Την προσθήκη νέων ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "Adding New TTS ΕΙΣΟΔΟΣ";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "Adding New Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "Adding New ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} +if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΣΥΝΔΙΑΛΕΞΗΣ";} +if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} +if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "ΠΡΟΣΘΗΚΗ ΤΩΝ ΘΈΣΕΩΝ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL";} +if ($ADD==231111111111111) {$hh='admin'; $sh='status'; echo "ΠΡΟΣΘΗΚΗ ΤΗΣ ΚΑΤΗΓΟΡΊΑΣ ΘΈΣΗΣ VICIDIAL";} +if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "Adding VICIDIAL QC Κατάσταση ΚΩΔΙΚΟΣ";} +if ($ADD==3) {$hh='users'; echo "Τροποποίηση Χρήστη";} +if ($ADD==30) {$hh='campaigns'; echo "Εκστρατεία δεν επιτρέπεται";} +if ($ADD==31) + { + $hh='campaigns'; $sh='detail'; echo "Τροποποίηση Εκστρατείας - Λεπτομέρειες - $campaign_id"; + if ($SUB==22) {echo " - Καθεστώτων";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Μόλυβδος ανακύκλωσηςEntries";} + if ($SUB==26) {echo " - Alt Auto Dial Καθεστώτων";} + if ($SUB==27) {echo " - Agent Παύση Κώδικες";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Κατάλογος Mixes";} + if ($SUB=='20A') {echo " - Έρευνα";} + } +if ($ADD==34) + { + $hh='campaigns'; $sh='basic'; echo "Τροποποίηση Εκστρατείας - Βασική Επισκόπηση - $campaign_id"; + if ($SUB==22) {echo " - Καθεστώτων";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Μόλυβδος ανακύκλωσηςEntries";} + if ($SUB==26) {echo " - Alt Auto Dial Καθεστώτων";} + if ($SUB==27) {echo " - Agent Παύση Κώδικες";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Κατάλογος Mixes";} + if ($SUB=='20A') {echo " - Έρευνα";} + } +if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Θέσεις εκστρατείας";} +if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Εκστρατεία HotKeys";} +if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "Ανακύκλωσης καταχωρήσεις μολύβδου εκστρατείας";} +if ($ADD==36) {$hh='campaigns'; $sh='autoalt'; echo "Αυτόματες ALT θέσεις πινάκων εκστρατείας";} +if ($ADD==37) {$hh='campaigns'; $sh='pause'; echo "Κώδικες μικρής διακοπής πρακτόρων εκστρατείας";} +if ($ADD==38) {$hh='campaigns'; $sh='dialstat'; echo "Θέσεις πινάκων εκστρατείας";} +if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Μίγματα καταλόγων εκστρατείας";} +if ($ADD==311) {$hh='lists'; echo "Τροποποίηση Λίστας";} +if ($ADD==3111) {$hh='ingroups'; echo "Τροποποίηση Εισ-Ομάδων";} +if ($ADD==3311) {$hh='ingroups'; echo "ModifyDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Τροποποίηση Call Μενού";} +if ($ADD==31111) {$hh='remoteagent'; echo "Τροποποίηση Απομακρυσμένων Χειριστών";} +if ($ADD==311111) {$hh='usergroups'; echo "Τροποποίηση Ομάδων Χρηστών";} +if ($ADD==3111111) {$hh='scripts'; echo "Τροποποιήστε τον Βοηθό";} +if ($ADD==31111111) {$hh='filters'; echo "Τροποποίηση Φίλτρου";} +if ($ADD==311111111) {$hh='admin'; $sh='times'; echo "Τροποποίηση Χρόνου Κλήσης";} +if ($ADD==321111111) {$hh='admin'; $sh='times'; echo "Τροποποίηση Λίστας Ορισμών Χρόνου Κλήσης Κατάστασης ";} +if ($ADD==331111111) {$hh='admin'; $sh='shifts'; echo "Τροποποιήστε Shift";} +if ($ADD==3111111111) {$hh='admin'; $sh='times'; echo "Τροποπίηση Χρόνου Κλήσης Κατάστασης";} +if ($ADD==31111111111) {$hh='admin'; $sh='phones'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ";} +if ($ADD==32111111111) {$hh='admin'; $sh='phones'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ ALIAS";} +if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFY GROUP ALIAS";} +if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ";} +if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFY ΠΙΣΤ TEMPLATE";} +if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ΕΙΣΟΔΟΥ";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFY Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFY ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} +if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΣΥΝΔΙΑΛΕΞΗ";} +if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΤΟΠΟΘΕΤΉΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL";} +if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo "ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΘΈΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL";} +if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo "ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΗΝ ΚΑΤΗΓΟΡΊΑ ΘΈΣΗΣ VICIDIAL";} +if ($ADD==341111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC Κατάσταση ΚΩΔΙΚΟΣ";} +if ($ADD=="4A") {$hh='users'; echo "Τροποποίηση Χρήστη - Admin";} +if ($ADD=="4B") {$hh='users'; echo "Τροποποίηση Χρήστη - Admin";} +if ($ADD==4) {$hh='users'; echo "Τροποποίηση Χρήστη";} +if ($ADD==41) {$hh='campaigns'; $sh='detail'; echo "Τροποποίηση Εκστρατείας";} +if ($ADD==42) {$hh='campaigns'; $sh='status'; echo "Τροποποίηση Εκστρατείας Status";} +if ($ADD==43) {$hh='campaigns'; $sh='hotkey'; echo "Τροποποίηση Εκστρατείας HotKey";} +if ($ADD==44) {$hh='campaigns'; $sh='basic'; echo "Τροποποίηση Εκστρατείας - Βασική Επισκόπηση";} +if ($ADD==45) {$hh='campaigns'; $sh='recycle'; echo "Τροποποιήστε τον οδηγό εκστρατείας ανακύκλωσης";} +if ($ADD==47) {$hh='campaigns'; $sh='pause'; echo "Τροποποιήστε τον κώδικα μικρής διακοπής πρακτόρων";} +if ($ADD==48) {$hh='campaigns'; $sh='qc'; echo "Τροποποίηση Ρυθμίσεων Καμπάνιας QC";} +if ($ADD==49) {$hh='campaigns'; $sh='listmix'; echo "Τροποποιήστε το μίγμα καταλόγων εκστρατείας";} +if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Τροποποίηση Καμπάνιας Έρευνα";} +if ($ADD==411) {$hh='lists'; echo "Τροποποίηση Λίστας";} +if ($ADD==4111) {$hh='ingroups'; echo "Τροποποίηση Εισ-Ομάδων";} +if ($ADD==4311) {$hh='ingroups'; echo "ModifyDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Τροποποίηση Call Μενού";} +if ($ADD==41111) {$hh='remoteagent'; echo "Τροποποίηση Απομακρυσμένων Χειριστών";} +if ($ADD==411111) {$hh='usergroups'; echo "Τροποποίηση Ομάδων Χρηστών";} +if ($ADD==4111111) {$hh='scripts'; echo "Τροποποιήστε τον Βοηθό";} +if ($ADD==41111111) {$hh='filters'; echo "Τροποποίηση Φίλτρου";} +if ($ADD==411111111) {$hh='admin'; $sh='times'; echo "Τροποποίηση Χρόνου Κλήσης";} +if ($ADD==431111111) {$hh='admin'; $sh='shifts'; echo "Τροποποιήστε Shift";} +if ($ADD==4111111111) {$hh='admin'; $sh='times'; echo "Τροποπίηση Χρόνου Κλήσης Κατάστασης";} +if ($ADD==41111111111) {$hh='admin'; $sh='phones'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ";} +if ($ADD==42111111111) {$hh='admin'; $sh='phones'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ ALIAS";} +if ($ADD==43111111111) {$hh='admin'; $sh='phones'; echo "MODIFY GROUP ALIAS";} +if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ";} +if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ";} +if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFY ΠΙΣΤ TEMPLATE";} +if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ΕΙΣΟΔΟΥ";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFY Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFY ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} +if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "ΤΡΟΠΟΠΟΙΗΣΕ ΣΥΝΔΙΑΛΕΞΗ";} +if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΤΟΠΟΘΕΤΉΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL";} +if ($ADD==421111111111111) {$hh='admin'; $sh='status'; echo "ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΘΈΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL";} +if ($ADD==431111111111111) {$hh='admin'; $sh='status'; echo "ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΚΑΤΗΓΟΡΊΕΣ ΘΈΣΗΣ VICIDIAL";} +if ($ADD==441111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC Κατάσταση ΚΩΔΙΚΟΣ";} +if ($ADD==5) {$hh='users'; echo "ΔιαγράφωΧρήστης";} +if ($ADD==51) {$hh='campaigns'; $sh='detail'; echo "ΔιαγράφωΕκστρατεία";} +if ($ADD==52) {$hh='campaigns'; $sh='detail'; echo "Αποσυνδεμένοι Χειριστές";} +if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "έκτακτης ανάγκης καθαρισμού VDAC";} +if ($ADD==511) {$hh='lists'; echo "ΔιαγράφωList";} +if ($ADD==5111) {$hh='ingroups'; echo "ΔιαγράφωIn-Group";} +if ($ADD==5311) {$hh='ingroups'; echo "ΔιαγράφωDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Διαγραφή Call Μενού";} +if ($ADD==51111) {$hh='remoteagent'; echo "Διάγραψε τους Απομακρυσμένους Χειριστές";} +if ($ADD==511111) {$hh='usergroups'; echo "Διάγραψε τους χρήστες Group";} +if ($ADD==5111111) {$hh='scripts'; echo "Διάγραψε τον Βοηθό";} +if ($ADD==51111111) {$hh='filters'; echo "Διαγραφή Φίλτρου";} +if ($ADD==511111111) {$hh='admin'; $sh='times'; echo "Διαγραφή Χρόνου Κλήσης";} +if ($ADD==531111111) {$hh='admin'; $sh='shifts'; echo "Διαγραφή Shift";} +if ($ADD==5111111111) {$hh='admin'; $sh='times'; echo "Διαγραφή Χρόνου Κλήσης Κατάστασης";} +if ($ADD==51111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==52111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE ALIAS";} +if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "Διαγραφή ομάδας ALIAS";} +if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "DELETE ΠΙΣΤ TEMPLATE";} +if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "DELETE ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ΕΙΣΟΔΟΥ";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} +if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==6) {$hh='users'; echo "ΔιαγράφωΧρήστης";} +if ($ADD==61) {$hh='campaigns'; $sh='detail'; echo "ΔιαγράφωΕκστρατεία";} +if ($ADD==62) {$hh='campaigns'; $sh='detail'; echo "Αποσυνδεμένοι Χειριστές";} +if ($ADD==63) {$hh='campaigns'; $sh='detail'; echo "έκτακτης ανάγκης καθαρισμού VDAC";} +if ($ADD==65) {$hh='campaigns'; $sh='recycle'; echo "Διαγράψτε τον οδηγό ανακύκλωσης";} +if ($ADD==66) {$hh='campaigns'; $sh='autoalt'; echo "Διαγράψτε την αυτόματη θέση πινάκων ALT";} +if ($ADD==67) {$hh='campaigns'; $sh='pause'; echo "Διαγράψτε τον κώδικα μικρής διακοπής πρακτόρων";} +if ($ADD==68) {$hh='campaigns'; $sh='dialstat'; echo "Θέση πινάκων εκστρατείας αφαιρούμενη";} +if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "Μίγμα καταλόγων εκστρατείας αφαιρούμενο";} +if ($ADD==611) {$hh='lists'; echo "ΔιαγράφωList";} +if ($ADD==6111) {$hh='ingroups'; echo "ΔιαγράφωIn-Group";} +if ($ADD==6311) {$hh='ingroups'; echo "ΔιαγράφωDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Διαγραφή Call Μενού";} +if ($ADD==61111) {$hh='remoteagent'; echo "Διάγραψε τους Απομακρυσμένους Χειριστές";} +if ($ADD==611111) {$hh='usergroups'; echo "Διάγραψε τους χρήστες Group";} +if ($ADD==6111111) {$hh='scripts'; echo "Διάγραψε τον Βοηθό";} +if ($ADD==61111111) {$hh='filters'; echo "Διαγραφή Φίλτρου";} +if ($ADD==611111111) {$hh='admin'; $sh='times'; echo "Διαγραφή Χρόνου Κλήσης";} +if ($ADD==631111111) {$hh='admin'; $sh='shifts'; echo "Διαγραφή Shift";} +if ($ADD==6111111111) {$hh='admin'; $sh='times'; echo "Διαγραφή Χρόνου Κλήσης Κατάστασης";} +if ($ADD==61111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE ALIAS";} +if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "Διαγραφή ομάδας ALIAS";} +if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "ΔΙΑΓΡΑΦΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "DELETE ΠΙΣΤ TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "DELETE ΘΑΛΑΜΙΣΚΟ";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ΕΙΣΟΔΟΥ";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE Music on Hold ΕΙΣΟΔΟΥ";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX";} +if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==73) {$hh='campaigns'; echo "Μετρητής Κληθέντων Οδηγών";} +if ($ADD==7111111) {$hh='scripts'; echo "Προεπισκόπιση Βοηθού";} +if ($ADD==700000000000000) {$hh='reports'; echo "ΔΙΑΧΕΙΡΙΣΗ CHANGE LOG";} +if ($ADD==710000000000000) {$hh='reports'; echo "VICIDIAL ΧΡΗΣΤΗΣ ΔΙΟΙΚΗΣΗΣ CHANGE LOG";} +if ($ADD==720000000000000) {$hh='reports'; echo "VICIDIAL ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ CHANGE LOG";} +if ($ADD==730000000000000) {$hh='reports'; echo "VICIDIAL ΛΕΠΤΟΜΕΡΕΙΑ ADMIN CHANGE LOG";} +if ($ADD==0) {$hh='users'; echo "Λίστα Χρηστών";} +if ($ADD==8) {$hh='users'; echo "Επανακλήσεις μέσα στον χειριστή";} +if ($ADD==81) {$hh='campaigns'; $sh='list'; echo "Επανακλήσεις μέσα στην εκστρατεία";} +if ($ADD==811) {$hh='lists'; echo "Επανακλήσεις μέσα στην λίστα";} +if ($ADD==8111) {$hh='usergroups'; echo "CallBacks μέσα στην ομάδα χρηστών ";} +if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Εκστρατείες";} +if ($ADD==100) {$hh='lists'; echo "Λίστες";} +if ($ADD==1000) {$hh='ingroups'; echo "Εισ-Ομάδες";} +if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Καλέστε Menus";} +if ($ADD==10000) {$hh='remoteagent'; echo "Απομακρυσμένοι Χειριστές";} +if ($ADD==100000) {$hh='usergroups'; echo "Ομάδες Χρήστη";} +if ($ADD==1000000) {$hh='scripts'; echo "Βοηθοί";} +if ($ADD==10000000) {$hh='filters'; echo "Φίλτρα";} +if ($ADD==100000000) {$hh='admin'; $sh='times'; echo "Χρόνοι Κλήσεων";} +if ($ADD==130000000) {$hh='admin'; $sh='shifts'; echo "Βάρδιες";} +if ($ADD==1000000000) {$hh='admin'; $sh='times'; echo "";} +if ($ADD==10000000000) {$hh='admin'; $sh='phones'; echo "ΛΙΣΤΑ ΤΗΛΕΦΩΝΟΥ";} +if ($ADD==12000000000) {$hh='admin'; $sh='phones'; echo "PHONE ALIAS ΚΑΤΑΛΟΓΟΣ";} +if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "ΟΜΑΔΑ ALIAS ΚΑΤΑΛΟΓΟΣ";} +if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "ΛΙΣΤΑ ΔΙΑΚΟΜΙΣΤΗ";} +if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "ΠΙΣΤ TEMPLATE ΚΑΤΑΛΟΓΟΣ";} +if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "ΘΑΛΑΜΙΣΚΟ ΚΑΤΑΛΟΓΟΣ";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS Συμμετοχές";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "Music on Hold Συμμετοχές";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ πλαίσια λίστας";} +if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "ΛΙΣΤΑ ΣΥΝΔΙΑΛΕΞΕΩΝ";} +if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL ΛΙΣΤΑ ΣΥΝΔΙΑΛΕΞΕΩΝ";} +if ($ADD==550) {$hh='users'; echo "Φόρμα Αναζήτησης";} +if ($ADD==551) {$hh='users'; echo "ΑΝΑΖΗΤΗΣΗ ΤΗΛΕΦΩΝΩΝ";} +if ($ADD==660) {$hh='users'; echo "Αποτελέσματα Αναζήτησης";} +if ($ADD==661) {$hh='users'; echo "ΑΝΑΖΗΤΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΗΛΕΦΩΝΩΝ";} +if ($ADD==99999) {$hh='users'; echo "ΒΟΗΘΕΙΑ";} +if ($ADD==999999) {$hh='reports'; echo "ΑΝΑΦΟΡΕΣ";} + +if ( ($ADD>9) && ($ADD < 99998) ) + { + ##### get scripts listing for dynamic pulldown + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $scripts_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $scripts_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get filters listing for dynamic pulldown + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_sql from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + $filters_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($filters_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $filters_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $filtername_list["$rowx[0]"] = "$rowx[1]"; + $filtersql_list["$rowx[0]"] = "$rowx[2]"; + $o++; + } + + ##### get call_times listing for dynamic pulldown + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $times_to_print = mysql_num_rows($rslt); + + $o=0; + while ($times_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $call_times_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $call_timename_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + } + +if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD<70)) or ($ADD=="4A") or ($ADD=="4B") or (strlen($ADD)==12) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + + ##### BEGIN get campaigns listing for rankings ##### + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $campaigns_value=''; + $RANKcampaigns_list="<tr><td>CAMPAIGN</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $campaign_id_values[$o] = $rowx[0]; + $campaign_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + $group_web_vars=''; + $campaign_web=''; + $stmt="SELECT campaign_rank,calls_today,group_web_vars from vicidial_campaign_agents where user='$user' and campaign_id='$campaign_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_campaign_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_campaign_rank=0; $group_web_vars='';} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_GET["RANK_$campaign_id_values[$o]"];} + elseif (isset($_POST["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_POST["RANK_$campaign_id_values[$o]"];} + if (isset($_GET["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_GET["WEB_$campaign_id_values[$o]"];} + elseif (isset($_POST["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_POST["WEB_$campaign_id_values[$o]"];} + if ($non_latin < 1) + { + $campaign_rank = ereg_replace("[^-\_0-9]","",$campaign_rank); + $campaign_web = preg_replace("/;|\"|\'/","",$campaign_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', group_web_vars='$campaign_web' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', campaign_id='$campaign_id_values[$o]', user='$user', group_web_vars='$campaign_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_agents set campaign_weight='$campaign_rank' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$campaign_rank = $SELECT_campaign_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + # disable non user-group allowable campaign ranks + $stmt="SELECT user_group from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Ruser_group = $row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$Ruser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $UGcampaigns = explode(" ", $allowed_campaigns); + + $p=0; $RANK_camp_active=0; $CR_disabled = ''; + if (eregi('-ALL-CAMPAIGNS-',$allowed_campaigns)) + {$RANK_camp_active++;} + else + { + $UGcampaign_ct = count($UGcampaigns); + while ($p < $UGcampaign_ct) + { + if ($campaign_id_values[$o] == $UGcampaigns[$p]) + {$RANK_camp_active++;} + $p++; + } + } + if ($RANK_camp_active < 1) {$CR_disabled = 'DISABLED';} + + $RANKcampaigns_list .= "<tr $bgcolor><td>"; + $campaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] <BR>\n"; + $RANKcampaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] </td>"; + $RANKcampaigns_list .= "<td>     <select size=1 name=RANK_$campaign_id_values[$o] $CR_disabled>\n"; + $h="9"; + while ($h>=-9) + { + $RANKcampaigns_list .= "<option value=\"$h\""; + if ($h==$campaign_rank) + {$RANKcampaigns_list .= " SELECTED";} + $RANKcampaigns_list .= ">$h</option>"; + $h--; + } + if ( (strlen($campaign_web) < 1) and (strlen($group_web_vars) > 0) ) + {$campaign_web=$group_web_vars;} + $RANKcampaigns_list .= "</select></td>\n"; + $RANKcampaigns_list .= "<td align=right>     $calls_today</td>\n"; + $RANKcampaigns_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$campaign_id_values[$o] value=\"$campaign_web\"></td></tr>\n"; + $o++; + } + ##### END get campaigns listing for rankings ##### + + + ##### BEGIN get inbound groups listing for checkboxes ##### + $xfer_groupsSQL=''; + if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) + { + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + + 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';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + if ($ADD==3) + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; +# $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + $XFERgroups_list=''; + $RANKgroups_list="<tr><td>Εισερχόμενα GROUP</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_values[$o] = $rowx[0]; + $group_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($groups_to_print > $o) + { + $group_web_vars=''; + $group_web=''; + $stmt="SELECT group_rank,calls_today,group_web_vars from vicidial_inbound_group_agents where user='$user' and group_id='$group_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_group_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_group_rank=0;} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$group_id_values[$o]"])) {$group_rank=$_GET["RANK_$group_id_values[$o]"];} + elseif (isset($_POST["RANK_$group_id_values[$o]"])) {$group_rank=$_POST["RANK_$group_id_values[$o]"];} + if (isset($_GET["WEB_$group_id_values[$o]"])) {$group_web=$_GET["WEB_$group_id_values[$o]"];} + elseif (isset($_POST["WEB_$group_id_values[$o]"])) {$group_web=$_POST["WEB_$group_id_values[$o]"];} + + if ($non_latin < 1) + { + $group_rank = ereg_replace("[^-\_0-9]","",$group_rank); + $group_web = preg_replace("/;|\"|\'/","",$group_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_web_vars='$group_web' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_id='$group_id_values[$o]', user='$user', group_web_vars='$group_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_inbound_agents set group_weight='$group_rank' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$group_rank = $SELECT_group_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $groups_list .= "<input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $XFERgroups_list .= "<input type=\"checkbox\" name=\"XFERgroups[]\" value=\"$group_id_values[$o]\""; + $RANKgroups_list .= "<tr $bgcolor><td><input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $p=0; + $group_ct = count($groups); + while ($p < $group_ct) + { + if ($group_id_values[$o] == $groups[$p]) + { + $groups_list .= " CHECKED"; + $RANKgroups_list .= " CHECKED"; + $groups_value .= " $group_id_values[$o]"; + } + $p++; + } + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + if ($group_id_values[$o] == $XFERgroups[$p]) + { + $XFERgroups_list .= " CHECKED"; + $XFERgroups_value .= " $group_id_values[$o]"; + } + $p++; + } + $stmt="SELECT queue_priority from vicidial_inbound_groups where group_id='$group_id_values[$o]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VIG_priority = $row[0]; + + $groups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] - $VIG_priority <BR>\n"; + $XFERgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] <BR>\n"; + $RANKgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] </td>"; + $RANKgroups_list .= "<td>     <select size=1 name=RANK_$group_id_values[$o]>\n"; + $h="9"; + while ($h>=-9) + { + $RANKgroups_list .= "<option value=\"$h\""; + if ($h==$group_rank) + {$RANKgroups_list .= " SELECTED";} + $RANKgroups_list .= ">$h</option>"; + $h--; + } + if ( (strlen($group_web) < 1) and (strlen($group_web_vars) > 0) ) + {$group_web=$group_web_vars;} + $RANKgroups_list .= "</select></td>\n"; + $RANKgroups_list .= "<td align=right>     $calls_today</td>\n"; + $RANKgroups_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$group_id_values[$o] value=\"$group_web\"></td></tr>\n"; + $o++; + } + if (strlen($groups_value)>2) {$groups_value .= " -";} + if (strlen($XFERgroups_value)>2) {$XFERgroups_value .= " -";} + } + ##### END get inbound groups listing for checkboxes ##### + + +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) + { + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + { + $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $qc_allowed_campaigns = $row[1]; + $qc_allowed_inbound_groups = $row[2]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $campaigns = explode(" ", $allowed_campaigns); + $qc_allowed_campaigns = preg_replace("/ -$/","",$qc_allowed_campaigns); + $qc_campaigns = explode(" ", $qc_allowed_campaigns); + $qc_allowed_inbound_groups = preg_replace("/ -$/","",$qc_allowed_inbound_groups); + $qc_groups = explode(" ", $qc_allowed_inbound_groups); + } + + $campaigns_value=''; + $campaigns_list='<B><input type="checkbox" name="campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_campaigns_value=''; + $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_groups_value=''; + $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) + { + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } + $campaigns_list.="> ALL-CAMPAIGNS - ΟΙ ΧΡΗΣΤΕΣ ΜΠΟΡΟΥΝ ΝΑ ΔΟΥΝ ΟΠΟΙΑΔΗΠΟΤΕ ΕΚΣΤΡΑΤΕΙΑ</B><BR>\n"; + $qc_campaigns_list.="> ALL-CAMPAIGNS - Οι χρήστες μπορούν να QC οποιαδήποτε καμπάνια</B><BR>\n"; + $qc_groups_list.="> ALL-GROUPS - Οι χρήστες μπορούν να ANY QC εισερχόμενα ΟΜΑΔΑ</B><BR>\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaign_id_value = $rowx[0]; + $campaign_name_value = $rowx[1]; + $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; + $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; + $p=0; + while ($p<1000) + { + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) + { + # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; + $campaigns_list .= " CHECKED"; + $campaigns_value .= " $campaign_id_value"; + } + if ($campaign_id_value == $qc_campaigns[$p]) + { + $qc_campaigns_list .= " CHECKED"; + $qc_campaigns_value .= " $campaign_id_value"; + } + # echo "<!-- O $p|$campaign_id_value|$campaigns[$p]| -->"; + $p++; + } + $campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $qc_campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $o++; + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; + $p=0; + while ($p<2000) + { + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) + { + $qc_groups_list .= " CHECKED"; + $qc_groups_value .= " $group_id_value"; + } + $p++; + } + $qc_groups_list .= "> $group_id_value - $group_name_value<BR>\n"; + $o++; + } + + if (strlen($campaigns_value)>2) {$campaigns_value .= " -";} + if (strlen($qc_campaigns_value)>2) {$qc_campaigns_value .= " -";} + if (strlen($qc_groups_value)>2) {$qc_groups_value .= " -";} + } + ##### END get campaigns listing for checkboxes ##### + + +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rsltx=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rsltx); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + } + + + +$NWB = "   <a href=\"javascript:openNewWindow('$PHP_SELF?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"ΒΟΗΘΕΙΑ\" ALIGN=TOP></A>"; + + +###################################################################################################### +###################################################################################################### +####### 9 series, HELP screen +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=99999 display the HELP SCREENS +###################### + +if ($ADD==99999) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: ΒΟΗΘΕΙΑ


\n"; + + ?> + VICIDIAL_ΧΡΗΣΤΕΣ ΠΙΝΑΚΑΣ

+ +
+ ID Χρήστη - Σε αυτό το πεδίο τοποθετείται ο αριθμός ID του χρήστη, μπορεί να είναι μεταξύ 2 και 8 ψηφία. + +
+
+
+ Κωδικός - Σε αυτό το πεδίο τοποθετείται ο κωδικός του χρήστη στο VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες. + +
+
+
+ Πλήρες Ονομα - Αυτό το πεδίο είναι που μπορείτε να ορίσετε το πλήρες όνομα των χρηστών VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες. + +
+
+
+ Επίπεδο Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε το επίπεδο χρήστη των VICIDIAL χρηστών. Πρέπει να έχει επίπεδο 1 για να συνδεθεί στο σύστημα. Πρέπει να έχει επίπεδο μεγαλύτερο από 2 για να συνδεθεί ως closer. Πρέπει να έχει επίπεδο 8 ή μεγαλύερο για ενέργειες διαχειριστή. + +
+
+
+ Ομάδα Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε την ομάδα χρηστών που ανήκει ο χρήστης. + +
+
+
+ Σύνδεση Τηλεφώνου - εδώ μπορείτε να θέσετε μία προκαθορισμένη σύνδεση τηλεφώνου κατά την είσοδο του χειριστή στο vicidial.php. + +
+
+
+ Κωδικός Τηλεφώνου - εδώ μπορείτε να θέσετε ένα προκαθορισμένο κωδικό τηλεφώνου κατά την είσοδο του χειριστή στο vicidial.php. + +
+
+
+ Ενεργή - Το πεδίο αυτό καθορίζει αν ο χρήστης είναι ενεργός στο σύστημα και μπορεί να χρησιμοποιήσει VICIDIAL πόρων. Προεπιλεγμένο είναι Y + +
+
+
+ E-mail, το χρήστη και Κωδικός Επικράτεια - Αυτά είναι προαιρετικά πεδία. + +
+
+
+ Hot Keys ενεργός - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να χρησιμοποιήσει τα πλήκτρα γρήγορου τερματισμού vicidial.php. + +
+
+
+ Ο πράκτορας επιλέγει Ingroups - εάν θέσετε σε 1 αυτή την επιλογή επιτρέπει στο χρήστη να επιλέξει τις εισ-ομάδες που θα λάβουν τις κλήσεις. Διαφορετικά ο Manager θα πρέπει να το θέσει αυτό στην σελίδα διαχείρισης. + +
+
+
+ Agent Επιλέξτε Εδάφη - Αυτή η επιλογή αν οριστεί σε 1 επιτρέπει στο χρήστη να επιλέξει τις περιοχές που θα λάβουν κλήσεις από όταν συνδεθείτε με ένα εγχειρίδιο ή Εισερχόμενα_MAN καμπάνια. Αντίθετη περίπτωση ο χρήστης θα πρέπει να ρυθμιστεί να χρησιμοποιεί όλα τα εδάφη που έχουν οριστεί σε ανήκουν στο χρήστη Εδάφη διοικητική ενότητα. + +
+
+
+ Scheduled Callbacks - Η επιλογή αυτή επιτρέπει σε έναν πράκτορα για τη διάθεσή μια κλήση όπως CALLBK και να επιλέξει την ημερομηνία και την ώρα κατά την οποία το αποτέλεσμα θα πρέπει να ενεργοποιηθεί και πάλι. + +
+
+
+ Μόνο του Χρήστη Επανακλήσεις- Αυτή η επιλογή επιτρέπει στον χρήστη να θέσει μία επανάκληση με τέτοιο τρόπο, ώστε μόνο αυτός να μπορεί να καλέσει τον πελάτη. Επίσης, επιτρέπει στον χρήστη να δει τις λίστες των επανακλήσεων και να τις καλέσει οποιαδήποτε στιγμή. + +
+
+
+ Χειροκίνητη Κλήση Χρήστη - Αυτή η επιλογή επιτρέπει στον χειριστή να καταχωρήσει χειροκίνητα ένα νέο οδηγό στο σύστημα και να τον καλέσε. + +
+
+
+ Ηχογράφηση - Αυτή η επιλογή μπορεί να απαγορεύσει σε έναν χειριστή να κάνει ηχογραφήσεις και θα πρέπει να ακολουθεί την διαδικασία ηχογράφησης της εκστρατείας. + +
+
+
+ Μεταφορές- Αυτή η επιλογή μπορεί να απαγορεύσει σε έναν χειριστή να ανοίξει την διαδικασία μεταφορά-συνδιάσκεψη. Αν είναι απενεργοποιημένη, ο χρήστης δεν μπορεί να μεαφέρει κλήσεις ή να κάνει κλήση σε τρίτο. + + 0) + { + ?> +
+
+
+ Πιό στενή προεπιλογή που συνδυάζεται - αυτή η επιλογή προκαθορίζει απλά το συνδυασμένο τετραγωνίδιο σε μια ΠΙΟ ΣΤΕΝΉ οθόνη σύνδεσης. + + +
+
+
+ VICIDIAL συμπληρωματική προμήθεια καταγραφής - αυτή η επιλογήθα αγνοήσει οποιο δήποτε η επιλογή είναι στην εκστρατεία για τηνκαταγραφή. Τα ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΈΣ ΑΝΑΓΚΕΣ δεν θα αγνοήσουν τηρύθμιση καταγραφής εκστρατείας. Δεν θα θέσει εκτός λειτουργίαςΠΟΤΕ την καταγραφή στον πελάτη. ONDEMAND είναι η προεπιλογήκαι επιτρέπει στον πράκτορα για να αρχίσει και να σταματήσει όπωςαπαιτείται. ALLCALLS θα αρχίσει την καταγραφή στον πελάτηόποτε μια κλήση στέλνεται σε έναν πράκτορα. ALLFORCE θααρχίσει την καταγραφή στον πελάτη όποτε μια κλήση στέλνεται σεέναν πράκτορα που δεν δίνει στον πράκτορα καμία επιλογή νασταματήσει. Για ALLCALLS και ALLFORCE υπάρχει μια επιλογή ναχρησιμοποιηθεί η καθυστέρηση καταγραφής για να περικόψει στιςπολύ σύντομα καταγραφές και recude το φορτίο συστημάτων. + +
+
+
+ Agent Shift Επιβολή Override - Η ρύθμιση αυτή θα αντικαταστήσει τους χρήστες ανεξάρτητα από την ομάδα χρηστών που έχει για την εκτέλεση Shift. DISABLED θα χρησιμοποιήσει ο χρήστης ομάδα ρύθμιση. OFF δεν θα επιβάλει σε όλες τις βάρδιες. START θα επιβάλει μόνο το χρόνο σύνδεσης, αλλά δεν θα επηρεάσει έναν πράκτορα που εκτελεί τους πάνω μετατόπιση του χρόνου και αν είναι ήδη συνδεδεμένος in. ALL θα επιβάλλει μετατόπιση χρόνος έναρξης και θα συνδεθείτε ορίζονται μετά από έναν πράκτορα που τρέχουν πάνω από το τέλος του χρόνου τους βάρδια. Η προεπιλογή είναι άτομα με ειδικές ανάγκες. + +
+
+
+ Alert Enabled - Το πεδίο αυτό δείχνει κατά πόσο ο μεσάζων έχει τη δυνατότητα web browser ειδοποιήσεις για κλήσεις όταν έρθουν σε vicidial.php συνόδου τους. Η προεπιλογή είναι 0 για τα NO. + +
+
+
+ Επιτρέψτε Alerts - Αυτό το πεδίο σας δίνει τη δυνατότητα να επιτρέψει browser πράκτορα ειδοποιήσεις για να ενεργοποιηθεί από το πρακτορείο για κλήσεις όταν έρχονται σε vicidial.php συνεδρία τους. Προεπιλογή είναι 0 για το NO. + +
+
+
+ Τάξεις εκστρατείας - σε αυτό το τμήμα μπορείτε να καθορίσετε τηντάξη που ένας πράκτορας θα έχει για κάθε εκστρατεία. Αυτές οιτάξεις μπορούν να χρησιμοποιηθούν για να επιτρέψουν τηνπροτιμημένη κλήση καθοδηγώντας όταν τίθεται η επόμενη κλήσηπρακτόρων campaign_rank. Επίσης σε αυτό το τμήμα της WEB VARs για κάθε καμπάνια. Αυτά επιτρέπουν κάθε παράγοντα να έχει μια διαφορετική μεταβλητή συμβολοσειρά που μπορεί να προστεθεί στην ηλεκτρονική φόρμα ή SCRIPT καρτέλα URLs από απλά θέτοντας - Α - web_vars - Β - όπως θα την κάθε άλλο τομέα. + +
+
+
+ Εισερχόμενες Ομάδες - Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία CLOSER. Θα είστε σε θέση επίσης να θέσετε την τάξη, ή το επίπεδοικανότητας, σε αυτό το τμήμα κάθε μιας από τις εισερχόμενεςομάδες καθώς επίσης και όντας σε θέση να δείτε τοναριθμό κλήσεων που παραλαμβάνονται από κάθε εισερχόμενη ομάδαγια αυτόν τον συγκεκριμένο πράκτορα. Επίσης σε αυτό το τμήμα είναι η δυνατότητα να δοθεί στονπράκτορα μια τάξη για κάθε εισερχόμενη ομάδα. Αυτές οι τάξειςμπορούν να χρησιμοποιηθούν για την προτιμημένη κλήση καθοδηγώνταςόταν επιλέγεται εκείνη η επιλογή στην οθόνη-ΟΜΑΔΑΣ. Επίσης σε αυτό το τμήμα της WEB VARs για κάθε καμπάνια. Αυτά επιτρέπουν κάθε παράγοντα να έχει μια διαφορετική μεταβλητή συμβολοσειρά που μπορεί να προστεθεί στην ηλεκτρονική φόρμα ή SCRIPT καρτέλα URLs από απλά θέτοντας - Α - web_vars - Β - όπως θα την κάθε άλλο τομέα. + +
+
+
+ Ο πράκτορας αλλάζει τη συμπληρωματική προμήθεια στοιχείωνπελατών - αυτή η επιλογή θα αγνοήσει οποιος δήποτε η επιλογήείναι στην εκστρατεία για την αλλαγή των στοιχείων πελατών.NOT_ACTIVE θα χρησιμοποιήσει οποιου δήποτε που θέτει είναιπαρών για την εκστρατεία. ALLOW_ALTER θα επιτρέψει πάντα τονπράκτορα να αλλάξει τα στοιχεία πελατών, η των οποίων ρύθμισηεκστρατείας είναι. Η προεπιλογή είναι NOT_ACTIVE. + +
+
+
+ Agent Alter Πελατών τηλέφωνο Παράκαμψη - Η επιλογή αυτή θα υπερισχύσει του όποια κι αν είναι η επιλογή είναι στην εκστρατεία για την τροποποίηση του πελάτη τον αριθμό του τηλεφώνου. NOT_ACTIVE θα χρησιμοποιήσει όποια ρύθμιση είναι παρόντες κατά την εκστρατεία. ALLOW_ALTER θα επιτρέπει πάντα για τον πράκτορα να τροποποιήσει τον αριθμό τηλεφώνου του πελάτη, δεν το θέμα αυτό η εκστρατεία η ρύθμιση. Προεπιλεγμένο είναι NOT_ACTIVE. + +
+
+
+ Custom χρήστη Κενά - Αυτές οι πέντε τομείς που μπορούν να χρησιμοποιηθούν για διάφορους σκοπούς, και μπορούν να κατοικείται σε διευθύνσεις φόρμα και σενάρια ως user_custom_one και ούτω καθεξής. + +
+
+
+ Αλλάξτε τις επιλογές διεπαφών Χειριστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο διαχειριστή να τροποποιήσει τις επιλογές διεπαφών χειριστών στην admin.php. + +
+
+
+ Διαγραφή Χρηστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει άλλους χρήστες ίσου ή μικρότερου επιπέδου από το σύστημα. + +
+
+
+ Διαγραφή Ομάδων Χρηστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις ομάδες χρηστών από το σύστημα. + +
+
+
+ Διαγραφή Λιστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις λίστες από το σύστημα. + +
+
+
+ Διαγραφή Εκστρατειών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις εκστρατείες από το σύστημα. + +
+
+
+ Διαγραφή Εισ-Ομάδων - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις Εισ-Ομάδες από το σύστημα. + +
+
+
+ Διαγράψτε τους Απομακρυσμένους Χειριστές - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τους απομακρυσμένους χειριστές από το σύστημα. + + 0) + { + ?> +
+
+
+ Εισαγωγή Οδηγών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να εισάγει τους οδηγούς στον πίνακα vicidial_list μέσω του βασισμένου σε Ιστοσελίδα Εισαγωγέα οδηγών. + + +
+
+
+ Λεπτομέρειες Εκστρατείας - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να δει και να τροποποιήσει τα λεπτομερή στοιχεία της εκστρατείας. + +
+
+
+ AGC Πρόσβαση Διαχειριστή - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να συνδεθεί στις σελίδες του astGUIclient ως διαχειριστής. + +
+
+
+ AGC διαγραφή τηλεφώνων - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τα τηλέφωνα στις σελίδες του διαχειριστή του astGUIclient. + +
+
+
+ Διαγραφή Βοηθού - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τους οδηγούς της εκστρατείας . + +
+
+
+ Τροποποιήστε τους οδηγούς - αυτή η επιλογή εάν τη θέσετε σε 1, επιτρέπει στο χρήστη να τροποποιήσει τους οδηγούς στη σελίδα αποτελεσμάτων αναζήτησης οδηγών. + +
+
+
+ Αλλαγή Εκστρατείας Χειριστού - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να αλλάξει την εκτρατεία όπου ένας πράκτορας έχει συνδεθεί . + + 0) + { + ?> +
+
+
+ Διαγραφή Φίλτρων - Αυτή η επιλογή επιτρέπει στον χειριστή να διαγράφει φίλτρα από το σύστημα. + + +
+
+
+ Διαγραφή Χρόνων Κλήσεων - Αυτή η επιλογή επιτρέπει στον χρήστη να διαγράφει εγγραφές χρόνων κλήσεων και καταστάσεων από το σύστημα. + +
+
+
+ Τροποποίηση Χρόνων Κλήσεων - Αυτή η επιλογή επιτρέπει στον χρήστη εμφανίσει και να τροποποιήσει τους χρόνους κλήσεων και τις εγγραφές χρόνων κλήσεων κατάστασης. Δεν χρειάζεται να είναι ενεργή αυτή η επιλογή εάν μόνο χρειάζεται η αλλαγή της επιλογής των χρόνων κλήσεων στην οθόνη των εκστρατειών. + +
+
+
+ Τροποποιήστε τα τμήματα - αυτές οι επιλογές επιτρέπουν στοχρήστη για να δουν και να τροποποιήσουν κάθε ένας αρχείατμημάτων. Εάν θέστε 0, ο χρήστης θα είναι σε θέση ναδει τον κατάλογο τμημάτων, αλλά όχι την οθόνηλεπτομέρειας ή τροποποίησης ενός αρχείου σε εκείνο το τμήμα. + +
+
+
+ Εκθέσεις άποψης - αυτή η επιλογή επιτρέπει στο χρήστη για να δειτις εκθέσεις VICIDIAL. + + 0) + { + ?> +
+
+
+ QC Enabled - Η επιλογή αυτή επιτρέπει στο χρήστη να συνδεθείτε με το γραφείο ποιοτικού ελέγχου της οθόνης. + +
+
+
+ QC επίπεδο χρήστη - Αυτή η ρύθμιση ορίζει τι ο πράκτορας Ελέγχου Ποιότητας χρήστη επίπεδο. Αυτό θα υπαγορεύσει το επίπεδο λειτουργικότητας για τον αντιπρόσωπο στο τμήμα QC:
+ 1 - Τίποτα δεν Modify
+ 2 - Τίποτα δεν ModifyΕκτός Status
+ 3 - Τροποποιήστε Όλα τα πεδία
+ 4 - Βεβαιωθείτε πρώτου γύρου, QC
+ 5 - Δείτε QC Στατιστικά
+ 6 - Ικανότητα ModifyΕΤΟΙΜΑ αρχεία
+ 7 - Manager Επίπεδο
+ +
+
+
+ QC Εγγραφή Pass - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι μια εγγραφή έχει περάσει από τον πρώτο γύρο, QC, μετά την επανεξέταση των ρεκόρ. + +
+
+
+ QC Εγγραφή Finish - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι μια εγγραφή έχει τελειώσει ο δεύτερος γύρος των QC πέρασε μετά την επανεξέταση των ρεκόρ. + +
+
+
+ QC Αναλήψεις Record - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι ένα ρεκόρ το οποίο έχει δεσμευθεί στην QC. Αυτό δεν είναι πλέον δυνατό να τροποποιηθεί από κανέναν. + + +
+
+
+ ΠροσθήκηΏρα ρολόι Εγγραφή Εγγραφή - Η επιλογή αυτή επιτρέπει στο χρήστη να προσθέσετε εγγραφές στο μητρώο timeclock. + +
+
+
+ ΤροποποιήστεΏρα ρολόι Εγγραφή Εγγραφή - Η επιλογή αυτή επιτρέπει στο χρήστη να τροποποιήσει τις εγγραφές του timeclock log. + +
+
+
+ Εγγραφή ΔιαγραφήΏρα ρολόι Record - Η επιλογή αυτή επιτρέπει στο χρήστη να διαγράψει αρχεία στο timeclock log. + +
+
+
+ Agent API Πρόσβαση - Η επιλογή αυτή επιτρέπει τον λογαριασμό που πρέπει να χρησιμοποιούνται με την vicidial πράκτορας API εντολές. + +
+
+
+ Manager Shift Επιβολή Override - Η ρύθμιση αυτή ορίζεται σε 1, αν θα επιτρέψει ο διαχειριστής του να εισέλθει στα χρήστη και κωδικό πρόσβασης σε έναν πράκτορα της οθόνης για να παρακάμψετε τους περιορισμούς σχετικά με τη μετατόπιση ενός πράκτορα συνόδου εάν ο πράκτορας προσπαθεί να συνδεθείτε με τους εκτός της βάρδιας. Η προεπιλογή είναι 0. + +
+
+
+ Download Κατάλογοι - Αυτή η ρύθμιση, εάν ρυθμιστεί σε 1 θα επιτρέψει τη Διαχείριση κλικ για να κατεβάσετε την λίστα σύνδεσμο στο κάτω μέρος της οθόνης μια λίστα τροποποίηση για την εξαγωγή του συνόλου του περιεχομένου του καταλόγου σε μια επίπεδη αρχείο δεδομένων. Η προεπιλογή είναι 0. + +
+
+
+ Εξαγωγή Εκθέσεις - Αυτή η ρύθμιση, εάν ρυθμιστεί σε 1 θα επιτρέψει την πρόσβαση του διευθυντή της εξαγωγής κλήση εκθέσεις σχετικά με τις εκθέσεις της οθόνης. Η προεπιλογή είναι 0. Για την εξαγωγή ζητεί έκθεση, ώστε τα ακόλουθα τομέα χρησιμοποιείται για τις εξαγωγές:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, 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, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner + +
+
+
+ Διαγραφή DNC Από Λίστες - Αυτή η ρύθμιση, εάν οριστεί σε 1 θα επιτρέψει έναν διευθυντή για την άρση των αριθμούς τηλεφώνου από τους καταλόγους DNC στο VICIDIAL σύστημα. + + + + + + +



+ + VICIDIAL_CAMPAIGNS ΠΙΝΑΚΑΣ

+
+
+ ID Εκστρατείας - Αυτό είναι το σύντομο όνομα της εκστρατείας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 8 χαρακτήεςh. + +
+
+
+ Ονομα Εκστρατείας - Αυτό είναι η περιγραφή της εκστρατείας, πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες. + +
+
+
+ Περιγραφή εκστρατείας - αυτό είναι ένας τομέας υπομνημάτων γιατην εκστρατεία, είναι προαιρετικό και μπορεί να είναι έναμέγιστο 255 χαρακτήρων στο μήκος. + +
+
+
+ Ημερομηνία αλλαγής εκστρατείας - αυτό είναι η τελευταία φοράότι οι τοποθετήσεις για αυτήν την εκστρατεία τροποποιήθηκαν απόκαμιά άποψη. + +
+
+
+ Τελευταία ημερομηνία σύνδεσης εκστρατείας - αυτό είναι ητελευταία φορά ότι ένας πράκτορας καταγράφηκε σε αυτήν τηνεκστρατεία. + +
+
+
+ Ημερομηνία τελευταίας Καμπάνια Call - Αυτή είναι η τελευταία φορά που μια κλήση αυτή γίνεται από έναν πράκτορα συνδεθεί σε αυτή την καμπάνια. + +
+
+
+ Η εκστρατεία Stats αναζωογονεί - αυτό το τετραγωνίδιο θαεπιτρέψει ότι για να αναγκάσετε τα vicidial statsαναζωογονείτε, ακόμα κι αν η εκστρατεία δεν είναι ενεργός. + +
+
+
+ Ενεργοποίηση - Εδώ μπορείτε να θέσετε την εκστρατεία ενεργή ή μη ενεργή. Εάν είναι μη ενεργή, κανένας δεν μπορεί να συνδεθεί σε αυτήν. + +
+
+
+ Τηλ.Σύνδεση Στάθμευσης - Εδώ μπορείτε να ορίσετε την μουσική αναμονής για το VICIDIAL. Επιβεβαιώστε, ότι η εσωτ.σύνδεση βρίσκεται στο extensions.conf και ότι δείχνει το αρχείο παρακάτω. + +
+
+
+ ν Αρχείου Στάθμευσης - Εδώ μπορείτε να προσαρμόσετε την μουσική αναμονής για το VICIDIAL. Επιβεβαιώστε ότι το αρχείο έχει 10 χαρακτήρες ή λιγότερους και ότι το αρχείο βρίσκεται στον κατάλογο /var/lib/asterisk/sounds. + +
+
+
+ Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυτήν την ομάδα. Για να προσαρμόσετε το ερώτημα string μετά την ηλεκτρονική φόρμα, απλά αρχίζει την ηλεκτρονική φόρμα με VAR και στη συνέχεια τη διεύθυνση URL που θέλετε να χρησιμοποιήσετε, σε αντικατάσταση των μεταβλητών με τις ονομασίες των μεταβλητών που θέλετε να χρησιμοποιήσετε - Α - phone_number - Β -- όπως ακριβώς και στην καρτέλα scripts τμήμα. + +
+
+
+ Web Μορφή Target- Αυτό είναι όπου μπορείτε να ρυθμίσετε το έθιμο ιστοσελίδα πλαίσιο ότι η ηλεκτρονική φόρμα θα ανοίξει όταν ο χρήστης κάνει κλικ στην ηλεκτρονική φόρμα κουμπί. Προεπιλεγμένο είναι _blank. + +
+
+
+ Επιτρέπει τους Closers - Εδώ ορίζετε εάν οι χρήστες της εκστρατείας θα έχουν την επιλογή να στείλουν την κλήση σε έναν closer. + +
+
+
+ Ομάδα μεταφοράς προεπιλογής - αυτός ο τομέας είναι η-ΟΜΑΔΑπροεπιλογής που θα επιλεχτεί αυτόματα όταν πηγαίνει ο πράκτοραςστο πλαίσιο μεταφορά-διασκέψεων στη διεπαφή πρακτόρων τους. + +
+
+
+ Ομάδες μεταφοράς - με αυτές τις λίστες τετραγωνιδίου μπορείτε ναεπιλέξετε τις ομάδες ότι οι πράκτορες σε αυτήν την εκστρατείαμπορούν να μεταφέρουν τις κλήσεις. Επιτρέψτε ότι Closersπρέπει να επιτραπεί για αυτήν την επιλογή να παρουσιάσει. + + 0) + { + ?> +
+
+
+ Επιτρέψτε πλησίον και συνδύασε - αυτό είναι όπου μπορείτε ναθέσετε εάν οι χρήστες αυτής της εκστρατείας θα έχουν τηνεπιλογή να πάρουν τις εισερχόμενες κλήσεις με αυτήν τηνεκστρατεία. Εάν θέλετε να κάνετε συνδυασμένων εισερχόμενος καιεξερχόμενος έπειτα αυτό πρέπει να τεθεί το Υ. Εάν θέλετε μόνονα κάνετε τον εξερχόμενο σχηματισμό σε αυτήν την εκστρατείαθέστε αυτό σε Ν. Default είναι ν. + +
+
+
+ Κατάσταση Κλήσης - Εδώ ορίζετε τις καταστάσεις που θέλετε να κληθούν μέσα στις λίστες, οι οποίες είναι ενεργές για την εκστρατεία παρακάτω. Να προσθέσει μια άλλη θέση στον πίνακα, να το επιλέξει από τονεξελισσόμενους κατάλογο και τον κρότο ΠΡΟΣΘΕΤΕΙ. Για να αφαιρέσετεμια από τις θέσεις πινάκων, χτυπήστε στη REMOVE σύνδεση δίπλαστη θέση που θέλετε να αφαιρέσετε. + +
+
+
+ Ταξινόμηση Λίστας - Σε αυτόν τον κατάλογο επιλογών μπορείτε να επιλέξετε πώς οι οδηγοί, που ταιριάζουν με τις καταστάσεις που επιλέξατε παραπάνω, θα τοποθετηθούν στον hopper: +
  - DOWN: επιλογή των πρώτων οδηγών που εισήχθησαν στον πίνακα vicidial_list +
  - UP: επιλογή των τελευταίων οδηγών που εισήχθησαν στον πίνακα vicidial_list +
  - UP PHONE: επιλογή του υψηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα κάτω +
  - DOWN PHONE: επιλογή του χαμηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα πάνω +
  - UP LAST NAME: έναρξη με τα επίθετα να ξεκινάνε με Ζ και συνεχίζει προς τα κάτω +
  - DOWN LAST NAME: έναρξη με τα επίθετα να ξεκινάνε με Α και συνεχίζει προς τα πάνω +
  - UP COUNT: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα κάτω +
  - DOWN COUNT: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει +
  - DOWN COUNT 2nd NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε άλλο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων +
  - DOWN COUNT 3nd NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε τρίτο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων +
  - DOWN COUNT 4th NEW: έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε τέταρτο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων +
  - RANDOM: Τυχαία αρπάζει οδηγήσει στο καταστάσεις και κατάλογοι που ορίζονται +
  - LAST CALL UP TIME: Ταξινομεί από τα νεότερα τοπική ώρα πρόσκληση για την οδηγεί +
  - ΚΑΤΩ LAST CALL TIME: Ταξινομεί από τις παλαιότερες τοπική ώρα πρόσκληση για την οδηγεί +
  - UP RANK: Ξεκινά με την υψηλότερη θέση και τα έργα του τρόπο τις +
  - DOWN RANK: Ξεκινά με το χαμηλότερο βαθμό και λειτουργεί το δρόμο του μέχρι +
  - UP OWNER: Ξεκινά με τους ιδιοκτήτες που αρχίζει με Ζ και λειτουργεί επηρεάζοντας +
  - DOWN OWNER: Ξεκινά με τους ιδιοκτήτες που αρχίζει με Α και λειτουργεί το δρόμο του μέχρι +
  - UP TIMEZONE: Ξεκινά με την Ανατολική χρονικών ζωνών και έργα Δύση +
  - DOWN TIMEZONE: Ξεκινά με τα δυτικά χρονικών ζωνών και των έργων Ανατολή + +
+
+
+ Επίπεδο Hopper - Αυτό είναι το πόσους οδηγούς η διαδικασία VDhopper, προσπαθεί να διατηρήσει στον πίνακα vicidial_hopper για αυτήν την εκστρατεία. Εάν η διαδικασία VDhopper τρέχει κάθε λεπτό, ρυθμίστε αυτό λίγο περισσότερο από τον αριθμό των οδηγών που περνούν σε ένα λεπτό. + +
+
+
+ Φίλτρο Οδηγοιύ - αυτή είναι μία μέθοδος για να δημιουργήτε φίλτρα για την SQL ερώτηση. Χρησιμοποιήστε αυτό το χαρακτηριστικό με προσοχή, είναι εύκολο να σταματήσει το σύστημα με μία μικρή αλλαγή στη δήλωση SQL. Η προεπιλογή είναι ΚΑΜΙΑ. + +
+
+
+ Drop Lockout Ώρα - Αυτό είναι ένας αριθμός των ωρών που DROP εγκαταλείψει κλήσεις θα πρέπει να εμποδίζεται από το να εξερχόμενες, για να απενεργοποιήσετε οριστεί σε 0. Αυτή η ρύθμιση είναι πολύ χρήσιμο σε χώρες όπως το Ηνωμένο Βασίλειο όπου υπάρχουν ρυθμίσεις που παρεμποδίζουν την απόπειρα καλώντας τους πελάτες της εντός 72 ωρών από την εγκατάλειψη, ή DROP. Προεπιλογή είναι 0. + +
+
+
+ Υποχρεωτική Επαναφορά του Hopper - Αυτό σας επιτρέπει καθαρίσετε τα περιεχόμενα κατά την επιβεβαίωση της φόρμας. Αυτό θα συμβεί πάλι όταν η διαδικασία VDhopper θα τρέξει. + +
+
+
+ Μέθοδος Κλήσης + - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Μέθοδος Κλήσης + is changed. If RATIO then the normal dialing a number of lines for Ενεργό agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. Δεν μπορείτε να αλλάξετε το επίπεδο Αυτόματης Κλήσης, εάν έχετε ορίσει κάποια μέθοδο Προσαρμογής Κλήσεων. Μόνο ο διακομιστής μπορεί να το αλλάξει όταν είναι σε διαδικασία αυτόματων κλήσεων. +. Εισερχόμενα_MAN επιτρέπει στον αντιπρόσωπο να πραγματοποιηθεί χειροκίνητη κλήση κλήσεις από μια εκστρατεία λίστα, ενώ είναι σε θέση να λάβει εισερχόμενη κλήση κλήσεις μεταξύ εγχειρίδιο κλήσεις. + +
+
+
+ Επίπεδο Αυτόματης Κλήσης - Εδώ είναι που καθορίζεται πόσες γραμμές θα χρησιμοποιούνται ανά ενεργό χρήστη. Μηδέν (0) σημαίνει ότι η αυτόματη κλήση είναι μη ενεργή και οι χρήστες πατούν το πλήκτρο για την κλήση κάθε αριθμού. Διαφορετικά, το σύστημα καλεί γραμμές ίσες με τους ενεργούς χρήστες, πολλαπλασιασμένους με το επίπεδο κλήσης και σύμφωνα με το πόσες γραμμές η εκστρτεία σε κάθε διακομιστή επιτρέπει. Το ADAPT τετραγωνίδιο ΣΥΜΠΛΗΡΩΜΑΤΙΚΗΣ ΠΡΟΜΉΘΕΙΑΣ επιτρέπει σεσας για να αναγκάσει ένα νέο επίπεδο πινάκων ακόμα κι αν ημέθοδος πινάκων είναι σε έναν ADAPT τρόπο. Αυτό είναιχρήσιμο εάν υπάρχει μια δραματική μετατόπιση στην ποιότητα τωνμολύβδων και θέλετε να αλλάξετε δραστικά το dial_level με τοχέρι. + +
+
+
+ Διαθέσιμα μόνο ετικέτες - Εάν θέσετε σε Ν αυτό το πεδίο, θα αφήσει εκτός τις καταστάσεις των χειριστών out INCALL και QUEUE, καθώς υπολογίζεται ο αριθμός των κλήσεων όταν δεν είναι σε κατάσταση κλήσης MANUAL. Προκαθορισμένα είναι Ο. + +
+
+
+ Ποσοστό Ορίου Εγκατ. Κλήσεων - Σε αυτό το πεδίο μπορείτε να θέσετε το όριο του ποσοστού εγκατ. κλήσεων καθώς χρησιμοποιείτε μία μέθοδος προσαρμοσμένης-πρόβλεψη κλήσεων, όχι MANUAL ή RATIO. + +
+
+
+ Μέγιστο Επίπεδο Προσαρμογής Κλήσεων - Σε αυτό το πεδίο μπορείτε να θέσετε το όριο για το όριο του αριθμού γραμμών για κάθε χειριστή καθώς χρησιμοποιείτε μία μέθοδος προσαρμοσμένης-πρόβλεψη κλήσεων, όχι MANUAL ή RATIO. Αυτός ο αριθμός μπορεί να είναι μεγαλύτερος από το επίπεδο αυτόματης κλήσης εάν το υλικό σας το υποστηρίζει. Η τιμή πρέπει να είναι θετικός αριθμός μεγαλύτερος από ένα και μπορεί να έχει δεκαδικά. Προκαθορισμένα είναι 3.0. + +
+
+
+ Τελευταίος Χρόνος Διακομιστή - Αυτό το πεδίο χρησιμοποιείτε μόνο από την μέθοδο ADAPT_TAPERED. Θα πρέπει να καταχωρήσετε την ώρα και τα λεπτά που θα σταματήσει τις κλήσεις η εκστρατεία. Αυτό επιτρέπει στον αλγόριθμο να αποφασίσει πόσο επιθετικά θα κάνει κλήσεις και πόσο χρόνο. + +
+
+
+ Ενταση Τροποποίησης Προσαρμογής - Αυτό το πεδίο χρησιμοποιείτε για να αλλάζει ένταση προβλέψεων είτε υψηλότερα ή χαμηλότερα. Προκαθορισμένα είναι 0. Αυτό το πεδίο δεν χρησιμοποιείται από τις μεθόδους MANUAL ή RATIO. + +
+
+
+ Επίπεδο Κλήσεων Μεταβολής Στόχου - Αυτό το πεδίο χρησιμοποιείτε για να έχει στόχο ένα συγκεκριμένο αριθμό χειριστών να περιμένουν κλήσεις ή κλήσεις να περιμένουν για χειριστές. Π.χ. εάν θέλετε πάντα να έχετε κατά μέσο όρο έναν χειριστή ελεύθερο για ν παίρνει τις κλήσεις, τότε πρέπει να το θέσετε σε -1. Εάν στόχος είναι να έχετε πάντα μία κλήση σε αναμονή για ένα χειριστή, τότε πρέπει να το θέσετε σε 1. Προκαθορισμένα είναι 0. Αυτό το πεδίο δεν χρησιμοποιείται από τις μεθόδους MANUAL ή RATIO. + +
+
+
+ Ταυτόχρονες μεταφορές - αυτή η ρύθμιση χρησιμοποιείται για νακαθορίσει τον αριθμό κλήσεων που μπορεί να σταλεί στουςπράκτορες συγχρόνως. Συνιστάται αυτή η ρύθμιση να αφήνεται στοΑΥΤΟΚΙΝΗΤΟ. Αυτός ο τομέας δεν χρησιμοποιείται με τη ΧΕΙΡΩΝΑΚΤΙΚΗμέθοδο πινάκων. + +
+
+
+ Κοτσίδας Προτεραιότητα - Αυτή η ρύθμιση χρησιμοποιείται για να καθορίσει τη σειρά με την οποία οι εξερχόμενες κλήσεις από αυτή την εκστρατεία θα πρέπει να απαντηθούν σε σχέση με τις εισερχόμενες κλήσεις αν η συγκεκριμένη καμπάνια είναι αναμεμειγμένο σε λειτουργία. + +
+
+
+ Πολλαπλές Καμπάνια Drop Rate Ομάδα - Αυτό το χαρακτηριστικό σας επιτρέπει να ορίσετε μια καμπάνια ως μέλος μιας καμπάνιας Drop Τιμή Ομάδα, ή μια ομάδα από τις καμπάνιες του Ανθρώπου Απαντήθηκε οποίων κλήσεις και κλήσεις Πτώση για όλες τις καμπάνιες της ομάδας θα πρέπει να συνδυαστούν σε ένα κοινό ποσοστό πτώσης, ή να εγκαταλείψει ρυθμό. Αυτό σας επιτρέπει να εκτελέσετε με πολλαπλές καμπάνιες ταυτόχρονα και πιο εύκολα τον έλεγχο ποσοστού πτώση σας. Αυτό είναι ιδιαίτερα χρήσιμο στο Ηνωμένο Βασίλειο, όπου κανονισμοί επιτρέπουν μείωση του ποσοστού αυτού με τη μέθοδο υπολογισμού της καμπάνιας ομάδα για την ίδια εταιρεία, ακόμη και αν υπάρχουν διάφορες καμπάνιες της εταιρείας που εκτελεί κατά τη διάρκεια της ίδιας ημέρας. Για να ενεργοποιήσετε αυτή για μια καμπάνια, απλά επιλέξτε μια ομάδα από τη λίστα. Υπάρχουν 10 ομάδες που ορίζονται στο σύστημα από προεπιλογή, μπορείτε να επικοινωνήσετε με το διαχειριστή του συστήματος για να προσθέσετε περισσότερο. Προεπιλογή είναι ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ. + +
+
+
+ Αυτόματος ALT-ARJCMO'S που σχηματίζει - αυτή η ρύθμισηχρησιμοποιείται για να σχηματίσει αυτόματα τους εναλλάσσομαιτομείς αριθμού σχηματίζοντας σε ΑΝΑΛΟΓΙΑ και ΝΑ ΠΡΟΣΑΡΜΟΣΕΙ τιςμεθόδους πινάκων όταν δεν υπάρχει καμία επαφή στον κύριοτηλεφωνικό αριθμό για έναν μόλυβδο, τις θέσεις NA, β,συνεχούς ρεύματος και ν. Αυτή η ρύθμιση δεν χρησιμοποιείται με τηΧΕΙΡΩΝΑΚΤΙΚΗ μέθοδο πινάκων. EXTENDED αναπληρωματικών αριθμοί είναι αριθμοί που φορτώνονται στο σύστημα εκτός του κανονικού οδηγήσει πληροφορίες οθόνης. Χρησιμοποιώντας EXTENDED σας μπορεί να έχει εκατοντάδες αριθμούς τηλεφώνου για ένα μόνο πελάτη ρεκόρ. + +
+
+
+ Κλήση Εκτός Χρόνου - άν έχει οριστεί, οι κλήσεις που φυσιολογικά θα έκλειναν μετά το χρόνο που έχει οριστεί στο extensions.conf, θα κλείσουν σε αυτόν τον χρόνο εάν είναι μικρότερος του extensions.conf. Αυτό επιτρέπει στην γρήγορη αλλαγή των χρόνων από διακομιστή σε διακομιστή και περιορίζοντας τα αοτελέσματα σε μία εκστρατεία. Εάν έχετε πολλές κλήσεις με Αυτόματους Τηλεφωνητές ή Φωνητικών Ταχυδρομείων, μπορείτε να αλλάξετε αυτή την τιμή μεταξύ 21-26 και να δείτε αν τα αποτελέσματα είναι καλύτερα. + +
+
+
+ Καμπάνια VDAD επέκταση - Το πεδίο αυτό επιτρέπει για μια προσαρμοσμένη VDAD μεταφορά επέκταση. Αυτό σας επιτρέπει να χρησιμοποιήσετε διάφορες μεθόδους χειρισμού κλήσεων, ανάλογα με την καμπάνια σας. + - 8364 - 8368 ως ίδια + - 8365 - Θα στείλετε την πρόσκληση σε ένα μόνο παράγοντα στον ίδιο διακομιστή, όπως είναι η πρόσκληση για + - 8366 - Χρησιμοποιείται για Τύπο-1 εκστρατείες και έρευνα + - 8367 - Θα προσπαθήσουμε πρώτα να στείλετε την πρόσκληση σε έναν πράκτορα για τον τοπικό διακομιστή, τότε θα ψάξει για άλλους servers + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Χρησιμοποιείται για τηλεφωνητή Ανίχνευση ότι μετά, ίδια συμπεριφορά ως 8368 + - 8373 - Χρησιμοποιείται για τηλεφωνητή Ανίχνευση μετά την ίδια συμπεριφορά ως 8366 + +
+
+
+ Μήνυμα Αυτόματου Τηλεφωνητή - Το πεδίο αυτό είναι για την εισαγωγή των εντολών για να παίζουν όταν το πρακτορείο παίρνει ένα αυτόματο τηλεφωνητή και κάνει κλικ στο κουμπί Απάντηση Μήνυμα ρούχων στο πλαίσιο διάσκεψης μεταφοράς. Πρέπει να ορίσετε αυτό είτε σε αρχείο ήχου στο ακουστικό κατάστημα ή ένα TTS προτροπή εάν TTS είναι ενεργοποιημένη στο σύστημά σας. + +
+
+
+ WaitForSilence Επιλογές - Αν Περιμένετε Για σιωπή είναι επιθυμητή για κλήσεις που έχουν εντοπιστεί ως τηλεφωνητές τότε το πεδίο αυτό έχει αυτές τις επιλογές. Υπάρχουν δύο ρυθμίσεις που χωρίζονται από ένα κόμμα, η πρώτη επιλογή είναι το χρονικό διάστημα για την ανίχνευση σιωπή σε χιλιοστά του δευτερολέπτου και η δεύτερη επιλογή είναι για πόσες φορές για να ανιχνεύσει ότι πριν από την αναπαραγωγή του μηνύματος. Προεπιλογή είναι EMPTY για άτομα με ειδικές ανάγκες. Μια τυπική τιμή για αυτό θα πρέπει να περιμένετε για 2 δευτερόλεπτα της σιωπής δύο φορές: 2000,2 + +
+
+
+ AMD στέλνει στο VM - αυτές οι επιλογές επιτρέπουν να καθορίσετε εάν ένα μήνυμα αφήνεται σε έναν αυτόματο τηλεφωνητή όταν ανιχνεύεται ότι η κλήση είναι ένας αυτόματος τηλεφωνητής και εάν το AMD είναι ενεργό. + +
+
+
+ CPD AMD Δράση - Αν χρησιμοποιείτε τον Sangoma ParaXip Πρόσκληση πρόοδος Ανίχνευση λογισμικό και στη συνέχεια θα θέλετε να ενεργοποιήσετε αυτή τη ρύθμιση, είτε να DISPO που θα διαθέσεις την πρόσκληση ως AA και να κολλήσει το πάνω αν η πρόσκληση είναι υπό επεξεργασία και δεν έχει σταλεί σε έναν πράκτορα ή ακόμη μήνυμα που θα αποστείλει την πρόσκληση προς το τηλεφωνητή Μήνυμα ορίζεται για αυτή την καμπάνια. Προεπιλεγμένο είναι DISABLED. + +
+
+
+ Κλήση Εναλ Αρ Χρήστη - Αυτή η επιλογή επιτρέπει στον χειριστή να κάνει χειροκίνητη κλήση του εναλλακτικού αριθμού τηλεφώνου ή το πεδίο address3 μετά την κλήση του κυρίου αριθμού. + +
+
+
+ Δευτερ. Εγκαταλ. Κλήσης - Ο αριθμός των δευτερολέπτων από την στιγμή που ο πελάτης σηκώνει το τηλ μέχρι η κλήση να θεωρηθεί εγκαταλειμένη. Μόνο για εξερχόμενες κλήσεις . + +
+
+
+ Drop δράσης - Αυτό το μενού σας επιτρέπει να διαλέξετε ό, τι συμβαίνει σε μια κλήση όταν έχει να περιμένει περισσότερο από ό, τι έχει οριστεί στο Drop Call δευτερόλεπτα τομέα. HANGUP απλά θα κλείσεις την κλήση, το μήνυμα θα αποστείλει την πρόσκληση της Drop παράταση που έχετε ορίζονται κατωτέρω, τηλεφωνητή θα απευθύνει την πρόσκληση προς το τηλεφωνητή θέση που έχετε IN_GROUP ορίζονται κατωτέρω, και θα απευθύνει την πρόσκληση στην ομάδα Inbound που καθορίζονται κατωτέρω + +
+
+
+ Εσωτ.σύνδεση Ασφαλούς Φύλαξης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Ασφαλής Φύλαξης στον διακομιστή. + +
+
+
+ Φωνητικό Ταχυδρομείο - Εάν έχει οριστεί, οι κλήσεις που φυσιολογικά θα ΕΓΚΑΤΑΛΕΙΠΟΝΤΑΝ, θα κατευθυνθούν σε αυό το φωνητικό ταχυδρομείο, ώστε να ακούσετε και να αφήσετε ένα μήνυμα. + +
+
+
+ Drop Μεταφορά Όμιλος - Αν Drop Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα εάν ανέρχεται Drop Call Δευτερόλεπτα. + +
+
+
+ Επιτρέψτε τους κανένας-χοάνη-μολύβδους Logins - εάν θέστε τοΥ, επιτρέπει στους πράκτορες στη σύνδεση στην εκστρατεία ακόμα κιαν δεν υπάρχει κανένας μόλυβδος που φορτώνεται στη χοάνη γιαεκείνη την εκστρατεία. Αυτή η λειτουργία δεν απαιτείται στιςεκστρατείες στενός-τύπων. Η προεπιλογή είναι ν. + +
+
+
+ Δεν Hopper Κλήση - Αν αυτή είναι ενεργοποιημένη, η χοάνη δεν θα ισχύσει για αυτή την καμπάνια. Αυτή η επιλογή είναι διαθέσιμη μόνο όταν η μέθοδος κλήσης έχει οριστεί σε Manual ή Εισερχόμενα_MAN. Συνιστάται να μην επιτρέψει αυτή την επιλογή εάν έχετε μια πολύ μεγάλη βάση δεδομένων μολύβδου, πάνω από 100.000 οδηγεί. Δεν με Hopper κλήσης, τα ακόλουθα χαρακτηριστικά δεν λειτουργούν: οδηγήσουν ανακύκλωση, auto-alt-κλήσης, μείγμα κατάλογο, λίστα παραγγελιών με XTH ΝΕΑ. Αν θέλετε να χρησιμοποιήσετε Ιδιοκτήτης Μόνο κλήσης θα πρέπει να έχετε Δεν Hopper Κλήση ενεργοποιημένη. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες. + +
+
+
+ Ιδιοκτήτης Μόνο Κλήση - Αν αυτή είναι ενεργοποιημένη, ο αντιπρόσωπος θα λάβουν μόνο οδηγεί ότι είναι εντός των παραμέτρων για την ιδιοκτησία. Εάν αυτό έχει οριστεί στην ΧΡΗΣΤΗ τότε ο πράκτορας πρέπει να καθορίζει ο χρήστης στη βάση δεδομένων, όπως ο ιδιοκτήτης αυτού του μολύβδου. Αν τεθεί στο έδαφος τότε ο ιδιοκτήτης του μολύβδου πρέπει να ταιριάζει με το έδαφος που περιλαμβάνεται στην οθόνη του χρήστη Τροποποίηση για αυτό παράγοντα. Εάν αυτό έχει οριστεί στην USER_GROUP τότε ο ιδιοκτήτης του μολύβδου πρέπει να ταιριάζει με την ομάδα χρηστών ότι ο αντιπρόσωπος είναι μέλος της. Για αυτήν τη δυνατότητα να εργαστεί με τη μέθοδο τηλεφωνικής σύνδεσης πρέπει να οριστεί σε Manual ή Εισερχόμενα_MAN και αριθ Χόπερ κλήσης πρέπει να είναι ενεργοποιημένα. Προεπιλογή είναι ΚΑΝΕΝΑ για άτομα με ειδικές ανάγκες. + + 0) + { + ?> +
+
+
+ Agent Επιλέξτε Εδάφη - Εάν αυτή η επιλογή είναι ενεργοποιημένη και το πρακτορείο ανήκει σε μία τουλάχιστον από έδαφος, ο αντιπρόσωπος θα έχει τη δυνατότητα επιλογής των εδαφών για να καλέσετε από την οδηγεί. Ο πράκτορας θα δείτε μια λίστα των διαθέσιμων εδαφών κατά την σύνδεση και θα έχουν τη δυνατότητα να επιστρέψει στο έδαφος του εν λόγω καταλόγου, όταν σταματούσε για να αλλάξει τα εδάφη τους. Για αυτή τη λειτουργία για την εργασία του ιδιοκτήτη Μόνο Κλήση επιλογή πρέπει να οριστεί σε έδαφος και το χρήστη εδάφη πρέπει να είναι ενεργοποιημένα στο Ρυθμίσεις Συστήματος. + + +
+
+
+ Μίγμα διαταγής καταλόγων - αγνοεί τους τομείς θέσης διαταγήςκαι πινάκων μολύβδου. Θα χρησιμοποιήσει τις παραμέτρους καταλόγωνκαι θέσης για την επιλεγμένη είσοδο μιγμάτων καταλόγων στο υπο-τμήμα μιγμάτων καταλόγων αντ' αυτού. Η προεπιλογή είναι ΕΚΤΟΣΛΕΙΤΟΥΡΓΊΑΣ. + +
+
+
+ Ταυτότητα μιγμάτων καταλόγων - ταυτότητα του μίγματος καταλόγων.Πρέπει να είστε από 2-20 χαρακτήρες στο μήκος χωρίς ταδιαστήματα ή άλλη ειδική στίξη. + +
+
+
+ Όνομα μιγμάτων καταλόγων - περιγραφικό όνομα του μίγματοςκαταλόγων. Πρέπει να είστε από 2-50 χαρακτήρες στο μήκος. + +
+
+
+ Λεπτομέρεια μιγμάτων καταλόγων - η σύνθεση της εισόδου μιγμάτωνκαταλόγων. Περιέχει τον κατάλογο ταυτότητα, τη διαταγή μιγμάτων,τα ποσοστά και τις θέσεις που αποτελούν αυτό το μίγμα καταλόγων.Τα ποσοστά πρέπει πάντα να προσθέσουν μέχρι 100, και οικατάλογοι όλοι πρέπει να είναι ενεργοί και καθορισμένοι τηνεκστρατεία για την είσοδο μιγμάτων διαταγής που ενεργοποιείται. + +
+
+
+ Μέθοδος μιγμάτων καταλόγων - η μέθοδος όλα τα μέρη τηςλεπτομέρειας μιγμάτων καταλόγων από κοινού. EVEN_MIX θααναμίξει τους μολύβδους από κάθε μέρος που παρεμβάλλεται λευκέςσελίδες με τα άλλα μέρη, όπως αυτό το 1,2,3,1,2,3,1,2,3.IN_ORDER θα βάλει τους μολύβδους στη διαταγή στην οποίαπαρατίθενται στην οθόνη λεπτομέρειας μιγμάτων καταλόγων1,1,1,2,2,2,3,3,3. ΤΥΧΑΊΑ θα τους βάλουν στην ΤΥΧΑΊΑ προεπιλογήδιαταγής 1,3,2,1,1,3,2,1,3. είναι IN_ORDER. + +
+
+
+ Agent Screen Εκτεταμένη Alt Dial - Αυτό το χαρακτηριστικό επιτρέπει σε υπαλλήλους να επεκταθεί η πρόσβαση των αναπληρωματικών τους αριθμούς τηλεφώνου για οδηγεί πέρα από την κανονική Alt τηλέφωνο και Address3 τομείς που μπορούν να χρησιμοποιηθούν σε VICIDIAL για αριθμούς τηλεφώνου πέραν της κύριας αριθμό τηλεφώνου. Η παράταση μπορεί να είναι αριθμοί τηλεφώνου κλήσης αυτόματα χρησιμοποιώντας το πρόγραμμα Auto-Alt-Dial χαρακτηριστικό στο VICIDIAL ρυθμίσεις της καμπάνιας, αλλά αυτό που επιτρέπει Agent Screen χαρακτηριστικό θα επιτρέψει επίσης τον αντιπρόσωπο για να καλέσετε τους αριθμούς αυτούς από τους πράκτορα οθόνη, καθώς και να επεξεργαστούν τις πληροφορίες. + +
+
+
+ Έρευνα Πρώτο αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται από τη στιγμή που ο πελάτης παραλαμβάνει το τηλέφωνο όταν τρέχει μια έρευνα καμπάνια. + +
+
+
+ Έρευνα DTMF Digits - Αυτό το πεδίο όπου θα καθοριστούν οι θέσεις ότι ο πελάτης μπορεί να πατήσει ως επιλογή για μια έρευνα της καμπάνιας. ψηφία DTMF είναι έγκυρο0123456789*#. Όλες οι επιλογές εκτός από το δεν ενδιαφέρεται, τρίτο και τέταρτο ψηφίο επιλογές θα προχωρήσουμε στο δρόμο Έρευνα Μέθοδος κλήση. + +
+
+
+ Έρευνα δεν ενδιαφέρεται Digit - Αυτό το πεδίο όπου θα καθορίσει ο πελάτης ψηφίο πιεστεί θα δείτε ότι δεν ενδιαφέρονται. + +
+
+
+ Έρευνα δεν ενδιαφέρεται Status - Το πεδίο αυτό είναι που έχετε επιλέξει το καθεστώς που θα χρησιμοποιηθεί για δεν ενδιαφέρεται. DNC Εάν χρησιμοποιείται και η καμπάνια είναι ρυθμισμένη να χρησιμοποιεί DNC στη συνέχεια τον αριθμό τηλεφώνου, θα προστίθεται αυτόματα στο VICIDIAL εσωτερική DNC λίστα.και πιθανώς η εκστρατεία ειδικά DNC λίστα. + +
+
+
+ Έρευνα Opt-σε αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται όταν ο πελάτης έχει επιλέξει-in με την έρευνα, δεν επέλεξε-ή που δεν απάντησαν και αν η μη ανταπόκριση ενέργεια έχει οριστεί σε OptOut. Μετά από αυτό το αρχείο ήχου παίζεται, η μέθοδος έρευνας δράση. + +
+
+
+ Έρευνα δεν ενδιαφέρεται αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται όταν ο πελάτης έχει επιλέξει-από την έρευνα, δεν επέλεξε-ή σε περίπτωση που δεν απαντήσει η μη ανταπόκριση ενέργεια έχει οριστεί σε OptIn. Μετά από αυτό το αρχείο ήχου παίζεται, η πρόσκληση θα είναι ανηρτημένα. + +
+
+
+ Μέθοδος Έρευνα - Αυτή η επιλογή καθορίζει τι θα συμβεί σε μια κλήση μετά ο πελάτης επέλεξε-in. AGENT_XFER θα αποστείλει την πρόσκληση για το επόμενο διαθέσιμο πράκτορα. Τηλεφωνητής θα αποστείλει την πρόσκληση προς το τηλεφωνητή θέση που καθορίζεται στο Τηλεφωνητής τομέα. ΕΠΕΚΤΑΣΗ θα στείλει ο πελάτης με την παράταση που ορίζεται στην έκθεση Xfer Επέκταση τομέα. HANGUP θα κλείσεις τον πελάτη. CAMPREC_60_WAV θα στείλει ο πελάτης να έχουμε μια καταγραφή που γίνεται με τους απάντηση, η καταγραφή αυτή θα πρέπει να τοποθετούνται σε ένα φάκελο με το όνομα, όπως η εκστρατεία στο εσωτερικό της καμπάνιας Έρευνα Καταγραφή Directory. + +
+
+
+ Έρευνα της μη αντίδρασης Δράση - Αυτό είναι που σας καθορίζουν τι θα συμβεί αν δεν υπάρχει απάντηση στο ερώτημα της έρευνας. OptIn θα στείλει την πρόσκληση για την Έρευνα για την μέθοδο και αν ο πελάτης θα πατήσει το ψηφίο DTMF. OptOut θα στείλει ο πελάτης για να μέθοδος έρευνας, ακόμα και εάν δεν πιέσετε ένα ψηφίο DTMF. + +
+
+
+ Έρευνα Απάντηση Digit Map - Αυτό είναι το σημείο όπου μπορείτε να ορίσετε μια περιγραφή για να πάνε με κάθε ψηφίο DTMF επιλογή που ο πελάτης μπορεί να επιλέξει. + +
+
+
+ Έρευνα Xfer Επέκταση - , εάν η έρευνα Μέθοδος ΕΠΕΚΤΑΣΗ είναι επιλεγμένο τότε ο πελάτης θα πρέπει να απευθύνεται έκκληση για την επέκταση αυτής της dialplan. + +
+
+
+ Έρευνα Καμπάνια Καταγραφή Directory - Εάν η μέθοδος έρευνας της CAMPREC_60_WAV είναι επιλεγμένο, τότε η αντίδραση των πελατών θα πρέπει να καταχωρούνται και να τοποθετούνται σε έναν κατάλογο το όνομα του από την εκστρατεία στο εσωτερικό αυτού του καταλόγου. + +
+
+
+ Έρευνα τρίτο ψηφίο - Αυτό επιτρέπει για μια τρίτη διαδρομή κλήση αν το τρίτο ψηφίο, όπως ορίζεται στον εν λόγω τομέα πιέζεται από τον πελάτη. + +
+
+
+ Έρευνα τέταρτο ψηφίο - Αυτό επιτρέπει για μια τέταρτη διαδρομή κλήση αν το τέταρτο ψηφίο, όπως ορίζεται στον εν λόγω τομέα πιέζεται από τον πελάτη. + +
+
+
+ Έρευνα Τρίτη Audio File - Αυτό είναι το τρίτο αρχείο ήχου που πρέπει να διαδραματίζουν κατά την επιλογή από τον πελάτη της δυνατότητας τρίτο ψηφίο. + +
+
+
+ Έρευνα Τρίτη Κατάσταση - Αυτή είναι η τρίτη κατάσταση που χρησιμοποιούνται για την κλήση από την επιλογή από τον πελάτη της δυνατότητας τρίτο ψηφίο. + +
+
+
+ Έρευνα Τρίτη Extension - Αυτή είναι η τρίτη επέκταση που χρησιμοποιείται για την κλήση από την επιλογή από τον πελάτη του την επιλογή τρίτο ψηφίο. Προεπιλογή είναι 8300 που κρέμεται αμέσως στην κλήση μετά το αρχείο ήχου μήνυμα παίζεται. + +
+
+
+ Agent Εμφάνιση Dialable Leads - Αυτή η επιλογή, αν ενεργοποιηθεί, θα δείτε τον αριθμό των διαθέσιμων dialable οδηγεί στην εκστρατεία στην οθόνη παράγοντα. Ο αριθμός αυτός είναι ενημερωμένο στο σύστημα μόλις ένα λεπτό και θα ανανεώνονται στην οθόνη αντιπρόσωπος κάθε λίγα δευτερόλεπτα. + + + +
+
+
+ Επόμενη Κλήση Χρήστη - Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη: +
  - random: ταξινομημένο με τυχαία τιμή ενημέρωσης στον πίνακα vicidial_live_agents +
  - oldest_call_start: ταξινομημένο με την τελευταία φορά που σε ένα χρήστη στάλθηκε μία κλήση. Με αποτέλεσμα, ο χρήστης να λαμβάνει συνολικά το ίδιο αριθό κλήσεων. +
  - oldest_call_finish: ταξινομημένο με την τελευταία φορά που ένας χρήστης τελείωσε μία κλήση. Ο χρήστης που περιμένει περισσότερο λαμβάνει την πρώτη κλήση. +
  - overall_user_level: οι διαταγές από το user_level του χειριστή όπως καθορίζεται στα vicidial_users παρουσιάζουν ένα υψηλότερο user_level θα άβουν περισσότερες κλήσεις. +
  - campaign_rank: διαταγές από την τάξη που δίνεται στον πράκτοραγια την εκστρατεία. Ο υψηλότερος σε χαμηλότερο. +
  - fewest_calls: διαταγές από τον αριθμό κλήσεων πουπαραλαμβάνονται από έναν πράκτορα για εκείνη την συγκεκριμένηεισερχόμενη ομάδα. Λιγότερες κλήσεις πρώτα. +
  - longest_wait_time: παραγγελίες από το ποσό του χρόνου πράκτορας έχει ενεργά περιμένει μια κλήση. + +
+
+
+ Τοπική Ωρα Κλήσης - Εδώ, μπορείτε να ορίσετε τις ώρες που θα θέλατε να γίνουν οι κλήσεις. Αυτό ελέγχετε από τον κωδικό περις και ρυθμίζεται για Daylight Savings εάν είναι εφαρμόσιμο. + +
+
+
+ Πρόθεμα Κλήσης - Αυτό το ο επιτρέπει την πιο εύκολη αλλαγή της διαδρομής της κλήσης να βγει έξω μέσω διαφορετικής μεθόδου, χωρίς να γίνει επαναφόρτωση στο Asterisk. Προκαθορισμένο είναι το 9 βασισμένο σύμφωνα με το 91NXXNXXXXXX στο σχέδιο κλήσεων - extensions.conf. + +
+
+
+ Παράλειψη Κωδικού Τηλεφώνου - Αυτό το πεδίο σας επιτρέπει να αφήσετε εκτός το πεδίο phone_code καθώς γίνονται οι κλήσεις. Προκαθορισμένα είναι Ο. + +
+
+
+ CallerID Εκστρατείας - Αυτός ο τομέας επιτρέπει την αποστολή ενός αριθμού συνήθειας callerid στις εξερχόμενες κλήσεις. Αυτό είναι ο αριθμός που θα παρουσίαζε στο callerid του προσώπου που καλείτε. Η προεπιλογή είναι ΑΓΝΩΣΤΗ. Εάν χρησιμοποιείτε το T1 ή Eί να σχηματίσει έξω αυτήν την επιλογή είναι μόνο διαθέσιμος εάν χρησιμοποιετε PRIs - ISDN Tί ή Eί - που ανοίγουν το χαρακτηριστικό γνώρισμα συνήθειας callerid, αυτό δεν θα λειτουργήσει με την υπηρεσία ληστεύω-κομματιών - RBS - κυκλώματα. Αυτό θα λειτουργήσει επίσης μέσω του περισσότερου VOIP - ΓΟΥΛΙΑ ή κορμοί IAX - προμηθευτές που επιτρέπουν δυναμικό εξερχόμενο callerID. Η σνήθεια callerID ισχύει μόνο για τις κλήσεις που τοποθετούνται για την εκστρατεία VICIDIAL άμεσα, οποιεσδήποτε κλήσεις ή μεταφορές 3$ων συμβαλλόμενων μερών δεν θα στείλουν τη συνήθεια callerID. ΣΗΜΕΙΩΣΗ: Μερικές φορές να βάλει ΑΓΝΩΣΤΗ ή ΙΔΙΩΤΙΚΗ στον τομέα θα παραγάγει την αποστολή του αριθμού προεπιλογής σας callerID από το μεταφορέα σας με τις κλήσεις. Μπορείτε να θελήσετε να εξετάσετε αυτό και να υποβάλετε 0000000000 ο τομέας callerid αντ' αυτού εάν δεν θέλετε να σας στείλετε CallerID. + +
+
+
+ Τηλ.Επέκταση εκσρατείας Ηχογρ - αυτό το πεδίο επιτρέπει να ορίσετε μία επέκταση ηχογράφησης που χρησιμοποιείται με το VICIDIAL. Αυτό επιτρέπει να χρησιμοποιήσετε διαφορετικές επεκτάσεις ανάλογα με πόσο χρόνο θέλετε να επιτρέψετε μία ηχογράφηση και ποιο τύπος κωδικοποιητή-αποκωδικοποιητή θα χρσιμοποιηθεί. Η προεπιλογή είναι 8309 και θα καταγράψει με το σχήμα WAV μέχρι μια ώρα. Μια άλλη επιλογή που περιλαμβάνεται στα παραδείγματα είναι 8310 που θα καταγράψουν με το σχήμα GSM για μέχρι μια ώρα. + +
+
+
+ Ηχογράφηση Εκστρατείας - Αυτές οι επιλογές σας επιτρέπουν να διαλέξετε πιο επίπεδο ηχογράφησης επιτρέπετε στην εκστρατεία. NEVER θα απενεργοποιήσει την ηχογράφηση στον πελάτη. ONDEMAND είναι το προκαθορισμένο και επιτρέπει στον χειριστή να ξεκινάει και να σταματάει την ηχογράφηση. ALLCALLS ξεκινάει η ηχογράφηση όποτε η κλήση μεταφέρετε στον χειριστή. + +
+
+
+ Όνομα αρχείου ηχογρ εκστρατείας - αυτό το πεδίο επιτρέπει να προσαρμόσετε το όνομα της ηχογράφησης, όταν η ηχογράφηση της εκστρατείας είναι ONDEMAND ή ALLCALLS. Οι μεταβλητές είναι CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. Η προεπιλογή είναι FULLDATE_ΧΕΙΡΙΣΤΗΣκαι θα μοιάζει με το 20051020-103108_6666. Ένα άλλο παράδειγμα είναι CAMPAIGN_TINYDATE_CUSTPHONE που θα μοιάζει με το TESTCAMP_51020103108_3125551212. 50 char max. + +
+
+
+ Καθυστέρηση Ηχογράφησης - Μόνο για ηχογραφήσεις ALLCALLS και ALLFORCE. Προκαθορισμένα είναι 0. + +
+
+
+ Βοηθός εκστρατείας - αυτές οι επιλογές επιτρέπουν να επιλέξετε τον Βοηθό που θα εμφανιστεί στην οθόνη των χειριστών για αυτήν την εκστρατεία. Επιλέξτε NONE για να μην παρουσιάσετε κανένα χειρόγραφο για αυτήν την εκστρατεία. + +
+
+
+ Κατά την έναρξη κλήσης - αυτές οι επιλογές επιτρέπουν να επιλέξετε εάν θέλετε την αυτόματη έναρξη μίας ιστο σελίδας σε ένα διαφορετικό παράθυρο, αυτόματη μεάβαση στον Βοηθό ή τίποτα. + +
+
+
+ Xfer-Conf DTMF - Αυτές οι τέσσερις τομείς που επιτρέπουν σε σας για να έχει δύο σύνολα μεταφοράς Διάσκεψης και DTMF προεπιλογές. Όταν η κλήση ή καμπάνια είναι φορτωμένο, το σενάριο vicidial.php θα δείτε δύο κουμπιά για τη μεταφορά-πλαίσιο διάσκεψης και αυτόματη συμπλήρωση του αριθμού-να-κλήσης και την αποστολή-DTMF πεδία όταν πιέζεται. Αν θέλετε να επιτρέπεται η Συμβουλευτική Μεταφορές, ένα fronter σε μια στενότερη, έχουν το πρακτορείο χρήση του ΣΥΜΒΟΥΛΕΥΤΙΚΗ κουτάκι, το οποίο δεν λειτουργεί για το τρίτο κόμμα μη-ViciDial συμβουλευτικό κλήσεις. Για όσους έχουν απλά ένα κλικ πράκτορας της κλήσης Με κουμπί πελατών. Στη συνέχεια, ο αντιπρόσωπος μπορεί απλώς ΑΔΕΙΕΣ-3way-CALL και να προχωρήσουμε στην επόμενη κλήση τους. Αν θέλετε να επιτρέπεται Τυφλών μεταφορές των πελατών σε ένα χειρόγραφο VICIDIAL AGI για υλοτομία ή ένα IVR, τότε AXFER θέση στον αριθμό-να-dial πεδίο. Μπορείτε επίσης να καθορίσετε μια επέκταση έθιμο μετά την AXFER, για παράδειγμα, αν θέλετε να κάνετε μια κλήση σε μια ειδική IVR που έχετε θέσει για την επέκταση 83900 που θα τεθεί AXFER83900 στον αριθμό-να-πεδίο dial. + +
+
+
+ Γρήγορη Μεταφορά Button - Η επιλογή αυτή θα προσθέσει ένα κουμπί Γρήγορη Μεταφορά στην οθόνη πράκτορα κάτω από το κουμπί Μεταφορά-Conf που θα επιτρέψουν ένα κλικ τυφλή μεταφορά των κλήσεων προς την επιλεγμένη ομάδα της ή τον αριθμό. IN_GROUP θα αποστείλει κλήσεις προς την Προεπιλογή xfer ομάδας για αυτή την καμπάνια, ή την ομάδα της, αν υπήρχε μια εισερχόμενη κλήση. Οι επιλογές PRESET θα αποστείλει τις προσκλήσεις για το προκαθορισμένο επιλεγεί. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες. + +
+
+
+ Μεταφορά PrePopulate Preset - Η επιλογή αυτή θα αναγράψει τον αριθμό κλήσης με τον τομέα στο πλαίσιο διάσκεψης Μεταφορά στην οθόνη παράγοντα εάν ορίζεται. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες. + +
+
+
+ Timer Δράση - Αυτό το χαρακτηριστικό σας επιτρέπει να προκαλέσει ενέργειες μετά από ένα ορισμένο χρονικό διάστημα. το Δ1 και Δ2 επιλογές DIAL θα δημοσιεύσει μια πρόσκληση για τη μεταφορά Διάσκεψη προεπιλογές Αριθμός και τους διαβιβάζουν στον πράκτορα της συνόδου, αυτή χρησιμοποιείται συνήθως για απλές εφαρμογές IVR AGI επικύρωση ή απλά να παίξει ένα προ-ηχογραφημένο μήνυμα. WEBFORM θα ανοίξει τη διεύθυνση φόρμα. MESSAGE_ONLY θα εμφανίσει απλά το μήνυμα ότι είναι στο πεδίο παρακάτω. ΚΑΝΕΝΑ θα απενεργοποιήσετε αυτήν τη δυνατότητα και είναι η προεπιλογή. + +
+
+
+ Timer Δράση Μήνυμα - Αυτό είναι το μήνυμα που εμφανίζεται στην οθόνη παράγοντα κατά τη στιγμή της Timer δράσης ενεργοποιείται. + +
+
+
+ Timer Δευτερόλεπτα Δράση - Αυτό είναι το χρονικό διάστημα μετά την κλήση συνδέεται με τον πελάτη ότι το χρονόμετρο δράσης ενεργοποιείται. Προεπιλογή είναι -1 που είναι και ανενεργός. + +
+
+
+ Προγραμματισμένες Επανακλήσεις - Αυτή η επιλογή επιτρέπει στον χειριστή να τερματίσει μία κλήση ως CALLBK και να επιλέξει τα δεδομένα και την ώρα κατά την οποία ο οδηγός θα ξανα-ενεργοποιηθεί. + +
+
+
+ Δευτερ. Τυλίγματος - Ο αριθμός των δευερολέπτων που αναγκάζει έναν χειριστή να περιμένει πριν του επιτραπεί να λάβει ή να κάνει άλλη κλήση. Ο χρόνος ξεκινάει μόλις τερματίσει μία κλήση. Προκαθορισμένα είναι 0 δευτερ. Αν ο χρόνος περάσει πριν ο χειριστής τερματίσει την κλήση, δεν θα μετακινηθεί στην άλλη κλήση πριν συβεί αυτό. + +
+
+
+ Μήνυμα Τυλίγματος - Αυτό είναι ένα συγκεκριμένο μήνυμα εκστρατείας που εμφανίζεται στην οθόνη τυλίγματος όταν έχει οριστεί ο χρόνος τυλίγματος. + +
+
+
+ Εσωτερικός κατάλογος DNC χρήσης - αυτό καθορίζει εάν αυτή ηεκστρατεία είναι στους μολύβδους φίλτν ενάντια στον εσωτερικόκατάλογο DNC. Εάν τίθεται το Υ, η χοάνη θα ψάξει κάθετηλεφωνικό αριθμό στον κατάλογο DNC πρίν τοποθετεί τον στηχοάνη. Εάν είναι στον κατάλογο DNC έπειτα θα αλλάξει ότιθέση μολύβδου σε DNCL έτσι που δεν μπορεί να σχηματιστεί. Ηπροεπιλογή είναι ν. Η επιλογή areacode είναι ακριβώς όπως η επιλογή Υ, εκτός από αυτό χρησιμοποιείται επίσης για να φιλτράρετε μια ολόκληρη κωδικό της περιοχής της Βόρειας Αμερικής από το να είναι εξερχόμενες, στην προκειμένη περίπτωση με την είσοδο 201XXXXXXX στη λίστα DNC θα μπλοκάρει όλες τις κλήσεις προς το 201 areacode αν έχει ενεργοποιηθεί. + +
+
+
+ Χρησιμοποίησε Καμπάνια DNC List - Αυτό καθορίζει αν αυτό είναι η εκστρατεία εναντίον ενός φίλτρου οδηγεί DNC λίστα που είναι ειδικά για τη συγκεκριμένη καμπάνια μόνο. Αν είναι να Y, η χοάνη θα εξετάσει, για κάθε αριθμό τηλεφώνου στον αγώνα-ειδικά DNC λίστα πριν από την τοποθέτησή του στην χοάνη. Αν είναι στην εκστρατεία ειδικά DNC λίστα τότε θα αλλάξει το καθεστώς που οδηγούν σε DNCC έτσι δεν μπορεί να εξερχόμενων. Προεπιλεγμένο είναι Ν. Η επιλογή areacode είναι ακριβώς όπως η επιλογή Υ, εκτός από αυτό χρησιμοποιείται επίσης για να φιλτράρετε μια ολόκληρη κωδικό της περιοχής της Βόρειας Αμερικής από το να είναι εξερχόμενες, στην προκειμένη περίπτωση με την είσοδο 201XXXXXXX στη λίστα DNC θα μπλοκάρει όλες τις κλήσεις προς το 201 areacode αν έχει ενεργοποιηθεί. + +
+
+
+ Εισερχόμενες ομάδες - 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. + +
+
+
+ Η μικρή διακοπή πρακτόρων κωδικοποιεί ενεργό - επιτρέπει στουςπράκτορες για να επιλέξει έναν κώδικα μικρής διακοπής ότανχτυπούν στο κουμπί ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ στους κώδικες μικρής διακοπήςvicidial.php. είναι ευπροσδιόριστοι ανά εκστρατεία στοκατώτατο σημείο της οθόνης λεπτομέρειας άποψης εκστρατείας καιαποθηκεύονται στον πίνακα vicidial_agent_log. Η προεπιλογήείναι ν. ΙΣΧΥΟΝΤΑ θα ισχύουν οι παράγοντες να επιλέγουν μια παύση κωδικό αν κάντε κλικ στο κουμπί PAUSE. + +
+
+
+ Θέστε εκτός λειτουργίας αλλάζει τα στοιχεία πελατών - εάνθέστε το Υ, δεν αλλάζει οποιων δήποτε από το αρχείο στοιχείωνπελατών όταν διαθέσεις πρακτόρων η κλήση. Η προεπιλογή είναι ν. + +
+
+
+ Απενεργοποίηση Alter Πελατών τηλέφωνο - Σε περίπτωση που σε Y, δεν αλλάζει ο πελάτης τον αριθμό τηλεφώνου όταν ένας πράκτορας διαθέσεις την κλήση. Προεπιλεγμένο είναι Y. Χρησιμοποιήστε την επιλογή Απόκρυψη για να καταργήσετε εντελώς τον αριθμό τηλεφώνου του πελάτη από την οθόνη πράκτορα. + +
+
+
+ Εμφάνιση Agent Queue Count - Σε περίπτωση που σε Y, σε περίπτωση που ο πελάτης περιμένει για έναν πράκτορα, ο κοτσίδας ζητεί απεικόνιση στο πάνω μέρος της οθόνης πράκτορας θα γίνονται κόκκινα και δείχνουν τον αριθμό των αναμονής κλήσεων. Προεπιλεγμένο είναι Y. + +
+
+
+ Χειρωνακτικός κατάλογος ταυτότητα πινάκων - η προεπιλογήlist_id για να χρησιμοποιηθεί όταν δημιουργείται έναςπράκτορας placces μια χειρωνακτική κλήση και ένα νέο αρχείομολύβδου στο vicidial_list. Η προεπιλογή είναι 999. Αυτός οτομέας μπορεί να περιέχει τα ψηφία μόνο. + +
+
+
+ Εγχειρίδιο Dial Διηθείται - Αυτό σας επιτρέπει να φιλτράρετε τις κλήσεις που πράκτορες να καλέσετε στο εγχειρίδιο λειτουργίας για την εκστρατεία αυτή με οποιονδήποτε συνδυασμό από τα ακόλουθα: DNC - προβλέπονται για την έναρξη, CAMPAIGNΛΙΣΤΕΣ - ο αριθμός πρέπει να είναι εντός των καταλόγων για την εκστρατεία, ΚΑΝΕΝΑ - δεν υπάρχει φίλτρο για χειροκίνητη κλήση ή γρήγορα dial καταλόγους. + +
+
+
+ Agent Screen Clipboard Αντιγραφή - Αυτή η δυνατότητα είναι ενεργοποιημένη για το παρόν μόνο τον Internet Explorer. Η λειτουργία αυτή σας επιτρέπει να επιλέξετε ένα πεδίο που θα αντιγραφεί στον υπολογιστή πρόχειρο του παράγοντα υπολογιστή σε μια πρόσκληση που απηύθυνε σε έναν πράκτορα. Κοινές χρήσεις για αυτό είναι να καταστεί δυνατή η εύκολη επικόλληση του λογαριασμού αριθμούς ή αριθμούς τηλεφώνου κληρονομιά σε πελάτη σχετικά με τις εφαρμογές πράκτορα υπολογιστή. + +
+
+
+ 3-Way Outbound Call CallerID - Αυτό ορίζει τι έστειλε ως εξερχόμενο callerID σειρά από 3 δρόμων κλήσεις που διατίθενται από το γραφείο, η καμπάνια χρησιμοποιεί το έθιμο εκστρατεία callerID, ΠΕΛΑΤΗ χρησιμοποιεί τον αριθμό των πελατών που είναι ενεργή παράγοντες για την οθόνη και AGENT_PHONE χρησιμοποιεί το callerID για το τηλέφωνο ότι ο παράγοντας που είναι συνδεδεμένοι στο. AGENT_CHOOSE επιτρέπει να επιλέγουν τον πράκτορα που callerID να χρησιμοποιήσετε για την 3-way ζητεί από μια λίστα επιλογών. + +
+
+
+ 3-Way Call Πρόθεμα Κλήσης - Αυτό ορίζει τι είναι χρησιμοποιείται ως πρόθεμα κλήσης για 3-way κλήσεις, προεπιλογή είναι άδειο, ώστε η εκστρατεία dial πρόθεμα χρησιμοποιείται, passthru έτσι ώστε να μπορείτε να ακούτε τους ήχους είναι 88. + + 0) + { + ?> +
+
+
+ QC Enabled - Η ρύθμιση αυτού του τομέα να Y επιτρέπει τον παράγοντα Ποιοτικός Έλεγχος χαρακτηριστικά στην εργασία. Προεπιλεγμένο είναι Ν. + +
+
+
+ QC καθεστώτων - Η περιοχή αυτή είναι που θα επιλέξετε το οποίο οδηγεί των καθεστώτων θα πρέπει να φύγει πάνω από το σύστημα, QC. Τοποθετήστε ένα δίπλα στο ελέγξτε την κατάσταση που θέλετε, QC για την αναθεώρηση. + +
+
+
+ QC Shift - Αυτό είναι το χρονοδιάγραμμα μετάβασης που χρησιμοποιούνται για την έλξη, QC αρχεία για μια καμπάνια. Οι μέρες της εβδομάδας αγνοούνται για αυτές τις λειτουργίες. + +
+
+
+ QC Get Record Launch- Αυτό επιτρέπει σε μια από τις ακόλουθες δράσεις, το οποίο θα ενεργοποιείται σε ένα QC πράκτορας που λαμβάνει ένα νέο ρεκόρ. + +
+
+
+ QC Δείτε Καταγραφή - Αυτό επιτρέπει την καταγραφή που μπορεί να συνδέεται με την εγγραφή QC να εμφανίζονται στην οθόνη QC πράκτορα. + +
+
+
+ QC WebForm Διεύθυνση - Αυτό είναι το ότι μια διεύθυνση ιστοσελίδας, QC, μπορεί να πάει στο γραφείο, όταν κάνετε κλικ στο σύνδεσμο WEBFORM στην οθόνη QC. + +
+
+
+ QC Σενάριο - Αυτό είναι το σενάριο που μπορεί να χρησιμοποιηθεί από τους πράκτορες, QC στην SCRIPT καρτέλα στην οθόνη, QC. + + +
+
+
+ Αναζήτηση Vtiger Κατηγορία - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεων στη συνέχεια τη ρύθμιση αυτή θα καθορίσει εάν η σελίδα vtiger_search.php θα αναζητήσετε τον αριθμό τηλεφώνου που είχε εγγραφεί. Υπάρχουν 4 επιλογές που μπορεί να χρησιμοποιηθεί στον τομέα αυτό: ΜΟΛΥΒΔΟΥ-Η επιλογή αυτή θα αναζητήσει μέσω του Vtiger οδηγεί μόνο, ΛΟΓΑΡΙΑΣΜΟΥ-Η επιλογή αυτή θα ψάξει μέσω των λογαριασμών Vtiger και όλες τις επαφές και επιμέρους επαφές για τον αριθμό τηλεφώνου, VENDOR-Αυτή η επιλογή μόνο μέσω της αναζήτησης Vtiger πωλητές, ACCTID-Η επιλογή αυτή λειτουργεί μόνο για τους λογαριασμούς και θα λάβει τα vicidial vendor_lead_code τομέα και προσπαθήστε να αναζητήσετε το αναγνωριστικό λογαριασμού Vtiger. Αν ανεπιτυχή θα προσπαθήσουμε τυχόν άλλες μεθόδους που αναφέρονται που έχετε επιλέξει. Πολλαπλές επιλογές μπορούν να χρησιμοποιηθούν για κάθε αναζήτηση, αλλά σε μεγάλες βάσεις δεδομένων που αυτό δεν συνιστάται. Προεπιλεγμένο είναι ΜΟΛΥΒΔΟΥ. UNIFIED_CONTACT-Η επιλογή αυτή θα χρησιμοποιήσει το βήτα vtiger 5.1.0 χαρακτηριστικό για την αναζήτηση με βάση τον αριθμό τηλεφώνου και να εμφανιστεί μια σελίδα αναζήτησης στο vtiger. + +
+
+
+ Vtiger Αναζήτηση Dead Λογαριασμών - Αν vtiger ολοκλήρωση είναι ενεργοποιημένη στις ρυθμίσεις του συστήματος τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο διαγραμμένων λογαριασμών θα γίνει αναζήτηση όταν το πρακτορείο κλικ WEB FORM στην αναζήτηση στο σύστημα vtiger. ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ-διαγράφεται οδηγεί δεν θα γίνει αναζήτηση, ASK-διαγράφεται οδηγεί θα γίνει η αναζήτηση και η αναζήτηση vtiger ιστοσελίδα θα ζητήσει από τον πράκτορα, αν θέλουν να κάνουν το λογαριασμό vtiger ενεργό, αναστήσει-θα κάνει αυτόματα τη διαγραφή λογαριασμό ξανά ενεργός και θα λάβει τα παράγοντα στην οθόνη λογαριασμό δεν καθυστέρηση, κατόπιν κάνοντας κλικ στο Ιστο-σελίδα. Προεπιλογή είναι ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ. + +
+
+
+ Δημιουργία Vtiger Call Record - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεις τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο ένα νέο ρεκόρ Vtiger δραστηριότητα δημιουργείται για την πρόσκληση, όταν ο αντιπρόσωπος πηγαίνει στο vtiger_search σελίδα. Προεπιλεγμένο είναι Y. Η επιλογή DISPO θα δημιουργήσει ένα αρχείο πρόσκληση για λογαριασμό vtiger ο αντιπρόσωπος δεν χρειάζεται να πάτε στη σελίδα αναζήτησης vtiger μέσω του Ιστο-σελίδα. + +
+
+
+ Δημιουργία Vtiger Μόλυβδος Record - Εάν είναι ενεργοποιημένη Vtiger ενσωμάτωση στο σύστημα και τις ρυθμίσεις Vtiger Αναζήτηση ΜΟΛΥΒΔΟ τότε η κατηγορία περιλαμβάνει τη ρύθμιση αυτή θα καθορίσει κατά πόσο ένα νέο ρεκόρ Vtiger οδηγήσει δημιουργείται όταν ο πράκτορας πηγαίνει στη σελίδα vtiger_search και δεν είναι βρέθηκαν να έχουν την κλήση του αριθμού τηλεφώνου. Προεπιλεγμένο είναι Y. + +
+
+
+ Vtiger Screen Είσοδος - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεις τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο ο χρήστης είναι συνδεδεμένος στο Vtiger διεπαφής αυτόματα όταν συνδεθείτε στο VICIDIAL. Προεπιλεγμένο είναι Y. Η επιλογή NEW_WINDOW θα ανοίξει ένα νέο παράθυρο κατά την σύνδεση με την VICIDIAL οθόνη πράκτορας. + +
+
+
+ Vtiger Κατάσταση Call - Αν vtiger ολοκλήρωση είναι ενεργοποιημένη στις ρυθμίσεις του συστήματος τότε αυτή η ρύθμιση θα καθορίσει κατά πόσον το καθεστώς της vtiger λογαριασμού θα ενημερώνεται με την κατάσταση της κλήσης μετά από VICIDIAL έχει dispositioned. Προεπιλογή είναι N. + +
+
+
+ CRM Popup Σύνδεση - Αν οριστεί σε Ναι, το CRM Popup Διεύθυνση χρησιμοποιείται για να ανοίξει ένα νέο παράθυρο για την σύνδεση παράγοντας σε αυτή την καμπάνια. Προεπιλογή είναι N. + +
+
+
+ CRM Popup Διεύθυνση - Η διεύθυνση του CRM σελίδα σύνδεσης, μπορεί να έχει μεταβλητές πληθυσμού όπως ακριβώς και το έντυπο διεύθυνση ιστού, με τη VAR στην πρώτη και τη χρήση - Α - user_custom_one - Β - να ορίσουν μεταβλητές. + +
+
+
+ Ξεκινήστε Call URL - Αυτό το web διεύθυνση URL δεν θεωρείται από το πρακτορείο, αλλά καλείται κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα, εφόσον είναι πυκνοκατοικημένη. Χρησιμοποιεί τις ίδιες μεταβλητές όπως τα πεδία scripts φόρμα και. Αυτή η διεύθυνση URL δεν μπορεί να αποτελέσει σχετική διαδρομή. Ξεκινήστε το URL δεν λειτουργεί για το εγχειρίδιο κλήσεις μέσω τηλεφώνου. Προεπιλογή είναι κενό. + +
+
+
+ Καλέστε dispo URL - Αυτό το web διεύθυνση URL δεν θεωρείται από το πρακτορείο, αλλά καλείται κάθε φορά που μια κλήση είναι dispositioned από έναν πράκτορα αν είναι πυκνοκατοικημένη. Χρησιμοποιεί τις ίδιες μεταβλητές όπως τα πεδία scripts φόρμα και. dispo και talk_time είναι οι μεταβλητές που μπορείτε να χρησιμοποιήσετε για να ανακτήσετε το πρακτορείο καθορισμένες διάταξη για την πρόσκληση και τον πραγματικό χρόνο ομιλίας σε δευτερόλεπτα της κλήσης. Αυτή η διεύθυνση URL δεν μπορεί να αποτελέσει σχετική διαδρομή. Προεπιλογή είναι κενό. + +
+
+
+ Ομάδα Γνωστός Επιτρέπεται - Αν θέλετε να σας επιτρέψει πράκτορες να χρησιμοποιούν ψευδώνυμα ομάδα τότε πρέπει να ορίσετε αυτή την ομάδα να Y. Γνωστός εξηγούνται περισσότερο στο τμήμα Διοίκησης, που επιτρέπει στους εκπροσώπους να επιλέξετε διαφορετικό callerIDs εγχειρίδιο για εξερχόμενες κλήσεις ότι μπορεί να πραγματοποιηθεί. Προεπιλεγμένο είναι Ν. + +
+
+
+ Προεπιλεγμένη ομάδα Γνωστός - Αν έχετε επιτρέπεται Γνωστός ομάδα, τότε αυτό είναι γνωστός και ότι η ομάδα έχει επιλεγεί από προεπιλογή κατά την πρώτη του πράκτορα επιλέγει να χρησιμοποιήσει μια ομάδα Γνωστός για εξερχόμενες κλήσης εγχειρίδιο. Προεπιλεγμένο είναι ΚΑΝΕΝΑ ή κενό. + +
+
+
+ Agent κλήσεων στην ουρά - Εάν ρυθμιστεί σε οτιδήποτε, αλλά ΚΑΝΕΝΑ, πράκτορες θα είναι σε θέση να δείτε λεπτομέρειες σχετικά με τις κλήσεις που περιμένουν στην ουρά στην οθόνη τον πράκτορά τους. Εάν ρυθμιστεί σε μια αριθμητική τιμή, οι κλήσεις που εμφανίζονται θα περιοριστεί στον αριθμό του εγγράφου. Προεπιλογή είναι ΚΑΝΕΝΑ. + +
+
+
+ Δείτε καλεί στην ουρά Launch - Αυτή η ρύθμιση, εάν ρυθμιστεί σε AUTO θα έχει την καλεί στο πλαίσιο ουρά εμφανιστεί μετά από σύνδεση με το πρακτορείο στην οθόνη πράκτορα. Προεπιλογή είναι MANUAL. + +
+
+
+ Agent καλεί Πιάσε στην ουρά - Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα επιτρέψει τον αντιπρόσωπο για να επιλέξετε την κλήση που θέλουν να λάβουν από την καλεί σε ουρά οθόνης κάνοντας κλικ σε αυτό, ενώ έχει διακοπεί. Πράκτορες θα είναι σε θέση να αρπάξει εισερχόμενες κλήσεις ή να μεταφέρονται κλήσεις, δεν εξερχόμενες κλήσεις. Προεπιλογή είναι N. + +
+
+
+ Agent Call Re-Queue Button - Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα προσθέσετε ένα Re-Queue κουμπί πελατών στην οθόνη του πράκτορα, που επιτρέπει το πρακτορείο για να στείλετε την πρόσκληση σε ένα AGENTDIRECT ουρά που προορίζεται για το μόνο παράγοντα. Προεπιλογή είναι N. + +
+
+
+ Agent Παύση Μετά από κάθε πρόσκληση - Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα διακόψετε το πρακτορείο μετά από κάθε κλήση αυτόματα. Προεπιλογή είναι N. + + + + + +



+ + VICIDIAL_ΛΙΣΤΕΣ ΠΙΝΑΚΑΣ

+
+
+ ID Λίστας - Αυτό είναι το αριθμητικό όνομα της λίστας, δεν μπορεί να διορθωθεί μετά από την αρχική εισαγωγή, πρέπει να περιέχει μόνο αριθμούς και πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες. Must be a number greater than 100. + +
+
+
+ Ονομα Λίστας - Αυτή είναι η περιγραφή της λίστας, πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. + +
+
+
+ Περιγραφή καταλόγων - αυτό είναι ο τομέας υπομνημάτων για τονκατάλογο, είναι προαιρετικό. + +
+
+
+ Ημερομηνία αλλαγής καταλόγων - αυτό είναι η τελευταία φορά ότιοι τοποθετήσεις για αυτόν τον κατάλογο τροποποιήθηκαν από καμιάάποψη. + +
+
+
+ Τελευταία ημερομηνία κλήσης καταλόγων - αυτό είναι η τελευταίαφορά ότι ο μόλυβδος σχηματίστηκε από αυτόν τον κατάλογο. + +
+
+
+ Εκστρατεία - Αυτή είναι η εκστρατεία όπου ανήκει η λίστα. Μία λίστα μπορεί μόνο να κληθεί από μία εκστρατεία κάθε φορά. + +
+
+
+ Ενεργή - Αυτό ορίζει κατά πόσον η λίστα πρόκειται να κληθεί ή όχι. + +
+
+
+ Επαναφορά Κατάστασης-Κλήσης-Καθοδήγησης για την λίστα - Αυτό επαναφέρει τους οδηγούς σε αυτή την λίστα στο Ν σε \"μη κληθέντα από την τελευταία επαναφορά\" και σημαίνει ότι για οποιαδήποτε καθοδήγηση μπορεί να γίνει κλήση εάν είναι η σωστή κατάσταση, όπως ορίσθηκε στην οθόνη τις εκστρατείας. + +
+
+
+ Reset Times - Αυτό το πεδίο σας επιτρέπει να τεθεί σε χρόνους, που χωρίζονται από μία παύλα-, ότι ο κατάλογος αυτός θα πρέπει να επαναφέρεται αυτόματα από το σύστημα. Οι χρόνοι πρέπει να είναι σε 24 ωρη μορφή που δεν στίξης, για παράδειγμα, 0800-1700 θα επαναφέρετε τη λίστα σε 8am και 5 μ.μ. κάθε μέρα. Προεπιλογή είναι άδειο. + +
+
+
+ Agent Σενάριο Παράκαμψη - Αν αυτό το πεδίο έχει οριστεί, αυτό θα είναι το σενάριο ότι ο πράκτορας βλέπει στην οθόνη τους αντί του σεναρίου εκστρατεία όταν το αποτέλεσμα είναι από αυτή τη λίστα. Προεπιλογή δεν έχει οριστεί. + +
+
+
+ Καμπάνια CID Παράκαμψη - Αν αυτό το πεδίο έχει οριστεί, αυτό θα υπερισχύσει η εκστρατεία CallerID που έχει οριστεί για τις κλήσεις που είναι σε θέση να οδηγεί σε αυτόν τον κατάλογο. Προεπιλογή δεν έχει οριστεί. + +
+
+
+ Τηλεφωνητής Μήνυμα Παράκαμψη - Αν αυτό το πεδίο έχει οριστεί, αυτό θα υπερισχύσει η απάντηση Μήνυμα Machine που στην εκστρατεία για τους πελάτες σε αυτόν τον κατάλογο. Προεπιλογή δεν έχει οριστεί. +
+
+
+ Drop Inbound Ομάδα Παράκαμψη - Αν αυτό το πεδίο έχει οριστεί, αυτή η ομάδα της θα χρησιμοποιηθεί για εξερχόμενες κλήσεις μέσα στη λίστα που πτώση από το εξερχόμενο εκστρατεία αντί για την πτώση της ομάδας που στην οθόνη λεπτομερώς εκστρατεία. Προεπιλογή δεν έχει οριστεί. + +
+
+
+ Xfer-Conf Αριθμός Παράκαμψη - Αυτά τα πέντε πεδία επιτρέπουν για να παρακάμψετε τις προεπιλογές αριθμό Μεταφορά Διάσκεψη όταν το αποτέλεσμα είναι από αυτή τη λίστα. Προεπιλογή είναι κενό. + + +
+
+
+ Κατάλογος VICIDIAL DNC - Αυτό δεν θέτουν κάθε λίστα περιέχει μόλυβδο που έχει τεθεί σε καθεστώς των DNC στο σύστημα. Μέσω του ΚΑΤΑΛΟΓΟΙ - ADD TO ΑΡΙΘΜΟΣ DNC σελίδα μπορείτε να προσθέσετε τους αριθμούς σε αυτόν τον κατάλογο, έτσι ώστε δεν θα ονομάζεται από καμπάνιες που χρησιμοποιούν την εσωτερική DNC λίστα. Υπάρχει επίσης η δυνατότητα να προσθέσετε οδηγεί στην καμπάνια-DNC ειδικών καταλόγων για αυτές τις καμπάνιες που έχουν τους. Αν έχετε την ενεργό επιλογή DNC που να areacode τότε μπορείτε επίσης να χρησιμοποιήσετε καταχωρήσεις μπαλαντέρ κωδικό περιοχής όπως αυτό 201XXXXXXX να μπλοκάρει όλες τις κλήσεις προς το 201 areacode όταν ενεργοποιηθεί. + + + +



+ + VICIDIAL_Εισερχόμενα_GROUPS ΠΙΝΑΚΑΣ

+
+
+ ID Ομάδας - Αυτό είναι το σύντομο όνομα της εισερχόμενης ομάδας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 20χαρακτήρες. + +
+
+
+ Ονομα Ομάδας - Αυτή είναι η περιγραφή της ομάδας, πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες. Δεν μπορεί να συμπεριαμβάνει παύλες, συν ή κενά . + +
+
+
+ Χρώμα Ομάδας - Αυτό είναι το χρώμα που εμφανίζεται στην VICIDIAL εφαρμογή όταν η κλήση έρχεται σε αυτή την ομάδα. Πρέπει να είναι μεταξύ 2 και 7 χαρακτήρες. Εάν αυτό είναι ορισμένο ως hex , θα πρέπει να τοποθετήσετε ένα # στην αρχή του κειμένου ή το VICIDIAL δεν θα δουλεύει σωστά. + +
+
+
+ Ενεργοποίηση - Αυτό καθορίζει κατά πόσον αυτή η ομάδα εμφανίζεται στο κουτί επιλογής όταν ένας χρήστης συνδέεται. + +
+
+
+ Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυ την ομάδα. + +
+
+
+ Επόμενη Κλήση Χρήστη - Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη: +
  - random: ταξινομημένο με τυχαία τιμή ενημέρωσης στον πίνακα vicidial_live_agents +
  - oldest_call_start: ταξινομημένο με την τελευταία φορά που σε ένα χρήστη στάλθηκε μία κλήση. Με αποτέλεσμα, ο χρήστης να λαμβάνει συνολικά το ίδιο αριθό κλήσεων. +
  - oldest_call_finish: ταξινομημένο με την τελευταία φορά που ένας χρήστης τελείωσε μία κλήση. Ο χρήστης που περιμένει περισσότερο λαμβάνει την πρώτη κλήση. +
  - overall_user_level: οι διαταγές από το user_level του χειριστή όπως καθορίζεται στα vicidial_users παρουσιάζουν ένα υψηλότερο user_level θα άβουν περισσότερες κλήσεις. +
  - inbound_group_rank: διαταγές από την τάξη που δίνεται στονπράκτορα για τη συγκεκριμένη εισερχόμενη ομάδα. Ο υψηλότερος σεχαμηλότερο. +
  - fewest_calls: διαταγές από τον αριθμό κλήσεων πουπαραλαμβάνονται από έναν πράκτορα για εκείνη την συγκεκριμένηεισερχόμενη ομάδα. Λιγότερες κλήσεις πρώτα. +
  - campaign_rank: διαταγές από την τάξη που δίνεται στον πράκτοραγια την εκστρατεία. Ο υψηλότερος σε χαμηλότερο. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: παραγγελίες από το ποσό του χρόνου πράκτορας έχει ενεργά περιμένει μια κλήση. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Οθόνη Μπροστινού - Αυτό το πεδίο καθορίζει κατά πόσον στον VICIDIAL χόμενος χρήστης θα εμφανίζεται το όνομα του μπροστινού - εάν υπάρχει κάποιο - στο πεδίο κατάστασης όταν η κλήση έρχεται στον χρήστη. + +
+
+
+ Βοηθός εκστρατείας - αυτές οι επιλογές επιτρέπουν να επιλέξετε τον Βοηθό που θα εμφανιστεί στην οθόνη των χειριστών για αυτήν την εκστρατεία. Επιλέξτε NONE για να μην παρουσιάσετε κανένα χειρόγραφο για αυτήν την εκστρατεία. + +
+
+
+ Κατά την έναρξη κλήσης - αυτές οι επιλογές επιτρέπουν να επιλέξετε εάν θέλετε την αυτόματη έναρξη μίας ιστο σελίδας σε ένα διαφορετικό παράθυρο, αυτόματη μεάβαση στον Βοηθό ή τίποτα. + +
+
+
+ Xfer-Conf DTMF - Αυτές οι τέσσερις τομείς που επιτρέπουν σε σας για να έχει δύο σύνολα μεταφοράς Διάσκεψης και DTMF προεπιλογές. Όταν η κλήση ή καμπάνια είναι φορτωμένο, το σενάριο vicidial.php θα δείτε δύο κουμπιά για τη μεταφορά-πλαίσιο διάσκεψης και αυτόματη συμπλήρωση του αριθμού-να-κλήσης και την αποστολή-DTMF πεδία όταν πιέζεται. Αν θέλετε να επιτρέπεται η Συμβουλευτική Μεταφορές, ένα fronter σε μια στενότερη, έχουν το πρακτορείο χρήση του ΣΥΜΒΟΥΛΕΥΤΙΚΗ κουτάκι, το οποίο δεν λειτουργεί για το τρίτο κόμμα μη-ViciDial συμβουλευτικό κλήσεις. Για όσους έχουν απλά ένα κλικ πράκτορας της κλήσης Με κουμπί πελατών. Στη συνέχεια, ο αντιπρόσωπος μπορεί απλώς ΑΔΕΙΕΣ-3way-CALL και να προχωρήσουμε στην επόμενη κλήση τους. Αν θέλετε να επιτρέπεται Τυφλών μεταφορές των πελατών σε ένα χειρόγραφο VICIDIAL AGI για υλοτομία ή ένα IVR, τότε AXFER θέση στον αριθμό-να-dial πεδίο. Μπορείτε επίσης να καθορίσετε μια επέκταση έθιμο μετά την AXFER, για παράδειγμα, αν θέλετε να κάνετε μια κλήση σε μια ειδική IVR που έχετε θέσει για την επέκταση 83900 που θα τεθεί AXFER83900 στον αριθμό-να-πεδίο dial. + +
+
+
+ Timer Δράση - Αυτό το χαρακτηριστικό σας επιτρέπει να προκαλέσει ενέργειες μετά από ένα ορισμένο χρονικό διάστημα. το Δ1 και Δ2 επιλογές DIAL θα δημοσιεύσει μια πρόσκληση για τη μεταφορά Διάσκεψη προεπιλογές Αριθμός και τους διαβιβάζουν στον πράκτορα της συνόδου, αυτή χρησιμοποιείται συνήθως για απλές εφαρμογές IVR AGI επικύρωση ή απλά να παίξει ένα προ-ηχογραφημένο μήνυμα. WEBFORM θα ανοίξει τη διεύθυνση φόρμα. MESSAGE_ONLY θα εμφανίσει απλά το μήνυμα ότι είναι στο πεδίο παρακάτω. ΚΑΝΕΝΑ θα απενεργοποιήσετε αυτήν τη δυνατότητα και είναι η προεπιλογή. Αυτή η ρύθμιση θα παρακάμπτουν τις ρυθμίσεις καμπάνιας. + +
+
+
+ Timer Δράση Μήνυμα - Αυτό είναι το μήνυμα που εμφανίζεται στην οθόνη παράγοντα κατά τη στιγμή της Timer δράσης ενεργοποιείται. + +
+
+
+ Timer Δευτερόλεπτα Δράση - Αυτό είναι το χρονικό διάστημα μετά την κλήση συνδέεται με τον πελάτη ότι το χρονόμετρο δράσης ενεργοποιείται. Προεπιλογή είναι -1 που είναι και ανενεργός. + +
+
+
+ Drop Call δευτερόλεπτα - Ο αριθμός των δευτερολέπτων σε μια κλήση θα παραμείνουν στην ουρά πριν να θεωρείται DROP. + +
+
+
+ Drop δράσης - Αυτό το μενού σας επιτρέπει να διαλέξετε ό, τι συμβαίνει σε μια κλήση όταν έχει να περιμένει περισσότερο από ό, τι έχει οριστεί στο Drop Call δευτερόλεπτα τομέα. HANGUP απλά θα κλείσεις την κλήση, το μήνυμα θα αποστείλει την πρόσκληση της Drop παράταση που έχετε ορίζονται κατωτέρω, τηλεφωνητή θα απευθύνει την πρόσκληση προς το τηλεφωνητή θέση που έχετε IN_GROUP ορίζονται κατωτέρω, και θα απευθύνει την πρόσκληση στην ομάδα Inbound που καθορίζονται κατωτέρω. + +
+
+
+ Drop παράταση - Αν Drop δράση που να είναι μήνυμα, αυτό είναι η κλήση σχέδιο επέκτασης ότι η πρόσκληση θα σταλεί στο εάν ανέρχεται Drop Call Δευτερόλεπτα. + +
+
+
+ ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+
+
+ Drop Μεταφορά Όμιλος - Αν Drop Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα εάν ανέρχεται Drop Call Δευτερόλεπτα. + +
+
+
+ Χρόνος κλήσης - αυτό είναι το χρονικό σχέδιο κλήσης ναχρησιμοποιήσει για αυτήν την εισερχόμενη ομάδα. Λάβετε υπόψηότι ο χρόνος είναι βασισμένος στο χρόνο κεντρικών υπολογιστών.Η προεπιλογή είναι 24hours. + +
+
+
+ Μετά από ώρες δράσης - Η δράση για την εκτέλεση, αν είναι μετά από ώρες, όπως ορίζεται στην πρόσκληση αυτή την φορά για τα εισερχόμενα ομάδα. HANGUP θα hangup αμέσως την πρόσκληση, MESSASGE θα παίξει το αρχείο στο Μετά από ώρες Μήνυμα Filenam τομέα, ΕΠΕΚΤΑΣΗ θα αποστείλει την πρόσκληση για την Μετά από ώρες Παράταση στο dialplan τηλεφωνητή και θα απευθύνει την πρόσκληση προς το τηλεφωνητή κουτί που απαριθμούνται στο Μετά Ώρες Τηλεφωνητής τομέα , IN_GROUP θα αποστείλει την πρόσκληση προς την εισερχόμενη ομάδα επιλεγμένων στο Μετά Ώρες Μεταφορά Ομάδα επιλέξτε λίστα. Προεπιλεγμένο είναι ΜΗΝΥΜΑ. + +
+
+
+ Μετά από το όνομα αρχείου μηνυμάτων ωρών - το ακουστικό αρχείοπου βρίσκεται στον κεντρικό υπολογιστή που παίζεται εάν η δράσητίθεται το ΜΗΝΥΜΑ. Η προεπιλογή είναι VM-ANTJ'O + +
+
+
+ Μετά από την παράταση ωρών - η dialplan επέκταση για ναστείλει την πρόσκληση εάν η δράση τίθεται την ΕΠΕΚΤΑΣΗ. Ηπροεπιλογή είναι 8300. + +
+
+
+ Μετά από το φωνητικό ταχυδρομείο ωρών - το κιβώτιο φωνητικούταχυδρομείου για να στείλει την πρόσκληση εάν η δράση τίθεται τοΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΊΟ. + +
+
+
+ Μετά από ώρες Μεταφορά Όμιλος - Εάν Μετά Ώρες Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα, αν αυτή τεθεί σε-η ομάδα εκτός από τη διάρκεια των κλήσεων για το καθεστώς που ορίζεται στην ομάδα. + +
+
+
+ Δεν Πράκτορες Δεν Αναμονής - Αν αυτό το πεδίο έχει οριστεί σε Ναι ή NO_PAUSED τότε δεν θα ζητεί να τεθεί στην ουρά για αυτό στην ομάδα, εφόσον δεν υπάρχουν παράγοντες συνδεδεμένοι και οι κλήσεις θα πάει στο γραφείο Δεν Δεν Queue δράσης. Η NO_PAUSED επιλογή δεν θα στείλει επίσης την καλούντες στην ουρά, εάν υπάρχουν μόνο σε παύση παράγοντες στην ομάδα της. Προεπιλογή είναι N. + +
+
+
+ Δεν Agent Δεν Queue δράσης - Εάν δεν Agent Δεν ουρά είναι ενεργοποιημένη, τότε το πεδίο αυτό καθορίζει, όπου η κλήση θα πάει, αν δεν υπάρχουν παράγοντες στην ομάδα της. Προεπιλογή είναι το μήνυμα, αυτό παίζει τα αρχεία ήχου στο πεδίο δράσης Value και στη συνέχεια διακόπτει. + +
+
+
+ Δεν Agent Δεν Queue δράσης Αξία - Αυτή είναι η τιμή για την παραπάνω δράση. Προεπιλογή είναι nbdy-avail-to-take-call|vm-goodbye. + +
+
+
+ Ευπρόσδεκτο όνομα αρχείου μηνυμάτων - το ακουστικό αρχείο πουβρίσκεται στον κεντρικό υπολογιστή που παίζεται όταν μπαίνει ηκλήση. Εάν θέστε ΚΑΝΕΝΑΣ --- έπειτα κανένα μήνυμα δεν θαπαιχτεί. Η προεπιλογή είναι ΚΑΜΙΑ ---. Το πεδίο αυτό όπως και με τα άλλα πεδία ήχου στο In-ομάδες, με εξαίρεση το γραφείο Προειδοποίησης Όνομα αρχείου, μπορεί να έχει πολλαπλά αρχεία ήχου που διαδραματίζουν αν βάλετε ένα σωλήνα διαχωρισμένων λίστα των αρχείων ήχου στο πεδίο. + +
+
+
+ Παίξτε Καλωσόρισμα - Οι ρυθμίσεις αυτές, όταν επιλέγουν να παίξουν το μήνυμα υποδοχής που ορίζεται, πάντα θα παίζει κάθε φορά, ΠΟΤΕ δεν πρόκειται ποτέ να παίξετε, IF_WAIT_ONLY μόνο θα παίξει το μήνυμα υποδοχής, αν η κλήση δεν πάνε αμέσως σε ένα παράγοντα , και YES_UNLESS_NODELAY θα είναι πάντα ευπρόσδεκτη παίξει το μήνυμα Αν δεν το NO_DELAY η ρύθμιση είναι ενεργοποιημένη. Προεπιλεγμένο είναι πάντα. + +
+
+
+ Μουσική στο πλαίσιο λαβής - η μουσική στο πλαίσιο λαβής στηχρήση όταν τοποθετείται ο πελάτης στη λαβή. Η προεπιλογή είναιπροεπιλογή. + +
+
+
+ Στο γρήγορο όνομα αρχείου λαβής - το ακουστικό αρχείο πουβρίσκεται στον κεντρικό υπολογιστή που παίζεται σε ένα τακτόχρονικό διάστημα όταν είναι ο πελάτης στη λαβή. Η προεπιλογήείναι generic_hold. Αυτό το ακουστικό αρχείο ΠΡΕΠΕΙ να είναι 9δευτερόλεπτα ή λιγότεροι στο μήκος. + +
+
+
+ Στο γρήγορο διάστημα λαβής - το χρονικό διάστημα σταδευτερόλεπτα για να περιμένει πρίν παίζει επάνω κρατά γρήγορος.Η προεπιλογή είναι 60. Για να απενεργοποιήσετε την Προτροπή σε αναμονή, που το χρονικό διάστημα έως 0. + +
+
+
+ Παίξτε στο Τόπος Γραμμή - Αυτό καθορίζει αν ο καλών θα ακούσει τη θέση τους στη γραμμή όταν εισέλθουν στην ουρά, καθώς και όταν ακούν την announcemend. Προεπιλεγμένο είναι Ν. + +
+
+
+ Παίξτε Κρατήστε Εκτιμώμενη ώρα - Αυτό καθορίζει αν ο καλών θα ακούσει τον εκτιμώμενο χρόνο κατέχουν προτού μεταφερθούν σε έναν πράκτορα. Προεπιλεγμένο είναι Ν. Εάν ο πελάτης είναι σε αναμονή και ακούει αυτό το μήνυμα εκτιμώμενο χρόνο κατέχουν, ο ελάχιστος χρόνος που θα παίξει είναι 15 δευτερόλεπτα. + +
+
+
+ Κρατήστε Ώρα Επιλογή - Αυτό σας επιτρέπει να καθορίσετε την δρομολόγηση των κλήσεων, εάν ο εκτιμώμενος χρόνος κατέχουν πάνω από το ποσό των δευτερολέπτων που καθορίζεται παρακάτω. Προεπιλεγμένο είναι ΚΑΝΕΝΑ. + +
+
+
+ Κρατήστε Ώρα Επιλογή δευτερόλεπτα - Αν Κρατήστε Ώρα Επιλογή έχει οριστεί σε οτιδήποτε, αλλά ΚΑΝΕΝΑ, αυτό είναι ο αριθμός των δευτερολέπτων του χρόνου εκτιμάται ότι κατέχουν θα ενεργοποιήσει την αναμονή ώρα της επιλογής. Η προεπιλογή είναι 360 δευτερόλεπτα. + +
+
+
+ Κρατήστε Ώρα Επιλογή Επέκταση - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε ΕΠΕΚΤΑΣΗ, αυτή είναι η επέκταση dialplan ότι η πρόσκληση θα σταλεί στο εάν ο εκτιμώμενος χρόνος κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. + +
+
+
+ Κρατήστε Ώρα Επιλογή Τηλεφωνητής - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε τηλεφωνητή, αυτή είναι η θέση τηλεφωνητή ότι η πρόσκληση θα σταλεί στο εάν ο εκτιμώμενος χρόνος κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. + +
+
+
+ Κρατήστε Ώρα Επιλογή Μεταφορά σε ομάδα - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε IN_GROUP, αυτή είναι η ομάδα που την εισερχόμενη κλήση θα αποσταλεί στο εάν ο εκτιμώμενος χρόνος αναμονή υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. + +
+
+
+ Κρατήστε Ώρα Επιλογή αρχείου Callback - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε CALLERID_CALLBACK, αυτό είναι το όνομα του αρχείου εντολών που έπαιξε πριν από την κλήση καταγράφεται ως μια νέα πρωτοβουλία στον κατάλογο ID που καθορίζονται κατωτέρω, εάν η εκτιμώμενη κατέχει υπερβαίνει το χρόνο Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. + +
+
+
+ Κρατήστε Ώρα Επιλογή Callback Κατάλογος ID - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε CALLERID_CALLBACK, αυτός είναι ο Κατάλογος ID η κλήση προστίθεται ως μια νέα πρωτοβουλία, αν το εκτιμώμενο χρόνο κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα. + +
+
+
+ Agent Alert Filename - Το αρχείο ήχου για να παίξουν σε έναν πράκτορα να ανακοινώσει ότι η πρόσκληση έρχεται να το πρακτορείο. Για να μη χρησιμοποιήσετε αυτή τη λειτουργία που αυτή να Χ. Default είναι ding. + +
+
+
+ Αγρυπνη καθυστέρηση πρακτόρων - το χρονικό διάστημα στα χιλιοστάτου δευτερολέπτου για να περιμένει πρίν στέλνει την κλήση στονπράκτορα μετά από να παίξει την επάνω άγρυπνη επέκτασηπρακτόρων. Η προεπιλογή είναι 1000. + +
+
+
+ Ομάδα μεταφοράς προεπιλογής - αυτός ο τομέας είναι η-ΟΜΑΔΑπροεπιλογής που θα επιλεχτεί αυτόματα όταν πηγαίνει ο πράκτοραςστο πλαίσιο μεταφορά-διασκέψεων στη διεπαφή πρακτόρων τους. + +
+
+
+ -Στην ομάδα Καταγραφή Παράκαμψη - Το πεδίο αυτό επιτρέπει την πρωταρχική της εκστρατείας πρόσκληση εγγραφής ρύθμιση. Η ρύθμιση αυτή μπορεί να παρακαμφθεί από την καταγραφή vicidial_user υπερισχύει ρύθμιση. DISABLED δεν θα υπερισχύσει του εκστρατεία καταγραφής ρύθμιση. ΠΟΤΕ θα απενεργοποιήσει την εγγραφή για τον πελάτη. ONDEMAND είναι η προεπιλεγμένη και επιτρέπει στον αντιπρόσωπο να ξεκινήσετε και να σταματήσετε την εγγραφή, όπως απαιτείται. ALLCALLS θα αρχίσει η εγγραφή του υπολογιστή-πελάτη κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα. ALLFORCE θα αρχίσει η εγγραφή του υπολογιστή-πελάτη κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα που ο πράκτορας δεν την επιλογή για να σταματήσει η εγγραφή. + +
+
+
+ -Στην ομάδα αρχείου Καταγραφή - Το πεδίο αυτό θα αντικαταστήσει το Εκστρατεία Καταγραφή Filenaming σύστημα εάν δεν έχει οριστεί σε ΚΑΝΕΝΑ. Οι μεταβλητές που επιτρέπονται είναι CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH ΠΡΑΚΤΟΡΑ. Η προεπιλογή είναι FULLDATE_ΧΕΙΡΙΣΤΗΣκαι θα μοιάζει κάπως έτσι 20051020-103108_6666. Ένα άλλο παράδειγμα είναι CAMPAIGN_TINYDATE_CUSTPHONE που θα μοιάζει κάπως έτσι TESTCAMP_51020103108_3125551212. 50 char max. Προεπιλεγμένο είναι ΚΑΝΕΝΑ. + + 0) + { + ?> +
+
+
+ QC Enabled - Η ρύθμιση αυτού του τομέα να Y επιτρέπει τον παράγοντα Ποιοτικός Έλεγχος χαρακτηριστικά στην εργασία. Προεπιλεγμένο είναι Ν. + +
+
+
+ QC καθεστώτων - Η περιοχή αυτή είναι που θα επιλέξετε το οποίο οδηγεί των καθεστώτων θα πρέπει να φύγει πάνω από το σύστημα, QC. Τοποθετήστε ένα δίπλα στο ελέγξτε την κατάσταση που θέλετε, QC για την αναθεώρηση. + +
+
+
+ QC Shift - Αυτό είναι το χρονοδιάγραμμα μετάβασης που χρησιμοποιούνται για την έλξη, QC αρχεία για μια inbound_group. Οι μέρες της εβδομάδας αγνοούνται για αυτές τις λειτουργίες. + +
+
+
+ QC Get Record Launch- Αυτό επιτρέπει σε μια από τις ακόλουθες δράσεις, το οποίο θα ενεργοποιείται σε ένα QC πράκτορας που λαμβάνει ένα νέο ρεκόρ. + +
+
+
+ QC Δείτε Καταγραφή - Αυτό επιτρέπει την καταγραφή που μπορεί να συνδέεται με την εγγραφή QC να εμφανίζονται στην οθόνη QC πράκτορα. + +
+
+
+ QC WebForm Διεύθυνση - Αυτό είναι το ότι μια διεύθυνση ιστοσελίδας, QC, μπορεί να πάει στο γραφείο, όταν κάνετε κλικ στο σύνδεσμο WEBFORM στην οθόνη QC. + +
+
+
+ QC Σενάριο - Αυτό είναι το σενάριο που μπορεί να χρησιμοποιηθεί από τους πράκτορες, QC στην SCRIPT καρτέλα στην οθόνη, QC. + + +
+
+
+ Κρατήστε Ανάκληση Μεταφορά σε ομάδα - Σε περίπτωση που ο πελάτης ζητά πίσω σε αυτή την ομάδα-σε περισσότερες από μία φορές και αυτό δεν έχει οριστεί σε ΚΑΝΕΝΑ, τότε η κλήση θα αποστέλλονται αυτόματα στην επιλεγμένη ομάδα σε αυτό το πεδίο . Προεπιλεγμένο είναι ΚΑΝΕΝΑ. + +
+
+
+ Δεν Υστέρηση Call διαδρομή - Η ρύθμιση αυτής να Y θα άρουν όλες τις φορές περιμένουμε και ήχου προτροπές και επιχειρείτε να στείλετε την πρόσκληση δικαίωμα ενός πράκτορα. Δεν υπερισχύει ευπρόσδεκτο μήνυμα ή σε αναμονή εντολών ρυθμίσεις. Προεπιλεγμένο είναι Ν. + +
+
+
+ Στατιστικά Ποσοστό ζητεί απάντηση εντός Χ δευτερόλεπτα - Αυτό το πεδίο σας επιτρέπει να ορίσετε τον αριθμό των δευτερολέπτων που κατέχουν την απεικόνιση σε πραγματικό χρόνο stats θα χρησιμοποιήσουν για να υπολογίσουν το ποσοστό των κλήσεων απαντά ότι απαντήθηκαν εντός Χ αριθμό των δευτερολέπτων σε αναμονή. + +
+
+
+ Ξεκινήστε Call URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank. + +
+
+
+ Καλέστε dispo URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank. + +
+
+
+ Προεπιλεγμένη ομάδα Γνωστός - Αν έχετε τη δυνατότητα Ομάδα Γνωστός για την εκστρατεία ότι ο αντιπρόσωπος είναι συνδεδεμένοι στο τότε αυτή είναι η ομάδα που έχει επιλεγεί άλλως πρώτα από προεπιλογή για μια κλήση που προέρχεται από αυτή την ομάδα, όταν ο εισερχόμενος πράκτορας επιλέγει να χρησιμοποιήσετε μια ομάδα Γνωστός για εξερχόμενες κλήσης εγχειρίδιο. Προεπιλεγμένο είναι ΚΑΝΕΝΑ ή κενό. + + + + + +



+ + VICIDIAL_Εισερχόμενα_DIDS ΠΙΝΑΚΑΣ

+
+
+
+ DID Επέκταση - Αυτό είναι το πλήθος, την παράταση ή DID που θα ενεργοποιήσουν την παρούσα θέση και που θα σας διαδρομή, και εντός του συστήματος με τη βοήθεια αυτής της λειτουργίας. Υπάρχει reserved προεπιλογή DID που μπορείτε να χρησιμοποιήσετε το οποίο είναι μόνο η λέξη-default-χωρίς παύλες, ότι θα μπορείτε να στείλετε ΑΛΛΟΣ κάθε κλήση που δεν ταιριάζει με οποιαδήποτε άλλα υφιστάμενα πρότυπα στην προεπιλεγμένη DID. + +
+
+
+ DID Περιγραφή - Αυτή είναι η περιγραφή της DID δρομολόγησης εισόδου. + +
+
+
+ DID Ενεργό - Αυτό το πεδίο όπου το σύνολο DID εισόδου σε ενεργό ή μη. Προεπιλεγμένο είναι Y. + +
+
+
+ DID Route - Αυτό το είδος της διαδρομής που μπορείτε να ρυθμίσετε το DID χρήση. Παράταση θα αποστείλει τις κλήσεις προς την επέκταση τέθηκε κάτω, τηλεφωνητή θα αποστείλει κλήσεις απευθείας στον τηλεφωνητή τέθηκε κάτω από το πλαίσιο, ο πράκτορας θα αποστείλει κλήσεις σε VICIDIAL παράγοντα όταν είναι συνδεδεμένοι, τηλέφωνο θα στείλει την κλήση σε τηλέφωνα εισόδου επιλεγεί στη συνέχεια, θα IN_GROUP αποστέλλουν κλήσεις απευθείας από την καθορισμένη εισερχόμενα ομάδα. Προεπιλεγμένο είναι παράταση. CALLMENU θα αποστείλει την πρόσκληση προς την πρόσκληση που ορίζεται Μενού. + +
+
+
+ Επέκταση - Εάν είναι επιλεγμένο παράταση ως τις DID διαδρομή, τότε αυτή είναι η επέκταση dialplan που ζητά θα αποσταλεί στο. Προεπιλεγμένο είναι 9998811112, της μη παροχής υπηρεσιών. + +
+
+
+ Παράταση Πλαίσιο - Εάν είναι επιλεγμένο παράταση ως τις DID διαδρομή, τότε αυτό είναι το πλαίσιο dialplan ότι οι κλήσεις θα σταλούν σε. Προεπιλογή είναι προεπιλογή. + +
+
+
+ Τηλεφωνητής Πλαίσιο - Τηλεφωνητής Εάν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η θέση τηλεφωνητή ότι οι κλήσεις που θα αποσταλεί στο. Προεπιλεγμένο είναι άδειο. + +
+
+
+ Τηλέφωνο Επέκταση - ΤΗΛΕΦΩΝΟΥ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το τηλέφωνο που καλεί επέκταση θα αποσταλεί στο. + +
+
+
+ Τηλέφωνο IP Διακομιστή - ΤΗΛΕΦΩΝΟΥ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το server IP για το τηλέφωνο που καλεί επέκταση θα σταλεί στο. + +
+
+
+ Καλέστε Μενού - Αν CALLMENU έχει επιλεγεί ως η DID διαδρομής, τότε αυτή είναι η πρόσκληση Μενού κλήσεις που θα σταλεί στο. + +
+
+
+ Χρήστης Agent - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το γραφείο που VICIDIAL κλήσεις θα σταλούν σε. + +
+
+
+ Χρήστης Unavailable Δράση - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομής, και ο χρήστης είναι συνδεδεμένος ή δεν υπάρχουν, τότε αυτή είναι η διαδρομή που θα λάβουν τις προσκλήσεις. + +
+
+
+ Ρυθμίσεις χρήστη Οδός-Στην Ομάδα - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η ομάδα-Στο ότι θα πρέπει να χρησιμοποιείται για την ουρά ρυθμίσεις του καλούντος είναι σε αναμονή για αποστολή προς τον πράκτορα. Προεπιλεγμένο είναι AGENTDIRECT. + +
+
+
+ Στην Ομάδα-ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η ομάδα-Στο ότι οι κλήσεις που θα σταλεί στο. + +
+
+
+ In-Group Call Handle Method - Αν IN_GROUP έχει επιλεγεί ως η DID διαδρομής, τότε αυτή είναι η επεξεργασία κλήσεων μέθοδος που χρησιμοποιείται για αυτές τις κλήσεις. CID θα προσθέσει ένα νέο ρεκόρ με αποτέλεσμα κάθε κλήση με το CallerID όπως ο αριθμός τηλεφώνου, CIDLOOKUP θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε ολόκληρο το σύστημα, CIDLOOKUPRL θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε μία μόνο που περιλαμβάνεται στον κατάλογο , CIDLOOKUPRC θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε όλες τις λίστες που ανήκουν στη συγκεκριμένη εκστρατεία, ΠΙΟ ΚΟΝΤΑ έχει καθοριστεί για VICIDIAL Closer κλήσεις, ANI θα προσθέσει ένα νέο ρεκόρ με αποτέλεσμα κάθε κλήση με την ANI όπως ο αριθμός τηλεφώνου, ANILOOKUP θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από την ANI σε ολόκληρο το σύστημα, ANILOOKUPRL θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από την ANI σε μία μόνο που περιλαμβάνεται στον κατάλογο, θα XDIGITID προτροπή του καλούντος για ένα Χ οκταψήφιο κωδικό πριν από την κλήση θα τεθεί σε την ουρά, VIDPROMPT θα οδηγήσουν το καλούντος για τον αριθμό ταυτότητας τους και θα δημιουργήσει ένα νέο ρεκόρ με αποτέλεσμα η CallerID όπως τον αριθμό τηλεφώνου και το αναγνωριστικό ως Vendor ID, VIDPROMPTLOOKUP θα προσπαθήσει να την αναζήτηση ταυτότητας σε ολόκληρο το σύστημα, VIDPROMPTLOOKUPRL θα επιχειρήσει να αναζήτησης του προμηθευτή, το αναγνωριστικό της ταυτότητας σε ένα μόνο που περιλαμβάνεται στον κατάλογο, VIDPROMPTLOOKUPRC θα προσπαθήσουν να τον πωλητή αναζήτηση ταυτότητας από το αναγνωριστικό σε όλες τις λίστες που ανήκουν στη συγκεκριμένη καμπάνια. Προεπιλογή είναι CID. + +
+
+
+ Στην Ομάδα-Agent Search Μέθοδος - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η μέθοδος αναζήτησης παράγοντας που πρέπει να χρησιμοποιούνται από τα εισερχόμενα ομάδα, LO είναι Load-Balanced-Υπερχείλιση και θα προσπαθήσει να στείλει την πρόσκληση σε έναν πράκτορα για τον τοπικό διακομιστή πριν δοκιμάσετε να το στείλετε σε έναν πράκτορα σε άλλο διακομιστή, LB Load είναι ισορροπημένη και θα προσπαθήσει να στείλει την πρόσκληση για την επόμενη πράκτορα θέμα αυτό δεν είναι για server, SO-Server είναι το μόνο και θα μόνο να προσπαθήσουμε να στείλουμε τις κλήσεις σε παράγοντες σχετικά με το διακομιστή ότι η πρόσκληση ήταν για. Προεπιλεγμένο είναι LB. + +
+
+
+ -Στην ομάδα Κατάλογος ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτός είναι ο Κατάλογος ID που οδηγεί μπορεί να ερευνάται και ότι οδηγεί θα προστεθούν στο αν χρειάζεται. + +
+
+
+ -Στην ομάδα καμπάνιας ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το ID Εκστρατείας που οδηγεί μπορεί να αναζητήσει σε περίπτωση που η πρόσκληση χειριστεί μέθοδος CIDLOOKUPRC. + +
+
+
+ -Στην ομάδα Τηλέφωνο κώδικα - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το τηλέφωνο κώδικα που χρησιμοποιείται εάν μια νέα πρωτοβουλία δημιουργείται. + + + + +



+ + VICIDIAL_CALL MENU ΠΙΝΑΚΑΣ

+
+
+ Μενού ID - Αυτό είναι το αναγνωριστικό για αυτό το βήμα του μενού κλήση. Αυτό επίσης θα εμφανίζεται ως το πλαίσιο που χρησιμοποιείται στην dialplan για την παρούσα πρόσκληση μενού. + +
+
+
+ Όνομα μενού - Το πεδίο αυτό είναι το περιγραφικό όνομα για το μενού κλήση. + +
+
+
+ Μενού Προτροπή - Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου εντολών για να παίξει στην αρχή αυτού του μενού. Μπορείτε να εισαγάγετε πολλές propmts σε αυτόν τον τομέα και το άλλο από την άμεση τομείς χωρίζοντάς τους με ένα χαρακτήρα σωλήνα. + +
+
+
+ Μενού Timeout - Το πεδίο αυτό είναι όπου μπορείτε να ρυθμίσετε το χρονικό όριο σε δευτερόλεπτα ότι το μενού θα περιμένει για τον καλούντα να εισέλθει σε μια επιλογή DTMF. Ρύθμιση αυτό τον τομέα με μηδέν 0 σημαίνει ότι δεν θα υπάρχει χρόνος αναμονής μετά την προτροπή παίζεται. + +
+
+
+ Μενού Timeout Προτροπή - Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου προτροπή να παίξει όταν το χρονικό όριο έχει επιτευχθεί. Προεπιλογή είναι ΚΑΝΕΝΑ να παίξει δεν ήχου σε timeout. + +
+
+
+ Μενού Άκυρα Προτροπή - Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου προτροπή να παίξει όταν ο καλών έχει επιλέξει μια άκυρη επιλογή. Προεπιλογή είναι ΚΑΝΕΝΑ να παίξει δεν ήχου σε άκυρο. + +
+
+
+ Επαναλάβετε μενού - Αυτό το πεδίο όπου θα καθορίζουν τον αριθμό των φορών που το μενού θα παίξει μετά από την πρώτη στιγμή, αν δεν είναι έγκυρη επιλογή που έγινε από τον καλούντα. Προεπιλογή είναι 1 για να επαναλάβετε το μενού φορά. + +
+
+
+ Μενού Ώρα Check - Το πεδίο αυτό είναι όπου μπορείτε να επιλέξετε αν θα περιορίσει την πρόσκληση Μενού πρόσβαση στις συγκεκριμένες ώρες που έχει συσταθεί στο επιλεγμένο χρόνο εφημερίας. Εάν το χρόνο εφημερίας είναι κενή, αυτή η ρύθμιση θα πρέπει να αγνοηθεί. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες. + +
+
+
+ ID Χρόνου Κλήσης - Αυτή είναι η πρόσκληση Ώρα αναγνωριστικό που θα χρησιμοποιηθούν για να περιορίσεις την καλώντας φορές αν το μενού Ώρα Check επιλογή είναι ενεργοποιημένη. + +
+
+
+ Track καλεί σε πραγματικό χρόνο έκθεση - Το πεδίο αυτό είναι όπου μπορείτε να επιλέξετε αν θέλετε την πρόσκληση να παρακολουθούνται σε πραγματικό χρόνο οθόνη ως μια εισερχόμενη κλήση τύπου IVR. Προεπιλογή είναι 1 για την ενεργό. + +
+
+
+ Tracking Group - Αυτή είναι η ταυτότητα που μπορείτε να χρησιμοποιήσετε για να παρακολουθείτε τις κλήσεις προς την παρούσα πρόσκληση Μενού όταν εξετάζεται η IVR έκθεση. Ο κατάλογος περιλαμβάνει CALLMENU ως προεπιλογή, καθώς και όλων των In-Ομάδες. + +
+
+
+ Επιλογή Value - Αυτό το πεδίο όπου θα καθορίσει την επιλογή μενού, είναι δυνατές επιλογές: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. Η ειδική TIMECHECK επιλογή μπορεί να χρησιμοποιηθεί μόνο αν έχετε Μενού Ώρα Check ενεργοποιημένη και υπάρχει μια πρόσκληση που έχει ορισθεί για το μενού. Για να διαγράψετε μια επιλογή, μόνο που η διαδρομή για να αφαιρέσετε και η επιλογή θα διαγραφεί όταν κάνετε κλικ στο κουμπί ΑΠΟΣΤΟΛΗ. + +
+
+
+ Επιλογή Περιγραφή - Το πεδίο αυτό είναι όπου μπορείτε να περιγράψετε την επιλογή, αυτή η περιγραφή θα πρέπει να μπει στο dialplan ως ένα σχόλιο πάνω από την επιλογή. + +
+
+
+ Επιλογή διαδρομής - Αυτό το μενού περιέχει επιλογές για το πού να στείλει την κλήση, εφόσον επιλέγεται αυτή η δυνατότητα: CALLMENU, ingroup, DID, hangup, ΕΠΕΚΤΑΣΗ, ΤΗΛΕΦΩΝΟ. Για CALLMENU, η Route Αξία θα πρέπει να είναι το μενού αναγνωριστικό της πρόσκλησης μενού που θέλετε να αποσταλεί κλήση. Για ingroup, την ομάδα που θέλετε να καλέσετε να αποσταλούν με τις ανάγκες που πρέπει να επιλεγεί, καθώς και τις άλλες 5 επιλογές που πρέπει να τεθούν σε σωστή πορεία μιας κλήσης προς έναν Inbound ομάδα. Για DID, η Route Αξία πρέπει να είναι η DID πρότυπο που θέλετε να στείλετε την πρόσκληση με. Για hangup, η Route αξία μπορεί να είναι το όνομα ενός αρχείου ήχου για να παίξει πριν από την ανάρτηση της πρόσκλησης. Για την επέκταση, την αξία διαδρομής, πρέπει να το dialplan επέκταση που θέλετε να στείλετε την πρόσκληση προς, και η Route Αξία πλαίσιο είναι το πλαίσιο ότι η επέκταση βρίσκεται σε, αν μείνει κενό το πλαίσιο θα προεπιλογή για προεπιλογή. Για PHONE, η Route Αξία πρέπει να είναι η τιμή σύνδεσης του τηλεφώνου για την έναρξη τηλέφωνα που θέλετε να στείλετε την πρόσκληση με. Για ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ, η Route Αξία πρέπει να είναι η τηλεφωνητή αριθμό κουτί, το διαθέσιμο mesage θα παίξει. Για AGI, η Route Αξία πρέπει να είναι το σενάριο AGI και κάθε αξίες που πρέπει να περάσει σε αυτό. + +
+
+
+ Επιλογή Route Αξία - Αυτό το πεδίο όπου θα εισάγετε την τιμή που καθορίζει εάν στην επιλεγμένη επιλογή Route ότι η πρόσκληση είναι να κατευθυνθεί προς. + +
+
+
+ Επιλογή Route Αξία Πλαίσιο - Το πεδίο αυτό είναι προαιρετικό και χρησιμοποιείται μόνο για Διαδρομές δυνατότητα επέκτασης του πεδίου. + +
+
+
+ Custom Dilplan Έναρξη - Αυτό το πεδίο σας επιτρέπει να εισέρχονται σε κάθε dialplan στοιχεία που θέλετε για την πρόσκληση Μενού. + + + + + +



+ + VICIDIAL_REMOTE_AGENTS ΠΙΝΑΚΑΣ

+
+
+ Αρχή ID Χρήστη - Αυτό είναι η αρχή του ID Χρήστη που χρησιοποιείται όταν οι καταχωρήσεις των απομακρυσμένων χρηστών παρεμβάλλονται στο σύστημα. Εάν ο αριθμός των γραμμών είναι μεγαλύτερος από 1, αυτός ο αριθμός αυξάνει κατά ένα μέχρι κάθε γραμμή να έχει μία καταχώρηση. Επιβεβαιώστε, ότι δημιουργήσατε ένα νέο VICIDIAL λογαριασμό η με επίπεο χρήσης 4 ή μεγαλύτερο, εάν θέλετε να μπορεί να χρησιμοποιήσει την σελίδα vdremote για απομακρυσμένη πρόσβαση του λογαριασμού του. + +
+
+
+ Αριθμός Γραμμών - Αυτό ορίζει πόσες καταχωρήσεις απομακρυσμένων χρηστών το σύστημα δημιουρ, και καθορίζει πόσες γραμμές μπορεί με ασφάλεια να στείλει στον αριθμό παρακάτω. + +
+
+
+ IP Διακομιστή - Μία καταχώρηση απομακρυσμένου χρήστη είναι μόνο καλό για ένα συγκεκριμένο διακομιστή, εδώ επιλέγετε τον διακομιστή που ανήκει. + +
+
+
+ Εξωτερική Τηλ.Σύνδεση - Αυτός είναι ο αριθμός που θέλετε οι κλήσεις να προωθούνται. Επιβεβαιώστε ότι είναι ένας πλήρης αριθμός από το σχέδιο κλήεων και εάν θέλετε ένα 9 στην αρχή το βάζετε εδώ. Κάντε μία δοκιμή καλώντας αυτόν τον αριθμό από ένα τηλέφωνο του συστήματος. + +
+
+
+ Κτάσταση - Εδώ μπορείτε να θέσετε τον απομακρυσμένο χρήστη σε ενεργό και μη ενεργό. Μόλις ο χρήστης γίνει ενεργός το σύστημα μπορεί να στείλει κλήσεις σε αυτόν. Μπορεί να διαρκέσει μέχρι 30 δευτερόλεπτα μετά την αλλαγή της κατάστασης σε μη ενεργός, ώστε να σταματήσει να δέχεται κ. + +
+
+
+ Εκστρατεία - Εδώ μπορείτε να επιλέξετε την εκστρατεία όπου οι απομακρυσμένοι χρήστες θα συνδεθούν. Για εισερχόμενες πρέπει να χρησιμοποιηθεί η εκστρατεία CLOSER και επιλέξτε τις εισερχόμενες εκστρατείες παρακάτω, από που θέλετε να λαμβάνεται τις κλήσεις. + +
+
+
+ Εισερχόμενες Ομάδες - Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία CLOSER. + + +



+ + VICIDIAL_CAMPAIGN_ΛΙΣΤΕΣ

+
+
+ Οι λίστες της εκστρατείας παρουσιάζονται εδώ, και εάν είναι ενεργές (Υ ή Ν) μπορείτε να πάτε στην οθόνη λίστας με το να πατήσετε στο ID λίστας, στην πρώτη στήλη. + + +



+ + VICIDIAL_CAMPAIGN_STATUSES ΠΙΝΑΚΑΣ

+
+
+ Με την χρήση προσαρμοσμένων καταστάσεων εκστρατείας, μπορείτε να έχετε καταστάσεις μόνο για συγκεκριμένες εκστρατείες. Η κατάσταση πρέπει να είναι 1-8 χαρακτήρες, η περιγραφή 2-30 χαρακτήρες και Επιλέξιμα καθορίζεται αν εμφανίζεται στο VICIDIAL ως τερματισμός. Ο τομέας χρησιμοποιείται κατά τον υπολογισμό του ποσοστούπτώσης, ή εγκαταλείπει το ποσοστό. Η ρύθμιση την στο Υ θαχρησιμοποιήσει αυτήν την θέση κατά υπολογισμό τωνανθρώπινος-απαντημένων κλήσεων. Η επιλογή κατηγορίας επιτρέπει σε σας για να ομαδοποιήσειδιάφορες θέσεις σε ένα catogy που μπορεί να χρησιμοποιηθεί γιατη στατιστική ανάλυση. + + + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYS ΠΙΝΑΚΑΣ

+
+
+ Με την χρήση προσαρμοσμένων κλειδιών εκστρατείας, οι χρήστες που χρησιμοποιούν την εφαρμογή vicidial μπορούν να κλείσουν και να τερματίσουν την κλήση, με ένα μόνο πάτημα πλήκτρου. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. + + + + + +



+ + VICIDIAL_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. + + + + + +



+ + VICIDIAL ΑΥΤΟΜΑΤΕΣ ΘΈΣΕΙΣ ΠΙΝΑΚΩΝ ALT

+
+
+ Εάν ο αυτόματος τομέας σχηματισμού ALT-ARJCMOY' τίθεται,κατόπιν οι μόλυβδοι που είναι κάτω από αυτές τις αυτόματεςθέσεις πινάκων ALT θα σχηματίσουν το alt_phone και-ή τουςτομείς address3 τους αφότου τίθενται οποιεσδήποτε από αυτέςτις θέσεις κανένας-απάντησης. + + + + + +



+ + VICIDIAL ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ

+
+
+ _ εάν ο πράκτορας διακοπή κωδικοποιώ ενεργός τομέας είμαι θέτωνα ενεργός έπειτα ο πράκτορας θα είμαι σε θέση να επι:λέγω απόαυτός διακοπή κώδικας όταν αυτός χτυπώ ο ΔΙΑΚΟΠΉ κουμπί τουςοθόνη. Αυτό το στοιχείο αποθηκεύεται έπειτα στο vicidialκούτσουρο πρακτόρων. Ο κώδικας μικρής διακοπής πρέπει ναπεριέχει μόνο τα γράμματα και τους αριθμούς και να είναιλιγότερο από 7 χαρακτήρες μακροχρόνιοι. Το όνομα κώδικα μικρήςδιακοπής δεν μπορεί να είναι πλέον από 30 χαρακτήρες. + + + + + +



+ + VICIDIAL_USER_GROUPS ΠΙΝΑΚΑΣ

+
+
+ Ομάδα Χρήστη - Αυτό είναι το σύντομο όνομα της Vicidial ομάδας χρήστη, πρσπαθήστε να μην χρησιμοποιήσετε κενά ή στίξεις για αυτό το πεδίο. Από 2 μέχρι 20 χαρακτήρες. + +
+
+
+ Ονομα Ομάδας- Αυτή είναι η περιγραφή της vicidial ομάδας χρήστη μέχρι 40 χαρακτήρες. + +
+
+
+ ΔύναμηΏρα ρολόι Είσοδος - Αυτή η επιλογή σας επιτρέπει να μην επιτρέπει να συνδεθείτε με έναν πράκτορα στην VICIDIAL διεπαφή πράκτορα, εάν δεν έχουν συνδεθεί στο timeclock. Προεπιλεγμένο είναι Ν. Υπάρχει η δυνατότητα να εξαιρούν admin χρήστες, 8 και 9 επίπεδα. + +
+
+
+ Shift εκτέλεση - Η ρύθμιση αυτή σας επιτρέπει να περιορίσετε πράκτορα συνδέσεις με βάση τις αλλαγές που έχουν επιλεγεί. OFF δεν θα επιβάλει σε όλες τις βάρδιες. START θα επιβάλει μόνο το χρόνο σύνδεσης, αλλά δεν θα επηρεάσει έναν πράκτορα που εκτελεί τους πάνω μετατόπιση του χρόνου και αν είναι ήδη συνδεδεμένος in. ALL θα επιβάλλει μετατόπιση χρόνος έναρξης και θα συνδεθείτε ορίζονται μετά από έναν πράκτορα που τρέχουν πάνω από το τέλος του χρόνου τους βάρδια. Προεπιλεγμένο είναι OFF. + +
+
+
+ Ομάδα Βάρδιες - Αυτό είναι ένα επιλέξιμο λίστα των βαρδιών που μπορούν να περιορίσουν το χρόνο παράγοντες σύνδεσης, για το σύστημα. + +
+
+
+ Εκστρατείες - αυτό είναι ένας επιλέξιμος κατάλογος εκστρατειώνστον οποίο τα μέλη αυτής της ομάδας χρηστών μπορούν νασυνδεθούν. Η επιλογή όλος-ΕΚΣΤΡΑΤΕΙΩΝ επιτρέπει στους χρήστες σεαυτήν την ομάδα για να δει και να συνδεθεί σε οποιαδήποτεεκστρατεία στο σύστημα. + +
+
+
+ Agent Κατάσταση θέασης Ομάδες - Αυτή είναι μια λίστα επιλογής των χρηστών Ομάδες και τις λειτουργίες του χρήστη με το οποίο τα μέλη της ομάδας αυτής ο χρήστης μπορεί να δείτε την κατάσταση καθώς και κλήσεις προς τη μεταφορά στο εσωτερικό της οθόνης πράκτορα. Η ALL-ΟΜΑΔΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα για να δείτε και τη μεταφορά κλήσεων για κάθε χρήστη του συστήματος. Η ΕΚΣΤΡΑΤΕΙΑ-ΠΡΑΚΤΟΡΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα για να δείτε και να μεταβιβάσει τις κλήσεις σε κάθε χρήστη στην εκστρατεία που είναι συνδεδεμένοι στο. + +
+
+
+ Agent Κατάσταση Προβολή Ώρα - Αυτή η επιλογή καθορίζει αν ο αντιπρόσωπος θα δείτε το ποσό του χρόνου που οι χρήστες στην πλαϊνή μπάρα πράκτορας τους έχουν στην τρέχουσα κατάστασή τους. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες ή δεν. + + 0) + { + ?> +
+
+
+ QC Επιτρέπονται Καμπάνιες - Αυτό είναι ένα επιλέξιμο κατάλογο των καμπάνιες που τα μέλη αυτής της ομάδας χρηστών θα είναι σε θέση να QC. Η ALL-CAMPAIGNS επιλογή επιτρέπει στους χρήστες αυτής της ομάδας να QC οποιαδήποτε εκστρατεία για το σύστημα. + +
+
+
+ QC Επιτρέπονται Inbound Ομάδες - Αυτό είναι ένα επιλέξιμο λίστα των εισερχόμενων ομάδες που τα μέλη αυτής της ομάδας χρηστών θα είναι σε θέση να QC. Η ALL-ΟΜΑΔΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα χρηστών να QC οποιαδήποτε εισερχόμενα ομάδας για το σύστημα. + + + + + +



+ + VICIDIAL_ΒΟΗΘΟΙ ΠΙΝΑΚΑΣ

+
+
+ Ταυτότητα Βοηθού - αυτό είναι το σύντομο όνομα ενός Βοπηθού. Πρέπει να είναι ένα μοναδικό προσδιοριστικό. Προσπαθήστε να μην χρησιμοποιήσετε οποιαδήποτε διαστήμα ή στίξη για τους 10 χαρακτήρες αυτού του πεδίου, ελάχιστο 2 χαρακτήρων. + +
+
+ Όνομα Βοηθού - αυτός είναι ο τίτλος ενός Βοηθού. Αυτή είναι μια σύντομη περίληψη. 2-50 χαρακτήρες. Δεν πρέπει να υπάρξουν διάστηματα ή στίξεις σε αυτό το πεδίο. + +
+
+ Σχόλια Βοηθού - εδώ μπορείτε να τοποθετήσετε τα σχόλια για έναν Βοηθό. 2-255 χαρακτήρες . + +
+
+ Κείμενο χειρόγραφου - 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, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

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?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Ενεργός - αυτό καθορίζει εάν αυτός ο οδηγός μπορεί να επιλεχτεί για να χρησιμοποιηθεί από μια εκστρατεία. + + + + + + 0) + { + ?> +



+ + VICIDIAL_LEAD_ΦΙΛΤΡΑ ΠΙΝΑΚΑΣ

+
+
+ ID Φίλτρου - Αυτό είναι το σύντομο όνομα ενός Φίλτρου Οδηγού. Πρέπει να είναι ένας μοναδικός κωδικός. Μην χρησιμοποιήσετε κενά ή στίξη για αυτό το πεδίο. Χαρακτήρες 2 με 10. + +
+
+ Ονομα Φίλτρου - Αυτό είναι ένα πιο περιγραφικό όνομα για το Φίλτρο. Είναι μία σύντομη περιγρφή του φίλτρου. Χαρακτήρες 2 με 30. + +
+
+ Σχόλια Φίλτρου - Εδώ μπορείτε σχολιάσετε το φίλτρο. Χαρακτήρες 2 με 255. + +
+
+ SQL Φίλτρου - Εδώ μπορείτε να ορίσετε SQL ερώτημα για το φίλτρο. Μην ξεκινήσετε ή τελειώσετε με ένα AND, αυτό θα γίνει αυτόματα από το hopper. Ένα παράδειγμα είναι- called_count > 4 and called_count < 8 -. + + + + + +



+ + VICIDIAL_ΧΡΟΝΟΙ ΚΛΗΣΕΩΝ ΠΙΝΑΚΑΣ

+
+
+ ID Χρόνου Κλήσης - Αυτό είναι το σύντομο όνομα του Ορισμού Χρόνου Κλήσης. Πρέπει να είναι ένα μοναδικό στοιχείο. Μην χρησιμοποιηθούν διαστήματα ή στίξεις. 2-10 χαρατήρες. + +
+
+ Ονομα Χρόνου Κλήσης - Αυτό είναι ένα πιο περιγραφικό όνομα του Ορισμού Χρόνου Κλήσης. Είναι μία σύντομη περιγραφή. 2-30 χαρακτήρεςΣχόλια Χρόνου Κλήσης - 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. + +
+
+ Σχόλια Χρόνου Κλήσης - 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. + +
+
+ Προκαθορισμένοι Χρόνοι Εκκίνησης και Παύσης - Αυτός είναι ο προκαορισμένος χρόνος όπου θα επιτρέπετε οι κλήσεις εάν δεν έχει οριστεί ο χρόνος εκκίνησης της ημέρας-της-εβδομάδας. 0 είναι μεσάνυχτα. Εάν δεν θέλετε καμία κλήση θέστε αυτό το πεδίο σε 2400 και το προκαθορισμένο χρόνο Παύσης σε 2400. Για να επιτρέψετε την 24ωρη κλήση την ημέρα θέστε σε 0 τον χρόνο εκκίνησης και σε 2400 τον χρόνο παύσης +. + +
+
+ Εβδομαδιαίοι Χρόνοι Εκκίνησης και Παύσης - Αυτοί είναι προσαρμόσιμοι χρόνοι ανά ημέρα για τον ορισμό χρόνων κλήσεων. + +
+
+ Ορισμοί Χρόνων Κλήσεων Καταστάσεων - Είναι η λίστα συγκεκριμένων Ορισμών Χρόνων Κλήσεων Καταστάσεων. + +
+
+ Κατάσταση Χρόνου Κλήσης Κατάστασης - Αυτό είναι ο δύο γραμμάτων κωδικός για την κατάσταση όπου ο ορισμός χρόνου κλήης είναι για. Θα πρέπει και οι Οδηγοί της εκστρατείας να έχουν δύο γράμματα κωδικούς κατάστασης για τον χρόνο κλήσης κατάστασης. + + + + +



+ + VICIDIAL_SHIFTS ΠΙΝΑΚΑΣ

+
+
+ ID Shift - Αυτή είναι η σύντομη ονομασία της Vicidial Shift Ορισμός. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε τυχόν διαστήματα ή σημεία στίξης για αυτόν τον τομέα. max 20 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Shift Όνομα - Αυτό είναι ένα πιο περιγραφικό όνομα του Shift Ορισμός. Αυτή είναι μια σύντομη περίληψη του Shift ορισμό. το πολύ 50 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Start Time Shift - Αυτή είναι η στιγμή που αρχίζει η εκστρατεία στροφή. Πρέπει να είναι μόνο αριθμοί, 9.30 π.μ. και 0930 θα είναι 5:00 μμ θα είναι 1.700. + +
+
+ Shift Μήκος - Αυτό είναι το χρόνο σε ώρες και τα λεπτά που διαρκεί η εκστρατεία στροφή. 8 ώρα θα είναι 08:00 και 7 ώρες και 30 λεπτά θα είναι 07:30. + +
+
+ Shift Καθημερινά - Στην ενότητα αυτή θα πρέπει να επιλέξετε τις μέρες την εβδομάδα ότι αυτή η στροφή είναι ενεργή. + + + + + +



+
+ Audio Store - Αυτό το βοηθητικό πρόγραμμα σας επιτρέπει να ανεβάσετε αρχεία ήχου με τον web server έτσι ώστε να μπορούν να διανέμονται σε όλες τις ViciDial διακομιστές σε ένα πολυ-cluster server. Μια σημαντική σημείωση, μόνο δύο τύπους αρχείων ήχου θα λειτουργήσει,. Wav τα αρχεία που είναι PCM 16bit και 8k. Αρχείων GSM που είναι 8bit 8k. Παρακαλώ βεβαιωθείτε ότι τα αρχεία σας μορφοποιηθεί σωστά πριν από την αποστολή τους εδώ. + + + +



+ + VICIDIAL_MUSIC_ON_HOLD ΠΙΝΑΚΑΣ

+
+
+ Music On Hold ID - Αυτή είναι η σύντομη ονομασία Music On Hold εισόδου. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε κενά ή σημεία στίξης για αυτό τον τομέα. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Music Hold On Όνομα - Αυτό είναι ένα πιο περιγραφικό όνομα του Music Hold On εισόδου. Αυτή είναι μια σύντομη περίληψη του Music On Hold πλαίσιο και θα δείχνει ένα σχόλιο στην MusicOnHold-vicidial.conf αρχείο. μεγ. 255 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Ενεργό - Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε το Music On Hold είσοδο στην ενεργό ή ανενεργό. Ανενεργό θα αφαιρέσει την είσοδο από το conf αρχεία. + +
+
+ Τυχαία σειρά - Αυτή η επιλογή σας επιτρέπει να ορίσετε την αναπαραγωγή των αρχείων ήχου σε τυχαία σειρά. Αν οριστεί σε Ν τότε ορίζεται η διάταξη θα πρέπει να χρησιμοποιείται. + +
+
+ Filename - Για να προσθέσετε ένα νέο αρχείο ήχου σε ένα Music On Hold καταχώρηση στο αρχείο πρέπει πρώτα να είναι στο κατάστημα ήχου, τότε μπορείτε να επιλέξετε το αρχείο και πατήστε Υποβολή για να το προσθέσετε στη λίστα αρχείο. Μουσική σε αναμονή ενημερώνεται μία φορά ανά λεπτό, εάν έχουν επέλθει αλλαγές. Τα αρχεία που δεν περιλαμβάνονται σε μουσική για την είσοδο κρίνει ότι η παρουσία τους στη μουσική για το φάκελο κατέχουν θα διαγραφούν. + + + + +



+ + VICIDIAL_TTS_PROMPTS ΠΙΝΑΚΑΣ

+
+
+ TTS ID - Αυτή είναι η σύντομη ονομασία μιας εισόδου TTS. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε κενά ή σημεία στίξης για αυτό τον τομέα. πολύ 50 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ TTS Όνομα - Αυτό είναι ένα πιο περιγραφικό όνομα της εισόδου TTS. Αυτή είναι μια σύντομη περίληψη του ορισμού TTS. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Ενεργό - Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε την είσοδο TTS με ενεργές ή αδρανείς. + +
+
+ TTS Κείμενο - Αυτό είναι το πραγματικό πεδίο Κείμενο Ομιλία δεδομένα τα οποία αποστέλλονται σε Cepstral για τη δημιουργία του αρχείου ήχου που μπορεί να διαδραματίσει στον πελάτη. μπορείτε να χρησιμοποιήσετε Σύνθεση Ομιλίας Markup Language-SSML-στον τομέα αυτό, για παράδειγμα,, <break time='1000ms'/> για δεύτερη 1 διάλειμμα. Μπορείτε επίσης να χρησιμοποιήσετε διάφορες μεταβλητές, όπως όνομα, επώνυμο και τίτλο που ViciDial μεταβλητές όπως κάνετε σε ένα Σενάριο: - Α - first_name - Β -. Εδώ είναι μια λίστα με τις διαθέσιμες μεταβλητές:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAIL ΠΙΝΑΚΑΣ

+
+
+ ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID - Αυτό είναι το αναγνωριστικό αριθμό όλων των αυτήν την ταχυδρομική θυρίδα. Αυτό δεν πρέπει να είναι ένα αντίγραφο μιας υπάρχουσας τηλεφωνητή ταυτότητας ή το φωνητικό ταχυδρομείο αναγνωριστικό του τηλεφώνου για το σύστημα, τουλάχιστον 2 χαρακτήρες. + +
+
+ Name - Αυτό είναι το όνομα που συνδέονται με αυτό το κουτί τηλεφωνητή. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Password - Αυτός είναι ο κωδικός που χρησιμοποιείται για να αποκτήσουν πρόσβαση στο τηλεφωνητή κουτί όταν κλήση, για να ελέγξετε μηνύματα έως 10 χαρακτήρες, τουλάχιστον 2 χαρακτήρες. + +
+
+ Ενεργό - Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε το τηλεφωνητή κουτί στην ενεργό ή ανενεργό. Εάν το πλαίσιο είναι ανενεργό δεν μπορείτε να αφήσετε μηνύματα για αυτό και δεν μπορείτε να ελέγξετε μηνύματα σε αυτό. + +
+
+ Αυτή η προαιρετική ρύθμιση επιτρέπει να έχετε το τηλεφωνητή μηνύματα που αποστέλλονται σε ένα λογαριασμό ηλεκτρονικού ταχυδρομείου, αν το σύστημά σας έχει ρυθμιστεί ώστε να στείλει email. Αν αυτό το πεδίο είναι κενό τότε δεν θα είναι τα μηνύματα που αποστέλλονται. + +
+
+ Διαγραφή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Μετά Email - Αυτή η προαιρετική ρύθμιση επιτρέπει να έχετε το τηλεφωνητή μηνύματα διαγράφονται από το σύστημα αφού έχουν ήδη αποσταλεί έξω. Προεπιλογή είναι N. + + + + + 0) + { + ?> + +



+ + ΛΕΙΤΟΥΡΓΙΑ ΕΙΣΑΓΩΓΗΣ ΛΙΣΤΑΣ

+
+
+ Ο βασικός βασισμένος στο WEB φορτωτής μολύβδου VICIDIALσχεδιάζεται απλά για να πάρει ένα αρχείο μολύβδου - μέχρι8MB στο μέγεθος - που είναι είτε ετικέττα είτε σωλήνας πουοριοθετείται και τον φορτώνει στον πίνακα vicidial_list. Οφορτωτής μολύβδου επιτρέπει τον τομέα επιλέγοντας και TXT -σαφές κείμενο, CSV - κόμμα χώρισε τις τιμές και XLS -σχήματα αρχείων Excel. Ο φορτωτής μολύβδου δεν κάνει τηνεπικύρωση στοιχείων, αλλά επιτρέπει σε σας για να ελέγξει για τααντίγραφα σε το, μέσα στην εκστρατεία ή μέσα το σε ολόκληροσύστημα. Επίσης, σιγουρευτείτε ότι έχετε δημιουργήσει τονκατάλογο ότι αυτοί οι μόλυβδοι πρόκειται να κάτω έτσι ώστεμπορείτε να τους χρησιμοποιήσετε. Εδώ είναι ένας κατάλογος τωντομέων στην κατάλληλη διαταγή τους για τα αρχεία μολύβδου: +
    +
  1. Κωδικός Οδηγού Προμηθευτού +
  2. Πηγαίος Κώδικας - εσωτερική χρήση μόνο από διαχειριστές και DBAs +
  3. ID λίστας - ο αριθμός λίστας που οι οδηγοί θα παρουσιαστούν κάτω από +
  4. Κωδικός τηλεφώνου - το πρόθεμα του τηλεφωνικού αριθμού (1 για ΗΠΑ, 01144 για Βρετανία κλπ) +
  5. Ο αριθμός τηλεφώνου - πρέπει να είναι τουλάχιστον 8 ψηφία +
  6. Τίτλος - ο τίτλος του πελάτη (κος. κα. κλπ) +
  7. Ονομα +
  8. Μεσαίο Αρχικό +
  9. Επίθετο +
  10. 1 Γραμμή Διεύθυνσης +
  11. 2 Γραμμή Διεύθυνσης +
  12. 3 Γραμμή Διεύθυνσης +
  13. Πόλη +
  14. Κράτος - περιορισμός σε 2 χαρακτήρες +
  15. Επαρχία +
  16. Ταχ.Κωδ. +
  17. Χώρα +
  18. Φύλο +
  19. Ημερ. Γέννησης +
  20. Εναλ. Αριθμός Τηλ. +
  21. Διεύθυνση Ηλεκτρ.Ταχυδρομείου +
  22. Φράση Ασφαλείας +
  23. Σχόλια +
+ +
ΣΗΜΕΙΩΣΕΙΣ: Η λειτουργία φορτωτών μολύβδου Excel επιτρέπεταιαπό μια σειρά χειρογράφων perl και πρέπει να έχει κατάλληλαδιαμορφωμένη/ένα αρχείο κ.λπ.../astguiclient.conf σε ισχύ στονκεντρικό υπολογιστή δικτύου. Επίσης, οι ενότητες ζευγών perlπρέπει να φορτωθούν για το για να εργαστούν επίσης - ολε-Storage_Lite και υπολογισμός με λογιστικό φύλλο(spreadsheet)- ParseExcel. Μπορείτε να ελέγξετε για τα λάθηχρόνου εκτέλεσης σε αυτοί με την εξέταση το αρχείο apache σαςerror_log. Επίσης, για τους ελέγχους διπλασιασμού ενάντια στουςκαταλόγους gampaign, ο κατάλογος που έχει τα νέα προβαδίσματαπου πηγαίνουν σε το πρέπει να δημιουργηθεί στο σύστημα προτού νααρχίσετε να φορτώνετε τους μολύβδους. + + + + +



+ + + + + + + ΠΙΝΑΚΑΣ ΤΗΛΕΦΩΝΩΝ

+
+
+ Εωτ.Σύνδεση Τηλεφώνου - Αυτό το πεδίο είναι για την καταχώρηση του ονόματος του τηλεφώνου, όπως αυτό εμφανίζεται στο Asterisk, χωρίς να συμπεριλαμβάνει το πρωτόκολλο ή slash στην αρχή. Για παράδειγμα: για SIP τηλέφωνο SIPVtest101 η Εσω.Γραμμή Τηλεφώνου θα είναι test101. Επίσης, για IAX2 τηλέφωνα χρησιμοποιείστε τα πλήρης ονόματα: IAX2/IAXphone1@IAXphone1 θα είναι IAXphone1@IAXphone1. Για Zap τηλέφωνα καταχωρήστε το πλήρες κανάλι: Zap/25-1 θα είναι 25-1. Αλλη σημείωση, ορίστε το πρωτόκολλο παρακάτω σωστά για τον τύπο του τηλεφώνου. + +
+
+
+ Αριθμός Σχεδίου Κλήσεων - Αυτό το πεδίο είναι για τον αριθμό που καλείται για να κουδουνίζει το τηλέφωνο. Αυτός ο αριθμός ορίζεται στο αρχείο extensions.conf του διακομιστή Asterisk + +
+
+
+ Περιεχόμενο Φωνητικού Ταχυδρομείου - Αυτό το πεδίο είναι για το περιεχόμενο του φωνητικού ταχυδρομείου, όπου πηγαίνουν τα μηνύματα του τηλεφώνου του χρήστη. Το χρησιμοποιούμαι για να ελέγξουμε τα φωνητικά μηνύματα και για να μπορεί ο χρήστης να χρησιμοποιήσει το πλήκτρο VOICEMAIL. + +
+
+
+ CallerID Εξερχομένων - Αυτό το πεδίο είναι για την καταχώριση του αριθμού callerID που θα θέλατε να εμφανίζεται στις εξερχόμενες κλήσεις. + +
+
+
+ Δνση IP Τηλεφώνου - Αυτό το πεδίο είναι για την δνση IP του τηλέφωνου εάν είναι ένα VOIP τηλέφωνο. Αυτό είναι ένα προαιρετικό πεδίο + +
+
+
+ Δνση IP Υπολογιστού - Αυτό το πεδίο είναι για την δνση IP του υπολογιστή του χρήστη. Αυτό είναι ένα προαιρετικό πεδίο + +
+
+
+ IP Διακομιστή - Αυτός ο κατάλογος επιλογών είναι που επιλέγετε σε ποιον διακομιστή το τηλέφωνο είναι ενεργό. + +
+
+
+ Σύνδεση - η σύνδεση που χρησιμοποιείται για τον τηλεφωνικό χρήστηστη σύνδεση στις εφαρμογές πελατών. + +
+
+
+ Κωδικός πρόσβασης - ο κωδικός πρόσβασης που χρησιμοποιείται γιατον τηλεφωνικό χρήστη στη σύνδεση στις εφαρμογές πελατών. ΣΗΜΑΝΤΙΚΟ, αυτό είναι το κωδικό πρόσβασης μόνο για το web interface πράκτορα σύνδεση τηλεφώνου, για να αλλάξετε τον κωδικό πρόσβασης sip.conf ή iax.conf, ή μυστική, για την εν λόγω τηλεφωνική συσκευή θα πρέπει να τροποποιήσετε το αρχείο Conf μυστικό χώρο πιο κάτω σε αυτή τη σελίδα. + +
+
+
+ Κατάσταση - Η κατάσταση του τηλεφώνου στο σύστημα, ΕΝΕΡΓΗ και ΔΙΑΧ επιτρέπουν στους GUI πελάτες να δουλέψουν. Η ΔΙΑΧ επιτρέπει την πρόσβαση στην ιστοσελίδα διαχείρισης. + +
+
+
+ Ενεργός Λογαριασμός - Κατά πόσο το τηλέφωνο είναι ενεργό για να τοποθετηθεί στην λίστα στο GUI. + +
+
+
+ Τύπος Τηλεφώνου - Απλά για σημειώσεις διαχείρισης. + +
+
+
+ Πλήρες Ονομα - Χρησιμοποιείται από τον χρήστη GUI στην λίστα ενεργών τηλεφώνων. + +
+
+
+ Εταιρία - Απλά για σημειώσεις διαχείρισης. + +
+
+
+ Τηλέφωνα Email - Η διεύθυνση ηλεκτρονικού ταχυδρομείου που σχετίζονται με αυτό το τηλέφωνο εισόδου. Αυτό χρησιμοποιείται για τηλεφωνητή ρυθμίσεις. + +
+
+ Διαγραφή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Μετά Email - Αυτή η προαιρετική ρύθμιση επιτρέπει να έχετε το τηλεφωνητή μηνύματα διαγράφονται από το σύστημα αφού έχουν ήδη αποσταλεί έξω. Προεπιλογή είναι N. + +
+
+
+ Εικόνα - Δεν έχει υλοποιηθεί ακόμα. + +
+
+
+ Νέα Μηνύματα - Αριθμός νέων φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk. + +
+
+
+ Παλαιά Μηνύματα - Αριθμός παλαιών φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk. + +
+
+
+ Πρωτόκολλο Πελάτη - Το πρωτόκολλο που χρησιμοποιεί το τηλέφωνο για συνδεθεί στον διακομιστή Asterisk: SIP, IAX2, Zap. + +
+
+
+ οπική GMT - Η διαφορά από την GMT όπου το τηλέφωνο βρίσκεται. Μην το ρυθμίσετε για DAYLIGHT SAVINGS ΩΡΑ. Αυτή χρησιμοποιείται από την VICIDIAL εκστρατεία για την επακριβή εμφάνιση της ώρας. + +
+
+
+ Τηλέφωνο Ring Timeout - Αυτό είναι το χρονικό διάστημα, σε δευτερόλεπτα, ότι το τηλέφωνο θα χτυπήσει στο dialplan πριν από την αποστολή της πρόσκλησης στον τηλεφωνητή. Προεπιλογή είναι 60 δευτερόλεπτα. + +
+
+
+ Σύνδεση Διαχειριστή - Αυτή είναι η σύνδεση που χρησιμοποιούν οι GUI χρήστες του τηλεφώνου, για πρόσβαση στην Βάση Δεδομένων όπου ο διακομιστής δεδομένων βρίσκεται. + +
+
+
+ Μυστικό Διαχειριστή - Αυτός είναι ο κωδικός που χρησιμοποιούν οι GUI χρήστες του τηλεφώνου, για πρόσβαση στην Βάση Δεδομένων όπου ο διακομιστής δεδομένων βρίσκεται. + +
+
+
+ Προκαθορισμένος VICIDIAL Χρήστης - Εδώ ορίζεται μία προκαθορισμένη τιμή χρήστη, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για κανένα χρήστη. + +
+
+
+ Προκαθορισμένος VICIDIAL Κωδικός - Εδώ ορίζεται μία προκαθορισμένη τιμή κωδικού, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για κανένα κωδικό. + +
+
+
+ VICIDIAL Προκαθορισμένη Εκστρατεία - Εδώ ορίζεται μα προκαθορισμένη τιμή εκστρατείας, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για καμία εκστρατεία. + +
+
+
+ Εσ.Σύνδ. Στάθμευσης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Στάθμευσης για τις εφαρμογές του χρήστη. + +
+
+
+ Εσ.Σύνδ. Συνδιάλεξης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Συνδιάλεξης για τις εφαρμογές του χρήστη. + +
+
+
+ Εσωτ.Σύνδεση Στάθμευσης VICIDIAL - Η προκαθορισμένη εσωτ.σύνδεση στάθμευσης. Εξακριβώστε ότι κάποια διαφορετική δουλεύει πριν την αλλάξετε. + +
+
+
+ Αρχείο Στάθμευσης VICIDIAL - Το προκαθορισμένο αρχείο στάθμευσης. Μέχρι 10 χαρακτήρες. + +
+
+
+ Πρόθεμα παρακολούθησης - Αυτό είναι το πρόθεμα παρακολούθησης των καναλιών ZAP. + +
+
+
+ Εσωτ.Σύνδεση Ηχογράφησης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων για την εσωτ.σύνδεση ηχογράφησης που χρησιμοποιείται για μεταφορά στις συνδιαλέξεις, ώστε να ηχογραφηθούν.Extensions.conf . + +
+
+
+ Βασική Εσωτ.Σύνδεση VMAIL - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων που ελέγχει την θυρίδα ηχητικών μηνυμάτων. + +
+
+
+ Εσωτ.Σύνδεση απόρριψης VMAIL - Αυτο είναι το πρόθεμα του πλάνου κλήσεων που χρησιμοποιείται στο να στέλνει κλήσεις κατευθείαν στη θυρίδα του χρήστη από μία κλήση. + +
+
+
+ Περιεχόμενο Τηλ.σύνδ - Αυτό είναι το πλαίσιο σχέδιο dial ότι οι αιτήσεις πληρωμής, όπως ViciDial, κατά κύριο λόγο χρήσης. Είναι δεδομένο ότι σε όλους τους αριθμούς κλήσης από το apps πελάτη χρησιμοποιούν αυτό το πλαίσιο γι -αυτό είναι καλή ιδέα να βεβαιωθείτε ότι αυτό είναι το πιο ευρύ πλαίσιο δυνατό. επαληθεύει με extensions.conf αρχείο πριν από την αλλαγή. προεπιλογή είναι προεπιλογή. + +
+
+
+ Τηλέφωνο Πλαίσιο - Αυτό είναι το πλαίσιο σχέδιο dial ότι αυτό το τηλέφωνο θα χρησιμοποιήσει η κλήση. Εάν εκτελείτε ένα τηλεφωνικό κέντρο και δεν θέλετε να σας παράγοντες είναι σε θέση να καλέσετε από έξω από την ViciDial αίτηση για παράδειγμα, τότε θα δημιουργούσε αυτόν τον τομέα σε ένα πλαίσιο dialplan που δεν υπάρχει, κάτι σαν πράκτορας-nodial. προεπιλογή είναι προεπιλογή. + +
+
+
+ Conf Φάκελος Secret - Αυτό είναι το μυστικό, ή τον κωδικό πρόσβασης, για το τηλέφωνο στο IAX ή auto γουλιά-generated conf αρχείο για αυτό το τηλέφωνο. Όριο είναι 20 χαρακτήρες αλφαριθμητικό παύλα και υπογράμμισης δεκτή. Προεπιλογή είναι δοκιμή. + +
+
+
+ Κανάλι αποστολής DTMF - Αυτό είναι το κανάλι του χρησιμοποιείται για την αποστολή DTMF ήχων στις συνδιαλέξεις. + +
+
+
+ Εξερχόμεη ομάδα κλήσης - αυτή είναι η ομάδα καναλιού όπου οι εξερχόμενες κλήσεις από αυτό το τηλέφωνο τοποθετούνται. Υπάρχουν ρουτίνες που την χρησιμοποιούν. Για τα κανάλια Zap θέλετε να χρησιμοποιήσετε κάτι σαν Zap/g2, για IAX2 trunks θα θέλετε να χρησιμοποιήσετε το πλήρες πρόθεμα IAX όπως IAX2/VICItest1:secret@10.10.10.15:4569. Ελέγξτε τα trunks με το αρχείο extensions.conf. + +
+
+
+ Περιοχή Ιστο-Πλοηγού - Αυτό χρειάζεται μόνο σε Linux συστήματα. + +
+
+
+ Κατάλογος Εγκατάστασης - . + +
+
+
+ CallerID URL - Αυτή είναι η Δνση της ιστοσελίδας που χρησιμοποιείται για αναζήτηση με callerID + +
+
+
+ Προκαθορισμένο VICIDIAL URL - Αυτή είναι η δνση ιστοσελίδας που χρησιμοποιείται για προσαρμοσμένα VICIDIAL ερωτήματα ιστοσελίδας + +
+
+
+ Καταγραφή Γεγονότων Κλήσης - Αυτό τοποθετείται σε αληθές εάν το αρχείο call_log.agi βρίσκεται στο αρχείο extensions.conf για τις εξερχόμενες κλήσεις και για τις εσωτ.συνδέσεις 'h' που κλείνουν. Αυτό πρέπει πάντα να είναι 1 για να δουλεύουν σωστά πολλά χαρακτηριστικά των εφαρμογών. + +
+
+
+ Μεταγωγή Χρήστη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να μεταβούν σε άλλον λογαριασμό χρήστη + +
+
+
+ Σε συνδιάλεξη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να ξεκινούν συνδιαλέξεις μέχρι 6 εξωτερικές γραμμές. + +
+
+
+ Διαχειριστού Κλείσιμο- Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να κλείνουν κάθε γραμμή. + +
+
+
+ Διαχειριστού Κλέψιμο - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδήποτε γραμμή. + +
+
+
+ Διαχειριστού Παρακολούθηση - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδποτε γραμμή. + +
+
+
+ Στάθμευση Κλήσης - Εάν το θέσετε σε αληθές θα επιτρέπετε σε χρήστες να σταθμεύουν κλήσεις και κλήσεις σε αναμονή να διαχειρίζονται από οποιοδήποτε άλλο ρήστη. Οι κλήσεις μένουν σε αναμονή για 30 δευτερόλεπτα και μετά κλείνουν. Συνήθως ενεργοποιημένη για όλους. + +
+
+
+ Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές θα εμφανίζεται ένα παράθυρο ειδοποίησης, ότι η ώρα ενημέρωσης δεν έχει αλλάξει σε 20 δευτερόλεπτα. + +
+
+
+ AF Καταγραφή Γεγονότος - Εάν το θέσετε σε αληθές θα καταγράφονται οι ενέργειες χρήσης του astGUIclient σε ένα αρχείο στον υπολογιστή του χρήστη. + +
+
+
+ Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές οι εφαρμογές θα χρησιμοποιούν το ACQS. + +
+
+
+ Υπερεμφανιζόμενο παραθύρο CallerID - Εάν το θέσετε σε αληθές θα επιτρέψετε σε αριθμούς ορισμένους στο αρχείο extensions.conf, να στέλνουν οθόνες με CallerID στους astGUIclient χρήστες. + +
+
+
+ VMail Πλήκτρο - Εάν το θέσετε σε αληθές θα εμφανιστεί το πλήκτρο VOICEMAIL και τα μηνύματα μπορούν να εμφανίζονται στο astGUIclient. + +
+
+
+ Ταχύτητα Ανανέωσης - Εάν το θέσετε σε αληθές ενεργοποιείται ένα νέο ρυθμό ανανέωσης πληροφοριών κλήσης για το astGUIclient. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 1000 ms (1 δευτερόλεπτο). + +
+
+
+ Ρυθμός Ανανέωσης Ταχύτητας - σε χιλιοστά δευτερολέπτου. Χρημοποιείται μόνο εάν η Ταχύτητα Ανανέωσης είναι ενεργοποιημένη. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 1000 ms (1 δευερόλεπτο). + +
+
+
+ Συνεχής MySQL - Εάν είναι ενεργοποιημένο, το astGUIclient θα παραμένει συνδεμένο αντί να συνδέεται κάθε δευτερόλεπτο. + +
+
+
+ Αυτόματη Κλήση Επόμενου Αριθμού - Εάν είναι ενεργοποιημένο, μετά από τον τερματισμό θα γίνει κλήση του επόμενου αριθμού, εκτός εάν επιλέξουμε "Μη κάνεις κλήσεις". + +
+
+
+ Σταμάτα την ηχογράφηση μετά από κάθε κλήση - Εάν είναι ενεργοποιημένο η ηχογράφηση θα σταματήσει μετά τον τερματισμό. + +
+
+
+ Επιτρέψτε τα μηνύματα SIPSAK - εάν επιτρέπεται ο κεντρικόςυπολογιστής θα στείλει τα μηνύματα στο τηλέφωνο ΓΟΥΛΙΏΝ στηνεπίδειξη στην τηλεφωνική LCD επίδειξη όταν συνδέεται μεVICIDIAL. Το χαρακτηριστικό γνώρισμα λειτουργεί μόνο με τατηλέφωνα ΓΟΥΛΙΩΝ και απαιτεί sipsak την εφαρμογή για ναεγκατασταθεί στον κεντρικό υπολογιστή δικτύου. Η προεπιλογήείναι 0. + +
+
+
+ DBΧ Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί. + +
+
+
+ DBΧ Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk. + +
+
+
+ DBΧ Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron. + +
+
+
+ DBΧ Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234. + +
+
+
+ DBΧ Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306. + +
+
+
+ DBY Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ DBY Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ DBY Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ DBY Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ DBY Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306. Δευτερεύονserver, μην χρησιμοποιημένος αυτήν την περίοδο. + +
+
+
+ Γνωστός ID - Η ID του ψευδώνυμο που χρησιμοποιείται για να επιτρέψει συνδέσεις τηλεφώνου φορτίο ισορροπημένη. δεν κενά ή άλλους ειδικούς χαρακτήρες επιτρέπονται. Πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. + +
+
+
+ Ψευδώνυμο - Το όνομα που χρησιμοποιείται για την περιγραφή ενός τηλέφωνα άλλως, πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες. + +
+
+
+ Τηλέφωνα logins List - Η comma separated κατάλογο τηλέφωνο συνδέσεις χρησιμοποιούνται όταν ένας πράκτορας συνδέεται στο τηλέφωνο χρησιμοποιώντας φορτίο ισορροπημένη συνδέσεις. Το γραφείο θα βρει εφαρμογή η ενεργός διακομιστής με τις λιγότερες παράγοντες συνδεθεί σε αυτήν και μια κλήση από το διακομιστή στον πράκτορα κατά login. + +
+
+
+ ID Template - Αυτό είναι το πρότυπο αρχείο conf ID εισόδου ότι αυτό το τηλέφωνο θα χρησιμοποιήσει για την Asterisk ρυθμίσεις. Προεπιλεγμένο είναι - ΚΑΝΕΝΑ --. + +
+
+
+ Conf Override Settings - If populated, and the Πρότυπο ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Ομάδα Γνωστός ID - Η ID της ομάδας άλλως χρησιμοποιείται από τους αντιπροσώπους που ορίζονται για να καλέσετε τις κλήσεις από το VICIDIAL πράκτορα διεπαφής με διαφορετικές ταυτότητες καλούντος. δεν κενά ή άλλους ειδικούς χαρακτήρες επιτρέπονται. Πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες. + +
+
+
+ Ομάδα ψευδώνυμο - Το όνομα που χρησιμοποιείται για να περιγράψει μια ομάδα άλλως, πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες. + +
+
+
+ Αριθμός Ταυτότητας καλούντος - Η καλούντος αριθμό ταυτότητας που χρησιμοποιούνται σε αυτή την ομάδα Γνωστός. Πρέπει να είναι μόνο ψηφία. + +
+
+
+ Όνομα καλούντος ID - Το όνομα του καλούντος ID που μπορούν να αποσταλούν με αυτή την ομάδα Γνωστός. Από όσο γνωρίζουμε αυτό θα λειτουργήσει μόνο στον Καναδά και στις PRI κυκλωμάτων χρησιμοποιώντας IAX βρόχο κορμού μέσω Asterisk. + + + + +



+ + ΠΙΝΑΚΑΣ ΔΙΑΚΟΜΙΣΤΩΝ

+
+
+ ID Διακομιστή - Σε αυτό το πεδίο ορίζεται το όνομα του διακομιστή Asterisk, είναι μόνο μία επωνυμία ώστε να αναγνωρίζεται από τους διαχειριστές. + +
+
+
+ Περιγραφή Διακομιστή - Το πεδίο στο οποίο περιγράφεται με μία φράση τον διακομιστή Asterisk. + +
+
+
+ Δνση IP Διακομιστή - Το πεδίο που ορίζεται η δνση IP του δικτύου του διακομιστή Asterisk. + +
+
+
+ Ενεργός - Ορίζει κατά πόσον ο διακομιστής Asterisk είναι ενεργός ή μη ενεργός. + +
+
+
+ System Load - Τα δύο αυτά στατιστικά στοιχεία δείχνουν την loadavg ενός συστήματος φορές 100 και το ποσοστό χρήσης της CPU του διακομιστή και ενημερώνεται ανά λεπτό. Η loadavg θα πρέπει να είναι κατά μέσο όρο κάτω των 100 πολλαπλασιάζεται με τον αριθμό των πυρήνων της CPU σας σύστημα, για τη βέλτιστη απόδοση. Η χρήση της CPU ποσοστό θα πρέπει να παραμείνει κάτω από 50 για τη βέλτιστη απόδοση. + +
+
+
+ Live Channels - Αυτό το πεδίο δείχνει τον τρέχοντα αριθμό των σταθμών Asterisk που ζουν με το σύστημα τώρα. Είναι σημαντικό να σημειωθεί ότι ο αριθμός των καναλιών Asterisk είναι συνήθως πολύ υψηλότερη από τον πραγματικό αριθμό των κλήσεων σε ένα σύστημα. Το πεδίο αυτό ενημερώνεται μία φορά ανά λεπτό. + +
+
+
+ Disk Usage - Το πεδίο αυτό θα δείξει το δίσκο χρήσης για κάθε διαμέρισμα σε αυτόν το διακομιστή. Το πεδίο αυτό ενημερώνεται μία φορά ανά λεπτό. + +
+
+
+ Εκδοση Asterisk. + +
+
+
+ Μέγιστος Αριθμός Trunk του VICIDIAL - Αυτό το πεδίο θα προσδιορίσει τον μέγιστο αριθμό γραμμών, τις οποίες θα χρησιμοποιήσει η διεργασία αυτόατης κλήσης. Εάν θέλετε να αφιερώσετε δύο PRI σε ένα διακομιστή τότε θα πρέπει να το ορίσετε σε 46. Το προκαθορισμένο είναι 96. + +
+
+
+ Max ζητεί ανά Δεύτερη - Αυτή η ρύθμιση καθορίζει το μέγιστο αριθμό των κλήσεων που μπορούν να διατεθούν από το εξερχόμενο αυτόματη κλήση δέσμης ενεργειών σε αυτόν το διακομιστή ανά δευτερόλεπτο. Πρέπει να είναι από 1 έως 100. Η προεπιλογή είναι 20. + +
+
+
+ Telnet Πελάτης - Αυτή είναι η δνση ή το όνομα του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι 'localhost'. + +
+
+
+ Πόρτα Telnet - Αυτή είναι η πόρτα της σύνδεσης με τον διαχειριστή του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι '5038'. + +
+
+
+ Διαχειριστής Χρήστης - Το όνομα χρήστη που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι 'cron' + +
+
+
+ Μυστικό Διαχειριστή - Το μυστικό ή κωδικός που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι '1111' + +
+
+
+ Ενημέρωση Χρήστη Διαχειριστή - Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες ενημέρωσης. Το προκαθορισμένο είαι 'updatecron'. + +
+
+
+ Ακουσμα Χρήστη Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες που μόνο ακούν για έξοδο. Τ προκαθορισμένο είναι 'listencron'. + +
+
+
+ Αποστολή Διακομιστή Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή Asterisk, βελτιστοποιημένο για διεργασίες που μόνο στέλνουν Ενέργειες στον διαχειριστή.Το προκαθορισμένο είναι 'sendcron'. + +
+
+
+ Conf Φάκελος Secret - Αυτό είναι το μυστικό, ή τον κωδικό πρόσβασης για το διακομιστή στο IAX που δημιουργείται αυτόματα conf αρχείο για αυτό το διακομιστή σε άλλους servers. Όριο είναι 20 χαρακτήρες αλφαριθμητικό παύλα και υπογράμμισης δεκτή. Προεπιλογή είναι δοκιμή. + +
+
+
+ GMT offset Διακομιστής - Η διαφορά σε ώρες από την GMT ώρα που δεν έχει ρυθμιστεί με Daylight-Savings-Time. Το προκαθορισμένο είναι '-5' + +
+
+
+ Εσωτ.σύνδεση απόρριψης VMail - Το πρόθεμα εσωτ.σύνδεσης που χρησιμοποιείται στον διακομιστή για να στείλει τις κλήσεις κατευθείαν μέσω agc σε ένα συγκεκριμένο φωνητικό ταχυδρομείο. Το προκαθορισμένο είναι '85026666666666' + +
+
+
+ VICIDIAL AD εσωτ.σύνδεση - Η προκαθορισμένη εσωτ.σύνδεση εάν δεν έχει οριστεί στην εκστρατεία για να στείλει τις κλήσεις στην διεργασία αυτόματης κλήσης. Η προκαθορισμένη είναι '8365' + +
+
+
+ Προκαθορισμένο Περιεχόμενο - Το προκαθορισμένο περιεχόμενο του πλάνου κλήσεων για διεργασίες του διακομιστή. Το προκαθορισμένο είναι 'προκαθορισμένο' + +
+
+
+ Επίδοση Συστήματος - Θέτοντας αυτήν την επιλογή σε Ν, θα ενεργοποιήσετε την καταγραφή στατιστικών γεγονότων επίδοσης για τον διακομιστή, συμπεριλαμβάνοντας το φόρτο του συστήματος, τις διεργασίες και τα κανάλια που χρησιμοποιεί. Προκαθορισμένα είναι Ο. + +
+
+
+ Γεγονότα Διακομιστή - Θέτοντας αυτήν την επιλογή σε Ν θα ενεργοποιήσετε την καταγραφή των γεγονότων για όλες τις διεργασίες. Επίσης, η καταγραφή γεγονότων της οθόνης θα είναι απενεργοποιημένη, εάν είναι Ν όταν το σύστημα ξεκινήσει. Προκαθορισμένα είναι Ν. + +
+
+
+ Εξοδος AGI - Θέτοντας αυτήν την επιλογή σε NONE θα απενεργοποιήσετε την έξοδο από όλες τις διαδικασίες AGI. Αν θέσετε STDERR θα σταλεί η έξοδος των AGI στο CLI. Επίσης υπάρχουν οι επιλογές FILE και BOTH. Προκαθορισμένα είναι FILE. + +
+
+
+ Διακύμανση Τηλεφωνικής Κλήσης - Καθορίζοντας αυτό το πεδίο σε Ν θα επιτρέψει στον εξυπηρετητή να ορίζει κλήσεις διακύμανσης για την εκστρατεία, ώστε το καθορισμένο επίπεδο κλήσης να μπορεί να ικανοποιείται έστω και εάν δεν υπάρχουν συνδεμένοι χειριστές σε αυτήν την εκστρατεία. Προκαθορισμένα είναι Ο. + +
+
+
+ Υπόλοιπο VICIDIAL Rank - Αυτό το πεδίο σας επιτρέπει να ορίσετε τη σειρά με την οποία αυτός ο διακομιστής πρέπει να χρησιμοποιείται για την κλήση ισορροπία, αν κλήση ισορροπία είναι ενεργοποιημένη. Ο server με την υψηλότερη κατάταξη θα πρέπει να χρησιμοποιείται για πρώτη φορά στην διάθεση Υπόλοιπο συμπληρώστε κλήσεις. Προεπιλογή είναι 0. + +
+
+
+ Διακύμανση εκτός ορίων - Καθορίζει τον αριθμό των τηλ.κυκλ.συνδ. που δεν επιτρέπετε στο σύστημα να χειριστεί για Διακύμανση Τηλεφωνικής Κλήσης. + +
+
+
+ Καταγραφή Σύνδεσμος - Η ρύθμιση αυτή σας επιτρέπει να παρακάμπτουν την προεπιλογή της οθόνης του συνδέσμου εγγραφή στο admin ιστοσελίδες. Προεπιλεγμένο είναι SERVER_IP. + +
+
+
+ Αναπληρωματικό Καταγραφή IP Διακομιστή - Αυτή η ρύθμιση είναι όπου μπορείτε να βάλετε ένα διακομιστή IP ή άλλο μηχάνημα το όνομα που μπορεί να χρησιμοποιηθεί στη θέση του server_ip στις συνδέσεις με ηχογραφήσεις εντός του admin ιστοσελίδες. Προεπιλεγμένο είναι άδειο. + +
+
+
+ Asterisk Ενεργό Server - Αν Asterisk δεν εκτελείται σε αυτόν το διακομιστή ή αν VICIDIAL δεν θα πρέπει να χρησιμοποιούν αυτό το διακομιστή ή αν είναι μόνο με τη χρήση αυτού του διακομιστή για άλλα σενάρια, όπως η χοάνη φόρτωσης script που θέλετε να ρυθμίσετε αυτή να Ν. Προεπιλ είναι Y. + +
+
+
+ Ενεργή Server Agent - Η ρύθμιση αυτής της δυνατότητας να Ν παραγόντων θα αποτρέψει από το να είναι σε θέση να συνδεθείτε σε αυτόν το διακομιστή μέσω του vicidial οθόνη παράγοντα. Αυτό είναι πολύ χρήσιμο όταν χρησιμοποιείτε ένα φορτίο σύνδεση τηλεφώνου ισορροπημένη ρύθμιση. Προεπιλογή είναι Y. + +
+
+
+ Δημιουργήστε conf αρχεία - Αν θα θέλατε το σύστημα auto-δημιουργούν αστερίσκο conf αρχεία με βάση τις ενδείξεις τηλεφώνων, την εξισορρόπηση φορτίου εγγραφές και εγκατάσταση εντός VICIDIAL τότε που αυτό να είναι Προεπιλ Y. Y. + +
+
+
+ Αναδημιουργία conf αρχεία - Αν θέλετε να αναγκάσετε μια ανακατασκευή του Asterisk conf αρχεία ή αν κάποιο από τα τηλέφωνα ή μεταφορέα εγγραφές έχουν αλλάξει, τότε αυτό θα πρέπει να ρυθμιστεί σε Υ. Μετά την conf αρχεία που έχουν δημιουργηθεί και έχει Asterisk φορτώθηκε στη συνέχεια, αυτό θα αλλάξει σε Ν. Προεπιλεγμένο είναι Y. + +
+
+
+ Rebuild Music On Hold - Αν θέλετε να αναγκάσετε μια ανασυγκρότηση των αρχείων μουσικής σε κατάσταση αναμονής ή όταν η μουσική για τις εισόδους που κατέχουν ή καταχωρήσεις διακομιστή έχουν αλλάξει, τότε αυτό θα πρέπει να οριστεί σε Γ. Μετά την μουσική σε αναμονή αρχεία έχουν συγχρονιστεί και φορτώθηκε στη συνέχεια, αυτό θα αλλάξει σε Ν. Default είναι Y. + +
+
+
+ Ήχοι Ενημέρωση - Αν θέλετε να ισχύει ο έλεγχος των αρχείων ήχου σε αυτόν το διακομιστή, και το κεντρικό κατάστημα ήχου είναι ενεργοποιημένη ως μια ρύθμιση συστήματος, τότε το πεδίο αυτό θα επιτρέψει την ήχους updater να τρέχει κατά την επόμενη κορυφή της λεπτό. Κάθε φορά που ένα ηχητικό αρχείο αποστέλλεται από το web interface αυτό έχει ρυθμιστεί αυτόματα στο Υ για όλους τους διακομιστές που έχουν Asterisk ενεργό. Προεπιλογή είναι N. + +
+
+
+ ViciDial Καταγραφή Όριο - Το πεδίο αυτό είναι όπου μπορείτε να ορίσετε το μέγιστο αριθμό των λεπτών ότι μια καταγραφή τηλεφωνήματος που ViciDial μπορεί να είναι. Προεπιλογή είναι 60 λεπτά. + +
+
+
+ Carrier Logging Ενεργό - Η ρύθμιση αυτή σας επιτρέπει να συνδεθείτε όλες hangup κωδικούς επιστροφής για κάθε εξερχόμενη κλήση λίστα κλήσεων που σας διάθεση. Προεπιλογή είναι Ν. + + + + + + +



+ + vicidial_conf_templates ΠΙΝΑΚΑΣ

+
+
+ ID Template - Το πεδίο αυτό πρέπει να είναι τουλάχιστον 2 χαρακτήρες και δεν υπερβαίνει τους 15 χαρακτήρες σε μήκος, δεν χώρους. Αυτό είναι το αναγνωριστικό που θα χρησιμοποιείται για τον προσδιορισμό της conf πρότυπο σε ολόκληρο το σύστημα. + +
+
+
+ Όνομα - Αυτό είναι το όνομα του αρχείου conf πρότυπο εισόδου. + +
+
+
+ Περιεχόμενα Template - Το πεδίο αυτό είναι όπου μπορείτε να εισάγετε τις ειδικές ρυθμίσεις στο να χρησιμοποιηθούν από όλα τα τηλέφωνα και-ή αερομεταφορέων που έχουν ρυθμιστεί να χρησιμοποιούν αυτό το πρότυπο conf. Τα πεδία που δεν θα πρέπει να περιλαμβάνονται στη θέση αυτή είναι: μυστικό, accountcode, υπόψη, username και το γραμματοκιβώτιο. + + + + + +



+ + vicidial_server_carriers ΠΙΝΑΚΑΣ

+
+
+ ID Carrier - Το πεδίο αυτό πρέπει να είναι τουλάχιστον 2 χαρακτήρες και δεν υπερβαίνει τους 15 χαρακτήρες σε μήκος, δεν χώρους. Αυτό είναι το αναγνωριστικό που θα χρησιμοποιείται για τον προσδιορισμό του αερομεταφορέα για τη συγκεκριμένη θέση σε όλο το σύστημα. + +
+
+
+ Όνομα Carrier - Αυτό είναι το όνομα του μεταφορέα εισόδου. + +
+
+
+ Περιγραφή Carrier - Αυτό είναι που στα σχόλια του αστερίσκο αρχεία conf πάνω από το dialplan και εγγραφές λογαριασμό. Μέγιστο 255 χαρακτήρες. + +
+
+
+ Εγγραφή String - Το πεδίο αυτό είναι όπου μπορείτε να εισαγάγετε στον ακριβή συμβολοσειρά που απαιτούνται στο SIP IAX ή αρχείο διαμόρφωσης για να εγγραφείτε στο φορέα παροχής υπηρεσιών. Προαιρετικό αλλά συνιστάται ιδιαίτερα αν ο φορέας σας επιτρέπει την καταχώριση. + +
+
+
+ ID Template - Αυτό το προαιρετικό πεδίο σας επιτρέπει να επιλέξετε ένα πρότυπο conf αρχείο για τον εν λόγω αερομεταφορέα εισόδου. + +
+
+
+ Λογαριασμός Θέση - Το πεδίο αυτό χρησιμοποιείται αν δεν έχετε επιλέξει να χρησιμοποιήσετε ένα πρότυπο, και είναι όπου μπορείτε να εισαγάγετε στον ειδικό λογαριασμό ρυθμίσεις που πρέπει να χρησιμοποιείται για τον εν λόγω αερομεταφορέα. Αν πρόκειται να λαμβάνουν σε εισερχόμενα κλήσεις από τον εν λόγω αερομεταφορέα κορμού μπορεί να θέλετε να ρυθμίσετε το πλαίσιο = trunkinbound σε αυτό τον τομέα, ώστε να μπορείτε να χρησιμοποιήσετε τη διαδικασία χειρισμού DID εντός VICIDIAL. + +
+
+
+ Πρωτόκολλο - Αυτό το πεδίο σας επιτρέπει να ορίσετε το πρωτόκολλο να χρησιμοποιήσετε για την είσοδο του μεταφορέα. Επί του παρόντος μόνο SIP IAX και υποστηρίζονται. + +
+
+
+ Globals String - Αυτό το προαιρετικό πεδίο σας επιτρέπει να ορίσετε μια global μεταβλητή που θα χρησιμοποιηθεί για τον μεταφορέα στο dialplan. + +
+
+
+ Dialplan Είσοδος - Αυτό το προαιρετικό πεδίο σας επιτρέπει να ορίσετε ένα σύνολο dialplan καταχωρήσεις να χρησιμοποιήσετε για τον εν λόγω αερομεταφορέα. + +
+
+
+ IP Διακομιστή - Αυτό είναι το διακομιστή ότι αυτό το συγκεκριμένο μεταφορέα εγγραφή είναι συνδεδεμένες με. + +
+
+
+ Ενεργή - Αυτό καθορίζει εάν ο μεταφορέας θα συμπεριληφθούν στα auto-conf αρχεία που δημιουργούνται ή δεν. + + + + + +



+ + ΠΙΝΑΚΑΣ ΣΥΝΔΙΑΛΕΞΕΩΝ

+
+
+ Αριθμός Συνδιάλεξης - Αυτό το πεδίο είναι για τον αριθμό συνδιάλεξης meetme στο σχέδιο κλήσεων. Επίσης, συνιστούμε ο αριθμς meetme στο meetme.conf να ταιριάζει με αυτό τον αριθμό για κάθε καταχώρηση. Αυτό είναι για τις συνδιαλέξε στο astGUIclient και χρησιμοποιείται για την λειτουργία αποχώρησης από κλήση με 3 γραμμές στο VICIDIAL. + +
+
+
+ IP Διακομιστή- Ο κατάλογος που επιλέξατε τον διακομιστή ASTERISK όπου η συνδιάλεξη θα είναι. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_Μπαούλα ΠΙΝΑΚΑΣ

+
+
+ Οι Τηλ.Κυκλ.Συνδ. του εξυπηρετητή σας επιτρέπουν να περιορίσετε τις εξερχόμενες γραμμές που χρησιμοποιούνται στον εξυπηρετητή ανά εκστρατεία. Χωρίς αυτές τις εγγραφές, επιτρέπετε στην εκστρατεία να έχει όσες γραμμές μπορεί να έχει, μέχρι τον μέγιστο καθορισμένο αριθμό Τηλ.Κυκλ.Συνδ.. + + + + + +



+ + SYSTEM_SETTINGS ΠΙΝΑΚΑΣ

+
+
+ Μη-λατινικά χρήσης - αυτή η επιλογή επιτρέπει σε σας για ναπροκαθορίσει το χειρόγραφο επίδειξης Ιστού για να χρησιμοποιήσειUTF8 τους χαρακτήρες και να μην κάνει οποιαδήποτε φιλτράρισμαλατινικός-χαρακτήρας-οικογενειακής κανονική έκφρασης ήμορφοποίηση επίδειξης. Η προεπιλογή είναι 0. + +
+
+
+ Webroot writable - αυτή η ρύθμιση επιτρέπει σε σας για νακαθορίσει εάν temp τα αρχεία και τα αρχεία επικύρωσης πρέπεινα τοποθετηθούν στο webroot στον κεντρικό υπολογιστή δικτύουσας. Η προεπιλογή είναι 1. + +
+
+
+ VICIDIAL ο πράκτορας θέτει εκτός λειτουργίας την επίδειξη - αυτός ο τομέας χρησιμοποιείται για να επιλέξει πότε για ναπαρουσιάσει σε έναν πράκτορα πότε η σύνοδός τους έχει τεθείεκτός λειτουργίας από το σύστημα, μια δράση διευθυντών ή απόένα εξωτερικό μέτρο. Η ρύθμιση NOT_ACTIVE θα θέσει εκτόςλειτουργίας το μήνυμα στην οθόνη πρακτόρων. Η ρύθμισηLIVE_ΧΕΙΡΙΣΤΗΣθα επιδείξει μόνο το εκτός λειτουργίας μήνυμα όταναφαιρεθεί το αρχείο πρακτόρων vicidial_auto_calls, όπως κατάτη διάρκεια μιας αποσύνδεσης δύναμης ή της αποσύνδεσης έκτακτηςανάγκης. + +
+
+
+ Επιτρέψτε τα μηνύματα SIPSAK - εάν θέστε 1, αυτό θα επιτρέψειτον τηλεφωνικό πίνακα θέτοντας για να εργαστεί κατάλληλα, οκεντρικός υπολογιστής θα στείλει τα μηνύματα στο τηλέφωνοΓΟΥΛΙΏΝ στην επίδειξη στην τηλεφωνική LCD επίδειξη ότανσυνδέεται με VICIDIAL. Αυτό το χαρακτηριστικό γνώρισμαλειτουργεί μόνο με τα τηλέφωνα ΓΟΥΛΙΩΝ και απαιτεί sipsak τηνεφαρμογή για να εγκατασταθεί στον κεντρικό υπολογιστή δικτύου. Ηπροεπιλογή είναι 0. + +
+
+
+ Agent API Ενεργό - Αν οριστεί σε 1, αυτό θα επιτρέψει τη διασύνδεση API γραφείο να λειτουργεί. Η προεπιλογή είναι 0. + +
+
+
+ Σπίτι URL Admin - αυτό είναι η διεύθυνση URL ήιστοχώρων ότι θα πάτε εάν χτυπήσετε στην ΕΓΧΏΡΙΑ σύνδεση στηνκορυφή της σελίδας admin.php. + +
+
+
+ Επιτρέψτε το αρχείο ημερολογίου μεταφοράς πρακτόρων - αυτή ηεπιλογή θα καταγράψει σε ένα αρχείο ημερολογίου κειμένων στοwebserver κάθε φορά που μεταφέρεται μια κλήση σε ένανπράκτορα. Η προεπιλογή είναι 0, άτομα με ειδικές ανάγκες. + +
+
+
+ Ώρα ρολόι Τέλος της ημέρας - Αυτή η ρύθμιση καθορίζει, όταν όλοι οι χρήστες θα πρέπει να συνδεθεί αυτόματα από το σύστημα timeclock. Μόνο εκτελείται μία φορά την ημέρα. πρέπει να είναι μόνο 4 ψηφία ψηφίο 2 ώρες και 2 λεπτά ψηφίο στο 24ωρο διάστημα. Η προεπιλογή είναι 0000. + +
+
+
+ ΤελευταίαΏρα ρολόι Auto Αποσύνδεση - Αυτό το πεδίο εμφανίζει την ημερομηνία της τελευταίας αυτόματη αποσύνδεση. + +
+
+
+ Agent Screen Επικεφαλίδας Ημερομηνία Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή της ημερομηνίας που εμφανίζεται στο πάνω μέρος της οθόνης VICIDIAL πράκτορα. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 24 ώρες χρόνο
+ US_SLASH_24HR 06/24/2008 23:59:59 - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 24 ώρες χρόνο
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 24 ώρες χρόνο
+ AL_TEXT_24HR JUN 24 23:59:59 - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 24 ώρες χρόνο
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 12 ώρες χρόνο
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 12 ώρες χρόνο
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 12 ώρες χρόνο
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 12 ώρες χρόνο
+ +
+
+
+ Agent Screen Πελατών Ημερομηνία Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή των πελατών ζώνη ώρας ημερομηνία που εμφανίζεται στο πάνω μέρος της πληροφόρησης πελατών τμήμα του πράκτορα VICIDIAL οθόνη. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 24 ώρες χρόνο
+ US_SLASH_24HR 06/24/2008 23:59:59 - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 24 ώρες χρόνο
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 24 ώρες χρόνο
+ AL_TEXT_24HR JUN 24 23:59:59 - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 24 ώρες χρόνο
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα ακολουθούμενη από 12 ώρες χρόνο
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου ακολουθούμενη από 12 ώρες χρόνο
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος ακολουθούμενη από 12 ώρες χρόνο
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα ακολουθούμενη από 12 ώρες χρόνο
+ +
+
+
+ Agent Screen Πελατών τηλέφωνο Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή του πελάτη τον αριθμό τηλεφώνου που εμφανίζεται στην κατάσταση τμήμα του πράκτορα VICIDIAL οθόνη. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι US_PARN
+ US_DASH 000-000-0000 - USA παύλα διαχωρίζονται αριθμό τηλεφώνου
+ US_PARN (000)000-0000 - USA παύλα αριθμός διαχωρίζονται με τον κωδικό περιοχής σε παρένθεση
+ MS_NODS 0000000000 - Δεν μορφοποίησης
+ UK_DASH 00 0000-0000 - UK παύλα διαχωρίζονται αριθμό τηλεφώνου με το διάστημα μετά την πόλη κωδικός
+ AU_SPAC 000 000 000 - Australia χώρος χωρίζεται αριθμό τηλεφώνου
+ IT_DASH 0000-000-000 - Italy παύλα διαχωρίζονται αριθμό τηλεφώνου
+ FR_SPAC 00 00 00 00 00 - France χώρος χωρίζεται αριθμό τηλεφώνου
+ +
+
+
+ Agent interface API Access Ενεργό - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Agent Μόνο Callback Καμπάνια Lock - Αυτή η επιλογή καθορίζει αν οι callbacks AGENTONLY κλειδώνεται στην καμπάνια που δημιούργησε ο αντιπρόσωπος τους αρχικά στο πλαίσιο. Η ρύθμιση αυτής προς 1 σημαίνει ότι ο αντιπρόσωπος μπορεί να καλέσετε τους μόνο από την εκστρατεία που είχαν καθοριστεί στο πλαίσιο, 0 σημαίνει ότι ο αντιπρόσωπος μπορεί να έχει πρόσβαση αυτά δεν έχει σημασία ποια καμπάνια είναι συνδεδεμένοι στο. Προεπιλογή είναι 1. + +
+
+
+ Κεντρική Sound Control Ενεργό - Αυτή η επιλογή καθορίζει αν το ηχητικό σύστημα συγχρονισμού δραστηριοποιείται σε όλους τους servers. Προεπιλογή είναι 0 για το ανενεργό. + +
+
+
+ Ήχοι Web Server - Αυτό είναι το όνομα του διακομιστή ή τη διεύθυνση IP του web server που θα χειρίζεται τα αρχεία ήχου με αυτό το σύστημα, αυτό πρέπει να ταιριάζει με το όνομα του διακομιστή ή την IP του μηχανήματος που προσπαθείτε να αποκτήσετε πρόσβαση στο audio_store.php την ιστοσελίδα ή δεν θα λειτουργήσει . Προεπιλογή είναι 127.0.0.1. + +
+
+
+ Ήχοι Web Directory - Αυτό που δημιουργείται αυτόματα για όνομα καταλόγου δημιουργείται τυχαία από το σύστημα ως το μέρος που η ακουστική κατάστημα θα διατηρηθεί. Όλα τα μουσικά αρχεία θα διαμένουν σε αυτόν τον κατάλογο. + +
+
+
+ Ενεργή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Server - Σε πολλά συστήματα server, αυτό είναι ο διακομιστής που θα χειριστεί όλα τα τηλεφωνητή κουτιά. Αυτός ο διακομιστής είναι επίσης όταν η dial-in δημιουργείται ζητά θα φορτωθεί από το 8168 εγγραφές. + +
+
+
+ Εξερχόμενο Auto-Dial Ενεργό - Αυτή η επιλογή σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε τον εξερχόμενο αυτόματης κλήσης εντός VICIDIAL, θέτοντας σε αυτόν τον τομέα θα 0 αφαίρεση των καταλόγων και ΦΙΛΤΡΑ πολλά τμήματα και τομείς από το Εκστρατεία Τροποποίηση οθόνες. Εγχειρίδιο εισόδου κλήσης θα εξακολουθεί να είναι εντός των επιτρεπομένων από τον αντιπρόσωπο της οθόνης, αλλά δεν κατάλογο κλήσης θα είναι δυνατή. Η προεπιλογή είναι 1 για ενεργή. + +
+
+
+ Ratio Dial Limit - Αυτό είναι το ανώτατο όριο του επιπέδου αυτόματη κλήση στην οθόνη εκστρατεία. + +
+
+
+ Max ΣΥΜΠΛΗΡΩΣΤΕ ζητεί ανά Δεύτερη - Αυτή η ρύθμιση καθορίζει το μέγιστο αριθμό των κλήσεων που μπορούν να διατεθούν από το auto-ΣΥΜΠΛΗΡΩΣΤΕ εξερχό auto-κλήση δέσμης ενεργειών για όλους τους διακομιστές, ανά δευτερόλεπτο. Πρέπει να είναι από 1 έως 200. Η προεπιλογή είναι 40. + +
+
+
+ Επιτρέψτε Custom dialplan Καταχωρήσεις - Αυτή η επιλογή σας επιτρέπει να εισάγετε έθιμο dialplan γραμμές στο Call μενού. Προεπιλογή είναι 0 για το ανενεργό. + +
+
+
+ Χρήστης Εδάφη Ενεργό - Η ρύθμιση αυτή σας επιτρέπει να ενεργοποιήσετε το χρήστη setttings Εδάφη από την οθόνη τροποποίηση χρήστη. Αυτό το χαρακτηριστικό προστέθηκε ώστε να υπάρχει μεγαλύτερη ενοποίηση με μια προσαρμοσμένη εγκατάσταση vtiger αλλά μπορεί να έχει εφαρμογές σε ένα καθαρό ViciDial συστήματος. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες. + +
+
+
+ Ενεργοποίηση Δεύτερη Webform - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Ενεργοποίηση TTS Ολοκλήρωσης - Η ρύθμιση αυτή σας επιτρέπει να ενεργοποιήσετε Κείμενο Προς ολοκλήρωση Ομιλία με Cepstral. Αυτό είναι προς το παρόν διαθέσιμο μόνο για το εξερχόμενο εκστρατειών τύπου Έρευνα. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες. + +
+
+
+ QC Χαρακτηριστικά Ενεργό - Αυτή η επιλογή σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε τη QC ή Ποιοτικός Έλεγχος χαρακτηριστικά. Η προεπιλογή είναι 0 για το ανενεργό. + +
+
+
+ Επιτρέψτε την αναγραφή QueueMetrics - αυτή η ρύθμιση επιτρέπεισε σας για να καθορίσει εάν VICIDIAL θα παρεμβάλει τιςκαταχωρήσεις κούτσουρων στον πίνακα βάσεων δεδομένων queue_logόπως η δραστηριότητα σειρών αναμονής αστερίσκων. ΤοQueueMetrics είναι ένα πρόγραμμα αυτόνομης, ανάλυσηςκλείνω-πηγής στατιστικό. Πρέπει που εγκαταστάθηκε ήδη ναδιαμορφώσετε QueueMetrics και πρίν επιτρέπετε αυτό τοχαρακτηριστικό γνώρισμα. Η προεπιλογή είναι 0. + +
+
+
+ QueueMetrics κεντρικός υπολογιστής IP - αυτό είναι ηδιεύθυνση IP της βάσης δεδομένων για την εγκατάστασηQueueMetrics σας. + +
+
+
+ QueueMetrics όνομα βάσεων δεδομένων - αυτό είναι το όνομαβάσεων δεδομένων για τη βάση δεδομένων QueueMetrics σας. + +
+
+
+ QueueMetrics σύνδεση βάσεων δεδομένων - αυτό είναι το όνομαχρηστών που χρησιμοποιείται για να συνδεθεί στη βάση δεδομένωνQueueMetrics σας. + +
+
+
+ QueueMetrics κωδικός πρόσβασης βάσεων δεδομένων - αυτό είναιο κωδικός πρόσβασης που χρησιμοποιείται για να συνδεθεί στη βάσηδεδομένων QueueMetrics σας. + +
+
+
+ QueueMetrics URL - αυτό είναι η διεύθυνση URL ήιστοχώρων που χρησιμοποιείται για να φτάσει στην εγκατάστασηQueueMetrics σας. + +
+
+
+ QueueMetrics ταυτότητα κούτσουρων - αυτό είναι η ταυτότητακεντρικών υπολογιστών που όλα τα κούτσουρα VICIDIAL πουπηγαίνουν στη βάση δεδομένων QueueMetrics θα χρησιμοποιήσουν ωςπροσδιοριστικό για κάθε αρχείο. + +
+
+
+ QueueMetrics EnterQueue Prepend - αυτός ο τομέαςχρησιμοποιείται για να επιτρέψει ένας από τους τομείς στοιχείωνvicidial_list μπροστά από τον τηλεφωνικό αριθμό του πελάτη γιατις προσαρμοσμένες εκθέσεις QueueMetrics. Η προεπιλογή δενείναι ΚΑΜΙΑ για να μην εποικήσει τίποτα. + +
+
+
+ Ενεργοποίηση Vtiger Ένταξη - Η ρύθμιση αυτή σας δίνει τη δυνατότητα να επιτρέψει την ένταξη Vtiger με VICIDIAL. Σήμερα Vtiger συνδέσμους προς admin και αναζήτησης του χρήστη, καθώς και την αντιγραφή είναι τα μόνα διαθέσιμα στοιχεία ολοκλήρωσης. Η προεπιλογή είναι 0. + +
+
+
+ Vtiger ΣΠ IP Διακομιστή - Αυτή είναι η διεύθυνση IP της βάσης δεδομένων για την εγκατάσταση Vtiger. + +
+
+
+ Vtiger Database Name - Αυτό είναι το όνομα της βάσης δεδομένων για την βάση δεδομένων σας Vtiger. + +
+
+
+ Σύνδεση Vtiger Database - Αυτό είναι το όνομα χρήστη που χρησιμοποιείται για να συνδεθείτε στο λογαριασμό σας Vtiger βάση δεδομένων. + +
+
+
+ Vtiger Database Password - Αυτό είναι το κωδικό πρόσβασης που χρησιμοποιείται για να συνδεθείτε στο λογαριασμό σας Vtiger βάση δεδομένων. + +
+
+
+ Vtiger URL - Αυτό είναι το URL ή διεύθυνση web site που χρησιμοποιείται για να σας Vtiger εγκατάσταση. + + +



+ + VICIDIAL_STATUSES ΠΙΝΑΚΑΣ

+
+
+ Μέσω της χρήσης των θέσεων συστημάτων, μπορείτε να έχετε τιςθέσεις που υπάρχουν για την εκστρατεία και την-ΟΜΑΔΑ. Η θέσηπρέπει να είναι 1-6 χαρακτήρες στο μήκος, η περιγραφή πρέπεινα είναι 2-30 χαρακτήρες στο μήκος και επιλέξιμος καθορίζειεάν παρουσιάζει σε VICIDIAL ως διάθεση πρακτόρων. Ο τομέαςχρησιμοποιείται κατά τον υπολογισμό του ποσοστού πτώσης, ήεγκαταλείπει το ποσοστό. Η ρύθμιση την στο Υ θα χρησιμοποιήσειαυτήν την θέση κατά υπολογισμό των ανθρώπινος-απαντημένωνκλήσεων. Η επιλογή κατηγορίας επιτρέπει σε σας για ναομαδοποιήσει διάφορες θέσεις σε ένα catogy που μπορεί ναχρησιμοποιηθεί για τη στατιστική ανάλυση. Υπάρχουν επίσης 5 επιπλέον ρυθμίσεις που θα καθορίσει το είδος της κατάστασης: πώληση, DNC, επικοινωνήστε με τον πελάτη, δεν ενδιαφέρονται, ανεφάρμοστη. + + + +



+ + VICIDIAL_STATUS_CATEGORIES ΠΙΝΑΚΑΣ

+
+
+ Μέσω της χρήσης των κατηγοριών θέσης συστημάτων, μπορείτε νασυγκεντρώσετε τις θέσεις για να επιτρέψετε τη στατιστική ανάλυσησε μια ομάδα θέσεων. Η ταυτότητα κατηγορίας πρέπει να είναι2-20 χαρακτήρες στο μήκος χωρίς τα διαστήματα, το όνομαπρέπει να είναι 2-50 χαρακτήρες στο μήκος, η περιγραφή είναιπροαιρετική και η επίδειξη TimeonVDAD καθορίζει εάν εκείνη ηθέση θα είναι ενός θέσης από μέχρι 4 θέσεις που μπορούν ναυπολογιστούν και να επιδειχθούν στο χρόνο στη σε πραγματικό χρόνοέκθεση VDAD. Η Πώληση Κατηγορία και Dead επικεφαλής της κατηγορίας είναι και οι δύο που χρησιμοποιούνται από το σύστημα όταν Κατάλογος Πρόταση αναλύοντας κατάλογο στατιστικών. + + + 0) + { + ?> +



+ + QC VICIDIAL κωδικοί

+
+
+ Ο Ποιοτικός Έλεγχος-QC σύστημα εντός VICIDIAL έχει τους δικούς της κωδικοί χωριστά από εκείνα που, κατά την κλήση των λειτουργιών χειρισμού VICIDIAL. QC statuse κωδικοί πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες και δεν περιέχουν ειδικούς χαρακτήρες όπως ένα χώρο ή παχέος εντέρου. Ο κωδικός QC περιγραφή πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες. + + + + +







+







+ ΤΕΛΟΣ +
+ \n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') + { + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } + } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Εμφάνιση Μετρητή Κληθέντων Οδηγών -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "ΛΙΣΤΕΣ: $camp_lists
\n"; + echo "STATUSES: $dial_statuses
\n"; + echo "FILTER: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=7111111 view sample script with test variables +###################### + +if ($ADD==7111111) + { + ##### TEST VARIABLES ##### + $vendor_lead_code = 'VENDOR:LEAD;CODE'; + $list_id = 'LISTID'; + $gmt_offset_now = 'GMTOFFSET'; + $phone_code = '1'; + $phone_number = '7275551212'; + $title = 'Mr.'; + $first_name = 'JOHN'; + $middle_initial = 'Q'; + $last_name = 'PUBLIC'; + $address1 = '1234 Main St.'; + $address2 = 'Apt. 3'; + $address3 = 'ADDRESS3'; + $city = 'CHICAGO'; + $state = 'IL'; + $province = 'PROVINCE'; + $postal_code = '33760'; + $country_code = 'USA'; + $gender = 'M'; + $date_of_birth = '1970-01-01'; + $alt_phone = '3125551111'; + $email = 'test@test.com'; + $security_phrase = 'SECUTIRY'; + $comments = 'COMMENTS FIELD'; + $RGfullname = 'JOE AGENT'; + $RGuser = '6666'; + $RGlead_id = '1234'; + $RGcampaign = 'TESTCAMP'; + $RGphone_login = 'gs102'; + $RGgroup = 'TESTCAMP'; + $RGchannel_group = 'TESTCAMP'; + $RGSQLdate = date("Y-m-d H:i:s"); + $RGepoch = date("U"); + $RGuniqueid = '1163095830.4136'; + $RGcustomer_zap_channel = 'Zap/1-1'; + $RGserver_ip = '10.10.10.15'; + $RGSIPexten = 'SIP/gs102'; + $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; + + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_text = stripslashes($row[3]); + + if (eregi("iframe src",$script_text)) + { + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address2); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $RGfullname = eregi_replace(' ','+',$RGfullname); + $RGuser = eregi_replace(' ','+',$RGuser); + $RGlead_id = eregi_replace(' ','+',$RGlead_id); + $RGcampaign = eregi_replace(' ','+',$RGcampaign); + $RGphone_login = eregi_replace(' ','+',$RGphone_login); + $RGgroup = eregi_replace(' ','+',$RGgroup); + $RGchannel_group = eregi_replace(' ','+',$RGchannel_group); + $RGSQLdate = eregi_replace(' ','+',$RGSQLdate); + $RGepoch = eregi_replace(' ','+',$RGepoch); + $RGuniqueid = eregi_replace(' ','+',$RGuniqueid); + $RGcustomer_zap_channel = eregi_replace(' ','+',$RGcustomer_zap_channel); + $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); + $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); + $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + + $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); + $script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); + $script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); + $script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); + $script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); + $script_text = eregi_replace('--A--title--B--',"$title",$script_text); + $script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); + $script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); + $script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); + $script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); + $script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); + $script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); + $script_text = eregi_replace('--A--city--B--',"$city",$script_text); + $script_text = eregi_replace('--A--state--B--',"$state",$script_text); + $script_text = eregi_replace('--A--province--B--',"$province",$script_text); + $script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); + $script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); + $script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); + $script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); + $script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); + $script_text = eregi_replace('--A--email--B--',"$email",$script_text); + $script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); + $script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); + $script_text = eregi_replace('--A--fullname--B--',"$RGfullname",$script_text); + $script_text = eregi_replace('--A--fronter--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--user--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--lead_id--B--',"$RGlead_id",$script_text); + $script_text = eregi_replace('--A--campaign--B--',"$RGcampaign",$script_text); + $script_text = eregi_replace('--A--phone_login--B--',"$RGphone_login",$script_text); + $script_text = eregi_replace('--A--group--B--',"$RGgroup",$script_text); + $script_text = eregi_replace('--A--channel_group--B--',"$RGchannel_group",$script_text); + $script_text = eregi_replace('--A--SQLdate--B--',"$RGSQLdate",$script_text); + $script_text = eregi_replace('--A--epoch--B--',"$RGepoch",$script_text); + $script_text = eregi_replace('--A--uniqueid--B--',"$RGuniqueid",$script_text); + $script_text = eregi_replace('--A--customer_zap_channel--B--',"$RGcustomer_zap_channel",$script_text); + $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); + $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); + $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); + $script_text = eregi_replace("\n","
",$script_text); + + + echo ""; + + echo "Προεπισκόπιση Βοηθού: $script_id
\n"; + echo "
\n"; + echo "
$script_name
\n"; + echo "$script_text\n"; + echo "
\n"; + + echo "\n"; + + exit; + } + + +$ADMIN=$PHP_SELF; +require("admin_header.php"); + + + + + +###################################################################################################### +###################################################################################################### +####### 1 series, ADD NEW forms for inserting new records into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=1 display the ADD NEW USER FORM SCREEN +###################### + +if ($ADD=="1") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΧΡΗΣΤΗ
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "
Αριθμός Χρήστη: Auto-Generated $NWB#vicidial_users-user$NWE
Αριθμός Χρήστη: $NWB#vicidial_users-user$NWE
Κωδικός:$NWB#vicidial_users-pass$NWE
Πλήρες Ονομα: $NWB#vicidial_users-full_name$NWE
Επίπεδο Χρήστη: $NWB#vicidial_users-user_level$NWE
Ομάδα Χρήστη:
Τηλέφωνο Σύνδεσης: $NWB#vicidial_users-phone_login$NWE
Κωδικός Πρόσβασης Τηλεφώνου: $NWB#vicidial_users-phone_pass$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1A display the COPY USER FORM SCREEN +###################### + +if ($ADD=="1A") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΧΡΗΣΤΗΣ ΑΝΤΙΓΡΑΦΩΝ\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($LOGuser_level==9) {$levelMAX=10;} + else {$levelMAX=$LOGuser_level;} + + echo "\n"; + echo "\n"; + echo "
Αριθμός Χρήστη: Auto-Generated $NWB#vicidial_users-user$NWE
Αριθμός Χρήστη: $NWB#vicidial_users-user$NWE
Κωδικός:$NWB#vicidial_users-pass$NWE
Πλήρες Ονομα: $NWB#vicidial_users-full_name$NWE
Source Χρήστης: $NWB#vicidial_users-user$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=11 display the ADD NEW CAMPAIGN FORM SCREEN +###################### + +if ($ADD==11) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΕΚΣΤΡΑΤΕΙΑΣ\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
ID Εκστρατείας: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID Εκστρατείας: $NWB#vicidial_campaigns-campaign_id$NWE
Ονομα Εκστρατείας: $NWB#vicidial_campaigns-campaign_name$NWE
Περιγραφή εκστρατείας: $NWB#vicidial_campaigns-campaign_description$NWE
Ενεργή:$NWB#vicidial_campaigns-active$NWE
Τηλ.σύνδ. Στάθμευσης: $NWB#vicidial_campaigns-park_ext$NWE
Ονομα Αρχείου Στάθμευσης: $NWB#vicidial_campaigns-park_file_name$NWE
Ιστο-σελίδα: $NWB#vicidial_campaigns-web_form_address$NWE
Επιτρέπω τους Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_campaigns-next_agent_call$NWE
Χρόνος Τοπικής Κλήσης: $NWB#vicidial_campaigns-local_call_time$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: $NWB#vicidial_campaigns-voicemail_ext$NWE
Βοηθός: $NWB#vicidial_campaigns-campaign_script$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=12 display the COPY CAMPAIGN FORM SCREEN +###################### + +if ($ADD==12) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΑΝΤΙΓΡΑΨΤΕ μια ΕΚΣΤΡΑΤΕΙΑ\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
ID Εκστρατείας: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID Εκστρατείας: $NWB#vicidial_campaigns-campaign_id$NWE
Ονομα Εκστρατείας: $NWB#vicidial_campaigns-campaign_name$NWE
Εκστρατεία πηγής:$NWB#vicidial_campaigns-campaign_id$NWE
ΣΗΜΕΙΩΣΗ: Η αντιγραφή μιας εκστρατείας θα αντιγράψετε όλες τις ρυθμίσεις από τον πλοίαρχο καμπάνια που θα επιλέξετε, αλλά δεν θα αντιγράψετε μια καμπάνια ειδικά DNC λίστα αν υπήρχε ένα master με την επιλεγμένη καμπάνια.
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=111 display the ADD NEW LIST FORM SCREEN +###################### + +if ($ADD==111) + { + if ($LOGmodify_lists==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD A NEW LIST\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Λίστας: Auto-Generated $NWB#vicidial_lists-list_id$NWE
ID Λίστας: (μόνο αριθμοί)$NWB#vicidial_lists-list_id$NWE
Ονομα Λίστας: $NWB#vicidial_lists-list_name$NWE
Περιγραφή καταλόγων: $NWB#vicidial_lists-list_description$NWE
Εκστρατεία: $NWB#vicidial_lists-campaign_id$NWE
Ενεργή:$NWB#vicidial_lists-active$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=121 display the ADD NUMBER TO DNC FORM SCREEN and add a new number +###################### + +if ($ADD==121) + { + echo "
\n"; + echo ""; + + $campaigns_list = "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where use_campaign_dnc IN('Y','AREACODE') order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + if (strlen($phone_numbers) > 2) + { + $PN = explode("\n",$phone_numbers); + $PNct = count($PN); + $p=0; + while ($p < $PNct) + { + if ( (ereg('delete',$stage)) and ($LOGdelete_from_dnc > 0) ) + { + ##### BEGIN DELETE FROM DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC δεν διαγράφεται - Αυτός ο αριθμός τηλεφώνου δεν είναι προς το Do πρόσκληση δεν Κατάλογος: $PN[$p]\n";} + else + { + $stmt="DELETE FROM vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC ΔΙΑΓΡΑΦΟΝΤΑΙ: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC δεν διαγράφεται - Αυτός ο αριθμός τηλεφώνου δεν είναι προς το Do πρόσκληση δεν Κατάλογος: $PN[$p] $campaign_id\n";} + else + { + $stmt="DELETE FROM vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC ΔΙΑΓΡΑΦΟΝΤΑΙ: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END DELETE FROM DNC ##### + } + else + { + ##### BEGIN ADD TO DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC ΠΡΟΣΤΙΘΈΜΕΝΟ - αυτός ο τηλεφωνικός αριθμός είναι ήδη δενκαλεί τον κατάλογο: $PN[$p]\n";} + else + { + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$PN[$p]');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC ΠΡΟΣΤΙΘΈΜΕΝΟ: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN ΠΡΟΣΘΕΣΤΕ ΤΟΝ ΑΡΙΘΜΟ ΣΕ DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC ΠΡΟΣΤΙΘΈΜΕΝΟ - αυτός ο τηλεφωνικός αριθμός είναι ήδη δενκαλεί τον κατάλογο: $PN[$p] $campaign_id\n";} + else + { + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$PN[$p]','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC ΠΡΟΣΤΙΘΈΜΕΝΟ: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN ADD NUMBER TO CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END ADD TO DNC ##### + } + $p++; + } + } + + if ($LOGdelete_from_dnc > 0) + {echo "
Προσθήκη ή Διαγραφή αριθμών από τον κατάλογο DNC\n";} + else + {echo "
ADD αριθμούς στην DNC ΚΑΤΑΛΟΓΟΣ\n";} + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } + echo "\n"; + echo "
List:
Τηλέφωνα:

(έναν αριθμό τηλεφώνου σε κάθε γραμμή μόνο)
$NWB#vicidial_list-dnc$NWE
Προσθήκη ή Διαγραφή:
\n"; + } + + +###################### +# ADD=1111 display the ADD NEW INBOUND GROUP SCREEN +###################### + +if ($ADD==1111) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΕΙΣΕΡΧΟΜΕΝΗΣ ΟΜΑΔΑΣ\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
ID Ομάδας: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID Ομάδας: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Ονομα Ομάδας: $NWB#vicidial_inbound_groups-group_name$NWE
Χρώμα Ομάδας: $NWB#vicidial_inbound_groups-group_color$NWE
Ενεργή:$NWB#vicidial_inbound_groups-active$NWE
Ιστο-σελίδα: $NWB#vicidial_inbound_groups-web_form_address$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Μπροστινή Οθόνη: $NWB#vicidial_inbound_groups-fronter_display$NWE
Βοηθός: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1211 display the COPY INBOUND GROUP SCREEN +###################### + +if ($ADD==1211) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΕΙΣΕΡΧΟΜΕΝΗ ΟΜΑΔΑ ΑΝΤΙΓΡΑΦΩΝ\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
ID Ομάδας: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID Ομάδας: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Ονομα Ομάδας: $NWB#vicidial_inbound_groups-group_name$NWE
Source ID Ομάδας: $NWB#vicidial_inbound_groups-group_id$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1311 display the ADD NEW DID SCREEN +###################### + +if ($ADD==1311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
ADD A NEW DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
DID Επέκταση: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Περιγραφή:$NWB#vicidial_inbound_dids-did_description$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1411 display the COPY DID SCREEN +###################### + +if ($ADD==1411) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
ΑΝΤΙΤΥΠΟ DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
DID Επέκταση: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Περιγραφή:$NWB#vicidial_inbound_dids-did_description$NWE
DID Πηγή:$NWB#vicidial_inbound_dids-did_pattern$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1511 display the ADD NEW CALL MENU SCREEN +###################### + +if ($ADD==1511) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD μια νέα κλήση MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Μενού ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Μενού ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Όνομα μενού: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPY CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Μενού ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Μενού ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Όνομα μενού: $NWB#vicidial_call_menu-menu_name$NWE
Πηγή Μενού: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN +###################### + +if ($ADD==11111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΝΕΩΝ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρήστη Ξεκινά: (μόνο αριθμοί, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Αριθμός Γραμμών: (μόνο αριθμοί)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Διακομιστή: $NWB#vicidial_remote_agents-server_ip$NWE
Εξωτερική Τηλ. Σύνδεση: (ο αριθμός που κλήθηκε από το πλάνο κλήσεων για να καλέσει τους χειριστές)$NWB#vicidial_remote_agents-conf_exten$NWE
Κατάσταση:$NWB#vicidial_remote_agents-status$NWE
Εκστρατεία: $NWB#vicidial_remote_agents-campaign_id$NWE
Εισερχόμενες Ομάδες: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=111111 display the ADD NEW USERS GROUP SCREEN +###################### + +if ($ADD==111111) + { + if ($LOGmodify_usergroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Ομάδα:Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Ομάδα: (όχι κενά ή στίξη)$NWB#vicidial_user_groups-user_group$NWE
Περιγραφή: (περιγραφή ομάδας)$NWB#vicidial_user_groups-group_name$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1111111 display the ADD NEW SCRIPT SCREEN +###################### + +if ($ADD==1111111) + { + if ($LOGmodify_scripts==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD NEW SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ταυτότητα χειρογράφων:: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
Ταυτότητα χειρογράφων:: (όχι κενά ή στίξη)$NWB#vicidial_scripts-script_id$NWE
Όνομα χειρογράφων: (τίτλος του βοηθού)$NWB#vicidial_scripts-script_name$NWE
Σχόλια χειρόγραφου: $NWB#vicidial_scripts-script_comments$NWE
Ενεργή:$NWB#vicidial_scripts-active$NWE
Κείμενο χειρόγραφου: "; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=11111111 display the ADD NEW FILTER SCREEN +###################### + +if ($ADD==11111111) + { + if ($LOGmodify_filters==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΕΣΕ ΦΙΛΤΡΟ\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Φίλτρου: Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
ID Φίλτρου: (όχι κενά ή στίξη)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Όνομα Φίλτρου: (σύντομη περιγραφή του φίλτρου)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Σχόλια Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
SQL Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=111111111 display the ADD NEW CALL TIME SCREEN +###################### + +if ($ADD==111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΧΡΟΝΟΥ ΚΛΗΣΗΣ\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
ID Χρόνου Κλήσης: (όχι κενά ή στίξη)$NWB#vicidial_call_times-call_time_id$NWE
Ονομα Χρόνου Κλήσης: (σύντομη περιγραφή του χρόνου κλήσης)$NWB#vicidial_call_times-call_time_name$NWE
Σχόλια Χρόνου Κλήσης: $NWB#vicidial_call_times-call_time_comments$NWE
Οι επιλογές Ημέρας και ώρας θα εμφανιστούν όταν θα δημιουργήσετε τον Ορισμό Χρόνου Κλήσης
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1111111111 display the ADD NEW STATE CALL TIME SCREEN +###################### + +if ($ADD==1111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
ID Χρόνου Κλήσης Κατάστασης: (όχι κενά ή στίξη)$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: (όχι κενά ή στίξη)$NWB#vicidial_call_times-state_call_time_state$NWE
Ονομα Χρόνου Κλήσης Κατάτασης: (σύντομη περιγραφή του χρόνου κλήσης)$NWB#vicidial_call_times-call_time_name$NWE
Σχόλια Χρόνου Κλήσης Κατάστασης: $NWB#vicidial_call_times-call_time_comments$NWE
Οι επιλογές Ημέρας και ώρας θα εμφανιστούν όταν θα δημιουργήσετε τον Ορισμό Χρόνου Κλήσης
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=131111111 display the ADD NEW SHIFT SCREEN +###################### + +if ($ADD==131111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW SHIFT\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift ID: (όχι κενά ή στίξη)$NWB#vicidial_shifts-shift_id$NWE
Shift Όνομα: (σύντομη περιγραφή της μετατόπισης)$NWB#vicidial_shifts-shift_name$NWE
Shift Ώρα έναρξης:\n"; + echo "   Shift End Time:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Shift Μήκος: $NWB#vicidial_shifts-shift_length$NWE
Shift Καθημερινά:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Κυριακή
\n"; + echo "Δευτέρα
\n"; + echo "Τρίτη
\n"; + echo "Τετάρτη
\n"; + echo "Πέμπτη
\n"; + echo "Παρασκευή
\n"; + echo "Σάββατο
\n"; + echo "
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=11111111111 display the ADD NEW PHONE SCREEN +###################### + +if ($ADD==11111111111) + { + if ($LOGast_admin_access==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΤΗΛΕΦΩΝΟΥ\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Τηλ.σύνδεσης τηλεφώνου: Auto-Generated $NWB#phones-extension$NWE
Τηλ.σύνδεσης τηλεφώνου: $NWB#phones-extension$NWE
Αριθμός Σχεδίου Κλήσεων: (μόνο αριθμοί)$NWB#phones-dialplan_number$NWE
Τηλεφωνητής Box: (μόνο αριθμοί)$NWB#phones-voicemail_id$NWE
Εξερχόμενο CallerID: (μόνο αριθμοί)$NWB#phones-outbound_cid$NWE
Δνση IP Τηλεφώνου: (optional)$NWB#phones-phone_ip$NWE
Δνση IP Υπολογιστή: (optional)$NWB#phones-computer_ip$NWE
IP Διακομιστή: $NWB#phones-server_ip$NWE
Σύνδεση:$NWB#phones-login$NWE
Κωδικός:$NWB#phones-pass$NWE
Κατάσταση:$NWB#phones-status$NWE
Ενεργός Λογαριασμός: $NWB#phones-active$NWE
Τύπος τηλεφώνου: $NWB#phones-phone_type$NWE
Πλήρες Ονομα: $NWB#phones-fullname$NWE
Εταιρία:$NWB#phones-company$NWE
Εικόνα:$NWB#phones-picture$NWE
Προτόκολο Πελάτη: $NWB#phones-protocol$NWE
Τοπικό GMT: (Μην ρυθμίσεις για DST)$NWB#phones-local_gmt$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=12111111111 display the ADD NEW PHONE ALIAS SCREEN +###################### + +if ($ADD==12111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΤΗΛΕΦΩΝΟΥ ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Γνωστός ID:$NWB#phones-alias_id$NWE
Ψευδώνυμο: $NWB#phones-alias_name$NWE
Τηλέφωνο logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=13111111111 display the ADD NEW GROUP ALIAS SCREEN +###################### + +if ($ADD==13111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
ADD μια νέα ομάδα ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Ομάδα Γνωστός ID: $NWB#phones-group_alias_id$NWE
Ομάδα ψευδώνυμο: $NWB#phones-group_alias_name$NWE
CallerID Αριθμός: $NWB#phones-caller_id_number$NWE
CallerID Όνομα: $NWB#phones-caller_id_name$NWE
Ενεργή:
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=111111111111 display the ADD NEW SERVER SCREEN +###################### + +if ($ADD==111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΔΙΑΚΟΜΙΣΤΗ\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Διακομιστή: $NWB#servers-server_id$NWE
Περιγραφή Διακομιστή: $NWB#servers-server_description$NWE
Δνση IP Διακομιστή: $NWB#servers-server_ip$NWE
Ενεργή:$NWB#servers-active$NWE
Εκδοση Asterisk: $NWB#servers-asterisk_version$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=131111111111 display the ADD NEW CONF TEMPLATE SCREEN +###################### + +if ($ADD==131111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Προσθήκη νέου ΠΙΣΤ TEMPLATE\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Αναγνωριστικό: $NWB#vicidial_conf_templates-template_id$NWE
Όνομα: $NWB#vicidial_conf_templates-template_name$NWE
Template Περιεχόμενα: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=141111111111 display the ADD NEW CARRIER SCREEN +###################### + +if ($ADD==141111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Προσθήκη νέου ΘΑΛΑΜΙΣΚΟ\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Θαλαμίσκος ID: $NWB#vicidial_server_carriers-carrier_id$NWE
Φέρον Όνομα: $NWB#vicidial_server_carriers-carrier_name$NWE
Περιγραφή Carrier: $NWB#vicidial_server_carriers-carrier_description$NWE
Εγγραφή String: $NWB#vicidial_server_carriers-registration_string$NWE
Αναγνωριστικό: $NWB#vicidial_server_carriers-template_id$NWE
Λογαριασμός Είσοδος: $NWB#vicidial_server_carriers-account_entry$NWE
Πρωτόκολλο: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Είσοδος: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Διακομιστή: $NWB#vicidial_server_carriers-server_ip$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=151111111111 display the ADD NEW TTS ENTRY SCREEN +###################### + +if ($ADD==151111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Προσθήκη νέου TTS ΕΙΣΟΔΟΣ\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
TTS Όνομα: $NWB#vicidial_tts_prompts-tts_name$NWE
Ενεργή:
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Προσθήκη νέουMusic on Hold ΕΙΣΟΔΟΥ\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $NWB#vicidial_music_on_hold-moh_id$NWE
Music Hold On Όνομα: $NWB#vicidial_music_on_hold-moh_name$NWE
Τυχαία σειρά:
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Προσθήκη νέου ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Ενεργή:
Email:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN +###################### + +if ($ADD==1111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
ΠΡΟΣΘΗΚΗ ΣΥΝΔΙΑΛΕΞΗΣ\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Αριθμός Συνδιάλεξης: (μόνο αριθμοί)$NWB#conferences-conf_exten$NWE
IP Διακομιστή: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=11111111111111 display the ADD NEW VICIDIAL CONFERENCE SCREEN +###################### + +if ($ADD==11111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
ADD A NEW VICIDIAL CONFERENCE\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Αριθμός Συνδιάλεξης: (μόνο αριθμοί)$NWB#conferences-conf_exten$NWE
IP Διακομιστή: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + +###################################################################################################### +###################################################################################################### +####### 2 series, validates form data and inserts the new record into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=2 adds the new user to the system +###################### + +if ($ADD=="2") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας χρήστης με αυτό τον αριθμό\n";} + else + { + if (ereg('AUTOGENERA',$user)) + { + $user = 'AUTOGENERA'; + } + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + { + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
το πλήρες όνομα και κωδικός πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
πρέπει να επιλέξετε μια ομάδα χρηστών\n"; + } + else + { + if (ereg('AUTOGENERA',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + echo "
ΧΡΗΣΤΗΣ ΠΡΟΣΤΕΘΗΚΕ: $user\n"; + + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass) values('$user','$pass','$full_name','$user_level','$user_group','$phone_login','$phone_pass');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='ADD', record_id='$user', event_code='ADMIN ADD USER', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Ενεργό'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + } + } + + $ADD=3; + } + +###################### +# ADD=2A adds the copied new user to the system +###################### + +if ($ADD=="2A") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας χρήστης με αυτό τον αριθμό\n";} + else + { + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + { + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
το πλήρες όνομα και κωδικός πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "\n"; + } + else + { + if (ereg('AUTOGEN',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) SELECT \"$user\",campaign_id,campaign_rank,campaign_weight,\"0\" from vicidial_campaign_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='COPY', record_id='$user', event_code='ADMIN ΧΡΗΣΤΗΣ ΑΝΤΙΓΡΑΦΩΝ', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Ενεργό'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + echo "
USER COPIED: $user copied from $source_user_id\n"; + echo "

\n"; + echo "Click here to go to the user record\n"; + echo "

\n"; + + } + } + exit; + } + +###################### +# ADD=21 adds the new campaign to the system +###################### + +if ($ADD==21) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εκστρατεία με αυτό το ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + { + echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; + echo "
το όνομα της εκστρατείας πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες\n"; + } + else + { + echo "
ΕΚΣΤΡΑΤΕΙΑ ΠΡΟΣΤΕΘΗΚΕ: $campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,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,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$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','$SQLdate','Y','DISABLED','','','');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=20 adds copied new campaign to the system +###################### + +if ($ADD==20) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εκστρατεία με αυτό το ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; + echo "
source το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=22 adds the new campaign status to the system +###################### + +if ($ADD==22) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη κατάσταση-εκστρατείας με αυτό το όνομα\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία καθολική-κατάσταση με αυτό το όνομα\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; + echo "
το όνομα της κατάστασης πρέπει να είναι μεταξύ 2 και 30 χαρακτήρρες\n"; + } + else + { + echo "
ΚΑΤΑΣΤΑΣΗ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΕΘΗΚΕ: $campaign_id - $status\n"; + + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $SUB=22; + $ADD=31; + } + + +###################### +# ADD=23 adds the new campaign hotkey to the system +###################### + +if ($ADD==23) + { + $HKstatus_data = explode('-----',$HKstatus); + $status = $HKstatus_data[0]; + $status_name = $HKstatus_data[1]; + + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_hotkeys where campaign_id='$campaign_id' and hotkey='$hotkey' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; + } + else + { + echo "
ΚΛΕΙΔΙ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΕΘΗΚΕ: $campaign_id - $status - $hotkey\n"; + + $stmt="INSERT INTO vicidial_campaign_hotkeys values('$status','$hotkey','$status_name','$selectable','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ HOTKEY', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=23; + $ADD=31; + } + + +###################### +# ADD=25 adds the new campaign lead recycle entry to the system +###################### + +if ($ADD==25) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - υπάρχει ήδη έναςμόλυβδος-ανακύκλωσης για αυτήν την εκστρατεία με αυτήν την θέση\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
ΑΝΑΚΥΚΛΩΣΗΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - παρακαλώ επιστρέψτεκαι εξετάστε τα στοιχεία που εισαγάγατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + echo "
η καθυστέρηση προσπάθειας πρέπει να είναι τουλάχιστον 120δευτερόλεπτα και λιγότερο από 43.200 δευτερολέπτων ή 12 ωρών\n"; + echo "
οι μέγιστες προσπάθειες πρέπει να είναι από 1 έως 10\n"; + } + else + { + echo "
ΠΡΟΣΤΙΘΕΜΕΝΟΣ ΟΔΗΓΟΣ ΑΝΑΚΥΚΛΩΣΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status - $attempt_delay\n"; + + $stmt="INSERT INTO vicidial_lead_recycle(campaign_id,status,attempt_delay,attempt_maximum,active) values('$campaign_id','$status','$attempt_delay','$attempt_maximum','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=25; + $ADD=31; + } + + +###################### +# ADD=26 adds the new auto alt dial status to the campaign +###################### + +if ($ADD==26) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ - υπάρχει ήδη μια είσοδος για αυτήν την εκστρατεία με αυτήν τηνθέση\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + } + else + { + echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $auto_alt_dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIAL', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ ALT DIAL', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$auto_alt_dial_statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=26; + $ADD=31; + } + + +###################### +# ADD=27 adds the new campaign agent pause code entry to the system +###################### + +if ($ADD==27) + { + echo ""; + $stmt="SELECT count(*) from vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - υπάρχει ήδη μια είσοδος για αυτήν την εκστρατεία με αυτόν τονκώδικα μικρής διακοπής\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; + } + else + { + echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="INSERT INTO vicidial_pause_codes(campaign_id,pause_code,pause_code_name,billable) values('$campaign_id','$pause_code','$pause_code_name','$billable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Κώδικας μικρής διακοπής: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=27; + $ADD=31; + } + + +###################### +# ADD=28 adds new status to the campaign dial statuses +###################### + +if ($ADD==28) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια είσοδος για αυτήν την εκστρατεία με αυτήν τηνθέση\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + } + else + { + echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + #$SUB=28; + $ADD=31; + } + + +###################### +# ADD=211 adds the new list to the system +###################### + +if ($ADD==211) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία λίστα με αυτό το ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + { + echo "
Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID λίστας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες\n"; + echo "
Το όνομα λίστας πρέπει να είναι 2 χαρακτήρες\n"; + echo "
ID Λίστας must be greater than 100\n"; + } + else + { + echo "
ΛΙΣΤΑ ΠΡΟΣΤΕΘΗΚΕ: $list_id\n"; + + $stmt="INSERT INTO vicidial_lists (list_id,list_name,campaign_id,active,list_description,list_changedate) values('$list_id','$list_name','$campaign_id','$active','$list_description','$SQLdate');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='ADD', record_id='$list_id', event_code='ADMIN ADD LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311; + } + + + +###################### +# ADD=2111 adds the new inbound group to the system +###################### + +if ($ADD==2111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία ομάδα με αυτό το ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID ομάδας πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες ' -+'.\n"; + echo "
Το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + 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,web_form_address_two,start_call_url,dispo_call_url) 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); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; + $rslt=mysql_query($stmtA, $link); + + echo "
ΟΜΑΔΑ ΠΡΟΣΤΕΘΗΚΕ: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='ADD', record_id='$group_id', event_code='ADMIN ADD Εισερχόμενα GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2011 adds copied inbound group to the system +###################### + +if ($ADD==2011) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία ομάδα με αυτό το ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID ομάδας πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες ' -+'.\n"; + echo "
Το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + 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,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); + + echo "
ΟΜΑΔΑ ΠΡΟΣΤΕΘΗΚΕ: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN ΕΙΣΕΡΧΟΜΕΝΗ ΟΜΑΔΑ ΑΝΤΙΓΡΑΦΩΝ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2311 adds the new did to the system +###################### + +if ($ADD==2311) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια DID στο σύστημα με αυτό το ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια DID στο σύστημα με την παράταση αυτή\n";} + else + { + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + { + echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern $did_description - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='ADD', record_id='$did_id', event_code='ADMIN ADD DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3311; + } + + +###################### +# ADD=2411 adds copied did to the system +###################### + +if ($ADD==2411) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια DID στο σύστημα με την παράταση αυτή\n";} + else + { + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + { + echo "
Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='COPY', record_id='$did_id', event_code='ADMIN ΑΝΤΙΤΥΠΟ DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3311; + } + + +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Καλέστε Μενού ID πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες και δεν περιέχουν ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
ΠΡΟΣΚΛΗΣΗ MENU ADDED: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Καλέστε Μενού ID πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες και δεν περιέχουν ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
ΠΡΟΣΚΛΗΣΗ MENU ADDED: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=21111 adds new remote agents to the system +###################### + +if ($ADD==21111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_remote_agents where server_ip='$server_ip' and user_start='$user_start';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - υπάρχει ήδη καταχώρηση απομακρυσμένων χειριστών που ξεκινάει με αυτό το ID χρήστη\n";} + else + { + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; + $rslt=mysql_query($stmt, $link); + + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΠΡΟΣΤΕΘΗΚΑΝ: $user_start\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='ADD', record_id='$user_start', event_code='ADMIN ADD REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000; + } + +###################### +# ADD=211111 adds new user group to the system +###################### + +if ($ADD==211111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - υπάρχει ήδη μία καταχώρηση ομάδας χρήστη με αυτό το όνομα\n";} + else + { + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Η ομάδα και η περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; + $rslt=mysql_query($stmt, $link); + + echo "
ΟΜΑΔΑ ΧΡΗΣΤΗ ΠΡΟΣΤΕΘΗΚΕ: $user_group\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='ADD', record_id='$user_group', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΟΜΑΔΑΣ ΧΡΗΣΤΗ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + $ADD=100000; + } + +###################### +# ADD=2111111 adds new script to the system +###################### + +if ($ADD==2111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Ο ΒΟΗΘΟΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μια είσοδος χειρογράφων με αυτό το όνομα\n";} + else + { + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
Ο ΒΟΗΘΟΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το όνομα, η περιγραφή και το κείμενο χειρογράφων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος\n"; + } + else + { + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + echo "
Ο ΒΟΗΘΟΣ ΠΡΟΣΤΕΘΗΚΕ: $script_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΒΟΗΘΟΙ', event_type='ADD', record_id='$script_id', event_code='ADMIN ΠΡΟΣΘΕΣΕ ΒΟΗΘΟ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=1000000; + } + + +###################### +# ADD=21111111 adds new filter to the system +###################### + +if ($ADD==21111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένα φίλτρο με αυτό το ID\n";} + else + { + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID φίλτρου, όνομα και SQL πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + 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='" . mysql_real_escape_string($lead_filter_sql) . "';"; + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|";} + echo "
ΤΟ ΦΙΛΤΡΟ ΠΡΟΣΤΕΘΗΚΕ: $lead_filter_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΦΙΛΤΡΑ', event_type='ADD', record_id='$lead_filter_id', event_code='ADMIN ΠΡΟΣΘΕΣΕ ΦΙΛΤΡΟ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000000; + } + + +###################### +# ADD=211111111 adds new call time definition to the system +###################### + +if ($ADD==211111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - υπάρχει ήδη μία εγγραφή χρόνου κλήσης με αυτό το ID\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID Χρόνου Κλήσης και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
ΠΡΟΣΘΗΚΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111; + } + + +###################### +# ADD=2111111111 adds new state call time definition to the system +###################### + +if ($ADD==2111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εγγραφή χρόνου κλήσης με αυτό το ID\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
Ο ΟΡΙΣΜΟΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες \n"; + } + else + { + $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
ΠΡΟΣΘΗΚΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES_STATE', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111; + } + + +###################### +# ADD=231111111 adds new shift definition to the system +###################### + +if ($ADD==231111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SHIFT ΟΡΙΣΜΟΣ δεν προστίθενται - υπάρχει ήδη μια μετατόπιση προς την παρούσα θέση ID\n";} + else + { + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
SHIFT ΟΡΙΣΜΟΣ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID Shift και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
Shift ώρα έναρξης πρέπει να είναι 4 ψηφία στο μήκος και να είναι μια έγκυρη ώρα\n"; + echo "
Shift Μήκος 5 χαρακτήρες πρέπει να είναι σε μήκος και να είναι 24 ώρες ή λιγότερο\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
SHIFT ΠΡΟΣΤΙΘΕΜΕΝΗ:$shift_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='ADD', record_id='$shift_id', event_code='ADMIN ADD SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111; + } + + +###################### +# ADD=21111111111 adds new phone to the system +###################### + +if ($ADD==21111111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένα τηλέφωνο με αυτή την εσωτ.σύνδεση/διακομιστή\n";} + else + { + $stmt="SELECT count(*) from phones where login='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - υπάρχει ήδη ένα τηλέφωνο στο σύστημα με αυτή τη σύνδεση\n";} + else + { + $stmt="SELECT count(*) from phones_alias where alias_id='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - υπάρχει ήδη ένα τηλέφωνο άλλως στο σύστημα με αυτή τη σύνδεση\n";} + else + { + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID in the system with this ID\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Τα παρακάτω πεδία πρέπει να διαθέτουν στοιχεία: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΠΡΟΣΤΕΘΗΚΕ\n"; + + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + } + $ADD=31111111111; + } + + +###################### +# ADD=22111111111 adds new phone alias to the system +###################### + +if ($ADD==22111111111) + { + echo ""; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE ALIAS δεν προστίθενται - υπάρχει ήδη ένα τηλέφωνο Γνωστός στο σύστημα με αυτό το ID\n";} + else + { + $stmt="SELECT count(*) from phones where login='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE ALIAS δεν προστίθενται - υπάρχει ήδη μια Τηλέφωνο Σύνδεση στο σύστημα με αυτό το ID\n";} + else + { + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
PHONE ALIAS δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
PHONE ALIAS ΠΡΟΣΤΙΘΕΜΕΝΗ\n"; + + $stmt="INSERT INTO phones_alias (alias_id,alias_name,logins_list) values('$alias_id','$alias_name','$logins_list');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='ADD', record_id='$alias_id', event_code='ADMIN ADD PHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=32111111111; + } + + +###################### +# ADD=23111111111 adds new group alias to the system +###################### + +if ($ADD==23111111111) + { + echo ""; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΟΜΑΔΑ ALIAS δεν προστίθενται - υπάρχει ήδη ένα τηλέφωνο Γνωστός στο σύστημα με αυτό το ID\n";} + else + { + if (preg_match("/AGENT_PHONE|CUSTOMER|CAMPAIGN|NONE/",$group_alias_id)) + {echo "
ΟΜΑΔΑ ALIAS δεν προστίθενται - δεν μπορείτε να χρησιμοποιήσετε τις δεσμευμένες λέξεις της ομάδας ψευδώνυμα\n";} + else + { + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ΟΜΑΔΑ ALIAS δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
ΟΜΑΔΑ ALIAS ΠΡΟΣΤΙΘΕΜΕΝΗ\n"; + + $stmt="INSERT INTO groups_alias (group_alias_id,group_alias_name,caller_id_number,caller_id_name,active) values('$group_alias_id','$group_alias_name','$caller_id_number','$caller_id_name','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='ADD', record_id='$group_alias_id', event_code='ADMIN ADD GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=33111111111; + } + + +###################### +# ADD=211111111111 adds new server to the system +###################### + +if ($ADD==211111111111) + { + echo ""; + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το ID\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΠΡΟΣΤΕΘΗΚΕ\n"; + + $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='ADD', record_id='$server_id', event_code='ADMIN ADD SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111111; + } + + +###################### +# ADD=221111111111 adds the new vicidial server trunk record to the system +###################### + +if ($ADD==221111111111) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - ο αριθμός των κορμών είναι πολύ υψηλός: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εγγραφή-κορμού στον εξυπηρετητή για την εκστρατεία\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η εκστρατεία πρέπει να είναι μεταξύ 3 και 8 χαρακτήρων στο μήκος\n"; + echo "
η server_ip καθυστέρηση πρέπει να είναι τουλάχιστον 7 χαρακτήρες\n"; + echo "
οι κορμοί πρέπει να είναι ένα ψηφίο από 0 έως 9999\n"; + } + else + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΠΡΟΣΤΕΘΗΚΕ: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + $stmt="INSERT INTO vicidial_server_trunks(server_ip,campaign_id,dedicated_trunks,trunk_restriction) values('$server_ip','$campaign_id','$dedicated_trunks','$trunk_restriction');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS_TRUNK', event_type='ADD', record_id='$server_ip', event_code='ADMIN ADD ΔΙΑΚΟΜΙΣΤΗΣ TRUNK', event_sql=\"$SQL_log\", event_notes='campaign: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=311111111111; + } + + +###################### +# ADD=231111111111 adds new conf template to the system +###################### + +if ($ADD==231111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΠΙΣΤ TEMPLATE δεν προστίθενται - υπάρχει ήδη ένα πρότυπο σε αυτό το σύστημα, με αυτό το ID\n";} + else + { + if (strlen($template_id) < 2) + {echo "
ΠΙΣΤ TEMPLATE δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
ΠΙΣΤ TEMPLATE ΠΡΟΣΤΙΘΕΜΕΝΗ\n"; + + $stmt="INSERT INTO vicidial_conf_templates (template_id,template_name,template_contents) values('$template_id','$template_name','$template_contents');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='ADD', record_id='$template_id', event_code='ADMIN ADD CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111; + } + + +###################### +# ADD=241111111111 adds new server carrier to the system +###################### + +if ($ADD==241111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΘΑΛΑΜΙΣΚΟ δεν προστίθενται - υπάρχει ήδη ένα μεταφορέα στο σύστημα με αυτό το ID\n";} + else + { + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + {echo "
ΘΑΛΑΜΙΣΚΟ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
CARRIER ADDED\n"; + + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='ADD', record_id='$carrier_id', event_code='ADMIN ADD CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111; + } + + +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS ΕΙΣΟΔΟΥ δεν προστίθενται - υπάρχει ήδη TTS εισόδου στο σύστημα με αυτό το αναγνωριστικό\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS ΕΙΣΟΔΟΥ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
TTS ΕΙΣΟΔΟΥ ADDED\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Music on Hold ΕΙΣΟΔΟΥ δεν προστίθενται - υπάρχει ήδη moh εισόδου στο σύστημα με αυτό το αναγνωριστικό\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music on Hold ΕΙΣΟΔΟΥ δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
Music on Hold ΕΙΣΟΔΟΥ ADDED\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν προστίθενται - υπάρχει ήδη ένα φωνητικό κουτί στο σύστημα με αυτό το αναγνωριστικό\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν προστίθενται - υπάρχει ήδη ένα τηλέφωνο στο σύστημα με αυτό το μήνυμα ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν προστίθενται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX ADDED\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + +###################### +# ADD=2111111111111 adds new conference to the system +###################### + +if ($ADD==2111111111111) + { + echo ""; + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτό το ID και διακομιστή\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΠΡΟΣΤΕΘΗΚΕ\n"; + + $stmt="INSERT INTO conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111111; + } + + +###################### +# ADD=21111111111111 adds new vicidial conference to the system +###################### + +if ($ADD==21111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΠΡΟΣΤΕΘΗΚΕ\n"; + + $stmt="INSERT INTO vicidial_conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=31111111111111; + } + + +###################### +# ADD=221111111111111 adds the new system status to the system +###################### + +if ($ADD==221111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ - there is already a campaign-status in the system with this name: $row[0]\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ - there is already a global-status in the system with this name\n";} + else + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες\n"; + echo "
το όνομα της κατάστασης πρέπει να είναι μεταξύ 2 και 30 χαρακτήρρες\n"; + } + else + { + echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ: $status_name - $status\n"; + + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='ADD', record_id='$status', event_code='ADMIN ADD SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=321111111111111; + } + + +###################### +# ADD=231111111111111 adds the new status category to the system +###################### + +if ($ADD==231111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - υπάρχει ήδη μια κατηγορία θέσης στο σύστημα με αυτήν τηνταυτότητα: $row[0]\n";} + else + { + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + { + echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Η ταυτότητα πρέπει να είναι μεταξύ 2 και 20 χαρακτήρων στο μήκος\n"; + echo "
το όνομα ονόματος πρέπει να είναι μεταξύ 2 και 50 χαρακτήρων στομήκος\n"; + } + else + { + echo "
STATUS ΚΑΤΗΓΟΡΙΑ ADDED: $vsc_id - $vsc_name\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
ΛΑΘΟΣ: Υπάρχουν ήδη 4 κατηγορίες θέσης καθορισμένες την επίδειξηTimeOnVDAD\n"; + } + + $stmt="INSERT INTO vicidial_status_categories (vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category) values('$vsc_id','$vsc_name','$vsc_description','$tovdad_display','$sale_category','$dead_lead_category');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='ADD', record_id='$vsc_id', event_code='ADMIN ADD STATUS ΚΑΤΗΓΟΡΙΑ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111111; + } + + + +###################### +# ADD=241111111111111 adds the new qc status code to the system +###################### + +if ($ADD==241111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
QC Κατάσταση ΚΩΔΙΚΟΣ δεν προστίθενται- υπάρχει ήδη μια qc κωδικό στο σύστημα με αυτό το όνομα: $row[0]\n";} + else + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC Κατάσταση ΚΩΔΙΚΟΣ δεν προστίθενται- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
κωδικός πρέπει να είναι μεταξύ 1 και 8 χαρακτήρες\n"; + echo "
κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; + } + else + { + echo "
QC Κατάσταση ΠΡΟΣΤΙΘΕΝΤΑΙ ΚΩΔΙΚΟΣ:$code_name - $code\n"; + + $stmt="INSERT INTO vicidial_qc_codes (code,code_name) values('$code','$code_name');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCSTATUSES', event_type='ADD', record_id='$code', event_code='ADMIN ADD QC STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111111; + } + + + +###################################################################################################### +###################################################################################################### +####### 4 series, record modifications submitted and DB is modified, then on to 3 series forms below +###################################################################################################### +###################################################################################################### + + + +###################### +# ADD=4A submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4A") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Ενεργό'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4B submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4B") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Ενεργό'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4 submit user modifications to the system +###################### + +if ($ADD==4) + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα\n"; + } + else + { + echo "
ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Ενεργό'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3; # go to user modification below + } + +###################### +# ADD=41 submit campaign modifications to the system - DETAIL +###################### + +if ($ADD==41) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $survey_camp_record_dir = '/home/survey'; + $survey_dtmf_digits = '1238'; + $survey_first_audio_file = 'US_pol_survey_hello'; + $survey_method = 'AGENT_XFER'; + $survey_ni_audio_file = ''; + $survey_ni_digit = '8'; + $survey_ni_status = 'NI'; + $survey_no_response_action = 'OPTIN'; + $survey_opt_in_audio_file = 'US_pol_survey_transfer'; + $survey_response_digit_map = '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|'; + $survey_xfer_exten = '8300'; + $voicemail_ext = ''; + $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
ΔΡΑΣΤΙΚΗΣ ΚΑΤΑΛΟΓΟΙ ΜΕΤΑΒΑΛΛΟΜΕΝΩΝ"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE ΛΙΣΤΕΣ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το όνομα της εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες\n"; + echo "
|$campaign_name|$active|\n"; + } + else + { + echo "
ΕΣΤΡΑΤΕΙΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $campaign_id\n"; + + if ( ($dial_method != 'MANUAL') and ($dial_method != 'Εισερχόμενα_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; + } + else + { + if ($dial_level_override > 0) + { + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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', $adlSQL 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',drop_action='$drop_action',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',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + if ($reset_hopper == 'Y') + { + echo "
ΕΠΑΝΑΦΟΡΑ ΚΑΘΟΘΗΓΗΤΗ ΕΚΣΤΡΑΤΕΙΑΣ HOPPER\n"; + echo "
- Αναμονή 1 λεπτού πριν την κλήση του επόμενου αριθμού\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=42 modify/delete campaign status in the system +###################### + +if ($ADD==42) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το ID της εκστρατείας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
η κατάσταση της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
ΔΙΑΓΡΑΦΗΚΕ Η ΠΡΟΣΑΡΜΟΣΜΕΝΗ ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status\n"; + + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
ΘΕΣΗ ΕΚΣΤΡΑΤΕΙΑΣ ΣΥΝΗΘΕΙΑΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=43 delete campaign hotkey in the system +###################### + +if ($ADD==43) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το ID της εκστρατείας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
η κατάσταση της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
ΔΙΑΦΡΑΦΗΚΕ ΤΟ ΠΡΟΣΑΡΜΟΣΜΕΝΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status - $hotkey\n"; + + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=44 submit campaign modifications to the system - Basic View +###################### + +if ($ADD==44) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $voicemail_ext = ''; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
ΔΡΑΣΤΙΚΗΣ ΚΑΤΑΛΟΓΟΙ ΜΕΤΑΒΑΛΛΟΜΕΝΩΝ"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE ΛΙΣΤΕΣ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το όνομα της εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες\n"; + } + else + { + echo "
ΕΣΤΡΑΤΕΙΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $campaign_id\n"; + + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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',hopper_level='$hopper_level', $adlSQL lead_filter_id='$lead_filter_id',dial_method='$dial_method',adaptive_intensity='$adaptive_intensity',campaign_changedate='$SQLdate',list_order_mix='$list_order_mix' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_hopper == 'Y') + { + echo "
ΕΠΑΝΑΦΟΡΑ ΚΑΘΟΘΗΓΗΤΗ ΕΚΣΤΡΑΤΕΙΑΣ HOPPER\n"; + echo "
- Αναμονή 1 λεπτού πριν την κλήση του επόμενου αριθμού\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=34; # go to campaign modification form below + } + + +###################### +# ADD=45 modify campaign lead recycle in the system +###################### + +if ($ADD==45) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + echo "
η καθυστέρηση προσπάθειας πρέπει να είναι τουλάχιστον 120δευτερόλεπτα και λιγότερο από 43.200 δευτερολέπτων ή 12 ωρών\n"; + echo "
οι μέγιστες προσπάθειες πρέπει να είναι από 1 έως 10\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=47 modify agent pause code in the system +###################### + +if ($ADD==47) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες\n"; + } + else + { + echo "
ΧΕΙΡΙΣΤΗΣPAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=48 modify campaign QC settings in the system +###################### +if ($ADD==48) + { + if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
QC SETTINGS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
QC SETTINGS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=40A modify campaign survey settings in the system +###################### + +if ($ADD=='40A') + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
ΕΡΕΥΝΑ SETTINGS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + } + else + { + echo "
ΕΡΕΥΝΑ SETTINGS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=49 modify campaign list mix in the system +###################### + +if ($ADD==49) + { + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### + if ($stage=='MODIFY') + { + echo ""; + + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; + + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $list_id\n"; + } + } + + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: Δεν μπορείτε να διαγράψετε το τελευταίο λήμμα list_id από έναμίγμα καταλόγων\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ- Υπάρχει ήδη ένα μίγμα καταλόγων με αυτήν την ταυτότητα στοσύστημα\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΕΝ ΕΝΕΡΓΟΠΟΙΕΙΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Κατάλογος Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΕΝΕΡΓΟΠΟΙΕΙΤΑΙ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=411 submit list modifications to the system +###################### + +if ($ADD==411) + { + if ($LOGmodify_lists==1) + { + echo ""; + + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + { + echo "
Η ΛΙΣΤΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
η λίστα πρέπει να είναι τουλαχιστον 2 χαρακτήρες\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
ΛΙΣΤΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_list == 'Y') + { + echo "
ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΛΙΣΤΑΣ\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
ΑΠΟΜΑΚΡΥΝΣΗ ΚΑΘΟΔΗΓΗΤΩΝ ΛΙΣΤΑΣ HOPPER ΑΠΟ ΠΑΛΑΙΑ HOPPER ΕΚΣΤΡΑΤΕΙΑ ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311; # go to list modification form below + } + + +###################### +# ADD=4111 modify in-group info in the system +###################### + +if ($ADD==4111) + { + if ($LOGmodify_ingroups==1) + { + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) + { + echo "
Η ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
ΟΜΑΔΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $group_id\n"; + + $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_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3111; # go to in-group modification form below + } + + +###################### +# ADD=4311 modify did info in the system +###################### + +if ($ADD==4311) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
Δέν ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
DID ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $did_pattern\n"; + + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3311; # go to did modification form below + } + + +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
ΠΡΟΣΚΛΗΣΗ μενού δεν MODIFIED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU MODIFIED: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + if ($LOGmodify_remoteagents==1) + { + echo ""; + + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Το ID του χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below + } + + +###################### +# ADD=411111 modify user group info in the system +###################### + +if ($ADD==411111) + { + if ($LOGmodify_usergroups==1) + { + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
Η ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n"; + echo "
Η ομάδα και η περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); + + echo "
ΟΜΑΔΑ ΧΡΗΣΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY ΟΜΑΔΑ ΧΡΗΣΤΩΝ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111; # go to user group modification form below + } + + +###################### +# ADD=4111111 modify script in the system +###################### + +if ($ADD==4111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
Ο ΒΟΗΘΟΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το όνομα, η περιγραφή και το κείμενο χειρογράφων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος\n"; + } + else + { + $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); + + echo "
Ο ΒΟΗΘΟΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΒΟΗΘΟΙ', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3111111; # go to script modification form below + } + + +###################### +# ADD=41111111 modify filter in the system +###################### + +if ($ADD==41111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID φίλτρου, όνομα και SQL πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $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); + + echo "
ΤΟ ΦΙΛΤΡΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΦΙΛΤΡΑ', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31111111; # go to filter modification form below + } + + +###################### +# ADD=411111111 modify call time in the system +###################### + +if ($ADD==411111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
ΧΟΝΟΣ ΚΛΗΣΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID Χρόνου Κλήσης και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
ΤΡΟΠΟΠΟΙΗΘΗΚΕ ΧΡΟΝΟΣ ΚΛΗΣΗΣ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111111; # go to call time modification form below + } + + +###################### +# ADD=4111111111 modify state call time in the system +###################### + +if ($ADD==4111111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες \n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
ΤΡΟΠΟΠΟΙΗΘΗΚΕ ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below + } + + +###################### +# ADD=431111111 modify shift in the system +###################### + +if ($ADD==431111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
SHIFT DEFINITION NOT MODIFIED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID Shift και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + echo "
Shift ώρα έναρξης πρέπει να είναι 4 ψηφία στο μήκος και να είναι μια έγκυρη ώρα\n"; + echo "
Shift Μήκος 5 χαρακτήρες πρέπει να είναι σε μήκος και να είναι 24 ώρες ή λιγότερο\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
SHIFT ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=331111111; # go to shift modification form below + } + + +###################### +# ADD=41111111111 modify phone record in the system +###################### + +if ($ADD==41111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένα τηλέφωνο με αυτή την εσωτ.σύνδεση/διακομιστή\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $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='" . 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', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ', event_sql=\"$SQL_log\", event_notes='IP Διακομιστή: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below + } + + +###################### +# ADD=42111111111 modify phone alias record in the system +###################### + +if ($ADD==42111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
PHONE ALIAS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
PHONE ALIAS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $alias_id\n"; + + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below + } + + +###################### +# ADD=43111111111 modify group alias record in the system +###################### + +if ($ADD==43111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ALIAS ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + echo "
ΟΜΑΔΑ ALIAS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $alias_id\n"; + + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFY GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below + } + + +###################### +# ADD=411111111111 modify server record in the system +###################### + +if ($ADD==411111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
ΔΙΑΚΟΜΙΣΤΗΣ NOT MODIFIED - there is already a server in the system with this server_id\n";} + else + { + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το IP\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Ο ΔΙΑΚΟΜΙΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $server_ip\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=421111111111 modify vicidial server trunks record in the system +###################### + +if ($ADD==421111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - ο αριθμός των κορμών είναι πολύ υψηλός: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η εκστρατεία πρέπει να είναι μεταξύ 3 και 8 χαρακτήρων στο μήκος\n"; + echo "
η server_ip καθυστέρηση πρέπει να είναι τουλάχιστον 7 χαρακτήρες\n"; + echo "
οι κορμοί πρέπει να είναι ένα ψηφίο από 0 έως 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERΜπαούλα', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ TRUNK', event_sql=\"$SQL_log\", event_notes='Εκστρατεία: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=431111111111 modify conf template record in the system +###################### '$template_id','$template_name','$template_contents' + +if ($ADD==431111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
ΠΙΣΤ TEMPLATE ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY ΠΙΣΤ TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below + } + + +###################### +# ADD=441111111111 modify carrier record in the system +###################### + +if ($ADD==441111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
ΔΕΝ ΘΑΛΑΜΙΣΚΟ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + echo "
ΘΑΛΑΜΙΣΚΟ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY ΘΑΛΑΜΙΣΚΟ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS ΕΙΣΟΔΟΥ μη τροποποιημένες - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS ΕΙΣΟΔΟΥ MODIFIED: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music on Hold ΕΙΣΟΔΟΥ μη τροποποιημένες - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Music on Hold ΕΙΣΟΔΟΥ MODIFIED: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music on Hold ΕΙΣΟΔΟΥ μη τροποποιημένες - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Music on Hold ΕΙΣΟΔΟΥ MODIFIED: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX μη τροποποιημένες - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX MODIFIED: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below + } + + +###################### +# ADD=4111111111111 modify conference record in the system +###################### + +if ($ADD==4111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτή την εσωτ.σύνδεση-διακομιστή\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
Η ΣΥΝΔΙΑΛΕΞΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below + } + + +###################### +# ADD=41111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==41111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτή την εσωτ.σύνδεση-διακομιστή\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + echo "
VICIDIAL Η ΣΥΝΔΙΑΛΕΞΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ: $conf_exten\n"; + + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below + } + + +###################### +# ADD=411111111111111 modify vicidial system settings +###################### + +if ($ADD==411111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + echo "
VICIDIAL ΤΟΠΟΘΕΤΗΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΕΣ\n"; + + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSETTINGS', event_type='MODIFY', record_id='system_settings', event_code='ADMIN MODIFY SYSTEM SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111111111111; # go to vicidial system settings form below + } + + +###################### +# ADD=421111111111111 modify/delete system status in the system +###################### + +if ($ADD==421111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($status) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$status)) ) + { + echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η θέση συστημάτων δεν μπορεί να είναι μια διατηρημένη θέση:B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
η θέση συστημάτων πρέπει να είναι χαρακτήρες τουλάχιστον 1 στομήκος\n"; + } + else + { + echo "
SYSTEM STATUS DELETED: $status\n"; + + $stmt="DELETE FROM vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='DELETE', record_id='$status', event_code='ADMIN DELETE SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η θέση συστημάτων πρέπει να είναι χαρακτήρες τουλάχιστον 1 στομήκος\n"; + echo "
το όνομα θέσης συστημάτων πρέπει να είναι χαρακτήρεςτουλάχιστον 1 στο μήκος\n"; + } + else + { + echo "
ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΗ: $status\n"; + + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='MODIFY', record_id='$status', event_code='ADMIN MODIFY SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=321111111111111; # go to system settings modification form below + } + + +###################### +# ADD=431111111111111 modify/delete status category in the system +###################### + +if ($ADD==431111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + { + echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατηγορία θέσης δεν μπορεί να είναι μια διατηρημένη κατηγορία:UNDEFINED\n"; + echo "
η κατηγορία θέσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες στομήκος\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ: $vsc_id\n"; + + $stmt="DELETE FROM vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE STATUS ΚΑΤΗΓΟΡΙΑ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ: $vsc_id\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
ΛΑΘΟΣ: Υπάρχουν ήδη 4 κατηγορίες θέσης καθορισμένες την επίδειξηTimeOnVDAD\n"; + } + + $stmt="UPDATE vicidial_status_categories SET vsc_name='$vsc_name',vsc_description='$vsc_description',tovdad_display='$tovdad_display',sale_category='$sale_category',dead_lead_category='$dead_lead_category' where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY STATUS ΚΑΤΗΓΟΡΙΑ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=331111111111111; # go to system settings modification form below + } + + +###################### +# ADD=441111111111111 modify/delete qc status code in the system +###################### + +if ($ADD==441111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
QC Κατάσταση ΚΩΔΙΚΟΣ δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
η qc κωδικός πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; + } + else + { + echo "
QC Κατάσταση ΔΙΕΓΡΑΜΜΕΝΩΝ ΚΩΔΙΚΟΣ:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC Κατάσταση ΚΩΔΙΚΟΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ- Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η qc κωδικός πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; + echo "
qc το κωδικό όνομα πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος\n"; + } + else + { + echo "
QC Κατάσταση ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΚΩΔΙΚΟΣ:$code\n"; + + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below + } + + + + +###################################################################################################### +###################################################################################################### +####### 5 series, delete records confirmation +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=5 confirmation before deletion of user +###################### + +if ($ADD==5) + { + echo ""; + + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + { + echo "
ΧΡΗΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Χρήστης be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΗΣΤΗ: $user\n"; + echo "

Χτυπήστε εδώ για να διαγράψετε το χρήστη $user


\n"; + } + + $ADD='3'; # go to user modification below + } + +###################### +# ADD=51 confirmation before deletion of campaign +###################### + +if ($ADD==51) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + { + echo "
ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id\n"; + echo "

Χτυπήστε εδώ για να διαγράψετε την εκστρατεία $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=52 confirmation before logging all agents out of campaign of campaign +###################### + +if ($ADD==52) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
ΧΕΙΡΙΣΤΕΣ ΠΟΥ ΔΕΝ ΕΙΝΑΙ ΑΠΟΣΥΝΔΕΜΕΝΟΙ ΑΠΟ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΑΠΟΣΥΝΔΕΣΗΣ ΧΕΙΡΙΣΤΩΝ: $campaign_id\n"; + echo "

Επιλέξτε εδώ για να αποσυνδέσετε όλους τους χειριστές από $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record +###################### + +if ($ADD==53) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC ΔΕΝ ΚΑΘΑΡΙΣΤΗΚΕ ΓΙΑ ΤΗΝ ΕΚΣΤΡΑΤΕΊΑ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΚΑΘΑΡΙΣΜΟΥ VDAC: $campaign_id\n"; + echo "

Επιλέξτε εδώ για να διαγράψετε την παλαιότερη ΖΩΝΤΑΝΗ εγγραφή στο VDAC για $campaign_id


\n"; + } + + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + +###################### +# ADD=511 confirmation before deletion of list +###################### + +if ($ADD==511) + { + echo ""; + + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + { + echo "
ΛΙΣΤΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΛΙΣΤΑΣ: $list_id\n"; + echo "

Χτυπήστε εδώ για να διαγράψετε τον κατάλογο και όλους τους οδηγούς του $list_id


\n"; + } + + $ADD='311'; # go to campaign modification below + } + +###################### +# ADD=5111 confirmation before deletion of in-group +###################### + +if ($ADD==5111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + { + echo "
ΕΙΣ-ΟΜΑΔΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΕΙΣ-ΟΜΑΔΑΣ: $group_id\n"; + echo "

Επιλέξτε εδώ για να διαγράψετε την-ΟΜΑΔΑ $group_id


\n"; + } + + $ADD='3111'; # go to in-group modification below + } + +###################### +# ADD=5311 confirmation before deletion of did +###################### + +if ($ADD==5311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + { + echo "
ΔΕΝ ΚΑΤΑΡΓΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + echo "
DID DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $menu_id\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετεDID $did_id


\n"; + } + + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ: $menu_id\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε ΠΡΟΣΚΛΗΣΗ MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } + +###################### +# ADD=51111 confirmation before deletion of remote agent record +###################### + +if ($ADD==51111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + { + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΧΕΙΡΙΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ : $remote_agent_id\n"; + echo "

Επιλέξτε εδώ για να διαγράψετε τον απομακρυσμένο χειριστή $remote_agent_id


\n"; + } + + $ADD='31111'; # go to remote agent modification below + } + +###################### +# ADD=511111 confirmation before deletion of user group record +###################### + +if ($ADD==511111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + { + echo "
ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Χρήστης_group be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ: $user_group\n"; + echo "

Επιλέξτε εδώ για να διαγράψετε την ομάδα χρηστών $user_group


\n"; + } + + $ADD='311111'; # go to user group modification below + } + +###################### +# ADD=5111111 confirmation before deletion of script record +###################### + +if ($ADD==5111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + { + echo "
ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ Ο ΒΟΗΘΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Script_id must be at least 2 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΒΟΗΘΟΥ: $script_id\n"; + echo "

επιλέξτε εδώ για να διαγράψετε τον βοηθό $script_id


\n"; + } + + $ADD='3111111'; # go to script modification below + } + +###################### +# ADD=51111111 confirmation before deletion of filter record +###################### + +if ($ADD==51111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + { + echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
To ID φίλτρου πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; + echo "

Πατήστε εδώ για διαγραφή του φίλτρου$lead_filter_id


\n"; + } + + $ADD='31111111'; # go to filter modification below + } + +###################### +# ADD=511111111 confirmation before deletion of call time record +###################### + +if ($ADD==511111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
Ο ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ: $call_time_id\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετεcall time $call_time_id


\n"; + } + + $ADD='311111111'; # go to call time modification below + } + +###################### +# ADD=5111111111 confirmation before deletion of state call time record +###################### + +if ($ADD==5111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
Ο ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ: $call_time_id\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετεstate call time $call_time_id


\n"; + } + + $ADD='3111111111'; # go to state call time modification below + } + +###################### +# ADD=531111111 confirmation before deletion of shift record +###################### + +if ($ADD==531111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
SHIFT δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + echo "
SHIFT DELETION CONFIRMATION:$shift_id\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε στροφή $shift_id


\n"; + } + + $ADD='331111111'; # go to call time modification below + } + +###################### +# ADD=51111111111 confirmation before deletion of phone record +###################### + +if ($ADD==51111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; + } + else + { + echo "
ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΤΗΛΕΦΩΝΟΥ: $extension - $server_ip\n"; + echo "

Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο $extension - $server_ip


\n"; + } + $ADD='31111111111'; # go to phone modification below + } + + +###################### +# ADD=52111111111 confirmation before deletion of phone alias record +###################### + +if ($ADD==52111111111) + { + echo ""; + + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
PHONE ALIAS δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + echo "
PHONE ALIAS DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $alias_id\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε τηλέφωνο άλλως $alias_id


\n"; + } + $ADD='32111111111'; # go to phone alias modification below + } + + +###################### +# ADD=53111111111 confirmation before deletion of group alias record +###################### + +if ($ADD==53111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
ΟΜΑΔΑ ALIAS δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Ομάδα Γνωστός ID must be at least 2 characters in length\n"; + } + else + { + echo "
ΟΜΑΔΑ ALIAS DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $group_alias_id\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε ομάδα άλλως $group_alias_id


\n"; + } + $ADD='33111111111'; # go to group alias modification below + } + + +###################### +# ADD=511111111111 confirmation before deletion of server record +###################### + +if ($ADD==511111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
ΔΙΑΚΟΜΙΣΤΗΣ NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID Διακομιστή be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; + } + else + { + echo "
ΔΙΑΚΟΜΙΣΤΗΣ DELETION CONFIRMATION: $server_id - $server_ip\n"; + echo "

Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο $server_id - $server_ip


\n"; + } + $ADD='311111111111'; # go to server modification below + } + + +###################### +# ADD=531111111111 confirmation before deletion of conf template record +###################### + +if ($ADD==531111111111) + { + echo ""; + + if (strlen($template_id) < 2) + { + echo "
ΠΙΣΤ TEMPLATE δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Πρότυπο ID να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + echo "
ΠΙΣΤ TEMPLATE DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $template_id - $template_name\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε το πρότυπο conf $template_id - $template_name


\n"; + } + $ADD='331111111111'; # go to conf template modification below + } + + +###################### +# ADD=541111111111 confirmation before deletion of carrier record +###################### + +if ($ADD==541111111111) + { + echo ""; + + if (strlen($carrier_id) < 2) + { + echo "
ΘΑΛΑΜΙΣΚΟ δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Θαλαμίσκος ID να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + echo "
ΘΑΛΑΜΙΣΚΟ DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ: $carrier_id - $carrier_name\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε μεταφορέα $carrier_id - $carrier_name


\n"; + } + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS ΕΙΣΟΔΟΥ δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS ΕΙΣΟΔΟΥ ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ: $tts_id - $tts_name\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε TTS εισόδου $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
Music on Hold ΕΙΣΟΔΟΥ δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
Music on Hold ΕΙΣΟΔΟΥ ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ: $moh_id - $moh_name\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε μουσική σε αναμονή εισόδου $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID be at least 2 characters in length\n"; + } + else + { + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ: $voicemail_id - $fullname\n"; + echo "

Κάντε κλικ εδώ για να διαγράψετε τηλεφωνητή κουτί $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } + + +###################### +# ADD=5111111111111 confirmation before deletion of conference record +###################### + +if ($ADD==5111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; + } + else + { + echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο $conf_exten - $server_ip


\n"; + } + $ADD='3111111111111'; # go to conference modification below + } + + +###################### +# ADD=51111111111111 confirmation before deletion of vicidial conference record +###################### + +if ($ADD==51111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; + } + else + { + echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο $conf_exten - $server_ip


\n"; + } + $ADD='31111111111111'; # go to vicidial conference modification below + } + + + +###################################################################################################### +###################################################################################################### +####### 6 series, delete records +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=6 delete user record +###################### + +if ($ADD==6) + { + echo ""; + + if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) + { + echo "
ΧΡΗΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Χρήστης be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_users where user='$user' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΧΡΗΣΤΕΣ', event_type='DELETE', record_id='$user', event_code='ADMIN DELETE USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΔΙΑΓΡΑΦΗ ΧΡΗΣΤΗ ΟΛΟΚΛΗΡΩΘΗΚΕ: $user\n"; + echo "

\n"; + } + + $ADD='0'; # go to user list + } + +###################### +# ADD=61 delete campaign record +###################### + +if ($ADD==61) + { + echo ""; + + if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) + { + echo "
ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_campaigns where campaign_id='$campaign_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_statuses where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_hotkeys where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_callbacks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_lead_recycle where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_server_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_server_trunks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_pause_codes where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaigns_list_mix where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
ΑΠΟΜΑΚΡΥΝΣΗ ΚΑΘΟΔΗΓΗΤΩΝ ΛΙΣΤΑΣ HOPPER ΑΠΟ ΠΑΛΑΙΑ HOPPER ΕΚΣΤΡΑΤΕΙΑ ($campaign_id)\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΔΙΑΓΡΑΦΗ ΕΚΣΤΡΑΤΕΙΑΣ ΟΛΟΚΛΗΡΩΘΗΚΕ: $campaign_id\n"; + echo "

\n"; + } + + $ADD='10'; # go to campaigns list + } + + +###################### +# ADD=62 Logout all agents from a campaign +###################### + +if ($ADD==62) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
ΧΕΙΡΙΣΤΕΣ ΠΟΥ ΔΕΝ ΕΙΝΑΙ ΑΠΟΣΥΝΔΕΜΕΝΟΙ ΑΠΟ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; + } + else + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='LOGOUT', record_id='$campaign_id', event_code='ADMIN LOGOUT CAMPAIGN AGENTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΑΠΟΣΥΝΔΕΣΗ ΧΕΙΡΙΣΤΩΝ ΟΛΟΚΛΗΡΩΘΗΚΕ: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD='31'; # go to campaign modification below + } + + +###################### +# ADD=63 Emergency VDAC Jam Clear +###################### + +if ($ADD==63) + { + if ($LOGmodify_campaigns==1) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC ΔΕΝ ΚΑΘΑΡΙΣΤΗΚΕ ΓΙΑ ΤΗΝ ΕΚΣΤΡΑΤΕΊΑ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Εκστρατεία_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_auto_calls where status='LIVE' and campaign_id='$campaign_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN JAM', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΤΕΛΕΥΤΑΙΑ ΕΓΓΡΑΦΗ VDAC ΠΟΥ ΚΑΘΑΡΙΖΕΤΑΙ ΓΙΑ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + + +###################### +# ADD=65 delete campaign lead recycle in the system +###################### + +if ($ADD==65) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ Ο ΟΔΗΓΟΣ ΑΝΑΚΥΚΛΩΣΗΣ ΕΚΣΤΡΑΤΕΙΑΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + echo "
η καθυστέρηση προσπάθειας πρέπει να είναι τουλάχιστον 120δευτερόλεπτα\n"; + echo "
οι μέγιστες προσπάθειες πρέπει να είναι από 1 έως 10\n"; + } + else + { + echo "
ΔΙΑΓΡΑΦΗΚΕ Ο ΟΔΗΓΟΣ ΑΝΑΚΥΚΛΩΣΗΣ ΕΚΣΤΡΑΤΕΙΑΣ: $campaign_id - $status - $attempt_delay\n"; + + $stmt="DELETE FROM vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=66 delete auto alt dial status from the campaign +###################### + +if ($ADD==66) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - αυτή η αυτόματη θέση πινάκων ALT δεν είναι σε αυτήν τηνεκστρατεία\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + } + else + { + echo "
ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $auto_alt_dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIALS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN ALT DIAL', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=26; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=67 delete agent pause code in the system +###################### + +if ($ADD==67) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + { + echo "
ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΕΚΣΤΡΑΤΕΙΑΣ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + } + else + { + echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; + + $stmt="DELETE FROM vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=68 remove campaign dial status +###################### + +if ($ADD==68) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΑΦΑΙΡΟΥΜΕΝΗ - αυτή η θέση πινάκων δεν επιλέγεται για αυτήν την εκστρατεία\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΑΦΑΙΡΟΥΜΕΝΗ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η κατάσταση πρέπει να είναι μεταξύ 1 και 6 χαρακτήρων στο μήκος\n"; + } + else + { + echo "
ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΑΦΑΙΡΟΥΜΕΝΗ: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUSES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Κατάσταση:$status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + #$SUB=28; + $ADD=31; # go to campaign modification form below + } + +###################### +# ADD=611 delete list record and all leads within it +###################### + +if ($ADD==611) + { + echo ""; + + if ( ( strlen($list_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_lists < 1) ) + { + echo "
ΛΙΣΤΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_lists where list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + echo "
ΑΠΟΜΑΚΡΥΝΣΗ ΚΑΘΟΔΗΓΗΤΩΝ ΛΙΣΤΑΣ HOPPER ΑΠΟ ΠΑΛΑΙΑ HOPPER ΕΚΣΤΡΑΤΕΙΑ ($list_id)\n"; + $stmt="DELETE from vicidial_hopper where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
ΑΦΑΙΡΕΣΗ ΤΩΝ ΜΟΛΥΒΔΩΝ ΚΑΤΑΛΟΓΩΝ ΑΠΟ ΤΟΝ ΠΊΝΑΚΑ VICIDIAL_LIST\n"; + $stmt="DELETE from vicidial_list where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='DELETE', record_id='$list_id', event_code='ADMIN DELETE LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΔΙΑΓΡΑΦΗ ΛΙΣΤΑΣ ΟΛΟΚΛΗΡΩΘΗΚΕ: $list_id\n"; + echo "

\n"; + } + + $ADD='100'; # go to lists list + } + +###################### +# ADD=6111 delete in-group record +###################### + +if ($ADD==6111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_ingroups < 1) ) + { + echo "
ΕΙΣ-ΟΜΑΔΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_inbound_groups where group_id='$group_id' and group_id NOT IN('AGENTDIRECT') limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_inbound_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='DELETE', record_id='$group_id', event_code='ADMIN DELETE INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΔΙΑΓΡΑΦΗ ΕΙΣ-ΟΜΑΔΑΣ ΟΛΟΚΛΗΡΩΘΗΚΕ: $group_id\n"; + echo "

\n"; + } + + $ADD='1000'; # go to in-group list + } + + +###################### +# ADD=6311 delete did record +###################### + +if ($ADD==6311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
ΔΕΝ ΚΑΤΑΡΓΗΘΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_inbound_dids where did_id='$did_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='DELETE', record_id='$did_id', event_code='ADMIN DELETE DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
DID DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ: $did_id\n"; + echo "

\n"; + } + + $ADD='1300'; # go to did list + } + +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
ΠΡΟΣΚΛΗΣΗ MENU δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΠΡΟΣΚΛΗΣΗ MENU ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + +###################### +# ADD=61111 delete remote agent record +###################### + +if ($ADD==61111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_remote_agents < 1) ) + { + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΧΕΙΡΙΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_remote_agents where remote_agent_id='$remote_agent_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='DELETE', record_id='$remote_agent_id', event_code='ADMIN DELETE REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΔΙΑΓΡΑΦΗ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ ΟΛΟΚΛΗΡΩΘΗΚΕ: $remote_agent_id\n"; + echo "

\n"; + } + + $ADD='10000'; # go to remote agents list + } + +###################### +# ADD=611111 delete user group record +###################### + +if ($ADD==611111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_user_groups < 1) ) + { + echo "
ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Χρήστης_group be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_user_groups where user_group='$user_group' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='DELETE', record_id='$user_group', event_code='ADMIN DELETE ΟΜΑΔΑ ΧΡΗΣΤΩΝ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΔΙΑΓΡΑΦΗ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ ΟΛΟΚΛΗΡΩΘΗΚΕ: $user_group\n"; + echo "

\n"; + } + + $ADD='100000'; # go to user group list + } + +###################### +# ADD=6111111 delete script record +###################### + +if ($ADD==6111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_scripts < 1) ) + { + echo "
ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ Ο ΒΟΗΘΟΣ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Script_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_scripts where script_id='$script_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΒΟΗΘΟΙ', event_type='DELETE', record_id='$script_id', event_code='ADMIN DELETE SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΔΙΑΓΡΑΦΗ ΒΟΗΘΟΥ ΟΛΟΚΛΗΡΩΘΗΚΕ: $script_id\n"; + echo "

\n"; + } + + $ADD='1000000'; # go to script list + } + + +###################### +# ADD=61111111 delete filter record +###################### + +if ($ADD==61111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_filters < 1) ) + { + echo "
ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
To ID φίλτρου πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="DELETE from vicidial_lead_filters where lead_filter_id='$lead_filter_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΦΙΛΤΡΑ', event_type='DELETE', record_id='$lead_filter_id', event_code='ADMIN DELETE ΦΙΛΤΡΑ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Η ΔΙΑΓΡΑΦΗ ΤΟΥ ΦΙΛΤΡΟΥ ΟΛΟΚΛΗΡΩΘΗΚΕ: $lead_filter_id\n"; + echo "

\n"; + } + + $ADD='10000000'; # go to filter list + } + + +###################### +# ADD=611111111 delete call times record +###################### + +if ($ADD==611111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
Ο ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="DELETE from vicidial_call_times where call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΟΛΟΚΛΗΡΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ: $call_time_id\n"; + echo "

\n"; + } + + $ADD='100000000'; # go to call times list + } + + +###################### +# ADD=6111111111 delete state call times record +###################### + +if ($ADD==6111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
Ο ΧΡΟΝΟΣ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmtA="DELETE from vicidial_state_call_times where state_call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="SELECT call_time_id,ct_state_call_times from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\" order by call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_ids[$o] = "$rowx[0]"; + $sct_states[$o] = "$rowx[1]"; + $o++; + } + $o=0; + while ($sct_to_print > $o) + { + $sct_states[$o] = eregi_replace("\|$call_time_id\|",'|',$sct_states[$o]); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$sct_states[$o]' where call_time_id='$sct_ids[$o]';"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + echo "Απομάκρυνση Κανόνα Κατάστασης: $sct_ids[$o]
\n"; + $o++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΟΛΟΚΛΗΡΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ: $call_time_id\n"; + echo "

\n"; + } + + $ADD='1000000000'; # go to call times list + } + + +###################### +# ADD=631111111 delete shift record +###################### + +if ($ADD==631111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
SHIFT δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_shifts where shift_id='$shift_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='DELETE', record_id='$shift_id', event_code='ADMIN DELETE SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SHIFT DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ: $shift_id\n"; + echo "

\n"; + } + + $ADD='130000000'; # go to shifts list + } + + +###################### +# ADD=61111111111 delete phone record +###################### + +if ($ADD==61111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from phones where extension='$extension' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='DELETE', record_id='$extension', event_code='ADMIN DELETE PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Η ΔΙΑΓΡΑΦΗ ΤΟΥ ΤΗΛΕΦΩΝΟΥ ΟΛΟΚΛΗΡΩΘΗΚΕ: $extension - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000'; # go to phone list + } + + +###################### +# ADD=62111111111 delete phone alias record +###################### + +if ($ADD==62111111111) + { + echo ""; + + if ( (strlen($alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
PHONE ALIAS δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from phones_alias where alias_id='$alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='DELETE', record_id='$alias_id', event_code='ADMIN DELETE PHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
PHONE ALIAS DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ: $alias_id\n"; + echo "

\n"; + } + $ADD='12000000000'; # go to phone alias list + } + + +###################### +# ADD=63111111111 delete group alias record +###################### + +if ($ADD==63111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
ΟΜΑΔΑ ALIAS δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Ομάδα Γνωστός ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from groups_alias where group_alias_id='$group_alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='DELETE', record_id='$group_alias_id', event_code='ADMIN Διαγραφή ομάδας ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΟΜΑΔΑ ALIAS DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ: $group_alias_id\n"; + echo "

\n"; + } + $ADD='13000000000'; # go to group alias list + } + + +###################### +# ADD=611111111111 delete server record +###################### + +if ($ADD==611111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
ΔΙΑΚΟΜΙΣΤΗΣ NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ID Διακομιστή be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from servers where server_id='$server_id' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='DELETE', record_id='$server_id', event_code='ADMIN DELETE SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΔΙΑΚΟΜΙΣΤΗΣ DELETION COMPLETED: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='100000000000'; # go to server list + } + + +###################### +# ADD=621111111111 delete vicidial server trunk record in the system +###################### + +if ($ADD==621111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) ) + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
η εκστρατεία πρέπει να είναι μεταξύ 3 και 8 χαρακτήρων στο μήκος\n"; + echo "
η server_ip καθυστέρηση πρέπει να είναι τουλάχιστον 7 χαρακτήρες\n"; + } + else + { + echo "
Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΙΑΓΡΑΦΗΚΕ: $campaign_id - $server_ip\n"; + + $stmt="DELETE FROM vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERΜπαούλα', event_type='DELETE', record_id='$server_ip', event_code='ADMIN DELETE ΔΙΑΚΟΜΙΣΤΗΣ TRUNK', event_sql=\"$SQL_log\", event_notes='Εκστρατεία: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=631111111111 delete conf template record +###################### + +if ($ADD==631111111111) + { + echo ""; + + if ( (strlen($template_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
ΠΙΣΤ TEMPLATE δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Πρότυπο ID να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="UPDATE phones SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_server_carriers SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='DELETE', record_id='$template_id', event_code='ADMIN DELETE ΠΙΣΤ TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΠΙΣΤ TEMPLATE DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='130000000000'; # go to conf template list + } + + +###################### +# ADD=641111111111 delete carrier record +###################### + +if ($ADD==641111111111) + { + echo ""; + + if ( (strlen($carrier_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
ΘΑΛΑΜΙΣΚΟ δεν διαγράφονται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Θαλαμίσκος ID να είναι τουλάχιστον 2 χαρακτήρες\n"; + } + else + { + $stmt="SELECT server_ip from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $CARRIERserver_ip = $row[0]; + + $stmt="DELETE from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$CARRIERserver_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='DELETE', record_id='$carrier_id', event_code='ADMIN DELETE ΘΑΛΑΜΙΣΚΟ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΘΑΛΑΜΙΣΚΟ DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ: $carrier_id\n"; + echo "

\n"; + } + $ADD='140000000000'; # go to carrier list + } + + +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS ΕΙΣΟΔΟΥ δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Music on Hold ΕΙΣΟΔΟΥ δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Music on Hold ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX δεν διαγράφεται - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + +###################### +# ADD=6111111111111 delete conference record +###################### + +if ($ADD==6111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='1000000000000'; # go to conference list + } + + +###################### +# ADD=61111111111111 delete vicidial conference record +###################### + +if ($ADD==61111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
IP Διακομιστή be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
VICIDIAL CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000000'; # go to vicidial conference list + } + + + + + +###################################################################################################### +###################################################################################################### +####### 3 series, record modification forms +###################################################################################################### +###################################################################################################### + + + + +###################### +# ADD=3 modify user info in the system +###################### + +if ($ADD==3) + { + if ($LOGmodify_users==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Δεν έχετε τις άδειες να τροποποιήσετε αυτόν τον χρήστη: $user\n"; + } + else + { + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΧΡΗΣΤΩΝ: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} + else + { + if ($LOGalter_agent_interface == "1") + {echo "\n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSuser_territories_active > 0) + { + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; + } + + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) + { + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + if ($LOGuser_level > 8) + { + echo "\n"; + + #9BB9FB + #B9CBFD + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
Αριθμός Χρήστη: $user$NWB#vicidial_users-user$NWE
Κωδικός:$NWB#vicidial_users-pass$NWE
Πλήρες Ονομα: $NWB#vicidial_users-full_name$NWE
Επίπεδο Χρήστη: $NWB#vicidial_users-user_level$NWE
Ομάδα Χρήστη: $NWB#vicidial_users-user_group$NWE
Τηλέφωνο Σύνδεσης: $NWB#vicidial_users-phone_login$NWE
Κωδικός Πρόσβασης Τηλεφώνου: $NWB#vicidial_users-phone_pass$NWE
Ενεργή:$NWB#vicidial_users-active$NWE
Email:$NWB#vicidial_users-optional$NWE
Χρήστης Code: $NWB#vicidial_users-optional$NWE
Main Επικράτεια: $NWB#vicidial_users-optional$NWE
Χρήστης Εδάφη: $Uterrs_list
ΕΠΙΛΟΓΕΣ ΕΠΙΦΑΝΕΙΑΣ ΕΡΓΑΣΙΑΣ ΧΕΙΡΙΣΤΩΝ:
Ο χειριστής επιλέγει Εισ.Ομάδες: $NWB#vicidial_users-agent_choose_ingroups$NWE
Agent Επιλέξτε Εδάφη: $NWB#vicidial_users-agent_choose_territories$NWE
Ενεργά Κλειδιά: $NWB#vicidial_users-hotkeys_active$NWE
Προγραμματισμένες Επανακλήσεις: $NWB#vicidial_users-scheduled_callbacks$NWE
Μόνο του Χειριστή Επανακλήσεις: $NWB#vicidial_users-agentonly_callbacks$NWE
Εγχειρίδιο κλήσεων Χειριστή: $NWB#vicidial_users-agentcall_manual$NWE
Καταγραφή: $NWB#vicidial_users-vicidial_recording$NWE
Μεταφορές: $NWB#vicidial_users-vicidial_transfers$NWE
Η πιό στενή προεπιλογή συνδύασε: $NWB#vicidial_users-closer_default_blended$NWE
VICIDIAL συμπληρωματική προμήθεια καταγραφής: $NWB#vicidial_users-vicidial_recording_override$NWE
Ο πράκτορας αλλάζει τη συμπληρωματική προμήθεια στοιχείωνπελατών: $NWB#vicidial_users-alter_custdata_override$NWE
Agent Alter Πελατών Παράκαμψη Τηλέφωνο:$NWB#vicidial_users-alter_custphone_override$NWE
Agent Shift Επιβολή Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alert Enabled: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Επιτρέψτε Alerts: $NWB#vicidial_users-allow_alerts$NWE
Τάξεις εκστρατείας:$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Εισερχόμενες Ομάδες: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC χρήστη Επίπεδο:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Τελείωμα:$NWB#vicidial_users-qc_finish$NWE
Αναλήψεις QC:$NWB#vicidial_users-qc_commit$NWE
ΕΠΙΛΟΓΈΣ ΕΠΙΦΑΝΕΙΑΣ ΕΡΓΑΣΙΑΣ ΔΙΑΧ:
Εκθέσεις άποψης: $NWB#vicidial_users-view_reports$NWE
Αλλάξτε τις επιλογές επιφάνειας εργασίας των χειριστών: $NWB#vicidial_users-alter_agent_interface_options$NWE
Τροποποιήστε τους χρήστες: $NWB#vicidial_users-modify_sections$NWE
Αλλαγή Εκστρατείας Χειριστή: $NWB#vicidial_users-change_agent_campaign$NWE
Διάγραψε τους χρήστες: $NWB#vicidial_users-delete_users$NWE
Τροποποιήστε τις ομάδες χρηστών: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις ομάδες χρηστών: $NWB#vicidial_users-delete_user_groups$NWE
Τροποποιήστε τους καταλόγους: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις Λίστες: $NWB#vicidial_users-delete_lists$NWE
Εισαγωγή Οδηγών: $NWB#vicidial_users-load_leads$NWE
Τροποποίηση Οδηγών: $NWB#vicidial_users-modify_leads$NWE
Κατεβάστε Λίστες: $NWB#vicidial_users-modify_leads$NWE
Εξαγωγή Εκθέσεις: $NWB#vicidial_users-export_reports$NWE
Διαγραφή DNC Από Λίστες: $NWB#vicidial_users-delete_from_dnc$NWE
Τροποποιήστε τις εκστρατείες: $NWB#vicidial_users-modify_sections$NWE
Λεπτομέρειες εκστρατείας: $NWB#vicidial_users-campaign_detail$NWE
Διάγραψε τις εκστρατείες: $NWB#vicidial_users-delete_campaigns$NWE
Τροποποιήστε τις-ΟΜΑΔΕΣ: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τις Εισ-ΟΜΑΔΕΣ: $NWB#vicidial_users-delete_ingroups$NWE
Τροποποιήστε DIDs:$NWB#vicidial_users-modify_sections$NWE
Διαγραφή DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Τροποποιήστε τους μακρινούς πράκτορες: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τους Απομακρυσμένους Χειριστές: $NWB#vicidial_users-delete_remote_agents$NWE
Τροποποιήστε τα χειρόγραφα: $NWB#vicidial_users-modify_sections$NWE
Διάγραψε τον Βοηθόs: $NWB#vicidial_users-delete_scripts$NWE
Τροποποιήστε τα φίλτρα: $NWB#vicidial_users-modify_sections$NWE
Διαγραφή Φίλτρουs: $NWB#vicidial_users-delete_filters$NWE
Πρόσβαση AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
Το AGC διαγράφει τα τηλέφωνα: $NWB#vicidial_users-ast_delete_phones$NWE
Τροποποίηση Χρόνου Κλήσηςs: $NWB#vicidial_users-modify_call_times$NWE
Διαγραφή Χρόνου Κλήσηςs: $NWB#vicidial_users-delete_call_times$NWE
Τροποποιήστε τους κεντρικούς υπολογιστές: $NWB#vicidial_users-modify_sections$NWE
Agent API Πρόσβαση:$NWB#vicidial_users-vdc_agent_api_access$NWE
ΠροσθήκηΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-add_timeclock_log$NWE
ΤροποποιήστεΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-modify_timeclock_log$NWE
ΔιαγραφήΏρα ρολόι Εγγραφή Εγγραφή: $NWB#vicidial_users-delete_timeclock_log$NWE
Manager Shift Επιβολή Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΧΡΗΣΤΗ\n"; + } + echo "

Επιλέξτε εδώ για την σελίδα με τους χρόνους χρήσης\n"; + echo "

Επιλέξτε εδώ για τη κατάσταση του χρήστη\n"; + echo "

Πατήστε εδώ για στατιστικά χρήστη\n"; + echo "

Κάντε κλικ εδώ για το χρήστη πολλαπλών ημέρες καθεστώς λεπτομερώς την έκθεση\n"; + echo "

Επιλέξτε εδώ για τις Επανακλήσεις του χρήστη που κρατήθηκαν\n"; + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το αρχείο
\n"; + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=31 modify campaign info in the system - Detail view +###################### + +if ( ($LOGcampaign_detail < 1) and ($ADD==31) ) {$ADD=34;} # send to Βασική if not allowed + +if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==31) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_name = $row[1]; + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $web_form_address = stripslashes($row[11]); + $allow_closers = $row[12]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $campaign_rec_exten = $row[22]; + $campaign_recording = $row[23]; + $campaign_rec_filename = $row[24]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $am_message_exten = $row[27]; + $amd_send_to_vmx = $row[28]; + $xferconf_a_dtmf = $row[29]; + $xferconf_a_number = $row[30]; + $xferconf_b_dtmf = $row[31]; + $xferconf_b_number = $row[32]; + $alt_number_dialing = $row[33]; + $scheduled_callbacks = $row[34]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $drop_call_seconds = $row[36]; + $drop_action = $row[37]; + $safe_harbor_exten = $row[38]; + $display_dialable_count = $row[39]; + $wrapup_seconds = $row[40]; + $wrapup_message = $row[41]; + # $closer_campaigns = $row[42]; + $use_internal_dnc = $row[43]; + $allcalls_delay = $row[44]; + $omit_phone_code = $row[45]; + $dial_method = $row[46]; + $available_only_ratio_tally = $row[47]; + $adaptive_dropped_percentage = $row[48]; + $adaptive_maximum_level = $row[49]; + $adaptive_latest_server_time = $row[50]; + $adaptive_intensity = $row[51]; + $adaptive_dl_diff_target = $row[52]; + $concurrent_transfers = $row[53]; + $auto_alt_dial = $row[54]; + $auto_alt_dial_statuses = $row[55]; + $agent_pause_codes_active = $row[56]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $disable_alter_custdata = $row[62]; + $no_hopper_leads_logins = $row[63]; + $list_order_mix = $row[64]; + $campaign_allow_inbound = $row[65]; + $manual_dial_list_id = $row[66]; + $default_xfer_group = $row[67]; + $queue_priority = $row[69]; + $drop_inbound_group = $row[70]; + $qc_enabled = $row[71]; + $qc_statuses = $row[72]; + $qc_lists = $row[73]; + $qc_shift_id = $row[74]; + $qc_get_record_launch = $row[75]; + $qc_show_recording = $row[76]; + $qc_web_form_address = stripslashes($row[77]); + $qc_script = $row[78]; + $survey_first_audio_file = $row[79]; + $survey_dtmf_digits = $row[80]; + $survey_ni_digit = $row[81]; + $survey_opt_in_audio_file = $row[82]; + $survey_ni_audio_file = $row[83]; + $survey_method = $row[84]; + $survey_no_response_action = $row[85]; + $survey_ni_status = $row[86]; + $survey_response_digit_map = $row[87]; + $survey_xfer_exten = $row[88]; + $survey_camp_record_dir = $row[89]; + $disable_alter_custphone = $row[90]; + $display_queue_count = $row[91]; + $manual_dial_filter = $row[92]; + $agent_clipboard_copy = $row[93]; + $agent_extended_alt_dial = $row[94]; + $use_campaign_dnc = $row[95]; + $three_way_call_cid = $row[96]; + $three_way_dial_prefix = $row[97]; + $web_form_target = $row[98]; + $vtiger_search_category = $row[99]; + $vtiger_create_call_record = $row[100]; + $vtiger_create_lead_record = $row[101]; + $vtiger_screen_login = $row[102]; + $cpd_amd_action = $row[103]; + $agent_allow_group_alias = $row[104]; + $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + + $qc_lists = preg_replace("/^ | -$/","",$qc_lists); + $QClists = explode(" ", $qc_lists); + $QCL_to_print = (count($QClists) -0); + + ##### get status listings for dynamic pulldown + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $qc_statuses_list=''; + $survey_ni_status_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') + { + $dial_statuses_list .= "\n"; + if ($survey_ni_status == $rowx[0]) + { + $survey_ni_status_list .= "\n"; + } + else + { + $survey_ni_status_list .= "\n"; + } + } + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic transfer group pulldown list menu + $stmt="SELECT group_id,group_name from vicidial_inbound_groups $xfer_groupsSQL order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==28) {$camp_qc_color=$subcamp_color;} + else {$camp_qc_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + if ($SUB=='20A') {$camp_survey_color=$subcamp_color;} + else {$camp_survey_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; + if ($SSqc_features_active > 0) + { + echo ""; + } + if ($SSoutbound_autodial_active < 1) + { + echo "\n"; + } + echo "\n"; + echo "
$row[0]: Βασική Λεπτομέρειες ΚαθεστώτωνHotKeysLead RecyclingAlt Auto DialΚατάλογος MixΈρευναΠαύση ΚώδικεςQC Real-Time
\n"; + + echo "
\n"; + echo ""; + + echo "
\n"; + + if ($SUB < 1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "ΑΦΑΙΡΕΣΤΕ\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + + + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($agent_allow_group_alias == 'Y') + { + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + } + + if ($SSenable_vtiger_integration > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + else + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($campaign_allow_inbound == 'Y') + { + echo "\n"; + } + + echo "\n"; + + if ($allow_closers == 'Y') + { + echo "\n"; + } + + echo "\n"; + echo "
ID Εκστρατείας: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Ονομα Εκστρατείας: $NWB#vicidial_campaigns-campaign_name$NWE
Περιγραφή εκστρατείας: $NWB#vicidial_campaigns-campaign_description$NWE
Εκστρατεία Αλλαγή Ημερομηνία: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Εκστρατεία Σύνδεση Ημερομηνία: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Εκστρατεία Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Ενεργή:$NWB#vicidial_campaigns-active$NWE
Τηλ.σύνδ. Στάθμευσης: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Ιστο-σελίδα: $NWB#vicidial_campaigns-web_form_address$NWE
Ιστο-σελίδα Two: $NWB#vicidial_campaigns-web_form_address$NWE
Web Μορφή Target: $NWB#vicidial_campaigns-web_form_target$NWE
Επιτρέπω τους Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Επιτρέψτε πλησίον και συνδύασε:$NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Θέση πινάκων$o: \n"; + + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Κατάσταση:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Σειρά Λίστας: $NWB#vicidial_campaigns-lead_order$NWE
Κατάλογος Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Φίλτρο Οδηγού: $NWB#vicidial_campaigns-lead_filter_id$NWE
Drop Lockout Ώρα: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Αναγκαστική Επαναφορά του Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Μέθοδος Κλήσης +: $NWB#vicidial_campaigns-dial_method$NWE
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ΠΡΟΣΑΡΜΟΣΤΕ ΤΗ ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ
Διαθέσιμα μόνο ετικέτες +: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Ποσοστό Ορίου Εγκατ.Κλήσεων +: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Μέγιστο Επίπεδο Προσαρμογής Κλήσεων +: number only $NWB#vicidial_campaigns-adaptive_maximum_level$NWE
Τελευταίος Χρόνος Διακομιστή +: 4 μόνο αριθμοί $NWB#vicidial_campaigns-adaptive_latest_server_time$NWE
Ενταση Τροποποίησης Προσαρμογής +: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Επίπεδο Κλήσεων Μεταβολής Στόχου +: $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE
Ταυτόχρονες μεταφορές: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Κοτσίδας Προτεραιότητα: $NWB#vicidial_campaigns-queue_priority$NWE
Πολλαπλές Καμπάνια Drop Rate Ομάδα: $NWB#vicidial_campaigns-drop_rate_group$NWE
Αυτόματος σχηματισμός ALT-ARJCMOY: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_campaigns-next_agent_call$NWE
Χρόνος Τοπικής Κλήσης: $NWB#vicidial_campaigns-local_call_time$NWE
Κλήση εκτός χρόνου: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Πρόθεμα Κλήσης: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Παράλειψη Κωδικού Τηλεφώνου +: $NWB#vicidial_campaigns-omit_phone_code$NWE
CallerID Εκστρατείας: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Εκστρατείας VDAD εσωτ.σύνδεση: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Επέκταση εκστρατείας Ηχογρ: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Ηχογράφηση εκστρατείας: $NWB#vicidial_campaigns-campaign_recording$NWE
Όνομα αρχείου εκστρατείας Ηχογρ: $NWB#vicidial_campaigns-campaign_rec_filename$NWE
Καθυστέρηση Ηχογράφησης +: in seconds$NWB#vicidial_campaigns-allcalls_delay$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Κατά την έναρξη κλήσης: $NWB#vicidial_campaigns-get_call_launch$NWE
Μήνυμα Αυτόματου Τηλεφωνητή: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
WaitForSilence Επιλογές: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD στέλνει στο VM: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD δράσης: $NWB#vicidial_campaigns-cpd_amd_action$NWE
DTMF Μεταφοράς-Συνδ 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
DTMF Μεταφοράς-Συνδ 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Γρήγορη Μεταφορά Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Μεταφορά PrePopulate Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Timer Δράση: $NWB#vicidial_campaigns-timer_action$NWE
Timer Δράση Μήνυμα: $NWB#vicidial_campaigns-timer_action_message$NWE
Timer Δευτερόλεπτα Δράση: $NWB#vicidial_campaigns-timer_action_seconds$NWE
Κλήση Εναλ Αριθμού: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Προγραμματισμένες Επανακλήσεις: $NWB#vicidial_campaigns-scheduled_callbacks$NWE
Δευτερ. Εγκαταλ. Κλήσης: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Drop δράσης:$NWB#vicidial_campaigns-drop_action$NWE
Εσωτ.Σύνδεση Ασφαλούς Φιλοξενίας: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Drop Μεταφορά Ομάδα:$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Δευτερ Τυλίγματος: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Μήνυμα Τυλίγματος: $NWB#vicidial_campaigns-wrapup_message$NWE
Εσωτερικός κατάλογος DNC χρήσης: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Χρησιμοποίησε Καμπάνια DNC Κατάλογος: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentΚώδικες μικρής διακοπήςΕνεργή:$NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Εκστρατεία Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Θέστε εκτός λειτουργίας αλλάζει τα στοιχεία πελατών: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Απενεργοποίηση Alter Πελατών Τηλέφωνο:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Επιτρέψτε τους κανένας-χοάνη-μολύβδους Logins: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
Δεν Hopper Κλήση: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Ιδιοκτήτης Μόνο Κλήση: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Agent Επιλέξτε Εδάφη: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agent Εμφάνιση Dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Εμφάνιση Agent Queue Count:$NWB#vicidial_campaigns-display_queue_count$NWE
Agent κλήσεων στην ουρά: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Δείτε καλεί στην ουρά Launch: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agent καλεί Πιάσε στην ουρά: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Agent Call Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agent Παύση Μετά από κάθε πρόσκληση: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Χειρωνακτικός κατάλογος ταυτότητα πινάκων:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Εγχειρίδιο Dial Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent Screen Clipboard Αντιγραφή: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agent Screen Εκτεταμένη Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Way Outbound Call CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Call Πρόθεμα Κλήσης: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Ομάδα Γνωστός Επιτρέπεται: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Προεπιλεγμένη ομάδα Γνωστός: $NWB#vicidial_campaigns-default_group_alias$NWE
Αναζήτηση Vtiger Κατηγορία: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Αναζήτηση Dead Λογαριασμών: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Δημιουργία Vtiger Call Record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Δημιουργία Vtiger Μόλυβδος Εγγραφή: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Κατάσταση Call: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger Screen Είσοδος: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Σύνδεση: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Popup Διεύθυνση: $NWB#vicidial_campaigns-crm_login_address$NWE
Ξεκινήστε Call URL: $NWB#vicidial_campaigns-start_call_url$NWE
Καλέστε dispo URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
Εισερχόμενες ομάδες:
"; + echo " $NWB#vicidial_campaigns-closer_campaigns$NWE
\n"; + echo "$groups_list"; + echo "
Ομάδα μεταφοράς προεπιλογής:$NWB#vicidial_campaigns-default_xfer_group$NWE
Ομάδες μεταφοράς:
"; + echo " $NWB#vicidial_campaigns-xfer_groups$NWE
\n"; + echo "$XFERgroups_list"; + echo "
\n"; + + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
ΛΙΣΤΕΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
ID ΛΙΣΤΑΣΟΝΟΜΑ ΛΙΣΤΑΣΠΕΡΙΓΡΑΦΗLEADS COUNTΕΝΕΡΓΟΤΕΛΕΥΤΑΙΑ ΗΜΕΡΟΜΗΝΙΑ ΥΠΟΒΟΛΗΣΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]ΤΡΟΠΟΠΟΙΗΣΗ

\n"; + + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Αυτή η εκστρατεία έχει$active_lists ενεργές λίστες και$inactive_lists Μη ενεργές λίστες

\n"; + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - ΑΠΟΚΡΥΨΗ

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - ΕΜΦΑΝΙΣΗ

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Αυτή η εκστρατεία έχει$hopper_leads >οδηγοί στον hopper κλήσεων<

\n"; + echo "Πατήστε εδώ για να δείτε ποιοι οδηγοί είναι στον hopper τώρα

\n"; + echo "Κάντε κλικ εδώ για να δείτε μια VDAD έκθεση για αυτή την καμπάνια

\n"; + } + echo "Επιλέξτε εδώ για να δείτε τις κρατειμένες Επανακλήσεις σε αυτήν την εκστρατεία

\n"; + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την εκστρατεία
\n"; + } + echo "
\n"; + } + + + ##### CAMPAIGN CUSTOM STATUSES ##### + if ($SUB==22) + { + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + echo "
\n"; + echo "
ΠΡΟΣΑΡΜΟΣΜΕΝΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_campaign_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[5]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ΚΑΤΑΣΤΑΣΗΠΕΡΙΓΡΑΦΗΕΠΙΛΕΞΙΜΟΑΝΘΡΩΠΙΝΗ ΑΠΑΝΤΗΣΗΚΑΤΗΓΟΡΙΑMODIFY-DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + echo "ΔΙΑΓΡΑΦΗ\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΠΡΟΣΑΡΜΟΣΜΕΝΗΣ ΚΑΤΑΣΤΑΣΗΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ
\n"; + echo "\n"; + echo "\n"; + echo "Κατάσταση:   \n"; + echo "Περιγραφή:   \n"; + echo "Επιλέξιμο:  
\n"; + echo "Ανθρώπινα Απάντηση:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Κατηγορία:\n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN HOTKEYS ##### + if ($SUB==23) + { + echo "
ΠΡΟΣΑΡΜΟΣΜΕΝΑ ΚΛΕΙΔΙΑ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_campaign_hotkeys$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + + } + + echo "
ΚΛΕΙΔΙΚΑΤΑΣΤΑΣΗΠΕΡΙΓΡΑΦΗΔΙΑΓΡΑΦΗ
$rowx[1]$rowx[0]$rowx[2]ΔΙΑΓΡΑΦΗ
\n"; + + echo "
ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΠΡΟΣΑΡΜΟΣΜΕΝΟΥ ΚΛΕΙΔΙΟΥ ΕΚΣΤΡΑΤΕΙΑΣ
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Hotkey:   \n"; + echo "Κατάσταση:   \n"; + echo "
\n"; + echo "

\n"; + } + + ##### CAMPAIGN LEAD RECYCLING ##### + if ($SUB==25) + { + ### display counts on leads that have hit the limit in this campaign + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $RECYCLE_status[$o] = $rowx[2]; + $RECYCLE_delay[$o] = $rowx[3]; + $RECYCLE_attempt[$o] = $rowx[4]; + $RECYCLE_active[$o] = $rowx[5]; + $RECYCLE_count[$o] = "'Y','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'"; + if ($RECYCLE_attempt[$o]==1) {$RECYCLE_count[$o] = "'Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==2) {$RECYCLE_count[$o] = "'Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==3) {$RECYCLE_count[$o] = "'Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==4) {$RECYCLE_count[$o] = "'Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==5) {$RECYCLE_count[$o] = "'Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==6) {$RECYCLE_count[$o] = "'Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==7) {$RECYCLE_count[$o] = "'Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==8) {$RECYCLE_count[$o] = "'Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==9) {$RECYCLE_count[$o] = "'Y9','Y10'";} + if ($RECYCLE_attempt[$o]>9) {$RECYCLE_count[$o] = "'Y10'";} + $o++; + } + $o=0; + + echo "

ΑΝΑΚΥΚΛΩΣΗ ΟΔΗΓΟΥ ΜΕΣΑ ΣΕ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_lead_recycle$NWE
\n"; + echo "\n"; + echo "\n"; + + while ($recycle_to_print > $o) + { + $recycle_limit=0; + if (strlen($camp_lists) > 2) + { + $stmt="SELECT count(*) from vicidial_list where status='$RECYCLE_status[$o]' and list_id IN($camp_lists) and called_since_last_reset IN($RECYCLE_count[$o]);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $counts_to_print = mysql_num_rows($rslt); + if ($counts_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + $recycle_limit = $rowx[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $o++; + } + + echo "
ΚΑΤΑΣΤΑΣΗΚΑΘΥΣΤΕΡΗΣΗ ΠΡΟΣΠΑΘΕΙΑΣΜΕΓΙΣΤΟ ΠΡΟΣΠΑΘΕΙΑΣLEADS ΣΕ ΟΡΙΑΚΗΕΝΕΡΓΟ ΔΙΑΓΡΑΦΗ
  $RECYCLE_status[$o]
\n"; + echo "\n"; + echo "\n"; + echo "
$recycle_limit   ΔΙΑΓΡΑΦΗ
\n"; + + echo "
ΠΡΟΣΘΕΣΕ ΝΕΟ ΟΔΗΓΟ ΕΚΣΤΡΑΤΕΙΑΣ ΑΝΑΚΥΚΛΩΣΗΣ
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Κατάσταση:   \n"; + echo "Καθυστέρηση προσπάθειας: \n"; + echo "Μέγιστο προσπάθειας: \n"; + echo "
\n"; + + echo "

\n"; + echo "
\n"; + echo "* Μόλυβδος μετράει λαμβάνονται από καταλόγους που δραστηριοποιούνται στην εκστρατεία μόνο.\n"; + } + + ##### CAMPAIGN AUTO-ALT-NUMBER DIALING ##### + if ($SUB==26) + { + echo "

ΑΥΤΟΜΑΤΟΣ ΣΧΗΜΑΤΙΣΜΌΣ ΑΡΙΘΜΟΎ ALT ΓΙΑ ΑΥΤΉΝ ΤΗΝ ΕΚΣΤΡΑΤΕΊΑ:   $NWB#vicidial_auto_alt_dial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $auto_alt_dial_statuses = preg_replace("/ -$/","",$auto_alt_dial_statuses); + $AADstatuses = explode(" ", $auto_alt_dial_statuses); + $AADs_to_print = (count($AADstatuses) -1); + + $o=0; + while ($AADs_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $o++; + + echo "\n"; + echo "\n"; + } + + echo "
STATUSESΔΙΑΓΡΑΦΗ
$AADstatuses[$o]ΔΙΑΓΡΑΦΗ
\n"; + + echo "
ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΣΧΗΜΑΤΙΣΜΟΎ ΑΡΙΘΜΟΎ ALT
\n"; + echo "\n"; + echo "\n"; + echo "Κατάσταση:   \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ##### + if ($SUB==27) + { + echo "

ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΓΙΑ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_pause_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣΧΡΕΩΤΕΟΣΤΡΟΠΟΠΟΙΗΣΗΔΙΑΓΡΑΦΗ
$rowx[0]\n"; + echo "\n"; + echo "\n"; + echo "  \n"; + echo "
ΔΙΑΓΡΑΦΗ
\n"; + + echo "
ΠΡΟΣΘΕΣΤΕ ΤΟ ΝΕΟ ΚΩΔΙΚΑ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ
\n"; + echo "\n"; + echo "\n"; + echo "Κώδικας μικρής διακοπής: \n"; + echo "Όνομα κώδικα μικρής διακοπής: \n"; + echo "   Χρεωτέος: \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN QC SETTINGS ##### + if ( ($SUB==28) and ($SSqc_features_active > 0) ) + { + $stmt="SELECT list_id,list_name,active from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $qc_lists_list=''; + + $p=0; + while ($lists_to_print > $p) + { + $rowx=mysql_fetch_row($rslt); + $qc_lists_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "

QC SETTINGS για αυτή την καμπάνια:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; +# echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + echo "QC Enabled: $NWB#vicidial_campaigns-qc_enabled$NWE
QC καθεστώτα:
$NWB#vicidial_campaigns-qc_statuses$NWE
$qc_statuses_list
QC Lists:
$NWB#vicidial_campaigns-qc_lists$NWE
$qc_lists_list
QC WebForm:$NWB#vicidial_campaigns-qc_web_form_address$NWE
QC Script: $NWB#vicidial_campaigns-qc_script$NWE
QC Shift: $NWB#vicidial_campaigns-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_campaigns-qc_get_record_launch$NWE
QC Δείτε Καταγραφή: $NWB#vicidial_campaigns-qc_show_recording$NWE
\n"; + echo "

\n"; + } + + ##### CAMPAIGN SURVEY SETTINGS ##### + if ($SUB=='20A') + { + + echo "

ΕΡΕΥΝΑ SETTINGS για αυτήν την καμπάνια:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "
Έρευνα Πρώτο αρχείο ήχου: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Έρευνα DTMF Digits: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
Έρευνα δεν ενδιαφέρεται Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Έρευνα Opt-σε αρχείο ήχου: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Έρευνα δεν ενδιαφέρεται αρχείο ήχου: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Έρευνα Μέθοδος: $NWB#vicidial_campaigns-survey_method$NWE
Έρευνα της μη αντίδρασης δράσης: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Έρευνα δεν ενδιαφέρεται Κατάσταση: $NWB#vicidial_campaigns-survey_ni_status$NWE
Έρευνα τρίτο ψηφίο: $NWB#vicidial_campaigns-survey_third_digit$NWE
Έρευνα Τρίτη Audio File: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Έρευνα Τρίτη Κατάσταση: $NWB#vicidial_campaigns-survey_third_status$NWE
Έρευνα Τρίτη Παράταση: $NWB#vicidial_campaigns-survey_third_exten$NWE
Έρευνα τέταρτο ψηφίο: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Έρευνα Τέταρτη Audio File: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Έρευνα Τέταρτη Κατάσταση: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Έρευνα Τέταρτη Παράταση: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Έρευνα Απάντηση Digit Χάρτης: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Έρευνα Έρευνα Xfer Παράταση: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Έρευνα Καμπάνια Καταγραφή Directory: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; + echo "

\n"; + } + + + if ($SUB < 1) + { + echo "

\n"; + echo "ΑΠΟΣΥΝΔΕΣΗ ΟΛΩΝ ΤΩΝ ΧΕΙΡΙΣΤΩΝ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + + if ($LOGdelete_campaigns > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ\n"; + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } +} + + +###################### +# ADD=34 modify campaign info in the system - Basic View +###################### + +if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==34) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $display_dialable_count = $row[39]; + $dial_method = $row[46]; + $adaptive_intensity = $row[51]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $list_order_mix = $row[64]; + $default_xfer_group = $row[67]; + $campaign_allow_inbound = $row[65]; + $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active < 1) + { + echo ""; + } + echo "
$row[0]: Βασική Επισκόπηση Αναλυτική Επισκόπηση Κατάλογος Mix Πραγματικού Χρόνου Οθόνη  
\n"; + + if ($SUB < 1) + { + echo "
\n"; + echo ""; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "ΑΦΑΙΡΕΣΤΕ\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
ID Εκστρατείας: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Ονομα Εκστρατείας: $NWB#vicidial_campaigns-campaign_name$NWE
Περιγραφή εκστρατείας: $row[57]$NWB#vicidial_campaigns-campaign_description$NWE
Εκστρατεία Αλλαγή Ημερομηνία: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Εκστρατεία Σύνδεση Ημερομηνία: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Ενεργή:$NWB#vicidial_campaigns-active$NWE
Τηλ.σύνδ. Στάθμευσης: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Ιστο-σελίδα: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Επιτρέπω τους Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Ομάδα μεταφοράς προεπιλογής:$default_xfer_group $NWB#vicidial_campaigns-default_xfer_group$NWE
Επιτρέψτε πλησίον και συνδύασε:$campaign_allow_inbound $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Θέση πινάκων$o: \n"; + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Κατάσταση:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Σειρά Λίστας: $NWB#vicidial_campaigns-lead_order$NWE
Κατάλογος Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Φίλτρο Οδηγού: $NWB#vicidial_campaigns-lead_filter_id$NWE
Επίπεδο Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Αναγκαστική Επαναφορά του Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Μέθοδος Κλήσης +: $NWB#vicidial_campaigns-dial_method$NWE
ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Ενταση Τροποποίησης Προσαρμογής +: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Script: $script_id
Κατά την έναρξη κλήσης: $get_call_launch
\n"; + + echo "
\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ΛΙΣΤΕΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
ID ΛΙΣΤΑΣΟΝΟΜΑ ΛΙΣΤΑΣΠΕΡΙΓΡΑΦΗLEADS COUNTΕΝΕΡΓΟΤΕΛΕΥΤΑΙΑ ΗΜΕΡΟΜΗΝΙΑ ΥΠΟΒΟΛΗΣΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]ΤΡΟΠΟΠΟΙΗΣΗ

\n"; + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Αυτή η εκστρατεία έχει$active_lists ενεργές λίστες και$inactive_lists Μη ενεργές λίστες

\n"; + + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - ΑΠΟΚΡΥΨΗ

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - ΕΜΦΑΝΙΣΗ

"; + } + + + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Αυτή η εκστρατεία έχει$hopper_leads >οδηγοί στον hopper κλήσεων<

\n"; + echo "Πατήστε εδώ για να δείτε ποιοι οδηγοί είναι στον hopper τώρα

\n"; + echo "Κάντε κλικ εδώ για να δείτε μια VDAD έκθεση για αυτή την καμπάνια

\n"; + } + echo "Επιλέξτε εδώ για να δείτε τις κρατειμένες Επανακλήσεις σε αυτήν την εκστρατεία

\n"; + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την εκστρατεία
\n"; + } + + echo "
\n"; + + echo "
\n"; + + ### list of agent rank or skill-level for this campaign + echo "
\n"; + echo "
ΤΑΞΕΙΣ ΠΡΑΚΤΟΡΩΝ ΓΙΑ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + + echo "ΑΠΟΣΥΝΔΕΣΗ ΟΛΩΝ ΤΩΝ ΧΕΙΡΙΣΤΩΝ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ

\n"; + + + if ($LOGdelete_campaigns > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ\n"; + } + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } +} + + +###################### +# ADD=31 or 34 and SUB=29 for list mixes +###################### +if ( ( ($ADD==34) or ($ADD==31) ) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ( ($ADD==34) or ($ADD==31) ) +{ + if ($LOGmodify_campaigns==1) + { + ##### CAMPAIGN LIST MIX SETTINGS ##### + if ($SUB==29) + { + ##### get list_id listings for dynamic pulldown + $stmt="SELECT list_id,list_name from vicidial_lists where campaign_id='$campaign_id' order by list_id"; + $rslt=mysql_query($stmt, $link); + $mixlists_to_print = mysql_num_rows($rslt); + $mixlists_list=""; + + $o=0; + while ($mixlists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixlists_list .= "\n"; + $mixlistsname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + + echo "

ΜΙΓΜΑΤΑ ΚΑΤΑΛΟΓΩΝ ΓΙΑ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:  $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; + + echo "
ΠΡΟΕΙΔΟΠΟΙΗΣΗ, προτείνουμε μόνο Κατάλογος Mix για προχωρημένους χρήστες, Παρακαλώ διαβάστε το ViciDial Manager εγχειριδίου
\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } + + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $rslt=mysql_query($stmt, $link); + $listmixes = mysql_num_rows($rslt); + $o=0; + while ($listmixes > $o) + { + $rowx=mysql_fetch_row($rslt); + $vcl_id=$rowx[0]; + $o++; + + if ($o < 2) + {$tablecolor='bgcolor="#99FF99"'; $bgcolor='bgcolor="#CCFFCC"';} + else + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$tablecolor='bgcolor="#B9CBFD"'; $bgcolor='bgcolor="#9BB9FB"';} + else + {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} + } + echo "
\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + } + else + {echo "$rowx[5]\n";} + echo "\n"; + echo "\n"; + +# list_id|order|percent|statuses|:list_id|order|percent|statuses|:... +# 101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -| +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX','TESTCAMP List Mix','TESTCAMP','101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX2','TESTCAMP List Mix2','TESTCAMP','101|1|20| A B -|:102|2|45| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX3','TESTCAMP List Mix3','TESTCAMP','101|1|30| A NA -|:102|2|35| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); + + $MIXentries = $MT; + $MIXentries = explode(":", $rowx[3]); + $Ms_to_print = (count($MIXentries) - 0); + $q=0; + while ($Ms_to_print > $q) + { + $MIXdetails = explode('|', $MIXentries[$q]); + $MIXdetailsLIST = $MIXdetails[0]; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $r=0; + while ($Ds_to_print > $r) + { + $r++; + $Dsql .= "'$Dstatuses[$r]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "\n"; + + + echo "\n"; + + + $q++; + + } + + + + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + $X='X'; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$vcl_id:\n"; + echo "\n"; + echo "     DELETE LIST MIX
Κατάσταση:\n"; + if ($rowx[5]=='INACTIVE') + { + echo "$rowx[5]\n"; + echo "ΘΕΣΤΕ ΕΝΕΡΓΟΣMethod:\n"; + echo "
ID ΛΙΣΤΑΣΠΡΟΤΕΡΑΙΟΤΗΤΑΣ% MIXSTATUSES
\n"; + echo "\n"; + echo "List: $MIXdetailsLIST   ΑΦΑΙΡΕΣΤΕ\n"; + + + + echo " \n"; + echo "ADD   \n"; + echo "ΑΦΑΙΡΕΣΤΕ\n"; + echo "
\n"; + echo "Difference %: \n"; + echo "   \n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "List: \n"; + + if ($q > 39) {$AE_disabled = 'DISABLED';} + else {$AE_disabled = '';} + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "ΑΦΑΙΡΕΣΤΕ\n"; + echo "
\n"; + } + + + echo "

ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΛΙΣΤΑΣ MIX
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Mix ID: Mix Name: Mix Method: "; + echo "
List: Dial Κατάσταση:  
\n"; + + echo "
\n"; + + } + } + echo "
\n"; +} + + +###################### +# ADD=30 campaign not allowed +###################### + +if ($ADD==30) +{ +echo "
\n"; + echo ""; +echo "You do not have permission to view campaign $campaign_id\n"; +} + + +###################### +# ADD=32 display all campaign statuses +###################### +if ($ADD==32) +{ +echo "
\n"; + echo ""; + +echo "
ΛΙΣΤΕΣ ΘΕΣΕΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΣΥΝΗΘΕΙΑΣ:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNΟΝΟΜΑSTATUSESΤΡΟΠΟΠΟΙΗΣΗ
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_statuses where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY STATUSES
\n"; +} + + +###################### +# ADD=33 display all campaign hotkeys +###################### +if ($ADD==33) +{ +echo "
\n"; + echo ""; + +echo "
ΛΊΣΤΕΣ ΕΚΣΤΡΑΤΕΙΑΣ HOTKEYS:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNΟΝΟΜΑHOTKEYSΤΡΟΠΟΠΟΙΗΣΗ
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_hotkeys where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY HOTKEYS
\n"; +} + + +###################### +# ADD=35 display all campaign lead recycle entries +###################### +if ($ADD==35) +{ +echo "
\n"; + echo ""; + +echo "
ΑΝΑΚΥΚΛΩΣΗΣ ΛΙΣΤΕΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNΟΝΟΜΑΟ ΜΟΛΥΒΔΟΣ ΑΝΑΚΥΚΛΩΝΕΙΤΡΟΠΟΠΟΙΗΣΗ
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_lead_recycle where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY Ο ΜΟΛΥΒΔΟΣ ΑΝΑΚΥΚΛΩΝΕΙ
\n"; +} + + +###################### +# ADD=36 display all campaign auto-alt dial entries +###################### +if ($ADD==36) +{ +echo "
\n"; + echo ""; + +echo "
ΛΊΣΤΕΣ ΠΙΝΑΚΩΝ ΜΟΛΥΒΔΟΥ ΑΥΤΌΜΑΤΟΣ-ALT ΕΚΣΤΡΑΤΕΙΑΣ:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNΟΝΟΜΑAUTO-ALT DIALΤΡΟΠΟΠΟΙΗΣΗ
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaigns_id_list[$o]';"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if (strlen($row[0])<3) + {echo "NONE";} + echo "MODIFY AUTO-ALT DIAL
\n"; +} + + +###################### +# ADD=37 display all campaign agent pause codes +###################### +if ($ADD==37) +{ +echo "
\n"; + echo ""; + +echo "
ΛΙΣΤΕΣ ΚΩΔΙΚΑ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΕΚΣΤΡΑΤΕΙΑΣ:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNΟΝΟΜΑΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣΤΡΟΠΟΠΟΙΗΣΗ
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT pause_code from vicidial_pause_codes where campaign_id='$campaigns_id_list[$o]' order by pause_code;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ
\n"; +} + + +###################### +# ADD=39 display all campaign list mixes +###################### +if ($ADD==39) +{ +echo "
\n"; + echo ""; + +echo "
ΛΙΣΤΕΣ ΜΙΓΜΑΤΩΝ ΚΑΤΑΛΟΓΩΝ ΕΚΣΤΡΑΤΕΙΑΣ:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNΟΝΟΜΑLIST MIXΤΡΟΠΟΠΟΙΗΣΗ
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT vcl_id from vicidial_campaigns_list_mix where campaign_id='$campaigns_id_list[$o]' order by status,vcl_id;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY LIST MIX
\n"; +} + + + + + +###################### +# ADD=311 modify list info in the system +###################### + +if ($ADD==311) + { + if ($LOGmodify_lists==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; + + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names + + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΛΙΣΤΑΣ: $list_id
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "
ID Λίστας: $list_id$NWB#vicidial_lists-list_id$NWE
Ονομα Λίστας: $NWB#vicidial_lists-list_name$NWE
Περιγραφή καταλόγων: $NWB#vicidial_lists-list_description$NWE
Εκστρατεία: $NWB#vicidial_lists-campaign_id$NWE
Ενεργή:$NWB#vicidial_lists-active$NWE
ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΟΔΗΓΟΥ ΓΙΑ ΤΗΝ ΛΙΣΤΑ: $NWB#vicidial_lists-reset_list$NWE
Reset Times: $NWB#vicidial_lists-reset_time$NWE
Ημερομηνία αλλαγής καταλόγων: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Κατάλογος Last Call Ημερομηνία: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agent Σενάριο Παράκαμψη: $NWB#vicidial_lists-agent_script_override$NWE
Καμπάνια CID Παράκαμψη: $NWB#vicidial_lists-campaign_cid_override$NWE
Τηλεφωνητής Μήνυμα Παράκαμψη: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
Drop Inbound Ομάδα Παράκαμψη: $NWB#vicidial_lists-drop_inbound_group_override$NWE
Αριθμός Μεταφοράς-Συνδ 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; + + echo "
\n"; + echo "
ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΛΙΣΤΑ:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 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"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
ΚΑΤΑΣΤΑΣΗΟΝΟΜΑ ΚΑΤΑΣΤΑΣΗΣΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
ΖΩΝΕΣ ΩΡΑΣ ΣΤΗΝ ΛΙΣΤΑ:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
GMT OFFSET (τοπικός χρόνος)ΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
ΙΔΙΟΚΤΗΤΕΣ Στον κατάλογο:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
Βαθμοί Στον κατάλογο:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
RANKΚΛΗΘΕΝΤΑΜΗ ΚΛΗΘΕΝΤΑ
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
ΥΠΟΣΥΝΟΛΑ$lead_list[Y_count]$lead_list[N_count]
ΣΥΝΟΛΙΚΑ$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
ΜΕΤΡΗΣΗ ΚΛΗΣΕΩΝ ΣΤΗΝ ΛΙΣΤΑ:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; + + $sts=0; + $statuses_called_to_print = count($status); + while ($statuses_called_to_print > $sts) + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; + $first++; + } + echo "\n"; + + echo "
ΚΑΤΑΣΤΑΣΗΟΝΟΜΑ ΚΑΤΑΣΤΑΣΗΣ$first$FplusΥΠΟΣΥΝΟΛΟ
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
ΣΥΝΟΛΙΚΑ$all_called_count[$first]$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Κάντε κλικ εδώ για να δείτε όλες τις Callback Κύτος στον κατάλογο αυτό

\n"; + echo "

Κάντε κλικ εδώ για να κατεβάσετε τον κατάλογο αυτό

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗ ΤΗΝ ΛΙΣΤΑ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την λίστα
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + +###################### +# ADD=3111 modify in-group info in the system +###################### + +if ($ADD==3111) + { + if ($LOGmodify_ingroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΟΜΑΔΩΝ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ID Ομάδας: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Ονομα Ομάδας: $NWB#vicidial_inbound_groups-group_name$NWE
Χρώμα Ομάδας: $NWB#vicidial_inbound_groups-group_color$NWE
Ενεργή:$NWB#vicidial_inbound_groups-active$NWE
Ιστο-σελίδα: $NWB#vicidial_inbound_groups-web_form_address$NWE
Ιστο-σελίδα Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Επόμενη Κλήση Χειριστή: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Κοτσίδας Προτεραιότητα: $NWB#vicidial_inbound_groups-queue_priority$NWE
Μπροστινή Οθόνη: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Κατά την έναρξη κλήσης: $NWB#vicidial_inbound_groups-get_call_launch$NWE
DTMF Μεταφοράς-Συνδ 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
DTMF Μεταφοράς-Συνδ 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Αριθμός Μεταφοράς-Συνδ 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Timer Δράση: $NWB#vicidial_inbound_groups-timer_action$NWE
Timer Δράση Μήνυμα: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Timer Δευτερόλεπτα Δράση: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Δευτερ. Εγκαταλ. Κλήσης: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop δράσης:$NWB#vicidial_inbound_groups-drop_action$NWE
Εσωτ. Σύνδεση Εγκατάλειψης: $NWB#vicidial_inbound_groups-drop_exten$NWE
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop Μεταφορά Ομάδα:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Χρόνος κλήσης:$NWB#vicidial_inbound_groups-call_time_id$NWE
Μετά από τη δράση ωρών:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Μετά από το όνομα αρχείου μηνυμάτων ωρών: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Μετά από την παράταση ωρών:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Μετά από το φωνητικό ταχυδρομείο ωρών: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Μετά από ώρες Μεταφορά Ομάδα:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Δεν Πράκτορες Δεν Αναμονής: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
Δεν Agent Δεν Queue δράσης: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Καλέστε Μενού:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID Λίστας: "; + echo "
ID Εκστρατείας: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Παράταση:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Τηλεφωνητής Box: voicemail chooser\n"; + } + + echo "
+
 
Ευπρόσδεκτο όνομα αρχείου μηνυμάτων: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Παίξτε Καλωσόρισμα:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Μουσική στο πλαίσιο λαβής: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
Στο γρήγορο όνομα αρχείου λαβής: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Στο γρήγορο διάστημα λαβής:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Παίξτε στο Line Τόπος:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Παίξτε Κρατήστε Εκτιμώμενη Ώρα:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Κρατήστε την επιλογή Ώρα:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Κρατήστε την επιλογή Δευτερόλεπτα Ώρα:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Κρατήστε Ώρα Επιλογή Παράταση:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Κρατήστε Ώρα Επιλογή Τηλεφωνητής: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Κρατήστε Ώρα Επιλογή Μεταφορά σε ομάδα:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Κρατήστε Ώρα Επιλογή Callback αρχείου: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Κρατήστε Ώρα Επιλογή Callback Κατάλογος ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agent Alert Filename: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
Αγρυπνη καθυστέρηση πρακτόρων:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Ομάδα μεταφοράς προεπιλογής:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Προεπιλεγμένη ομάδα Γνωστός: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Κρατήστε Ανάκληση Μεταφορά σε ομάδα:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Δεν Υστέρηση Call Διαδρομή:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
-Στην ομάδα Καταγραφή Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
-Στην ομάδα Καταγραφή αρχείου:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Στατιστικά Ποσοστό ζητεί απάντηση εντός δευτερολέπτων X 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Στατιστικά Ποσοστό ζητεί απάντηση εντός δευτερολέπτων X 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Ξεκινήστε Call URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
Καλέστε dispo URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Inbound Ομάδα QC Ρυθμίσεις:
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC καθεστώτα:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC WebForm:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Δείτε Καταγραφή: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; + echo "

\n"; + + + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
ΧΕΙΡΙΣΤΗΣRANKS FOR THIS Εισερχόμενα GROUP:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Κάντε κλικ εδώ για να δείτε μια έκθεση για αυτό το εισερχόμενο ομάδα

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "ΕΚΣΤΡΑΤΕΙΕΣ οποίες καθιστούν δυνατή την ομάδα της:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΕΙΣ-ΟΜΑΔΑ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages In-Group\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + +###################### +# ADD=3311 modify did info in the system +###################### + +if ($ADD==3311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFY A DID RECORD:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
DID Επέκταση:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Περιγραφή:$NWB#vicidial_inbound_dids-did_description$NWE
Ενεργή:$NWB#vicidial_inbound_dids-did_active$NWE
DID Οδός:$NWB#vicidial_inbound_dids-did_route$NWE
Παράταση:$NWB#vicidial_inbound_dids-extension$NWE
Παράταση Πλαίσιο:$NWB#vicidial_inbound_dids-exten_context$NWE
Τηλεφωνητής Box: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Παράταση Τηλέφωνο:$NWB#vicidial_inbound_dids-phone$NWE
IP Διακομιστή: $NWB#vicidial_inbound_dids-server_ip$NWE
Καλέστε Μενού: $NWB#vicidial_inbound_dids-menu_id$NWE
Χρήστης Agent:$NWB#vicidial_inbound_dids-user$NWE
Χρήστης Unavailable δράσης:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Ρυθμίσεις χρήστη Οδός-Στην ομάδα:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID Ομάδας: $NWB#vicidial_inbound_dids-group_id$NWE
Στην Ομάδα-Call Χειροκίνητος Τρόπος:$NWB#vicidial_inbound_dids-call_handle_method$NWE
Στην Ομάδα-Agent Search Μέθοδος:$NWB#vicidial_inbound_dids-agent_search_method$NWE
Στην ομάδα Κατάλογος-ID:$NWB#vicidial_inbound_dids-list_id$NWE
Στην ομάδα της εκστρατείας-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
Στην Ομάδα-τηλέφωνο Κωδικός:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Κάντε κλικ εδώ για να δείτε μια έκθεση για την κίνηση αυτή DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

Διαγραφή αυτής της DID\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages DID\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
Τροποποίηση μιας ΠΡΟΣΚΛΗΣΗ MENU RECORD: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Μενού ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Όνομα μενού: $NWB#vicidial_call_menu-menu_name$NWE
Μενού Προτροπή: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Μενού Timeout: $NWB#vicidial_call_menu-menu_timeout$NWE
Μενού Timeout Προτροπή: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Μενού Άκυρα Προτροπή: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Επαναλάβετε μενού: $NWB#vicidial_call_menu-menu_repeat$NWE
Μενού Ώρα Check: $NWB#vicidial_call_menu-menu_time_check$NWE
Χρόνος κλήσης:$NWB#vicidial_call_menu-call_time_id$NWE
Track καλεί σε πραγματικό χρόνο έκθεση: $NWB#vicidial_call_menu-track_in_vdac$NWE
Tracking Ομάδα:$NWB#vicidial_call_menu-tracking_group$NWE
Καλέστε Μενού Επιλογές:
+ Επιλογή: $dtmf_list   + Περιγραφή: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Καλέστε Μενού:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID Λίστας: "; + echo "
ID Εκστρατείας: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Παράταση:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Τηλεφωνητής Box: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Επιλογή: $dtmf_list   + Περιγραφή: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan Είσοδος:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan Είσοδος: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

DELETE THIS CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages με την παρούσα πρόσκληση MENU
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + +###################### +# ADD=31111 modify remote agents info in the system +###################### + +if ($ADD==31111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρήστη Ξεκινά: (μόνο αριθμοί, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Αριθμός Γραμμών: (μόνο αριθμοί)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Διακομιστή: $NWB#vicidial_remote_agents-server_ip$NWE
Εξωτερική Τηλ. Σύνδεση: (ο αριθμός που κλήθηκε από το πλάνο κλήσεων για να καλέσει τους χειριστές)$NWB#vicidial_remote_agents-conf_exten$NWE
Κατάσταση:$NWB#vicidial_remote_agents-status$NWE
Εκστρατεία: $NWB#vicidial_remote_agents-campaign_id$NWE
Εισερχόμενες Ομάδες: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΧΕΙΡΙΣΤΗ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το απομακρυσμένο πράκτορα
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=311111 modify user group info in the system +###################### + +if ($ADD==311111) + { + if ($LOGmodify_usergroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + + echo "\n"; + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Ομάδα: (όχι κενά ή στίξη)$NWB#vicidial_user_groups-user_group$NWE
Περιγραφή: (περιγραφή ομάδας)$NWB#vicidial_user_groups-group_name$NWE
ΔύναμηΏρα ρολόι Σύνδεση: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift εκτέλεση: $NWB#vicidial_user_groups-shift_enforcement$NWE
Επιτρεπόμενες Εκστρατείες:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Ομάδα Βάρδιες:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; + } + echo "
 
Agent Κατάσταση θέασης Ομάδες:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } + echo "
 
Agent Κατάσταση Προβολή Ώρα: $NWB#vicidial_user_groups-agent_status_view_time$NWE
QC Επιτρέπονται Καμπάνιες:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC Επιτρέπονται Εισερχόμενες Ομάδες:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; + + + ### list of users in this user group + + $active_confs = 0; + $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + echo "
\n"; + echo "
ΧΡΗΣΤΕΣ ΜΕΣΑ ΣΕ ΑΥΤΗΝ ΤΗΝ ΟΜΑΔΑ ΧΡΗΣΤΩΝ : $users_to_print
\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
USERΟΝΟΜΑΤΕΠΩΝΥΜΟΕΠΙΠΕΔΟΕΝΕΡΓΟ
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Κάντε κλικ εδώ για να δείτε όλες τις Callback Κύτος σε αυτή την ομάδα χρηστών

\n"; + echo "

Κάντε κλικ εδώ για να δείτε την κατάστασηΏρα ρολόι ομάδα για αυτόν τον χρήστη

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΟΜΑΔΑ ΧΡΗΣΤΩΝ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages ομάδα χρηστών
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=3111111 modify script info in the system +###################### + +if ($ADD==3111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΤΕ ΕΝΑΝ ΒΟΗΘΟ\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ταυτότητα χειρογράφων:: $script_id$NWB#vicidial_scripts-script_name$NWE
Όνομα χειρογράφων: (τίτλος του βοηθού)$NWB#vicidial_scripts-script_name$NWE
Σχόλια χειρόγραφου: $NWB#vicidial_scripts-script_comments$NWE
Ενεργή:$NWB#vicidial_scripts-active$NWE
Κείμενο χειρόγραφου:

Προεπισκόπιση Βοηθού
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " ΕΚΣΤΡΑΤΕΙΕΣ USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " ΕΙΣΕΡΧΟΜΕΝΕΣ ΟΜΑΔΕΣ USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΒΟΗΘΟ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το σενάριο\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=31111111 modify filter info in the system +###################### + +if ($ADD==31111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΝΟΣ ΦΙΛΤΡΟΥ\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Φίλτρου: $lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Όνομα Φίλτρου: (σύντομη περιγραφή του φίλτρου)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Σχόλια Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
SQL Φίλτρου: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + echo "

"; + echo "
ΕΛΕΓΧΟΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + if ($LOGdelete_filters > 0) + { + echo "

ΔΙΑΓΡΑΦΗ ΤΟΥ ΦΙΛΤΡΟΥ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages για αυτό το φίλτρο\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=321111111 modify call time definition info in the system +###################### + +if ($ADD==321111111) + { + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Προσθήκη Κανόνα Κατάστασης: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Απομάκρυνση Κανόνα Κατάστασης: $state_rule
\n"; + } + + $ADD=311111111; + } + else + { + echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; + } + } + + +###################### +# ADD=311111111 modify call time definition info in the system +###################### + +if ($ADD==311111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρόνου Κλήσης: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Ονομα Χρόνου Κλήσης: (σύντομη περιγραφή του χρόνου κλήσης)$NWB#vicidial_call_times-call_time_name$NWE
Σχόλια Χρόνου Κλήσης: $NWB#vicidial_call_times-call_time_comments$NWE
Προκαθορσμένη Εκκίνηση Προκαθορσμένη Παύση: $NWB#vicidial_call_times-ct_default_start$NWE
Κυριακή Εκκίνηση: Κυριακή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Δευτέρα Εκκίνηση: Δευτέρα Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τρίτη Εκκίνηση: Τρίτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τετάρτη Start: Τετάρτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Πέμπτη Εκκίνηση: Πέμπτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Παρασκευή Εκκίνηση: Παρασκευή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Σάββατο Εκκίνηση: Σάββατο Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Ενεργοί Ορισμοί Χρόνου Κλήσης Κατάστασης για αυτή την Εγγραφή:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "ΕΚΣΤΑΤΕΙΕΣ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΥΤΟ ΤΟΝ ΧΡΟΝΟ ΚΛΗΣΗΣ:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "Εισερχόμενα GROUPS USING THIS CALL TIME:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

ΔΙΑΓΡΑΦΗ ΟΡΙΣΜΟΥ ΧΡΟΝΟΥ ΚΛΗΣΗΣ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages φορά σε αυτή την έκκληση\n"; + } + } + else + { + echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; + } + + } + + +###################### +# ADD=3111111111 modify state call time definition info in the system +###################### + +if ($ADD==3111111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρόνου Κλήσης: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Ονομα Χρόνου Κλήσης Κατάτασης: (σύντομη περιγραφή του χρόνου κλήσης)$NWB#vicidial_call_times-call_time_name$NWE
Σχόλια Χρόνου Κλήσης Κατάστασης: $NWB#vicidial_call_times-call_time_comments$NWE
Προκαθορσμένη Εκκίνηση Προκαθορσμένη Παύση: $NWB#vicidial_call_times-ct_default_start$NWE
Κυριακή Εκκίνηση: Κυριακή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Δευτέρα Εκκίνηση: Δευτέρα Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τρίτη Εκκίνηση: Τρίτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Τετάρτη Start: Τετάρτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Πέμπτη Εκκίνηση: Πέμπτη Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Παρασκευή Εκκίνηση: Παρασκευή Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE
Σάββατο Εκκίνηση: Σάββατο Παύση: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "ΧΡΟΝΟΙ ΚΛΗΣΕΩΝ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΑΥΤΟ ΤΟΝ ΧΡΟΝΟ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

ΔΙΑΓΡΑΦΗ ΟΡΙΣΜΟΥ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ\n"; + } + } + else + { + echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; + } + } + + +###################### +# ADD=331111111 modify shift definition info in the system +###################### + +if ($ADD==331111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
MODIFY της στροφής\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift ID:$shift_id
Shift Όνομα: (σύντομη περιγραφή της μετατόπισης)$NWB#vicidial_shifts-shift_name$NWE
Shift Ώρα έναρξης:\n"; + echo "   Shift End Time:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Shift Μήκος: $NWB#vicidial_shifts-shift_length$NWE
Shift Καθημερινά:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Κυριακή
\n"; + echo "Δευτέρα
\n"; + echo "Τρίτη
\n"; + echo "Τετάρτη
\n"; + echo "Πέμπτη
\n"; + echo "Παρασκευή
\n"; + echo "Σάββατο
\n"; + echo "
\n"; + + echo "


\n"; + echo "ΟΜΑΔΕΣ ΧΡΗΣΤΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΠΑΡΟΥΣΑ SHIFT:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

Διαγραφή αυτής της SHIFT ΟΡΙΣΜΟΣ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages την εξέλιξη αυτή\n"; + } + } + else + { + echo "Δεν έχετε το δικαίωμα για να δείτε την σελίδα. Παρακαλώ επιστρέψτε."; + } + + } + + +###################### +# ADD=31111111111 modify phone record in the system +###################### + +if ($ADD==31111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΤΗΛΕΦΩΝΟΥ: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Τηλ.σύνδεσης τηλεφώνου: $NWB#phones-extension$NWE (Agent Screen Τηλέφωνο Σύνδεσης)
Αριθμός Σχεδίου Κλήσεων: (μόνο αριθμοί)$NWB#phones-dialplan_number$NWE
Τηλεφωνητής Box: (μόνο αριθμοί)$NWB#phones-voicemail_id$NWE
Εξερχόμενο CallerID: (μόνο αριθμοί)$NWB#phones-outbound_cid$NWE
Δνση IP Τηλεφώνου: (optional)$NWB#phones-phone_ip$NWE
Δνση IP Υπολογιστή: (optional)$NWB#phones-computer_ip$NWE
IP Διακομιστή: $NWB#phones-server_ip$NWE
Σύνδεση:$NWB#phones-login$NWE
Κωδικός:$NWB#phones-pass$NWE
Κατάσταση:$NWB#phones-status$NWE
Ενεργός Λογαριασμός: $NWB#phones-active$NWE
Τύπος τηλεφώνου: $NWB#phones-phone_type$NWE
Πλήρες Ονομα: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Διαγραφή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Μετά Email:$NWB#phones-delete_vm_after_email$NWE
Εταιρία:$NWB#phones-company$NWE
Εικόνα:$NWB#phones-picture$NWE
Νέα Μηνύματα: $row[14]$NWB#phones-messages$NWE
Παλαιά Μηνύματα: $row[15]$NWB#phones-old_messages$NWE
Προτόκολο Πελάτη: $NWB#phones-protocol$NWE
Τοπικό GMT: (Μην ρυθμίσεις για DST)$NWB#phones-local_gmt$NWE
Τηλέφωνο Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
Διαχειριστή Σύνδεση: $NWB#phones-ASTmgrUSERNAME$NWE
Κωδικός Διαχειριστή: $NWB#phones-ASTmgrSECRET$NWE
VICIDIAL Προκαθορισμένος Χρήστης: $NWB#phones-login_user$NWE
VICIDIAL Προκαθορισμένος Κωδικός: $NWB#phones-login_pass$NWE
VICIDIAL Προκαθορισμένη εκστρατεία: $NWB#phones-login_campaign$NWE
Τηλ.σύνδ. Στάθμευσης: $NWB#phones-park_on_extension$NWE
Τηλ.σύνδ. Συνδ.: $NWB#phones-conf_on_extension$NWE
VICIDIAL Τηλ.σύνδ. Στάθμευσης: $NWB#phones-VICIDIAL_park_on_extension$NWE
VICIDIAL Αρχείο Στάθμευσης: $NWB#phones-VICIDIAL_park_on_filename$NWE
Πρόθεμα Παρακολούθησης: $NWB#phones-monitor_prefix$NWE
Ηχογράφηση εσωτ.σύνδ.: $NWB#phones-recording_exten$NWE
VMailMain Τηλ.σύνδ.: $NWB#phones-voicemail_exten$NWE
VMailDump Τηλ.σύνδ.: $NWB#phones-voicemail_dump_exten$NWE
Περιεχόμενο Τηλ.σύνδ: $NWB#phones-ext_context$NWE
Τηλέφωνο Πλαίσιο: $NWB#phones-phone_context$NWE
Conf Φάκελος Secret: $NWB#phones-conf_secret$NWE
DTMFSend Κανάλι: $NWB#phones-dtmf_send_extension$NWE
Ομάδα Εξερχομένων Κλήσεων: $NWB#phones-call_out_number_group$NWE
Θέση Φυλλομετρητή: $NWB#phones-client_browser$NWE
Κατάλογος εγκατάστασης: $NWB#phones-install_directory$NWE
CallerID URL: $NWB#phones-local_web_callerID_URL$NWE
VICIDIAL Προκαθορισμένο URL: $NWB#phones-VICIDIAL_web_URL$NWE
Καταγραφή Γεγονότος Κλήσης: $NWB#phones-AGI_call_logging_enabled$NWE
Μεταγωγή Χρήστη: $NWB#phones-user_switching_enabled$NWE
Σε συνδιαλέξη: $NWB#phones-conferencing_enabled$NWE
Διαχειριστού Κλείσιμο: $NWB#phones-admin_hangup_enabled$NWE
Διαχειριστού Κλέψιμο: $NWB#phones-admin_hijack_enabled$NWE
Διαχειριστού Παρακολούθηση: $NWB#phones-admin_monitor_enabled$NWE
Στάθμευση Κλήσης: $NWB#phones-call_parking_enabled$NWE
Ελεγχος ενημερωτή: $NWB#phones-updater_check_enabled$NWE
AF Καταγραφή Γεγονότος: $NWB#phones-AFLogging_enabled$NWE
Ενεργή Ουρά: $NWB#phones-QUEUE_ACTION_enabled$NWE
Υπερεμφανιζόμενο παραθύρο CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Πλήκτρο VMail: $NWB#phones-voicemail_button_enabled$NWE
Ταχύτητα Ανανέωσης: $NWB#phones-enable_fast_refresh$NWE
Ρυθμός Ανανέωσης Ταχύτητας: (in ms)$NWB#phones-fast_refresh_rate$NWE
Συνεχής MySQL: $NWB#phones-enable_persistant_mysql$NWE
Αυτόματη Κλήση Επόμενου Αριθμού: $NWB#phones-auto_dial_next_number$NWE
Σταμάτα την ηχογράφηση μετά από κάθε κλήση: $NWB#phones-VDstop_rec_after_each_call$NWE
Επιτρέψτε τα μηνύματα SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
DBX Διακομιστής: (Πρωταρχικό DB Server)$NWB#phones-DBX_server$NWE
DBX Βάση Δεδομένων: (Πρωταρχικό Server Database)$NWB#phones-DBX_database$NWE
DBX Χρήστης: (Πρωταρχικό DB Login)$NWB#phones-DBX_user$NWE
DBX Κωδικός: (Πρωταρχικό DB Secret)$NWB#phones-DBX_pass$NWE
DBX Πόρτα: (Πρωταρχικό DB Port)$NWB#phones-DBX_port$NWE
DBY Διακομιστής: (ΔευτερεύονDB Server)$NWB#phones-DBY_server$NWE
DBY Βάση Δεδομένων: (ΔευτερεύονServer Database)$NWB#phones-DBY_database$NWE
DBY Χρήστης: (ΔευτερεύονDB Login)$NWB#phones-DBY_user$NWE
DBY Κωδικός: (ΔευτερεύονDB Secret)$NWB#phones-DBY_pass$NWE
DBY Πόρτα: (ΔευτερεύονDB Port)$NWB#phones-DBY_port$NWE
Πρότυπο ID: $NWB#phones-template_id$NWE
Επιβ Override: $NWB#phones-conf_override$NWE
\n"; + + echo "

Επιλέξτε εδώ για στατιστικά τηλεφώνου\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=32111111111 modify phone alias record in the system +###################### + +if ($ADD==32111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFY τηλεφώνου ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Γνωστός ID:$row[0] $NWB#phones-alias_id$NWE
Ψευδώνυμο: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
Στο πλαίσιο του παρόντος PHONES ΤΗΛΕΦΩΝΑ ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGINΤΗΛ.ΣΥΝΔΕΣΗSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

ΔΙΑΓΡΑΨΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages να άλλως αυτό το τηλέφωνο
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=33111111111 modify group alias record in the system +###################### + +if ($ADD==33111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFY Α ΟΜΙΛΟΣ ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Ομάδα Γνωστός ID: $row[0] $NWB#phones-group_alias_id$NWE
Ομάδα ψευδώνυμο: $NWB#phones-group_alias_name$NWE
CallerID Αριθμός: $NWB#phones-caller_id_number$NWE
CallerID Όνομα: $NWB#phones-caller_id_name$NWE
Ενεργή:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

Διαγράψετε αυτή την ομάδα ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages άλλως σε αυτή την ομάδα
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=311111111111 modify server record in the system +###################### + +if ($ADD==311111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; + + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΔΙΑΚΟΜΙΣΤΗ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
ID Διακομιστή: $NWB#servers-server_id$NWE
Περιγραφή Διακομιστή: $NWB#servers-server_description$NWE
Δνση IP Διακομιστή: $NWB#servers-server_ip$NWE
Ενεργή:$NWB#servers-active$NWE
System Load: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Channels: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
Εκδοση Asterisk: $NWB#servers-asterisk_version$NWE
Μέγιστος Αριθμός Trunk: $NWB#servers-max_vicidial_trunks$NWE
Max ζητεί ανά Δεύτερη: $NWB#servers-outbound_calls_per_second$NWE
Διακύμανση Τηλεφωνικής Κλήσης: $NWB#servers-vicidial_balance_active$NWE
Υπόλοιπο VICIDIAL Rank:$NWB#servers-vicidial_balance_rank$NWE
Διακύμανση εκτός ορίων: $NWB#servers-balance_trunks_offlimits$NWE
Λήπτης Telnet: $NWB#servers-telnet_host$NWE
Πόρτα Telnet: $NWB#servers-telnet_port$NWE
Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAME$NWE
Κωδικός Διαχειριστή: $NWB#servers-ASTmgrSECRET$NWE
Ενημέρωση Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Παρακολούθηση Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Αποστολή Χρήστη Διαχειριστή: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf Φάκελος Secret: $NWB#servers-conf_secret$NWE
Τοπικό GMT: (Μην ρυθμίσεις για DST)$NWB#servers-local_gmt$NWE
VMail εσωτ.σύνδεση απόρριψης: $NWB#servers-voicemail_dump_exten$NWE
AD εσωτ.σύνδεση: $NWB#servers-answer_transfer_agent$NWE
Προκαθορισμένο Περιεχόμενο: $NWB#servers-ext_context$NWE
Επίδοση Συστήματος +: $NWB#servers-sys_perf_log$NWE
Γεγονότα Διακομιστή +: $NWB#servers-vd_server_logs$NWE
Εξοδος AGI +: $NWB#servers-agi_output$NWE
Carrier Logging Ενεργή:$NWB#servers-carrier_logging_active$NWE
Καταγραφή Σύνδεσμος: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Διακομιστή: $NWB#servers-alt_server_ip$NWE
Asterisk Ενεργό Server: $NWB#servers-active_asterisk_server$NWE
Ενεργή Server Agent: $NWB#servers-active_agent_login_server$NWE
Δημιουργήστε conf αρχεία: $NWB#servers-generate_vicidial_conf$NWE
Αναδημιουργία conf αρχεία: $NWB#servers-rebuild_conf_files$NWE
Rebuild Music On Hold: $NWB#servers-rebuild_music_on_hold$NWE
Ήχοι Ενημέρωση: $NWB#servers-sounds_update$NWE
ViciDial Καταγραφή Όριο: $NWB#servers-vicidial_recording_limit$NWE
\n"; + + + ### vicidial server trunk records for this server + echo "

ΚΟΡΜΟΙ ΓΙΑ ΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ΕΚΣΤΡΑΤΕΙΑ ΚΟΡΜΟΙ ΠΕΡΙΟΡΙΣΜΟΣ DELETE
$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "
ΔΙΑΓΡΑΦΗ
\n"; + + echo "
ΠΡΟΣΘΗΚΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΣΡΜΟΥ
\n"; + echo "\n"; + echo "\n"; + echo "Μπαούλα:
\n"; + echo "ΕΚΣΤΡΑΤΕΙΑ:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "

\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
ΜΕΤΑΦΟΡΕΙΣ WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDΟΝΟΜΑREGISTRATIONΕΝΕΡΓΟ
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
ΤΗΛΕΦΩΝΑ ΣΤΟΝ ΔΙΑΚΟΜΙΣΤΗ:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
ΤΗΛ.ΣΥΝΔΕΣΗΟΝΟΜΑΕΝΕΡΓΟ
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEΤΗΛ.ΣΥΝΔΕΣΗ
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEΤΗΛ.ΣΥΝΔΕΣΗ
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Αυτός ο διακομιστής έχει $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Αυτός ο διακομιστής έχει $active_phones ενεργά τηλέφωνα και $inactive_phones μη ενεργά τηλέφωνα

\n"; + echo "Αυτός ο διακομιστής έχει $active_confs active conferences

\n"; + echo "Αυτός ο διακομιστής έχει $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS SERVER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτόν τον διακομιστή
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=331111111111 modify conf template record in the system +###################### + +if ($ADD==331111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; + + echo "
MODIFY Α ΠΙΣΤ TEMPLATE RECORD: $row[0]
\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Αναγνωριστικό: $template_id
Όνομα: $NWB#vicidial_conf_templates-template_name$NWE
Template Περιεχόμενα: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
PHONES ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΠΑΡΟΥΣΑ ΠΙΣΤ TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
ΤΗΛ.ΣΥΝΔΕΣΗΟΝΟΜΑSERVERΕΝΕΡΓΟ
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
Που χρησιμοποιούν ΠΑΡΟΝΤΑ ΠΙΣΤ TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERΟΝΟΜΑSERVERΕΝΕΡΓΟ
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

Διαγραφή αυτής της ΠΙΣΤ TEMPLATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages conf σε αυτό το πρότυπο
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=341111111111 modify carrier record in the system +###################### + +if ($ADD==341111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFY Α ΘΑΛΑΜΙΣΚΟ RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Θαλαμίσκος ID: $carrier_id
Φέρον Όνομα: $NWB#vicidial_server_carriers-carrier_name$NWE
Περιγραφή Carrier: $NWB#vicidial_server_carriers-carrier_description$NWE
Εγγραφή String: $NWB#vicidial_server_carriers-registration_string$NWE
Πρότυπο ID: $NWB#vicidial_server_carriers-template_id$NWE
Λογαριασμός Είσοδος: $NWB#vicidial_server_carriers-account_entry$NWE
Πρωτόκολλο: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Είσοδος: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Διακομιστή: $NWB#vicidial_server_carriers-server_ip$NWE
Ενεργή:$NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Διαγραφή αυτής της CARRIER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages για τον εν λόγω αερομεταφορέα
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
Τροποποίηση μιας TTS RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS ID: $tts_id
TTS Όνομα: $NWB#vicidial_tts_prompts-tts_name$NWE
Ενεργή:$NWB#vicidial_tts_prompts-active$NWE
TTS Κείμενο: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS TTS ΕΙΣΟΔΟΥ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτή την καταχώρηση TTS
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $moh_id
Music Hold On Όνομα: $NWB#vicidial_music_on_hold-moh_name$NWE
Ενεργή:$NWB#vicidial_music_on_hold-active$NWE
Τυχαία σειρά: $NWB#vicidial_music_on_hold-random$NWE
Αρχεία ήχου: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rank:\n"; + + echo "   $rowx[0] - ΔΙΑΓΡΑΦΗ
\n"; + $o++; + } + + echo "
Προσθέσετε ένα αρχείο ήχου: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Music on Hold ΕΙΣΟΔΟΥ\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το Music On Hold εισόδου
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
Τροποποίηση μιας ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ BOX: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ID: $voicemail_id
Κωδικός:$NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Email:$NWB#vicidial_voicemail-email$NWE
Ενεργή:$NWB#vicidial_voicemail-active$NWE
Διαγραφή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Μετά Email:$NWB#vicidial_voicemail-delete_vm_after_email$NWE
Νέα Μηνύματα: $messages
Παλαιά Μηνύματα: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE αυτό το μήνυμα BOX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages σε αυτή τη θέση τηλεφωνητή
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=3111111111111 modify conference record in the system +###################### + +if ($ADD==3111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΣΥΝΔΙΑΛΕΞΗΣ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Συνδιάλεξη:$NWB#conferences-conf_exten$NWE
IP Διακομιστή: $NWB#conferences-server_ip$NWE
Ισχύουσα εσωτ.σύνδεση:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Διαγραφή αυτής της ΣΥΝΕΔΡΙΟ\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +###################### +# ADD=31111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==31111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Συνδιάλεξη:$NWB#conferences-conf_exten$NWE
IP Διακομιστή: $NWB#conferences-server_ip$NWE
Ισχύουσα εσωτ.σύνδεση:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Διαγραφή αυτής της VICIDIAL ΣΥΝΕΔΡΙΟ\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + +###################### +# ADD=311111111111111 modify vicidial system settings +###################### + +if ($ADD==311111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; + + echo "
ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΤΟΠΟΘΕΤΉΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Έκδοση: $version
DB Schema Έκδοση: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto Χρήστης-add Value: $auto_user_add_value
Εγκαταστήστε Ημερομηνία: $install_date
Μη-λατινικά χρήσης: $NWB#settings-use_non_latin$NWE
Webroot writable: $NWB#settings-webroot_writable$NWE
VICIDIAL ο πράκτορας θέτει εκτός λειτουργίας την επίδειξη: $NWB#settings-vicidial_agent_disable$NWE
Επιτρέψτε τα μηνύματα SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
Σπίτι URL Admin:$NWB#settings-admin_home_url$NWE
Επιτρέψτε το αρχείο ημερολογίου μεταφοράς πρακτόρων: $NWB#settings-enable_agc_xfer_log$NWE
Ώρα ρολόι Τέλος της ημέρας:$NWB#settings-timeclock_end_of_day$NWE
ΤελευταίαΏρα ρολόι Αυτόματη Αποσύνδεση: $timeclock_last_reset_date
Agent Screen Επικεφαλίδας Μορφή Ημερομηνίας: $NWB#settings-vdc_header_date_format$NWE
Agent Screen Πελατών Μορφή Ημερομηνίας: $NWB#settings-vdc_customer_date_format$NWE
Agent Screen Πελατών τηλέφωνο Μορφοποίηση: $NWB#settings-vdc_header_phone_format$NWE
Agent API Ενεργό:$NWB#settings-vdc_agent_api_active$NWE
Agent Μόνο Callback Καμπάνια Lock: $NWB#settings-agentonly_callback_campaign_lock$NWE
Κεντρική Sound Control Ενεργό: $NWB#settings-sounds_central_control_active$NWE
Ήχοι Web Server: $NWB#settings-sounds_web_server$NWE
Ήχοι Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Ενεργή ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Server: $NWB#settings-active_voicemail_server$NWE
Auto Dial Όριο: $NWB#settings-auto_dial_limit$NWE
Εξερχόμενο Auto-Dial Ενεργή:$NWB#settings-outbound_autodial_active$NWE
Max ΣΥΜΠΛΗΡΩΣΤΕ ζητεί ανά Δεύτερη: $NWB#settings-outbound_calls_per_second$NWE
Επιτρέψτε Custom dialplan Καταχωρήσεις: $NWB#settings-allow_custom_dialplan$NWE
Χρήστης Εδάφη Ενεργή:$NWB#settings-user_territories_active$NWE
Ενεργοποίηση Δεύτερη Webform: $NWB#settings-enable_second_webform$NWE
Ενεργοποίηση TTS Ολοκλήρωσης: $NWB#settings-enable_tts_integration$NWE
QC Χαρακτηριστικά Ενεργή:$NWB#settings-qc_features_active$NWE
QC Τελευταία Τραβήξτε Ώρα: $qc_last_pull_time
Επιτρέψτε την αναγραφή QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
QueueMetrics κεντρικός υπολογιστής IP: $NWB#settings-queuemetrics_server_ip$NWE
QueueMetrics όνομα DB: $NWB#settings-queuemetrics_dbname$NWE
QueueMetrics σύνδεση DB: $NWB#settings-queuemetrics_login$NWE
QueueMetrics κωδικός πρόσβασης DB: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
QueueMetrics καταγράψτε την ταυτότητα: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend:$NWB#settings-queuemetrics_eq_prepend$NWE
Ενεργοποίηση Vtiger Ένταξη: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Κάντε κλικ εδώ για να Συγχρονίστε χρήστες με Vtiger\n"; + echo "
Vtiger ΣΠ IP Διακομιστή: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Σύνδεση:$NWB#settings-vtiger_login$NWE
Vtiger DB Κωδικός:$NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Κάντε κλικ εδώ για να δείτε Admin chages για τις ρυθμίσεις του συστήματος
\n"; + } + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + + + + +###################### +# ADD=321111111111111 modify vicidial system statuses +###################### + +if ($ADD==321111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL ΘΕΣΕΙΣ ΜΕΣΑ ΣΕ ΑΥΤΟ ΤΟ ΣΥΣΤΗΜΑ:  $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ΚΑΤΑΣΤΑΣΗΠΕΡΙΓΡΑΦΗSELECT-
ABLE
ΑΝΘΡΩΠΙΝΗ
ΑΠΑΝΤΗΣΗ
ΚΑΤΗΓΟΡΙΑMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "ΔΙΑΓΡΑΦΗ\n"; + } + else + { + echo "ΔΙΑΓΡΑΦΗ\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ
\n"; + echo "\n"; + echo "Κατάσταση:   \n"; + echo "Περιγραφή:
\n"; + echo "Επιλέξιμο:   \n"; + echo "Ανθρώπινα Απάντηση:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Κατηγορία:\n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + + + +###################### +# ADD=331111111111111 modify vicidial status categories +###################### + +if ($ADD==331111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL Κατάσταση ΚΑΤΗΓΟΡΙΕΣ:   $NWB#vicidial_status_categories$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Avsc_id[$o] = $rowx[0]; + $Avsc_name[$o] = $rowx[1]; + $Avsc_description[$o] = $rowx[2]; + $Atovdad_display[$o] = $rowx[3]; + $Asale_category[$o] = $rowx[4]; + $Adead_lead_category[$o] = $rowx[5]; + $o++; + } + $p=0; + while ($o > $p) + { + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CATstatuses=''; + $stmt="SELECT status from vicidial_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + $stmt="SELECT status from vicidial_campaign_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $p++; + } + + echo "
ΚΑΤΗΓΟΡΙΑΟΝΟΜΑΚαθεστώτων σε αυτήν την κατηγορία
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$Avsc_id[$p]
\n"; + echo "$CATstatuses"; + echo "
TO VDAD Εμφάνιση:     Πώληση Κατηγορία:     Νεκρά Μόλυβδος Κατηγορία:  
Περιγραφή:
        \n"; + echo "   ΔΙΑΓΡΑΦΗ
 
\n"; + + echo "
ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Εμφάνιση:   \n"; + echo "Πώληση Κατηγορία:   \n"; + echo "Νεκρά Μόλυβδος Κατηγορία:  
\n"; + echo "Περιγραφή:   \n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + + + +###################### +# ADD=341111111111111 modify vicidial QC status code +###################### + +if ($ADD==341111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "QC VICIDIAL κωδικοί στα πλαίσια αυτού του συστήματος:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEΠΕΡΙΓΡΑΦΗMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "ΔΙΑΓΡΑΦΗ\n"; + } + else + { + echo "ΔΙΑΓΡΑΦΗ\n"; + } + echo "
\n"; + + echo "
Προσθήκη νέου QC Κατάσταση ΚΩΔΙΚΟΣ
\n"; + echo "\n"; + echo "Κατάσταση:   \n"; + echo "Περιγραφή:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) + { + echo "
\n"; + echo ""; + + echo "
ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΗ
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Αριθμός Χρήστη:
Πλήρες Ονομα:
Επίπεδο Χρήστη:
Ομάδα Χρήστη:
\n"; + } + +###################### +# ADD=660 user search results +###################### + +if ($ADD==660) + { + echo "
\n"; + echo ""; + + $SQL = ''; + if ($user) {$SQL .= " user LIKE \"%$user%\" and";} + if ($full_name) {$SQL .= " full_name LIKE \"%$full_name%\" and";} + if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} + if ($user_group) {$SQL .= " user_group = '$user_group' and";} + $SQL = eregi_replace(" and$", "", $SQL); + if (strlen($SQL)>5) {$SQL = "and $SQL";} + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; +# echo "\n|$stmt|\n"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
ΑΝΑΖΗΤΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ:\n"; + echo "
\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo "\n"; + $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]ΤΡΟΠΟΠΟΙΗΣΗ | ΣΤΑΤΙΣΤΙΚΑ | ΚΑΤΑΣΤΑΣΗ | TIME
\n"; + + } + + +###################################################################################################### +###################################################################################################### +####### 8 series, Callback lists +###################################################################################################### +###################################################################################################### + +###################### +# ADD=8 find all callbacks on hold by a User +###################### +if ($ADD==8) + { + if ($LOGmodify_users==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Χρήστης($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Χρήστης($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + + echo ""; + + $CBquerySQLwhere = "and user='$user'"; + + echo "
USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } + +###################### +# ADD=81 find all callbacks on hold within a Campaign +###################### +if ($ADD==81) + { + if ($LOGmodify_campaigns==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + + echo ""; + + $CBquerySQLwhere = "and campaign_id='$campaign_id'"; + + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } + +###################### +# ADD=811 find all callbacks on hold within a List +###################### +if ($ADD==811) + { + if ($LOGmodify_lists==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + + echo ""; + + $CBquerySQLwhere = "and list_id='$list_id'"; + + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } + +###################### +# ADD=8111 find all callbacks on hold within a user group +###################### +if ($ADD==8111) + { + if ($LOGmodify_usergroups==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; + + echo ""; + + $CBquerySQLwhere = "and user_group='$user_group'"; + + echo "
ΟΜΑΔΑ ΧΡΗΣΤΩΝ CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } + +###################### +# ADD=82 display all callbacks on hold +###################### +if ($ADD==82) + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $ΕΠΙΠΕΔΟlink='stage=ΕΠΙΠΕΔΟUP';} + + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $rslt=mysql_query($stmt, $link); + $cb_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($cb_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
LEADLISTΕΚΣΤΡΑΤΕΙΑENTRY ΗΜΕΡΑCALLBACK ΗΜΕΡΑUSERRECIPIENTΚΑΤΑΣΤΑΣΗGROUP
$row[1]$row[2]$row[3]$row[5]$row[6]$row[8]$row[9]$row[4]$row[11]
\n"; + + echo "$CBinactiveLINK"; + } + + + +###################################################################################################### +###################################################################################################### +####### 0 series, displays and searches +###################################################################################################### +###################################################################################################### + +###################### +# ADD=0 display all active users +###################### +if ($ADD==0) + { + echo "
\n"; + echo ""; + echo "
ΛΙΣΤΕΣ ΧΡΗΣΤΗ: "; + if (ereg('display_all',$status)) + { + $SQLstatus = ''; + echo "   Εμφάνιση μόνο των ενεργών χρηστών\n"; + } + else + { + $SQLstatus = "and active='Y'"; + echo "   δείτε όλους τους χρήστες\n"; + } + + $USERlink='stage=USERIDDOWN'; + $NAMElink='stage=NAMEDOWN'; + $ΕΠΙΠΕΔΟlink='stage=ΕΠΙΠΕΔΟDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $SQLorder='order by full_name'; + if (eregi("USERIDUP",$stage)) {$SQLorder='order by user asc'; $USERlink='stage=USERIDDOWN';} + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc'; $USERlink='stage=USERIDUP';} + if (eregi("NAMEUP",$stage)) {$SQLorder='order by full_name asc'; $NAMElink='stage=NAMEDOWN';} + if (eregi("NAMEDOWN",$stage)) {$SQLorder='order by full_name desc'; $NAMElink='stage=NAMEUP';} + if (eregi("ΕΠΙΠΕΔΟUP",$stage)) {$SQLorder='order by user_level asc'; $ΕΠΙΠΕΔΟlink='stage=ΕΠΙΠΕΔΟDOWN';} + if (eregi("ΕΠΙΠΕΔΟDOWN",$stage)) {$SQLorder='order by user_level desc'; $ΕΠΙΠΕΔΟlink='stage=ΕΠΙΠΕΔΟUP';} + if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ID ΧΡΗΣΤΗΟΝΟΜΑΤΕΠΩΝΥΜΟΕΠΙΠΕΔΟGROUPΕΝΕΡΓΟΣΥΝΔΕΣΜΟΙ
$row[0]$row[1]$row[2]$row[3]$row[4]
ΤΡΟΠΟΠΟΙΗΣΗ | ΣΤΑΤΙΣΤΙΚΑ | ΚΑΤΑΣΤΑΣΗ | TIME
\n"; + } + +###################### +# ADD=10 display all campaigns +###################### +if ($ADD==10) + { + echo "
\n"; + echo ""; + + $stmt="SELECT campaign_id,campaign_name,active,dial_method,auto_dial_level,lead_order,dial_statuses from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + echo "
ΕΝΤΑΓΜΕΝΕΣ ΕΚΣΤΡΑΤΕΙΕΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + $o++; + } + + echo "
CAMPAIGN ID
ΟΝΟΜΑ
ACTIVE   ΤΗΛΕΦΩΝΕΙΣΤΕ ΜΕΘΟΔΟΣ   ΕΠΙΠΕΔΟ   ΜΟΛΥΒΔΟΥ ORDER   ΤΗΛΕΦΩΝΕΙΣΤΕ καθεστώτων   ΤΡΟΠΟΠΟΙΗΣΗ
$row[0]   $row[1]   $row[2]   $row[3]   $row[4]   $row[5]   $row[6]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=100 display all lists +###################### +if ($ADD==100) + { + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
ΕΝΤΑΓΜΕΝΕΣ ΛΙΣΤΕΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $lists_printed = ''; + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $lists_printed .= "'$row[0]',"; + $o++; + } + + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ID ΛΙΣΤΑΣΟΝΟΜΑ ΛΙΣΤΑΣΠΕΡΙΓΡΑΦΗRTIMELEADS COUNTΕΝΕΡΓΟΤΕΛΕΥΤΑΙΑ ΗΜΕΡΟΜΗΝΙΑ ΥΠΟΒΟΛΗΣCAMPAIGNΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]ΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + + +###################### +# ADD=1000 display all inbound groups +###################### +if ($ADD==1000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,queue_priority,active,call_time_id,group_color from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $ingroups_to_print = mysql_num_rows($rslt); + + echo "
ΕΝΤΑΓΜΕΝΕΣ ΕΙΣΕΡΧΟΜΕΝΕΣ ΟΜΑΔΕΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($ingroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
IN-GROUPΟΝΟΜΑΠΡΟΤΕΡΑΙΟΤΗΤΑΣΕΝΕΡΓΟTIMECOLORΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[3] $row[4]  ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=1300 display all inbound dids +###################### +if ($ADD==1300) + { + echo "
\n"; + echo ""; + + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route from vicidial_inbound_dids order by did_pattern"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + + echo "
Εισερχόμενα DID LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
#DIDΠΕΡΙΓΡΑΦΗΕΝΕΡΓΟROUTEΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[3] $row[4]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
ΠΡΟΣΚΛΗΣΗ MENU LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDΟΝΟΜΑPROMPTTIMEOUTOPTIONSΤΡΟΠΟΠΟΙΗΣΗ
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=10000 display all remote agents +###################### +if ($ADD==10000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id from vicidial_remote_agents order by server_ip,campaign_id,user_start"; + $rslt=mysql_query($stmt, $link); + $remoteagents_to_print = mysql_num_rows($rslt); + + echo "
ΕΝΤΑΓΜΕΝΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($remoteagents_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
USERLINESΔΙΑΚΟΜΙΣΤΗΣ   CONF-EXTEN   STATUS   CAMPAIGN   ΤΡΟΠΟΠΟΙΗΣΗ
$row[1] $row[2] $row[3] $row[4] $row[5] $row[6]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=100000 display all user groups +###################### +if ($ADD==100000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,forced_timeclock_login from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $usergroups_to_print = mysql_num_rows($rslt); + + echo "
ΕΝΤΑΓΜΕΝΕΣ ΟΜΑΔΕΣ ΧΡΗΣΤΗ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($usergroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ΟΜΑΔΑ ΧΡΗΣΤΩΝΌνομα ΟμάδαςΙΣΧΥΟΝΤΑ TIMECLOCK   ΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=1000000 display all scripts +###################### +if ($ADD==1000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,active from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + + echo "
ΛΙΣΤΕΣ ΒΟΗΘΩΝ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SCRIPT IDSCRIPT ΟΝΟΜΑACTIVE   ΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=10000000 display all filters +###################### +if ($ADD==10000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + + echo "
ΛΙΣΤΕΣ ΟΔΗΓΟΥ ΦΙΛΤΡΟΥ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($filters_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
FILTER IDFILTER NAMEΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=100000000 display all call times +###################### +if ($ADD==100000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,ct_default_start,ct_default_stop from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $calltimes_to_print = mysql_num_rows($rslt); + + echo "
ΛΙΣΤΕΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($calltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME ΟΝΟΜΑDEFAULT STARTDEFAULT STOPΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[3] ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + +###################### +# ADD=1000000000 display all state call times +###################### +if ($ADD==1000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,sct_default_start,sct_default_stop from vicidial_state_call_times order by state_call_time_id"; + $rslt=mysql_query($stmt, $link); + $statecalltimes_to_print = mysql_num_rows($rslt); + + echo "
ΛΙΣΤΕΣ ΧΡΟΝΟΥ ΚΛΗΣΗΣ ΚΑΤΑΣΤΑΣΗΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($statecalltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME STATECALLTIME ΟΝΟΜΑDEFAULT STARTDEFAULT STOPΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[3] $row[4] ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + +###################### +# ADD=130000000 display all shifts +###################### +if ($ADD==130000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + + echo "
SHIFT Καταχωρίσεις:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($shifts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SHIFT IDSHIFT ΟΝΟΜΑSHIFT STARTSHIFT ΜΗΚΟΣΚαθημερινάΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2] $row[3] $row[4] ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + +###################### +# ADD=10000000000 display all phones +###################### +if ($ADD==10000000000) + { + echo "
\n"; + echo ""; + + $EXTENlink='stage=EXTENDOWN'; + $PROTOlink='stage=PROTODOWN'; + $SERVERlink='stage=SERVERDOWN'; + $STATUSlink='stage=STATUSDOWN'; + $SQLorder='order by extension,server_ip'; + if (eregi("EXTENUP",$stage)) {$SQLorder='order by extension asc'; $EXTENlink='stage=EXTENDOWN';} + if (eregi("EXTENDOWN",$stage)) {$SQLorder='order by extension desc'; $EXTENlink='stage=EXTENUP';} + if (eregi("PROTOUP",$stage)) {$SQLorder='order by protocol asc'; $PROTOlink='stage=PROTODOWN';} + if (eregi("PROTODOWN",$stage)) {$SQLorder='order by protocol desc'; $PROTOlink='stage=PROTOUP';} + if (eregi("SERVERUP",$stage)) {$SQLorder='order by server_ip asc'; $SERVERlink='stage=SERVERDOWN';} + if (eregi("SERVERDOWN",$stage)) {$SQLorder='order by server_ip desc'; $SERVERlink='stage=SERVERUP';} + if (eregi("STATUSUP",$stage)) {$SQLorder='order by status asc'; $STATUSlink='stage=STATUSDOWN';} + if (eregi("STATUSDOWN",$stage)) {$SQLorder='order by status desc'; $STATUSlink='stage=STATUSUP';} + $stmt="SELECT extension,protocol,server_ip,dialplan_number,voicemail_id,status,fullname,messages,old_messages from phones $SQLorder"; + $rslt=mysql_query($stmt, $link); + $phones_to_print = mysql_num_rows($rslt); + + echo "
ΕΝΤΑΓΜΕΝΑ ΤΗΛΕΦΩΝΑ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phones_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo " + + + + + + + + "; + echo "\n"; + $o++; + } + + echo "
EXTENPROTOSERVERDIAL PLANΚΑΤΑΣΤΑΣΗΟΝΟΜΑVMAILΣΥΝΔΕΣΜΟΙ
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]$row[7]$row[8]ΤΡΟΠΟΠΟΙΗΣΗ | ΣΤΑΤΙΣΤΙΚΑ
\n"; + } + +###################### +# ADD=12000000000 display all phones alias +###################### +if ($ADD==12000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias order by alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
PHONE ALIAS Καταχωρίσεις:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ALIAS IDΨευδώνυμοΤΗΛ. ΚΑΤΑΛΟΓΟΣ συνδέσειςΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + +###################### +# ADD=13000000000 display all group alias +###################### +if ($ADD==13000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias order by group_alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
ΟΜΑΔΑ ALIAS Καταχωρίσεις:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ΟΜΑΔΑ ALIAS IDΟΜΑΔΑ ψευδώνυμοΑΡΙΘΜΟΣ CIDCID ΟΝΟΜΑΕΝΕΡΓΟΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]$row[4]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + +###################### +# ADD=100000000000 display all servers +###################### +if ($ADD==100000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,local_gmt from servers order by server_id"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + + echo "
ΕΝΤΑΓΜΕΝΟΙ ΔΙΑΚΟΜΙΣΤΕΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($servers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ΔΙΑΚΟΜΙΣΤΗΣ IDΟΝΟΜΑΔΙΑΚΟΜΙΣΤΗΣ IPΕΝΕΡΓΟASTERISKΜπαούλαGMTΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + +###################### +# ADD=130000000000 display all conf templates +###################### +if ($ADD==130000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name from vicidial_conf_templates order by template_id"; + $rslt=mysql_query($stmt, $link); + $templates_to_print = mysql_num_rows($rslt); + + echo "
ΠΙΣΤ TEMPLATE Καταχωρίσεις:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($templates_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Πρότυπο IDΌνομαΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + +###################### +# ADD=140000000000 display all carriers +###################### +if ($ADD==140000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,server_ip,protocol,registration_string,active from vicidial_server_carriers order by carrier_id"; + $rslt=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rslt); + + echo "
ΘΑΛΑΜΙΣΚΟ Καταχωρίσεις:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($carriers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Θαλαμίσκος IDΦέρον ΌνομαIP ΔιακομιστήProtocolΕγγραφήΕνεργόΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS IDTTS ΌνομαΕνεργόTTS ΚείμενοΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameΕνεργόΤυχαία σειράΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ΚΟΥΤΙΑ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameΕνεργόΝέα ΜηνύματαΠαλαιά ΜηνύματαDeleteΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + +###################### +# ADD=1000000000000 display all conferences +###################### +if ($ADD==1000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $conferences_to_print = mysql_num_rows($rslt); + + echo "
ΕΝΤΑΓΜΕΝΕΣ ΣΥΝΔΙΑΛΕΞΕΙΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($conferences_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCEΔΙΑΚΟΜΙΣΤΗΣ IPΤΗΛ.ΣΥΝΔΕΣΗΤΡΟΠΟΠΟΙΗΣΗ
$row[0]$row[1]$row[2]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + +###################### +# ADD=10000000000000 display all vicidial conferences +###################### +if ($ADD==10000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from vicidial_conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $vicidialconf_to_print = mysql_num_rows($rslt); + + echo "
VICIDIAL ΕΝΤΑΓΜΕΝΕΣ ΣΥΝΔΙΑΛΕΞΕΙΣ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vicidialconf_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCEΔΙΑΚΟΜΙΣΤΗΣ IPΤΗΛ.ΣΥΝΔΕΣΗΤΡΟΠΟΠΟΙΗΣΗ
$row[0] $row[1] $row[2]ΤΡΟΠΟΠΟΙΗΣΗ
\n"; + } + + + + + +###################### +# ADD=700000000000000 view all activity in the admin log +###################### + +if ($ADD==700000000000000) + { + echo "
\n"; + echo ""; + + if ($stage > 9999) + { + $next_limit = ($stage + 10000); + $limitSQL = "10000 offset $stage"; + } + else + { + $next_limit = "10000"; + $limitSQL = "10000"; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log order by event_date desc limit $limitSQL;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN CHANGE LOG: (Τελευταία 10.000 εγγραφές)\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDΠΕΡΙΓΡΑΦΗGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "NEXT\n"; + echo "
\n"; + } + + +###################### +# ADD=710000000000000 view all activity in the admin log made by one user +###################### + +if ($ADD==710000000000000) + { + echo "\n";echo "\n"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; + +?> +
+ +
\n"; + echo ""; + + $stmt="SELECT full_name from vicidial_users where user='$stage';"; + $rslt=mysql_query($stmt, $link); + $names_to_print = mysql_num_rows($rslt); + if ($names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $user_name = $row[0]; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where user='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN CHANGE LOG: Οι αλλαγές που έγιναν από $stage - $user_name\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDΠΕΡΙΓΡΑΦΗGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=720000000000000 view all activity in the admin log made to one section/value +###################### + +if ($ADD==720000000000000) + { + echo "\n"; +echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where event_section='$category' and record_id='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN CHANGE LOG: Τμήμα Εγγραφές - $category - $stage\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDΠΕΡΙΓΡΑΦΗGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=730000000000000 detail view of one admin log entry +###################### + +if ($ADD==730000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,val.user,ip_address,event_section,event_type,record_id,event_code,event_notes,event_sql,full_name from vicidial_admin_log val, vicidial_users vu where admin_log_id='$stage' and val.user=vu.user;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + if ($logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + echo "
ADMIN CHANGE LOG: Εγγραφή Λεπτομέρειες - $stage

\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + $row[9] = eregi_replace("',","' ,",$row[9]); + echo ""; + echo ""; + echo "\n"; + echo "
ID: $row[0]
DATE TIME: $row[1]
USER: $row[2] - $row[10]
IP: $row[3]
SECTION: $row[4]
TYPE: $row[5]
RECORD ID: $row[6]
DESCRIPTION: $row[7]
NOTES: $row[8]
SQL:

$row[9]



\n"; + echo "\n"; + echo "
\n"; + } + } + + +###################### +# ADD=999999 display reports section +###################### +if ($ADD==999999) + { + if ($LOGview_reports==1) + { + echo "
\n"; + echo ""; + + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $servers_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $sysload[$i] = $row[4]; + $channels_total[$i] = $row[5]; + $cpu_idle_percent[$i] = $row[6]; + $disk_usage[$i] = $row[7]; + $i++; + } + + $stmt="SELECT queuemetrics_url,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $queuemetrics_url_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; + ?> + + + + + + Στατιστικά Server και Εκθέσεις + Στατιστικά Server και Εκθέσεις

+
+       + + Real-Time Εκθέσεις
+
+ Inbound and Outbound Calling Εκθέσεις
+ + +
+       + + Agent Εκθέσεις
+
+ Time Clock Εκθέσεις
+
+ Other Εκθέσεις and Links
+ +
+ + +

+		
+		 $o)
+			{
+			$cpu = (100 - $cpu_idle_percent[$o]);
+			$disk = '';
+			$disk_ary = explode('|',$disk_usage[$o]);
+			$disk_ary_ct = count($disk_ary);
+			$k=0;
+			while ($k < $disk_ary_ct)
+				{
+				$disk_ary[$k] = preg_replace("/^\d* /","",$disk_ary[$k]);
+				if ($k<1) {$disk = "$disk_ary[$k]";}
+				else
+					{
+					if ($disk_ary[$k] > $disk) {$disk = "$disk_ary[$k]";}
+					}
+				$k++;
+				}
+			$disk = "$disk%";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			$o++;
+			}
+
+		echo "
SERVERΠΕΡΙΓΡΑΦΗIPACTLOADCHANDISKΕΞΕΡΧΟΜΕΝΟΕισερχόμενα
$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]$sysload[$o] - $cpu%$channels_total[$o]$diskLINKLINK
\n"; + } + else + { + echo "Δεν έχετε την άδεια να δείτε αυτήν την σελίδα\n"; + exit; + } + } + + +echo "
\n"; +echo "
\n"; + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "
\n"; +echo "

"; +echo "ΕΚΔΟΣΗ: $admin_version
"; +echo "ΔΗΜΙΟΥΡΓΙΑ: $build
\n"; + +?> + +
+
+ + + +1) + { + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Κυριακή τοπικός χρόνος + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Δευτέρα τοπικός χρόνος + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Τρίτη τοπικός χρόνος + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Τετάρτη τοπικός χρόνος + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Πέμπτη τοπικός χρόνος + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Παρασκευή τοπικός χρόνος + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Σάββατο τοπικός χρόνος + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Κυριακή τοπικός χρόνος + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Δευτέρα τοπικός χρόνος + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Τρίτη τοπικός χρόνος + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Τετάρτη τοπικός χρόνος + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Πέμπτη τοπικός χρόνος + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Παρασκευή τοπικός χρόνος + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Σάββατο τοπικός χρόνος + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL"; + #$DB=1; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rslt_rows = mysql_num_rows($rslt); + if ($rslt_rows) + { + $rowx=mysql_fetch_row($rslt); + $active_leads = "$rowx[0]"; + } + else {$active_leads = '0';} + + echo "|$DB|\n"; + echo "Αυτή η εκστρατεία έχει$active_leads οδηγοί που καλούντε στις λίστες\n"; + } + else + { + echo "καμία θέση πινάκων που επιλέγεται για αυτήν την εκστρατεία\n"; + } + } + else + { + echo "δεν έχουν επιλεχθεί ενεργές λίστες για την εκστρατεία\n"; + } + } +else + { + echo "δεν έχουν επιλεχθεί ενεργές λίστες για την εκστρατεία\n"; + } +##### END calculate what gmt_offset_now values are within the allowed local_call_time setting ### +} +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin_header.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin_header.php new file mode 100644 index 00000000..fbebee79 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin_header.php @@ -0,0 +1,1287 @@ + LICENSE: AGPLv2 +# + +# CHANGES +# 90310-0709 - First Build +# 90508-0542 - Added Call Menu option, changed script to use long PHP tags +# 90514-0605 - Added audio prompt selection functions +# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option +# 90531-2339 - Added Dynamic options for Call Menu +# 90612-0852 - Changed relative links +# 90635-0943 - Added javascript for dynamic menus in In-Groups +# 90627-0548 - Added no-agent-no-queue options +# 90628-1016 - Added Text-to-speech options +# 90830-2213 - Added Music On Hold options +# 90904-1534 - Added launch_moh_chooser +# 90916-2334 - Added Voicemail options +# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus +# + + +######################### SMALL HTML HEADER BEGIN ####################################### +if($short_header) + { + ?> +
+ + + + + + + + + + + + +
    Χρήστες     Εκστρατείες     Λίστες     Βοηθοί     Φίλτρα     Εισ-Ομάδες     Ομάδες Χρήστη     Απομακρυσμένοι Χειριστές     Admin     Εκθέσεις  
+ 0) + { + if ($hh=='lists') + {$lists_hh="bgcolor=\"$lists_color\""; $lists_fc="$lists_font"; $lists_bold="$header_selected_bold";} + else {$lists_hh=''; $lists_fc='WHITE'; $lists_bold="$header_nonselected_bold";} + } +if ($hh=='ingroups') + {$ingroups_hh="bgcolor=\"$ingroups_color\""; $ingroups_fc="$ingroups_font"; $ingroups_bold="$header_selected_bold";} + else {$ingroups_hh=''; $ingroups_fc='WHITE'; $ingroups_bold="$header_nonselected_bold";} +if ($hh=='remoteagent') + {$remoteagent_hh="bgcolor=\"$remoteagent_color\""; $remoteagent_fc="$remoteagent_font"; $remoteagent_bold="$header_selected_bold";} + else {$remoteagent_hh=''; $remoteagent_fc='WHITE'; $remoteagent_bold="$header_nonselected_bold";} +if ($hh=='usergroups') + {$usergroups_hh="bgcolor=\"$usergroups_color\""; $usergroups_fc="$usergroups_font"; $usergroups_bold="$header_selected_bold";} + else {$usergroups_hh=''; $usergroups_fc='WHITE'; $usergroups_bold="$header_nonselected_bold";} +if ($hh=='scripts') + {$scripts_hh="bgcolor=\"$scripts_color\""; $scripts_fc="$scripts_font"; $scripts_bold="$header_selected_bold";} + else {$scripts_hh=''; $scripts_fc='WHITE'; $scripts_bold="$header_nonselected_bold";} +if ($SSoutbound_autodial_active > 0) + { + if ($hh=='filters') + {$filters_hh="bgcolor=\"$filters_color\""; $filters_fc="$filters_font"; $filters_bold="$header_selected_bold";} + else {$filters_hh=''; $filters_fc='WHITE'; $filters_bold="$header_nonselected_bold";} + } +if ($hh=='admin') + {$admin_hh="bgcolor=\"$admin_color\""; $admin_fc="$admin_font"; $admin_bold="$header_selected_bold";} + else {$admin_hh=''; $admin_fc='WHITE'; $admin_bold="$header_nonselected_bold";} +if ($hh=='reports') + {$reports_hh="bgcolor=\"$reports_color\""; $reports_fc="$reports_font"; $reports_bold="$header_selected_bold";} + else {$reports_hh=''; $reports_fc='WHITE'; $reports_bold="$header_nonselected_bold";} + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
English Ελληνικά
+ +\r\n"; + print " \r\n"; + } + $rec_count++; + } +$sthA->finish(); + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader_super.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader_super.pl new file mode 100644 index 00000000..9b09bba7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader_super.pl @@ -0,0 +1,1162 @@ +#!/usr/bin/perl +# +# listloader_super.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60906-1056 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1207 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$vars=$ARGV[0]; +@xls_fields=split(/\,/, $vars); + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +### Grab Server values from the database +$stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } +$sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[0]]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[1]]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[2]]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[3]]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[4]]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[5]]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[6]]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[7]]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[8]]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[9]]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[10]]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[11]]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[12]]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[13]]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[14]]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[15]]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[16]]; + if ($oWkC) {$country_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[17]]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[18]]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[19]]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[20]]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[21]]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } + + + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/new_listloader_superL.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/new_listloader_superL.php new file mode 100644 index 00000000..8f834971 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/new_listloader_superL.php @@ -0,0 +1,2258 @@ + LICENSE: AGPLv2 +# +# AST GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 60113-1603 - Fixed a few bugs in Excel import +# 60421-1624 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60616-1240 - added listID override +# 60616-1604 - added gmt lookup for each lead +# 60619-1651 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1121 - fixed for nonwritable directories +# 60906-1100 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1149 - added postal code GMT lookup and duplicate check options +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0417 - UTF8 changes +# 80514-1030 - removed filesize limit and raised number of errors to be displayed +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 81011-2009 - a few bug fixes +# 90309-1831 - Added admin_log logging +# 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# +# 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 = '2.2.0-33'; +$build = '91112-0616'; + + +require("dbconnect.php"); + +### links used for testing +#$link=mysql_connect("10.10.10.15", "cron", "1234"); +#mysql_select_db("asterisk"); +#$WeBServeRRooT = '/home/www/htdocs'; + +$US='_'; + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} +if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} +if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} + elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} +if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} + elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} +if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} +if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} + elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} +if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} + elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} +if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} +if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} +if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} + elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} +if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"];} + elseif (isset($_POST["province_field"])) {$province_field=$_POST["province_field"];} +if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} + elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} +if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} +if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} + elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} + elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} +if (isset($_GET["phone_code_override"])) {$phone_code_override=$_GET["phone_code_override"];} + elseif (isset($_POST["phone_code_override"])) {$phone_code_override=$_POST["phone_code_override"];} + $phone_code_override = (preg_replace("/\D/","",$phone_code_override)); + +# $country_field=$_GET["country_field"]; if (!$country_field) {$country_field=$_POST["country_field"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('new_listloader_superL.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"ΒΟΗΘΕΙΑ\""; + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +function macfontfix($fontsize) { + + $browser = getenv("HTTP_USER_AGENT"); + $pctype = explode("(", $browser); + if (ereg("Mac",$pctype[1])) { + /* Browser is a Mac. If not Netscape 6, raise fonts */ + + $blownbrowser = explode('/', $browser); + $ver = explode(' ', $blownbrowser[1]); + $ver = $ver[0]; + if ($ver >= 5.0) return $fontsize; else return ($fontsize+2); + + } else return $fontsize; /* Browser is not a Mac - don't touch fonts */ +} + +echo "\n"; + +?> + + + +ADMINISTRATION: Lead Loader + + + +
+VICIDIAL logo +ADMINISTRATION
+ + + + 1) { + ?> + >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + + + + 1) + { + if ($sh=='basic') {$sh='list';} + if ($sh=='detail') {$sh='list';} + if ($sh=='dialstat') {$sh='list';} + + if ($sh=='list') {$list_sh="bgcolor=\"$subcamp_color\""; $list_fc="$subcamp_font";} + else {$list_sh=''; $list_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$subcamp_color\""; $status_fc="$subcamp_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='hotkey') {$hotkey_sh="bgcolor=\"$subcamp_color\""; $hotkey_fc="$subcamp_font";} + else {$hotkey_sh=''; $hotkey_fc='BLACK';} + if ($sh=='recycle') {$recycle_sh="bgcolor=\"$subcamp_color\""; $recycle_fc="$subcamp_font";} + else {$recycle_sh=''; $recycle_fc='BLACK';} + if ($sh=='autoalt') {$autoalt_sh="bgcolor=\"$subcamp_color\""; $autoalt_fc="$subcamp_font";} + else {$autoalt_sh=''; $autoalt_fc='BLACK';} + if ($sh=='pause') {$pause_sh="bgcolor=\"$subcamp_color\""; $pause_fc="$subcamp_font";} + else {$pause_sh=''; $pause_fc='BLACK';} + if ($sh=='listmix') {$listmix_sh="bgcolor=\"$subcamp_color\""; $listmix_fc="$subcamp_font";} + else {$listmix_sh=''; $listmix_fc='BLACK';} + + ?> + > + + > + + > + + 0) + { + ?> + > + + > + + > + + + > + + + + 0) + { + ?> + + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Προσθήκη-Διαγραφή Αριθμός Από DNC';} + else {$DNClink = 'Add Number To DNC';} + ?> + >>>>> + + + + 1) + { + ?> + >> + + + 0) + { + ?> + + 1) + { + ?> + >> + + + + 1) + { + ?> + >>>>>>>>> + + + + 1) + { + ?> + >>>> + + + + 1) + { + ?> + >> + + + + 1) + { + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} + else {$times_sh=''; $times_fc='BLACK';} + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} + else {$shifts_sh=''; $shifts_fc='BLACK';} + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} + else {$templates_sh=''; $templates_fc='BLACK';} + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} + else {$carriers_sh=''; $carriers_fc='BLACK';} + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} + else {$phones_sh=''; $phones_fc='BLACK';} + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} + else {$server_sh=''; $server_fc='BLACK';} + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} + else {$conference_sh=''; $conference_fc='BLACK';} + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} + else {$settings_sh=''; $settings_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} + + ?> + > + + > + > + > + > + > + > + > + > + > + + 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + + + + +
WIDTH=160> + SIZE=>Χρήστες +
+   >Δείτε Χρήστες +
+   >Προσθήκη νέου χρήστη +
+   >Χρήστης αντιγράφων +
+   >Αναζήτηση ενός χρήστη +
+   >Στατιστικά Χρήστη +
+   >Κατάσταση χρήστη +
+   >Ώρα Φύλλο
+   >Χρήστης Εδάφη
> + SIZE=>Εκστρατείες +
>   SIZE=>Κύρια Καμπάνιες
>   SIZE=>Καθεστώτων
>   SIZE=>HotKeys
>   SIZE=>Μόλυβδος Ανακύκλωσης
>   SIZE=>Auto-Alt Dial
>   SIZE=>Κατάλογος Mix
>   SIZE=>Παύση Κώδικες
> SIZE=>Λίστες
  + > Παρουσιάστε καταλόγους +
  + > Προσθέστε έναν νέο κατάλογο +
  + > Αναζήτηση ενός μολύβδου +
  + > +
  + > Νέοι μόλυβδοι φορτίων +
> + SIZE=> Χειρόγραφα +
  + > Παρουσιάστε χειρόγραφα +
  + > Προσθέστε ένα νέο χειρόγραφο +
> SIZE=> Φίλτρα
  + > Παρουσιάστε φίλτρα +
  + > Προσθέστε ένα νέο φίλτρο +
> + SIZE=> $$$-ΟΜΑΔΕΣ +
  + > Παρουσιάστε-ΟΜΑΔΕΣ +
  + > Προσθέστε μια νέα-ΟΜΑΔΑ +
  + > $$$-ΟΜΑΔΑ αντιγράφων
+
  + > Δείτε DIDs +
  + > Προστίθεται ένα νέο DID +
  + > ΑντιγραφήDID
+
  + > Δείτε Καλέστε Menus +
  + > Προσθέστε μια νέα κλήση Μενού +
  + > Αντιγραφή Call Μενού +
> + SIZE=> Ομάδες χρηστών +
  + > Παρουσιάστε ομάδες χρηστών +
  + > Προσθέστε μια νέα ομάδα χρηστών +
  + > Ωριαία έκθεση ομάδας +
  + > Μαζική Αλλαγή ομάδας +
> + SIZE=> Μακρινοί πράκτορες +
  + > Παρουσιάστε μακρινούς πράκτορες +
  + > Προσθέστε τους νέους μακρινούς πράκτορες +
> + SIZE=> Admin +
COLSPAN=2>   + SIZE=> Χρόνοι κλήσης
>   + SIZE=> Βάρδιες
>   + SIZE=> Τηλέφωνα
>   + SIZE=> Πρότυπα
>   + SIZE=> Carriers
>   + SIZE=> Κεντρικοί υπολογιστές
>   + SIZE=> Διασκέψεις
>   + SIZE=> Τοποθετήσεις συστημάτων
>   + SIZE=>Θέσεις συστημάτων
>   + SIZE=> ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ
>   + SIZE=> Audio Store
>   + SIZE=> Music On Hold
>   + SIZE=> Text To Speech
> + SIZE=> Εκθέσεις +
 
+
BGCOLOR=#D9E6FE> + + + + + HEIGHT=15> + + + + + + + + + + + + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { + ?> + > + 1) and (!eregi('campaign',$hh) ) ) { + ?> + > + + > + 1) { + ?> +> + + + + +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + $call_log .= ""; + $call_log .= ""; + $call_log .= ""; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); + + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + + $campaign_id = $row[5]; + } + + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); + + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; + + echo "
Πληροφορίες Κλήσης: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ΣΠΙΤΙ | Ώρα ρολόι | Αποσύνδεση  
>   > Παρουσιάστε εκστρατείες     |     > Προσθέστε μια νέα εκστρατεία     |     > Εκστρατεία αντιγράφων     |     > Σε πραγματικό χρόνο περίληψη εκστρατειών
  > Παρουσιάστε χρόνους κλήσης  | > Προσθέστε έναν νέο χρόνο κλήσης  | > Παρουσιάστε χρόνους κρατικής κλήσης  | > Προσθέστε έναν νέο χρόνο κρατικής κλήσης
  > Δείτε Βάρδιες  | > Προστίθεται ένα νέο Shift
  > Παρουσιάστε τηλέφωνα  | > Προσθέστε ένα νέο τηλέφωνο  | > Τηλέφωνο Γνωστός Κατάλογος  | > Προστίθεται ένα νέο τηλέφωνο Γνωστός  | > Ομάδα Γνωστός Κατάλογος  | > Προσθέστε μια νέα ομάδα Γνωστός
  > Παρουσιάστε διασκέψεις   |   > Προσθέστε μια νέα διάσκεψη   |   > Παρουσιάστε διασκέψεις VICIDIAL   |   > Προσθέστε μια νέα διάσκεψη VICIDIAL
  > Παρουσιάστε κεντρικούς υπολογιστές   |   > Προσθέστε έναν νέο κεντρικό υπολογιστή
  > Δείτε Πρότυπα   |   > Προσθέστε ένα νέο πρότυπο
  > Show Carriers   |   > Add A New Carrier
  > Δείτε TTS Καταχωρήσεις   |   > Προσθέστε ένα νέο TTS Έναρξη
  > Δείτε ΜΟΗ Καταχωρήσεις   |   > Προσθέστε ένα νέο MOH Έναρξη
  > Show ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Entries   |   > Add A New ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ Entry
  > Τοποθετήσεις συστημάτων
  >Θέσεις συστημάτων   |   >Κατηγορίες θέσης   |   >QC κωδικοί
  >Στατιστικά Χρήστη   |   >Κατάσταση χρήστη   |   >Ώρα Φύλλο   |   >Ημέρες Status
>  
+ LICENSE: AGPLv2 +# +# CHANGES +# +# 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 +# 60609-1112 - Added DNC list addition if status changed to DNC +# 60619-1539 - Added variable filtering to eliminate SQL injection attack threat +# 61130-1639 - Added recording_log lookup and list for this lead_id +# 61201-1136 - Added recording_log user(TSR) display and link +# 70305-1133 - Changed to default CHECKED modify logs upon status change +# 70424-1128 - Added campaign-specific statuses, reformatted recordings list +# 70702-1259 - Added recording location link and truncation +# 70906-2132 - Added closer_log records display +# 80428-0144 - UTF8 cleanup +# 80501-0454 - Added Hangup Reason to logs display +# 80516-0936 - Cleanup of logging changes, added vicidial_agent_log display +# 80701-0832 - Changed to allow for altering of main phone number +# 80805-2106 - Changed comments to TEXTAREA +# 81210-1529 - Added server recording display options +# 90309-1829 - Added admin_log logging +# 90508-0644 - Changed to PHP long tags +# 90708-1549 - Added phone number dialed to outbound log +# 90721-1246 - Added rank and owner as vicidial_list fields +# 90917-2355 - Added extended alt phone entries +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["old_phone"])) {$old_phone=$_GET["old_phone"];} + elseif (isset($_POST["old_phone"])) {$old_phone=$_POST["old_phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_GET["CBchangeUSERtoANY"];} + elseif (isset($_POST["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_POST["CBchangeUSERtoANY"];} +if (isset($_GET["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_GET["CBchangeUSERtoUSER"];} + elseif (isset($_POST["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_POST["CBchangeUSERtoUSER"];} +if (isset($_GET["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_GET["CBchangeANYtoUSER"];} + elseif (isset($_POST["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_POST["CBchangeANYtoUSER"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} + elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} +if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];} + elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];} +if (isset($_GET["modify_logs"])) {$modify_logs=$_GET["modify_logs"];} + elseif (isset($_POST["modify_logs"])) {$modify_logs=$_POST["modify_logs"];} +if (isset($_GET["modify_closer_logs"])) {$modify_closer_logs=$_GET["modify_closer_logs"];} + elseif (isset($_POST["modify_closer_logs"])) {$modify_closer_logs=$_POST["modify_closer_logs"];} +if (isset($_GET["modify_agent_logs"])) {$modify_agent_logs=$_GET["modify_agent_logs"];} + elseif (isset($_POST["modify_agent_logs"])) {$modify_agent_logs=$_POST["modify_agent_logs"];} +if (isset($_GET["add_closer_record"])) {$add_closer_record=$_GET["add_closer_record"];} + elseif (isset($_POST["add_closer_record"])) {$add_closer_record=$_POST["add_closer_record"];} + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $old_phone = ereg_replace("[^0-9]","",$old_phone); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $alt_phone = ereg_replace("[^0-9]","",$alt_phone); + } +if (strlen($phone_number)<6) {$phone_number=$old_phone;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Τροποποίηση οδηγού + + +
+ADMINISTRATION: Τροποποίηση οδηγού
\n"; + +if ($end_call > 0) + { + ### update the lead record in the vicidial_list table + $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) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "οι πληροφορίες τροποποιήθηκαν

\n"; + echo "\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='MODIFY', record_id='$lead_id', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + if ( ($dispo != $status) and ($dispo == 'CALLBK') ) + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + + if ( ($dispo != $status) and ($status == 'DNC') ) + { + ### add lead to the internal DNC list + $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; + } + ### update last record in vicidial_log table + if (($dispo != $status) and ($modify_logs > 0)) + { + $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_closer_log table + if (($dispo != $status) and ($modify_closer_logs > 0)) + { + $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_agent_log table + if (($dispo != $status) and ($modify_agent_logs > 0)) + { + $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + if ($add_closer_record > 0) + { + ### 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('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . 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";} + $rslt=mysql_query($stmt, $link); + } + + + } +else + { + + if ($CBchangeUSERtoANY == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='" . mysql_real_escape_string($callback_id) . "';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to ANYONE
\n"; + } + if ($CBchangeUSERtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record user changed to $CBuser
\n"; + } + if ($CBchangeANYtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to USERONLY, user: $CBuser
\n"; + } + + + + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$u$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1] $row[15]   $row[10]
$y$row[3] $row[5] $row[1] $row[7] $row[9] $row[11] $row[13]   $row[14]   $row[15]   $row[17]
$y$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1]   $row[14]   $row[17]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     Lead ID: $lead_id
Fronter: $tsr     ID Λίστας: $list_id
Ονομα:   \n"; + echo " Επίθετο:
Διεύθυνση 1 :
Διεύθυνση 2 :
Διεύθυνση 3 :
Πόλη :
Κράτος:   \n"; + echo "Ταχ.Κωδ.
Χώρα :
Main Phone :
Εναλ Τηλέφωνο :
Ασφάλεια :
Rank :
Owner :
Σχόλια :
Τερματισμός: (with $log_campaign statuses)
Modifyvicidial log
Modifyagent log
Modifycloser log
Add closer log record
\n"; + echo "


\n"; + + if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) + { + ### find any vicidial_callback records for this lead + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group 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";} + $rslt=mysql_query($stmt, $link); + $CB_to_print = mysql_num_rows($rslt); + $rowx=mysql_fetch_row($rslt); + + if ($CB_to_print>0) + { + if ($rowx[9] == 'USERONLY') + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner ΧρήστηςID: \n"; + echo "

\n"; + } + else + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner ΧρήστηςID: \n"; + echo "

\n"; + } + } + else + { + echo "
No Callback records found
\n"; + } + } + } + else + { + echo "ΑΠΟΤΥΧΙΑ ψαξίματος καθοδήγησης για lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + echo "

\n"; + + echo "
\n"; + + if ($c > 0) + { + echo "EXTENDED ALTERNATE ΤΗΛΕΦΩΝΑ ΓΙΑ ΤΟ ΠΑΡΟΝ ΜΟΛΥΒΔΟΥ:\n"; + echo "\n"; + echo "\n"; + + echo "$alts_output\n"; + + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } + + echo "Κλήσεις για αυτόν τον οδηγό:\n"; + echo "\n"; + echo "\n"; + + echo "$call_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSRΕΚΣΤΡΑΤΕΙΑ LIST LEAD HANGUP REASON PHONE
\n"; + echo "

\n"; + + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$closer_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSRΕΚΣΤΡΑΤΕΙΑ LIST LEAD WAIT HANGUP REASON
\n"; + echo "

\n"; + + + echo "ΧΕΙΡΙΣΤΗΣLOG RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$agent_log\n"; + + echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "

\n"; + + + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "$locat";} + else + {$location = $locat;} + $u++; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + + } + + + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
$u $row[12] $row[4] $row[8] $row[0]   $row[10] $location $row[13]
\n"; + } + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds
"; + + +?> + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin_search_lead.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin_search_lead.php new file mode 100644 index 00000000..1d70ae1a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/admin_search_lead.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 80710-0023 - Added searching by list, user, status +# 90121-0500 - Added filter for phone to remove non-digits +# 90309-1828 - Added admin_log logging +# 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); +$phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner'; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Αναζήτηση Οδηγού +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '100'; +$hh = 'lists'; +$LOGast_admin_access = '1'; +$SSoutbound_autodial_active = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$lists_color = '#FFFF99'; +$lists_font = 'BLACK'; +$lists_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + +echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; + +if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<form method=post name=search action=\"$PHP_SELF\">\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<b>Παρακαλώ καταχωρήστε:<br> Vendor ID(αυτόματος κωδικός καθοδήγησης): <input type=text name=vendor_id size=10 maxlength=10> or \n"; + echo "<br><b>ένας αριθμός τηλεφώνου σπιτιού <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; + echo "<br><b>ID οδηγού <input type=text name=lead_id size=10 maxlength=10> or\n"; + echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; + echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; + echo "<b>user: <input type=text name=user size=15 maxlength=20> <br><br>\n"; + echo "<input type=submit name=submit value=ΕΠΙΒΕΒΑΙΩΣΗ></b>\n"; + echo "</form>\n</center>\n"; + echo "</body></html>\n"; + exit; + } + +else + { + + if ($vendor_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; + } + else + { + if ($phone) + { + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } + } + else + { + if ($lead_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + } + else + { + if ( (strlen($status)>0) or (strlen($list_id)>0) or (strlen($user)>0) ) + { + $statusSQL = ''; + $list_idSQL = ''; + $userSQL = ''; + if (strlen($status)>0) + { + $statusSQL = "status='" . mysql_real_escape_string($status) . "'"; $SQLctA++; + } + if (strlen($list_id)>0) + { + if ($SQLctA > 0) {$andA = 'and';} + $list_idSQL = "$andA list_id='" . mysql_real_escape_string($list_id) . "'"; $SQLctB++; + } + if (strlen($user)>0) + { + if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} + $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; + } + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; + } + else + { + print "ERROR: you must search for something! Go back and search for something"; + exit; + } + } + } + } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + + if ($DB) + { + echo "\n\n$stmt\n\n"; + } + + $rslt=mysql_query("$stmt", $link); + $results_to_print = mysql_num_rows($rslt); + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<b>Οι μεταβλητές αναζήτησης που καταχωρήσατε δεν είναι ενεργές στο σύστημα</b><br><br>\n"; + echo "<b>Παρακαλώ, επιστρέψτε πίσω και ελέγξτε τις πληροφορίες που καταχωρήσατε και προσπαθήστε πάλι</b>\n"; + echo "</center>\n"; + echo "</body></html>\n"; + exit; + } + else + { + echo "<b>RESULTS: $results_to_print</b><BR><BR>\n"; + echo "<TABLE BGCOLOR=WHITE CELLPADDING=1 CELLSPACING=0>\n"; + echo "<TR BGCOLOR=BLACK>\n"; + echo "<TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>#</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LEAD ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ΚΑΤΑΣΤΑΣΗ</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>VENDOR ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LAST AGENT</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ID ΛΙΣΤΑΣ</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>PHONE</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ΟΝΟΜΑ</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>CITY</B></FONT></TD>\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"; + echo "</TR>\n"; + $o=0; + while ($results_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $o++; + $search_lead = $row[0]; + 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]\" target=\"_blank\">$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[31]</FONT></TD>\n"; + echo "</TR>\n"; + } + echo "</TABLE>\n"; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n<a href=\"$PHP_SELF\">ΝΕΑ ΑΝΑΖΗΤΗΣΗ</a>"; + + +echo "\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds"; + + +?> + + + +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/audio_store.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $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 > 7 and modify_campaigns='1'"; + 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|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $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); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/call_report_export.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/call_report_export.php new file mode 100644 index 00000000..77a49b05 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/call_report_export.php @@ -0,0 +1,562 @@ +<?php +# call_report_export.php +# +# displays options to select for downloading of leads and their vicidial_log +# and/or vicidial_closer_log information by status, list_id and date range. +# downloads to a flat text file that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} + elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and export_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### +if ($run_export > 0) + { + $US='_'; + $MT[0]=''; + $ip = getenv("REMOTE_ADDR"); + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $FILE_TIME = date("Ymd-His"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $campaign_ct = count($campaign); + $group_ct = count($group); + $user_group_ct = count($user_group); + $list_ct = count($list_id); + $status_ct = count($status); + $campaign_string='|'; + $group_string='|'; + $user_group_string='|'; + $list_string='|'; + $status_string='|'; + + $i=0; + while($i < $campaign_ct) + { + $campaign_string .= "$campaign[$i]|"; + $campaign_SQL .= "'$campaign[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$campaign_string) ) or ($campaign_ct < 1) ) + { + $campaign_SQL = "campaign_id IN('')"; + $RUNcampaign=0; + } + else + { + $campaign_SQL = eregi_replace(",$",'',$campaign_SQL); + $campaign_SQL = "and vl.campaign_id IN($campaign_SQL)"; + $RUNcampaign++; + } + + $i=0; + while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; + $group_SQL = "campaign_id IN('')"; + $RUNgroup=0; + } + else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and vl.campaign_id IN($group_SQL)"; + $RUNgroup++; + } + + $i=0; + while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } + else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vl.user_group IN($user_group_SQL)"; + } + + $i=0; + while($i < $list_ct) + { + $list_string .= "$list_id[$i]|"; + $list_SQL .= "'$list_id[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$list_string) ) or ($list_ct < 1) ) + { + $list_SQL = ""; + } + else + { + $list_SQL = eregi_replace(",$",'',$list_SQL); + $list_SQL = "and vi.list_id IN($list_SQL)"; + } + + $i=0; + while($i < $status_ct) + { + $status_string .= "$status[$i]|"; + $status_SQL .= "'$status[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$status_string) ) or ($status_ct < 1) ) + { + $status_SQL = ""; + } + else + { + $status_SQL = eregi_replace(",$",'',$status_SQL); + $status_SQL = "and vl.status IN($status_SQL)"; + } + + + if ($DB > 0) + { + echo "<BR>\n"; + echo "$campaign_ct|$campaign_string|$campaign_SQL\n"; + echo "<BR>\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + echo "$list_ct|$list_string|$list_SQL\n"; + echo "<BR>\n"; + echo "$status_ct|$status_string|$status_SQL\n"; + echo "<BR>\n"; + } + + $outbound_calls=0; + $export_rows=''; + $k=0; + if ($RUNcampaign > 0) + { + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $outbound_to_print = mysql_num_rows($rslt); + if ($outbound_to_print < 1) + { + echo "There are no outbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $outbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + $outbound_calls++; + } + } + } + + if ($RUNgroup > 0) + { + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmtA, $link); + if ($DB) {echo "$stmt\n";} + $inbound_to_print = mysql_num_rows($rslt); + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) + { + echo "There are no inbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + } + } + } + + + if ( ($outbound_to_print > 0) or ($inbound_to_print > 0) ) + { + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $TXTfilename = "EXPORT_CALL_REPORT_$FILE_TIME.txt"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$TXTfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } + } + else + { + echo "There are no calls during this time period for these parameters\n"; + exit; + } + } +##### END RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### + + +else + { + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $stmt="select campaign_id from vicidial_campaigns;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $campaigns_to_print = mysql_num_rows($rslt); + $i=0; + $LISTcampaigns[$i]='---NONE---'; + $i++; + $campaigns_to_print++; + while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTcampaigns[$i] =$row[0]; + $i++; + } + + $stmt="select group_id from vicidial_inbound_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; + while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $i++; + } + + $stmt="select user_group from vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; + while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + + $stmt="select list_id from vicidial_lists;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $lists_to_print = mysql_num_rows($rslt); + $i=0; + $LISTlists[$i]='---ALL---'; + $i++; + $lists_to_print++; + while ($i < $lists_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTlists[$i] =$row[0]; + $i++; + } + + $stmt="select status from vicidial_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $statuses_to_print = mysql_num_rows($rslt); + $i=0; + $LISTstatus[$i]='---ALL---'; + $i++; + $statuses_to_print++; + while ($i < $statuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + } + + $stmt="select distinct status from vicidial_campaign_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $Cstatuses_to_print = mysql_num_rows($rslt); + $j=0; + while ($j < $Cstatuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + $j++; + } + $statuses_to_print = ($statuses_to_print + $Cstatuses_to_print); + + echo "<HTML><HEAD>\n"; + + + echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; + + ##### BEGIN Set variables to make header show properly ##### + $ADD = '100'; + $hh = 'lists'; + $LOGast_admin_access = '1'; + $SSoutbound_autodial_active = '1'; + $ADMIN = 'admin.php'; + $page_width='770'; + $section_width='750'; + $header_font_size='3'; + $subheader_font_size='2'; + $subcamp_font_size='2'; + $header_selected_bold='<b>'; + $header_nonselected_bold=''; + $lists_color = '#FFFF99'; + $lists_font = 'BLACK'; + $lists_color = '#E6E6E6'; + $subcamp_color = '#C6C6C6'; + ##### END Set variables to make header show properly ##### + + require("admin_header.php"); + + + echo "<CENTER><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; + echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; + echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; + echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; + echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; + echo "<BR>to<BR>\n"; + echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; + $o=0; + while ($campaigns_to_print > $o) + { + if (ereg("\|$LISTcampaigns[$o]\|",$campaign_string)) + {echo "<option selected value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + else + {echo "<option value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; + $o=0; + while ($groups_to_print > $o) + { + if (ereg("\|$LISTgroups[$o]\|",$group_string)) + {echo "<option selected value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + else + {echo "<option value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; + $o=0; + while ($lists_to_print > $o) + { + if (ereg("\|$LISTlists[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + else + {echo "<option value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; + $o=0; + while ($statuses_to_print > $o) + { + if (ereg("\|$LISTstatus[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + else + {echo "<option value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; + echo "</TD></TR></TABLE>\n"; + echo "</FORM>\n\n"; + + } +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/count.htm b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/count.htm new file mode 100644 index 00000000..51f8a361 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/count.htm @@ -0,0 +1 @@ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/dbconnect.php new file mode 100644 index 00000000..dae8cc7a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/dbconnect.php @@ -0,0 +1,60 @@ +<? +# +# dbconnect.php version 2.0.5 +# +# database connection settings and some global web settings +# +# Copyright (C) 2008 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database"); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules +$AM_shift_BEGIN = '03:45:00'; +$AM_shift_END = '17:45:00'; +$PM_shift_BEGIN = '17:45:01'; +$PM_shift_END = '23:59:59'; +$admin_qc_enabled = '0'; +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/fcstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/fcstats.php new file mode 100644 index 00000000..c7f53d6f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/fcstats.php @@ -0,0 +1,601 @@ +<?php +# fcstats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 70813-1526 - First Build +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71217-1128 - Changed method for calculating stats +# 71228-1140 - added percentages, cross-day start/stop +# 80328-1139 - adapted for basic fronter/closer stats +# 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = 'CL_TEST_L';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + +<HTML> +<HEAD> +<STYLE type="text/css"> +<!-- + .green {color: white; background-color: green} + .red {color: white; background-color: red} + .blue {color: white; background-color: blue} + .purple {color: white; background-color: purple} +--> + </STYLE> + +<?php +echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; +echo "<TITLE>In-Group Fronter-Closer Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           ΤΡΟΠΟΠΟΙΗΣΗ | ΑΝΑΦΟΡΕΣ \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "PLEASE SELECT AN IN-GROUP AND DATE ABOVE THEN CLICK ΕΠΙΒΕΒΑΙΩΣΗ\n";
+}
+
+else
+{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#$query_date_BEGIN = "$query_date $time_BEGIN";   
+#$query_date_END = "$query_date $time_END";
+
+$Cqdate = explode('-',$query_date);
+
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(17, 45, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(17, 45, 1, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'ALL') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+
+echo "In-Group Fronter-Closer Stats Report                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n";
+
+$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "' and status = 'SALE';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$A1_points = ($row[0] * 1);
+$A1_points =	sprintf("%10s", $A1_points);
+$A1_tally =	sprintf("%10s", $row[0]);
+
+$TOT_tally = ($A1_tally + $A2_tally + $A3_tally + $A4_tally);
+$TOT_points = ($A1_points + $A2_points + $A3_points + $A4_points);
+$TOT_tally =	sprintf("%10s", $TOT_tally);
+$TOT_points =	sprintf("%10s", $TOT_points);
+
+echo "STATUS   CUSTOMERS\n";
+echo "SALES:   $A1_tally\n";
+
+echo "\n";
+
+
+
+
+
+
+
+
+
+##############################
+#########  FRONTER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTsales=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+
+echo "\n";
+echo "---------- FRONTER STATS\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| ΧΕΙΡΙΣΤΗΣ                   |SUCCESS| XFERS  |SUCCESS%| SALE | DROP |OTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+#$stmt="select vicidial_xfer_log.user,full_name,count(*) from vicidial_xfer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_xfer_log.user is not null and vicidial_xfer_log.user=vicidial_users.user group by vicidial_xfer_log.user;";
+$stmt="select user,count(distinct lead_id) from vicidial_xfer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcallsRAW[$i] =	$row[1];
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; 
+	$stmt="select vc.status,count(distinct vc.lead_id) from vicidial_xfer_log vx, vicidial_closer_log vc where vx.call_date >= '$query_date_BEGIN' and vx.call_date <= '$query_date_END' and vc.call_date >= '$query_date_BEGIN' and vc.call_date <= '$query_date_END' and  vc.campaign_id='" . mysql_real_escape_string($group) . "' and vx.campaign_id='" . mysql_real_escape_string($group) . "' and vx.user='$userRAW[$i]' and vc.lead_id=vx.lead_id and vc.xfercallid=vx.xfercallid group by vc.status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) {$A1=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A2') and ($recL < 1) ) {$A2=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A3') and ($recL < 1) ) {$A3=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A4') and ($recL < 1) ) {$A4=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);
+	$totA2 = ($totA2 + $A2);
+	$totA3 = ($totA3 + $A3);
+	$totA4 = ($totA4 + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$TOTsales = ($TOTsales + $sales);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Spct = ( ($sales / $USERcallsRAW[$i]) * 100);}
+		else {$Spct=0;}
+	$Spct = round($Spct, 2);
+	$Spct =	sprintf("%01.2f", $Spct);
+	
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%5s", $sales);
+	$Spct =	sprintf("%6s", $Spct);
+
+	echo "| $user[$i] - $full_name[$i] | $sales | $USERcalls[$i] | $Spct%| $A1 | $DROP | $OTHER |\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totSpct = ( ($TOTsales / $TOTcalls) * 100);}
+	else {$totSpct=0;}
+$totSpct = round($totSpct, 2);
+$totSpct =	sprintf("%01.2f", $totSpct);
+$totSpct =	sprintf("%6s", $totSpct);
+	
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$TOTsales =		sprintf("%5s", $TOTsales);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+
+
+$stmt="select avg(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$AVGwait = $row[0];
+$AVGwait_M = ($AVGwait / 60);
+$AVGwait_M = round($AVGwait_M, 2);
+$AVGwait_M_int = intval("$AVGwait_M");
+$AVGwait_S = ($AVGwait_M - $AVGwait_M_int);
+$AVGwait_S = ($AVGwait_S * 60);
+$AVGwait_S = round($AVGwait_S, 0);
+if ($AVGwait_S < 10) {$AVGwait_S = "0$AVGwait_S";}
+$AVGwait_MS = "$AVGwait_M_int:$AVGwait_S";
+$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| TOTAL FRONTERS: $TOTagents   | $TOTsales | $TOTcalls | $totSpct%|$totA1 |$totDROP |$totOTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "|                          Average time in Queue for customers:    $AVGwait |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+
+
+
+
+##############################
+#########  CLOSER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+$TOTsales=0;
+
+echo "\n";
+echo "---------- CLOSER STATS\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| ΧΕΙΡΙΣΤΗΣ                   | CALLS  | SALE | DROP |OTHER | SALE | CONV %|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+$stmt="select user,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+	$USERcallsRAW[$i] =	$row[1];
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; $uTOP=0; $uBOT=0; $points=0;
+	$stmt="select status,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user='$userRAW[$i]' group by status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) 
+			{
+			$A1=$row[1]; $recL++; 
+			$sales=($sales + $row[1]);
+			$points = ($points + ($row[1] * 1) );
+			}
+		if ( ($row[0]=='A2') and ($recL < 1) ) 
+			{
+			$A2=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A3') and ($recL < 1) ) 
+			{
+			$A3=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A4') and ($recL < 1) ) 
+			{
+			$A4=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 3) );
+			}
+#		if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+#		if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+#		if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+#		if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+#		if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);	$TOTsales = ($TOTsales + $A1);
+	$totA2 = ($totA2 + $A2);	$TOTsales = ($TOTsales + $A2);	$totTOP = ($totTOP + $A2);
+	$totA3 = ($totA3 + $A3);	$TOTsales = ($TOTsales + $A3);	$totBOT = ($totBOT + $A3);
+	$totA4 = ($totA4 + $A4);	$TOTsales = ($TOTsales + $A4);	$totTOP = ($totTOP + $A4);	$totBOT = ($totBOT + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$totPOINTS = ($totPOINTS + $points);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Cpct = ( ($sales / ( ($USERcallsRAW[$i] - 0) - $DROP) ) * 100);}
+		else {$Cpct=0;}
+	$Cpct = round($Cpct, 2);
+	$Cpct =	sprintf("%01.2f", $Cpct);
+	$Cpct =	sprintf("%6s", $Cpct);
+
+	if ( ($sales > 0) and ($uTOP > 0) ) {$TOP = ( ($uTOP / $sales) * 100);}
+		else {$TOP=0;}
+	$TOP = round($TOP, 0);
+	$TOP =	sprintf("%01.0f", $TOP);
+	$TOP =	sprintf("%3s", $TOP);
+
+	if ( ($sales > 0) and ($uBOT > 0) ) {$BOT = ( ($uBOT / $sales) * 100);}
+		else {$BOT=0;}
+	$BOT = round($BOT, 0);
+	$BOT =	sprintf("%01.0f", $BOT);
+	$BOT =	sprintf("%3s", $BOT);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($points > 0) ) {$ppc = ($points / ( ($USERcallsRAW[$i] - 0) - $DROP) );}
+		else {$ppc=0;}
+	$ppc = round($ppc, 2);
+	$ppc =	sprintf("%01.2f", $ppc);
+	$ppc =	sprintf("%4s", $ppc);
+
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%4s", $sales);
+
+	echo "| $user[$i] - $full_name[$i] | $USERcalls[$i] | $A1 | $DROP | $OTHER | $sales |$Cpct%|\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totCpct = ( ($TOTsales / ( ($TOTcalls - 0) - $totDROP) ) * 100);}
+	else {$totCpct=0;}
+$totCpct = round($totCpct, 2);
+$totCpct =	sprintf("%01.2f", $totCpct);
+$totCpct =	sprintf("%6s", $totCpct);
+		
+if ( ($TOTcalls > 0) and ($totPOINTS > 0) ) {$ppc = ($totPOINTS / ( ($TOTcalls - $totOTHER) - $totDROP) );}
+	else {$ppc=0;}
+$ppc = round($ppc, 2);
+$ppc =	sprintf("%01.2f", $ppc);
+$ppc =	sprintf("%4s", $ppc);
+		
+if ( ($TOTsales > 0) and ($totTOP > 0) ) {$TOP = ( ($totTOP / $TOTsales) * 100);}
+	else {$TOP=0;}
+$TOP = round($TOP, 0);
+$TOP =	sprintf("%01.0f", $TOP);
+$TOP =	sprintf("%3s", $TOP);
+
+if ( ($TOTsales > 0) and ($totBOT > 0) ) {$BOT = ( ($totBOT / $TOTsales) * 100);}
+	else {$BOT=0;}
+$BOT = round($BOT, 0);
+$BOT =	sprintf("%01.0f", $BOT);
+$BOT =	sprintf("%3s", $BOT);
+
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+$TOTsales =		sprintf("%5s", $TOTsales);
+
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| TOTAL CLOSERS:  $TOTagents   | $TOTcalls |$totA1 |$totDROP |$totOTHER |$TOTsales |$totCpct%|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+
+
+
+
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+if ($DB) {echo "\nRun Time: $RUNtime seconds\n";}
+}
+
+
+
+
+
+?>
+
+
+ + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/functions.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/group_hourly_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/group_hourly_stats.php new file mode 100644 index 00000000..54b12353 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/group_hourly_stats.php @@ -0,0 +1,295 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1014 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["date_with_hour"])) {$date_with_hour=$_GET["date_with_hour"];} + elseif (isset($_POST["date_with_hour"])) {$date_with_hour=$_POST["date_with_hour"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$date_with_hour_default = date("Y-m-d H"); +$date_no_hour_default = $TODAY; + +if (!isset($date_with_hour)) {$date_with_hour = $date_with_hour_default;} + $date_no_hour = $date_with_hour; + $date_no_hour = eregi_replace(" ([0-9]{2})",'',$date_no_hour); +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + +# $stmt="SELECT full_name from vicidial_users where user='$user';"; +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# $full_name = $row[0]; + + } + + + + +?> + + + +ADMINISTRATION: Ομαδοποιημένα Ωριαία Στατιστικά +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Ομαδοποιημένα Ωριαία Στατιστικά <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +if ( ($group) and ($status) and ($date_with_hour) ) +{ +$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";} +$rslt=mysql_query($stmt, $link); +$tsrs_to_print = mysql_num_rows($rslt); + $o=0; + while($o < $tsrs_to_print) + { + $row=mysql_fetch_row($rslt); + $VDuser[$o] = "$row[0]"; + $VDname[$o] = "$row[1]"; + $o++; + } + + $o=0; + while($o < $tsrs_to_print) + { + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDtotal[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDday[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDcount[$o] = "$row[0]"; + $o++; + } + +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +echo "<B>ΜΕΤΡΗΣΗ ΩΡΩΝ TSR: <a href=\"./admin.php?ADD=3111&group_id=$group\">$group</a> | $status | $date_with_hour | $date_no_hour</B>\n"; + +echo "<center><TABLE width=600 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>TSR </td><td align=left><font size=2>ID </td><td align=right><font size=2>   $status</td><td align=right><font size=2>   ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣ</td><td align=right><font size=2>   $status DAY</td><td align=right><font size=2>     </td></tr>\n"; + + $day_calls=0; + $hour_calls=0; + $total_calls=0; + $o=0; + while($o < $tsrs_to_print) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo "<tr $bgcolor><td><font size=2>$VDuser[$o]</td>"; + echo "<td align=left><font size=2> $VDname[$o]</td>\n"; + echo "<td align=right><font size=2> $VDcount[$o]</td>\n"; + echo "<td align=right><font size=2> $VDtotal[$o]</td>\n"; + echo "<td align=right><font size=2> $VDday[$o]</td>\n"; + echo "<td align=right><font size=1><a href=\"./admin.php?ADD=3&user=$VDuser[$o]\">ΤΡΟΠΟΠΟΙΗΣΗ</a> | <a href=\"./user_stats.php?user=$VDuser[$o]\">ΣΤΑΤΙΣΤΙΚΑ</a></td></tr>\n"; + $total_calls = ($total_calls + $VDtotal[$o]); + $hour_calls = ($hour_calls + $VDcount[$o]); + $day_calls = ($day_calls + $VDday[$o]); + + $o++; + } + +echo "<tr><td><font size=2>TOTAL </td><td align=right><font size=2> $status </td><td align=right><font size=2> $hour_calls</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $day_calls</td></tr>\n"; + + +} + +echo "</TABLE></center>\n"; +echo "<br><br>\n"; + + + echo "<br>Παρακαλώ, καταχωρήστε την ομάδα για την οποία θέλετε στατιστικά ανά ώρα: <form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=$DB>\n"; + echo "group: <select size=1 name=group>\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $o=0; + $groups_list=''; + while ($groups_to_print > $o) { + $rowx=mysql_fetch_row($rslt); + if ($group == $group) + {$groups_list .= "<option selected value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + else + {$groups_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + $o++; + } + echo "$groups_list</select><br>\n"; + echo "status: <input type=text name=status size=10 maxlength=10 value=\"$status\">   (example: XFER)<br>\n"; + echo "date with hour: <input type=text name=date_with_hour size=14 maxlength=13 value=\"$date_with_hour\">   (example: 2004-06-25 14)<br>\n"; + echo "<input type=submit name=submit value=ΕΠΙΒΕΒΑΙΩΣΗ>\n"; + echo "<BR><BR><BR>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds</font>"; + + +?> + + +</TD></TR></TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/help.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/help.gif new file mode 100644 index 00000000..5575d7c8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/help.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/list_download.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/list_download.php new file mode 100644 index 00000000..6e7bbc86 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/list_download.php @@ -0,0 +1,132 @@ +<?php +# list_download.php +# +# downloads the entire contents of a vicidial list ID to a flat text file +# that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and download_lists='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης or no list download permission: |$PHP_AUTH_USER|\n"; + exit; + } + +$stmt="select count(*) from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$count_to_print = mysql_num_rows($rslt); +if ($count_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $leads_count =$row[0]; + $i++; + } + +if ($leads_count < 1) + { + echo "There are no leads in list_id: $list_id\n"; + exit; + } + +$US='_'; +$MT[0]=''; +$ip = getenv("REMOTE_ADDR"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +### LOG INSERTION Admin Log Table ### +$SQL_log = "$stmt|$stmtA|"; +$SQL_log = ereg_replace(';','',$SQL_log); +$SQL_log = addslashes($SQL_log); +$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='$list_id', event_code='ADMIN EXPORT LIST', event_sql=\"$SQL_log\", event_notes='';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + + +$TXTfilename = "LIST_$list_id$US$FILE_TIME.txt"; + +// We'll be outputting a TXT file +header('Content-type: application/octet-stream'); + +// It will be called LIST_101_20090209-121212.txt +header("Content-Disposition: attachment; filename=\"$TXTfilename\""); +header('Expires: 0'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); +header('Pragma: public'); +ob_clean(); +flush(); + +$stmt="select lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$leads_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $leads_to_print) + { + $row=mysql_fetch_row($rslt); + + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; + + $i++; + } + +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader.php new file mode 100644 index 00000000..234b2be7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader.php @@ -0,0 +1,926 @@ +<? +# listloader.php +# +# Copyright (C) 2007 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: GPLv2 +# +# AST Web GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 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 +# 60619-1652 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 60906-1059 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1046 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# +# 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 = '2.0.3'; +$build = '770417-1059'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +$submit_file=$_GET["submit_file"]; if (!$submit_file) {$submit_file=$_POST["submit_file"];} +$list_id_override=$_GET["list_id_override"]; if (!$list_id_override) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +$submit=$_GET["submit"]; if (!$submit) {$submit=$_POST["submit"];} +$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"]; if (!$ΕΠΙΒΕΒΑΙΩΣΗ) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} + + +#$DB=1; +#$DBX=1; + +$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); + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('listloader.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"ΒΟΗΘΕΙΑ\" ALIGN=TOP></A>"; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + +echo "<html>\n"; +echo "<head>\n"; +echo "<!-- ΕΚΔΟΣΗ: $version ΔΗΜΙΟΥΡΓΙΑ: $build -->\n"; +echo "<!-- SEED TIME $secX: $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET: $LOCAL_GMT_OFF DST: $isdst -->\n"; + + +?> + + +<script language="JavaScript1.2"> +function openNewWindow(url) { + window.open (url,"",'width=500,height=300,scrollbars=yes,menubar=yes,address=yes'); +} +function ShowProgress(good, bad, total, dup, post) { + parent.lead_count.document.open(); + parent.lead_count.document.write('<html><body><table border=0 width=200 cellpadding=10 cellspacing=0 align=center valign=top><tr bgcolor="#000000"><th colspan=2><font face="arial, helvetica" size=3 color=white>Κατάσταση αρχείου:</font></th></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Good:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+good+'</B></font></td></tr><tr bgcolor="#990000"><td align=right><font face="arial, helvetica" size=2 color=white><B>Bad:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+bad+'</B></font></td></tr><tr bgcolor="#000099"><td align=right><font face="arial, helvetica" size=2 color=white><B>Total:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+total+'</B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>   </B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>   </B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Duplicate:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+dup+'</B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Postal Match:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+post+'</B></font></td></tr></table><body></html>'); + parent.lead_count.document.close(); +} +</script> +</head> +<body> +<form action=<?=$PHP_SELF ?> method=post enctype="multipart/form-data"> +<table align=center width="500" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Εισαγωγή οδηγών από αυτό το αρχείο:</font></td> + <td align=left width="75%"><input type=file name="leadfile" value="<?=$leadfile ?>"> <? echo "$NWB#vicidial_list_loader$NWE"; ?></td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>ID Λίστας Override: </font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><input type=text value="" name='list_id_override' size=10 maxlength=8> (μόνο αριθμοί or leave blank for values in the file)</td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Διπλός έλεγχος μολύβδου: </font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><select size=1 name=dupcheck><option selected value="NONE">NO DUPLICATE CHECK</option><option value="DUP">CHECK FOR DUPLICATES BY PHONE IN ID ΛΙΣΤΑΣ</option></select></td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Συμβούλευση ζώνης χρονικής ανοχής: </font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><select size=1 name=postalgmt><option selected value="AREA">COUNTRY CODE AND AREA CODE ONLY</option><option value="POSTAL">POSTAL CODE FIRST</option></select></td> + </tr> + <tr> + <td align=center><input type=submit value="ΕΠΙΒΕΒΑΙΩΣΗ" name='submit_file'></td> + <td align=center><input type=button onClick="javascript:document.location='listloader.php'" value="ΞΕΚΙΝΑ ΠΑΛΙ" name='reload_page'></td> + </tr> + <tr><td colspan=2><font size=1><a href="new_listloader_superL.php" target="_parent">ΕΠΙΛΕΞΤΕ ΕΔΩ ΓΙΑ ΝΑ ΠΑΤΕ ΣΤΟΝ ΠΡΟΗΓΜΕΝΟ ΕΙΣΑΓΩΓΕΑ ΟΔΗΓΩΝ (BETA ΕΚΔΟΣΗ)</a>     <a href="admin.php" target="_parent">ΠΙΣΩ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ</a></font></td></tr> +</table> +</form> +<? + +#echo "|$LF_orig|$LF_path|\n"; + +if ($leadfile and filesize($LF_path)<=8388608) { + print "<script language='JavaScript1.2'>document.forms[0].leadfile.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;</script>"; + flush(); + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + $lead_file = "$LF_path"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + $pulldate=date("Y-m-d H:i:s"); + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Επεξεργασία$delim_name-delimited file... ($tab_count|$pipe_count)\n"; + + if (strlen($list_id_override)>0) + { + print "<BR><BR>ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override<BR><BR>"; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city = $row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + + if (strlen($list_id_override)>0) + { + # print "<BR><BR>ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override<BR><BR>"; + $list_id = $list_id_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table ##### + if (eregi("DUP",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + $US='_'; + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_list .= "$phone_number$US$list_id|"; + + if (strlen($phone_code)<1) {$phone_code = '1';} + + $postalgmt_found=0; + if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $NA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NA_DST=0; + } else { + $NA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $NA_DST=0; + } else { + $NA_DST=1; + } + } + } else { + $NA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; + } elseif ($dd < ($dow+25)) { + $NA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; + } else { + $NA_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 7200) { + $NA_DST=1; + } else { + $NA_DST=0; + } + } + } else { + $NA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0);"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0),"; + $multi_insert_counter++; + } + + $good++; + } + else + { + if ($bad < 10) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) + { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup, $post)</script>"; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total<BR>DUPLICATE: $dup       POSTAL MATCH: $post</font></center>"; + + } else { + print "<center><font face='arial, helvetica' size=3 color='#990000'><B>Λάθος: Το αρχείο δεν έχει τον απαιτούμενο αριθμό πεδίων.</B></font></center>"; + } + print "<script language='JavaScript1.2'>document.forms[0].leadfile.disabled=false; document.forms[0].submit_file.disabled=false; document.forms[0].reload_page.disabled=false;</script>"; +} else if (filesize($leadfile)>8388608) { + print "<center><font face='arial, helvetica' size=3 color='#990000'><B>Λάθος: Το αρχείο ξεπέρασε το όριο των 8ΜΒ.</B></font></center>"; +} +?> +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader.pl new file mode 100644 index 00000000..052d93e0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader.pl @@ -0,0 +1,1160 @@ +#!/usr/bin/perl +# +# listloader.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60822-1121 - fixed for nonwritable directories +# 60906-1058 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1215 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = <conf>; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + + ### Grab Server values from the database + $stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } + $sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Processing Excel file...\n"; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][0]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][1]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][2]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][3]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][4]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][5]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][6]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][7]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][8]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][9]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][10]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][11]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][12]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][13]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][14]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][15]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][16]; + if ($oWkC) {$country=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][17]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][18]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][19]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][20]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][21]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][22]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup_lead, $postalgmt_found)</script>"; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total</font></center>"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloaderMAIN.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloaderMAIN.php new file mode 100644 index 00000000..8c9912db --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloaderMAIN.php @@ -0,0 +1,87 @@ +<?php +# listloaderMAIN.php +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# 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 +# +# changes: +# 60620-1149 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?><HTML> +<HEAD> +<TITLE>VICIDIAL: Υπομονάδα εισαγωγής οδηγών + + + + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader_rowdisplay.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader_rowdisplay.pl new file mode 100644 index 00000000..9caaeab2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/listloader_rowdisplay.pl @@ -0,0 +1,154 @@ +#!/usr/bin/perl +# +# listloader_rowdisplay.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } +} +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); +$var_str=""; + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for(my $iC = $oWkS->{MinCol} ; defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) { + $oWkC = $oWkS->{Cells}[0][$iC]; + if ($oWkC) { + $var_str.=$oWkC->Value."|"; + } else { + $var_str.="|"; + } + } +} + +@xls_row=split(/\|/, $var_str); + + +$stmtA = "select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + my $names = $sthA->{'NAME'}; + my $numFields = $sthA->{'NUM_OF_FIELDS'}; + for (my $i = 0; $i < $numFields; $i++) + { + # printf("%s%s", $i ? "," : "", $$names[$i]); + # printf("%s%s", $i ? "," : "", $$ref[$i]); + + $field_name=uc($$names[$i]); + $field_name=~s/\_/ /g; + print "
".$field_name.": \r\n"; + print " \r\n"; + print "
"; +?> + + +
method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Εισαγωγή οδηγών από αυτό το αρχείο:
ID Λίστας Override: (μόνο αριθμοί or leave blank for values in the file)
Μήκη Override: (μόνο αριθμοί or leave blank for values in the file)
Μορφή αρχείων για χρήση:Standard Format    Εμφάνιση συνήθειας
Διπλός έλεγχος μολύβδου:
Συμβούλευση ζώνης χρονικής ανοχής:
        
        ΠΙΣΩ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗLIST LOADER-     ΕΚΔΟΣΗ:     ΔΗΜΙΟΥΡΓΙΑ:    
+ + +document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; + flush(); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.txt"); + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + { + $stmt_file=fopen("listloader_stmts.txt", "w"); + } + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + print "
Επεξεργασία$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ: $phone_code_override

"; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($list_id_override)>0) + { + # print "

ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override

"; + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
Λάθος: Το αρχείο δεν έχει τον απαιτούμενο αριθμό πεδίων.
"; + } + } else if (!eregi(".csv", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.xls"); + $file=fopen("$lead_file", "r"); + + print "
ΕπεξεργασίαExcel file... \n"; + if (strlen($list_id_override)>0) + { + print "

ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override

\n"; + } + if (strlen($phone_code_override)>0) + { + print "

ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ: $phone_code_override

\n"; + } + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } else { + # copy($leadfile, "./vicidial_temp_file.csv"); + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
ΕπεξεργασίαCSV file... \n"; + if (strlen($list_id_override)>0) + { + print "

ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + } + print ""; + } + +if ($leadfile) { + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + ### LOG INSERTION Admin Log Table ### + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ΛΙΣΤΕΣ', event_type='LOAD', record_id='$list_id_override', event_code='ADMIN LOAD LIST', event_sql='', event_notes='File Name: $leadfile_name';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($file_layout=="standard") { + + print ""; + flush(); + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "
Επεξεργασία$delim_name-delimited file... ($tab_count|$pipe_count)\n"; + if (strlen($list_id_override)>0) + { + print "

ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ: $phone_code_override

\n"; + } + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
Λάθος: Το αρχείο δεν έχει τον απαιτούμενο αριθμό πεδίων.
"; + } + } else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + $file=fopen("$lead_file", "r"); + + # echo "|$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
ΕπεξεργασίαCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } + print ""; + + } else { + print "
"; + flush(); + print "\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1", $link); + + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + flush(); + $file=fopen("$lead_file", "r"); + print "
Επεξεργασία$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ: $phone_code_override

"; + } + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + + } + } + else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + + # echo "|$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
ΕπεξεργασίαCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

ID ΛΙΣΤΑΣ OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ: $phone_code_override

"; + } + + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + $row=fgetcsv($file, 1000, ","); + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + } + } + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print "
VICIDIAL ΣτήληΑρχεία δεδομένων
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
        
\r\n"; + # } + print ""; + } +#} else if (filesize($leadfile)>8388608) { +# print "
ERROR: File exceeds the 8MB limit.
"; +} +?> + + + + + + + + +4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Κυριακή March to First Κυριακή November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Κυριακή March to First Κυριακή November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Κυριακή, to 6=Σάββατο) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Κυριακή April to Last Κυριακή October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Κυριακή in April and last Κυριακή in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Κυριακή March to Last Κυριακή October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Κυριακή in March and last Κυριακή in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Κυριακή October to Last Κυριακή March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Κυριακή in October and last Κυριακή in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Κυριακή October to Last Κυριακή March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Κυριακή in October and last Κυριακή in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Κυριακή October to Third Κυριακή March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Κυριακή in October and third Κυριακή in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Κυριακή October to Last Κυριακή February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Κυριακή October to Last Κυριακή February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # τοπικός χρόνος calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + +?> +
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/non_agent_api.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/non_agent_api.php new file mode 100644 index 00000000..b64ab4c0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/non_agent_api.php @@ -0,0 +1,2500 @@ + LICENSE: AGPLv2 +# +# This script is designed as an API(Application Programming Interface) to allow +# other programs to interact with all non-agent-screen VICIDIAL functions +# +# required variables: +# - $user +# - $pass +# - $function - ('add_lead','version') +# - $source - ('vtiger','webform','adminweb') +# - $format - ('text','debug') + +# CHANGELOG: +# 80724-0021 - First build of script +# 80801-0047 - Added gmt lookup and hopper insert time validation +# 80909-2012 - Added support for campaign-specific DNC lists +# 80910-0020 - Added support for multi-alt-phones, added version function +# 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function +# + +$version = '2.2.0-16'; +$build = '91216-0331'; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["function"])) {$function=$_GET["function"];} + elseif (isset($_POST["function"])) {$function=$_POST["function"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["dnc_check"])) {$dnc_check=$_GET["dnc_check"];} + elseif (isset($_POST["dnc_check"])) {$dnc_check=$_POST["dnc_check"];} +if (isset($_GET["campaign_dnc_check"])) {$campaign_dnc_check=$_GET["campaign_dnc_check"];} + elseif (isset($_POST["campaign_dnc_check"])) {$campaign_dnc_check=$_POST["campaign_dnc_check"];} +if (isset($_GET["add_to_hopper"])) {$add_to_hopper=$_GET["add_to_hopper"];} + elseif (isset($_POST["add_to_hopper"])) {$add_to_hopper=$_POST["add_to_hopper"];} +if (isset($_GET["hopper_priority"])) {$hopper_priority=$_GET["hopper_priority"];} + elseif (isset($_POST["hopper_priority"])) {$hopper_priority=$_POST["hopper_priority"];} +if (isset($_GET["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_GET["hopper_local_call_time_check"];} + elseif (isset($_POST["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_POST["hopper_local_call_time_check"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phones"];} + elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} +if (isset($_GET["source"])) {$source=$_GET["source"];} + elseif (isset($_POST["source"])) {$source=$_POST["source"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $DB=ereg_replace("[^0-9]","",$DB); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); + $format = ereg_replace("[^0-9a-zA-Z]","",$format); + $list_id = ereg_replace("[^0-9]","",$list_id); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $vendor_lead_code = ereg_replace(";","",$vendor_lead_code); + $vendor_lead_code = ereg_replace("\+"," ",$vendor_lead_code); + $source_id = ereg_replace(";","",$source_id); + $source_id = ereg_replace("\+"," ",$source_id); + $gmt_offset_now = ereg_replace("-\_\.0-9","",$gmt_offset_now); + $title = ereg_replace("[^- \_\.0-9a-zA-Z]","",$title); + $first_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$first_name); + $first_name = ereg_replace("\+"," ",$first_name); + $middle_initial = ereg_replace("[^0-9a-zA-Z]","",$middle_initial); + $last_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$last_name); + $last_name = ereg_replace("\+"," ",$last_name); + $address1 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address1); + $address2 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address2); + $address3 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address3); + $address1 = ereg_replace("\+"," ",$address1); + $address2 = ereg_replace("\+"," ",$address2); + $address3 = ereg_replace("\+"," ",$address3); + $city = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$city); + $city = ereg_replace("\+"," ",$city); + $state = ereg_replace("[^- 0-9a-zA-Z]","",$state); + $province = ereg_replace("[^- \+\.\_0-9a-zA-Z]","",$province); + $province = ereg_replace("\+"," ",$province); + $postal_code = ereg_replace("[^- \+0-9a-zA-Z]","",$postal_code); + $postal_code = ereg_replace("\+"," ",$postal_code); + $country_code = ereg_replace("[^A-Z]","",$country_code); + $gender = ereg_replace("[^A-Z]","",$gender); + $date_of_birth = ereg_replace("[^-0-9]","",$date_of_birth); + $alt_phone = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$alt_phone); + $alt_phone = ereg_replace("\+"," ",$alt_phone); + $email = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$email); + $email = ereg_replace("\+"," ",$email); + $security_phrase = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$security_phrase); + $security_phrase = ereg_replace("\+"," ",$security_phrase); + $comments = ereg_replace(";","",$comments); + $comments = ereg_replace("\+"," ",$comments); + $dnc_check = ereg_replace("[^A-Z]","",$dnc_check); + $campaign_dnc_check = ereg_replace("[^A-Z]","",$campaign_dnc_check); + $add_to_hopper = ereg_replace("[^A-Z]","",$add_to_hopper); + $hopper_priority = ereg_replace("-0-9","",$hopper_priority); + $hopper_local_call_time_check = ereg_replace("[^A-Z]","",$hopper_local_call_time_check); + $campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); + $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); + $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); + $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); + } + +if (strlen($list_id)<1) {$list_id='999';} +if (strlen($phone_code)<1) {$phone_code='1';} +$USarea = substr($phone_number, 0, 3); +if (strlen($hopper_priority)<1) {$hopper_priority=0;} +if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$postalgmt=''; +$api_script = 'non-agent'; +$api_logging = 1; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +### Grab Server GMT value from the database +$stmt="SELECT local_gmt FROM servers where active='Y' limit 1;"; +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$gmt_recs = mysql_num_rows($rslt); +if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } +else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + +$LOCAL_GMT_OFF = $SERVER_GMT; +$LOCAL_GMT_OFF_STD = $SERVER_GMT; + + + + + +################################################################################ +### version - show version and date information for the API +################################################################################ +if ($function == 'version') + { + $data = "VERSION: $version|BUILD: $build|DATE: $NOW_TIME|EPOCH: $StarTtime"; + $result = 'SUCCESS'; + echo "$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + + + + + +################################################################################ +### add_lead - inserts a lead into the vicidial_list table +################################################################################ +if ($function == 'add_lead') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $modify_leads=$row[0]; + + if ($modify_leads < 1) + { + $result = 'ERROR'; + $result_reason = "add_lead USER DOES NOT HAVE PERMISSION TO ADD LEADS TO THE SYSTEM"; + echo "$result: $result_reason: |$user|$modify_leads|\n"; + $data = "$modify_leads"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ( (strlen($phone_number)<6) || (strlen($phone_number)>16) ) + { + $result = 'ERROR'; + $result_reason = "add_lead INVALID PHONE NUMBER"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN DNC"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN CAMPAIGN DNC"; + echo "$result: $result_reason - $phone_number|$campaign_id|$user\n"; + $data = "$phone_number|$campaign_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + + + ### get current gmt_offset of the phone_number + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',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',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $lead_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "add_lead LEAD HAS BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$lead_id|$gmt_offset|$user\n"; + $data = "$phone_number|$list_id|$lead_id|$gmt_offset"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + if (strlen($multi_alt_phones) > 5) + { + $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; + $map = explode('!', $multi_alt_phones); + $map_count = count($map); + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} + $g++; + $r=0; $s=0; $inserted_alt_phones=0; + while ($r < $map_count) + { + $s++; + $ncn=$MT; + $ncn = explode('_', $map[$r]); + print "$ncn[0]|$ncn[1]|$ncn[2]"; + + if (strlen($forcephonecode) > 0) + {$ALTm_phone_code[$r] = $forcephonecode;} + else + {$ALTm_phone_code[$r] = $ncn[1];} + if (strlen($ALTm_phone_code[$r]) < 1) + {$ALTm_phone_code[$r]='1';} + $ALTm_phone_number[$r] = $ncn[0]; + $ALTm_phone_note[$r] = $ncn[2]; + $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Zaffected_rows = mysql_affected_rows($link); + $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); + $r++; + } + $result = 'NOTICE'; + $result_reason = "add_lead MULTI-ALT-PHONE NUMBERS LOADED"; + echo "$result: $result_reason - $inserted_alt_phones|$lead_id|$user\n"; + $data = "$inserted_alt_phones|$lead_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + + if ($add_to_hopper == 'Y') + { + $dialable=1; + + $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $local_call_time=$row[0]; + $VD_campaign_id=$row[1]; + + if ($hopper_local_call_time_check == 'Y') + { + ### call function to determine if lead is dialable + $dialable = dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state); + } + if ($dialable < 1) + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME"; + echo "$result: $result_reason - $phone_number|$lead_id|$gmt_offset|$dialable|$user\n"; + $data = "$phone_number|$lead_id|$gmt_offset|$dialable"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + ### code to insert into hopper goes here + + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Haffected_rows = mysql_affected_rows($link); + if ($Haffected_rows > 0) + { + $hopper_id = mysql_insert_id($link); + + $result = 'NOTICE'; + $result_reason = "add_lead ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$hopper_id|$user\n"; + $data = "$phone_number|$lead_id|$hopper_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$stmt|$user\n"; + $data = "$phone_number|$lead_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + else + { + $result = 'ERROR'; + $result_reason = "add_lead LEAD HAS NOT BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$stmt|$user\n"; + $data = "$phone_number|$list_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } + } +################################################################################ +### END add_lead +################################################################################ + + + +$result = 'ERROR'; +$result_reason = "NO FUNCTION SPECIFIED"; +echo "$result: $result_reason\n"; +api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + + + + + + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + + + + + + +##### FUNCTIONS ##### + +##### LOOKUP GMT, FINDS THE CURRENT GMT OFFSET FOR A PHONE NUMBER ##### + +function lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code) +{ +require("dbconnect.php"); + +$postalgmt_found=0; +if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + + + + + +##### DETERMINE IF LEAD IS DIALABLE ##### +function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) + { + $dialable=0; + + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + if ($GMT_day==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } + } + + return $dialable; + } + +/* + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) + { + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + +*/ + + + + +##### Logging ##### +function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) + { + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/remote_dispo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/remote_dispo.php new file mode 100644 index 00000000..9594124e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/remote_dispo.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + +$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;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +?> + + +Απομακρυσμένο: Τερματισμός Κλήσης +\n"; +?> + + +
+ +"; + +if ($end_call > 0) +{ + +$call_length = ($STARTtime - $call_began); + + ### insert a NEW record to the vicidial_closer_log table + $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";} + $rslt=mysql_query($stmt, $link); + + ### update the lead record in the vicidial_list table + $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";} + $rslt=mysql_query($stmt, $link); + + echo "Η κλήση έχει τερματίσει       $NOW_TIME\n

\n"; + + echo "
\n"; + +} +else +{ + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $campaign_id = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; # + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; # + $address1 = "$row[16]"; # + $address2 = "$row[17]"; # + $address3 = "$row[18]"; # + $city = "$row[19]"; # + $state = "$row[20]"; # + $province = "$row[21]"; # + $postal_code = "$row[22]"; # + $country_code = "$row[23]"; # + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; # + $email = "$row[27]"; # + $security = "$row[28]"; # + $comments = "$row[29]"; # + + echo "
Πληροφορίες Κλήσης: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     ID Εκστρατείας: $campaign_id
Fronter: $tsr     ID Λίστας: $list_id
Ονομα:   \n"; + echo " Επίθετο:
Διεύθυνση 1 :
Διεύθυνση 2 :
Διεύθυνση 3 :
Πόλη :
Κράτος:   \n"; + echo "Ταχ.Κωδ.
Χώρα :
Εναλ Τηλέφωνο :
Ασφάλεια :
Σχόλια :
Τερματισμός:
\n"; + echo "


\n"; + + } + else + { + echo "ΑΠΟΤΥΧΙΑ ψαξίματος καθοδήγησης για lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + + + +} + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/server_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/server_stats.php new file mode 100644 index 00000000..d46d3c10 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/server_stats.php @@ -0,0 +1,97 @@ + LICENSE: GPLv2 +### +# CHANGES +# +# 60620-1037 - Added Link back to Admin section +# - Added required user/pass to gain access to this page +# 61101-1331 - Added SIP/IAX listen/barge links +# + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select * from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $i++; + } +?> + + + + + +VICIDIAL: Στατιστικά Διακομιστή and Reports +VICIDIAL: Στατιστικά Διακομιστή and Reports                           +ΠΙΣΩ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ

+ + +

+
+ $o)
+	{
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	$o++;
+	}
+
+?>
+
SERVERΠΕΡΙΓΡΑΦΗIP ADDRESSΕΝΕΡΓΟVDAD timeVDcall timePARK timeCLOSER/INBOUND time
$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]LINKLINKLINKLINK
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_edit.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_edit.php new file mode 100644 index 00000000..d3afd4e4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_edit.php @@ -0,0 +1,481 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80624-1342 - First build +# 80701-1323 - functional beta version done +# 90310-2109 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["oldLOGINepoch"])) {$oldLOGINepoch=$_GET["oldLOGINepoch"];} + elseif (isset($_POST["oldLOGINepoch"])) {$oldLOGINepoch=$_POST["oldLOGINepoch"];} +if (isset($_GET["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_GET["oldLOGOUTepoch"];} + elseif (isset($_POST["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_POST["oldLOGOUTepoch"];} +if (isset($_GET["oldLOGINdate"])) {$oldLOGINdate=$_GET["oldLOGINdate"];} + elseif (isset($_POST["oldLOGINdate"])) {$oldLOGINdate=$_POST["oldLOGINdate"];} +if (isset($_GET["oldLOGOUTdate"])) {$oldLOGOUTdate=$_GET["oldLOGOUTdate"];} + elseif (isset($_POST["oldLOGOUTdate"])) {$oldLOGOUTdate=$_POST["oldLOGOUTdate"];} +if (isset($_GET["LOGINepoch"])) {$LOGINepoch=$_GET["LOGINepoch"];} + elseif (isset($_POST["LOGINepoch"])) {$LOGINepoch=$_POST["LOGINepoch"];} +if (isset($_GET["LOGOUTepoch"])) {$LOGOUTepoch=$_GET["LOGOUTepoch"];} + elseif (isset($_POST["LOGOUTepoch"])) {$LOGOUTepoch=$_POST["LOGOUTepoch"];} +if (isset($_GET["notes"])) {$notes=$_GET["notes"];} + elseif (isset($_POST["notes"])) {$notes=$_POST["notes"];} +if (isset($_GET["LOGINevent_id"])) {$LOGINevent_id=$_GET["LOGINevent_id"];} + elseif (isset($_POST["LOGINevent_id"])) {$LOGINevent_id=$_POST["LOGINevent_id"];} +if (isset($_GET["LOGOUTevent_id"])) {$LOGOUTevent_id=$_GET["LOGOUTevent_id"];} + elseif (isset($_POST["LOGOUTevent_id"])) {$LOGOUTevent_id=$_POST["LOGOUTevent_id"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["timeclock_id"])) {$timeclock_id=$_GET["timeclock_id"];} + elseif (isset($_POST["timeclock_id"])) {$timeclock_id=$_POST["timeclock_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); +$invalid_record=0; + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $modify_timeclock_log = $row[1]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT event,tcid_link from vicidial_timeclock_log where timeclock_id='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $event = $row[0]; + $tcid_link = $row[1]; + } + if (ereg("LOGIN",$event)) + { + $LOGINevent_id = $timeclock_id; + $LOGOUTevent_id = $tcid_link; + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (ereg("LOGOUT",$event)) + { + $LOGOUTevent_id = $timeclock_id; + $stmt="SELECT timeclock_id from vicidial_timeclock_log where tcid_link='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_id = $row[0]; + } + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (strlen($LOGOUTevent_id)<1) + {$invalid_record++;} + + ### + if ($invalid_record < 1) + { + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGINevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_epoch = $row[0]; + $LOGINevent_date = $row[1]; + $LOGINlogin_sec = $row[2]; + $LOGINevent = $row[3]; + $LOGINuser = $row[4]; + $LOGINuser_group = $row[5]; + $LOGINip_address = $row[6]; + $LOGINshift_id = $row[7]; + $LOGINnotes = $row[8]; + $LOGINmanager_user = $row[9]; + $LOGINmanager_ip = $row[10]; + $LOGINevent_datestamp = $row[11]; + } + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGOUTevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGOUTevent_epoch = $row[0]; + $LOGOUTevent_date = $row[1]; + $LOGOUTlogin_sec = $row[2]; + $LOGOUTevent = $row[3]; + $LOGOUTuser = $row[4]; + $LOGOUTuser_group = $row[5]; + $LOGOUTip_address = $row[6]; + $LOGOUTshift_id = $row[7]; + $LOGOUTnotes = $row[8]; + $LOGOUTmanager_user = $row[9]; + $LOGOUTmanager_ip = $row[10]; + $LOGOUTevent_datestamp =$row[11]; + } + + $user=$LOGINuser; + } + } + + + +?> + + + +ADMINISTRATION:Ώρα ρολόι Εγγραφή Επεξεργασία +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$TCedit_javascript = '1'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=720 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Ώρα ρολόι Εγγραφή Επεξεργασία for <?php echo $user ?></TD><TD ALIGN=RIGHT>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + + + + + +##### BEGIN TIMECLOCK RECORD MODIFY ##### + +if ( ($invalid_record < 1) or (strlen($timeclock_id)<1) ) +{ + +if ($stage == "edit_TC_log") + { + $log_time = ($LOGOUTepoch - $LOGINepoch); + $NEXTevent_epoch = $StarTtimE; + $PREVevent_epoch = 0; + + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id > '$LOGOUTevent_id' and user='$user' order by timeclock_id limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $NEXTevent_epoch = $row[0]; + $NEXTevent_id = $row[1]; + } + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id < '$LOGINevent_id' and user='$user' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $PREVevent_epoch = $row[0]; + $PREVevent_id = $row[1]; + } + + if ( ($LOGINepoch <= $PREVevent_epoch) || ($LOGOUTepoch >= $NEXTevent_epoch) ) + { + echo "ERROR-Υπάρχει ένα πρόβλημα με τα δεδομένα που πληκτρολογήσατε, παρακαλώ πηγαίνετε πίσω<BR>\n"; + echo "Μια timeclock συνόδου δεν μπορεί να επικαλύπτονται άλλο timeclock συνόδου<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + echo "$PREVevent_epoch<BR>\n"; + echo "$PREVevent_id<BR>\n"; + echo "$NEXTevent_epoch<BR>\n"; + echo "$NEXTevent_id<BR>\n"; + exit; + } + if ( ($LOGINepoch > $StarTtimE) || ($LOGOUTepoch > $StarTtimE) || ($log_time > 86400) || ($log_time < 1) ) + { + echo "ERROR-Υπάρχει ένα πρόβλημα με τα δεδομένα που πληκτρολογήσατε, παρακαλώ πηγαίνετε πίσω<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$notes<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + exit; + } + else + { + $LOGINdatetime = date("Y-m-d H:i:s", $LOGINepoch); + $LOGOUTdatetime = date("Y-m-d H:i:s", $LOGOUTepoch); + + ### update LOGIN record in the timeclock log + $stmtA="UPDATE vicidial_timeclock_log set event_epoch='$LOGINepoch', event_date='$LOGINdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGINevent_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGINevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGINepoch|$oldLOGINdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + ### update LOGOUT record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set event_epoch='$LOGOUTepoch', event_date='$LOGOUTdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGOUTevent_id';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGOUTevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGOUTepoch|$oldLOGOUTdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + echo "The timeclock session has been updated. <A HREF=\"$PHP_SELF?timeclock_id=$LOGINevent_id\">Click here to view</A>.<BR>\n"; + exit; + } + } +##### END TIMECLOCK RECORD MODIFY ##### + + + + +echo "\n<BR>"; + +if ($modify_timeclock_log > 0) + { +# $LOGINevent_id = $timeclock_id; +# $LOGOUTevent_id = $tcid_link; + + $event_hours = ($LOGINlogin_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + + $stmt="SELECT full_name from vicidial_users where user='$LOGINuser';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST name=edit_log id=edit_log>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<input type=hidden name=oldLOGINepoch id=oldLOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGOUTepoch id=oldLOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGINdate id=oldLOGINdate value=\"$LOGINevent_date\">\n"; + echo "<input type=hidden name=oldLOGOUTdate id=oldLOGOUTdate value=\"$LOGOUTevent_date\">\n"; + echo "<input type=hidden name=LOGINepoch id=LOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=LOGOUTepoch id=LOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=LOGINevent_id id=LOGINevent_id value=\"$LOGINevent_id\">\n"; + echo "<input type=hidden name=LOGOUTevent_id id=LOGOUTevent_id value=\"$LOGOUTevent_id\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<TABLE Border=0><TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "        USER: $LOGINuser ($full_name)         \n"; + echo "HOURS: <span name=login_time id=login_time> $event_hours_int:$event_minutes_int </span>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD>\n"; + echo "<TABLE Border=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGIN TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGINbegin_date id=LOGINbegin_date value=\"$LOGINevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGINevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>ΟΜΑΔΑ ΧΡΗΣΤΩΝ: </TD><TD ALIGN=RIGHT>$LOGINuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGINip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGINmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGINmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGINnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGINevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + + echo "</TD><TD>         \n"; + echo "</TD><TD>\n"; + echo "<TABLE Border=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGOUT TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGOUTbegin_date id=LOGOUTbegin_date value=\"$LOGOUTevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGOUTevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>ΟΜΑΔΑ ΧΡΗΣΤΩΝ: </TD><TD ALIGN=RIGHT>$LOGOUTuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGOUTip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGOUTnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGOUTevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + echo "</TD></TR>\n"; + + echo "<TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "NEW NOTES: <input type=text name=notes value='' size=80 maxlength=255>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD COLSPAN=3 ALIGN=CENTER>\n"; + echo "<input type=button name=go_submit id=go_submit value=ΕΠΙΒΕΒΑΙΩΣΗ onclick=\"run_submit();\"><BR></form>\n"; + echo "</TD></TR></TABLE>\n"; + echo "<BR><BR>\n"; + } + + +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Ώρα Φύλλο</a>\n"; +echo " - <a href=\"./user_stats.php?user=$user\">Στατιστικά Χρήστη</a>\n"; +echo " - <a href=\"./admin.php?ADD=3&user=$user\">Τροποποίηση Χρήστη</a>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +} +else +{ + +echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; +} +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_report.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_report.php new file mode 100644 index 00000000..1e3696ba --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_report.php @@ -0,0 +1,361 @@ +<?php +# timeclock_report.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80529-0055 - First build +# 80617-1416 - Fixed totals tally bug +# 80707-0754 - Fixed groups bug, changed formatting +# 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +##### Pull values from posted form variables ##### +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($order)<2) {$order='hours_down';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + +##### START HTML ##### +?> + +<HTML> +<HEAD> + +<style type="text/css"> +<!-- + div.scroll_callback {height: 300px; width: 620px; overflow: scroll;} + div.scroll_list {height: 400px; width: 140px; overflow: scroll;} + div.scroll_script {height: 331px; width: 600px; background: #FFF5EC; overflow: scroll; font-size: 12px; font-family: sans-serif;} + div.text_input {overflow: auto; font-size: 10px; font-family: sans-serif;} + .body_text {font-size: 13px; font-family: sans-serif;} + .preview_text {font-size: 13px; font-family: sans-serif; background: #CCFFCC} + .preview_text_red {font-size: 13px; font-family: sans-serif; background: #FFCCCC} + .body_small {font-size: 11px; font-family: sans-serif;} + .body_tiny {font-size: 10px; font-family: sans-serif;} + .log_text {font-size: 11px; font-family: monospace;} + .log_text_red {font-size: 11px; font-family: monospace; font-weight: bold; background: #FF3333} + .sd_text {font-size: 16px; font-family: sans-serif; font-weight: bold;} + .sh_text {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .sb_text {font-size: 12px; font-family: sans-serif;} + .sk_text {font-size: 11px; font-family: sans-serif;} + .skb_text {font-size: 13px; font-family: sans-serif; font-weight: bold;} + .ON_conf {font-size: 11px; font-family: monospace; color: black; background: #FFFF99} + .OFF_conf {font-size: 11px; font-family: monospace; color: black; background: #FFCC77} + .cust_form {font-family: sans-serif; font-size: 10px; overflow: auto} + + .select_bold {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .header_white {font-size: 14px; font-family: sans-serif; font-weight: bold; color: white} + .data_records {font-size: 12px; font-family: sans-serif; color: black} + .data_records_fix {font-size: 12px; font-family: monospace; color: black} + .data_records_fix_small {font-size: 9px; font-family: monospace; color: black} + +--> +</style> + +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<TITLE>ΧρήστηςΏρα ρολόι Report + +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +$user_group_ct = count($user_group); +$user_group_string='|'; + +$i=0; +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_timeclock_log.user_group IN($user_group_SQL)"; + } + +if ($DB > 0) + { + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + } + +echo "<CENTER>\n"; +echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; +echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; +echo "<TABLE Border=0 CELLSPACING=6><TR><TD ALIGN=LEFT VALIGN=TOP>\n"; + +echo "<font class=\"select_bold\"><B>Χρονικό διάστημα:</B></font><BR><CENTER>\n"; +echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; +echo "<BR>to<BR>\n"; +echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Ομάδες Χρήστη:</B></font><BR><CENTER>\n"; +echo "<SELECT SIZE=5 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } +echo "</SELECT>\n"; + +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Order:</B></font><BR>\n"; +echo "<SELECT SIZE=1 NAME=order>\n"; +echo "<option selected value=\"$order\">$order</option>\n"; +echo "<option value=\"\">--</option>\n"; +echo "<option>hours_up</option>\n"; +echo "<option>hours_down</option>\n"; +echo "<option>user_up</option>\n"; +echo "<option>user_down</option>\n"; +echo "<option>name_up</option>\n"; +echo "<option>name_down</option>\n"; +echo "<option>group_up</option>\n"; +echo "<option>group_down</option>\n"; +echo "</SELECT><BR><CENTER>\n"; + +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Χρήστης:</B></font><BR>\n"; +echo "<INPUT TYPE=text NAME=user SIZE=7 MAXLENGTH=20 VALUE=\"$user\">\n"; + +echo "<BR><BR><INPUT TYPE=Submit NAME=ΕΠΙΒΕΒΑΙΩΣΗ VALUE=ΥΠΟΒΑΛΛΩ>\n"; +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "</TD><TD ALIGN=CENTER VALIGN=TOP ROWSPAN=3>\n"; +echo "<FONT class=\"select_bold\" COLOR=BLACK SIZE=2>     <a href=\"./admin.php?ADD=999999\">ΑΝΑΦΟΡΕΣ</a> </FONT>\n"; + +echo "</TD></TR></TABLE>\n"; +echo "</FORM>\n\n"; + +echo "<PRE><FONT SIZE=3>\n"; + + +echo "ΧρήστηςΏρα ρολόι Report $NOW_TIME\n"; + +echo "Time range: $query_date to $end_date\n\n"; +echo "---------- USER TIMECLOCK DETAILS -------------\n"; +echo "These totals do NOT include any active sessions\n</PRE>\n"; + +echo "<TABLE Border=0 CELLSPACING=1 CELLPADDING=3><TR BGCOLOR=BLACK>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">#</TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  USER  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  NAME  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  GROUP  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  HOURS  </TD>\n"; +echo "</TR>\n"; + +$order_SQL=''; +if ($order == 'hours_up') {$order_SQL = "order by login";} +if ($order == 'hours_down') {$order_SQL = "order by login desc";} +if ($order == 'user_up') {$order_SQL = "order by vicidial_users.user";} +if ($order == 'user_down') {$order_SQL = "order by vicidial_users.user desc";} +if ($order == 'name_up') {$order_SQL = "order by full_name";} +if ($order == 'name_down') {$order_SQL = "order by full_name desc";} +if ($order == 'group_up') {$order_SQL = "order by vicidial_timeclock_log.user_group";} +if ($order == 'group_down') {$order_SQL = "order by vicidial_timeclock_log.user_group desc";} + +if (strlen($user) > 0) {$user_SQL = "and vicidial_timeclock_log.user='$user'";} +else {$user_SQL='';} + +$stmt="select vicidial_users.user,full_name,sum(login_sec) as login,vicidial_timeclock_log.user_group from vicidial_users,vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date 00:00:00' and event_date <= '$end_date 23:59:59' and vicidial_users.user=vicidial_timeclock_log.user $user_SQL $user_group_SQL group by vicidial_users.user,vicidial_timeclock_log.user_group $order_SQL limit 100000;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$rows_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $rows_to_print) + { + $dbHOURS=0; + $row=mysql_fetch_row($rslt); + $user_id[$i] = $row[0]; + $full_name[$i] = $row[1]; + $login_sec[$i] = $row[2]; $TOTlogin_sec = ($TOTlogin_sec + $row[2]); + $u_group[$i] = $row[3]; + + if ($login_sec[$i] > 0) + { + $dbHOURS = ($login_sec[$i] / 3600); + $dbHOURS = round($dbHOURS, 2); + $dbHOURS = sprintf("%01.2f", $dbHOURS); + } + else + {$dbHOURS='0.00';} + + $hours[$i] = $dbHOURS; + $hoursSORT[$i] = "$dbHOURS-----$i"; + + $i++; + } + + +$j=0; +while ($j < $rows_to_print) + { + + $hours_split = explode("-----",$hoursSORT[$j]); + $i = $hours_split[1]; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "<TR $bgcolor>\n"; + echo "<TD ALIGN=LEFT><FONT class=\"data_records_fix_small\">$j</TD>\n"; + echo "<TD><FONT class=\"data_records\"><A HREF=\"user_status.php?user=$user_id[$i]\">$user_id[$i]</A> </TD>\n"; + echo "<TD><FONT class=\"data_records\">$full_name[$i] </TD>\n"; + echo "<TD><FONT class=\"data_records\">$u_group[$i] </TD>\n"; + echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $hours[$i]</TD>\n"; + echo "</TR>\n"; + + $j++; + } + + +if ($TOTlogin_sec > 0) + { + $TOTdbHOURS = ($TOTlogin_sec / 3600); + $TOTdbHOURS = round($TOTdbHOURS, 0); + $TOTdbHOURS = sprintf("%01.0f", $TOTdbHOURS); + } +else + {$TOTdbHOURS='0.00';} + +$TOThours = $TOTdbHOURS; + + +echo "<TR BGCOLOR=#E6E6E6>\n"; +echo "<TD ALIGN=LEFT COLSPAN=4><FONT class=\"data_records\">TOTALS</TD>\n"; +echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $TOThours</TD>\n"; +echo "</TR>\n"; + +echo "</TABLE>\n"; + +echo "\n"; + +/* + $TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60); + $TOTavgWAIT_M = round($TOTavgWAIT_M, 2); + $TOTavgWAIT_M_int = intval("$TOTavgWAIT_M"); + $TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int); + $TOTavgWAIT_S = ($TOTavgWAIT_S * 60); + $TOTavgWAIT_S = round($TOTavgWAIT_S, 0); + if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";} + $TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S"; + $TOTavgWAIT_MS = sprintf("%6s", $TOTavgWAIT_MS); + while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);} +*/ +?> +</CENTER> +</BODY></HTML> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_status.php new file mode 100644 index 00000000..9dec411e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/timeclock_status.php @@ -0,0 +1,550 @@ +<?php +# timeclock_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80602-0201 - First Build +# 80603-1500 - formatting changes +# 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$HHMM = date("Hi"); +$HHteod = substr($timeclock_end_of_day,0,2); +$MMteod = substr($timeclock_end_of_day,2,2); + +if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} +else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + +$EoDdate = date("Y-m-d H:i:s", $EoD); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + if ($row[0]==$user_group) + {$FORMuser_groups.="<option value=\"$row[0]\" SELECTED>$row[0]</option>";} + else + {$FORMuser_groups.="<option value=\"$row[0]\">$row[0]</option>";} + $i++; + } + +if (strlen($user_group) > 0) + { + $stmt="SELECT group_name from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + } + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION:Ώρα ρολόι Status +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<CENTER> +<TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Ώρα ρολόι Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php +echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; +echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>ΟΜΑΔΑ ΧΡΗΣΤΩΝ</a>\n"; +?> +</TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<select size=1 name=user_group>$FORMuser_groups</select>"; +echo "<input type=submit name=submit value=submit>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; +echo "<br><center>\n"; + +if (strlen($user_group) < 1) + { + exit; + } + + +##### grab all users in this user_group ##### +$stmt="SELECT user,full_name from vicidial_users where user_group='" . mysql_real_escape_string($user_group) . "' order by full_name;"; +if ($DB>0) {echo "|$stmt|";} +$rslt=mysql_query($stmt, $link); +$users_to_print = mysql_num_rows($rslt); +$o=0; +while ($users_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $users[$o] = $row[0]; + $full_name[$o] = $row[1]; + $Vevent_time[$o] = ''; + $Vevent_epoch[$o] = 0; + $Vcampaign[$o] = ''; + $Tevent_epoch[$o] = ''; + $Tevent_date[$o] = ''; + $Tstatus[$o] = ''; + $Tip_address[$o] = ''; + $Tlogin_time[$o] = ''; + $Tlogin_sec[$o] = 0; + + $o++; + } + +$o=0; +while ($users_to_print > $o) + { + $total_login_time = 0; + ##### grab timeclock status record for this user ##### + $stmt="SELECT event_epoch,event_date,status,ip_address from vicidial_timeclock_status where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $stats_to_print = mysql_num_rows($rslt); + if ($stats_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_epoch[$o] = $row[0]; + $Tevent_date[$o] = $row[1]; + $Tstatus[$o] = $row[2]; + $Tip_address[$o] = $row[3]; + + if ( ($row[2]=='START') or ($row[2]=='LOGIN') ) + {$bgcolor[$o]='bgcolor="#B9CBFD"';} + else + {$bgcolor[$o]='bgcolor="#9BB9FB"';} + } + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event,event_epoch,login_sec from vicidial_timeclock_log where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $logs_to_parse = mysql_num_rows($rslt); + $p=0; + while ($logs_to_parse > $p) + { + $row=mysql_fetch_row($rslt); + if ( (ereg("LOGIN", $row[0])) or (ereg("START", $row[0])) ) + { + $login_sec=''; + $Tevent_time[$o] = date("Y-m-d H:i:s", $row[1]); + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[2]; + $total_login_time = ($total_login_time + $login_sec); + } + $p++; + } + if ( (strlen($login_sec)<1) and ($logs_to_parse > 0) ) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } + if ($logs_to_parse > 0) + { + $total_login_hours = ($total_login_time / 3600); + $total_login_hours_int = round($total_login_hours, 2); + $total_login_hours_int = intval("$total_login_hours"); + $total_login_minutes = ($total_login_hours - $total_login_hours_int); + $total_login_minutes = ($total_login_minutes * 60); + $total_login_minutes_int = round($total_login_minutes, 0); + if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + + $Tlogin_time[$o] = "$total_login_hours_int:$total_login_minutes_int"; + $Tlogin_sec[$o] = $total_login_time; + } + else + { + $total_login_time = 0; + $Tlogin_time[$o] = "0:00"; + $Tlogin_sec[$o] = $total_login_time; + } + + if ($DB>0) {echo "|$Tlogin_sec[$o]|$Tlogin_time[$o]|";} + + ##### grab vicidial_agent_log records in this user_group ##### + $stmt="SELECT event_time,UNIX_TIMESTAMP(event_time),campaign_id from vicidial_agent_log where user='$users[$o]' and event_time >= '$EoDdate' order by agent_log_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $vals_to_print = mysql_num_rows($rslt); + if ($vals_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Vevent_time[$o] = $row[0]; + $Vevent_epoch[$o] = $row[1]; + $Vcampaign[$o] = $row[2]; + } + + $o++; + } + + +##### print each user that has any activity for today ##### +echo "<br>\n"; +echo "<center>\n"; + +echo "<TABLE width=720 cellspacing=0 cellpadding=1>\n"; +echo "<TR>\n"; +echo "<TD bgcolor=\"#99FF33\">     </TD><TD align=left> TC Logged in and VICI active</TD>\n"; # bright green +echo "<TD bgcolor=\"#FFFF33\">     </TD><TD align=left> TC Logged in only</TD>\n"; # bright yellow +echo "<TD bgcolor=\"#FF6666\">     </TD><TD align=left> VICI active only</TD>\n"; # bright red +echo "</TR><TR>\n"; +echo "<TD bgcolor=\"#66CC66\">     </TD><TD align=left> TC Logged out and VICI active</TD>\n"; # dull green +echo "<TD bgcolor=\"#CCCC00\">     </TD><TD align=left> TC Logged out only</TD>\n"; # dull yellow +echo "<TD>     </TD><TD align=left>   </TD>\n"; +echo "</TR></TABLE><BR>\n"; + +echo "<B>USER STATUS FOR ΟΜΑΔΑ ΧΡΗΣΤΩΝ: $user_group</B>\n"; +echo "<TABLE width=700 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2># </td><td><font size=2>USER </td><td align=left><font size=2>NAME </td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> TC TIME</td><td align=right><font size=2>TC LOGIN</td><td align=right><font size=2> VICI LAST LOG</td><td align=right><font size=2> VICI CAMPAIGN</td></tr>\n"; + +$o=0; +$s=0; +while ($users_to_print > $o) + { + if ( ($Tlogin_sec[$o] > 0) or (strlen($Vevent_time[$o]) > 0) ) + { + if ( ($Tstatus[$o]=='START') or ($Tstatus[$o]=='LOGIN') ) + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#FFFF33"';} # yellow + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#99FF33"';} # green + } + else + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#CCCC00"';} # yellow + if (strlen($Vevent_time[$o]) > 0) + {$bgcolor[$o]='bgcolor="#FF6666"';} # red + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#66CC66"';} # green + } + + $s++; + echo "<tr $bgcolor[$o]>"; + echo "<td><font size=1>$s</td>"; + echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; + echo "<td><font size=2>$full_name[$o]</td>"; + echo "<td><font size=2>$Tip_address[$o]</td>"; + echo "<td align=right><font size=2>$Tlogin_time[$o]</td>"; + echo "<td align=right><font size=2>$Tevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vcampaign[$o]</td>"; + echo "</tr>"; + + if (strlen($Tstatus[$o])>0) + {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} + } + $o++; + } + + + +$total_login_hours = ($TOTlogin_sec / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr bgcolor=white>"; +echo "<td colspan=4><font size=2>TOTALS</td>"; +echo "<td align=right><font size=2>$total_login_hours_int:$total_login_minutes_int</td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "</tr>"; +echo "</table>"; + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php +exit; + + + + + + + + + + + +##### vicidial_timeclock log records for user ##### + +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜΕΡΑ</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>ΩΡΕΣ:ΛΕΠΤΑ</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours = ($login_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } +$total_login_hours = ($total_login_time / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_group_bulk_change.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_group_bulk_change.php new file mode 100644 index 00000000..77201ece --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_group_bulk_change.php @@ -0,0 +1,271 @@ +<?php +# user_group_bulk_change.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# 81119-0918 - First build +# 90309-1830 - Added admin_log logging +# 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["old_group"])) {$old_group=$_GET["old_group"];} + elseif (isset($_POST["old_group"])) {$old_group=$_POST["old_group"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Ομάδα Χρήστη Μαζική Αλλαγή +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + + +?> + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Ομάδα Χρήστη Μαζική Αλλαγή</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### GROUP CHANGE FOR ALL USERS IN A USER GROUP ##### +if ($stage == "one_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group='" . mysql_real_escape_string($old_group) . "';"; + $rslt=mysql_query($stmt, $link); + + echo "All Ομάδα Χρήστη $old_group Χρήστες changed to the $group Ομάδα Χρήστη<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK ΟΜΑΔΑ ΧΡΗΣΤΩΝ CHANGE', event_sql=\"$SQL_log\", event_notes='Old Ομάδα:$old_group';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +##### GROUP CHANGE FOR ALL USERS IN THE SYSTEM EXCEPT FOR LEVEL > 6 AND ADMIN GROUP ##### +if ($stage == "all_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group!='ADMIN' and user_group < 7;"; + $rslt=mysql_query($stmt, $link); + + echo "All non-Admin Χρήστες changed to the $group Ομάδα Χρήστη<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK ΟΜΑΔΑ ΧΡΗΣΤΩΝ CHANGE', event_sql=\"$SQL_log\", event_notes='ALL NON-ADMIN;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +### one user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"one_user_group_change\">\n"; +echo "Change Χρήστες in this group: <SELECT SIZE=1 NAME=old_group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR>   to this group: <SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=ΕΠΙΒΕΒΑΙΩΣΗ></CENTER><BR></form>\n"; + +echo "\n<BR><BR><BR>"; + + + +### all user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"all_user_group_change\">\n"; +echo "Change ALL non-Admin Χρήστες to this group: <BR><SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=ΕΠΙΒΕΒΑΙΩΣΗ></CENTER><BR></form>\n"; + +echo "\n<BR>"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_stats.php new file mode 100644 index 00000000..0d0e7701 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_stats.php @@ -0,0 +1,677 @@ +<?php +# user_stats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1743 - Added variable filtering to eliminate SQL injection attack threat +# 61201-1136 - Added recordings display and changed calls to time range with 10000 limit +# 70118-1605 - Added user group column to login/out and calls lists +# 70702-1231 - Added recording location link and truncation +# 80117-0316 - Added vicidial_user_closer_log entries to display +# 80501-0506 - Added Hangup Reason to logs display +# 80523-2012 - Added vicidial timeclock records display +# 80617-1402 - Fixed timeclock total logged-in time +# 81210-1634 - Added server recording display options +# 90208-0504 - Added link to multi-day report and fixed call status summary section +# 90305-1226 - Added user_call_log manual dial logs +# 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +$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"); +$TODAY = date("Y-m-d"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + $stmt="SELECT full_name from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Στατιστικά Χρήστη +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Στατιστικά Χρήστη for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=text name=begin_date value=\"$begin_date\" size=10 maxsize=10> to \n"; +echo "<input type=text name=end_date value=\"$end_date\" size=10 maxsize=10>  \n"; +if (strlen($user)>1) + {echo "<input type=hidden name=user value=\"$user\">\n";} +else + {echo "<input type=text name=user size=12 maxlength=10>\n";} +echo "<input type=submit name=submit value=submit>\n"; + + +echo "           $user - $full_name<BR><BR>\n"; + +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Ώρα Φύλλο</a>\n"; +echo " | <a href=\"./user_status.php?user=$user\">Κατάσταση χρήστη</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Τροποποίηση Χρήστη</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">Χρήστης multiple day status detail report</a>"; +echo "</center>\n"; + + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +##### vicidial agent talk time and status ##### + +echo "<B>ΧΕΙΡΙΣΤΗΣΧΡΟΝΟΣ ΟΜΙΛΙΑΣ ΚΑΙ ΚΑΤΑΣΤΑΣΗ:</B>\n"; + +echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ΚΑΤΑΣΤΑΣΗ</td><td align=right><font size=2>ΚΑΤΑΜΕΤΡΗΣΗ</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + +$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); +$VLstatuses_to_print = mysql_num_rows($rslt); +$total_calls=0; +$o=0; $p=0; +while ($VLstatuses_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $p++; + $o++; + } + +$stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_closer_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); +$VCLstatuses_to_print = mysql_num_rows($rslt); +$o=0; +while ($VCLstatuses_to_print > $o) + { + $status_match=0; + $r=0; + $row=mysql_fetch_row($rslt); + while ($VLstatuses_to_print > $r) + { + if ($status[$r] == $row[1]) + { + $counts[$r] = ($counts[$r] + $row[0]); + $call_sec[$r] = ($call_sec[$r] + $row[2]); + $status_match++; + } + $r++; + } + if ($status_match < 1) + { + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $VLstatuses_to_print++; + $p++; + } + $o++; + } + +$o=0; +$total_sec=0; +while ($o < $p) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $call_hours_minutes = sec_convert($call_sec[$o],'H'); + + echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; + echo "<td align=right><font size=2> $counts[$o]</td>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $total_calls = ($total_calls + $counts[$o]); + $total_sec = ($total_sec + $call_sec[$o]); + $call_seconds=0; + $o++; + } + +$call_hours_minutes = sec_convert($total_sec,'H'); + +echo "<tr><td><font size=2>ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣ</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; +echo "</TABLE></center>\n"; + + +##### Login and Logout time from vicidial agent interface ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>ΧΕΙΡΙΣΤΗΣ ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ:</B>\n"; +echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜΕΡΑ</td><td align=right><font size=2>ΕΚΣΤΡΑΤΕΙΑ</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group 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); + $events_to_print = mysql_num_rows($rslt); + + $total_calls=0; + $o=0; + $event_start_seconds=''; + $event_stop_seconds=''; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if (eregi("LOGIN", $row[0])) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if (ereg("LOGIN", $row[0])) + { + $event_start_seconds = $row[1]; + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + if ($event_start_seconds) + { + + $event_stop_seconds = $row[1]; + $event_seconds = ($event_stop_seconds - $event_start_seconds); + $total_login_time = ($total_login_time + $event_seconds); + $event_hours_minutes = sec_convert($event_seconds,'H'); + + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; + $event_start_seconds=''; + $event_stop_seconds=''; + } + else + { + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + } + + $total_calls = ($total_calls + $row[0]); + + $call_seconds=0; + $o++; + } + +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +echo "<tr><td><font size=2>ΣΥΝΟΛΙΚΑ</td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + +##### vicidial_timeclock log records for user ##### + +$total_login_time=0; +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2 >ΣΥΜΒΑΝ</td><td align=right><font size=2> ΗΜΕΡΑ</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours_minutes = sec_convert($login_sec,'H'); + + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes"; + if ($DB) {echo " - $total_login_time - $login_sec";} + echo "</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} + } +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +if ($DB) {echo " - $total_login_time - $login_sec";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + +##### closer in-group selection logs ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2>ΕΚΣΤΡΑΤΕΙΑ</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; + +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_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' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound calls for this time period ##### + +echo "<B>ΕΞΕΡΧΟΜΕΝΟ CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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>ΕΚΣΤΡΑΤΕΙΑ</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial 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' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent inbound calls for this time period ##### + +echo "<B>Εισερχόμενα/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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>ΕΚΣΤΡΑΤΕΙΑ</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[17] </td></tr>\n"; + + } + + +echo "</TABLE></center><BR><BR>\n"; + + +##### vicidial recordings for this time period ##### + +echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "<a href=\"$location\">$locat</a>";} + else + {$location = $locat;} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td align=left><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[12]\" target=\"_blank\">$row[12]</A> </td>"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[8] </td>\n"; + echo "<td align=left><font size=2> $row[0] </td>\n"; + echo "<td align=center><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $location   </td>\n"; + echo "</tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound user manual calls for this time period ##### + +echo "<B>MANUAL ΕΞΕΡΧΟΜΕΝΟ CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CALL TYPE</td><td align=left><font size=2> SERVER</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> DIALED</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CALLERID</td><td align=right><font size=2> ALIAS</td></tr>\n"; + + $stmt="select call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id from user_call_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[0]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[2]</td>\n"; + echo "<td align=left><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[4] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[5]\" target=\"_blank\">$row[5]</A> </td>\n"; + echo "<td align=right><font size=2> $row[6] </td>\n"; + echo "<td align=right><font size=2> $row[7] </td></tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_status.php new file mode 100644 index 00000000..adf8d4b7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_status.php @@ -0,0 +1,677 @@ +<?php +# user_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1738 - Added variable filtering to eliminate SQL injection attack threat +# 80603-1452 - Added manager timeclock force login/logout of user +# 81118-1034 - Disabled change campaign because it does not work +# 90208-0511 - Added link to user multi-day status report +# 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $agents_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $agents_to_print) + { + $row=mysql_fetch_row($rslt); + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; + $i++; + } + + $stmt="SELECT event_date,status,ip_address from vicidial_timeclock_status where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_date = $row[0]; + $Tstatus = $row[1]; + $Tip_address = $row[2]; + $i++; + } + + } + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Κατάσταση χρήστη +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Κατάσταση χρήστη for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### EMERGENCY CAMPAIGN CHANGE FOR AN AGENT ##### +if ($stage == "live_campaign_change") + { + $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); + + echo "Agent $user - $full_name changed to $group campaign<BR>\n"; + + exit; + } + +##### EMERGENCY LOGOUT OF AN AGENT ##### +if ($stage == "log_agent_out") + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; + + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } + + exit; + } + + + + + +##### BEGIN TIMECLOCK LOGOUT OF A USER ##### +if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($modify_timeclock_log > 0) ) + { + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $LOG_run=0; + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + } + + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; + } + + + ##### Run timeclock login queries ##### + if ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage == "tc_log_user_IN") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGIN of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update the user's timeclock status record + $stmtB="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtC="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGIN', record_id='$user', event_code='USER FORCED LOGIN FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Ώρα ρολόι ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-in the user: $user - $full_name"; + } + + ##### Run timeclock logout queries ##### + if ( ( ($status=='LOGIN') or ($status=='START') ) and ($stage == "tc_log_user_OUT") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGOUT of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update last login record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_log record updated for $user: |$affected_rows| -->\n"; + + ### Update the user's timeclock status record + $stmtC="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtD="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtD\n";} + $rslt=mysql_query($stmtD, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Update last login record in the timeclock audit log + $stmtE="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtE\n";} + $rslt=mysql_query($stmtE, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_audit_log record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|$stmtD|$stmtE|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGOUT', record_id='$user', event_code='USER FORCED LOGOUT FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Χρήστης login time: $last_action_sec|Ώρα ρολόι ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-out the user: $user - $full_name<BR>Amount of time user was logged-in: $totTIME_HMS"; + } + + if ($LOG_run < 1) + {$VDdisplayMESSAGE = "ERROR: timeclock log problem, could not process: $status|$stage";} + + echo "$VDdisplayMESSAGE\n"; + + exit; + } + +##### END TIMECLOCK LOGOUT OF A USER ##### + +if ($agents_to_print > 0) + { + echo "<BR>\n"; + echo "$user - $full_name \n"; + echo "       GROUP: $user_group <BR>\n"; + + echo "<TABLE CELLPADDING=0 CELLSPACING=0>"; + echo "<TR><TD ALIGN=RIGHT>Agent Logged in at server:</TD><TD ALIGN=LEFT>   $Aserver_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>in session:</TD><TD ALIGN=LEFT>   $Asession_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>from phone:</TD><TD ALIGN=LEFT>   $Aextension</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Agent is in campaign:</TD><TD ALIGN=LEFT>   $Acampaign</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} + echo "</TABLE>\n<BR>\n"; + + if ($change_agent_campaign > 0) + { + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; + echo "Current Εκστρατεία: <SELECT SIZE=1 NAME=group>\n"; + $o=0; + while ($groups_to_print > $o) + { + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; + + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"log_agent_out\">\n"; + echo "<input type=submit name=submit value=\"EMERGENCY LOG ΧΕΙΡΙΣΤΗΣOUT\"><BR></form>\n"; + } + } + +else + { + echo "Agent is not logged in\n<BR>"; + } + +echo "\n<BR>"; + +if ( ($Tstatus == "LOGIN") or ($Tstatus == "START") ) + { + echo "Χρήστης $user($full_name) - is logged in to the timeclock. <BR>Login time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_OUT'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER OUT'; + } +else + { + echo "Χρήστης $user($full_name) - is NOT logged in to the timeclock. <BR>Last logout time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_IN'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER IN'; + } + +if ($modify_timeclock_log > 0) + { + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"$TC_log_change_stage\">\n"; + echo "<input type=submit name=submit value=\"$TC_log_change_button\"><BR></form>\n"; + echo "<BR><BR>\n"; + } + + +$REPORTdate = date("Y-m-d"); +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Ώρα Φύλλο</a>\n"; +echo " | <a href=\"./user_stats.php?user=$user\">Στατιστικά Χρήστη</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Τροποποίηση Χρήστη</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">Χρήστης multiple day status detail report</a>"; +echo "</center>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_territories.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vdremote.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vdremote.php new file mode 100644 index 00000000..70d6f9c9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vdremote.php @@ -0,0 +1,591 @@ + LICENSE: AGPLv2 +# +# Changes +# 50307-1721 - First version +# 51123-1502 - removed requirement of PHP Globals=on +# 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 +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes +# + +$version = '2.2.0'; +$build = '91129-2249'; + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_GET["ΕΠΙΒΕΒΑΙΩΣΗ"];} + elseif (isset($_POST["ΕΠΙΒΕΒΑΙΩΣΗ"])) {$ΕΠΙΒΕΒΑΙΩΣΗ=$_POST["ΕΠΙΒΕΒΑΙΩΣΗ"];} + +if (!isset($force_logout)) {$force_logout = 0;} + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Έχετε αποσυνδεθεί. Σας ευχαριστούμε\n"; + 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'; +$STARTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + $stmt="SELECT count(*) from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $authx=$row[0]; + + if($authx>0) + { + $stmt="SELECT remote_agent_id,server_ip,number_of_lines from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id=$row[0]; + $server_ip=$row[1]; + if (!$number_of_lines) {$number_of_lines=$row[2];} + + fwrite ($fp, "VDremote|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + echo "This remote agent does not exist: |$PHP_AUTH_USER|\n"; + exit; + } + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +if ($ADD==61111) + { + echo"\n"; + } +echo "\n"; +?> + +ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ: $LOGfullname - $PHP_AUTH_USER "; + +if (!$ADD) {$ADD="31111";} +if ($ADD==31111) {echo "Τροποποίηση Απομακρυσμένων Χειριστών";} +if ($ADD==41111) {echo "Τροποποίηση Απομακρυσμένων Χειριστών";} +if ($ADD==61111) {echo "Remote Agent Status";} +if ($ADD==71111) {echo "Remote Agent Closer Stats";} + + +if (strlen($ADD)>4) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "\n"; + $o++; + } + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get inbound groups listing for checkboxes + if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $groups_list .= "2) {$groups_value .= " -";} + } + +?> + + + +
+ + + + +
  ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ:   Αποσύνδεση  
  ΤΡΟΠΟΠΟΙΗΣΗ | ">ΚΑΤΑΣΤΑΣΗ | ">ΣΤΑΤΙΣΤΙΚΑ ΕΙΣΕΡΧΟΜΕΝΩΝ
+"; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρήστη Ξεκινά: $user_start
Αριθμός Γραμμών: (μόνο αριθμοί)
IP Διακομιστή: $row[3]
Εξωτερική Τηλ. Σύνδεση: (number dialed to reach agents [i.e. 913125551212])
Κατάσταση:
Εκστρατεία: $campaign_id
Εισερχόμενες Ομάδες: \n"; + echo "$groups_list"; + echo "
\n"; + echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; + } + + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + echo ""; + + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + {echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε\n";} + else + { + $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); + +# echo "$stmt\n"; + echo "
ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ\n"; + + ### LOG CHANGES TO LOG FILE ### + $fp = fopen ("./admin_changes_log.txt", "a"); + fwrite ($fp, "$date|MODIFY ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); + fclose($fp); + } + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Χρήστη Ξεκινά: $user_start
Αριθμός Γραμμών: (μόνο αριθμοί)
IP Διακομιστή: $row[3]
Εξωτερική Τηλ. Σύνδεση: (number dialed to reach agents [i.e. 913125551212])
Κατάσταση:
Εκστρατεία: $campaign_id
Εισερχόμενες Ομάδες: \n"; + echo "$groups_list"; + echo "
\n"; + echo "ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης\n"; + } + + + +###################### +# ADD=61111 status of remote agent in the system and active calls and queue +###################### + +if ($ADD==61111) + { + echo "
";
+
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+		{echo "
ΛΑΘΟΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'" . mysql_real_escape_string($nextuser) . "',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' and user IN($users_list) order by extension;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $leadlink=0; + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[4])) + { + $row[3]=''; + $row[5]='- ΑΝΑΜΟΝΗ -'; + $row[6]=$row[7]; + } + $extension = sprintf("%-10s", $row[0]); + $user = sprintf("%-6s", $row[1]); + $leadid = sprintf("%-12s", $row[2]); + if ($row[2] > 0) + { + $leadidLINK=$row[2]; + $leadlink++; + if ( eregi("QUEUE",$row[4]) ) {$row[6]=$STARTtime;} + $leadid = "$leadid"; + } + $channel = sprintf("%-10s", $row[3]); + $cc=0; + while ( (strlen($channel) > 10) and ($cc < 100) ) + { + $channel = eregi_replace(".$","",$channel); + $cc++; + if (strlen($channel) <= 10) {$cc=101;} + } + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = ($STARTtime - $row[6]); + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$extension$EG | $G$user$EG | $G$leadid$EG | $G$channel$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i Χειριστές συνδεμένοι στον διακομιστή $server_ip\n\n"; + + echo " - 5 λεπτά ή παραπάνω σε κλήση\n"; + echo " - Πάνω από 10 λεπτά σε κλήση\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "********************************* ΚΑΝΕΝΑΣ ΧΕΙΡ. ΣΕ ΚΛΗΣΕΙΣ *********************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
\n\n"; + } + + +###################### +# ADD=71111 stats for remote agents from closer logs(vicidial_closer_log) +###################### + +if ($ADD==71111) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n\n"; + echo "
";
+
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+		{echo "
ΛΑΘΟΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'$nextuser',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + $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 user IN($users_list);"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $in_calls = $row[0]; + $in_time = $row[1]; + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); + + echo "Στατιστικά εισερχομένων απομακρυσμένου χειριστή $NOW_TIME\n\n"; + echo "\n"; + echo "Συνολικές κλήσεις που διακομίστηκαν$query_date: $in_calls\n"; + echo "Συνολικός χρόνος ομιλίας σε$query_date: $in_time_MS (minutes:seconds)\n"; + echo "\n"; + echo "\n"; + echo "Λίστα Κλήσεων για$query_date:\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + echo "| USER | LEADID | GROUP | PHONE NUM | STATUS | CALL TIME | MINUTES |\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + + + $stmt="select user,lead_id,campaign_id,phone_number,status,call_date,length_in_sec from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and user IN($users_list) order by call_date;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + $user = sprintf("%-8s", $row[0]); + $leadid = sprintf("%-10s", $row[1]); + $group = sprintf("%-14s", $row[2]); + $phone = sprintf("%-10s", $row[3]); + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = $row[6]; + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + # if ($call_time_M_int >= 5) {$G=''; $EG='';} + # if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$user$EG | $G$leadid$EG | $G$group$EG | $G$phone$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; + +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "*********************************ΔΕΝ ΥΠΑΡΧΟΥΝ ΚΛΗΣΕΙΣ ΓΙΑ ΑΥΤΗ ΤΗΝ ΗΜΕΡΑ*******************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
\n\n"; + } + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nχρόνος εκτέλεσης διαδικασίας: $RUNtime seconds
"; + + +?> + + +
+ + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_admin_web_logo.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_admin_web_logo.gif new file mode 100644 index 00000000..8c5a9d22 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_admin_web_logo.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_admin_web_logo_small.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_admin_web_logo_small.gif new file mode 100644 index 00000000..95738d49 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_admin_web_logo_small.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_sales_viewer.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_sales_viewer.php new file mode 100644 index 00000000..6d0668cf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vicidial_sales_viewer.php @@ -0,0 +1,258 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 80310-1500 - first build +# 90310-2135 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +if (isset($_GET["dcampaign"])) {$dcampaign=$_GET["dcampaign"];} + elseif (isset($_POST["dcampaign"])) {$dcampaign=$_POST["dcampaign"];} +if (isset($_GET["submit_report"])) {$submit_report=$_GET["submit_report"];} + elseif (isset($_POST["submit_report"])) {$submit_report=$_POST["submit_report"];} +if (isset($_GET["list_ids"])) {$list_ids=$_GET["list_ids"];} + elseif (isset($_POST["list_ids"])) {$list_ids=$_POST["list_ids"];} +if (isset($_GET["sales_number"])) {$sales_number=$_GET["sales_number"];} + elseif (isset($_POST["sales_number"])) {$sales_number=$_POST["sales_number"];} +if (isset($_GET["sales_time_frame"])) {$sales_time_frame=$_GET["sales_time_frame"];} + elseif (isset($_POST["sales_time_frame"])) {$sales_time_frame=$_POST["sales_time_frame"];} +if (isset($_GET["forc"])) {$forc=$_GET["forc"];} + elseif (isset($_POST["forc"])) {$forc=$_POST["forc"];} + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + +$PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); +$PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +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 "Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +?> + + +Recent Sales Lookup + + + + + +
"; +?> + +
+ + + + + + + + + + + + + + + + + + + + + +
Vicidial ΕΞΕΡΧΟΜΕΝΟ recent sales report               Back to Admin +
+ + + + + + + + + + +
Select a campaign:
Select list ID(s) # (optional):
+
View sales made within the last OR...View the last sales**
(If you enter values in both fields, the results will be limited by the first criteria met)
Εκστρατεία is:    Transfer  Non-transfer
** - sorted by call date
+
+0)) { $list_id_clause.="$lists[$i], "; } + } + $list_id_clause=substr($list_id_clause, 0, -2); + $list_id_clause.=")"; + + if ($sales_number && $sales_number>0) { + $sales_number=eregi_replace("[^0-9]", "", $sales_number); + $limit_clause="limit $sales_number"; + } else { + $sales_number=0; + $limit_clause=""; + } + if ($sales_time_frame && $sales_time_frame>0) { + $hours=$sales_time_frame/60; + $timestamp=date("YmdHis", mktime(date("H"),(date("i")-$sales_time_frame),date("s"),date("m"),date("d"),date("Y"))); + } else { + $timestamp=date("YmdHis", mktime(date("H"),date("i"),date("s"),date("m"),(date("d")-1),date("Y"))); + $hours=24; + } + print "
"; + print ""; + $i=0; + + $dfile=fopen("discover_stmts.txt", "w"); + if ($forc=="C") { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, u.full_name from vicidial_users u, vicidial_list v, vicidial_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause and vl.user=u.user order by call_date desc $limit_clause"; + } else { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, vl.user, vl.closer from vicidial_list v, vicidial_xfer_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause order by call_date desc $limit_clause"; + } + fwrite($dfile, "$stmt\n"); + $rslt=mysql_query($stmt, $link); + $q=0; + print "\n"; + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + while ($row=mysql_fetch_row($rslt)) { + $rec_stmt="select max(recording_id) from recording_log where lead_id='$row[4]'"; + $rec_rslt=mysql_query($rec_stmt, $link); + $rec_row=mysql_fetch_row($rec_rslt); + + if ($forc=="F") { + $rep_stmt="select full_name from vicidial_users where user='$row[5]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $fr_row=mysql_fetch_array($rep_rslt); + + $rep_stmt="select full_name from vicidial_users where user='$row[6]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $cl_row=mysql_fetch_array($rep_rslt); + + $rep_name="$fr_row[full_name]/$cl_row[full_name]"; + } else { + $rep_name=$row[5]; + } + + if ($i%2==0) {$bgcolor="#999999";} else {$bgcolor="#CCCCCC";} + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + flush(); + } + print "
Last ".mysql_num_rows($rslt)." sales made
Sales Rep(s)Customer NamePhoneRecording IDTimestamp
$rep_name$row[0] $row[1]$row[2]$rec_row[0]$row[3]
"; + passthru("$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign"); +# print "\n\n
$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign
\n"; + flush(); + print ""; + if ($forc=="F") { + print ""; + } + print ""; + print "
View complete Excel fronter report for this shiftView complete Excel sales report for this shift
"; +} +?> + +
+ + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vtiger_search.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vtiger_search.php new file mode 100644 index 00000000..6636a431 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vtiger_search.php @@ -0,0 +1,885 @@ + LICENSE: AGPLv2 +# +# This page does a search against a standard vtiger CRM system. If the record +# is not present, it will create a new one and send the agent's screen to that new page. +# +# This code is tested against vtiger 5.0.4 and 5.1.0 +# +# CHANGES +# 60719-1615 - First version +# 60801-2304 - Added mysql debug and auto-forward +# 60802-1111 - Added insertion of not-found record into vtiger system +# 71220-0000 - Modified by I. Taushanov for VTiger 5.03- search/create lead +# 80120-1934 - Added changes for compatibility with vtiger 5.0.3 +# 81229-1017 - Added usage of system_settings connection settings for vtiger database +# 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD +# 90111-1451 - Added logging of call as activity for account/lead +# 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$HHMMnow = date("H:i"); +$minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); +$HHMMend = date("H:i",$minute_old); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger Lookup\n"; +echo "\n"; + + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$vtc_conf_ct = mysql_num_rows($rslt); +if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + } +if (strlen($vtiger_search_category)<1) + {$vtiger_search_category = 'LEAD';} + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo 'Connected successfully'; +mysql_select_db("$vtiger_dbname", $linkV); + +# Methods of searching for records: +# +# ACCTID: +# $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; +# +# ACCOUNT: +# $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; +# +# VENDOR: +# $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; +# +# LEAD: +# $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; + +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} + + + +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + + + +########################################################################## +##### BEGIN - ACCTID - Search in the account records for accountid number +########################################################################## +if ($acctid_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCTID|$vendor_id|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - ACCTID - Search in the account records for accountid number +########################################################################## + + +########################################################################## +##### BEGIN - ACCOUNT - Search in the account records for phone number +########################################################################## +if ($account_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_account\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_contactdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_contactsubdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_contact + $stmt="SELECT contactsubscriptionid from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $contactid = $row[0]; + + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where contactid='$contactid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + if (strlen($accountid) > 0) + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - ACCOUNT - Search in the account records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - VENDOR - Search in the vendor records for phone number +########################################################################## +if ($vendor_search > 0) + { + $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nVENDOR|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_vendor + $stmt="SELECT vendorid from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $vendorid = $row[0]; + + # http://mysite.com/vtigercrm/index.php?module=Vendors&action=DetailView&record=2&parenttab=Inventory + $account_URL = "$vtiger_url/index.php?module=Vendors&action=DetailView&record=$vendorid&parenttab=Inventory"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+		echo "account found! VENDOR\n";
+		echo "vendorid:   $vendorid\n";
+		echo "phone:       $phone\n";
+		echo "

"; + exit; + } + } +########################################################################## +##### END - VENDOR - Search in the vendor records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - LEAD - Search in the leads records for phone number +########################################################################## +if ($lead_search > 0) + { + $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nLEAD|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + if (ereg('Y',$vtiger_create_lead_record)) + { + echo "\n"; + echo "\n"; + echo "
\n"; + echo "$phone not found, creating account...\n"; + + $DB=1; + + #Get logged in user ID + if ($DB) {echo "
";}
+			$stmt="SELECT id from vtiger_users where user_name='$user';";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			$row=mysql_fetch_row($rslt);
+			$user_id = $row[0];
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Vtiger no longer use auto increment for vtiger_crmentity crmid, vtiger_crmentity_seq is used instead to list next aviable entity ID
+			# Get next aviable id to use as  crmid in vtiger_crmentity	
+			$stmt="SELECT id from vtiger_crmentity_seq ;";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			$row=mysql_fetch_row($rslt);
+			$leadid = ($row[0] + 1);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			# Increase 	next aviable crmid with 1 so next record gets proper id
+			$stmt="UPDATE vtiger_crmentity_seq SET id = '$leadid';";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Insert values into vtiger_crmentity
+			$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$leadid', '$user_id', '$user_id','$user_id', 'Leads', '(Memo)', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if ($DB) {echo "|$leadid|\n";}
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leaddetails	
+			$stmt = "INSERT INTO vtiger_leaddetails (leadid,firstname,lastname,company) values('$leadid','$first_name','$last_name','$first_name $last_name');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leaddetails
+			$stmt = "INSERT INTO vtiger_leadaddress (leadaddressid,city,code,state,country,phone,mobile,lane) values('$leadid','$city','$postal_code','$province','$country','$phone','$alt_phone','$address1 $address2');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leadsubdetails	
+			$stmt = "INSERT INTO vtiger_leadsubdetails (leadsubscriptionid) VALUES ('$leadid');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Insert values into vtiger_leadscf, these are custom created fields example	
+			$stmt = "INSERT INTO vtiger_leadscf (leadid) VALUES ('$leadid');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			if ($DB) {echo "DONE creating lead records\n";}
+
+			if (ereg('Y',$vtiger_create_call_record))
+				{
+				### Log the call in Vtiger
+
+				#Get logged in user ID
+				$stmt="SELECT id from vtiger_users where user_name='$user';";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				$row=mysql_fetch_row($rslt);
+				$user_id = $row[0];
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				# Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity	
+				$stmt="SELECT id from vtiger_crmentity_seq ;";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				$row=mysql_fetch_row($rslt);
+				$activityid = ($row[0] + 1);
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+				# Increase next aviable crmid with 1 so next record gets proper id
+				$stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_salesmanactivityrel
+				$stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_seactivityrel
+				$stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_crmentity
+				$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+				#Insert values into vtiger_activity
+				$stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+
+				# http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales
+				$account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales";
+				}
+			else
+				{
+				# http://mysite.com/vtigercrm/index.php?module=Accounts&action=EditView&record=2&parenttab=Sales
+				$account_URL = "$vtiger_url/index.php?module=Leads&action=EditView&record=$leadid&parenttab=Sales";
+				}
+
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "
\n"; + + echo "
";
+			echo "account created! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + else + { + $stmt="SELECT leadaddressid from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $leadid = $row[0]; + + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - LEAD - Search in the leads records for phone number +########################################################################## + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n
$phone NOT FOUND

\n\n"; +echo "Click here to go to the Vtiger home page\n"; + +# echo "\n\n\n


\nscript runtime: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vtiger_user.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vtiger_user.php new file mode 100644 index 00000000..f53a989a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/vtiger_user.php @@ -0,0 +1,317 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81231-1307 - First build +# 90228-2152 - Added Groups support +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger user synchronization utility\n"; +echo "\n"; + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +##### grab the existing user_groups in the vicidial_user_groups table +$stmt="SELECT user_group,group_name FROM vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_groups_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $UGid[$i] = $row[0]; + $UGname[$i] = $row[1]; + $i++; + } + +##### grab the existing users in the vicidial_users table +$stmt="SELECT user,pass,full_name,user_level,active,user_group FROM vicidial_users;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_users_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_users_ct) + { + $row=mysql_fetch_row($rslt); + $user[$i] = $row[0]; + $pass[$i] = $row[1]; + $full_name[$i] = $row[2]; while (strlen($full_name[$i])>30) {$full_name[$i] = eregi_replace(".$",'',$full_name[$i]);} + $user_level[$i] = $row[3]; + $active[$i] = $row[4]; + $user_group[$i] = $row[5]; + $i++; + } + + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo "Connected successfully\n
\n"; +mysql_select_db("$vtiger_dbname", $linkV); + + +########################## +### BEGIN Group export +$i=0; +while ($i < $VD_groups_ct) + { + $VTgroup_name = $UGid[$i]; + $VTgroup_description = $UGname[$i]; + + $stmt="SELECT count(*) from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, grab groupid, update description + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + $VTugID[$i] = $groupid; + + $stmtA = "UPDATE vtiger_groups SET description='$VTgroup_description' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
\n"; + echo "
\n"; + } + + ### group doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $VTugID[$i] = $groupid; + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$VTgroup_name',description='$VTgroup_description';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
\n"; + echo "
\n"; + #### END CREATE NEW GROUP RECORD IN VTIGER + } + $i++; + } +### END Group export +########################## + + + +########################## +### BEGIN User export +$i=0; +while ($i < $VD_users_ct) + { + $user_name = $user[$i]; + $VUgroup = $user_group[$i]; + $user_password = $pass[$i]; + $last_name = $full_name[$i]; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level[$i] >= 7) {$roleid = 'H4';} + if ($user_level[$i] >= 8) {$roleid = 'H3';} + if ($user_level[$i] >= 9) {$roleid = 'H2';} + if ($user_level[$i] >= 9) {$is_admin = 'on';} + if (ereg('N',$active[$i])) {$status = 'Inactive';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + $i++; + + $j=0; + $all_VICIDIAL_groups_SQL=''; + while ($j < $VD_groups_ct) + { + if ( (eregi("$UGid[$j]",$VUgroup)) and ( (strlen($UGid[$j]))==(strlen($VUgroup)) ) ) + { + $groupid = $VTugID[$j]; + $VTgroup_name = $UGid[$j]; + $VTgroup_description = $UGname[$j]; + } + else + {$all_VICIDIAL_groups_SQL .= "'$VTugID[$j]',";} + $j++; + } + $all_VICIDIAL_groups_SQL = preg_replace("/.$/",'',$all_VICIDIAL_groups_SQL); + + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN($all_VICIDIAL_groups_SQL);"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + else + {$stmtC='';} + + echo "$user_name: $userid
\n"; + echo "$stmtA
\n"; + echo "$stmtB
\n"; + echo "$stmtC
\n"; + echo "$stmtD
\n"; + echo "
\n"; + + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "$user_name:
\n"; + echo "$stmtA
\n"; + echo "$stmtB
\n"; + echo "$stmtC
\n"; + echo "$stmtD
\n"; + echo "
\n"; + #### END CREATE NEW USER RECORD IN VTIGER + } + + + } +### END User export +########################## + + + + + +echo "DONE\n"; + +exit; + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome.php new file mode 100644 index 00000000..44767cb8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome.php @@ -0,0 +1,26 @@ + LICENSE: AGPLv2 +# + +echo "ViciDial Καλωσήρθες\n"; +echo "\n"; +echo "\n"; +echo "




"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Υποδοχή
 
Agent Login
 
Ώρα ρολόι
 
Administration
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome_demo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome_demo.php new file mode 100644 index 00000000..238cf5cf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome_demo.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



"; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
 
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Agent Login"; +echo "
"; +echo "   Spanish Agent Login"; +echo "
"; +echo "   German Agent Login"; +echo "
"; +echo "   Italian Agent Login"; +echo "
"; +echo "   Greek Agent Login"; +echo "
"; +echo "   French Agent Login"; +echo "
"; +echo "   Brazillian Portuguese Agent Login"; +echo "
"; +echo "   Portuguese Agent Login"; +echo "
"; +echo "   Polish Agent Login"; +echo "
"; +echo "   Slovak Agent Login"; +echo "
"; +echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; +echo "
\n"; + +echo "
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Administration"; +echo "
"; +echo "   Spanish Administration"; +echo "
"; +echo "   German Administration"; +echo "
"; +echo "   Italian Administration"; +echo "
"; +echo "   Greek Administration"; +echo "
"; +echo "   French Administration"; +echo "
\n"; +echo "
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome_languages.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome_languages.php new file mode 100644 index 00000000..d53707a9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_el/welcome_languages.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



"; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
 
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Agent Login"; +echo "
"; +echo "   Spanish Agent Login"; +echo "
"; +echo "   German Agent Login"; +echo "
"; +echo "   Italian Agent Login"; +echo "
"; +echo "   Greek Agent Login"; +echo "
"; +echo "   French Agent Login"; +echo "
"; +echo "   Brazillian Portuguese Agent Login"; +echo "
"; +echo "   Portuguese Agent Login"; +echo "
"; +echo "   Polish Agent Login"; +echo "
"; +echo "   Slovak Agent Login"; +echo "
"; +echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; +echo "
\n"; + +echo "
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Administration"; +echo "
"; +echo "   Spanish Administration"; +echo "
"; +echo "   German Administration"; +echo "
"; +echo "   Italian Administration"; +echo "
"; +echo "   Greek Administration"; +echo "
"; +echo "   French Administration"; +echo "
\n"; +echo "
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_en/admin.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_en/admin.php new file mode 100644 index 00000000..c29afe44 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_en/admin.php @@ -0,0 +1,29 @@ +\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"click here to continue. . .\n"; +echo"\n"; + +exit; +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSER_service_level.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSER_service_level.php new file mode 100644 index 00000000..ac7d0a52 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSER_service_level.php @@ -0,0 +1,959 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80509-0943 - First build +# 80510-1500 - Added fixed scale hold time graph +# 80519-0413 - rewrote time intervals code and stats gathering code +# 80528-2320 - fixed small calculation bugs and display bugs, added more shifts +# 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Service Level Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo " to \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFICAR | INFORMES \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "POR FAVOR SELECCIONE UN GRUPO EN EL PÁRRAFO ANTERIOR Y FECHA DE RANGO y haga clic en Enviar\n";
+	}
+
+else
+{
+### FOR SHIFTS IT IS BEST TO STICK TO 15-MINUTE INCREMENTS FOR START TIMES ###
+
+if ($shift == 'AM') 
+	{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}   
+	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+	}
+if ($shift == 'PM') 
+	{
+#	$time_BEGIN=$PM_shift_BEGIN;
+#	$time_END=$PM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+#	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'DAYTIME') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '10AM-6PM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "10:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:59:59";}
+	}
+if ($shift == '9AM-1AM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "09:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '845-1745') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:44:59";}
+	}
+if ($shift == '1745-100') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "17:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+$SQdate_ARY =	explode(' ',$query_date_BEGIN);
+$SQday_ARY =	explode('-',$SQdate_ARY[0]);
+$SQtime_ARY =	explode(':',$SQdate_ARY[1]);
+$EQdate_ARY =	explode(' ',$query_date_END);
+$EQday_ARY =	explode('-',$EQdate_ARY[0]);
+$EQtime_ARY =	explode(':',$EQdate_ARY[1]);
+
+$SQepochDAY = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$SQepoch = mktime($SQtime_ARY[0], $SQtime_ARY[1], $SQtime_ARY[2], $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime($EQtime_ARY[0], $EQtime_ARY[1], $EQtime_ARY[2], $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+$SQsec = ( ($SQtime_ARY[0] * 3600) + ($SQtime_ARY[1] * 60) + ($SQtime_ARY[2] * 1) );
+$EQsec = ( ($EQtime_ARY[0] * 3600) + ($EQtime_ARY[1] * 60) + ($EQtime_ARY[2] * 1) );
+
+$DURATIONsec = ($EQepoch - $SQepoch);
+$DURATIONday = intval( ($DURATIONsec / 86400) + 1 );
+
+if ( ($EQsec < $SQsec) and ($DURATIONday < 1) )
+	{
+	$EQepoch = ($SQepochDAY + ($EQsec + 86400) );
+	$query_date_END = date("Y-m-d H:i:s", $EQepoch);
+	$DURATIONday++;
+	}
+
+echo "Inbound Service Level Report                      $NOW_TIME\n";
+echo "\n";
+echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
+#echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	$dSQepoch = ($SQepoch + ($d * 86400) );
+	$dEQepoch = ($SQepochDAY + ($EQsec + ($d * 86400) ) );
+
+	if ($EQsec < $SQsec)
+		{
+		$dEQepoch = ($dEQepoch + 86400);
+		}
+
+	$daySTART[$d] = date("Y-m-d H:i:s", $dSQepoch);
+	$dayEND[$d] = date("Y-m-d H:i:s", $dEQepoch);
+
+	$d++;
+	}
+
+##########################################################################
+#########  CALCULATE ALL OF THE 15-MINUTE PERIODS NEEDED FOR ALL DAYS ####
+
+### BUILD HOUR:MIN DISPLAY ARRAY ###
+$i=0;
+$h=4;
+$j=0;
+$Zhour=1;
+$active_time=0;
+$hour =		($SQtime_ARY[0] - 1);
+$startSEC = ($SQsec - 900);
+$endSEC =	($SQsec - 1);
+if ($SQtime_ARY[1] > 14) 
+	{
+	$h=1;
+	$hour++;
+	if ($hour < 10) {$hour = "0$hour";}
+	}
+if ($SQtime_ARY[1] > 29) {$h=2;}
+if ($SQtime_ARY[1] > 44) {$h=3;}
+while ($i < 96)
+	{
+	$startSEC = ($startSEC + 900);
+	$endSEC = ($endSEC + 900);
+	$time = '      ';
+	if ($h >= 4)
+		{
+		$hour++;
+		if ($Zhour == '00') 
+			{
+			$startSEC=0;
+			$endSEC=899;
+			}
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$Stime="$hour:00";
+		$Etime="$hour:15";
+		$time = "+$Stime-$Etime+";
+		}
+	if ($h == 1)
+		{
+		$Stime="$hour:15";
+		$Etime="$hour:30";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 2)
+		{
+		$Stime="$hour:30";
+		$Etime="$hour:45";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 3)
+		{
+		$Zhour=$hour;
+		$Zhour++;
+		if ($Zhour < 10) {$Zhour = "0$Zhour";}
+		if ($Zhour == 24) {$Zhour = "00";}
+		$Stime="$hour:45";
+		$Etime="$Zhour:00";
+		$time = " $Stime-$Etime ";
+		if ($Zhour == '00') 
+			{$hour = ($Zhour - 1);}
+		}
+
+	if ( ( ($startSEC >= $SQsec) and ($endSEC <= $EQsec) and ($EQsec > $SQsec) ) or 
+		( ($startSEC >= $SQsec) and ($EQsec < $SQsec) ) or 
+		( ($endSEC <= $EQsec) and ($EQsec < $SQsec) ) )
+		{
+		$HMdisplay[$j] =	$time;
+		$HMstart[$j] =		$Stime;
+		$HMend[$j] =		$Etime;
+		$HMSepoch[$j] =		$startSEC;
+		$HMEepoch[$j] =		$endSEC;
+
+		$j++;
+		}
+
+	$h++;
+	$i++;
+	}
+
+$TOTintervals = $j;
+
+
+### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
+$stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$records_to_grab = mysql_num_rows($rslt);
+$i=0;
+while ($i < $records_to_grab)
+	{
+	$row=mysql_fetch_row($rslt);
+	$qs[$i] = $row[0];
+	$dt[$i] = 0;
+	$ut[$i] = ($row[1] - $SQepochDAY);
+	while($ut[$i] >= 86400) 
+		{
+		$ut[$i] = ($ut[$i] - 86400);
+		$dt[$i]++;
+		}
+	if ( ($ut[$i] <= $EQsec) and ($EQsec < $SQsec) )
+		{
+		$dt[$i] = ($dt[$i] - 1);
+		}
+	$ls[$i] = $row[2];
+	$st[$i] = $row[3];
+
+#	echo "$qs[$i] $dt[$i] $ut[$i] $ls[$i] $st[$i]\n";
+
+	$i++;
+	}
+
+### PARSE THROUGH ALL RECORDS AND GENERATE STATS ###
+$MT[0]='0';
+$totCALLS=0;
+$totDROPS=0;
+$totQUEUE=0;
+$totCALLSsec=0;
+$totDROPSsec=0;
+$totQUEUEsec=0;
+$totCALLSmax=0;
+$totDROPSmax=0;
+$totQUEUEmax=0;
+$totCALLSdate=$MT;
+$totDROPSdate=$MT;
+$totQUEUEdate=$MT;
+$qrtCALLS=$MT;
+$qrtDROPS=$MT;
+$qrtQUEUE=$MT;
+$qrtCALLSsec=$MT;
+$qrtDROPSsec=$MT;
+$qrtQUEUEsec=$MT;
+$qrtCALLSavg=$MT;
+$qrtDROPSavg=$MT;
+$qrtQUEUEavg=$MT;
+$qrtCALLSmax=$MT;
+$qrtDROPSmax=$MT;
+$qrtQUEUEmax=$MT;
+$j=0;
+while ($j < $TOTintervals)
+	{
+	$jd__0[$j]=0; $jd_20[$j]=0; $jd_40[$j]=0; $jd_60[$j]=0; $jd_80[$j]=0; $jd100[$j]=0; $jd120[$j]=0; $jd121[$j]=0;
+	$Phd__0[$j]=0; $Phd_20[$j]=0; $Phd_40[$j]=0; $Phd_60[$j]=0; $Phd_80[$j]=0; $Phd100[$j]=0; $Phd120[$j]=0; $Phd121[$j]=0;
+	$qrtCALLS[$j]=0; $qrtCALLSsec[$j]=0; $qrtCALLSmax[$j]=0;
+	$qrtDROPS[$j]=0; $qrtDROPSsec[$j]=0; $qrtDROPSmax[$j]=0;
+	$qrtQUEUE[$j]=0; $qrtQUEUEsec[$j]=0; $qrtQUEUEmax[$j]=0;
+	$i=0;
+	while ($i < $records_to_grab)
+		{
+		if ( ($ut[$i] >= $HMSepoch[$j]) and ($ut[$i] <= $HMEepoch[$j]) )
+			{
+			$totCALLS++;
+			$totCALLSsec = ($totCALLSsec + $ls[$i]);
+			$totCALLSsecDATE[$dtt] = ($totCALLSsecDATE[$dtt] + $ls[$i]);
+			$qrtCALLS[$j]++;
+			$qrtCALLSsec[$j] = ($qrtCALLSsec[$j] + $ls[$i]);
+			$dtt = $dt[$i];
+			$totCALLSdate[$dtt]++;
+			if ($totCALLSmax < $ls[$i]) {$totCALLSmax = $ls[$i];}
+			if ($qrtCALLSmax[$j] < $ls[$i]) {$qrtCALLSmax[$j] = $ls[$i];}
+			if (ereg('DROP',$st[$i])) 
+				{
+				$totDROPS++;
+				$totDROPSsec = ($totDROPSsec + $ls[$i]);
+				$totDROPSsecDATE[$dtt] = ($totDROPSsecDATE[$dtt] + $ls[$i]);
+				$qrtDROPS[$j]++;
+				$qrtDROPSsec[$j] = ($qrtDROPSsec[$j] + $ls[$i]);
+				$totDROPSdate[$dtt]++;
+				if ($totDROPSmax < $ls[$i]) {$totDROPSmax = $ls[$i];}
+				if ($qrtDROPSmax[$j] < $ls[$i]) {$qrtDROPSmax[$j] = $ls[$i];}
+				}
+			if ($qs[$i] > 0) 
+				{
+				$totQUEUE++;
+				$totQUEUEsec = ($totQUEUEsec + $qs[$i]);
+				$totQUEUEsecDATE[$dtt] = ($totQUEUEsecDATE[$dtt] + $qs[$i]);
+				$qrtQUEUE[$j]++;
+				$qrtQUEUEsec[$j] = ($qrtQUEUEsec[$j] + $qs[$i]);
+				$totQUEUEdate[$dtt]++;
+				if ($totQUEUEmax < $qs[$i]) {$totQUEUEmax = $qs[$i];}
+				if ($qrtQUEUEmax[$j] < $qs[$i]) {$qrtQUEUEmax[$j] = $qs[$i];}
+				}
+
+			if ($qs[$i] == 0) {$hd__0[$j]++;}
+			if ( ($qs[$i] > 0) and ($qs[$i] <= 20) ) {$hd_20[$j]++;}
+			if ( ($qs[$i] > 20) and ($qs[$i] <= 40) ) {$hd_40[$j]++;}
+			if ( ($qs[$i] > 40) and ($qs[$i] <= 60) ) {$hd_60[$j]++;}
+			if ( ($qs[$i] > 60) and ($qs[$i] <= 80) ) {$hd_80[$j]++;}
+			if ( ($qs[$i] > 80) and ($qs[$i] <= 100) ) {$hd100[$j]++;}
+			if ( ($qs[$i] > 100) and ($qs[$i] <= 120) ) {$hd120[$j]++;}
+			if ($qs[$i] > 120) {$hd121[$j]++;}
+
+			}
+		
+		$i++;
+		}
+
+	$j++;
+	}
+
+
+
+
+###################################################
+### TOTALS SUMMARY SECTION ###
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                           |        |        |        |        |        |  AVG   |  AVG   |        |  TOTAL   |  AVG   |\n";
+echo "| SHIFT                                     |        |        |  AVG   |        |        | HOLD(s)| HOLD(s)|        | CALLTIME |CALLTIME|\n";
+echo "| DATE-TIME RANGE                           | DROPS  | DROP % | DROP(s)| HOLD   | HOLD % |  HOLD  | TOTAL  | CALLS  | MIN:SEC  |SECONDS |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	if ($totDROPSdate[$d] < 1) {$totDROPSdate[$d]=0;}
+	if ($totQUEUEdate[$d] < 1) {$totQUEUEdate[$d]=0;}
+	if ($totCALLSdate[$d] < 1) {$totCALLSdate[$d]=0;}
+
+	if ($totDROPSdate[$d] > 0)
+		{$totDROPSpctDATE[$d] = ( ($totDROPSdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totDROPSpctDATE[$d] = 0;}
+	$totDROPSpctDATE[$d] = round($totDROPSpctDATE[$d], 2);
+	if ($totQUEUEdate[$d] > 0)
+		{$totQUEUEpctDATE[$d] = ( ($totQUEUEdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totQUEUEpctDATE[$d] = 0;}
+	$totQUEUEpctDATE[$d] = round($totQUEUEpctDATE[$d], 2);
+
+	if ($totDROPSsecDATE[$d] > 0)
+		{$totDROPSavgDATE[$d] = ($totDROPSsecDATE[$d] / $totDROPSdate[$d]);}
+	else {$totDROPSavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEavgDATE[$d] = ($totQUEUEsecDATE[$d] / $totQUEUEdate[$d]);}
+	else {$totQUEUEavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEtotDATE[$d] = ($totQUEUEsecDATE[$d] / $totCALLSdate[$d]);}
+	else {$totQUEUEtotDATE[$d] = 0;}
+
+	if ($totCALLSsecDATE[$d] > 0)
+		{
+		$totCALLSavgDATE[$d] = ($totCALLSsecDATE[$d] / $totCALLSdate[$d]);
+
+		$totTIME_M = ($totCALLSsecDATE[$d] / 60);
+		$totTIME_M_int = round($totTIME_M, 2);
+		$totTIME_M_int = intval("$totTIME_M");
+		$totTIME_S = ($totTIME_M - $totTIME_M_int);
+		$totTIME_S = ($totTIME_S * 60);
+		$totTIME_S = round($totTIME_S, 0);
+		if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+		$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+		$totTIME_MS =		sprintf("%8s", $totTIME_MS);
+		}
+	else 
+		{
+		$totCALLSavgDATE[$d] = 0;
+		$totTIME_MS='        ';
+		}
+
+	$totCALLSavgDATE[$d] =	sprintf("%6.0f", $totCALLSavgDATE[$d]);
+	$totDROPSavgDATE[$d] =	sprintf("%7.2f", $totDROPSavgDATE[$d]);
+	$totQUEUEavgDATE[$d] =	sprintf("%7.2f", $totQUEUEavgDATE[$d]);
+	$totQUEUEtotDATE[$d] =	sprintf("%7.2f", $totQUEUEtotDATE[$d]);
+	$totDROPSpctDATE[$d] =	sprintf("%6.2f", $totDROPSpctDATE[$d]);
+	$totQUEUEpctDATE[$d] =	sprintf("%6.2f", $totQUEUEpctDATE[$d]);
+	$totDROPSdate[$d] =	sprintf("%6s", $totDROPSdate[$d]);
+	$totQUEUEdate[$d] =	sprintf("%6s", $totQUEUEdate[$d]);
+	$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
+
+	echo "| $daySTART[$d] - $dayEND[$d] | $totDROPSdate[$d] | $totDROPSpctDATE[$d]%|$totDROPSavgDATE[$d] | $totQUEUEdate[$d] | $totQUEUEpctDATE[$d]%|$totQUEUEavgDATE[$d] |$totQUEUEtotDATE[$d] | $totCALLSdate[$d] | $totTIME_MS | $totCALLSavgDATE[$d] |\n";
+	$d++;
+	}
+
+	if ($totDROPS > 0)
+		{$totDROPSpct = ( ($totDROPS / $totCALLS) * 100);}
+	else {$totDROPSpct = 0;}
+	$totDROPSpct = round($totDROPSpct, 2);
+	if ($totQUEUE > 0)
+		{$totQUEUEpct = ( ($totQUEUE / $totCALLS) * 100);}
+	else {$totQUEUEpct = 0;}
+	$totQUEUEpct = round($totQUEUEpct, 2);
+
+	if ($totDROPSsec > 0)
+		{$totDROPSavg = ($totDROPSsec / $totDROPS);}
+	else {$totDROPSavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEavg = ($totQUEUEsec / $totQUEUE);}
+	else {$totQUEUEavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEtot = ($totQUEUEsec / $totCALLS);}
+	else {$totQUEUEtot = 0;}
+
+if ($totCALLSsec > 0)
+	{
+	$totCALLSavg = ($totCALLSsec / $totCALLS);
+
+	$totTIME_M = ($totCALLSsec / 60);
+	$totTIME_M_int = round($totTIME_M, 2);
+	$totTIME_M_int = intval("$totTIME_M");
+	$totTIME_S = ($totTIME_M - $totTIME_M_int);
+	$totTIME_S = ($totTIME_S * 60);
+	$totTIME_S = round($totTIME_S, 0);
+	if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+	$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+	$totTIME_MS =		sprintf("%9s", $totTIME_MS);
+	}
+else 
+	{
+	$totCALLSavg = 0;
+	$totTIME_MS='         ';
+	}
+
+
+	$FtotCALLSavg =	sprintf("%6.0f", $totCALLSavg);
+	$FtotDROPSavg =	sprintf("%7.2f", $totDROPSavg);
+	$FtotQUEUEavg =	sprintf("%7.2f", $totQUEUEavg);
+	$FtotQUEUEtot =	sprintf("%7.2f", $totQUEUEtot);
+	$FtotDROPSpct =	sprintf("%6.2f", $totDROPSpct);
+	$FtotQUEUEpct =	sprintf("%6.2f", $totQUEUEpct);
+	$FtotDROPS =	sprintf("%6s", $totDROPS);
+	$FtotQUEUE =	sprintf("%6s", $totQUEUE);
+	$FtotCALLS =	sprintf("%6s", $totCALLS);
+
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                    TOTALS | $FtotDROPS | $FtotDROPSpct%|$FtotDROPSavg | $FtotQUEUE | $FtotQUEUEpct%|$FtotQUEUEavg |$FtotQUEUEtot | $FtotCALLS |$totTIME_MS | $FtotCALLSavg |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+
+	## FORMAT OUTPUT ##
+	$i=0;
+	$hi_hour_count=0;
+	$hi_hold_count=0;
+
+	while ($i < $TOTintervals)
+		{
+
+		if ($qrtCALLS[$i] > 0)
+			{$qrtCALLSavg[$i] = ($qrtCALLSsec[$i] / $qrtCALLS[$i]);}
+		else {$qrtCALLSavg[$i] = 0;}
+		if ($qrtDROPS[$i] > 0)
+			{$qrtDROPSavg[$i] = ($qrtDROPSsec[$i] / $qrtDROPS[$i]);}
+		else {$qrtDROPSavg[$i] = 0;}
+		if ($qrtQUEUE[$i] > 0)
+			{$qrtQUEUEavg[$i] = ($qrtQUEUEsec[$i] / $qrtQUEUE[$i]);}
+		else {$qrtQUEUEavg[$i] = 0;}
+
+		if ($qrtCALLS[$i] > $hi_hour_count) {$hi_hour_count = $qrtCALLS[$i];}
+		if ($qrtQUEUEavg[$i] > $hi_hold_count) {$hi_hold_count = $qrtQUEUEavg[$i];}
+
+		$qrtQUEUEavg[$i] = round($qrtQUEUEavg[$i], 0);
+		if (strlen($qrtQUEUEavg[$i])<1) {$qrtQUEUEavg[$i]=0;}
+		$qrtQUEUEmax[$i] = round($qrtQUEUEmax[$i], 0);
+		if (strlen($qrtQUEUEmax[$i])<1) {$qrtQUEUEmax[$i]=0;}
+
+		$i++;
+		}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{$hour_multiplier = (20 / $hi_hour_count);}
+if ($hi_hold_count < 1)
+	{$hold_multiplier = 0;}
+else
+	{$hold_multiplier = (20 / $hi_hold_count);}
+
+
+
+
+###################################################################
+#########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
+
+echo "\n";
+echo "---------- HOLD TIME, CALL AND DROP STATS\n";
+
+echo "";
+
+echo "";
+echo "\n";
+echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
+
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hour_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hour_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hour_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$call_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+$k=1;
+$Mk=0;
+$hold_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hold_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hold_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hold_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$hold_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$hold_scale .= "$scale_num";
+		}
+	else
+		{
+		$hold_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "|    TIME     |  AVG HOLD TIME (sec)  | (in seconds)  |  |    CALLS HANDLED      |       |       |\n";
+echo "| 15 MIN INT  |$hold_scale| AVG   | MAX   |  |$call_scale| DROPS | TOTAL |\n";
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+$i=0;
+while ($i < $TOTintervals)
+	{
+	$char_counter=0;
+	### BEGIN HOLD TIME TOTALS GRAPH ###
+		$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count > 0) {$no_lines_yet=0;}
+
+	$Gavg_hold = $qrtQUEUEavg[$i];
+	if ($Gavg_hold < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$TOT_lines++;
+			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+			echo "|$HMdisplay[$i]|";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+			}
+		}
+	else
+		{
+		$TOT_lines++;
+		$no_lines_yet=0;
+		$Xavg_hold = ($Gavg_hold * $hold_multiplier);
+		$Yavg_hold = (19 - $Xavg_hold);
+
+		$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+		$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+
+		echo "|$HMdisplay[$i]|";
+		$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
+		if ($char_counter >= 22) {echo "H";   $char_counter++;}
+		else {echo "*H";   $char_counter++;   $char_counter++;}
+		$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
+			while ($char_counter <= 22) {echo " ";   $char_counter++;}
+		echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+		}
+	### END HOLD TIME TOTALS GRAPH ###
+
+	$char_counter=0;
+ 	### BEGIN CALLS TOTALS GRAPH ###
+	$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			echo "  |";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtCALLS[$i] |     0 |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (19 - $Xhour_count);
+
+		$Gdrop_count = $qrtDROPS[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			if ($char_counter > 21) {echo "C";   $char_counter++;}
+			else {echo "*C";   $char_counter++;   $char_counter++;}
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "|     0 | $qrtCALLS[$i] |\n";
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "C";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "| $qrtDROPS[$i] | $qrtCALLS[$i] |\n";
+			}
+		}
+	### END CALLS TOTALS GRAPH ###
+
+	$i++;
+	}
+
+
+if ($totQUEUEsec > 0)
+	{$totQUEUEavgRAW = ($totCALLS / $totQUEUEsec);}
+else
+	{$totQUEUEavgRAW = 0;}
+$totQUEUEavg =	sprintf("%5s", $totQUEUEavg); 
+	while (strlen($totQUEUEavg)>5) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+$totQUEUEmax =	sprintf("%5s", $totQUEUEmax);
+	while (strlen($totQUEUEmax)>5) {$totQUEUEmax = ereg_replace(".$",'',$totQUEUEmax);}
+$totDROPS =	sprintf("%5s", $totDROPS);
+$totCALLS =	sprintf("%5s", $totCALLS);
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "| TOTAL                               | $totQUEUEavg | $totQUEUEmax |  |                       | $totDROPS | $totCALLS |\n";
+echo "+-------------------------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS, 15-MINUTE INCREMENT
+
+
+echo "\n";
+echo "---------- LLAMADA EN ESPERA TEMNE DE SEGUNDOS\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "|    TIME     |       |  % OF CALLS GROUPED BY HOLD TIME (SEC)  | |   AVERAGE TIME BEFORE RESPUESTA (SEC)    |\n";
+echo "| 15 MIN INT  | CALLS |    0   20   40   60   80  100  120 120+ | | AVG  |0   20   40   60   80  100  120 |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+
+$APhd__0=0; $APhd_20=0; $APhd_40=0; $APhd_60=0; $APhd_80=0; $APhd100=0; $APhd120=0; $APhd121=0;
+$h=0;
+while ($h < $TOTintervals)
+	{
+	$Aavg_hold[$h] = $qrtQUEUEavg[$h]; 
+	if ($hd__0[$h] > 0) {$Phd__0[$h] = round( ( ($hd__0[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd__0[$h]=0;}
+	if ($hd_20[$h] > 0) {$Phd_20[$h] = round( ( ($hd_20[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_20[$h]=0;}
+	if ($hd_40[$h] > 0) {$Phd_40[$h] = round( ( ($hd_40[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_40[$h]=0;}
+	if ($hd_60[$h] > 0) {$Phd_60[$h] = round( ( ($hd_60[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_60[$h]=0;}
+	if ($hd_80[$h] > 0) {$Phd_80[$h] = round( ( ($hd_80[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_80[$h]=0;}
+	if ($hd100[$h] > 0) {$Phd100[$h] = round( ( ($hd100[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd100[$h]=0;}
+	if ($hd120[$h] > 0) {$Phd120[$h] = round( ( ($hd120[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd120[$h]=0;}
+	if ($hd121[$h] > 0) {$Phd121[$h] = round( ( ($hd121[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd121[$h]=0;}
+		while (strlen($qrtQUEUEavg[$h])>4) {$qrtQUEUEavg[$h] = ereg_replace(".$",'',$qrtQUEUEavg[$h]);}
+	$hd__0[$h] =	sprintf("%4s", $hd__0[$h]);
+	$hd_20[$h] =	sprintf("%4s", $hd_20[$h]);
+	$hd_40[$h] =	sprintf("%4s", $hd_40[$h]);
+	$hd_60[$h] =	sprintf("%4s", $hd_60[$h]);
+	$hd_80[$h] =	sprintf("%4s", $hd_80[$h]);
+	$hd100[$h] =	sprintf("%4s", $hd100[$h]);
+	$hd120[$h] =	sprintf("%4s", $hd120[$h]);
+	$hd121[$h] =	sprintf("%4s", $hd121[$h]);
+	$Phd__0[$h] =	sprintf("%4s", $Phd__0[$h]);
+	$Phd_20[$h] =	sprintf("%4s", $Phd_20[$h]);
+	$Phd_40[$h] =	sprintf("%4s", $Phd_40[$h]);
+	$Phd_60[$h] =	sprintf("%4s", $Phd_60[$h]);
+	$Phd_80[$h] =	sprintf("%4s", $Phd_80[$h]);
+	$Phd100[$h] =	sprintf("%4s", $Phd100[$h]);
+	$Phd120[$h] =	sprintf("%4s", $Phd120[$h]);
+	$Phd121[$h] =	sprintf("%4s", $Phd121[$h]);
+
+	$ALLcalls = ($ALLcalls + $qrtCALLS[$h]);
+	$ALLhd__0 = ($ALLhd__0 + $hd__0[$h]);
+	$ALLhd_20 = ($ALLhd_20 + $hd_20[$h]);
+	$ALLhd_40 = ($ALLhd_40 + $hd_40[$h]);
+	$ALLhd_60 = ($ALLhd_60 + $hd_60[$h]);
+	$ALLhd_80 = ($ALLhd_80 + $hd_80[$h]);
+	$ALLhd100 = ($ALLhd100 + $hd100[$h]);
+	$ALLhd120 = ($ALLhd120 + $hd120[$h]);
+	$ALLhd121 = ($ALLhd121 + $hd121[$h]);
+
+	if ( ($Aavg_hold[$h] < 1) or ($Aavg_hold[$h] > 119) )
+		{
+		if ($Aavg_hold[$h] < 1)		{$qrtQUEUEavg_scale[$h] = '                                ';}
+		if ($Aavg_hold[$h] > 119)	{$qrtQUEUEavg_scale[$h] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';}
+		}
+	else
+		{
+		$qrtQUEUEavg_val[$h] = ( (32 / 120) * $Aavg_hold[$h] );
+		$k=0;
+		$blank=0;
+		while ($k < 32)
+			{
+			if ($k <= $qrtQUEUEavg_val[$h]) 
+				{
+				if ($k < 1) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= 'x';
+				}
+			else 
+				{
+				if ( ($k > 0) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= ' ';
+				$blank++;
+				}
+			$k++;
+			if ( ($k > 31) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+			}
+		}
+
+	$Aavg_hold[$h] = sprintf("%4s", $Aavg_hold[$h]);
+	while (strlen($Aavg_hold[$h])>4) {$Aavg_hold[$h] = ereg_replace("^.",'',$Aavg_hold[$h]);}
+
+	echo "|$HMdisplay[$h]| $qrtCALLS[$h] | $Phd__0[$h] $Phd_20[$h] $Phd_40[$h] $Phd_60[$h] $Phd_80[$h] $Phd100[$h] $Phd120[$h] $Phd121[$h] | | $Aavg_hold[$h] |$qrtQUEUEavg_scale[$h]|\n";
+	
+	$h++;
+	}
+
+if ($ALLhd__0 > 0) {$APhd__0 = round( ( ($ALLhd__0 / $ALLcalls) * 100) );}
+if ($ALLhd_20 > 0) {$APhd_20 = round( ( ($ALLhd_20 / $ALLcalls) * 100) );}
+if ($ALLhd_40 > 0) {$APhd_40 = round( ( ($ALLhd_40 / $ALLcalls) * 100) );}
+if ($ALLhd_60 > 0) {$APhd_60 = round( ( ($ALLhd_60 / $ALLcalls) * 100) );}
+if ($ALLhd_80 > 0) {$APhd_80 = round( ( ($ALLhd_80 / $ALLcalls) * 100) );}
+if ($ALLhd100 > 0) {$APhd100 = round( ( ($ALLhd100 / $ALLcalls) * 100) );}
+if ($ALLhd120 > 0) {$APhd120 = round( ( ($ALLhd120 / $ALLcalls) * 100) );}
+if ($ALLhd121 > 0) {$APhd121 = round( ( ($ALLhd121 / $ALLcalls) * 100) );}
+
+$ALLcalls =	sprintf("%5s", $ALLcalls);
+$APhd__0 =	sprintf("%4s", $APhd__0);
+$APhd_20 =	sprintf("%4s", $APhd_20);
+$APhd_40 =	sprintf("%4s", $APhd_40);
+$APhd_60 =	sprintf("%4s", $APhd_60);
+$APhd_80 =	sprintf("%4s", $APhd_80);
+$APhd100 =	sprintf("%4s", $APhd100);
+$APhd120 =	sprintf("%4s", $APhd120);
+$APhd121 =	sprintf("%4s", $APhd121);
+
+	while (strlen($totQUEUEavg)>4) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "| TOTAL       | $ALLcalls | $APhd__0 $APhd_20 $APhd_40 $APhd_60 $APhd_80 $APhd100 $APhd120 $APhd121 | | $totQUEUEavg |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+\n";
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSERstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSERstats.php new file mode 100644 index 00000000..64c0b395 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSERstats.php @@ -0,0 +1,1504 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1714 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 60905-1326 - Added queue time stats +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71025-0021 - Added status breakdown +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80709-0331 - Added time stats to call statuses +# 80722-2149 - Added Status Category stats +# 81015-0705 - Added IVR calls count +# 81024-0037 - Added multi-select inbound-groups +# 81105-2118 - Added Answered calls 15-minute breakdown +# 81109-2340 - Added custom indicators section +# 90116-1040 - Rewrite of the 15-minute sections to speed it up and allow multi-day calculations +# 90310-2037 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90801-0921 - Added in-group name to pulldown +# 91214-0955 - Added INITIAL QUEUE POSITION BREAKDOWN +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Rango de Fecha:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Grupos De entrada: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "MODIFICAR | "; +echo "INFORMES | "; +echo "IVR REPORT \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+{
+echo "\n\n";
+echo "POR FAVOR SELECCIONE UN GRUPO EN EL PÁRRAFO ANTERIOR Y FECHA DE RANGO y haga clic en Enviar\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "Inbound Call Stats: $group_string          $NOW_TIME\n";
+
+
+
+
+
+
+if ($group_ct > 1)
+	{
+	echo "\n";
+	echo "---------- MULTI-GROUP BREAKDOWN:\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+	echo "| IN-GROUP             | CALLS   | DROPS   | DROP %  | IVR     |\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	$i=0;
+	while($i < $group_ct)
+		{
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='$group[$i]' and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowx=mysql_fetch_row($rslt);
+
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowy=mysql_fetch_row($rslt);
+
+		$groupDISPLAY =	sprintf("%20s", $group[$i]);
+		$gTOTALcalls =	sprintf("%7s", $row[0]);
+		$gIVRcalls =	sprintf("%7s", $rowx[0]);
+		$gDROPcalls =	sprintf("%7s", $rowy[0]);
+		if ( ($gDROPcalls < 1) or ($gTOTALcalls < 1) )
+			{$gDROPpercent = '0';}
+		else
+			{
+			$gDROPpercent = (($gDROPcalls / $gTOTALcalls) * 100);
+			$gDROPpercent = round($gDROPpercent, 2);
+			}
+		$gDROPpercent =	sprintf("%6s", $gDROPpercent);
+
+		echo "| $groupDISPLAY | $gTOTALcalls | $gDROPcalls | $gDROPpercent% | $gIVRcalls |\n";
+		$i++;
+		}
+
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	}
+
+
+echo "\n";
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALS\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowy=mysql_fetch_row($rslt);
+
+$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) and comment_b='START';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowx=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$IVRcalls =	sprintf("%10s", $rowx[0]);
+$TOTALsec =		$row[1];
+if ( ($row[0] < 1) or ($TOTALsec < 1) )
+	{$average_call_seconds = '         0';}
+else
+	{
+	$average_call_seconds = ($TOTALsec / $row[0]);
+	$average_call_seconds = round($average_call_seconds, 0);
+	$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+	}
+$RESPUESTAEDcalls  =	sprintf("%10s", $rowy[0]);
+if ( ($RESPUESTAEDcalls < 1) or ($TOTALcalls < 1) )
+	{$RESPUESTAEDpercent = '0';}
+else
+	{
+	$RESPUESTAEDpercent = (($RESPUESTAEDcalls / $TOTALcalls) * 100);
+	$RESPUESTAEDpercent = round($RESPUESTAEDpercent, 0);
+	}
+if ( ($rowy[0] < 1) or ($RESPUESTAEDcalls < 1) )
+	{$average_answer_seconds = '         0';}
+else
+	{
+	$average_answer_seconds = ($rowy[1] / $rowy[0]);
+	$average_answer_seconds = round($average_answer_seconds, 2);
+	$average_answer_seconds =	sprintf("%10s", $average_answer_seconds);
+	}
+
+
+echo "Total de llamadas a adoptarse en este In-Grupo:        $TOTALcalls\n";
+echo "Average Call Length for all Calls:            $average_call_seconds seconds\n";
+echo "Answered Calls:                               $RESPUESTAEDcalls  $RESPUESTAEDpercent%\n";
+echo "Average queue time for Answered Calls:        $average_answer_seconds seconds\n";
+echo "Calls taken into the IVR for this In-Grupo:   $IVRcalls\n";
+
+
+echo "\n";
+echo "---------- DROPS\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+	{$DROPpercent = '0';}
+else
+	{
+	$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+	$DROPpercent = round($DROPpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{
+	$average_hold_seconds = '         0';
+	}
+else
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+if ( ($RESPUESTAEDcalls < 1) or ($DROPcalls < 1) )
+	{$DROP_RESPUESTAEDpercent = '0';}
+else
+	{
+	$DROP_RESPUESTAEDpercent = (($DROPcalls / $RESPUESTAEDcalls) * 100);
+	$DROP_RESPUESTAEDpercent = round($DROP_RESPUESTAEDpercent, 0);
+	}
+
+echo "Total DROP Calls: $DROPcalls  $DROPpercent%               drop/answered: $DROP_RESPUESTAEDpercent%\n";
+echo "Average hold time for DROP Calls:             $average_hold_seconds seconds\n";
+
+
+
+
+if (strlen($group_SQL)>3)
+	{
+	$stmt = "SELECT answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two from vicidial_inbound_groups where group_id IN($group_SQL) order by answer_sec_pct_rt_stat_one desc limit 1;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$Sanswer_sec_pct_rt_stat_one = $row[0];
+	$Sanswer_sec_pct_rt_stat_two = $row[1];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_one;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_one = $row[0];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_two;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_two = $row[0];
+
+	if ( ($RESPUESTAEDcalls > 0) and ($answer_sec_pct_rt_stat_one > 0) and ($answer_sec_pct_rt_stat_two > 0) )
+		{
+		$PCTanswer_sec_pct_rt_stat_one = (($answer_sec_pct_rt_stat_one / $RESPUESTAEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_one = round($PCTanswer_sec_pct_rt_stat_one, 0);
+		#$PCTanswer_sec_pct_rt_stat_one = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_one);
+		$PCTanswer_sec_pct_rt_stat_two = (($answer_sec_pct_rt_stat_two / $RESPUESTAEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_two = round($PCTanswer_sec_pct_rt_stat_two, 0);
+		#$PCTanswer_sec_pct_rt_stat_two = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_two);
+		}
+	}
+echo "\n";
+echo "---------- CUSTOM INDICATORS\n";
+echo "GDE (Answered/Llamadas totales tomadas in to this In-Group):  $RESPUESTAEDpercent%\n";
+echo "ACR (Dropped/Answered):                                $DROP_RESPUESTAEDpercent%\n";
+echo "TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):            $PCTanswer_sec_pct_rt_stat_one%\n";
+echo "TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):            $PCTanswer_sec_pct_rt_stat_two%\n";
+
+
+# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+$q=0;
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_campaign_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+
+##############################
+#########  CALL QUEUE STATS
+echo "\n";
+echo "---------- QUEUE STATS\n";
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and (queue_seconds > 0);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$QUEUEcalls =	sprintf("%10s", $row[0]);
+if ( ($QUEUEcalls < 1) or ($TOTALcalls < 1) )
+	{$QUEUEpercent = '0';}
+else
+	{
+	$QUEUEpercent = (($QUEUEcalls / $TOTALcalls) * 100);
+	$QUEUEpercent = round($QUEUEpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{$average_queue_seconds = '         0';}
+else
+	{
+	$average_queue_seconds = ($row[1] / $row[0]);
+	$average_queue_seconds = round($average_queue_seconds, 2);
+	$average_queue_seconds = sprintf("%10.2f", $average_queue_seconds);
+	}
+
+if ( ($TOTALcalls < 1) or ($row[1] < 1) )
+	{$average_total_queue_seconds = '         0';}
+else
+	{
+	$average_total_queue_seconds = ($row[1] / $TOTALcalls);
+	$average_total_queue_seconds = round($average_total_queue_seconds, 2);
+	$average_total_queue_seconds = sprintf("%10.2f", $average_total_queue_seconds);
+	}
+
+echo "Total Calls That entered Queue:               $QUEUEcalls  $QUEUEpercent%\n";
+echo "Average QUEUE Length for queue calls:         $average_queue_seconds seconds\n";
+echo "Average QUEUE Length across all calls:        $average_total_queue_seconds seconds\n";
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- LLAMADA EN ESPERA TEMNE DE SEGUNDOS\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ($row[1] == 0) {$hd_0 = ($hd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$hd_5 = ($hd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$hd10 = ($hd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$hd15 = ($hd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$hd20 = ($hd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$hd25 = ($hd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$hd30 = ($hd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$hd35 = ($hd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$hd40 = ($hd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$hd45 = ($hd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$hd50 = ($hd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$hd55 = ($hd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$hd60 = ($hd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$hd90 = ($hd90 + $row[0]);}
+	if ($row[1] > 90) {$hd99 = ($hd99 + $row[0]);}
+	$i++;
+	}
+
+$hd_0 =	sprintf("%5s", $hd_0);
+$hd_5 =	sprintf("%5s", $hd_5);
+$hd10 =	sprintf("%5s", $hd10);
+$hd15 =	sprintf("%5s", $hd15);
+$hd20 =	sprintf("%5s", $hd20);
+$hd25 =	sprintf("%5s", $hd25);
+$hd30 =	sprintf("%5s", $hd30);
+$hd35 =	sprintf("%5s", $hd35);
+$hd40 =	sprintf("%5s", $hd40);
+$hd45 =	sprintf("%5s", $hd45);
+$hd50 =	sprintf("%5s", $hd50);
+$hd55 =	sprintf("%5s", $hd55);
+$hd60 =	sprintf("%5s", $hd60);
+$hd90 =	sprintf("%5s", $hd90);
+$hd99 =	sprintf("%5s", $hd99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $hd_0 $hd_5 $hd10 $hd15 $hd20 $hd25 $hd30 $hd35 $hd40 $hd45 $hd50 $hd55 $hd60 $hd90 $hd99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  CALL DROP TIME BREAKDOWN IN SECONDS
+
+$BDdropCALLS = 0;
+
+echo "\n";
+echo "---------- CALL DROP TIME BREAKDOWN IN SECONDS\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status IN('DROP','XDROP') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDdropCALLS = ($BDdropCALLS + $row[0]);
+
+	if ($row[1] == 0) {$dd_0 = ($dd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$dd_5 = ($dd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$dd10 = ($dd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$dd15 = ($dd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$dd20 = ($dd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$dd25 = ($dd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$dd30 = ($dd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$dd35 = ($dd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$dd40 = ($dd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$dd45 = ($dd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$dd50 = ($dd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$dd55 = ($dd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$dd60 = ($dd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$dd90 = ($dd90 + $row[0]);}
+	if ($row[1] > 90) {$dd99 = ($dd99 + $row[0]);}
+	$i++;
+	}
+
+$dd_0 =	sprintf("%5s", $dd_0);
+$dd_5 =	sprintf("%5s", $dd_5);
+$dd10 =	sprintf("%5s", $dd10);
+$dd15 =	sprintf("%5s", $dd15);
+$dd20 =	sprintf("%5s", $dd20);
+$dd25 =	sprintf("%5s", $dd25);
+$dd30 =	sprintf("%5s", $dd30);
+$dd35 =	sprintf("%5s", $dd35);
+$dd40 =	sprintf("%5s", $dd40);
+$dd45 =	sprintf("%5s", $dd45);
+$dd50 =	sprintf("%5s", $dd50);
+$dd55 =	sprintf("%5s", $dd55);
+$dd60 =	sprintf("%5s", $dd60);
+$dd90 =	sprintf("%5s", $dd90);
+$dd99 =	sprintf("%5s", $dd99);
+
+$BDdropCALLS =		sprintf("%10s", $BDdropCALLS);
+
+echo "| $dd_0 $dd_5 $dd10 $dd15 $dd20 $dd25 $dd30 $dd35 $dd40 $dd45 $dd50 $dd55 $dd60 $dd90 $dd99 | $BDdropCALLS |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS
+
+$BDansweredCALLS = 0;
+
+echo "\n";
+echo "           CALL RESPUESTAED TIME AND PERCENT BREAKDOWN IN SECONDS\n";
+echo "          +-------------------------------------------------------------------------------------------+------------+\n";
+echo "          |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDansweredCALLS = ($BDansweredCALLS + $row[0]);
+	
+	### Get interval totals
+	if ($row[1] == 0) {$ad_0 = ($ad_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$ad_5 = ($ad_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$ad10 = ($ad10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$ad15 = ($ad15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$ad20 = ($ad20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$ad25 = ($ad25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$ad30 = ($ad30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$ad35 = ($ad35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$ad40 = ($ad40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$ad45 = ($ad45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$ad50 = ($ad50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$ad55 = ($ad55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$ad60 = ($ad60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$ad90 = ($ad90 + $row[0]);}
+	if ($row[1] > 90) {$ad99 = ($ad99 + $row[0]);}
+	$i++;
+	}
+
+### Calculate cumulative totals
+$Cad_0 =$ad_0;
+$Cad_5 =($Cad_0 + $ad_5);
+$Cad10 =($Cad_5 + $ad10);
+$Cad15 =($Cad10 + $ad15);
+$Cad20 =($Cad15 + $ad20);
+$Cad25 =($Cad20 + $ad25);
+$Cad30 =($Cad25 + $ad30);
+$Cad35 =($Cad30 + $ad35);
+$Cad40 =($Cad35 + $ad40);
+$Cad45 =($Cad40 + $ad45);
+$Cad50 =($Cad45 + $ad50);
+$Cad55 =($Cad50 + $ad55);
+$Cad60 =($Cad55 + $ad60);
+$Cad90 =($Cad60 + $ad90);
+$Cad99 =($Cad90 + $ad99);
+
+### Calculate interval percentages
+$pad_0=0; $pad_5=0; $pad10=0; $pad15=0; $pad20=0; $pad25=0; $pad30=0; $pad35=0; $pad40=0; $pad45=0; $pad50=0; $pad55=0; $pad60=0; $pad90=0; $pad99=0; 
+$pCad_0=0; $pCad_5=0; $pCad10=0; $pCad15=0; $pCad20=0; $pCad25=0; $pCad30=0; $pCad35=0; $pCad40=0; $pCad45=0; $pCad50=0; $pCad55=0; $pCad60=0; $pCad90=0; $pCad99=0; 
+if ( ($BDansweredCALLS > 0) and ($TOTALcalls > 0) )
+	{
+	if ($ad_0 > 0) {$pad_0 = (($ad_0 / $TOTALcalls) * 100);	$pad_0 = round($pad_0, 0);}
+	if ($ad_5 > 0) {$pad_5 = (($ad_5 / $TOTALcalls) * 100);	$pad_5 = round($pad_5, 0);}
+	if ($ad10 > 0) {$pad10 = (($ad10 / $TOTALcalls) * 100);	$pad10 = round($pad10, 0);}
+	if ($ad15 > 0) {$pad15 = (($ad15 / $TOTALcalls) * 100);	$pad15 = round($pad15, 0);}
+	if ($ad20 > 0) {$pad20 = (($ad20 / $TOTALcalls) * 100);	$pad20 = round($pad20, 0);}
+	if ($ad25 > 0) {$pad25 = (($ad25 / $TOTALcalls) * 100);	$pad25 = round($pad25, 0);}
+	if ($ad30 > 0) {$pad30 = (($ad30 / $TOTALcalls) * 100);	$pad30 = round($pad30, 0);}
+	if ($ad35 > 0) {$pad35 = (($ad35 / $TOTALcalls) * 100);	$pad35 = round($pad35, 0);}
+	if ($ad40 > 0) {$pad40 = (($ad40 / $TOTALcalls) * 100);	$pad40 = round($pad40, 0);}
+	if ($ad45 > 0) {$pad45 = (($ad45 / $TOTALcalls) * 100);	$pad45 = round($pad45, 0);}
+	if ($ad50 > 0) {$pad50 = (($ad50 / $TOTALcalls) * 100);	$pad50 = round($pad50, 0);}
+	if ($ad55 > 0) {$pad55 = (($ad55 / $TOTALcalls) * 100);	$pad55 = round($pad55, 0);}
+	if ($ad60 > 0) {$pad60 = (($ad60 / $TOTALcalls) * 100);	$pad60 = round($pad60, 0);}
+	if ($ad90 > 0) {$pad90 = (($ad90 / $TOTALcalls) * 100);	$pad90 = round($pad90, 0);}
+	if ($ad99 > 0) {$pad99 = (($ad99 / $TOTALcalls) * 100);	$pad99 = round($pad99, 0);}
+
+	if ($Cad_0 > 0) {$pCad_0 = (($Cad_0 / $TOTALcalls) * 100);	$pCad_0 = round($pCad_0, 0);}
+	if ($Cad_5 > 0) {$pCad_5 = (($Cad_5 / $TOTALcalls) * 100);	$pCad_5 = round($pCad_5, 0);}
+	if ($Cad10 > 0) {$pCad10 = (($Cad10 / $TOTALcalls) * 100);	$pCad10 = round($pCad10, 0);}
+	if ($Cad15 > 0) {$pCad15 = (($Cad15 / $TOTALcalls) * 100);	$pCad15 = round($pCad15, 0);}
+	if ($Cad20 > 0) {$pCad20 = (($Cad20 / $TOTALcalls) * 100);	$pCad20 = round($pCad20, 0);}
+	if ($Cad25 > 0) {$pCad25 = (($Cad25 / $TOTALcalls) * 100);	$pCad25 = round($pCad25, 0);}
+	if ($Cad30 > 0) {$pCad30 = (($Cad30 / $TOTALcalls) * 100);	$pCad30 = round($pCad30, 0);}
+	if ($Cad35 > 0) {$pCad35 = (($Cad35 / $TOTALcalls) * 100);	$pCad35 = round($pCad35, 0);}
+	if ($Cad40 > 0) {$pCad40 = (($Cad40 / $TOTALcalls) * 100);	$pCad40 = round($pCad40, 0);}
+	if ($Cad45 > 0) {$pCad45 = (($Cad45 / $TOTALcalls) * 100);	$pCad45 = round($pCad45, 0);}
+	if ($Cad50 > 0) {$pCad50 = (($Cad50 / $TOTALcalls) * 100);	$pCad50 = round($pCad50, 0);}
+	if ($Cad55 > 0) {$pCad55 = (($Cad55 / $TOTALcalls) * 100);	$pCad55 = round($pCad55, 0);}
+	if ($Cad60 > 0) {$pCad60 = (($Cad60 / $TOTALcalls) * 100);	$pCad60 = round($pCad60, 0);}
+	if ($Cad90 > 0) {$pCad90 = (($Cad90 / $TOTALcalls) * 100);	$pCad90 = round($pCad90, 0);}
+	if ($Cad99 > 0) {$pCad99 = (($Cad99 / $TOTALcalls) * 100);	$pCad99 = round($pCad99, 0);}
+
+	if ($Cad_0 > 0) {$ApCad_0 = (($Cad_0 / $BDansweredCALLS) * 100);	$ApCad_0 = round($ApCad_0, 0);}
+	if ($Cad_5 > 0) {$ApCad_5 = (($Cad_5 / $BDansweredCALLS) * 100);	$ApCad_5 = round($ApCad_5, 0);}
+	if ($Cad10 > 0) {$ApCad10 = (($Cad10 / $BDansweredCALLS) * 100);	$ApCad10 = round($ApCad10, 0);}
+	if ($Cad15 > 0) {$ApCad15 = (($Cad15 / $BDansweredCALLS) * 100);	$ApCad15 = round($ApCad15, 0);}
+	if ($Cad20 > 0) {$ApCad20 = (($Cad20 / $BDansweredCALLS) * 100);	$ApCad20 = round($ApCad20, 0);}
+	if ($Cad25 > 0) {$ApCad25 = (($Cad25 / $BDansweredCALLS) * 100);	$ApCad25 = round($ApCad25, 0);}
+	if ($Cad30 > 0) {$ApCad30 = (($Cad30 / $BDansweredCALLS) * 100);	$ApCad30 = round($ApCad30, 0);}
+	if ($Cad35 > 0) {$ApCad35 = (($Cad35 / $BDansweredCALLS) * 100);	$ApCad35 = round($ApCad35, 0);}
+	if ($Cad40 > 0) {$ApCad40 = (($Cad40 / $BDansweredCALLS) * 100);	$ApCad40 = round($ApCad40, 0);}
+	if ($Cad45 > 0) {$ApCad45 = (($Cad45 / $BDansweredCALLS) * 100);	$ApCad45 = round($ApCad45, 0);}
+	if ($Cad50 > 0) {$ApCad50 = (($Cad50 / $BDansweredCALLS) * 100);	$ApCad50 = round($ApCad50, 0);}
+	if ($Cad55 > 0) {$ApCad55 = (($Cad55 / $BDansweredCALLS) * 100);	$ApCad55 = round($ApCad55, 0);}
+	if ($Cad60 > 0) {$ApCad60 = (($Cad60 / $BDansweredCALLS) * 100);	$ApCad60 = round($ApCad60, 0);}
+	if ($Cad90 > 0) {$ApCad90 = (($Cad90 / $BDansweredCALLS) * 100);	$ApCad90 = round($ApCad90, 0);}
+	if ($Cad99 > 0) {$ApCad99 = (($Cad99 / $BDansweredCALLS) * 100);	$ApCad99 = round($ApCad99, 0);}
+	}
+
+### Format variables
+$ad_0 = sprintf("%5s", $ad_0);
+$ad_5 = sprintf("%5s", $ad_5);
+$ad10 = sprintf("%5s", $ad10);
+$ad15 = sprintf("%5s", $ad15);
+$ad20 = sprintf("%5s", $ad20);
+$ad25 = sprintf("%5s", $ad25);
+$ad30 = sprintf("%5s", $ad30);
+$ad35 = sprintf("%5s", $ad35);
+$ad40 = sprintf("%5s", $ad40);
+$ad45 = sprintf("%5s", $ad45);
+$ad50 = sprintf("%5s", $ad50);
+$ad55 = sprintf("%5s", $ad55);
+$ad60 = sprintf("%5s", $ad60);
+$ad90 = sprintf("%5s", $ad90);
+$ad99 = sprintf("%5s", $ad99);
+$Cad_0 = sprintf("%5s", $Cad_0);
+$Cad_5 = sprintf("%5s", $Cad_5);
+$Cad10 = sprintf("%5s", $Cad10);
+$Cad15 = sprintf("%5s", $Cad15);
+$Cad20 = sprintf("%5s", $Cad20);
+$Cad25 = sprintf("%5s", $Cad25);
+$Cad30 = sprintf("%5s", $Cad30);
+$Cad35 = sprintf("%5s", $Cad35);
+$Cad40 = sprintf("%5s", $Cad40);
+$Cad45 = sprintf("%5s", $Cad45);
+$Cad50 = sprintf("%5s", $Cad50);
+$Cad55 = sprintf("%5s", $Cad55);
+$Cad60 = sprintf("%5s", $Cad60);
+$Cad90 = sprintf("%5s", $Cad90);
+$Cad99 = sprintf("%5s", $Cad99);
+$pad_0 = sprintf("%4s", $pad_0) . '%';
+$pad_5 = sprintf("%4s", $pad_5) . '%';
+$pad10 = sprintf("%4s", $pad10) . '%';
+$pad15 = sprintf("%4s", $pad15) . '%';
+$pad20 = sprintf("%4s", $pad20) . '%';
+$pad25 = sprintf("%4s", $pad25) . '%';
+$pad30 = sprintf("%4s", $pad30) . '%';
+$pad35 = sprintf("%4s", $pad35) . '%';
+$pad40 = sprintf("%4s", $pad40) . '%';
+$pad45 = sprintf("%4s", $pad45) . '%';
+$pad50 = sprintf("%4s", $pad50) . '%';
+$pad55 = sprintf("%4s", $pad55) . '%';
+$pad60 = sprintf("%4s", $pad60) . '%';
+$pad90 = sprintf("%4s", $pad90) . '%';
+$pad99 = sprintf("%4s", $pad99) . '%';
+$pCad_0 = sprintf("%4s", $pCad_0) . '%';
+$pCad_5 = sprintf("%4s", $pCad_5) . '%';
+$pCad10 = sprintf("%4s", $pCad10) . '%';
+$pCad15 = sprintf("%4s", $pCad15) . '%';
+$pCad20 = sprintf("%4s", $pCad20) . '%';
+$pCad25 = sprintf("%4s", $pCad25) . '%';
+$pCad30 = sprintf("%4s", $pCad30) . '%';
+$pCad35 = sprintf("%4s", $pCad35) . '%';
+$pCad40 = sprintf("%4s", $pCad40) . '%';
+$pCad45 = sprintf("%4s", $pCad45) . '%';
+$pCad50 = sprintf("%4s", $pCad50) . '%';
+$pCad55 = sprintf("%4s", $pCad55) . '%';
+$pCad60 = sprintf("%4s", $pCad60) . '%';
+$pCad90 = sprintf("%4s", $pCad90) . '%';
+$pCad99 = sprintf("%4s", $pCad99) . '%';
+$ApCad_0 = sprintf("%4s", $ApCad_0) . '%';
+$ApCad_5 = sprintf("%4s", $ApCad_5) . '%';
+$ApCad10 = sprintf("%4s", $ApCad10) . '%';
+$ApCad15 = sprintf("%4s", $ApCad15) . '%';
+$ApCad20 = sprintf("%4s", $ApCad20) . '%';
+$ApCad25 = sprintf("%4s", $ApCad25) . '%';
+$ApCad30 = sprintf("%4s", $ApCad30) . '%';
+$ApCad35 = sprintf("%4s", $ApCad35) . '%';
+$ApCad40 = sprintf("%4s", $ApCad40) . '%';
+$ApCad45 = sprintf("%4s", $ApCad45) . '%';
+$ApCad50 = sprintf("%4s", $ApCad50) . '%';
+$ApCad55 = sprintf("%4s", $ApCad55) . '%';
+$ApCad60 = sprintf("%4s", $ApCad60) . '%';
+$ApCad90 = sprintf("%4s", $ApCad90) . '%';
+$ApCad99 = sprintf("%4s", $ApCad99) . '%';
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+### Format and output
+$answeredTOTALs = "$ad_0 $ad_5 $ad10 $ad15 $ad20 $ad25 $ad30 $ad35 $ad40 $ad45 $ad50 $ad55 $ad60 $ad90 $ad99 | $BDansweredCALLS |";
+$answeredCUMULATIVE = "$Cad_0 $Cad_5 $Cad10 $Cad15 $Cad20 $Cad25 $Cad30 $Cad35 $Cad40 $Cad45 $Cad50 $Cad55 $Cad60 $Cad90 $Cad99 | $BDansweredCALLS |";
+$answeredINT_PERCENT = "$pad_0 $pad_5 $pad10 $pad15 $pad20 $pad25 $pad30 $pad35 $pad40 $pad45 $pad50 $pad55 $pad60 $pad90 $pad99 |            |";
+$answeredCUM_PERCENT = "$pCad_0 $pCad_5 $pCad10 $pCad15 $pCad20 $pCad25 $pCad30 $pCad35 $pCad40 $pCad45 $pCad50 $pCad55 $pCad60 $pCad90 $pCad99 |            |";
+$answeredCUM_ANS_PERCENT = "$ApCad_0 $ApCad_5 $ApCad10 $ApCad15 $ApCad20 $ApCad25 $ApCad30 $ApCad35 $ApCad40 $ApCad45 $ApCad50 $ApCad55 $ApCad60 $ApCad90 $ApCad99 |            |";
+echo "INTERVAL  | $answeredTOTALs\n";
+echo "INT %     | $answeredINT_PERCENT\n";
+echo "CUMULATIVE| $answeredCUMULATIVE\n";
+echo "CUM %     | $answeredCUM_PERCENT\n";
+echo "CUM ANS % | $answeredCUM_ANS_PERCENT\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+
+##############################
+#########  CALL HANGUP REASON STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CONVOCATORIA colgar RAZÓN ESTADÍSTICAS\n";
+echo "+----------------------+------------+\n";
+echo "| HANGUP REASON        | CALLS      |\n";
+echo "+----------------------+------------+\n";
+
+$stmt="select count(*),term_reason from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by term_reason;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+	$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+#	if (ereg("NONE",$reason)) {$reason = 'NO ANSWER           ';}
+
+	echo "| $reason | $REASONcount |\n";
+
+	$i++;
+	}
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "+----------------------+------------+\n";
+echo "| TOTAL:               | $TOTALcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL STATUS STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL STATUS STATS\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| STATUS | DESCRIPTION          | CATEGORÍA             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+
+
+## get counts and time totals for all statuses in this campaign
+$stmt="select count(*),status,sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by status;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$STATUScount =	$row[0];
+	$RAWstatus =	$row[1];
+	$r=0;  $foundstat=0;
+	while ($r < $statcats_to_print)
+		{
+		if ( ($statcat_list[$RAWstatus] == "$vsc_id[$r]") and ($foundstat < 1) )
+			{
+			$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+			}
+		$r++;
+		}
+
+	$TOTALcalls =	($TOTALcalls + $row[0]);
+	if ( ($STATUScount < 1) or ($TOTALsec < 1) )
+		{$STATUSrate = 0;}
+	else
+		{$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );}
+	$STATUSrate =	sprintf("%.2f", $STATUSrate);
+
+	$STATUShours =		sec_convert($row[2],'H'); 
+	$STATUSavg_sec =	($row[2] / $STATUScount); 
+	$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+	$STATUScount =	sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+	$status =	sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+	$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+	$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+	$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+
+	if ($non_latin < 1)
+		{
+		$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+		while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+		$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+		while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+		}
+	else
+		{
+		$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+		while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+		$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+		while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+		}
+
+
+	echo "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate |\n";
+
+	$i++;
+	}
+
+if ($TOTALcalls < 1)
+	{
+	$TOTALhours =	'0:00:00';
+	$TOTALavg =		'0:00:00';
+	$TOTALrate =	'0.00';
+	}
+else
+	{
+	if ( ($TOTALcalls < 1) or ($TOTALsec < 1) )
+		{$TOTALrate = 0;}
+	else
+		{$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );}
+	$TOTALrate =	sprintf("%.2f", $TOTALrate);
+
+	$TOTALhours =		sec_convert($TOTALsec,'H'); 
+	$TOTALavg_sec =		($TOTALsec / $TOTALcalls);
+	$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+	}
+$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |\n";
+echo "+------------------------------------------------------+------------+------------+----------+----------+\n";
+
+
+##############################
+#########  STATUS CATEGORY STATS
+
+echo "\n";
+echo "---------- CUSTOM STATUS CATEGORÍA STATS\n";
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| CATEGORÍA             | CALLS      | DESCRIPTION                    |\n";
+echo "+----------------------+------------+--------------------------------+\n";
+
+$TOTCATcalls=0;
+$r=0;
+while ($r < $statcats_to_print)
+	{
+	if ($vsc_id[$r] != 'UNDEFINED')
+		{
+		$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+		$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+		$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+		$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+		echo "| $category | $CATcount | $CATname |\n";
+		}
+
+	$r++;
+	}
+
+$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| TOTAL                | $TOTCATcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+##############################
+#########  CALL INITIAL QUEUE POSITION BREAKDOWN
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+echo "|     1     2     3     4     5     6     7     8     9    10    15    20    25   +25 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_position;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$positions_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $positions_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);}
+	if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);}
+	if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);}
+	if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);}
+	if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);}
+	if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);}
+	if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);}
+	if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);}
+	if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);}
+	if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);}
+	$i++;
+	}
+
+$qp_1 =	sprintf("%5s", $qp_1);
+$qp_2 =	sprintf("%5s", $qp_2);
+$qp_3=	sprintf("%5s", $qp_3);
+$qp_4 =	sprintf("%5s", $qp_4);
+$qp_5 =	sprintf("%5s", $qp_5);
+$qp_6 =	sprintf("%5s", $qp_6);
+$qp_7 =	sprintf("%5s", $qp_7);
+$qp_8 =	sprintf("%5s", $qp_8);
+$qp_9 =	sprintf("%5s", $qp_9);
+$qp10 =	sprintf("%5s", $qp10);
+$qp15 =	sprintf("%5s", $qp15);
+$qp20 =	sprintf("%5s", $qp20);
+$qp25 =	sprintf("%5s", $qp25);
+$qp99 =	sprintf("%5s", $qp99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  USER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTtime=0;
+$TOTavg=0;
+
+echo "\n";
+echo "---------- AGENTE STATS\n";
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| AGENTE                    | CALLS      | TIME H:M:S |AVERAGE |\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_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[2]);
+	$TOTtime = ($TOTtime + $row[3]);
+
+	$user =			sprintf("%-6s", $row[0]);
+	if ($non_latin < 1)
+		{
+		$full_name =	sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+		}
+	else
+		{
+		$full_name =	sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+		}
+	$USERcalls =	sprintf("%10s", $row[2]);
+	$USERtotTALK =	$row[3];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+	$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+	$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+	$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+	$i++;
+	}
+
+if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;}
+else
+	{
+	$TOTavg = ($TOTtime / $TOTcalls);
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	}
+
+$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+$TOTagents =		sprintf("%10s", $i);
+$TOTcalls =			sprintf("%10s", $TOTcalls);
+$TOTtime =			sprintf("%8s", $TOTtime);
+$TOTavg =			sprintf("%6s", $TOTavg);
+
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| TOTAL Agentes: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+echo "+--------------------------+------------+------------+--------+\n";
+
+
+##############################
+#########  TIME STATS
+
+echo "\n";
+echo "---------- ESTADÍSTICAS DEL TIEMPO\n";
+
+echo "\n";
+
+
+##############################
+#########  15-minute increment breakdowns of total calls and drops, then answered table
+$BDansweredCALLS = 0;
+$stmt="SELECT status,queue_seconds,UNIX_TIMESTAMP(call_date),call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$calls_to_print = mysql_num_rows($rslt);
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$Cstatus[$j] =	$row[0];
+	$Cqueue[$j] =	$row[1];
+	$Cepoch[$j] =	$row[2];
+	$Cdate[$j] =	$row[3];
+	$Crem[$j] = ( ($Cepoch[$j] + $epoch_offset) % 86400); # find the remainder(Modulus) of seconds since start of the day
+#	echo "|$Cepoch[$j]|$Crem[$j]|$Cdate[$j]|\n";
+	$j++;
+	}
+
+### Loop through all call records and gather stats for total call/drop report and answered report
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$i=0; $sec=0; $sec_end=900;
+	while ($i <= 96)
+		{
+		if ( ($Crem[$j] >= $sec) and ($Crem[$j] < $sec_end) ) 
+			{
+			$Ftotal[$i]++;
+			if (ereg("DROP",$Cstatus[$j])) {$Fdrop[$i]++;}
+			if (!ereg("DROP|XDROP|HXFER|QVMAIL|HOLDTO|LIVE|QUEUE",$Cstatus[$j]))
+				{
+				$BDansweredCALLS++;
+				$Fanswer[$i]++;
+
+				if ($Cqueue[$j] == 0)								{$adB_0[$i]++;}
+				if ( ($Cqueue[$j] > 0) and ($Cqueue[$j] <= 5) )		{$adB_5[$i]++;}
+				if ( ($Cqueue[$j] > 5) and ($Cqueue[$j] <= 10) )	{$adB10[$i]++;}
+				if ( ($Cqueue[$j] > 10) and ($Cqueue[$j] <= 15) )	{$adB15[$i]++;}
+				if ( ($Cqueue[$j] > 15) and ($Cqueue[$j] <= 20) )	{$adB20[$i]++;}
+				if ( ($Cqueue[$j] > 20) and ($Cqueue[$j] <= 25) )	{$adB25[$i]++;}
+				if ( ($Cqueue[$j] > 25) and ($Cqueue[$j] <= 30) )	{$adB30[$i]++;}
+				if ( ($Cqueue[$j] > 30) and ($Cqueue[$j] <= 35) )	{$adB35[$i]++;}
+				if ( ($Cqueue[$j] > 35) and ($Cqueue[$j] <= 40) )	{$adB40[$i]++;}
+				if ( ($Cqueue[$j] > 40) and ($Cqueue[$j] <= 45) )	{$adB45[$i]++;}
+				if ( ($Cqueue[$j] > 45) and ($Cqueue[$j] <= 50) )	{$adB50[$i]++;}
+				if ( ($Cqueue[$j] > 50) and ($Cqueue[$j] <= 55) )	{$adB55[$i]++;}
+				if ( ($Cqueue[$j] > 55) and ($Cqueue[$j] <= 60) )	{$adB60[$i]++;}
+				if ( ($Cqueue[$j] > 60) and ($Cqueue[$j] <= 90) )	{$adB90[$i]++;}
+				if ($Cqueue[$j] > 90)								{$adB99[$i]++;}
+				}
+
+			}
+		$sec = ($sec + 900);
+		$sec_end = ($sec_end + 900);
+		$i++;
+		}
+	$j++;
+	}	##### END going through all records
+
+
+
+
+
+
+
+##### 15-minute total and drops graph
+$hi_hour_count=0;
+$last_full_record=0;
+$i=0;
+$h=0;
+while ($i <= 96)
+	{
+	$hour_count[$i] = $Ftotal[$i];
+	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+	if ($hour_count[$i] > 0) {$last_full_record = $i;}
+	$drop_count[$i] = $Fdrop[$i];
+	$i++;
+	}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+	}
+
+echo "\n";
+echo "GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LLAMADAS TOTALES TAKEN INTO THIS IN-GROUP\n";
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 102) 
+	{
+	if ($Mk >= 5) 
+		{
+		$Mk=0;
+		if ( ($k < 1) or ($hour_multiplier <= 0) )
+			{$scale_num = 100;}
+		else
+			{
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			}
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		}
+	if ($h == 1) {$time = "   15 ";}
+	if ($h == 2) {$time = "   30 ";}
+	if ($h == 3) {$time = "   45 ";}
+	$Ghour_count = $hour_count[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ( ($no_lines_yet) or ($i > $last_full_record) )
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			echo "|$time|";
+			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (99 - $Xhour_count);
+
+		$Gdrop_count = $drop_count[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| 0     | $hour_count[$i] |\n";
+
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 102) {echo " ";   $char_counter++;}
+			echo "| $drop_count[$i] | $hour_count[$i] |\n";
+			}
+		}
+	
+	
+	$i++;
+	$h++;
+	}
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n\n";
+
+
+
+
+
+
+##### Answered wait time breakdown
+echo "\n";
+echo "---------- CALL RESPUESTAED TIME BREAKDOWN IN SECONDS\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "| HOUR |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		$SQLtime = "$hour:$ZZ:00";
+		$SQLtimeEND = "$hour:15:00";
+		}
+	if ($h == 1) {$time = "   15 ";   $SQLtime = "$hour:15:00";   $SQLtimeEND = "$hour:30:00";}
+	if ($h == 2) {$time = "   30 ";   $SQLtime = "$hour:30:00";   $SQLtimeEND = "$hour:45:00";}
+	if ($h == 3) 
+		{
+		$time = "   45 ";
+		$SQLtime = "$hour:45:00";
+		$hourEND = ($hour + 1);
+		if ($hourEND < 10) {$hourEND = "0$hourEND";}
+		if ($hourEND > 23) {$SQLtimeEND = "23:59:59";}
+		else {$SQLtimeEND = "$hourEND:00:00";}
+		}
+
+
+	if (strlen($adB_0[$i]) < 1)  {$adB_0[$i]='-';}
+	if (strlen($adB_5[$i]) < 1)  {$adB_5[$i]='-';}
+	if (strlen($adB10[$i]) < 1)  {$adB10[$i]='-';}
+	if (strlen($adB15[$i]) < 1)  {$adB15[$i]='-';}
+	if (strlen($adB20[$i]) < 1)  {$adB20[$i]='-';}
+	if (strlen($adB25[$i]) < 1)  {$adB25[$i]='-';}
+	if (strlen($adB30[$i]) < 1)  {$adB30[$i]='-';}
+	if (strlen($adB35[$i]) < 1)  {$adB35[$i]='-';}
+	if (strlen($adB40[$i]) < 1)  {$adB40[$i]='-';}
+	if (strlen($adB45[$i]) < 1)  {$adB45[$i]='-';}
+	if (strlen($adB50[$i]) < 1)  {$adB50[$i]='-';}
+	if (strlen($adB55[$i]) < 1)  {$adB55[$i]='-';}
+	if (strlen($adB60[$i]) < 1)  {$adB60[$i]='-';}
+	if (strlen($adB90[$i]) < 1)  {$adB90[$i]='-';}
+	if (strlen($adB99[$i]) < 1)  {$adB99[$i]='-';}
+	if (strlen($Fanswer[$i]) < 1)  {$Fanswer[$i]='0';}
+
+	$adB_0[$i] = sprintf("%5s", $adB_0[$i]);
+	$adB_5[$i] = sprintf("%5s", $adB_5[$i]);
+	$adB10[$i] = sprintf("%5s", $adB10[$i]);
+	$adB15[$i] = sprintf("%5s", $adB15[$i]);
+	$adB20[$i] = sprintf("%5s", $adB20[$i]);
+	$adB25[$i] = sprintf("%5s", $adB25[$i]);
+	$adB30[$i] = sprintf("%5s", $adB30[$i]);
+	$adB35[$i] = sprintf("%5s", $adB35[$i]);
+	$adB40[$i] = sprintf("%5s", $adB40[$i]);
+	$adB45[$i] = sprintf("%5s", $adB45[$i]);
+	$adB50[$i] = sprintf("%5s", $adB50[$i]);
+	$adB55[$i] = sprintf("%5s", $adB55[$i]);
+	$adB60[$i] = sprintf("%5s", $adB60[$i]);
+	$adB90[$i] = sprintf("%5s", $adB90[$i]);
+	$adB99[$i] = sprintf("%5s", $adB99[$i]);
+	$Fanswer[$i] = sprintf("%10s", $Fanswer[$i]);
+
+	echo "|$time| $adB_0[$i] $adB_5[$i] $adB10[$i] $adB15[$i] $adB20[$i] $adB25[$i] $adB30[$i] $adB35[$i] $adB40[$i] $adB45[$i] $adB50[$i] $adB55[$i] $adB60[$i] $adB90[$i] $adB99[$i] | $Fanswer[$i] |\n";
+
+	$i++;
+	$h++;
+	}
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|TOTALS|                                                                                           | $BDansweredCALLS |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSERsummary_hourly.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_IVRfilter.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_IVRfilter.php new file mode 100644 index 00000000..b0dcc07d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_IVRfilter.php @@ -0,0 +1,249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 81030-0432 - First build +# 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; + +?> + + + + + +\n"; +echo "VICIDIAL: VDL IVR Filter Stats\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Rango de Fecha:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ADMIN | "; +echo "INFORMES\n"; +echo "\n"; + +echo "
\n"; + +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+$shift = 'ALL';
+
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "VDL: IVR Filter Stats:           $NOW_TIME\n";
+
+
+echo "\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "| CATEGORÍA             | CALLS   | UNIQUE  |      %  |\n";
+echo "+----------------------+---------+---------+---------+\n";
+
+
+$stmtA="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Entrantes_IVR_FILTER' and comment_b='CLEAN';";
+$rsltA=mysql_query($stmtA, $link);
+if ($DB) {echo "$stmtA\n";}
+$rowA=mysql_fetch_row($rsltA);
+
+$stmtB="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Entrantes_IVR_FILTER' and comment_b='NOT_FOUND';";
+$rsltB=mysql_query($stmtB, $link);
+if ($DB) {echo "$stmtB\n";}
+$rowB=mysql_fetch_row($rsltB);
+
+$stmtC="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Entrantes_IVR_FILTER' and comment_b='EXISTING' and comment_c='DNC';";
+$rsltC=mysql_query($stmtC, $link);
+if ($DB) {echo "$stmtC\n";}
+$rowC=mysql_fetch_row($rsltC);
+
+$stmtD="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Entrantes_IVR_FILTER' and comment_b='EXISTING' and comment_c='SALE';";
+$rsltD=mysql_query($stmtD, $link);
+if ($DB) {echo "$stmtD\n";}
+$rowD=mysql_fetch_row($rsltD);
+
+$stmtE="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='Entrantes_IVR_FILTER' and comment_b='EXISTING' and comment_c='ARCHIVE';";
+$rsltE=mysql_query($stmtE, $link);
+if ($DB) {echo "$stmtE\n";}
+$rowE=mysql_fetch_row($rsltE);
+
+
+$total = ($rowA[0] + $rowB[0] + $rowC[0] + $rowD[0] + $rowE[0]);
+$Utotal = ($rowA[1] + $rowB[1] + $rowC[1] + $rowD[1] + $rowE[1]);
+
+$agent =	sprintf("%7s", $rowA[0]);
+$Uagent =	sprintf("%7s", $rowA[1]);
+if ( ($Utotal < 1) or ($rowA[1] < 1) )
+	{$UagentPERCENT = '0';}
+else
+	{$UagentPERCENT = (($rowA[1] / $Utotal) * 100);   $UagentPERCENT = round($UagentPERCENT, 2);}
+$UagentPERCENT =	sprintf("%6s", $UagentPERCENT);
+
+$ntfnd =	sprintf("%7s", $rowB[0]);
+$Untfnd =	sprintf("%7s", $rowB[1]);
+if ( ($Utotal < 1) or ($rowB[1] < 1) )
+	{$UntfndPERCENT = '0';}
+else
+	{$UntfndPERCENT = (($rowB[1] / $Utotal) * 100);   $UntfndPERCENT = round($UntfndPERCENT, 2);}
+$UntfndPERCENT =	sprintf("%6s", $UntfndPERCENT);
+
+$prdnc =	sprintf("%7s", $rowC[0]);
+$Uprdnc =	sprintf("%7s", $rowC[1]);
+if ( ($Utotal < 1) or ($rowC[1] < 1) )
+	{$UprdncPERCENT = '0';}
+else
+	{$UprdncPERCENT = (($rowC[1] / $Utotal) * 100);   $UprdncPERCENT = round($UprdncPERCENT, 2);}
+$UprdncPERCENT =	sprintf("%6s", $UprdncPERCENT);
+
+$psale =	sprintf("%7s", $rowD[0]);
+$Upsale =	sprintf("%7s", $rowD[1]);
+if ( ($Utotal < 1) or ($rowD[1] < 1) )
+	{$UpsalePERCENT = '0';}
+else
+	{$UpsalePERCENT = (($rowD[1] / $Utotal) * 100);   $UpsalePERCENT = round($UpsalePERCENT, 2);}
+$UpsalePERCENT =	sprintf("%6s", $UpsalePERCENT);
+
+$archv =	sprintf("%7s", $rowE[0]);
+$Uarchv =	sprintf("%7s", $rowE[1]);
+if ( ($Utotal < 1) or ($rowE[1] < 1) )
+	{$UarchvPERCENT = '0';}
+else
+	{$UarchvPERCENT = (($rowE[1] / $Utotal) * 100);   $UarchvPERCENT = round($UarchvPERCENT, 2);}
+$UarchvPERCENT =	sprintf("%6s", $UarchvPERCENT);
+
+$total =	sprintf("%7s", $total);
+$Utotal =	sprintf("%7s", $Utotal);
+
+
+echo "| CALL SENT TO AGENTE   | $agent | $Uagent | $UagentPERCENT% |\n";
+echo "| CALLERID NOT FOUND   | $ntfnd | $Untfnd | $UntfndPERCENT% |\n";
+echo "| PREVIOUS DNC         | $prdnc | $Uprdnc | $UprdncPERCENT% |\n";
+echo "| PREVIOUS SALE        | $psale | $Upsale | $UpsalePERCENT% |\n";
+echo "| ARCHIVE ONLY         | $archv | $Uarchv | $UarchvPERCENT% |\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "|               TOTALS:| $total | $Utotal |\n";
+echo "+----------------------+---------+---------+\n";
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_IVRstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_IVRstats.php new file mode 100644 index 00000000..3dd35881 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_IVRstats.php @@ -0,0 +1,683 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81026-2026 - First build +# 81107-0341 - Added time range and option and 15-minute increment graph +# 81107-1148 - Added average times and totals +# 81108-0922 - Added no-callerID and unique caller counts +# 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "IVR Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Rango de Fecha:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Grupos De entrada: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "MODIFICAR | "; +echo "INFORMES | "; +echo "INFORME CLOSER \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "POR FAVOR SELECCIONE UN GRUPO EN EL PÁRRAFO ANTERIOR Y FECHA DE RANGO y haga clic en Enviar\n";
+	}
+
+else
+	{
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
+
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
+
+	##### Grab all records for the IVR for the specified time period
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
+		}
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
+		{
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
+		else
+			{
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			}
+		$p++;
+		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT LLAMADAS TOTALES INTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
+	else
+		{
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
+		}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- ESTADÍSTICAS DEL TIEMPO\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
+		}
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
+		{
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LLAMADAS TOTALES TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
+	}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_OUTBOUNDsummary_interval.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +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; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_VDADstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_VDADstats.php new file mode 100644 index 00000000..1074766b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_VDADstats.php @@ -0,0 +1,1412 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 60619-1718 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 61215-1139 - Added drop percentage of answered and round-2 decimal +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80620-0031 - Fixed human answered calculation for drop perfentage +# 80709-0230 - Added time stats to call statuses +# 80717-2118 - Added calls/hour out of agent login time in status summary +# 80722-2049 - Added Status Category stats +# 81109-2341 - Added Productivity Rating +# 90225-1140 - Changed to multi-campaign capability +# 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} + $i++; + } + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +?> + + + + + +\n"; +echo "Outbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Fechas:
"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campañas:
"; +echo "\n"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($group[0]) > 1) + { + echo " MODIFICAR | \n"; + echo " INFORMES \n"; + } +else + { + echo " CAMPAIGNS | \n"; + echo " INFORMES \n"; + } +echo "
"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n\n";
+	echo "SELECCIONE POR FAVOR Una CAMPAÚA Y La FECHA ARRIBA Y El TECLEO SOMETEN\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+
+	$OUToutput = '';
+	$OUToutput .= "Outbound Calling Stats                             $NOW_TIME\n";
+
+	$OUToutput .= "\n";
+	$OUToutput .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+	$OUToutput .= "---------- TOTALS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcallsRAW = $row[0];
+	$TOTALsec =		$row[1];
+	$inTOTALcallsRAW=0;
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$TOTALdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inTOTALcallsRAW =	$y;
+		$TOTALsec = ($TOTALsec + $inTOTALsec);
+		$inTOTALcalls =	sprintf("%10s", $inTOTALcallsRAW);
+		}
+
+	$TOTALcalls =	sprintf("%10s", $TOTALcallsRAW);
+	if ( ($row[0] < 1) or ($TOTALsec < 1) )
+		{$average_call_seconds = '         0';}
+	else
+		{
+		$average_call_seconds = ($TOTALsec / $TOTALcallsRAW);
+		$average_call_seconds = round($average_call_seconds, 2);
+		$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+		}
+
+	$OUToutput .= "Llamadas dentro de esta campaña $TOTALcalls\n";
+	$OUToutput .= "Longitud media para las llamadas en segundos: $average_call_seconds\n";
+	if (eregi("YES",$include_rollover))
+		{$OUToutput .= "Calls that went to rollover In-Grupo:         $inTOTALcalls\n";}
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- RESPUESTA HUMANOSAS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN($customer_interactive_statuses) $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$CIcallsRAW =	$row[0];
+	$CIsec =		$row[1];
+
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and vicidial_closer_log.status IN($customer_interactive_statuses) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$CIdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inCIsec =	($inCIsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inCIcallsRAW =	$y;
+		$CIsec = ($CIsec + $inCIsec);
+		$CIcallsRAW = ($CIcallsRAW + $inCIcallsRAW);
+		}
+
+	$CIcalls =	sprintf("%10s", $CIcallsRAW);
+	if ( ($CIcallsRAW < 1) or ($CIsec < 1) )
+		{$average_ci_seconds = '         0';}
+	else
+		{
+		$average_ci_seconds = ($CIsec / $CIcallsRAW);
+		$average_ci_seconds = round($average_ci_seconds, 2);
+		$average_ci_seconds =	sprintf("%10s", $average_ci_seconds);
+		}
+	$CIsec =		sec_convert($CIsec,'H'); 
+
+
+	$OUToutput .= "Total Respuesta humanaed calls for this Campaña: $CIcalls\n";
+	$OUToutput .= "Average Call Length for all HA in seconds:    $average_ci_seconds     Total Time: $CIsec\n";
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- DROPS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status='DROP' and (length_in_sec <= 6000 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$DROPcalls =	sprintf("%10s", $row[0]);
+	$DROPcallsRAW =	$row[0];
+	$DROPseconds =	$row[1];
+
+
+	# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+	$q=0;
+	$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+
+	$stmt = "SELECT distinct status,status_name,human_answered,category from vicidial_campaign_statuses $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+	$camp_ANS_STAT_SQL = eregi_replace(",$",'',$camp_ANS_STAT_SQL);
+
+
+	$stmt="select count(*) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN($camp_ANS_STAT_SQL);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$RESPUESTAcalls =	$row[0];
+
+	if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+		{$DROPpercent = '0';}
+	else
+		{
+		$DROPpercent = (($DROPcallsRAW / $TOTALcalls) * 100);
+		$DROPpercent = round($DROPpercent, 2);
+		}
+
+	if ( ($DROPcalls < 1) or ($RESPUESTAcalls < 1) )
+		{$DROPRESPUESTApercent = '0';}
+	else
+		{
+		$DROPRESPUESTApercent = (($DROPcallsRAW / $RESPUESTAcalls) * 100);
+		$DROPRESPUESTApercent = round($DROPRESPUESTApercent, 2);
+		}
+
+	if ( ($DROPseconds < 1) or ($DROPcallsRAW < 1) )
+		{$average_hold_seconds = '         0';}
+	else
+		{
+		$average_hold_seconds = ($DROPseconds / $DROPcallsRAW);
+		$average_hold_seconds = round($average_hold_seconds, 2);
+		$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+		}
+
+	$OUToutput .= "Total Outbound DROP Calls:                    $DROPcalls  $DROPpercent%\n";
+	$OUToutput .= "Percent of DROP Calls taken out of Answers:   $DROPcalls / $RESPUESTAcalls  $DROPRESPUESTApercent%\n";
+
+	if (eregi("YES",$include_rollover))
+		{
+		if ( ($DROPcalls < 1) or ($CIcallsRAW < 1) )
+			{$inDROPRESPUESTApercent = '0';}
+		else
+			{
+			$inDROPRESPUESTApercent = (($DROPcallsRAW / $CIcallsRAW) * 100);
+			$inDROPRESPUESTApercent = round($inDROPRESPUESTApercent, 2);
+			}
+
+		$OUToutput .= "Percent of DROP/Answer Calls with Rollover:   $DROPcalls / $CIcallsRAW  $inDROPRESPUESTApercent%\n";
+		}
+
+	$OUToutput .= "Longitud media para las llamadas DROP en segundos:    $average_hold_seconds\n";
+
+	$stmt = "select closer_campaigns from vicidial_campaigns $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	$ccamps_to_print = mysql_num_rows($rslt);
+	$c=0;
+	while ($ccamps_to_print > $c)
+		{
+		$row=mysql_fetch_row($rslt);
+		$closer_campaigns = $row[0];
+		$closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns);
+		$closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
+		$closer_campaignsSQL .= "'$closer_campaigns',";
+		$c++;
+		}
+	$closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL);
+
+	$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($closer_campaignsSQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$TOTALanswers = ($row[0] + $RESPUESTAcalls);
+
+
+	$stmt = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$agent_non_pause_sec = $row[0];
+
+	if ($agent_non_pause_sec > 0)
+		{
+		$AVG_RESPUESTAagent_non_pause_sec = (($TOTALanswers / $agent_non_pause_sec) * 60);
+		$AVG_RESPUESTAagent_non_pause_sec = round($AVG_RESPUESTAagent_non_pause_sec, 2);
+		}
+	else
+		{$AVG_RESPUESTAagent_non_pause_sec=0;}
+	$AVG_RESPUESTAagent_non_pause_sec = sprintf("%10s", $AVG_RESPUESTAagent_non_pause_sec);
+
+	$OUToutput .= "Productivity Rating:                          $AVG_RESPUESTAagent_non_pause_sec\n";
+
+
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- AUTO-DIAL SIN RESPUESTA\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN('NA','B') and (length_in_sec <= 60 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$NAcalls =	sprintf("%10s", $row[0]);
+	if ( ($NAcalls < 1) or ($TOTALcalls < 1) )
+		{$NApercent = '0';}
+	else
+		{
+		$NApercent = (($NAcalls / $TOTALcalls) * 100);
+		$NApercent = round($NApercent, 2);
+		}
+
+	if ( ($row[0] < 1) or ($row[1] < 1) )
+		{$average_na_seconds = '         0';}
+	else
+		{
+		$average_na_seconds = ($row[1] / $row[0]);
+		$average_na_seconds = round($average_na_seconds, 2);
+		$average_na_seconds =	sprintf("%10s", $average_na_seconds);
+		}
+
+	$OUToutput .= "Total NA calls -Busy,Disconnect,RingNoAnswer: $NAcalls  $NApercent%\n";
+	$OUToutput .= "Longitud media para las Llamadas sin Respuesta en segundos:       $average_na_seconds\n";
+
+
+	##############################
+	#########  CONVOCATORIA colgar RAZÓN ESTADÍSTICAS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CONVOCATORIA colgar RAZÓN ESTADÍSTICAS\n";
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| HANGUP REASON        | CALLS      |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+	$stmt="select count(*),term_reason from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by term_reason;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$reasons_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $reasons_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$TOTALcalls = ($TOTALcalls + $row[0]);
+
+		$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+		$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+		if (ereg("NONE",$reason))	{$reason = 'NO RESPUESTA           ';}
+		if (ereg("CALLER",$reason)) {$reason = 'CUSTOMER            ';}
+
+		$OUToutput .= "| $reason | $REASONcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| TOTAL:               | $TOTALcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+
+
+	##############################
+	#########  CALL STATUS STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CALL STATUS STATS\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+----------------------------------+----------+\n";
+	$OUToutput .= "|        |                      |                      |            |      CALL TIME                   |AGENTE TIME|\n";
+	$OUToutput .= "| STATUS | DESCRIPTION          | CATEGORÍA             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|CALLS/HOUR|\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+
+	$campaignSQL = "$group_SQLand";
+	if (eregi("YES",$include_rollover))
+		{$campaignSQL = "$both_group_SQLand";}
+	## Pull the count of agent seconds for the total tally
+	$stmt="SELECT sum(pause_sec + wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $campaignSQL and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000;";
+	$rslt=mysql_query($stmt, $link);
+	$Ctally_to_print = mysql_num_rows($rslt);
+	if ($Ctally_to_print > 0) 
+		{
+		$rowx=mysql_fetch_row($rslt);
+		$AGENTsec = "$rowx[0]";
+		}
+	if ($DB) {$OUToutput .= "$AGENTsec|$Ctally_to_print|$stmt\n";}
+
+
+	## get counts and time totals for all statuses in this campaign
+	$rollover_exclude_dropSQL='';
+	if (eregi("YES",$include_rollover))
+		{$rollover_exclude_dropSQL = "and status NOT IN('DROP')";}
+	$stmt="select count(*),status,sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $rollover_exclude_dropSQL $group_SQLand group by status;";
+
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$STATUScountARY[$i] =	$row[0];
+		$RAWstatusARY[$i] =		$row[1];
+		$RAWhoursARY[$i] =		$row[2];
+		$statusSQL .=			"'$row[1]',";
+		$i++;
+		}
+	if (eregi("YES",$include_rollover))
+		{
+		if (strlen($statusSQL) < 2)
+			{$statusSQL = "''";}
+		else
+			{
+			$statusSQL = eregi_replace(",$",'',$statusSQL);
+			}
+		$stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status NOT IN($statusSQL) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		$inS_statuses_to_print = mysql_num_rows($rslt);
+		$n=0;
+		while ($inS_statuses_to_print > $n) 
+			{
+			$rowx=mysql_fetch_row($rslt);
+			$STATUScountARY[$i] =	0;
+			$RAWstatusARY[$i] =		$rowx[0];
+			$RAWhoursARY[$i] =		0;
+			$i++;
+			$n++;
+			$statuses_to_print++;
+			}
+		}
+
+
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$STATUScount = $STATUScountARY[$i];
+		$RAWstatus = $RAWstatusARY[$i];
+		$RAWhours = $RAWhoursARY[$i];
+
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status='$RAWstatus' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			$in_statuses_to_print = mysql_num_rows($rslt);
+			if ($in_statuses_to_print > 0) 
+				{
+				$rowx=mysql_fetch_row($rslt);
+				$inSTATUScount =	$rowx[0];
+				$inRAWhours =		$rowx[1];
+
+				$STATUScount = ($STATUScount + $inSTATUScount);
+				$RAWhours = ($RAWhours + $inRAWhours);
+				}
+			}
+
+		$r=0;
+		while ($r < $statcats_to_print)
+			{
+			if ($statcat_list[$RAWstatus] == "$vsc_id[$r]")
+				{
+				$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+				}
+			$r++;
+			}
+		if ($AGENTsec < 1) {$AGENTsec=1;}
+		$TOTALcalls =	($TOTALcalls + $STATUScount);
+		$TOTALtimeS =	($TOTALtimeS + $RAWhours);
+		$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );
+			$STATUSrate =	sprintf("%.2f", $STATUSrate);
+		$AGENTrate =	($STATUScount / ($AGENTsec / 3600) );
+			$AGENTrate =	sprintf("%.2f", $AGENTrate);
+
+		$STATUShours =		sec_convert($RAWhours,'H'); 
+		$STATUSavg_sec =	($RAWhours / $STATUScount); 
+		$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+		$STATUScount =	sprintf("%10s", $STATUScount);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+		$status =	sprintf("%-6s", $RAWstatus);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+		$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+		$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+		$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+		$AGENTrate =	sprintf("%8s", $AGENTrate);while(strlen($AGENTrate)>8) {$AGENTrate = substr("$AGENTrate", 0, -1);}
+
+		if ($non_latin < 1)
+			{
+			$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+			while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+			$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+			while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+			}
+		else
+			{
+			$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+			while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+			$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+			while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+			}
+
+		$OUToutput .= "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate | $AGENTrate |\n";
+
+		$i++;
+		}
+
+	if ($TOTALcalls < 1)
+		{
+		$TOTALhours =	'0:00:00';
+		$TOTALavg =		'0:00:00';
+		$TOTALrate =	'0.00';
+		}
+	else
+		{
+		$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );
+			$TOTALrate =	sprintf("%.2f", $TOTALrate);
+		$aTOTALrate =	($TOTALcalls / ($AGENTsec / 3600) );
+			$aTOTALrate =	sprintf("%.2f", $aTOTALrate);
+
+		$aTOTALhours =		sec_convert($AGENTsec,'H'); 
+		$TOTALhours =		sec_convert($TOTALtimeS,'H'); 
+		$TOTALavg_sec =		($TOTALtimeS / $TOTALcalls);
+		$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+		}
+	$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+	$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+	$aTOTALhours =	sprintf("%10s", $aTOTALhours);while(strlen($aTOTALhours)>10) {$aTOTALhours = substr("$aTOTALhours", 0, -1);}
+	$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+	$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+	$aTOTALrate =	sprintf("%8s", $aTOTALrate);while(strlen($aTOTALrate)>8) {$aTOTALrate = substr("$aTOTALrate", 0, -1);}
+
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+	$OUToutput .= "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |          |\n";
+#	$OUToutput .= "|   AGENT TIME                                                      | $aTOTALhours |                     | $aTOTALrate |\n";
+	$OUToutput .= "+------------------------------------------------------+------------+------------+---------------------+----------+\n";
+
+
+
+
+
+	##############################
+	#########  ID DE LA LISTA BREAKDOWN STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ID DE LA LISTA STATS\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| LIST                                     | CALLS      |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+	$stmt="select count(*),list_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by list_id;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$listids_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$LISTIDcalls[$i] =	$row[0];
+		$LISTIDlists[$i] =	$row[1];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$stmt="select list_name from vicidial_lists where list_id='$LISTIDlists[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$list_name_to_print = mysql_num_rows($rslt);
+		if ($list_name_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$LISTIDlist_names[$i] =	$row[0];
+			}
+
+		$TOTALcalls = ($TOTALcalls + $LISTIDcalls[$i]);
+
+		$LISTIDcount =	sprintf("%10s", $LISTIDcalls[$i]);while(strlen($LISTIDcount)>10) {$LISTIDcount = substr("$LISTIDcount", 0, -1);}
+		$LISTIDname =	sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
+
+		$OUToutput .= "| $LISTIDname | $LISTIDcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| TOTAL:                                   | $TOTALcalls |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+
+
+
+
+	if ( ($carrier_logging_active > 0) and ($carrier_stats == 'YES') )
+		{
+		##############################
+		#########  STATUS CATEGORÍA STATS
+
+		$OUToutput .= "\n";
+		$OUToutput .= "---------- CARRIER CALL STATUSES\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| STATUS               | CALLS      |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+
+		## get counts and time totals for all statuses in this campaign
+		$stmt="select dialstatus,count(*) from vicidial_carrier_log vcl,vicidial_log vl where vcl.uniqueid=vl.uniqueid and vcl.call_date > \"$query_date_BEGIN\" and vcl.call_date < \"$query_date_END\" and vl.call_date > \"$query_date_BEGIN\" and vl.call_date < \"$query_date_END\" $group_SQLand group by dialstatus order by dialstatus;";
+		if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$carrierstatuses_to_print = mysql_num_rows($rslt);
+		$i=0;
+		while ($i < $carrierstatuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$TOTCARcalls = ($TOTCARcalls + $row[1]);
+			$CARstatus =	sprintf("%-20s", $row[0]); while(strlen($CARstatus)>20) {$CARstatus = substr("$CARstatus", 0, -1);}
+			$CARcount =		sprintf("%10s", $row[1]); while(strlen($CARcount)>10) {$CARcount = substr("$CARcount", 0, -1);}
+
+			$OUToutput .= "| $CARstatus | $CARcount |\n";
+
+			$i++;
+			}
+
+		$TOTCARcalls =	sprintf("%10s", $TOTCARcalls); while(strlen($TOTCARcalls)>10) {$TOTCARcalls = substr("$TOTCARcalls", 0, -1);}
+
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| TOTAL                | $TOTCARcalls |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		}
+
+
+	##############################
+	#########  STATUS CATEGORÍA STATS
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CUSTOM STATUS CATEGORÍA STATS\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| CATEGORÍA             | CALLS      | DESCRIPTION                    |\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+
+
+	$TOTCATcalls=0;
+	$r=0;
+	while ($r < $statcats_to_print)
+		{
+		if ($vsc_id[$r] != 'UNDEFINED')
+			{
+			$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+			$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+			$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+			$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+			$OUToutput .= "| $category | $CATcount | $CATname |\n";
+			}
+		$r++;
+		}
+
+	$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| TOTAL                | $TOTCATcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+	##############################
+	#########  USER STATS
+
+	$TOTagents=0;
+	$TOTcalls=0;
+	$TOTtime=0;
+	$TOTavg=0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- AGENTE STATS\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| AGENTE                    | CALLS      | TIME H:M:S |AVERAGE |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\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_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$RAWuser[$i] =			$row[0];
+		$RAWfull_name[$i] =		$row[1];
+		$RAWuser_calls[$i] =	$row[2];
+		$RAWuser_talk[$i] =		$row[3];
+		$RAWuser_average[$i] =	$row[4];
+
+		$TOTcalls = ($TOTcalls + $row[2]);
+		$TOTtime = ($TOTtime + $row[3]);
+
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$user =	sprintf("%-6s", $RAWuser[$i]);while(strlen($user)>6) {$user = substr("$user", 0, -1);}
+		if ($non_latin < 1)
+			{
+			$full_name =	sprintf("%-15s", $RAWfull_name[$i]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+			}
+		else
+			{
+			$full_name =	sprintf("%-45s", $RAWfull_name[$i]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$length_in_secZ=0;
+			$queue_secondsZ=0;
+			$agent_alert_delayZ=0;
+			$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and user='$RAWuser[$i]' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_printZ = mysql_num_rows($rslt);
+			$y=0;
+			while ($y < $INallcalls_to_printZ)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				$length_in_secZ = $row[0];
+				$queue_secondsZ = $row[1];
+				$agent_alert_delayZ = $row[2];
+
+				$CIdelay =		round($agent_alert_delayZ / 1000);
+				$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+				if ($thiscallsec < 0)
+					{$thiscallsec = 0;}
+				$inCIsec =	($inCIsec + $thiscallsec);	
+
+				$y++;
+				}
+
+			$inCIcallsRAW =	$y;
+			$RAWuser_talk[$i] = ($RAWuser_talk[$i] + $inCIsec);
+			$RAWuser_calls[$i] = ($RAWuser_calls[$i] + $inCIcallsRAW);
+
+			$TOTcalls = ($TOTcalls + $inCIcallsRAW);
+			$TOTtime = ($TOTtime + $inCIsec);
+			}
+
+		$USERcalls =	sprintf("%10s", $RAWuser_calls[$i]);
+		$USERtotTALK =	$RAWuser_talk[$i];
+		$USERavgTALK =	round($RAWuser_talk[$i] / $RAWuser_calls[$i]);
+
+		$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+		$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+		$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+		$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+		$OUToutput .= "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+		$i++;
+		}
+
+	$rawTOTtime = $TOTtime;
+
+	if (!$TOTcalls) {$TOTcalls = 1;}
+	$TOTavg = ($TOTtime / $TOTcalls);
+
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+	$TOTagents =		sprintf("%10s", $i);
+	$TOTcalls =			sprintf("%10s", $TOTcalls);
+	$TOTtime =			sprintf("%8s", $TOTtime);
+	$TOTavg =			sprintf("%6s", $TOTavg);
+
+	$stmt="select avg(wait_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$AVGwait = $row[0];
+	$AVGwait_MS =	sec_convert($AVGwait,'H'); 
+	$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| TOTAL Agentes: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| Average Wait time between calls                      $AVGwait |\n";
+	$OUToutput .= "+-------------------------------------------------------------+\n";
+
+
+
+	if ($costformat > 0)
+		{
+		$stmt="select campaign_id,phone_number,length_in_sec from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user=vicidial_users.user;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$allcalls_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $allcalls_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			if ($print_calls > 0)
+				{echo "$row[0]\t$row[1]\t$row[2]\n";}
+			$tempTALK = ($tempTALK + $row[2]);
+			$w++;
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select campaign_id,phone_number,length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_print = mysql_num_rows($rslt);
+			$w=0;
+			while ($w < $INallcalls_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				if ($print_calls > 0)
+				{	echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\n";}
+				$newTALK = ($row[2] - $row[3] - ($row[4] / 1000) );
+				if ($newTALK < 0) {$newTALK = 0;}
+				$tempTALK = ($tempTALK + $newTALK);
+				$w++;
+				}
+			}
+		$tempTALKmin = ($tempTALK  / 60);
+		if ($print_calls > 0)
+			{echo "$w\t$tempTALK\t$tempTALKmin\n";}
+
+		echo "
\n"; + $rawTOTtalk_min = round($tempTALK / 60); + $outbound_cost = ($rawTOTtalk_min * $outbound_rate); + $outbound_cost = sprintf("%8.2f", $outbound_cost); + + echo "SALIENTE $query_date to $end_date,   $rawTOTtalk_min minutes at \$$outbound_rate = \$$outbound_cost\n"; + + exit; + } + + + echo "$OUToutput"; + + + + + if ($bottom_graph == 'YES') + { + ############################## + ######### TIME STATS + + echo "\n"; + echo "---------- ESTADÍSTICAS DEL TIEMPO\n"; + + echo "\n"; + + $hi_hour_count=0; + $last_full_record=0; + $i=0; + $h=0; + 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' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + $h++; + } + + if ($hi_hour_count < 1) + {$hour_multiplier = 0;} + else + { + $hour_multiplier = (100 / $hi_hour_count); + #$hour_multiplier = round($hour_multiplier, 0); + } + + echo "\n"; + echo "GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LAS LLAMADAS TOTALES PUESTAS DE ESTA CAMPAÚA\n"; + + $k=1; + $Mk=0; + $call_scale = '0'; + while ($k <= 102) + { + if ($Mk >= 5) + { + $Mk=0; + if ( ($k < 1) or ($hour_multiplier <= 0) ) + {$scale_num = 100;} + else + { + $scale_num=($k / $hour_multiplier); + $scale_num = round($scale_num, 0); + } + $LENscale_num = (strlen($scale_num)); + $k = ($k + $LENscale_num); + $call_scale .= "$scale_num"; + } + else + { + $call_scale .= " "; + $k++; $Mk++; + } + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + #echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | DROPS | TOTAL |\n"; + echo "| HOUR |$call_scale| DROPS | TOTAL |\n"; + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + $ZZ = '00'; + $i=0; + $h=4; + $hour= -1; + $no_lines_yet=1; + + while ($i <= 96) + { + $char_counter=0; + $time = ' '; + if ($h >= 4) + { + $hour++; + $h=0; + if ($hour < 10) {$hour = "0$hour";} + $time = "+$hour$ZZ+"; + } + if ($h == 1) {$time = " 15 ";} + if ($h == 2) {$time = " 30 ";} + if ($h == 3) {$time = " 45 ";} + $Ghour_count = $hour_count[$i]; + if ($Ghour_count < 1) + { + if ( ($no_lines_yet) or ($i > $last_full_record) ) + { + $do_nothing=1; + } + else + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + echo "|$time|"; + $k=0; while ($k <= 102) {echo " "; $k++;} + echo "| $hour_count[$i] |\n"; + } + } + else + { + $no_lines_yet=0; + $Xhour_count = ($Ghour_count * $hour_multiplier); + $Yhour_count = (99 - $Xhour_count); + + $Gdrop_count = $drop_count[$i]; + if ($Gdrop_count < 1) + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;} + echo "*X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 101) {echo " "; $char_counter++;} + echo "| 0 | $hour_count[$i] |\n"; + + } + else + { + $Xdrop_count = ($Gdrop_count * $hour_multiplier); + + # if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);} + + $XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 ); + + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + $drop_count[$i] = sprintf("%-5s", $drop_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xdrop_count) {echo ">"; $k++; $char_counter++;} + echo "D"; $char_counter++; + $k=0; while ($k <= $XXhour_count) {echo "*"; $k++; $char_counter++;} + echo "X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 102) {echo " "; $char_counter++;} + echo "| $drop_count[$i] | $hour_count[$i] |\n"; + } + } + + + $i++; + $h++; + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + ### END bottom graph + } + + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\nRun Time: $RUNtime seconds\n"; + } + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_VICIDIAL_hopperlist.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_VICIDIAL_hopperlist.php new file mode 100644 index 00000000..9dd8bc48 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_VICIDIAL_hopperlist.php @@ -0,0 +1,167 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1654 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70115-1614 - Added ALT field for vicidial_hopper alt_dial column +# 71029-0852 - Added list_id to the output +# 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$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 and view_reports='1' and modify_campaigns='1';"; + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.10.15';} + +$stmt="select campaign_id,campaign_name from vicidial_campaigns order by campaign_id;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $campaign_id[$i] =$row[0]; + $campaign_name[$i] =$row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Lista De Hopper Report\n"; +echo "
\n"; +#echo "\n"; +#echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFICAR \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "SELECCIONE POR FAVOR Una CAMPAÚA ARRIBA Y El TECLEO SOMETE\n";
+	}
+
+else
+	{
+	echo "Live Current Lista De Hopper                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALS\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Total de Leads en el hopper ahora mismo:       $TOTALcalls\n";
+
+
+	##############################
+	#########  LEAD STATS
+
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |PRIORIDAD| LEAD ID   | ID DE LA LISTA    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
+
+
+?>
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_admin_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_admin_log_display.php new file mode 100644 index 00000000..c0cf6161 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_admin_log_display.php @@ -0,0 +1,118 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$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_admin_log_display.php +# +# CHANGES +# 50325-0932 - First build +# 51123-1443 - removed globals=on requirement +# 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'; +$build = '60620-1044'; + +$STARTtime = date("U"); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 8 and view_reports='1';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "VICIDIAL ADMIN LOG DISPLAY"; +echo "\n"; + +# Fri, 25 Mar 2005 + +$DAY_DATE = date("j"); +if ($DAY_DATE < 10) +# {$GREP_DATE = date("D, j M Y");} + {$GREP_DATE = date("D, 0j M Y");} +else + {$GREP_DATE = date("D, j M Y");} + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!$query_date) {$query_date = $GREP_DATE;} + +$Gquery_date = eregi_replace(" ",'\ ',$query_date); +echo "\n"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+echo "VICIDIAL ADMIN Change Log                             $NOW_TIME\n";
+
+#passthru("grep $Gquery_date /home/www/htdocs/vicidial/admin_changes_log.txt");
+passthru("grep $Gquery_date $WeBServeRRooT/vicidial/admin_changes_log.txt");
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_days_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_days_detail.php new file mode 100644 index 00000000..7de56a11 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_days_detail.php @@ -0,0 +1,602 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-2202 - First build +# 90225-1051 - Added CSV download option +# 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&shift=$shift&DB=$DB&user=$user$groupQS"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Situación días Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n";
+	echo "POR FAVOR SELECCIONE UN USUARIO Y FECHA-TEMNE ARRIBA Y HAGA CLICK ENVIAR\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Situación días Report: $user                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- AGENTE Detalles -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Situación días Report: $user                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$dates='-';
+	$datesARY[0]='';
+	$date_namesARY[0]='';
+	$k=0;
+
+	$stmt="select date_format(event_time, '%Y-%m-%d') as date,count(*) as calls,status 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 vicidial_agent_log.user='$user' $group_SQL $user_group_SQL group by date,status order by date,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[1] > 0) and (strlen($row[2]) > 0) )
+			{
+			$date[$i] =			$row[0];
+			$calls[$i] =		$row[1];
+			$status[$i] =		$row[2];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$date[$i]-", $dates))
+				{
+				$dates .= "$date[$i]-";
+				$datesARY[$k] = $date[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| DATE       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "DATE,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Sdate=$datesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+	#			if ( (eregi("$date[$i]", $Sdate)) and ($Sstatus=="$status[$i]") )
+				if ( ($Sdate=="$date[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWdate = $Sdate;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		$Sdate =		sprintf("%-10s", $Sdate);
+			while(strlen($Suser)>10) {$Suser = substr("$Sdate", 0, -1);}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sdate | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWdate,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdate) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			{
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+			}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+
+	if ($file_download < 1)
+		{
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| TOTALS     | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + + +if ($file_download > 0) + { + $US='_'; + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_DAYS_$user$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + + + +echo "
\n"; +echo "
Fechas:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campañas:
"; +echo "\n"; +echo "
Usuario:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($user) > 1) + { + echo " DESCARGAR | \n"; + echo " USER | \n"; + echo " USER STATS | \n"; + } +else + {echo " USUARIOS | \n";} +echo "INFORMES \n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "              \n";}
+	else
+		{
+		echo "              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 120 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_performance.php
new file mode 100644
index 00000000..db5b2957
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_performance.php
@@ -0,0 +1,258 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1711 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars
+# 90508-0644 - Changed to PHP long tags
+#
+
+require("dbconnect.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["group"]))				{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))		{$group=$_POST["group"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))		{$query_date=$_POST["query_date"];}
+if (isset($_GET["shift"]))				{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))		{$shift=$_POST["shift"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["ENVIAR"]))				{$ENVIAR=$_GET["ENVIAR"];}
+	elseif (isset($_POST["ENVIAR"]))		{$ENVIAR=$_POST["ENVIAR"];}
+
+$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 and view_reports='1';";
+	if ($DB) {echo "|$stmt|\n";}
+	if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	$row=mysql_fetch_row($rslt);
+	$auth=$row[0];
+
+  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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+?>
+
+
+
+
+
+\n";
+echo "VICIDIAL: Agent Performance\n";
+echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFICAR | INFORMES \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A SERVIDOR AND DATE-TIME ABOVE AND CLICK ENVIAR\n";
+echo " NOTE: stats taken from 6 hour shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = "$query_date 08:45:00";   
+	$query_date_END = "$query_date 15:33:00";
+	$time_BEGIN = "08:45:00";   
+	$time_END = "15:33:00";
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = "$query_date 15:33:00";   
+	$query_date_END = "$query_date 23:15:00";
+	$time_BEGIN = "15:33:00";   
+	$time_END = "23:15:00";
+	}
+
+echo "VICIDIAL: Agent Performance                             $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Detalles -------------\n\n";
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "| USER NAME       | ID       | CALLS  | TALK   | TALKAVG| A    | B    | DC   | DNC  | N    | NI   | SALE |\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='" . mysql_real_escape_string($group) . "' group by full_name order by calls desc limit 1000;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$TOTcalls=($TOTcalls + $row[0]);
+	$TOTtotTALK=($TOTtotTALK + $row[1]);
+	$calls[$i] =	sprintf("%-6s", $row[0]);
+
+	if ($non_latin < 1)
+	{
+   	 $full_name[$i]=	sprintf("%-15s", $row[2]); 
+	 while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}
+
+	 $user[$i] =		sprintf("%-6s", $row[3]);
+        while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+       }
+	else
+	{	
+        $full_name[$i]=	sprintf("%-45s", $row[2]); 
+	 while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}
+
+ 	 $user[$i] =		sprintf("%-18s", $row[3]);
+	 while(mb_strlen($user[$i],'utf-8')>6) {$user[$i] = mb_substr("$user[$i]", 0, -1,'utf-8');}
+	}
+
+	$user[$i] =		sprintf("%-8s", $row[3]);
+	$USERtotTALK =	$row[1];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_M = ($USERtotTALK / 60);
+	$USERtotTALK_M = round($USERtotTALK_M, 2);
+	$USERtotTALK_M_int = intval("$USERtotTALK_M");
+	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
+	$USERtotTALK_S = ($USERtotTALK_S * 60);
+	$USERtotTALK_S = round($USERtotTALK_S, 0);
+	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
+	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
+	$pfUSERtotTALK_MS[$i] =		sprintf("%6s", $USERtotTALK_MS);
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$pfUSERavgTALK_MS[$i] =		sprintf("%6s", $USERavgTALK_MS);
+	$i++;
+	}
+
+$k=0;
+while($k < $i)
+	{
+	$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='" . mysql_real_escape_string($group) . "' group by status;";
+	if ($non_latin > 0)
+	{
+	$rslt=mysql_query("SET NAMES 'UTF8'");
+	}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$m=0;
+	while ($m < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($row[1] == 'A') {$ctA[$k]=sprintf("%-4s", $row[0]);		$TOT_A = ($TOT_A + $row[0]);}
+		if ($row[1] == 'B') {$ctB[$k]=sprintf("%-4s", $row[0]);		$TOT_B = ($TOT_B + $row[0]);}
+		if ($row[1] == 'DC') {$ctDC[$k]=sprintf("%-4s", $row[0]);	$TOT_DC = ($TOT_DC + $row[0]);}
+		if ($row[1] == 'DNC') {$ctDNC[$k]=sprintf("%-4s", $row[0]);	$TOT_DNC = ($TOT_DNC + $row[0]);}
+		if ($row[1] == 'N') {$ctN[$k]=sprintf("%-4s", $row[0]);		$TOT_N = ($TOT_N + $row[0]);}
+		if ($row[1] == 'NI') {$ctNI[$k]=sprintf("%-4s", $row[0]);	$TOT_NI = ($TOT_NI + $row[0]);}
+		if (($row[1] == 'SALE') || ($row[1] == 'XFER') ) {$ctSALE[$k]=sprintf("%-4s", $row[0]);	$TOT_SALE = ($TOT_SALE + $row[0]);}
+		$m++;
+		}
+	echo "| $full_name[$k] | $user[$k] | $calls[$k] | $pfUSERtotTALK_MS[$k] | $pfUSERavgTALK_MS[$k] | $ctA[$k] | $ctB[$k] | $ctDC[$k] | $ctDNC[$k] | $ctN[$k] | $ctNI[$k] | $ctSALE[$k] |\n";
+
+
+
+	$k++;
+	}
+
+	$TOTcalls =	sprintf("%-7s", $TOTcalls);
+
+	$TOTtotTALK_M = ($TOTtotTALK / 60);
+	$TOTtotTALK_M = round($TOTtotTALK_M, 2);
+	$TOTtotTALK_M_int = intval("$TOTtotTALK_M");
+	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
+	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
+	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
+	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
+	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
+	$TOTtotTALK_MS =		sprintf("%7s", $TOTtotTALK_MS);
+		while(strlen($TOTtotTALK_MS)>7) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+
+	$TOT_A = sprintf("%-5s", $TOT_A);
+	$TOT_B = sprintf("%-5s", $TOT_B);
+	$TOT_DC = sprintf("%-5s", $TOT_DC);
+	$TOT_DNC = sprintf("%-5s", $TOT_DNC);
+	$TOT_N = sprintf("%-5s", $TOT_N);
+	$TOT_NI = sprintf("%-5s", $TOT_NI);
+	$TOT_SALE = sprintf("%-5s", $TOT_SALE);
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "|  TOTALS                    | $TOTcalls| $TOTtotTALK_MS|        | $TOT_A| $TOT_B| $TOT_DC| $TOT_DNC| $TOT_N| $TOT_NI| $TOT_SALE|\n";
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+
+echo "\n";
+
+}
+
+
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_performance_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_performance_detail.php
new file mode 100644
index 00000000..6c7ab5c3
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_performance_detail.php
@@ -0,0 +1,822 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 71119-2359 - First build
+# 71121-0144 - Replace existing AST_agent_performance_detail.php script with this one
+#            - Fixed zero division bug
+# 71218-1155 - added end_date for multi-day reports
+# 80428-0144 - UTF8 cleanup
+# 80712-1007 - tally bug fixes and time display change
+# 81030-0346 - Added pause code stats
+# 81030-1924 - Added total non-pause and total logged-in time to pause code section
+# 81108-0716 - fixed user same-name bug
+# 81110-0056 - fixed pause code display bug
+# 90310-2039 - Admin header
+# 90508-0644 - Changed to PHP long tags
+# 90523-0935 - Rewrite of seconds to minutes and hours conversion
+# 90717-1500 - Changed to be multi-campaign, multi-user-group select
+# 90908-1058 - Added DEAD time statistics
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["ENVIAR"]))					{$ENVIAR=$_GET["ENVIAR"];}
+	elseif (isset($_POST["ENVIAR"]))		{$ENVIAR=$_POST["ENVIAR"];}
+
+
+if (strlen($shift)<2) {$shift='ALL';}
+
+$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&group=$group&user_group=$user_group&shift=$shift&DB=$DB";
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} +?> + + + + + +\n"; +echo "Agent Performance Detalle\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Fechas:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campañas:
"; +echo "\n"; +echo "
Grupos De Usuario:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " INFORMES \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "POR FAVOR SELECCIONE UNA CAMPAÑA Y FECHA-TEMNE ANTERIOR Y HAGA CLICK ENVIAR\n";
+echo " NOTE: stats taken from shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+else {$ugSQL='';}
+
+echo "Agent Performance Detalle                        $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Detalles -------------\n\n";
+
+
+
+
+
+$statuses='-';
+$statusesTXT='';
+$statusesHEAD='';
+$statusesHTML='';
+$statusesARY[0]='';
+$j=0;
+$users='-';
+$usersARY[0]='';
+$user_namesARY[0]='';
+$k=0;
+
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_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 pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+#	$row[0] = ($row[0] - 1);	# subtract 1 for login/logout event compensation
+	
+	$calls[$i] =		$row[0];
+	$talk_sec[$i] =		$row[1];
+	$full_name[$i] =	$row[2];
+	$user[$i] =			$row[3];
+	$pause_sec[$i] =	$row[4];
+	$wait_sec[$i] =		$row[5];
+	$dispo_sec[$i] =	$row[6];
+	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
+	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+		{
+		$statusesTXT = sprintf("%8s", $status[$i]);
+		$statusesHEAD .= "----------+";
+		$statusesHTML .= " $statusesTXT |";
+		$statuses .= "$status[$i]-";
+		$statusesARY[$j] = $status[$i];
+		$j++;
+		}
+	if (!eregi("-$user[$i]-", $users))
+		{
+		$users .= "$user[$i]-";
+		$usersARY[$k] = $user[$i];
+		$user_namesARY[$k] = $full_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "CALL STATS BREAKDOWN:\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+while ($m < $k)
+	{
+	$Suser=$usersARY[$m];
+	$Sfull_name=$user_namesARY[$m];
+	$Stime=0;
+	$Scalls=0;
+	$Stalk_sec=0;
+	$Spause_sec=0;
+	$Swait_sec=0;
+	$Sdispo_sec=0;
+	$Sdead_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$Stalk_sec =	($Stalk_sec + $talk_sec[$i]);
+				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
+				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
+				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
+				$SstatusTXT = sprintf("%8s", $calls[$i]);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	$TOTcalls=($TOTcalls + $Scalls);
+	$TOTtime=($TOTtime + $Stime);
+	$TOTtotTALK=($TOTtotTALK + $Stalk_sec);
+	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
+		else {$Stalk_avg=0;}
+	if ( ($Scalls > 0) and ($Spause_sec > 0) ) {$Spause_avg = ($Spause_sec/$Scalls);}
+		else {$Spause_avg=0;}
+	if ( ($Scalls > 0) and ($Swait_sec > 0) ) {$Swait_avg = ($Swait_sec/$Scalls);}
+		else {$Swait_avg=0;}
+	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
+		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
+
+	$RAWuser = $Suser;
+	$RAWcalls = $Scalls;
+	$Scalls =	sprintf("%6s", $Scalls);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{	
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
+
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
+	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
+
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
+
+	$TOPsorted_output[$m] = $Toutput;
+
+	if ($stage == 'ID')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'CALLS')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'TIME')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if (!ereg("ID|TIME|CALLS",$stage))
+		{echo "$Toutput";}
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+if (ereg("ID|TIME|CALLS",$stage))
+	{
+	if (ereg("ID",$stage))
+		{sort($TOPsort, SORT_NUMERIC);}
+	if (ereg("TIME|CALLS",$stage))
+		{rsort($TOPsort, SORT_NUMERIC);}
+
+	$m=0;
+	while ($m < $k)
+		{
+		$sort_split = explode("-----",$TOPsort[$m]);
+		$i = $sort_split[1];
+		$sort_order[$m] = "$i";
+		echo "$TOPsorted_output[$i]";
+		$m++;
+		}
+	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $rows_to_print)
+		{
+		if ($Sstatus=="$status[$i]")
+			{
+			$Scalls =		($Scalls + $calls[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$SUMstatusTXT = sprintf("%8s", $Scalls);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
+
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
+
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
+
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
+
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+
+
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+echo "\n\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$sub_statuses='-';
+$sub_statusesTXT='';
+$sub_statusesHEAD='';
+$sub_statusesHTML='';
+$sub_statusesARY=$MT;
+$j=0;
+$PCusers='-';
+$PCusersARY=$MT;
+$PCuser_namesARY=$MT;
+$k=0;
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + 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 pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$subs_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $subs_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$PCfull_name[$i] =	$row[0];
+	$PCuser[$i] =		$row[1];
+	$PCpause_sec[$i] =	$row[2];
+	$sub_status[$i] =	$row[3];
+	$PCnon_pause_sec[$i] =	$row[4];
+
+#	echo "$sub_status[$i]|$PCpause_sec[$i]\n";
+#	if ( (!eregi("-$sub_status[$i]-", $sub_statuses)) and (strlen($sub_status[$i])>0) )
+	if (!eregi("-$sub_status[$i]-", $sub_statuses))
+		{
+		$sub_statusesTXT = sprintf("%8s", $sub_status[$i]);
+		$sub_statusesHEAD .= "----------+";
+		$sub_statusesHTML .= " $sub_statusesTXT |";
+		$sub_statuses .= "$sub_status[$i]-";
+		$sub_statusesARY[$j] = $sub_status[$i];
+		$j++;
+		}
+	if (!eregi("-$PCuser[$i]-", $PCusers))
+		{
+		$PCusers .= "$PCuser[$i]-";
+		$PCusersARY[$k] = $PCuser[$i];
+		$PCuser_namesARY[$k] = $PCfull_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "PAUSE CODE BREAKDOWN:\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+$Suser_ct = count($usersARY);
+$TOTtotNONPAUSE = 0;
+$TOTtotTOTAL = 0;
+
+while ($m < $k)
+	{
+	$d=0;
+	while ($d < $Suser_ct)
+		{
+		if ($usersARY[$d] === "$PCusersARY[$m]")
+			{$pcPAUSEtotal = $PAUSEtotal[$d];}
+		$d++;
+		}
+	$Suser=$PCusersARY[$m];
+	$Sfull_name=$PCuser_namesARY[$m];
+	$Spause_sec=0;
+	$Snon_pause_sec=0;
+	$Stotal_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$sub_statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $subs_to_print)
+			{
+			if ( ($Suser=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") )
+				{
+				$Spause_sec =	($Spause_sec + $PCpause_sec[$i]);
+				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
+				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
+
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
+
+				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
+	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
+
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
+
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
+
+	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
+
+	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
+
+	echo "$BOTTOMoutput";
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+#if (ereg("ID|TIME|CALLS",$stage))
+#	{
+#	$n=0;
+#	while ($n <= $m)
+#		{
+#		$i = $sort_order[$m];
+#		echo "$BOTTOMsorted_output[$i]";
+#		$m--;
+#		}
+#	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$TOTtotPAUSE=0;
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$sub_statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $subs_to_print)
+		{
+		if ($Sstatus=="$sub_status[$i]")
+			{
+			$Scalls =		($Scalls + $PCpause_sec[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
+
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
+
+		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+	$TOT_AGENTS = sprintf("%-4s", $m);
+
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
+
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
+
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+
+
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+echo "\n\n";
+
+}
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_status_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_status_detail.php new file mode 100644 index 00000000..8c911234 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_status_detail.php @@ -0,0 +1,666 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-1554 - First build +# 90225-2252 - Added CSV download option +# 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Status Detalle Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "POR FAVOR SELECCIONE UNA CAMPAÑA O GRUPO DE USUARIO Y FECHA-TEMNE ARRIBA Y HAGA CLICK ENVIAR\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Status Detalle Report                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- AGENTE Detalles -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Status Detalle Report                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$users='-';
+	$usersARY[0]='';
+	$user_namesARY[0]='';
+	$k=0;
+
+	$stmt="select count(*) as calls,full_name,vicidial_users.user,status 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 $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3])))
+			{
+			$calls[$i] =		$row[0];
+			$full_name[$i] =	$row[1];
+			$user[$i] =			$row[2];
+			$status[$i] =		$row[3];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$user[$i]-", $users))
+				{
+				$users .= "$user[$i]-";
+				$usersARY[$k] = $user[$i];
+				$user_namesARY[$k] = $full_name[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "| USER NAME       | ID       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Suser=$usersARY[$m];
+		$Sfull_name=$user_namesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+				if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWuser = $Suser;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		if ($non_latin < 1)
+			{
+			 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
+				while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+			 $Suser =		sprintf("%-8s", $Suser);
+				while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+			}
+		else
+			{	
+				$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+			 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+
+				$Suser =	sprintf("%-24s", $Suser);
+			 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+			}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sfull_name | $Suser | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$Sfull_name,$RAWuser,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+	$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+	if ($file_download < 1)
+		{
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+----------------------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_STATUS$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +echo "
\n"; +echo "
Fechas:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campañas:
"; +echo "\n"; +echo "
Grupos De Usuario:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DESCARGAR | \n"; +echo " INFORMES \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_time_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_time_detail.php
new file mode 100644
index 00000000..a98137e5
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_time_detail.php
@@ -0,0 +1,867 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+# 90522-0723 - First build
+# 90908-1103 - Added DEAD time stats
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='NAME';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_time_sheet.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_time_sheet.php
new file mode 100644
index 00000000..f2c0cb95
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_time_sheet.php
@@ -0,0 +1,311 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1729 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 80624-0132 - Added vicidial_timeclock entries
+# 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["agent"]))				{$agent=$_GET["agent"];}
+	elseif (isset($_POST["agent"]))		{$agent=$_POST["agent"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["calls_summary"]))			{$calls_summary=$_GET["calls_summary"];}
+	elseif (isset($_POST["calls_summary"]))	{$calls_summary=$_POST["calls_summary"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))	{$submit=$_POST["submit"];}
+if (isset($_GET["ENVIAR"]))				{$ENVIAR=$_GET["ENVIAR"];}
+	elseif (isset($_POST["ENVIAR"]))	{$ENVIAR=$_POST["ENVIAR"];}
+
+$user=$agent;
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+?>
+
+
+
+
+
+\n";
+echo "Agent Hoja de tiempo";
+
+
+##### BEGIN Set variables to make header show properly #####
+$ADD =					'3';
+$hh =					'users';
+$LOGast_admin_access =	'1';
+$ADMIN =				'admin.php';
+$page_width='770';
+$section_width='750';
+$header_font_size='3';
+$subheader_font_size='2';
+$subcamp_font_size='2';
+$header_selected_bold='<b>';
+$header_nonselected_bold='';
+$users_color =		'#FFFF99';
+$users_font =		'BLACK';
+$users_color =		'#E6E6E6';
+$subcamp_color =	'#C6C6C6';
+##### END Set variables to make header show properly #####
+
+require("admin_header.php");
+
+echo "<TABLE WIDTH=$page_width BGCOLOR=\"#F0F5FE\" cellpadding=2 cellspacing=0><TR BGCOLOR=\"#F0F5FE\"><TD>\n";
+
+echo "AgentHoja de tiempofor: $user\n";
+echo "<BR>\n";
+echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>   \n";
+echo "Date: <INPUT TYPE=TEXT NAME=query_date SIZE=19 MAXLENGTH=19 VALUE=\"$query_date\">\n";
+echo "Usuario ID: <INPUT TYPE=TEXT NAME=agent SIZE=10 MAXLENGTH=20 VALUE=\"$agent\">\n";
+echo "<INPUT TYPE=Submit NAME=ENVIAR VALUE=ENVIAR>\n";
+echo "</FORM>\n\n";
+
+echo "<PRE><FONT SIZE=3>\n";
+
+
+if (!$agent)
+{
+echo "\n";
+echo "PLEASE SELECT AN AGENTE ID AND DATE-TIME ABOVE AND CLICK ENVIAR\n";
+echo " NOTE: stats taken from available agent log data\n";
+}
+
+else
+{
+$query_date_BEGIN = "$query_date 00:00:00";   
+$query_date_END = "$query_date 23:59:59";
+$time_BEGIN = "00:00:00";   
+$time_END = "23:59:59";
+
+$stmt="select full_name from vicidial_users where user='$agent';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$full_name = $row[0];
+
+echo "AgentHoja de tiempo                            $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTE TIME SHEET: $agent - $full_name -------------\n\n";
+
+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 <= '" . 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);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
+
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
+
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+
+	echo "LLAMADAS TOTALES TAKEN: $row[0]\n";
+	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
+	echo "PAUSE TIME:              $pfPAUSE_TIME_HMS     AVERAGE: $pfPAUSE_AVG_MS\n";
+	echo "WAIT TIME:               $pfWAIT_TIME_HMS     AVERAGE: $pfWAIT_AVG_MS\n";
+	echo "WRAPUP TIME:             $pfWRAPUP_TIME_HMS     AVERAGE: $pfWRAPUP_AVG_MS\n";
+	echo "----------------------------------------------------------------\n";
+	echo "TOTAL ACTIVE AGENTE TIME: $pfTOTAL_TIME_HMS\n";
+
+	echo "\n";
+	}
+else
+	{
+	echo "<a href=\"$PHP_SELF?calls_summary=1&agent=$agent&query_date=$query_date\">Call Activity Summary</a>\n\n";
+
+	}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "FIRST LOGIN:          $row[0]\n";
+$start = $row[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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "LAST LOG ACTIVITY:    $row[0]\n";
+$end = $row[1];
+
+$login_time = ($end - $start);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+
+echo "-----------------------------------------\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
+
+
+### timeclock records
+
+
+##### vicidial_timeclock log records for user #####
+
+$total_login_time=0;
+$SQday_ARY =	explode('-',$query_date_BEGIN);
+$EQday_ARY =	explode('-',$query_date_END);
+$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+echo "\n";
+
+echo "<B>TIMECLOCK TIEMPO LOGIN/LOGOUT:</B>\n";
+echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n";
+echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HORAS:MINUTOS</td></tr>\n";
+
+	$stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='$agent' and event_epoch >= '$SQepoch'  and event_epoch <= '$EQepoch';";
+	if ($DB>0) {echo "|$stmt|";}
+	$rslt=mysql_query($stmt, $link);
+	$events_to_print = mysql_num_rows($rslt);
+
+	$total_logs=0;
+	$o=0;
+	while ($events_to_print > $o) {
+		$row=mysql_fetch_row($rslt);
+		if ( ($row[0]=='START') or ($row[0]=='LOGIN') )
+			{$bgcolor='bgcolor="#B9CBFD"';} 
+		else
+			{$bgcolor='bgcolor="#9BB9FB"';}
+
+		$TC_log_date = date("Y-m-d H:i:s", $row[1]);
+
+		$manager_edit='';
+		if (strlen($row[6])>0) {$manager_edit = ' * ';}
+
+		if (ereg("LOGIN", $row[0]))
+			{
+			$login_sec='';
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> </td></tr>\n";
+			}
+		if (ereg("LOGOUT", $row[0]))
+			{
+			$login_sec = $row[3];
+			$total_login_time = ($total_login_time + $login_sec);
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> $event_hours_minutes";
+			if ($DB) {echo " - $total_login_time - $login_sec";}
+			echo "</td></tr>\n";
+			}
+		$o++;
+	}
+if (strlen($login_sec)<1)
+	{
+	$login_sec = ($STARTtime - $row[1]);
+	$total_login_time = ($total_login_time + $login_sec);
+		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
+	}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
+
+	if ($DB) {echo " - $total_login_time - $login_sec";}
+
+echo "<tr><td align=right><font size=2> </td>";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
+
+echo "</TABLE>\n";
+
+
+
+}
+
+
+
+?>
+
+</BODY></HTML>
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_timeclock_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_inboundEXTstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_inboundEXTstats.php new file mode 100644 index 00000000..1be68615 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_inboundEXTstats.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$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 and view_reports='1';"; + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.11.20';} + +$stmt="select extension,full_number,inbound_name from inbound_numbers where server_ip='" . mysql_real_escape_string($server_ip) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$inbound_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + $inbound[$i] =$row[0]; + $fullnum[$i] =$row[1]; + $inbname[$i] =$row[2]; + $i++; + } +?> + + + + + +\n"; +#echo"\n"; +echo "ASTERISK: Estadística de Llamadas Entrantes\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "SELECCIONE POR FAVOR Un NÚMERO Y La FECHA ARRIBA Y El TECLEO SOMETEN\n";
+}
+
+else
+{
+
+
+echo "ASTERISK: Estadística de Llamadas Entrantes                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALS\n";
+
+$extenSQL = "and extension='" . mysql_real_escape_string($group) . "'";
+if (eregi("\*",$group))
+	{$extenSQL = "and extension LIKE \"%$group\"";}
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$average_hold_seconds = ($row[1] / $row[0]);
+$average_hold_seconds = round($average_hold_seconds, 0);
+$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+
+echo "Llamadas totales que vinieron en este número:       $TOTALcalls\n";
+echo "Average Call Length(seconds) for all Calls:   $average_hold_seconds\n";
+
+echo "\n";
+echo "---------- DROPS\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+$DROPpercent = round($DROPpercent, 0);
+
+if ($row[0])
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+else {$DROPpercent=0;   $average_hold_seconds=0;}
+echo "Total DROP Calls:   (less than 10 seconds)    $DROPcalls  $DROPpercent%\n";
+echo "Average Call Length(seconds) for DROP Calls:  $average_hold_seconds\n";
+
+
+##############################
+#########  CALLS STATS
+
+echo "\n";
+echo "---------- CALL LISTINGS\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+echo "| CALLERID             | CALLERIDNAME         | LENGTH | DATE TIME           |\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$CID =			sprintf("%-20s", $row[0]);
+	$CIDname =		sprintf("%-20s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}
+	$datetime =		sprintf("%-19s", $row[3]);
+	$USERavgTALK =	$row[2];
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$USERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $CID | $CIDname | $USERavgTALK_MS | $datetime |\n";
+
+	$i++;
+	}
+
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+##############################
+#########  TIME STATS
+
+if ($output == 'FULL')
+	{
+
+	echo "\n";
+	echo "---------- ESTADÍSTICAS DEL TIEMPO\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+		$h++;
+		}
+
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+
+	echo "\n";
+	echo "GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LLAMADAS TOTALES\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+	echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$Gdrop_count = $drop_count[$i];
+			if ($Gdrop_count < 1) 
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "*X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 101) {echo " ";   $char_counter++;}
+				echo "| 0     | $hour_count[$i] |\n";
+
+				}
+			else
+				{
+				$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+			#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+				$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+				echo "D";   $char_counter++;
+				$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 102) {echo " ";   $char_counter++;}
+				echo "| $drop_count[$i] | $hour_count[$i] |\n";
+				}
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+
+	}
+
+
+
+
+}
+
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_server_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_server_performance.php new file mode 100644 index 00000000..8561a223 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_server_performance.php @@ -0,0 +1,346 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1732 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70417-1106 - Changed time frame to be definable per time range on a single day +# - Fixed vertical scaling issues +# 80118-1508 - Fixed horizontal scale marking issues +# 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_query_time"])) {$begin_query_time=$_GET["begin_query_time"];} + elseif (isset($_POST["begin_query_time"])) {$begin_query_time=$_POST["begin_query_time"];} +if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"];} + elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$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 and view_reports='1' and modify_servers='1';"; + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +# path from root to where ploticus files will be stored +$PLOTroot = "vicidial/ploticus"; +$DOCroot = "$WeBServeRRooT/$PLOTroot/"; + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +if (!isset($begin_query_time)) {$begin_query_time = "$NOW_DATE 09:00:00";} +if (!isset($end_query_time)) {$end_query_time = "$NOW_DATE 15:30:00";} +if (!isset($group)) {$group = '';} + +$stmt="select server_ip from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + + + + + +\n"; +echo "Server Performance Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + + +echo "
\n"; +echo "Date/Time Range: \n"; +echo "to \n"; +echo "Server: \n"; +echo "\n"; +echo "             INFORMES \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A SERVIDOR AND DATE/TIME RANGE ABOVE AND CLICK ENVIAR\n";
+}
+
+else
+{
+
+$query_date_BEGIN = $begin_query_time;   
+$query_date_END = $end_query_time;
+
+
+echo "Server Performance Report                            $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALS, PEAKS and AVERAGES\n";
+
+$stmt="select AVG(sysload),AVG(channels_total),MAX(sysload),MAX(channels_total),MAX(processes) 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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGload =	sprintf("%10s", $row[0]);
+$AVGchannels =	sprintf("%10s", $row[1]);
+$HIGHload =	$row[2];
+	$HIGHmulti = intval($HIGHload / 100);
+$HIGHchannels =	$row[3];
+$HIGHprocesses =$row[4];
+if ($row[2] > $row[3]) {$HIGHlimit = $row[2];}
+else {$HIGHlimit = $row[3];}
+if ($HIGHlimit < $row[4]) {$HIGHlimit = $row[4];}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGcpuUSER =	sprintf("%10s", $row[0]);
+$AVGcpuSYSTEM =	sprintf("%10s", $row[1]);
+$AVGcpuIDLE =	sprintf("%10s", $row[2]);
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$OFFHOOKtime =	sprintf("%10s", $row[1]);
+
+
+echo "Total Calls in/out on this server:        $TOTALcalls\n";
+echo "Total Off-Hook time on this server (min): $OFFHOOKtime\n";
+echo "Average/Peak channels in use for server:  $AVGchannels / $HIGHchannels\n";
+echo "Average/Peak load for server:             $AVGload / $HIGHload\n";
+echo "Average USER process cpu percentage:      $AVGcpuUSER %\n";
+echo "Average SYSTEM process cpu percentage:    $AVGcpuSYSTEM %\n";
+echo "Average IDLE process cpu percentage:      $AVGcpuIDLE %\n";
+
+echo "\n";
+echo "---------- LINE GRAPH:\n";
+
+
+
+##############################
+#########  Graph stats
+
+$DAT = '.dat';
+$HTM = '.htm';
+$PNG = '.png';
+$filedate = date("Y-m-d_His");
+$DATfile = "$group$query_date$shift$filedate$DAT";
+$HTMfile = "$group$query_date$shift$filedate$HTM";
+$PNGfile = "$group$query_date$shift$filedate$PNG";
+
+$HTMfp = fopen ("$DOCroot/$HTMfile", "a");
+$DATfp = fopen ("$DOCroot/$DATfile", "a");
+
+$stmt="select DATE_FORMAT(start_time,'%Y-%m-%d.%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 limit 99999;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	if ($i<1) {$time_BEGIN = $row[0];}
+	$time_END = $row[0];
+	$row[5] = intval(($row[5] + $row[6]) * $HIGHmulti);
+	$row[6] = intval($row[6] * $HIGHmulti);
+	if ($rows_to_print > 9999)
+		{
+		if ($rows_to_print <= 19999)
+			{
+			if (preg_match("/0$|2$|4$|6$|8$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 19999) and ($rows_to_print <= 49999) )
+			{
+			if (preg_match("/0$|5$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 49999) and ($rows_to_print <= 99999) )
+			{
+			if (preg_match("/0$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		}
+	else
+		{
+		fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+		}
+	$i++;
+	}
+fclose($DATfp);
+
+$rows_to_max = ($rows_to_print + 100);
+
+$time_scale_abb = '5 minutes';
+$time_scale_tick = '1 minute';
+if ($i > 1000) {$time_scale_abb = '10 minutes';   $time_scale_tick = '2 minutes';}
+if ($i > 1500) {$time_scale_abb = '15 minutes';   $time_scale_tick = '3 minutes';}
+if ($i > 2000) {$time_scale_abb = '20 minutes';   $time_scale_tick = '4 minutes';}
+if ($i > 3000) {$time_scale_abb = '30 minutes';   $time_scale_tick = '5 minutes';}
+if ($i > 4000) {$time_scale_abb = '40 minutes';   $time_scale_tick = '10 minutes';}
+if ($i > 5000) {$time_scale_abb = '60 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 6000) {$time_scale_abb = '90 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 7000) {$time_scale_abb = '120 minutes';   $time_scale_tick = '30 minutes';}
+
+print "rows: $i   tick: $time_scale_abb   scale: $time_scale_tick\n";
+
+$HTMcontent  = '';
+$HTMcontent .= "#proc page\n";
+$HTMcontent .= "#if @DEVICE in png,gif\n";
+$HTMcontent .= "   scale: 0.6\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#endif\n";
+$HTMcontent .= "#proc getdata\n";
+$HTMcontent .= "file: $DOCroot/$DATfile\n";
+$HTMcontent .= "fieldnames: userproc sysproc datetime load processes channels\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc areadef\n";
+$HTMcontent .= "title: Server $group   $query_date_BEGIN to $query_date_END\n";
+$HTMcontent .= "titledetails: size=14  align=C\n";
+$HTMcontent .= "rectangle: 1 1 12 7\n";
+$HTMcontent .= "xscaletype: datetime yyyy-mm-dd.hh:mm:ss\n";
+$HTMcontent .= "xrange: $time_BEGIN $time_END\n";
+$HTMcontent .= "yrange: 0 $HIGHlimit\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc xaxis\n";
+$HTMcontent .= "stubs: inc $time_scale_abb\n";
+$HTMcontent .= "minorticinc: $time_scale_tick\n";
+$HTMcontent .= "stubformat: hh:mma\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc yaxis\n";
+$HTMcontent .= "stubs: inc 50\n";
+$HTMcontent .= "grid: color=yellow\n";
+$HTMcontent .= "gridskip: min\n";
+$HTMcontent .= "ticincrement: 100 1000\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: userproc\n";
+$HTMcontent .= "linedetails: color=purple width=.5\n";
+$HTMcontent .= "fill: lavender\n";
+$HTMcontent .= "legendlabel: user proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: sysproc\n";
+$HTMcontent .= "linedetails: color=yelloworange width=.5\n";
+$HTMcontent .= "fill: dullyellow\n";
+$HTMcontent .= "legendlabel: system proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: load\n";
+$HTMcontent .= "linedetails: color=blue width=.5\n";
+$HTMcontent .= "legendlabel: load\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: processes\n";
+$HTMcontent .= "linedetails: color=red width=.5\n";
+$HTMcontent .= "legendlabel: processes\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: channels\n";
+$HTMcontent .= "linedetails: color=green width=.5\n";
+$HTMcontent .= "legendlabel: channels\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc legend\n";
+$HTMcontent .= "location: max-1 max\n";
+$HTMcontent .= "seglen: 0.2\n";
+$HTMcontent .= "\n";
+
+fwrite ($HTMfp, "$HTMcontent");
+fclose($HTMfp);
+
+
+passthru("/usr/local/bin/pl -png $DOCroot/$HTMfile -o $DOCroot/$PNGfile");
+
+sleep(1);
+
+echo "
"; +echo "\n"; +echo "\n"; + + +echo ""; + +} + + + +?> + +
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDAD.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDAD.php new file mode 100644 index 00000000..d90d40ff --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDAD.php @@ -0,0 +1,445 @@ + LICENSE: AGPLv2 +# +# 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 +# 61114-2004 - Changed to display CLOSER and DEFAULT, added trunk shortage +# 80422-0305 - Added phone login to display, lower font size to 2 +# 81013-2227 - Fixed Remote Agent display bug +# 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["closer_display"])) {$closer_display=$_GET["closer_display"];} + elseif (isset($_POST["closer_display"])) {$closer_display=$_POST["closer_display"];} + +$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 and view_reports='1';"; + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "Server-Specific Tiempo Real Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
";
+
+###################################################################################
+###### SERVER INFORMATION
+###################################################################################
+
+$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where server_ip='" . mysql_real_escape_string($server_ip) . "';";
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$balanceSHORT = $row[0];
+
+echo "SERVER: $server_ip\n";
+
+
+
+###################################################################################
+###### TIME ON SYSTEM
+###################################################################################
+
+if ($closer_display>0) {$closer_display_reverse=0;   $closer_reverse_link='DEFAULT';}
+else {$closer_display_reverse=1;   $closer_reverse_link='CLOSER';}
+
+echo "Agentes Time On Calls           $NOW_TIME    $closer_reverse_link | INFORMES\n\n";
+
+if ($closer_display>0)
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\n";
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+}
+else
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$Sextension[$i] =		$row[0];
+		$Suser[$i] =			$row[1];
+		$Ssessionid[$i] =		$row[2];
+		$Schannel[$i] =			$row[3];
+		$Sstatus[$i] =			$row[4];
+		$Sstart_time[$i] =		$row[5];
+		$Scall_time[$i] =		$row[6];
+		$Sfinish_time[$i] =		$row[7];
+		$Suniqueid[$i] =		$row[8];
+		$Slead_id[$i] =			$row[9];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$phone[$i]='          ';
+		if (eregi("R/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('R/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi("Local/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('Local/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi('SIP/',$Sextension[$i])) 
+			{
+			$protocol = 'SIP';
+			$dialplan = eregi_replace('SIP/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('IAX2/',$Sextension[$i])) 
+			{
+			$protocol = 'IAX2';
+			$dialplan = eregi_replace('IAX2/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('Zap/',$Sextension[$i])) 
+			{
+			$protocol = 'Zap';
+			$dialplan = eregi_replace('Zap/',"",$Sextension[$i]);
+			$exten = "extension='$dialplan'";
+			}
+
+		$stmt="select login from phones where server_ip='" . mysql_real_escape_string($server_ip) . "' and $exten and protocol='$protocol';";
+		$rslt=mysql_query($stmt, $link);
+		$row=mysql_fetch_row($rslt);
+		$login = $row[0];
+
+		$phone[$i] =			sprintf("%-10s", $login);
+
+		if (eregi("READY|PAUSED|CLOSER",$Sstatus[$i]))
+			{
+			$Schannel[$i]='';
+			$Sstart_time[$i]='- WAIT -';
+			$Scall_time[$i]=$Sfinish_time[$i];
+			}
+		$extension[$i] = eregi_replace('Local/',"",$Sextension[$i]);
+		$extension[$i] =		sprintf("%-10s", $extension[$i]);
+			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
+		$user[$i] =				sprintf("%-6s", $Suser[$i]);
+		$sessionid[$i] =		sprintf("%-9s", $Ssessionid[$i]);
+		$channel[$i] =			sprintf("%-19s", $Schannel[$i]);
+			$cc[$i]=0;
+		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
+			{
+			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
+			$cc[$i]++;
+			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
+			}
+		$status[$i] =			sprintf("%-6s", $Sstatus[$i]);
+		$start_time[$i] =		sprintf("%-8s", $Sstart_time[$i]);
+			$cd[$i]=0;
+		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
+			{
+			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
+			$cd[$i]++;
+			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
+			}
+		$uniqueid[$i] =			$Suniqueid[$i];
+		$lead_id[$i] =			$Slead_id[$i];
+		$closer[$i] =			$Suser[$i];
+		$call_time_S[$i] = ($STARTtime - $Scall_time[$i]);
+
+		$call_time_M[$i] = ($call_time_S[$i] / 60);
+		$call_time_M[$i] = round($call_time_M[$i], 2);
+		$call_time_M_int[$i] = intval("$call_time_M[$i]");
+		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
+		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
+		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
+		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
+		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
+		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
+
+		if ($closer_display<1)
+			{
+			$G = '';		$EG = '';
+			if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+			if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+			if (eregi("PAUSED",$Sstatus[$i])) 
+				{
+				if ($call_time_M_int >= 1) 
+					{$i++; continue;} 
+				else
+					{$G=''; $EG='';}
+				}
+			$agentcount++;
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG |\n";
+			}
+		$i++;
+		}
+
+		if ($closer_display>0)
+		{
+
+			$ext_count = $i;
+			$i=0;
+		while ($i < $ext_count)
+			{
+
+			$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$camp_to_print = mysql_num_rows($rslt);
+			if ($camp_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$campaign = sprintf("%-12s", $row[0]);
+				$camp_color = $row[0];
+				}
+			else
+				{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
+			if (eregi("READY|PAUSED|CLOSER",$status[$i]))
+				{$campaign = '            ';   	$camp_color = '';}
+
+			$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$xfer_to_print = mysql_num_rows($rslt);
+			if ($xfer_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$fronter = sprintf("%-6s", $row[0]);
+				}
+			else
+				{$fronter = '      ';}
+
+			$G = '';		$EG = '';
+			$G=""; $EG='';
+		#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+		#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
+
+			$i++;
+			}
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+		echo "  $i agentes identificados en el servidor $server_ip\n\n";
+	#	echo "             - Llamadas de 5 minutos o más\n";
+	#	echo "             - Sobre 10 minutos en llamada\n";
+		}
+	else
+		{
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+		echo "  $agentcount agentes identificados en el servidor $server_ip\n\n";
+
+		echo "             - Agentes detenidos brevemente\n";
+		echo "             - Llamadas de 5 minutos o más\n";
+		echo "             - Sobre 10 minutos en llamada\n";
+		}
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "*********************************AGENTES SIN LLAMADAS*********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+###################################################################################
+###### OUTBOUND CALLS
+###################################################################################
+#echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "Server-Specific Tiempo Real Report        TRUNK SHORT: $balanceSHORT          $NOW_TIME\n\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-19s", $row[0]);
+			$cc=0;
+		while ( (strlen($channel) > 19) and ($cc < 100) )
+			{
+			$channel = eregi_replace(".$","",$channel);   
+			$cc++;
+			if (strlen($channel) <= 19) {$cc=101;}
+			}
+		$start_time =		sprintf("%-8s", $row[5]);
+			$cd=0;
+		while ( (strlen($start_time) > 8) and ($cd < 100) )
+			{
+			$start_time = eregi_replace("^.","",$start_time);   
+			$cd++;
+			if (strlen($start_time) <= 8) {$cd=101;}
+			}
+		$status =			sprintf("%-6s", $row[1]);
+		$campaign =			sprintf("%-12s", $row[2]);
+			$all_phone = "$row[3]$row[4]";
+		$number_dialed =	sprintf("%-18s", $all_phone);
+		$call_time_S = ($STARTtime - $row[6]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if (eregi("LIVE",$status)) {$G=''; $EG='';}
+	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+		echo "  $i llamadas en el servidor $server_ip\n\n";
+
+		echo "             - LLAMADAS ACTUALES EN ESPERA\n";
+	#	echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	echo "*******************************LLAMADAS EN ESPERA*********************************\n";
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	}
+
+
+?>
+
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDAD_closer.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDAD_closer.php new file mode 100644 index 00000000..1230001d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDAD_closer.php @@ -0,0 +1,318 @@ + LICENSE: GPLv2 +### +# 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"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On VDAD\n"; +echo "
";
+
+###################################################################################
+###### TIME ON SYSTEM
+###################################################################################
+
+echo "VICIDIAL: Tiempo de los  Agentes En Llamadas        $NOW_TIME    INFORMES\n\n";
+echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+echo "| STATION    | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+			if (eregi("READY|PAUSED|CLOSER",$row[4]))
+			{
+			$row[3]='';
+			$row[5]='- WAIT -';
+			$row[6]=$row[7];
+			}
+		$extension[$i] = eregi_replace('Local/',"",$row[0]);
+		$extension[$i] =		sprintf("%-10s", $extension[$i]);
+			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
+		$user[$i] =				sprintf("%-6s", $row[1]);
+		$sessionid[$i] =		sprintf("%-9s", $row[2]);
+		$channel[$i] =			sprintf("%-19s", $row[3]);
+			$cc[$i]=0;
+		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
+			{
+			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
+			$cc[$i]++;
+			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
+			}
+		$status[$i] =			sprintf("%-6s", $row[4]);
+		$start_time[$i] =		sprintf("%-8s", $row[5]);
+			$cd[$i]=0;
+		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
+			{
+			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
+			$cd[$i]++;
+			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
+			}
+		$uniqueid[$i] =			$row[8];
+		$lead_id[$i] =			$row[9];
+		$closer[$i] =			$row[1];
+		$call_time_S[$i] = ($STARTtime - $row[6]);
+
+		$call_time_M[$i] = ($call_time_S[$i] / 60);
+		$call_time_M[$i] = round($call_time_M[$i], 2);
+		$call_time_M_int[$i] = intval("$call_time_M[$i]");
+		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
+		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
+		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
+		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
+		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
+		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
+		$i++;
+		}
+		$ext_count = $i;
+		$i=0;
+	while ($i < $ext_count)
+		{
+
+		$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$camp_to_print = mysql_num_rows($rslt);
+		if ($camp_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$campaign = sprintf("%-12s", $row[0]);
+			$camp_color = $row[0];
+			}
+		else
+			{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
+		if (eregi("READY|PAUSED|CLOSER",$status[$i]))
+			{$campaign = '            ';   	$camp_color = '';}
+
+		$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$xfer_to_print = mysql_num_rows($rslt);
+		if ($xfer_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$fronter = sprintf("%-6s", $row[0]);
+			}
+		else
+			{$fronter = '      ';}
+
+		$G = '';		$EG = '';
+		$G=""; $EG='';
+	#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+	#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+
+		echo "| $G$extension[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------|--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+		echo "  $i agentes identificados en el servidor $server_ip\n\n";
+
+	#	echo "             - Llamadas de 5 minutos o más\n";
+	#	echo "             - Sobre 10 minutos en llamada\n";
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "*********************************AGENTES SIN LLAMADAS*********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+###################################################################################
+###### OUTBOUND CALLS
+###################################################################################
+#echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "VICIDIAL: Time On VDAD                                              $NOW_TIME\n\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+
+#$link=mysql_connect("localhost", "cron", "1234");
+# $linkX=mysql_connect("localhost", "cron", "1234");
+#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='" . mysql_real_escape_string($server_ip) . "' order by auto_call_id desc;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-19s", $row[0]);
+			$cc=0;
+		while ( (strlen($channel) > 19) and ($cc < 100) )
+			{
+			$channel = eregi_replace(".$","",$channel);   
+			$cc++;
+			if (strlen($channel) <= 19) {$cc=101;}
+			}
+		$start_time =		sprintf("%-8s", $row[5]);
+			$cd=0;
+		while ( (strlen($start_time) > 8) and ($cd < 100) )
+			{
+			$start_time = eregi_replace("^.","",$start_time);   
+			$cd++;
+			if (strlen($start_time) <= 8) {$cd=101;}
+			}
+		$status =			sprintf("%-6s", $row[1]);
+		$campaign =			sprintf("%-12s", $row[2]);
+			$all_phone = "$row[3]$row[4]";
+		$number_dialed =	sprintf("%-18s", $all_phone);
+		$call_time_S = ($STARTtime - $row[6]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if (eregi("LIVE",$status)) {$G=''; $EG='';}
+	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+		echo "  $i llamadas en el servidor $server_ip\n\n";
+
+		echo "             - LLAMADAS ACTUALES EN ESPERA\n";
+	#	echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	echo "*******************************LLAMADAS EN ESPERA*********************************\n";
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	}
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDADall.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDADall.php new file mode 100644 index 00000000..536f583d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDADall.php @@ -0,0 +1,1986 @@ + LICENSE: AGPLv2 +# +# live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# CHANGELOG: +# 50406-0920 - Added Paused agents < 1 min +# 51130-1218 - Modified layout and info to show all servers in a vicidial system +# 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 +# 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 +# 60626-1453 - Added display of system load to bottom (Angelito Manansala) +# 60901-1123 - Changed display elements at the top of the screen +# 60905-1342 - Fixed non INCALL|QUEUE timer column +# 61002-1642 - Added TRUNK SHORT/FILL stats +# 61101-1318 - Added SIP and IAX Listen and Barge links option +# 61101-1647 - Added Usergroup column and user name option as well as sorting +# 61102-1155 - Made display of columns more modular, added ability to hide server info +# 61215-1131 - Added answered calls and drop percent taken from answered calls +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70123-1151 - Added non_latin options for substr in display variables, thanks Marin Blu +# 70206-1140 - Added call-type statuses to display(A-Auto, M-Manual, I-Inbound/Closer) +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80227-0418 - Added priority to waiting calls display +# 80311-1550 - Added calls_today on all agents and wait time/in-group for inbound calls +# 80422-0033 - Added phonediaplay option, allow for toggle-sorting on sortable fields +# 80422-1001 - Fixed sort by phone login +# 80424-0515 - Added non_latin lookup from system_settings +# 80525-1040 - Added IVR status display and summary for inbound calls +# 80619-2047 - Added DISPO status for post-call-work while paused +# 80704-0543 - Added DEAD status for agents INCALL with no live call +# 80822-1222 - Added option for display of customer phone number +# 81011-0335 - Fixed remote agent display bug +# 81022-1500 - Added inbound call stats display option +# 81029-1023 - Changed drop percent calculation for multi-stat reports +# 81029-1706 - Added pause code display if enabled per campaign +# 81108-2337 - Added inbound-only section +# 90105-1153 - Changed monitor links to use 0 prefix instead of 6 +# 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option +# 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended +# + + +$version = '2.2.0-49'; +$build = '91204-1548'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["inbound"])) {$inbound=$_GET["inbound"];} + elseif (isset($_POST["inbound"])) {$inbound=$_POST["inbound"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["usergroup"])) {$usergroup=$_GET["usergroup"];} + elseif (isset($_POST["usergroup"])) {$usergroup=$_POST["usergroup"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["SIPmonitorLINK"])) {$SIPmonitorLINK=$_GET["SIPmonitorLINK"];} + elseif (isset($_POST["SIPmonitorLINK"])) {$SIPmonitorLINK=$_POST["SIPmonitorLINK"];} +if (isset($_GET["IAXmonitorLINK"])) {$IAXmonitorLINK=$_GET["IAXmonitorLINK"];} + elseif (isset($_POST["IAXmonitorLINK"])) {$IAXmonitorLINK=$_POST["IAXmonitorLINK"];} +if (isset($_GET["UGdisplay"])) {$UGdisplay=$_GET["UGdisplay"];} + elseif (isset($_POST["UGdisplay"])) {$UGdisplay=$_POST["UGdisplay"];} +if (isset($_GET["UidORname"])) {$UidORname=$_GET["UidORname"];} + elseif (isset($_POST["UidORname"])) {$UidORname=$_POST["UidORname"];} +if (isset($_GET["orderby"])) {$orderby=$_GET["orderby"];} + elseif (isset($_POST["orderby"])) {$orderby=$_POST["orderby"];} +if (isset($_GET["SERVdisplay"])) {$SERVdisplay=$_GET["SERVdisplay"];} + elseif (isset($_POST["SERVdisplay"])) {$SERVdisplay=$_POST["SERVdisplay"];} +if (isset($_GET["CALLSdisplay"])) {$CALLSdisplay=$_GET["CALLSdisplay"];} + elseif (isset($_POST["CALLSdisplay"])) {$CALLSdisplay=$_POST["CALLSdisplay"];} +if (isset($_GET["PHONEdisplay"])) {$PHONEdisplay=$_GET["PHONEdisplay"];} + elseif (isset($_POST["PHONEdisplay"])) {$PHONEdisplay=$_POST["PHONEdisplay"];} +if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdisplay"];} + elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} +if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} + elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $outbound_autodial_active = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if (!isset($DB)) {$DB=0;} +if (!isset($RR)) {$RR=40;} +if (!isset($group)) {$group='';} +if (!isset($usergroup)) {$usergroup='';} +if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name +if (!isset($orderby)) {$orderby='timeup';} +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes +if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes +if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes +if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes +if (!isset($PAUSEcodes)) {$PAUSEcodes='N';} # 0=no, 1=yes +if (!isset($with_inbound)) + { + if ($outbound_autodial_active > 0) + {$with_inbound='N';} # N=no, Y=yes, O=only + else + {$with_inbound='O';} # N=no, Y=yes, O=only + } +$ingroup_detail=''; + +if (strlen($group)>1) {$groups[0] = $group; $RR=40;} +else {$group = $groups[0];} + +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); + + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } + + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } + +$load_ave = get_server_load(true); + +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + + +$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 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='ALL-ACTIVE'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $LISTnames[$i] =$row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($groups); +while($i < $group_ct) + { + $group_string .= "$groups[$i]|"; + $group_SQL .= "'$groups[$i]',"; + $groupQS .= "&groups[]=$groups[$i]"; + $i++; + } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $all_active = 0; + $group_SQL = "''"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; + } +else + { + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$usergroups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $usergroups_to_print) + { + $row=mysql_fetch_row($rslt); + $usergroups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$select_list = ""; +$select_list .= ""; +$select_list .= "
Select Campañas:
"; +$select_list .= ""; +$select_list .= "
(Para seleccionar más de 1 campaña, mantenga pulsada la tecla Ctrl y haga clic en)"; +$select_list .= "
"; +$select_list .= "Panel de Cierre

"; + +if ($UGdisplay > 0) + { + $select_list .= "Select Grupo Del Usuario:
"; + $select_list .= "

"; + } + +$select_list .= "   Inbound:         "; +$select_list .= "
"; +$select_list .= "   "; +$select_list .= ""; +$select_list .= "VERSIÓN: $version   CONSTRUCCION: $build"; +$select_list .= "
"; + +$open_list = "
Elija Opciones de Informe
"; + +?> + + + + + + +\n"; + +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; +$rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +echo "\n"; +echo"\n"; +echo "Tiempo Real Report: $group\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "Tiempo Real Report                                                                               \n"; +echo "\n"; +echo "
\n"; +echo "Elija Opciones de Informe"; +echo "
\n"; +echo "
\n"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; +if (eregi('ALL-ACTIVE',$group_string)) + { + echo "       MODIFICAR | \n"; + } +else + { + echo "       MODIFICAR | \n"; + } +echo "SUMMARY \n"; +echo "\n\n"; + + +if (!$group) {echo "

please select a campaign from the pulldown above
\n"; exit;} +else +{ +$multi_drop=0; +### Gather list of all Closer group ids for exclusion from stats +$stmt = "select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +$ingroups_to_print = mysql_num_rows($rslt); +while ($ingroups_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + $ccamps_to_print = mysql_num_rows($rslt); + $c=0; + while ($ccamps_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaignsSQL .= "'$closer_campaigns',"; + $c++; + } + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; + + if ($adastats>1) + { + $stmtB="select calls_today,drops_today,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4,hold_sec_stat_one,hold_sec_stat_two,hold_sec_answer_calls,hold_sec_drop_calls,hold_sec_queue_calls,campaign_id from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if ($DB > 0) {echo "\n|$stmtB|\n";} + + $r=0; + $rslt=mysql_query($stmtB, $link); + $ingroups_to_print = mysql_num_rows($rslt); + if ($ingroups_to_print > 0) + {$ingroup_detail .= "";} + while ($ingroups_to_print > $r) + { + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + $ingroupdetail = $row[16]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_RESPUESTAagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_RESPUESTAagent_non_pause_sec = round($AVG_RESPUESTAagent_non_pause_sec, 2); + $AVG_RESPUESTAagent_non_pause_sec = sprintf("%01.2f", $AVG_RESPUESTAagent_non_pause_sec); + } + else + {$AVG_RESPUESTAagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_RESPUESTAagent_non_pause_sec=0; + } + + if (ereg("0$|2$|4$|6$|8$",$r)) {$bgcolor='#E6E6E6';} + else {$bgcolor='white';} + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + + $r++; + } + + if ($ingroups_to_print > 0) + {$ingroup_detail .= "
        $ingroupdetail   CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls  
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
RESPUESTAS TODAY:  $answersTODAY    DROP PERCENT:  $drpctTODAY%    Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
";} + + } + + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; + + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; + } + + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; + + + if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_pause_codes_active = $row[0]; + + $rslt=mysql_query($stmtC, $link); + $row=mysql_fetch_row($rslt); + $agent_non_pause_sec = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_RESPUESTAagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_RESPUESTAagent_non_pause_sec = round($AVG_RESPUESTAagent_non_pause_sec, 2); + $AVG_RESPUESTAagent_non_pause_sec = sprintf("%01.2f", $AVG_RESPUESTAagent_non_pause_sec); + } + else + {$AVG_RESPUESTAagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_RESPUESTAagent_non_pause_sec=0; + } + + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +##### NOT INBOUND ONLY ### +else + { + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $multi_drop++; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; + } + else + { + if ($DB > 0) {echo "\n|$with_inbound|$campaign_allow_inbound|\n";} + + if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) + { + $multi_drop++; + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} + + $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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + } + else + { + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + } + } + if ($DB > 0) {echo "\n|$stmt|$stmtB|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $DIALlev = $row[0]; + $DIALstatusA = $row[1]; + $DIALstatusB = $row[2]; + $DIALstatusC = $row[3]; + $DIALstatusD = $row[4]; + $DIALstatusE = $row[5]; + $DIALorder = $row[6]; + $DIALfilter = $row[7]; + $HOPlev = $row[8]; + $DIALmethod = $row[9]; + $maxDIALlev = $row[10]; + $DROPmax = $row[11]; + $targetDIFF = $row[12]; + $ADAintense = $row[13]; + $ADAavailonly = $row[14]; + $TAPERtime = $row[15]; + $CALLtime = $row[16]; + $DIALtimeout = $row[17]; + $DIALstatuses = $row[18]; + $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; + + + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDhop = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $DAleads = $row[0]; + $callsTODAY = $row[1]; + $dropsTODAY = $row[2]; + $drpctTODAY = $row[3]; + $diffONEMIN = $row[4]; + $agentsONEMIN = $row[5]; + $balanceFILL = $row[6]; + $answersTODAY = $row[7]; + if ($multi_drop > 0) + { + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + } + $VSCcat1 = $row[8]; + $VSCcat1tally = $row[9]; + $VSCcat2 = $row[10]; + $VSCcat2tally = $row[11]; + $VSCcat3 = $row[12]; + $VSCcat3tally = $row[13]; + $VSCcat4 = $row[14]; + $VSCcat4tally = $row[15]; + + if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } + else {$diffpctONEMIN = '0.00';} + + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $balanceSHORT = $row[0]; + + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "Mezcla lista: $row[0]"; + $DIALorder = "Mezcla lista: $row[0]"; + } + } + + echo "
CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls   TIME:   $NOW_TIME
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
RESPUESTAS TODAY:  $answersTODAY    (Agent non-pause time / Answers)Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
DROP PERCENT:  $drpctTODAY%    PRODUCTIVITY:  $AVG_RESPUESTAagent_non_pause_sec    
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + + + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
DIAL NIVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
- min   MAX NIVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL MÉTODO:  $DIALmethod    
HOPPER NIVEL:  $HOPlev     DROPPED / RESPUESTAED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; + if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} + else + {echo "$drpctTODAY%";} + echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +echo "$ingroup_detail"; + +if ($adastats<2) + { + echo "+ VIEW MORE"; + } +else + { + echo "+ VIEW LESS"; + } +if ($UGdisplay>0) + { + echo "       PIEL GRUPO DE USUARIOS"; + } +else + { + echo "       VIEW GRUPO DE USUARIOS"; + } +if ($UidORname>0) + { + echo "       DEMOSTRACIÓN AGENTE ID"; + } +else + { + echo "       DEMOSTRACIÓN AGENTE NAME"; + } +if ($SERVdisplay>0) + { + echo "       PIEL SERVIDOR INFO"; + } +else + { + echo "       DEMOSTRACIÓN SERVIDOR INFO"; + } +if ($CALLSdisplay>0) + { + echo "       PIEL WAITING CALLS"; + } +else + { + echo "       DEMOSTRACIÓN WAITING CALLS"; + } +if ($PHONEdisplay>0) + { + echo "       PIEL PHONES"; + } +else + { + echo "       DEMOSTRACIÓN PHONES"; + } +if ($CUSTPHONEdisplay>0) + { + echo "       PIEL CUSTPHONES"; + } +else + { + echo "       DEMOSTRACIÓN CUSTPHONES"; + } +echo "
"; + +echo "\n\n"; +} +################################################################################### +###### INBOUND/OUTBOUND CALLS +################################################################################### +if ($campaign_allow_inbound > 0) + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; + } +else + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; + } +if ($CALLSdisplay > 0) + { + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; + } +else + { + $stmtA = "SELECT status"; + } + + +$k=0; +$agentonlycount=0; +$stmt = "$stmtA $stmtB"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + { + $out_live++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + else + { + if (eregi("IVR",$row[0])) + { + $in_ivr++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + + $out_total++; + $i++; + } + + ##### MIDI alert audio file test ##### + # $test_midi=1; + # if ($test_midi > 0) + # { + # # echo ""; + # # echo ""; + # echo ""; + # echo " "; + # echo " "; + # echo " "; + # echo " "; + # echo " alt : test.mid"; + # echo ""; + # } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo "LLAMADAS EN ESPERA\n"; + } + + + +################################################################################### +###### CALLS WAITING +################################################################################### +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} +$Cecho = ''; +$Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORIDAD | $agentonlyheader\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +$p=0; +while($p<$k) + { + $Cstatus = sprintf("%-6s", $CDstatus[$p]); + $Ccampaign_id = sprintf("%-12s", $CDcampaign_id[$p]); + $Cphone_number = sprintf("%-12s", $CDphone_number[$p]); + $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); + $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); + $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); + + $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); + $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); + + $G = ''; $EG = ''; + if ($CDcall_type[$p] == 'IN') + { + $G=""; $EG=''; + } + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; + + $p++; + } +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +if ($p<1) + {$Cecho='';} + +################################################################################### +###### AGENT TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_dead=0; +$agent_total=0; + +$phoneord=$orderby; +$userord=$orderby; +$groupord=$orderby; +$timeord=$orderby; +$campaignord=$orderby; + +if ($phoneord=='phoneup') {$phoneord='phonedown';} + else {$phoneord='phoneup';} +if ($userord=='userup') {$userord='userdown';} + else {$userord='userup';} +if ($groupord=='groupup') {$groupord='groupdown';} + else {$groupord='groupup';} +if ($timeord=='timeup') {$timeord='timedown';} + else {$timeord='timeup';} +if ($campaignord=='campaignup') {$campaignord='campaigndown';} + else {$campaignord='campaignup';} + +$Aecho = ''; +$Aecho .= "VICIDIAL: Agentes Time On Calls Campaña: $group_string $NOW_TIME\n"; + + +$HDbegin = "+"; +$HTbegin = "|"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; +$HDusergroup = "--------------+"; +$HTusergroup = " GRUPO DE USUARIOS |"; +$HDsessionid = "------------------+"; +$HTsessionid = " SESSIONID |"; +$HDbarge = "-------+"; +$HTbarge = " BARGE |"; +$HDstatus = "----------+"; +$HTstatus = " STATUS |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; +$HDserver_ip = "-----------------+"; +$HTserver_ip = " SERVIDOR IP |"; +$HDcall_server_ip = "-----------------+"; +$HTcall_server_ip = " CALL SERVIDOR IP |"; +$HDtime = "---------+"; +$HTtime = " MM:SS |"; +$HDcampaign = "------------+"; +$HTcampaign = " CAMPAIGN |"; +$HDcalls = "-------+"; +$HTcalls = " CALLS |"; +$HDpause = ''; +$HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; + +if (!ereg("N",$agent_pause_codes_active)) + { + $HDstatus = "----------"; + $HTstatus = " STATUS "; + $HDpause = "-------+"; + $HTpause = " PAUSE |"; + } +if ($PHONEdisplay < 1) + { + $HDphone = ''; + $HTphone = ''; + } +if ($CUSTPHONEdisplay < 1) + { + $HDcustphone = ''; + $HTcustphone = ''; + } +if ($UGdisplay < 1) + { + $HDusergroup = ''; + $HTusergroup = ''; + } +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + { + $HDsessionid = "-----------+"; + $HTsessionid = " SESSIONID |"; + } +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) + { + $HDbarge = ''; + $HTbarge = ''; + } +if ($SERVdisplay < 1) + { + $HDserver_ip = ''; + $HTserver_ip = ''; + $HDcall_server_ip = ''; + $HTcall_server_ip = ''; + } + + + +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; +$Aecho .= "$Aline"; +$Aecho .= "$Bline"; +$Aecho .= "$Aline"; + +if ($orderby=='timeup') {$orderSQL='vicidial_live_agents.status,last_call_time';} +if ($orderby=='timedown') {$orderSQL='vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='campaignup') {$orderSQL='vicidial_live_agents.campaign_id,vicidial_live_agents.status,last_call_time';} +if ($orderby=='campaigndown') {$orderSQL='vicidial_live_agents.campaign_id desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='groupup') {$orderSQL='user_group,vicidial_live_agents.status,last_call_time';} +if ($orderby=='groupdown') {$orderSQL='user_group desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='phoneup') {$orderSQL='extension,server_ip';} +if ($orderby=='phonedown') {$orderSQL='extension desc,server_ip desc';} +if ($UidORname > 0) + { + if ($orderby=='userup') {$orderSQL='full_name,status,last_call_time';} + if ($orderby=='userdown') {$orderSQL='full_name desc,status desc,last_call_time desc';} + } +else + { + if ($orderby=='userup') {$orderSQL='vicidial_live_agents.user';} + if ($orderby=='userdown') {$orderSQL='vicidial_live_agents.user desc';} + } + +if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} +else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} +if (strlen($usergroup)<1) {$usergroupSQL = '';} +else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} + +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + + $Aextension[$i] = $row[0]; + $Auser[$i] = $row[1]; + $Asessionid[$i] = $row[2]; + $Astatus[$i] = $row[3]; + $Aserver_ip[$i] = $row[4]; + $Acall_time[$i] = $row[5]; + $Acall_finish[$i] = $row[6]; + $Acall_server_ip[$i] = $row[7]; + $Acampaign_id[$i] = $row[8]; + $Auser_group[$i] = $row[9]; + $Afull_name[$i] = $row[10]; + $Acomments[$i] = $row[11]; + $Acalls_today[$i] = $row[12]; + $Acallerid[$i] = $row[13]; + $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; + + $i++; + } + +$callerids=''; +$pausecode=''; +$stmt="select callerid,lead_id,phone_number from vicidial_auto_calls;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$calls_to_list = mysql_num_rows($rslt); + if ($calls_to_list > 0) + { + $i=0; + while ($i < $calls_to_list) + { + $row=mysql_fetch_row($rslt); + $callerids .= "$row[0]|"; + $VAClead_ids[$i] = $row[1]; + $VACphones[$i] = $row[2]; + $i++; + } + } + +### Lookup phone logins + $i=0; + while ($i < $talking_to_print) + { + if (eregi("R/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('R/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi("Local/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('Local/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi('SIP/',$Aextension[$i])) + { + $protocol = 'SIP'; + $dialplan = eregi_replace('SIP/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('IAX2/',$Aextension[$i])) + { + $protocol = 'IAX2'; + $dialplan = eregi_replace('IAX2/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('Zap/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + + $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $phones_to_print = mysql_num_rows($rslt); + if ($phones_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Alogin[$i] = "$row[0]-----$i"; + } + else + { + $Alogin[$i] = "$Aextension[$i]-----$i"; + } + $i++; + } + +### Sort by phone if selected + if ($orderby=='phoneup') + { + sort($Alogin); + } + if ($orderby=='phonedown') + { + rsort($Alogin); + } + +### Run through the loop to display agents + $j=0; + $agentcount=0; + while ($j < $talking_to_print) + { + $n=0; + $custphone=''; + while ($n < $calls_to_list) + { + if ( (ereg("$VAClead_ids[$n]", $Alead_id[$j])) and (strlen($VAClead_ids[$n]) == strlen($Alead_id[$j])) ) + {$custphone = $VACphones[$n];} + $n++; + } + + $phone_split = explode("-----",$Alogin[$j]); + $i = $phone_split[1]; + + if (eregi("READY|PAUSED",$Astatus[$i])) + { + $Acall_time[$i]=$Astate_change[$i]; + + if ($Alead_id[$i] > 0) + { + $Astatus[$i] = 'DISPO'; + $Lstatus = 'DISPO'; + $status = ' DISPO'; + } + } + if ($non_latin < 1) + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} + } + else + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} + } + + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); + $Luser = $Auser[$i]; + $user = sprintf("%-20s", $Auser[$i]); + $Lsessionid = $Asessionid[$i]; + $sessionid = sprintf("%-9s", $Asessionid[$i]); + $Lstatus = $Astatus[$i]; + $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; + $server_ip = sprintf("%-15s", $Aserver_ip[$i]); + $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); + $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); + $comments= $Acomments[$i]; + $calls_today = sprintf("%-5s", $Acalls_today[$i]); + + if (!ereg("N",$agent_pause_codes_active)) + {$pausecode=' ';} + else + {$pausecode='';} + + if (eregi("INCALL",$Lstatus)) + { + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) + { + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } + } + + if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) + {$CM='A';} + else + { + if (eregi("Entrantes",$comments)) + {$CM='I';} + else + {$CM='M';} + } + } + else {$CM=' ';} + + if ($UGdisplay > 0) + { + if ($non_latin < 1) + { + $user_group = sprintf("%-12s", $Auser_group[$i]); + while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} + } + else + { + $user_group = sprintf("%-40s", $Auser_group[$i]); + while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} + } + } + if ($UidORname > 0) + { + if ($non_latin < 1) + { + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} + } + else + { + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} + } + } + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} + else + {$call_time_S = ($STARTtime - $Acall_time[$i]);} + + $call_time_MS = sec_convert($call_time_S,'M'); + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) + { + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} + } + if ($Lstatus=='DEAD') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_dead++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + } + } + if ($Lstatus=='DISPO') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } + if ($Lstatus=='PAUSED') + { + if (!ereg("N",$agent_pause_codes_active)) + { + $stmtC="select sub_status from vicidial_agent_log where user='$Luser' order by agent_log_id desc limit 1;"; + $rsltC=mysql_query($stmtC,$link); + $rowC=mysql_fetch_row($rsltC); + $pausecode = sprintf("%-6s", $rowC[0]); + $pausecode = "$pausecode "; + } + else + {$pausecode='';} + + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } +# if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) +# {$G=''; $EG='';} + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) + { + $G=''; $EG=''; + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + + $L=''; + $R=''; + if ($SIPmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($SIPmonitorLINK>1) {$R=" | BARGE";} + if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} + + if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} + else {$CP = "";} + + if ($UGdisplay > 0) {$UGD = " $G$user_group$EG |";} + else {$UGD = "";} + + if ($SERVdisplay > 0) {$SVD = "$G$server_ip$EG | $G$call_server_ip$EG | ";} + else {$SVD = "";} + + if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} + else {$phoneD = " ";} + + $vac_stage=''; + $vac_campaign=''; + $INGRP=''; + if ($CM == 'I') + { + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ingrp_to_print = mysql_num_rows($rslt); + if ($ingrp_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); + $row[1] = eregi_replace(".*-",'',$row[1]); + $vac_stage = sprintf("%-4s", $row[1]); + } + + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; + } + + $agentcount++; + + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG + |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + + $j++; + } + + $Aecho .= "$Aline"; + $Aecho .= " $agentcount agents logged in on all servers\n"; + $Aecho .= " Sistema de carga Average: $load_ave\n\n"; + + # $Aecho .= " - Balanced call\n"; + $Aecho .= " - Agent waiting for call\n"; + $Aecho .= " - Agent waiting for call > 1 minute\n"; + $Aecho .= " - Agent waiting for call > 5 minutes\n"; + $Aecho .= " - Agent on call > 10 seconds\n"; + $Aecho .= " - Agent on call > 1 minute\n"; + $Aecho .= " - Agent on call > 5 minutes\n"; + $Aecho .= " - Agent Paused > 10 seconds\n"; + $Aecho .= " - Agent Paused > 1 minute\n"; + $Aecho .= " - Agent Paused > 5 minutes\n"; + $Aecho .= " - Agent on a dead call\n"; + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + echo "$NFB$agent_dead$NFE agentes muertos en las llamadas      \n"; + + echo "
";
+		echo "";
+		echo "$Cecho";
+		echo "$Aecho";
+	}
+	else
+	{
+	echo "AGENTES SIN LLAMADAS\n";
+	echo "
$Cecho";
+	}
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDADallSUMMARY.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDADallSUMMARY.php new file mode 100644 index 00000000..ae7f61b1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonVDADallSUMMARY.php @@ -0,0 +1,457 @@ + LICENSE: AGPLv2 +# +# Summary for all campaigns live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# changes: +# 61102-1616 - first build +# 61215-1131 - added answered calls and drop percent taken from answered calls +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80525-1040 - Added IVR status summary display for inbound calls +# 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +if (!isset($RR)) {$gRRroup=4;} + + +$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 and view_reports='1';"; + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +$stmt="select campaign_id from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +?> + + + + + +\n"; +echo "Tiempo Real All Campañas Summary\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "Tiempo Real All Campañas Summary           \n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO "; +echo "       \n"; +if ($adastats<2) + { + echo "+ VIEW MORE SETTINGS"; + } +else + { + echo "- VIEW LESS SETTINGS"; + } +echo "       INFORMES"; +echo "

\n\n"; + +$k=0; +while($k<$groups_to_print) +{ +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$group = $groups[$k]; +echo "$group   -   "; +echo "Modify\n"; + + +$stmt = "select count(*) from vicidial_campaigns where campaign_id='$group' and campaign_allow_inbound='Y';"; +$rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +$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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DIALlev = $row[0]; +$DIALstatusA = $row[1]; +$DIALstatusB = $row[2]; +$DIALstatusC = $row[3]; +$DIALstatusD = $row[4]; +$DIALstatusE = $row[5]; +$DIALorder = $row[6]; +$DIALfilter = $row[7]; +$HOPlev = $row[8]; +$DIALmethod = $row[9]; +$maxDIALlev = $row[10]; +$DROPmax = $row[11]; +$targetDIFF = $row[12]; +$ADAintense = $row[13]; +$ADAavailonly = $row[14]; +$TAPERtime = $row[15]; +$CALLtime = $row[16]; +$DIALtimeout = $row[17]; +$DIALstatuses = $row[18]; + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + +$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$VDhop = $row[0]; + +$stmt="select dialable_leads,calls_today,drops_today,drops_answers_today_pct,differential_onemin,agents_average_onemin,balance_trunk_fill,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4 from vicidial_campaign_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DAleads = $row[0]; +$callsTODAY = $row[1]; +$dropsTODAY = $row[2]; +$drpctTODAY = $row[3]; +$diffONEMIN = $row[4]; +$agentsONEMIN = $row[5]; +$balanceFILL = $row[6]; +$answersTODAY = $row[7]; +$VSCcat1 = $row[8]; +$VSCcat1tally = $row[9]; +$VSCcat2 = $row[10]; +$VSCcat2tally = $row[11]; +$VSCcat3 = $row[12]; +$VSCcat3tally = $row[13]; +$VSCcat4 = $row[14]; +$VSCcat4tally = $row[15]; + +if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } +else {$diffpctONEMIN = '0.00';} + +$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$balanceSHORT = $row[0]; + +echo "
"; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
DIAL NIVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
  MAX NIVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL MÉTODO:  $DIALmethod    
HOPPER NIVEL:  $HOPlev     DROPPED / RESPUESTAED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; +if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} +else + {echo "$drpctTODAY%";} +echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +### Header finish + + + + + +################################################################################ +### START calculating calls/agents +################################################################################ + +################################################################################ +###### OUTBOUND CALLS +################################################################################ +if ($campaign_allow_inbound > 0) + { + $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = preg_replace("/^ | -$/","",$row[0]); + $closer_campaigns = preg_replace("/ /","','",$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='" . mysql_real_escape_string($group) . "' and call_type='OUT') );"; + } +else + { + if ($group=='XXXX-ALL-ACTIVE-XXXX') {$groupSQL = '';} + else {$groupSQL = " and campaign_id='" . mysql_real_escape_string($group) . "'";} + + $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') $groupSQL;"; + } +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + {$out_live++;} + else + { + if (eregi("IVR",$row[0])) + {$in_ivr++;} + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + $out_total++; + $i++; + } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo "LLAMADAS EN ESPERA\n"; + } + + +################################################################################### +###### TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_total=0; + +$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) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + $agentcount=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[3])) + { + $row[5]=$row[6]; + } + $Lstatus = $row[3]; + $status = sprintf("%-6s", $row[3]); + if (!eregi("INCALL|QUEUE",$row[3])) + {$call_time_S = ($STARTtime - $row[6]);} + else + {$call_time_S = ($STARTtime - $row[5]);} + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if (eregi("PAUSED",$row[3])) + { + if ($call_time_M_int >= 30) + {$i++; continue;} + else + { + $agent_paused++; $agent_total++; + } + } + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + $agentcount++; + + + $i++; + } + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + + echo "
";
+		echo "";
+	}
+	else
+	{
+	echo " NO AGENTS ON CALLS
\n"; + } + +################################################################################ +### END calculating calls/agents +################################################################################ + + + + + +echo "
"; + +echo "\n\n"; +$k++; +} + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeoncall.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeoncall.php new file mode 100644 index 00000000..c417350c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeoncall.php @@ -0,0 +1,180 @@ + LICENSE: GPLv2 +### + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Call\n"; +echo "
\n\n";
+
+echo "VICIDIAL: Time On Call                                          $NOW_TIME\n\n";
+echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+echo "| STATION    | SESSIONID | CHANNEL   | NUMBER DIALED    | START TIME          | MINUTES |\n";
+echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+
+$stmt="SELECT count(*) from live_sip_channels where server_ip='$server_ip';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$parked_count = $row[0];
+	if ($parked_count > 0)
+	{
+	$stmt="select extension from live_channels where server_ip='$server_ip';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$ext_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$live_zap_counter=0;
+	$sessions = '';
+	while ($i < $ext_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if (preg_match("/^8600/i",$row[0]))
+			{
+			$sessions .= "$row[0]|";
+			}
+		$i++;
+		}
+	$sessions = preg_replace("/\|$/",'',$sessions);
+
+	if ($DB) {echo "SESSIONS: -$sessions-\n";}
+
+	$stmt="select * from live_sip_channels where server_ip='$server_ip' order by channel;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$parked_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$live_calls_counter=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ( (preg_match("/Zap\/|internal|ring/i",$row[3])) or (preg_match("/Local\//i",$row[0])) )
+			{
+			if ($DB) {echo "NOT STATION |$row[0]|$row[3]|\n";}
+			$session_id = '';
+			}
+		else 
+			{
+			if (preg_match("/$row[3]/i",$sessions))
+				{
+				if ($DB) {echo "LIVE STATION|$row[0]|$row[3]|\n";}
+				$session_id = $row[3];
+				$station = preg_replace("/SIP\//",'',$row[0]);
+				$station = preg_replace("/-.*/",'',$station);
+			
+				$LIVE_sessions[$live_calls_counter] =			"$session_id";
+				$LIVE_sessions_FORMAT[$live_calls_counter] =	sprintf("%-9s", $session_id);
+				$LIVE_stations[$live_calls_counter] =			"$station";
+				$LIVE_stations_FORMAT[$live_calls_counter] =	sprintf("%-10s", $station);
+
+		#		echo "| $station | $session_id | \n";
+
+				$live_calls_counter++;
+				}
+			else
+				{
+				if ($DB) {echo "NOT STATIONZ|$row[0]|$row[3]|\n";}
+				$session_id = '';
+				}
+			}
+
+		$i++;
+		}
+
+		if ($live_calls_counter > 0)
+		{
+		$i=0;
+		$LC_counter = $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;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$parked_to_print = mysql_num_rows($rslt);
+			$row=mysql_fetch_row($rslt);
+
+			$channel =			sprintf("%-9s", $row[0]);
+			$number_dialed =	sprintf("%-16s", $row[2]);
+			$start_time =		sprintf("%-19s", $row[3]);
+			$call_time_S = ($STARTtime - $row[4]);
+
+			$call_time_M = ($call_time_S / 60);
+			$call_time_M = round($call_time_M, 2);
+			$call_time_M_int = intval("$call_time_M");
+			$call_time_SEC = ($call_time_M - $call_time_M_int);
+			$call_time_SEC = ($call_time_SEC * 60);
+			$call_time_SEC = round($call_time_SEC, 0);
+			if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+			$call_time_MS = "$call_time_M_int:$call_time_SEC";
+			$call_time_MS =		sprintf("%7s", $call_time_MS);
+			$G = '';		$EG = '';
+			if ($call_time_M_int >= 12) {$G=''; $EG='';}
+			if ($call_time_M_int >= 31) {$G=''; $EG='';}
+
+			echo "| $G$LIVE_stations_FORMAT[$i]$EG | $G$LIVE_sessions_FORMAT[$i]$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+			$i++;
+			}
+
+		echo "+------------+-----------+-----------+------------------+---------------------+---------+\n";
+		echo "  $i stations on live calls on server $server_ip\n\n";
+
+		echo "             - 12 minutes or more on live call\n";
+		echo "             - Over 30 minutes on live call\n";
+
+		}
+		else
+		{
+		echo "*****************************************************************************************\n";
+		echo "*****************************************************************************************\n";
+		echo "*************************************** NO LIVE STATIONS ********************************\n";
+		echo "*****************************************************************************************\n";
+		echo "*****************************************************************************************\n";
+		}
+
+	}
+	else
+	{
+	echo "*****************************************************************************************\n";
+	echo "*****************************************************************************************\n";
+	echo "*************************************** NO LIVE STATIONS ********************************\n";
+	echo "*****************************************************************************************\n";
+	echo "*****************************************************************************************\n";
+	}
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonpark.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonpark.php new file mode 100644 index 00000000..e91afcbb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/AST_timeonpark.php @@ -0,0 +1,220 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1042 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$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 and view_reports='1';"; + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$timeONEhoursAGO = ($STARTtime - 3600); +$epochHALFhoursAGO = ($STARTtime - 1860); +$timeONEhoursAGO = date("Y-m-d H:i:s",$timeONEhoursAGO); +$timeHALFhoursAGO = date("Y-m-d H:i:s",$epochHALFhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where status='TALKING' and grab_time < '$timeONEhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + $stmt="delete from park_log where status='PARKED' and parked_time < '$timeHALFhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + } + } + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Park\n"; +echo "
\n\n";
+
+echo "VICIDIAL: Time On Park         $NOW_TIME    INFORMES\n\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+echo "| CHANNEL    | GROUP           | START TIME          | MINUTES |\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+
+#$link=mysql_connect("localhost", "cron", "1234");
+# $linkX=mysql_connect("localhost", "cron", "1234");
+#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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 1) {$G=''; $EG='';}
+		if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------+-----------------+---------------------+---------+\n";
+		echo "  $i callers waiting on server $server_ip\n\n";
+
+		echo "             - 1 minute or more on hold\n";
+		echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	echo "********************LLAMADAS EN ESPERA*********************\n";
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	}
+
+###################################################################################
+###### TIME ON INBOUND CALLS
+###################################################################################
+echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "VICIDIAL: Agentes Time On Inbound Calls                             $NOW_TIME\n\n";
+echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+echo "| STATION    | USER   | CHANNEL    | GROUP           | START TIME          | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$extension =		sprintf("%-10s", $row[0]);
+		$user =				sprintf("%-6s", $row[1]);
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 12) {$G=''; $EG='';}
+		if ($call_time_M_int >= 31) {$G=''; $EG='';}
+
+		echo "| $G$extension$EG | $G$user$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+		echo "  $i agents on calls on server $server_ip\n\n";
+
+		echo "             - 12 minutes or more on call\n";
+		echo "             - Over 30 minutes on call\n";
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "*********************************AGENTES SIN LLAMADAS*********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin.php new file mode 100644 index 00000000..c5b1d8fa --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin.php @@ -0,0 +1,25016 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +###################################################################################################### +###################################################################################################### +####### static variable settings for display options +###################################################################################################### +###################################################################################################### + +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$campaigns_color = '#FFCC99'; +$lists_color = '#FFCCCC'; +$ingroups_color = '#CC99FF'; +$remoteagent_color ='#CCFFCC'; +$usergroups_color = '#CCFFFF'; +$scripts_color = '#99FFCC'; +$filters_color = '#CCCCCC'; +$admin_color = '#FF99FF'; +$reports_color = '#99FF33'; + $times_color = '#FF33FF'; + $shifts_color = '#FF33FF'; + $phones_color = '#FF33FF'; + $conference_color = '#FF33FF'; + $server_color = '#FF33FF'; + $templates_color = '#FF33FF'; + $carriers_color = '#FF33FF'; + $settings_color = '#FF33FF'; + $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; +$subcamp_color = '#FF9933'; +$users_font = 'BLACK'; +$campaigns_font = 'BLACK'; +$lists_font = 'BLACK'; +$ingroups_font = 'BLACK'; +$remoteagent_font = 'BLACK'; +$usergroups_font = 'BLACK'; +$scripts_font = 'BLACK'; +$filters_font = 'BLACK'; +$admin_font = 'BLACK'; +$reports_font = 'BLACK'; + $times_font = 'BLACK'; + $phones_font = 'BLACK'; + $conference_font = 'BLACK'; + $server_font = 'BLACK'; + $settings_font = 'BLACK'; + $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; +$subcamp_font = 'BLACK'; + +### comment this section out for colorful section headings +$users_color = '#E6E6E6'; +$campaigns_color = '#E6E6E6'; +$lists_color = '#E6E6E6'; +$ingroups_color = '#E6E6E6'; +$remoteagent_color ='#E6E6E6'; +$usergroups_color = '#E6E6E6'; +$scripts_color = '#E6E6E6'; +$filters_color = '#E6E6E6'; +$admin_color = '#E6E6E6'; +$reports_color = '#E6E6E6'; + $times_color = '#C6C6C6'; + $shifts_color = '#C6C6C6'; + $phones_color = '#C6C6C6'; + $conference_color = '#C6C6C6'; + $server_color = '#C6C6C6'; + $templates_color = '#C6C6C6'; + $carriers_color = '#C6C6C6'; + $settings_color = '#C6C6C6'; + $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; +$subcamp_color = '#C6C6C6'; +### + + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +###################################################################################################### +###################################################################################################### +####### Form variable declaration +###################################################################################################### +###################################################################################################### + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["active"])) {$active=$_GET["active"];} + elseif (isset($_POST["active"])) {$active=$_POST["active"];} +if (isset($_GET["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_GET["adaptive_dl_diff_target"];} + elseif (isset($_POST["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_POST["adaptive_dl_diff_target"];} +if (isset($_GET["adaptive_dropped_percentage"])) {$adaptive_dropped_percentage=$_GET["adaptive_dropped_percentage"];} + elseif (isset($_POST["adaptive_dropped_percentage"])){$adaptive_dropped_percentage=$_POST["adaptive_dropped_percentage"];} +if (isset($_GET["adaptive_intensity"])) {$adaptive_intensity=$_GET["adaptive_intensity"];} + elseif (isset($_POST["adaptive_intensity"])) {$adaptive_intensity=$_POST["adaptive_intensity"];} +if (isset($_GET["adaptive_latest_server_time"])) {$adaptive_latest_server_time=$_GET["adaptive_latest_server_time"];} + elseif (isset($_POST["adaptive_latest_server_time"])){$adaptive_latest_server_time=$_POST["adaptive_latest_server_time"];} +if (isset($_GET["adaptive_maximum_level"])) {$adaptive_maximum_level=$_GET["adaptive_maximum_level"];} + elseif (isset($_POST["adaptive_maximum_level"])) {$adaptive_maximum_level=$_POST["adaptive_maximum_level"];} +if (isset($_GET["SUB"])) {$SUB=$_GET["SUB"];} + elseif (isset($_POST["SUB"])) {$SUB=$_POST["SUB"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["admin_hangup_enabled"])) {$admin_hangup_enabled=$_GET["admin_hangup_enabled"];} + elseif (isset($_POST["admin_hangup_enabled"])) {$admin_hangup_enabled=$_POST["admin_hangup_enabled"];} +if (isset($_GET["admin_hijack_enabled"])) {$admin_hijack_enabled=$_GET["admin_hijack_enabled"];} + elseif (isset($_POST["admin_hijack_enabled"])) {$admin_hijack_enabled=$_POST["admin_hijack_enabled"];} +if (isset($_GET["admin_monitor_enabled"])) {$admin_monitor_enabled=$_GET["admin_monitor_enabled"];} + elseif (isset($_POST["admin_monitor_enabled"])) {$admin_monitor_enabled=$_POST["admin_monitor_enabled"];} +if (isset($_GET["AFLogging_enabled"])) {$AFLogging_enabled=$_GET["AFLogging_enabled"];} + elseif (isset($_POST["AFLogging_enabled"])) {$AFLogging_enabled=$_POST["AFLogging_enabled"];} +if (isset($_GET["agent_choose_ingroups"])) {$agent_choose_ingroups=$_GET["agent_choose_ingroups"];} + elseif (isset($_POST["agent_choose_ingroups"])) {$agent_choose_ingroups=$_POST["agent_choose_ingroups"];} +if (isset($_GET["agentcall_manual"])) {$agentcall_manual=$_GET["agentcall_manual"];} + elseif (isset($_POST["agentcall_manual"])) {$agentcall_manual=$_POST["agentcall_manual"];} +if (isset($_GET["agentonly_callbacks"])) {$agentonly_callbacks=$_GET["agentonly_callbacks"];} + elseif (isset($_POST["agentonly_callbacks"])) {$agentonly_callbacks=$_POST["agentonly_callbacks"];} +if (isset($_GET["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_GET["AGI_call_logging_enabled"];} + elseif (isset($_POST["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_POST["AGI_call_logging_enabled"];} +if (isset($_GET["agi_output"])) {$agi_output=$_GET["agi_output"];} + elseif (isset($_POST["agi_output"])) {$agi_output=$_POST["agi_output"];} +if (isset($_GET["allcalls_delay"])) {$allcalls_delay=$_GET["allcalls_delay"];} + elseif (isset($_POST["allcalls_delay"])) {$allcalls_delay=$_POST["allcalls_delay"];} +if (isset($_GET["allow_closers"])) {$allow_closers=$_GET["allow_closers"];} + elseif (isset($_POST["allow_closers"])) {$allow_closers=$_POST["allow_closers"];} +if (isset($_GET["alt_number_dialing"])) {$alt_number_dialing=$_GET["alt_number_dialing"];} + elseif (isset($_POST["alt_number_dialing"])) {$alt_number_dialing=$_POST["alt_number_dialing"];} +if (isset($_GET["alter_agent_interface_options"])) {$alter_agent_interface_options=$_GET["alter_agent_interface_options"];} + elseif (isset($_POST["alter_agent_interface_options"])) {$alter_agent_interface_options=$_POST["alter_agent_interface_options"];} +if (isset($_GET["am_message_exten"])) {$am_message_exten=$_GET["am_message_exten"];} + elseif (isset($_POST["am_message_exten"])) {$am_message_exten=$_POST["am_message_exten"];} +if (isset($_GET["amd_send_to_vmx"])) {$amd_send_to_vmx=$_GET["amd_send_to_vmx"];} + elseif (isset($_POST["amd_send_to_vmx"])) {$amd_send_to_vmx=$_POST["amd_send_to_vmx"];} +if (isset($_GET["answer_transfer_agent"])) {$answer_transfer_agent=$_GET["answer_transfer_agent"];} + elseif (isset($_POST["answer_transfer_agent"])) {$answer_transfer_agent=$_POST["answer_transfer_agent"];} +if (isset($_GET["ast_admin_access"])) {$ast_admin_access=$_GET["ast_admin_access"];} + elseif (isset($_POST["ast_admin_access"])) {$ast_admin_access=$_POST["ast_admin_access"];} +if (isset($_GET["ast_delete_phones"])) {$ast_delete_phones=$_GET["ast_delete_phones"];} + elseif (isset($_POST["ast_delete_phones"])) {$ast_delete_phones=$_POST["ast_delete_phones"];} +if (isset($_GET["asterisk_version"])) {$asterisk_version=$_GET["asterisk_version"];} + elseif (isset($_POST["asterisk_version"])) {$asterisk_version=$_POST["asterisk_version"];} +if (isset($_GET["ASTmgrSECRET"])) {$ASTmgrSECRET=$_GET["ASTmgrSECRET"];} + elseif (isset($_POST["ASTmgrSECRET"])) {$ASTmgrSECRET=$_POST["ASTmgrSECRET"];} +if (isset($_GET["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_GET["ASTmgrUSERNAME"];} + elseif (isset($_POST["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_POST["ASTmgrUSERNAME"];} +if (isset($_GET["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_GET["ASTmgrUSERNAMElisten"];} + elseif (isset($_POST["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_POST["ASTmgrUSERNAMElisten"];} +if (isset($_GET["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_GET["ASTmgrUSERNAMEsend"];} + elseif (isset($_POST["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_POST["ASTmgrUSERNAMEsend"];} +if (isset($_GET["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_GET["ASTmgrUSERNAMEupdate"];} + elseif (isset($_POST["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_POST["ASTmgrUSERNAMEupdate"];} +if (isset($_GET["attempt_delay"])) {$attempt_delay=$_GET["attempt_delay"];} + elseif (isset($_POST["attempt_delay"])) {$attempt_delay=$_POST["attempt_delay"];} +if (isset($_GET["attempt_maximum"])) {$attempt_maximum=$_GET["attempt_maximum"];} + elseif (isset($_POST["attempt_maximum"])) {$attempt_maximum=$_POST["attempt_maximum"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["auto_dial_next_number"])) {$auto_dial_next_number=$_GET["auto_dial_next_number"];} + elseif (isset($_POST["auto_dial_next_number"])) {$auto_dial_next_number=$_POST["auto_dial_next_number"];} +if (isset($_GET["available_only_ratio_tally"])) {$available_only_ratio_tally=$_GET["available_only_ratio_tally"];} + elseif (isset($_POST["available_only_ratio_tally"])){$available_only_ratio_tally=$_POST["available_only_ratio_tally"];} +if (isset($_GET["call_out_number_group"])) {$call_out_number_group=$_GET["call_out_number_group"];} + elseif (isset($_POST["call_out_number_group"])) {$call_out_number_group=$_POST["call_out_number_group"];} +if (isset($_GET["call_parking_enabled"])) {$call_parking_enabled=$_GET["call_parking_enabled"];} + elseif (isset($_POST["call_parking_enabled"])) {$call_parking_enabled=$_POST["call_parking_enabled"];} +if (isset($_GET["call_time_comments"])) {$call_time_comments=$_GET["call_time_comments"];} + elseif (isset($_POST["call_time_comments"])) {$call_time_comments=$_POST["call_time_comments"];} +if (isset($_GET["call_time_id"])) {$call_time_id=$_GET["call_time_id"];} + elseif (isset($_POST["call_time_id"])) {$call_time_id=$_POST["call_time_id"];} +if (isset($_GET["call_time_name"])) {$call_time_name=$_GET["call_time_name"];} + elseif (isset($_POST["call_time_name"])) {$call_time_name=$_POST["call_time_name"];} +if (isset($_GET["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_GET["CallerID_popup_enabled"];} + elseif (isset($_POST["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_POST["CallerID_popup_enabled"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["campaign_detail"])) {$campaign_detail=$_GET["campaign_detail"];} + elseif (isset($_POST["campaign_detail"])) {$campaign_detail=$_POST["campaign_detail"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["campaign_name"])) {$campaign_name=$_GET["campaign_name"];} + elseif (isset($_POST["campaign_name"])) {$campaign_name=$_POST["campaign_name"];} +if (isset($_GET["campaign_rec_exten"])) {$campaign_rec_exten=$_GET["campaign_rec_exten"];} + elseif (isset($_POST["campaign_rec_exten"])) {$campaign_rec_exten=$_POST["campaign_rec_exten"];} +if (isset($_GET["campaign_rec_filename"])) {$campaign_rec_filename=$_GET["campaign_rec_filename"];} + elseif (isset($_POST["campaign_rec_filename"])) {$campaign_rec_filename=$_POST["campaign_rec_filename"];} +if (isset($_GET["ingroup_rec_filename"])) {$ingroup_rec_filename=$_GET["ingroup_rec_filename"];} + elseif (isset($_POST["ingroup_rec_filename"])) {$ingroup_rec_filename=$_POST["ingroup_rec_filename"];} +if (isset($_GET["campaign_recording"])) {$campaign_recording=$_GET["campaign_recording"];} + elseif (isset($_POST["campaign_recording"])) {$campaign_recording=$_POST["campaign_recording"];} +if (isset($_GET["campaign_vdad_exten"])) {$campaign_vdad_exten=$_GET["campaign_vdad_exten"];} + elseif (isset($_POST["campaign_vdad_exten"])) {$campaign_vdad_exten=$_POST["campaign_vdad_exten"];} +if (isset($_GET["change_agent_campaign"])) {$change_agent_campaign=$_GET["change_agent_campaign"];} + elseif (isset($_POST["change_agent_campaign"])) {$change_agent_campaign=$_POST["change_agent_campaign"];} +if (isset($_GET["client_browser"])) {$client_browser=$_GET["client_browser"];} + elseif (isset($_POST["client_browser"])) {$client_browser=$_POST["client_browser"];} +if (isset($_GET["closer_default_blended"])) {$closer_default_blended=$_GET["closer_default_blended"];} + elseif (isset($_POST["closer_default_blended"])) {$closer_default_blended=$_POST["closer_default_blended"];} +if (isset($_GET["company"])) {$company=$_GET["company"];} + elseif (isset($_POST["company"])) {$company=$_POST["company"];} +if (isset($_GET["computer_ip"])) {$computer_ip=$_GET["computer_ip"];} + elseif (isset($_POST["computer_ip"])) {$computer_ip=$_POST["computer_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["conf_on_extension"])) {$conf_on_extension=$_GET["conf_on_extension"];} + elseif (isset($_POST["conf_on_extension"])) {$conf_on_extension=$_POST["conf_on_extension"];} +if (isset($_GET["conferencing_enabled"])) {$conferencing_enabled=$_GET["conferencing_enabled"];} + elseif (isset($_POST["conferencing_enabled"])) {$conferencing_enabled=$_POST["conferencing_enabled"];} +if (isset($_GET["CoNfIrM"])) {$CoNfIrM=$_GET["CoNfIrM"];} + elseif (isset($_POST["CoNfIrM"])) {$CoNfIrM=$_POST["CoNfIrM"];} +if (isset($_GET["ct_default_start"])) {$ct_default_start=$_GET["ct_default_start"];} + elseif (isset($_POST["ct_default_start"])) {$ct_default_start=$_POST["ct_default_start"];} +if (isset($_GET["ct_default_stop"])) {$ct_default_stop=$_GET["ct_default_stop"];} + elseif (isset($_POST["ct_default_stop"])) {$ct_default_stop=$_POST["ct_default_stop"];} +if (isset($_GET["ct_friday_start"])) {$ct_friday_start=$_GET["ct_friday_start"];} + elseif (isset($_POST["ct_friday_start"])) {$ct_friday_start=$_POST["ct_friday_start"];} +if (isset($_GET["ct_friday_stop"])) {$ct_friday_stop=$_GET["ct_friday_stop"];} + elseif (isset($_POST["ct_friday_stop"])) {$ct_friday_stop=$_POST["ct_friday_stop"];} +if (isset($_GET["ct_monday_start"])) {$ct_monday_start=$_GET["ct_monday_start"];} + elseif (isset($_POST["ct_monday_start"])) {$ct_monday_start=$_POST["ct_monday_start"];} +if (isset($_GET["ct_monday_stop"])) {$ct_monday_stop=$_GET["ct_monday_stop"];} + elseif (isset($_POST["ct_monday_stop"])) {$ct_monday_stop=$_POST["ct_monday_stop"];} +if (isset($_GET["ct_saturday_start"])) {$ct_saturday_start=$_GET["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"];} + elseif (isset($_POST["ct_saturday_stop"])) {$ct_saturday_stop=$_POST["ct_saturday_stop"];} +if (isset($_GET["ct_sunday_start"])) {$ct_sunday_start=$_GET["ct_sunday_start"];} + elseif (isset($_POST["ct_sunday_start"])) {$ct_sunday_start=$_POST["ct_sunday_start"];} +if (isset($_GET["ct_sunday_stop"])) {$ct_sunday_stop=$_GET["ct_sunday_stop"];} + elseif (isset($_POST["ct_sunday_stop"])) {$ct_sunday_stop=$_POST["ct_sunday_stop"];} +if (isset($_GET["ct_thursday_start"])) {$ct_thursday_start=$_GET["ct_thursday_start"];} + elseif (isset($_POST["ct_thursday_start"])) {$ct_thursday_start=$_POST["ct_thursday_start"];} +if (isset($_GET["ct_thursday_stop"])) {$ct_thursday_stop=$_GET["ct_thursday_stop"];} + elseif (isset($_POST["ct_thursday_stop"])) {$ct_thursday_stop=$_POST["ct_thursday_stop"];} +if (isset($_GET["ct_tuesday_start"])) {$ct_tuesday_start=$_GET["ct_tuesday_start"];} + elseif (isset($_POST["ct_tuesday_start"])) {$ct_tuesday_start=$_POST["ct_tuesday_start"];} +if (isset($_GET["ct_tuesday_stop"])) {$ct_tuesday_stop=$_GET["ct_tuesday_stop"];} + elseif (isset($_POST["ct_tuesday_stop"])) {$ct_tuesday_stop=$_POST["ct_tuesday_stop"];} +if (isset($_GET["ct_wednesday_start"])) {$ct_wednesday_start=$_GET["ct_wednesday_start"];} + elseif (isset($_POST["ct_wednesday_start"])) {$ct_wednesday_start=$_POST["ct_wednesday_start"];} +if (isset($_GET["ct_wednesday_stop"])) {$ct_wednesday_stop=$_GET["ct_wednesday_stop"];} + elseif (isset($_POST["ct_wednesday_stop"])) {$ct_wednesday_stop=$_POST["ct_wednesday_stop"];} +if (isset($_GET["DBX_database"])) {$DBX_database=$_GET["DBX_database"];} + elseif (isset($_POST["DBX_database"])) {$DBX_database=$_POST["DBX_database"];} +if (isset($_GET["DBX_pass"])) {$DBX_pass=$_GET["DBX_pass"];} + elseif (isset($_POST["DBX_pass"])) {$DBX_pass=$_POST["DBX_pass"];} +if (isset($_GET["DBX_port"])) {$DBX_port=$_GET["DBX_port"];} + elseif (isset($_POST["DBX_port"])) {$DBX_port=$_POST["DBX_port"];} +if (isset($_GET["DBX_server"])) {$DBX_server=$_GET["DBX_server"];} + elseif (isset($_POST["DBX_server"])) {$DBX_server=$_POST["DBX_server"];} +if (isset($_GET["DBX_user"])) {$DBX_user=$_GET["DBX_user"];} + elseif (isset($_POST["DBX_user"])) {$DBX_user=$_POST["DBX_user"];} +if (isset($_GET["DBY_database"])) {$DBY_database=$_GET["DBY_database"];} + elseif (isset($_POST["DBY_database"])) {$DBY_database=$_POST["DBY_database"];} +if (isset($_GET["DBY_pass"])) {$DBY_pass=$_GET["DBY_pass"];} + elseif (isset($_POST["DBY_pass"])) {$DBY_pass=$_POST["DBY_pass"];} +if (isset($_GET["DBY_port"])) {$DBY_port=$_GET["DBY_port"];} + elseif (isset($_POST["DBY_port"])) {$DBY_port=$_POST["DBY_port"];} +if (isset($_GET["DBY_server"])) {$DBY_server=$_GET["DBY_server"];} + elseif (isset($_POST["DBY_server"])) {$DBY_server=$_POST["DBY_server"];} +if (isset($_GET["DBY_user"])) {$DBY_user=$_GET["DBY_user"];} + elseif (isset($_POST["DBY_user"])) {$DBY_user=$_POST["DBY_user"];} +if (isset($_GET["delete_call_times"])) {$delete_call_times=$_GET["delete_call_times"];} + elseif (isset($_POST["delete_call_times"])) {$delete_call_times=$_POST["delete_call_times"];} +if (isset($_GET["delete_campaigns"])) {$delete_campaigns=$_GET["delete_campaigns"];} + elseif (isset($_POST["delete_campaigns"])) {$delete_campaigns=$_POST["delete_campaigns"];} +if (isset($_GET["delete_filters"])) {$delete_filters=$_GET["delete_filters"];} + elseif (isset($_POST["delete_filters"])) {$delete_filters=$_POST["delete_filters"];} +if (isset($_GET["delete_ingroups"])) {$delete_ingroups=$_GET["delete_ingroups"];} + elseif (isset($_POST["delete_ingroups"])) {$delete_ingroups=$_POST["delete_ingroups"];} +if (isset($_GET["delete_lists"])) {$delete_lists=$_GET["delete_lists"];} + elseif (isset($_POST["delete_lists"])) {$delete_lists=$_POST["delete_lists"];} +if (isset($_GET["delete_remote_agents"])) {$delete_remote_agents=$_GET["delete_remote_agents"];} + elseif (isset($_POST["delete_remote_agents"])) {$delete_remote_agents=$_POST["delete_remote_agents"];} +if (isset($_GET["delete_scripts"])) {$delete_scripts=$_GET["delete_scripts"];} + elseif (isset($_POST["delete_scripts"])) {$delete_scripts=$_POST["delete_scripts"];} +if (isset($_GET["delete_user_groups"])) {$delete_user_groups=$_GET["delete_user_groups"];} + elseif (isset($_POST["delete_user_groups"])) {$delete_user_groups=$_POST["delete_user_groups"];} +if (isset($_GET["delete_users"])) {$delete_users=$_GET["delete_users"];} + elseif (isset($_POST["delete_users"])) {$delete_users=$_POST["delete_users"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["dial_status_a"])) {$dial_status_a=$_GET["dial_status_a"];} + elseif (isset($_POST["dial_status_a"])) {$dial_status_a=$_POST["dial_status_a"];} +if (isset($_GET["dial_status_b"])) {$dial_status_b=$_GET["dial_status_b"];} + elseif (isset($_POST["dial_status_b"])) {$dial_status_b=$_POST["dial_status_b"];} +if (isset($_GET["dial_status_c"])) {$dial_status_c=$_GET["dial_status_c"];} + elseif (isset($_POST["dial_status_c"])) {$dial_status_c=$_POST["dial_status_c"];} +if (isset($_GET["dial_status_d"])) {$dial_status_d=$_GET["dial_status_d"];} + elseif (isset($_POST["dial_status_d"])) {$dial_status_d=$_POST["dial_status_d"];} +if (isset($_GET["dial_status_e"])) {$dial_status_e=$_GET["dial_status_e"];} + elseif (isset($_POST["dial_status_e"])) {$dial_status_e=$_POST["dial_status_e"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dialplan_number"])) {$dialplan_number=$_GET["dialplan_number"];} + elseif (isset($_POST["dialplan_number"])) {$dialplan_number=$_POST["dialplan_number"];} +if (isset($_GET["drop_call_seconds"])) {$drop_call_seconds=$_GET["drop_call_seconds"];} + elseif (isset($_POST["drop_call_seconds"])) {$drop_call_seconds=$_POST["drop_call_seconds"];} +if (isset($_GET["drop_exten"])) {$drop_exten=$_GET["drop_exten"];} + elseif (isset($_POST["drop_exten"])) {$drop_exten=$_POST["drop_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["dtmf_send_extension"])) {$dtmf_send_extension=$_GET["dtmf_send_extension"];} + elseif (isset($_POST["dtmf_send_extension"])) {$dtmf_send_extension=$_POST["dtmf_send_extension"];} +if (isset($_GET["enable_fast_refresh"])) {$enable_fast_refresh=$_GET["enable_fast_refresh"];} + elseif (isset($_POST["enable_fast_refresh"])) {$enable_fast_refresh=$_POST["enable_fast_refresh"];} +if (isset($_GET["enable_persistant_mysql"])) {$enable_persistant_mysql=$_GET["enable_persistant_mysql"];} + elseif (isset($_POST["enable_persistant_mysql"])) {$enable_persistant_mysql=$_POST["enable_persistant_mysql"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["fast_refresh_rate"])) {$fast_refresh_rate=$_GET["fast_refresh_rate"];} + elseif (isset($_POST["fast_refresh_rate"])) {$fast_refresh_rate=$_POST["fast_refresh_rate"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["fronter_display"])) {$fronter_display=$_GET["fronter_display"];} + elseif (isset($_POST["fronter_display"])) {$fronter_display=$_POST["fronter_display"];} +if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];} + elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["get_call_launch"])) {$get_call_launch=$_GET["get_call_launch"];} + elseif (isset($_POST["get_call_launch"])) {$get_call_launch=$_POST["get_call_launch"];} +if (isset($_GET["group_color"])) {$group_color=$_GET["group_color"];} + elseif (isset($_POST["group_color"])) {$group_color=$_POST["group_color"];} +if (isset($_GET["group_id"])) {$group_id=$_GET["group_id"];} + elseif (isset($_POST["group_id"])) {$group_id=$_POST["group_id"];} +if (isset($_GET["group_name"])) {$group_name=$_GET["group_name"];} + elseif (isset($_POST["group_name"])) {$group_name=$_POST["group_name"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["XFERgroups"])) {$XFERgroups=$_GET["XFERgroups"];} + elseif (isset($_POST["XFERgroups"])) {$XFERgroups=$_POST["XFERgroups"];} +if (isset($_GET["HKstatus"])) {$HKstatus=$_GET["HKstatus"];} + elseif (isset($_POST["HKstatus"])) {$HKstatus=$_POST["HKstatus"];} +if (isset($_GET["hopper_level"])) {$hopper_level=$_GET["hopper_level"];} + elseif (isset($_POST["hopper_level"])) {$hopper_level=$_POST["hopper_level"];} +if (isset($_GET["hotkey"])) {$hotkey=$_GET["hotkey"];} + elseif (isset($_POST["hotkey"])) {$hotkey=$_POST["hotkey"];} +if (isset($_GET["hotkeys_active"])) {$hotkeys_active=$_GET["hotkeys_active"];} + elseif (isset($_POST["hotkeys_active"])) {$hotkeys_active=$_POST["hotkeys_active"];} +if (isset($_GET["install_directory"])) {$install_directory=$_GET["install_directory"];} + elseif (isset($_POST["install_directory"])) {$install_directory=$_POST["install_directory"];} +if (isset($_GET["lead_filter_comments"])) {$lead_filter_comments=$_GET["lead_filter_comments"];} + elseif (isset($_POST["lead_filter_comments"])) {$lead_filter_comments=$_POST["lead_filter_comments"];} +if (isset($_GET["lead_filter_id"])) {$lead_filter_id=$_GET["lead_filter_id"];} + elseif (isset($_POST["lead_filter_id"])) {$lead_filter_id=$_POST["lead_filter_id"];} +if (isset($_GET["lead_filter_name"])) {$lead_filter_name=$_GET["lead_filter_name"];} + elseif (isset($_POST["lead_filter_name"])) {$lead_filter_name=$_POST["lead_filter_name"];} +if (isset($_GET["lead_filter_sql"])) {$lead_filter_sql=$_GET["lead_filter_sql"];} + elseif (isset($_POST["lead_filter_sql"])) {$lead_filter_sql=$_POST["lead_filter_sql"];} +if (isset($_GET["lead_order"])) {$lead_order=$_GET["lead_order"];} + elseif (isset($_POST["lead_order"])) {$lead_order=$_POST["lead_order"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["list_name"])) {$list_name=$_GET["list_name"];} + elseif (isset($_POST["list_name"])) {$list_name=$_POST["list_name"];} +if (isset($_GET["load_leads"])) {$load_leads=$_GET["load_leads"];} + elseif (isset($_POST["load_leads"])) {$load_leads=$_POST["load_leads"];} +if (isset($_GET["local_call_time"])) {$local_call_time=$_GET["local_call_time"];} + elseif (isset($_POST["local_call_time"])) {$local_call_time=$_POST["local_call_time"];} +if (isset($_GET["local_gmt"])) {$local_gmt=$_GET["local_gmt"];} + elseif (isset($_POST["local_gmt"])) {$local_gmt=$_POST["local_gmt"];} +if (isset($_GET["local_web_callerID_URL"])) {$local_web_callerID_URL=$_GET["local_web_callerID_URL"];} + elseif (isset($_POST["local_web_callerID_URL"])) {$local_web_callerID_URL=$_POST["local_web_callerID_URL"];} +if (isset($_GET["login"])) {$login=$_GET["login"];} + elseif (isset($_POST["login"])) {$login=$_POST["login"];} +if (isset($_GET["login_campaign"])) {$login_campaign=$_GET["login_campaign"];} + elseif (isset($_POST["login_campaign"])) {$login_campaign=$_POST["login_campaign"];} +if (isset($_GET["login_pass"])) {$login_pass=$_GET["login_pass"];} + elseif (isset($_POST["login_pass"])) {$login_pass=$_POST["login_pass"];} +if (isset($_GET["login_user"])) {$login_user=$_GET["login_user"];} + elseif (isset($_POST["login_user"])) {$login_user=$_POST["login_user"];} +if (isset($_GET["max_vicidial_trunks"])) {$max_vicidial_trunks=$_GET["max_vicidial_trunks"];} + elseif (isset($_POST["max_vicidial_trunks"])) {$max_vicidial_trunks=$_POST["max_vicidial_trunks"];} +if (isset($_GET["modify_call_times"])) {$modify_call_times=$_GET["modify_call_times"];} + elseif (isset($_POST["modify_call_times"])) {$modify_call_times=$_POST["modify_call_times"];} +if (isset($_GET["modify_leads"])) {$modify_leads=$_GET["modify_leads"];} + elseif (isset($_POST["modify_leads"])) {$modify_leads=$_POST["modify_leads"];} +if (isset($_GET["monitor_prefix"])) {$monitor_prefix=$_GET["monitor_prefix"];} + elseif (isset($_POST["monitor_prefix"])) {$monitor_prefix=$_POST["monitor_prefix"];} +if (isset($_GET["next_agent_call"])) {$next_agent_call=$_GET["next_agent_call"];} + elseif (isset($_POST["next_agent_call"])) {$next_agent_call=$_POST["next_agent_call"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["old_campaign_id"])) {$old_campaign_id=$_GET["old_campaign_id"];} + elseif (isset($_POST["old_campaign_id"])) {$old_campaign_id=$_POST["old_campaign_id"];} +if (isset($_GET["old_conf_exten"])) {$old_conf_exten=$_GET["old_conf_exten"];} + elseif (isset($_POST["old_conf_exten"])) {$old_conf_exten=$_POST["old_conf_exten"];} +if (isset($_GET["old_extension"])) {$old_extension=$_GET["old_extension"];} + elseif (isset($_POST["old_extension"])) {$old_extension=$_POST["old_extension"];} +if (isset($_GET["old_server_id"])) {$old_server_id=$_GET["old_server_id"];} + elseif (isset($_POST["old_server_id"])) {$old_server_id=$_POST["old_server_id"];} +if (isset($_GET["old_server_ip"])) {$old_server_ip=$_GET["old_server_ip"];} + elseif (isset($_POST["old_server_ip"])) {$old_server_ip=$_POST["old_server_ip"];} +if (isset($_GET["OLDuser_group"])) {$OLDuser_group=$_GET["OLDuser_group"];} + elseif (isset($_POST["OLDuser_group"])) {$OLDuser_group=$_POST["OLDuser_group"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["park_ext"])) {$park_ext=$_GET["park_ext"];} + elseif (isset($_POST["park_ext"])) {$park_ext=$_POST["park_ext"];} +if (isset($_GET["park_file_name"])) {$park_file_name=$_GET["park_file_name"];} + elseif (isset($_POST["park_file_name"])) {$park_file_name=$_POST["park_file_name"];} +if (isset($_GET["park_on_extension"])) {$park_on_extension=$_GET["park_on_extension"];} + elseif (isset($_POST["park_on_extension"])) {$park_on_extension=$_POST["park_on_extension"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["phone_type"])) {$phone_type=$_GET["phone_type"];} + elseif (isset($_POST["phone_type"])) {$phone_type=$_POST["phone_type"];} +if (isset($_GET["picture"])) {$picture=$_GET["picture"];} + elseif (isset($_POST["picture"])) {$picture=$_POST["picture"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_GET["QUEUE_ACTION_enabled"];} + elseif (isset($_POST["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_POST["QUEUE_ACTION_enabled"];} +if (isset($_GET["recording_exten"])) {$recording_exten=$_GET["recording_exten"];} + elseif (isset($_POST["recording_exten"])) {$recording_exten=$_POST["recording_exten"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["reset_hopper"])) {$reset_hopper=$_GET["reset_hopper"];} + elseif (isset($_POST["reset_hopper"])) {$reset_hopper=$_POST["reset_hopper"];} +if (isset($_GET["reset_list"])) {$reset_list=$_GET["reset_list"];} + elseif (isset($_POST["reset_list"])) {$reset_list=$_POST["reset_list"];} +if (isset($_GET["safe_harbor_exten"])) {$safe_harbor_exten=$_GET["safe_harbor_exten"];} + elseif (isset($_POST["safe_harbor_exten"])) {$safe_harbor_exten=$_POST["safe_harbor_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["scheduled_callbacks"])) {$scheduled_callbacks=$_GET["scheduled_callbacks"];} + elseif (isset($_POST["scheduled_callbacks"])) {$scheduled_callbacks=$_POST["scheduled_callbacks"];} +if (isset($_GET["script_comments"])) {$script_comments=$_GET["script_comments"];} + elseif (isset($_POST["script_comments"])) {$script_comments=$_POST["script_comments"];} +if (isset($_GET["script_id"])) {$script_id=$_GET["script_id"];} + elseif (isset($_POST["script_id"])) {$script_id=$_POST["script_id"];} +if (isset($_GET["script_name"])) {$script_name=$_GET["script_name"];} + elseif (isset($_POST["script_name"])) {$script_name=$_POST["script_name"];} +if (isset($_GET["script_text"])) {$script_text=$_GET["script_text"];} + elseif (isset($_POST["script_text"])) {$script_text=$_POST["script_text"];} +if (isset($_GET["selectable"])) {$selectable=$_GET["selectable"];} + elseif (isset($_POST["selectable"])) {$selectable=$_POST["selectable"];} +if (isset($_GET["server_description"])) {$server_description=$_GET["server_description"];} + elseif (isset($_POST["server_description"])) {$server_description=$_POST["server_description"];} +if (isset($_GET["server_id"])) {$server_id=$_GET["server_id"];} + elseif (isset($_POST["server_id"])) {$server_id=$_POST["server_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +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"];} +if (isset($_GET["state_rule"])) {$state_rule=$_GET["state_rule"];} + elseif (isset($_POST["state_rule"])) {$state_rule=$_POST["state_rule"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["status_name"])) {$status_name=$_GET["status_name"];} + elseif (isset($_POST["status_name"])) {$status_name=$_POST["status_name"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["sys_perf_log"])) {$sys_perf_log=$_GET["sys_perf_log"];} + elseif (isset($_POST["sys_perf_log"])) {$sys_perf_log=$_POST["sys_perf_log"];} +if (isset($_GET["telnet_host"])) {$telnet_host=$_GET["telnet_host"];} + elseif (isset($_POST["telnet_host"])) {$telnet_host=$_POST["telnet_host"];} +if (isset($_GET["telnet_port"])) {$telnet_port=$_GET["telnet_port"];} + elseif (isset($_POST["telnet_port"])) {$telnet_port=$_POST["telnet_port"];} +if (isset($_GET["updater_check_enabled"])) {$updater_check_enabled=$_GET["updater_check_enabled"];} + elseif (isset($_POST["updater_check_enabled"])) {$updater_check_enabled=$_POST["updater_check_enabled"];} +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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["user_level"])) {$user_level=$_GET["user_level"];} + elseif (isset($_POST["user_level"])) {$user_level=$_POST["user_level"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["user_switching_enabled"])) {$user_switching_enabled=$_GET["user_switching_enabled"];} + elseif (isset($_POST["user_switching_enabled"])) {$user_switching_enabled=$_POST["user_switching_enabled"];} +if (isset($_GET["vd_server_logs"])) {$vd_server_logs=$_GET["vd_server_logs"];} + elseif (isset($_POST["vd_server_logs"])) {$vd_server_logs=$_POST["vd_server_logs"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_GET["VICIDIAL_park_on_extension"];} + elseif (isset($_POST["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_POST["VICIDIAL_park_on_extension"];} +if (isset($_GET["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_GET["VICIDIAL_park_on_filename"];} + elseif (isset($_POST["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_POST["VICIDIAL_park_on_filename"];} +if (isset($_GET["vicidial_recording"])) {$vicidial_recording=$_GET["vicidial_recording"];} + elseif (isset($_POST["vicidial_recording"])) {$vicidial_recording=$_POST["vicidial_recording"];} +if (isset($_GET["vicidial_transfers"])) {$vicidial_transfers=$_GET["vicidial_transfers"];} + elseif (isset($_POST["vicidial_transfers"])) {$vicidial_transfers=$_POST["vicidial_transfers"];} +if (isset($_GET["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_GET["VICIDIAL_web_URL"];} + elseif (isset($_POST["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_POST["VICIDIAL_web_URL"];} +if (isset($_GET["voicemail_button_enabled"])) {$voicemail_button_enabled=$_GET["voicemail_button_enabled"];} + elseif (isset($_POST["voicemail_button_enabled"])) {$voicemail_button_enabled=$_POST["voicemail_button_enabled"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["voicemail_ext"])) {$voicemail_ext=$_GET["voicemail_ext"];} + elseif (isset($_POST["voicemail_ext"])) {$voicemail_ext=$_POST["voicemail_ext"];} +if (isset($_GET["voicemail_exten"])) {$voicemail_exten=$_GET["voicemail_exten"];} + elseif (isset($_POST["voicemail_exten"])) {$voicemail_exten=$_POST["voicemail_exten"];} +if (isset($_GET["voicemail_id"])) {$voicemail_id=$_GET["voicemail_id"];} + elseif (isset($_POST["voicemail_id"])) {$voicemail_id=$_POST["voicemail_id"];} +if (isset($_GET["web_form_address"])) {$web_form_address=$_GET["web_form_address"];} + elseif (isset($_POST["web_form_address"])) {$web_form_address=$_POST["web_form_address"];} +if (isset($_GET["wrapup_message"])) {$wrapup_message=$_GET["wrapup_message"];} + elseif (isset($_POST["wrapup_message"])) {$wrapup_message=$_POST["wrapup_message"];} +if (isset($_GET["wrapup_seconds"])) {$wrapup_seconds=$_GET["wrapup_seconds"];} + elseif (isset($_POST["wrapup_seconds"])) {$wrapup_seconds=$_POST["wrapup_seconds"];} +if (isset($_GET["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_GET["xferconf_a_dtmf"];} + elseif (isset($_POST["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_POST["xferconf_a_dtmf"];} +if (isset($_GET["xferconf_a_number"])) {$xferconf_a_number=$_GET["xferconf_a_number"];} + elseif (isset($_POST["xferconf_a_number"])) {$xferconf_a_number=$_POST["xferconf_a_number"];} +if (isset($_GET["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_GET["xferconf_b_dtmf"];} + elseif (isset($_POST["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_POST["xferconf_b_dtmf"];} +if (isset($_GET["xferconf_b_number"])) {$xferconf_b_number=$_GET["xferconf_b_number"];} + elseif (isset($_POST["xferconf_b_number"])) {$xferconf_b_number=$_POST["xferconf_b_number"];} +if (isset($_GET["vicidial_balance_active"])) {$vicidial_balance_active=$_GET["vicidial_balance_active"];} + elseif (isset($_POST["vicidial_balance_active"])) {$vicidial_balance_active=$_POST["vicidial_balance_active"];} +if (isset($_GET["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_GET["balance_trunks_offlimits"];} + elseif (isset($_POST["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_POST["balance_trunks_offlimits"];} +if (isset($_GET["dedicated_trunks"])) {$dedicated_trunks=$_GET["dedicated_trunks"];} + elseif (isset($_POST["dedicated_trunks"])) {$dedicated_trunks=$_POST["dedicated_trunks"];} +if (isset($_GET["trunk_restriction"])) {$trunk_restriction=$_GET["trunk_restriction"];} + elseif (isset($_POST["trunk_restriction"])) {$trunk_restriction=$_POST["trunk_restriction"];} +if (isset($_GET["campaigns"])) {$campaigns=$_GET["campaigns"];} + elseif (isset($_POST["campaigns"])) {$campaigns=$_POST["campaigns"];} +if (isset($_GET["dial_level_override"])) {$dial_level_override=$_GET["dial_level_override"];} + elseif (isset($_POST["dial_level_override"])) {$dial_level_override=$_POST["dial_level_override"];} +if (isset($_GET["concurrent_transfers"])) {$concurrent_transfers=$_GET["concurrent_transfers"];} + elseif (isset($_POST["concurrent_transfers"])) {$concurrent_transfers=$_POST["concurrent_transfers"];} +if (isset($_GET["auto_alt_dial"])) {$auto_alt_dial=$_GET["auto_alt_dial"];} + elseif (isset($_POST["auto_alt_dial"])) {$auto_alt_dial=$_POST["auto_alt_dial"];} +if (isset($_GET["modify_users"])) {$modify_users=$_GET["modify_users"];} + elseif (isset($_POST["modify_users"])) {$modify_users=$_POST["modify_users"];} +if (isset($_GET["modify_campaigns"])) {$modify_campaigns=$_GET["modify_campaigns"];} + elseif (isset($_POST["modify_campaigns"])) {$modify_campaigns=$_POST["modify_campaigns"];} +if (isset($_GET["modify_lists"])) {$modify_lists=$_GET["modify_lists"];} + elseif (isset($_POST["modify_lists"])) {$modify_lists=$_POST["modify_lists"];} +if (isset($_GET["modify_scripts"])) {$modify_scripts=$_GET["modify_scripts"];} + elseif (isset($_POST["modify_scripts"])) {$modify_scripts=$_POST["modify_scripts"];} +if (isset($_GET["modify_filters"])) {$modify_filters=$_GET["modify_filters"];} + elseif (isset($_POST["modify_filters"])) {$modify_filters=$_POST["modify_filters"];} +if (isset($_GET["modify_ingroups"])) {$modify_ingroups=$_GET["modify_ingroups"];} + elseif (isset($_POST["modify_ingroups"])) {$modify_ingroups=$_POST["modify_ingroups"];} +if (isset($_GET["modify_usergroups"])) {$modify_usergroups=$_GET["modify_usergroups"];} + elseif (isset($_POST["modify_usergroups"])) {$modify_usergroups=$_POST["modify_usergroups"];} +if (isset($_GET["modify_remoteagents"])) {$modify_remoteagents=$_GET["modify_remoteagents"];} + elseif (isset($_POST["modify_remoteagents"])) {$modify_remoteagents=$_POST["modify_remoteagents"];} +if (isset($_GET["modify_servers"])) {$modify_servers=$_GET["modify_servers"];} + elseif (isset($_POST["modify_servers"])) {$modify_servers=$_POST["modify_servers"];} +if (isset($_GET["view_reports"])) {$view_reports=$_GET["view_reports"];} + elseif (isset($_POST["view_reports"])) {$view_reports=$_POST["view_reports"];} +if (isset($_GET["agent_pause_codes_active"])) {$agent_pause_codes_active=$_GET["agent_pause_codes_active"];} + elseif (isset($_POST["agent_pause_codes_active"])) {$agent_pause_codes_active=$_POST["agent_pause_codes_active"];} +if (isset($_GET["pause_code"])) {$pause_code=$_GET["pause_code"];} + elseif (isset($_POST["pause_code"])) {$pause_code=$_POST["pause_code"];} +if (isset($_GET["pause_code_name"])) {$pause_code_name=$_GET["pause_code_name"];} + elseif (isset($_POST["pause_code_name"])) {$pause_code_name=$_POST["pause_code_name"];} +if (isset($_GET["billable"])) {$billable=$_GET["billable"];} + elseif (isset($_POST["billable"])) {$billable=$_POST["billable"];} +if (isset($_GET["campaign_description"])) {$campaign_description=$_GET["campaign_description"];} + elseif (isset($_POST["campaign_description"])) {$campaign_description=$_POST["campaign_description"];} +if (isset($_GET["campaign_stats_refresh"])) {$campaign_stats_refresh=$_GET["campaign_stats_refresh"];} + elseif (isset($_POST["campaign_stats_refresh"])){$campaign_stats_refresh=$_POST["campaign_stats_refresh"];} +if (isset($_GET["list_description"])) {$list_description=$_GET["list_description"];} + elseif (isset($_POST["list_description"])) {$list_description=$_POST["list_description"];} +if (isset($_GET["vicidial_recording_override"])) {$vicidial_recording_override=$_GET["vicidial_recording_override"];} + elseif (isset($_POST["vicidial_recording_override"])) {$vicidial_recording_override=$_POST["vicidial_recording_override"];} +if (isset($_GET["use_non_latin"])) {$use_non_latin=$_GET["use_non_latin"];} + elseif (isset($_POST["use_non_latin"])) {$use_non_latin=$_POST["use_non_latin"];} +if (isset($_GET["webroot_writable"])) {$webroot_writable=$_GET["webroot_writable"];} + elseif (isset($_POST["webroot_writable"])) {$webroot_writable=$_POST["webroot_writable"];} +if (isset($_GET["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_GET["enable_queuemetrics_logging"];} + elseif (isset($_POST["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_POST["enable_queuemetrics_logging"];} +if (isset($_GET["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_GET["queuemetrics_server_ip"];} + elseif (isset($_POST["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_POST["queuemetrics_server_ip"];} +if (isset($_GET["queuemetrics_dbname"])) {$queuemetrics_dbname=$_GET["queuemetrics_dbname"];} + elseif (isset($_POST["queuemetrics_dbname"])) {$queuemetrics_dbname=$_POST["queuemetrics_dbname"];} +if (isset($_GET["queuemetrics_login"])) {$queuemetrics_login=$_GET["queuemetrics_login"];} + elseif (isset($_POST["queuemetrics_login"])) {$queuemetrics_login=$_POST["queuemetrics_login"];} +if (isset($_GET["queuemetrics_pass"])) {$queuemetrics_pass=$_GET["queuemetrics_pass"];} + elseif (isset($_POST["queuemetrics_pass"])) {$queuemetrics_pass=$_POST["queuemetrics_pass"];} +if (isset($_GET["queuemetrics_url"])) {$queuemetrics_url=$_GET["queuemetrics_url"];} + elseif (isset($_POST["queuemetrics_url"])) {$queuemetrics_url=$_POST["queuemetrics_url"];} +if (isset($_GET["queuemetrics_log_id"])) {$queuemetrics_log_id=$_GET["queuemetrics_log_id"];} + elseif (isset($_POST["queuemetrics_log_id"])) {$queuemetrics_log_id=$_POST["queuemetrics_log_id"];} +if (isset($_GET["dial_status"])) {$dial_status=$_GET["dial_status"];} + elseif (isset($_POST["dial_status"])) {$dial_status=$_POST["dial_status"];} +if (isset($_GET["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_GET["queuemetrics_eq_prepend"];} + elseif (isset($_POST["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_POST["queuemetrics_eq_prepend"];} +if (isset($_GET["vicidial_agent_disable"])) {$vicidial_agent_disable=$_GET["vicidial_agent_disable"];} + elseif (isset($_POST["vicidial_agent_disable"])) {$vicidial_agent_disable=$_POST["vicidial_agent_disable"];} +if (isset($_GET["disable_alter_custdata"])) {$disable_alter_custdata=$_GET["disable_alter_custdata"];} + elseif (isset($_POST["disable_alter_custdata"])) {$disable_alter_custdata=$_POST["disable_alter_custdata"];} +if (isset($_GET["alter_custdata_override"])) {$alter_custdata_override=$_GET["alter_custdata_override"];} + elseif (isset($_POST["alter_custdata_override"])) {$alter_custdata_override=$_POST["alter_custdata_override"];} +if (isset($_GET["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_GET["no_hopper_leads_logins"];} + elseif (isset($_POST["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_POST["no_hopper_leads_logins"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["admin_home_url"])) {$admin_home_url=$_GET["admin_home_url"];} + elseif (isset($_POST["admin_home_url"])) {$admin_home_url=$_POST["admin_home_url"];} +if (isset($_GET["list_order_mix"])) {$list_order_mix=$_GET["list_order_mix"];} + elseif (isset($_POST["list_order_mix"])) {$list_order_mix=$_POST["list_order_mix"];} +if (isset($_GET["vcl_id"])) {$vcl_id=$_GET["vcl_id"];} + elseif (isset($_POST["vcl_id"])) {$vcl_id=$_POST["vcl_id"];} +if (isset($_GET["vcl_name"])) {$vcl_name=$_GET["vcl_name"];} + elseif (isset($_POST["vcl_name"])) {$vcl_name=$_POST["vcl_name"];} +if (isset($_GET["list_mix_container"])) {$list_mix_container=$_GET["list_mix_container"];} + elseif (isset($_POST["list_mix_container"])) {$list_mix_container=$_POST["list_mix_container"];} +if (isset($_GET["mix_method"])) {$mix_method=$_GET["mix_method"];} + elseif (isset($_POST["mix_method"])) {$mix_method=$_POST["mix_method"];} +if (isset($_GET["human_answered"])) {$human_answered=$_GET["human_answered"];} + elseif (isset($_POST["human_answered"])) {$human_answered=$_POST["human_answered"];} +if (isset($_GET["category"])) {$category=$_GET["category"];} + elseif (isset($_POST["category"])) {$category=$_POST["category"];} +if (isset($_GET["vsc_id"])) {$vsc_id=$_GET["vsc_id"];} + elseif (isset($_POST["vsc_id"])) {$vsc_id=$_POST["vsc_id"];} +if (isset($_GET["vsc_name"])) {$vsc_name=$_GET["vsc_name"];} + elseif (isset($_POST["vsc_name"])) {$vsc_name=$_POST["vsc_name"];} +if (isset($_GET["vsc_description"])) {$vsc_description=$_GET["vsc_description"];} + elseif (isset($_POST["vsc_description"])) {$vsc_description=$_POST["vsc_description"];} +if (isset($_GET["tovdad_display"])) {$tovdad_display=$_GET["tovdad_display"];} + elseif (isset($_POST["tovdad_display"])) {$tovdad_display=$_POST["tovdad_display"];} +if (isset($_GET["mix_container_item"])) {$mix_container_item=$_GET["mix_container_item"];} + elseif (isset($_POST["mix_container_item"])) {$mix_container_item=$_POST["mix_container_item"];} +if (isset($_GET["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_GET["enable_agc_xfer_log"];} + elseif (isset($_POST["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_POST["enable_agc_xfer_log"];} +if (isset($_GET["after_hours_action"])) {$after_hours_action=$_GET["after_hours_action"];} + elseif (isset($_POST["after_hours_action"])) {$after_hours_action=$_POST["after_hours_action"];} +if (isset($_GET["after_hours_message_filename"])) {$after_hours_message_filename=$_GET["after_hours_message_filename"];} + elseif (isset($_POST["after_hours_message_filename"])) {$after_hours_message_filename=$_POST["after_hours_message_filename"];} +if (isset($_GET["after_hours_exten"])) {$after_hours_exten=$_GET["after_hours_exten"];} + elseif (isset($_POST["after_hours_exten"])) {$after_hours_exten=$_POST["after_hours_exten"];} +if (isset($_GET["after_hours_voicemail"])) {$after_hours_voicemail=$_GET["after_hours_voicemail"];} + elseif (isset($_POST["after_hours_voicemail"])) {$after_hours_voicemail=$_POST["after_hours_voicemail"];} +if (isset($_GET["welcome_message_filename"])) {$welcome_message_filename=$_GET["welcome_message_filename"];} + elseif (isset($_POST["welcome_message_filename"])) {$welcome_message_filename=$_POST["welcome_message_filename"];} +if (isset($_GET["moh_context"])) {$moh_context=$_GET["moh_context"];} + elseif (isset($_POST["moh_context"])) {$moh_context=$_POST["moh_context"];} +if (isset($_GET["onhold_prompt_filename"])) {$onhold_prompt_filename=$_GET["onhold_prompt_filename"];} + elseif (isset($_POST["onhold_prompt_filename"])) {$onhold_prompt_filename=$_POST["onhold_prompt_filename"];} +if (isset($_GET["prompt_interval"])) {$prompt_interval=$_GET["prompt_interval"];} + elseif (isset($_POST["prompt_interval"])) {$prompt_interval=$_POST["prompt_interval"];} +if (isset($_GET["agent_alert_exten"])) {$agent_alert_exten=$_GET["agent_alert_exten"];} + elseif (isset($_POST["agent_alert_exten"])) {$agent_alert_exten=$_POST["agent_alert_exten"];} +if (isset($_GET["agent_alert_delay"])) {$agent_alert_delay=$_GET["agent_alert_delay"];} + elseif (isset($_POST["agent_alert_delay"])) {$agent_alert_delay=$_POST["agent_alert_delay"];} +if (isset($_GET["group_rank"])) {$group_rank=$_GET["group_rank"];} + elseif (isset($_POST["group_rank"])) {$group_rank=$_POST["group_rank"];} +if (isset($_GET["campaign_allow_inbound"])) {$campaign_allow_inbound=$_GET["campaign_allow_inbound"];} + elseif (isset($_POST["campaign_allow_inbound"])) {$campaign_allow_inbound=$_POST["campaign_allow_inbound"];} +if (isset($_GET["manual_dial_list_id"])) {$manual_dial_list_id=$_GET["manual_dial_list_id"];} + elseif (isset($_POST["manual_dial_list_id"])) {$manual_dial_list_id=$_POST["manual_dial_list_id"];} +if (isset($_GET["campaign_rank"])) {$campaign_rank=$_GET["campaign_rank"];} + elseif (isset($_POST["campaign_rank"])) {$campaign_rank=$_POST["campaign_rank"];} +if (isset($_GET["source_campaign_id"])) {$source_campaign_id=$_GET["source_campaign_id"];} + elseif (isset($_POST["source_campaign_id"])) {$source_campaign_id=$_POST["source_campaign_id"];} +if (isset($_GET["source_user_id"])) {$source_user_id=$_GET["source_user_id"];} + elseif (isset($_POST["source_user_id"])) {$source_user_id=$_POST["source_user_id"];} +if (isset($_GET["source_group_id"])) {$source_group_id=$_GET["source_group_id"];} + elseif (isset($_POST["source_group_id"])) {$source_group_id=$_POST["source_group_id"];} +if (isset($_GET["default_xfer_group"])) {$default_xfer_group=$_GET["default_xfer_group"];} + elseif (isset($_POST["default_xfer_group"])) {$default_xfer_group=$_POST["default_xfer_group"];} +if (isset($_GET["qc_enabled"])) {$qc_enabled=$_GET["qc_enabled"];} + elseif (isset($_POST["qc_enabled"])) {$qc_enabled=$_POST["qc_enabled"];} +if (isset($_GET["qc_user_level"])) {$qc_user_level=$_GET["qc_user_level"];} + elseif (isset($_POST["qc_user_level"])) {$qc_user_level=$_POST["qc_user_level"];} +if (isset($_GET["qc_pass"])) {$qc_pass=$_GET["qc_pass"];} + elseif (isset($_POST["qc_pass"])) {$qc_pass=$_POST["qc_pass"];} +if (isset($_GET["qc_finish"])) {$qc_finish=$_GET["qc_finish"];} + elseif (isset($_POST["qc_finish"])) {$qc_finish=$_POST["qc_finish"];} +if (isset($_GET["qc_commit"])) {$qc_commit=$_GET["qc_commit"];} + elseif (isset($_POST["qc_commit"])) {$qc_commit=$_POST["qc_commit"];} +if (isset($_GET["qc_campaigns"])) {$qc_campaigns=$_GET["qc_campaigns"];} + elseif (isset($_POST["qc_campaigns"])) {$qc_campaigns=$_POST["qc_campaigns"];} +if (isset($_GET["qc_groups"])) {$qc_groups=$_GET["qc_groups"];} + elseif (isset($_POST["qc_groups"])) {$qc_groups=$_POST["qc_groups"];} +if (isset($_GET["queue_priority"])) {$queue_priority=$_GET["queue_priority"];} + elseif (isset($_POST["queue_priority"])) {$queue_priority=$_POST["queue_priority"];} +if (isset($_GET["drop_inbound_group"])) {$drop_inbound_group=$_GET["drop_inbound_group"];} + elseif (isset($_POST["drop_inbound_group"])) {$drop_inbound_group=$_POST["drop_inbound_group"];} +if (isset($_GET["qc_statuses"])) {$qc_statuses=$_GET["qc_statuses"];} + elseif (isset($_POST["qc_statuses"])) {$qc_statuses=$_POST["qc_statuses"];} +if (isset($_GET["qc_lists"])) {$qc_lists=$_GET["qc_lists"];} + elseif (isset($_POST["qc_lists"])) {$qc_lists=$_POST["qc_lists"];} +if (isset($_GET["qc_get_record_launch"])) {$qc_get_record_launch=$_GET["qc_get_record_launch"];} + elseif (isset($_POST["qc_get_record_launch"])) {$qc_get_record_launch=$_POST["qc_get_record_launch"];} +if (isset($_GET["qc_show_recording"])) {$qc_show_recording=$_GET["qc_show_recording"];} + elseif (isset($_POST["qc_show_recording"])) {$qc_show_recording=$_POST["qc_show_recording"];} +if (isset($_GET["qc_shift_id"])) {$qc_shift_id=$_GET["qc_shift_id"];} + elseif (isset($_POST["qc_shift_id"])) {$qc_shift_id=$_POST["qc_shift_id"];} +if (isset($_GET["qc_web_form_address"])) {$qc_web_form_address=$_GET["qc_web_form_address"];} + elseif (isset($_POST["qc_web_form_address"])) {$qc_web_form_address=$_POST["qc_web_form_address"];} +if (isset($_GET["qc_script"])) {$qc_script=$_GET["qc_script"];} + elseif (isset($_POST["qc_script"])) {$qc_script=$_POST["qc_script"];} +if (isset($_GET["ingroup_recording_override"])) {$ingroup_recording_override=$_GET["ingroup_recording_override"];} + elseif (isset($_POST["ingroup_recording_override"])) {$ingroup_recording_override=$_POST["ingroup_recording_override"];} +if (isset($_GET["code"])) {$code=$_GET["code"];} + elseif (isset($_POST["code"])) {$code=$_POST["code"];} +if (isset($_GET["code_name"])) {$code_name=$_GET["code_name"];} + elseif (isset($_POST["code_name"])) {$code_name=$_POST["code_name"];} +if (isset($_GET["afterhours_xfer_group"])) {$afterhours_xfer_group=$_GET["afterhours_xfer_group"];} + elseif (isset($_POST["afterhours_xfer_group"])) {$afterhours_xfer_group=$_POST["afterhours_xfer_group"];} +if (isset($_GET["alias_id"])) {$alias_id=$_GET["alias_id"];} + elseif (isset($_POST["alias_id"])) {$alias_id=$_POST["alias_id"];} +if (isset($_GET["alias_name"])) {$alias_name=$_GET["alias_name"];} + elseif (isset($_POST["alias_name"])) {$alias_name=$_POST["alias_name"];} +if (isset($_GET["logins_list"])) {$logins_list=$_GET["logins_list"];} + elseif (isset($_POST["logins_list"])) {$logins_list=$_POST["logins_list"];} +if (isset($_GET["shift_id"])) {$shift_id=$_GET["shift_id"];} + elseif (isset($_POST["shift_id"])) {$shift_id=$_POST["shift_id"];} +if (isset($_GET["shift_name"])) {$shift_name=$_GET["shift_name"];} + elseif (isset($_POST["shift_name"])) {$shift_name=$_POST["shift_name"];} +if (isset($_GET["shift_start_time"])) {$shift_start_time=$_GET["shift_start_time"];} + elseif (isset($_POST["shift_start_time"])) {$shift_start_time=$_POST["shift_start_time"];} +if (isset($_GET["shift_length"])) {$shift_length=$_GET["shift_length"];} + elseif (isset($_POST["shift_length"])) {$shift_length=$_POST["shift_length"];} +if (isset($_GET["shift_weekdays"])) {$shift_weekdays=$_GET["shift_weekdays"];} + elseif (isset($_POST["shift_weekdays"])) {$shift_weekdays=$_POST["shift_weekdays"];} +if (isset($_GET["group_shifts"])) {$group_shifts=$_GET["group_shifts"];} + elseif (isset($_POST["group_shifts"])) {$group_shifts=$_POST["group_shifts"];} +if (isset($_GET["timeclock_end_of_day"])) {$timeclock_end_of_day=$_GET["timeclock_end_of_day"];} + elseif (isset($_POST["timeclock_end_of_day"])) {$timeclock_end_of_day=$_POST["timeclock_end_of_day"];} +if (isset($_GET["survey_first_audio_file"])) {$survey_first_audio_file=$_GET["survey_first_audio_file"];} + elseif (isset($_POST["survey_first_audio_file"])) {$survey_first_audio_file=$_POST["survey_first_audio_file"];} +if (isset($_GET["survey_dtmf_digits"])) {$survey_dtmf_digits=$_GET["survey_dtmf_digits"];} + elseif (isset($_POST["survey_dtmf_digits"])) {$survey_dtmf_digits=$_POST["survey_dtmf_digits"];} +if (isset($_GET["survey_ni_digit"])) {$survey_ni_digit=$_GET["survey_ni_digit"];} + elseif (isset($_POST["survey_ni_digit"])) {$survey_ni_digit=$_POST["survey_ni_digit"];} +if (isset($_GET["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_GET["survey_opt_in_audio_file"];} + elseif (isset($_POST["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_POST["survey_opt_in_audio_file"];} +if (isset($_GET["survey_ni_audio_file"])) {$survey_ni_audio_file=$_GET["survey_ni_audio_file"];} + elseif (isset($_POST["survey_ni_audio_file"])) {$survey_ni_audio_file=$_POST["survey_ni_audio_file"];} +if (isset($_GET["survey_method"])) {$survey_method=$_GET["survey_method"];} + elseif (isset($_POST["survey_method"])) {$survey_method=$_POST["survey_method"];} +if (isset($_GET["survey_no_response_action"])) {$survey_no_response_action=$_GET["survey_no_response_action"];} + elseif (isset($_POST["survey_no_response_action"])) {$survey_no_response_action=$_POST["survey_no_response_action"];} +if (isset($_GET["survey_ni_status"])) {$survey_ni_status=$_GET["survey_ni_status"];} + elseif (isset($_POST["survey_ni_status"])) {$survey_ni_status=$_POST["survey_ni_status"];} +if (isset($_GET["survey_response_digit_map"])) {$survey_response_digit_map=$_GET["survey_response_digit_map"];} + elseif (isset($_POST["survey_response_digit_map"])) {$survey_response_digit_map=$_POST["survey_response_digit_map"];} +if (isset($_GET["survey_xfer_exten"])) {$survey_xfer_exten=$_GET["survey_xfer_exten"];} + elseif (isset($_POST["survey_xfer_exten"])) {$survey_xfer_exten=$_POST["survey_xfer_exten"];} +if (isset($_GET["survey_camp_record_dir"])) {$survey_camp_record_dir=$_GET["survey_camp_record_dir"];} + elseif (isset($_POST["survey_camp_record_dir"])) {$survey_camp_record_dir=$_POST["survey_camp_record_dir"];} +if (isset($_GET["add_timeclock_log"])) {$add_timeclock_log=$_GET["add_timeclock_log"];} + elseif (isset($_POST["add_timeclock_log"])) {$add_timeclock_log=$_POST["add_timeclock_log"];} +if (isset($_GET["modify_timeclock_log"])) {$modify_timeclock_log=$_GET["modify_timeclock_log"];} + elseif (isset($_POST["modify_timeclock_log"])) {$modify_timeclock_log=$_POST["modify_timeclock_log"];} +if (isset($_GET["delete_timeclock_log"])) {$delete_timeclock_log=$_GET["delete_timeclock_log"];} + elseif (isset($_POST["delete_timeclock_log"])) {$delete_timeclock_log=$_POST["delete_timeclock_log"];} +if (isset($_GET["phone_numbers"])) {$phone_numbers=$_GET["phone_numbers"];} + elseif (isset($_POST["phone_numbers"])) {$phone_numbers=$_POST["phone_numbers"];} +if (isset($_GET["vdc_header_date_format"])) {$vdc_header_date_format=$_GET["vdc_header_date_format"];} + elseif (isset($_POST["vdc_header_date_format"])) {$vdc_header_date_format=$_POST["vdc_header_date_format"];} +if (isset($_GET["vdc_customer_date_format"])) {$vdc_customer_date_format=$_GET["vdc_customer_date_format"];} + elseif (isset($_POST["vdc_customer_date_format"])) {$vdc_customer_date_format=$_POST["vdc_customer_date_format"];} +if (isset($_GET["vdc_header_phone_format"])) {$vdc_header_phone_format=$_GET["vdc_header_phone_format"];} + elseif (isset($_POST["vdc_header_phone_format"])) {$vdc_header_phone_format=$_POST["vdc_header_phone_format"];} +if (isset($_GET["disable_alter_custphone"])) {$disable_alter_custphone=$_GET["disable_alter_custphone"];} + elseif (isset($_POST["disable_alter_custphone"])) {$disable_alter_custphone=$_POST["disable_alter_custphone"];} +if (isset($_GET["alter_custphone_override"])) {$alter_custphone_override=$_GET["alter_custphone_override"];} + elseif (isset($_POST["alter_custphone_override"])) {$alter_custphone_override=$_POST["alter_custphone_override"];} +if (isset($_GET["vdc_agent_api_access"])) {$vdc_agent_api_access=$_GET["vdc_agent_api_access"];} + elseif (isset($_POST["vdc_agent_api_access"])) {$vdc_agent_api_access=$_POST["vdc_agent_api_access"];} +if (isset($_GET["vdc_agent_api_active"])) {$vdc_agent_api_active=$_GET["vdc_agent_api_active"];} + elseif (isset($_POST["vdc_agent_api_active"])) {$vdc_agent_api_active=$_POST["vdc_agent_api_active"];} +if (isset($_GET["display_queue_count"])) {$display_queue_count=$_GET["display_queue_count"];} + elseif (isset($_POST["display_queue_count"])) {$display_queue_count=$_POST["display_queue_count"];} +if (isset($_GET["sale_category"])) {$sale_category=$_GET["sale_category"];} + elseif (isset($_POST["sale_category"])) {$sale_category=$_POST["sale_category"];} +if (isset($_GET["dead_lead_category"])) {$dead_lead_category=$_GET["dead_lead_category"];} + elseif (isset($_POST["dead_lead_category"])) {$dead_lead_category=$_POST["dead_lead_category"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["agent_clipboard_copy"])) {$agent_clipboard_copy=$_GET["agent_clipboard_copy"];} + elseif (isset($_POST["agent_clipboard_copy"])) {$agent_clipboard_copy=$_POST["agent_clipboard_copy"];} +if (isset($_GET["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_GET["agent_extended_alt_dial"];} + elseif (isset($_POST["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_POST["agent_extended_alt_dial"];} +if (isset($_GET["play_place_in_line"])) {$play_place_in_line=$_GET["play_place_in_line"];} + elseif (isset($_POST["play_place_in_line"])) {$play_place_in_line=$_POST["play_place_in_line"];} +if (isset($_GET["play_estimate_hold_time"])) {$play_estimate_hold_time=$_GET["play_estimate_hold_time"];} + elseif (isset($_POST["play_estimate_hold_time"])) {$play_estimate_hold_time=$_POST["play_estimate_hold_time"];} +if (isset($_GET["hold_time_option"])) {$hold_time_option=$_GET["hold_time_option"];} + elseif (isset($_POST["hold_time_option"])) {$hold_time_option=$_POST["hold_time_option"];} +if (isset($_GET["hold_time_option_seconds"])) {$hold_time_option_seconds=$_GET["hold_time_option_seconds"];} + elseif (isset($_POST["hold_time_option_seconds"])) {$hold_time_option_seconds=$_POST["hold_time_option_seconds"];} +if (isset($_GET["hold_time_option_exten"])) {$hold_time_option_exten=$_GET["hold_time_option_exten"];} + elseif (isset($_POST["hold_time_option_exten"])) {$hold_time_option_exten=$_POST["hold_time_option_exten"];} +if (isset($_GET["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_GET["hold_time_option_voicemail"];} + elseif (isset($_POST["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_POST["hold_time_option_voicemail"];} +if (isset($_GET["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_GET["hold_time_option_xfer_group"];} + elseif (isset($_POST["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_POST["hold_time_option_xfer_group"];} +if (isset($_GET["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_GET["hold_time_option_callback_filename"];} + elseif (isset($_POST["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_POST["hold_time_option_callback_filename"];} +if (isset($_GET["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_GET["hold_time_option_callback_list_id"];} + elseif (isset($_POST["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_POST["hold_time_option_callback_list_id"];} +if (isset($_GET["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_GET["hold_recall_xfer_group"];} + elseif (isset($_POST["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_POST["hold_recall_xfer_group"];} +if (isset($_GET["no_delay_call_route"])) {$no_delay_call_route=$_GET["no_delay_call_route"];} + elseif (isset($_POST["no_delay_call_route"])) {$no_delay_call_route=$_POST["no_delay_call_route"];} +if (isset($_GET["play_welcome_message"])) {$play_welcome_message=$_GET["play_welcome_message"];} + elseif (isset($_POST["play_welcome_message"])) {$play_welcome_message=$_POST["play_welcome_message"];} +if (isset($_GET["did_id"])) {$did_id=$_GET["did_id"];} + elseif (isset($_POST["did_id"])) {$did_id=$_POST["did_id"];} +if (isset($_GET["source_did"])) {$source_did=$_GET["source_did"];} + elseif (isset($_POST["source_did"])) {$source_did=$_POST["source_did"];} +if (isset($_GET["did_pattern"])) {$did_pattern=$_GET["did_pattern"];} + elseif (isset($_POST["did_pattern"])) {$did_pattern=$_POST["did_pattern"];} +if (isset($_GET["did_description"])) {$did_description=$_GET["did_description"];} + elseif (isset($_POST["did_description"])) {$did_description=$_POST["did_description"];} +if (isset($_GET["did_active"])) {$did_active=$_GET["did_active"];} + elseif (isset($_POST["did_active"])) {$did_active=$_POST["did_active"];} +if (isset($_GET["did_route"])) {$did_route=$_GET["did_route"];} + elseif (isset($_POST["did_route"])) {$did_route=$_POST["did_route"];} +if (isset($_GET["exten_context"])) {$exten_context=$_GET["exten_context"];} + elseif (isset($_POST["exten_context"])) {$exten_context=$_POST["exten_context"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["user_unavailable_action"])) {$user_unavailable_action=$_GET["user_unavailable_action"];} + elseif (isset($_POST["user_unavailable_action"])) {$user_unavailable_action=$_POST["user_unavailable_action"];} +if (isset($_GET["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_GET["user_route_settings_ingroup"];} + elseif (isset($_POST["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_POST["user_route_settings_ingroup"];} +if (isset($_GET["call_handle_method"])) {$call_handle_method=$_GET["call_handle_method"];} + elseif (isset($_POST["call_handle_method"])) {$call_handle_method=$_POST["call_handle_method"];} +if (isset($_GET["agent_search_method"])) {$agent_search_method=$_GET["agent_search_method"];} + elseif (isset($_POST["agent_search_method"])) {$agent_search_method=$_POST["agent_search_method"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["modify_inbound_dids"])) {$modify_inbound_dids=$_GET["modify_inbound_dids"];} + elseif (isset($_POST["modify_inbound_dids"])) {$modify_inbound_dids=$_POST["modify_inbound_dids"];} +if (isset($_GET["delete_inbound_dids"])) {$delete_inbound_dids=$_GET["delete_inbound_dids"];} + elseif (isset($_POST["delete_inbound_dids"])) {$delete_inbound_dids=$_POST["delete_inbound_dids"];} +if (isset($_GET["three_way_call_cid"])) {$three_way_call_cid=$_GET["three_way_call_cid"];} + elseif (isset($_POST["three_way_call_cid"])) {$three_way_call_cid=$_POST["three_way_call_cid"];} +if (isset($_GET["three_way_dial_prefix"])) {$three_way_dial_prefix=$_GET["three_way_dial_prefix"];} + elseif (isset($_POST["three_way_dial_prefix"])) {$three_way_dial_prefix=$_POST["three_way_dial_prefix"];} +if (isset($_GET["forced_timeclock_login"])) {$forced_timeclock_login=$_GET["forced_timeclock_login"];} + elseif (isset($_POST["forced_timeclock_login"])) {$forced_timeclock_login=$_POST["forced_timeclock_login"];} +if (isset($_GET["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_GET["answer_sec_pct_rt_stat_one"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_POST["answer_sec_pct_rt_stat_one"];} +if (isset($_GET["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_GET["answer_sec_pct_rt_stat_two"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_POST["answer_sec_pct_rt_stat_two"];} +if (isset($_GET["list_active_change"])) {$list_active_change=$_GET["list_active_change"];} + elseif (isset($_POST["list_active_change"])) {$list_active_change=$_POST["list_active_change"];} +if (isset($_GET["web_form_target"])) {$web_form_target=$_GET["web_form_target"];} + elseif (isset($_POST["web_form_target"])) {$web_form_target=$_POST["web_form_target"];} +if (isset($_GET["alt_server_ip"])) {$alt_server_ip=$_GET["alt_server_ip"];} + elseif (isset($_POST["alt_server_ip"])) {$alt_server_ip=$_POST["alt_server_ip"];} +if (isset($_GET["recording_web_link"])) {$recording_web_link=$_GET["recording_web_link"];} + elseif (isset($_POST["recording_web_link"])) {$recording_web_link=$_POST["recording_web_link"];} +if (isset($_GET["enable_vtiger_integration"])) {$enable_vtiger_integration=$_GET["enable_vtiger_integration"];} + elseif (isset($_POST["enable_vtiger_integration"])) {$enable_vtiger_integration=$_POST["enable_vtiger_integration"];} +if (isset($_GET["vtiger_server_ip"])) {$vtiger_server_ip=$_GET["vtiger_server_ip"];} + elseif (isset($_POST["vtiger_server_ip"])) {$vtiger_server_ip=$_POST["vtiger_server_ip"];} +if (isset($_GET["vtiger_dbname"])) {$vtiger_dbname=$_GET["vtiger_dbname"];} + elseif (isset($_POST["vtiger_dbname"])) {$vtiger_dbname=$_POST["vtiger_dbname"];} +if (isset($_GET["vtiger_login"])) {$vtiger_login=$_GET["vtiger_login"];} + elseif (isset($_POST["vtiger_login"])) {$vtiger_login=$_POST["vtiger_login"];} +if (isset($_GET["vtiger_pass"])) {$vtiger_pass=$_GET["vtiger_pass"];} + elseif (isset($_POST["vtiger_pass"])) {$vtiger_pass=$_POST["vtiger_pass"];} +if (isset($_GET["vtiger_url"])) {$vtiger_url=$_GET["vtiger_url"];} + elseif (isset($_POST["vtiger_url"])) {$vtiger_url=$_POST["vtiger_url"];} +if (isset($_GET["vtiger_search_category"])) {$vtiger_search_category=$_GET["vtiger_search_category"];} + elseif (isset($_POST["vtiger_search_category"])) {$vtiger_search_category=$_POST["vtiger_search_category"];} +if (isset($_GET["vtiger_create_call_record"])) {$vtiger_create_call_record=$_GET["vtiger_create_call_record"];} + elseif (isset($_POST["vtiger_create_call_record"])) {$vtiger_create_call_record=$_POST["vtiger_create_call_record"];} +if (isset($_GET["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_GET["vtiger_create_lead_record"];} + elseif (isset($_POST["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_POST["vtiger_create_lead_record"];} +if (isset($_GET["vtiger_screen_login"])) {$vtiger_screen_login=$_GET["vtiger_screen_login"];} + elseif (isset($_POST["vtiger_screen_login"])) {$vtiger_screen_login=$_POST["vtiger_screen_login"];} +if (isset($_GET["qc_features_active"])) {$qc_features_active=$_GET["qc_features_active"];} + elseif (isset($_POST["qc_features_active"])) {$qc_features_active=$_POST["qc_features_active"];} +if (isset($_GET["outbound_autodial_active"])) {$outbound_autodial_active=$_GET["outbound_autodial_active"];} + elseif (isset($_POST["outbound_autodial_active"])) {$outbound_autodial_active=$_POST["outbound_autodial_active"];} +if (isset($_GET["cpd_amd_action"])) {$cpd_amd_action=$_GET["cpd_amd_action"];} + elseif (isset($_POST["cpd_amd_action"])) {$cpd_amd_action=$_POST["cpd_amd_action"];} +if (isset($_GET["download_lists"])) {$download_lists=$_GET["download_lists"];} + elseif (isset($_POST["download_lists"])) {$download_lists=$_POST["download_lists"];} +if (isset($_GET["active_asterisk_server"])) {$active_asterisk_server=$_GET["active_asterisk_server"];} + elseif (isset($_POST["active_asterisk_server"])) {$active_asterisk_server=$_POST["active_asterisk_server"];} +if (isset($_GET["generate_vicidial_conf"])) {$generate_vicidial_conf=$_GET["generate_vicidial_conf"];} + elseif (isset($_POST["generate_vicidial_conf"])) {$generate_vicidial_conf=$_POST["generate_vicidial_conf"];} +if (isset($_GET["rebuild_conf_files"])) {$rebuild_conf_files=$_GET["rebuild_conf_files"];} + elseif (isset($_POST["rebuild_conf_files"])) {$rebuild_conf_files=$_POST["rebuild_conf_files"];} +if (isset($_GET["template_id"])) {$template_id=$_GET["template_id"];} + elseif (isset($_POST["template_id"])) {$template_id=$_POST["template_id"];} +if (isset($_GET["conf_override"])) {$conf_override=$_GET["conf_override"];} + elseif (isset($_POST["conf_override"])) {$conf_override=$_POST["conf_override"];} +if (isset($_GET["template_name"])) {$template_name=$_GET["template_name"];} + elseif (isset($_POST["template_name"])) {$template_name=$_POST["template_name"];} +if (isset($_GET["template_contents"])) {$template_contents=$_GET["template_contents"];} + elseif (isset($_POST["template_contents"])) {$template_contents=$_POST["template_contents"];} +if (isset($_GET["carrier_id"])) {$carrier_id=$_GET["carrier_id"];} + elseif (isset($_POST["carrier_id"])) {$carrier_id=$_POST["carrier_id"];} +if (isset($_GET["carrier_name"])) {$carrier_name=$_GET["carrier_name"];} + elseif (isset($_POST["carrier_name"])) {$carrier_name=$_POST["carrier_name"];} +if (isset($_GET["registration_string"])) {$registration_string=$_GET["registration_string"];} + elseif (isset($_POST["registration_string"])) {$registration_string=$_POST["registration_string"];} +if (isset($_GET["account_entry"])) {$account_entry=$_GET["account_entry"];} + elseif (isset($_POST["account_entry"])) {$account_entry=$_POST["account_entry"];} +if (isset($_GET["globals_string"])) {$globals_string=$_GET["globals_string"];} + elseif (isset($_POST["globals_string"])) {$globals_string=$_POST["globals_string"];} +if (isset($_GET["dialplan_entry"])) {$dialplan_entry=$_GET["dialplan_entry"];} + elseif (isset($_POST["dialplan_entry"])) {$dialplan_entry=$_POST["dialplan_entry"];} +if (isset($_GET["group_alias_id"])) {$group_alias_id=$_GET["group_alias_id"];} + elseif (isset($_POST["group_alias_id"])) {$group_alias_id=$_POST["group_alias_id"];} +if (isset($_GET["group_alias_name"])) {$group_alias_name=$_GET["group_alias_name"];} + elseif (isset($_POST["group_alias_name"])) {$group_alias_name=$_POST["group_alias_name"];} +if (isset($_GET["caller_id_number"])) {$caller_id_number=$_GET["caller_id_number"];} + elseif (isset($_POST["caller_id_number"])) {$caller_id_number=$_POST["caller_id_number"];} +if (isset($_GET["caller_id_name"])) {$caller_id_name=$_GET["caller_id_name"];} + elseif (isset($_POST["caller_id_name"])) {$caller_id_name=$_POST["caller_id_name"];} +if (isset($_GET["agent_allow_group_alias"])) {$agent_allow_group_alias=$_GET["agent_allow_group_alias"];} + elseif (isset($_POST["agent_allow_group_alias"])) {$agent_allow_group_alias=$_POST["agent_allow_group_alias"];} +if (isset($_GET["default_group_alias"])) {$default_group_alias=$_GET["default_group_alias"];} + elseif (isset($_POST["default_group_alias"])) {$default_group_alias=$_POST["default_group_alias"];} +if (isset($_GET["outbound_calls_per_second"])) {$outbound_calls_per_second=$_GET["outbound_calls_per_second"];} + elseif (isset($_POST["outbound_calls_per_second"])) {$outbound_calls_per_second=$_POST["outbound_calls_per_second"];} +if (isset($_GET["shift_enforcement"])) {$shift_enforcement=$_GET["shift_enforcement"];} + elseif (isset($_POST["shift_enforcement"])) {$shift_enforcement=$_POST["shift_enforcement"];} +if (isset($_GET["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_GET["agent_shift_enforcement_override"];} + elseif (isset($_POST["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_POST["agent_shift_enforcement_override"];} +if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_GET["manager_shift_enforcement_override"];} + elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} +if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} + elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} + + if (isset($script_id)) {$script_id= strtoupper($script_id);} + if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} + +if (strlen($dial_status) > 0) + { + $ADD='28'; + $status = $dial_status; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSenable_queuemetrics_logging = $row[1]; + $SSenable_vtiger_integration = $row[2]; + $SSqc_features_active = $row[3]; + $SSoutbound_autodial_active = $row[4]; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +###################################################################################################### +###################################################################################################### +####### Form variable filtering for security and data integrity +###################################################################################################### +###################################################################################################### + +if ($non_latin < 1) + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); + + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); + + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); + + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); + + ### Y or N ONLY ### + $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); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); + + + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $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); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); + + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); + + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); + + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); + + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); + + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### 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 hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); + + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); + + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); + + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + + + +##### END VARIABLE FILTERING FOR SECURITY ##### + + +# ViciDial database administration +# admin.php +# +# CHANGELOG: +# 50315-1110 - Added Custom Campaign Statuses +# 50317-1438 - Added Fronter Display var to inbound groups +# 50322-1355 - Added custom callerID per campaign +# 50517-1356 - Added user_groups sections and user_group to vicidial_users +# 50517-1440 - Added ability to logout (must click OK with empty user/pass) +# 50602-1622 - Added lead loader pages to load new files into vicidial_list +# 50620-1351 - Added custom vdad transfer AGI extension per campaign +# 50810-1414 - modified in groups to kick out spaces and dashes +# 50908-2136 - Added Custom Campaign HotKeys +# 50914-0950 - Fixed user search by user_group +# 50926-1358 - Modified to allow for language translation +# 50926-1615 - Added WeBRooTWritablE write controls +# 51020-1008 - Added editable web address and park ext - NEW dial campaigns +# 51020-1056 - Added fields and help for campaign recording control +# 51123-1335 - Altered code to function in php globals=off +# 51208-1038 - Added user_level changes, function controls and default user phones +# 51208-1556 - Added deletion of users/lists/campaigns/in groups/remote agents +# 51213-1706 - Added add/delete/modify vicidial scripts +# 51214-1737 - Added preview of vicidial script in popup window +# 51219-1225 - Added campaign and ingroups script selector and get_call_launch field +# 51222-1055 - Added am_message_exten to campaigns to allow for AM Message button +# 51222-1125 - Fixed new vicidial_campaigns default values not being assigned bug +# 51222-1156 - Added LOG OUT ALL AGENTS ON THIS CAMPAIGN button to campaign screen +# 60204-0659 - Fixed hopper reset bug +# 60207-1413 - Added AMD send to voicemail extension and xfer-conf dtmf presets +# 60213-1100 - Added several vicidial_users permissions fields +# 60215-1319 - Added On-hold CallBacks display and links +# 60227-1226 - Fixed vicidial_inbound_groups insert bug +# 60413-1308 - Fixed list display to have 1 row/status: count and time zone tables +# - Added status name in selected dial statuses in campaign screen +# 60417-1416 - Added vicidial_lead_filters sections +# - Changed the header links to color-coded sectional with sublinks below +# - Added filter name and script name to campaign and in-group modify sections +# - Added callback and alt dial options to campaigns section +# - Added callback, alt dial and other options to users section +# 60419-1628 - Alter Callbacks display to include status and LIVE listings, reordered +# 60421-1441 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60425-2355 - Added agent options to vicidial_users, reformatted user page +# 60502-1627 - Added drop_call_seconds and safe_harbor_ fields to campaign screen +# 60503-1228 - Added drop_call_seconds and drop_ fields to inbound groups screen +# 60505-1117 - Added initial framework for new local_call_times tables and definitions +# 60506-1033 - More revisions to the local_call_time section +# 60508-1354 - Finished call_times and state_call_times sections +# - Added modify/delete options for call_times +# 60509-1311 - Functionalize campaign dialable leads calculation +# - Change state_call_times selection from call_times to only allow one per state +# - Added dialable leads count popup to campaign screen if auto-calc is disabled +# - Added test dialable leads count popup to filter screen +# 60510-1050 - Added Wrapup seconds and Wrapup message to campaigns screen +# 60608-1401 - Added allowable inbound_groups checkboxes to CLOSER campaign detail screen +# 60609-1051 - Added add-to-dnc in LISTS section +# 60613-1415 - Added lead recycling options to campaign detail screen +# 60619-1523 - Added variable filtering to eliminate SQL injection attack threat +# 60622-1216 - Fixed HotKey addition form issues and variable filtering +# 60623-1159 - Fixed Scheduled Callbacks over-filtering bug and filter_sql bug +# 60808-1147 - Changed filtering for and added instructions for consutative transfers +# 60816-1552 - Added allcalls_delay start delay for recordings in vicidial.php +# 60817-2226 - Fixed bug that would not allow lead recycling of non-selectable statuses +# 60821-1543 - Added option to Omit Phone Code while dialing in vicidial +# 60821-1625 - Added ALLFORCE recording option for campaign_recording +# 60823-1154 - Added fields for adaptive dialing +# 60824-1326 - Added adaptive_latest_target_gmt for ADAPT_TAPERED dial method +# 60825-1205 - Added adaptive_intensity for ADAPT_ dial methods +# 60828-1019 - Changed adaptive_latest_target_gmt to adaptive_latest_server_time +# 60828-1115 - Added adaptive_dl_diff_target and changed intensity dropdown +# 60927-1246 - Added astguiclient/admin.php functions under SERVERS tab +# 61002-1402 - Added fields for vicidial balance trunk controls +# 61003-1123 - Added functions for vicidial_server_trunks records +# 61109-1022 - Added Emergency VDAC Jam Clear function to Campaign Detail screen +# 61110-1502 - Add ability to select NONE in dial statuses, new list_id must not be < 100 +# 61122-1228 - Added user group campaign restrictions +# 61122-1535 - Changed script_text to unfiltered and added more variables to SCRIPTS +# 61129-1028 - Added headers to Users and Phones with clickable order-by titles +# 70108-1405 - Added ADAPT OVERRIDE to allow for forced dial_level changes in ADAPT dial methods +# - Screen width definable at top of script, merged server_stats into this script +# 70109-1638 - Added ALTPH2 and ADDR3 hotkey options for alt number dialing with HotKeys +# 70109-1716 - Added concurrent_transfers option to vicidial_campaigns +# 70115-1152 - Aded (CLOSER|BLEND|INBND|_C$|_B$|_I$) options for CLOSER-type campaigns +# 70115-1532 - Added auto_alt_dial field to campaign screen for auto-dialing of alt numbers +# 70116-1200 - Added auto_alt_dial_status functionality to campaign screen +# 70117-1235 - Added header formatting variables at top of script +# - Moved Call Times and Phones/Server functions to Admin section +# 70118-1706 - Added new user group displays and links +# 70123-1519 - Added user permission settings for all sections +# 70124-1346 - Fixed spelling errors and formatting consistency +# 70202-1120 - Added agent_pause_codes section to campaigns +# 70205-1204 - Added memo, last dialed, timestamp and stats-refresh fields to vicidial_campaigns/lists +# 70206-1323 - Added user setting for vicidial_recording_override +# 70212-1412 - Added system settings section +# 70214-1226 - Added QueueMetrics Log ID field to system settings section +# 70219-1102 - Changed campaign dial statuses to be one string allowing for high limit +# 70223-0957 - Added queuemetrics_eq_prepend for custom ENTERQUEUE prepending of a field +# 70302-1111 - Fixed small bug in dialable leads calculation +# 70314-1133 - Added insert selection on script forms +# 70319-1423 - Added Alter Customer Data and agent disable display functions +# 70319-1625 - Added option to allow agents to login to outbound campaigns with no leads in the hopper +# 70322-1455 - Added sipsak messages parameters +# 70402-1157 - Added HOME link and entry to system_settings table, added QM link on reports section +# 70516-1628 - Started reformatting campaigns to use submenus to break up options +# 70529-1653 - Added help for list mix +# 70530-1354 - Added human_answered field to statuses, added system status modification +# 70530-1714 - Added lists for all campaign subsections +# 70531-1631 - Development on List mix admin interface +# 70601-1629 - More development on List mix admin interface, formatting, and added some javascript +# 70602-1300 - More development on List mix admin interface, more javascript +# 70608-1459 - Added option to set LIVE Callbacks to INACTIVE after one month +# 70612-1451 - Added Callback INACTIVE link for after one week, sort by user/group/entrydate +# 70614-0231 - Added Status Categories, ability to Modify Statuses, moved system statuses to sub-section +# 70623-1008 - List Mix section now allows modification of list mix entries +# 70629-1721 - List Mix section adding and removing of list entries active +# 70706-1636 - List Mix section cleanup and more error-checking +# 70908-0941 - Added agc logile enable system_settings +# 71020-1934 - Added inbound groups options: on-hold music, messages, call_times +# 71022-1343 - Added inbound group ranks for users +# 71029-1710 - Added option for campaign to be inbound and/or blended with no restrictions on the campaign_id name +# - Added 5th NEW and 6th NEW to the dial order options +# 71030-2010 - Added Manual Dial List ID field to campaigns table +# 71103-2207 - Added inbound_group_rank and fewest_calls to the inbound groups call order options +# 71113-1521 - Added campaign_rank to agent options +# - Added ability to Copy a campaign's setting to a new campaign +# 71113-2225 - Added ability to copy user and in-group settings to new users and in-groups +# 71116-0942 - Added campaign_rank and fewest_calls as methods for agent call routing +# 71122-1135 - Added default transfer group for campaigns and inbound groups +# 71125-1751 - Added allowable transfer groups to campaign detail screen +# 80107-1204 - Started framework for new QC section +# 80112-0242 - Added more options for lead order +# 80211-1901 - Added DB Schema Version to system settings display +# 80224-1334 - Added Queue Priority to in-groups and campaigns +# 80302-0232 - added drop_action and transfer to in-group for both in-groups and outbound +# 80310-1504 - added QC settings section to campaign screen +# 80317-2037 - Added Recording override settings to in-groups +# 80414-1505 - More work on QC, added vicidial_qc_codes +# 80424-0442 - Added non_latin system_settings lookup at top to override dbconnect setting +# 80505-0333 - Added phones_alias sections to allow for load-balanced-phone-logins +# 80512-1529 - Added auto-generate of User ID feature +# 80515-1345 - Added Shifts sub-section to Admin section +# 80528-0001 - Added campaign survey sub-section +# 80528-1102 - Added user timeclock edit options +# 80608-1304 - Changed add-to-DNC to allow for multiple entries per submission +# 80625-0032 - Added time/phone display format options to system settings +# 80703-0124 - Added alter cust phone and api settings +# 80715-1130 - Added Recycle leads limit count +# 80719-1351 - Changed QC settings in campaigns and In-Groups +# 80809-2305 - Added Sale and Dead Lead categories to status categories page +# 80815-1036 - Added manual dial filter to capaigns +# 80823-2124 - Added copy to clipboard campaign option +# 80829-2359 - Added EXTENDED auto_alt_dial options +# 80831-0406 - Added agent screen extended alt-dial option to campaigns +# 80909-0553 - Added campaign-specific DNC list option and add +# 81002-1101 - Added more in-group options and new DID section and user options +# 81007-0936 - Added three_way_call_cid option to campaigns +# 81012-1725 - Added INBOUND_MAN dial method allowing for manual list dialing with inbound calls +# 81030-0348 - Added campaign pause code force option +# 81030-2228 - Fixed DIDs creation issue +# 81103-1408 - Added 3way call dial prefix option +# 81107-1551 - Added Stats Percent of Calls Answered Within X seconds fields to in-groups +# 81118-0933 - Changed lists listing with links and more options +# 81119-0715 - Added ability to bulk enable/disable lists from modify campaign screen +# 81209-1538 - Added web_form_target to campaign screen +# 81210-1430 - Added http server IP and recording link options to servers +# 81222-0500 - Reformatted all listings to same format changed to field selects instead of * +# 81228-2300 - Added fields for vtiger integration and active vicidial_user display +# 90101-1216 - Added options for user synchronization with vtiger +# 90112-0335 - Added vtiger_create_lead_record and vtiger_create_lead_record options +# 90115-0502 - Activated AGENT DID routing option +# 90126-2256 - Added vtiger_screen_login campaign option and user agent alert option +# 90201-1503 - Added option to disable the viewing of inactive QC features +# 90202-0112 - Added option to disable outbound autodialing(or list dialing) +# 90202-0444 - Added cpd_amd_action option for processing of AMD messages +# 90209-1339 - Added download_lists option to allow downloading of lists +# 90210-1042 - Added options for auto-generation of asterisk conf files +# 90301-2026 - Added Vtiger group synchronization +# 90302-2046 - Changed Section heading to be on the left side of the screen +# 90303-0631 - Added web vars to agent campaign and in-group settings +# 90303-2047 - Added group aliases and default group aliases +# 90306-1214 - Added shift enforcement and server/system calls per second options +# 90308-0956 - Added server statistics +# 90309-0059 - Changed logging to admin_server_log +# 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 +# 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue +# +# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time + +$admin_version = '2.2.0-233'; +$build = '100104-1454'; + +$STARTtime = date("U"); +$SQLdate = date("Y-m-d H:i:s"); +$REPORTdate = date("Y-m-d"); +$MT[0]=''; +$US='_'; +$active_lists=0; +$inactive_lists=0; + +$month_old = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); +$past_week_date = date("Y-m-d H:i:s",$week_old); + +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Usted ahora ha salido. Gracias\n"; + exit; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfull_name =$row[3]; + $LOGuser_level =$row[4]; + $LOGuser_group =$row[5]; + $LOGdelete_users =$row[8]; + $LOGdelete_user_groups =$row[9]; + $LOGdelete_lists =$row[10]; + $LOGdelete_campaigns =$row[11]; + $LOGdelete_ingroups =$row[12]; + $LOGdelete_remote_agents =$row[13]; + $LOGload_leads =$row[14]; + $LOGcampaign_detail =$row[15]; + $LOGast_admin_access =$row[16]; + $LOGast_delete_phones =$row[17]; + $LOGdelete_scripts =$row[18]; + $LOGdelete_filters =$row[29]; + $LOGalter_agent_interface =$row[30]; + $LOGdelete_call_times =$row[32]; + $LOGmodify_call_times =$row[33]; + $LOGmodify_users =$row[34]; + $LOGmodify_campaigns =$row[35]; + $LOGmodify_lists =$row[36]; + $LOGmodify_scripts =$row[37]; + $LOGmodify_filters =$row[38]; + $LOGmodify_ingroups =$row[39]; + $LOGmodify_usergroups =$row[40]; + $LOGmodify_remoteagents =$row[41]; + $LOGmodify_servers =$row[42]; + $LOGview_reports =$row[43]; + $LOGmodify_dids =$row[56]; + $LOGdelete_dids =$row[57]; + $LOGmanager_shift_enforcement_override=$row[61]; + $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns = $row[0]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|XXXX|$ip|$browser|$LOGfull_name|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +###################################################################################################### +###################################################################################################### +####### Header settings +###################################################################################################### +###################################################################################################### + + +header ("Content-type: text/html; charset=utf-8"); +echo "\n"; +echo "\n"; +echo "\n"; +echo "ADMINISTRATION: "; + +if (!isset($ADD)) {$ADD=0;} + +if ($ADD=="1") {$hh='users'; echo "Añadir un Usuario";} +if ($ADD=="1A") {$hh='users'; echo "Usuario Del Copy";} +if ($ADD==11) {$hh='campaigns'; $sh='basic'; echo "Añadir una Campaña";} +if ($ADD==12) {$hh='campaigns'; $sh='basic'; echo "Campaña Del Copy";} +if ($ADD==111) {$hh='lists'; echo "Añadir una Lista";} +if ($ADD==121) {$hh='lists'; echo "Agregue DNC Nuevo";} +if ($ADD==1111) {$hh='ingroups'; echo "Añadir un Grupo-Entrantes";} +if ($ADD==1211) {$hh='ingroups'; echo "En-Grupo Del Copy";} +if ($ADD==1311) {$hh='ingroups'; echo "Agregar nuevoDID";} +if ($ADD==1411) {$hh='ingroups'; echo "CopiarDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Añadir Call Menú";} +if ($ADD==1611) {$hh='ingroups'; echo "Copia de llamadas Menú";} +if ($ADD==11111) {$hh='remoteagent'; echo "Añadir Agentes Remotos";} +if ($ADD==111111) {$hh='usergroups'; echo "Añadir un Grupo De Usuarios";} +if ($ADD==1111111) {$hh='scripts'; echo "Agregue La Nueva Escritura";} +if ($ADD==11111111) {$hh='filters'; echo "Agregue El Filtro Nuevo";} +if ($ADD==111111111) {$hh='admin'; $sh='times'; echo "Agregue El Nuevo Tiempo De la Llamada";} +if ($ADD==131111111) {$hh='admin'; $sh='shifts'; echo "Añadir nuevo Mayúsculas";} +if ($ADD==1111111111) {$hh='admin'; $sh='times'; echo "Agregue El Nuevo Tiempo De la Llamada Del Estado";} +if ($ADD==11111111111) {$hh='admin'; $sh='phones'; echo "NUEVO TELÉFONO";} +if ($ADD==12111111111) {$hh='admin'; $sh='phones'; echo "Añadir nuevo teléfono ALIAS";} +if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "Añadir NUEVO GRUPO DE ALIAS";} +if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "NUEVO SERVIDOR";} +if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "Añadir CONF NUEVA PLANTILLA";} +if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "Añadir nueva compañía";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW TTS ENTRADA";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC EN ESPERA DE ENTRADA";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW contestador";} +if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "NUEVA CONFERENCIA";} +if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} +if ($ADD=='2') {$hh='users'; echo "Nueva Adición De Usuario";} +if ($ADD=='2A') {$hh='users'; echo "Nueva Adición Copiada Del Usuario";} +if ($ADD==20) {$hh='campaigns'; $sh='basic'; echo "Nueva Adición Copiada De la Campaña";} +if ($ADD==21) {$hh='campaigns'; $sh='basic'; echo "Nueva Adición De la Campaña";} +if ($ADD==22) {$hh='campaigns'; $sh='status'; echo "Nueva Adición Del Estado De la Campaña";} +if ($ADD==23) {$hh='campaigns'; $sh='hotkey'; echo "New Campaña HotKey Addition";} +if ($ADD==25) {$hh='campaigns'; $sh='recycle'; echo "El Nuevo Plomo De la Campaña Recicla La Adición";} +if ($ADD==26) {$hh='campaigns'; $sh='autoalt'; echo "Nuevo Estado Del Dial Del Alt Del Automóvil";} +if ($ADD==27) {$hh='campaigns'; $sh='pause'; echo "Nuevo Código De la Pausa Del Agente";} +if ($ADD==28) {$hh='campaigns'; $sh='dialstat'; echo "Estado Del Dial De la Campaña Agregado";} +if ($ADD==29) {$hh='campaigns'; $sh='listmix'; echo "Mezcla De la Lista De la Campaña Agregada";} +if ($ADD==211) {$hh='lists'; echo "Nueva Adición De la Lista";} +if ($ADD==2111) {$hh='ingroups'; echo "Nueva Adición Del Grupo de Entrantes";} +if ($ADD==2011) {$hh='ingroups'; echo "Nueva Adicin Copiada Del En-Grupo";} +if ($ADD==2311) {$hh='ingroups'; echo "Nueva DID adjunta";} +if ($ADD==2411) {$hh='ingroups'; echo "Nueva copiado DID adjunta";} +if ($ADD==2511) {$hh='ingroups'; echo "Nueva llamada del menú";} +if ($ADD==2611) {$hh='ingroups'; echo "Nueva llamada del menú";} +if ($ADD==21111) {$hh='remoteagent'; echo "Nueva Adición de Agentes Remotos";} +if ($ADD==211111) {$hh='usergroups'; echo "Nueva Adición Del Grupo De Usuarios";} +if ($ADD==2111111) {$hh='scripts'; echo "Nueva Adición De la Escritura";} +if ($ADD==21111111) {$hh='filters'; echo "Nueva Adición Del Filtro";} +if ($ADD==211111111) {$hh='admin'; $sh='times'; echo "Nueva Adición Del Tiempo De la Llamada";} +if ($ADD==231111111) {$hh='admin'; $sh='shifts'; echo "Nueva Mayús adjunta";} +if ($ADD==2111111111) {$hh='admin'; $sh='times'; echo "Nueva Adición Del Tiempo De la Llamada Del Estado";} +if ($ADD==21111111111) {$hh='admin'; $sh='phones'; echo "CREANDO TELÉFONO";} +if ($ADD==22111111111) {$hh='admin'; $sh='phones'; echo "AGREGAR NUEVO TELÉFONO ALIAS";} +if ($ADD==23111111111) {$hh='admin'; $sh='phones'; echo "AGREGAR NUEVO GRUPO DE ALIAS";} +if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "CREANDO SERVIDOR";} +if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ADICIÓN DEL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL";} +if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "AGREGAR NUEVO CONF PLANTILLA";} +if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "AGREGAR NUEVOS SOPORTES";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "AGREGAR NUEVO TTS ENTRADA";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "ADDING NEW MUSIC EN ESPERA DE ENTRADA";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "AGREGAR NUEVO contestador";} +if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "CREANDO CONFERENCIA";} +if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} +if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "ADICIÓN DE ESTADOS DE SISTEMA DE VICIDIAL";} +if ($ADD==231111111111111) {$hh='admin'; $sh='status'; echo "ADICIÓN DE CATEGORÍA DEL ESTADO DE VICIDIAL";} +if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "AGREGANDO VICIDIAL QC ESTADO CÓDIGO";} +if ($ADD==3) {$hh='users'; echo "Modificar Usuario";} +if ($ADD==30) {$hh='campaigns'; echo "Campaña No permitida";} +if ($ADD==31) + { + $hh='campaigns'; $sh='detail'; echo "Modifcar Campaña - Detalle - $campaign_id"; + if ($SUB==22) {echo " - Estados";} + if ($SUB==23) {echo " - Teclas rápidas";} + if ($SUB==25) {echo " -El Plomo ReciclaEntries";} + if ($SUB==26) {echo " - Auto Alt telefónico Estados";} + if ($SUB==27) {echo " - Agent Pausa Códigos";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Mezcla listaes";} + if ($SUB=='20A') {echo " - Encuesta";} + } +if ($ADD==34) + { + $hh='campaigns'; $sh='basic'; echo "Modificar Campaña - Vista Básica - $campaign_id"; + if ($SUB==22) {echo " - Estados";} + if ($SUB==23) {echo " - Teclas rápidas";} + if ($SUB==25) {echo " -El Plomo ReciclaEntries";} + if ($SUB==26) {echo " - Auto Alt telefónico Estados";} + if ($SUB==27) {echo " - Agent Pausa Códigos";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Mezcla listaes";} + if ($SUB=='20A') {echo " - Encuesta";} + } +if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Estados De la Campaña";} +if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Campaña Teclas rápidas";} +if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "El Plomo De la Campaña Recicla Entradas";} +if ($ADD==36) {$hh='campaigns'; $sh='autoalt'; echo "Estados Auto Del Dial Del Alt De la Campaña";} +if ($ADD==37) {$hh='campaigns'; $sh='pause'; echo "Códigos De la Pausa Del Agente De la Campaña";} +if ($ADD==38) {$hh='campaigns'; $sh='dialstat'; echo "Estados Del Dial De la Campaña";} +if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Mezclas De la Lista De la Campaña";} +if ($ADD==311) {$hh='lists'; echo "Modificar Lista";} +if ($ADD==3111) {$hh='ingroups'; echo "Modificar In-Group";} +if ($ADD==3311) {$hh='ingroups'; echo "ModificarDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Modificar Call Menú";} +if ($ADD==31111) {$hh='remoteagent'; echo "Modificar Agentes Remotos";} +if ($ADD==311111) {$hh='usergroups'; echo "Modificar Grupos De Usuarios";} +if ($ADD==3111111) {$hh='scripts'; echo "Modifique La Escritura";} +if ($ADD==31111111) {$hh='filters'; echo "Modifique El Filtro";} +if ($ADD==311111111) {$hh='admin'; $sh='times'; echo "Modifique El Tiempo De la Llamada";} +if ($ADD==321111111) {$hh='admin'; $sh='times'; echo "Modifique La Lista De las Definiciones Del Estado Del Tiempo De laLlamada";} +if ($ADD==331111111) {$hh='admin'; $sh='shifts'; echo "Modificar Mayúsculas";} +if ($ADD==3111111111) {$hh='admin'; $sh='times'; echo "Modifique El Tiempo De la Llamada Del Estado";} +if ($ADD==31111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR EL TELÉFONO";} +if ($ADD==32111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR TELÉFONO ALIAS";} +if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR GRUPO ALIAS";} +if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "MODIFICAR EL SERVIDOR";} +if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFICAR CONF PLANTILLA";} +if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFICAR PORTEADOR";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFICAR TTS ENTRADA";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFICAR MÚSICA EN ESPERA DE ENTRADA";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFICAR contestador";} +if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "MODIFICAR LA CONFERENCIA";} +if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "MODIFIQUE LOS AJUSTES DEL SISTEMA DE VICIDIAL";} +if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo "MODIFIQUE LOS ESTADOS DE SISTEMA DE VICIDIAL";} +if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo "MODIFIQUE LA CATEGORÍA DEL ESTADO DE VICIDIAL";} +if ($ADD==341111111111111) {$hh='admin'; $sh='status'; echo "MODIFICAR VICIDIAL CC ESTADO CÓDIGO";} +if ($ADD=="4A") {$hh='users'; echo "Modificar Usuario - Admin";} +if ($ADD=="4B") {$hh='users'; echo "Modificar Usuario - Admin";} +if ($ADD==4) {$hh='users'; echo "Modificar Usuario";} +if ($ADD==41) {$hh='campaigns'; $sh='detail'; echo "Modifcar Campaña";} +if ($ADD==42) {$hh='campaigns'; $sh='status'; echo "Modifcar Campaña Status";} +if ($ADD==43) {$hh='campaigns'; $sh='hotkey'; echo "Modifcar Campaña HotKey";} +if ($ADD==44) {$hh='campaigns'; $sh='basic'; echo "Modificar Campaña - Vista Básica";} +if ($ADD==45) {$hh='campaigns'; $sh='recycle'; echo "Modifique El Plomo De la Campaña Reciclan";} +if ($ADD==47) {$hh='campaigns'; $sh='pause'; echo "Modifique El Código De la Pausa Del Agente";} +if ($ADD==48) {$hh='campaigns'; $sh='qc'; echo "Modificar la campaña de CC Configuración";} +if ($ADD==49) {$hh='campaigns'; $sh='listmix'; echo "Modifique La Mezcla De la Lista De la Campaña";} +if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Modificar la campaña Encuesta";} +if ($ADD==411) {$hh='lists'; echo "Modificar Lista";} +if ($ADD==4111) {$hh='ingroups'; echo "Modificar In-Group";} +if ($ADD==4311) {$hh='ingroups'; echo "ModificarDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Modificar Call Menú";} +if ($ADD==41111) {$hh='remoteagent'; echo "Modificar Agentes Remotos";} +if ($ADD==411111) {$hh='usergroups'; echo "Modificar Grupos De Usuarios";} +if ($ADD==4111111) {$hh='scripts'; echo "Modifique La Escritura";} +if ($ADD==41111111) {$hh='filters'; echo "Modifique El Filtro";} +if ($ADD==411111111) {$hh='admin'; $sh='times'; echo "Modifique El Tiempo De la Llamada";} +if ($ADD==431111111) {$hh='admin'; $sh='shifts'; echo "Modificar Mayúsculas";} +if ($ADD==4111111111) {$hh='admin'; $sh='times'; echo "Modifique El Tiempo De la Llamada Del Estado";} +if ($ADD==41111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR EL TELÉFONO";} +if ($ADD==42111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR TELÉFONO ALIAS";} +if ($ADD==43111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR GRUPO ALIAS";} +if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "MODIFICAR EL SERVIDOR";} +if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "MODIFIQUE EL EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL";} +if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFICAR CONF PLANTILLA";} +if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFICAR PORTEADOR";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFICAR TTS ENTRADA";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFICAR MÚSICA EN ESPERA DE ENTRADA";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFICAR contestador";} +if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "MODIFICAR LA CONFERENCIA";} +if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "MODIFIQUE LOS AJUSTES DEL SISTEMA DE VICIDIAL";} +if ($ADD==421111111111111) {$hh='admin'; $sh='status'; echo "MODIFIQUE LOS ESTADOS DE SISTEMA DE VICIDIAL";} +if ($ADD==431111111111111) {$hh='admin'; $sh='status'; echo "MODIFIQUE LAS CATEGORÍAS DEL ESTADO DE VICIDIAL";} +if ($ADD==441111111111111) {$hh='admin'; $sh='status'; echo "MODIFICAR VICIDIAL CC ESTADO CÓDIGO";} +if ($ADD==5) {$hh='users'; echo "BorrarUsuario";} +if ($ADD==51) {$hh='campaigns'; $sh='detail'; echo "BorrarCampaña";} +if ($ADD==52) {$hh='campaigns'; $sh='detail'; echo "Agentes Del Registro de estado de la máquina";} +if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Claro Del Atasco De la Emergencia VDAC";} +if ($ADD==511) {$hh='lists'; echo "BorrarList";} +if ($ADD==5111) {$hh='ingroups'; echo "BorrarIn-Group";} +if ($ADD==5311) {$hh='ingroups'; echo "BorrarDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Eliminar del menú de llamadas";} +if ($ADD==51111) {$hh='remoteagent'; echo "Suprima los agentes alejados";} +if ($ADD==511111) {$hh='usergroups'; echo "Usuarios de la cancelación Group";} +if ($ADD==5111111) {$hh='scripts'; echo "Escritura De la Cancelación";} +if ($ADD==51111111) {$hh='filters'; echo "Filtro De la Cancelación";} +if ($ADD==511111111) {$hh='admin'; $sh='times'; echo "BorrarCall Time";} +if ($ADD==531111111) {$hh='admin'; $sh='shifts'; echo "Eliminar Mayúsculas";} +if ($ADD==5111111111) {$hh='admin'; $sh='times'; echo "Tiempo De la Llamada Del Estado De la Cancelación";} +if ($ADD==51111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==52111111111) {$hh='admin'; $sh='phones'; echo "ELIMINAR TELÉFONO ALIAS";} +if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "Eliminar grupo ALIAS";} +if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "ELIMINAR CONF PLANTILLA";} +if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "ELIMINAR PORTEADOR";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRADA";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE MÚSICA EN ESPERA DE ENTRADA";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE contestador";} +if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==6) {$hh='users'; echo "BorrarUsuario";} +if ($ADD==61) {$hh='campaigns'; $sh='detail'; echo "BorrarCampaña";} +if ($ADD==62) {$hh='campaigns'; $sh='detail'; echo "Agentes Del Registro de estado de la máquina";} +if ($ADD==63) {$hh='campaigns'; $sh='detail'; echo "Claro Del Atasco De la Emergencia VDAC";} +if ($ADD==65) {$hh='campaigns'; $sh='recycle'; echo "El Plomo De la Cancelación Recicla";} +if ($ADD==66) {$hh='campaigns'; $sh='autoalt'; echo "Estado Auto Del Dial Del Alt De la Cancelación";} +if ($ADD==67) {$hh='campaigns'; $sh='pause'; echo "Código De la Pausa Del Agente De la Cancelación";} +if ($ADD==68) {$hh='campaigns'; $sh='dialstat'; echo "El Estado Del Dial De la Campaña Quitó";} +if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "La Mezcla De la Lista De la Campaña Quitó";} +if ($ADD==611) {$hh='lists'; echo "BorrarList";} +if ($ADD==6111) {$hh='ingroups'; echo "BorrarIn-Group";} +if ($ADD==6311) {$hh='ingroups'; echo "BorrarDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Eliminar del menú de llamadas";} +if ($ADD==61111) {$hh='remoteagent'; echo "Suprima los agentes alejados";} +if ($ADD==611111) {$hh='usergroups'; echo "Usuarios de la cancelación Group";} +if ($ADD==6111111) {$hh='scripts'; echo "Escritura De la Cancelación";} +if ($ADD==61111111) {$hh='filters'; echo "Filtro De la Cancelación";} +if ($ADD==611111111) {$hh='admin'; $sh='times'; echo "BorrarCall Time";} +if ($ADD==631111111) {$hh='admin'; $sh='shifts'; echo "Eliminar Mayúsculas";} +if ($ADD==6111111111) {$hh='admin'; $sh='times'; echo "Tiempo De la Llamada Del Estado De la Cancelación";} +if ($ADD==61111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "ELIMINAR TELÉFONO ALIAS";} +if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "Eliminar grupo ALIAS";} +if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL DE LA CANCELACIÓN";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "ELIMINAR CONF PLANTILLA";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "ELIMINAR PORTEADOR";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRADA";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE MÚSICA EN ESPERA DE ENTRADA";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE contestador";} +if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==73) {$hh='campaigns'; echo "Cuenta Del Plomo De Dialable";} +if ($ADD==7111111) {$hh='scripts'; echo "Escritura De la Inspección previo";} +if ($ADD==700000000000000) {$hh='reports'; echo "VICIDIAL ADMIN Change Log";} +if ($ADD==710000000000000) {$hh='reports'; echo "VICIDIAL USUARIO ADMIN Change Log";} +if ($ADD==720000000000000) {$hh='reports'; echo "VICIDIAL SECCIÓN ADMIN Change Log";} +if ($ADD==730000000000000) {$hh='reports'; echo "VICIDIAL Detalle de registro de cambio ADMIN";} +if ($ADD==0) {$hh='users'; echo "Lista De Usuarios";} +if ($ADD==8) {$hh='users'; echo "Servicios repetidos Dentro Del Agente";} +if ($ADD==81) {$hh='campaigns'; $sh='list'; echo "Servicios repetidos Dentro De la Campaña";} +if ($ADD==811) {$hh='lists'; echo "Servicios repetidos Dentro De la Lista";} +if ($ADD==8111) {$hh='usergroups'; echo "Servicios repetidos Dentro Del Grupo De Usuario";} +if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Campañas";} +if ($ADD==100) {$hh='lists'; echo "Listas";} +if ($ADD==1000) {$hh='ingroups'; echo "In-Groups";} +if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Llame a los menús";} +if ($ADD==10000) {$hh='remoteagent'; echo "Agentes Remotos";} +if ($ADD==100000) {$hh='usergroups'; echo "Grupos De Usuario";} +if ($ADD==1000000) {$hh='scripts'; echo "Escrituras";} +if ($ADD==10000000) {$hh='filters'; echo "Filtros";} +if ($ADD==100000000) {$hh='admin'; $sh='times'; echo "Tiempos De la Llamada";} +if ($ADD==130000000) {$hh='admin'; $sh='shifts'; echo "Turnos";} +if ($ADD==1000000000) {$hh='admin'; $sh='times'; echo "Tiempos De la Llamada Del Estado";} +if ($ADD==10000000000) {$hh='admin'; $sh='phones'; echo "LISTA DE TELÉFONOS";} +if ($ADD==12000000000) {$hh='admin'; $sh='phones'; echo "TELÉFONO ALIAS LISTA";} +if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GRUPO DE ALIAS LISTA";} +if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "LISTA DE SERVIDORES";} +if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF lista de plantillas";} +if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "LISTA DE TRANSPORTISTA";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS LISTA INSCRITOS";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "MÚSICA EN ESPERA LISTA DE ENTRADA";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "LISTA DE CORREO DE VOZ CAJAS";} +if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "LISTA DE CONFERENCIAS";} +if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL LISTA DE CONFERENCIAS";} +if ($ADD==550) {$hh='users'; echo "Formulario De Búsqueda";} +if ($ADD==551) {$hh='users'; echo "BUSCAR TELÉFONOS";} +if ($ADD==660) {$hh='users'; echo "RESULTADOS DE LA BÚSQUEDA";} +if ($ADD==661) {$hh='users'; echo "RESULTADO DE LA BÚSQUEDA DE TELÉFONOS";} +if ($ADD==99999) {$hh='users'; echo "AYUDA";} +if ($ADD==999999) {$hh='reports'; echo "INFORMES";} + +if ( ($ADD>9) && ($ADD < 99998) ) + { + ##### get scripts listing for dynamic pulldown + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $scripts_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $scripts_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get filters listing for dynamic pulldown + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_sql from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + $filters_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($filters_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $filters_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $filtername_list["$rowx[0]"] = "$rowx[1]"; + $filtersql_list["$rowx[0]"] = "$rowx[2]"; + $o++; + } + + ##### get call_times listing for dynamic pulldown + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $times_to_print = mysql_num_rows($rslt); + + $o=0; + while ($times_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $call_times_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $call_timename_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + } + +if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD<70)) or ($ADD=="4A") or ($ADD=="4B") or (strlen($ADD)==12) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + + ##### BEGIN get campaigns listing for rankings ##### + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $campaigns_value=''; + $RANKcampaigns_list="<tr><td>CAMPAIGN</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $campaign_id_values[$o] = $rowx[0]; + $campaign_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + $group_web_vars=''; + $campaign_web=''; + $stmt="SELECT campaign_rank,calls_today,group_web_vars from vicidial_campaign_agents where user='$user' and campaign_id='$campaign_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_campaign_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_campaign_rank=0; $group_web_vars='';} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_GET["RANK_$campaign_id_values[$o]"];} + elseif (isset($_POST["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_POST["RANK_$campaign_id_values[$o]"];} + if (isset($_GET["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_GET["WEB_$campaign_id_values[$o]"];} + elseif (isset($_POST["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_POST["WEB_$campaign_id_values[$o]"];} + if ($non_latin < 1) + { + $campaign_rank = ereg_replace("[^-\_0-9]","",$campaign_rank); + $campaign_web = preg_replace("/;|\"|\'/","",$campaign_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', group_web_vars='$campaign_web' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', campaign_id='$campaign_id_values[$o]', user='$user', group_web_vars='$campaign_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_agents set campaign_weight='$campaign_rank' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$campaign_rank = $SELECT_campaign_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + # disable non user-group allowable campaign ranks + $stmt="SELECT user_group from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Ruser_group = $row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$Ruser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $UGcampaigns = explode(" ", $allowed_campaigns); + + $p=0; $RANK_camp_active=0; $CR_disabled = ''; + if (eregi('-ALL-CAMPAIGNS-',$allowed_campaigns)) + {$RANK_camp_active++;} + else + { + $UGcampaign_ct = count($UGcampaigns); + while ($p < $UGcampaign_ct) + { + if ($campaign_id_values[$o] == $UGcampaigns[$p]) + {$RANK_camp_active++;} + $p++; + } + } + if ($RANK_camp_active < 1) {$CR_disabled = 'DISABLED';} + + $RANKcampaigns_list .= "<tr $bgcolor><td>"; + $campaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] <BR>\n"; + $RANKcampaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] </td>"; + $RANKcampaigns_list .= "<td>     <select size=1 name=RANK_$campaign_id_values[$o] $CR_disabled>\n"; + $h="9"; + while ($h>=-9) + { + $RANKcampaigns_list .= "<option value=\"$h\""; + if ($h==$campaign_rank) + {$RANKcampaigns_list .= " SELECTED";} + $RANKcampaigns_list .= ">$h</option>"; + $h--; + } + if ( (strlen($campaign_web) < 1) and (strlen($group_web_vars) > 0) ) + {$campaign_web=$group_web_vars;} + $RANKcampaigns_list .= "</select></td>\n"; + $RANKcampaigns_list .= "<td align=right>     $calls_today</td>\n"; + $RANKcampaigns_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$campaign_id_values[$o] value=\"$campaign_web\"></td></tr>\n"; + $o++; + } + ##### END get campaigns listing for rankings ##### + + + ##### BEGIN get inbound groups listing for checkboxes ##### + $xfer_groupsSQL=''; + if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) + { + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + + 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';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + if ($ADD==3) + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; +# $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + $XFERgroups_list=''; + $RANKgroups_list="<tr><td>Entrantes GROUP</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_values[$o] = $rowx[0]; + $group_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($groups_to_print > $o) + { + $group_web_vars=''; + $group_web=''; + $stmt="SELECT group_rank,calls_today,group_web_vars from vicidial_inbound_group_agents where user='$user' and group_id='$group_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_group_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_group_rank=0;} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$group_id_values[$o]"])) {$group_rank=$_GET["RANK_$group_id_values[$o]"];} + elseif (isset($_POST["RANK_$group_id_values[$o]"])) {$group_rank=$_POST["RANK_$group_id_values[$o]"];} + if (isset($_GET["WEB_$group_id_values[$o]"])) {$group_web=$_GET["WEB_$group_id_values[$o]"];} + elseif (isset($_POST["WEB_$group_id_values[$o]"])) {$group_web=$_POST["WEB_$group_id_values[$o]"];} + + if ($non_latin < 1) + { + $group_rank = ereg_replace("[^-\_0-9]","",$group_rank); + $group_web = preg_replace("/;|\"|\'/","",$group_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_web_vars='$group_web' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_id='$group_id_values[$o]', user='$user', group_web_vars='$group_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_inbound_agents set group_weight='$group_rank' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$group_rank = $SELECT_group_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $groups_list .= "<input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $XFERgroups_list .= "<input type=\"checkbox\" name=\"XFERgroups[]\" value=\"$group_id_values[$o]\""; + $RANKgroups_list .= "<tr $bgcolor><td><input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $p=0; + $group_ct = count($groups); + while ($p < $group_ct) + { + if ($group_id_values[$o] == $groups[$p]) + { + $groups_list .= " CHECKED"; + $RANKgroups_list .= " CHECKED"; + $groups_value .= " $group_id_values[$o]"; + } + $p++; + } + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + if ($group_id_values[$o] == $XFERgroups[$p]) + { + $XFERgroups_list .= " CHECKED"; + $XFERgroups_value .= " $group_id_values[$o]"; + } + $p++; + } + $stmt="SELECT queue_priority from vicidial_inbound_groups where group_id='$group_id_values[$o]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VIG_priority = $row[0]; + + $groups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] - $VIG_priority <BR>\n"; + $XFERgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] <BR>\n"; + $RANKgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] </td>"; + $RANKgroups_list .= "<td>     <select size=1 name=RANK_$group_id_values[$o]>\n"; + $h="9"; + while ($h>=-9) + { + $RANKgroups_list .= "<option value=\"$h\""; + if ($h==$group_rank) + {$RANKgroups_list .= " SELECTED";} + $RANKgroups_list .= ">$h</option>"; + $h--; + } + if ( (strlen($group_web) < 1) and (strlen($group_web_vars) > 0) ) + {$group_web=$group_web_vars;} + $RANKgroups_list .= "</select></td>\n"; + $RANKgroups_list .= "<td align=right>     $calls_today</td>\n"; + $RANKgroups_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$group_id_values[$o] value=\"$group_web\"></td></tr>\n"; + $o++; + } + if (strlen($groups_value)>2) {$groups_value .= " -";} + if (strlen($XFERgroups_value)>2) {$XFERgroups_value .= " -";} + } + ##### END get inbound groups listing for checkboxes ##### + + +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) + { + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + { + $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $qc_allowed_campaigns = $row[1]; + $qc_allowed_inbound_groups = $row[2]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $campaigns = explode(" ", $allowed_campaigns); + $qc_allowed_campaigns = preg_replace("/ -$/","",$qc_allowed_campaigns); + $qc_campaigns = explode(" ", $qc_allowed_campaigns); + $qc_allowed_inbound_groups = preg_replace("/ -$/","",$qc_allowed_inbound_groups); + $qc_groups = explode(" ", $qc_allowed_inbound_groups); + } + + $campaigns_value=''; + $campaigns_list='<B><input type="checkbox" name="campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_campaigns_value=''; + $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_groups_value=''; + $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) + { + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } + $campaigns_list.="> ALL-CAMPAIGNS - LOS USUARIOS PUEDEN VISIÓN CUALQUIER CAMPAÑA</B><BR>\n"; + $qc_campaigns_list.="> ALL-CAMPAIGNS - USUARIOS PUEDEN CC CUALQUIER CAMPAÑA</B><BR>\n"; + $qc_groups_list.="> ALL-GROUPS - USUARIOS PUEDEN CC entrantes CUALQUIER GRUPO</B><BR>\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaign_id_value = $rowx[0]; + $campaign_name_value = $rowx[1]; + $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; + $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; + $p=0; + while ($p<1000) + { + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) + { + # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; + $campaigns_list .= " CHECKED"; + $campaigns_value .= " $campaign_id_value"; + } + if ($campaign_id_value == $qc_campaigns[$p]) + { + $qc_campaigns_list .= " CHECKED"; + $qc_campaigns_value .= " $campaign_id_value"; + } + # echo "<!-- O $p|$campaign_id_value|$campaigns[$p]| -->"; + $p++; + } + $campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $qc_campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $o++; + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; + $p=0; + while ($p<2000) + { + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) + { + $qc_groups_list .= " CHECKED"; + $qc_groups_value .= " $group_id_value"; + } + $p++; + } + $qc_groups_list .= "> $group_id_value - $group_name_value<BR>\n"; + $o++; + } + + if (strlen($campaigns_value)>2) {$campaigns_value .= " -";} + if (strlen($qc_campaigns_value)>2) {$qc_campaigns_value .= " -";} + if (strlen($qc_groups_value)>2) {$qc_groups_value .= " -";} + } + ##### END get campaigns listing for checkboxes ##### + + +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rsltx=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rsltx); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + } + + + +$NWB = "   <a href=\"javascript:openNewWindow('$PHP_SELF?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"AYUDA\" ALIGN=TOP></A>"; + + +###################################################################################################### +###################################################################################################### +####### 9 series, HELP screen +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=99999 display the HELP SCREENS +###################### + +if ($ADD==99999) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: AYUDA


\n"; + + ?> + VICIDIAL_USUARIOS TABLA

+ +
+ Identificación del usuario - 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. + +
+
+
+ Contraseña - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. + +
+
+
+ Nombre completo - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. + +
+
+
+ Nivel de usuario - 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. + +
+
+
+ Grupo de usuario - 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. + +
+
+
+ Conexión del teléfono - 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. + +
+
+
+ Paso del teléfono - 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. + +
+
+
+ Activo - Este campo define si el usuario está activo en el sistema y puede utilizar VICIDIAL recursos. Y es por defecto + +
+
+
+ De correo electrónico, el código de usuario y Territorio - Estos son los campos opcionales. + +
+
+
+ Hot Keys activo - esta opción si el sistema a 1 permite que el usuario utilice la función ra'pida-dispositioning de Hot Keys adentro vicidial.php. + +
+
+
+ El agente elige Ingroups - 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. + +
+
+
+ Agente Elija territorios - Esta opción si se establece en 1 permite al usuario elegir los territorios que van a recibir llamadas de los usuarios cuando ingresan a un manual o campaña Entrantes_MAN. De lo contrario el usuario será configurado para utilizar todos los territorios que se establecen a pertenecer a los territorios de usuario administrativos sección. + +
+
+
+ Scheduled Callbacks - Esta opción permite que un agente a disposición de una llamada como CALLBK y elegir la fecha y hora en que el plomo se vuelva a activar. + +
+
+
+ Servicios repetidos del Agente-Solamente - 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. + +
+
+
+ Manual de la llamada del agente - 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. + +
+
+
+ Grabación de Vicidial - 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 transfiere - 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. + + 0) + { + ?> +
+
+
+ Un defecto más cercano mezclado - esta opción omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexión. + + +
+
+
+ Invalidación de la grabación de VICIDIAL - esta opción seeliminará lo que es la opción en la campaña para la grabación.LISIADO no eliminará el ajuste de la grabación de la campaña. NUNCAinhabilitará la grabación en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabación en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabación en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opción para parar el registrar. ParaALLCALLS y ALLFORCE hay una opción para utilizar la grabaciónretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. + +
+
+
+ Agente de Cambio observancia Sobrescribir - Esta configuración anular cualquiera que sea el grupo de usuarios de los usuarios se ha fijado para Mayús Observancia. MINUSVALIDOS utilizará el grupo de usuarios de configuración. NO no aplicará en todos los turnos. PRINCIPIO sólo hacer cumplir el tiempo de inicio de sesión, pero no afectará a un agente que se está ejecutando en su momento, si en cambio ya están conectado TODOS hará cumplir turnos hora de inicio y de registro de un agente a cabo después de que ellos tienen sobre el final de su cambio de tiempo. Desactivado por defecto. + +
+
+
+ Alerta Activado - Este campo muestra si el agente tiene el navegador web habilitado para alertas cuando pide entrar en su período de sesiones vicidial.php. Por defecto es 0 para el NO. + +
+
+
+ Permitir Alertas - Este campo le da la capacidad para permitir navegador agente de alertas para ser habilitado por el agente para cuando las llamadas entran en su período de sesiones vicidial.php. Por defecto es 0 para el NO. + +
+
+
+ La campaña alinea - en esta sección usted puede definir a la filaque un agente tendrá para cada campaña. Estas filas pueden serutilizadas para tener en cuenta la encaminamiento preferida de lallamada cuando la llamada siguiente del agente se fija alcampaign_rank. También en esta sección son la WEB VARs para cada campaña. Estas permiten a cada agente tiene una cadena de la variable que se puede agregar a la WEB DE GUIÓN ficha URL o simplemente poniendo - A - web_vars - B - como le pondría en cualquier otra esfera. + +
+
+
+ Grupos de entrada - 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. Usted también podrá fijar la fila, o el nivel de habilidad, en estasección para cada uno de los grupos de entrada así como poder ver elnúmero de las llamadas recibidas de cada grupo de entrada para esteagente específico. También en esta sección está la capacidad de dar al agente una filapara cada grupo de entrada. Estas filas pueden ser utilizadas para laencaminamiento preferida de la llamada cuando esa opción seselecciona en la pantalla del en-grupo. También en esta sección son la WEB VARs para cada campaña. Estas permiten a cada agente tiene una cadena de la variable que se puede agregar a la WEB DE GUIÓN ficha URL o simplemente poniendo - A - web_vars - B - como le pondría en cualquier otra esfera. + +
+
+
+ El agente altera la invalidación de los datos del cliente - estaopción se eliminará lo que es la opción en la campaña paraalterarse de los datos del cliente. NOT_ACTIVE utilizará lo que estápresente el ajuste para la campaña. ALLOW_ALTER permitirá siemprepara que el agente altere los datos del cliente, no importa qué es elajuste de la campaña. El defecto es NOT_ACTIVE. + +
+
+
+ Modificar Agente Cliente Teléfono Sobreescribe - Esta opción será el que la opción está en la campaña para modificar el número de teléfono del cliente. NOT_ACTIVE utilizará cualquier ajuste es para la presente campaña. ALLOW_ALTER siempre permiten el agente de alterar el número de teléfono del cliente, no importa lo que la campaña de ajuste. El valor predeterminado es NOT_ACTIVE. + +
+
+
+ Los campos de usuario personalizada - Estos cinco campos se puede utilizar para diversos fines, y que se puede rellenar en el formulario web y direcciones de secuencias de comandos como user_custom_one y así sucesivamente. + +
+
+
+ Altere las opciones de interfaz del agente - esta opción si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php. + +
+
+
+ Usuarios de la cancelación - 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. + +
+
+
+ Suprima a grupos de usuario - esta opción si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema. + +
+
+
+ La cancelación enumera - esta opción si el sistema a 1 permite que el usuario suprima listas vicidial del sistema. + +
+
+
+ La cancelación hace campaña - esta opción si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema. + +
+
+
+ En-Grupos de la cancelación - esta opción si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema. + +
+
+
+ Suprima los agentes alejados - esta opción si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema. + + 0) + { + ?> +
+
+
+ La carga conduce - 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. + + +
+
+
+ Detalle de la campaña - 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. + +
+
+
+ Acceso de AGC Admin - esta opción si el sistema a 1 permite a usuario a la conexión a las páginas astGUIclient del admin. + +
+
+
+ La cancelación de AGC telefona - esta opción si el sistema a 1 permite que el usuario suprima entradas del teléfono en las páginas astGUIclient del admin. + +
+
+
+ Escrituras de la cancelación - 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. + +
+
+
+ Modifique los plomos - 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. + +
+
+
+ Cambie la campaña del agente - 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. + + 0) + { + ?> +
+
+
+ La cancelación se filtra - esta opción permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema. + + +
+
+
+ Tiempos de la llamada de la cancelación - 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. + +
+
+
+ Modifique los tiempos de la llamada - 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. + +
+
+
+ Modifique las secciones - estas opciones permiten que el usuariovisión y modifique cada uno los expedientes de las secciones. Si elsistema a 0, el usuario puede considerar la lista de la sección, perono el detalle o la pantalla de la modificación de un expediente enesa sección. + +
+
+
+ La visión divulga - esta opción permite que el usuario visión losinformes de VICIDIAL. + + 0) + { + ?> +
+
+
+ CC Activado - Esta opción permite al usuario acceder a la pantalla de control de calidad de agente. + +
+
+
+ Nivel de Usuario de CC - Este ajuste define lo que el agente de control de calidad de nivel de usuario es. Este dictará el nivel de funcionalidad para el agente en la sección de CC:
+ 1 - Modificar Nada
+ 2 - Modificar Nada Salvo Estado
+ 3 - Modificar todos los campos
+ 4 - Compruebe la primera ronda de CC
+ 5 - Ver estadísticas de CC
+ 6 - Capacidad para modificar los registros acabado
+ 7 - Gestor de Nivel
+ +
+
+
+ CC Actas Pass - Esta opción permite al agente para especificar que un registro ha pasado la primera ronda de control de calidad después de examinar el expediente. + +
+
+
+ Registro de control de calidad en Finalizar - Esta opción permite al agente para especificar que un registro ha terminado la segunda ronda de control de calidad después de revisar el pasado registro. + +
+
+
+ Registro de control de calidad Compro - Esta opción permite al agente para especificar que un registro se ha cometido en el control de la calidad. Ya no puede ser modificado por cualquiera. + + +
+
+
+ AñadirReloj de tiempo Registrarse Expediente - Esta opción permite al usuario añadir registros a la timeclock registro. + +
+
+
+ ModificarReloj de tiempo Registrarse Expediente - Esta opción permite al usuario modificar los registros en el registro timeclock. + +
+
+
+ EliminarReloj de tiempo Registrarse Expediente - Esta opción permite al usuario borrar los registros en el registro timeclock. + +
+
+
+ Agente de acceso a la API - Esta opción permite que la cuenta que se utilizará con el agente de la API de comandos vicidial. + +
+
+
+ Gerente de Turno observancia Sobrescribir - Este ajuste, si se pone a 1 permitirá que un administrador de entrar en su usuario y contraseña en una pantalla de agente para anular las restricciones sobre el desplazamiento de un agente período de sesiones si el agente está intentando iniciar sesión fuera de su turno. El valor predeterminado es 0. + +
+
+
+ Download Listas - Este ajuste, si se establece en 1 para permitir que un administrador haga clic en la lista de descargas en la parte inferior de la pantalla una lista de modificaciones a la exportación de todo el contenido de una lista a un archivo de datos plana. El valor predeterminado es 0. + +
+
+
+ Informes de exportación - Este ajuste, si se pone a 1 permitirá un gerente de exportación para acceder a la llamada de los informes sobre la INFORMES pantalla. El valor predeterminado es 0. Pide para el Informe de Exportación, para el siguiente campo se utiliza para las exportaciones:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, 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, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner + +
+
+
+ Eliminar de las listas de DNC - Este ajuste, si se establece en 1 permitirá a un administrador para quitar los números de teléfono de las listas de DNC en el sistema de Vicidial. + + + + + + +



+ + VICIDIAL_CAMPAIGNS TABLA

+
+
+ Identificación de la campaña - Ú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 longitudh. + +
+
+
+ Nombre de la campaña - Ésta es la descripción de la campaña, debe estar entre 6 y 40 caracteres en longitud. + +
+
+
+ Descripción de la campaña - esto es un campo de la nota para lacampaña, es opcional y puede ser un máximo de 255 caracteres enlongitud. + +
+
+
+ Fecha del cambio de la campaña - ésta es la vez última que losajustes para esta campaña fueron modificados de cualquier manera. + +
+
+
+ La fecha pasada de la conexión de la campaña - ésta es la vezúltima que un agente fue registrado en esta campaña. + +
+
+
+ Última fecha de convocatoria de la Campaña - Esta es la última vez que una llamada fue manejado por un agente registrado en esta campaña. + +
+
+
+ Los Stats de la campaña restauran - este checkbox permitirá queusted fuerce un stats vicidial restaura, incluso si la campaña no esactiva. + +
+
+
+ Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en él. + +
+
+
+ Extensión del parque - 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. + +
+
+
+ Nombre del archivo del parque - 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. + +
+
+
+ Forma del Web - 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. Para personalizar la cadena de la consulta después de que el formulario web, basta con iniciar el formulario web con VAR y, a continuación, la URL que desee utilizar, en sustitución de las variables con el nombre de las variables que desee utilizar - A - phone_number - B -- al igual que en la pestaña de la sección ESCRITURAS. + +
+
+
+ Formulario Webs Meta- Este es donde usted puede establecer el marco de página web personalizada de la web de forma que se abrirá cuando el usuario hace clic en el botón formulario Web. El valor predeterminado es _blank. + +
+
+
+ Permita Closers - 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. + +
+
+
+ Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. + +
+
+
+ Grupos permitidos de la transferencia - con estos listados delcheckbox usted puede seleccionar a los grupos a quienes los agentes enesta campaña pueden transferir llamadas. Permita Closers debe serpermitido para que esta opción demuestre para arriba. + + 0) + { + ?> +
+
+
+ Permita de entrada y mezclado - aquí es donde usted puede fijar silos usuarios de esta campaña tendrán la opción para tomar llamadasde entrada con esta campaña. Si usted desea hacer de entrada y desalida mezclada entonces esto se debe fijar a Y. Si usted deseasolamente hacer marcar de salida en esta campaña fijó esto a N.Default es N. + +
+
+
+ Estado del dial - 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. Para agregar otro estado al dial, selecciónelo de la lista drop-downy el tecleo AGREGA. Para quitar uno de los estados del dial, chasqueencendido el acoplamiento del QUITAR al lado del estado que usteddesea quitar. + +
+
+
+ Orden de la lista - Este menú es donde usted selecciona cómo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo: +
  - DOWN: seleccione los primeros plomos cargados en la tabla del vicidial_list +
  - UP: seleccione los plomos pasados cargados en la tabla del vicidial_list +
  - UP PHONE: seleccione el número y los trabajos más altos de teléfono su manera abajo +
  - DOWN PHONE: seleccione el número y los trabajos más bajos de teléfono su manera para arriba +
  - UP LAST NAME: comienzo con los nombres pasados comenzando con Z y trabajos su manera abajo +
  - DOWN LAST NAME: comienzo con los nombres pasados comenzando con A y trabajos su manera para arriba +
  - UP COUNT: comienzo con los plomos y los trabajos llamados su manera abajo +
  - DOWN COUNT: comienzo con menos plomos y trabajos llamados su manera para arriba +
  - DOWN COUNT 2nd NEW: 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) +
  - DOWN COUNT 3nd NEW: 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) +
  - DOWN COUNT 4th NEW: 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) +
  - RANDOM: coge al azar de plomo en los estados y las listas definidas +
  - Subir llamada: Ordena por el tiempo más reciente de la llamada local para los conductores +
  - En Baja los Ultimos llamada: Ordena por el tiempo más antiguo de la llamada local para los conductores +
  - UP RANK: Comienza con la más alta categoría y se abre camino hacia abajo +
  - DOWN RANK: Comienza con el rango más bajo y se abre camino hasta +
  - UP OWNER: Comienza con los propietarios de inicio con Z y obras de su camino hacia abajo +
  - DOWN OWNER: Comienza con los propietarios empiezan con la letra y se abre camino hasta +
  - UP TIMEZONE: Comienza con las zonas horarias del Este y del Oeste de obras +
  - DOWN TIMEZONE: Comienza con las zonas horarias occidental y oriental de obras + +
+
+
+ Tolva llana - é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. + +
+
+
+ Filtro del plomo - é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. + +
+
+
+ Tiempo de caída de bloqueo - Este es un número de horas que DROP abandonar pide se le impida que se está marcando, para establecer inhabilitar a 0. Esta opción es muy útil en países como el Reino Unido, donde existen normas que impiden la tentativa de llamar a los clientes dentro de las 72 horas de abandono, o DROP. Por defecto es 0. + +
+
+
+ Reajuste de la fuerza de la tolva - 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. + +
+
+
+ Método del dial - Este campo es la manera de definir cómo el marcar debe ocurrir. Si el MANUAL entonces el auto_dial_level es bloqueado en 0 a menos que se cambie el método del dial. Si COCIENTE entonces el normal marcando un número de líneas para los agentes activos. ADAPT_HARD_LIMIT marcará predictively hasta el porcentaje caído y después no permitirá marcar agresivo una vez que se alcance el límite de la gota hasta que va el porcentaje abajo otra vez. ADAPT_TAPERED permite para el excedente de funcionamiento el porcentaje caído por la mitad primer de la cambio - según lo definido por el call_time seleccionado para la campaña y consigue más terminante mientras que se enciende la cambio. ADAPT_AVERAGE intenta mantener un promedio o el porcentaje caído que no impone límites duros tan agresivamente como los otros dos métodos. Usted no puede cambiar el nivel auto del dial si usted está en cualesquiera de los métodos del dial del ADAPTAR. Solamente el sintonizador puede cambiar el nivel del dial cuando en modo que marca profético. Entrantes_MAN permite que el agente de marcación manual de lugar a las llamadas de una campaña de la lista, mientras que ser capaz de tomar las llamadas entrantes entre marcación manual de llamadas. + +
+
+
+ Nivel auto del dial - 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. El checkbox de la INVALIDACIÓN del ADAPTAR permite que usted fuerceun nuevo nivel del dial aunque el método del dial está en un mododel ADAPTAR. Esto es útil si hay una cambio dramática en la calidadde plomos y usted desea cambiar drástico el dial_level manualmente. + +
+
+
+ Solamente cuenta disponible - este campo si el sistema a Y deja haciafuera los agentes del estado de INCALL y de la COLETA al calcular elnúmero de llamadas al dial cuando no en modo de dial MANUAL. Eldefecto es N. + +
+
+
+ Límite del porcentaje de la gota - este campo es donde usted fijó ellímite del porcentaje de llamadas caídas que usted quisiera mientrasque usaba un método adaptante-profe'tico del dial, NO MANUAL o delCOCIENTE. + +
+
+
+ El máximo adapta el dial llano - este campo es donde usted fijó ellímite del límite al numbr de líneas que usted quisiera marcado poragente mientras que usaba un método adaptante-profe'tico del dial, NOMANUAL o del COCIENTE. Este número puede ser más alto que el nivelauto del dial si su hardware lo apoya. El valor debe ser un númeropositivo mayor de uno y puede tener defecto 3.0 de los lugaresdecimales. + +
+
+
+ El tiempo más último del servidor - este campo es utilizadosolamente por el método del dial de ADAPT_TAPERED. Usted debe entraren la hora y el minuto que usted parará el invitar de esta campaña,2100 significaría que usted parará el marcar de esta campaña en eltiempo del servidor de los 9PM. Esto permite que el algoritmo afiladodecida a cómo agresivamente al dial cerca cuánto tiempo usted tienehasta que usted será el llamar acabado. + +
+
+
+ Adapte el modificante de la intensidad - este campo se utiliza paraajustar la intensidad profética más alta o más baja. El más altoun número positivo que usted selecciona, mayor va el sintonizadoraumentará la llamada que establece el paso cuando para arriba y máslentamente va el sintonizador disminuirá la llamada que establece elpaso cuando abajo. Cuanto más bajo es el número negativo que ustedseleccionan aquí, más lentamente el sintonizador aumentará lallamada que establece el paso y más rápidamente el sintonizadorbajará la llamada que establece el paso cuando va abajo. El defectoes 0. Este campo no es utilizado por los métodos del dial del MANUALo del COCIENTE. + +
+
+
+ Blanco llana de la diferencia del dial - este campo se utiliza paradefinir si usted desea apuntar tener un número específico de losagentes que esperan agentes de las llamadas o el esperar de llamadas.Por ejemplo si usted siempre quisiera tener en agente del promedio unolibre tomar llamadas inmediatamente usted fijaría esto a -1, si ustedquisiera apuntar siempre tener uno invita el asimiento que espera unagente que usted fijaría esto a 1. El defecto es 0. Este campo no esutilizado por los métodos del dial del MANUAL o del COCIENTE. + +
+
+
+ Transferencias concurrentes - este ajuste se utiliza para definir elnúmero de las llamadas que se pueden enviar a los agentes en el mismotiempo. Se recomienda que este ajuste está dejado en el AUTOMÓVIL. Este campo no es utilizado por el método MANUAL del dial. + +
+
+
+ Cola de prioridad - Este valor se utiliza para definir el orden en que las llamadas salientes de esta campaña debe responderse en relación con las llamadas entrantes si esta campaña está en el modo de mezcla. + +
+
+
+ Varias campañas Drop Rate Grupo - Esta característica le permite establecer una campaña como miembro de una campaña de la velocidad de descenso del Grupo, o un grupo de campañas cuyas llamadas contestadas y llamadas Humanos Drop para todas las campañas en el grupo se combinarán en un porcentaje de caída compartida, o tasa de abandono. Esto le permite ejecutar varias campañas a la vez y más fácil de controlar su tasa de caída. Esto es particularmente útil en el Reino Unido, donde las regulaciones lo permiten esta disminución método del tipo de cálculo con la campaña de la agrupación por la misma empresa, incluso si hay varias campañas que la empresa está ejecutando en el mismo día. Para habilitar esta para una campaña, sólo tienes que seleccionar un grupo de la lista. Hay 10 grupos definidos en el sistema por defecto, puede ponerse en contacto con el administrador del sistema para añadir más. Desactivado por defecto. + +
+
+
+ Alt-Nu'mero auto que marca - este ajuste se utiliza para marcarautomáticamente campos alternos del número mientras que marca en elCOCIENTE y ADAPTA métodos del dial cuando no hay contacto en elnúmero de teléfono principal para un plomo, los estados del NA, deB, de la C.C. y de N. Este ajuste no es utilizado por el métodoMANUAL del dial. PRORROGADO suplentes números son números cargados en el sistema fuera de la pantalla de información estándar. PRORROGADO utilizando usted puede tener cientos de números de teléfono de un solo registro de cliente. + +
+
+
+ Descanso del dial - 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 Buzón de Voz usted puede desear intentar cambiar este valor entre a 21-26 y ver si los resultados mejoran. + +
+
+
+ Campaña de extensión VDAD - Este campo permite una transferencia personalizada VDAD extensión. Esto le permite utilizar diferentes métodos de gestión de llamadas en función de su campaña. + - 8364 - 8368 misma que + - 8365 - Se envía la llamada a un sólo agente en el mismo servidor que la llamada está en + - 8366 - Utilizado para la prensa-1 y las campañas de estudio + - 8367 - ¿Se tratará de enviar la primera llamada a un agente en el servidor local, entonces se verá en otros servidores + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Se utiliza para Contestador automático de detección después de que, el mismo comportamiento como 8368 + - 8373 - Se utiliza para Contestador automático de detección después de que el mismo comportamiento de 8366 + +
+
+
+ Mensaje del contestador automático - Este campo es para entrar en el sistema para jugar cuando el agente recibe un contestador automático y hace clic en el botón Responder a máquina contestadora en el marco de conferencias de transferencia. Debe establecer que esto sea un archivo de audio en la tienda de audio o un sistema TTS TTS si está habilitada en su sistema de. + +
+
+
+ Opciones WaitForSilence - Si Wait For silencio es deseada en las llamadas que se detectan como Contestadoras entonces este campo tiene esas opciones. Hay dos opciones separadas por una coma, la primera opción es el tiempo para detectar silencio en milisegundos y la segunda opción es para cuántas veces se detecta que antes de reproducir el mensaje. Por defecto está vacío para discapacitados. Un valor estándar para este sería esperar 2 segundos de silencio en dos ocasiones: 2000,2 + +
+
+
+ AMD envían a la VM exten - 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. + +
+
+
+ CPD AMD Acción - Si está utilizando el Sangoma ParaXip software de detección de llamadas Progreso entonces usted desea habilitar esta configuración, o bien se DISPO a que la llamada disposición como AA y colgar la llamada si se está procesando y no se ha enviado aún a un agente o un mensaje que envía la llamada al contestador automático de mensajes definidos para esta campaña. Desactivado por defecto. + +
+
+
+ El marcar numérico del Alt del agente - 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. + +
+
+
+ Segundos de la llamada de la gota - 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. + +
+
+
+ Acción gota - Este menú le permite elegir lo que le sucede a una llamada cuando se ha estado esperando durante más de lo establecido en la Convocatoria de caída Segundos campo. Colgar simplemente colgar la llamada, enviar el mensaje de llamar a la Extensión de caída que ha definido a continuación, Buzón de voz se envía la llamada a la casilla de voz que ha definido a continuación y IN_GROUP enviará la convocatoria a la entrada del Grupo que se define a continuación + +
+
+
+ seguro puerto Exten - este ser dial plan extensión que desear seguropuerto audio archivo ser localizar en en su servidor. + +
+
+
+ Buzón de Voz - 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. + +
+
+
+ Grupo de Transferencia de gota - En caso de caída de Acción se establece en IN_GROUP, la llamada será enviada a este grupo entrantes si llega a soltar Convocatoria Segundos. + +
+
+
+ Permita Ninguno-Tolva-Conduce conexiones - si el sistema a Y, permiteagentes a la conexión a la campaña incluso si no hay plomos cargadosen la tolva para esa campaña. Esta función no se necesita encampañas de CLOSER-type. El defecto es N. + +
+
+
+ N marcado Hopper - Si esta opción está activada, la tolva no se ejecutará para esta campaña. Esta opción sólo está disponible cuando el método de línea se establece en Manual o Entrantes_MAN. Se recomienda que no habilite esta opción si usted tiene una base de datos de plomo muy grande, más de 100.000 clientes potenciales. Con n marcado Hopper, las características siguientes no funcionan: reciclaje de plomo, auto-alt-marcación, la mezcla lista, lista de pedido con X NEW. Si desea utilizar único dueño de marcado no debe tener marcado Hopper habilitado. Por defecto es n para discapacitados. + +
+
+
+ Único propietario de marcado - Si esta opción está activada, el agente sólo recibirá las pistas que están dentro de los parámetros de la propiedad. Si esto se establece a usuario entonces el agente debe ser definida por el usuario en la base de datos como el propietario de este lugar. Si esto se establece en territorio que entonces el dueño de la iniciativa debe coincidir con el territorio que figuran en la pantalla de modificación del usuario de este agente. Si esto se establece a USER_GROUP entonces el dueño de la iniciativa debe coincidir con el grupo de usuarios que el agente es un miembro de. Para que esta característica funcione el método de línea se debe establecer en Manual o Entrantes_MAN marcado Hopper y no debe estar activado. El valor predeterminado es NINGUNO para discapacitados. + + 0) + { + ?> +
+
+
+ Agente Seleccione territorios - Si esta opción está activada y el agente pertenece a al menos un territorio, el agente tendrá la opción de selección de territorios a los cables de línea. El agente podrá ver una lista de los territorios disponibles a inicio de sesión y tendrán la capacidad de volver a la lista territorio cuando se detuvo a cambiar sus territorios. Para esta función a la labor del único dueño de marcado opción debe configurarse con el territorio y territorios de usuario debe estar habilitado en la configuración del sistema. + + +
+
+
+ Mezcla de la orden de la lista - elimina los campos de la orden delplomo y del estado del dial. Utilizará los parámetros de la lista ydel estado para la entrada seleccionada de la mezcla de la lista en lasección del submarino de la mezcla de la lista en lugar de otro. Eldefecto es LISIADO. + +
+
+
+ Identificación de la mezcla de la lista - identificación de lamezcla de la lista. Debe ser a partir de 2-20 caracteres en longitudsin los espacios o la otra puntuación especial. + +
+
+
+ Nombre de la mezcla de la lista - nombre descriptivo de la mezcla dela lista. Debe ser a partir de 2-50 caracteres en longitud. + +
+
+
+ Detalle de la mezcla de la lista - la composición de la entrada de lamezcla de la lista. Contiene la identificación de la lista, la ordende la mezcla, los porcentajes y los estados que hacen para arriba estamezcla de la lista. Los porcentajes tienen que agregar siempre hasta100, y las listas todas tienen que ser activas y fijadas a la campañapara que la entrada de la mezcla de la orden sea activada. + +
+
+
+ Método de la mezcla de la lista - el método de mezclar a todas laspartes del detalle de la mezcla de la lista juntas. EVEN_MIX mezclarálos plomos de cada parte interpolada con las otras partes, como estos1.2.3.1.2.3.1.2.3. IN_ORDER pondrá los plomos en la orden en la cualse enumeran en la pantalla 1.1.1.2.2.2.3.3.3 del detalle de la mezclade la lista. La voluntad AL AZAR los puso en la orden AL AZAR1.3.2.1.1.3.2.1.3. El defecto es IN_ORDER. + +
+
+
+ Agente de pantalla ampliada Alt Dial - Esta característica permite a los agentes el acceso ampliado a los números de teléfono de suplentes lleva más allá de la norma Alt Teléfono y Address3 campos que pueden ser utilizados en VICIDIAL más allá de los números de teléfono de los principales número de teléfono. La extensión números de teléfono se puede marcar automáticamente utilizando la auto-Alt-función Marcación VICIDIAL en la configuración de la campaña, pero activar esta función de agente de pantalla también permitirá que el agente a llamar a estos números de la pantalla de su mandatario, así como editar su información. + +
+
+
+ Primera encuesta de archivo de audio - Este es el nombre de archivo de audio que se reproduce en cuanto el cliente coge el teléfono cuando se ejecuta una campaña de estudio. + +
+
+
+ Encuesta dígitos DTMF - Este campo es donde se define los dígitos que un cliente puede pulsar como una opción en una encuesta sobre la campaña. válidos son los dígitos DTMF0123456789*#. Todas las opciones excepto la no interesados, Tercera y Cuarta opciones de dígitos se trasladará a la ruta de la llamada método de encuesta. + +
+
+
+ No encuesta interesadas dígitos - Este campo es donde se define el cliente presiona dígitos que indican que no están interesados. + +
+
+
+ Estudio de estado no le interesa - Este es un campo en el que seleccione el estado que debe utilizarse para no estoy interesado. Si se utiliza DNC y la campaña está configurada para utilizar DNC entonces el número de teléfono se añade automáticamente a la lista VICIDIAL interior DNC.y, posiblemente, la campaña específica de DNC lista. + +
+
+
+ Encuesta de Opt-in de archivos de audio - Este es el nombre de archivo de audio que se reproduce cuando el cliente ha decidido participar en la encuesta, no esta opción, o no respondió si la respuesta no-acción se establece a OptOut. Después de este archivo de audio se reproduce, el método de encuesta se toman medidas. + +
+
+
+ No encuesta interesadas archivo de audio - Este es el nombre de archivo de audio que se reproduce cuando el cliente ha optado-de la encuesta, no ha optado-o no respondió si la respuesta no-acción se establece en OptIn. Después de este archivo de audio se reproduce, la llamada se colgó. + +
+
+
+ Método de encuesta - Esta opción se define lo que sucede a una convocatoria después de que el cliente ha optado-en. AGENT_XFER enviará la convocatoria a la siguiente agente disponible. Buzón de voz se envía la llamada al buzón de voz de la caja que se especifica en el campo de voz. EXTENSIÓN enviará al cliente a la extensión se define en la Encuesta Xfer campo Extensión. Colgar se cuelgue el cliente. CAMPREC_60_WAV enviará al cliente a tener una grabación con su respuesta, esta grabación se coloca en una carpeta con el nombre de la campaña dentro de la Campaña de Estudio de grabación Directorio. + +
+
+
+ Estudio n-Respuesta Acción - Este es donde se define lo que ocurrirá si no hay respuesta a la pregunta de la encuesta. OptIn sólo enviar la llamada al método de encuesta si el cliente pulsa una dígitos DTMF. OptOut enviará al cliente en el método de encuesta, aun cuando no presiona una dígitos DTMF. + +
+
+
+ Respuesta encuesta dígitos Mapa - Esta es la sección donde usted puede definir una descripción para ir dígitos DTMF con cada opción que el cliente puede seleccionar. + +
+
+
+ Encuesta Xfer Extensión - Si el método de encuesta de EXTENSIÓN se selecciona entonces la llamada de cliente se dirige a esta extensión dialplan. + +
+
+
+ Estudio de grabación Campaña Directorio - Si el método de encuesta de CAMPREC_60_WAV luego se selecciona la respuesta de los clientes se registran y se coloca en un directorio llamado después de la campaña dentro de este directorio. + +
+
+
+ Encuesta tercer dígito - Esto permite una ruta de la tercera convocatoria, si el tercer dígito tal como se define en este campo es presionado por el cliente. + +
+
+
+ Digit Cuarta Encuesta - Esto permite una ruta cuarta convocatoria, si la cuarta cifra tal como se define en este campo es presionado por el cliente. + +
+
+
+ Tercera Encuesta de archivos de audio - Este es el archivo de audio tercero que se jugó con la selección por parte del cliente de la opción del tercer dígito. + +
+
+
+ Tercera Encuesta de Situación - Esta es la situación de terceros utilizado para la convocatoria a la selección por parte del cliente de la opción del tercer dígito. + +
+
+
+ Tercer Estudio de Extensión - Esta es la tercera ampliación utilizados para el llamado a la selección por parte del cliente de la opción del tercer dígito. El valor predeterminado es 8300 que inmediatamente se cuelga la llamada después de que se jugó el mensaje de audio de archivo. + +
+
+
+ Agente de pantalla Dialable Leads - Esta opción se mostrará si está habilitado el número de derivaciones dialable disponibles en la campaña en la pantalla del agente. Este segundo número se actualiza en el sistema una vez por minuto y se actualiza en la pantalla del agente por cada par de. + + + +
+
+
+ Llamada siguiente del agente - esto se determina qué agente recibe la llamada siguiente que está disponible: +
  - random: órdenes por el valor al azar de la actualización en la tabla de los vicidial_live_agents +
  - oldest_call_start: 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. +
  - oldest_call_finish: 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. +
  - 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. +
  - campaign_rank: órdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. +
  - fewest_calls: órdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
  - longest_wait_time: pedidos por la cantidad de tiempo que el agente ha estado activamente la espera de una llamada de. + +
+
+
+ Tiempo de la llamada local - 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. + +
+
+
+ Prefijo del dial - 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 dial plan - extensions.conf. + +
+
+
+ Omita el código del teléfono - este campo permite que usted dejehacia fuera el campo del phone_code mientras que marca dentro deVICIDIAL. Por ejemplo si usted está marcando en el Reino Unido delReino Unido usted tendría 44 adentro como su campo del phone_codepara todos los plomos, pero usted apenas desea marcar 10 dígitos ensu extensions.conf dial plan para poner llamadas en vez de 44 entonces10 dígitos. El defecto es N. + +
+
+
+ Campaña CallerID - 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. + +
+
+
+ Extensión de Rec de la Campaña - 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. + +
+
+
+ Grabación de la campaña - este menú permite que usted elija quénivel de la grabación se permite en esta campaña. NUNCAinhabilitará la grabación en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabación en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabación en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opción para parar el registrar. ParaALLCALLS y ALLFORCE hay una opción para utilizar la grabaciónretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. + +
+
+
+ Nombre de fichero de Rec de la campaña - 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_AGENTE y parecería este 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que parecería este TESTCAMP_51020103108_3125551212. 50 char max. + +
+
+
+ La registración retrasa - para la grabación de ALLCALLS y deALLFORCE solamente. Esta voluntad del ajuste retrasa comenzar de lagrabación en todas las llamadas para el número de los segundosespecificados en este campo. El defecto es 0. + +
+
+
+ Escritura de la campaña - 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. + +
+
+
+ Consiga el lanzamiento de la llamada - 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. + +
+
+
+ Xfer-Conf DTMF - Estos cuatro campos permiten que usted tenga dos conjuntos de transferencia de la Conferencia y presets DTMF. Cuando se carga la llamada o de la campaña, la secuencia de comandos vicidial.php mostrará dos botones en el marco de la transferencia de conferencias y rellenará de forma automática el número a marcar y el enviar los campos DTMF cuando se presiona. Si desea permitir Consultivo transferencias, un Fronter a una mayor, que el agente utiliza la casilla de consulta, que no funciona por falta de terceros Vicidial llamadas de consulta. Para aquellos que sólo tienen el agente, haga clic en el dial con el botón del cliente. Entonces, el agente puede dejar-3way-CALL y pasar a la siguiente llamada. Si desea permitir la transferencia ciega de los clientes a una secuencia de comandos AGI Vicidial para el registro o un IVR, a continuación, AXFER lugar en el número a marcar el terreno. También puede especificar una extensión personalizada después de la AXFER, por ejemplo, si usted quiere hacer una llamada a un IVR especiales que se han fijado a la extensión 83900 pondrías AXFER83900 en el número a marcar el terreno. + +
+
+
+ Rápida transferencia Button - Esta opción agrega un botón de la transferencia rápida a la pantalla por debajo de la agente de transferencia de botón Conf. que permitirá la transferencia de un solo clic ciego de llamadas a los seleccionados en Grupo o un número. IN_GROUP enviará pide al Grupo de Xfer predeterminado para esta campaña, o en grupo-si hay una llamada entrante. Las opciones predeterminadas enviará las llamadas a los preset seleccionado. Por defecto es n para discapacitados. + +
+
+
+ Transferencia de rellenar previamente Preset - Esta opción le proporcione el número telefónico al campo en el marco de la Conferencia de transferencia de la pantalla si el agente definido. Por defecto es n para discapacitados. + +
+
+
+ Temporizador de Acción de - Esta característica le permite activar acciones después de una cierta cantidad de tiempo. D1 y D2 opciones de marcación lanzará un llamamiento a la transferencia de presets Conferencia Número y enviarlos a la sesión del agente, éste se utiliza generalmente para aplicaciones sencillas de validación IVR AGI o simplemente para jugar un mensaje pregrabado. WebForm se abrirá la dirección de formulario web. MESSAGE_ONLY simplemente mostrará el mensaje de que está en el campo de abajo. Ninguna de ellas podrá deshabilitar esta característica y es el predeterminado. + +
+
+
+ Temporizador de mensaje de acción - Este es el mensaje que aparece en la pantalla del agente en el momento de la acción del temporizador se dispara. + +
+
+
+ Temporizador Segundos Acción - Esta es la cantidad de tiempo después de la llamada se conecta a los clientes que se desencadena la acción del temporizador. El valor predeterminado es -1, que también está inactivo. + +
+
+
+ Servicios repetidos programar - 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. + +
+
+
+ Segundos de Wrap Up - 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. + +
+
+
+ Mensaje de Wrap up - esto es un mensaje campaña-especi'fico que seexhibirá en la pantalla del wrapup si se fijan los segundos delwrapup. + +
+
+
+ Lista interna del uso DNC - 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. La opción codigoDeArea es como la opción-y, excepto que se utiliza para filtrar también un código de área en toda América del Norte desde que se está marcando, en este caso mediante la entrada en la lista 201XXXXXXX DNC podría bloquear todas las llamadas a los 201 codigoDeArea si está habilitada. + +
+
+
+ Campaña de uso Lista DNC - Este define si esta campaña es un filtro contra el DNC lleva lista que es específico de la campaña únicamente. Si se configura a Y, la tolva se verá para cada número de teléfono en la campaña específica de DNC lista antes de colocarla en la tolva. Si es en la campaña específica de DNC se lista a continuación, cambiar de estado que llevan a DNCC por lo que no pueden ser marcados. El valor por defecto es N. La opción codigoDeArea es como la opción-y, excepto que se utiliza para filtrar también un código de área en toda América del Norte desde que se está marcando, en este caso mediante la entrada en la lista 201XXXXXXX DNC podría bloquear todas las llamadas a los 201 codigoDeArea si está habilitada. + +
+
+
+ Grupos De entrada Permitidos - 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. + +
+
+
+ La pausa del agente cifra activo - permite que los agentes seleccionenun código de la pausa cuando chascan encendido el botón de PAUSA envicidial.php. Los códigos de la pausa son definibles por campaña enel fondo de la pantalla del detalle de la opinión de la campaña y sealmacenan en la tabla del vicidial_agent_log. El defecto es N. Fuerza de la fuerza de los agentes para elegir un código PAUSA si hacen clic en el botón PAUSA. + +
+
+
+ Inhabilite alteran datos del cliente - si el sistema a Y, no cambiacualquiera del expediente de datos del cliente cuando lasdisposiciones de un agente la llamada. El defecto es N. + +
+
+
+ Deshabilitar Modificar Cliente Teléfono - Si se pone a Y, no cambia el número de teléfono del cliente, cuando un agente disposiciones de la llamada. Y es por defecto. Utilice la opción Ocultar para eliminar completamente el número de teléfono del cliente de la pantalla del agente de. + +
+
+
+ Agente Mostrar cola Conde - Si se establece a Y, cuando un cliente está a la espera de un agente, la cola de llamadas en la pantalla superior de la pantalla agente se iluminará en rojo y muestran el número de llamadas en espera. Y es por defecto. + +
+
+
+ Identificación manual de la lista del dial - el list_id del defectoque se utilizará cuando los placces de un agente una llamada manual yun nuevo expediente del plomo se crean en vicidial_list. El defecto es999. Este campo puede contener dígitos solamente. + +
+
+
+ Manual de Acceso telefónico Filtro - Esto le permite filtrar las llamadas que hacen los agentes en el dial de modo de manual para esta campaña por cualquier combinación de los siguientes: DNC - a expulsar, CAMPAIGNLISTAS - el número debe estar dentro de las listas para la campaña, NINGUNA - sin filtro en el manual de marcación rápida o de marcación listas. + +
+
+
+ Agente de pantalla Portapapeles Copiar - esta función por el momento sólo se han permitido para Internet Explorer. Esta característica le permite seleccionar un campo que será copiado al portapapeles el equipo del agente ordenador a una llamada que se envían a un agente. Usos comunes para ello son para permitir la fácil pegar los números de cuenta o números de teléfono en el legado de las aplicaciones cliente en el equipo agente. + +
+
+
+ 3-Vías de salida de llamadas CallerID - Esto define lo que es enviado como el número de callerID salida de 3 vías llamadas realizadas por el agente, la costumbre CAMPAÑA usos callerID campaña, el cliente utiliza el número de cliente que está activa en la pantalla y los agentes AGENT_PHONE utiliza el callerID el teléfono para que el agente se registra en. AGENT_CHOOSE permite elegir el agente que callerID utilizar para llamadas de 3 vías a partir de una lista de opciones. + +
+
+
+ 3-Vías de llamadas Prefijo telefónico - Esto define lo que se utiliza como prefijo de marcación para las llamadas de 3 vías, por defecto está vacío por lo que la campaña se utiliza el prefijo de marcación, por lo que puede passthru oye un pitido es de 88. + + 0) + { + ?> +
+
+
+ CC Activado - Configuración Y a este campo permite que el agente de control de calidad de elementos de trabajo. El valor predeterminado es N. + +
+
+
+ CC estados - Esta zona es donde se selecciona el que lleva de estados debe ser pasado por el sistema de CC. Coloque una marca de verificación junto a la situación que desea revisar CC. + +
+
+
+ CC Mayúsculas - Este es el paso de tiempo utilizado para tirar de registros de control de calidad para una campaña. Los días de la semana no se tienen en cuenta para estas funciones. + +
+
+
+ CC Obtener Registro de lanzamiento- Esto permite que una de las siguientes acciones, que se activará en un agente de control de la calidad de recibir un nuevo registro. + +
+
+
+ Mostrar control de la calidad de grabación - , lo que permite una grabación que puede estar vinculado con el control de la calidad de registro que se mostrará en pantalla el agente de control de calidad. + +
+
+
+ CC Webform Dirección - Esta es la dirección del sitio web que un agente de control de calidad puede ir a al hacer clic en el enlace Formulario de Asistencia en la pantalla de control de calidad. + +
+
+
+ CC Escritura - Este es el script que puede ser utilizada por agentes de control de la calidad en la secuencia de comandos en la ficha de CC pantalla. + + +
+
+
+ Buscar Vtiger Categoría - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si vtiger_search.php la página de búsqueda para el número de teléfono que se inscribió. Hay 4 opciones que pueden utilizarse en este campo: LEAD-Esta opción de búsqueda a través de la Vtiger sólo conduce, CUENTA-Esta opción de búsqueda a través de las cuentas y Vtiger todos los contactos y sub-contactos para el número de teléfono, VENDEDOR-Esta opción sólo a través de la búsqueda Vtiger vendedores, ACCTID-Esta opción sólo funciona para las cuentas y que se llevará a vicidial vendor_lead_code el campo y tratar de buscar el ID de cuenta Vtiger. Si se intenta sin éxito que cualquier otro método que la lista que ha seleccionado. Múltiples opciones pueden ser utilizados para cada búsqueda, pero en grandes bases de datos no es recomendable. El valor predeterminado es PLOMO. UNIFIED_CONTACT-Esta opción se utiliza la versión beta 5.1.0 Vtiger función para buscar por número de teléfono y acceder a la página de búsqueda en Vtiger. + +
+
+
+ Vtiger Buscar Dead Cuentas - Si la integración Vtiger está activado en la configuración del sistema a continuación, esta configuración definirá si las cuentas eliminadas se buscará, cuando el agente clics WEB forma de buscar en el sistema Vtiger. Con discapacidad conduce eliminados no se buscará, ASK-lleva eliminado y se buscará la página de búsqueda Web vtiger solicitará al agente si quieren hacer la cuenta Vtiger activos, resucitar-hará la cuenta eliminada activa de nuevo y tomará las agente a la pantalla de cuenta sin demora al hacer clic en Formulario Webs. Desactivado por defecto. + +
+
+
+ Crear Vtiger Registro de llamadas - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si la nueva actividad Vtiger registro se crea para la llamada cuando el agente va a la página vtiger_search. Y es por defecto. La opción de DISPO creará un registro de llamadas para la cuenta de Vtiger sin que el agente que necesitan para ir a la página de búsqueda a través de vtiger el formulario Web. + +
+
+
+ Crear Vtiger plomo Expediente - Si está habilitado Vtiger integración en la configuración del sistema y Vtiger Búsqueda Categoría incluye PLOMO entonces esta configuración definirá si un nuevo registro de conducir Vtiger es creada cuando el agente va a la página vtiger_search y no se registro determinó que la llamada número de teléfono. Y es por defecto. + +
+
+
+ Pantalla de inicio de sesión Vtiger - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si el usuario está conectado a la interfaz automáticamente Vtiger los usuarios cuando ingresan a VICIDIAL. Y es por defecto. La opción de NEW_WINDOW se abrirá una nueva ventana en la pantalla de login para el agente Vicidial. + +
+
+
+ Vtiger Estado de llamada - Si la integración Vtiger está activado en la configuración del sistema a continuación, esta configuración definirá si la situación de la Cuenta Vtiger se actualizará con el estado de la llamada Vicidial después de haber sido dispositioned. Por defecto es n. + +
+
+
+ CRM Popup Login - Si se establece en Y, la Dirección de Popup CRM se utiliza para abrir una nueva ventana de inicio de sesión agente a esta campaña. Por defecto es n. + +
+
+
+ CRM Dirección Popup - La dirección en Internet de una página de acceso de CRM, puede tener las variables de población como la dirección de formulario web, con el VAR en el frente y con la opción - A - user_custom_one - B - para definir variables. + +
+
+
+ Iniciar llamada URL - Esta web dirección URL no es visto por el agente, sino que es llamado cada vez que una llamada se envía a un agente si se poblaron. Utiliza las mismas variables que los campos de formulario web y scripts. Esta URL no puede ser una ruta relativa. La URL de inicio no funciona para las llamadas de marcación manual. Por defecto está en blanco. + +
+
+
+ Dispo Call URL - Esta web dirección URL no es visto por el agente, sino que es llamado cada vez que una llamada es dispositioned por un agente, si se poblaron. Utiliza las mismas variables que los campos de formulario web y scripts. dispo y talk_time son las variables que puede utilizar para recuperar el agente definido por la disposición de la llamada y el tiempo de conversación real en segundos de la llamada. Esta URL no puede ser una ruta relativa. Por defecto está en blanco. + +
+
+
+ Grupo Alias permitidas - Si desea permitir que su grupo de agentes a utilizar alias, entonces necesita hacer esto a Y. Grupo Alias se explican más en la sección de administración, permiten a los agentes para seleccionar diferentes callerIDs para llamadas salientes manual que se puede colocar. El valor predeterminado es N. + +
+
+
+ Grupo Alias predeterminado - Si han permitido Grupo Alias este es el grupo de alias que se ha seleccionado en primer lugar, por defecto cuando el agente decide usar un alias para un grupo de salida manual de llamada. El valor por defecto es vacío o NINGUNA. + +
+
+
+ Agente Pide Ver en cola - Si se pone a nada, pero NINGUNO, los agentes podrán consultar los detalles de las llamadas que están esperando en la cola en la pantalla de su agente. Si se establece en un valor de número, las llamadas que aparecerá será limitada al número seleccionado. El valor predeterminado es NINGUNO. + +
+
+
+ Ver las llamadas en cola de lanzamiento - Este ajuste, si en AUTO tendrá las convocatorias en el marco de la cola aparecen en inicio de sesión por el agente en la pantalla del agente. El valor predeterminado es MANUAL. + +
+
+
+ Agente Pide Agarre en cola - Esta opción si se define Y permitirá que el agente para seleccionar la llamada que desea tomar de las llamadas en la pantalla de la cola haciendo clic en él durante la pausa. Los agentes sólo podrán coger las llamadas entrantes o las llamadas transferidas, las llamadas no de salida. Por defecto es n. + +
+
+
+ Agente de Call Re-Cola Button - Esta opción si se define Y agregará un botón Re-cliente de la cola a la pantalla del agente, permite a las agencias para enviar la llamada en una cola de AGENTDIRECT que está reservado para el único agente. Por defecto es n. + +
+
+
+ Agente de pausa después de cada llamada - Esta opción si se define como Y hará una pausa en el agente después de cada llamada automáticamente. Por defecto es n. + + + + + +



+ + VICIDIAL_LISTAS TABLA

+
+
+ Identificación de la lista - Ú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. Must be a number greater than 100. + +
+
+
+ Nombre de la lista - Ésta es la descripción de la lista, debe estar entre 2 y 20 caracteres en longitud. + +
+
+
+ Descripción de la lista - éste es el campo de la nota para la lista,él es opcional. + +
+
+
+ Fecha del cambio de la lista - ésta es la vez última que los ajustespara esta lista fueron modificados de cualquier manera. + +
+
+
+ Fecha de la llamada del último de la lista - ésta es la vez últimaque conduce fue marcado de esta lista. + +
+
+
+ Campaña - Ésta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente. + +
+
+
+ Activo - esto define si la lista debe ser marcada encendido o no. + +
+
+
+ Reajuste el Conducir-Llamar-Estado para esta lista - 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. + +
+
+
+ Perdí Times - Este campo le permite poner veces, separados por un guión, que esta lista se restablece automáticamente por el sistema. Los tiempos deben estar en formato de 24 horas sin puntuacion, por ejemplo 0800-1700 se restablecer la lista de las 8 AM y las 5 PM todos los días. Por defecto está vacío. + +
+
+
+ Agente de secuencias de comandos Reemplazar - Si se establece este campo, esta será la secuencia de comandos que el agente ve en su pantalla en lugar de la secuencia de comandos de campaña cuando la ventaja es de esta lista. Por defecto no se establece. + +
+
+
+ Campaña CID Override - Si se establece este campo, que reemplazarán la campaña CallerID que se establece para las llamadas que se colocan a la cabeza en esta lista. Por defecto no se establece. + +
+
+
+ Contestador automático de mensajes Override - Si se establece este campo, esto anulará el mensaje de contestador automático situado en la campaña para los clientes en esta lista. Por defecto no se establece. +
+
+
+ Drop de entrada Grupo de Override - Si se establece este campo, en este grupo se utilizará para las llamadas salientes dentro de esta lista que la caída de la campaña de salida en lugar de la caída en grupo situado en la pantalla de detalle de la campaña. Por defecto no se establece. + +
+
+
+ Xfer-Conf Número Override - Estos cinco campos permiten reemplazar la transferencia de presets Conferencia número cuando la iniciativa es de esta lista. Por defecto está en blanco. + + +
+
+
+ Lista DNC VICIDIAL - Esta lista de No Llamar contiene cada lugar que se ha establecido en un estado de la DNC en el sistema. A través de la LISTAS - AÑADIR AL NÚMERO DNC página usted puede agregar manualmente los números de esta lista a fin de que no van a ser llamados por las campañas que utilizan la lista interna DNC. También existe la opción de añadir conduce a la campaña específica de DNC listas para esas campañas que les han. Si usted tiene la opción de DNC activas de codigoDeArea a continuación, usted también puede usar el código de entradas de la zona este 201XXXXXXX como comodín para bloquear todas las llamadas a los 201 codigoDeArea cuando está activado. + + + +



+ + VICIDIAL_Entrantes_GROUPS TABLA

+
+
+ Identificación de grupo - Ú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. + +
+
+
+ Nombre de grupo - Ésta es la descripción del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios . + +
+
+
+ Color del grupo - é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. + +
+
+
+ Activo - esto se determina si este grupo demuestra para arriba en la caja de la selección cuando un agente de VICIDIAL entra. + +
+
+
+ Forma del Web - É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. + +
+
+
+ Llamada siguiente del agente - esto se determina qué agente recibe la llamada siguiente que está disponible: +
  - random: órdenes por el valor al azar de la actualización en la tabla de los vicidial_live_agents +
  - oldest_call_start: 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. +
  - oldest_call_finish: 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. +
  - 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. +
  - inbound_group_rank: órdenes de la fila dada al agente para el grupode entrada específico. Lo más arriba posible a lo más bajo posible. +
  - fewest_calls: órdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
  - campaign_rank: órdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: pedidos por la cantidad de tiempo que el agente ha estado activamente la espera de una llamada de. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Exhibición de Fronter - 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. + +
+
+
+ Escritura de la campaña - 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. + +
+
+
+ Consiga el lanzamiento de la llamada - 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. + +
+
+
+ Xfer-Conf DTMF - Estos cuatro campos permiten que usted tenga dos conjuntos de transferencia de la Conferencia y presets DTMF. Cuando se carga la llamada o de la campaña, la secuencia de comandos vicidial.php mostrará dos botones en el marco de la transferencia de conferencias y rellenará de forma automática el número a marcar y el enviar los campos DTMF cuando se presiona. Si desea permitir Consultivo transferencias, un Fronter a una mayor, que el agente utiliza la casilla de consulta, que no funciona por falta de terceros Vicidial llamadas de consulta. Para aquellos que sólo tienen el agente, haga clic en el dial con el botón del cliente. Entonces, el agente puede dejar-3way-CALL y pasar a la siguiente llamada. Si desea permitir la transferencia ciega de los clientes a una secuencia de comandos AGI Vicidial para el registro o un IVR, a continuación, AXFER lugar en el número a marcar el terreno. También puede especificar una extensión personalizada después de la AXFER, por ejemplo, si usted quiere hacer una llamada a un IVR especiales que se han fijado a la extensión 83900 pondrías AXFER83900 en el número a marcar el terreno. + +
+
+
+ Temporizador de Acción de - Esta característica le permite activar acciones después de una cierta cantidad de tiempo. D1 y D2 opciones de marcación lanzará un llamamiento a la transferencia de presets Conferencia Número y enviarlos a la sesión del agente, éste se utiliza generalmente para aplicaciones sencillas de validación IVR AGI o simplemente para jugar un mensaje pregrabado. WebForm se abrirá la dirección de formulario web. MESSAGE_ONLY simplemente mostrará el mensaje de que está en el campo de abajo. Ninguna de ellas podrá deshabilitar esta característica y es el predeterminado. Esta configuración anula la configuración de la campaña. + +
+
+
+ Temporizador de mensaje de acción - Este es el mensaje que aparece en la pantalla del agente en el momento de la acción del temporizador se dispara. + +
+
+
+ Temporizador Segundos Acción - Esta es la cantidad de tiempo después de la llamada se conecta a los clientes que se desencadena la acción del temporizador. El valor predeterminado es -1, que también está inactivo. + +
+
+
+ Llame a gota Segundos - el número de segundos de una llamada se quedará en la cola antes de ser considerado uno de DROP. + +
+
+
+ Acción gota - Este menú le permite elegir lo que le sucede a una llamada cuando se ha estado esperando durante más de lo establecido en la Convocatoria de caída Segundos campo. Colgar simplemente colgar la llamada, enviar el mensaje de llamar a la Extensión de caída que ha definido a continuación, Buzón de voz se envía la llamada a la casilla de voz que ha definido a continuación y IN_GROUP enviará la convocatoria a la entrada del Grupo que se define a continuación. + +
+
+
+ Caída Extensión - En caso de caída de acción se fija a un mensaje, este es el dial plan de ampliación que la convocatoria se enviará a si llega a soltar Convocatoria Segundos. + +
+
+
+ Buzón de Voz - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+
+
+ Grupo de Transferencia de gota - En caso de caída de Acción se establece en IN_GROUP, la llamada será enviada a este grupo entrantes si llega a soltar Convocatoria Segundos. + +
+
+
+ Tiempo de la llamada - éste es el esquema del tiempo de la llamada autilizar para este grupo de entrada. Tenga presente que el tiempoestá basado en el tiempo del servidor. El defecto es 24hours. + +
+
+
+ Horas después de Acción - La acción para llevar a cabo si es después de horas, tal como se definen en el tiempo de atención para este grupo entrante. Colgar inmediatamente colgar la llamada, MESSASGE de reproducir el archivo en el mensaje después de las horas Filenam campo, EXTENSIÓN enviará la llamada a la extensión del horario en el dialplan de voz y se envía la llamada al buzón de voz que figuran en el cuadro Después de horas de voz sobre el terreno , IN_GROUP enviará la convocatoria a la entrada seleccionada en el grupo después de las horas Grupo de Transferencia de seleccionar la lista. El valor predeterminado es MENSAJE. + +
+
+
+ Después del nombre de fichero del mensaje de las horas - el archivoaudio situado en el servidor que se jugará si la acción se fija alMENSAJE. El defecto es VM-ADIO'S + +
+
+
+ Después de la extensión de las horas - la extensión dialplan paraenviar la llamada si la acción se fija a la EXTENSIÓN. El defecto es8300. + +
+
+
+ Después de las horas Buzón de Voz - la caja del voicemail para enviar lallamada si la acción se fija a VOICEMAIL. + +
+
+
+ Horas después de la transferencia Grupo - Si después de las horas de Acción se establece en IN_GROUP, la llamada será enviada a este grupo de entrada si ésta entra en el grupo de fuera de la convocatoria régimen de tiempo definido para el grupo en -. + +
+
+
+ N de colas n Agentes - Si este campo está establecido en Y o NO_PAUSED entonces no se pide se pondrá en la cola de este grupo en si no hay agentes conectado y las llamadas se vaya a la agente n Ninguna acción de la cola. La opción NO_PAUSED no se envían también las personas que llaman a la cola si sólo hay una pausa en los agentes en el grupo. Por defecto es n. + +
+
+
+ No No Acción cola de agente - Si está activada ninguna cola Ningún Agente, entonces este campo se define en la llamada pasará si no hay agentes en la A-Group. Por defecto es el mensaje, este reproduce los archivos de sonido en el campo el valor de acción y luego cuelga el. + +
+
+
+ No hay ninguna cola Acción Agente Valor - Este es el valor de la acción anterior. El valor predeterminado es nbdy-avail-to-take-call|vm-goodbye. + +
+
+
+ Nombre de fichero agradable del mensaje - el archivo audio situado enel servidor que se jugará cuando viene la llamada adentro. Si sistemaa ---NONE --- entonces no se jugará ningún mensaje. El defecto es---NONE ---. Este campo como con los otros campos de audio en In-grupos, con la excepción del nombre de archivo de alerta de agente, puede tener múltiples archivos de audio reproducido si se pone un tubo de lista separada de los archivos de audio en el campo. + +
+
+
+ Reproducir Mensaje de Bienvenida - Esta configuración seleccione para jugar cuando se define el mensaje de bienvenida, SIEMPRE desempeñará cada vez, NUNCA nunca jugar, IF_WAIT_ONLY sólo reproducirá el mensaje de bienvenida si la llamada no ir inmediatamente a un agente , y siempre YES_UNLESS_NODELAY reproducir el mensaje de bienvenida NO_DELAY menos que el ajuste está activado. El valor predeterminado es SIEMPRE. + +
+
+
+ Música en contexto del asimiento - la música en el contexto delasimiento para utilizar cuando colocan al cliente en asimiento. Eldefecto es defecto. + +
+
+
+ En el nombre de fichero del aviso del asimiento - el archivo audiosituado en el servidor que se jugará en un intervalo regular cuandoel cliente está en asimiento. El defecto es generic_hold. Estearchivo audio DEBE estar 9 segundos o menos en longitud. + +
+
+
+ En el intervalo del aviso del asimiento - la longitud de la hora ensegundos de esperar antes de jugar encendido el aviso del sostener. Eldefecto es 60. Para desactivar la espera El símbolo, definir el intervalo a 0. + +
+
+
+ Lugar jugar en línea - Este define si la persona que llama escuchará su lugar en la línea cuando entran en la cola, así como cuando escuchan la announcemend. El valor predeterminado es N. + +
+
+
+ Juega Mantenga Tiempo estimado - Este define si la persona que llama escuchará la estimación de tiempo de espera antes de ser transferido a un agente. El valor predeterminado es N. Si el cliente está en espera y escucha este mensaje de tiempo de espera estimado, el tiempo mínimo que se jugará es de 15 segundos. + +
+
+
+ Mantenga la opción Tiempo - Esto le permite especificar la ruta de la llamada si el tiempo de espera estimado es superior a la cantidad de segundos que se especifican a continuación. El valor predeterminado es NINGUNA. + +
+
+
+ Mantenga la opción Tiempo Segundos - Si el tiempo de la opción se establece en algo, pero ninguno, este es el número de segundos de tiempo de espera estimado que el tiempo de activar la opción. El valor por defecto es 360 segundos. + +
+
+
+ Mantenga la opción Tiempo de Extensión - Si el tiempo de la opción se fija a la extensión, esta es la extensión dialplan que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. + +
+
+
+ Mantenga la opción Tiempo de voz - Si el tiempo de la opción está establecida en voz, esta voz es la caja que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. + +
+
+
+ Opción de Transferencia de celebrar Tiempo-Grupo A - Si el tiempo de la opción está establecida en IN_GROUP, este es el grupo de entrada que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos. + +
+
+
+ Mantenga la opción Tiempo de llamada de archivo - Si el tiempo de la opción está establecida en CALLERID_CALLBACK, este es el símbolo del nombre de archivo que se juega antes de la llamada se registra como un nuevo lugar a la lista de identificación se especifican a continuación si el tiempo de espera estimado es superior a la Mantenga la opción Tiempo Segundos. + +
+
+
+ Mantenga la opción Tiempo de llamada Lista ID - Si el tiempo de la opción está establecida en CALLERID_CALLBACK, esta es la lista de ID de la llamada, se añadirá como un nuevo lugar si el tiempo de espera estimado es superior a la opción Tiempo de Espera Segundos. + +
+
+
+ Agente de Alerta Nombre de archivo - El archivo de audio a jugar a un agente de anunciar que una llamada está llegando a su agente. Para no utilizar esta función establezca este valor por defecto es a X. Ding. + +
+
+
+ La alarma del agente retrasa - la longitud de la hora en milisegundosde esperar antes de enviar la llamada al agente después de jugarencendido la extensión alerta del agente. El defecto es 1000. + +
+
+
+ Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. + +
+
+
+ En el Grupo de grabación Sobreescribe - Este campo permite la superposición de la campaña llamada de ajuste de grabación. Este ajuste puede ser anulado por la grabación vicidial_user sobre el establecimiento. MINUSVALIDOS no anular la campaña de ajuste de grabación. NUNCA deshabilitará la grabación en el cliente. OnDemand es el valor por defecto y permite que el agente para iniciar y detener la grabación cuando sea necesario. ALLCALLS empezará a grabar en el cliente cuando se envía una llamada a un agente. ALLFORCE empezará a grabar en el cliente cuando se envía una llamada a un agente que el agente de ninguna opción para detener la grabación. + +
+
+
+ En Nombre de archivo del grupo de grabación - Este campo sobre la Campaña de grabación régimen de nombramiento de ficheros si no está definido en ninguno. La variables son permitidos CAMPAÑA CUSTPHONE FULLDATE TINYDATE EPOCH AGENTE. El valor por defecto es FULLDATE_AGENTE y se vería así 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que se vería así TESTCAMP_51020103108_3125551212. 50 caracteres máx. El valor predeterminado es NINGUNA. + + 0) + { + ?> +
+
+
+ CC Activado - Configuración Y a este campo permite que el agente de control de calidad de elementos de trabajo. El valor predeterminado es N. + +
+
+
+ CC estados - Esta zona es donde se selecciona el que lleva de estados debe ser pasado por el sistema de CC. Coloque una marca de verificación junto a la situación que desea revisar CC. + +
+
+
+ CC Mayúsculas - Este es el paso de tiempo utilizado para tirar de un control de calidad para los registros inbound_group. Los días de la semana no se tienen en cuenta para estas funciones. + +
+
+
+ CC Obtener Registro de lanzamiento- Esto permite que una de las siguientes acciones, que se activará en un agente de control de la calidad de recibir un nuevo registro. + +
+
+
+ Mostrar control de la calidad de grabación - , lo que permite una grabación que puede estar vinculado con el control de la calidad de registro que se mostrará en pantalla el agente de control de calidad. + +
+
+
+ CC Webform Dirección - Esta es la dirección del sitio web que un agente de control de calidad puede ir a al hacer clic en el enlace Formulario de Asistencia en la pantalla de control de calidad. + +
+
+
+ CC Escritura - Este es el script que puede ser utilizada por agentes de control de la calidad en la secuencia de comandos en la ficha de CC pantalla. + + +
+
+
+ Recordatorio de Transferencia de celebrar en Grupo - Si un cliente pide de nuevo a este grupo en más de una vez y esto no está establecido en NINGUNO, entonces la llamada será automáticamente enviado al Grupo de In-seleccionado en este campo . El valor predeterminado es NINGUNA. + +
+
+
+ N Retraso de llamada Ruta - Configuración Y esto eliminará todos los tiempos de espera y anuncios de audio y tratar de enviar la llamada a un agente de la derecha. No anula el mensaje de bienvenida o celebrar la configuración rápida. El valor predeterminado es N. + +
+
+
+ Estadísticas Porcentaje de llamadas respondidas dentro de X segundos - Este campo le permite ajustar el número de segundos que tienen las estadísticas en tiempo real de la pantalla se utiliza para calcular el porcentaje de llamadas que fueron contestadas respuesta en el plazo de X número de segundos en espera. + +
+
+
+ Iniciar llamada URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank. + +
+
+
+ Dispo Call URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank. + +
+
+
+ Grupo Alias predeterminado - Si han permitido Alias Grupo para la campaña de que el agente se registra en este grupo es el alias que se ha seleccionado en primer lugar por incumplimiento de una llamada procedente de este grupo entrante cuando el agente decide usar un alias para un grupo de salida manual de llamada. El valor por defecto es vacío o NINGUNA. + + + + + +



+ + VICIDIAL_Entrantes_DIDS TABLA

+
+
+
+ Extensión DID - Este es el número, extensión o DID que hará que esta entrada y que va a la ruta en el sistema que utiliza esta función. Hay un DID reservados por defecto que puede utilizar que es sólo la palabra-por defecto-, sin los guiones, que permiten el envío de cualquier llamada que no coincida con cualquier otro de los modelos existentes por defecto DID. + +
+
+
+ Descripción DID - Esta es la descripción de la entrada de rutas DID. + +
+
+
+ DID activa - Este es el campo en el que configurar la entrada a DID activa o no. Y es por defecto. + +
+
+
+ Ruta DID - Este es el tipo de ruta que establezca el uso de DID. EXTEN enviará las llamadas a la extensión entró a continuación, enviará las llamadas de voz directamente a la caja de voz entró a continuación, AGENTE enviará las llamadas a un agente VICIDIAL si está conectado, TELÉFONO enviará la llamada a un teléfono de entrada, seleccione a continuación, se IN_GROUP enviar las llamadas directamente a la entrada del grupo especificado. El valor predeterminado es EXTEN. CALLMENU enviará la llamada a definir el menú de llamadas. + +
+
+
+ Extensión - Si se ha seleccionado como EXTEN DID la ruta, entonces esta es la extensión que llama dialplan se enviará a. El valor predeterminado es 9998811112, no hay servicio. + +
+
+
+ Extensión Contexto - Si se ha seleccionado como EXTEN DID la Ruta, este es el contexto en el que pide dialplan se enviará a. El valor por defecto es por defecto. + +
+
+
+ Buzón de voz Caja - Si se ha seleccionado como voz de la DID de carreteras, este es el buzón de voz que llama a la casilla se enviará a. Por defecto está vacío. + +
+
+
+ Teléfono Extensión - TELÉFONO Si está seleccionado como la Ruta de DID, entonces esta es la extensión del teléfono que las llamadas se enviarán a. + +
+
+
+ Teléfono IP del servidor - TELÉFONO Si está seleccionado como la Ruta de DID, entonces esta es la IP del servidor para la extensión del teléfono que las llamadas se enviarán a. + +
+
+
+ Llame Menú - CALLMENU Si se selecciona como la Ruta de DID, entonces este es el menú de llamada que las llamadas serán enviados a. + +
+
+
+ Agente de usuario - Si se ha seleccionado como Agente de la DID de carreteras, este es el Agente VICIDIAL pide que se enviará a. + +
+
+
+ Usuario no disponible Acción - Si se ha seleccionado como Agente de la Ruta de DID, y el usuario no está conectado o disponible, entonces este es el camino que las convocatorias se. + +
+
+
+ En Configuración de usuario Ruta-Grupo - Si se ha seleccionado como Agente de la DID de carreteras, este es el grupo en que se utilizará para la configuración de la cola como la persona que llama está a la espera de ser enviado a la agente. El valor predeterminado es AGENTDIRECT. + +
+
+
+ En el Grupo-ID - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el grupo en que las llamadas se enviarán a. + +
+
+
+ In-Group Call Handle Method - IN_GROUP Si se selecciona como la Ruta de DID, entonces este es el llamado método de control utilizado para estas llamadas. Cid agregar un registro de conducir nuevo con cada llamada mediante la CallerID como el número de teléfono, CIDLOOKUP intentará buscar el número de teléfono por el CallerID en todo el sistema, CIDLOOKUPRL intentará buscar el número de teléfono por el CallerID en una sola lista especificada , CIDLOOKUPRC intentará buscar el número de teléfono por el CallerID en todas las listas que pertenecen a la campaña especificada, más cerca se especifica para Vicidial Closer llamadas, ANI añadirá un nuevo registro de conducir con cada llamada mediante la ANI como el número de teléfono, ANILOOKUP intentará buscar el número de teléfono de la ANI en todo el sistema, ANILOOKUPRL intentará buscar el número de teléfono de la ANI en una sola lista especificada, XDIGITID pedirá la llamada de un código de dos dígitos X antes de la llamada se pondrá en la cola, VIDPROMPT pedirá la persona que llama por su número de identificación y creará un registro de conducir nuevo con el CallerID como el número de teléfono y el ID como el identificador de proveedor, VIDPROMPTLOOKUP intentará buscar el ID en todo el sistema, VIDPROMPTLOOKUPRL intentará búsqueda del proveedor de identificación de la identificación en una sola lista se especifica, VIDPROMPTLOOKUPRC tratará de buscar el proveedor de identificación de la identificación en todas las listas que pertenecen a la campaña especificado. El valor predeterminado es CID. + +
+
+
+ En Grupo Agente Método de búsqueda - Si se ha seleccionado como IN_GROUP la ruta DID, este agente es el método de búsqueda para ser utilizado por el grupo de entrada, la LO es equilibrado de carga-y-Rebose intentará enviar la convocatoria a un agente en el servidor local antes de intentar enviar a un agente en otro servidor, LB es equilibrado de carga-y se trata de enviar la convocatoria a la siguiente agente, sin importar lo que ellos están en el servidor, el SO es el servidor y sólo se sólo intenta enviar las llamadas a los agentes en el servidor que la llamada se produjo en el. El valor predeterminado es LB. + +
+
+
+ -En la lista Grupo de Identificación - Si se ha seleccionado como IN_GROUP DID la ruta, entonces esta es la lista de ID que lleva puede ser buscado a través de y que se lleva inserta en caso necesario. + +
+
+
+ En el Grupo-ID de campaña - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el ID de campaña que lleva pueden ser buscadas en si la llamada es manejar método CIDLOOKUPRC. + +
+
+
+ En el Grupo-Teléfono Código - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el Teléfono Código utilizarse si el plomo es un nuevo creado. + + + + +



+ + VICIDIAL_CALL MENU TABLA

+
+
+ Menú ID - Este es el ID para este paso del menú de llamada. Esto también se mostrará como el contexto que se utiliza en el dialplan para esta convocatoria de menú. + +
+
+
+ Nombre de menú - Este campo es el nombre descriptivo para el menú de llamada. + +
+
+
+ Menú del sistema - Este campo contiene el nombre de archivo del sistema de audio para jugar en el comienzo de este menú. Puede introducir propmts múltiples en este campo y los demás ámbitos del sistema mediante la separación de ellos con un carácter de canalización. + +
+
+
+ Menú de tiempo de espera - Este campo es donde se define el tiempo de espera en segundos que debe esperar el menú de la persona que llama a entrar en una opción de DTMF. Establecer este campo a cero 0 significa que no habrá tiempo de espera después de que el sistema se juega. + +
+
+
+ Menú de tiempo de espera del sistema - Este campo contiene el nombre de archivo del sistema de audio a jugar cuando el tiempo de espera ha sido alcanzado. El valor predeterminado es NINGUNO para jugar sin audio en tiempo de espera. + +
+
+
+ Menú del sistema no válido - Este campo contiene el nombre de archivo del sistema de audio para que suene cuando la llamada se ha seleccionado una opción válida. El valor predeterminado es NINGUNO para jugar sin audio en inválida. + +
+
+
+ Repita Menú - Este campo es donde se define el número de veces que el menú se reproducirá después de la primera opción válida si no se hace por la persona que llama. Por defecto es de 1 a repetir el menú una vez. + +
+
+
+ Menú Hora Hora - Este campo es donde se puede seleccionar si desea restringir el acceso de llamadas del menú a la hora específica creada en el tiempo seleccionado de llamadas. Si el tiempo de atención está en blanco, este ajuste será ignorado. Por defecto es 0 para discapacitados. + +
+
+
+ Identificación Del Tiempo De la Llamada - Este es el ID de tiempo de atención que se utilizarán para restringir los tiempos de llamada si se activa la opción de menú Hora Hora. + +
+
+
+ Pide pista en tiempo real Informe - Este campo es donde se puede seleccionar si desea que el llamado a un seguimiento en la pantalla en tiempo real como una llamada entrante IVR tipo. El valor predeterminado es 1 para los activos. + +
+
+
+ Grupo de seguimiento de - Esta es la identificación que se puede utilizar para rastrear las llamadas a este menú de llamada cuando se mira al Informe de IVR. La lista incluye CALLMENU como predeterminado, así como todos los Grupos de In -. + +
+
+
+ Valor de la opción - Este campo es donde se define la opción de menú, las opciones posibles son: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. El TIMECHECK opción especial sólo puede utilizarse si tiene menú Hora Hora activado y hay un tiempo de atención definido para el menú de. Para eliminar una opción, establezca la ruta quitar y la opción se borrará cuando usted haga clic en el botón ENVIAR. + +
+
+
+ Opción Descripción - Este campo es donde se puede describir la opción, esta descripción se pondrá en el dialplan como un comentario sobre la opción. + +
+
+
+ Opción Ruta - Este menú contiene las opciones de a dónde enviar la llamada si se selecciona esta opción: CALLMENU, endogrupo, DID, Hangup, EXTENSION, teléfono. Para CALLMENU, el valor de ruta debe ser el ID del menú de llamadas que desea que la convocatoria enviada a. Por grupo interno, el grupo interno que desea que el llamado a ser enviado a las necesidades para ser seleccionada, así como las otras 5 opciones que se deben establecer correctamente la ruta de una llamada a un grupo de entrada. Para DID, el valor de ruta debe ser el patrón de DID que desea enviar la llamada. Para HANGUP, el valor de ruta pueden ser el nombre de un archivo de audio para jugar antes de colgar la llamada. Por extensión, el valor de ruta debe ser la extensión dialplan que desea enviar la llamada a, y el contexto de valor de ruta es el contexto que se encuentra en la extensión, si se deja en blanco el contexto de forma predeterminada por defecto. Por teléfono, el valor de ruta debe ser el valor de inicio de sesión de teléfono de la entrada de los teléfonos que desea enviar la llamada. Para correo de voz, el valor de ruta debe ser el número del buzón de correo de voz, el mesage disponible será jugado. Para AGI, el valor de ruta debe ser el script de AGI y los valores que deben pasar a ella. + +
+
+
+ Opción Ruta Valor - Este campo es donde se introduce el valor que se define en la opción seleccionada la ruta que la convocatoria debe ser dirigida a la. + +
+
+
+ Opción Ruta valor de contexto - Este campo es opcional y sólo se utiliza para las rutas opción de prórroga. + +
+
+
+ Custom Dilplan entrada - Este campo le permite entrar en los elementos dialplan que desea para el menú de llamada. + + + + + +



+ + VICIDIAL_REMOTE_AGENTS TABLA

+
+
+ Comienzo de la identificación del usuario - É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. + +
+
+
+ Número de líneas - 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. + +
+
+
+ IP del servidor - Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea. + +
+
+
+ Extensión externa - éste es el número que usted desea las llamadas remitidas a. Cerciórese de que sea un número dial plan 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. + +
+
+
+ Estado - 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. + +
+
+
+ Campaña - 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. + +
+
+
+ Grupos de entrada - 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. + + +



+ + VICIDIAL_CAMPAIGN_LISTAS

+
+
+ 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. + + +



+ + VICIDIAL_CAMPAIGN_STATUSES TABLA

+
+
+ 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. Human_answered el campo se utiliza al calcular el porcentaje de lagota, o la tarifa del abandono. El ajuste human_answered a Yutilizará este estado al contar las llamadas humano-contestadas. La opción de la categoría permite que usted agrupe varios estados enun catogy que se pueda utilizar para el análisis estadístico. + + + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYS TABLA

+
+
+ Con el uso de los hot keys 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. Hay dos opciones especiales que usted puede utilizar conjuntamente conel número de teléfono alterno que marca, ALTPH2 de HotKey - el dialcaliente del teléfono alterno y el dial caliente ADDR3-----Address3permiten que un agente utilice un hotkey al retraso su llamada,permanecen en el mismo plomo, y marcan otro número del contacto deese conducen. + + + + + +



+ + VICIDIAL_LEAD_RECYCLE TABLA

+
+
+ 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. + + + + + +



+ + ESTADOS AUTO DEL DIAL DE VICIDIAL ALT

+
+
+ Si se fija el campo que marca del Alt-Nu'mero auto, después losplomos que son dispositioned bajo estos estados del dial del alt delautomóvil tendrán su alt_phone y-o los campos address3 marcadosdespués de que cualesquiera de estos ninguno-contesten a estados sefijan. + + + + + +



+ + VICIDIAL CÓDIGOS DE LA PAUSA DEL AGENTE

+
+
+ Si la pausa del agente cifra el campo activo se fija a activo entonceslos agentes podrá seleccionar de estos códigos de la pausa cuandochascan encendido el botón de PAUSA en sus pantallas. Estos datosentonces se almacenan en el registro vicidial del agente. El códigode la pausa debe contener solamente letras y números y ser menos de 7caracteres de largo. El nombre del código de la pausa puede estar nomás de largo de 30 caracteres. + + + + + +



+ + VICIDIAL_USER_GROUPS TABLA

+
+
+ Grupo de usuario - é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. + +
+
+
+ Nombre de grupo - Ésta es la descripción del máximo vicidial del grupo de usuario de 40 caracteres. + +
+
+
+ FuerzaReloj de tiempo Login - Esta opción le permite no dejar que un agente acceder a la interfaz de agente VICIDIAL si no han iniciado sesión en el timeclock. El valor por defecto es N. Hay una opción para eximir a los usuarios de administración, los niveles 8 y 9. + +
+
+
+ Cambio de título ejecutivo - Esta opción le permite restringir el acceso basado en agente de los cambios que se seleccione a continuación. NO no aplicará en todos los turnos. PRINCIPIO sólo hacer cumplir el tiempo de inicio de sesión, pero no afectará a un agente que se está ejecutando en su momento, si en cambio ya están conectado TODOS hará cumplir turnos hora de inicio y de registro de un agente a cabo después de que ellos tienen sobre el final de su cambio de tiempo. El valor predeterminado es desactivado. + +
+
+
+ Grupo de cambios - Esta es una lista de cambios seleccionables que pueden limitar el tiempo de acceso de agentes en el sistema. + +
+
+
+ Campañas permitidas - ésta es una lista seleccionable de lascampañas a las cuales los miembros de este grupo de usuario puedenabrirse una sesión. La opción de ALL-CAMPAIGNS permite que losusuarios en este grupo consideren y se abran una sesión a cualquiercampaña en el sistema. + +
+
+
+ Estado del agente visible Grupos - Esta es una lista seleccionable de grupos de usuarios y las funciones de usuario al que los miembros de este grupo de usuarios pueden ver el estado de las llamadas, así como la transferencia al interior de la pantalla del agente. La opción de grupo permite a los usuarios de este grupo para ver y transferir llamadas a cualquier usuario en el sistema. La campaña-AGENTES opción permite a los usuarios en este grupo para ver y transferir llamadas a cualquier usuario en la campaña que se registran en la. + +
+
+
+ Ver estado del agente de turno - Esta opción define si el agente va a ver la cantidad de tiempo que los usuarios en su barra lateral agente han sido en su estado actual. Por defecto es n sin o con discapacidad. + + 0) + { + ?> +
+
+
+ CC permitidas Campañas - Esta es una lista de seleccionables Campañas que los miembros de este grupo de usuarios podrá CC. El ALL-CAMPAÑAS opción permite a los usuarios en este grupo para cualquier campaña de control de la calidad en el sistema. + +
+
+
+ CC permitidas entrantes Grupos - Esta es una lista de seleccionables de entrada que los miembros de grupos de este grupo de usuarios podrá CC. TODOS LOS GRUPOS-La opción permite a los usuarios en este grupo de usuarios a cualquier entrada del grupo de CC en el sistema. + + + + + +



+ + VICIDIAL_ESCRITURAS TABLA

+
+
+ Identificación de la escritura - É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. + +
+
+ Nombre de la escritura - é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. + +
+
+ Comentarios de la escritura - é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. + +
+
+ Texto de la escritura - 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, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

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?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Activo - esto se determina si esta escritura se puede seleccionar para ser utilizado por una campaña. + + + + + + 0) + { + ?> +



+ + VICIDIAL_LEAD_FILTROS TABLA

+
+
+ Identificación del filtro - É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. + +
+
+ Nombre del filtro - é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. + +
+
+ El filtro comenta - 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. + +
+
+ Filtro SQL - 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. + + + + + +



+ + VICIDIAL_TIEMPOS DE LA LLAMADA TABLA

+
+
+ Identificación del tiempo de la llamada - é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. + +
+
+ Nombre del tiempo de la llamada - é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. + +
+
+ El tiempo de la llamada comenta - 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. + +
+
+ Tiempos del comienzo y de parada del defecto - é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. + +
+
+ Tiempos del comienzo y de parada del día laborable - é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. + +
+
+ Definiciones del tiempo de la llamada del estado - é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. + +
+
+ Estado del tiempo de la llamada del estado - é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. + + + + +



+ + VICIDIAL_SHIFTS TABLA

+
+
+ Cambio de ID - Este es el nombre corto de un Vicidial Mayús Definición. Este debe ser un identificador único. No utilice espacios ni puntuacion para este campo. 20 caracteres como máximo, mínimo de 2 caracteres. + +
+
+ Cambio de nombre - Este es un nombre más descriptivo de la Definición Mayúsculas. Este es un breve resumen de la definición Mayús. 50 caracteres como máximo, mínimo de 2 caracteres. + +
+
+ Hora de inicio cambio - Este es el momento en que comienza la campaña por turnos. Sólo deben ser números, serían las 9:30 AM y 5:00 AM 0930 sería 1700. + +
+
+ Longitud cambio - Este es el tiempo en horas y minutos que dura la campaña por turnos. 8 horas sería 08:00 y 7 horas y 30 minutos sería 07:30. + +
+
+ Cambio semana - En esta sección usted debe elegir los días de la semana que este cambio está activo. + + + + + +



+
+ Audio de la tienda - Esta utilidad te permite subir archivos de audio para el servidor de forma que puedan ser distribuidos a todos los servidores de Vicidial en un multi-cluster de servidores. Una nota importante, sólo dos tipos de archivos de audio de trabajo,. Archivos WAV PCM de 16 bits que se 8k y los archivos. GSM que se 8bit 8k. Por favor, verifique que los archivos tienen el formato correcto antes de subirlos aquí. + + + +



+ + VICIDIAL_MUSIC_ON_HOLD TABLA

+
+
+ Música en espera de identificación - Este es el nombre corto de una música en espera de entrada. Esto debe ser un identificador único. No utilice espacios ni puntuacion para este campo. 100 caracteres como máximo, mínimo de 2 caracteres de. + +
+
+ Música en espera Nombre - Este es un nombre más descriptivo de la música en espera de entrada. Este es un breve resumen de la música en espera contexto y se verá como un comentario en el musiconhold archivo vicidial.conf. máximo de 255 caracteres, mínimo de 2 caracteres. + +
+
+ Activo - Esta opción le permite definir la música en espera la entrada en activo o inactivo. Inactivo eliminará la entrada de los archivos de conf. + +
+
+ Orden aleatorio - Esta opción le permite definir la reproducción de los archivos de audio en un orden aleatorio. Si se establece a N, entonces el orden definido se utilizará. + +
+
+ Filename - Para añadir un nuevo archivo de audio a una música en espera de entrada el primer archivo debe estar en la tienda de audio, puede seleccionar el archivo y haga clic en Enviar para añadirlo a la lista de archivos. Música en espera se actualiza una vez por minuto si se han producido cambios realizados. Cualquier archivo que no figuran en la música en la entrada de reserva que están presentes en la música en la carpeta celebrar serán eliminados. + + + + +



+ + VICIDIAL_TTS_PROMPTS TABLA

+
+
+ TTS ID - Este es el nombre corto de una entrada de TTS. Esto debe ser un identificador único. No utilice espacios ni puntuacion para este campo. caracteres como máximo 50, mínimo de 2 caracteres. + +
+
+ Nombre TTS - Este es un nombre más descriptivo de la entrada TTS. Este es un breve resumen de la definición de TTS. 100 caracteres como máximo, mínimo de 2 caracteres de. + +
+
+ Activo - Esta opción le permite establecer la entrada de TTS a activos o inactivos. + +
+
+ TTS Texto - Este es el texto real de campo de datos de voz que se envía a Cepstral para la creación del archivo de audio que deben desempeñar para el cliente. Usted puede utilizar Speech Syntesis Markup Language-SSML-en este campo, por ejemplo,, <break time='1000ms'/> de 1 segundo descanso. También puede utilizar varias variables como el nombre, apellido y el título como variables Vicidial tal como lo harías en una secuencia de comandos: - A - first_name - B -. Aquí está una lista de las variables disponibles:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAIL TABLA

+
+
+ ID de correo de voz - Este es el identificador de todos los números de este buzón. Esto no debe ser un duplicado de un mensaje de voz existentes de identificación o la identificación del correo de voz de un teléfono en el sistema, mínimo de 2 caracteres. + +
+
+ Name - Este es el nombre asociado a este buzón de voz. 100 caracteres como máximo, mínimo de 2 caracteres de. + +
+
+ Password - Esta es la contraseña que se utiliza para acceder al buzón de voz cuando se marca para revisar los mensajes máximo 10 caracteres, mínimo de 2 caracteres. + +
+
+ Activo - Esta opción le permite configurar la casilla de correo de voz activo o inactivo. Si el cuadro está inactivo no se puede dejar mensajes en él y no se puede revisar los mensajes en él. + +
+
+ Email - Este ajuste opcional le permite tener los mensajes de correo de voz enviado a una cuenta de correo electrónico, si su sistema está configurado para enviar correo electrónico. Si este campo está vacío, entonces no los correos electrónicos se envían. + +
+
+ Eliminar correo de voz después del email - Este ajuste opcional le permite tener los mensajes de correo de voz se elimina del sistema después de haber sido enviado por correo electrónico a cabo. Por defecto es n. + + + + + 0) + { + ?> + +



+ + FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE VICIDIAL

+
+
+ El cargador tela-basado básico del plomo de VICIDIAL se diseñasimplemente para tomar un archivo del plomo - hasta 8MB de tamaño quees la lengüeta o la pipa delimitada y para cargarlo en la tabla delvicidial_list. El cargador del plomo permite el campo que elige y deTXT- el texto claramente, los valores separados coma de CSV- y XLS-sobresalen formatos del archivo. El cargador del plomo no hace lavalidación de datos, sino que permite que usted compruebe para sabersi hay duplicados en sí mismo, dentro de la campaña o dentro delsistema entero. También, cerciórese de que usted haya creado lalista que estos plomos son estar debajo de modo que usted puedautilizarlos. Aquí está una lista de los campos en su orden apropiadapara los archivos del plomo: +
    +
  1. Código del plomo del vendedor - demuestra para arriba en el campo de la identificación del vendedor del GUI +
  2. Código de fuente - uso interno solamente para los admins y DBAs +
  3. Identificación de la lista - el número de la lista que estos plomos demostrarán para arriba debajo +
  4. 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) +
  5. Número de teléfono - debe ser por lo menos 8 dígitos de largo +
  6. Título - título del customer(Mr. Ms señ., etc...) +
  7. Nombre +
  8. Inicial Media +
  9. Apellidos +
  10. Dirección, línea 1 +
  11. Dirección, línea 2 +
  12. Dirección, línea 3 +
  13. Ciudad +
  14. Estado - limitado a 2 caracteres +
  15. Provincia +
  16. Código Postal +
  17. País +
  18. Sexo +
  19. Fecha de nacimiento +
  20. Número De Teléfono Alternativo +
  21. Dirección Email +
  22. Frase De Seguridad +
  23. Comentarios +
+ +
NOTAS: La funcionalidad del cargador del plomo del sobresalir espermitida por una serie de escrituras del Perl y necesita tener unarchivo correctamente configurado de /etc/astguiclient.conf en lugaren el web server. También, los módulos de un Perl de los pares sedeben cargar para ella para trabajar también -oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Ustedpuede comprobar para saber si hay errores runtime en éstos mirando suarchivo del error_log de apache. También, para los cheques deduplicación contra gampaign enumera, la lista que tiene nuevos plomosel entrar él necesita ser creada en el sistema antes de que ustedcomience a cargar los plomos. + + + + +



+ + + + + + + TABLA DE LOS TELÉFONOS

+
+
+ Extensión del teléfono - 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. + +
+
+
+ Número del Dial plan - 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 + +
+
+
+ Caja de Buzón de Voz - 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. + +
+
+
+ CallerID de salida - 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. + +
+
+
+ Dirección IP del teléfono - este campo es para la dirección IP del teléfono si es un teléfono de VOZIP. Este es un campo opcional + +
+
+
+ Dirección IP del ordenador - este campo es para la dirección IP del ordenador del usuario. Es un campo opcional + +
+
+
+ IP del servidor - Este menú es donde usted selecciona en que servidor está el teléfono activo. + +
+
+
+ Conexión - la conexión usada para el usuario del teléfono a laconexión a los usos del cliente. + +
+
+
+ Contraseña - la contraseña usada para el usuario del teléfono a laconexión a los usos del cliente. Importante, esta es la única contraseña para la red de interfaz de usuario del agente de teléfono, para cambiar el sip.conf iax.conf o contraseña, o en secreto, para este dispositivo de teléfono que tenga que modificar el campo Archivo Secreto Conf. más abajo en esta página. + +
+
+
+ Estado - 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. + +
+
+
+ Cuenta activa - si el teléfono está activado ponerla en la lista del cliente del GUI. + +
+
+
+ Tipo de teléfono - solamente para información administrativas. + +
+
+
+ Nombre completo - usado por el GUIclient en la lista de teléfonos activos. + +
+
+
+ Compañía - solamente para las notas administrativas. + +
+
+
+ Teléfonos E-mail - La dirección de correo electrónico asociada con la entrada de este teléfono. Esto se utiliza para configuraciones de buzón de voz. + +
+
+ Eliminar correo de voz después del email - Este ajuste opcional le permite tener los mensajes de correo de voz se elimina del sistema después de haber sido enviado por correo electrónico a cabo. Por defecto es n. + +
+
+
+ Cuadro - todavía no puesto en ejecución. + +
+
+
+ Nuevos mensajes - número de los nuevos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco. + +
+
+
+ Viejos mensajes - número de los viejos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco. + +
+
+
+ Protocolo del cliente - 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. + +
+
+
+ GMT local - 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. + +
+
+
+ Teléfono Anillo de tiempo de espera - Esta es la cantidad de tiempo, en segundos, que el teléfono sonará en el dialplan antes de enviar la llamada al buzón de voz. El valor predeterminado es 60 segundos. + +
+
+
+ Conexión del encargado - É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. + +
+
+
+ Secreto del encargado - É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. + +
+
+
+ Usuario del defecto de VICIDIAL - é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. + +
+
+
+ Paso del defecto de VICIDIAL - é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. + +
+
+
+ Campaña del defecto de VICIDIAL - é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. + +
+
+
+ Parque Exten - Ésta es la extensión del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Extensión de la conferencia - É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. + +
+
+
+ Parque Exten de VICIDIAL - É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. + +
+
+
+ Archivo del parque de VICIDIAL - é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. + +
+
+
+ Prefijo del monitor - éste es el prefijo dial plan para supervisar de zap los canales automáticamente dentro del app astGUIclient. Cambie solamente según los expedientes de extensiones de extensions.conf ZapBarge. + +
+
+
+ Grabación Exten - Ésta es la extensión dial plan 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 Exten principal - Ésta es la extensión dial plan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar. + +
+
+
+ Descarga Exten de VMAIL - éste es el prefijo dial plan 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. + +
+
+
+ Contexto De Exten - Este es el contexto del plan de marcado que las solicitudes de agente, como Vicidial, principalmente el uso. Se supone que todos los números marcados por las aplicaciones cliente utilizan este contexto, por lo que es una buena idea para asegurarse de que este es el contexto más amplio posible. verificar con el archivo extensions.conf antes de cambiar. por defecto es por defecto. + +
+
+
+ Teléfono Contexto - Este es el contexto del plan de marcado que este teléfono se utiliza para marcar. Si está ejecutando un centro de llamadas y usted no desea que sus agentes sean capaces de marcar fuera de la aplicación Vicidial por ejemplo, entonces puedes establecer este campo a un contexto dialplan que no existe, algo como agente nodial. por defecto es por defecto. + +
+
+
+ Conf. Archivo Secreto - Este es el secreto o la contraseña, por el teléfono de la SIP IAX o auto-generados conf para este teléfono. Límite es el tablero de 20 caracteres alfanuméricos y de subrayado aceptado. El valor predeterminado es la prueba. + +
+
+
+ DTMF envían el canal - É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. + +
+
+
+ Grupo de salida de la llamada - é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). + +
+
+
+ Localización del browser - 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. + +
+
+
+ Instale el directorio - é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. + +
+
+
+ URL de CallerID - Ú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 + +
+
+
+ URL del defecto de VICIDIAL - É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 + +
+
+
+ Registración de la llamada - 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. + +
+
+
+ Conmutación del usuario - 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 + +
+
+
+ Comunicación - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas. + +
+
+
+ Retraso del Admin - 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. + +
+
+
+ Secuestro del Admin - 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. + +
+
+
+ Monitor del Admin - 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. + +
+
+
+ Parque de llamada - 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. + +
+
+
+ Cheque de Updater - 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. + +
+
+
+ Af que registra - fije para verdad para registrar muchas acciones del uso astGUIclient a un archivo de texto en la computadora del usuario. + +
+
+
+ La coleta permitió - 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. + +
+
+
+ Ventana emergente del CallerID - 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. + +
+
+
+ Botón de VMail - fije para verdad para exhibir el botón de VOICEMAIL y los mensajes cuentan la exhibición en astGUIclient. + +
+
+
+ Rápido restaure - 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. + +
+
+
+ Rápido restaure la tarifa - 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. + +
+
+
+ Persistant MySQL - 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. + +
+
+
+ Número siguiente del dial auto - 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. + +
+
+
+ Pare Rec después de cada llamada - 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. + +
+
+
+ Permita los mensajes de SIPSAK - si está permitido el servidorenviará mensajes al teléfono del SIP a la exhibición en laexhibición del LCD del teléfono cuando está registrado en VICIDIAL.La característica trabaja solamente con los teléfonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. + +
+
+
+ Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. + +
+
+
+ Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. + +
+
+
+ Usuario de DBX - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. + +
+
+
+ Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. + +
+
+
+ DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. + +
+
+
+ Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. Secundario server, no utilizado actualmente. + +
+
+
+ Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. Secundario server, no utilizado actualmente. + +
+
+
+ Usuario de DBY - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. Secundario server, no utilizado actualmente. + +
+
+
+ Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. Secundario server, no utilizado actualmente. + +
+
+
+ DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. Secundario server, no utilizado actualmente. + +
+
+
+ Alias ID - el ID de los alias utilizados para permitir el balanceo de carga de teléfono de acceso. sin espacios ni otros caracteres especiales permitidos. Debe estar entre 2 y 20 caracteres de longitud. + +
+
+
+ Alias Nombre - El nombre utilizado para describir un alias de teléfonos, debe ser entre 2 y 50 caracteres de longitud. + +
+
+
+ Lista de teléfonos Logins - La lista separada por comas de teléfono de acceso utilizado cuando un agente en la utilización de registros de teléfono de acceso equilibrado de carga. El agente de aplicación se encuentra el servidor activo con el menor número de agentes registrados en él y hacer una llamada de ese servidor con el agente al inicio de sesión. + +
+
+
+ ID de la plantilla - Este es el archivo de configuración de plantilla ID que este teléfono va a utilizar para la entrada de su configuración de Asterisk. El valor por defecto es - Inexistencia --. + +
+
+
+ Conf Override Settings - If populated, and the ID de plantilla is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Grupo Alias ID - el ID del grupo de alias utilizado por los agentes a marcar llamadas desde la interfaz de agente VICIDIAL con diferentes números de identificación de llamadas. sin espacios ni otros caracteres especiales permitidos. Debe estar entre 2 y 20 caracteres de longitud. + +
+
+
+ Grupo Alias Nombre - El nombre utilizado para describir un grupo de alias, debe ser entre 2 y 50 caracteres de longitud. + +
+
+
+ Número de identificación de llamadas - el número de identificación de llamadas se utilizan en este Grupo de Alias. Debe ser sólo cifras. + +
+
+
+ Nombre de identificación de llamadas - El nombre de identificación de llamadas que se pueden enviar a cabo con este grupo de alias. Por lo que sabemos esto sólo funcionará en Canadá en los circuitos del PRI y la utilización de un bucle troncal IAX de Asterisk a través de. + + + + +



+ + TABLA DE LOS SERVIDORES

+
+
+ ID Del Servidor - 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. + +
+
+
+ Descripción del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco. + +
+
+
+ IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco. + +
+
+
+ Activo - fije si el servidor del asterisco es activo o inactivo. + +
+
+
+ Sistema de carga - Estas dos estadísticas muestran la loadavg veces de un sistema 100 y el porcentaje de uso de la CPU del servidor y se actualiza cada minuto. El loadavg debería ser en promedio por debajo de los 100 multiplicado por el número de núcleos de CPU de su sistema, para un rendimiento óptimo. El porcentaje de uso de la CPU debería permanecer por debajo de 50 para un rendimiento óptimo. + +
+
+
+ Canales en vivo - Este campo muestra el número actual de canales que son de Asterisk en vivo en el sistema ahora. Es importante señalar que el número de canales de Asterisk es generalmente mucho mayor que el número de llamadas en un sistema. Este campo se actualiza una vez cada minuto. + +
+
+
+ Uso del disco - Este campo mostrará el uso del disco para cada partición en este servidor. Este campo se actualiza una vez cada minuto. + +
+
+
+ Versión del asterisco - 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. + +
+
+
+ Troncos máximos de VICIDIAL - 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. + +
+
+
+ Pide máximo por segundo - Esta configuración determina el número máximo de llamadas que pueden ser colocados por la salida de marcación automática de secuencia de comandos en este servidor por segundo. Debe ser de 1 a 100. El valor predeterminado es 20. + +
+
+
+ Anfitrión del telnet - é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. + +
+
+
+ El telnet vira hacia el lado de babor - é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. + +
+
+
+ Usuario del encargado - el username o la conexión conectaba genericly con el encargado del servidor del asterisco. El defecto es 'cron' + +
+
+
+ Secreto del encargado - el secreto o la contraseña conectaba genericly con el encargado del servidor del asterisco. El defecto es '1234' + +
+
+
+ Usuario en modo actualización del encargado - 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. + +
+
+
+ El encargado escucha usuario - 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. + +
+
+
+ El encargado envía a usuario - 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. + +
+
+
+ Conf. Archivo Secreto - Este es el secreto, o la contraseña, para que el servidor en el auto iax generado conf para este servidor en otros servidores. Límite es el tablero de 20 caracteres alfanuméricos y de subrayado aceptado. El valor predeterminado es la prueba. + +
+
+
+ El GMT del servidor compensó - 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' + +
+
+
+ Descarga Exten - 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' + +
+
+
+ Extensión del ANUNCIO de VICIDIAL - 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' + +
+
+
+ Contexto del defecto - el contexto dial plan del defecto usado para las escrituras que funcionan para este servidor. El defecto es 'defecto' + +
+
+
+ Funcionamiento del sistema - fijar esta opción a Y permitirá laregistración del stats del funcionamiento del sistema para lamáquina del servidor incluyendo carga de sistema, procesos delsistema y canales del asterisco en uso. El defecto es N. + +
+
+
+ Registros del servidor - fijar esta opción a Y permitirá laregistración de todas las escrituras relacionadas VICIDIAL a susficheros de diario del texto. Fijar esto a N parará registros de laescritura a los archivos para estos procesos, también laregistración de la pantalla del asterisco será lisiado si esto sefija a N cuando se comienza el asterisco. El defecto es Y. + +
+
+
+ AGI hecho salir - fijar esta opción a NINGUNOS inhabilitará salidade todas las escrituras relacionadas VICIDIAL de AGI. Fijar esto aSTDERR enviará el AGI hecho salir al asterisco CLI. Fijar esto alARCHIVO enviará la salida a un archivo en el directorio de losregistros. Fijar esto a AMBOS enviará salida al asterisco CLI y a unfichero de diario. El defecto es ARCHIVO. + +
+
+
+ El marcar del balance de VICIDIAL - fijar este campo a Y permitiráque el servidor ponga las llamadas del balance para las campañas enVICIDIAL para poder resolver el nivel definido del dial incluso si nohay agentes registrados en esa campaña en este servidor. El defectoes N. + +
+
+
+ Balance Vicidial Rank - Este campo le permite establecer el orden en que este servidor se va a utilizar para la marcación de equilibrio, si está activada la marcación de equilibrio. El servidor con el rango más alto será usado primero en la colocación de Balance llenar las llamadas. Por defecto es 0. + +
+
+
+ Balance Offlimits de VICIDIAL - este ajuste define el número detroncos para no permitir el balance de VICIDIAL que marca parautilizar. Por ejemplo si usted tiene 40 troncos y offlimits vicidialmáximos del balance se fijan a 10 que usted podrá solamenteutilizar 30 líneas interurbanas para marcar del balance de VICIDIAL.El defecto es 0. + +
+
+
+ Grabación Web Link - Esta opción le permite ignorar el valor por defecto de la pantalla de la grabación enlace en la página web de administración. El valor predeterminado es server_ip. + +
+
+
+ Grabación de IP del servidor alternativo - Este valor es donde usted puede poner un servidor IP o nombre de otra máquina que se puede utilizar en lugar de la server_ip en los enlaces a las grabaciones en el administrador de páginas web. Por defecto está vacío. + +
+
+
+ Activa del servidor de Asterisk - de Asterisk Si no se está ejecutando en este servidor, o si VICIDIAL no deberían usar este servidor, o si sólo se utiliza este servidor para otros scripts como script de la tolva de carga que usted quiere hacer esto para N. El valor por defecto es Y. + +
+
+
+ Activo Server Agent - Al establecer esta opción a N de impedir que los agentes de poder acceder a este servidor a través de la pantalla del agente Vicidial. Esto es muy útil cuando se utiliza una carga de inicio de sesión de instalación del teléfono equilibrada. Por defecto es Y. + +
+
+
+ Generar los archivos de configuración - Si desea que el sistema de auto-generar conf asterisco archivos sobre la base de los teléfonos entradas, las entradas de transportista y balanceo de carga dentro de la configuración VICIDIAL luego a este valor por defecto es Y. Y. + +
+
+
+ Reconstruir los archivos de configuración - Si desea forzar una reconstrucción de los archivos de configuración de Asterisk o si alguno de los teléfonos o transportista entradas han cambiado esto debe establecerse en Y. Después de la configuración de archivos se han generado y se ha de Asterisk luego se vuelve a cargar esta será cambiado a N. El valor por defecto es Y. + +
+
+
+ Volver a generar música en espera - Si desea forzar una reconstrucción de la música en los archivos de la bodega o si la música en las entradas de espera ni entradas de servidor han cambiado entonces esto debe establecerse en Y. Después de la música en espera los archivos se han sincronizado y volver a cargar entonces esto va a ser cambiado a N. defecto es Y. + +
+
+
+ Actualización de los sonidos - Si desea forzar una comprobación de los archivos de sonido en este servidor, y el almacén central de audio está activado como una configuración del sistema, este campo permitirán a los sonidos de actualización para ejecutar en la parte superior de la siguiente minuto. Toda vez que un archivo de audio se carga desde la interfaz web de este se ajusta automáticamente a Y para todos los servidores que tienen activos de Asterisk. Por defecto es n. + +
+
+
+ Grabación Vicidial Límite - Este campo es donde se define el número máximo de minutos que una grabación de la llamada iniciada por Vicidial puede ser. Por defecto es de 60 minutos. + +
+
+
+ Portador de registro activo - Esta configuración le permite registrar todos los códigos de retorno para colgar cualquier lista de marcación saliente llamadas que están haciendo. Por defecto es N. + + + + + + +



+ + vicidial_conf_templates TABLA

+
+
+ ID de la plantilla - Este campo tiene que ser al menos de 2 caracteres de longitud y no más de 15 caracteres, sin espacios. Esta es la identificación que se utilizará para identificar la configuración de plantillas en todo el sistema. + +
+
+
+ Nombre de la plantilla - Este es el nombre descriptivo de la plantilla de archivo de configuración de entrada. + +
+
+
+ Plantilla de Contenido - Este campo es donde usted puede entrar en la configuración específica para ser utilizado por todos los teléfonos o los transportistas y que están configurados para utilizar esta plantilla conf. Campos que no deben incluirse en este cuadro son: secreto, accountcode, cuenta, el nombre de usuario y buzón de correo. + + + + + +



+ + vicidial_server_carriers TABLA

+
+
+ Portador de Identificación - Este campo tiene que ser al menos de 2 caracteres de longitud y no más de 15 caracteres, sin espacios. Esta es la identificación que se utilizará para identificar el soporte de esta entrada a través del sistema. + +
+
+
+ Nombre del transportista - Este es el nombre descriptivo de la compañía entrada. + +
+
+
+ Descripción Carrier - Éste se coloca en los comentarios de los archivos de conf asterisco encima del dialplan y anotaciones en cuenta. Máximo 255 caracteres. + +
+
+
+ Registro de cadena - Este campo es donde usted puede entrar en la cadena exacta necesaria en el SIP o IAX archivo de configuración de registro para el proveedor. Opcional, pero altamente recomendable si tu proveedor permite el registro. + +
+
+
+ Plantilla ID - Este campo opcional permite elegir un archivo de configuración de plantilla para esta compañía aérea de entrada. + +
+
+
+ Cuenta Entrar - Este campo se usa si no ha seleccionado una plantilla de usar, y es donde puede entrar en la configuración de la cuenta específica que se utilizará para esta compañía aérea. Si va a tomar en las llamadas entrantes de esta compañía aérea tronco es posible que desee establecer el contexto = trunkinbound dentro de este ámbito de modo que usted puede usar el proceso de tramitación de DID en VICIDIAL. + +
+
+
+ Protocolo - Este campo le permite definir el protocolo a utilizar para el transportista entrada. Actualmente, sólo IAX y SIP son compatibles. + +
+
+
+ Globals String - Este campo opcional le permite definir una variable global a utilizar para el transportista en el dialplan. + +
+
+
+ Entrada Dialplan - Este campo opcional le permite definir un conjunto de entradas dialplan a usar para esta compañía aérea. + +
+
+
+ IP del servidor - Este es el servidor que soporte este registro está asociado con. + +
+
+
+ Activo - Esto define si el transportista se incluirán en la auto-generado o no los archivos de conf. + + + + + +



+ + TABLA DE CONFERENCIAS

+
+
+ Número de la conferencia - 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. + +
+
+
+ IP del servidor - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_TRONCOS TABLA

+
+
+ Los troncos del servidor de VICIDIAL permiten que usted restrinja laslíneas salientes que se utilizan en este servidor para la campañaque marca sobre una base de la por-campaña. Usted tiene la opciónpara reservar un número de las líneas específico que se utilizaránpor solamente una campaña así como permitir que esa campañafuncione sobre sus líneas reservadas en cualesquiera líneas siguensiendo abiertas, según lo en las líneas totales usadas por vicidialen este servidor es de largo menos que fijar de los troncos delmáximo VICIDIAL. No tener cualesquiera de estos expedientespermitirá la campaña que marca la línea primero para tener tantaslíneas mientras que puede conseguir bajo fijar de los troncos delmáximo VICIDIAL. + + + + + +



+ + SYSTEM_SETTINGS TABLA

+
+
+ Uso No-Latino - esta opción permite que usted omita la escritura dela exhibición de la tela los caracteres del uso UTF8 y que no haganinguna expresión regular de la latino-cara'cter-familia que sefiltra ni que no exhiba el formato. El defecto es 0. + +
+
+
+ Webroot escribible - este ajuste permite que usted defina si losarchivos de la temperatura y los archivos de la autentificación seancolocados en el webroot en su web server. El defecto es 1. + +
+
+
+ El agente de VICIDIAL inhabilita la exhibición - este campo seutiliza para seleccionar cuando demostrar a un agente cuando susesión ha sido inhabilitada por el sistema, una acción del encargadoo por una medida externa. El ajuste de NOT_ACTIVE inhabilitará elmensaje en la pantalla de los agentes. El ajuste de LIVE_AGENTexhibirá solamente el mensaje lisiado cuando se ha quitado elexpediente de los vicidial_auto_calls de los agentes, por ejemplodurante un registro de estado de la máquina de la fuerza o registrode estado de la máquina de la emergencia. + +
+
+
+ Permita los mensajes de SIPSAK - si el sistema a 1, éste permite queel ajuste de la tabla de los teléfonos trabaje correctamente, elservidor enviará mensajes al teléfono del SIP a la exhibición en laexhibición del LCD del teléfono cuando está registrado en VICIDIAL.Esta característica trabaja solamente con los teléfonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. + +
+
+
+ Agente de la API de Activo - Si se pone a 1, esto permitirá a la interfaz API de agente para su funcionamiento. Por defecto es 0. + +
+
+
+ URL casero del Admin - ésta es la dirección del URL o del Web siteque usted irá si usted chasca encendido el acoplamiento CASERO en latapa de la página de admin.php. + +
+
+
+ Permita el logfile de la transferencia del agente - esta opciónregistrará a un logfile del texto en el webserver cada vez que unallamada se transfiere a un agente. El defecto es 0, inhabilitado. + +
+
+
+ Reloj de tiempo Fin de Día - Este ajuste define cuando todos los usuarios se van a auto cerrado la sesión de la timeclock sistema. Sólo se ejecuta una vez al día. debe ser sólo el 4 dígitos dígitos 2 horas y 2 minutos en cifras de 24 horas. Por defecto es 0000. + +
+
+
+ Última sesiónReloj de tiempo Auto - Este campo muestra la fecha de la última sesión de auto -. + +
+
+
+ Agente de la pantalla de encabezado Formato de fecha - Este menú le permite elegir el formato de la fecha que aparece en la parte superior de la pantalla VICIDIAL agente. Las opciones para este ajuste son los siguientes: el valor predeterminado es MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Por defecto el formato de fecha con el año mes día seguido por 24 horas
+ US_SLASH_24HR 06/24/2008 23:59:59 - EE.UU. fecha con el formato mes día año seguido por 24 horas
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europea con el formato de fecha día mes año seguido por 24 horas
+ AL_TEXT_24HR JUN 24 23:59:59 - Texto con formato de fecha abreviado mes día seguido por 24 horas
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Por defecto el formato de fecha con el año mes día seguido por 12 horas
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - EE.UU. fecha con el formato mes día año seguido por 12 horas
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europea con el formato de fecha día mes año seguido por 12 horas
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Texto con formato de fecha abreviado mes día seguido por 12 horas
+ +
+
+
+ Agente del cliente Fecha Formato de pantalla - Este menú le permite elegir el formato de la fecha los clientes de zona horaria que aparece en la parte superior de la sección de información al cliente de la agencia de VICIDIAL pantalla. Las opciones para este ajuste son los siguientes: el valor predeterminado es AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Por defecto el formato de fecha con el año mes día seguido por 24 horas
+ US_SLASH_24HR 06/24/2008 23:59:59 - EE.UU. fecha con el formato mes día año seguido por 24 horas
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europea con el formato de fecha día mes año seguido por 24 horas
+ AL_TEXT_24HR JUN 24 23:59:59 - Texto con formato de fecha abreviado mes día seguido por 24 horas
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Por defecto el formato de fecha con el año mes día seguido por 12 horas
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - EE.UU. fecha con el formato mes día año seguido por 12 horas
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europea con el formato de fecha día mes año seguido por 12 horas
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Texto con formato de fecha abreviado mes día seguido por 12 horas
+ +
+
+
+ Agente Cliente Teléfono Formato de pantalla - Este menú le permite elegir el formato del cliente el número de teléfono que aparece en el estado de la agente VICIDIAL pantalla. Las opciones para este ajuste son los siguientes: el valor predeterminado es US_PARN
+ US_DASH 000-000-0000 - USA guión separado el número de teléfono
+ US_PARN (000)000-0000 - USA guión separados número con código de área entre paréntesis
+ MS_NODS 0000000000 - N de formato
+ UK_DASH 00 0000-0000 - UK guión separado el número de teléfono con el espacio después del código de ciudad
+ AU_SPAC 000 000 000 - Australia espacio separado el número de teléfono
+ IT_DASH 0000-000-000 - Italy guión separado el número de teléfono
+ FR_SPAC 00 00 00 00 00 - France espacio separado el número de teléfono
+ +
+
+
+ Agent interface API Access Activo - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Único agente de devolución de llamada Campaña de bloqueo - Esta opción define si las devoluciones de llamada AGENTONLY están bloqueadas a la campaña de que el agente creado originalmente bajo. Establecer este valor a 1 significa que el agente sólo se puede marcar desde la campaña que se establecieron en virtud de 0 significa que el agente puede acceder a ellos sin importar lo que la campaña que se inició la sesión. Por defecto es 1. + +
+
+
+ Central de control de sonido activo - Esta opción define si el sistema de sincronización de sonido está activo en todos los servidores. El valor predeterminado es 0 para los inactivos. + +
+
+
+ Sonidos de servidor Web - Este es el nombre del servidor o la dirección IP del servidor web que será el que maneja los archivos de sonido en este sistema, este debe coincidir con el nombre de servidor o dirección IP del equipo que está intentando acceder a la página web audio_store.php o no funcionará . Por defecto es 127.0.0.1. + +
+
+
+ Sounds Web Directory - Esta auto-generado nombre del directorio es creado al azar por el sistema como el lugar que la tienda de audio se mantendrá. Todos los archivos de audio residir en este directorio. + +
+
+
+ Servidor de correo de voz activo - En sistemas multi-servidor, este es el servidor que se encargará de todas las casillas de correo de voz. Este servidor es también donde la línea telefónica en mensajes generados se cargan desde el 8168 grabaciones. + +
+
+
+ Salida de marcación automática de Activo - Esta opción le permite activar o desactivar la marcación automática de salida dentro de VICIDIAL, en este campo a 0 se eliminará de las listas y FILTROS secciones y muchos campos de la Campaña Modificación pantallas. Manual de entrada de marcación seguirá siendo permitida dentro de la agente de la pantalla, lista de marcación, pero no será posible. El valor predeterminado es 1 para los activos. + +
+
+
+ Ratio Dial Limit - Este es el límite máximo de la escala de marcación automática en la pantalla de la campaña. + +
+
+
+ Max LLENAR Pide por segundo - Esta configuración determina el número máximo de llamadas que pueden ser colocados por la auto-LLENAR salida de marcación automática de secuencia de comandos de todos los servidores, por segundo. Debe ser de 1 a 200. El valor predeterminado es 40. + +
+
+
+ Permitir Custom Dialplan entradas - Esta opción le permite introducir líneas personalizadas dialplan en llamadas menús. El valor predeterminado es 0 para los inactivos. + +
+
+
+ Territorios de usuario de Activo - Esta configuración le permite habilitar la setttings territorios de usuario desde la pantalla de modificación del usuario. Esta característica se agregó para permitir una mayor integración con una instalación personalizada Vtiger pero puede tener aplicaciones en un sistema de Vicidial pura también. Por defecto es 0 para discapacitados. + +
+
+
+ Formulario de Asistencia Segunda Habilitar - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Habilitar TTS Integración - Esta configuración le permite habilitar Texto a la integración de voz con Cepstral. Esto sólo está disponible actualmente para las campañas de tipo de encuesta de salida. Por defecto es 0 para discapacitados. + +
+
+
+ Características de Activo CC - Esta opción le permite activar o desactivar el control de la calidad o las características de Control de Calidad. El valor por defecto es 0 para inactivos. + +
+
+
+ Permita la registración de QueueMetrics - este ajuste permite queusted defina si VICIDIAL inserte entradas del registro en la tabla dela base de datos del queue_log como lo hace la actividad de lascoletas del asterisco. QueueMetrics es un independiente, programa delanálisis estadístico de la cerrado-fuente. Usted debe tenerQueueMetrics instalado y configurado ya antes de permitir estacaracterística. El defecto es 0. + +
+
+
+ IP del servidor de QueueMetrics - éste es el IP address de la base dedatos para su instalación de QueueMetrics. + +
+
+
+ Nombre de la base de datos de QueueMetrics - éste es el nombre de labase de datos para su base de datos de QueueMetrics. + +
+
+
+ Conexión de la base de datos de QueueMetrics - éste es el nombre delusuario usado para abrirse una sesión a su base de datos deQueueMetrics. + +
+
+
+ Contraseña de la base de datos de QueueMetrics - ésta es lacontraseña usada para abrirse una sesión a su base de datos deQueueMetrics. + +
+
+
+ URL de QueueMetrics - Ésta es la dirección del URL o del Web siteusada para conseguir a su instalación de QueueMetrics. + +
+
+
+ Identificación del registro de QueueMetrics - ésta es laidentificación del servidor que todos los registros de VICIDIAL queentran la base de datos de QueueMetrics utilizarán como identificadorpara cada expediente. + +
+
+
+ QueueMetrics EnterQueue prepend - este campo se utiliza para permitirprepending de una de las zonas de informaciones del vicidial_listdelante del número de teléfono del cliente para los informesmodificados para requisitos particulares de QueueMetrics. El defectono es NINGUNO no poblar cualquier cosa. + +
+
+
+ Habilitar Vtiger Integración - Este ajuste le permite activar Vtiger integración con VICIDIAL. Actualmente enlaces a Vtiger administración y búsqueda de usuarios, así como la reproducción son las únicas características disponibles integración. Por defecto es 0. + +
+
+
+ PP Vtiger IP del servidor - Este es la dirección IP de la base de datos para su instalación Vtiger. + +
+
+
+ Vtiger nombre de base de datos - Este es el nombre de base de datos para su base de datos Vtiger. + +
+
+
+ Base de datos de inicio de sesión Vtiger - Este es el nombre de usuario utilizado para acceder a su base de datos Vtiger. + +
+
+
+ Base de datos Vtiger Contraseña - Esta es la contraseña utilizada para acceder a su base de datos Vtiger. + +
+
+
+ Vtiger URL - Este es el URL o dirección del sitio web utilizado para acceder a tu Vtiger instalación. + + +



+ + VICIDIAL_STATUSES TABLA

+
+
+ Con el uso de los estados de sistema, usted puede tener estados queexistan para la campaña y el en-grupo. El estado debe ser 1-6caracteres en longitud, la descripción debe ser 2-30 caracteres enlongitud y seleccionable define si demuestra para arriba en VICIDIALcomo disposición del agente. Human_answered el campo se utiliza alcalcular el porcentaje de la gota, o la tarifa del abandono. El ajustehuman_answered a Y utilizará este estado al contar las llamadashumano-contestadas. La opción de la categoría permite que ustedagrupe varios estados en un catogy que se pueda utilizar para elanálisis estadístico. También hay 5 ajustes adicionales que definirán el tipo de estado: la venta, la DNC, póngase en contacto con los clientes, no les interesa, impracticable. + + + +



+ + VICIDIAL_STATUS_CATEGORIES TABLA

+
+
+ Con el uso de las categorías del estado de sistema, usted puedeagrupar juntos estados para tener en cuenta análisis estadístico enun grupo de estados. La identificación de la categoría debe ser 2-20caracteres en longitud sin espacios, el nombre debe ser 2-50caracteres en longitud, la descripción es opcional y la exhibiciónde TimeonVDAD define si ese estado será uno de hasta que 4 estadosque se puedan calcular y exhibir en el tiempo en informe del tiemporeal de VDAD. La venta y Categoría Categoría Principal Muerto son utilizados tanto por el sistema de lista de sugerencias en el análisis de estadísticas de la lista. + + + 0) + { + ?> +



+ + CÓDIGOS DE ESTADO VICIDIAL CC

+
+
+ El Control de Calidad, sistema de control de calidad dentro de VICIDIAL tiene su propio conjunto de códigos de estado separados de los de la gestión de llamadas de funciones VICIDIAL. CC statuse códigos debe estar entre 2 y 8 caracteres de longitud y no contienen caracteres especiales, como un espacio o de colon. El código de estado de CC descripción debe estar entre 2 y 30 caracteres de longitud. + + + + +







+







+ EL EXTREMO +
+ \n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') + { + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } + } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Demuestre La Cuenta De los Plomos De Dialable -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "LISTAS: $camp_lists
\n"; + echo "STATUSES: $dial_statuses
\n"; + echo "FILTER: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=7111111 view sample script with test variables +###################### + +if ($ADD==7111111) + { + ##### TEST VARIABLES ##### + $vendor_lead_code = 'VENDOR:LEAD;CODE'; + $list_id = 'LISTID'; + $gmt_offset_now = 'GMTOFFSET'; + $phone_code = '1'; + $phone_number = '7275551212'; + $title = 'Mr.'; + $first_name = 'JOHN'; + $middle_initial = 'Q'; + $last_name = 'PUBLIC'; + $address1 = '1234 Main St.'; + $address2 = 'Apt. 3'; + $address3 = 'ADDRESS3'; + $city = 'CHICAGO'; + $state = 'IL'; + $province = 'PROVINCE'; + $postal_code = '33760'; + $country_code = 'USA'; + $gender = 'M'; + $date_of_birth = '1970-01-01'; + $alt_phone = '3125551111'; + $email = 'test@test.com'; + $security_phrase = 'SECUTIRY'; + $comments = 'COMMENTS FIELD'; + $RGfullname = 'JOE AGENT'; + $RGuser = '6666'; + $RGlead_id = '1234'; + $RGcampaign = 'TESTCAMP'; + $RGphone_login = 'gs102'; + $RGgroup = 'TESTCAMP'; + $RGchannel_group = 'TESTCAMP'; + $RGSQLdate = date("Y-m-d H:i:s"); + $RGepoch = date("U"); + $RGuniqueid = '1163095830.4136'; + $RGcustomer_zap_channel = 'Zap/1-1'; + $RGserver_ip = '10.10.10.15'; + $RGSIPexten = 'SIP/gs102'; + $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; + + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_text = stripslashes($row[3]); + + if (eregi("iframe src",$script_text)) + { + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address2); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $RGfullname = eregi_replace(' ','+',$RGfullname); + $RGuser = eregi_replace(' ','+',$RGuser); + $RGlead_id = eregi_replace(' ','+',$RGlead_id); + $RGcampaign = eregi_replace(' ','+',$RGcampaign); + $RGphone_login = eregi_replace(' ','+',$RGphone_login); + $RGgroup = eregi_replace(' ','+',$RGgroup); + $RGchannel_group = eregi_replace(' ','+',$RGchannel_group); + $RGSQLdate = eregi_replace(' ','+',$RGSQLdate); + $RGepoch = eregi_replace(' ','+',$RGepoch); + $RGuniqueid = eregi_replace(' ','+',$RGuniqueid); + $RGcustomer_zap_channel = eregi_replace(' ','+',$RGcustomer_zap_channel); + $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); + $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); + $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + + $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); + $script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); + $script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); + $script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); + $script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); + $script_text = eregi_replace('--A--title--B--',"$title",$script_text); + $script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); + $script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); + $script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); + $script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); + $script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); + $script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); + $script_text = eregi_replace('--A--city--B--',"$city",$script_text); + $script_text = eregi_replace('--A--state--B--',"$state",$script_text); + $script_text = eregi_replace('--A--province--B--',"$province",$script_text); + $script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); + $script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); + $script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); + $script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); + $script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); + $script_text = eregi_replace('--A--email--B--',"$email",$script_text); + $script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); + $script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); + $script_text = eregi_replace('--A--fullname--B--',"$RGfullname",$script_text); + $script_text = eregi_replace('--A--fronter--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--user--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--lead_id--B--',"$RGlead_id",$script_text); + $script_text = eregi_replace('--A--campaign--B--',"$RGcampaign",$script_text); + $script_text = eregi_replace('--A--phone_login--B--',"$RGphone_login",$script_text); + $script_text = eregi_replace('--A--group--B--',"$RGgroup",$script_text); + $script_text = eregi_replace('--A--channel_group--B--',"$RGchannel_group",$script_text); + $script_text = eregi_replace('--A--SQLdate--B--',"$RGSQLdate",$script_text); + $script_text = eregi_replace('--A--epoch--B--',"$RGepoch",$script_text); + $script_text = eregi_replace('--A--uniqueid--B--',"$RGuniqueid",$script_text); + $script_text = eregi_replace('--A--customer_zap_channel--B--',"$RGcustomer_zap_channel",$script_text); + $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); + $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); + $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); + $script_text = eregi_replace("\n","
",$script_text); + + + echo ""; + + echo "Escritura De la Inspección previo: $script_id
\n"; + echo "
\n"; + echo "
$script_name
\n"; + echo "$script_text\n"; + echo "
\n"; + + echo "\n"; + + exit; + } + + +$ADMIN=$PHP_SELF; +require("admin_header.php"); + + + + + +###################################################################################################### +###################################################################################################### +####### 1 series, ADD NEW forms for inserting new records into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=1 display the ADD NEW USER FORM SCREEN +###################### + +if ($ADD=="1") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
NUEVO USUARIO
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "
NÚmero De Usuario: Auto-Generated $NWB#vicidial_users-user$NWE
NÚmero De Usuario: $NWB#vicidial_users-user$NWE
Contraseña: $NWB#vicidial_users-pass$NWE
Nombre Completo: $NWB#vicidial_users-full_name$NWE
Nivel Del Usuario: $NWB#vicidial_users-user_level$NWE
Grupo Del Usuario:
Conexión Del Teléfono: $NWB#vicidial_users-phone_login$NWE
Contraseña Del Teléfono: $NWB#vicidial_users-phone_pass$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1A display the COPY USER FORM SCREEN +###################### + +if ($ADD=="1A") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
USUARIO DEL COPY\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($LOGuser_level==9) {$levelMAX=10;} + else {$levelMAX=$LOGuser_level;} + + echo "\n"; + echo "\n"; + echo "
NÚmero De Usuario: Auto-Generated $NWB#vicidial_users-user$NWE
NÚmero De Usuario: $NWB#vicidial_users-user$NWE
Contraseña: $NWB#vicidial_users-pass$NWE
Nombre Completo: $NWB#vicidial_users-full_name$NWE
Source Usuario: $NWB#vicidial_users-user$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=11 display the ADD NEW CAMPAIGN FORM SCREEN +###################### + +if ($ADD==11) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
NUEVA CAMPAÑA\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
ID De la Campaña: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID De la Campaña: $NWB#vicidial_campaigns-campaign_id$NWE
Nombre de la Campaña: $NWB#vicidial_campaigns-campaign_name$NWE
Descripción De la Campaña: $NWB#vicidial_campaigns-campaign_description$NWE
Activo: $NWB#vicidial_campaigns-active$NWE
Extensión del parking: $NWB#vicidial_campaigns-park_ext$NWE
Nombre de fichero Del Parking: $NWB#vicidial_campaigns-park_file_name$NWE
Formulario Web: $NWB#vicidial_campaigns-web_form_address$NWE
Permitir Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Llamar al Siguiente Agente: $NWB#vicidial_campaigns-next_agent_call$NWE
Franja horaria de llamada: $NWB#vicidial_campaigns-local_call_time$NWE
Buzón de Voz: $NWB#vicidial_campaigns-voicemail_ext$NWE
Escritura: $NWB#vicidial_campaigns-campaign_script$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=12 display the COPY CAMPAIGN FORM SCREEN +###################### + +if ($ADD==12) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
CopiarUna CAMPAÑA\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
ID De la Campaña: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID De la Campaña: $NWB#vicidial_campaigns-campaign_id$NWE
Nombre de la Campaña: $NWB#vicidial_campaigns-campaign_name$NWE
Campaña De la Fuente:$NWB#vicidial_campaigns-campaign_id$NWE
NOTA: Copia de una campaña de copiar todos los ajustes del maestro campaña que seleccione, pero no va a copiar una campaña específica de DNC lista si hay un maestro seleccionado en la campaña.
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=111 display the ADD NEW LIST FORM SCREEN +###################### + +if ($ADD==111) + { + if ($LOGmodify_lists==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD A NEW LIST\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID De la Lista: Auto-Generated $NWB#vicidial_lists-list_id$NWE
ID De la Lista: (Solamente dígitos)$NWB#vicidial_lists-list_id$NWE
Nombre De la Lista: $NWB#vicidial_lists-list_name$NWE
Descripción De la Lista: $NWB#vicidial_lists-list_description$NWE
Campaña: $NWB#vicidial_lists-campaign_id$NWE
Activo: $NWB#vicidial_lists-active$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=121 display the ADD NUMBER TO DNC FORM SCREEN and add a new number +###################### + +if ($ADD==121) + { + echo "
\n"; + echo ""; + + $campaigns_list = "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where use_campaign_dnc IN('Y','AREACODE') order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + if (strlen($phone_numbers) > 2) + { + $PN = explode("\n",$phone_numbers); + $PNct = count($PN); + $p=0; + while ($p < $PNct) + { + if ( (ereg('delete',$stage)) and ($LOGdelete_from_dnc > 0) ) + { + ##### BEGIN DELETE FROM DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC no se eliminan - Este número de teléfono no está en la Lista de No Llamar: $PN[$p]\n";} + else + { + $stmt="DELETE FROM vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC DELETED: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC no se eliminan - Este número de teléfono no está en la Lista de No Llamar: $PN[$p] $campaign_id\n";} + else + { + $stmt="DELETE FROM vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC DELETED: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END DELETE FROM DNC ##### + } + else + { + ##### BEGIN ADD TO DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC NO AGREGADO - este número de teléfono está en no llama ya lalista: $PN[$p]\n";} + else + { + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$PN[$p]');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC AGREGADO: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN AGREGUE EL NÚMERO A DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC NO AGREGADO - este número de teléfono está en no llama ya lalista: $PN[$p] $campaign_id\n";} + else + { + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$PN[$p]','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC AGREGADO: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN ADD NUMBER TO CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END ADD TO DNC ##### + } + $p++; + } + } + + if ($LOGdelete_from_dnc > 0) + {echo "
AÑADIR O ELIMINAR números de la lista DNC\n";} + else + {echo "
Añadir números a la DNC LISTA\n";} + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } + echo "\n"; + echo "
List:
Números de teléfono:

(un número de teléfono por línea sólo)
$NWB#vicidial_list-dnc$NWE
Agregar o eliminar:
\n"; + } + + +###################### +# ADD=1111 display the ADD NEW INBOUND GROUP SCREEN +###################### + +if ($ADD==1111) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
NUEVO GRUPO DE ENTRADA\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
ID De Grupo: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID De Grupo: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Nombre De Grupo: $NWB#vicidial_inbound_groups-group_name$NWE
Color Del Grupo: $NWB#vicidial_inbound_groups-group_color$NWE
Activo: $NWB#vicidial_inbound_groups-active$NWE
Formulario Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Buzón de Voz: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Llamar al Siguiente Agente: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Escritura: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1211 display the COPY INBOUND GROUP SCREEN +###################### + +if ($ADD==1211) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
GRUPO DE ENTRADA DEL COPY\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
ID De Grupo: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID De Grupo: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Nombre De Grupo: $NWB#vicidial_inbound_groups-group_name$NWE
Source ID De Grupo: $NWB#vicidial_inbound_groups-group_id$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1311 display the ADD NEW DID SCREEN +###################### + +if ($ADD==1311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
AGREGAR UN NUEVO DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
DID Extensión: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Descripción:$NWB#vicidial_inbound_dids-did_description$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1411 display the COPY DID SCREEN +###################### + +if ($ADD==1411) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
COPIA DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
DID Extensión: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Descripción:$NWB#vicidial_inbound_dids-did_description$NWE
Fuente DID:$NWB#vicidial_inbound_dids-did_pattern$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1511 display the ADD NEW CALL MENU SCREEN +###################### + +if ($ADD==1511) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AGREGAR UN NUEVO CONVOCATORIA MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Menú ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menú ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Nombre de menú: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPIA CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Menú ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menú ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Nombre de menú: $NWB#vicidial_call_menu-menu_name$NWE
Menú Fuente: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN +###################### + +if ($ADD==11111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + echo "
NUEVO AGENTE REMOTO\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Comienzo Del ID del usuario: (Solamente números, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Número de líneas: (Solamente números)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Del Servidor: $NWB#vicidial_remote_agents-server_ip$NWE
Extensión Externa: (número del dial plan para alcanzar agentes)$NWB#vicidial_remote_agents-conf_exten$NWE
Estado: $NWB#vicidial_remote_agents-status$NWE
Campaña: $NWB#vicidial_remote_agents-campaign_id$NWE
Grupos De entrada: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=111111 display the ADD NEW USERS GROUP SCREEN +###################### + +if ($ADD==111111) + { + if ($LOGmodify_usergroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
NUEVO GRUPO DE USUARIOS\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Grupo: Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Grupo: (sin espacios o signos de puntuación)$NWB#vicidial_user_groups-user_group$NWE
Descripción: (Descripción del grupo)$NWB#vicidial_user_groups-group_name$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1111111 display the ADD NEW SCRIPT SCREEN +###################### + +if ($ADD==1111111) + { + if ($LOGmodify_scripts==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD NEW SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación De la Escritura:: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
Identificación De la Escritura:: (sin espacios o signos de puntuación)$NWB#vicidial_scripts-script_id$NWE
Nombre de la escritura: (título de la escritura)$NWB#vicidial_scripts-script_name$NWE
Comentarios de la escritura: $NWB#vicidial_scripts-script_comments$NWE
Activo: $NWB#vicidial_scripts-active$NWE
Texto de la escritura: "; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=11111111 display the ADD NEW FILTER SCREEN +###################### + +if ($ADD==11111111) + { + if ($LOGmodify_filters==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AGREGUE EL FILTRO NUEVO\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación Del Filtro:Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
Identificación Del Filtro: (sin espacios o signos de puntuación)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nombre Del Filtro: (descripción corta del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Comentarios Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=111111111 display the ADD NEW CALL TIME SCREEN +###################### + +if ($ADD==111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
AGREGUE EL NUEVO TIEMPO DE LA LLAMADA\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
Identificación Del Tiempo De la Llamada: (sin espacios o signos de puntuación)$NWB#vicidial_call_times-call_time_id$NWE
Nombre Del Tiempo De la Llamada: (descripción corta del tiempo de la llamada)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada: $NWB#vicidial_call_times-call_time_comments$NWE
Las opciones del día y del tiempo aparecerán una vez que usted hayacreado la definición del tiempo de la llamada
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1111111111 display the ADD NEW STATE CALL TIME SCREEN +###################### + +if ($ADD==1111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
AGREGUE EL NUEVO TIEMPO DE LA LLAMADA DEL ESTADO\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
Identificación Del Tiempo De la Llamada Del Estado: (sin espacios o signos de puntuación)$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: (sin espacios o signos de puntuación)$NWB#vicidial_call_times-state_call_time_state$NWE
_ Estado Llamar Tiempo Nombre: (descripción corta del tiempo de la llamada)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada Del Estado: $NWB#vicidial_call_times-call_time_comments$NWE
Las opciones del día y del tiempo aparecerán una vez que usted hayacreado la definición del tiempo de la llamada
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=131111111 display the ADD NEW SHIFT SCREEN +###################### + +if ($ADD==131111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW SHIFT\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Cambio ID: (sin espacios o signos de puntuación)$NWB#vicidial_shifts-shift_id$NWE
Cambio de nombre: (breve descripción del cambio)$NWB#vicidial_shifts-shift_name$NWE
Cambio Hora de inicio:\n"; + echo "   Cambio Hora de finalización:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Longitud cambio: $NWB#vicidial_shifts-shift_length$NWE
Cambio semana:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Domingo
\n"; + echo "Lunes
\n"; + echo "Martes
\n"; + echo "Miércoles
\n"; + echo "Jueves
\n"; + echo "Viernes
\n"; + echo "Sábado
\n"; + echo "
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=11111111111 display the ADD NEW PHONE SCREEN +###################### + +if ($ADD==11111111111) + { + if ($LOGast_admin_access==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AGREGUE Un TELÉFONO NUEVO\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Extensión del teléfono: Auto-Generated $NWB#phones-extension$NWE
Extensión del teléfono: $NWB#phones-extension$NWE
Número De Dial plan: (Solamente dígitos)$NWB#phones-dialplan_number$NWE
Caja de voz: (Solamente dígitos)$NWB#phones-voicemail_id$NWE
CallerID De salida: (Solamente dígitos)$NWB#phones-outbound_cid$NWE
Dirección IP del teléfono: (optional)$NWB#phones-phone_ip$NWE
Dirección IP del ordenador: (optional)$NWB#phones-computer_ip$NWE
IP Del Servidor: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Contraseña: $NWB#phones-pass$NWE
Estado: $NWB#phones-status$NWE
Cuenta Activa: $NWB#phones-active$NWE
Tipo Del Teléfono: $NWB#phones-phone_type$NWE
Nombre Completo: $NWB#phones-fullname$NWE
Compañía: $NWB#phones-company$NWE
Foto: $NWB#phones-picture$NWE
Protocolo Del Cliente: $NWB#phones-protocol$NWE
GMT Local: (No ajustar para el DST)$NWB#phones-local_gmt$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=12111111111 display the ADD NEW PHONE ALIAS SCREEN +###################### + +if ($ADD==12111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
AGREGAR UN NUEVO TELÉFONO ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Alias ID:$NWB#phones-alias_id$NWE
Alias Nombre: $NWB#phones-alias_name$NWE
Teléfono Logins Lista: (comma separated)$NWB#phones-logins_list$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=13111111111 display the ADD NEW GROUP ALIAS SCREEN +###################### + +if ($ADD==13111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
AGREGAR UN NUEVO GRUPO DE ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Alias ID Grupo: $NWB#phones-group_alias_id$NWE
Grupo Alias Nombre: $NWB#phones-group_alias_name$NWE
Número CallerID: $NWB#phones-caller_id_number$NWE
Nombre CallerID: $NWB#phones-caller_id_name$NWE
Activo:
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=111111111111 display the ADD NEW SERVER SCREEN +###################### + +if ($ADD==111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
AGREGAR Un SERVIDOR NUEVO\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Del Servidor: $NWB#servers-server_id$NWE
Descripción Del Servidor: $NWB#servers-server_description$NWE
Dirección IP del Servidor: $NWB#servers-server_ip$NWE
Activo: $NWB#servers-active$NWE
Versión De Asterisk: $NWB#servers-asterisk_version$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=131111111111 display the ADD NEW CONF TEMPLATE SCREEN +###################### + +if ($ADD==131111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Añadir CONF NUEVA PLANTILLA\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Plantilla ID: $NWB#vicidial_conf_templates-template_id$NWE
Nombre de plantilla: $NWB#vicidial_conf_templates-template_name$NWE
Plantilla de contenidos: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=141111111111 display the ADD NEW CARRIER SCREEN +###################### + +if ($ADD==141111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
Añadir nueva compañía\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Portador de Identificación: $NWB#vicidial_server_carriers-carrier_id$NWE
Transportista Nombre: $NWB#vicidial_server_carriers-carrier_name$NWE
Descripción Carrier: $NWB#vicidial_server_carriers-carrier_description$NWE
Cadena de registro: $NWB#vicidial_server_carriers-registration_string$NWE
Plantilla ID: $NWB#vicidial_server_carriers-template_id$NWE
Cuenta Entrada: $NWB#vicidial_server_carriers-account_entry$NWE
Protocolo: $NWB#vicidial_server_carriers-protocol$NWE
Globals Serie de caracteres: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Entrada: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Del Servidor: $NWB#vicidial_server_carriers-server_ip$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=151111111111 display the ADD NEW TTS ENTRY SCREEN +###################### + +if ($ADD==151111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW TTS ENTRADA\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
Nombre TTS: $NWB#vicidial_tts_prompts-tts_name$NWE
Activo:
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW MUSIC EN ESPERA DE ENTRADA\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Música en espera de identificación: $NWB#vicidial_music_on_hold-moh_id$NWE
Música en espera Nombre: $NWB#vicidial_music_on_hold-moh_name$NWE
Orden aleatorio:
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW contestador\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
ID de correo de voz: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Activo:
Correo electrónico:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN +###################### + +if ($ADD==1111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
AGREGUE Una NUEVA CONFERENCIA\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Número de la Conferencia: (Solamente dígitos)$NWB#conferences-conf_exten$NWE
IP Del Servidor: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=11111111111111 display the ADD NEW VICIDIAL CONFERENCE SCREEN +###################### + +if ($ADD==11111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
ADD A NEW VICIDIAL CONFERENCE\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Número de la Conferencia: (Solamente dígitos)$NWB#conferences-conf_exten$NWE
IP Del Servidor: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + +###################################################################################################### +###################################################################################################### +####### 2 series, validates form data and inserts the new record into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=2 adds the new user to the system +###################### + +if ($ADD=="2") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
USUARIO NO AGREGADO - hay ya un usuario en el sistema con este número del usuario\n";} + else + { + if (ereg('AUTOGENERA',$user)) + { + $user = 'AUTOGENERA'; + } + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + { + echo "
USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
el nombre completo y la contraseña deben ser por lo menos 2 caracteres de largo\n"; + echo "
usted debe seleccionar un grupo de usuarios\n"; + } + else + { + if (ereg('AUTOGENERA',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + echo "
EL USUARIOAÑADIDO: $user\n"; + + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass) values('$user','$pass','$full_name','$user_level','$user_group','$phone_login','$phone_pass');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='ADD', record_id='$user', event_code='ADMIN ADD USER', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Activo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + } + } + + $ADD=3; + } + +###################### +# ADD=2A adds the copied new user to the system +###################### + +if ($ADD=="2A") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
USUARIO NO AGREGADO - hay ya un usuario en el sistema con este número del usuario\n";} + else + { + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + { + echo "
USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
el nombre completo y la contraseña deben ser por lo menos 2 caracteres de largo\n"; + echo "\n"; + } + else + { + if (ereg('AUTOGEN',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) SELECT \"$user\",campaign_id,campaign_rank,campaign_weight,\"0\" from vicidial_campaign_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='COPY', record_id='$user', event_code='ADMIN USUARIO DEL COPY', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Activo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + echo "
USER COPIED: $user copied from $source_user_id\n"; + echo "

\n"; + echo "Click here to go to the user record\n"; + echo "

\n"; + + } + } + exit; + } + +###################### +# ADD=21 adds the new campaign to the system +###################### + +if ($ADD==21) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAÚA NO AGREGADA - hay ya una campaña en el sistema con esta identificación\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + { + echo "
CAMPAÚA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; + echo "
el nombre de la campaña debe estar entre 6 y 40 caracteres en longitud\n"; + } + else + { + echo "
CAMPAÑA AÑADIDA: $campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,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,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$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','$SQLdate','Y','DISABLED','','','');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA ', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=20 adds copied new campaign to the system +###################### + +if ($ADD==20) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAÚA NO AGREGADA - hay ya una campaña en el sistema con esta identificación\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
CAMPAÚA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; + echo "
source la ID de la campaña debe estar entre 2 y 8 caracteres en longitud\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=22 adds the new campaign status to the system +###################### + +if ($ADD==22) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESTADO de la CAMPAÚA - hay ya una campaña - estado NO AGREGADO en el sistema con este nombre\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESTADO de la CAMPAÚA NO AGREGADO - hay ya un global-estado en el sistema con este nombre\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
ESTADO de la CAMPAÚA NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; + echo "
el nombre del estado debe estar entre 2 y 30 caracteres en longitud\n"; + } + else + { + echo "
ESTADO DE LA CAMPAÑA AÑADIDA: $campaign_id - $status\n"; + + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $SUB=22; + $ADD=31; + } + + +###################### +# ADD=23 adds the new campaign hotkey to the system +###################### + +if ($ADD==23) + { + $HKstatus_data = explode('-----',$HKstatus); + $status = $HKstatus_data[0]; + $status_name = $HKstatus_data[1]; + + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_hotkeys where campaign_id='$campaign_id' and hotkey='$hotkey' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
CAMPAÚA HOT KEY NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; + } + else + { + echo "
ACCESO DIRECTO A LA CAMPAÑA AÑADIDO: $campaign_id - $status - $hotkey\n"; + + $stmt="INSERT INTO vicidial_campaign_hotkeys values('$status','$hotkey','$status_name','$selectable','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA HOTKEY', event_sql=\"$SQL_log\", event_notes='Estado: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=23; + $ADD=31; + } + + +###################### +# ADD=25 adds the new campaign lead recycle entry to the system +###################### + +if ($ADD==25) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
El PLOMO de la CAMPAÑA RECICLA NO AGREGADO - hay ya unconducir-reciclaje para esta campaña con este estado\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos y menos de 43.200 segundos o 12 horas\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + } + else + { + echo "
EL PLOMO DE LA CAMPAÑA RECICLA AGREGADO: $campaign_id - $status - $attempt_delay\n"; + + $stmt="INSERT INTO vicidial_lead_recycle(campaign_id,status,attempt_delay,attempt_maximum,active) values('$campaign_id','$status','$attempt_delay','$attempt_maximum','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=25; + $ADD=31; + } + + +###################### +# ADD=26 adds the new auto alt dial status to the campaign +###################### + +if ($ADD==26) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - hay ya una entrada para esta campaña con este estado\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + } + else + { + echo "
ESTADO AUTO DEL DIAL DEL ALT AGREGADO: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $auto_alt_dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIAL', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA ALT DIAL', event_sql=\"$SQL_log\", event_notes='Estado: $auto_alt_dial_statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=26; + $ADD=31; + } + + +###################### +# ADD=27 adds the new campaign agent pause code entry to the system +###################### + +if ($ADD==27) + { + echo ""; + $stmt="SELECT count(*) from vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CÓDIGO DE LA PAUSA DEL AGENTE NO AGREGADO - hay ya una entrada para esta campaña con este code\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
CÓDIGO DE LA PAUSA DEL AGENTE NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; + } + else + { + echo "
EL CÓDIGO DE LA PAUSA DEL AGENTE AGREGÓ: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="INSERT INTO vicidial_pause_codes(campaign_id,pause_code,pause_code_name,billable) values('$campaign_id','$pause_code','$pause_code_name','$billable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Código De la Pausa: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=27; + $ADD=31; + } + + +###################### +# ADD=28 adds new status to the campaign dial statuses +###################### + +if ($ADD==28) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO AGREGADO - hay ya una entrada para esta campaña con este estado\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + } + else + { + echo "
EL ESTADO DEL DIAL DE LA CAMPAÑA AGREGÓ: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + #$SUB=28; + $ADD=31; + } + + +###################### +# ADD=211 adds the new list to the system +###################### + +if ($ADD==211) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
LISTA NO AGREGADA - hay ya una lista en el sistema con esta ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + { + echo "
LISTA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La ID de la lista debe estar entre 2 y 8 caracteres en longitud\n"; + echo "
El nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; + echo "
ID De la Lista must be greater than 100\n"; + } + else + { + echo "
LISTA AÑADIDA: $list_id\n"; + + $stmt="INSERT INTO vicidial_lists (list_id,list_name,campaign_id,active,list_description,list_changedate) values('$list_id','$list_name','$campaign_id','$active','$list_description','$SQLdate');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='ADD', record_id='$list_id', event_code='ADMIN ADD LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311; + } + + + +###################### +# ADD=2111 adds the new inbound group to the system +###################### + +if ($ADD==2111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GRUPO NO AGREGADO - hay ya un grupo en el sistema con esta ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La ID de grupo debe estar entre 2 y 20 caracteres en longitud y contener no ' -+'.\n"; + echo "
El color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; + } + 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,web_form_address_two,start_call_url,dispo_call_url) 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); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; + $rslt=mysql_query($stmtA, $link); + + echo "
GRUPO AÑADIDO: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='ADD', record_id='$group_id', event_code='ADMIN ADD Entrantes GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2011 adds copied inbound group to the system +###################### + +if ($ADD==2011) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GRUPO NO AGREGADO - hay ya un grupo en el sistema con esta ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La ID de grupo debe estar entre 2 y 20 caracteres en longitud y contener no ' -+'.\n"; + echo "
El color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; + } + 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,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); + + echo "
GRUPO AÑADIDO: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN GRUPO DE ENTRADA DEL COPY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2311 adds the new did to the system +###################### + +if ($ADD==2311) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DIDNOT AÑADIDO - ya hay un DID en el sistema con este ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DIDNOT AÑADIDO - ya hay un DID en el sistema con esta extensión\n";} + else + { + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + { + echo "
DIDNOT AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern $did_description - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='ADD', record_id='$did_id', event_code='ADMIN ADD DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3311; + } + + +###################### +# ADD=2411 adds copied did to the system +###################### + +if ($ADD==2411) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DIDNOT AÑADIDO - ya hay un DID en el sistema con esta extensión\n";} + else + { + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + { + echo "
DIDNOT AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='COPY', record_id='$did_id', event_code='ADMIN COPIA DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3311; + } + + +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU NO AGREGADOS - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
CALL MENU NO AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Llame Menú de identificación debe ser entre 2 y 50 caracteres de longitud y no contienen ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
CALL AGREGADOS MENU: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU NO AGREGADOS - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
CALL MENU NO AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Llame Menú de identificación debe ser entre 2 y 50 caracteres de longitud y no contienen ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CALL AGREGADOS MENU: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=21111 adds new remote agents to the system +###################### + +if ($ADD==21111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_remote_agents where server_ip='$server_ip' and user_start='$user_start';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
AGENTES ALEJADOS NO AGREGADOS - hay ya una entrada alejada de los agentes comenzando con esta ID del usuario\n";} + else + { + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENTES ALEJADOS NO AGREGADOS - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El comienzo de la ID del usuario y la extensión externa deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; + $rslt=mysql_query($stmt, $link); + + echo "
AGENTES REMOTO AÑADIDO: $user_start\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='ADD', record_id='$user_start', event_code='ADMIN ADD REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000; + } + +###################### +# ADD=211111 adds new user group to the system +###################### + +if ($ADD==211111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GRUPO de USUARIO NO AGREGADO - hay ya una entrada del grupo de usuario con este nombre\n";} + else + { + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
GRUPO de USUARIO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El nombre y la descripción de grupo deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; + $rslt=mysql_query($stmt, $link); + + echo "
GRUPO DE USUARIO AÑADIDO: $user_group\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='ADD', record_id='$user_group', event_code='ADMIN NUEVO GRUPO DE USUARIO', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + $ADD=100000; + } + +###################### +# ADD=2111111 adds new script to the system +###################### + +if ($ADD==2111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESCRITURA NO AGREGADA - hay ya una entrada de la escritura con este nombre\n";} + else + { + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
ESCRITURA NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El nombre, la descripción y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + echo "
ESCRITURA AGREGADA: $script_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ESCRITURAS', event_type='ADD', record_id='$script_id', event_code='ADMIN AGREGUE LA ESCRITURA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=1000000; + } + + +###################### +# ADD=21111111 adds new filter to the system +###################### + +if ($ADD==21111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
FILTRO NO AGREGADO - hay ya una entrada del filtro con esta identificación\n";} + else + { + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRO NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Filtre la identificación, nombre y el SQL debe ser por lo menos 2 caracteres en longitud\n"; + } + 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='" . mysql_real_escape_string($lead_filter_sql) . "';"; + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|";} + echo "
EL FILTRO AGREGÓ: $lead_filter_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTROS', event_type='ADD', record_id='$lead_filter_id', event_code='ADMIN AGREGUE EL FILTRO', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000000; + } + + +###################### +# ADD=211111111 adds new call time definition to the system +###################### + +if ($ADD==211111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA NO AGREGADA - hay ya una entrada de tiempo de la llamada con esta identificación\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
TIEMPO DE LA LLAMADA AGREGADO: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111; + } + + +###################### +# ADD=2111111111 adds new state call time definition to the system +###################### + +if ($ADD==2111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - hay ya una entrada de tiempo de la llamada con esta identificación\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Indique que identificación del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
TIEMPO DE LA LLAMADA DEL ESTADO AGREGADO: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES_STATE', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111; + } + + +###################### +# ADD=231111111 adds new shift definition to the system +###################### + +if ($ADD==231111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MAYÚS DEFINICIÓN NO AÑADIDO - ya hay un cambio de entrada con este ID\n";} + else + { + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
MAYÚS DEFINICIÓN NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Identificación y cambio de nombre debe ser al menos de 2 caracteres de longitud\n"; + echo "
Hora de inicio cambio debe ser de 4 dígitos de longitud y una hora válida\n"; + echo "
Longitud cambio debe ser de 5 caracteres de longitud y 24 horas o menos\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
MAYÚS AÑADIDO:$shift_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='ADD', record_id='$shift_id', event_code='ADMIN ADD SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111; + } + + +###################### +# ADD=21111111111 adds new phone to the system +###################### + +if ($ADD==21111111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TELÉFONO NO AGREGADO - hay ya un teléfono en el sistema con esta extensión/servidor\n";} + else + { + $stmt="SELECT count(*) from phones where login='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - ya hay un teléfono en el sistema con esta información de acceso\n";} + else + { + $stmt="SELECT count(*) from phones_alias where alias_id='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - ya existe un Teléfono de alias en el sistema con esta información de acceso\n";} + else + { + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a ID de correo de voz in the system with this ID\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
TELÉFONO NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Los siguientes campos deben disponer de datos: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
EL TELÉFONO AGREGÚ\n"; + + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + } + $ADD=31111111111; + } + + +###################### +# ADD=22111111111 adds new phone alias to the system +###################### + +if ($ADD==22111111111) + { + echo ""; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TELÉFONO ALIAS NO AÑADIDO - ya existe un alias de teléfono en el sistema con este ID\n";} + else + { + $stmt="SELECT count(*) from phones where login='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TELÉFONO ALIAS NO AÑADIDO - ya existe un Teléfono de inicio de sesión en el sistema con este ID\n";} + else + { + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
TELÉFONO ALIAS NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
TELÉFONO ALIAS AÑADIDO\n"; + + $stmt="INSERT INTO phones_alias (alias_id,alias_name,logins_list) values('$alias_id','$alias_name','$logins_list');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='ADD', record_id='$alias_id', event_code='ADMIN ADD TELÉFONO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=32111111111; + } + + +###################### +# ADD=23111111111 adds new group alias to the system +###################### + +if ($ADD==23111111111) + { + echo ""; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ALIAS GRUPO NO AÑADIDO - ya existe un alias de teléfono en el sistema con este ID\n";} + else + { + if (preg_match("/AGENT_PHONE|CUSTOMER|CAMPAIGN|NONE/",$group_alias_id)) + {echo "
ALIAS GRUPO NO AÑADIDO - no puede usar palabras reservadas en el grupo de alias\n";} + else + { + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ALIAS GRUPO NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
GRUPO DE ALIAS AÑADIDO\n"; + + $stmt="INSERT INTO groups_alias (group_alias_id,group_alias_name,caller_id_number,caller_id_name,active) values('$group_alias_id','$group_alias_name','$caller_id_number','$caller_id_name','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='ADD', record_id='$group_alias_id', event_code='ADMIN ADD GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=33111111111; + } + + +###################### +# ADD=211111111111 adds new server to the system +###################### + +if ($ADD==211111111111) + { + echo ""; + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SERVIDOR NO AGREGADO - hay ya un servidor en el sistema con esta identificación\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVIDOR NO AGREGADO - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
SERVIDOR AGREGADO\n"; + + $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='ADD', record_id='$server_id', event_code='ADMIN ADD SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111111; + } + + +###################### +# ADD=221111111111 adds the new vicidial server trunk record to the system +###################### + +if ($ADD==221111111111) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - el número de troncos vicidial es demasiado alto: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - hay ya un expediente del servidor-tronco para esta campaña\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; + } + else + { + echo "
EL EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL AGREGÓ: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + $stmt="INSERT INTO vicidial_server_trunks(server_ip,campaign_id,dedicated_trunks,trunk_restriction) values('$server_ip','$campaign_id','$dedicated_trunks','$trunk_restriction');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS_TRUNK', event_type='ADD', record_id='$server_ip', event_code='ADMIN ADD SERVIDOR TRUNK', event_sql=\"$SQL_log\", event_notes='campaign: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=311111111111; + } + + +###################### +# ADD=231111111111 adds new conf template to the system +###################### + +if ($ADD==231111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CONF PLANTILLA NO AÑADIDO - ya hay una plantilla en el sistema con este ID\n";} + else + { + if (strlen($template_id) < 2) + {echo "
CONF PLANTILLA NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
CONF PLANTILLA AÑADIDO\n"; + + $stmt="INSERT INTO vicidial_conf_templates (template_id,template_name,template_contents) values('$template_id','$template_name','$template_contents');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='ADD', record_id='$template_id', event_code='ADMIN ADD CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111; + } + + +###################### +# ADD=241111111111 adds new server carrier to the system +###################### + +if ($ADD==241111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TRANSPORTISTA NO AÑADIDO - ya existe un soporte en el sistema con este ID\n";} + else + { + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + {echo "
TRANSPORTISTA NO AÑADIDO - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
CARRIER ADDED\n"; + + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='ADD', record_id='$carrier_id', event_code='ADMIN ADD CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111; + } + + +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS entrada no AGREGADOS - ya hay una entrada de TTS en el sistema con este ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS entrada no AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
TTS añadido la entrada de\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MÚSICA EN ESPERA entrada no AGREGADOS - ya hay una entrada en el Ministerio de Salud en el sistema con este ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MÚSICA EN ESPERA entrada no AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
MÚSICA EN ESPERA añadido la entrada de\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Contestador NO AGREGADOS - ya existe un buzón de voz en el sistema con este ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Contestador NO AGREGADOS - ya hay un teléfono en el sistema de correo de voz con este ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
Contestador NO AGREGADOS - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
Contestador AGREGADOS\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + +###################### +# ADD=2111111111111 adds new conference to the system +###################### + +if ($ADD==2111111111111) + { + echo ""; + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CONFERENCIA NO AGREGADA - hay ya una conferencia en el sistema con esta identificación y servidor\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENCIA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
LA CONFERENCIA AGREGÚ\n"; + + $stmt="INSERT INTO conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111111; + } + + +###################### +# ADD=21111111111111 adds new vicidial conference to the system +###################### + +if ($ADD==21111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENCIA NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
VICIDIAL LA CONFERENCIA AGREGÚ\n"; + + $stmt="INSERT INTO vicidial_conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=31111111111111; + } + + +###################### +# ADD=221111111111111 adds the new system status to the system +###################### + +if ($ADD==221111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESTADO DE SISTEMA NO AGREGADO - there is already a campaign-status in the system with this name: $row[0]\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESTADO DE SISTEMA NO AGREGADO - there is already a global-status in the system with this name\n";} + else + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
ESTADO DE SISTEMA NO AGREGADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 8 caracteres en longitud\n"; + echo "
el nombre del estado debe estar entre 2 y 30 caracteres en longitud\n"; + } + else + { + echo "
EL ESTADO DE SISTEMA AGREGÓ: $status_name - $status\n"; + + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='ADD', record_id='$status', event_code='ADMIN ADD SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=321111111111111; + } + + +###################### +# ADD=231111111111111 adds the new status category to the system +###################### + +if ($ADD==231111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CATEGORÍA DEL ESTADO NO AGREGADA - hay ya una categoría del estado en el sistema con estaidentificación: $row[0]\n";} + else + { + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + { + echo "
CATEGORÍA DEL ESTADO NO AGREGADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación debe estar entre 2 y 20 caracteres en longitud\n"; + echo "
el nombre conocido debe estar entre 2 y 50 caracteres en longitud\n"; + } + else + { + echo "
STATUS CATEGORÍA ADDED: $vsc_id - $vsc_name\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
ERROR: Hay ya sistema de 4 categorías del estado a la exhibición deTimeOnVDAD\n"; + } + + $stmt="INSERT INTO vicidial_status_categories (vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category) values('$vsc_id','$vsc_name','$vsc_description','$tovdad_display','$sale_category','$dead_lead_category');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='ADD', record_id='$vsc_id', event_code='ADMIN ADD STATUS CATEGORÍA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111111; + } + + + +###################### +# ADD=241111111111111 adds the new qc status code to the system +###################### + +if ($ADD==241111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CC Código de estado no se añade- ya hay una qc código de estado en el sistema con el nombre: $row[0]\n";} + else + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
CC Código de estado no se añade- Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
código debe estar entre 1 y 8 caracteres de longitud\n"; + echo "
nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; + } + else + { + echo "
CC Código AÑADIDO:$code_name - $code\n"; + + $stmt="INSERT INTO vicidial_qc_codes (code,code_name) values('$code','$code_name');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCSTATUSES', event_type='ADD', record_id='$code', event_code='ADMIN ADD QC STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111111; + } + + + +###################################################################################################### +###################################################################################################### +####### 4 series, record modifications submitted and DB is modified, then on to 3 series forms below +###################################################################################################### +###################################################################################################### + + + +###################### +# ADD=4A submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4A") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
USUARIO MODIFICADO - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Activo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4B submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4B") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
USUARIO MODIFICADO - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Activo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4 submit user modifications to the system +###################### + +if ($ADD==4) + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; + } + else + { + echo "
USUARIO MODIFICADO: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Activo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3; # go to user modification below + } + +###################### +# ADD=41 submit campaign modifications to the system - DETAIL +###################### + +if ($ADD==41) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $survey_camp_record_dir = '/home/survey'; + $survey_dtmf_digits = '1238'; + $survey_first_audio_file = 'US_pol_survey_hello'; + $survey_method = 'AGENT_XFER'; + $survey_ni_audio_file = ''; + $survey_ni_digit = '8'; + $survey_ni_status = 'NI'; + $survey_no_response_action = 'OPTIN'; + $survey_opt_in_audio_file = 'US_pol_survey_transfer'; + $survey_response_digit_map = '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|'; + $survey_xfer_exten = '8300'; + $voicemail_ext = ''; + $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
LISTAS DE CAMBIO DE ACTIVO"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
CAMPAÚA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; + echo "
|$campaign_name|$active|\n"; + } + else + { + echo "
CAMPAÑA MODIFICADA: $campaign_id\n"; + + if ( ($dial_method != 'MANUAL') and ($dial_method != 'Entrantes_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; + } + else + { + if ($dial_level_override > 0) + { + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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', $adlSQL 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',drop_action='$drop_action',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',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + if ($reset_hopper == 'Y') + { + echo "
REAJUSTE DE LA TOLVA DEL PLOMO DE LA CAMPAÚA\n"; + echo "
- Espera 1 minuto antes de marcar el número siguiente\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=42 modify/delete campaign status in the system +###################### + +if ($ADD==42) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESTADO de la CAMPAÚA NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; + echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO: $campaign_id - $status\n"; + + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
EL ESTADO DE ENCARGO DE LA CAMPAÑA SE MODIFICÓ: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=43 delete campaign hotkey in the system +###################### + +if ($ADD==43) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
CAMPAÚA HOT KEY NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; + echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
LA CAMPAÚA DE ENCARGO HOT KEY SUPRIMIÚ: $campaign_id - $status - $hotkey\n"; + + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Estado: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=44 submit campaign modifications to the system - Basic View +###################### + +if ($ADD==44) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $voicemail_ext = ''; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
LISTAS DE CAMBIO DE ACTIVO"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
CAMPAÚA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; + } + else + { + echo "
CAMPAÑA MODIFICADA: $campaign_id\n"; + + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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',hopper_level='$hopper_level', $adlSQL lead_filter_id='$lead_filter_id',dial_method='$dial_method',adaptive_intensity='$adaptive_intensity',campaign_changedate='$SQLdate',list_order_mix='$list_order_mix' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_hopper == 'Y') + { + echo "
REAJUSTE DE LA TOLVA DEL PLOMO DE LA CAMPAÚA\n"; + echo "
- Espera 1 minuto antes de marcar el número siguiente\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=34; # go to campaign modification form below + } + + +###################### +# ADD=45 modify campaign lead recycle in the system +###################### + +if ($ADD==45) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos y menos de 43.200 segundos o 12 horas\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=47 modify agent pause code in the system +###################### + +if ($ADD==47) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
CÓDIGO DE LA PAUSA DEL AGENTE NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_nombre de código debe estar entre 2 y 30 caracteres de longitud\n"; + } + else + { + echo "
AGENTE PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=48 modify campaign QC settings in the system +###################### +if ($ADD==48) + { + if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
AJUSTES CC NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
AJUSTES CC MODIFICADOS: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=40A modify campaign survey settings in the system +###################### + +if ($ADD=='40A') + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
ENCUESTA DE VALORES NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + } + else + { + echo "
ENCUESTA DE AJUSTES MODIFICADOS: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=49 modify campaign list mix in the system +###################### + +if ($ADD==49) + { + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### + if ($stage=='MODIFY') + { + echo ""; + + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; + + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) + { + echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $list_id\n"; + } + } + + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MEZCLA DE LA LISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
MEZCLA DE LA LISTA NO MODIFICADA: Usted no puede suprimir la entrada pasada del list_id de una mezcla dela lista\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA SE MODIFICÓ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
MEZCLA DE LA LISTA NO AGREGADA- Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
MEZCLA DE LA LISTA NO AGREGADA- Hay ya una mezcla de la lista con esta identificación en el sistema\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN NUEVA CAMPAÑA LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA AGREGÓ:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MEZCLA DE LA LISTA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MEZCLA DE LA LISTA SUPRIMIDA:$campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MEZCLA DE LA LISTA NO ACTIVADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Mezcla lista: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA MEZCLA DE LA LISTA ACTIVÓ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=411 submit list modifications to the system +###################### + +if ($ADD==411) + { + if ($LOGmodify_lists==1) + { + echo ""; + + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + { + echo "
LISTA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
LISTA MODIFICADA: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_list == 'Y') + { + echo "
REAJUSTANDO LA LISTA - LLAMADA - ESTADO\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311; # go to list modification form below + } + + +###################### +# ADD=4111 modify in-group info in the system +###################### + +if ($ADD==4111) + { + if ($LOGmodify_ingroups==1) + { + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) + { + echo "
GRUPO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
GRUPO MODIFICADO: $group_id\n"; + + $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_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3111; # go to in-group modification form below + } + + +###################### +# ADD=4311 modify did info in the system +###################### + +if ($ADD==4311) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
DID MODIFICADOS: $did_pattern\n"; + + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3311; # go to did modification form below + } + + +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
CALL MENU SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
CALL menú modificado: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + if ($LOGmodify_remoteagents==1) + { + echo ""; + + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENTES ALEJADOS NO MODIFICADOS - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El comienzo de la ID del usuario y la extensión externa deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
LOS AGENTES ALEJADOS SE MODIFICARON\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below + } + + +###################### +# ADD=411111 modify user group info in the system +###################### + +if ($ADD==411111) + { + if ($LOGmodify_usergroups==1) + { + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
GRUPO de USUARIO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El nombre y la descripción de grupo deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); + + echo "
GRUPO DE USUARIO MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY GRUPO DE USUARIOS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111; # go to user group modification form below + } + + +###################### +# ADD=4111111 modify script in the system +###################### + +if ($ADD==4111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
ESCRITURA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
El nombre, la descripción y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $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); + + echo "
LA ESCRITURA SE MODIFICÓ\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ESCRITURAS', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3111111; # go to script modification form below + } + + +###################### +# ADD=41111111 modify filter in the system +###################### + +if ($ADD==41111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRO NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Filtre la identificación, nombre y el SQL debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $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); + + echo "
FILTRO MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTROS', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31111111; # go to filter modification form below + } + + +###################### +# ADD=411111111 modify call time in the system +###################### + +if ($ADD==411111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
TIEMPO DE LA LLAMADA NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TIEMPO DE LA LLAMADA MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111111; # go to call time modification form below + } + + +###################### +# ADD=4111111111 modify state call time in the system +###################### + +if ($ADD==4111111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Indique que identificación del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below + } + + +###################### +# ADD=431111111 modify shift in the system +###################### + +if ($ADD==431111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
SHIFT DEFINITION NOT MODIFIED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Identificación y cambio de nombre debe ser al menos de 2 caracteres de longitud\n"; + echo "
Hora de inicio cambio debe ser de 4 dígitos de longitud y una hora válida\n"; + echo "
Longitud cambio debe ser de 5 caracteres de longitud y 24 horas o menos\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
MAYÚS MODIFICADOS\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=331111111; # go to shift modification form below + } + + +###################### +# ADD=41111111111 modify phone record in the system +###################### + +if ($ADD==41111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
TELÉFONO NO MODIFICADO - hay ya un teléfono en el sistema con esta extensión/servidor\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
TELÉFONO NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
TELÉFONO MODIFICADO: $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='" . 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', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFICAR EL TELÉFONO', event_sql=\"$SQL_log\", event_notes='IP Del Servidor: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below + } + + +###################### +# ADD=42111111111 modify phone alias record in the system +###################### + +if ($ADD==42111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
TELÉFONO ALIAS NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
TELÉFONO ALIAS MODIFICADOS: $alias_id\n"; + + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFICAR TELÉFONO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below + } + + +###################### +# ADD=43111111111 modify group alias record in the system +###################### + +if ($ADD==43111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ALIAS GRUPO NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
GRUPO DE ALIAS MODIFICADOS: $alias_id\n"; + + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFICAR GRUPO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below + } + + +###################### +# ADD=411111111111 modify server record in the system +###################### + +if ($ADD==411111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
SERVIDOR NOT MODIFIED - there is already a server in the system with this server_id\n";} + else + { + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
SERVIDOR NO MODIFICADO - hay ya un servidor en el sistema con este server_ip\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVIDOR NO MODIFICADO - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
SERVIDOR MODIFICADO: $server_ip\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFICAR EL SERVIDOR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=421111111111 modify vicidial server trunks record in the system +###################### + +if ($ADD==421111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - el número de troncos vicidial es demasiado alto: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL MODIFICADO: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTRONCOS', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFICAR EL SERVIDOR TRUNK', event_sql=\"$SQL_log\", event_notes='Campaña: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=431111111111 modify conf template record in the system +###################### '$template_id','$template_name','$template_contents' + +if ($ADD==431111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
CONF PLANTILLA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFICAR CONF PLANTILLA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below + } + + +###################### +# ADD=441111111111 modify carrier record in the system +###################### + +if ($ADD==441111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
TRANSPORTISTA NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + echo "
PORTEADOR MODIFICADOS: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFICAR PORTEADOR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS ENTRADA SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS entrada modificada: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MÚSICA EN ESPERA DE ENTRADA SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MÚSICA EN ESPERA entrada modificada: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MÚSICA EN ESPERA DE ENTRADA SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MÚSICA EN ESPERA entrada modificada: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
Contestador SIN MODIFICAR - Vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Contestador MODIFICADOS: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below + } + + +###################### +# ADD=4111111111111 modify conference record in the system +###################### + +if ($ADD==4111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
CONFERENCIA - hay ya una conferencia en el sistema con esta extensión - servidor NO MODIFICADO\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENCIA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
CONFERENCIA MODIFICADA: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below + } + + +###################### +# ADD=41111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==41111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL CONFERENCIA - hay ya una conferencia en el sistema con esta extensión - servidor NO MODIFICADO\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENCIA NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + echo "
VICIDIAL CONFERENCIA MODIFICADA: $conf_exten\n"; + + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below + } + + +###################### +# ADD=411111111111111 modify vicidial system settings +###################### + +if ($ADD==411111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + echo "
AJUSTES DEL SISTEMA DE VICIDIAL MODIFICADOS\n"; + + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSETTINGS', event_type='MODIFY', record_id='system_settings', event_code='ADMIN MODIFY SYSTEM SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111111111111; # go to vicidial system settings form below + } + + +###################### +# ADD=421111111111111 modify/delete system status in the system +###################### + +if ($ADD==421111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($status) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$status)) ) + { + echo "
ESTADO DE SISTEMA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado de sistema no puede ser un estado reservado:B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
el estado de sistema necesita ser por lo menos los caracteres 1 enlongitud\n"; + } + else + { + echo "
SYSTEM STATUS DELETED: $status\n"; + + $stmt="DELETE FROM vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='DELETE', record_id='$status', event_code='ADMIN DELETE SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
ESTADO DE SISTEMA NO MODIFICADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado de sistema necesita ser por lo menos los caracteres 1 enlongitud\n"; + echo "
el nombre del estado de sistema necesita ser por lo menos loscaracteres 1 en longitud\n"; + } + else + { + echo "
ESTADO DE SISTEMA MODIFICADO: $status\n"; + + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='MODIFY', record_id='$status', event_code='ADMIN MODIFY SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=321111111111111; # go to system settings modification form below + } + + +###################### +# ADD=431111111111111 modify/delete status category in the system +###################### + +if ($ADD==431111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + { + echo "
CATEGORÍA DEL ESTADO NO MODIFICADA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la categoría del estado no puede ser una categoría reservada:UNDEFINED\n"; + echo "
la categoría del estado necesita ser por lo menos 2 caracteres enlongitud\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
CATEGORÍA DEL ESTADO SUPRIMIDA: $vsc_id\n"; + + $stmt="DELETE FROM vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE STATUS CATEGORÍA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
LA CATEGORÍA DEL ESTADO SE MODIFICÓ: $vsc_id\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
ERROR: Hay ya sistema de 4 categorías del estado a la exhibición deTimeOnVDAD\n"; + } + + $stmt="UPDATE vicidial_status_categories SET vsc_name='$vsc_name',vsc_description='$vsc_description',tovdad_display='$tovdad_display',sale_category='$sale_category',dead_lead_category='$dead_lead_category' where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY STATUS CATEGORÍA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=331111111111111; # go to system settings modification form below + } + + +###################### +# ADD=441111111111111 modify/delete qc status code in the system +###################### + +if ($ADD==441111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
CC Código del Estatuto no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
la qc código de estado debe ser por lo menos 1 caracteres de longitud\n"; + } + else + { + echo "
CC Código SUPRIMIDO:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
CC ESTADO CÓDIGO NO MODIFICADA- Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la qc código de estado debe ser por lo menos 1 caracteres de longitud\n"; + echo "
el código de estado qc nombre debe ser por lo menos 1 caracteres de longitud\n"; + } + else + { + echo "
CC Código MODIFICADOS:$code\n"; + + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below + } + + + + +###################################################################################################### +###################################################################################################### +####### 5 series, delete records confirmation +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=5 confirmation before deletion of user +###################### + +if ($ADD==5) + { + echo ""; + + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + { + echo "
USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Usuario be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DEL USUARIO: $user\n"; + echo "

Chasque aquí para suprimir a usuario $user


\n"; + } + + $ADD='3'; # go to user modification below + } + +###################### +# ADD=51 confirmation before deletion of campaign +###################### + +if ($ADD==51) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + { + echo "
CAMPAÑA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DE LA CAMPAÑA: $campaign_id\n"; + echo "

Chasque aquí para suprimir campaña $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=52 confirmation before logging all agents out of campaign of campaign +###################### + +if ($ADD==52) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
AGENTES NO REGISTRADOS FUERA DE CAMPAÑA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN DEL REGISTRO DE ESTADO DE LA MÁQUINA DEL AGENTE: $campaign_id\n"; + echo "

Chasque aquí para registrar todos los agentes fuera de $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record +###################### + +if ($ADD==53) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC NO DESPEJÓ PARA LA CAMPAÑA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN CLARA DE VDAC: $campaign_id\n"; + echo "

Chasque aquí para suprimir el más viejo VIVEN expediente en VDACpara $campaign_id


\n"; + } + + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + +###################### +# ADD=511 confirmation before deletion of list +###################### + +if ($ADD==511) + { + echo ""; + + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + { + echo "
LISTA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DE LA LISTA: $list_id\n"; + echo "

Chasque aquí para suprimir la lista y todos sus plomos $list_id


\n"; + } + + $ADD='311'; # go to campaign modification below + } + +###################### +# ADD=5111 confirmation before deletion of in-group +###################### + +if ($ADD==5111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + { + echo "
EN-GRUPO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DE EN-GRUPO: $group_id\n"; + echo "

Chasque aquí para suprimir a en-grupo $group_id


\n"; + } + + $ADD='3111'; # go to in-group modification below + } + +###################### +# ADD=5311 confirmation before deletion of did +###################### + +if ($ADD==5311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + { + echo "
DIDNOT SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + echo "
DID SUPRESIÓN DE CONFIRMACIÓN: $menu_id\n"; + echo "

Haga clic aquí para eliminarDID $did_id


\n"; + } + + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
CONVOCATORIA menú de eliminación CONFIRMACIÓN: $menu_id\n"; + echo "

Haga clic aquí para eliminar CALL MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } + +###################### +# ADD=51111 confirmation before deletion of remote agent record +###################### + +if ($ADD==51111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + { + echo "
AGENTE ALEJADO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN ALEJADA DE LA CANCELADURA DEL AGENTE: $remote_agent_id\n"; + echo "

Chasque aquí para suprimir el agente alejado $remote_agent_id


\n"; + } + + $ADD='31111'; # go to remote agent modification below + } + +###################### +# ADD=511111 confirmation before deletion of user group record +###################### + +if ($ADD==511111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + { + echo "
GRUPO DE USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Usuario_group be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DEL GRUPO DE USUARIO: $user_group\n"; + echo "

Chasque aquí para suprimir a grupo de usuario $user_group


\n"; + } + + $ADD='311111'; # go to user group modification below + } + +###################### +# ADD=5111111 confirmation before deletion of script record +###################### + +if ($ADD==5111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + { + echo "
ESCRITURA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Script_id must be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DE LA ESCRITURA: $script_id\n"; + echo "

Chasque aquí para suprimir la escritura $script_id


\n"; + } + + $ADD='3111111'; # go to script modification below + } + +###################### +# ADD=51111111 confirmation before deletion of filter record +###################### + +if ($ADD==51111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + { + echo "
FILTRO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación del filtro debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; + echo "

Chasque aquí para suprimir el filtro$lead_filter_id


\n"; + } + + $ADD='31111111'; # go to filter modification below + } + +###################### +# ADD=511111111 confirmation before deletion of call time record +###################### + +if ($ADD==511111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
TIEMPO DE LA LLAMADA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA: $call_time_id\n"; + echo "

Haga clic aquí para eliminarcall time $call_time_id


\n"; + } + + $ADD='311111111'; # go to call time modification below + } + +###################### +# ADD=5111111111 confirmation before deletion of state call time record +###################### + +if ($ADD==5111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO: $call_time_id\n"; + echo "

Haga clic aquí para eliminarstate call time $call_time_id


\n"; + } + + $ADD='3111111111'; # go to state call time modification below + } + +###################### +# ADD=531111111 confirmation before deletion of shift record +###################### + +if ($ADD==531111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
SHIFT no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + echo "
MAYÚS SUPRESIÓN DE CONFIRMACIÓN:$shift_id\n"; + echo "

Haga clic aquí para suprimir el cambio $shift_id


\n"; + } + + $ADD='331111111'; # go to call time modification below + } + +###################### +# ADD=51111111111 confirmation before deletion of phone record +###################### + +if ($ADD==51111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
TELÉFONO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; + } + else + { + echo "
CONFIRMACIÓN DE LA CANCELADURA DEL TELÉFONO: $extension - $server_ip\n"; + echo "

Chasque aquí para suprimir el teléfono $extension - $server_ip


\n"; + } + $ADD='31111111111'; # go to phone modification below + } + + +###################### +# ADD=52111111111 confirmation before deletion of phone alias record +###################### + +if ($ADD==52111111111) + { + echo ""; + + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
TELÉFONO ALIAS no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + echo "
TELÉFONO ALIAS SUPRESIÓN DE CONFIRMACIÓN: $alias_id\n"; + echo "

Haga clic aquí para eliminar alias teléfono $alias_id


\n"; + } + $ADD='32111111111'; # go to phone alias modification below + } + + +###################### +# ADD=53111111111 confirmation before deletion of group alias record +###################### + +if ($ADD==53111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
GRUPO DE ALIAS no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Alias ID Grupo must be at least 2 characters in length\n"; + } + else + { + echo "
ALIAS GRUPO DE SUPRESIÓN DE CONFIRMACIÓN: $group_alias_id\n"; + echo "

Haga clic aquí para suprimir el grupo de alias $group_alias_id


\n"; + } + $ADD='33111111111'; # go to group alias modification below + } + + +###################### +# ADD=511111111111 confirmation before deletion of server record +###################### + +if ($ADD==511111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
SERVIDOR NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
ID Del Servidor be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; + } + else + { + echo "
SERVIDOR DELETION CONFIRMATION: $server_id - $server_ip\n"; + echo "

Chasque aquí para suprimir el teléfono $server_id - $server_ip


\n"; + } + $ADD='311111111111'; # go to server modification below + } + + +###################### +# ADD=531111111111 confirmation before deletion of conf template record +###################### + +if ($ADD==531111111111) + { + echo ""; + + if (strlen($template_id) < 2) + { + echo "
CONF PLANTILLA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Plantilla de Identificación ser al menos de 2 caracteres de longitud\n"; + } + else + { + echo "
CONF PLANTILLA SUPRESIÓN DE CONFIRMACIÓN: $template_id - $template_name\n"; + echo "

Haga clic aquí para eliminar conf plantilla $template_id - $template_name


\n"; + } + $ADD='331111111111'; # go to conf template modification below + } + + +###################### +# ADD=541111111111 confirmation before deletion of carrier record +###################### + +if ($ADD==541111111111) + { + echo ""; + + if (strlen($carrier_id) < 2) + { + echo "
TRANSPORTISTA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Portador de Identificación ser al menos de 2 caracteres de longitud\n"; + } + else + { + echo "
PORTEADOR SUPRESIÓN DE CONFIRMACIÓN: $carrier_id - $carrier_name\n"; + echo "

Haga clic aquí para suprimir el transportista $carrier_id - $carrier_name


\n"; + } + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS entrada no DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS DE ENTRADA SUPRESIÓN DE CONFIRMACIÓN: $tts_id - $tts_name\n"; + echo "

Haga clic aquí para eliminar TTS entrada $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
MÚSICA EN ESPERA DE ENTRADA no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
MÚSICA EN ESPERA DE ENTRADA SUPRESIÓN DE CONFIRMACIÓN: $moh_id - $moh_name\n"; + echo "

Haga clic aquí para borrar música en espera de entrada $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
Contestador no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
ID de correo de voz be at least 2 characters in length\n"; + } + else + { + echo "
Contestador SUPRESIÓN DE CONFIRMACIÓN: $voicemail_id - $fullname\n"; + echo "

Haga clic aquí para eliminar buzón de voz $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } + + +###################### +# ADD=5111111111111 confirmation before deletion of conference record +###################### + +if ($ADD==5111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; + } + else + { + echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Chasque aquí para suprimir el teléfono $conf_exten - $server_ip


\n"; + } + $ADD='3111111111111'; # go to conference modification below + } + + +###################### +# ADD=51111111111111 confirmation before deletion of vicidial conference record +###################### + +if ($ADD==51111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; + } + else + { + echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Chasque aquí para suprimir el teléfono $conf_exten - $server_ip


\n"; + } + $ADD='31111111111111'; # go to vicidial conference modification below + } + + + +###################################################################################################### +###################################################################################################### +####### 6 series, delete records +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=6 delete user record +###################### + +if ($ADD==6) + { + echo ""; + + if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) + { + echo "
USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Usuario be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_users where user='$user' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USUARIOS', event_type='DELETE', record_id='$user', event_code='ADMIN DELETE USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DEL USUARIO TERMINADA: $user\n"; + echo "

\n"; + } + + $ADD='0'; # go to user list + } + +###################### +# ADD=61 delete campaign record +###################### + +if ($ADD==61) + { + echo ""; + + if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) + { + echo "
CAMPAÑA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_campaigns where campaign_id='$campaign_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_statuses where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_hotkeys where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_callbacks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_lead_recycle where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_server_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_server_trunks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_pause_codes where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaigns_list_mix where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($campaign_id)\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA CANCELADURA DE LA CAMPAÑA TERMINÓ: $campaign_id\n"; + echo "

\n"; + } + + $ADD='10'; # go to campaigns list + } + + +###################### +# ADD=62 Logout all agents from a campaign +###################### + +if ($ADD==62) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
AGENTES NO REGISTRADOS FUERA DE CAMPAÑA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; + } + else + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='LOGOUT', record_id='$campaign_id', event_code='ADMIN LOGOUT CAMPAIGN AGENTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
EL REGISTRO DE ESTADO DE LA MÁQUINA DEL AGENTE TERMINÓ: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD='31'; # go to campaign modification below + } + + +###################### +# ADD=63 Emergency VDAC Jam Clear +###################### + +if ($ADD==63) + { + if ($LOGmodify_campaigns==1) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC NO DESPEJÓ PARA LA CAMPAÑA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Campaña_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_auto_calls where status='LIVE' and campaign_id='$campaign_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN JAM', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
DE REGISTRO PASADO DE VDAC DESPEJADA PARA LA CAMPAÑA: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + + +###################### +# ADD=65 delete campaign lead recycle in the system +###################### + +if ($ADD==65) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
EL PLOMO DE LA CAMPAÑA RECICLA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + } + else + { + echo "
EL PLOMO DE LA CAMPAÑA RECICLA SUPRIMIDO: $campaign_id - $status - $attempt_delay\n"; + + $stmt="DELETE FROM vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=66 delete auto alt dial status from the campaign +###################### + +if ($ADD==66) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO - este estado del dial del alt del automóvil no está en esta campaña\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + } + else + { + echo "
ESTADO AUTO DEL DIAL DEL ALT SUPRIMIDO: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $auto_alt_dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIALS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN ALT DIAL', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=26; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=67 delete agent pause code in the system +###################### + +if ($ADD==67) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + { + echo "
CÓDIGO DE LA PAUSA DE LA CAMPAÑA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + } + else + { + echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; + + $stmt="DELETE FROM vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Estado: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=68 remove campaign dial status +###################### + +if ($ADD==68) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO QUITADO - este estado del dial no se selecciona para esta campaña\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESTADO DEL DIAL DE LA CAMPAÑA NO QUITADO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + } + else + { + echo "
EL ESTADO DEL DIAL DE LA CAMPAÑA QUITÓ: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUSES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Estado: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + #$SUB=28; + $ADD=31; # go to campaign modification form below + } + +###################### +# ADD=611 delete list record and all leads within it +###################### + +if ($ADD==611) + { + echo ""; + + if ( ( strlen($list_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_lists < 1) ) + { + echo "
LISTA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_lists where list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($list_id)\n"; + $stmt="DELETE from vicidial_hopper where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
QUITAR LOS PLOMOS DE LA LISTA DE LA TABLA DE VICIDIAL_LIST\n"; + $stmt="DELETE from vicidial_list where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='DELETE', record_id='$list_id', event_code='ADMIN DELETE LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA CANCELADURA DE LA LISTA TERMINÓ: $list_id\n"; + echo "

\n"; + } + + $ADD='100'; # go to lists list + } + +###################### +# ADD=6111 delete in-group record +###################### + +if ($ADD==6111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_ingroups < 1) ) + { + echo "
EN-GRUPO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_inbound_groups where group_id='$group_id' and group_id NOT IN('AGENTDIRECT') limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_inbound_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='DELETE', record_id='$group_id', event_code='ADMIN DELETE INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DE EN-GRUPO TERMINADA: $group_id\n"; + echo "

\n"; + } + + $ADD='1000'; # go to in-group list + } + + +###################### +# ADD=6311 delete did record +###################### + +if ($ADD==6311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
DIDNOT SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_inbound_dids where did_id='$did_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='DELETE', record_id='$did_id', event_code='ADMIN DELETE DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
DID SUPRESIÓN RELLENARSE: $did_id\n"; + echo "

\n"; + } + + $ADD='1300'; # go to did list + } + +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONVOCATORIA menú de eliminación COMPLETA: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + +###################### +# ADD=61111 delete remote agent record +###################### + +if ($ADD==61111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_remote_agents < 1) ) + { + echo "
AGENTE ALEJADO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_remote_agents where remote_agent_id='$remote_agent_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='DELETE', record_id='$remote_agent_id', event_code='ADMIN DELETE REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA ALEJADA DEL AGENTE TERMINADA: $remote_agent_id\n"; + echo "

\n"; + } + + $ADD='10000'; # go to remote agents list + } + +###################### +# ADD=611111 delete user group record +###################### + +if ($ADD==611111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_user_groups < 1) ) + { + echo "
GRUPO DE USUARIO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Usuario_group be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_user_groups where user_group='$user_group' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='DELETE', record_id='$user_group', event_code='ADMIN DELETE GRUPO DE USUARIOS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DEL GRUPO DE USUARIO TERMINADA: $user_group\n"; + echo "

\n"; + } + + $ADD='100000'; # go to user group list + } + +###################### +# ADD=6111111 delete script record +###################### + +if ($ADD==6111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_scripts < 1) ) + { + echo "
ESCRITURA NO SUPRIMIDA - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Script_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_scripts where script_id='$script_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='ESCRITURAS', event_type='DELETE', record_id='$script_id', event_code='ADMIN DELETE SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DE LA ESCRITURA TERMINADA: $script_id\n"; + echo "

\n"; + } + + $ADD='1000000'; # go to script list + } + + +###################### +# ADD=61111111 delete filter record +###################### + +if ($ADD==61111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_filters < 1) ) + { + echo "
FILTRO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
La identificación del filtro debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="DELETE from vicidial_lead_filters where lead_filter_id='$lead_filter_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTROS', event_type='DELETE', record_id='$lead_filter_id', event_code='ADMIN DELETE FILTROS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DEL FILTRO TERMINADA: $lead_filter_id\n"; + echo "

\n"; + } + + $ADD='10000000'; # go to filter list + } + + +###################### +# ADD=611111111 delete call times record +###################### + +if ($ADD==611111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
TIEMPO DE LA LLAMADA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud\n"; + } + else + { + $stmt="DELETE from vicidial_call_times where call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
_ LLAMAR TIEMPO CANCELADURA TERMINAR: $call_time_id\n"; + echo "

\n"; + } + + $ADD='100000000'; # go to call times list + } + + +###################### +# ADD=6111111111 delete state call times record +###################### + +if ($ADD==6111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
_ llamar tiempo identificación deber ser por lo menos 2 carácter enlongitud\n"; + } + else + { + $stmtA="DELETE from vicidial_state_call_times where state_call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="SELECT call_time_id,ct_state_call_times from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\" order by call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_ids[$o] = "$rowx[0]"; + $sct_states[$o] = "$rowx[1]"; + $o++; + } + $o=0; + while ($sct_to_print > $o) + { + $sct_states[$o] = eregi_replace("\|$call_time_id\|",'|',$sct_states[$o]); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$sct_states[$o]' where call_time_id='$sct_ids[$o]';"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + echo "Regla Del Estado Quitada: $sct_ids[$o]
\n"; + $o++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO TERMINADA: $call_time_id\n"; + echo "

\n"; + } + + $ADD='1000000000'; # go to call times list + } + + +###################### +# ADD=631111111 delete shift record +###################### + +if ($ADD==631111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
SHIFT no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_shifts where shift_id='$shift_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='DELETE', record_id='$shift_id', event_code='ADMIN DELETE SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MAYÚS SUPRESIÓN RELLENARSE: $shift_id\n"; + echo "

\n"; + } + + $ADD='130000000'; # go to shifts list + } + + +###################### +# ADD=61111111111 delete phone record +###################### + +if ($ADD==61111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
TELÉFONO NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from phones where extension='$extension' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='DELETE', record_id='$extension', event_code='ADMIN DELETE PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA CANCELADURA DEL TELÉFONO TERMINÓ: $extension - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000'; # go to phone list + } + + +###################### +# ADD=62111111111 delete phone alias record +###################### + +if ($ADD==62111111111) + { + echo ""; + + if ( (strlen($alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
TELÉFONO ALIAS no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from phones_alias where alias_id='$alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='DELETE', record_id='$alias_id', event_code='ADMIN ELIMINAR TELÉFONO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TELÉFONO ALIAS SUPRESIÓN RELLENARSE: $alias_id\n"; + echo "

\n"; + } + $ADD='12000000000'; # go to phone alias list + } + + +###################### +# ADD=63111111111 delete group alias record +###################### + +if ($ADD==63111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
GRUPO DE ALIAS no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Alias ID Grupo must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from groups_alias where group_alias_id='$group_alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='DELETE', record_id='$group_alias_id', event_code='ADMIN Eliminar grupo ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
GRUPO DE SUPRESIÓN RELLENARSE ALIAS: $group_alias_id\n"; + echo "

\n"; + } + $ADD='13000000000'; # go to group alias list + } + + +###################### +# ADD=611111111111 delete server record +###################### + +if ($ADD==611111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
SERVIDOR NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
ID Del Servidor be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from servers where server_id='$server_id' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='DELETE', record_id='$server_id', event_code='ADMIN DELETE SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SERVIDOR DELETION COMPLETED: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='100000000000'; # go to server list + } + + +###################### +# ADD=621111111111 delete vicidial server trunk record in the system +###################### + +if ($ADD==621111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) ) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + } + else + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL SUPRIMIDO: $campaign_id - $server_ip\n"; + + $stmt="DELETE FROM vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTRONCOS', event_type='DELETE', record_id='$server_ip', event_code='ADMIN DELETE SERVIDOR TRUNK', event_sql=\"$SQL_log\", event_notes='Campaña: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=631111111111 delete conf template record +###################### + +if ($ADD==631111111111) + { + echo ""; + + if ( (strlen($template_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
CONF PLANTILLA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Plantilla de Identificación ser al menos de 2 caracteres de longitud\n"; + } + else + { + $stmt="UPDATE phones SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_server_carriers SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='DELETE', record_id='$template_id', event_code='ADMIN ELIMINAR CONF PLANTILLA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONF PLANTILLA SUPRESIÓN RELLENARSE: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='130000000000'; # go to conf template list + } + + +###################### +# ADD=641111111111 delete carrier record +###################### + +if ($ADD==641111111111) + { + echo ""; + + if ( (strlen($carrier_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TRANSPORTISTA NO SUPRIMIDO - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Portador de Identificación ser al menos de 2 caracteres de longitud\n"; + } + else + { + $stmt="SELECT server_ip from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $CARRIERserver_ip = $row[0]; + + $stmt="DELETE from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$CARRIERserver_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='DELETE', record_id='$carrier_id', event_code='ADMIN ELIMINAR PORTEADOR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPRESIÓN RELLENARSE PORTEADOR: $carrier_id\n"; + echo "

\n"; + } + $ADD='140000000000'; # go to carrier list + } + + +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS entrada no DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
MÚSICA EN ESPERA DE ENTRADA no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MÚSICA EN ESPERA SUPRESIÓN COMPLETA: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Contestador no se eliminan - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
ID de correo de voz be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Contestador SUPRESIÓN COMPLETA: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + +###################### +# ADD=6111111111111 delete conference record +###################### + +if ($ADD==6111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='1000000000000'; # go to conference list + } + + +###################### +# ADD=61111111111111 delete vicidial conference record +###################### + +if ($ADD==61111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Vaya por favor detrás y mire los datos que usted incorporó\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
IP Del Servidor be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
VICIDIAL CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000000'; # go to vicidial conference list + } + + + + + +###################################################################################################### +###################################################################################################### +####### 3 series, record modification forms +###################################################################################################### +###################################################################################################### + + + + +###################### +# ADD=3 modify user info in the system +###################### + +if ($ADD==3) + { + if ($LOGmodify_users==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Usted no tiene permisos de modificar a este usuario: $user\n"; + } + else + { + echo "
MODIFIQUE Un EXPEDIENTE De los USUARIOS: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} + else + { + if ($LOGalter_agent_interface == "1") + {echo "\n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSuser_territories_active > 0) + { + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; + } + + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) + { + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + if ($LOGuser_level > 8) + { + echo "\n"; + + #9BB9FB + #B9CBFD + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
NÚmero De Usuario: $user$NWB#vicidial_users-user$NWE
Contraseña: $NWB#vicidial_users-pass$NWE
Nombre Completo: $NWB#vicidial_users-full_name$NWE
Nivel Del Usuario: $NWB#vicidial_users-user_level$NWE
Grupo Del Usuario: $NWB#vicidial_users-user_group$NWE
Conexión Del Teléfono: $NWB#vicidial_users-phone_login$NWE
Contraseña Del Teléfono: $NWB#vicidial_users-phone_pass$NWE
Activo: $NWB#vicidial_users-active$NWE
Correo electrónico:$NWB#vicidial_users-optional$NWE
Usuario Code: $NWB#vicidial_users-optional$NWE
Main Territorio: $NWB#vicidial_users-optional$NWE
Territorios de usuario: $Uterrs_list
OPCIONES DE INTERFAZ DEL AGENTE:
El Agente Elige Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Agente Elija territorios: $NWB#vicidial_users-agent_choose_territories$NWE
Hot Keys Activo: $NWB#vicidial_users-hotkeys_active$NWE
Servicios repetidos Programar: $NWB#vicidial_users-scheduled_callbacks$NWE
Servicios repetidos Del Agente-Solamente: $NWB#vicidial_users-agentonly_callbacks$NWE
Manual de la llamada del agente: $NWB#vicidial_users-agentcall_manual$NWE
Grabación de Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Vicidial transfiere: $NWB#vicidial_users-vicidial_transfers$NWE
Un Defecto Más cercano Mezclado: $NWB#vicidial_users-closer_default_blended$NWE
Invalidación De la Grabación de VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
El Agente Altera La Invalidación De los Datos Del Cliente: $NWB#vicidial_users-alter_custdata_override$NWE
Modificar Agente Cliente Sobreescribe Teléfono:$NWB#vicidial_users-alter_custphone_override$NWE
Agente de Cambio observancia Sobrescribir: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alerta Activado: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Permitir Alertas: $NWB#vicidial_users-allow_alerts$NWE
Filas De la Campaña:$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Grupos De entrada: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
CC Activado:$NWB#vicidial_users-qc_enabled$NWE
CC Nivel de Usuario:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
CC Acabado:$NWB#vicidial_users-qc_finish$NWE
CC Compro:$NWB#vicidial_users-qc_commit$NWE
OPCIONES DE INTERFAZ DEL ADMIN:
Informes De la Visión: $NWB#vicidial_users-view_reports$NWE
Altere Las Opciones De Interfaz Del Agente: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifique A Usuarios: $NWB#vicidial_users-modify_sections$NWE
Cambie La Campaña Del Agente: $NWB#vicidial_users-change_agent_campaign$NWE
Usuarios de la cancelación: $NWB#vicidial_users-delete_users$NWE
Modifique A Grupos De Usuario: $NWB#vicidial_users-modify_sections$NWE
Suprima a grupos de usuario: $NWB#vicidial_users-delete_user_groups$NWE
Modifique Las Listas: $NWB#vicidial_users-modify_sections$NWE
La cancelación enumera: $NWB#vicidial_users-delete_lists$NWE
La carga conduce: $NWB#vicidial_users-load_leads$NWE
Modifique Los Plomos: $NWB#vicidial_users-modify_leads$NWE
Descargar Listas: $NWB#vicidial_users-modify_leads$NWE
Informes de exportación: $NWB#vicidial_users-export_reports$NWE
Eliminar de las listas de DNC: $NWB#vicidial_users-delete_from_dnc$NWE
Modifique Las Campañas: $NWB#vicidial_users-modify_sections$NWE
Detalle de la campaña: $NWB#vicidial_users-campaign_detail$NWE
La cancelación hace campaña: $NWB#vicidial_users-delete_campaigns$NWE
Modifique A En-Grupos: $NWB#vicidial_users-modify_sections$NWE
En-Grupos de la cancelación: $NWB#vicidial_users-delete_ingroups$NWE
Modificar DIDs:$NWB#vicidial_users-modify_sections$NWE
Eliminar DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifique Los Agentes Alejados: $NWB#vicidial_users-modify_sections$NWE
Suprima los agentes alejados: $NWB#vicidial_users-delete_remote_agents$NWE
Modifique Las Escrituras: $NWB#vicidial_users-modify_sections$NWE
Escritura De la Cancelacións: $NWB#vicidial_users-delete_scripts$NWE
Modifique Los Filtros: $NWB#vicidial_users-modify_sections$NWE
Filtro De la Cancelacións: $NWB#vicidial_users-delete_filters$NWE
Acceso de AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
La cancelación de AGC telefona: $NWB#vicidial_users-ast_delete_phones$NWE
Modifique El Tiempo De la Llamadas: $NWB#vicidial_users-modify_call_times$NWE
BorrarTiempos De la Llamada: $NWB#vicidial_users-delete_call_times$NWE
Modifique Los Servidores: $NWB#vicidial_users-modify_sections$NWE
Agente de acceso a la API:$NWB#vicidial_users-vdc_agent_api_access$NWE
AñadirReloj de tiempo Registrarse Registro: $NWB#vicidial_users-add_timeclock_log$NWE
ModificarReloj de tiempo Registrarse Registro: $NWB#vicidial_users-modify_timeclock_log$NWE
EliminarReloj de tiempo Registrarse Registro: $NWB#vicidial_users-delete_timeclock_log$NWE
Gerente de Turno observancia Sobrescribir: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

SUPRIMA A ESTE USUARIO\n"; + } + echo "

Chasque aquí para la hoja de tiempo del usuario\n"; + echo "

Chasque aquí para el estado del usuario\n"; + echo "

Clique aquí para ver las estadísticas del usuario\n"; + echo "

Haga clic aquí para varios días de estado de usuario detalle informe\n"; + echo "

Chasque aquí para los asimientos del servicio repetido del usuario\n"; + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a la presente acta
\n"; + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=31 modify campaign info in the system - Detail view +###################### + +if ( ($LOGcampaign_detail < 1) and ($ADD==31) ) {$ADD=34;} # send to Básico if not allowed + +if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==31) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_name = $row[1]; + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $web_form_address = stripslashes($row[11]); + $allow_closers = $row[12]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $campaign_rec_exten = $row[22]; + $campaign_recording = $row[23]; + $campaign_rec_filename = $row[24]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $am_message_exten = $row[27]; + $amd_send_to_vmx = $row[28]; + $xferconf_a_dtmf = $row[29]; + $xferconf_a_number = $row[30]; + $xferconf_b_dtmf = $row[31]; + $xferconf_b_number = $row[32]; + $alt_number_dialing = $row[33]; + $scheduled_callbacks = $row[34]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $drop_call_seconds = $row[36]; + $drop_action = $row[37]; + $safe_harbor_exten = $row[38]; + $display_dialable_count = $row[39]; + $wrapup_seconds = $row[40]; + $wrapup_message = $row[41]; + # $closer_campaigns = $row[42]; + $use_internal_dnc = $row[43]; + $allcalls_delay = $row[44]; + $omit_phone_code = $row[45]; + $dial_method = $row[46]; + $available_only_ratio_tally = $row[47]; + $adaptive_dropped_percentage = $row[48]; + $adaptive_maximum_level = $row[49]; + $adaptive_latest_server_time = $row[50]; + $adaptive_intensity = $row[51]; + $adaptive_dl_diff_target = $row[52]; + $concurrent_transfers = $row[53]; + $auto_alt_dial = $row[54]; + $auto_alt_dial_statuses = $row[55]; + $agent_pause_codes_active = $row[56]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $disable_alter_custdata = $row[62]; + $no_hopper_leads_logins = $row[63]; + $list_order_mix = $row[64]; + $campaign_allow_inbound = $row[65]; + $manual_dial_list_id = $row[66]; + $default_xfer_group = $row[67]; + $queue_priority = $row[69]; + $drop_inbound_group = $row[70]; + $qc_enabled = $row[71]; + $qc_statuses = $row[72]; + $qc_lists = $row[73]; + $qc_shift_id = $row[74]; + $qc_get_record_launch = $row[75]; + $qc_show_recording = $row[76]; + $qc_web_form_address = stripslashes($row[77]); + $qc_script = $row[78]; + $survey_first_audio_file = $row[79]; + $survey_dtmf_digits = $row[80]; + $survey_ni_digit = $row[81]; + $survey_opt_in_audio_file = $row[82]; + $survey_ni_audio_file = $row[83]; + $survey_method = $row[84]; + $survey_no_response_action = $row[85]; + $survey_ni_status = $row[86]; + $survey_response_digit_map = $row[87]; + $survey_xfer_exten = $row[88]; + $survey_camp_record_dir = $row[89]; + $disable_alter_custphone = $row[90]; + $display_queue_count = $row[91]; + $manual_dial_filter = $row[92]; + $agent_clipboard_copy = $row[93]; + $agent_extended_alt_dial = $row[94]; + $use_campaign_dnc = $row[95]; + $three_way_call_cid = $row[96]; + $three_way_dial_prefix = $row[97]; + $web_form_target = $row[98]; + $vtiger_search_category = $row[99]; + $vtiger_create_call_record = $row[100]; + $vtiger_create_lead_record = $row[101]; + $vtiger_screen_login = $row[102]; + $cpd_amd_action = $row[103]; + $agent_allow_group_alias = $row[104]; + $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + + $qc_lists = preg_replace("/^ | -$/","",$qc_lists); + $QClists = explode(" ", $qc_lists); + $QCL_to_print = (count($QClists) -0); + + ##### get status listings for dynamic pulldown + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $qc_statuses_list=''; + $survey_ni_status_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') + { + $dial_statuses_list .= "\n"; + if ($survey_ni_status == $rowx[0]) + { + $survey_ni_status_list .= "\n"; + } + else + { + $survey_ni_status_list .= "\n"; + } + } + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic transfer group pulldown list menu + $stmt="SELECT group_id,group_name from vicidial_inbound_groups $xfer_groupsSQL order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==28) {$camp_qc_color=$subcamp_color;} + else {$camp_qc_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + if ($SUB=='20A') {$camp_survey_color=$subcamp_color;} + else {$camp_survey_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; + if ($SSqc_features_active > 0) + { + echo ""; + } + if ($SSoutbound_autodial_active < 1) + { + echo "\n"; + } + echo "\n"; + echo "
$row[0]: Básico Detalle EstadosTeclas rápidasLead RecyclingAuto Alt telefónicoMezcla listaEncuestaPausa CódigosQC Tiempo Real
\n"; + + echo "
\n"; + echo ""; + + echo "
\n"; + + if ($SUB < 1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "QUITE\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + + + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($agent_allow_group_alias == 'Y') + { + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + } + + if ($SSenable_vtiger_integration > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + else + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($campaign_allow_inbound == 'Y') + { + echo "\n"; + } + + echo "\n"; + + if ($allow_closers == 'Y') + { + echo "\n"; + } + + echo "\n"; + echo "
ID De la Campaña: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Nombre de la Campaña: $NWB#vicidial_campaigns-campaign_name$NWE
Descripción De la Campaña: $NWB#vicidial_campaigns-campaign_description$NWE
Campaña Fecha de cambio: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campaña Fecha de inicio de sesión: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Campaña Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Activo: $NWB#vicidial_campaigns-active$NWE
Extensión del parking: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Formulario Web: $NWB#vicidial_campaigns-web_form_address$NWE
Formulario Web Two: $NWB#vicidial_campaigns-web_form_address$NWE
Formulario web de destino: $NWB#vicidial_campaigns-web_form_target$NWE
Permitir Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Permita de entrada y mezclado:$NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Estado Del Dial $o: \n"; + + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Estado:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Orden De la Lista: $NWB#vicidial_campaigns-lead_order$NWE
Mezcla lista: $NWB#vicidial_campaigns-list_order_mix$NWE
Filtro del plomo: $NWB#vicidial_campaigns-lead_filter_id$NWE
Tiempo de caída de bloqueo: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Forzar el Reinicio del Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Método Del Dial: $NWB#vicidial_campaigns-dial_method$NWE
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPTE LA INVALIDACIÓN
Solamente Cuenta Disponible: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Límite Del Porcentaje De la Gota: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
El Máximo Adapta El Nivel Del Dial: number only $NWB#vicidial_campaigns-adaptive_maximum_level$NWE
El Tiempo Más último Del Servidor: 4 Solamente dígitos $NWB#vicidial_campaigns-adaptive_latest_server_time$NWE
Adapte El Modificante De la Intensidad: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Blanco Llana De la Diferencia Del Dial: $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE
Transferencias Concurrentes: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Cola de prioridad: $NWB#vicidial_campaigns-queue_priority$NWE
Varias campañas Drop Rate Grupo: $NWB#vicidial_campaigns-drop_rate_group$NWE
El Marcar Auto Del Alt-Nu'mero: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Llamar al Siguiente Agente: $NWB#vicidial_campaigns-next_agent_call$NWE
Franja horaria de llamada: $NWB#vicidial_campaigns-local_call_time$NWE
Tiempo de espera Del Dial: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Prefijo al marcar: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Omita El Código Del Teléfono: $NWB#vicidial_campaigns-omit_phone_code$NWE
CallerID de la Campaña: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Exten VDAD de La campaña: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Extensión de Rec de la campaña: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Grabación De la Campaña: $NWB#vicidial_campaigns-campaign_recording$NWE
Nombre de fichero De Rec De la Campaña: $NWB#vicidial_campaigns-campaign_rec_filename$NWE
La Registración Retrasa: in seconds$NWB#vicidial_campaigns-allcalls_delay$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_campaigns-get_call_launch$NWE
Mensaje del contestador automático: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Opciones WaitForSilence: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD envían a la VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Acción: $NWB#vicidial_campaigns-cpd_amd_action$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf DTMF 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Rápida transferencia Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Transferencia de rellenar previamente Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Temporizador de Acción de: $NWB#vicidial_campaigns-timer_action$NWE
Temporizador de mensaje de acción: $NWB#vicidial_campaigns-timer_action_message$NWE
Temporizador Segundos Acción: $NWB#vicidial_campaigns-timer_action_seconds$NWE
El Marcar Del Número Del Alt: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Servicios repetidos Programar: $NWB#vicidial_campaigns-scheduled_callbacks$NWE
Segundos De la Llamada De la Gota: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Caída de Acción:$NWB#vicidial_campaigns-drop_action$NWE
Puerto Seguro Exten: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Buzón de Voz: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Grupo de Transferencia de caída:$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Segundos De Wrap Up: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Mensaje De Wrap Up: $NWB#vicidial_campaigns-wrapup_message$NWE
Utilice La Lista Interna de DNC: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Campaña de uso Lista DNC: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentCódigos De la PausaActivo: $NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Campaña Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Inhabilite Alteran Datos Del Cliente:$NWB#vicidial_campaigns-disable_alter_custdata$NWE
Deshabilitar Modificar Cliente Teléfono:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Permita Ninguno-Tolva-Conduce Conexiones: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
N marcado Hopper: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Único propietario de marcado: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Agente Seleccione territorios: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agente de pantalla Dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Agente Mostrar cola Cuenta:$NWB#vicidial_campaigns-display_queue_count$NWE
Agente Pide Ver en cola: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Ver las llamadas en cola de lanzamiento: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agente Pide Agarre en cola: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Agente de Call Re-Cola Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agente de pausa después de cada llamada: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Identificación Manual De la Lista Del Dial:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manual de Acceso telefónico Filtro:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agente de pantalla Portapapeles Copiar: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agente de pantalla ampliada Alt telefónico: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Vías de salida de llamadas CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Vías de llamadas Prefijo telefónico: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Grupo Alias permitidas: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Alias predeterminado Grupo: $NWB#vicidial_campaigns-default_group_alias$NWE
Vtiger Búsqueda Categoría: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Buscar Dead Cuentas: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Crear Vtiger Registro de llamadas: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Crear Vtiger plomo Record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger Estado de llamada: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger pantalla inicio de sesión: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Dirección Popup: $NWB#vicidial_campaigns-crm_login_address$NWE
Iniciar llamada URL: $NWB#vicidial_campaigns-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
Grupos De entrada Permitidos:
"; + echo " $NWB#vicidial_campaigns-closer_campaigns$NWE
\n"; + echo "$groups_list"; + echo "
Grupo De la Transferencia Del Defecto:$NWB#vicidial_campaigns-default_xfer_group$NWE
Grupos Permitidos De la Transferencia:
"; + echo " $NWB#vicidial_campaigns-xfer_groups$NWE
\n"; + echo "$XFERgroups_list"; + echo "
\n"; + + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTAS DENTRO DE ESTA CAMPAÑA:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
ID DE LA LISTANOMBRE DE LA LISTADESCRIPCIÓNENCABEZA COUNTACTIVOÚLTIMA FECHA DE CONVOCATORIAMODIFICAR
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFICAR

\n"; + + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Esta campaña tiene $active_lists listas activas y $inactive_lists listas inactivas

\n"; + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - PIEL

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - DEMOSTRACIÓN

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Esta campaña tiene $hopper_leads Leads en el Hopper

\n"; + echo "Chasque aquí para ver qué plomos están en la tolva ahora

\n"; + echo "Haga clic aquí para ver un informe VDAD para esta campaña

\n"; + } + echo "Chasque aquí para ver todos los asimientos del servicio repetido en esta campaña

\n"; + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a esta campaña
\n"; + } + echo "
\n"; + } + + + ##### CAMPAIGN CUSTOM STATUSES ##### + if ($SUB==22) + { + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + echo "
\n"; + echo "
ESTADOS DE ENCARGO DENTRO DE ESTA CAMPAÚA:   $NWB#vicidial_campaign_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[5]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ESTADODESCRIPCIÓNSELECCIONABLERESPUESTA HUMANOSACATEGORÍAMODIFY-DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + echo "ELIMINAR\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AGREGAR ESTADO PERSONALIZADO A LA CAMPAÑA
\n"; + echo "\n"; + echo "\n"; + echo "Estado:   \n"; + echo "Descripción:   \n"; + echo "Seleccionable:  
\n"; + echo "Respuesta humana:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Categoría:\n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN HOTKEYS ##### + if ($SUB==23) + { + echo "
PERSONALIZAR ACCEDOS DIRECTOS PARA ESTA CAMPAÑA:   $NWB#vicidial_campaign_hotkeys$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + + } + + echo "
ACCESO DIRECTOESTADODESCRIPCIÓNELIMINAR
$rowx[1]$rowx[0]$rowx[2]ELIMINAR
\n"; + + echo "
AÑADIR ACCESO DIRECTO A LA CAMPAÑA
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Hotkey:   \n"; + echo "Estado:   \n"; + echo "
\n"; + echo "

\n"; + } + + ##### CAMPAIGN LEAD RECYCLING ##### + if ($SUB==25) + { + ### display counts on leads that have hit the limit in this campaign + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $RECYCLE_status[$o] = $rowx[2]; + $RECYCLE_delay[$o] = $rowx[3]; + $RECYCLE_attempt[$o] = $rowx[4]; + $RECYCLE_active[$o] = $rowx[5]; + $RECYCLE_count[$o] = "'Y','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'"; + if ($RECYCLE_attempt[$o]==1) {$RECYCLE_count[$o] = "'Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==2) {$RECYCLE_count[$o] = "'Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==3) {$RECYCLE_count[$o] = "'Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==4) {$RECYCLE_count[$o] = "'Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==5) {$RECYCLE_count[$o] = "'Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==6) {$RECYCLE_count[$o] = "'Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==7) {$RECYCLE_count[$o] = "'Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==8) {$RECYCLE_count[$o] = "'Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==9) {$RECYCLE_count[$o] = "'Y9','Y10'";} + if ($RECYCLE_attempt[$o]>9) {$RECYCLE_count[$o] = "'Y10'";} + $o++; + } + $o=0; + + echo "

PLOMO QUE RECICLA DENTRO DE ESTA CAMPAÑA:   $NWB#vicidial_lead_recycle$NWE
\n"; + echo "\n"; + echo "\n"; + + while ($recycle_to_print > $o) + { + $recycle_limit=0; + if (strlen($camp_lists) > 2) + { + $stmt="SELECT count(*) from vicidial_list where status='$RECYCLE_status[$o]' and list_id IN($camp_lists) and called_since_last_reset IN($RECYCLE_count[$o]);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $counts_to_print = mysql_num_rows($rslt); + if ($counts_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + $recycle_limit = $rowx[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $o++; + } + + echo "
ESTADOLA TENTATIVA RETRASAMÁXIMO DE LA TENTATIVALLEVA EN EL LÍMITEACTIVO ELIMINAR
  $RECYCLE_status[$o]
\n"; + echo "\n"; + echo "\n"; + echo "
$recycle_limit   ELIMINAR
\n"; + + echo "
AGREGUE EL NUEVO PLOMO DE LA CAMPAÑA RECICLAN
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Estado:   \n"; + echo "La Tentativa Retrasa: \n"; + echo "Máximo De la Tentativa: \n"; + echo "
\n"; + + echo "

\n"; + echo "
\n"; + echo "* Llevar cuenta de activos adoptadas listas sólo en la campaña.\n"; + } + + ##### CAMPAIGN AUTO-ALT-NUMBER DIALING ##### + if ($SUB==26) + { + echo "

NÚMERO AUTO DEL ALT QUE MARCA PARA ESTA CAMPAÑA:   $NWB#vicidial_auto_alt_dial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $auto_alt_dial_statuses = preg_replace("/ -$/","",$auto_alt_dial_statuses); + $AADstatuses = explode(" ", $auto_alt_dial_statuses); + $AADs_to_print = (count($AADstatuses) -1); + + $o=0; + while ($AADs_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $o++; + + echo "\n"; + echo "\n"; + } + + echo "
STATUSESELIMINAR
$AADstatuses[$o]ELIMINAR
\n"; + + echo "
AGREGUE EL ESTADO QUE MARCA DEL NUEVO DEL AUTOMÓVIL NÚMERO DEL ALT
\n"; + echo "\n"; + echo "\n"; + echo "Estado:   \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN CÓDIGOS DE LA PAUSA ##### + if ($SUB==27) + { + echo "

CÓDIGOS DE LA PAUSA DEL AGENTE PARA ESTA CAMPAÑA:   $NWB#vicidial_pause_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CÓDIGOS DE LA PAUSAFACTURABLEMODIFICARELIMINAR
$rowx[0]\n"; + echo "\n"; + echo "\n"; + echo "  \n"; + echo "
ELIMINAR
\n"; + + echo "
AGREGUE EL NUEVO CÓDIGO DE LA PAUSA DEL AGENTE
\n"; + echo "\n"; + echo "\n"; + echo "Código De la Pausa: \n"; + echo "Nombre Del Código De la Pausa: \n"; + echo "   Facturable: \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN QC SETTINGS ##### + if ( ($SUB==28) and ($SSqc_features_active > 0) ) + { + $stmt="SELECT list_id,list_name,active from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $qc_lists_list=''; + + $p=0; + while ($lists_to_print > $p) + { + $rowx=mysql_fetch_row($rslt); + $qc_lists_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "

AJUSTES CC para esta campaña:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; +# echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + echo "CC Activado: $NWB#vicidial_campaigns-qc_enabled$NWE
CC estados:
$NWB#vicidial_campaigns-qc_statuses$NWE
$qc_statuses_list
QC Lists:
$NWB#vicidial_campaigns-qc_lists$NWE
$qc_lists_list
Formulario de Asistencia CC:$NWB#vicidial_campaigns-qc_web_form_address$NWE
Control de calidad de secuencias de comandos: $NWB#vicidial_campaigns-qc_script$NWE
CC Mayúsculas: $NWB#vicidial_campaigns-qc_shift_id$NWE
CC Obtener Registro de lanzamiento: $NWB#vicidial_campaigns-qc_get_record_launch$NWE
Mostrar control de la calidad de grabación: $NWB#vicidial_campaigns-qc_show_recording$NWE
\n"; + echo "

\n"; + } + + ##### CAMPAIGN SURVEY SETTINGS ##### + if ($SUB=='20A') + { + + echo "

ENCUESTA SOBRE AJUSTES EN ESTA CAMPAÑA:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "
Primera encuesta de archivo de audio: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Encuesta dígitos DTMF: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
No encuesta interesadas dígitos: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Encuesta de Opt-in de archivos de audio: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
No encuesta interesadas archivo de audio: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Método de estudio: $NWB#vicidial_campaigns-survey_method$NWE
Estudio n-Respuesta de acción: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Estudio de estado no le interesa: $NWB#vicidial_campaigns-survey_ni_status$NWE
Encuesta tercer dígito: $NWB#vicidial_campaigns-survey_third_digit$NWE
Tercera Encuesta de archivos de audio: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Tercera Encuesta de Situación: $NWB#vicidial_campaigns-survey_third_status$NWE
Tercer Estudio de Extensión: $NWB#vicidial_campaigns-survey_third_exten$NWE
Digit Cuarta Encuesta: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Cuarta Encuesta Archivo de audio: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Situación Cuarta Encuesta: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Encuesta cuarta prórroga: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Respuesta encuesta dígitos Mapa: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Encuesta Encuesta Xfer Extensión: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Estudio de grabación Campaña Directorio: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
Buzón de Voz: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; + echo "

\n"; + } + + + if ($SUB < 1) + { + echo "

\n"; + echo "REGISTRE TODOS LOS AGENTES FUERA DE ESTA CAMPAÑA

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + + if ($LOGdelete_campaigns > 0) + { + echo "

SUPRIMA ESTA CAMPAÑA\n"; + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } +} + + +###################### +# ADD=34 modify campaign info in the system - Basic View +###################### + +if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==34) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $display_dialable_count = $row[39]; + $dial_method = $row[46]; + $adaptive_intensity = $row[51]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $list_order_mix = $row[64]; + $default_xfer_group = $row[67]; + $campaign_allow_inbound = $row[65]; + $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active < 1) + { + echo ""; + } + echo "
$row[0]: Vista Básica Vista Detallada Mezcla lista Pantalla En tiempo real  
\n"; + + if ($SUB < 1) + { + echo "
\n"; + echo ""; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "QUITE\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
ID De la Campaña: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Nombre de la Campaña: $NWB#vicidial_campaigns-campaign_name$NWE
Descripción De la Campaña: $row[57]$NWB#vicidial_campaigns-campaign_description$NWE
Campaña Fecha de cambio: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campaña Fecha de inicio de sesión: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Activo: $NWB#vicidial_campaigns-active$NWE
Extensión del parking: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Formulario Web: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Permitir Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Grupo De la Transferencia Del Defecto:$default_xfer_group $NWB#vicidial_campaigns-default_xfer_group$NWE
Permita de entrada y mezclado:$campaign_allow_inbound $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Estado Del Dial $o: \n"; + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Estado:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Orden De la Lista: $NWB#vicidial_campaigns-lead_order$NWE
Mezcla lista: $NWB#vicidial_campaigns-list_order_mix$NWE
Filtro del plomo: $NWB#vicidial_campaigns-lead_filter_id$NWE
Nivel Del Hopper: $NWB#vicidial_campaigns-hopper_level$NWE
Forzar el Reinicio del Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Método Del Dial: $NWB#vicidial_campaigns-dial_method$NWE
Nivel del Auto-Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Adapte El Modificante De la Intensidad: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Script: $script_id
Consiga El Lanzamiento De la Llamada: $get_call_launch
\n"; + + echo "
\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
LISTAS DENTRO DE ESTA CAMPAÑA:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
ID DE LA LISTANOMBRE DE LA LISTADESCRIPCIÓNENCABEZA COUNTACTIVOÚLTIMA FECHA DE CONVOCATORIAMODIFICAR
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFICAR

\n"; + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Esta campaña tiene $active_lists listas activas y $inactive_lists listas inactivas

\n"; + + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - PIEL

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - DEMOSTRACIÓN

"; + } + + + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Esta campaña tiene $hopper_leads Leads en el Hopper

\n"; + echo "Chasque aquí para ver qué plomos están en la tolva ahora

\n"; + echo "Haga clic aquí para ver un informe VDAD para esta campaña

\n"; + } + echo "Chasque aquí para ver todos los asimientos del servicio repetido en esta campaña

\n"; + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a esta campaña
\n"; + } + + echo "
\n"; + + echo "
\n"; + + ### list of agent rank or skill-level for this campaign + echo "
\n"; + echo "
FILAS DEL AGENTE PARA ESTA CAMPAÑA:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + + echo "REGISTRE TODOS LOS AGENTES FUERA DE ESTA CAMPAÑA

\n"; + + + if ($LOGdelete_campaigns > 0) + { + echo "

SUPRIMA ESTA CAMPAÑA\n"; + } + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } +} + + +###################### +# ADD=31 or 34 and SUB=29 for list mixes +###################### +if ( ( ($ADD==34) or ($ADD==31) ) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ( ($ADD==34) or ($ADD==31) ) +{ + if ($LOGmodify_campaigns==1) + { + ##### CAMPAIGN LIST MIX SETTINGS ##### + if ($SUB==29) + { + ##### get list_id listings for dynamic pulldown + $stmt="SELECT list_id,list_name from vicidial_lists where campaign_id='$campaign_id' order by list_id"; + $rslt=mysql_query($stmt, $link); + $mixlists_to_print = mysql_num_rows($rslt); + $mixlists_list=""; + + $o=0; + while ($mixlists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixlists_list .= "\n"; + $mixlistsname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + + echo "

MEZCLAS DE LA LISTA PARA ESTA CAMPAÑA:  $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; + + echo "
ADVERTENCIA, sólo recomendamos Lista Mix para usuarios avanzados, por favor lea el Manual de Administrador de Vicidial
\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } + + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $rslt=mysql_query($stmt, $link); + $listmixes = mysql_num_rows($rslt); + $o=0; + while ($listmixes > $o) + { + $rowx=mysql_fetch_row($rslt); + $vcl_id=$rowx[0]; + $o++; + + if ($o < 2) + {$tablecolor='bgcolor="#99FF99"'; $bgcolor='bgcolor="#CCFFCC"';} + else + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$tablecolor='bgcolor="#B9CBFD"'; $bgcolor='bgcolor="#9BB9FB"';} + else + {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} + } + echo "
\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + } + else + {echo "$rowx[5]\n";} + echo "\n"; + echo "\n"; + +# list_id|order|percent|statuses|:list_id|order|percent|statuses|:... +# 101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -| +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX','TESTCAMP List Mix','TESTCAMP','101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX2','TESTCAMP List Mix2','TESTCAMP','101|1|20| A B -|:102|2|45| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX3','TESTCAMP List Mix3','TESTCAMP','101|1|30| A NA -|:102|2|35| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); + + $MIXentries = $MT; + $MIXentries = explode(":", $rowx[3]); + $Ms_to_print = (count($MIXentries) - 0); + $q=0; + while ($Ms_to_print > $q) + { + $MIXdetails = explode('|', $MIXentries[$q]); + $MIXdetailsLIST = $MIXdetails[0]; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $r=0; + while ($Ds_to_print > $r) + { + $r++; + $Dsql .= "'$Dstatuses[$r]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "\n"; + + + echo "\n"; + + + $q++; + + } + + + + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + $X='X'; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$vcl_id:\n"; + echo "\n"; + echo "     DELETE LIST MIX
Estado: \n"; + if ($rowx[5]=='INACTIVE') + { + echo "$rowx[5]\n"; + echo "FIJE A ACTIVOMethod:\n"; + echo "
ID DE LA LISTAPRIORIDAD% MIXSTATUSES
\n"; + echo "\n"; + echo "List: $MIXdetailsLIST   QUITE\n"; + + + + echo " \n"; + echo "ADD   \n"; + echo "QUITE\n"; + echo "
\n"; + echo "Difference %: \n"; + echo "   \n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "List: \n"; + + if ($q > 39) {$AE_disabled = 'DISABLED';} + else {$AE_disabled = '';} + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "QUITE\n"; + echo "
\n"; + } + + + echo "

NUEVA LISTA MIX
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Mix ID: Mix Name: Mix Method: "; + echo "
List: Dial Estado:  
\n"; + + echo "
\n"; + + } + } + echo "
\n"; +} + + +###################### +# ADD=30 campaign not allowed +###################### + +if ($ADD==30) +{ +echo "
\n"; + echo ""; +echo "You do not have permission to view campaign $campaign_id\n"; +} + + +###################### +# ADD=32 display all campaign statuses +###################### +if ($ADD==32) +{ +echo "
\n"; + echo ""; + +echo "
LISTADOS DE ENCARGO DE LOS ESTADOS DE LA CAMPAÑA:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMBRESTATUSESMODIFICAR
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_statuses where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY STATUSES
\n"; +} + + +###################### +# ADD=33 display all campaign hotkeys +###################### +if ($ADD==33) +{ +echo "
\n"; + echo ""; + +echo "
LISTADOS DE LA CAMPAÑA HOTKEYS:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMBREHOTKEYSMODIFICAR
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_hotkeys where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY HOTKEYS
\n"; +} + + +###################### +# ADD=35 display all campaign lead recycle entries +###################### +if ($ADD==35) +{ +echo "
\n"; + echo ""; + +echo "
EL PLOMO DE LA CAMPAÑA RECICLA LISTADOS:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMBREEL PLOMO RECICLAMODIFICAR
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_lead_recycle where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY EL PLOMO RECICLA
\n"; +} + + +###################### +# ADD=36 display all campaign auto-alt dial entries +###################### +if ($ADD==36) +{ +echo "
\n"; + echo ""; + +echo "
LISTADOS DEL DIAL DEL PLOMO AUTO-ALT DE LA CAMPAÑA:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMBREAUTO-ALT DIALMODIFICAR
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaigns_id_list[$o]';"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if (strlen($row[0])<3) + {echo "NONE";} + echo "MODIFY AUTO-ALT DIAL
\n"; +} + + +###################### +# ADD=37 display all campaign agent pause codes +###################### +if ($ADD==37) +{ +echo "
\n"; + echo ""; + +echo "
LISTADOS DE CÓDIGO DE LA PAUSA DEL AGENTE DE LA CAMPAÑA:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMBRECÓDIGOS DE LA PAUSAMODIFICAR
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT pause_code from vicidial_pause_codes where campaign_id='$campaigns_id_list[$o]' order by pause_code;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY CÓDIGOS DE LA PAUSA
\n"; +} + + +###################### +# ADD=39 display all campaign list mixes +###################### +if ($ADD==39) +{ +echo "
\n"; + echo ""; + +echo "
LISTADOS DE LA MEZCLA DE LA LISTA DE LA CAMPAÑA:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMBRELIST MIXMODIFICAR
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT vcl_id from vicidial_campaigns_list_mix where campaign_id='$campaigns_id_list[$o]' order by status,vcl_id;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY LIST MIX
\n"; +} + + + + + +###################### +# ADD=311 modify list info in the system +###################### + +if ($ADD==311) + { + if ($LOGmodify_lists==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; + + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names + + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFICAR UN REGISTRO DE LAS LISTAS: $list_id
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "
ID De la Lista: $list_id$NWB#vicidial_lists-list_id$NWE
Nombre De la Lista: $NWB#vicidial_lists-list_name$NWE
Descripción De la Lista: $NWB#vicidial_lists-list_description$NWE
Campaña: $NWB#vicidial_lists-campaign_id$NWE
Activo: $NWB#vicidial_lists-active$NWE
Reiniciar el Lead-Called-Status para esta lista: $NWB#vicidial_lists-reset_list$NWE
Perdí Times: $NWB#vicidial_lists-reset_time$NWE
Fecha Del Cambio De la Lista: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Última Fecha de lista de llamadas: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agente de secuencias de comandos Reemplazar: $NWB#vicidial_lists-agent_script_override$NWE
Campaña CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
Contestador automático de mensajes Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
Drop de entrada Grupo de Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
Transfiera -Conf El Número 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; + + echo "
\n"; + echo "
ESTADOS DENTRO DE ESTA LISTA:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 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"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
ESTADONOMBRE DEL ESTADOLLAMADONO LLAMADO
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
ZONAS DE TIEMPO DENTRO DE ESTA LISTA:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
DESPLAZAMIENTO GMT AHORA (tiempo local)LLAMADONO LLAMADO
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
PROPIETARIOS dentro de esta lista:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERLLAMADONO LLAMADO
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
RANKS dentro de esta lista:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
RANKLLAMADONO LLAMADO
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
SUBTOTALES$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
LLAMADAS REALIZADAS DENTRO DE ESTA LISTA:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; + + $sts=0; + $statuses_called_to_print = count($status); + while ($statuses_called_to_print > $sts) + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; + $first++; + } + echo "\n"; + + echo "
ESTADONOMBRE DEL ESTADO$first$FplusSUBTOTAL
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
TOTAL$all_called_count[$first]$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Haga clic aquí para ver todas las CallBack mantiene en esta lista

\n"; + echo "

Haga clic aquí para descargar esta lista

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

SUPRIMA ESTA LISTA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a esta lista
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + +###################### +# ADD=3111 modify in-group info in the system +###################### + +if ($ADD==3111) + { + if ($LOGmodify_ingroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + + echo "
MODIFICAR UN REGISTRO DE LOS GRUPOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ID De Grupo: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nombre De Grupo: $NWB#vicidial_inbound_groups-group_name$NWE
Color Del Grupo: $NWB#vicidial_inbound_groups-group_color$NWE
Activo: $NWB#vicidial_inbound_groups-active$NWE
Formulario Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Formulario Web Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Llamar al Siguiente Agente: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Cola de prioridad: $NWB#vicidial_inbound_groups-queue_priority$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Consiga El Lanzamiento De la Llamada: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Temporizador de Acción de: $NWB#vicidial_inbound_groups-timer_action$NWE
Temporizador de mensaje de acción: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Temporizador Segundos Acción: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Segundos De la Llamada De la Gota: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Caída de Acción:$NWB#vicidial_inbound_groups-drop_action$NWE
Gota Exten: $NWB#vicidial_inbound_groups-drop_exten$NWE
Buzón de Voz: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Grupo de Transferencia de caída:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Tiempo De la Llamada:$NWB#vicidial_inbound_groups-call_time_id$NWE
Después De la Acción De las Horas:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Después De Nombre de fichero Del Mensaje De las Horas: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Después De la Extensión De las Horas:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Después De las Horas Buzón de Voz: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Horas después de la transferencia del Grupo:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
N de colas n Agentes: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
No No Acción cola de agente: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Llame Menú:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID De la Lista: "; + echo "
ID De la Campaña: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Extensión:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Caja de voz: voicemail chooser\n"; + } + + echo "
+
 
Nombre de fichero Agradable Del Mensaje: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Reproducir Mensaje de Bienvenida:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Música En Contexto Del Asimiento: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
En Nombre de fichero Del Aviso Del Asimiento: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
En Intervalo Del Aviso Del Asimiento:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Lugar jugar en línea:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Juega Mantenga Tiempo estimado:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Mantenga la opción Hora:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Mantenga la opción Segundos Hora:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Mantenga Tiempo Opción Extensión:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Mantenga la opción Tiempo de voz: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Opción de Transferencia de celebrar Tiempo-Grupo A:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Mantenga la opción Tiempo de llamada de archivo: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Mantenga la opción Tiempo de llamada Lista ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agente de Alerta Nombre de archivo: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
La Alarma Del Agente Retrasa:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Grupo De la Transferencia Del Defecto:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Alias predeterminado Grupo: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Recordatorio de Transferencia de celebrar en Grupo:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
N Retraso de llamada Ruta:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
-Grupo de grabación en Sobrescribir:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
En el Grupo de grabación de archivo:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Estadísticas Porcentaje de llamadas respondidas dentro de X segundos 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Estadísticas Porcentaje de llamadas respondidas dentro de X segundos 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Iniciar llamada URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Grupo de Ajustes de entrada de CC:
CC Activado: $NWB#vicidial_inbound_groups-qc_enabled$NWE
CC estados:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
Formulario de Asistencia CC:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
Control de calidad de secuencias de comandos: $NWB#vicidial_inbound_groups-qc_script$NWE
CC Mayúsculas: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
CC Obtener Registro de lanzamiento: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
Mostrar control de la calidad de grabación: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; + echo "

\n"; + + + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
AGENTE RANKS FOR THIS Entrantes GROUP:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Haga clic aquí para ver un informe de este grupo entrante

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "CAMPAÑAS QUE PERMITA EN ESTE GRUPO:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

SUPRIMA A ESTE EN-GRUPO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver a esta Administración chages en Grupo\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + +###################### +# ADD=3311 modify did info in the system +###################### + +if ($ADD==3311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFICAR UN REGISTRO DID:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
DID Extensión:$NWB#vicidial_inbound_dids-did_pattern$NWE
DID Descripción:$NWB#vicidial_inbound_dids-did_description$NWE
Activo: $NWB#vicidial_inbound_dids-did_active$NWE
DID Ruta:$NWB#vicidial_inbound_dids-did_route$NWE
Extensión:$NWB#vicidial_inbound_dids-extension$NWE
Extensión Contexto:$NWB#vicidial_inbound_dids-exten_context$NWE
Caja de voz: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Teléfono Extensión:$NWB#vicidial_inbound_dids-phone$NWE
IP Del Servidor: $NWB#vicidial_inbound_dids-server_ip$NWE
Llame Menú: $NWB#vicidial_inbound_dids-menu_id$NWE
Agente de usuario:$NWB#vicidial_inbound_dids-user$NWE
Usuario no disponible Acción:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
En Configuración de usuario Ruta-Grupo:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID De Grupo: $NWB#vicidial_inbound_dids-group_id$NWE
En llamada de grupo Manipule Método:$NWB#vicidial_inbound_dids-call_handle_method$NWE
En Grupo Agente Método de búsqueda:$NWB#vicidial_inbound_dids-agent_search_method$NWE
-En la lista Grupo de Identificación:$NWB#vicidial_inbound_dids-list_id$NWE
En el Grupo de Campaña-ID:$NWB#vicidial_inbound_dids-campaign_id$NWE
En el Grupo-Teléfono Código:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Haga clic aquí para ver un informe de tráfico para este DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

ELIMINAR ESTA DID\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver a esta Administración chages DID\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
MODIFICAR UNA LLAMADA menú de grabación: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Menú ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Nombre de menú: $NWB#vicidial_call_menu-menu_name$NWE
Menú del sistema: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Menú de tiempo de espera: $NWB#vicidial_call_menu-menu_timeout$NWE
Menú de tiempo de espera del sistema: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Menú del sistema no válido: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Repita Menú: $NWB#vicidial_call_menu-menu_repeat$NWE
Menú Hora Hora: $NWB#vicidial_call_menu-menu_time_check$NWE
Tiempo De la Llamada:$NWB#vicidial_call_menu-call_time_id$NWE
Pide pista en tiempo real Informe: $NWB#vicidial_call_menu-track_in_vdac$NWE
Grupo de seguimiento de: $NWB#vicidial_call_menu-tracking_group$NWE
Opciones del menú de llamadas:
+ Opción: $dtmf_list   + Descripción: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Llame Menú:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID De la Lista: "; + echo "
ID De la Campaña: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Extensión:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Caja de voz: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Opción: $dtmf_list   + Descripción: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan Entrada:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan Entrada: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

ELIMINAR LA PRESENTE CONVOCATORIA MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages de administración para este menú de llamada
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + +###################### +# ADD=31111 modify remote agents info in the system +###################### + +if ($ADD==31111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Comienzo Del ID del usuario: (Solamente números, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Número de líneas: (Solamente números)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Del Servidor: $NWB#vicidial_remote_agents-server_ip$NWE
Extensión Externa: (número del dial plan para alcanzar agentes)$NWB#vicidial_remote_agents-conf_exten$NWE
Estado: $NWB#vicidial_remote_agents-status$NWE
Campaña: $NWB#vicidial_remote_agents-campaign_id$NWE
Grupos De entrada: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

SUPRIMA ESTE AGENTE ALEJADO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver a esta Administración chages agente remoto
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=311111 modify user group info in the system +###################### + +if ($ADD==311111) + { + if ($LOGmodify_usergroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
MODIFICAR UNA ENTRADA EN LOS GRUPOS DE USUARIOS\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + + echo "\n"; + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Grupo: (sin espacios o signos de puntuación)$NWB#vicidial_user_groups-user_group$NWE
Descripción: (Descripción del grupo)$NWB#vicidial_user_groups-group_name$NWE
FuerzaReloj de tiempo inicio de sesión: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Cambio de título ejecutivo: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campañas Permitidas:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Grupo de cambios:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; + } + echo "
 
Estado del agente visible Grupos:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } + echo "
 
Ver estado del agente de turno: $NWB#vicidial_user_groups-agent_status_view_time$NWE
CC permitidas Campañas:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
CC permitidas entrantes Grupos:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; + + + ### list of users in this user group + + $active_confs = 0; + $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + echo "
\n"; + echo "
USUARIOS DENTRO DE ESTE GRUPO DE USUARIO: $users_to_print
\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
USERNOMBRE COMPLETONIVELACTIVO
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Haga clic aquí para ver todas las CallBack Posee en este grupo de usuarios

\n"; + echo "

Haga clic aquí para ver elReloj de tiempo Estado para este grupo de usuarios

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

SUPRIMA A ESTE GRUPO DE USUARIO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este grupo de usuarios
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=3111111 modify script info in the system +###################### + +if ($ADD==3111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
MODIFIQUE Una ESCRITURA\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación De la Escritura:: $script_id$NWB#vicidial_scripts-script_name$NWE
Nombre de la escritura: (título de la escritura)$NWB#vicidial_scripts-script_name$NWE
Comentarios de la escritura: $NWB#vicidial_scripts-script_comments$NWE
Activo: $NWB#vicidial_scripts-active$NWE
Texto de la escritura:

Escritura De la Inspección previo
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " CAMPAÑAS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " EN-GROUPOS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

SUPRIMA ESTA ESCRITURA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este script\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=31111111 modify filter info in the system +###################### + +if ($ADD==31111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; + + echo "
MODIFIQUE Un FILTRO\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación Del Filtro:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nombre Del Filtro: (descripción corta del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Comentarios Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + echo "

"; + echo "
PRUEBE EN CAMPAÑA:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + if ($LOGdelete_filters > 0) + { + echo "

SUPRIMA ESTE FILTRO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages al administrador de este filtro\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=321111111 modify call time definition info in the system +###################### + +if ($ADD==321111111) + { + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Regla Del Estado Agregada: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Regla Del Estado Quitada: $state_rule
\n"; + } + + $ADD=311111111; + } + else + { + echo "Le no autorizan a visión esta página. Vaya por favor detrás."; + } + } + + +###################### +# ADD=311111111 modify call time definition info in the system +###################### + +if ($ADD==311111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
MODIFIQUE Un RATO De la LLAMADA\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación Del Tiempo De la Llamada: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nombre Del Tiempo De la Llamada: (descripción corta del tiempo de la llamada)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada: $NWB#vicidial_call_times-call_time_comments$NWE
Comienzo Del Defecto: Parada Del Defecto: $NWB#vicidial_call_times-ct_default_start$NWE
Comienzo De Domingo: Parada De Domingo: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Lunes: Parada De Lunes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Martes: Parada De Martes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Miércoles: Parada De Miércoles: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jueves Start: Parada De Jueves: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Viernes: Parada De Viernes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Sábado: Parada De Sábado: $NWB#vicidial_call_times-ct_sunday_start$NWE
Definiciones activas del tiempo de la llamada del estado para estoexpediente:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "CAMPAÑAS USANDO ESTE TIEMPO DE LA LLAMADA:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "Entrantes GROUPS USING THIS CALL TIME:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este tiempo de atención\n"; + } + } + else + { + echo "Le no autorizan a visión esta página. Vaya por favor detrás."; + } + + } + + +###################### +# ADD=3111111111 modify state call time definition info in the system +###################### + +if ($ADD==3111111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
_ MODIFICAR Uno ESTADO LLAMAR TIEMPO
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identificación Del Tiempo De la Llamada: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
_ Estado Llamar Tiempo Nombre: (descripción corta del tiempo de la llamada)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada Del Estado: $NWB#vicidial_call_times-call_time_comments$NWE
Comienzo Del Defecto: Parada Del Defecto: $NWB#vicidial_call_times-ct_default_start$NWE
Comienzo De Domingo: Parada De Domingo: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Lunes: Parada De Lunes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Martes: Parada De Martes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Miércoles: Parada De Miércoles: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jueves Start: Parada De Jueves: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Viernes: Parada De Viernes: $NWB#vicidial_call_times-ct_sunday_start$NWE
Comienzo De Sábado: Parada De Sábado: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPRIMA ESTA DEFINICIÓN DEL TIEMPO DE LA LLAMADA DEL ESTADO\n"; + } + } + else + { + echo "Le no autorizan a visión esta página. Vaya por favor detrás."; + } + } + + +###################### +# ADD=331111111 modify shift definition info in the system +###################### + +if ($ADD==331111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
MODIFICAR UN CAMBIO\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Cambio ID:$shift_id
Cambio de nombre: (breve descripción del cambio)$NWB#vicidial_shifts-shift_name$NWE
Cambio Hora de inicio:\n"; + echo "   Cambio Hora de finalización:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Longitud cambio: $NWB#vicidial_shifts-shift_length$NWE
Cambio semana:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Domingo
\n"; + echo "Lunes
\n"; + echo "Martes
\n"; + echo "Miércoles
\n"; + echo "Jueves
\n"; + echo "Viernes
\n"; + echo "Sábado
\n"; + echo "
\n"; + + echo "


\n"; + echo "GRUPOS DE USUARIOS DE UTILIZAR ESTE CAMBIO:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

ELIMINAR ESTA MAYÚS DEFINICIÓN\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este cambio\n"; + } + } + else + { + echo "Le no autorizan a visión esta página. Vaya por favor detrás."; + } + + } + + +###################### +# ADD=31111111111 modify phone record in the system +###################### + +if ($ADD==31111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICANDO EL TELÉFONO: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Extensión del teléfono: $NWB#phones-extension$NWE (Agent Screen Conexión Del Teléfono)
Número De Dial plan: (Solamente dígitos)$NWB#phones-dialplan_number$NWE
Caja de voz: (Solamente dígitos)$NWB#phones-voicemail_id$NWE
CallerID De salida: (Solamente dígitos)$NWB#phones-outbound_cid$NWE
Dirección IP del teléfono: (optional)$NWB#phones-phone_ip$NWE
Dirección IP del ordenador: (optional)$NWB#phones-computer_ip$NWE
IP Del Servidor: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Contraseña: $NWB#phones-pass$NWE
Estado: $NWB#phones-status$NWE
Cuenta Activa: $NWB#phones-active$NWE
Tipo Del Teléfono: $NWB#phones-phone_type$NWE
Nombre Completo: $NWB#phones-fullname$NWE
Correo electrónico: $NWB#phones-email$NWE
Eliminar correo de voz después del email: $NWB#phones-delete_vm_after_email$NWE
Compañía: $NWB#phones-company$NWE
Foto: $NWB#phones-picture$NWE
Mensajes Nuevos: $row[14]$NWB#phones-messages$NWE
Mensajes Viejos: $row[15]$NWB#phones-old_messages$NWE
Protocolo Del Cliente: $NWB#phones-protocol$NWE
GMT Local: (No ajustar para el DST)$NWB#phones-local_gmt$NWE
Teléfono Anillo de tiempo de espera: $NWB#phones-phone_ring_timeout$NWE
Login del Manager: $NWB#phones-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#phones-ASTmgrSECRET$NWE
Usuario por defecto de VICIDIAL: $NWB#phones-login_user$NWE
Contraseña por defecto de VICIDIAL: $NWB#phones-login_pass$NWE
Campaña por defecto de VICIDIAL: $NWB#phones-login_campaign$NWE
Extensión del parking: $NWB#phones-park_on_extension$NWE
Extensión de la conferencia: $NWB#phones-conf_on_extension$NWE
Exten. Del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Archivo para música del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Prefijo al monitorizar: $NWB#phones-monitor_prefix$NWE
Exten de Grabación: $NWB#phones-recording_exten$NWE
Exten de VmailMain: $NWB#phones-voicemail_exten$NWE
Exten de VmaiDumpl: $NWB#phones-voicemail_dump_exten$NWE
Contexto De Exten: $NWB#phones-ext_context$NWE
Teléfono Contexto: $NWB#phones-phone_context$NWE
Conf. Archivo Secreto: $NWB#phones-conf_secret$NWE
Canal de envío del DTMF: $NWB#phones-dtmf_send_extension$NWE
Grupo de las llamadas de salida: $NWB#phones-call_out_number_group$NWE
Localización del Navegador: $NWB#phones-client_browser$NWE
Directorio de instalación: $NWB#phones-install_directory$NWE
URL del CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL por defecto de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Call Logging: $NWB#phones-AGI_call_logging_enabled$NWE
Cambio de Usuario: $NWB#phones-user_switching_enabled$NWE
Conferencias: $NWB#phones-conferencing_enabled$NWE
Colgar del Admin: $NWB#phones-admin_hangup_enabled$NWE
Captura del Admin: $NWB#phones-admin_hijack_enabled$NWE
Monitorización del Admin: $NWB#phones-admin_monitor_enabled$NWE
Parking de Llamada: $NWB#phones-call_parking_enabled$NWE
Uptader Check: $NWB#phones-updater_check_enabled$NWE
AF Logging: $NWB#phones-AFLogging_enabled$NWE
Colas permitidas: $NWB#phones-QUEUE_ACTION_enabled$NWE
Ventana emergente del CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Botón Vmail: $NWB#phones-voicemail_button_enabled$NWE
Refresco rápido: $NWB#phones-enable_fast_refresh$NWE
Refresco rápido de la tarifa: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Auto Marcar el Siguiente Número: $NWB#phones-auto_dial_next_number$NWE
Parar de Grabar después de cada llamada: $NWB#phones-VDstop_rec_after_each_call$NWE
Permita Los Mensajes de SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Servidor de DBX: (Primario DB Server)$NWB#phones-DBX_server$NWE
Base de datos de DBX: (Primario Server Database)$NWB#phones-DBX_database$NWE
Usuario de DBX: (Primario DB Login)$NWB#phones-DBX_user$NWE
Contraseña de DBX: (Primario DB Secret)$NWB#phones-DBX_pass$NWE
Puerto de DBX: (Primario DB Port)$NWB#phones-DBX_port$NWE
Servidor de DBY: (Secundario DB Server)$NWB#phones-DBY_server$NWE
Base de datos de DBY: (Secundario Server Database)$NWB#phones-DBY_database$NWE
Usuario de DBY: (Secundario DB Login)$NWB#phones-DBY_user$NWE
Contraseña de DBY: (Secundario DB Secret)$NWB#phones-DBY_pass$NWE
Puerto de DBY: (Secundario DB Port)$NWB#phones-DBY_port$NWE
ID de plantilla: $NWB#phones-template_id$NWE
Conf. Sobrescribir: $NWB#phones-conf_override$NWE
\n"; + + echo "

Pinchar aquí­ para ver las estadísticas del teléfono\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

SUPRIMA ESTE TELÉFONO\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=32111111111 modify phone alias record in the system +###################### + +if ($ADD==32111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICAR UN TELÉFONO ALIAS REGISTRO: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nombre: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
TELÉFONOS DENTRO DE ESTE PHONES ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGINEXTENSIÓNSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTE TELÉFONO ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages alias para este teléfono
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=33111111111 modify group alias record in the system +###################### + +if ($ADD==33111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
ALIAS MODIFICAR UN GRUPO DE REGISTRO: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias ID Grupo: $row[0] $NWB#phones-group_alias_id$NWE
Grupo Alias Nombre: $NWB#phones-group_alias_name$NWE
Número CallerID: $NWB#phones-caller_id_number$NWE
Nombre CallerID: $NWB#phones-caller_id_name$NWE
Activo:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTE GRUPO DE ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este grupo, alias
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=311111111111 modify server record in the system +###################### + +if ($ADD==311111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; + + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + + echo "
MODIFICAR UN REGISTRO DEL SERVIDOR: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
ID Del Servidor: $NWB#servers-server_id$NWE
Descripción Del Servidor: $NWB#servers-server_description$NWE
Dirección IP del Servidor: $NWB#servers-server_ip$NWE
Activo: $NWB#servers-active$NWE
Sistema de carga: $sysload - $cpu%   $NWB#servers-sysload$NWE
Canales en vivo: $channels_total   $NWB#servers-channels_total$NWE
Uso del disco: $disk_usage   $NWB#servers-disk_usage$NWE
Versión De Asterisk: $NWB#servers-asterisk_version$NWE
Máx. Trunks en VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Pide máximo por segundo: $NWB#servers-outbound_calls_per_second$NWE
El Marcar Del Balance de VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
Balance Vicidial Rango:$NWB#servers-vicidial_balance_rank$NWE
Balance Offlimits de VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Host Del Telnet: $NWB#servers-telnet_host$NWE
Puerto Del Telnet: $NWB#servers-telnet_port$NWE
Usuario Del Manager: $NWB#servers-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#servers-ASTmgrSECRET$NWE
Usuario del Updater del Manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Usuario Listen del Manager: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Usuario Send del Manager: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf. Archivo Secreto: $NWB#servers-conf_secret$NWE
GMT Local: (No ajustar para el DST)$NWB#servers-local_gmt$NWE
Extensión de Vmail Dump : $NWB#servers-voicemail_dump_exten$NWE
Extensión del AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexto por Defecto: $NWB#servers-ext_context$NWE
Funcionamiento Del Sistema: $NWB#servers-sys_perf_log$NWE
Registros Del Servidor: $NWB#servers-vd_server_logs$NWE
Salida de AGI: $NWB#servers-agi_output$NWE
Portador de registro activo: $NWB#servers-carrier_logging_active$NWE
Grabación de Enlace Web: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Del Servidor: $NWB#servers-alt_server_ip$NWE
Activa del servidor de Asterisk: $NWB#servers-active_asterisk_server$NWE
Activo Server Agent: $NWB#servers-active_agent_login_server$NWE
Generar los archivos de configuración: $NWB#servers-generate_vicidial_conf$NWE
Reconstruir los archivos de configuración: $NWB#servers-rebuild_conf_files$NWE
Volver a generar música en espera: $NWB#servers-rebuild_music_on_hold$NWE
Actualización de los sonidos: $NWB#servers-sounds_update$NWE
Grabación Vicidial Límite: $NWB#servers-vicidial_recording_limit$NWE
\n"; + + + ### vicidial server trunk records for this server + echo "

TRONCOS DE VICIDIAL PARA ESTE SERVIDOR:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CAMPAÑA TRONCOS RESTRICCIÓN DELETE
$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "
ELIMINAR
\n"; + + echo "
AGREGUE EL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL
\n"; + echo "\n"; + echo "\n"; + echo "TRONCOS:
\n"; + echo "CAMPAÑA:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "

\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
TRANSPORTISTAS EN ESTE SERVIDOR:
\n"; + echo "\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDNOMBREREGISTRATIONACTIVO
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
TELÉFONOS DENTRO DE ESTE SERVIDOR:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
EXTENSIÓNNOMBREACTIVO
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEEXTENSIÓN
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEEXTENSIÓN
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Este servidor tiene $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Este servidor tiene $active_phones Teléfonos activos y $inactive_phones Teléfonos inactivos

\n"; + echo "Este servidor tiene $active_confs active conferences

\n"; + echo "Este servidor tiene $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTE SERVIDOR\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a este servidor
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=331111111111 modify conf template record in the system +###################### + +if ($ADD==331111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; + + echo "
MODIFICAR UN REGISTRO CONF PLANTILLA: $row[0]
\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Plantilla ID: $template_id
Nombre de plantilla: $NWB#vicidial_conf_templates-template_name$NWE
Plantilla de contenidos: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
TELÉFONOS DE UTILIZAR ESTE CONF PLANTILLA:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
EXTENSIÓNNOMBRESERVERACTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
TRANSPORTISTAS DE UTILIZAR ESTE CONF PLANTILLA:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERNOMBRESERVERACTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

CONF ELIMINAR ESTA PLANTILLA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver a esta Administración chages conf plantilla
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=341111111111 modify carrier record in the system +###################### + +if ($ADD==341111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFICAR UN REGISTRO DE TRANSPORTISTA: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Portador de Identificación: $carrier_id
Transportista Nombre: $NWB#vicidial_server_carriers-carrier_name$NWE
Descripción Carrier: $NWB#vicidial_server_carriers-carrier_description$NWE
Cadena de registro: $NWB#vicidial_server_carriers-registration_string$NWE
ID de plantilla: $NWB#vicidial_server_carriers-template_id$NWE
Cuenta Entrada: $NWB#vicidial_server_carriers-account_entry$NWE
Protocolo: $NWB#vicidial_server_carriers-protocol$NWE
Globals Serie de caracteres: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Entrada: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Del Servidor: $NWB#vicidial_server_carriers-server_ip$NWE
Activo: $NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTA PORTEADOR\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver Admin chages a esta compañía aérea
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
TTS MODIFICAR UN RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS ID: $tts_id
Nombre TTS: $NWB#vicidial_tts_prompts-tts_name$NWE
Activo: $NWB#vicidial_tts_prompts-active$NWE
TTS Texto: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTA ENTRADA TTS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages Admin a esta entrada a TTS
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Música en espera de identificación: $moh_id
Música en espera Nombre: $NWB#vicidial_music_on_hold-moh_name$NWE
Activo: $NWB#vicidial_music_on_hold-active$NWE
Orden aleatorio: $NWB#vicidial_music_on_hold-random$NWE
Archivos de Audio: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rango:\n"; + + echo "   $rowx[0] - ELIMINAR
\n"; + $o++; + } + + echo "
Añadir un archivo de audio: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE MÚSICA EN ESPERA DE ENTRADA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages de administración para esta música en espera de entrada
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
MODIFICAR UN contestador: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
ID de correo de voz: $voicemail_id
Contraseña: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Correo electrónico:$NWB#vicidial_voicemail-email$NWE
Activo: $NWB#vicidial_voicemail-active$NWE
Eliminar correo de voz después del email: $NWB#vicidial_voicemail-delete_vm_after_email$NWE
Mensajes Nuevos: $messages
Mensajes Viejos: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Este mensaje de voz DELETE BOX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages de administración para esta casilla de correo de voz
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=3111111111111 modify conference record in the system +###################### + +if ($ADD==3111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFICAR UN REGISTRO DE LA CONFERENCIA: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conferencia: $NWB#conferences-conf_exten$NWE
IP Del Servidor: $NWB#conferences-server_ip$NWE
Extensión Actual:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTA CONFERENCIA\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +###################### +# ADD=31111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==31111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conferencia: $NWB#conferences-conf_exten$NWE
IP Del Servidor: $NWB#conferences-server_ip$NWE
Extensión Actual:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

ELIMINAR ESTA CONFERENCIA VICIDIAL\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + +###################### +# ADD=311111111111111 modify vicidial system settings +###################### + +if ($ADD==311111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; + + echo "
MODIFIQUE LOS AJUSTES DEL SISTEMA DE VICIDIAL\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Versión: $version
DB Schema Versión: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto Usuario-add Value: $auto_user_add_value
Fecha de instalación: $install_date
Uso No-Latino: $NWB#settings-use_non_latin$NWE
Webroot Escribible: $NWB#settings-webroot_writable$NWE
El Agente de VICIDIAL Inhabilita La Exhibición:$NWB#settings-vicidial_agent_disable$NWE
Permita Los Mensajes de SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL Casero Del Admin: $NWB#settings-admin_home_url$NWE
Permita El Logfile De la Transferencia Del Agente: $NWB#settings-enable_agc_xfer_log$NWE
Reloj de tiempo Fin de Día:$NWB#settings-timeclock_end_of_day$NWE
ÚltimaReloj de tiempo Auto Desconexión: $timeclock_last_reset_date
Agente de la pantalla de encabezado Formato de fecha: $NWB#settings-vdc_header_date_format$NWE
Agente del cliente Fecha Formato de pantalla: $NWB#settings-vdc_customer_date_format$NWE
Agente Cliente Teléfono Formato de pantalla: $NWB#settings-vdc_header_phone_format$NWE
Agente activo de API:$NWB#settings-vdc_agent_api_active$NWE
Único agente de devolución de llamada Campaña de bloqueo: $NWB#settings-agentonly_callback_campaign_lock$NWE
Central de control de sonido activo: $NWB#settings-sounds_central_control_active$NWE
Sonidos de servidor Web: $NWB#settings-sounds_web_server$NWE
Sounds Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Servidor de correo de voz activo: $NWB#settings-active_voicemail_server$NWE
Marcado automático de límite de: $NWB#settings-auto_dial_limit$NWE
Salida activa de marcación automática: $NWB#settings-outbound_autodial_active$NWE
Max LLENAR Pide por segundo: $NWB#settings-outbound_calls_per_second$NWE
Permitir Custom Dialplan entradas: $NWB#settings-allow_custom_dialplan$NWE
Territorios de usuario de Activo: $NWB#settings-user_territories_active$NWE
Formulario de Asistencia Segunda Habilitar: $NWB#settings-enable_second_webform$NWE
Habilitar TTS Integración: $NWB#settings-enable_tts_integration$NWE
CC Características Activo: $NWB#settings-qc_features_active$NWE
Tire de CC Última Hora: $qc_last_pull_time
Permita La Registración De QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP Del Servidor De QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nombre del DB De QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
Conexión del DB De QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Contraseña del DB De QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Identificación Del Registro De QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend: $NWB#settings-queuemetrics_eq_prepend$NWE
Habilitar Vtiger Integración: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Haga clic aquí para sincronizar los usuarios con Vtiger\n"; + echo "
PP Vtiger IP del servidor: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Contraseña: $NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Haga clic aquí para ver chages a la administración de la configuración del sistema
\n"; + } + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + + + + +###################### +# ADD=321111111111111 modify vicidial system statuses +###################### + +if ($ADD==321111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "ESTADOS DE VICIDIAL DENTRO DE ESTE SISTEMA:  $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ESTADODESCRIPCIÓNSELECT-
ABLE
HUMANOS
RESPUESTA
CATEGORÍAMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "ELIMINAR\n"; + } + else + { + echo "ELIMINAR\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AGREGUE EL NUEVO ESTADO DE SISTEMA
\n"; + echo "\n"; + echo "Estado:   \n"; + echo "Descripción:
\n"; + echo "Seleccionable:   \n"; + echo "Respuesta humana:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Categoría:\n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + + + +###################### +# ADD=331111111111111 modify vicidial status categories +###################### + +if ($ADD==331111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL ESTADO DE LAS CATEGORÍAS:   $NWB#vicidial_status_categories$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Avsc_id[$o] = $rowx[0]; + $Avsc_name[$o] = $rowx[1]; + $Avsc_description[$o] = $rowx[2]; + $Atovdad_display[$o] = $rowx[3]; + $Asale_category[$o] = $rowx[4]; + $Adead_lead_category[$o] = $rowx[5]; + $o++; + } + $p=0; + while ($o > $p) + { + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CATstatuses=''; + $stmt="SELECT status from vicidial_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + $stmt="SELECT status from vicidial_campaign_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $p++; + } + + echo "
CATEGORÍANOMBREESTATUTOS EN ESTA CATEGORÍA
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$Avsc_id[$p]
\n"; + echo "$CATstatuses"; + echo "
TO VDAD Exponer:     Categoría de venta:     Muerto líder Categoría:  
Descripción:
        \n"; + echo "   ELIMINAR
 
\n"; + + echo "
AGREGUE LA NUEVA CATEGORÍA DEL ESTADO
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Exponer:   \n"; + echo "Categoría de venta:   \n"; + echo "Muerto líder Categoría:  
\n"; + echo "Descripción:   \n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + + + +###################### +# ADD=341111111111111 modify vicidial QC status code +###################### + +if ($ADD==341111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "CC CÓDIGOS VICIDIAL ESTADO DENTRO DE ESTE SISTEMA:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEDESCRIPCIÓNMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "ELIMINAR\n"; + } + else + { + echo "ELIMINAR\n"; + } + echo "
\n"; + + echo "
Añadir CC NUEVO CÓDIGO ESTADO
\n"; + echo "\n"; + echo "Estado:   \n"; + echo "Descripción:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) + { + echo "
\n"; + echo ""; + + echo "
BUSCAR UN USUARIO
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
NÚmero De Usuario:
Nombre Completo:
Nivel Del Usuario:
Grupo Del Usuario:
\n"; + } + +###################### +# ADD=660 user search results +###################### + +if ($ADD==660) + { + echo "
\n"; + echo ""; + + $SQL = ''; + if ($user) {$SQL .= " user LIKE \"%$user%\" and";} + if ($full_name) {$SQL .= " full_name LIKE \"%$full_name%\" and";} + if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} + if ($user_group) {$SQL .= " user_group = '$user_group' and";} + $SQL = eregi_replace(" and$", "", $SQL); + if (strlen($SQL)>5) {$SQL = "and $SQL";} + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; +# echo "\n|$stmt|\n"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
RESULTADOS DE LA BÚSQUEDA:\n"; + echo "
\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo "\n"; + $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]MODIFICAR | ESTADÍSTICAS | ESTADO | TIME
\n"; + + } + + +###################################################################################################### +###################################################################################################### +####### 8 series, Callback lists +###################################################################################################### +###################################################################################################### + +###################### +# ADD=8 find all callbacks on hold by a User +###################### +if ($ADD==8) + { + if ($LOGmodify_users==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Usuario($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Usuario($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + + echo ""; + + $CBquerySQLwhere = "and user='$user'"; + + echo "
USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } + +###################### +# ADD=81 find all callbacks on hold within a Campaign +###################### +if ($ADD==81) + { + if ($LOGmodify_campaigns==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + + echo ""; + + $CBquerySQLwhere = "and campaign_id='$campaign_id'"; + + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } + +###################### +# ADD=811 find all callbacks on hold within a List +###################### +if ($ADD==811) + { + if ($LOGmodify_lists==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + + echo ""; + + $CBquerySQLwhere = "and list_id='$list_id'"; + + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } + +###################### +# ADD=8111 find all callbacks on hold within a user group +###################### +if ($ADD==8111) + { + if ($LOGmodify_usergroups==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; + + echo ""; + + $CBquerySQLwhere = "and user_group='$user_group'"; + + echo "
GRUPO DE USUARIOS CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } + +###################### +# ADD=82 display all callbacks on hold +###################### +if ($ADD==82) + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $NIVELlink='stage=NIVELUP';} + + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $rslt=mysql_query($stmt, $link); + $cb_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($cb_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
LEADLIST CAMPAÑAENTRY FECHACALLBACK FECHAUSERRECIPIENTESTADOGROUP
$row[1]$row[2]$row[3]$row[5]$row[6]$row[8]$row[9]$row[4]$row[11]
\n"; + + echo "$CBinactiveLINK"; + } + + + +###################################################################################################### +###################################################################################################### +####### 0 series, displays and searches +###################################################################################################### +###################################################################################################### + +###################### +# ADD=0 display all active users +###################### +if ($ADD==0) + { + echo "
\n"; + echo ""; + echo "
USUARIOS: "; + if (ereg('display_all',$status)) + { + $SQLstatus = ''; + echo "   mostrar sólo los usuarios activos\n"; + } + else + { + $SQLstatus = "and active='Y'"; + echo "   mostrar todos los usuarios\n"; + } + + $USERlink='stage=USERIDDOWN'; + $NAMElink='stage=NAMEDOWN'; + $NIVELlink='stage=NIVELDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $SQLorder='order by full_name'; + if (eregi("USERIDUP",$stage)) {$SQLorder='order by user asc'; $USERlink='stage=USERIDDOWN';} + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc'; $USERlink='stage=USERIDUP';} + if (eregi("NAMEUP",$stage)) {$SQLorder='order by full_name asc'; $NAMElink='stage=NAMEDOWN';} + if (eregi("NAMEDOWN",$stage)) {$SQLorder='order by full_name desc'; $NAMElink='stage=NAMEUP';} + if (eregi("NIVELUP",$stage)) {$SQLorder='order by user_level asc'; $NIVELlink='stage=NIVELDOWN';} + if (eregi("NIVELDOWN",$stage)) {$SQLorder='order by user_level desc'; $NIVELlink='stage=NIVELUP';} + if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ID USUARIONOMBRE COMPLETONIVELGROUPACTIVOENLACES
$row[0]$row[1]$row[2]$row[3]$row[4]
MODIFICAR | ESTADÍSTICAS | ESTADO | TIME
\n"; + } + +###################### +# ADD=10 display all campaigns +###################### +if ($ADD==10) + { + echo "
\n"; + echo ""; + + $stmt="SELECT campaign_id,campaign_name,active,dial_method,auto_dial_level,lead_order,dial_statuses from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + echo "
CAMPAÑAS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + $o++; + } + + echo "
ID de campaña
NOMBRE
ACTIVE   DIAL MÉTODO   NIVEL   ORDEN DE PLOMO   DIAL ESTATUTOS   MODIFICAR
$row[0]   $row[1]   $row[2]   $row[3]   $row[4]   $row[5]   $row[6]MODIFICAR
\n"; + } + + +###################### +# ADD=100 display all lists +###################### +if ($ADD==100) + { + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
LISTAS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $lists_printed = ''; + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $lists_printed .= "'$row[0]',"; + $o++; + } + + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ID DE LA LISTANOMBRE DE LA LISTADESCRIPCIÓNRTIMEENCABEZA COUNTACTIVOÚLTIMA FECHA DE CONVOCATORIACAMPAIGNMODIFICAR
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]MODIFICAR
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]MODIFICAR
\n"; + } + + + +###################### +# ADD=1000 display all inbound groups +###################### +if ($ADD==1000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,queue_priority,active,call_time_id,group_color from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $ingroups_to_print = mysql_num_rows($rslt); + + echo "
GRUPOS DE ENTRADA :\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($ingroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
IN-GROUPNOMBREPRIORIDADACTIVOTIMECOLORMODIFICAR
$row[0] $row[1] $row[2] $row[3] $row[4]  MODIFICAR
\n"; + } + + +###################### +# ADD=1300 display all inbound dids +###################### +if ($ADD==1300) + { + echo "
\n"; + echo ""; + + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route from vicidial_inbound_dids order by did_pattern"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + + echo "
Entrantes DID LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
#DIDDESCRIPCIÓNACTIVOROUTEMODIFICAR
$row[0] $row[1] $row[2] $row[3] $row[4]MODIFICAR
\n"; + } + + +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
CALL MENU LISTADOS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDNOMBREPROMPTTIMEOUTOPTIONSMODIFICAR
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]MODIFICAR
\n"; + } + + +###################### +# ADD=10000 display all remote agents +###################### +if ($ADD==10000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id from vicidial_remote_agents order by server_ip,campaign_id,user_start"; + $rslt=mysql_query($stmt, $link); + $remoteagents_to_print = mysql_num_rows($rslt); + + echo "
AGENTES REMOTOS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($remoteagents_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
USERLINESSERVIDOR   CONF-EXTEN   STATUS   CAMPAIGN   MODIFICAR
$row[1] $row[2] $row[3] $row[4] $row[5] $row[6]MODIFICAR
\n"; + } + + +###################### +# ADD=100000 display all user groups +###################### +if ($ADD==100000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,forced_timeclock_login from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $usergroups_to_print = mysql_num_rows($rslt); + + echo "
GRUPOS DE USUARIO :\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($usergroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
GRUPO DE USUARIOSNOMBRE DEL GRUPOFUERZA TIMECLOCK   MODIFICAR
$row[0] $row[1] $row[2]MODIFICAR
\n"; + } + + +###################### +# ADD=1000000 display all scripts +###################### +if ($ADD==1000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,active from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + + echo "
ESCRITURAS DE LA VISIÓN:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
GUIÓN IDGUIÓN NOMBREACTIVE   MODIFICAR
$row[0] $row[1] $row[2]MODIFICAR
\n"; + } + + +###################### +# ADD=10000000 display all filters +###################### +if ($ADD==10000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + + echo "
LISTADOS DEL FILTRO DEL PLOMO:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($filters_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
FILTER IDFILTER NAMEMODIFICAR
$row[0] $row[1]MODIFICAR
\n"; + } + + +###################### +# ADD=100000000 display all call times +###################### +if ($ADD==100000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,ct_default_start,ct_default_stop from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $calltimes_to_print = mysql_num_rows($rslt); + + echo "
LISTADOS DEL TIEMPO DE LA LLAMADA:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($calltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME NOMBREPREDETERM PRINCIPIOPREDETERM STOPMODIFICAR
$row[0] $row[1] $row[2] $row[3] MODIFICAR
\n"; + } + +###################### +# ADD=1000000000 display all state call times +###################### +if ($ADD==1000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,sct_default_start,sct_default_stop from vicidial_state_call_times order by state_call_time_id"; + $rslt=mysql_query($stmt, $link); + $statecalltimes_to_print = mysql_num_rows($rslt); + + echo "
LISTADOS DEL TIEMPO DE LA LLAMADA DEL ESTADO:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($statecalltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME STATECALLTIME NOMBREPREDETERM PRINCIPIOPREDETERM STOPMODIFICAR
$row[0] $row[1] $row[2] $row[3] $row[4] MODIFICAR
\n"; + } + +###################### +# ADD=130000000 display all shifts +###################### +if ($ADD==130000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + + echo "
MAYÚS LISTADOS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($shifts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MAYÚS IDMAYÚS NOMBREMAYÚS PRINCIPIODURACIÓN SHIFTSEMANALMODIFICAR
$row[0] $row[1] $row[2] $row[3] $row[4] MODIFICAR
\n"; + } + +###################### +# ADD=10000000000 display all phones +###################### +if ($ADD==10000000000) + { + echo "
\n"; + echo ""; + + $EXTENlink='stage=EXTENDOWN'; + $PROTOlink='stage=PROTODOWN'; + $SERVERlink='stage=SERVERDOWN'; + $STATUSlink='stage=STATUSDOWN'; + $SQLorder='order by extension,server_ip'; + if (eregi("EXTENUP",$stage)) {$SQLorder='order by extension asc'; $EXTENlink='stage=EXTENDOWN';} + if (eregi("EXTENDOWN",$stage)) {$SQLorder='order by extension desc'; $EXTENlink='stage=EXTENUP';} + if (eregi("PROTOUP",$stage)) {$SQLorder='order by protocol asc'; $PROTOlink='stage=PROTODOWN';} + if (eregi("PROTODOWN",$stage)) {$SQLorder='order by protocol desc'; $PROTOlink='stage=PROTOUP';} + if (eregi("SERVERUP",$stage)) {$SQLorder='order by server_ip asc'; $SERVERlink='stage=SERVERDOWN';} + if (eregi("SERVERDOWN",$stage)) {$SQLorder='order by server_ip desc'; $SERVERlink='stage=SERVERUP';} + if (eregi("STATUSUP",$stage)) {$SQLorder='order by status asc'; $STATUSlink='stage=STATUSDOWN';} + if (eregi("STATUSDOWN",$stage)) {$SQLorder='order by status desc'; $STATUSlink='stage=STATUSUP';} + $stmt="SELECT extension,protocol,server_ip,dialplan_number,voicemail_id,status,fullname,messages,old_messages from phones $SQLorder"; + $rslt=mysql_query($stmt, $link); + $phones_to_print = mysql_num_rows($rslt); + + echo "
LISTADOS DE TELÉFONOS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phones_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo " + + + + + + + + "; + echo "\n"; + $o++; + } + + echo "
EXTENPROTOSERVERPLAN DE DIALESTADONOMBREVMAILENLACES
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]$row[7]$row[8]MODIFICAR | ESTADÍSTICAS
\n"; + } + +###################### +# ADD=12000000000 display all phones alias +###################### +if ($ADD==12000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias order by alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
TELÉFONO ALIAS LISTADOS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ALIAS IDNOMBRE ALIASTELÉFONO LISTA LoginsMODIFICAR
$row[0]$row[1]$row[2]MODIFICAR
\n"; + } + +###################### +# ADD=13000000000 display all group alias +###################### +if ($ADD==13000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias order by group_alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
GRUPO DE ALIAS LISTADOS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
GRUPO DE ALIAS IDALIAS GRUPO NOMBRECID NÚMERONOMBRE DEL CIDACTIVOMODIFICAR
$row[0]$row[1]$row[2]$row[3]$row[4]MODIFICAR
\n"; + } + +###################### +# ADD=100000000000 display all servers +###################### +if ($ADD==100000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,local_gmt from servers order by server_id"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + + echo "
LISTADOS DEL SERVIDOR:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($servers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SERVIDOR IDNOMBRESERVIDOR IPACTIVOASTERISKTRONCOSGMTMODIFICAR
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]MODIFICAR
\n"; + } + +###################### +# ADD=130000000000 display all conf templates +###################### +if ($ADD==130000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name from vicidial_conf_templates order by template_id"; + $rslt=mysql_query($stmt, $link); + $templates_to_print = mysql_num_rows($rslt); + + echo "
CONF PLANTILLA LISTADOS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($templates_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ID de plantillaNombre de plantillaMODIFICAR
$row[0]$row[1]MODIFICAR
\n"; + } + +###################### +# ADD=140000000000 display all carriers +###################### +if ($ADD==140000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,server_ip,protocol,registration_string,active from vicidial_server_carriers order by carrier_id"; + $rslt=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rslt); + + echo "
LISTAS DE TRANSPORTISTA:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($carriers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Portador de IdentificaciónNombre del transportistaIP Del ServidorProtocolRegistroActivoMODIFICAR
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFICAR
\n"; + } + + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS IDNombre TTSActivoTTS TextoMODIFICAR
$row[0]$row[1]$row[2]$row[3]MODIFICAR
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameActivoOrden aleatorioMODIFICAR
$row[0]$row[1]$row[2]$row[3]MODIFICAR
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
CAJAS DE CORREO DE VOZ:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameActivoMensajes NuevosMensajes ViejosDeleteMODIFICAR
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFICAR
\n"; + } + + +###################### +# ADD=1000000000000 display all conferences +###################### +if ($ADD==1000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $conferences_to_print = mysql_num_rows($rslt); + + echo "
LISTADOS DE CONFERENCIAS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($conferences_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCESERVIDOR IPEXTENSIÓNMODIFICAR
$row[0]$row[1]$row[2]MODIFICAR
\n"; + } + +###################### +# ADD=10000000000000 display all vicidial conferences +###################### +if ($ADD==10000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from vicidial_conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $vicidialconf_to_print = mysql_num_rows($rslt); + + echo "
VICIDIAL LISTADOS DE CONFERENCIAS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vicidialconf_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCESERVIDOR IPEXTENSIÓNMODIFICAR
$row[0] $row[1] $row[2]MODIFICAR
\n"; + } + + + + + +###################### +# ADD=700000000000000 view all activity in the admin log +###################### + +if ($ADD==700000000000000) + { + echo "
\n"; + echo ""; + + if ($stage > 9999) + { + $next_limit = ($stage + 10000); + $limitSQL = "10000 offset $stage"; + } + else + { + $next_limit = "10000"; + $limitSQL = "10000"; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log order by event_date desc limit $limitSQL;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN Change Log: (Última 10.000 registros)\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPCIÓNGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "NEXT\n"; + echo "
\n"; + } + + +###################### +# ADD=710000000000000 view all activity in the admin log made by one user +###################### + +if ($ADD==710000000000000) + { + echo "\n";echo "\n"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; + +?> +
+ +
\n"; + echo ""; + + $stmt="SELECT full_name from vicidial_users where user='$stage';"; + $rslt=mysql_query($stmt, $link); + $names_to_print = mysql_num_rows($rslt); + if ($names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $user_name = $row[0]; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where user='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN Change Log: Los cambios efectuados por $stage - $user_name\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPCIÓNGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=720000000000000 view all activity in the admin log made to one section/value +###################### + +if ($ADD==720000000000000) + { + echo "\n"; +echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where event_section='$category' and record_id='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN Change Log: Sección de Documentos - $category - $stage\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPCIÓNGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=730000000000000 detail view of one admin log entry +###################### + +if ($ADD==730000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,val.user,ip_address,event_section,event_type,record_id,event_code,event_notes,event_sql,full_name from vicidial_admin_log val, vicidial_users vu where admin_log_id='$stage' and val.user=vu.user;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + if ($logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + echo "
ADMIN Change Log: Detalle de registro - $stage

\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + $row[9] = eregi_replace("',","' ,",$row[9]); + echo ""; + echo ""; + echo "\n"; + echo "
ID: $row[0]
DATE TIME: $row[1]
USER: $row[2] - $row[10]
IP: $row[3]
SECTION: $row[4]
TYPE: $row[5]
RECORD ID: $row[6]
DESCRIPTION: $row[7]
NOTES: $row[8]
SQL:

$row[9]



\n"; + echo "\n"; + echo "
\n"; + } + } + + +###################### +# ADD=999999 display reports section +###################### +if ($ADD==999999) + { + if ($LOGview_reports==1) + { + echo "
\n"; + echo ""; + + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $servers_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $sysload[$i] = $row[4]; + $channels_total[$i] = $row[5]; + $cpu_idle_percent[$i] = $row[6]; + $disk_usage[$i] = $row[7]; + $i++; + } + + $stmt="SELECT queuemetrics_url,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $queuemetrics_url_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; + ?> + + + + + + Estadísticas e Informes servidor + Estadísticas e Informes servidor

+
+       + + Tiempo Real Informes
+
+ Inbound and Outbound Calling Informes
+ + +
+       + + Agent Informes
+
+ Time Clock Informes
+
+ Other Informes and Links
+ +
+ + +

+		
+		 $o)
+			{
+			$cpu = (100 - $cpu_idle_percent[$o]);
+			$disk = '';
+			$disk_ary = explode('|',$disk_usage[$o]);
+			$disk_ary_ct = count($disk_ary);
+			$k=0;
+			while ($k < $disk_ary_ct)
+				{
+				$disk_ary[$k] = preg_replace("/^\d* /","",$disk_ary[$k]);
+				if ($k<1) {$disk = "$disk_ary[$k]";}
+				else
+					{
+					if ($disk_ary[$k] > $disk) {$disk = "$disk_ary[$k]";}
+					}
+				$k++;
+				}
+			$disk = "$disk%";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			$o++;
+			}
+
+		echo "
SERVERDESCRIPCIÓNIPACTLOADCHANDISKSALIENTEEntrantes
$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]$sysload[$o] - $cpu%$channels_total[$o]$diskLINKLINK
\n"; + } + else + { + echo "Usted no tiene permiso de visión esta página\n"; + exit; + } + } + + +echo "
\n"; +echo "
\n"; + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "
\n"; +echo "

"; +echo "VERSIÓN: $admin_version
"; +echo "CONSTRUCCION: $build
\n"; + +?> + +
+
+ + + +1) + { + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Domingo tiempo local + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Lunes tiempo local + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Martes tiempo local + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Miércoles tiempo local + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Jueves tiempo local + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Viernes tiempo local + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Sábado tiempo local + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Domingo tiempo local + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Lunes tiempo local + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Martes tiempo local + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Miércoles tiempo local + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Jueves tiempo local + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Viernes tiempo local + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Sábado tiempo local + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL"; + #$DB=1; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rslt_rows = mysql_num_rows($rslt); + if ($rslt_rows) + { + $rowx=mysql_fetch_row($rslt); + $active_leads = "$rowx[0]"; + } + else {$active_leads = '0';} + + echo "|$DB|\n"; + echo "Esta campaña tiene $active_leads Leads para ser llamados en estas listas\n"; + } + else + { + echo "ningunos estados del dial seleccionados para esta campaña\n"; + } + } + else + { + echo "ningunas listas activas seleccionadas para esta campaña\n"; + } + } +else + { + echo "ningunas listas activas seleccionadas para esta campaña\n"; + } +##### END calculate what gmt_offset_now values are within the allowed local_call_time setting ### +} +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin_header.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin_header.php new file mode 100644 index 00000000..8ccea972 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin_header.php @@ -0,0 +1,1287 @@ + LICENSE: AGPLv2 +# + +# CHANGES +# 90310-0709 - First Build +# 90508-0542 - Added Call Menu option, changed script to use long PHP tags +# 90514-0605 - Added audio prompt selection functions +# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option +# 90531-2339 - Added Dynamic options for Call Menu +# 90612-0852 - Changed relative links +# 90635-0943 - Added javascript for dynamic menus in In-Groups +# 90627-0548 - Added no-agent-no-queue options +# 90628-1016 - Added Text-to-speech options +# 90830-2213 - Added Music On Hold options +# 90904-1534 - Added launch_moh_chooser +# 90916-2334 - Added Voicemail options +# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus +# + + +######################### SMALL HTML HEADER BEGIN ####################################### +if($short_header) + { + ?> +
+ + + + + + + + + + + + +
    Usuarios     Campañas     Listas     Escrituras     Filtros     In-Groups     Grupos De Usuario     Agentes Remotos     Admin     Informes  
+ 0) + { + if ($hh=='lists') + {$lists_hh="bgcolor=\"$lists_color\""; $lists_fc="$lists_font"; $lists_bold="$header_selected_bold";} + else {$lists_hh=''; $lists_fc='WHITE'; $lists_bold="$header_nonselected_bold";} + } +if ($hh=='ingroups') + {$ingroups_hh="bgcolor=\"$ingroups_color\""; $ingroups_fc="$ingroups_font"; $ingroups_bold="$header_selected_bold";} + else {$ingroups_hh=''; $ingroups_fc='WHITE'; $ingroups_bold="$header_nonselected_bold";} +if ($hh=='remoteagent') + {$remoteagent_hh="bgcolor=\"$remoteagent_color\""; $remoteagent_fc="$remoteagent_font"; $remoteagent_bold="$header_selected_bold";} + else {$remoteagent_hh=''; $remoteagent_fc='WHITE'; $remoteagent_bold="$header_nonselected_bold";} +if ($hh=='usergroups') + {$usergroups_hh="bgcolor=\"$usergroups_color\""; $usergroups_fc="$usergroups_font"; $usergroups_bold="$header_selected_bold";} + else {$usergroups_hh=''; $usergroups_fc='WHITE'; $usergroups_bold="$header_nonselected_bold";} +if ($hh=='scripts') + {$scripts_hh="bgcolor=\"$scripts_color\""; $scripts_fc="$scripts_font"; $scripts_bold="$header_selected_bold";} + else {$scripts_hh=''; $scripts_fc='WHITE'; $scripts_bold="$header_nonselected_bold";} +if ($SSoutbound_autodial_active > 0) + { + if ($hh=='filters') + {$filters_hh="bgcolor=\"$filters_color\""; $filters_fc="$filters_font"; $filters_bold="$header_selected_bold";} + else {$filters_hh=''; $filters_fc='WHITE'; $filters_bold="$header_nonselected_bold";} + } +if ($hh=='admin') + {$admin_hh="bgcolor=\"$admin_color\""; $admin_fc="$admin_font"; $admin_bold="$header_selected_bold";} + else {$admin_hh=''; $admin_fc='WHITE'; $admin_bold="$header_nonselected_bold";} +if ($hh=='reports') + {$reports_hh="bgcolor=\"$reports_color\""; $reports_fc="$reports_font"; $reports_bold="$header_selected_bold";} + else {$reports_hh=''; $reports_fc='WHITE'; $reports_bold="$header_nonselected_bold";} + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
English Español
+ +\r\n"; + print " \r\n"; + } + $rec_count++; + } +$sthA->finish(); + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader_super.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader_super.pl new file mode 100644 index 00000000..9b09bba7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader_super.pl @@ -0,0 +1,1162 @@ +#!/usr/bin/perl +# +# listloader_super.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60906-1056 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1207 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$vars=$ARGV[0]; +@xls_fields=split(/\,/, $vars); + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +### Grab Server values from the database +$stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } +$sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[0]]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[1]]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[2]]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[3]]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[4]]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[5]]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[6]]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[7]]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[8]]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[9]]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[10]]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[11]]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[12]]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[13]]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[14]]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[15]]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[16]]; + if ($oWkC) {$country_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[17]]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[18]]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[19]]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[20]]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[21]]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } + + + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/new_listloader_superL.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/new_listloader_superL.php new file mode 100644 index 00000000..d53e77dd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/new_listloader_superL.php @@ -0,0 +1,2258 @@ + LICENSE: AGPLv2 +# +# AST GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 60113-1603 - Fixed a few bugs in Excel import +# 60421-1624 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60616-1240 - added listID override +# 60616-1604 - added gmt lookup for each lead +# 60619-1651 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1121 - fixed for nonwritable directories +# 60906-1100 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1149 - added postal code GMT lookup and duplicate check options +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0417 - UTF8 changes +# 80514-1030 - removed filesize limit and raised number of errors to be displayed +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 81011-2009 - a few bug fixes +# 90309-1831 - Added admin_log logging +# 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# +# 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 = '2.2.0-33'; +$build = '91112-0616'; + + +require("dbconnect.php"); + +### links used for testing +#$link=mysql_connect("10.10.10.15", "cron", "1234"); +#mysql_select_db("asterisk"); +#$WeBServeRRooT = '/home/www/htdocs'; + +$US='_'; + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} +if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} +if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} + elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} +if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} + elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} +if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} +if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} + elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} +if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} + elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} +if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} +if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} +if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} + elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} +if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"];} + elseif (isset($_POST["province_field"])) {$province_field=$_POST["province_field"];} +if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} + elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} +if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} +if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} + elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} + elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} +if (isset($_GET["phone_code_override"])) {$phone_code_override=$_GET["phone_code_override"];} + elseif (isset($_POST["phone_code_override"])) {$phone_code_override=$_POST["phone_code_override"];} + $phone_code_override = (preg_replace("/\D/","",$phone_code_override)); + +# $country_field=$_GET["country_field"]; if (!$country_field) {$country_field=$_POST["country_field"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('new_listloader_superL.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"AYUDA\""; + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +function macfontfix($fontsize) { + + $browser = getenv("HTTP_USER_AGENT"); + $pctype = explode("(", $browser); + if (ereg("Mac",$pctype[1])) { + /* Browser is a Mac. If not Netscape 6, raise fonts */ + + $blownbrowser = explode('/', $browser); + $ver = explode(' ', $blownbrowser[1]); + $ver = $ver[0]; + if ($ver >= 5.0) return $fontsize; else return ($fontsize+2); + + } else return $fontsize; /* Browser is not a Mac - don't touch fonts */ +} + +echo "\n"; + +?> + + + +ADMINISTRATION: Lead Loader + + + +
+VICIDIAL logo +ADMINISTRATION
+ + + + 1) { + ?> + >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + + + + 1) + { + if ($sh=='basic') {$sh='list';} + if ($sh=='detail') {$sh='list';} + if ($sh=='dialstat') {$sh='list';} + + if ($sh=='list') {$list_sh="bgcolor=\"$subcamp_color\""; $list_fc="$subcamp_font";} + else {$list_sh=''; $list_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$subcamp_color\""; $status_fc="$subcamp_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='hotkey') {$hotkey_sh="bgcolor=\"$subcamp_color\""; $hotkey_fc="$subcamp_font";} + else {$hotkey_sh=''; $hotkey_fc='BLACK';} + if ($sh=='recycle') {$recycle_sh="bgcolor=\"$subcamp_color\""; $recycle_fc="$subcamp_font";} + else {$recycle_sh=''; $recycle_fc='BLACK';} + if ($sh=='autoalt') {$autoalt_sh="bgcolor=\"$subcamp_color\""; $autoalt_fc="$subcamp_font";} + else {$autoalt_sh=''; $autoalt_fc='BLACK';} + if ($sh=='pause') {$pause_sh="bgcolor=\"$subcamp_color\""; $pause_fc="$subcamp_font";} + else {$pause_sh=''; $pause_fc='BLACK';} + if ($sh=='listmix') {$listmix_sh="bgcolor=\"$subcamp_color\""; $listmix_fc="$subcamp_font";} + else {$listmix_sh=''; $listmix_fc='BLACK';} + + ?> + > + + > + + > + + 0) + { + ?> + > + + > + + > + + + > + + + + 0) + { + ?> + + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Añadir-Supr Número de DNC';} + else {$DNClink = 'Add Number To DNC';} + ?> + >>>>> + + + + 1) + { + ?> + >> + + + 0) + { + ?> + + 1) + { + ?> + >> + + + + 1) + { + ?> + >>>>>>>>> + + + + 1) + { + ?> + >>>> + + + + 1) + { + ?> + >> + + + + 1) + { + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} + else {$times_sh=''; $times_fc='BLACK';} + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} + else {$shifts_sh=''; $shifts_fc='BLACK';} + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} + else {$templates_sh=''; $templates_fc='BLACK';} + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} + else {$carriers_sh=''; $carriers_fc='BLACK';} + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} + else {$phones_sh=''; $phones_fc='BLACK';} + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} + else {$server_sh=''; $server_fc='BLACK';} + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} + else {$conference_sh=''; $conference_fc='BLACK';} + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} + else {$settings_sh=''; $settings_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} + + ?> + > + + > + > + > + > + > + > + > + > + > + + 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + + + + +
WIDTH=160> + SIZE=>Usuarios +
+   >Mostrar Usuarios +
+   >Añadir un nuevo usuario +
+   >Usuario Del Copiar +
+   >Búsqueda de un usuario +
+   >Estadísticas de usuario +
+   >Condición de Usuario +
+   >Hoja de tiempo
+   >Territorios de usuario
> + SIZE=>Campañas +
>   SIZE=>Principales Campañas
>   SIZE=>Estados
>   SIZE=>Teclas rápidas
>   SIZE=>Plomo Reciclado
>   SIZE=>Auto-Alt Dial
>   SIZE=>Mezcla lista
>   SIZE=>Pausa Códigos
> SIZE=>Listas
  + > Demuestre Las Listas +
  + > Agregue Una Nueva Lista +
  + > Búsqueda Para Un Plomo +
  + > +
  + > Nuevos Plomos De la Carga +
> + SIZE=> Escrituras +
  + > Demuestre Las Escrituras +
  + > Agregue Una Nueva Escritura +
> SIZE=> Filtros
  + > Demuestre Los Filtros +
  + > Agregue Un Filtro Nuevo +
> + SIZE=> En-Grupos +
  + > Demuestre A En-Grupos +
  + > Agregue A Nuevo En-Grupo +
  + > En-Grupo Del Copiar
+
  + > Mostrar DIDs +
  + > Añadir un nuevo DID +
  + > CopiarDID
+
  + > Mostrar menús de llamadas +
  + > Añadir un nuevo menú de llamadas +
  + > Copia de llamadas Menú +
> + SIZE=> Grupos De Usuario +
  + > Demuestre A Grupos De Usuario +
  + > Agregue A Nuevo Grupo De Usuario +
  + > Informe Cada hora Del Grupo +
  + > Basura Grupo Cambio +
> + SIZE=> Agentes Alejados +
  + > Demuestre Los Agentes Alejados +
  + > Agregue Los Agentes Alejados Nuevos +
> + SIZE=> Admin +
COLSPAN=2>   + SIZE=> Tiempos De la Llamada
>   + SIZE=> Turnos
>   + SIZE=> Teléfonos
>   + SIZE=> Plantillas
>   + SIZE=> Transportistas
>   + SIZE=> Servidores
>   + SIZE=> Conferencias
>   + SIZE=> Ajustes Del Sistema
>   + SIZE=>Estados De Sistema
>   + SIZE=> Buzón de Voz
>   + SIZE=> Audio de la tienda
>   + SIZE=> Música en espera
>   + SIZE=> Text To Speech
> + SIZE=> Informes +
 
+
BGCOLOR=#D9E6FE> + + + + + HEIGHT=15> + + + + + + + + + + + + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { + ?> + > + 1) and (!eregi('campaign',$hh) ) ) { + ?> + > + + > + 1) { + ?> +> + + + + +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + $call_log .= ""; + $call_log .= ""; + $call_log .= ""; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); + + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + + $campaign_id = $row[5]; + } + + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); + + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; + + echo "
Información de la llamada: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
CASERO | Reloj de tiempo | Salir  
>   > Demuestre Las Campañas     |     > Agregue Una Nueva Campaña     |     > Campaña Del Copiar     |     > Campañas En tiempo real Sumarias
  > Demuestre Los Tiempos De la Llamada  | > Agregue Un Nuevo Rato De la Llamada  | > Demuestre Los Tiempos De la Llamada Del Estado  | > Agregue Un Nuevo Rato De la Llamada Del Estado
  > Mostrar cambios  | > Añadir un nuevo cambio
  > Demuestre Los Teléfonos  | > Agregue Un Teléfono Nuevo  | > Teléfono Alias Lista  | > Añadir un nuevo teléfono Alias  | > Grupo Alias Lista  | > Añadir un nuevo grupo de alias
  > Demuestre Las Conferencias   |   > Agregue Una Nueva Conferencia   |   > Demuestre Las Conferencias de VICIDIAL   |   > Agregue Una Nueva Conferencia de VICIDIAL
  > Demuestre Los Servidores   |   > Agregue Un Servidor Nuevo
  > Mostrar plantillas   |   > Añadir una nueva plantilla
  > Show Transportistas   |   > Add A New Carrier
  > Mostrar las entradas TTS   |   > Agregar una nueva entrada TTS
  > Mostrar las entradas del Ministerio de Salud   |   > Agregar una nueva entrada del Ministerio de Salud
  > Show Buzón de Voz Entries   |   > Add A New Buzón de Voz Entry
  > Ajustes Del Sistema
  >Estados De Sistema   |   >Categorías Del Estado   |   >Códigos de estado de CC
  >Estadísticas de usuario   |   >Condición de Usuario   |   >Hoja de tiempo   |   >Situación días
>  
+ LICENSE: AGPLv2 +# +# CHANGES +# +# 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 +# 60609-1112 - Added DNC list addition if status changed to DNC +# 60619-1539 - Added variable filtering to eliminate SQL injection attack threat +# 61130-1639 - Added recording_log lookup and list for this lead_id +# 61201-1136 - Added recording_log user(TSR) display and link +# 70305-1133 - Changed to default CHECKED modify logs upon status change +# 70424-1128 - Added campaign-specific statuses, reformatted recordings list +# 70702-1259 - Added recording location link and truncation +# 70906-2132 - Added closer_log records display +# 80428-0144 - UTF8 cleanup +# 80501-0454 - Added Hangup Reason to logs display +# 80516-0936 - Cleanup of logging changes, added vicidial_agent_log display +# 80701-0832 - Changed to allow for altering of main phone number +# 80805-2106 - Changed comments to TEXTAREA +# 81210-1529 - Added server recording display options +# 90309-1829 - Added admin_log logging +# 90508-0644 - Changed to PHP long tags +# 90708-1549 - Added phone number dialed to outbound log +# 90721-1246 - Added rank and owner as vicidial_list fields +# 90917-2355 - Added extended alt phone entries +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["old_phone"])) {$old_phone=$_GET["old_phone"];} + elseif (isset($_POST["old_phone"])) {$old_phone=$_POST["old_phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_GET["CBchangeUSERtoANY"];} + elseif (isset($_POST["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_POST["CBchangeUSERtoANY"];} +if (isset($_GET["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_GET["CBchangeUSERtoUSER"];} + elseif (isset($_POST["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_POST["CBchangeUSERtoUSER"];} +if (isset($_GET["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_GET["CBchangeANYtoUSER"];} + elseif (isset($_POST["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_POST["CBchangeANYtoUSER"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} + elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} +if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];} + elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];} +if (isset($_GET["modify_logs"])) {$modify_logs=$_GET["modify_logs"];} + elseif (isset($_POST["modify_logs"])) {$modify_logs=$_POST["modify_logs"];} +if (isset($_GET["modify_closer_logs"])) {$modify_closer_logs=$_GET["modify_closer_logs"];} + elseif (isset($_POST["modify_closer_logs"])) {$modify_closer_logs=$_POST["modify_closer_logs"];} +if (isset($_GET["modify_agent_logs"])) {$modify_agent_logs=$_GET["modify_agent_logs"];} + elseif (isset($_POST["modify_agent_logs"])) {$modify_agent_logs=$_POST["modify_agent_logs"];} +if (isset($_GET["add_closer_record"])) {$add_closer_record=$_GET["add_closer_record"];} + elseif (isset($_POST["add_closer_record"])) {$add_closer_record=$_POST["add_closer_record"];} + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $old_phone = ereg_replace("[^0-9]","",$old_phone); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $alt_phone = ereg_replace("[^0-9]","",$alt_phone); + } +if (strlen($phone_number)<6) {$phone_number=$old_phone;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Registro del Lead modificado + + +
+ADMINISTRATION: Registro del Lead modificado
\n"; + +if ($end_call > 0) + { + ### update the lead record in the vicidial_list table + $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) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "Información modificada

\n"; + echo "\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='MODIFY', record_id='$lead_id', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + if ( ($dispo != $status) and ($dispo == 'CALLBK') ) + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + + if ( ($dispo != $status) and ($status == 'DNC') ) + { + ### add lead to the internal DNC list + $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; + } + ### update last record in vicidial_log table + if (($dispo != $status) and ($modify_logs > 0)) + { + $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_closer_log table + if (($dispo != $status) and ($modify_closer_logs > 0)) + { + $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_agent_log table + if (($dispo != $status) and ($modify_agent_logs > 0)) + { + $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + if ($add_closer_record > 0) + { + ### 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('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . 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";} + $rslt=mysql_query($stmt, $link); + } + + + } +else + { + + if ($CBchangeUSERtoANY == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='" . mysql_real_escape_string($callback_id) . "';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to ANYONE
\n"; + } + if ($CBchangeUSERtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record user changed to $CBuser
\n"; + } + if ($CBchangeANYtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to USERONLY, user: $CBuser
\n"; + } + + + + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$u$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1] $row[15]   $row[10]
$y$row[3] $row[5] $row[1] $row[7] $row[9] $row[11] $row[13]   $row[14]   $row[15]   $row[17]
$y$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1]   $row[14]   $row[17]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     Lead ID: $lead_id
Fronter: $tsr     ID De la Lista: $list_id
Nombre:   \n"; + echo " Apellidos:
Dirección 1 :
Dirección 2 :
Dirección 3 :
Ciudad :
Estado:   \n"; + echo " Código Postal:
Provincia:
País :
Main Phone :
Alt Phone :
Email :
Seguridad:
Rank :
Owner :
Comentarios :
Disposición: (with $log_campaign statuses)
Modificarvicidial log
Modificaragent log
Modificarcloser log
Add closer log record
\n"; + echo "


\n"; + + if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) + { + ### find any vicidial_callback records for this lead + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group 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";} + $rslt=mysql_query($stmt, $link); + $CB_to_print = mysql_num_rows($rslt); + $rowx=mysql_fetch_row($rslt); + + if ($CB_to_print>0) + { + if ($rowx[9] == 'USERONLY') + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UsuarioID: \n"; + echo "

\n"; + } + else + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UsuarioID: \n"; + echo "

\n"; + } + } + else + { + echo "
No Callback records found
\n"; + } + } + } + else + { + echo "las operaciones de búsqueda del plomo FALLARON para el lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + echo "

\n"; + + echo "
\n"; + + if ($c > 0) + { + echo "EXTENDED SUPLENTE NÚMEROS DE TELÉFONO PARA ESTE DE PLOMO:\n"; + echo "\n"; + echo "\n"; + + echo "$alts_output\n"; + + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } + + echo "LLAMADAS A ESTE LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$call_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAÑA LIST LEAD HANGUP REASON PHONE
\n"; + echo "

\n"; + + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$closer_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAÑA LIST LEAD WAIT HANGUP REASON
\n"; + echo "

\n"; + + + echo "AGENTE LOG RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$agent_log\n"; + + echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "

\n"; + + + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "$locat";} + else + {$location = $locat;} + $u++; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + + } + + + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
$u $row[12] $row[4] $row[8] $row[0]   $row[10] $location $row[13]
\n"; + } + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nScript runtime: $RUNtime seconds
"; + + +?> + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin_search_lead.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin_search_lead.php new file mode 100644 index 00000000..dd9c8df9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/admin_search_lead.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 80710-0023 - Added searching by list, user, status +# 90121-0500 - Added filter for phone to remove non-digits +# 90309-1828 - Added admin_log logging +# 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); +$phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner'; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Buscar Lead +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '100'; +$hh = 'lists'; +$LOGast_admin_access = '1'; +$SSoutbound_autodial_active = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$lists_color = '#FFFF99'; +$lists_font = 'BLACK'; +$lists_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + +echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; + +if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<form method=post name=search action=\"$PHP_SELF\">\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<b>Por favor, Introduzca un:<br> Vendor ID(código del vendedor del Lead): <input type=text name=vendor_id size=10 maxlength=10> or \n"; + echo "<br><b>un número de teléfono de casa: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; + echo "<br><b>ID del Lead: <input type=text name=lead_id size=10 maxlength=10> or\n"; + echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; + echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; + echo "<b>user: <input type=text name=user size=15 maxlength=20> <br><br>\n"; + echo "<input type=submit name=submit value=ENVIAR></b>\n"; + echo "</form>\n</center>\n"; + echo "</body></html>\n"; + exit; + } + +else + { + + if ($vendor_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; + } + else + { + if ($phone) + { + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } + } + else + { + if ($lead_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + } + else + { + if ( (strlen($status)>0) or (strlen($list_id)>0) or (strlen($user)>0) ) + { + $statusSQL = ''; + $list_idSQL = ''; + $userSQL = ''; + if (strlen($status)>0) + { + $statusSQL = "status='" . mysql_real_escape_string($status) . "'"; $SQLctA++; + } + if (strlen($list_id)>0) + { + if ($SQLctA > 0) {$andA = 'and';} + $list_idSQL = "$andA list_id='" . mysql_real_escape_string($list_id) . "'"; $SQLctB++; + } + if (strlen($user)>0) + { + if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} + $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; + } + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; + } + else + { + print "ERROR: you must search for something! Go back and search for something"; + exit; + } + } + } + } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + + if ($DB) + { + echo "\n\n$stmt\n\n"; + } + + $rslt=mysql_query("$stmt", $link); + $results_to_print = mysql_num_rows($rslt); + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<b>Las variables de la búsqueda que usted incorporó no son activas en el sistema</b><br><br>\n"; + echo "<b>Va por favor detrás y dobla el cheque la información que usted incorporó y somete otra vez</b>\n"; + echo "</center>\n"; + echo "</body></html>\n"; + exit; + } + else + { + echo "<b>RESULTS: $results_to_print</b><BR><BR>\n"; + echo "<TABLE BGCOLOR=WHITE CELLPADDING=1 CELLSPACING=0>\n"; + echo "<TR BGCOLOR=BLACK>\n"; + echo "<TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>#</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LEAD ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ESTADO</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>VENDOR ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LAST AGENT</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ID DE LA LISTA</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>PHONE</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>NOMBRE</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>CITY</B></FONT></TD>\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"; + echo "</TR>\n"; + $o=0; + while ($results_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $o++; + $search_lead = $row[0]; + 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]\" target=\"_blank\">$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[31]</FONT></TD>\n"; + echo "</TR>\n"; + } + echo "</TABLE>\n"; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n<a href=\"$PHP_SELF\">NUEVA BÚSQUEDA</a>"; + + +echo "\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds"; + + +?> + + + +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/audio_store.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $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 > 7 and modify_campaigns='1'"; + 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|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $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); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/call_report_export.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/call_report_export.php new file mode 100644 index 00000000..77a49b05 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/call_report_export.php @@ -0,0 +1,562 @@ +<?php +# call_report_export.php +# +# displays options to select for downloading of leads and their vicidial_log +# and/or vicidial_closer_log information by status, list_id and date range. +# downloads to a flat text file that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} + elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and export_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### +if ($run_export > 0) + { + $US='_'; + $MT[0]=''; + $ip = getenv("REMOTE_ADDR"); + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $FILE_TIME = date("Ymd-His"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $campaign_ct = count($campaign); + $group_ct = count($group); + $user_group_ct = count($user_group); + $list_ct = count($list_id); + $status_ct = count($status); + $campaign_string='|'; + $group_string='|'; + $user_group_string='|'; + $list_string='|'; + $status_string='|'; + + $i=0; + while($i < $campaign_ct) + { + $campaign_string .= "$campaign[$i]|"; + $campaign_SQL .= "'$campaign[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$campaign_string) ) or ($campaign_ct < 1) ) + { + $campaign_SQL = "campaign_id IN('')"; + $RUNcampaign=0; + } + else + { + $campaign_SQL = eregi_replace(",$",'',$campaign_SQL); + $campaign_SQL = "and vl.campaign_id IN($campaign_SQL)"; + $RUNcampaign++; + } + + $i=0; + while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; + $group_SQL = "campaign_id IN('')"; + $RUNgroup=0; + } + else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and vl.campaign_id IN($group_SQL)"; + $RUNgroup++; + } + + $i=0; + while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } + else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vl.user_group IN($user_group_SQL)"; + } + + $i=0; + while($i < $list_ct) + { + $list_string .= "$list_id[$i]|"; + $list_SQL .= "'$list_id[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$list_string) ) or ($list_ct < 1) ) + { + $list_SQL = ""; + } + else + { + $list_SQL = eregi_replace(",$",'',$list_SQL); + $list_SQL = "and vi.list_id IN($list_SQL)"; + } + + $i=0; + while($i < $status_ct) + { + $status_string .= "$status[$i]|"; + $status_SQL .= "'$status[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$status_string) ) or ($status_ct < 1) ) + { + $status_SQL = ""; + } + else + { + $status_SQL = eregi_replace(",$",'',$status_SQL); + $status_SQL = "and vl.status IN($status_SQL)"; + } + + + if ($DB > 0) + { + echo "<BR>\n"; + echo "$campaign_ct|$campaign_string|$campaign_SQL\n"; + echo "<BR>\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + echo "$list_ct|$list_string|$list_SQL\n"; + echo "<BR>\n"; + echo "$status_ct|$status_string|$status_SQL\n"; + echo "<BR>\n"; + } + + $outbound_calls=0; + $export_rows=''; + $k=0; + if ($RUNcampaign > 0) + { + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $outbound_to_print = mysql_num_rows($rslt); + if ($outbound_to_print < 1) + { + echo "There are no outbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $outbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + $outbound_calls++; + } + } + } + + if ($RUNgroup > 0) + { + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmtA, $link); + if ($DB) {echo "$stmt\n";} + $inbound_to_print = mysql_num_rows($rslt); + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) + { + echo "There are no inbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + } + } + } + + + if ( ($outbound_to_print > 0) or ($inbound_to_print > 0) ) + { + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $TXTfilename = "EXPORT_CALL_REPORT_$FILE_TIME.txt"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$TXTfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } + } + else + { + echo "There are no calls during this time period for these parameters\n"; + exit; + } + } +##### END RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### + + +else + { + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $stmt="select campaign_id from vicidial_campaigns;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $campaigns_to_print = mysql_num_rows($rslt); + $i=0; + $LISTcampaigns[$i]='---NONE---'; + $i++; + $campaigns_to_print++; + while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTcampaigns[$i] =$row[0]; + $i++; + } + + $stmt="select group_id from vicidial_inbound_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; + while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $i++; + } + + $stmt="select user_group from vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; + while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + + $stmt="select list_id from vicidial_lists;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $lists_to_print = mysql_num_rows($rslt); + $i=0; + $LISTlists[$i]='---ALL---'; + $i++; + $lists_to_print++; + while ($i < $lists_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTlists[$i] =$row[0]; + $i++; + } + + $stmt="select status from vicidial_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $statuses_to_print = mysql_num_rows($rslt); + $i=0; + $LISTstatus[$i]='---ALL---'; + $i++; + $statuses_to_print++; + while ($i < $statuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + } + + $stmt="select distinct status from vicidial_campaign_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $Cstatuses_to_print = mysql_num_rows($rslt); + $j=0; + while ($j < $Cstatuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + $j++; + } + $statuses_to_print = ($statuses_to_print + $Cstatuses_to_print); + + echo "<HTML><HEAD>\n"; + + + echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; + + ##### BEGIN Set variables to make header show properly ##### + $ADD = '100'; + $hh = 'lists'; + $LOGast_admin_access = '1'; + $SSoutbound_autodial_active = '1'; + $ADMIN = 'admin.php'; + $page_width='770'; + $section_width='750'; + $header_font_size='3'; + $subheader_font_size='2'; + $subcamp_font_size='2'; + $header_selected_bold='<b>'; + $header_nonselected_bold=''; + $lists_color = '#FFFF99'; + $lists_font = 'BLACK'; + $lists_color = '#E6E6E6'; + $subcamp_color = '#C6C6C6'; + ##### END Set variables to make header show properly ##### + + require("admin_header.php"); + + + echo "<CENTER><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; + echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; + echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; + echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; + echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; + echo "<BR>to<BR>\n"; + echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; + $o=0; + while ($campaigns_to_print > $o) + { + if (ereg("\|$LISTcampaigns[$o]\|",$campaign_string)) + {echo "<option selected value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + else + {echo "<option value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; + $o=0; + while ($groups_to_print > $o) + { + if (ereg("\|$LISTgroups[$o]\|",$group_string)) + {echo "<option selected value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + else + {echo "<option value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; + $o=0; + while ($lists_to_print > $o) + { + if (ereg("\|$LISTlists[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + else + {echo "<option value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; + $o=0; + while ($statuses_to_print > $o) + { + if (ereg("\|$LISTstatus[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + else + {echo "<option value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; + echo "</TD></TR></TABLE>\n"; + echo "</FORM>\n\n"; + + } +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/count.htm b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/count.htm new file mode 100644 index 00000000..51f8a361 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/count.htm @@ -0,0 +1 @@ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/dbconnect.php new file mode 100644 index 00000000..dca45485 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/dbconnect.php @@ -0,0 +1,62 @@ +<?php +# +# dbconnect.php version 2.2.0 +# +# database connection settings and some global web settings +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database"); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules +$AM_shift_BEGIN = '03:45:00'; +$AM_shift_END = '17:45:00'; +$PM_shift_BEGIN = '17:45:01'; +$PM_shift_END = '23:59:59'; +$admin_qc_enabled = '0'; +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/fcstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/fcstats.php new file mode 100644 index 00000000..d5b9a178 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/fcstats.php @@ -0,0 +1,601 @@ +<?php +# fcstats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 70813-1526 - First Build +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71217-1128 - Changed method for calculating stats +# 71228-1140 - added percentages, cross-day start/stop +# 80328-1139 - adapted for basic fronter/closer stats +# 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = 'CL_TEST_L';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + +<HTML> +<HEAD> +<STYLE type="text/css"> +<!-- + .green {color: white; background-color: green} + .red {color: white; background-color: red} + .blue {color: white; background-color: blue} + .purple {color: white; background-color: purple} +--> + </STYLE> + +<?php +echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; +echo "<TITLE>In-Group Fronter-Closer Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFICAR | INFORMES \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "PLEASE SELECT AN IN-GROUP AND DATE ABOVE THEN CLICK ENVIAR\n";
+}
+
+else
+{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#$query_date_BEGIN = "$query_date $time_BEGIN";   
+#$query_date_END = "$query_date $time_END";
+
+$Cqdate = explode('-',$query_date);
+
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(17, 45, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(17, 45, 1, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'ALL') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+
+echo "In-Group Fronter-Closer Stats Report                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n";
+
+$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "' and status = 'SALE';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$A1_points = ($row[0] * 1);
+$A1_points =	sprintf("%10s", $A1_points);
+$A1_tally =	sprintf("%10s", $row[0]);
+
+$TOT_tally = ($A1_tally + $A2_tally + $A3_tally + $A4_tally);
+$TOT_points = ($A1_points + $A2_points + $A3_points + $A4_points);
+$TOT_tally =	sprintf("%10s", $TOT_tally);
+$TOT_points =	sprintf("%10s", $TOT_points);
+
+echo "STATUS   CUSTOMERS\n";
+echo "SALES:   $A1_tally\n";
+
+echo "\n";
+
+
+
+
+
+
+
+
+
+##############################
+#########  FRONTER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTsales=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+
+echo "\n";
+echo "---------- FRONTER STATS\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| AGENTE                    |SUCCESS| XFERS  |SUCCESS%| SALE | DROP |OTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+#$stmt="select vicidial_xfer_log.user,full_name,count(*) from vicidial_xfer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_xfer_log.user is not null and vicidial_xfer_log.user=vicidial_users.user group by vicidial_xfer_log.user;";
+$stmt="select user,count(distinct lead_id) from vicidial_xfer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcallsRAW[$i] =	$row[1];
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; 
+	$stmt="select vc.status,count(distinct vc.lead_id) from vicidial_xfer_log vx, vicidial_closer_log vc where vx.call_date >= '$query_date_BEGIN' and vx.call_date <= '$query_date_END' and vc.call_date >= '$query_date_BEGIN' and vc.call_date <= '$query_date_END' and  vc.campaign_id='" . mysql_real_escape_string($group) . "' and vx.campaign_id='" . mysql_real_escape_string($group) . "' and vx.user='$userRAW[$i]' and vc.lead_id=vx.lead_id and vc.xfercallid=vx.xfercallid group by vc.status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) {$A1=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A2') and ($recL < 1) ) {$A2=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A3') and ($recL < 1) ) {$A3=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A4') and ($recL < 1) ) {$A4=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);
+	$totA2 = ($totA2 + $A2);
+	$totA3 = ($totA3 + $A3);
+	$totA4 = ($totA4 + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$TOTsales = ($TOTsales + $sales);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Spct = ( ($sales / $USERcallsRAW[$i]) * 100);}
+		else {$Spct=0;}
+	$Spct = round($Spct, 2);
+	$Spct =	sprintf("%01.2f", $Spct);
+	
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%5s", $sales);
+	$Spct =	sprintf("%6s", $Spct);
+
+	echo "| $user[$i] - $full_name[$i] | $sales | $USERcalls[$i] | $Spct%| $A1 | $DROP | $OTHER |\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totSpct = ( ($TOTsales / $TOTcalls) * 100);}
+	else {$totSpct=0;}
+$totSpct = round($totSpct, 2);
+$totSpct =	sprintf("%01.2f", $totSpct);
+$totSpct =	sprintf("%6s", $totSpct);
+	
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$TOTsales =		sprintf("%5s", $TOTsales);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+
+
+$stmt="select avg(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$AVGwait = $row[0];
+$AVGwait_M = ($AVGwait / 60);
+$AVGwait_M = round($AVGwait_M, 2);
+$AVGwait_M_int = intval("$AVGwait_M");
+$AVGwait_S = ($AVGwait_M - $AVGwait_M_int);
+$AVGwait_S = ($AVGwait_S * 60);
+$AVGwait_S = round($AVGwait_S, 0);
+if ($AVGwait_S < 10) {$AVGwait_S = "0$AVGwait_S";}
+$AVGwait_MS = "$AVGwait_M_int:$AVGwait_S";
+$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| TOTAL FRONTERS: $TOTagents   | $TOTsales | $TOTcalls | $totSpct%|$totA1 |$totDROP |$totOTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "|                          Average time in Queue for customers:    $AVGwait |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+
+
+
+
+##############################
+#########  CLOSER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+$TOTsales=0;
+
+echo "\n";
+echo "---------- CLOSER STATS\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| AGENTE                    | CALLS  | SALE | DROP |OTHER | SALE | CONV %|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+$stmt="select user,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+	$USERcallsRAW[$i] =	$row[1];
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; $uTOP=0; $uBOT=0; $points=0;
+	$stmt="select status,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user='$userRAW[$i]' group by status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) 
+			{
+			$A1=$row[1]; $recL++; 
+			$sales=($sales + $row[1]);
+			$points = ($points + ($row[1] * 1) );
+			}
+		if ( ($row[0]=='A2') and ($recL < 1) ) 
+			{
+			$A2=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A3') and ($recL < 1) ) 
+			{
+			$A3=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A4') and ($recL < 1) ) 
+			{
+			$A4=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 3) );
+			}
+#		if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+#		if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+#		if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+#		if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+#		if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);	$TOTsales = ($TOTsales + $A1);
+	$totA2 = ($totA2 + $A2);	$TOTsales = ($TOTsales + $A2);	$totTOP = ($totTOP + $A2);
+	$totA3 = ($totA3 + $A3);	$TOTsales = ($TOTsales + $A3);	$totBOT = ($totBOT + $A3);
+	$totA4 = ($totA4 + $A4);	$TOTsales = ($TOTsales + $A4);	$totTOP = ($totTOP + $A4);	$totBOT = ($totBOT + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$totPOINTS = ($totPOINTS + $points);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Cpct = ( ($sales / ( ($USERcallsRAW[$i] - 0) - $DROP) ) * 100);}
+		else {$Cpct=0;}
+	$Cpct = round($Cpct, 2);
+	$Cpct =	sprintf("%01.2f", $Cpct);
+	$Cpct =	sprintf("%6s", $Cpct);
+
+	if ( ($sales > 0) and ($uTOP > 0) ) {$TOP = ( ($uTOP / $sales) * 100);}
+		else {$TOP=0;}
+	$TOP = round($TOP, 0);
+	$TOP =	sprintf("%01.0f", $TOP);
+	$TOP =	sprintf("%3s", $TOP);
+
+	if ( ($sales > 0) and ($uBOT > 0) ) {$BOT = ( ($uBOT / $sales) * 100);}
+		else {$BOT=0;}
+	$BOT = round($BOT, 0);
+	$BOT =	sprintf("%01.0f", $BOT);
+	$BOT =	sprintf("%3s", $BOT);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($points > 0) ) {$ppc = ($points / ( ($USERcallsRAW[$i] - 0) - $DROP) );}
+		else {$ppc=0;}
+	$ppc = round($ppc, 2);
+	$ppc =	sprintf("%01.2f", $ppc);
+	$ppc =	sprintf("%4s", $ppc);
+
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%4s", $sales);
+
+	echo "| $user[$i] - $full_name[$i] | $USERcalls[$i] | $A1 | $DROP | $OTHER | $sales |$Cpct%|\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totCpct = ( ($TOTsales / ( ($TOTcalls - 0) - $totDROP) ) * 100);}
+	else {$totCpct=0;}
+$totCpct = round($totCpct, 2);
+$totCpct =	sprintf("%01.2f", $totCpct);
+$totCpct =	sprintf("%6s", $totCpct);
+		
+if ( ($TOTcalls > 0) and ($totPOINTS > 0) ) {$ppc = ($totPOINTS / ( ($TOTcalls - $totOTHER) - $totDROP) );}
+	else {$ppc=0;}
+$ppc = round($ppc, 2);
+$ppc =	sprintf("%01.2f", $ppc);
+$ppc =	sprintf("%4s", $ppc);
+		
+if ( ($TOTsales > 0) and ($totTOP > 0) ) {$TOP = ( ($totTOP / $TOTsales) * 100);}
+	else {$TOP=0;}
+$TOP = round($TOP, 0);
+$TOP =	sprintf("%01.0f", $TOP);
+$TOP =	sprintf("%3s", $TOP);
+
+if ( ($TOTsales > 0) and ($totBOT > 0) ) {$BOT = ( ($totBOT / $TOTsales) * 100);}
+	else {$BOT=0;}
+$BOT = round($BOT, 0);
+$BOT =	sprintf("%01.0f", $BOT);
+$BOT =	sprintf("%3s", $BOT);
+
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+$TOTsales =		sprintf("%5s", $TOTsales);
+
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| TOTAL CLOSERS:  $TOTagents   | $TOTcalls |$totA1 |$totDROP |$totOTHER |$TOTsales |$totCpct%|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+
+
+
+
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+if ($DB) {echo "\nRun Time: $RUNtime seconds\n";}
+}
+
+
+
+
+
+?>
+
+
+ + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/functions.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/group_hourly_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/group_hourly_stats.php new file mode 100644 index 00000000..37bd9465 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/group_hourly_stats.php @@ -0,0 +1,295 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1014 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["date_with_hour"])) {$date_with_hour=$_GET["date_with_hour"];} + elseif (isset($_POST["date_with_hour"])) {$date_with_hour=$_POST["date_with_hour"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$date_with_hour_default = date("Y-m-d H"); +$date_no_hour_default = $TODAY; + +if (!isset($date_with_hour)) {$date_with_hour = $date_with_hour_default;} + $date_no_hour = $date_with_hour; + $date_no_hour = eregi_replace(" ([0-9]{2})",'',$date_no_hour); +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + +# $stmt="SELECT full_name from vicidial_users where user='$user';"; +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# $full_name = $row[0]; + + } + + + + +?> + + + +ADMINISTRATION: Stats Cada hora Del Grupo +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Stats Cada hora Del Grupo <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +if ( ($group) and ($status) and ($date_with_hour) ) +{ +$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";} +$rslt=mysql_query($stmt, $link); +$tsrs_to_print = mysql_num_rows($rslt); + $o=0; + while($o < $tsrs_to_print) + { + $row=mysql_fetch_row($rslt); + $VDuser[$o] = "$row[0]"; + $VDname[$o] = "$row[1]"; + $o++; + } + + $o=0; + while($o < $tsrs_to_print) + { + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDtotal[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDday[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDcount[$o] = "$row[0]"; + $o++; + } + +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +echo "<B>CUENTAS DE HORAS DE TSR: <a href=\"./admin.php?ADD=3111&group_id=$group\">$group</a> | $status | $date_with_hour | $date_no_hour</B>\n"; + +echo "<center><TABLE width=600 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>TSR </td><td align=left><font size=2>ID </td><td align=right><font size=2>   $status</td><td align=right><font size=2>   LLAMADAS TOTALES</td><td align=right><font size=2>   $status DAY</td><td align=right><font size=2>     </td></tr>\n"; + + $day_calls=0; + $hour_calls=0; + $total_calls=0; + $o=0; + while($o < $tsrs_to_print) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo "<tr $bgcolor><td><font size=2>$VDuser[$o]</td>"; + echo "<td align=left><font size=2> $VDname[$o]</td>\n"; + echo "<td align=right><font size=2> $VDcount[$o]</td>\n"; + echo "<td align=right><font size=2> $VDtotal[$o]</td>\n"; + echo "<td align=right><font size=2> $VDday[$o]</td>\n"; + echo "<td align=right><font size=1><a href=\"./admin.php?ADD=3&user=$VDuser[$o]\">MODIFICAR</a> | <a href=\"./user_stats.php?user=$VDuser[$o]\">ESTADÍSTICAS</a></td></tr>\n"; + $total_calls = ($total_calls + $VDtotal[$o]); + $hour_calls = ($hour_calls + $VDcount[$o]); + $day_calls = ($day_calls + $VDday[$o]); + + $o++; + } + +echo "<tr><td><font size=2>TOTAL </td><td align=right><font size=2> $status </td><td align=right><font size=2> $hour_calls</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $day_calls</td></tr>\n"; + + +} + +echo "</TABLE></center>\n"; +echo "<br><br>\n"; + + + echo "<br>Inscriba por favor a grupo que usted desea conseguir el stats cada hora para: <form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=$DB>\n"; + echo "group: <select size=1 name=group>\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $o=0; + $groups_list=''; + while ($groups_to_print > $o) { + $rowx=mysql_fetch_row($rslt); + if ($group == $group) + {$groups_list .= "<option selected value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + else + {$groups_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + $o++; + } + echo "$groups_list</select><br>\n"; + echo "status: <input type=text name=status size=10 maxlength=10 value=\"$status\">   (example: XFER)<br>\n"; + echo "date with hour: <input type=text name=date_with_hour size=14 maxlength=13 value=\"$date_with_hour\">   (example: 2004-06-25 14)<br>\n"; + echo "<input type=submit name=submit value=ENVIAR>\n"; + echo "<BR><BR><BR>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; + + +?> + + +</TD></TR></TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/help.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/help.gif new file mode 100644 index 00000000..5575d7c8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/help.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/list_download.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/list_download.php new file mode 100644 index 00000000..98e1aea8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/list_download.php @@ -0,0 +1,132 @@ +<?php +# list_download.php +# +# downloads the entire contents of a vicidial list ID to a flat text file +# that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and download_lists='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Nombre y contraseña inválidos del usuario or no list download permission: |$PHP_AUTH_USER|\n"; + exit; + } + +$stmt="select count(*) from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$count_to_print = mysql_num_rows($rslt); +if ($count_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $leads_count =$row[0]; + $i++; + } + +if ($leads_count < 1) + { + echo "There are no leads in list_id: $list_id\n"; + exit; + } + +$US='_'; +$MT[0]=''; +$ip = getenv("REMOTE_ADDR"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +### LOG INSERTION Admin Log Table ### +$SQL_log = "$stmt|$stmtA|"; +$SQL_log = ereg_replace(';','',$SQL_log); +$SQL_log = addslashes($SQL_log); +$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='$list_id', event_code='ADMIN EXPORT LIST', event_sql=\"$SQL_log\", event_notes='';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + + +$TXTfilename = "LIST_$list_id$US$FILE_TIME.txt"; + +// We'll be outputting a TXT file +header('Content-type: application/octet-stream'); + +// It will be called LIST_101_20090209-121212.txt +header("Content-Disposition: attachment; filename=\"$TXTfilename\""); +header('Expires: 0'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); +header('Pragma: public'); +ob_clean(); +flush(); + +$stmt="select lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$leads_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $leads_to_print) + { + $row=mysql_fetch_row($rslt); + + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; + + $i++; + } + +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader.php new file mode 100644 index 00000000..801ca169 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader.php @@ -0,0 +1,926 @@ +<? +# listloader.php +# +# Copyright (C) 2007 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: GPLv2 +# +# AST Web GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 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 +# 60619-1652 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 60906-1059 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1046 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# +# 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 = '2.0.3'; +$build = '770417-1059'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +$submit_file=$_GET["submit_file"]; if (!$submit_file) {$submit_file=$_POST["submit_file"];} +$list_id_override=$_GET["list_id_override"]; if (!$list_id_override) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +$submit=$_GET["submit"]; if (!$submit) {$submit=$_POST["submit"];} +$ENVIAR=$_GET["ENVIAR"]; if (!$ENVIAR) {$ENVIAR=$_POST["ENVIAR"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} + + +#$DB=1; +#$DBX=1; + +$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); + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('listloader.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"AYUDA\" ALIGN=TOP></A>"; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + +echo "<html>\n"; +echo "<head>\n"; +echo "<!-- VERSIÓN: $version CONSTRUCCION: $build -->\n"; +echo "<!-- SEED TIME $secX: $year-$mon-$mday $hour:$min:$sec LOCAL DESPLAZAMIENTO GMT AHORA: $LOCAL_GMT_OFF DST: $isdst -->\n"; + + +?> + + +<script language="JavaScript1.2"> +function openNewWindow(url) { + window.open (url,"",'width=500,height=300,scrollbars=yes,menubar=yes,address=yes'); +} +function ShowProgress(good, bad, total, dup, post) { + parent.lead_count.document.open(); + parent.lead_count.document.write('<html><body><table border=0 width=200 cellpadding=10 cellspacing=0 align=center valign=top><tr bgcolor="#000000"><th colspan=2><font face="arial, helvetica" size=3 color=white>Estado actual del archivo:</font></th></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Good:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+good+'</B></font></td></tr><tr bgcolor="#990000"><td align=right><font face="arial, helvetica" size=2 color=white><B>Bad:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+bad+'</B></font></td></tr><tr bgcolor="#000099"><td align=right><font face="arial, helvetica" size=2 color=white><B>Total:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+total+'</B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>   </B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>   </B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Duplicate:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+dup+'</B></font></td></tr><tr bgcolor="#009900"><td align=right><font face="arial, helvetica" size=2 color=white><B>Postal Match:</B></font></td><td align=left><font face="arial, helvetica" size=2 color=white><B>'+post+'</B></font></td></tr></table><body></html>'); + parent.lead_count.document.close(); +} +</script> +</head> +<body> +<form action=<?=$PHP_SELF ?> method=post enctype="multipart/form-data"> +<table align=center width="500" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Cargar Leads de este archivo:</font></td> + <td align=left width="75%"><input type=file name="leadfile" value="<?=$leadfile ?>"> <? echo "$NWB#vicidial_list_loader$NWE"; ?></td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>ID De la Lista Override: </font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><input type=text value="" name='list_id_override' size=10 maxlength=8> (Solamente números or leave blank for values in the file)</td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Cheque Del Duplicado Del Plomo:</font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><select size=1 name=dupcheck><option selected value="NONE">NO DUPLICATE CHECK</option><option value="DUP">CHECK FOR DUPLICATES BY PHONE IN ID DE LA LISTA</option></select></td> + </tr> + <tr> + <td align=right width="25%"><font face="arial, helvetica" size=2>Operaciones de búsqueda De la Zona De Tiempo De Plomo:</font></td> + <td align=left width="75%"><font face="arial, helvetica" size=1><select size=1 name=postalgmt><option selected value="AREA">COUNTRY CODE AND AREA CODE ONLY</option><option value="POSTAL">POSTAL CODE FIRST</option></select></td> + </tr> + <tr> + <td align=center><input type=submit value="ENVIAR" name='submit_file'></td> + <td align=center><input type=button onClick="javascript:document.location='listloader.php'" value="RECARGAR" name='reload_page'></td> + </tr> + <tr><td colspan=2><font size=1><a href="new_listloader_superL.php" target="_parent">CHASQUE AQUÍ PARA IR AL CARGADOR ESTUPENDO DEL PLOMO (BETA VERSIÓN)</a>     <a href="admin.php" target="_parent">DE NUEVO AL ADMIN</a></font></td></tr> +</table> +</form> +<? + +#echo "|$LF_orig|$LF_path|\n"; + +if ($leadfile and filesize($LF_path)<=8388608) { + print "<script language='JavaScript1.2'>document.forms[0].leadfile.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;</script>"; + flush(); + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + $lead_file = "$LF_path"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + $pulldate=date("Y-m-d H:i:s"); + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Procesando$delim_name-delimited file... ($tab_count|$pipe_count)\n"; + + if (strlen($list_id_override)>0) + { + print "<BR><BR>ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override<BR><BR>"; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city = $row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + + if (strlen($list_id_override)>0) + { + # print "<BR><BR>ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override<BR><BR>"; + $list_id = $list_id_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table ##### + if (eregi("DUP",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + $US='_'; + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_list .= "$phone_number$US$list_id|"; + + if (strlen($phone_code)<1) {$phone_code = '1';} + + $postalgmt_found=0; + if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select * from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select * from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select * from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # tiempo local calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $NA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NA_DST=0; + } else { + $NA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $NA_DST=0; + } else { + $NA_DST=1; + } + } + } else { + $NA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; + } elseif ($dd < ($dow+25)) { + $NA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; + } else { + $NA_DST=0; + } + } else { # tiempo local calculations + if ($ns < 7200) { + $NA_DST=1; + } else { + $NA_DST=0; + } + } + } else { + $NA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + + if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0);"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0),"; + $multi_insert_counter++; + } + + $good++; + } + else + { + if ($bad < 10) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) + { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup, $post)</script>"; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total<BR>DUPLICATE: $dup       POSTAL MATCH: $post</font></center>"; + + } else { + print "<center><font face='arial, helvetica' size=3 color='#990000'><B>ERROR: El archivo no tiene el número requerido de los campos para procesarlo.</B></font></center>"; + } + print "<script language='JavaScript1.2'>document.forms[0].leadfile.disabled=false; document.forms[0].submit_file.disabled=false; document.forms[0].reload_page.disabled=false;</script>"; +} else if (filesize($leadfile)>8388608) { + print "<center><font face='arial, helvetica' size=3 color='#990000'><B>ERROR: El archivo excede el límite 8MB.</B></font></center>"; +} +?> +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader.pl new file mode 100644 index 00000000..052d93e0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader.pl @@ -0,0 +1,1160 @@ +#!/usr/bin/perl +# +# listloader.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60822-1121 - fixed for nonwritable directories +# 60906-1058 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1215 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = <conf>; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + + ### Grab Server values from the database + $stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } + $sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Processing Excel file...\n"; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][0]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][1]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][2]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][3]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][4]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][5]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][6]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][7]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][8]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][9]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][10]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][11]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][12]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][13]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][14]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][15]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][16]; + if ($oWkC) {$country=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][17]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][18]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][19]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][20]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][21]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][22]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup_lead, $postalgmt_found)</script>"; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total</font></center>"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloaderMAIN.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloaderMAIN.php new file mode 100644 index 00000000..33889c3c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloaderMAIN.php @@ -0,0 +1,87 @@ +<?php +# listloaderMAIN.php +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# 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 +# +# changes: +# 60620-1149 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?><HTML> +<HEAD> +<TITLE>VICIDIAL: Módulo Cargador de Leads + + + + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader_rowdisplay.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader_rowdisplay.pl new file mode 100644 index 00000000..9caaeab2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/listloader_rowdisplay.pl @@ -0,0 +1,154 @@ +#!/usr/bin/perl +# +# listloader_rowdisplay.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } +} +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); +$var_str=""; + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for(my $iC = $oWkS->{MinCol} ; defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) { + $oWkC = $oWkS->{Cells}[0][$iC]; + if ($oWkC) { + $var_str.=$oWkC->Value."|"; + } else { + $var_str.="|"; + } + } +} + +@xls_row=split(/\|/, $var_str); + + +$stmtA = "select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + my $names = $sthA->{'NAME'}; + my $numFields = $sthA->{'NUM_OF_FIELDS'}; + for (my $i = 0; $i < $numFields; $i++) + { + # printf("%s%s", $i ? "," : "", $$names[$i]); + # printf("%s%s", $i ? "," : "", $$ref[$i]); + + $field_name=uc($$names[$i]); + $field_name=~s/\_/ /g; + print "
".$field_name.": \r\n"; + print " \r\n"; + print "
"; +?> + + +
method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cargar Leads de este archivo:
ID De la Lista Override: (Solamente números or leave blank for values in the file)
Teléfono Código Sobrescribir: (Solamente números or leave blank for values in the file)
Disposición de archivo a utilizar:Standard Format    Disposición de encargo
Cheque Del Duplicado Del Plomo:
Operaciones de búsqueda De la Zona De Tiempo De Plomo:
        
        DE NUEVO AL ADMINLIST LOADER-     VERSIÓN:     CONSTRUCCION:    
+ + +document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; + flush(); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.txt"); + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + { + $stmt_file=fopen("listloader_stmts.txt", "w"); + } + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + print "
Procesando$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO: $phone_code_override

"; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($list_id_override)>0) + { + # print "

ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
ERROR: El archivo no tiene el número requerido de los campos para procesarlo.
"; + } + } else if (!eregi(".csv", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.xls"); + $file=fopen("$lead_file", "r"); + + print "
ProcesandoExcel file... \n"; + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override

\n"; + } + if (strlen($phone_code_override)>0) + { + print "

INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO: $phone_code_override

\n"; + } + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } else { + # copy($leadfile, "./vicidial_temp_file.csv"); + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
ProcesandoCSV file... \n"; + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + } + print ""; + } + +if ($leadfile) { + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + ### LOG INSERTION Admin Log Table ### + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTAS', event_type='LOAD', record_id='$list_id_override', event_code='ADMIN LOAD LIST', event_sql='', event_notes='File Name: $leadfile_name';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($file_layout=="standard") { + + print ""; + flush(); + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "
Procesando$delim_name-delimited file... ($tab_count|$pipe_count)\n"; + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO: $phone_code_override

\n"; + } + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
ERROR: El archivo no tiene el número requerido de los campos para procesarlo.
"; + } + } else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + $file=fopen("$lead_file", "r"); + + # echo "|$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
ProcesandoCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } + print ""; + + } else { + print "
"; + flush(); + print "\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1", $link); + + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + flush(); + $file=fopen("$lead_file", "r"); + print "
Procesando$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO: $phone_code_override

"; + } + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + + } + } + else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + + # echo "|$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
ProcesandoCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO: $phone_code_override

"; + } + + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + $row=fgetcsv($file, 1000, ","); + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + } + } + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print "
VICIDIAL ColumnaDatos del archivo
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
        
\r\n"; + # } + print ""; + } +#} else if (filesize($leadfile)>8388608) { +# print "
ERROR: File exceeds the 8MB limit.
"; +} +?> + + + + + + + + +4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Domingo March to First Domingo November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Domingo March to First Domingo November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Domingo, to 6=Sábado) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # tiempo local calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Domingo April to Last Domingo October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Domingo in April and last Domingo in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # tiempo local calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Domingo March to Last Domingo October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Domingo in March and last Domingo in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Domingo October to Last Domingo March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Domingo in October and last Domingo in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Domingo October to Last Domingo March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Domingo in October and last Domingo in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Domingo October to Third Domingo March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Domingo in October and third Domingo in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Domingo October to Last Domingo February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Domingo October to Last Domingo February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # tiempo local calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + +?> +
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/non_agent_api.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/non_agent_api.php new file mode 100644 index 00000000..b64ab4c0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/non_agent_api.php @@ -0,0 +1,2500 @@ + LICENSE: AGPLv2 +# +# This script is designed as an API(Application Programming Interface) to allow +# other programs to interact with all non-agent-screen VICIDIAL functions +# +# required variables: +# - $user +# - $pass +# - $function - ('add_lead','version') +# - $source - ('vtiger','webform','adminweb') +# - $format - ('text','debug') + +# CHANGELOG: +# 80724-0021 - First build of script +# 80801-0047 - Added gmt lookup and hopper insert time validation +# 80909-2012 - Added support for campaign-specific DNC lists +# 80910-0020 - Added support for multi-alt-phones, added version function +# 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function +# + +$version = '2.2.0-16'; +$build = '91216-0331'; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["function"])) {$function=$_GET["function"];} + elseif (isset($_POST["function"])) {$function=$_POST["function"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["dnc_check"])) {$dnc_check=$_GET["dnc_check"];} + elseif (isset($_POST["dnc_check"])) {$dnc_check=$_POST["dnc_check"];} +if (isset($_GET["campaign_dnc_check"])) {$campaign_dnc_check=$_GET["campaign_dnc_check"];} + elseif (isset($_POST["campaign_dnc_check"])) {$campaign_dnc_check=$_POST["campaign_dnc_check"];} +if (isset($_GET["add_to_hopper"])) {$add_to_hopper=$_GET["add_to_hopper"];} + elseif (isset($_POST["add_to_hopper"])) {$add_to_hopper=$_POST["add_to_hopper"];} +if (isset($_GET["hopper_priority"])) {$hopper_priority=$_GET["hopper_priority"];} + elseif (isset($_POST["hopper_priority"])) {$hopper_priority=$_POST["hopper_priority"];} +if (isset($_GET["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_GET["hopper_local_call_time_check"];} + elseif (isset($_POST["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_POST["hopper_local_call_time_check"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phones"];} + elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} +if (isset($_GET["source"])) {$source=$_GET["source"];} + elseif (isset($_POST["source"])) {$source=$_POST["source"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $DB=ereg_replace("[^0-9]","",$DB); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); + $format = ereg_replace("[^0-9a-zA-Z]","",$format); + $list_id = ereg_replace("[^0-9]","",$list_id); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $vendor_lead_code = ereg_replace(";","",$vendor_lead_code); + $vendor_lead_code = ereg_replace("\+"," ",$vendor_lead_code); + $source_id = ereg_replace(";","",$source_id); + $source_id = ereg_replace("\+"," ",$source_id); + $gmt_offset_now = ereg_replace("-\_\.0-9","",$gmt_offset_now); + $title = ereg_replace("[^- \_\.0-9a-zA-Z]","",$title); + $first_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$first_name); + $first_name = ereg_replace("\+"," ",$first_name); + $middle_initial = ereg_replace("[^0-9a-zA-Z]","",$middle_initial); + $last_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$last_name); + $last_name = ereg_replace("\+"," ",$last_name); + $address1 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address1); + $address2 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address2); + $address3 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address3); + $address1 = ereg_replace("\+"," ",$address1); + $address2 = ereg_replace("\+"," ",$address2); + $address3 = ereg_replace("\+"," ",$address3); + $city = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$city); + $city = ereg_replace("\+"," ",$city); + $state = ereg_replace("[^- 0-9a-zA-Z]","",$state); + $province = ereg_replace("[^- \+\.\_0-9a-zA-Z]","",$province); + $province = ereg_replace("\+"," ",$province); + $postal_code = ereg_replace("[^- \+0-9a-zA-Z]","",$postal_code); + $postal_code = ereg_replace("\+"," ",$postal_code); + $country_code = ereg_replace("[^A-Z]","",$country_code); + $gender = ereg_replace("[^A-Z]","",$gender); + $date_of_birth = ereg_replace("[^-0-9]","",$date_of_birth); + $alt_phone = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$alt_phone); + $alt_phone = ereg_replace("\+"," ",$alt_phone); + $email = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$email); + $email = ereg_replace("\+"," ",$email); + $security_phrase = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$security_phrase); + $security_phrase = ereg_replace("\+"," ",$security_phrase); + $comments = ereg_replace(";","",$comments); + $comments = ereg_replace("\+"," ",$comments); + $dnc_check = ereg_replace("[^A-Z]","",$dnc_check); + $campaign_dnc_check = ereg_replace("[^A-Z]","",$campaign_dnc_check); + $add_to_hopper = ereg_replace("[^A-Z]","",$add_to_hopper); + $hopper_priority = ereg_replace("-0-9","",$hopper_priority); + $hopper_local_call_time_check = ereg_replace("[^A-Z]","",$hopper_local_call_time_check); + $campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); + $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); + $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); + $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); + } + +if (strlen($list_id)<1) {$list_id='999';} +if (strlen($phone_code)<1) {$phone_code='1';} +$USarea = substr($phone_number, 0, 3); +if (strlen($hopper_priority)<1) {$hopper_priority=0;} +if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$postalgmt=''; +$api_script = 'non-agent'; +$api_logging = 1; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +### Grab Server GMT value from the database +$stmt="SELECT local_gmt FROM servers where active='Y' limit 1;"; +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$gmt_recs = mysql_num_rows($rslt); +if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } +else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + +$LOCAL_GMT_OFF = $SERVER_GMT; +$LOCAL_GMT_OFF_STD = $SERVER_GMT; + + + + + +################################################################################ +### version - show version and date information for the API +################################################################################ +if ($function == 'version') + { + $data = "VERSION: $version|BUILD: $build|DATE: $NOW_TIME|EPOCH: $StarTtime"; + $result = 'SUCCESS'; + echo "$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + + + + + +################################################################################ +### add_lead - inserts a lead into the vicidial_list table +################################################################################ +if ($function == 'add_lead') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $modify_leads=$row[0]; + + if ($modify_leads < 1) + { + $result = 'ERROR'; + $result_reason = "add_lead USER DOES NOT HAVE PERMISSION TO ADD LEADS TO THE SYSTEM"; + echo "$result: $result_reason: |$user|$modify_leads|\n"; + $data = "$modify_leads"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ( (strlen($phone_number)<6) || (strlen($phone_number)>16) ) + { + $result = 'ERROR'; + $result_reason = "add_lead INVALID PHONE NUMBER"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN DNC"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN CAMPAIGN DNC"; + echo "$result: $result_reason - $phone_number|$campaign_id|$user\n"; + $data = "$phone_number|$campaign_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + + + ### get current gmt_offset of the phone_number + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',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',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $lead_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "add_lead LEAD HAS BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$lead_id|$gmt_offset|$user\n"; + $data = "$phone_number|$list_id|$lead_id|$gmt_offset"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + if (strlen($multi_alt_phones) > 5) + { + $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; + $map = explode('!', $multi_alt_phones); + $map_count = count($map); + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} + $g++; + $r=0; $s=0; $inserted_alt_phones=0; + while ($r < $map_count) + { + $s++; + $ncn=$MT; + $ncn = explode('_', $map[$r]); + print "$ncn[0]|$ncn[1]|$ncn[2]"; + + if (strlen($forcephonecode) > 0) + {$ALTm_phone_code[$r] = $forcephonecode;} + else + {$ALTm_phone_code[$r] = $ncn[1];} + if (strlen($ALTm_phone_code[$r]) < 1) + {$ALTm_phone_code[$r]='1';} + $ALTm_phone_number[$r] = $ncn[0]; + $ALTm_phone_note[$r] = $ncn[2]; + $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Zaffected_rows = mysql_affected_rows($link); + $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); + $r++; + } + $result = 'NOTICE'; + $result_reason = "add_lead MULTI-ALT-PHONE NUMBERS LOADED"; + echo "$result: $result_reason - $inserted_alt_phones|$lead_id|$user\n"; + $data = "$inserted_alt_phones|$lead_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + + if ($add_to_hopper == 'Y') + { + $dialable=1; + + $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $local_call_time=$row[0]; + $VD_campaign_id=$row[1]; + + if ($hopper_local_call_time_check == 'Y') + { + ### call function to determine if lead is dialable + $dialable = dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state); + } + if ($dialable < 1) + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME"; + echo "$result: $result_reason - $phone_number|$lead_id|$gmt_offset|$dialable|$user\n"; + $data = "$phone_number|$lead_id|$gmt_offset|$dialable"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + ### code to insert into hopper goes here + + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Haffected_rows = mysql_affected_rows($link); + if ($Haffected_rows > 0) + { + $hopper_id = mysql_insert_id($link); + + $result = 'NOTICE'; + $result_reason = "add_lead ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$hopper_id|$user\n"; + $data = "$phone_number|$lead_id|$hopper_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$stmt|$user\n"; + $data = "$phone_number|$lead_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + else + { + $result = 'ERROR'; + $result_reason = "add_lead LEAD HAS NOT BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$stmt|$user\n"; + $data = "$phone_number|$list_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } + } +################################################################################ +### END add_lead +################################################################################ + + + +$result = 'ERROR'; +$result_reason = "NO FUNCTION SPECIFIED"; +echo "$result: $result_reason\n"; +api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + + + + + + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + + + + + + +##### FUNCTIONS ##### + +##### LOOKUP GMT, FINDS THE CURRENT GMT OFFSET FOR A PHONE NUMBER ##### + +function lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code) +{ +require("dbconnect.php"); + +$postalgmt_found=0; +if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + + + + + +##### DETERMINE IF LEAD IS DIALABLE ##### +function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) + { + $dialable=0; + + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + if ($GMT_day==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } + } + + return $dialable; + } + +/* + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) + { + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + +*/ + + + + +##### Logging ##### +function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) + { + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/remote_dispo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/remote_dispo.php new file mode 100644 index 00000000..203a7c0f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/remote_dispo.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + +$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;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +?> + + +REMOTE VICIDIAL: Disposición De la Llamada +\n"; +?> + + +
+ +"; + +if ($end_call > 0) +{ + +$call_length = ($STARTtime - $call_began); + + ### insert a NEW record to the vicidial_closer_log table + $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";} + $rslt=mysql_query($stmt, $link); + + ### update the lead record in the vicidial_list table + $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";} + $rslt=mysql_query($stmt, $link); + + echo "La llamada ha sido dispositioned       $NOW_TIME\n

\n"; + + echo "
\n"; + +} +else +{ + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $campaign_id = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; # + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; # + $address1 = "$row[16]"; # + $address2 = "$row[17]"; # + $address3 = "$row[18]"; # + $city = "$row[19]"; # + $state = "$row[20]"; # + $province = "$row[21]"; # + $postal_code = "$row[22]"; # + $country_code = "$row[23]"; # + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; # + $email = "$row[27]"; # + $security = "$row[28]"; # + $comments = "$row[29]"; # + + echo "
Información de la llamada: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     ID De la Campaña: $campaign_id
Fronter: $tsr     ID De la Lista: $list_id
Nombre:   \n"; + echo " Apellidos:
Dirección 1 :
Dirección 2 :
Dirección 3 :
Ciudad :
Estado:   \n"; + echo " Código Postal:
Provincia:
País :
Alt Phone :
Email :
Seguridad:
Comentarios :
Disposición:
\n"; + echo "


\n"; + + } + else + { + echo "las operaciones de búsqueda del plomo FALLARON para el lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + + + +} + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nScript runtime: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/server_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/server_stats.php new file mode 100644 index 00000000..1d24f7a0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/server_stats.php @@ -0,0 +1,97 @@ + LICENSE: GPLv2 +### +# CHANGES +# +# 60620-1037 - Added Link back to Admin section +# - Added required user/pass to gain access to this page +# 61101-1331 - Added SIP/IAX listen/barge links +# + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select * from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $i++; + } +?> + + + + + +VICIDIAL: ESTADÍSTICAS DEL SERVIDOR and Reports +VICIDIAL: ESTADÍSTICAS DEL SERVIDOR and Reports                           +DE NUEVO AL ADMIN

+ + +

+
+ $o)
+	{
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	echo "\n";
+	$o++;
+	}
+
+?>
+
SERVERDESCRIPCIÓNIP ADDRESSACTIVOVDAD timeVDcall timePARK timeCLOSER/INBOUND time
$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]LINKLINKLINKLINK
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_edit.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_edit.php new file mode 100644 index 00000000..96ca497d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_edit.php @@ -0,0 +1,481 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80624-1342 - First build +# 80701-1323 - functional beta version done +# 90310-2109 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["oldLOGINepoch"])) {$oldLOGINepoch=$_GET["oldLOGINepoch"];} + elseif (isset($_POST["oldLOGINepoch"])) {$oldLOGINepoch=$_POST["oldLOGINepoch"];} +if (isset($_GET["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_GET["oldLOGOUTepoch"];} + elseif (isset($_POST["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_POST["oldLOGOUTepoch"];} +if (isset($_GET["oldLOGINdate"])) {$oldLOGINdate=$_GET["oldLOGINdate"];} + elseif (isset($_POST["oldLOGINdate"])) {$oldLOGINdate=$_POST["oldLOGINdate"];} +if (isset($_GET["oldLOGOUTdate"])) {$oldLOGOUTdate=$_GET["oldLOGOUTdate"];} + elseif (isset($_POST["oldLOGOUTdate"])) {$oldLOGOUTdate=$_POST["oldLOGOUTdate"];} +if (isset($_GET["LOGINepoch"])) {$LOGINepoch=$_GET["LOGINepoch"];} + elseif (isset($_POST["LOGINepoch"])) {$LOGINepoch=$_POST["LOGINepoch"];} +if (isset($_GET["LOGOUTepoch"])) {$LOGOUTepoch=$_GET["LOGOUTepoch"];} + elseif (isset($_POST["LOGOUTepoch"])) {$LOGOUTepoch=$_POST["LOGOUTepoch"];} +if (isset($_GET["notes"])) {$notes=$_GET["notes"];} + elseif (isset($_POST["notes"])) {$notes=$_POST["notes"];} +if (isset($_GET["LOGINevent_id"])) {$LOGINevent_id=$_GET["LOGINevent_id"];} + elseif (isset($_POST["LOGINevent_id"])) {$LOGINevent_id=$_POST["LOGINevent_id"];} +if (isset($_GET["LOGOUTevent_id"])) {$LOGOUTevent_id=$_GET["LOGOUTevent_id"];} + elseif (isset($_POST["LOGOUTevent_id"])) {$LOGOUTevent_id=$_POST["LOGOUTevent_id"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["timeclock_id"])) {$timeclock_id=$_GET["timeclock_id"];} + elseif (isset($_POST["timeclock_id"])) {$timeclock_id=$_POST["timeclock_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); +$invalid_record=0; + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $modify_timeclock_log = $row[1]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT event,tcid_link from vicidial_timeclock_log where timeclock_id='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $event = $row[0]; + $tcid_link = $row[1]; + } + if (ereg("LOGIN",$event)) + { + $LOGINevent_id = $timeclock_id; + $LOGOUTevent_id = $tcid_link; + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (ereg("LOGOUT",$event)) + { + $LOGOUTevent_id = $timeclock_id; + $stmt="SELECT timeclock_id from vicidial_timeclock_log where tcid_link='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_id = $row[0]; + } + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (strlen($LOGOUTevent_id)<1) + {$invalid_record++;} + + ### + if ($invalid_record < 1) + { + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGINevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_epoch = $row[0]; + $LOGINevent_date = $row[1]; + $LOGINlogin_sec = $row[2]; + $LOGINevent = $row[3]; + $LOGINuser = $row[4]; + $LOGINuser_group = $row[5]; + $LOGINip_address = $row[6]; + $LOGINshift_id = $row[7]; + $LOGINnotes = $row[8]; + $LOGINmanager_user = $row[9]; + $LOGINmanager_ip = $row[10]; + $LOGINevent_datestamp = $row[11]; + } + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGOUTevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGOUTevent_epoch = $row[0]; + $LOGOUTevent_date = $row[1]; + $LOGOUTlogin_sec = $row[2]; + $LOGOUTevent = $row[3]; + $LOGOUTuser = $row[4]; + $LOGOUTuser_group = $row[5]; + $LOGOUTip_address = $row[6]; + $LOGOUTshift_id = $row[7]; + $LOGOUTnotes = $row[8]; + $LOGOUTmanager_user = $row[9]; + $LOGOUTmanager_ip = $row[10]; + $LOGOUTevent_datestamp =$row[11]; + } + + $user=$LOGINuser; + } + } + + + +?> + + + +ADMINISTRATION:Reloj de tiempo Record Edit +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$TCedit_javascript = '1'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=720 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Reloj de tiempo Record Edit for <?php echo $user ?></TD><TD ALIGN=RIGHT>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + + + + + +##### BEGIN TIMECLOCK RECORD MODIFY ##### + +if ( ($invalid_record < 1) or (strlen($timeclock_id)<1) ) +{ + +if ($stage == "edit_TC_log") + { + $log_time = ($LOGOUTepoch - $LOGINepoch); + $NEXTevent_epoch = $StarTtimE; + $PREVevent_epoch = 0; + + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id > '$LOGOUTevent_id' and user='$user' order by timeclock_id limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $NEXTevent_epoch = $row[0]; + $NEXTevent_id = $row[1]; + } + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id < '$LOGINevent_id' and user='$user' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $PREVevent_epoch = $row[0]; + $PREVevent_id = $row[1]; + } + + if ( ($LOGINepoch <= $PREVevent_epoch) || ($LOGOUTepoch >= $NEXTevent_epoch) ) + { + echo "ERROR-Hay un problema con los datos que ha introducido, por favor, volver<BR>\n"; + echo "Un período de sesiones timeclock no puede superponerse timeclock otro período de sesiones<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + echo "$PREVevent_epoch<BR>\n"; + echo "$PREVevent_id<BR>\n"; + echo "$NEXTevent_epoch<BR>\n"; + echo "$NEXTevent_id<BR>\n"; + exit; + } + if ( ($LOGINepoch > $StarTtimE) || ($LOGOUTepoch > $StarTtimE) || ($log_time > 86400) || ($log_time < 1) ) + { + echo "ERROR-Hay un problema con los datos que ha introducido, por favor, volver<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$notes<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + exit; + } + else + { + $LOGINdatetime = date("Y-m-d H:i:s", $LOGINepoch); + $LOGOUTdatetime = date("Y-m-d H:i:s", $LOGOUTepoch); + + ### update LOGIN record in the timeclock log + $stmtA="UPDATE vicidial_timeclock_log set event_epoch='$LOGINepoch', event_date='$LOGINdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGINevent_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGINevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGINepoch|$oldLOGINdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + ### update LOGOUT record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set event_epoch='$LOGOUTepoch', event_date='$LOGOUTdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGOUTevent_id';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGOUTevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGOUTepoch|$oldLOGOUTdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + echo "The timeclock session has been updated. <A HREF=\"$PHP_SELF?timeclock_id=$LOGINevent_id\">Click here to view</A>.<BR>\n"; + exit; + } + } +##### END TIMECLOCK RECORD MODIFY ##### + + + + +echo "\n<BR>"; + +if ($modify_timeclock_log > 0) + { +# $LOGINevent_id = $timeclock_id; +# $LOGOUTevent_id = $tcid_link; + + $event_hours = ($LOGINlogin_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + + $stmt="SELECT full_name from vicidial_users where user='$LOGINuser';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST name=edit_log id=edit_log>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<input type=hidden name=oldLOGINepoch id=oldLOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGOUTepoch id=oldLOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGINdate id=oldLOGINdate value=\"$LOGINevent_date\">\n"; + echo "<input type=hidden name=oldLOGOUTdate id=oldLOGOUTdate value=\"$LOGOUTevent_date\">\n"; + echo "<input type=hidden name=LOGINepoch id=LOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=LOGOUTepoch id=LOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=LOGINevent_id id=LOGINevent_id value=\"$LOGINevent_id\">\n"; + echo "<input type=hidden name=LOGOUTevent_id id=LOGOUTevent_id value=\"$LOGOUTevent_id\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<TABLE Border=0><TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "        USER: $LOGINuser ($full_name)         \n"; + echo "HOURS: <span name=login_time id=login_time> $event_hours_int:$event_minutes_int </span>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD>\n"; + echo "<TABLE Border=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGIN TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGINbegin_date id=LOGINbegin_date value=\"$LOGINevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGINevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>GRUPO DE USUARIOS: </TD><TD ALIGN=RIGHT>$LOGINuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGINip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGINmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGINmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGINnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGINevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + + echo "</TD><TD>         \n"; + echo "</TD><TD>\n"; + echo "<TABLE Border=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGOUT TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGOUTbegin_date id=LOGOUTbegin_date value=\"$LOGOUTevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGOUTevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>GRUPO DE USUARIOS: </TD><TD ALIGN=RIGHT>$LOGOUTuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGOUTip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGOUTnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGOUTevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + echo "</TD></TR>\n"; + + echo "<TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "NEW NOTES: <input type=text name=notes value='' size=80 maxlength=255>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD COLSPAN=3 ALIGN=CENTER>\n"; + echo "<input type=button name=go_submit id=go_submit value=ENVIAR onclick=\"run_submit();\"><BR></form>\n"; + echo "</TD></TR></TABLE>\n"; + echo "<BR><BR>\n"; + } + + +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Hoja de tiempo</a>\n"; +echo " - <a href=\"./user_stats.php?user=$user\">Estadísticas de usuario</a>\n"; +echo " - <a href=\"./admin.php?ADD=3&user=$user\">Modificar Usuario</a>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +} +else +{ + +echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; +} +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_report.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_report.php new file mode 100644 index 00000000..c2416ffd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_report.php @@ -0,0 +1,361 @@ +<?php +# timeclock_report.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80529-0055 - First build +# 80617-1416 - Fixed totals tally bug +# 80707-0754 - Fixed groups bug, changed formatting +# 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +##### Pull values from posted form variables ##### +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($order)<2) {$order='hours_down';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + +##### START HTML ##### +?> + +<HTML> +<HEAD> + +<style type="text/css"> +<!-- + div.scroll_callback {height: 300px; width: 620px; overflow: scroll;} + div.scroll_list {height: 400px; width: 140px; overflow: scroll;} + div.scroll_script {height: 331px; width: 600px; background: #FFF5EC; overflow: scroll; font-size: 12px; font-family: sans-serif;} + div.text_input {overflow: auto; font-size: 10px; font-family: sans-serif;} + .body_text {font-size: 13px; font-family: sans-serif;} + .preview_text {font-size: 13px; font-family: sans-serif; background: #CCFFCC} + .preview_text_red {font-size: 13px; font-family: sans-serif; background: #FFCCCC} + .body_small {font-size: 11px; font-family: sans-serif;} + .body_tiny {font-size: 10px; font-family: sans-serif;} + .log_text {font-size: 11px; font-family: monospace;} + .log_text_red {font-size: 11px; font-family: monospace; font-weight: bold; background: #FF3333} + .sd_text {font-size: 16px; font-family: sans-serif; font-weight: bold;} + .sh_text {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .sb_text {font-size: 12px; font-family: sans-serif;} + .sk_text {font-size: 11px; font-family: sans-serif;} + .skb_text {font-size: 13px; font-family: sans-serif; font-weight: bold;} + .ON_conf {font-size: 11px; font-family: monospace; color: black; background: #FFFF99} + .OFF_conf {font-size: 11px; font-family: monospace; color: black; background: #FFCC77} + .cust_form {font-family: sans-serif; font-size: 10px; overflow: auto} + + .select_bold {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .header_white {font-size: 14px; font-family: sans-serif; font-weight: bold; color: white} + .data_records {font-size: 12px; font-family: sans-serif; color: black} + .data_records_fix {font-size: 12px; font-family: monospace; color: black} + .data_records_fix_small {font-size: 9px; font-family: monospace; color: black} + +--> +</style> + +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<TITLE>UsuarioReloj de tiempo Report + +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +$user_group_ct = count($user_group); +$user_group_string='|'; + +$i=0; +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_timeclock_log.user_group IN($user_group_SQL)"; + } + +if ($DB > 0) + { + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + } + +echo "<CENTER>\n"; +echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; +echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; +echo "<TABLE Border=0 CELLSPACING=6><TR><TD ALIGN=LEFT VALIGN=TOP>\n"; + +echo "<font class=\"select_bold\"><B>Rango de Fecha:</B></font><BR><CENTER>\n"; +echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; +echo "<BR>to<BR>\n"; +echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Grupos De Usuario:</B></font><BR><CENTER>\n"; +echo "<SELECT SIZE=5 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } +echo "</SELECT>\n"; + +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Order:</B></font><BR>\n"; +echo "<SELECT SIZE=1 NAME=order>\n"; +echo "<option selected value=\"$order\">$order</option>\n"; +echo "<option value=\"\">--</option>\n"; +echo "<option>hours_up</option>\n"; +echo "<option>hours_down</option>\n"; +echo "<option>user_up</option>\n"; +echo "<option>user_down</option>\n"; +echo "<option>name_up</option>\n"; +echo "<option>name_down</option>\n"; +echo "<option>group_up</option>\n"; +echo "<option>group_down</option>\n"; +echo "</SELECT><BR><CENTER>\n"; + +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Usuario:</B></font><BR>\n"; +echo "<INPUT TYPE=text NAME=user SIZE=7 MAXLENGTH=20 VALUE=\"$user\">\n"; + +echo "<BR><BR><INPUT TYPE=Submit NAME=ENVIAR VALUE=ENVIAR>\n"; +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "</TD><TD ALIGN=CENTER VALIGN=TOP ROWSPAN=3>\n"; +echo "<FONT class=\"select_bold\" COLOR=BLACK SIZE=2>     <a href=\"./admin.php?ADD=999999\">INFORMES</a> </FONT>\n"; + +echo "</TD></TR></TABLE>\n"; +echo "</FORM>\n\n"; + +echo "<PRE><FONT SIZE=3>\n"; + + +echo "UsuarioReloj de tiempo Report $NOW_TIME\n"; + +echo "Time range: $query_date to $end_date\n\n"; +echo "---------- USER TIMECLOCK DETAILS -------------\n"; +echo "These totals do NOT include any active sessions\n</PRE>\n"; + +echo "<TABLE Border=0 CELLSPACING=1 CELLPADDING=3><TR BGCOLOR=BLACK>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">#</TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  USER  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  NAME  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  GROUP  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  HOURS  </TD>\n"; +echo "</TR>\n"; + +$order_SQL=''; +if ($order == 'hours_up') {$order_SQL = "order by login";} +if ($order == 'hours_down') {$order_SQL = "order by login desc";} +if ($order == 'user_up') {$order_SQL = "order by vicidial_users.user";} +if ($order == 'user_down') {$order_SQL = "order by vicidial_users.user desc";} +if ($order == 'name_up') {$order_SQL = "order by full_name";} +if ($order == 'name_down') {$order_SQL = "order by full_name desc";} +if ($order == 'group_up') {$order_SQL = "order by vicidial_timeclock_log.user_group";} +if ($order == 'group_down') {$order_SQL = "order by vicidial_timeclock_log.user_group desc";} + +if (strlen($user) > 0) {$user_SQL = "and vicidial_timeclock_log.user='$user'";} +else {$user_SQL='';} + +$stmt="select vicidial_users.user,full_name,sum(login_sec) as login,vicidial_timeclock_log.user_group from vicidial_users,vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date 00:00:00' and event_date <= '$end_date 23:59:59' and vicidial_users.user=vicidial_timeclock_log.user $user_SQL $user_group_SQL group by vicidial_users.user,vicidial_timeclock_log.user_group $order_SQL limit 100000;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$rows_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $rows_to_print) + { + $dbHOURS=0; + $row=mysql_fetch_row($rslt); + $user_id[$i] = $row[0]; + $full_name[$i] = $row[1]; + $login_sec[$i] = $row[2]; $TOTlogin_sec = ($TOTlogin_sec + $row[2]); + $u_group[$i] = $row[3]; + + if ($login_sec[$i] > 0) + { + $dbHOURS = ($login_sec[$i] / 3600); + $dbHOURS = round($dbHOURS, 2); + $dbHOURS = sprintf("%01.2f", $dbHOURS); + } + else + {$dbHOURS='0.00';} + + $hours[$i] = $dbHOURS; + $hoursSORT[$i] = "$dbHOURS-----$i"; + + $i++; + } + + +$j=0; +while ($j < $rows_to_print) + { + + $hours_split = explode("-----",$hoursSORT[$j]); + $i = $hours_split[1]; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "<TR $bgcolor>\n"; + echo "<TD ALIGN=LEFT><FONT class=\"data_records_fix_small\">$j</TD>\n"; + echo "<TD><FONT class=\"data_records\"><A HREF=\"user_status.php?user=$user_id[$i]\">$user_id[$i]</A> </TD>\n"; + echo "<TD><FONT class=\"data_records\">$full_name[$i] </TD>\n"; + echo "<TD><FONT class=\"data_records\">$u_group[$i] </TD>\n"; + echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $hours[$i]</TD>\n"; + echo "</TR>\n"; + + $j++; + } + + +if ($TOTlogin_sec > 0) + { + $TOTdbHOURS = ($TOTlogin_sec / 3600); + $TOTdbHOURS = round($TOTdbHOURS, 0); + $TOTdbHOURS = sprintf("%01.0f", $TOTdbHOURS); + } +else + {$TOTdbHOURS='0.00';} + +$TOThours = $TOTdbHOURS; + + +echo "<TR BGCOLOR=#E6E6E6>\n"; +echo "<TD ALIGN=LEFT COLSPAN=4><FONT class=\"data_records\">TOTALS</TD>\n"; +echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $TOThours</TD>\n"; +echo "</TR>\n"; + +echo "</TABLE>\n"; + +echo "\n"; + +/* + $TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60); + $TOTavgWAIT_M = round($TOTavgWAIT_M, 2); + $TOTavgWAIT_M_int = intval("$TOTavgWAIT_M"); + $TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int); + $TOTavgWAIT_S = ($TOTavgWAIT_S * 60); + $TOTavgWAIT_S = round($TOTavgWAIT_S, 0); + if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";} + $TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S"; + $TOTavgWAIT_MS = sprintf("%6s", $TOTavgWAIT_MS); + while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);} +*/ +?> +</CENTER> +</BODY></HTML> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_status.php new file mode 100644 index 00000000..6e4b5c14 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/timeclock_status.php @@ -0,0 +1,550 @@ +<?php +# timeclock_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80602-0201 - First Build +# 80603-1500 - formatting changes +# 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$HHMM = date("Hi"); +$HHteod = substr($timeclock_end_of_day,0,2); +$MMteod = substr($timeclock_end_of_day,2,2); + +if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} +else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + +$EoDdate = date("Y-m-d H:i:s", $EoD); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + if ($row[0]==$user_group) + {$FORMuser_groups.="<option value=\"$row[0]\" SELECTED>$row[0]</option>";} + else + {$FORMuser_groups.="<option value=\"$row[0]\">$row[0]</option>";} + $i++; + } + +if (strlen($user_group) > 0) + { + $stmt="SELECT group_name from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + } + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION:Reloj de tiempo Status +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<CENTER> +<TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Reloj de tiempo Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php +echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; +echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>GRUPO DE USUARIOS</a>\n"; +?> +</TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<select size=1 name=user_group>$FORMuser_groups</select>"; +echo "<input type=submit name=submit value=submit>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; +echo "<br><center>\n"; + +if (strlen($user_group) < 1) + { + exit; + } + + +##### grab all users in this user_group ##### +$stmt="SELECT user,full_name from vicidial_users where user_group='" . mysql_real_escape_string($user_group) . "' order by full_name;"; +if ($DB>0) {echo "|$stmt|";} +$rslt=mysql_query($stmt, $link); +$users_to_print = mysql_num_rows($rslt); +$o=0; +while ($users_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $users[$o] = $row[0]; + $full_name[$o] = $row[1]; + $Vevent_time[$o] = ''; + $Vevent_epoch[$o] = 0; + $Vcampaign[$o] = ''; + $Tevent_epoch[$o] = ''; + $Tevent_date[$o] = ''; + $Tstatus[$o] = ''; + $Tip_address[$o] = ''; + $Tlogin_time[$o] = ''; + $Tlogin_sec[$o] = 0; + + $o++; + } + +$o=0; +while ($users_to_print > $o) + { + $total_login_time = 0; + ##### grab timeclock status record for this user ##### + $stmt="SELECT event_epoch,event_date,status,ip_address from vicidial_timeclock_status where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $stats_to_print = mysql_num_rows($rslt); + if ($stats_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_epoch[$o] = $row[0]; + $Tevent_date[$o] = $row[1]; + $Tstatus[$o] = $row[2]; + $Tip_address[$o] = $row[3]; + + if ( ($row[2]=='START') or ($row[2]=='LOGIN') ) + {$bgcolor[$o]='bgcolor="#B9CBFD"';} + else + {$bgcolor[$o]='bgcolor="#9BB9FB"';} + } + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event,event_epoch,login_sec from vicidial_timeclock_log where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $logs_to_parse = mysql_num_rows($rslt); + $p=0; + while ($logs_to_parse > $p) + { + $row=mysql_fetch_row($rslt); + if ( (ereg("LOGIN", $row[0])) or (ereg("START", $row[0])) ) + { + $login_sec=''; + $Tevent_time[$o] = date("Y-m-d H:i:s", $row[1]); + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[2]; + $total_login_time = ($total_login_time + $login_sec); + } + $p++; + } + if ( (strlen($login_sec)<1) and ($logs_to_parse > 0) ) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } + if ($logs_to_parse > 0) + { + $total_login_hours = ($total_login_time / 3600); + $total_login_hours_int = round($total_login_hours, 2); + $total_login_hours_int = intval("$total_login_hours"); + $total_login_minutes = ($total_login_hours - $total_login_hours_int); + $total_login_minutes = ($total_login_minutes * 60); + $total_login_minutes_int = round($total_login_minutes, 0); + if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + + $Tlogin_time[$o] = "$total_login_hours_int:$total_login_minutes_int"; + $Tlogin_sec[$o] = $total_login_time; + } + else + { + $total_login_time = 0; + $Tlogin_time[$o] = "0:00"; + $Tlogin_sec[$o] = $total_login_time; + } + + if ($DB>0) {echo "|$Tlogin_sec[$o]|$Tlogin_time[$o]|";} + + ##### grab vicidial_agent_log records in this user_group ##### + $stmt="SELECT event_time,UNIX_TIMESTAMP(event_time),campaign_id from vicidial_agent_log where user='$users[$o]' and event_time >= '$EoDdate' order by agent_log_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $vals_to_print = mysql_num_rows($rslt); + if ($vals_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Vevent_time[$o] = $row[0]; + $Vevent_epoch[$o] = $row[1]; + $Vcampaign[$o] = $row[2]; + } + + $o++; + } + + +##### print each user that has any activity for today ##### +echo "<br>\n"; +echo "<center>\n"; + +echo "<TABLE width=720 cellspacing=0 cellpadding=1>\n"; +echo "<TR>\n"; +echo "<TD bgcolor=\"#99FF33\">     </TD><TD align=left> TC Logged in and VICI active</TD>\n"; # bright green +echo "<TD bgcolor=\"#FFFF33\">     </TD><TD align=left> TC Logged in only</TD>\n"; # bright yellow +echo "<TD bgcolor=\"#FF6666\">     </TD><TD align=left> VICI active only</TD>\n"; # bright red +echo "</TR><TR>\n"; +echo "<TD bgcolor=\"#66CC66\">     </TD><TD align=left> TC Logged out and VICI active</TD>\n"; # dull green +echo "<TD bgcolor=\"#CCCC00\">     </TD><TD align=left> TC Logged out only</TD>\n"; # dull yellow +echo "<TD>     </TD><TD align=left>   </TD>\n"; +echo "</TR></TABLE><BR>\n"; + +echo "<B>USER STATUS FOR GRUPO DE USUARIOS: $user_group</B>\n"; +echo "<TABLE width=700 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2># </td><td><font size=2>USER </td><td align=left><font size=2>NAME </td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> TC TIME</td><td align=right><font size=2>TC LOGIN</td><td align=right><font size=2> VICI LAST LOG</td><td align=right><font size=2> VICI CAMPAIGN</td></tr>\n"; + +$o=0; +$s=0; +while ($users_to_print > $o) + { + if ( ($Tlogin_sec[$o] > 0) or (strlen($Vevent_time[$o]) > 0) ) + { + if ( ($Tstatus[$o]=='START') or ($Tstatus[$o]=='LOGIN') ) + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#FFFF33"';} # yellow + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#99FF33"';} # green + } + else + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#CCCC00"';} # yellow + if (strlen($Vevent_time[$o]) > 0) + {$bgcolor[$o]='bgcolor="#FF6666"';} # red + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#66CC66"';} # green + } + + $s++; + echo "<tr $bgcolor[$o]>"; + echo "<td><font size=1>$s</td>"; + echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; + echo "<td><font size=2>$full_name[$o]</td>"; + echo "<td><font size=2>$Tip_address[$o]</td>"; + echo "<td align=right><font size=2>$Tlogin_time[$o]</td>"; + echo "<td align=right><font size=2>$Tevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vcampaign[$o]</td>"; + echo "</tr>"; + + if (strlen($Tstatus[$o])>0) + {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} + } + $o++; + } + + + +$total_login_hours = ($TOTlogin_sec / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr bgcolor=white>"; +echo "<td colspan=4><font size=2>TOTALS</td>"; +echo "<td align=right><font size=2>$total_login_hours_int:$total_login_minutes_int</td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "</tr>"; +echo "</table>"; + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php +exit; + + + + + + + + + + + +##### vicidial_timeclock log records for user ##### + +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK TIEMPO LOGIN/LOGOUT:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HORAS:MINUTOS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours = ($login_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } +$total_login_hours = ($total_login_time / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_group_bulk_change.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_group_bulk_change.php new file mode 100644 index 00000000..be78d5c1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_group_bulk_change.php @@ -0,0 +1,271 @@ +<?php +# user_group_bulk_change.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# 81119-0918 - First build +# 90309-1830 - Added admin_log logging +# 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["old_group"])) {$old_group=$_GET["old_group"];} + elseif (isset($_POST["old_group"])) {$old_group=$_POST["old_group"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Grupo de Usuarios de Basura Cambio +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + + +?> + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Grupo de Usuarios de Basura Cambio</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### GROUP CHANGE FOR ALL USERS IN A USER GROUP ##### +if ($stage == "one_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group='" . mysql_real_escape_string($old_group) . "';"; + $rslt=mysql_query($stmt, $link); + + echo "All Grupo Del Usuario $old_group Usuarios changed to the $group Grupo Del Usuario<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK GRUPO DE USUARIOS CHANGE', event_sql=\"$SQL_log\", event_notes='Old Grupo: $old_group';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +##### GROUP CHANGE FOR ALL USERS IN THE SYSTEM EXCEPT FOR LEVEL > 6 AND ADMIN GROUP ##### +if ($stage == "all_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group!='ADMIN' and user_group < 7;"; + $rslt=mysql_query($stmt, $link); + + echo "All non-Admin Usuarios changed to the $group Grupo Del Usuario<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK GRUPO DE USUARIOS CHANGE', event_sql=\"$SQL_log\", event_notes='ALL NON-ADMIN;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +### one user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"one_user_group_change\">\n"; +echo "Change Usuarios in this group: <SELECT SIZE=1 NAME=old_group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR>   to this group: <SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=ENVIAR></CENTER><BR></form>\n"; + +echo "\n<BR><BR><BR>"; + + + +### all user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"all_user_group_change\">\n"; +echo "Change ALL non-Admin Usuarios to this group: <BR><SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=ENVIAR></CENTER><BR></form>\n"; + +echo "\n<BR>"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_stats.php new file mode 100644 index 00000000..eb13efd1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_stats.php @@ -0,0 +1,677 @@ +<?php +# user_stats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1743 - Added variable filtering to eliminate SQL injection attack threat +# 61201-1136 - Added recordings display and changed calls to time range with 10000 limit +# 70118-1605 - Added user group column to login/out and calls lists +# 70702-1231 - Added recording location link and truncation +# 80117-0316 - Added vicidial_user_closer_log entries to display +# 80501-0506 - Added Hangup Reason to logs display +# 80523-2012 - Added vicidial timeclock records display +# 80617-1402 - Fixed timeclock total logged-in time +# 81210-1634 - Added server recording display options +# 90208-0504 - Added link to multi-day report and fixed call status summary section +# 90305-1226 - Added user_call_log manual dial logs +# 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +$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"); +$TODAY = date("Y-m-d"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + $stmt="SELECT full_name from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Estadísticas de usuario +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Estadísticas de usuario for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=text name=begin_date value=\"$begin_date\" size=10 maxsize=10> to \n"; +echo "<input type=text name=end_date value=\"$end_date\" size=10 maxsize=10>  \n"; +if (strlen($user)>1) + {echo "<input type=hidden name=user value=\"$user\">\n";} +else + {echo "<input type=text name=user size=12 maxlength=10>\n";} +echo "<input type=submit name=submit value=submit>\n"; + + +echo "           $user - $full_name<BR><BR>\n"; + +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Hoja de tiempo</a>\n"; +echo " | <a href=\"./user_status.php?user=$user\">Condición de Usuario</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modificar Usuario</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">Usuario multiple day status detail report</a>"; +echo "</center>\n"; + + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +##### vicidial agent talk time and status ##### + +echo "<B>AGENTE TIEMPO Y ESTADO DE CONVERSACIÓN:</B>\n"; + +echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ESTADO</td><td align=right><font size=2>CUENTA</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + +$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); +$VLstatuses_to_print = mysql_num_rows($rslt); +$total_calls=0; +$o=0; $p=0; +while ($VLstatuses_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $p++; + $o++; + } + +$stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_closer_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); +$VCLstatuses_to_print = mysql_num_rows($rslt); +$o=0; +while ($VCLstatuses_to_print > $o) + { + $status_match=0; + $r=0; + $row=mysql_fetch_row($rslt); + while ($VLstatuses_to_print > $r) + { + if ($status[$r] == $row[1]) + { + $counts[$r] = ($counts[$r] + $row[0]); + $call_sec[$r] = ($call_sec[$r] + $row[2]); + $status_match++; + } + $r++; + } + if ($status_match < 1) + { + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $VLstatuses_to_print++; + $p++; + } + $o++; + } + +$o=0; +$total_sec=0; +while ($o < $p) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $call_hours_minutes = sec_convert($call_sec[$o],'H'); + + echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; + echo "<td align=right><font size=2> $counts[$o]</td>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $total_calls = ($total_calls + $counts[$o]); + $total_sec = ($total_sec + $call_sec[$o]); + $call_seconds=0; + $o++; + } + +$call_hours_minutes = sec_convert($total_sec,'H'); + +echo "<tr><td><font size=2>LLAMADAS TOTALES </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; +echo "</TABLE></center>\n"; + + +##### Login and Logout time from vicidial agent interface ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>AGENTE TIEMPO LOGIN/LOGOUT:</B>\n"; +echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><td align=right><font size=2> CAMPAÑA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group 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); + $events_to_print = mysql_num_rows($rslt); + + $total_calls=0; + $o=0; + $event_start_seconds=''; + $event_stop_seconds=''; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if (eregi("LOGIN", $row[0])) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if (ereg("LOGIN", $row[0])) + { + $event_start_seconds = $row[1]; + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + if ($event_start_seconds) + { + + $event_stop_seconds = $row[1]; + $event_seconds = ($event_stop_seconds - $event_start_seconds); + $total_login_time = ($total_login_time + $event_seconds); + $event_hours_minutes = sec_convert($event_seconds,'H'); + + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; + $event_start_seconds=''; + $event_stop_seconds=''; + } + else + { + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + } + + $total_calls = ($total_calls + $row[0]); + + $call_seconds=0; + $o++; + } + +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +echo "<tr><td><font size=2>TOTAL</td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + +##### vicidial_timeclock log records for user ##### + +$total_login_time=0; +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK TIEMPO LOGIN/LOGOUT:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO</td><td align=right><font size=2> FECHA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours_minutes = sec_convert($login_sec,'H'); + + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes"; + if ($DB) {echo " - $total_login_time - $login_sec";} + echo "</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} + } +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +if ($DB) {echo " - $total_login_time - $login_sec";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + +##### closer in-group selection logs ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAÑA</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; + +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_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' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound calls for this time period ##### + +echo "<B>SALIENTE CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> CAMPAÑA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial 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' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent inbound calls for this time period ##### + +echo "<B>Entrantes/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> CAMPAÑA</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[17] </td></tr>\n"; + + } + + +echo "</TABLE></center><BR><BR>\n"; + + +##### vicidial recordings for this time period ##### + +echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "<a href=\"$location\">$locat</a>";} + else + {$location = $locat;} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td align=left><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[12]\" target=\"_blank\">$row[12]</A> </td>"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[8] </td>\n"; + echo "<td align=left><font size=2> $row[0] </td>\n"; + echo "<td align=center><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $location   </td>\n"; + echo "</tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound user manual calls for this time period ##### + +echo "<B>MANUAL SALIENTE CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CALL TYPE</td><td align=left><font size=2> SERVER</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> DIALED</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CALLERID</td><td align=right><font size=2> ALIAS</td></tr>\n"; + + $stmt="select call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id from user_call_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[0]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[2]</td>\n"; + echo "<td align=left><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[4] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[5]\" target=\"_blank\">$row[5]</A> </td>\n"; + echo "<td align=right><font size=2> $row[6] </td>\n"; + echo "<td align=right><font size=2> $row[7] </td></tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_status.php new file mode 100644 index 00000000..2f7620d9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_status.php @@ -0,0 +1,677 @@ +<?php +# user_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1738 - Added variable filtering to eliminate SQL injection attack threat +# 80603-1452 - Added manager timeclock force login/logout of user +# 81118-1034 - Disabled change campaign because it does not work +# 90208-0511 - Added link to user multi-day status report +# 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $agents_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $agents_to_print) + { + $row=mysql_fetch_row($rslt); + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; + $i++; + } + + $stmt="SELECT event_date,status,ip_address from vicidial_timeclock_status where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_date = $row[0]; + $Tstatus = $row[1]; + $Tip_address = $row[2]; + $i++; + } + + } + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Condición de Usuario +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Condición de Usuario for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### EMERGENCY CAMPAIGN CHANGE FOR AN AGENT ##### +if ($stage == "live_campaign_change") + { + $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); + + echo "Agent $user - $full_name changed to $group campaign<BR>\n"; + + exit; + } + +##### EMERGENCY LOGOUT OF AN AGENT ##### +if ($stage == "log_agent_out") + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; + + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } + + exit; + } + + + + + +##### BEGIN TIMECLOCK LOGOUT OF A USER ##### +if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($modify_timeclock_log > 0) ) + { + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $LOG_run=0; + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + } + + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; + } + + + ##### Run timeclock login queries ##### + if ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage == "tc_log_user_IN") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGIN of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update the user's timeclock status record + $stmtB="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtC="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGIN', record_id='$user', event_code='USER FORCED LOGIN FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Reloj de tiempo ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-in the user: $user - $full_name"; + } + + ##### Run timeclock logout queries ##### + if ( ( ($status=='LOGIN') or ($status=='START') ) and ($stage == "tc_log_user_OUT") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGOUT of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update last login record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_log record updated for $user: |$affected_rows| -->\n"; + + ### Update the user's timeclock status record + $stmtC="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtD="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtD\n";} + $rslt=mysql_query($stmtD, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Update last login record in the timeclock audit log + $stmtE="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtE\n";} + $rslt=mysql_query($stmtE, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_audit_log record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|$stmtD|$stmtE|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGOUT', record_id='$user', event_code='USER FORCED LOGOUT FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Usuario login time: $last_action_sec|Reloj de tiempo ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-out the user: $user - $full_name<BR>Amount of time user was logged-in: $totTIME_HMS"; + } + + if ($LOG_run < 1) + {$VDdisplayMESSAGE = "ERROR: timeclock log problem, could not process: $status|$stage";} + + echo "$VDdisplayMESSAGE\n"; + + exit; + } + +##### END TIMECLOCK LOGOUT OF A USER ##### + +if ($agents_to_print > 0) + { + echo "<BR>\n"; + echo "$user - $full_name \n"; + echo "       GROUP: $user_group <BR>\n"; + + echo "<TABLE CELLPADDING=0 CELLSPACING=0>"; + echo "<TR><TD ALIGN=RIGHT>Agent Logged in at server:</TD><TD ALIGN=LEFT>   $Aserver_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>in session:</TD><TD ALIGN=LEFT>   $Asession_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>from phone:</TD><TD ALIGN=LEFT>   $Aextension</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Agent is in campaign:</TD><TD ALIGN=LEFT>   $Acampaign</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} + echo "</TABLE>\n<BR>\n"; + + if ($change_agent_campaign > 0) + { + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; + echo "Current Campaña: <SELECT SIZE=1 NAME=group>\n"; + $o=0; + while ($groups_to_print > $o) + { + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; + + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"log_agent_out\">\n"; + echo "<input type=submit name=submit value=\"EMERGENCY LOG AGENTE OUT\"><BR></form>\n"; + } + } + +else + { + echo "Agent is not logged in\n<BR>"; + } + +echo "\n<BR>"; + +if ( ($Tstatus == "LOGIN") or ($Tstatus == "START") ) + { + echo "Usuario $user($full_name) - is logged in to the timeclock. <BR>Login time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_OUT'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER OUT'; + } +else + { + echo "Usuario $user($full_name) - is NOT logged in to the timeclock. <BR>Last logout time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_IN'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER IN'; + } + +if ($modify_timeclock_log > 0) + { + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"$TC_log_change_stage\">\n"; + echo "<input type=submit name=submit value=\"$TC_log_change_button\"><BR></form>\n"; + echo "<BR><BR>\n"; + } + + +$REPORTdate = date("Y-m-d"); +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Hoja de tiempo</a>\n"; +echo " | <a href=\"./user_stats.php?user=$user\">Estadísticas de usuario</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modificar Usuario</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">Usuario multiple day status detail report</a>"; +echo "</center>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nScript runtime: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_territories.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vdremote.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vdremote.php new file mode 100644 index 00000000..43a1f130 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vdremote.php @@ -0,0 +1,591 @@ + LICENSE: AGPLv2 +# +# Changes +# 50307-1721 - First version +# 51123-1502 - removed requirement of PHP Globals=on +# 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 +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes +# + +$version = '2.2.0'; +$build = '91129-2249'; + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["ENVIAR"])) {$ENVIAR=$_GET["ENVIAR"];} + elseif (isset($_POST["ENVIAR"])) {$ENVIAR=$_POST["ENVIAR"];} + +if (!isset($force_logout)) {$force_logout = 0;} + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Usted ahora ha salido. Gracias\n"; + 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'; +$STARTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Nombre y contraseña inválidos del usuario: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + $stmt="SELECT count(*) from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $authx=$row[0]; + + if($authx>0) + { + $stmt="SELECT remote_agent_id,server_ip,number_of_lines from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id=$row[0]; + $server_ip=$row[1]; + if (!$number_of_lines) {$number_of_lines=$row[2];} + + fwrite ($fp, "VDremote|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + echo "This remote agent does not exist: |$PHP_AUTH_USER|\n"; + exit; + } + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +if ($ADD==61111) + { + echo"\n"; + } +echo "\n"; +?> + +AGENTES REMOTOS: $LOGfullname - $PHP_AUTH_USER "; + +if (!$ADD) {$ADD="31111";} +if ($ADD==31111) {echo "Modificar Agentes Remotos";} +if ($ADD==41111) {echo "Modificar Agentes Remotos";} +if ($ADD==61111) {echo "Remote Agent Status";} +if ($ADD==71111) {echo "Remote Agent Closer Stats";} + + +if (strlen($ADD)>4) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "\n"; + $o++; + } + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get inbound groups listing for checkboxes + if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $groups_list .= "2) {$groups_value .= " -";} + } + +?> + + + +
+ + + + +
  AGENTES REMOTOS:   Salir  
  MODIFICAR | ">ESTADO | ">ESTADÍSTICAS DE ENTRADA
+"; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Comienzo Del ID del usuario: $user_start
Número de líneas: (Solamente números)
IP Del Servidor: $row[3]
Extensión Externa: (number dialed to reach agents [i.e. 913125551212])
Estado:
Campaña: $campaign_id
Grupos De entrada: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; + } + + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + echo ""; + + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + {echo "
AGENTES ALEJADOS NO MODIFICADOS - vaya por favor detrás y mire los datos que usted incorporó\n";} + else + { + $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); + +# echo "$stmt\n"; + echo "
LOS AGENTES ALEJADOS SE MODIFICARON\n"; + + ### LOG CHANGES TO LOG FILE ### + $fp = fopen ("./admin_changes_log.txt", "a"); + fwrite ($fp, "$date|MODIFY AGENTES REMOTOS ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); + fclose($fp); + } + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Comienzo Del ID del usuario: $user_start
Número de líneas: (Solamente números)
IP Del Servidor: $row[3]
Extensión Externa: (number dialed to reach agents [i.e. 913125551212])
Estado:
Campaña: $campaign_id
Grupos De entrada: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTA: Puede tomar hasta 30 segundos para los cambios sometidos en esta pantalla para ir viva\n"; + } + + + +###################### +# ADD=61111 status of remote agent in the system and active calls and queue +###################### + +if ($ADD==61111) + { + echo "
";
+
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+		{echo "
ERROR AGENTES REMOTOS – Por favor, vuelva atrás y compruebe los datos que introdujo\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'" . mysql_real_escape_string($nextuser) . "',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' and user IN($users_list) order by extension;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $leadlink=0; + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[4])) + { + $row[3]=''; + $row[5]='- ESPERANDO -'; + $row[6]=$row[7]; + } + $extension = sprintf("%-10s", $row[0]); + $user = sprintf("%-6s", $row[1]); + $leadid = sprintf("%-12s", $row[2]); + if ($row[2] > 0) + { + $leadidLINK=$row[2]; + $leadlink++; + if ( eregi("QUEUE",$row[4]) ) {$row[6]=$STARTtime;} + $leadid = "$leadid"; + } + $channel = sprintf("%-10s", $row[3]); + $cc=0; + while ( (strlen($channel) > 10) and ($cc < 100) ) + { + $channel = eregi_replace(".$","",$channel); + $cc++; + if (strlen($channel) <= 10) {$cc=101;} + } + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = ($STARTtime - $row[6]); + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$extension$EG | $G$user$EG | $G$leadid$EG | $G$channel$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i agentes identificados en el servidor $server_ip\n\n"; + + echo " - Llamadas de 5 minutos o más\n"; + echo " - Sobre 10 minutos en llamada\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "*********************************AGENTES SIN LLAMADAS*********************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
\n\n"; + } + + +###################### +# ADD=71111 stats for remote agents from closer logs(vicidial_closer_log) +###################### + +if ($ADD==71111) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n\n"; + echo "
";
+
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+		{echo "
ERROR AGENTES REMOTOS – Por favor, vuelva atrás y compruebe los datos que introdujo\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'$nextuser',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + $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 user IN($users_list);"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $in_calls = $row[0]; + $in_time = $row[1]; + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); + + echo "Stats de entrada del agente alejado $NOW_TIME\n\n"; + echo "\n"; + echo "Llamadas totales tomadas $query_date: $in_calls\n"; + echo "Tiempo total de conversación$query_date: $in_time_MS (minutes:seconds)\n"; + echo "\n"; + echo "\n"; + echo "Lista la llamada para $query_date:\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + echo "| USER | LEADID | GROUP | PHONE NUM | STATUS | CALL TIME | MINUTES |\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + + + $stmt="select user,lead_id,campaign_id,phone_number,status,call_date,length_in_sec from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and user IN($users_list) order by call_date;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + $user = sprintf("%-8s", $row[0]); + $leadid = sprintf("%-10s", $row[1]); + $group = sprintf("%-14s", $row[2]); + $phone = sprintf("%-10s", $row[3]); + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = $row[6]; + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + # if ($call_time_M_int >= 5) {$G=''; $EG='';} + # if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$user$EG | $G$leadid$EG | $G$group$EG | $G$phone$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; + +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "*********************************NINGUNA LLAMADA PARA HOY*******************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
\n\n"; + } + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nScript runtime: $RUNtime seconds
"; + + +?> + + +
+ + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_admin_web_logo.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_admin_web_logo.gif new file mode 100644 index 00000000..8c5a9d22 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_admin_web_logo.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_admin_web_logo_small.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_admin_web_logo_small.gif new file mode 100644 index 00000000..95738d49 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_admin_web_logo_small.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_sales_viewer.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_sales_viewer.php new file mode 100644 index 00000000..ffbd09ec --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vicidial_sales_viewer.php @@ -0,0 +1,258 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 80310-1500 - first build +# 90310-2135 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +if (isset($_GET["dcampaign"])) {$dcampaign=$_GET["dcampaign"];} + elseif (isset($_POST["dcampaign"])) {$dcampaign=$_POST["dcampaign"];} +if (isset($_GET["submit_report"])) {$submit_report=$_GET["submit_report"];} + elseif (isset($_POST["submit_report"])) {$submit_report=$_POST["submit_report"];} +if (isset($_GET["list_ids"])) {$list_ids=$_GET["list_ids"];} + elseif (isset($_POST["list_ids"])) {$list_ids=$_POST["list_ids"];} +if (isset($_GET["sales_number"])) {$sales_number=$_GET["sales_number"];} + elseif (isset($_POST["sales_number"])) {$sales_number=$_POST["sales_number"];} +if (isset($_GET["sales_time_frame"])) {$sales_time_frame=$_GET["sales_time_frame"];} + elseif (isset($_POST["sales_time_frame"])) {$sales_time_frame=$_POST["sales_time_frame"];} +if (isset($_GET["forc"])) {$forc=$_GET["forc"];} + elseif (isset($_POST["forc"])) {$forc=$_POST["forc"];} + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + +$PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); +$PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +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 "Nombre y contraseña inválidos del usuario or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +?> + + +Recent Sales Lookup + + + + + +
"; +?> + +
+ + + + + + + + + + + + + + + + + + + + + +
Vicidial SALIENTE recent sales report               Back to Admin +
+ + + + + + + + + + +
Select a campaign:
Select list ID(s) # (optional):
+
View sales made within the last OR...View the last sales**
(If you enter values in both fields, the results will be limited by the first criteria met)
Campaña is:    Transfer  Non-transfer
** - sorted by call date
+
+0)) { $list_id_clause.="$lists[$i], "; } + } + $list_id_clause=substr($list_id_clause, 0, -2); + $list_id_clause.=")"; + + if ($sales_number && $sales_number>0) { + $sales_number=eregi_replace("[^0-9]", "", $sales_number); + $limit_clause="limit $sales_number"; + } else { + $sales_number=0; + $limit_clause=""; + } + if ($sales_time_frame && $sales_time_frame>0) { + $hours=$sales_time_frame/60; + $timestamp=date("YmdHis", mktime(date("H"),(date("i")-$sales_time_frame),date("s"),date("m"),date("d"),date("Y"))); + } else { + $timestamp=date("YmdHis", mktime(date("H"),date("i"),date("s"),date("m"),(date("d")-1),date("Y"))); + $hours=24; + } + print "
"; + print ""; + $i=0; + + $dfile=fopen("discover_stmts.txt", "w"); + if ($forc=="C") { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, u.full_name from vicidial_users u, vicidial_list v, vicidial_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause and vl.user=u.user order by call_date desc $limit_clause"; + } else { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, vl.user, vl.closer from vicidial_list v, vicidial_xfer_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause order by call_date desc $limit_clause"; + } + fwrite($dfile, "$stmt\n"); + $rslt=mysql_query($stmt, $link); + $q=0; + print "\n"; + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + while ($row=mysql_fetch_row($rslt)) { + $rec_stmt="select max(recording_id) from recording_log where lead_id='$row[4]'"; + $rec_rslt=mysql_query($rec_stmt, $link); + $rec_row=mysql_fetch_row($rec_rslt); + + if ($forc=="F") { + $rep_stmt="select full_name from vicidial_users where user='$row[5]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $fr_row=mysql_fetch_array($rep_rslt); + + $rep_stmt="select full_name from vicidial_users where user='$row[6]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $cl_row=mysql_fetch_array($rep_rslt); + + $rep_name="$fr_row[full_name]/$cl_row[full_name]"; + } else { + $rep_name=$row[5]; + } + + if ($i%2==0) {$bgcolor="#999999";} else {$bgcolor="#CCCCCC";} + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + flush(); + } + print "
Last ".mysql_num_rows($rslt)." sales made
Sales Rep(s)Customer NamePhoneRecording IDTimestamp
$rep_name$row[0] $row[1]$row[2]$rec_row[0]$row[3]
"; + passthru("$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign"); +# print "\n\n
$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign
\n"; + flush(); + print ""; + if ($forc=="F") { + print ""; + } + print ""; + print "
View complete Excel fronter report for this shiftView complete Excel sales report for this shift
"; +} +?> + +
+ + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vtiger_search.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vtiger_search.php new file mode 100644 index 00000000..6636a431 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vtiger_search.php @@ -0,0 +1,885 @@ + LICENSE: AGPLv2 +# +# This page does a search against a standard vtiger CRM system. If the record +# is not present, it will create a new one and send the agent's screen to that new page. +# +# This code is tested against vtiger 5.0.4 and 5.1.0 +# +# CHANGES +# 60719-1615 - First version +# 60801-2304 - Added mysql debug and auto-forward +# 60802-1111 - Added insertion of not-found record into vtiger system +# 71220-0000 - Modified by I. Taushanov for VTiger 5.03- search/create lead +# 80120-1934 - Added changes for compatibility with vtiger 5.0.3 +# 81229-1017 - Added usage of system_settings connection settings for vtiger database +# 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD +# 90111-1451 - Added logging of call as activity for account/lead +# 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$HHMMnow = date("H:i"); +$minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); +$HHMMend = date("H:i",$minute_old); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger Lookup\n"; +echo "\n"; + + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$vtc_conf_ct = mysql_num_rows($rslt); +if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + } +if (strlen($vtiger_search_category)<1) + {$vtiger_search_category = 'LEAD';} + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo 'Connected successfully'; +mysql_select_db("$vtiger_dbname", $linkV); + +# Methods of searching for records: +# +# ACCTID: +# $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; +# +# ACCOUNT: +# $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; +# +# VENDOR: +# $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; +# +# LEAD: +# $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; + +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} + + + +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + + + +########################################################################## +##### BEGIN - ACCTID - Search in the account records for accountid number +########################################################################## +if ($acctid_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCTID|$vendor_id|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - ACCTID - Search in the account records for accountid number +########################################################################## + + +########################################################################## +##### BEGIN - ACCOUNT - Search in the account records for phone number +########################################################################## +if ($account_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_account\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_contactdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_contactsubdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_contact + $stmt="SELECT contactsubscriptionid from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $contactid = $row[0]; + + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where contactid='$contactid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + if (strlen($accountid) > 0) + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - ACCOUNT - Search in the account records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - VENDOR - Search in the vendor records for phone number +########################################################################## +if ($vendor_search > 0) + { + $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nVENDOR|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_vendor + $stmt="SELECT vendorid from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $vendorid = $row[0]; + + # http://mysite.com/vtigercrm/index.php?module=Vendors&action=DetailView&record=2&parenttab=Inventory + $account_URL = "$vtiger_url/index.php?module=Vendors&action=DetailView&record=$vendorid&parenttab=Inventory"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+		echo "account found! VENDOR\n";
+		echo "vendorid:   $vendorid\n";
+		echo "phone:       $phone\n";
+		echo "

"; + exit; + } + } +########################################################################## +##### END - VENDOR - Search in the vendor records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - LEAD - Search in the leads records for phone number +########################################################################## +if ($lead_search > 0) + { + $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nLEAD|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + if (ereg('Y',$vtiger_create_lead_record)) + { + echo "\n"; + echo "\n"; + echo "
\n"; + echo "$phone not found, creating account...\n"; + + $DB=1; + + #Get logged in user ID + if ($DB) {echo "
";}
+			$stmt="SELECT id from vtiger_users where user_name='$user';";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			$row=mysql_fetch_row($rslt);
+			$user_id = $row[0];
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Vtiger no longer use auto increment for vtiger_crmentity crmid, vtiger_crmentity_seq is used instead to list next aviable entity ID
+			# Get next aviable id to use as  crmid in vtiger_crmentity	
+			$stmt="SELECT id from vtiger_crmentity_seq ;";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			$row=mysql_fetch_row($rslt);
+			$leadid = ($row[0] + 1);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			# Increase 	next aviable crmid with 1 so next record gets proper id
+			$stmt="UPDATE vtiger_crmentity_seq SET id = '$leadid';";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Insert values into vtiger_crmentity
+			$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$leadid', '$user_id', '$user_id','$user_id', 'Leads', '(Memo)', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if ($DB) {echo "|$leadid|\n";}
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leaddetails	
+			$stmt = "INSERT INTO vtiger_leaddetails (leadid,firstname,lastname,company) values('$leadid','$first_name','$last_name','$first_name $last_name');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leaddetails
+			$stmt = "INSERT INTO vtiger_leadaddress (leadaddressid,city,code,state,country,phone,mobile,lane) values('$leadid','$city','$postal_code','$province','$country','$phone','$alt_phone','$address1 $address2');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leadsubdetails	
+			$stmt = "INSERT INTO vtiger_leadsubdetails (leadsubscriptionid) VALUES ('$leadid');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Insert values into vtiger_leadscf, these are custom created fields example	
+			$stmt = "INSERT INTO vtiger_leadscf (leadid) VALUES ('$leadid');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			if ($DB) {echo "DONE creating lead records\n";}
+
+			if (ereg('Y',$vtiger_create_call_record))
+				{
+				### Log the call in Vtiger
+
+				#Get logged in user ID
+				$stmt="SELECT id from vtiger_users where user_name='$user';";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				$row=mysql_fetch_row($rslt);
+				$user_id = $row[0];
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				# Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity	
+				$stmt="SELECT id from vtiger_crmentity_seq ;";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				$row=mysql_fetch_row($rslt);
+				$activityid = ($row[0] + 1);
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+				# Increase next aviable crmid with 1 so next record gets proper id
+				$stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_salesmanactivityrel
+				$stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_seactivityrel
+				$stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_crmentity
+				$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+				#Insert values into vtiger_activity
+				$stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+
+				# http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales
+				$account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales";
+				}
+			else
+				{
+				# http://mysite.com/vtigercrm/index.php?module=Accounts&action=EditView&record=2&parenttab=Sales
+				$account_URL = "$vtiger_url/index.php?module=Leads&action=EditView&record=$leadid&parenttab=Sales";
+				}
+
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "
\n"; + + echo "
";
+			echo "account created! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + else + { + $stmt="SELECT leadaddressid from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $leadid = $row[0]; + + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - LEAD - Search in the leads records for phone number +########################################################################## + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n
$phone NOT FOUND

\n\n"; +echo "Click here to go to the Vtiger home page\n"; + +# echo "\n\n\n


\nscript runtime: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vtiger_user.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vtiger_user.php new file mode 100644 index 00000000..f53a989a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/vtiger_user.php @@ -0,0 +1,317 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81231-1307 - First build +# 90228-2152 - Added Groups support +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger user synchronization utility\n"; +echo "\n"; + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +##### grab the existing user_groups in the vicidial_user_groups table +$stmt="SELECT user_group,group_name FROM vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_groups_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $UGid[$i] = $row[0]; + $UGname[$i] = $row[1]; + $i++; + } + +##### grab the existing users in the vicidial_users table +$stmt="SELECT user,pass,full_name,user_level,active,user_group FROM vicidial_users;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_users_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_users_ct) + { + $row=mysql_fetch_row($rslt); + $user[$i] = $row[0]; + $pass[$i] = $row[1]; + $full_name[$i] = $row[2]; while (strlen($full_name[$i])>30) {$full_name[$i] = eregi_replace(".$",'',$full_name[$i]);} + $user_level[$i] = $row[3]; + $active[$i] = $row[4]; + $user_group[$i] = $row[5]; + $i++; + } + + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo "Connected successfully\n
\n"; +mysql_select_db("$vtiger_dbname", $linkV); + + +########################## +### BEGIN Group export +$i=0; +while ($i < $VD_groups_ct) + { + $VTgroup_name = $UGid[$i]; + $VTgroup_description = $UGname[$i]; + + $stmt="SELECT count(*) from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, grab groupid, update description + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + $VTugID[$i] = $groupid; + + $stmtA = "UPDATE vtiger_groups SET description='$VTgroup_description' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
\n"; + echo "
\n"; + } + + ### group doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $VTugID[$i] = $groupid; + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$VTgroup_name',description='$VTgroup_description';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
\n"; + echo "
\n"; + #### END CREATE NEW GROUP RECORD IN VTIGER + } + $i++; + } +### END Group export +########################## + + + +########################## +### BEGIN User export +$i=0; +while ($i < $VD_users_ct) + { + $user_name = $user[$i]; + $VUgroup = $user_group[$i]; + $user_password = $pass[$i]; + $last_name = $full_name[$i]; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level[$i] >= 7) {$roleid = 'H4';} + if ($user_level[$i] >= 8) {$roleid = 'H3';} + if ($user_level[$i] >= 9) {$roleid = 'H2';} + if ($user_level[$i] >= 9) {$is_admin = 'on';} + if (ereg('N',$active[$i])) {$status = 'Inactive';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + $i++; + + $j=0; + $all_VICIDIAL_groups_SQL=''; + while ($j < $VD_groups_ct) + { + if ( (eregi("$UGid[$j]",$VUgroup)) and ( (strlen($UGid[$j]))==(strlen($VUgroup)) ) ) + { + $groupid = $VTugID[$j]; + $VTgroup_name = $UGid[$j]; + $VTgroup_description = $UGname[$j]; + } + else + {$all_VICIDIAL_groups_SQL .= "'$VTugID[$j]',";} + $j++; + } + $all_VICIDIAL_groups_SQL = preg_replace("/.$/",'',$all_VICIDIAL_groups_SQL); + + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN($all_VICIDIAL_groups_SQL);"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + else + {$stmtC='';} + + echo "$user_name: $userid
\n"; + echo "$stmtA
\n"; + echo "$stmtB
\n"; + echo "$stmtC
\n"; + echo "$stmtD
\n"; + echo "
\n"; + + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "$user_name:
\n"; + echo "$stmtA
\n"; + echo "$stmtB
\n"; + echo "$stmtC
\n"; + echo "$stmtD
\n"; + echo "
\n"; + #### END CREATE NEW USER RECORD IN VTIGER + } + + + } +### END User export +########################## + + + + + +echo "DONE\n"; + +exit; + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome.php new file mode 100644 index 00000000..9bf59ccc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome.php @@ -0,0 +1,26 @@ + LICENSE: AGPLv2 +# + +echo "ViciDial Bienvenido\n"; +echo "\n"; +echo "\n"; +echo "




"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Recepción
 
Agent Login
 
Reloj de tiempo
 
Administration
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome_demo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome_demo.php new file mode 100644 index 00000000..238cf5cf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome_demo.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



"; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
 
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Agent Login"; +echo "
"; +echo "   Spanish Agent Login"; +echo "
"; +echo "   German Agent Login"; +echo "
"; +echo "   Italian Agent Login"; +echo "
"; +echo "   Greek Agent Login"; +echo "
"; +echo "   French Agent Login"; +echo "
"; +echo "   Brazillian Portuguese Agent Login"; +echo "
"; +echo "   Portuguese Agent Login"; +echo "
"; +echo "   Polish Agent Login"; +echo "
"; +echo "   Slovak Agent Login"; +echo "
"; +echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; +echo "
\n"; + +echo "
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Administration"; +echo "
"; +echo "   Spanish Administration"; +echo "
"; +echo "   German Administration"; +echo "
"; +echo "   Italian Administration"; +echo "
"; +echo "   Greek Administration"; +echo "
"; +echo "   French Administration"; +echo "
\n"; +echo "
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome_languages.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome_languages.php new file mode 100644 index 00000000..d53707a9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_es/welcome_languages.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



"; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
 
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Agent Login"; +echo "
"; +echo "   Spanish Agent Login"; +echo "
"; +echo "   German Agent Login"; +echo "
"; +echo "   Italian Agent Login"; +echo "
"; +echo "   Greek Agent Login"; +echo "
"; +echo "   French Agent Login"; +echo "
"; +echo "   Brazillian Portuguese Agent Login"; +echo "
"; +echo "   Portuguese Agent Login"; +echo "
"; +echo "   Polish Agent Login"; +echo "
"; +echo "   Slovak Agent Login"; +echo "
"; +echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; +echo "
\n"; + +echo "
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Administration"; +echo "
"; +echo "   Spanish Administration"; +echo "
"; +echo "   German Administration"; +echo "
"; +echo "   Italian Administration"; +echo "
"; +echo "   Greek Administration"; +echo "
"; +echo "   French Administration"; +echo "
\n"; +echo "
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSER_service_level.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSER_service_level.php new file mode 100644 index 00000000..9538136d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSER_service_level.php @@ -0,0 +1,959 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80509-0943 - First build +# 80510-1500 - Added fixed scale hold time graph +# 80519-0413 - rewrote time intervals code and stats gathering code +# 80528-2320 - fixed small calculation bugs and display bugs, added more shifts +# 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Service Level Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo " to \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFIER | RAPPORTS \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "S'IL VOUS PLAÎT CHOISIR UN GROUPE EN DATE ET-dessus et cliquez sur Soumettre\n";
+	}
+
+else
+{
+### FOR SHIFTS IT IS BEST TO STICK TO 15-MINUTE INCREMENTS FOR START TIMES ###
+
+if ($shift == 'AM') 
+	{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}   
+	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+	}
+if ($shift == 'PM') 
+	{
+#	$time_BEGIN=$PM_shift_BEGIN;
+#	$time_END=$PM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+#	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'DAYTIME') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '10AM-6PM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "10:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:59:59";}
+	}
+if ($shift == '9AM-1AM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "09:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '845-1745') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:44:59";}
+	}
+if ($shift == '1745-100') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "17:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+$SQdate_ARY =	explode(' ',$query_date_BEGIN);
+$SQday_ARY =	explode('-',$SQdate_ARY[0]);
+$SQtime_ARY =	explode(':',$SQdate_ARY[1]);
+$EQdate_ARY =	explode(' ',$query_date_END);
+$EQday_ARY =	explode('-',$EQdate_ARY[0]);
+$EQtime_ARY =	explode(':',$EQdate_ARY[1]);
+
+$SQepochDAY = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$SQepoch = mktime($SQtime_ARY[0], $SQtime_ARY[1], $SQtime_ARY[2], $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime($EQtime_ARY[0], $EQtime_ARY[1], $EQtime_ARY[2], $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+$SQsec = ( ($SQtime_ARY[0] * 3600) + ($SQtime_ARY[1] * 60) + ($SQtime_ARY[2] * 1) );
+$EQsec = ( ($EQtime_ARY[0] * 3600) + ($EQtime_ARY[1] * 60) + ($EQtime_ARY[2] * 1) );
+
+$DURATIONsec = ($EQepoch - $SQepoch);
+$DURATIONday = intval( ($DURATIONsec / 86400) + 1 );
+
+if ( ($EQsec < $SQsec) and ($DURATIONday < 1) )
+	{
+	$EQepoch = ($SQepochDAY + ($EQsec + 86400) );
+	$query_date_END = date("Y-m-d H:i:s", $EQepoch);
+	$DURATIONday++;
+	}
+
+echo "Inbound Service Level Report                      $NOW_TIME\n";
+echo "\n";
+echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
+#echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	$dSQepoch = ($SQepoch + ($d * 86400) );
+	$dEQepoch = ($SQepochDAY + ($EQsec + ($d * 86400) ) );
+
+	if ($EQsec < $SQsec)
+		{
+		$dEQepoch = ($dEQepoch + 86400);
+		}
+
+	$daySTART[$d] = date("Y-m-d H:i:s", $dSQepoch);
+	$dayEND[$d] = date("Y-m-d H:i:s", $dEQepoch);
+
+	$d++;
+	}
+
+##########################################################################
+#########  CALCULATE ALL OF THE 15-MINUTE PERIODS NEEDED FOR ALL DAYS ####
+
+### BUILD HOUR:MIN DISPLAY ARRAY ###
+$i=0;
+$h=4;
+$j=0;
+$Zhour=1;
+$active_time=0;
+$hour =		($SQtime_ARY[0] - 1);
+$startSEC = ($SQsec - 900);
+$endSEC =	($SQsec - 1);
+if ($SQtime_ARY[1] > 14) 
+	{
+	$h=1;
+	$hour++;
+	if ($hour < 10) {$hour = "0$hour";}
+	}
+if ($SQtime_ARY[1] > 29) {$h=2;}
+if ($SQtime_ARY[1] > 44) {$h=3;}
+while ($i < 96)
+	{
+	$startSEC = ($startSEC + 900);
+	$endSEC = ($endSEC + 900);
+	$time = '      ';
+	if ($h >= 4)
+		{
+		$hour++;
+		if ($Zhour == '00') 
+			{
+			$startSEC=0;
+			$endSEC=899;
+			}
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$Stime="$hour:00";
+		$Etime="$hour:15";
+		$time = "+$Stime-$Etime+";
+		}
+	if ($h == 1)
+		{
+		$Stime="$hour:15";
+		$Etime="$hour:30";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 2)
+		{
+		$Stime="$hour:30";
+		$Etime="$hour:45";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 3)
+		{
+		$Zhour=$hour;
+		$Zhour++;
+		if ($Zhour < 10) {$Zhour = "0$Zhour";}
+		if ($Zhour == 24) {$Zhour = "00";}
+		$Stime="$hour:45";
+		$Etime="$Zhour:00";
+		$time = " $Stime-$Etime ";
+		if ($Zhour == '00') 
+			{$hour = ($Zhour - 1);}
+		}
+
+	if ( ( ($startSEC >= $SQsec) and ($endSEC <= $EQsec) and ($EQsec > $SQsec) ) or 
+		( ($startSEC >= $SQsec) and ($EQsec < $SQsec) ) or 
+		( ($endSEC <= $EQsec) and ($EQsec < $SQsec) ) )
+		{
+		$HMdisplay[$j] =	$time;
+		$HMstart[$j] =		$Stime;
+		$HMend[$j] =		$Etime;
+		$HMSepoch[$j] =		$startSEC;
+		$HMEepoch[$j] =		$endSEC;
+
+		$j++;
+		}
+
+	$h++;
+	$i++;
+	}
+
+$TOTintervals = $j;
+
+
+### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
+$stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$records_to_grab = mysql_num_rows($rslt);
+$i=0;
+while ($i < $records_to_grab)
+	{
+	$row=mysql_fetch_row($rslt);
+	$qs[$i] = $row[0];
+	$dt[$i] = 0;
+	$ut[$i] = ($row[1] - $SQepochDAY);
+	while($ut[$i] >= 86400) 
+		{
+		$ut[$i] = ($ut[$i] - 86400);
+		$dt[$i]++;
+		}
+	if ( ($ut[$i] <= $EQsec) and ($EQsec < $SQsec) )
+		{
+		$dt[$i] = ($dt[$i] - 1);
+		}
+	$ls[$i] = $row[2];
+	$st[$i] = $row[3];
+
+#	echo "$qs[$i] $dt[$i] $ut[$i] $ls[$i] $st[$i]\n";
+
+	$i++;
+	}
+
+### PARSE THROUGH ALL RECORDS AND GENERATE STATS ###
+$MT[0]='0';
+$totCALLS=0;
+$totDROPS=0;
+$totQUEUE=0;
+$totCALLSsec=0;
+$totDROPSsec=0;
+$totQUEUEsec=0;
+$totCALLSmax=0;
+$totDROPSmax=0;
+$totQUEUEmax=0;
+$totCALLSdate=$MT;
+$totDROPSdate=$MT;
+$totQUEUEdate=$MT;
+$qrtCALLS=$MT;
+$qrtDROPS=$MT;
+$qrtQUEUE=$MT;
+$qrtCALLSsec=$MT;
+$qrtDROPSsec=$MT;
+$qrtQUEUEsec=$MT;
+$qrtCALLSavg=$MT;
+$qrtDROPSavg=$MT;
+$qrtQUEUEavg=$MT;
+$qrtCALLSmax=$MT;
+$qrtDROPSmax=$MT;
+$qrtQUEUEmax=$MT;
+$j=0;
+while ($j < $TOTintervals)
+	{
+	$jd__0[$j]=0; $jd_20[$j]=0; $jd_40[$j]=0; $jd_60[$j]=0; $jd_80[$j]=0; $jd100[$j]=0; $jd120[$j]=0; $jd121[$j]=0;
+	$Phd__0[$j]=0; $Phd_20[$j]=0; $Phd_40[$j]=0; $Phd_60[$j]=0; $Phd_80[$j]=0; $Phd100[$j]=0; $Phd120[$j]=0; $Phd121[$j]=0;
+	$qrtCALLS[$j]=0; $qrtCALLSsec[$j]=0; $qrtCALLSmax[$j]=0;
+	$qrtDROPS[$j]=0; $qrtDROPSsec[$j]=0; $qrtDROPSmax[$j]=0;
+	$qrtQUEUE[$j]=0; $qrtQUEUEsec[$j]=0; $qrtQUEUEmax[$j]=0;
+	$i=0;
+	while ($i < $records_to_grab)
+		{
+		if ( ($ut[$i] >= $HMSepoch[$j]) and ($ut[$i] <= $HMEepoch[$j]) )
+			{
+			$totCALLS++;
+			$totCALLSsec = ($totCALLSsec + $ls[$i]);
+			$totCALLSsecDATE[$dtt] = ($totCALLSsecDATE[$dtt] + $ls[$i]);
+			$qrtCALLS[$j]++;
+			$qrtCALLSsec[$j] = ($qrtCALLSsec[$j] + $ls[$i]);
+			$dtt = $dt[$i];
+			$totCALLSdate[$dtt]++;
+			if ($totCALLSmax < $ls[$i]) {$totCALLSmax = $ls[$i];}
+			if ($qrtCALLSmax[$j] < $ls[$i]) {$qrtCALLSmax[$j] = $ls[$i];}
+			if (ereg('DROP',$st[$i])) 
+				{
+				$totDROPS++;
+				$totDROPSsec = ($totDROPSsec + $ls[$i]);
+				$totDROPSsecDATE[$dtt] = ($totDROPSsecDATE[$dtt] + $ls[$i]);
+				$qrtDROPS[$j]++;
+				$qrtDROPSsec[$j] = ($qrtDROPSsec[$j] + $ls[$i]);
+				$totDROPSdate[$dtt]++;
+				if ($totDROPSmax < $ls[$i]) {$totDROPSmax = $ls[$i];}
+				if ($qrtDROPSmax[$j] < $ls[$i]) {$qrtDROPSmax[$j] = $ls[$i];}
+				}
+			if ($qs[$i] > 0) 
+				{
+				$totQUEUE++;
+				$totQUEUEsec = ($totQUEUEsec + $qs[$i]);
+				$totQUEUEsecDATE[$dtt] = ($totQUEUEsecDATE[$dtt] + $qs[$i]);
+				$qrtQUEUE[$j]++;
+				$qrtQUEUEsec[$j] = ($qrtQUEUEsec[$j] + $qs[$i]);
+				$totQUEUEdate[$dtt]++;
+				if ($totQUEUEmax < $qs[$i]) {$totQUEUEmax = $qs[$i];}
+				if ($qrtQUEUEmax[$j] < $qs[$i]) {$qrtQUEUEmax[$j] = $qs[$i];}
+				}
+
+			if ($qs[$i] == 0) {$hd__0[$j]++;}
+			if ( ($qs[$i] > 0) and ($qs[$i] <= 20) ) {$hd_20[$j]++;}
+			if ( ($qs[$i] > 20) and ($qs[$i] <= 40) ) {$hd_40[$j]++;}
+			if ( ($qs[$i] > 40) and ($qs[$i] <= 60) ) {$hd_60[$j]++;}
+			if ( ($qs[$i] > 60) and ($qs[$i] <= 80) ) {$hd_80[$j]++;}
+			if ( ($qs[$i] > 80) and ($qs[$i] <= 100) ) {$hd100[$j]++;}
+			if ( ($qs[$i] > 100) and ($qs[$i] <= 120) ) {$hd120[$j]++;}
+			if ($qs[$i] > 120) {$hd121[$j]++;}
+
+			}
+		
+		$i++;
+		}
+
+	$j++;
+	}
+
+
+
+
+###################################################
+### TOTALS SUMMARY SECTION ###
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                           |        |        |        |        |        |  AVG   |  AVG   |        |  TOTAL   |  AVG   |\n";
+echo "| SHIFT                                     |        |        |  AVG   |        |        | HOLD(s)| HOLD(s)|        | CALLTIME |CALLTIME|\n";
+echo "| DATE-TIME RANGE                           | DROPS  | DROP % | DROP(s)| HOLD   | HOLD % |  HOLD  | TOTAL  | CALLS  | MIN:SEC  |SECONDS |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	if ($totDROPSdate[$d] < 1) {$totDROPSdate[$d]=0;}
+	if ($totQUEUEdate[$d] < 1) {$totQUEUEdate[$d]=0;}
+	if ($totCALLSdate[$d] < 1) {$totCALLSdate[$d]=0;}
+
+	if ($totDROPSdate[$d] > 0)
+		{$totDROPSpctDATE[$d] = ( ($totDROPSdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totDROPSpctDATE[$d] = 0;}
+	$totDROPSpctDATE[$d] = round($totDROPSpctDATE[$d], 2);
+	if ($totQUEUEdate[$d] > 0)
+		{$totQUEUEpctDATE[$d] = ( ($totQUEUEdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totQUEUEpctDATE[$d] = 0;}
+	$totQUEUEpctDATE[$d] = round($totQUEUEpctDATE[$d], 2);
+
+	if ($totDROPSsecDATE[$d] > 0)
+		{$totDROPSavgDATE[$d] = ($totDROPSsecDATE[$d] / $totDROPSdate[$d]);}
+	else {$totDROPSavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEavgDATE[$d] = ($totQUEUEsecDATE[$d] / $totQUEUEdate[$d]);}
+	else {$totQUEUEavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEtotDATE[$d] = ($totQUEUEsecDATE[$d] / $totCALLSdate[$d]);}
+	else {$totQUEUEtotDATE[$d] = 0;}
+
+	if ($totCALLSsecDATE[$d] > 0)
+		{
+		$totCALLSavgDATE[$d] = ($totCALLSsecDATE[$d] / $totCALLSdate[$d]);
+
+		$totTIME_M = ($totCALLSsecDATE[$d] / 60);
+		$totTIME_M_int = round($totTIME_M, 2);
+		$totTIME_M_int = intval("$totTIME_M");
+		$totTIME_S = ($totTIME_M - $totTIME_M_int);
+		$totTIME_S = ($totTIME_S * 60);
+		$totTIME_S = round($totTIME_S, 0);
+		if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+		$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+		$totTIME_MS =		sprintf("%8s", $totTIME_MS);
+		}
+	else 
+		{
+		$totCALLSavgDATE[$d] = 0;
+		$totTIME_MS='        ';
+		}
+
+	$totCALLSavgDATE[$d] =	sprintf("%6.0f", $totCALLSavgDATE[$d]);
+	$totDROPSavgDATE[$d] =	sprintf("%7.2f", $totDROPSavgDATE[$d]);
+	$totQUEUEavgDATE[$d] =	sprintf("%7.2f", $totQUEUEavgDATE[$d]);
+	$totQUEUEtotDATE[$d] =	sprintf("%7.2f", $totQUEUEtotDATE[$d]);
+	$totDROPSpctDATE[$d] =	sprintf("%6.2f", $totDROPSpctDATE[$d]);
+	$totQUEUEpctDATE[$d] =	sprintf("%6.2f", $totQUEUEpctDATE[$d]);
+	$totDROPSdate[$d] =	sprintf("%6s", $totDROPSdate[$d]);
+	$totQUEUEdate[$d] =	sprintf("%6s", $totQUEUEdate[$d]);
+	$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
+
+	echo "| $daySTART[$d] - $dayEND[$d] | $totDROPSdate[$d] | $totDROPSpctDATE[$d]%|$totDROPSavgDATE[$d] | $totQUEUEdate[$d] | $totQUEUEpctDATE[$d]%|$totQUEUEavgDATE[$d] |$totQUEUEtotDATE[$d] | $totCALLSdate[$d] | $totTIME_MS | $totCALLSavgDATE[$d] |\n";
+	$d++;
+	}
+
+	if ($totDROPS > 0)
+		{$totDROPSpct = ( ($totDROPS / $totCALLS) * 100);}
+	else {$totDROPSpct = 0;}
+	$totDROPSpct = round($totDROPSpct, 2);
+	if ($totQUEUE > 0)
+		{$totQUEUEpct = ( ($totQUEUE / $totCALLS) * 100);}
+	else {$totQUEUEpct = 0;}
+	$totQUEUEpct = round($totQUEUEpct, 2);
+
+	if ($totDROPSsec > 0)
+		{$totDROPSavg = ($totDROPSsec / $totDROPS);}
+	else {$totDROPSavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEavg = ($totQUEUEsec / $totQUEUE);}
+	else {$totQUEUEavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEtot = ($totQUEUEsec / $totCALLS);}
+	else {$totQUEUEtot = 0;}
+
+if ($totCALLSsec > 0)
+	{
+	$totCALLSavg = ($totCALLSsec / $totCALLS);
+
+	$totTIME_M = ($totCALLSsec / 60);
+	$totTIME_M_int = round($totTIME_M, 2);
+	$totTIME_M_int = intval("$totTIME_M");
+	$totTIME_S = ($totTIME_M - $totTIME_M_int);
+	$totTIME_S = ($totTIME_S * 60);
+	$totTIME_S = round($totTIME_S, 0);
+	if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+	$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+	$totTIME_MS =		sprintf("%9s", $totTIME_MS);
+	}
+else 
+	{
+	$totCALLSavg = 0;
+	$totTIME_MS='         ';
+	}
+
+
+	$FtotCALLSavg =	sprintf("%6.0f", $totCALLSavg);
+	$FtotDROPSavg =	sprintf("%7.2f", $totDROPSavg);
+	$FtotQUEUEavg =	sprintf("%7.2f", $totQUEUEavg);
+	$FtotQUEUEtot =	sprintf("%7.2f", $totQUEUEtot);
+	$FtotDROPSpct =	sprintf("%6.2f", $totDROPSpct);
+	$FtotQUEUEpct =	sprintf("%6.2f", $totQUEUEpct);
+	$FtotDROPS =	sprintf("%6s", $totDROPS);
+	$FtotQUEUE =	sprintf("%6s", $totQUEUE);
+	$FtotCALLS =	sprintf("%6s", $totCALLS);
+
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                    TOTALS | $FtotDROPS | $FtotDROPSpct%|$FtotDROPSavg | $FtotQUEUE | $FtotQUEUEpct%|$FtotQUEUEavg |$FtotQUEUEtot | $FtotCALLS |$totTIME_MS | $FtotCALLSavg |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+
+	## FORMAT OUTPUT ##
+	$i=0;
+	$hi_hour_count=0;
+	$hi_hold_count=0;
+
+	while ($i < $TOTintervals)
+		{
+
+		if ($qrtCALLS[$i] > 0)
+			{$qrtCALLSavg[$i] = ($qrtCALLSsec[$i] / $qrtCALLS[$i]);}
+		else {$qrtCALLSavg[$i] = 0;}
+		if ($qrtDROPS[$i] > 0)
+			{$qrtDROPSavg[$i] = ($qrtDROPSsec[$i] / $qrtDROPS[$i]);}
+		else {$qrtDROPSavg[$i] = 0;}
+		if ($qrtQUEUE[$i] > 0)
+			{$qrtQUEUEavg[$i] = ($qrtQUEUEsec[$i] / $qrtQUEUE[$i]);}
+		else {$qrtQUEUEavg[$i] = 0;}
+
+		if ($qrtCALLS[$i] > $hi_hour_count) {$hi_hour_count = $qrtCALLS[$i];}
+		if ($qrtQUEUEavg[$i] > $hi_hold_count) {$hi_hold_count = $qrtQUEUEavg[$i];}
+
+		$qrtQUEUEavg[$i] = round($qrtQUEUEavg[$i], 0);
+		if (strlen($qrtQUEUEavg[$i])<1) {$qrtQUEUEavg[$i]=0;}
+		$qrtQUEUEmax[$i] = round($qrtQUEUEmax[$i], 0);
+		if (strlen($qrtQUEUEmax[$i])<1) {$qrtQUEUEmax[$i]=0;}
+
+		$i++;
+		}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{$hour_multiplier = (20 / $hi_hour_count);}
+if ($hi_hold_count < 1)
+	{$hold_multiplier = 0;}
+else
+	{$hold_multiplier = (20 / $hi_hold_count);}
+
+
+
+
+###################################################################
+#########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
+
+echo "\n";
+echo "---------- HOLD TIME, CALL AND DROP STATS\n";
+
+echo "";
+
+echo "";
+echo "\n";
+echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
+
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hour_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hour_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hour_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$call_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+$k=1;
+$Mk=0;
+$hold_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hold_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hold_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hold_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$hold_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$hold_scale .= "$scale_num";
+		}
+	else
+		{
+		$hold_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "|    TIME     |  AVG HOLD TIME (sec)  | (in seconds)  |  |    CALLS HANDLED      |       |       |\n";
+echo "| 15 MIN INT  |$hold_scale| AVG   | MAX   |  |$call_scale| DROPS | TOTAL |\n";
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+$i=0;
+while ($i < $TOTintervals)
+	{
+	$char_counter=0;
+	### BEGIN HOLD TIME TOTALS GRAPH ###
+		$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count > 0) {$no_lines_yet=0;}
+
+	$Gavg_hold = $qrtQUEUEavg[$i];
+	if ($Gavg_hold < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$TOT_lines++;
+			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+			echo "|$HMdisplay[$i]|";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+			}
+		}
+	else
+		{
+		$TOT_lines++;
+		$no_lines_yet=0;
+		$Xavg_hold = ($Gavg_hold * $hold_multiplier);
+		$Yavg_hold = (19 - $Xavg_hold);
+
+		$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+		$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+
+		echo "|$HMdisplay[$i]|";
+		$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
+		if ($char_counter >= 22) {echo "H";   $char_counter++;}
+		else {echo "*H";   $char_counter++;   $char_counter++;}
+		$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
+			while ($char_counter <= 22) {echo " ";   $char_counter++;}
+		echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+		}
+	### END HOLD TIME TOTALS GRAPH ###
+
+	$char_counter=0;
+ 	### BEGIN CALLS TOTALS GRAPH ###
+	$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			echo "  |";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtCALLS[$i] |     0 |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (19 - $Xhour_count);
+
+		$Gdrop_count = $qrtDROPS[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			if ($char_counter > 21) {echo "C";   $char_counter++;}
+			else {echo "*C";   $char_counter++;   $char_counter++;}
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "|     0 | $qrtCALLS[$i] |\n";
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "C";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "| $qrtDROPS[$i] | $qrtCALLS[$i] |\n";
+			}
+		}
+	### END CALLS TOTALS GRAPH ###
+
+	$i++;
+	}
+
+
+if ($totQUEUEsec > 0)
+	{$totQUEUEavgRAW = ($totCALLS / $totQUEUEsec);}
+else
+	{$totQUEUEavgRAW = 0;}
+$totQUEUEavg =	sprintf("%5s", $totQUEUEavg); 
+	while (strlen($totQUEUEavg)>5) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+$totQUEUEmax =	sprintf("%5s", $totQUEUEmax);
+	while (strlen($totQUEUEmax)>5) {$totQUEUEmax = ereg_replace(".$",'',$totQUEUEmax);}
+$totDROPS =	sprintf("%5s", $totDROPS);
+$totCALLS =	sprintf("%5s", $totCALLS);
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "| TOTAL                               | $totQUEUEavg | $totQUEUEmax |  |                       | $totDROPS | $totCALLS |\n";
+echo "+-------------------------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS, 15-MINUTE INCREMENT
+
+
+echo "\n";
+echo "---------- CALL TIME HOLD RÉPARTITION EN SECONDES\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "|    TIME     |       |  % OF CALLS GROUPED BY HOLD TIME (SEC)  | |   AVERAGE TIME BEFORE REPONSE (SEC)    |\n";
+echo "| 15 MIN INT  | CALLS |    0   20   40   60   80  100  120 120+ | | AVG  |0   20   40   60   80  100  120 |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+
+$APhd__0=0; $APhd_20=0; $APhd_40=0; $APhd_60=0; $APhd_80=0; $APhd100=0; $APhd120=0; $APhd121=0;
+$h=0;
+while ($h < $TOTintervals)
+	{
+	$Aavg_hold[$h] = $qrtQUEUEavg[$h]; 
+	if ($hd__0[$h] > 0) {$Phd__0[$h] = round( ( ($hd__0[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd__0[$h]=0;}
+	if ($hd_20[$h] > 0) {$Phd_20[$h] = round( ( ($hd_20[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_20[$h]=0;}
+	if ($hd_40[$h] > 0) {$Phd_40[$h] = round( ( ($hd_40[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_40[$h]=0;}
+	if ($hd_60[$h] > 0) {$Phd_60[$h] = round( ( ($hd_60[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_60[$h]=0;}
+	if ($hd_80[$h] > 0) {$Phd_80[$h] = round( ( ($hd_80[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_80[$h]=0;}
+	if ($hd100[$h] > 0) {$Phd100[$h] = round( ( ($hd100[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd100[$h]=0;}
+	if ($hd120[$h] > 0) {$Phd120[$h] = round( ( ($hd120[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd120[$h]=0;}
+	if ($hd121[$h] > 0) {$Phd121[$h] = round( ( ($hd121[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd121[$h]=0;}
+		while (strlen($qrtQUEUEavg[$h])>4) {$qrtQUEUEavg[$h] = ereg_replace(".$",'',$qrtQUEUEavg[$h]);}
+	$hd__0[$h] =	sprintf("%4s", $hd__0[$h]);
+	$hd_20[$h] =	sprintf("%4s", $hd_20[$h]);
+	$hd_40[$h] =	sprintf("%4s", $hd_40[$h]);
+	$hd_60[$h] =	sprintf("%4s", $hd_60[$h]);
+	$hd_80[$h] =	sprintf("%4s", $hd_80[$h]);
+	$hd100[$h] =	sprintf("%4s", $hd100[$h]);
+	$hd120[$h] =	sprintf("%4s", $hd120[$h]);
+	$hd121[$h] =	sprintf("%4s", $hd121[$h]);
+	$Phd__0[$h] =	sprintf("%4s", $Phd__0[$h]);
+	$Phd_20[$h] =	sprintf("%4s", $Phd_20[$h]);
+	$Phd_40[$h] =	sprintf("%4s", $Phd_40[$h]);
+	$Phd_60[$h] =	sprintf("%4s", $Phd_60[$h]);
+	$Phd_80[$h] =	sprintf("%4s", $Phd_80[$h]);
+	$Phd100[$h] =	sprintf("%4s", $Phd100[$h]);
+	$Phd120[$h] =	sprintf("%4s", $Phd120[$h]);
+	$Phd121[$h] =	sprintf("%4s", $Phd121[$h]);
+
+	$ALLcalls = ($ALLcalls + $qrtCALLS[$h]);
+	$ALLhd__0 = ($ALLhd__0 + $hd__0[$h]);
+	$ALLhd_20 = ($ALLhd_20 + $hd_20[$h]);
+	$ALLhd_40 = ($ALLhd_40 + $hd_40[$h]);
+	$ALLhd_60 = ($ALLhd_60 + $hd_60[$h]);
+	$ALLhd_80 = ($ALLhd_80 + $hd_80[$h]);
+	$ALLhd100 = ($ALLhd100 + $hd100[$h]);
+	$ALLhd120 = ($ALLhd120 + $hd120[$h]);
+	$ALLhd121 = ($ALLhd121 + $hd121[$h]);
+
+	if ( ($Aavg_hold[$h] < 1) or ($Aavg_hold[$h] > 119) )
+		{
+		if ($Aavg_hold[$h] < 1)		{$qrtQUEUEavg_scale[$h] = '                                ';}
+		if ($Aavg_hold[$h] > 119)	{$qrtQUEUEavg_scale[$h] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';}
+		}
+	else
+		{
+		$qrtQUEUEavg_val[$h] = ( (32 / 120) * $Aavg_hold[$h] );
+		$k=0;
+		$blank=0;
+		while ($k < 32)
+			{
+			if ($k <= $qrtQUEUEavg_val[$h]) 
+				{
+				if ($k < 1) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= 'x';
+				}
+			else 
+				{
+				if ( ($k > 0) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= ' ';
+				$blank++;
+				}
+			$k++;
+			if ( ($k > 31) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+			}
+		}
+
+	$Aavg_hold[$h] = sprintf("%4s", $Aavg_hold[$h]);
+	while (strlen($Aavg_hold[$h])>4) {$Aavg_hold[$h] = ereg_replace("^.",'',$Aavg_hold[$h]);}
+
+	echo "|$HMdisplay[$h]| $qrtCALLS[$h] | $Phd__0[$h] $Phd_20[$h] $Phd_40[$h] $Phd_60[$h] $Phd_80[$h] $Phd100[$h] $Phd120[$h] $Phd121[$h] | | $Aavg_hold[$h] |$qrtQUEUEavg_scale[$h]|\n";
+	
+	$h++;
+	}
+
+if ($ALLhd__0 > 0) {$APhd__0 = round( ( ($ALLhd__0 / $ALLcalls) * 100) );}
+if ($ALLhd_20 > 0) {$APhd_20 = round( ( ($ALLhd_20 / $ALLcalls) * 100) );}
+if ($ALLhd_40 > 0) {$APhd_40 = round( ( ($ALLhd_40 / $ALLcalls) * 100) );}
+if ($ALLhd_60 > 0) {$APhd_60 = round( ( ($ALLhd_60 / $ALLcalls) * 100) );}
+if ($ALLhd_80 > 0) {$APhd_80 = round( ( ($ALLhd_80 / $ALLcalls) * 100) );}
+if ($ALLhd100 > 0) {$APhd100 = round( ( ($ALLhd100 / $ALLcalls) * 100) );}
+if ($ALLhd120 > 0) {$APhd120 = round( ( ($ALLhd120 / $ALLcalls) * 100) );}
+if ($ALLhd121 > 0) {$APhd121 = round( ( ($ALLhd121 / $ALLcalls) * 100) );}
+
+$ALLcalls =	sprintf("%5s", $ALLcalls);
+$APhd__0 =	sprintf("%4s", $APhd__0);
+$APhd_20 =	sprintf("%4s", $APhd_20);
+$APhd_40 =	sprintf("%4s", $APhd_40);
+$APhd_60 =	sprintf("%4s", $APhd_60);
+$APhd_80 =	sprintf("%4s", $APhd_80);
+$APhd100 =	sprintf("%4s", $APhd100);
+$APhd120 =	sprintf("%4s", $APhd120);
+$APhd121 =	sprintf("%4s", $APhd121);
+
+	while (strlen($totQUEUEavg)>4) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "| TOTAL       | $ALLcalls | $APhd__0 $APhd_20 $APhd_40 $APhd_60 $APhd_80 $APhd100 $APhd120 $APhd121 | | $totQUEUEavg |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+\n";
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSERstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSERstats.php new file mode 100644 index 00000000..40c808d6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSERstats.php @@ -0,0 +1,1504 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1714 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 60905-1326 - Added queue time stats +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71025-0021 - Added status breakdown +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80709-0331 - Added time stats to call statuses +# 80722-2149 - Added Status Category stats +# 81015-0705 - Added IVR calls count +# 81024-0037 - Added multi-select inbound-groups +# 81105-2118 - Added Answered calls 15-minute breakdown +# 81109-2340 - Added custom indicators section +# 90116-1040 - Rewrite of the 15-minute sections to speed it up and allow multi-day calculations +# 90310-2037 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90801-0921 - Added in-group name to pulldown +# 91214-0955 - Added INITIAL QUEUE POSITION BREAKDOWN +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Date Range:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Groupes entrants: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "MODIFIER | "; +echo "RAPPORTS | "; +echo "IVR REPORT \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+{
+echo "\n\n";
+echo "S'IL VOUS PLAÎT CHOISIR UN GROUPE EN DATE ET-dessus et cliquez sur Soumettre\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "Inbound Call Stats: $group_string          $NOW_TIME\n";
+
+
+
+
+
+
+if ($group_ct > 1)
+	{
+	echo "\n";
+	echo "---------- MULTI-GROUP BREAKDOWN:\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+	echo "| IN-GROUP             | CALLS   | DROPS   | DROP %  | IVR     |\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	$i=0;
+	while($i < $group_ct)
+		{
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='$group[$i]' and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowx=mysql_fetch_row($rslt);
+
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowy=mysql_fetch_row($rslt);
+
+		$groupDISPLAY =	sprintf("%20s", $group[$i]);
+		$gTOTALcalls =	sprintf("%7s", $row[0]);
+		$gIVRcalls =	sprintf("%7s", $rowx[0]);
+		$gDROPcalls =	sprintf("%7s", $rowy[0]);
+		if ( ($gDROPcalls < 1) or ($gTOTALcalls < 1) )
+			{$gDROPpercent = '0';}
+		else
+			{
+			$gDROPpercent = (($gDROPcalls / $gTOTALcalls) * 100);
+			$gDROPpercent = round($gDROPpercent, 2);
+			}
+		$gDROPpercent =	sprintf("%6s", $gDROPpercent);
+
+		echo "| $groupDISPLAY | $gTOTALcalls | $gDROPcalls | $gDROPpercent% | $gIVRcalls |\n";
+		$i++;
+		}
+
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	}
+
+
+echo "\n";
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALS\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowy=mysql_fetch_row($rslt);
+
+$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) and comment_b='START';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowx=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$IVRcalls =	sprintf("%10s", $rowx[0]);
+$TOTALsec =		$row[1];
+if ( ($row[0] < 1) or ($TOTALsec < 1) )
+	{$average_call_seconds = '         0';}
+else
+	{
+	$average_call_seconds = ($TOTALsec / $row[0]);
+	$average_call_seconds = round($average_call_seconds, 0);
+	$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+	}
+$REPONSEEDcalls  =	sprintf("%10s", $rowy[0]);
+if ( ($REPONSEEDcalls < 1) or ($TOTALcalls < 1) )
+	{$REPONSEEDpercent = '0';}
+else
+	{
+	$REPONSEEDpercent = (($REPONSEEDcalls / $TOTALcalls) * 100);
+	$REPONSEEDpercent = round($REPONSEEDpercent, 0);
+	}
+if ( ($rowy[0] < 1) or ($REPONSEEDcalls < 1) )
+	{$average_answer_seconds = '         0';}
+else
+	{
+	$average_answer_seconds = ($rowy[1] / $rowy[0]);
+	$average_answer_seconds = round($average_answer_seconds, 2);
+	$average_answer_seconds =	sprintf("%10s", $average_answer_seconds);
+	}
+
+
+echo "Total des appels pris en Dans ce groupe:        $TOTALcalls\n";
+echo "Average Call Length for all Calls:            $average_call_seconds seconds\n";
+echo "Answered Calls:                               $REPONSEEDcalls  $REPONSEEDpercent%\n";
+echo "Average queue time for Answered Calls:        $average_answer_seconds seconds\n";
+echo "Calls taken into the IVR for this In-Groupe:   $IVRcalls\n";
+
+
+echo "\n";
+echo "---------- ABANDONNES\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+	{$DROPpercent = '0';}
+else
+	{
+	$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+	$DROPpercent = round($DROPpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{
+	$average_hold_seconds = '         0';
+	}
+else
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+if ( ($REPONSEEDcalls < 1) or ($DROPcalls < 1) )
+	{$DROP_REPONSEEDpercent = '0';}
+else
+	{
+	$DROP_REPONSEEDpercent = (($DROPcalls / $REPONSEEDcalls) * 100);
+	$DROP_REPONSEEDpercent = round($DROP_REPONSEEDpercent, 0);
+	}
+
+echo "Total des appels abandonnés: $DROPcalls  $DROPpercent%               drop/answered: $DROP_REPONSEEDpercent%\n";
+echo "Average hold time for DROP Calls:             $average_hold_seconds seconds\n";
+
+
+
+
+if (strlen($group_SQL)>3)
+	{
+	$stmt = "SELECT answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two from vicidial_inbound_groups where group_id IN($group_SQL) order by answer_sec_pct_rt_stat_one desc limit 1;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$Sanswer_sec_pct_rt_stat_one = $row[0];
+	$Sanswer_sec_pct_rt_stat_two = $row[1];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_one;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_one = $row[0];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_two;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_two = $row[0];
+
+	if ( ($REPONSEEDcalls > 0) and ($answer_sec_pct_rt_stat_one > 0) and ($answer_sec_pct_rt_stat_two > 0) )
+		{
+		$PCTanswer_sec_pct_rt_stat_one = (($answer_sec_pct_rt_stat_one / $REPONSEEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_one = round($PCTanswer_sec_pct_rt_stat_one, 0);
+		#$PCTanswer_sec_pct_rt_stat_one = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_one);
+		$PCTanswer_sec_pct_rt_stat_two = (($answer_sec_pct_rt_stat_two / $REPONSEEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_two = round($PCTanswer_sec_pct_rt_stat_two, 0);
+		#$PCTanswer_sec_pct_rt_stat_two = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_two);
+		}
+	}
+echo "\n";
+echo "---------- CUSTOM INDICATORS\n";
+echo "GDE (Answered/Total des appels pris in to this In-Group):  $REPONSEEDpercent%\n";
+echo "ACR (Dropped/Answered):                                $DROP_REPONSEEDpercent%\n";
+echo "TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):            $PCTanswer_sec_pct_rt_stat_one%\n";
+echo "TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):            $PCTanswer_sec_pct_rt_stat_two%\n";
+
+
+# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+$q=0;
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_campaign_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+
+##############################
+#########  CALL QUEUE STATS
+echo "\n";
+echo "---------- QUEUE STATS\n";
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and (queue_seconds > 0);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$QUEUEcalls =	sprintf("%10s", $row[0]);
+if ( ($QUEUEcalls < 1) or ($TOTALcalls < 1) )
+	{$QUEUEpercent = '0';}
+else
+	{
+	$QUEUEpercent = (($QUEUEcalls / $TOTALcalls) * 100);
+	$QUEUEpercent = round($QUEUEpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{$average_queue_seconds = '         0';}
+else
+	{
+	$average_queue_seconds = ($row[1] / $row[0]);
+	$average_queue_seconds = round($average_queue_seconds, 2);
+	$average_queue_seconds = sprintf("%10.2f", $average_queue_seconds);
+	}
+
+if ( ($TOTALcalls < 1) or ($row[1] < 1) )
+	{$average_total_queue_seconds = '         0';}
+else
+	{
+	$average_total_queue_seconds = ($row[1] / $TOTALcalls);
+	$average_total_queue_seconds = round($average_total_queue_seconds, 2);
+	$average_total_queue_seconds = sprintf("%10.2f", $average_total_queue_seconds);
+	}
+
+echo "Total Calls That entered Queue:               $QUEUEcalls  $QUEUEpercent%\n";
+echo "Average QUEUE Length for queue calls:         $average_queue_seconds seconds\n";
+echo "Average QUEUE Length across all calls:        $average_total_queue_seconds seconds\n";
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL TIME HOLD RÉPARTITION EN SECONDES\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ($row[1] == 0) {$hd_0 = ($hd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$hd_5 = ($hd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$hd10 = ($hd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$hd15 = ($hd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$hd20 = ($hd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$hd25 = ($hd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$hd30 = ($hd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$hd35 = ($hd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$hd40 = ($hd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$hd45 = ($hd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$hd50 = ($hd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$hd55 = ($hd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$hd60 = ($hd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$hd90 = ($hd90 + $row[0]);}
+	if ($row[1] > 90) {$hd99 = ($hd99 + $row[0]);}
+	$i++;
+	}
+
+$hd_0 =	sprintf("%5s", $hd_0);
+$hd_5 =	sprintf("%5s", $hd_5);
+$hd10 =	sprintf("%5s", $hd10);
+$hd15 =	sprintf("%5s", $hd15);
+$hd20 =	sprintf("%5s", $hd20);
+$hd25 =	sprintf("%5s", $hd25);
+$hd30 =	sprintf("%5s", $hd30);
+$hd35 =	sprintf("%5s", $hd35);
+$hd40 =	sprintf("%5s", $hd40);
+$hd45 =	sprintf("%5s", $hd45);
+$hd50 =	sprintf("%5s", $hd50);
+$hd55 =	sprintf("%5s", $hd55);
+$hd60 =	sprintf("%5s", $hd60);
+$hd90 =	sprintf("%5s", $hd90);
+$hd99 =	sprintf("%5s", $hd99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $hd_0 $hd_5 $hd10 $hd15 $hd20 $hd25 $hd30 $hd35 $hd40 $hd45 $hd50 $hd55 $hd60 $hd90 $hd99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  CALL DROP TIME BREAKDOWN IN SECONDS
+
+$BDdropCALLS = 0;
+
+echo "\n";
+echo "---------- CALL DROP TIME BREAKDOWN IN SECONDS\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status IN('DROP','XDROP') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDdropCALLS = ($BDdropCALLS + $row[0]);
+
+	if ($row[1] == 0) {$dd_0 = ($dd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$dd_5 = ($dd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$dd10 = ($dd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$dd15 = ($dd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$dd20 = ($dd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$dd25 = ($dd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$dd30 = ($dd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$dd35 = ($dd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$dd40 = ($dd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$dd45 = ($dd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$dd50 = ($dd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$dd55 = ($dd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$dd60 = ($dd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$dd90 = ($dd90 + $row[0]);}
+	if ($row[1] > 90) {$dd99 = ($dd99 + $row[0]);}
+	$i++;
+	}
+
+$dd_0 =	sprintf("%5s", $dd_0);
+$dd_5 =	sprintf("%5s", $dd_5);
+$dd10 =	sprintf("%5s", $dd10);
+$dd15 =	sprintf("%5s", $dd15);
+$dd20 =	sprintf("%5s", $dd20);
+$dd25 =	sprintf("%5s", $dd25);
+$dd30 =	sprintf("%5s", $dd30);
+$dd35 =	sprintf("%5s", $dd35);
+$dd40 =	sprintf("%5s", $dd40);
+$dd45 =	sprintf("%5s", $dd45);
+$dd50 =	sprintf("%5s", $dd50);
+$dd55 =	sprintf("%5s", $dd55);
+$dd60 =	sprintf("%5s", $dd60);
+$dd90 =	sprintf("%5s", $dd90);
+$dd99 =	sprintf("%5s", $dd99);
+
+$BDdropCALLS =		sprintf("%10s", $BDdropCALLS);
+
+echo "| $dd_0 $dd_5 $dd10 $dd15 $dd20 $dd25 $dd30 $dd35 $dd40 $dd45 $dd50 $dd55 $dd60 $dd90 $dd99 | $BDdropCALLS |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS
+
+$BDansweredCALLS = 0;
+
+echo "\n";
+echo "           CALL REPONSEED TIME AND PERCENT BREAKDOWN IN SECONDS\n";
+echo "          +-------------------------------------------------------------------------------------------+------------+\n";
+echo "          |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDansweredCALLS = ($BDansweredCALLS + $row[0]);
+	
+	### Get interval totals
+	if ($row[1] == 0) {$ad_0 = ($ad_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$ad_5 = ($ad_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$ad10 = ($ad10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$ad15 = ($ad15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$ad20 = ($ad20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$ad25 = ($ad25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$ad30 = ($ad30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$ad35 = ($ad35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$ad40 = ($ad40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$ad45 = ($ad45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$ad50 = ($ad50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$ad55 = ($ad55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$ad60 = ($ad60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$ad90 = ($ad90 + $row[0]);}
+	if ($row[1] > 90) {$ad99 = ($ad99 + $row[0]);}
+	$i++;
+	}
+
+### Calculate cumulative totals
+$Cad_0 =$ad_0;
+$Cad_5 =($Cad_0 + $ad_5);
+$Cad10 =($Cad_5 + $ad10);
+$Cad15 =($Cad10 + $ad15);
+$Cad20 =($Cad15 + $ad20);
+$Cad25 =($Cad20 + $ad25);
+$Cad30 =($Cad25 + $ad30);
+$Cad35 =($Cad30 + $ad35);
+$Cad40 =($Cad35 + $ad40);
+$Cad45 =($Cad40 + $ad45);
+$Cad50 =($Cad45 + $ad50);
+$Cad55 =($Cad50 + $ad55);
+$Cad60 =($Cad55 + $ad60);
+$Cad90 =($Cad60 + $ad90);
+$Cad99 =($Cad90 + $ad99);
+
+### Calculate interval percentages
+$pad_0=0; $pad_5=0; $pad10=0; $pad15=0; $pad20=0; $pad25=0; $pad30=0; $pad35=0; $pad40=0; $pad45=0; $pad50=0; $pad55=0; $pad60=0; $pad90=0; $pad99=0; 
+$pCad_0=0; $pCad_5=0; $pCad10=0; $pCad15=0; $pCad20=0; $pCad25=0; $pCad30=0; $pCad35=0; $pCad40=0; $pCad45=0; $pCad50=0; $pCad55=0; $pCad60=0; $pCad90=0; $pCad99=0; 
+if ( ($BDansweredCALLS > 0) and ($TOTALcalls > 0) )
+	{
+	if ($ad_0 > 0) {$pad_0 = (($ad_0 / $TOTALcalls) * 100);	$pad_0 = round($pad_0, 0);}
+	if ($ad_5 > 0) {$pad_5 = (($ad_5 / $TOTALcalls) * 100);	$pad_5 = round($pad_5, 0);}
+	if ($ad10 > 0) {$pad10 = (($ad10 / $TOTALcalls) * 100);	$pad10 = round($pad10, 0);}
+	if ($ad15 > 0) {$pad15 = (($ad15 / $TOTALcalls) * 100);	$pad15 = round($pad15, 0);}
+	if ($ad20 > 0) {$pad20 = (($ad20 / $TOTALcalls) * 100);	$pad20 = round($pad20, 0);}
+	if ($ad25 > 0) {$pad25 = (($ad25 / $TOTALcalls) * 100);	$pad25 = round($pad25, 0);}
+	if ($ad30 > 0) {$pad30 = (($ad30 / $TOTALcalls) * 100);	$pad30 = round($pad30, 0);}
+	if ($ad35 > 0) {$pad35 = (($ad35 / $TOTALcalls) * 100);	$pad35 = round($pad35, 0);}
+	if ($ad40 > 0) {$pad40 = (($ad40 / $TOTALcalls) * 100);	$pad40 = round($pad40, 0);}
+	if ($ad45 > 0) {$pad45 = (($ad45 / $TOTALcalls) * 100);	$pad45 = round($pad45, 0);}
+	if ($ad50 > 0) {$pad50 = (($ad50 / $TOTALcalls) * 100);	$pad50 = round($pad50, 0);}
+	if ($ad55 > 0) {$pad55 = (($ad55 / $TOTALcalls) * 100);	$pad55 = round($pad55, 0);}
+	if ($ad60 > 0) {$pad60 = (($ad60 / $TOTALcalls) * 100);	$pad60 = round($pad60, 0);}
+	if ($ad90 > 0) {$pad90 = (($ad90 / $TOTALcalls) * 100);	$pad90 = round($pad90, 0);}
+	if ($ad99 > 0) {$pad99 = (($ad99 / $TOTALcalls) * 100);	$pad99 = round($pad99, 0);}
+
+	if ($Cad_0 > 0) {$pCad_0 = (($Cad_0 / $TOTALcalls) * 100);	$pCad_0 = round($pCad_0, 0);}
+	if ($Cad_5 > 0) {$pCad_5 = (($Cad_5 / $TOTALcalls) * 100);	$pCad_5 = round($pCad_5, 0);}
+	if ($Cad10 > 0) {$pCad10 = (($Cad10 / $TOTALcalls) * 100);	$pCad10 = round($pCad10, 0);}
+	if ($Cad15 > 0) {$pCad15 = (($Cad15 / $TOTALcalls) * 100);	$pCad15 = round($pCad15, 0);}
+	if ($Cad20 > 0) {$pCad20 = (($Cad20 / $TOTALcalls) * 100);	$pCad20 = round($pCad20, 0);}
+	if ($Cad25 > 0) {$pCad25 = (($Cad25 / $TOTALcalls) * 100);	$pCad25 = round($pCad25, 0);}
+	if ($Cad30 > 0) {$pCad30 = (($Cad30 / $TOTALcalls) * 100);	$pCad30 = round($pCad30, 0);}
+	if ($Cad35 > 0) {$pCad35 = (($Cad35 / $TOTALcalls) * 100);	$pCad35 = round($pCad35, 0);}
+	if ($Cad40 > 0) {$pCad40 = (($Cad40 / $TOTALcalls) * 100);	$pCad40 = round($pCad40, 0);}
+	if ($Cad45 > 0) {$pCad45 = (($Cad45 / $TOTALcalls) * 100);	$pCad45 = round($pCad45, 0);}
+	if ($Cad50 > 0) {$pCad50 = (($Cad50 / $TOTALcalls) * 100);	$pCad50 = round($pCad50, 0);}
+	if ($Cad55 > 0) {$pCad55 = (($Cad55 / $TOTALcalls) * 100);	$pCad55 = round($pCad55, 0);}
+	if ($Cad60 > 0) {$pCad60 = (($Cad60 / $TOTALcalls) * 100);	$pCad60 = round($pCad60, 0);}
+	if ($Cad90 > 0) {$pCad90 = (($Cad90 / $TOTALcalls) * 100);	$pCad90 = round($pCad90, 0);}
+	if ($Cad99 > 0) {$pCad99 = (($Cad99 / $TOTALcalls) * 100);	$pCad99 = round($pCad99, 0);}
+
+	if ($Cad_0 > 0) {$ApCad_0 = (($Cad_0 / $BDansweredCALLS) * 100);	$ApCad_0 = round($ApCad_0, 0);}
+	if ($Cad_5 > 0) {$ApCad_5 = (($Cad_5 / $BDansweredCALLS) * 100);	$ApCad_5 = round($ApCad_5, 0);}
+	if ($Cad10 > 0) {$ApCad10 = (($Cad10 / $BDansweredCALLS) * 100);	$ApCad10 = round($ApCad10, 0);}
+	if ($Cad15 > 0) {$ApCad15 = (($Cad15 / $BDansweredCALLS) * 100);	$ApCad15 = round($ApCad15, 0);}
+	if ($Cad20 > 0) {$ApCad20 = (($Cad20 / $BDansweredCALLS) * 100);	$ApCad20 = round($ApCad20, 0);}
+	if ($Cad25 > 0) {$ApCad25 = (($Cad25 / $BDansweredCALLS) * 100);	$ApCad25 = round($ApCad25, 0);}
+	if ($Cad30 > 0) {$ApCad30 = (($Cad30 / $BDansweredCALLS) * 100);	$ApCad30 = round($ApCad30, 0);}
+	if ($Cad35 > 0) {$ApCad35 = (($Cad35 / $BDansweredCALLS) * 100);	$ApCad35 = round($ApCad35, 0);}
+	if ($Cad40 > 0) {$ApCad40 = (($Cad40 / $BDansweredCALLS) * 100);	$ApCad40 = round($ApCad40, 0);}
+	if ($Cad45 > 0) {$ApCad45 = (($Cad45 / $BDansweredCALLS) * 100);	$ApCad45 = round($ApCad45, 0);}
+	if ($Cad50 > 0) {$ApCad50 = (($Cad50 / $BDansweredCALLS) * 100);	$ApCad50 = round($ApCad50, 0);}
+	if ($Cad55 > 0) {$ApCad55 = (($Cad55 / $BDansweredCALLS) * 100);	$ApCad55 = round($ApCad55, 0);}
+	if ($Cad60 > 0) {$ApCad60 = (($Cad60 / $BDansweredCALLS) * 100);	$ApCad60 = round($ApCad60, 0);}
+	if ($Cad90 > 0) {$ApCad90 = (($Cad90 / $BDansweredCALLS) * 100);	$ApCad90 = round($ApCad90, 0);}
+	if ($Cad99 > 0) {$ApCad99 = (($Cad99 / $BDansweredCALLS) * 100);	$ApCad99 = round($ApCad99, 0);}
+	}
+
+### Format variables
+$ad_0 = sprintf("%5s", $ad_0);
+$ad_5 = sprintf("%5s", $ad_5);
+$ad10 = sprintf("%5s", $ad10);
+$ad15 = sprintf("%5s", $ad15);
+$ad20 = sprintf("%5s", $ad20);
+$ad25 = sprintf("%5s", $ad25);
+$ad30 = sprintf("%5s", $ad30);
+$ad35 = sprintf("%5s", $ad35);
+$ad40 = sprintf("%5s", $ad40);
+$ad45 = sprintf("%5s", $ad45);
+$ad50 = sprintf("%5s", $ad50);
+$ad55 = sprintf("%5s", $ad55);
+$ad60 = sprintf("%5s", $ad60);
+$ad90 = sprintf("%5s", $ad90);
+$ad99 = sprintf("%5s", $ad99);
+$Cad_0 = sprintf("%5s", $Cad_0);
+$Cad_5 = sprintf("%5s", $Cad_5);
+$Cad10 = sprintf("%5s", $Cad10);
+$Cad15 = sprintf("%5s", $Cad15);
+$Cad20 = sprintf("%5s", $Cad20);
+$Cad25 = sprintf("%5s", $Cad25);
+$Cad30 = sprintf("%5s", $Cad30);
+$Cad35 = sprintf("%5s", $Cad35);
+$Cad40 = sprintf("%5s", $Cad40);
+$Cad45 = sprintf("%5s", $Cad45);
+$Cad50 = sprintf("%5s", $Cad50);
+$Cad55 = sprintf("%5s", $Cad55);
+$Cad60 = sprintf("%5s", $Cad60);
+$Cad90 = sprintf("%5s", $Cad90);
+$Cad99 = sprintf("%5s", $Cad99);
+$pad_0 = sprintf("%4s", $pad_0) . '%';
+$pad_5 = sprintf("%4s", $pad_5) . '%';
+$pad10 = sprintf("%4s", $pad10) . '%';
+$pad15 = sprintf("%4s", $pad15) . '%';
+$pad20 = sprintf("%4s", $pad20) . '%';
+$pad25 = sprintf("%4s", $pad25) . '%';
+$pad30 = sprintf("%4s", $pad30) . '%';
+$pad35 = sprintf("%4s", $pad35) . '%';
+$pad40 = sprintf("%4s", $pad40) . '%';
+$pad45 = sprintf("%4s", $pad45) . '%';
+$pad50 = sprintf("%4s", $pad50) . '%';
+$pad55 = sprintf("%4s", $pad55) . '%';
+$pad60 = sprintf("%4s", $pad60) . '%';
+$pad90 = sprintf("%4s", $pad90) . '%';
+$pad99 = sprintf("%4s", $pad99) . '%';
+$pCad_0 = sprintf("%4s", $pCad_0) . '%';
+$pCad_5 = sprintf("%4s", $pCad_5) . '%';
+$pCad10 = sprintf("%4s", $pCad10) . '%';
+$pCad15 = sprintf("%4s", $pCad15) . '%';
+$pCad20 = sprintf("%4s", $pCad20) . '%';
+$pCad25 = sprintf("%4s", $pCad25) . '%';
+$pCad30 = sprintf("%4s", $pCad30) . '%';
+$pCad35 = sprintf("%4s", $pCad35) . '%';
+$pCad40 = sprintf("%4s", $pCad40) . '%';
+$pCad45 = sprintf("%4s", $pCad45) . '%';
+$pCad50 = sprintf("%4s", $pCad50) . '%';
+$pCad55 = sprintf("%4s", $pCad55) . '%';
+$pCad60 = sprintf("%4s", $pCad60) . '%';
+$pCad90 = sprintf("%4s", $pCad90) . '%';
+$pCad99 = sprintf("%4s", $pCad99) . '%';
+$ApCad_0 = sprintf("%4s", $ApCad_0) . '%';
+$ApCad_5 = sprintf("%4s", $ApCad_5) . '%';
+$ApCad10 = sprintf("%4s", $ApCad10) . '%';
+$ApCad15 = sprintf("%4s", $ApCad15) . '%';
+$ApCad20 = sprintf("%4s", $ApCad20) . '%';
+$ApCad25 = sprintf("%4s", $ApCad25) . '%';
+$ApCad30 = sprintf("%4s", $ApCad30) . '%';
+$ApCad35 = sprintf("%4s", $ApCad35) . '%';
+$ApCad40 = sprintf("%4s", $ApCad40) . '%';
+$ApCad45 = sprintf("%4s", $ApCad45) . '%';
+$ApCad50 = sprintf("%4s", $ApCad50) . '%';
+$ApCad55 = sprintf("%4s", $ApCad55) . '%';
+$ApCad60 = sprintf("%4s", $ApCad60) . '%';
+$ApCad90 = sprintf("%4s", $ApCad90) . '%';
+$ApCad99 = sprintf("%4s", $ApCad99) . '%';
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+### Format and output
+$answeredTOTALs = "$ad_0 $ad_5 $ad10 $ad15 $ad20 $ad25 $ad30 $ad35 $ad40 $ad45 $ad50 $ad55 $ad60 $ad90 $ad99 | $BDansweredCALLS |";
+$answeredCUMULATIVE = "$Cad_0 $Cad_5 $Cad10 $Cad15 $Cad20 $Cad25 $Cad30 $Cad35 $Cad40 $Cad45 $Cad50 $Cad55 $Cad60 $Cad90 $Cad99 | $BDansweredCALLS |";
+$answeredINT_PERCENT = "$pad_0 $pad_5 $pad10 $pad15 $pad20 $pad25 $pad30 $pad35 $pad40 $pad45 $pad50 $pad55 $pad60 $pad90 $pad99 |            |";
+$answeredCUM_PERCENT = "$pCad_0 $pCad_5 $pCad10 $pCad15 $pCad20 $pCad25 $pCad30 $pCad35 $pCad40 $pCad45 $pCad50 $pCad55 $pCad60 $pCad90 $pCad99 |            |";
+$answeredCUM_ANS_PERCENT = "$ApCad_0 $ApCad_5 $ApCad10 $ApCad15 $ApCad20 $ApCad25 $ApCad30 $ApCad35 $ApCad40 $ApCad45 $ApCad50 $ApCad55 $ApCad60 $ApCad90 $ApCad99 |            |";
+echo "INTERVAL  | $answeredTOTALs\n";
+echo "INT %     | $answeredINT_PERCENT\n";
+echo "CUMULATIVE| $answeredCUMULATIVE\n";
+echo "CUM %     | $answeredCUM_PERCENT\n";
+echo "CUM ANS % | $answeredCUM_ANS_PERCENT\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+
+##############################
+#########  CALL HANGUP REASON STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- FAIT APPEL Hangup STATS\n";
+echo "+----------------------+------------+\n";
+echo "| HANGUP REASON        | CALLS      |\n";
+echo "+----------------------+------------+\n";
+
+$stmt="select count(*),term_reason from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by term_reason;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+	$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+#	if (ereg("NONE",$reason)) {$reason = 'NO ANSWER           ';}
+
+	echo "| $reason | $REASONcount |\n";
+
+	$i++;
+	}
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "+----------------------+------------+\n";
+echo "| TOTAL:               | $TOTALcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL STATUS STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL STATUS STATS\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| STATUS | DESCRIPTION          | CATÉGORIE             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+
+
+## get counts and time totals for all statuses in this campaign
+$stmt="select count(*),status,sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by status;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$STATUScount =	$row[0];
+	$RAWstatus =	$row[1];
+	$r=0;  $foundstat=0;
+	while ($r < $statcats_to_print)
+		{
+		if ( ($statcat_list[$RAWstatus] == "$vsc_id[$r]") and ($foundstat < 1) )
+			{
+			$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+			}
+		$r++;
+		}
+
+	$TOTALcalls =	($TOTALcalls + $row[0]);
+	if ( ($STATUScount < 1) or ($TOTALsec < 1) )
+		{$STATUSrate = 0;}
+	else
+		{$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );}
+	$STATUSrate =	sprintf("%.2f", $STATUSrate);
+
+	$STATUShours =		sec_convert($row[2],'H'); 
+	$STATUSavg_sec =	($row[2] / $STATUScount); 
+	$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+	$STATUScount =	sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+	$status =	sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+	$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+	$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+	$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+
+	if ($non_latin < 1)
+		{
+		$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+		while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+		$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+		while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+		}
+	else
+		{
+		$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+		while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+		$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+		while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+		}
+
+
+	echo "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate |\n";
+
+	$i++;
+	}
+
+if ($TOTALcalls < 1)
+	{
+	$TOTALhours =	'0:00:00';
+	$TOTALavg =		'0:00:00';
+	$TOTALrate =	'0.00';
+	}
+else
+	{
+	if ( ($TOTALcalls < 1) or ($TOTALsec < 1) )
+		{$TOTALrate = 0;}
+	else
+		{$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );}
+	$TOTALrate =	sprintf("%.2f", $TOTALrate);
+
+	$TOTALhours =		sec_convert($TOTALsec,'H'); 
+	$TOTALavg_sec =		($TOTALsec / $TOTALcalls);
+	$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+	}
+$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |\n";
+echo "+------------------------------------------------------+------------+------------+----------+----------+\n";
+
+
+##############################
+#########  STATUS CATEGORY STATS
+
+echo "\n";
+echo "---------- CUSTOM STATUS CATÉGORIE STATS\n";
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| CATÉGORIE             | CALLS      | DESCRIPTION                    |\n";
+echo "+----------------------+------------+--------------------------------+\n";
+
+$TOTCATcalls=0;
+$r=0;
+while ($r < $statcats_to_print)
+	{
+	if ($vsc_id[$r] != 'UNDEFINED')
+		{
+		$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+		$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+		$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+		$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+		echo "| $category | $CATcount | $CATname |\n";
+		}
+
+	$r++;
+	}
+
+$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| TOTAL                | $TOTCATcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+##############################
+#########  CALL INITIAL QUEUE POSITION BREAKDOWN
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+echo "|     1     2     3     4     5     6     7     8     9    10    15    20    25   +25 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_position;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$positions_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $positions_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);}
+	if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);}
+	if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);}
+	if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);}
+	if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);}
+	if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);}
+	if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);}
+	if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);}
+	if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);}
+	if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);}
+	$i++;
+	}
+
+$qp_1 =	sprintf("%5s", $qp_1);
+$qp_2 =	sprintf("%5s", $qp_2);
+$qp_3=	sprintf("%5s", $qp_3);
+$qp_4 =	sprintf("%5s", $qp_4);
+$qp_5 =	sprintf("%5s", $qp_5);
+$qp_6 =	sprintf("%5s", $qp_6);
+$qp_7 =	sprintf("%5s", $qp_7);
+$qp_8 =	sprintf("%5s", $qp_8);
+$qp_9 =	sprintf("%5s", $qp_9);
+$qp10 =	sprintf("%5s", $qp10);
+$qp15 =	sprintf("%5s", $qp15);
+$qp20 =	sprintf("%5s", $qp20);
+$qp25 =	sprintf("%5s", $qp25);
+$qp99 =	sprintf("%5s", $qp99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  USER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTtime=0;
+$TOTavg=0;
+
+echo "\n";
+echo "---------- AGENT STATS\n";
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\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_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[2]);
+	$TOTtime = ($TOTtime + $row[3]);
+
+	$user =			sprintf("%-6s", $row[0]);
+	if ($non_latin < 1)
+		{
+		$full_name =	sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+		}
+	else
+		{
+		$full_name =	sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+		}
+	$USERcalls =	sprintf("%10s", $row[2]);
+	$USERtotTALK =	$row[3];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+	$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+	$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+	$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+	$i++;
+	}
+
+if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;}
+else
+	{
+	$TOTavg = ($TOTtime / $TOTcalls);
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	}
+
+$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+$TOTagents =		sprintf("%10s", $i);
+$TOTcalls =			sprintf("%10s", $TOTcalls);
+$TOTtime =			sprintf("%8s", $TOTtime);
+$TOTavg =			sprintf("%6s", $TOTavg);
+
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+echo "+--------------------------+------------+------------+--------+\n";
+
+
+##############################
+#########  TIME STATS
+
+echo "\n";
+echo "---------- STATISTIQUE TEMPORELLES\n";
+
+echo "\n";
+
+
+##############################
+#########  15-minute increment breakdowns of total calls and drops, then answered table
+$BDansweredCALLS = 0;
+$stmt="SELECT status,queue_seconds,UNIX_TIMESTAMP(call_date),call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$calls_to_print = mysql_num_rows($rslt);
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$Cstatus[$j] =	$row[0];
+	$Cqueue[$j] =	$row[1];
+	$Cepoch[$j] =	$row[2];
+	$Cdate[$j] =	$row[3];
+	$Crem[$j] = ( ($Cepoch[$j] + $epoch_offset) % 86400); # find the remainder(Modulus) of seconds since start of the day
+#	echo "|$Cepoch[$j]|$Crem[$j]|$Cdate[$j]|\n";
+	$j++;
+	}
+
+### Loop through all call records and gather stats for total call/drop report and answered report
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$i=0; $sec=0; $sec_end=900;
+	while ($i <= 96)
+		{
+		if ( ($Crem[$j] >= $sec) and ($Crem[$j] < $sec_end) ) 
+			{
+			$Ftotal[$i]++;
+			if (ereg("DROP",$Cstatus[$j])) {$Fdrop[$i]++;}
+			if (!ereg("DROP|XDROP|HXFER|QVMAIL|HOLDTO|LIVE|QUEUE",$Cstatus[$j]))
+				{
+				$BDansweredCALLS++;
+				$Fanswer[$i]++;
+
+				if ($Cqueue[$j] == 0)								{$adB_0[$i]++;}
+				if ( ($Cqueue[$j] > 0) and ($Cqueue[$j] <= 5) )		{$adB_5[$i]++;}
+				if ( ($Cqueue[$j] > 5) and ($Cqueue[$j] <= 10) )	{$adB10[$i]++;}
+				if ( ($Cqueue[$j] > 10) and ($Cqueue[$j] <= 15) )	{$adB15[$i]++;}
+				if ( ($Cqueue[$j] > 15) and ($Cqueue[$j] <= 20) )	{$adB20[$i]++;}
+				if ( ($Cqueue[$j] > 20) and ($Cqueue[$j] <= 25) )	{$adB25[$i]++;}
+				if ( ($Cqueue[$j] > 25) and ($Cqueue[$j] <= 30) )	{$adB30[$i]++;}
+				if ( ($Cqueue[$j] > 30) and ($Cqueue[$j] <= 35) )	{$adB35[$i]++;}
+				if ( ($Cqueue[$j] > 35) and ($Cqueue[$j] <= 40) )	{$adB40[$i]++;}
+				if ( ($Cqueue[$j] > 40) and ($Cqueue[$j] <= 45) )	{$adB45[$i]++;}
+				if ( ($Cqueue[$j] > 45) and ($Cqueue[$j] <= 50) )	{$adB50[$i]++;}
+				if ( ($Cqueue[$j] > 50) and ($Cqueue[$j] <= 55) )	{$adB55[$i]++;}
+				if ( ($Cqueue[$j] > 55) and ($Cqueue[$j] <= 60) )	{$adB60[$i]++;}
+				if ( ($Cqueue[$j] > 60) and ($Cqueue[$j] <= 90) )	{$adB90[$i]++;}
+				if ($Cqueue[$j] > 90)								{$adB99[$i]++;}
+				}
+
+			}
+		$sec = ($sec + 900);
+		$sec_end = ($sec_end + 900);
+		$i++;
+		}
+	$j++;
+	}	##### END going through all records
+
+
+
+
+
+
+
+##### 15-minute total and drops graph
+$hi_hour_count=0;
+$last_full_record=0;
+$i=0;
+$h=0;
+while ($i <= 96)
+	{
+	$hour_count[$i] = $Ftotal[$i];
+	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+	if ($hour_count[$i] > 0) {$last_full_record = $i;}
+	$drop_count[$i] = $Fdrop[$i];
+	$i++;
+	}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+	}
+
+echo "\n";
+echo "GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES DU TOTAL DES APPELS TAKEN INTO THIS IN-GROUP\n";
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 102) 
+	{
+	if ($Mk >= 5) 
+		{
+		$Mk=0;
+		if ( ($k < 1) or ($hour_multiplier <= 0) )
+			{$scale_num = 100;}
+		else
+			{
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			}
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		}
+	if ($h == 1) {$time = "   15 ";}
+	if ($h == 2) {$time = "   30 ";}
+	if ($h == 3) {$time = "   45 ";}
+	$Ghour_count = $hour_count[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ( ($no_lines_yet) or ($i > $last_full_record) )
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			echo "|$time|";
+			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (99 - $Xhour_count);
+
+		$Gdrop_count = $drop_count[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| 0     | $hour_count[$i] |\n";
+
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 102) {echo " ";   $char_counter++;}
+			echo "| $drop_count[$i] | $hour_count[$i] |\n";
+			}
+		}
+	
+	
+	$i++;
+	$h++;
+	}
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n\n";
+
+
+
+
+
+
+##### Answered wait time breakdown
+echo "\n";
+echo "---------- CALL REPONSEED TIME BREAKDOWN IN SECONDS\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "| HOUR |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		$SQLtime = "$hour:$ZZ:00";
+		$SQLtimeEND = "$hour:15:00";
+		}
+	if ($h == 1) {$time = "   15 ";   $SQLtime = "$hour:15:00";   $SQLtimeEND = "$hour:30:00";}
+	if ($h == 2) {$time = "   30 ";   $SQLtime = "$hour:30:00";   $SQLtimeEND = "$hour:45:00";}
+	if ($h == 3) 
+		{
+		$time = "   45 ";
+		$SQLtime = "$hour:45:00";
+		$hourEND = ($hour + 1);
+		if ($hourEND < 10) {$hourEND = "0$hourEND";}
+		if ($hourEND > 23) {$SQLtimeEND = "23:59:59";}
+		else {$SQLtimeEND = "$hourEND:00:00";}
+		}
+
+
+	if (strlen($adB_0[$i]) < 1)  {$adB_0[$i]='-';}
+	if (strlen($adB_5[$i]) < 1)  {$adB_5[$i]='-';}
+	if (strlen($adB10[$i]) < 1)  {$adB10[$i]='-';}
+	if (strlen($adB15[$i]) < 1)  {$adB15[$i]='-';}
+	if (strlen($adB20[$i]) < 1)  {$adB20[$i]='-';}
+	if (strlen($adB25[$i]) < 1)  {$adB25[$i]='-';}
+	if (strlen($adB30[$i]) < 1)  {$adB30[$i]='-';}
+	if (strlen($adB35[$i]) < 1)  {$adB35[$i]='-';}
+	if (strlen($adB40[$i]) < 1)  {$adB40[$i]='-';}
+	if (strlen($adB45[$i]) < 1)  {$adB45[$i]='-';}
+	if (strlen($adB50[$i]) < 1)  {$adB50[$i]='-';}
+	if (strlen($adB55[$i]) < 1)  {$adB55[$i]='-';}
+	if (strlen($adB60[$i]) < 1)  {$adB60[$i]='-';}
+	if (strlen($adB90[$i]) < 1)  {$adB90[$i]='-';}
+	if (strlen($adB99[$i]) < 1)  {$adB99[$i]='-';}
+	if (strlen($Fanswer[$i]) < 1)  {$Fanswer[$i]='0';}
+
+	$adB_0[$i] = sprintf("%5s", $adB_0[$i]);
+	$adB_5[$i] = sprintf("%5s", $adB_5[$i]);
+	$adB10[$i] = sprintf("%5s", $adB10[$i]);
+	$adB15[$i] = sprintf("%5s", $adB15[$i]);
+	$adB20[$i] = sprintf("%5s", $adB20[$i]);
+	$adB25[$i] = sprintf("%5s", $adB25[$i]);
+	$adB30[$i] = sprintf("%5s", $adB30[$i]);
+	$adB35[$i] = sprintf("%5s", $adB35[$i]);
+	$adB40[$i] = sprintf("%5s", $adB40[$i]);
+	$adB45[$i] = sprintf("%5s", $adB45[$i]);
+	$adB50[$i] = sprintf("%5s", $adB50[$i]);
+	$adB55[$i] = sprintf("%5s", $adB55[$i]);
+	$adB60[$i] = sprintf("%5s", $adB60[$i]);
+	$adB90[$i] = sprintf("%5s", $adB90[$i]);
+	$adB99[$i] = sprintf("%5s", $adB99[$i]);
+	$Fanswer[$i] = sprintf("%10s", $Fanswer[$i]);
+
+	echo "|$time| $adB_0[$i] $adB_5[$i] $adB10[$i] $adB15[$i] $adB20[$i] $adB25[$i] $adB30[$i] $adB35[$i] $adB40[$i] $adB45[$i] $adB50[$i] $adB55[$i] $adB60[$i] $adB90[$i] $adB99[$i] | $Fanswer[$i] |\n";
+
+	$i++;
+	$h++;
+	}
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|TOTALS|                                                                                           | $BDansweredCALLS |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSERsummary_hourly.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_IVRfilter.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_IVRfilter.php new file mode 100644 index 00000000..1ca68172 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_IVRfilter.php @@ -0,0 +1,249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 81030-0432 - First build +# 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; + +?> + + + + + +\n"; +echo "VICIDIAL: VDL IVR Filter Stats\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Date Range:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ADMIN | "; +echo "RAPPORTS\n"; +echo "\n"; + +echo "
\n"; + +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+$shift = 'ALL';
+
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "VDL: IVR Filter Stats:           $NOW_TIME\n";
+
+
+echo "\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "| CATÉGORIE             | CALLS   | UNIQUE  |      %  |\n";
+echo "+----------------------+---------+---------+---------+\n";
+
+
+$stmtA="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='ENTRANT_IVR_FILTER' and comment_b='CLEAN';";
+$rsltA=mysql_query($stmtA, $link);
+if ($DB) {echo "$stmtA\n";}
+$rowA=mysql_fetch_row($rsltA);
+
+$stmtB="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='ENTRANT_IVR_FILTER' and comment_b='NOT_FOUND';";
+$rsltB=mysql_query($stmtB, $link);
+if ($DB) {echo "$stmtB\n";}
+$rowB=mysql_fetch_row($rsltB);
+
+$stmtC="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='ENTRANT_IVR_FILTER' and comment_b='EXISTING' and comment_c='DNC';";
+$rsltC=mysql_query($stmtC, $link);
+if ($DB) {echo "$stmtC\n";}
+$rowC=mysql_fetch_row($rsltC);
+
+$stmtD="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='ENTRANT_IVR_FILTER' and comment_b='EXISTING' and comment_c='SALE';";
+$rsltD=mysql_query($stmtD, $link);
+if ($DB) {echo "$stmtD\n";}
+$rowD=mysql_fetch_row($rsltD);
+
+$stmtE="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='ENTRANT_IVR_FILTER' and comment_b='EXISTING' and comment_c='ARCHIVE';";
+$rsltE=mysql_query($stmtE, $link);
+if ($DB) {echo "$stmtE\n";}
+$rowE=mysql_fetch_row($rsltE);
+
+
+$total = ($rowA[0] + $rowB[0] + $rowC[0] + $rowD[0] + $rowE[0]);
+$Utotal = ($rowA[1] + $rowB[1] + $rowC[1] + $rowD[1] + $rowE[1]);
+
+$agent =	sprintf("%7s", $rowA[0]);
+$Uagent =	sprintf("%7s", $rowA[1]);
+if ( ($Utotal < 1) or ($rowA[1] < 1) )
+	{$UagentPERCENT = '0';}
+else
+	{$UagentPERCENT = (($rowA[1] / $Utotal) * 100);   $UagentPERCENT = round($UagentPERCENT, 2);}
+$UagentPERCENT =	sprintf("%6s", $UagentPERCENT);
+
+$ntfnd =	sprintf("%7s", $rowB[0]);
+$Untfnd =	sprintf("%7s", $rowB[1]);
+if ( ($Utotal < 1) or ($rowB[1] < 1) )
+	{$UntfndPERCENT = '0';}
+else
+	{$UntfndPERCENT = (($rowB[1] / $Utotal) * 100);   $UntfndPERCENT = round($UntfndPERCENT, 2);}
+$UntfndPERCENT =	sprintf("%6s", $UntfndPERCENT);
+
+$prdnc =	sprintf("%7s", $rowC[0]);
+$Uprdnc =	sprintf("%7s", $rowC[1]);
+if ( ($Utotal < 1) or ($rowC[1] < 1) )
+	{$UprdncPERCENT = '0';}
+else
+	{$UprdncPERCENT = (($rowC[1] / $Utotal) * 100);   $UprdncPERCENT = round($UprdncPERCENT, 2);}
+$UprdncPERCENT =	sprintf("%6s", $UprdncPERCENT);
+
+$psale =	sprintf("%7s", $rowD[0]);
+$Upsale =	sprintf("%7s", $rowD[1]);
+if ( ($Utotal < 1) or ($rowD[1] < 1) )
+	{$UpsalePERCENT = '0';}
+else
+	{$UpsalePERCENT = (($rowD[1] / $Utotal) * 100);   $UpsalePERCENT = round($UpsalePERCENT, 2);}
+$UpsalePERCENT =	sprintf("%6s", $UpsalePERCENT);
+
+$archv =	sprintf("%7s", $rowE[0]);
+$Uarchv =	sprintf("%7s", $rowE[1]);
+if ( ($Utotal < 1) or ($rowE[1] < 1) )
+	{$UarchvPERCENT = '0';}
+else
+	{$UarchvPERCENT = (($rowE[1] / $Utotal) * 100);   $UarchvPERCENT = round($UarchvPERCENT, 2);}
+$UarchvPERCENT =	sprintf("%6s", $UarchvPERCENT);
+
+$total =	sprintf("%7s", $total);
+$Utotal =	sprintf("%7s", $Utotal);
+
+
+echo "| CALL SENT TO AGENT   | $agent | $Uagent | $UagentPERCENT% |\n";
+echo "| CALLERID NOT FOUND   | $ntfnd | $Untfnd | $UntfndPERCENT% |\n";
+echo "| PREVIOUS DNC         | $prdnc | $Uprdnc | $UprdncPERCENT% |\n";
+echo "| PREVIOUS SALE        | $psale | $Upsale | $UpsalePERCENT% |\n";
+echo "| ARCHIVE ONLY         | $archv | $Uarchv | $UarchvPERCENT% |\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "|               TOTALS:| $total | $Utotal |\n";
+echo "+----------------------+---------+---------+\n";
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_IVRstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_IVRstats.php new file mode 100644 index 00000000..8e9daeee --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_IVRstats.php @@ -0,0 +1,683 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81026-2026 - First build +# 81107-0341 - Added time range and option and 15-minute increment graph +# 81107-1148 - Added average times and totals +# 81108-0922 - Added no-callerID and unique caller counts +# 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "IVR Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Date Range:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Groupes entrants: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "MODIFIER | "; +echo "RAPPORTS | "; +echo "RAPPORT SUR LES CLOSERS \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "S'IL VOUS PLAÎT CHOISIR UN GROUPE EN DATE ET-dessus et cliquez sur Soumettre\n";
+	}
+
+else
+	{
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
+
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
+
+	##### Grab all records for the IVR for the specified time period
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
+		}
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
+		{
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
+		else
+			{
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			}
+		$p++;
+		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT TOTAL DES APPELSINTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
+	else
+		{
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
+		}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- STATISTIQUE TEMPORELLES\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
+		}
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
+		{
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES DU TOTAL DES APPELS TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
+	}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_OUTBOUNDsummary_interval.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +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; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_VDADstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_VDADstats.php new file mode 100644 index 00000000..d83d1a57 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_VDADstats.php @@ -0,0 +1,1412 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 60619-1718 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 61215-1139 - Added drop percentage of answered and round-2 decimal +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80620-0031 - Fixed human answered calculation for drop perfentage +# 80709-0230 - Added time stats to call statuses +# 80717-2118 - Added calls/hour out of agent login time in status summary +# 80722-2049 - Added Status Category stats +# 81109-2341 - Added Productivity Rating +# 90225-1140 - Changed to multi-campaign capability +# 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} + $i++; + } + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +?> + + + + + +\n"; +echo "Outbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campagnes:
"; +echo "\n"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($group[0]) > 1) + { + echo " MODIFIER | \n"; + echo " RAPPORTS \n"; + } +else + { + echo " CAMPAIGNS | \n"; + echo " RAPPORTS \n"; + } +echo "
"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n\n";
+	echo "VEUILLEZ SELECTIONNER UNE CAMPAGNE ET UNE DATE CI-DESSUS ET CLIQUEZ SUR VALIDER\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+
+	$OUToutput = '';
+	$OUToutput .= "Outbound Calling Stats                             $NOW_TIME\n";
+
+	$OUToutput .= "\n";
+	$OUToutput .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+	$OUToutput .= "---------- TOTALS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcallsRAW = $row[0];
+	$TOTALsec =		$row[1];
+	$inTOTALcallsRAW=0;
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$TOTALdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inTOTALcallsRAW =	$y;
+		$TOTALsec = ($TOTALsec + $inTOTALsec);
+		$inTOTALcalls =	sprintf("%10s", $inTOTALcallsRAW);
+		}
+
+	$TOTALcalls =	sprintf("%10s", $TOTALcallsRAW);
+	if ( ($row[0] < 1) or ($TOTALsec < 1) )
+		{$average_call_seconds = '         0';}
+	else
+		{
+		$average_call_seconds = ($TOTALsec / $TOTALcallsRAW);
+		$average_call_seconds = round($average_call_seconds, 2);
+		$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+		}
+
+	$OUToutput .= "Total des appels placés dans cette campagne: $TOTALcalls\n";
+	$OUToutput .= "Durée moyenne des appels pour tous les appels en secondes: $average_call_seconds\n";
+	if (eregi("YES",$include_rollover))
+		{$OUToutput .= "Calls that went to rollover In-Groupe:         $inTOTALcalls\n";}
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- RÉPONSE HUMAINES\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN($customer_interactive_statuses) $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$CIcallsRAW =	$row[0];
+	$CIsec =		$row[1];
+
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and vicidial_closer_log.status IN($customer_interactive_statuses) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$CIdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inCIsec =	($inCIsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inCIcallsRAW =	$y;
+		$CIsec = ($CIsec + $inCIsec);
+		$CIcallsRAW = ($CIcallsRAW + $inCIcallsRAW);
+		}
+
+	$CIcalls =	sprintf("%10s", $CIcallsRAW);
+	if ( ($CIcallsRAW < 1) or ($CIsec < 1) )
+		{$average_ci_seconds = '         0';}
+	else
+		{
+		$average_ci_seconds = ($CIsec / $CIcallsRAW);
+		$average_ci_seconds = round($average_ci_seconds, 2);
+		$average_ci_seconds =	sprintf("%10s", $average_ci_seconds);
+		}
+	$CIsec =		sec_convert($CIsec,'H'); 
+
+
+	$OUToutput .= "Total Réponse de l'hommeed calls for this Campagne: $CIcalls\n";
+	$OUToutput .= "Average Call Length for all HA in seconds:    $average_ci_seconds     Total Time: $CIsec\n";
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ABANDONNES\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status='DROP' and (length_in_sec <= 6000 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$DROPcalls =	sprintf("%10s", $row[0]);
+	$DROPcallsRAW =	$row[0];
+	$DROPseconds =	$row[1];
+
+
+	# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+	$q=0;
+	$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+
+	$stmt = "SELECT distinct status,status_name,human_answered,category from vicidial_campaign_statuses $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+	$camp_ANS_STAT_SQL = eregi_replace(",$",'',$camp_ANS_STAT_SQL);
+
+
+	$stmt="select count(*) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN($camp_ANS_STAT_SQL);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$REPONSEcalls =	$row[0];
+
+	if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+		{$DROPpercent = '0';}
+	else
+		{
+		$DROPpercent = (($DROPcallsRAW / $TOTALcalls) * 100);
+		$DROPpercent = round($DROPpercent, 2);
+		}
+
+	if ( ($DROPcalls < 1) or ($REPONSEcalls < 1) )
+		{$DROPREPONSEpercent = '0';}
+	else
+		{
+		$DROPREPONSEpercent = (($DROPcallsRAW / $REPONSEcalls) * 100);
+		$DROPREPONSEpercent = round($DROPREPONSEpercent, 2);
+		}
+
+	if ( ($DROPseconds < 1) or ($DROPcallsRAW < 1) )
+		{$average_hold_seconds = '         0';}
+	else
+		{
+		$average_hold_seconds = ($DROPseconds / $DROPcallsRAW);
+		$average_hold_seconds = round($average_hold_seconds, 2);
+		$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+		}
+
+	$OUToutput .= "Total Outbound DROP Calls:                    $DROPcalls  $DROPpercent%\n";
+	$OUToutput .= "Percent of DROP Calls taken out of Answers:   $DROPcalls / $REPONSEcalls  $DROPREPONSEpercent%\n";
+
+	if (eregi("YES",$include_rollover))
+		{
+		if ( ($DROPcalls < 1) or ($CIcallsRAW < 1) )
+			{$inDROPREPONSEpercent = '0';}
+		else
+			{
+			$inDROPREPONSEpercent = (($DROPcallsRAW / $CIcallsRAW) * 100);
+			$inDROPREPONSEpercent = round($inDROPREPONSEpercent, 2);
+			}
+
+		$OUToutput .= "Percent of DROP/Answer Calls with Rollover:   $DROPcalls / $CIcallsRAW  $inDROPREPONSEpercent%\n";
+		}
+
+	$OUToutput .= "Durée moyenne pour les appels abandonnés en secondes:    $average_hold_seconds\n";
+
+	$stmt = "select closer_campaigns from vicidial_campaigns $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	$ccamps_to_print = mysql_num_rows($rslt);
+	$c=0;
+	while ($ccamps_to_print > $c)
+		{
+		$row=mysql_fetch_row($rslt);
+		$closer_campaigns = $row[0];
+		$closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns);
+		$closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
+		$closer_campaignsSQL .= "'$closer_campaigns',";
+		$c++;
+		}
+	$closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL);
+
+	$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($closer_campaignsSQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$TOTALanswers = ($row[0] + $REPONSEcalls);
+
+
+	$stmt = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$agent_non_pause_sec = $row[0];
+
+	if ($agent_non_pause_sec > 0)
+		{
+		$AVG_REPONSEagent_non_pause_sec = (($TOTALanswers / $agent_non_pause_sec) * 60);
+		$AVG_REPONSEagent_non_pause_sec = round($AVG_REPONSEagent_non_pause_sec, 2);
+		}
+	else
+		{$AVG_REPONSEagent_non_pause_sec=0;}
+	$AVG_REPONSEagent_non_pause_sec = sprintf("%10s", $AVG_REPONSEagent_non_pause_sec);
+
+	$OUToutput .= "Productivity Rating:                          $AVG_REPONSEagent_non_pause_sec\n";
+
+
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- APPELS AUTOMATIQUES SANS REPONSES\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN('NA','B') and (length_in_sec <= 60 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$NAcalls =	sprintf("%10s", $row[0]);
+	if ( ($NAcalls < 1) or ($TOTALcalls < 1) )
+		{$NApercent = '0';}
+	else
+		{
+		$NApercent = (($NAcalls / $TOTALcalls) * 100);
+		$NApercent = round($NApercent, 2);
+		}
+
+	if ( ($row[0] < 1) or ($row[1] < 1) )
+		{$average_na_seconds = '         0';}
+	else
+		{
+		$average_na_seconds = ($row[1] / $row[0]);
+		$average_na_seconds = round($average_na_seconds, 2);
+		$average_na_seconds =	sprintf("%10s", $average_na_seconds);
+		}
+
+	$OUToutput .= "Total NA calls -Busy,Disconnect,RingNoAnswer: $NAcalls  $NApercent%\n";
+	$OUToutput .= "Durée moyenne des appels pour les appels NA en secondes:  $average_na_seconds\n";
+
+
+	##############################
+	#########  FAIT APPEL Hangup STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- FAIT APPEL Hangup STATS\n";
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| HANGUP REASON        | CALLS      |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+	$stmt="select count(*),term_reason from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by term_reason;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$reasons_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $reasons_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$TOTALcalls = ($TOTALcalls + $row[0]);
+
+		$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+		$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+		if (ereg("NONE",$reason))	{$reason = 'NO REPONSE           ';}
+		if (ereg("CALLER",$reason)) {$reason = 'CUSTOMER            ';}
+
+		$OUToutput .= "| $reason | $REASONcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| TOTAL:               | $TOTALcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+
+
+	##############################
+	#########  CALL STATUS STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CALL STATUS STATS\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+----------------------------------+----------+\n";
+	$OUToutput .= "|        |                      |                      |            |      CALL TIME                   |AGENT TIME|\n";
+	$OUToutput .= "| STATUS | DESCRIPTION          | CATÉGORIE             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|CALLS/HOUR|\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+
+	$campaignSQL = "$group_SQLand";
+	if (eregi("YES",$include_rollover))
+		{$campaignSQL = "$both_group_SQLand";}
+	## Pull the count of agent seconds for the total tally
+	$stmt="SELECT sum(pause_sec + wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $campaignSQL and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000;";
+	$rslt=mysql_query($stmt, $link);
+	$Ctally_to_print = mysql_num_rows($rslt);
+	if ($Ctally_to_print > 0) 
+		{
+		$rowx=mysql_fetch_row($rslt);
+		$AGENTsec = "$rowx[0]";
+		}
+	if ($DB) {$OUToutput .= "$AGENTsec|$Ctally_to_print|$stmt\n";}
+
+
+	## get counts and time totals for all statuses in this campaign
+	$rollover_exclude_dropSQL='';
+	if (eregi("YES",$include_rollover))
+		{$rollover_exclude_dropSQL = "and status NOT IN('DROP')";}
+	$stmt="select count(*),status,sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $rollover_exclude_dropSQL $group_SQLand group by status;";
+
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$STATUScountARY[$i] =	$row[0];
+		$RAWstatusARY[$i] =		$row[1];
+		$RAWhoursARY[$i] =		$row[2];
+		$statusSQL .=			"'$row[1]',";
+		$i++;
+		}
+	if (eregi("YES",$include_rollover))
+		{
+		if (strlen($statusSQL) < 2)
+			{$statusSQL = "''";}
+		else
+			{
+			$statusSQL = eregi_replace(",$",'',$statusSQL);
+			}
+		$stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status NOT IN($statusSQL) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		$inS_statuses_to_print = mysql_num_rows($rslt);
+		$n=0;
+		while ($inS_statuses_to_print > $n) 
+			{
+			$rowx=mysql_fetch_row($rslt);
+			$STATUScountARY[$i] =	0;
+			$RAWstatusARY[$i] =		$rowx[0];
+			$RAWhoursARY[$i] =		0;
+			$i++;
+			$n++;
+			$statuses_to_print++;
+			}
+		}
+
+
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$STATUScount = $STATUScountARY[$i];
+		$RAWstatus = $RAWstatusARY[$i];
+		$RAWhours = $RAWhoursARY[$i];
+
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status='$RAWstatus' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			$in_statuses_to_print = mysql_num_rows($rslt);
+			if ($in_statuses_to_print > 0) 
+				{
+				$rowx=mysql_fetch_row($rslt);
+				$inSTATUScount =	$rowx[0];
+				$inRAWhours =		$rowx[1];
+
+				$STATUScount = ($STATUScount + $inSTATUScount);
+				$RAWhours = ($RAWhours + $inRAWhours);
+				}
+			}
+
+		$r=0;
+		while ($r < $statcats_to_print)
+			{
+			if ($statcat_list[$RAWstatus] == "$vsc_id[$r]")
+				{
+				$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+				}
+			$r++;
+			}
+		if ($AGENTsec < 1) {$AGENTsec=1;}
+		$TOTALcalls =	($TOTALcalls + $STATUScount);
+		$TOTALtimeS =	($TOTALtimeS + $RAWhours);
+		$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );
+			$STATUSrate =	sprintf("%.2f", $STATUSrate);
+		$AGENTrate =	($STATUScount / ($AGENTsec / 3600) );
+			$AGENTrate =	sprintf("%.2f", $AGENTrate);
+
+		$STATUShours =		sec_convert($RAWhours,'H'); 
+		$STATUSavg_sec =	($RAWhours / $STATUScount); 
+		$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+		$STATUScount =	sprintf("%10s", $STATUScount);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+		$status =	sprintf("%-6s", $RAWstatus);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+		$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+		$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+		$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+		$AGENTrate =	sprintf("%8s", $AGENTrate);while(strlen($AGENTrate)>8) {$AGENTrate = substr("$AGENTrate", 0, -1);}
+
+		if ($non_latin < 1)
+			{
+			$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+			while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+			$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+			while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+			}
+		else
+			{
+			$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+			while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+			$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+			while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+			}
+
+		$OUToutput .= "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate | $AGENTrate |\n";
+
+		$i++;
+		}
+
+	if ($TOTALcalls < 1)
+		{
+		$TOTALhours =	'0:00:00';
+		$TOTALavg =		'0:00:00';
+		$TOTALrate =	'0.00';
+		}
+	else
+		{
+		$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );
+			$TOTALrate =	sprintf("%.2f", $TOTALrate);
+		$aTOTALrate =	($TOTALcalls / ($AGENTsec / 3600) );
+			$aTOTALrate =	sprintf("%.2f", $aTOTALrate);
+
+		$aTOTALhours =		sec_convert($AGENTsec,'H'); 
+		$TOTALhours =		sec_convert($TOTALtimeS,'H'); 
+		$TOTALavg_sec =		($TOTALtimeS / $TOTALcalls);
+		$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+		}
+	$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+	$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+	$aTOTALhours =	sprintf("%10s", $aTOTALhours);while(strlen($aTOTALhours)>10) {$aTOTALhours = substr("$aTOTALhours", 0, -1);}
+	$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+	$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+	$aTOTALrate =	sprintf("%8s", $aTOTALrate);while(strlen($aTOTALrate)>8) {$aTOTALrate = substr("$aTOTALrate", 0, -1);}
+
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+	$OUToutput .= "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |          |\n";
+#	$OUToutput .= "|   AGENT TIME                                                      | $aTOTALhours |                     | $aTOTALrate |\n";
+	$OUToutput .= "+------------------------------------------------------+------------+------------+---------------------+----------+\n";
+
+
+
+
+
+	##############################
+	#########  ID DE LA LISTE BREAKDOWN STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ID DE LA LISTE STATS\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| LIST                                     | CALLS      |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+	$stmt="select count(*),list_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by list_id;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$listids_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$LISTIDcalls[$i] =	$row[0];
+		$LISTIDlists[$i] =	$row[1];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$stmt="select list_name from vicidial_lists where list_id='$LISTIDlists[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$list_name_to_print = mysql_num_rows($rslt);
+		if ($list_name_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$LISTIDlist_names[$i] =	$row[0];
+			}
+
+		$TOTALcalls = ($TOTALcalls + $LISTIDcalls[$i]);
+
+		$LISTIDcount =	sprintf("%10s", $LISTIDcalls[$i]);while(strlen($LISTIDcount)>10) {$LISTIDcount = substr("$LISTIDcount", 0, -1);}
+		$LISTIDname =	sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
+
+		$OUToutput .= "| $LISTIDname | $LISTIDcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| TOTAL:                                   | $TOTALcalls |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+
+
+
+
+	if ( ($carrier_logging_active > 0) and ($carrier_stats == 'YES') )
+		{
+		##############################
+		#########  STATUS CATÉGORIE STATS
+
+		$OUToutput .= "\n";
+		$OUToutput .= "---------- CARRIER CALL STATUSES\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| STATUS               | CALLS      |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+
+		## get counts and time totals for all statuses in this campaign
+		$stmt="select dialstatus,count(*) from vicidial_carrier_log vcl,vicidial_log vl where vcl.uniqueid=vl.uniqueid and vcl.call_date > \"$query_date_BEGIN\" and vcl.call_date < \"$query_date_END\" and vl.call_date > \"$query_date_BEGIN\" and vl.call_date < \"$query_date_END\" $group_SQLand group by dialstatus order by dialstatus;";
+		if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$carrierstatuses_to_print = mysql_num_rows($rslt);
+		$i=0;
+		while ($i < $carrierstatuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$TOTCARcalls = ($TOTCARcalls + $row[1]);
+			$CARstatus =	sprintf("%-20s", $row[0]); while(strlen($CARstatus)>20) {$CARstatus = substr("$CARstatus", 0, -1);}
+			$CARcount =		sprintf("%10s", $row[1]); while(strlen($CARcount)>10) {$CARcount = substr("$CARcount", 0, -1);}
+
+			$OUToutput .= "| $CARstatus | $CARcount |\n";
+
+			$i++;
+			}
+
+		$TOTCARcalls =	sprintf("%10s", $TOTCARcalls); while(strlen($TOTCARcalls)>10) {$TOTCARcalls = substr("$TOTCARcalls", 0, -1);}
+
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| TOTAL                | $TOTCARcalls |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		}
+
+
+	##############################
+	#########  STATUS CATÉGORIE STATS
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CUSTOM STATUS CATÉGORIE STATS\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| CATÉGORIE             | CALLS      | DESCRIPTION                    |\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+
+
+	$TOTCATcalls=0;
+	$r=0;
+	while ($r < $statcats_to_print)
+		{
+		if ($vsc_id[$r] != 'UNDEFINED')
+			{
+			$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+			$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+			$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+			$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+			$OUToutput .= "| $category | $CATcount | $CATname |\n";
+			}
+		$r++;
+		}
+
+	$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| TOTAL                | $TOTCATcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+	##############################
+	#########  USER STATS
+
+	$TOTagents=0;
+	$TOTcalls=0;
+	$TOTtime=0;
+	$TOTavg=0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- AGENT STATS\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\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_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$RAWuser[$i] =			$row[0];
+		$RAWfull_name[$i] =		$row[1];
+		$RAWuser_calls[$i] =	$row[2];
+		$RAWuser_talk[$i] =		$row[3];
+		$RAWuser_average[$i] =	$row[4];
+
+		$TOTcalls = ($TOTcalls + $row[2]);
+		$TOTtime = ($TOTtime + $row[3]);
+
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$user =	sprintf("%-6s", $RAWuser[$i]);while(strlen($user)>6) {$user = substr("$user", 0, -1);}
+		if ($non_latin < 1)
+			{
+			$full_name =	sprintf("%-15s", $RAWfull_name[$i]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+			}
+		else
+			{
+			$full_name =	sprintf("%-45s", $RAWfull_name[$i]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$length_in_secZ=0;
+			$queue_secondsZ=0;
+			$agent_alert_delayZ=0;
+			$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and user='$RAWuser[$i]' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_printZ = mysql_num_rows($rslt);
+			$y=0;
+			while ($y < $INallcalls_to_printZ)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				$length_in_secZ = $row[0];
+				$queue_secondsZ = $row[1];
+				$agent_alert_delayZ = $row[2];
+
+				$CIdelay =		round($agent_alert_delayZ / 1000);
+				$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+				if ($thiscallsec < 0)
+					{$thiscallsec = 0;}
+				$inCIsec =	($inCIsec + $thiscallsec);	
+
+				$y++;
+				}
+
+			$inCIcallsRAW =	$y;
+			$RAWuser_talk[$i] = ($RAWuser_talk[$i] + $inCIsec);
+			$RAWuser_calls[$i] = ($RAWuser_calls[$i] + $inCIcallsRAW);
+
+			$TOTcalls = ($TOTcalls + $inCIcallsRAW);
+			$TOTtime = ($TOTtime + $inCIsec);
+			}
+
+		$USERcalls =	sprintf("%10s", $RAWuser_calls[$i]);
+		$USERtotTALK =	$RAWuser_talk[$i];
+		$USERavgTALK =	round($RAWuser_talk[$i] / $RAWuser_calls[$i]);
+
+		$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+		$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+		$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+		$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+		$OUToutput .= "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+		$i++;
+		}
+
+	$rawTOTtime = $TOTtime;
+
+	if (!$TOTcalls) {$TOTcalls = 1;}
+	$TOTavg = ($TOTtime / $TOTcalls);
+
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+	$TOTagents =		sprintf("%10s", $i);
+	$TOTcalls =			sprintf("%10s", $TOTcalls);
+	$TOTtime =			sprintf("%8s", $TOTtime);
+	$TOTavg =			sprintf("%6s", $TOTavg);
+
+	$stmt="select avg(wait_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$AVGwait = $row[0];
+	$AVGwait_MS =	sec_convert($AVGwait,'H'); 
+	$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| Average Wait time between calls                      $AVGwait |\n";
+	$OUToutput .= "+-------------------------------------------------------------+\n";
+
+
+
+	if ($costformat > 0)
+		{
+		$stmt="select campaign_id,phone_number,length_in_sec from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user=vicidial_users.user;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$allcalls_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $allcalls_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			if ($print_calls > 0)
+				{echo "$row[0]\t$row[1]\t$row[2]\n";}
+			$tempTALK = ($tempTALK + $row[2]);
+			$w++;
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select campaign_id,phone_number,length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_print = mysql_num_rows($rslt);
+			$w=0;
+			while ($w < $INallcalls_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				if ($print_calls > 0)
+				{	echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\n";}
+				$newTALK = ($row[2] - $row[3] - ($row[4] / 1000) );
+				if ($newTALK < 0) {$newTALK = 0;}
+				$tempTALK = ($tempTALK + $newTALK);
+				$w++;
+				}
+			}
+		$tempTALKmin = ($tempTALK  / 60);
+		if ($print_calls > 0)
+			{echo "$w\t$tempTALK\t$tempTALKmin\n";}
+
+		echo "
\n"; + $rawTOTtalk_min = round($tempTALK / 60); + $outbound_cost = ($rawTOTtalk_min * $outbound_rate); + $outbound_cost = sprintf("%8.2f", $outbound_cost); + + echo "SORTANT $query_date to $end_date,   $rawTOTtalk_min minutes at \$$outbound_rate = \$$outbound_cost\n"; + + exit; + } + + + echo "$OUToutput"; + + + + + if ($bottom_graph == 'YES') + { + ############################## + ######### TIME STATS + + echo "\n"; + echo "---------- STATISTIQUE TEMPORELLES\n"; + + echo "\n"; + + $hi_hour_count=0; + $last_full_record=0; + $i=0; + $h=0; + 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' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + $h++; + } + + if ($hi_hour_count < 1) + {$hour_multiplier = 0;} + else + { + $hour_multiplier = (100 / $hi_hour_count); + #$hour_multiplier = round($hour_multiplier, 0); + } + + echo "\n"; + echo "GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES POUR LE TOTAL DES APPELS PLACES DEPUIS CETTE CAMPAGNE\n"; + + $k=1; + $Mk=0; + $call_scale = '0'; + while ($k <= 102) + { + if ($Mk >= 5) + { + $Mk=0; + if ( ($k < 1) or ($hour_multiplier <= 0) ) + {$scale_num = 100;} + else + { + $scale_num=($k / $hour_multiplier); + $scale_num = round($scale_num, 0); + } + $LENscale_num = (strlen($scale_num)); + $k = ($k + $LENscale_num); + $call_scale .= "$scale_num"; + } + else + { + $call_scale .= " "; + $k++; $Mk++; + } + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + #echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | DROPS | TOTAL |\n"; + echo "| HOUR |$call_scale| DROPS | TOTAL |\n"; + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + $ZZ = '00'; + $i=0; + $h=4; + $hour= -1; + $no_lines_yet=1; + + while ($i <= 96) + { + $char_counter=0; + $time = ' '; + if ($h >= 4) + { + $hour++; + $h=0; + if ($hour < 10) {$hour = "0$hour";} + $time = "+$hour$ZZ+"; + } + if ($h == 1) {$time = " 15 ";} + if ($h == 2) {$time = " 30 ";} + if ($h == 3) {$time = " 45 ";} + $Ghour_count = $hour_count[$i]; + if ($Ghour_count < 1) + { + if ( ($no_lines_yet) or ($i > $last_full_record) ) + { + $do_nothing=1; + } + else + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + echo "|$time|"; + $k=0; while ($k <= 102) {echo " "; $k++;} + echo "| $hour_count[$i] |\n"; + } + } + else + { + $no_lines_yet=0; + $Xhour_count = ($Ghour_count * $hour_multiplier); + $Yhour_count = (99 - $Xhour_count); + + $Gdrop_count = $drop_count[$i]; + if ($Gdrop_count < 1) + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;} + echo "*X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 101) {echo " "; $char_counter++;} + echo "| 0 | $hour_count[$i] |\n"; + + } + else + { + $Xdrop_count = ($Gdrop_count * $hour_multiplier); + + # if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);} + + $XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 ); + + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + $drop_count[$i] = sprintf("%-5s", $drop_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xdrop_count) {echo ">"; $k++; $char_counter++;} + echo "D"; $char_counter++; + $k=0; while ($k <= $XXhour_count) {echo "*"; $k++; $char_counter++;} + echo "X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 102) {echo " "; $char_counter++;} + echo "| $drop_count[$i] | $hour_count[$i] |\n"; + } + } + + + $i++; + $h++; + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + ### END bottom graph + } + + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\nRun Time: $RUNtime seconds\n"; + } + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_VICIDIAL_hopperlist.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_VICIDIAL_hopperlist.php new file mode 100644 index 00000000..40a12be3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_VICIDIAL_hopperlist.php @@ -0,0 +1,167 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1654 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70115-1614 - Added ALT field for vicidial_hopper alt_dial column +# 71029-0852 - Added list_id to the output +# 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$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 and view_reports='1' and modify_campaigns='1';"; + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.10.15';} + +$stmt="select campaign_id,campaign_name from vicidial_campaigns order by campaign_id;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $campaign_id[$i] =$row[0]; + $campaign_name[$i] =$row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Liste des distributeurs de fiches Report\n"; +echo "
\n"; +#echo "\n"; +#echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFIER \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "VEUILLEZ SELECTIONNER UNE CAMPAGNE CI-DESSUS ET CLIQUEZ SUR VALIDER\n";
+	}
+
+else
+	{
+	echo "Liste des distributeurs de fiches en cours                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALS\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Total de fiches dans le distributeur de fiches à l'instant:       $TOTALcalls\n";
+
+
+	##############################
+	#########  LEAD STATS
+
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |PRIORITÉ| LEAD ID   | ID DE LA LISTE    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
+
+
+?>
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_admin_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_admin_log_display.php new file mode 100644 index 00000000..b5abd944 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_admin_log_display.php @@ -0,0 +1,118 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$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_admin_log_display.php +# +# CHANGES +# 50325-0932 - First build +# 51123-1443 - removed globals=on requirement +# 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'; +$build = '60620-1044'; + +$STARTtime = date("U"); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 8 and view_reports='1';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "ADMINISTRATION DE VICIDIAL LOG DISPLAY"; +echo "\n"; + +# Fri, 25 Mar 2005 + +$DAY_DATE = date("j"); +if ($DAY_DATE < 10) +# {$GREP_DATE = date("D, j M Y");} + {$GREP_DATE = date("D, 0j M Y");} +else + {$GREP_DATE = date("D, j M Y");} + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!$query_date) {$query_date = $GREP_DATE;} + +$Gquery_date = eregi_replace(" ",'\ ',$query_date); +echo "\n"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+echo "ADMINISTRATION DE VICIDIAL CHANGE LOG                             $NOW_TIME\n";
+
+#passthru("grep $Gquery_date /home/www/htdocs/vicidial/admin_changes_log.txt");
+passthru("grep $Gquery_date $WeBServeRRooT/vicidial/admin_changes_log.txt");
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_days_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_days_detail.php new file mode 100644 index 00000000..11e2a7d2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_days_detail.php @@ -0,0 +1,602 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-2202 - First build +# 90225-1051 - Added CSV download option +# 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&shift=$shift&DB=$DB&user=$user$groupQS"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Jours Etat Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n";
+	echo "S'IL VOUS PLAÎT CHOISIR UN UTILISATEUR ET DATE EN TEMPS ET CLIQUEZ CI-DESSUS VALIDER\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Jours Etat Report: $user                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- AGENT Détails -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Jours Etat Report: $user                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$dates='-';
+	$datesARY[0]='';
+	$date_namesARY[0]='';
+	$k=0;
+
+	$stmt="select date_format(event_time, '%Y-%m-%d') as date,count(*) as calls,status 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 vicidial_agent_log.user='$user' $group_SQL $user_group_SQL group by date,status order by date,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[1] > 0) and (strlen($row[2]) > 0) )
+			{
+			$date[$i] =			$row[0];
+			$calls[$i] =		$row[1];
+			$status[$i] =		$row[2];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$date[$i]-", $dates))
+				{
+				$dates .= "$date[$i]-";
+				$datesARY[$k] = $date[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| DATE       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "DATE,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Sdate=$datesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+	#			if ( (eregi("$date[$i]", $Sdate)) and ($Sstatus=="$status[$i]") )
+				if ( ($Sdate=="$date[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWdate = $Sdate;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		$Sdate =		sprintf("%-10s", $Sdate);
+			while(strlen($Suser)>10) {$Suser = substr("$Sdate", 0, -1);}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sdate | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWdate,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdate) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			{
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+			}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+
+	if ($file_download < 1)
+		{
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| TOTALS     | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + + +if ($file_download > 0) + { + $US='_'; + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_DAYS_$user$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + + + +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campagnes:
"; +echo "\n"; +echo "
Utilisateur:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($user) > 1) + { + echo " TÉLÉCHARGER | \n"; + echo " USER | \n"; + echo " USER STATS | \n"; + } +else + {echo " UTILISATEURS | \n";} +echo "RAPPORTS \n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "              \n";}
+	else
+		{
+		echo "              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 120 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_performance.php
new file mode 100644
index 00000000..b4153fbc
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_performance.php
@@ -0,0 +1,258 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1711 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars
+# 90508-0644 - Changed to PHP long tags
+#
+
+require("dbconnect.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["group"]))				{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))		{$group=$_POST["group"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))		{$query_date=$_POST["query_date"];}
+if (isset($_GET["shift"]))				{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))		{$shift=$_POST["shift"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["VALIDER"]))				{$VALIDER=$_GET["VALIDER"];}
+	elseif (isset($_POST["VALIDER"]))		{$VALIDER=$_POST["VALIDER"];}
+
+$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 and view_reports='1';";
+	if ($DB) {echo "|$stmt|\n";}
+	if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	$row=mysql_fetch_row($rslt);
+	$auth=$row[0];
+
+  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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+?>
+
+
+
+
+
+\n";
+echo "VICIDIAL: Agent Performance\n";
+echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFIER | RAPPORTS \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A SERVEUR AND DATE-TIME ABOVE AND CLICK VALIDER\n";
+echo " NOTE: stats taken from 6 hour shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = "$query_date 08:45:00";   
+	$query_date_END = "$query_date 15:33:00";
+	$time_BEGIN = "08:45:00";   
+	$time_END = "15:33:00";
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = "$query_date 15:33:00";   
+	$query_date_END = "$query_date 23:15:00";
+	$time_BEGIN = "15:33:00";   
+	$time_END = "23:15:00";
+	}
+
+echo "VICIDIAL: Agent Performance                             $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Détails -------------\n\n";
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "| USER NAME       | ID       | CALLS  | TALK   | TALKAVG| A    | B    | DC   | DNC  | N    | NI   | SALE |\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='" . mysql_real_escape_string($group) . "' group by full_name order by calls desc limit 1000;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$TOTcalls=($TOTcalls + $row[0]);
+	$TOTtotTALK=($TOTtotTALK + $row[1]);
+	$calls[$i] =	sprintf("%-6s", $row[0]);
+
+	if ($non_latin < 1)
+	{
+   	 $full_name[$i]=	sprintf("%-15s", $row[2]); 
+	 while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}
+
+	 $user[$i] =		sprintf("%-6s", $row[3]);
+        while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+       }
+	else
+	{	
+        $full_name[$i]=	sprintf("%-45s", $row[2]); 
+	 while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}
+
+ 	 $user[$i] =		sprintf("%-18s", $row[3]);
+	 while(mb_strlen($user[$i],'utf-8')>6) {$user[$i] = mb_substr("$user[$i]", 0, -1,'utf-8');}
+	}
+
+	$user[$i] =		sprintf("%-8s", $row[3]);
+	$USERtotTALK =	$row[1];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_M = ($USERtotTALK / 60);
+	$USERtotTALK_M = round($USERtotTALK_M, 2);
+	$USERtotTALK_M_int = intval("$USERtotTALK_M");
+	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
+	$USERtotTALK_S = ($USERtotTALK_S * 60);
+	$USERtotTALK_S = round($USERtotTALK_S, 0);
+	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
+	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
+	$pfUSERtotTALK_MS[$i] =		sprintf("%6s", $USERtotTALK_MS);
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$pfUSERavgTALK_MS[$i] =		sprintf("%6s", $USERavgTALK_MS);
+	$i++;
+	}
+
+$k=0;
+while($k < $i)
+	{
+	$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='" . mysql_real_escape_string($group) . "' group by status;";
+	if ($non_latin > 0)
+	{
+	$rslt=mysql_query("SET NAMES 'UTF8'");
+	}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$m=0;
+	while ($m < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($row[1] == 'A') {$ctA[$k]=sprintf("%-4s", $row[0]);		$TOT_A = ($TOT_A + $row[0]);}
+		if ($row[1] == 'B') {$ctB[$k]=sprintf("%-4s", $row[0]);		$TOT_B = ($TOT_B + $row[0]);}
+		if ($row[1] == 'DC') {$ctDC[$k]=sprintf("%-4s", $row[0]);	$TOT_DC = ($TOT_DC + $row[0]);}
+		if ($row[1] == 'DNC') {$ctDNC[$k]=sprintf("%-4s", $row[0]);	$TOT_DNC = ($TOT_DNC + $row[0]);}
+		if ($row[1] == 'N') {$ctN[$k]=sprintf("%-4s", $row[0]);		$TOT_N = ($TOT_N + $row[0]);}
+		if ($row[1] == 'NI') {$ctNI[$k]=sprintf("%-4s", $row[0]);	$TOT_NI = ($TOT_NI + $row[0]);}
+		if (($row[1] == 'SALE') || ($row[1] == 'XFER') ) {$ctSALE[$k]=sprintf("%-4s", $row[0]);	$TOT_SALE = ($TOT_SALE + $row[0]);}
+		$m++;
+		}
+	echo "| $full_name[$k] | $user[$k] | $calls[$k] | $pfUSERtotTALK_MS[$k] | $pfUSERavgTALK_MS[$k] | $ctA[$k] | $ctB[$k] | $ctDC[$k] | $ctDNC[$k] | $ctN[$k] | $ctNI[$k] | $ctSALE[$k] |\n";
+
+
+
+	$k++;
+	}
+
+	$TOTcalls =	sprintf("%-7s", $TOTcalls);
+
+	$TOTtotTALK_M = ($TOTtotTALK / 60);
+	$TOTtotTALK_M = round($TOTtotTALK_M, 2);
+	$TOTtotTALK_M_int = intval("$TOTtotTALK_M");
+	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
+	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
+	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
+	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
+	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
+	$TOTtotTALK_MS =		sprintf("%7s", $TOTtotTALK_MS);
+		while(strlen($TOTtotTALK_MS)>7) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+
+	$TOT_A = sprintf("%-5s", $TOT_A);
+	$TOT_B = sprintf("%-5s", $TOT_B);
+	$TOT_DC = sprintf("%-5s", $TOT_DC);
+	$TOT_DNC = sprintf("%-5s", $TOT_DNC);
+	$TOT_N = sprintf("%-5s", $TOT_N);
+	$TOT_NI = sprintf("%-5s", $TOT_NI);
+	$TOT_SALE = sprintf("%-5s", $TOT_SALE);
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "|  TOTALS                    | $TOTcalls| $TOTtotTALK_MS|        | $TOT_A| $TOT_B| $TOT_DC| $TOT_DNC| $TOT_N| $TOT_NI| $TOT_SALE|\n";
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+
+echo "\n";
+
+}
+
+
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_performance_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_performance_detail.php
new file mode 100644
index 00000000..0ebbbf24
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_performance_detail.php
@@ -0,0 +1,822 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 71119-2359 - First build
+# 71121-0144 - Replace existing AST_agent_performance_detail.php script with this one
+#            - Fixed zero division bug
+# 71218-1155 - added end_date for multi-day reports
+# 80428-0144 - UTF8 cleanup
+# 80712-1007 - tally bug fixes and time display change
+# 81030-0346 - Added pause code stats
+# 81030-1924 - Added total non-pause and total logged-in time to pause code section
+# 81108-0716 - fixed user same-name bug
+# 81110-0056 - fixed pause code display bug
+# 90310-2039 - Admin header
+# 90508-0644 - Changed to PHP long tags
+# 90523-0935 - Rewrite of seconds to minutes and hours conversion
+# 90717-1500 - Changed to be multi-campaign, multi-user-group select
+# 90908-1058 - Added DEAD time statistics
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["VALIDER"]))					{$VALIDER=$_GET["VALIDER"];}
+	elseif (isset($_POST["VALIDER"]))		{$VALIDER=$_POST["VALIDER"];}
+
+
+if (strlen($shift)<2) {$shift='ALL';}
+
+$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&group=$group&user_group=$user_group&shift=$shift&DB=$DB";
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} +?> + + + + + +\n"; +echo "Agent Performance Détail\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campagnes:
"; +echo "\n"; +echo "
Groupes d'utilisateurs:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " RAPPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "S'IL VOUS PLAÎT CHOISIR UNE CAMPAGNE ET DATE EN TEMPS ET CLIQUEZ CI-DESSUS VALIDER\n";
+echo " NOTE: stats taken from shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+else {$ugSQL='';}
+
+echo "Agent Performance Détail                        $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Détails -------------\n\n";
+
+
+
+
+
+$statuses='-';
+$statusesTXT='';
+$statusesHEAD='';
+$statusesHTML='';
+$statusesARY[0]='';
+$j=0;
+$users='-';
+$usersARY[0]='';
+$user_namesARY[0]='';
+$k=0;
+
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_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 pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+#	$row[0] = ($row[0] - 1);	# subtract 1 for login/logout event compensation
+	
+	$calls[$i] =		$row[0];
+	$talk_sec[$i] =		$row[1];
+	$full_name[$i] =	$row[2];
+	$user[$i] =			$row[3];
+	$pause_sec[$i] =	$row[4];
+	$wait_sec[$i] =		$row[5];
+	$dispo_sec[$i] =	$row[6];
+	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
+	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+		{
+		$statusesTXT = sprintf("%8s", $status[$i]);
+		$statusesHEAD .= "----------+";
+		$statusesHTML .= " $statusesTXT |";
+		$statuses .= "$status[$i]-";
+		$statusesARY[$j] = $status[$i];
+		$j++;
+		}
+	if (!eregi("-$user[$i]-", $users))
+		{
+		$users .= "$user[$i]-";
+		$usersARY[$k] = $user[$i];
+		$user_namesARY[$k] = $full_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "CALL STATS BREAKDOWN:\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+while ($m < $k)
+	{
+	$Suser=$usersARY[$m];
+	$Sfull_name=$user_namesARY[$m];
+	$Stime=0;
+	$Scalls=0;
+	$Stalk_sec=0;
+	$Spause_sec=0;
+	$Swait_sec=0;
+	$Sdispo_sec=0;
+	$Sdead_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$Stalk_sec =	($Stalk_sec + $talk_sec[$i]);
+				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
+				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
+				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
+				$SstatusTXT = sprintf("%8s", $calls[$i]);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	$TOTcalls=($TOTcalls + $Scalls);
+	$TOTtime=($TOTtime + $Stime);
+	$TOTtotTALK=($TOTtotTALK + $Stalk_sec);
+	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
+		else {$Stalk_avg=0;}
+	if ( ($Scalls > 0) and ($Spause_sec > 0) ) {$Spause_avg = ($Spause_sec/$Scalls);}
+		else {$Spause_avg=0;}
+	if ( ($Scalls > 0) and ($Swait_sec > 0) ) {$Swait_avg = ($Swait_sec/$Scalls);}
+		else {$Swait_avg=0;}
+	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
+		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
+
+	$RAWuser = $Suser;
+	$RAWcalls = $Scalls;
+	$Scalls =	sprintf("%6s", $Scalls);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{	
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
+
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
+	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
+
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
+
+	$TOPsorted_output[$m] = $Toutput;
+
+	if ($stage == 'ID')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'CALLS')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'TIME')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if (!ereg("ID|TIME|CALLS",$stage))
+		{echo "$Toutput";}
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+if (ereg("ID|TIME|CALLS",$stage))
+	{
+	if (ereg("ID",$stage))
+		{sort($TOPsort, SORT_NUMERIC);}
+	if (ereg("TIME|CALLS",$stage))
+		{rsort($TOPsort, SORT_NUMERIC);}
+
+	$m=0;
+	while ($m < $k)
+		{
+		$sort_split = explode("-----",$TOPsort[$m]);
+		$i = $sort_split[1];
+		$sort_order[$m] = "$i";
+		echo "$TOPsorted_output[$i]";
+		$m++;
+		}
+	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $rows_to_print)
+		{
+		if ($Sstatus=="$status[$i]")
+			{
+			$Scalls =		($Scalls + $calls[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$SUMstatusTXT = sprintf("%8s", $Scalls);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
+
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
+
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
+
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
+
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+
+
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+echo "\n\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$sub_statuses='-';
+$sub_statusesTXT='';
+$sub_statusesHEAD='';
+$sub_statusesHTML='';
+$sub_statusesARY=$MT;
+$j=0;
+$PCusers='-';
+$PCusersARY=$MT;
+$PCuser_namesARY=$MT;
+$k=0;
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + 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 pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$subs_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $subs_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$PCfull_name[$i] =	$row[0];
+	$PCuser[$i] =		$row[1];
+	$PCpause_sec[$i] =	$row[2];
+	$sub_status[$i] =	$row[3];
+	$PCnon_pause_sec[$i] =	$row[4];
+
+#	echo "$sub_status[$i]|$PCpause_sec[$i]\n";
+#	if ( (!eregi("-$sub_status[$i]-", $sub_statuses)) and (strlen($sub_status[$i])>0) )
+	if (!eregi("-$sub_status[$i]-", $sub_statuses))
+		{
+		$sub_statusesTXT = sprintf("%8s", $sub_status[$i]);
+		$sub_statusesHEAD .= "----------+";
+		$sub_statusesHTML .= " $sub_statusesTXT |";
+		$sub_statuses .= "$sub_status[$i]-";
+		$sub_statusesARY[$j] = $sub_status[$i];
+		$j++;
+		}
+	if (!eregi("-$PCuser[$i]-", $PCusers))
+		{
+		$PCusers .= "$PCuser[$i]-";
+		$PCusersARY[$k] = $PCuser[$i];
+		$PCuser_namesARY[$k] = $PCfull_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "PAUSE CODE BREAKDOWN:\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+$Suser_ct = count($usersARY);
+$TOTtotNONPAUSE = 0;
+$TOTtotTOTAL = 0;
+
+while ($m < $k)
+	{
+	$d=0;
+	while ($d < $Suser_ct)
+		{
+		if ($usersARY[$d] === "$PCusersARY[$m]")
+			{$pcPAUSEtotal = $PAUSEtotal[$d];}
+		$d++;
+		}
+	$Suser=$PCusersARY[$m];
+	$Sfull_name=$PCuser_namesARY[$m];
+	$Spause_sec=0;
+	$Snon_pause_sec=0;
+	$Stotal_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$sub_statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $subs_to_print)
+			{
+			if ( ($Suser=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") )
+				{
+				$Spause_sec =	($Spause_sec + $PCpause_sec[$i]);
+				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
+				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
+
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
+
+				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
+	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
+
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
+
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
+
+	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
+
+	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
+
+	echo "$BOTTOMoutput";
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+#if (ereg("ID|TIME|CALLS",$stage))
+#	{
+#	$n=0;
+#	while ($n <= $m)
+#		{
+#		$i = $sort_order[$m];
+#		echo "$BOTTOMsorted_output[$i]";
+#		$m--;
+#		}
+#	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$TOTtotPAUSE=0;
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$sub_statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $subs_to_print)
+		{
+		if ($Sstatus=="$sub_status[$i]")
+			{
+			$Scalls =		($Scalls + $PCpause_sec[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
+
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
+
+		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+	$TOT_AGENTS = sprintf("%-4s", $m);
+
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
+
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
+
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+
+
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+echo "\n\n";
+
+}
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_status_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_status_detail.php new file mode 100644 index 00000000..389d0dfa --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_status_detail.php @@ -0,0 +1,666 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-1554 - First build +# 90225-2252 - Added CSV download option +# 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Status Détail Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "S'IL VOUS PLAÎT Sélectionnez une campagne ou groupe d'utilisateurs-HEURE ET DATE ET CLIQUEZ CI-DESSUS VALIDER\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Status Détail Report                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- AGENT Détails -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Status Détail Report                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$users='-';
+	$usersARY[0]='';
+	$user_namesARY[0]='';
+	$k=0;
+
+	$stmt="select count(*) as calls,full_name,vicidial_users.user,status 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 $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3])))
+			{
+			$calls[$i] =		$row[0];
+			$full_name[$i] =	$row[1];
+			$user[$i] =			$row[2];
+			$status[$i] =		$row[3];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$user[$i]-", $users))
+				{
+				$users .= "$user[$i]-";
+				$usersARY[$k] = $user[$i];
+				$user_namesARY[$k] = $full_name[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "| USER NAME       | ID       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Suser=$usersARY[$m];
+		$Sfull_name=$user_namesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+				if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWuser = $Suser;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		if ($non_latin < 1)
+			{
+			 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
+				while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+			 $Suser =		sprintf("%-8s", $Suser);
+				while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+			}
+		else
+			{	
+				$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+			 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+
+				$Suser =	sprintf("%-24s", $Suser);
+			 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+			}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sfull_name | $Suser | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$Sfull_name,$RAWuser,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+	$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+	if ($file_download < 1)
+		{
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+----------------------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_STATUS$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campagnes:
"; +echo "\n"; +echo "
Groupes d'utilisateurs:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " TÉLÉCHARGER | \n"; +echo " RAPPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_time_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_time_detail.php
new file mode 100644
index 00000000..a98137e5
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_time_detail.php
@@ -0,0 +1,867 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+# 90522-0723 - First build
+# 90908-1103 - Added DEAD time stats
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='NAME';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_time_sheet.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_time_sheet.php
new file mode 100644
index 00000000..9c5ce9ed
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_time_sheet.php
@@ -0,0 +1,311 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1729 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 80624-0132 - Added vicidial_timeclock entries
+# 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["agent"]))				{$agent=$_GET["agent"];}
+	elseif (isset($_POST["agent"]))		{$agent=$_POST["agent"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["calls_summary"]))			{$calls_summary=$_GET["calls_summary"];}
+	elseif (isset($_POST["calls_summary"]))	{$calls_summary=$_POST["calls_summary"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))	{$submit=$_POST["submit"];}
+if (isset($_GET["VALIDER"]))				{$VALIDER=$_GET["VALIDER"];}
+	elseif (isset($_POST["VALIDER"]))	{$VALIDER=$_POST["VALIDER"];}
+
+$user=$agent;
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+?>
+
+
+
+
+
+\n";
+echo "Agent Feuille de temps";
+
+
+##### BEGIN Set variables to make header show properly #####
+$ADD =					'3';
+$hh =					'users';
+$LOGast_admin_access =	'1';
+$ADMIN =				'admin.php';
+$page_width='770';
+$section_width='750';
+$header_font_size='3';
+$subheader_font_size='2';
+$subcamp_font_size='2';
+$header_selected_bold='<b>';
+$header_nonselected_bold='';
+$users_color =		'#FFFF99';
+$users_font =		'BLACK';
+$users_color =		'#E6E6E6';
+$subcamp_color =	'#C6C6C6';
+##### END Set variables to make header show properly #####
+
+require("admin_header.php");
+
+echo "<TABLE WIDTH=$page_width BGCOLOR=\"#F0F5FE\" cellpadding=2 cellspacing=0><TR BGCOLOR=\"#F0F5FE\"><TD>\n";
+
+echo "AgentFeuille de tempsfor: $user\n";
+echo "<BR>\n";
+echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>   \n";
+echo "Date: <INPUT TYPE=TEXT NAME=query_date SIZE=19 MAXLENGTH=19 VALUE=\"$query_date\">\n";
+echo "Utilisateur ID: <INPUT TYPE=TEXT NAME=agent SIZE=10 MAXLENGTH=20 VALUE=\"$agent\">\n";
+echo "<INPUT TYPE=Submit NAME=VALIDER VALUE=VALIDER>\n";
+echo "</FORM>\n\n";
+
+echo "<PRE><FONT SIZE=3>\n";
+
+
+if (!$agent)
+{
+echo "\n";
+echo "PLEASE SELECT AN AGENT ID AND DATE-TIME ABOVE AND CLICK VALIDER\n";
+echo " NOTE: stats taken from available agent log data\n";
+}
+
+else
+{
+$query_date_BEGIN = "$query_date 00:00:00";   
+$query_date_END = "$query_date 23:59:59";
+$time_BEGIN = "00:00:00";   
+$time_END = "23:59:59";
+
+$stmt="select full_name from vicidial_users where user='$agent';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$full_name = $row[0];
+
+echo "AgentFeuille de temps                            $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n";
+
+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 <= '" . 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);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
+
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
+
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+
+	echo "TOTAL DES APPELSTAKEN: $row[0]\n";
+	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
+	echo "PAUSE TIME:              $pfPAUSE_TIME_HMS     AVERAGE: $pfPAUSE_AVG_MS\n";
+	echo "WAIT TIME:               $pfWAIT_TIME_HMS     AVERAGE: $pfWAIT_AVG_MS\n";
+	echo "WRAPUP TIME:             $pfWRAPUP_TIME_HMS     AVERAGE: $pfWRAPUP_AVG_MS\n";
+	echo "----------------------------------------------------------------\n";
+	echo "TOTAL ACTIVE AGENT TIME: $pfTOTAL_TIME_HMS\n";
+
+	echo "\n";
+	}
+else
+	{
+	echo "<a href=\"$PHP_SELF?calls_summary=1&agent=$agent&query_date=$query_date\">Call Activity Summary</a>\n\n";
+
+	}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "FIRST LOGIN:          $row[0]\n";
+$start = $row[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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "LAST LOG ACTIVITY:    $row[0]\n";
+$end = $row[1];
+
+$login_time = ($end - $start);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+
+echo "-----------------------------------------\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
+
+
+### timeclock records
+
+
+##### vicidial_timeclock log records for user #####
+
+$total_login_time=0;
+$SQday_ARY =	explode('-',$query_date_BEGIN);
+$EQday_ARY =	explode('-',$query_date_END);
+$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+echo "\n";
+
+echo "<B>TIMECLOCK HEURE DE CONNECTION/DECONNECTION:</B>\n";
+echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n";
+echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HEURES:MINUTES</td></tr>\n";
+
+	$stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='$agent' and event_epoch >= '$SQepoch'  and event_epoch <= '$EQepoch';";
+	if ($DB>0) {echo "|$stmt|";}
+	$rslt=mysql_query($stmt, $link);
+	$events_to_print = mysql_num_rows($rslt);
+
+	$total_logs=0;
+	$o=0;
+	while ($events_to_print > $o) {
+		$row=mysql_fetch_row($rslt);
+		if ( ($row[0]=='START') or ($row[0]=='LOGIN') )
+			{$bgcolor='bgcolor="#B9CBFD"';} 
+		else
+			{$bgcolor='bgcolor="#9BB9FB"';}
+
+		$TC_log_date = date("Y-m-d H:i:s", $row[1]);
+
+		$manager_edit='';
+		if (strlen($row[6])>0) {$manager_edit = ' * ';}
+
+		if (ereg("LOGIN", $row[0]))
+			{
+			$login_sec='';
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> </td></tr>\n";
+			}
+		if (ereg("LOGOUT", $row[0]))
+			{
+			$login_sec = $row[3];
+			$total_login_time = ($total_login_time + $login_sec);
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> $event_hours_minutes";
+			if ($DB) {echo " - $total_login_time - $login_sec";}
+			echo "</td></tr>\n";
+			}
+		$o++;
+	}
+if (strlen($login_sec)<1)
+	{
+	$login_sec = ($STARTtime - $row[1]);
+	$total_login_time = ($total_login_time + $login_sec);
+		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
+	}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
+
+	if ($DB) {echo " - $total_login_time - $login_sec";}
+
+echo "<tr><td align=right><font size=2> </td>";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
+
+echo "</TABLE>\n";
+
+
+
+}
+
+
+
+?>
+
+</BODY></HTML>
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_timeclock_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_inboundEXTstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_inboundEXTstats.php new file mode 100644 index 00000000..2a462624 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_inboundEXTstats.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$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 and view_reports='1';"; + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.11.20';} + +$stmt="select extension,full_number,inbound_name from inbound_numbers where server_ip='" . mysql_real_escape_string($server_ip) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$inbound_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + $inbound[$i] =$row[0]; + $fullnum[$i] =$row[1]; + $inbname[$i] =$row[2]; + $i++; + } +?> + + + + + +\n"; +#echo"\n"; +echo "ASTERISK: Statistiques des appels entrants\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "VEUILLEZ SELECTIONNER UN NUMERO ET UNE DATE CI-DESSUS ET CLIQUEZ SUR VALIDER\n";
+}
+
+else
+{
+
+
+echo "ASTERISK: Statistiques des appels entrants                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALS\n";
+
+$extenSQL = "and extension='" . mysql_real_escape_string($group) . "'";
+if (eregi("\*",$group))
+	{$extenSQL = "and extension LIKE \"%$group\"";}
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$average_hold_seconds = ($row[1] / $row[0]);
+$average_hold_seconds = round($average_hold_seconds, 0);
+$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+
+echo "Total des appels reçus par ce numéro:       $TOTALcalls\n";
+echo "Average Call Length(seconds) for all Calls:   $average_hold_seconds\n";
+
+echo "\n";
+echo "---------- ABANDONNES\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+$DROPpercent = round($DROPpercent, 0);
+
+if ($row[0])
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+else {$DROPpercent=0;   $average_hold_seconds=0;}
+echo "Total DROP Calls:   (less than 10 seconds)    $DROPcalls  $DROPpercent%\n";
+echo "Average Call Length(seconds) for DROP Calls:  $average_hold_seconds\n";
+
+
+##############################
+#########  CALLS STATS
+
+echo "\n";
+echo "---------- CALL LISTINGS\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+echo "| CALLERID             | CALLERIDNAME         | LENGTH | DATE TIME           |\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$CID =			sprintf("%-20s", $row[0]);
+	$CIDname =		sprintf("%-20s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}
+	$datetime =		sprintf("%-19s", $row[3]);
+	$USERavgTALK =	$row[2];
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$USERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $CID | $CIDname | $USERavgTALK_MS | $datetime |\n";
+
+	$i++;
+	}
+
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+##############################
+#########  TIME STATS
+
+if ($output == 'FULL')
+	{
+
+	echo "\n";
+	echo "---------- STATISTIQUE TEMPORELLES\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+		$h++;
+		}
+
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+
+	echo "\n";
+	echo "GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES DU TOTAL DES APPELS\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+	echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$Gdrop_count = $drop_count[$i];
+			if ($Gdrop_count < 1) 
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "*X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 101) {echo " ";   $char_counter++;}
+				echo "| 0     | $hour_count[$i] |\n";
+
+				}
+			else
+				{
+				$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+			#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+				$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+				echo "D";   $char_counter++;
+				$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 102) {echo " ";   $char_counter++;}
+				echo "| $drop_count[$i] | $hour_count[$i] |\n";
+				}
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+
+	}
+
+
+
+
+}
+
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_server_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_server_performance.php new file mode 100644 index 00000000..4ee25002 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_server_performance.php @@ -0,0 +1,346 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1732 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70417-1106 - Changed time frame to be definable per time range on a single day +# - Fixed vertical scaling issues +# 80118-1508 - Fixed horizontal scale marking issues +# 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_query_time"])) {$begin_query_time=$_GET["begin_query_time"];} + elseif (isset($_POST["begin_query_time"])) {$begin_query_time=$_POST["begin_query_time"];} +if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"];} + elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$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 and view_reports='1' and modify_servers='1';"; + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +# path from root to where ploticus files will be stored +$PLOTroot = "vicidial/ploticus"; +$DOCroot = "$WeBServeRRooT/$PLOTroot/"; + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +if (!isset($begin_query_time)) {$begin_query_time = "$NOW_DATE 09:00:00";} +if (!isset($end_query_time)) {$end_query_time = "$NOW_DATE 15:30:00";} +if (!isset($group)) {$group = '';} + +$stmt="select server_ip from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + + + + + +\n"; +echo "Server Performance Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + + +echo "
\n"; +echo "Date/Time Range: \n"; +echo "to \n"; +echo "Server: \n"; +echo "\n"; +echo "             RAPPORTS \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A SERVEUR AND DATE/TIME RANGE ABOVE AND CLICK VALIDER\n";
+}
+
+else
+{
+
+$query_date_BEGIN = $begin_query_time;   
+$query_date_END = $end_query_time;
+
+
+echo "Server Performance Report                            $NOW_TIME\n";
+
+echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALS, PEAKS and AVERAGES\n";
+
+$stmt="select AVG(sysload),AVG(channels_total),MAX(sysload),MAX(channels_total),MAX(processes) 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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGload =	sprintf("%10s", $row[0]);
+$AVGchannels =	sprintf("%10s", $row[1]);
+$HIGHload =	$row[2];
+	$HIGHmulti = intval($HIGHload / 100);
+$HIGHchannels =	$row[3];
+$HIGHprocesses =$row[4];
+if ($row[2] > $row[3]) {$HIGHlimit = $row[2];}
+else {$HIGHlimit = $row[3];}
+if ($HIGHlimit < $row[4]) {$HIGHlimit = $row[4];}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGcpuUSER =	sprintf("%10s", $row[0]);
+$AVGcpuSYSTEM =	sprintf("%10s", $row[1]);
+$AVGcpuIDLE =	sprintf("%10s", $row[2]);
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$OFFHOOKtime =	sprintf("%10s", $row[1]);
+
+
+echo "Total Calls in/out on this server:        $TOTALcalls\n";
+echo "Total Off-Hook time on this server (min): $OFFHOOKtime\n";
+echo "Average/Peak channels in use for server:  $AVGchannels / $HIGHchannels\n";
+echo "Average/Peak load for server:             $AVGload / $HIGHload\n";
+echo "Average USER process cpu percentage:      $AVGcpuUSER %\n";
+echo "Average SYSTEM process cpu percentage:    $AVGcpuSYSTEM %\n";
+echo "Average IDLE process cpu percentage:      $AVGcpuIDLE %\n";
+
+echo "\n";
+echo "---------- LINE GRAPH:\n";
+
+
+
+##############################
+#########  Graph stats
+
+$DAT = '.dat';
+$HTM = '.htm';
+$PNG = '.png';
+$filedate = date("Y-m-d_His");
+$DATfile = "$group$query_date$shift$filedate$DAT";
+$HTMfile = "$group$query_date$shift$filedate$HTM";
+$PNGfile = "$group$query_date$shift$filedate$PNG";
+
+$HTMfp = fopen ("$DOCroot/$HTMfile", "a");
+$DATfp = fopen ("$DOCroot/$DATfile", "a");
+
+$stmt="select DATE_FORMAT(start_time,'%Y-%m-%d.%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 limit 99999;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	if ($i<1) {$time_BEGIN = $row[0];}
+	$time_END = $row[0];
+	$row[5] = intval(($row[5] + $row[6]) * $HIGHmulti);
+	$row[6] = intval($row[6] * $HIGHmulti);
+	if ($rows_to_print > 9999)
+		{
+		if ($rows_to_print <= 19999)
+			{
+			if (preg_match("/0$|2$|4$|6$|8$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 19999) and ($rows_to_print <= 49999) )
+			{
+			if (preg_match("/0$|5$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 49999) and ($rows_to_print <= 99999) )
+			{
+			if (preg_match("/0$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		}
+	else
+		{
+		fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+		}
+	$i++;
+	}
+fclose($DATfp);
+
+$rows_to_max = ($rows_to_print + 100);
+
+$time_scale_abb = '5 minutes';
+$time_scale_tick = '1 minute';
+if ($i > 1000) {$time_scale_abb = '10 minutes';   $time_scale_tick = '2 minutes';}
+if ($i > 1500) {$time_scale_abb = '15 minutes';   $time_scale_tick = '3 minutes';}
+if ($i > 2000) {$time_scale_abb = '20 minutes';   $time_scale_tick = '4 minutes';}
+if ($i > 3000) {$time_scale_abb = '30 minutes';   $time_scale_tick = '5 minutes';}
+if ($i > 4000) {$time_scale_abb = '40 minutes';   $time_scale_tick = '10 minutes';}
+if ($i > 5000) {$time_scale_abb = '60 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 6000) {$time_scale_abb = '90 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 7000) {$time_scale_abb = '120 minutes';   $time_scale_tick = '30 minutes';}
+
+print "rows: $i   tick: $time_scale_abb   scale: $time_scale_tick\n";
+
+$HTMcontent  = '';
+$HTMcontent .= "#proc page\n";
+$HTMcontent .= "#if @DEVICE in png,gif\n";
+$HTMcontent .= "   scale: 0.6\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#endif\n";
+$HTMcontent .= "#proc getdata\n";
+$HTMcontent .= "file: $DOCroot/$DATfile\n";
+$HTMcontent .= "fieldnames: userproc sysproc datetime load processes channels\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc areadef\n";
+$HTMcontent .= "title: Server $group   $query_date_BEGIN to $query_date_END\n";
+$HTMcontent .= "titledetails: size=14  align=C\n";
+$HTMcontent .= "rectangle: 1 1 12 7\n";
+$HTMcontent .= "xscaletype: datetime yyyy-mm-dd.hh:mm:ss\n";
+$HTMcontent .= "xrange: $time_BEGIN $time_END\n";
+$HTMcontent .= "yrange: 0 $HIGHlimit\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc xaxis\n";
+$HTMcontent .= "stubs: inc $time_scale_abb\n";
+$HTMcontent .= "minorticinc: $time_scale_tick\n";
+$HTMcontent .= "stubformat: hh:mma\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc yaxis\n";
+$HTMcontent .= "stubs: inc 50\n";
+$HTMcontent .= "grid: color=yellow\n";
+$HTMcontent .= "gridskip: min\n";
+$HTMcontent .= "ticincrement: 100 1000\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: userproc\n";
+$HTMcontent .= "linedetails: color=purple width=.5\n";
+$HTMcontent .= "fill: lavender\n";
+$HTMcontent .= "legendlabel: user proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: sysproc\n";
+$HTMcontent .= "linedetails: color=yelloworange width=.5\n";
+$HTMcontent .= "fill: dullyellow\n";
+$HTMcontent .= "legendlabel: system proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: load\n";
+$HTMcontent .= "linedetails: color=blue width=.5\n";
+$HTMcontent .= "legendlabel: load\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: processes\n";
+$HTMcontent .= "linedetails: color=red width=.5\n";
+$HTMcontent .= "legendlabel: processes\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: channels\n";
+$HTMcontent .= "linedetails: color=green width=.5\n";
+$HTMcontent .= "legendlabel: channels\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc legend\n";
+$HTMcontent .= "location: max-1 max\n";
+$HTMcontent .= "seglen: 0.2\n";
+$HTMcontent .= "\n";
+
+fwrite ($HTMfp, "$HTMcontent");
+fclose($HTMfp);
+
+
+passthru("/usr/local/bin/pl -png $DOCroot/$HTMfile -o $DOCroot/$PNGfile");
+
+sleep(1);
+
+echo "
"; +echo "\n"; +echo "\n"; + + +echo ""; + +} + + + +?> + +
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDAD.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDAD.php new file mode 100644 index 00000000..c209d665 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDAD.php @@ -0,0 +1,445 @@ + LICENSE: AGPLv2 +# +# 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 +# 61114-2004 - Changed to display CLOSER and DEFAULT, added trunk shortage +# 80422-0305 - Added phone login to display, lower font size to 2 +# 81013-2227 - Fixed Remote Agent display bug +# 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["closer_display"])) {$closer_display=$_GET["closer_display"];} + elseif (isset($_POST["closer_display"])) {$closer_display=$_POST["closer_display"];} + +$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 and view_reports='1';"; + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "Server-Specific Real-Time Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
";
+
+###################################################################################
+###### SERVER INFORMATION
+###################################################################################
+
+$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where server_ip='" . mysql_real_escape_string($server_ip) . "';";
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$balanceSHORT = $row[0];
+
+echo "SERVER: $server_ip\n";
+
+
+
+###################################################################################
+###### TIME ON SYSTEM
+###################################################################################
+
+if ($closer_display>0) {$closer_display_reverse=0;   $closer_reverse_link='DEFAULT';}
+else {$closer_display_reverse=1;   $closer_reverse_link='CLOSER';}
+
+echo "Agents Time On Calls           $NOW_TIME    $closer_reverse_link | RAPPORTS\n\n";
+
+if ($closer_display>0)
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\n";
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+}
+else
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$Sextension[$i] =		$row[0];
+		$Suser[$i] =			$row[1];
+		$Ssessionid[$i] =		$row[2];
+		$Schannel[$i] =			$row[3];
+		$Sstatus[$i] =			$row[4];
+		$Sstart_time[$i] =		$row[5];
+		$Scall_time[$i] =		$row[6];
+		$Sfinish_time[$i] =		$row[7];
+		$Suniqueid[$i] =		$row[8];
+		$Slead_id[$i] =			$row[9];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$phone[$i]='          ';
+		if (eregi("R/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('R/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi("Local/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('Local/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi('SIP/',$Sextension[$i])) 
+			{
+			$protocol = 'SIP';
+			$dialplan = eregi_replace('SIP/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('IAX2/',$Sextension[$i])) 
+			{
+			$protocol = 'IAX2';
+			$dialplan = eregi_replace('IAX2/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('Zap/',$Sextension[$i])) 
+			{
+			$protocol = 'Zap';
+			$dialplan = eregi_replace('Zap/',"",$Sextension[$i]);
+			$exten = "extension='$dialplan'";
+			}
+
+		$stmt="select login from phones where server_ip='" . mysql_real_escape_string($server_ip) . "' and $exten and protocol='$protocol';";
+		$rslt=mysql_query($stmt, $link);
+		$row=mysql_fetch_row($rslt);
+		$login = $row[0];
+
+		$phone[$i] =			sprintf("%-10s", $login);
+
+		if (eregi("READY|PAUSED|CLOSER",$Sstatus[$i]))
+			{
+			$Schannel[$i]='';
+			$Sstart_time[$i]='- WAIT -';
+			$Scall_time[$i]=$Sfinish_time[$i];
+			}
+		$extension[$i] = eregi_replace('Local/',"",$Sextension[$i]);
+		$extension[$i] =		sprintf("%-10s", $extension[$i]);
+			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
+		$user[$i] =				sprintf("%-6s", $Suser[$i]);
+		$sessionid[$i] =		sprintf("%-9s", $Ssessionid[$i]);
+		$channel[$i] =			sprintf("%-19s", $Schannel[$i]);
+			$cc[$i]=0;
+		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
+			{
+			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
+			$cc[$i]++;
+			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
+			}
+		$status[$i] =			sprintf("%-6s", $Sstatus[$i]);
+		$start_time[$i] =		sprintf("%-8s", $Sstart_time[$i]);
+			$cd[$i]=0;
+		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
+			{
+			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
+			$cd[$i]++;
+			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
+			}
+		$uniqueid[$i] =			$Suniqueid[$i];
+		$lead_id[$i] =			$Slead_id[$i];
+		$closer[$i] =			$Suser[$i];
+		$call_time_S[$i] = ($STARTtime - $Scall_time[$i]);
+
+		$call_time_M[$i] = ($call_time_S[$i] / 60);
+		$call_time_M[$i] = round($call_time_M[$i], 2);
+		$call_time_M_int[$i] = intval("$call_time_M[$i]");
+		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
+		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
+		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
+		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
+		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
+		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
+
+		if ($closer_display<1)
+			{
+			$G = '';		$EG = '';
+			if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+			if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+			if (eregi("PAUSED",$Sstatus[$i])) 
+				{
+				if ($call_time_M_int >= 1) 
+					{$i++; continue;} 
+				else
+					{$G=''; $EG='';}
+				}
+			$agentcount++;
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG |\n";
+			}
+		$i++;
+		}
+
+		if ($closer_display>0)
+		{
+
+			$ext_count = $i;
+			$i=0;
+		while ($i < $ext_count)
+			{
+
+			$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$camp_to_print = mysql_num_rows($rslt);
+			if ($camp_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$campaign = sprintf("%-12s", $row[0]);
+				$camp_color = $row[0];
+				}
+			else
+				{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
+			if (eregi("READY|PAUSED|CLOSER",$status[$i]))
+				{$campaign = '            ';   	$camp_color = '';}
+
+			$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$xfer_to_print = mysql_num_rows($rslt);
+			if ($xfer_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$fronter = sprintf("%-6s", $row[0]);
+				}
+			else
+				{$fronter = '      ';}
+
+			$G = '';		$EG = '';
+			$G=""; $EG='';
+		#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+		#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
+
+			$i++;
+			}
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+		echo "  $i agents connectés sur ce serveur $server_ip\n\n";
+	#	echo "             - En appel depuis 5 minutes ou plus\n";
+	#	echo "             - En appel depuis plus de 10 minutes\n";
+		}
+	else
+		{
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+		echo "  $agentcount agents connectés sur ce serveur $server_ip\n\n";
+
+		echo "             - Agents en pause\n";
+		echo "             - En appel depuis 5 minutes ou plus\n";
+		echo "             - En appel depuis plus de 10 minutes\n";
+		}
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "********************************* AUCUN AGENT EN APPEL*********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+###################################################################################
+###### OUTBOUND CALLS
+###################################################################################
+#echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "Server-Specific Real-Time Report        TRUNK SHORT: $balanceSHORT          $NOW_TIME\n\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-19s", $row[0]);
+			$cc=0;
+		while ( (strlen($channel) > 19) and ($cc < 100) )
+			{
+			$channel = eregi_replace(".$","",$channel);   
+			$cc++;
+			if (strlen($channel) <= 19) {$cc=101;}
+			}
+		$start_time =		sprintf("%-8s", $row[5]);
+			$cd=0;
+		while ( (strlen($start_time) > 8) and ($cd < 100) )
+			{
+			$start_time = eregi_replace("^.","",$start_time);   
+			$cd++;
+			if (strlen($start_time) <= 8) {$cd=101;}
+			}
+		$status =			sprintf("%-6s", $row[1]);
+		$campaign =			sprintf("%-12s", $row[2]);
+			$all_phone = "$row[3]$row[4]";
+		$number_dialed =	sprintf("%-18s", $all_phone);
+		$call_time_S = ($STARTtime - $row[6]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if (eregi("LIVE",$status)) {$G=''; $EG='';}
+	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+		echo "  $i appels étant placés sur ce serveur $server_ip\n\n";
+
+		echo "             - APPEL EN ATTENTE\n";
+	#	echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	echo "******************************* PAS D'APPEL EN ATTENTE*********************************\n";
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	}
+
+
+?>
+
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDADall.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDADall.php new file mode 100644 index 00000000..b913886c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDADall.php @@ -0,0 +1,1986 @@ + LICENSE: AGPLv2 +# +# live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# CHANGELOG: +# 50406-0920 - Added Paused agents < 1 min +# 51130-1218 - Modified layout and info to show all servers in a vicidial system +# 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 +# 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 +# 60626-1453 - Added display of system load to bottom (Angelito Manansala) +# 60901-1123 - Changed display elements at the top of the screen +# 60905-1342 - Fixed non INCALL|QUEUE timer column +# 61002-1642 - Added TRUNK SHORT/FILL stats +# 61101-1318 - Added SIP and IAX Listen and Barge links option +# 61101-1647 - Added Usergroup column and user name option as well as sorting +# 61102-1155 - Made display of columns more modular, added ability to hide server info +# 61215-1131 - Added answered calls and drop percent taken from answered calls +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70123-1151 - Added non_latin options for substr in display variables, thanks Marin Blu +# 70206-1140 - Added call-type statuses to display(A-Auto, M-Manual, I-Inbound/Closer) +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80227-0418 - Added priority to waiting calls display +# 80311-1550 - Added calls_today on all agents and wait time/in-group for inbound calls +# 80422-0033 - Added phonediaplay option, allow for toggle-sorting on sortable fields +# 80422-1001 - Fixed sort by phone login +# 80424-0515 - Added non_latin lookup from system_settings +# 80525-1040 - Added IVR status display and summary for inbound calls +# 80619-2047 - Added DISPO status for post-call-work while paused +# 80704-0543 - Added DEAD status for agents INCALL with no live call +# 80822-1222 - Added option for display of customer phone number +# 81011-0335 - Fixed remote agent display bug +# 81022-1500 - Added inbound call stats display option +# 81029-1023 - Changed drop percent calculation for multi-stat reports +# 81029-1706 - Added pause code display if enabled per campaign +# 81108-2337 - Added inbound-only section +# 90105-1153 - Changed monitor links to use 0 prefix instead of 6 +# 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option +# 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended +# + + +$version = '2.2.0-49'; +$build = '91204-1548'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["inbound"])) {$inbound=$_GET["inbound"];} + elseif (isset($_POST["inbound"])) {$inbound=$_POST["inbound"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["usergroup"])) {$usergroup=$_GET["usergroup"];} + elseif (isset($_POST["usergroup"])) {$usergroup=$_POST["usergroup"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["SIPmonitorLINK"])) {$SIPmonitorLINK=$_GET["SIPmonitorLINK"];} + elseif (isset($_POST["SIPmonitorLINK"])) {$SIPmonitorLINK=$_POST["SIPmonitorLINK"];} +if (isset($_GET["IAXmonitorLINK"])) {$IAXmonitorLINK=$_GET["IAXmonitorLINK"];} + elseif (isset($_POST["IAXmonitorLINK"])) {$IAXmonitorLINK=$_POST["IAXmonitorLINK"];} +if (isset($_GET["UGdisplay"])) {$UGdisplay=$_GET["UGdisplay"];} + elseif (isset($_POST["UGdisplay"])) {$UGdisplay=$_POST["UGdisplay"];} +if (isset($_GET["UidORname"])) {$UidORname=$_GET["UidORname"];} + elseif (isset($_POST["UidORname"])) {$UidORname=$_POST["UidORname"];} +if (isset($_GET["orderby"])) {$orderby=$_GET["orderby"];} + elseif (isset($_POST["orderby"])) {$orderby=$_POST["orderby"];} +if (isset($_GET["SERVdisplay"])) {$SERVdisplay=$_GET["SERVdisplay"];} + elseif (isset($_POST["SERVdisplay"])) {$SERVdisplay=$_POST["SERVdisplay"];} +if (isset($_GET["CALLSdisplay"])) {$CALLSdisplay=$_GET["CALLSdisplay"];} + elseif (isset($_POST["CALLSdisplay"])) {$CALLSdisplay=$_POST["CALLSdisplay"];} +if (isset($_GET["PHONEdisplay"])) {$PHONEdisplay=$_GET["PHONEdisplay"];} + elseif (isset($_POST["PHONEdisplay"])) {$PHONEdisplay=$_POST["PHONEdisplay"];} +if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdisplay"];} + elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} +if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} + elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $outbound_autodial_active = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if (!isset($DB)) {$DB=0;} +if (!isset($RR)) {$RR=40;} +if (!isset($group)) {$group='';} +if (!isset($usergroup)) {$usergroup='';} +if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name +if (!isset($orderby)) {$orderby='timeup';} +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes +if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes +if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes +if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes +if (!isset($PAUSEcodes)) {$PAUSEcodes='N';} # 0=no, 1=yes +if (!isset($with_inbound)) + { + if ($outbound_autodial_active > 0) + {$with_inbound='N';} # N=no, Y=yes, O=only + else + {$with_inbound='O';} # N=no, Y=yes, O=only + } +$ingroup_detail=''; + +if (strlen($group)>1) {$groups[0] = $group; $RR=40;} +else {$group = $groups[0];} + +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); + + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } + + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } + +$load_ave = get_server_load(true); + +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + + +$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 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='ALL-ACTIVE'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $LISTnames[$i] =$row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($groups); +while($i < $group_ct) + { + $group_string .= "$groups[$i]|"; + $group_SQL .= "'$groups[$i]',"; + $groupQS .= "&groups[]=$groups[$i]"; + $i++; + } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $all_active = 0; + $group_SQL = "''"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; + } +else + { + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$usergroups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $usergroups_to_print) + { + $row=mysql_fetch_row($rslt); + $usergroups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$select_list = ""; +$select_list .= ""; +$select_list .= "
Select Campagnes:
"; +$select_list .= ""; +$select_list .= "
(Pour sélectionner plus de 1 campagne, maintenez la touche Ctrl enfoncée et cliquez sur)"; +$select_list .= "
"; +$select_list .= "Fermer le panneau

"; + +if ($UGdisplay > 0) + { + $select_list .= "Select Groupe utilisateur:
"; + $select_list .= "

"; + } + +$select_list .= "   Inbound:         "; +$select_list .= "
"; +$select_list .= "   "; +$select_list .= ""; +$select_list .= "VERSION: $version   CONSTRUCTION: $build"; +$select_list .= "
"; + +$open_list = "
Rapport Choisissez Options d-affichage
"; + +?> + + + + + + +\n"; + +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; +$rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +echo "\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; +echo "
\n"; +echo "Rapport Choisissez Options d-affichage"; +echo "
\n"; +echo "
\n"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; +if (eregi('ALL-ACTIVE',$group_string)) + { + echo "       MODIFIER | \n"; + } +else + { + echo "       MODIFIER | \n"; + } +echo "SUMMARY \n"; +echo "\n\n"; + + +if (!$group) {echo "

please select a campaign from the pulldown above
\n"; exit;} +else +{ +$multi_drop=0; +### Gather list of all Closer group ids for exclusion from stats +$stmt = "select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +$ingroups_to_print = mysql_num_rows($rslt); +while ($ingroups_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + $ccamps_to_print = mysql_num_rows($rslt); + $c=0; + while ($ccamps_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaignsSQL .= "'$closer_campaigns',"; + $c++; + } + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; + + if ($adastats>1) + { + $stmtB="select calls_today,drops_today,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4,hold_sec_stat_one,hold_sec_stat_two,hold_sec_answer_calls,hold_sec_drop_calls,hold_sec_queue_calls,campaign_id from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if ($DB > 0) {echo "\n|$stmtB|\n";} + + $r=0; + $rslt=mysql_query($stmtB, $link); + $ingroups_to_print = mysql_num_rows($rslt); + if ($ingroups_to_print > 0) + {$ingroup_detail .= "";} + while ($ingroups_to_print > $r) + { + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + $ingroupdetail = $row[16]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_REPONSEagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_REPONSEagent_non_pause_sec = round($AVG_REPONSEagent_non_pause_sec, 2); + $AVG_REPONSEagent_non_pause_sec = sprintf("%01.2f", $AVG_REPONSEagent_non_pause_sec); + } + else + {$AVG_REPONSEagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_REPONSEagent_non_pause_sec=0; + } + + if (ereg("0$|2$|4$|6$|8$",$r)) {$bgcolor='#E6E6E6';} + else {$bgcolor='white';} + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + + $r++; + } + + if ($ingroups_to_print > 0) + {$ingroup_detail .= "
        $ingroupdetail   CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls  
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
REPONSES TODAY:  $answersTODAY    DROP PERCENT:  $drpctTODAY%    Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
";} + + } + + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; + + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; + } + + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; + + + if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_pause_codes_active = $row[0]; + + $rslt=mysql_query($stmtC, $link); + $row=mysql_fetch_row($rslt); + $agent_non_pause_sec = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_REPONSEagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_REPONSEagent_non_pause_sec = round($AVG_REPONSEagent_non_pause_sec, 2); + $AVG_REPONSEagent_non_pause_sec = sprintf("%01.2f", $AVG_REPONSEagent_non_pause_sec); + } + else + {$AVG_REPONSEagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_REPONSEagent_non_pause_sec=0; + } + + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +##### NOT INBOUND ONLY ### +else + { + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $multi_drop++; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; + } + else + { + if ($DB > 0) {echo "\n|$with_inbound|$campaign_allow_inbound|\n";} + + if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) + { + $multi_drop++; + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} + + $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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + } + else + { + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + } + } + if ($DB > 0) {echo "\n|$stmt|$stmtB|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $DIALlev = $row[0]; + $DIALstatusA = $row[1]; + $DIALstatusB = $row[2]; + $DIALstatusC = $row[3]; + $DIALstatusD = $row[4]; + $DIALstatusE = $row[5]; + $DIALorder = $row[6]; + $DIALfilter = $row[7]; + $HOPlev = $row[8]; + $DIALmethod = $row[9]; + $maxDIALlev = $row[10]; + $DROPmax = $row[11]; + $targetDIFF = $row[12]; + $ADAintense = $row[13]; + $ADAavailonly = $row[14]; + $TAPERtime = $row[15]; + $CALLtime = $row[16]; + $DIALtimeout = $row[17]; + $DIALstatuses = $row[18]; + $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; + + + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDhop = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $DAleads = $row[0]; + $callsTODAY = $row[1]; + $dropsTODAY = $row[2]; + $drpctTODAY = $row[3]; + $diffONEMIN = $row[4]; + $agentsONEMIN = $row[5]; + $balanceFILL = $row[6]; + $answersTODAY = $row[7]; + if ($multi_drop > 0) + { + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + } + $VSCcat1 = $row[8]; + $VSCcat1tally = $row[9]; + $VSCcat2 = $row[10]; + $VSCcat2tally = $row[11]; + $VSCcat3 = $row[12]; + $VSCcat3tally = $row[13]; + $VSCcat4 = $row[14]; + $VSCcat4tally = $row[15]; + + if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } + else {$diffpctONEMIN = '0.00';} + + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $balanceSHORT = $row[0]; + + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "Liste Mix: $row[0]"; + $DIALorder = "Liste Mix: $row[0]"; + } + } + + echo "
CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls   TIME:   $NOW_TIME
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
REPONSES TODAY:  $answersTODAY    (Agent non-pause time / Answers)Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
DROP PERCENT:  $drpctTODAY%    PRODUCTIVITY:  $AVG_REPONSEagent_non_pause_sec    
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + + + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
DIAL NIVEAU:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
- min   MAX NIVEAU:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL PROCEDE:  $DIALmethod    
HOPPER NIVEAU:  $HOPlev     DROPPED / REPONSEED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; + if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} + else + {echo "$drpctTODAY%";} + echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +echo "$ingroup_detail"; + +if ($adastats<2) + { + echo "+ VIEW MORE"; + } +else + { + echo "+ VIEW LESS"; + } +if ($UGdisplay>0) + { + echo "       CACHER GROUPE D'UTILISATEURS"; + } +else + { + echo "       VIEW GROUPE D'UTILISATEURS"; + } +if ($UidORname>0) + { + echo "       MONTRER AGENT ID"; + } +else + { + echo "       MONTRER AGENT NAME"; + } +if ($SERVdisplay>0) + { + echo "       CACHER SERVEUR INFO"; + } +else + { + echo "       MONTRER SERVEUR INFO"; + } +if ($CALLSdisplay>0) + { + echo "       CACHER WAITING CALLS"; + } +else + { + echo "       MONTRER WAITING CALLS"; + } +if ($PHONEdisplay>0) + { + echo "       CACHER PHONES"; + } +else + { + echo "       MONTRER PHONES"; + } +if ($CUSTPHONEdisplay>0) + { + echo "       CACHER CUSTPHONES"; + } +else + { + echo "       MONTRER CUSTPHONES"; + } +echo "
"; + +echo "\n\n"; +} +################################################################################### +###### INBOUND/OUTBOUND CALLS +################################################################################### +if ($campaign_allow_inbound > 0) + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; + } +else + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; + } +if ($CALLSdisplay > 0) + { + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; + } +else + { + $stmtA = "SELECT status"; + } + + +$k=0; +$agentonlycount=0; +$stmt = "$stmtA $stmtB"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + { + $out_live++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + else + { + if (eregi("IVR",$row[0])) + { + $in_ivr++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + + $out_total++; + $i++; + } + + ##### MIDI alert audio file test ##### + # $test_midi=1; + # if ($test_midi > 0) + # { + # # echo ""; + # # echo ""; + # echo ""; + # echo " "; + # echo " "; + # echo " "; + # echo " "; + # echo " alt : test.mid"; + # echo ""; + # } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo " PAS D'APPEL EN ATTENTE\n"; + } + + + +################################################################################### +###### CALLS WAITING +################################################################################### +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} +$Cecho = ''; +$Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITÉ | $agentonlyheader\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +$p=0; +while($p<$k) + { + $Cstatus = sprintf("%-6s", $CDstatus[$p]); + $Ccampaign_id = sprintf("%-12s", $CDcampaign_id[$p]); + $Cphone_number = sprintf("%-12s", $CDphone_number[$p]); + $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); + $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); + $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); + + $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); + $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); + + $G = ''; $EG = ''; + if ($CDcall_type[$p] == 'IN') + { + $G=""; $EG=''; + } + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; + + $p++; + } +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +if ($p<1) + {$Cecho='';} + +################################################################################### +###### AGENT TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_dead=0; +$agent_total=0; + +$phoneord=$orderby; +$userord=$orderby; +$groupord=$orderby; +$timeord=$orderby; +$campaignord=$orderby; + +if ($phoneord=='phoneup') {$phoneord='phonedown';} + else {$phoneord='phoneup';} +if ($userord=='userup') {$userord='userdown';} + else {$userord='userup';} +if ($groupord=='groupup') {$groupord='groupdown';} + else {$groupord='groupup';} +if ($timeord=='timeup') {$timeord='timedown';} + else {$timeord='timeup';} +if ($campaignord=='campaignup') {$campaignord='campaigndown';} + else {$campaignord='campaignup';} + +$Aecho = ''; +$Aecho .= "VICIDIAL: Agents Time On Calls Campagne: $group_string $NOW_TIME\n"; + + +$HDbegin = "+"; +$HTbegin = "|"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; +$HDusergroup = "--------------+"; +$HTusergroup = " GROUPE D'UTILISATEURS |"; +$HDsessionid = "------------------+"; +$HTsessionid = " SESSIONID |"; +$HDbarge = "-------+"; +$HTbarge = " BARGE |"; +$HDstatus = "----------+"; +$HTstatus = " STATUS |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; +$HDserver_ip = "-----------------+"; +$HTserver_ip = " SERVEUR IP |"; +$HDcall_server_ip = "-----------------+"; +$HTcall_server_ip = " CALL SERVEUR IP |"; +$HDtime = "---------+"; +$HTtime = " MM:SS |"; +$HDcampaign = "------------+"; +$HTcampaign = " CAMPAIGN |"; +$HDcalls = "-------+"; +$HTcalls = " CALLS |"; +$HDpause = ''; +$HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; + +if (!ereg("N",$agent_pause_codes_active)) + { + $HDstatus = "----------"; + $HTstatus = " STATUS "; + $HDpause = "-------+"; + $HTpause = " PAUSE |"; + } +if ($PHONEdisplay < 1) + { + $HDphone = ''; + $HTphone = ''; + } +if ($CUSTPHONEdisplay < 1) + { + $HDcustphone = ''; + $HTcustphone = ''; + } +if ($UGdisplay < 1) + { + $HDusergroup = ''; + $HTusergroup = ''; + } +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + { + $HDsessionid = "-----------+"; + $HTsessionid = " SESSIONID |"; + } +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) + { + $HDbarge = ''; + $HTbarge = ''; + } +if ($SERVdisplay < 1) + { + $HDserver_ip = ''; + $HTserver_ip = ''; + $HDcall_server_ip = ''; + $HTcall_server_ip = ''; + } + + + +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; +$Aecho .= "$Aline"; +$Aecho .= "$Bline"; +$Aecho .= "$Aline"; + +if ($orderby=='timeup') {$orderSQL='vicidial_live_agents.status,last_call_time';} +if ($orderby=='timedown') {$orderSQL='vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='campaignup') {$orderSQL='vicidial_live_agents.campaign_id,vicidial_live_agents.status,last_call_time';} +if ($orderby=='campaigndown') {$orderSQL='vicidial_live_agents.campaign_id desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='groupup') {$orderSQL='user_group,vicidial_live_agents.status,last_call_time';} +if ($orderby=='groupdown') {$orderSQL='user_group desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='phoneup') {$orderSQL='extension,server_ip';} +if ($orderby=='phonedown') {$orderSQL='extension desc,server_ip desc';} +if ($UidORname > 0) + { + if ($orderby=='userup') {$orderSQL='full_name,status,last_call_time';} + if ($orderby=='userdown') {$orderSQL='full_name desc,status desc,last_call_time desc';} + } +else + { + if ($orderby=='userup') {$orderSQL='vicidial_live_agents.user';} + if ($orderby=='userdown') {$orderSQL='vicidial_live_agents.user desc';} + } + +if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} +else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} +if (strlen($usergroup)<1) {$usergroupSQL = '';} +else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} + +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + + $Aextension[$i] = $row[0]; + $Auser[$i] = $row[1]; + $Asessionid[$i] = $row[2]; + $Astatus[$i] = $row[3]; + $Aserver_ip[$i] = $row[4]; + $Acall_time[$i] = $row[5]; + $Acall_finish[$i] = $row[6]; + $Acall_server_ip[$i] = $row[7]; + $Acampaign_id[$i] = $row[8]; + $Auser_group[$i] = $row[9]; + $Afull_name[$i] = $row[10]; + $Acomments[$i] = $row[11]; + $Acalls_today[$i] = $row[12]; + $Acallerid[$i] = $row[13]; + $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; + + $i++; + } + +$callerids=''; +$pausecode=''; +$stmt="select callerid,lead_id,phone_number from vicidial_auto_calls;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$calls_to_list = mysql_num_rows($rslt); + if ($calls_to_list > 0) + { + $i=0; + while ($i < $calls_to_list) + { + $row=mysql_fetch_row($rslt); + $callerids .= "$row[0]|"; + $VAClead_ids[$i] = $row[1]; + $VACphones[$i] = $row[2]; + $i++; + } + } + +### Lookup phone logins + $i=0; + while ($i < $talking_to_print) + { + if (eregi("R/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('R/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi("Local/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('Local/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi('SIP/',$Aextension[$i])) + { + $protocol = 'SIP'; + $dialplan = eregi_replace('SIP/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('IAX2/',$Aextension[$i])) + { + $protocol = 'IAX2'; + $dialplan = eregi_replace('IAX2/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('Zap/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + + $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $phones_to_print = mysql_num_rows($rslt); + if ($phones_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Alogin[$i] = "$row[0]-----$i"; + } + else + { + $Alogin[$i] = "$Aextension[$i]-----$i"; + } + $i++; + } + +### Sort by phone if selected + if ($orderby=='phoneup') + { + sort($Alogin); + } + if ($orderby=='phonedown') + { + rsort($Alogin); + } + +### Run through the loop to display agents + $j=0; + $agentcount=0; + while ($j < $talking_to_print) + { + $n=0; + $custphone=''; + while ($n < $calls_to_list) + { + if ( (ereg("$VAClead_ids[$n]", $Alead_id[$j])) and (strlen($VAClead_ids[$n]) == strlen($Alead_id[$j])) ) + {$custphone = $VACphones[$n];} + $n++; + } + + $phone_split = explode("-----",$Alogin[$j]); + $i = $phone_split[1]; + + if (eregi("READY|PAUSED",$Astatus[$i])) + { + $Acall_time[$i]=$Astate_change[$i]; + + if ($Alead_id[$i] > 0) + { + $Astatus[$i] = 'DISPO'; + $Lstatus = 'DISPO'; + $status = ' DISPO'; + } + } + if ($non_latin < 1) + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} + } + else + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} + } + + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); + $Luser = $Auser[$i]; + $user = sprintf("%-20s", $Auser[$i]); + $Lsessionid = $Asessionid[$i]; + $sessionid = sprintf("%-9s", $Asessionid[$i]); + $Lstatus = $Astatus[$i]; + $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; + $server_ip = sprintf("%-15s", $Aserver_ip[$i]); + $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); + $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); + $comments= $Acomments[$i]; + $calls_today = sprintf("%-5s", $Acalls_today[$i]); + + if (!ereg("N",$agent_pause_codes_active)) + {$pausecode=' ';} + else + {$pausecode='';} + + if (eregi("INCALL",$Lstatus)) + { + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) + { + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } + } + + if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) + {$CM='A';} + else + { + if (eregi("ENTRANT",$comments)) + {$CM='I';} + else + {$CM='M';} + } + } + else {$CM=' ';} + + if ($UGdisplay > 0) + { + if ($non_latin < 1) + { + $user_group = sprintf("%-12s", $Auser_group[$i]); + while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} + } + else + { + $user_group = sprintf("%-40s", $Auser_group[$i]); + while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} + } + } + if ($UidORname > 0) + { + if ($non_latin < 1) + { + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} + } + else + { + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} + } + } + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} + else + {$call_time_S = ($STARTtime - $Acall_time[$i]);} + + $call_time_MS = sec_convert($call_time_S,'M'); + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) + { + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} + } + if ($Lstatus=='DEAD') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_dead++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + } + } + if ($Lstatus=='DISPO') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } + if ($Lstatus=='PAUSED') + { + if (!ereg("N",$agent_pause_codes_active)) + { + $stmtC="select sub_status from vicidial_agent_log where user='$Luser' order by agent_log_id desc limit 1;"; + $rsltC=mysql_query($stmtC,$link); + $rowC=mysql_fetch_row($rsltC); + $pausecode = sprintf("%-6s", $rowC[0]); + $pausecode = "$pausecode "; + } + else + {$pausecode='';} + + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } +# if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) +# {$G=''; $EG='';} + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) + { + $G=''; $EG=''; + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + + $L=''; + $R=''; + if ($SIPmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($SIPmonitorLINK>1) {$R=" | BARGE";} + if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} + + if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} + else {$CP = "";} + + if ($UGdisplay > 0) {$UGD = " $G$user_group$EG |";} + else {$UGD = "";} + + if ($SERVdisplay > 0) {$SVD = "$G$server_ip$EG | $G$call_server_ip$EG | ";} + else {$SVD = "";} + + if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} + else {$phoneD = " ";} + + $vac_stage=''; + $vac_campaign=''; + $INGRP=''; + if ($CM == 'I') + { + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ingrp_to_print = mysql_num_rows($rslt); + if ($ingrp_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); + $row[1] = eregi_replace(".*-",'',$row[1]); + $vac_stage = sprintf("%-4s", $row[1]); + } + + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; + } + + $agentcount++; + + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG + |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + + $j++; + } + + $Aecho .= "$Aline"; + $Aecho .= " $agentcount agents logged in on all servers\n"; + $Aecho .= " Système de charge Average: $load_ave\n\n"; + + # $Aecho .= " - Balanced call\n"; + $Aecho .= " - Agent waiting for call\n"; + $Aecho .= " - Agent waiting for call > 1 minute\n"; + $Aecho .= " - Agent waiting for call > 5 minutes\n"; + $Aecho .= " - Agent on call > 10 seconds\n"; + $Aecho .= " - Agent on call > 1 minute\n"; + $Aecho .= " - Agent on call > 5 minutes\n"; + $Aecho .= " - Agent Paused > 10 seconds\n"; + $Aecho .= " - Agent Paused > 1 minute\n"; + $Aecho .= " - Agent Paused > 5 minutes\n"; + $Aecho .= " - Agent on a dead call\n"; + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + echo "$NFB$agent_dead$NFE agents morts dans les appels      \n"; + + echo "
";
+		echo "";
+		echo "$Cecho";
+		echo "$Aecho";
+	}
+	else
+	{
+	echo " AUCUN AGENT EN APPEL\n";
+	echo "
$Cecho";
+	}
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDADallSUMMARY.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDADallSUMMARY.php new file mode 100644 index 00000000..bd20b41f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonVDADallSUMMARY.php @@ -0,0 +1,457 @@ + LICENSE: AGPLv2 +# +# Summary for all campaigns live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# changes: +# 61102-1616 - first build +# 61215-1131 - added answered calls and drop percent taken from answered calls +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80525-1040 - Added IVR status summary display for inbound calls +# 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +if (!isset($RR)) {$gRRroup=4;} + + +$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 and view_reports='1';"; + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +$stmt="select campaign_id from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +?> + + + + + +\n"; +echo "Real-Time All Campagnes Summary\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "Real-Time All Campagnes Summary           \n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO "; +echo "       \n"; +if ($adastats<2) + { + echo "+ VIEW MORE SETTINGS"; + } +else + { + echo "- VIEW LESS SETTINGS"; + } +echo "       RAPPORTS"; +echo "

\n\n"; + +$k=0; +while($k<$groups_to_print) +{ +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$group = $groups[$k]; +echo "$group   -   "; +echo "Modify\n"; + + +$stmt = "select count(*) from vicidial_campaigns where campaign_id='$group' and campaign_allow_inbound='Y';"; +$rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +$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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DIALlev = $row[0]; +$DIALstatusA = $row[1]; +$DIALstatusB = $row[2]; +$DIALstatusC = $row[3]; +$DIALstatusD = $row[4]; +$DIALstatusE = $row[5]; +$DIALorder = $row[6]; +$DIALfilter = $row[7]; +$HOPlev = $row[8]; +$DIALmethod = $row[9]; +$maxDIALlev = $row[10]; +$DROPmax = $row[11]; +$targetDIFF = $row[12]; +$ADAintense = $row[13]; +$ADAavailonly = $row[14]; +$TAPERtime = $row[15]; +$CALLtime = $row[16]; +$DIALtimeout = $row[17]; +$DIALstatuses = $row[18]; + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + +$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$VDhop = $row[0]; + +$stmt="select dialable_leads,calls_today,drops_today,drops_answers_today_pct,differential_onemin,agents_average_onemin,balance_trunk_fill,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4 from vicidial_campaign_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DAleads = $row[0]; +$callsTODAY = $row[1]; +$dropsTODAY = $row[2]; +$drpctTODAY = $row[3]; +$diffONEMIN = $row[4]; +$agentsONEMIN = $row[5]; +$balanceFILL = $row[6]; +$answersTODAY = $row[7]; +$VSCcat1 = $row[8]; +$VSCcat1tally = $row[9]; +$VSCcat2 = $row[10]; +$VSCcat2tally = $row[11]; +$VSCcat3 = $row[12]; +$VSCcat3tally = $row[13]; +$VSCcat4 = $row[14]; +$VSCcat4tally = $row[15]; + +if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } +else {$diffpctONEMIN = '0.00';} + +$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$balanceSHORT = $row[0]; + +echo "
"; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
DIAL NIVEAU:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
  MAX NIVEAU:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL PROCEDE:  $DIALmethod    
HOPPER NIVEAU:  $HOPlev     DROPPED / REPONSEED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; +if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} +else + {echo "$drpctTODAY%";} +echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +### Header finish + + + + + +################################################################################ +### START calculating calls/agents +################################################################################ + +################################################################################ +###### OUTBOUND CALLS +################################################################################ +if ($campaign_allow_inbound > 0) + { + $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = preg_replace("/^ | -$/","",$row[0]); + $closer_campaigns = preg_replace("/ /","','",$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='" . mysql_real_escape_string($group) . "' and call_type='OUT') );"; + } +else + { + if ($group=='XXXX-ALL-ACTIVE-XXXX') {$groupSQL = '';} + else {$groupSQL = " and campaign_id='" . mysql_real_escape_string($group) . "'";} + + $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') $groupSQL;"; + } +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + {$out_live++;} + else + { + if (eregi("IVR",$row[0])) + {$in_ivr++;} + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + $out_total++; + $i++; + } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo " PAS D'APPEL EN ATTENTE\n"; + } + + +################################################################################### +###### TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_total=0; + +$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) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + $agentcount=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[3])) + { + $row[5]=$row[6]; + } + $Lstatus = $row[3]; + $status = sprintf("%-6s", $row[3]); + if (!eregi("INCALL|QUEUE",$row[3])) + {$call_time_S = ($STARTtime - $row[6]);} + else + {$call_time_S = ($STARTtime - $row[5]);} + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if (eregi("PAUSED",$row[3])) + { + if ($call_time_M_int >= 30) + {$i++; continue;} + else + { + $agent_paused++; $agent_total++; + } + } + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + $agentcount++; + + + $i++; + } + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + + echo "
";
+		echo "";
+	}
+	else
+	{
+	echo " NO AGENTS ON CALLS
\n"; + } + +################################################################################ +### END calculating calls/agents +################################################################################ + + + + + +echo "
"; + +echo "\n\n"; +$k++; +} + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonpark.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonpark.php new file mode 100644 index 00000000..8aac7043 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/AST_timeonpark.php @@ -0,0 +1,220 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1042 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$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 and view_reports='1';"; + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$timeONEhoursAGO = ($STARTtime - 3600); +$epochHALFhoursAGO = ($STARTtime - 1860); +$timeONEhoursAGO = date("Y-m-d H:i:s",$timeONEhoursAGO); +$timeHALFhoursAGO = date("Y-m-d H:i:s",$epochHALFhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where status='TALKING' and grab_time < '$timeONEhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + $stmt="delete from park_log where status='PARKED' and parked_time < '$timeHALFhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + } + } + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Park\n"; +echo "
\n\n";
+
+echo "VICIDIAL: Time On Park         $NOW_TIME    RAPPORTS\n\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+echo "| CHANNEL    | GROUP           | START TIME          | MINUTES |\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+
+#$link=mysql_connect("localhost", "cron", "1234");
+# $linkX=mysql_connect("localhost", "cron", "1234");
+#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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 1) {$G=''; $EG='';}
+		if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------+-----------------+---------------------+---------+\n";
+		echo "  $i callers waiting on server $server_ip\n\n";
+
+		echo "             - 1 minute or more on hold\n";
+		echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	echo "******************** PAS D'APPEL EN ATTENTE*********************\n";
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	}
+
+###################################################################################
+###### TIME ON INBOUND CALLS
+###################################################################################
+echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "VICIDIAL: Agents Time On Inbound Calls                             $NOW_TIME\n\n";
+echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+echo "| STATION    | USER   | CHANNEL    | GROUP           | START TIME          | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$extension =		sprintf("%-10s", $row[0]);
+		$user =				sprintf("%-6s", $row[1]);
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 12) {$G=''; $EG='';}
+		if ($call_time_M_int >= 31) {$G=''; $EG='';}
+
+		echo "| $G$extension$EG | $G$user$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+		echo "  $i agents on calls on server $server_ip\n\n";
+
+		echo "             - 12 minutes or more on call\n";
+		echo "             - Over 30 minutes on call\n";
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "********************************* AUCUN AGENT EN APPEL*********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin.php new file mode 100644 index 00000000..f260e66d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin.php @@ -0,0 +1,25016 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +###################################################################################################### +###################################################################################################### +####### static variable settings for display options +###################################################################################################### +###################################################################################################### + +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$campaigns_color = '#FFCC99'; +$lists_color = '#FFCCCC'; +$ingroups_color = '#CC99FF'; +$remoteagent_color ='#CCFFCC'; +$usergroups_color = '#CCFFFF'; +$scripts_color = '#99FFCC'; +$filters_color = '#CCCCCC'; +$admin_color = '#FF99FF'; +$reports_color = '#99FF33'; + $times_color = '#FF33FF'; + $shifts_color = '#FF33FF'; + $phones_color = '#FF33FF'; + $conference_color = '#FF33FF'; + $server_color = '#FF33FF'; + $templates_color = '#FF33FF'; + $carriers_color = '#FF33FF'; + $settings_color = '#FF33FF'; + $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; +$subcamp_color = '#FF9933'; +$users_font = 'BLACK'; +$campaigns_font = 'BLACK'; +$lists_font = 'BLACK'; +$ingroups_font = 'BLACK'; +$remoteagent_font = 'BLACK'; +$usergroups_font = 'BLACK'; +$scripts_font = 'BLACK'; +$filters_font = 'BLACK'; +$admin_font = 'BLACK'; +$reports_font = 'BLACK'; + $times_font = 'BLACK'; + $phones_font = 'BLACK'; + $conference_font = 'BLACK'; + $server_font = 'BLACK'; + $settings_font = 'BLACK'; + $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; +$subcamp_font = 'BLACK'; + +### comment this section out for colorful section headings +$users_color = '#E6E6E6'; +$campaigns_color = '#E6E6E6'; +$lists_color = '#E6E6E6'; +$ingroups_color = '#E6E6E6'; +$remoteagent_color ='#E6E6E6'; +$usergroups_color = '#E6E6E6'; +$scripts_color = '#E6E6E6'; +$filters_color = '#E6E6E6'; +$admin_color = '#E6E6E6'; +$reports_color = '#E6E6E6'; + $times_color = '#C6C6C6'; + $shifts_color = '#C6C6C6'; + $phones_color = '#C6C6C6'; + $conference_color = '#C6C6C6'; + $server_color = '#C6C6C6'; + $templates_color = '#C6C6C6'; + $carriers_color = '#C6C6C6'; + $settings_color = '#C6C6C6'; + $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; +$subcamp_color = '#C6C6C6'; +### + + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +###################################################################################################### +###################################################################################################### +####### Form variable declaration +###################################################################################################### +###################################################################################################### + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["active"])) {$active=$_GET["active"];} + elseif (isset($_POST["active"])) {$active=$_POST["active"];} +if (isset($_GET["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_GET["adaptive_dl_diff_target"];} + elseif (isset($_POST["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_POST["adaptive_dl_diff_target"];} +if (isset($_GET["adaptive_dropped_percentage"])) {$adaptive_dropped_percentage=$_GET["adaptive_dropped_percentage"];} + elseif (isset($_POST["adaptive_dropped_percentage"])){$adaptive_dropped_percentage=$_POST["adaptive_dropped_percentage"];} +if (isset($_GET["adaptive_intensity"])) {$adaptive_intensity=$_GET["adaptive_intensity"];} + elseif (isset($_POST["adaptive_intensity"])) {$adaptive_intensity=$_POST["adaptive_intensity"];} +if (isset($_GET["adaptive_latest_server_time"])) {$adaptive_latest_server_time=$_GET["adaptive_latest_server_time"];} + elseif (isset($_POST["adaptive_latest_server_time"])){$adaptive_latest_server_time=$_POST["adaptive_latest_server_time"];} +if (isset($_GET["adaptive_maximum_level"])) {$adaptive_maximum_level=$_GET["adaptive_maximum_level"];} + elseif (isset($_POST["adaptive_maximum_level"])) {$adaptive_maximum_level=$_POST["adaptive_maximum_level"];} +if (isset($_GET["SUB"])) {$SUB=$_GET["SUB"];} + elseif (isset($_POST["SUB"])) {$SUB=$_POST["SUB"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["admin_hangup_enabled"])) {$admin_hangup_enabled=$_GET["admin_hangup_enabled"];} + elseif (isset($_POST["admin_hangup_enabled"])) {$admin_hangup_enabled=$_POST["admin_hangup_enabled"];} +if (isset($_GET["admin_hijack_enabled"])) {$admin_hijack_enabled=$_GET["admin_hijack_enabled"];} + elseif (isset($_POST["admin_hijack_enabled"])) {$admin_hijack_enabled=$_POST["admin_hijack_enabled"];} +if (isset($_GET["admin_monitor_enabled"])) {$admin_monitor_enabled=$_GET["admin_monitor_enabled"];} + elseif (isset($_POST["admin_monitor_enabled"])) {$admin_monitor_enabled=$_POST["admin_monitor_enabled"];} +if (isset($_GET["AFLogging_enabled"])) {$AFLogging_enabled=$_GET["AFLogging_enabled"];} + elseif (isset($_POST["AFLogging_enabled"])) {$AFLogging_enabled=$_POST["AFLogging_enabled"];} +if (isset($_GET["agent_choose_ingroups"])) {$agent_choose_ingroups=$_GET["agent_choose_ingroups"];} + elseif (isset($_POST["agent_choose_ingroups"])) {$agent_choose_ingroups=$_POST["agent_choose_ingroups"];} +if (isset($_GET["agentcall_manual"])) {$agentcall_manual=$_GET["agentcall_manual"];} + elseif (isset($_POST["agentcall_manual"])) {$agentcall_manual=$_POST["agentcall_manual"];} +if (isset($_GET["agentonly_callbacks"])) {$agentonly_callbacks=$_GET["agentonly_callbacks"];} + elseif (isset($_POST["agentonly_callbacks"])) {$agentonly_callbacks=$_POST["agentonly_callbacks"];} +if (isset($_GET["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_GET["AGI_call_logging_enabled"];} + elseif (isset($_POST["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_POST["AGI_call_logging_enabled"];} +if (isset($_GET["agi_output"])) {$agi_output=$_GET["agi_output"];} + elseif (isset($_POST["agi_output"])) {$agi_output=$_POST["agi_output"];} +if (isset($_GET["allcalls_delay"])) {$allcalls_delay=$_GET["allcalls_delay"];} + elseif (isset($_POST["allcalls_delay"])) {$allcalls_delay=$_POST["allcalls_delay"];} +if (isset($_GET["allow_closers"])) {$allow_closers=$_GET["allow_closers"];} + elseif (isset($_POST["allow_closers"])) {$allow_closers=$_POST["allow_closers"];} +if (isset($_GET["alt_number_dialing"])) {$alt_number_dialing=$_GET["alt_number_dialing"];} + elseif (isset($_POST["alt_number_dialing"])) {$alt_number_dialing=$_POST["alt_number_dialing"];} +if (isset($_GET["alter_agent_interface_options"])) {$alter_agent_interface_options=$_GET["alter_agent_interface_options"];} + elseif (isset($_POST["alter_agent_interface_options"])) {$alter_agent_interface_options=$_POST["alter_agent_interface_options"];} +if (isset($_GET["am_message_exten"])) {$am_message_exten=$_GET["am_message_exten"];} + elseif (isset($_POST["am_message_exten"])) {$am_message_exten=$_POST["am_message_exten"];} +if (isset($_GET["amd_send_to_vmx"])) {$amd_send_to_vmx=$_GET["amd_send_to_vmx"];} + elseif (isset($_POST["amd_send_to_vmx"])) {$amd_send_to_vmx=$_POST["amd_send_to_vmx"];} +if (isset($_GET["answer_transfer_agent"])) {$answer_transfer_agent=$_GET["answer_transfer_agent"];} + elseif (isset($_POST["answer_transfer_agent"])) {$answer_transfer_agent=$_POST["answer_transfer_agent"];} +if (isset($_GET["ast_admin_access"])) {$ast_admin_access=$_GET["ast_admin_access"];} + elseif (isset($_POST["ast_admin_access"])) {$ast_admin_access=$_POST["ast_admin_access"];} +if (isset($_GET["ast_delete_phones"])) {$ast_delete_phones=$_GET["ast_delete_phones"];} + elseif (isset($_POST["ast_delete_phones"])) {$ast_delete_phones=$_POST["ast_delete_phones"];} +if (isset($_GET["asterisk_version"])) {$asterisk_version=$_GET["asterisk_version"];} + elseif (isset($_POST["asterisk_version"])) {$asterisk_version=$_POST["asterisk_version"];} +if (isset($_GET["ASTmgrSECRET"])) {$ASTmgrSECRET=$_GET["ASTmgrSECRET"];} + elseif (isset($_POST["ASTmgrSECRET"])) {$ASTmgrSECRET=$_POST["ASTmgrSECRET"];} +if (isset($_GET["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_GET["ASTmgrUSERNAME"];} + elseif (isset($_POST["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_POST["ASTmgrUSERNAME"];} +if (isset($_GET["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_GET["ASTmgrUSERNAMElisten"];} + elseif (isset($_POST["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_POST["ASTmgrUSERNAMElisten"];} +if (isset($_GET["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_GET["ASTmgrUSERNAMEsend"];} + elseif (isset($_POST["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_POST["ASTmgrUSERNAMEsend"];} +if (isset($_GET["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_GET["ASTmgrUSERNAMEupdate"];} + elseif (isset($_POST["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_POST["ASTmgrUSERNAMEupdate"];} +if (isset($_GET["attempt_delay"])) {$attempt_delay=$_GET["attempt_delay"];} + elseif (isset($_POST["attempt_delay"])) {$attempt_delay=$_POST["attempt_delay"];} +if (isset($_GET["attempt_maximum"])) {$attempt_maximum=$_GET["attempt_maximum"];} + elseif (isset($_POST["attempt_maximum"])) {$attempt_maximum=$_POST["attempt_maximum"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["auto_dial_next_number"])) {$auto_dial_next_number=$_GET["auto_dial_next_number"];} + elseif (isset($_POST["auto_dial_next_number"])) {$auto_dial_next_number=$_POST["auto_dial_next_number"];} +if (isset($_GET["available_only_ratio_tally"])) {$available_only_ratio_tally=$_GET["available_only_ratio_tally"];} + elseif (isset($_POST["available_only_ratio_tally"])){$available_only_ratio_tally=$_POST["available_only_ratio_tally"];} +if (isset($_GET["call_out_number_group"])) {$call_out_number_group=$_GET["call_out_number_group"];} + elseif (isset($_POST["call_out_number_group"])) {$call_out_number_group=$_POST["call_out_number_group"];} +if (isset($_GET["call_parking_enabled"])) {$call_parking_enabled=$_GET["call_parking_enabled"];} + elseif (isset($_POST["call_parking_enabled"])) {$call_parking_enabled=$_POST["call_parking_enabled"];} +if (isset($_GET["call_time_comments"])) {$call_time_comments=$_GET["call_time_comments"];} + elseif (isset($_POST["call_time_comments"])) {$call_time_comments=$_POST["call_time_comments"];} +if (isset($_GET["call_time_id"])) {$call_time_id=$_GET["call_time_id"];} + elseif (isset($_POST["call_time_id"])) {$call_time_id=$_POST["call_time_id"];} +if (isset($_GET["call_time_name"])) {$call_time_name=$_GET["call_time_name"];} + elseif (isset($_POST["call_time_name"])) {$call_time_name=$_POST["call_time_name"];} +if (isset($_GET["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_GET["CallerID_popup_enabled"];} + elseif (isset($_POST["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_POST["CallerID_popup_enabled"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["campaign_detail"])) {$campaign_detail=$_GET["campaign_detail"];} + elseif (isset($_POST["campaign_detail"])) {$campaign_detail=$_POST["campaign_detail"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["campaign_name"])) {$campaign_name=$_GET["campaign_name"];} + elseif (isset($_POST["campaign_name"])) {$campaign_name=$_POST["campaign_name"];} +if (isset($_GET["campaign_rec_exten"])) {$campaign_rec_exten=$_GET["campaign_rec_exten"];} + elseif (isset($_POST["campaign_rec_exten"])) {$campaign_rec_exten=$_POST["campaign_rec_exten"];} +if (isset($_GET["campaign_rec_filename"])) {$campaign_rec_filename=$_GET["campaign_rec_filename"];} + elseif (isset($_POST["campaign_rec_filename"])) {$campaign_rec_filename=$_POST["campaign_rec_filename"];} +if (isset($_GET["ingroup_rec_filename"])) {$ingroup_rec_filename=$_GET["ingroup_rec_filename"];} + elseif (isset($_POST["ingroup_rec_filename"])) {$ingroup_rec_filename=$_POST["ingroup_rec_filename"];} +if (isset($_GET["campaign_recording"])) {$campaign_recording=$_GET["campaign_recording"];} + elseif (isset($_POST["campaign_recording"])) {$campaign_recording=$_POST["campaign_recording"];} +if (isset($_GET["campaign_vdad_exten"])) {$campaign_vdad_exten=$_GET["campaign_vdad_exten"];} + elseif (isset($_POST["campaign_vdad_exten"])) {$campaign_vdad_exten=$_POST["campaign_vdad_exten"];} +if (isset($_GET["change_agent_campaign"])) {$change_agent_campaign=$_GET["change_agent_campaign"];} + elseif (isset($_POST["change_agent_campaign"])) {$change_agent_campaign=$_POST["change_agent_campaign"];} +if (isset($_GET["client_browser"])) {$client_browser=$_GET["client_browser"];} + elseif (isset($_POST["client_browser"])) {$client_browser=$_POST["client_browser"];} +if (isset($_GET["closer_default_blended"])) {$closer_default_blended=$_GET["closer_default_blended"];} + elseif (isset($_POST["closer_default_blended"])) {$closer_default_blended=$_POST["closer_default_blended"];} +if (isset($_GET["company"])) {$company=$_GET["company"];} + elseif (isset($_POST["company"])) {$company=$_POST["company"];} +if (isset($_GET["computer_ip"])) {$computer_ip=$_GET["computer_ip"];} + elseif (isset($_POST["computer_ip"])) {$computer_ip=$_POST["computer_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["conf_on_extension"])) {$conf_on_extension=$_GET["conf_on_extension"];} + elseif (isset($_POST["conf_on_extension"])) {$conf_on_extension=$_POST["conf_on_extension"];} +if (isset($_GET["conferencing_enabled"])) {$conferencing_enabled=$_GET["conferencing_enabled"];} + elseif (isset($_POST["conferencing_enabled"])) {$conferencing_enabled=$_POST["conferencing_enabled"];} +if (isset($_GET["CoNfIrM"])) {$CoNfIrM=$_GET["CoNfIrM"];} + elseif (isset($_POST["CoNfIrM"])) {$CoNfIrM=$_POST["CoNfIrM"];} +if (isset($_GET["ct_default_start"])) {$ct_default_start=$_GET["ct_default_start"];} + elseif (isset($_POST["ct_default_start"])) {$ct_default_start=$_POST["ct_default_start"];} +if (isset($_GET["ct_default_stop"])) {$ct_default_stop=$_GET["ct_default_stop"];} + elseif (isset($_POST["ct_default_stop"])) {$ct_default_stop=$_POST["ct_default_stop"];} +if (isset($_GET["ct_friday_start"])) {$ct_friday_start=$_GET["ct_friday_start"];} + elseif (isset($_POST["ct_friday_start"])) {$ct_friday_start=$_POST["ct_friday_start"];} +if (isset($_GET["ct_friday_stop"])) {$ct_friday_stop=$_GET["ct_friday_stop"];} + elseif (isset($_POST["ct_friday_stop"])) {$ct_friday_stop=$_POST["ct_friday_stop"];} +if (isset($_GET["ct_monday_start"])) {$ct_monday_start=$_GET["ct_monday_start"];} + elseif (isset($_POST["ct_monday_start"])) {$ct_monday_start=$_POST["ct_monday_start"];} +if (isset($_GET["ct_monday_stop"])) {$ct_monday_stop=$_GET["ct_monday_stop"];} + elseif (isset($_POST["ct_monday_stop"])) {$ct_monday_stop=$_POST["ct_monday_stop"];} +if (isset($_GET["ct_saturday_start"])) {$ct_saturday_start=$_GET["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"];} + elseif (isset($_POST["ct_saturday_stop"])) {$ct_saturday_stop=$_POST["ct_saturday_stop"];} +if (isset($_GET["ct_sunday_start"])) {$ct_sunday_start=$_GET["ct_sunday_start"];} + elseif (isset($_POST["ct_sunday_start"])) {$ct_sunday_start=$_POST["ct_sunday_start"];} +if (isset($_GET["ct_sunday_stop"])) {$ct_sunday_stop=$_GET["ct_sunday_stop"];} + elseif (isset($_POST["ct_sunday_stop"])) {$ct_sunday_stop=$_POST["ct_sunday_stop"];} +if (isset($_GET["ct_thursday_start"])) {$ct_thursday_start=$_GET["ct_thursday_start"];} + elseif (isset($_POST["ct_thursday_start"])) {$ct_thursday_start=$_POST["ct_thursday_start"];} +if (isset($_GET["ct_thursday_stop"])) {$ct_thursday_stop=$_GET["ct_thursday_stop"];} + elseif (isset($_POST["ct_thursday_stop"])) {$ct_thursday_stop=$_POST["ct_thursday_stop"];} +if (isset($_GET["ct_tuesday_start"])) {$ct_tuesday_start=$_GET["ct_tuesday_start"];} + elseif (isset($_POST["ct_tuesday_start"])) {$ct_tuesday_start=$_POST["ct_tuesday_start"];} +if (isset($_GET["ct_tuesday_stop"])) {$ct_tuesday_stop=$_GET["ct_tuesday_stop"];} + elseif (isset($_POST["ct_tuesday_stop"])) {$ct_tuesday_stop=$_POST["ct_tuesday_stop"];} +if (isset($_GET["ct_wednesday_start"])) {$ct_wednesday_start=$_GET["ct_wednesday_start"];} + elseif (isset($_POST["ct_wednesday_start"])) {$ct_wednesday_start=$_POST["ct_wednesday_start"];} +if (isset($_GET["ct_wednesday_stop"])) {$ct_wednesday_stop=$_GET["ct_wednesday_stop"];} + elseif (isset($_POST["ct_wednesday_stop"])) {$ct_wednesday_stop=$_POST["ct_wednesday_stop"];} +if (isset($_GET["DBX_database"])) {$DBX_database=$_GET["DBX_database"];} + elseif (isset($_POST["DBX_database"])) {$DBX_database=$_POST["DBX_database"];} +if (isset($_GET["DBX_pass"])) {$DBX_pass=$_GET["DBX_pass"];} + elseif (isset($_POST["DBX_pass"])) {$DBX_pass=$_POST["DBX_pass"];} +if (isset($_GET["DBX_port"])) {$DBX_port=$_GET["DBX_port"];} + elseif (isset($_POST["DBX_port"])) {$DBX_port=$_POST["DBX_port"];} +if (isset($_GET["DBX_server"])) {$DBX_server=$_GET["DBX_server"];} + elseif (isset($_POST["DBX_server"])) {$DBX_server=$_POST["DBX_server"];} +if (isset($_GET["DBX_user"])) {$DBX_user=$_GET["DBX_user"];} + elseif (isset($_POST["DBX_user"])) {$DBX_user=$_POST["DBX_user"];} +if (isset($_GET["DBY_database"])) {$DBY_database=$_GET["DBY_database"];} + elseif (isset($_POST["DBY_database"])) {$DBY_database=$_POST["DBY_database"];} +if (isset($_GET["DBY_pass"])) {$DBY_pass=$_GET["DBY_pass"];} + elseif (isset($_POST["DBY_pass"])) {$DBY_pass=$_POST["DBY_pass"];} +if (isset($_GET["DBY_port"])) {$DBY_port=$_GET["DBY_port"];} + elseif (isset($_POST["DBY_port"])) {$DBY_port=$_POST["DBY_port"];} +if (isset($_GET["DBY_server"])) {$DBY_server=$_GET["DBY_server"];} + elseif (isset($_POST["DBY_server"])) {$DBY_server=$_POST["DBY_server"];} +if (isset($_GET["DBY_user"])) {$DBY_user=$_GET["DBY_user"];} + elseif (isset($_POST["DBY_user"])) {$DBY_user=$_POST["DBY_user"];} +if (isset($_GET["delete_call_times"])) {$delete_call_times=$_GET["delete_call_times"];} + elseif (isset($_POST["delete_call_times"])) {$delete_call_times=$_POST["delete_call_times"];} +if (isset($_GET["delete_campaigns"])) {$delete_campaigns=$_GET["delete_campaigns"];} + elseif (isset($_POST["delete_campaigns"])) {$delete_campaigns=$_POST["delete_campaigns"];} +if (isset($_GET["delete_filters"])) {$delete_filters=$_GET["delete_filters"];} + elseif (isset($_POST["delete_filters"])) {$delete_filters=$_POST["delete_filters"];} +if (isset($_GET["delete_ingroups"])) {$delete_ingroups=$_GET["delete_ingroups"];} + elseif (isset($_POST["delete_ingroups"])) {$delete_ingroups=$_POST["delete_ingroups"];} +if (isset($_GET["delete_lists"])) {$delete_lists=$_GET["delete_lists"];} + elseif (isset($_POST["delete_lists"])) {$delete_lists=$_POST["delete_lists"];} +if (isset($_GET["delete_remote_agents"])) {$delete_remote_agents=$_GET["delete_remote_agents"];} + elseif (isset($_POST["delete_remote_agents"])) {$delete_remote_agents=$_POST["delete_remote_agents"];} +if (isset($_GET["delete_scripts"])) {$delete_scripts=$_GET["delete_scripts"];} + elseif (isset($_POST["delete_scripts"])) {$delete_scripts=$_POST["delete_scripts"];} +if (isset($_GET["delete_user_groups"])) {$delete_user_groups=$_GET["delete_user_groups"];} + elseif (isset($_POST["delete_user_groups"])) {$delete_user_groups=$_POST["delete_user_groups"];} +if (isset($_GET["delete_users"])) {$delete_users=$_GET["delete_users"];} + elseif (isset($_POST["delete_users"])) {$delete_users=$_POST["delete_users"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["dial_status_a"])) {$dial_status_a=$_GET["dial_status_a"];} + elseif (isset($_POST["dial_status_a"])) {$dial_status_a=$_POST["dial_status_a"];} +if (isset($_GET["dial_status_b"])) {$dial_status_b=$_GET["dial_status_b"];} + elseif (isset($_POST["dial_status_b"])) {$dial_status_b=$_POST["dial_status_b"];} +if (isset($_GET["dial_status_c"])) {$dial_status_c=$_GET["dial_status_c"];} + elseif (isset($_POST["dial_status_c"])) {$dial_status_c=$_POST["dial_status_c"];} +if (isset($_GET["dial_status_d"])) {$dial_status_d=$_GET["dial_status_d"];} + elseif (isset($_POST["dial_status_d"])) {$dial_status_d=$_POST["dial_status_d"];} +if (isset($_GET["dial_status_e"])) {$dial_status_e=$_GET["dial_status_e"];} + elseif (isset($_POST["dial_status_e"])) {$dial_status_e=$_POST["dial_status_e"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dialplan_number"])) {$dialplan_number=$_GET["dialplan_number"];} + elseif (isset($_POST["dialplan_number"])) {$dialplan_number=$_POST["dialplan_number"];} +if (isset($_GET["drop_call_seconds"])) {$drop_call_seconds=$_GET["drop_call_seconds"];} + elseif (isset($_POST["drop_call_seconds"])) {$drop_call_seconds=$_POST["drop_call_seconds"];} +if (isset($_GET["drop_exten"])) {$drop_exten=$_GET["drop_exten"];} + elseif (isset($_POST["drop_exten"])) {$drop_exten=$_POST["drop_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["dtmf_send_extension"])) {$dtmf_send_extension=$_GET["dtmf_send_extension"];} + elseif (isset($_POST["dtmf_send_extension"])) {$dtmf_send_extension=$_POST["dtmf_send_extension"];} +if (isset($_GET["enable_fast_refresh"])) {$enable_fast_refresh=$_GET["enable_fast_refresh"];} + elseif (isset($_POST["enable_fast_refresh"])) {$enable_fast_refresh=$_POST["enable_fast_refresh"];} +if (isset($_GET["enable_persistant_mysql"])) {$enable_persistant_mysql=$_GET["enable_persistant_mysql"];} + elseif (isset($_POST["enable_persistant_mysql"])) {$enable_persistant_mysql=$_POST["enable_persistant_mysql"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["fast_refresh_rate"])) {$fast_refresh_rate=$_GET["fast_refresh_rate"];} + elseif (isset($_POST["fast_refresh_rate"])) {$fast_refresh_rate=$_POST["fast_refresh_rate"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["fronter_display"])) {$fronter_display=$_GET["fronter_display"];} + elseif (isset($_POST["fronter_display"])) {$fronter_display=$_POST["fronter_display"];} +if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];} + elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["get_call_launch"])) {$get_call_launch=$_GET["get_call_launch"];} + elseif (isset($_POST["get_call_launch"])) {$get_call_launch=$_POST["get_call_launch"];} +if (isset($_GET["group_color"])) {$group_color=$_GET["group_color"];} + elseif (isset($_POST["group_color"])) {$group_color=$_POST["group_color"];} +if (isset($_GET["group_id"])) {$group_id=$_GET["group_id"];} + elseif (isset($_POST["group_id"])) {$group_id=$_POST["group_id"];} +if (isset($_GET["group_name"])) {$group_name=$_GET["group_name"];} + elseif (isset($_POST["group_name"])) {$group_name=$_POST["group_name"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["XFERgroups"])) {$XFERgroups=$_GET["XFERgroups"];} + elseif (isset($_POST["XFERgroups"])) {$XFERgroups=$_POST["XFERgroups"];} +if (isset($_GET["HKstatus"])) {$HKstatus=$_GET["HKstatus"];} + elseif (isset($_POST["HKstatus"])) {$HKstatus=$_POST["HKstatus"];} +if (isset($_GET["hopper_level"])) {$hopper_level=$_GET["hopper_level"];} + elseif (isset($_POST["hopper_level"])) {$hopper_level=$_POST["hopper_level"];} +if (isset($_GET["hotkey"])) {$hotkey=$_GET["hotkey"];} + elseif (isset($_POST["hotkey"])) {$hotkey=$_POST["hotkey"];} +if (isset($_GET["hotkeys_active"])) {$hotkeys_active=$_GET["hotkeys_active"];} + elseif (isset($_POST["hotkeys_active"])) {$hotkeys_active=$_POST["hotkeys_active"];} +if (isset($_GET["install_directory"])) {$install_directory=$_GET["install_directory"];} + elseif (isset($_POST["install_directory"])) {$install_directory=$_POST["install_directory"];} +if (isset($_GET["lead_filter_comments"])) {$lead_filter_comments=$_GET["lead_filter_comments"];} + elseif (isset($_POST["lead_filter_comments"])) {$lead_filter_comments=$_POST["lead_filter_comments"];} +if (isset($_GET["lead_filter_id"])) {$lead_filter_id=$_GET["lead_filter_id"];} + elseif (isset($_POST["lead_filter_id"])) {$lead_filter_id=$_POST["lead_filter_id"];} +if (isset($_GET["lead_filter_name"])) {$lead_filter_name=$_GET["lead_filter_name"];} + elseif (isset($_POST["lead_filter_name"])) {$lead_filter_name=$_POST["lead_filter_name"];} +if (isset($_GET["lead_filter_sql"])) {$lead_filter_sql=$_GET["lead_filter_sql"];} + elseif (isset($_POST["lead_filter_sql"])) {$lead_filter_sql=$_POST["lead_filter_sql"];} +if (isset($_GET["lead_order"])) {$lead_order=$_GET["lead_order"];} + elseif (isset($_POST["lead_order"])) {$lead_order=$_POST["lead_order"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["list_name"])) {$list_name=$_GET["list_name"];} + elseif (isset($_POST["list_name"])) {$list_name=$_POST["list_name"];} +if (isset($_GET["load_leads"])) {$load_leads=$_GET["load_leads"];} + elseif (isset($_POST["load_leads"])) {$load_leads=$_POST["load_leads"];} +if (isset($_GET["local_call_time"])) {$local_call_time=$_GET["local_call_time"];} + elseif (isset($_POST["local_call_time"])) {$local_call_time=$_POST["local_call_time"];} +if (isset($_GET["local_gmt"])) {$local_gmt=$_GET["local_gmt"];} + elseif (isset($_POST["local_gmt"])) {$local_gmt=$_POST["local_gmt"];} +if (isset($_GET["local_web_callerID_URL"])) {$local_web_callerID_URL=$_GET["local_web_callerID_URL"];} + elseif (isset($_POST["local_web_callerID_URL"])) {$local_web_callerID_URL=$_POST["local_web_callerID_URL"];} +if (isset($_GET["login"])) {$login=$_GET["login"];} + elseif (isset($_POST["login"])) {$login=$_POST["login"];} +if (isset($_GET["login_campaign"])) {$login_campaign=$_GET["login_campaign"];} + elseif (isset($_POST["login_campaign"])) {$login_campaign=$_POST["login_campaign"];} +if (isset($_GET["login_pass"])) {$login_pass=$_GET["login_pass"];} + elseif (isset($_POST["login_pass"])) {$login_pass=$_POST["login_pass"];} +if (isset($_GET["login_user"])) {$login_user=$_GET["login_user"];} + elseif (isset($_POST["login_user"])) {$login_user=$_POST["login_user"];} +if (isset($_GET["max_vicidial_trunks"])) {$max_vicidial_trunks=$_GET["max_vicidial_trunks"];} + elseif (isset($_POST["max_vicidial_trunks"])) {$max_vicidial_trunks=$_POST["max_vicidial_trunks"];} +if (isset($_GET["modify_call_times"])) {$modify_call_times=$_GET["modify_call_times"];} + elseif (isset($_POST["modify_call_times"])) {$modify_call_times=$_POST["modify_call_times"];} +if (isset($_GET["modify_leads"])) {$modify_leads=$_GET["modify_leads"];} + elseif (isset($_POST["modify_leads"])) {$modify_leads=$_POST["modify_leads"];} +if (isset($_GET["monitor_prefix"])) {$monitor_prefix=$_GET["monitor_prefix"];} + elseif (isset($_POST["monitor_prefix"])) {$monitor_prefix=$_POST["monitor_prefix"];} +if (isset($_GET["next_agent_call"])) {$next_agent_call=$_GET["next_agent_call"];} + elseif (isset($_POST["next_agent_call"])) {$next_agent_call=$_POST["next_agent_call"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["old_campaign_id"])) {$old_campaign_id=$_GET["old_campaign_id"];} + elseif (isset($_POST["old_campaign_id"])) {$old_campaign_id=$_POST["old_campaign_id"];} +if (isset($_GET["old_conf_exten"])) {$old_conf_exten=$_GET["old_conf_exten"];} + elseif (isset($_POST["old_conf_exten"])) {$old_conf_exten=$_POST["old_conf_exten"];} +if (isset($_GET["old_extension"])) {$old_extension=$_GET["old_extension"];} + elseif (isset($_POST["old_extension"])) {$old_extension=$_POST["old_extension"];} +if (isset($_GET["old_server_id"])) {$old_server_id=$_GET["old_server_id"];} + elseif (isset($_POST["old_server_id"])) {$old_server_id=$_POST["old_server_id"];} +if (isset($_GET["old_server_ip"])) {$old_server_ip=$_GET["old_server_ip"];} + elseif (isset($_POST["old_server_ip"])) {$old_server_ip=$_POST["old_server_ip"];} +if (isset($_GET["OLDuser_group"])) {$OLDuser_group=$_GET["OLDuser_group"];} + elseif (isset($_POST["OLDuser_group"])) {$OLDuser_group=$_POST["OLDuser_group"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["park_ext"])) {$park_ext=$_GET["park_ext"];} + elseif (isset($_POST["park_ext"])) {$park_ext=$_POST["park_ext"];} +if (isset($_GET["park_file_name"])) {$park_file_name=$_GET["park_file_name"];} + elseif (isset($_POST["park_file_name"])) {$park_file_name=$_POST["park_file_name"];} +if (isset($_GET["park_on_extension"])) {$park_on_extension=$_GET["park_on_extension"];} + elseif (isset($_POST["park_on_extension"])) {$park_on_extension=$_POST["park_on_extension"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["phone_type"])) {$phone_type=$_GET["phone_type"];} + elseif (isset($_POST["phone_type"])) {$phone_type=$_POST["phone_type"];} +if (isset($_GET["picture"])) {$picture=$_GET["picture"];} + elseif (isset($_POST["picture"])) {$picture=$_POST["picture"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_GET["QUEUE_ACTION_enabled"];} + elseif (isset($_POST["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_POST["QUEUE_ACTION_enabled"];} +if (isset($_GET["recording_exten"])) {$recording_exten=$_GET["recording_exten"];} + elseif (isset($_POST["recording_exten"])) {$recording_exten=$_POST["recording_exten"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["reset_hopper"])) {$reset_hopper=$_GET["reset_hopper"];} + elseif (isset($_POST["reset_hopper"])) {$reset_hopper=$_POST["reset_hopper"];} +if (isset($_GET["reset_list"])) {$reset_list=$_GET["reset_list"];} + elseif (isset($_POST["reset_list"])) {$reset_list=$_POST["reset_list"];} +if (isset($_GET["safe_harbor_exten"])) {$safe_harbor_exten=$_GET["safe_harbor_exten"];} + elseif (isset($_POST["safe_harbor_exten"])) {$safe_harbor_exten=$_POST["safe_harbor_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["scheduled_callbacks"])) {$scheduled_callbacks=$_GET["scheduled_callbacks"];} + elseif (isset($_POST["scheduled_callbacks"])) {$scheduled_callbacks=$_POST["scheduled_callbacks"];} +if (isset($_GET["script_comments"])) {$script_comments=$_GET["script_comments"];} + elseif (isset($_POST["script_comments"])) {$script_comments=$_POST["script_comments"];} +if (isset($_GET["script_id"])) {$script_id=$_GET["script_id"];} + elseif (isset($_POST["script_id"])) {$script_id=$_POST["script_id"];} +if (isset($_GET["script_name"])) {$script_name=$_GET["script_name"];} + elseif (isset($_POST["script_name"])) {$script_name=$_POST["script_name"];} +if (isset($_GET["script_text"])) {$script_text=$_GET["script_text"];} + elseif (isset($_POST["script_text"])) {$script_text=$_POST["script_text"];} +if (isset($_GET["selectable"])) {$selectable=$_GET["selectable"];} + elseif (isset($_POST["selectable"])) {$selectable=$_POST["selectable"];} +if (isset($_GET["server_description"])) {$server_description=$_GET["server_description"];} + elseif (isset($_POST["server_description"])) {$server_description=$_POST["server_description"];} +if (isset($_GET["server_id"])) {$server_id=$_GET["server_id"];} + elseif (isset($_POST["server_id"])) {$server_id=$_POST["server_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +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"];} +if (isset($_GET["state_rule"])) {$state_rule=$_GET["state_rule"];} + elseif (isset($_POST["state_rule"])) {$state_rule=$_POST["state_rule"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["status_name"])) {$status_name=$_GET["status_name"];} + elseif (isset($_POST["status_name"])) {$status_name=$_POST["status_name"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["sys_perf_log"])) {$sys_perf_log=$_GET["sys_perf_log"];} + elseif (isset($_POST["sys_perf_log"])) {$sys_perf_log=$_POST["sys_perf_log"];} +if (isset($_GET["telnet_host"])) {$telnet_host=$_GET["telnet_host"];} + elseif (isset($_POST["telnet_host"])) {$telnet_host=$_POST["telnet_host"];} +if (isset($_GET["telnet_port"])) {$telnet_port=$_GET["telnet_port"];} + elseif (isset($_POST["telnet_port"])) {$telnet_port=$_POST["telnet_port"];} +if (isset($_GET["updater_check_enabled"])) {$updater_check_enabled=$_GET["updater_check_enabled"];} + elseif (isset($_POST["updater_check_enabled"])) {$updater_check_enabled=$_POST["updater_check_enabled"];} +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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["user_level"])) {$user_level=$_GET["user_level"];} + elseif (isset($_POST["user_level"])) {$user_level=$_POST["user_level"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["user_switching_enabled"])) {$user_switching_enabled=$_GET["user_switching_enabled"];} + elseif (isset($_POST["user_switching_enabled"])) {$user_switching_enabled=$_POST["user_switching_enabled"];} +if (isset($_GET["vd_server_logs"])) {$vd_server_logs=$_GET["vd_server_logs"];} + elseif (isset($_POST["vd_server_logs"])) {$vd_server_logs=$_POST["vd_server_logs"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_GET["VICIDIAL_park_on_extension"];} + elseif (isset($_POST["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_POST["VICIDIAL_park_on_extension"];} +if (isset($_GET["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_GET["VICIDIAL_park_on_filename"];} + elseif (isset($_POST["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_POST["VICIDIAL_park_on_filename"];} +if (isset($_GET["vicidial_recording"])) {$vicidial_recording=$_GET["vicidial_recording"];} + elseif (isset($_POST["vicidial_recording"])) {$vicidial_recording=$_POST["vicidial_recording"];} +if (isset($_GET["vicidial_transfers"])) {$vicidial_transfers=$_GET["vicidial_transfers"];} + elseif (isset($_POST["vicidial_transfers"])) {$vicidial_transfers=$_POST["vicidial_transfers"];} +if (isset($_GET["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_GET["VICIDIAL_web_URL"];} + elseif (isset($_POST["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_POST["VICIDIAL_web_URL"];} +if (isset($_GET["voicemail_button_enabled"])) {$voicemail_button_enabled=$_GET["voicemail_button_enabled"];} + elseif (isset($_POST["voicemail_button_enabled"])) {$voicemail_button_enabled=$_POST["voicemail_button_enabled"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["voicemail_ext"])) {$voicemail_ext=$_GET["voicemail_ext"];} + elseif (isset($_POST["voicemail_ext"])) {$voicemail_ext=$_POST["voicemail_ext"];} +if (isset($_GET["voicemail_exten"])) {$voicemail_exten=$_GET["voicemail_exten"];} + elseif (isset($_POST["voicemail_exten"])) {$voicemail_exten=$_POST["voicemail_exten"];} +if (isset($_GET["voicemail_id"])) {$voicemail_id=$_GET["voicemail_id"];} + elseif (isset($_POST["voicemail_id"])) {$voicemail_id=$_POST["voicemail_id"];} +if (isset($_GET["web_form_address"])) {$web_form_address=$_GET["web_form_address"];} + elseif (isset($_POST["web_form_address"])) {$web_form_address=$_POST["web_form_address"];} +if (isset($_GET["wrapup_message"])) {$wrapup_message=$_GET["wrapup_message"];} + elseif (isset($_POST["wrapup_message"])) {$wrapup_message=$_POST["wrapup_message"];} +if (isset($_GET["wrapup_seconds"])) {$wrapup_seconds=$_GET["wrapup_seconds"];} + elseif (isset($_POST["wrapup_seconds"])) {$wrapup_seconds=$_POST["wrapup_seconds"];} +if (isset($_GET["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_GET["xferconf_a_dtmf"];} + elseif (isset($_POST["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_POST["xferconf_a_dtmf"];} +if (isset($_GET["xferconf_a_number"])) {$xferconf_a_number=$_GET["xferconf_a_number"];} + elseif (isset($_POST["xferconf_a_number"])) {$xferconf_a_number=$_POST["xferconf_a_number"];} +if (isset($_GET["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_GET["xferconf_b_dtmf"];} + elseif (isset($_POST["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_POST["xferconf_b_dtmf"];} +if (isset($_GET["xferconf_b_number"])) {$xferconf_b_number=$_GET["xferconf_b_number"];} + elseif (isset($_POST["xferconf_b_number"])) {$xferconf_b_number=$_POST["xferconf_b_number"];} +if (isset($_GET["vicidial_balance_active"])) {$vicidial_balance_active=$_GET["vicidial_balance_active"];} + elseif (isset($_POST["vicidial_balance_active"])) {$vicidial_balance_active=$_POST["vicidial_balance_active"];} +if (isset($_GET["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_GET["balance_trunks_offlimits"];} + elseif (isset($_POST["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_POST["balance_trunks_offlimits"];} +if (isset($_GET["dedicated_trunks"])) {$dedicated_trunks=$_GET["dedicated_trunks"];} + elseif (isset($_POST["dedicated_trunks"])) {$dedicated_trunks=$_POST["dedicated_trunks"];} +if (isset($_GET["trunk_restriction"])) {$trunk_restriction=$_GET["trunk_restriction"];} + elseif (isset($_POST["trunk_restriction"])) {$trunk_restriction=$_POST["trunk_restriction"];} +if (isset($_GET["campaigns"])) {$campaigns=$_GET["campaigns"];} + elseif (isset($_POST["campaigns"])) {$campaigns=$_POST["campaigns"];} +if (isset($_GET["dial_level_override"])) {$dial_level_override=$_GET["dial_level_override"];} + elseif (isset($_POST["dial_level_override"])) {$dial_level_override=$_POST["dial_level_override"];} +if (isset($_GET["concurrent_transfers"])) {$concurrent_transfers=$_GET["concurrent_transfers"];} + elseif (isset($_POST["concurrent_transfers"])) {$concurrent_transfers=$_POST["concurrent_transfers"];} +if (isset($_GET["auto_alt_dial"])) {$auto_alt_dial=$_GET["auto_alt_dial"];} + elseif (isset($_POST["auto_alt_dial"])) {$auto_alt_dial=$_POST["auto_alt_dial"];} +if (isset($_GET["modify_users"])) {$modify_users=$_GET["modify_users"];} + elseif (isset($_POST["modify_users"])) {$modify_users=$_POST["modify_users"];} +if (isset($_GET["modify_campaigns"])) {$modify_campaigns=$_GET["modify_campaigns"];} + elseif (isset($_POST["modify_campaigns"])) {$modify_campaigns=$_POST["modify_campaigns"];} +if (isset($_GET["modify_lists"])) {$modify_lists=$_GET["modify_lists"];} + elseif (isset($_POST["modify_lists"])) {$modify_lists=$_POST["modify_lists"];} +if (isset($_GET["modify_scripts"])) {$modify_scripts=$_GET["modify_scripts"];} + elseif (isset($_POST["modify_scripts"])) {$modify_scripts=$_POST["modify_scripts"];} +if (isset($_GET["modify_filters"])) {$modify_filters=$_GET["modify_filters"];} + elseif (isset($_POST["modify_filters"])) {$modify_filters=$_POST["modify_filters"];} +if (isset($_GET["modify_ingroups"])) {$modify_ingroups=$_GET["modify_ingroups"];} + elseif (isset($_POST["modify_ingroups"])) {$modify_ingroups=$_POST["modify_ingroups"];} +if (isset($_GET["modify_usergroups"])) {$modify_usergroups=$_GET["modify_usergroups"];} + elseif (isset($_POST["modify_usergroups"])) {$modify_usergroups=$_POST["modify_usergroups"];} +if (isset($_GET["modify_remoteagents"])) {$modify_remoteagents=$_GET["modify_remoteagents"];} + elseif (isset($_POST["modify_remoteagents"])) {$modify_remoteagents=$_POST["modify_remoteagents"];} +if (isset($_GET["modify_servers"])) {$modify_servers=$_GET["modify_servers"];} + elseif (isset($_POST["modify_servers"])) {$modify_servers=$_POST["modify_servers"];} +if (isset($_GET["view_reports"])) {$view_reports=$_GET["view_reports"];} + elseif (isset($_POST["view_reports"])) {$view_reports=$_POST["view_reports"];} +if (isset($_GET["agent_pause_codes_active"])) {$agent_pause_codes_active=$_GET["agent_pause_codes_active"];} + elseif (isset($_POST["agent_pause_codes_active"])) {$agent_pause_codes_active=$_POST["agent_pause_codes_active"];} +if (isset($_GET["pause_code"])) {$pause_code=$_GET["pause_code"];} + elseif (isset($_POST["pause_code"])) {$pause_code=$_POST["pause_code"];} +if (isset($_GET["pause_code_name"])) {$pause_code_name=$_GET["pause_code_name"];} + elseif (isset($_POST["pause_code_name"])) {$pause_code_name=$_POST["pause_code_name"];} +if (isset($_GET["billable"])) {$billable=$_GET["billable"];} + elseif (isset($_POST["billable"])) {$billable=$_POST["billable"];} +if (isset($_GET["campaign_description"])) {$campaign_description=$_GET["campaign_description"];} + elseif (isset($_POST["campaign_description"])) {$campaign_description=$_POST["campaign_description"];} +if (isset($_GET["campaign_stats_refresh"])) {$campaign_stats_refresh=$_GET["campaign_stats_refresh"];} + elseif (isset($_POST["campaign_stats_refresh"])){$campaign_stats_refresh=$_POST["campaign_stats_refresh"];} +if (isset($_GET["list_description"])) {$list_description=$_GET["list_description"];} + elseif (isset($_POST["list_description"])) {$list_description=$_POST["list_description"];} +if (isset($_GET["vicidial_recording_override"])) {$vicidial_recording_override=$_GET["vicidial_recording_override"];} + elseif (isset($_POST["vicidial_recording_override"])) {$vicidial_recording_override=$_POST["vicidial_recording_override"];} +if (isset($_GET["use_non_latin"])) {$use_non_latin=$_GET["use_non_latin"];} + elseif (isset($_POST["use_non_latin"])) {$use_non_latin=$_POST["use_non_latin"];} +if (isset($_GET["webroot_writable"])) {$webroot_writable=$_GET["webroot_writable"];} + elseif (isset($_POST["webroot_writable"])) {$webroot_writable=$_POST["webroot_writable"];} +if (isset($_GET["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_GET["enable_queuemetrics_logging"];} + elseif (isset($_POST["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_POST["enable_queuemetrics_logging"];} +if (isset($_GET["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_GET["queuemetrics_server_ip"];} + elseif (isset($_POST["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_POST["queuemetrics_server_ip"];} +if (isset($_GET["queuemetrics_dbname"])) {$queuemetrics_dbname=$_GET["queuemetrics_dbname"];} + elseif (isset($_POST["queuemetrics_dbname"])) {$queuemetrics_dbname=$_POST["queuemetrics_dbname"];} +if (isset($_GET["queuemetrics_login"])) {$queuemetrics_login=$_GET["queuemetrics_login"];} + elseif (isset($_POST["queuemetrics_login"])) {$queuemetrics_login=$_POST["queuemetrics_login"];} +if (isset($_GET["queuemetrics_pass"])) {$queuemetrics_pass=$_GET["queuemetrics_pass"];} + elseif (isset($_POST["queuemetrics_pass"])) {$queuemetrics_pass=$_POST["queuemetrics_pass"];} +if (isset($_GET["queuemetrics_url"])) {$queuemetrics_url=$_GET["queuemetrics_url"];} + elseif (isset($_POST["queuemetrics_url"])) {$queuemetrics_url=$_POST["queuemetrics_url"];} +if (isset($_GET["queuemetrics_log_id"])) {$queuemetrics_log_id=$_GET["queuemetrics_log_id"];} + elseif (isset($_POST["queuemetrics_log_id"])) {$queuemetrics_log_id=$_POST["queuemetrics_log_id"];} +if (isset($_GET["dial_status"])) {$dial_status=$_GET["dial_status"];} + elseif (isset($_POST["dial_status"])) {$dial_status=$_POST["dial_status"];} +if (isset($_GET["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_GET["queuemetrics_eq_prepend"];} + elseif (isset($_POST["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_POST["queuemetrics_eq_prepend"];} +if (isset($_GET["vicidial_agent_disable"])) {$vicidial_agent_disable=$_GET["vicidial_agent_disable"];} + elseif (isset($_POST["vicidial_agent_disable"])) {$vicidial_agent_disable=$_POST["vicidial_agent_disable"];} +if (isset($_GET["disable_alter_custdata"])) {$disable_alter_custdata=$_GET["disable_alter_custdata"];} + elseif (isset($_POST["disable_alter_custdata"])) {$disable_alter_custdata=$_POST["disable_alter_custdata"];} +if (isset($_GET["alter_custdata_override"])) {$alter_custdata_override=$_GET["alter_custdata_override"];} + elseif (isset($_POST["alter_custdata_override"])) {$alter_custdata_override=$_POST["alter_custdata_override"];} +if (isset($_GET["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_GET["no_hopper_leads_logins"];} + elseif (isset($_POST["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_POST["no_hopper_leads_logins"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["admin_home_url"])) {$admin_home_url=$_GET["admin_home_url"];} + elseif (isset($_POST["admin_home_url"])) {$admin_home_url=$_POST["admin_home_url"];} +if (isset($_GET["list_order_mix"])) {$list_order_mix=$_GET["list_order_mix"];} + elseif (isset($_POST["list_order_mix"])) {$list_order_mix=$_POST["list_order_mix"];} +if (isset($_GET["vcl_id"])) {$vcl_id=$_GET["vcl_id"];} + elseif (isset($_POST["vcl_id"])) {$vcl_id=$_POST["vcl_id"];} +if (isset($_GET["vcl_name"])) {$vcl_name=$_GET["vcl_name"];} + elseif (isset($_POST["vcl_name"])) {$vcl_name=$_POST["vcl_name"];} +if (isset($_GET["list_mix_container"])) {$list_mix_container=$_GET["list_mix_container"];} + elseif (isset($_POST["list_mix_container"])) {$list_mix_container=$_POST["list_mix_container"];} +if (isset($_GET["mix_method"])) {$mix_method=$_GET["mix_method"];} + elseif (isset($_POST["mix_method"])) {$mix_method=$_POST["mix_method"];} +if (isset($_GET["human_answered"])) {$human_answered=$_GET["human_answered"];} + elseif (isset($_POST["human_answered"])) {$human_answered=$_POST["human_answered"];} +if (isset($_GET["category"])) {$category=$_GET["category"];} + elseif (isset($_POST["category"])) {$category=$_POST["category"];} +if (isset($_GET["vsc_id"])) {$vsc_id=$_GET["vsc_id"];} + elseif (isset($_POST["vsc_id"])) {$vsc_id=$_POST["vsc_id"];} +if (isset($_GET["vsc_name"])) {$vsc_name=$_GET["vsc_name"];} + elseif (isset($_POST["vsc_name"])) {$vsc_name=$_POST["vsc_name"];} +if (isset($_GET["vsc_description"])) {$vsc_description=$_GET["vsc_description"];} + elseif (isset($_POST["vsc_description"])) {$vsc_description=$_POST["vsc_description"];} +if (isset($_GET["tovdad_display"])) {$tovdad_display=$_GET["tovdad_display"];} + elseif (isset($_POST["tovdad_display"])) {$tovdad_display=$_POST["tovdad_display"];} +if (isset($_GET["mix_container_item"])) {$mix_container_item=$_GET["mix_container_item"];} + elseif (isset($_POST["mix_container_item"])) {$mix_container_item=$_POST["mix_container_item"];} +if (isset($_GET["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_GET["enable_agc_xfer_log"];} + elseif (isset($_POST["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_POST["enable_agc_xfer_log"];} +if (isset($_GET["after_hours_action"])) {$after_hours_action=$_GET["after_hours_action"];} + elseif (isset($_POST["after_hours_action"])) {$after_hours_action=$_POST["after_hours_action"];} +if (isset($_GET["after_hours_message_filename"])) {$after_hours_message_filename=$_GET["after_hours_message_filename"];} + elseif (isset($_POST["after_hours_message_filename"])) {$after_hours_message_filename=$_POST["after_hours_message_filename"];} +if (isset($_GET["after_hours_exten"])) {$after_hours_exten=$_GET["after_hours_exten"];} + elseif (isset($_POST["after_hours_exten"])) {$after_hours_exten=$_POST["after_hours_exten"];} +if (isset($_GET["after_hours_voicemail"])) {$after_hours_voicemail=$_GET["after_hours_voicemail"];} + elseif (isset($_POST["after_hours_voicemail"])) {$after_hours_voicemail=$_POST["after_hours_voicemail"];} +if (isset($_GET["welcome_message_filename"])) {$welcome_message_filename=$_GET["welcome_message_filename"];} + elseif (isset($_POST["welcome_message_filename"])) {$welcome_message_filename=$_POST["welcome_message_filename"];} +if (isset($_GET["moh_context"])) {$moh_context=$_GET["moh_context"];} + elseif (isset($_POST["moh_context"])) {$moh_context=$_POST["moh_context"];} +if (isset($_GET["onhold_prompt_filename"])) {$onhold_prompt_filename=$_GET["onhold_prompt_filename"];} + elseif (isset($_POST["onhold_prompt_filename"])) {$onhold_prompt_filename=$_POST["onhold_prompt_filename"];} +if (isset($_GET["prompt_interval"])) {$prompt_interval=$_GET["prompt_interval"];} + elseif (isset($_POST["prompt_interval"])) {$prompt_interval=$_POST["prompt_interval"];} +if (isset($_GET["agent_alert_exten"])) {$agent_alert_exten=$_GET["agent_alert_exten"];} + elseif (isset($_POST["agent_alert_exten"])) {$agent_alert_exten=$_POST["agent_alert_exten"];} +if (isset($_GET["agent_alert_delay"])) {$agent_alert_delay=$_GET["agent_alert_delay"];} + elseif (isset($_POST["agent_alert_delay"])) {$agent_alert_delay=$_POST["agent_alert_delay"];} +if (isset($_GET["group_rank"])) {$group_rank=$_GET["group_rank"];} + elseif (isset($_POST["group_rank"])) {$group_rank=$_POST["group_rank"];} +if (isset($_GET["campaign_allow_inbound"])) {$campaign_allow_inbound=$_GET["campaign_allow_inbound"];} + elseif (isset($_POST["campaign_allow_inbound"])) {$campaign_allow_inbound=$_POST["campaign_allow_inbound"];} +if (isset($_GET["manual_dial_list_id"])) {$manual_dial_list_id=$_GET["manual_dial_list_id"];} + elseif (isset($_POST["manual_dial_list_id"])) {$manual_dial_list_id=$_POST["manual_dial_list_id"];} +if (isset($_GET["campaign_rank"])) {$campaign_rank=$_GET["campaign_rank"];} + elseif (isset($_POST["campaign_rank"])) {$campaign_rank=$_POST["campaign_rank"];} +if (isset($_GET["source_campaign_id"])) {$source_campaign_id=$_GET["source_campaign_id"];} + elseif (isset($_POST["source_campaign_id"])) {$source_campaign_id=$_POST["source_campaign_id"];} +if (isset($_GET["source_user_id"])) {$source_user_id=$_GET["source_user_id"];} + elseif (isset($_POST["source_user_id"])) {$source_user_id=$_POST["source_user_id"];} +if (isset($_GET["source_group_id"])) {$source_group_id=$_GET["source_group_id"];} + elseif (isset($_POST["source_group_id"])) {$source_group_id=$_POST["source_group_id"];} +if (isset($_GET["default_xfer_group"])) {$default_xfer_group=$_GET["default_xfer_group"];} + elseif (isset($_POST["default_xfer_group"])) {$default_xfer_group=$_POST["default_xfer_group"];} +if (isset($_GET["qc_enabled"])) {$qc_enabled=$_GET["qc_enabled"];} + elseif (isset($_POST["qc_enabled"])) {$qc_enabled=$_POST["qc_enabled"];} +if (isset($_GET["qc_user_level"])) {$qc_user_level=$_GET["qc_user_level"];} + elseif (isset($_POST["qc_user_level"])) {$qc_user_level=$_POST["qc_user_level"];} +if (isset($_GET["qc_pass"])) {$qc_pass=$_GET["qc_pass"];} + elseif (isset($_POST["qc_pass"])) {$qc_pass=$_POST["qc_pass"];} +if (isset($_GET["qc_finish"])) {$qc_finish=$_GET["qc_finish"];} + elseif (isset($_POST["qc_finish"])) {$qc_finish=$_POST["qc_finish"];} +if (isset($_GET["qc_commit"])) {$qc_commit=$_GET["qc_commit"];} + elseif (isset($_POST["qc_commit"])) {$qc_commit=$_POST["qc_commit"];} +if (isset($_GET["qc_campaigns"])) {$qc_campaigns=$_GET["qc_campaigns"];} + elseif (isset($_POST["qc_campaigns"])) {$qc_campaigns=$_POST["qc_campaigns"];} +if (isset($_GET["qc_groups"])) {$qc_groups=$_GET["qc_groups"];} + elseif (isset($_POST["qc_groups"])) {$qc_groups=$_POST["qc_groups"];} +if (isset($_GET["queue_priority"])) {$queue_priority=$_GET["queue_priority"];} + elseif (isset($_POST["queue_priority"])) {$queue_priority=$_POST["queue_priority"];} +if (isset($_GET["drop_inbound_group"])) {$drop_inbound_group=$_GET["drop_inbound_group"];} + elseif (isset($_POST["drop_inbound_group"])) {$drop_inbound_group=$_POST["drop_inbound_group"];} +if (isset($_GET["qc_statuses"])) {$qc_statuses=$_GET["qc_statuses"];} + elseif (isset($_POST["qc_statuses"])) {$qc_statuses=$_POST["qc_statuses"];} +if (isset($_GET["qc_lists"])) {$qc_lists=$_GET["qc_lists"];} + elseif (isset($_POST["qc_lists"])) {$qc_lists=$_POST["qc_lists"];} +if (isset($_GET["qc_get_record_launch"])) {$qc_get_record_launch=$_GET["qc_get_record_launch"];} + elseif (isset($_POST["qc_get_record_launch"])) {$qc_get_record_launch=$_POST["qc_get_record_launch"];} +if (isset($_GET["qc_show_recording"])) {$qc_show_recording=$_GET["qc_show_recording"];} + elseif (isset($_POST["qc_show_recording"])) {$qc_show_recording=$_POST["qc_show_recording"];} +if (isset($_GET["qc_shift_id"])) {$qc_shift_id=$_GET["qc_shift_id"];} + elseif (isset($_POST["qc_shift_id"])) {$qc_shift_id=$_POST["qc_shift_id"];} +if (isset($_GET["qc_web_form_address"])) {$qc_web_form_address=$_GET["qc_web_form_address"];} + elseif (isset($_POST["qc_web_form_address"])) {$qc_web_form_address=$_POST["qc_web_form_address"];} +if (isset($_GET["qc_script"])) {$qc_script=$_GET["qc_script"];} + elseif (isset($_POST["qc_script"])) {$qc_script=$_POST["qc_script"];} +if (isset($_GET["ingroup_recording_override"])) {$ingroup_recording_override=$_GET["ingroup_recording_override"];} + elseif (isset($_POST["ingroup_recording_override"])) {$ingroup_recording_override=$_POST["ingroup_recording_override"];} +if (isset($_GET["code"])) {$code=$_GET["code"];} + elseif (isset($_POST["code"])) {$code=$_POST["code"];} +if (isset($_GET["code_name"])) {$code_name=$_GET["code_name"];} + elseif (isset($_POST["code_name"])) {$code_name=$_POST["code_name"];} +if (isset($_GET["afterhours_xfer_group"])) {$afterhours_xfer_group=$_GET["afterhours_xfer_group"];} + elseif (isset($_POST["afterhours_xfer_group"])) {$afterhours_xfer_group=$_POST["afterhours_xfer_group"];} +if (isset($_GET["alias_id"])) {$alias_id=$_GET["alias_id"];} + elseif (isset($_POST["alias_id"])) {$alias_id=$_POST["alias_id"];} +if (isset($_GET["alias_name"])) {$alias_name=$_GET["alias_name"];} + elseif (isset($_POST["alias_name"])) {$alias_name=$_POST["alias_name"];} +if (isset($_GET["logins_list"])) {$logins_list=$_GET["logins_list"];} + elseif (isset($_POST["logins_list"])) {$logins_list=$_POST["logins_list"];} +if (isset($_GET["shift_id"])) {$shift_id=$_GET["shift_id"];} + elseif (isset($_POST["shift_id"])) {$shift_id=$_POST["shift_id"];} +if (isset($_GET["shift_name"])) {$shift_name=$_GET["shift_name"];} + elseif (isset($_POST["shift_name"])) {$shift_name=$_POST["shift_name"];} +if (isset($_GET["shift_start_time"])) {$shift_start_time=$_GET["shift_start_time"];} + elseif (isset($_POST["shift_start_time"])) {$shift_start_time=$_POST["shift_start_time"];} +if (isset($_GET["shift_length"])) {$shift_length=$_GET["shift_length"];} + elseif (isset($_POST["shift_length"])) {$shift_length=$_POST["shift_length"];} +if (isset($_GET["shift_weekdays"])) {$shift_weekdays=$_GET["shift_weekdays"];} + elseif (isset($_POST["shift_weekdays"])) {$shift_weekdays=$_POST["shift_weekdays"];} +if (isset($_GET["group_shifts"])) {$group_shifts=$_GET["group_shifts"];} + elseif (isset($_POST["group_shifts"])) {$group_shifts=$_POST["group_shifts"];} +if (isset($_GET["timeclock_end_of_day"])) {$timeclock_end_of_day=$_GET["timeclock_end_of_day"];} + elseif (isset($_POST["timeclock_end_of_day"])) {$timeclock_end_of_day=$_POST["timeclock_end_of_day"];} +if (isset($_GET["survey_first_audio_file"])) {$survey_first_audio_file=$_GET["survey_first_audio_file"];} + elseif (isset($_POST["survey_first_audio_file"])) {$survey_first_audio_file=$_POST["survey_first_audio_file"];} +if (isset($_GET["survey_dtmf_digits"])) {$survey_dtmf_digits=$_GET["survey_dtmf_digits"];} + elseif (isset($_POST["survey_dtmf_digits"])) {$survey_dtmf_digits=$_POST["survey_dtmf_digits"];} +if (isset($_GET["survey_ni_digit"])) {$survey_ni_digit=$_GET["survey_ni_digit"];} + elseif (isset($_POST["survey_ni_digit"])) {$survey_ni_digit=$_POST["survey_ni_digit"];} +if (isset($_GET["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_GET["survey_opt_in_audio_file"];} + elseif (isset($_POST["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_POST["survey_opt_in_audio_file"];} +if (isset($_GET["survey_ni_audio_file"])) {$survey_ni_audio_file=$_GET["survey_ni_audio_file"];} + elseif (isset($_POST["survey_ni_audio_file"])) {$survey_ni_audio_file=$_POST["survey_ni_audio_file"];} +if (isset($_GET["survey_method"])) {$survey_method=$_GET["survey_method"];} + elseif (isset($_POST["survey_method"])) {$survey_method=$_POST["survey_method"];} +if (isset($_GET["survey_no_response_action"])) {$survey_no_response_action=$_GET["survey_no_response_action"];} + elseif (isset($_POST["survey_no_response_action"])) {$survey_no_response_action=$_POST["survey_no_response_action"];} +if (isset($_GET["survey_ni_status"])) {$survey_ni_status=$_GET["survey_ni_status"];} + elseif (isset($_POST["survey_ni_status"])) {$survey_ni_status=$_POST["survey_ni_status"];} +if (isset($_GET["survey_response_digit_map"])) {$survey_response_digit_map=$_GET["survey_response_digit_map"];} + elseif (isset($_POST["survey_response_digit_map"])) {$survey_response_digit_map=$_POST["survey_response_digit_map"];} +if (isset($_GET["survey_xfer_exten"])) {$survey_xfer_exten=$_GET["survey_xfer_exten"];} + elseif (isset($_POST["survey_xfer_exten"])) {$survey_xfer_exten=$_POST["survey_xfer_exten"];} +if (isset($_GET["survey_camp_record_dir"])) {$survey_camp_record_dir=$_GET["survey_camp_record_dir"];} + elseif (isset($_POST["survey_camp_record_dir"])) {$survey_camp_record_dir=$_POST["survey_camp_record_dir"];} +if (isset($_GET["add_timeclock_log"])) {$add_timeclock_log=$_GET["add_timeclock_log"];} + elseif (isset($_POST["add_timeclock_log"])) {$add_timeclock_log=$_POST["add_timeclock_log"];} +if (isset($_GET["modify_timeclock_log"])) {$modify_timeclock_log=$_GET["modify_timeclock_log"];} + elseif (isset($_POST["modify_timeclock_log"])) {$modify_timeclock_log=$_POST["modify_timeclock_log"];} +if (isset($_GET["delete_timeclock_log"])) {$delete_timeclock_log=$_GET["delete_timeclock_log"];} + elseif (isset($_POST["delete_timeclock_log"])) {$delete_timeclock_log=$_POST["delete_timeclock_log"];} +if (isset($_GET["phone_numbers"])) {$phone_numbers=$_GET["phone_numbers"];} + elseif (isset($_POST["phone_numbers"])) {$phone_numbers=$_POST["phone_numbers"];} +if (isset($_GET["vdc_header_date_format"])) {$vdc_header_date_format=$_GET["vdc_header_date_format"];} + elseif (isset($_POST["vdc_header_date_format"])) {$vdc_header_date_format=$_POST["vdc_header_date_format"];} +if (isset($_GET["vdc_customer_date_format"])) {$vdc_customer_date_format=$_GET["vdc_customer_date_format"];} + elseif (isset($_POST["vdc_customer_date_format"])) {$vdc_customer_date_format=$_POST["vdc_customer_date_format"];} +if (isset($_GET["vdc_header_phone_format"])) {$vdc_header_phone_format=$_GET["vdc_header_phone_format"];} + elseif (isset($_POST["vdc_header_phone_format"])) {$vdc_header_phone_format=$_POST["vdc_header_phone_format"];} +if (isset($_GET["disable_alter_custphone"])) {$disable_alter_custphone=$_GET["disable_alter_custphone"];} + elseif (isset($_POST["disable_alter_custphone"])) {$disable_alter_custphone=$_POST["disable_alter_custphone"];} +if (isset($_GET["alter_custphone_override"])) {$alter_custphone_override=$_GET["alter_custphone_override"];} + elseif (isset($_POST["alter_custphone_override"])) {$alter_custphone_override=$_POST["alter_custphone_override"];} +if (isset($_GET["vdc_agent_api_access"])) {$vdc_agent_api_access=$_GET["vdc_agent_api_access"];} + elseif (isset($_POST["vdc_agent_api_access"])) {$vdc_agent_api_access=$_POST["vdc_agent_api_access"];} +if (isset($_GET["vdc_agent_api_active"])) {$vdc_agent_api_active=$_GET["vdc_agent_api_active"];} + elseif (isset($_POST["vdc_agent_api_active"])) {$vdc_agent_api_active=$_POST["vdc_agent_api_active"];} +if (isset($_GET["display_queue_count"])) {$display_queue_count=$_GET["display_queue_count"];} + elseif (isset($_POST["display_queue_count"])) {$display_queue_count=$_POST["display_queue_count"];} +if (isset($_GET["sale_category"])) {$sale_category=$_GET["sale_category"];} + elseif (isset($_POST["sale_category"])) {$sale_category=$_POST["sale_category"];} +if (isset($_GET["dead_lead_category"])) {$dead_lead_category=$_GET["dead_lead_category"];} + elseif (isset($_POST["dead_lead_category"])) {$dead_lead_category=$_POST["dead_lead_category"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["agent_clipboard_copy"])) {$agent_clipboard_copy=$_GET["agent_clipboard_copy"];} + elseif (isset($_POST["agent_clipboard_copy"])) {$agent_clipboard_copy=$_POST["agent_clipboard_copy"];} +if (isset($_GET["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_GET["agent_extended_alt_dial"];} + elseif (isset($_POST["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_POST["agent_extended_alt_dial"];} +if (isset($_GET["play_place_in_line"])) {$play_place_in_line=$_GET["play_place_in_line"];} + elseif (isset($_POST["play_place_in_line"])) {$play_place_in_line=$_POST["play_place_in_line"];} +if (isset($_GET["play_estimate_hold_time"])) {$play_estimate_hold_time=$_GET["play_estimate_hold_time"];} + elseif (isset($_POST["play_estimate_hold_time"])) {$play_estimate_hold_time=$_POST["play_estimate_hold_time"];} +if (isset($_GET["hold_time_option"])) {$hold_time_option=$_GET["hold_time_option"];} + elseif (isset($_POST["hold_time_option"])) {$hold_time_option=$_POST["hold_time_option"];} +if (isset($_GET["hold_time_option_seconds"])) {$hold_time_option_seconds=$_GET["hold_time_option_seconds"];} + elseif (isset($_POST["hold_time_option_seconds"])) {$hold_time_option_seconds=$_POST["hold_time_option_seconds"];} +if (isset($_GET["hold_time_option_exten"])) {$hold_time_option_exten=$_GET["hold_time_option_exten"];} + elseif (isset($_POST["hold_time_option_exten"])) {$hold_time_option_exten=$_POST["hold_time_option_exten"];} +if (isset($_GET["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_GET["hold_time_option_voicemail"];} + elseif (isset($_POST["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_POST["hold_time_option_voicemail"];} +if (isset($_GET["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_GET["hold_time_option_xfer_group"];} + elseif (isset($_POST["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_POST["hold_time_option_xfer_group"];} +if (isset($_GET["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_GET["hold_time_option_callback_filename"];} + elseif (isset($_POST["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_POST["hold_time_option_callback_filename"];} +if (isset($_GET["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_GET["hold_time_option_callback_list_id"];} + elseif (isset($_POST["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_POST["hold_time_option_callback_list_id"];} +if (isset($_GET["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_GET["hold_recall_xfer_group"];} + elseif (isset($_POST["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_POST["hold_recall_xfer_group"];} +if (isset($_GET["no_delay_call_route"])) {$no_delay_call_route=$_GET["no_delay_call_route"];} + elseif (isset($_POST["no_delay_call_route"])) {$no_delay_call_route=$_POST["no_delay_call_route"];} +if (isset($_GET["play_welcome_message"])) {$play_welcome_message=$_GET["play_welcome_message"];} + elseif (isset($_POST["play_welcome_message"])) {$play_welcome_message=$_POST["play_welcome_message"];} +if (isset($_GET["did_id"])) {$did_id=$_GET["did_id"];} + elseif (isset($_POST["did_id"])) {$did_id=$_POST["did_id"];} +if (isset($_GET["source_did"])) {$source_did=$_GET["source_did"];} + elseif (isset($_POST["source_did"])) {$source_did=$_POST["source_did"];} +if (isset($_GET["did_pattern"])) {$did_pattern=$_GET["did_pattern"];} + elseif (isset($_POST["did_pattern"])) {$did_pattern=$_POST["did_pattern"];} +if (isset($_GET["did_description"])) {$did_description=$_GET["did_description"];} + elseif (isset($_POST["did_description"])) {$did_description=$_POST["did_description"];} +if (isset($_GET["did_active"])) {$did_active=$_GET["did_active"];} + elseif (isset($_POST["did_active"])) {$did_active=$_POST["did_active"];} +if (isset($_GET["did_route"])) {$did_route=$_GET["did_route"];} + elseif (isset($_POST["did_route"])) {$did_route=$_POST["did_route"];} +if (isset($_GET["exten_context"])) {$exten_context=$_GET["exten_context"];} + elseif (isset($_POST["exten_context"])) {$exten_context=$_POST["exten_context"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["user_unavailable_action"])) {$user_unavailable_action=$_GET["user_unavailable_action"];} + elseif (isset($_POST["user_unavailable_action"])) {$user_unavailable_action=$_POST["user_unavailable_action"];} +if (isset($_GET["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_GET["user_route_settings_ingroup"];} + elseif (isset($_POST["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_POST["user_route_settings_ingroup"];} +if (isset($_GET["call_handle_method"])) {$call_handle_method=$_GET["call_handle_method"];} + elseif (isset($_POST["call_handle_method"])) {$call_handle_method=$_POST["call_handle_method"];} +if (isset($_GET["agent_search_method"])) {$agent_search_method=$_GET["agent_search_method"];} + elseif (isset($_POST["agent_search_method"])) {$agent_search_method=$_POST["agent_search_method"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["modify_inbound_dids"])) {$modify_inbound_dids=$_GET["modify_inbound_dids"];} + elseif (isset($_POST["modify_inbound_dids"])) {$modify_inbound_dids=$_POST["modify_inbound_dids"];} +if (isset($_GET["delete_inbound_dids"])) {$delete_inbound_dids=$_GET["delete_inbound_dids"];} + elseif (isset($_POST["delete_inbound_dids"])) {$delete_inbound_dids=$_POST["delete_inbound_dids"];} +if (isset($_GET["three_way_call_cid"])) {$three_way_call_cid=$_GET["three_way_call_cid"];} + elseif (isset($_POST["three_way_call_cid"])) {$three_way_call_cid=$_POST["three_way_call_cid"];} +if (isset($_GET["three_way_dial_prefix"])) {$three_way_dial_prefix=$_GET["three_way_dial_prefix"];} + elseif (isset($_POST["three_way_dial_prefix"])) {$three_way_dial_prefix=$_POST["three_way_dial_prefix"];} +if (isset($_GET["forced_timeclock_login"])) {$forced_timeclock_login=$_GET["forced_timeclock_login"];} + elseif (isset($_POST["forced_timeclock_login"])) {$forced_timeclock_login=$_POST["forced_timeclock_login"];} +if (isset($_GET["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_GET["answer_sec_pct_rt_stat_one"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_POST["answer_sec_pct_rt_stat_one"];} +if (isset($_GET["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_GET["answer_sec_pct_rt_stat_two"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_POST["answer_sec_pct_rt_stat_two"];} +if (isset($_GET["list_active_change"])) {$list_active_change=$_GET["list_active_change"];} + elseif (isset($_POST["list_active_change"])) {$list_active_change=$_POST["list_active_change"];} +if (isset($_GET["web_form_target"])) {$web_form_target=$_GET["web_form_target"];} + elseif (isset($_POST["web_form_target"])) {$web_form_target=$_POST["web_form_target"];} +if (isset($_GET["alt_server_ip"])) {$alt_server_ip=$_GET["alt_server_ip"];} + elseif (isset($_POST["alt_server_ip"])) {$alt_server_ip=$_POST["alt_server_ip"];} +if (isset($_GET["recording_web_link"])) {$recording_web_link=$_GET["recording_web_link"];} + elseif (isset($_POST["recording_web_link"])) {$recording_web_link=$_POST["recording_web_link"];} +if (isset($_GET["enable_vtiger_integration"])) {$enable_vtiger_integration=$_GET["enable_vtiger_integration"];} + elseif (isset($_POST["enable_vtiger_integration"])) {$enable_vtiger_integration=$_POST["enable_vtiger_integration"];} +if (isset($_GET["vtiger_server_ip"])) {$vtiger_server_ip=$_GET["vtiger_server_ip"];} + elseif (isset($_POST["vtiger_server_ip"])) {$vtiger_server_ip=$_POST["vtiger_server_ip"];} +if (isset($_GET["vtiger_dbname"])) {$vtiger_dbname=$_GET["vtiger_dbname"];} + elseif (isset($_POST["vtiger_dbname"])) {$vtiger_dbname=$_POST["vtiger_dbname"];} +if (isset($_GET["vtiger_login"])) {$vtiger_login=$_GET["vtiger_login"];} + elseif (isset($_POST["vtiger_login"])) {$vtiger_login=$_POST["vtiger_login"];} +if (isset($_GET["vtiger_pass"])) {$vtiger_pass=$_GET["vtiger_pass"];} + elseif (isset($_POST["vtiger_pass"])) {$vtiger_pass=$_POST["vtiger_pass"];} +if (isset($_GET["vtiger_url"])) {$vtiger_url=$_GET["vtiger_url"];} + elseif (isset($_POST["vtiger_url"])) {$vtiger_url=$_POST["vtiger_url"];} +if (isset($_GET["vtiger_search_category"])) {$vtiger_search_category=$_GET["vtiger_search_category"];} + elseif (isset($_POST["vtiger_search_category"])) {$vtiger_search_category=$_POST["vtiger_search_category"];} +if (isset($_GET["vtiger_create_call_record"])) {$vtiger_create_call_record=$_GET["vtiger_create_call_record"];} + elseif (isset($_POST["vtiger_create_call_record"])) {$vtiger_create_call_record=$_POST["vtiger_create_call_record"];} +if (isset($_GET["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_GET["vtiger_create_lead_record"];} + elseif (isset($_POST["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_POST["vtiger_create_lead_record"];} +if (isset($_GET["vtiger_screen_login"])) {$vtiger_screen_login=$_GET["vtiger_screen_login"];} + elseif (isset($_POST["vtiger_screen_login"])) {$vtiger_screen_login=$_POST["vtiger_screen_login"];} +if (isset($_GET["qc_features_active"])) {$qc_features_active=$_GET["qc_features_active"];} + elseif (isset($_POST["qc_features_active"])) {$qc_features_active=$_POST["qc_features_active"];} +if (isset($_GET["outbound_autodial_active"])) {$outbound_autodial_active=$_GET["outbound_autodial_active"];} + elseif (isset($_POST["outbound_autodial_active"])) {$outbound_autodial_active=$_POST["outbound_autodial_active"];} +if (isset($_GET["cpd_amd_action"])) {$cpd_amd_action=$_GET["cpd_amd_action"];} + elseif (isset($_POST["cpd_amd_action"])) {$cpd_amd_action=$_POST["cpd_amd_action"];} +if (isset($_GET["download_lists"])) {$download_lists=$_GET["download_lists"];} + elseif (isset($_POST["download_lists"])) {$download_lists=$_POST["download_lists"];} +if (isset($_GET["active_asterisk_server"])) {$active_asterisk_server=$_GET["active_asterisk_server"];} + elseif (isset($_POST["active_asterisk_server"])) {$active_asterisk_server=$_POST["active_asterisk_server"];} +if (isset($_GET["generate_vicidial_conf"])) {$generate_vicidial_conf=$_GET["generate_vicidial_conf"];} + elseif (isset($_POST["generate_vicidial_conf"])) {$generate_vicidial_conf=$_POST["generate_vicidial_conf"];} +if (isset($_GET["rebuild_conf_files"])) {$rebuild_conf_files=$_GET["rebuild_conf_files"];} + elseif (isset($_POST["rebuild_conf_files"])) {$rebuild_conf_files=$_POST["rebuild_conf_files"];} +if (isset($_GET["template_id"])) {$template_id=$_GET["template_id"];} + elseif (isset($_POST["template_id"])) {$template_id=$_POST["template_id"];} +if (isset($_GET["conf_override"])) {$conf_override=$_GET["conf_override"];} + elseif (isset($_POST["conf_override"])) {$conf_override=$_POST["conf_override"];} +if (isset($_GET["template_name"])) {$template_name=$_GET["template_name"];} + elseif (isset($_POST["template_name"])) {$template_name=$_POST["template_name"];} +if (isset($_GET["template_contents"])) {$template_contents=$_GET["template_contents"];} + elseif (isset($_POST["template_contents"])) {$template_contents=$_POST["template_contents"];} +if (isset($_GET["carrier_id"])) {$carrier_id=$_GET["carrier_id"];} + elseif (isset($_POST["carrier_id"])) {$carrier_id=$_POST["carrier_id"];} +if (isset($_GET["carrier_name"])) {$carrier_name=$_GET["carrier_name"];} + elseif (isset($_POST["carrier_name"])) {$carrier_name=$_POST["carrier_name"];} +if (isset($_GET["registration_string"])) {$registration_string=$_GET["registration_string"];} + elseif (isset($_POST["registration_string"])) {$registration_string=$_POST["registration_string"];} +if (isset($_GET["account_entry"])) {$account_entry=$_GET["account_entry"];} + elseif (isset($_POST["account_entry"])) {$account_entry=$_POST["account_entry"];} +if (isset($_GET["globals_string"])) {$globals_string=$_GET["globals_string"];} + elseif (isset($_POST["globals_string"])) {$globals_string=$_POST["globals_string"];} +if (isset($_GET["dialplan_entry"])) {$dialplan_entry=$_GET["dialplan_entry"];} + elseif (isset($_POST["dialplan_entry"])) {$dialplan_entry=$_POST["dialplan_entry"];} +if (isset($_GET["group_alias_id"])) {$group_alias_id=$_GET["group_alias_id"];} + elseif (isset($_POST["group_alias_id"])) {$group_alias_id=$_POST["group_alias_id"];} +if (isset($_GET["group_alias_name"])) {$group_alias_name=$_GET["group_alias_name"];} + elseif (isset($_POST["group_alias_name"])) {$group_alias_name=$_POST["group_alias_name"];} +if (isset($_GET["caller_id_number"])) {$caller_id_number=$_GET["caller_id_number"];} + elseif (isset($_POST["caller_id_number"])) {$caller_id_number=$_POST["caller_id_number"];} +if (isset($_GET["caller_id_name"])) {$caller_id_name=$_GET["caller_id_name"];} + elseif (isset($_POST["caller_id_name"])) {$caller_id_name=$_POST["caller_id_name"];} +if (isset($_GET["agent_allow_group_alias"])) {$agent_allow_group_alias=$_GET["agent_allow_group_alias"];} + elseif (isset($_POST["agent_allow_group_alias"])) {$agent_allow_group_alias=$_POST["agent_allow_group_alias"];} +if (isset($_GET["default_group_alias"])) {$default_group_alias=$_GET["default_group_alias"];} + elseif (isset($_POST["default_group_alias"])) {$default_group_alias=$_POST["default_group_alias"];} +if (isset($_GET["outbound_calls_per_second"])) {$outbound_calls_per_second=$_GET["outbound_calls_per_second"];} + elseif (isset($_POST["outbound_calls_per_second"])) {$outbound_calls_per_second=$_POST["outbound_calls_per_second"];} +if (isset($_GET["shift_enforcement"])) {$shift_enforcement=$_GET["shift_enforcement"];} + elseif (isset($_POST["shift_enforcement"])) {$shift_enforcement=$_POST["shift_enforcement"];} +if (isset($_GET["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_GET["agent_shift_enforcement_override"];} + elseif (isset($_POST["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_POST["agent_shift_enforcement_override"];} +if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_GET["manager_shift_enforcement_override"];} + elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} +if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} + elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} + + if (isset($script_id)) {$script_id= strtoupper($script_id);} + if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} + +if (strlen($dial_status) > 0) + { + $ADD='28'; + $status = $dial_status; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSenable_queuemetrics_logging = $row[1]; + $SSenable_vtiger_integration = $row[2]; + $SSqc_features_active = $row[3]; + $SSoutbound_autodial_active = $row[4]; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +###################################################################################################### +###################################################################################################### +####### Form variable filtering for security and data integrity +###################################################################################################### +###################################################################################################### + +if ($non_latin < 1) + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); + + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); + + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); + + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); + + ### Y or N ONLY ### + $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); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); + + + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $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); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); + + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); + + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); + + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); + + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); + + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### 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 hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); + + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); + + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); + + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + + + +##### END VARIABLE FILTERING FOR SECURITY ##### + + +# ViciDial database administration +# admin.php +# +# CHANGELOG: +# 50315-1110 - Added Custom Campaign Statuses +# 50317-1438 - Added Fronter Display var to inbound groups +# 50322-1355 - Added custom callerID per campaign +# 50517-1356 - Added user_groups sections and user_group to vicidial_users +# 50517-1440 - Added ability to logout (must click OK with empty user/pass) +# 50602-1622 - Added lead loader pages to load new files into vicidial_list +# 50620-1351 - Added custom vdad transfer AGI extension per campaign +# 50810-1414 - modified in groups to kick out spaces and dashes +# 50908-2136 - Added Custom Campaign HotKeys +# 50914-0950 - Fixed user search by user_group +# 50926-1358 - Modified to allow for language translation +# 50926-1615 - Added WeBRooTWritablE write controls +# 51020-1008 - Added editable web address and park ext - NEW dial campaigns +# 51020-1056 - Added fields and help for campaign recording control +# 51123-1335 - Altered code to function in php globals=off +# 51208-1038 - Added user_level changes, function controls and default user phones +# 51208-1556 - Added deletion of users/lists/campaigns/in groups/remote agents +# 51213-1706 - Added add/delete/modify vicidial scripts +# 51214-1737 - Added preview of vicidial script in popup window +# 51219-1225 - Added campaign and ingroups script selector and get_call_launch field +# 51222-1055 - Added am_message_exten to campaigns to allow for AM Message button +# 51222-1125 - Fixed new vicidial_campaigns default values not being assigned bug +# 51222-1156 - Added LOG OUT ALL AGENTS ON THIS CAMPAIGN button to campaign screen +# 60204-0659 - Fixed hopper reset bug +# 60207-1413 - Added AMD send to voicemail extension and xfer-conf dtmf presets +# 60213-1100 - Added several vicidial_users permissions fields +# 60215-1319 - Added On-hold CallBacks display and links +# 60227-1226 - Fixed vicidial_inbound_groups insert bug +# 60413-1308 - Fixed list display to have 1 row/status: count and time zone tables +# - Added status name in selected dial statuses in campaign screen +# 60417-1416 - Added vicidial_lead_filters sections +# - Changed the header links to color-coded sectional with sublinks below +# - Added filter name and script name to campaign and in-group modify sections +# - Added callback and alt dial options to campaigns section +# - Added callback, alt dial and other options to users section +# 60419-1628 - Alter Callbacks display to include status and LIVE listings, reordered +# 60421-1441 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60425-2355 - Added agent options to vicidial_users, reformatted user page +# 60502-1627 - Added drop_call_seconds and safe_harbor_ fields to campaign screen +# 60503-1228 - Added drop_call_seconds and drop_ fields to inbound groups screen +# 60505-1117 - Added initial framework for new local_call_times tables and definitions +# 60506-1033 - More revisions to the local_call_time section +# 60508-1354 - Finished call_times and state_call_times sections +# - Added modify/delete options for call_times +# 60509-1311 - Functionalize campaign dialable leads calculation +# - Change state_call_times selection from call_times to only allow one per state +# - Added dialable leads count popup to campaign screen if auto-calc is disabled +# - Added test dialable leads count popup to filter screen +# 60510-1050 - Added Wrapup seconds and Wrapup message to campaigns screen +# 60608-1401 - Added allowable inbound_groups checkboxes to CLOSER campaign detail screen +# 60609-1051 - Added add-to-dnc in LISTS section +# 60613-1415 - Added lead recycling options to campaign detail screen +# 60619-1523 - Added variable filtering to eliminate SQL injection attack threat +# 60622-1216 - Fixed HotKey addition form issues and variable filtering +# 60623-1159 - Fixed Scheduled Callbacks over-filtering bug and filter_sql bug +# 60808-1147 - Changed filtering for and added instructions for consutative transfers +# 60816-1552 - Added allcalls_delay start delay for recordings in vicidial.php +# 60817-2226 - Fixed bug that would not allow lead recycling of non-selectable statuses +# 60821-1543 - Added option to Omit Phone Code while dialing in vicidial +# 60821-1625 - Added ALLFORCE recording option for campaign_recording +# 60823-1154 - Added fields for adaptive dialing +# 60824-1326 - Added adaptive_latest_target_gmt for ADAPT_TAPERED dial method +# 60825-1205 - Added adaptive_intensity for ADAPT_ dial methods +# 60828-1019 - Changed adaptive_latest_target_gmt to adaptive_latest_server_time +# 60828-1115 - Added adaptive_dl_diff_target and changed intensity dropdown +# 60927-1246 - Added astguiclient/admin.php functions under SERVERS tab +# 61002-1402 - Added fields for vicidial balance trunk controls +# 61003-1123 - Added functions for vicidial_server_trunks records +# 61109-1022 - Added Emergency VDAC Jam Clear function to Campaign Detail screen +# 61110-1502 - Add ability to select NONE in dial statuses, new list_id must not be < 100 +# 61122-1228 - Added user group campaign restrictions +# 61122-1535 - Changed script_text to unfiltered and added more variables to SCRIPTS +# 61129-1028 - Added headers to Users and Phones with clickable order-by titles +# 70108-1405 - Added ADAPT OVERRIDE to allow for forced dial_level changes in ADAPT dial methods +# - Screen width definable at top of script, merged server_stats into this script +# 70109-1638 - Added ALTPH2 and ADDR3 hotkey options for alt number dialing with HotKeys +# 70109-1716 - Added concurrent_transfers option to vicidial_campaigns +# 70115-1152 - Aded (CLOSER|BLEND|INBND|_C$|_B$|_I$) options for CLOSER-type campaigns +# 70115-1532 - Added auto_alt_dial field to campaign screen for auto-dialing of alt numbers +# 70116-1200 - Added auto_alt_dial_status functionality to campaign screen +# 70117-1235 - Added header formatting variables at top of script +# - Moved Call Times and Phones/Server functions to Admin section +# 70118-1706 - Added new user group displays and links +# 70123-1519 - Added user permission settings for all sections +# 70124-1346 - Fixed spelling errors and formatting consistency +# 70202-1120 - Added agent_pause_codes section to campaigns +# 70205-1204 - Added memo, last dialed, timestamp and stats-refresh fields to vicidial_campaigns/lists +# 70206-1323 - Added user setting for vicidial_recording_override +# 70212-1412 - Added system settings section +# 70214-1226 - Added QueueMetrics Log ID field to system settings section +# 70219-1102 - Changed campaign dial statuses to be one string allowing for high limit +# 70223-0957 - Added queuemetrics_eq_prepend for custom ENTERQUEUE prepending of a field +# 70302-1111 - Fixed small bug in dialable leads calculation +# 70314-1133 - Added insert selection on script forms +# 70319-1423 - Added Alter Customer Data and agent disable display functions +# 70319-1625 - Added option to allow agents to login to outbound campaigns with no leads in the hopper +# 70322-1455 - Added sipsak messages parameters +# 70402-1157 - Added HOME link and entry to system_settings table, added QM link on reports section +# 70516-1628 - Started reformatting campaigns to use submenus to break up options +# 70529-1653 - Added help for list mix +# 70530-1354 - Added human_answered field to statuses, added system status modification +# 70530-1714 - Added lists for all campaign subsections +# 70531-1631 - Development on List mix admin interface +# 70601-1629 - More development on List mix admin interface, formatting, and added some javascript +# 70602-1300 - More development on List mix admin interface, more javascript +# 70608-1459 - Added option to set LIVE Callbacks to INACTIVE after one month +# 70612-1451 - Added Callback INACTIVE link for after one week, sort by user/group/entrydate +# 70614-0231 - Added Status Categories, ability to Modify Statuses, moved system statuses to sub-section +# 70623-1008 - List Mix section now allows modification of list mix entries +# 70629-1721 - List Mix section adding and removing of list entries active +# 70706-1636 - List Mix section cleanup and more error-checking +# 70908-0941 - Added agc logile enable system_settings +# 71020-1934 - Added inbound groups options: on-hold music, messages, call_times +# 71022-1343 - Added inbound group ranks for users +# 71029-1710 - Added option for campaign to be inbound and/or blended with no restrictions on the campaign_id name +# - Added 5th NEW and 6th NEW to the dial order options +# 71030-2010 - Added Manual Dial List ID field to campaigns table +# 71103-2207 - Added inbound_group_rank and fewest_calls to the inbound groups call order options +# 71113-1521 - Added campaign_rank to agent options +# - Added ability to Copy a campaign's setting to a new campaign +# 71113-2225 - Added ability to copy user and in-group settings to new users and in-groups +# 71116-0942 - Added campaign_rank and fewest_calls as methods for agent call routing +# 71122-1135 - Added default transfer group for campaigns and inbound groups +# 71125-1751 - Added allowable transfer groups to campaign detail screen +# 80107-1204 - Started framework for new QC section +# 80112-0242 - Added more options for lead order +# 80211-1901 - Added DB Schema Version to system settings display +# 80224-1334 - Added Queue Priority to in-groups and campaigns +# 80302-0232 - added drop_action and transfer to in-group for both in-groups and outbound +# 80310-1504 - added QC settings section to campaign screen +# 80317-2037 - Added Recording override settings to in-groups +# 80414-1505 - More work on QC, added vicidial_qc_codes +# 80424-0442 - Added non_latin system_settings lookup at top to override dbconnect setting +# 80505-0333 - Added phones_alias sections to allow for load-balanced-phone-logins +# 80512-1529 - Added auto-generate of User ID feature +# 80515-1345 - Added Shifts sub-section to Admin section +# 80528-0001 - Added campaign survey sub-section +# 80528-1102 - Added user timeclock edit options +# 80608-1304 - Changed add-to-DNC to allow for multiple entries per submission +# 80625-0032 - Added time/phone display format options to system settings +# 80703-0124 - Added alter cust phone and api settings +# 80715-1130 - Added Recycle leads limit count +# 80719-1351 - Changed QC settings in campaigns and In-Groups +# 80809-2305 - Added Sale and Dead Lead categories to status categories page +# 80815-1036 - Added manual dial filter to capaigns +# 80823-2124 - Added copy to clipboard campaign option +# 80829-2359 - Added EXTENDED auto_alt_dial options +# 80831-0406 - Added agent screen extended alt-dial option to campaigns +# 80909-0553 - Added campaign-specific DNC list option and add +# 81002-1101 - Added more in-group options and new DID section and user options +# 81007-0936 - Added three_way_call_cid option to campaigns +# 81012-1725 - Added INBOUND_MAN dial method allowing for manual list dialing with inbound calls +# 81030-0348 - Added campaign pause code force option +# 81030-2228 - Fixed DIDs creation issue +# 81103-1408 - Added 3way call dial prefix option +# 81107-1551 - Added Stats Percent of Calls Answered Within X seconds fields to in-groups +# 81118-0933 - Changed lists listing with links and more options +# 81119-0715 - Added ability to bulk enable/disable lists from modify campaign screen +# 81209-1538 - Added web_form_target to campaign screen +# 81210-1430 - Added http server IP and recording link options to servers +# 81222-0500 - Reformatted all listings to same format changed to field selects instead of * +# 81228-2300 - Added fields for vtiger integration and active vicidial_user display +# 90101-1216 - Added options for user synchronization with vtiger +# 90112-0335 - Added vtiger_create_lead_record and vtiger_create_lead_record options +# 90115-0502 - Activated AGENT DID routing option +# 90126-2256 - Added vtiger_screen_login campaign option and user agent alert option +# 90201-1503 - Added option to disable the viewing of inactive QC features +# 90202-0112 - Added option to disable outbound autodialing(or list dialing) +# 90202-0444 - Added cpd_amd_action option for processing of AMD messages +# 90209-1339 - Added download_lists option to allow downloading of lists +# 90210-1042 - Added options for auto-generation of asterisk conf files +# 90301-2026 - Added Vtiger group synchronization +# 90302-2046 - Changed Section heading to be on the left side of the screen +# 90303-0631 - Added web vars to agent campaign and in-group settings +# 90303-2047 - Added group aliases and default group aliases +# 90306-1214 - Added shift enforcement and server/system calls per second options +# 90308-0956 - Added server statistics +# 90309-0059 - Changed logging to admin_server_log +# 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 +# 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue +# +# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time + +$admin_version = '2.2.0-233'; +$build = '100104-1454'; + +$STARTtime = date("U"); +$SQLdate = date("Y-m-d H:i:s"); +$REPORTdate = date("Y-m-d"); +$MT[0]=''; +$US='_'; +$active_lists=0; +$inactive_lists=0; + +$month_old = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); +$past_week_date = date("Y-m-d H:i:s",$week_old); + +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Vous êtes maintenant déconnecté. Merci.\n"; + exit; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfull_name =$row[3]; + $LOGuser_level =$row[4]; + $LOGuser_group =$row[5]; + $LOGdelete_users =$row[8]; + $LOGdelete_user_groups =$row[9]; + $LOGdelete_lists =$row[10]; + $LOGdelete_campaigns =$row[11]; + $LOGdelete_ingroups =$row[12]; + $LOGdelete_remote_agents =$row[13]; + $LOGload_leads =$row[14]; + $LOGcampaign_detail =$row[15]; + $LOGast_admin_access =$row[16]; + $LOGast_delete_phones =$row[17]; + $LOGdelete_scripts =$row[18]; + $LOGdelete_filters =$row[29]; + $LOGalter_agent_interface =$row[30]; + $LOGdelete_call_times =$row[32]; + $LOGmodify_call_times =$row[33]; + $LOGmodify_users =$row[34]; + $LOGmodify_campaigns =$row[35]; + $LOGmodify_lists =$row[36]; + $LOGmodify_scripts =$row[37]; + $LOGmodify_filters =$row[38]; + $LOGmodify_ingroups =$row[39]; + $LOGmodify_usergroups =$row[40]; + $LOGmodify_remoteagents =$row[41]; + $LOGmodify_servers =$row[42]; + $LOGview_reports =$row[43]; + $LOGmodify_dids =$row[56]; + $LOGdelete_dids =$row[57]; + $LOGmanager_shift_enforcement_override=$row[61]; + $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns = $row[0]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|XXXX|$ip|$browser|$LOGfull_name|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +###################################################################################################### +###################################################################################################### +####### Header settings +###################################################################################################### +###################################################################################################### + + +header ("Content-type: text/html; charset=utf-8"); +echo "\n"; +echo "\n"; +echo "\n"; +echo "ADMINISTRATION: "; + +if (!isset($ADD)) {$ADD=0;} + +if ($ADD=="1") {$hh='users'; echo "Ajouter un nouvel utilisateur";} +if ($ADD=="1A") {$hh='users'; echo "Utilisateur De Copy";} +if ($ADD==11) {$hh='campaigns'; $sh='basic'; echo "Ajouter une nouvelle campagne";} +if ($ADD==12) {$hh='campaigns'; $sh='basic'; echo "Campagne De Copy";} +if ($ADD==111) {$hh='lists'; echo "Ajouter une nouvelle liste";} +if ($ADD==121) {$hh='lists'; echo "Ajouter un nouveau DNC";} +if ($ADD==1111) {$hh='ingroups'; echo "Ajouter un nouveau in-group";} +if ($ADD==1211) {$hh='ingroups'; echo "Dans-Groupe De Copy";} +if ($ADD==1311) {$hh='ingroups'; echo "Ajouter un nouveauDID";} +if ($ADD==1411) {$hh='ingroups'; echo "CopieDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Ajouter un appel Menu";} +if ($ADD==1611) {$hh='ingroups'; echo "Copiez Appel du menu";} +if ($ADD==11111) {$hh='remoteagent'; echo "Ajouter de nouveaux agents distants";} +if ($ADD==111111) {$hh='usergroups'; echo "Ajouter de nouveaux groupes d'utilisateurs";} +if ($ADD==1111111) {$hh='scripts'; echo "Ajouter un nouveau script";} +if ($ADD==11111111) {$hh='filters'; echo "Ajouter un nouveau filtre";} +if ($ADD==111111111) {$hh='admin'; $sh='times'; echo "Ajouter une nouvelle période d'appels";} +if ($ADD==131111111) {$hh='admin'; $sh='shifts'; echo "Ajouter un nouveau Shift";} +if ($ADD==1111111111) {$hh='admin'; $sh='times'; echo "Ajouter une nouvelle période d'appels d'état";} +if ($ADD==11111111111) {$hh='admin'; $sh='phones'; echo "AJOUTER UN NOUVEAU TELEPEHONE";} +if ($ADD==12111111111) {$hh='admin'; $sh='phones'; echo "AJOUTER UN NOUVEAU TELEPEHONE ALIAS";} +if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "ADD NEW GROUP ALIAS";} +if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "AJOUTER UN NOUVEAU SERVEUR";} +if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "ADD NEW CONF TEMPLATE";} +if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "ADD NEW CARRIER";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW ENTRY TTS";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC ON HOLD ENTRY";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW messagerie vocale";} +if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "AJOUTER UNE NOUVELLE CONFERENCE";} +if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} +if ($ADD=='2') {$hh='users'; echo "Ajout d'un nouvel utilisateur";} +if ($ADD=='2A') {$hh='users'; echo "Nouvelle Addition Copiée D'Utilisateur";} +if ($ADD==20) {$hh='campaigns'; $sh='basic'; echo "Nouvelle Addition Copiée De Campagne";} +if ($ADD==21) {$hh='campaigns'; $sh='basic'; echo "Ajout d'une nouvelle campagne";} +if ($ADD==22) {$hh='campaigns'; $sh='status'; echo "Ajout d'un nouveau statut de campagne";} +if ($ADD==23) {$hh='campaigns'; $sh='hotkey'; echo "New Campagne HotKey Addition";} +if ($ADD==25) {$hh='campaigns'; $sh='recycle'; echo "New CampagneLe Fil RéutilisentAddition";} +if ($ADD==26) {$hh='campaigns'; $sh='autoalt'; echo "Nouveau statut d'appel automatique du numéro alternatif";} +if ($ADD==27) {$hh='campaigns'; $sh='pause'; echo "Nouveau code de pause";} +if ($ADD==28) {$hh='campaigns'; $sh='dialstat'; echo "Statut d'appel pour la campagne ajouté";} +if ($ADD==29) {$hh='campaigns'; $sh='listmix'; echo "Le Mélange De Liste De Campagne S'est ajouté";} +if ($ADD==211) {$hh='lists'; echo "Ajout d'une nouvelle liste";} +if ($ADD==2111) {$hh='ingroups'; echo "Ajout d'un nouvel In-Group";} +if ($ADD==2011) {$hh='ingroups'; echo "Nouvelle Addition Copiée De Dans-Groupe";} +if ($ADD==2311) {$hh='ingroups'; echo "A New Addition";} +if ($ADD==2411) {$hh='ingroups'; echo "Nouvelle adjonction Copied DID";} +if ($ADD==2511) {$hh='ingroups'; echo "Nouvel appel Menu";} +if ($ADD==2611) {$hh='ingroups'; echo "Nouvel appel Menu";} +if ($ADD==21111) {$hh='remoteagent'; echo "Ajout d'un nouvel agent distant";} +if ($ADD==211111) {$hh='usergroups'; echo "Ajout d'un nouveau groupe d'utilisateurs";} +if ($ADD==2111111) {$hh='scripts'; echo "Ajout d'un nouveau script";} +if ($ADD==21111111) {$hh='filters'; echo "Ajout d'un nouveau filtre";} +if ($ADD==211111111) {$hh='admin'; $sh='times'; echo "Ajout d'une nouvelle période d'appels";} +if ($ADD==231111111) {$hh='admin'; $sh='shifts'; echo "New Shift adjonction";} +if ($ADD==2111111111) {$hh='admin'; $sh='times'; echo "Ajout d'une nouvelle période d'appels d'état";} +if ($ADD==21111111111) {$hh='admin'; $sh='phones'; echo "AJOUTER UN NOUVEAU TELEPHONE";} +if ($ADD==22111111111) {$hh='admin'; $sh='phones'; echo "AJOUT DE NOUVEAU TÉLÉPHONE ALIAS";} +if ($ADD==23111111111) {$hh='admin'; $sh='phones'; echo "AJOUT DE NOUVEAU GROUPE ALIAS";} +if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "AJOUTER UN NOUVEAU SERVEUR";} +if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "AJOUT D'UN NOUVEAU TRUNK VERS UN SERVEUR VICIDIAL";} +if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "AJOUT DE NOUVEAUX CONF TEMPLATE";} +if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "AJOUT DE NOUVEAUX CARRIER";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "Ajout de nouveaux TTS ENTRY";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "AJOUT DE NEW MUSIC ON HOLD ENTRY";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "AJOUT DE NOUVEAUX la boîte vocale";} +if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "AJOUT D'UNE NOUVELLE CONFERENCE";} +if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} +if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "AJOUTER DES STATUTS DE SYSTÈME DE VICIDIAL";} +if ($ADD==231111111111111) {$hh='admin'; $sh='status'; echo "AJOUTER LA CATÉGORIE DE STATUT DE VICIDIAL";} +if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "AJOUT VICIDIAL QC Code de statut";} +if ($ADD==3) {$hh='users'; echo "Modifier un utilisateur";} +if ($ADD==30) {$hh='campaigns'; echo "Camapagne non autorisée";} +if ($ADD==31) + { + $hh='campaigns'; $sh='detail'; echo "Modifier la campagne - Détail - $campaign_id"; + if ($SUB==22) {echo " - Statuts";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Le Fil RéutilisentEntries";} + if ($SUB==26) {echo " - Auto Alt Dial Statuts";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Liste Mixes";} + if ($SUB=='20A') {echo " - Sondage";} + } +if ($ADD==34) + { + $hh='campaigns'; $sh='basic'; echo "Modifier une Campagne - Vue Basique - $campaign_id"; + if ($SUB==22) {echo " - Statuts";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " -Le Fil RéutilisentEntries";} + if ($SUB==26) {echo " - Auto Alt Dial Statuts";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Liste Mixes";} + if ($SUB=='20A') {echo " - Sondage";} + } +if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Statuts De Campagne";} +if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Campagne HotKeys";} +if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "Le Fil De Campagne Réutilisent Des Entrées";} +if ($ADD==36) {$hh='campaigns'; $sh='autoalt'; echo "Statuts Automatiques De Cadran De la Campagne Alt";} +if ($ADD==37) {$hh='campaigns'; $sh='pause'; echo "Codes De Pause D'Agent De Campagne";} +if ($ADD==38) {$hh='campaigns'; $sh='dialstat'; echo "Statuts De Cadran De Campagne";} +if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Mlanges De Liste De Campagne";} +if ($ADD==311) {$hh='lists'; echo "Modifier la liste";} +if ($ADD==3111) {$hh='ingroups'; echo "Modifier le In-Group";} +if ($ADD==3311) {$hh='ingroups'; echo "ModifierDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Modifier menu d-appel";} +if ($ADD==31111) {$hh='remoteagent'; echo "Modifier les agents distants";} +if ($ADD==311111) {$hh='usergroups'; echo "Modifier les groupes d'utilisateurs";} +if ($ADD==3111111) {$hh='scripts'; echo "Modifier le script";} +if ($ADD==31111111) {$hh='filters'; echo "Modifier le filtre";} +if ($ADD==311111111) {$hh='admin'; $sh='times'; echo "Modifier la période d'appels";} +if ($ADD==321111111) {$hh='admin'; $sh='times'; echo "Modifier la liste des définitions des périodes d'appels d'état";} +if ($ADD==331111111) {$hh='admin'; $sh='shifts'; echo "Modifier Shift";} +if ($ADD==3111111111) {$hh='admin'; $sh='times'; echo "Modifier la période d'appels d'état";} +if ($ADD==31111111111) {$hh='admin'; $sh='phones'; echo "MODIFIER LE TELEPHONE";} +if ($ADD==32111111111) {$hh='admin'; $sh='phones'; echo "MODIFIER LE TELEPHONE ALIAS";} +if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "Modifier un groupe ALIAS";} +if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "MODIFIER LE SERVEUR";} +if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} +if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFIER TTS ENTRY";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFIER LA MUSIQUE EN ATTENTE ENTREE";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFIER la boîte vocale";} +if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "MODIFIER LA CONFERENCE";} +if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "MODIFIER LES REGLAGES DU SYSTEME VICIDIAL";} +if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo "MODIFIEZ LES STATUTS DE SYSTÈME DE VICIDIAL";} +if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo "MODIFIEZ LA CATÉGORIE DE STATUT DE VICIDIAL";} +if ($ADD==341111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC Code de statut";} +if ($ADD=="4A") {$hh='users'; echo "Modifier un utilisateur - Admin";} +if ($ADD=="4B") {$hh='users'; echo "Modifier un utilisateur - Admin";} +if ($ADD==4) {$hh='users'; echo "Modifier un utilisateur";} +if ($ADD==41) {$hh='campaigns'; $sh='detail'; echo "Modifier la campagne";} +if ($ADD==42) {$hh='campaigns'; $sh='status'; echo "Modifier la campagne Status";} +if ($ADD==43) {$hh='campaigns'; $sh='hotkey'; echo "Modifier la campagne HotKey";} +if ($ADD==44) {$hh='campaigns'; $sh='basic'; echo "Modifier une Campagne - Vue Basique";} +if ($ADD==45) {$hh='campaigns'; $sh='recycle'; echo "Modifier la campagne Recyclage Plomb";} +if ($ADD==47) {$hh='campaigns'; $sh='pause'; echo "Modifier le code de pause";} +if ($ADD==48) {$hh='campaigns'; $sh='qc'; echo "Modifier les paramètres de campagne QC";} +if ($ADD==49) {$hh='campaigns'; $sh='listmix'; echo "Modifiez Le Mélange De Liste De Campagne";} +if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Modifier Campagne Sondage";} +if ($ADD==411) {$hh='lists'; echo "Modifier la liste";} +if ($ADD==4111) {$hh='ingroups'; echo "Modifier le In-Group";} +if ($ADD==4311) {$hh='ingroups'; echo "ModifierDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Modifier menu d-appel";} +if ($ADD==41111) {$hh='remoteagent'; echo "Modifier les agents distants";} +if ($ADD==411111) {$hh='usergroups'; echo "Modifier les groupes d'utilisateurs";} +if ($ADD==4111111) {$hh='scripts'; echo "Modifier le script";} +if ($ADD==41111111) {$hh='filters'; echo "Modifier le filtre";} +if ($ADD==411111111) {$hh='admin'; $sh='times'; echo "Modifier la période d'appels";} +if ($ADD==431111111) {$hh='admin'; $sh='shifts'; echo "Modifier Shift";} +if ($ADD==4111111111) {$hh='admin'; $sh='times'; echo "Modifier la période d'appels d'état";} +if ($ADD==41111111111) {$hh='admin'; $sh='phones'; echo "MODIFIER LE TELEPHONE";} +if ($ADD==42111111111) {$hh='admin'; $sh='phones'; echo "MODIFIER LE TELEPHONE ALIAS";} +if ($ADD==43111111111) {$hh='admin'; $sh='phones'; echo "Modifier un groupe ALIAS";} +if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "MODIFIER LE SERVEUR";} +if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "MODIFIER LE TRUNK SERVEUR VICIDIAL";} +if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} +if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFIER TTS ENTRY";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFIER LA MUSIQUE EN ATTENTE ENTREE";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFIER la boîte vocale";} +if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "MODIFIER LA CONFERENCE";} +if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "MODIFIER LES REGLAGES DU SYSTEME VICIDIAL";} +if ($ADD==421111111111111) {$hh='admin'; $sh='status'; echo "MODIFIEZ LES STATUTS DE SYSTÈME DE VICIDIAL";} +if ($ADD==431111111111111) {$hh='admin'; $sh='status'; echo "MODIFIEZ LES CATÉGORIES DE STATUT DE VICIDIAL";} +if ($ADD==441111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC Code de statut";} +if ($ADD==5) {$hh='users'; echo "SupprimerUtilisateur";} +if ($ADD==51) {$hh='campaigns'; $sh='detail'; echo "SupprimerCampagne";} +if ($ADD==52) {$hh='campaigns'; $sh='detail'; echo "Déconnecter les agents";} +if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Emergency VDAC Jam Clear";} +if ($ADD==511) {$hh='lists'; echo "SupprimerList";} +if ($ADD==5111) {$hh='ingroups'; echo "SupprimerIn-Group";} +if ($ADD==5311) {$hh='ingroups'; echo "SupprimerDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Supprimer menu d-appel";} +if ($ADD==51111) {$hh='remoteagent'; echo "Supprimer les agents distants";} +if ($ADD==511111) {$hh='usergroups'; echo "Supprimer les utilisateurs Group";} +if ($ADD==5111111) {$hh='scripts'; echo "Supprimer les scripts";} +if ($ADD==51111111) {$hh='filters'; echo "Supprimer le filtre";} +if ($ADD==511111111) {$hh='admin'; $sh='times'; echo "SupprimerCall Time";} +if ($ADD==531111111) {$hh='admin'; $sh='shifts'; echo "Maj + Suppr";} +if ($ADD==5111111111) {$hh='admin'; $sh='times'; echo "Supprimer la période d'appels d'état";} +if ($ADD==51111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==52111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE ALIAS";} +if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} +if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} +if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE la boîte vocale";} +if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==6) {$hh='users'; echo "SupprimerUtilisateur";} +if ($ADD==61) {$hh='campaigns'; $sh='detail'; echo "SupprimerCampagne";} +if ($ADD==62) {$hh='campaigns'; $sh='detail'; echo "Déconnecter les agents";} +if ($ADD==63) {$hh='campaigns'; $sh='detail'; echo "Emergency VDAC Jam Clear";} +if ($ADD==65) {$hh='campaigns'; $sh='recycle'; echo "Supprimer le recyclage des fiches";} +if ($ADD==66) {$hh='campaigns'; $sh='autoalt'; echo "Supprimer ce statut d'appel automatique du numéro alternatif";} +if ($ADD==67) {$hh='campaigns'; $sh='pause'; echo "Supprimer le code de pause";} +if ($ADD==68) {$hh='campaigns'; $sh='dialstat'; echo "Statut d'appel pour la campagne supprimé";} +if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "Mélange De Liste De Campagne Enlevé";} +if ($ADD==611) {$hh='lists'; echo "SupprimerList";} +if ($ADD==6111) {$hh='ingroups'; echo "SupprimerIn-Group";} +if ($ADD==6311) {$hh='ingroups'; echo "SupprimerDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Supprimer menu d-appel";} +if ($ADD==61111) {$hh='remoteagent'; echo "Supprimer les agents distants";} +if ($ADD==611111) {$hh='usergroups'; echo "Supprimer les utilisateurs Group";} +if ($ADD==6111111) {$hh='scripts'; echo "Supprimer les scripts";} +if ($ADD==61111111) {$hh='filters'; echo "Supprimer le filtre";} +if ($ADD==611111111) {$hh='admin'; $sh='times'; echo "SupprimerCall Time";} +if ($ADD==631111111) {$hh='admin'; $sh='shifts'; echo "Maj + Suppr";} +if ($ADD==6111111111) {$hh='admin'; $sh='times'; echo "Supprimer la période d'appels d'état";} +if ($ADD==61111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE ALIAS";} +if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} +if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "SUPPRIMER LE TRUNK SERVEUR VICIDIAL";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE la boîte vocale";} +if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==73) {$hh='campaigns'; echo "Nombre de fiches désavtivées";} +if ($ADD==7111111) {$hh='scripts'; echo "Prévisualisation du script";} +if ($ADD==700000000000000) {$hh='reports'; echo "ADMINISTRATION DE VICIDIAL CHANGE LOG";} +if ($ADD==710000000000000) {$hh='reports'; echo "VICIDIAL UTILISATEUR ADMIN CHANGE LOG";} +if ($ADD==720000000000000) {$hh='reports'; echo "VICIDIAL SECTION ADMIN CHANGE LOG";} +if ($ADD==730000000000000) {$hh='reports'; echo "VICIDIAL DETAIL ADMIN CHANGE LOG";} +if ($ADD==0) {$hh='users'; echo "Liste des utilisateurs";} +if ($ADD==8) {$hh='users'; echo "Rappels de l'agent";} +if ($ADD==81) {$hh='campaigns'; $sh='list'; echo "Rappels dans la campagne ";} +if ($ADD==811) {$hh='lists'; echo "Rappels dans la liste";} +if ($ADD==8111) {$hh='usergroups'; echo "Rappels de service dans le groupe d'utilisateurs";} +if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Campagnes";} +if ($ADD==100) {$hh='lists'; echo "Listes";} +if ($ADD==1000) {$hh='ingroups'; echo "In-Groups";} +if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Appel Menus";} +if ($ADD==10000) {$hh='remoteagent'; echo "Agents distants";} +if ($ADD==100000) {$hh='usergroups'; echo "Groupes d'utilisateurs";} +if ($ADD==1000000) {$hh='scripts'; echo "Scripts";} +if ($ADD==10000000) {$hh='filters'; echo "Filtres";} +if ($ADD==100000000) {$hh='admin'; $sh='times'; echo "Périodes d'appels";} +if ($ADD==130000000) {$hh='admin'; $sh='shifts'; echo "Shifts";} +if ($ADD==1000000000) {$hh='admin'; $sh='times'; echo "Périodes d'appels d'états";} +if ($ADD==10000000000) {$hh='admin'; $sh='phones'; echo "LISTE DE TELEPHONES";} +if ($ADD==12000000000) {$hh='admin'; $sh='phones'; echo "TÉLÉLISTE DE TELEPHONESE ALIAS";} +if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GROUPE ALIAS LISTE";} +if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "LISTE DE SERVEURS";} +if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF TEMPLATE LISTE";} +if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "CARRIER LISTE";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS Entry List";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "MUSIC ON HOLD Entry List";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "VOCAL encadrés Liste";} +if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "LISTE DE CONFERENCES";} +if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL LISTE DE CONFERENCES";} +if ($ADD==550) {$hh='users'; echo "Formulaire de recherche";} +if ($ADD==551) {$hh='users'; echo "RECHERCHER DES TELEPHONES";} +if ($ADD==660) {$hh='users'; echo "Résultats de la recherche";} +if ($ADD==661) {$hh='users'; echo "RESULTATS DE LA RECHERCHE DE TELEPHONES";} +if ($ADD==99999) {$hh='users'; echo "AIDE";} +if ($ADD==999999) {$hh='reports'; echo "RAPPORTS";} + +if ( ($ADD>9) && ($ADD < 99998) ) + { + ##### get scripts listing for dynamic pulldown + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $scripts_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $scripts_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get filters listing for dynamic pulldown + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_sql from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + $filters_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($filters_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $filters_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $filtername_list["$rowx[0]"] = "$rowx[1]"; + $filtersql_list["$rowx[0]"] = "$rowx[2]"; + $o++; + } + + ##### get call_times listing for dynamic pulldown + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $times_to_print = mysql_num_rows($rslt); + + $o=0; + while ($times_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $call_times_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $call_timename_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + } + +if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD<70)) or ($ADD=="4A") or ($ADD=="4B") or (strlen($ADD)==12) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + + ##### BEGIN get campaigns listing for rankings ##### + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $campaigns_value=''; + $RANKcampaigns_list="<tr><td>CAMPAIGN</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $campaign_id_values[$o] = $rowx[0]; + $campaign_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + $group_web_vars=''; + $campaign_web=''; + $stmt="SELECT campaign_rank,calls_today,group_web_vars from vicidial_campaign_agents where user='$user' and campaign_id='$campaign_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_campaign_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_campaign_rank=0; $group_web_vars='';} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_GET["RANK_$campaign_id_values[$o]"];} + elseif (isset($_POST["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_POST["RANK_$campaign_id_values[$o]"];} + if (isset($_GET["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_GET["WEB_$campaign_id_values[$o]"];} + elseif (isset($_POST["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_POST["WEB_$campaign_id_values[$o]"];} + if ($non_latin < 1) + { + $campaign_rank = ereg_replace("[^-\_0-9]","",$campaign_rank); + $campaign_web = preg_replace("/;|\"|\'/","",$campaign_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', group_web_vars='$campaign_web' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', campaign_id='$campaign_id_values[$o]', user='$user', group_web_vars='$campaign_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_agents set campaign_weight='$campaign_rank' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$campaign_rank = $SELECT_campaign_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + # disable non user-group allowable campaign ranks + $stmt="SELECT user_group from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Ruser_group = $row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$Ruser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $UGcampaigns = explode(" ", $allowed_campaigns); + + $p=0; $RANK_camp_active=0; $CR_disabled = ''; + if (eregi('-ALL-CAMPAIGNS-',$allowed_campaigns)) + {$RANK_camp_active++;} + else + { + $UGcampaign_ct = count($UGcampaigns); + while ($p < $UGcampaign_ct) + { + if ($campaign_id_values[$o] == $UGcampaigns[$p]) + {$RANK_camp_active++;} + $p++; + } + } + if ($RANK_camp_active < 1) {$CR_disabled = 'DISABLED';} + + $RANKcampaigns_list .= "<tr $bgcolor><td>"; + $campaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] <BR>\n"; + $RANKcampaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] </td>"; + $RANKcampaigns_list .= "<td>     <select size=1 name=RANK_$campaign_id_values[$o] $CR_disabled>\n"; + $h="9"; + while ($h>=-9) + { + $RANKcampaigns_list .= "<option value=\"$h\""; + if ($h==$campaign_rank) + {$RANKcampaigns_list .= " SELECTED";} + $RANKcampaigns_list .= ">$h</option>"; + $h--; + } + if ( (strlen($campaign_web) < 1) and (strlen($group_web_vars) > 0) ) + {$campaign_web=$group_web_vars;} + $RANKcampaigns_list .= "</select></td>\n"; + $RANKcampaigns_list .= "<td align=right>     $calls_today</td>\n"; + $RANKcampaigns_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$campaign_id_values[$o] value=\"$campaign_web\"></td></tr>\n"; + $o++; + } + ##### END get campaigns listing for rankings ##### + + + ##### BEGIN get inbound groups listing for checkboxes ##### + $xfer_groupsSQL=''; + if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) + { + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + + 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';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + if ($ADD==3) + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; +# $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + $XFERgroups_list=''; + $RANKgroups_list="<tr><td>ENTRANT GROUP</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_values[$o] = $rowx[0]; + $group_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($groups_to_print > $o) + { + $group_web_vars=''; + $group_web=''; + $stmt="SELECT group_rank,calls_today,group_web_vars from vicidial_inbound_group_agents where user='$user' and group_id='$group_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_group_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_group_rank=0;} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$group_id_values[$o]"])) {$group_rank=$_GET["RANK_$group_id_values[$o]"];} + elseif (isset($_POST["RANK_$group_id_values[$o]"])) {$group_rank=$_POST["RANK_$group_id_values[$o]"];} + if (isset($_GET["WEB_$group_id_values[$o]"])) {$group_web=$_GET["WEB_$group_id_values[$o]"];} + elseif (isset($_POST["WEB_$group_id_values[$o]"])) {$group_web=$_POST["WEB_$group_id_values[$o]"];} + + if ($non_latin < 1) + { + $group_rank = ereg_replace("[^-\_0-9]","",$group_rank); + $group_web = preg_replace("/;|\"|\'/","",$group_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_web_vars='$group_web' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_id='$group_id_values[$o]', user='$user', group_web_vars='$group_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_inbound_agents set group_weight='$group_rank' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$group_rank = $SELECT_group_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $groups_list .= "<input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $XFERgroups_list .= "<input type=\"checkbox\" name=\"XFERgroups[]\" value=\"$group_id_values[$o]\""; + $RANKgroups_list .= "<tr $bgcolor><td><input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $p=0; + $group_ct = count($groups); + while ($p < $group_ct) + { + if ($group_id_values[$o] == $groups[$p]) + { + $groups_list .= " CHECKED"; + $RANKgroups_list .= " CHECKED"; + $groups_value .= " $group_id_values[$o]"; + } + $p++; + } + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + if ($group_id_values[$o] == $XFERgroups[$p]) + { + $XFERgroups_list .= " CHECKED"; + $XFERgroups_value .= " $group_id_values[$o]"; + } + $p++; + } + $stmt="SELECT queue_priority from vicidial_inbound_groups where group_id='$group_id_values[$o]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VIG_priority = $row[0]; + + $groups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] - $VIG_priority <BR>\n"; + $XFERgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] <BR>\n"; + $RANKgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] </td>"; + $RANKgroups_list .= "<td>     <select size=1 name=RANK_$group_id_values[$o]>\n"; + $h="9"; + while ($h>=-9) + { + $RANKgroups_list .= "<option value=\"$h\""; + if ($h==$group_rank) + {$RANKgroups_list .= " SELECTED";} + $RANKgroups_list .= ">$h</option>"; + $h--; + } + if ( (strlen($group_web) < 1) and (strlen($group_web_vars) > 0) ) + {$group_web=$group_web_vars;} + $RANKgroups_list .= "</select></td>\n"; + $RANKgroups_list .= "<td align=right>     $calls_today</td>\n"; + $RANKgroups_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$group_id_values[$o] value=\"$group_web\"></td></tr>\n"; + $o++; + } + if (strlen($groups_value)>2) {$groups_value .= " -";} + if (strlen($XFERgroups_value)>2) {$XFERgroups_value .= " -";} + } + ##### END get inbound groups listing for checkboxes ##### + + +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) + { + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + { + $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $qc_allowed_campaigns = $row[1]; + $qc_allowed_inbound_groups = $row[2]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $campaigns = explode(" ", $allowed_campaigns); + $qc_allowed_campaigns = preg_replace("/ -$/","",$qc_allowed_campaigns); + $qc_campaigns = explode(" ", $qc_allowed_campaigns); + $qc_allowed_inbound_groups = preg_replace("/ -$/","",$qc_allowed_inbound_groups); + $qc_groups = explode(" ", $qc_allowed_inbound_groups); + } + + $campaigns_value=''; + $campaigns_list='<B><input type="checkbox" name="campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_campaigns_value=''; + $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_groups_value=''; + $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) + { + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } + $campaigns_list.="> ALL-CAMPAIGNS - LES UTILISATEURS PEUVENT VOIR CHAQUE CAMPAGNE</B><BR>\n"; + $qc_campaigns_list.="> ALL-CAMPAIGNS - UTILISATEURS CAN QC TOUTE LA CAMPAGNE</B><BR>\n"; + $qc_groups_list.="> ALL-GROUPS - UTILISATEURS CAN QC ENTRANT TOUT GROUP</B><BR>\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaign_id_value = $rowx[0]; + $campaign_name_value = $rowx[1]; + $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; + $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; + $p=0; + while ($p<1000) + { + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) + { + # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; + $campaigns_list .= " CHECKED"; + $campaigns_value .= " $campaign_id_value"; + } + if ($campaign_id_value == $qc_campaigns[$p]) + { + $qc_campaigns_list .= " CHECKED"; + $qc_campaigns_value .= " $campaign_id_value"; + } + # echo "<!-- O $p|$campaign_id_value|$campaigns[$p]| -->"; + $p++; + } + $campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $qc_campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $o++; + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; + $p=0; + while ($p<2000) + { + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) + { + $qc_groups_list .= " CHECKED"; + $qc_groups_value .= " $group_id_value"; + } + $p++; + } + $qc_groups_list .= "> $group_id_value - $group_name_value<BR>\n"; + $o++; + } + + if (strlen($campaigns_value)>2) {$campaigns_value .= " -";} + if (strlen($qc_campaigns_value)>2) {$qc_campaigns_value .= " -";} + if (strlen($qc_groups_value)>2) {$qc_groups_value .= " -";} + } + ##### END get campaigns listing for checkboxes ##### + + +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rsltx=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rsltx); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + } + + + +$NWB = "   <a href=\"javascript:openNewWindow('$PHP_SELF?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"AIDE\" ALIGN=TOP></A>"; + + +###################################################################################################### +###################################################################################################### +####### 9 series, HELP screen +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=99999 display the HELP SCREENS +###################### + +if ($ADD==99999) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: AIDE


\n"; + + ?> + VICIDIAL_UTILISATEURS TABLE

+ +
+ ID Utilisateur - C'est ici que vous mettez le numéro ID de l'utilisateur VICIDIAL, entre 2 et 8 caractères. + +
+
+
+ Mot de passe - Mot de passe de l'utilisateur VICIDIAL. Doit contenir au moins 2 caractères. + +
+
+
+ Nom complet - C'est dans ce champ que vous mettez le nom complet de l'utilisateur VICIDIAL. Doit contenir au moins 2 caractères. + +
+
+
+ Niveau de l'utilisateur - C'est ici que vous sélectionnez le niveau de l'utilisateur. Le niveau doit être de 1 pour pouvoir ce connecter à VICIDIAL, plus grand que 2 pour se connecter à une campagne de type Closer, doit être superieur ou égal à 8 pour accéder à la section web administrateur. + +
+
+
+ Groupe d'utilisateur - C'est dans ce menu que vous selectionnez le groupe utilisateur dans lequel sera cet utilisateur. Pour l'instant il n'y a pas de restriction, ce n'est que pour répartir les utilisateurs et autoriser les futures fonctions basées sur ceci. + +
+
+
+ Login du téléphone - C'est ici que vous mettez le login par défaut du téléphone pour quand cette utilisateur se connecte dans vicidial.php. Le champ phone_login sera automatiquement rempli par cette valeur quand l'utilisateur se connectera avec son utilisateur-mot_de_passe_passe-campagne dans l'écran de connection vicidial.php . + +
+
+
+ Mot de passe du téléphone - C'est ici que vous mettez le mot de passe par defaut du téléphone pour quand l'utisateur se connecte dans vicidial.php. Le champ phone_pass sera rempli automatiquement avec cette valeur quand l'utilisateur se connectera avec utilislateur-passe-campagne dans l'écran de conncetion vicidial.php. + +
+
+
+ Active - Ce champ détermine si l'utilisateur est actif dans le système et peuvent utiliser VICIDIAL ressources. La valeur par défaut est Y + +
+
+
+ Courrier électronique, code utilisateur et territoire - Ce sont des champs optionnels. + +
+
+
+ Raccourcis clavier actifs - Si cette option est à 1 elle autorise l'utilisateur à utiliser les raccourcis clavier vicidial.php. + +
+
+
+ Choix des Ingroups -<\/B> Cette option, si elle est mise à 1 autorise l'utilisateur à choisir les ingroups depuis lesquels il recevra des appels quand il est connecté dans une campagne de type CLOSER ou ENTRANT sinon le manager devra le définir dans l'écran de détails de l'utiliseur sur la page d'amiministration. + +
+
+
+ Agent Choisir Territoires - Cette option si la valeur 1 permet à l-utilisateur de choisir les territoires qu-ils vont recevoir des appels à partir de leur connexion à un manuel ou ENTRANT_MAN campagne. Sinon, l-utilisateur sera configuré pour utiliser l-ensemble des territoires qu-ils sont définis comme appartenant à l-utilisateur dans les Territoires Section administrative. + +
+
+
+ Scheduled Callbacks - Cette option permet à un agent à disposition un appel comme CALLBK et choisir la date et l-heure à laquelle le plomb sera ré-activé. + +
+
+
+ Rappel Agent-Seulement - Cette option autorise un agent à assigner un rappel pour lequel il sera le seul a pouvoir rappeler le client. Cela autorise aussi l'agent à voir sa liste de rappel quand il le désire. + +
+
+
+ Appel manuel pour l'agent- Cette option autorise un agent à entrer manuellement une nouvelle fiche et à l'appeler. Elle autorise aussi l'appel de n'importe quel numéro de téléphone depuis vicidial et met cette appel dans sa session. Utilisez cette option avec précaution. + +
+
+
+ Enregistrement vicidial - Cette otpion peut empêcher un agent de faire un enregistrement après qu'il se soit connecté à vicidial. Cette option doit être activée pour que vicidial suive la session d'enregistrement de la campagne. + +
+
+
+ Transferts Vicidial - Cette option peut empêcher un agent d'ouvrir un transfert - conférence dans vicidial. Si c'est desactivé, l'agent ne pourra pas appeler une tierce personne ou transferer l'appel. + + 0) + { + ?> +
+
+
+ Closer Default Blended -<\/B> Cette option coche simplement par défaut la checbox Blended sur un écran de connection d'une campagne de type CLOSER. + + +
+
+
+ Ecrasement de l'enregistrement de VICIDIAL - Cette option va écraser l'option d'enregistrement de la campagne quelle qu'elle soit. DISABLED n'écrasera pas les réglages d'enregistrement de la campagne. NEVER désactivera l'enregistrement sur le client. ONDEMAND est la valeur par défaut et autorise l'agent à démarrer ou arrêter l'enregistrement si nécessaire. ALLCALLS démarrera l'enregistrment à chaque fois qu'un appel est passé à un agent. ALLFORCE démarrera l'enregistrement à chaque fois qu'un appel à un agent est passé sans permettre à l'agent d'arrêter l'enregistrement. Pour les valeurs ALLCALLS et ALLFORCE il possible d'utiliser l'option 'Délai d'enregistrement' pour réduire la taille des enregistrments et la charge du système. + +
+
+
+ Agent de l'exécution Shift Override - Ce paramètre remplace les utilisateurs quel que soit le groupe d'utilisateurs a mis en application de la loi pour Maj. HANDICAPES utilise l'utilisateur groupe. OFF ne fera pas appliquer à tous les changements. START ne faire respecter les temps de connexion, mais n'aura pas d'incidence sur un agent qui est en cours d'exécution sur leurs heures de travail si elles sont déjà logged in ALL appliquent passer l'heure de début et se connecter à un agent, après, ils courent sur la fin de leur quart de temps. La valeur par défaut est désactivé. + +
+
+
+ Alerte Activé - Ce champ indique si l'agent est le navigateur Web des alertes lorsque les appels ont permis de venir dans leur vicidial.php session. La valeur par défaut est 0 pour les NO. + +
+
+
+ Permettez Alertes - Ce champ vous donne la possibilité de permettre navigateur agent des alertes pour être activé par l-agent pour les appels entrants sur leur session vicidial.php. Par défaut est 0 pour le NO. + +
+
+
+ La campagne se range - dans cette section vous pouvez définir le rangque un agent aura pour chaque campagne. Ces rangs peuvent êtreemployés pour tenir compte du cheminement préféré d'appel quand leprochain appel d'agent est placé au campaign_rank. Également dans cette section sont le WEB VAR pour chaque campagne. Il s'agit de permettre à chaque agent d'avoir une autre variable de chaîne qui peuvent être ajoutés à la fiche de Web ou SCRIPT onglet URL, simplement en mettant - A - web_vars - B - comme vous le mettre dans tout autre domaine. + +
+
+
+ Groupes entrants - C'est ici que vous selectionnez les groupes entrants depuis lesquels vous voulez recevoir des appels si vous avez selectionné une campagne de type CLOSER. Vous pourrez également placer le rang, ou le niveau de compétence,dans cette section pour chacun des groupes d'arrivée aussi bien quepouvoir voir le nombre d'appels reçus de chaque groupe d'arrivéepour cet agent spécifique. En outre dans cette section est la capacité de donner à l'agent unrang pour chaque groupe d'arrivée. Ces rangs peuvent être employéspour le cheminement préféré d'appel quand cette option est choisiedans l'écran de dans-groupe. Également dans cette section sont le WEB VAR pour chaque campagne. Il s'agit de permettre à chaque agent d'avoir une autre variable de chaîne qui peuvent être ajoutés à la fiche de Web ou SCRIPT onglet URL, simplement en mettant - A - web_vars - B - comme vous le mettre dans tout autre domaine. + +
+
+
+ Modifications des données des clients pour l'agent - Cette option permet de surcharger, pour un agent précis, l'option de la campagne concernant la modification des données du clients. NOT_ACTIVE utilisera la valeur présente dans l'option de la campagne. ALLOW_ALTER autorisera toujours à cet agent de modifier les données du client quelque soit la valeur de l'option dans la campagne. La valeur par défaut est NOT_ACTIVE. + +
+
+
+ Alter Agent Client Téléphone Override - Cette option va remplacer ce que l'option est dans la campagne pour modifier le numéro de téléphone du client. NOT_ACTIVE va utiliser quel que soit l'établissement est présent pour la campagne. ALLOW_ALTER toujours de permettre à l'agent de modifier le numéro de téléphone des clients, quel que soit le réglage de la campagne. La valeur par défaut est NOT_ACTIVE. + +
+
+
+ Custom Utilisateur Fields - Ces cinq champs peuvent être utilisés à des fins diverses, et ils peuvent être archivés dans les adresses formulaire web et des scripts comme user_custom_one et ainsi de suite. + +
+
+
+ Modifier les options de l'interface agent - Cette option, si elle est à 1, autorise l'utilisateur administrateur à modifier les otpions de l'interface Agent dans admin.php. + +
+
+
+ Effacer des utilisateurs - Cette option et mise à 1 pour autoriser l'utilisateur à effacer d'autres utilisateurs qui ont un niveau inférieur ou égal depuis le système. + +
+
+
+ Supprimer des groupes d'utilisateurs - Cette option et mise à 1 pour autoriser l'utilisateur à effacer les groupes d'utilisateurs depuis le système. + +
+
+
+ Supprimer des listes - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des listes depuis le système. + +
+
+
+ Supprimer des campagnes - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des campagnes vicidial depuis le système. + +
+
+
+ Supprimer des In-groups - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des In-groups vicidial depuis le système. + +
+
+
+ Supprimer des agents distants - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des agents distants vicidial depuis le système. + + 0) + { + ?> +
+
+
+ Charger des fiches - Cette option et mise à 1 pour autoriser l'utilisateur à charger des fiches dans la table vicidial_list en utilisant le chargeur de fiches web. + + +
+
+
+ Détails de la campagne- Cette option et mise à 1 pour autoriser l'utilisateur à voir et modifier les éléments de l'écran de details de la campagne. + +
+
+
+ Accès administrateur AGC - Cette option et mise à 1 pour autoriser l'utilisateur à se connecter aux pages d'administration de astGUIclient. + +
+
+
+ Supprimer des téléphones AGC - Cette option est mise à 1 pour autoriser l'utilisateur à effacer des téléphones dans les pages d'aministration d'astGUIclient. + +
+
+
+ Supprimer des scripts - Cette option si elle est mise à 1 autorise l'utilisateur à supprimer des scripts de campagne dans l'écran de modification du script. + +
+
+
+ Modifier les fiches - Si cette otpion est à 1 elle autorise l'utilisateur à modifier les fiches dans la page des résultats de la recherche de fiches dans la section d'administration. + +
+
+
+ Changer l'agent de campagne - Cette option, si elle est mise à 1, permet à l'utilisateur de changer la campagne dans laquelle est connecté un agent alors qu'il y est connecté. + + 0) + { + ?> +
+
+
+ Supprimer des filtres - Cette option autorise l'utilisateur à supprimer les filtres de fiches du système. + + +
+
+
+ Suppression des périodes d'appels -<\/B> Cette option permet à l'utilisateur de supprimer les enregistrements des périodes d'appels vicidial et les enregistrement des périodes d'appels d'état de ce système. + +
+
+
+ Modification des périodes d'appels -<\/B> Cette option autorise l'utilisateur à voir et modifier les périodes d'appels et les périodes d'appels d'état. Un utilisateur n'a pas besoin de cette option si il a seulement besoin de changer les options des périodes d'appels sur l'écran de campagne. + +
+
+
+ Modifications des sections - Cette option autorise l'utilisateur à voir et modifier chaque enregistrement de section. Si cette option a pour valeur 0, l'utilisateur pourra voir la liste des sections, mais pas le détail et ne pourra pas modifier les enregistrements dans cette section. + +
+
+
+ Voir les rapports - Cette option autorise l'utilisateur à voir les rapports VICIDIAL. + + 0) + { + ?> +
+
+
+ QC Activé - Cette option permet à l'utilisateur de se connecter à l'agent de contrôle de la qualité d'écran. + +
+
+
+ QC Niveau de l'utilisateur - Ce paramètre définit ce que l'agent de contrôle de la qualité est au niveau utilisateur. Ce qui déterminera le niveau de fonctionnalité de l'agent dans la section QC:
+ 1 - Rien Modifier
+ 2 - Modifier Rien Sauf Etat
+ 3 - Modifier tous les Domaines
+ 4 - Vérifiez Premier Cycle de QC
+ 5 - Voir QC Statistiques
+ 6 - Possibilité de modifier fini records
+ 7 - Level Manager
+ +
+
+
+ Record QC Pass - Cette option permet à l'agent de préciser que le dossier a franchi le premier tour de Québec, après avoir examiné le dossier. + +
+
+
+ Record QC Finish - Cette option permet à l'agent de préciser que le dossier a terminé la deuxième ronde de Québec après avoir examiné le dossier transmis. + +
+
+
+ Record QC Commit - Cette option permet à l'agent de préciser que le record a été commise dans QC. Il ne peut plus être modifié par n'importe qui. + + +
+
+
+ Ajouter Log timeclock Record - Cette option permet à l'utilisateur d'ajouter des enregistrements à l'timeclock journal. + +
+
+
+ Modifier timeclock Connexion Record - Cette option permet à l'utilisateur de modifier des enregistrements dans le journal timeclock. + +
+
+
+ Supprimer timeclock Connexion Record - Cette option permet à l'utilisateur de supprimer des enregistrements dans les journaux timeclock. + +
+
+
+ Agent API d'accès - Cette option permet le compte à utiliser avec l'agent VICIDIAL commandes API. + +
+
+
+ Shift Manager exécution Override - Ce paramètre, s'il est à 1 permettra d'entrer dans un gestionnaire d'utilisateur et leur mot de passe sur l'écran d'un agent pour l'emporter sur l'évolution des restrictions sur un agent de la session si l'agent essaie de se connecter à l'extérieur de leur quart de travail. La valeur par défaut est 0. + +
+
+
+ Download Listes - Ce paramètre, s'il est à 1 permet à un gestionnaire de téléchargement, cliquez sur le lien de la liste au bas de l'écran de modification d'une liste d'exporter la totalité du contenu d'une liste de données à un fichier plat. La valeur par défaut est 0. + +
+
+
+ Rapports d'exportation - Ce paramètre, s'il est à 1 permettra d'accéder à un gestionnaire de l'exportation des rapports sur l'appel RAPPORTS écran. La valeur par défaut est 0. Pour le rapport invite l'exportation, l'ordre suivant est utilisé pour les exportations:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, 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, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner + +
+
+
+ Supprimer From Listes DNC - Ce paramètre si la valeur 1 permettra à un manager pour supprimer des numéros de téléphone dans les listes du DNC dans le système VICIDIAL. + + + + + + +



+ + VICIDIAL_CAMPAIGNS TABLE

+
+
+ ID de la campagne - C'est un nom court pour la campagne, il n'est pas modifiable après validation, il ne peut contenir d'espaces et doit contenir entre 2 et 8 caractèresh. + +
+
+
+ Nom de la campagne - C'est la description de la campagne, elle doit contenir entre 6 et 40 caractères. + +
+
+
+ Description de la campagne - C'est un champ de note pour la campagne, il est optionel et ne peut contenir plus de 255 caractères. + +
+
+
+ Date de changement de la campagne - C'est la dernière fois que les réglages de la campagne ont été modifié. + +
+
+
+ Date de la dernière connection à la campagne - C'est la dernière fois qu'un agent s'est connecté à la campagne. + +
+
+
+ Dernière campagne téléphonique Date - Il s-agit de la dernière fois qu-un appel a été traitée par un mandataire inscrit dans cette campagne. + +
+
+
+ Rafraichissement des statistiques de la campagne - Cette checkbox permet de forcer un rafraichissement des statistiques de vicidial, même si la campagne n'est pas active. + +
+
+
+ Active - C'est ici que vous indiquez si la campagne est active ou non. Si elle est inactive personne ne peut se connecter à cette campagne. + +
+
+
+ Extension de mise en attente- C'est ici que vous pouvez personnaliser la musique d'attente pour VICIDIAL. Assurez vous que l'extension est en place dans le fichier extension.conf et qu'elle pointe sur le fichier suivant. + +
+
+
+ Fichier de mise en attente- C'est ici que vous pouvez personnaliser la musique d'attente pour VICIDIAL. Assurez vous que le nom du fichier fasse moins de 10 caractères et qu'il soit bien en place dans le répertoire /var/lib/asterisk/sounds. + +
+
+
+ Formulaire Web - C'est ici que que vous pouvez mettre une page web personnalisée qui sera ouverte quand l'utilisateur cliquera sur le bouton FORMULAIRE WEB. Pour personnaliser la chaîne de requête, après le formulaire Web, il suffit de commencer avec le formulaire web, VAR et puis l'URL que vous voulez utiliser, en remplaçant les variables avec les noms des variables que vous voulez utiliser - A - phone_number - B -- comme dans l'onglet SCRIPTS. + +
+
+
+ Formulaire Web Public- C'est là que vous pouvez définir la page Web personnalisée cadre que le formulaire web sera ouverte lorsque l'utilisateur clique sur le bouton de formulaire Web. La valeur par défaut est _blank. + +
+
+
+ Autoriser les Closers - C'est ici que vous pouvez définir si les utilisateurs de cette campagne pouront envoyer l'appel vers une campagne de type closer. + +
+
+
+ Groupe de transfert de défaut - ce champ est le Dans-Groupe dedéfaut qui sera automatiquement choisi quand l'agent va à l'armaturede transférer-conférence dans leur interface d'agent. + +
+
+
+ Groupes laissés de transfert - avec ces listes de checkbox vouspouvez choisir les groupes aux lesquels les agents dans cette campagnepeuvent transférer des appels. Permettez Closers doit être permispour que cette option révèle. + + 0) + { + ?> +
+
+
+ Permettez d'arrivée et mélangé - c'est où vous pouvez placer siles utilisateurs de cette campagne auront l'option pour prendre desappels d'arrivée avec cette campagne. Si vous voulez faire d'arrivéeet en partance mélangés puis ceci doit être placé à Y. Si vousvoulez seulement faire composer en partance sur cette campagne placiezceci à N. Default est N. + +
+
+
+ Statut de l'appel -<\/B> C'est ici que vous indiquez les statuts que vous voulez appeler dans les listes actives pour la campagne suivante. Pour ajouter un autre statut d'appel, selectionnez le dans la liste déroulante et cliquez sur AJOUTER. Pour supprimer un de ces statuts, cliquez sur le lien SUPPRIMER à côté du statut que vous voulez supprimer. + +
+
+
+ Ordre de la liste - C'est dans ce menu que vous selectionnez comment les fiches qui correspondent aux statuts selectionnés ci-dessus seront mises dans le distributeur de fiches: +
  - DOWN: selectionne les premières fiches chargées dans la table vicidial_list +
  - UP: selectionne les dernières fiches chargées dans la table vicidial_list +
  - UP PHONE: selectionne le plus grand numéro de téléphone et continue vers le bas +
  - DOWN PHONE: selectionne le plus petit numéro de téléphone et continue vers le haut +
  - UP LAST NAME: commence avec les noms commençant pas Z et continue vers le bas +
  - DOWN LAST NAME: commence avec les noms commençant par A et continue vers le haut +
  - UP COUNT: commence avec les fiches les plus appelées et continue en descendant +
  - DOWN COUNT: commence avec les fiches les moins appelées et continue en augmentant +
  - DOWN COUNT 2nd NEW: commence avec les fiches les moins appelées et continue en montant en insérant une fiche NEW à chaque autre fiche - Ne doit PAS avoir NEW selectionné dans les statuts d'appel +
  - DOWN COUNT 3nd NEW: commence avec les fiches les moins appelées et continue en augmentant en insérant une fiche NEW toutes les 3 fiches - Ne doit PAS avoir NEW selectionné dans les statuts d'appel +
  - DOWN COUNT 4th NEW: commence avec les fiches les moins appelées et continue en augmentant en insérant une fiche NEW toutes les 4 fiches - Ne doit PAS avoir NEW selectionné dans les statuts d'appel +
  - RANDOM: Hasard s-empare de plomb dans les statuts et listes définies +
  - UP LAST CALL TIME: Trie par la nouvelle durée d-un appel local pour le conduit +
  - DOWN LAST CALL TIME: Trie par le doyen des temps d-appel local pour le conduit +
  - UP RANK: Commence par le plus haut rang et fait son chemin vers le bas +
  - DOWN RANK: Commence avec le plus bas grade et fait son chemin jusqu-à +
  - UP OWNER: Commence avec les propriétaires commençant par Z et fait son chemin vers le bas +
  - DOWN OWNER: Commence avec les propriétaires commençant par A et fait son chemin jusqu-à +
  - UP TIMEZONE: Commence avec les fuseaux horaires de l-Est et l-Ouest de travaux +
  - DOWN TIMEZONE: Commence avec les fuseaux horaires de l-Ouest et travaille Est + +
+
+
+ Niveau du distributeur - C'est le nombre de fiches que le script VDhopper essaye de garder dans la table vicidial_hopper pour cette campagne. Si l'on lance le script VDhopper chaque minute, mettez juste au dessus du nombre de fiches que vous voulez traiter par minute. + +
+
+
+ Filtre de fiches - C'est une méthode de filtrage de vos fiches utilisant un fragment de requête SQL. Utilisez cette fonction avec précaution, il est facile de stoper une comunication accidentellement avec le plus petit changement du statement SQL. La valeur par défaut est NONE. + +
+
+
+ Drop Lockout Time - Il s-agit d-un nombre d-heures que DROP abandonner les appels seront empêchés d-être composés, pour définir désactiver à 0. Ce paramètre est très utile dans des pays comme le Royaume-Uni où il existe une réglementation empêchant l-appelant a tenté de clients dans les 72 heures d-un abandon, ou DROP. Par défaut est 0. + +
+
+
+ Forcer la réinitialisation du distributeur - Cela vous autorise à éliminer le contenu du distributeur depuis un formulaire de validation. Il devrait être rempli une nouvelle fois quand le quand VDhopper se lance. + +
+
+
+ Méthode d'appel - Ce champ permet de définir la façon dont sont passés les appels. Si c'est MANUAL alors le auto_dial_level sera bloqué à 0 à moins que le méthode d'appel ne change. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Niveau de l'appel automatique if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. ENTRANT_MAN permet à l'agent de mise manuel composer des appels de la liste d'une campagne tout en étant en mesure de prendre des appels entrants entre le manuel de composer des appels. + +
+
+
+ Niveau de l'appel automatique - C'est ici que vous mettez combien de lignes VICIDIAL devrait utiliser par agent. 0 veut dire que l'appel automatique est désactivé et que l'agent doit cliquer pour appeler chaque numéro. Autrement VICIDIAL maintiendra le nombre de lignes égale au nombre d'agents actifs multiplié par le niveau de l'appel automatique pour arriver au nombres de lignes que cette campagne devrait permettre sur chaque serveur . La checkbox ADAPTER LE DEPASSEMENT vous permet de forcer un nouveau niveau d'appel même si la méthode d'appel est ADAPT. C'est utile s'il y a une variation dramatique dans la qualité des fiches et que vous voulez changer rigoureusement le dial_level manuellement. + +
+
+
+ Valable seulement pour les contrôles - Si ce champ est à Y les agents ayant pour statut INCALL ou QUEUE seront omis pour le calcul des appels à passer quand le mode d'appel n'est pas MANUAL. La valeur par défaut est N. + +
+
+
+ Pourcentage limite d'abandon - Ce champ permet de définir le pourcentage limite d'appels abandonnés voulu lors de l'utilisation de méthode d'appel adaptive-predictive, pas MANUAL ni RATIO. + +
+
+
+ Niveau maximum d'adaptation d'appel - Ce champ permet de définir la limite du nombre de lignes que vous voulez composer par agent lors de l'utilisation d'une méthode d'appel adaptive-predictive, pas MANUAL ni RATIO. Ce nombre peut être plus grand que le Niveau de l'appel automatique de votre matériel ci celui-ci le supporte. La valeur doit être un nombre positif plus grand que 1 qui peut être décimal. La valeur par défaut est 3.0. + +
+
+
+ Heure maximum du serveur - Ce champ est seulement utilisé par la méthode d'appel ADAPT_TAPERED. Vous devez y saisir l'heure à laquelle vous allez arrêter d'appeler pour cette campagne, 2100 veut dire que vous arrêterez d'appeler pour cette campagne à 21h00. Cela autorise l'algorithme Tapered de décider comment appeler agressivement en fonction du temps restant avant d'arrêter d'appeler. + +
+
+
+ Adapter le modifieur d'intensité -<\/B> Ce champ est utilisé pour ajuster l'intensité prédictive à la fois plus haut ou plus bas. Plus vous selectionnez un nombre positif grand, plus l'appeleur augmentera considérablement l'appel quand il monte et plus l'appeleur dimunera lentement l'appel quand il descend. Plus le chiffre négatif que vous selectionnez est petit, plus l'appeleur augmentera lentement l'appel et plus l'appeleur diminuera rapidement l'appel quand il descend. La valeur par défaut est 0. Ce champ n'est pas utilisé par les méthodes d'appels MANUAL et RATIO. + +
+
+
+ Différence cible du niveau d'appel -<\/B> Ce champ est utilisé pour définir quel nombre spécifique d'agents vous désiser avoir en attente d'appels ou d'appels en attente d'agents. Par exemple, si vous voulez avoir toujours en moyenne un agent de libre pour prendre des appels immediatement vous devriez mettre ceci à -1, si vous ciblez d'avoir un appel gardé en attente d'un agent vous devriez mettre ceci à 1. La valeur par default est 0. Ce champ n'est pas utilisé par les méthodes d'appels MANUAL et RATIO. + +
+
+
+ Transferts concurents - Ce champ permet de définir le nombre d'appels qui peuvent être envoyés à un agent simultanément. Il est recommandé de laisser AUTO. Le champ n'est pas utilisé si la méthode est MANUAL. + +
+
+
+ File d'attente de priorité - Ce paramètre est utilisé pour définir l'ordre dans lequel les appels sortants à partir de cette campagne devrait être répondu en ce qui concerne les appels entrants si cette campagne est en mode mixte. + +
+
+
+ Multiples campagne Drop Rate Group - Cette fonctionnalité vous permet de définir une campagne comme un membre d-un groupe de la Campagne taux d-abandon, ou un groupe de campagnes dont l-homme appels répondus et les appels de chute pour toutes les campagnes dans le groupe seront combinés en un pourcentage partagée déposer, ou les taux d-abandon. Ceci vous permet d-exécuter plusieurs campagnes à la fois et plus facile à contrôler votre taux de chute. Ceci est particulièrement utile dans le Royaume-Uni où la réglementation permet cette méthode de calcul des taux d-abandon avec une campagne de groupement pour la même compagnie, même s-il ya plusieurs campagnes cette société est en marche pendant le jour même. Pour activer ce pour une campagne, il suffit de sélectionner un groupe de la liste. Il existe 10 groupes définis dans le système par défaut, vous pouvez contacter votre administrateur système d-ajouter d-autres. Par défaut est Disabled. + +
+
+
+ Appeler automatiquement le numéro alternatif - Ce champ est utilisé pour appeler automatiquement le numéro alternatif si les méthodes d'appels RATIO ou ADAPT sont utilisées quand il n'y pas de réponse au numéro de téléphone principale d'une fiche, les statuts NA, B, DC et N. Cette option n'est pas utilisée pour la méthode d'appel MANUAL. EXTENDED suppléant nombres sont des nombres dans le système en dehors de la norme de l'écran principal de l'information. L'aide de vous pouvez avoir des centaines de numéros de téléphone pour un seul client record. + +
+
+
+ Délai d'appel -<\/B> Si défini, les appels qui seraient normalement raccrochés après le délai défini dans extensions.conf le seront après ce nombre de secondes si c'est moins que le délai dans extensions.conf. Cela autorise des délais de changement d'appel rapide de serveur à serveur et limite les effets à une simple campagne. Si vous avez beaucoup de répondeur et de boîte vocales, vous devriez essayer de mettre une valeur entre 21 et 26 et voir si les résultats s'améliorent. + +
+
+
+ Campagne VDAD extension - Ce champ permet une coutume VDAD transfert extension. Cela vous permet d'utiliser différentes méthodes de traitement des appels en fonction de votre campagne. + - 8364 - même que 8368 + - 8365 - Will seulement envoyer l'appel à un agent sur le même serveur que l'appel est en + - 8366 - Occasions-1 pour la presse et campagnes de sondage + - 8367 - Le premier à essayer d'envoyer l'appel à un agent sur le serveur local, il se penchera sur d'autres serveurs + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Occasions de Answering Machine de détection après que, même comportement que 8368 + - 8373 - Occasions de Answering Machine de détection après cette même comportement que 8366 + +
+
+
+ Message de répondeur - Ce champ sert à saisir l-invite à jouer lorsque l-agent est un répondeur et clique sur le bouton Répondre Message Machine dans le cadre de conférences de transfert. Vous devez définir ce soit à un fichier audio dans le magasin audio ou une invite si TTS TTS est activé sur votre système. + +
+
+
+ WaitForSilence Options - Si Wait For Silence est demandée sur les appels qui sont détectés comme répondeur alors ce champ possède ces options. Il ya deux paramètres séparés par une virgule, la première option est combien de temps pour détecter le silence en millisecondes et la seconde option est pour combien de fois de détecter que avant la lecture du message. Par défaut est vide pour les handicapés. Une valeur standard pour ce serait attendre 2 secondes de silence à deux reprises: 2000,2 + +
+
+
+ AMD envoyé au vm exten -<\/B> Ce menu vous permet de définir si un message est laissé sur un répondeur quand il est détecté. L'appel sera immédiatement transmis à l'extention Answering-Machine-Message si AMD est actif et si il est déterminé que l'appel est un répondeur. + +
+
+
+ CPD AMD Action - Si vous utilisez le Sangoma ParaXip Call Progress logiciel de détection, vous souhaitez activer ce paramètre, soit la mise à disposition DISPO qui l'appel comme AA et l'accrocher si l'appel est en cours de traitement et n'a pas été envoyée à un agent ou encore MESSAGE qui enverra l'appel à la définition Message de répondeur pour cette campagne. La valeur par défaut est DISABLED. + +
+
+
+ Appel du numéro alternatif pour l'agent - Cette option permet à l'agent d'appeler le numéro de téléphone alternatif ou le champ adresse3 après que le numéro de téléphone principal ait été appelé. + +
+
+
+ Secondes avant abandon de l'appel -<\/B> C'est le nombre de secondes depuis le moment où la ligne du client est prise jusqu'à ce que l'appel soit considéré comme abandonné, s'applique seulement aux appels sortants. + +
+
+
+ Drop Action - Ce menu vous permet de choisir ce qui se passe à un appel quand il a attendu plus longtemps que ce qui est prévu dans le Temps avant abandon de l'appel domaine. Hangup simplement raccrocher l'appel, envoyer le message de l'appel Drop EXTEN que vous avez définies ci-après, à la messagerie vocale vous envoyer l'appel à la boîte vocale que vous avez définis ci-dessous et IN_GROUP envoie l'appel à la Inbound groupe qui est défini ci-dessous + +
+
+
+ Extension du port sûr -<\/B> C'est l'extension du dial plan où le fichier audio désiré est localisé sur le serveur. + +
+
+
+ Boîte vocale - Si elle est définie, les appels qui sont normalement abandonné seront redirigés vers une boîte vocale pour écouter et laisser un message. + +
+
+
+ Drop de transfert Group - Si Drop action est fixée à IN_GROUP, l'appel sera envoyé à ce groupe d'arrivée si elle parvient Temps avant abandon de l'appel. + +
+
+
+ Autoriser la connection aux distributeurs de fiches vides - Si défini à Y, autorise les agents à se connecter à la campagne même si il n'y a pas de fiches chargées dans le distributeur pour cette campagne. Cette fonction est nécessaire pour les campagne de type CLOSER. La valeur par défaut est N. + +
+
+
+ N Hopper Dialing - Si elle est activée, la trémie ne fonctionnera pas pour cette campagne. Cette option n-est disponible que lorsque la méthode du cadran est mis en mode manuel ou ENTRANT_MAN. Il est recommandé de ne pas activer cette option si vous avez une base très large de plomb, plus de 100.000 prospects. Avec pas d-appel Hopper, les caractéristiques suivantes ne fonctionnent pas: recyclage du plomb, auto-alt-numérotation, mélanger la liste, mise en ordre avec Xème NEW. Si vous souhaitez utiliser Propriétaire composer seulement vous devez avoir pas d-appel Hopper activé. Par défaut est N pour les handicapés. + +
+
+
+ Propriétaire composer seulement - Si elle est activée, l-agent ne recevra pistes qu-ils sont dans les paramètres de propriété pour. Si cela est réglé sur Utilisateur, puis l-agent doit être définie par l-utilisateur dans la base de données en tant que propriétaire de ce plomb. Si cela est défini au territoire, le propriétaire de la direction doit correspondre au territoire énumérées dans l-écran de Modification de l-utilisateur pour cet agent. Si ce réglage est à GROUPE_UTILISATEUR le propriétaire du nom de la sonde doit correspondre au groupe d-utilisateurs que l-agent est un membre de. Pour que cette fonction soit la méthode cadran doit être réglé en mode manuel ou ENTRANT_MAN Hopper et pas d-appel doit être activé. Par défaut est AUCUN pour les handicapés. + + 0) + { + ?> +
+
+
+ Agent de sélectionner des territoires - Si cette option est activée et que l-agent appartient à au moins un territoire, l-agent aura la possibilité de choisir les territoires à composer mène de. L-agent pourrez voir une liste des territoires disponibles sur login et ils auront la possibilité de retourner à cette liste le territoire pendant la pause pour changer leurs territoires. Pour que cette fonction de travail de la propriétaire composer seulement option doit être définie sur le territoire et les territoires d-utilisateur doit être activé dans les paramètres système. + + +
+
+
+ Mélange d'ordre de liste - dépasse les champs d'ordre de fil et destatut de cadran. Emploiera les paramètres de liste et de statut pourl'entrée choisie de mélange de liste dans la section de sous-marinde mélange de liste à la place. Le défaut est HANDICAPÉ. + +
+
+
+ Identification de mélange de liste - identification du mélange deliste. Doit être de 2-20 caractères de longueur sans les espaces outoute autre ponctuation spéciale. + +
+
+
+ Nom de mélange de liste - nom descriptif du mélange de liste. Doitêtre de 2-50 caractères de longueur. + +
+
+
+ Détail de mélange de liste - la composition de l'entrée de mélangede liste. Contient l'identification de liste, l'ordre de mélange, lespourcentages et les statuts qui composent ce mélange de liste. Lespourcentages toujours doivent additionner jusqu'à 100, et toutes leslistes doivent être en activité et réglées à la campagne pour quel'entrée de mélange d'ordre soit activée. + +
+
+
+ Méthode de mélange de liste - la méthode de mélanger toutes lesparties du détail de mélange de liste ensemble. EVEN_MIX mélangerades fils de chaque partie intercalée aux autres parties, comme ces1.2.3.1.2.3.1.2.3. IN_ORDER mettra les fils dans l'ordre dans lequelils sont énumérés dans l'écran 1.1.1.2.2.2.3.3.3 de détail demélange de liste. La volonté ALÉATOIRE les a mis dans l'ordreALÉATOIRE 1.3.2.1.1.3.2.1.3. Le défaut est IN_ORDER. + +
+
+
+ Agent Screen Extended Alt Dial - Cette fonction permet aux agents d'accéder à des numéros de téléphone suppléant étendue des pistes au-delà de l'Alt Address3 de téléphone et les champs qui peuvent être utilisés dans VICIDIAL de numéros de téléphone au-delà du numéro de téléphone principal. L'étendue des numéros de téléphone peut être composé automatiquement en utilisant la fonction Auto-Alt-Dial VICIDIAL dans les paramètres de campagne, mais l'activation de cette fonctionnalité, agent d'écran permettra également l'agent d'appeler ces numéros à partir de l'écran de leur mandataire, ainsi que de modifier leurs informations. + +
+
+
+ Première Enquête Audio File - Il s'agit du nom de fichier audio qui se joue dès que le client choisit le téléphone lors de l'exécution d'une étude campagne. + +
+
+
+ Enquête DTMF Digits - Ce domaine est l'endroit où vous définissez les chiffres que le client peut presse comme une option sur une campagne de sondage. valable chiffres DTMF sont0123456789*#. Toutes les options à l-exception des pas intéressé, troisième et quatrième options chiffre passera à la voie des appels de méthode Enquête. + +
+
+
+ Enquête Non Intéressé Digit - Ce domaine est l'endroit où vous définissez le client pressé chiffres qui montrent qu'ils ne sont pas intéressés. + +
+
+
+ Enquête Non Intéressé Etat - Ce domaine est l'endroit où vous choisissez le statut d'être utilisé pour pas intéressé. S'il est utilisé DNC et la campagne est défini pour utiliser DNC ensuite le numéro de téléphone sera automatiquement ajouté à la liste DNC VICIDIAL interne.et, éventuellement, la campagne de la liste des DNC. + +
+
+
+ Enquête sur Opt-in Audio File - Il s'agit du nom de fichier audio qui se joue lorsque le client a opté dans l'enquête, a choisi de ne pas-ou pas répondu si la non-réponse-action est fixé à optout. Après ce fichier audio est joué, le sondage de l'action ne soit prise. + +
+
+
+ Enquête Non Intéressé Audio File - Il s'agit du nom de fichier audio qui se joue lorsque le client a choisi de l'enquête, a choisi de ne pas-ou pas répondu si la non-réponse-action est fixé à OptIn. Après ce fichier audio est joué, l'appel sera suspendu jusqu'à. + +
+
+
+ Enquête sur la méthode - Cette option permet de définir ce qui se passe à un appel après que le client a opté en. AGENT_XFER enverra l'appel à la prochaine agent. MESSAGERIE VOCALE envoie l'appel à la boîte vocale qui est spécifié dans la boîte vocale domaine. EXTENSION envoie le client à l'extension définie dans le Enquête Xfer Extension domaine. Hangup se raccrocher le client. CAMPREC_60_WAV enverra au client d'avoir un enregistrement réalisé avec leur réponse, cet enregistrement sera placé dans un dossier nommé comme la campagne de l'intérieur de l'Enquête sur la campagne d'enregistrement Directory. + +
+
+
+ Etude de non-réponse de l'action - C'est là que vous définissez ce qui se passera s'il n'y a pas de réponse à la question de sondage. OptIn ne envoyer l'appel à la méthode d'enquête, si le client en pressant une chiffres DTMF. OptOut envoie le client sur la méthode d'enquête, même si elles ne sont pas sur un chiffre DTMF. + +
+
+
+ Enquête Réponse Digit Map - Il s'agit de la section où vous pouvez définir une description pour aller avec chaque option DTMF chiffres que le client mai sélectionner. + +
+
+
+ Enquête Xfer Extension - Si la méthode d'enquête de l'extension est sélectionné, le client appel sera dirigé vers cette extension dialplan. + +
+
+
+ Enquête sur la campagne d'enregistrement - Annuaire Si la méthode d'enquête de CAMPREC_60_WAV est sélectionné, le service à la clientèle sera enregistré et placé dans un répertoire nommé d'après la campagne de l'intérieur de ce répertoire. + +
+
+
+ Enquête sur le troisième chiffre - Cela permet un chemin d-appel tiers si le troisième chiffre tel que défini dans ce domaine est pressé par le client. + +
+
+
+ Enquête quatrième chiffre - Cela permet pour un chemin quatrième appel si la quatrième chiffres comme définis dans ce domaine est pressé par le client. + +
+
+
+ Troisième enquête sur Fichier Audio - Ceci est le fichier audio troisième à être joué sur le choix par le client de l-option de troisième chiffre. + +
+
+
+ Troisième enquête Etat - C-est le statut de troisième utilisés pour l-appel lancé à la sélection par le client de l-option de troisième chiffre. + +
+
+
+ Enquête Troisième prorogation - Il s-agit de la troisième extension utilisé pour l-appel sur le choix par le client de l-option de troisième chiffre. Par défaut est 8300, qui se bloque immédiatement à l-appel après que le message audio du fichier est joué. + +
+
+
+ Agent d-affichage composable Leads - Cette option si elle est activée affiche le nombre de pistes d-accès automatique disponibles dans la campagne dans l-écran de l-agent. Ce numéro est mis à jour dans le système une fois par minute et sera rafraîchie à l-écran tous les agents de quelques secondes. + + + +
+
+
+ Appel de l'agent suivant - Cela determine quel agent recevra l'appel suivant quand c'est possible: +
  - random: ordonne par la valeur aléatoire de mise à jour dans la table vicidial_live_agents +
  - oldest_call_start: ordonne par la dernière date à laquelle un agent a passé un appel. Résultats des agents recevant globalement un nombre à peu près identique d'appels . +
  - oldest_call_finish: ordonne suivant la dernière date à laquelle un agent a terminé un appel. L'agent AKA attendant le plus longtemps reçoit le premier appel. +
  - overall_user_level: ordonne par le user_level de l'agent comme défini dans la table vicidial_users, un user_level plus élévé recevra plus d'appels. +
  - campaign_rank : ordres par le rang donné à l'agent pour la campagne.Le plus haut à le plus bas. +
  - fewest_calls : ordres par le nombre d'appels reçus par un agent pource groupe d'arrivée spécifique. Moindres appels d'abord. +
  - longest_wait_time: commandes par la quantité de temps d-attente agent a été activement pour un appel. + +
+
+
+ Temps d'appel local -<\/B> C'est ici que vous indiquez pendant quelles heures vous voulez appeler, comme déterminé par l'heure locale dans la région dans laquelle vous voulez appeler. C'est controlé par le code de la région et est ajusté pendant le temps des Daylight Savings si c'est approprié. Les habitudes générales aux Etat-Unis, de Buisness à Buisness, sont de 9h00 à 17h00 et de Buisness à particulier de 9h00 à 21h00. + +
+
+
+ Préfixe d'appel - Ce champ autorise plus facilement à changer un chemin d'appel vers l'exterieur à travers une méthode differente sans devoir recharger Asterisk. La valeur par défaut 9 est basée sur 91NXXNXXXXXX dans le dial plan du fichier extensions.conf . + +
+
+
+ Omettre le Phone Code - Ce champ permet de ne pas utiliser le champ phone_code lors d'appels passés depuis VICIDIAL. Par exemple si vous appelez de France vers la France vous devriez avoir 33 dans le champ phone_code de chaque fiche, mais vous voulez utiliser 10 chiffres dans le dial plan extensions.conf au lieu de 33 puis 10 chiffres. La valeur par défaut est N. + +
+
+
+ CallerID de la campagne - Ce champ autorise à envoyer un numéro de callerId personnalisé sur les appels sortants. C'est le numéro de callerId que vous voullez montrer à la personne que vous appellez. La valeur par défaut est UNKNOW. Si vous utilisez des T1 ou E1s pour appeler vers l'extérieur cette option est seulement valable si vous utilisez des PRIs - ISDN T1s ou E1s - qui ont la fonction CallerId personnalisable activée, cela ne fonctionne pas avec le service Robbed-bit et les circuits -RBS-. Cela fonctionne aussi avec la plupart des fournisseurs VOIP -SIP ou trunks IAX- qui autorisent un callerId de sortie dynamique. Le callerID personnalisé ne s'applique qu'aux appels passés directement depuis la campagne VICIDIAL, n'importe quel appel avec une tierce personne ou transféré n'enverra pas le callerId personnalisé. NOTE: Parfois en mettant UNKWOWN ou PRIVATE dans ce champ c'est le callerId par défaut de votre ligne qui sera transmis pour les appels. Vous pouvez tester cela et mettre 0000000000 à la place dans le champs calleID si vous ne voulez pas envoyer votre CallerID. + +
+
+
+ Extention d'enregistrement - Ce champs autorise à avoir une extension personnalisée d'enregistrement pour l'utiliser avec VICIDIAL. Cela autorise à utiliser différentes extensions selon le temps maximum d'enregistrement que vous voulez autoriser et le type de codec que vous voulez utiliser. L'exten par defaut est 8309 qui, si vous avez suivi les exemples de la SCRATCH_INSTALL, enregistrera dans le format WAV jusqu'à une heure. Une autre option incluse dans les exemples est 8310 qui enregistrera dans le format GSM jusqu'à une heure. + +
+
+
+ Enregistrement de la campagne - Ce menu permet de choisir le niveau d'enregistrement autorisé pour cette campagne. NEVER désactive l'enregistrement sur l'application client. ONDEMAND est la valeur par défaut et permet à l'agent de démarrer et arrêter l'enregistrement si nécessaire. ALLCALLS démarrera l'enregistrement pour tous les appels passés vers un agent. ALLFORCE démarrera l'enregistrement à chaque appel passés vers un agent sans donné la possibilité à l'agent de stopper l'enregistrement. Pour ALLCALLS et ALLFORCE il y a une option pour utiliser un délai d'enregistrement afin de réduire les enregistrements et la charge système. + +
+
+
+ Nom du fichier d'enregistrement de la campagne - Ce champs vous permet de personnaliser le nom de fichier pour l'enregistrement quand l'enregistrement de la campage est sur ONEDEMAND ou ALLCALLS. Les variables autorisées sont CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. La valeur par defaut est FULLDATE_AGENT et le nom du fichier ressemblerait à ceci : 20051020-103108_6666. Un autre exemple est CAMPAIGN_TINYDATE_CUSTPHONE ce qui ressemblerait à ceci : TESTCAMP_51020103108_3125551212 . 50 char max. + +
+
+
+ Délai d'enregistrement - Uniquement pour les enregistrements ALLCALLS et ALLFORCE. Cette valeur est le nombre de secondes après lesquelles commence l'enregistrement des appels. La valeur par défaut est 0. + +
+
+
+ Script campagne ->/B> Ce menu vous permet de choisir le script qui apparaîtra sur l'écran des agents pour cette campagne. Mettez NONE pour ne pas montrer de script pour cette campagne. + +
+
+
+ Consigne de lancement d'appel - Ce menu vous permet de choisir si vous voulez lancer automatiquement la page de web-form dans une fenêtre séparée, passer automatiquement sur l'onglet de script ou ne rien faire quand un appel est envoyé par un agent dans cette campagne. + +
+
+
+ Xfer-Conf DTMF - Ces quatre domaines pour vous permettre d-avoir deux ensembles de transfert de conférence et les préréglages DTMF. Lorsque l-appel ou de la campagne est chargé, le script vicidial.php montrera deux boutons sur le transfert-cadre de conférences et automatiquement le numéro à composer et envoyer les champs DTMF lorsqu-ils sont pressés. Si vous souhaitez autoriser consultatif transferts, un fronter à un proche, que l-agent utiliser la case à cocher consultatif, qui ne fonctionne pas pour les tiers VICIDIAL demande de consultation. Pour ceux qui viennent de l-agent, cliquez le bouton de cadran avec la clientèle. Alors l-agent pouvez aussi le laisser-3way-Call et passer à leur prochain appel. Si vous souhaitez autoriser les transferts aveugles de clients à un script AGI VICIDIAL l-exploitation forestière ou un SVI, puis AXFER lieu dans le numéro à composer sur le terrain. Vous pouvez également spécifier une extension personnalisée après la AXFER, par exemple si vous voulez faire un appel vers un IVR spéciaux que vous avez défini à l-extension 83900 vous mettriez AXFER83900 dans le numéro à composer sur le terrain. + +
+
+
+ Quick Transfer Button - Cette option permet d-ajouter un bouton de transfert rapide à l-écran de l-agent en dessous du bouton Transfer-Conf qui permettra un clic aveugles transfert d-appels à la sélectionnés en-groupe ou un numéro. IN_GROUP va envoyer des appels au groupe par défaut Xfer pour cette campagne, ou en-groupe s-il y avait un appel entrant. Les options prédéfinies vous enverrons les appels à la preset sélectionnée. Par défaut est N pour les handicapés. + +
+
+
+ Préremplir Transfert Preset - Cette option permet de remplir le champ Numéro de réseau commuté dans le cadre de transfert de conférence de l-écran de l-agent s-il est défini. Par défaut est N pour les handicapés. + +
+
+
+ Minuterie d-action - Cette fonctionnalité vous permet de déclencher des actions après un certain laps de temps. D1 et D2 options DIAL va lancer un appel à la presets Transfer Conference Nombre et les envoyer à la session d-agent, ce n-est généralement utilisé pour les applications IVR AGI simple validation ou tout simplement pour jouer un message pré-enregistré. WebForm ouvrira l-adresse formulaire web. MESSAGE_ONLY va simplement afficher le message qui est dans le champ ci-dessous. AUCUNE désactive cette fonctionnalité et la valeur par défaut. + +
+
+
+ Minuterie d-action Message - Tel est le message qui s-affiche sur l-écran de l-agent au moment de l-action Timer est déclenché. + +
+
+
+ Minuterie d-action Seconds - Il s-agit de la quantité de temps après l-appel est connecté au client que l-action Timer est déclenchée. Par défaut est -1, qui est aussi inactive. + +
+
+
+ Rappels programmés - Cette option autorise un agent à statuer un appel comme CALLBK et à choisir une date et une heure à laquelle la fiche sera réactivée. + +
+
+
+ Temps de conclusion -<\/B> Nombre de secondes pendant lesquelles l'agent est forcé à attendre avant de pouvoir recevoir ou passer un nouvel appel. Le timer commence dès que l'agent à raccrocher - ou dans le cas de l'appel du numéro alternatif quand l'agent à terminer la fiche - La valeur par défaut est 0. Si le timer se termine avant que l'agent n'ait statué l'appel, l'agent ne passera pas à l'appel suivant tant qu'il n'a pas sélectionné un statut. + +
+
+
+ Message de conclusion -<\/B> C'est un message spécifique à la campagne à afficher si le temps de conclusion est défini. + +
+
+
+ Utiliser la liste DNC interne - Cela défini si cette campagne doit filter les fiches par rapport à la liste DNC. Si ce champ est à Y alors le distributeur de fiches recherchera chaque numéro de téléphone dans la liste DNC avant de la placer dans le distributeur de fiches. Si il est dans la liste DNC alors le statut de la fiche sera changer en DNCL, il ne pour donc pas être appelé. La valeur par défaut est N. L-option AreaCode est comme l-option Y, sauf qu-il est utilisé pour filtrer également un code région entière en Amérique du Nord d-être appelé, dans ce cas en utilisant l-entrée 201XXXXXXX dans la liste DNC serait de bloquer tous les appels à l-indicatif régional 201 si elle est activée. + +
+
+
+ Utilisez Campagne DNC List - Cela définit si cette campagne est de filtrer les mène à une liste DNC qui est spécifique à cette campagne seulement. Si elle est définie à Y, la trémie sera, pour chaque numéro de téléphone dans la campagne des DNC avant de le placer dans la trémie. Si elle est dans la campagne des DNC liste, il va changer le statut qui conduisent à DNCC il ne peut donc pas être composé. La valeur par défaut est N. L-option AreaCode est comme l-option Y, sauf qu-il est utilisé pour filtrer également un code région entière en Amérique du Nord d-être appelé, dans ce cas en utilisant l-entrée 201XXXXXXX dans la liste DNC serait de bloquer tous les appels à l-indicatif régional 201 si elle est activée. + +
+
+
+ Groupes entrants autorisés - 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. + +
+
+
+ Activer les codes de la pause des agents - Autorise les agents à sélectionner un code de pause quand il clique sur le bouton PAUSE dans vicidial.php. Les codes de pause sont définissable par campagne dans le bas de la vue détaillée de la campagne et sont stockés dans la table vicidial_agent_log. La valeur par défaut est N. Force va forcer les agents à choisir un code PAUSE si elles cliquez sur le bouton PAUSE. + +
+
+
+ Désactiver la modification des données du client - Si défini à Y alors les données de la fiche d'un client ne sont pas modifiées quand un agent passe l'appel. La valeur pas défaut est N. + +
+
+
+ Désactiver Alter clientèle Téléphone - Si la valeur de Y, ne modifie pas le client numéro de téléphone lors d'un agent dispositions de l'appel. La valeur par défaut est Y. Utilisez l-option Masquer pour supprimer complètement le numéro de téléphone du client depuis l-écran de l-agent. + +
+
+
+ Agent Afficher Queue Count - Si la valeur de Y, lorsque le client est en attente d'un agent, la file d'attente de demande d'affichage en haut de l'agent de l'écran devient rouge et indique le nombre d'appels en attente. Le défaut est Y. + +
+
+
+ Identification manuelle de liste de cadran - le list_id de défaut àemployer quand des placces d'un agent un appel manuel et un nouveaudisque de fil est créés dans le vicidial_list. Le défaut est 999.Ce champ peut contenir des chiffres seulement. + +
+
+
+ Manuelle Filter - Cela vous permet de filtrer les appels que les agents font en mode manuel composer pour cette campagne par une combinaison des éléments suivants: DNC - à coup sur, CAMPAIGNLISTES - le nombre doit être dans les listes pour la campagne, AUCUN - pas de filtre sur le cadran ou manuel rapide composer des listes. + +
+
+
+ Agent de presse-papiers de copie d'écran - Cette fonctionnalité est actuellement disponible que pour Internet Explorer. Cette fonctionnalité vous permet de sélectionner un domaine qui sera copiée dans le presse-papiers de l'ordinateur de l'agent sur l'ordinateur d'un appel d'être envoyées à un agent. Commune utilise pour cela sont pour faciliter le collage de numéros de compte ou des numéros de téléphone en héritage les applications client à l'agent d'ordinateur. + +
+
+
+ 3-Way Outbound Call CallerID - Cela définit ce qui est envoyé en tant que sortant CallerID nombre de 3-way appels effectués par l'agent, la campagne utilise la campagne personnalisée CallerID, client utilise le numéro de client qui est actif sur les agents de l'écran et utilise les CallerID AGENT_PHONE le téléphone pour que l'agent est entré dans. AGENT_CHOOSE permet de choisir l'agent qui CallerID à utiliser pour les 3-way appels à partir d'une liste de choix. + +
+
+
+ 3-Way Call Préfixe de numérotation - Cela définit ce qui est utilisé comme préfixe pour les 3-way appels, par défaut est vide de sorte que la campagne de préfixe est utilisé, passthru afin que vous puissiez entendre sonner est de 88. + + 0) + { + ?> +
+
+
+ QC Activé - Mise en ce domaine permet à Y pour l'agent de contrôle de la qualité caractéristiques au travail. La valeur par défaut est N. + +
+
+
+ Statuts QC - Cette zone est l'endroit où vous choisissez ce qui entraîne des statuts doit être dépassé par le système de QC. Placez un contrôle à côté de l'état que vous voulez examiner QC. + +
+
+
+ QC Shift - Il s'agit du changement de calendrier utilisé pour tirer QC pour une campagne. Les jours de la semaine sont ignorées pour ces fonctions. + +
+
+
+ Record QC Get lancement Cela permet à l'une des actions suivantes peut être déclenché sur un agent QC recevoir un nouveau record. + +
+
+
+ QC Voir Recording - qui permet un enregistrement qui mai être liée à la QC record à afficher dans le QC agent écran. + +
+
+
+ QC WebForm Adresse - Il s'agit de l'adresse du site web d'un agent QC pouvez aller à en cliquant sur le lien dans la WebForm QC écran. + +
+
+
+ Script QC - C'est le script qui peut être utilisé par les agents QC SCRIPT dans l'onglet de la QC écran. + + +
+
+
+ Recherche Catégorie Vtiger - Si Vtiger intégration est activé dans les paramètres du système puis de définir ce paramètre lorsque l'vtiger_search.php page de recherche pour le numéro de téléphone qui a été entré. Il ya 4 options qui peuvent être utilisés dans ce domaine: LEAD-Cette option de recherche par le biais du conduit Vtiger seulement, COMPTE-Cette option de recherche par le biais du Vtiger comptes et tous les contacts et les sous-contacts pour le numéro de téléphone, VENDOR-Cette option ne recherche que par l'intermédiaire du Vtiger fournisseurs, ACCTID-Cette option ne fonctionne que pour les comptes et il prendra les VICIDIAL vendor_lead_code terrain et essayer de chercher le numéro de compte Vtiger. En cas d'échec, il va essayer d'autres méthodes que la liste que vous avez sélectionné. Plusieurs options peuvent être utilisées pour chaque recherche, mais sur de grandes bases de données ce n'est pas recommandé. La valeur par défaut est LEAD. UNIFIED_CONTACT-Cette option utilise la version bêta 5.1.0 Vtiger fonction pour effectuer une recherche par numéro de téléphone et afficher une page de recherche dans Vtiger. + +
+
+
+ Vtiger Recherche Dead Comptes - Si Vtiger intégration est activée dans les paramètres du système, puis, cette option détermine si les comptes supprimés sera recherché lorsque l-agent clics WEB forme pour chercher dans le système de Vtiger. Handicapés conduit supprimés ne seront pas cherché, ASK-deleted conduit seront recherchés et la page de recherche vtiger web demandera à l-agent si ils veulent faire le compte Vtiger active, ressusciter-rend automatiquement le compte supprimé de nouveau active et elle prendra les agent à l-écran de compte sans tarder et à cliquer sur un formulaire Web. Par défaut est Disabled. + +
+
+
+ Vtiger Créer Call Record - Si Vtiger intégration est activé dans les paramètres du système puis de définir ce paramètre est de savoir si un nouveau record d'activité Vtiger est créé pour l'appel lorsque l'agent est à la vtiger_search page. La valeur par défaut est Y. L-option DISPO créera un enregistrement d-appel pour le compte Vtiger sans que l-agent ayant besoin d-aller à la page de recherche vtiger Via le formulaire web. + +
+
+
+ Vtiger Créer Lead Record - Si Vtiger intégration est activé dans les paramètres système et Vtiger LEAD Recherche Catégorie comprend alors ce paramètre est de déterminer si un nouveau record Vtiger plomb est créé lorsque l'agent est à la page vtiger_search et il n'est pas ont trouvé à l'appel le numéro de téléphone. La valeur par défaut est Y. + +
+
+
+ Vtiger Login Screen - Si Vtiger intégration est activé dans les paramètres de ce système de réglage de définir si l'utilisateur est connecté à l'interface Vtiger automatiquement lors de leur connexion à VICIDIAL. Le défaut est Y. L-option new_window ouvrira une nouvelle fenêtre lors de sa connexion à l-écran de l-agent VICIDIAL. + +
+
+
+ Vtiger état des appels - Si Vtiger intégration est activée dans les paramètres du système, puis utilisez ce paramètre pour définir si la situation du compte Vtiger sera mis à jour avec le statut de l-appel VICIDIAL après qu-il a été dispositioned. Par défaut est n. + +
+
+
+ CRM Popup Login - Si elle est égale à Y, le CRM Popup adresse est utilisée pour ouvrir une nouvelle fenêtre sur login agent pour cette campagne. Par défaut est n. + +
+
+
+ CRM Popup Adresse - L-adresse Web d-une page de connexion de CRM, il peut avoir des variables de population tout comme l-adresse sous forme d-enchaînement, avec la VaR à l-avant et à l-aide - Un user_custom_one - - B - de définir des variables. + +
+
+
+ Début de l-appel Web - Cette web adresse URL n-est pas perçu par l-agent, mais elle est appelée chaque fois qu-un appel est adressé à un agent si elle est peuplée. Utilise les mêmes variables que les champs de formulaire web et des scripts. Cette URL ne peut être un chemin relatif. L-URL de début ne fonctionne pas pour les appels cadran manuel. Par défaut est vide. + +
+
+
+ Dispo Call Web - Cette web adresse URL n-est pas perçu par l-agent, mais elle est appelée chaque fois qu-un appel est dispositioned par un mandataire si elle est peuplée. Utilise les mêmes variables que les champs de formulaire web et des scripts. DISPO et talk_time sont les variables que vous pouvez utiliser pour récupérer l-agent défini par la disposition de l-appel et le temps de parole effective en quelques secondes de l-appel. Cette URL ne peut être un chemin relatif. Par défaut est vide. + +
+
+
+ Groupe Alias Admis - Si vous souhaitez permettre à vos agents d'utiliser les alias de groupe, vous devez mettre à Y. alias Groupe sont expliqués plus en section administrative, ils permettent de sélectionner différents agents callerIDs manuel pour les appels sortants qu'ils mai place. La valeur par défaut est N. + +
+
+
+ Groupe par défaut Alias - Si vous avez permis à ce groupe Alias est l'alias du groupe qui est sélectionné en premier par défaut lorsque l'agent choisit d'utiliser un alias pour un groupe émetteur manuel appel. La valeur par défaut est None ou vide. + +
+
+
+ Agent Voir appels en attente - Si défini à autre chose mais aucun, les agents seront en mesure de voir des détails sur les appels qui sont en attente dans la file d-attente dans leur écran de l-agent. S-il est défini à une valeur numérique, les appels affiché sera limité au nombre sélectionné. Par défaut est AUCUN. + +
+
+
+ Voir les appels en attente de lancement - Ce paramètre s-il est réglé sur AUTO auront la demande, dans la file d-attente apparaissent cadre moment de la connexion par l-agent dans l-écran de l-agent. Par défaut est Manuel. + +
+
+
+ Agent Grab appels en attente - Cette option s-il est réglé sur Y permet à l-agent pour sélectionner l-appel qui veulent prendre de la demande, dans la file d-attente d-affichage en cliquant sur elle pendant la pause. Agents ne seront en mesure de saisir les appels entrants ou les appels transférés, les appels sortants pas. Par défaut est n. + +
+
+
+ Agent d-appel Re-Queue Button - Cette option s-il est réglé sur Y va ajouter un bouton Re-file d-attente des clients à l-écran de l-agent, permettant à l-agent d-envoyer l-appel dans une file d-attente AGENTDIRECT qui est réservé à l-agent seulement. Par défaut est n. + +
+
+
+ Agent Pause après chaque appel - Cette option s-il est réglé sur Y se mettra en pause l-agent après chaque appel automatiquement. Par défaut est n. + + + + + +



+ + VICIDIAL_LISTES TABLE

+
+
+ ID de la liste - C'est le nom numérique de la liste, il n'est pas éditable après la première validation, il ne doit contenir que des nombres et contenir entre 2 et 8 caractères. Must be a number greater than 100. + +
+
+
+ Nom de la liste - C'est la description de la liste, elle doit contenir entre 2 et 20 caractères. + +
+
+
+ Description de la liste - C'est un champ de note pour la liste, il est optionnel. + +
+
+
+ Dernier changement de la liste - C'est la dernière fois que les réglages de la liste ont été modifié. + +
+
+
+ Date du dernier appel de la liste - C'est la dernière fois qu'une fiche de cette liste a été appelée. + +
+
+
+ Campagne - C'est la campagne à laquelle cette liste appartient. Une liste ne peut etre appelée que depuis une seule campagne à la fois. + +
+
+
+ Active - Cela définie si la liste peut etre appelée ou non. + +
+
+
+ Réinisialiser le Lead-Called-Status pour cette liste - Cela réinitialise les fiches dans cette liste à N pour "not called since last reset" et signifie que n'importe quelle fiche peut maintenant être appelée si ce statut est défini dans l'écran de campagne. + +
+
+
+ Reset Times - Ce champ vous permet de mettre fois, séparées par un tiret, que cette liste sera automatiquement remis à zéro par le système. Les heures doivent être au format 24 heures sans ponctuation, par exemple 0800-1700 serait rétablir la liste à 8 h et 5pm tous les jours. Par défaut est vide. + +
+
+
+ Agent Script Override - Si ce champ est défini, ce sera le script que l-agent voit sur son écran au lieu du script campagne lorsque le plomb est de cette liste. Défaut n-est pas réglé. + +
+
+
+ Campagne CID Override - Si ce champ est définie, elle aura préséance sur la campagne CallerID qui est défini pour les appels qui sont placés devant une piste dans cette liste. Défaut n-est pas réglé. + +
+
+
+ Message de répondeur Override - Si ce champ est définie, elle aura préséance sur le message répondeur mis dans la campagne pour les clients de cette liste. Défaut n-est pas réglé. +
+
+
+ Drop Inbound Groupe Override - Si ce champ est défini, dans ce groupe seront utilisées pour les appels sortants de cette liste de cette goutte de la campagne à l-étranger au lieu de la baisse du groupe fixé dans l-écran de détail de la campagne. Défaut n-est pas réglé. + +
+
+
+ Xfer-Conf Nombre Override - Ces cinq domaines pour vous permettre d-emporter les préréglages numéro de la conférence de transfert lorsque le plomb est de cette liste. Par défaut est vide. + + +
+
+
+ DNC VICIDIAL List - Do Not Call Cette liste contient tous les conduire qui a été fixé à un statut de DCN dans le système. Dans les listes - ADD NOMBRE DE DNC page que vous êtes en mesure d'ajouter manuellement les numéros de cette liste afin de ne pas être appelé par des campagnes qui utilisent la liste interne DNC. Il ya aussi la possibilité d'ajouter conduit à la campagne des listes DNC et pour les campagnes qui ont les. Si vous avez l-option active DNC réglé sur AreaCode alors vous pouvez également utiliser les entrées génériques indicatif régional comme celui-ci 201XXXXXXX de bloquer tous les appels au 201 lorsque AreaCode permis. + + + +



+ + VICIDIAL_ENTRANT_GROUPS TABLE

+
+
+ ID du groupe - C'est le nom court du group entrant, il n'est pas éditable après la première initialisation, il doit contenir entre 2 est 20 caractères. + +
+
+
+ Nom du groupe - C'est la déscription du groupe, il doit contenir entre 2 et 30 caractères et ne doit pas contenir de tirets, de plus ou d'espaces . + +
+
+
+ Couleur du groupe C'est la couleur que est affichée dans l'application cliente VICIDIAL quand un appel arrive dans ce groupe. Il doit contenir entre 2 et 7 caractères. Si c'est une couleur en hexadecimal vous devez mettre un # au début de la chaîne de caractères ou VICIDIAL ne fonctionnera pas proprement. + +
+
+
+ Active - Cela détermine si ce groupe sera visible dans la boîte de sélection quand un agent se connecte à VICIDIAL. + +
+
+
+ Formulaire Web - C'est l'adresse personnalisée qui, en cliquant sur le boutton WEB FORM dans VICIDIAL, sera prise pour les appels qui arrivent dans ce groupe. + +
+
+
+ Appel de l'agent suivant - Cela determine quel agent recevra l'appel suivant quand c'est possible: +
  - random: ordonne par la valeur aléatoire de mise à jour dans la table vicidial_live_agents +
  - oldest_call_start: ordonne par la dernière date à laquelle un agent a passé un appel. Résultats des agents recevant globalement un nombre à peu près identique d'appels . +
  - oldest_call_finish: ordonne suivant la dernière date à laquelle un agent a terminé un appel. L'agent AKA attendant le plus longtemps reçoit le premier appel. +
  - overall_user_level: ordonne par le user_level de l'agent comme défini dans la table vicidial_users, un user_level plus élévé recevra plus d'appels. +
  - inbound_group_rank : ordres par le rang donné à l'agent pour legroupe d'arrivée spécifique. Le plus haut à le plus bas. +
  - fewest_calls : ordres par le nombre d'appels reçus par un agent pource groupe d'arrivée spécifique. Moindres appels d'abord. +
  - campaign_rank : ordres par le rang donné à l'agent pour la campagne.Le plus haut à le plus bas. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: commandes par la quantité de temps d-attente agent a été activement pour un appel. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Affichage de l'enseigne -<\/B> Ce champ détermine si l'agent VICIDIAL sortant doit avoir l'enseigne - si il y en a une - affichée dans le champ Statut quand l'appel est passé à l'agent. + +
+
+
+ Script campagne ->/B> Ce menu vous permet de choisir le script qui apparaîtra sur l'écran des agents pour cette campagne. Mettez NONE pour ne pas montrer de script pour cette campagne. + +
+
+
+ Consigne de lancement d'appel - Ce menu vous permet de choisir si vous voulez lancer automatiquement la page de web-form dans une fenêtre séparée, passer automatiquement sur l'onglet de script ou ne rien faire quand un appel est envoyé par un agent dans cette campagne. + +
+
+
+ Xfer-Conf DTMF - Ces quatre domaines pour vous permettre d-avoir deux ensembles de transfert de conférence et les préréglages DTMF. Lorsque l-appel ou de la campagne est chargé, le script vicidial.php montrera deux boutons sur le transfert-cadre de conférences et automatiquement le numéro à composer et envoyer les champs DTMF lorsqu-ils sont pressés. Si vous souhaitez autoriser consultatif transferts, un fronter à un proche, que l-agent utiliser la case à cocher consultatif, qui ne fonctionne pas pour les tiers VICIDIAL demande de consultation. Pour ceux qui viennent de l-agent, cliquez le bouton de cadran avec la clientèle. Alors l-agent pouvez aussi le laisser-3way-Call et passer à leur prochain appel. Si vous souhaitez autoriser les transferts aveugles de clients à un script AGI VICIDIAL l-exploitation forestière ou un SVI, puis AXFER lieu dans le numéro à composer sur le terrain. Vous pouvez également spécifier une extension personnalisée après la AXFER, par exemple si vous voulez faire un appel vers un IVR spéciaux que vous avez défini à l-extension 83900 vous mettriez AXFER83900 dans le numéro à composer sur le terrain. + +
+
+
+ Minuterie d-action - Cette fonctionnalité vous permet de déclencher des actions après un certain laps de temps. D1 et D2 options DIAL va lancer un appel à la presets Transfer Conference Nombre et les envoyer à la session d-agent, ce n-est généralement utilisé pour les applications IVR AGI simple validation ou tout simplement pour jouer un message pré-enregistré. WebForm ouvrira l-adresse formulaire web. MESSAGE_ONLY va simplement afficher le message qui est dans le champ ci-dessous. AUCUNE désactive cette fonctionnalité et la valeur par défaut. Ce paramètre remplace les paramètres de campagne. + +
+
+
+ Minuterie d-action Message - Tel est le message qui s-affiche sur l-écran de l-agent au moment de l-action Timer est déclenché. + +
+
+
+ Minuterie d-action Seconds - Il s-agit de la quantité de temps après l-appel est connecté au client que l-action Timer est déclenchée. Par défaut est -1, qui est aussi inactive. + +
+
+
+ Temps avant abandon de l'appel - Le nombre de secondes d'un appel restera dans la file d'attente avant d'être considéré comme un DROP. + +
+
+
+ Drop Action - Ce menu vous permet de choisir ce qui se passe à un appel quand il a attendu plus longtemps que ce qui est prévu dans le Temps avant abandon de l'appel domaine. Hangup simplement raccrocher l'appel, envoyer le message de l'appel Drop EXTEN que vous avez définies ci-après, à la messagerie vocale vous envoyer l'appel à la boîte vocale que vous avez définis ci-dessous et IN_GROUP envoie l'appel à la Inbound groupe qui est défini ci-dessous. + +
+
+
+ Drop EXTEN - Si l'action est goutte d'MESSAGE, c'est le cadran plan d'extension que l'appel sera envoyée si elle parvient à Temps avant abandon de l'appel. + +
+
+
+ Boîte vocale - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+
+
+ Drop de transfert Group - Si Drop action est fixée à IN_GROUP, l'appel sera envoyé à ce groupe d'arrivée si elle parvient Temps avant abandon de l'appel. + +
+
+
+ Temps d'appel - c'est l'arrangement de temps d'appel à employer pource groupe d'arrivée. Maintenez dans l'esprit que le temps est basésur le temps de serveur. Le défaut est 24hours. + +
+
+
+ Après les heures d'ouverture d'action - L'action à effectuer si c'est après les heures de travail tels que définis dans le temps de l'arrivée pour ce groupe. Hangup hangup immédiatement à l'appel, MESSASGE va jouer le fichier dans le message après les heures de Filenam domaine, EXTENSION envoie l'appel à la fois la durée d'extension de la dialplan et de la messagerie vocale vous envoyer l'appel à la boîte vocale figurant dans la boîte vocale après les heures de domaine , IN_GROUP enverra l'appel à l'arrivée du groupe sélectionné dans le groupe après les heures de sélectionner la liste de transfert. La valeur par défaut est MESSAGE. + +
+
+
+ Après nom de fichier de message d'heures - le dossier audio localisésur le serveur à jouer si l'action est placée au MESSAGE. Le défautest VM-AU revoir + +
+
+
+ Après prolongation d'heures - la prolongation dialplan pour envoyerl'appel si l'action est placée à la PROLONGATION. Le défaut est8300. + +
+
+
+ Après des heures Boîte vocale - la boîte de voicemail pour envoyerl'appel si l'action est placée à VOICEMAIL. + +
+
+
+ Après les heures d'ouverture de transfert Group - Si l'action Après les heures d'ouverture est fixée à IN_GROUP, l'appel sera envoyé à cette arrivée du groupe si celui-ci entre dans le groupe en dehors de l'appel de temps défini pour le régime de groupe. + +
+
+
+ Agents n Queueing - Si ce champ est réglé sur Y ou NO_PAUSED alors aucun appel ne sera mis dans la file d-attente pour cet en-groupe, si il n-ya pas d-agents connectés et les appels ira à l-agent Non Non action Queue. L-option NO_PAUSED enverra également pas les appelants en file d-attente s-il ya seulement une pause des agents dans l-en-groupe. Par défaut est n. + +
+
+
+ Non Non Queue action de l-agent - Si aucun agent Aucune file d-attente est activé, ce champ définit l-endroit où l-appel sera acheminé en l-absence des agents dans l-en-groupe. Par défaut est le message, celui-ci joue les fichiers audio dans le champ Valeur d-action, puis raccroche. + +
+
+
+ Non Non Queue action de l-agent Valeur - C-est la valeur pour l-action ci-dessus. Par défaut est nbdy-avail-to-take-call|vm-goodbye. + +
+
+
+ Nom de fichier bienvenu de message - le dossier audio localisé sur leserveur à jouer quand l'appel entre. Si ensemble à ---NONE --- alorsaucun message ne sera joué. Le défaut est ---NONE ---. Ce domaine, comme avec les autres champs audio en groupes, à l-exception du nom de fichier d-alerte agent, peut avoir plusieurs fichiers audio joué seulement si vous mettez un tuyau d-une liste séparée par des fichiers audio dans le domaine. + +
+
+
+ Message de bienvenue Play - Ces réglages choisir le moment de jouer le message de bienvenue défini, TOUJOURS jouera à chaque fois, JAMAIS il ne pourra jamais jouer, IF_WAIT_ONLY seulement jouer le message de bienvenue si l'appel n'est pas immédiatement à un agent , et YES_UNLESS_NODELAY toujours jouer le message de bienvenue NO_DELAY à moins que le paramètre est activé. La valeur par défaut est TOUJOURS. + +
+
+
+ Musique sur le contexte de prise - la musique sur le contexte de prisepour employer quand le client est placé sur la prise. Le défaut estdéfaut. + +
+
+
+ Sur le nom de fichier de message de sollicitation de prise - ledossier audio localisé sur le serveur à jouer à un intervallerégulier quand le client est sur la prise. Le défaut estgeneric_hold. Ce dossier audio DOIT être de 9 secondes ou moins dansla longueur. + +
+
+
+ Sur l'intervalle de message de sollicitation de prise - la durée ensecondes d'attendre avant de jouer dessus le message de sollicitationde tenir. Le défaut est 60. Pour désactiver l'invite en attente, réglez l'intervalle de 0. + +
+
+
+ Jouer en ligne Place - Cela définit si l'appelant entendra leur place dans la ligne quand ils entrent dans la file d'attente, ainsi que quand ils entendent le announcemend. La valeur par défaut est N. + +
+
+
+ Hold estimée Play Time - Cela définit si l'appelant entend tenir les prévisions de temps avant qu'ils ne soient transférés à un agent. La valeur par défaut est N. Si le client est en attente et entend ce message d-estime détenir le temps, le temps minimum qui sera jouée est de 15 secondes. + +
+
+
+ Hold Time Option - Cela vous permet de spécifier le routage de l'appel, si les prévisions de tenir le temps est sur le montant de la seconde précisés ci-dessous. La valeur par défaut est NON. + +
+
+
+ Hold Time Option secondes - Si Hold Time Option est fixé à rien, mais AUCUNE, c'est le nombre de secondes de l'estimation du temps que vous maintenez le déclencheur tenir option. La valeur par défaut est 360 secondes. + +
+
+
+ Hold Time Option Extension - Si Hold Time Option est fixé à l'extension, c'est l'extension dialplan que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. + +
+
+
+ Hold Time Option Boîte vocale - Si Hold Time Option est fixé à la boîte vocale, il s'agit de la boîte vocale que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. + +
+
+
+ Hold Time Option de transfert In-Group - Si Hold Time Option est fixé à IN_GROUP, c'est l'arrivée du groupe que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds. + +
+
+
+ Hold Time Option Callback Filename - Si Hold Time Option est fixé à CALLERID_CALLBACK, cette invite est le nom du fichier qui se joue avant l'appel est enregistré comme un nouveau chef de file de la liste ID spécifiées ci-dessous si l'estimation est supérieure à la fois tenir Hold Time Option Seconds. + +
+
+
+ Hold Time Option Rappel Liste ID - Si Hold Time Option est fixé à CALLERID_CALLBACK, il s'agit de la liste de ID de l'appel est ajouté à un nouveau chef de file, si les prévisions de tenir le temps dépasse le Hold Time Option Seconds. + +
+
+
+ Agent d-alerte Filename - Le fichier audio à lire à un agent d-annoncer qu-un appel arrive à l-agent. Pour ne pas utiliser cette fonction pour définir cette valeur par défaut est X. Ding. + +
+
+
+ L'alerte d'agent Retardent - la durée en millisecondesd'attendre avant d'envoyer l'appel à l'agent après avoir jouédessus la prolongation alerte d'agent. Le défaut est 1000. + +
+
+
+ Groupe de transfert de défaut - ce champ est le Dans-Groupe dedéfaut qui sera automatiquement choisi quand l'agent va à l'armaturede transférer-conférence dans leur interface d'agent. + +
+
+
+ En groupe enregistrement Override - Ce champ permet d'primordial de la campagne d'appel enregistrement. Ce réglage peut être modifié par l'enregistrement de l'emporter sur la mise en vicidial_user. HANDICAPES ne remplacent pas la campagne de l'enregistrement programmé. JAMAIS désactive l'enregistrement sur le client. OnDemand est l'option par défaut et permet à l'agent de début et de fin d'enregistrement en tant que de besoin. ALLCALLS va commencer l'enregistrement sur le client chaque fois qu'un appel est adressé à un agent. ALLFORCE va commencer l'enregistrement sur le client chaque fois qu'un appel est adressé à un agent qui l'agent aucune option pour arrêter l'enregistrement. + +
+
+
+ En groupe d'enregistrement du fichier - Ce champ peut passer outre à la campagne d'enregistrement nommage des fichiers système, sauf si elle est définie à AUCUNE. Les variables sont autorisés CAMPAGNE CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. La valeur par défaut est FULLDATE_AGENT et se présente comme suit 20051020-103108_6666. Un autre exemple est CAMPAIGN_TINYDATE_CUSTPHONE qui se présente comme suit TESTCAMP_51020103108_3125551212. 50 char max. La valeur par défaut est NON. + + 0) + { + ?> +
+
+
+ QC Activé - Mise en ce domaine permet à Y pour l'agent de contrôle de la qualité caractéristiques au travail. La valeur par défaut est N. + +
+
+
+ Statuts QC - Cette zone est l'endroit où vous choisissez ce qui entraîne des statuts doit être dépassé par le système de QC. Placez un contrôle à côté de l'état que vous voulez examiner QC. + +
+
+
+ QC Shift - Il s'agit du changement de calendrier servant à tirer d'un QC inbound_group. Les jours de la semaine sont ignorées pour ces fonctions. + +
+
+
+ Record QC Get lancement Cela permet à l'une des actions suivantes peut être déclenché sur un agent QC recevoir un nouveau record. + +
+
+
+ QC Voir Recording - qui permet un enregistrement qui mai être liée à la QC record à afficher dans le QC agent écran. + +
+
+
+ QC WebForm Adresse - Il s'agit de l'adresse du site web d'un agent QC pouvez aller à en cliquant sur le lien dans la WebForm QC écran. + +
+
+
+ Script QC - C'est le script qui peut être utilisé par les agents QC SCRIPT dans l'onglet de la QC écran. + + +
+
+
+ Hold Recall transfert In-Group - Si un client demande à ce groupe en plus d'une fois et cela n'est pas mis à AUCUNE, puis l'appel sera automatiquement envoyé à l'En-groupe sélectionné dans ce domaine . La valeur par défaut est NON. + +
+
+
+ Appel Route n ° Delay - Mettre ce paramètre à Y va effacer tous les temps d'attente et audio et de tenter d'envoyer l'appel droit à un agent. T-elle pas sur le message d'accueil ou en attente rapide des paramètres. La valeur par défaut est N. + +
+
+
+ Stats Pourcentage des appels dans les X secondes - Ce domaine vous permet de définir le nombre de secondes que le tenir en temps réel des statistiques d'affichage à utiliser pour calculer le pourcentage d'appels qui ont répondu ont répondu dans X le nombre de secondes en attente. + +
+
+
+ Début de l-appel Web - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank. + +
+
+
+ Dispo Call Web - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank. + +
+
+
+ Groupe par défaut Alias - Si vous avez permis à Groupe Alias pour la campagne que l'agent est entré dans ce groupe est l'alias qui est sélectionnée par défaut sur la première d'un appel provenant de l'arrivée de ce groupe quand l'agent choisit de utiliser un alias pour un groupe émetteur manuel appel. La valeur par défaut est None ou vide. + + + + + +



+ + VICIDIAL_ENTRANT_DIDS TABLE

+
+
+
+ DID Extension - C'est le nombre, d'extension ou de DID qui déclenchent cette entrée et que vous la route à l'intérieur du système en utilisant cette fonction. Il est réservé par défaut DID que vous pouvez utiliser ce qui est juste le mot-par défaut, sans les tirets, qui allos d'envoyer tout appel qui ne correspond pas à tout les autres modèles de la valeur par défaut de DID. + +
+
+
+ Description DID - Il s'agit de la description de l'entrée de routage DID. + +
+
+
+ DID Active - C'est le domaine où vous définissez la DID à l'entrée active ou non. La valeur par défaut est Y. + +
+
+
+ Route DID - Ce type de route que vous avez mis le DID à utiliser. EXTEN va envoyer des appels à l'extension en dessous, à la messagerie vocale vous envoyer des appels directement à la boîte vocale en dessous, AGENT envoie les appels vers un agent VICIDIAL s'ils sont identifiés, PHONE enverra l'appel d'un téléphone d'entrée, sélectionnez ci-dessous, vous IN_GROUP envoyer des appels directement à l'arrivée du groupe spécifié. La valeur par défaut est EXTEN. CALLMENU allez envoyer l-appel vers le menu Appel définie. + +
+
+
+ Extension - Si EXTEN est sélectionné en tant que DID route, alors c'est le dialplan extension qui appelle sera envoyée. La valeur par défaut est 9998811112, pas de service. + +
+
+
+ Extension Contexte - Si EXTEN est sélectionné en tant que DID route, alors c'est le contexte qui dialplan demande sera envoyée. Par défaut est la valeur par défaut. + +
+
+
+ Boite vocale - Si messagerie vocale est sélectionné en tant que DID Route, c'est la boîte vocale qui demande sera envoyée. La valeur par défaut est vide. + +
+
+
+ Téléphone Extension - si le téléphone est sélectionné comme DID Route, cette extension est le téléphone que les appels seront envoyées. + +
+
+
+ Téléphone IP du serveur - si le téléphone est sélectionné comme DID route, alors c'est l'IP du serveur pour le téléphone d'extension que les appels seront envoyés à. + +
+
+
+ Appel du menu - Si CALLMENU est sélectionné comme la Route de DID, alors c-est le menu d-appel que les appels seront envoyés aux. + +
+
+
+ Utilisateur Agent - si l'agent est sélectionné en tant que DID route, alors c'est le VICIDIAL l'agent qui demande sera envoyée à. + +
+
+
+ Utilisateur Unavailable Action - si l'agent est sélectionné en tant que DID route, et l'utilisateur n'est pas connecté ou disponible, c'est la route que les appels se. + +
+
+
+ Utilisateur Settings En Route-Group - si l'agent est sélectionné en tant que DID route, alors c'est le groupe In-qui sera utilisé pour la file d'attente de paramètres que l'appelant est en attente d'être envoyé à l'agent. La valeur par défaut est AGENTDIRECT. + +
+
+
+ In-Groupe ID - Si IN_GROUP est sélectionné en tant que DID route, alors c'est le groupe qui en demande sera envoyée à. + +
+
+
+ In-Group Call Handle Method - Si IN_GROUP est sélectionné comme la Route de DID, alors c-est la gestion des appels de méthode utilisée pour ces appels. CID va ajouter un enregistrement nouveau chef de file à chaque appel en utilisant le CallerID que le numéro de téléphone, CIDLOOKUP va tenter de rechercher le numéro de téléphone par le CallerID dans l-ensemble du système, CIDLOOKUPRL va tenter de rechercher le numéro de téléphone par le CallerID dans une seule liste spécifiée , CIDLOOKUPRC va tenter de rechercher le numéro de téléphone par le CallerID dans toutes les listes qui appartiennent à la campagne déterminée, CLOSER est spécifié pour VICIDIAL Closer appels, ANI ajouter un enregistrement nouveau chef de file à chaque appel en utilisant l-ANI que le numéro de téléphone, ANILOOKUP va tenter de rechercher le numéro de téléphone par l-ANI dans le système tout entier, ANILOOKUPRL va tenter de rechercher le numéro de téléphone par l-ANI dans une seule liste spécifiée, XDIGITID va demander à l-appelant d-un code à quatre chiffres X avant l-appel sera mis en la file d-attente, VIDPROMPT va demander à l-appelant pour leur numéro d-identification et permettra de créer un dossier avec le nouveau chef de file CallerID que le numéro de téléphone et l-identifiant comme l-ID du vendeur, VIDPROMPTLOOKUP va tenter de rechercher l-ID dans l-ensemble du système, VIDPROMPTLOOKUPRL va tenter de rechercher l-ID de fournisseur par l-ID dans une seule liste spécifiée, VIDPROMPTLOOKUPRC va tenter de rechercher l-ID de fournisseur par l-ID dans l-ensemble des listes qui appartiennent à la campagne spécifié. Par défaut est CID. + +
+
+
+ In-Groupe Agent Méthode de recherche - Si IN_GROUP est sélectionné en tant que DID route, alors c'est l'agent de recherche à la méthode de l'arrivée du groupe, LO est à équilibrage de charge-débordement et d'essayer d'envoyer l'appel à un agent sur le serveur local avant d'essayer de l'envoyer à un agent sur un autre serveur, LB est à équilibrage de charge et de tenter d'envoyer l'appel à l'agent, quel que soit elles sont sur le serveur, le serveur SO est seulement et que d'essayer d'envoyer des appels vers les agents sur le serveur que l'appel est venu dans le. La valeur par défaut est LB. + +
+
+
+ Dans la liste Groupe ID - Si IN_GROUP est sélectionné en tant que DID Route, c'est la liste qui mène mai ID être recherchées à travers et que le conduit sera inséré dans le cas échéant. + +
+
+
+ En-groupe ID de la campagne - Si IN_GROUP est sélectionné en tant que DID route, alors c'est le ID de la campagne que mène mai être recherchée dans le cas de la méthode est de faire appel CIDLOOKUPRC. + +
+
+
+ En-groupe Téléphone Code - Si IN_GROUP est sélectionné en tant que DID route, alors ce téléphone est le code utilisé si un nouveau chef de file est créé. + + + + +



+ + VICIDIAL_CALL MENU TABLE

+
+
+ Menu ID - Ceci est l-ID pour cette étape du menu d-appel. Ce sera également visible selon le contexte qui est utilisée dans le plan de numérotation pour cet appel menu. + +
+
+
+ Nom du menu - Ce champ est le nom descriptif pour le menu d-appel. + +
+
+
+ Menu rapide - Ce champ contient le nom du fichier audio de l-invite à jouer au début de ce menu. Vous pouvez entrer propmts multiples dans ce domaine et invite les autres champs en les séparant par un caractère pipe. + +
+
+
+ Menu Timeout - Ce champ est l-endroit où vous définissez le délai en secondes que le menu va attendre que l-appelant à entrer dans un choix DTMF. Fixation de ce champ à zéro 0 signifie qu-il n-y aura pas de temps d-attente après le prompt est joué. + +
+
+
+ Menu prompt timeout - Ce champ contient le nom du fichier audio de l-invite à jouer lorsque le délai d-attente a été atteint. AUCUNE par défaut est de ne jouer aucune audio à temporisation. + +
+
+
+ Menu Blancs Prompt - Ce champ contient le nom du fichier audio de l-invite à jouer lorsque l-appelant a choisi une option non valide. AUCUNE par défaut est de ne jouer aucune audio à invalide. + +
+
+
+ Menu Répétez - Ce champ est l-endroit où vous définissez le nombre de fois que le menu sera joué après la première fois si aucun choix valide est faite par l-appelant. Par défaut est de 1 à répéter le menu une fois. + +
+
+
+ Menu Heure Départ - Ce champ est l-endroit où vous pouvez choisir de restreindre l-accès au menu d-appel des heures spécifiques mis en place à l-heure choisie Call. Si le temps d-appel est vide, ce paramètre sera ignoré. Par défaut est 0 pour les handicapés. + +
+
+
+ Identifiant de la période d'appels - C-est l-appel Heure ID qui sera utilisé pour restreindre fois appelant si le menu Heure option Vérifier est activée. + +
+
+
+ Le suivi des appels dans Real-Time Report - Ce champ est l-endroit où vous pouvez choisir si vous voulez l-appel à être suivis dans l-écran en temps réel comme un appel entrant RVI type. Par défaut est 1 pour actifs. + +
+
+
+ Groupe de suivi - Ceci est l-ID que vous pouvez utiliser pour suivre les appels vers ce menu d-appel lorsque l-on examine le Rapport IVR. La liste comprend CALLMENU par défaut ainsi que l-ensemble de l-En-Groupes. + +
+
+
+ Valeur d-option - Ce champ est l-endroit où vous définissez l-option de menu, les choix possibles sont: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. Le timecheck option spéciale peut être utilisée que si vous avez menu Heure Départ activé et il ya un temps d-appel définis pour le menu. Pour supprimer une option, vient de mettre la route pour supprimer et l-option sera supprimée lorsque vous cliquez sur le bouton ENVOYER. + +
+
+
+ Option Description - Ce champ est l-endroit où vous pouvez décrire l-option, cette description sera mis dans le plan de numérotation en tant que commentaire dessus de l-option. + +
+
+
+ Option Itinéraire - Ce menu contient les options pour savoir où envoyer l-appel si cette option est sélectionnée: CALLMENU, endogroupe, DID, HANGUP, EXTENSION, téléphone. Pour CALLMENU, la valeur de marche doit être l-ID du menu d-appel que vous voulez que l-appel adressé à. Pour endogroupe, l-en-groupe que vous voulez que l-appel doit être envoyé aux besoins d-être sélectionnée ainsi que les 5 autres options qui restent à être mis à bien acheminer un appel à un groupe d-entrants. Pour DID, la valeur de route doit être le modèle de DID que vous voulez envoyer l-appel. Pour HANGUP, la valeur de la Route peut être le nom d-un fichier audio à jouer avant de raccrocher l-appel. Par extension, la qualité route doit être l-extension plan de numérotation que vous souhaitez envoyer l-appel à, et la route de valeur de contexte est le contexte que l-extension est situé dans, s-il est laissé en blanc le contexte par défaut par défaut. Pour le téléphone, la valeur de route doit être la valeur de connexion de téléphone pour les téléphones d-entrée que vous voulez envoyer l-appel. Pour la messagerie vocale, la Value itinéraire doit être le numéro de boîte vocale, le mesage non disponible sera joué. Pour AGI, la valeur de route doit être le script AGI et toutes les valeurs qui doivent être transmis à elle. + +
+
+
+ Valeur option Itinéraire - Ce champ est l-endroit où vous entrez la valeur qui désigne l-endroit du choisis option de route que l-appel doit être dirigé vers. + +
+
+
+ Option Itinéraire valeur de contexte - Ce champ est optionnel et utilisé uniquement pour l-option Itinéraires EXTENSION. + +
+
+
+ Custom Dilplan Entrée - Ce champ vous permet d-entrer dans tous les éléments de plan de numérotation que vous souhaitez pour le menu d-appel. + + + + + +



+ + VICIDIAL_REMOTE_AGENTS TABLE

+
+
+ ID utilisateur de départ - C'est l'ID utilisateur de départ qui est utilisé quand un entrée d'agent distant est inserée dans le système. Si le nombre de lignes est plus grand que 1, ce nombre est incrementé de un pour chaque ligne qui a une entrée. Assurez vous d'avoir créer un nouveau compte utilisateur VICIDIAL avec un niveau de 4 ou plus si vous voulez qu'il puisse utiliser la page vdremote.php pour pour un accès web distant pour ce compte. + +
+
+
+ Numéro de lignes - Cela définie combien d'entrées d'agent distants le système crée, et détermine combien de lignes peuvent être envoyées sans soucis au numéro ci-dessus. + +
+
+
+ IP du serveur - Une entrée d'agent distant est seulement valide pour un serveur spécifique, c'est ici que vous sélectionnez quel serveur vous voulez. + +
+
+
+ Extension externe - C'est le numéro vers lequel vous voulez faire suivre l'appel. Assurez vous que c'est un numéro du dial plan et si vous avez besoin d'un 9 au début mettez le ici. Testez en appelant ce numéro depuis un téléphone du système. + +
+
+
+ Etat - C'est ici que vous activez ou desacivez l'agent distant. Dès que l'agent est actif le systeme permet que des appels puissent lui être envoyés. Cela peu prendre plus de 30 secondes à partir du moment où vous avez desactivé l'agent jusqu'à l'arrêt de la réception des appels. + +
+
+
+ Campagne - C'est ici que vous choisissez la campagne dans laquelle ces agents distants ce connecteront. Les appels entrants ont besoin d'une campagne de type CLOSER et de selectionner les campagnes entrantes ci-dessus dans laquelle vous voulez recevoir des appels. + +
+
+
+ Groupes entrants - C'est ici que vous selectionnez les groupes entrants depuis lesquels vous voulez recevoir des appels si vous avez selectionné une campagne de type CLOSER. + + +



+ + VICIDIAL_CAMPAIGN_LISTES

+
+
+ Les listes de cette campagne sont énumérées ici, leur activité est dénotée par le Y ou N et vous pouvez aller à l'écran de la liste en cliquant sur l'ID de la liste dans la première colonne. + + +



+ + VICIDIAL_CAMPAIGN_STATUSES TABLE

+
+
+ En utilisant des statuts de campagne personnalisés, vous pouvez utiliser des statuts qui n'existent que pour une campagne spécifique. Le statut doit contenir entre 1 et 8 caractères , la description entre 2 et 30 et Selectionnable définit si il apparaît dans VICIDIAL comme disposition. Human_answered le champ est employé en calculant le pourcentage debaisse, ou le taux d'abandon. L'arrangement human_answered à Yemploiera ce statut en comptant les appels humain-répondus. L'option de catégorie vous permet de grouper plusieurs statuts dansun catogy qui peut être employé pour l'analyse statistique. + + + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYS TABLE

+
+
+ En utilisant des raccourcis clavier personnalisés, les agents utilisant le client web VICIDIAL peuvent raccrocher et statuer les appels juste en pressant une seule touche du clavier. Il y a deux raccourcis claviers que vous pouvez utiliser en même temps que l'appel du numéro alternatif, ALTPH2 - Alternate Phone Hot Dial et ADDR3 - Adresse3 qui permet à un agent d'utiliser un raccourci pour raccocher l'appel, rester sur la fiche et appeler un autre numéro de la fiche. + + + + + +



+ + VICIDIAL_LEAD_RECYCLE TABLE

+
+
+ 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. + + + + + +



+ + STATUTS VICIDIAL DE L'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF

+
+
+ Si le champ Appel automatique du numéro alternatif est défini, alors les fiches diposées sous ces statuts d'appels automatiques du numéro alternatif auront leurs champs numéro alternatif et/ou adresse3 appelés après n'importe quel statut de non-réponse. + + + + + +



+ + VICIDIAL CODES PAUSE DES AGENTS

+
+
+ Si les codes de pause des agents sont activés alors les agents pourront en selectionner un parmi ces codes quand ils cliquent sur le bouton PAUSE. Cette donnée est ensuite stockée dans les log sur les agents vicidial. Un code de pause doit contenir uniquement des lettres et des chiffres et doit contenir moins de 7 caractères. Le nom du code ne doit pas contenir plus de 30 caractères. + + + + + +



+ + VICIDIAL_USER_GROUPS TABLE

+
+
+ Groupe d'utilisateurs - C'est le nom court d'un groupe d'utilisateurs Vicidial, n'utilisez ni espaces ni ponctuation pour ce champ. Max 20 caractère min 2. + +
+
+
+ Nom du Groupe - C'est la description du groupe d'utilisateurs vicidial. Max 40 caractères. + +
+
+
+ Force timeclock Login - Cette option vous permet de ne pas laisser un agent vous connecter à l'interface agent VICIDIAL si elles ne sont pas enregistrés dans le timeclock. La valeur par défaut est N. Il est possible d'exonérer les utilisateurs admin, le niveau 8 et 9. + +
+
+
+ Shift exécution - Ce paramètre vous permet de restreindre l'agent de connexion sur la base des changements qui ont été sélectionnés ci-dessous. OFF ne fera pas appliquer à tous les changements. START ne faire respecter les temps de connexion, mais n'aura pas d'incidence sur un agent qui est en cours d'exécution sur leurs heures de travail si elles sont déjà logged in ALL appliquent passer l'heure de début et se connecter à un agent, après, ils courent sur la fin de leur quart de temps. La valeur par défaut est OFF. + +
+
+
+ Groupe changements - Il s'agit d'un choix de la liste des changements qui peuvent restreindre l'accès des agents à temps sur le système. + +
+
+
+ Campagnes autorisés - C'est une liste de campagnes dans lesquelles les utilisateurs de ce groupes pourront se connecter. L'option TOUTES LES CAMPAGNES autorise les utilisateurs de ce groupe à voir et se connecter à toutes les campagnes sur le système. + +
+
+
+ Le statut de mandataire Viewable Groupes - Ceci est une liste sélectionnable de groupes d-utilisateurs et les fonctions utilisateur pour lequel les membres de ce groupe d-utilisateurs peuvent visualiser l-état des appels ainsi que le transfert vers l-intérieur de l-écran de l-agent. The All-GROUPES option permet aux utilisateurs de ce groupe à voir et à transférer des appels vers n-importe quel utilisateur sur le système. La CAMPAGNE AGENTS option permet aux utilisateurs de ce groupe à voir et à transférer des appels vers n-importe quel utilisateur dans la campagne à laquelle ils sont connectés à. + +
+
+
+ Le statut de mandataire Afficher Time - Cette option définit si l-agent va voir la quantité de temps que les utilisateurs dans leur encadré agent ont été dans leur état actuel. Par défaut est N pour non ou handicapés. + + 0) + { + ?> +
+
+
+ QC permis Campagnes - Il s'agit d'un choix de la liste des campagnes où les membres de ce groupe d'utilisateurs seront en mesure de QC. Le ALL-CAMPAGNES option permet aux utilisateurs de ce groupe de Québec une campagne sur le système. + +
+
+
+ QC permis l'arrivée des groupes - Il s'agit d'un choix de la liste des groupes dont l'arrivée des membres de ce groupe d'utilisateurs seront en mesure de QC. Le ALL-GROUPES option permet aux utilisateurs dans ce groupe d'utilisateurs QC arrivée du groupe sur tout le système. + + + + + +



+ + VICIDIAL_SCRIPTS TABLE

+
+
+ Id du script - C'est le nom court d'un Script Vicidal. Il doit être unique. Ne pas utiliser d'espace ni de ponctuation pour ce champ. Doit être composé de 2 à 10 caractères. + +
+
+ Nom du ccript - C'est le titre du script Vicidial. C'est une courte description du script. Maximum 50 caractères, minimum 2. Il ne doit pas avoir d'espace ou de ponctuation de quelque sorte dans ce champ. + +
+
+ Commentaires du script - C'est ici que vous entrez un commentaire pour le script Vicidial comme -changed to free upgrade on Sept 23- Max 255 caractères , min 2 caractères. + +
+
+ Texte du script - 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, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

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?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Activé - Cela determine si ce script peut être selectionné pour être utilisé dans une campagne. + + + + + + 0) + { + ?> +



+ + VICIDIAL_LEAD_FILTRES TABLE

+
+
+ ID du Filtre - C'est le nom court du filtre de fiches Vicidial. Il doit être unique. N'utilisez ni espace ni ponctuation. Max 10 caractères min 2. + +
+
+ Nom du Filtre - C'est un nom plus descrtiptif du filtre. C'est un court resumé du filtre. Max 30 caractères Min 2. + +
+
+ Commentaire du filtre - C'est ici que vous placez les commmentaire du filtre vicidial comme -Appel toutes les fiches de Californie- max 255 characters, min 2. + +
+
+ Filtre SQL - C'est ici que vous mettez le fragment de requête SQL que vous voulez utiliser pour filtrer. Ne commencez pas ni ne finissez pas par AND, cela est automatiquement ajouté par le script cron. Exemple : called_count > 4 and called_count < 8 . + + + + + +



+ + VICIDIAL_PERIODES D'APPELS TABLE

+
+
+ Identifiant de la période d'appel - C'est le nom court de la période d'appel de VICIDIAL. Il doit être unique. N'utilisez pas d'espace ou de ponctuation. 10 caractères maximum et 2 minimum. + +
+
+ Nom de la période d'appel - C'est un nom plus descriptif de la période d'appel. Une courte description. 30 caractères maximum et 2 minimum. + +
+
+ Commentaires de la période d'appel - Vous pouvez y placer des commentaires sur la période d'appel de Vicidial comme-de 10h00 à 16h00 avec des restrictions-. Max 255 caractères. + +
+
+ Heures de début et de fin par défaut - Ce sont les heures par défaut pendant lesquelles un appel est autorisé si l'heure de début de day-of-the-week n'est pas définie. 0 est minuit. Pour interdir complétement les appels mettez 2400 et mettez 2400 à l'heure de fin par défaut. Pour autoriser les appels 24h/24, remplissez les champs avec 0 pour le début et 2400 pour la fin. + +
+
+ Heures de début et de fin pour un jour - Ce sont les heures de début et de fin personnalisés pour un jour. Les mêmes règles s'appliquent qu'aux heures de début et de fin par défaut. + +
+
+ Définitions des états des périodes d'appel -<\/B> C'est la liste des définitions spécifiques des périodes d'appels des états qui sont suivies dans cette définition de période d'appels. + +
+
+ State Call Time State -<\/B> Ce sont les deux lettres code pour l'état auquel cette définition de période d'appels correspond. Pour que cela prenne effet, la période d'appel locale qui est définie dans la campagne doit avoir cette enregistrement d'état de période d'appel aussi bien que toutes les fiches ayant ces deux lettre codes d'état. + + + + +



+ + VICIDIAL_SHIFTS TABLE

+
+
+ Shift ID - Il s'agit du nom court d'un VICIDIAL Shift Définition. Cela doit être un identifiant unique. Ne pas utiliser les espaces ou la ponctuation dans ce champ. max 20 caractères, un minimum de 2 caractères. + +
+
+ Nom Shift - Il s'agit d'un nom descriptif de la Maj Définition. Ceci est un bref résumé de la définition Maj. max 50 caractères, un minimum de 2 caractères. + +
+
+ Start Time Shift - Il est temps que la campagne commence à passer. Ne doivent être des chiffres, 9:30 AM serait 0930 et 5:00 PM serait 1700. + +
+
+ Longueur Shift - Il est temps en heures et minutes que dure la campagne de changement. 8 heures seraient 08h00 et 7 heures et 30 minutes serait 07:30. + +
+
+ Shift Weekdays - Dans cette section, vous devriez choisir le jour de la semaine que ce changement est active. + + + + + +



+
+ Audio Store - Cet utilitaire vous permet de télécharger des fichiers audio sur le serveur Web de sorte qu-ils puissent être distribués à tous les serveurs VICIDIAL dans un cluster multi-serveur. Une remarque importante, seulement deux types de fichiers audio fonctionne, les fichiers. Wav qui sont PCM 16bit 8k et les fichiers. GSM qui sont 8bit 8K. S-il vous plaît vérifier que vos fichiers sont correctement mis en forme avant de les télécharger ici. + + + +



+ + VICIDIAL_MUSIC_ON_HOLD TABLE

+
+
+ Musique en attente d-identification - Ceci est le nom court d-une musique d-attente d-entrée. Cela doit être un identifiant unique. N-utilisez pas d-espaces ou de ponctuation dans ce champ. max 100 caractères, minimum de 2 caractères. + +
+
+ Musique d-attente Nom - Il s-agit d-un nom plus descriptif de la Musique en attente d-entrée. Ceci est un bref résumé de la Musique en attente contexte et s-affiche comme un commentaire dans le musiconhold-file vicidial.conf. 255 caractères max, minimum de 2 caractères. + +
+
+ Active - Cette option vous permet de définir la musique d-attente à l-entrée active ou inactive. Inactifs va supprimer l-entrée à partir des fichiers conf. + +
+
+ Random Order - Cette option vous permet de définir la lecture des fichiers audio dans un ordre aléatoire. Si elle est égale à N, alors l-ordre défini sera utilisé. + +
+
+ Filename - Pour ajouter un nouveau fichier audio à une musique d-attente d-entrée, le fichier doit d-abord être dans le magasin de l-audio, alors vous pouvez sélectionner le fichier et cliquez sur Soumettre pour l-ajouter à la liste des fichiers. Musique d-attente est mis à jour une fois par minute s-il ya eu des modifications apportées. Tous les fichiers qui ne figurent pas dans une musique à l-entrée détiennent qui sont présents dans la musique sur le dossier de détention seront supprimés. + + + + +



+ + VICIDIAL_TTS_PROMPTS TABLE

+
+
+ TTS ID - Ceci est le nom court d-une entrée de TTS. Cela doit être un identifiant unique. N-utilisez pas d-espaces ou de ponctuation dans ce champ. max 50 caractères, minimum de 2 caractères. + +
+
+ TTS Nom - Il s-agit d-un nom plus descriptif de l-entrée TTS. Ceci est un bref résumé de la définition de TTS. max 100 caractères, minimum de 2 caractères. + +
+
+ Active - Cette option vous permet de définir l-entrée de TTS à l-état actif ou inactif. + +
+
+ TTS Text - Il s-agit du texte à la parole champ de données qui est envoyé à Cepstral pour la création du fichier audio à lire pour le client. vous pouvez utiliser Speech Synthesis Markup Language-SSML, dans ce domaine, par exemple, <break time='1000ms'/> pour une pause de 1 seconde. Vous pouvez également utiliser plusieurs variables telles que nom, prénom et titre en tant que variables VICIDIAL comme vous le faites dans un script: - Un prenom - - B -. Voici une liste des variables disponibles:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAIL TABLE

+
+
+ Boîte vocale ID - Il s-agit de la identifiant nombres de cette boîte aux lettres. Cela ne doit pas être un doublon d-un répondeur d-identification existant ou la boîte vocale d-ID d-un téléphone sur le système, au moins 2 caractères. + +
+
+ Name - Ce nom est associé à cette boîte vocale. max 100 caractères, minimum de 2 caractères. + +
+
+ Password - C-est le mot de passe utilisés pour accéder à la boîte vocale lors de la numérotation pour vérifier ses messages max 10 caractères, minimum de 2 caractères. + +
+
+ Active - Cette option vous permet de configurer la boîte vocale à l-état actif ou inactif. Si la case est inactive vous ne pouvez pas laisser de messages sur elle et vous ne pouvez pas vérifier les messages en elle. + +
+
+ Email - Ce paramètre facultatif vous permet d-avoir les messages vocaux envoyés à un compte de messagerie, si votre système est configuré pour envoyer des email. Si ce champ est vide, alors pas de courriels seront envoyés. + +
+
+ Supprimer messagerie vocale après le courrier électronique - Ce paramètre facultatif vous permet d-avoir les messages vocaux supprimés du système après avoir été envoyé par courriel Out. Par défaut est n. + + + + + 0) + { + ?> + +



+ + FONCTIONNALITES DU CHARGEUR DE FICHES DE VICIDIAL

+
+
+ Le chargeur enchaînement-basé de base de fil de VICIDIAL est conçusimplement pour prendre un dossier de fil - jusqu'à 8MB dans lataille qu'est l'étiquette ou la pipe délimitée et pour le chargerdans la table de vicidial_list. Le chargeur de fil tient compte duchamp choisissant et de TXT- le texte tout simplement, les valeursséparées par virgule de CSV- et les XLS- excellent des formats dedossier. Le chargeur de fil ne fait pas la validation de données,mais elle vous permet de vérifier les reproductions en soi, dans lacampagne ou dans le système entier. En outre, assurez-vous que vousavez créé la liste que ces fils doivent être dessous de sorte quevous puissiez les employer. Voici une liste des champs dans leurcommande appropriée pour les dossiers de fil : +
    +
  1. Code vendeur de la fiche - montre dans le champ dID du vendeur de l'interface graphique +
  2. Code source - usage interne uniquement pour les administrateurs et les administrateurs de la base de données +
  3. Identifiant de la liste - le numéro de la liste dans laquelle seront ces fiches +
  4. Code du téléphone - le préfixe pour le numéro de téléphone - 1 pour les USA, 0144 pour le Royaume-Uni, 01161 pour l'Australie, etc +
  5. Numéro de téléphone - doit contenir au moins 8 chiffres +
  6. Titre - titre du client - Mr. Mme. Mlle., etc... +
  7. Nom +
  8. Initiales +
  9. Prénom +
  10. Adresse Ligne 1 +
  11. Adresse Ligne 2 +
  12. Adresse Ligne 3 +
  13. Ville +
  14. Etat - Limité à 2 caractères +
  15. Province +
  16. Code Postal +
  17. Pays +
  18. Sexe +
  19. Date de naissance +
  20. Numero de téléphone alternatif +
  21. Adresse mail +
  22. Phrase de sécurité +
  23. Commentaires +
+ +
NOTES : La fonctionnalité de chargeur de fil d'exceler est permisepar une série de manuscrits de Perl et doit avoir un dossier en placecorrectement configuré de /etc/astguiclient.conf sur le web server.En outre, des modules d'un Perl de couples doivent être chargés pourelle pour travailler aussi bien - oLE-Storage_Lite-Storage_Lite et leBilan-ParseExcel. Vous pouvez vérifier les erreurs d'exécution dansces derniers en regardant votre dossier d'error_log d'apache. Enoutre, pour des contrôles de duplication contre le gampaignénumère, la liste qui a de nouveaux fils entrer dans lui doit êtrecréée dans le système avant que vous commenciez à charger lesfils. + + + + +



+ + + + + + + TABLE DES TELEPHONES

+
+
+ Extension du téléphone - C'est dans ce champ qu'il faut mettre le nom du téléphone comme il apparait dans Asterisk sans mettre le protocole ou le slash du début. Par exemple: pour le téléphone SIP SIP/test101 l'extension sera test101. De même pour les téléphones IAX2 assurez vous d'utiliser le nom complet du téléphone : pour IAX2/IAXphone1@IAXphone1 ce sera IAXphone1@IAXphone1. Pour les téléphones ZAP assurez vous de mettre le channel complet: pour Zap/25-1 ce sera 25-1. De plus, assurez vous d'avoir mis le bon protocole en dessous pour votre téléphone. + +
+
+
+ Numéro dans le Dial Plan - Ce champ est pour le numéro utilisé pour appeler ce téléphone. Ce numéro est défini dans le fichier extensions.conf du serveur Asterisk + +
+
+
+ Boîte vocale - Ce champ est pour la boîte vocale vers laquelle iront les messages pour l'utilisateur de ce téléphone. Il est utilisé pour vérifier la présence de messages et pour permettre à l'utilisateur d'utiliser le bouton VOICEMAIL dans l'application astGUIclient. + +
+
+
+ CallerID sortant - Ce champ est celui dans lequel vous entrez le numéro callerID que vous souhaitez voir apparaître lors d'appels externes passés depuis le client web astguiclient. Cela ne fonctionne pas avec RBS, non-PRI, T1/E1s. + +
+
+
+ Adresse IP du téléphone - Ce champ est pour l'adresse IP du téléphone si c'est un téléphone VOIP. Ce champ est optionnel + +
+
+
+ Adresse IP de l'ordinateur - Ce champ est pour l'adresse IP de l'ordinateur. C'est un champ optionel + +
+
+
+ IP du serveur - Ce champ est celui où vous choisissez le serveur sur lequel est activé le téléphone. + +
+
+
+ Login - login utilisé par l'utilisateur du téléphone pour se connecter aux applications clientes. + +
+
+
+ Mot de passe - Le mot de passe utilisé par l'utilisateur du téléphone pour se connecter aux applications clientes. IMPORTANT, c-est le seul mot de passe pour le web Connexion Agent interface de téléphone, pour changer la sip.conf iax.conf ou mot de passe, ou secrets, pour cet appareil de téléphone que vous devez modifier le fichier de conf champ Secret plus bas sur cette page. + +
+
+
+ Statut - C'est le statut du téléphone dans le système, ACTIVE et ADMIN autorisent les clients graphiques à fonctionner. ADMIN autorise l'acces à l'administration de ce site. Tous les autres statuts n'autorisent pas l'accès aux clients graphiques ou à l'administration. + +
+
+
+ Compte actif - Indique si le téléphone est actif pour le mettre dans la liste dans le client GUI. + +
+
+
+ Type de téléphone - Seuelement pour les notes administratives. + +
+
+
+ Nom complet - Utilisé par le client GUI dans la liste des téléphones actifs. + +
+
+
+ Compagnie - Seulement pour les notes administratives. + +
+
+
+ Téléphones Email - L'adresse e-mail associée à ce téléphone d'entrée. Il est utilisé pour les paramètres de messagerie vocale. + +
+
+ Supprimer messagerie vocale après le courrier électronique - Ce paramètre facultatif vous permet d-avoir les messages vocaux supprimés du système après avoir été envoyé par courriel Out. Par défaut est n. + +
+
+
+ Image - Pas encore implémenté. + +
+
+
+ Nouveaux messages - Nombre de nouveaux messages vocaux pour ce téléphone sur le serveur Asterisk. + +
+
+
+ Anciens messages - Nombre d'anciens messages vocaux pour ce téléphone sur le serveur Asterisk. + +
+
+
+ Protocole client - Le protocole que le téléphone utilise pour se connecter au serveur Asterisk: SIP, IAX2, Zap. Il y a également EXTERNAL pour les numéros distants et les numérotation rapide que vous voulez lister comme téléphone. + +
+
+
+ GMT local - La différence entre l'heure de Greenwich, ou l'heure ZULU et le fuseau horaire du téléphone. NE PAS AJUSTER POUR LES DAYLIGHT SAVINGS TIME. Ceci est utilisé par les campagnes VICIDIAL pour afficher correctement l'heure et l'heure du client. + +
+
+
+ Phone Ring Timeout - Il s-agit de la quantité de temps, en secondes, que le téléphone sonne dans le plan de numérotation avant d-envoyer l-appel vers la messagerie vocale. Par défaut est de 60 secondes. + +
+
+
+ Login du manager - C'est le login que les clients GUI de ce téléphones vont utiliser pour accéder à la base de données dans laquelle sont stockées les données du serveur. + +
+
+
+ Mot de passe du manager - C'est le mot de passe que les clients GUI de ce téléphone vont utiliser pour accéder à la base de données dans laquelle sont stockées les données du serveur. + +
+
+
+ Utilisateur par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ utilisateur de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. + +
+
+
+ Mot de passe par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ mot de passe de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. + +
+
+
+ Campagne par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ campagne de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser. + +
+
+
+ Exten de mise en attente - C'est l'exten par défaut utilisé pour la mise en attente dans l'application client. Verifiez qu'il fonctionne avant de le changer. + +
+
+
+ Exten pour mise en attente de la conférence - C'est l'exten par défaut utilisé pour la mise en attente de la conférence dans l'appilcation client. Verifiez qu'il autre fonctionne avant de le changer. + +
+
+
+ Exten de mise en attente VICIDIAL - C'est l'exten par defaut utilisé pour la mise en attente pour l'appilcation cliente VICIDIAL. Avant de changer ce champ verifiez que le nouveau fonctionne. + +
+
+
+ Fichier du parc VICIDIAL - C'est le nom du fichier par defaut pour la mise en attente de VICIDIAL. Avant de le changer verifiez que le nouveau fonctionne. Limité a 10 caractères. + +
+
+
+ Prefix de Moniteur - C'est le prefix du monitoring des Channels Zap automatiquement contenu dans l'appication astguiclient. Ne changez qu'en accord avec les enregistrement des extensions ZapBarge. + +
+
+
+ Exten d'enregistrement - C'est l'extension dans le dial plan pour l'enregistrement utilisé pour enregistrer les conférences. C'est habituellement stoppé au bout d'une heure. Verifiez le fichier extentions.conf avant tout changement. + +
+
+
+ Exten principal pour VMAIL - C'est l'extension du dial plan utilisé pour verifier la boîte vocale. Verifiez le fichier extensions.conf avant tout changement. + +
+
+
+ VMAIL Dump Exten - C'est le préfix du dial plan utilisé pour lancer des appels directement vers la boite vocale de l'utilisateur depuis un un appelen cours dans l'application astGUIclient app. Avant tout changement verifiez le fichier extensions.conf. + +
+
+
+ Extension du context - Tel est le contexte du plan de numérotation que les demandes d-agents, comme VICIDIAL, utilisez principalement. Il est supposé que tous les numéros composés par les applications clientes utilisent ce contexte, c-est donc une bonne idée de s-assurer que cela est possible, le contexte plus large. vérifier avec le fichier extensions.conf avant de changer. par défaut est par défaut. + +
+
+
+ Téléphone Contexte - Tel est le contexte du plan de numérotation que ce téléphone se servira pour composer. Si vous utilisez un centre d-appel et que vous ne voulez pas que vos agents pour être en mesure de composer un numéro hors de l-application VICIDIAL par exemple, alors vous devez définir ce domaine à un contexte de plan de numérotation qui n-existe pas, quelque chose comme agent-nodial. par défaut est par défaut. + +
+
+
+ Conf dossier secret - C-est le secret ou mot de passe, pour le téléphone dans le IAX ou SIP auto-généré fichier de conf pour ce téléphone. La limite est de 20 caractères alphanumériques tiret de soulignement et acceptée. Par défaut est test. + +
+
+
+ Cannal d'envoi de DTMF - C'est le channel utilisé pour envoyer les sons DTMF dans les conférences meetme depuis l'application cliente. Verifiez le fichier extentions.conf avant tout changement. + +
+
+
+ Groupe d'appel sortant -<\/B> C'est le groupe de canal hors duquel seront placés les appels passés depuis ce téléphone. Il y a des routines dans l'application cliente qui l'utilisent. Pour les cannal Zap vous devriez utiliser quelque chose comme Zap/g2, pour les trunks IAX vous devriez utiliser un préfixe entier IAX comme IAX2/VICItet1:secret@10.10.10.15:4569. Vérifiez les trunks dans le fichier extensions.conf, il est courant que vous avez défini comme variable globale TRUNK au début du fichier. + +
+
+
+ Emplacement du Navigateur - C'est le chemin absolu pour le navigateur Mozilla ou firefox, ceci n'est applicable que pour les clients UNIX/LINUX. Vérifiez en le lançant manuellement. + +
+
+
+ Répertoire d'installation - C'est l'endroit où astGUIclient et les scripts astVICUDUAL sont installés sur la machine. Pour Win32 cela doit être quelque chose comme C:\\AST_VICI and for UNIX cela doit être quelque chose comme /usr/local/perl_TK. Vérifiez cela manuellement. + +
+
+
+ URL du CallerID - C'est l'adresse web de la page utilisée pour faire une verification personnalisée du CallerId. L'adresse des test par defaut est : http://astguiclient.sf.net/test_callerid_output.php + +
+
+
+ URL par defaut de VICIDIAL - C'est l'adresse web de la page utilisée pour faire des requêtes Web VICIDIAL personnalisées. L'adresse par defaut est: http://astguiclient.sf.net/test_VICIDIAL_output.php + +
+
+
+ Log des appels - Mettez à true si le fichier call_log.agi est placé dans le fichier extension.conf pour tout les appels sortants ainsi que l'extension de racrochage 'h' pour logger tout les appels. Il devrait toujours être à 1 car cela est nécessaire pour que certaines des fonctionnalités d'astGUIclient et de VICIDIAL fonctionnent proprement. + +
+
+
+ Changement d'utilisateur - Mettez à true pour autoriser un utilisateur à changer pour un autre compte utilisateur. NOTE: Si l'utilisateur commute, il peut initier l'enregistrement sur la nouvelle conversation téléphonique du nouvel utilisateur + +
+
+
+ En conférence - Mettez à true pour autoriser un utilisateur a démarrer une conférence avec plus de 6 lignes externs. + +
+
+
+ Racrochage administateur- Mettre à true pour autoriser l'utilisateur à racrocher n'importe quelle ligne à travers astGUIclient. C'est une bonne idée de l'activer pour les administarteurs. + +
+
+
+ Détournement adminisrateur -<\/B> Mettre à true pour autoriser l'utilisateur à pouvoir intercepter et rediriger vers son extention n'importe quelle ligne à travers Astguiclient. C'est une bonne idée de l'activer pour les administrateurs. Mais c'est aussi très utile pour les managers. + +
+
+
+ Moniteur adminisrateur - Mettre à true pour autoriser l'utilisateur à intercepter et rediriger vers son extension certaines lignes à partir de astGUIclient. C'est une bonne idée de l'activer pour les adiministrateurs. Mais c'est aussi très utile pour les managers et comme outil d'entrainement. + +
+
+
+ Parc d'appels -<\/B> Mettez à true pour autoriser l'utilisateur à parquer des appels dans astGUIclient pour être pris par n'importe quel utilisateur astGUIcient sur le système. Les appels sont mis en attente jusqu'à 30 minutes puis sont raccrochés. Habituellement activé pour tous. + +
+
+
+ Vérification de mise à jour - Mettre à true pour afficher une popup avertissant que le temps de mise à jour n'a pas changé en 20 secondes. Utile pour les administrateurs. + +
+
+
+ Log des AF - Mettre à true pour logguer les actions de astGUIclient dans un fichier texte sur l'ordinateur de l'utilisateur. + +
+
+
+ Activer la queue - Mettre à true pour que les applications clientes utilisent le systeme central de queue d'asterisk. Requis pour VICIDIAL et recommandé pour tout les utilisateurs. + +
+
+
+ Popup sur le CallerID - Mettre à true pour autoriser, pour les numéros définis dans le fichier extensions.conf, à afficher des popup concernat le CallerID aux utilisateurs d'astGUIclient. + +
+
+
+ Bouton de boîte vocale - Mettre à true pour afficher le bouton VOICEMAIL et le nombre de messages dans astGUIclient. + +
+
+
+ Rafraichissement rapide - Mettre à true pour activer un nouveau taux de rafraichissement de l'information dans astGUIclient. Par défaut ce taux est de 1000ms, 1 seconde. Si vous diminuez ce taux cela peu augmenter la charge système. + +
+
+
+ Taux de rafraichissement rapide - en millisecondes. Utiliser seulement si le rafraichissement rapide est activé. Par défaut le taux est de 1000ms , 1 seconde. La diminution de ce taux peux augmenter la charge système. + +
+
+
+ MySQL persistant -<\/B> Si activé, alors la connection à MYSQL sera maintenue au lieu d'être reconnectée chaque seconde. Utile si vous avez un taux de rafraichissement rapide. Cela va augmenter le nombre de connections au seveur MYSQL. + +
+
+
+ Appel automatique du numéro suivant - Si activé, le client VICIDIAL appelera automatiquement le numéro suivant dans la liste selon la disposition d'un appel à moins qu'ils aient choisi "Stop Dialing" sur l'écran de disposition. + +
+
+
+ Stoper l'enregistrement après chaque appel - Si activé, le client VICIDIAL stopera chaque enregistrement à la fin de l'appel. Utile si vous faites beaucoup d'enregistrements et si vous utiliser un formulaire web pour déclancher l'enregistrement. + +
+
+
+ Activer les messages SIPSAK - Si activé alors le serveur enverra des messages au téléphone SIP à afficher sur l'écran du téléphone quand il est connecté à VICIDIAL. Cette fonction ne fonctionne seulement avec les téléphones SIP et nécessite que sipsak soit installé sur le serveur web. La valeur par défaut est 0. + +
+
+
+ Serveur DBX - Le serveur de la base de données MYSQL auquel cette utilisateur se connecte. + +
+
+
+ Base de données DBX - Base de données à laquelle cet utilisateur ce connecte. La valeur par défault est asterisk. + +
+
+
+ Utilisateur DBX - Login utilisateur de la base de données utilisé pour la connection. La valeur par défaut est cron. + +
+
+
+ Mot de passe DBX - Mot de pass de la connetion MYSLQ. La valeur par défaut est 1234. + +
+
+
+ Port DBX - Port de la connection à la base de données. La valeur par défaut est 3306. + +
+
+
+ Serveur DBY - Le serveur de base de données auquel cet utilisateur ce connecte. Secondaireserver, pas utilisé actuellement. + +
+
+
+ Base de données DBY - La base de données MYSQL à laquelle cette utilisateur se connecte. La valeur par défaut est asterisk. Secondaireserver, pas utilisé actuellement. + +
+
+
+ Utilisateur DBY - Login utilisateur avec lequel cet utilisateur ce connecte à la base de données. La valeur par défaut est cron. Secondaireserver, pas utilisé actuellement. + +
+
+
+ Mot de passe DBY - Mot de passe avec lequel cet utilisateur ce connecte à MYSQL. La valeur par defaut est 1234. Secondaireserver, pas utilisé actuellement. + +
+
+
+ DBY port - Port TCP de la connection MYSQL utilisée par cet utilisateur. La valeur par défaut est 3306. Secondaireserver, pas utilisé actuellement. + +
+
+
+ Alias ID - L'ID de l'alias utilisé pour permettre les connexions de téléphone à équilibrage de charge. pas d'espaces ou autres caractères spéciaux autorisés. Doit être compris entre 2 et 20 caractères de longueur. + +
+
+
+ Alias Nom - Le nom utilisé pour désigner un téléphone alias, doit être compris entre 2 et 50 caractères de longueur. + +
+
+
+ Téléphones Connexions List - La virgule sépare la liste de téléphone de connexion utilisé lors d'un agent se connecte par téléphone pour équilibrer la charge de connexion. L'agent se trouve l'application serveur actif avec le moins d'agents et connecté à un appel à ce serveur à l'agent au moment de la connexion. + +
+
+
+ Template ID - C'est le fichier de conf ID que ce modèle de téléphone utilisé pour la saisie des paramètres de son Asterisk. La valeur par défaut est - ABSENCE --. + +
+
+
+ Conf Override Settings - If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Alias Groupe ID - L'ID du groupe alias utilisés par les agents de composer les appels de l'agent VICIDIAL interface avec différents Caller ID. pas d'espaces ou autres caractères spéciaux autorisés. Doit être compris entre 2 et 20 caractères de longueur. + +
+
+
+ Nom du groupe Alias - Le nom utilisé pour décrire un groupe d'emprunt, doit être compris entre 2 et 50 caractères de longueur. + +
+
+
+ Numéro d'identification de l'appelant - Le numéro d'identification de l'appelant utilisée dans ce groupe Alias. Chiffres doivent être. + +
+
+
+ Nom d'identification de l'appelant - Le nom d'identification de l'appelant qui peut être envoyé à ce groupe Alias. Pour autant que nous sachions ce qui ne fera que travailler au Canada sur les circuits PRI et l'utilisation d'un tronc IAX boucle par Asterisk. + + + + +



+ + TABLE DES SERVEURS

+
+
+ ID du Sevreur - C'est ici que vous mettez le nom du serveur Asterisk, il n'est pas obligatoire de mettre le sous dommaine, juste un nom pour identifier le seveur pour les administrateurs. + +
+
+
+ Descritpion du serveur - Petite description du serveur asterisk. + +
+
+
+ Adresse IP du serveur - Le champs dans lequel vous mettez l'adresse IP du serveur Asterisk. + +
+
+
+ Actif - Mettre si le serveur Asterisk est actif ou non. + +
+
+
+ Système de charge - Ces deux statistiques montrent loadavg la fois d'un système 100 et le pourcentage d'utilisation CPU du serveur et est mis à jour chaque minute. Le loadavg devrait être en moyenne inférieure à 100 multiplié par le nombre de noyaux de CPU de votre système a, pour des performances optimales. Le pourcentage d'utilisation CPU devrait rester en dessous de 50 pour une performance optimale. + +
+
+
+ Live Chaînes - Ce champ indique le nombre actuel d'Asterisk canaux qui sont en direct sur le système dès maintenant. Il est important de noter que le nombre de canaux Asterisk est habituellement beaucoup plus élevé que le nombre d'appels sur un système. Ce champ est mis à jour une fois chaque minute. + +
+
+
+ Disk Usage - Ce champ montre l'utilisation du disque pour chaque partition sur ce serveur. Ce champ est mis à jour une fois chaque minute. + +
+
+
+ Version d'Asterisk - Mettre la version d'asterisk que vous avez installé sur ce serveur. Examples: ' 1.2 ', ' 1.0.8 ', ' 1.0.7 ', 'CVS_HEAD', 'REALLY OLD', etc... Ceci est utilisé car les versions 1.0.8 et 1.0.9 ont une methode differente pour gérer les canaux Local/, un bug qui a été fixé dans le CVS v1.0, et qui nescessite d'être traité differement quand les canaux Local/ sont manipulés. Aussi, la version courante CVS_HEAD et l'arbre 1.2 utilisent des managers et des commandes différentes, qui doivent donc être traités différemment.. + +
+
+
+ Nombre maximum de trunks VICIDIAL - Ce champ détermine le nombre maximum de lignes que l'appel automatique de VICIDIAL essayera d'appeler sur ce serveur. Si vous voulez consacrer pleinement deux PRI T1s à VICIDIAL sur un serveur vous devriez mettre ce champ à 46. La valeur par defaut est 96. + +
+
+
+ Max demande par seconde - Ce paramètre détermine le nombre maximum d'appels qui peuvent être mis par la sortie d'auto-script d'appel sur ce serveur par seconde. Doit être de 1 à 100. La valeur par défaut est 20. + +
+
+
+ Hôte telnet - C'est l'adresse ou le nom du serveur Asterisk et c'est comme cela que les applications managers se connectent au sevreur quand elle sont lancées. Si les applications managers sont lancées sur le serveur Asterisk, alors la valeur par defaut 'localhost' fonctionne bien . + +
+
+
+ Port telnet - C'est le port de connection au manager du serveur Asterisk c'est par ceului-ci que les applications managers se connectent. La valeur par defaut '5038' fonctionne bien avec une installation standard. + +
+
+
+ Utilisateur du manager - C'est l'utilisateur utilisé pour la connection au manager Asterisk. La valeur par défaut est 'cron' + +
+
+
+ Mot de passe du manager - Le secret ou mot de passe utilisé pour ce connecter au manager Asterisk. La valeur par defaut est '1234' + +
+
+
+ Utilisateur du manager pour les mises à jour - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts de mise à jour. La valeur par defaut est 'updatecron' et a le même secret que l'utilisateur générique. + +
+
+
+ Utilisateur du manager pour l'écoute - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts qui écoutent la sortie seulement. La valeur par défaut est 'listencron' et a le même secret que l'utilisateur générique. + +
+
+
+ Utilisateur du manager pour l'envoi - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts qui envoient des actions au manager. La valeur par défaut est 'sendcron' et a le même secret que l'utilisateur générique. + +
+
+
+ Conf dossier secret - C-est le secret ou mot de passe, pour le serveur dans l-auto-généré IAX fichier de conf pour ce serveur sur d-autres serveurs. La limite est de 20 caractères alphanumériques tiret de soulignement et acceptée. Par défaut est test. + +
+
+
+ Décalage GMT du serveur -La difference en heure par rapport à l'heure GMT non ajustée pour Les Daylight-Savings-Time du serveur. Par defaut '-5' + +
+
+
+ Exten VMail Dump - Le prefix de l'extention utilisé sur ce serveur pour lancer des appels directement depuis agc vers une boite vocale spécifique. La valeur par defaut est '85026666666666' + +
+
+
+ Extension de VICIDIAL AD - L'extension par défaut si personne n'est présent dans la campagne qui permet de lancer des appels pour l'appel automatique de VICIDIAL. La valeur par defaut est '8365' + +
+
+
+ Contexte par défaut - Le contexte par defaut utilisé par les scripts qui opèrent sur ce serveur. La valeur par défaut est 'default' + +
+
+
+ Performances du système - Mettre cette option à Y permet de loger les statistiques des performances du système, incluant la charge du système, les processus et les canaux Asterisk utilisés. La valeur par défaut est N. + +
+
+
+ Logs du serveur - Mettre cette option à Y permet de loger tous les scripts liés à Asterisk dans leurs fichiers textes de log. Mettre cette option à N arrête le logs dans les fichiers pour ces processus, et de ce fait désactive l'écran de log de Asterisk si cette option est à N quand Asterisk démarre. La valeur par défaut est Y. + +
+
+
+ Sortie des scripts AGI - Mettre cette option à NONE désactive toutes les sorties des scripts AGI de VICIDIAL. La mettre à STDERR enverra les sorties des scripts AGI à la CLI Asterisk. Mettre cette option à FILE enverra les sorties dans un fichiers dans le répertoire des logs. Mettre cette option à BOTH enverra les sorties à la fois vers la CLI Asterisk et dans le fichier de log. La valeur par défaut est FILE. + +
+
+
+ Appel équilibré VICIDIAL -<\/B> Définir ce champ à Y permettra au serveur de placer des appels équilibrés pour les campagnes dans VICIDIAL de sorte que le niveau d'appel défini puisse être atteint même s'il n'y a aucun agent connecté dans cette campagne sur ce serveur. La valeur par défaut est N. + +
+
+
+ VICIDIAL Solde Rank - Ce champ vous permet de définir l-ordre dans lequel ce serveur doit être utilisé pour la composition à l-équilibre, si vous appelez l-équilibre est activé. Le serveur avec le plus haut rang sera utilisé en premier dans le placement de la balance remplir appels. Par défaut est 0. + +
+
+
+ Limite de l'équilibrage VICIDIAL -<\/B> Cette option définit le nombre de trunks à ne pas utiliser pour l'équilibrage des appels VICIDIAL. Par exemple si vous avez 40 trunks vicidial et la limite d'équilibrage VICIDIAL définie à 10 vous ne pourrez utiliser que 30 trunks pour l'équilibrage VICIDIAL. La valeur par défaut est 0. + +
+
+
+ Enregistrement Web Link - Ce paramètre permet d'outrepasser les paramètres par défaut de l'affichage de l'enregistrement de lien dans l'admin des pages web. La valeur par défaut est SERVER_IP. + +
+
+
+ Autre enregistrement IP du serveur - Ce paramètre est l'endroit où vous pouvez mettre une IP de serveur de nom de machine ou d'autres qui peuvent être utilisés à la place de la server_ip dans les liens d'enregistrements au sein de l'administration des pages Web. La valeur par défaut est vide. + +
+
+
+ Asterisk Active Server - Si Asterisk ne fonctionne pas sur ce serveur, ou si VICIDIAL ne devrait pas utiliser ce serveur, ou si seulement ce serveur en utilisant des scripts pour d'autres comme la trémie de chargement de script que vous souhaiteriez mettre à la N. La valeur par défaut est Y. + +
+
+
+ Active Server Agent - La définition de cette option pour empêcher que des agents N sera d-être capable de se connecter à ce serveur à travers l-écran de l-agent VICIDIAL. Ceci est très utile lorsque vous utilisez une charge de connexion de configuration du téléphone équilibrée. Par défaut est Y.. + +
+
+
+ Générer des fichiers de conf - Si vous souhaitez que le système d'auto-générer des fichiers de conf astérisque sur la base des entrées de téléphones, le transporteur et l'équilibrage de charge des entrées de configuration dans VICIDIAL puis mettre à la valeur par défaut est Y. Y. + +
+
+
+ Reconstruire les fichiers conf - Si vous voulez forcer une reconstruction de la conf Asterisk fichiers ou si l'une des entrées de porte ou les téléphones ont changé, alors ceci doit être réglé sur Y. Après la conf des fichiers ont été générés et Asterisk a été rechargée alors ce sera changée pour N. La valeur par défaut est Y. + +
+
+
+ Reconstruire la musique d-attente - Si vous voulez forcer une reconstruction de la musique sur fichiers contiennent ou si la musique sur les entrées de détenir ou des entrées de serveur ont changé, alors ceci doit être réglé sur Y. Après la musique d-attente les fichiers ont été synchronisés et rechargés alors ce sera changée à N. défaut est Y.. + +
+
+
+ Mise à jour de sons - Si vous voulez forcer une vérification des fichiers sonores sur ce serveur, et la banque centrale audio est activée d-un paramètre système, ce champ permettra aux sons de mise à jour à courir au début de la prochaine minute. Chaque fois qu-un fichier audio est téléchargé à partir de l-interface web de ce contrat est automatiquement réglé sur Y pour tous les serveurs qui ont activement Asterisk. Par défaut est n. + +
+
+
+ VICIDIAL Recording Limit - Ce champ est l-endroit où vous définissez le nombre maximal de minutes durant laquelle un enregistrement d-appel lancé par VICIDIAL peut l-être. Par défaut est de 60 minutes. + +
+
+
+ Carrier Logging Active - Ce paramètre vous permet d-enregistrer l-ensemble des codes de retour de raccrochage pour tout composant la liste des appels sortants que vous passez. Par défaut est N. + + + + + + +



+ + vicidial_conf_templates TABLE

+
+
+ Template ID - Ce champ doit être d'au moins 2 caractères et pas plus de 15 caractères, sans espaces. C'est l'identifiant qui sera utilisé pour identifier le modèle de configuration à travers le système. + +
+
+
+ Nom du modèle - C'est le nom descriptif du modèle de fichier de configuration d'entrée. + +
+
+
+ Template Sommaire - Ce domaine est l'endroit où vous pouvez entrer dans les paramètres spécifiques pour être utilisés par tous les téléphones et / ou les transporteurs qui sont mis à utiliser ce modèle de conf. Les champs qui ne doivent PAS être inclus dans cette zone sont: le secret, accountcode, compte, nom d'utilisateur et boîte aux lettres. + + + + + +



+ + vicidial_server_carriers TABLE

+
+
+ Carrier ID - Ce champ doit être d'au moins 2 caractères et pas plus de 15 caractères, sans espaces. C'est l'identifiant qui sera utilisé pour identifier le transporteur pour cette entrée spécifique dans l'ensemble du système. + +
+
+
+ Nom du transporteur - C'est le nom descriptif de la porte d'entrée. + +
+
+
+ Carrier Description - Ceci est mis dans les commentaires des fichiers de conf asterisk-dessus du plan de numérotation et des entrées de compte. Maximum 255 caractères. + +
+
+
+ Inscription String - Ce domaine est l'endroit où vous pouvez entrer dans la chaîne exacte nécessaire dans le IAX ou SIP pour enregistrer le fichier de configuration pour le fournisseur. Facultatif mais fortement recommandé si votre opérateur permet l'enregistrement. + +
+
+
+ Template ID - Ce champ facultatif permet de choisir un modèle de fichier de conf de ce transporteur entrée. + +
+
+
+ Compte Entrée - Ce champ est utilisé si vous n'avez pas choisi un modèle à utiliser, et c'est là où vous pouvez entrer dans les paramètres du compte à utiliser pour ce transporteur. Si vous prenez en appels entrants à partir de ce transporteur tronc, vous pouvez définir le contexte = trunkinbound dans ce domaine, de sorte que vous pouvez utiliser le processus de traitement des DID dans VICIDIAL. + +
+
+
+ Protocole - Ce domaine vous permet de définir le protocole à utiliser pour le transporteur d'entrée. Actuellement, seuls SIP et IAX sont soutenus. + +
+
+
+ Globals String - Ce champ facultatif permet de définir une variable globale à utiliser pour le transporteur de la dialplan. + +
+
+
+ Entrée Dialplan - Ce champ facultatif permet de définir un ensemble de dialplan entrées à utiliser pour ce transporteur. + +
+
+
+ IP du serveur - Il s'agit du serveur que ce support est associé à enregistrer. + +
+
+
+ Active - Cela définit si le transporteur sera inclus dans l'auto-générés ou non les fichiers conf. + + + + + +



+ + TABLE DES CONFERENCES

+
+
+ Numéro de la conférence - Ce champ permet de mettre le numéro du meetme pour les conférences. Il est aussi recommandé que le numéro du meetme dans meetme.conf corresponde à ce numéro pour chaque entrée. C'est pour les conférences dans astGUIclient et est utilisé pour la fonction leave-3way-call dans VICIDIAL. + +
+
+
+ IP du serveur - C'est le menu dans lequel vous choisissez le serveur Asterisk sur lequel sera cette conférence. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_MallesTABLE

+
+
+ Les trunks du serveur VICIDIAL vous permettent de limiter les lignes sortantes qui sont utilisées sur ce serveur sur une base par-campagne. Vous avez la possibilité de reserver un nombre spécifique de lignes à utiliser par seulement une campagne aussi bien que permettre à cette campagne d'utiliser plus de lignes que celles reservées si il en reste de libre, tant que le nombre maximum de ligne utilisées par Vicidial sur ce serveur est inférieur au nombre de trunks VICIDIAL maximum défini. Avoir aucun de ces réglages permet à la campagne qui appel en premier d'avoir autant de lignes qu'elle le peut sous le nombre max de lignes VICIDIAL défini. + + + + + +



+ + SYSTEM_SETTINGS TABLE

+
+
+ Utiliser Non-Latin - Cette option vous permet d'utiliser les caractères UTF8 pour l'affichage web des scripts, et de ne pas utiliser des filtres d'expressions régulières latin-character-family ou de formater l'affichage. La valeur par défaut est 0. + +
+
+
+ Webroot éditable - Cette option vous permet de définir si les fichiers temporaires et les fichiers d'authentification doivent être placés dans le webroot sur le serveur web. La valeur par défaut est 1. + +
+
+
+ Affichage de la désactivation d'un agent VICIDIAL - Ce champ est utilisé pour selectionné quand montrer à un agent que ça session à été désactivée par le système, une action du manager ou par une mesure externe. NOT_ACTIVE désactivera l'affichage d'un message sur l'écran de l'agent. LIVE_AGENTS affichera seulement le message de désactivation quand les enregistrements vicidial_auto_calls des agents ont été modifiés, comme lors d'une déconnection forcée ou d'une déconnection de secours. + +
+
+
+ Autoriser les messages SIPSAK - Si défini à 1, cela permettra aux téléphones à fonctionner correctement, le serveur enverra des messages à afficher sur l'écran du téléphone quand il est connecté à VICIDIAL. Cette fonction fonctionne seulement avec des téléphones SIP et nécessite que sipsak soit installé sur le serveur web. La valeur par défaut est 0. + +
+
+
+ Agent API Active - Si définie à 1, cela permet à l'agent d'interface API pour fonctionner. La valeur par défaut est 0. + +
+
+
+ URL de l'acceuil de l'administration - C'est l'URL ou l'adresse du site web ou vous voulez aller quand vous cliquez sur le lien ACCUEIL en haut de la page admin.php. + +
+
+
+ Permettez le fichier journal de transfert d'agent - cette optionnotera à un fichier journal des textes sur le webserver chaque foisqu'un appel est transféré à un agent. Le défaut est 0,neutralisé. + +
+
+
+ Horloge en temps Fin de la journée - Ce paramètre définit lorsque tous les utilisateurs sont automatiquement déconnecté du système timeclock. Fonctionne uniquement une fois par jour. ne doit être que 4 chiffres et 2 chiffres heures à 2 chiffres dans les minutes de 24 heures. La valeur par défaut est 0000. + +
+
+
+ Dernière timeclock Auto Déconnection - Ce champ affiche la date de la dernière auto-logout. + +
+
+
+ Agent Header Screen Format Date - Ce menu vous permet de choisir le format de la date qui apparaît en haut de l'écran VICIDIAL agent. Les options de ce paramètre sont les suivants: valeur par défaut est MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Par défaut avec le format de la date année mois jour suivie par 24 heures,
+ US_SLASH_24HR 06/24/2008 23:59:59 - Etats-Unis avec le format de la date mois jour année suivie par 24 heures,
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Européen de format de date avec jour mois année suivie par 24 heures,
+ AL_TEXT_24HR JUN 24 23:59:59 - Texte de format de date avec abrégée mois jour suivie par 24 heures,
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Par défaut avec le format de la date année mois jour , suivies de 12 heures
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - Etats-Unis avec le format de la date mois jour année , suivies de 12 heures
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Européen de format de date avec jour mois année , suivies de 12 heures
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Texte de format de date avec abrégée mois jour , suivies de 12 heures
+ +
+
+
+ Agent client Screen Format Date - Ce menu vous permet de choisir le format de la date du fuseau horaire client qui apparaît en haut de la section d'information à la clientèle agent VICIDIAL de l'écran. Les options pour ce paramètre sont les suivants: valeur par défaut est AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Par défaut avec le format de la date année mois jour suivie par 24 heures,
+ US_SLASH_24HR 06/24/2008 23:59:59 - Etats-Unis avec le format de la date mois jour année suivie par 24 heures,
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Européen de format de date avec jour mois année suivie par 24 heures,
+ AL_TEXT_24HR JUN 24 23:59:59 - Texte de format de date avec abrégée mois jour suivie par 24 heures,
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Par défaut avec le format de la date année mois jour , suivies de 12 heures
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - Etats-Unis avec le format de la date mois jour année , suivies de 12 heures
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Européen de format de date avec jour mois année , suivies de 12 heures
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Texte de format de date avec abrégée mois jour , suivies de 12 heures
+ +
+
+
+ Agent Client Téléphone Screen Format - Ce menu vous permet de choisir le format du client le numéro de téléphone qui apparaît dans la section du statut de la VICIDIAL agent écran. Les options pour ce paramètre sont les suivants: valeur par défaut est US_PARN
+ US_DASH 000-000-0000 - USA tableau de bord séparés numéro de téléphone
+ US_PARN (000)000-0000 - USA Numéro de tableau de bord séparés avec le code régional entre parenthèses
+ MS_NODS 0000000000 - Pas de formatage
+ UK_DASH 00 0000-0000 - UK tableau de bord séparés numéro de téléphone avec l'espace après le code de ville
+ AU_SPAC 000 000 000 - Australia espace séparé numéro de téléphone
+ IT_DASH 0000-000-000 - Italy tableau de bord séparés numéro de téléphone
+ FR_SPAC 00 00 00 00 00 - France espace séparé numéro de téléphone
+ +
+
+
+ Agent interface API Access Active - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Agent Only Lock Campagne de rappel - Cette option définit si rappels AGENTONLY sont enfermés à la campagne que l-agent a initialement créé sous. Mettre ce paramètre à 1 signifie que l-agent ne peut les composer dans la campagne, ils ont été définies sous, 0 signifie que l-agent peut y accéder quel que campagne, ils sont connecté. Par défaut est 1. + +
+
+
+ Central Sound Control Active - Cette option définit si le système de synchronisation sonore est actif sur tous les serveurs. Par défaut est 0 pour inactif. + +
+
+
+ Sounds Web Server - C-est le nom du serveur ou l-adresse IP du serveur Web qui sera la manipulation des fichiers sonores sur ce système, cela doit correspondre le nom du serveur ou adresse IP de la machine que vous essayez d-accéder à la page Web audio_store.php sur ou ça ne marchera pas . Par défaut est 127.0.0.1. + +
+
+
+ Sounds Web Directory - Cette auto-générés nom du répertoire est créé au hasard par le système comme étant le lieu que le magasin audio seront conservés. Tous les fichiers audio se trouver dans ce répertoire. + +
+
+
+ Active Server Boîte vocale - Dans les systèmes multi-serveur, c-est le serveur qui va gérer toutes les boîtes de messagerie vocale. Ce serveur est également lorsque le dial-in générée invites seront téléchargées à partir, le 8168 enregistrements. + +
+
+
+ Auto-Outbound Dial Active - Cette option vous permet d'activer ou désactiver la numérotation automatique sortants dans VICIDIAL, la mise en ce domaine à 0 supprime les listes et FILTRES sections et de nombreux champs de la campagne Modification écrans. Manuel de l'entrée de numérotation sera encore autorisée au sein de l'agent de l'écran, mais pas de liste d'appel ne sera possible. La valeur par défaut est 1 pour les actifs. + +
+
+
+ Ratio Dial Limit - C-est la limite maximale du niveau automatique ligne dans l-écran de campagne. + +
+
+
+ Max REMPLISSAGE demande par seconde - Ce paramètre détermine le nombre maximum d'appels qui peuvent être placés par les auto-FILL sortie d'auto-script de numérotation pour tous les serveurs, par seconde. Doit être de 1 à 200. La valeur par défaut est 40. + +
+
+
+ Permettant de personnaliser le plan d-appel Entrées - Cette option vous permet de saisir des lignes sur mesure plan de numérotation dans CALL Menus. Par défaut est 0 pour inactif. + +
+
+
+ Territoires utilisateur Active - Ce paramètre vous permet d-activer les Territoires utilisateur setttings de l-écran de modification de l-utilisateur. Cette fonctionnalité a été ajoutée afin de permettre une plus grande intégration avec une installation personnalisée Vtiger mais peut avoir des applications dans un système VICIDIAL purs ainsi. Par défaut est 0 pour les handicapés. + +
+
+
+ Activer Webform Deuxième - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Activer TTS Intégration - Ce paramètre vous permet d-activer l-intégration Text To Speech avec Cepstral. Ce n-est actuellement disponible pour les campagnes Enquête sortants type. Par défaut est 0 pour les handicapés. + +
+
+
+ Caractéristiques QC Active - Cette option vous permet d'activer ou désactiver le contrôle de la qualité ou QC fonctionnalités. La valeur par défaut est 0 pour les inactifs. + +
+
+
+ Activer le log des QueueMetrics - Cette option vous permet de définir si VICIDIAL va insérer les données des logs dans la table queue_log comme le fait Asterisk. QueueMetrics est un programme d'analyse de statistiques autonome et non open-source. Vous devez avoir installé et configuré QueueMetrics pour activer cette option. La valeur par défaut est 0. + +
+
+
+ IP du serveur QueueMetrics - C'est l'adresse IP de la base de données pour votre installation de QueueMetrics. + +
+
+
+ Nom de la base de données de QueueMetrics - C'est le nom de la base de données de QueueMetrics. + +
+
+
+ Login de la base de données de QueueMetrics - C'est le login utilisé pour se connecter à la base de données QueueMetrics. + +
+
+
+ Mot de passe de la base de données de QueueMetrics - C'est le mot de passe utilisé pour se connecter à la base de données QueueMetrics. + +
+
+
+ URL de QueueMetrics - C'est l'URL ou l'adresse du site web utilisé pour atteindre QueueMetrics. + +
+
+
+ Identifiant des log de QueueMetrics - C'est l'identifiant du serveur que tout les logs VICIDIAL dans la base de données de QueueMetrics vont utiliser pour chaque enregistrement. + +
+
+
+ QueueMetrics EnterQueue Prepend -<\/B> Ce champ est utilisé pour autorisé à ajouter un des champs des données de vicidial_list devant le numéro de téléphone du client pour personnaliser les rapports QueueMetrics. La valeur par défaut est NONE pour ne pas peupler n'importe quoi. + +
+
+
+ Activer Vtiger Integration - Ce paramètre vous permet d'activer l'intégration avec Vtiger VICIDIAL. Actuellement, des liens vers Vtiger admin et de recherche ainsi que l'utilisateur de réplication sont les seules fonctions d'intégration disponibles. La valeur par défaut est 0. + +
+
+
+ Vtiger DB IP du serveur - Il s'agit de l'adresse IP de la base de données de votre installation Vtiger. + +
+
+
+ Vtiger Database Name - C'est le nom de base de données de votre base de données Vtiger. + +
+
+
+ Vtiger Database Login - C'est le nom d'utilisateur utilisé pour vous connecter à votre base de données Vtiger. + +
+
+
+ Vtiger Database Password - Il s'agit du mot de passe utilisé pour vous connecter à votre base de données Vtiger. + +
+
+
+ Vtiger Web - Il s'agit de l'URL ou adresse du site Web utilisé pour accéder à votre installation Vtiger. + + +



+ + VICIDIAL_STATUSES TABLE

+
+
+ Par l'utilisation des statuts de système, vous pouvez avoir desstatuts qui existent pour la campagne et le dans-groupe. Le statutdoit être 1-6 caractères de longueur, la description doit être 2-30caractères de longueur et sélectionnable définit si elle apparaîtdans VICIDIAL comme disposition d'agent. Human_answered le champ estemployé en calculant le pourcentage de baisse, ou le taux d'abandon.L'arrangement human_answered à Y emploiera ce statut en comptant lesappels humain-répondus. L'option de catégorie vous permet de grouperplusieurs statuts dans un catogy qui peut être employé pourl'analyse statistique. Il ya également 5 autres paramètres qui définiront le type de statut: vente, DNC, contact client, pas intéressé, impossible. + + + +



+ + VICIDIAL_STATUS_CATEGORIES TABLE

+
+
+ Par l'utilisation des catégories de statut de système, vous pouvezgrouper ensemble des statuts pour tenir compte de l'analysestatistique sur un groupe de statuts. L'identification de catégoriedoit être 2-20 caractères de longueur sans les espaces, le nom doitêtre 2-50 caractères de longueur, la description est facultative etl'affichage de TimeonVDAD définit si ce statut sera un de jusqu'à 4statuts qui peuvent être calculés et montrés le temps sur lerapport de temps réel de VDAD. La vente et la catégorie Dead Lead Catégorie sont tous deux utilisés par le système de liste de suggestions lors de l'analyse de la liste des statistiques. + + + 0) + { + ?> +



+ + VICIDIAL QC ÉTAT DES CODES

+
+
+ Le contrôle de la qualité au sein du système-QC VICIDIAL a son propre ensemble de codes distincts de ceux dans le traitement des appels de fonctions VICIDIAL. QC statuse codes doit être comprise entre 2 et 8 caractères et ne contiennent pas de caractères spéciaux, comme un espace ou du côlon. Le code de statut QC description doit être comprise entre 2 et 30 caractères. + + + + +







+







+ LA FIN +
+ \n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') + { + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } + } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Montrer le nombre de fiches désactivées -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "LISTES: $camp_lists
\n"; + echo "STATUSES: $dial_statuses
\n"; + echo "FILTER: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=7111111 view sample script with test variables +###################### + +if ($ADD==7111111) + { + ##### TEST VARIABLES ##### + $vendor_lead_code = 'VENDOR:LEAD;CODE'; + $list_id = 'LISTID'; + $gmt_offset_now = 'GMTOFFSET'; + $phone_code = '1'; + $phone_number = '7275551212'; + $title = 'Mr.'; + $first_name = 'JOHN'; + $middle_initial = 'Q'; + $last_name = 'PUBLIC'; + $address1 = '1234 Main St.'; + $address2 = 'Apt. 3'; + $address3 = 'ADDRESS3'; + $city = 'CHICAGO'; + $state = 'IL'; + $province = 'PROVINCE'; + $postal_code = '33760'; + $country_code = 'USA'; + $gender = 'M'; + $date_of_birth = '1970-01-01'; + $alt_phone = '3125551111'; + $email = 'test@test.com'; + $security_phrase = 'SECUTIRY'; + $comments = 'COMMENTS FIELD'; + $RGfullname = 'JOE AGENT'; + $RGuser = '6666'; + $RGlead_id = '1234'; + $RGcampaign = 'TESTCAMP'; + $RGphone_login = 'gs102'; + $RGgroup = 'TESTCAMP'; + $RGchannel_group = 'TESTCAMP'; + $RGSQLdate = date("Y-m-d H:i:s"); + $RGepoch = date("U"); + $RGuniqueid = '1163095830.4136'; + $RGcustomer_zap_channel = 'Zap/1-1'; + $RGserver_ip = '10.10.10.15'; + $RGSIPexten = 'SIP/gs102'; + $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; + + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_text = stripslashes($row[3]); + + if (eregi("iframe src",$script_text)) + { + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address2); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $RGfullname = eregi_replace(' ','+',$RGfullname); + $RGuser = eregi_replace(' ','+',$RGuser); + $RGlead_id = eregi_replace(' ','+',$RGlead_id); + $RGcampaign = eregi_replace(' ','+',$RGcampaign); + $RGphone_login = eregi_replace(' ','+',$RGphone_login); + $RGgroup = eregi_replace(' ','+',$RGgroup); + $RGchannel_group = eregi_replace(' ','+',$RGchannel_group); + $RGSQLdate = eregi_replace(' ','+',$RGSQLdate); + $RGepoch = eregi_replace(' ','+',$RGepoch); + $RGuniqueid = eregi_replace(' ','+',$RGuniqueid); + $RGcustomer_zap_channel = eregi_replace(' ','+',$RGcustomer_zap_channel); + $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); + $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); + $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + + $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); + $script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); + $script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); + $script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); + $script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); + $script_text = eregi_replace('--A--title--B--',"$title",$script_text); + $script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); + $script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); + $script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); + $script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); + $script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); + $script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); + $script_text = eregi_replace('--A--city--B--',"$city",$script_text); + $script_text = eregi_replace('--A--state--B--',"$state",$script_text); + $script_text = eregi_replace('--A--province--B--',"$province",$script_text); + $script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); + $script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); + $script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); + $script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); + $script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); + $script_text = eregi_replace('--A--email--B--',"$email",$script_text); + $script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); + $script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); + $script_text = eregi_replace('--A--fullname--B--',"$RGfullname",$script_text); + $script_text = eregi_replace('--A--fronter--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--user--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--lead_id--B--',"$RGlead_id",$script_text); + $script_text = eregi_replace('--A--campaign--B--',"$RGcampaign",$script_text); + $script_text = eregi_replace('--A--phone_login--B--',"$RGphone_login",$script_text); + $script_text = eregi_replace('--A--group--B--',"$RGgroup",$script_text); + $script_text = eregi_replace('--A--channel_group--B--',"$RGchannel_group",$script_text); + $script_text = eregi_replace('--A--SQLdate--B--',"$RGSQLdate",$script_text); + $script_text = eregi_replace('--A--epoch--B--',"$RGepoch",$script_text); + $script_text = eregi_replace('--A--uniqueid--B--',"$RGuniqueid",$script_text); + $script_text = eregi_replace('--A--customer_zap_channel--B--',"$RGcustomer_zap_channel",$script_text); + $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); + $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); + $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); + $script_text = eregi_replace("\n","
",$script_text); + + + echo ""; + + echo "Prévisualisation du script: $script_id
\n"; + echo "
\n"; + echo "
$script_name
\n"; + echo "$script_text\n"; + echo "
\n"; + + echo "\n"; + + exit; + } + + +$ADMIN=$PHP_SELF; +require("admin_header.php"); + + + + + +###################################################################################################### +###################################################################################################### +####### 1 series, ADD NEW forms for inserting new records into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=1 display the ADD NEW USER FORM SCREEN +###################### + +if ($ADD=="1") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AJOUTEZ UN NOUVEL UTILISATEUR
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "
Numéro d'utilisateur : Auto-Generated $NWB#vicidial_users-user$NWE
Numéro d'utilisateur : $NWB#vicidial_users-user$NWE
Mot de passe:$NWB#vicidial_users-pass$NWE
Nom complet: $NWB#vicidial_users-full_name$NWE
Niveau de l'utilisateur: $NWB#vicidial_users-user_level$NWE
Groupe utilisateur:
Login du téléphone: $NWB#vicidial_users-phone_login$NWE
Mot de passe du téléphone: $NWB#vicidial_users-phone_pass$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1A display the COPY USER FORM SCREEN +###################### + +if ($ADD=="1A") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
UTILISATEUR DE COPY\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($LOGuser_level==9) {$levelMAX=10;} + else {$levelMAX=$LOGuser_level;} + + echo "\n"; + echo "\n"; + echo "
Numéro d'utilisateur : Auto-Generated $NWB#vicidial_users-user$NWE
Numéro d'utilisateur : $NWB#vicidial_users-user$NWE
Mot de passe:$NWB#vicidial_users-pass$NWE
Nom complet: $NWB#vicidial_users-full_name$NWE
Source Utilisateur: $NWB#vicidial_users-user$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=11 display the ADD NEW CAMPAIGN FORM SCREEN +###################### + +if ($ADD==11) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AJOUTER UNE NOUVELLE CAMPAGNE\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
ID de la campagne: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID de la campagne: $NWB#vicidial_campaigns-campaign_id$NWE
Nom de la campagne: $NWB#vicidial_campaigns-campaign_name$NWE
Description de la campagne: $NWB#vicidial_campaigns-campaign_description$NWE
Actif: $NWB#vicidial_campaigns-active$NWE
Extension du parc: $NWB#vicidial_campaigns-park_ext$NWE
Nom du fichier de mise en attente: $NWB#vicidial_campaigns-park_file_name$NWE
Formulaire Web: $NWB#vicidial_campaigns-web_form_address$NWE
Autoriser les closers: $NWB#vicidial_campaigns-allow_closers$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Appeler l'agent suivant : $NWB#vicidial_campaigns-next_agent_call$NWE
Heure d'appel locale: $NWB#vicidial_campaigns-local_call_time$NWE
Boîte vocale: $NWB#vicidial_campaigns-voicemail_ext$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Lancer l'appel: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=12 display the COPY CAMPAIGN FORM SCREEN +###################### + +if ($ADD==12) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
CopieUne CAMPAGNE\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
ID de la campagne: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID de la campagne: $NWB#vicidial_campaigns-campaign_id$NWE
Nom de la campagne: $NWB#vicidial_campaigns-campaign_name$NWE
Campagne De Source :$NWB#vicidial_campaigns-campaign_id$NWE
NOTE: Copie d'une campagne vous permettra de copier tous les paramètres de campagne, le capitaine que vous sélectionnez, mais il ne sera pas copier une campagne spécifique DNC liste s'il y en a un sur le maître, sélectionnez la campagne.
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=111 display the ADD NEW LIST FORM SCREEN +###################### + +if ($ADD==111) + { + if ($LOGmodify_lists==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD A NEW LIST\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID de la liste: Auto-Generated $NWB#vicidial_lists-list_id$NWE
ID de la liste: (chiffres seulement)$NWB#vicidial_lists-list_id$NWE
Nom de la liste: $NWB#vicidial_lists-list_name$NWE
Description de la liste: $NWB#vicidial_lists-list_description$NWE
Campagne: $NWB#vicidial_lists-campaign_id$NWE
Actif: $NWB#vicidial_lists-active$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=121 display the ADD NUMBER TO DNC FORM SCREEN and add a new number +###################### + +if ($ADD==121) + { + echo "
\n"; + echo ""; + + $campaigns_list = "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where use_campaign_dnc IN('Y','AREACODE') order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + if (strlen($phone_numbers) > 2) + { + $PN = explode("\n",$phone_numbers); + $PNct = count($PN); + $p=0; + while ($p < $PNct) + { + if ( (ereg('delete',$stage)) and ($LOGdelete_from_dnc > 0) ) + { + ##### BEGIN DELETE FROM DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC pas supprimé - Ce numéro de téléphone n-est pas dans la Do Not Call List: $PN[$p]\n";} + else + { + $stmt="DELETE FROM vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC SUPPRIMÉ: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC pas supprimé - Ce numéro de téléphone n-est pas dans la Do Not Call List: $PN[$p] $campaign_id\n";} + else + { + $stmt="DELETE FROM vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC SUPPRIMÉ: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END DELETE FROM DNC ##### + } + else + { + ##### BEGIN ADD TO DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC NON AJOUTE - Ce numéro de téléphone est déjà dans la liste Do Not Call: $PN[$p]\n";} + else + { + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$PN[$p]');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC AJOUTE: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN AJOUTER LE NUMERO A LA LISTE DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC NON AJOUTE - Ce numéro de téléphone est déjà dans la liste Do Not Call: $PN[$p] $campaign_id\n";} + else + { + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$PN[$p]','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC AJOUTE: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN ADD NUMBER TO CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END ADD TO DNC ##### + } + $p++; + } + } + + if ($LOGdelete_from_dnc > 0) + {echo "
AJOUTER OU SUPPRIMER LES NUMEROS DE LA LISTE DNC\n";} + else + {echo "
Ajouter des numéros dans DNC LISTE\n";} + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } + echo "\n"; + echo "
List:
Numéros de téléphone:

(un numéro de téléphone par ligne seulement)
$NWB#vicidial_list-dnc$NWE
Ajouter ou Supprimer:
\n"; + } + + +###################### +# ADD=1111 display the ADD NEW INBOUND GROUP SCREEN +###################### + +if ($ADD==1111) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AJOUTER UN NOUVEAU GROUPE ENTRANT\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
ID du groupe: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID du groupe: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Nom du groupe: $NWB#vicidial_inbound_groups-group_name$NWE
Couleur du groupe: $NWB#vicidial_inbound_groups-group_color$NWE
Actif: $NWB#vicidial_inbound_groups-active$NWE
Formulaire Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Boîte vocale: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Appeler l'agent suivant : $NWB#vicidial_inbound_groups-next_agent_call$NWE
Affichage de l'enseigne: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Lancer l'appel: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1211 display the COPY INBOUND GROUP SCREEN +###################### + +if ($ADD==1211) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
GROUPE D'ARRIVÉE DE COPY\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
ID du groupe: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID du groupe: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
Nom du groupe: $NWB#vicidial_inbound_groups-group_name$NWE
Source ID du groupe: $NWB#vicidial_inbound_groups-group_id$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1311 display the ADD NEW DID SCREEN +###################### + +if ($ADD==1311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
AJOUTER UN NOUVEAU NE\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
DID Extension: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
A Description:$NWB#vicidial_inbound_dids-did_description$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1411 display the COPY DID SCREEN +###################### + +if ($ADD==1411) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
COPY DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
DID Extension: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
A Description:$NWB#vicidial_inbound_dids-did_description$NWE
Source DID:$NWB#vicidial_inbound_dids-did_pattern$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1511 display the ADD NEW CALL MENU SCREEN +###################### + +if ($ADD==1511) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
PROPOSER UN NOUVEL APPEL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menu ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Nom du menu: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPY CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menu ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Nom du menu: $NWB#vicidial_call_menu-menu_name$NWE
Menu Source: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN +###################### + +if ($ADD==11111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + echo "
AJOUTER UN NOUVEL AGENT DISTANT\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Début des ID utilisateurs: (nombres seulement, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Nombre de lignes: (nombres seulement)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP du serveur: $NWB#vicidial_remote_agents-server_ip$NWE
Extension externe: (numéro du dial plan pour atteindre les agents)$NWB#vicidial_remote_agents-conf_exten$NWE
Etat: $NWB#vicidial_remote_agents-status$NWE
Campagne: $NWB#vicidial_remote_agents-campaign_id$NWE
Groupes entrants: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=111111 display the ADD NEW USERS GROUP SCREEN +###################### + +if ($ADD==111111) + { + if ($LOGmodify_usergroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AJOUTER UN NOUVEAU GROUPE D'UTILISATEUR\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Groupe: Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Groupe: (pas d'espace ni de ponctuation)$NWB#vicidial_user_groups-user_group$NWE
Description: (Description du groupe)$NWB#vicidial_user_groups-group_name$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1111111 display the ADD NEW SCRIPT SCREEN +###################### + +if ($ADD==1111111) + { + if ($LOGmodify_scripts==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
ADD NEW SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID du script: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
ID du script: (pas d'espace ni de ponctuation)$NWB#vicidial_scripts-script_id$NWE
Nom du script: (titre du script)$NWB#vicidial_scripts-script_name$NWE
Commentaires du script: $NWB#vicidial_scripts-script_comments$NWE
Actif: $NWB#vicidial_scripts-active$NWE
Texte du script: "; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=11111111 display the ADD NEW FILTER SCREEN +###################### + +if ($ADD==11111111) + { + if ($LOGmodify_filters==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AJOUTER UN NOUVEAU FILTRE\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID du filtre:Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
ID du filtre: (pas d'espace ni de ponctuation)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nom du filtre: (courte description du filtre)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commentaires du filtre: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtre Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=111111111 display the ADD NEW CALL TIME SCREEN +###################### + +if ($ADD==111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
AJOUTER UNE NOUVELLE PERIODE D'APPELS\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
Identifiant de la période d'appels: (pas d'espace ni de ponctuation)$NWB#vicidial_call_times-call_time_id$NWE
Nom de la période d'appels: (courte description de la période d'appel)$NWB#vicidial_call_times-call_time_name$NWE
Commentaires de la période d'appels: $NWB#vicidial_call_times-call_time_comments$NWE
Les options pour l'heure et le jour apparaitront une fois que vous aurez créé la période d'appels
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1111111111 display the ADD NEW STATE CALL TIME SCREEN +###################### + +if ($ADD==1111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
AJOUTER UNE NOUVELLE PERIODE D'APPELS D'ETAT\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
Identifiant de la période d'appels d'état: (pas d'espace ni de ponctuation)$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: (pas d'espace ni de ponctuation)$NWB#vicidial_call_times-state_call_time_state$NWE
Nom de la période d'appels d'état: (courte description de la période d'appel)$NWB#vicidial_call_times-call_time_name$NWE
Commentaires de la période d'appels d'état: $NWB#vicidial_call_times-call_time_comments$NWE
Les options pour l'heure et le jour apparaitront une fois que vous aurez créé la période d'appels
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=131111111 display the ADD NEW SHIFT SCREEN +###################### + +if ($ADD==131111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW SHIFT\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift ID: (pas d'espace ni de ponctuation)$NWB#vicidial_shifts-shift_id$NWE
Shift Nom: (brève description de l'évolution)$NWB#vicidial_shifts-shift_name$NWE
Start Time Shift:\n"; + echo "   End Time Shift:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Longueur Shift: $NWB#vicidial_shifts-shift_length$NWE
Shift-Ven:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Dimanche
\n"; + echo "Lundi
\n"; + echo "Mardi
\n"; + echo "Mercredi
\n"; + echo "Jeudi
\n"; + echo "Vendredi
\n"; + echo "Samedi
\n"; + echo "
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=11111111111 display the ADD NEW PHONE SCREEN +###################### + +if ($ADD==11111111111) + { + if ($LOGast_admin_access==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AJOUTER UN NOUVEAU TELEPHONE\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Extension du téléphone: Auto-Generated $NWB#phones-extension$NWE
Extension du téléphone: $NWB#phones-extension$NWE
Nuémro dans le dial plan: (chiffres seulement)$NWB#phones-dialplan_number$NWE
Boîte vocale: (chiffres seulement)$NWB#phones-voicemail_id$NWE
CallerID sortant: (chiffres seulement)$NWB#phones-outbound_cid$NWE
Adresse IP du téléphone: (optional)$NWB#phones-phone_ip$NWE
Adresse IP de l'ordinateur: (optional)$NWB#phones-computer_ip$NWE
IP du serveur: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Mot de passe:$NWB#phones-pass$NWE
Etat: $NWB#phones-status$NWE
Compte actif: $NWB#phones-active$NWE
Type de téléphone: $NWB#phones-phone_type$NWE
Nom complet: $NWB#phones-fullname$NWE
Compagnie: $NWB#phones-company$NWE
Image: $NWB#phones-picture$NWE
Protocole client: $NWB#phones-protocol$NWE
GMT local: (Ne PAS ajuster pour DST)$NWB#phones-local_gmt$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=12111111111 display the ADD NEW PHONE ALIAS SCREEN +###################### + +if ($ADD==12111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
Ajouter un nouveau téléphone ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Alias ID:$NWB#phones-alias_id$NWE
Alias Nom: $NWB#phones-alias_name$NWE
Téléphone Connexions List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=13111111111 display the ADD NEW GROUP ALIAS SCREEN +###################### + +if ($ADD==13111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
Ajouter un nouveau groupe ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Alias Groupe ID: $NWB#phones-group_alias_id$NWE
Nom du groupe Alias: $NWB#phones-group_alias_name$NWE
Nombre CallerID: $NWB#phones-caller_id_number$NWE
CallerID Nom: $NWB#phones-caller_id_name$NWE
Actif:
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=111111111111 display the ADD NEW SERVER SCREEN +###################### + +if ($ADD==111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
AJOUTER UN NOUVEAU SERVEUR\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID du serveur: $NWB#servers-server_id$NWE
Description du serveur: $NWB#servers-server_description$NWE
Adresse IP du serveur: $NWB#servers-server_ip$NWE
Actif: $NWB#servers-active$NWE
Version d'Asterisk: $NWB#servers-asterisk_version$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=131111111111 display the ADD NEW CONF TEMPLATE SCREEN +###################### + +if ($ADD==131111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW CONF TEMPLATE\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Template ID: $NWB#vicidial_conf_templates-template_id$NWE
Nom du modèle: $NWB#vicidial_conf_templates-template_name$NWE
Template Sommaire: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=141111111111 display the ADD NEW CARRIER SCREEN +###################### + +if ($ADD==141111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW CARRIER\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Carrier ID: $NWB#vicidial_server_carriers-carrier_id$NWE
Nom du transporteur: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Description: $NWB#vicidial_server_carriers-carrier_description$NWE
Inscription à cordes: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID: $NWB#vicidial_server_carriers-template_id$NWE
Entrée de compte: $NWB#vicidial_server_carriers-account_entry$NWE
Protocole: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Entrée: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP du serveur: $NWB#vicidial_server_carriers-server_ip$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=151111111111 display the ADD NEW TTS ENTRY SCREEN +###################### + +if ($ADD==151111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW ENTRY TTS\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
TTS Nom: $NWB#vicidial_tts_prompts-tts_name$NWE
Actif:
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW MUSIC ON HOLD ENTRY\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Musique en attente d-identification: $NWB#vicidial_music_on_hold-moh_id$NWE
Musique d-attente Nom: $NWB#vicidial_music_on_hold-moh_name$NWE
Random Order:
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW messagerie vocale\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Boîte vocale ID: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Actif:
Email:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN +###################### + +if ($ADD==1111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
AJOUTER UNE NOUVELLE CONFERENCE\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Numéro de la conférence: (chiffres seulement)$NWB#conferences-conf_exten$NWE
IP du serveur: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=11111111111111 display the ADD NEW VICIDIAL CONFERENCE SCREEN +###################### + +if ($ADD==11111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
ADD A NEW VICIDIAL CONFERENCE\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Numéro de la conférence: (chiffres seulement)$NWB#conferences-conf_exten$NWE
IP du serveur: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + +###################################################################################################### +###################################################################################################### +####### 2 series, validates form data and inserts the new record into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=2 adds the new user to the system +###################### + +if ($ADD=="2") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
UTILISATEUR NON AJOUTE - il y a déjà un utilisateur dans le système avec ce numéro d'utilisateur\n";} + else + { + if (ereg('AUTOGENERA',$user)) + { + $user = 'AUTOGENERA'; + } + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + { + echo "
UTILISATEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
le nom et le mot de passe doivent contenir au moins 2 caractères\n"; + echo "
Vous devez sélectionner un groupe d-utilisateurs\n"; + } + else + { + if (ereg('AUTOGENERA',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + echo "
UTILISATEUR AJOUTE: $user\n"; + + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass) values('$user','$pass','$full_name','$user_level','$user_group','$phone_login','$phone_pass');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='ADD', record_id='$user', event_code='ADMIN ADD USER', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + } + } + + $ADD=3; + } + +###################### +# ADD=2A adds the copied new user to the system +###################### + +if ($ADD=="2A") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
UTILISATEUR NON AJOUTE - il y a déjà un utilisateur dans le système avec ce numéro d'utilisateur\n";} + else + { + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + { + echo "
UTILISATEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
le nom et le mot de passe doivent contenir au moins 2 caractères\n"; + echo "\n"; + } + else + { + if (ereg('AUTOGEN',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) SELECT \"$user\",campaign_id,campaign_rank,campaign_weight,\"0\" from vicidial_campaign_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='COPY', record_id='$user', event_code='ADMIN UTILISATEUR DE COPY', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + echo "
USER COPIED: $user copied from $source_user_id\n"; + echo "

\n"; + echo "Click here to go to the user record\n"; + echo "

\n"; + + } + } + exit; + } + +###################### +# ADD=21 adds the new campaign to the system +###################### + +if ($ADD==21) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAGNE NON AJOUTEE - il existe déjà une campagne dans le système avec cet ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + { + echo "
CAMPAGNE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; + echo "
le nom de la campagne doit contenir entre 6 et 40 caractères\n"; + } + else + { + echo "
CAMPAGNE AJOUTEE: $campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,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,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$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','$SQLdate','Y','DISABLED','','','');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=20 adds copied new campaign to the system +###################### + +if ($ADD==20) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAGNE NON AJOUTEE - il existe déjà une campagne dans le système avec cet ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
CAMPAGNE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; + echo "
source l'ID de la campagne doit contenir entre 2 et 8 caractères\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=22 adds the new campaign status to the system +###################### + +if ($ADD==22) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
STATUT DE LA CAMPAGNE NON AJOUTE - il y a déjà un statut de campagne dans le système avec ce nom\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
STATUT DE LA CAMPAGNE NON AJOUTE - il y a déjà un statut global dans le système avec ce nom\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
STATUT DE LA CAMPAGNE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 8 caractères\n"; + echo "
le nom du statut doit contenir entre 2 et 30 caractères\n"; + } + else + { + echo "
STATUT DE LA CAMPAGNE AJOUTE: $campaign_id - $status\n"; + + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $SUB=22; + $ADD=31; + } + + +###################### +# ADD=23 adds the new campaign hotkey to the system +###################### + +if ($ADD==23) + { + $HKstatus_data = explode('-----',$HKstatus); + $status = $HKstatus_data[0]; + $status_name = $HKstatus_data[1]; + + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_hotkeys where campaign_id='$campaign_id' and hotkey='$hotkey' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
RACCOURCI CLAVIER DE LA CAMPAGNE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
le statut doit contenir entre 1 et 8 caractères\n"; + } + else + { + echo "
RACOURCI CLAVIER DE LA CAMPAGNE AJOUTE: $campaign_id - $status - $hotkey\n"; + + $stmt="INSERT INTO vicidial_campaign_hotkeys values('$status','$hotkey','$status_name','$selectable','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE HOTKEY', event_sql=\"$SQL_log\", event_notes='Etat: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=23; + $ADD=31; + } + + +###################### +# ADD=25 adds the new campaign lead recycle entry to the system +###################### + +if ($ADD==25) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
RECYCLAGE DE FICHES DE LA CAMPAGNE NON AJOUTE - il y a déjà un recyclage de fiches pour cette campagne avec ce statut\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + echo "
le délai d'attente doit être au moins 120 secondes et moins de 43,200 secondes ou 12 heures\n"; + echo "
le nombre d'essais maximum doit être compris entre 1 et 10\n"; + } + else + { + echo "
RECYCLAGE DES FICHES DE LA CAMPAGNE AJOUTE: $campaign_id - $status - $attempt_delay\n"; + + $stmt="INSERT INTO vicidial_lead_recycle(campaign_id,status,attempt_delay,attempt_maximum,active) values('$campaign_id','$status','$attempt_delay','$attempt_maximum','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=25; + $ADD=31; + } + + +###################### +# ADD=26 adds the new auto alt dial status to the campaign +###################### + +if ($ADD==26) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON AJOUTE - il y a déjà un entrée pour cette campagne avec ce statut\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + } + else + { + echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF AJOUTE: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $auto_alt_dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIAL', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE ALT DIAL', event_sql=\"$SQL_log\", event_notes='Etat: $auto_alt_dial_statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=26; + $ADD=31; + } + + +###################### +# ADD=27 adds the new campaign agent pause code entry to the system +###################### + +if ($ADD==27) + { + echo ""; + $stmt="SELECT count(*) from vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CODE DE PAUSE NON AJOUTE - hay ya una entrada para esta campaña con este code\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
CODE DE PAUSE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause nom de code doit être compris entre 2 et 30 caractères\n"; + } + else + { + echo "
CODE DE PAUSE AJOUTE: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="INSERT INTO vicidial_pause_codes(campaign_id,pause_code,pause_code_name,billable) values('$campaign_id','$pause_code','$pause_code_name','$billable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Code de pause: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=27; + $ADD=31; + } + + +###################### +# ADD=28 adds new status to the campaign dial statuses +###################### + +if ($ADD==28) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
STATUT D'APPEL DE LA CAMPAGNE NON AJOUTE - il y a déjà un entrée pour cette campagne avec ce statut\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
STATUT D'APPEL DE LA CAMPAGNE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + } + else + { + echo "
STATUT D'APPEL POUR LA CAMPAGNE AJOUTE: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + #$SUB=28; + $ADD=31; + } + + +###################### +# ADD=211 adds the new list to the system +###################### + +if ($ADD==211) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
LISTE NON AJOUTEE - il y a déjà une liste avec ce nom dans le système\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + { + echo "
LISTE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la liste doit contenir entre 2 et 8 caractères\n"; + echo "
Le nom de la liste doit contenir au moins 2 caractères\n"; + echo "
ID de la liste must be greater than 100\n"; + } + else + { + echo "
LISTE AJOUTEE: $list_id\n"; + + $stmt="INSERT INTO vicidial_lists (list_id,list_name,campaign_id,active,list_description,list_changedate) values('$list_id','$list_name','$campaign_id','$active','$list_description','$SQLdate');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='ADD', record_id='$list_id', event_code='ADMIN ADD LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311; + } + + + +###################### +# ADD=2111 adds the new inbound group to the system +###################### + +if ($ADD==2111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUPE NON AJOUTE - il y a déjà un groupe dans le système avec cet identifiant\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GROUPE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID du groupe doit contenir entre 2 et 20 caractères et ne contenir aucun ' -+'.\n"; + echo "
Le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; + } + 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,web_form_address_two,start_call_url,dispo_call_url) 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); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; + $rslt=mysql_query($stmtA, $link); + + echo "
GROUPE AJOUTE: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='ADD', record_id='$group_id', event_code='ADMIN ADD ENTRANT GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2011 adds copied inbound group to the system +###################### + +if ($ADD==2011) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUPE NON AJOUTE - il y a déjà un groupe dans le système avec cet identifiant\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GROUPE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID du groupe doit contenir entre 2 et 20 caractères et ne contenir aucun ' -+'.\n"; + echo "
Le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; + } + 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,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); + + echo "
GROUPE AJOUTE: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN GROUPE D'ARRIVÉE DE COPY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2311 adds the new did to the system +###################### + +if ($ADD==2311) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NE PAS AJOUTER - il ya déjà un DID dans le système avec cette ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NE PAS AJOUTER - il ya déjà un DID dans le système avec cette extension\n";} + else + { + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + { + echo "
NE PAS AJOUTER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern $did_description - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='ADD', record_id='$did_id', event_code='ADMIN ADD DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3311; + } + + +###################### +# ADD=2411 adds copied did to the system +###################### + +if ($ADD==2411) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NE PAS AJOUTER - il ya déjà un DID dans le système avec cette extension\n";} + else + { + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + { + echo "
NE PAS AJOUTER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='COPY', record_id='$did_id', event_code='ADMIN COPY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3311; + } + + +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU SANS ADDITION - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
CALL MENU SANS ADDITION - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Appel menu ID doit être comprise entre 2 et 50 caractères de long et ne contiennent aucune ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
CALL MENU AJOUTEE: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL MENU SANS ADDITION - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
CALL MENU SANS ADDITION - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Appel menu ID doit être comprise entre 2 et 50 caractères de long et ne contiennent aucune ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CALL MENU AJOUTEE: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=21111 adds new remote agents to the system +###################### + +if ($ADD==21111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_remote_agents where server_ip='$server_ip' and user_start='$user_start';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
AGENT DISTANT NON AJOUTE - il y a déjà un agent distant avec cet identifiant\n";} + else + { + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENT DISTANT NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le début de l'ID de l'utilisateur et l'extension externe doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; + $rslt=mysql_query($stmt, $link); + + echo "
AGENT DISTANT AJOUTE: $user_start\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='ADD', record_id='$user_start', event_code='ADMIN ADD REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000; + } + +###################### +# ADD=211111 adds new user group to the system +###################### + +if ($ADD==211111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP D'UTILISATEURS NON AJOUTE - il y a déjà un groupe d'utilisateurs avec ce nom\n";} + else + { + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
GROUPE D'UTILISATEURS NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le nom et la description du groupe doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; + $rslt=mysql_query($stmt, $link); + + echo "
GROUPE D'UTILISATEURS AJOUTE: $user_group\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='ADD', record_id='$user_group', event_code='ADMIN AJOUTER UN GROUPE D'UTILISATEURS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + $ADD=100000; + } + +###################### +# ADD=2111111 adds new script to the system +###################### + +if ($ADD==2111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SCRIPT NON AJOUTE - il y a déjà un script existant avec ce nom\n";} + else + { + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
SCRIPT NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Les nom, description et texte du script doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + echo "
SCRIPT AJOUTE: $script_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPTS', event_type='ADD', record_id='$script_id', event_code='ADMIN AJOUTER UN SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=1000000; + } + + +###################### +# ADD=21111111 adds new filter to the system +###################### + +if ($ADD==21111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
FILTRE NON AJOUTE - il y a déjà un filtre avec cet identifiant\n";} + else + { + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRE NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Identifiant du filtre, le nom et le SQL doivent au moins contenir 2 caractères\n"; + } + 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='" . mysql_real_escape_string($lead_filter_sql) . "';"; + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|";} + echo "
FILTRE AJOUTE: $lead_filter_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRES', event_type='ADD', record_id='$lead_filter_id', event_code='ADMIN AJOUTER LE FILTRE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000000; + } + + +###################### +# ADD=211111111 adds new call time definition to the system +###################### + +if ($ADD==211111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DEFINITION DE LA PERIODE D'APPEL NON AJOUTEE - il existe déjà une période d'appel avec cet ID\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
DEFINITION DE LA PERIODE D'APPEL NON AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID et le nom de la période d'appel doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
PERIODE D'APPELS AJOUTEE: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111; + } + + +###################### +# ADD=2111111111 adds new state call time definition to the system +###################### + +if ($ADD==2111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DEFINITION DE LA PERIODE D'APPELS DE L'ETAT NON AJOUTE - il existe déjà une période d'appel avec cet ID\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
DEFINITION DE LA PERIODE D'APPELS DE L'ETAT NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID, le nom et l'état de l'appel doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
PERIODE D'APPELS D'ETAT AJOUTEE: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES_STATE', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111; + } + + +###################### +# ADD=231111111 adds new shift definition to the system +###################### + +if ($ADD==231111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MAJ définition pas AJOUTÉS - il ya déjà un quart d'entrée avec cette ID\n";} + else + { + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
MAJ définition pas AJOUTÉS - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Shift ID et le nom doit être d'au moins 2 caractères\n"; + echo "
Start Time Shift 4 chiffres doit être de longueur et une heure valide\n"; + echo "
Shift Longueur doit être de 5 caractères de longueur et de 24 heures ou moins\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
SHIFT AJOUTÉS:$shift_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='ADD', record_id='$shift_id', event_code='ADMIN ADD SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111; + } + + +###################### +# ADD=21111111111 adds new phone to the system +###################### + +if ($ADD==21111111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TELEPHONE NON AJOUTE - il y a déjà un téléphone dans le systéme avec cette extension/serveur\n";} + else + { + $stmt="SELECT count(*) from phones where login='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - il existe déjà un numéro de téléphone dans le système avec ce login\n";} + else + { + $stmt="SELECT count(*) from phones_alias where alias_id='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - il existe déjà un numéro de téléphone alias dans le système avec ce login\n";} + else + { + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a Boîte vocale ID in the system with this ID\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
TELEPHONE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Les champs suivants doivent avoir des données: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
TELEPHONE AJOUTE\n"; + + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + } + $ADD=31111111111; + } + + +###################### +# ADD=22111111111 adds new phone alias to the system +###################### + +if ($ADD==22111111111) + { + echo ""; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PAS DE TELEPHONE ALIAS AJOUTÉS - il existe déjà un numéro de téléphone Alias dans le système avec cette ID\n";} + else + { + $stmt="SELECT count(*) from phones where login='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PAS DE TELEPHONE ALIAS AJOUTÉS - il existe déjà un numéro de téléphone dans le système Connectez-vous avec cette ID\n";} + else + { + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
PAS DE TELEPHONE ALIAS AJOUTÉS - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
PHONE ALIAS AJOUTÉS\n"; + + $stmt="INSERT INTO phones_alias (alias_id,alias_name,logins_list) values('$alias_id','$alias_name','$logins_list');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='ADD', record_id='$alias_id', event_code='ADMIN ADD PHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=32111111111; + } + + +###################### +# ADD=23111111111 adds new group alias to the system +###################### + +if ($ADD==23111111111) + { + echo ""; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUPE ALIAS pas ajouté - il existe déjà un numéro de téléphone Alias dans le système avec cette ID\n";} + else + { + if (preg_match("/AGENT_PHONE|CUSTOMER|CAMPAIGN|NONE/",$group_alias_id)) + {echo "
GROUPE ALIAS pas ajouté - vous ne pouvez pas utiliser des mots réservés dans le groupe des alias\n";} + else + { + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
GROUPE ALIAS pas ajouté - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
GROUPE ALIAS AJOUTÉS\n"; + + $stmt="INSERT INTO groups_alias (group_alias_id,group_alias_name,caller_id_number,caller_id_name,active) values('$group_alias_id','$group_alias_name','$caller_id_number','$caller_id_name','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='ADD', record_id='$group_alias_id', event_code='ADMIN ADD GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=33111111111; + } + + +###################### +# ADD=211111111111 adds new server to the system +###################### + +if ($ADD==211111111111) + { + echo ""; + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SERVEUR NON AJOUTE - il y a déjà un serveur dans le système avec cet ID\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
SERVEUR AJOUTE\n"; + + $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='ADD', record_id='$server_id', event_code='ADMIN ADD SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111111; + } + + +###################### +# ADD=221111111111 adds the new vicidial server trunk record to the system +###################### + +if ($ADD==221111111111) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - le nombre de trunks vicidial est trop important: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - il y a déjà un trunk-serveur enregistré pour cette campagne\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
la campagne doit contenir entre 3 et 8 caractères\n"; + echo "
le délai du server_ip doit contenir au moins 7 caractères\n"; + echo "
les trunks doivent être un nombre entre 0 et 9999\n"; + } + else + { + echo "
TRUNK DU SERVEUR VICIDIAL AJOUTE: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + $stmt="INSERT INTO vicidial_server_trunks(server_ip,campaign_id,dedicated_trunks,trunk_restriction) values('$server_ip','$campaign_id','$dedicated_trunks','$trunk_restriction');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS_TRUNK', event_type='ADD', record_id='$server_ip', event_code='ADMIN ADD SERVEUR TRUNK', event_sql=\"$SQL_log\", event_notes='campaign: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=311111111111; + } + + +###################### +# ADD=231111111111 adds new conf template to the system +###################### + +if ($ADD==231111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CONF TEMPLATE pas ajouté - il existe déjà un modèle dans le système avec cette ID\n";} + else + { + if (strlen($template_id) < 2) + {echo "
CONF TEMPLATE pas ajouté - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
CONF TEMPLATE AJOUTÉS\n"; + + $stmt="INSERT INTO vicidial_conf_templates (template_id,template_name,template_contents) values('$template_id','$template_name','$template_contents');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='ADD', record_id='$template_id', event_code='ADMIN ADD CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111; + } + + +###################### +# ADD=241111111111 adds new server carrier to the system +###################### + +if ($ADD==241111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CARRIER pas ajouté - il ya déjà un transporteur dans le système avec cette ID\n";} + else + { + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + {echo "
CARRIER pas ajouté - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
CARRIER ADDED\n"; + + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='ADD', record_id='$carrier_id', event_code='ADMIN ADD CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111; + } + + +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS entrée non AJOUTEE - il existe déjà une entrée dans le système TTS avec cette ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS entrée non AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
TTS Entry Ajoutée\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
MUSIC ON HOLD entrée non AJOUTEE - il existe déjà une entrée dans le système de moh avec cette ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD entrée non AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
MUSIC ON HOLD Entry Ajoutée\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
La boîte vocale PAS AJOUTEE - il existe déjà une boîte vocale dans le système avec cette ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
La boîte vocale PAS AJOUTEE - il ya déjà un téléphone dans le système avec ce message vocal ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
La boîte vocale PAS AJOUTEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
La boîte vocale AJOUTEE\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + +###################### +# ADD=2111111111111 adds new conference to the system +###################### + +if ($ADD==2111111111111) + { + echo ""; + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CONFERENCE NON AJOUTEE - il y a déjà une conférence dans le système avec cet ID\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENCE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
CONFERENCE AJOUTEE\n"; + + $stmt="INSERT INTO conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111111; + } + + +###################### +# ADD=21111111111111 adds new vicidial conference to the system +###################### + +if ($ADD==21111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENCE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
VICIDIAL CONFERENCE AJOUTEE\n"; + + $stmt="INSERT INTO vicidial_conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=31111111111111; + } + + +###################### +# ADD=221111111111111 adds the new system status to the system +###################### + +if ($ADD==221111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
STATUT DE SYSTÈME NON SUPPLÉMENTAIRE - there is already a campaign-status in the system with this name: $row[0]\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
STATUT DE SYSTÈME NON SUPPLÉMENTAIRE - there is already a global-status in the system with this name\n";} + else + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
STATUT DE SYSTÈME NON SUPPLÉMENTAIRE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 8 caractères\n"; + echo "
le nom du statut doit contenir entre 2 et 30 caractères\n"; + } + else + { + echo "
STATUT DE SYSTÈME SUPPLÉMENTAIRE: $status_name - $status\n"; + + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='ADD', record_id='$status', event_code='ADMIN ADD SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=321111111111111; + } + + +###################### +# ADD=231111111111111 adds the new status category to the system +###################### + +if ($ADD==231111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CATÉGORIE DE STATUT NON SUPPLÉMENTAIRE - il y a déjà une catégorie de statut dans le système avec cetteidentification: $row[0]\n";} + else + { + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + { + echo "
CATÉGORIE DE STATUT NON SUPPLÉMENTAIRE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'identification doit être entre 2 et 20 caractères de longueur\n"; + echo "
le nom nommé doit être entre 2 et 50 caractères de longueur\n"; + } + else + { + echo "
STATUS CATÉGORIE ADDED: $vsc_id - $vsc_name\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
ERREUR : Il y a déjà ensemble de 4 catégories de statut àl'affichage de TimeOnVDAD\n"; + } + + $stmt="INSERT INTO vicidial_status_categories (vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category) values('$vsc_id','$vsc_name','$vsc_description','$tovdad_display','$sale_category','$dead_lead_category');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='ADD', record_id='$vsc_id', event_code='ADMIN ADD STATUS CATÉGORIE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111111; + } + + + +###################### +# ADD=241111111111111 adds the new qc status code to the system +###################### + +if ($ADD==241111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
QC CODE ÉTAT PAS AJOUTÉS- il existe déjà un code de statut qc dans le système avec ce nom: $row[0]\n";} + else + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC CODE ÉTAT PAS AJOUTÉS- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
code doit être compris entre 1 et 8 caractères\n"; + echo "
nom de code doit être compris entre 2 et 30 caractères\n"; + } + else + { + echo "
QC ÉTAT CODE AJOUTEE:$code_name - $code\n"; + + $stmt="INSERT INTO vicidial_qc_codes (code,code_name) values('$code','$code_name');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCSTATUSES', event_type='ADD', record_id='$code', event_code='ADMIN ADD QC STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111111; + } + + + +###################################################################################################### +###################################################################################################### +####### 4 series, record modifications submitted and DB is modified, then on to 3 series forms below +###################################################################################################### +###################################################################################################### + + + +###################### +# ADD=4A submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4A") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
UTILISATEUR MODIFIE - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4B submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4B") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
UTILISATEUR MODIFIE - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4 submit user modifications to the system +###################### + +if ($ADD==4) + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères\n"; + } + else + { + echo "
UTILISATEUR MODIFIE: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3; # go to user modification below + } + +###################### +# ADD=41 submit campaign modifications to the system - DETAIL +###################### + +if ($ADD==41) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $survey_camp_record_dir = '/home/survey'; + $survey_dtmf_digits = '1238'; + $survey_first_audio_file = 'US_pol_survey_hello'; + $survey_method = 'AGENT_XFER'; + $survey_ni_audio_file = ''; + $survey_ni_digit = '8'; + $survey_ni_status = 'NI'; + $survey_no_response_action = 'OPTIN'; + $survey_opt_in_audio_file = 'US_pol_survey_transfer'; + $survey_response_digit_map = '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|'; + $survey_xfer_exten = '8300'; + $voicemail_ext = ''; + $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
LISTES D'ACTIFS MODIFIES"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
CAMPAGNE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le nom de la campagne doit contenir au moins 6 caractères\n"; + echo "
|$campaign_name|$active|\n"; + } + else + { + echo "
CAMPAGNE MODIFIEE: $campaign_id\n"; + + if ( ($dial_method != 'MANUAL') and ($dial_method != 'ENTRANT_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; + } + else + { + if ($dial_level_override > 0) + { + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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', $adlSQL 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',drop_action='$drop_action',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',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + if ($reset_hopper == 'Y') + { + echo "
REINITIALISATION DU DISTRIBUTEUR DE FICHES DE LA CAMPAGNE\n"; + echo "
- Attendre 1 minute avant l'appel du numéro suivant\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=42 modify/delete campaign status in the system +###################### + +if ($ADD==42) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
STAUT DE LA CAMPAGNE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la campagne doit contenir au moins 2 caractères\n"; + echo "
Le statut de la campagne doit contenir au moins 1 caractère\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
STATUT PERSONNALISE DE LA CAMPAGNE SUPPRIME: $campaign_id - $status\n"; + + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
LE STATUT FAIT SUR COMMANDE DE CAMPAGNE A MODIFIÉ: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=43 delete campaign hotkey in the system +###################### + +if ($ADD==43) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
RACCOURCI CLAVIER DE LA CAMPAGNE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la campagne doit contenir au moins 2 caractères\n"; + echo "
Le statut de la campagne doit contenir au moins 1 caractère\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
RACCOURCI CLAVIER PERSONNALISE DE LA CAMPAGNE SUPPRIME: $campaign_id - $status - $hotkey\n"; + + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Etat: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=44 submit campaign modifications to the system - Basic View +###################### + +if ($ADD==44) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $voicemail_ext = ''; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
LISTES D'ACTIFS MODIFIES"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
CAMPAGNE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le nom de la campagne doit contenir au moins 6 caractères\n"; + } + else + { + echo "
CAMPAGNE MODIFIEE: $campaign_id\n"; + + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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',hopper_level='$hopper_level', $adlSQL lead_filter_id='$lead_filter_id',dial_method='$dial_method',adaptive_intensity='$adaptive_intensity',campaign_changedate='$SQLdate',list_order_mix='$list_order_mix' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_hopper == 'Y') + { + echo "
REINITIALISATION DU DISTRIBUTEUR DE FICHES DE LA CAMPAGNE\n"; + echo "
- Attendre 1 minute avant l'appel du numéro suivant\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=34; # go to campaign modification form below + } + + +###################### +# ADD=45 modify campaign lead recycle in the system +###################### + +if ($ADD==45) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + echo "
le délai d'attente doit être au moins 120 secondes et moins de 43,200 secondes ou 12 heures\n"; + echo "
le nombre d'essais maximum doit être compris entre 1 et 10\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=47 modify agent pause code in the system +###################### + +if ($ADD==47) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
CODE DE PAUSE NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_nom de code doit être compris entre 2 et 30 caractères\n"; + } + else + { + echo "
AGENT PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=48 modify campaign QC settings in the system +###################### +if ($ADD==48) + { + if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
QC SETTINGS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
QC SETTINGS mise à jour: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=40A modify campaign survey settings in the system +###################### + +if ($ADD=='40A') + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
SONDAGE SETTINGS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + } + else + { + echo "
SONDAGE SETTINGS mise à jour: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=49 modify campaign list mix in the system +###################### + +if ($ADD==49) + { + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### + if ($stage=='MODIFY') + { + echo ""; + + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; + + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) + { + echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $list_id\n"; + } + } + + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MÉLANGE DE LISTE NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
MÉLANGE DE LISTE NON MODIFIÉ: Vous ne pouvez pas supprimer la dernière entrée de list_id d'unmélange de liste\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LE MÉLANGE DE LISTE A MODIFIÉ: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
MÉLANGE DE LISTE NON SUPPLÉMENTAIRE- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
MÉLANGE DE LISTE NON SUPPLÉMENTAIRE- Il y a déjà un mélange de liste avec cette identification dans lesystème\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AJOUTER UNE CAMPAGNE LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MÉLANGE DE LISTE SUPPLÉMENTAIRE :$campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MÉLANGE DE LISTE NON SUPPRIMÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LE MÉLANGE DE LISTE A SUPPRIMÉ :$campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MÉLANGE DE LISTE NON ACTIVÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Liste Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MÉLANGE DE LISTE ACTIVÉ: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=411 submit list modifications to the system +###################### + +if ($ADD==411) + { + if ($LOGmodify_lists==1) + { + echo ""; + + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + { + echo "
LISTE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le nom de la liste doit contenir au moins 2 caractères\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
LISTE MODIFIEE: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_list == 'Y') + { + echo "
REINITIALISATION LIST-CALLED-STATUS\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
ENLEVER LES FICHES DU VIEUX DISTRIBUTEUR DE FICHES DE LA CAMAPGNE ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311; # go to list modification form below + } + + +###################### +# ADD=4111 modify in-group info in the system +###################### + +if ($ADD==4111) + { + if ($LOGmodify_ingroups==1) + { + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) + { + echo "
GROUPE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
le nom et la couleur du groupe doivent contenir au moins 2 caractères\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
GROUPE MODIFIE: $group_id\n"; + + $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_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3111; # go to in-group modification form below + } + + +###################### +# ADD=4311 modify did info in the system +###################### + +if ($ADD==4311) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
NE MODIFIE PAS - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
DID mise à jour: $did_pattern\n"; + + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3311; # go to did modification form below + } + + +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
CALL MENU PAS MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
CALL MENU mise à jour: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + if ($LOGmodify_remoteagents==1) + { + echo ""; + + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENT DISTANT NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le début de l'ID de l'utilisateur et l'extension externe doivent contenir au moins 2 caractères\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
AGENTS DISTANTS MODIFIES\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below + } + + +###################### +# ADD=411111 modify user group info in the system +###################### + +if ($ADD==411111) + { + if ($LOGmodify_usergroups==1) + { + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
GROUPE D'UTILISATEURS NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n"; + echo "
Le nom et la description du groupe doivent contenir au moins 2 caractères\n"; + } + else + { + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); + + echo "
GROUPE D'UTILISATEURS MODIFIE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY GROUPE D'UTILISATEURS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111; # go to user group modification form below + } + + +###################### +# ADD=4111111 modify script in the system +###################### + +if ($ADD==4111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
SCRIPT NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Les nom, description et texte du script doivent contenir au moins 2 caractères\n"; + } + else + { + $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); + + echo "
SCRIPT MODIFIE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPTS', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3111111; # go to script modification form below + } + + +###################### +# ADD=41111111 modify filter in the system +###################### + +if ($ADD==41111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRE NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Identifiant du filtre, le nom et le SQL doivent au moins contenir 2 caractères\n"; + } + else + { + $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); + + echo "
FILTRE MODIFIE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRES', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31111111; # go to filter modification form below + } + + +###################### +# ADD=411111111 modify call time in the system +###################### + +if ($ADD==411111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
PERIODE D'APPELS NON MODIFIEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID et le nom de la période d'appel doivent contenir au moins 2 caractères\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
PERIODE D'APPELS MODIFIEE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111111; # go to call time modification form below + } + + +###################### +# ADD=4111111111 modify state call time in the system +###################### + +if ($ADD==4111111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
PERIODE D'APPELS D'ETAT NON MODIFIEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID, le nom et l'état de l'appel doivent contenir au moins 2 caractères\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
PERIODE D'APPELS D'ETAT MODIFIEE\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below + } + + +###################### +# ADD=431111111 modify shift in the system +###################### + +if ($ADD==431111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
SHIFT DEFINITION NOT MODIFIED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Shift ID et le nom doit être d'au moins 2 caractères\n"; + echo "
Start Time Shift 4 chiffres doit être de longueur et une heure valide\n"; + echo "
Shift Longueur doit être de 5 caractères de longueur et de 24 heures ou moins\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
MAJ mise à jour\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=331111111; # go to shift modification form below + } + + +###################### +# ADD=41111111111 modify phone record in the system +###################### + +if ($ADD==41111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
TELEPHONE NON MODIFIE - il y a déjà un téléphone dans le système avec cette extension/server\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
TELEPHONE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
TELEPHONE MODIFIE: $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='" . 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', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFIER LE TELEPHONE', event_sql=\"$SQL_log\", event_notes='IP du serveur: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below + } + + +###################### +# ADD=42111111111 modify phone alias record in the system +###################### + +if ($ADD==42111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
PHONE ALIAS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
PHONE ALIAS mise à jour: $alias_id\n"; + + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFIER LE TELEPHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below + } + + +###################### +# ADD=43111111111 modify group alias record in the system +###################### + +if ($ADD==43111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
GROUPE ALIAS PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
GROUPE ALIAS mise à jour: $alias_id\n"; + + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN Modifier un groupe ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below + } + + +###################### +# ADD=411111111111 modify server record in the system +###################### + +if ($ADD==411111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
SERVEUR NOT MODIFIED - there is already a server in the system with this server_id\n";} + else + { + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
SERVEUR NON MODIFIE - il y a déjà un serveur dans le système avec cet ID\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
SERVEUR MODIFIE: $server_ip\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFIER LE SERVEUR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=421111111111 modify vicidial server trunks record in the system +###################### + +if ($ADD==421111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
TRUNK DU SERVEUR VICIDIAL NON AJOUTE - le nombre de trunks vicidial est trop important: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
TRUNK DU SERVEUR VICIDIAL NON MODIFIE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
la campagne doit contenir entre 3 et 8 caractères\n"; + echo "
le délai du server_ip doit contenir au moins 7 caractères\n"; + echo "
les trunks doivent être un nombre entre 0 et 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
TRINK DU SERVEUR VICIDIAL MODIFIE: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERMalles', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFIER LE SERVEUR TRUNK', event_sql=\"$SQL_log\", event_notes='Campagne: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=431111111111 modify conf template record in the system +###################### '$template_id','$template_name','$template_contents' + +if ($ADD==431111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
CONF TEMPLATE PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below + } + + +###################### +# ADD=441111111111 modify carrier record in the system +###################### + +if ($ADD==441111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
CARRIER PAS mise à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CARRIER mise à jour: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS entrée n-est pas à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS entrée modifiée: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD entrée n-est pas à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MUSIC ON HOLD entrée modifiée: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
MUSIC ON HOLD entrée n-est pas à jour - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
MUSIC ON HOLD entrée modifiée: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
La boîte vocale PAS MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
La boîte vocale mise à jour: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below + } + + +###################### +# ADD=4111111111111 modify conference record in the system +###################### + +if ($ADD==4111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
CONFERENCE NON MODIFIEE - il y a déjà une conférence dans le système avec cette extension-serveur\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENCE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
CONFERENCE MODIFIEE: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below + } + + +###################### +# ADD=41111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==41111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL CONFERENCE NON MODIFIEE - il y a déjà une conférence dans le système avec cette extension-serveur\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENCE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + echo "
VICIDIAL CONFERENCE MODIFIEE: $conf_exten\n"; + + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below + } + + +###################### +# ADD=411111111111111 modify vicidial system settings +###################### + +if ($ADD==411111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + echo "
REGLAGES DU SYSTEME VICIDIAL MODIFIES\n"; + + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSETTINGS', event_type='MODIFY', record_id='system_settings', event_code='ADMIN MODIFY SYSTEM SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111111111111; # go to vicidial system settings form below + } + + +###################### +# ADD=421111111111111 modify/delete system status in the system +###################### + +if ($ADD==421111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($status) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$status)) ) + { + echo "
STATUT DE SYSTÈME NON SUPPRIMÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut de système ne peut pas être un statut réservé :B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
le statut de système doit être au moins les caractères 1 delongueur\n"; + } + else + { + echo "
SYSTEM STATUS DELETED: $status\n"; + + $stmt="DELETE FROM vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='DELETE', record_id='$status', event_code='ADMIN DELETE SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
STATUT DE SYSTÈME NON MODIFIÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut de système doit être au moins les caractères 1 delongueur\n"; + echo "
le nom de statut de système doit être au moins les caractères 1 delongueur\n"; + } + else + { + echo "
LE STATUT DE SYSTÈME A MODIFIÉ: $status\n"; + + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='MODIFY', record_id='$status', event_code='ADMIN MODIFY SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=321111111111111; # go to system settings modification form below + } + + +###################### +# ADD=431111111111111 modify/delete status category in the system +###################### + +if ($ADD==431111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + { + echo "
CATÉGORIE DE STATUT NON MODIFIÉE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
la catégorie de statut ne peut pas être une catégorie réservée :UNDEFINED\n"; + echo "
la catégorie de statut doit être au moins 2 caractères de longueur\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
LA CATÉGORIE DE STATUT A SUPPRIMÉ: $vsc_id\n"; + + $stmt="DELETE FROM vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE STATUS CATÉGORIE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
LA CATÉGORIE DE STATUT A MODIFIÉ: $vsc_id\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
ERREUR : Il y a déjà ensemble de 4 catégories de statut àl'affichage de TimeOnVDAD\n"; + } + + $stmt="UPDATE vicidial_status_categories SET vsc_name='$vsc_name',vsc_description='$vsc_description',tovdad_display='$tovdad_display',sale_category='$sale_category',dead_lead_category='$dead_lead_category' where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY STATUS CATÉGORIE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=331111111111111; # go to system settings modification form below + } + + +###################### +# ADD=441111111111111 modify/delete qc status code in the system +###################### + +if ($ADD==441111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
QC CODE ÉTAT PAS SUPPRIMÉ - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
qc le code de statut doit être au moins de 1 caractères\n"; + } + else + { + echo "
QC ÉTAT CODE DELETED:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC CODE ÉTAT PAS mise à jour- Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
qc le code de statut doit être au moins de 1 caractères\n"; + echo "
qc le nom de code de statut doit être au moins de 1 caractères\n"; + } + else + { + echo "
QC ÉTAT CODE mise à jour:$code\n"; + + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below + } + + + + +###################################################################################################### +###################################################################################################### +####### 5 series, delete records confirmation +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=5 confirmation before deletion of user +###################### + +if ($ADD==5) + { + echo ""; + + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + { + echo "
UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Utilisateur be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DE L'UTILISATEUR: $user\n"; + echo "

Cliquez ici pour supprimer cet utilisateur $user


\n"; + } + + $ADD='3'; # go to user modification below + } + +###################### +# ADD=51 confirmation before deletion of campaign +###################### + +if ($ADD==51) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + { + echo "
CAMPAGNE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DE LA CAMPAGNE: $campaign_id\n"; + echo "

Cliquez ici pour supprimer cette campagne $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=52 confirmation before logging all agents out of campaign of campaign +###################### + +if ($ADD==52) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
AGENTS NON DECONNECTES DE LA CAMPAGNE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA DECONNECTION DE L'AGENT: $campaign_id\n"; + echo "

Cliquez ici pour déconnecter tous les agents de $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record +###################### + +if ($ADD==53) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC NON EFFACE POUR LA CAMPAGNE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE L'EFFACEMENT DE VDAC: $campaign_id\n"; + echo "

Cliquez ici pour effacer les plus vieux enregistrements LIVE dans VDAC pour $campaign_id


\n"; + } + + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + +###################### +# ADD=511 confirmation before deletion of list +###################### + +if ($ADD==511) + { + echo ""; + + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + { + echo "
LISTE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DE LA LISTE: $list_id\n"; + echo "

Cliquez ici pour supprimer cette liste et toutes ses fiches $list_id


\n"; + } + + $ADD='311'; # go to campaign modification below + } + +###################### +# ADD=5111 confirmation before deletion of in-group +###################### + +if ($ADD==5111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + { + echo "
IN-GROUP NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DU IN-GROUP: $group_id\n"; + echo "

Cliquer ici pour supprimer le in-group $group_id


\n"; + } + + $ADD='3111'; # go to in-group modification below + } + +###################### +# ADD=5311 confirmation before deletion of did +###################### + +if ($ADD==5311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + { + echo "
NE PAS SUPPRIMER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + echo "
A DELETION CONFIRMATION: $menu_id\n"; + echo "

Cliquez ici pour supprimerDID $did_id


\n"; + } + + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
CALL MENU DE SUPPRESSION DE CONFIRMATION: $menu_id\n"; + echo "

Cliquez ici pour supprimer CALL MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } + +###################### +# ADD=51111 confirmation before deletion of remote agent record +###################### + +if ($ADD==51111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + { + echo "
AGENT DISTANT NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DE L'AGENT DISTANT: $remote_agent_id\n"; + echo "

Cliquez ici pour supprimer l'agent distant $remote_agent_id


\n"; + } + + $ADD='31111'; # go to remote agent modification below + } + +###################### +# ADD=511111 confirmation before deletion of user group record +###################### + +if ($ADD==511111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + { + echo "
GROUPE D'UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Utilisateur_group be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DU GROUPE D'UTILISATEURS: $user_group\n"; + echo "

Cliquez ici pour supprimer le groupe d'utilisateurs $user_group


\n"; + } + + $ADD='311111'; # go to user group modification below + } + +###################### +# ADD=5111111 confirmation before deletion of script record +###################### + +if ($ADD==5111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + { + echo "
SCRIPT NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Script_id must be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DU SCRIPT: $script_id\n"; + echo "

Cliquez ici pour supprimer le script $script_id


\n"; + } + + $ADD='3111111'; # go to script modification below + } + +###################### +# ADD=51111111 confirmation before deletion of filter record +###################### + +if ($ADD==51111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + { + echo "
FILTRE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'identifiant du filtre doit contenir au moins 2 caractères\n"; + } + else + { + echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; + echo "

Cliquez ici pour effacer le filtre$lead_filter_id


\n"; + } + + $ADD='31111111'; # go to filter modification below + } + +###################### +# ADD=511111111 confirmation before deletion of call time record +###################### + +if ($ADD==511111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
PERIODE D'APPELS NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la période d'appels doit contenir au moins 2 caractères\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESION DE LA PERIODE D'APPELS: $call_time_id\n"; + echo "

Cliquez ici pour supprimercall time $call_time_id


\n"; + } + + $ADD='311111111'; # go to call time modification below + } + +###################### +# ADD=5111111111 confirmation before deletion of state call time record +###################### + +if ($ADD==5111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
PERIODE D'APPELS D'ETAT NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la période d'appels doit contenir au moins 2 caractères\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DE LA PERIODE D'APPELS D'ETAT: $call_time_id\n"; + echo "

Cliquez ici pour supprimerstate call time $call_time_id


\n"; + } + + $ADD='3111111111'; # go to state call time modification below + } + +###################### +# ADD=531111111 confirmation before deletion of shift record +###################### + +if ($ADD==531111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
MAJ pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + echo "
SHIFT DELETION CONFIRMATION:$shift_id\n"; + echo "

Cliquez ici pour supprimer le passage $shift_id


\n"; + } + + $ADD='331111111'; # go to call time modification below + } + +###################### +# ADD=51111111111 confirmation before deletion of phone record +###################### + +if ($ADD==51111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
TELEPHONE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; + } + else + { + echo "
CONFIRMATION DE LA SUPPRESSION DU TELEPHONE: $extension - $server_ip\n"; + echo "

Cliquez ici pour supprimer le téléphone $extension - $server_ip


\n"; + } + $ADD='31111111111'; # go to phone modification below + } + + +###################### +# ADD=52111111111 confirmation before deletion of phone alias record +###################### + +if ($ADD==52111111111) + { + echo ""; + + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
PHONE ALIAS pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + echo "
PHONE ALIAS DELETION CONFIRMATION: $alias_id\n"; + echo "

Cliquez ici pour supprimer le téléphone alias $alias_id


\n"; + } + $ADD='32111111111'; # go to phone alias modification below + } + + +###################### +# ADD=53111111111 confirmation before deletion of group alias record +###################### + +if ($ADD==53111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
GROUPE ALIAS pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Alias Groupe ID must be at least 2 characters in length\n"; + } + else + { + echo "
GROUPE ALIAS DELETION CONFIRMATION: $group_alias_id\n"; + echo "

Cliquez ici pour supprimer le groupe alias $group_alias_id


\n"; + } + $ADD='33111111111'; # go to group alias modification below + } + + +###################### +# ADD=511111111111 confirmation before deletion of server record +###################### + +if ($ADD==511111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
SERVEUR NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
ID du serveur be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; + } + else + { + echo "
SERVEUR DELETION CONFIRMATION: $server_id - $server_ip\n"; + echo "

Cliquez ici pour supprimer le téléphone $server_id - $server_ip


\n"; + } + $ADD='311111111111'; # go to server modification below + } + + +###################### +# ADD=531111111111 confirmation before deletion of conf template record +###################### + +if ($ADD==531111111111) + { + echo ""; + + if (strlen($template_id) < 2) + { + echo "
CONF TEMPLATE pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Template ID être d'au moins 2 caractères\n"; + } + else + { + echo "
CONF TEMPLATE DELETION CONFIRMATION: $template_id - $template_name\n"; + echo "

Cliquez ici pour supprimer le modèle de conf $template_id - $template_name


\n"; + } + $ADD='331111111111'; # go to conf template modification below + } + + +###################### +# ADD=541111111111 confirmation before deletion of carrier record +###################### + +if ($ADD==541111111111) + { + echo ""; + + if (strlen($carrier_id) < 2) + { + echo "
CARRIER pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Carrier ID être d'au moins 2 caractères\n"; + } + else + { + echo "
SUPPRESSION DE SUPPORT DE CONFIRMATION: $carrier_id - $carrier_name\n"; + echo "

Cliquez ici pour supprimer le transporteur $carrier_id - $carrier_name


\n"; + } + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS ENTRY pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS ENTREE DE SUPPRESSION DE CONFIRMATION: $tts_id - $tts_name\n"; + echo "

Cliquez ici pour supprimer l-entrée tts $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
MUSIC ON HOLD ENTRY pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
MUSIC ON HOLD ENTREE DE SUPPRESSION DE CONFIRMATION: $moh_id - $moh_name\n"; + echo "

Cliquez ici pour supprimer la musique en attente d-entrée $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
La boîte vocale pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Boîte vocale ID be at least 2 characters in length\n"; + } + else + { + echo "
La boîte vocale SUPPRESSION DE CONFIRMATION: $voicemail_id - $fullname\n"; + echo "

Cliquez ici pour supprimer boîte vocale $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } + + +###################### +# ADD=5111111111111 confirmation before deletion of conference record +###################### + +if ($ADD==5111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; + } + else + { + echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Cliquez ici pour supprimer le téléphone $conf_exten - $server_ip


\n"; + } + $ADD='3111111111111'; # go to conference modification below + } + + +###################### +# ADD=51111111111111 confirmation before deletion of vicidial conference record +###################### + +if ($ADD==51111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; + } + else + { + echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Cliquez ici pour supprimer le téléphone $conf_exten - $server_ip


\n"; + } + $ADD='31111111111111'; # go to vicidial conference modification below + } + + + +###################################################################################################### +###################################################################################################### +####### 6 series, delete records +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=6 delete user record +###################### + +if ($ADD==6) + { + echo ""; + + if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) + { + echo "
UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Utilisateur be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_users where user='$user' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='UTILISATEURS', event_type='DELETE', record_id='$user', event_code='ADMIN DELETE USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DE L'UTILISATEUR CONFIRMEE: $user\n"; + echo "

\n"; + } + + $ADD='0'; # go to user list + } + +###################### +# ADD=61 delete campaign record +###################### + +if ($ADD==61) + { + echo ""; + + if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) + { + echo "
CAMPAGNE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_campaigns where campaign_id='$campaign_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_statuses where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_hotkeys where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_callbacks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_lead_recycle where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_server_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_server_trunks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_pause_codes where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaigns_list_mix where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
ENLEVER LES FICHES DU VIEUX DISTRIBUTEUR DE FICHES DE LA CAMAPGNE ($campaign_id)\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPRESSION DE LA CAMPAGNE CONFIRMEE: $campaign_id\n"; + echo "

\n"; + } + + $ADD='10'; # go to campaigns list + } + + +###################### +# ADD=62 Logout all agents from a campaign +###################### + +if ($ADD==62) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
AGENTS NON DECONNECTES DE LA CAMPAGNE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; + } + else + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='LOGOUT', record_id='$campaign_id', event_code='ADMIN LOGOUT CAMPAIGN AGENTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Déconnection des agents terminée: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD='31'; # go to campaign modification below + } + + +###################### +# ADD=63 Emergency VDAC Jam Clear +###################### + +if ($ADD==63) + { + if ($LOGmodify_campaigns==1) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC NON EFFACE POUR LA CAMPAGNE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Campagne_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_auto_calls where status='LIVE' and campaign_id='$campaign_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN JAM', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
DERNIER ENREGISTREMENT VDAC DE LA CAMPAGNE EFFACE: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + + +###################### +# ADD=65 delete campaign lead recycle in the system +###################### + +if ($ADD==65) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
RECYCLAGE DES FICHES DE LA CAMPAGNE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + echo "
le délai d'attente doit être au moins 120 secondes\n"; + echo "
le nombre d'essais maximum doit être compris entre 1 et 10\n"; + } + else + { + echo "
RECYCLAGE DES FICHES DE LA CAMPAGNE SUPPRIME: $campaign_id - $status - $attempt_delay\n"; + + $stmt="DELETE FROM vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=66 delete auto alt dial status from the campaign +###################### + +if ($ADD==66) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON SUPPRIME - ce statut d'appel automatique du numéro alternatif n'est pas dans cette campagne\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + } + else + { + echo "
STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF SUPPRIME: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $auto_alt_dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIALS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN ALT DIAL', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=26; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=67 delete agent pause code in the system +###################### + +if ($ADD==67) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + { + echo "
CODE DE PAUSE DE LA CAMPAGNE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + } + else + { + echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; + + $stmt="DELETE FROM vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Etat: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=68 remove campaign dial status +###################### + +if ($ADD==68) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
STATUT D'APPEL POUR CETTE CAMPAGNE NON SUPPRIME - ce statut d'appel n'est pas selectionné pour cette campagne\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
STATUT D'APPEL POUR CETTE CAMPAGNE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
le statut doit contenir entre 1 et 6 caractères\n"; + } + else + { + echo "
STATUT D'APPEL POUR CETTE CAMPAGNE SUPPRIME: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUSES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Etat: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + #$SUB=28; + $ADD=31; # go to campaign modification form below + } + +###################### +# ADD=611 delete list record and all leads within it +###################### + +if ($ADD==611) + { + echo ""; + + if ( ( strlen($list_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_lists < 1) ) + { + echo "
LISTE NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_lists where list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + echo "
ENLEVER LES FICHES DU VIEUX DISTRIBUTEUR DE FICHES DE LA CAMAPGNE ($list_id)\n"; + $stmt="DELETE from vicidial_hopper where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRIMER LES FICHES DE LA LISTE DE LA TABLE VICIDIAL_LIST\n"; + $stmt="DELETE from vicidial_list where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='DELETE', record_id='$list_id', event_code='ADMIN DELETE LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DE LA LISTE CONFIRMEE: $list_id\n"; + echo "

\n"; + } + + $ADD='100'; # go to lists list + } + +###################### +# ADD=6111 delete in-group record +###################### + +if ($ADD==6111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_ingroups < 1) ) + { + echo "
IN-GROUP NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_inbound_groups where group_id='$group_id' and group_id NOT IN('AGENTDIRECT') limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_inbound_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='DELETE', record_id='$group_id', event_code='ADMIN DELETE INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DU IN-GROUP TERMINEE: $group_id\n"; + echo "

\n"; + } + + $ADD='1000'; # go to in-group list + } + + +###################### +# ADD=6311 delete did record +###################### + +if ($ADD==6311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
NE PAS SUPPRIMER - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_inbound_dids where did_id='$did_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='DELETE', record_id='$did_id', event_code='ADMIN DELETE DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
A DELETION ACCOMPLIES: $did_id\n"; + echo "

\n"; + } + + $ADD='1300'; # go to did list + } + +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
APPEL menu de suppression REMPLI: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + +###################### +# ADD=61111 delete remote agent record +###################### + +if ($ADD==61111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_remote_agents < 1) ) + { + echo "
AGENT DISTANT NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_remote_agents where remote_agent_id='$remote_agent_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='DELETE', record_id='$remote_agent_id', event_code='ADMIN DELETE REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DE L'AGENT DISTANT CONFIRMEE: $remote_agent_id\n"; + echo "

\n"; + } + + $ADD='10000'; # go to remote agents list + } + +###################### +# ADD=611111 delete user group record +###################### + +if ($ADD==611111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_user_groups < 1) ) + { + echo "
GROUPE D'UTILISATEUR NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Utilisateur_group be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_user_groups where user_group='$user_group' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='DELETE', record_id='$user_group', event_code='ADMIN DELETE GROUPE D'UTILISATEURS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DU GROUPE D'UTILISATEURS TERMINEE: $user_group\n"; + echo "

\n"; + } + + $ADD='100000'; # go to user group list + } + +###################### +# ADD=6111111 delete script record +###################### + +if ($ADD==6111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_scripts < 1) ) + { + echo "
SCRIPT NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Script_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_scripts where script_id='$script_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPTS', event_type='DELETE', record_id='$script_id', event_code='ADMIN DELETE SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DU SCRIPT TERMINEE: $script_id\n"; + echo "

\n"; + } + + $ADD='1000000'; # go to script list + } + + +###################### +# ADD=61111111 delete filter record +###################### + +if ($ADD==61111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_filters < 1) ) + { + echo "
FILTRE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'identifiant du filtre doit contenir au moins 2 caractères\n"; + } + else + { + $stmt="DELETE from vicidial_lead_filters where lead_filter_id='$lead_filter_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRES', event_type='DELETE', record_id='$lead_filter_id', event_code='ADMIN DELETE FILTRES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
EFFACEMENT DU FILTRE TERMINE: $lead_filter_id\n"; + echo "

\n"; + } + + $ADD='10000000'; # go to filter list + } + + +###################### +# ADD=611111111 delete call times record +###################### + +if ($ADD==611111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
PERIODE D'APPELS NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la période d'appels doit contenir au moins 2 caractères\n"; + } + else + { + $stmt="DELETE from vicidial_call_times where call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DE LA PERIODE D'APPELS TERMINEE: $call_time_id\n"; + echo "

\n"; + } + + $ADD='100000000'; # go to call times list + } + + +###################### +# ADD=6111111111 delete state call times record +###################### + +if ($ADD==6111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
PERIODE D'APPELS D'ETAT NON SUPPRIMEE - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
L'ID de la période d'appels doit contenir au moins 2 caractères\n"; + } + else + { + $stmtA="DELETE from vicidial_state_call_times where state_call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="SELECT call_time_id,ct_state_call_times from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\" order by call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_ids[$o] = "$rowx[0]"; + $sct_states[$o] = "$rowx[1]"; + $o++; + } + $o=0; + while ($sct_to_print > $o) + { + $sct_states[$o] = eregi_replace("\|$call_time_id\|",'|',$sct_states[$o]); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$sct_states[$o]' where call_time_id='$sct_ids[$o]';"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + echo "Règle d'état supprimée: $sct_ids[$o]
\n"; + $o++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DE LA PERIODE D'APPELS D'ETAT TERMINEE: $call_time_id\n"; + echo "

\n"; + } + + $ADD='1000000000'; # go to call times list + } + + +###################### +# ADD=631111111 delete shift record +###################### + +if ($ADD==631111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
MAJ pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_shifts where shift_id='$shift_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='DELETE', record_id='$shift_id', event_code='ADMIN DELETE SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SHIFT DELETION ACHEVES: $shift_id\n"; + echo "

\n"; + } + + $ADD='130000000'; # go to shifts list + } + + +###################### +# ADD=61111111111 delete phone record +###################### + +if ($ADD==61111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
TELEPHONE NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from phones where extension='$extension' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='DELETE', record_id='$extension', event_code='ADMIN DELETE PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SUPPRESSION DU TELEPHONE TERMINEE: $extension - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000'; # go to phone list + } + + +###################### +# ADD=62111111111 delete phone alias record +###################### + +if ($ADD==62111111111) + { + echo ""; + + if ( (strlen($alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
PHONE ALIAS pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from phones_alias where alias_id='$alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='DELETE', record_id='$alias_id', event_code='ADMIN DELETE PHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
PHONE ALIAS DELETION ACCOMPLIES: $alias_id\n"; + echo "

\n"; + } + $ADD='12000000000'; # go to phone alias list + } + + +###################### +# ADD=63111111111 delete group alias record +###################### + +if ($ADD==63111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
GROUPE ALIAS pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Alias Groupe ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from groups_alias where group_alias_id='$group_alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='DELETE', record_id='$group_alias_id', event_code='ADMIN DELETE GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
GROUPE ALIAS DELETION ACCOMPLIES: $group_alias_id\n"; + echo "

\n"; + } + $ADD='13000000000'; # go to group alias list + } + + +###################### +# ADD=611111111111 delete server record +###################### + +if ($ADD==611111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
SERVEUR NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
ID du serveur be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from servers where server_id='$server_id' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='DELETE', record_id='$server_id', event_code='ADMIN DELETE SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SERVEUR DELETION COMPLETED: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='100000000000'; # go to server list + } + + +###################### +# ADD=621111111111 delete vicidial server trunk record in the system +###################### + +if ($ADD==621111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) ) + { + echo "
TRUNK DU SERVEUR VICIDIAL NON SUPPRIME - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
la campagne doit contenir entre 3 et 8 caractères\n"; + echo "
le délai du server_ip doit contenir au moins 7 caractères\n"; + } + else + { + echo "
TRUNK DU SERVEUR VICIDIAL SUPPRIME: $campaign_id - $server_ip\n"; + + $stmt="DELETE FROM vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERMalles', event_type='DELETE', record_id='$server_ip', event_code='ADMIN DELETE SERVEUR TRUNK', event_sql=\"$SQL_log\", event_notes='Campagne: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=631111111111 delete conf template record +###################### + +if ($ADD==631111111111) + { + echo ""; + + if ( (strlen($template_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
CONF TEMPLATE pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Template ID être d'au moins 2 caractères\n"; + } + else + { + $stmt="UPDATE phones SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_server_carriers SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='DELETE', record_id='$template_id', event_code='ADMIN DELETE CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONF TEMPLATE DELETION ACCOMPLIES: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='130000000000'; # go to conf template list + } + + +###################### +# ADD=641111111111 delete carrier record +###################### + +if ($ADD==641111111111) + { + echo ""; + + if ( (strlen($carrier_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
CARRIER pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Carrier ID être d'au moins 2 caractères\n"; + } + else + { + $stmt="SELECT server_ip from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $CARRIERserver_ip = $row[0]; + + $stmt="DELETE from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$CARRIERserver_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='DELETE', record_id='$carrier_id', event_code='ADMIN DELETE CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CARRIER SUPPRESSION ACCOMPLIES: $carrier_id\n"; + echo "

\n"; + } + $ADD='140000000000'; # go to carrier list + } + + +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS ENTRY pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
MUSIC ON HOLD ENTRY pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MUSIQUE EN ATTENTE DE SUPPRESSION REMPLI: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
La boîte vocale pas supprimé - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Boîte vocale ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
La boîte vocale SUPPRESSION REMPLI: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + +###################### +# ADD=6111111111111 delete conference record +###################### + +if ($ADD==6111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='1000000000000'; # go to conference list + } + + +###################### +# ADD=61111111111111 delete vicidial conference record +###################### + +if ($ADD==61111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Veuillez retourner en arrière et vérifier les données que vous avez saisies\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
IP du serveur be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
VICIDIAL CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000000'; # go to vicidial conference list + } + + + + + +###################################################################################################### +###################################################################################################### +####### 3 series, record modification forms +###################################################################################################### +###################################################################################################### + + + + +###################### +# ADD=3 modify user info in the system +###################### + +if ($ADD==3) + { + if ($LOGmodify_users==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Vous n'avez pas les permissions pour modifier cet utilisateur: $user\n"; + } + else + { + echo "
MODIFIER UN ENREGISTREMENT D'UTILISATEURS: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} + else + { + if ($LOGalter_agent_interface == "1") + {echo "\n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSuser_territories_active > 0) + { + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; + } + + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) + { + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + if ($LOGuser_level > 8) + { + echo "\n"; + + #9BB9FB + #B9CBFD + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
Numéro d'utilisateur : $user$NWB#vicidial_users-user$NWE
Mot de passe:$NWB#vicidial_users-pass$NWE
Nom complet: $NWB#vicidial_users-full_name$NWE
Niveau de l'utilisateur: $NWB#vicidial_users-user_level$NWE
Groupe utilisateur: $NWB#vicidial_users-user_group$NWE
Login du téléphone: $NWB#vicidial_users-phone_login$NWE
Mot de passe du téléphone: $NWB#vicidial_users-phone_pass$NWE
Actif: $NWB#vicidial_users-active$NWE
Email:$NWB#vicidial_users-optional$NWE
Utilisateur Code: $NWB#vicidial_users-optional$NWE
Main Territoire: $NWB#vicidial_users-optional$NWE
Utilisateur Territoires: $Uterrs_list
OPTIONS DE L'INTERFACE DE L'AGENT:
L'agent choisit les Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Agent Choisir Territoires: $NWB#vicidial_users-agent_choose_territories$NWE
Racourccis clavier actifs: $NWB#vicidial_users-hotkeys_active$NWE
Rappels de service programmés: $NWB#vicidial_users-scheduled_callbacks$NWE
Rappels de service d'agent-seulement: $NWB#vicidial_users-agentonly_callbacks$NWE
Appel manuel de l'agent: $NWB#vicidial_users-agentcall_manual$NWE
Enregistrement Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Transferts Vicidial: $NWB#vicidial_users-vicidial_transfers$NWE
Closer Default Blended: $NWB#vicidial_users-closer_default_blended$NWE
Ecrasement de l'enregistrment VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
Modifications des données des clients pour l'agent: $NWB#vicidial_users-alter_custdata_override$NWE
Alter Agent Client Téléphone Override:$NWB#vicidial_users-alter_custphone_override$NWE
Agent de l'exécution Shift Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alerte Enabled: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Permettez Alertes: $NWB#vicidial_users-allow_alerts$NWE
Rangs De Campagne :$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Groupes entrants: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC Niveau de l'utilisateur:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Finition:$NWB#vicidial_users-qc_finish$NWE
QC Comité:$NWB#vicidial_users-qc_commit$NWE
OPTIONS DE L'INTERFACE D'ADMINISTRATION:
Voir les rapports: $NWB#vicidial_users-view_reports$NWE
Changer les options de l'interface de l'agent: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifier les utilisateurs: $NWB#vicidial_users-modify_sections$NWE
Changer l'agent de campagne: $NWB#vicidial_users-change_agent_campaign$NWE
Supprimer les utilisateurs: $NWB#vicidial_users-delete_users$NWE
Modifier les groupes d'utilisateurs: $NWB#vicidial_users-modify_sections$NWE
Supprimer les groupes utilisateurs: $NWB#vicidial_users-delete_user_groups$NWE
Modifier les listes: $NWB#vicidial_users-modify_sections$NWE
Supprimer les listes: $NWB#vicidial_users-delete_lists$NWE
Charger des fiches: $NWB#vicidial_users-load_leads$NWE
Modifier les fiches: $NWB#vicidial_users-modify_leads$NWE
Listes de téléchargement: $NWB#vicidial_users-modify_leads$NWE
Rapports d'exportation: $NWB#vicidial_users-export_reports$NWE
Supprimer From Listes DNC: $NWB#vicidial_users-delete_from_dnc$NWE
Modifier les campagnes: $NWB#vicidial_users-modify_sections$NWE
Détails de la campagne: $NWB#vicidial_users-campaign_detail$NWE
Supprimer les campagnes: $NWB#vicidial_users-delete_campaigns$NWE
Modifier les In-Groups: $NWB#vicidial_users-modify_sections$NWE
Supprimer les in-groups: $NWB#vicidial_users-delete_ingroups$NWE
Modifier DiDs:$NWB#vicidial_users-modify_sections$NWE
Supprimer DiDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifier les agents distants: $NWB#vicidial_users-modify_sections$NWE
Supprimer les agents distants: $NWB#vicidial_users-delete_remote_agents$NWE
Modifier les scripts: $NWB#vicidial_users-modify_sections$NWE
Supprimer les scriptss: $NWB#vicidial_users-delete_scripts$NWE
Modifier les filtres: $NWB#vicidial_users-modify_sections$NWE
Supprimer le filtres: $NWB#vicidial_users-delete_filters$NWE
Accès administateur de l'AGC: $NWB#vicidial_users-ast_admin_access$NWE
Supprimer les téléphones AGC: $NWB#vicidial_users-ast_delete_phones$NWE
Modifier la période d'appelss: $NWB#vicidial_users-modify_call_times$NWE
SupprimerPériodes d'appels: $NWB#vicidial_users-delete_call_times$NWE
Modifier les serveurs: $NWB#vicidial_users-modify_sections$NWE
Agent API d'accès:$NWB#vicidial_users-vdc_agent_api_access$NWE
Ajouter Log timeclock Record: $NWB#vicidial_users-add_timeclock_log$NWE
Modifier timeclock journal Record: $NWB#vicidial_users-modify_timeclock_log$NWE
Supprimer timeclock journal Record: $NWB#vicidial_users-delete_timeclock_log$NWE
Shift Manager exécution Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

SUPPRIMER CET UTILISATEUR\n"; + } + echo "

Cliquez ici pour la feuille de présence de l'utilisateur\n"; + echo "

Cliquez ici pour les statuts utilisateur\n"; + echo "

Cliquez ici pour les statistiques de l'utilisateur\n"; + echo "

Cliquez ici pour l'utilisateur de plusieurs jours le statut de détails rapport\n"; + echo "

Cliquez ici pour les rappels reservés à cet utilisateur\n"; + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce record
\n"; + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=31 modify campaign info in the system - Detail view +###################### + +if ( ($LOGcampaign_detail < 1) and ($ADD==31) ) {$ADD=34;} # send to Basic if not allowed + +if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==31) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_name = $row[1]; + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $web_form_address = stripslashes($row[11]); + $allow_closers = $row[12]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $campaign_rec_exten = $row[22]; + $campaign_recording = $row[23]; + $campaign_rec_filename = $row[24]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $am_message_exten = $row[27]; + $amd_send_to_vmx = $row[28]; + $xferconf_a_dtmf = $row[29]; + $xferconf_a_number = $row[30]; + $xferconf_b_dtmf = $row[31]; + $xferconf_b_number = $row[32]; + $alt_number_dialing = $row[33]; + $scheduled_callbacks = $row[34]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $drop_call_seconds = $row[36]; + $drop_action = $row[37]; + $safe_harbor_exten = $row[38]; + $display_dialable_count = $row[39]; + $wrapup_seconds = $row[40]; + $wrapup_message = $row[41]; + # $closer_campaigns = $row[42]; + $use_internal_dnc = $row[43]; + $allcalls_delay = $row[44]; + $omit_phone_code = $row[45]; + $dial_method = $row[46]; + $available_only_ratio_tally = $row[47]; + $adaptive_dropped_percentage = $row[48]; + $adaptive_maximum_level = $row[49]; + $adaptive_latest_server_time = $row[50]; + $adaptive_intensity = $row[51]; + $adaptive_dl_diff_target = $row[52]; + $concurrent_transfers = $row[53]; + $auto_alt_dial = $row[54]; + $auto_alt_dial_statuses = $row[55]; + $agent_pause_codes_active = $row[56]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $disable_alter_custdata = $row[62]; + $no_hopper_leads_logins = $row[63]; + $list_order_mix = $row[64]; + $campaign_allow_inbound = $row[65]; + $manual_dial_list_id = $row[66]; + $default_xfer_group = $row[67]; + $queue_priority = $row[69]; + $drop_inbound_group = $row[70]; + $qc_enabled = $row[71]; + $qc_statuses = $row[72]; + $qc_lists = $row[73]; + $qc_shift_id = $row[74]; + $qc_get_record_launch = $row[75]; + $qc_show_recording = $row[76]; + $qc_web_form_address = stripslashes($row[77]); + $qc_script = $row[78]; + $survey_first_audio_file = $row[79]; + $survey_dtmf_digits = $row[80]; + $survey_ni_digit = $row[81]; + $survey_opt_in_audio_file = $row[82]; + $survey_ni_audio_file = $row[83]; + $survey_method = $row[84]; + $survey_no_response_action = $row[85]; + $survey_ni_status = $row[86]; + $survey_response_digit_map = $row[87]; + $survey_xfer_exten = $row[88]; + $survey_camp_record_dir = $row[89]; + $disable_alter_custphone = $row[90]; + $display_queue_count = $row[91]; + $manual_dial_filter = $row[92]; + $agent_clipboard_copy = $row[93]; + $agent_extended_alt_dial = $row[94]; + $use_campaign_dnc = $row[95]; + $three_way_call_cid = $row[96]; + $three_way_dial_prefix = $row[97]; + $web_form_target = $row[98]; + $vtiger_search_category = $row[99]; + $vtiger_create_call_record = $row[100]; + $vtiger_create_lead_record = $row[101]; + $vtiger_screen_login = $row[102]; + $cpd_amd_action = $row[103]; + $agent_allow_group_alias = $row[104]; + $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + + $qc_lists = preg_replace("/^ | -$/","",$qc_lists); + $QClists = explode(" ", $qc_lists); + $QCL_to_print = (count($QClists) -0); + + ##### get status listings for dynamic pulldown + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $qc_statuses_list=''; + $survey_ni_status_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') + { + $dial_statuses_list .= "\n"; + if ($survey_ni_status == $rowx[0]) + { + $survey_ni_status_list .= "\n"; + } + else + { + $survey_ni_status_list .= "\n"; + } + } + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic transfer group pulldown list menu + $stmt="SELECT group_id,group_name from vicidial_inbound_groups $xfer_groupsSQL order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==28) {$camp_qc_color=$subcamp_color;} + else {$camp_qc_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + if ($SUB=='20A') {$camp_survey_color=$subcamp_color;} + else {$camp_survey_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; + if ($SSqc_features_active > 0) + { + echo ""; + } + if ($SSoutbound_autodial_active < 1) + { + echo "\n"; + } + echo "\n"; + echo "
$row[0]: Basic Détail StatutsHotKeysLead RecyclingAuto Alt DialListe MixSondagePause CodesQC Real-Time
\n"; + + echo "
\n"; + echo ""; + + echo "
\n"; + + if ($SUB < 1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "SUPPRIMER\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + + + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($agent_allow_group_alias == 'Y') + { + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + } + + if ($SSenable_vtiger_integration > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + else + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($campaign_allow_inbound == 'Y') + { + echo "\n"; + } + + echo "\n"; + + if ($allow_closers == 'Y') + { + echo "\n"; + } + + echo "\n"; + echo "
ID de la campagne: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Nom de la campagne: $NWB#vicidial_campaigns-campaign_name$NWE
Description de la campagne: $NWB#vicidial_campaigns-campaign_description$NWE
Campagne Changement Date: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campagne Login Date: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Campagne Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Actif: $NWB#vicidial_campaigns-active$NWE
Extension du parc: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Formulaire Web: $NWB#vicidial_campaigns-web_form_address$NWE
Formulaire Web Two: $NWB#vicidial_campaigns-web_form_address$NWE
Formulaire Web Public: $NWB#vicidial_campaigns-web_form_target$NWE
Autoriser les closers: $NWB#vicidial_campaigns-allow_closers$NWE
Permettez d'arrivée et mélangé :$NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Statut d'appel$o: \n"; + + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Etat:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Ordre de la liste: $NWB#vicidial_campaigns-lead_order$NWE
Liste Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Filtre de la fiche: $NWB#vicidial_campaigns-lead_filter_id$NWE
Drop Lockout Time: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Forcer la réinitialisation du distributeur de fiches: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Méthode d'appel: $NWB#vicidial_campaigns-dial_method$NWE
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPTER LE DEPASSEMENT
Valable seulement pour les contrôles: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Pourcentage limite d'abandon: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Adaptation maximum du niveau de l'appel: number only $NWB#vicidial_campaigns-adaptive_maximum_level$NWE
Heure max du serveur: 4 chiffres seulement $NWB#vicidial_campaigns-adaptive_latest_server_time$NWE
Adapter le modificateur d'intensité: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Différence cible du niveau d'appel: $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE
Transferts concurents: $NWB#vicidial_campaigns-concurrent_transfers$NWE
File d'attente de priorité: $NWB#vicidial_campaigns-queue_priority$NWE
Multiples campagne Drop Rate Groupe: $NWB#vicidial_campaigns-drop_rate_group$NWE
Appeler automatiquement le numéro alternatif: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Appeler l'agent suivant : $NWB#vicidial_campaigns-next_agent_call$NWE
Heure d'appel locale: $NWB#vicidial_campaigns-local_call_time$NWE
Délai de tentative d'appel: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Préfixe de numérotation: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Omettre le phone code: $NWB#vicidial_campaigns-omit_phone_code$NWE
CallerID de la campagne: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Exten VDAD de la campagne: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Extension d'enregistrement de la campagne: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Enregistrement de la campagne: $NWB#vicidial_campaigns-campaign_recording$NWE
Nom du fichier d'enregistrement de la campagne: $NWB#vicidial_campaigns-campaign_rec_filename$NWE
Délai d'enregistrement: in seconds$NWB#vicidial_campaigns-allcalls_delay$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Lancer l'appel: $NWB#vicidial_campaigns-get_call_launch$NWE
Message de répondeur: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
WaitForSilence Options: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD envoyé au VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Action: $NWB#vicidial_campaigns-cpd_amd_action$NWE
DTMF Transfert-Conf 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
DTMF Transfert-Conf 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Quick Transfer Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Préremplir Transfert Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Minuterie d-action: $NWB#vicidial_campaigns-timer_action$NWE
Minuterie d-action Message: $NWB#vicidial_campaigns-timer_action_message$NWE
Minuterie d-action Seconds: $NWB#vicidial_campaigns-timer_action_seconds$NWE
Appel du numéro alternatif: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Rappels de service programmés: $NWB#vicidial_campaigns-scheduled_callbacks$NWE
Temps avant abandon de l'appel: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Drop d'action:$NWB#vicidial_campaigns-drop_action$NWE
Extension du port sûr: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Boîte vocale: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Drop de transfert du Groupe:$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Temps de conclusion: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Message de conclusion: $NWB#vicidial_campaigns-wrapup_message$NWE
Utiliser la liste DNC interne: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Utilisez la liste de campagne DNC: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentCodes De PauseActif: $NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Campagne Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Désactiver la modification des données d'un client$NWB#vicidial_campaigns-disable_alter_custdata$NWE
Désactiver Alter clientèle Téléphone:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Autoriser la connection dans les distributeurs vides: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
N Hopper Dialing: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Propriétaire composer seulement: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Agent de sélectionner des territoires: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agent d-affichage composable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Agent Chef de file d'attente d'affichage:$NWB#vicidial_campaigns-display_queue_count$NWE
Agent Voir appels en attente: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Voir les appels en attente de lancement: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agent Grab appels en attente: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Agent d-appel Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agent Pause après chaque appel: $NWB#vicidial_campaigns-pause_after_each_call$NWE
Identification Manuelle De Liste De Cadran :$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manuelle Filter:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Agent de copie d'écran du Presse-papiers: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agent Screen Extended Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Way Outbound Call CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Call Préfixe de numérotation: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Groupe Alias permis: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Groupe par défaut Alias: $NWB#vicidial_campaigns-default_group_alias$NWE
Vtiger Recherche Catégorie: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Recherche Dead Comptes: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Vtiger Créer Enregistrement d'appel: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Créer Lead Enregistrement: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger état des appels: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger Screen Login: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Popup Adresse: $NWB#vicidial_campaigns-crm_login_address$NWE
Début de l-appel Web: $NWB#vicidial_campaigns-start_call_url$NWE
Dispo Call Web: $NWB#vicidial_campaigns-dispo_call_url$NWE
Groupes entrants autorisés:
"; + echo " $NWB#vicidial_campaigns-closer_campaigns$NWE
\n"; + echo "$groups_list"; + echo "
Groupe De Transfert De Défaut :$NWB#vicidial_campaigns-default_xfer_group$NWE
Groupes Laissés De Transfert :
"; + echo " $NWB#vicidial_campaigns-xfer_groups$NWE
\n"; + echo "$XFERgroups_list"; + echo "
\n"; + + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTES DANS CETTE CAMPAGNE:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
ID DE LA LISTENOM DE LA LISTEDESCRIPTIONABOUTIT COUNTACTIFLAST CALL DATEMODIFIER
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFIER

\n"; + + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Cette campagne a $active_lists listes actives et $inactive_lists listes inactives

\n"; + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - CACHER

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - MONTRER

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Cette campagne a $hopper_leads fiches dans le distributeur de fiches

\n"; + echo "Cliquez ici pour voir quelles fiches sont dans le distributeur à l'instant

\n"; + echo "Cliquez ici pour voir une VDAD rapport de cette campagne

\n"; + } + echo "Cliquez ici pour voir les rappels réservés de cette campagne

\n"; + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à cette campagne
\n"; + } + echo "
\n"; + } + + + ##### CAMPAIGN CUSTOM STATUSES ##### + if ($SUB==22) + { + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + echo "
\n"; + echo "
STATUTS PERSONNALISES DANS CETTE CAMPAGNE:   $NWB#vicidial_campaign_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[5]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ETATDESCRIPTIONSELECTIONABLERÉPONSE HUMAINECATÉGORIEMODIFY-DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + echo "SUPPRIMER\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AJOUTER UN NOUVEAU STATUT DE CAMPAGNE PERSONNALISE
\n"; + echo "\n"; + echo "\n"; + echo "Etat:   \n"; + echo "Description:   \n"; + echo "Selectionnable:  
\n"; + echo "Réponse de l'homme:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Catégorie :\n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN HOTKEYS ##### + if ($SUB==23) + { + echo "
PERSONNALISER LES RACCOURCIS CLAVIER DE CETTE CAMPAGNE:   $NWB#vicidial_campaign_hotkeys$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + + } + + echo "
RACCOURCI CLAVIERETATDESCRIPTIONSUPPRIMER
$rowx[1]$rowx[0]$rowx[2]SUPPRIMER
\n"; + + echo "
AJOUTER UN NOUVEAU RACCOURCI CLAVIER PERSONNALISE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Hotkey:   \n"; + echo "Etat:   \n"; + echo "
\n"; + echo "

\n"; + } + + ##### CAMPAIGN LEAD RECYCLING ##### + if ($SUB==25) + { + ### display counts on leads that have hit the limit in this campaign + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $RECYCLE_status[$o] = $rowx[2]; + $RECYCLE_delay[$o] = $rowx[3]; + $RECYCLE_attempt[$o] = $rowx[4]; + $RECYCLE_active[$o] = $rowx[5]; + $RECYCLE_count[$o] = "'Y','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'"; + if ($RECYCLE_attempt[$o]==1) {$RECYCLE_count[$o] = "'Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==2) {$RECYCLE_count[$o] = "'Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==3) {$RECYCLE_count[$o] = "'Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==4) {$RECYCLE_count[$o] = "'Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==5) {$RECYCLE_count[$o] = "'Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==6) {$RECYCLE_count[$o] = "'Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==7) {$RECYCLE_count[$o] = "'Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==8) {$RECYCLE_count[$o] = "'Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==9) {$RECYCLE_count[$o] = "'Y9','Y10'";} + if ($RECYCLE_attempt[$o]>9) {$RECYCLE_count[$o] = "'Y10'";} + $o++; + } + $o=0; + + echo "

FICHES EN RECYCLAGES DANS CETTE CAMPAGNE:   $NWB#vicidial_lead_recycle$NWE
\n"; + echo "\n"; + echo "\n"; + + while ($recycle_to_print > $o) + { + $recycle_limit=0; + if (strlen($camp_lists) > 2) + { + $stmt="SELECT count(*) from vicidial_list where status='$RECYCLE_status[$o]' and list_id IN($camp_lists) and called_since_last_reset IN($RECYCLE_count[$o]);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $counts_to_print = mysql_num_rows($rslt); + if ($counts_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + $recycle_limit = $rowx[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $o++; + } + + echo "
ETATDELAI DE TENTATIVENOMBRE MAX DE TENTATIVESLIMITE AU FILSACTIF SUPPRIMER
  $RECYCLE_status[$o]
\n"; + echo "\n"; + echo "\n"; + echo "
$recycle_limit   SUPPRIMER
\n"; + + echo "
AJOUTER UN NOUVEAU RECYCLAGE DE FICHES DE LA CAMAPGNE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Etat:   \n"; + echo "Délai d'attente: \n"; + echo "Nombre max de tentatives: \n"; + echo "
\n"; + + echo "

\n"; + echo "
\n"; + echo "* Lead compte active des listes de prises dans la campagne ne.\n"; + } + + ##### CAMPAIGN AUTO-ALT-NUMBER DIALING ##### + if ($SUB==26) + { + echo "

APPEL AUTOMATIQUE DU NUMERO ALTERNATIF POUR CETTE CAMPAGNE:   $NWB#vicidial_auto_alt_dial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $auto_alt_dial_statuses = preg_replace("/ -$/","",$auto_alt_dial_statuses); + $AADstatuses = explode(" ", $auto_alt_dial_statuses); + $AADs_to_print = (count($AADstatuses) -1); + + $o=0; + while ($AADs_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $o++; + + echo "\n"; + echo "\n"; + } + + echo "
STATUSESSUPPRIMER
$AADstatuses[$o]SUPPRIMER
\n"; + + echo "
AJOUTER UN NOUVEAU STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF
\n"; + echo "\n"; + echo "\n"; + echo "Etat:   \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN CODES DE PAUSE ##### + if ($SUB==27) + { + echo "

CODES DE PAUSE DES AGENTS POUR CETTE CAMPAGNE:   $NWB#vicidial_pause_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CODES DE PAUSEFACTURABLEMODIFIERSUPPRIMER
$rowx[0]\n"; + echo "\n"; + echo "\n"; + echo "  \n"; + echo "
SUPPRIMER
\n"; + + echo "
AJOUTER UN NOUVEAU CODE DE PAUSE
\n"; + echo "\n"; + echo "\n"; + echo "Code de pause: \n"; + echo "Nom du code de pause: \n"; + echo "   Facturable: \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN QC SETTINGS ##### + if ( ($SUB==28) and ($SSqc_features_active > 0) ) + { + $stmt="SELECT list_id,list_name,active from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $qc_lists_list=''; + + $p=0; + while ($lists_to_print > $p) + { + $rowx=mysql_fetch_row($rslt); + $qc_lists_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "

QC SETTINGS pour cette campagne:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; +# echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + echo "QC Enabled: $NWB#vicidial_campaigns-qc_enabled$NWE
QC Statut:
$NWB#vicidial_campaigns-qc_statuses$NWE
$qc_statuses_list
QC Lists:
$NWB#vicidial_campaigns-qc_lists$NWE
$qc_lists_list
QC WebForm:$NWB#vicidial_campaigns-qc_web_form_address$NWE
QC Script: $NWB#vicidial_campaigns-qc_script$NWE
QC Shift: $NWB#vicidial_campaigns-qc_shift_id$NWE
Get Lancement Record QC: $NWB#vicidial_campaigns-qc_get_record_launch$NWE
QC Voir l'enregistrement: $NWB#vicidial_campaigns-qc_show_recording$NWE
\n"; + echo "

\n"; + } + + ##### CAMPAIGN SURVEY SETTINGS ##### + if ($SUB=='20A') + { + + echo "

SONDAGE SETTINGS pour cette campagne:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "
Enquête Premier fichier audio: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Enquête DTMF Digits: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
Enquête Non Intéressé Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Enquête sur Opt-in audio de dossier: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Enquête Non Intéressé fichier audio: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Enquête sur la méthode: $NWB#vicidial_campaigns-survey_method$NWE
Etude de non-réponse de l'action: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Enquête Non Intéressé Etat: $NWB#vicidial_campaigns-survey_ni_status$NWE
Enquête sur le troisième chiffre: $NWB#vicidial_campaigns-survey_third_digit$NWE
Troisième enquête sur Fichier Audio: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Troisième enquête Etat: $NWB#vicidial_campaigns-survey_third_status$NWE
Enquête Troisième prorogation: $NWB#vicidial_campaigns-survey_third_exten$NWE
Enquête quatrième chiffre: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Quatrième étude Fichier Audio: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Quatrième enquête sur l-état: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Quatrième enquête Extension: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Enquête sur la carte réponse Digit: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Sondage Enquête Xfer Extension: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Enquête sur la campagne d'enregistrement du répertoire: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
Boîte vocale: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; + echo "

\n"; + } + + + if ($SUB < 1) + { + echo "

\n"; + echo "DECONNECTER TOUS LES AGENTS DE CETTE CAMPAGNE

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + + if ($LOGdelete_campaigns > 0) + { + echo "

SUPPRIMER CETTE CAMPAGNE\n"; + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } +} + + +###################### +# ADD=34 modify campaign info in the system - Basic View +###################### + +if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==34) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $display_dialable_count = $row[39]; + $dial_method = $row[46]; + $adaptive_intensity = $row[51]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $list_order_mix = $row[64]; + $default_xfer_group = $row[67]; + $campaign_allow_inbound = $row[65]; + $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active < 1) + { + echo ""; + } + echo "
$row[0]: Vue basique Vue détaillée Liste Mix Ecran temps réel  
\n"; + + if ($SUB < 1) + { + echo "
\n"; + echo ""; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "SUPPRIMER\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
ID de la campagne: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Nom de la campagne: $NWB#vicidial_campaigns-campaign_name$NWE
Description de la campagne: $row[57]$NWB#vicidial_campaigns-campaign_description$NWE
Campagne Changement Date: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campagne Login Date: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Actif: $NWB#vicidial_campaigns-active$NWE
Extension du parc: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Formulaire Web: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Autoriser les closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Groupe De Transfert De Défaut :$default_xfer_group $NWB#vicidial_campaigns-default_xfer_group$NWE
Permettez d'arrivée et mélangé :$campaign_allow_inbound $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Statut d'appel$o: \n"; + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Add A Dial Etat:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Ordre de la liste: $NWB#vicidial_campaigns-lead_order$NWE
Liste Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Filtre de la fiche: $NWB#vicidial_campaigns-lead_filter_id$NWE
Niveau du distributeur de fiches: $NWB#vicidial_campaigns-hopper_level$NWE
Forcer la réinitialisation du distributeur de fiches: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Méthode d'appel: $NWB#vicidial_campaigns-dial_method$NWE
Niveau de l'appel automatique: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Adapter le modificateur d'intensité: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Script: $script_id
Lancer l'appel: $get_call_launch
\n"; + + echo "
\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
LISTES DANS CETTE CAMPAGNE:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
ID DE LA LISTENOM DE LA LISTEDESCRIPTIONABOUTIT COUNTACTIFLAST CALL DATEMODIFIER
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFIER

\n"; + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Cette campagne a $active_lists listes actives et $inactive_lists listes inactives

\n"; + + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - CACHER

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - MONTRER

"; + } + + + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Cette campagne a $hopper_leads fiches dans le distributeur de fiches

\n"; + echo "Cliquez ici pour voir quelles fiches sont dans le distributeur à l'instant

\n"; + echo "Cliquez ici pour voir une VDAD rapport de cette campagne

\n"; + } + echo "Cliquez ici pour voir les rappels réservés de cette campagne

\n"; + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à cette campagne
\n"; + } + + echo "
\n"; + + echo "
\n"; + + ### list of agent rank or skill-level for this campaign + echo "
\n"; + echo "
GRADES D'AGENT POUR CETTE CAMPAGNE :
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + + echo "DECONNECTER TOUS LES AGENTS DE CETTE CAMPAGNE

\n"; + + + if ($LOGdelete_campaigns > 0) + { + echo "

SUPPRIMER CETTE CAMPAGNE\n"; + } + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } +} + + +###################### +# ADD=31 or 34 and SUB=29 for list mixes +###################### +if ( ( ($ADD==34) or ($ADD==31) ) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ( ($ADD==34) or ($ADD==31) ) +{ + if ($LOGmodify_campaigns==1) + { + ##### CAMPAIGN LIST MIX SETTINGS ##### + if ($SUB==29) + { + ##### get list_id listings for dynamic pulldown + $stmt="SELECT list_id,list_name from vicidial_lists where campaign_id='$campaign_id' order by list_id"; + $rslt=mysql_query($stmt, $link); + $mixlists_to_print = mysql_num_rows($rslt); + $mixlists_list=""; + + $o=0; + while ($mixlists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixlists_list .= "\n"; + $mixlistsname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + + echo "

MÉLANGES DE LISTE POUR CETTE CAMPAGNE :  $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; + + echo "
ATTENTION, nous recommandons que la liste Mix pour les utilisateurs avancés, S-il vous plaît lire le manuel VICIDIAL Manager
\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } + + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $rslt=mysql_query($stmt, $link); + $listmixes = mysql_num_rows($rslt); + $o=0; + while ($listmixes > $o) + { + $rowx=mysql_fetch_row($rslt); + $vcl_id=$rowx[0]; + $o++; + + if ($o < 2) + {$tablecolor='bgcolor="#99FF99"'; $bgcolor='bgcolor="#CCFFCC"';} + else + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$tablecolor='bgcolor="#B9CBFD"'; $bgcolor='bgcolor="#9BB9FB"';} + else + {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} + } + echo "
\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + } + else + {echo "$rowx[5]\n";} + echo "\n"; + echo "\n"; + +# list_id|order|percent|statuses|:list_id|order|percent|statuses|:... +# 101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -| +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX','TESTCAMP List Mix','TESTCAMP','101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX2','TESTCAMP List Mix2','TESTCAMP','101|1|20| A B -|:102|2|45| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX3','TESTCAMP List Mix3','TESTCAMP','101|1|30| A NA -|:102|2|35| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); + + $MIXentries = $MT; + $MIXentries = explode(":", $rowx[3]); + $Ms_to_print = (count($MIXentries) - 0); + $q=0; + while ($Ms_to_print > $q) + { + $MIXdetails = explode('|', $MIXentries[$q]); + $MIXdetailsLIST = $MIXdetails[0]; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $r=0; + while ($Ds_to_print > $r) + { + $r++; + $Dsql .= "'$Dstatuses[$r]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "\n"; + + + echo "\n"; + + + $q++; + + } + + + + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + $X='X'; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$vcl_id:\n"; + echo "\n"; + echo "     DELETE LIST MIX
Etat: \n"; + if ($rowx[5]=='INACTIVE') + { + echo "$rowx[5]\n"; + echo "PLACEZ À ACTIFMethod:\n"; + echo "
ID DE LA LISTEPRIORITÉ% MIXSTATUSES
\n"; + echo "\n"; + echo "List: $MIXdetailsLIST   SUPPRIMER\n"; + + + + echo " \n"; + echo "ADD   \n"; + echo "SUPPRIMER\n"; + echo "
\n"; + echo "Difference %: \n"; + echo "   \n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "List: \n"; + + if ($q > 39) {$AE_disabled = 'DISABLED';} + else {$AE_disabled = '';} + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "SUPPRIMER\n"; + echo "
\n"; + } + + + echo "

AJOUTER UNE NOUVELLE LISTE MIX
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Mix ID: Mix Name: Mix Method: "; + echo "
List: Dial Etat:  
\n"; + + echo "
\n"; + + } + } + echo "
\n"; +} + + +###################### +# ADD=30 campaign not allowed +###################### + +if ($ADD==30) +{ +echo "
\n"; + echo ""; +echo "You do not have permission to view campaign $campaign_id\n"; +} + + +###################### +# ADD=32 display all campaign statuses +###################### +if ($ADD==32) +{ +echo "
\n"; + echo ""; + +echo "
LISTES FAITES SUR COMMANDE DE STATUTS DE CAMPAGNE :\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMSTATUSESMODIFIER
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_statuses where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY STATUSES
\n"; +} + + +###################### +# ADD=33 display all campaign hotkeys +###################### +if ($ADD==33) +{ +echo "
\n"; + echo ""; + +echo "
LISTES DE LA CAMPAGNE HOTKEYS :\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMHOTKEYSMODIFIER
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_hotkeys where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY HOTKEYS
\n"; +} + + +###################### +# ADD=35 display all campaign lead recycle entries +###################### +if ($ADD==35) +{ +echo "
\n"; + echo ""; + +echo "
LE FIL DE CAMPAGNE RÉUTILISENT DES LISTES :\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMLE FIL RÉUTILISEMODIFIER
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_lead_recycle where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY LE FIL RÉUTILISE
\n"; +} + + +###################### +# ADD=36 display all campaign auto-alt dial entries +###################### +if ($ADD==36) +{ +echo "
\n"; + echo ""; + +echo "
LISTES DE CADRAN DU FIL AUTO-ALT DE CAMPAGNE :\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMAUTO-ALT DIALMODIFIER
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaigns_id_list[$o]';"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if (strlen($row[0])<3) + {echo "NONE";} + echo "MODIFY AUTO-ALT DIAL
\n"; +} + + +###################### +# ADD=37 display all campaign agent pause codes +###################### +if ($ADD==37) +{ +echo "
\n"; + echo ""; + +echo "
LISTES DES CODES DE PAUSE D'AGENT DE CAMPAGNE :\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMCODES DE PAUSEMODIFIER
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT pause_code from vicidial_pause_codes where campaign_id='$campaigns_id_list[$o]' order by pause_code;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY CODES DE PAUSE
\n"; +} + + +###################### +# ADD=39 display all campaign list mixes +###################### +if ($ADD==39) +{ +echo "
\n"; + echo ""; + +echo "
LISTES DE MÉLANGE DE LISTE DE CAMPAGNE :\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAIGNNOMLIST MIXMODIFIER
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT vcl_id from vicidial_campaigns_list_mix where campaign_id='$campaigns_id_list[$o]' order by status,vcl_id;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY LIST MIX
\n"; +} + + + + + +###################### +# ADD=311 modify list info in the system +###################### + +if ($ADD==311) + { + if ($LOGmodify_lists==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; + + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names + + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFIER UN ENREGISTREMENT DE LA LISTE: $list_id
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "
ID de la liste: $list_id$NWB#vicidial_lists-list_id$NWE
Nom de la liste: $NWB#vicidial_lists-list_name$NWE
Description de la liste: $NWB#vicidial_lists-list_description$NWE
Campagne: $NWB#vicidial_lists-campaign_id$NWE
Actif: $NWB#vicidial_lists-active$NWE
Réinitialiser les statuts des fiches appelées pour cette liste: $NWB#vicidial_lists-reset_list$NWE
Reset Times: $NWB#vicidial_lists-reset_time$NWE
Date de changement de la liste: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Liste Date Last Call: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agent Script Override: $NWB#vicidial_lists-agent_script_override$NWE
Campagne CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
Message de répondeur Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
Drop Inbound Groupe Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
numéro de Transfer-Conf 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; + + echo "
\n"; + echo "
STATUTS DANS CETTE LISTE:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 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"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
ETATNOM DU STATUTAPPELENON APPELE
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
ZONES DE TEMPS DANS CETTE LISTE:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
GMT OFFSET NOW (heure locale)APPELENON APPELE
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
Guichet unique de cette liste:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERAPPELENON APPELE
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
LES RANGS DANS CETTE LISTE:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
RANKAPPELENON APPELE
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
SOUS TOTAUX$lead_list[Y_count]$lead_list[N_count]
TOTAL$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
NOMBRE D'APPELES DANS CETTE LISTE:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; + + $sts=0; + $statuses_called_to_print = count($status); + while ($statuses_called_to_print > $sts) + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; + $first++; + } + echo "\n"; + + echo "
ETATNOM DU STATUT$first$FplusSOUS TOTAL
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
TOTAL$all_called_count[$first]$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Cliquez ici pour voir tous les CallBack Détient dans cette liste

\n"; + echo "

Cliquez ici pour télécharger la liste

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

SUPPRIMER CETTE LISTE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à cette liste
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + +###################### +# ADD=3111 modify in-group info in the system +###################### + +if ($ADD==3111) + { + if ($LOGmodify_ingroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + + echo "
MODIFIER UN ENREGISTREMENT DE GROUPES: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ID du groupe: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nom du groupe: $NWB#vicidial_inbound_groups-group_name$NWE
Couleur du groupe: $NWB#vicidial_inbound_groups-group_color$NWE
Actif: $NWB#vicidial_inbound_groups-active$NWE
Formulaire Web: $NWB#vicidial_inbound_groups-web_form_address$NWE
Formulaire Web Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Appeler l'agent suivant : $NWB#vicidial_inbound_groups-next_agent_call$NWE
File d'attente de priorité: $NWB#vicidial_inbound_groups-queue_priority$NWE
Affichage de l'enseigne: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Lancer l'appel: $NWB#vicidial_inbound_groups-get_call_launch$NWE
DTMF Transfert-Conf 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
DTMF Transfert-Conf 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
numéro de Transfer-Conf 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Minuterie d-action: $NWB#vicidial_inbound_groups-timer_action$NWE
Minuterie d-action Message: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Minuterie d-action Seconds: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Temps avant abandon de l'appel: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Drop d'action:$NWB#vicidial_inbound_groups-drop_action$NWE
Extension d'abandon: $NWB#vicidial_inbound_groups-drop_exten$NWE
Boîte vocale: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Drop de transfert du Groupe:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Temps D'Appel :$NWB#vicidial_inbound_groups-call_time_id$NWE
Après Action D'Heures :$NWB#vicidial_inbound_groups-after_hours_action$NWE
Après Nom de fichier De Message D'Heures : audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Après Prolongation D'Heures :$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Après Des Heures Boîte vocale : voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Après les heures d'ouverture de transfert de Groupe:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
Agents n Queueing: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
Non Non Queue action de l-agent: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Appel du menu:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID de la liste: "; + echo "
ID de la campagne: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Extension:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Boîte vocale: voicemail chooser\n"; + } + + echo "
+
 
Nom de fichier Bienvenu De Message : audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Play Message de bienvenue:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Musique Sur Le Contexte De Prise : moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
Sur Le Nom de fichier De Message de sollicitation De Prise : audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
Sur L'Intervalle De Message de sollicitation De Prise :$NWB#vicidial_inbound_groups-prompt_interval$NWE
Jouer en ligne Lieu:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Hold estimée Play Time:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Hold Time Option:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Hold Time Option Seconds:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Hold Time Option Extension:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Hold Time Option de messagerie vocale: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Hold Time Option de transfert en groupe:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Hold Time Option Callback Filename: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Hold Time Option Callback Liste ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agent d-alerte Filename: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
L'Alerte D'Agent Retardent :$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Groupe De Transfert De Défaut :$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Groupe par défaut Alias: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Hold Recall transfert en groupe:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Pas de délai d'appel Route:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
En groupe enregistrement Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
En groupe d'enregistrement du fichier:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Stats Pourcentage des appels dans les X secondes 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Stats Pourcentage des appels dans les X secondes 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Début de l-appel Web: $NWB#vicidial_inbound_groups-start_call_url$NWE
Dispo Call Web: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Inbound Groupe QC Paramètres:
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC Statut:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC WebForm:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
Get Lancement Record QC: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
QC Voir l'enregistrement: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; + echo "

\n"; + + + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
AGENT RANKS FOR THIS ENTRANT GROUP:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
USER     RANK     CALLS TODAY
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Cliquez ici pour voir un rapport de ce groupe d'entrants

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "CAMPAGNES DE PERMETTRE DANS CE GROUPE:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

SUPPRIMER CE IN-GROUP\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce groupe en\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + +###################### +# ADD=3311 modify did info in the system +###################### + +if ($ADD==3311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
Modifier un DID RECORD:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
DID Extension:$NWB#vicidial_inbound_dids-did_pattern$NWE
A Description:$NWB#vicidial_inbound_dids-did_description$NWE
Actif: $NWB#vicidial_inbound_dids-did_active$NWE
Route de DID:$NWB#vicidial_inbound_dids-did_route$NWE
Extension:$NWB#vicidial_inbound_dids-extension$NWE
Extension Contexte:$NWB#vicidial_inbound_dids-exten_context$NWE
Boîte vocale: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Téléphone Extension:$NWB#vicidial_inbound_dids-phone$NWE
IP du serveur: $NWB#vicidial_inbound_dids-server_ip$NWE
Appel du menu: $NWB#vicidial_inbound_dids-menu_id$NWE
Utilisateur Agent:$NWB#vicidial_inbound_dids-user$NWE
Unavailable Action utilisateur:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Utilisateur Settings En Route-Group:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID du groupe: $NWB#vicidial_inbound_dids-group_id$NWE
In-Call Groupe Handle Méthode:$NWB#vicidial_inbound_dids-call_handle_method$NWE
En groupe Agent Méthode de recherche:$NWB#vicidial_inbound_dids-agent_search_method$NWE
In-Liste du groupe ID:$NWB#vicidial_inbound_dids-list_id$NWE
En-groupe ID de la campagne:$NWB#vicidial_inbound_dids-campaign_id$NWE
En-groupe Téléphone Code:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Cliquez ici pour voir un rapport de trafic pour cette DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

SUPPRIMER CETTE DID\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce DID\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
MODIFIER UN APPEL Record menu: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Menu ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Nom du menu: $NWB#vicidial_call_menu-menu_name$NWE
Menu rapide: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Menu Timeout: $NWB#vicidial_call_menu-menu_timeout$NWE
Menu prompt timeout: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Menu Blancs Prompt: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Menu Répétez: $NWB#vicidial_call_menu-menu_repeat$NWE
Menu Heure Départ: $NWB#vicidial_call_menu-menu_time_check$NWE
Temps D'Appel :$NWB#vicidial_call_menu-call_time_id$NWE
Le suivi des appels dans Real-Time Report: $NWB#vicidial_call_menu-track_in_vdac$NWE
Groupe de suivi: $NWB#vicidial_call_menu-tracking_group$NWE
Appel du menu Options:
+ Option: $dtmf_list   + Description: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Appel du menu:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID de la liste: "; + echo "
ID de la campagne: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Extension:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Boîte vocale: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Option: $dtmf_list   + Description: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan Entrée:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan Entrée: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

SUPPRIMER CETTE CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir chages Admin à ce menu d-appel
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + +###################### +# ADD=31111 modify remote agents info in the system +###################### + +if ($ADD==31111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Début des ID utilisateurs: (nombres seulement, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Nombre de lignes: (nombres seulement)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP du serveur: $NWB#vicidial_remote_agents-server_ip$NWE
Extension externe: (numéro du dial plan pour atteindre les agents)$NWB#vicidial_remote_agents-conf_exten$NWE
Etat: $NWB#vicidial_remote_agents-status$NWE
Campagne: $NWB#vicidial_remote_agents-campaign_id$NWE
Groupes entrants: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

SUPPRIMER CET AGENT DISTANT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à cette télécommande agent
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=311111 modify user group info in the system +###################### + +if ($ADD==311111) + { + if ($LOGmodify_usergroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
MODIFIER UN ENREGISTREMENT DE GROUPE D'UTILISATEURS\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + + echo "\n"; + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Groupe: (pas d'espace ni de ponctuation)$NWB#vicidial_user_groups-user_group$NWE
Description: (Description du groupe)$NWB#vicidial_user_groups-group_name$NWE
Force timeclock Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Shift exécution: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campagnes autorisées:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Groupe de changements:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; + } + echo "
 
Le statut de mandataire Viewable Groupes:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } + echo "
 
Le statut de mandataire Afficher Time: $NWB#vicidial_user_groups-agent_status_view_time$NWE
QC permis Campagnes:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC permis l'arrivée des groupes:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; + + + ### list of users in this user group + + $active_confs = 0; + $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + echo "
\n"; + echo "
UTILISATEURS APPARTENANT A CE GROUPE D'UTILISATEURS: $users_to_print
\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
USERFULL NAMENIVEAUACTIF
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Cliquez ici pour voir tous les CallBack Détient dans ce groupe d'utilisateurs

\n"; + echo "

Cliquez ici pour voir le statut timeclock pour ce groupe d'utilisateurs

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

SUPPRIMER CE GROUPE \n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce groupe d'utilisateurs
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=3111111 modify script info in the system +###################### + +if ($ADD==3111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
MODIFIER UN SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID du script: $script_id$NWB#vicidial_scripts-script_name$NWE
Nom du script: (titre du script)$NWB#vicidial_scripts-script_name$NWE
Commentaires du script: $NWB#vicidial_scripts-script_comments$NWE
Actif: $NWB#vicidial_scripts-active$NWE
Texte du script:

Prévisualisation du script
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " CAMPAIGNS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " IN-GROUPS USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

SUPPRIMER CE SCRIPT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages de ce script\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=31111111 modify filter info in the system +###################### + +if ($ADD==31111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; + + echo "
MODIFIER UN FILTRE\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID du filtre:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nom du filtre: (courte description du filtre)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commentaires du filtre: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtre Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + echo "

"; + echo "
TEST SUR LA CAMPAGNE:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + if ($LOGdelete_filters > 0) + { + echo "

SUPPRIMER CE FILTRE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce filtre\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=321111111 modify call time definition info in the system +###################### + +if ($ADD==321111111) + { + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Règle d'état ajoutée: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Règle d'état supprimée: $state_rule
\n"; + } + + $ADD=311111111; + } + else + { + echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; + } + } + + +###################### +# ADD=311111111 modify call time definition info in the system +###################### + +if ($ADD==311111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
MODIFIER UNE PERIODE D'APPELS\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identifiant de la période d'appels: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nom de la période d'appels: (courte description de la période d'appel)$NWB#vicidial_call_times-call_time_name$NWE
Commentaires de la période d'appels: $NWB#vicidial_call_times-call_time_comments$NWE
Début par défaut: Fin par défaut: $NWB#vicidial_call_times-ct_default_start$NWE
Début le dimanche: Fin le dimanche: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le lundi: Fin le lundi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mardi: Fin le mardi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mercredi: Fin le mercredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jeudi Start: Fin le jeudi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le vendredi: Fin le vendredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le samedi: Fin le samedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Activer les définitions des états des périodes d'appels pour cet enregistrement:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "CAMPAGNES UTILISANT CETTE PERIODE D'APPELS:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "ENTRANT GROUPS USING THIS CALL TIME:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPPRIMER CETTE DEFINITION DE PERIODE D'APPEL\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce temps de garde\n"; + } + } + else + { + echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; + } + + } + + +###################### +# ADD=3111111111 modify state call time definition info in the system +###################### + +if ($ADD==3111111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
MODIFIER UNE PERIODE D'APPELS D'ETAT
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Identifiant de la période d'appels: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
Nom de la période d'appels d'état: (courte description de la période d'appel)$NWB#vicidial_call_times-call_time_name$NWE
Commentaires de la période d'appels d'état: $NWB#vicidial_call_times-call_time_comments$NWE
Début par défaut: Fin par défaut: $NWB#vicidial_call_times-ct_default_start$NWE
Début le dimanche: Fin le dimanche: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le lundi: Fin le lundi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mardi: Fin le mardi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le mercredi: Fin le mercredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Jeudi Start: Fin le jeudi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le vendredi: Fin le vendredi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Début le samedi: Fin le samedi: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "PERIODE D'APPELS UTILISANT CET ETAT DE PERIODE D'APPELS:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPPRIMER CETTE DEFINITION DE PERIODE D'APPEL D'ETAT\n"; + } + } + else + { + echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; + } + } + + +###################### +# ADD=331111111 modify shift definition info in the system +###################### + +if ($ADD==331111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
MODIFIER UN DEPLACEMENT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Shift ID:$shift_id
Shift Nom: (brève description de l'évolution)$NWB#vicidial_shifts-shift_name$NWE
Start Time Shift:\n"; + echo "   End Time Shift:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Longueur Shift: $NWB#vicidial_shifts-shift_length$NWE
Shift-Ven:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Dimanche
\n"; + echo "Lundi
\n"; + echo "Mardi
\n"; + echo "Mercredi
\n"; + echo "Jeudi
\n"; + echo "Vendredi
\n"; + echo "Samedi
\n"; + echo "
\n"; + + echo "


\n"; + echo "Groupes d'utilisateurs UTILISANT CE SHIFT:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPPRIMER CETTE DEFINITION SHIFT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce changement\n"; + } + } + else + { + echo "Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière."; + } + + } + + +###################### +# ADD=31111111111 modify phone record in the system +###################### + +if ($ADD==31111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFIER UN TELEPHONE: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Extension du téléphone: $NWB#phones-extension$NWE (Agent Screen Login du téléphone)
Nuémro dans le dial plan: (chiffres seulement)$NWB#phones-dialplan_number$NWE
Boîte vocale: (chiffres seulement)$NWB#phones-voicemail_id$NWE
CallerID sortant: (chiffres seulement)$NWB#phones-outbound_cid$NWE
Adresse IP du téléphone: (optional)$NWB#phones-phone_ip$NWE
Adresse IP de l'ordinateur: (optional)$NWB#phones-computer_ip$NWE
IP du serveur: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Mot de passe:$NWB#phones-pass$NWE
Etat: $NWB#phones-status$NWE
Compte actif: $NWB#phones-active$NWE
Type de téléphone: $NWB#phones-phone_type$NWE
Nom complet: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Supprimer messagerie vocale après le courrier électronique: $NWB#phones-delete_vm_after_email$NWE
Compagnie: $NWB#phones-company$NWE
Image: $NWB#phones-picture$NWE
Nouveaux messages: $row[14]$NWB#phones-messages$NWE
Anciens messages: $row[15]$NWB#phones-old_messages$NWE
Protocole client: $NWB#phones-protocol$NWE
GMT local: (Ne PAS ajuster pour DST)$NWB#phones-local_gmt$NWE
Phone Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
Login du manager: $NWB#phones-ASTmgrUSERNAME$NWE
Mot de passe du manager: $NWB#phones-ASTmgrSECRET$NWE
Utilisateur par défaut de VICIDIAL: $NWB#phones-login_user$NWE
Mot de passe par défaut de VICIDIAL: $NWB#phones-login_pass$NWE
Campagne par défaut de VICIDIAL: $NWB#phones-login_campaign$NWE
Extension du parc: $NWB#phones-park_on_extension$NWE
Extension de la conférence: $NWB#phones-conf_on_extension$NWE
Extension du parc VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Fichier du parc VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Préfixe du moniteur: $NWB#phones-monitor_prefix$NWE
Extension d'enregistrement: $NWB#phones-recording_exten$NWE
Extension de la boîte vocale: $NWB#phones-voicemail_exten$NWE
Extension de VmailDump: $NWB#phones-voicemail_dump_exten$NWE
Extension du context: $NWB#phones-ext_context$NWE
Téléphone Contexte: $NWB#phones-phone_context$NWE
Conf dossier secret: $NWB#phones-conf_secret$NWE
Cannal d'envoi DTMF: $NWB#phones-dtmf_send_extension$NWE
Groupe d'appels sortants: $NWB#phones-call_out_number_group$NWE
Localisation du navigateur: $NWB#phones-client_browser$NWE
Répertoire d'installation: $NWB#phones-install_directory$NWE
URL du CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL par défaut de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Log des appels: $NWB#phones-AGI_call_logging_enabled$NWE
Changement d'utilisateur: $NWB#phones-user_switching_enabled$NWE
En conférence: $NWB#phones-conferencing_enabled$NWE
Raccrochage administrateur: $NWB#phones-admin_hangup_enabled$NWE
Détournement administrateur: $NWB#phones-admin_hijack_enabled$NWE
Moniteur administrateur: $NWB#phones-admin_monitor_enabled$NWE
Parc d'appel: $NWB#phones-call_parking_enabled$NWE
Contrôle de mise à jour: $NWB#phones-updater_check_enabled$NWE
Log AF: $NWB#phones-AFLogging_enabled$NWE
Queue activée: $NWB#phones-QUEUE_ACTION_enabled$NWE
Popup du CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Bouton de la boîte vocale: $NWB#phones-voicemail_button_enabled$NWE
Rafraichissement rapide: $NWB#phones-enable_fast_refresh$NWE
Taux du rafraichissement rapide: (in ms)$NWB#phones-fast_refresh_rate$NWE
MySQL persistant: $NWB#phones-enable_persistant_mysql$NWE
Appel automatique du numéro suivant: $NWB#phones-auto_dial_next_number$NWE
Arrêter l'enregistrement après chaque appel: $NWB#phones-VDstop_rec_after_each_call$NWE
Activer les messages SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Serveur DBX: (PrimaireDB Server)$NWB#phones-DBX_server$NWE
Base de données DBX: (PrimaireServer Database)$NWB#phones-DBX_database$NWE
Utilisateur DBX: (PrimaireDB Login)$NWB#phones-DBX_user$NWE
Mot de passe DBX: (PrimaireDB Secret)$NWB#phones-DBX_pass$NWE
Port DBX: (PrimaireDB Port)$NWB#phones-DBX_port$NWE
Serveur DBY: (SecondaireDB Server)$NWB#phones-DBY_server$NWE
Base de données DBY: (SecondaireServer Database)$NWB#phones-DBY_database$NWE
Utilisateur DBY: (SecondaireDB Login)$NWB#phones-DBY_user$NWE
Mot de passe DBY: (SecondaireDB Secret)$NWB#phones-DBY_pass$NWE
Port DBY: (SecondaireDB Port)$NWB#phones-DBY_port$NWE
Template ID: $NWB#phones-template_id$NWE
Conf Override: $NWB#phones-conf_override$NWE
\n"; + + echo "

Cliquez ici pour les statistiques des téléphones\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CE TELEPHONE\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=32111111111 modify phone alias record in the system +###################### + +if ($ADD==32111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
A MODIFIER TELEPHONE ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nom: $NWB#phones-alias_name$NWE
Téléphones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
TELEPHONES PORTABLES DANS CETTE ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGINEXTENSIONSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE PHONE ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce téléphone alias
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=33111111111 modify group alias record in the system +###################### + +if ($ADD==33111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
Modifier un groupe ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias Groupe ID: $row[0] $NWB#phones-group_alias_id$NWE
Nom du groupe Alias: $NWB#phones-group_alias_name$NWE
Nombre CallerID: $NWB#phones-caller_id_number$NWE
CallerID Nom: $NWB#phones-caller_id_name$NWE
Actif:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

Supprimer ce groupe ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce groupe alias
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=311111111111 modify server record in the system +###################### + +if ($ADD==311111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; + + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + + echo "
MODIFIER UN SERVEUR: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
ID du serveur: $NWB#servers-server_id$NWE
Description du serveur: $NWB#servers-server_description$NWE
Adresse IP du serveur: $NWB#servers-server_ip$NWE
Actif: $NWB#servers-active$NWE
Système de charge: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Chaînes: $channels_total   $NWB#servers-channels_total$NWE
Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
Version d'Asterisk: $NWB#servers-asterisk_version$NWE
Nombre max de trunks VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Max demande par seconde: $NWB#servers-outbound_calls_per_second$NWE
Equilibrage des appels VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
VICIDIAL Solde Rank:$NWB#servers-vicidial_balance_rank$NWE
Limite de l'équilibrage VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Hôte telnet: $NWB#servers-telnet_host$NWE
Port telnet: $NWB#servers-telnet_port$NWE
Utilisateur manager: $NWB#servers-ASTmgrUSERNAME$NWE
Mot de passe du manager: $NWB#servers-ASTmgrSECRET$NWE
Utilisateur de mise à jour manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Utilisateur manager pour l'écoute: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Utilisateur manager pour l'envoi: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf dossier secret: $NWB#servers-conf_secret$NWE
GMT local: (Ne PAS ajuster pour DST)$NWB#servers-local_gmt$NWE
VMail Dump Exten: $NWB#servers-voicemail_dump_exten$NWE
Extension AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexte par défaut: $NWB#servers-ext_context$NWE
Performances du système: $NWB#servers-sys_perf_log$NWE
Logs du serveur: $NWB#servers-vd_server_logs$NWE
Sortie des AGI: $NWB#servers-agi_output$NWE
Carrier Logging Actif: $NWB#servers-carrier_logging_active$NWE
Enregistrement Web Link: $NWB#servers-recording_web_link$NWE
Alternate Recording IP du serveur: $NWB#servers-alt_server_ip$NWE
Active Server Asterisk: $NWB#servers-active_asterisk_server$NWE
Active Server Agent: $NWB#servers-active_agent_login_server$NWE
Générer des fichiers de conf: $NWB#servers-generate_vicidial_conf$NWE
Reconstruire les fichiers de configuration: $NWB#servers-rebuild_conf_files$NWE
Reconstruire la musique d-attente: $NWB#servers-rebuild_music_on_hold$NWE
Mise à jour de sons: $NWB#servers-sounds_update$NWE
VICIDIAL Recording Limit: $NWB#servers-vicidial_recording_limit$NWE
\n"; + + + ### vicidial server trunk records for this server + echo "

LES MallesVICIDIAL POUR CE SERVEUR:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CAMPAGNE Malles RESTRICTION DELETE
$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "
SUPPRIMER
\n"; + + echo "
AJOUTER UN NOUVEAU TRUNK SERVEUR VICIDIAL
\n"; + echo "\n"; + echo "\n"; + echo "Malles:
\n"; + echo "CAMPAGNE:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "

\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
SUPPORTS DE CE SERVEUR:
\n"; + echo "\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDNOMREGISTRATIONACTIF
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
TELEPHONES SUR CE SERVEUR:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
EXTENSIONNOMACTIF
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEEXTENSION
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEEXTENSION
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Ce serveur a $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Ce serveur a $active_phones téléphones actifs et $inactive_phones téléphones inactifs

\n"; + echo "Ce serveur a $active_confs active conferences

\n"; + echo "Ce serveur a $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CE SERVEUR\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce serveur
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=331111111111 modify conf template record in the system +###################### + +if ($ADD==331111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; + + echo "
A MODIFIER CONF TEMPLATE RECORD: $row[0]
\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Template ID: $template_id
Nom du modèle: $NWB#vicidial_conf_templates-template_name$NWE
Template Sommaire: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
PHONES UTILISANT CE CONF TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
EXTENSIONNOMSERVERACTIF
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
SUPPORTS UTILISANT CE CONF TEMPLATE:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERNOMSERVERACTIF
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE CONF TEMPLATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce modèle de conf
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=341111111111 modify carrier record in the system +###################### + +if ($ADD==341111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFIER UN SUPPORT D'ENREGISTREMENT: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Carrier ID: $carrier_id
Nom du transporteur: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Description: $NWB#vicidial_server_carriers-carrier_description$NWE
Inscription à cordes: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID: $NWB#vicidial_server_carriers-template_id$NWE
Entrée de compte: $NWB#vicidial_server_carriers-account_entry$NWE
Protocole: $NWB#vicidial_server_carriers-protocol$NWE
Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan Entrée: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP du serveur: $NWB#vicidial_server_carriers-server_ip$NWE
Actif: $NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE CARRIER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages à ce transporteur
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
MODIFIER UN RECORD TTS: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS ID: $tts_id
TTS Nom: $NWB#vicidial_tts_prompts-tts_name$NWE
Actif: $NWB#vicidial_tts_prompts-active$NWE
TTS Text: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS ENTRY TTS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir chages Admin à cette entrée TTS
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Musique en attente d-identification: $moh_id
Musique d-attente Nom: $NWB#vicidial_music_on_hold-moh_name$NWE
Actif: $NWB#vicidial_music_on_hold-active$NWE
Random Order: $NWB#vicidial_music_on_hold-random$NWE
Fichiers audio: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rank:\n"; + + echo "   $rowx[0] - SUPPRIMER
\n"; + $o++; + } + + echo "
Ajouter un fichier audio: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE MUSIC ON HOLD ENTRY\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir chages d-administration pour cette musique en attente d-entrée
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
MODIFIER UN messagerie vocale: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Boîte vocale ID: $voicemail_id
Mot de passe:$NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Email:$NWB#vicidial_voicemail-email$NWE
Actif: $NWB#vicidial_voicemail-active$NWE
Supprimer messagerie vocale après le courrier électronique: $NWB#vicidial_voicemail-delete_vm_after_email$NWE
Nouveaux messages: $messages
Anciens messages: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE BOITE VOCALE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir chages Admin à cette boîte de messagerie vocale
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=3111111111111 modify conference record in the system +###################### + +if ($ADD==3111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFIER UNE CONFERENCE: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conférence: $NWB#conferences-conf_exten$NWE
IP du serveur: $NWB#conferences-server_ip$NWE
Extension courante:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE CONFERENCE\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +###################### +# ADD=31111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==31111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conférence: $NWB#conferences-conf_exten$NWE
IP du serveur: $NWB#conferences-server_ip$NWE
Extension courante:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

SUPPRIMER CETTE CONFERENCE VICIDIAL\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + +###################### +# ADD=311111111111111 modify vicidial system settings +###################### + +if ($ADD==311111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; + + echo "
MODIFIER LES REGLAGES DU SYSTEME VICIDIAL\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Version: $version
DB Schema Version: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto Utilisateur-add Value: $auto_user_add_value
Date d'installation: $install_date
Utiliser Non-Latin: $NWB#settings-use_non_latin$NWE
Webroot éditable: $NWB#settings-webroot_writable$NWE
Affichage de la désactivation d'un agent VICIDIAL: $NWB#settings-vicidial_agent_disable$NWE
Autoriser les messages SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL de l'accueil de l'administration: $NWB#settings-admin_home_url$NWE
Permettez Le Fichier journal De Transfert D'Agent: $NWB#settings-enable_agc_xfer_log$NWE
Horloge en temps Fin de la journée:$NWB#settings-timeclock_end_of_day$NWE
Dernière timeclock Auto Déconnection: $timeclock_last_reset_date
Agent Header Screen Format Date: $NWB#settings-vdc_header_date_format$NWE
Agent client Screen Format Date: $NWB#settings-vdc_customer_date_format$NWE
Agent Client Téléphone Screen Format: $NWB#settings-vdc_header_phone_format$NWE
Agent API Active:$NWB#settings-vdc_agent_api_active$NWE
Agent Only Lock Campagne de rappel: $NWB#settings-agentonly_callback_campaign_lock$NWE
Central Sound Control Actif: $NWB#settings-sounds_central_control_active$NWE
Sounds Web Server: $NWB#settings-sounds_web_server$NWE
Sounds Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Active Server Boîte vocale: $NWB#settings-active_voicemail_server$NWE
Auto Dial Limite: $NWB#settings-auto_dial_limit$NWE
Auto Outbound Dial-Actif: $NWB#settings-outbound_autodial_active$NWE
Max REMPLISSAGE demande par seconde: $NWB#settings-outbound_calls_per_second$NWE
Permettant de personnaliser le plan d-appel Entrées: $NWB#settings-allow_custom_dialplan$NWE
Territoires utilisateur Actif: $NWB#settings-user_territories_active$NWE
Activer Webform Deuxième: $NWB#settings-enable_second_webform$NWE
Activer TTS Intégration: $NWB#settings-enable_tts_integration$NWE
QC Active Caractéristiques: $NWB#settings-qc_features_active$NWE
Pull QC Dernière Heure: $qc_last_pull_time
Activer le log des QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP du serveur QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nom de la base de données QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
Login de la base de données QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Mot de passe de la base de données QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Identifiant des log de QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
Préfixe EnterQueue QueueMetrics: $NWB#settings-queuemetrics_eq_prepend$NWE
Activer Vtiger Integration: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Cliquez ici pour synchroniser les utilisateurs avec Vtiger\n"; + echo "
Vtiger DB IP du serveur: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Mot de passe:$NWB#settings-vtiger_pass$NWE
Vtiger Web: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Cliquez ici pour voir Admin chages pour les réglages du système
\n"; + } + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + + + + +###################### +# ADD=321111111111111 modify vicidial system statuses +###################### + +if ($ADD==321111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "STATUTS DE VICIDIAL DANS CE SYSTÈME :  $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ETATDESCRIPTIONSELECT-
ABLE
L'HOMME
REPONSE
CATÉGORIEMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "SUPPRIMER\n"; + } + else + { + echo "SUPPRIMER\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AJOUTEZ LE NOUVEAU STATUT DE SYSTÈME
\n"; + echo "\n"; + echo "Etat:   \n"; + echo "Description:
\n"; + echo "Selectionnable:   \n"; + echo "Réponse de l'homme:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Catégorie :\n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + + + +###################### +# ADD=331111111111111 modify vicidial status categories +###################### + +if ($ADD==331111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL ÉTAT CATEGORIES:   $NWB#vicidial_status_categories$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Avsc_id[$o] = $rowx[0]; + $Avsc_name[$o] = $rowx[1]; + $Avsc_description[$o] = $rowx[2]; + $Atovdad_display[$o] = $rowx[3]; + $Asale_category[$o] = $rowx[4]; + $Adead_lead_category[$o] = $rowx[5]; + $o++; + } + $p=0; + while ($o > $p) + { + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CATstatuses=''; + $stmt="SELECT status from vicidial_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + $stmt="SELECT status from vicidial_campaign_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $p++; + } + + echo "
CATÉGORIENOMSTATUTS DE CETTE CATEGORIE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$Avsc_id[$p]
\n"; + echo "$CATstatuses"; + echo "
TO VDAD Afficher:     Vente Catégorie:     Dead Lead Catégorie:  
Description:
        \n"; + echo "   SUPPRIMER
 
\n"; + + echo "
AJOUTEZ LA NOUVELLE CATÉGORIE DE STATUT
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Afficher:   \n"; + echo "Vente Catégorie:   \n"; + echo "Dead Lead Catégorie:  
\n"; + echo "Description:   \n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + + + +###################### +# ADD=341111111111111 modify vicidial QC status code +###################### + +if ($ADD==341111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL QC ÉTAT DANS CE SYSTEME DE CODES:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEDESCRIPTIONMODIFY/DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "SUPPRIMER\n"; + } + else + { + echo "SUPPRIMER\n"; + } + echo "
\n"; + + echo "
ADD NEW QC Code de statut
\n"; + echo "\n"; + echo "Etat:   \n"; + echo "Description:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) + { + echo "
\n"; + echo ""; + + echo "
RECHERCHER UN UTILISATEUR
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Numéro d'utilisateur :
Nom complet:
Niveau de l'utilisateur:
Groupe utilisateur:
\n"; + } + +###################### +# ADD=660 user search results +###################### + +if ($ADD==660) + { + echo "
\n"; + echo ""; + + $SQL = ''; + if ($user) {$SQL .= " user LIKE \"%$user%\" and";} + if ($full_name) {$SQL .= " full_name LIKE \"%$full_name%\" and";} + if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} + if ($user_group) {$SQL .= " user_group = '$user_group' and";} + $SQL = eregi_replace(" and$", "", $SQL); + if (strlen($SQL)>5) {$SQL = "and $SQL";} + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; +# echo "\n|$stmt|\n"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
RESULTATS DE LA RECHERCHE:\n"; + echo "
\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo "\n"; + $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]MODIFIER | STATISTIQUES | ETAT | TIME
\n"; + + } + + +###################################################################################################### +###################################################################################################### +####### 8 series, Callback lists +###################################################################################################### +###################################################################################################### + +###################### +# ADD=8 find all callbacks on hold by a User +###################### +if ($ADD==8) + { + if ($LOGmodify_users==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Utilisateur($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Utilisateur($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + + echo ""; + + $CBquerySQLwhere = "and user='$user'"; + + echo "
USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } + +###################### +# ADD=81 find all callbacks on hold within a Campaign +###################### +if ($ADD==81) + { + if ($LOGmodify_campaigns==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + + echo ""; + + $CBquerySQLwhere = "and campaign_id='$campaign_id'"; + + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } + +###################### +# ADD=811 find all callbacks on hold within a List +###################### +if ($ADD==811) + { + if ($LOGmodify_lists==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + + echo ""; + + $CBquerySQLwhere = "and list_id='$list_id'"; + + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } + +###################### +# ADD=8111 find all callbacks on hold within a user group +###################### +if ($ADD==8111) + { + if ($LOGmodify_usergroups==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; + + echo ""; + + $CBquerySQLwhere = "and user_group='$user_group'"; + + echo "
GROUPE D'UTILISATEURS CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } + +###################### +# ADD=82 display all callbacks on hold +###################### +if ($ADD==82) + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $NIVEAUlink='stage=NIVEAUUP';} + + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $rslt=mysql_query($stmt, $link); + $cb_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($cb_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
LEADLIST CAMPAGNEENTRY DATECALLBACK DATEUSERRECIPIENTETATGROUP
$row[1]$row[2]$row[3]$row[5]$row[6]$row[8]$row[9]$row[4]$row[11]
\n"; + + echo "$CBinactiveLINK"; + } + + + +###################################################################################################### +###################################################################################################### +####### 0 series, displays and searches +###################################################################################################### +###################################################################################################### + +###################### +# ADD=0 display all active users +###################### +if ($ADD==0) + { + echo "
\n"; + echo ""; + echo "
LISTE DES UTILISATEURS: "; + if (ereg('display_all',$status)) + { + $SQLstatus = ''; + echo "   Afficher uniquement les utilisateurs actifs\n"; + } + else + { + $SQLstatus = "and active='Y'"; + echo "   Afficher tous les utilisateurs\n"; + } + + $USERlink='stage=USERIDDOWN'; + $NAMElink='stage=NAMEDOWN'; + $NIVEAUlink='stage=NIVEAUDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $SQLorder='order by full_name'; + if (eregi("USERIDUP",$stage)) {$SQLorder='order by user asc'; $USERlink='stage=USERIDDOWN';} + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc'; $USERlink='stage=USERIDUP';} + if (eregi("NAMEUP",$stage)) {$SQLorder='order by full_name asc'; $NAMElink='stage=NAMEDOWN';} + if (eregi("NAMEDOWN",$stage)) {$SQLorder='order by full_name desc'; $NAMElink='stage=NAMEUP';} + if (eregi("NIVEAUUP",$stage)) {$SQLorder='order by user_level asc'; $NIVEAUlink='stage=NIVEAUDOWN';} + if (eregi("NIVEAUDOWN",$stage)) {$SQLorder='order by user_level desc'; $NIVEAUlink='stage=NIVEAUUP';} + if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
USER IDFULL NAMENIVEAUGROUPACTIFLIENS
$row[0]$row[1]$row[2]$row[3]$row[4]
MODIFIER | STATISTIQUES | ETAT | TIME
\n"; + } + +###################### +# ADD=10 display all campaigns +###################### +if ($ADD==10) + { + echo "
\n"; + echo ""; + + $stmt="SELECT campaign_id,campaign_name,active,dial_method,auto_dial_level,lead_order,dial_statuses from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES CAMPAGNES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + $o++; + } + + echo "
CAMPAIGN ID
NOM
ACTIVE   DIAL PROCEDE   NIVEAU   RESPONSABLE DE COMMANDE   DIAL STATUTS   MODIFIER
$row[0]   $row[1]   $row[2]   $row[3]   $row[4]   $row[5]   $row[6]MODIFIER
\n"; + } + + +###################### +# ADD=100 display all lists +###################### +if ($ADD==100) + { + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES LISTES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $lists_printed = ''; + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $lists_printed .= "'$row[0]',"; + $o++; + } + + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ID DE LA LISTENOM DE LA LISTEDESCRIPTIONRTIMEABOUTIT COUNTACTIFLAST CALL DATECAMPAIGNMODIFIER
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]MODIFIER
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]MODIFIER
\n"; + } + + + +###################### +# ADD=1000 display all inbound groups +###################### +if ($ADD==1000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,queue_priority,active,call_time_id,group_color from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $ingroups_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES GROUPES ENTRANTS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($ingroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
IN-GROUPNOMPRIORITÉACTIFTIMECOLORMODIFIER
$row[0] $row[1] $row[2] $row[3] $row[4]  MODIFIER
\n"; + } + + +###################### +# ADD=1300 display all inbound dids +###################### +if ($ADD==1300) + { + echo "
\n"; + echo ""; + + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route from vicidial_inbound_dids order by did_pattern"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + + echo "
ENTRANT DID LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
#DIDDESCRIPTIONACTIFROUTEMODIFIER
$row[0] $row[1] $row[2] $row[3] $row[4]MODIFIER
\n"; + } + + +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
CALL MENU LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDNOMPROMPTTIMEOUTOPTIONSMODIFIER
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]MODIFIER
\n"; + } + + +###################### +# ADD=10000 display all remote agents +###################### +if ($ADD==10000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id from vicidial_remote_agents order by server_ip,campaign_id,user_start"; + $rslt=mysql_query($stmt, $link); + $remoteagents_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES AGENTS DISTANTS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($remoteagents_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
USERLINESSERVEUR   CONF-EXTEN   STATUS   CAMPAIGN   MODIFIER
$row[1] $row[2] $row[3] $row[4] $row[5] $row[6]MODIFIER
\n"; + } + + +###################### +# ADD=100000 display all user groups +###################### +if ($ADD==100000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,forced_timeclock_login from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $usergroups_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES GROUPES D'UTILISATEURS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($usergroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
GROUPE D'UTILISATEURSGROUP NAMEForce timeclock   MODIFIER
$row[0] $row[1] $row[2]MODIFIER
\n"; + } + + +###################### +# ADD=1000000 display all scripts +###################### +if ($ADD==1000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,active from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES SCRIPTS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SCRIPT IDNom du scriptACTIVE   MODIFIER
$row[0] $row[1] $row[2]MODIFIER
\n"; + } + + +###################### +# ADD=10000000 display all filters +###################### +if ($ADD==10000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES FILTRES DE FICHES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($filters_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
FILTER IDFILTER NAMEMODIFIER
$row[0] $row[1]MODIFIER
\n"; + } + + +###################### +# ADD=100000000 display all call times +###################### +if ($ADD==100000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,ct_default_start,ct_default_stop from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $calltimes_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES PERIODES D'APPELS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($calltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME NOMDémarrage par défautDEFAULT STOPMODIFIER
$row[0] $row[1] $row[2] $row[3] MODIFIER
\n"; + } + +###################### +# ADD=1000000000 display all state call times +###################### +if ($ADD==1000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,sct_default_start,sct_default_stop from vicidial_state_call_times order by state_call_time_id"; + $rslt=mysql_query($stmt, $link); + $statecalltimes_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES PERIODES D'APPELS D'ETAT:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($statecalltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME STATECALLTIME NOMDémarrage par défautDEFAULT STOPMODIFIER
$row[0] $row[1] $row[2] $row[3] $row[4] MODIFIER
\n"; + } + +###################### +# ADD=130000000 display all shifts +###################### +if ($ADD==130000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + + echo "
SHIFT inscriptions:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($shifts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SHIFT IDSHIFT NOMSHIFT STARTSHIFT LONGUEURSEMAINEMODIFIER
$row[0] $row[1] $row[2] $row[3] $row[4] MODIFIER
\n"; + } + +###################### +# ADD=10000000000 display all phones +###################### +if ($ADD==10000000000) + { + echo "
\n"; + echo ""; + + $EXTENlink='stage=EXTENDOWN'; + $PROTOlink='stage=PROTODOWN'; + $SERVERlink='stage=SERVERDOWN'; + $STATUSlink='stage=STATUSDOWN'; + $SQLorder='order by extension,server_ip'; + if (eregi("EXTENUP",$stage)) {$SQLorder='order by extension asc'; $EXTENlink='stage=EXTENDOWN';} + if (eregi("EXTENDOWN",$stage)) {$SQLorder='order by extension desc'; $EXTENlink='stage=EXTENUP';} + if (eregi("PROTOUP",$stage)) {$SQLorder='order by protocol asc'; $PROTOlink='stage=PROTODOWN';} + if (eregi("PROTODOWN",$stage)) {$SQLorder='order by protocol desc'; $PROTOlink='stage=PROTOUP';} + if (eregi("SERVERUP",$stage)) {$SQLorder='order by server_ip asc'; $SERVERlink='stage=SERVERDOWN';} + if (eregi("SERVERDOWN",$stage)) {$SQLorder='order by server_ip desc'; $SERVERlink='stage=SERVERUP';} + if (eregi("STATUSUP",$stage)) {$SQLorder='order by status asc'; $STATUSlink='stage=STATUSDOWN';} + if (eregi("STATUSDOWN",$stage)) {$SQLorder='order by status desc'; $STATUSlink='stage=STATUSUP';} + $stmt="SELECT extension,protocol,server_ip,dialplan_number,voicemail_id,status,fullname,messages,old_messages from phones $SQLorder"; + $rslt=mysql_query($stmt, $link); + $phones_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES TELEPHONES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phones_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo " + + + + + + + + "; + echo "\n"; + $o++; + } + + echo "
EXTENPROTOSERVERDIAL PLANETATNOMVMAILLIENS
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]$row[7]$row[8]MODIFIER | STATISTIQUES
\n"; + } + +###################### +# ADD=12000000000 display all phones alias +###################### +if ($ADD==12000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias order by alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
TÉLÉLISTE DE TELEPHONESE ALIASAGES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ALIAS IDAliasTÉLÉLISTE DE TELEPHONESE ConnexionsMODIFIER
$row[0]$row[1]$row[2]MODIFIER
\n"; + } + +###################### +# ADD=13000000000 display all group alias +###################### +if ($ADD==13000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias order by group_alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
GROUPE ALIAS LISTAGES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ALIAS ID GROUPGROUPE NOM ALIASCID NUMÉROCID NOMACTIFMODIFIER
$row[0]$row[1]$row[2]$row[3]$row[4]MODIFIER
\n"; + } + +###################### +# ADD=100000000000 display all servers +###################### +if ($ADD==100000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,local_gmt from servers order by server_id"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES SERVEURS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($servers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SERVEUR IDNOMSERVEUR IPACTIFASTERISKMallesGMTMODIFIER
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]MODIFIER
\n"; + } + +###################### +# ADD=130000000000 display all conf templates +###################### +if ($ADD==130000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name from vicidial_conf_templates order by template_id"; + $rslt=mysql_query($stmt, $link); + $templates_to_print = mysql_num_rows($rslt); + + echo "
CONF TEMPLATE LISTEAGES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($templates_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Template IDNom du modèleMODIFIER
$row[0]$row[1]MODIFIER
\n"; + } + +###################### +# ADD=140000000000 display all carriers +###################### +if ($ADD==140000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,server_ip,protocol,registration_string,active from vicidial_server_carriers order by carrier_id"; + $rslt=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rslt); + + echo "
CARRIER LISTEAGES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($carriers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Carrier IDNom du transporteurIP du serveurProtocolInscriptionActiveMODIFIER
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFIER
\n"; + } + + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS IDTTS NomActiveTTS TextMODIFIER
$row[0]$row[1]$row[2]$row[3]MODIFIER
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameActiveRandom OrderMODIFIER
$row[0]$row[1]$row[2]$row[3]MODIFIER
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
VOCAL BOITES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameActiveNouveaux messagesAnciens messagesDeleteMODIFIER
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFIER
\n"; + } + + +###################### +# ADD=1000000000000 display all conferences +###################### +if ($ADD==1000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $conferences_to_print = mysql_num_rows($rslt); + + echo "
LISTE DES CONFERENCES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($conferences_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCESERVEUR IPEXTENSIONMODIFIER
$row[0]$row[1]$row[2]MODIFIER
\n"; + } + +###################### +# ADD=10000000000000 display all vicidial conferences +###################### +if ($ADD==10000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from vicidial_conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $vicidialconf_to_print = mysql_num_rows($rslt); + + echo "
VICIDIAL LISTE DES CONFERENCES:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vicidialconf_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCESERVEUR IPEXTENSIONMODIFIER
$row[0] $row[1] $row[2]MODIFIER
\n"; + } + + + + + +###################### +# ADD=700000000000000 view all activity in the admin log +###################### + +if ($ADD==700000000000000) + { + echo "
\n"; + echo ""; + + if ($stage > 9999) + { + $next_limit = ($stage + 10000); + $limitSQL = "10000 offset $stage"; + } + else + { + $next_limit = "10000"; + $limitSQL = "10000"; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log order by event_date desc limit $limitSQL;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN CHANGE LOG: (Mise à 10.000 dossiers)\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPTIONGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "NEXT\n"; + echo "
\n"; + } + + +###################### +# ADD=710000000000000 view all activity in the admin log made by one user +###################### + +if ($ADD==710000000000000) + { + echo "\n";echo "\n"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; + +?> +
+ +
\n"; + echo ""; + + $stmt="SELECT full_name from vicidial_users where user='$stage';"; + $rslt=mysql_query($stmt, $link); + $names_to_print = mysql_num_rows($rslt); + if ($names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $user_name = $row[0]; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where user='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN CHANGE LOG: Les modifications apportées par $stage - $user_name\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPTIONGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=720000000000000 view all activity in the admin log made to one section/value +###################### + +if ($ADD==720000000000000) + { + echo "\n"; +echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where event_section='$category' and record_id='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN CHANGE LOG: Section Records - $category - $stage\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPTIONGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=730000000000000 detail view of one admin log entry +###################### + +if ($ADD==730000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,val.user,ip_address,event_section,event_type,record_id,event_code,event_notes,event_sql,full_name from vicidial_admin_log val, vicidial_users vu where admin_log_id='$stage' and val.user=vu.user;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + if ($logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + echo "
ADMIN CHANGE LOG: Record Détail - $stage

\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + $row[9] = eregi_replace("',","' ,",$row[9]); + echo ""; + echo ""; + echo "\n"; + echo "
ID: $row[0]
DATE TIME: $row[1]
USER: $row[2] - $row[10]
IP: $row[3]
SECTION: $row[4]
TYPE: $row[5]
RECORD ID: $row[6]
DESCRIPTION: $row[7]
NOTES: $row[8]
SQL:

$row[9]



\n"; + echo "\n"; + echo "
\n"; + } + } + + +###################### +# ADD=999999 display reports section +###################### +if ($ADD==999999) + { + if ($LOGview_reports==1) + { + echo "
\n"; + echo ""; + + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $servers_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $sysload[$i] = $row[4]; + $channels_total[$i] = $row[5]; + $cpu_idle_percent[$i] = $row[6]; + $disk_usage[$i] = $row[7]; + $i++; + } + + $stmt="SELECT queuemetrics_url,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $queuemetrics_url_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; + ?> + + + + + + Stats Rapports Server et + Stats Rapports Server et

+
+       + + Real-Time Rapports
+
+ Inbound and Outbound Calling Rapports
+ + +
+       + + Agent Rapports
+
+ Time Clock Rapports
+
+ Other Rapports and Links
+ +
+ + +

+		
+		 $o)
+			{
+			$cpu = (100 - $cpu_idle_percent[$o]);
+			$disk = '';
+			$disk_ary = explode('|',$disk_usage[$o]);
+			$disk_ary_ct = count($disk_ary);
+			$k=0;
+			while ($k < $disk_ary_ct)
+				{
+				$disk_ary[$k] = preg_replace("/^\d* /","",$disk_ary[$k]);
+				if ($k<1) {$disk = "$disk_ary[$k]";}
+				else
+					{
+					if ($disk_ary[$k] > $disk) {$disk = "$disk_ary[$k]";}
+					}
+				$k++;
+				}
+			$disk = "$disk%";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			$o++;
+			}
+
+		echo "
SERVERDESCRIPTIONIPACTLOADCHANDISKSORTANTENTRANT
$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]$sysload[$o] - $cpu%$channels_total[$o]$diskLINKLINK
\n"; + } + else + { + echo "Vous n'avez pas la permission de voir cette page\n"; + exit; + } + } + + +echo "
\n"; +echo "
\n"; + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "
\n"; +echo "

"; +echo "VERSION: $admin_version
"; +echo "CONSTRUCTION: $build
\n"; + +?> + +
+
+ + + +1) + { + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Dimanche heure locale + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Lundi heure locale + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Mardi heure locale + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Mercredi heure locale + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Jeudi heure locale + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Vendredi heure locale + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Samedi heure locale + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Dimanche heure locale + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Lundi heure locale + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Mardi heure locale + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Mercredi heure locale + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Jeudi heure locale + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Vendredi heure locale + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Samedi heure locale + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL"; + #$DB=1; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rslt_rows = mysql_num_rows($rslt); + if ($rslt_rows) + { + $rowx=mysql_fetch_row($rslt); + $active_leads = "$rowx[0]"; + } + else {$active_leads = '0';} + + echo "|$DB|\n"; + echo "Cette campagne a $active_leads fiches à appeler dans ces listes\n"; + } + else + { + echo "aucun statut d'appel selectionnés pour cette campagne\n"; + } + } + else + { + echo "pas de listes actives pour cette campagne\n"; + } + } +else + { + echo "pas de listes actives pour cette campagne\n"; + } +##### END calculate what gmt_offset_now values are within the allowed local_call_time setting ### +} +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin_header.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin_header.php new file mode 100644 index 00000000..2daa478c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin_header.php @@ -0,0 +1,1287 @@ + LICENSE: AGPLv2 +# + +# CHANGES +# 90310-0709 - First Build +# 90508-0542 - Added Call Menu option, changed script to use long PHP tags +# 90514-0605 - Added audio prompt selection functions +# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option +# 90531-2339 - Added Dynamic options for Call Menu +# 90612-0852 - Changed relative links +# 90635-0943 - Added javascript for dynamic menus in In-Groups +# 90627-0548 - Added no-agent-no-queue options +# 90628-1016 - Added Text-to-speech options +# 90830-2213 - Added Music On Hold options +# 90904-1534 - Added launch_moh_chooser +# 90916-2334 - Added Voicemail options +# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus +# + + +######################### SMALL HTML HEADER BEGIN ####################################### +if($short_header) + { + ?> +
+ + + + + + + + + + + + +
    Utilisateurs     Campagnes     Listes     Scripts     Filtres     In-Groups     Groupes d'utilisateurs     Agents distants     Admin     Rapports  
+ 0) + { + if ($hh=='lists') + {$lists_hh="bgcolor=\"$lists_color\""; $lists_fc="$lists_font"; $lists_bold="$header_selected_bold";} + else {$lists_hh=''; $lists_fc='WHITE'; $lists_bold="$header_nonselected_bold";} + } +if ($hh=='ingroups') + {$ingroups_hh="bgcolor=\"$ingroups_color\""; $ingroups_fc="$ingroups_font"; $ingroups_bold="$header_selected_bold";} + else {$ingroups_hh=''; $ingroups_fc='WHITE'; $ingroups_bold="$header_nonselected_bold";} +if ($hh=='remoteagent') + {$remoteagent_hh="bgcolor=\"$remoteagent_color\""; $remoteagent_fc="$remoteagent_font"; $remoteagent_bold="$header_selected_bold";} + else {$remoteagent_hh=''; $remoteagent_fc='WHITE'; $remoteagent_bold="$header_nonselected_bold";} +if ($hh=='usergroups') + {$usergroups_hh="bgcolor=\"$usergroups_color\""; $usergroups_fc="$usergroups_font"; $usergroups_bold="$header_selected_bold";} + else {$usergroups_hh=''; $usergroups_fc='WHITE'; $usergroups_bold="$header_nonselected_bold";} +if ($hh=='scripts') + {$scripts_hh="bgcolor=\"$scripts_color\""; $scripts_fc="$scripts_font"; $scripts_bold="$header_selected_bold";} + else {$scripts_hh=''; $scripts_fc='WHITE'; $scripts_bold="$header_nonselected_bold";} +if ($SSoutbound_autodial_active > 0) + { + if ($hh=='filters') + {$filters_hh="bgcolor=\"$filters_color\""; $filters_fc="$filters_font"; $filters_bold="$header_selected_bold";} + else {$filters_hh=''; $filters_fc='WHITE'; $filters_bold="$header_nonselected_bold";} + } +if ($hh=='admin') + {$admin_hh="bgcolor=\"$admin_color\""; $admin_fc="$admin_font"; $admin_bold="$header_selected_bold";} + else {$admin_hh=''; $admin_fc='WHITE'; $admin_bold="$header_nonselected_bold";} +if ($hh=='reports') + {$reports_hh="bgcolor=\"$reports_color\""; $reports_fc="$reports_font"; $reports_bold="$header_selected_bold";} + else {$reports_hh=''; $reports_fc='WHITE'; $reports_bold="$header_nonselected_bold";} + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
English French
+ +\r\n"; + print " \r\n"; + } + $rec_count++; + } +$sthA->finish(); + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader_super.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader_super.pl new file mode 100644 index 00000000..9b09bba7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader_super.pl @@ -0,0 +1,1162 @@ +#!/usr/bin/perl +# +# listloader_super.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60906-1056 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1207 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$vars=$ARGV[0]; +@xls_fields=split(/\,/, $vars); + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +### Grab Server values from the database +$stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } +$sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[0]]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[1]]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[2]]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[3]]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[4]]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[5]]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[6]]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[7]]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[8]]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[9]]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[10]]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[11]]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[12]]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[13]]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[14]]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[15]]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[16]]; + if ($oWkC) {$country_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[17]]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[18]]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[19]]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[20]]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[21]]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } + + + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/new_listloader_superL.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/new_listloader_superL.php new file mode 100644 index 00000000..2b735e85 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/new_listloader_superL.php @@ -0,0 +1,2258 @@ + LICENSE: AGPLv2 +# +# AST GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 60113-1603 - Fixed a few bugs in Excel import +# 60421-1624 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60616-1240 - added listID override +# 60616-1604 - added gmt lookup for each lead +# 60619-1651 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1121 - fixed for nonwritable directories +# 60906-1100 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1149 - added postal code GMT lookup and duplicate check options +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0417 - UTF8 changes +# 80514-1030 - removed filesize limit and raised number of errors to be displayed +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 81011-2009 - a few bug fixes +# 90309-1831 - Added admin_log logging +# 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# +# 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 = '2.2.0-33'; +$build = '91112-0616'; + + +require("dbconnect.php"); + +### links used for testing +#$link=mysql_connect("10.10.10.15", "cron", "1234"); +#mysql_select_db("asterisk"); +#$WeBServeRRooT = '/home/www/htdocs'; + +$US='_'; + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} +if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} +if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} + elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} +if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} + elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} +if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} +if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} + elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} +if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} + elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} +if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} +if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} +if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} + elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} +if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"];} + elseif (isset($_POST["province_field"])) {$province_field=$_POST["province_field"];} +if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} + elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} +if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} +if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} + elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} + elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} +if (isset($_GET["phone_code_override"])) {$phone_code_override=$_GET["phone_code_override"];} + elseif (isset($_POST["phone_code_override"])) {$phone_code_override=$_POST["phone_code_override"];} + $phone_code_override = (preg_replace("/\D/","",$phone_code_override)); + +# $country_field=$_GET["country_field"]; if (!$country_field) {$country_field=$_POST["country_field"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('new_listloader_superL.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"AIDE\""; + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +function macfontfix($fontsize) { + + $browser = getenv("HTTP_USER_AGENT"); + $pctype = explode("(", $browser); + if (ereg("Mac",$pctype[1])) { + /* Browser is a Mac. If not Netscape 6, raise fonts */ + + $blownbrowser = explode('/', $browser); + $ver = explode(' ', $blownbrowser[1]); + $ver = $ver[0]; + if ($ver >= 5.0) return $fontsize; else return ($fontsize+2); + + } else return $fontsize; /* Browser is not a Mac - don't touch fonts */ +} + +echo "\n"; + +?> + + + +ADMINISTRATION: Lead Loader + + + +
+VICIDIAL logo +ADMINISTRATION
+ + + + 1) { + ?> + >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + + + + 1) + { + if ($sh=='basic') {$sh='list';} + if ($sh=='detail') {$sh='list';} + if ($sh=='dialstat') {$sh='list';} + + if ($sh=='list') {$list_sh="bgcolor=\"$subcamp_color\""; $list_fc="$subcamp_font";} + else {$list_sh=''; $list_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$subcamp_color\""; $status_fc="$subcamp_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='hotkey') {$hotkey_sh="bgcolor=\"$subcamp_color\""; $hotkey_fc="$subcamp_font";} + else {$hotkey_sh=''; $hotkey_fc='BLACK';} + if ($sh=='recycle') {$recycle_sh="bgcolor=\"$subcamp_color\""; $recycle_fc="$subcamp_font";} + else {$recycle_sh=''; $recycle_fc='BLACK';} + if ($sh=='autoalt') {$autoalt_sh="bgcolor=\"$subcamp_color\""; $autoalt_fc="$subcamp_font";} + else {$autoalt_sh=''; $autoalt_fc='BLACK';} + if ($sh=='pause') {$pause_sh="bgcolor=\"$subcamp_color\""; $pause_fc="$subcamp_font";} + else {$pause_sh=''; $pause_fc='BLACK';} + if ($sh=='listmix') {$listmix_sh="bgcolor=\"$subcamp_color\""; $listmix_fc="$subcamp_font";} + else {$listmix_sh=''; $listmix_fc='BLACK';} + + ?> + > + + > + + > + + 0) + { + ?> + > + + > + + > + + + > + + + + 0) + { + ?> + + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Ajouter-Supprimer numéro Du DNC';} + else {$DNClink = 'Add Number To DNC';} + ?> + >>>>> + + + + 1) + { + ?> + >> + + + 0) + { + ?> + + 1) + { + ?> + >> + + + + 1) + { + ?> + >>>>>>>>> + + + + 1) + { + ?> + >>>> + + + + 1) + { + ?> + >> + + + + 1) + { + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} + else {$times_sh=''; $times_fc='BLACK';} + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} + else {$shifts_sh=''; $shifts_fc='BLACK';} + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} + else {$templates_sh=''; $templates_fc='BLACK';} + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} + else {$carriers_sh=''; $carriers_fc='BLACK';} + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} + else {$phones_sh=''; $phones_fc='BLACK';} + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} + else {$server_sh=''; $server_fc='BLACK';} + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} + else {$conference_sh=''; $conference_fc='BLACK';} + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} + else {$settings_sh=''; $settings_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} + + ?> + > + + > + > + > + > + > + > + > + > + > + + 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + + + + +
WIDTH=160> + SIZE=>Utilisateurs +
+   >Voir les utilisateurs +
+   >Ajouter un nouvel utilisateur +
+   >Utilisateur De Copie +
+   >Rechercher un utilisateur +
+   >Statistiques utilisateur +
+   >Utilisateur Status +
+   >Feuille de temps
+   >Utilisateur Territoires
> + SIZE=>Campagnes +
>   SIZE=>Campagnes principale
>   SIZE=>Statuts
>   SIZE=>HotKeys
>   SIZE=>Recyclage Plomb
>   SIZE=>Auto-Alt Dial
>   SIZE=>Liste Mix
>   SIZE=>Pause Codes
> SIZE=>Listes
  + > Voir les listes +
  + > Ajouter une nouvelle liste +
  + > Rechercher une fiche +
  + > +
  + > Charger de nouvelles fiches +
> + SIZE=> Scripts +
  + > Voir les scripts +
  + > Ajouter un nouveau script +
> SIZE=> Filtres
  + > Voir les filtres +
  + > Ajouter un nouveau filtre +
> + SIZE=> In-Groups +
  + > Voir les In-Groups +
  + > Ajouter un nouveau In-Group +
  + > Dans-Groupe De Copie
+
  + > Voir DiDs +
  + > Ajouter une nouvelle DID +
  + > CopieDID
+
  + > Afficher Appel Menus +
  + > Ajouter un nouveau menu d-appel +
  + > Copiez Appel du menu +
> + SIZE=> Groupes d'utilisateurs +
  + > Voir les groupes d'utilisateurs +
  + > Ajouter un nouveau groupe d'utilisateurs +
  + > Rapport horaire du groupe +
  + > Bulk Change Group +
> + SIZE=> Agents distants +
  + > Voir les agents distants +
  + > Ajouter un nouvel agent distant +
> + SIZE=> Admin +
COLSPAN=2>   + SIZE=> Période d'appels
>   + SIZE=> Shifts
>   + SIZE=> Téléphones
>   + SIZE=> Modèles
>   + SIZE=> Carriers
>   + SIZE=> Serveurs
>   + SIZE=> Conférences
>   + SIZE=> Réglages du système
>   + SIZE=>Statuts De Système
>   + SIZE=> Boîte vocale
>   + SIZE=> Audio Store
>   + SIZE=> Musique d-attente
>   + SIZE=> Text To Speech
> + SIZE=> Rapports +
 
+
BGCOLOR=#D9E6FE> + + + + + HEIGHT=15> + + + + + + + + + + + + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { + ?> + > + 1) and (!eregi('campaign',$hh) ) ) { + ?> + > + + > + 1) { + ?> +> + + + + +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + $call_log .= ""; + $call_log .= ""; + $call_log .= ""; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); + + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + + $campaign_id = $row[5]; + } + + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); + + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; + + echo "
Informations sur l'appel: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ACCUEIL | Horloge en temps | Déconnection  
>   > Voir les campagnes     |     > Ajouter une nouvelle campagne     |     > Campagne De Copie     |     > Menu temps-réel des campagnes
  > Voir les périodes d'appels  | > Ajouter une période d'appels  | > Voir les périodes d'appels d'états  | > Ajouter une nouvelle période d'appels d'état
  > Voir les changements  | > Add A New Shift
  > Voir les téléphones  | > Ajouter un nouveau téléphone  | > Téléphone Alias Liste  | > Ajouter un nouveau téléphone Alias  | > Groupe Alias Liste  | > Ajouter un nouveau groupe Alias
  > Voir les conférences   |   > Ajouter une nouvelle conférence   |   > Voir les conférences VICIDIAL   |   > Ajouter une nouvelle conférence VICIDIAL
  > Voir les serveurs   |   > Ajouter un nouveau serveur
  > Afficher les modèles   |   > Ajouter un nouveau modèle
  > Show Carriers   |   > Add A New Carrier
  > Afficher TTS Entrées   |   > Ajouter une nouvelle entrée TTS
  > Afficher MOH Entrées   |   > Ajouter une nouvelle entrée MOH
  > Show Boîte vocale Entries   |   > Add A New Boîte vocale Entry
  > Réglages du système
  >Statuts De Système   |   >Catégories De Statut   |   >Codes d'état QC
  >Statistiques utilisateur   |   >Utilisateur Status   |   >Feuille de temps   |   >Jours Etat
>  
+ LICENSE: AGPLv2 +# +# CHANGES +# +# 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 +# 60609-1112 - Added DNC list addition if status changed to DNC +# 60619-1539 - Added variable filtering to eliminate SQL injection attack threat +# 61130-1639 - Added recording_log lookup and list for this lead_id +# 61201-1136 - Added recording_log user(TSR) display and link +# 70305-1133 - Changed to default CHECKED modify logs upon status change +# 70424-1128 - Added campaign-specific statuses, reformatted recordings list +# 70702-1259 - Added recording location link and truncation +# 70906-2132 - Added closer_log records display +# 80428-0144 - UTF8 cleanup +# 80501-0454 - Added Hangup Reason to logs display +# 80516-0936 - Cleanup of logging changes, added vicidial_agent_log display +# 80701-0832 - Changed to allow for altering of main phone number +# 80805-2106 - Changed comments to TEXTAREA +# 81210-1529 - Added server recording display options +# 90309-1829 - Added admin_log logging +# 90508-0644 - Changed to PHP long tags +# 90708-1549 - Added phone number dialed to outbound log +# 90721-1246 - Added rank and owner as vicidial_list fields +# 90917-2355 - Added extended alt phone entries +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["old_phone"])) {$old_phone=$_GET["old_phone"];} + elseif (isset($_POST["old_phone"])) {$old_phone=$_POST["old_phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_GET["CBchangeUSERtoANY"];} + elseif (isset($_POST["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_POST["CBchangeUSERtoANY"];} +if (isset($_GET["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_GET["CBchangeUSERtoUSER"];} + elseif (isset($_POST["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_POST["CBchangeUSERtoUSER"];} +if (isset($_GET["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_GET["CBchangeANYtoUSER"];} + elseif (isset($_POST["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_POST["CBchangeANYtoUSER"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} + elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} +if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];} + elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];} +if (isset($_GET["modify_logs"])) {$modify_logs=$_GET["modify_logs"];} + elseif (isset($_POST["modify_logs"])) {$modify_logs=$_POST["modify_logs"];} +if (isset($_GET["modify_closer_logs"])) {$modify_closer_logs=$_GET["modify_closer_logs"];} + elseif (isset($_POST["modify_closer_logs"])) {$modify_closer_logs=$_POST["modify_closer_logs"];} +if (isset($_GET["modify_agent_logs"])) {$modify_agent_logs=$_GET["modify_agent_logs"];} + elseif (isset($_POST["modify_agent_logs"])) {$modify_agent_logs=$_POST["modify_agent_logs"];} +if (isset($_GET["add_closer_record"])) {$add_closer_record=$_GET["add_closer_record"];} + elseif (isset($_POST["add_closer_record"])) {$add_closer_record=$_POST["add_closer_record"];} + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $old_phone = ereg_replace("[^0-9]","",$old_phone); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $alt_phone = ereg_replace("[^0-9]","",$alt_phone); + } +if (strlen($phone_number)<6) {$phone_number=$old_phone;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Modification de l'enregistrement de la fiche + + +
+ADMINISTRATION: Modification de l'enregistrement de la fiche
\n"; + +if ($end_call > 0) + { + ### update the lead record in the vicidial_list table + $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) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "Informations modifiées

\n"; + echo "\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='MODIFY', record_id='$lead_id', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + if ( ($dispo != $status) and ($dispo == 'CALLBK') ) + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + + if ( ($dispo != $status) and ($status == 'DNC') ) + { + ### add lead to the internal DNC list + $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; + } + ### update last record in vicidial_log table + if (($dispo != $status) and ($modify_logs > 0)) + { + $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_closer_log table + if (($dispo != $status) and ($modify_closer_logs > 0)) + { + $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_agent_log table + if (($dispo != $status) and ($modify_agent_logs > 0)) + { + $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + if ($add_closer_record > 0) + { + ### 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('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . 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";} + $rslt=mysql_query($stmt, $link); + } + + + } +else + { + + if ($CBchangeUSERtoANY == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='" . mysql_real_escape_string($callback_id) . "';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to ANYONE
\n"; + } + if ($CBchangeUSERtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record user changed to $CBuser
\n"; + } + if ($CBchangeANYtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to USERONLY, user: $CBuser
\n"; + } + + + + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$u$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1] $row[15]   $row[10]
$y$row[3] $row[5] $row[1] $row[7] $row[9] $row[11] $row[13]   $row[14]   $row[15]   $row[17]
$y$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1]   $row[14]   $row[17]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     Lead ID: $lead_id
Fronter: $tsr     ID de la liste: $list_id
Nom:   \n"; + echo " Prénom:
Adresse1 :
Adresse2 :
Adresse3 :
Ville :
Etat:   \n"; + echo " Code postal:
Province:
Pays :
Main Phone :
Téléphone alternatif :
Email :
Sécurité:
Rank :
Owner :
Commentaires :
Disposition: (with $log_campaign statuses)
Modifiervicidial log
Modifieragent log
Modifiercloser log
Add closer log record
\n"; + echo "


\n"; + + if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) + { + ### find any vicidial_callback records for this lead + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group 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";} + $rslt=mysql_query($stmt, $link); + $CB_to_print = mysql_num_rows($rslt); + $rowx=mysql_fetch_row($rslt); + + if ($CB_to_print>0) + { + if ($rowx[9] == 'USERONLY') + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UtilisateurID: \n"; + echo "

\n"; + } + else + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UtilisateurID: \n"; + echo "

\n"; + } + } + else + { + echo "
No Callback records found
\n"; + } + } + } + else + { + echo "ECHEC de la vérification de la fiche pour l'id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + echo "

\n"; + + echo "
\n"; + + if ($c > 0) + { + echo "EXTENSION SUPPLEANT DE NUMEROS DE TELEPHONE POUR CE PLOMB:\n"; + echo "\n"; + echo "\n"; + + echo "$alts_output\n"; + + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } + + echo "APPELS VERS CETTE FICHE:\n"; + echo "\n"; + echo "\n"; + + echo "$call_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNE LIST LEAD HANGUP REASON PHONE
\n"; + echo "

\n"; + + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$closer_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNE LIST LEAD WAIT HANGUP REASON
\n"; + echo "

\n"; + + + echo "AGENT LOG RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$agent_log\n"; + + echo "
# DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "

\n"; + + + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "$locat";} + else + {$location = $locat;} + $u++; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + + } + + + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
$u $row[12] $row[4] $row[8] $row[0]   $row[10] $location $row[13]
\n"; + } + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\ntemps d'exécution du script: $RUNtime seconds
"; + + +?> + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin_search_lead.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin_search_lead.php new file mode 100644 index 00000000..6f7be4b6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/admin_search_lead.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 80710-0023 - Added searching by list, user, status +# 90121-0500 - Added filter for phone to remove non-digits +# 90309-1828 - Added admin_log logging +# 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); +$phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner'; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Recherche de fiches +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '100'; +$hh = 'lists'; +$LOGast_admin_access = '1'; +$SSoutbound_autodial_active = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$lists_color = '#FFFF99'; +$lists_font = 'BLACK'; +$lists_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + +echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; + +if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<form method=post name=search action=\"$PHP_SELF\">\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<b>Veuillez entrer un:<br> Vendor ID(code vendeur de la fiche): <input type=text name=vendor_id size=10 maxlength=10> or \n"; + echo "<br><b>un numéro de téléphone du domicile: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; + echo "<br><b>ID de la fiche: <input type=text name=lead_id size=10 maxlength=10> or\n"; + echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; + echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; + echo "<b>user: <input type=text name=user size=15 maxlength=20> <br><br>\n"; + echo "<input type=submit name=submit value=VALIDER></b>\n"; + echo "</form>\n</center>\n"; + echo "</body></html>\n"; + exit; + } + +else + { + + if ($vendor_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; + } + else + { + if ($phone) + { + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } + } + else + { + if ($lead_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + } + else + { + if ( (strlen($status)>0) or (strlen($list_id)>0) or (strlen($user)>0) ) + { + $statusSQL = ''; + $list_idSQL = ''; + $userSQL = ''; + if (strlen($status)>0) + { + $statusSQL = "status='" . mysql_real_escape_string($status) . "'"; $SQLctA++; + } + if (strlen($list_id)>0) + { + if ($SQLctA > 0) {$andA = 'and';} + $list_idSQL = "$andA list_id='" . mysql_real_escape_string($list_id) . "'"; $SQLctB++; + } + if (strlen($user)>0) + { + if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} + $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; + } + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; + } + else + { + print "ERROR: you must search for something! Go back and search for something"; + exit; + } + } + } + } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + + if ($DB) + { + echo "\n\n$stmt\n\n"; + } + + $rslt=mysql_query("$stmt", $link); + $results_to_print = mysql_num_rows($rslt); + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<b>Les variables de recherche que vous avez entré ne sont pas actives dans le système</b><br><br>\n"; + echo "<b>Veuillez revenir en arrière et verifier les informations que vous avez saisi et valider de nouveau</b>\n"; + echo "</center>\n"; + echo "</body></html>\n"; + exit; + } + else + { + echo "<b>RESULTS: $results_to_print</b><BR><BR>\n"; + echo "<TABLE BGCOLOR=WHITE CELLPADDING=1 CELLSPACING=0>\n"; + echo "<TR BGCOLOR=BLACK>\n"; + echo "<TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>#</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LEAD ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ETAT</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>VENDOR ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LAST AGENT</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ID DE LA LISTE</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>PHONE</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>NOM</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>CITY</B></FONT></TD>\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"; + echo "</TR>\n"; + $o=0; + while ($results_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $o++; + $search_lead = $row[0]; + 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]\" target=\"_blank\">$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[31]</FONT></TD>\n"; + echo "</TR>\n"; + } + echo "</TABLE>\n"; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n<a href=\"$PHP_SELF\">NOUVELLE RECHERCHE</a>"; + + +echo "\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime seconds"; + + +?> + + + +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/audio_store.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $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 > 7 and modify_campaigns='1'"; + 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|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $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); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/call_report_export.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/call_report_export.php new file mode 100644 index 00000000..77a49b05 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/call_report_export.php @@ -0,0 +1,562 @@ +<?php +# call_report_export.php +# +# displays options to select for downloading of leads and their vicidial_log +# and/or vicidial_closer_log information by status, list_id and date range. +# downloads to a flat text file that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} + elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and export_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### +if ($run_export > 0) + { + $US='_'; + $MT[0]=''; + $ip = getenv("REMOTE_ADDR"); + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $FILE_TIME = date("Ymd-His"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $campaign_ct = count($campaign); + $group_ct = count($group); + $user_group_ct = count($user_group); + $list_ct = count($list_id); + $status_ct = count($status); + $campaign_string='|'; + $group_string='|'; + $user_group_string='|'; + $list_string='|'; + $status_string='|'; + + $i=0; + while($i < $campaign_ct) + { + $campaign_string .= "$campaign[$i]|"; + $campaign_SQL .= "'$campaign[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$campaign_string) ) or ($campaign_ct < 1) ) + { + $campaign_SQL = "campaign_id IN('')"; + $RUNcampaign=0; + } + else + { + $campaign_SQL = eregi_replace(",$",'',$campaign_SQL); + $campaign_SQL = "and vl.campaign_id IN($campaign_SQL)"; + $RUNcampaign++; + } + + $i=0; + while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; + $group_SQL = "campaign_id IN('')"; + $RUNgroup=0; + } + else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and vl.campaign_id IN($group_SQL)"; + $RUNgroup++; + } + + $i=0; + while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } + else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vl.user_group IN($user_group_SQL)"; + } + + $i=0; + while($i < $list_ct) + { + $list_string .= "$list_id[$i]|"; + $list_SQL .= "'$list_id[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$list_string) ) or ($list_ct < 1) ) + { + $list_SQL = ""; + } + else + { + $list_SQL = eregi_replace(",$",'',$list_SQL); + $list_SQL = "and vi.list_id IN($list_SQL)"; + } + + $i=0; + while($i < $status_ct) + { + $status_string .= "$status[$i]|"; + $status_SQL .= "'$status[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$status_string) ) or ($status_ct < 1) ) + { + $status_SQL = ""; + } + else + { + $status_SQL = eregi_replace(",$",'',$status_SQL); + $status_SQL = "and vl.status IN($status_SQL)"; + } + + + if ($DB > 0) + { + echo "<BR>\n"; + echo "$campaign_ct|$campaign_string|$campaign_SQL\n"; + echo "<BR>\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + echo "$list_ct|$list_string|$list_SQL\n"; + echo "<BR>\n"; + echo "$status_ct|$status_string|$status_SQL\n"; + echo "<BR>\n"; + } + + $outbound_calls=0; + $export_rows=''; + $k=0; + if ($RUNcampaign > 0) + { + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $outbound_to_print = mysql_num_rows($rslt); + if ($outbound_to_print < 1) + { + echo "There are no outbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $outbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + $outbound_calls++; + } + } + } + + if ($RUNgroup > 0) + { + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmtA, $link); + if ($DB) {echo "$stmt\n";} + $inbound_to_print = mysql_num_rows($rslt); + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) + { + echo "There are no inbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + } + } + } + + + if ( ($outbound_to_print > 0) or ($inbound_to_print > 0) ) + { + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $TXTfilename = "EXPORT_CALL_REPORT_$FILE_TIME.txt"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$TXTfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } + } + else + { + echo "There are no calls during this time period for these parameters\n"; + exit; + } + } +##### END RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### + + +else + { + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $stmt="select campaign_id from vicidial_campaigns;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $campaigns_to_print = mysql_num_rows($rslt); + $i=0; + $LISTcampaigns[$i]='---NONE---'; + $i++; + $campaigns_to_print++; + while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTcampaigns[$i] =$row[0]; + $i++; + } + + $stmt="select group_id from vicidial_inbound_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; + while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $i++; + } + + $stmt="select user_group from vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; + while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + + $stmt="select list_id from vicidial_lists;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $lists_to_print = mysql_num_rows($rslt); + $i=0; + $LISTlists[$i]='---ALL---'; + $i++; + $lists_to_print++; + while ($i < $lists_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTlists[$i] =$row[0]; + $i++; + } + + $stmt="select status from vicidial_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $statuses_to_print = mysql_num_rows($rslt); + $i=0; + $LISTstatus[$i]='---ALL---'; + $i++; + $statuses_to_print++; + while ($i < $statuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + } + + $stmt="select distinct status from vicidial_campaign_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $Cstatuses_to_print = mysql_num_rows($rslt); + $j=0; + while ($j < $Cstatuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + $j++; + } + $statuses_to_print = ($statuses_to_print + $Cstatuses_to_print); + + echo "<HTML><HEAD>\n"; + + + echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; + + ##### BEGIN Set variables to make header show properly ##### + $ADD = '100'; + $hh = 'lists'; + $LOGast_admin_access = '1'; + $SSoutbound_autodial_active = '1'; + $ADMIN = 'admin.php'; + $page_width='770'; + $section_width='750'; + $header_font_size='3'; + $subheader_font_size='2'; + $subcamp_font_size='2'; + $header_selected_bold='<b>'; + $header_nonselected_bold=''; + $lists_color = '#FFFF99'; + $lists_font = 'BLACK'; + $lists_color = '#E6E6E6'; + $subcamp_color = '#C6C6C6'; + ##### END Set variables to make header show properly ##### + + require("admin_header.php"); + + + echo "<CENTER><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; + echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; + echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; + echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; + echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; + echo "<BR>to<BR>\n"; + echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; + $o=0; + while ($campaigns_to_print > $o) + { + if (ereg("\|$LISTcampaigns[$o]\|",$campaign_string)) + {echo "<option selected value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + else + {echo "<option value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; + $o=0; + while ($groups_to_print > $o) + { + if (ereg("\|$LISTgroups[$o]\|",$group_string)) + {echo "<option selected value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + else + {echo "<option value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; + $o=0; + while ($lists_to_print > $o) + { + if (ereg("\|$LISTlists[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + else + {echo "<option value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; + $o=0; + while ($statuses_to_print > $o) + { + if (ereg("\|$LISTstatus[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + else + {echo "<option value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; + echo "</TD></TR></TABLE>\n"; + echo "</FORM>\n\n"; + + } +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/count.htm b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/count.htm new file mode 100644 index 00000000..51f8a361 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/count.htm @@ -0,0 +1 @@ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/dbconnect.php new file mode 100644 index 00000000..dca45485 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/dbconnect.php @@ -0,0 +1,62 @@ +<?php +# +# dbconnect.php version 2.2.0 +# +# database connection settings and some global web settings +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database"); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules +$AM_shift_BEGIN = '03:45:00'; +$AM_shift_END = '17:45:00'; +$PM_shift_BEGIN = '17:45:01'; +$PM_shift_END = '23:59:59'; +$admin_qc_enabled = '0'; +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/fcstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/fcstats.php new file mode 100644 index 00000000..8130a61d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/fcstats.php @@ -0,0 +1,601 @@ +<?php +# fcstats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 70813-1526 - First Build +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71217-1128 - Changed method for calculating stats +# 71228-1140 - added percentages, cross-day start/stop +# 80328-1139 - adapted for basic fronter/closer stats +# 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = 'CL_TEST_L';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + +<HTML> +<HEAD> +<STYLE type="text/css"> +<!-- + .green {color: white; background-color: green} + .red {color: white; background-color: red} + .blue {color: white; background-color: blue} + .purple {color: white; background-color: purple} +--> + </STYLE> + +<?php +echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; +echo "<TITLE>In-Group Fronter-Closer Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFIER | RAPPORTS \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "PLEASE SELECT AN IN-GROUP AND DATE ABOVE THEN CLICK VALIDER\n";
+}
+
+else
+{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#$query_date_BEGIN = "$query_date $time_BEGIN";   
+#$query_date_END = "$query_date $time_END";
+
+$Cqdate = explode('-',$query_date);
+
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(17, 45, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(17, 45, 1, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'ALL') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+
+echo "In-Group Fronter-Closer Stats Report                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n";
+
+$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "' and status = 'SALE';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$A1_points = ($row[0] * 1);
+$A1_points =	sprintf("%10s", $A1_points);
+$A1_tally =	sprintf("%10s", $row[0]);
+
+$TOT_tally = ($A1_tally + $A2_tally + $A3_tally + $A4_tally);
+$TOT_points = ($A1_points + $A2_points + $A3_points + $A4_points);
+$TOT_tally =	sprintf("%10s", $TOT_tally);
+$TOT_points =	sprintf("%10s", $TOT_points);
+
+echo "STATUS   CUSTOMERS\n";
+echo "SALES:   $A1_tally\n";
+
+echo "\n";
+
+
+
+
+
+
+
+
+
+##############################
+#########  FRONTER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTsales=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+
+echo "\n";
+echo "---------- FRONTER STATS\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| AGENT                    |SUCCESS| XFERS  |SUCCESS%| SALE | DROP |OTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+#$stmt="select vicidial_xfer_log.user,full_name,count(*) from vicidial_xfer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_xfer_log.user is not null and vicidial_xfer_log.user=vicidial_users.user group by vicidial_xfer_log.user;";
+$stmt="select user,count(distinct lead_id) from vicidial_xfer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcallsRAW[$i] =	$row[1];
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; 
+	$stmt="select vc.status,count(distinct vc.lead_id) from vicidial_xfer_log vx, vicidial_closer_log vc where vx.call_date >= '$query_date_BEGIN' and vx.call_date <= '$query_date_END' and vc.call_date >= '$query_date_BEGIN' and vc.call_date <= '$query_date_END' and  vc.campaign_id='" . mysql_real_escape_string($group) . "' and vx.campaign_id='" . mysql_real_escape_string($group) . "' and vx.user='$userRAW[$i]' and vc.lead_id=vx.lead_id and vc.xfercallid=vx.xfercallid group by vc.status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) {$A1=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A2') and ($recL < 1) ) {$A2=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A3') and ($recL < 1) ) {$A3=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A4') and ($recL < 1) ) {$A4=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);
+	$totA2 = ($totA2 + $A2);
+	$totA3 = ($totA3 + $A3);
+	$totA4 = ($totA4 + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$TOTsales = ($TOTsales + $sales);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Spct = ( ($sales / $USERcallsRAW[$i]) * 100);}
+		else {$Spct=0;}
+	$Spct = round($Spct, 2);
+	$Spct =	sprintf("%01.2f", $Spct);
+	
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%5s", $sales);
+	$Spct =	sprintf("%6s", $Spct);
+
+	echo "| $user[$i] - $full_name[$i] | $sales | $USERcalls[$i] | $Spct%| $A1 | $DROP | $OTHER |\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totSpct = ( ($TOTsales / $TOTcalls) * 100);}
+	else {$totSpct=0;}
+$totSpct = round($totSpct, 2);
+$totSpct =	sprintf("%01.2f", $totSpct);
+$totSpct =	sprintf("%6s", $totSpct);
+	
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$TOTsales =		sprintf("%5s", $TOTsales);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+
+
+$stmt="select avg(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$AVGwait = $row[0];
+$AVGwait_M = ($AVGwait / 60);
+$AVGwait_M = round($AVGwait_M, 2);
+$AVGwait_M_int = intval("$AVGwait_M");
+$AVGwait_S = ($AVGwait_M - $AVGwait_M_int);
+$AVGwait_S = ($AVGwait_S * 60);
+$AVGwait_S = round($AVGwait_S, 0);
+if ($AVGwait_S < 10) {$AVGwait_S = "0$AVGwait_S";}
+$AVGwait_MS = "$AVGwait_M_int:$AVGwait_S";
+$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| TOTAL FRONTERS: $TOTagents   | $TOTsales | $TOTcalls | $totSpct%|$totA1 |$totDROP |$totOTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "|                          Average time in Queue for customers:    $AVGwait |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+
+
+
+
+##############################
+#########  CLOSER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+$TOTsales=0;
+
+echo "\n";
+echo "---------- CLOSER STATS\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| AGENT                    | CALLS  | SALE | DROP |OTHER | SALE | CONV %|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+$stmt="select user,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+	$USERcallsRAW[$i] =	$row[1];
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; $uTOP=0; $uBOT=0; $points=0;
+	$stmt="select status,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user='$userRAW[$i]' group by status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) 
+			{
+			$A1=$row[1]; $recL++; 
+			$sales=($sales + $row[1]);
+			$points = ($points + ($row[1] * 1) );
+			}
+		if ( ($row[0]=='A2') and ($recL < 1) ) 
+			{
+			$A2=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A3') and ($recL < 1) ) 
+			{
+			$A3=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A4') and ($recL < 1) ) 
+			{
+			$A4=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 3) );
+			}
+#		if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+#		if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+#		if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+#		if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+#		if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);	$TOTsales = ($TOTsales + $A1);
+	$totA2 = ($totA2 + $A2);	$TOTsales = ($TOTsales + $A2);	$totTOP = ($totTOP + $A2);
+	$totA3 = ($totA3 + $A3);	$TOTsales = ($TOTsales + $A3);	$totBOT = ($totBOT + $A3);
+	$totA4 = ($totA4 + $A4);	$TOTsales = ($TOTsales + $A4);	$totTOP = ($totTOP + $A4);	$totBOT = ($totBOT + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$totPOINTS = ($totPOINTS + $points);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Cpct = ( ($sales / ( ($USERcallsRAW[$i] - 0) - $DROP) ) * 100);}
+		else {$Cpct=0;}
+	$Cpct = round($Cpct, 2);
+	$Cpct =	sprintf("%01.2f", $Cpct);
+	$Cpct =	sprintf("%6s", $Cpct);
+
+	if ( ($sales > 0) and ($uTOP > 0) ) {$TOP = ( ($uTOP / $sales) * 100);}
+		else {$TOP=0;}
+	$TOP = round($TOP, 0);
+	$TOP =	sprintf("%01.0f", $TOP);
+	$TOP =	sprintf("%3s", $TOP);
+
+	if ( ($sales > 0) and ($uBOT > 0) ) {$BOT = ( ($uBOT / $sales) * 100);}
+		else {$BOT=0;}
+	$BOT = round($BOT, 0);
+	$BOT =	sprintf("%01.0f", $BOT);
+	$BOT =	sprintf("%3s", $BOT);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($points > 0) ) {$ppc = ($points / ( ($USERcallsRAW[$i] - 0) - $DROP) );}
+		else {$ppc=0;}
+	$ppc = round($ppc, 2);
+	$ppc =	sprintf("%01.2f", $ppc);
+	$ppc =	sprintf("%4s", $ppc);
+
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%4s", $sales);
+
+	echo "| $user[$i] - $full_name[$i] | $USERcalls[$i] | $A1 | $DROP | $OTHER | $sales |$Cpct%|\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totCpct = ( ($TOTsales / ( ($TOTcalls - 0) - $totDROP) ) * 100);}
+	else {$totCpct=0;}
+$totCpct = round($totCpct, 2);
+$totCpct =	sprintf("%01.2f", $totCpct);
+$totCpct =	sprintf("%6s", $totCpct);
+		
+if ( ($TOTcalls > 0) and ($totPOINTS > 0) ) {$ppc = ($totPOINTS / ( ($TOTcalls - $totOTHER) - $totDROP) );}
+	else {$ppc=0;}
+$ppc = round($ppc, 2);
+$ppc =	sprintf("%01.2f", $ppc);
+$ppc =	sprintf("%4s", $ppc);
+		
+if ( ($TOTsales > 0) and ($totTOP > 0) ) {$TOP = ( ($totTOP / $TOTsales) * 100);}
+	else {$TOP=0;}
+$TOP = round($TOP, 0);
+$TOP =	sprintf("%01.0f", $TOP);
+$TOP =	sprintf("%3s", $TOP);
+
+if ( ($TOTsales > 0) and ($totBOT > 0) ) {$BOT = ( ($totBOT / $TOTsales) * 100);}
+	else {$BOT=0;}
+$BOT = round($BOT, 0);
+$BOT =	sprintf("%01.0f", $BOT);
+$BOT =	sprintf("%3s", $BOT);
+
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+$TOTsales =		sprintf("%5s", $TOTsales);
+
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| TOTAL CLOSERS:  $TOTagents   | $TOTcalls |$totA1 |$totDROP |$totOTHER |$TOTsales |$totCpct%|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+
+
+
+
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+if ($DB) {echo "\nRun Time: $RUNtime seconds\n";}
+}
+
+
+
+
+
+?>
+
+
+ + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/functions.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/group_hourly_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/group_hourly_stats.php new file mode 100644 index 00000000..9f7c508b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/group_hourly_stats.php @@ -0,0 +1,295 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1014 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["date_with_hour"])) {$date_with_hour=$_GET["date_with_hour"];} + elseif (isset($_POST["date_with_hour"])) {$date_with_hour=$_POST["date_with_hour"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$date_with_hour_default = date("Y-m-d H"); +$date_no_hour_default = $TODAY; + +if (!isset($date_with_hour)) {$date_with_hour = $date_with_hour_default;} + $date_no_hour = $date_with_hour; + $date_no_hour = eregi_replace(" ([0-9]{2})",'',$date_no_hour); +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + +# $stmt="SELECT full_name from vicidial_users where user='$user';"; +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# $full_name = $row[0]; + + } + + + + +?> + + + +ADMINISTRATION: Statistiques du groupe par heures +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Statistiques du groupe par heures <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +if ( ($group) and ($status) and ($date_with_hour) ) +{ +$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";} +$rslt=mysql_query($stmt, $link); +$tsrs_to_print = mysql_num_rows($rslt); + $o=0; + while($o < $tsrs_to_print) + { + $row=mysql_fetch_row($rslt); + $VDuser[$o] = "$row[0]"; + $VDname[$o] = "$row[1]"; + $o++; + } + + $o=0; + while($o < $tsrs_to_print) + { + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDtotal[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDday[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDcount[$o] = "$row[0]"; + $o++; + } + +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +echo "<B>NOMBRE D'HEURES DE TSR: <a href=\"./admin.php?ADD=3111&group_id=$group\">$group</a> | $status | $date_with_hour | $date_no_hour</B>\n"; + +echo "<center><TABLE width=600 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>TSR </td><td align=left><font size=2>ID </td><td align=right><font size=2>   $status</td><td align=right><font size=2>   TOTAL DES APPELS</td><td align=right><font size=2>   $status DAY</td><td align=right><font size=2>     </td></tr>\n"; + + $day_calls=0; + $hour_calls=0; + $total_calls=0; + $o=0; + while($o < $tsrs_to_print) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo "<tr $bgcolor><td><font size=2>$VDuser[$o]</td>"; + echo "<td align=left><font size=2> $VDname[$o]</td>\n"; + echo "<td align=right><font size=2> $VDcount[$o]</td>\n"; + echo "<td align=right><font size=2> $VDtotal[$o]</td>\n"; + echo "<td align=right><font size=2> $VDday[$o]</td>\n"; + echo "<td align=right><font size=1><a href=\"./admin.php?ADD=3&user=$VDuser[$o]\">MODIFIER</a> | <a href=\"./user_stats.php?user=$VDuser[$o]\">STATISTIQUES</a></td></tr>\n"; + $total_calls = ($total_calls + $VDtotal[$o]); + $hour_calls = ($hour_calls + $VDcount[$o]); + $day_calls = ($day_calls + $VDday[$o]); + + $o++; + } + +echo "<tr><td><font size=2>TOTAL </td><td align=right><font size=2> $status </td><td align=right><font size=2> $hour_calls</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $day_calls</td></tr>\n"; + + +} + +echo "</TABLE></center>\n"; +echo "<br><br>\n"; + + + echo "<br>Veuillez entrez le groupe pour lequel vous souhaitez avoir les statistiques horaires : <form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=$DB>\n"; + echo "group: <select size=1 name=group>\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $o=0; + $groups_list=''; + while ($groups_to_print > $o) { + $rowx=mysql_fetch_row($rslt); + if ($group == $group) + {$groups_list .= "<option selected value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + else + {$groups_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + $o++; + } + echo "$groups_list</select><br>\n"; + echo "status: <input type=text name=status size=10 maxlength=10 value=\"$status\">   (example: XFER)<br>\n"; + echo "date with hour: <input type=text name=date_with_hour size=14 maxlength=13 value=\"$date_with_hour\">   (example: 2004-06-25 14)<br>\n"; + echo "<input type=submit name=submit value=VALIDER>\n"; + echo "<BR><BR><BR>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime seconds</font>"; + + +?> + + +</TD></TR></TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/help.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/help.gif new file mode 100644 index 00000000..5575d7c8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/help.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/list_download.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/list_download.php new file mode 100644 index 00000000..572bf79d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/list_download.php @@ -0,0 +1,132 @@ +<?php +# list_download.php +# +# downloads the entire contents of a vicidial list ID to a flat text file +# that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and download_lists='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Login ou mot de passe invalide or no list download permission: |$PHP_AUTH_USER|\n"; + exit; + } + +$stmt="select count(*) from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$count_to_print = mysql_num_rows($rslt); +if ($count_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $leads_count =$row[0]; + $i++; + } + +if ($leads_count < 1) + { + echo "There are no leads in list_id: $list_id\n"; + exit; + } + +$US='_'; +$MT[0]=''; +$ip = getenv("REMOTE_ADDR"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +### LOG INSERTION Admin Log Table ### +$SQL_log = "$stmt|$stmtA|"; +$SQL_log = ereg_replace(';','',$SQL_log); +$SQL_log = addslashes($SQL_log); +$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='$list_id', event_code='ADMIN EXPORT LIST', event_sql=\"$SQL_log\", event_notes='';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + + +$TXTfilename = "LIST_$list_id$US$FILE_TIME.txt"; + +// We'll be outputting a TXT file +header('Content-type: application/octet-stream'); + +// It will be called LIST_101_20090209-121212.txt +header("Content-Disposition: attachment; filename=\"$TXTfilename\""); +header('Expires: 0'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); +header('Pragma: public'); +ob_clean(); +flush(); + +$stmt="select lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$leads_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $leads_to_print) + { + $row=mysql_fetch_row($rslt); + + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; + + $i++; + } + +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader.pl new file mode 100644 index 00000000..052d93e0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader.pl @@ -0,0 +1,1160 @@ +#!/usr/bin/perl +# +# listloader.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60822-1121 - fixed for nonwritable directories +# 60906-1058 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1215 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = <conf>; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + + ### Grab Server values from the database + $stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } + $sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Processing Excel file...\n"; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][0]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][1]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][2]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][3]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][4]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][5]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][6]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][7]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][8]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][9]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][10]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][11]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][12]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][13]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][14]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][15]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][16]; + if ($oWkC) {$country=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][17]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][18]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][19]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][20]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][21]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][22]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup_lead, $postalgmt_found)</script>"; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total</font></center>"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloaderMAIN.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloaderMAIN.php new file mode 100644 index 00000000..e4f74657 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloaderMAIN.php @@ -0,0 +1,87 @@ +<?php +# listloaderMAIN.php +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# 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 +# +# changes: +# 60620-1149 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?><HTML> +<HEAD> +<TITLE>VICIDIAL: Module de chargement de fiches + + + + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader_rowdisplay.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader_rowdisplay.pl new file mode 100644 index 00000000..9caaeab2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/listloader_rowdisplay.pl @@ -0,0 +1,154 @@ +#!/usr/bin/perl +# +# listloader_rowdisplay.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } +} +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); +$var_str=""; + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for(my $iC = $oWkS->{MinCol} ; defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) { + $oWkC = $oWkS->{Cells}[0][$iC]; + if ($oWkC) { + $var_str.=$oWkC->Value."|"; + } else { + $var_str.="|"; + } + } +} + +@xls_row=split(/\|/, $var_str); + + +$stmtA = "select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + my $names = $sthA->{'NAME'}; + my $numFields = $sthA->{'NUM_OF_FIELDS'}; + for (my $i = 0; $i < $numFields; $i++) + { + # printf("%s%s", $i ? "," : "", $$names[$i]); + # printf("%s%s", $i ? "," : "", $$ref[$i]); + + $field_name=uc($$names[$i]); + $field_name=~s/\_/ /g; + print "
".$field_name.": \r\n"; + print " \r\n"; + print "
"; +?> + + +
method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Charger les fiches depuis ce fichier:
ID de la liste Override: (nombres seulement or leave blank for values in the file)
Téléphone Code Override: (nombres seulement or leave blank for values in the file)
Disposition du fichier à utiliser:Standard Format    Disposition personnalisée
Vérification des doublons dans les fiches:
Consultation du fuseau horaire de la fiche:
        
        RETOUR A L'ADMINISTRATIONLIST LOADER-     VERSION:     CONSTRUCTION:    
+ + +document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; + flush(); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.txt"); + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + { + $stmt_file=fopen("listloader_stmts.txt", "w"); + } + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + print "
En cours$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTE OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER: $phone_code_override

"; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($list_id_override)>0) + { + # print "

ID DE LA LISTE OVERRIDE FOR THIS FILE: $list_id_override

"; + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
ERREUR: Le fichier n'a pas le nombre de champs requis pour l'utiliser.
"; + } + } else if (!eregi(".csv", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.xls"); + $file=fopen("$lead_file", "r"); + + print "
En coursExcel file... \n"; + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTE OVERRIDE FOR THIS FILE: $list_id_override

\n"; + } + if (strlen($phone_code_override)>0) + { + print "

DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER: $phone_code_override

\n"; + } + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } else { + # copy($leadfile, "./vicidial_temp_file.csv"); + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
En coursCSV file... \n"; + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTE OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + } + print ""; + } + +if ($leadfile) { + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + ### LOG INSERTION Admin Log Table ### + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTES', event_type='LOAD', record_id='$list_id_override', event_code='ADMIN LOAD LIST', event_sql='', event_notes='File Name: $leadfile_name';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($file_layout=="standard") { + + print ""; + flush(); + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "
En cours$delim_name-delimited file... ($tab_count|$pipe_count)\n"; + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTE OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER: $phone_code_override

\n"; + } + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
ERREUR: Le fichier n'a pas le nombre de champs requis pour l'utiliser.
"; + } + } else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + $file=fopen("$lead_file", "r"); + + # echo "|$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
En coursCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTE OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } + print ""; + + } else { + print "
"; + flush(); + print "\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1", $link); + + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + flush(); + $file=fopen("$lead_file", "r"); + print "
En cours$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTE OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER: $phone_code_override

"; + } + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + + } + } + else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + + # echo "|$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
En coursCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

ID DE LA LISTE OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER: $phone_code_override

"; + } + + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + $row=fgetcsv($file, 1000, ","); + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + } + } + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print "
VICIDIAL ColonneDonnées du fichier
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
        
\r\n"; + # } + print ""; + } +#} else if (filesize($leadfile)>8388608) { +# print "
ERROR: File exceeds the 8MB limit.
"; +} +?> + + + + + + + + +4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Dimanche March to First Dimanche November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Dimanche March to First Dimanche November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Dimanche, to 6=Samedi) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # heure locale calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Dimanche April to Last Dimanche October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Dimanche in April and last Dimanche in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # heure locale calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Dimanche March to Last Dimanche October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Dimanche in March and last Dimanche in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # heure locale calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # heure locale calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Dimanche October to Last Dimanche March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Dimanche in October and last Dimanche in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # heure locale calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # heure locale calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Dimanche October to Last Dimanche March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Dimanche in October and last Dimanche in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # heure locale calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Dimanche October to Third Dimanche March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Dimanche in October and third Dimanche in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # heure locale calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Dimanche October to Last Dimanche February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Dimanche October to Last Dimanche February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # heure locale calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # heure locale calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + +?> +
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/non_agent_api.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/non_agent_api.php new file mode 100644 index 00000000..b64ab4c0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/non_agent_api.php @@ -0,0 +1,2500 @@ + LICENSE: AGPLv2 +# +# This script is designed as an API(Application Programming Interface) to allow +# other programs to interact with all non-agent-screen VICIDIAL functions +# +# required variables: +# - $user +# - $pass +# - $function - ('add_lead','version') +# - $source - ('vtiger','webform','adminweb') +# - $format - ('text','debug') + +# CHANGELOG: +# 80724-0021 - First build of script +# 80801-0047 - Added gmt lookup and hopper insert time validation +# 80909-2012 - Added support for campaign-specific DNC lists +# 80910-0020 - Added support for multi-alt-phones, added version function +# 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function +# + +$version = '2.2.0-16'; +$build = '91216-0331'; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["function"])) {$function=$_GET["function"];} + elseif (isset($_POST["function"])) {$function=$_POST["function"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["dnc_check"])) {$dnc_check=$_GET["dnc_check"];} + elseif (isset($_POST["dnc_check"])) {$dnc_check=$_POST["dnc_check"];} +if (isset($_GET["campaign_dnc_check"])) {$campaign_dnc_check=$_GET["campaign_dnc_check"];} + elseif (isset($_POST["campaign_dnc_check"])) {$campaign_dnc_check=$_POST["campaign_dnc_check"];} +if (isset($_GET["add_to_hopper"])) {$add_to_hopper=$_GET["add_to_hopper"];} + elseif (isset($_POST["add_to_hopper"])) {$add_to_hopper=$_POST["add_to_hopper"];} +if (isset($_GET["hopper_priority"])) {$hopper_priority=$_GET["hopper_priority"];} + elseif (isset($_POST["hopper_priority"])) {$hopper_priority=$_POST["hopper_priority"];} +if (isset($_GET["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_GET["hopper_local_call_time_check"];} + elseif (isset($_POST["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_POST["hopper_local_call_time_check"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phones"];} + elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} +if (isset($_GET["source"])) {$source=$_GET["source"];} + elseif (isset($_POST["source"])) {$source=$_POST["source"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $DB=ereg_replace("[^0-9]","",$DB); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); + $format = ereg_replace("[^0-9a-zA-Z]","",$format); + $list_id = ereg_replace("[^0-9]","",$list_id); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $vendor_lead_code = ereg_replace(";","",$vendor_lead_code); + $vendor_lead_code = ereg_replace("\+"," ",$vendor_lead_code); + $source_id = ereg_replace(";","",$source_id); + $source_id = ereg_replace("\+"," ",$source_id); + $gmt_offset_now = ereg_replace("-\_\.0-9","",$gmt_offset_now); + $title = ereg_replace("[^- \_\.0-9a-zA-Z]","",$title); + $first_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$first_name); + $first_name = ereg_replace("\+"," ",$first_name); + $middle_initial = ereg_replace("[^0-9a-zA-Z]","",$middle_initial); + $last_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$last_name); + $last_name = ereg_replace("\+"," ",$last_name); + $address1 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address1); + $address2 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address2); + $address3 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address3); + $address1 = ereg_replace("\+"," ",$address1); + $address2 = ereg_replace("\+"," ",$address2); + $address3 = ereg_replace("\+"," ",$address3); + $city = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$city); + $city = ereg_replace("\+"," ",$city); + $state = ereg_replace("[^- 0-9a-zA-Z]","",$state); + $province = ereg_replace("[^- \+\.\_0-9a-zA-Z]","",$province); + $province = ereg_replace("\+"," ",$province); + $postal_code = ereg_replace("[^- \+0-9a-zA-Z]","",$postal_code); + $postal_code = ereg_replace("\+"," ",$postal_code); + $country_code = ereg_replace("[^A-Z]","",$country_code); + $gender = ereg_replace("[^A-Z]","",$gender); + $date_of_birth = ereg_replace("[^-0-9]","",$date_of_birth); + $alt_phone = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$alt_phone); + $alt_phone = ereg_replace("\+"," ",$alt_phone); + $email = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$email); + $email = ereg_replace("\+"," ",$email); + $security_phrase = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$security_phrase); + $security_phrase = ereg_replace("\+"," ",$security_phrase); + $comments = ereg_replace(";","",$comments); + $comments = ereg_replace("\+"," ",$comments); + $dnc_check = ereg_replace("[^A-Z]","",$dnc_check); + $campaign_dnc_check = ereg_replace("[^A-Z]","",$campaign_dnc_check); + $add_to_hopper = ereg_replace("[^A-Z]","",$add_to_hopper); + $hopper_priority = ereg_replace("-0-9","",$hopper_priority); + $hopper_local_call_time_check = ereg_replace("[^A-Z]","",$hopper_local_call_time_check); + $campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); + $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); + $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); + $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); + } + +if (strlen($list_id)<1) {$list_id='999';} +if (strlen($phone_code)<1) {$phone_code='1';} +$USarea = substr($phone_number, 0, 3); +if (strlen($hopper_priority)<1) {$hopper_priority=0;} +if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$postalgmt=''; +$api_script = 'non-agent'; +$api_logging = 1; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +### Grab Server GMT value from the database +$stmt="SELECT local_gmt FROM servers where active='Y' limit 1;"; +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$gmt_recs = mysql_num_rows($rslt); +if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } +else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + +$LOCAL_GMT_OFF = $SERVER_GMT; +$LOCAL_GMT_OFF_STD = $SERVER_GMT; + + + + + +################################################################################ +### version - show version and date information for the API +################################################################################ +if ($function == 'version') + { + $data = "VERSION: $version|BUILD: $build|DATE: $NOW_TIME|EPOCH: $StarTtime"; + $result = 'SUCCESS'; + echo "$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + + + + + +################################################################################ +### add_lead - inserts a lead into the vicidial_list table +################################################################################ +if ($function == 'add_lead') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $modify_leads=$row[0]; + + if ($modify_leads < 1) + { + $result = 'ERROR'; + $result_reason = "add_lead USER DOES NOT HAVE PERMISSION TO ADD LEADS TO THE SYSTEM"; + echo "$result: $result_reason: |$user|$modify_leads|\n"; + $data = "$modify_leads"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ( (strlen($phone_number)<6) || (strlen($phone_number)>16) ) + { + $result = 'ERROR'; + $result_reason = "add_lead INVALID PHONE NUMBER"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN DNC"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN CAMPAIGN DNC"; + echo "$result: $result_reason - $phone_number|$campaign_id|$user\n"; + $data = "$phone_number|$campaign_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + + + ### get current gmt_offset of the phone_number + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',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',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $lead_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "add_lead LEAD HAS BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$lead_id|$gmt_offset|$user\n"; + $data = "$phone_number|$list_id|$lead_id|$gmt_offset"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + if (strlen($multi_alt_phones) > 5) + { + $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; + $map = explode('!', $multi_alt_phones); + $map_count = count($map); + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} + $g++; + $r=0; $s=0; $inserted_alt_phones=0; + while ($r < $map_count) + { + $s++; + $ncn=$MT; + $ncn = explode('_', $map[$r]); + print "$ncn[0]|$ncn[1]|$ncn[2]"; + + if (strlen($forcephonecode) > 0) + {$ALTm_phone_code[$r] = $forcephonecode;} + else + {$ALTm_phone_code[$r] = $ncn[1];} + if (strlen($ALTm_phone_code[$r]) < 1) + {$ALTm_phone_code[$r]='1';} + $ALTm_phone_number[$r] = $ncn[0]; + $ALTm_phone_note[$r] = $ncn[2]; + $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Zaffected_rows = mysql_affected_rows($link); + $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); + $r++; + } + $result = 'NOTICE'; + $result_reason = "add_lead MULTI-ALT-PHONE NUMBERS LOADED"; + echo "$result: $result_reason - $inserted_alt_phones|$lead_id|$user\n"; + $data = "$inserted_alt_phones|$lead_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + + if ($add_to_hopper == 'Y') + { + $dialable=1; + + $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $local_call_time=$row[0]; + $VD_campaign_id=$row[1]; + + if ($hopper_local_call_time_check == 'Y') + { + ### call function to determine if lead is dialable + $dialable = dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state); + } + if ($dialable < 1) + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME"; + echo "$result: $result_reason - $phone_number|$lead_id|$gmt_offset|$dialable|$user\n"; + $data = "$phone_number|$lead_id|$gmt_offset|$dialable"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + ### code to insert into hopper goes here + + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Haffected_rows = mysql_affected_rows($link); + if ($Haffected_rows > 0) + { + $hopper_id = mysql_insert_id($link); + + $result = 'NOTICE'; + $result_reason = "add_lead ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$hopper_id|$user\n"; + $data = "$phone_number|$lead_id|$hopper_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$stmt|$user\n"; + $data = "$phone_number|$lead_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + else + { + $result = 'ERROR'; + $result_reason = "add_lead LEAD HAS NOT BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$stmt|$user\n"; + $data = "$phone_number|$list_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } + } +################################################################################ +### END add_lead +################################################################################ + + + +$result = 'ERROR'; +$result_reason = "NO FUNCTION SPECIFIED"; +echo "$result: $result_reason\n"; +api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + + + + + + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + + + + + + +##### FUNCTIONS ##### + +##### LOOKUP GMT, FINDS THE CURRENT GMT OFFSET FOR A PHONE NUMBER ##### + +function lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code) +{ +require("dbconnect.php"); + +$postalgmt_found=0; +if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + + + + + +##### DETERMINE IF LEAD IS DIALABLE ##### +function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) + { + $dialable=0; + + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + if ($GMT_day==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } + } + + return $dialable; + } + +/* + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) + { + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + +*/ + + + + +##### Logging ##### +function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) + { + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/remote_dispo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/remote_dispo.php new file mode 100644 index 00000000..e0ab9c21 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/remote_dispo.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + +$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;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +?> + + +VICIDIAL DISTANT: Disposition des appels +\n"; +?> + + +
+ +"; + +if ($end_call > 0) +{ + +$call_length = ($STARTtime - $call_began); + + ### insert a NEW record to the vicidial_closer_log table + $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";} + $rslt=mysql_query($stmt, $link); + + ### update the lead record in the vicidial_list table + $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";} + $rslt=mysql_query($stmt, $link); + + echo "L'appel a été dispositionné       $NOW_TIME\n

\n"; + + echo "
\n"; + +} +else +{ + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $campaign_id = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; # + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; # + $address1 = "$row[16]"; # + $address2 = "$row[17]"; # + $address3 = "$row[18]"; # + $city = "$row[19]"; # + $state = "$row[20]"; # + $province = "$row[21]"; # + $postal_code = "$row[22]"; # + $country_code = "$row[23]"; # + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; # + $email = "$row[27]"; # + $security = "$row[28]"; # + $comments = "$row[29]"; # + + echo "
Informations sur l'appel: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     ID de la campagne: $campaign_id
Fronter: $tsr     ID de la liste: $list_id
Nom:   \n"; + echo " Prénom:
Adresse1 :
Adresse2 :
Adresse3 :
Ville :
Etat:   \n"; + echo " Code postal:
Province:
Pays :
Téléphone alternatif :
Email :
Sécurité:
Commentaires :
Disposition:
\n"; + echo "


\n"; + + } + else + { + echo "ECHEC de la vérification de la fiche pour l'id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + + + +} + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\ntemps d'exécution du script: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_edit.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_edit.php new file mode 100644 index 00000000..3f045e39 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_edit.php @@ -0,0 +1,481 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80624-1342 - First build +# 80701-1323 - functional beta version done +# 90310-2109 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["oldLOGINepoch"])) {$oldLOGINepoch=$_GET["oldLOGINepoch"];} + elseif (isset($_POST["oldLOGINepoch"])) {$oldLOGINepoch=$_POST["oldLOGINepoch"];} +if (isset($_GET["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_GET["oldLOGOUTepoch"];} + elseif (isset($_POST["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_POST["oldLOGOUTepoch"];} +if (isset($_GET["oldLOGINdate"])) {$oldLOGINdate=$_GET["oldLOGINdate"];} + elseif (isset($_POST["oldLOGINdate"])) {$oldLOGINdate=$_POST["oldLOGINdate"];} +if (isset($_GET["oldLOGOUTdate"])) {$oldLOGOUTdate=$_GET["oldLOGOUTdate"];} + elseif (isset($_POST["oldLOGOUTdate"])) {$oldLOGOUTdate=$_POST["oldLOGOUTdate"];} +if (isset($_GET["LOGINepoch"])) {$LOGINepoch=$_GET["LOGINepoch"];} + elseif (isset($_POST["LOGINepoch"])) {$LOGINepoch=$_POST["LOGINepoch"];} +if (isset($_GET["LOGOUTepoch"])) {$LOGOUTepoch=$_GET["LOGOUTepoch"];} + elseif (isset($_POST["LOGOUTepoch"])) {$LOGOUTepoch=$_POST["LOGOUTepoch"];} +if (isset($_GET["notes"])) {$notes=$_GET["notes"];} + elseif (isset($_POST["notes"])) {$notes=$_POST["notes"];} +if (isset($_GET["LOGINevent_id"])) {$LOGINevent_id=$_GET["LOGINevent_id"];} + elseif (isset($_POST["LOGINevent_id"])) {$LOGINevent_id=$_POST["LOGINevent_id"];} +if (isset($_GET["LOGOUTevent_id"])) {$LOGOUTevent_id=$_GET["LOGOUTevent_id"];} + elseif (isset($_POST["LOGOUTevent_id"])) {$LOGOUTevent_id=$_POST["LOGOUTevent_id"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["timeclock_id"])) {$timeclock_id=$_GET["timeclock_id"];} + elseif (isset($_POST["timeclock_id"])) {$timeclock_id=$_POST["timeclock_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); +$invalid_record=0; + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $modify_timeclock_log = $row[1]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT event,tcid_link from vicidial_timeclock_log where timeclock_id='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $event = $row[0]; + $tcid_link = $row[1]; + } + if (ereg("LOGIN",$event)) + { + $LOGINevent_id = $timeclock_id; + $LOGOUTevent_id = $tcid_link; + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (ereg("LOGOUT",$event)) + { + $LOGOUTevent_id = $timeclock_id; + $stmt="SELECT timeclock_id from vicidial_timeclock_log where tcid_link='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_id = $row[0]; + } + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (strlen($LOGOUTevent_id)<1) + {$invalid_record++;} + + ### + if ($invalid_record < 1) + { + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGINevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_epoch = $row[0]; + $LOGINevent_date = $row[1]; + $LOGINlogin_sec = $row[2]; + $LOGINevent = $row[3]; + $LOGINuser = $row[4]; + $LOGINuser_group = $row[5]; + $LOGINip_address = $row[6]; + $LOGINshift_id = $row[7]; + $LOGINnotes = $row[8]; + $LOGINmanager_user = $row[9]; + $LOGINmanager_ip = $row[10]; + $LOGINevent_datestamp = $row[11]; + } + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGOUTevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGOUTevent_epoch = $row[0]; + $LOGOUTevent_date = $row[1]; + $LOGOUTlogin_sec = $row[2]; + $LOGOUTevent = $row[3]; + $LOGOUTuser = $row[4]; + $LOGOUTuser_group = $row[5]; + $LOGOUTip_address = $row[6]; + $LOGOUTshift_id = $row[7]; + $LOGOUTnotes = $row[8]; + $LOGOUTmanager_user = $row[9]; + $LOGOUTmanager_ip = $row[10]; + $LOGOUTevent_datestamp =$row[11]; + } + + $user=$LOGINuser; + } + } + + + +?> + + + +ADMINISTRATION:Horloge en temps Record Edit +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$TCedit_javascript = '1'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=720 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Horloge en temps Record Edit for <?php echo $user ?></TD><TD ALIGN=RIGHT>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + + + + + +##### BEGIN TIMECLOCK RECORD MODIFY ##### + +if ( ($invalid_record < 1) or (strlen($timeclock_id)<1) ) +{ + +if ($stage == "edit_TC_log") + { + $log_time = ($LOGOUTepoch - $LOGINepoch); + $NEXTevent_epoch = $StarTtimE; + $PREVevent_epoch = 0; + + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id > '$LOGOUTevent_id' and user='$user' order by timeclock_id limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $NEXTevent_epoch = $row[0]; + $NEXTevent_id = $row[1]; + } + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id < '$LOGINevent_id' and user='$user' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $PREVevent_epoch = $row[0]; + $PREVevent_id = $row[1]; + } + + if ( ($LOGINepoch <= $PREVevent_epoch) || ($LOGOUTepoch >= $NEXTevent_epoch) ) + { + echo "ERREUR-Il ya un problème avec les données que vous avez entré, s'il vous plaît revenir<BR>\n"; + echo "A timeclock session ne peuvent pas se chevaucher un autre timeclock session<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + echo "$PREVevent_epoch<BR>\n"; + echo "$PREVevent_id<BR>\n"; + echo "$NEXTevent_epoch<BR>\n"; + echo "$NEXTevent_id<BR>\n"; + exit; + } + if ( ($LOGINepoch > $StarTtimE) || ($LOGOUTepoch > $StarTtimE) || ($log_time > 86400) || ($log_time < 1) ) + { + echo "ERREUR-Il ya un problème avec les données que vous avez entré, s'il vous plaît revenir<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$notes<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + exit; + } + else + { + $LOGINdatetime = date("Y-m-d H:i:s", $LOGINepoch); + $LOGOUTdatetime = date("Y-m-d H:i:s", $LOGOUTepoch); + + ### update LOGIN record in the timeclock log + $stmtA="UPDATE vicidial_timeclock_log set event_epoch='$LOGINepoch', event_date='$LOGINdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGINevent_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGINevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGINepoch|$oldLOGINdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + ### update LOGOUT record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set event_epoch='$LOGOUTepoch', event_date='$LOGOUTdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGOUTevent_id';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGOUTevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGOUTepoch|$oldLOGOUTdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + echo "The timeclock session has been updated. <A HREF=\"$PHP_SELF?timeclock_id=$LOGINevent_id\">Click here to view</A>.<BR>\n"; + exit; + } + } +##### END TIMECLOCK RECORD MODIFY ##### + + + + +echo "\n<BR>"; + +if ($modify_timeclock_log > 0) + { +# $LOGINevent_id = $timeclock_id; +# $LOGOUTevent_id = $tcid_link; + + $event_hours = ($LOGINlogin_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + + $stmt="SELECT full_name from vicidial_users where user='$LOGINuser';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST name=edit_log id=edit_log>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<input type=hidden name=oldLOGINepoch id=oldLOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGOUTepoch id=oldLOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGINdate id=oldLOGINdate value=\"$LOGINevent_date\">\n"; + echo "<input type=hidden name=oldLOGOUTdate id=oldLOGOUTdate value=\"$LOGOUTevent_date\">\n"; + echo "<input type=hidden name=LOGINepoch id=LOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=LOGOUTepoch id=LOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=LOGINevent_id id=LOGINevent_id value=\"$LOGINevent_id\">\n"; + echo "<input type=hidden name=LOGOUTevent_id id=LOGOUTevent_id value=\"$LOGOUTevent_id\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<TABLE BORDER=0><TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "        USER: $LOGINuser ($full_name)         \n"; + echo "HOURS: <span name=login_time id=login_time> $event_hours_int:$event_minutes_int </span>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD>\n"; + echo "<TABLE BORDER=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGIN TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGINbegin_date id=LOGINbegin_date value=\"$LOGINevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGINevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>GROUPE D'UTILISATEURS: </TD><TD ALIGN=RIGHT>$LOGINuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGINip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGINmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGINmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGINnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGINevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + + echo "</TD><TD>         \n"; + echo "</TD><TD>\n"; + echo "<TABLE BORDER=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGOUT TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGOUTbegin_date id=LOGOUTbegin_date value=\"$LOGOUTevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGOUTevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>GROUPE D'UTILISATEURS: </TD><TD ALIGN=RIGHT>$LOGOUTuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGOUTip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGOUTnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGOUTevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + echo "</TD></TR>\n"; + + echo "<TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "NEW NOTES: <input type=text name=notes value='' size=80 maxlength=255>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD COLSPAN=3 ALIGN=CENTER>\n"; + echo "<input type=button name=go_submit id=go_submit value=VALIDER onclick=\"run_submit();\"><BR></form>\n"; + echo "</TD></TR></TABLE>\n"; + echo "<BR><BR>\n"; + } + + +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Feuille de temps</a>\n"; +echo " - <a href=\"./user_stats.php?user=$user\">Statistiques utilisateur</a>\n"; +echo " - <a href=\"./admin.php?ADD=3&user=$user\">Modifier un utilisateur</a>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +} +else +{ + +echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; +} +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_report.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_report.php new file mode 100644 index 00000000..3b457dcb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_report.php @@ -0,0 +1,361 @@ +<?php +# timeclock_report.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80529-0055 - First build +# 80617-1416 - Fixed totals tally bug +# 80707-0754 - Fixed groups bug, changed formatting +# 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +##### Pull values from posted form variables ##### +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($order)<2) {$order='hours_down';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + +##### START HTML ##### +?> + +<HTML> +<HEAD> + +<style type="text/css"> +<!-- + div.scroll_callback {height: 300px; width: 620px; overflow: scroll;} + div.scroll_list {height: 400px; width: 140px; overflow: scroll;} + div.scroll_script {height: 331px; width: 600px; background: #FFF5EC; overflow: scroll; font-size: 12px; font-family: sans-serif;} + div.text_input {overflow: auto; font-size: 10px; font-family: sans-serif;} + .body_text {font-size: 13px; font-family: sans-serif;} + .preview_text {font-size: 13px; font-family: sans-serif; background: #CCFFCC} + .preview_text_red {font-size: 13px; font-family: sans-serif; background: #FFCCCC} + .body_small {font-size: 11px; font-family: sans-serif;} + .body_tiny {font-size: 10px; font-family: sans-serif;} + .log_text {font-size: 11px; font-family: monospace;} + .log_text_red {font-size: 11px; font-family: monospace; font-weight: bold; background: #FF3333} + .sd_text {font-size: 16px; font-family: sans-serif; font-weight: bold;} + .sh_text {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .sb_text {font-size: 12px; font-family: sans-serif;} + .sk_text {font-size: 11px; font-family: sans-serif;} + .skb_text {font-size: 13px; font-family: sans-serif; font-weight: bold;} + .ON_conf {font-size: 11px; font-family: monospace; color: black; background: #FFFF99} + .OFF_conf {font-size: 11px; font-family: monospace; color: black; background: #FFCC77} + .cust_form {font-family: sans-serif; font-size: 10px; overflow: auto} + + .select_bold {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .header_white {font-size: 14px; font-family: sans-serif; font-weight: bold; color: white} + .data_records {font-size: 12px; font-family: sans-serif; color: black} + .data_records_fix {font-size: 12px; font-family: monospace; color: black} + .data_records_fix_small {font-size: 9px; font-family: monospace; color: black} + +--> +</style> + +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<TITLE>UtilisateurHorloge en temps Report + +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +$user_group_ct = count($user_group); +$user_group_string='|'; + +$i=0; +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_timeclock_log.user_group IN($user_group_SQL)"; + } + +if ($DB > 0) + { + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + } + +echo "<CENTER>\n"; +echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; +echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; +echo "<TABLE BORDER=0 CELLSPACING=6><TR><TD ALIGN=LEFT VALIGN=TOP>\n"; + +echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; +echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; +echo "<BR>to<BR>\n"; +echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Groupes d'utilisateurs:</B></font><BR><CENTER>\n"; +echo "<SELECT SIZE=5 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } +echo "</SELECT>\n"; + +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Order:</B></font><BR>\n"; +echo "<SELECT SIZE=1 NAME=order>\n"; +echo "<option selected value=\"$order\">$order</option>\n"; +echo "<option value=\"\">--</option>\n"; +echo "<option>hours_up</option>\n"; +echo "<option>hours_down</option>\n"; +echo "<option>user_up</option>\n"; +echo "<option>user_down</option>\n"; +echo "<option>name_up</option>\n"; +echo "<option>name_down</option>\n"; +echo "<option>group_up</option>\n"; +echo "<option>group_down</option>\n"; +echo "</SELECT><BR><CENTER>\n"; + +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Utilisateur:</B></font><BR>\n"; +echo "<INPUT TYPE=text NAME=user SIZE=7 MAXLENGTH=20 VALUE=\"$user\">\n"; + +echo "<BR><BR><INPUT TYPE=Submit NAME=VALIDER VALUE=VALIDER>\n"; +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "</TD><TD ALIGN=CENTER VALIGN=TOP ROWSPAN=3>\n"; +echo "<FONT class=\"select_bold\" COLOR=BLACK SIZE=2>     <a href=\"./admin.php?ADD=999999\">RAPPORTS</a> </FONT>\n"; + +echo "</TD></TR></TABLE>\n"; +echo "</FORM>\n\n"; + +echo "<PRE><FONT SIZE=3>\n"; + + +echo "UtilisateurHorloge en temps Report $NOW_TIME\n"; + +echo "Time range: $query_date to $end_date\n\n"; +echo "---------- USER TIMECLOCK DETAILS -------------\n"; +echo "These totals do NOT include any active sessions\n</PRE>\n"; + +echo "<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3><TR BGCOLOR=BLACK>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">#</TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  USER  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  NAME  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  GROUP  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  HOURS  </TD>\n"; +echo "</TR>\n"; + +$order_SQL=''; +if ($order == 'hours_up') {$order_SQL = "order by login";} +if ($order == 'hours_down') {$order_SQL = "order by login desc";} +if ($order == 'user_up') {$order_SQL = "order by vicidial_users.user";} +if ($order == 'user_down') {$order_SQL = "order by vicidial_users.user desc";} +if ($order == 'name_up') {$order_SQL = "order by full_name";} +if ($order == 'name_down') {$order_SQL = "order by full_name desc";} +if ($order == 'group_up') {$order_SQL = "order by vicidial_timeclock_log.user_group";} +if ($order == 'group_down') {$order_SQL = "order by vicidial_timeclock_log.user_group desc";} + +if (strlen($user) > 0) {$user_SQL = "and vicidial_timeclock_log.user='$user'";} +else {$user_SQL='';} + +$stmt="select vicidial_users.user,full_name,sum(login_sec) as login,vicidial_timeclock_log.user_group from vicidial_users,vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date 00:00:00' and event_date <= '$end_date 23:59:59' and vicidial_users.user=vicidial_timeclock_log.user $user_SQL $user_group_SQL group by vicidial_users.user,vicidial_timeclock_log.user_group $order_SQL limit 100000;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$rows_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $rows_to_print) + { + $dbHOURS=0; + $row=mysql_fetch_row($rslt); + $user_id[$i] = $row[0]; + $full_name[$i] = $row[1]; + $login_sec[$i] = $row[2]; $TOTlogin_sec = ($TOTlogin_sec + $row[2]); + $u_group[$i] = $row[3]; + + if ($login_sec[$i] > 0) + { + $dbHOURS = ($login_sec[$i] / 3600); + $dbHOURS = round($dbHOURS, 2); + $dbHOURS = sprintf("%01.2f", $dbHOURS); + } + else + {$dbHOURS='0.00';} + + $hours[$i] = $dbHOURS; + $hoursSORT[$i] = "$dbHOURS-----$i"; + + $i++; + } + + +$j=0; +while ($j < $rows_to_print) + { + + $hours_split = explode("-----",$hoursSORT[$j]); + $i = $hours_split[1]; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "<TR $bgcolor>\n"; + echo "<TD ALIGN=LEFT><FONT class=\"data_records_fix_small\">$j</TD>\n"; + echo "<TD><FONT class=\"data_records\"><A HREF=\"user_status.php?user=$user_id[$i]\">$user_id[$i]</A> </TD>\n"; + echo "<TD><FONT class=\"data_records\">$full_name[$i] </TD>\n"; + echo "<TD><FONT class=\"data_records\">$u_group[$i] </TD>\n"; + echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $hours[$i]</TD>\n"; + echo "</TR>\n"; + + $j++; + } + + +if ($TOTlogin_sec > 0) + { + $TOTdbHOURS = ($TOTlogin_sec / 3600); + $TOTdbHOURS = round($TOTdbHOURS, 0); + $TOTdbHOURS = sprintf("%01.0f", $TOTdbHOURS); + } +else + {$TOTdbHOURS='0.00';} + +$TOThours = $TOTdbHOURS; + + +echo "<TR BGCOLOR=#E6E6E6>\n"; +echo "<TD ALIGN=LEFT COLSPAN=4><FONT class=\"data_records\">TOTALS</TD>\n"; +echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $TOThours</TD>\n"; +echo "</TR>\n"; + +echo "</TABLE>\n"; + +echo "\n"; + +/* + $TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60); + $TOTavgWAIT_M = round($TOTavgWAIT_M, 2); + $TOTavgWAIT_M_int = intval("$TOTavgWAIT_M"); + $TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int); + $TOTavgWAIT_S = ($TOTavgWAIT_S * 60); + $TOTavgWAIT_S = round($TOTavgWAIT_S, 0); + if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";} + $TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S"; + $TOTavgWAIT_MS = sprintf("%6s", $TOTavgWAIT_MS); + while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);} +*/ +?> +</CENTER> +</BODY></HTML> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_status.php new file mode 100644 index 00000000..fd7b798e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/timeclock_status.php @@ -0,0 +1,550 @@ +<?php +# timeclock_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80602-0201 - First Build +# 80603-1500 - formatting changes +# 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$HHMM = date("Hi"); +$HHteod = substr($timeclock_end_of_day,0,2); +$MMteod = substr($timeclock_end_of_day,2,2); + +if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} +else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + +$EoDdate = date("Y-m-d H:i:s", $EoD); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + if ($row[0]==$user_group) + {$FORMuser_groups.="<option value=\"$row[0]\" SELECTED>$row[0]</option>";} + else + {$FORMuser_groups.="<option value=\"$row[0]\">$row[0]</option>";} + $i++; + } + +if (strlen($user_group) > 0) + { + $stmt="SELECT group_name from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + } + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION:Horloge en temps Status +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<CENTER> +<TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Horloge en temps Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php +echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; +echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>GROUPE D'UTILISATEURS</a>\n"; +?> +</TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<select size=1 name=user_group>$FORMuser_groups</select>"; +echo "<input type=submit name=submit value=submit>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; +echo "<br><center>\n"; + +if (strlen($user_group) < 1) + { + exit; + } + + +##### grab all users in this user_group ##### +$stmt="SELECT user,full_name from vicidial_users where user_group='" . mysql_real_escape_string($user_group) . "' order by full_name;"; +if ($DB>0) {echo "|$stmt|";} +$rslt=mysql_query($stmt, $link); +$users_to_print = mysql_num_rows($rslt); +$o=0; +while ($users_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $users[$o] = $row[0]; + $full_name[$o] = $row[1]; + $Vevent_time[$o] = ''; + $Vevent_epoch[$o] = 0; + $Vcampaign[$o] = ''; + $Tevent_epoch[$o] = ''; + $Tevent_date[$o] = ''; + $Tstatus[$o] = ''; + $Tip_address[$o] = ''; + $Tlogin_time[$o] = ''; + $Tlogin_sec[$o] = 0; + + $o++; + } + +$o=0; +while ($users_to_print > $o) + { + $total_login_time = 0; + ##### grab timeclock status record for this user ##### + $stmt="SELECT event_epoch,event_date,status,ip_address from vicidial_timeclock_status where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $stats_to_print = mysql_num_rows($rslt); + if ($stats_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_epoch[$o] = $row[0]; + $Tevent_date[$o] = $row[1]; + $Tstatus[$o] = $row[2]; + $Tip_address[$o] = $row[3]; + + if ( ($row[2]=='START') or ($row[2]=='LOGIN') ) + {$bgcolor[$o]='bgcolor="#B9CBFD"';} + else + {$bgcolor[$o]='bgcolor="#9BB9FB"';} + } + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event,event_epoch,login_sec from vicidial_timeclock_log where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $logs_to_parse = mysql_num_rows($rslt); + $p=0; + while ($logs_to_parse > $p) + { + $row=mysql_fetch_row($rslt); + if ( (ereg("LOGIN", $row[0])) or (ereg("START", $row[0])) ) + { + $login_sec=''; + $Tevent_time[$o] = date("Y-m-d H:i:s", $row[1]); + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[2]; + $total_login_time = ($total_login_time + $login_sec); + } + $p++; + } + if ( (strlen($login_sec)<1) and ($logs_to_parse > 0) ) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } + if ($logs_to_parse > 0) + { + $total_login_hours = ($total_login_time / 3600); + $total_login_hours_int = round($total_login_hours, 2); + $total_login_hours_int = intval("$total_login_hours"); + $total_login_minutes = ($total_login_hours - $total_login_hours_int); + $total_login_minutes = ($total_login_minutes * 60); + $total_login_minutes_int = round($total_login_minutes, 0); + if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + + $Tlogin_time[$o] = "$total_login_hours_int:$total_login_minutes_int"; + $Tlogin_sec[$o] = $total_login_time; + } + else + { + $total_login_time = 0; + $Tlogin_time[$o] = "0:00"; + $Tlogin_sec[$o] = $total_login_time; + } + + if ($DB>0) {echo "|$Tlogin_sec[$o]|$Tlogin_time[$o]|";} + + ##### grab vicidial_agent_log records in this user_group ##### + $stmt="SELECT event_time,UNIX_TIMESTAMP(event_time),campaign_id from vicidial_agent_log where user='$users[$o]' and event_time >= '$EoDdate' order by agent_log_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $vals_to_print = mysql_num_rows($rslt); + if ($vals_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Vevent_time[$o] = $row[0]; + $Vevent_epoch[$o] = $row[1]; + $Vcampaign[$o] = $row[2]; + } + + $o++; + } + + +##### print each user that has any activity for today ##### +echo "<br>\n"; +echo "<center>\n"; + +echo "<TABLE width=720 cellspacing=0 cellpadding=1>\n"; +echo "<TR>\n"; +echo "<TD bgcolor=\"#99FF33\">     </TD><TD align=left> TC Logged in and VICI active</TD>\n"; # bright green +echo "<TD bgcolor=\"#FFFF33\">     </TD><TD align=left> TC Logged in only</TD>\n"; # bright yellow +echo "<TD bgcolor=\"#FF6666\">     </TD><TD align=left> VICI active only</TD>\n"; # bright red +echo "</TR><TR>\n"; +echo "<TD bgcolor=\"#66CC66\">     </TD><TD align=left> TC Logged out and VICI active</TD>\n"; # dull green +echo "<TD bgcolor=\"#CCCC00\">     </TD><TD align=left> TC Logged out only</TD>\n"; # dull yellow +echo "<TD>     </TD><TD align=left>   </TD>\n"; +echo "</TR></TABLE><BR>\n"; + +echo "<B>USER STATUS FOR GROUPE D'UTILISATEURS: $user_group</B>\n"; +echo "<TABLE width=700 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2># </td><td><font size=2>USER </td><td align=left><font size=2>NAME </td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> TC TIME</td><td align=right><font size=2>TC LOGIN</td><td align=right><font size=2> VICI LAST LOG</td><td align=right><font size=2> VICI CAMPAIGN</td></tr>\n"; + +$o=0; +$s=0; +while ($users_to_print > $o) + { + if ( ($Tlogin_sec[$o] > 0) or (strlen($Vevent_time[$o]) > 0) ) + { + if ( ($Tstatus[$o]=='START') or ($Tstatus[$o]=='LOGIN') ) + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#FFFF33"';} # yellow + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#99FF33"';} # green + } + else + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#CCCC00"';} # yellow + if (strlen($Vevent_time[$o]) > 0) + {$bgcolor[$o]='bgcolor="#FF6666"';} # red + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#66CC66"';} # green + } + + $s++; + echo "<tr $bgcolor[$o]>"; + echo "<td><font size=1>$s</td>"; + echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; + echo "<td><font size=2>$full_name[$o]</td>"; + echo "<td><font size=2>$Tip_address[$o]</td>"; + echo "<td align=right><font size=2>$Tlogin_time[$o]</td>"; + echo "<td align=right><font size=2>$Tevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vcampaign[$o]</td>"; + echo "</tr>"; + + if (strlen($Tstatus[$o])>0) + {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} + } + $o++; + } + + + +$total_login_hours = ($TOTlogin_sec / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr bgcolor=white>"; +echo "<td colspan=4><font size=2>TOTALS</td>"; +echo "<td align=right><font size=2>$total_login_hours_int:$total_login_minutes_int</td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "</tr>"; +echo "</table>"; + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php +exit; + + + + + + + + + + + +##### vicidial_timeclock log records for user ##### + +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK HEURE DE CONNECTION/DECONNECTION:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HEURES:MINUTES</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours = ($login_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } +$total_login_hours = ($total_login_time / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_group_bulk_change.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_group_bulk_change.php new file mode 100644 index 00000000..b079b0e1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_group_bulk_change.php @@ -0,0 +1,271 @@ +<?php +# user_group_bulk_change.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# 81119-0918 - First build +# 90309-1830 - Added admin_log logging +# 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["old_group"])) {$old_group=$_GET["old_group"];} + elseif (isset($_POST["old_group"])) {$old_group=$_POST["old_group"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Changement de groupe d'utilisateur en vrac +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + + +?> + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Changement de groupe d'utilisateur en vrac</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### GROUP CHANGE FOR ALL USERS IN A USER GROUP ##### +if ($stage == "one_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group='" . mysql_real_escape_string($old_group) . "';"; + $rslt=mysql_query($stmt, $link); + + echo "All Groupe utilisateur $old_group Utilisateurs changed to the $group Groupe utilisateur<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK GROUPE D'UTILISATEURS CHANGE', event_sql=\"$SQL_log\", event_notes='Old Groupe: $old_group';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +##### GROUP CHANGE FOR ALL USERS IN THE SYSTEM EXCEPT FOR LEVEL > 6 AND ADMIN GROUP ##### +if ($stage == "all_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group!='ADMIN' and user_group < 7;"; + $rslt=mysql_query($stmt, $link); + + echo "All non-Admin Utilisateurs changed to the $group Groupe utilisateur<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK GROUPE D'UTILISATEURS CHANGE', event_sql=\"$SQL_log\", event_notes='ALL NON-ADMIN;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +### one user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"one_user_group_change\">\n"; +echo "Change Utilisateurs in this group: <SELECT SIZE=1 NAME=old_group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR>   to this group: <SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=VALIDER></CENTER><BR></form>\n"; + +echo "\n<BR><BR><BR>"; + + + +### all user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"all_user_group_change\">\n"; +echo "Change ALL non-Admin Utilisateurs to this group: <BR><SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=VALIDER></CENTER><BR></form>\n"; + +echo "\n<BR>"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_stats.php new file mode 100644 index 00000000..01e28ae7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_stats.php @@ -0,0 +1,677 @@ +<?php +# user_stats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1743 - Added variable filtering to eliminate SQL injection attack threat +# 61201-1136 - Added recordings display and changed calls to time range with 10000 limit +# 70118-1605 - Added user group column to login/out and calls lists +# 70702-1231 - Added recording location link and truncation +# 80117-0316 - Added vicidial_user_closer_log entries to display +# 80501-0506 - Added Hangup Reason to logs display +# 80523-2012 - Added vicidial timeclock records display +# 80617-1402 - Fixed timeclock total logged-in time +# 81210-1634 - Added server recording display options +# 90208-0504 - Added link to multi-day report and fixed call status summary section +# 90305-1226 - Added user_call_log manual dial logs +# 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +$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"); +$TODAY = date("Y-m-d"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + $stmt="SELECT full_name from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Statistiques utilisateur +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Statistiques utilisateur for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=text name=begin_date value=\"$begin_date\" size=10 maxsize=10> to \n"; +echo "<input type=text name=end_date value=\"$end_date\" size=10 maxsize=10>  \n"; +if (strlen($user)>1) + {echo "<input type=hidden name=user value=\"$user\">\n";} +else + {echo "<input type=text name=user size=12 maxlength=10>\n";} +echo "<input type=submit name=submit value=submit>\n"; + + +echo "           $user - $full_name<BR><BR>\n"; + +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Feuille de temps</a>\n"; +echo " | <a href=\"./user_status.php?user=$user\">Utilisateur Status</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modifier un utilisateur</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">Utilisateur multiple day status detail report</a>"; +echo "</center>\n"; + + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +##### vicidial agent talk time and status ##### + +echo "<B>AGENT TEMPS DE CONVERSATION ET ETAT:</B>\n"; + +echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ETAT</td><td align=right><font size=2>NOMBRE</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + +$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); +$VLstatuses_to_print = mysql_num_rows($rslt); +$total_calls=0; +$o=0; $p=0; +while ($VLstatuses_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $p++; + $o++; + } + +$stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_closer_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); +$VCLstatuses_to_print = mysql_num_rows($rslt); +$o=0; +while ($VCLstatuses_to_print > $o) + { + $status_match=0; + $r=0; + $row=mysql_fetch_row($rslt); + while ($VLstatuses_to_print > $r) + { + if ($status[$r] == $row[1]) + { + $counts[$r] = ($counts[$r] + $row[0]); + $call_sec[$r] = ($call_sec[$r] + $row[2]); + $status_match++; + } + $r++; + } + if ($status_match < 1) + { + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $VLstatuses_to_print++; + $p++; + } + $o++; + } + +$o=0; +$total_sec=0; +while ($o < $p) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $call_hours_minutes = sec_convert($call_sec[$o],'H'); + + echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; + echo "<td align=right><font size=2> $counts[$o]</td>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $total_calls = ($total_calls + $counts[$o]); + $total_sec = ($total_sec + $call_sec[$o]); + $call_seconds=0; + $o++; + } + +$call_hours_minutes = sec_convert($total_sec,'H'); + +echo "<tr><td><font size=2>TOTAL DES APPELS</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; +echo "</TABLE></center>\n"; + + +##### Login and Logout time from vicidial agent interface ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>AGENT HEURE DE CONNECTION/DECONNECTION:</B>\n"; +echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td><td align=right><font size=2> CAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group 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); + $events_to_print = mysql_num_rows($rslt); + + $total_calls=0; + $o=0; + $event_start_seconds=''; + $event_stop_seconds=''; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if (eregi("LOGIN", $row[0])) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if (ereg("LOGIN", $row[0])) + { + $event_start_seconds = $row[1]; + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + if ($event_start_seconds) + { + + $event_stop_seconds = $row[1]; + $event_seconds = ($event_stop_seconds - $event_start_seconds); + $total_login_time = ($total_login_time + $event_seconds); + $event_hours_minutes = sec_convert($event_seconds,'H'); + + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; + $event_start_seconds=''; + $event_stop_seconds=''; + } + else + { + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + } + + $total_calls = ($total_calls + $row[0]); + + $call_seconds=0; + $o++; + } + +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +echo "<tr><td><font size=2>TOTAL</td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + +##### vicidial_timeclock log records for user ##### + +$total_login_time=0; +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK HEURE DE CONNECTION/DECONNECTION:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENEMENT</td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours_minutes = sec_convert($login_sec,'H'); + + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes"; + if ($DB) {echo " - $total_login_time - $login_sec";} + echo "</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} + } +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +if ($DB) {echo " - $total_login_time - $login_sec";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + +##### closer in-group selection logs ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAGNE</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; + +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_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' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound calls for this time period ##### + +echo "<B>SORTANT CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> CAMPAGNE</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial 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' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent inbound calls for this time period ##### + +echo "<B>ENTRANT/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> CAMPAGNE</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[17] </td></tr>\n"; + + } + + +echo "</TABLE></center><BR><BR>\n"; + + +##### vicidial recordings for this time period ##### + +echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "<a href=\"$location\">$locat</a>";} + else + {$location = $locat;} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td align=left><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[12]\" target=\"_blank\">$row[12]</A> </td>"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[8] </td>\n"; + echo "<td align=left><font size=2> $row[0] </td>\n"; + echo "<td align=center><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $location   </td>\n"; + echo "</tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound user manual calls for this time period ##### + +echo "<B>MANUAL SORTANT CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CALL TYPE</td><td align=left><font size=2> SERVER</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> DIALED</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CALLERID</td><td align=right><font size=2> ALIAS</td></tr>\n"; + + $stmt="select call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id from user_call_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[0]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[2]</td>\n"; + echo "<td align=left><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[4] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[5]\" target=\"_blank\">$row[5]</A> </td>\n"; + echo "<td align=right><font size=2> $row[6] </td>\n"; + echo "<td align=right><font size=2> $row[7] </td></tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_status.php new file mode 100644 index 00000000..e658f0ec --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_status.php @@ -0,0 +1,677 @@ +<?php +# user_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1738 - Added variable filtering to eliminate SQL injection attack threat +# 80603-1452 - Added manager timeclock force login/logout of user +# 81118-1034 - Disabled change campaign because it does not work +# 90208-0511 - Added link to user multi-day status report +# 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $agents_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $agents_to_print) + { + $row=mysql_fetch_row($rslt); + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; + $i++; + } + + $stmt="SELECT event_date,status,ip_address from vicidial_timeclock_status where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_date = $row[0]; + $Tstatus = $row[1]; + $Tip_address = $row[2]; + $i++; + } + + } + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Utilisateur Status +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Utilisateur Status for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### EMERGENCY CAMPAIGN CHANGE FOR AN AGENT ##### +if ($stage == "live_campaign_change") + { + $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); + + echo "Agent $user - $full_name changed to $group campaign<BR>\n"; + + exit; + } + +##### EMERGENCY LOGOUT OF AN AGENT ##### +if ($stage == "log_agent_out") + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; + + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } + + exit; + } + + + + + +##### BEGIN TIMECLOCK LOGOUT OF A USER ##### +if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($modify_timeclock_log > 0) ) + { + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $LOG_run=0; + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + } + + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; + } + + + ##### Run timeclock login queries ##### + if ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage == "tc_log_user_IN") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGIN of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update the user's timeclock status record + $stmtB="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtC="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGIN', record_id='$user', event_code='USER FORCED LOGIN FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Horloge en temps ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-in the user: $user - $full_name"; + } + + ##### Run timeclock logout queries ##### + if ( ( ($status=='LOGIN') or ($status=='START') ) and ($stage == "tc_log_user_OUT") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGOUT of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update last login record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_log record updated for $user: |$affected_rows| -->\n"; + + ### Update the user's timeclock status record + $stmtC="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtD="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtD\n";} + $rslt=mysql_query($stmtD, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Update last login record in the timeclock audit log + $stmtE="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtE\n";} + $rslt=mysql_query($stmtE, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_audit_log record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|$stmtD|$stmtE|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGOUT', record_id='$user', event_code='USER FORCED LOGOUT FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Utilisateur login time: $last_action_sec|Horloge en temps ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-out the user: $user - $full_name<BR>Amount of time user was logged-in: $totTIME_HMS"; + } + + if ($LOG_run < 1) + {$VDdisplayMESSAGE = "ERROR: timeclock log problem, could not process: $status|$stage";} + + echo "$VDdisplayMESSAGE\n"; + + exit; + } + +##### END TIMECLOCK LOGOUT OF A USER ##### + +if ($agents_to_print > 0) + { + echo "<BR>\n"; + echo "$user - $full_name \n"; + echo "       GROUP: $user_group <BR>\n"; + + echo "<TABLE CELLPADDING=0 CELLSPACING=0>"; + echo "<TR><TD ALIGN=RIGHT>Agent Logged in at server:</TD><TD ALIGN=LEFT>   $Aserver_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>in session:</TD><TD ALIGN=LEFT>   $Asession_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>from phone:</TD><TD ALIGN=LEFT>   $Aextension</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Agent is in campaign:</TD><TD ALIGN=LEFT>   $Acampaign</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} + echo "</TABLE>\n<BR>\n"; + + if ($change_agent_campaign > 0) + { + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; + echo "Current Campagne: <SELECT SIZE=1 NAME=group>\n"; + $o=0; + while ($groups_to_print > $o) + { + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; + + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"log_agent_out\">\n"; + echo "<input type=submit name=submit value=\"EMERGENCY LOG AGENT OUT\"><BR></form>\n"; + } + } + +else + { + echo "Agent is not logged in\n<BR>"; + } + +echo "\n<BR>"; + +if ( ($Tstatus == "LOGIN") or ($Tstatus == "START") ) + { + echo "Utilisateur $user($full_name) - is logged in to the timeclock. <BR>Login time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_OUT'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER OUT'; + } +else + { + echo "Utilisateur $user($full_name) - is NOT logged in to the timeclock. <BR>Last logout time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_IN'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER IN'; + } + +if ($modify_timeclock_log > 0) + { + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"$TC_log_change_stage\">\n"; + echo "<input type=submit name=submit value=\"$TC_log_change_button\"><BR></form>\n"; + echo "<BR><BR>\n"; + } + + +$REPORTdate = date("Y-m-d"); +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Feuille de temps</a>\n"; +echo " | <a href=\"./user_stats.php?user=$user\">Statistiques utilisateur</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modifier un utilisateur</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">Utilisateur multiple day status detail report</a>"; +echo "</center>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\ntemps d'exécution du script: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_territories.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
\n"; + echo ""; + + echo "
Add Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Territory:
Territory Description:
\n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
\n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
\n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
\n"; + echo ""; + + echo "
Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
Territory: $rowx[0]
Territory Description:
Agents: $user_count
Accounts: $owner_count
Vtiger Accounts: $vtiger_count
\n"; + echo "

\n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Users in this Territory:
$p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
"; + echo "
DELETE
\n"; + echo "


\n"; + + echo "Delete This Territory\n"; + echo "

\n"; + } + else + { + echo "ERROR: Territory not found: $territory
\n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
\n"; + echo ""; + echo "
List All Territories:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
#IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
$i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


\n"; + echo "\n"; + echo "
\n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
User Territories     VERSION:     BUILD:    
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vdremote.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vdremote.php new file mode 100644 index 00000000..1c9aa459 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vdremote.php @@ -0,0 +1,591 @@ + LICENSE: AGPLv2 +# +# Changes +# 50307-1721 - First version +# 51123-1502 - removed requirement of PHP Globals=on +# 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 +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes +# + +$version = '2.2.0'; +$build = '91129-2249'; + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["VALIDER"])) {$VALIDER=$_GET["VALIDER"];} + elseif (isset($_POST["VALIDER"])) {$VALIDER=$_POST["VALIDER"];} + +if (!isset($force_logout)) {$force_logout = 0;} + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Vous êtes maintenant déconnecté. Merci.\n"; + 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'; +$STARTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Login ou mot de passe invalide: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + $stmt="SELECT count(*) from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $authx=$row[0]; + + if($authx>0) + { + $stmt="SELECT remote_agent_id,server_ip,number_of_lines from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id=$row[0]; + $server_ip=$row[1]; + if (!$number_of_lines) {$number_of_lines=$row[2];} + + fwrite ($fp, "VDremote|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + echo "This remote agent does not exist: |$PHP_AUTH_USER|\n"; + exit; + } + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +if ($ADD==61111) + { + echo"\n"; + } +echo "\n"; +?> + +AGENTS DISTANTS: $LOGfullname - $PHP_AUTH_USER "; + +if (!$ADD) {$ADD="31111";} +if ($ADD==31111) {echo "Modifier les agents distants";} +if ($ADD==41111) {echo "Modifier les agents distants";} +if ($ADD==61111) {echo "Remote Agent Status";} +if ($ADD==71111) {echo "Remote Agent Closer Stats";} + + +if (strlen($ADD)>4) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "\n"; + $o++; + } + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get inbound groups listing for checkboxes + if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $groups_list .= "2) {$groups_value .= " -";} + } + +?> + + + +
+ + + + +
  AGENTS DISTANTS:   Déconnection  
  MODIFIER | ">ETAT | ">SATISTIQUES EN ENTREE
+"; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Début des ID utilisateurs: $user_start
Nombre de lignes: (nombres seulement)
IP du serveur: $row[3]
Extension externe: (number dialed to reach agents [i.e. 913125551212])
Etat:
Campagne: $campaign_id
Groupes entrants: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; + } + + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + echo ""; + + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + {echo "
AGENT DISTANT NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies\n";} + else + { + $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); + +# echo "$stmt\n"; + echo "
AGENTS DISTANTS MODIFIES\n"; + + ### LOG CHANGES TO LOG FILE ### + $fp = fopen ("./admin_changes_log.txt", "a"); + fwrite ($fp, "$date|MODIFY AGENTS DISTANTS ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); + fclose($fp); + } + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFIER UN ENREGISTREMENT D'AGENT DISTANT: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Début des ID utilisateurs: $user_start
Nombre de lignes: (nombres seulement)
IP du serveur: $row[3]
Extension externe: (number dialed to reach agents [i.e. 913125551212])
Etat:
Campagne: $campaign_id
Groupes entrants: \n"; + echo "$groups_list"; + echo "
\n"; + echo "NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte\n"; + } + + + +###################### +# ADD=61111 status of remote agent in the system and active calls and queue +###################### + +if ($ADD==61111) + { + echo "
";
+
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+		{echo "
ERREUR AGENTS DISTANT - Veuillez revenir en arrière et verifier les données que vous avez saisies\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'" . mysql_real_escape_string($nextuser) . "',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' and user IN($users_list) order by extension;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $leadlink=0; + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[4])) + { + $row[3]=''; + $row[5]=' - PATIENTEZ -'; + $row[6]=$row[7]; + } + $extension = sprintf("%-10s", $row[0]); + $user = sprintf("%-6s", $row[1]); + $leadid = sprintf("%-12s", $row[2]); + if ($row[2] > 0) + { + $leadidLINK=$row[2]; + $leadlink++; + if ( eregi("QUEUE",$row[4]) ) {$row[6]=$STARTtime;} + $leadid = "$leadid"; + } + $channel = sprintf("%-10s", $row[3]); + $cc=0; + while ( (strlen($channel) > 10) and ($cc < 100) ) + { + $channel = eregi_replace(".$","",$channel); + $cc++; + if (strlen($channel) <= 10) {$cc=101;} + } + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = ($STARTtime - $row[6]); + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$extension$EG | $G$user$EG | $G$leadid$EG | $G$channel$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i agents connectés sur ce serveur $server_ip\n\n"; + + echo " - En appel depuis 5 minutes ou plus\n"; + echo " - En appel depuis plus de 10 minutes\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "********************************* AUCUN AGENT EN APPEL*********************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
\n\n"; + } + + +###################### +# ADD=71111 stats for remote agents from closer logs(vicidial_closer_log) +###################### + +if ($ADD==71111) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n\n"; + echo "
";
+
+	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
+		{echo "
ERREUR AGENTS DISTANT - Veuillez revenir en arrière et verifier les données que vous avez saisies\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'$nextuser',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + $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 user IN($users_list);"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $in_calls = $row[0]; + $in_time = $row[1]; + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); + + echo "Statistiques des agents distants en entrée $NOW_TIME\n\n"; + echo "\n"; + echo "Total des appels pris $query_date: $in_calls\n"; + echo "Temps total de conversation$query_date: $in_time_MS (minutes:seconds)\n"; + echo "\n"; + echo "\n"; + echo "Liste d'appel pour $query_date:\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + echo "| USER | LEADID | GROUP | PHONE NUM | STATUS | CALL TIME | MINUTES |\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + + + $stmt="select user,lead_id,campaign_id,phone_number,status,call_date,length_in_sec from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and user IN($users_list) order by call_date;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + $user = sprintf("%-8s", $row[0]); + $leadid = sprintf("%-10s", $row[1]); + $group = sprintf("%-14s", $row[2]); + $phone = sprintf("%-10s", $row[3]); + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = $row[6]; + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + # if ($call_time_M_int >= 5) {$G=''; $EG='';} + # if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$user$EG | $G$leadid$EG | $G$group$EG | $G$phone$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; + +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "********************************* PAS D'APPELS CE JOUR*******************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
\n\n"; + } + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\ntemps d'exécution du script: $RUNtime seconds
"; + + +?> + + +
+ + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_admin_web_logo.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_admin_web_logo.gif new file mode 100644 index 00000000..8c5a9d22 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_admin_web_logo.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_admin_web_logo_small.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_admin_web_logo_small.gif new file mode 100644 index 00000000..95738d49 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_admin_web_logo_small.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_sales_viewer.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_sales_viewer.php new file mode 100644 index 00000000..607b4d09 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vicidial_sales_viewer.php @@ -0,0 +1,258 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 80310-1500 - first build +# 90310-2135 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +if (isset($_GET["dcampaign"])) {$dcampaign=$_GET["dcampaign"];} + elseif (isset($_POST["dcampaign"])) {$dcampaign=$_POST["dcampaign"];} +if (isset($_GET["submit_report"])) {$submit_report=$_GET["submit_report"];} + elseif (isset($_POST["submit_report"])) {$submit_report=$_POST["submit_report"];} +if (isset($_GET["list_ids"])) {$list_ids=$_GET["list_ids"];} + elseif (isset($_POST["list_ids"])) {$list_ids=$_POST["list_ids"];} +if (isset($_GET["sales_number"])) {$sales_number=$_GET["sales_number"];} + elseif (isset($_POST["sales_number"])) {$sales_number=$_POST["sales_number"];} +if (isset($_GET["sales_time_frame"])) {$sales_time_frame=$_GET["sales_time_frame"];} + elseif (isset($_POST["sales_time_frame"])) {$sales_time_frame=$_POST["sales_time_frame"];} +if (isset($_GET["forc"])) {$forc=$_GET["forc"];} + elseif (isset($_POST["forc"])) {$forc=$_POST["forc"];} + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + +$PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); +$PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +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 "Login ou mot de passe invalide or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +?> + + +Recent Sales Lookup + + + + + +
"; +?> + +
+ + + + + + + + + + + + + + + + + + + + + +
Vicidial SORTANT recent sales report               Back to Admin +
+ + + + + + + + + + +
Select a campaign:
Select list ID(s) # (optional):
+
View sales made within the last OR...View the last sales**
(If you enter values in both fields, the results will be limited by the first criteria met)
Campagne is:    Transfer  Non-transfer
** - sorted by call date
+
+0)) { $list_id_clause.="$lists[$i], "; } + } + $list_id_clause=substr($list_id_clause, 0, -2); + $list_id_clause.=")"; + + if ($sales_number && $sales_number>0) { + $sales_number=eregi_replace("[^0-9]", "", $sales_number); + $limit_clause="limit $sales_number"; + } else { + $sales_number=0; + $limit_clause=""; + } + if ($sales_time_frame && $sales_time_frame>0) { + $hours=$sales_time_frame/60; + $timestamp=date("YmdHis", mktime(date("H"),(date("i")-$sales_time_frame),date("s"),date("m"),date("d"),date("Y"))); + } else { + $timestamp=date("YmdHis", mktime(date("H"),date("i"),date("s"),date("m"),(date("d")-1),date("Y"))); + $hours=24; + } + print "
"; + print ""; + $i=0; + + $dfile=fopen("discover_stmts.txt", "w"); + if ($forc=="C") { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, u.full_name from vicidial_users u, vicidial_list v, vicidial_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause and vl.user=u.user order by call_date desc $limit_clause"; + } else { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, vl.user, vl.closer from vicidial_list v, vicidial_xfer_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause order by call_date desc $limit_clause"; + } + fwrite($dfile, "$stmt\n"); + $rslt=mysql_query($stmt, $link); + $q=0; + print "\n"; + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + while ($row=mysql_fetch_row($rslt)) { + $rec_stmt="select max(recording_id) from recording_log where lead_id='$row[4]'"; + $rec_rslt=mysql_query($rec_stmt, $link); + $rec_row=mysql_fetch_row($rec_rslt); + + if ($forc=="F") { + $rep_stmt="select full_name from vicidial_users where user='$row[5]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $fr_row=mysql_fetch_array($rep_rslt); + + $rep_stmt="select full_name from vicidial_users where user='$row[6]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $cl_row=mysql_fetch_array($rep_rslt); + + $rep_name="$fr_row[full_name]/$cl_row[full_name]"; + } else { + $rep_name=$row[5]; + } + + if ($i%2==0) {$bgcolor="#999999";} else {$bgcolor="#CCCCCC";} + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + flush(); + } + print "
Last ".mysql_num_rows($rslt)." sales made
Sales Rep(s)Customer NamePhoneRecording IDTimestamp
$rep_name$row[0] $row[1]$row[2]$rec_row[0]$row[3]
"; + passthru("$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign"); +# print "\n\n
$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign
\n"; + flush(); + print ""; + if ($forc=="F") { + print ""; + } + print ""; + print "
View complete Excel fronter report for this shiftView complete Excel sales report for this shift
"; +} +?> + +
+ + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vtiger_search.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vtiger_search.php new file mode 100644 index 00000000..6636a431 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vtiger_search.php @@ -0,0 +1,885 @@ + LICENSE: AGPLv2 +# +# This page does a search against a standard vtiger CRM system. If the record +# is not present, it will create a new one and send the agent's screen to that new page. +# +# This code is tested against vtiger 5.0.4 and 5.1.0 +# +# CHANGES +# 60719-1615 - First version +# 60801-2304 - Added mysql debug and auto-forward +# 60802-1111 - Added insertion of not-found record into vtiger system +# 71220-0000 - Modified by I. Taushanov for VTiger 5.03- search/create lead +# 80120-1934 - Added changes for compatibility with vtiger 5.0.3 +# 81229-1017 - Added usage of system_settings connection settings for vtiger database +# 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD +# 90111-1451 - Added logging of call as activity for account/lead +# 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$HHMMnow = date("H:i"); +$minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); +$HHMMend = date("H:i",$minute_old); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger Lookup\n"; +echo "\n"; + + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$vtc_conf_ct = mysql_num_rows($rslt); +if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + } +if (strlen($vtiger_search_category)<1) + {$vtiger_search_category = 'LEAD';} + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo 'Connected successfully'; +mysql_select_db("$vtiger_dbname", $linkV); + +# Methods of searching for records: +# +# ACCTID: +# $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; +# +# ACCOUNT: +# $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; +# +# VENDOR: +# $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; +# +# LEAD: +# $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; + +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} + + + +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+	echo "Forwarding to Vtiger Unified Contact Search page...\n";
+	echo "phone number:   $phone\n";
+	echo "

"; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + + + +########################################################################## +##### BEGIN - ACCTID - Search in the account records for accountid number +########################################################################## +if ($acctid_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCTID|$vendor_id|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCTID\n";
+			echo "accountid:   $vendor_id\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - ACCTID - Search in the account records for accountid number +########################################################################## + + +########################################################################## +##### BEGIN - ACCOUNT - Search in the account records for phone number +########################################################################## +if ($account_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_account\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_contactdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nACCOUNT|$phone|$found_count|vtiger_contactsubdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_contact + $stmt="SELECT contactsubscriptionid from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $contactid = $row[0]; + + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where contactid='$contactid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + if (strlen($accountid) > 0) + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "account found! ACCOUNT\n";
+			echo "accountid:   $accountid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - ACCOUNT - Search in the account records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - VENDOR - Search in the vendor records for phone number +########################################################################## +if ($vendor_search > 0) + { + $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nVENDOR|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_vendor + $stmt="SELECT vendorid from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $vendorid = $row[0]; + + # http://mysite.com/vtigercrm/index.php?module=Vendors&action=DetailView&record=2&parenttab=Inventory + $account_URL = "$vtiger_url/index.php?module=Vendors&action=DetailView&record=$vendorid&parenttab=Inventory"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+		echo "account found! VENDOR\n";
+		echo "vendorid:   $vendorid\n";
+		echo "phone:       $phone\n";
+		echo "

"; + exit; + } + } +########################################################################## +##### END - VENDOR - Search in the vendor records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - LEAD - Search in the leads records for phone number +########################################################################## +if ($lead_search > 0) + { + $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
\nLEAD|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + if (ereg('Y',$vtiger_create_lead_record)) + { + echo "\n"; + echo "\n"; + echo "
\n"; + echo "$phone not found, creating account...\n"; + + $DB=1; + + #Get logged in user ID + if ($DB) {echo "
";}
+			$stmt="SELECT id from vtiger_users where user_name='$user';";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			$row=mysql_fetch_row($rslt);
+			$user_id = $row[0];
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Vtiger no longer use auto increment for vtiger_crmentity crmid, vtiger_crmentity_seq is used instead to list next aviable entity ID
+			# Get next aviable id to use as  crmid in vtiger_crmentity	
+			$stmt="SELECT id from vtiger_crmentity_seq ;";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			$row=mysql_fetch_row($rslt);
+			$leadid = ($row[0] + 1);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			# Increase 	next aviable crmid with 1 so next record gets proper id
+			$stmt="UPDATE vtiger_crmentity_seq SET id = '$leadid';";
+			if ($DB) {echo "$stmt\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Insert values into vtiger_crmentity
+			$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$leadid', '$user_id', '$user_id','$user_id', 'Leads', '(Memo)', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if ($DB) {echo "|$leadid|\n";}
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leaddetails	
+			$stmt = "INSERT INTO vtiger_leaddetails (leadid,firstname,lastname,company) values('$leadid','$first_name','$last_name','$first_name $last_name');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leaddetails
+			$stmt = "INSERT INTO vtiger_leadaddress (leadaddressid,city,code,state,country,phone,mobile,lane) values('$leadid','$city','$postal_code','$province','$country','$phone','$alt_phone','$address1 $address2');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			#Insert values into vtiger_leadsubdetails	
+			$stmt = "INSERT INTO vtiger_leadsubdetails (leadsubscriptionid) VALUES ('$leadid');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+			
+			#Insert values into vtiger_leadscf, these are custom created fields example	
+			$stmt = "INSERT INTO vtiger_leadscf (leadid) VALUES ('$leadid');";
+			if ($DB) {echo "|$stmt|\n";}
+			$rslt=mysql_query($stmt, $linkV);
+			if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+			if ($DB) {echo "DONE creating lead records\n";}
+
+			if (ereg('Y',$vtiger_create_call_record))
+				{
+				### Log the call in Vtiger
+
+				#Get logged in user ID
+				$stmt="SELECT id from vtiger_users where user_name='$user';";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				$row=mysql_fetch_row($rslt);
+				$user_id = $row[0];
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				# Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity	
+				$stmt="SELECT id from vtiger_crmentity_seq ;";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				$row=mysql_fetch_row($rslt);
+				$activityid = ($row[0] + 1);
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+				# Increase next aviable crmid with 1 so next record gets proper id
+				$stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';";
+				if ($DB) {echo "$stmt\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_salesmanactivityrel
+				$stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_seactivityrel
+				$stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+				
+				#Insert values into vtiger_crmentity
+				$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+				#Insert values into vtiger_activity
+				$stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';";
+				if ($DB) {echo "|$stmt|\n";}
+				$rslt=mysql_query($stmt, $linkV);
+				if ($DB) {echo "|$leadid|\n";}
+				if (!$rslt) {die('Could not execute: ' . mysql_error());}
+
+
+				# http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales
+				$account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales";
+				}
+			else
+				{
+				# http://mysite.com/vtigercrm/index.php?module=Accounts&action=EditView&record=2&parenttab=Sales
+				$account_URL = "$vtiger_url/index.php?module=Leads&action=EditView&record=$leadid&parenttab=Sales";
+				}
+
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "
\n"; + + echo "
";
+			echo "account created! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + else + { + $stmt="SELECT leadaddressid from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $leadid = $row[0]; + + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + + echo "
";
+			echo "lead found! LEAD\n";
+			echo "leadid:   $leadid\n";
+			echo "phone:       $phone\n";
+			echo "

"; + exit; + } + } + } +########################################################################## +##### END - LEAD - Search in the leads records for phone number +########################################################################## + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n
$phone NOT FOUND

\n\n"; +echo "Click here to go to the Vtiger home page\n"; + +# echo "\n\n\n


\nscript runtime: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vtiger_user.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vtiger_user.php new file mode 100644 index 00000000..f53a989a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/vtiger_user.php @@ -0,0 +1,317 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81231-1307 - First build +# 90228-2152 - Added Groups support +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger user synchronization utility\n"; +echo "\n"; + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +##### grab the existing user_groups in the vicidial_user_groups table +$stmt="SELECT user_group,group_name FROM vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_groups_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $UGid[$i] = $row[0]; + $UGname[$i] = $row[1]; + $i++; + } + +##### grab the existing users in the vicidial_users table +$stmt="SELECT user,pass,full_name,user_level,active,user_group FROM vicidial_users;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_users_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_users_ct) + { + $row=mysql_fetch_row($rslt); + $user[$i] = $row[0]; + $pass[$i] = $row[1]; + $full_name[$i] = $row[2]; while (strlen($full_name[$i])>30) {$full_name[$i] = eregi_replace(".$",'',$full_name[$i]);} + $user_level[$i] = $row[3]; + $active[$i] = $row[4]; + $user_group[$i] = $row[5]; + $i++; + } + + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo "Connected successfully\n
\n"; +mysql_select_db("$vtiger_dbname", $linkV); + + +########################## +### BEGIN Group export +$i=0; +while ($i < $VD_groups_ct) + { + $VTgroup_name = $UGid[$i]; + $VTgroup_description = $UGname[$i]; + + $stmt="SELECT count(*) from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, grab groupid, update description + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + $VTugID[$i] = $groupid; + + $stmtA = "UPDATE vtiger_groups SET description='$VTgroup_description' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
\n"; + echo "
\n"; + } + + ### group doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $VTugID[$i] = $groupid; + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$VTgroup_name',description='$VTgroup_description';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
\n"; + echo "
\n"; + #### END CREATE NEW GROUP RECORD IN VTIGER + } + $i++; + } +### END Group export +########################## + + + +########################## +### BEGIN User export +$i=0; +while ($i < $VD_users_ct) + { + $user_name = $user[$i]; + $VUgroup = $user_group[$i]; + $user_password = $pass[$i]; + $last_name = $full_name[$i]; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level[$i] >= 7) {$roleid = 'H4';} + if ($user_level[$i] >= 8) {$roleid = 'H3';} + if ($user_level[$i] >= 9) {$roleid = 'H2';} + if ($user_level[$i] >= 9) {$is_admin = 'on';} + if (ereg('N',$active[$i])) {$status = 'Inactive';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + $i++; + + $j=0; + $all_VICIDIAL_groups_SQL=''; + while ($j < $VD_groups_ct) + { + if ( (eregi("$UGid[$j]",$VUgroup)) and ( (strlen($UGid[$j]))==(strlen($VUgroup)) ) ) + { + $groupid = $VTugID[$j]; + $VTgroup_name = $UGid[$j]; + $VTgroup_description = $UGname[$j]; + } + else + {$all_VICIDIAL_groups_SQL .= "'$VTugID[$j]',";} + $j++; + } + $all_VICIDIAL_groups_SQL = preg_replace("/.$/",'',$all_VICIDIAL_groups_SQL); + + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN($all_VICIDIAL_groups_SQL);"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + else + {$stmtC='';} + + echo "$user_name: $userid
\n"; + echo "$stmtA
\n"; + echo "$stmtB
\n"; + echo "$stmtC
\n"; + echo "$stmtD
\n"; + echo "
\n"; + + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "$user_name:
\n"; + echo "$stmtA
\n"; + echo "$stmtB
\n"; + echo "$stmtC
\n"; + echo "$stmtD
\n"; + echo "
\n"; + #### END CREATE NEW USER RECORD IN VTIGER + } + + + } +### END User export +########################## + + + + + +echo "DONE\n"; + +exit; + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome.php new file mode 100644 index 00000000..f49512ce --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome.php @@ -0,0 +1,26 @@ + LICENSE: AGPLv2 +# + +echo "ViciDial Bienvenue\n"; +echo "\n"; +echo "\n"; +echo "




"; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Bienvenue
 
Agent Login
 
Horloge en temps
 
Administration
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome_demo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome_demo.php new file mode 100644 index 00000000..238cf5cf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome_demo.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



"; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
 
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Agent Login"; +echo "
"; +echo "   Spanish Agent Login"; +echo "
"; +echo "   German Agent Login"; +echo "
"; +echo "   Italian Agent Login"; +echo "
"; +echo "   Greek Agent Login"; +echo "
"; +echo "   French Agent Login"; +echo "
"; +echo "   Brazillian Portuguese Agent Login"; +echo "
"; +echo "   Portuguese Agent Login"; +echo "
"; +echo "   Polish Agent Login"; +echo "
"; +echo "   Slovak Agent Login"; +echo "
"; +echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; +echo "
\n"; + +echo "
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Administration"; +echo "
"; +echo "   Spanish Administration"; +echo "
"; +echo "   German Administration"; +echo "
"; +echo "   Italian Administration"; +echo "
"; +echo "   Greek Administration"; +echo "
"; +echo "   French Administration"; +echo "
\n"; +echo "
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome_languages.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome_languages.php new file mode 100644 index 00000000..d53707a9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_fr/welcome_languages.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



"; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
 
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Agent Login"; +echo "
"; +echo "   Spanish Agent Login"; +echo "
"; +echo "   German Agent Login"; +echo "
"; +echo "   Italian Agent Login"; +echo "
"; +echo "   Greek Agent Login"; +echo "
"; +echo "   French Agent Login"; +echo "
"; +echo "   Brazillian Portuguese Agent Login"; +echo "
"; +echo "   Portuguese Agent Login"; +echo "
"; +echo "   Polish Agent Login"; +echo "
"; +echo "   Slovak Agent Login"; +echo "
"; +echo "   Russian Agent Login"; +echo "
"; +echo "   Dutch Agent Login"; +echo "
"; +echo "   Chinese(T) Agent Login"; +echo "
\n"; + +echo "
\n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
"; +echo "   English Administration"; +echo "
"; +echo "   Spanish Administration"; +echo "
"; +echo "   German Administration"; +echo "
"; +echo "   Italian Administration"; +echo "
"; +echo "   Greek Administration"; +echo "
"; +echo "   French Administration"; +echo "
\n"; +echo "
 
\n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSER_service_level.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSER_service_level.php new file mode 100644 index 00000000..ba3aeda0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSER_service_level.php @@ -0,0 +1,959 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80509-0943 - First build +# 80510-1500 - Added fixed scale hold time graph +# 80519-0413 - rewrote time intervals code and stats gathering code +# 80528-2320 - fixed small calculation bugs and display bugs, added more shifts +# 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Service Level Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo " to \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFICA | REPORT \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "SELEZIONA UN GRUPPO IN-E DATE SOPRA e fare clic su Invia\n";
+	}
+
+else
+{
+### FOR SHIFTS IT IS BEST TO STICK TO 15-MINUTE INCREMENTS FOR START TIMES ###
+
+if ($shift == 'AM') 
+	{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}   
+	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}   
+#	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
+	}
+if ($shift == 'PM') 
+	{
+#	$time_BEGIN=$PM_shift_BEGIN;
+#	$time_END=$PM_shift_END;
+#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+#	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+if ($shift == 'DAYTIME') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '10AM-6PM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "10:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:59:59";}
+	}
+if ($shift == '9AM-1AM') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "09:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+if ($shift == '845-1745') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "17:44:59";}
+	}
+if ($shift == '1745-100') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "17:45:00";}
+	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
+	}
+
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+$SQdate_ARY =	explode(' ',$query_date_BEGIN);
+$SQday_ARY =	explode('-',$SQdate_ARY[0]);
+$SQtime_ARY =	explode(':',$SQdate_ARY[1]);
+$EQdate_ARY =	explode(' ',$query_date_END);
+$EQday_ARY =	explode('-',$EQdate_ARY[0]);
+$EQtime_ARY =	explode(':',$EQdate_ARY[1]);
+
+$SQepochDAY = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$SQepoch = mktime($SQtime_ARY[0], $SQtime_ARY[1], $SQtime_ARY[2], $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime($EQtime_ARY[0], $EQtime_ARY[1], $EQtime_ARY[2], $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+$SQsec = ( ($SQtime_ARY[0] * 3600) + ($SQtime_ARY[1] * 60) + ($SQtime_ARY[2] * 1) );
+$EQsec = ( ($EQtime_ARY[0] * 3600) + ($EQtime_ARY[1] * 60) + ($EQtime_ARY[2] * 1) );
+
+$DURATIONsec = ($EQepoch - $SQepoch);
+$DURATIONday = intval( ($DURATIONsec / 86400) + 1 );
+
+if ( ($EQsec < $SQsec) and ($DURATIONday < 1) )
+	{
+	$EQepoch = ($SQepochDAY + ($EQsec + 86400) );
+	$query_date_END = date("Y-m-d H:i:s", $EQepoch);
+	$DURATIONday++;
+	}
+
+echo "Inbound Service Level Report                      $NOW_TIME\n";
+echo "\n";
+echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
+#echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	$dSQepoch = ($SQepoch + ($d * 86400) );
+	$dEQepoch = ($SQepochDAY + ($EQsec + ($d * 86400) ) );
+
+	if ($EQsec < $SQsec)
+		{
+		$dEQepoch = ($dEQepoch + 86400);
+		}
+
+	$daySTART[$d] = date("Y-m-d H:i:s", $dSQepoch);
+	$dayEND[$d] = date("Y-m-d H:i:s", $dEQepoch);
+
+	$d++;
+	}
+
+##########################################################################
+#########  CALCULATE ALL OF THE 15-MINUTE PERIODS NEEDED FOR ALL DAYS ####
+
+### BUILD HOUR:MIN DISPLAY ARRAY ###
+$i=0;
+$h=4;
+$j=0;
+$Zhour=1;
+$active_time=0;
+$hour =		($SQtime_ARY[0] - 1);
+$startSEC = ($SQsec - 900);
+$endSEC =	($SQsec - 1);
+if ($SQtime_ARY[1] > 14) 
+	{
+	$h=1;
+	$hour++;
+	if ($hour < 10) {$hour = "0$hour";}
+	}
+if ($SQtime_ARY[1] > 29) {$h=2;}
+if ($SQtime_ARY[1] > 44) {$h=3;}
+while ($i < 96)
+	{
+	$startSEC = ($startSEC + 900);
+	$endSEC = ($endSEC + 900);
+	$time = '      ';
+	if ($h >= 4)
+		{
+		$hour++;
+		if ($Zhour == '00') 
+			{
+			$startSEC=0;
+			$endSEC=899;
+			}
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$Stime="$hour:00";
+		$Etime="$hour:15";
+		$time = "+$Stime-$Etime+";
+		}
+	if ($h == 1)
+		{
+		$Stime="$hour:15";
+		$Etime="$hour:30";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 2)
+		{
+		$Stime="$hour:30";
+		$Etime="$hour:45";
+		$time = " $Stime-$Etime ";
+		}
+	if ($h == 3)
+		{
+		$Zhour=$hour;
+		$Zhour++;
+		if ($Zhour < 10) {$Zhour = "0$Zhour";}
+		if ($Zhour == 24) {$Zhour = "00";}
+		$Stime="$hour:45";
+		$Etime="$Zhour:00";
+		$time = " $Stime-$Etime ";
+		if ($Zhour == '00') 
+			{$hour = ($Zhour - 1);}
+		}
+
+	if ( ( ($startSEC >= $SQsec) and ($endSEC <= $EQsec) and ($EQsec > $SQsec) ) or 
+		( ($startSEC >= $SQsec) and ($EQsec < $SQsec) ) or 
+		( ($endSEC <= $EQsec) and ($EQsec < $SQsec) ) )
+		{
+		$HMdisplay[$j] =	$time;
+		$HMstart[$j] =		$Stime;
+		$HMend[$j] =		$Etime;
+		$HMSepoch[$j] =		$startSEC;
+		$HMEepoch[$j] =		$endSEC;
+
+		$j++;
+		}
+
+	$h++;
+	$i++;
+	}
+
+$TOTintervals = $j;
+
+
+### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
+$stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$records_to_grab = mysql_num_rows($rslt);
+$i=0;
+while ($i < $records_to_grab)
+	{
+	$row=mysql_fetch_row($rslt);
+	$qs[$i] = $row[0];
+	$dt[$i] = 0;
+	$ut[$i] = ($row[1] - $SQepochDAY);
+	while($ut[$i] >= 86400) 
+		{
+		$ut[$i] = ($ut[$i] - 86400);
+		$dt[$i]++;
+		}
+	if ( ($ut[$i] <= $EQsec) and ($EQsec < $SQsec) )
+		{
+		$dt[$i] = ($dt[$i] - 1);
+		}
+	$ls[$i] = $row[2];
+	$st[$i] = $row[3];
+
+#	echo "$qs[$i] $dt[$i] $ut[$i] $ls[$i] $st[$i]\n";
+
+	$i++;
+	}
+
+### PARSE THROUGH ALL RECORDS AND GENERATE STATS ###
+$MT[0]='0';
+$totCALLS=0;
+$totDROPS=0;
+$totQUEUE=0;
+$totCALLSsec=0;
+$totDROPSsec=0;
+$totQUEUEsec=0;
+$totCALLSmax=0;
+$totDROPSmax=0;
+$totQUEUEmax=0;
+$totCALLSdate=$MT;
+$totDROPSdate=$MT;
+$totQUEUEdate=$MT;
+$qrtCALLS=$MT;
+$qrtDROPS=$MT;
+$qrtQUEUE=$MT;
+$qrtCALLSsec=$MT;
+$qrtDROPSsec=$MT;
+$qrtQUEUEsec=$MT;
+$qrtCALLSavg=$MT;
+$qrtDROPSavg=$MT;
+$qrtQUEUEavg=$MT;
+$qrtCALLSmax=$MT;
+$qrtDROPSmax=$MT;
+$qrtQUEUEmax=$MT;
+$j=0;
+while ($j < $TOTintervals)
+	{
+	$jd__0[$j]=0; $jd_20[$j]=0; $jd_40[$j]=0; $jd_60[$j]=0; $jd_80[$j]=0; $jd100[$j]=0; $jd120[$j]=0; $jd121[$j]=0;
+	$Phd__0[$j]=0; $Phd_20[$j]=0; $Phd_40[$j]=0; $Phd_60[$j]=0; $Phd_80[$j]=0; $Phd100[$j]=0; $Phd120[$j]=0; $Phd121[$j]=0;
+	$qrtCALLS[$j]=0; $qrtCALLSsec[$j]=0; $qrtCALLSmax[$j]=0;
+	$qrtDROPS[$j]=0; $qrtDROPSsec[$j]=0; $qrtDROPSmax[$j]=0;
+	$qrtQUEUE[$j]=0; $qrtQUEUEsec[$j]=0; $qrtQUEUEmax[$j]=0;
+	$i=0;
+	while ($i < $records_to_grab)
+		{
+		if ( ($ut[$i] >= $HMSepoch[$j]) and ($ut[$i] <= $HMEepoch[$j]) )
+			{
+			$totCALLS++;
+			$totCALLSsec = ($totCALLSsec + $ls[$i]);
+			$totCALLSsecDATE[$dtt] = ($totCALLSsecDATE[$dtt] + $ls[$i]);
+			$qrtCALLS[$j]++;
+			$qrtCALLSsec[$j] = ($qrtCALLSsec[$j] + $ls[$i]);
+			$dtt = $dt[$i];
+			$totCALLSdate[$dtt]++;
+			if ($totCALLSmax < $ls[$i]) {$totCALLSmax = $ls[$i];}
+			if ($qrtCALLSmax[$j] < $ls[$i]) {$qrtCALLSmax[$j] = $ls[$i];}
+			if (ereg('DROP',$st[$i])) 
+				{
+				$totDROPS++;
+				$totDROPSsec = ($totDROPSsec + $ls[$i]);
+				$totDROPSsecDATE[$dtt] = ($totDROPSsecDATE[$dtt] + $ls[$i]);
+				$qrtDROPS[$j]++;
+				$qrtDROPSsec[$j] = ($qrtDROPSsec[$j] + $ls[$i]);
+				$totDROPSdate[$dtt]++;
+				if ($totDROPSmax < $ls[$i]) {$totDROPSmax = $ls[$i];}
+				if ($qrtDROPSmax[$j] < $ls[$i]) {$qrtDROPSmax[$j] = $ls[$i];}
+				}
+			if ($qs[$i] > 0) 
+				{
+				$totQUEUE++;
+				$totQUEUEsec = ($totQUEUEsec + $qs[$i]);
+				$totQUEUEsecDATE[$dtt] = ($totQUEUEsecDATE[$dtt] + $qs[$i]);
+				$qrtQUEUE[$j]++;
+				$qrtQUEUEsec[$j] = ($qrtQUEUEsec[$j] + $qs[$i]);
+				$totQUEUEdate[$dtt]++;
+				if ($totQUEUEmax < $qs[$i]) {$totQUEUEmax = $qs[$i];}
+				if ($qrtQUEUEmax[$j] < $qs[$i]) {$qrtQUEUEmax[$j] = $qs[$i];}
+				}
+
+			if ($qs[$i] == 0) {$hd__0[$j]++;}
+			if ( ($qs[$i] > 0) and ($qs[$i] <= 20) ) {$hd_20[$j]++;}
+			if ( ($qs[$i] > 20) and ($qs[$i] <= 40) ) {$hd_40[$j]++;}
+			if ( ($qs[$i] > 40) and ($qs[$i] <= 60) ) {$hd_60[$j]++;}
+			if ( ($qs[$i] > 60) and ($qs[$i] <= 80) ) {$hd_80[$j]++;}
+			if ( ($qs[$i] > 80) and ($qs[$i] <= 100) ) {$hd100[$j]++;}
+			if ( ($qs[$i] > 100) and ($qs[$i] <= 120) ) {$hd120[$j]++;}
+			if ($qs[$i] > 120) {$hd121[$j]++;}
+
+			}
+		
+		$i++;
+		}
+
+	$j++;
+	}
+
+
+
+
+###################################################
+### TOTALS SUMMARY SECTION ###
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                           |        |        |        |        |        |  AVG   |  AVG   |        |  TOTAL   |  AVG   |\n";
+echo "| SHIFT                                     |        |        |  AVG   |        |        | HOLD(s)| HOLD(s)|        | CALLTIME |CALLTIME|\n";
+echo "| DATE-TIME RANGE                           | DROPS  | DROP % | DROP(s)| HOLD   | HOLD % |  HOLD  | TOTAL  | CALLS  | MIN:SEC  |SECONDS |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+$d=0;
+while ($d < $DURATIONday)
+	{
+	if ($totDROPSdate[$d] < 1) {$totDROPSdate[$d]=0;}
+	if ($totQUEUEdate[$d] < 1) {$totQUEUEdate[$d]=0;}
+	if ($totCALLSdate[$d] < 1) {$totCALLSdate[$d]=0;}
+
+	if ($totDROPSdate[$d] > 0)
+		{$totDROPSpctDATE[$d] = ( ($totDROPSdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totDROPSpctDATE[$d] = 0;}
+	$totDROPSpctDATE[$d] = round($totDROPSpctDATE[$d], 2);
+	if ($totQUEUEdate[$d] > 0)
+		{$totQUEUEpctDATE[$d] = ( ($totQUEUEdate[$d] / $totCALLSdate[$d]) * 100);}
+	else {$totQUEUEpctDATE[$d] = 0;}
+	$totQUEUEpctDATE[$d] = round($totQUEUEpctDATE[$d], 2);
+
+	if ($totDROPSsecDATE[$d] > 0)
+		{$totDROPSavgDATE[$d] = ($totDROPSsecDATE[$d] / $totDROPSdate[$d]);}
+	else {$totDROPSavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEavgDATE[$d] = ($totQUEUEsecDATE[$d] / $totQUEUEdate[$d]);}
+	else {$totQUEUEavgDATE[$d] = 0;}
+	if ($totQUEUEsecDATE[$d] > 0)
+		{$totQUEUEtotDATE[$d] = ($totQUEUEsecDATE[$d] / $totCALLSdate[$d]);}
+	else {$totQUEUEtotDATE[$d] = 0;}
+
+	if ($totCALLSsecDATE[$d] > 0)
+		{
+		$totCALLSavgDATE[$d] = ($totCALLSsecDATE[$d] / $totCALLSdate[$d]);
+
+		$totTIME_M = ($totCALLSsecDATE[$d] / 60);
+		$totTIME_M_int = round($totTIME_M, 2);
+		$totTIME_M_int = intval("$totTIME_M");
+		$totTIME_S = ($totTIME_M - $totTIME_M_int);
+		$totTIME_S = ($totTIME_S * 60);
+		$totTIME_S = round($totTIME_S, 0);
+		if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+		$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+		$totTIME_MS =		sprintf("%8s", $totTIME_MS);
+		}
+	else 
+		{
+		$totCALLSavgDATE[$d] = 0;
+		$totTIME_MS='        ';
+		}
+
+	$totCALLSavgDATE[$d] =	sprintf("%6.0f", $totCALLSavgDATE[$d]);
+	$totDROPSavgDATE[$d] =	sprintf("%7.2f", $totDROPSavgDATE[$d]);
+	$totQUEUEavgDATE[$d] =	sprintf("%7.2f", $totQUEUEavgDATE[$d]);
+	$totQUEUEtotDATE[$d] =	sprintf("%7.2f", $totQUEUEtotDATE[$d]);
+	$totDROPSpctDATE[$d] =	sprintf("%6.2f", $totDROPSpctDATE[$d]);
+	$totQUEUEpctDATE[$d] =	sprintf("%6.2f", $totQUEUEpctDATE[$d]);
+	$totDROPSdate[$d] =	sprintf("%6s", $totDROPSdate[$d]);
+	$totQUEUEdate[$d] =	sprintf("%6s", $totQUEUEdate[$d]);
+	$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
+
+	echo "| $daySTART[$d] - $dayEND[$d] | $totDROPSdate[$d] | $totDROPSpctDATE[$d]%|$totDROPSavgDATE[$d] | $totQUEUEdate[$d] | $totQUEUEpctDATE[$d]%|$totQUEUEavgDATE[$d] |$totQUEUEtotDATE[$d] | $totCALLSdate[$d] | $totTIME_MS | $totCALLSavgDATE[$d] |\n";
+	$d++;
+	}
+
+	if ($totDROPS > 0)
+		{$totDROPSpct = ( ($totDROPS / $totCALLS) * 100);}
+	else {$totDROPSpct = 0;}
+	$totDROPSpct = round($totDROPSpct, 2);
+	if ($totQUEUE > 0)
+		{$totQUEUEpct = ( ($totQUEUE / $totCALLS) * 100);}
+	else {$totQUEUEpct = 0;}
+	$totQUEUEpct = round($totQUEUEpct, 2);
+
+	if ($totDROPSsec > 0)
+		{$totDROPSavg = ($totDROPSsec / $totDROPS);}
+	else {$totDROPSavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEavg = ($totQUEUEsec / $totQUEUE);}
+	else {$totQUEUEavg = 0;}
+	if ($totQUEUEsec > 0)
+		{$totQUEUEtot = ($totQUEUEsec / $totCALLS);}
+	else {$totQUEUEtot = 0;}
+
+if ($totCALLSsec > 0)
+	{
+	$totCALLSavg = ($totCALLSsec / $totCALLS);
+
+	$totTIME_M = ($totCALLSsec / 60);
+	$totTIME_M_int = round($totTIME_M, 2);
+	$totTIME_M_int = intval("$totTIME_M");
+	$totTIME_S = ($totTIME_M - $totTIME_M_int);
+	$totTIME_S = ($totTIME_S * 60);
+	$totTIME_S = round($totTIME_S, 0);
+	if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
+	$totTIME_MS = "$totTIME_M_int:$totTIME_S";
+	$totTIME_MS =		sprintf("%9s", $totTIME_MS);
+	}
+else 
+	{
+	$totCALLSavg = 0;
+	$totTIME_MS='         ';
+	}
+
+
+	$FtotCALLSavg =	sprintf("%6.0f", $totCALLSavg);
+	$FtotDROPSavg =	sprintf("%7.2f", $totDROPSavg);
+	$FtotQUEUEavg =	sprintf("%7.2f", $totQUEUEavg);
+	$FtotQUEUEtot =	sprintf("%7.2f", $totQUEUEtot);
+	$FtotDROPSpct =	sprintf("%6.2f", $totDROPSpct);
+	$FtotQUEUEpct =	sprintf("%6.2f", $totQUEUEpct);
+	$FtotDROPS =	sprintf("%6s", $totDROPS);
+	$FtotQUEUE =	sprintf("%6s", $totQUEUE);
+	$FtotCALLS =	sprintf("%6s", $totCALLS);
+
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+echo "|                                    TOTALI | $FtotDROPS | $FtotDROPSpct%|$FtotDROPSavg | $FtotQUEUE | $FtotQUEUEpct%|$FtotQUEUEavg |$FtotQUEUEtot | $FtotCALLS |$totTIME_MS | $FtotCALLSavg |\n";
+echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
+
+
+	## FORMAT OUTPUT ##
+	$i=0;
+	$hi_hour_count=0;
+	$hi_hold_count=0;
+
+	while ($i < $TOTintervals)
+		{
+
+		if ($qrtCALLS[$i] > 0)
+			{$qrtCALLSavg[$i] = ($qrtCALLSsec[$i] / $qrtCALLS[$i]);}
+		else {$qrtCALLSavg[$i] = 0;}
+		if ($qrtDROPS[$i] > 0)
+			{$qrtDROPSavg[$i] = ($qrtDROPSsec[$i] / $qrtDROPS[$i]);}
+		else {$qrtDROPSavg[$i] = 0;}
+		if ($qrtQUEUE[$i] > 0)
+			{$qrtQUEUEavg[$i] = ($qrtQUEUEsec[$i] / $qrtQUEUE[$i]);}
+		else {$qrtQUEUEavg[$i] = 0;}
+
+		if ($qrtCALLS[$i] > $hi_hour_count) {$hi_hour_count = $qrtCALLS[$i];}
+		if ($qrtQUEUEavg[$i] > $hi_hold_count) {$hi_hold_count = $qrtQUEUEavg[$i];}
+
+		$qrtQUEUEavg[$i] = round($qrtQUEUEavg[$i], 0);
+		if (strlen($qrtQUEUEavg[$i])<1) {$qrtQUEUEavg[$i]=0;}
+		$qrtQUEUEmax[$i] = round($qrtQUEUEmax[$i], 0);
+		if (strlen($qrtQUEUEmax[$i])<1) {$qrtQUEUEmax[$i]=0;}
+
+		$i++;
+		}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{$hour_multiplier = (20 / $hi_hour_count);}
+if ($hi_hold_count < 1)
+	{$hold_multiplier = 0;}
+else
+	{$hold_multiplier = (20 / $hi_hold_count);}
+
+
+
+
+###################################################################
+#########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
+
+echo "\n";
+echo "---------- HOLD TIME, CALL AND DROP STATS\n";
+
+echo "";
+
+echo "";
+echo "\n";
+echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
+
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hour_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hour_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hour_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$call_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+$k=1;
+$Mk=0;
+$hold_scale = '0';
+while ($k <= 22) 
+	{
+	if ( ($k < 1) or ($hold_multiplier <= 0) )
+		{$scale_num = 20;}
+	else
+		{
+		$TMPscale_num=(23 / $hold_multiplier);
+		$TMPscale_num = round($TMPscale_num, 0);
+		$scale_num=($k / $hold_multiplier);
+		$scale_num = round($scale_num, 0);
+		}
+	$tmpscl = "$hold_scale$TMPscale_num";
+
+	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
+		{
+		$Mk=0;
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$hold_scale .= "$scale_num";
+		}
+	else
+		{
+		$hold_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "|    TIME     |  AVG HOLD TIME (sec)  | (in seconds)  |  |    CALLS HANDLED      |       |       |\n";
+echo "| 15 MIN INT  |$hold_scale| AVG   | MAX   |  |$call_scale| DROPS | TOTAL |\n";
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+$i=0;
+while ($i < $TOTintervals)
+	{
+	$char_counter=0;
+	### BEGIN HOLD TIME TOTALI GRAPH ###
+		$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count > 0) {$no_lines_yet=0;}
+
+	$Gavg_hold = $qrtQUEUEavg[$i];
+	if ($Gavg_hold < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$TOT_lines++;
+			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+			echo "|$HMdisplay[$i]|";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+			}
+		}
+	else
+		{
+		$TOT_lines++;
+		$no_lines_yet=0;
+		$Xavg_hold = ($Gavg_hold * $hold_multiplier);
+		$Yavg_hold = (19 - $Xavg_hold);
+
+		$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
+		$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
+
+		echo "|$HMdisplay[$i]|";
+		$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
+		if ($char_counter >= 22) {echo "H";   $char_counter++;}
+		else {echo "*H";   $char_counter++;   $char_counter++;}
+		$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
+			while ($char_counter <= 22) {echo " ";   $char_counter++;}
+		echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
+		}
+	### END HOLD TIME TOTALI GRAPH ###
+
+	$char_counter=0;
+ 	### BEGIN CALLS TOTALI GRAPH ###
+	$Ghour_count = $qrtCALLS[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ($i < 0)
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			echo "  |";
+			$k=0;   while ($k <= 22) {echo " ";   $k++;}
+			echo "| $qrtCALLS[$i] |     0 |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (19 - $Xhour_count);
+
+		$Gdrop_count = $qrtDROPS[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			if ($char_counter > 21) {echo "C";   $char_counter++;}
+			else {echo "*C";   $char_counter++;   $char_counter++;}
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "|     0 | $qrtCALLS[$i] |\n";
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
+			$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
+
+			echo "  |";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "C";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 22) {echo " ";   $char_counter++;}
+			echo "| $qrtDROPS[$i] | $qrtCALLS[$i] |\n";
+			}
+		}
+	### END CALLS TOTALI GRAPH ###
+
+	$i++;
+	}
+
+
+if ($totQUEUEsec > 0)
+	{$totQUEUEavgRAW = ($totCALLS / $totQUEUEsec);}
+else
+	{$totQUEUEavgRAW = 0;}
+$totQUEUEavg =	sprintf("%5s", $totQUEUEavg); 
+	while (strlen($totQUEUEavg)>5) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+$totQUEUEmax =	sprintf("%5s", $totQUEUEmax);
+	while (strlen($totQUEUEmax)>5) {$totQUEUEmax = ereg_replace(".$",'',$totQUEUEmax);}
+$totDROPS =	sprintf("%5s", $totDROPS);
+$totCALLS =	sprintf("%5s", $totCALLS);
+
+
+echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
+echo "| TOTAL                               | $totQUEUEavg | $totQUEUEmax |  |                       | $totDROPS | $totCALLS |\n";
+echo "+-------------------------------------+-------+-------+  +-----------------------+-------+-------+\n";
+
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS, 15-MINUTE INCREMENT
+
+
+echo "\n";
+echo "---------- INVITO HOLD TIME RIPARTIZIONE IN SECONDI\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "|    TIME     |       |  % OF CALLS GROUPED BY HOLD TIME (SEC)  | |   AVERAGE TIME BEFORE RISPOSTA (SEC)    |\n";
+echo "| 15 MIN INT  | CALLS |    0   20   40   60   80  100  120 120+ | | AVG  |0   20   40   60   80  100  120 |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+
+$APhd__0=0; $APhd_20=0; $APhd_40=0; $APhd_60=0; $APhd_80=0; $APhd100=0; $APhd120=0; $APhd121=0;
+$h=0;
+while ($h < $TOTintervals)
+	{
+	$Aavg_hold[$h] = $qrtQUEUEavg[$h]; 
+	if ($hd__0[$h] > 0) {$Phd__0[$h] = round( ( ($hd__0[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd__0[$h]=0;}
+	if ($hd_20[$h] > 0) {$Phd_20[$h] = round( ( ($hd_20[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_20[$h]=0;}
+	if ($hd_40[$h] > 0) {$Phd_40[$h] = round( ( ($hd_40[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_40[$h]=0;}
+	if ($hd_60[$h] > 0) {$Phd_60[$h] = round( ( ($hd_60[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_60[$h]=0;}
+	if ($hd_80[$h] > 0) {$Phd_80[$h] = round( ( ($hd_80[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd_80[$h]=0;}
+	if ($hd100[$h] > 0) {$Phd100[$h] = round( ( ($hd100[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd100[$h]=0;}
+	if ($hd120[$h] > 0) {$Phd120[$h] = round( ( ($hd120[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd120[$h]=0;}
+	if ($hd121[$h] > 0) {$Phd121[$h] = round( ( ($hd121[$h] / $qrtCALLS[$h]) * 100) );}
+		else {$Phd121[$h]=0;}
+		while (strlen($qrtQUEUEavg[$h])>4) {$qrtQUEUEavg[$h] = ereg_replace(".$",'',$qrtQUEUEavg[$h]);}
+	$hd__0[$h] =	sprintf("%4s", $hd__0[$h]);
+	$hd_20[$h] =	sprintf("%4s", $hd_20[$h]);
+	$hd_40[$h] =	sprintf("%4s", $hd_40[$h]);
+	$hd_60[$h] =	sprintf("%4s", $hd_60[$h]);
+	$hd_80[$h] =	sprintf("%4s", $hd_80[$h]);
+	$hd100[$h] =	sprintf("%4s", $hd100[$h]);
+	$hd120[$h] =	sprintf("%4s", $hd120[$h]);
+	$hd121[$h] =	sprintf("%4s", $hd121[$h]);
+	$Phd__0[$h] =	sprintf("%4s", $Phd__0[$h]);
+	$Phd_20[$h] =	sprintf("%4s", $Phd_20[$h]);
+	$Phd_40[$h] =	sprintf("%4s", $Phd_40[$h]);
+	$Phd_60[$h] =	sprintf("%4s", $Phd_60[$h]);
+	$Phd_80[$h] =	sprintf("%4s", $Phd_80[$h]);
+	$Phd100[$h] =	sprintf("%4s", $Phd100[$h]);
+	$Phd120[$h] =	sprintf("%4s", $Phd120[$h]);
+	$Phd121[$h] =	sprintf("%4s", $Phd121[$h]);
+
+	$ALLcalls = ($ALLcalls + $qrtCALLS[$h]);
+	$ALLhd__0 = ($ALLhd__0 + $hd__0[$h]);
+	$ALLhd_20 = ($ALLhd_20 + $hd_20[$h]);
+	$ALLhd_40 = ($ALLhd_40 + $hd_40[$h]);
+	$ALLhd_60 = ($ALLhd_60 + $hd_60[$h]);
+	$ALLhd_80 = ($ALLhd_80 + $hd_80[$h]);
+	$ALLhd100 = ($ALLhd100 + $hd100[$h]);
+	$ALLhd120 = ($ALLhd120 + $hd120[$h]);
+	$ALLhd121 = ($ALLhd121 + $hd121[$h]);
+
+	if ( ($Aavg_hold[$h] < 1) or ($Aavg_hold[$h] > 119) )
+		{
+		if ($Aavg_hold[$h] < 1)		{$qrtQUEUEavg_scale[$h] = '                                ';}
+		if ($Aavg_hold[$h] > 119)	{$qrtQUEUEavg_scale[$h] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';}
+		}
+	else
+		{
+		$qrtQUEUEavg_val[$h] = ( (32 / 120) * $Aavg_hold[$h] );
+		$k=0;
+		$blank=0;
+		while ($k < 32)
+			{
+			if ($k <= $qrtQUEUEavg_val[$h]) 
+				{
+				if ($k < 1) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= 'x';
+				}
+			else 
+				{
+				if ( ($k > 0) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+				$qrtQUEUEavg_scale[$h] .= ' ';
+				$blank++;
+				}
+			$k++;
+			if ( ($k > 31) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
+			}
+		}
+
+	$Aavg_hold[$h] = sprintf("%4s", $Aavg_hold[$h]);
+	while (strlen($Aavg_hold[$h])>4) {$Aavg_hold[$h] = ereg_replace("^.",'',$Aavg_hold[$h]);}
+
+	echo "|$HMdisplay[$h]| $qrtCALLS[$h] | $Phd__0[$h] $Phd_20[$h] $Phd_40[$h] $Phd_60[$h] $Phd_80[$h] $Phd100[$h] $Phd120[$h] $Phd121[$h] | | $Aavg_hold[$h] |$qrtQUEUEavg_scale[$h]|\n";
+	
+	$h++;
+	}
+
+if ($ALLhd__0 > 0) {$APhd__0 = round( ( ($ALLhd__0 / $ALLcalls) * 100) );}
+if ($ALLhd_20 > 0) {$APhd_20 = round( ( ($ALLhd_20 / $ALLcalls) * 100) );}
+if ($ALLhd_40 > 0) {$APhd_40 = round( ( ($ALLhd_40 / $ALLcalls) * 100) );}
+if ($ALLhd_60 > 0) {$APhd_60 = round( ( ($ALLhd_60 / $ALLcalls) * 100) );}
+if ($ALLhd_80 > 0) {$APhd_80 = round( ( ($ALLhd_80 / $ALLcalls) * 100) );}
+if ($ALLhd100 > 0) {$APhd100 = round( ( ($ALLhd100 / $ALLcalls) * 100) );}
+if ($ALLhd120 > 0) {$APhd120 = round( ( ($ALLhd120 / $ALLcalls) * 100) );}
+if ($ALLhd121 > 0) {$APhd121 = round( ( ($ALLhd121 / $ALLcalls) * 100) );}
+
+$ALLcalls =	sprintf("%5s", $ALLcalls);
+$APhd__0 =	sprintf("%4s", $APhd__0);
+$APhd_20 =	sprintf("%4s", $APhd_20);
+$APhd_40 =	sprintf("%4s", $APhd_40);
+$APhd_60 =	sprintf("%4s", $APhd_60);
+$APhd_80 =	sprintf("%4s", $APhd_80);
+$APhd100 =	sprintf("%4s", $APhd100);
+$APhd120 =	sprintf("%4s", $APhd120);
+$APhd121 =	sprintf("%4s", $APhd121);
+
+	while (strlen($totQUEUEavg)>4) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
+
+echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
+echo "| TOTAL       | $ALLcalls | $APhd__0 $APhd_20 $APhd_40 $APhd_60 $APhd_80 $APhd100 $APhd120 $APhd121 | | $totQUEUEavg |\n";
+echo "+-------------+-------+-----------------------------------------+ +------+\n";
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSERstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSERstats.php new file mode 100644 index 00000000..717f5748 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSERstats.php @@ -0,0 +1,1504 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1714 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 60905-1326 - Added queue time stats +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71025-0021 - Added status breakdown +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80709-0331 - Added time stats to call statuses +# 80722-2149 - Added Status Category stats +# 81015-0705 - Added IVR calls count +# 81024-0037 - Added multi-select inbound-groups +# 81105-2118 - Added Answered calls 15-minute breakdown +# 81109-2340 - Added custom indicators section +# 90116-1040 - Rewrite of the 15-minute sections to speed it up and allow multi-day calculations +# 90310-2037 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90801-0921 - Added in-group name to pulldown +# 91214-0955 - Added INITIAL QUEUE POSITION BREAKDOWN +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Date:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Gruppi Inbound: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "MODIFICA | "; +echo "REPORT | "; +echo "IVR REPORT \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+{
+echo "\n\n";
+echo "SELEZIONA UN GRUPPO IN-E DATE SOPRA e fare clic su Invia\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "Inbound Call Stats: $group_string          $NOW_TIME\n";
+
+
+
+
+
+
+if ($group_ct > 1)
+	{
+	echo "\n";
+	echo "---------- MULTI-GROUP BREAKDOWN:\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+	echo "| IN-GROUP             | CALLS   | DROPS   | DROP %  | IVR     |\n";
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	$i=0;
+	while($i < $group_ct)
+		{
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='$group[$i]' and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowx=mysql_fetch_row($rslt);
+
+		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$rowy=mysql_fetch_row($rslt);
+
+		$groupDISPLAY =	sprintf("%20s", $group[$i]);
+		$gTOTALcalls =	sprintf("%7s", $row[0]);
+		$gIVRcalls =	sprintf("%7s", $rowx[0]);
+		$gDROPcalls =	sprintf("%7s", $rowy[0]);
+		if ( ($gDROPcalls < 1) or ($gTOTALcalls < 1) )
+			{$gDROPpercent = '0';}
+		else
+			{
+			$gDROPpercent = (($gDROPcalls / $gTOTALcalls) * 100);
+			$gDROPpercent = round($gDROPpercent, 2);
+			}
+		$gDROPpercent =	sprintf("%6s", $gDROPpercent);
+
+		echo "| $groupDISPLAY | $gTOTALcalls | $gDROPcalls | $gDROPpercent% | $gIVRcalls |\n";
+		$i++;
+		}
+
+	echo "+----------------------+---------+---------+---------+---------+\n";
+
+	}
+
+
+echo "\n";
+echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALI\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowy=mysql_fetch_row($rslt);
+
+$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) and comment_b='START';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rowx=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$IVRcalls =	sprintf("%10s", $rowx[0]);
+$TOTALsec =		$row[1];
+if ( ($row[0] < 1) or ($TOTALsec < 1) )
+	{$average_call_seconds = '         0';}
+else
+	{
+	$average_call_seconds = ($TOTALsec / $row[0]);
+	$average_call_seconds = round($average_call_seconds, 0);
+	$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+	}
+$RISPOSTAEDcalls  =	sprintf("%10s", $rowy[0]);
+if ( ($RISPOSTAEDcalls < 1) or ($TOTALcalls < 1) )
+	{$RISPOSTAEDpercent = '0';}
+else
+	{
+	$RISPOSTAEDpercent = (($RISPOSTAEDcalls / $TOTALcalls) * 100);
+	$RISPOSTAEDpercent = round($RISPOSTAEDpercent, 0);
+	}
+if ( ($rowy[0] < 1) or ($RISPOSTAEDcalls < 1) )
+	{$average_answer_seconds = '         0';}
+else
+	{
+	$average_answer_seconds = ($rowy[1] / $rowy[0]);
+	$average_answer_seconds = round($average_answer_seconds, 2);
+	$average_answer_seconds =	sprintf("%10s", $average_answer_seconds);
+	}
+
+
+echo "Totale chiamate a prendere in questo gruppo:        $TOTALcalls\n";
+echo "Average Call Length for all Calls:            $average_call_seconds seconds\n";
+echo "Answered Calls:                               $RISPOSTAEDcalls  $RISPOSTAEDpercent%\n";
+echo "Average queue time for Answered Calls:        $average_answer_seconds seconds\n";
+echo "Calls taken into the IVR for this In-Gruppo:   $IVRcalls\n";
+
+
+echo "\n";
+echo "---------- ABBATTUTE\n";
+
+$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+	{$DROPpercent = '0';}
+else
+	{
+	$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+	$DROPpercent = round($DROPpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{
+	$average_hold_seconds = '         0';
+	}
+else
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+if ( ($RISPOSTAEDcalls < 1) or ($DROPcalls < 1) )
+	{$DROP_RISPOSTAEDpercent = '0';}
+else
+	{
+	$DROP_RISPOSTAEDpercent = (($DROPcalls / $RISPOSTAEDcalls) * 100);
+	$DROP_RISPOSTAEDpercent = round($DROP_RISPOSTAEDpercent, 0);
+	}
+
+echo "Totale Chiamate ABBATTUTE: $DROPcalls  $DROPpercent%               drop/answered: $DROP_RISPOSTAEDpercent%\n";
+echo "Average hold time for DROP Calls:             $average_hold_seconds seconds\n";
+
+
+
+
+if (strlen($group_SQL)>3)
+	{
+	$stmt = "SELECT answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two from vicidial_inbound_groups where group_id IN($group_SQL) order by answer_sec_pct_rt_stat_one desc limit 1;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$Sanswer_sec_pct_rt_stat_one = $row[0];
+	$Sanswer_sec_pct_rt_stat_two = $row[1];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_one;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_one = $row[0];
+
+	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_two;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$answer_sec_pct_rt_stat_two = $row[0];
+
+	if ( ($RISPOSTAEDcalls > 0) and ($answer_sec_pct_rt_stat_one > 0) and ($answer_sec_pct_rt_stat_two > 0) )
+		{
+		$PCTanswer_sec_pct_rt_stat_one = (($answer_sec_pct_rt_stat_one / $RISPOSTAEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_one = round($PCTanswer_sec_pct_rt_stat_one, 0);
+		#$PCTanswer_sec_pct_rt_stat_one = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_one);
+		$PCTanswer_sec_pct_rt_stat_two = (($answer_sec_pct_rt_stat_two / $RISPOSTAEDcalls) * 100);
+		$PCTanswer_sec_pct_rt_stat_two = round($PCTanswer_sec_pct_rt_stat_two, 0);
+		#$PCTanswer_sec_pct_rt_stat_two = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_two);
+		}
+	}
+echo "\n";
+echo "---------- CUSTOM INDICATORS\n";
+echo "GDE (Answered/Llamadas totales tomadas in to this In-Group):  $RISPOSTAEDpercent%\n";
+echo "ACR (Dropped/Answered):                                $DROP_RISPOSTAEDpercent%\n";
+echo "TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):            $PCTanswer_sec_pct_rt_stat_one%\n";
+echo "TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):            $PCTanswer_sec_pct_rt_stat_two%\n";
+
+
+# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+$q=0;
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+$stmt = "SELECT status,status_name,human_answered,category from vicidial_campaign_statuses;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$p=0;
+while ($p < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$status[$q] =			$row[0];
+	$status_name[$q] =		$row[1];
+	$human_answered[$q] =	$row[2];
+	$category[$q] =			$row[3];
+	$statname_list["$status[$q]"] = "$status_name[$q]";
+	$statcat_list["$status[$q]"] = "$category[$q]";
+	$q++;
+	$p++;
+	}
+
+##############################
+#########  CALL QUEUE STATS
+echo "\n";
+echo "---------- QUEUE STATS\n";
+
+$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and (queue_seconds > 0);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$QUEUEcalls =	sprintf("%10s", $row[0]);
+if ( ($QUEUEcalls < 1) or ($TOTALcalls < 1) )
+	{$QUEUEpercent = '0';}
+else
+	{
+	$QUEUEpercent = (($QUEUEcalls / $TOTALcalls) * 100);
+	$QUEUEpercent = round($QUEUEpercent, 0);
+	}
+
+if ( ($row[0] < 1) or ($row[1] < 1) )
+	{$average_queue_seconds = '         0';}
+else
+	{
+	$average_queue_seconds = ($row[1] / $row[0]);
+	$average_queue_seconds = round($average_queue_seconds, 2);
+	$average_queue_seconds = sprintf("%10.2f", $average_queue_seconds);
+	}
+
+if ( ($TOTALcalls < 1) or ($row[1] < 1) )
+	{$average_total_queue_seconds = '         0';}
+else
+	{
+	$average_total_queue_seconds = ($row[1] / $TOTALcalls);
+	$average_total_queue_seconds = round($average_total_queue_seconds, 2);
+	$average_total_queue_seconds = sprintf("%10.2f", $average_total_queue_seconds);
+	}
+
+echo "Total Calls That entered Queue:               $QUEUEcalls  $QUEUEpercent%\n";
+echo "Average QUEUE Length for queue calls:         $average_queue_seconds seconds\n";
+echo "Average QUEUE Length across all calls:        $average_total_queue_seconds seconds\n";
+
+
+
+##############################
+#########  CALL HOLD TIME BREAKDOWN IN SECONDS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- INVITO HOLD TIME RIPARTIZIONE IN SECONDI\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ($row[1] == 0) {$hd_0 = ($hd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$hd_5 = ($hd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$hd10 = ($hd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$hd15 = ($hd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$hd20 = ($hd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$hd25 = ($hd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$hd30 = ($hd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$hd35 = ($hd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$hd40 = ($hd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$hd45 = ($hd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$hd50 = ($hd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$hd55 = ($hd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$hd60 = ($hd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$hd90 = ($hd90 + $row[0]);}
+	if ($row[1] > 90) {$hd99 = ($hd99 + $row[0]);}
+	$i++;
+	}
+
+$hd_0 =	sprintf("%5s", $hd_0);
+$hd_5 =	sprintf("%5s", $hd_5);
+$hd10 =	sprintf("%5s", $hd10);
+$hd15 =	sprintf("%5s", $hd15);
+$hd20 =	sprintf("%5s", $hd20);
+$hd25 =	sprintf("%5s", $hd25);
+$hd30 =	sprintf("%5s", $hd30);
+$hd35 =	sprintf("%5s", $hd35);
+$hd40 =	sprintf("%5s", $hd40);
+$hd45 =	sprintf("%5s", $hd45);
+$hd50 =	sprintf("%5s", $hd50);
+$hd55 =	sprintf("%5s", $hd55);
+$hd60 =	sprintf("%5s", $hd60);
+$hd90 =	sprintf("%5s", $hd90);
+$hd99 =	sprintf("%5s", $hd99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $hd_0 $hd_5 $hd10 $hd15 $hd20 $hd25 $hd30 $hd35 $hd40 $hd45 $hd50 $hd55 $hd60 $hd90 $hd99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  CALL DROP TIME BREAKDOWN IN SECONDS
+
+$BDdropCALLS = 0;
+
+echo "\n";
+echo "---------- CALL DROP TIME BREAKDOWN IN SECONDS\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status IN('DROP','XDROP') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDdropCALLS = ($BDdropCALLS + $row[0]);
+
+	if ($row[1] == 0) {$dd_0 = ($dd_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$dd_5 = ($dd_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$dd10 = ($dd10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$dd15 = ($dd15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$dd20 = ($dd20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$dd25 = ($dd25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$dd30 = ($dd30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$dd35 = ($dd35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$dd40 = ($dd40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$dd45 = ($dd45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$dd50 = ($dd50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$dd55 = ($dd55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$dd60 = ($dd60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$dd90 = ($dd90 + $row[0]);}
+	if ($row[1] > 90) {$dd99 = ($dd99 + $row[0]);}
+	$i++;
+	}
+
+$dd_0 =	sprintf("%5s", $dd_0);
+$dd_5 =	sprintf("%5s", $dd_5);
+$dd10 =	sprintf("%5s", $dd10);
+$dd15 =	sprintf("%5s", $dd15);
+$dd20 =	sprintf("%5s", $dd20);
+$dd25 =	sprintf("%5s", $dd25);
+$dd30 =	sprintf("%5s", $dd30);
+$dd35 =	sprintf("%5s", $dd35);
+$dd40 =	sprintf("%5s", $dd40);
+$dd45 =	sprintf("%5s", $dd45);
+$dd50 =	sprintf("%5s", $dd50);
+$dd55 =	sprintf("%5s", $dd55);
+$dd60 =	sprintf("%5s", $dd60);
+$dd90 =	sprintf("%5s", $dd90);
+$dd99 =	sprintf("%5s", $dd99);
+
+$BDdropCALLS =		sprintf("%10s", $BDdropCALLS);
+
+echo "| $dd_0 $dd_5 $dd10 $dd15 $dd20 $dd25 $dd30 $dd35 $dd40 $dd45 $dd50 $dd55 $dd60 $dd90 $dd99 | $BDdropCALLS |\n";
+echo "+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS
+
+$BDansweredCALLS = 0;
+
+echo "\n";
+echo "           CALL RISPOSTAED TIME AND PERCENT BREAKDOWN IN SECONDS\n";
+echo "          +-------------------------------------------------------------------------------------------+------------+\n";
+echo "          |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE') group by queue_seconds;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$BDansweredCALLS = ($BDansweredCALLS + $row[0]);
+	
+	### Get interval totals
+	if ($row[1] == 0) {$ad_0 = ($ad_0 + $row[0]);}
+	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$ad_5 = ($ad_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$ad10 = ($ad10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$ad15 = ($ad15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$ad20 = ($ad20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$ad25 = ($ad25 + $row[0]);}
+	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$ad30 = ($ad30 + $row[0]);}
+	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$ad35 = ($ad35 + $row[0]);}
+	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$ad40 = ($ad40 + $row[0]);}
+	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$ad45 = ($ad45 + $row[0]);}
+	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$ad50 = ($ad50 + $row[0]);}
+	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$ad55 = ($ad55 + $row[0]);}
+	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$ad60 = ($ad60 + $row[0]);}
+	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$ad90 = ($ad90 + $row[0]);}
+	if ($row[1] > 90) {$ad99 = ($ad99 + $row[0]);}
+	$i++;
+	}
+
+### Calculate cumulative totals
+$Cad_0 =$ad_0;
+$Cad_5 =($Cad_0 + $ad_5);
+$Cad10 =($Cad_5 + $ad10);
+$Cad15 =($Cad10 + $ad15);
+$Cad20 =($Cad15 + $ad20);
+$Cad25 =($Cad20 + $ad25);
+$Cad30 =($Cad25 + $ad30);
+$Cad35 =($Cad30 + $ad35);
+$Cad40 =($Cad35 + $ad40);
+$Cad45 =($Cad40 + $ad45);
+$Cad50 =($Cad45 + $ad50);
+$Cad55 =($Cad50 + $ad55);
+$Cad60 =($Cad55 + $ad60);
+$Cad90 =($Cad60 + $ad90);
+$Cad99 =($Cad90 + $ad99);
+
+### Calculate interval percentages
+$pad_0=0; $pad_5=0; $pad10=0; $pad15=0; $pad20=0; $pad25=0; $pad30=0; $pad35=0; $pad40=0; $pad45=0; $pad50=0; $pad55=0; $pad60=0; $pad90=0; $pad99=0; 
+$pCad_0=0; $pCad_5=0; $pCad10=0; $pCad15=0; $pCad20=0; $pCad25=0; $pCad30=0; $pCad35=0; $pCad40=0; $pCad45=0; $pCad50=0; $pCad55=0; $pCad60=0; $pCad90=0; $pCad99=0; 
+if ( ($BDansweredCALLS > 0) and ($TOTALcalls > 0) )
+	{
+	if ($ad_0 > 0) {$pad_0 = (($ad_0 / $TOTALcalls) * 100);	$pad_0 = round($pad_0, 0);}
+	if ($ad_5 > 0) {$pad_5 = (($ad_5 / $TOTALcalls) * 100);	$pad_5 = round($pad_5, 0);}
+	if ($ad10 > 0) {$pad10 = (($ad10 / $TOTALcalls) * 100);	$pad10 = round($pad10, 0);}
+	if ($ad15 > 0) {$pad15 = (($ad15 / $TOTALcalls) * 100);	$pad15 = round($pad15, 0);}
+	if ($ad20 > 0) {$pad20 = (($ad20 / $TOTALcalls) * 100);	$pad20 = round($pad20, 0);}
+	if ($ad25 > 0) {$pad25 = (($ad25 / $TOTALcalls) * 100);	$pad25 = round($pad25, 0);}
+	if ($ad30 > 0) {$pad30 = (($ad30 / $TOTALcalls) * 100);	$pad30 = round($pad30, 0);}
+	if ($ad35 > 0) {$pad35 = (($ad35 / $TOTALcalls) * 100);	$pad35 = round($pad35, 0);}
+	if ($ad40 > 0) {$pad40 = (($ad40 / $TOTALcalls) * 100);	$pad40 = round($pad40, 0);}
+	if ($ad45 > 0) {$pad45 = (($ad45 / $TOTALcalls) * 100);	$pad45 = round($pad45, 0);}
+	if ($ad50 > 0) {$pad50 = (($ad50 / $TOTALcalls) * 100);	$pad50 = round($pad50, 0);}
+	if ($ad55 > 0) {$pad55 = (($ad55 / $TOTALcalls) * 100);	$pad55 = round($pad55, 0);}
+	if ($ad60 > 0) {$pad60 = (($ad60 / $TOTALcalls) * 100);	$pad60 = round($pad60, 0);}
+	if ($ad90 > 0) {$pad90 = (($ad90 / $TOTALcalls) * 100);	$pad90 = round($pad90, 0);}
+	if ($ad99 > 0) {$pad99 = (($ad99 / $TOTALcalls) * 100);	$pad99 = round($pad99, 0);}
+
+	if ($Cad_0 > 0) {$pCad_0 = (($Cad_0 / $TOTALcalls) * 100);	$pCad_0 = round($pCad_0, 0);}
+	if ($Cad_5 > 0) {$pCad_5 = (($Cad_5 / $TOTALcalls) * 100);	$pCad_5 = round($pCad_5, 0);}
+	if ($Cad10 > 0) {$pCad10 = (($Cad10 / $TOTALcalls) * 100);	$pCad10 = round($pCad10, 0);}
+	if ($Cad15 > 0) {$pCad15 = (($Cad15 / $TOTALcalls) * 100);	$pCad15 = round($pCad15, 0);}
+	if ($Cad20 > 0) {$pCad20 = (($Cad20 / $TOTALcalls) * 100);	$pCad20 = round($pCad20, 0);}
+	if ($Cad25 > 0) {$pCad25 = (($Cad25 / $TOTALcalls) * 100);	$pCad25 = round($pCad25, 0);}
+	if ($Cad30 > 0) {$pCad30 = (($Cad30 / $TOTALcalls) * 100);	$pCad30 = round($pCad30, 0);}
+	if ($Cad35 > 0) {$pCad35 = (($Cad35 / $TOTALcalls) * 100);	$pCad35 = round($pCad35, 0);}
+	if ($Cad40 > 0) {$pCad40 = (($Cad40 / $TOTALcalls) * 100);	$pCad40 = round($pCad40, 0);}
+	if ($Cad45 > 0) {$pCad45 = (($Cad45 / $TOTALcalls) * 100);	$pCad45 = round($pCad45, 0);}
+	if ($Cad50 > 0) {$pCad50 = (($Cad50 / $TOTALcalls) * 100);	$pCad50 = round($pCad50, 0);}
+	if ($Cad55 > 0) {$pCad55 = (($Cad55 / $TOTALcalls) * 100);	$pCad55 = round($pCad55, 0);}
+	if ($Cad60 > 0) {$pCad60 = (($Cad60 / $TOTALcalls) * 100);	$pCad60 = round($pCad60, 0);}
+	if ($Cad90 > 0) {$pCad90 = (($Cad90 / $TOTALcalls) * 100);	$pCad90 = round($pCad90, 0);}
+	if ($Cad99 > 0) {$pCad99 = (($Cad99 / $TOTALcalls) * 100);	$pCad99 = round($pCad99, 0);}
+
+	if ($Cad_0 > 0) {$ApCad_0 = (($Cad_0 / $BDansweredCALLS) * 100);	$ApCad_0 = round($ApCad_0, 0);}
+	if ($Cad_5 > 0) {$ApCad_5 = (($Cad_5 / $BDansweredCALLS) * 100);	$ApCad_5 = round($ApCad_5, 0);}
+	if ($Cad10 > 0) {$ApCad10 = (($Cad10 / $BDansweredCALLS) * 100);	$ApCad10 = round($ApCad10, 0);}
+	if ($Cad15 > 0) {$ApCad15 = (($Cad15 / $BDansweredCALLS) * 100);	$ApCad15 = round($ApCad15, 0);}
+	if ($Cad20 > 0) {$ApCad20 = (($Cad20 / $BDansweredCALLS) * 100);	$ApCad20 = round($ApCad20, 0);}
+	if ($Cad25 > 0) {$ApCad25 = (($Cad25 / $BDansweredCALLS) * 100);	$ApCad25 = round($ApCad25, 0);}
+	if ($Cad30 > 0) {$ApCad30 = (($Cad30 / $BDansweredCALLS) * 100);	$ApCad30 = round($ApCad30, 0);}
+	if ($Cad35 > 0) {$ApCad35 = (($Cad35 / $BDansweredCALLS) * 100);	$ApCad35 = round($ApCad35, 0);}
+	if ($Cad40 > 0) {$ApCad40 = (($Cad40 / $BDansweredCALLS) * 100);	$ApCad40 = round($ApCad40, 0);}
+	if ($Cad45 > 0) {$ApCad45 = (($Cad45 / $BDansweredCALLS) * 100);	$ApCad45 = round($ApCad45, 0);}
+	if ($Cad50 > 0) {$ApCad50 = (($Cad50 / $BDansweredCALLS) * 100);	$ApCad50 = round($ApCad50, 0);}
+	if ($Cad55 > 0) {$ApCad55 = (($Cad55 / $BDansweredCALLS) * 100);	$ApCad55 = round($ApCad55, 0);}
+	if ($Cad60 > 0) {$ApCad60 = (($Cad60 / $BDansweredCALLS) * 100);	$ApCad60 = round($ApCad60, 0);}
+	if ($Cad90 > 0) {$ApCad90 = (($Cad90 / $BDansweredCALLS) * 100);	$ApCad90 = round($ApCad90, 0);}
+	if ($Cad99 > 0) {$ApCad99 = (($Cad99 / $BDansweredCALLS) * 100);	$ApCad99 = round($ApCad99, 0);}
+	}
+
+### Format variables
+$ad_0 = sprintf("%5s", $ad_0);
+$ad_5 = sprintf("%5s", $ad_5);
+$ad10 = sprintf("%5s", $ad10);
+$ad15 = sprintf("%5s", $ad15);
+$ad20 = sprintf("%5s", $ad20);
+$ad25 = sprintf("%5s", $ad25);
+$ad30 = sprintf("%5s", $ad30);
+$ad35 = sprintf("%5s", $ad35);
+$ad40 = sprintf("%5s", $ad40);
+$ad45 = sprintf("%5s", $ad45);
+$ad50 = sprintf("%5s", $ad50);
+$ad55 = sprintf("%5s", $ad55);
+$ad60 = sprintf("%5s", $ad60);
+$ad90 = sprintf("%5s", $ad90);
+$ad99 = sprintf("%5s", $ad99);
+$Cad_0 = sprintf("%5s", $Cad_0);
+$Cad_5 = sprintf("%5s", $Cad_5);
+$Cad10 = sprintf("%5s", $Cad10);
+$Cad15 = sprintf("%5s", $Cad15);
+$Cad20 = sprintf("%5s", $Cad20);
+$Cad25 = sprintf("%5s", $Cad25);
+$Cad30 = sprintf("%5s", $Cad30);
+$Cad35 = sprintf("%5s", $Cad35);
+$Cad40 = sprintf("%5s", $Cad40);
+$Cad45 = sprintf("%5s", $Cad45);
+$Cad50 = sprintf("%5s", $Cad50);
+$Cad55 = sprintf("%5s", $Cad55);
+$Cad60 = sprintf("%5s", $Cad60);
+$Cad90 = sprintf("%5s", $Cad90);
+$Cad99 = sprintf("%5s", $Cad99);
+$pad_0 = sprintf("%4s", $pad_0) . '%';
+$pad_5 = sprintf("%4s", $pad_5) . '%';
+$pad10 = sprintf("%4s", $pad10) . '%';
+$pad15 = sprintf("%4s", $pad15) . '%';
+$pad20 = sprintf("%4s", $pad20) . '%';
+$pad25 = sprintf("%4s", $pad25) . '%';
+$pad30 = sprintf("%4s", $pad30) . '%';
+$pad35 = sprintf("%4s", $pad35) . '%';
+$pad40 = sprintf("%4s", $pad40) . '%';
+$pad45 = sprintf("%4s", $pad45) . '%';
+$pad50 = sprintf("%4s", $pad50) . '%';
+$pad55 = sprintf("%4s", $pad55) . '%';
+$pad60 = sprintf("%4s", $pad60) . '%';
+$pad90 = sprintf("%4s", $pad90) . '%';
+$pad99 = sprintf("%4s", $pad99) . '%';
+$pCad_0 = sprintf("%4s", $pCad_0) . '%';
+$pCad_5 = sprintf("%4s", $pCad_5) . '%';
+$pCad10 = sprintf("%4s", $pCad10) . '%';
+$pCad15 = sprintf("%4s", $pCad15) . '%';
+$pCad20 = sprintf("%4s", $pCad20) . '%';
+$pCad25 = sprintf("%4s", $pCad25) . '%';
+$pCad30 = sprintf("%4s", $pCad30) . '%';
+$pCad35 = sprintf("%4s", $pCad35) . '%';
+$pCad40 = sprintf("%4s", $pCad40) . '%';
+$pCad45 = sprintf("%4s", $pCad45) . '%';
+$pCad50 = sprintf("%4s", $pCad50) . '%';
+$pCad55 = sprintf("%4s", $pCad55) . '%';
+$pCad60 = sprintf("%4s", $pCad60) . '%';
+$pCad90 = sprintf("%4s", $pCad90) . '%';
+$pCad99 = sprintf("%4s", $pCad99) . '%';
+$ApCad_0 = sprintf("%4s", $ApCad_0) . '%';
+$ApCad_5 = sprintf("%4s", $ApCad_5) . '%';
+$ApCad10 = sprintf("%4s", $ApCad10) . '%';
+$ApCad15 = sprintf("%4s", $ApCad15) . '%';
+$ApCad20 = sprintf("%4s", $ApCad20) . '%';
+$ApCad25 = sprintf("%4s", $ApCad25) . '%';
+$ApCad30 = sprintf("%4s", $ApCad30) . '%';
+$ApCad35 = sprintf("%4s", $ApCad35) . '%';
+$ApCad40 = sprintf("%4s", $ApCad40) . '%';
+$ApCad45 = sprintf("%4s", $ApCad45) . '%';
+$ApCad50 = sprintf("%4s", $ApCad50) . '%';
+$ApCad55 = sprintf("%4s", $ApCad55) . '%';
+$ApCad60 = sprintf("%4s", $ApCad60) . '%';
+$ApCad90 = sprintf("%4s", $ApCad90) . '%';
+$ApCad99 = sprintf("%4s", $ApCad99) . '%';
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+### Format and output
+$answeredTOTALs = "$ad_0 $ad_5 $ad10 $ad15 $ad20 $ad25 $ad30 $ad35 $ad40 $ad45 $ad50 $ad55 $ad60 $ad90 $ad99 | $BDansweredCALLS |";
+$answeredCUMULATIVE = "$Cad_0 $Cad_5 $Cad10 $Cad15 $Cad20 $Cad25 $Cad30 $Cad35 $Cad40 $Cad45 $Cad50 $Cad55 $Cad60 $Cad90 $Cad99 | $BDansweredCALLS |";
+$answeredINT_PERCENT = "$pad_0 $pad_5 $pad10 $pad15 $pad20 $pad25 $pad30 $pad35 $pad40 $pad45 $pad50 $pad55 $pad60 $pad90 $pad99 |            |";
+$answeredCUM_PERCENT = "$pCad_0 $pCad_5 $pCad10 $pCad15 $pCad20 $pCad25 $pCad30 $pCad35 $pCad40 $pCad45 $pCad50 $pCad55 $pCad60 $pCad90 $pCad99 |            |";
+$answeredCUM_ANS_PERCENT = "$ApCad_0 $ApCad_5 $ApCad10 $ApCad15 $ApCad20 $ApCad25 $ApCad30 $ApCad35 $ApCad40 $ApCad45 $ApCad50 $ApCad55 $ApCad60 $ApCad90 $ApCad99 |            |";
+echo "INTERVAL  | $answeredTOTALs\n";
+echo "INT %     | $answeredINT_PERCENT\n";
+echo "CUMULATIVE| $answeredCUMULATIVE\n";
+echo "CUM %     | $answeredCUM_PERCENT\n";
+echo "CUM ANS % | $answeredCUM_ANS_PERCENT\n";
+echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+
+
+##############################
+#########  CALL HANGUP REASON STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- INVITO hangup MOTIVO STATS\n";
+echo "+----------------------+------------+\n";
+echo "| HANGUP REASON        | CALLS      |\n";
+echo "+----------------------+------------+\n";
+
+$stmt="select count(*),term_reason from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by term_reason;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$reasons_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $reasons_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+	$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+#	if (ereg("NONE",$reason)) {$reason = 'NO ANSWER           ';}
+
+	echo "| $reason | $REASONcount |\n";
+
+	$i++;
+	}
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "+----------------------+------------+\n";
+echo "| TOTAL:               | $TOTALcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+
+
+##############################
+#########  CALL STATUS STATS
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL STATUS STATS\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| STATUS | DESCRIZIONE          | CATEGORIA             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|\n";
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+
+
+## get counts and time totals for all statuses in this campaign
+$stmt="select count(*),status,sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by status;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statuses_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statuses_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$STATUScount =	$row[0];
+	$RAWstatus =	$row[1];
+	$r=0;  $foundstat=0;
+	while ($r < $statcats_to_print)
+		{
+		if ( ($statcat_list[$RAWstatus] == "$vsc_id[$r]") and ($foundstat < 1) )
+			{
+			$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+			}
+		$r++;
+		}
+
+	$TOTALcalls =	($TOTALcalls + $row[0]);
+	if ( ($STATUScount < 1) or ($TOTALsec < 1) )
+		{$STATUSrate = 0;}
+	else
+		{$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );}
+	$STATUSrate =	sprintf("%.2f", $STATUSrate);
+
+	$STATUShours =		sec_convert($row[2],'H'); 
+	$STATUSavg_sec =	($row[2] / $STATUScount); 
+	$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+	$STATUScount =	sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+	$status =	sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+	$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+	$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+	$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+
+	if ($non_latin < 1)
+		{
+		$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+		while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+		$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+		while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+		}
+	else
+		{
+		$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+		while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+		$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+		while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+		}
+
+
+	echo "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate |\n";
+
+	$i++;
+	}
+
+if ($TOTALcalls < 1)
+	{
+	$TOTALhours =	'0:00:00';
+	$TOTALavg =		'0:00:00';
+	$TOTALrate =	'0.00';
+	}
+else
+	{
+	if ( ($TOTALcalls < 1) or ($TOTALsec < 1) )
+		{$TOTALrate = 0;}
+	else
+		{$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );}
+	$TOTALrate =	sprintf("%.2f", $TOTALrate);
+
+	$TOTALhours =		sec_convert($TOTALsec,'H'); 
+	$TOTALavg_sec =		($TOTALsec / $TOTALcalls);
+	$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+	}
+$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+
+echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
+echo "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |\n";
+echo "+------------------------------------------------------+------------+------------+----------+----------+\n";
+
+
+##############################
+#########  STATUS CATEGORY STATS
+
+echo "\n";
+echo "---------- CUSTOM STATUS CATEGORIA STATS\n";
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| CATEGORIA             | CALLS      | DESCRIZIONE                    |\n";
+echo "+----------------------+------------+--------------------------------+\n";
+
+$TOTCATcalls=0;
+$r=0;
+while ($r < $statcats_to_print)
+	{
+	if ($vsc_id[$r] != 'UNDEFINED')
+		{
+		$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+		$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+		$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+		$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+		echo "| $category | $CATcount | $CATname |\n";
+		}
+
+	$r++;
+	}
+
+$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+echo "+----------------------+------------+--------------------------------+\n";
+echo "| TOTAL                | $TOTCATcalls |\n";
+echo "+----------------------+------------+\n";
+
+
+##############################
+#########  CALL INITIAL QUEUE POSITION BREAKDOWN
+
+$TOTALcalls = 0;
+
+echo "\n";
+echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+echo "|     1     2     3     4     5     6     7     8     9    10    15    20    25   +25 | TOTAL      |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_position;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$positions_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $positions_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls = ($TOTALcalls + $row[0]);
+
+	if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);}
+	if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);}
+	if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);}
+	if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);}
+	if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);}
+	if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);}
+	if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);}
+	if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);}
+	if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);}
+	if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);}
+	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);}
+	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);}
+	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);}
+	if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);}
+	$i++;
+	}
+
+$qp_1 =	sprintf("%5s", $qp_1);
+$qp_2 =	sprintf("%5s", $qp_2);
+$qp_3=	sprintf("%5s", $qp_3);
+$qp_4 =	sprintf("%5s", $qp_4);
+$qp_5 =	sprintf("%5s", $qp_5);
+$qp_6 =	sprintf("%5s", $qp_6);
+$qp_7 =	sprintf("%5s", $qp_7);
+$qp_8 =	sprintf("%5s", $qp_8);
+$qp_9 =	sprintf("%5s", $qp_9);
+$qp10 =	sprintf("%5s", $qp10);
+$qp15 =	sprintf("%5s", $qp15);
+$qp20 =	sprintf("%5s", $qp20);
+$qp25 =	sprintf("%5s", $qp25);
+$qp99 =	sprintf("%5s", $qp99);
+
+$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n";
+echo "+-------------------------------------------------------------------------------------+------------+\n";
+
+
+
+##############################
+#########  USER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTtime=0;
+$TOTavg=0;
+
+echo "\n";
+echo "---------- STATISTICHE OPERATORE\n";
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\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_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[2]);
+	$TOTtime = ($TOTtime + $row[3]);
+
+	$user =			sprintf("%-6s", $row[0]);
+	if ($non_latin < 1)
+		{
+		$full_name =	sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+		}
+	else
+		{
+		$full_name =	sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+		}
+	$USERcalls =	sprintf("%10s", $row[2]);
+	$USERtotTALK =	$row[3];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+	$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+	$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+	$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+	$i++;
+	}
+
+if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;}
+else
+	{
+	$TOTavg = ($TOTtime / $TOTcalls);
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	}
+
+$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+$TOTagents =		sprintf("%10s", $i);
+$TOTcalls =			sprintf("%10s", $TOTcalls);
+$TOTtime =			sprintf("%8s", $TOTtime);
+$TOTavg =			sprintf("%6s", $TOTavg);
+
+echo "+--------------------------+------------+------------+--------+\n";
+echo "| TOTALE Operatori: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+echo "+--------------------------+------------+------------+--------+\n";
+
+
+##############################
+#########  TIME STATS
+
+echo "\n";
+echo "---------- STATISTICHE TEMPO\n";
+
+echo "\n";
+
+
+##############################
+#########  15-minute increment breakdowns of total calls and drops, then answered table
+$BDansweredCALLS = 0;
+$stmt="SELECT status,queue_seconds,UNIX_TIMESTAMP(call_date),call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$calls_to_print = mysql_num_rows($rslt);
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$Cstatus[$j] =	$row[0];
+	$Cqueue[$j] =	$row[1];
+	$Cepoch[$j] =	$row[2];
+	$Cdate[$j] =	$row[3];
+	$Crem[$j] = ( ($Cepoch[$j] + $epoch_offset) % 86400); # find the remainder(Modulus) of seconds since start of the day
+#	echo "|$Cepoch[$j]|$Crem[$j]|$Cdate[$j]|\n";
+	$j++;
+	}
+
+### Loop through all call records and gather stats for total call/drop report and answered report
+$j=0;
+while ($j < $calls_to_print)
+	{
+	$i=0; $sec=0; $sec_end=900;
+	while ($i <= 96)
+		{
+		if ( ($Crem[$j] >= $sec) and ($Crem[$j] < $sec_end) ) 
+			{
+			$Ftotal[$i]++;
+			if (ereg("DROP",$Cstatus[$j])) {$Fdrop[$i]++;}
+			if (!ereg("DROP|XDROP|HXFER|QVMAIL|HOLDTO|LIVE|QUEUE",$Cstatus[$j]))
+				{
+				$BDansweredCALLS++;
+				$Fanswer[$i]++;
+
+				if ($Cqueue[$j] == 0)								{$adB_0[$i]++;}
+				if ( ($Cqueue[$j] > 0) and ($Cqueue[$j] <= 5) )		{$adB_5[$i]++;}
+				if ( ($Cqueue[$j] > 5) and ($Cqueue[$j] <= 10) )	{$adB10[$i]++;}
+				if ( ($Cqueue[$j] > 10) and ($Cqueue[$j] <= 15) )	{$adB15[$i]++;}
+				if ( ($Cqueue[$j] > 15) and ($Cqueue[$j] <= 20) )	{$adB20[$i]++;}
+				if ( ($Cqueue[$j] > 20) and ($Cqueue[$j] <= 25) )	{$adB25[$i]++;}
+				if ( ($Cqueue[$j] > 25) and ($Cqueue[$j] <= 30) )	{$adB30[$i]++;}
+				if ( ($Cqueue[$j] > 30) and ($Cqueue[$j] <= 35) )	{$adB35[$i]++;}
+				if ( ($Cqueue[$j] > 35) and ($Cqueue[$j] <= 40) )	{$adB40[$i]++;}
+				if ( ($Cqueue[$j] > 40) and ($Cqueue[$j] <= 45) )	{$adB45[$i]++;}
+				if ( ($Cqueue[$j] > 45) and ($Cqueue[$j] <= 50) )	{$adB50[$i]++;}
+				if ( ($Cqueue[$j] > 50) and ($Cqueue[$j] <= 55) )	{$adB55[$i]++;}
+				if ( ($Cqueue[$j] > 55) and ($Cqueue[$j] <= 60) )	{$adB60[$i]++;}
+				if ( ($Cqueue[$j] > 60) and ($Cqueue[$j] <= 90) )	{$adB90[$i]++;}
+				if ($Cqueue[$j] > 90)								{$adB99[$i]++;}
+				}
+
+			}
+		$sec = ($sec + 900);
+		$sec_end = ($sec_end + 900);
+		$i++;
+		}
+	$j++;
+	}	##### END going through all records
+
+
+
+
+
+
+
+##### 15-minute total and drops graph
+$hi_hour_count=0;
+$last_full_record=0;
+$i=0;
+$h=0;
+while ($i <= 96)
+	{
+	$hour_count[$i] = $Ftotal[$i];
+	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+	if ($hour_count[$i] > 0) {$last_full_record = $i;}
+	$drop_count[$i] = $Fdrop[$i];
+	$i++;
+	}
+
+if ($hi_hour_count < 1)
+	{$hour_multiplier = 0;}
+else
+	{
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+	}
+
+echo "\n";
+echo "GRAFICO AD INCREMENTO DI 15 MINUTI DEL TOTALE DELLE CHIAMATE TAKEN INTO THIS IN-GROUP\n";
+
+$k=1;
+$Mk=0;
+$call_scale = '0';
+while ($k <= 102) 
+	{
+	if ($Mk >= 5) 
+		{
+		$Mk=0;
+		if ( ($k < 1) or ($hour_multiplier <= 0) )
+			{$scale_num = 100;}
+		else
+			{
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			}
+		$LENscale_num = (strlen($scale_num));
+		$k = ($k + $LENscale_num);
+		$call_scale .= "$scale_num";
+		}
+	else
+		{
+		$call_scale .= " ";
+		$k++;   $Mk++;
+		}
+	}
+
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		}
+	if ($h == 1) {$time = "   15 ";}
+	if ($h == 2) {$time = "   30 ";}
+	if ($h == 3) {$time = "   45 ";}
+	$Ghour_count = $hour_count[$i];
+	if ($Ghour_count < 1) 
+		{
+		if ( ($no_lines_yet) or ($i > $last_full_record) )
+			{
+			$do_nothing=1;
+			}
+		else
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			echo "|$time|";
+			$k=0;   while ($k <= 102) {echo " ";   $k++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		}
+	else
+		{
+		$no_lines_yet=0;
+		$Xhour_count = ($Ghour_count * $hour_multiplier);
+		$Yhour_count = (99 - $Xhour_count);
+
+		$Gdrop_count = $drop_count[$i];
+		if ($Gdrop_count < 1) 
+			{
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| 0     | $hour_count[$i] |\n";
+
+			}
+		else
+			{
+			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+			$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+			echo "D";   $char_counter++;
+			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 102) {echo " ";   $char_counter++;}
+			echo "| $drop_count[$i] | $hour_count[$i] |\n";
+			}
+		}
+	
+	
+	$i++;
+	$h++;
+	}
+
+echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n\n";
+
+
+
+
+
+
+##### Answered wait time breakdown
+echo "\n";
+echo "---------- CALL RISPOSTAED TIME BREAKDOWN IN SECONDS\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "| HOUR |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+$ZZ = '00';
+$i=0;
+$h=4;
+$hour= -1;
+$no_lines_yet=1;
+while ($i <= 96)
+	{
+	$char_counter=0;
+	$time = '      ';
+	if ($h >= 4) 
+		{
+		$hour++;
+		$h=0;
+		if ($hour < 10) {$hour = "0$hour";}
+		$time = "+$hour$ZZ+";
+		$SQLtime = "$hour:$ZZ:00";
+		$SQLtimeEND = "$hour:15:00";
+		}
+	if ($h == 1) {$time = "   15 ";   $SQLtime = "$hour:15:00";   $SQLtimeEND = "$hour:30:00";}
+	if ($h == 2) {$time = "   30 ";   $SQLtime = "$hour:30:00";   $SQLtimeEND = "$hour:45:00";}
+	if ($h == 3) 
+		{
+		$time = "   45 ";
+		$SQLtime = "$hour:45:00";
+		$hourEND = ($hour + 1);
+		if ($hourEND < 10) {$hourEND = "0$hourEND";}
+		if ($hourEND > 23) {$SQLtimeEND = "23:59:59";}
+		else {$SQLtimeEND = "$hourEND:00:00";}
+		}
+
+
+	if (strlen($adB_0[$i]) < 1)  {$adB_0[$i]='-';}
+	if (strlen($adB_5[$i]) < 1)  {$adB_5[$i]='-';}
+	if (strlen($adB10[$i]) < 1)  {$adB10[$i]='-';}
+	if (strlen($adB15[$i]) < 1)  {$adB15[$i]='-';}
+	if (strlen($adB20[$i]) < 1)  {$adB20[$i]='-';}
+	if (strlen($adB25[$i]) < 1)  {$adB25[$i]='-';}
+	if (strlen($adB30[$i]) < 1)  {$adB30[$i]='-';}
+	if (strlen($adB35[$i]) < 1)  {$adB35[$i]='-';}
+	if (strlen($adB40[$i]) < 1)  {$adB40[$i]='-';}
+	if (strlen($adB45[$i]) < 1)  {$adB45[$i]='-';}
+	if (strlen($adB50[$i]) < 1)  {$adB50[$i]='-';}
+	if (strlen($adB55[$i]) < 1)  {$adB55[$i]='-';}
+	if (strlen($adB60[$i]) < 1)  {$adB60[$i]='-';}
+	if (strlen($adB90[$i]) < 1)  {$adB90[$i]='-';}
+	if (strlen($adB99[$i]) < 1)  {$adB99[$i]='-';}
+	if (strlen($Fanswer[$i]) < 1)  {$Fanswer[$i]='0';}
+
+	$adB_0[$i] = sprintf("%5s", $adB_0[$i]);
+	$adB_5[$i] = sprintf("%5s", $adB_5[$i]);
+	$adB10[$i] = sprintf("%5s", $adB10[$i]);
+	$adB15[$i] = sprintf("%5s", $adB15[$i]);
+	$adB20[$i] = sprintf("%5s", $adB20[$i]);
+	$adB25[$i] = sprintf("%5s", $adB25[$i]);
+	$adB30[$i] = sprintf("%5s", $adB30[$i]);
+	$adB35[$i] = sprintf("%5s", $adB35[$i]);
+	$adB40[$i] = sprintf("%5s", $adB40[$i]);
+	$adB45[$i] = sprintf("%5s", $adB45[$i]);
+	$adB50[$i] = sprintf("%5s", $adB50[$i]);
+	$adB55[$i] = sprintf("%5s", $adB55[$i]);
+	$adB60[$i] = sprintf("%5s", $adB60[$i]);
+	$adB90[$i] = sprintf("%5s", $adB90[$i]);
+	$adB99[$i] = sprintf("%5s", $adB99[$i]);
+	$Fanswer[$i] = sprintf("%10s", $Fanswer[$i]);
+
+	echo "|$time| $adB_0[$i] $adB_5[$i] $adB10[$i] $adB15[$i] $adB20[$i] $adB25[$i] $adB30[$i] $adB35[$i] $adB40[$i] $adB45[$i] $adB50[$i] $adB55[$i] $adB60[$i] $adB90[$i] $adB99[$i] | $Fanswer[$i] |\n";
+
+	$i++;
+	$h++;
+	}
+
+$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
+
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+echo "|TOTALI|                                                                                           | $BDansweredCALLS |\n";
+echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+}
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSERsummary_hourly.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
  \n"; + echo "\n"; + echo "Inbound Groups:
\n"; + echo "\n"; + echo "
\n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "   Exclude Outbound Drop Groups:
"; + echo "   \n"; + echo "
                      "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	while ($h < 24)
+		{
+		$H_test = $h . "00";
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
+
+
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTanswer_count=0;
+		$TOTtalk_sec=0;
+		$TOTtalk_avg=0;
+		$TOTqueue_seconds=0;
+		$TOTqueue_avg=0;
+		$TOTmax_queue_seconds=0;
+		$TOTdrop_count=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$row=mysql_fetch_row($rslt);
+			$group_name[$i] =			$row[0];
+			$agent_alert_delay[$i] =	round($row[1] / 1000);
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$drop_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hdrop_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTanswer_count =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$call_date = explode(" ", $row[3]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $row[4];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
+					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
+					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					if ($max_queue_seconds[$i] < $row[2])
+						{$max_queue_seconds[$i] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$drop_count[$i]++;}
+					else
+						{$answer_count[$i]++;}
+
+					$Hcalls_count[$Chour]++;
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+					if ($Hmax_queue_seconds[$Chour] < $row[2])
+						{$Hmax_queue_seconds[$Chour] = $row[2];}
+					if (eregi("DROP",$row[0]))
+						{$Hdrop_count[$Chour]++;}
+					else
+						{$Hanswer_count[$Chour]++;}
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
+			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
+			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$h=0;
+			while ($h < 24)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%2s", $h);
+
+					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
+			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_IVRfilter.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_IVRfilter.php new file mode 100644 index 00000000..62d2dc2e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_IVRfilter.php @@ -0,0 +1,249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 81030-0432 - First build +# 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; + +?> + + + + + +\n"; +echo "VICIDIAL: VDL IVR Filter Stats\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Date:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ADMIN | "; +echo "REPORT\n"; +echo "\n"; + +echo "
\n"; + +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+$shift = 'ALL';
+
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+
+
+echo "VDL: IVR Filter Stats:           $NOW_TIME\n";
+
+
+echo "\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "| CATEGORIA             | CALLS   | UNIQUE  |      %  |\n";
+echo "+----------------------+---------+---------+---------+\n";
+
+
+$stmtA="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='CLEAN';";
+$rsltA=mysql_query($stmtA, $link);
+if ($DB) {echo "$stmtA\n";}
+$rowA=mysql_fetch_row($rsltA);
+
+$stmtB="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='NOT_FOUND';";
+$rsltB=mysql_query($stmtB, $link);
+if ($DB) {echo "$stmtB\n";}
+$rowB=mysql_fetch_row($rsltB);
+
+$stmtC="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='DNC';";
+$rsltC=mysql_query($stmtC, $link);
+if ($DB) {echo "$stmtC\n";}
+$rowC=mysql_fetch_row($rsltC);
+
+$stmtD="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='SALE';";
+$rsltD=mysql_query($stmtD, $link);
+if ($DB) {echo "$stmtD\n";}
+$rowD=mysql_fetch_row($rsltD);
+
+$stmtE="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='ARCHIVE';";
+$rsltE=mysql_query($stmtE, $link);
+if ($DB) {echo "$stmtE\n";}
+$rowE=mysql_fetch_row($rsltE);
+
+
+$total = ($rowA[0] + $rowB[0] + $rowC[0] + $rowD[0] + $rowE[0]);
+$Utotal = ($rowA[1] + $rowB[1] + $rowC[1] + $rowD[1] + $rowE[1]);
+
+$agent =	sprintf("%7s", $rowA[0]);
+$Uagent =	sprintf("%7s", $rowA[1]);
+if ( ($Utotal < 1) or ($rowA[1] < 1) )
+	{$UagentPERCENT = '0';}
+else
+	{$UagentPERCENT = (($rowA[1] / $Utotal) * 100);   $UagentPERCENT = round($UagentPERCENT, 2);}
+$UagentPERCENT =	sprintf("%6s", $UagentPERCENT);
+
+$ntfnd =	sprintf("%7s", $rowB[0]);
+$Untfnd =	sprintf("%7s", $rowB[1]);
+if ( ($Utotal < 1) or ($rowB[1] < 1) )
+	{$UntfndPERCENT = '0';}
+else
+	{$UntfndPERCENT = (($rowB[1] / $Utotal) * 100);   $UntfndPERCENT = round($UntfndPERCENT, 2);}
+$UntfndPERCENT =	sprintf("%6s", $UntfndPERCENT);
+
+$prdnc =	sprintf("%7s", $rowC[0]);
+$Uprdnc =	sprintf("%7s", $rowC[1]);
+if ( ($Utotal < 1) or ($rowC[1] < 1) )
+	{$UprdncPERCENT = '0';}
+else
+	{$UprdncPERCENT = (($rowC[1] / $Utotal) * 100);   $UprdncPERCENT = round($UprdncPERCENT, 2);}
+$UprdncPERCENT =	sprintf("%6s", $UprdncPERCENT);
+
+$psale =	sprintf("%7s", $rowD[0]);
+$Upsale =	sprintf("%7s", $rowD[1]);
+if ( ($Utotal < 1) or ($rowD[1] < 1) )
+	{$UpsalePERCENT = '0';}
+else
+	{$UpsalePERCENT = (($rowD[1] / $Utotal) * 100);   $UpsalePERCENT = round($UpsalePERCENT, 2);}
+$UpsalePERCENT =	sprintf("%6s", $UpsalePERCENT);
+
+$archv =	sprintf("%7s", $rowE[0]);
+$Uarchv =	sprintf("%7s", $rowE[1]);
+if ( ($Utotal < 1) or ($rowE[1] < 1) )
+	{$UarchvPERCENT = '0';}
+else
+	{$UarchvPERCENT = (($rowE[1] / $Utotal) * 100);   $UarchvPERCENT = round($UarchvPERCENT, 2);}
+$UarchvPERCENT =	sprintf("%6s", $UarchvPERCENT);
+
+$total =	sprintf("%7s", $total);
+$Utotal =	sprintf("%7s", $Utotal);
+
+
+echo "| CALL SENT TO AGENT   | $agent | $Uagent | $UagentPERCENT% |\n";
+echo "| CALLERID NOT FOUND   | $ntfnd | $Untfnd | $UntfndPERCENT% |\n";
+echo "| PREVIOUS DNC         | $prdnc | $Uprdnc | $UprdncPERCENT% |\n";
+echo "| PREVIOUS SALE        | $psale | $Upsale | $UpsalePERCENT% |\n";
+echo "| ARCHIVE ONLY         | $archv | $Uarchv | $UarchvPERCENT% |\n";
+echo "+----------------------+---------+---------+---------+\n";
+echo "|               TOTALI:| $total | $Utotal |\n";
+echo "+----------------------+---------+---------+\n";
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+echo "\nRun Time: $RUNtime seconds\n";
+
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_IVRstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_IVRstats.php new file mode 100644 index 00000000..87899322 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_IVRstats.php @@ -0,0 +1,683 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81026-2026 - First build +# 81107-0341 - Added time range and option and 15-minute increment graph +# 81107-1148 - Added average times and totals +# 81108-0922 - Added no-callerID and unique caller counts +# 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "IVR Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + +echo "
\n"; +echo "\n"; +echo "
\n"; +echo "\n"; +echo "Date:
\n"; +echo "\n"; +echo " to \n"; +echo "
\n"; +echo "Gruppi Inbound: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "MODIFICA | "; +echo "REPORT | "; +echo "INFORME CLOSER \n"; +echo "\n"; + +echo "
\n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if ($groups_to_print < 1)
+	{
+	echo "\n\n";
+	echo "SELEZIONA UN GRUPPO IN-E DATE SOPRA e fare clic su Invia\n";
+	}
+
+else
+	{
+	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
+
+	$TOTALcalls=0;
+	$NOCALLERIDcalls=0;
+	$UNIQUEcallers=0;
+	$totFLOWivr_time=0;
+	$totFLOWtotal_time=0;
+
+	##### Grab all records for the IVR for the specified time period
+	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$logs_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $logs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$uniqueid[$p] =		$row[0];
+		$extension[$p] =	$row[1];
+		$start_time[$p] =	$row[2];
+		$comment_a[$p] =	$row[3];
+		$comment_b[$p] =	$row[4];
+		$comment_d[$p] =	$row[5];
+		$epoch[$p] =		$row[6];
+		$phone_ext[$p] =	$row[7];
+		$p++;
+		}
+
+	### create the call flow of all calls by uniqueid
+	$last_uniqueid='';
+	$first_epoch='';
+	$last_epoch='';
+	$p=0;
+	$r=-1;
+	while ($p < $logs_to_print)
+		{
+		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
+		if ($last_uniqueid === "$uniqueid[$p]")
+			{
+			$unique_calls[$r] .= "----------$comment_b[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			$last_epoch[$r]=$epoch[$p];
+			}
+		else
+			{
+			$r++;
+			$caller_id[$r]=$phone_ext[$p];
+			if (strlen($phone_ext[$p])<2)
+				{$NOCALLERIDcalls++;}
+			else
+				{
+				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
+					{
+					$unique_callerIDs .= "_$phone_ext[$p]_";
+					$UNIQUEcallers++;
+					}
+				}
+			$first_epoch[$r]=$epoch[$p];
+			$last_epoch[$r]=$epoch[$p];
+			$unique_calls[$r] = $comment_b[$p];
+			$FLOWuniqueid[$r] = "$uniqueid[$p]";
+			$last_uniqueid = "$uniqueid[$p]";
+			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
+			}
+		$p++;
+		}
+
+	### sort call flows for counting
+	$RAWunique_calls = $unique_calls;
+	if ($logs_to_print > 0)
+		{sort($unique_calls);}
+
+
+	### count each unique call flow
+	$last_Suniqueid='';
+	$p=-1;
+	$s=0;
+	while ($s <= $r)
+		{
+		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
+		if ($last_Suniqueid === "$unique_calls[$s]")
+			{
+			$STunique_calls_count[$p]++;
+			}
+		else
+			{
+			$p++;
+			$STunique_calls[$p] = $unique_calls[$s];
+			$last_Suniqueid = "$unique_calls[$s]";
+			$STunique_calls_count[$p]=1;
+			}
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$TOTALcalls=0;
+	$s=0;
+	while ($s <= $p)
+		{
+		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
+		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
+		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
+		$s++;
+		}
+
+	#### PRINT TOTALE CHIAMATE INTO THIS IVR
+	echo "\n";
+	echo "Calls taken into this IVR:   $TOTALcalls\n";
+	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
+	echo "Unique Callers:              $UNIQUEcallers\n";
+	echo "\n";
+
+	### sort call flows for counting
+	if ($p > 0)
+		{rsort($FLOWunique_calls);}
+
+
+	### put call flows and counts together for sorting again
+	$RUC_ct = count($RAWunique_calls);
+	$s=0;
+	while ($s <= $p)
+		{
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$t=0;
+		while ($t < $RUC_ct)
+			{
+			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
+				{
+				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
+				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
+				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
+				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
+				}
+			$t++;
+			}
+
+		$s++;
+		}
+
+
+	### put call flows and counts together for sorting again
+	$s=0;
+
+	echo "+--------+--------+--------+--------+------+------+\n";
+	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
+	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
+	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+
+	while ($s <= $p)
+		{
+		$vcl_statuses = $MT;
+		$FLOWdrop[$s]=0;
+		$FLOWtotal[$s]=0;
+		$FLOWdropPCT[$s]=0;
+		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
+		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
+
+		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
+
+
+		##### Grab all records for the IVR for the specified time period
+		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$vcl_statuses_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $vcl_statuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$vcl_statuses[$w] =		$row[0];
+			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
+				{$FLOWdrop[$s]++;}
+			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
+			$FLOWtotal[$s]++;
+			$w++;
+			}
+		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
+			{
+			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
+			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
+			}
+		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
+		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
+		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
+		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
+		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
+		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
+
+		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
+		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
+		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
+		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
+		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
+		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
+
+		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
+		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
+		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
+		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
+
+		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
+
+		$s++;
+		}
+	$TOTALcalls = sprintf("%6s", $TOTALcalls);
+	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
+	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
+	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
+	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
+	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
+	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
+		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
+	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
+	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
+	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
+		{$totFLOWdropPCT = '0';}
+	else
+		{
+		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
+		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
+		}
+	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
+
+	echo "+--------+--------+--------+--------+------+------+------------\n";
+	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
+	echo "+--------+--------+--------+--------+------+------+\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+	##############################
+	#########  TIME STATS
+
+	echo "\n";
+	echo "---------- STATISTICHE TEMPO\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+
+		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$i++;
+		$h++;
+		}
+
+	if ($hi_hour_count < 1)
+		{$hour_multiplier = 0;}
+	else
+		{
+		$hour_multiplier = (100 / $hi_hour_count);
+		#$hour_multiplier = round($hour_multiplier, 0);
+		}
+
+	echo "\n";
+	echo "GRAFICO AD INCREMENTO DI 15 MINUTI DEL TOTALE DELLE CHIAMATE TAKEN INTO THIS IVR\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			if ( ($k < 1) or ($hour_multiplier <= 0) )
+				{$scale_num = 100;}
+			else
+				{
+				$scale_num=($k / $hour_multiplier);
+				$scale_num = round($scale_num, 0);
+				}
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
+	echo "| HOUR |$call_scale| TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+			echo "|$time|";
+			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+			echo "*X";   $char_counter++;
+			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+				while ($char_counter <= 101) {echo " ";   $char_counter++;}
+			echo "| $hour_count[$i] |\n";
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
+
+
+
+
+
+
+
+
+
+
+	$ENDtime = date("U");
+	$RUNtime = ($ENDtime - $STARTtime);
+	echo "\nRun Time: $RUNtime seconds\n";
+	}
+
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_OUTBOUNDsummary_interval.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +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; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
"; + + if ($DB > 0) + { + echo "
\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
\n"; + echo "$shift|$query_date|$end_date\n"; + echo "
\n"; + } + + echo "
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
\n"; + echo "\n"; + echo " to \n"; + echo "
Campaigns:
"; + echo "\n"; + echo "
"; + echo "Include Drop  
Rollover:
"; + echo "
\n"; + echo "Time Interval:
"; + echo "\n"; + echo "
\n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

\n"; + echo "
        "; + echo "\n"; + + echo "
\n"; + + echo "Call Time:
\n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "
\n\n"; + + echo "
\n\n";
+	}
+
+if ($group_ct < 1)
+	{
+	echo "\n\n";
+	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
+	}
+
+else
+	{
+	if ($shift == 'ALL') 
+		{
+		$Gct_default_start = "0";
+		$Gct_default_stop = "2400";
+		}
+	else 
+		{
+		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$calltimes_to_print = mysql_num_rows($rslt);
+		if ($calltimes_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$Gct_default_start =	$row[3];
+			$Gct_default_stop =		$row[4];
+			$Gct_sunday_start =		$row[5];
+			$Gct_sunday_stop =		$row[6];
+			$Gct_monday_start =		$row[7];
+			$Gct_monday_stop =		$row[8];
+			$Gct_tuesday_start =	$row[9];
+			$Gct_tuesday_stop =		$row[10];
+			$Gct_wednesday_start =	$row[11];
+			$Gct_wednesday_stop =	$row[12];
+			$Gct_thursday_start =	$row[13];
+			$Gct_thursday_stop =	$row[14];
+			$Gct_friday_start =		$row[15];
+			$Gct_friday_stop =		$row[16];
+			$Gct_saturday_start =	$row[17];
+			$Gct_saturday_stop =	$row[18];
+			}
+		else
+			{
+			$Gct_default_start = "0";
+			$Gct_default_stop = "2400";
+			}
+		}
+	$h=0;
+	$hh=0;
+	while ($h < $interval_count)
+		{
+		if ($interval_count>=96)
+			{
+			if ($hf < 45)
+				{
+				$hf = ($hf + 15);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count==48)
+			{
+			if ($hf < 30)
+				{
+				$hf = ($hf + 30);
+				}
+			else
+				{
+				$hf = "00";
+				if ($h > 0)
+					{$hh++;}
+				}
+			$H_test = "$hh$hf";
+			}
+		if ($interval_count<=24)
+			{
+			$H_test = $h . "00";
+			}
+		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
+			{
+			$Hcalltime[$h]++;
+			$Hcalltime_HHMM[$h] = "$H_test";
+			}
+		if ($DB)
+			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
+		$h++;
+		}
+
+	$query_date_BEGIN = "$query_date 00:00:00";   
+	$query_date_END = "$end_date 23:59:59";
+
+
+	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
+
+
+
+
+	##### Loop through each campaign and gether stats
+	if ($group_ct > 0)
+		{
+		$MAIN .= "\n";
+		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+		$i=0;
+		$TOTcalls_count=0;
+		$TOTsystem_count=0;
+		$TOTagent_count=0;
+		$TOTptp_count=0;
+		$TOTrtp_count=0;
+		$TOTna_count=0;
+		$TOTdrop_count=0;
+		$TOTagent_login_sec=0;
+		$TOTagent_pause_sec=0;
+		$SUBoutput='';
+
+		while($i < $group_ct)
+			{
+			$u=0;
+
+			##### Gather Agent time records
+			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$AGENTtime_to_print = mysql_num_rows($rslt);
+			$s=0;
+			while ($s < $AGENTtime_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
+				$ATcall_date[$s] =		$row[0];
+				$ATepoch[$s] =			$row[1];
+				$ATcampaign_id[$s] =	$row[2];
+				$ATpause_sec[$s] =		$row[3];
+				$ATagent_sec[$s] =		$inTOTALsec;
+				$s++;
+				}
+
+			##### Gather outbound calls
+			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$calls_to_parse = mysql_num_rows($rslt);
+			$p=0;
+			while ($p < $calls_to_parse)
+				{
+				$row=mysql_fetch_row($rslt);
+				$CPstatus[$u] =			$row[0];
+				$CPlength_in_sec[$u] =	$row[1];
+				$CPcall_date[$u] =		$row[2];
+				$CPepoch[$u] =			$row[3];
+				$CPphone_number[$u] =	$row[4];
+				$CPcampaign_id[$u] =	$row[5];
+				$CPvicidial_id[$u] =	$row[6];
+				$CPlead_id[$u] =		$row[7];
+				$TESTlead_id[$u] =		$row[7];
+				$TESTuniqueid[$u] =		$row[6];
+				$CPin_out[$u] =			'OUT';
+				$p++;
+				$u++;
+				}
+
+			$group_drop[$i]='';
+			if (eregi("YES",$include_rollover))
+				{
+				##### Gather inbound calls from drop inbound group if selected
+				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$in_groups_to_print = mysql_num_rows($rslt);
+				if ($in_groups_to_print > 0)
+					{
+					$row=mysql_fetch_row($rslt);
+					$group_drop[$i] = $row[0];
+					$rollover_groups_count++;
+					}
+
+				$length_in_secZ=0;
+				$queue_secondsZ=0;
+				$agent_alert_delayZ=0;
+				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
+				$rslt=mysql_query($stmt, $link);
+				if ($DB) {echo "$stmt\n";}
+				$INallcalls_to_printZ = mysql_num_rows($rslt);
+				$y=0;
+				while ($y < $INallcalls_to_printZ)
+					{
+					$row=mysql_fetch_row($rslt);
+
+					$k=0;
+					$front_call_found=0;
+					while($k < $p)
+						{
+						if ($TESTuniqueid[$k] == $row[10])
+							{$front_call_found++;}
+						$k++;
+						}
+					if ($front_call_found > 0)
+						{
+						$length_in_secZ = $row[1];
+						$queue_secondsZ = $row[2];
+						$agent_alert_delayZ = $row[3];
+
+						$TOTALdelay =		round($agent_alert_delayZ / 1000);
+						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+						if ($thiscallsec < 0)
+							{$thiscallsec = 0;}
+						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+						$CPstatus[$u] =			$row[0];
+						$CPlength_in_sec[$u] =	$inTOTALsec;
+						$CPcall_date[$u] =		$row[4];
+						$CPepoch[$u] =			$row[5];
+						$CPphone_number[$u] =	$row[6];
+						$CPcampaign_id[$u] =	$row[7];
+						$CPvicidial_id[$u] =	$row[8];
+						$CPlead_id[$u] =		$row[9];
+						$CPin_out[$u] =			'IN';
+						$u++;
+						}
+					$y++;
+					}
+				}
+
+
+			$out_of_call_time=0;
+			$length_in_sec[$i]=0;
+			$queue_seconds[$i]=0;
+			$agent_sec[$i]=0;
+			$pause_sec[$i]=0;
+			$talk_sec[$i]=0;
+			$calls_count[$i]=0;
+			$calls_count_IN[$i]=0;
+			$drop_count[$i]=0;
+			$drop_count_OUT[$i]=0;
+			$system_count[$i]=0;
+			$agent_count[$i]=0;
+			$ptp_count[$i]=0;
+			$rtp_count[$i]=0;
+			$na_count[$i]=0;
+			$answer_count[$i]=0;
+			$max_queue_seconds[$i]=0;
+			$Hlength_in_sec=$MT;
+			$Hqueue_seconds=$MT;
+			$Hagent_sec=$MT;
+			$Hpause_sec=$MT;
+			$Htalk_sec=$MT;
+			$Hcalls_count=$MT;
+			$Hcalls_count_IN=$MT;
+			$Hdrop_count=$MT;
+			$Hdrop_count_OUT=$MT;
+			$Hsystem_count=$MT;
+			$Hagent_count=$MT;
+			$Hptp_count=$MT;
+			$Hrtp_count=$MT;
+			$Hna_count=$MT;
+			$Hanswer_count=$MT;
+			$Hmax_queue_seconds=$MT;
+			$hTOTALcalls =	0;
+			$hANSWERcalls =	0;
+			$hSUMagent =	0;
+			$hSUMpause =	0;
+			$hSUMtalk =		0;
+			$hAVGtalk =		0;
+			$hSUMqueue =	0;
+			$hAVGqueue =	0;
+			$hMAXqueue =	0;
+			$hDROPcalls =	0;
+			$hPRINT =		0;
+			$hTOTcalls_count =			0;
+			$hTOTsystem_count =			0;
+			$hTOTagent_count =			0;
+			$hTOTptp_count =			0;
+			$hTOTrtp_count =			0;
+			$hTOTna_count =				0;
+			$hTOTanswer_count =			0;
+			$hTOTagent_sec =			0;
+			$hTOTpause_sec =			0;
+			$hTOTtalk_sec =				0;
+			$hTOTtalk_avg =				0;
+			$hTOTqueue_seconds =		0;
+			$hTOTqueue_avg =			0;
+			$hTOTmax_queue_seconds =	0;
+			$hTOTdrop_count =			0;
+
+			##### Parse through the agent time records to tally the time
+			$p=0;
+			while ($p < $s)
+				{
+				$call_date = explode(" ", $ATcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $ATepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
+					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
+					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
+					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
+
+					$Hcalltime[$Chour]++;
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
+				$p++;
+				}
+
+
+
+
+
+
+			##### Parse through call records to tally the counts
+			$p=0;
+			while ($p < $u)
+				{
+				$call_date = explode(" ", $CPcall_date[$p]);
+				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
+				$epoch = $CPepoch[$p];
+				$Cwday = date("w", $epoch);
+
+				$CTstart = $Gct_default_start . "00";
+				$CTstop = $Gct_default_stop . "59";
+
+				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
+					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
+				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
+					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
+				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
+					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
+				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
+					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
+				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
+					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
+				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
+					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
+				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
+					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
+
+				$Chour = date("G", $epoch);
+				$Cmin = date("i", $epoch);
+				if ($interval_count==96)
+					{
+					$ChourX = ($Chour * 4);
+					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
+					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
+					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
+					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
+					$Chour = ($ChourX + $CminX);
+					}
+				if ($interval_count==48)
+					{
+					$ChourX = ($Chour * 2);
+					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
+					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
+					$Chour = ($ChourX + $CminX);
+					}
+
+				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
+					{
+					$calls_count[$i]++;
+					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
+					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
+					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
+					$TEMPtalk = $CPlength_in_sec[$p];
+					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
+					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
+					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
+
+					$Hcalls_count[$Chour]++;
+					if (eregi("DROP",$CPstatus[$p]))
+						{
+						if ($CPin_out[$p] == 'OUT')
+							{
+							$drop_count_OUT[$i]++;
+							$Hdrop_count_OUT[$Chour]++;
+							}
+						$drop_count[$i]++;
+						$Hdrop_count[$Chour]++;
+						}
+					else
+						{
+						$answer_count[$i]++;
+						$Hanswer_count[$Chour]++;
+						}
+					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
+						{
+						$system_count[$i]++;
+						$Hsystem_count[$Chour]++;
+						}
+					else
+						{
+						$agent_count[$i]++;
+						$Hagent_count[$Chour]++;
+						}
+					if ($CPstatus[$p] == 'NA')
+						{
+						$na_count[$i]++;
+						$Hna_count[$Chour]++;
+						}
+					if ($CPin_out[$p] == 'IN')
+						{
+						$calls_count_IN[$i]++;
+						$Hcalls_count_IN[$Chour]++;
+						}
+
+					$k=0;
+					while($k < $sale_ct)
+						{
+						if ($sale_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$ptp_count[$i]++;
+							$Hptp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$k=0;
+					while($k < $dnc_ct)
+						{
+						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
+							{
+							$rtp_count[$i]++;
+							$Hrtp_count[$Chour]++;
+							}
+						$k++;
+						}
+
+					$Hcalltime[$Chour]++;
+					
+
+					if ($print_calls > 0)
+						{
+						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
+						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
+						}
+					$q++;
+					}
+				else
+					{$out_of_call_time++;}
+				if ($DB)
+					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
+				$p++;
+				}
+
+
+			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
+				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
+			else
+				{$talk_avg[$i] = 0;}
+			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
+				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
+			else
+				{$queue_avg[$i] = 0;}
+
+			if ($print_calls > 0)
+				{
+				$PCtemptalkmin = ($PCtemptalk  / 60);
+				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
+				}
+
+			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
+				{
+				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
+				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
+				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
+				if ($drop_count[$i] < 0)
+					{$drop_count[$i] = 0;}
+				}
+			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
+			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
+			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
+			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
+			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
+			$TOTna_count =				($TOTna_count + $na_count[$i]);
+			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
+			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
+			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
+			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
+			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
+			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
+			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
+				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
+
+			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
+			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
+			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
+			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
+			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
+			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
+			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
+
+
+			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
+			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
+			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
+			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
+			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
+			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
+			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
+				{$gNApercent=0;}
+			else
+				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
+			$gNApercent =	sprintf("%6.2f",$gNApercent);
+			$gNAcalls =		sprintf("%6s", $na_count[$i]);
+			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
+			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
+			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
+			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
+			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
+			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
+			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
+			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
+			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
+				{$gDROPpercent=0;}
+			else
+				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
+			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
+			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
+
+			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
+
+			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
+			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
+			$MAIN .= "\n";
+
+			### hour by hour sumaries
+			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
+			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
+			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$h=0;
+			while ($h < $interval_count)
+				{
+				if ($Hcalltime[$h] > 0)
+					{
+					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
+					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
+					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
+					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
+					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
+					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
+					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
+					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
+					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
+					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
+					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
+					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
+					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
+
+					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
+						{
+						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
+						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
+						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
+						if ($Hdrop_count[$h] < 0)
+							{$Hdrop_count[$h] = 0;}
+						}
+					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
+					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
+					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
+					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
+					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
+					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
+					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
+					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
+					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
+					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
+					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
+					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
+					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
+						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
+
+					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
+						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
+					else
+						{$Htalk_avg[$h] = 0;}
+					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
+						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
+					else
+						{$Hqueue_avg[$h] = 0;}
+
+					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
+					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
+					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
+					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
+					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
+					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
+					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
+					
+					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
+					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
+					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
+					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
+					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
+						{$hNApercent=0;}
+					else
+						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hNApercent =		sprintf("%6.2f",$hNApercent);
+					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
+					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
+					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
+					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
+					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
+					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
+					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
+					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
+					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
+					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
+						{$hDROPpercent=0;}
+					else
+						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
+					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
+					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
+					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
+
+					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
+					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
+					}
+
+				$h++;
+				}
+
+			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
+				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
+			else
+				{$hTOTtalk_avg = 0;}
+			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
+				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
+			else
+				{$hTOTqueue_avg = 0;}
+
+			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
+			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
+			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
+			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
+			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
+			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
+			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
+
+			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
+			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
+			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
+			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
+			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
+			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
+				{$hTOTna_percent=0;}
+			else
+				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
+			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
+			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
+			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
+			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
+			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
+			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
+			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
+			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
+			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
+			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
+			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
+				{$hTOTdrop_percent=0;}
+			else
+				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
+			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
+			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
+
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
+			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+
+			$i++;
+			}
+
+		$rawTOTtalk_sec = $TOTtalk_sec;
+		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
+
+		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
+			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
+		else
+			{$TOTtalk_avg = 0;}
+		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
+			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
+		else
+			{$TOTqueue_avg = 0;}
+
+		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
+		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
+		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
+		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
+		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
+		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
+		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
+
+		$i =					sprintf("%4s", $i);
+		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
+		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
+		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
+		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
+		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
+		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
+			{$TOTna_percent=0;}
+		else
+			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
+		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
+		$TOTna_count =			sprintf("%6s", $TOTna_count);
+		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
+		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
+		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
+		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
+		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
+		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
+		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
+		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
+		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
+			{$TOTdrop_percent=0;}
+		else
+			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
+		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
+		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
+
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
+		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
+		}
+
+	if ($costformat > 0)
+		{
+		echo "
\n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_VDADstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_VDADstats.php new file mode 100644 index 00000000..ec07840c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_VDADstats.php @@ -0,0 +1,1412 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 60619-1718 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 61215-1139 - Added drop percentage of answered and round-2 decimal +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80620-0031 - Fixed human answered calculation for drop perfentage +# 80709-0230 - Added time stats to call statuses +# 80717-2118 - Added calls/hour out of agent login time in status summary +# 80722-2049 - Added Status Category stats +# 81109-2341 - Added Productivity Rating +# 90225-1140 - Changed to multi-campaign capability +# 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} + $i++; + } + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +?> + + + + + +\n"; +echo "Outbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Date:
"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campagnas:
"; +echo "\n"; +echo "
"; +echo "Include Drop  
Rollover:
"; +echo "\n"; +echo "
Bottom Graph:  
\n"; +echo "
\n"; +if ($carrier_logging_active > 0) + { + echo "
Carrier Stats:  
"; + echo "\n"; + } +echo "
Shift:  
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($group[0]) > 1) + { + echo " MODIFICA | \n"; + echo " REPORT \n"; + } +else + { + echo " CAMPAIGNS | \n"; + echo " REPORT \n"; + } +echo "
"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n\n";
+	echo "PER FAVORE SELEZIONA UNA CAMPAGNA E UNA DATA, POI PREMI INVIA\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+
+	$OUToutput = '';
+	$OUToutput .= "Outbound Calling Stats                             $NOW_TIME\n";
+
+	$OUToutput .= "\n";
+	$OUToutput .= "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+	$OUToutput .= "---------- TOTALI\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcallsRAW = $row[0];
+	$TOTALsec =		$row[1];
+	$inTOTALcallsRAW=0;
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$TOTALdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inTOTALsec =	($inTOTALsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inTOTALcallsRAW =	$y;
+		$TOTALsec = ($TOTALsec + $inTOTALsec);
+		$inTOTALcalls =	sprintf("%10s", $inTOTALcallsRAW);
+		}
+
+	$TOTALcalls =	sprintf("%10s", $TOTALcallsRAW);
+	if ( ($row[0] < 1) or ($TOTALsec < 1) )
+		{$average_call_seconds = '         0';}
+	else
+		{
+		$average_call_seconds = ($TOTALsec / $TOTALcallsRAW);
+		$average_call_seconds = round($average_call_seconds, 2);
+		$average_call_seconds =	sprintf("%10s", $average_call_seconds);
+		}
+
+	$OUToutput .= "Totale Chiamate Effettuate Per Questa Campagna: $TOTALcalls\n";
+	$OUToutput .= "Durata Media per Tutte Le Chiamate In Secondi: $average_call_seconds\n";
+	if (eregi("YES",$include_rollover))
+		{$OUToutput .= "Calls that went to rollover In-Gruppo:         $inTOTALcalls\n";}
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- RISPOSTA UMANAS\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN($customer_interactive_statuses) $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$CIcallsRAW =	$row[0];
+	$CIsec =		$row[1];
+
+	if (eregi("YES",$include_rollover))
+		{
+		$length_in_secZ=0;
+		$queue_secondsZ=0;
+		$agent_alert_delayZ=0;
+		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and vicidial_closer_log.status IN($customer_interactive_statuses) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$INallcalls_to_printZ = mysql_num_rows($rslt);
+		$y=0;
+		while ($y < $INallcalls_to_printZ)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			$length_in_secZ = $row[0];
+			$queue_secondsZ = $row[1];
+			$agent_alert_delayZ = $row[2];
+
+			$CIdelay =		round($agent_alert_delayZ / 1000);
+			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+			if ($thiscallsec < 0)
+				{$thiscallsec = 0;}
+			$inCIsec =	($inCIsec + $thiscallsec);	
+
+			$y++;
+			}
+
+		$inCIcallsRAW =	$y;
+		$CIsec = ($CIsec + $inCIsec);
+		$CIcallsRAW = ($CIcallsRAW + $inCIcallsRAW);
+		}
+
+	$CIcalls =	sprintf("%10s", $CIcallsRAW);
+	if ( ($CIcallsRAW < 1) or ($CIsec < 1) )
+		{$average_ci_seconds = '         0';}
+	else
+		{
+		$average_ci_seconds = ($CIsec / $CIcallsRAW);
+		$average_ci_seconds = round($average_ci_seconds, 2);
+		$average_ci_seconds =	sprintf("%10s", $average_ci_seconds);
+		}
+	$CIsec =		sec_convert($CIsec,'H'); 
+
+
+	$OUToutput .= "Total Umani Rispostaed calls for this Campagna: $CIcalls\n";
+	$OUToutput .= "Average Call Length for all HA in seconds:    $average_ci_seconds     Total Time: $CIsec\n";
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ABBATTUTE\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status='DROP' and (length_in_sec <= 6000 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$DROPcalls =	sprintf("%10s", $row[0]);
+	$DROPcallsRAW =	$row[0];
+	$DROPseconds =	$row[1];
+
+
+	# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
+	$q=0;
+	$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+
+	$stmt = "SELECT distinct status,status_name,human_answered,category from vicidial_campaign_statuses $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$p=0;
+	while ($p < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$status[$q] =			$row[0];
+		$status_name[$q] =		$row[1];
+		$human_answered[$q] =	$row[2];
+		$category[$q] =			$row[3];
+		$statname_list["$status[$q]"] = "$status_name[$q]";
+		$statcat_list["$status[$q]"] = "$category[$q]";
+		if ($human_answered[$q]=='Y')
+			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
+		$q++;
+		$p++;
+		}
+	$camp_ANS_STAT_SQL = eregi_replace(",$",'',$camp_ANS_STAT_SQL);
+
+
+	$stmt="select count(*) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN($camp_ANS_STAT_SQL);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$RISPOSTAcalls =	$row[0];
+
+	if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
+		{$DROPpercent = '0';}
+	else
+		{
+		$DROPpercent = (($DROPcallsRAW / $TOTALcalls) * 100);
+		$DROPpercent = round($DROPpercent, 2);
+		}
+
+	if ( ($DROPcalls < 1) or ($RISPOSTAcalls < 1) )
+		{$DROPRISPOSTApercent = '0';}
+	else
+		{
+		$DROPRISPOSTApercent = (($DROPcallsRAW / $RISPOSTAcalls) * 100);
+		$DROPRISPOSTApercent = round($DROPRISPOSTApercent, 2);
+		}
+
+	if ( ($DROPseconds < 1) or ($DROPcallsRAW < 1) )
+		{$average_hold_seconds = '         0';}
+	else
+		{
+		$average_hold_seconds = ($DROPseconds / $DROPcallsRAW);
+		$average_hold_seconds = round($average_hold_seconds, 2);
+		$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+		}
+
+	$OUToutput .= "Total Outbound DROP Calls:                    $DROPcalls  $DROPpercent%\n";
+	$OUToutput .= "Percentuale Di Chiamate ABBATTUTE Su Chiamate Con Risposta:   $DROPcalls / $RISPOSTAcalls  $DROPRISPOSTApercent%\n";
+
+	if (eregi("YES",$include_rollover))
+		{
+		if ( ($DROPcalls < 1) or ($CIcallsRAW < 1) )
+			{$inDROPRISPOSTApercent = '0';}
+		else
+			{
+			$inDROPRISPOSTApercent = (($DROPcallsRAW / $CIcallsRAW) * 100);
+			$inDROPRISPOSTApercent = round($inDROPRISPOSTApercent, 2);
+			}
+
+		$OUToutput .= "Percent of DROP/Answer Calls with Rollover:   $DROPcalls / $CIcallsRAW  $inDROPRISPOSTApercent%\n";
+		}
+
+	$OUToutput .= "Durata Media Chiamate ABBATTUTE in secondi:    $average_hold_seconds\n";
+
+	$stmt = "select closer_campaigns from vicidial_campaigns $group_SQL;";
+	$rslt=mysql_query($stmt, $link);
+	$ccamps_to_print = mysql_num_rows($rslt);
+	$c=0;
+	while ($ccamps_to_print > $c)
+		{
+		$row=mysql_fetch_row($rslt);
+		$closer_campaigns = $row[0];
+		$closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns);
+		$closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
+		$closer_campaignsSQL .= "'$closer_campaigns',";
+		$c++;
+		}
+	$closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL);
+
+	$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($closer_campaignsSQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$TOTALanswers = ($row[0] + $RISPOSTAcalls);
+
+
+	$stmt = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+	$agent_non_pause_sec = $row[0];
+
+	if ($agent_non_pause_sec > 0)
+		{
+		$AVG_RISPOSTAagent_non_pause_sec = (($TOTALanswers / $agent_non_pause_sec) * 60);
+		$AVG_RISPOSTAagent_non_pause_sec = round($AVG_RISPOSTAagent_non_pause_sec, 2);
+		}
+	else
+		{$AVG_RISPOSTAagent_non_pause_sec=0;}
+	$AVG_RISPOSTAagent_non_pause_sec = sprintf("%10s", $AVG_RISPOSTAagent_non_pause_sec);
+
+	$OUToutput .= "Productivity Rating:                          $AVG_RISPOSTAagent_non_pause_sec\n";
+
+
+
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- NESSUNA RISPOSTA AUTO-DIAL\n";
+
+	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN('NA','B') and (length_in_sec <= 60 or length_in_sec is null);";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$NAcalls =	sprintf("%10s", $row[0]);
+	if ( ($NAcalls < 1) or ($TOTALcalls < 1) )
+		{$NApercent = '0';}
+	else
+		{
+		$NApercent = (($NAcalls / $TOTALcalls) * 100);
+		$NApercent = round($NApercent, 2);
+		}
+
+	if ( ($row[0] < 1) or ($row[1] < 1) )
+		{$average_na_seconds = '         0';}
+	else
+		{
+		$average_na_seconds = ($row[1] / $row[0]);
+		$average_na_seconds = round($average_na_seconds, 2);
+		$average_na_seconds =	sprintf("%10s", $average_na_seconds);
+		}
+
+	$OUToutput .= "Totale Chiamate Senza Risposta - occupato, disconnesso, fuori posto...: $NAcalls  $NApercent%\n";
+	$OUToutput .= "Durata Media Chiamate Senza Risposta in secondi:       $average_na_seconds\n";
+
+
+	##############################
+	#########  INVITO hangup MOTIVO STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- INVITO hangup MOTIVO STATS\n";
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| HANGUP REASON        | CALLS      |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+	$stmt="select count(*),term_reason from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by term_reason;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$reasons_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $reasons_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$TOTALcalls = ($TOTALcalls + $row[0]);
+
+		$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
+		$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
+		if (ereg("NONE",$reason))	{$reason = 'NO RISPOSTA           ';}
+		if (ereg("CALLER",$reason)) {$reason = 'CUSTOMER            ';}
+
+		$OUToutput .= "| $reason | $REASONcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+----------------------+------------+\n";
+	$OUToutput .= "| TOTAL:               | $TOTALcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+
+
+	##############################
+	#########  CALL STATUS STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CALL STATUS STATS\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+----------------------------------+----------+\n";
+	$OUToutput .= "|        |                      |                      |            |      CALL TIME                   |AGENT TIME|\n";
+	$OUToutput .= "| STATUS | DESCRIZIONE          | CATEGORIA             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|CALLS/HOUR|\n";
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+
+	$campaignSQL = "$group_SQLand";
+	if (eregi("YES",$include_rollover))
+		{$campaignSQL = "$both_group_SQLand";}
+	## Pull the count of agent seconds for the total tally
+	$stmt="SELECT sum(pause_sec + wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $campaignSQL and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000;";
+	$rslt=mysql_query($stmt, $link);
+	$Ctally_to_print = mysql_num_rows($rslt);
+	if ($Ctally_to_print > 0) 
+		{
+		$rowx=mysql_fetch_row($rslt);
+		$AGENTsec = "$rowx[0]";
+		}
+	if ($DB) {$OUToutput .= "$AGENTsec|$Ctally_to_print|$stmt\n";}
+
+
+	## get counts and time totals for all statuses in this campaign
+	$rollover_exclude_dropSQL='';
+	if (eregi("YES",$include_rollover))
+		{$rollover_exclude_dropSQL = "and status NOT IN('DROP')";}
+	$stmt="select count(*),status,sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $rollover_exclude_dropSQL $group_SQLand group by status;";
+
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$statuses_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$STATUScountARY[$i] =	$row[0];
+		$RAWstatusARY[$i] =		$row[1];
+		$RAWhoursARY[$i] =		$row[2];
+		$statusSQL .=			"'$row[1]',";
+		$i++;
+		}
+	if (eregi("YES",$include_rollover))
+		{
+		if (strlen($statusSQL) < 2)
+			{$statusSQL = "''";}
+		else
+			{
+			$statusSQL = eregi_replace(",$",'',$statusSQL);
+			}
+		$stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status NOT IN($statusSQL) $group_drop_SQLand;";
+		$rslt=mysql_query($stmt, $link);
+		$inS_statuses_to_print = mysql_num_rows($rslt);
+		$n=0;
+		while ($inS_statuses_to_print > $n) 
+			{
+			$rowx=mysql_fetch_row($rslt);
+			$STATUScountARY[$i] =	0;
+			$RAWstatusARY[$i] =		$rowx[0];
+			$RAWhoursARY[$i] =		0;
+			$i++;
+			$n++;
+			$statuses_to_print++;
+			}
+		}
+
+
+	$i=0;
+	while ($i < $statuses_to_print)
+		{
+		$STATUScount = $STATUScountARY[$i];
+		$RAWstatus = $RAWstatusARY[$i];
+		$RAWhours = $RAWhoursARY[$i];
+
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status='$RAWstatus' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			$in_statuses_to_print = mysql_num_rows($rslt);
+			if ($in_statuses_to_print > 0) 
+				{
+				$rowx=mysql_fetch_row($rslt);
+				$inSTATUScount =	$rowx[0];
+				$inRAWhours =		$rowx[1];
+
+				$STATUScount = ($STATUScount + $inSTATUScount);
+				$RAWhours = ($RAWhours + $inRAWhours);
+				}
+			}
+
+		$r=0;
+		while ($r < $statcats_to_print)
+			{
+			if ($statcat_list[$RAWstatus] == "$vsc_id[$r]")
+				{
+				$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
+				}
+			$r++;
+			}
+		if ($AGENTsec < 1) {$AGENTsec=1;}
+		$TOTALcalls =	($TOTALcalls + $STATUScount);
+		$TOTALtimeS =	($TOTALtimeS + $RAWhours);
+		$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );
+			$STATUSrate =	sprintf("%.2f", $STATUSrate);
+		$AGENTrate =	($STATUScount / ($AGENTsec / 3600) );
+			$AGENTrate =	sprintf("%.2f", $AGENTrate);
+
+		$STATUShours =		sec_convert($RAWhours,'H'); 
+		$STATUSavg_sec =	($RAWhours / $STATUScount); 
+		$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
+
+		$STATUScount =	sprintf("%10s", $STATUScount);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
+		$status =	sprintf("%-6s", $RAWstatus);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
+		$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
+		$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
+		$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
+		$AGENTrate =	sprintf("%8s", $AGENTrate);while(strlen($AGENTrate)>8) {$AGENTrate = substr("$AGENTrate", 0, -1);}
+
+		if ($non_latin < 1)
+			{
+			$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
+			while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
+			$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
+			while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
+			}
+		else
+			{
+			$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
+			while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
+			$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
+			while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
+			}
+
+		$OUToutput .= "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate | $AGENTrate |\n";
+
+		$i++;
+		}
+
+	if ($TOTALcalls < 1)
+		{
+		$TOTALhours =	'0:00:00';
+		$TOTALavg =		'0:00:00';
+		$TOTALrate =	'0.00';
+		}
+	else
+		{
+		$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );
+			$TOTALrate =	sprintf("%.2f", $TOTALrate);
+		$aTOTALrate =	($TOTALcalls / ($AGENTsec / 3600) );
+			$aTOTALrate =	sprintf("%.2f", $aTOTALrate);
+
+		$aTOTALhours =		sec_convert($AGENTsec,'H'); 
+		$TOTALhours =		sec_convert($TOTALtimeS,'H'); 
+		$TOTALavg_sec =		($TOTALtimeS / $TOTALcalls);
+		$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
+		}
+	$TOTALcalls =	sprintf("%10s", $TOTALcalls);
+	$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
+	$aTOTALhours =	sprintf("%10s", $aTOTALhours);while(strlen($aTOTALhours)>10) {$aTOTALhours = substr("$aTOTALhours", 0, -1);}
+	$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
+	$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
+	$aTOTALrate =	sprintf("%8s", $aTOTALrate);while(strlen($aTOTALrate)>8) {$aTOTALrate = substr("$aTOTALrate", 0, -1);}
+
+	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
+	$OUToutput .= "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |          |\n";
+#	$OUToutput .= "|   AGENT TIME                                                      | $aTOTALhours |                     | $aTOTALrate |\n";
+	$OUToutput .= "+------------------------------------------------------+------------+------------+---------------------+----------+\n";
+
+
+
+
+
+	##############################
+	#########  ID LISTA BREAKDOWN STATS
+
+	$TOTALcalls = 0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- ID LISTA STATS\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| LIST                                     | CALLS      |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+	$stmt="select count(*),list_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by list_id;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$listids_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$LISTIDcalls[$i] =	$row[0];
+		$LISTIDlists[$i] =	$row[1];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $listids_to_print)
+		{
+		$stmt="select list_name from vicidial_lists where list_id='$LISTIDlists[$i]';";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$list_name_to_print = mysql_num_rows($rslt);
+		if ($list_name_to_print > 0)
+			{
+			$row=mysql_fetch_row($rslt);
+			$LISTIDlist_names[$i] =	$row[0];
+			}
+
+		$TOTALcalls = ($TOTALcalls + $LISTIDcalls[$i]);
+
+		$LISTIDcount =	sprintf("%10s", $LISTIDcalls[$i]);while(strlen($LISTIDcount)>10) {$LISTIDcount = substr("$LISTIDcount", 0, -1);}
+		$LISTIDname =	sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
+
+		$OUToutput .= "| $LISTIDname | $LISTIDcount |\n";
+
+		$i++;
+		}
+
+	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
+
+	$OUToutput .= "+------------------------------------------+------------+\n";
+	$OUToutput .= "| TOTAL:                                   | $TOTALcalls |\n";
+	$OUToutput .= "+------------------------------------------+------------+\n";
+
+
+
+
+
+	if ( ($carrier_logging_active > 0) and ($carrier_stats == 'YES') )
+		{
+		##############################
+		#########  STATUS CATEGORIA STATS
+
+		$OUToutput .= "\n";
+		$OUToutput .= "---------- CARRIER CALL STATUSES\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| STATUS               | CALLS      |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+
+		## get counts and time totals for all statuses in this campaign
+		$stmt="select dialstatus,count(*) from vicidial_carrier_log vcl,vicidial_log vl where vcl.uniqueid=vl.uniqueid and vcl.call_date > \"$query_date_BEGIN\" and vcl.call_date < \"$query_date_END\" and vl.call_date > \"$query_date_BEGIN\" and vl.call_date < \"$query_date_END\" $group_SQLand group by dialstatus order by dialstatus;";
+		if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {$OUToutput .= "$stmt\n";}
+		$carrierstatuses_to_print = mysql_num_rows($rslt);
+		$i=0;
+		while ($i < $carrierstatuses_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+			$TOTCARcalls = ($TOTCARcalls + $row[1]);
+			$CARstatus =	sprintf("%-20s", $row[0]); while(strlen($CARstatus)>20) {$CARstatus = substr("$CARstatus", 0, -1);}
+			$CARcount =		sprintf("%10s", $row[1]); while(strlen($CARcount)>10) {$CARcount = substr("$CARcount", 0, -1);}
+
+			$OUToutput .= "| $CARstatus | $CARcount |\n";
+
+			$i++;
+			}
+
+		$TOTCARcalls =	sprintf("%10s", $TOTCARcalls); while(strlen($TOTCARcalls)>10) {$TOTCARcalls = substr("$TOTCARcalls", 0, -1);}
+
+		$OUToutput .= "+----------------------+------------+\n";
+		$OUToutput .= "| TOTAL                | $TOTCARcalls |\n";
+		$OUToutput .= "+----------------------+------------+\n";
+		}
+
+
+	##############################
+	#########  STATUS CATEGORIA STATS
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- CUSTOM STATUS CATEGORIA STATS\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| CATEGORIA             | CALLS      | DESCRIZIONE                    |\n";
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+
+
+	$TOTCATcalls=0;
+	$r=0;
+	while ($r < $statcats_to_print)
+		{
+		if ($vsc_id[$r] != 'UNDEFINED')
+			{
+			$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
+			$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
+			$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
+			$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
+
+			$OUToutput .= "| $category | $CATcount | $CATname |\n";
+			}
+		$r++;
+		}
+
+	$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
+
+	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
+	$OUToutput .= "| TOTAL                | $TOTCATcalls |\n";
+	$OUToutput .= "+----------------------+------------+\n";
+
+
+
+	##############################
+	#########  USER STATS
+
+	$TOTagents=0;
+	$TOTcalls=0;
+	$TOTtime=0;
+	$TOTavg=0;
+
+	$OUToutput .= "\n";
+	$OUToutput .= "---------- STATISTICHE OPERATORE\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\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_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$RAWuser[$i] =			$row[0];
+		$RAWfull_name[$i] =		$row[1];
+		$RAWuser_calls[$i] =	$row[2];
+		$RAWuser_talk[$i] =		$row[3];
+		$RAWuser_average[$i] =	$row[4];
+
+		$TOTcalls = ($TOTcalls + $row[2]);
+		$TOTtime = ($TOTtime + $row[3]);
+
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$user =	sprintf("%-6s", $RAWuser[$i]);while(strlen($user)>6) {$user = substr("$user", 0, -1);}
+		if ($non_latin < 1)
+			{
+			$full_name =	sprintf("%-15s", $RAWfull_name[$i]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
+			}
+		else
+			{
+			$full_name =	sprintf("%-45s", $RAWfull_name[$i]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$length_in_secZ=0;
+			$queue_secondsZ=0;
+			$agent_alert_delayZ=0;
+			$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and user='$RAWuser[$i]' $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_printZ = mysql_num_rows($rslt);
+			$y=0;
+			while ($y < $INallcalls_to_printZ)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				$length_in_secZ = $row[0];
+				$queue_secondsZ = $row[1];
+				$agent_alert_delayZ = $row[2];
+
+				$CIdelay =		round($agent_alert_delayZ / 1000);
+				$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
+				if ($thiscallsec < 0)
+					{$thiscallsec = 0;}
+				$inCIsec =	($inCIsec + $thiscallsec);	
+
+				$y++;
+				}
+
+			$inCIcallsRAW =	$y;
+			$RAWuser_talk[$i] = ($RAWuser_talk[$i] + $inCIsec);
+			$RAWuser_calls[$i] = ($RAWuser_calls[$i] + $inCIcallsRAW);
+
+			$TOTcalls = ($TOTcalls + $inCIcallsRAW);
+			$TOTtime = ($TOTtime + $inCIsec);
+			}
+
+		$USERcalls =	sprintf("%10s", $RAWuser_calls[$i]);
+		$USERtotTALK =	$RAWuser_talk[$i];
+		$USERavgTALK =	round($RAWuser_talk[$i] / $RAWuser_calls[$i]);
+
+		$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
+		$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
+
+		$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
+		$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
+
+		$OUToutput .= "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
+
+		$i++;
+		}
+
+	$rawTOTtime = $TOTtime;
+
+	if (!$TOTcalls) {$TOTcalls = 1;}
+	$TOTavg = ($TOTtime / $TOTcalls);
+
+	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
+	$TOTtime_MS =	sec_convert($TOTtime,'H'); 
+
+	$TOTavg =		sprintf("%6s", $TOTavg_MS);
+	$TOTtime =		sprintf("%10s", $TOTtime_MS);
+
+	$TOTagents =		sprintf("%10s", $i);
+	$TOTcalls =			sprintf("%10s", $TOTcalls);
+	$TOTtime =			sprintf("%8s", $TOTtime);
+	$TOTavg =			sprintf("%6s", $TOTavg);
+
+	$stmt="select avg(wait_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {$OUToutput .= "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$AVGwait = $row[0];
+	$AVGwait_MS =	sec_convert($AVGwait,'H'); 
+	$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| TOTALE Operatori: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
+	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
+	$OUToutput .= "| Tempo Medio di Attesa Tra Due Chiamate                      $AVGwait |\n";
+	$OUToutput .= "+-------------------------------------------------------------+\n";
+
+
+
+	if ($costformat > 0)
+		{
+		$stmt="select campaign_id,phone_number,length_in_sec from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user=vicidial_users.user;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$allcalls_to_print = mysql_num_rows($rslt);
+		$w=0;
+		while ($w < $allcalls_to_print)
+			{
+			$row=mysql_fetch_row($rslt);
+
+			if ($print_calls > 0)
+				{echo "$row[0]\t$row[1]\t$row[2]\n";}
+			$tempTALK = ($tempTALK + $row[2]);
+			$w++;
+			}
+		if (eregi("YES",$include_rollover))
+			{
+			$stmt="select campaign_id,phone_number,length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$INallcalls_to_print = mysql_num_rows($rslt);
+			$w=0;
+			while ($w < $INallcalls_to_print)
+				{
+				$row=mysql_fetch_row($rslt);
+
+				if ($print_calls > 0)
+				{	echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\n";}
+				$newTALK = ($row[2] - $row[3] - ($row[4] / 1000) );
+				if ($newTALK < 0) {$newTALK = 0;}
+				$tempTALK = ($tempTALK + $newTALK);
+				$w++;
+				}
+			}
+		$tempTALKmin = ($tempTALK  / 60);
+		if ($print_calls > 0)
+			{echo "$w\t$tempTALK\t$tempTALKmin\n";}
+
+		echo "
\n"; + $rawTOTtalk_min = round($tempTALK / 60); + $outbound_cost = ($rawTOTtalk_min * $outbound_rate); + $outbound_cost = sprintf("%8.2f", $outbound_cost); + + echo "OUTBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$outbound_rate = \$$outbound_cost\n"; + + exit; + } + + + echo "$OUToutput"; + + + + + if ($bottom_graph == 'YES') + { + ############################## + ######### TIME STATS + + echo "\n"; + echo "---------- STATISTICHE TEMPO\n"; + + echo "\n"; + + $hi_hour_count=0; + $last_full_record=0; + $i=0; + $h=0; + 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' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + $h++; + } + + if ($hi_hour_count < 1) + {$hour_multiplier = 0;} + else + { + $hour_multiplier = (100 / $hi_hour_count); + #$hour_multiplier = round($hour_multiplier, 0); + } + + echo "\n"; + echo "GRAFICO AD INCREMENTO DI 15 MINUTI DEL TOTALE DELLE CHIAMATE EFFETTUATE PER QUESTA CAMPAGNA\n"; + + $k=1; + $Mk=0; + $call_scale = '0'; + while ($k <= 102) + { + if ($Mk >= 5) + { + $Mk=0; + if ( ($k < 1) or ($hour_multiplier <= 0) ) + {$scale_num = 100;} + else + { + $scale_num=($k / $hour_multiplier); + $scale_num = round($scale_num, 0); + } + $LENscale_num = (strlen($scale_num)); + $k = ($k + $LENscale_num); + $call_scale .= "$scale_num"; + } + else + { + $call_scale .= " "; + $k++; $Mk++; + } + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + #echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | DROPS | TOTAL |\n"; + echo "| HOUR |$call_scale| DROPS | TOTAL |\n"; + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + $ZZ = '00'; + $i=0; + $h=4; + $hour= -1; + $no_lines_yet=1; + + while ($i <= 96) + { + $char_counter=0; + $time = ' '; + if ($h >= 4) + { + $hour++; + $h=0; + if ($hour < 10) {$hour = "0$hour";} + $time = "+$hour$ZZ+"; + } + if ($h == 1) {$time = " 15 ";} + if ($h == 2) {$time = " 30 ";} + if ($h == 3) {$time = " 45 ";} + $Ghour_count = $hour_count[$i]; + if ($Ghour_count < 1) + { + if ( ($no_lines_yet) or ($i > $last_full_record) ) + { + $do_nothing=1; + } + else + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + echo "|$time|"; + $k=0; while ($k <= 102) {echo " "; $k++;} + echo "| $hour_count[$i] |\n"; + } + } + else + { + $no_lines_yet=0; + $Xhour_count = ($Ghour_count * $hour_multiplier); + $Yhour_count = (99 - $Xhour_count); + + $Gdrop_count = $drop_count[$i]; + if ($Gdrop_count < 1) + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;} + echo "*X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 101) {echo " "; $char_counter++;} + echo "| 0 | $hour_count[$i] |\n"; + + } + else + { + $Xdrop_count = ($Gdrop_count * $hour_multiplier); + + # if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);} + + $XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 ); + + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + $drop_count[$i] = sprintf("%-5s", $drop_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xdrop_count) {echo ">"; $k++; $char_counter++;} + echo "D"; $char_counter++; + $k=0; while ($k <= $XXhour_count) {echo "*"; $k++; $char_counter++;} + echo "X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 102) {echo " "; $char_counter++;} + echo "| $drop_count[$i] | $hour_count[$i] |\n"; + } + } + + + $i++; + $h++; + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + ### END bottom graph + } + + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\nRun Time: $RUNtime seconds\n"; + } + + + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_VICIDIAL_hopperlist.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_VICIDIAL_hopperlist.php new file mode 100644 index 00000000..6260d97e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_VICIDIAL_hopperlist.php @@ -0,0 +1,167 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1654 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70115-1614 - Added ALT field for vicidial_hopper alt_dial column +# 71029-0852 - Added list_id to the output +# 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$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 and view_reports='1' and modify_campaigns='1';"; + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.10.15';} + +$stmt="select campaign_id,campaign_name from vicidial_campaigns order by campaign_id;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $campaign_id[$i] =$row[0]; + $campaign_name[$i] =$row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Coda Chiamate Report\n"; +echo "
\n"; +#echo "\n"; +#echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFICA \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+	{
+	echo "\n\n";
+	echo "PER FAVORE SELEZIONA UNA CAMPAGNA E PREMI INVIA\n";
+	}
+
+else
+	{
+	echo "Coda Contatti Da Chiamare In Tempo Reale                      $NOW_TIME\n";
+
+	echo "\n";
+	echo "---------- TOTALI\n";
+
+	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTALcalls =	sprintf("%10s", $row[0]);
+
+	echo "Totale Contatti Nella Coda Chiamate In Questo Istante:       $TOTALcalls\n";
+
+
+	##############################
+	#########  LEAD STATS
+
+	echo "\n";
+	echo "---------- LEADS IN HOPPER\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+	echo "|ORDER |PRIORITY| LEAD ID   | ID LISTA    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$FMT_i =		sprintf("%-4s", $i);
+		$lead_id =		sprintf("%-9s", $row[0]);
+		$phone_number =	sprintf("%-10s", $row[1]);
+		$state =		sprintf("%-5s", $row[2]);
+		$status =		sprintf("%-6s", $row[3]);
+		$count =		sprintf("%-5s", $row[4]);
+		$gmt =			sprintf("%-6s", $row[5]);
+		$hopper_id =	sprintf("%-6s", $row[6]);
+		$alt_dial =		sprintf("%-5s", $row[7]);
+		$list_id =		sprintf("%-10s", $row[8]);
+		$priority =		sprintf("%-6s", $row[9]);
+
+		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
+		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
+
+		$i++;
+		}
+
+	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
+
+	}
+
+
+?>
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_admin_log_display.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_admin_log_display.php new file mode 100644 index 00000000..1bc446ca --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_admin_log_display.php @@ -0,0 +1,118 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$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_admin_log_display.php +# +# CHANGES +# 50325-0932 - First build +# 51123-1443 - removed globals=on requirement +# 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'; +$build = '60620-1044'; + +$STARTtime = date("U"); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 8 and view_reports='1';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "VICIDIAL ADMIN LOG DISPLAY"; +echo "\n"; + +# Fri, 25 Mar 2005 + +$DAY_DATE = date("j"); +if ($DAY_DATE < 10) +# {$GREP_DATE = date("D, j M Y");} + {$GREP_DATE = date("D, 0j M Y");} +else + {$GREP_DATE = date("D, j M Y");} + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!$query_date) {$query_date = $GREP_DATE;} + +$Gquery_date = eregi_replace(" ",'\ ',$query_date); +echo "\n"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+echo "VICIDIAL ADMIN Change Log                             $NOW_TIME\n";
+
+#passthru("grep $Gquery_date /home/www/htdocs/vicidial/admin_changes_log.txt");
+passthru("grep $Gquery_date $WeBServeRRooT/vicidial/admin_changes_log.txt");
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_days_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_days_detail.php new file mode 100644 index 00000000..1266cccd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_days_detail.php @@ -0,0 +1,602 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-2202 - First build +# 90225-1051 - Added CSV download option +# 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&shift=$shift&DB=$DB&user=$user$groupQS"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Giorni di stato Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if (strlen($group[0]) < 1)
+	{
+	echo "\n";
+	echo "SELEZIONA UN UTENTE E DATA A TEMPO E CLICCA SOPRA INVIA\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Giorni di stato Report: $user                     $NOW_TIME\n";
+
+		echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- AGENT Dettagliatas -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Giorni di stato Report: $user                     $NOW_TIME\n";
+		$file_output .= "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$dates='-';
+	$datesARY[0]='';
+	$date_namesARY[0]='';
+	$k=0;
+
+	$stmt="select date_format(event_time, '%Y-%m-%d') as date,count(*) as calls,status 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 vicidial_agent_log.user='$user' $group_SQL $user_group_SQL group by date,status order by date,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[1] > 0) and (strlen($row[2]) > 0) )
+			{
+			$date[$i] =			$row[0];
+			$calls[$i] =		$row[1];
+			$status[$i] =		$row[2];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$date[$i]-", $dates))
+				{
+				$dates .= "$date[$i]-";
+				$datesARY[$k] = $date[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| DATE       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "DATE,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Sdate=$datesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+	#			if ( (eregi("$date[$i]", $Sdate)) and ($Sstatus=="$status[$i]") )
+				if ( ($Sdate=="$date[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWdate = $Sdate;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		$Sdate =		sprintf("%-10s", $Sdate);
+			while(strlen($Suser)>10) {$Suser = substr("$Sdate", 0, -1);}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sdate | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWdate,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdate) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			{
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+			}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+
+	if ($file_download < 1)
+		{
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+		echo "| TOTALI     | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALI,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + + +if ($file_download > 0) + { + $US='_'; + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_DAYS_$user$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + + + +echo "
\n"; +echo "
Date:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campagnas:
"; +echo "\n"; +echo "
Utente:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; +echo ""; +if (strlen($user) > 1) + { + echo " DOWNLOAD | \n"; + echo " UTENTE | \n"; + echo " USER STATS | \n"; + } +else + {echo " USERS | \n";} +echo "REPORT \n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "              \n";}
+	else
+		{
+		echo "              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 120 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_performance.php
new file mode 100644
index 00000000..f24286e0
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_performance.php
@@ -0,0 +1,258 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1711 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars
+# 90508-0644 - Changed to PHP long tags
+#
+
+require("dbconnect.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["group"]))				{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))		{$group=$_POST["group"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))		{$query_date=$_POST["query_date"];}
+if (isset($_GET["shift"]))				{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))		{$shift=$_POST["shift"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["INVIA"]))				{$INVIA=$_GET["INVIA"];}
+	elseif (isset($_POST["INVIA"]))		{$INVIA=$_POST["INVIA"];}
+
+$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 and view_reports='1';";
+	if ($DB) {echo "|$stmt|\n";}
+	if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	$row=mysql_fetch_row($rslt);
+	$auth=$row[0];
+
+  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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+?>
+
+
+
+
+
+\n";
+echo "VICIDIAL: Agent Performance\n";
+echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFICA | REPORT \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PLEASE SELECT A SERVER AND DATE-TIME ABOVE AND CLICK INVIA\n";
+echo " NOTE: stats taken from 6 hour shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = "$query_date 08:45:00";   
+	$query_date_END = "$query_date 15:33:00";
+	$time_BEGIN = "08:45:00";   
+	$time_END = "15:33:00";
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = "$query_date 15:33:00";   
+	$query_date_END = "$query_date 23:15:00";
+	$time_BEGIN = "15:33:00";   
+	$time_END = "23:15:00";
+	}
+
+echo "VICIDIAL: Agent Performance                             $NOW_TIME\n";
+
+echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Dettagliatas -------------\n\n";
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "| USER NAME       | ID       | CALLS  | TALK   | TALKAVG| A    | B    | DC   | DNC  | N    | NI   | SALE |\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='" . mysql_real_escape_string($group) . "' group by full_name order by calls desc limit 1000;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$TOTcalls=($TOTcalls + $row[0]);
+	$TOTtotTALK=($TOTtotTALK + $row[1]);
+	$calls[$i] =	sprintf("%-6s", $row[0]);
+
+	if ($non_latin < 1)
+	{
+   	 $full_name[$i]=	sprintf("%-15s", $row[2]); 
+	 while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}
+
+	 $user[$i] =		sprintf("%-6s", $row[3]);
+        while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+       }
+	else
+	{	
+        $full_name[$i]=	sprintf("%-45s", $row[2]); 
+	 while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}
+
+ 	 $user[$i] =		sprintf("%-18s", $row[3]);
+	 while(mb_strlen($user[$i],'utf-8')>6) {$user[$i] = mb_substr("$user[$i]", 0, -1,'utf-8');}
+	}
+
+	$user[$i] =		sprintf("%-8s", $row[3]);
+	$USERtotTALK =	$row[1];
+	$USERavgTALK =	$row[4];
+
+	$USERtotTALK_M = ($USERtotTALK / 60);
+	$USERtotTALK_M = round($USERtotTALK_M, 2);
+	$USERtotTALK_M_int = intval("$USERtotTALK_M");
+	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
+	$USERtotTALK_S = ($USERtotTALK_S * 60);
+	$USERtotTALK_S = round($USERtotTALK_S, 0);
+	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
+	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
+	$pfUSERtotTALK_MS[$i] =		sprintf("%6s", $USERtotTALK_MS);
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$pfUSERavgTALK_MS[$i] =		sprintf("%6s", $USERavgTALK_MS);
+	$i++;
+	}
+
+$k=0;
+while($k < $i)
+	{
+	$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='" . mysql_real_escape_string($group) . "' group by status;";
+	if ($non_latin > 0)
+	{
+	$rslt=mysql_query("SET NAMES 'UTF8'");
+	}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$m=0;
+	while ($m < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($row[1] == 'A') {$ctA[$k]=sprintf("%-4s", $row[0]);		$TOT_A = ($TOT_A + $row[0]);}
+		if ($row[1] == 'B') {$ctB[$k]=sprintf("%-4s", $row[0]);		$TOT_B = ($TOT_B + $row[0]);}
+		if ($row[1] == 'DC') {$ctDC[$k]=sprintf("%-4s", $row[0]);	$TOT_DC = ($TOT_DC + $row[0]);}
+		if ($row[1] == 'DNC') {$ctDNC[$k]=sprintf("%-4s", $row[0]);	$TOT_DNC = ($TOT_DNC + $row[0]);}
+		if ($row[1] == 'N') {$ctN[$k]=sprintf("%-4s", $row[0]);		$TOT_N = ($TOT_N + $row[0]);}
+		if ($row[1] == 'NI') {$ctNI[$k]=sprintf("%-4s", $row[0]);	$TOT_NI = ($TOT_NI + $row[0]);}
+		if (($row[1] == 'SALE') || ($row[1] == 'XFER') ) {$ctSALE[$k]=sprintf("%-4s", $row[0]);	$TOT_SALE = ($TOT_SALE + $row[0]);}
+		$m++;
+		}
+	echo "| $full_name[$k] | $user[$k] | $calls[$k] | $pfUSERtotTALK_MS[$k] | $pfUSERavgTALK_MS[$k] | $ctA[$k] | $ctB[$k] | $ctDC[$k] | $ctDNC[$k] | $ctN[$k] | $ctNI[$k] | $ctSALE[$k] |\n";
+
+
+
+	$k++;
+	}
+
+	$TOTcalls =	sprintf("%-7s", $TOTcalls);
+
+	$TOTtotTALK_M = ($TOTtotTALK / 60);
+	$TOTtotTALK_M = round($TOTtotTALK_M, 2);
+	$TOTtotTALK_M_int = intval("$TOTtotTALK_M");
+	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
+	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
+	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
+	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
+	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
+	$TOTtotTALK_MS =		sprintf("%7s", $TOTtotTALK_MS);
+		while(strlen($TOTtotTALK_MS)>7) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+
+	$TOT_A = sprintf("%-5s", $TOT_A);
+	$TOT_B = sprintf("%-5s", $TOT_B);
+	$TOT_DC = sprintf("%-5s", $TOT_DC);
+	$TOT_DNC = sprintf("%-5s", $TOT_DNC);
+	$TOT_N = sprintf("%-5s", $TOT_N);
+	$TOT_NI = sprintf("%-5s", $TOT_NI);
+	$TOT_SALE = sprintf("%-5s", $TOT_SALE);
+
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+echo "|  TOTALI                    | $TOTcalls| $TOTtotTALK_MS|        | $TOT_A| $TOT_B| $TOT_DC| $TOT_DNC| $TOT_N| $TOT_NI| $TOT_SALE|\n";
+echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
+
+echo "\n";
+
+}
+
+
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_performance_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_performance_detail.php
new file mode 100644
index 00000000..ea8b18f9
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_performance_detail.php
@@ -0,0 +1,822 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 71119-2359 - First build
+# 71121-0144 - Replace existing AST_agent_performance_detail.php script with this one
+#            - Fixed zero division bug
+# 71218-1155 - added end_date for multi-day reports
+# 80428-0144 - UTF8 cleanup
+# 80712-1007 - tally bug fixes and time display change
+# 81030-0346 - Added pause code stats
+# 81030-1924 - Added total non-pause and total logged-in time to pause code section
+# 81108-0716 - fixed user same-name bug
+# 81110-0056 - fixed pause code display bug
+# 90310-2039 - Admin header
+# 90508-0644 - Changed to PHP long tags
+# 90523-0935 - Rewrite of seconds to minutes and hours conversion
+# 90717-1500 - Changed to be multi-campaign, multi-user-group select
+# 90908-1058 - Added DEAD time statistics
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["INVIA"]))					{$INVIA=$_GET["INVIA"];}
+	elseif (isset($_POST["INVIA"]))		{$INVIA=$_POST["INVIA"];}
+
+
+if (strlen($shift)<2) {$shift='ALL';}
+
+$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&group=$group&user_group=$user_group&shift=$shift&DB=$DB";
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} +?> + + + + + +\n"; +echo "Agent Performance Dettagliata\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "
Date:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campagnas:
"; +echo "\n"; +echo "
Gruppi Utenti:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " REPORT \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PER FAVORE SELEZIONA UNA CAMPAGNA E UNA DATA E PREMI INVIA\n";
+echo " NOTE: stats taken from shift specified\n";
+}
+
+else
+{
+if ($shift == 'AM') 
+	{
+	$time_BEGIN=$AM_shift_BEGIN;
+	$time_END=$AM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+	}
+if ($shift == 'PM') 
+	{
+	$time_BEGIN=$PM_shift_BEGIN;
+	$time_END=$PM_shift_END;
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+	}
+if ($shift == 'ALL') 
+	{
+	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+	}
+$query_date_BEGIN = "$query_date $time_BEGIN";   
+$query_date_END = "$end_date $time_END";
+
+if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+else {$ugSQL='';}
+
+echo "Agent Performance Dettagliata                        $NOW_TIME\n";
+
+echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENTS Dettagliatas -------------\n\n";
+
+
+
+
+
+$statuses='-';
+$statusesTXT='';
+$statusesHEAD='';
+$statusesHTML='';
+$statusesARY[0]='';
+$j=0;
+$users='-';
+$usersARY[0]='';
+$user_namesARY[0]='';
+$k=0;
+
+$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_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 pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+#	$row[0] = ($row[0] - 1);	# subtract 1 for login/logout event compensation
+	
+	$calls[$i] =		$row[0];
+	$talk_sec[$i] =		$row[1];
+	$full_name[$i] =	$row[2];
+	$user[$i] =			$row[3];
+	$pause_sec[$i] =	$row[4];
+	$wait_sec[$i] =		$row[5];
+	$dispo_sec[$i] =	$row[6];
+	$status[$i] =		$row[7];
+	$dead_sec[$i] =		$row[8];
+	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+		{
+		$statusesTXT = sprintf("%8s", $status[$i]);
+		$statusesHEAD .= "----------+";
+		$statusesHTML .= " $statusesTXT |";
+		$statuses .= "$status[$i]-";
+		$statusesARY[$j] = $status[$i];
+		$j++;
+		}
+	if (!eregi("-$user[$i]-", $users))
+		{
+		$users .= "$user[$i]-";
+		$usersARY[$k] = $user[$i];
+		$user_namesARY[$k] = $full_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "CALL STATS BREAKDOWN:\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+while ($m < $k)
+	{
+	$Suser=$usersARY[$m];
+	$Sfull_name=$user_namesARY[$m];
+	$Stime=0;
+	$Scalls=0;
+	$Stalk_sec=0;
+	$Spause_sec=0;
+	$Swait_sec=0;
+	$Sdispo_sec=0;
+	$Sdead_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$Stalk_sec =	($Stalk_sec + $talk_sec[$i]);
+				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
+				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
+				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
+				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
+				$SstatusTXT = sprintf("%8s", $calls[$i]);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	$TOTcalls=($TOTcalls + $Scalls);
+	$TOTtime=($TOTtime + $Stime);
+	$TOTtotTALK=($TOTtotTALK + $Stalk_sec);
+	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
+	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
+	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
+	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
+		else {$Stalk_avg=0;}
+	if ( ($Scalls > 0) and ($Spause_sec > 0) ) {$Spause_avg = ($Spause_sec/$Scalls);}
+		else {$Spause_avg=0;}
+	if ( ($Scalls > 0) and ($Swait_sec > 0) ) {$Swait_avg = ($Swait_sec/$Scalls);}
+		else {$Swait_avg=0;}
+	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
+		else {$Sdispo_avg=0;}
+	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
+		else {$Sdead_avg=0;}
+
+	$RAWuser = $Suser;
+	$RAWcalls = $Scalls;
+	$Scalls =	sprintf("%6s", $Scalls);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{	
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
+	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
+	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
+	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
+	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
+	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
+	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
+	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
+	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
+
+	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
+	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
+	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
+	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
+	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
+	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
+	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
+	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
+	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
+	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
+	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
+
+	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
+
+	$TOPsorted_output[$m] = $Toutput;
+
+	if ($stage == 'ID')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'CALLS')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if ($stage == 'TIME')
+		{$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
+	if (!ereg("ID|TIME|CALLS",$stage))
+		{echo "$Toutput";}
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+if (ereg("ID|TIME|CALLS",$stage))
+	{
+	if (ereg("ID",$stage))
+		{sort($TOPsort, SORT_NUMERIC);}
+	if (ereg("TIME|CALLS",$stage))
+		{rsort($TOPsort, SORT_NUMERIC);}
+
+	$m=0;
+	while ($m < $k)
+		{
+		$sort_split = explode("-----",$TOPsort[$m]);
+		$i = $sort_split[1];
+		$sort_order[$m] = "$i";
+		echo "$TOPsorted_output[$i]";
+		$m++;
+		}
+	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $rows_to_print)
+		{
+		if ($Sstatus=="$status[$i]")
+			{
+			$Scalls =		($Scalls + $calls[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$SUMstatusTXT = sprintf("%8s", $Scalls);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+$TOTcalls =	sprintf("%7s", $TOTcalls);
+$TOT_AGENTS = sprintf("%-4s", $m);
+
+if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
+else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
+if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
+else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
+if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
+else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
+if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
+else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
+if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
+else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
+
+$TOTtime_MS =		sec_convert($TOTtime,'H'); 
+$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
+$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
+$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
+$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
+$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
+$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
+$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
+$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
+$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
+$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
+
+$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
+$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
+$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
+$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
+$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
+$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
+$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
+$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
+$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
+$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
+$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
+
+while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
+while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
+while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
+while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
+while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
+while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
+while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
+while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
+while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
+while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
+
+
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+echo "|  TOTALI        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
+echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
+
+echo "\n\n";
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$sub_statuses='-';
+$sub_statusesTXT='';
+$sub_statusesHEAD='';
+$sub_statusesHTML='';
+$sub_statusesARY=$MT;
+$j=0;
+$PCusers='-';
+$PCusersARY=$MT;
+$PCuser_namesARY=$MT;
+$k=0;
+$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + 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 pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$subs_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $subs_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$PCfull_name[$i] =	$row[0];
+	$PCuser[$i] =		$row[1];
+	$PCpause_sec[$i] =	$row[2];
+	$sub_status[$i] =	$row[3];
+	$PCnon_pause_sec[$i] =	$row[4];
+
+#	echo "$sub_status[$i]|$PCpause_sec[$i]\n";
+#	if ( (!eregi("-$sub_status[$i]-", $sub_statuses)) and (strlen($sub_status[$i])>0) )
+	if (!eregi("-$sub_status[$i]-", $sub_statuses))
+		{
+		$sub_statusesTXT = sprintf("%8s", $sub_status[$i]);
+		$sub_statusesHEAD .= "----------+";
+		$sub_statusesHTML .= " $sub_statusesTXT |";
+		$sub_statuses .= "$sub_status[$i]-";
+		$sub_statusesARY[$j] = $sub_status[$i];
+		$j++;
+		}
+	if (!eregi("-$PCuser[$i]-", $PCusers))
+		{
+		$PCusers .= "$PCuser[$i]-";
+		$PCusersARY[$k] = $PCuser[$i];
+		$PCuser_namesARY[$k] = $PCfull_name[$i];
+		$k++;
+		}
+
+	$i++;
+	}
+
+echo "PAUSE CODE BREAKDOWN:\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+
+### BEGIN loop through each user ###
+$m=0;
+$Suser_ct = count($usersARY);
+$TOTtotNONPAUSE = 0;
+$TOTtotTOTAL = 0;
+
+while ($m < $k)
+	{
+	$d=0;
+	while ($d < $Suser_ct)
+		{
+		if ($usersARY[$d] === "$PCusersARY[$m]")
+			{$pcPAUSEtotal = $PAUSEtotal[$d];}
+		$d++;
+		}
+	$Suser=$PCusersARY[$m];
+	$Sfull_name=$PCuser_namesARY[$m];
+	$Spause_sec=0;
+	$Snon_pause_sec=0;
+	$Stotal_sec=0;
+	$SstatusesHTML='';
+
+	### BEGIN loop through each status ###
+	$n=0;
+	while ($n < $j)
+		{
+		$Sstatus=$sub_statusesARY[$n];
+		$SstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $subs_to_print)
+			{
+			if ( ($Suser=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") )
+				{
+				$Spause_sec =	($Spause_sec + $PCpause_sec[$i]);
+				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
+				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
+
+				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
+				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
+
+				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
+				$SstatusesHTML .= " $SstatusTXT |";
+				$status_found++;
+				}
+			$i++;
+			}
+		if ($status_found < 1)
+			{
+			$SstatusesHTML .= "        0 |";
+			}
+		### END loop through each stat line ###
+		$n++;
+		}
+	### END loop through each status ###
+	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
+
+	if ($non_latin < 1)
+		{
+		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
+		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+		$Suser =		sprintf("%-8s", $Suser);
+		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+		}
+	else
+		{
+		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+		$Suser =	sprintf("%-24s", $Suser);
+		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+		}
+
+	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
+	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
+
+	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
+	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
+	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
+
+	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
+	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
+	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
+
+	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
+
+	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
+
+	echo "$BOTTOMoutput";
+
+	$m++;
+	}
+### END loop through each user ###
+
+
+
+### BEGIN sort through output to display properly ###
+#if (ereg("ID|TIME|CALLS",$stage))
+#	{
+#	$n=0;
+#	while ($n <= $m)
+#		{
+#		$i = $sort_order[$m];
+#		echo "$BOTTOMsorted_output[$i]";
+#		$m--;
+#		}
+#	}
+### END sort through output to display properly ###
+
+
+
+###### LAST LINE FORMATTING ##########
+### BEGIN loop through each status ###
+$SUMstatusesHTML='';
+$TOTtotPAUSE=0;
+$n=0;
+while ($n < $j)
+	{
+	$Scalls=0;
+	$Sstatus=$sub_statusesARY[$n];
+	$SUMstatusTXT='';
+	### BEGIN loop through each stat line ###
+	$i=0; $status_found=0;
+	while ($i < $subs_to_print)
+		{
+		if ($Sstatus=="$sub_status[$i]")
+			{
+			$Scalls =		($Scalls + $PCpause_sec[$i]);
+			$status_found++;
+			}
+		$i++;
+		}
+	### END loop through each stat line ###
+	if ($status_found < 1)
+		{
+		$SUMstatusesHTML .= "        0 |";
+		}
+	else
+		{
+		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
+
+		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
+		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
+
+		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
+		$SUMstatusesHTML .= " $SUMstatusTXT |";
+		}
+	$n++;
+	}
+### END loop through each status ###
+
+	$TOT_AGENTS = sprintf("%-4s", $m);
+
+	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
+	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
+	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
+
+	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
+	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
+	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
+
+	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
+	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
+
+
+echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
+echo "|  TOTALI        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
+echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
+
+echo "\n\n";
+
+}
+
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_status_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_status_detail.php new file mode 100644 index 00000000..2c8b8083 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_status_detail.php @@ -0,0 +1,666 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-1554 - First build +# 90225-2252 - Added CSV download option +# 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Status Dettagliata Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "Seleziona una campagna o utente GRUPPO E DATA A TEMPO E CLICCA SOPRA INVIA\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Status Dettagliata Report                     $NOW_TIME\n";
+
+		echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+		echo "---------- AGENT Dettagliatas -------------\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Status Dettagliata Report                     $NOW_TIME\n";
+		$file_output .= "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+	$statuses='-';
+	$statusesTXT='';
+	$statusesHEAD='';
+	$statusesHTML='';
+	$statusesFILE='';
+	$statusesARY[0]='';
+	$j=0;
+	$users='-';
+	$usersARY[0]='';
+	$user_namesARY[0]='';
+	$k=0;
+
+	$stmt="select count(*) as calls,full_name,vicidial_users.user,status 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 $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3])))
+			{
+			$calls[$i] =		$row[0];
+			$full_name[$i] =	$row[1];
+			$user[$i] =			$row[2];
+			$status[$i] =		$row[3];
+			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
+				{
+				$statusesTXT = sprintf("%8s", $status[$i]);
+				$statusesHEAD .= "----------+";
+				$statusesHTML .= " $statusesTXT |";
+				$statusesFILE .= "$statusesTXT,";
+				$statuses .= "$status[$i]-";
+				$statusesARY[$j] = $status[$i];
+				$j++;
+				}
+			if (!eregi("-$user[$i]-", $users))
+				{
+				$users .= "$user[$i]-";
+				$usersARY[$k] = $user[$i];
+				$user_namesARY[$k] = $full_name[$i];
+				$k++;
+				}
+			}
+		$i++;
+		}
+
+	if ($file_download < 1)
+		{
+		echo "CALL STATS BREAKDOWN:\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "| USER NAME       | ID       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
+		}
+
+
+	### BEGIN loop through each user ###
+	$m=0;
+	$CIScountTOT=0;
+	$DNCcountTOT=0;
+	while ($m < $k)
+		{
+		$Suser=$usersARY[$m];
+		$Sfull_name=$user_namesARY[$m];
+		$Scalls=$calls[$m];
+		$SstatusesHTML='';
+		$SstatusesFILE='';
+		$CIScount=0;
+		$DNCcount=0;
+
+		### BEGIN loop through each status ###
+		$n=0;
+		while ($n < $j)
+			{
+			$Sstatus=$statusesARY[$n];
+			$SstatusTXT='';
+			### BEGIN loop through each stat line ###
+			$i=0; $status_found=0;
+			while ($i < $rows_to_print)
+				{
+				if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
+					{
+					$Scalls =		($Scalls + $calls[$i]);
+					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
+						{
+						$CIScount =	($CIScount + $calls[$i]);
+						$CIScountTOT =	($CIScountTOT + $calls[$i]);
+						}
+					if (eregi("DNC", $status[$i]))
+						{
+						$DNCcount =	($DNCcount + $calls[$i]);
+						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
+						}
+					$SstatusTXT = sprintf("%8s", $calls[$i]);
+					$SstatusesHTML .= " $SstatusTXT |";
+					$SstatusesFILE .= "$SstatusTXT,";
+					$status_found++;
+					}
+				$i++;
+				}
+			if ($status_found < 1)
+				{
+				$SstatusesHTML .= "        0 |";
+				}
+			### END loop through each stat line ###
+			$n++;
+			}
+		### END loop through each status ###
+		$TOTcalls=($TOTcalls + $Scalls);
+
+		$RAWuser = $Suser;
+		$RAWcalls = $Scalls;
+		$RAWcis = $CIScount;
+		$Scalls =	sprintf("%6s", $Scalls);
+		$CIScount =	sprintf("%6s", $CIScount);
+
+		if ($non_latin < 1)
+			{
+			 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
+				while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
+			 $Suser =		sprintf("%-8s", $Suser);
+				while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
+			}
+		else
+			{	
+				$Sfull_name=	sprintf("%-45s", $Sfull_name); 
+			 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
+
+				$Suser =	sprintf("%-24s", $Suser);
+			 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
+			}
+
+		if ( ($DNCcount < 1) or ($CIScount < 1) )
+			{$DNCcountPCTs=0;}
+		else
+			{
+			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
+			}
+		$RAWdncPCT = $DNCcountPCTs;
+	#	$DNCcountPCTs = round($DNCcountPCTs,2);
+		$DNCcountPCTs = round($DNCcountPCTs);
+		$rawDNCcountPCTs = $DNCcountPCTs;
+	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
+		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sfull_name | $Suser | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
+			}
+		else
+			{
+			$fileToutput = "$Sfull_name,$RAWuser,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'CALLS')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TIME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$Stime;
+			}
+		if ($stage == 'CI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcis;
+			}
+		if ($stage == 'DNCCI')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWdncPCT;
+			}
+		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+		$m++;
+		}
+	### END loop through each user ###
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+
+
+	### BEGIN sort through output to display properly ###
+	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
+		{
+		if (ereg("ID",$stage))
+			{sort($TOPsort, SORT_NUMERIC);}
+		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
+			{rsort($TOPsort, SORT_NUMERIC);}
+
+		$m=0;
+		while ($m < $k)
+			{
+			$sort_split = explode("-----",$TOPsort[$m]);
+			$i = $sort_split[1];
+			$sort_order[$m] = "$i";
+			if ($file_download < 1)
+				{echo "$TOPsorted_output[$i]";}
+			else
+				{$file_output .= "$TOPsorted_outputFILE[$i]";}
+			$m++;
+			}
+		}
+	### END sort through output to display properly ###
+
+
+
+	###### LAST LINE FORMATTING ##########
+	### BEGIN loop through each status ###
+	$SUMstatusesHTML='';
+	$n=0;
+	while ($n < $j)
+		{
+		$Scalls=0;
+		$Sstatus=$statusesARY[$n];
+		$SUMstatusTXT='';
+		### BEGIN loop through each stat line ###
+		$i=0; $status_found=0;
+		while ($i < $rows_to_print)
+			{
+			if ($Sstatus=="$status[$i]")
+				{
+				$Scalls =		($Scalls + $calls[$i]);
+				$status_found++;
+				}
+			$i++;
+			}
+		### END loop through each stat line ###
+		if ($status_found < 1)
+			{
+			$SUMstatusesHTML .= "        0 |";
+			}
+		else
+			{
+			$SUMstatusTXT = sprintf("%8s", $Scalls);
+			$SUMstatusesHTML .= " $SUMstatusTXT |";
+			$SUMstatusesFILE .= "$SUMstatusTXT,";
+			}
+		$n++;
+		}
+	### END loop through each status ###
+
+	$TOTcalls = sprintf("%7s", $TOTcalls);
+	$CIScountTOT = sprintf("%7s", $CIScountTOT);
+	$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+	$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
+		{$DNCcountPCT=0;}
+	else
+		{
+		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
+		}
+	#$DNCcountPCT = round($DNCcountPCT,2);
+	$DNCcountPCT = round($DNCcountPCT);
+	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
+	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
+
+	if ($file_download < 1)
+		{
+		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
+		echo "|  TOTALI        AGENTS:$TOT_AGENTS | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
+		echo "+----------------------------+--------+--------+--------+$statusesHEAD\n";
+
+		echo "\n\n
"; + } + else + { + $file_output .= "TOTALI,$TOT_AGENTS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_STATUS$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +echo "
\n"; +echo "
Date:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campagnas:
"; +echo "\n"; +echo "
Gruppi Utenti:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORT \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; + +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n\n\n";
+
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+
+?>
+
+
\ No newline at end of file
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_time_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_time_detail.php
new file mode 100644
index 00000000..a98137e5
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_time_detail.php
@@ -0,0 +1,867 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+# 90522-0723 - First build
+# 90908-1103 - Added DEAD time stats
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='NAME';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+if (!isset($end_date)) {$end_date = $NOW_DATE;}
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
\n";
+	}
+
+if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date $time_BEGIN";   
+	$query_date_END = "$end_date $time_END";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "Agent Time Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock records per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+
+	### BEGIN gather pause code information by user IDs
+	$sub_statuses='-';
+	$sub_statusesTXT='';
+	$sub_statusesHEAD='';
+	$sub_statusesHTML='';
+	$sub_statusesFILE='';
+	$sub_statusesARY=$MT;
+	$sub_status_count=0;
+	$PCusers='-';
+	$PCusersARY=$MT;
+	$PCuser_namesARY=$MT;
+	$user_count=0;
+	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$subs_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $subs_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$PCuser[$i] =		$row[0];
+		$PCpause_sec[$i] =	$row[1];
+		$sub_status[$i] =	$row[2];
+
+		if (!eregi("-$sub_status[$i]-", $sub_statuses))
+			{
+			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
+			$sub_statusesHEAD .= "------------+";
+			$sub_statusesHTML .= " $sub_statusesTXT |";
+			$sub_statusesFILE .= ",$sub_status[$i]";
+			$sub_statuses .= "$sub_status[$i]-";
+			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
+			$sub_status_count++;
+			}
+		if (!eregi("-$PCuser[$i]-", $PCusers))
+			{
+			$PCusers .= "$PCuser[$i]-";
+			$PCusersARY[$user_count] = $PCuser[$i];
+			$user_count++;
+			}
+
+		$i++;
+		}
+	### END gather pause code information by user IDs
+
+
+	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
+	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$rows_to_print = mysql_num_rows($rslt);
+	$i=0;
+	$j=0;
+	$k=0;
+	$uc=0;
+	while ($i < $rows_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$user =			$row[0];
+		$wait =			$row[1];
+		$talk =			$row[2];
+		$dispo =		$row[3];
+		$pause =		$row[4];
+		$lead =			$row[5];
+		$status =		$row[6];
+		$dead =			$row[7];
+
+		if ($wait > 30000) {$wait=0;}
+		if ($talk > 30000) {$talk=0;}
+		if ($dispo > 30000) {$dispo=0;}
+		if ($pause > 30000) {$pause=0;}
+		if ($dead > 30000) {$dead=0;}
+		$TOTwait =	($TOTwait + $wait);
+		$TOTtalk =	($TOTtalk + $talk);
+		$TOTdispo =	($TOTdispo + $dispo);
+		$TOTpause =	($TOTpause + $pause);
+		$TOTdead =	($TOTdead + $dead);
+		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
+		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
+		
+		$user_found=0;
+		if ($uc < 1) 
+			{
+			$Suser[$uc] = $user;
+			$uc++;
+			}
+		$m=0;
+		while ( ($m < $uc) and ($m < 50000) )
+			{
+			if ($user == "$Suser[$m]")
+				{
+				$user_found++;
+
+				$Swait[$m] =	($Swait[$m] + $wait);
+				$Stalk[$m] =	($Stalk[$m] + $talk);
+				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
+				$Spause[$m] =	($Spause[$m] + $pause);
+				$Sdead[$m] =	($Sdead[$m] + $dead);
+				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
+				}
+			$m++;
+			}
+		if ($user_found < 1)
+			{
+			$Scalls[$uc] =	0;
+			$Suser[$uc] =	$user;
+			$Swait[$uc] =	$wait;
+			$Stalk[$uc] =	$talk;
+			$Sdispo[$uc] =	$dispo;
+			$Spause[$uc] =	$pause;
+			$Sdead[$uc] =	$dead;
+			if ($lead > 0) {$Scalls[$uc]++;}
+			$uc++;
+			}
+
+		$i++;
+		}
+	if ($DB) {echo "Done gathering $i records, analyzing...
\n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; +echo "
Campaigns:
"; +echo "\n"; +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
\n"; +echo "\n"; +echo "
\n\n\n\n\n\n\n\n";
+
+if ($stage == 'NAME') {$k=0;}
+$m=0;
+while ($m < $k)
+	{
+	$sort_split = explode("-----",$TOPsort[$m]);
+	$i = $sort_split[1];
+	$sort_order[$m] = "$i";
+
+	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
+		{echo "                              \n";}
+	else
+		{
+		echo "                              ";
+		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
+		$h=0;
+		while ($h <= $TOPsortPLOT)
+			{
+			echo " ";
+			$h++;
+			}
+		echo "\n";
+		}
+	$m++;
+	}
+
+echo "\n";
+##### END horizontal yellow transparent bar graph overlay on top of agent stats
+
+?>
+
+
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_time_sheet.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_time_sheet.php
new file mode 100644
index 00000000..0d323d5c
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_time_sheet.php
@@ -0,0 +1,311 @@
+    LICENSE: AGPLv2
+#
+# CHANGES
+#
+# 60619-1729 - Added variable filtering to eliminate SQL injection attack threat
+#            - Added required user/pass to gain access to this page
+# 80624-0132 - Added vicidial_timeclock entries
+# 90310-0745 - Added admin header
+# 90508-0644 - Changed to PHP long tags
+# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
+#
+
+require("dbconnect.php");
+require("functions.php");
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$ss_conf_ct = mysql_num_rows($rslt);
+if ($ss_conf_ct > 0)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =						$row[0];
+	$SSoutbound_autodial_active =		$row[1];
+	$user_territories_active =			$row[2];
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["agent"]))				{$agent=$_GET["agent"];}
+	elseif (isset($_POST["agent"]))		{$agent=$_POST["agent"];}
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["calls_summary"]))			{$calls_summary=$_GET["calls_summary"];}
+	elseif (isset($_POST["calls_summary"]))	{$calls_summary=$_POST["calls_summary"];}
+if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))	{$submit=$_POST["submit"];}
+if (isset($_GET["INVIA"]))				{$INVIA=$_GET["INVIA"];}
+	elseif (isset($_POST["INVIA"]))	{$INVIA=$_POST["INVIA"];}
+
+$user=$agent;
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n";
+    exit;
+	}
+
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($query_date)) {$query_date = $NOW_DATE;}
+
+?>
+
+
+
+
+
+\n";
+echo "Agent Time Sheet";
+
+
+##### BEGIN Set variables to make header show properly #####
+$ADD =					'3';
+$hh =					'users';
+$LOGast_admin_access =	'1';
+$ADMIN =				'admin.php';
+$page_width='770';
+$section_width='750';
+$header_font_size='3';
+$subheader_font_size='2';
+$subcamp_font_size='2';
+$header_selected_bold='<b>';
+$header_nonselected_bold='';
+$users_color =		'#FFFF99';
+$users_font =		'BLACK';
+$users_color =		'#E6E6E6';
+$subcamp_color =	'#C6C6C6';
+##### END Set variables to make header show properly #####
+
+require("admin_header.php");
+
+echo "<TABLE WIDTH=$page_width BGCOLOR=\"#F0F5FE\" cellpadding=2 cellspacing=0><TR BGCOLOR=\"#F0F5FE\"><TD>\n";
+
+echo "AgentTime Sheetfor: $user\n";
+echo "<BR>\n";
+echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>   \n";
+echo "Date: <INPUT TYPE=TEXT NAME=query_date SIZE=19 MAXLENGTH=19 VALUE=\"$query_date\">\n";
+echo "Utente ID: <INPUT TYPE=TEXT NAME=agent SIZE=10 MAXLENGTH=20 VALUE=\"$agent\">\n";
+echo "<INPUT TYPE=Submit NAME=INVIA VALUE=INVIA>\n";
+echo "</FORM>\n\n";
+
+echo "<PRE><FONT SIZE=3>\n";
+
+
+if (!$agent)
+{
+echo "\n";
+echo "PLEASE SELECT AN AGENT ID AND DATE-TIME ABOVE AND CLICK INVIA\n";
+echo " NOTE: stats taken from available agent log data\n";
+}
+
+else
+{
+$query_date_BEGIN = "$query_date 00:00:00";   
+$query_date_END = "$query_date 23:59:59";
+$time_BEGIN = "00:00:00";   
+$time_END = "23:59:59";
+
+$stmt="select full_name from vicidial_users where user='$agent';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$full_name = $row[0];
+
+echo "AgentTime Sheet                            $NOW_TIME\n";
+
+echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n";
+
+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 <= '" . 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);
+	if ($DB) {echo "$stmt\n";}
+	$row=mysql_fetch_row($rslt);
+
+	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
+
+	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
+	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
+	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
+	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
+	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
+	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
+	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
+	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
+	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
+
+	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
+	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
+	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
+	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
+	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
+	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
+	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
+	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
+	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
+
+	echo "TOTALE CHIAMATE TAKEN: $row[0]\n";
+	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
+	echo "PAUSE TIME:              $pfPAUSE_TIME_HMS     AVERAGE: $pfPAUSE_AVG_MS\n";
+	echo "WAIT TIME:               $pfWAIT_TIME_HMS     AVERAGE: $pfWAIT_AVG_MS\n";
+	echo "WRAPUP TIME:             $pfWRAPUP_TIME_HMS     AVERAGE: $pfWRAPUP_AVG_MS\n";
+	echo "----------------------------------------------------------------\n";
+	echo "TOTAL ACTIVE AGENT TIME: $pfTOTAL_TIME_HMS\n";
+
+	echo "\n";
+	}
+else
+	{
+	echo "<a href=\"$PHP_SELF?calls_summary=1&agent=$agent&query_date=$query_date\">Call Activity Summary</a>\n\n";
+
+	}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "FIRST LOGIN:          $row[0]\n";
+$start = $row[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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+echo "LAST LOG ACTIVITY:    $row[0]\n";
+$end = $row[1];
+
+$login_time = ($end - $start);
+$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
+$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
+
+echo "-----------------------------------------\n";
+echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
+
+
+### timeclock records
+
+
+##### vicidial_timeclock log records for user #####
+
+$total_login_time=0;
+$SQday_ARY =	explode('-',$query_date_BEGIN);
+$EQday_ARY =	explode('-',$query_date_END);
+$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
+$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
+
+echo "\n";
+
+echo "<B>TIMECLOCK TIEMPO LOGIN/LOGOUT:</B>\n";
+echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n";
+echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>ORE:MINUTI</td></tr>\n";
+
+	$stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='$agent' and event_epoch >= '$SQepoch'  and event_epoch <= '$EQepoch';";
+	if ($DB>0) {echo "|$stmt|";}
+	$rslt=mysql_query($stmt, $link);
+	$events_to_print = mysql_num_rows($rslt);
+
+	$total_logs=0;
+	$o=0;
+	while ($events_to_print > $o) {
+		$row=mysql_fetch_row($rslt);
+		if ( ($row[0]=='START') or ($row[0]=='LOGIN') )
+			{$bgcolor='bgcolor="#B9CBFD"';} 
+		else
+			{$bgcolor='bgcolor="#9BB9FB"';}
+
+		$TC_log_date = date("Y-m-d H:i:s", $row[1]);
+
+		$manager_edit='';
+		if (strlen($row[6])>0) {$manager_edit = ' * ';}
+
+		if (ereg("LOGIN", $row[0]))
+			{
+			$login_sec='';
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> </td></tr>\n";
+			}
+		if (ereg("LOGOUT", $row[0]))
+			{
+			$login_sec = $row[3];
+			$total_login_time = ($total_login_time + $login_sec);
+			$event_hours_minutes =		sec_convert($login_sec,'H'); 
+
+			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
+			echo "<td align=right><font size=2>$manager_edit</td>";
+			echo "<td align=right><font size=2>$row[0]</td>";
+			echo "<td align=right><font size=2> $TC_log_date</td>\n";
+			echo "<td align=right><font size=2> $row[4]</td>\n";
+			echo "<td align=right><font size=2> $row[2]</td>\n";
+			echo "<td align=right><font size=2> $event_hours_minutes";
+			if ($DB) {echo " - $total_login_time - $login_sec";}
+			echo "</td></tr>\n";
+			}
+		$o++;
+	}
+if (strlen($login_sec)<1)
+	{
+	$login_sec = ($STARTtime - $row[1]);
+	$total_login_time = ($total_login_time + $login_sec);
+		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
+	}
+$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
+
+	if ($DB) {echo " - $total_login_time - $login_sec";}
+
+echo "<tr><td align=right><font size=2> </td>";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right><font size=2> </td>\n";
+echo "<td align=right colspan=2><font size=2><font size=2>TOTALE </td>\n";
+echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
+
+echo "</TABLE>\n";
+
+
+
+}
+
+
+
+?>
+
+</BODY></HTML>
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_timeclock_detail.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_timeclock_detail.php
new file mode 100644
index 00000000..efcc2bad
--- /dev/null
+++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_agent_timeclock_detail.php
@@ -0,0 +1,631 @@
+<?php 
+# AST_agent_timeclock_detail.php
+# 
+# Pulls all timeclock records for an agent
+#
+# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
+#
+# CHANGES
+# 90602-2244 - First build
+#
+
+
+require("dbconnect.php");
+require("functions.php");
+
+$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
+$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
+$PHP_SELF=$_SERVER['PHP_SELF'];
+if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
+	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
+if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
+	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
+if (isset($_GET["group"]))					{$group=$_GET["group"];}
+	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
+if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
+	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
+if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
+	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
+if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
+	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
+if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
+	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
+if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
+	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
+if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
+	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
+if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
+	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
+
+if (strlen($shift)<2) {$shift='ALL';}
+if (strlen($stage)<2) {$stage='ID';}
+
+#############################################
+##### START SYSTEM_SETTINGS LOOKUP #####
+$stmt = "SELECT use_non_latin FROM system_settings;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$qm_conf_ct = mysql_num_rows($rslt);
+$i=0;
+while ($i < $qm_conf_ct)
+	{
+	$row=mysql_fetch_row($rslt);
+	$non_latin =					$row[0];
+	$i++;
+	}
+##### END SETTINGS LOOKUP #####
+###########################################
+
+$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 and view_reports='1';";
+if ($DB) {echo "|$stmt|\n";}
+if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$auth=$row[0];
+
+  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;
+	}
+
+$MT[0]='';
+$NOW_DATE = date("Y-m-d");
+$NOW_TIME = date("Y-m-d H:i:s");
+$STARTtime = date("U");
+if (!isset($group)) {$group = '';}
+if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
+if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
+$query_dateURL = ereg_replace(' ','+',$query_date);
+$end_dateURL = ereg_replace(' ','+',$end_date);
+
+$stmt="select campaign_id from vicidial_campaigns;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$campaigns_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $campaigns_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$groups[$i] =$row[0];
+	$i++;
+	}
+$stmt="select user_group from vicidial_user_groups;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$user_groups_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $user_groups_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$user_groups[$i] =$row[0];
+	$i++;
+	}
+
+$i=0;
+$group_string='|';
+$group_ct = count($group);
+while($i < $group_ct)
+	{
+	$group_string .= "$group[$i]|";
+	$group_SQL .= "'$group[$i]',";
+	$groupQS .= "&group[]=$group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
+	{$group_SQL = "";}
+else
+	{
+	$group_SQL = eregi_replace(",$",'',$group_SQL);
+	$group_SQL = "and campaign_id IN($group_SQL)";
+	}
+
+$i=0;
+$user_group_string='|';
+$user_group_ct = count($user_group);
+while($i < $user_group_ct)
+	{
+	$user_group_string .= "$user_group[$i]|";
+	$user_group_SQL .= "'$user_group[$i]',";
+	$user_groupQS .= "&user_group[]=$user_group[$i]";
+	$i++;
+	}
+if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
+	{$user_group_SQL = "";}
+else
+	{
+	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
+	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
+	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
+	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
+	}
+
+if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i<BR>";}
+
+$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$statha_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $statha_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	$pause_code[$i] =		"$row[0]";
+	$pause_code_name[$i] =	"$row[1]";
+	$i++;
+	}
+
+$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB";
+
+if ($file_download < 1)
+	{
+	?>
+
+	<HTML>
+	<HEAD>
+	<STYLE type="text/css">
+	<!--
+	   .yellow {color: white; background-color: yellow}
+	   .red {color: white; background-color: red}
+	   .blue {color: white; background-color: blue}
+	   .purple {color: white; background-color: purple}
+	-->
+	 </STYLE>
+
+	<?php
+	echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
+	echo "<TITLE>User Time-Clock Detail\n";
+	echo "";
+
+	$short_header=1;
+
+	require("admin_header.php");
+
+	echo "\n";
+	echo "\n";
+	echo "
\n";
+	}
+
+if (strlen($user_group[0]) < 1)
+	{
+	echo "\n";
+	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
+	echo " NOTE: stats taken from shift specified\n";
+	}
+
+else
+	{
+	if ($shift == 'TEST') 
+		{
+		$time_BEGIN = "09:45:00";  
+		$time_END = "10:00:00";
+		}
+	if ($shift == 'AM') 
+		{
+		$time_BEGIN=$AM_shift_BEGIN;
+		$time_END=$AM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
+		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
+		}
+	if ($shift == 'PM') 
+		{
+		$time_BEGIN=$PM_shift_BEGIN;
+		$time_END=$PM_shift_END;
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
+		}
+	if ($shift == 'ALL') 
+		{
+		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
+		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
+		}
+	$query_date_BEGIN = "$query_date";   
+	$query_date_END = "$end_date";
+
+	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
+	else {$ugSQL='';}
+
+	if ($file_download < 1)
+		{
+		echo "User Time-Clock Detail                     $NOW_TIME\n";
+
+		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+	else
+		{
+		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
+		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
+		}
+
+
+
+	############################################################################
+	##### BEGIN gathering information from the database section
+	############################################################################
+
+	### BEGIN gather user IDs and names for matching up later
+	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$users_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $users_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$ULname[$i] =	$row[0];
+		$ULuser[$i] =	$row[1];
+		$ULgroup[$i] =	$row[2];
+		$i++;
+		}
+	### END gather user IDs and names for matching up later
+
+
+	### BEGIN gather timeclock time totals per agent
+	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$punches_to_print = mysql_num_rows($rslt);
+	$i=0;
+	while ($i < $punches_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$TCuser[$i] =	$row[0];
+		$TCtime[$i] =	$row[1];
+		$uc++;
+		$i++;
+		}
+	### END gather timeclock records per agent
+
+	############################################################################
+	##### END gathering information from the database section
+	############################################################################
+
+
+
+
+	##### BEGIN print the output to screen or put into file output variable
+	if ($file_download < 1)
+		{
+		echo "AGENT TIME-CLOCK DETAIL:\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
+		echo "+-----------------+----------+----------------------+------------+--------------------\n";
+		}
+	else
+		{
+		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
+		}
+	##### END print the output to screen or put into file output variable
+
+
+
+
+
+	############################################################################
+	##### BEGIN formatting data for output section
+	############################################################################
+
+	##### BEGIN loop through each user formatting data for output
+	$AUTOLOGOUTflag=0;
+	$m=0;
+	while ( ($m < $uc) and ($m < 50000) )
+		{
+		$TCdetail='';
+		$rawTCdetail='';
+		$n=0;
+		$user_name_found=0;
+		$RAWuser=$TCuser[$m];
+		while ($n < $users_to_print)
+			{
+			if ($TCuser[$m] == "$ULuser[$n]")
+				{
+				$user_name_found++;
+				$RAWname = $ULname[$n];
+				$RAWgroup = $ULgroup[$n];
+				$Sname[$m] = $ULname[$n];
+				$Sgroup[$m] = $ULgroup[$n];
+				}
+			$n++;
+			}
+		if ($user_name_found < 1)
+			{
+			$RAWname =		"NOT IN SYSTEM";
+			$RAWgroup =		"GROUP NOT IN SYSTEM";
+			$Sname[$m] =	$RAWname;
+			}
+
+		$n=0;
+		$punches_found=0;
+		while ($n < $punches_to_print)
+			{
+			if ($RAWuser == "$TCuser[$n]")
+				{
+				$punches_found++;
+				$RAWtimeTCsec =		$TCtime[$n];
+				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
+				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
+				$RAWtimeTC =		$StimeTC[$m];
+				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+				}
+			$n++;
+			}
+		if ($punches_found < 1)
+			{
+			$RAWtimeTCsec =		"0";
+			$StimeTC[$m]=		"0:00"; 
+			$RAWtimeTC =		$StimeTC[$m];
+			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
+			}
+
+		### Check if the user had an AUTOLOGOUT timeclock event during the time period
+		$TCuserAUTOLOGOUT = ' ';
+		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
+		$rslt=mysql_query($stmt, $link);
+		if ($DB) {echo "$stmt\n";}
+		$TC_results = mysql_num_rows($rslt);
+		$k=0;
+		while ($TC_results > $k)
+			{
+			$TCentryAUTOLOGOUT = ' ';
+			$row=mysql_fetch_row($rslt);
+			$event_epoch =	$row[0];
+			$event_date =	$row[1];
+			$login_sec =	$row[2];
+			$event =		$row[3];
+			$user_group =	$row[4];
+			$date_detail = explode(' ',$event_date);
+
+			if ($event == 'AUTOLOGOUT')
+				{
+				$TCentryAUTOLOGOUT = '*';
+				$TCuserAUTOLOGOUT =	'*';
+				$AUTOLOGOUTflag++;
+				}
+			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
+			$rawTCdetail .= "$date_detail[1],";
+			$k++;
+			}
+
+		if ($TC_results > 0)
+			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
+
+		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
+		$SORTname =	sprintf("%-20s", $Sname[$m]);
+		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
+		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
+		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
+		$SORTname = ereg_replace(" ",'0',$SORTname);
+
+		if ($non_latin < 1)
+			{
+			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
+			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
+			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
+			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
+			}
+		else
+			{	
+			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
+			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
+			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
+			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
+			}
+
+
+		if ($file_download < 1)
+			{
+			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
+			}
+		else
+			{
+			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
+			}
+
+		$TOPsorted_output[$m] = $Toutput;
+		$TOPsorted_outputFILE[$m] = $fileToutput;
+
+		if ($stage == 'NAME')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'ID')
+			{
+			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWcalls;
+			}
+		if ($stage == 'TCLOCK')
+			{
+			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$RAWtimeTCsec;
+			}
+		if ($stage == 'GROUP')
+			{
+			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
+			$TOPsortTALLY[$m]=$SORTgroup;
+			}
+		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
+			if ($file_download < 1)
+				{echo "$Toutput";}
+			else
+				{$file_output .= "$fileToutput";}
+
+		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
+
+#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
+		$m++;
+		}
+	##### END loop through each user formatting data for output
+
+
+	$TOT_AGENTS = sprintf("%4s", $m);
+	$k=$m;
+
+	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
\n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
"; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
\n"; +echo "
Dates:
"; +echo "\n"; +echo "\n"; +echo "
to
\n"; + +# echo "
Campaigns:
"; +# echo "\n"; + +echo "
User Groups:
"; +echo "\n"; +echo "
Shift:
"; +echo "

\n"; +echo "\n"; +echo "
        "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
"; + +echo "
\n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_inboundEXTstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_inboundEXTstats.php new file mode 100644 index 00000000..ec4e09d9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_inboundEXTstats.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$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 and view_reports='1';"; + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.11.20';} + +$stmt="select extension,full_number,inbound_name from inbound_numbers where server_ip='" . mysql_real_escape_string($server_ip) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$inbound_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + $inbound[$i] =$row[0]; + $fullnum[$i] =$row[1]; + $inbname[$i] =$row[2]; + $i++; + } +?> + + + + + +\n"; +#echo"\n"; +echo "ASTERISK: Statistiche Chiamate In Entrata\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "SELEZIONARE UN NUMERO E UNA DATA QUI IN ALTO E CLICCARE SU INVIA\n";
+}
+
+else
+{
+
+
+echo "ASTERISK: Statistiche Chiamate In Entrata                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALI\n";
+
+$extenSQL = "and extension='" . mysql_real_escape_string($group) . "'";
+if (eregi("\*",$group))
+	{$extenSQL = "and extension LIKE \"%$group\"";}
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$average_hold_seconds = ($row[1] / $row[0]);
+$average_hold_seconds = round($average_hold_seconds, 0);
+$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+
+echo "Totale chiamate ricevute da questo numero:       $TOTALcalls\n";
+echo "Average Call Length(seconds) for all Calls:   $average_hold_seconds\n";
+
+echo "\n";
+echo "---------- ABBATTUTE\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$DROPcalls =	sprintf("%10s", $row[0]);
+$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
+$DROPpercent = round($DROPpercent, 0);
+
+if ($row[0])
+	{
+	$average_hold_seconds = ($row[1] / $row[0]);
+	$average_hold_seconds = round($average_hold_seconds, 0);
+	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
+	}
+else {$DROPpercent=0;   $average_hold_seconds=0;}
+echo "Total DROP Calls:   (less than 10 seconds)    $DROPcalls  $DROPpercent%\n";
+echo "Average Call Length(seconds) for DROP Calls:  $average_hold_seconds\n";
+
+
+##############################
+#########  CALLS STATS
+
+echo "\n";
+echo "---------- CALL LISTINGS\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+echo "| CALLERID             | CALLERIDNAME         | LENGTH | DATE TIME           |\n";
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$CID =			sprintf("%-20s", $row[0]);
+	$CIDname =		sprintf("%-20s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}
+	$datetime =		sprintf("%-19s", $row[3]);
+	$USERavgTALK =	$row[2];
+
+	$USERavgTALK_M = ($USERavgTALK / 60);
+	$USERavgTALK_M = round($USERavgTALK_M, 2);
+	$USERavgTALK_M_int = intval("$USERavgTALK_M");
+	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
+	$USERavgTALK_S = ($USERavgTALK_S * 60);
+	$USERavgTALK_S = round($USERavgTALK_S, 0);
+	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
+	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
+	$USERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
+
+	echo "| $CID | $CIDname | $USERavgTALK_MS | $datetime |\n";
+
+	$i++;
+	}
+
+echo "+----------------------+----------------------+--------+---------------------+\n";
+
+##############################
+#########  TIME STATS
+
+if ($output == 'FULL')
+	{
+
+	echo "\n";
+	echo "---------- STATISTICHE TEMPO\n";
+
+	echo "\n";
+
+	$hi_hour_count=0;
+	$last_full_record=0;
+	$i=0;
+	$h=0;
+	while ($i <= 96)
+		{
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$hour_count[$i] = $row[0];
+		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
+		if ($hour_count[$i] > 0) {$last_full_record = $i;}
+		$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);
+		if ($DB) {echo "$stmt\n";}
+		$row=mysql_fetch_row($rslt);
+		$drop_count[$i] = $row[0];
+		$i++;
+		$h++;
+		}
+
+	$hour_multiplier = (100 / $hi_hour_count);
+	#$hour_multiplier = round($hour_multiplier, 0);
+
+	echo "\n";
+	echo "GRAFICO AD INCREMENTO DI 15 MINUTI DEL TOTALE DELLE CHIAMATE\n";
+
+	$k=1;
+	$Mk=0;
+	$call_scale = '0';
+	while ($k <= 102) 
+		{
+		if ($Mk >= 5) 
+			{
+			$Mk=0;
+			$scale_num=($k / $hour_multiplier);
+			$scale_num = round($scale_num, 0);
+			$LENscale_num = (strlen($scale_num));
+			$k = ($k + $LENscale_num);
+			$call_scale .= "$scale_num";
+			}
+		else
+			{
+			$call_scale .= " ";
+			$k++;   $Mk++;
+			}
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
+	echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+	$ZZ = '00';
+	$i=0;
+	$h=4;
+	$hour= -1;
+	$no_lines_yet=1;
+
+	while ($i <= 96)
+		{
+		$char_counter=0;
+		$time = '      ';
+		if ($h >= 4) 
+			{
+			$hour++;
+			$h=0;
+			if ($hour < 10) {$hour = "0$hour";}
+			$time = "+$hour$ZZ+";
+			}
+		if ($h == 1) {$time = "   15 ";}
+		if ($h == 2) {$time = "   30 ";}
+		if ($h == 3) {$time = "   45 ";}
+		$Ghour_count = $hour_count[$i];
+		if ($Ghour_count < 1) 
+			{
+			if ( ($no_lines_yet) or ($i > $last_full_record) )
+				{
+				$do_nothing=1;
+				}
+			else
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				echo "|$time|";
+				$k=0;   while ($k <= 102) {echo " ";   $k++;}
+				echo "| $hour_count[$i] |\n";
+				}
+			}
+		else
+			{
+			$no_lines_yet=0;
+			$Xhour_count = ($Ghour_count * $hour_multiplier);
+			$Yhour_count = (99 - $Xhour_count);
+
+			$Gdrop_count = $drop_count[$i];
+			if ($Gdrop_count < 1) 
+				{
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "*X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 101) {echo " ";   $char_counter++;}
+				echo "| 0     | $hour_count[$i] |\n";
+
+				}
+			else
+				{
+				$Xdrop_count = ($Gdrop_count * $hour_multiplier);
+
+			#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
+
+				$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
+
+				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
+				$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
+
+				echo "|$time|";
+				$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
+				echo "D";   $char_counter++;
+				$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
+				echo "X";   $char_counter++;
+				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
+					while ($char_counter <= 102) {echo " ";   $char_counter++;}
+				echo "| $drop_count[$i] | $hour_count[$i] |\n";
+				}
+			}
+		
+		
+		$i++;
+		$h++;
+		}
+
+
+	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
+
+
+	}
+
+
+
+
+}
+
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_server_performance.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_server_performance.php new file mode 100644 index 00000000..989233bc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_server_performance.php @@ -0,0 +1,346 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1732 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70417-1106 - Changed time frame to be definable per time range on a single day +# - Fixed vertical scaling issues +# 80118-1508 - Fixed horizontal scale marking issues +# 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_query_time"])) {$begin_query_time=$_GET["begin_query_time"];} + elseif (isset($_POST["begin_query_time"])) {$begin_query_time=$_POST["begin_query_time"];} +if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"];} + elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$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 and view_reports='1' and modify_servers='1';"; + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +# path from root to where ploticus files will be stored +$PLOTroot = "vicidial/ploticus"; +$DOCroot = "$WeBServeRRooT/$PLOTroot/"; + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +if (!isset($begin_query_time)) {$begin_query_time = "$NOW_DATE 09:00:00";} +if (!isset($end_query_time)) {$end_query_time = "$NOW_DATE 15:30:00";} +if (!isset($group)) {$group = '';} + +$stmt="select server_ip from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + + + + + +\n"; +echo "Server Performance Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + + +echo "
\n"; +echo "Intervallo di tempo in formato Data/Ora: \n"; +echo "to \n"; +echo "Server: \n"; +echo "\n"; +echo "             REPORT \n"; +echo "
\n\n"; + +echo "
\n";
+
+
+if (!$group)
+{
+echo "\n";
+echo "PER FAVORE SELEZIONA UN SERVER E UN INTERVALLO DI TEMPO, POI PREMI INVIA\n";
+}
+
+else
+{
+
+$query_date_BEGIN = $begin_query_time;   
+$query_date_END = $end_query_time;
+
+
+echo "Server Performance Report                            $NOW_TIME\n";
+
+echo "Intervallo Di Tempo: $query_date_BEGIN to $query_date_END\n\n";
+echo "---------- TOTALI, PEAKS and AVERAGES\n";
+
+$stmt="select AVG(sysload),AVG(channels_total),MAX(sysload),MAX(channels_total),MAX(processes) 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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGload =	sprintf("%10s", $row[0]);
+$AVGchannels =	sprintf("%10s", $row[1]);
+$HIGHload =	$row[2];
+	$HIGHmulti = intval($HIGHload / 100);
+$HIGHchannels =	$row[3];
+$HIGHprocesses =$row[4];
+if ($row[2] > $row[3]) {$HIGHlimit = $row[2];}
+else {$HIGHlimit = $row[3];}
+if ($HIGHlimit < $row[4]) {$HIGHlimit = $row[4];}
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$AVGcpuUSER =	sprintf("%10s", $row[0]);
+$AVGcpuSYSTEM =	sprintf("%10s", $row[1]);
+$AVGcpuIDLE =	sprintf("%10s", $row[2]);
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$TOTALcalls =	sprintf("%10s", $row[0]);
+$OFFHOOKtime =	sprintf("%10s", $row[1]);
+
+
+echo "Total Calls in/out on this server:        $TOTALcalls\n";
+echo "Total Off-Hook time on this server (min): $OFFHOOKtime\n";
+echo "Average/Peak channels in use for server:  $AVGchannels / $HIGHchannels\n";
+echo "Average/Peak load for server:             $AVGload / $HIGHload\n";
+echo "Average USER process cpu percentage:      $AVGcpuUSER %\n";
+echo "Average SYSTEM process cpu percentage:    $AVGcpuSYSTEM %\n";
+echo "Average IDLE process cpu percentage:      $AVGcpuIDLE %\n";
+
+echo "\n";
+echo "---------- LINE GRAPH:\n";
+
+
+
+##############################
+#########  Graph stats
+
+$DAT = '.dat';
+$HTM = '.htm';
+$PNG = '.png';
+$filedate = date("Y-m-d_His");
+$DATfile = "$group$query_date$shift$filedate$DAT";
+$HTMfile = "$group$query_date$shift$filedate$HTM";
+$PNGfile = "$group$query_date$shift$filedate$PNG";
+
+$HTMfp = fopen ("$DOCroot/$HTMfile", "a");
+$DATfp = fopen ("$DOCroot/$DATfile", "a");
+
+$stmt="select DATE_FORMAT(start_time,'%Y-%m-%d.%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 limit 99999;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$rows_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $rows_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+	if ($i<1) {$time_BEGIN = $row[0];}
+	$time_END = $row[0];
+	$row[5] = intval(($row[5] + $row[6]) * $HIGHmulti);
+	$row[6] = intval($row[6] * $HIGHmulti);
+	if ($rows_to_print > 9999)
+		{
+		if ($rows_to_print <= 19999)
+			{
+			if (preg_match("/0$|2$|4$|6$|8$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 19999) and ($rows_to_print <= 49999) )
+			{
+			if (preg_match("/0$|5$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		if ( ($rows_to_print > 49999) and ($rows_to_print <= 99999) )
+			{
+			if (preg_match("/0$/",$i))
+				{
+				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+				}
+			}
+		}
+	else
+		{
+		fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
+		}
+	$i++;
+	}
+fclose($DATfp);
+
+$rows_to_max = ($rows_to_print + 100);
+
+$time_scale_abb = '5 minutes';
+$time_scale_tick = '1 minute';
+if ($i > 1000) {$time_scale_abb = '10 minutes';   $time_scale_tick = '2 minutes';}
+if ($i > 1500) {$time_scale_abb = '15 minutes';   $time_scale_tick = '3 minutes';}
+if ($i > 2000) {$time_scale_abb = '20 minutes';   $time_scale_tick = '4 minutes';}
+if ($i > 3000) {$time_scale_abb = '30 minutes';   $time_scale_tick = '5 minutes';}
+if ($i > 4000) {$time_scale_abb = '40 minutes';   $time_scale_tick = '10 minutes';}
+if ($i > 5000) {$time_scale_abb = '60 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 6000) {$time_scale_abb = '90 minutes';   $time_scale_tick = '15 minutes';}
+if ($i > 7000) {$time_scale_abb = '120 minutes';   $time_scale_tick = '30 minutes';}
+
+print "rows: $i   tick: $time_scale_abb   scale: $time_scale_tick\n";
+
+$HTMcontent  = '';
+$HTMcontent .= "#proc page\n";
+$HTMcontent .= "#if @DEVICE in png,gif\n";
+$HTMcontent .= "   scale: 0.6\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#endif\n";
+$HTMcontent .= "#proc getdata\n";
+$HTMcontent .= "file: $DOCroot/$DATfile\n";
+$HTMcontent .= "fieldnames: userproc sysproc datetime load processes channels\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc areadef\n";
+$HTMcontent .= "title: Server $group   $query_date_BEGIN to $query_date_END\n";
+$HTMcontent .= "titledetails: size=14  align=C\n";
+$HTMcontent .= "rectangle: 1 1 12 7\n";
+$HTMcontent .= "xscaletype: datetime yyyy-mm-dd.hh:mm:ss\n";
+$HTMcontent .= "xrange: $time_BEGIN $time_END\n";
+$HTMcontent .= "yrange: 0 $HIGHlimit\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc xaxis\n";
+$HTMcontent .= "stubs: inc $time_scale_abb\n";
+$HTMcontent .= "minorticinc: $time_scale_tick\n";
+$HTMcontent .= "stubformat: hh:mma\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc yaxis\n";
+$HTMcontent .= "stubs: inc 50\n";
+$HTMcontent .= "grid: color=yellow\n";
+$HTMcontent .= "gridskip: min\n";
+$HTMcontent .= "ticincrement: 100 1000\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: userproc\n";
+$HTMcontent .= "linedetails: color=purple width=.5\n";
+$HTMcontent .= "fill: lavender\n";
+$HTMcontent .= "legendlabel: user proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc lineplot\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: sysproc\n";
+$HTMcontent .= "linedetails: color=yelloworange width=.5\n";
+$HTMcontent .= "fill: dullyellow\n";
+$HTMcontent .= "legendlabel: system proc%\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: load\n";
+$HTMcontent .= "linedetails: color=blue width=.5\n";
+$HTMcontent .= "legendlabel: load\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: processes\n";
+$HTMcontent .= "linedetails: color=red width=.5\n";
+$HTMcontent .= "legendlabel: processes\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc curvefit\n";
+$HTMcontent .= "xfield: datetime\n";
+$HTMcontent .= "yfield: channels\n";
+$HTMcontent .= "linedetails: color=green width=.5\n";
+$HTMcontent .= "legendlabel: channels\n";
+$HTMcontent .= "maxinpoints: $rows_to_max\n";
+$HTMcontent .= "\n";
+$HTMcontent .= "#proc legend\n";
+$HTMcontent .= "location: max-1 max\n";
+$HTMcontent .= "seglen: 0.2\n";
+$HTMcontent .= "\n";
+
+fwrite ($HTMfp, "$HTMcontent");
+fclose($HTMfp);
+
+
+passthru("/usr/local/bin/pl -png $DOCroot/$HTMfile -o $DOCroot/$PNGfile");
+
+sleep(1);
+
+echo "
"; +echo "\n"; +echo "\n"; + + +echo ""; + +} + + + +?> + +
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDAD.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDAD.php new file mode 100644 index 00000000..db5af24c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDAD.php @@ -0,0 +1,445 @@ + LICENSE: AGPLv2 +# +# 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 +# 61114-2004 - Changed to display CLOSER and DEFAULT, added trunk shortage +# 80422-0305 - Added phone login to display, lower font size to 2 +# 81013-2227 - Fixed Remote Agent display bug +# 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["closer_display"])) {$closer_display=$_GET["closer_display"];} + elseif (isset($_POST["closer_display"])) {$closer_display=$_POST["closer_display"];} + +$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 and view_reports='1';"; + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "Server-Specific Real-Time Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
"; + +echo "
";
+
+###################################################################################
+###### SERVER INFORMATION
+###################################################################################
+
+$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where server_ip='" . mysql_real_escape_string($server_ip) . "';";
+$rslt=mysql_query($stmt, $link);
+$row=mysql_fetch_row($rslt);
+$balanceSHORT = $row[0];
+
+echo "SERVER: $server_ip\n";
+
+
+
+###################################################################################
+###### TIME ON SYSTEM
+###################################################################################
+
+if ($closer_display>0) {$closer_display_reverse=0;   $closer_reverse_link='DEFAULT';}
+else {$closer_display_reverse=1;   $closer_reverse_link='CLOSER';}
+
+echo "Agenti Time On Calls           $NOW_TIME    $closer_reverse_link | REPORT\n\n";
+
+if ($closer_display>0)
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\n";
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+}
+else
+{
+echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$Sextension[$i] =		$row[0];
+		$Suser[$i] =			$row[1];
+		$Ssessionid[$i] =		$row[2];
+		$Schannel[$i] =			$row[3];
+		$Sstatus[$i] =			$row[4];
+		$Sstart_time[$i] =		$row[5];
+		$Scall_time[$i] =		$row[6];
+		$Sfinish_time[$i] =		$row[7];
+		$Suniqueid[$i] =		$row[8];
+		$Slead_id[$i] =			$row[9];
+		$i++;
+		}
+
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$phone[$i]='          ';
+		if (eregi("R/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('R/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi("Local/",$Sextension[$i])) 
+			{
+			$protocol = 'EXTERNAL';
+			$dialplan = eregi_replace('Local/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("\@.*",'',$dialplan);
+			$exten = "dialplan_number='$dialplan'";
+			}
+		if (eregi('SIP/',$Sextension[$i])) 
+			{
+			$protocol = 'SIP';
+			$dialplan = eregi_replace('SIP/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('IAX2/',$Sextension[$i])) 
+			{
+			$protocol = 'IAX2';
+			$dialplan = eregi_replace('IAX2/',"",$Sextension[$i]);
+			$dialplan = eregi_replace("-.*",'',$dialplan);
+			$exten = "extension='$dialplan'";
+			}
+		if (eregi('Zap/',$Sextension[$i])) 
+			{
+			$protocol = 'Zap';
+			$dialplan = eregi_replace('Zap/',"",$Sextension[$i]);
+			$exten = "extension='$dialplan'";
+			}
+
+		$stmt="select login from phones where server_ip='" . mysql_real_escape_string($server_ip) . "' and $exten and protocol='$protocol';";
+		$rslt=mysql_query($stmt, $link);
+		$row=mysql_fetch_row($rslt);
+		$login = $row[0];
+
+		$phone[$i] =			sprintf("%-10s", $login);
+
+		if (eregi("READY|PAUSED|CLOSER",$Sstatus[$i]))
+			{
+			$Schannel[$i]='';
+			$Sstart_time[$i]='- WAIT -';
+			$Scall_time[$i]=$Sfinish_time[$i];
+			}
+		$extension[$i] = eregi_replace('Local/',"",$Sextension[$i]);
+		$extension[$i] =		sprintf("%-10s", $extension[$i]);
+			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
+		$user[$i] =				sprintf("%-6s", $Suser[$i]);
+		$sessionid[$i] =		sprintf("%-9s", $Ssessionid[$i]);
+		$channel[$i] =			sprintf("%-19s", $Schannel[$i]);
+			$cc[$i]=0;
+		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
+			{
+			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
+			$cc[$i]++;
+			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
+			}
+		$status[$i] =			sprintf("%-6s", $Sstatus[$i]);
+		$start_time[$i] =		sprintf("%-8s", $Sstart_time[$i]);
+			$cd[$i]=0;
+		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
+			{
+			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
+			$cd[$i]++;
+			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
+			}
+		$uniqueid[$i] =			$Suniqueid[$i];
+		$lead_id[$i] =			$Slead_id[$i];
+		$closer[$i] =			$Suser[$i];
+		$call_time_S[$i] = ($STARTtime - $Scall_time[$i]);
+
+		$call_time_M[$i] = ($call_time_S[$i] / 60);
+		$call_time_M[$i] = round($call_time_M[$i], 2);
+		$call_time_M_int[$i] = intval("$call_time_M[$i]");
+		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
+		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
+		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
+		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
+		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
+		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
+
+		if ($closer_display<1)
+			{
+			$G = '';		$EG = '';
+			if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+			if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+			if (eregi("PAUSED",$Sstatus[$i])) 
+				{
+				if ($call_time_M_int >= 1) 
+					{$i++; continue;} 
+				else
+					{$G=''; $EG='';}
+				}
+			$agentcount++;
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG |\n";
+			}
+		$i++;
+		}
+
+		if ($closer_display>0)
+		{
+
+			$ext_count = $i;
+			$i=0;
+		while ($i < $ext_count)
+			{
+
+			$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$camp_to_print = mysql_num_rows($rslt);
+			if ($camp_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$campaign = sprintf("%-12s", $row[0]);
+				$camp_color = $row[0];
+				}
+			else
+				{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
+			if (eregi("READY|PAUSED|CLOSER",$status[$i]))
+				{$campaign = '            ';   	$camp_color = '';}
+
+			$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
+			$rslt=mysql_query($stmt, $link);
+			if ($DB) {echo "$stmt\n";}
+			$xfer_to_print = mysql_num_rows($rslt);
+			if ($xfer_to_print > 0)
+				{
+				$row=mysql_fetch_row($rslt);
+				$fronter = sprintf("%-6s", $row[0]);
+				}
+			else
+				{$fronter = '      ';}
+
+			$G = '';		$EG = '';
+			$G=""; $EG='';
+		#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
+		#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
+
+			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
+
+			$i++;
+			}
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
+		echo "  $i Operatori collegati al server $server_ip\n\n";
+	#	echo "             - 5 o piu` minuti in conversazione\n";
+	#	echo "             - Oltre 10 minuti in conversazione\n";
+		}
+	else
+		{
+		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
+		echo "  $agentcount Operatori collegati al server $server_ip\n\n";
+
+		echo "             - Operatori in pausa\n";
+		echo "             - 5 o piu` minuti in conversazione\n";
+		echo "             - Oltre 10 minuti in conversazione\n";
+		}
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "********************************* NESSUN OPERATORE IN CONVERSAZIONE *********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+###################################################################################
+###### OUTBOUND CALLS
+###################################################################################
+#echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "Server-Specific Real-Time Report        TRUNK SHORT: $balanceSHORT          $NOW_TIME\n\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
+echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+
+$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);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-19s", $row[0]);
+			$cc=0;
+		while ( (strlen($channel) > 19) and ($cc < 100) )
+			{
+			$channel = eregi_replace(".$","",$channel);   
+			$cc++;
+			if (strlen($channel) <= 19) {$cc=101;}
+			}
+		$start_time =		sprintf("%-8s", $row[5]);
+			$cd=0;
+		while ( (strlen($start_time) > 8) and ($cd < 100) )
+			{
+			$start_time = eregi_replace("^.","",$start_time);   
+			$cd++;
+			if (strlen($start_time) <= 8) {$cd=101;}
+			}
+		$status =			sprintf("%-6s", $row[1]);
+		$campaign =			sprintf("%-12s", $row[2]);
+			$all_phone = "$row[3]$row[4]";
+		$number_dialed =	sprintf("%-18s", $all_phone);
+		$call_time_S = ($STARTtime - $row[6]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if (eregi("LIVE",$status)) {$G=''; $EG='';}
+	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
+		echo "  $i chiamate effettuate dal server $server_ip\n\n";
+
+		echo "             - CHIAMATA IN ATTESA\n";
+	#	echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	echo "******************************* NESSUNA CHIAMATA IN ATTESA*********************************\n";
+	echo "***************************************************************************************\n";
+	echo "***************************************************************************************\n";
+	}
+
+
+?>
+
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDADall.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDADall.php new file mode 100644 index 00000000..9b870044 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDADall.php @@ -0,0 +1,1986 @@ + LICENSE: AGPLv2 +# +# live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# CHANGELOG: +# 50406-0920 - Added Paused agents < 1 min +# 51130-1218 - Modified layout and info to show all servers in a vicidial system +# 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 +# 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 +# 60626-1453 - Added display of system load to bottom (Angelito Manansala) +# 60901-1123 - Changed display elements at the top of the screen +# 60905-1342 - Fixed non INCALL|QUEUE timer column +# 61002-1642 - Added TRUNK SHORT/FILL stats +# 61101-1318 - Added SIP and IAX Listen and Barge links option +# 61101-1647 - Added Usergroup column and user name option as well as sorting +# 61102-1155 - Made display of columns more modular, added ability to hide server info +# 61215-1131 - Added answered calls and drop percent taken from answered calls +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70123-1151 - Added non_latin options for substr in display variables, thanks Marin Blu +# 70206-1140 - Added call-type statuses to display(A-Auto, M-Manual, I-Inbound/Closer) +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80227-0418 - Added priority to waiting calls display +# 80311-1550 - Added calls_today on all agents and wait time/in-group for inbound calls +# 80422-0033 - Added phonediaplay option, allow for toggle-sorting on sortable fields +# 80422-1001 - Fixed sort by phone login +# 80424-0515 - Added non_latin lookup from system_settings +# 80525-1040 - Added IVR status display and summary for inbound calls +# 80619-2047 - Added DISPO status for post-call-work while paused +# 80704-0543 - Added DEAD status for agents INCALL with no live call +# 80822-1222 - Added option for display of customer phone number +# 81011-0335 - Fixed remote agent display bug +# 81022-1500 - Added inbound call stats display option +# 81029-1023 - Changed drop percent calculation for multi-stat reports +# 81029-1706 - Added pause code display if enabled per campaign +# 81108-2337 - Added inbound-only section +# 90105-1153 - Changed monitor links to use 0 prefix instead of 6 +# 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option +# 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended +# + + +$version = '2.2.0-49'; +$build = '91204-1548'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["inbound"])) {$inbound=$_GET["inbound"];} + elseif (isset($_POST["inbound"])) {$inbound=$_POST["inbound"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["usergroup"])) {$usergroup=$_GET["usergroup"];} + elseif (isset($_POST["usergroup"])) {$usergroup=$_POST["usergroup"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["SIPmonitorLINK"])) {$SIPmonitorLINK=$_GET["SIPmonitorLINK"];} + elseif (isset($_POST["SIPmonitorLINK"])) {$SIPmonitorLINK=$_POST["SIPmonitorLINK"];} +if (isset($_GET["IAXmonitorLINK"])) {$IAXmonitorLINK=$_GET["IAXmonitorLINK"];} + elseif (isset($_POST["IAXmonitorLINK"])) {$IAXmonitorLINK=$_POST["IAXmonitorLINK"];} +if (isset($_GET["UGdisplay"])) {$UGdisplay=$_GET["UGdisplay"];} + elseif (isset($_POST["UGdisplay"])) {$UGdisplay=$_POST["UGdisplay"];} +if (isset($_GET["UidORname"])) {$UidORname=$_GET["UidORname"];} + elseif (isset($_POST["UidORname"])) {$UidORname=$_POST["UidORname"];} +if (isset($_GET["orderby"])) {$orderby=$_GET["orderby"];} + elseif (isset($_POST["orderby"])) {$orderby=$_POST["orderby"];} +if (isset($_GET["SERVdisplay"])) {$SERVdisplay=$_GET["SERVdisplay"];} + elseif (isset($_POST["SERVdisplay"])) {$SERVdisplay=$_POST["SERVdisplay"];} +if (isset($_GET["CALLSdisplay"])) {$CALLSdisplay=$_GET["CALLSdisplay"];} + elseif (isset($_POST["CALLSdisplay"])) {$CALLSdisplay=$_POST["CALLSdisplay"];} +if (isset($_GET["PHONEdisplay"])) {$PHONEdisplay=$_GET["PHONEdisplay"];} + elseif (isset($_POST["PHONEdisplay"])) {$PHONEdisplay=$_POST["PHONEdisplay"];} +if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdisplay"];} + elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} +if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} + elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $outbound_autodial_active = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if (!isset($DB)) {$DB=0;} +if (!isset($RR)) {$RR=40;} +if (!isset($group)) {$group='';} +if (!isset($usergroup)) {$usergroup='';} +if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name +if (!isset($orderby)) {$orderby='timeup';} +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes +if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes +if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes +if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes +if (!isset($PAUSEcodes)) {$PAUSEcodes='N';} # 0=no, 1=yes +if (!isset($with_inbound)) + { + if ($outbound_autodial_active > 0) + {$with_inbound='N';} # N=no, Y=yes, O=only + else + {$with_inbound='O';} # N=no, Y=yes, O=only + } +$ingroup_detail=''; + +if (strlen($group)>1) {$groups[0] = $group; $RR=40;} +else {$group = $groups[0];} + +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); + + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } + + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } + +$load_ave = get_server_load(true); + +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + + +$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 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='ALL-ACTIVE'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $LISTnames[$i] =$row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($groups); +while($i < $group_ct) + { + $group_string .= "$groups[$i]|"; + $group_SQL .= "'$groups[$i]',"; + $groupQS .= "&groups[]=$groups[$i]"; + $i++; + } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $all_active = 0; + $group_SQL = "''"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; + } +else + { + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$usergroups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $usergroups_to_print) + { + $row=mysql_fetch_row($rslt); + $usergroups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$select_list = ""; +$select_list .= ""; +$select_list .= "
Select Campagnas:
"; +$select_list .= ""; +$select_list .= "
(Per selezionare più di campagna 1, tenere premuto il tasto Ctrl e fare clic su)"; +$select_list .= "
"; +$select_list .= "Chiudi pannello

"; + +if ($UGdisplay > 0) + { + $select_list .= "Select Gruppo Utente:
"; + $select_list .= "

"; + } + +$select_list .= "   Inbound:         "; +$select_list .= "
"; +$select_list .= "   "; +$select_list .= ""; +$select_list .= "VERSIONE: $version   BUILD: $build"; +$select_list .= "
"; + +$open_list = "
Scegli Opzioni di visualizzazione Relazione
"; + +?> + + + + + + +\n"; + +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; +$rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +echo "\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; +echo "
\n"; +echo "Scegli Opzioni di visualizzazione Relazione"; +echo "
\n"; +echo "
\n"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "PIU LENTO | "; +echo "INIZIA"; +if (eregi('ALL-ACTIVE',$group_string)) + { + echo "       MODIFICA | \n"; + } +else + { + echo "       MODIFICA | \n"; + } +echo "RIEPILOGO \n"; +echo "\n\n"; + + +if (!$group) {echo "

per favore seleziona una campagna dal menu qui in alto
\n"; exit;} +else +{ +$multi_drop=0; +### Gather list of all Closer group ids for exclusion from stats +$stmt = "select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +$ingroups_to_print = mysql_num_rows($rslt); +while ($ingroups_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + $ccamps_to_print = mysql_num_rows($rslt); + $c=0; + while ($ccamps_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaignsSQL .= "'$closer_campaigns',"; + $c++; + } + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; + + if ($adastats>1) + { + $stmtB="select calls_today,drops_today,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4,hold_sec_stat_one,hold_sec_stat_two,hold_sec_answer_calls,hold_sec_drop_calls,hold_sec_queue_calls,campaign_id from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if ($DB > 0) {echo "\n|$stmtB|\n";} + + $r=0; + $rslt=mysql_query($stmtB, $link); + $ingroups_to_print = mysql_num_rows($rslt); + if ($ingroups_to_print > 0) + {$ingroup_detail .= "";} + while ($ingroups_to_print > $r) + { + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + $ingroupdetail = $row[16]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_RISPOSTAagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_RISPOSTAagent_non_pause_sec = round($AVG_RISPOSTAagent_non_pause_sec, 2); + $AVG_RISPOSTAagent_non_pause_sec = sprintf("%01.2f", $AVG_RISPOSTAagent_non_pause_sec); + } + else + {$AVG_RISPOSTAagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_RISPOSTAagent_non_pause_sec=0; + } + + if (ereg("0$|2$|4$|6$|8$",$r)) {$bgcolor='#E6E6E6';} + else {$bgcolor='white';} + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + + $r++; + } + + if ($ingroups_to_print > 0) + {$ingroup_detail .= "
        $ingroupdetail   CHIAMATE OGGI:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls  
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
RISPOSTAS TODAY:  $answersTODAY    DROP PERCENT:  $drpctTODAY%    Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
";} + + } + + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; + + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; + } + + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; + + + if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_pause_codes_active = $row[0]; + + $rslt=mysql_query($stmtC, $link); + $row=mysql_fetch_row($rslt); + $agent_non_pause_sec = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_RISPOSTAagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_RISPOSTAagent_non_pause_sec = round($AVG_RISPOSTAagent_non_pause_sec, 2); + $AVG_RISPOSTAagent_non_pause_sec = sprintf("%01.2f", $AVG_RISPOSTAagent_non_pause_sec); + } + else + {$AVG_RISPOSTAagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_RISPOSTAagent_non_pause_sec=0; + } + + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +##### NOT INBOUND ONLY ### +else + { + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $multi_drop++; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; + } + else + { + if ($DB > 0) {echo "\n|$with_inbound|$campaign_allow_inbound|\n";} + + if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) + { + $multi_drop++; + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} + + $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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + } + else + { + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + } + } + if ($DB > 0) {echo "\n|$stmt|$stmtB|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $DIALlev = $row[0]; + $DIALstatusA = $row[1]; + $DIALstatusB = $row[2]; + $DIALstatusC = $row[3]; + $DIALstatusD = $row[4]; + $DIALstatusE = $row[5]; + $DIALorder = $row[6]; + $DIALfilter = $row[7]; + $HOPlev = $row[8]; + $DIALmethod = $row[9]; + $maxDIALlev = $row[10]; + $DROPmax = $row[11]; + $targetDIFF = $row[12]; + $ADAintense = $row[13]; + $ADAavailonly = $row[14]; + $TAPERtime = $row[15]; + $CALLtime = $row[16]; + $DIALtimeout = $row[17]; + $DIALstatuses = $row[18]; + $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; + + + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDhop = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $DAleads = $row[0]; + $callsTODAY = $row[1]; + $dropsTODAY = $row[2]; + $drpctTODAY = $row[3]; + $diffONEMIN = $row[4]; + $agentsONEMIN = $row[5]; + $balanceFILL = $row[6]; + $answersTODAY = $row[7]; + if ($multi_drop > 0) + { + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + } + $VSCcat1 = $row[8]; + $VSCcat1tally = $row[9]; + $VSCcat2 = $row[10]; + $VSCcat2tally = $row[11]; + $VSCcat3 = $row[12]; + $VSCcat3tally = $row[13]; + $VSCcat4 = $row[14]; + $VSCcat4tally = $row[15]; + + if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } + else {$diffpctONEMIN = '0.00';} + + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $balanceSHORT = $row[0]; + + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "Elenco Mix: $row[0]"; + $DIALorder = "Elenco Mix: $row[0]"; + } + } + + echo "
CHIAMATE OGGI:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls   DATA:   $NOW_TIME
DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
RISPOSTAS TODAY:  $answersTODAY    (Agent non-pause time / Answers)Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
DROP PERCENT:  $drpctTODAY%    PRODUCTIVITY:  $AVG_RISPOSTAagent_non_pause_sec    
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + + + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
LIVELLO CHIAMATE:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTRO:  $DIALfilter   DATA:   $NOW_TIME
- min   LIVELLO MAX:  $maxDIALlev   ABBATTIMENTO MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
TIMEOUT CHIAMATA:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
CONTATTI CHIAMABILI:  $DAleads     CHIAMATE OGGI:  $callsTODAY     MEDIA OPERATORI:  $agentsONEMIN     METODO CHIAMATA:  $DIALmethod    
LIVELLO CODA CHIAMATE:  $HOPlev     ABBATTUTE / RISPOSTE:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     ESITI:  $DIALstatuses    
CONTATTI IN CODA:  $VDhop     PERCENT ABBATTIMENTO:  "; + if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} + else + {echo "$drpctTODAY%";} + echo "    DIFF:  $diffpctONEMIN%     ORDINE:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +echo "$ingroup_detail"; + +if ($adastats<2) + { + echo "+ VIEW MORE"; + } +else + { + echo "+ VIEW LESS"; + } +if ($UGdisplay>0) + { + echo "       NASCONDI GRUPPI UTENTI"; + } +else + { + echo "       MOSTRA GRUPPI UTENTI"; + } +if ($UidORname>0) + { + echo "       MOSTRA ID OPERATORE"; + } +else + { + echo "       MOSTRA NOME OPERATORE"; + } +if ($SERVdisplay>0) + { + echo "       NASCONDI INFO SERVER"; + } +else + { + echo "       MOSTRA INFO SERVER"; + } +if ($CALLSdisplay>0) + { + echo "       NASCONDI WAITING CALLS"; + } +else + { + echo "       MOSTRA WAITING CALLS"; + } +if ($PHONEdisplay>0) + { + echo "       NASCONDI PHONES"; + } +else + { + echo "       MOSTRA PHONES"; + } +if ($CUSTPHONEdisplay>0) + { + echo "       NASCONDI CUSTPHONES"; + } +else + { + echo "       MOSTRA CUSTPHONES"; + } +echo "
"; + +echo "\n\n"; +} +################################################################################### +###### INBOUND/OUTBOUND CALLS +################################################################################### +if ($campaign_allow_inbound > 0) + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; + } +else + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; + } +if ($CALLSdisplay > 0) + { + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; + } +else + { + $stmtA = "SELECT status"; + } + + +$k=0; +$agentonlycount=0; +$stmt = "$stmtA $stmtB"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + { + $out_live++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + else + { + if (eregi("IVR",$row[0])) + { + $in_ivr++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + + $out_total++; + $i++; + } + + ##### MIDI alert audio file test ##### + # $test_midi=1; + # if ($test_midi > 0) + # { + # # echo ""; + # # echo ""; + # echo ""; + # echo " "; + # echo " "; + # echo " "; + # echo " "; + # echo " alt : test.mid"; + # echo ""; + # } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo " NESSUNA CHIAMATA IN ATTESA\n"; + } + + + +################################################################################### +###### CALLS WAITING +################################################################################### +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} +$Cecho = ''; +$Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITY | $agentonlyheader\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +$p=0; +while($p<$k) + { + $Cstatus = sprintf("%-6s", $CDstatus[$p]); + $Ccampaign_id = sprintf("%-12s", $CDcampaign_id[$p]); + $Cphone_number = sprintf("%-12s", $CDphone_number[$p]); + $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); + $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); + $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); + + $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); + $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); + + $G = ''; $EG = ''; + if ($CDcall_type[$p] == 'IN') + { + $G=""; $EG=''; + } + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; + + $p++; + } +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +if ($p<1) + {$Cecho='';} + +################################################################################### +###### AGENT TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_dead=0; +$agent_total=0; + +$phoneord=$orderby; +$userord=$orderby; +$groupord=$orderby; +$timeord=$orderby; +$campaignord=$orderby; + +if ($phoneord=='phoneup') {$phoneord='phonedown';} + else {$phoneord='phoneup';} +if ($userord=='userup') {$userord='userdown';} + else {$userord='userup';} +if ($groupord=='groupup') {$groupord='groupdown';} + else {$groupord='groupup';} +if ($timeord=='timeup') {$timeord='timedown';} + else {$timeord='timeup';} +if ($campaignord=='campaignup') {$campaignord='campaigndown';} + else {$campaignord='campaignup';} + +$Aecho = ''; +$Aecho .= "VICIDIAL: Agenti Time On Calls Campagna: $group_string $NOW_TIME\n"; + + +$HDbegin = "+"; +$HTbegin = "|"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " UTENTE INFO |"; +$HDusergroup = "--------------+"; +$HTusergroup = " Utente Group |"; +$HDsessionid = "------------------+"; +$HTsessionid = " SESSIONID |"; +$HDbarge = "-------+"; +$HTbarge = " BARGE |"; +$HDstatus = "----------+"; +$HTstatus = " STATUS |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; +$HDserver_ip = "-----------------+"; +$HTserver_ip = " SERVER IP |"; +$HDcall_server_ip = "-----------------+"; +$HTcall_server_ip = " CALL SERVER IP |"; +$HDtime = "---------+"; +$HTtime = " MM:SS |"; +$HDcampaign = "------------+"; +$HTcampaign = " CAMPAGNA |"; +$HDcalls = "-------+"; +$HTcalls = " CALLS |"; +$HDpause = ''; +$HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; + +if (!ereg("N",$agent_pause_codes_active)) + { + $HDstatus = "----------"; + $HTstatus = " STATUS "; + $HDpause = "-------+"; + $HTpause = " PAUSE |"; + } +if ($PHONEdisplay < 1) + { + $HDphone = ''; + $HTphone = ''; + } +if ($CUSTPHONEdisplay < 1) + { + $HDcustphone = ''; + $HTcustphone = ''; + } +if ($UGdisplay < 1) + { + $HDusergroup = ''; + $HTusergroup = ''; + } +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + { + $HDsessionid = "-----------+"; + $HTsessionid = " SESSIONID |"; + } +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) + { + $HDbarge = ''; + $HTbarge = ''; + } +if ($SERVdisplay < 1) + { + $HDserver_ip = ''; + $HTserver_ip = ''; + $HDcall_server_ip = ''; + $HTcall_server_ip = ''; + } + + + +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; +$Aecho .= "$Aline"; +$Aecho .= "$Bline"; +$Aecho .= "$Aline"; + +if ($orderby=='timeup') {$orderSQL='vicidial_live_agents.status,last_call_time';} +if ($orderby=='timedown') {$orderSQL='vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='campaignup') {$orderSQL='vicidial_live_agents.campaign_id,vicidial_live_agents.status,last_call_time';} +if ($orderby=='campaigndown') {$orderSQL='vicidial_live_agents.campaign_id desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='groupup') {$orderSQL='user_group,vicidial_live_agents.status,last_call_time';} +if ($orderby=='groupdown') {$orderSQL='user_group desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='phoneup') {$orderSQL='extension,server_ip';} +if ($orderby=='phonedown') {$orderSQL='extension desc,server_ip desc';} +if ($UidORname > 0) + { + if ($orderby=='userup') {$orderSQL='full_name,status,last_call_time';} + if ($orderby=='userdown') {$orderSQL='full_name desc,status desc,last_call_time desc';} + } +else + { + if ($orderby=='userup') {$orderSQL='vicidial_live_agents.user';} + if ($orderby=='userdown') {$orderSQL='vicidial_live_agents.user desc';} + } + +if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} +else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} +if (strlen($usergroup)<1) {$usergroupSQL = '';} +else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} + +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + + $Aextension[$i] = $row[0]; + $Auser[$i] = $row[1]; + $Asessionid[$i] = $row[2]; + $Astatus[$i] = $row[3]; + $Aserver_ip[$i] = $row[4]; + $Acall_time[$i] = $row[5]; + $Acall_finish[$i] = $row[6]; + $Acall_server_ip[$i] = $row[7]; + $Acampaign_id[$i] = $row[8]; + $Auser_group[$i] = $row[9]; + $Afull_name[$i] = $row[10]; + $Acomments[$i] = $row[11]; + $Acalls_today[$i] = $row[12]; + $Acallerid[$i] = $row[13]; + $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; + + $i++; + } + +$callerids=''; +$pausecode=''; +$stmt="select callerid,lead_id,phone_number from vicidial_auto_calls;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$calls_to_list = mysql_num_rows($rslt); + if ($calls_to_list > 0) + { + $i=0; + while ($i < $calls_to_list) + { + $row=mysql_fetch_row($rslt); + $callerids .= "$row[0]|"; + $VAClead_ids[$i] = $row[1]; + $VACphones[$i] = $row[2]; + $i++; + } + } + +### Lookup phone logins + $i=0; + while ($i < $talking_to_print) + { + if (eregi("R/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('R/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi("Local/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('Local/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi('SIP/',$Aextension[$i])) + { + $protocol = 'SIP'; + $dialplan = eregi_replace('SIP/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('IAX2/',$Aextension[$i])) + { + $protocol = 'IAX2'; + $dialplan = eregi_replace('IAX2/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('Zap/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + + $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $phones_to_print = mysql_num_rows($rslt); + if ($phones_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Alogin[$i] = "$row[0]-----$i"; + } + else + { + $Alogin[$i] = "$Aextension[$i]-----$i"; + } + $i++; + } + +### Sort by phone if selected + if ($orderby=='phoneup') + { + sort($Alogin); + } + if ($orderby=='phonedown') + { + rsort($Alogin); + } + +### Run through the loop to display agents + $j=0; + $agentcount=0; + while ($j < $talking_to_print) + { + $n=0; + $custphone=''; + while ($n < $calls_to_list) + { + if ( (ereg("$VAClead_ids[$n]", $Alead_id[$j])) and (strlen($VAClead_ids[$n]) == strlen($Alead_id[$j])) ) + {$custphone = $VACphones[$n];} + $n++; + } + + $phone_split = explode("-----",$Alogin[$j]); + $i = $phone_split[1]; + + if (eregi("READY|PAUSED",$Astatus[$i])) + { + $Acall_time[$i]=$Astate_change[$i]; + + if ($Alead_id[$i] > 0) + { + $Astatus[$i] = 'DISPO'; + $Lstatus = 'DISPO'; + $status = ' DISPO'; + } + } + if ($non_latin < 1) + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} + } + else + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} + } + + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); + $Luser = $Auser[$i]; + $user = sprintf("%-20s", $Auser[$i]); + $Lsessionid = $Asessionid[$i]; + $sessionid = sprintf("%-9s", $Asessionid[$i]); + $Lstatus = $Astatus[$i]; + $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; + $server_ip = sprintf("%-15s", $Aserver_ip[$i]); + $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); + $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); + $comments= $Acomments[$i]; + $calls_today = sprintf("%-5s", $Acalls_today[$i]); + + if (!ereg("N",$agent_pause_codes_active)) + {$pausecode=' ';} + else + {$pausecode='';} + + if (eregi("INCALL",$Lstatus)) + { + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) + { + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } + } + + if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) + {$CM='A';} + else + { + if (eregi("INBOUND",$comments)) + {$CM='I';} + else + {$CM='M';} + } + } + else {$CM=' ';} + + if ($UGdisplay > 0) + { + if ($non_latin < 1) + { + $user_group = sprintf("%-12s", $Auser_group[$i]); + while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} + } + else + { + $user_group = sprintf("%-40s", $Auser_group[$i]); + while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} + } + } + if ($UidORname > 0) + { + if ($non_latin < 1) + { + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} + } + else + { + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} + } + } + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} + else + {$call_time_S = ($STARTtime - $Acall_time[$i]);} + + $call_time_MS = sec_convert($call_time_S,'M'); + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) + { + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} + } + if ($Lstatus=='DEAD') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_dead++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + } + } + if ($Lstatus=='DISPO') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } + if ($Lstatus=='PAUSED') + { + if (!ereg("N",$agent_pause_codes_active)) + { + $stmtC="select sub_status from vicidial_agent_log where user='$Luser' order by agent_log_id desc limit 1;"; + $rsltC=mysql_query($stmtC,$link); + $rowC=mysql_fetch_row($rsltC); + $pausecode = sprintf("%-6s", $rowC[0]); + $pausecode = "$pausecode "; + } + else + {$pausecode='';} + + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } +# if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) +# {$G=''; $EG='';} + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) + { + $G=''; $EG=''; + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + + $L=''; + $R=''; + if ($SIPmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($SIPmonitorLINK>1) {$R=" | BARGE";} + if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} + + if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} + else {$CP = "";} + + if ($UGdisplay > 0) {$UGD = " $G$user_group$EG |";} + else {$UGD = "";} + + if ($SERVdisplay > 0) {$SVD = "$G$server_ip$EG | $G$call_server_ip$EG | ";} + else {$SVD = "";} + + if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} + else {$phoneD = " ";} + + $vac_stage=''; + $vac_campaign=''; + $INGRP=''; + if ($CM == 'I') + { + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ingrp_to_print = mysql_num_rows($rslt); + if ($ingrp_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); + $row[1] = eregi_replace(".*-",'',$row[1]); + $vac_stage = sprintf("%-4s", $row[1]); + } + + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; + } + + $agentcount++; + + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG + |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + + $j++; + } + + $Aecho .= "$Aline"; + $Aecho .= " $agentcount agents logged in on all servers\n"; + $Aecho .= " Sistema di carico Average: $load_ave\n\n"; + + # $Aecho .= " - Balanced call\n"; + $Aecho .= " - Agent waiting for call\n"; + $Aecho .= " - Agent waiting for call > 1 minute\n"; + $Aecho .= " - Agent waiting for call > 5 minutes\n"; + $Aecho .= " - Agent on call > 10 seconds\n"; + $Aecho .= " - Agent on call > 1 minute\n"; + $Aecho .= " - Agent on call > 5 minutes\n"; + $Aecho .= " - Agent Paused > 10 seconds\n"; + $Aecho .= " - Agent Paused > 1 minute\n"; + $Aecho .= " - Agent Paused > 5 minutes\n"; + $Aecho .= " - Agent on a dead call\n"; + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + echo "$NFB$agent_dead$NFE agenti morti chiamate      \n"; + + echo "
";
+		echo "";
+		echo "$Cecho";
+		echo "$Aecho";
+	}
+	else
+	{
+	echo " NESSUN OPERATORE IN CONVERSAZIONE \n";
+	echo "
$Cecho";
+	}
+
+?>
+
+
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDADallSUMMARY.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDADallSUMMARY.php new file mode 100644 index 00000000..caad2592 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonVDADallSUMMARY.php @@ -0,0 +1,457 @@ + LICENSE: AGPLv2 +# +# Summary for all campaigns live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# changes: +# 61102-1616 - first build +# 61215-1131 - added answered calls and drop percent taken from answered calls +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80525-1040 - Added IVR status summary display for inbound calls +# 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +if (!isset($RR)) {$gRRroup=4;} + + +$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 and view_reports='1';"; + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +$stmt="select campaign_id from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +?> + + + + + +\n"; +echo "Real-Time All Campagne Summary\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "Real-Time All Campagne Summary           \n"; +echo "STOP | "; +echo "PIU LENTO | "; +echo "INIZIA "; +echo "       \n"; +if ($adastats<2) + { + echo "+ VISUALIZZA PIU DATI"; + } +else + { + echo "- VISUALIZZA MENO DATI"; + } +echo "       REPORT"; +echo "

\n\n"; + +$k=0; +while($k<$groups_to_print) +{ +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$group = $groups[$k]; +echo "$group   -   "; +echo "Modifica\n"; + + +$stmt = "select count(*) from vicidial_campaigns where campaign_id='$group' and campaign_allow_inbound='Y';"; +$rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +$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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DIALlev = $row[0]; +$DIALstatusA = $row[1]; +$DIALstatusB = $row[2]; +$DIALstatusC = $row[3]; +$DIALstatusD = $row[4]; +$DIALstatusE = $row[5]; +$DIALorder = $row[6]; +$DIALfilter = $row[7]; +$HOPlev = $row[8]; +$DIALmethod = $row[9]; +$maxDIALlev = $row[10]; +$DROPmax = $row[11]; +$targetDIFF = $row[12]; +$ADAintense = $row[13]; +$ADAavailonly = $row[14]; +$TAPERtime = $row[15]; +$CALLtime = $row[16]; +$DIALtimeout = $row[17]; +$DIALstatuses = $row[18]; + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + +$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$VDhop = $row[0]; + +$stmt="select dialable_leads,calls_today,drops_today,drops_answers_today_pct,differential_onemin,agents_average_onemin,balance_trunk_fill,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4 from vicidial_campaign_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DAleads = $row[0]; +$callsTODAY = $row[1]; +$dropsTODAY = $row[2]; +$drpctTODAY = $row[3]; +$diffONEMIN = $row[4]; +$agentsONEMIN = $row[5]; +$balanceFILL = $row[6]; +$answersTODAY = $row[7]; +$VSCcat1 = $row[8]; +$VSCcat1tally = $row[9]; +$VSCcat2 = $row[10]; +$VSCcat2tally = $row[11]; +$VSCcat3 = $row[12]; +$VSCcat3tally = $row[13]; +$VSCcat4 = $row[14]; +$VSCcat4tally = $row[15]; + +if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } +else {$diffpctONEMIN = '0.00';} + +$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$balanceSHORT = $row[0]; + +echo "
"; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
LIVELLO CHIAMATE:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTRO:  $DIALfilter   DATA:   $NOW_TIME
  LIVELLO MAX:  $maxDIALlev   ABBATTIMENTO MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
TIMEOUT CHIAMATA:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
CONTATTI CHIAMABILI:  $DAleads     CHIAMATE OGGI:  $callsTODAY     MEDIA OPERATORI:  $agentsONEMIN     METODO CHIAMATA:  $DIALmethod    
LIVELLO CODA CHIAMATE:  $HOPlev     ABBATTUTE / RISPOSTE:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     ESITI:  $DIALstatuses    
CONTATTI IN CODA:  $VDhop     PERCENT ABBATTIMENTO:  "; +if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} +else + {echo "$drpctTODAY%";} +echo "    DIFF:  $diffpctONEMIN%     ORDINE:  $DIALorder    
"; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
"; + +### Header finish + + + + + +################################################################################ +### START calculating calls/agents +################################################################################ + +################################################################################ +###### OUTBOUND CALLS +################################################################################ +if ($campaign_allow_inbound > 0) + { + $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = preg_replace("/^ | -$/","",$row[0]); + $closer_campaigns = preg_replace("/ /","','",$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='" . mysql_real_escape_string($group) . "' and call_type='OUT') );"; + } +else + { + if ($group=='XXXX-ALL-ACTIVE-XXXX') {$groupSQL = '';} + else {$groupSQL = " and campaign_id='" . mysql_real_escape_string($group) . "'";} + + $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') $groupSQL;"; + } +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + {$out_live++;} + else + { + if (eregi("IVR",$row[0])) + {$in_ivr++;} + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + $out_total++; + $i++; + } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo " NESSUNA CHIAMATA IN ATTESA\n"; + } + + +################################################################################### +###### TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_total=0; + +$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) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + $agentcount=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[3])) + { + $row[5]=$row[6]; + } + $Lstatus = $row[3]; + $status = sprintf("%-6s", $row[3]); + if (!eregi("INCALL|QUEUE",$row[3])) + {$call_time_S = ($STARTtime - $row[6]);} + else + {$call_time_S = ($STARTtime - $row[5]);} + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if (eregi("PAUSED",$row[3])) + { + if ($call_time_M_int >= 30) + {$i++; continue;} + else + { + $agent_paused++; $agent_total++; + } + } + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + $agentcount++; + + + $i++; + } + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + echo "\n
\n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + + echo "
";
+		echo "";
+	}
+	else
+	{
+	echo " NESSUN OPERATORE AL TELEFONO
\n"; + } + +################################################################################ +### END calculating calls/agents +################################################################################ + + + + + +echo "
"; + +echo "\n\n"; +$k++; +} + +?> + +
+ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonpark.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonpark.php new file mode 100644 index 00000000..817ffd23 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/AST_timeonpark.php @@ -0,0 +1,220 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1042 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$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 and view_reports='1';"; + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +$timeONEhoursAGO = ($STARTtime - 3600); +$epochHALFhoursAGO = ($STARTtime - 1860); +$timeONEhoursAGO = date("Y-m-d H:i:s",$timeONEhoursAGO); +$timeHALFhoursAGO = date("Y-m-d H:i:s",$epochHALFhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where status='TALKING' and grab_time < '$timeONEhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + $stmt="delete from park_log where status='PARKED' and parked_time < '$timeHALFhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + } + } + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Park\n"; +echo "
\n\n";
+
+echo "VICIDIAL: Time On Park         $NOW_TIME    REPORT\n\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+echo "| CHANNEL    | GROUP           | START TIME          | MINUTES |\n";
+echo "+------------+-----------------+---------------------+---------+\n";
+
+#$link=mysql_connect("localhost", "cron", "1234");
+# $linkX=mysql_connect("localhost", "cron", "1234");
+#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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$parked_to_print = mysql_num_rows($rslt);
+	if ($parked_to_print > 0)
+	{
+	$i=0;
+	while ($i < $parked_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 1) {$G=''; $EG='';}
+		if ($call_time_M_int >= 6) {$G=''; $EG='';}
+
+		echo "| $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------+-----------------+---------------------+---------+\n";
+		echo "  $i callers waiting on server $server_ip\n\n";
+
+		echo "             - 1 minute or more on hold\n";
+		echo "             - Over 5 minutes on hold\n";
+
+		}
+	else
+	{
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	echo "******************** NESSUNA CHIAMATA IN ATTESA*********************\n";
+	echo "****************************************************************\n";
+	echo "****************************************************************\n";
+	}
+
+###################################################################################
+###### TIME ON INBOUND CALLS
+###################################################################################
+echo "\n\n";
+echo "----------------------------------------------------------------------------------------";
+echo "\n\n";
+echo "VICIDIAL: Agenti Time On Inbound Calls                             $NOW_TIME\n\n";
+echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+echo "| STATION    | USER   | CHANNEL    | GROUP           | START TIME          | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$talking_to_print = mysql_num_rows($rslt);
+	if ($talking_to_print > 0)
+	{
+	$i=0;
+	while ($i < $talking_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+
+		$extension =		sprintf("%-10s", $row[0]);
+		$user =				sprintf("%-6s", $row[1]);
+		$channel =			sprintf("%-10s", $row[2]);
+		$number_dialed =	sprintf("%-15s", $row[3]);
+		$start_time =		sprintf("%-19s", $row[4]);
+		$call_time_S = ($STARTtime - $row[5]);
+
+		$call_time_M = ($call_time_S / 60);
+		$call_time_M = round($call_time_M, 2);
+		$call_time_M_int = intval("$call_time_M");
+		$call_time_SEC = ($call_time_M - $call_time_M_int);
+		$call_time_SEC = ($call_time_SEC * 60);
+		$call_time_SEC = round($call_time_SEC, 0);
+		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
+		$call_time_MS = "$call_time_M_int:$call_time_SEC";
+		$call_time_MS =		sprintf("%7s", $call_time_MS);
+		$G = '';		$EG = '';
+		if ($call_time_M_int >= 12) {$G=''; $EG='';}
+		if ($call_time_M_int >= 31) {$G=''; $EG='';}
+
+		echo "| $G$extension$EG | $G$user$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
+
+		$i++;
+		}
+
+		echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
+		echo "  $i agents on calls on server $server_ip\n\n";
+
+		echo "             - 12 minutes or more on call\n";
+		echo "             - Over 30 minutes on call\n";
+
+	}
+	else
+	{
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	echo "********************************* NESSUN OPERATORE IN CONVERSAZIONE *********************************\n";
+	echo "**************************************************************************************\n";
+	echo "**************************************************************************************\n";
+	}
+
+
+?>
+
+ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin.php new file mode 100644 index 00000000..641f0af9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin.php @@ -0,0 +1,25016 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +###################################################################################################### +###################################################################################################### +####### static variable settings for display options +###################################################################################################### +###################################################################################################### + +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$campaigns_color = '#FFCC99'; +$lists_color = '#FFCCCC'; +$ingroups_color = '#CC99FF'; +$remoteagent_color ='#CCFFCC'; +$usergroups_color = '#CCFFFF'; +$scripts_color = '#99FFCC'; +$filters_color = '#CCCCCC'; +$admin_color = '#FF99FF'; +$reports_color = '#99FF33'; + $times_color = '#FF33FF'; + $shifts_color = '#FF33FF'; + $phones_color = '#FF33FF'; + $conference_color = '#FF33FF'; + $server_color = '#FF33FF'; + $templates_color = '#FF33FF'; + $carriers_color = '#FF33FF'; + $settings_color = '#FF33FF'; + $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; +$subcamp_color = '#FF9933'; +$users_font = 'BLACK'; +$campaigns_font = 'BLACK'; +$lists_font = 'BLACK'; +$ingroups_font = 'BLACK'; +$remoteagent_font = 'BLACK'; +$usergroups_font = 'BLACK'; +$scripts_font = 'BLACK'; +$filters_font = 'BLACK'; +$admin_font = 'BLACK'; +$reports_font = 'BLACK'; + $times_font = 'BLACK'; + $phones_font = 'BLACK'; + $conference_font = 'BLACK'; + $server_font = 'BLACK'; + $settings_font = 'BLACK'; + $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; +$subcamp_font = 'BLACK'; + +### comment this section out for colorful section headings +$users_color = '#E6E6E6'; +$campaigns_color = '#E6E6E6'; +$lists_color = '#E6E6E6'; +$ingroups_color = '#E6E6E6'; +$remoteagent_color ='#E6E6E6'; +$usergroups_color = '#E6E6E6'; +$scripts_color = '#E6E6E6'; +$filters_color = '#E6E6E6'; +$admin_color = '#E6E6E6'; +$reports_color = '#E6E6E6'; + $times_color = '#C6C6C6'; + $shifts_color = '#C6C6C6'; + $phones_color = '#C6C6C6'; + $conference_color = '#C6C6C6'; + $server_color = '#C6C6C6'; + $templates_color = '#C6C6C6'; + $carriers_color = '#C6C6C6'; + $settings_color = '#C6C6C6'; + $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; +$subcamp_color = '#C6C6C6'; +### + + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +###################################################################################################### +###################################################################################################### +####### Form variable declaration +###################################################################################################### +###################################################################################################### + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["active"])) {$active=$_GET["active"];} + elseif (isset($_POST["active"])) {$active=$_POST["active"];} +if (isset($_GET["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_GET["adaptive_dl_diff_target"];} + elseif (isset($_POST["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_POST["adaptive_dl_diff_target"];} +if (isset($_GET["adaptive_dropped_percentage"])) {$adaptive_dropped_percentage=$_GET["adaptive_dropped_percentage"];} + elseif (isset($_POST["adaptive_dropped_percentage"])){$adaptive_dropped_percentage=$_POST["adaptive_dropped_percentage"];} +if (isset($_GET["adaptive_intensity"])) {$adaptive_intensity=$_GET["adaptive_intensity"];} + elseif (isset($_POST["adaptive_intensity"])) {$adaptive_intensity=$_POST["adaptive_intensity"];} +if (isset($_GET["adaptive_latest_server_time"])) {$adaptive_latest_server_time=$_GET["adaptive_latest_server_time"];} + elseif (isset($_POST["adaptive_latest_server_time"])){$adaptive_latest_server_time=$_POST["adaptive_latest_server_time"];} +if (isset($_GET["adaptive_maximum_level"])) {$adaptive_maximum_level=$_GET["adaptive_maximum_level"];} + elseif (isset($_POST["adaptive_maximum_level"])) {$adaptive_maximum_level=$_POST["adaptive_maximum_level"];} +if (isset($_GET["SUB"])) {$SUB=$_GET["SUB"];} + elseif (isset($_POST["SUB"])) {$SUB=$_POST["SUB"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["admin_hangup_enabled"])) {$admin_hangup_enabled=$_GET["admin_hangup_enabled"];} + elseif (isset($_POST["admin_hangup_enabled"])) {$admin_hangup_enabled=$_POST["admin_hangup_enabled"];} +if (isset($_GET["admin_hijack_enabled"])) {$admin_hijack_enabled=$_GET["admin_hijack_enabled"];} + elseif (isset($_POST["admin_hijack_enabled"])) {$admin_hijack_enabled=$_POST["admin_hijack_enabled"];} +if (isset($_GET["admin_monitor_enabled"])) {$admin_monitor_enabled=$_GET["admin_monitor_enabled"];} + elseif (isset($_POST["admin_monitor_enabled"])) {$admin_monitor_enabled=$_POST["admin_monitor_enabled"];} +if (isset($_GET["AFLogging_enabled"])) {$AFLogging_enabled=$_GET["AFLogging_enabled"];} + elseif (isset($_POST["AFLogging_enabled"])) {$AFLogging_enabled=$_POST["AFLogging_enabled"];} +if (isset($_GET["agent_choose_ingroups"])) {$agent_choose_ingroups=$_GET["agent_choose_ingroups"];} + elseif (isset($_POST["agent_choose_ingroups"])) {$agent_choose_ingroups=$_POST["agent_choose_ingroups"];} +if (isset($_GET["agentcall_manual"])) {$agentcall_manual=$_GET["agentcall_manual"];} + elseif (isset($_POST["agentcall_manual"])) {$agentcall_manual=$_POST["agentcall_manual"];} +if (isset($_GET["agentonly_callbacks"])) {$agentonly_callbacks=$_GET["agentonly_callbacks"];} + elseif (isset($_POST["agentonly_callbacks"])) {$agentonly_callbacks=$_POST["agentonly_callbacks"];} +if (isset($_GET["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_GET["AGI_call_logging_enabled"];} + elseif (isset($_POST["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_POST["AGI_call_logging_enabled"];} +if (isset($_GET["agi_output"])) {$agi_output=$_GET["agi_output"];} + elseif (isset($_POST["agi_output"])) {$agi_output=$_POST["agi_output"];} +if (isset($_GET["allcalls_delay"])) {$allcalls_delay=$_GET["allcalls_delay"];} + elseif (isset($_POST["allcalls_delay"])) {$allcalls_delay=$_POST["allcalls_delay"];} +if (isset($_GET["allow_closers"])) {$allow_closers=$_GET["allow_closers"];} + elseif (isset($_POST["allow_closers"])) {$allow_closers=$_POST["allow_closers"];} +if (isset($_GET["alt_number_dialing"])) {$alt_number_dialing=$_GET["alt_number_dialing"];} + elseif (isset($_POST["alt_number_dialing"])) {$alt_number_dialing=$_POST["alt_number_dialing"];} +if (isset($_GET["alter_agent_interface_options"])) {$alter_agent_interface_options=$_GET["alter_agent_interface_options"];} + elseif (isset($_POST["alter_agent_interface_options"])) {$alter_agent_interface_options=$_POST["alter_agent_interface_options"];} +if (isset($_GET["am_message_exten"])) {$am_message_exten=$_GET["am_message_exten"];} + elseif (isset($_POST["am_message_exten"])) {$am_message_exten=$_POST["am_message_exten"];} +if (isset($_GET["amd_send_to_vmx"])) {$amd_send_to_vmx=$_GET["amd_send_to_vmx"];} + elseif (isset($_POST["amd_send_to_vmx"])) {$amd_send_to_vmx=$_POST["amd_send_to_vmx"];} +if (isset($_GET["answer_transfer_agent"])) {$answer_transfer_agent=$_GET["answer_transfer_agent"];} + elseif (isset($_POST["answer_transfer_agent"])) {$answer_transfer_agent=$_POST["answer_transfer_agent"];} +if (isset($_GET["ast_admin_access"])) {$ast_admin_access=$_GET["ast_admin_access"];} + elseif (isset($_POST["ast_admin_access"])) {$ast_admin_access=$_POST["ast_admin_access"];} +if (isset($_GET["ast_delete_phones"])) {$ast_delete_phones=$_GET["ast_delete_phones"];} + elseif (isset($_POST["ast_delete_phones"])) {$ast_delete_phones=$_POST["ast_delete_phones"];} +if (isset($_GET["asterisk_version"])) {$asterisk_version=$_GET["asterisk_version"];} + elseif (isset($_POST["asterisk_version"])) {$asterisk_version=$_POST["asterisk_version"];} +if (isset($_GET["ASTmgrSECRET"])) {$ASTmgrSECRET=$_GET["ASTmgrSECRET"];} + elseif (isset($_POST["ASTmgrSECRET"])) {$ASTmgrSECRET=$_POST["ASTmgrSECRET"];} +if (isset($_GET["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_GET["ASTmgrUSERNAME"];} + elseif (isset($_POST["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_POST["ASTmgrUSERNAME"];} +if (isset($_GET["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_GET["ASTmgrUSERNAMElisten"];} + elseif (isset($_POST["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_POST["ASTmgrUSERNAMElisten"];} +if (isset($_GET["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_GET["ASTmgrUSERNAMEsend"];} + elseif (isset($_POST["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_POST["ASTmgrUSERNAMEsend"];} +if (isset($_GET["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_GET["ASTmgrUSERNAMEupdate"];} + elseif (isset($_POST["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_POST["ASTmgrUSERNAMEupdate"];} +if (isset($_GET["attempt_delay"])) {$attempt_delay=$_GET["attempt_delay"];} + elseif (isset($_POST["attempt_delay"])) {$attempt_delay=$_POST["attempt_delay"];} +if (isset($_GET["attempt_maximum"])) {$attempt_maximum=$_GET["attempt_maximum"];} + elseif (isset($_POST["attempt_maximum"])) {$attempt_maximum=$_POST["attempt_maximum"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["auto_dial_next_number"])) {$auto_dial_next_number=$_GET["auto_dial_next_number"];} + elseif (isset($_POST["auto_dial_next_number"])) {$auto_dial_next_number=$_POST["auto_dial_next_number"];} +if (isset($_GET["available_only_ratio_tally"])) {$available_only_ratio_tally=$_GET["available_only_ratio_tally"];} + elseif (isset($_POST["available_only_ratio_tally"])){$available_only_ratio_tally=$_POST["available_only_ratio_tally"];} +if (isset($_GET["call_out_number_group"])) {$call_out_number_group=$_GET["call_out_number_group"];} + elseif (isset($_POST["call_out_number_group"])) {$call_out_number_group=$_POST["call_out_number_group"];} +if (isset($_GET["call_parking_enabled"])) {$call_parking_enabled=$_GET["call_parking_enabled"];} + elseif (isset($_POST["call_parking_enabled"])) {$call_parking_enabled=$_POST["call_parking_enabled"];} +if (isset($_GET["call_time_comments"])) {$call_time_comments=$_GET["call_time_comments"];} + elseif (isset($_POST["call_time_comments"])) {$call_time_comments=$_POST["call_time_comments"];} +if (isset($_GET["call_time_id"])) {$call_time_id=$_GET["call_time_id"];} + elseif (isset($_POST["call_time_id"])) {$call_time_id=$_POST["call_time_id"];} +if (isset($_GET["call_time_name"])) {$call_time_name=$_GET["call_time_name"];} + elseif (isset($_POST["call_time_name"])) {$call_time_name=$_POST["call_time_name"];} +if (isset($_GET["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_GET["CallerID_popup_enabled"];} + elseif (isset($_POST["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_POST["CallerID_popup_enabled"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["campaign_detail"])) {$campaign_detail=$_GET["campaign_detail"];} + elseif (isset($_POST["campaign_detail"])) {$campaign_detail=$_POST["campaign_detail"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["campaign_name"])) {$campaign_name=$_GET["campaign_name"];} + elseif (isset($_POST["campaign_name"])) {$campaign_name=$_POST["campaign_name"];} +if (isset($_GET["campaign_rec_exten"])) {$campaign_rec_exten=$_GET["campaign_rec_exten"];} + elseif (isset($_POST["campaign_rec_exten"])) {$campaign_rec_exten=$_POST["campaign_rec_exten"];} +if (isset($_GET["campaign_rec_filename"])) {$campaign_rec_filename=$_GET["campaign_rec_filename"];} + elseif (isset($_POST["campaign_rec_filename"])) {$campaign_rec_filename=$_POST["campaign_rec_filename"];} +if (isset($_GET["ingroup_rec_filename"])) {$ingroup_rec_filename=$_GET["ingroup_rec_filename"];} + elseif (isset($_POST["ingroup_rec_filename"])) {$ingroup_rec_filename=$_POST["ingroup_rec_filename"];} +if (isset($_GET["campaign_recording"])) {$campaign_recording=$_GET["campaign_recording"];} + elseif (isset($_POST["campaign_recording"])) {$campaign_recording=$_POST["campaign_recording"];} +if (isset($_GET["campaign_vdad_exten"])) {$campaign_vdad_exten=$_GET["campaign_vdad_exten"];} + elseif (isset($_POST["campaign_vdad_exten"])) {$campaign_vdad_exten=$_POST["campaign_vdad_exten"];} +if (isset($_GET["change_agent_campaign"])) {$change_agent_campaign=$_GET["change_agent_campaign"];} + elseif (isset($_POST["change_agent_campaign"])) {$change_agent_campaign=$_POST["change_agent_campaign"];} +if (isset($_GET["client_browser"])) {$client_browser=$_GET["client_browser"];} + elseif (isset($_POST["client_browser"])) {$client_browser=$_POST["client_browser"];} +if (isset($_GET["closer_default_blended"])) {$closer_default_blended=$_GET["closer_default_blended"];} + elseif (isset($_POST["closer_default_blended"])) {$closer_default_blended=$_POST["closer_default_blended"];} +if (isset($_GET["company"])) {$company=$_GET["company"];} + elseif (isset($_POST["company"])) {$company=$_POST["company"];} +if (isset($_GET["computer_ip"])) {$computer_ip=$_GET["computer_ip"];} + elseif (isset($_POST["computer_ip"])) {$computer_ip=$_POST["computer_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["conf_on_extension"])) {$conf_on_extension=$_GET["conf_on_extension"];} + elseif (isset($_POST["conf_on_extension"])) {$conf_on_extension=$_POST["conf_on_extension"];} +if (isset($_GET["conferencing_enabled"])) {$conferencing_enabled=$_GET["conferencing_enabled"];} + elseif (isset($_POST["conferencing_enabled"])) {$conferencing_enabled=$_POST["conferencing_enabled"];} +if (isset($_GET["CoNfIrM"])) {$CoNfIrM=$_GET["CoNfIrM"];} + elseif (isset($_POST["CoNfIrM"])) {$CoNfIrM=$_POST["CoNfIrM"];} +if (isset($_GET["ct_default_start"])) {$ct_default_start=$_GET["ct_default_start"];} + elseif (isset($_POST["ct_default_start"])) {$ct_default_start=$_POST["ct_default_start"];} +if (isset($_GET["ct_default_stop"])) {$ct_default_stop=$_GET["ct_default_stop"];} + elseif (isset($_POST["ct_default_stop"])) {$ct_default_stop=$_POST["ct_default_stop"];} +if (isset($_GET["ct_friday_start"])) {$ct_friday_start=$_GET["ct_friday_start"];} + elseif (isset($_POST["ct_friday_start"])) {$ct_friday_start=$_POST["ct_friday_start"];} +if (isset($_GET["ct_friday_stop"])) {$ct_friday_stop=$_GET["ct_friday_stop"];} + elseif (isset($_POST["ct_friday_stop"])) {$ct_friday_stop=$_POST["ct_friday_stop"];} +if (isset($_GET["ct_monday_start"])) {$ct_monday_start=$_GET["ct_monday_start"];} + elseif (isset($_POST["ct_monday_start"])) {$ct_monday_start=$_POST["ct_monday_start"];} +if (isset($_GET["ct_monday_stop"])) {$ct_monday_stop=$_GET["ct_monday_stop"];} + elseif (isset($_POST["ct_monday_stop"])) {$ct_monday_stop=$_POST["ct_monday_stop"];} +if (isset($_GET["ct_saturday_start"])) {$ct_saturday_start=$_GET["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"];} + elseif (isset($_POST["ct_saturday_stop"])) {$ct_saturday_stop=$_POST["ct_saturday_stop"];} +if (isset($_GET["ct_sunday_start"])) {$ct_sunday_start=$_GET["ct_sunday_start"];} + elseif (isset($_POST["ct_sunday_start"])) {$ct_sunday_start=$_POST["ct_sunday_start"];} +if (isset($_GET["ct_sunday_stop"])) {$ct_sunday_stop=$_GET["ct_sunday_stop"];} + elseif (isset($_POST["ct_sunday_stop"])) {$ct_sunday_stop=$_POST["ct_sunday_stop"];} +if (isset($_GET["ct_thursday_start"])) {$ct_thursday_start=$_GET["ct_thursday_start"];} + elseif (isset($_POST["ct_thursday_start"])) {$ct_thursday_start=$_POST["ct_thursday_start"];} +if (isset($_GET["ct_thursday_stop"])) {$ct_thursday_stop=$_GET["ct_thursday_stop"];} + elseif (isset($_POST["ct_thursday_stop"])) {$ct_thursday_stop=$_POST["ct_thursday_stop"];} +if (isset($_GET["ct_tuesday_start"])) {$ct_tuesday_start=$_GET["ct_tuesday_start"];} + elseif (isset($_POST["ct_tuesday_start"])) {$ct_tuesday_start=$_POST["ct_tuesday_start"];} +if (isset($_GET["ct_tuesday_stop"])) {$ct_tuesday_stop=$_GET["ct_tuesday_stop"];} + elseif (isset($_POST["ct_tuesday_stop"])) {$ct_tuesday_stop=$_POST["ct_tuesday_stop"];} +if (isset($_GET["ct_wednesday_start"])) {$ct_wednesday_start=$_GET["ct_wednesday_start"];} + elseif (isset($_POST["ct_wednesday_start"])) {$ct_wednesday_start=$_POST["ct_wednesday_start"];} +if (isset($_GET["ct_wednesday_stop"])) {$ct_wednesday_stop=$_GET["ct_wednesday_stop"];} + elseif (isset($_POST["ct_wednesday_stop"])) {$ct_wednesday_stop=$_POST["ct_wednesday_stop"];} +if (isset($_GET["DBX_database"])) {$DBX_database=$_GET["DBX_database"];} + elseif (isset($_POST["DBX_database"])) {$DBX_database=$_POST["DBX_database"];} +if (isset($_GET["DBX_pass"])) {$DBX_pass=$_GET["DBX_pass"];} + elseif (isset($_POST["DBX_pass"])) {$DBX_pass=$_POST["DBX_pass"];} +if (isset($_GET["DBX_port"])) {$DBX_port=$_GET["DBX_port"];} + elseif (isset($_POST["DBX_port"])) {$DBX_port=$_POST["DBX_port"];} +if (isset($_GET["DBX_server"])) {$DBX_server=$_GET["DBX_server"];} + elseif (isset($_POST["DBX_server"])) {$DBX_server=$_POST["DBX_server"];} +if (isset($_GET["DBX_user"])) {$DBX_user=$_GET["DBX_user"];} + elseif (isset($_POST["DBX_user"])) {$DBX_user=$_POST["DBX_user"];} +if (isset($_GET["DBY_database"])) {$DBY_database=$_GET["DBY_database"];} + elseif (isset($_POST["DBY_database"])) {$DBY_database=$_POST["DBY_database"];} +if (isset($_GET["DBY_pass"])) {$DBY_pass=$_GET["DBY_pass"];} + elseif (isset($_POST["DBY_pass"])) {$DBY_pass=$_POST["DBY_pass"];} +if (isset($_GET["DBY_port"])) {$DBY_port=$_GET["DBY_port"];} + elseif (isset($_POST["DBY_port"])) {$DBY_port=$_POST["DBY_port"];} +if (isset($_GET["DBY_server"])) {$DBY_server=$_GET["DBY_server"];} + elseif (isset($_POST["DBY_server"])) {$DBY_server=$_POST["DBY_server"];} +if (isset($_GET["DBY_user"])) {$DBY_user=$_GET["DBY_user"];} + elseif (isset($_POST["DBY_user"])) {$DBY_user=$_POST["DBY_user"];} +if (isset($_GET["delete_call_times"])) {$delete_call_times=$_GET["delete_call_times"];} + elseif (isset($_POST["delete_call_times"])) {$delete_call_times=$_POST["delete_call_times"];} +if (isset($_GET["delete_campaigns"])) {$delete_campaigns=$_GET["delete_campaigns"];} + elseif (isset($_POST["delete_campaigns"])) {$delete_campaigns=$_POST["delete_campaigns"];} +if (isset($_GET["delete_filters"])) {$delete_filters=$_GET["delete_filters"];} + elseif (isset($_POST["delete_filters"])) {$delete_filters=$_POST["delete_filters"];} +if (isset($_GET["delete_ingroups"])) {$delete_ingroups=$_GET["delete_ingroups"];} + elseif (isset($_POST["delete_ingroups"])) {$delete_ingroups=$_POST["delete_ingroups"];} +if (isset($_GET["delete_lists"])) {$delete_lists=$_GET["delete_lists"];} + elseif (isset($_POST["delete_lists"])) {$delete_lists=$_POST["delete_lists"];} +if (isset($_GET["delete_remote_agents"])) {$delete_remote_agents=$_GET["delete_remote_agents"];} + elseif (isset($_POST["delete_remote_agents"])) {$delete_remote_agents=$_POST["delete_remote_agents"];} +if (isset($_GET["delete_scripts"])) {$delete_scripts=$_GET["delete_scripts"];} + elseif (isset($_POST["delete_scripts"])) {$delete_scripts=$_POST["delete_scripts"];} +if (isset($_GET["delete_user_groups"])) {$delete_user_groups=$_GET["delete_user_groups"];} + elseif (isset($_POST["delete_user_groups"])) {$delete_user_groups=$_POST["delete_user_groups"];} +if (isset($_GET["delete_users"])) {$delete_users=$_GET["delete_users"];} + elseif (isset($_POST["delete_users"])) {$delete_users=$_POST["delete_users"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["dial_status_a"])) {$dial_status_a=$_GET["dial_status_a"];} + elseif (isset($_POST["dial_status_a"])) {$dial_status_a=$_POST["dial_status_a"];} +if (isset($_GET["dial_status_b"])) {$dial_status_b=$_GET["dial_status_b"];} + elseif (isset($_POST["dial_status_b"])) {$dial_status_b=$_POST["dial_status_b"];} +if (isset($_GET["dial_status_c"])) {$dial_status_c=$_GET["dial_status_c"];} + elseif (isset($_POST["dial_status_c"])) {$dial_status_c=$_POST["dial_status_c"];} +if (isset($_GET["dial_status_d"])) {$dial_status_d=$_GET["dial_status_d"];} + elseif (isset($_POST["dial_status_d"])) {$dial_status_d=$_POST["dial_status_d"];} +if (isset($_GET["dial_status_e"])) {$dial_status_e=$_GET["dial_status_e"];} + elseif (isset($_POST["dial_status_e"])) {$dial_status_e=$_POST["dial_status_e"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dialplan_number"])) {$dialplan_number=$_GET["dialplan_number"];} + elseif (isset($_POST["dialplan_number"])) {$dialplan_number=$_POST["dialplan_number"];} +if (isset($_GET["drop_call_seconds"])) {$drop_call_seconds=$_GET["drop_call_seconds"];} + elseif (isset($_POST["drop_call_seconds"])) {$drop_call_seconds=$_POST["drop_call_seconds"];} +if (isset($_GET["drop_exten"])) {$drop_exten=$_GET["drop_exten"];} + elseif (isset($_POST["drop_exten"])) {$drop_exten=$_POST["drop_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["dtmf_send_extension"])) {$dtmf_send_extension=$_GET["dtmf_send_extension"];} + elseif (isset($_POST["dtmf_send_extension"])) {$dtmf_send_extension=$_POST["dtmf_send_extension"];} +if (isset($_GET["enable_fast_refresh"])) {$enable_fast_refresh=$_GET["enable_fast_refresh"];} + elseif (isset($_POST["enable_fast_refresh"])) {$enable_fast_refresh=$_POST["enable_fast_refresh"];} +if (isset($_GET["enable_persistant_mysql"])) {$enable_persistant_mysql=$_GET["enable_persistant_mysql"];} + elseif (isset($_POST["enable_persistant_mysql"])) {$enable_persistant_mysql=$_POST["enable_persistant_mysql"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["fast_refresh_rate"])) {$fast_refresh_rate=$_GET["fast_refresh_rate"];} + elseif (isset($_POST["fast_refresh_rate"])) {$fast_refresh_rate=$_POST["fast_refresh_rate"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["fronter_display"])) {$fronter_display=$_GET["fronter_display"];} + elseif (isset($_POST["fronter_display"])) {$fronter_display=$_POST["fronter_display"];} +if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];} + elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["get_call_launch"])) {$get_call_launch=$_GET["get_call_launch"];} + elseif (isset($_POST["get_call_launch"])) {$get_call_launch=$_POST["get_call_launch"];} +if (isset($_GET["group_color"])) {$group_color=$_GET["group_color"];} + elseif (isset($_POST["group_color"])) {$group_color=$_POST["group_color"];} +if (isset($_GET["group_id"])) {$group_id=$_GET["group_id"];} + elseif (isset($_POST["group_id"])) {$group_id=$_POST["group_id"];} +if (isset($_GET["group_name"])) {$group_name=$_GET["group_name"];} + elseif (isset($_POST["group_name"])) {$group_name=$_POST["group_name"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["XFERgroups"])) {$XFERgroups=$_GET["XFERgroups"];} + elseif (isset($_POST["XFERgroups"])) {$XFERgroups=$_POST["XFERgroups"];} +if (isset($_GET["HKstatus"])) {$HKstatus=$_GET["HKstatus"];} + elseif (isset($_POST["HKstatus"])) {$HKstatus=$_POST["HKstatus"];} +if (isset($_GET["hopper_level"])) {$hopper_level=$_GET["hopper_level"];} + elseif (isset($_POST["hopper_level"])) {$hopper_level=$_POST["hopper_level"];} +if (isset($_GET["hotkey"])) {$hotkey=$_GET["hotkey"];} + elseif (isset($_POST["hotkey"])) {$hotkey=$_POST["hotkey"];} +if (isset($_GET["hotkeys_active"])) {$hotkeys_active=$_GET["hotkeys_active"];} + elseif (isset($_POST["hotkeys_active"])) {$hotkeys_active=$_POST["hotkeys_active"];} +if (isset($_GET["install_directory"])) {$install_directory=$_GET["install_directory"];} + elseif (isset($_POST["install_directory"])) {$install_directory=$_POST["install_directory"];} +if (isset($_GET["lead_filter_comments"])) {$lead_filter_comments=$_GET["lead_filter_comments"];} + elseif (isset($_POST["lead_filter_comments"])) {$lead_filter_comments=$_POST["lead_filter_comments"];} +if (isset($_GET["lead_filter_id"])) {$lead_filter_id=$_GET["lead_filter_id"];} + elseif (isset($_POST["lead_filter_id"])) {$lead_filter_id=$_POST["lead_filter_id"];} +if (isset($_GET["lead_filter_name"])) {$lead_filter_name=$_GET["lead_filter_name"];} + elseif (isset($_POST["lead_filter_name"])) {$lead_filter_name=$_POST["lead_filter_name"];} +if (isset($_GET["lead_filter_sql"])) {$lead_filter_sql=$_GET["lead_filter_sql"];} + elseif (isset($_POST["lead_filter_sql"])) {$lead_filter_sql=$_POST["lead_filter_sql"];} +if (isset($_GET["lead_order"])) {$lead_order=$_GET["lead_order"];} + elseif (isset($_POST["lead_order"])) {$lead_order=$_POST["lead_order"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["list_name"])) {$list_name=$_GET["list_name"];} + elseif (isset($_POST["list_name"])) {$list_name=$_POST["list_name"];} +if (isset($_GET["load_leads"])) {$load_leads=$_GET["load_leads"];} + elseif (isset($_POST["load_leads"])) {$load_leads=$_POST["load_leads"];} +if (isset($_GET["local_call_time"])) {$local_call_time=$_GET["local_call_time"];} + elseif (isset($_POST["local_call_time"])) {$local_call_time=$_POST["local_call_time"];} +if (isset($_GET["local_gmt"])) {$local_gmt=$_GET["local_gmt"];} + elseif (isset($_POST["local_gmt"])) {$local_gmt=$_POST["local_gmt"];} +if (isset($_GET["local_web_callerID_URL"])) {$local_web_callerID_URL=$_GET["local_web_callerID_URL"];} + elseif (isset($_POST["local_web_callerID_URL"])) {$local_web_callerID_URL=$_POST["local_web_callerID_URL"];} +if (isset($_GET["login"])) {$login=$_GET["login"];} + elseif (isset($_POST["login"])) {$login=$_POST["login"];} +if (isset($_GET["login_campaign"])) {$login_campaign=$_GET["login_campaign"];} + elseif (isset($_POST["login_campaign"])) {$login_campaign=$_POST["login_campaign"];} +if (isset($_GET["login_pass"])) {$login_pass=$_GET["login_pass"];} + elseif (isset($_POST["login_pass"])) {$login_pass=$_POST["login_pass"];} +if (isset($_GET["login_user"])) {$login_user=$_GET["login_user"];} + elseif (isset($_POST["login_user"])) {$login_user=$_POST["login_user"];} +if (isset($_GET["max_vicidial_trunks"])) {$max_vicidial_trunks=$_GET["max_vicidial_trunks"];} + elseif (isset($_POST["max_vicidial_trunks"])) {$max_vicidial_trunks=$_POST["max_vicidial_trunks"];} +if (isset($_GET["modify_call_times"])) {$modify_call_times=$_GET["modify_call_times"];} + elseif (isset($_POST["modify_call_times"])) {$modify_call_times=$_POST["modify_call_times"];} +if (isset($_GET["modify_leads"])) {$modify_leads=$_GET["modify_leads"];} + elseif (isset($_POST["modify_leads"])) {$modify_leads=$_POST["modify_leads"];} +if (isset($_GET["monitor_prefix"])) {$monitor_prefix=$_GET["monitor_prefix"];} + elseif (isset($_POST["monitor_prefix"])) {$monitor_prefix=$_POST["monitor_prefix"];} +if (isset($_GET["next_agent_call"])) {$next_agent_call=$_GET["next_agent_call"];} + elseif (isset($_POST["next_agent_call"])) {$next_agent_call=$_POST["next_agent_call"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["old_campaign_id"])) {$old_campaign_id=$_GET["old_campaign_id"];} + elseif (isset($_POST["old_campaign_id"])) {$old_campaign_id=$_POST["old_campaign_id"];} +if (isset($_GET["old_conf_exten"])) {$old_conf_exten=$_GET["old_conf_exten"];} + elseif (isset($_POST["old_conf_exten"])) {$old_conf_exten=$_POST["old_conf_exten"];} +if (isset($_GET["old_extension"])) {$old_extension=$_GET["old_extension"];} + elseif (isset($_POST["old_extension"])) {$old_extension=$_POST["old_extension"];} +if (isset($_GET["old_server_id"])) {$old_server_id=$_GET["old_server_id"];} + elseif (isset($_POST["old_server_id"])) {$old_server_id=$_POST["old_server_id"];} +if (isset($_GET["old_server_ip"])) {$old_server_ip=$_GET["old_server_ip"];} + elseif (isset($_POST["old_server_ip"])) {$old_server_ip=$_POST["old_server_ip"];} +if (isset($_GET["OLDuser_group"])) {$OLDuser_group=$_GET["OLDuser_group"];} + elseif (isset($_POST["OLDuser_group"])) {$OLDuser_group=$_POST["OLDuser_group"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["park_ext"])) {$park_ext=$_GET["park_ext"];} + elseif (isset($_POST["park_ext"])) {$park_ext=$_POST["park_ext"];} +if (isset($_GET["park_file_name"])) {$park_file_name=$_GET["park_file_name"];} + elseif (isset($_POST["park_file_name"])) {$park_file_name=$_POST["park_file_name"];} +if (isset($_GET["park_on_extension"])) {$park_on_extension=$_GET["park_on_extension"];} + elseif (isset($_POST["park_on_extension"])) {$park_on_extension=$_POST["park_on_extension"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["phone_type"])) {$phone_type=$_GET["phone_type"];} + elseif (isset($_POST["phone_type"])) {$phone_type=$_POST["phone_type"];} +if (isset($_GET["picture"])) {$picture=$_GET["picture"];} + elseif (isset($_POST["picture"])) {$picture=$_POST["picture"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_GET["QUEUE_ACTION_enabled"];} + elseif (isset($_POST["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_POST["QUEUE_ACTION_enabled"];} +if (isset($_GET["recording_exten"])) {$recording_exten=$_GET["recording_exten"];} + elseif (isset($_POST["recording_exten"])) {$recording_exten=$_POST["recording_exten"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["reset_hopper"])) {$reset_hopper=$_GET["reset_hopper"];} + elseif (isset($_POST["reset_hopper"])) {$reset_hopper=$_POST["reset_hopper"];} +if (isset($_GET["reset_list"])) {$reset_list=$_GET["reset_list"];} + elseif (isset($_POST["reset_list"])) {$reset_list=$_POST["reset_list"];} +if (isset($_GET["safe_harbor_exten"])) {$safe_harbor_exten=$_GET["safe_harbor_exten"];} + elseif (isset($_POST["safe_harbor_exten"])) {$safe_harbor_exten=$_POST["safe_harbor_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["scheduled_callbacks"])) {$scheduled_callbacks=$_GET["scheduled_callbacks"];} + elseif (isset($_POST["scheduled_callbacks"])) {$scheduled_callbacks=$_POST["scheduled_callbacks"];} +if (isset($_GET["script_comments"])) {$script_comments=$_GET["script_comments"];} + elseif (isset($_POST["script_comments"])) {$script_comments=$_POST["script_comments"];} +if (isset($_GET["script_id"])) {$script_id=$_GET["script_id"];} + elseif (isset($_POST["script_id"])) {$script_id=$_POST["script_id"];} +if (isset($_GET["script_name"])) {$script_name=$_GET["script_name"];} + elseif (isset($_POST["script_name"])) {$script_name=$_POST["script_name"];} +if (isset($_GET["script_text"])) {$script_text=$_GET["script_text"];} + elseif (isset($_POST["script_text"])) {$script_text=$_POST["script_text"];} +if (isset($_GET["selectable"])) {$selectable=$_GET["selectable"];} + elseif (isset($_POST["selectable"])) {$selectable=$_POST["selectable"];} +if (isset($_GET["server_description"])) {$server_description=$_GET["server_description"];} + elseif (isset($_POST["server_description"])) {$server_description=$_POST["server_description"];} +if (isset($_GET["server_id"])) {$server_id=$_GET["server_id"];} + elseif (isset($_POST["server_id"])) {$server_id=$_POST["server_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +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"];} +if (isset($_GET["state_rule"])) {$state_rule=$_GET["state_rule"];} + elseif (isset($_POST["state_rule"])) {$state_rule=$_POST["state_rule"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["status_name"])) {$status_name=$_GET["status_name"];} + elseif (isset($_POST["status_name"])) {$status_name=$_POST["status_name"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["sys_perf_log"])) {$sys_perf_log=$_GET["sys_perf_log"];} + elseif (isset($_POST["sys_perf_log"])) {$sys_perf_log=$_POST["sys_perf_log"];} +if (isset($_GET["telnet_host"])) {$telnet_host=$_GET["telnet_host"];} + elseif (isset($_POST["telnet_host"])) {$telnet_host=$_POST["telnet_host"];} +if (isset($_GET["telnet_port"])) {$telnet_port=$_GET["telnet_port"];} + elseif (isset($_POST["telnet_port"])) {$telnet_port=$_POST["telnet_port"];} +if (isset($_GET["updater_check_enabled"])) {$updater_check_enabled=$_GET["updater_check_enabled"];} + elseif (isset($_POST["updater_check_enabled"])) {$updater_check_enabled=$_POST["updater_check_enabled"];} +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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["user_level"])) {$user_level=$_GET["user_level"];} + elseif (isset($_POST["user_level"])) {$user_level=$_POST["user_level"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["user_switching_enabled"])) {$user_switching_enabled=$_GET["user_switching_enabled"];} + elseif (isset($_POST["user_switching_enabled"])) {$user_switching_enabled=$_POST["user_switching_enabled"];} +if (isset($_GET["vd_server_logs"])) {$vd_server_logs=$_GET["vd_server_logs"];} + elseif (isset($_POST["vd_server_logs"])) {$vd_server_logs=$_POST["vd_server_logs"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_GET["VICIDIAL_park_on_extension"];} + elseif (isset($_POST["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_POST["VICIDIAL_park_on_extension"];} +if (isset($_GET["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_GET["VICIDIAL_park_on_filename"];} + elseif (isset($_POST["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_POST["VICIDIAL_park_on_filename"];} +if (isset($_GET["vicidial_recording"])) {$vicidial_recording=$_GET["vicidial_recording"];} + elseif (isset($_POST["vicidial_recording"])) {$vicidial_recording=$_POST["vicidial_recording"];} +if (isset($_GET["vicidial_transfers"])) {$vicidial_transfers=$_GET["vicidial_transfers"];} + elseif (isset($_POST["vicidial_transfers"])) {$vicidial_transfers=$_POST["vicidial_transfers"];} +if (isset($_GET["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_GET["VICIDIAL_web_URL"];} + elseif (isset($_POST["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_POST["VICIDIAL_web_URL"];} +if (isset($_GET["voicemail_button_enabled"])) {$voicemail_button_enabled=$_GET["voicemail_button_enabled"];} + elseif (isset($_POST["voicemail_button_enabled"])) {$voicemail_button_enabled=$_POST["voicemail_button_enabled"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["voicemail_ext"])) {$voicemail_ext=$_GET["voicemail_ext"];} + elseif (isset($_POST["voicemail_ext"])) {$voicemail_ext=$_POST["voicemail_ext"];} +if (isset($_GET["voicemail_exten"])) {$voicemail_exten=$_GET["voicemail_exten"];} + elseif (isset($_POST["voicemail_exten"])) {$voicemail_exten=$_POST["voicemail_exten"];} +if (isset($_GET["voicemail_id"])) {$voicemail_id=$_GET["voicemail_id"];} + elseif (isset($_POST["voicemail_id"])) {$voicemail_id=$_POST["voicemail_id"];} +if (isset($_GET["web_form_address"])) {$web_form_address=$_GET["web_form_address"];} + elseif (isset($_POST["web_form_address"])) {$web_form_address=$_POST["web_form_address"];} +if (isset($_GET["wrapup_message"])) {$wrapup_message=$_GET["wrapup_message"];} + elseif (isset($_POST["wrapup_message"])) {$wrapup_message=$_POST["wrapup_message"];} +if (isset($_GET["wrapup_seconds"])) {$wrapup_seconds=$_GET["wrapup_seconds"];} + elseif (isset($_POST["wrapup_seconds"])) {$wrapup_seconds=$_POST["wrapup_seconds"];} +if (isset($_GET["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_GET["xferconf_a_dtmf"];} + elseif (isset($_POST["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_POST["xferconf_a_dtmf"];} +if (isset($_GET["xferconf_a_number"])) {$xferconf_a_number=$_GET["xferconf_a_number"];} + elseif (isset($_POST["xferconf_a_number"])) {$xferconf_a_number=$_POST["xferconf_a_number"];} +if (isset($_GET["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_GET["xferconf_b_dtmf"];} + elseif (isset($_POST["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_POST["xferconf_b_dtmf"];} +if (isset($_GET["xferconf_b_number"])) {$xferconf_b_number=$_GET["xferconf_b_number"];} + elseif (isset($_POST["xferconf_b_number"])) {$xferconf_b_number=$_POST["xferconf_b_number"];} +if (isset($_GET["vicidial_balance_active"])) {$vicidial_balance_active=$_GET["vicidial_balance_active"];} + elseif (isset($_POST["vicidial_balance_active"])) {$vicidial_balance_active=$_POST["vicidial_balance_active"];} +if (isset($_GET["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_GET["balance_trunks_offlimits"];} + elseif (isset($_POST["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_POST["balance_trunks_offlimits"];} +if (isset($_GET["dedicated_trunks"])) {$dedicated_trunks=$_GET["dedicated_trunks"];} + elseif (isset($_POST["dedicated_trunks"])) {$dedicated_trunks=$_POST["dedicated_trunks"];} +if (isset($_GET["trunk_restriction"])) {$trunk_restriction=$_GET["trunk_restriction"];} + elseif (isset($_POST["trunk_restriction"])) {$trunk_restriction=$_POST["trunk_restriction"];} +if (isset($_GET["campaigns"])) {$campaigns=$_GET["campaigns"];} + elseif (isset($_POST["campaigns"])) {$campaigns=$_POST["campaigns"];} +if (isset($_GET["dial_level_override"])) {$dial_level_override=$_GET["dial_level_override"];} + elseif (isset($_POST["dial_level_override"])) {$dial_level_override=$_POST["dial_level_override"];} +if (isset($_GET["concurrent_transfers"])) {$concurrent_transfers=$_GET["concurrent_transfers"];} + elseif (isset($_POST["concurrent_transfers"])) {$concurrent_transfers=$_POST["concurrent_transfers"];} +if (isset($_GET["auto_alt_dial"])) {$auto_alt_dial=$_GET["auto_alt_dial"];} + elseif (isset($_POST["auto_alt_dial"])) {$auto_alt_dial=$_POST["auto_alt_dial"];} +if (isset($_GET["modify_users"])) {$modify_users=$_GET["modify_users"];} + elseif (isset($_POST["modify_users"])) {$modify_users=$_POST["modify_users"];} +if (isset($_GET["modify_campaigns"])) {$modify_campaigns=$_GET["modify_campaigns"];} + elseif (isset($_POST["modify_campaigns"])) {$modify_campaigns=$_POST["modify_campaigns"];} +if (isset($_GET["modify_lists"])) {$modify_lists=$_GET["modify_lists"];} + elseif (isset($_POST["modify_lists"])) {$modify_lists=$_POST["modify_lists"];} +if (isset($_GET["modify_scripts"])) {$modify_scripts=$_GET["modify_scripts"];} + elseif (isset($_POST["modify_scripts"])) {$modify_scripts=$_POST["modify_scripts"];} +if (isset($_GET["modify_filters"])) {$modify_filters=$_GET["modify_filters"];} + elseif (isset($_POST["modify_filters"])) {$modify_filters=$_POST["modify_filters"];} +if (isset($_GET["modify_ingroups"])) {$modify_ingroups=$_GET["modify_ingroups"];} + elseif (isset($_POST["modify_ingroups"])) {$modify_ingroups=$_POST["modify_ingroups"];} +if (isset($_GET["modify_usergroups"])) {$modify_usergroups=$_GET["modify_usergroups"];} + elseif (isset($_POST["modify_usergroups"])) {$modify_usergroups=$_POST["modify_usergroups"];} +if (isset($_GET["modify_remoteagents"])) {$modify_remoteagents=$_GET["modify_remoteagents"];} + elseif (isset($_POST["modify_remoteagents"])) {$modify_remoteagents=$_POST["modify_remoteagents"];} +if (isset($_GET["modify_servers"])) {$modify_servers=$_GET["modify_servers"];} + elseif (isset($_POST["modify_servers"])) {$modify_servers=$_POST["modify_servers"];} +if (isset($_GET["view_reports"])) {$view_reports=$_GET["view_reports"];} + elseif (isset($_POST["view_reports"])) {$view_reports=$_POST["view_reports"];} +if (isset($_GET["agent_pause_codes_active"])) {$agent_pause_codes_active=$_GET["agent_pause_codes_active"];} + elseif (isset($_POST["agent_pause_codes_active"])) {$agent_pause_codes_active=$_POST["agent_pause_codes_active"];} +if (isset($_GET["pause_code"])) {$pause_code=$_GET["pause_code"];} + elseif (isset($_POST["pause_code"])) {$pause_code=$_POST["pause_code"];} +if (isset($_GET["pause_code_name"])) {$pause_code_name=$_GET["pause_code_name"];} + elseif (isset($_POST["pause_code_name"])) {$pause_code_name=$_POST["pause_code_name"];} +if (isset($_GET["billable"])) {$billable=$_GET["billable"];} + elseif (isset($_POST["billable"])) {$billable=$_POST["billable"];} +if (isset($_GET["campaign_description"])) {$campaign_description=$_GET["campaign_description"];} + elseif (isset($_POST["campaign_description"])) {$campaign_description=$_POST["campaign_description"];} +if (isset($_GET["campaign_stats_refresh"])) {$campaign_stats_refresh=$_GET["campaign_stats_refresh"];} + elseif (isset($_POST["campaign_stats_refresh"])){$campaign_stats_refresh=$_POST["campaign_stats_refresh"];} +if (isset($_GET["list_description"])) {$list_description=$_GET["list_description"];} + elseif (isset($_POST["list_description"])) {$list_description=$_POST["list_description"];} +if (isset($_GET["vicidial_recording_override"])) {$vicidial_recording_override=$_GET["vicidial_recording_override"];} + elseif (isset($_POST["vicidial_recording_override"])) {$vicidial_recording_override=$_POST["vicidial_recording_override"];} +if (isset($_GET["use_non_latin"])) {$use_non_latin=$_GET["use_non_latin"];} + elseif (isset($_POST["use_non_latin"])) {$use_non_latin=$_POST["use_non_latin"];} +if (isset($_GET["webroot_writable"])) {$webroot_writable=$_GET["webroot_writable"];} + elseif (isset($_POST["webroot_writable"])) {$webroot_writable=$_POST["webroot_writable"];} +if (isset($_GET["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_GET["enable_queuemetrics_logging"];} + elseif (isset($_POST["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_POST["enable_queuemetrics_logging"];} +if (isset($_GET["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_GET["queuemetrics_server_ip"];} + elseif (isset($_POST["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_POST["queuemetrics_server_ip"];} +if (isset($_GET["queuemetrics_dbname"])) {$queuemetrics_dbname=$_GET["queuemetrics_dbname"];} + elseif (isset($_POST["queuemetrics_dbname"])) {$queuemetrics_dbname=$_POST["queuemetrics_dbname"];} +if (isset($_GET["queuemetrics_login"])) {$queuemetrics_login=$_GET["queuemetrics_login"];} + elseif (isset($_POST["queuemetrics_login"])) {$queuemetrics_login=$_POST["queuemetrics_login"];} +if (isset($_GET["queuemetrics_pass"])) {$queuemetrics_pass=$_GET["queuemetrics_pass"];} + elseif (isset($_POST["queuemetrics_pass"])) {$queuemetrics_pass=$_POST["queuemetrics_pass"];} +if (isset($_GET["queuemetrics_url"])) {$queuemetrics_url=$_GET["queuemetrics_url"];} + elseif (isset($_POST["queuemetrics_url"])) {$queuemetrics_url=$_POST["queuemetrics_url"];} +if (isset($_GET["queuemetrics_log_id"])) {$queuemetrics_log_id=$_GET["queuemetrics_log_id"];} + elseif (isset($_POST["queuemetrics_log_id"])) {$queuemetrics_log_id=$_POST["queuemetrics_log_id"];} +if (isset($_GET["dial_status"])) {$dial_status=$_GET["dial_status"];} + elseif (isset($_POST["dial_status"])) {$dial_status=$_POST["dial_status"];} +if (isset($_GET["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_GET["queuemetrics_eq_prepend"];} + elseif (isset($_POST["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_POST["queuemetrics_eq_prepend"];} +if (isset($_GET["vicidial_agent_disable"])) {$vicidial_agent_disable=$_GET["vicidial_agent_disable"];} + elseif (isset($_POST["vicidial_agent_disable"])) {$vicidial_agent_disable=$_POST["vicidial_agent_disable"];} +if (isset($_GET["disable_alter_custdata"])) {$disable_alter_custdata=$_GET["disable_alter_custdata"];} + elseif (isset($_POST["disable_alter_custdata"])) {$disable_alter_custdata=$_POST["disable_alter_custdata"];} +if (isset($_GET["alter_custdata_override"])) {$alter_custdata_override=$_GET["alter_custdata_override"];} + elseif (isset($_POST["alter_custdata_override"])) {$alter_custdata_override=$_POST["alter_custdata_override"];} +if (isset($_GET["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_GET["no_hopper_leads_logins"];} + elseif (isset($_POST["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_POST["no_hopper_leads_logins"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["admin_home_url"])) {$admin_home_url=$_GET["admin_home_url"];} + elseif (isset($_POST["admin_home_url"])) {$admin_home_url=$_POST["admin_home_url"];} +if (isset($_GET["list_order_mix"])) {$list_order_mix=$_GET["list_order_mix"];} + elseif (isset($_POST["list_order_mix"])) {$list_order_mix=$_POST["list_order_mix"];} +if (isset($_GET["vcl_id"])) {$vcl_id=$_GET["vcl_id"];} + elseif (isset($_POST["vcl_id"])) {$vcl_id=$_POST["vcl_id"];} +if (isset($_GET["vcl_name"])) {$vcl_name=$_GET["vcl_name"];} + elseif (isset($_POST["vcl_name"])) {$vcl_name=$_POST["vcl_name"];} +if (isset($_GET["list_mix_container"])) {$list_mix_container=$_GET["list_mix_container"];} + elseif (isset($_POST["list_mix_container"])) {$list_mix_container=$_POST["list_mix_container"];} +if (isset($_GET["mix_method"])) {$mix_method=$_GET["mix_method"];} + elseif (isset($_POST["mix_method"])) {$mix_method=$_POST["mix_method"];} +if (isset($_GET["human_answered"])) {$human_answered=$_GET["human_answered"];} + elseif (isset($_POST["human_answered"])) {$human_answered=$_POST["human_answered"];} +if (isset($_GET["category"])) {$category=$_GET["category"];} + elseif (isset($_POST["category"])) {$category=$_POST["category"];} +if (isset($_GET["vsc_id"])) {$vsc_id=$_GET["vsc_id"];} + elseif (isset($_POST["vsc_id"])) {$vsc_id=$_POST["vsc_id"];} +if (isset($_GET["vsc_name"])) {$vsc_name=$_GET["vsc_name"];} + elseif (isset($_POST["vsc_name"])) {$vsc_name=$_POST["vsc_name"];} +if (isset($_GET["vsc_description"])) {$vsc_description=$_GET["vsc_description"];} + elseif (isset($_POST["vsc_description"])) {$vsc_description=$_POST["vsc_description"];} +if (isset($_GET["tovdad_display"])) {$tovdad_display=$_GET["tovdad_display"];} + elseif (isset($_POST["tovdad_display"])) {$tovdad_display=$_POST["tovdad_display"];} +if (isset($_GET["mix_container_item"])) {$mix_container_item=$_GET["mix_container_item"];} + elseif (isset($_POST["mix_container_item"])) {$mix_container_item=$_POST["mix_container_item"];} +if (isset($_GET["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_GET["enable_agc_xfer_log"];} + elseif (isset($_POST["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_POST["enable_agc_xfer_log"];} +if (isset($_GET["after_hours_action"])) {$after_hours_action=$_GET["after_hours_action"];} + elseif (isset($_POST["after_hours_action"])) {$after_hours_action=$_POST["after_hours_action"];} +if (isset($_GET["after_hours_message_filename"])) {$after_hours_message_filename=$_GET["after_hours_message_filename"];} + elseif (isset($_POST["after_hours_message_filename"])) {$after_hours_message_filename=$_POST["after_hours_message_filename"];} +if (isset($_GET["after_hours_exten"])) {$after_hours_exten=$_GET["after_hours_exten"];} + elseif (isset($_POST["after_hours_exten"])) {$after_hours_exten=$_POST["after_hours_exten"];} +if (isset($_GET["after_hours_voicemail"])) {$after_hours_voicemail=$_GET["after_hours_voicemail"];} + elseif (isset($_POST["after_hours_voicemail"])) {$after_hours_voicemail=$_POST["after_hours_voicemail"];} +if (isset($_GET["welcome_message_filename"])) {$welcome_message_filename=$_GET["welcome_message_filename"];} + elseif (isset($_POST["welcome_message_filename"])) {$welcome_message_filename=$_POST["welcome_message_filename"];} +if (isset($_GET["moh_context"])) {$moh_context=$_GET["moh_context"];} + elseif (isset($_POST["moh_context"])) {$moh_context=$_POST["moh_context"];} +if (isset($_GET["onhold_prompt_filename"])) {$onhold_prompt_filename=$_GET["onhold_prompt_filename"];} + elseif (isset($_POST["onhold_prompt_filename"])) {$onhold_prompt_filename=$_POST["onhold_prompt_filename"];} +if (isset($_GET["prompt_interval"])) {$prompt_interval=$_GET["prompt_interval"];} + elseif (isset($_POST["prompt_interval"])) {$prompt_interval=$_POST["prompt_interval"];} +if (isset($_GET["agent_alert_exten"])) {$agent_alert_exten=$_GET["agent_alert_exten"];} + elseif (isset($_POST["agent_alert_exten"])) {$agent_alert_exten=$_POST["agent_alert_exten"];} +if (isset($_GET["agent_alert_delay"])) {$agent_alert_delay=$_GET["agent_alert_delay"];} + elseif (isset($_POST["agent_alert_delay"])) {$agent_alert_delay=$_POST["agent_alert_delay"];} +if (isset($_GET["group_rank"])) {$group_rank=$_GET["group_rank"];} + elseif (isset($_POST["group_rank"])) {$group_rank=$_POST["group_rank"];} +if (isset($_GET["campaign_allow_inbound"])) {$campaign_allow_inbound=$_GET["campaign_allow_inbound"];} + elseif (isset($_POST["campaign_allow_inbound"])) {$campaign_allow_inbound=$_POST["campaign_allow_inbound"];} +if (isset($_GET["manual_dial_list_id"])) {$manual_dial_list_id=$_GET["manual_dial_list_id"];} + elseif (isset($_POST["manual_dial_list_id"])) {$manual_dial_list_id=$_POST["manual_dial_list_id"];} +if (isset($_GET["campaign_rank"])) {$campaign_rank=$_GET["campaign_rank"];} + elseif (isset($_POST["campaign_rank"])) {$campaign_rank=$_POST["campaign_rank"];} +if (isset($_GET["source_campaign_id"])) {$source_campaign_id=$_GET["source_campaign_id"];} + elseif (isset($_POST["source_campaign_id"])) {$source_campaign_id=$_POST["source_campaign_id"];} +if (isset($_GET["source_user_id"])) {$source_user_id=$_GET["source_user_id"];} + elseif (isset($_POST["source_user_id"])) {$source_user_id=$_POST["source_user_id"];} +if (isset($_GET["source_group_id"])) {$source_group_id=$_GET["source_group_id"];} + elseif (isset($_POST["source_group_id"])) {$source_group_id=$_POST["source_group_id"];} +if (isset($_GET["default_xfer_group"])) {$default_xfer_group=$_GET["default_xfer_group"];} + elseif (isset($_POST["default_xfer_group"])) {$default_xfer_group=$_POST["default_xfer_group"];} +if (isset($_GET["qc_enabled"])) {$qc_enabled=$_GET["qc_enabled"];} + elseif (isset($_POST["qc_enabled"])) {$qc_enabled=$_POST["qc_enabled"];} +if (isset($_GET["qc_user_level"])) {$qc_user_level=$_GET["qc_user_level"];} + elseif (isset($_POST["qc_user_level"])) {$qc_user_level=$_POST["qc_user_level"];} +if (isset($_GET["qc_pass"])) {$qc_pass=$_GET["qc_pass"];} + elseif (isset($_POST["qc_pass"])) {$qc_pass=$_POST["qc_pass"];} +if (isset($_GET["qc_finish"])) {$qc_finish=$_GET["qc_finish"];} + elseif (isset($_POST["qc_finish"])) {$qc_finish=$_POST["qc_finish"];} +if (isset($_GET["qc_commit"])) {$qc_commit=$_GET["qc_commit"];} + elseif (isset($_POST["qc_commit"])) {$qc_commit=$_POST["qc_commit"];} +if (isset($_GET["qc_campaigns"])) {$qc_campaigns=$_GET["qc_campaigns"];} + elseif (isset($_POST["qc_campaigns"])) {$qc_campaigns=$_POST["qc_campaigns"];} +if (isset($_GET["qc_groups"])) {$qc_groups=$_GET["qc_groups"];} + elseif (isset($_POST["qc_groups"])) {$qc_groups=$_POST["qc_groups"];} +if (isset($_GET["queue_priority"])) {$queue_priority=$_GET["queue_priority"];} + elseif (isset($_POST["queue_priority"])) {$queue_priority=$_POST["queue_priority"];} +if (isset($_GET["drop_inbound_group"])) {$drop_inbound_group=$_GET["drop_inbound_group"];} + elseif (isset($_POST["drop_inbound_group"])) {$drop_inbound_group=$_POST["drop_inbound_group"];} +if (isset($_GET["qc_statuses"])) {$qc_statuses=$_GET["qc_statuses"];} + elseif (isset($_POST["qc_statuses"])) {$qc_statuses=$_POST["qc_statuses"];} +if (isset($_GET["qc_lists"])) {$qc_lists=$_GET["qc_lists"];} + elseif (isset($_POST["qc_lists"])) {$qc_lists=$_POST["qc_lists"];} +if (isset($_GET["qc_get_record_launch"])) {$qc_get_record_launch=$_GET["qc_get_record_launch"];} + elseif (isset($_POST["qc_get_record_launch"])) {$qc_get_record_launch=$_POST["qc_get_record_launch"];} +if (isset($_GET["qc_show_recording"])) {$qc_show_recording=$_GET["qc_show_recording"];} + elseif (isset($_POST["qc_show_recording"])) {$qc_show_recording=$_POST["qc_show_recording"];} +if (isset($_GET["qc_shift_id"])) {$qc_shift_id=$_GET["qc_shift_id"];} + elseif (isset($_POST["qc_shift_id"])) {$qc_shift_id=$_POST["qc_shift_id"];} +if (isset($_GET["qc_web_form_address"])) {$qc_web_form_address=$_GET["qc_web_form_address"];} + elseif (isset($_POST["qc_web_form_address"])) {$qc_web_form_address=$_POST["qc_web_form_address"];} +if (isset($_GET["qc_script"])) {$qc_script=$_GET["qc_script"];} + elseif (isset($_POST["qc_script"])) {$qc_script=$_POST["qc_script"];} +if (isset($_GET["ingroup_recording_override"])) {$ingroup_recording_override=$_GET["ingroup_recording_override"];} + elseif (isset($_POST["ingroup_recording_override"])) {$ingroup_recording_override=$_POST["ingroup_recording_override"];} +if (isset($_GET["code"])) {$code=$_GET["code"];} + elseif (isset($_POST["code"])) {$code=$_POST["code"];} +if (isset($_GET["code_name"])) {$code_name=$_GET["code_name"];} + elseif (isset($_POST["code_name"])) {$code_name=$_POST["code_name"];} +if (isset($_GET["afterhours_xfer_group"])) {$afterhours_xfer_group=$_GET["afterhours_xfer_group"];} + elseif (isset($_POST["afterhours_xfer_group"])) {$afterhours_xfer_group=$_POST["afterhours_xfer_group"];} +if (isset($_GET["alias_id"])) {$alias_id=$_GET["alias_id"];} + elseif (isset($_POST["alias_id"])) {$alias_id=$_POST["alias_id"];} +if (isset($_GET["alias_name"])) {$alias_name=$_GET["alias_name"];} + elseif (isset($_POST["alias_name"])) {$alias_name=$_POST["alias_name"];} +if (isset($_GET["logins_list"])) {$logins_list=$_GET["logins_list"];} + elseif (isset($_POST["logins_list"])) {$logins_list=$_POST["logins_list"];} +if (isset($_GET["shift_id"])) {$shift_id=$_GET["shift_id"];} + elseif (isset($_POST["shift_id"])) {$shift_id=$_POST["shift_id"];} +if (isset($_GET["shift_name"])) {$shift_name=$_GET["shift_name"];} + elseif (isset($_POST["shift_name"])) {$shift_name=$_POST["shift_name"];} +if (isset($_GET["shift_start_time"])) {$shift_start_time=$_GET["shift_start_time"];} + elseif (isset($_POST["shift_start_time"])) {$shift_start_time=$_POST["shift_start_time"];} +if (isset($_GET["shift_length"])) {$shift_length=$_GET["shift_length"];} + elseif (isset($_POST["shift_length"])) {$shift_length=$_POST["shift_length"];} +if (isset($_GET["shift_weekdays"])) {$shift_weekdays=$_GET["shift_weekdays"];} + elseif (isset($_POST["shift_weekdays"])) {$shift_weekdays=$_POST["shift_weekdays"];} +if (isset($_GET["group_shifts"])) {$group_shifts=$_GET["group_shifts"];} + elseif (isset($_POST["group_shifts"])) {$group_shifts=$_POST["group_shifts"];} +if (isset($_GET["timeclock_end_of_day"])) {$timeclock_end_of_day=$_GET["timeclock_end_of_day"];} + elseif (isset($_POST["timeclock_end_of_day"])) {$timeclock_end_of_day=$_POST["timeclock_end_of_day"];} +if (isset($_GET["survey_first_audio_file"])) {$survey_first_audio_file=$_GET["survey_first_audio_file"];} + elseif (isset($_POST["survey_first_audio_file"])) {$survey_first_audio_file=$_POST["survey_first_audio_file"];} +if (isset($_GET["survey_dtmf_digits"])) {$survey_dtmf_digits=$_GET["survey_dtmf_digits"];} + elseif (isset($_POST["survey_dtmf_digits"])) {$survey_dtmf_digits=$_POST["survey_dtmf_digits"];} +if (isset($_GET["survey_ni_digit"])) {$survey_ni_digit=$_GET["survey_ni_digit"];} + elseif (isset($_POST["survey_ni_digit"])) {$survey_ni_digit=$_POST["survey_ni_digit"];} +if (isset($_GET["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_GET["survey_opt_in_audio_file"];} + elseif (isset($_POST["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_POST["survey_opt_in_audio_file"];} +if (isset($_GET["survey_ni_audio_file"])) {$survey_ni_audio_file=$_GET["survey_ni_audio_file"];} + elseif (isset($_POST["survey_ni_audio_file"])) {$survey_ni_audio_file=$_POST["survey_ni_audio_file"];} +if (isset($_GET["survey_method"])) {$survey_method=$_GET["survey_method"];} + elseif (isset($_POST["survey_method"])) {$survey_method=$_POST["survey_method"];} +if (isset($_GET["survey_no_response_action"])) {$survey_no_response_action=$_GET["survey_no_response_action"];} + elseif (isset($_POST["survey_no_response_action"])) {$survey_no_response_action=$_POST["survey_no_response_action"];} +if (isset($_GET["survey_ni_status"])) {$survey_ni_status=$_GET["survey_ni_status"];} + elseif (isset($_POST["survey_ni_status"])) {$survey_ni_status=$_POST["survey_ni_status"];} +if (isset($_GET["survey_response_digit_map"])) {$survey_response_digit_map=$_GET["survey_response_digit_map"];} + elseif (isset($_POST["survey_response_digit_map"])) {$survey_response_digit_map=$_POST["survey_response_digit_map"];} +if (isset($_GET["survey_xfer_exten"])) {$survey_xfer_exten=$_GET["survey_xfer_exten"];} + elseif (isset($_POST["survey_xfer_exten"])) {$survey_xfer_exten=$_POST["survey_xfer_exten"];} +if (isset($_GET["survey_camp_record_dir"])) {$survey_camp_record_dir=$_GET["survey_camp_record_dir"];} + elseif (isset($_POST["survey_camp_record_dir"])) {$survey_camp_record_dir=$_POST["survey_camp_record_dir"];} +if (isset($_GET["add_timeclock_log"])) {$add_timeclock_log=$_GET["add_timeclock_log"];} + elseif (isset($_POST["add_timeclock_log"])) {$add_timeclock_log=$_POST["add_timeclock_log"];} +if (isset($_GET["modify_timeclock_log"])) {$modify_timeclock_log=$_GET["modify_timeclock_log"];} + elseif (isset($_POST["modify_timeclock_log"])) {$modify_timeclock_log=$_POST["modify_timeclock_log"];} +if (isset($_GET["delete_timeclock_log"])) {$delete_timeclock_log=$_GET["delete_timeclock_log"];} + elseif (isset($_POST["delete_timeclock_log"])) {$delete_timeclock_log=$_POST["delete_timeclock_log"];} +if (isset($_GET["phone_numbers"])) {$phone_numbers=$_GET["phone_numbers"];} + elseif (isset($_POST["phone_numbers"])) {$phone_numbers=$_POST["phone_numbers"];} +if (isset($_GET["vdc_header_date_format"])) {$vdc_header_date_format=$_GET["vdc_header_date_format"];} + elseif (isset($_POST["vdc_header_date_format"])) {$vdc_header_date_format=$_POST["vdc_header_date_format"];} +if (isset($_GET["vdc_customer_date_format"])) {$vdc_customer_date_format=$_GET["vdc_customer_date_format"];} + elseif (isset($_POST["vdc_customer_date_format"])) {$vdc_customer_date_format=$_POST["vdc_customer_date_format"];} +if (isset($_GET["vdc_header_phone_format"])) {$vdc_header_phone_format=$_GET["vdc_header_phone_format"];} + elseif (isset($_POST["vdc_header_phone_format"])) {$vdc_header_phone_format=$_POST["vdc_header_phone_format"];} +if (isset($_GET["disable_alter_custphone"])) {$disable_alter_custphone=$_GET["disable_alter_custphone"];} + elseif (isset($_POST["disable_alter_custphone"])) {$disable_alter_custphone=$_POST["disable_alter_custphone"];} +if (isset($_GET["alter_custphone_override"])) {$alter_custphone_override=$_GET["alter_custphone_override"];} + elseif (isset($_POST["alter_custphone_override"])) {$alter_custphone_override=$_POST["alter_custphone_override"];} +if (isset($_GET["vdc_agent_api_access"])) {$vdc_agent_api_access=$_GET["vdc_agent_api_access"];} + elseif (isset($_POST["vdc_agent_api_access"])) {$vdc_agent_api_access=$_POST["vdc_agent_api_access"];} +if (isset($_GET["vdc_agent_api_active"])) {$vdc_agent_api_active=$_GET["vdc_agent_api_active"];} + elseif (isset($_POST["vdc_agent_api_active"])) {$vdc_agent_api_active=$_POST["vdc_agent_api_active"];} +if (isset($_GET["display_queue_count"])) {$display_queue_count=$_GET["display_queue_count"];} + elseif (isset($_POST["display_queue_count"])) {$display_queue_count=$_POST["display_queue_count"];} +if (isset($_GET["sale_category"])) {$sale_category=$_GET["sale_category"];} + elseif (isset($_POST["sale_category"])) {$sale_category=$_POST["sale_category"];} +if (isset($_GET["dead_lead_category"])) {$dead_lead_category=$_GET["dead_lead_category"];} + elseif (isset($_POST["dead_lead_category"])) {$dead_lead_category=$_POST["dead_lead_category"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["agent_clipboard_copy"])) {$agent_clipboard_copy=$_GET["agent_clipboard_copy"];} + elseif (isset($_POST["agent_clipboard_copy"])) {$agent_clipboard_copy=$_POST["agent_clipboard_copy"];} +if (isset($_GET["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_GET["agent_extended_alt_dial"];} + elseif (isset($_POST["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_POST["agent_extended_alt_dial"];} +if (isset($_GET["play_place_in_line"])) {$play_place_in_line=$_GET["play_place_in_line"];} + elseif (isset($_POST["play_place_in_line"])) {$play_place_in_line=$_POST["play_place_in_line"];} +if (isset($_GET["play_estimate_hold_time"])) {$play_estimate_hold_time=$_GET["play_estimate_hold_time"];} + elseif (isset($_POST["play_estimate_hold_time"])) {$play_estimate_hold_time=$_POST["play_estimate_hold_time"];} +if (isset($_GET["hold_time_option"])) {$hold_time_option=$_GET["hold_time_option"];} + elseif (isset($_POST["hold_time_option"])) {$hold_time_option=$_POST["hold_time_option"];} +if (isset($_GET["hold_time_option_seconds"])) {$hold_time_option_seconds=$_GET["hold_time_option_seconds"];} + elseif (isset($_POST["hold_time_option_seconds"])) {$hold_time_option_seconds=$_POST["hold_time_option_seconds"];} +if (isset($_GET["hold_time_option_exten"])) {$hold_time_option_exten=$_GET["hold_time_option_exten"];} + elseif (isset($_POST["hold_time_option_exten"])) {$hold_time_option_exten=$_POST["hold_time_option_exten"];} +if (isset($_GET["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_GET["hold_time_option_voicemail"];} + elseif (isset($_POST["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_POST["hold_time_option_voicemail"];} +if (isset($_GET["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_GET["hold_time_option_xfer_group"];} + elseif (isset($_POST["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_POST["hold_time_option_xfer_group"];} +if (isset($_GET["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_GET["hold_time_option_callback_filename"];} + elseif (isset($_POST["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_POST["hold_time_option_callback_filename"];} +if (isset($_GET["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_GET["hold_time_option_callback_list_id"];} + elseif (isset($_POST["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_POST["hold_time_option_callback_list_id"];} +if (isset($_GET["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_GET["hold_recall_xfer_group"];} + elseif (isset($_POST["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_POST["hold_recall_xfer_group"];} +if (isset($_GET["no_delay_call_route"])) {$no_delay_call_route=$_GET["no_delay_call_route"];} + elseif (isset($_POST["no_delay_call_route"])) {$no_delay_call_route=$_POST["no_delay_call_route"];} +if (isset($_GET["play_welcome_message"])) {$play_welcome_message=$_GET["play_welcome_message"];} + elseif (isset($_POST["play_welcome_message"])) {$play_welcome_message=$_POST["play_welcome_message"];} +if (isset($_GET["did_id"])) {$did_id=$_GET["did_id"];} + elseif (isset($_POST["did_id"])) {$did_id=$_POST["did_id"];} +if (isset($_GET["source_did"])) {$source_did=$_GET["source_did"];} + elseif (isset($_POST["source_did"])) {$source_did=$_POST["source_did"];} +if (isset($_GET["did_pattern"])) {$did_pattern=$_GET["did_pattern"];} + elseif (isset($_POST["did_pattern"])) {$did_pattern=$_POST["did_pattern"];} +if (isset($_GET["did_description"])) {$did_description=$_GET["did_description"];} + elseif (isset($_POST["did_description"])) {$did_description=$_POST["did_description"];} +if (isset($_GET["did_active"])) {$did_active=$_GET["did_active"];} + elseif (isset($_POST["did_active"])) {$did_active=$_POST["did_active"];} +if (isset($_GET["did_route"])) {$did_route=$_GET["did_route"];} + elseif (isset($_POST["did_route"])) {$did_route=$_POST["did_route"];} +if (isset($_GET["exten_context"])) {$exten_context=$_GET["exten_context"];} + elseif (isset($_POST["exten_context"])) {$exten_context=$_POST["exten_context"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["user_unavailable_action"])) {$user_unavailable_action=$_GET["user_unavailable_action"];} + elseif (isset($_POST["user_unavailable_action"])) {$user_unavailable_action=$_POST["user_unavailable_action"];} +if (isset($_GET["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_GET["user_route_settings_ingroup"];} + elseif (isset($_POST["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_POST["user_route_settings_ingroup"];} +if (isset($_GET["call_handle_method"])) {$call_handle_method=$_GET["call_handle_method"];} + elseif (isset($_POST["call_handle_method"])) {$call_handle_method=$_POST["call_handle_method"];} +if (isset($_GET["agent_search_method"])) {$agent_search_method=$_GET["agent_search_method"];} + elseif (isset($_POST["agent_search_method"])) {$agent_search_method=$_POST["agent_search_method"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["modify_inbound_dids"])) {$modify_inbound_dids=$_GET["modify_inbound_dids"];} + elseif (isset($_POST["modify_inbound_dids"])) {$modify_inbound_dids=$_POST["modify_inbound_dids"];} +if (isset($_GET["delete_inbound_dids"])) {$delete_inbound_dids=$_GET["delete_inbound_dids"];} + elseif (isset($_POST["delete_inbound_dids"])) {$delete_inbound_dids=$_POST["delete_inbound_dids"];} +if (isset($_GET["three_way_call_cid"])) {$three_way_call_cid=$_GET["three_way_call_cid"];} + elseif (isset($_POST["three_way_call_cid"])) {$three_way_call_cid=$_POST["three_way_call_cid"];} +if (isset($_GET["three_way_dial_prefix"])) {$three_way_dial_prefix=$_GET["three_way_dial_prefix"];} + elseif (isset($_POST["three_way_dial_prefix"])) {$three_way_dial_prefix=$_POST["three_way_dial_prefix"];} +if (isset($_GET["forced_timeclock_login"])) {$forced_timeclock_login=$_GET["forced_timeclock_login"];} + elseif (isset($_POST["forced_timeclock_login"])) {$forced_timeclock_login=$_POST["forced_timeclock_login"];} +if (isset($_GET["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_GET["answer_sec_pct_rt_stat_one"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_POST["answer_sec_pct_rt_stat_one"];} +if (isset($_GET["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_GET["answer_sec_pct_rt_stat_two"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_POST["answer_sec_pct_rt_stat_two"];} +if (isset($_GET["list_active_change"])) {$list_active_change=$_GET["list_active_change"];} + elseif (isset($_POST["list_active_change"])) {$list_active_change=$_POST["list_active_change"];} +if (isset($_GET["web_form_target"])) {$web_form_target=$_GET["web_form_target"];} + elseif (isset($_POST["web_form_target"])) {$web_form_target=$_POST["web_form_target"];} +if (isset($_GET["alt_server_ip"])) {$alt_server_ip=$_GET["alt_server_ip"];} + elseif (isset($_POST["alt_server_ip"])) {$alt_server_ip=$_POST["alt_server_ip"];} +if (isset($_GET["recording_web_link"])) {$recording_web_link=$_GET["recording_web_link"];} + elseif (isset($_POST["recording_web_link"])) {$recording_web_link=$_POST["recording_web_link"];} +if (isset($_GET["enable_vtiger_integration"])) {$enable_vtiger_integration=$_GET["enable_vtiger_integration"];} + elseif (isset($_POST["enable_vtiger_integration"])) {$enable_vtiger_integration=$_POST["enable_vtiger_integration"];} +if (isset($_GET["vtiger_server_ip"])) {$vtiger_server_ip=$_GET["vtiger_server_ip"];} + elseif (isset($_POST["vtiger_server_ip"])) {$vtiger_server_ip=$_POST["vtiger_server_ip"];} +if (isset($_GET["vtiger_dbname"])) {$vtiger_dbname=$_GET["vtiger_dbname"];} + elseif (isset($_POST["vtiger_dbname"])) {$vtiger_dbname=$_POST["vtiger_dbname"];} +if (isset($_GET["vtiger_login"])) {$vtiger_login=$_GET["vtiger_login"];} + elseif (isset($_POST["vtiger_login"])) {$vtiger_login=$_POST["vtiger_login"];} +if (isset($_GET["vtiger_pass"])) {$vtiger_pass=$_GET["vtiger_pass"];} + elseif (isset($_POST["vtiger_pass"])) {$vtiger_pass=$_POST["vtiger_pass"];} +if (isset($_GET["vtiger_url"])) {$vtiger_url=$_GET["vtiger_url"];} + elseif (isset($_POST["vtiger_url"])) {$vtiger_url=$_POST["vtiger_url"];} +if (isset($_GET["vtiger_search_category"])) {$vtiger_search_category=$_GET["vtiger_search_category"];} + elseif (isset($_POST["vtiger_search_category"])) {$vtiger_search_category=$_POST["vtiger_search_category"];} +if (isset($_GET["vtiger_create_call_record"])) {$vtiger_create_call_record=$_GET["vtiger_create_call_record"];} + elseif (isset($_POST["vtiger_create_call_record"])) {$vtiger_create_call_record=$_POST["vtiger_create_call_record"];} +if (isset($_GET["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_GET["vtiger_create_lead_record"];} + elseif (isset($_POST["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_POST["vtiger_create_lead_record"];} +if (isset($_GET["vtiger_screen_login"])) {$vtiger_screen_login=$_GET["vtiger_screen_login"];} + elseif (isset($_POST["vtiger_screen_login"])) {$vtiger_screen_login=$_POST["vtiger_screen_login"];} +if (isset($_GET["qc_features_active"])) {$qc_features_active=$_GET["qc_features_active"];} + elseif (isset($_POST["qc_features_active"])) {$qc_features_active=$_POST["qc_features_active"];} +if (isset($_GET["outbound_autodial_active"])) {$outbound_autodial_active=$_GET["outbound_autodial_active"];} + elseif (isset($_POST["outbound_autodial_active"])) {$outbound_autodial_active=$_POST["outbound_autodial_active"];} +if (isset($_GET["cpd_amd_action"])) {$cpd_amd_action=$_GET["cpd_amd_action"];} + elseif (isset($_POST["cpd_amd_action"])) {$cpd_amd_action=$_POST["cpd_amd_action"];} +if (isset($_GET["download_lists"])) {$download_lists=$_GET["download_lists"];} + elseif (isset($_POST["download_lists"])) {$download_lists=$_POST["download_lists"];} +if (isset($_GET["active_asterisk_server"])) {$active_asterisk_server=$_GET["active_asterisk_server"];} + elseif (isset($_POST["active_asterisk_server"])) {$active_asterisk_server=$_POST["active_asterisk_server"];} +if (isset($_GET["generate_vicidial_conf"])) {$generate_vicidial_conf=$_GET["generate_vicidial_conf"];} + elseif (isset($_POST["generate_vicidial_conf"])) {$generate_vicidial_conf=$_POST["generate_vicidial_conf"];} +if (isset($_GET["rebuild_conf_files"])) {$rebuild_conf_files=$_GET["rebuild_conf_files"];} + elseif (isset($_POST["rebuild_conf_files"])) {$rebuild_conf_files=$_POST["rebuild_conf_files"];} +if (isset($_GET["template_id"])) {$template_id=$_GET["template_id"];} + elseif (isset($_POST["template_id"])) {$template_id=$_POST["template_id"];} +if (isset($_GET["conf_override"])) {$conf_override=$_GET["conf_override"];} + elseif (isset($_POST["conf_override"])) {$conf_override=$_POST["conf_override"];} +if (isset($_GET["template_name"])) {$template_name=$_GET["template_name"];} + elseif (isset($_POST["template_name"])) {$template_name=$_POST["template_name"];} +if (isset($_GET["template_contents"])) {$template_contents=$_GET["template_contents"];} + elseif (isset($_POST["template_contents"])) {$template_contents=$_POST["template_contents"];} +if (isset($_GET["carrier_id"])) {$carrier_id=$_GET["carrier_id"];} + elseif (isset($_POST["carrier_id"])) {$carrier_id=$_POST["carrier_id"];} +if (isset($_GET["carrier_name"])) {$carrier_name=$_GET["carrier_name"];} + elseif (isset($_POST["carrier_name"])) {$carrier_name=$_POST["carrier_name"];} +if (isset($_GET["registration_string"])) {$registration_string=$_GET["registration_string"];} + elseif (isset($_POST["registration_string"])) {$registration_string=$_POST["registration_string"];} +if (isset($_GET["account_entry"])) {$account_entry=$_GET["account_entry"];} + elseif (isset($_POST["account_entry"])) {$account_entry=$_POST["account_entry"];} +if (isset($_GET["globals_string"])) {$globals_string=$_GET["globals_string"];} + elseif (isset($_POST["globals_string"])) {$globals_string=$_POST["globals_string"];} +if (isset($_GET["dialplan_entry"])) {$dialplan_entry=$_GET["dialplan_entry"];} + elseif (isset($_POST["dialplan_entry"])) {$dialplan_entry=$_POST["dialplan_entry"];} +if (isset($_GET["group_alias_id"])) {$group_alias_id=$_GET["group_alias_id"];} + elseif (isset($_POST["group_alias_id"])) {$group_alias_id=$_POST["group_alias_id"];} +if (isset($_GET["group_alias_name"])) {$group_alias_name=$_GET["group_alias_name"];} + elseif (isset($_POST["group_alias_name"])) {$group_alias_name=$_POST["group_alias_name"];} +if (isset($_GET["caller_id_number"])) {$caller_id_number=$_GET["caller_id_number"];} + elseif (isset($_POST["caller_id_number"])) {$caller_id_number=$_POST["caller_id_number"];} +if (isset($_GET["caller_id_name"])) {$caller_id_name=$_GET["caller_id_name"];} + elseif (isset($_POST["caller_id_name"])) {$caller_id_name=$_POST["caller_id_name"];} +if (isset($_GET["agent_allow_group_alias"])) {$agent_allow_group_alias=$_GET["agent_allow_group_alias"];} + elseif (isset($_POST["agent_allow_group_alias"])) {$agent_allow_group_alias=$_POST["agent_allow_group_alias"];} +if (isset($_GET["default_group_alias"])) {$default_group_alias=$_GET["default_group_alias"];} + elseif (isset($_POST["default_group_alias"])) {$default_group_alias=$_POST["default_group_alias"];} +if (isset($_GET["outbound_calls_per_second"])) {$outbound_calls_per_second=$_GET["outbound_calls_per_second"];} + elseif (isset($_POST["outbound_calls_per_second"])) {$outbound_calls_per_second=$_POST["outbound_calls_per_second"];} +if (isset($_GET["shift_enforcement"])) {$shift_enforcement=$_GET["shift_enforcement"];} + elseif (isset($_POST["shift_enforcement"])) {$shift_enforcement=$_POST["shift_enforcement"];} +if (isset($_GET["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_GET["agent_shift_enforcement_override"];} + elseif (isset($_POST["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_POST["agent_shift_enforcement_override"];} +if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_GET["manager_shift_enforcement_override"];} + elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} +if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} + elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} + + if (isset($script_id)) {$script_id= strtoupper($script_id);} + if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} + +if (strlen($dial_status) > 0) + { + $ADD='28'; + $status = $dial_status; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSenable_queuemetrics_logging = $row[1]; + $SSenable_vtiger_integration = $row[2]; + $SSqc_features_active = $row[3]; + $SSoutbound_autodial_active = $row[4]; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +###################################################################################################### +###################################################################################################### +####### Form variable filtering for security and data integrity +###################################################################################################### +###################################################################################################### + +if ($non_latin < 1) + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); + + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); + + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); + + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); + + ### Y or N ONLY ### + $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); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); + + + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $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); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); + + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); + + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); + + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); + + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); + + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### 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 hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); + + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); + + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); + + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + + + +##### END VARIABLE FILTERING FOR SECURITY ##### + + +# ViciDial database administration +# admin.php +# +# CHANGELOG: +# 50315-1110 - Added Custom Campaign Statuses +# 50317-1438 - Added Fronter Display var to inbound groups +# 50322-1355 - Added custom callerID per campaign +# 50517-1356 - Added user_groups sections and user_group to vicidial_users +# 50517-1440 - Added ability to logout (must click OK with empty user/pass) +# 50602-1622 - Added lead loader pages to load new files into vicidial_list +# 50620-1351 - Added custom vdad transfer AGI extension per campaign +# 50810-1414 - modified in groups to kick out spaces and dashes +# 50908-2136 - Added Custom Campaign HotKeys +# 50914-0950 - Fixed user search by user_group +# 50926-1358 - Modified to allow for language translation +# 50926-1615 - Added WeBRooTWritablE write controls +# 51020-1008 - Added editable web address and park ext - NEW dial campaigns +# 51020-1056 - Added fields and help for campaign recording control +# 51123-1335 - Altered code to function in php globals=off +# 51208-1038 - Added user_level changes, function controls and default user phones +# 51208-1556 - Added deletion of users/lists/campaigns/in groups/remote agents +# 51213-1706 - Added add/delete/modify vicidial scripts +# 51214-1737 - Added preview of vicidial script in popup window +# 51219-1225 - Added campaign and ingroups script selector and get_call_launch field +# 51222-1055 - Added am_message_exten to campaigns to allow for AM Message button +# 51222-1125 - Fixed new vicidial_campaigns default values not being assigned bug +# 51222-1156 - Added LOG OUT ALL AGENTS ON THIS CAMPAIGN button to campaign screen +# 60204-0659 - Fixed hopper reset bug +# 60207-1413 - Added AMD send to voicemail extension and xfer-conf dtmf presets +# 60213-1100 - Added several vicidial_users permissions fields +# 60215-1319 - Added On-hold CallBacks display and links +# 60227-1226 - Fixed vicidial_inbound_groups insert bug +# 60413-1308 - Fixed list display to have 1 row/status: count and time zone tables +# - Added status name in selected dial statuses in campaign screen +# 60417-1416 - Added vicidial_lead_filters sections +# - Changed the header links to color-coded sectional with sublinks below +# - Added filter name and script name to campaign and in-group modify sections +# - Added callback and alt dial options to campaigns section +# - Added callback, alt dial and other options to users section +# 60419-1628 - Alter Callbacks display to include status and LIVE listings, reordered +# 60421-1441 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60425-2355 - Added agent options to vicidial_users, reformatted user page +# 60502-1627 - Added drop_call_seconds and safe_harbor_ fields to campaign screen +# 60503-1228 - Added drop_call_seconds and drop_ fields to inbound groups screen +# 60505-1117 - Added initial framework for new local_call_times tables and definitions +# 60506-1033 - More revisions to the local_call_time section +# 60508-1354 - Finished call_times and state_call_times sections +# - Added modify/delete options for call_times +# 60509-1311 - Functionalize campaign dialable leads calculation +# - Change state_call_times selection from call_times to only allow one per state +# - Added dialable leads count popup to campaign screen if auto-calc is disabled +# - Added test dialable leads count popup to filter screen +# 60510-1050 - Added Wrapup seconds and Wrapup message to campaigns screen +# 60608-1401 - Added allowable inbound_groups checkboxes to CLOSER campaign detail screen +# 60609-1051 - Added add-to-dnc in LISTS section +# 60613-1415 - Added lead recycling options to campaign detail screen +# 60619-1523 - Added variable filtering to eliminate SQL injection attack threat +# 60622-1216 - Fixed HotKey addition form issues and variable filtering +# 60623-1159 - Fixed Scheduled Callbacks over-filtering bug and filter_sql bug +# 60808-1147 - Changed filtering for and added instructions for consutative transfers +# 60816-1552 - Added allcalls_delay start delay for recordings in vicidial.php +# 60817-2226 - Fixed bug that would not allow lead recycling of non-selectable statuses +# 60821-1543 - Added option to Omit Phone Code while dialing in vicidial +# 60821-1625 - Added ALLFORCE recording option for campaign_recording +# 60823-1154 - Added fields for adaptive dialing +# 60824-1326 - Added adaptive_latest_target_gmt for ADAPT_TAPERED dial method +# 60825-1205 - Added adaptive_intensity for ADAPT_ dial methods +# 60828-1019 - Changed adaptive_latest_target_gmt to adaptive_latest_server_time +# 60828-1115 - Added adaptive_dl_diff_target and changed intensity dropdown +# 60927-1246 - Added astguiclient/admin.php functions under SERVERS tab +# 61002-1402 - Added fields for vicidial balance trunk controls +# 61003-1123 - Added functions for vicidial_server_trunks records +# 61109-1022 - Added Emergency VDAC Jam Clear function to Campaign Detail screen +# 61110-1502 - Add ability to select NONE in dial statuses, new list_id must not be < 100 +# 61122-1228 - Added user group campaign restrictions +# 61122-1535 - Changed script_text to unfiltered and added more variables to SCRIPTS +# 61129-1028 - Added headers to Users and Phones with clickable order-by titles +# 70108-1405 - Added ADAPT OVERRIDE to allow for forced dial_level changes in ADAPT dial methods +# - Screen width definable at top of script, merged server_stats into this script +# 70109-1638 - Added ALTPH2 and ADDR3 hotkey options for alt number dialing with HotKeys +# 70109-1716 - Added concurrent_transfers option to vicidial_campaigns +# 70115-1152 - Aded (CLOSER|BLEND|INBND|_C$|_B$|_I$) options for CLOSER-type campaigns +# 70115-1532 - Added auto_alt_dial field to campaign screen for auto-dialing of alt numbers +# 70116-1200 - Added auto_alt_dial_status functionality to campaign screen +# 70117-1235 - Added header formatting variables at top of script +# - Moved Call Times and Phones/Server functions to Admin section +# 70118-1706 - Added new user group displays and links +# 70123-1519 - Added user permission settings for all sections +# 70124-1346 - Fixed spelling errors and formatting consistency +# 70202-1120 - Added agent_pause_codes section to campaigns +# 70205-1204 - Added memo, last dialed, timestamp and stats-refresh fields to vicidial_campaigns/lists +# 70206-1323 - Added user setting for vicidial_recording_override +# 70212-1412 - Added system settings section +# 70214-1226 - Added QueueMetrics Log ID field to system settings section +# 70219-1102 - Changed campaign dial statuses to be one string allowing for high limit +# 70223-0957 - Added queuemetrics_eq_prepend for custom ENTERQUEUE prepending of a field +# 70302-1111 - Fixed small bug in dialable leads calculation +# 70314-1133 - Added insert selection on script forms +# 70319-1423 - Added Alter Customer Data and agent disable display functions +# 70319-1625 - Added option to allow agents to login to outbound campaigns with no leads in the hopper +# 70322-1455 - Added sipsak messages parameters +# 70402-1157 - Added HOME link and entry to system_settings table, added QM link on reports section +# 70516-1628 - Started reformatting campaigns to use submenus to break up options +# 70529-1653 - Added help for list mix +# 70530-1354 - Added human_answered field to statuses, added system status modification +# 70530-1714 - Added lists for all campaign subsections +# 70531-1631 - Development on List mix admin interface +# 70601-1629 - More development on List mix admin interface, formatting, and added some javascript +# 70602-1300 - More development on List mix admin interface, more javascript +# 70608-1459 - Added option to set LIVE Callbacks to INACTIVE after one month +# 70612-1451 - Added Callback INACTIVE link for after one week, sort by user/group/entrydate +# 70614-0231 - Added Status Categories, ability to Modify Statuses, moved system statuses to sub-section +# 70623-1008 - List Mix section now allows modification of list mix entries +# 70629-1721 - List Mix section adding and removing of list entries active +# 70706-1636 - List Mix section cleanup and more error-checking +# 70908-0941 - Added agc logile enable system_settings +# 71020-1934 - Added inbound groups options: on-hold music, messages, call_times +# 71022-1343 - Added inbound group ranks for users +# 71029-1710 - Added option for campaign to be inbound and/or blended with no restrictions on the campaign_id name +# - Added 5th NEW and 6th NEW to the dial order options +# 71030-2010 - Added Manual Dial List ID field to campaigns table +# 71103-2207 - Added inbound_group_rank and fewest_calls to the inbound groups call order options +# 71113-1521 - Added campaign_rank to agent options +# - Added ability to Copy a campaign's setting to a new campaign +# 71113-2225 - Added ability to copy user and in-group settings to new users and in-groups +# 71116-0942 - Added campaign_rank and fewest_calls as methods for agent call routing +# 71122-1135 - Added default transfer group for campaigns and inbound groups +# 71125-1751 - Added allowable transfer groups to campaign detail screen +# 80107-1204 - Started framework for new QC section +# 80112-0242 - Added more options for lead order +# 80211-1901 - Added DB Schema Version to system settings display +# 80224-1334 - Added Queue Priority to in-groups and campaigns +# 80302-0232 - added drop_action and transfer to in-group for both in-groups and outbound +# 80310-1504 - added QC settings section to campaign screen +# 80317-2037 - Added Recording override settings to in-groups +# 80414-1505 - More work on QC, added vicidial_qc_codes +# 80424-0442 - Added non_latin system_settings lookup at top to override dbconnect setting +# 80505-0333 - Added phones_alias sections to allow for load-balanced-phone-logins +# 80512-1529 - Added auto-generate of User ID feature +# 80515-1345 - Added Shifts sub-section to Admin section +# 80528-0001 - Added campaign survey sub-section +# 80528-1102 - Added user timeclock edit options +# 80608-1304 - Changed add-to-DNC to allow for multiple entries per submission +# 80625-0032 - Added time/phone display format options to system settings +# 80703-0124 - Added alter cust phone and api settings +# 80715-1130 - Added Recycle leads limit count +# 80719-1351 - Changed QC settings in campaigns and In-Groups +# 80809-2305 - Added Sale and Dead Lead categories to status categories page +# 80815-1036 - Added manual dial filter to capaigns +# 80823-2124 - Added copy to clipboard campaign option +# 80829-2359 - Added EXTENDED auto_alt_dial options +# 80831-0406 - Added agent screen extended alt-dial option to campaigns +# 80909-0553 - Added campaign-specific DNC list option and add +# 81002-1101 - Added more in-group options and new DID section and user options +# 81007-0936 - Added three_way_call_cid option to campaigns +# 81012-1725 - Added INBOUND_MAN dial method allowing for manual list dialing with inbound calls +# 81030-0348 - Added campaign pause code force option +# 81030-2228 - Fixed DIDs creation issue +# 81103-1408 - Added 3way call dial prefix option +# 81107-1551 - Added Stats Percent of Calls Answered Within X seconds fields to in-groups +# 81118-0933 - Changed lists listing with links and more options +# 81119-0715 - Added ability to bulk enable/disable lists from modify campaign screen +# 81209-1538 - Added web_form_target to campaign screen +# 81210-1430 - Added http server IP and recording link options to servers +# 81222-0500 - Reformatted all listings to same format changed to field selects instead of * +# 81228-2300 - Added fields for vtiger integration and active vicidial_user display +# 90101-1216 - Added options for user synchronization with vtiger +# 90112-0335 - Added vtiger_create_lead_record and vtiger_create_lead_record options +# 90115-0502 - Activated AGENT DID routing option +# 90126-2256 - Added vtiger_screen_login campaign option and user agent alert option +# 90201-1503 - Added option to disable the viewing of inactive QC features +# 90202-0112 - Added option to disable outbound autodialing(or list dialing) +# 90202-0444 - Added cpd_amd_action option for processing of AMD messages +# 90209-1339 - Added download_lists option to allow downloading of lists +# 90210-1042 - Added options for auto-generation of asterisk conf files +# 90301-2026 - Added Vtiger group synchronization +# 90302-2046 - Changed Section heading to be on the left side of the screen +# 90303-0631 - Added web vars to agent campaign and in-group settings +# 90303-2047 - Added group aliases and default group aliases +# 90306-1214 - Added shift enforcement and server/system calls per second options +# 90308-0956 - Added server statistics +# 90309-0059 - Changed logging to admin_server_log +# 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 +# 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue +# +# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time + +$admin_version = '2.2.0-233'; +$build = '100104-1454'; + +$STARTtime = date("U"); +$SQLdate = date("Y-m-d H:i:s"); +$REPORTdate = date("Y-m-d"); +$MT[0]=''; +$US='_'; +$active_lists=0; +$inactive_lists=0; + +$month_old = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); +$past_week_date = date("Y-m-d H:i:s",$week_old); + +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Ora non sei collegato. Grazie\n"; + exit; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfull_name =$row[3]; + $LOGuser_level =$row[4]; + $LOGuser_group =$row[5]; + $LOGdelete_users =$row[8]; + $LOGdelete_user_groups =$row[9]; + $LOGdelete_lists =$row[10]; + $LOGdelete_campaigns =$row[11]; + $LOGdelete_ingroups =$row[12]; + $LOGdelete_remote_agents =$row[13]; + $LOGload_leads =$row[14]; + $LOGcampaign_detail =$row[15]; + $LOGast_admin_access =$row[16]; + $LOGast_delete_phones =$row[17]; + $LOGdelete_scripts =$row[18]; + $LOGdelete_filters =$row[29]; + $LOGalter_agent_interface =$row[30]; + $LOGdelete_call_times =$row[32]; + $LOGmodify_call_times =$row[33]; + $LOGmodify_users =$row[34]; + $LOGmodify_campaigns =$row[35]; + $LOGmodify_lists =$row[36]; + $LOGmodify_scripts =$row[37]; + $LOGmodify_filters =$row[38]; + $LOGmodify_ingroups =$row[39]; + $LOGmodify_usergroups =$row[40]; + $LOGmodify_remoteagents =$row[41]; + $LOGmodify_servers =$row[42]; + $LOGview_reports =$row[43]; + $LOGmodify_dids =$row[56]; + $LOGdelete_dids =$row[57]; + $LOGmanager_shift_enforcement_override=$row[61]; + $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns = $row[0]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|XXXX|$ip|$browser|$LOGfull_name|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +###################################################################################################### +###################################################################################################### +####### Header settings +###################################################################################################### +###################################################################################################### + + +header ("Content-type: text/html; charset=utf-8"); +echo "\n"; +echo "\n"; +echo "\n"; +echo "ADMINISTRATION: "; + +if (!isset($ADD)) {$ADD=0;} + +if ($ADD=="1") {$hh='users'; echo "Aggiungi Nuovo Utente";} +if ($ADD=="1A") {$hh='users'; echo "Copia Utente";} +if ($ADD==11) {$hh='campaigns'; $sh='basic'; echo "Aggiungi Nuova Campagna";} +if ($ADD==12) {$hh='campaigns'; $sh='basic'; echo "Copia Campagna";} +if ($ADD==111) {$hh='lists'; echo "Aggiungi Nuova Lista";} +if ($ADD==121) {$hh='lists'; echo "Agregue DNC Nuevo";} +if ($ADD==1111) {$hh='ingroups'; echo "Aggiungi Nuovo Gruppo Inbound";} +if ($ADD==1211) {$hh='ingroups'; echo "Copia Gruppo Inbound";} +if ($ADD==1311) {$hh='ingroups'; echo "Aggiungi nuovoDID";} +if ($ADD==1411) {$hh='ingroups'; echo "CopiaDID";} +if ($ADD==1511) {$hh='ingroups'; echo "Aggiungi Call Menu";} +if ($ADD==1611) {$hh='ingroups'; echo "Copia Call Menu";} +if ($ADD==11111) {$hh='remoteagent'; echo "Aggiungi Nuovo Operatore Remoto";} +if ($ADD==111111) {$hh='usergroups'; echo "Aggiungi Nuovo Gruppo Utente";} +if ($ADD==1111111) {$hh='scripts'; echo "Aggiungi Nuovo Script";} +if ($ADD==11111111) {$hh='filters'; echo "Agiungi Nuovo Filtro";} +if ($ADD==111111111) {$hh='admin'; $sh='times'; echo "Agregue El Nuevo Tiempo De la Llamada";} +if ($ADD==131111111) {$hh='admin'; $sh='shifts'; echo "Aggiungi nuovo Shift";} +if ($ADD==1111111111) {$hh='admin'; $sh='times'; echo "Agregue El Nuevo Tiempo De la Llamada Del Estado";} +if ($ADD==11111111111) {$hh='admin'; $sh='phones'; echo "AGGIUNGI TELEFONO";} +if ($ADD==12111111111) {$hh='admin'; $sh='phones'; echo "AGGIUNGI NUOVO TELEFONO ALIAS";} +if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "AGGIUNGI NUOVO GRUPPO ALIAS";} +if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "AGGIUNGI SERVER";} +if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "ADD NEW CONF TEMPLATE";} +if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "AGGIUNGI NUOVO VETTORE";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW ENTRY TTS";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC IN ATTESA INGRESSO";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW VOICEMAIL BOX";} +if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "NUEVA CONFERENCIA";} +if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} +if ($ADD=='2') {$hh='users'; echo "Creazione Nuovo Utente";} +if ($ADD=='2A') {$hh='users'; echo "Nueva Adicio`n Copiada Del Usuario";} +if ($ADD==20) {$hh='campaigns'; $sh='basic'; echo "Nueva Adicio`n Copiada De la Campaña";} +if ($ADD==21) {$hh='campaigns'; $sh='basic'; echo "Creazione Nuova Campagna";} +if ($ADD==22) {$hh='campaigns'; $sh='status'; echo "Creazione Nuovo Esito Personalizzato Per Campagna";} +if ($ADD==23) {$hh='campaigns'; $sh='hotkey'; echo "New Campagna HotKey Addition";} +if ($ADD==25) {$hh='campaigns'; $sh='recycle'; echo "El Nuevo Plomo De la Campaña Recicla La Adicio`n";} +if ($ADD==26) {$hh='campaigns'; $sh='autoalt'; echo "Nuevo Estado Del Dial Del Alt Del Automo`vil";} +if ($ADD==27) {$hh='campaigns'; $sh='pause'; echo "Nuevo Co`digo De la Pausa Del Agente";} +if ($ADD==28) {$hh='campaigns'; $sh='dialstat'; echo "Esito Campagna Aggiunto";} +if ($ADD==29) {$hh='campaigns'; $sh='listmix'; echo "Mezcla De la Lista De la Campaña Agregada";} +if ($ADD==211) {$hh='lists'; echo "Creazione Nuova Lista";} +if ($ADD==2111) {$hh='ingroups'; echo "Creazione Nuovo Gruppo Inbound";} +if ($ADD==2011) {$hh='ingroups'; echo "Nueva Adicin Copiada Del En-Grupo";} +if ($ADD==2311) {$hh='ingroups'; echo "Nuova aggiunta DID";} +if ($ADD==2411) {$hh='ingroups'; echo "Nuova aggiunta Copiato DID";} +if ($ADD==2511) {$hh='ingroups'; echo "Nuova chiamata Menu";} +if ($ADD==2611) {$hh='ingroups'; echo "Nuova chiamata Menu";} +if ($ADD==21111) {$hh='remoteagent'; echo "Creazuibe Nuovi Operatori Remoti";} +if ($ADD==211111) {$hh='usergroups'; echo "Creazione Nuovo Gruppo Utenti";} +if ($ADD==2111111) {$hh='scripts'; echo "Creazione Nuovo Script";} +if ($ADD==21111111) {$hh='filters'; echo "Nueva Adicio`n Del Filtro";} +if ($ADD==211111111) {$hh='admin'; $sh='times'; echo "Nueva Adicio`n Del Tiempo De la Llamada";} +if ($ADD==231111111) {$hh='admin'; $sh='shifts'; echo "Nuova aggiunta Maiusc";} +if ($ADD==2111111111) {$hh='admin'; $sh='times'; echo "Nueva Adicio`n Del Tiempo De la Llamada Del Estado";} +if ($ADD==21111111111) {$hh='admin'; $sh='phones'; echo "CREANDO telefono";} +if ($ADD==22111111111) {$hh='admin'; $sh='phones'; echo "Aggiunta di nuovi TELEFONO ALIAS";} +if ($ADD==23111111111) {$hh='admin'; $sh='phones'; echo "AGGIUNGENDO NUOVO GRUPPO ALIAS";} +if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "CREANDO SERVIDOR";} +if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ADICIo`N DEL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL";} +if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "Aggiunta di nuovi CONF TEMPLATE";} +if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "Aggiunta di nuovi VETTORE";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "Aggiunta di nuovi TTS ENTRY";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "AGGIUNTA NUOVA MUSICA IN ATTESA INGRESSO";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "Aggiunta di nuovi VOICEMAIL BOX";} +if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "CREANDO CONFERENCIA";} +if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} +if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "AGGIUNGI ESITI DI DEFAULT VICIDIAL";} +if ($ADD==231111111111111) {$hh='admin'; $sh='status'; echo "ADICIo`N DE CATEGORÍA DEL ESTADO DE VICIDIAL";} +if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "AGGIUNGENDO VICIDIAL QC CODICE STATO";} +if ($ADD==3) {$hh='users'; echo "Modifica Utente";} +if ($ADD==30) {$hh='campaigns'; echo "Campagna Non Autorizzata";} +if ($ADD==31) + { + $hh='campaigns'; $sh='detail'; echo "Modifica Campagna - Dettagliata - $campaign_id"; + if ($SUB==22) {echo " - Esiti";} + if ($SUB==23) {echo " - Hot-Key";} + if ($SUB==25) {echo " -Riciclaggio ContattiEntries";} + if ($SUB==26) {echo " - Alt Auto Dial Esiti";} + if ($SUB==27) {echo " - Agent Codici Pausa";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Elenco Mixes";} + if ($SUB=='20A') {echo " - Indagine";} + } +if ($ADD==34) + { + $hh='campaigns'; $sh='basic'; echo "Modifica Campagna - Vista Generale - $campaign_id"; + if ($SUB==22) {echo " - Esiti";} + if ($SUB==23) {echo " - Hot-Key";} + if ($SUB==25) {echo " -Riciclaggio ContattiEntries";} + if ($SUB==26) {echo " - Alt Auto Dial Esiti";} + if ($SUB==27) {echo " - Agent Codici Pausa";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - Elenco Mixes";} + if ($SUB=='20A') {echo " - Indagine";} + } +if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Esiti Campagna";} +if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Hot-Key Campagna";} +if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "El Plomo De la Campaña Recicla Entradas";} +if ($ADD==36) {$hh='campaigns'; $sh='autoalt'; echo "Estados Auto Del Dial Del Alt De la Campaña";} +if ($ADD==37) {$hh='campaigns'; $sh='pause'; echo "Codici Pausa Operatore per Campagna";} +if ($ADD==38) {$hh='campaigns'; $sh='dialstat'; echo "Estados Del Dial De la Campaña";} +if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Mezclas De la Lista De la Campaña";} +if ($ADD==311) {$hh='lists'; echo "Modifica Lista";} +if ($ADD==3111) {$hh='ingroups'; echo "Modifica Gruppo Inbound";} +if ($ADD==3311) {$hh='ingroups'; echo "ModificareDID";} +if ($ADD==3511) {$hh='ingroups'; echo "Modifica Call Menu";} +if ($ADD==31111) {$hh='remoteagent'; echo "Modifica Operatori Remoti";} +if ($ADD==311111) {$hh='usergroups'; echo "Modifica Gruppi Utenti";} +if ($ADD==3111111) {$hh='scripts'; echo "Modifica Script";} +if ($ADD==31111111) {$hh='filters'; echo "Modifica Filtro";} +if ($ADD==311111111) {$hh='admin'; $sh='times'; echo "Modifique El Tiempo De la Llamada";} +if ($ADD==321111111) {$hh='admin'; $sh='times'; echo "Modifique La Lista De las Definiciones Del Estado Del Tiempo De laLlamada";} +if ($ADD==331111111) {$hh='admin'; $sh='shifts'; echo "Modificare Maiusc";} +if ($ADD==3111111111) {$hh='admin'; $sh='times'; echo "Modifique El Tiempo De la Llamada Del Estado";} +if ($ADD==31111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR EL telefonO";} +if ($ADD==32111111111) {$hh='admin'; $sh='phones'; echo "MODIFICA ALIAS TELEFONO";} +if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFICA GRUPPO ALIAS";} +if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "MODIFICAR EL SERVIDOR";} +if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFICA TEMPLATE CONF";} +if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFICA DEL VETTORE";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFICA TTS ENTRY";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFICA Music On Hold ENTRATA";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFICA VOICEMAIL BOX";} +if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "MODIFICAR LA CONFERENCIA";} +if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "MODIFICA IMPOSTAZIONI DI SISTEMA";} +if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo "MODIFICA ESITI DI DEFAULT VICIDIAL";} +if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo "MODIFICA LE CATEGORIE DI ESITI DI VICIDIAL";} +if ($ADD==341111111111111) {$hh='admin'; $sh='status'; echo "MODIFICA VICIDIAL QC CODICE STATO";} +if ($ADD=="4A") {$hh='users'; echo "Modifica Utente - Admin";} +if ($ADD=="4B") {$hh='users'; echo "Modifica Utente - Admin";} +if ($ADD==4) {$hh='users'; echo "Modifica Utente";} +if ($ADD==41) {$hh='campaigns'; $sh='detail'; echo "Modifica Campagna";} +if ($ADD==42) {$hh='campaigns'; $sh='status'; echo "Modifica Campagna Status";} +if ($ADD==43) {$hh='campaigns'; $sh='hotkey'; echo "Modifica Campagna HotKey";} +if ($ADD==44) {$hh='campaigns'; $sh='basic'; echo "Modifica Campagna - Vista Generale";} +if ($ADD==45) {$hh='campaigns'; $sh='recycle'; echo "Modifique El Plomo De la Campaña Reciclan";} +if ($ADD==47) {$hh='campaigns'; $sh='pause'; echo "Modifique El Co`digo De la Pausa Del Agente";} +if ($ADD==48) {$hh='campaigns'; $sh='qc'; echo "Modifica impostazioni campagna, QC";} +if ($ADD==49) {$hh='campaigns'; $sh='listmix'; echo "Modifique La Mezcla De la Lista De la Campaña";} +if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Modificare la campagna Sondaggio";} +if ($ADD==411) {$hh='lists'; echo "Modifica Lista";} +if ($ADD==4111) {$hh='ingroups'; echo "Modifica Gruppo Inbound";} +if ($ADD==4311) {$hh='ingroups'; echo "ModificareDID";} +if ($ADD==4511) {$hh='ingroups'; echo "Modifica Call Menu";} +if ($ADD==41111) {$hh='remoteagent'; echo "Modifica Operatori Remoti";} +if ($ADD==411111) {$hh='usergroups'; echo "Modifica Gruppi Utenti";} +if ($ADD==4111111) {$hh='scripts'; echo "Modifica Script";} +if ($ADD==41111111) {$hh='filters'; echo "Modifica Filtro";} +if ($ADD==411111111) {$hh='admin'; $sh='times'; echo "Modifique El Tiempo De la Llamada";} +if ($ADD==431111111) {$hh='admin'; $sh='shifts'; echo "Modificare Maiusc";} +if ($ADD==4111111111) {$hh='admin'; $sh='times'; echo "Modifique El Tiempo De la Llamada Del Estado";} +if ($ADD==41111111111) {$hh='admin'; $sh='phones'; echo "MODIFICAR EL telefonO";} +if ($ADD==42111111111) {$hh='admin'; $sh='phones'; echo "MODIFICA ALIAS TELEFONO";} +if ($ADD==43111111111) {$hh='admin'; $sh='phones'; echo "MODIFICA GRUPPO ALIAS";} +if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "MODIFICAR EL SERVIDOR";} +if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "MODIFIQUE EL EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL";} +if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFICA TEMPLATE CONF";} +if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFICA DEL VETTORE";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFICA TTS ENTRY";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFICA Music On Hold ENTRATA";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFICA VOICEMAIL BOX";} +if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "MODIFICAR LA CONFERENCIA";} +if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "MODIFICA IMPOSTAZIONI DI SISTEMA";} +if ($ADD==421111111111111) {$hh='admin'; $sh='status'; echo "MODIFICA ESITI DI DEFAULT VICIDIAL";} +if ($ADD==431111111111111) {$hh='admin'; $sh='status'; echo "MODIFIQUE LAS CATEGORÍAS DEL ESTADO DE VICIDIAL";} +if ($ADD==441111111111111) {$hh='admin'; $sh='status'; echo "MODIFICA VICIDIAL QC CODICE STATO";} +if ($ADD==5) {$hh='users'; echo "EliminareUtente";} +if ($ADD==51) {$hh='campaigns'; $sh='detail'; echo "EliminareCampagna";} +if ($ADD==52) {$hh='campaigns'; $sh='detail'; echo "Disconnetti Operatori";} +if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Claro Del Atasco De la Emergencia VDAC";} +if ($ADD==511) {$hh='lists'; echo "EliminareList";} +if ($ADD==5111) {$hh='ingroups'; echo "EliminareIn-Group";} +if ($ADD==5311) {$hh='ingroups'; echo "EliminareDID";} +if ($ADD==5511) {$hh='ingroups'; echo "Elimina Call Menu";} +if ($ADD==51111) {$hh='remoteagent'; echo "Suprima los agentes alejados";} +if ($ADD==511111) {$hh='usergroups'; echo "Cancella Utenti Group";} +if ($ADD==5111111) {$hh='scripts'; echo "Cancella Script";} +if ($ADD==51111111) {$hh='filters'; echo "Cancella Filtro";} +if ($ADD==511111111) {$hh='admin'; $sh='times'; echo "EliminareCall Time";} +if ($ADD==531111111) {$hh='admin'; $sh='shifts'; echo "Elimina Maiusc";} +if ($ADD==5111111111) {$hh='admin'; $sh='times'; echo "Tiempo De la Llamada Del Estado De la Cancelacio`n";} +if ($ADD==51111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==52111111111) {$hh='admin'; $sh='phones'; echo "DELETE TELEFONO ALIAS";} +if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "Elimina gruppo ALIAS";} +if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "CANC CONF TEMPLATE";} +if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "CANC VETTORE";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE Music On Hold ENTRATA";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE VOICEMAIL BOX";} +if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==6) {$hh='users'; echo "EliminareUtente";} +if ($ADD==61) {$hh='campaigns'; $sh='detail'; echo "EliminareCampagna";} +if ($ADD==62) {$hh='campaigns'; $sh='detail'; echo "Disconnetti Operatori";} +if ($ADD==63) {$hh='campaigns'; $sh='detail'; echo "Claro Del Atasco De la Emergencia VDAC";} +if ($ADD==65) {$hh='campaigns'; $sh='recycle'; echo "El Plomo De la Cancelacio`n Recicla";} +if ($ADD==66) {$hh='campaigns'; $sh='autoalt'; echo "Estado Auto Del Dial Del Alt De la Cancelacio`n";} +if ($ADD==67) {$hh='campaigns'; $sh='pause'; echo "Co`digo De la Pausa Del Agente De la Cancelacio`n";} +if ($ADD==68) {$hh='campaigns'; $sh='dialstat'; echo "Esito Campagna Rimosso";} +if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "La Mezcla De la Lista De la Campaña Quito`";} +if ($ADD==611) {$hh='lists'; echo "EliminareList";} +if ($ADD==6111) {$hh='ingroups'; echo "EliminareIn-Group";} +if ($ADD==6311) {$hh='ingroups'; echo "EliminareDID";} +if ($ADD==6511) {$hh='ingroups'; echo "Elimina Call Menu";} +if ($ADD==61111) {$hh='remoteagent'; echo "Suprima los agentes alejados";} +if ($ADD==611111) {$hh='usergroups'; echo "Cancella Utenti Group";} +if ($ADD==6111111) {$hh='scripts'; echo "Cancella Script";} +if ($ADD==61111111) {$hh='filters'; echo "Cancella Filtro";} +if ($ADD==611111111) {$hh='admin'; $sh='times'; echo "EliminareCall Time";} +if ($ADD==631111111) {$hh='admin'; $sh='shifts'; echo "Elimina Maiusc";} +if ($ADD==6111111111) {$hh='admin'; $sh='times'; echo "Tiempo De la Llamada Del Estado De la Cancelacio`n";} +if ($ADD==61111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE TELEFONO ALIAS";} +if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "Elimina gruppo ALIAS";} +if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL DE LA CANCELACIo`N";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "CANC CONF TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "CANC VETTORE";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE Music On Hold ENTRATA";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE VOICEMAIL BOX";} +if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==73) {$hh='campaigns'; echo "Cuenta Del Plomo De Dialable";} +if ($ADD==7111111) {$hh='scripts'; echo "Anteprima Script";} +if ($ADD==700000000000000) {$hh='reports'; echo "VICIDIAL ADMIN Change Log";} +if ($ADD==710000000000000) {$hh='reports'; echo "VICIDIAL Lutente admin CAMBIAMENTO LOG";} +if ($ADD==720000000000000) {$hh='reports'; echo "VICIDIAL SEZIONE ADMIN Change Log";} +if ($ADD==730000000000000) {$hh='reports'; echo "VICIDIAL DETTAGLIO ADMIN Change Log";} +if ($ADD==0) {$hh='users'; echo "Lista Utenti";} +if ($ADD==8) {$hh='users'; echo "Richiami Dell`Operatore";} +if ($ADD==81) {$hh='campaigns'; $sh='list'; echo "Richiami Nella Campagna";} +if ($ADD==811) {$hh='lists'; echo "Richiami Nella Lista";} +if ($ADD==8111) {$hh='usergroups'; echo "Richiami In Attesa In Questo Gruppo";} +if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Campagnas";} +if ($ADD==100) {$hh='lists'; echo "Liste";} +if ($ADD==1000) {$hh='ingroups'; echo "In-Groups";} +if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Call Menu";} +if ($ADD==10000) {$hh='remoteagent'; echo "Operatori Remoti";} +if ($ADD==100000) {$hh='usergroups'; echo "Gruppi Utenti";} +if ($ADD==1000000) {$hh='scripts'; echo "Script";} +if ($ADD==10000000) {$hh='filters'; echo "Filtri";} +if ($ADD==100000000) {$hh='admin'; $sh='times'; echo "Orari Chiamata";} +if ($ADD==130000000) {$hh='admin'; $sh='shifts'; echo "Turni";} +if ($ADD==1000000000) {$hh='admin'; $sh='times'; echo "Tiempos De la Llamada Del Estado";} +if ($ADD==10000000000) {$hh='admin'; $sh='phones'; echo "ELENCO TELEFONI";} +if ($ADD==12000000000) {$hh='admin'; $sh='phones'; echo "ALIAS ELENCO TELEFONICO";} +if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GRUPPO ALIAS ELENCO";} +if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "ELENCO SEEVER";} +if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF TEMPLATE ELENCO";} +if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "ELENCO CARRIER";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS ENTRY LIST";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "Music On Hold ENTRY LIST";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "VOICEMAIL caselle di riepilogo";} +if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "LISTA DE CONFERENCIAS";} +if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL LISTA DE CONFERENCIAS";} +if ($ADD==550) {$hh='users'; echo "Form di Ricerca";} +if ($ADD==551) {$hh='users'; echo "BUSCAR telefonOS";} +if ($ADD==660) {$hh='users'; echo "Risultati Ricerca";} +if ($ADD==661) {$hh='users'; echo "RESULTADO DE LA BÚSQUEDA DE telefonOS";} +if ($ADD==99999) {$hh='users'; echo "AIUTO";} +if ($ADD==999999) {$hh='reports'; echo "REPORT";} + +if ( ($ADD>9) && ($ADD < 99998) ) + { + ##### get scripts listing for dynamic pulldown + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $scripts_list="<option value=\"\">NESSUNO</option>\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $scripts_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get filters listing for dynamic pulldown + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_sql from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + $filters_list="<option value=\"\">NESSUNO</option>\n"; + + $o=0; + while ($filters_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $filters_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $filtername_list["$rowx[0]"] = "$rowx[1]"; + $filtersql_list["$rowx[0]"] = "$rowx[2]"; + $o++; + } + + ##### get call_times listing for dynamic pulldown + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $times_to_print = mysql_num_rows($rslt); + + $o=0; + while ($times_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $call_times_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $call_timename_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + } + +if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD<70)) or ($ADD=="4A") or ($ADD=="4B") or (strlen($ADD)==12) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + + ##### BEGIN get campaigns listing for rankings ##### + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $campaigns_value=''; + $RANKcampaigns_list="<tr><td>CAMPAGNA</td><td>     CLASSIFICA</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $campaign_id_values[$o] = $rowx[0]; + $campaign_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + $group_web_vars=''; + $campaign_web=''; + $stmt="SELECT campaign_rank,calls_today,group_web_vars from vicidial_campaign_agents where user='$user' and campaign_id='$campaign_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_campaign_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_campaign_rank=0; $group_web_vars='';} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_GET["RANK_$campaign_id_values[$o]"];} + elseif (isset($_POST["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_POST["RANK_$campaign_id_values[$o]"];} + if (isset($_GET["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_GET["WEB_$campaign_id_values[$o]"];} + elseif (isset($_POST["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_POST["WEB_$campaign_id_values[$o]"];} + if ($non_latin < 1) + { + $campaign_rank = ereg_replace("[^-\_0-9]","",$campaign_rank); + $campaign_web = preg_replace("/;|\"|\'/","",$campaign_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', group_web_vars='$campaign_web' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', campaign_id='$campaign_id_values[$o]', user='$user', group_web_vars='$campaign_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_agents set campaign_weight='$campaign_rank' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$campaign_rank = $SELECT_campaign_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + # disable non user-group allowable campaign ranks + $stmt="SELECT user_group from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Ruser_group = $row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$Ruser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $UGcampaigns = explode(" ", $allowed_campaigns); + + $p=0; $RANK_camp_active=0; $CR_disabled = ''; + if (eregi('-ALL-CAMPAIGNS-',$allowed_campaigns)) + {$RANK_camp_active++;} + else + { + $UGcampaign_ct = count($UGcampaigns); + while ($p < $UGcampaign_ct) + { + if ($campaign_id_values[$o] == $UGcampaigns[$p]) + {$RANK_camp_active++;} + $p++; + } + } + if ($RANK_camp_active < 1) {$CR_disabled = 'DISABLED';} + + $RANKcampaigns_list .= "<tr $bgcolor><td>"; + $campaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] <BR>\n"; + $RANKcampaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] </td>"; + $RANKcampaigns_list .= "<td>     <select size=1 name=RANK_$campaign_id_values[$o] $CR_disabled>\n"; + $h="9"; + while ($h>=-9) + { + $RANKcampaigns_list .= "<option value=\"$h\""; + if ($h==$campaign_rank) + {$RANKcampaigns_list .= " SELECTED";} + $RANKcampaigns_list .= ">$h</option>"; + $h--; + } + if ( (strlen($campaign_web) < 1) and (strlen($group_web_vars) > 0) ) + {$campaign_web=$group_web_vars;} + $RANKcampaigns_list .= "</select></td>\n"; + $RANKcampaigns_list .= "<td align=right>     $calls_today</td>\n"; + $RANKcampaigns_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$campaign_id_values[$o] value=\"$campaign_web\"></td></tr>\n"; + $o++; + } + ##### END get campaigns listing for rankings ##### + + + ##### BEGIN get inbound groups listing for checkboxes ##### + $xfer_groupsSQL=''; + if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) + { + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + + 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';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + if ($ADD==3) + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; +# $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + $XFERgroups_list=''; + $RANKgroups_list="<tr><td>INBOUND GROUP</td><td>     CLASSIFICA</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_values[$o] = $rowx[0]; + $group_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($groups_to_print > $o) + { + $group_web_vars=''; + $group_web=''; + $stmt="SELECT group_rank,calls_today,group_web_vars from vicidial_inbound_group_agents where user='$user' and group_id='$group_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_group_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_group_rank=0;} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$group_id_values[$o]"])) {$group_rank=$_GET["RANK_$group_id_values[$o]"];} + elseif (isset($_POST["RANK_$group_id_values[$o]"])) {$group_rank=$_POST["RANK_$group_id_values[$o]"];} + if (isset($_GET["WEB_$group_id_values[$o]"])) {$group_web=$_GET["WEB_$group_id_values[$o]"];} + elseif (isset($_POST["WEB_$group_id_values[$o]"])) {$group_web=$_POST["WEB_$group_id_values[$o]"];} + + if ($non_latin < 1) + { + $group_rank = ereg_replace("[^-\_0-9]","",$group_rank); + $group_web = preg_replace("/;|\"|\'/","",$group_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_web_vars='$group_web' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_id='$group_id_values[$o]', user='$user', group_web_vars='$group_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_inbound_agents set group_weight='$group_rank' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$group_rank = $SELECT_group_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $groups_list .= "<input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $XFERgroups_list .= "<input type=\"checkbox\" name=\"XFERgroups[]\" value=\"$group_id_values[$o]\""; + $RANKgroups_list .= "<tr $bgcolor><td><input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $p=0; + $group_ct = count($groups); + while ($p < $group_ct) + { + if ($group_id_values[$o] == $groups[$p]) + { + $groups_list .= " CHECKED"; + $RANKgroups_list .= " CHECKED"; + $groups_value .= " $group_id_values[$o]"; + } + $p++; + } + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + if ($group_id_values[$o] == $XFERgroups[$p]) + { + $XFERgroups_list .= " CHECKED"; + $XFERgroups_value .= " $group_id_values[$o]"; + } + $p++; + } + $stmt="SELECT queue_priority from vicidial_inbound_groups where group_id='$group_id_values[$o]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VIG_priority = $row[0]; + + $groups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] - $VIG_priority <BR>\n"; + $XFERgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] <BR>\n"; + $RANKgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] </td>"; + $RANKgroups_list .= "<td>     <select size=1 name=RANK_$group_id_values[$o]>\n"; + $h="9"; + while ($h>=-9) + { + $RANKgroups_list .= "<option value=\"$h\""; + if ($h==$group_rank) + {$RANKgroups_list .= " SELECTED";} + $RANKgroups_list .= ">$h</option>"; + $h--; + } + if ( (strlen($group_web) < 1) and (strlen($group_web_vars) > 0) ) + {$group_web=$group_web_vars;} + $RANKgroups_list .= "</select></td>\n"; + $RANKgroups_list .= "<td align=right>     $calls_today</td>\n"; + $RANKgroups_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$group_id_values[$o] value=\"$group_web\"></td></tr>\n"; + $o++; + } + if (strlen($groups_value)>2) {$groups_value .= " -";} + if (strlen($XFERgroups_value)>2) {$XFERgroups_value .= " -";} + } + ##### END get inbound groups listing for checkboxes ##### + + +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) + { + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + { + $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $qc_allowed_campaigns = $row[1]; + $qc_allowed_inbound_groups = $row[2]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $campaigns = explode(" ", $allowed_campaigns); + $qc_allowed_campaigns = preg_replace("/ -$/","",$qc_allowed_campaigns); + $qc_campaigns = explode(" ", $qc_allowed_campaigns); + $qc_allowed_inbound_groups = preg_replace("/ -$/","",$qc_allowed_inbound_groups); + $qc_groups = explode(" ", $qc_allowed_inbound_groups); + } + + $campaigns_value=''; + $campaigns_list='<B><input type="checkbox" name="campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_campaigns_value=''; + $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_groups_value=''; + $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) + { + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } + $campaigns_list.="> ALL-CAMPAIGNS - GLI UTENTI POSSONO VISUALIZZARE QUALSIASI CAMPAGNA</B><BR>\n"; + $qc_campaigns_list.="> ALL-CAMPAIGNS - Gli utenti possono, QC OGNI CAMPAGNA</B><BR>\n"; + $qc_groups_list.="> ALL-GROUPS - Gli utenti possono QC INBOUND OGNI GRUPPO</B><BR>\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaign_id_value = $rowx[0]; + $campaign_name_value = $rowx[1]; + $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; + $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; + $p=0; + while ($p<1000) + { + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) + { + # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; + $campaigns_list .= " CHECKED"; + $campaigns_value .= " $campaign_id_value"; + } + if ($campaign_id_value == $qc_campaigns[$p]) + { + $qc_campaigns_list .= " CHECKED"; + $qc_campaigns_value .= " $campaign_id_value"; + } + # echo "<!-- O $p|$campaign_id_value|$campaigns[$p]| -->"; + $p++; + } + $campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $qc_campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $o++; + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; + $p=0; + while ($p<2000) + { + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) + { + $qc_groups_list .= " CHECKED"; + $qc_groups_value .= " $group_id_value"; + } + $p++; + } + $qc_groups_list .= "> $group_id_value - $group_name_value<BR>\n"; + $o++; + } + + if (strlen($campaigns_value)>2) {$campaigns_value .= " -";} + if (strlen($qc_campaigns_value)>2) {$qc_campaigns_value .= " -";} + if (strlen($qc_groups_value)>2) {$qc_groups_value .= " -";} + } + ##### END get campaigns listing for checkboxes ##### + + +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rsltx=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rsltx); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + } + + + +$NWB = "   <a href=\"javascript:openNewWindow('$PHP_SELF?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 Border=0 ALT=\"AIUTO\" ALIGN=TOP></A>"; + + +###################################################################################################### +###################################################################################################### +####### 9 series, HELP screen +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=99999 display the HELP SCREENS +###################### + +if ($ADD==99999) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "
ADMINISTRATION: AIUTO


\n"; + + ?> + VICIDIAL_USERS TABELLA

+ +
+ Identificacio`n del usuario - este campo es donde usted pone el número de la identificacio`n del usuario de VICIDIAL, puede ser hasta 8 dígitos en longitud, debe ser por lo menos 2 caracteres en longitud. + +
+
+
+ Contraseña - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. + +
+
+
+ Nombre completo - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud. + +
+
+
+ Nivel de usuario - 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 sesio`n como más cercano, deben ser el nivel de usuario 8 o mayor conseguir en la seccio`n de la tela del admin. + +
+
+
+ Grupo de usuario - 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, este es justo subdividir a usuarios y permitir las características futuras basadas sobre e`l. + +
+
+
+ conexion del telefono - aquí es para donde usted puede fijar un valor de la conexion del telefono 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 conexion de vicidial.php. + +
+
+
+ Paso del telefono - aquí es para donde usted puede fijar un valor del paso del telefono 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 conexion de vicidial.php. + +
+
+
+ Attivo - Questo campo definisce se lutente è attivo nel sistema e può essere utilizzato VICIDIAL risorse. Il valore di default è Y + +
+
+
+ E-mail, codice utente e Territorio - Questi sono i campi facoltativi. + +
+
+
+ Hot Keys activo - esta opcio`n si el sistema a 1 permite que el usuario utilice la funcio`n ra`pida-dispositioning de Hot Keys adentro vicidial.php. + +
+
+
+ El agente elige Ingroups - esta opcio`n si el sistema a 1 permite que el usuario elija los ingroups de los cuales recibirán llamadas cuando ellos conexion 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. + +
+
+
+ Agente Scegli Territori - Questa opzione se impostata a 1 permette all-utente di scegliere i territori che essi ricevere chiamate da quando il login per un manuale o una campagna INBOUND_MAN. In caso contrario, l-utente sarà impostato per utilizzare tutti i territori che sono fissati a far parte dei territori amministrativi Utente sezione. + +
+
+
+ Scheduled Callbacks - Questa opzione consente un agente a disposizione una chiamata come CALLBK e scegliere la data e l-ora in cui il piombo sarà riattivato. + +
+
+
+ Servicios repetidos del Agente-Solamente - esta opcio`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 Tambien permite que el agente vea sus listados del servicio repetido y los llame detrás cualquier momento desean a. + +
+
+
+ Manual de la llamada del agente - esta opcio`n permite que un agente incorpore manualmente un nuevo plomo en el sistema y los llame. Esto Tambien permite llamar de cualquier número de telefono de su pantalla vicidial y pone esa llamada en su sesio`n. Utilice esta opcio`n con la precaucio`n. + +
+
+
+ grabacion de Vicidial - esta opcio`n puede evitar que un agente haga cualquier grabacion despue`s de que se abran una sesio`n a vicidial. Esta opcio`n debe estar encendido para que vicidial siga la sesio`n de la grabacion de la campaña. + +
+
+
+ Vicidial transfiere - esta opcio`n puede evitar que un agente abra la transferencia - la sesio`n de la conferencia de vicidial. Si esto es lisiado, el agente no puede llamada de los terceros o la transferencia oculta cualquiera llama. + + 0) + { + ?> +
+
+
+ Un defecto más cercano mezclado - esta opcio`n omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexion. + + +
+
+
+ Invalidacio`n de la grabacion de VICIDIAL - esta opcio`n seeliminará lo que es la opcio`n en la campaña para la grabacion.LISIADO no eliminará el ajuste de la grabacion de la campaña. NUNCAinhabilitará la grabacion en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabacion en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabacion en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opcio`n para parar el registrar. ParaALLCALLS y ALLFORCE hay una opcio`n para utilizar la grabacionretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. + +
+
+
+ Agente Maiusc esecuzione Sovrascrive - Questa impostazione si sovrascriverà qualsiasi cosa gli utenti del gruppo di utenti ha fissato per lesecuzione Maiusc. ANDICAPPATI utilizzerà lutente gruppo. OFF non applicare a tutti i turni. INIZIO solo applicare il login, ma non riguarda un agente che è in esecuzione sul loro passaggio, se essi sono già eseguito laccesso TUTTE imporrà a turni orario di inizio e di un agente di log dopo che corrono oltre la fine del loro turno tempo. Il valore di default è disattivato. + +
+
+
+ Alert Attivato - Questo campo indica se lagente ha permesso browser avvisi per quando si chiede loro in vicidial.php sessione. Il valore di default è 0 per il NO. + +
+
+
+ Consentire Alerts - Questo campo ti dà la possibilità di consentire browser agente di avvisi per essere abilitato l-agente per le chiamate quando entrano in loro sessione vicidial.php. Di default è 0 per il NO. + +
+
+
+ La campaña alinea - en esta seccio`n usted puede definir a la filaque un agente tendrá para cada campaña. Estas filas pueden serutilizadas para tener en cuenta la encaminamiento preferida de lallamada cuando la llamada siguiente del agente se fija alcampaign_rank. Anche in questa sezione sono WEB VAR per ciascuna campagna. Questi permettono di ogni agente di avere una diversa variabile stringa che può essere aggiunto al Web Form o SCRIPT scheda URL semplicemente messa - A - web_vars - B - come si farebbe con qualsiasi altro posto campo. + +
+
+
+ Grupos de entrada - 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. Usted Tambien podrá fijar la fila, o el nivel de habilidad, en estaseccio`n para cada uno de los grupos de entrada así como poder ver elnúmero de las llamadas recibidas de cada grupo de entrada para esteagente específico. Tambien en esta seccio`n está la capacidad de dar al agente una filapara cada grupo de entrada. Estas filas pueden ser utilizadas para laencaminamiento preferida de la llamada cuando esa opcio`n seselecciona en la pantalla del en-grupo. Anche in questa sezione sono WEB VAR per ciascuna campagna. Questi permettono di ogni agente di avere una diversa variabile stringa che può essere aggiunto al Web Form o SCRIPT scheda URL semplicemente messa - A - web_vars - B - come si farebbe con qualsiasi altro posto campo. + +
+
+
+ El agente altera la invalidacio`n de los datos del cliente - estaopcio`n se eliminará lo que es la opcio`n en la campaña paraalterarse de los datos del cliente. NOT_ACTIVE utilizará lo que estápresente el ajuste para la campaña. ALLOW_ALTER permitirá siemprepara que el agente altere los datos del cliente, no importa que` es elajuste de la campaña. El defecto es NOT_ACTIVE. + +
+
+
+ Agente Alter clienti Telefono Sovrascrive - Questa opzione sovrascrive lopzione è ciò che nella campagna per modificare il numero di telefono del cliente. NOT_ACTIVE userà qualsiasi impostazione è presente per la campagna. ALLOW_ALTER sempre per consentire lagente di modificare il numero di telefono del cliente, non importa ciò che la campagna è limpostazione. Il valore di default è NOT_ACTIVE. + +
+
+
+ Utente campi personalizzati - Questi cinque campi possono essere utilizzati per vari scopi, e possono essere organizzati in forma gli indirizzi web e script come user_custom_one e così via. + +
+
+
+ Altere las opciones de interfaz del agente - esta opcio`n si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php. + +
+
+
+ Usuarios de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima a otros usuarios del igual o de poco nivel de usuario del sistema. + +
+
+
+ Suprima a grupos de usuario - esta opcio`n si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema. + +
+
+
+ La cancelacio`n enumera - esta opcio`n si el sistema a 1 permite que el usuario suprima listas vicidial del sistema. + +
+
+
+ La cancelacio`n hace campaña - esta opcio`n si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema. + +
+
+
+ En-Grupos de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema. + +
+
+
+ Suprima los agentes alejados - esta opcio`n si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema. + + 0) + { + ?> +
+
+
+ La carga conduce - esta opcio`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. + + +
+
+
+ Detalle de la campaña - esta opcio`n si el sistema a 1 permite que el usuario visio`n y modifique los elementos de la pantalla del detalle de la campaña. + +
+
+
+ Acceso de AGC Admin - esta opcio`n si el sistema a 1 permite a usuario a la conexion a las páginas astGUIclient del admin. + +
+
+
+ La cancelacio`n de AGC telefona - esta opcio`n si el sistema a 1 permite que el usuario suprima entradas del telefono en las páginas astGUIclient del admin. + +
+
+
+ Escrituras de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima las escrituras de la campaña en la pantalla de la modificacio`n de la escritura. + +
+
+
+ Modifique los plomos - esta opcio`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 seccio`n del admin. + +
+
+
+ Cambie la campaña del agente - esta opcio`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 e`l. + + 0) + { + ?> +
+
+
+ La cancelacio`n se filtra - esta opcio`n permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema. + + +
+
+
+ Tiempos de la llamada de la cancelacio`n - esta opcio`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. + +
+
+
+ Modifique El Tiempo De la Llamadas - 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 las secciones - estas opciones permiten que el usuariovisio`n y modifique cada uno los expedientes de las secciones. Si elsistema a 0, el usuario puede considerar la lista de la seccio`n, perono el detalle o la pantalla de la modificacio`n de un expediente enesa seccio`n. + +
+
+
+ La visio`n divulga - esta opcio`n permite que el usuario visio`n losinformes de VICIDIAL. + + 0) + { + ?> +
+
+
+ QC Attivato - Questa opzione permette allutente di accedere alla schermata di controllo della qualità agente. + +
+
+
+ QC Utente Livello - Questa impostazione consente di definire ciò che lagente di controllo della qualità è il livello utente. Ciò dettare il livello di funzionalità per lagente nel QC sezione:
+ 1 - Modificare Nulla
+ 2 - Modificare Nulla Salvo Stato
+ 3 - Modificare tutti i campi
+ 4 - Verificare prima tornata di CQ
+ 5 - Vedi QC Statistiche
+ 6 - Capacità di modificare i record finito
+ 7 - Livello Manager
+ +
+
+
+ QC record Pass - Questa opzione permette di specificare lagente di un record che ha superato il primo turno delle QC dopo aver esaminato il record. + +
+
+
+ QC record Fine - Questa opzione permette di specificare lagente che ha finito di registrare il secondo turno delle QC dopo aver esaminato il passato record. + +
+
+
+ QC record Impegni - Questa opzione permette di specificare lagente che un record è stato commesso in QC. Essa non può più essere modificato da chiunque. + + +
+
+
+ Aggiungi orologio Entra record - Questa opzione permette allutente di aggiungere record alla orologio Accedi. + +
+
+
+ Modificare orologio Entra record - Questa opzione permette allutente di modificare i record nella orologio Accedi. + +
+
+
+ Elimina orologio Entra record - Questa opzione consente allutente di eliminare i record nel registro orologio. + +
+
+
+ Agente Accesso API - Questa opzione permette laccount da utilizzare con lAPI vicidial agente comandi. + +
+
+
+ Shift Manager esecuzione Sovrascrive - Questa impostazione, se impostato a 1 consentirà un manager per inserire il proprio utente e la password su un agente schermo per scavalcare le restrizioni al passaggio di un agente di sessione, se lagente sta tentando di accedere al di fuori del loro passaggio. Il valore di default è 0. + +
+
+
+ Download Liste - Questa impostazione, se impostato a 1 consentirà un manager per il download cliccare sul link elenco nella parte inferiore della schermata di modifica un elenco di esportare lintero contenuto di un elenco di file di dati di un appartamento. Il valore di default è 0. + +
+
+
+ Rapporti Export - Questa impostazione, se impostato su 1 consente di accedere a un manager di esportazione chiamata relazioni sulle relazioni schermo. Il valore di default è 0. Per la relazione chiede di esportazione, per il seguente campo è utilizzato per le esportazioni:
call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, 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, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner + +
+
+
+ Cancellare dalle liste DNC - Questa impostazione, se impostato a 1 permetterà un gestore di rimuovere i numeri di telefono dagli elenchi DNC nel sistema VICIDIAL. + + + + + + +



+ + VICIDIAL_CAMPAIGNS TABELLA

+
+
+ Identificacio`n de la campaña - Úste es el nombre corto de la campaña, e`l no es editable despue`s de la sumisio`n inicial, no puede contener espacios y debe estar entre 2 y 8 caracteres en longitudh. + +
+
+
+ Nombre de la campaña - esta es la descripcio`n de la campaña, debe estar entre 6 y 40 caracteres en longitud. + +
+
+
+ Descripcio`n de la campaña - esto es un campo de la nota para lacampaña, es opcional y puede ser un máximo de 255 caracteres enlongitud. + +
+
+
+ Fecha del cambio de la campaña - esta es la vez última que losajustes para esta campaña fueron modificados de cualquier manera. + +
+
+
+ La fecha pasada de la conexion de la campaña - esta es la vezúltima que un agente fue registrado en esta campaña. + +
+
+
+ Last Campagna Call Data - Questa è l-ultima volta che una chiamata è stata gestita da un agente registrato in questa campagna. + +
+
+
+ Los Stats de la campaña restauran - este checkbox permitirá queusted fuerce un stats vicidial restaura, incluso si la campaña no esactiva. + +
+
+
+ Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en e`l. + +
+
+
+ Extension del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cercio`rese de que la extension este` en lugar en el extensions.conf y eso que señala al nombre de fichero abajo. + +
+
+
+ Nombre del archivo del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cercio`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. + +
+
+
+ Forma del Web - aquí es donde usted puede fijar el Web page de encargo que será abierto cuando el usuario chasca encendido el boton de la FORMA del WEB. Per personalizzare la stringa di ricerca dopo il modulo web, è sufficiente avviare il modulo web con VAR e quindi lURL che si desidera utilizzare, che sostituisce le variabili con i nomi di variabile che si desidera utilizzare - A - phone_number - B -- proprio come nella sezione SCRIPT scheda. + +
+
+
+ Web Form-Target Qui è possibile impostare la pagina web personalizzata cornice del modulo web che sarà aperto a quando lutente fa clic sul pulsante Web Form. Il valore di default è _blank. + +
+
+
+ Permita Closers - aquí es donde usted puede fijar si los usuarios de esta campaña tendrán la opcio`n para enviar la llamada a un más cercano. + +
+
+
+ Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. + +
+
+
+ Grupos permitidos de la transferencia - con estos listados delcheckbox usted puede seleccionar a los grupos a quienes los agentes enesta campaña pueden transferir llamadas. Permita Closers debe serpermitido para que esta opcio`n demuestre para arriba. + + 0) + { + ?> +
+
+
+ Permita de entrada y mezclado - aquí es donde usted puede fijar silos usuarios de esta campaña tendrán la opcio`n para tomar llamadasde entrada con esta campaña. Si usted desea hacer de entrada y desalida mezclada entonces esto se debe fijar a Y. Si usted deseasolamente hacer marcar de salida en esta campaña fijo` esto a N.Default es N. + +
+
+
+ Estado del dial - 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. Para agregar otro estado al dial, seleccio`nelo de la lista drop-downy el tecleo AGREGA. Para quitar uno de los estados del dial, chasqueencendido el acoplamiento del QUITAR al lado del estado que usteddesea quitar. + +
+
+
+ Orden de la lista - Este menú es donde usted selecciona co`mo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo: +
  - DOWN: seleziona i primi contatti caricati nella tabella vicidial_list +
  - UP: seleziona gli ultimi contatti caricati nella tabella vicidial_list +
  - UP PHONE: seleziona il numero di telefono piu` grande e poi scorre verso il basso +
  - DOWN PHONE: seleziona il numero di telefono piu` piccolo e poi scorre verso l`alto +
  - UP LAST NAME: comienzo con los nombres pasados comenzando con Z y trabajos su manera abajo +
  - DOWN LAST NAME: comienzo con los nombres pasados comenzando con A y trabajos su manera para arriba +
  - UP COUNT: comienzo con los plomos y los trabajos llamados su manera abajo +
  - DOWN COUNT: comienzo con menos plomos y trabajos llamados su manera para arriba +
  - DOWN COUNT 2nd NEW: 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) +
  - DOWN COUNT 3nd NEW: 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) +
  - DOWN COUNT 4th NEW: 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) +
  - RANDOM: Randomly afferra prima all-interno della statuti e gli elenchi di cui +
  - Rialzi ultimi guardia: Ordina per il tempo più recente chiamata locale per la porta +
  - Ribassi ultimi guardia: Ordina per il tempo più antiche chiamata locale per la porta +
  - UP RANK: Inizia con il rango più elevato e si sta facendo strada verso il basso +
  - DOWN RANK: Inizia con il rango più basso e si sta facendo strada fino +
  - UP OWNER: Inizia con i proprietari che iniziano con Z e lavora la sua strada verso il basso +
  - DOWN OWNER: Inizia con i proprietari che inizia con A e si sta facendo strada fino +
  - UP TIMEZONE: Inizia con fuso orario orientale e opere West +
  - DOWN TIMEZONE: Inizia con fuso orario occidentale e orientale opere + +
+
+
+ Tolva llana - este 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 trave`s en un minuto. + +
+
+
+ Filtro del plomo - este es un me`todo de filtrar sus plomos usando un fragmento de una pregunta del SQL. Utilice esta característica con la precaucio`n, e`l es fácil de parar el marcar accidentalmente con la alteracio`n más leve a la declaracio`n del SQL. El defecto no es NINGUNO. + +
+
+
+ Drop Lockout Time - Questo è un numero di ore che DROP abbandonare le chiamate sarà impedito di essere composto, per impostare disabilitare a 0. Questa impostazione è molto utile in paesi come il Regno Unito, dove vi sono norme che impediscono la convocazione tentativo di clienti entro le 72 ore di un abbandono, o DROP. Di default è 0. + +
+
+
+ Reajuste de la fuerza de la tolva - esto permite que usted limpie fuera del contenido de la tolva sobre la sumisio`n de la forma. Debe ser llenada otra vez cuando la escritura de VDhopper funciona. + +
+
+
+ Me`todo del dial - Este campo es la manera de definir co`mo el marcar debe ocurrir. Si el MANUAL entonces el auto_dial_level es bloqueado en 0 a menos que se cambie el me`todo del dial. Si COCIENTE entonces el normal marcando un número de líneas para los agentes activos. ADAPT_HARD_LIMIT marcará predictively hasta el porcentaje caído y despue`s no permitirá marcar agresivo una vez que se alcance el límite de la gota hasta que va el porcentaje abajo otra vez. ADAPT_TAPERED permite para el excedente de funcionamiento el porcentaje caído por la mitad primer de la cambio - según lo definido por el call_time seleccionado para la campaña y consigue más terminante mientras que se enciende la cambio. ADAPT_AVERAGE intenta mantener un promedio o el porcentaje caído que no impone límites duros tan agresivamente como los otros dos me`todos. Usted no puede cambiar el nivel auto del dial si usted está en cualesquiera de los me`todos del dial del ADAPTAR. Solamente el sintonizador puede cambiar el nivel del dial cuando en modo que marca profe`tico. INBOUND_MAN consente di collocare lagente manuale comporre le chiamate provenienti da una campagna elenco pur essendo in grado di prendere le chiamate in entrata tra manuale quadrante chiamate. + +
+
+
+ Nivel auto del dial - aquí es adonde usted fija cuántos alinea VICIDIAL debe utilizar por medios del agente activo cero 0 que el marcar del automo`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. El checkbox de la INVALIDACIo`N del ADAPTAR permite que usted fuerceun nuevo nivel del dial aunque el me`todo del dial está en un mododel ADAPTAR. Esto es útil si hay una cambio dramática en la calidadde plomos y usted desea cambiar drástico el dial_level manualmente. + +
+
+
+ Solamente cuenta disponible - este campo si el sistema a Y deja haciafuera los agentes del estado de INCALL y de la COLETA al calcular elnúmero de llamadas al dial cuando no en modo de dial MANUAL. Eldefecto es N. + +
+
+
+ Límite del porcentaje de la gota - este campo es donde usted fijo` ellímite del porcentaje de llamadas caídas que usted quisiera mientrasque usaba un me`todo adaptante-profe`tico del dial, NO MANUAL o delCOCIENTE. + +
+
+
+ El máximo adapta el dial llano - este campo es donde usted fijo` ellímite del límite al numbr de líneas que usted quisiera marcado poragente mientras que usaba un me`todo adaptante-profe`tico del dial, NOMANUAL o del COCIENTE. Este número puede ser más alto que el nivelauto del dial si su hardware lo apoya. El valor debe ser un númeropositivo mayor de uno y puede tener defecto 3.0 de los lugaresdecimales. + +
+
+
+ El tiempo más último del servidor - este campo es utilizadosolamente por el me`todo del dial de ADAPT_TAPERED. Usted debe entraren la hora y el minuto que usted parará el invitar de esta campaña,2100 significaría que usted parará el marcar de esta campaña en eltiempo del servidor de los 9PM. Esto permite que el algoritmo afiladodecida a co`mo agresivamente al dial cerca cuánto tiempo usted tienehasta que usted será el llamar acabado. + +
+
+
+ Adapte el modificante de la intensidad - este campo se utiliza paraajustar la intensidad profe`tica más alta o más baja. El más altoun número positivo que usted selecciona, mayor va el sintonizadoraumentará la llamada que establece el paso cuando para arriba y máslentamente va el sintonizador disminuirá la llamada que establece elpaso cuando abajo. Cuanto más bajo es el número negativo que ustedseleccionan aquí, más lentamente el sintonizador aumentará lallamada que establece el paso y más rápidamente el sintonizadorbajará la llamada que establece el paso cuando va abajo. El defectoes 0. Este campo no es utilizado por los me`todos del dial del MANUALo del COCIENTE. + +
+
+
+ Blanco llana de la diferencia del dial - este campo se utiliza paradefinir si usted desea apuntar tener un número específico de losagentes que esperan agentes de las llamadas o el esperar de llamadas.Por ejemplo si usted siempre quisiera tener en agente del promedio unolibre tomar llamadas inmediatamente usted fijaría esto a -1, si ustedquisiera apuntar siempre tener uno invita el asimiento que espera unagente que usted fijaría esto a 1. El defecto es 0. Este campo no esutilizado por los me`todos del dial del MANUAL o del COCIENTE. + +
+
+
+ Transferencias concurrentes - este ajuste se utiliza para definir elnúmero de las llamadas que se pueden enviar a los agentes en el mismotiempo. Se recomienda que este ajuste está dejado en el AUTOMo`VIL. Este campo no es utilizado por el me`todo MANUAL del dial. + +
+
+
+ Coda di priorità - Questa impostazione è utilizzata per definire lordine in cui le chiamate in uscita da questa campagna dovrebbe essere risolta in relazione alle chiamate in entrata, se questa è una campagna in modalità blended. + +
+
+
+ Multiple campagna Drop Rate Group - Questa funzione consente di impostare una campagna come membro di una campagna Drop Rate gruppo, o un gruppo di campagne cui dell-uomo chiede risposta e le chiamate Drop per tutte le campagne del gruppo verranno combinati in una percentuale condivisa goccia, o tasso di abbandono. Questo vi permette di eseguire più campagne contemporaneamente e controllare più facilmente il tasso di drop. Ciò è particolarmente utile nel Regno Unito, dove ai permessi di questo metodo di calcolo con il tasso di drop campagna di raggruppamento per la stessa società, anche se vi sono numerose campagne di tale società è in esecuzione durante il giorno stesso. Per attivare questa per una campagna, basta selezionare un gruppo dall-elenco. Ci sono 10 gruppi definiti nel sistema di default, è possibile contattare l-amministratore di sistema per aggiungere di più. Di default è disabilitato. + +
+
+
+ Alt-Nu`mero auto que marca - este ajuste se utiliza para marcarautomáticamente campos alternos del número mientras que marca en elCOCIENTE y ADAPTA me`todos del dial cuando no hay contacto en elnúmero de telefono principal para un plomo, los estados del NA, deB, de la C.C. y de N. Este ajuste no es utilizado por el me`todoMANUAL del dial. PROROGATO alternano i numeri sono numeri caricato nel sistema al di fuori della norma portare informazioni schermo. Uso PROROGATO si possono avere centinaia di numeri di telefono per un singolo cliente record. + +
+
+
+ Descanso del dial - si está definido, llamadas que normalmente retraso despue`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 Casella Vocale usted puede desear intentar cambiar este valor entre a 21-26 y ver si los resultados mejoran. + +
+
+
+ Campagna VDAD estensione - Questo campo consente un trasferimento personalizzato VDAD estensione. Questo vi permette di utilizzare diversi metodi di gestione delle chiamate a seconda della tua campagna. + - 8364 - 8368 stessa + - 8365 - Will inviare la chiamata ad un solo agente sullo stesso server come la chiamata è in + - 8366 - Usato-1 per la stampa e campagne di indagine + - 8367 - Il primo a provare a inviare la chiamata a un agente sul server locale, poi si guarda su altri server + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Utilizzato per Segreteria di rilevamento, dopo che, lo stesso comportamento come 8368 + - 8373 - Utilizzato per Segreteria di rilevamento dopo lo stesso comportamento come 8366 + +
+
+
+ Messaggio Segreteria Telefonica - Questo campo è per entrare nel prompt di giocare quando l-agente riceve una segreteria telefonica e fa clic sul pulsante Messaggio Segreteria Telefonica nella cornice conferenza di trasferimento. È necessario impostare questo sia un file audio nel negozio di audio o un programma di TTS prompt se TTS è attivato sul tuo sistema. + +
+
+
+ WaitForSilence Opzioni - Se Wait For Silence è desiderato per le chiamate che vengono rilevati come Segreterie allora questo campo ha queste opzioni. Ci sono due impostazioni separate da una virgola, la prima opzione è il tempo per individuare il silenzio in millisecondi e la seconda opzione è per quante volte a rilevare che prima di giocare il messaggio. Di default è vuota per disabili. Un valore standard per questo sarebbe attendere 2 secondi di silenzio per due volte: 2000,2 + +
+
+
+ AMD envían a la VM exten - este menú permite que usted defina si un mensaje este` dejado en un contestador automático cuando se detecta la llamada será remitido inmediatamente a la extension del Contestar-Ma`quina-Mensaje si AMD es activo y se determina que la llamada es un contestador automático. + +
+
+
+ CPD AMD Azione - Se si utilizza il Sangoma ParaXip chiamate di avanzamento di rilevamento di software allora si desidera attivare questa impostazione o limpostazione di DISPO disposizione che la chiamata come AA e appende se la chiamata è in fase di elaborazione e non è stato inviato a un agente o un messaggio che ancora invierà la richiesta alla Segreteria definito Messaggio per questa campagna. Il valore di default è ANDICAPPATI. + +
+
+
+ El marcar nume`rico del Alt del agente - esta opcio`n permite que un agente marque manualmente el número de telefono o el campo alterno address3 despue`s de que se haya llamado el número principal. + +
+
+
+ Segundos de la llamada de la gota - 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, so`lo se aplica a las llamadas desalida. + +
+
+
+ Goccia dazione - Questo menu consente di scegliere che cosa succede a una chiamata quando si è in attesa di più di quello che si trova nel campo Secondi Call Drop. Hangup semplicemente riagganciare la chiamata, inviare il messaggio di chiamare il Gota Extensions che lei ha definito di seguito, segreteria invierà la chiamata alla casella vocale che è stato definito sotto IN_GROUP e invia la chiamata in ingresso al gruppo che è definito qui di seguito + +
+
+
+ seguro puerto Exten - este ser dial plan extension que desear seguropuerto audio archivo ser localizar en en su servidor. + +
+
+
+ Casella Vocale - 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. + +
+
+
+ Trasferimento Drop Group - In caso di caduta di azione è fissato a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si raggiunge il Call Drop Secondi. + +
+
+
+ Permita Ninguno-Tolva-Conduce conexiones - si el sistema a Y, permiteagentes a la conexion a la campaña incluso si no hay plomos cargadosen la tolva para esa campaña. Esta funcio`n no se necesita encampañas de CLOSER-type. El defecto es N. + +
+
+
+ N. Dialing Hopper - Se questo è abilitato, la tramoggia non avrà una durata di questa campagna. Questa opzione è disponibile solo se il metodo di selezione è impostato su Manuale o INBOUND_MAN. Si raccomanda di non attivare questa opzione se si dispone di un database molto grande di piombo, oltre 100.000 contatti. Con il n. telefonico Hopper, le seguenti caratteristiche non funzionano: il riciclaggio di piombo, di auto-alt-dialing, mix di lista, la lista degli ordini con X. NUOVO. Se si desidera utilizzare solo il proprietario di composizione è necessario disporre di n. telefonico Hopper abilitato. Di default è N per disabili. + +
+
+
+ Unico proprietario Dialing - Se questo è abilitato, l-agente riceverà solo porta che sono entro i parametri per la proprietà. Se questo è impostato su USER allora l-agente deve essere definita dall-utente nel database come proprietario di questo piombo. Se questo è impostato su un territorio il proprietario del piombo deve coincidere con il territorio di cui la schermata Utente Modifica per questo agente. Se questo è impostato su USER_GROUP poi il proprietario del piombo deve corrispondere al gruppo di utenti che l-agente è un membro di. Per questa funzione il metodo di selezione deve essere impostato su Manuale o INBOUND_MAN e n. telefonico Hopper deve essere attivato. Di default è NESSUNO per disabili. + + 0) + { + ?> +
+
+
+ Agente Seleziona Territori - Se questa opzione è attivata e l-agente appartiene ad almeno un territorio, l-agente avrà la possibilità di selezionare i territori per comporre conduce da. L-agente viene visualizzato un elenco dei territori disponibili su login e avranno la possibilità di tornare indietro a quella lista territorio, quando si fermò a cambiare i loro territori. Per questa funzione l-unico proprietario di composizione opzione deve essere impostata al territorio e territori utente deve essere abilitato nelle impostazioni di sistema. + + +
+
+
+ Mezcla de la orden de la lista - elimina los campos de la orden delplomo y del estado del dial. Utilizará los parámetros de la lista ydel estado para la entrada seleccionada de la mezcla de la lista en laseccio`n del submarino de la mezcla de la lista en lugar de otro. Eldefecto es LISIADO. + +
+
+
+ Identificacio`n de la mezcla de la lista - identificacio`n de lamezcla de la lista. Debe ser a partir de 2-20 caracteres en longitudsin los espacios o la otra puntuacio`n especial. + +
+
+
+ Nombre de la mezcla de la lista - nombre descriptivo de la mezcla dela lista. Debe ser a partir de 2-50 caracteres en longitud. + +
+
+
+ Detalle de la mezcla de la lista - la composicio`n de la entrada de lamezcla de la lista. Contiene la identificacio`n de la lista, la ordende la mezcla, los porcentajes y los estados que hacen para arriba estamezcla de la lista. Los porcentajes tienen que agregar siempre hasta100, y las listas todas tienen que ser activas y fijadas a la campañapara que la entrada de la mezcla de la orden sea activada. + +
+
+
+ Me`todo de la mezcla de la lista - el me`todo de mezclar a todas laspartes del detalle de la mezcla de la lista juntas. EVEN_MIX mezclarálos plomos de cada parte interpolada con las otras partes, como estos1.2.3.1.2.3.1.2.3. IN_ORDER pondrá los plomos en la orden en la cualse enumeran en la pantalla 1.1.1.2.2.2.3.3.3 del detalle de la mezclade la lista. La voluntad AL AZAR los puso en la orden AL AZAR1.3.2.1.1.3.2.1.3. El defecto es IN_ORDER. + +
+
+
+ Agente Screen estensione Alt Dial - Questa funzione consente di agenti per laccesso esteso alternano i numeri di telefono per porta oltre la normale Alt Telefono e Address3 settori che possono essere utilizzati in VICIDIAL per i numeri di telefono al di là del numero di telefono principale. Lestensione numeri di telefono può essere selezionato automaticamente utilizzando la funzione Auto-Alt-Dial VICIDIAL in funzione delle impostazioni della campagna, ma che consentono questa funzione di agente dello schermo consentirà anche per lagente di chiamare questi numeri dal loro agente schermo così come modificare le loro informazioni. + +
+
+
+ Indagine primo file audio - Questo è il nome del file audio che viene riprodotto non appena il cliente sceglie il telefono cellulare durante lesecuzione di un sondaggio campagna. + +
+
+
+ Indagine sulle cifre DTMF - Questo campo è il punto in cui definire le cifre che un cliente può premere come opzione su una campagna di indagine. cifre DTMF sono validi0123456789*#. Tutte le opzioni eccetto per i non interessati, terzo e quarto opzioni cifra di passare al percorso di indagine chiamata al metodo. + +
+
+
+ Indagine non interessa Digit - Questo campo è dove si definisce il cliente premuto cifre che dimostrano che non sono interessati. + +
+
+
+ Indagine non interessa Stato - Questo campo è se si seleziona lo stato che saranno utilizzati per non essere interessato. DNC Se viene utilizzato e la campagna è impostata per usare DNC poi il numero di telefono sarà automaticamente aggiunto alla lista VICIDIAL interno DNC.e, eventualmente, la campagna specifici DNC elenco. + +
+
+
+ Indagine Opt-in Audio File - Questo è il nome del file audio che viene riprodotto quando il cliente ha optato-in per lindagine, non hanno scelto lopt-out non ha risposto o se la non-azione-reazione è impostato su OptOut. Dopo questo file audio viene riprodotto, il metodo di indagine di azione. + +
+
+
+ Indagine non interessa File audio - Questo è il nome del file audio che viene riprodotto quando il cliente ha scelto lopt-out di indagine, non hanno scelto lopt-in o non ha risposto se il non-azione-reazione è impostato su OptIn. Dopo questo file audio viene riprodotto, linvito sarà appeso. + +
+
+
+ Indagine Metodo - Questa opzione definisce che cosa succede a una chiamata dopo che il cliente ha scelto lopt-in. AGENT_XFER invierà linvito al prossimo disponibili agente. Segreteria invierà la chiamata alla casella vocale che è specificato nel campo Casella Vocale. ESTENSIONE invierà al cliente di definire lestensione della Indagine Xfer Estensione campo. Hangup si bloccherà il cliente. CAMPREC_60_WAV invierà al cliente di avere una registrazione fatta con la loro risposta, questa registrazione sarà collocato in una cartella denominata come la campagna allinterno della campagna di registrazione Indagine Directory. + +
+
+
+ Indagine n. risposta Azione - Questo è dove si definisce che cosa accadrà se non vi è alcuna risposta alla domanda del sondaggio. OptIn solo inviare la chiamata al metodo di indagine, se il cliente preme un cifre DTMF. OptOut invierà al cliente al metodo di indagine, anche se non si preme uno cifre DTMF. + +
+
+
+ Indagine risposta Digit Mappa - Questa è la sezione in cui è possibile definire una descrizione per andare a ciascuna opzione cifre DTMF che il cliente può scegliere. + +
+
+
+ Indagine Xfer Estensione - Se il metodo di indagine è stato selezionato ESTENSIONE quindi chiamare il cliente sarebbe stata destinata a questo dialplan estensione. + +
+
+
+ Indagine campagna di registrazione Repertorio - Se il metodo di indagine è stato selezionato CAMPREC_60_WAV allora la risposta dei clienti vengono registrati e messi in una directory di nome, dopo la campagna allinterno di questa directory. + +
+
+
+ Terza indagine Digit - Questo permette di avere un percorso di terza convocazione, se la terza cifra come definito in questo campo è premuto da parte del cliente. + +
+
+
+ Digit Indagine Quarta - Questo permette di avere un percorso di quarta chiamata se la quarta cifra come definito in questo campo è premuto da parte del cliente. + +
+
+
+ Terza indagine di file audio - Questo è il terzo file audio da riprodurre alla selezione da parte del cliente della facoltà di terza cifra. + +
+
+
+ Terza indagine Status - Questo è il terzo stato utilizzato per la chiamata alla selezione da parte del cliente della facoltà di terza cifra. + +
+
+
+ Terza indagine Extension - Questa è la terza proroga utilizzato per la chiamata alla selezione da parte del cliente della facoltà di terza cifra. Il valore predefinito è 8.300, che si blocca immediatamente la chiamata dopo il messaggio di file audio viene riprodotto. + +
+
+
+ Agent Visualizzare Dialable Leads - Questa opzione, se attivata mostrerà il numero di porta dialable disponibili nella campagna nella schermata agente. Questo numero è aggiornato nel sistema di una volta al minuto e sarà aggiornata sullo schermo agente ogni pochi secondi. + + + +
+
+
+ Llamada siguiente del agente - esto se determina que` agente recibe la llamada siguiente que está disponible: +
  - random: o`rdenes por el valor al azar de la actualizacio`n en la tabla de los vicidial_live_agents +
  - oldest_call_start: las o`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. +
  - oldest_call_finish: las o`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. +
  - overall_user_level: las o`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. +
  - campaign_rank: o`rdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. +
  - fewest_calls: o`rdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
  - longest_wait_time: ordini per la quantità di tempo agente è stato attivamente in attesa di una chiamata. + +
+
+
+ Tiempo de la llamada local - aquí es adonde usted fijo` durante que` horas usted quisiera marcar, según lo determinado por el tiempo local en está en cuál usted está llamando. Esto es controlada por co`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. + +
+
+
+ Prefijo del dial - este campo permite más fácilmente cambiar una trayectoria de marcar a salir con un diverso me`todo sin hacer una recarga en asterisco. El defecto es 9 basados sobre un 91NXXNXXXXXX en el dial plan - extensions.conf. + +
+
+
+ Omita el co`digo del telefono - este campo permite que usted dejehacia fuera el campo del phone_code mientras que marca dentro deVICIDIAL. Por ejemplo si usted está marcando en el Reino Unido delReino Unido usted tendría 44 adentro como su campo del phone_codepara todos los plomos, pero usted apenas desea marcar 10 dígitos ensu extensions.conf dial plan para poner llamadas en vez de 44 entonces10 dígitos. El defecto es N. + +
+
+
+ Campaña CallerID - 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 opcio`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 Tambien 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. + +
+
+
+ Extension de Rec de la Campaña - este campo permite para que una extension de encargo de la grabacion sea utilizada con VICIDIAL. Esto permite que usted utilice diversas extensiones dependiendo sobre cuánto tiempo usted desea permitir una grabacion máxima y que` 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 opcio`n incluida en los ejemplos es 8310 que registrarán en el formato del GSM para hasta que una hora. + +
+
+
+ grabacion de la campaña - este menú permite que usted elija que`nivel de la grabacion se permite en esta campaña. NUNCAinhabilitará la grabacion en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabacion en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabacion en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opcio`n para parar el registrar. ParaALLCALLS y ALLFORCE hay una opcio`n para utilizar la grabacionretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude. + +
+
+
+ Nombre de fichero de Rec de la campaña - este campo permite que usted modifique el nombre para requisitos particulares de la grabacion cuando la grabacion 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. 50 char max. + +
+
+
+ La registracion retrasa - para la grabacion de ALLCALLS y deALLFORCE solamente. Esta voluntad del ajuste retrasa comenzar de lagrabacion en todas las llamadas para el número de los segundosespecificados en este campo. El defecto es 0. + +
+
+
+ Escritura de la campaña - 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. + +
+
+
+ Consiga el lanzamiento de la llamada - 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. + +
+
+
+ Xfer-Conf DTMF - Questi quattro campi consentire di avere due insiemi di trasferimento Conferenza e preset DTMF. Quando la chiamata o la campagna viene caricata, lo script vicidial.php mostrerà due pulsanti per il trasferimento-frame conferenze e auto-popolano il numero-to-dial e l-invio campi DTMF quando viene premuto. Se si desidera consentire consultivo Trasferimenti, un Fronter a una più stretta, hanno l-agente di utilizzare la casella di controllo CONSULTIVO, che non funziona per i non di terze parti ViciDial chiamate consultivo. Per coloro che hanno il solo clic agente Dial Con il tasto del cliente. Poi l-agente può lasciare-3 VIE-CALL e passare alla loro chiamata successiva. Se si desidera consentire i trasferimenti Blind dei clienti di uno script VICIDIAL AGI per la registrazione o un IVR, poi AXFER posto nel numero di-to-dial campo. È inoltre possibile specificare l-estensione personalizzata dopo la AXFER, ad esempio se si vuole fare una chiamata ad un IVR speciale è stato impostato per l-estensione 83.900 si metterebbe AXFER83900 del numero-to-dial campo. + +
+
+
+ Trasferimento rapido Button - Questa opzione aggiunge un pulsante di trasferimento rapido alla schermata agente sotto il pulsante Transfer-Conf che permetterà un clic cieco trasferimento di chiamate al selezionato In-gruppo o numero. IN_GROUP invierà le chiamate al Default Xfer gruppo per questa campagna, o In-gruppo se ci fosse una chiamata in entrata. Le opzioni preimpostate invierà le chiamate al preset selezionato. Di default è N per disabili. + +
+
+
+ Trasferimento PrePopulate Preset - Questa opzione di inserire il numero di campo Dial nella cornice Conferenza di trasferimento dello schermo agente se definito. Di default è N per disabili. + +
+
+
+ Timer azione - Questa funzione consente di attivare azioni dopo un certo periodo di tempo. D1 e D2 le opzioni di chiamata lancerà un appello per il trasferimento Conferenza preset Numero e li trasmette alla sessione di agente, questo è di solito utilizzato per semplici applicazioni IVR AGI convalida o semplicemente a svolgere un messaggio pre-registrato. FORM aprirà l-indirizzo web form. MESSAGE_ONLY semplicemente visualizzare il messaggio che è nel campo sottostante. NESSUNO sarà disabilitare questa funzione ed è il default. + +
+
+
+ Timer azione Message - Questo è il messaggio che appare sullo schermo agente al momento l-azione Timer è attivato. + +
+
+
+ Timer azione Secondi - Questa è la quantità di tempo dopo la chiamata è collegata al cliente che l-azione del timer viene attivato. Predefinito è -1, che è anche attivo. + +
+
+
+ Servicios repetidos programar - esta opcio`n no prohibe a agente a la disposicion una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado. + +
+
+
+ Segundos de Wrap Up - 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 disposicion. + +
+
+
+ Mensaje de Wrap up - esto es un mensaje campaña-especi`fico que seexhibirá en la pantalla del wrapup si se fijan los segundos delwrapup. + +
+
+
+ Lista interna del uso DNC - 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 telefono 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. L-opzione AreaCode è proprio come l-opzione Y, tranne che viene utilizzato per filtrare inoltre un codice di tutta l-area del Nord America ad essere composto, in questo caso utilizzando la voce 201XXXXXXX nella lista DNC potrebbe bloccare tutte le chiamate al 201 AreaCode se abilitato. + +
+
+
+ Usa campagna DNC List - Questo definisce se questa è una campagna per filtrare DNC conduce contro una lista che è specifico per tale campagna solo. Se è impostato su Y, la tramoggia sarà per ciascuno il numero di telefono nel campo specifico DNC prima immissione nella tramoggia. Se si è in campagna specifici DNC elenco allora cambierà status che portano a DNCC e non può quindi essere selezionato. Il valore predefinito è N. L-opzione AreaCode è proprio come l-opzione Y, tranne che viene utilizzato per filtrare inoltre un codice di tutta l-area del Nord America ad essere composto, in questo caso utilizzando la voce 201XXXXXXX nella lista DNC potrebbe bloccare tutte le chiamate al 201 AreaCode se abilitato. + +
+
+
+ Grupos De entrada Permitidos - 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. + +
+
+
+ La pausa del agente cifra activo - permite que los agentes seleccionenun co`digo de la pausa cuando chascan encendido el boton de PAUSA envicidial.php. Los co`digos de la pausa son definibles por campaña enel fondo de la pantalla del detalle de la opinio`n de la campaña y sealmacenan en la tabla del vicidial_agent_log. El defecto es N. VIGORE costringerà gli agenti di scegliere un codice PAUSE se fai clic sul pulsante PAUSE. + +
+
+
+ Inhabilite alteran datos del cliente - si el sistema a Y, no cambiacualquiera del expediente de datos del cliente cuando lasdisposiciones de un agente la llamada. El defecto es N. + +
+
+
+ Disattiva Alter clienti Telefono - Se è impostata a Y, non cambia il numero di telefono del cliente, quando un agente disposizioni la chiamata. Il valore di default è Y. Utilizzare l-opzione Nascondi per rimuovere completamente il numero di telefono del cliente dal display agente. + +
+
+
+ Agente Mostra Coda Conte - Se è impostata a Y, ogni volta che un cliente è in attesa di un agente, la coda invita visualizzazione nella parte superiore dello schermo agente diventa rosso e mostra il numero di chiamate in attesa. Il valore di default è Y. + +
+
+
+ Identificacio`n manual de la lista del dial - el list_id del defectoque se utilizará cuando los placces de un agente una llamada manual yun nuevo expediente del plomo se crean en vicidial_list. El defecto es999. Este campo puede contener dígitos solamente. + +
+
+
+ Manuale Dial Filtro - Questo ti permette di filtrare le chiamate che gli agenti fanno chiamare in modalità manuale per questa campagna da qualsiasi combinazione delle seguenti operazioni: DNC - a kick out, CAMPAIGNLISTE - il numero deve essere allinterno di elenchi per la campagna, NESSUNO - nessun filtro sul manuale o remoto veloce dial elenchi. + +
+
+
+ Appunti di agente Schermata Copia - Questa funzione è al momento attivo solo per Internet Explorer. Questa funzione consente di selezionare un campo che verrà copiato negli appunti il computer dellagente computer su una chiamata in corso linvio di un agente. Comune utilizza per questo sono per facilitare lincollatura di numeri di conto corrente o numeri di telefono in eredità applicazioni client sul computer agente. + +
+
+
+ 3-Way chiamate in uscita CallerID - Questo è ciò che definisce come inviato il numero in uscita callerID da 3-way chiamate effettuate dallagente, CAMPAGNA utilizza la campagna personalizzata callerID, il Cliente utilizza il numero di clienti che è attiva su schermo e gli agenti AGENT_PHONE usa il callerID per il telefono cellulare che lagente è registrato in. AGENT_CHOOSE lagente permette di scegliere quale callerID da utilizzare per le chiamate a 3 vie da un elenco di scelte. + +
+
+
+ 3-Way Call Prefisso Chiamata - Questo definisce quello che è usato come prefisso per chiamare il 3-way chiamate, di default è vuoto in modo che il prefisso campagna quadrante è usato, passthru in modo che tu possa sentire suonare è 88. + + 0) + { + ?> +
+
+
+ QC Attivato - Limpostazione di questo campo a Y consente, per lagente di Controllo della Qualità funzioni. Il valore di default è N. + +
+
+
+ Status QC - La zona dove si è stati di selezionare quale porta deve essere andato oltre, QC, dal sistema. Mettere un segno di spunta accanto allo status che si desidera, QC, di rivedere. + +
+
+
+ QC Maiusc - Questo è il passaggio di tempo utilizzato per estrarre QC record per una campagna. I giorni della settimana sono ignorati per queste funzioni. + +
+
+
+ QC ottenere il record di lancio- Ciò consente una delle seguenti azioni per essere attivato su un QC agente riceve un nuovo record. + +
+
+
+ QC Visualizza Registrazione - Ciò consente una registrazione che può essere collegato con la QC record di essere esposto nel QC agente schermo. + +
+
+
+ QC Indirizzo Web Form - Questo è lindirizzo web che un agente, QC può andare quando si fa clic sul link contenuto nel Web Form, QC schermo. + +
+
+
+ QC Script - Questo è lo script che possono essere utilizzati da agenti QC nel SCRIPT scheda nella schermata QC. + + +
+
+
+ Vtiger Ricerca Categoria - Se Vtiger integrazione è attivata in poi le impostazioni del sistema questa impostazione definirà in cui la pagina di ricerca vtiger_search.php per il numero di telefono che è stato inserito. Ci sono 4 opzioni che possono essere utilizzati in questo campo: PIOMBO-Questa opzione ricerca attraverso la porta solo Vtiger, CONTO-Questa opzione ricerca attraverso il Vtiger conti e tutti i contatti e sub-contatti per il numero di telefono, VENDITORE-Questa opzione solo attraverso la ricerca Vtiger venditori, ACCTID-Questa opzione funziona solo per i conti e si prendono le vicidial vendor_lead_code campo e provare a cercare il Vtiger ID account. Se si tenta senza successo di qualsiasi altro metodi elencati che hai selezionato. Opzioni multiple possono essere utilizzati per ogni ricerca, ma su grandi banche dati questo non è raccomandato. Il valore di default è PIOMBO. UNIFIED_CONTACT-Questa opzione si usa il beta Vtiger 5.1.0 funzionalità per la ricerca in base al numero di telefono e aprire una pagina di ricerca in Vtiger. + +
+
+
+ Vtiger Cerca Dead Accounts - Se l-integrazione Vtiger è attivata nelle impostazioni di sistema, quindi, questa impostazione definire se i conti saranno eliminati cercato quando l-agente clic WEB form per la ricerca nel sistema Vtiger. Disabili conduce da non essere cercati, ASK-soppresso porta sarà ricerche e la pagina di ricerca vtiger web chiederà l-agente se vogliono fare il conto Vtiger attivo, risorgere-automaticamente rendere l-account cancellato di nuovo attivo e adotterà le agente per lo schermo conto immediatamente dopo aver fatto clic sul WEB FORM. Di default è disabilitato. + +
+
+
+ Vtiger Crea chiamate record - Se Vtiger integrazione è attivata in poi le impostazioni del sistema questa impostazione definisce se una nuova attività Vtiger è stato creato per registrare la chiamata quando lagente va al vtiger_search pagina. Il valore di default è Y. L-opzione DISPO creerà un record di chiamata per l-account Vtiger senza l-agente di dover andare alla pagina di ricerca vtiger attraverso il Web Form. + +
+
+
+ Vtiger Crea record Piombo - Se è attivata Vtiger integrazione nel sistema e le impostazioni Vtiger Ricerca Categoria PIOMBO comprende quindi questa impostazione definisce se un nuovo record Vtiger piombo viene creato quando lagente va a vtiger_search la pagina di registrazione e non è di avere trovato la chiamata numero di telefono. Il valore di default è Y. + +
+
+
+ Vtiger Screen Login - Se Vtiger di integrazione è attivata in poi le impostazioni del sistema questa impostazione definisce se lutente è connesso al Vtiger interfaccia automaticamente quando laccesso al VICIDIAL. Il valore di default è Y. L-opzione NEW_WINDOW aprirà una nuova finestra al login alla schermata VICIDIAL agente. + +
+
+
+ Vtiger stato della chiamata - Se l-integrazione Vtiger è attivata nelle impostazioni di sistema, quindi, questa impostazione definirà se lo stato del Conto Vtiger verrà aggiornato con lo stato della chiamata VICIDIAL dopo che è stato dispositioned. Di default è N. + +
+
+
+ CRM Popup Login - Se impostato a Y, il CRM Popup indirizzo viene utilizzato per aprire una nuova finestra il login agente per questa campagna. Di default è N. + +
+
+
+ CRM Popup Indirizzo - L-indirizzo web di una pagina di login CRM, può avere variabili popolato come l-indirizzo web form, con i VAR nella parte anteriore e l-utilizzo - A user_custom_one - - B - per definire le variabili. + +
+
+
+ Start Call URL - Questo web indirizzo URL non è visto che l-agente, ma è chiamato ogni volta che una chiamata viene inviata ad un agente, se viene popolato. Utilizza le stesse variabili, come i campi del modulo web e script. Questo URL non può essere un percorso relativo. L-URL Start non funziona per le chiamate in linea manuale. Predefinita è vuota. + +
+
+
+ Dispo Call URL - Questo web indirizzo URL non è visto che l-agente, ma è chiamato ogni volta che una chiamata è dispositioned da un agente, se viene popolato. Utilizza le stesse variabili, come i campi del modulo web e script. dispo e talk_time sono le variabili che si possono utilizzare per recuperare l-agente definito disposizione per la chiamata e il tempo effettivo di conversazione in secondi della telefonata. Questo URL non può essere un percorso relativo. Predefinita è vuota. + +
+
+
+ Gruppo Alias ammessi - Se si desidera consentire agli agenti di utilizzare il vostro gruppo alias quindi è necessario impostare questo gruppo Y. Alias sono spiegate più in Admin sezione, che consentono di selezionare diversi agenti callerIDs manuale per le chiamate in uscita che essi possono posto. Il valore di default è N. + +
+
+
+ Predefinito Gruppo Alias - Se si hanno consentito Gruppo Alias allora questo è il gruppo alias che viene selezionato per impostazione predefinita quando prima lagente sceglie di utilizzare un gruppo di Alias per un manuale di chiamata in uscita. Il valore predefinito è vuoto o NESSUNO. + +
+
+
+ Agente chiede View in coda - Se impostato a nulla, ma NESSUNO, gli agenti saranno in grado di visualizzare i dettagli sulle chiamate che sono in attesa in coda nelle loro schermo agente. Se impostato su un valore numerico, le chiamate visualizzato sarà limitata al numero selezionato. Di default è NESSUNO. + +
+
+
+ Visualizzazione delle chiamate in coda Launch - Questa impostazione, se impostato su AUTO avranno la chiede in cornice della coda mostra fino al momento del login da parte dell-agente nella schermata di agente. Di default è MANUALE. + +
+
+
+ Agente chiede Grab in coda - Questa opzione se impostata a Y permetterà all-agente di selezionare la chiamata che vogliono prendere dalle chiamate in coda visualizzazione facendo clic su di esso, mentre in pausa. Gli agenti saranno in grado di afferrare le chiamate in entrata o chiamate il trasferimento, non le chiamate in uscita. Di default è N. + +
+
+
+ Call Agent Re-Queue Button - Questa opzione se impostata a Y aggiungerà il bottone ri-cliente Coda alla schermata di agente, l-agente che consente di inviare la chiamata in una coda AGENTDIRECT che è riservata per il solo agente. Di default è N. + +
+
+
+ Agente di pausa dopo ogni chiamata - Questa opzione se impostata a Y si fermerà l-agente, dopo ogni chiamata automaticamente. Di default è N. + + + + + +



+ + VICIDIAL_LISTE TABELLA

+
+
+ Identificacio`n de la lista - Úste es el nombre nume`rico de la lista, e`l no es editable despue`s de la sumisio`n inicial, debe contener solamente números y debe estar entre 2 y 8 caracteres en longitud. Must be a number greater than 100. + +
+
+
+ Nombre de la lista - esta es la descripcio`n de la lista, debe estar entre 2 y 20 caracteres en longitud. + +
+
+
+ Descripcio`n de la lista - este es el campo de la nota para la lista,e`l es opcional. + +
+
+
+ Fecha del cambio de la lista - esta es la vez última que los ajustespara esta lista fueron modificados de cualquier manera. + +
+
+
+ Fecha de la llamada del último de la lista - esta es la vez últimaque conduce fue marcado de esta lista. + +
+
+
+ Campaña - esta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente. + +
+
+
+ Activo - esto define si la lista debe ser marcada encendido o no. + +
+
+
+ Reajuste el Conducir-Llamar-Estado para esta lista - 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. + +
+
+
+ Reset Times - Questo campo vi permette di mettere a volte, separati da un trattino-, che questa lista sarà automaticamente reimpostato dal sistema. I tempi devono essere in formato 24 ore senza punteggiatura, ad esempio 0.800-1.700 sarebbe reimpostare l-elenco di 8 e 5 tutti i giorni. Di default è vuota. + +
+
+
+ Agent Script Override - Se questo campo è impostato, questo sarà lo script che l-agente vede sullo schermo del proprio posto di script campagna quando il piombo è da questo elenco. Di default non è impostato. + +
+
+
+ Campagna CID Override - Se questo campo è impostato, andranno a sostituire la campagna CallerID che è impostato per le chiamate che vengono posti a porta in questo elenco. Di default non è impostato. + +
+
+
+ Messaggio Segreteria Telefonica Override - Se questo campo è impostato, questo ignorare il messaggio di Segreteria insieme nella campagna per i clienti in questo elenco. Di default non è impostato. +
+
+
+ Drop Inbound Group Override - Se questo campo è impostato, in questo gruppo verranno utilizzati per le chiamate in uscita all-interno di questa lista che scendono da campagna in uscita, invece di cadere in gruppo insieme nella schermata di dettaglio della campagna. Di default non è impostato. + +
+
+
+ XFER-Conf Numero Override - Questi cinque campi consentono di ignorare le impostazioni predefinite Conferenza di trasferimento del numero, quando la guida è da questo elenco. Predefinita è vuota. + + +
+
+
+ DNC VICIDIAL List - Questo Dont Call elenco contiene ogni piombo che è stato fissato ad uno stato di DNC nel sistema. Attraverso il ELENCHI - ADD numero DNC pagina si ha la possibilità di aggiungere manualmente i numeri di questo elenco in modo che essi non saranno chiamati da campagne che utilizzano la lista interno DNC. Vi è inoltre la possibilità di aggiungere porta alla campagna specifici DNC liste per le campagne che hanno loro. Se hai attiva l-opzione DNC insieme a AreaCode allora è anche possibile utilizzare il codice voci area jolly come questo 201XXXXXXX per bloccare tutte le chiamate al 201, quando attivata AreaCode. + + + +



+ + VICIDIAL_INBOUND_GROUPS TABELLA

+
+
+ Identificacio`n de grupo - Úste es el nombre corto del grupo de entrada, e`l no es editable despue`s de la sumisio`n inicial, no debe contener cualquier espacio y debe estar entre 2 y 20 caracteres en longitud. + +
+
+
+ Nombre de grupo - esta es la descripcio`n del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios . + +
+
+
+ Color del grupo - este 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 definicio`n del color de la tuerca hexagonal usted debe recordar poner a # al principio de la secuencia o VICIDIAL no trabajará correctamente. + +
+
+
+ Activo - esto se determina si este grupo demuestra para arriba en la caja de la seleccio`n cuando un agente de VICIDIAL entra. + +
+
+
+ Forma del Web - esta es la Direccion de encargo que el chascar en el boton de la FORMA del WEB en VICIDIAL le llevará para las llamadas que vienen adentro en este grupo. + +
+
+
+ Llamada siguiente del agente - esto se determina que` agente recibe la llamada siguiente que está disponible: +
  - random: o`rdenes por el valor al azar de la actualizacio`n en la tabla de los vicidial_live_agents +
  - oldest_call_start: las o`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. +
  - oldest_call_finish: las o`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. +
  - overall_user_level: las o`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. +
  - inbound_group_rank: o`rdenes de la fila dada al agente para el grupode entrada específico. Lo más arriba posible a lo más bajo posible. +
  - fewest_calls: o`rdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero. +
  - campaign_rank: o`rdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible. +
  - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
  - longest_wait_time: ordini per la quantità di tempo agente è stato attivamente in attesa di una chiamata. +
+ +
+
+
+ Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
+
+ Exhibicio`n de Fronter - 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. + +
+
+
+ Escritura de la campaña - 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. + +
+
+
+ Consiga el lanzamiento de la llamada - 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. + +
+
+
+ Xfer-Conf DTMF - Questi quattro campi consentire di avere due insiemi di trasferimento Conferenza e preset DTMF. Quando la chiamata o la campagna viene caricata, lo script vicidial.php mostrerà due pulsanti per il trasferimento-frame conferenze e auto-popolano il numero-to-dial e l-invio campi DTMF quando viene premuto. Se si desidera consentire consultivo Trasferimenti, un Fronter a una più stretta, hanno l-agente di utilizzare la casella di controllo CONSULTIVO, che non funziona per i non di terze parti ViciDial chiamate consultivo. Per coloro che hanno il solo clic agente Dial Con il tasto del cliente. Poi l-agente può lasciare-3 VIE-CALL e passare alla loro chiamata successiva. Se si desidera consentire i trasferimenti Blind dei clienti di uno script VICIDIAL AGI per la registrazione o un IVR, poi AXFER posto nel numero di-to-dial campo. È inoltre possibile specificare l-estensione personalizzata dopo la AXFER, ad esempio se si vuole fare una chiamata ad un IVR speciale è stato impostato per l-estensione 83.900 si metterebbe AXFER83900 del numero-to-dial campo. + +
+
+
+ Timer azione - Questa funzione consente di attivare azioni dopo un certo periodo di tempo. D1 e D2 le opzioni di chiamata lancerà un appello per il trasferimento Conferenza preset Numero e li trasmette alla sessione di agente, questo è di solito utilizzato per semplici applicazioni IVR AGI convalida o semplicemente a svolgere un messaggio pre-registrato. FORM aprirà l-indirizzo web form. MESSAGE_ONLY semplicemente visualizzare il messaggio che è nel campo sottostante. NESSUNO sarà disabilitare questa funzione ed è il default. Questa impostazione sovrascrive le impostazioni della campagna. + +
+
+
+ Timer azione Message - Questo è il messaggio che appare sullo schermo agente al momento l-azione Timer è attivato. + +
+
+
+ Timer azione Secondi - Questa è la quantità di tempo dopo la chiamata è collegata al cliente che l-azione del timer viene attivato. Predefinito è -1, che è anche attivo. + +
+
+
+ Call Drop Secondi - Il numero di secondi di una chiamata rimane in coda, prima di essere considerato un DROP. + +
+
+
+ Goccia dazione - Questo menu consente di scegliere che cosa succede a una chiamata quando si è in attesa di più di quello che si trova nel campo Secondi Call Drop. Hangup semplicemente riagganciare la chiamata, inviare il messaggio di chiamare il Gota Extensions che lei ha definito di seguito, segreteria invierà la chiamata alla casella vocale che è stato definito sotto IN_GROUP e invia la chiamata in ingresso al gruppo che è definito qui di seguito. + +
+
+
+ Gota Extensions - In caso di caduta di azione è fissato al messaggio, questa è la linea che il piano di estensione invito sarà inviato a se raggiunge Call Drop Secondi. + +
+
+
+ Casella Vocale - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
+
+
+ Trasferimento Drop Group - In caso di caduta di azione è fissato a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si raggiunge il Call Drop Secondi. + +
+
+
+ Tiempo de la llamada - este es el esquema del tiempo de la llamada autilizar para este grupo de entrada. Tenga presente que el tiempoestá basado en el tiempo del servidor. El defecto es 24hours. + +
+
+
+ After Hours Azione - Loperazione da eseguire se si tratta di ore dopo, come definito nel tempo per la chiamata in entrata questo gruppo. Hangup hangup immediatamente la chiamata, si MESSASGE riprodurre il file in After Hours Messaggio Filenam campo, ESTENSIONE invierà la chiamata al After Hours Estensione nel dialplan Casella Vocale e invia la chiamata alla casella vocale di cui il settore After Hours Casella Vocale , IN_GROUP invierà la chiamata in ingresso al gruppo selezionato nel gruppo After Hours Trasferimento selezionare lista. Il valore di default è MESSAGGIO. + +
+
+
+ Despue`s del nombre de fichero del mensaje de las horas - el archivoaudio situado en el servidor que se jugará si la accio`n se fija alMENSAJE. El defecto es VM-ADIO`S + +
+
+
+ Despue`s de la extension de las horas - la extension dialplan paraenviar la llamada si la accio`n se fija a la Extension. El defecto es8300. + +
+
+
+ Despue`s de las horas Casella Vocale - la caja del voicemail para enviar lallamada si la accio`n se fija a VOICEMAIL. + +
+
+
+ After Hours Trasferimento Group - Se After Hours azione è destinata a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si entra nel gruppo in al di fuori del regime di chiamata tempo definito per il gruppo in. + +
+
+
+ N. agenti n. Queueing - Se questo campo è impostato su Y o NO_PAUSED allora non le chiamate saranno messi in coda per questo gruppo se non ci sono agenti di login e le chiamate andrà l-agente No No Action coda. L-opzione NO_PAUSED non anche inviare i chiamanti in coda se non ci sono solo agenti in pausa in gruppo. Di default è N. + +
+
+
+ Nessun agente Nessuna azione di coda - Se Nessun agente n. coda è attivato, allora questo campo definisce dove la chiamata andrà se non ci sono agenti in In-Group. Di default è il messaggio, questo gioca il file audio nel campo di azione di valore e poi riattacca. + +
+
+
+ Nessun agente n. coda azione Value - Questo è il valore per l-azione di cui sopra. Predefinito è nbdy-avail-to-take-call|vm-goodbye. + +
+
+
+ Nombre de fichero agradable del mensaje - el archivo audio situado enel servidor que se jugará cuando viene la llamada adentro. Si sistemaa ---NONE --- entonces no se jugará ningún mensaje. El defecto es---NONE ---. Questo campo, come con gli altri campi audio in In-gruppi, con l-eccezione della Agente Alert Filename, può avere più file audio giocato se si mette un tubo di elenco separato di file audio nel campo. + +
+
+
+ Lettura del messaggio di benvenuto - Queste impostazioni selezionate, quando per la riproduzione del messaggio di benvenuto definito, SEMPRE svolgerà ogni volta, non potrà mai mai giocare, IF_WAIT_ONLY solo riprodurre il messaggio di benvenuto, se la chiamata non vada immediatamente ad un agente , e YES_UNLESS_NODELAY avranno sempre il messaggio di benvenuto NO_DELAY a meno che limpostazione è attivata. Il valore di default è SEMPRE. + +
+
+
+ Música en contexto del asimiento - la música en el contexto delasimiento para utilizar cuando colocan al cliente en asimiento. Eldefecto es defecto. + +
+
+
+ En el nombre de fichero del aviso del asimiento - el archivo audiosituado en el servidor que se jugará en un intervalo regular cuandoel cliente está en asimiento. El defecto es generic_hold. Estearchivo audio DEBE estar 9 segundos o menos en longitud. + +
+
+
+ En el intervalo del aviso del asimiento - la longitud de la hora ensegundos de esperar antes de jugar encendido el aviso del sostener. Eldefecto es 60. Per disattivare il prompt Hold On, impostare lintervallo a 0. + +
+
+
+ Gioca Luogo in Linea - Questo definisce se il chiamante ascolterà il loro posto in linea momento in cui entra nella coda così come quando sentono il announcemend. Il valore di default è N. + +
+
+
+ Gioca stimato Hold Time - Questo definisce se il chiamante ascolterà il tempo stimato tenere prima di essere trasferiti a un agente. Il valore di default è N. Se il cliente è in attesa e sente questo messaggio stimato tempo attesa, il tempo minimo che verrà riprodotto è di 15 secondi. + +
+
+
+ Tenere Opzione Tempo - Questo ti permette di specificare linstradamento della chiamata, se la stima del tempo di attesa è di oltre limporto di secondi specificato in appresso. Il valore di default è NESSUNO. + +
+
+
+ Tenere Opzione Tempo Secondi - Se Hold Time opzione è impostata a nulla, ma NESSUNO, questo è il numero di secondi di attesa tempo stimato che il tempo di attivare lopzione. Il valore predefinito è 360 secondi. + +
+
+
+ Tenere Opzione Tempo Estensione - Se lopzione Hold Time è impostato per estensione, questo è il dialplan proroga che la richiesta sarà inviata a se la stima del tempo di attesa supera il tempo di Opzione Secondi. + +
+
+
+ Tenere Tempo Opzione Segreteria - Se Hold Time opzione è impostata a segreteria telefonica, questa è la casella di segreteria telefonica che la richiesta sarà inviata a se la stima del tempo di attesa supera il tempo di Opzione Secondi. + +
+
+
+ Tenere Opzione Tempo trasferimento in gruppo - Se Hold Time opzione è impostata a IN_GROUP, questo è il gruppo in entrata che linvito sarà inviato a se la stima del tempo di attesa supera il tempo di Opzione Secondi. + +
+
+
+ Tenere Opzione Tempo richiamata Filename - Se lopzione Hold Time è impostato su CALLERID_CALLBACK, questo è il nome del file che viene riprodotto prompt prima che la chiamata viene registrata come un nuovo condurre alla lista ID specificato di seguito, se la stima del tempo di attesa supera i Tenere Opzione Tempo Secondi. + +
+
+
+ Tenere Opzione Tempo richiamata Elenco ID - Se lopzione Hold Time è impostato su CALLERID_CALLBACK, questo è lelenco ID la chiamata viene aggiunto come un nuovo piombo se la stima del tempo di attesa supera il tempo di Opzione Secondi. + +
+
+
+ Agente Alert Filename - Il file audio si gioca a un agente di annunciare che una chiamata è venuta per l-agente. A non utilizzare questa funzione per impostare il valore predefinito è X. Ding. + +
+
+
+ La alarma del agente retrasa - la longitud de la hora en milisegundosde esperar antes de enviar la llamada al agente despue`s de jugarencendido la extension alerta del agente. El defecto es 1000. + +
+
+
+ Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente. + +
+
+
+ Nel gruppo di registrazione Sovrascrive - Questo campo consente di rilevante della campagna chiamata di registrazione. Questa impostazione può essere ignorata dal vicidial_user scavalcare limpostazione di registrazione. ANDICAPPATI non ignorare la campagna di registrazione. Non potrà mai disabilitare la registrazione sul client. OnDemand è il default e permette lagente di avviare e interrompere la registrazione, se necessario. ALLCALLS si avvia la registrazione sul client quando viene inviata una chiamata a un agente. ALLFORCE si avvia la registrazione sul client quando viene inviata una chiamata a un agente che lagente non opzione per interrompere la registrazione. + +
+
+
+ Nel gruppo di registrazione Filename - Questo campo sovrascrive la campagna di registrazione Filenaming sistema a meno che non sia impostato su NESSUNO. Le variabili sono ammessi CAMPAGNA CUSTPHONE FULLDATE TINYDATE EPOCH AGENTE. Il valore predefinito è FULLDATE_AGENT e sarebbe simile a questa 20051020-103108_6666. Un altro esempio è CAMPAIGN_TINYDATE_CUSTPHONE che assomigliare a questa TESTCAMP_51020103108_3125551212. Max 50 caratteri. Il valore di default è NESSUNO. + + 0) + { + ?> +
+
+
+ QC Attivato - Limpostazione di questo campo a Y consente, per lagente di Controllo della Qualità funzioni. Il valore di default è N. + +
+
+
+ Status QC - La zona dove si è stati di selezionare quale porta deve essere andato oltre, QC, dal sistema. Mettere un segno di spunta accanto allo status che si desidera, QC, di rivedere. + +
+
+
+ QC Maiusc - Questo è il passaggio di tempo utilizzato per estrarre QC record per un inbound_group. I giorni della settimana sono ignorati per queste funzioni. + +
+
+
+ QC ottenere il record di lancio- Ciò consente una delle seguenti azioni per essere attivato su un QC agente riceve un nuovo record. + +
+
+
+ QC Visualizza Registrazione - Ciò consente una registrazione che può essere collegato con la QC record di essere esposto nel QC agente schermo. + +
+
+
+ QC Indirizzo Web Form - Questo è lindirizzo web che un agente, QC può andare quando si fa clic sul link contenuto nel Web Form, QC schermo. + +
+
+
+ QC Script - Questo è lo script che possono essere utilizzati da agenti QC nel SCRIPT scheda nella schermata QC. + + +
+
+
+ Tenere Ricorda Trasferimento In-Group - Se un cliente chiede di tornare in questo gruppo di più di una volta e questo non è impostato su Nessuno, quindi la chiamata verrà automaticamente inviata al gruppo selezionato In-in questo campo . Il valore di default è NESSUNO. + +
+
+
+ Scadenza Bando n. rotta - Impostando questo parametro a Y rimuoverà tutti i tempi di attesa e audio richiede e si tenta di inviare il diritto di chiamata di un agente. Non ignorare il messaggio di benvenuto o tenere prompt impostazioni. Il valore di default è N. + +
+
+
+ Statistiche per cento delle chiamate risposta entro X secondi - Questo campo consente di impostare il numero di tenere secondo le statistiche in tempo reale che il display utilizza per calcolare la percentuale di risposta che sono state chiamate risposta entro X numero di secondi in attesa. + +
+
+
+ Start Call URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank. + +
+
+
+ Dispo Call URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank. + +
+
+
+ Predefinito Gruppo Alias - Se si hanno consentito Alias gruppo per la campagna che lagente è registrato in poi questo è il gruppo alias che è stato selezionato prima di default su un invito da parte di questo gruppo in entrata, quando lagente sceglie di utilizzare un gruppo di Alias per un manuale di chiamata in uscita. Il valore predefinito è vuoto o NESSUNO. + + + + + +



+ + VICIDIAL_INBOUND_DIDS TABELLA

+
+
+
+ Estensione DID - Questo è il numero, lestensione o la DID che attiveranno questa voce e che si percorso allinterno del sistema di utilizzare questa funzione. Vi è una riservati DID predefinito che è possibile utilizzare, che è solo la parola-default-senza trattini, che Allos di inviare qualsiasi richiesta che non corrisponde a tutte le altre esistenti modelli di default DID. + +
+
+
+ Descrizione DID - Questa è la descrizione di DID routing. + +
+
+
+ HA attiva - Questo è il campo in cui si è impostato il DID ingresso attivo o meno. Il valore di default è Y. + +
+
+
+ HA rotta - Questo tipo di percorso che si è impostato il DID da usare. Estensione invierà le chiamate verso lestensione al di sotto, segreteria invierà chiede direttamente alla casella vocale al di sotto, AGENTE invierà le chiamate a un agente VICIDIAL se sono connesso, TELEFONO invierà la chiamata a un telefono voce selezionata di seguito, si IN_GROUP inviare chiamate direttamente al gruppo specificato in entrata. Il valore di default è Extensions. CALLMENU invierà la chiamata al call definita Menu. + +
+
+
+ Estensione - Se è selezionata come estensione DID rotta, allora questa è lestensione che dialplan inviti saranno inviati. Il valore di default è 9998811112, nessun servizio. + +
+
+
+ Estensione Contesto - Se è selezionata come estensione DID rotta, allora questo è il contesto che dialplan inviti saranno inviati. Il valore di default è di default. + +
+
+
+ Buzon de voz - Se è selezionata come Casella Vocale DID rotta, allora questa è la casella vocale che inviti saranno inviati. Il valore di default è vuota. + +
+
+
+ Telefono Estensione - Se è selezionata come TELEFONO DID percorso, allora questo è il telefono cellulare in estensione che inviti saranno inviati. + +
+
+
+ Telefono IP Server - Se è selezionata come TELEFONO DID percorso, allora questo è lIP del server per il telefono che chiede lestensione sarà trasmessa al. + +
+
+
+ Call Menu - Se CALLMENU è selezionato come la Route DID, allora questo è il menu di chiamata che gli inviti saranno inviati a. + +
+
+
+ Utente Agent - Se è selezionata come AGENTE DID rotta, allora questo è lagente che chiede VICIDIAL saranno inviati alla. + +
+
+
+ Lutente non disponibile Azione - Se è selezionata come AGENTE DID rotta, e lutente non è connesso o disponibili, allora questo è il percorso che le chiamate si. + +
+
+
+ Utente percorso Impostazioni In-Group - Se è selezionata come AGENTE DID rotta, allora questo è il gruppo In-che saranno utilizzati per la coda di impostazioni come il chiamante è in attesa di essere inviati al agente. Il valore di default è AGENTDIRECT. + +
+
+
+ In-ID gruppo - Se è selezionata come IN_GROUP DID rotta, allora questo è il gruppo In-chiede che saranno inviati alla. + +
+
+
+ In-Group Call Handle Method - Se IN_GROUP è selezionato come il percorso fatto, allora questa è la gestione delle chiamate metodo utilizzato per queste chiamate. CID aggiungerà un nuovo record di piombo, con tutte le chiamate utilizzando il CallerID come il numero di telefono, CIDLOOKUP cercherà di ricerca il numero di telefono dal CallerID in tutto il sistema, CIDLOOKUPRL cercherà di ricerca il numero di telefono dal CallerID in una sola lista specificata , CIDLOOKUPRC cercherà di ricerca il numero di telefono dal CallerID in tutte le liste che appartengono alla campagna di cui, più vicino è specificato per VICIDIAL Closer chiamate, ANI aggiungerà un nuovo record di piombo, con tutte le chiamate utilizzando il ANI, come il numero di telefono, ANILOOKUP cercherà di ricerca il numero di telefono dal ANI in tutto il sistema, ANILOOKUPRL cercherà di ricerca il numero di telefono dal ANI in una sola lista specificata, XDIGITID chiederà il chiamante per un codice X cifra prima della chiamata verrà messa in la coda, VIDPROMPT chiederà il chiamante per il loro numero ID e creerà un nuovo record di piombo con il CallerID come il numero di telefono e l-ID come il Vendor ID, VIDPROMPTLOOKUP tenterà di ricerca l-ID di tutto il sistema, VIDPROMPTLOOKUPRL tenterà di ricerca del fornitore ID dal ID in una sola lista specificata, VIDPROMPTLOOKUPRC tenterà di ricerca da parte del venditore ID l-ID in tutte le liste che appartengono alla campagna specificato. Di default è CID. + +
+
+
+ Nel gruppo di agente Metodo di ricerca - Se è selezionata come IN_GROUP DID rotta, allora questo è il metodo di ricerca agente debba essere utilizzato da un gruppo in entrata, LO è Load-Balanced-Overflow e cercherà di inviare la chiamata di un agente sul server locale prima di tentare di inviarlo a un agente su un altro server, LB è bilanciamento del carico e si tenta di inviare la chiamata al prossimo agente non importa ciò che essi sono il server, server-SO è solo e solo tenta di inviare gli inviti agli agenti presenti sul server che linvito è venuto in su. Il valore di default è LB. + +
+
+
+ Nel gruppo Lista ID - Se è selezionata come IN_GROUP DID rotta, allora questo è lelenco ID che porta può essere cercato attraverso la porta e che sarà inserito in se necessario. + +
+
+
+ Nel gruppo-ID campagna - Se è selezionata come IN_GROUP DID rotta, allora questo è lID campagna che porta può essere cercato per se il metodo di gestire la chiamata è CIDLOOKUPRC. + +
+
+
+ Nel gruppo Codice Telefono - Se è selezionata come IN_GROUP DID rotta, allora questo è il codice utilizzato Telefono se un nuovo piombo è creato. + + + + +



+ + VICIDIAL_CALL MENU TABELLA

+
+
+ Menu ID - Questo è l-ID di questo passo del menù chiamata. Questo mostrerà anche come il contesto che viene utilizzata nel dialplan per il presente invito menu. + +
+
+
+ Menu Nome - Questo campo è il nome descrittivo per il menu di chiamata. + +
+
+
+ Menu Prompt - Questo campo contiene il nome del file del prompt audio da riprodurre all-inizio di questo menu. È possibile immettere propmts più in questo campo e gli altri settori prompt separandole con un carattere pipe. + +
+
+
+ Timeout menu - Questo campo è dove si imposta il timeout in secondi che il menu si aspetta per il chiamante per entrare in una scelta DTMF. L-impostazione di questo campo a zero 0 significa che non vi sarà alcun tempo di attesa dopo il prompt si gioca. + +
+
+
+ Menu prompt timeout - Questo campo contiene il nome del file del prompt audio da riprodurre quando il timeout è stato raggiunto. Di default è NESSUNO per giocare senza audio a timeout. + +
+
+
+ Menu valide Prompt - Questo campo contiene il nome del file del prompt audio da riprodurre quando il chiamante ha scelto un-opzione valida. Di default è NESSUNO per giocare senza audio a non validi. + +
+
+
+ Menu Repeat - Questo campo è dove si definisce il numero di volte che il menu svolgeranno dopo la prima volta se non valida scelta è fatta dal chiamante. Di default è di 1 a ripetere il menu di una volta. + +
+
+
+ Menu Check Time - Questo campo è dove si può scegliere se limitare l-accesso al menù di chiamata ora specifici stabiliti nella selezionato di guardia. Se la durata delle chiamate è vuota, questa impostazione verrà ignorata. Di default è 0 per disabili. + +
+
+
+ ID Orario Chiamate - Questa è la chiamata Time ID che verrà utilizzato per limitare i tempi chiamando se il menu Time opzione di controllo è attivata. + +
+
+
+ Chiede Track in Real-Time Report - Questo campo è dove è possibile selezionare se si desidera che la chiamata ad essere monitorati in tempo reale sullo schermo come una chiamata in entrata di tipo IVR. Predefinito è 1 per attivo. + +
+
+
+ Gruppo di monitoraggio - Questo è l-ID che è possibile utilizzare per monitorare le chiamate a questo menu di chiamata se si guarda alla relazione IVR. L-elenco comprende CALLMENU come predefinito così come tutte le In-Groups. + +
+
+
+ Value Opzione - Questo campo è dove si definisce l-opzione di menu, le scelte possibili sono: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. Il TIMECHECK speciale opzione può essere utilizzata solo se si dispone di menu Check Time abilitato e c-è un tempo chiamata definito per il Menu. Per eliminare un opzione, è sufficiente impostare il percorso per rimuovere e l-opzione verranno eliminati quando si fa clic sul pulsante INVIA. + +
+
+
+ Opzione Descrizione - Questo campo è dove si può descrivere l-opzione, questa descrizione sarà messo in dialplan come un commento in precedenza l-opzione. + +
+
+
+ Opzione Route - Questo menu contiene le opzioni per sapere dove inviare la chiamata, se questa opzione è selezionata: CALLMENU, ingroup, DID, Hangup, ESTENSIONE, TEL. Per CALLMENU, il Rapporto percorso dovrebbe essere l-ID del menu chiamata che si desidera la chiamata inviata. Per ingroup, l-In-gruppo che si desidera che la chiamata ad essere inviato al bisogno di essere scelto come pure le altre 5 opzioni che hanno bisogno di essere impostato correttamente il percorso di una chiamata a un gruppo di ingresso. Per DID, il Rapporto percorso deve essere il modello DID che si desidera inviare la chiamata al. Per Hangup, il Rapporto percorso può essere il nome di un file audio di giocare prima di appendere la chiamata. Per estensione, il valore Route deve essere l-estensione dialplan che si desidera inviare la chiamata a, e la Strada del valore di contesto è il contesto che l-estensione in cui si trova, se lasciato in bianco il contesto sarà di default per difetto. Per telefono, il Rapporto percorso deve essere il valore login telefono cellulare per l-entrata telefoni che si desidera inviare la chiamata al. Per VoiceMail, il Rapporto percorso deve essere il numero di casella vocale, il mesage disponibile verrà riprodotto. Per AGI, il Rapporto percorso deve essere lo script AGI e tutti i valori che devono essere passati a esso. + +
+
+
+ Route Value Opzione - Questo campo è dove si immette il valore che definisce il punto della opzione selezionata percorso che la chiamata è di essere diretto a. + +
+
+
+ Opzione Route valore di contesto - Questo campo è opzionale e solo utilizzati come percorsi di opzione di proroga. + +
+
+
+ Custom Dilplan Entry - Questo campo consente di inserire in ogni dialplan elementi che si desidera per il menu di chiamata. + + + + + +



+ + VICIDIAL_REMOTE_AGENTS TABELLA

+
+
+ Comienzo de la identificacio`n del usuario - esta es la identificacio`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. + +
+
+
+ Número de líneas - 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. + +
+
+
+ IP del servidor - Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea. + +
+
+
+ Extension externa - este es el número que usted desea las llamadas remitidas a. Cercio`rese de que sea un número dial plan completo y que si usted necesita 9 al principio usted lo pone adentro aquí. Pruebe marcando este número de un telefono en el sistema. + +
+
+
+ Estado - 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. + +
+
+
+ Campaña - 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 e`sa que usted desea recibir llamadas de. + +
+
+
+ Grupos de entrada - 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. + + +



+ + VICIDIAL_CAMPAIGN_LISTE

+
+
+ 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 identificacio`n de la lista en la primera columna. + + +



+ + VICIDIAL_CAMPAIGN_STATUSES TABELLA

+
+
+ 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 descripcio`n debe ser 2-30 caracteres en longitud y seleccionable define si demuestra para arriba en VICIDIAL como disposicion. Human_answered el campo se utiliza al calcular el porcentaje de lagota, o la tarifa del abandono. El ajuste human_answered a Yutilizará este estado al contar las llamadas humano-contestadas. La opcio`n de la categoría permite que usted agrupe varios estados enun catogy que se pueda utilizar para el análisis estadístico. + + + + 0) + { + ?> +



+ + VICIDIAL_CAMPAIGN_HOTKEYS TABELLA

+
+
+ Con el uso de los hot keys de encargo de la campaña, los agentes que utilizan el retraso vicidial de la lata del tela-cliente y la disposicion llama apenas presionando una sola llave en su teclado. Hay dos opciones especiales que usted puede utilizar conjuntamente conel número de telefono alterno que marca, ALTPH2 de HotKey - el dialcaliente del telefono alterno y el dial caliente ADDR3-----Address3permiten que un agente utilice un hotkey al retraso su llamada,permanecen en el mismo plomo, y marcan otro número del contacto deese conducen. + + + + + +



+ + VICIDIAL_LEAD_RECYCLE TABELLA

+
+
+ 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. + + + + + +



+ + ESTADOS AUTO DEL DIAL DE VICIDIAL ALT

+
+
+ Si se fija el campo que marca del Alt-Nu`mero auto, despue`s losplomos que son dispositioned bajo estos estados del dial del alt delautomo`vil tendrán su alt_phone y-o los campos address3 marcadosdespue`s de que cualesquiera de estos ninguno-contesten a estados sefijan. + + + + + +



+ + VICIDIAL CODICI PAUSA OPERATORE

+
+
+ Si la pausa del agente cifra el campo activo se fija a activo entonceslos agentes podrá seleccionar de estos co`digos de la pausa cuandochascan encendido el boton de PAUSA en sus pantallas. Estos datosentonces se almacenan en el registro vicidial del agente. El co`digode la pausa debe contener solamente letras y números y ser menos de 7caracteres de largo. El nombre del co`digo de la pausa puede estar nomás de largo de 30 caracteres. + + + + + +



+ + VICIDIAL_USER_GROUPS TABELLA

+
+
+ Grupo de usuario - este es el nombre corto de un grupo de usuario de Vicidial, intento para no utilizar ningunos espacios o puntuacio`n para los caracteres de este máximo 20 del campo, mínimo de 2 caracteres. + +
+
+
+ Nombre de grupo - esta es la descripcio`n del máximo vicidial del grupo de usuario de 40 caracteres. + +
+
+
+ Forza orologio Login - Questa opzione permette di non lasciare che un agente ad accedere al VICIDIAL agente interfaccia se non hanno effettuato laccesso al orologio. Il valore predefinito è N. Vi è la possibilità di esentare admin utenti, i livelli 8 e 9. + +
+
+
+ Maiusc esecuzione - Questa impostazione consente di limitare agente login basata su turni che sono selezionati in appresso. OFF non applicare a tutti i turni. INIZIO solo applicare il login, ma non riguarda un agente che è in esecuzione sul loro passaggio, se essi sono già eseguito laccesso TUTTE imporrà a turni orario di inizio e di un agente di log dopo che corrono oltre la fine del loro turno tempo. Il valore di default è OFF. + +
+
+
+ Gruppo Turni - Si tratta di un elenco dei turni selezionabili che possono limitare il tempo di accesso agenti sul sistema. + +
+
+
+ Campañas permitidas - esta es una lista seleccionable de lascampañas a las cuales los miembros de este grupo de usuario puedenabrirse una sesio`n. La opcio`n de ALL-CAMPAIGNS permite que losusuarios en este grupo consideren y se abran una sesio`n a cualquiercampaña en el sistema. + +
+
+
+ Stato agente Viewable Gruppi - Questa è una lista selezionabile di gruppi di utenti e funzioni di utente a cui i membri di questo gruppo utente può visualizzare lo stato delle chiamate, nonché il trasferimento verso l-interno dello schermo agente. The All-GRUPPI opzione consente agli utenti in questo gruppo da vedere e trasferire le chiamate a qualsiasi utente del sistema. LA CAMPAGNA AGENTI opzione consente agli utenti in questo gruppo da vedere e trasferire le chiamate a qualsiasi utente nella campagna che si è registrato in. + +
+
+
+ Visualizza stato agente Time - Questa opzione definisce se l-agente vedrà la quantità di tempo che gli utenti nella loro sidebar agenti sono stati nel loro stato attuale. Di default è N per nulla o portatori di handicap. + + 0) + { + ?> +
+
+
+ QC ammessi Campagne - Si tratta di un elenco di campagne selezionabili che membri di questo gruppo di utenti sarà in grado di QC. The All-CAMPAGNE opzione consente agli utenti di questo gruppo di QC una campagna sul sistema. + +
+
+
+ QC ammessi Inbound Gruppi - Si tratta di un elenco di ingresso selezionabile gruppi che membri di questo gruppo di utenti sarà in grado di QC. TUTTI I GRUPPI opzione consente agli utenti di questo gruppo di utenti di qualsiasi entrata CQ gruppo sul sistema. + + + + + +



+ + VICIDIAL_SCRIPT TABELLA

+
+
+ Identificacio`n de la escritura - este es el nombre corto de una escritura de Vicidial. este necesita ser un identificador único. Intente no utilizar ningunos espacios o puntuacio`n para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. + +
+
+ Nombre de la escritura - este es el título de una escritura de Vicidial. este es un resumen corto de los caracteres del máximo 50 de la escritura, mínimo de 2 caracteres. No debe haber espacios o puntuacio`n de la clase en campo de los theis. + +
+
+ Comentarios de la escritura - este 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. + +
+
+ Testo Script - 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, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

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?

This would read----

Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
+ <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
+ +
+
+
+ Activo - esto se determina si esta escritura se puede seleccionar para ser utilizado por una campaña. + + + + + + 0) + { + ?> +



+ + VICIDIAL_LEAD_FILTRI TABELLA

+
+
+ Identificacio`n del filtro - este es el nombre corto de un filtro del plomo de Vicidial. este necesita ser un identificador único. No utilice ningunos espacios o puntuacio`n para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres. + +
+
+ Nombre del filtro - este es un nombre más descriptivo del filtro. este es un resumen corto de los caracteres del máximo 30 del filtro, mínimo de 2 caracteres. + +
+
+ El filtro comenta - 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. + +
+
+ Filtro SQL - 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. + + + + + +



+ + VICIDIAL_ORARI CHIAMATA TABELLA

+
+
+ Identificacio`n del tiempo de la llamada - este es el nombre corto deuna definicio`n del tiempo de la llamada de Vicidial. este necesitaser un identificador único. No utilice ningunos espacios opuntuacio`n para los caracteres de este máximo 10 del campo, mínimode 2 caracteres. + +
+
+ Nombre del tiempo de la llamada - este es un nombre más descriptivode la definicio`n del tiempo de la llamada. este es un resumen cortode los caracteres del máximo 30 de la definicio`n del tiempo de lallamada, mínimo de 2 caracteres. + +
+
+ El tiempo de la llamada comenta - aquí es donde usted puede poner loscomentarios para una definicio`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. + +
+
+ Tiempos del comienzo y de parada del defecto - este es el tiempo dedefecto paran que el llamar será permitido que sea comenzado o dentrode esta definicio`n del tiempo de la llamada si la hora de salida dela di`a-de-$$$-SEMANA no se define. 0 es medianoche. Evitar el llamarfijo` totalmente este campo a 2400 y fijo` el tiempo de parada deldefecto a 2400. Permitir el llamar 24 horas al día fijo` la hora desalida a 0 y el tiempo de parada a 2400. + +
+
+ Tiempos del comienzo y de parada del día laborable - estos son lostiempos de encargo por el día que se puede fijar para la definicio`ndel tiempo de la llamada que las mismas reglas se aplican como con lostiempos del comienzo y de parada del defecto. + +
+
+ Definiciones del tiempo de la llamada del estado - esta es la listade las definiciones específicas del tiempo de la llamada del estadoque se siguen en esta definicio`n del tiempo de la llamada. + +
+
+ Estado del tiempo de la llamada del estado - este es el co`digo dedos letras para el estado que esta definicio`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 e`l así como todos los plomos quetienen dos co`digos del estado de la letra en ellos. + + + + +



+ + VICIDIAL_SHIFTS TABELLA

+
+
+ Maiusc ID - Questo è il nome breve di un Vicidial Maiusc Definizione. Questo deve essere un identificatore unico. Non utilizzare spazi o segni di punteggiatura in questo campo. max 20 caratteri, minimo di 2 caratteri. + +
+
+ Nome Shift - Questo è un nome più descrittivo della Maiuscole Definizione. Questa è una breve sintesi della Maiuscole definizione. max 50 caratteri, minimo di 2 caratteri. + +
+
+ Start Time Shift - Questo è il tempo che la campagna ha inizio turno. Deve essere solo numeri, 9:30 AM sarebbe 5:00 PM 0930 e 1700 sarebbe. + +
+
+ Maiusc Lunghezza - Questo è il tempo in ore e minuti che la campagna a turni dura. 8 ore sarebbe 08:00 e 7 ore e 30 minuti sarebbero 07:30. + +
+
+ Maiusc Weekdays - In questa sezione si deve scegliere il giorno della settimana che questo spostamento è attivo. + + + + + +



+
+ Audio Store - Questa utility consente di caricare file audio per il web server in modo che possano essere distribuite a tutti i server ViciDial in un multi-cluster di server. Una nota importante, solo due tipi di file audio funziona, i file. Wav che sono PCM 16bit 8k e file. GSM che sono 8BIT 8K. Si prega di verificare che i file siano correttamente formattato prima di caricarli qui. + + + +



+ + VICIDIAL_MUSIC_ON_HOLD TABELLA

+
+
+ Music On Hold ID - Questo è il nome breve di un Music On Hold entrata. Questo deve essere un identificatore univoco. Non usare spazi o punteggiatura per questo campo. max 100 caratteri, minimo di 2 caratteri. + +
+
+ Music On Hold Nome - Questo è un nome più descrittivo del Music On Hold entrata. Questo è un breve sunto della Music On Hold contesto e mostrerà come un commento nel musiconhold file vicidial.conf. max 255 caratteri, minimo di 2 caratteri. + +
+
+ Attivo - Questa opzione consente di impostare la musica su attesa ingresso attivo o inattivo. Inattivi rimuovere la voce dal file di conf. + +
+
+ Ordine casuale - Questa opzione permette di definire la riproduzione dei file audio in ordine casuale. Se impostato su N quindi l-ordine definito saranno utilizzati. + +
+
+ Filename - Per aggiungere un nuovo file audio ad un Music On Hold ingresso il file deve essere prima nel negozio di audio, quindi è possibile selezionare il file e fare clic su per aggiungerlo alla lista dei file. Musica in attesa viene aggiornato una volta al minuto, se ci sono state le modifiche apportate. Tutti i file che non figurano in una musica d-ingresso sostengono che sono presenti nella cartella di musica su attesa saranno eliminati. + + + + +



+ + VICIDIAL_TTS_PROMPTS TABELLA

+
+
+ TTS ID - Questo è il nome breve di una voce di TTS. Questo deve essere un identificatore univoco. Non usare spazi o punteggiatura per questo campo. caratteri max 50, minimo di 2 caratteri. + +
+
+ TTS Nome - Questo è un nome più descrittivo della voce di TTS. Questo è un breve sunto della definizione TTS. max 100 caratteri, minimo di 2 caratteri. + +
+
+ Attivo - Questa opzione consente di impostare la voce TTS di attivi o inattivi. + +
+
+ TTS Text - Questo è il testo effettivo ai dati Discorso campo che viene inviato al Cepstral per la creazione del file audio da riprodurre al cliente. è possibile utilizzare Speech Synthesis Markup Language-SSML-in questo campo, per esempio, <break time='1000ms'/> per una pausa di 1 secondo. È inoltre possibile utilizzare diverse variabili, quali nome, cognome e titolo come variabili ViciDial proprio come si fa in uno script: - A first_name - - B -. Ecco una lista delle variabili disponibili:lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



+ + VICIDIAL_VOICEMAIL TABELLA

+
+
+ Casella Vocale ID - Questo è l-identificativo di tutti i numeri di questa cassetta postale. Questo non deve essere un duplicato di una segreteria telefonica esistente ID o la segreteria telefonica ID di un telefono cellulare sul sistema, minimo di 2 caratteri. + +
+
+ Name - Questo nome è associato a questa casella vocale. max 100 caratteri, minimo di 2 caratteri. + +
+
+ Password - Questa è la password che viene utilizzata per ottenere l-accesso alla casella vocale, quando chiamate in ingresso per controllare i messaggi max 10 caratteri, minimo di 2 caratteri. + +
+
+ Attivo - Questa opzione consente di impostare la casella vocale di attivo o inattivo. Se la casella è attiva non è possibile lasciare dei messaggi su di essa e non è possibile controllare i messaggi in esso. + +
+
+ Email - Questa impostazione consente di avere i messaggi vocali inviati a un account di posta elettronica, se il vostro sistema è configurato per inviare e-mail. Se questo campo è vuoto quindi non e-mail verrà inviato. + +
+
+ Eliminare Casella Vocale Dopo Email - Questa impostazione consente di avere i messaggi vocali eliminato dal sistema dopo che sono state inviate fuori. Di default è N. + + + + + 0) + { + ?> + +



+ + FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE VICIDIAL

+
+
+ El cargador tela-basado básico del plomo de VICIDIAL se diseñasimplemente para tomar un archivo del plomo - hasta 8MB de tamaño quees la lengüeta o la pipa delimitada y para cargarlo en la tabla delvicidial_list. El cargador del plomo permite el campo que elige y deTXT- el texto claramente, los valores separados coma de CSV- y XLS-sobresalen formatos del archivo. El cargador del plomo no hace lavalidacio`n de datos, sino que permite que usted compruebe para sabersi hay duplicados en sí mismo, dentro de la campaña o dentro delsistema entero. Tambien, cercio`rese de que usted haya creado lalista que estos plomos son estar debajo de modo que usted puedautilizarlos. Aquí está una lista de los campos en su orden apropiadapara los archivos del plomo: +
    +
  1. Co`digo del plomo del vendedor - demuestra para arriba en el campo de la identificacio`n del vendedor del GUI +
  2. Co`digo de fuente - uso interno solamente para los admins y DBAs +
  3. Identificacio`n de la lista - el número de la lista que estos plomos demostrarán para arriba debajo +
  4. Co`digo del telefono - el prefijo para el telefono number(1 para los E.E.U.U., 01144 para Reino Unido, 01161 para AUS, el etc) +
  5. Número de telefono - debe ser por lo menos 8 dígitos de largo +
  6. Título - título del customer(Mr. Ms señ., etc...) +
  7. Nome +
  8. Secondo Nome +
  9. Cognome +
  10. Indirizzo, linea 1 +
  11. Indirizzo, linea 2 +
  12. Indirizzo, linea 3 +
  13. Citta` +
  14. Stato - limitato a 2 caratteri +
  15. Provincia +
  16. CAP +
  17. Stato +
  18. Sesso +
  19. Data di Nascita +
  20. Numero di Telefono Alternativo +
  21. Email +
  22. Frase De Seguridad +
  23. Note +
+ +
NOTAS: La funcionalidad del cargador del plomo del sobresalir espermitida por una serie de escrituras del Perl y necesita tener unarchivo correctamente configurado de /etc/astguiclient.conf en lugaren el web server. Tambien, los mo`dulos de un Perl de los pares sedeben cargar para ella para trabajar Tambien -oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Ustedpuede comprobar para saber si hay errores runtime en estos mirando suarchivo del error_log de apache. Tambien, para los cheques deduplicacio`n contra gampaign enumera, la lista que tiene nuevos plomosel entrar e`l necesita ser creada en el sistema antes de que ustedcomience a cargar los plomos. + + + + +



+ + + + + + + TABELLA TELEFONI

+
+
+ Extension del telefono - este campo es donde usted pone los nombres del telefono que aparecen al marcar con asterisco no incluyendo el protocolo o la barra vertical del principio. Por ejemplo: para el telefono SIP/test101 del SIP la extension del telefono sería test101. Tambien, para los telefonos IAX2 compruebe que usted utiliza el nombre del telefono completo: IAX2/IAXphone1@IAXphone1 sería IAXphone1@IAXphone1. Para zap los telefonos 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 telefono. + +
+
+
+ Número del Dial plan - este campo está para el número que usted marca para tener el anillo del telefono. Este número se define en el archivo de extensions.conf de su servidor asterisco + +
+
+
+ Caja de Buzon de Voz - este campo es para la caja del Buzon de voz donde van los mensajes para al usuario de este telefono. Utilizamos esto para comprobar los mensajes del Buzon de voz y para que el usuario pueda acceder al Buzon de Voz desde astGUIclient. + +
+
+
+ CallerID de salida - 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. + +
+
+
+ Direccion IP del telefono - This field is for the phone's IP address if it is a VOIP phone. This is an optional field + +
+
+
+ Direccion IP del ordenador - This field is for the user's computer IP address. This is an optional field + +
+
+
+ IP del servidor - Este menú es donde usted selecciona en que servidor está el telefono activo. + +
+
+
+ conexion - la conexion usada para el usuario del telefono a laconexion a los usos del cliente. + +
+
+
+ Contraseña - la contraseña usada para el usuario del telefono a laconexion a los usos del cliente. IMPORTANTE, questa è la password solo per il web agent login telefono di interfaccia, per cambiare il sip.conf o la password iax.conf, o segreto, per questo dispositivo cellulare è necessario modificare la conf campo segreto più in basso in questa pagina. + +
+
+
+ Estado - el estado del telefono en el sistema, puede ser ACTIVO y ADMIN permiten que los clientes del GUI trabajen. ADMIN permite el acceso a este Web site de administracion. El resto de los estados no permiten el acceso al GUI o al Web de Admin. + +
+
+
+ Cuenta activa - si el telefono está activado ponerla en la lista del cliente del GUI. + +
+
+
+ Tipo de telefono - solamente para informacion administrativas. + +
+
+
+ Nombre completo - usado por el GUIclient en la lista de telefonos activos. + +
+
+
+ Compañía - solamente para las notas administrativas. + +
+
+
+ Cellulari e-mail - Lindirizzo email associato a questo telefono cellulare entrata. Questo è utilizzato per le impostazioni della segreteria. + +
+
+ Eliminare Casella Vocale Dopo Email - Questa impostazione consente di avere i messaggi vocali eliminato dal sistema dopo che sono state inviate fuori. Di default è N. + +
+
+
+ Cuadro - todavía no puesto en ejecucio`n. + +
+
+
+ Nuevos mensajes - número de los nuevos mensajes del Buzon de Voz para este telefono en el servidor del asterisco. + +
+
+
+ Viejos mensajes - número de los viejos mensajes del Buzon de Voz para este telefono en el servidor del asterisco. + +
+
+
+ Protocolo del cliente - el protocolo que el telefono utiliza para conectar con el servidor del asterisco: El Sip, IAX2, Zap. Tambien, para los números External remotos o los números SpeedDial que usted desea enumerar como telefonos. + +
+
+
+ GMT local - La diferencia a partir del tiempo malo del ZULÚ del time(or de Greenwich) donde se localiza el telefono. 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. + +
+
+
+ Phone Ring Timeout - Questa è la quantità di tempo, in secondi, che il telefono squilla nel dialplan prima di inviare la chiamata alla segreteria telefonica. Predefinito è 60 secondi. + +
+
+
+ conexion del encargado - esta es la conexion que los clientes del GUI para este telefono utilizarán tener acceso a la base de datos donde residen los datos del servidor. + +
+
+
+ Secreto del encargado - esta es la contraseña que los clientes del GUI para este telefono utilizarán tener acceso a la base de datos donde residen los datos del servidor. + +
+
+
+ Usuario del defecto de VICIDIAL - este debe poner un valor prefijado en el campo del usuario de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún usuario. + +
+
+
+ Paso del defecto de VICIDIAL - este debe poner un valor prefijado en el campo de la contraseña de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún paso. + +
+
+
+ Campaña del defecto de VICIDIAL - este debe poner un valor prefijado en el campo de la campaña de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ninguna campaña. + +
+
+
+ Parque Exten - esta es la extension del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Extension de la conferencia - esta es la extension del parque de la conferencia del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Parque Exten de VICIDIAL - esta es la extension del estacionamiento del defecto para el cliente app de VICIDIAL. Verifique que diverso trabaje antes de que usted cambie esto. + +
+
+
+ Archivo del parque de VICIDIAL - este es el nombre del archivo de la extension del parque del defecto VICIDIAL para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie este limitado a 10 caracteres. + +
+
+
+ Prefijo del monitor - este es el prefijo dial plan para supervisar de zap los canales automáticamente dentro del app astGUIclient. Cambie solamente según los expedientes de extensiones de extensions.conf ZapBarge. + +
+
+
+ grabacion Exten - esta es la extension dial plan para la extension de la grabacion 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 Exten principal - esta es la extension dial plan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar. + +
+
+
+ VMAIL Dump Exten - This is the dial plan 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. + +
+
+
+ Contexto De Exten - Questo è il contesto dial plan che le domande agente, come ViciDial, in primo luogo l-uso. Si presume che tutti i numeri composti dalle applicazioni client utilizzano questo contesto, quindi è una buona idea per assicurarsi che questo è il contesto più ampio possibile. verificare con il file extensions.conf prima di modificare. di default è di default. + +
+
+
+ Telefono Contesto - Questo è il contesto dial plan che questo telefono cellulare sarà utilizzato per effettuare chiamate in uscita. Se si esegue un call center e non volete che i vostri agenti per essere in grado di effettuare chiamate in uscita al di fuori della domanda ViciDial per esempio, allora devi impostare questo campo ad un contesto dialplan che non esiste, qualcosa come agente-nodial. di default è di default. + +
+
+
+ Conf file segreto - Questo è il segreto, o la password, per il telefono cellulare in auto o IAX SIP-generated conf file per questo telefono. Limite è dash 20 caratteri alfanumerici e underscore accettato. Di default è di prova. + +
+
+
+ DTMF envían el canal - esta 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. + +
+
+
+ Grupo de salida de la llamada - este es el grupo de canal que las llamadas de salida de este telefono 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). + +
+
+
+ Localizacio`n del browser - 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. + +
+
+
+ Instale el directorio - este 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. + +
+
+
+ URL de CallerID - Ústa es la Direccion de la tela de la página usada para hacer operaciones de búsqueda de encargo del callerID que es la Direccion de prueba del defecto: http://astguiclient.sf.net/test_callerid_output.php + +
+
+
+ URL del defecto de VICIDIAL - esta es la Direccion de la tela de la página usada para hacer preguntas de encargo de la forma del Web de VICIDIAL que es la Direccion de prueba del defecto: http://astguiclient.sf.net/test_VICIDIAL_output.php + +
+
+
+ Call Logging - This is set to true if the call_log.agi file is in place in the extensions.conf file for all outbound and hang up 'h' extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly. + +
+
+
+ Cambio de Usuario - 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 + +
+
+
+ Comunicacio`n - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas. + +
+
+
+ Retraso del Admin - 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. + +
+
+
+ Secuestro del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extension 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. + +
+
+
+ Monitor del Admin - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extension 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. + +
+
+
+ Parque de llamada - 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. + +
+
+
+ Cheque de Updater - 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. + +
+
+
+ AF Logging - Set to true to log many actions of astGUIclient usage to a text file on the user's computer. + +
+
+
+ La coleta permitio` - 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. + +
+
+
+ Ventana emergente del CallerID - 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. + +
+
+
+ Boto`n de VMail - fije para verdad para exhibir el boton de VOICEMAIL y los mensajes cuentan la exhibicio`n en astGUIclient. + +
+
+
+ Rápido restaure - fije para verdad para permitir un nuevo índice de restauran de la informacion 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. + +
+
+
+ Rápido restaure la tarifa - 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. + +
+
+
+ Persistant MySQL - si está permitida la conexion 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. + +
+
+
+ Número siguiente del dial auto - si está permitido el cliente de VICIDIAL marcará el número siguiente en la lista automáticamente sobre la disposicion de una llamada a menos que seleccionaran "para parar el marcar" en la pantalla de la disposicion. + +
+
+
+ Pare Rec despue`s de cada llamada - si está permitido el cliente de VICIDIAL parará se está encendiendo cualquier grabacion despue`s de que haya sido cada llamada dispositioned. Útil si usted está haciendo muchos de la grabacion o usted están utilizando una forma de la tela para accionar la grabacion. + +
+
+
+ Permita los mensajes de SIPSAK - si está permitido el servidorenviará mensajes al telefono del SIP a la exhibicio`n en laexhibicio`n del LCD del telefono cuando está registrado en VICIDIAL.La característica trabaja solamente con los telefonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. + +
+
+
+ Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. + +
+
+
+ Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. + +
+
+
+ Usuario de DBX - la conexion del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. + +
+
+
+ Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. + +
+
+
+ DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. + +
+
+
+ Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar. Secondario server, non utilizzato attualmente. + +
+
+
+ Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco. Secondario server, non utilizzato attualmente. + +
+
+
+ Usuario de DBY - la conexion del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron. Secondario server, non utilizzato attualmente. + +
+
+
+ Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234. Secondario server, non utilizzato attualmente. + +
+
+
+ DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306. Secondario server, non utilizzato attualmente. + +
+
+
+ ID Alias - LID del alias utilizzati per consentire di telefono carico equilibrato login. senza spazi o altri caratteri speciali ammessi. Deve essere compreso tra 2 e 20 caratteri di lunghezza. + +
+
+
+ Alias Nome - Il nome utilizzato per descrivere un alias cellulari, deve essere compresa tra 2 e 50 caratteri di lunghezza. + +
+
+
+ Cellulari Login Lista - Lelenco separato da virgole di telefono cellulare utilizzato dati di accesso quando un agente accede tramite telefono cellulare carico equilibrato login. Lagente si trova lapplicazione server attivo con il minor numero di agenti e registrati in una chiamata da tale server di agenti su login. + +
+
+
+ Template ID - Questo è il file di conf che questo modello di telefono cellulare ID entrata utilizzerà per i suoi Asterisk impostazioni. Il valore di default è - INSUSSISTENZA --. + +
+
+
+ Conf Override Settings - If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
+
+
+ Alias ID gruppo - LID del gruppo alias utilizzati da agenti di effettuare chiamate in uscita le chiamate dalla VICIDIAL agente di interfaccia con le diverse Caller ID. senza spazi o altri caratteri speciali ammessi. Deve essere compreso tra 2 e 20 caratteri di lunghezza. + +
+
+
+ Gruppo Alias Nome - Il nome utilizzato per designare un gruppo di alias, deve essere compresa tra 2 e 50 caratteri di lunghezza. + +
+
+
+ Numero ID chiamante - Il numero ID del chiamante utilizzato in questo gruppo di Alias. Deve essere solo cifre. + +
+
+
+ Caller ID Nome - Il Caller ID nome che possono essere inviati con questo gruppo di Alias. Per quanto ne sappiamo questo funziona solo in Canada e il PRI circuiti IAX loop utilizzando un tronco attraverso Asterisk. + + + + +



+ + TABELLA SERVER

+
+
+ ID Del Servidor - 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. + +
+
+
+ Descripcio`n del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco. + +
+
+
+ IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco. + +
+
+
+ Activo - fije si el servidor del asterisco es activo o inactivo. + +
+
+
+ Sistema di carico - Queste due statistiche mostrano il loadavg di un sistema di 100 volte e la percentuale di utilizzo della CPU del server e viene aggiornato ogni minuto. Il loadavg dovrebbe essere in media al di sotto di 100, moltiplicato per il numero di CPU core il sistema è, per ottenere prestazioni ottimali. La percentuale di utilizzo della CPU dovrebbe rimanere al di sotto del 50 per ottenere prestazioni ottimali. + +
+
+
+ Live Canali - Questo campo indica il numero attuale di Asterisk canali che sono in diretta su il sistema adesso. È importante notare che il numero di canali Asterisk è di solito molto più elevato rispetto al numero effettivo di chiamate su un sistema. Questo campo è aggiornato una volta ogni minuto. + +
+
+
+ Utilizzo del disco - Questo campo mostra lutilizzo del disco per ogni partizione su questo server. Questo campo è aggiornato una volta ogni minuto. + +
+
+
+ Versione Di Asterisk - 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. + +
+
+
+ Troncos máximos de VICIDIAL - 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. + +
+
+
+ Max chiede al secondo - Questa impostazione determina il numero massimo di chiamate che possono essere immessi in uscita dalla selezione automatica di script sul server al secondo. Deve essere da 1 a 100. Il valore predefinito è 20. + +
+
+
+ Host Telnet - 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. + +
+
+
+ Porta Telnet - 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. + +
+
+
+ Usuario Del Manager - The username or login used to connect genericly to the Asterisk server manager. Default is 'cron' + +
+
+
+ Contraseña del Manager - The secret or password used to connect genericly to the Asterisk server manager. Default is '1234' + +
+
+
+ Usuario del Updater del Manager - 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 Listen del Manager - 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. + +
+
+
+ Usuario Send del Manager - 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. + +
+
+
+ Conf file segreto - Questo è il segreto, o la password, per il server in automatico IAX-generated conf file per questo server su altri server. Limite è dash 20 caratteri alfanumerici e underscore accettato. Di default è di prova. + +
+
+
+ Server GMT offset - The difference in hours from GMT time not adjusted for Daylight-Savings-Time of the server. Default is '-5' + +
+
+
+ Extension de Vmail Dump - The extension prefix used on this server to send calls directly through agc to a specific voicemail box. Default is '85026666666666' + +
+
+
+ Extension del AD de VICIDIAL - The default extension if none is present in the campaign to send calls to for VICIDIAL auto dialing. Default is '8365' + +
+
+
+ Contexto por Defecto - The default dial plan context used for scripts that operate for this server. Default is 'default' + +
+
+
+ Funcionamiento del sistema - fijar esta opcio`n a Y permitirá laregistracion del stats del funcionamiento del sistema para lamáquina del servidor incluyendo carga de sistema, procesos delsistema y canales del asterisco en uso. El defecto es N. + +
+
+
+ Registros del servidor - fijar esta opcio`n a Y permitirá laregistracion de todas las escrituras relacionadas VICIDIAL a susficheros de diario del texto. Fijar esto a N parará registros de laescritura a los archivos para estos procesos, Tambien laregistracion de la pantalla del asterisco será lisiado si esto sefija a N cuando se comienza el asterisco. El defecto es Y. + +
+
+
+ AGI hecho salir - fijar esta opcio`n a NINGUNOS inhabilitará salidade todas las escrituras relacionadas VICIDIAL de AGI. Fijar esto aSTDERR enviará el AGI hecho salir al asterisco CLI. Fijar esto alARCHIVO enviará la salida a un archivo en el directorio de losregistros. Fijar esto a AMBOS enviará salida al asterisco CLI y a unfichero de diario. El defecto es ARCHIVO. + +
+
+
+ El marcar del balance de VICIDIAL - fijar este campo a Y permitiráque el servidor ponga las llamadas del balance para las campañas enVICIDIAL para poder resolver el nivel definido del dial incluso si nohay agentes registrados en esa campaña en este servidor. El defectoes N. + +
+
+
+ VICIDIAL Balance Rank - Questo campo consente di impostare l-ordine in cui il server deve essere utilizzato per chiamate di equilibrio, se l-equilibrio di composizione è abilitato. Il server con il rango più alto sarà utilizzato prima immissione Balance riempire le chiamate. Di default è 0. + +
+
+
+ Balance Offlimits de VICIDIAL - este ajuste define el número detroncos para no permitir el balance de VICIDIAL que marca parautilizar. Por ejemplo si usted tiene 40 troncos y offlimits vicidialmáximos del balance se fijan a 10 que usted podrá solamenteutilizar 30 líneas interurbanas para marcar del balance de VICIDIAL.El defecto es 0. + +
+
+
+ Registrazione Web Link - Questa impostazione consente di ignorare limpostazione predefinita della visualizzazione della registrazione in collegamento lamministratore pagine web. Il valore di default è SERVER_IP. + +
+
+
+ Supplente di registrazione IP Server - Questa impostazione è dove si può mettere un server IP o nome di altre macchine che possono essere utilizzati al posto del server_ip tra i link alle registrazioni ai admin pagine web. Il valore di default è vuota. + +
+
+
+ Attivo Server Asterisk - Asterisk Se non è in esecuzione su questo server, o se VICIDIAL non dovrebbero utilizzare questo server, o se sono solo utilizzando questo server per altri script come la tramoggia di carico script si desidera impostare questo N. Il valore di default è Y. + +
+
+
+ Attivo Server Agent - L-impostazione di questa opzione per N impedirà agenti di essere in grado di accedere al server attraverso lo schermo vicidial agente. Questo è molto utile quando si utilizza un telefono cellulare carico login setup equilibrata. Di default è Y. + +
+
+
+ Genera file conf - Se si desidera il sistema di auto-generare asterisco conf file basati su telefoni voci, le voci del vettore e di impostazione di bilanciamento del carico allinterno VICIDIAL quindi impostare ad Y. Il valore di default è Y. + +
+
+
+ Ricostruire conf - Se si desidera forzare una ricostruzione del Asterisk conf file o se uno dei telefoni cellulari o vettore voci hanno cambiato allora questo deve essere impostato a Y. Dopo il file di configurazione sono stati generati e Asterisk ha stati ricaricati quindi questo sarà cambiato in N. Il valore di default è Y. + +
+
+
+ Ricostruire Music On Hold - Se si vuole imporre una ricostruzione della musica su file di attesa o se la musica su voci di attesa o voci di server hanno cambiato allora questo dovrebbe essere impostato su Y. Dopo la musica in attesa dei file sono state sincronizzate e ricaricate allora questo sarà cambiato N. Il valore predefinito è Y. + +
+
+
+ Suoni Update - Se si vuole forzare un controllo dei file audio su questo server, e l-archivio centrale audio è abilitato come impostazione di sistema, quindi questo settore permetterà i suoni di aggiornamento per eseguire in cima successiva del minuto. Ogni volta che un file audio viene caricato tramite l-interfaccia web questa viene automaticamente impostato su Y per tutti i server che sono attivi Asterisk. Di default è N. + +
+
+
+ ViciDial Limite di registrazione - Questo campo è dove si imposta il numero massimo di minuti che una registrazione di chiamata da parte ViciDial può essere. Predefinito è 60 minuti. + +
+
+
+ Carrier Logging Attivo - Questa impostazione consente di registrare tutti i codici hangup ritorno per qualsiasi composizione lista delle chiamate in uscita che si sta ponendo. Predefinito è N. + + + + + + +



+ + vicidial_conf_templates TABELLA

+
+
+ Template ID - Questo campo deve essere di almeno 2 caratteri e non più di 15 caratteri, senza spazi. Questo è lID che sarà utilizzato per identificare il modello di conf in tutto il sistema. + +
+
+
+ Nome modello - Questo è il nome descrittivo del file di conf modello entrata. + +
+
+
+ Template Sommario - Questo campo è possibile entrare nello specifico delle impostazioni per essere utilizzati da tutti i telefoni o e-vettori che sono impostate per lutilizzo di questo modello conf. I campi che non dovrebbero essere inclusi in questa casella sono i seguenti: segreto, accountcode, account, nome utente e la casella e-mail. + + + + + +



+ + vicidial_server_carriers TABELLA

+
+
+ ID Vettore - Questo campo deve essere di almeno 2 caratteri e non più di 15 caratteri, senza spazi. Questo è lID che sarà utilizzato per individuare il vettore per questo specifico entrata in tutto il sistema. + +
+
+
+ Nome Vettore - Questo è il nome descrittivo del vettore entrata. + +
+
+
+ Carrier Descrizione - Questo è messo nei commenti dei file asterisco conf sopra il dialplan e le voci del conto. Massimo 255 caratteri. + +
+
+
+ Registrazione Stringa - Questo campo è possibile immettere nella stringa esatta necessaria la SIP IAX o file di configurazione per la registrazione al provider. Opzionale, ma altamente raccomandato se il vettore consente di registrazione. + +
+
+
+ Template ID - Questo campo opzionale vi permette di scegliere un file di configurazione per questo modello vettore entrata. + +
+
+
+ Conto Entrata - Questo campo è utilizzato se non hai selezionato un modello da utilizzare, ed è dove si può entrare nello specifico le impostazioni da utilizzare per questo vettore. Se si sarà tenuto a chiamate in entrata da questo vettore tronco che si desidera impostare il contesto trunkinbound = allinterno di questo settore, in modo che si può utilizzare il processo di trattamento allinterno DID VICIDIAL. + +
+
+
+ Protocollo - Questo campo permette di definire il protocollo da utilizzare per lingresso del vettore. Attualmente solo SIP e IAX sono supportati. + +
+
+
+ Globals Stringa - Questo campo opzionale permette di definire una variabile globale da utilizzare per il vettore in dialplan. + +
+
+
+ Entrata Dialplan - Questo campo opzionale permette di definire una serie di dialplan voci da utilizzare per questo vettore. + +
+
+
+ IP Server - Questo è il server che questo specifico vettore record è associato con. + +
+
+
+ Attiva - Questo definisce se il vettore sarà incluso nel generata automaticamente conf file o non. + + + + + +



+ + TABLA DE CONFERENCIAS

+
+
+ Número de la conferencia - este campo es donde usted pone el número del dialpna de la conferencia del meetme. Tambien 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. + +
+
+
+ IP del servidor - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido. + + + + + 0) + { + ?> +



+ + VICIDIAL_SERVER_Bauli TABELLA

+
+
+ Los troncos del servidor de VICIDIAL permiten que usted restrinja laslíneas salientes que se utilizan en este servidor para la campañaque marca sobre una base de la por-campaña. Usted tiene la opcio`npara reservar un número de las líneas específico que se utilizaránpor solamente una campaña así como permitir que esa campañafuncione sobre sus líneas reservadas en cualesquiera líneas siguensiendo abiertas, según lo en las líneas totales usadas por vicidialen este servidor es de largo menos que fijar de los troncos delmáximo VICIDIAL. No tener cualesquiera de estos expedientespermitirá la campaña que marca la línea primero para tener tantaslíneas mientras que puede conseguir bajo fijar de los troncos delmáximo VICIDIAL. + + + + + +



+ + SYSTEM_SETTINGS TABELLA

+
+
+ Uso No-Latino - esta opcio`n permite que usted omita la escritura dela exhibicio`n de la tela los caracteres del uso UTF8 y que no haganinguna expresio`n regular de la latino-cara`cter-familia que sefiltra ni que no exhiba el formato. El defecto es 0. + +
+
+
+ Webroot escribible - este ajuste permite que usted defina si losarchivos de la temperatura y los archivos de la autentificacio`n seancolocados en el webroot en su web server. El defecto es 1. + +
+
+
+ El agente de VICIDIAL inhabilita la exhibicio`n - este campo seutiliza para seleccionar cuando demostrar a un agente cuando susesio`n ha sido inhabilitada por el sistema, una accio`n del encargadoo por una medida externa. El ajuste de NOT_ACTIVE inhabilitará elmensaje en la pantalla de los agentes. El ajuste de LIVE_AGENTexhibirá solamente el mensaje lisiado cuando se ha quitado elexpediente de los vicidial_auto_calls de los agentes, por ejemplodurante un registro de estado de la máquina de la fuerza o registrode estado de la máquina de la emergencia. + +
+
+
+ Permita los mensajes de SIPSAK - si el sistema a 1, este permite queel ajuste de la tabla de los telefonos trabaje correctamente, elservidor enviará mensajes al telefono del SIP a la exhibicio`n en laexhibicio`n del LCD del telefono cuando está registrado en VICIDIAL.Esta característica trabaja solamente con los telefonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0. + +
+
+
+ Agente attivo API - Se è impostato a 1, questo permetterà lagente interfaccia API di funzionare. Il valore di default è 0. + +
+
+
+ URL casero del Admin - esta es la Direccion del URL o del Web siteque usted irá si usted chasca encendido el acoplamiento CASERO en latapa de la página de admin.php. + +
+
+
+ Permita el logfile de la transferencia del agente - esta opcio`nregistrará a un logfile del texto en el webserver cada vez que unallamada se transfiere a un agente. El defecto es 0, inhabilitado. + +
+
+
+ Orologio End Of Day - Questa impostazione definisce il momento in cui tutti gli utenti devono essere registrati automaticamente dal sistema orologio. Funziona solo una volta al giorno. deve essere solo il 4 cifre 2 cifre 2 cifre ora e 24 minuti in ora di tempo. Il valore di default è 0000. + +
+
+
+ Ultimo orologio automatico Logout - Questo campo visualizza la data degli ultimi auto-logout. + +
+
+
+ Agente Screen Header Data Format - Questo menu consente di scegliere il formato della data che compare nella parte superiore della schermata VICIDIAL agente. Le opzioni di questa impostazione sono: il default è MS_DASH_24HR
+ MS_DASH_24HR 2008-06-24 23:59:59 - Default data con formato giorno mese anno seguita da 24 ore di tempo
+ US_SLASH_24HR 06/24/2008 23:59:59 - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 24 ore di tempo
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europeo con il formato della data giorno mese anno seguita da 24 ore di tempo
+ AL_TEXT_24HR JUN 24 23:59:59 - Testo abbreviato con il formato della data giorno mese seguita da 24 ore di tempo
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Default data con formato giorno mese anno seguita da 12 ore di tempo
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 12 ore di tempo
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europeo con il formato della data giorno mese anno seguita da 12 ore di tempo
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Testo abbreviato con il formato della data giorno mese seguita da 12 ore di tempo
+ +
+
+
+ Cliente di agente Screen Formato data - Questo menu consente di scegliere il formato del cliente fuso orario data che compare nella parte superiore della sezione Informazioni per i clienti del VICIDIAL agente schermo. Le opzioni di questa impostazione sono: il default è AL_TEXT_AMPM
+ MS_DASH_24HR 2008-06-24 23:59:59 - Default data con formato giorno mese anno seguita da 24 ore di tempo
+ US_SLASH_24HR 06/24/2008 23:59:59 - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 24 ore di tempo
+ EU_SLASH_24HR 24/06/2008 23:59:59 - Europeo con il formato della data giorno mese anno seguita da 24 ore di tempo
+ AL_TEXT_24HR JUN 24 23:59:59 - Testo abbreviato con il formato della data giorno mese seguita da 24 ore di tempo
+ MS_DASH_AMPM 2008-06-24 11:59:59 PM - Default data con formato giorno mese anno seguita da 12 ore di tempo
+ US_SLASH_AMPM 06/24/2008 11:59:59 PM - Stati Uniti dAmerica con il formato della data giorno mese anno seguita da 12 ore di tempo
+ EU_SLASH_AMPM 24/06/2008 11:59:59 PM - Europeo con il formato della data giorno mese anno seguita da 12 ore di tempo
+ AL_TEXT_AMPM JUN 24 11:59:59 PM - Testo abbreviato con il formato della data giorno mese seguita da 12 ore di tempo
+ +
+
+
+ Agente Telefono Formato schermo clienti - Questo menu consente di scegliere il formato del cliente, numero di telefono che compare nella sezione status del VICIDIAL agente schermo. Le opzioni di questa impostazione sono: il default è US_PARN
+ US_DASH 000-000-0000 - USA dash separati numero di telefono
+ US_PARN (000)000-0000 - USA dash separati numero con prefisso parentesi
+ MS_NODS 0000000000 - N. formattazione
+ UK_DASH 00 0000-0000 - UK dash separati numero di telefono con lo spazio dopo il codice di città
+ AU_SPAC 000 000 000 - Australia spazio separato numero telefonico
+ IT_DASH 0000-000-000 - Italy dash separati numero di telefono
+ FR_SPAC 00 00 00 00 00 - France spazio separato numero telefonico
+ +
+
+
+ Agent interface API Access Attivo - This option allows you to enable or disable the agent interface API. Default is 0. + +
+
+
+ Solo agente di richiamata Campagna Lock - Questa opzione definisce se richiamate AGENTONLY sono bloccati per la campagna che l-agente originariamente creato sotto. Impostare questo a 1 significa che l-agente non può che chiamarli dalla campagna sono stati fissati nel quadro, 0 significa che l-agente può accedervi non importa quale campagna sono collegato. Di default è 1. + +
+
+
+ Centrale Sound Control Attivo - Questa opzione definisce se il sistema audio di sincronizzazione è attivo su tutti i server. Di default è 0 per inattivo. + +
+
+
+ Suoni Web Server - Questo è il nome del server o l-indirizzo IP del server Web che sarà la gestione dei file audio su questo sistema, questo deve corrispondere il nome del server o IP della macchina che si sta tentando di accedere alla pagina web audio_store.php o non funzionerà . Di default è 127.0.0.1. + +
+
+
+ Suoni Web Directory - Questa auto-generata nome della directory è creata in modo casuale dal sistema come il luogo che l-archivio audio saranno mantenute. Tutti i file audio risiede in questa directory. + +
+
+
+ Attivo Server Casella Vocale - Nei sistemi multi-server, questo è il server che consente di gestire tutte le caselle di posta vocale. Questo server è anche il luogo dove il dial-in generati prompt saranno caricati dai, il 8.168 registrazioni. + +
+
+
+ Outbound Auto-Dial Attivo - Questa opzione consente di attivare o disattivare la connessione automatica in uscita entro VICIDIAL, limpostazione di questo campo a 0 rimuove gli elenchi e le sezioni FILTRI e molti campi della campagna Modifica schermi. Manuale per lingresso di selezione sarà ancora consentita lagente da schermo, ma nessuna lista di selezione sarà possibile. Il valore di default è 1, per attività di. + +
+
+
+ Ratio Dial Limit - Questo è il limite massimo del livello di linea automatica nella schermata di campagna. + +
+
+
+ Max COMPILA invita al secondo - Questa impostazione determina il numero massimo di chiamate che possono essere messi da parte lauto-fill-in uscita di selezione automatica di script per tutti i server, al secondo. Deve essere da 1 a 200. Il valore predefinito è 40. + +
+
+
+ Consentire Custom Dialplan Entries - Questa opzione consente di immettere le linee personalizzate dialplan in Call menu. Di default è 0 per inattivo. + +
+
+
+ Territori Utente Attivo - Questa impostazione consente di attivare l-utente Territori setttings dalla schermata di modifica degli utenti. Questa caratteristica è stata aggiunta per consentire una maggiore integrazione con un-installazione personalizzata Vtiger, ma può avere applicazioni in un sistema di puro ViciDial pure. Di default è 0 per disabili. + +
+
+
+ Consentire Webform Seconda - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
+
+
+ Consentire l-integrazione TTS - Questa impostazione consente di attivare Text To Speech integrazione con Cepstral. Questo è attualmente disponibile solo per le campagne di tipo uscita Indagine. Di default è 0 per disabili. + +
+
+
+ Caratteristiche di Attivo QC - Questa opzione consente di attivare o disattivare la qualità o le caratteristiche di controllo della qualità. Il valore di default è 0 per inattive. + +
+
+
+ Permita la registracion de QueueMetrics - este ajuste permite queusted defina si VICIDIAL inserte entradas del registro en la tabla dela base de datos del queue_log como lo hace la actividad de lascoletas del asterisco. QueueMetrics es un independiente, programa delanálisis estadístico de la cerrado-fuente. Usted debe tenerQueueMetrics instalado y configurado ya antes de permitir estacaracterística. El defecto es 0. + +
+
+
+ IP del servidor de QueueMetrics - este es el IP address de la base dedatos para su instalacio`n de QueueMetrics. + +
+
+
+ Nombre de la base de datos de QueueMetrics - este es el nombre de labase de datos para su base de datos de QueueMetrics. + +
+
+
+ conexion de la base de datos de QueueMetrics - este es el nombre delusuario usado para abrirse una sesio`n a su base de datos deQueueMetrics. + +
+
+
+ Contraseña de la base de datos de QueueMetrics - esta es lacontraseña usada para abrirse una sesio`n a su base de datos deQueueMetrics. + +
+
+
+ URL de QueueMetrics - esta es la Direccion del URL o del Web siteusada para conseguir a su instalacio`n de QueueMetrics. + +
+
+
+ Identificacio`n del registro de QueueMetrics - esta es laidentificacio`n del servidor que todos los registros de VICIDIAL queentran la base de datos de QueueMetrics utilizarán como identificadorpara cada expediente. + +
+
+
+ QueueMetrics EnterQueue prepend - este campo se utiliza para permitirprepending de una de las zonas de informaciones del vicidial_listdelante del número de telefono del cliente para los informesmodificados para requisitos particulares de QueueMetrics. El defectono es NINGUNO no poblar cualquier cosa. + +
+
+
+ Attiva Vtiger Integrazione - Questa impostazione consente di attivare Vtiger integrazione con VICIDIAL. Attualmente i collegamenti a Vtiger admin e di ricerca così come utente di replica sono gli unici disponibili funzioni di integrazione. Il valore di default è 0. + +
+
+
+ Vtiger DB IP Server - Questo è lindirizzo IP della banca dati per la vostra installazione Vtiger. + +
+
+
+ Vtiger Nome Database - Questo è il nome del database per il vostro database Vtiger. + +
+
+
+ Vtiger Database Login - Questo è il nome utente utilizzato per accedere al vostro database Vtiger. + +
+
+
+ Vtiger Database Password - Questa è la password utilizzata per accedere al tuo database Vtiger. + +
+
+
+ Vtiger URL - Questo è lURL o lindirizzo del sito web utilizzato per accedere al tuo Vtiger installazione. + + +



+ + VICIDIAL_STATUSES TABELLA

+
+
+ Con el uso de los estados de sistema, usted puede tener estados queexistan para la campaña y el en-grupo. El estado debe ser 1-6caracteres en longitud, la descripcio`n debe ser 2-30 caracteres enlongitud y seleccionable define si demuestra para arriba en VICIDIALcomo disposicion del agente. Human_answered el campo se utiliza alcalcular el porcentaje de la gota, o la tarifa del abandono. El ajustehuman_answered a Y utilizará este estado al contar las llamadashumano-contestadas. La opcio`n de la categoría permite que ustedagrupe varios estados en un catogy que se pueda utilizar para elanálisis estadístico. Ci sono anche 5 impostazioni aggiuntive che definiscono il tipo di stato: in vendita, DNC, contatto con i clienti, non interessati, impraticabile. + + + +



+ + VICIDIAL_STATUS_CATEGORIES TABELLA

+
+
+ Con el uso de las categorías del estado de sistema, usted puedeagrupar juntos estados para tener en cuenta análisis estadístico enun grupo de estados. La identificacio`n de la categoría debe ser 2-20caracteres en longitud sin espacios, el nombre debe ser 2-50caracteres en longitud, la descripcio`n es opcional y la exhibicio`nde TimeonVDAD define si ese estado será uno de hasta que 4 estadosque se puedan calcular y exhibir en el tiempo en informe del tiemporeal de VDAD. La vendita e Dead Categoria Categoria di piombo sono entrambi utilizzati dal sistema quando Elenco Suggerimento analisi statistiche elenco. + + + 0) + { + ?> +



+ + QC VICIDIAL Codici di stato

+
+
+ Il Controllo Qualità-QC VICIDIAL sistema ha il proprio set di codici di stato separato da coloro che, nelle funzioni di gestione delle chiamate VICIDIAL. QC statuse codici deve essere compresa tra 2 e 8 caratteri e non contengono caratteri speciali, come uno spazio o due punti. Il codice di stato, QC descrizione deve essere compresa tra 2 e 30 caratteri di lunghezza. + + + + +







+







+ FINE +
+ \n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') + { + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } + } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

\n"; + echo "Demuestre La Cuenta De los Plomos De Dialable -

\n"; + echo "CAMPAIGN: $campaign_id
\n"; + echo "LISTE: $camp_lists
\n"; + echo "ESITI: $dial_statuses
\n"; + echo "FILTRO: $lead_filter_id
\n"; + echo "CALL TIME: $local_call_time

\n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

\n"; + echo "\n"; + + exit; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=7111111 view sample script with test variables +###################### + +if ($ADD==7111111) + { + ##### TEST VARIABLES ##### + $vendor_lead_code = 'VENDOR:LEAD;CODE'; + $list_id = 'LISTID'; + $gmt_offset_now = 'GMTOFFSET'; + $phone_code = '1'; + $phone_number = '7275551212'; + $title = 'Mr.'; + $first_name = 'JOHN'; + $middle_initial = 'Q'; + $last_name = 'PUBLIC'; + $address1 = '1234 Main St.'; + $address2 = 'Apt. 3'; + $address3 = 'ADDRESS3'; + $city = 'CHICAGO'; + $state = 'IL'; + $province = 'PROVINCE'; + $postal_code = '33760'; + $country_code = 'USA'; + $gender = 'M'; + $date_of_birth = '1970-01-01'; + $alt_phone = '3125551111'; + $email = 'test@test.com'; + $security_phrase = 'SECUTIRY'; + $comments = 'COMMENTS FIELD'; + $RGfullname = 'JOE AGENT'; + $RGuser = '6666'; + $RGlead_id = '1234'; + $RGcampaign = 'TESTCAMP'; + $RGphone_login = 'gs102'; + $RGgroup = 'TESTCAMP'; + $RGchannel_group = 'TESTCAMP'; + $RGSQLdate = date("Y-m-d H:i:s"); + $RGepoch = date("U"); + $RGuniqueid = '1163095830.4136'; + $RGcustomer_zap_channel = 'Zap/1-1'; + $RGserver_ip = '10.10.10.15'; + $RGSIPexten = 'SIP/gs102'; + $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; + + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_text = stripslashes($row[3]); + + if (eregi("iframe src",$script_text)) + { + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address2); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $RGfullname = eregi_replace(' ','+',$RGfullname); + $RGuser = eregi_replace(' ','+',$RGuser); + $RGlead_id = eregi_replace(' ','+',$RGlead_id); + $RGcampaign = eregi_replace(' ','+',$RGcampaign); + $RGphone_login = eregi_replace(' ','+',$RGphone_login); + $RGgroup = eregi_replace(' ','+',$RGgroup); + $RGchannel_group = eregi_replace(' ','+',$RGchannel_group); + $RGSQLdate = eregi_replace(' ','+',$RGSQLdate); + $RGepoch = eregi_replace(' ','+',$RGepoch); + $RGuniqueid = eregi_replace(' ','+',$RGuniqueid); + $RGcustomer_zap_channel = eregi_replace(' ','+',$RGcustomer_zap_channel); + $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); + $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); + $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + + $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); + $script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); + $script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); + $script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); + $script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); + $script_text = eregi_replace('--A--title--B--',"$title",$script_text); + $script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); + $script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); + $script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); + $script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); + $script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); + $script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); + $script_text = eregi_replace('--A--city--B--',"$city",$script_text); + $script_text = eregi_replace('--A--state--B--',"$state",$script_text); + $script_text = eregi_replace('--A--province--B--',"$province",$script_text); + $script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); + $script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); + $script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); + $script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); + $script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); + $script_text = eregi_replace('--A--email--B--',"$email",$script_text); + $script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); + $script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); + $script_text = eregi_replace('--A--fullname--B--',"$RGfullname",$script_text); + $script_text = eregi_replace('--A--fronter--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--user--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--lead_id--B--',"$RGlead_id",$script_text); + $script_text = eregi_replace('--A--campaign--B--',"$RGcampaign",$script_text); + $script_text = eregi_replace('--A--phone_login--B--',"$RGphone_login",$script_text); + $script_text = eregi_replace('--A--group--B--',"$RGgroup",$script_text); + $script_text = eregi_replace('--A--channel_group--B--',"$RGchannel_group",$script_text); + $script_text = eregi_replace('--A--SQLdate--B--',"$RGSQLdate",$script_text); + $script_text = eregi_replace('--A--epoch--B--',"$RGepoch",$script_text); + $script_text = eregi_replace('--A--uniqueid--B--',"$RGuniqueid",$script_text); + $script_text = eregi_replace('--A--customer_zap_channel--B--',"$RGcustomer_zap_channel",$script_text); + $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); + $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); + $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); + $script_text = eregi_replace("\n","
",$script_text); + + + echo ""; + + echo "Anteprima Script: $script_id
\n"; + echo "
\n"; + echo "
$script_name
\n"; + echo "$script_text\n"; + echo "
\n"; + + echo "\n"; + + exit; + } + + +$ADMIN=$PHP_SELF; +require("admin_header.php"); + + + + + +###################################################################################################### +###################################################################################################### +####### 1 series, ADD NEW forms for inserting new records into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=1 display the ADD NEW USER FORM SCREEN +###################### + +if ($ADD=="1") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
NUOVO UTENTE
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "
Numero Utente: Auto-Generated $NWB#vicidial_users-user$NWE
Numero Utente: $NWB#vicidial_users-user$NWE
Password: $NWB#vicidial_users-pass$NWE
Nome Completo: $NWB#vicidial_users-full_name$NWE
Livello Utente: $NWB#vicidial_users-user_level$NWE
Gruppo Utente:
Login Telefono: $NWB#vicidial_users-phone_login$NWE
Password Telefono: $NWB#vicidial_users-phone_pass$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1A display the COPY USER FORM SCREEN +###################### + +if ($ADD=="1A") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPIA UTENTE\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($LOGuser_level==9) {$levelMAX=10;} + else {$levelMAX=$LOGuser_level;} + + echo "\n"; + echo "\n"; + echo "
Numero Utente: Auto-Generated $NWB#vicidial_users-user$NWE
Numero Utente: $NWB#vicidial_users-user$NWE
Password: $NWB#vicidial_users-pass$NWE
Nome Completo: $NWB#vicidial_users-full_name$NWE
Utente Da Copiare: $NWB#vicidial_users-user$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=11 display the ADD NEW CAMPAIGN FORM SCREEN +###################### + +if ($ADD==11) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
NUOVA CAMPAGNA\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
ID Campagna: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID Campagna: $NWB#vicidial_campaigns-campaign_id$NWE
Nome Campagna: $NWB#vicidial_campaigns-campaign_name$NWE
Descrizione Campagna: $NWB#vicidial_campaigns-campaign_description$NWE
Attivo: $NWB#vicidial_campaigns-active$NWE
Extension del parking: $NWB#vicidial_campaigns-park_ext$NWE
Nombre de fichero Del Parking: $NWB#vicidial_campaigns-park_file_name$NWE
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Permitir Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_campaigns-next_agent_call$NWE
Orario Chiamate: $NWB#vicidial_campaigns-local_call_time$NWE
Casella Vocale: $NWB#vicidial_campaigns-voicemail_ext$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_campaigns-get_call_launch$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=12 display the COPY CAMPAIGN FORM SCREEN +###################### + +if ($ADD==12) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPIA UNA CAMPAGNA\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
ID Campagna: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
ID Campagna: $NWB#vicidial_campaigns-campaign_id$NWE
Nome Campagna: $NWB#vicidial_campaigns-campaign_name$NWE
Campagna da copiare:$NWB#vicidial_campaigns-campaign_id$NWE
NOTA: La copia di una campagna di copiare tutte le impostazioni dal comandante campagna selezionata, ma non si copia una campagna specifica DNC lista se è stato selezionato uno sul master campagna.
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=111 display the ADD NEW LIST FORM SCREEN +###################### + +if ($ADD==111) + { + if ($LOGmodify_lists==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AGGIUNGI NUOVA LISTA\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Lista: Auto-Generated $NWB#vicidial_lists-list_id$NWE
ID Lista: (solo cifre)$NWB#vicidial_lists-list_id$NWE
Nome Lista: $NWB#vicidial_lists-list_name$NWE
Descrizione Lista: $NWB#vicidial_lists-list_description$NWE
Campagna: $NWB#vicidial_lists-campaign_id$NWE
Attivo: $NWB#vicidial_lists-active$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=121 display the ADD NUMBER TO DNC FORM SCREEN and add a new number +###################### + +if ($ADD==121) + { + echo "
\n"; + echo ""; + + $campaigns_list = "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where use_campaign_dnc IN('Y','AREACODE') order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + if (strlen($phone_numbers) > 2) + { + $PN = explode("\n",$phone_numbers); + $PNct = count($PN); + $p=0; + while ($p < $PNct) + { + if ( (ereg('delete',$stage)) and ($LOGdelete_from_dnc > 0) ) + { + ##### BEGIN DELETE FROM DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC non cancellato - Questo numero di telefono non è in Do Not Call List: $PN[$p]\n";} + else + { + $stmt="DELETE FROM vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC DELETED: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
DNC non cancellato - Questo numero di telefono non è in Do Not Call List: $PN[$p] $campaign_id\n";} + else + { + $stmt="DELETE FROM vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC DELETED: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END DELETE FROM DNC ##### + } + else + { + ##### BEGIN ADD TO DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC NO AGREGADO - este número de telefono está en no llama ya lalista: $PN[$p]\n";} + else + { + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$PN[$p]');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC AGREGADO: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN AGREGUE EL NÚMERO A DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DNC NO AGREGADO - este número de telefono está en no llama ya lalista: $PN[$p] $campaign_id\n";} + else + { + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$PN[$p]','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + echo "
DNC AGREGADO: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN ADD NUMBER TO CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END ADD TO DNC ##### + } + $p++; + } + } + + if ($LOGdelete_from_dnc > 0) + {echo "
Aggiungi o Elimina i numeri dall-elenco DNC\n";} + else + {echo "
Aggiungere numeri alla DNC ELENCO\n";} + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } + echo "\n"; + echo "
List:
Numeri di telefono:

(uno per ogni riga il numero di telefono unico)
$NWB#vicidial_list-dnc$NWE
Aggiungere o eliminare:
\n"; + } + + +###################### +# ADD=1111 display the ADD NEW INBOUND GROUP SCREEN +###################### + +if ($ADD==1111) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
NUOVO GRUPPO INBOUND\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
ID Gruppo: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID Gruppo: (senza spazi)$NWB#vicidial_inbound_groups-group_id$NWE
Nome Gruppo: $NWB#vicidial_inbound_groups-group_name$NWE
Colore Gruppo: $NWB#vicidial_inbound_groups-group_color$NWE
Attivo: $NWB#vicidial_inbound_groups-active$NWE
Web Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Casella Vocale: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_inbound_groups-get_call_launch$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1211 display the COPY INBOUND GROUP SCREEN +###################### + +if ($ADD==1211) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPIA GRUPPO INBOUND\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
ID Gruppo: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
ID Gruppo: (senza spazi)$NWB#vicidial_inbound_groups-group_id$NWE
Nome Gruppo: $NWB#vicidial_inbound_groups-group_name$NWE
ID Gruppo Da Copiare: $NWB#vicidial_inbound_groups-group_id$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1311 display the ADD NEW DID SCREEN +###################### + +if ($ADD==1311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
AGGIUNGI UN NUOVO DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
HA Estensione: (senza spazi or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
HA Descrizione:$NWB#vicidial_inbound_dids-did_description$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1411 display the COPY DID SCREEN +###################### + +if ($ADD==1411) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + echo "
COPIA DID\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
HA Estensione: (senza spazi or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
HA Descrizione:$NWB#vicidial_inbound_dids-did_description$NWE
HA Fonte:$NWB#vicidial_inbound_dids-did_pattern$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1511 display the ADD NEW CALL MENU SCREEN +###################### + +if ($ADD==1511) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AGGIUNGI UN NUOVO CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menu ID: (senza spazi or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Menu Nome: $NWB#vicidial_call_menu-menu_name$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
COPIA CALL MENU\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
Menu ID: (senza spazi or special characters)$NWB#vicidial_call_menu-menu_id$NWE
Menu Nome: $NWB#vicidial_call_menu-menu_name$NWE
Fonte Menu: $NWB#vicidial_call_menu-menu_id$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN +###################### + +if ($ADD==11111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + echo "
NUOVO OPERATORE REMOTO\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Inizio ID Utente: (solo cifre, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Numero di Linee: (solo cifre)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Server: $NWB#vicidial_remote_agents-server_ip$NWE
Numero Di Interno Remoto: (numero del dialplan usato per raggiungere gli operatori)$NWB#vicidial_remote_agents-conf_exten$NWE
Esito: $NWB#vicidial_remote_agents-status$NWE
Campagna: $NWB#vicidial_remote_agents-campaign_id$NWE
Gruppi Inbound: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=111111 display the ADD NEW USERS GROUP SCREEN +###################### + +if ($ADD==111111) + { + if ($LOGmodify_usergroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
NUOVO GRUPPO UTENTI\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Gruppo: Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
Gruppo: (senza spazi e punteggiatura)$NWB#vicidial_user_groups-user_group$NWE
Descrizione: (Descrizione del gruppo)$NWB#vicidial_user_groups-group_name$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1111111 display the ADD NEW SCRIPT SCREEN +###################### + +if ($ADD==1111111) + { + if ($LOGmodify_scripts==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AGGIUNGI NUOVO SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Script:: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
ID Script:: (senza spazi e punteggiatura)$NWB#vicidial_scripts-script_id$NWE
Nome Script: (titolo script)$NWB#vicidial_scripts-script_name$NWE
Note Script: $NWB#vicidial_scripts-script_comments$NWE
Attivo: $NWB#vicidial_scripts-active$NWE
Testo Script: "; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=11111111 display the ADD NEW FILTER SCREEN +###################### + +if ($ADD==11111111) + { + if ($LOGmodify_filters==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AGGIUNGI NUOVO FILTRO\n"; + echo "\n"; + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Filtro:Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
ID Filtro: (senza spazi e punteggiatura)$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nome Del Filtro: (breve descrizione del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commenti Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=111111111 display the ADD NEW CALL TIME SCREEN +###################### + +if ($ADD==111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
AGGIUNGI ORARIO CHIAMATE\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
ID Orario Chiamate: (senza spazi e punteggiatura)$NWB#vicidial_call_times-call_time_id$NWE
Nome Orario Chiamate: (breve descrizione dell`orario chiamate)$NWB#vicidial_call_times-call_time_name$NWE
Note Orario Chiamate: $NWB#vicidial_call_times-call_time_comments$NWE
Las opciones del día y del tiempo aparecerán una vez que usted hayacreado la definicio`n del tiempo de la llamada
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1111111111 display the ADD NEW STATE CALL TIME SCREEN +###################### + +if ($ADD==1111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
AGREGUE EL NUEVO TIEMPO DE LA LLAMADA DEL ESTADO\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
Identificacio`n Del Tiempo De la Llamada Del Estado: (senza spazi e punteggiatura)$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: (senza spazi e punteggiatura)$NWB#vicidial_call_times-state_call_time_state$NWE
_ Estado Llamar Tiempo Nombre: (breve descrizione dell`orario chiamate)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada Del Estado: $NWB#vicidial_call_times-call_time_comments$NWE
Las opciones del día y del tiempo aparecerán una vez que usted hayacreado la definicio`n del tiempo de la llamada
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=131111111 display the ADD NEW SHIFT SCREEN +###################### + +if ($ADD==131111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW SHIFT\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Maiusc ID: (senza spazi e punteggiatura)$NWB#vicidial_shifts-shift_id$NWE
Maiusc Nome: (breve descrizione del turno)$NWB#vicidial_shifts-shift_name$NWE
Maiusc Start Time:\n"; + echo "   Fine Time Shift:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Maiusc Lunghezza: $NWB#vicidial_shifts-shift_length$NWE
Maiusc Feriali:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Domenica
\n"; + echo "Lunedi
\n"; + echo "Martedì
\n"; + echo "Mercoledì
\n"; + echo "Giovedi
\n"; + echo "Venerdì
\n"; + echo "Sabato
\n"; + echo "
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=11111111111 display the ADD NEW PHONE SCREEN +###################### + +if ($ADD==11111111111) + { + if ($LOGast_admin_access==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
\n"; + echo ""; + + echo "
AGGIUNGI UN NUOVO TELEFONO\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Interno Telefono: Auto-Generated $NWB#phones-extension$NWE
Interno Telefono: $NWB#phones-extension$NWE
Numero De Dial plan: (solo cifre)$NWB#phones-dialplan_number$NWE
Buzon de voz: (solo cifre)$NWB#phones-voicemail_id$NWE
CallerID De salida: (solo cifre)$NWB#phones-outbound_cid$NWE
Direccion IP del telefono: (optional)$NWB#phones-phone_ip$NWE
Direccion IP del ordenador: (optional)$NWB#phones-computer_ip$NWE
IP Server: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Password: $NWB#phones-pass$NWE
Esito: $NWB#phones-status$NWE
Cuenta Activa: $NWB#phones-active$NWE
Tipo Del telefono: $NWB#phones-phone_type$NWE
Nome Completo: $NWB#phones-fullname$NWE
Compania: $NWB#phones-company$NWE
Foto: $NWB#phones-picture$NWE
Protocollo Client: $NWB#phones-protocol$NWE
Fuso Orario Locale: (No ajustar para el DST)$NWB#phones-local_gmt$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=12111111111 display the ADD NEW PHONE ALIAS SCREEN +###################### + +if ($ADD==12111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
AGGIUNGI UN NUOVO TELEFONO ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Alias ID:$NWB#phones-alias_id$NWE
Alias Nome: $NWB#phones-alias_name$NWE
Telefono Login Lista: (comma separated)$NWB#phones-logins_list$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=13111111111 display the ADD NEW GROUP ALIAS SCREEN +###################### + +if ($ADD==13111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
Aggiungere un nuovo gruppo ALIAS\n"; + echo "\n"; + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Gruppo Alias ID:$NWB#phones-group_alias_id$NWE
Alias Nome Gruppo: $NWB#phones-group_alias_name$NWE
Numero CallerID: $NWB#phones-caller_id_number$NWE
CallerID Nome: $NWB#phones-caller_id_name$NWE
Attivo:
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=111111111111 display the ADD NEW SERVER SCREEN +###################### + +if ($ADD==111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
AGGIUNGI UN NUOVO SERVER\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Server: $NWB#servers-server_id$NWE
Descrizione Server: $NWB#servers-server_description$NWE
Indirizzo IP del Server: $NWB#servers-server_ip$NWE
Attivo: $NWB#servers-active$NWE
Versione Di Asterisk: $NWB#servers-asterisk_version$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=131111111111 display the ADD NEW CONF TEMPLATE SCREEN +###################### + +if ($ADD==131111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW CONF TEMPLATE\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Template ID: $NWB#vicidial_conf_templates-template_id$NWE
Nome modello: $NWB#vicidial_conf_templates-template_name$NWE
Template Sommario: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=141111111111 display the ADD NEW CARRIER SCREEN +###################### + +if ($ADD==141111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
AGGIUNGI NUOVO VETTORE\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Vettore ID: $NWB#vicidial_server_carriers-carrier_id$NWE
Nome del vettore: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Descrizione: $NWB#vicidial_server_carriers-carrier_description$NWE
Stringa di registrazione: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID: $NWB#vicidial_server_carriers-template_id$NWE
Conto Entrata: $NWB#vicidial_server_carriers-account_entry$NWE
Protocollo: $NWB#vicidial_server_carriers-protocol$NWE
Globals Stringa: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan entrata: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Server: $NWB#vicidial_server_carriers-server_ip$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=151111111111 display the ADD NEW TTS ENTRY SCREEN +###################### + +if ($ADD==151111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW ENTRY TTS\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
TTS Nome: $NWB#vicidial_tts_prompts-tts_name$NWE
Attivo:
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW MUSIC IN ATTESA INGRESSO\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $NWB#vicidial_music_on_hold-moh_id$NWE
Music On Hold Nome: $NWB#vicidial_music_on_hold-moh_name$NWE
Ordine casuale:
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
ADD NEW VOICEMAIL BOX\n"; + echo "\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Casella Vocale ID: $NWB#vicidial_voicemail-voicemail_id$NWE
Pass: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Attivo:
Email:$NWB#vicidial_voicemail-email$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN +###################### + +if ($ADD==1111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
CREA UNA NUOVA CONFERENZA\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Número de la Conferencia: (solo cifre)$NWB#conferences-conf_exten$NWE
IP Server: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=11111111111111 display the ADD NEW VICIDIAL CONFERENCE SCREEN +###################### + +if ($ADD==11111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + echo "
CREA UNA NUOVA CONFERENZA VICIDIAL\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Número de la Conferencia: (solo cifre)$NWB#conferences-conf_exten$NWE
IP Server: $NWB#conferences-server_ip$NWE
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + +###################################################################################################### +###################################################################################################### +####### 2 series, validates form data and inserts the new record into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=2 adds the new user to the system +###################### + +if ($ADD=="2") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
UTENTE NON AGGIUNTO - Esiste gia` un utente nel sistema con questo numero utente\n";} + else + { + if (ereg('AUTOGENERA',$user)) + { + $user = 'AUTOGENERA'; + } + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + { + echo "
UTENTE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
il nome e la password devono essere lunghi almeno 2 caratteri\n"; + echo "
è necessario selezionare un gruppo di utenti\n"; + } + else + { + if (ereg('AUTOGENERA',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + echo "
UTENTE AGGIUNTO: $user\n"; + + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass) values('$user','$pass','$full_name','$user_level','$user_group','$phone_login','$phone_pass');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='ADD', record_id='$user', event_code='ADMIN ADD USER', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Attivo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + } + } + + $ADD=3; + } + +###################### +# ADD=2A adds the copied new user to the system +###################### + +if ($ADD=="2A") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
UTENTE NON AGGIUNTO - Esiste gia` un utente nel sistema con questo numero utente\n";} + else + { + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + { + echo "
UTENTE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
user id must be between 2 and 10 characters long\n"; + echo "
il nome e la password devono essere lunghi almeno 2 caratteri\n"; + echo "\n"; + } + else + { + if (ereg('AUTOGEN',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
user_id has been auto-generated: $user
\n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) SELECT \"$user\",campaign_id,campaign_rank,campaign_weight,\"0\" from vicidial_campaign_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='COPY', record_id='$user', event_code='ADMIN COPIA UTENTE', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Attivo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + echo "
USER COPIED: $user copied from $source_user_id\n"; + echo "

\n"; + echo "Click here to go to the user record\n"; + echo "

\n"; + + } + } + exit; + } + +###################### +# ADD=21 adds the new campaign to the system +###################### + +if ($ADD==21) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAGNA NON AGGIUNTA - Esiste gia` una campagna nel sistema con questo ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + { + echo "
CAMPAGNA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; + echo "
il nome della campagna deve essere lungo tra i 6 e i 40 caratteri\n"; + } + else + { + echo "
CAMPAGNA AGGIUNTA: $campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,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,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$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','$SQLdate','Y','DISABLED','','','');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=20 adds copied new campaign to the system +###################### + +if ($ADD==20) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAGNA NON AGGIUNTA - Esiste gia` una campagna nel sistema con questo ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
CAMPAGNA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; + echo "
source L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri\n"; + } + else + { + echo "
CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=22 adds the new campaign status to the system +###################### + +if ($ADD==22) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESITO CAMPAGNA NON AGGIUNTO - Esiste gia` un esito campagna con questo nome\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESITO CAMPAGNA NON AGGIUNTO - esiste gia` un esito globale con questo nome\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
ESITO CAMPAGNA NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; + echo "
il nome dell`esito deve essere lungo tra i 2 e i 30 caratteri\n"; + } + else + { + echo "
STATO PERSONALIZZATO PER CAMPAGNA AGGIUNTO: $campaign_id - $status\n"; + + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $SUB=22; + $ADD=31; + } + + +###################### +# ADD=23 adds the new campaign hotkey to the system +###################### + +if ($ADD==23) + { + $HKstatus_data = explode('-----',$HKstatus); + $status = $HKstatus_data[0]; + $status_name = $HKstatus_data[1]; + + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_hotkeys where campaign_id='$campaign_id' and hotkey='$hotkey' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
CAMPAÚA HOT KEY NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
hotkey must be a single character between 1 and 9 \n"; + echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; + } + else + { + echo "
HOTKEY AGGIUNTA: $campaign_id - $status - $hotkey\n"; + + $stmt="INSERT INTO vicidial_campaign_hotkeys values('$status','$hotkey','$status_name','$selectable','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA HOTKEY', event_sql=\"$SQL_log\", event_notes='Esito: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=23; + $ADD=31; + } + + +###################### +# ADD=25 adds the new campaign lead recycle entry to the system +###################### + +if ($ADD==25) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
El PLOMO de la CAMPAÑA RECICLA NO AGREGADO - hay ya unconducir-reciclaje para esta campaña con este estado\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT ADDED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos e meno di 43200 secondi o 12 ore\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + } + else + { + echo "
EL PLOMO DE LA CAMPAÑA RECICLA AGREGADO: $campaign_id - $status - $attempt_delay\n"; + + $stmt="INSERT INTO vicidial_lead_recycle(campaign_id,status,attempt_delay,attempt_maximum,active) values('$campaign_id','$status','$attempt_delay','$attempt_maximum','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=25; + $ADD=31; + } + + +###################### +# ADD=26 adds the new auto alt dial status to the campaign +###################### + +if ($ADD==26) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - hay ya una entrada para esta campaña con este estado\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + } + else + { + echo "
ESTADO AUTO DEL DIAL DEL ALT AGREGADO: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $auto_alt_dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIAL', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA ALT DIAL', event_sql=\"$SQL_log\", event_notes='Esito: $auto_alt_dial_statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=26; + $ADD=31; + } + + +###################### +# ADD=27 adds the new campaign agent pause code entry to the system +###################### + +if ($ADD==27) + { + echo ""; + $stmt="SELECT count(*) from vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Co`DIGO DE LA PAUSA DEL AGENTE NO AGREGADO - hay ya una entrada para esta campaña con este code de la pausa\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
Co`DIGO DE LA PAUSA DEL AGENTE NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + echo "
pause nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; + } + else + { + echo "
EL Co`DIGO DE LA PAUSA DEL AGENTE AGREGo`: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="INSERT INTO vicidial_pause_codes(campaign_id,pause_code,pause_code_name,billable) values('$campaign_id','$pause_code','$pause_code_name','$billable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Codice Pausa: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=27; + $ADD=31; + } + + +###################### +# ADD=28 adds new status to the campaign dial statuses +###################### + +if ($ADD==28) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESITO CHIAMATA PER CAMPAGNA NON AGGIUNTO - hay ya una entrada para esta campaña con este estado\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESITO CHIAMATA PER CAMPAGNA NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + } + else + { + echo "
ESITO CHIAMATA PER CAMPAGNA AGGIUNTO: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + #$SUB=28; + $ADD=31; + } + + +###################### +# ADD=211 adds the new list to the system +###################### + +if ($ADD==211) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
LISTA NON AGGIUNTA - Esiste gia` una lista nel sistema con questo ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + { + echo "
LISTA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La ID de la lista debe estar entre 2 y 8 caracteres en longitud\n"; + echo "
El nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; + echo "
ID Lista must be greater than 100\n"; + } + else + { + echo "
LISTA AGGIUNTA: $list_id\n"; + + $stmt="INSERT INTO vicidial_lists (list_id,list_name,campaign_id,active,list_description,list_changedate) values('$list_id','$list_name','$campaign_id','$active','$list_description','$SQLdate');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='ADD', record_id='$list_id', event_code='ADMIN ADD LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311; + } + + + +###################### +# ADD=2111 adds the new inbound group to the system +###################### + +if ($ADD==2111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GRUPPO NON AGGIUNTO - l`ID specificato e` associato ad un gruppo gia` presente in sistema\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPPO NON AGGIUNTO - per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L`ID deve essere lungo tra i 2 e i 20 caratteri e non deve contenere ' -+'.\n"; + echo "
Il nome ed il colore del gruppo devono essere lunghi almeno 2 caratteri\n"; + } + 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,web_form_address_two,start_call_url,dispo_call_url) 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); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; + $rslt=mysql_query($stmtA, $link); + + echo "
GRUPPO AGGIUNTO: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='ADD', record_id='$group_id', event_code='ADMIN ADD INBOUND GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2011 adds copied inbound group to the system +###################### + +if ($ADD==2011) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GRUPPO NON AGGIUNTO - l`ID specificato e` associato ad un gruppo gia` presente in sistema\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
GRUPPO NON AGGIUNTO - per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L`ID deve essere lungo tra i 2 e i 20 caratteri e non deve contenere ' -+'.\n"; + echo "
Il nome ed il colore del gruppo devono essere lunghi almeno 2 caratteri\n"; + } + 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,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); + + echo "
GRUPPO AGGIUNTO: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN COPIA GRUPPO INBOUND', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2311 adds the new did to the system +###################### + +if ($ADD==2311) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NON HA AGGIUNTO - vi è già un fatto per il sistema con questo ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NON HA AGGIUNTO - vi è già un fatto per il sistema con questa estensione\n";} + else + { + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + { + echo "
NON HA AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern $did_description - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='ADD', record_id='$did_id', event_code='ADMIN ADD DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3311; + } + + +###################### +# ADD=2411 adds copied did to the system +###################### + +if ($ADD==2411) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
NON HA AGGIUNTO - vi è già un fatto per il sistema con questa estensione\n";} + else + { + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + { + echo "
NON HA AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
DID ADDED: $did_pattern - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='COPY', record_id='$did_id', event_code='ADMIN COPIA DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3311; + } + + +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL menu non AGGIUNTI - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
CALL menu non AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Call Menu ID deve essere compresa tra 2 e 50 caratteri di lunghezza e non contengono ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
CALL MENU AGGIUNTO: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CALL menu non AGGIUNTI - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
CALL menu non AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Call Menu ID deve essere compresa tra 2 e 50 caratteri di lunghezza e non contengono ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CALL MENU AGGIUNTO: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=21111 adds new remote agents to the system +###################### + +if ($ADD==21111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_remote_agents where server_ip='$server_ip' and user_start='$user_start';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
AGENTES ALEJADOS NO AGREGADOS - hay ya una entrada alejada de los agentes comenzando con esta ID del usuario\n";} + else + { + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENTES ALEJADOS NO AGREGADOS - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El comienzo de la ID del usuario y la extension externa deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; + $rslt=mysql_query($stmt, $link); + + echo "
OPERATORE REMOTO AGGIUNTO: $user_start\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='ADD', record_id='$user_start', event_code='ADMIN ADD REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000; + } + +###################### +# ADD=211111 adds new user group to the system +###################### + +if ($ADD==211111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
GRUPO de USUARIO NO AGREGADO - hay ya una entrada del grupo de usuario con este nombre\n";} + else + { + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
GRUPO de USUARIO NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El nombre y la descripcio`n de grupo deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; + $rslt=mysql_query($stmt, $link); + + echo "
GRUPPO UTENTI AGGIUNTO: $user_group\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='ADD', record_id='$user_group', event_code='ADMIN NUOVO GRUPPO UTENTI', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + $ADD=100000; + } + +###################### +# ADD=2111111 adds new script to the system +###################### + +if ($ADD==2111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SCRIPT NON AGGIUNTO - hay ya una entrada de la escritura con este nombre\n";} + else + { + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
SCRIPT NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El nombre, la descripcio`n y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + echo "
SCRIPT AGGIUNTO: $script_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPT', event_type='ADD', record_id='$script_id', event_code='ADMIN AGGIUNGI SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=1000000; + } + + +###################### +# ADD=21111111 adds new filter to the system +###################### + +if ($ADD==21111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
FILTRO NON AGGIUNTO - Esiste gia` un altro filtro con questo ID\n";} + else + { + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRO NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Filtro, nome e SQL devono essere lunghi almeno 2 caratteri\n"; + } + 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='" . mysql_real_escape_string($lead_filter_sql) . "';"; + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|";} + echo "
FILTRO AGGIUNTO: $lead_filter_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRI', event_type='ADD', record_id='$lead_filter_id', event_code='ADMIN AGGIUNGI FILTRO', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000000; + } + + +###################### +# ADD=211111111 adds new call time definition to the system +###################### + +if ($ADD==211111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA NO AGREGADA - hay ya una entrada de tiempo de la llamada con esta identificacio`n\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La identificacio`n del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
ORARIO CHIAMATE AGGIUNTO: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111; + } + + +###################### +# ADD=2111111111 adds new state call time definition to the system +###################### + +if ($ADD==2111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - hay ya una entrada de tiempo de la llamada con esta identificacio`n\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Indique que identificacio`n del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
ORARIO CHIAMATE PER STATO AGGIUNTO: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES_STATE', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111; + } + + +###################### +# ADD=231111111 adds new shift definition to the system +###################### + +if ($ADD==231111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SHIFT DEFINIZIONE NON AGGIUNTO - esiste già una voce con questo passaggio ID\n";} + else + { + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
SHIFT DEFINIZIONE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Maiusc ID e il nome deve essere di almeno 2 caratteri\n"; + echo "
Start Time Shift 4 cifre devono essere di lunghezza e da tempo una valida\n"; + echo "
Maiusc Lunghezza deve essere di 5 caratteri di lunghezza e di 24 ore o meno\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
SHIFT AGGIUNTI:$shift_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='ADD', record_id='$shift_id', event_code='ADMIN ADD SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111; + } + + +###################### +# ADD=21111111111 adds new phone to the system +###################### + +if ($ADD==21111111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
telefonO NO AGREGADO - hay ya un telefono en el sistema con esta extension/servidor\n";} + else + { + $stmt="SELECT count(*) from phones where login='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - vi è già un telefono nel sistema con questo login\n";} + else + { + $stmt="SELECT count(*) from phones_alias where alias_id='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - vi è già un alias Telefono nel sistema con questo login\n";} + else + { + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
PHONE NOT ADDED - there is already a Casella Vocale ID in the system with this ID\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
telefonO NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
I seguenti campi devono disporre di dati: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
TELEFONO AGGIUNTO\n"; + + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + } + $ADD=31111111111; + } + + +###################### +# ADD=22111111111 adds new phone alias to the system +###################### + +if ($ADD==22111111111) + { + echo ""; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ALIAS TELEFONO NON AGGIUNTO - vi è già un Telefono Alias nel sistema con questo ID\n";} + else + { + $stmt="SELECT count(*) from phones where login='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ALIAS TELEFONO NON AGGIUNTO - vi è già un Telefono Login nel sistema con questo ID\n";} + else + { + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
ALIAS TELEFONO NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
TELEFONO ALIAS AGGIUNTO\n"; + + $stmt="INSERT INTO phones_alias (alias_id,alias_name,logins_list) values('$alias_id','$alias_name','$logins_list');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='ADD', record_id='$alias_id', event_code='ADMIN ADD TELEFONO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=32111111111; + } + + +###################### +# ADD=23111111111 adds new group alias to the system +###################### + +if ($ADD==23111111111) + { + echo ""; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ALIAS GRUPPO NON AGGIUNTO - vi è già un Telefono Alias nel sistema con questo ID\n";} + else + { + if (preg_match("/AGENT_PHONE|CUSTOMER|CAMPAIGN|NONE/",$group_alias_id)) + {echo "
ALIAS GRUPPO NON AGGIUNTO - non è possibile utilizzare le parole riservate nel gruppo alias\n";} + else + { + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ALIAS GRUPPO NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
GRUPPO ALIAS AGGIUNTO\n"; + + $stmt="INSERT INTO groups_alias (group_alias_id,group_alias_name,caller_id_number,caller_id_name,active) values('$group_alias_id','$group_alias_name','$caller_id_number','$caller_id_name','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='ADD', record_id='$group_alias_id', event_code='ADMIN ADD GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=33111111111; + } + + +###################### +# ADD=211111111111 adds new server to the system +###################### + +if ($ADD==211111111111) + { + echo ""; + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
SERVER NON AGGIUNTO - Esiste gia` un altro server nel sistema con questo ID\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVER NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
SERVER AGGIUNTO\n"; + + $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='ADD', record_id='$server_id', event_code='ADMIN ADD SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111111; + } + + +###################### +# ADD=221111111111 adds the new vicidial server trunk record to the system +###################### + +if ($ADD==221111111111) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - el número de troncos vicidial es demasiado alto: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - hay ya un expediente del servidor-tronco para esta campaña\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; + } + else + { + echo "
EL EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL AGREGo`: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + $stmt="INSERT INTO vicidial_server_trunks(server_ip,campaign_id,dedicated_trunks,trunk_restriction) values('$server_ip','$campaign_id','$dedicated_trunks','$trunk_restriction');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS_TRUNK', event_type='ADD', record_id='$server_ip', event_code='ADMIN ADD SERVER TRUNK', event_sql=\"$SQL_log\", event_notes='campaign: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=311111111111; + } + + +###################### +# ADD=231111111111 adds new conf template to the system +###################### + +if ($ADD==231111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CONF TEMPLATE NON AGGIUNTO - vi è già un modello del sistema con questo ID\n";} + else + { + if (strlen($template_id) < 2) + {echo "
CONF TEMPLATE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
CONF TEMPLATE AGGIUNTO\n"; + + $stmt="INSERT INTO vicidial_conf_templates (template_id,template_name,template_contents) values('$template_id','$template_name','$template_contents');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='ADD', record_id='$template_id', event_code='ADMIN ADD CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111; + } + + +###################### +# ADD=241111111111 adds new server carrier to the system +###################### + +if ($ADD==241111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Vettore non AGGIUNTO - vi è già un elemento portante del sistema con questo ID\n";} + else + { + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + {echo "
Vettore non AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
CARRIER ADDED\n"; + + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='ADD', record_id='$carrier_id', event_code='ADMIN ADD CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111; + } + + +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
TTS iscrizione non AGGIUNTI - c-è già una voce TTS nel sistema con questo ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
TTS iscrizione non AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
TTS Entry Aggiunto\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
Music On Hold iscrizione non AGGIUNTI - c-è già una voce moh nel sistema con questo ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music On Hold iscrizione non AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
Music On Hold Entry Aggiunto\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VOICEMAIL BOX NON AGGIUNTI - vi è già una casella di posta vocale nel sistema con questo ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VOICEMAIL BOX NON AGGIUNTI - c-è già un telefono cellulare nel sistema, con questo messaggio vocale ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
VOICEMAIL BOX NON AGGIUNTI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
VOICEMAIL BOX AGGIUNTO\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + +###################### +# ADD=2111111111111 adds new conference to the system +###################### + +if ($ADD==2111111111111) + { + echo ""; + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CONFERENZA NON AGGIUNTA - Esiste gia` una conferenza nel sistema con questo ID e server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENZA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
CONFERENZA AGGIUNTA\n"; + + $stmt="INSERT INTO conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111111; + } + + +###################### +# ADD=21111111111111 adds new vicidial conference to the system +###################### + +if ($ADD==21111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENZA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
VICIDIAL CONFERENZA AGGIUNTA\n"; + + $stmt="INSERT INTO vicidial_conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=31111111111111; + } + + +###################### +# ADD=221111111111111 adds the new system status to the system +###################### + +if ($ADD==221111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESITO DI DEFAULT NON AGGIUNTO - there is already a campaign-status in the system with this name: $row[0]\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
ESITO DI DEFAULT NON AGGIUNTO - there is already a global-status in the system with this name\n";} + else + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
ESITO DI DEFAULT NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
l`esito deve essere lungo tra 1 e 8 caratteri\n"; + echo "
il nome dell`esito deve essere lungo tra i 2 e i 30 caratteri\n"; + } + else + { + echo "
ESITO DI DEFAULT AGGIUNTO: $status_name - $status\n"; + + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='ADD', record_id='$status', event_code='ADMIN ADD SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=321111111111111; + } + + +###################### +# ADD=231111111111111 adds the new status category to the system +###################### + +if ($ADD==231111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
CATEGORIA DI ESITI NON AGGIUNTA - Esiste gia` una categoria di esiti con questo ID: $row[0]\n";} + else + { + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + { + echo "
CATEGORIA DI ESITI NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
L` ID deve essere lungo tra i 2 e i 50 caratteri\n"; + echo "
il nome deve essere lungo tra i 2 e i 50 caratteri\n"; + } + else + { + echo "
STATUS CATEGORIA ADDED: $vsc_id - $vsc_name\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
ERRORE: Ci sono gia` 4 Categorie di Stato attivi nel display TimeOnVDAD\n"; + } + + $stmt="INSERT INTO vicidial_status_categories (vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category) values('$vsc_id','$vsc_name','$vsc_description','$tovdad_display','$sale_category','$dead_lead_category');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='ADD', record_id='$vsc_id', event_code='ADMIN ADD STATUS CATEGORIA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111111; + } + + + +###################### +# ADD=241111111111111 adds the new qc status code to the system +###################### + +if ($ADD==241111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
QC CODICE STATO NON AGGIUNTO- vi è già un qc codice di stato del sistema con questo nome: $row[0]\n";} + else + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC CODICE STATO NON AGGIUNTO- Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
codice deve essere compreso tra 1 e 8 caratteri di lunghezza\n"; + echo "
nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; + } + else + { + echo "
QC STATUS CODICE AGGIUNTO:$code_name - $code\n"; + + $stmt="INSERT INTO vicidial_qc_codes (code,code_name) values('$code','$code_name');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCSTATUSES', event_type='ADD', record_id='$code', event_code='ADMIN ADD QC STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111111; + } + + + +###################################################################################################### +###################################################################################################### +####### 4 series, record modifications submitted and DB is modified, then on to 3 series forms below +###################################################################################################### +###################################################################################################### + + + +###################### +# ADD=4A submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4A") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
UTENTE MODIFICATO - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Attivo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4B submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4B") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
UTENTE MODIFICATO - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Attivo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4 submit user modifications to the system +###################### + +if ($ADD==4) + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La contraseña y el nombre completo cada ot de la necesidad sean por lo menos 2 caracteres en longitud\n"; + } + else + { + echo "
UTENTE MODIFICATO: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Attivo'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3; # go to user modification below + } + +###################### +# ADD=41 submit campaign modifications to the system - DETAIL +###################### + +if ($ADD==41) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $survey_camp_record_dir = '/home/survey'; + $survey_dtmf_digits = '1238'; + $survey_first_audio_file = 'US_pol_survey_hello'; + $survey_method = 'AGENT_XFER'; + $survey_ni_audio_file = ''; + $survey_ni_digit = '8'; + $survey_ni_status = 'NI'; + $survey_no_response_action = 'OPTIN'; + $survey_opt_in_audio_file = 'US_pol_survey_transfer'; + $survey_response_digit_map = '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|'; + $survey_xfer_exten = '8300'; + $voicemail_ext = ''; + $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
ATTIVO LISTE CAMBIAMENTO"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
CAMPAÚA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; + echo "
|$campaign_name|$active|\n"; + } + else + { + echo "
CAMPAGNA MODIFICATA: $campaign_id\n"; + + if ( ($dial_method != 'MANUAL') and ($dial_method != 'INBOUND_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; + } + else + { + if ($dial_level_override > 0) + { + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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', $adlSQL 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',drop_action='$drop_action',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',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + if ($reset_hopper == 'Y') + { + echo "
REAJUSTE DE LA TOLVA DEL PLOMO DE LA CAMPAÚA\n"; + echo "
- Espera 1 minuto antes de marcar el número siguiente\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=42 modify/delete campaign status in the system +###################### + +if ($ADD==42) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESTADO de la CAMPAÚA NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; + echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO: $campaign_id - $status\n"; + + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
ESITO PERSONALIZZATO PER CAMPAGNA MODIFICATO: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=43 delete campaign hotkey in the system +###################### + +if ($ADD==43) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
CAMPAÚA HOT KEY NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la ID de la campaña necesita ser por lo menos 2 caracteres en longitud\n"; + echo "
el estado de la campaña necesita ser por lo menos los caracteres 1 en longitud\n"; + echo "
the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
LA CAMPAÚA DE ENCARGO HOT KEY SUPRIMIÚ: $campaign_id - $status - $hotkey\n"; + + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Esito: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=44 submit campaign modifications to the system - Basic View +###################### + +if ($ADD==44) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $voicemail_ext = ''; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
ATTIVO LISTE CAMBIAMENTO"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
CAMPAÚA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el nombre de la campaña necesita ser por lo menos 6 caracteres en longitud\n"; + } + else + { + echo "
CAMPAGNA MODIFICATA: $campaign_id\n"; + + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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',hopper_level='$hopper_level', $adlSQL lead_filter_id='$lead_filter_id',dial_method='$dial_method',adaptive_intensity='$adaptive_intensity',campaign_changedate='$SQLdate',list_order_mix='$list_order_mix' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_hopper == 'Y') + { + echo "
REAJUSTE DE LA TOLVA DEL PLOMO DE LA CAMPAÚA\n"; + echo "
- Espera 1 minuto antes de marcar el número siguiente\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=34; # go to campaign modification form below + } + + +###################### +# ADD=45 modify campaign lead recycle in the system +###################### + +if ($ADD==45) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
CAMPAIGN LEAD RECYCLE NOT MODIFIED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos e meno di 43200 secondi o 12 ore\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + } + else + { + echo "
CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=47 modify agent pause code in the system +###################### + +if ($ADD==47) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
Co`DIGO DE LA PAUSA DEL AGENTE NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
pause_code must be between 1 and 6 characters in length\n"; + echo "
pause_nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza\n"; + } + else + { + echo "
AGENT PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=48 modify campaign QC settings in the system +###################### +if ($ADD==48) + { + if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
QC IMPOSTAZIONI NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
IMPOSTAZIONI CQ MODIFICATI: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=40A modify campaign survey settings in the system +###################### + +if ($ADD=='40A') + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
INDAGINE IMPOSTAZIONI NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + } + else + { + echo "
INDAGINE SETTINGS MODIFICATI: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=49 modify campaign list mix in the system +###################### + +if ($ADD==49) + { + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### + if ($stage=='MODIFY') + { + echo ""; + + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; + + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) + { + echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $list_id\n"; + } + } + + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
MIX LISTA NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
MIX LISTA NON MODIFICATO: Non puoi cancellare l`ultimo list_id da un mix di liste\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA MODIFICATO: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
MIX LISTA NON AGGIUNTO- Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + echo "
vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
MIX LISTA NON AGGIUNTO- Esiste gia` un mix di lista con questo ID\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN AGGIUNGI CAMPAGNA LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA AGGIUNTO: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MIX LISTA NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA CANCELLATO: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
MIX LISTA NON ATTIVATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='Elenco Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
MIX LISTA ATTIVATO: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=411 submit list modifications to the system +###################### + +if ($ADD==411) + { + if ($LOGmodify_lists==1) + { + echo ""; + + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + { + echo "
LISTA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el nombre de la lista debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
LISTA MODIFICATA: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_list == 'Y') + { + echo "
RESET ESITI CONTATTI DELLA LISTA CHIAMATI\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311; # go to list modification form below + } + + +###################### +# ADD=4111 modify in-group info in the system +###################### + +if ($ADD==4111) + { + if ($LOGmodify_ingroups==1) + { + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) + { + echo "
GRUPO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el color del nombre de grupo y del grupo debe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
GRUPPO MODIFICATO: $group_id\n"; + + $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_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3111; # go to in-group modification form below + } + + +###################### +# ADD=4311 modify did info in the system +###################### + +if ($ADD==4311) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
did_extension must be at least 1 character in length\n"; + } + else + { + echo "
HA MODIFICATO: $did_pattern\n"; + + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3311; # go to did modification form below + } + + +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
CALL MENU NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
menu_id must be at least 1 character in length\n"; + } + else + { + echo "
CALL MENU MODIFICATI: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + if ($LOGmodify_remoteagents==1) + { + echo ""; + + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
AGENTES ALEJADOS NO MODIFICADOS - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El comienzo de la ID del usuario y la extension externa deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
LOS AGENTES ALEJADOS SE MODIFICARON\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below + } + + +###################### +# ADD=411111 modify user group info in the system +###################### + +if ($ADD==411111) + { + if ($LOGmodify_usergroups==1) + { + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
GRUPO de USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El nombre y la descripcio`n de grupo deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); + + echo "
GRUPPO UTENTI MODIFICATO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY Utente Group', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111; # go to user group modification form below + } + + +###################### +# ADD=4111111 modify script in the system +###################### + +if ($ADD==4111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
SCRIPT NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
El nombre, la descripcio`n y el texto de la escritura deben ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $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); + + echo "
SCRIPT MODIFICATO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPT', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3111111; # go to script modification form below + } + + +###################### +# ADD=41111111 modify filter in the system +###################### + +if ($ADD==41111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
FILTRO NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Filtro, nome e SQL devono essere lunghi almeno 2 caratteri\n"; + } + else + { + $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); + + echo "
FILTRO MODIFICATO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRI', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31111111; # go to filter modification form below + } + + +###################### +# ADD=411111111 modify call time in the system +###################### + +if ($ADD==411111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
TIEMPO DE LA LLAMADA NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
La identificacio`n del tiempo de la llamada y el nombre deben ser porlo menos 2 caracteres en longitud\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TIEMPO DE LA LLAMADA MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111111; # go to call time modification form below + } + + +###################### +# ADD=4111111111 modify state call time in the system +###################### + +if ($ADD==4111111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Indique que identificacio`n del tiempo de la llamada, nombre y estadodebe ser por lo menos 2 caracteres en longitud\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TIEMPO DE LA LLAMADA DEL ESTADO MODIFICADO\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below + } + + +###################### +# ADD=431111111 modify shift in the system +###################### + +if ($ADD==431111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
SHIFT DEFINITION NOT MODIFIED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Maiusc ID e il nome deve essere di almeno 2 caratteri\n"; + echo "
Start Time Shift 4 cifre devono essere di lunghezza e da tempo una valida\n"; + echo "
Maiusc Lunghezza deve essere di 5 caratteri di lunghezza e di 24 ore o meno\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
SHIFT MODIFICATI\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=331111111; # go to shift modification form below + } + + +###################### +# ADD=41111111111 modify phone record in the system +###################### + +if ($ADD==41111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
TELEFONO NON MODIFICATO - Esiste gia` un Telefono nel sistema con questo interno\/server\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
TELEFONO NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
TELEFONO MODIFICATO: $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='" . 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', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFICAR EL telefonO', event_sql=\"$SQL_log\", event_notes='IP Server: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below + } + + +###################### +# ADD=42111111111 modify phone alias record in the system +###################### + +if ($ADD==42111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
ALIAS TELEFONO NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
TELEFONO ALIAS MODIFICATI: $alias_id\n"; + + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFICA ALIAS TELEFONO', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below + } + + +###################### +# ADD=43111111111 modify group alias record in the system +###################### + +if ($ADD==43111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
ALIAS GRUPPO NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
GRUPPO ALIAS MODIFICATI: $alias_id\n"; + + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFICA GRUPPO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below + } + + +###################### +# ADD=411111111111 modify server record in the system +###################### + +if ($ADD==411111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
SERVER NOT MODIFIED - there is already a server in the system with this server_id\n";} + else + { + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
SERVIDOR NO MODIFICADO - hay ya un servidor en el sistema con este server_ip\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
SERVIDOR NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
SERVER MODIFICATO: $server_ip\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFICAR EL SERVIDOR', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=421111111111 modify vicidial server trunks record in the system +###################### + +if ($ADD==421111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO - el número de troncos vicidial es demasiado alto: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + echo "
los troncos deben ser un dígito a partir de la 0 a 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL MODIFICADO: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERBauli', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFICAR EL SERVIDOR TRUNK', event_sql=\"$SQL_log\", event_notes='Campagna: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=431111111111 modify conf template record in the system +###################### '$template_id','$template_name','$template_contents' + +if ($ADD==431111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
CONF TEMPLATE NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFICA TEMPLATE CONF', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below + } + + +###################### +# ADD=441111111111 modify carrier record in the system +###################### + +if ($ADD==441111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
VETTORE NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + echo "
VETTORE MODIFICATI: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFICA DEL VETTORE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
TTS iscrizione non MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
TTS voce modificata: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music On Hold iscrizione non MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Music On Hold voce modificata: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
Music On Hold iscrizione non MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
Music On Hold voce modificata: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
VOICEMAIL BOX NON MODIFICATI - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
VOICEMAIL BOX MODIFICATI: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below + } + + +###################### +# ADD=4111111111111 modify conference record in the system +###################### + +if ($ADD==4111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
CONFERENCIA - hay ya una conferencia en el sistema con esta extension - servidor NO MODIFICADO\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
CONFERENCIA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
CONFERENCIA MODIFICADA: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below + } + + +###################### +# ADD=41111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==41111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
VICIDIAL CONFERENCIA - hay ya una conferencia en el sistema con esta extension - servidor NO MODIFICADO\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
VICIDIAL CONFERENCIA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + echo "
VICIDIAL CONFERENCIA MODIFICADA: $conf_exten\n"; + + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below + } + + +###################### +# ADD=411111111111111 modify vicidial system settings +###################### + +if ($ADD==411111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + echo "
IMPOSTAZIONI DI SISTEMA MODIFICATE\n"; + + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSETTINGS', event_type='MODIFY', record_id='system_settings', event_code='ADMIN MODIFY SYSTEM SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111111111111; # go to vicidial system settings form below + } + + +###################### +# ADD=421111111111111 modify/delete system status in the system +###################### + +if ($ADD==421111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($status) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$status)) ) + { + echo "
ESITO DI DEFAULT NON ELIMINATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado de sistema no puede ser un estado reservado:B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
el estado de sistema necesita ser por lo menos los caracteres 1 enlongitud\n"; + } + else + { + echo "
SYSTEM STATUS DELETED: $status\n"; + + $stmt="DELETE FROM vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='DELETE', record_id='$status', event_code='ADMIN DELETE SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
ESITO DI DEFAULT NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado de sistema necesita ser por lo menos los caracteres 1 enlongitud\n"; + echo "
il nome di un esito di default deve essere lungo almeno 1 carattere\n"; + } + else + { + echo "
ESITO DI DEFAULT MODIFICATO: $status\n"; + + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='MODIFY', record_id='$status', event_code='ADMIN MODIFY SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=321111111111111; # go to system settings modification form below + } + + +###################### +# ADD=431111111111111 modify/delete status category in the system +###################### + +if ($ADD==431111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + { + echo "
CATEGORIA ESITI NON MODIFICATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la categoria di esiti non puo` essere una categoria riservata: UNDEFINED\n"; + echo "
il nome delle categorie di esiti deve essere lungo almeno 2 caratteri\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
CATEGORIA ESISI CANCELLATA: $vsc_id\n"; + + $stmt="DELETE FROM vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE STATUS CATEGORIA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
CATEGORIA ESITI MODIFICATA: $vsc_id\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
ERRORE: Ci sono gia` 4 Categorie di Stato attivi nel display TimeOnVDAD\n"; + } + + $stmt="UPDATE vicidial_status_categories SET vsc_name='$vsc_name',vsc_description='$vsc_description',tovdad_display='$tovdad_display',sale_category='$sale_category',dead_lead_category='$dead_lead_category' where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY STATUS CATEGORIA', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=331111111111111; # go to system settings modification form below + } + + +###################### +# ADD=441111111111111 modify/delete qc status code in the system +###################### + +if ($ADD==441111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
QC CODICE STATO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
the qc status code cannot be a reserved esito: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
qc il codice di stato deve essere di almeno 1 caratteri di lunghezza\n"; + } + else + { + echo "
QC STATUS CODICE DELETED:$code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
QC CODICE STATO NON MODIFICATI- Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
qc il codice di stato deve essere di almeno 1 caratteri di lunghezza\n"; + echo "
qc stato il nome in codice deve essere di almeno 1 caratteri di lunghezza\n"; + } + else + { + echo "
QC CODICE STATO MODIFICATO:$code\n"; + + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below + } + + + + +###################################################################################################### +###################################################################################################### +####### 5 series, delete records confirmation +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=5 confirmation before deletion of user +###################### + +if ($ADD==5) + { + echo ""; + + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + { + echo "
UTENTE NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Utente be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIo`N DE LA CANCELADURA DEL USUARIO: $user\n"; + echo "

Clicca qui per cancellare questo utente $user


\n"; + } + + $ADD='3'; # go to user modification below + } + +###################### +# ADD=51 confirmation before deletion of campaign +###################### + +if ($ADD==51) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + { + echo "
CAMPAGNA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIo`N DE LA CANCELADURA DE LA CAMPAÑA: $campaign_id\n"; + echo "

Clicca qui per cancellare la campagna $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=52 confirmation before logging all agents out of campaign of campaign +###################### + +if ($ADD==52) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
OPERATORI NON DISCONNESSI DALLA CAMPAGNA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFERMA DISCONNESSIONE OPERATORE: $campaign_id\n"; + echo "

Clicca qui per disconnettere tutti gli operatori $campaign_id


\n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record +###################### + +if ($ADD==53) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC NO DESPEJo` PARA LA CAMPAÑA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIo`N CLARA DE VDAC: $campaign_id\n"; + echo "

Chasque aquí para suprimir el más viejo VIVEN expediente en VDACpara $campaign_id


\n"; + } + + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + +###################### +# ADD=511 confirmation before deletion of list +###################### + +if ($ADD==511) + { + echo ""; + + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + { + echo "
LISTA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIo`N DE LA CANCELADURA DE LA LISTA: $list_id\n"; + echo "

Clicca qui per cancellare la lista e tutti i suoi contatti $list_id


\n"; + } + + $ADD='311'; # go to campaign modification below + } + +###################### +# ADD=5111 confirmation before deletion of in-group +###################### + +if ($ADD==5111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + { + echo "
GRUPPO INBOUND NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFERMA ELIMINAZIONE GRUPPO INBOUND: $group_id\n"; + echo "

Clicca qui per cancellare il gruppo inbound $group_id


\n"; + } + + $ADD='3111'; # go to in-group modification below + } + +###################### +# ADD=5311 confirmation before deletion of did +###################### + +if ($ADD==5311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + { + echo "
NON HA ELIMINATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + echo "
LO CONFERMA ELIMINAZIONE: $menu_id\n"; + echo "

Clicca qui per cancellareDID $did_id


\n"; + } + + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU non cancellato - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
menu_id be at least 2 characters in length\n"; + } + else + { + echo "
CALL menu di cancellazione CONFERMA: $menu_id\n"; + echo "

Clicca qui per cancellare CALL MENU $menu_id


\n"; + } + + $ADD='3511'; # go to call menu modification below + } + +###################### +# ADD=51111 confirmation before deletion of remote agent record +###################### + +if ($ADD==51111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + { + echo "
AGENTE ALEJADO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIo`N ALEJADA DE LA CANCELADURA DEL AGENTE: $remote_agent_id\n"; + echo "

Chasque aquí para suprimir el agente alejado $remote_agent_id


\n"; + } + + $ADD='31111'; # go to remote agent modification below + } + +###################### +# ADD=511111 confirmation before deletion of user group record +###################### + +if ($ADD==511111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + { + echo "
GRUPO DE USUARIO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Utente_group be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIo`N DE LA CANCELADURA DEL GRUPO DE USUARIO: $user_group\n"; + echo "

Chasque aquí para suprimir a grupo de usuario $user_group


\n"; + } + + $ADD='311111'; # go to user group modification below + } + +###################### +# ADD=5111111 confirmation before deletion of script record +###################### + +if ($ADD==5111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + { + echo "
SCRIPT NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Script_id must be at least 2 characters in length\n"; + } + else + { + echo "
CONFIRMACIo`N DE LA CANCELADURA DE LA ESCRITURA: $script_id\n"; + echo "

Clicca qui per cancellare lo script $script_id


\n"; + } + + $ADD='3111111'; # go to script modification below + } + +###################### +# ADD=51111111 confirmation before deletion of filter record +###################### + +if ($ADD==51111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + { + echo "
FILTRO NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Filtro deve essere lungo almeno 2 caratteri\n"; + } + else + { + echo "
FILTER DELETION CONFIRMATION: $lead_filter_id\n"; + echo "

Clicca qui per cancellare il filtro$lead_filter_id


\n"; + } + + $ADD='31111111'; # go to filter modification below + } + +###################### +# ADD=511111111 confirmation before deletion of call time record +###################### + +if ($ADD==511111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
TIEMPO DE LA LLAMADA NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud\n"; + } + else + { + echo "
CONFIRMACIo`N DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA: $call_time_id\n"; + echo "

Clicca qui per cancellarecall time $call_time_id


\n"; + } + + $ADD='311111111'; # go to call time modification below + } + +###################### +# ADD=5111111111 confirmation before deletion of state call time record +###################### + +if ($ADD==5111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud\n"; + } + else + { + echo "
CONFIRMACIo`N DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO: $call_time_id\n"; + echo "

Clicca qui per cancellarestate call time $call_time_id


\n"; + } + + $ADD='3111111111'; # go to state call time modification below + } + +###################### +# ADD=531111111 confirmation before deletion of shift record +###################### + +if ($ADD==531111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
SHIFT non eliminati - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + echo "
SHIFT DELETION CONFERMA:$shift_id\n"; + echo "

Clicca qui per cancellare turno $shift_id


\n"; + } + + $ADD='331111111'; # go to call time modification below + } + +###################### +# ADD=51111111111 confirmation before deletion of phone record +###################### + +if ($ADD==51111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
TELEFONO NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; + } + else + { + echo "
CONFIRMACIo`N DE LA CANCELADURA DEL telefonO: $extension - $server_ip\n"; + echo "

Clicca qui per cancellare il telefono $extension - $server_ip


\n"; + } + $ADD='31111111111'; # go to phone modification below + } + + +###################### +# ADD=52111111111 confirmation before deletion of phone alias record +###################### + +if ($ADD==52111111111) + { + echo ""; + + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
ALIAS TELEFONO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + echo "
TELEFONO ALIAS CONFERMA ELIMINAZIONE: $alias_id\n"; + echo "

Clicca qui per cancellare telefono alias $alias_id


\n"; + } + $ADD='32111111111'; # go to phone alias modification below + } + + +###################### +# ADD=53111111111 confirmation before deletion of group alias record +###################### + +if ($ADD==53111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
ALIAS GRUPPO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Gruppo Alias ID must be at least 2 characters in length\n"; + } + else + { + echo "
ALIAS GRUPPO CONFERMA ELIMINAZIONE: $group_alias_id\n"; + echo "

Clicca qui per eliminare gruppo alias $group_alias_id


\n"; + } + $ADD='33111111111'; # go to group alias modification below + } + + +###################### +# ADD=511111111111 confirmation before deletion of server record +###################### + +if ($ADD==511111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
SERVER NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Server be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; + } + else + { + echo "
SERVER DELETION CONFIRMATION: $server_id - $server_ip\n"; + echo "

Clicca qui per cancellare il telefono $server_id - $server_ip


\n"; + } + $ADD='311111111111'; # go to server modification below + } + + +###################### +# ADD=531111111111 confirmation before deletion of conf template record +###################### + +if ($ADD==531111111111) + { + echo ""; + + if (strlen($template_id) < 2) + { + echo "
CONF TEMPLATE NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Template ID essere almeno 2 caratteri\n"; + } + else + { + echo "
CONF TEMPLATE CONFERMA ELIMINAZIONE: $template_id - $template_name\n"; + echo "

Clicca qui per cancellare conf modello $template_id - $template_name


\n"; + } + $ADD='331111111111'; # go to conf template modification below + } + + +###################### +# ADD=541111111111 confirmation before deletion of carrier record +###################### + +if ($ADD==541111111111) + { + echo ""; + + if (strlen($carrier_id) < 2) + { + echo "
Vettore non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Vettore ID essere almeno 2 caratteri\n"; + } + else + { + echo "
CONFERMA ELIMINAZIONE DEL VETTORE: $carrier_id - $carrier_name\n"; + echo "

Clicca qui per cancellare vettore $carrier_id - $carrier_name


\n"; + } + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
TTS iscrizione non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
TTS ENTRATA SOPPRESSIONE CONFERMA: $tts_id - $tts_name\n"; + echo "

Clicca qui per cancellare TTS entrata $tts_id - $tts_name


\n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
Music On Hold iscrizione non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
Music On Hold ENTRATA SOPPRESSIONE CONFERMA: $moh_id - $moh_name\n"; + echo "

Clicca qui per cancellare la musica in attesa dell-entrata $moh_id - $moh_name


\n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
VOICEMAIL BOX non cancellato - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Casella Vocale ID be at least 2 characters in length\n"; + } + else + { + echo "
VOICEMAIL BOX SOPPRESSIONE CONFERMA: $voicemail_id - $fullname\n"; + echo "

Clicca qui per cancellare casella di segreteria telefonica $voicemail_id - $fullname


\n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } + + +###################### +# ADD=5111111111111 confirmation before deletion of conference record +###################### + +if ($ADD==5111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; + } + else + { + echo "
CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Clicca qui per cancellare il telefono $conf_exten - $server_ip


\n"; + } + $ADD='3111111111111'; # go to conference modification below + } + + +###################### +# ADD=51111111111111 confirmation before deletion of vicidial conference record +###################### + +if ($ADD==51111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Conference must be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; + } + else + { + echo "
VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

Clicca qui per cancellare il telefono $conf_exten - $server_ip


\n"; + } + $ADD='31111111111111'; # go to vicidial conference modification below + } + + + +###################################################################################################### +###################################################################################################### +####### 6 series, delete records +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=6 delete user record +###################### + +if ($ADD==6) + { + echo ""; + + if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) + { + echo "
UTENTE NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Utente be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_users where user='$user' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='DELETE', record_id='$user', event_code='ADMIN DELETE USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DEL USUARIO TERMINADA: $user\n"; + echo "

\n"; + } + + $ADD='0'; # go to user list + } + +###################### +# ADD=61 delete campaign record +###################### + +if ($ADD==61) + { + echo ""; + + if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) + { + echo "
CAMPAGNA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_campaigns where campaign_id='$campaign_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_statuses where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_hotkeys where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_callbacks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_lead_recycle where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_server_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_server_trunks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_pause_codes where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaigns_list_mix where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($campaign_id)\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA CANCELADURA DE LA CAMPAÑA TERMINo`: $campaign_id\n"; + echo "

\n"; + } + + $ADD='10'; # go to campaigns list + } + + +###################### +# ADD=62 Logout all agents from a campaign +###################### + +if ($ADD==62) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
OPERATORI NON DISCONNESSI DALLA CAMPAGNA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; + } + else + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='LOGOUT', record_id='$campaign_id', event_code='ADMIN LOGOUT CAMPAIGN AGENTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
DISCONNESSIONE OPERATORI COMPLETATA: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD='31'; # go to campaign modification below + } + + +###################### +# ADD=63 Emergency VDAC Jam Clear +###################### + +if ($ADD==63) + { + if ($LOGmodify_campaigns==1) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
VDAC NO DESPEJo` PARA LA CAMPAÑA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Campagna_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_auto_calls where status='LIVE' and campaign_id='$campaign_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN JAM', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
DE REGISTRO PASADO DE VDAC DESPEJADA PARA LA CAMPAÑA: $campaign_id\n"; + echo "

\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + + +###################### +# ADD=65 delete campaign lead recycle in the system +###################### + +if ($ADD==65) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
EL PLOMO DE LA CAMPAÑA RECICLA NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + echo "
la tentativa retrasa debe ser por lo menos 120 segundos\n"; + echo "
las tentativas máximas deben ser a partir la 1 a 10\n"; + } + else + { + echo "
EL PLOMO DE LA CAMPAÑA RECICLA SUPRIMIDO: $campaign_id - $status - $attempt_delay\n"; + + $stmt="DELETE FROM vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=66 delete auto alt dial status from the campaign +###################### + +if ($ADD==66) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO - este estado del dial del alt del automo`vil no está en esta campaña\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + } + else + { + echo "
ESTADO AUTO DEL DIAL DEL ALT SUPRIMIDO: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $auto_alt_dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIALS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN ALT DIAL', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=26; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=67 delete agent pause code in the system +###################### + +if ($ADD==67) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + { + echo "
Co`DIGO DE LA PAUSA DE LA CAMPAÑA NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
pause code must be between 1 and 6 characters in length\n"; + } + else + { + echo "
CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; + + $stmt="DELETE FROM vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Esito: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=68 remove campaign dial status +###################### + +if ($ADD==68) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
ESITO CAMPAGNA NON RIMOSSO - questo esito di chiamata non e` selezionato per questa campagna\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
ESITO CAMPAGNA NON RIMOSSO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
el estado debe estar entre 1 y 6 caracteres en longitud\n"; + } + else + { + echo "
ESITO CAMPAGNA RIMOSSO: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUSES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Esito: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + #$SUB=28; + $ADD=31; # go to campaign modification form below + } + +###################### +# ADD=611 delete list record and all leads within it +###################### + +if ($ADD==611) + { + echo ""; + + if ( ( strlen($list_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_lists < 1) ) + { + echo "
LISTA NON CANCELLATA - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
List_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_lists where list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + echo "
QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA ($list_id)\n"; + $stmt="DELETE from vicidial_hopper where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
QUITAR LOS PLOMOS DE LA LISTA DE LA TABLA DE VICIDIAL_LIST\n"; + $stmt="DELETE from vicidial_list where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='DELETE', record_id='$list_id', event_code='ADMIN DELETE LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA CANCELADURA DE LA LISTA TERMINo`: $list_id\n"; + echo "

\n"; + } + + $ADD='100'; # go to lists list + } + +###################### +# ADD=6111 delete in-group record +###################### + +if ($ADD==6111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_ingroups < 1) ) + { + echo "
GRUPPO INBOUND NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Group_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_inbound_groups where group_id='$group_id' and group_id NOT IN('AGENTDIRECT') limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_inbound_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='DELETE', record_id='$group_id', event_code='ADMIN DELETE INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
ELIMINAZIONE GRUPPO INBOUND COMPLETATA: $group_id\n"; + echo "

\n"; + } + + $ADD='1000'; # go to in-group list + } + + +###################### +# ADD=6311 delete did record +###################### + +if ($ADD==6311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
NON HA ELIMINATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
did_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_inbound_dids where did_id='$did_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='DELETE', record_id='$did_id', event_code='ADMIN DELETE DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
DELETION HA COMPIUTO: $did_id\n"; + echo "

\n"; + } + + $ADD='1300'; # go to did list + } + +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
CALL MENU non cancellato - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CALL menu di cancellazione PRONTI: $menu_id\n"; + echo "

\n"; + } + + $ADD='1500'; # go to call menu list + } + +###################### +# ADD=61111 delete remote agent record +###################### + +if ($ADD==61111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_remote_agents < 1) ) + { + echo "
AGENTE ALEJADO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Remote_agent_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_remote_agents where remote_agent_id='$remote_agent_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='DELETE', record_id='$remote_agent_id', event_code='ADMIN DELETE REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA ALEJADA DEL AGENTE TERMINADA: $remote_agent_id\n"; + echo "

\n"; + } + + $ADD='10000'; # go to remote agents list + } + +###################### +# ADD=611111 delete user group record +###################### + +if ($ADD==611111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_user_groups < 1) ) + { + echo "
GRUPO DE USUARIO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Utente_group be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_user_groups where user_group='$user_group' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='DELETE', record_id='$user_group', event_code='ADMIN DELETE Utente Group', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DEL GRUPO DE USUARIO TERMINADA: $user_group\n"; + echo "

\n"; + } + + $ADD='100000'; # go to user group list + } + +###################### +# ADD=6111111 delete script record +###################### + +if ($ADD==6111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_scripts < 1) ) + { + echo "
SCRIPT NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Script_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_scripts where script_id='$script_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPT', event_type='DELETE', record_id='$script_id', event_code='ADMIN DELETE SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DE LA ESCRITURA TERMINADA: $script_id\n"; + echo "

\n"; + } + + $ADD='1000000'; # go to script list + } + + +###################### +# ADD=61111111 delete filter record +###################### + +if ($ADD==61111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_filters < 1) ) + { + echo "
FILTRO NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Filtro deve essere lungo almeno 2 caratteri\n"; + } + else + { + $stmt="DELETE from vicidial_lead_filters where lead_filter_id='$lead_filter_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTRI', event_type='DELETE', record_id='$lead_filter_id', event_code='ADMIN DELETE FILTRI', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELLAZIONE FILTRO COMPLETATA: $lead_filter_id\n"; + echo "

\n"; + } + + $ADD='10000000'; # go to filter list + } + + +###################### +# ADD=611111111 delete call times record +###################### + +if ($ADD==611111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
TIEMPO DE LA LLAMADA NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud\n"; + } + else + { + $stmt="DELETE from vicidial_call_times where call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
_ LLAMAR TIEMPO CANCELADURA TERMINAR: $call_time_id\n"; + echo "

\n"; + } + + $ADD='100000000'; # go to call times list + } + + +###################### +# ADD=6111111111 delete state call times record +###################### + +if ($ADD==6111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud\n"; + } + else + { + $stmtA="DELETE from vicidial_state_call_times where state_call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="SELECT call_time_id,ct_state_call_times from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\" order by call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_ids[$o] = "$rowx[0]"; + $sct_states[$o] = "$rowx[1]"; + $o++; + } + $o=0; + while ($sct_to_print > $o) + { + $sct_states[$o] = eregi_replace("\|$call_time_id\|",'|',$sct_states[$o]); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$sct_states[$o]' where call_time_id='$sct_ids[$o]';"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + echo "Regla Del Estado Quitada: $sct_ids[$o]
\n"; + $o++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO TERMINADA: $call_time_id\n"; + echo "

\n"; + } + + $ADD='1000000000'; # go to call times list + } + + +###################### +# ADD=631111111 delete shift record +###################### + +if ($ADD==631111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
SHIFT non eliminati - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Shift ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_shifts where shift_id='$shift_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='DELETE', record_id='$shift_id', event_code='ADMIN DELETE SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SHIFT DELETION Completato: $shift_id\n"; + echo "

\n"; + } + + $ADD='130000000'; # go to shifts list + } + + +###################### +# ADD=61111111111 delete phone record +###################### + +if ($ADD==61111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
TELEFONO NON CANCELLATO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Extension be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from phones where extension='$extension' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='DELETE', record_id='$extension', event_code='ADMIN DELETE PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
LA CANCELADURA DEL telefonO TERMINo`: $extension - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000'; # go to phone list + } + + +###################### +# ADD=62111111111 delete phone alias record +###################### + +if ($ADD==62111111111) + { + echo ""; + + if ( (strlen($alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
ALIAS TELEFONO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Alias ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from phones_alias where alias_id='$alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='DELETE', record_id='$alias_id', event_code='ADMIN DELETE TELEFONO ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TELEFONO ALIAS DELETION COMPIUTI: $alias_id\n"; + echo "

\n"; + } + $ADD='12000000000'; # go to phone alias list + } + + +###################### +# ADD=63111111111 delete group alias record +###################### + +if ($ADD==63111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
ALIAS GRUPPO NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Gruppo Alias ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from groups_alias where group_alias_id='$group_alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='DELETE', record_id='$group_alias_id', event_code='ADMIN Elimina gruppo ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
GRUPPO ALIAS DELETION COMPIUTI: $group_alias_id\n"; + echo "

\n"; + } + $ADD='13000000000'; # go to group alias list + } + + +###################### +# ADD=611111111111 delete server record +###################### + +if ($ADD==611111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
SERVER NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
ID Server be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from servers where server_id='$server_id' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='DELETE', record_id='$server_id', event_code='ADMIN DELETE SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
SERVER DELETION COMPLETED: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='100000000000'; # go to server list + } + + +###################### +# ADD=621111111111 delete vicidial server trunk record in the system +###################### + +if ($ADD==621111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) ) + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO SUPRIMIDO - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
la campaña debe estar entre 3 y 8 caracteres en longitud\n"; + echo "
el server_ip retrasa debe ser por lo menos 7 caracteres\n"; + } + else + { + echo "
EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL SUPRIMIDO: $campaign_id - $server_ip\n"; + + $stmt="DELETE FROM vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERBauli', event_type='DELETE', record_id='$server_ip', event_code='ADMIN DELETE SERVER TRUNK', event_sql=\"$SQL_log\", event_notes='Campagna: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=631111111111 delete conf template record +###################### + +if ($ADD==631111111111) + { + echo ""; + + if ( (strlen($template_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
CONF TEMPLATE NON DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Template ID essere almeno 2 caratteri\n"; + } + else + { + $stmt="UPDATE phones SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_server_carriers SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='DELETE', record_id='$template_id', event_code='ADMIN CANC CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONF TEMPLATE DELETION COMPIUTI: $server_id - $server_ip\n"; + echo "

\n"; + } + $ADD='130000000000'; # go to conf template list + } + + +###################### +# ADD=641111111111 delete carrier record +###################### + +if ($ADD==641111111111) + { + echo ""; + + if ( (strlen($carrier_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Vettore non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Vettore ID essere almeno 2 caratteri\n"; + } + else + { + $stmt="SELECT server_ip from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $CARRIERserver_ip = $row[0]; + + $stmt="DELETE from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$CARRIERserver_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='DELETE', record_id='$carrier_id', event_code='ADMIN CANC VETTORE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
VETTORE DELETION COMPIUTI: $carrier_id\n"; + echo "

\n"; + } + $ADD='140000000000'; # go to carrier list + } + + +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
TTS iscrizione non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
TTS DELETION COMPLETED: $tts_id\n"; + echo "

\n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
Music On Hold iscrizione non DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Music On Hold SOPPRESSIONE PRONTI: $moh_id\n"; + echo "

\n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
VOICEMAIL BOX non cancellato - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Casella Vocale ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
VOICEMAIL BOX SOPPRESSIONE PRONTI: $voicemail_id\n"; + echo "

\n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + +###################### +# ADD=6111111111111 delete conference record +###################### + +if ($ADD==6111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
CONFERENCE NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='1000000000000'; # go to conference list + } + + +###################### +# ADD=61111111111111 delete vicidial conference record +###################### + +if ($ADD==61111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
VICIDIAL CONFERENCE NOT DELETED - Per favore torna indietro e ricontrolla i dati inseriti\n"; + echo "
Conference be at least 2 characters in length\n"; + echo "
IP Server be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
VICIDIAL CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

\n"; + } + $ADD='10000000000000'; # go to vicidial conference list + } + + + + + +###################################################################################################### +###################################################################################################### +####### 3 series, record modification forms +###################################################################################################### +###################################################################################################### + + + + +###################### +# ADD=3 modify user info in the system +###################### + +if ($ADD==3) + { + if ($LOGmodify_users==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
Non hai l`autorizzazione per modificare questo utente: $user\n"; + } + else + { + echo "
MODIFICA UN UTENTE: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} + else + { + if ($LOGalter_agent_interface == "1") + {echo "\n";} + else + {echo "\n";} + } + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSuser_territories_active > 0) + { + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
\n"; + $o++; + } + echo "\n"; + } + + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) + { + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + if ($LOGuser_level > 8) + { + echo "\n"; + + #9BB9FB + #B9CBFD + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
Numero Utente: $user$NWB#vicidial_users-user$NWE
Password: $NWB#vicidial_users-pass$NWE
Nome Completo: $NWB#vicidial_users-full_name$NWE
Livello Utente: $NWB#vicidial_users-user_level$NWE
Gruppo Utente: $NWB#vicidial_users-user_group$NWE
Login Telefono: $NWB#vicidial_users-phone_login$NWE
Password Telefono: $NWB#vicidial_users-phone_pass$NWE
Attivo: $NWB#vicidial_users-active$NWE
Email:$NWB#vicidial_users-optional$NWE
Utente Code: $NWB#vicidial_users-optional$NWE
Main Territorio: $NWB#vicidial_users-optional$NWE
Utente Territori: $Uterrs_list
OPZIONI INTERFACCIA OPERATORE:
El Agente Elige Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
Agente Scegli Territori: $NWB#vicidial_users-agent_choose_territories$NWE
Hot Keys Activo: $NWB#vicidial_users-hotkeys_active$NWE
Servicios repetidos Programar: $NWB#vicidial_users-scheduled_callbacks$NWE
Richiami esclusivi dell`operatore: $NWB#vicidial_users-agentonly_callbacks$NWE
Chiamata Manuale Operatore: $NWB#vicidial_users-agentcall_manual$NWE
Registrazione Vicidial: $NWB#vicidial_users-vicidial_recording$NWE
Trasferimenti Vicidial: $NWB#vicidial_users-vicidial_transfers$NWE
Un Defecto Más cercano Mezclado: $NWB#vicidial_users-closer_default_blended$NWE
Invalidacio`n De la grabacion de VICIDIAL:$NWB#vicidial_users-vicidial_recording_override$NWE
El Agente Altera La Invalidacio`n De los Datos Del Cliente: $NWB#vicidial_users-alter_custdata_override$NWE
Agente Alter clienti Sovrascrive Telefono:$NWB#vicidial_users-alter_custphone_override$NWE
Agente Maiusc esecuzione Sovrascrive: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
Alert Attivato: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
Consentire Alerts: $NWB#vicidial_users-allow_alerts$NWE
Classifiche Campagna:$NWB#vicidial_users-campaign_ranks$NWE
\n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
\n"; + echo "
Gruppi Inbound: $NWB#vicidial_users-closer_campaigns$NWE
\n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
\n"; + echo "
Custom 1: $NWB#vicidial_users-custom_one$NWE
Custom 2: $NWB#vicidial_users-custom_two$NWE
Custom 3: $NWB#vicidial_users-custom_three$NWE
Custom 4: $NWB#vicidial_users-custom_four$NWE
Custom 5: $NWB#vicidial_users-custom_five$NWE
QC Enabled:$NWB#vicidial_users-qc_enabled$NWE
QC Utente Livello:$NWB#vicidial_users-qc_user_level$NWE
QC Pass:$NWB#vicidial_users-qc_pass$NWE
QC Fine:$NWB#vicidial_users-qc_finish$NWE
QC Impegni:$NWB#vicidial_users-qc_commit$NWE
OPZIONI INTERFACCIA AMMINISTRATORE:
Visualizza Report: $NWB#vicidial_users-view_reports$NWE
Modifica Opzioni Interfaccia Operatore: $NWB#vicidial_users-alter_agent_interface_options$NWE
Modifica Utenti: $NWB#vicidial_users-modify_sections$NWE
Cambia la campagna di un operatore: $NWB#vicidial_users-change_agent_campaign$NWE
Cancella Utenti: $NWB#vicidial_users-delete_users$NWE
Modifique A Grupos De Usuario: $NWB#vicidial_users-modify_sections$NWE
Suprima a grupos de usuario: $NWB#vicidial_users-delete_user_groups$NWE
Modifica Liste: $NWB#vicidial_users-modify_sections$NWE
Cancella Liste: $NWB#vicidial_users-delete_lists$NWE
Carica Contatti: $NWB#vicidial_users-load_leads$NWE
Modifica Contatti: $NWB#vicidial_users-modify_leads$NWE
Download liste: $NWB#vicidial_users-modify_leads$NWE
Rapporti Export: $NWB#vicidial_users-export_reports$NWE
Cancellare dalle liste DNC: $NWB#vicidial_users-delete_from_dnc$NWE
Modifica Campagne: $NWB#vicidial_users-modify_sections$NWE
Dettagli Campagna: $NWB#vicidial_users-campaign_detail$NWE
Cancella Campagne: $NWB#vicidial_users-delete_campaigns$NWE
Modifica Gruppi Inbound: $NWB#vicidial_users-modify_sections$NWE
En-Grupos de la cancelacio`n: $NWB#vicidial_users-delete_ingroups$NWE
Modificare DIDs:$NWB#vicidial_users-modify_sections$NWE
Elimina DIDs:$NWB#vicidial_users-delete_ingroups$NWE
Modifica Operatori Remoti: $NWB#vicidial_users-modify_sections$NWE
Suprima los agentes alejados: $NWB#vicidial_users-delete_remote_agents$NWE
Modifica Script: $NWB#vicidial_users-modify_sections$NWE
Cancella Script: $NWB#vicidial_users-delete_scripts$NWE
Modifica Filtri: $NWB#vicidial_users-modify_sections$NWE
Cancella Filtros: $NWB#vicidial_users-delete_filters$NWE
Acceso de AGC Admin: $NWB#vicidial_users-ast_admin_access$NWE
La cancelacio`n de AGC telefona: $NWB#vicidial_users-ast_delete_phones$NWE
Modifique El Tiempo De la Llamadas: $NWB#vicidial_users-modify_call_times$NWE
EliminareOrari Chiamata: $NWB#vicidial_users-delete_call_times$NWE
Modifica Server: $NWB#vicidial_users-modify_sections$NWE
Agente API Accesso:$NWB#vicidial_users-vdc_agent_api_access$NWE
Aggiungi orologio Entra record: $NWB#vicidial_users-add_timeclock_log$NWE
Modificare orologio Entra record: $NWB#vicidial_users-modify_timeclock_log$NWE
Elimina orologio Entra record: $NWB#vicidial_users-delete_timeclock_log$NWE
Shift Manager esecuzione Sovrascrive: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
\n"; + + if ($LOGdelete_users > 0) + { + echo "

CANCELLA QUESTO UTENTE\n"; + } + echo "

Clicca qui per la tabella degli orari dell`utente\n"; + echo "

Clicca qui per visualizzare lo stato dell`utente\n"; + echo "

Clicca qui per le statistiche dell`utente\n"; + echo "

Clicca qui per lutente più giorni status dettaglio relazione\n"; + echo "

Clicca qui per i richiami dell`utente\n"; + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo record
\n"; + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=31 modify campaign info in the system - Detail view +###################### + +if ( ($LOGcampaign_detail < 1) and ($ADD==31) ) {$ADD=34;} # send to Basic if not allowed + +if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==31) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_name = $row[1]; + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $web_form_address = stripslashes($row[11]); + $allow_closers = $row[12]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $campaign_rec_exten = $row[22]; + $campaign_recording = $row[23]; + $campaign_rec_filename = $row[24]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $am_message_exten = $row[27]; + $amd_send_to_vmx = $row[28]; + $xferconf_a_dtmf = $row[29]; + $xferconf_a_number = $row[30]; + $xferconf_b_dtmf = $row[31]; + $xferconf_b_number = $row[32]; + $alt_number_dialing = $row[33]; + $scheduled_callbacks = $row[34]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $drop_call_seconds = $row[36]; + $drop_action = $row[37]; + $safe_harbor_exten = $row[38]; + $display_dialable_count = $row[39]; + $wrapup_seconds = $row[40]; + $wrapup_message = $row[41]; + # $closer_campaigns = $row[42]; + $use_internal_dnc = $row[43]; + $allcalls_delay = $row[44]; + $omit_phone_code = $row[45]; + $dial_method = $row[46]; + $available_only_ratio_tally = $row[47]; + $adaptive_dropped_percentage = $row[48]; + $adaptive_maximum_level = $row[49]; + $adaptive_latest_server_time = $row[50]; + $adaptive_intensity = $row[51]; + $adaptive_dl_diff_target = $row[52]; + $concurrent_transfers = $row[53]; + $auto_alt_dial = $row[54]; + $auto_alt_dial_statuses = $row[55]; + $agent_pause_codes_active = $row[56]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $disable_alter_custdata = $row[62]; + $no_hopper_leads_logins = $row[63]; + $list_order_mix = $row[64]; + $campaign_allow_inbound = $row[65]; + $manual_dial_list_id = $row[66]; + $default_xfer_group = $row[67]; + $queue_priority = $row[69]; + $drop_inbound_group = $row[70]; + $qc_enabled = $row[71]; + $qc_statuses = $row[72]; + $qc_lists = $row[73]; + $qc_shift_id = $row[74]; + $qc_get_record_launch = $row[75]; + $qc_show_recording = $row[76]; + $qc_web_form_address = stripslashes($row[77]); + $qc_script = $row[78]; + $survey_first_audio_file = $row[79]; + $survey_dtmf_digits = $row[80]; + $survey_ni_digit = $row[81]; + $survey_opt_in_audio_file = $row[82]; + $survey_ni_audio_file = $row[83]; + $survey_method = $row[84]; + $survey_no_response_action = $row[85]; + $survey_ni_status = $row[86]; + $survey_response_digit_map = $row[87]; + $survey_xfer_exten = $row[88]; + $survey_camp_record_dir = $row[89]; + $disable_alter_custphone = $row[90]; + $display_queue_count = $row[91]; + $manual_dial_filter = $row[92]; + $agent_clipboard_copy = $row[93]; + $agent_extended_alt_dial = $row[94]; + $use_campaign_dnc = $row[95]; + $three_way_call_cid = $row[96]; + $three_way_dial_prefix = $row[97]; + $web_form_target = $row[98]; + $vtiger_search_category = $row[99]; + $vtiger_create_call_record = $row[100]; + $vtiger_create_lead_record = $row[101]; + $vtiger_screen_login = $row[102]; + $cpd_amd_action = $row[103]; + $agent_allow_group_alias = $row[104]; + $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + + $qc_lists = preg_replace("/^ | -$/","",$qc_lists); + $QClists = explode(" ", $qc_lists); + $QCL_to_print = (count($QClists) -0); + + ##### get status listings for dynamic pulldown + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $qc_statuses_list=''; + $survey_ni_status_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') + { + $dial_statuses_list .= "\n"; + if ($survey_ni_status == $rowx[0]) + { + $survey_ni_status_list .= "\n"; + } + else + { + $survey_ni_status_list .= "\n"; + } + } + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic transfer group pulldown list menu + $stmt="SELECT group_id,group_name from vicidial_inbound_groups $xfer_groupsSQL order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==28) {$camp_qc_color=$subcamp_color;} + else {$camp_qc_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + if ($SUB=='20A') {$camp_survey_color=$subcamp_color;} + else {$camp_survey_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; + if ($SSqc_features_active > 0) + { + echo ""; + } + if ($SSoutbound_autodial_active < 1) + { + echo "\n"; + } + echo "\n"; + echo "
$row[0]: Basic Dettagliata EsitiHot-KeyRiciclaggio ContattiChiama Auto Num AlternElenco MixIndagineCodici PausaQC Real-Time
\n"; + + echo "
\n"; + echo ""; + + echo "
\n"; + + if ($SUB < 1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "RIMUOVI\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + + + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($agent_allow_group_alias == 'Y') + { + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + } + + if ($SSenable_vtiger_integration > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + else + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($campaign_allow_inbound == 'Y') + { + echo "\n"; + } + + echo "\n"; + + if ($allow_closers == 'Y') + { + echo "\n"; + } + + echo "\n"; + echo "
ID Campagna: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Nome Campagna: $NWB#vicidial_campaigns-campaign_name$NWE
Descrizione Campagna: $NWB#vicidial_campaigns-campaign_description$NWE
Campagna Cambia Data: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campagna Login Data: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Campagna Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
Attivo: $NWB#vicidial_campaigns-active$NWE
Extension del parking: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
Web Form Two: $NWB#vicidial_campaigns-web_form_address$NWE
Web Form Target: $NWB#vicidial_campaigns-web_form_target$NWE
Permitir Closers: $NWB#vicidial_campaigns-allow_closers$NWE
Permita de entrada y mezclado:$NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Esito Chiamata $o: \n"; + + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Aggiungi Un Esito Chiamata:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Ordine Lista: $NWB#vicidial_campaigns-lead_order$NWE
Elenco Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Filtro Contatti: $NWB#vicidial_campaigns-lead_filter_id$NWE
Drop Lockout Time: $NWB#vicidial_campaigns-drop_lockout_time$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Forza Il Reset Della Coda Chiamate: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Metodo Chiamata: $NWB#vicidial_campaigns-dial_method$NWE
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       FORZA LIVELLO ANCHE CON MODALITA` ADAPT
Conta Solo Disponibili: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
Limita Percentuale Abbattuti: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
Livello Auto-Dial Massimo In Modalita` Adapt: number only $NWB#vicidial_campaigns-adaptive_maximum_level$NWE
Ultimo Orario Chiamate: 4 solo cifre $NWB#vicidial_campaigns-adaptive_latest_server_time$NWE
Modifica Intensita` Adapt Auto-Dial: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Blanco Llana De la Diferencia Del Dial: $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE
Transferencias Concurrentes: $NWB#vicidial_campaigns-concurrent_transfers$NWE
Coda di priorità: $NWB#vicidial_campaigns-queue_priority$NWE
Multiple campagna Drop Rate Gruppo: $NWB#vicidial_campaigns-drop_rate_group$NWE
El Marcar Auto Del Alt-Nu`mero: $NWB#vicidial_campaigns-auto_alt_dial$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_campaigns-next_agent_call$NWE
Orario Chiamate: $NWB#vicidial_campaigns-local_call_time$NWE
Timeout Chiamata: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
Prefisso Chiamata: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
Ometti Prefisso Telefono: $NWB#vicidial_campaigns-omit_phone_code$NWE
CallerID della Campagna: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Exten VDAD de La campaña: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
Interno Registrazioni Per Questa Campagna: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
Registrazioni Per Questa Campagna: $NWB#vicidial_campaigns-campaign_recording$NWE
Nome Registrazioni Per Questa Campagna: $NWB#vicidial_campaigns-campaign_rec_filename$NWE
Ritardo Registrazione: in seconds$NWB#vicidial_campaigns-allcalls_delay$NWE
Script: $NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Esegui all`avvio della telefonata: $NWB#vicidial_campaigns-get_call_launch$NWE
Messaggio Segreteria Telefonica: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
WaitForSilence Opzioni: $NWB#vicidial_campaigns-waitforsilence_options$NWE
AMD envían a la VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
CPD AMD Azione: $NWB#vicidial_campaigns-cpd_amd_action$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf DTMF 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
Trasferimento rapido Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
Trasferimento PrePopulate Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
Timer azione: $NWB#vicidial_campaigns-timer_action$NWE
Timer azione Message: $NWB#vicidial_campaigns-timer_action_message$NWE
Timer azione Secondi: $NWB#vicidial_campaigns-timer_action_seconds$NWE
El Marcar Del Número Del Alt: $NWB#vicidial_campaigns-alt_number_dialing$NWE
Servicios repetidos Programar: $NWB#vicidial_campaigns-scheduled_callbacks$NWE
Secondi Abbattimento Telefonata: $NWB#vicidial_campaigns-drop_call_seconds$NWE
Goccia dazione:$NWB#vicidial_campaigns-drop_action$NWE
Interno Messaggio Telefonata Abbattuta: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
Casella Vocale: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
Trasferimento Drop Group:$NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
Secondi Riposo Operatore: $NWB#vicidial_campaigns-wrapup_seconds$NWE
Messaggio Riposo Operatore: $NWB#vicidial_campaigns-wrapup_message$NWE
Controlla In Lista Contatti Da NON CHIAMARE: $NWB#vicidial_campaigns-use_internal_dnc$NWE
Usa campagna DNC Elenco: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
AgentCodici PausaAttivo: $NWB#vicidial_campaigns-agent_pause_codes_active$NWE
Aggiornamento Statistiche Campagna: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
Disabilita modifica dati clienti: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
Disattiva Alter Clienti Telefono:$NWB#vicidial_campaigns-disable_alter_custphone$NWE
Abilita Login Senza Contatti Da Chiamare: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
N. Dialing Hopper: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
Unico proprietario Dialing: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
Agente Seleziona Territori: $NWB#vicidial_campaigns-agent_select_territories$NWE
Agent Visualizzare Dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
Agente Mostra Coda Count:$NWB#vicidial_campaigns-display_queue_count$NWE
Agente chiede View in coda: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
Visualizzazione delle chiamate in coda Launch: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
Agente chiede Grab in coda: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
Call Agent Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
Agente di pausa dopo ogni chiamata: $NWB#vicidial_campaigns-pause_after_each_call$NWE
ID Lista Chiamate Manuali:$NWB#vicidial_campaigns-manual_dial_list_id$NWE
Manuale Dial Filtro:$NWB#vicidial_campaigns-manual_dial_filter$NWE
Appunti di agente Schermata Copia: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
Agente Screen estensione Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
3-Way chiamate in uscita CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
3-Way Call Prefisso Chiamata: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
Gruppo Alias ammessi: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
Predefinito Gruppo Alias: $NWB#vicidial_campaigns-default_group_alias$NWE
Vtiger Ricerca Categoria: $NWB#vicidial_campaigns-vtiger_search_category$NWE
Vtiger Cerca Dead Accounts: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
Vtiger Crea chiamate record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
Vtiger Crea Piombo record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
Vtiger stato della chiamata: $NWB#vicidial_campaigns-vtiger_status_call$NWE
Vtiger Screen accesso: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
CRM Popup Indirizzo: $NWB#vicidial_campaigns-crm_login_address$NWE
Start Call URL: $NWB#vicidial_campaigns-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
Grupos De entrada Permitidos:
"; + echo " $NWB#vicidial_campaigns-closer_campaigns$NWE
\n"; + echo "$groups_list"; + echo "
Grupo De la Transferencia Del Defecto:$NWB#vicidial_campaigns-default_xfer_group$NWE
Grupos Permitidos De la Transferencia:
"; + echo " $NWB#vicidial_campaigns-xfer_groups$NWE
\n"; + echo "$XFERgroups_list"; + echo "
\n"; + + echo "
\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
LISTE IN QUESTA CAMPAGNA:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
ID LISTANOME LISTADESCRIZIONEPORTA CONTEATTIVODATA ULTIMA CHIAMATAMODIFICA
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFICA

\n"; + + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Questa campagna ha $active_lists liste attive e $inactive_lists lista inattive

\n"; + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - NASCONDI

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - MOSTRA

"; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Questa campagna ha $hopper_leads contatti nella coda chiamate

\n"; + echo "Clicca qui per vedere quali numeri sono nella coda chiamate in questo momento

\n"; + echo "Clicca qui per vedere il report VDAD per questa campagna

\n"; + } + echo "Clicca qui per visualizzare tutti i richiami in attesa per questa campagna

\n"; + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questa campagna
\n"; + } + echo "
\n"; + } + + + ##### CAMPAIGN CUSTOM STATUSES ##### + if ($SUB==22) + { + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + echo "
\n"; + echo "
ESITI PERSONALIZZATI PER QUESTA CAMPAGNA:   $NWB#vicidial_campaign_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[5]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ESITODESCRIZIONESELEZIONABILERISPOSTA UMANACATEGORIAMODIFY-DELETE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + echo "CANCELLA\n"; + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AGGIUNGI NUOVO ESITO PERSONALIZZATO PER CAMPAGNA
\n"; + echo "\n"; + echo "\n"; + echo "Esito:   \n"; + echo "Descrizione:   \n"; + echo "Selezionabile:  
\n"; + echo "Risposta Umana:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Categoria: \n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN HOTKEYS ##### + if ($SUB==23) + { + echo "
HOT KEY PERSONALIZZATE PER QUESTA CAMPAGNA:   $NWB#vicidial_campaign_hotkeys$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + + } + + echo "
HOT KEYESITODESCRIZIONECANCELLA
$rowx[1]$rowx[0]$rowx[2]CANCELLA
\n"; + + echo "
AGGIUNGI NUOVA HOT KEY PERSONALIZZATA PER QUESTA CAMPAGNA
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Hotkey:   \n"; + echo "Esito:   \n"; + echo "
\n"; + echo "

\n"; + } + + ##### CAMPAIGN LEAD RECYCLING ##### + if ($SUB==25) + { + ### display counts on leads that have hit the limit in this campaign + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $RECYCLE_status[$o] = $rowx[2]; + $RECYCLE_delay[$o] = $rowx[3]; + $RECYCLE_attempt[$o] = $rowx[4]; + $RECYCLE_active[$o] = $rowx[5]; + $RECYCLE_count[$o] = "'Y','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'"; + if ($RECYCLE_attempt[$o]==1) {$RECYCLE_count[$o] = "'Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==2) {$RECYCLE_count[$o] = "'Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==3) {$RECYCLE_count[$o] = "'Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==4) {$RECYCLE_count[$o] = "'Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==5) {$RECYCLE_count[$o] = "'Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==6) {$RECYCLE_count[$o] = "'Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==7) {$RECYCLE_count[$o] = "'Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==8) {$RECYCLE_count[$o] = "'Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==9) {$RECYCLE_count[$o] = "'Y9','Y10'";} + if ($RECYCLE_attempt[$o]>9) {$RECYCLE_count[$o] = "'Y10'";} + $o++; + } + $o=0; + + echo "

CONTATTI DA RICICLARE IN QUESTA CAMPAGNA:   $NWB#vicidial_lead_recycle$NWE
\n"; + echo "\n"; + echo "\n"; + + while ($recycle_to_print > $o) + { + $recycle_limit=0; + if (strlen($camp_lists) > 2) + { + $stmt="SELECT count(*) from vicidial_list where status='$RECYCLE_status[$o]' and list_id IN($camp_lists) and called_since_last_reset IN($RECYCLE_count[$o]);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $counts_to_print = mysql_num_rows($rslt); + if ($counts_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + $recycle_limit = $rowx[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $o++; + } + + echo "
ESITORITARDO NUOVO TENTATIVOMASSIMO TENTATIVIPORTA AL LIMITEATTIVO CANCELLA
  $RECYCLE_status[$o]
\n"; + echo "\n"; + echo "\n"; + echo "
$recycle_limit   CANCELLA
\n"; + + echo "
AGGIUNGI NUOVO ESITO DA RICICLARE
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Esito:   \n"; + echo "Intervallo Tra Tentativi: \n"; + echo "Massimo Tentativi: \n"; + echo "
\n"; + + echo "

\n"; + echo "
\n"; + echo "* Piombo conta prese da elenchi attiva nella campagna solo.\n"; + } + + ##### CAMPAIGN AUTO-ALT-NUMBER DIALING ##### + if ($SUB==26) + { + echo "

ESITI PER I QUALI CHIAMARE I NUMERI ALTERNATIVI:   $NWB#vicidial_auto_alt_dial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + $auto_alt_dial_statuses = preg_replace("/ -$/","",$auto_alt_dial_statuses); + $AADstatuses = explode(" ", $auto_alt_dial_statuses); + $AADs_to_print = (count($AADstatuses) -1); + + $o=0; + while ($AADs_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $o++; + + echo "\n"; + echo "\n"; + } + + echo "
ESITICANCELLA
$AADstatuses[$o]CANCELLA
\n"; + + echo "
AGGIUNGI NUOVO ESITO CHIAMA-AUTO-NUM-ALTERN
\n"; + echo "\n"; + echo "\n"; + echo "Esito:   \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN PAUSE CODES ##### + if ($SUB==27) + { + echo "

CODICI PAUSA OPERATORE PER QUESTA CAMPAGNA:   $NWB#vicidial_pause_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CODICI PAUSAFATTURABILEMODIFICACANCELLA
$rowx[0]\n"; + echo "\n"; + echo "\n"; + echo "  \n"; + echo "
CANCELLA
\n"; + + echo "
NUOVO CODICE PAUSA
\n"; + echo "\n"; + echo "\n"; + echo "Codice Pausa: \n"; + echo "Nome Codice Pausa: \n"; + echo "   Fatturabile: \n"; + echo "
\n"; + + echo "

\n"; + } + + ##### CAMPAIGN QC SETTINGS ##### + if ( ($SUB==28) and ($SSqc_features_active > 0) ) + { + $stmt="SELECT list_id,list_name,active from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $qc_lists_list=''; + + $p=0; + while ($lists_to_print > $p) + { + $rowx=mysql_fetch_row($rslt); + $qc_lists_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "

IMPOSTAZIONI CQ per questa campagna:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; +# echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + echo "QC Enabled: $NWB#vicidial_campaigns-qc_enabled$NWE
QC Status:
$NWB#vicidial_campaigns-qc_statuses$NWE
$qc_statuses_list
QC Lists:
$NWB#vicidial_campaigns-qc_lists$NWE
$qc_lists_list
QC Web Form:$NWB#vicidial_campaigns-qc_web_form_address$NWE
QC Script: $NWB#vicidial_campaigns-qc_script$NWE
QC Maiusc: $NWB#vicidial_campaigns-qc_shift_id$NWE
QC ottenere il record di lancio: $NWB#vicidial_campaigns-qc_get_record_launch$NWE
Visualizza la registrazione, QC: $NWB#vicidial_campaigns-qc_show_recording$NWE
\n"; + echo "

\n"; + } + + ##### CAMPAIGN SURVEY SETTINGS ##### + if ($SUB=='20A') + { + + echo "

INDAGINE SETTINGS per questa campagna:
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "
Indagine primo file audio: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
Indagine sulle cifre DTMF: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
Indagine non interessa Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
Indagine Opt-in File Audio: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
Indagine non interessa File Audio: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
Indagine Metodo: $NWB#vicidial_campaigns-survey_method$NWE
Indagine n.-Azione di risposta: $NWB#vicidial_campaigns-survey_no_response_action$NWE
Indagine Stato non è interessato: $NWB#vicidial_campaigns-survey_ni_status$NWE
Terza indagine Digit: $NWB#vicidial_campaigns-survey_third_digit$NWE
Terza indagine di file audio: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
Terza indagine Esito: $NWB#vicidial_campaigns-survey_third_status$NWE
Terza indagine Estensione: $NWB#vicidial_campaigns-survey_third_exten$NWE
Digit Indagine Quarta: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
Quarta Indagine file audio: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
Status Indagine Quarta: $NWB#vicidial_campaigns-survey_fourth_status$NWE
Quarta indagine Estensione: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
Indagine risposta Digit Mappa: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
Indagine Indagine Xfer Estensione: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
Indagine Campagna Registrazione Directory: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
Casella Vocale: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
\n"; + echo "

\n"; + } + + + if ($SUB < 1) + { + echo "

\n"; + echo "DISCONNETTI TUTTI GLI OPERATORI DI QUESTA CAMPAGNA

\n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

\n"; + + if ($LOGdelete_campaigns > 0) + { + echo "

CANCELLA QUESTA CAMPAGNA\n"; + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } +} + + +###################### +# ADD=34 modify campaign info in the system - Basic View +###################### + +if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==34) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $display_dialable_count = $row[39]; + $dial_method = $row[46]; + $adaptive_intensity = $row[51]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $list_order_mix = $row[64]; + $default_xfer_group = $row[67]; + $campaign_allow_inbound = $row[65]; + $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active < 1) + { + echo ""; + } + echo "
$row[0]: Vista Generale Vista Dettagliata Elenco Mix Schermata Tempo Reale  
\n"; + + if ($SUB < 1) + { + echo "
\n"; + echo ""; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "RIMUOVI\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
ID Campagna: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
Nome Campagna: $NWB#vicidial_campaigns-campaign_name$NWE
Descrizione Campagna: $row[57]$NWB#vicidial_campaigns-campaign_description$NWE
Campagna Cambia Data: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
Campagna Login Data: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
Attivo: $NWB#vicidial_campaigns-active$NWE
Extension del parking: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
Web Form: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
Permitir Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
Grupo De la Transferencia Del Defecto:$default_xfer_group $NWB#vicidial_campaigns-default_xfer_group$NWE
Permita de entrada y mezclado:$campaign_allow_inbound $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
Esito Chiamata $o: \n"; + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
Aggiungi Un Esito Chiamata:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
Ordine Lista: $NWB#vicidial_campaigns-lead_order$NWE
Elenco Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
Filtro Contatti: $NWB#vicidial_campaigns-lead_filter_id$NWE
Livello Coda Chiamate: $NWB#vicidial_campaigns-hopper_level$NWE
Forza Il Reset Della Coda Chiamate: $NWB#vicidial_campaigns-force_reset_hopper$NWE
Metodo Chiamata: $NWB#vicidial_campaigns-dial_method$NWE
Livello Auto Dial: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
Modifica Intensita` Adapt Auto-Dial: $NWB#vicidial_campaigns-adaptive_intensity$NWE
Script: $script_id
Esegui all`avvio della telefonata: $get_call_launch
\n"; + + echo "
\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
LISTE IN QUESTA CAMPAGNA:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
ID LISTANOME LISTADESCRIZIONEPORTA CONTEATTIVODATA ULTIMA CHIAMATAMODIFICA
$row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFICA

\n"; + echo "
\n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Questa campagna ha $active_lists liste attive e $inactive_lists lista inattive

\n"; + + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - NASCONDI

"; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - MOSTRA

"; + } + + + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "Questa campagna ha $hopper_leads contatti nella coda chiamate

\n"; + echo "Clicca qui per vedere quali numeri sono nella coda chiamate in questo momento

\n"; + echo "Clicca qui per vedere il report VDAD per questa campagna

\n"; + } + echo "Clicca qui per visualizzare tutti i richiami in attesa per questa campagna

\n"; + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questa campagna
\n"; + } + + echo "
\n"; + + echo "
\n"; + + ### list of agent rank or skill-level for this campaign + echo "
\n"; + echo "
CLASSIFICA OPERATORI PER QUESTA CAMPAGNA:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
UTENTE     CLASSIFICA     CHIAMATE OGGI
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + + echo "DISCONNETTI TUTTI GLI OPERATORI DI QUESTA CAMPAGNA

\n"; + + + if ($LOGdelete_campaigns > 0) + { + echo "

CANCELLA QUESTA CAMPAGNA\n"; + } + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } +} + + +###################### +# ADD=31 or 34 and SUB=29 for list mixes +###################### +if ( ( ($ADD==34) or ($ADD==31) ) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ( ($ADD==34) or ($ADD==31) ) +{ + if ($LOGmodify_campaigns==1) + { + ##### CAMPAIGN LIST MIX SETTINGS ##### + if ($SUB==29) + { + ##### get list_id listings for dynamic pulldown + $stmt="SELECT list_id,list_name from vicidial_lists where campaign_id='$campaign_id' order by list_id"; + $rslt=mysql_query($stmt, $link); + $mixlists_to_print = mysql_num_rows($rslt); + $mixlists_list=""; + + $o=0; + while ($mixlists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixlists_list .= "\n"; + $mixlistsname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + + echo "

MIX LISTA PER QUESTA CAMPAGNA:   $NWB#vicidial_campaigns-list_order_mix$NWE
\n"; + + echo "
ATTENZIONE, si limita a raccomandareMix Listeper utenti avanzati, Si prega di leggere il manuale ViciDial Manager
\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } + + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $rslt=mysql_query($stmt, $link); + $listmixes = mysql_num_rows($rslt); + $o=0; + while ($listmixes > $o) + { + $rowx=mysql_fetch_row($rslt); + $vcl_id=$rowx[0]; + $o++; + + if ($o < 2) + {$tablecolor='bgcolor="#99FF99"'; $bgcolor='bgcolor="#CCFFCC"';} + else + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$tablecolor='bgcolor="#B9CBFD"'; $bgcolor='bgcolor="#9BB9FB"';} + else + {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} + } + echo "
\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + } + else + {echo "$rowx[5]\n";} + echo "\n"; + echo "\n"; + +# list_id|order|percent|statuses|:list_id|order|percent|statuses|:... +# 101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -| +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX','TESTCAMP List Mix','TESTCAMP','101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX2','TESTCAMP List Mix2','TESTCAMP','101|1|20| A B -|:102|2|45| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX3','TESTCAMP List Mix3','TESTCAMP','101|1|30| A NA -|:102|2|35| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); + + $MIXentries = $MT; + $MIXentries = explode(":", $rowx[3]); + $Ms_to_print = (count($MIXentries) - 0); + $q=0; + while ($Ms_to_print > $q) + { + $MIXdetails = explode('|', $MIXentries[$q]); + $MIXdetailsLIST = $MIXdetails[0]; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $r=0; + while ($Ds_to_print > $r) + { + $r++; + $Dsql .= "'$Dstatuses[$r]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "\n"; + + + echo "\n"; + + + $q++; + + } + + + + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + $X='X'; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$vcl_id:\n"; + echo "\n"; + echo "     DELETE LIST MIX
Esito: \n"; + if ($rowx[5]=='INACTIVE') + { + echo "$rowx[5]\n"; + echo "ATTIVAMethod:\n"; + echo "
ID LISTAPRIORITY% MIXESITI
\n"; + echo "\n"; + echo "List: $MIXdetailsLIST   RIMUOVI\n"; + + + + echo " \n"; + echo "ADD   \n"; + echo "RIMUOVI\n"; + echo "
\n"; + echo "Difference %: \n"; + echo "   \n"; + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "List: \n"; + + if ($q > 39) {$AE_disabled = 'DISABLED';} + else {$AE_disabled = '';} + echo "\n"; + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "
CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
\n"; + echo " \n"; + echo "ADD   \n"; + echo "RIMUOVI\n"; + echo "
\n"; + } + + + echo "

AGGIUNGI NUOVA LISTA MIX
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Mix ID: Mix Name: Mix Method: "; + echo "
List: Dial Esito:  
\n"; + + echo "
\n"; + + } + } + echo "
\n"; +} + + +###################### +# ADD=30 campaign not allowed +###################### + +if ($ADD==30) +{ +echo "
\n"; + echo ""; +echo "You do not have permission to view campaign $campaign_id\n"; +} + + +###################### +# ADD=32 display all campaign statuses +###################### +if ($ADD==32) +{ +echo "
\n"; + echo ""; + +echo "
ELENCO ESITI PERSONALIZZATI PER CAMPAGNA:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAGNANOMEESITIMODIFICA
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_statuses where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NESSUNO";} + echo "MODIFICA ESITI
\n"; +} + + +###################### +# ADD=33 display all campaign hotkeys +###################### +if ($ADD==33) +{ +echo "
\n"; + echo ""; + +echo "
ELENCO HOTKEY CAMPAGNE:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAGNANOMEHOTKEYMODIFICA
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_hotkeys where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NESSUNO";} + echo "MODIFICA HOTKEY
\n"; +} + + +###################### +# ADD=35 display all campaign lead recycle entries +###################### +if ($ADD==35) +{ +echo "
\n"; + echo ""; + +echo "
ELENCO CONTATTI DA RICICLARE:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAGNANOMEESITI DA RICICLAREMODIFICA
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_lead_recycle where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NESSUNO";} + echo "MODIFICA CONTATTI DA RICICLARE
\n"; +} + + +###################### +# ADD=36 display all campaign auto-alt dial entries +###################### +if ($ADD==36) +{ +echo "
\n"; + echo ""; + +echo "
ELENCO ESITI PER I QUALI CHIAMARE AUTOMATICAMENTE IL NUMERO ALTERNATIVO:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAGNANOMECHIAMA-AUTO-NUM-ALTERNMODIFICA
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaigns_id_list[$o]';"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if (strlen($row[0])<3) + {echo "NESSUNO";} + echo "MODIFICA CHIAMA-AUTO-NUM-ALTERN
\n"; +} + + +###################### +# ADD=37 display all campaign agent pause codes +###################### +if ($ADD==37) +{ +echo "
\n"; + echo ""; + +echo "
ELENCO CODICI PAUSA OPERATORE PER CAMPAGNA:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAGNANOMECODICI PAUSAMODIFICA
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT pause_code from vicidial_pause_codes where campaign_id='$campaigns_id_list[$o]' order by pause_code;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NESSUNO";} + echo "MODIFICA CODICI PAUSA
\n"; +} + + +###################### +# ADD=39 display all campaign list mixes +###################### +if ($ADD==39) +{ +echo "
\n"; + echo ""; + +echo "
LISTADOS DE LA MEZCLA DE LA LISTA DE LA CAMPAÑA:\n"; +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
CAMPAGNANOMELIST MIXMODIFICA
$campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT vcl_id from vicidial_campaigns_list_mix where campaign_id='$campaigns_id_list[$o]' order by status,vcl_id;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NESSUNO";} + echo "MODIFY LIST MIX
\n"; +} + + + + + +###################### +# ADD=311 modify list info in the system +###################### + +if ($ADD==311) + { + if ($LOGmodify_lists==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; + + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names + + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
MODIFICA I DATI DELLA LISTA: $list_id
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "
ID Lista: $list_id$NWB#vicidial_lists-list_id$NWE
Nome Lista: $NWB#vicidial_lists-list_name$NWE
Descrizione Lista: $NWB#vicidial_lists-list_description$NWE
Campagna: $NWB#vicidial_lists-campaign_id$NWE
Attivo: $NWB#vicidial_lists-active$NWE
Resetta questa lista allo stato di `contatti non chiamati`: $NWB#vicidial_lists-reset_list$NWE
Reset Times: $NWB#vicidial_lists-reset_time$NWE
Data Modifica Lista: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
Data Ultima Telefonata $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
Agent Script Override: $NWB#vicidial_lists-agent_script_override$NWE
Campagna CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
Messaggio Segreteria Telefonica Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
Drop Inbound Group Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
Transfiera -Conf El Número 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
\n"; + + echo "
\n"; + echo "
ESITI IN QUESTA LISTA:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 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"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
ESITONOME ESITOCHIAMATINON CHIAMATI
$CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
FUSI ORARI IN QUESTA LISTA:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
FUSO ORARIO ATTUALE (ora locale)CHIAMATINON CHIAMATI
".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
PROPRIETARI all-interno di questa mailing:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
OWNERCHIAMATINON CHIAMATI
$CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; + unset($lead_list); + + + echo "
\n"; + echo "
RANKS all-interno di questa mailing:
\n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
CLASSIFICACHIAMATINON CHIAMATI
$CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
SUBTOTALI$lead_list[Y_count]$lead_list[N_count]
TOTALE$lead_list[count]

\n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
\n"; + echo "
CHIAMATE EFFETTUATE IN QUESTA LISTA:
\n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; + + $sts=0; + $statuses_called_to_print = count($status); + while ($statuses_called_to_print > $sts) + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; + $first++; + } + echo "\n"; + + echo "
ESITONOME ESITO$first$FplusSUBTOTALE
$Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
TOTALE$all_called_count[$first]$leads_in_list

\n"; + + + + + + echo "
\n"; + + echo "

Clicca qui per visualizzare tutti i richiami in attesa in questa lista

\n"; + echo "

Clicca qui per scaricare lelenco

\n"; + + if ($LOGdelete_lists > 0) + { + echo "

CANCELLA QUESTA LISTA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo elenco
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + +###################### +# ADD=3111 modify in-group info in the system +###################### + +if ($ADD==3111) + { + if ($LOGmodify_ingroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + + echo "
MODIFICAR UN REGISTRO DE LOS GRUPOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ID Gruppo: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
Nome Gruppo: $NWB#vicidial_inbound_groups-group_name$NWE
Colore Gruppo: $NWB#vicidial_inbound_groups-group_color$NWE
Attivo: $NWB#vicidial_inbound_groups-active$NWE
Web Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
Web Form Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
Operatore Da Scegliere Per La Chiamata Successiva: $NWB#vicidial_inbound_groups-next_agent_call$NWE
Coda di priorità: $NWB#vicidial_inbound_groups-queue_priority$NWE
Mostrar Fronter: $NWB#vicidial_inbound_groups-fronter_display$NWE
Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
Esegui all`avvio della telefonata: $NWB#vicidial_inbound_groups-get_call_launch$NWE
Transfiera -Conf DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Transfiera -Conf El Número 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
Timer azione: $NWB#vicidial_inbound_groups-timer_action$NWE
Timer azione Message: $NWB#vicidial_inbound_groups-timer_action_message$NWE
Timer azione Secondi: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
Secondi Abbattimento Telefonata: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
Goccia dazione:$NWB#vicidial_inbound_groups-drop_action$NWE
Gota Exten: $NWB#vicidial_inbound_groups-drop_exten$NWE
Casella Vocale: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
Trasferimento Drop Group:$NWB#vicidial_inbound_groups-drop_inbound_group$NWE
Tempo Chiamata: $NWB#vicidial_inbound_groups-call_time_id$NWE
Despue`s De la Accio`n De las Horas:$NWB#vicidial_inbound_groups-after_hours_action$NWE
Despue`s De Nombre de fichero Del Mensaje De las Horas: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
Despue`s De la Extension De las Horas:$NWB#vicidial_inbound_groups-after_hours_exten$NWE
Despue`s De las Horas Casella Vocale: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
Dopo ore di trasferimento del gruppo:$NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
N. agenti n. Queueing: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
Nessun agente Nessuna azione di coda: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
"; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Call Menu:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID Lista: "; + echo "
ID Campagna: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Estensione:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Buzon de voz: voicemail chooser\n"; + } + + echo "
+
 
Nombre de fichero Agradable Del Mensaje: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
Lettura del messaggio di benvenuto:$NWB#vicidial_inbound_groups-play_welcome_message$NWE
Context Musica di Attesa: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
En Nombre de fichero Del Aviso Del Asimiento: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
En Intervalo Del Aviso Del Asimiento:$NWB#vicidial_inbound_groups-prompt_interval$NWE
Gioca Luogo in Linea:$NWB#vicidial_inbound_groups-play_place_in_line$NWE
Gioca Tenere Tempo stimato:$NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
Tenere Tempo Opzione:$NWB#vicidial_inbound_groups-hold_time_option$NWE
Tenere Opzione Secondi Tempo:$NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
Tenere Opzione Tempo Estensione:$NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
Tenere Tempo Opzione Segreteria: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
Tenere Opzione Tempo trasferimento in gruppo:$NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
Tenere il tempo di richiamata Opzione Nome file: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
Tenere Opzione Tempo richiamata Elenco ID:$NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
Agente Alert Filename: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
La Alarma Del Agente Retrasa:$NWB#vicidial_inbound_groups-agent_alert_delay$NWE
Grupo De la Transferencia Del Defecto:$NWB#vicidial_inbound_groups-default_xfer_group$NWE
Predefinito Gruppo Alias: $NWB#vicidial_inbound_groups-default_group_alias$NWE
Tenere Ricorda Trasferimento in gruppo:$NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
Scadenza Bando n. Percorso:$NWB#vicidial_inbound_groups-no_delay_call_route$NWE
Nel gruppo di registrazione Override:$NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
Nel gruppo Registrazione Nome file:$NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
Statistiche per cento delle chiamate risposta entro X secondi 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Statistiche per cento delle chiamate risposta entro X secondi 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
Start Call URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
Dispo Call URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
 
Inbound Gruppo QC Impostazioni:
QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
QC Status:
$NWB#vicidial_inbound_groups-qc_statuses$NWE
$qc_statuses_list
QC Web Form:$NWB#vicidial_inbound_groups-qc_web_form_address$NWE
QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
QC Maiusc: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
QC ottenere il record di lancio: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
Visualizza la registrazione, QC: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
\n"; + echo "

\n"; + + + ### list of agent rank or skill-level for this inbound group + echo "
\n"; + echo "
CLASSIFICA OPERATORI PER QUESTO GRUPPO INBOUND:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
UTENTE     CLASSIFICA     CHIAMATE OGGI
$rowx[0] - $rowx[3]$rowx[1]$rowx[2]

\n"; + + echo "

\n"; + + echo "
Clicca qui per visualizzare un report per questo gruppo inbound

\n"; + + echo "
\n"; + + echo "DIDS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + echo "CALL MENUS USING THIS IN-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]

\n"; + echo "CAMPAGNE DI OFFRIRE IN QUESTO-GROUP:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

\n"; + echo "

CANCELLA QUESTO GRUPPO INBOUND\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages per questo gruppo di in -\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + +###################### +# ADD=3311 modify did info in the system +###################### + +if ($ADD==3311) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
A MODIFICARE LO RECORD:$row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
HA Estensione:$NWB#vicidial_inbound_dids-did_pattern$NWE
HA Descrizione:$NWB#vicidial_inbound_dids-did_description$NWE
Attivo: $NWB#vicidial_inbound_dids-did_active$NWE
HA Percorso:$NWB#vicidial_inbound_dids-did_route$NWE
Estensione:$NWB#vicidial_inbound_dids-extension$NWE
Estensione Contesto:$NWB#vicidial_inbound_dids-exten_context$NWE
Buzon de voz: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
Estensione Telefono:$NWB#vicidial_inbound_dids-phone$NWE
IP Server: $NWB#vicidial_inbound_dids-server_ip$NWE
Call Menu: $NWB#vicidial_inbound_dids-menu_id$NWE
Utente Agent:$NWB#vicidial_inbound_dids-user$NWE
Lutente non disponibile Azione:$NWB#vicidial_inbound_dids-user_unavailable_action$NWE
Utente percorso Impostazioni In-Group:$NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
In-ID Gruppo: $NWB#vicidial_inbound_dids-group_id$NWE
Nel gruppo di chiamata Maneggiare Metodo:$NWB#vicidial_inbound_dids-call_handle_method$NWE
Nel gruppo di agente Metodo di ricerca:$NWB#vicidial_inbound_dids-agent_search_method$NWE
Nel gruppo Elenco ID:$NWB#vicidial_inbound_dids-list_id$NWE
Nel gruppo-ID campagna:$NWB#vicidial_inbound_dids-campaign_id$NWE
Nel gruppo Codice Telefono:$NWB#vicidial_inbound_dids-phone_code$NWE
\n"; + echo "

\n"; + + echo "
Clicca qui per vedere una relazione di traffico per questo DID

\n"; + + if ($LOGdelete_dids > 0) + { + echo "

CANCELLA QUESTO HA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo DID\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
MODIFICARE UNA CHIAMATA menu Record: $menu_id
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
Menu ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
Menu Nome: $NWB#vicidial_call_menu-menu_name$NWE
Menu Prompt: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
Timeout menu: $NWB#vicidial_call_menu-menu_timeout$NWE
Menu prompt timeout: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
Menu valide Prompt: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
Menu Repeat: $NWB#vicidial_call_menu-menu_repeat$NWE
Menu Check Time: $NWB#vicidial_call_menu-menu_time_check$NWE
Tempo Chiamata: $NWB#vicidial_call_menu-call_time_id$NWE
Chiede Track in Real-Time Report: $NWB#vicidial_call_menu-track_in_vdac$NWE
Gruppo di monitoraggio: $NWB#vicidial_call_menu-tracking_group$NWE
Call Menu Opzioni:
+ Opzione: $dtmf_list   + Descrizione: + Route: $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Call Menu:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
Search Method: \n"; + echo "   ID Lista: "; + echo "
ID Campagna: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Estensione:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Buzon de voz: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
+
 
+ Opzione: $dtmf_list   + Descrizione: + Route: + $NWB#vicidial_call_menu-option_value$NWE
+ + \n"; + echo " +
 
Custom Dialplan entrata:
$NWB#vicidial_call_menu-custom_dialplan_entry$NWE
Custom Dialplan entrata: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
\n"; + echo "

\n"; + + echo "DIDS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[1] $row[2]

\n"; + + echo "CALL MENUS USING THIS CALL MENU:
\n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_dids > 0) + { + echo "

DELETE THIS CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per vedere chages Admin a questo menu CALL
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + +###################### +# ADD=31111 modify remote agents info in the system +###################### + +if ($ADD==31111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Inizio ID Utente: (solo cifre, incremented)$NWB#vicidial_remote_agents-user_start$NWE
Numero di Linee: (solo cifre)$NWB#vicidial_remote_agents-number_of_lines$NWE
IP Server: $NWB#vicidial_remote_agents-server_ip$NWE
Numero Di Interno Remoto: (numero del dialplan usato per raggiungere gli operatori)$NWB#vicidial_remote_agents-conf_exten$NWE
Esito: $NWB#vicidial_remote_agents-status$NWE
Campagna: $NWB#vicidial_remote_agents-campaign_id$NWE
Gruppi Inbound: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
\n"; + echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

SUPRIMA ESTE AGENTE ALEJADO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo agente remoto
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=311111 modify user group info in the system +###################### + +if ($ADD==311111) + { + if ($LOGmodify_usergroups==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
MODIFICA UN GRUPPO UTENTI\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + + echo "\n"; + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
Gruppo: (senza spazi e punteggiatura)$NWB#vicidial_user_groups-user_group$NWE
Descrizione: (Descrizione del gruppo)$NWB#vicidial_user_groups-group_name$NWE
Forza orologio Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
Maiusc esecuzione: $NWB#vicidial_user_groups-shift_enforcement$NWE
Campagne Permesse:
$NWB#vicidial_user_groups-allowed_campaigns$NWE
\n"; + echo "$campaigns_list
 "; + echo "
Gruppo Turni:
$NWB#vicidial_user_groups-group_shifts$NWE
\n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
\n"; + $o++; + } + echo "
 
Stato agente Viewable Gruppi:
$NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
\n"; + echo "ALL-GROUPS - All user groups in the system
\n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
\n"; + $o++; + } + echo "
 
Visualizza stato agente Time: $NWB#vicidial_user_groups-agent_status_view_time$NWE
QC ammessi Campagne:
$NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
\n"; + echo "$qc_campaigns_list"; + echo "
 
QC ammessi Inbound Gruppi:
$NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
\n"; + echo "$qc_groups_list"; + echo "
 
\n"; + + + ### list of users in this user group + + $active_confs = 0; + $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + echo "
\n"; + echo "
UTENTI IN QUESTO GRUPPO: $users_to_print
\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
UTENTENOME COMPLETOLIVELLOATTIVO
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + echo "

Clicca qui per visualizzare tutti i richiami di questo utente

\n"; + echo "

Clicca qui per visualizzare lorologio di stato per questo gruppo di utenti

\n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

CANCELLA QUESTO GRUPPO UTENTI\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo gruppo di utenti
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=3111111 modify script info in the system +###################### + +if ($ADD==3111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
MODIFICA SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Script:: $script_id$NWB#vicidial_scripts-script_name$NWE
Nome Script: (titolo script)$NWB#vicidial_scripts-script_name$NWE
Note Script: $NWB#vicidial_scripts-script_comments$NWE
Attivo: $NWB#vicidial_scripts-active$NWE
Testo Script:

Anteprima Script
"; + # BEGIN Insert Field + echo ""; + echo "
"; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
\n"; + + + + echo "


\n"; + echo " CAMPAGNE USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " GRUPPI INBOUND USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]


\n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
\n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

CANCELLA QUESTO SCRIPT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo script\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=31111111 modify filter info in the system +###################### + +if ($ADD==31111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; + + echo "
MODIFICA UN FILTRO\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Filtro:$lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
Nome Del Filtro: (breve descrizione del filtro)$NWB#vicidial_lead_filters-lead_filter_name$NWE
Commenti Del Filtro: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
Filtro Sql: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
\n"; + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + echo "

"; + echo "
PRUEBE EN CAMPAÑA:
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + if ($LOGdelete_filters > 0) + { + echo "

CANCELLA QUESTO FILTRO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo filtro\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=321111111 modify call time definition info in the system +###################### + +if ($ADD==321111111) + { + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Regla Del Estado Agregada: $state_rule
\n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "Regla Del Estado Quitada: $state_rule
\n"; + } + + $ADD=311111111; + } + else + { + echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; + } + } + + +###################### +# ADD=311111111 modify call time definition info in the system +###################### + +if ($ADD==311111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
MODIFICA ORARIO CHIAMATE\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Orario Chiamate: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
Nome Orario Chiamate: (breve descrizione dell`orario chiamate)$NWB#vicidial_call_times-call_time_name$NWE
Note Orario Chiamate: $NWB#vicidial_call_times-call_time_comments$NWE
Inizio di Default: Fine di Default: $NWB#vicidial_call_times-ct_default_start$NWE
Inizio Domenica: Fine Domenica: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Lunedi: Fine Lunedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Martedi: Fine Martedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Mercoledi: Fine Mercoledi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Giovedi: Fine Giovedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Venerdi: Fine Venerdi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Sabato: Fine Sabato: $NWB#vicidial_call_times-ct_sunday_start$NWE
Definiciones activas del tiempo de la llamada del estado para estoexpediente:  
$state_rules[$b] - REMOVE $row[0] - $row[1]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


\n"; + echo "CAMPAGNE CHE UTILIZZANO QUESTO ORARIO:
\n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "GRUPPI INBOUND CHE UTILIZZANO QUESTO ORARIO:
\n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

ELIMINA QUESTO ORARIO CHIAMATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages tempo al presente invito\n"; + } + } + else + { + echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; + } + + } + + +###################### +# ADD=3111111111 modify state call time definition info in the system +###################### + +if ($ADD==3111111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
_ MODIFICAR Uno ESTADO LLAMAR TIEMPO
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
ID Orario Chiamate: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
_ Estado Llamar Tiempo Nombre: (breve descrizione dell`orario chiamate)$NWB#vicidial_call_times-call_time_name$NWE
Comentarios Del Tiempo De la Llamada Del Estado: $NWB#vicidial_call_times-call_time_comments$NWE
Inizio di Default: Fine di Default: $NWB#vicidial_call_times-ct_default_start$NWE
Inizio Domenica: Fine Domenica: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Lunedi: Fine Lunedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Martedi: Fine Martedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Mercoledi: Fine Mercoledi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Giovedi: Fine Giovedi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Venerdi: Fine Venerdi: $NWB#vicidial_call_times-ct_sunday_start$NWE
Inizio Sabato: Fine Sabato: $NWB#vicidial_call_times-ct_sunday_start$NWE


\n"; + echo "TIEMPOS DE LA LLAMADA USANDO ESTE TIEMPO DE LA LLAMADA DEL ESTADO:
\n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

SUPRIMA ESTA DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO\n"; + } + } + else + { + echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; + } + } + + +###################### +# ADD=331111111 modify shift definition info in the system +###################### + +if ($ADD==331111111) + { + if ($LOGmodify_call_times==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
Modificare una SHIFT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Maiusc ID:$shift_id
Maiusc Nome: (breve descrizione del turno)$NWB#vicidial_shifts-shift_name$NWE
Maiusc Start Time:\n"; + echo "   Fine Time Shift:\n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
Maiusc Lunghezza: $NWB#vicidial_shifts-shift_length$NWE
Maiusc Feriali:
$NWB#vicidial_shifts-shift_weekdays$NWE
\n"; + echo "Domenica
\n"; + echo "Lunedi
\n"; + echo "Martedì
\n"; + echo "Mercoledì
\n"; + echo "Giovedi
\n"; + echo "Venerdì
\n"; + echo "Sabato
\n"; + echo "
\n"; + + echo "


\n"; + echo "LUSO DI QUESTO MANUALE GRUPPI SHIFT:
\n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
$row[0] $row[1]
\n"; + echo "

\n"; + + if ($LOGdelete_call_times > 0) + { + echo "

Elimina questo SHIFT DEFINIZIONE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo passaggio\n"; + } + } + else + { + echo "Le no autorizan a visio`n esta página. Vaya por favor detrás."; + } + + } + + +###################### +# ADD=31111111111 modify phone record in the system +###################### + +if ($ADD==31111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICANDO EL telefonO: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Interno Telefono: $NWB#phones-extension$NWE (Agent Screen Login Telefono)
Numero De Dial plan: (solo cifre)$NWB#phones-dialplan_number$NWE
Buzon de voz: (solo cifre)$NWB#phones-voicemail_id$NWE
CallerID De salida: (solo cifre)$NWB#phones-outbound_cid$NWE
Direccion IP del telefono: (optional)$NWB#phones-phone_ip$NWE
Direccion IP del ordenador: (optional)$NWB#phones-computer_ip$NWE
IP Server: $NWB#phones-server_ip$NWE
Login: $NWB#phones-login$NWE
Password: $NWB#phones-pass$NWE
Esito: $NWB#phones-status$NWE
Cuenta Activa: $NWB#phones-active$NWE
Tipo Del telefono: $NWB#phones-phone_type$NWE
Nome Completo: $NWB#phones-fullname$NWE
Email: $NWB#phones-email$NWE
Eliminare Casella Vocale Dopo Email:$NWB#phones-delete_vm_after_email$NWE
Compania: $NWB#phones-company$NWE
Foto: $NWB#phones-picture$NWE
Messaggi Nuovi: $row[14]$NWB#phones-messages$NWE
Messaggi Vecchi: $row[15]$NWB#phones-old_messages$NWE
Protocollo Client: $NWB#phones-protocol$NWE
Fuso Orario Locale: (No ajustar para el DST)$NWB#phones-local_gmt$NWE
Phone Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
Login del Manager: $NWB#phones-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#phones-ASTmgrSECRET$NWE
Usuario por defecto de VICIDIAL: $NWB#phones-login_user$NWE
Contraseña por defecto de VICIDIAL: $NWB#phones-login_pass$NWE
Campaña por defecto de VICIDIAL: $NWB#phones-login_campaign$NWE
Extension del parking: $NWB#phones-park_on_extension$NWE
Extension de la conferencia: $NWB#phones-conf_on_extension$NWE
Exten. Del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_extension$NWE
Archivo para música del parking de VICIDIAL: $NWB#phones-VICIDIAL_park_on_filename$NWE
Prefijo al monitorizar: $NWB#phones-monitor_prefix$NWE
Exten de grabacion: $NWB#phones-recording_exten$NWE
Exten de VmailMain: $NWB#phones-voicemail_exten$NWE
Exten de VmaiDumpl: $NWB#phones-voicemail_dump_exten$NWE
Contexto De Exten: $NWB#phones-ext_context$NWE
Telefono Contesto: $NWB#phones-phone_context$NWE
Conf file segreto: $NWB#phones-conf_secret$NWE
Canal de envío del DTMF: $NWB#phones-dtmf_send_extension$NWE
Grupo de las llamadas de salida: $NWB#phones-call_out_number_group$NWE
Localizacio`n del Navegador: $NWB#phones-client_browser$NWE
Directorio de instalacio`n: $NWB#phones-install_directory$NWE
URL CallerID: $NWB#phones-local_web_callerID_URL$NWE
URL por defecto de VICIDIAL: $NWB#phones-VICIDIAL_web_URL$NWE
Call Logging: $NWB#phones-AGI_call_logging_enabled$NWE
Cambio de Usuario: $NWB#phones-user_switching_enabled$NWE
Conferenze: $NWB#phones-conferencing_enabled$NWE
Colgar del Admin: $NWB#phones-admin_hangup_enabled$NWE
Captura del Admin: $NWB#phones-admin_hijack_enabled$NWE
Monitorizacio`n del Admin: $NWB#phones-admin_monitor_enabled$NWE
Parking de Llamada: $NWB#phones-call_parking_enabled$NWE
Uptader Check: $NWB#phones-updater_check_enabled$NWE
AF Logging: $NWB#phones-AFLogging_enabled$NWE
Colas permitidas: $NWB#phones-QUEUE_ACTION_enabled$NWE
Ventana emergente del CallerID: $NWB#phones-CallerID_popup_enabled$NWE
Boto`n Vmail: $NWB#phones-voicemail_button_enabled$NWE
Aggiornamento Veloce: $NWB#phones-enable_fast_refresh$NWE
Intervallo Aggiornamento Veloce: (in ms)$NWB#phones-fast_refresh_rate$NWE
Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
Auto Marcar el Siguiente Número: $NWB#phones-auto_dial_next_number$NWE
Parar de Grabar despue`s de cada llamada: $NWB#phones-VDstop_rec_after_each_call$NWE
Abilita messaggi SIPSAK: $NWB#phones-enable_sipsak_messages$NWE
Servidor de DBX: (Primario DB Server)$NWB#phones-DBX_server$NWE
Base de datos de DBX: (Primario Server Database)$NWB#phones-DBX_database$NWE
Usuario de DBX: (Primario DB Login)$NWB#phones-DBX_user$NWE
Contraseña de DBX: (Primario DB Secret)$NWB#phones-DBX_pass$NWE
Puerto de DBX: (Primario DB Port)$NWB#phones-DBX_port$NWE
Servidor de DBY: (Secondario DB Server)$NWB#phones-DBY_server$NWE
Base de datos de DBY: (Secondario Server Database)$NWB#phones-DBY_database$NWE
Usuario de DBY: (Secondario DB Login)$NWB#phones-DBY_user$NWE
Contraseña de DBY: (Secondario DB Secret)$NWB#phones-DBY_pass$NWE
Puerto de DBY: (Secondario DB Port)$NWB#phones-DBY_port$NWE
Template ID: $NWB#phones-template_id$NWE
Conf. Sovrascrive: $NWB#phones-conf_override$NWE
\n"; + + echo "

Pinchar aquí­ para ver las estadísticas del telefono\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTO TELEFONO\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=32111111111 modify phone alias record in the system +###################### + +if ($ADD==32111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICARE UN TELEFONO ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Alias ID:$row[0] $NWB#phones-alias_id$NWE
Alias Nome: $NWB#phones-alias_name$NWE
Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
\n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
\n"; + echo "
TELEFONI CELLULARI PRESENTE IN ALIAS:
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
LOGININTERNOSERVERPROTOCOLIP
$rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

CANC questo telefono ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo telefono cellulare alias
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=33111111111 modify group alias record in the system +###################### + +if ($ADD==33111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
MODIFICARE UN GRUPPO ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Gruppo Alias ID:$row[0] $NWB#phones-group_alias_id$NWE
Alias Nome Gruppo: $NWB#phones-group_alias_name$NWE
Numero CallerID: $NWB#phones-caller_id_number$NWE
CallerID Nome: $NWB#phones-caller_id_name$NWE
Attivo:
\n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTO GRUPPO ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo gruppo alias
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=311111111111 modify server record in the system +###################### + +if ($ADD==311111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; + + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + + echo "
MODIFICAR UN REGISTRO DEL SERVIDOR: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
ID Server: $NWB#servers-server_id$NWE
Descrizione Server: $NWB#servers-server_description$NWE
Indirizzo IP del Server: $NWB#servers-server_ip$NWE
Attivo: $NWB#servers-active$NWE
Sistema di carico: $sysload - $cpu%   $NWB#servers-sysload$NWE
Live Canali: $channels_total   $NWB#servers-channels_total$NWE
Utilizzo del disco: $disk_usage   $NWB#servers-disk_usage$NWE
Versione Di Asterisk: $NWB#servers-asterisk_version$NWE
Máx. Trunks en VICIDIAL: $NWB#servers-max_vicidial_trunks$NWE
Max chiede al secondo: $NWB#servers-outbound_calls_per_second$NWE
El Marcar Del Balance de VICIDIAL: $NWB#servers-vicidial_balance_active$NWE
VICIDIAL Balance Rank:$NWB#servers-vicidial_balance_rank$NWE
Balance Offlimits de VICIDIAL: $NWB#servers-balance_trunks_offlimits$NWE
Host Telnet: $NWB#servers-telnet_host$NWE
Porta Telnet: $NWB#servers-telnet_port$NWE
Usuario Del Manager: $NWB#servers-ASTmgrUSERNAME$NWE
Contraseña del Manager: $NWB#servers-ASTmgrSECRET$NWE
Usuario del Updater del Manager: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
Usuario Listen del Manager: $NWB#servers-ASTmgrUSERNAMElisten$NWE
Usuario Send del Manager: $NWB#servers-ASTmgrUSERNAMEsend$NWE
Conf file segreto: $NWB#servers-conf_secret$NWE
Fuso Orario Locale: (No ajustar para el DST)$NWB#servers-local_gmt$NWE
Extension de Vmail Dump : $NWB#servers-voicemail_dump_exten$NWE
Extension del AD de VICIDIAL: $NWB#servers-answer_transfer_agent$NWE
Contexto por Defecto: $NWB#servers-ext_context$NWE
Performance Di Sistema: $NWB#servers-sys_perf_log$NWE
Log Server: $NWB#servers-vd_server_logs$NWE
Salida de AGI: $NWB#servers-agi_output$NWE
Carrier Logging Attivo: $NWB#servers-carrier_logging_active$NWE
Registrazione Web Link: $NWB#servers-recording_web_link$NWE
Alternate Recording IP Server: $NWB#servers-alt_server_ip$NWE
Attivo Server Asterisk: $NWB#servers-active_asterisk_server$NWE
Attivo Server Agent: $NWB#servers-active_agent_login_server$NWE
Genera file di configurazione: $NWB#servers-generate_vicidial_conf$NWE
Ricostruire i file di configurazione: $NWB#servers-rebuild_conf_files$NWE
Ricostruire Music On Hold: $NWB#servers-rebuild_music_on_hold$NWE
Suoni Update: $NWB#servers-sounds_update$NWE
ViciDial Limite di registrazione: $NWB#servers-vicidial_recording_limit$NWE
\n"; + + + ### vicidial server trunk records for this server + echo "

TRONCOS DE VICIDIAL PARA ESTE SERVIDOR:   $NWB#vicidial_server_trunks$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
CAMPAGNA TRONCOS RESTRICCIo`N DELETE
$rowx[1]
\n"; + echo "\n"; + echo "\n"; + echo "
CANCELLA
\n"; + + echo "
AGREGUE EL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL
\n"; + echo "\n"; + echo "\n"; + echo "Bauli:
\n"; + echo "CAMPAGNA:
\n"; + echo "RESTRICTION:
\n"; + echo "
\n"; + + echo "

\n"; + + + ### list of carriers on this server + echo "
\n"; + echo "
PORTARINFUSE IN QUESTO SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIER IDNOMEREGISTRATIONATTIVO
$rowx[0]$rowx[1]$rowx[2]$rowx[3]

\n"; + + + ### list of phones on this server + echo "
\n"; + echo "
TELEFONI IN QUESTO SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
INTERNONOMEATTIVO
$rowx[0]$rowx[2]$rowx[1]

\n"; + + + ### list of conferences on this server + echo "
\n"; + echo "
CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CONFERENCEINTERNO
$rowx[0]$rowx[2]

\n"; + + + ### list of vicidial conferences on this server + echo "
\n"; + echo "
VICIDIAL CONFERENCES WITHIN THIS SERVER:
\n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
VD CONFERENCEINTERNO
$rowx[0]$rowx[2]

\n"; + + + echo "
\n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "Questo server ha $active_carriers active carriers and $inactive_carriers inactive carriers

\n"; + echo "Questo server ha $active_phones telefoni attivi e $inactive_phones telefoni inattivi

\n"; + echo "Questo server ha $active_confs active conferences

\n"; + echo "Questo server ha $active_vdconfs active vicidial conferences

\n"; + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTO SERVER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo server
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=331111111111 modify conf template record in the system +###################### + +if ($ADD==331111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; + + echo "
MODIFICARE UN RECORD CONF TEMPLATE: $row[0]
\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Template ID: $template_id
Nome modello: $NWB#vicidial_conf_templates-template_name$NWE
Template Sommario: $NWB#vicidial_conf_templates-template_contents$NWE
\n"; + + echo "
\n"; + + ### list of phones using this conf template + echo "
\n"; + echo "
PHONES LUSO DI QUESTO MODELLO CONF:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
INTERNONOMESERVERATTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + ### list of carriers using this conf template + echo "
\n"; + echo "
PORTARINFUSE LUSO DI QUESTO MODELLO CONF:
\n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
CARRIERNOMESERVERATTIVO
$rowx[0]$rowx[2]$rowx[3]$rowx[1]

\n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

CONF CANC QUESTO MODELLO\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo modello di conf
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=341111111111 modify carrier record in the system +###################### + +if ($ADD==341111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
MODIFICARE UN RECORD DEL VETTORE: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Vettore ID: $carrier_id
Nome del vettore: $NWB#vicidial_server_carriers-carrier_name$NWE
Carrier Descrizione: $NWB#vicidial_server_carriers-carrier_description$NWE
Stringa di registrazione: $NWB#vicidial_server_carriers-registration_string$NWE
Template ID: $NWB#vicidial_server_carriers-template_id$NWE
Conto Entrata: $NWB#vicidial_server_carriers-account_entry$NWE
Protocollo: $NWB#vicidial_server_carriers-protocol$NWE
Globals Stringa: $NWB#vicidial_server_carriers-globals_string$NWE
Dialplan entrata: $NWB#vicidial_server_carriers-dialplan_entry$NWE
IP Server: $NWB#vicidial_server_carriers-server_ip$NWE
Attivo: $NWB#vicidial_server_carriers-active$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

Elimina questo VETTORE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages a questo vettore
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
MODIFICA A TTS RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
TTS ID: $tts_id
TTS Nome: $NWB#vicidial_tts_prompts-tts_name$NWE
Attivo: $NWB#vicidial_tts_prompts-active$NWE
TTS Text: $NWB#vicidial_tts_prompts-tts_text$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE THIS TTS ENTRY\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per vedere chages Admin a questa voce TTS
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Music On Hold ID: $moh_id
Music On Hold Nome: $NWB#vicidial_music_on_hold-moh_name$NWE
Attivo: $NWB#vicidial_music_on_hold-active$NWE
Ordine casuale: $NWB#vicidial_music_on_hold-random$NWE
Audio Files: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rank:\n"; + + echo "   $rowx[0] - CANCELLA
\n"; + $o++; + } + + echo "
Aggiungere un file audio: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE Music On Hold ENTRATA\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per vedere chages Admin a questo Music On Hold entrata
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
MODIFICARE un messaggio vocale BOX: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Casella Vocale ID: $voicemail_id
Password: $NWB#vicidial_voicemail-pass$NWE
Name: $NWB#vicidial_voicemail-fullname$NWE
Email:$NWB#vicidial_voicemail-email$NWE
Attivo: $NWB#vicidial_voicemail-active$NWE
Eliminare Casella Vocale Dopo Email:$NWB#vicidial_voicemail-delete_vm_after_email$NWE
Messaggi Nuovi: $messages
Messaggi Vecchi: $old_messages
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

DELETE questo messaggio vocale BOX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per vedere chages Admin a questa casella vocale
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=3111111111111 modify conference record in the system +###################### + +if ($ADD==3111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFICA DELLA CONFERENZA: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conferenza: $NWB#conferences-conf_exten$NWE
IP Server: $NWB#conferences-server_ip$NWE
Interno Corrente:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTA CONFERENZA\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +###################### +# ADD=31111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==31111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Conferenza: $NWB#conferences-conf_exten$NWE
IP Server: $NWB#conferences-server_ip$NWE
Interno Corrente:
\n"; + + echo "
\n"; + if ($LOGast_delete_phones > 0) + { + echo "

CANCELLA QUESTA CONFERENZA VICIDIAL\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + +###################### +# ADD=311111111111111 modify vicidial system settings +###################### + +if ($ADD==311111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; + + echo "
MODIFICA IMPOSTAZIONI DI SISTEMA\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Versione: $version
DB Schema Versione: $db_schema_version
DB Schema Update Date: $db_schema_update_date
Auto Utente-add Value: $auto_user_add_value
Installare Data: $install_date
UsA Non-Latino: $NWB#settings-use_non_latin$NWE
Webroot Escribible: $NWB#settings-webroot_writable$NWE
El Agente de VICIDIAL Inhabilita La Exhibicio`n:$NWB#settings-vicidial_agent_disable$NWE
Permetti messaggi SIPSAK: $NWB#settings-allow_sipsak_messages$NWE
URL Home Amministrazione: $NWB#settings-admin_home_url$NWE
Permita El Logfile De la Transferencia Del Agente: $NWB#settings-enable_agc_xfer_log$NWE
Orologio End of Day:$NWB#settings-timeclock_end_of_day$NWE
Ultimo Logout orologio automatico: $timeclock_last_reset_date
Agente Screen Formato Data Header: $NWB#settings-vdc_header_date_format$NWE
Cliente di agente Screen Formato Data: $NWB#settings-vdc_customer_date_format$NWE
Agente Cliente Telefono Formato schermo: $NWB#settings-vdc_header_phone_format$NWE
API di agente attivo:$NWB#settings-vdc_agent_api_active$NWE
Solo agente di richiamata Campagna Lock: $NWB#settings-agentonly_callback_campaign_lock$NWE
Centrale Sound Control Attivo: $NWB#settings-sounds_central_control_active$NWE
Suoni Web Server: $NWB#settings-sounds_web_server$NWE
Suoni Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
Attivo Server Casella Vocale: $NWB#settings-active_voicemail_server$NWE
Auto Dial Limit: $NWB#settings-auto_dial_limit$NWE
Outbound Attivo Auto-Dial: $NWB#settings-outbound_autodial_active$NWE
Max COMPILA invita al secondo: $NWB#settings-outbound_calls_per_second$NWE
Consentire Custom Dialplan Entries: $NWB#settings-allow_custom_dialplan$NWE
Territori Utente Attivo: $NWB#settings-user_territories_active$NWE
Consentire Webform Seconda: $NWB#settings-enable_second_webform$NWE
Consentire l-integrazione TTS: $NWB#settings-enable_tts_integration$NWE
QC Attivo Caratteristiche: $NWB#settings-qc_features_active$NWE
QC Ultimo Tirare Tempo: $qc_last_pull_time
Permita La Registracion De QueueMetrics: $NWB#settings-enable_queuemetrics_logging$NWE
IP Del Servidor De QueueMetrics: $NWB#settings-queuemetrics_server_ip$NWE
Nombre del DB De QueueMetrics: $NWB#settings-queuemetrics_dbname$NWE
conexion del DB De QueueMetrics: $NWB#settings-queuemetrics_login$NWE
Contraseña del DB De QueueMetrics: $NWB#settings-queuemetrics_pass$NWE
QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
Log ID QueueMetrics: $NWB#settings-queuemetrics_log_id$NWE
QueueMetrics EnterQueue Prepend: $NWB#settings-queuemetrics_eq_prepend$NWE
Attiva Vtiger Integrazione: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Clicca qui per sincronizzare gli utenti con Vtiger\n"; + echo "
Vtiger DB IP Server: $NWB#settings-vtiger_server_ip$NWE
Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
Vtiger DB Login: $NWB#settings-vtiger_login$NWE
Vtiger DB Password: $NWB#settings-vtiger_pass$NWE
Vtiger URL: $NWB#settings-vtiger_url$NWE
\n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

Clicca qui per visualizzare Admin chages per le impostazioni di sistema
\n"; + } + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + + + + +###################### +# ADD=321111111111111 modify vicidial system statuses +###################### + +if ($ADD==321111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "ESITI DI DEFAULT IN QUESTO SISTEMA:   $NWB#vicidial_statuses$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
ESITODESCRIZIONESELEZIO
NABILE
RISPOSTA
UMANA
CATEGORIAMODIFICA/CANCELLA
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
\n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "CANCELLA\n"; + } + else + { + echo "CANCELLA\n"; + } + + echo "
\n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
\n"; + + echo "
AGGIUNGI UN NUOVO ESITO DI DEFAULT
\n"; + echo "\n"; + echo "Esito:   \n"; + echo "Descrizione:
\n"; + echo "Selezionabile:   \n"; + echo "Risposta Umana:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
\n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Categoria: \n"; + echo "  
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + + + +###################### +# ADD=331111111111111 modify vicidial status categories +###################### + +if ($ADD==331111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "VICIDIAL Status CATEGORIE:   $NWB#vicidial_status_categories$NWE
\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Avsc_id[$o] = $rowx[0]; + $Avsc_name[$o] = $rowx[1]; + $Avsc_description[$o] = $rowx[2]; + $Atovdad_display[$o] = $rowx[3]; + $Asale_category[$o] = $rowx[4]; + $Adead_lead_category[$o] = $rowx[5]; + $o++; + } + $p=0; + while ($o > $p) + { + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CATstatuses=''; + $stmt="SELECT status from vicidial_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + $stmt="SELECT status from vicidial_campaign_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $p++; + } + + echo "
CATEGORIANOMEStati in questa categoria
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$Avsc_id[$p]
\n"; + echo "$CATstatuses"; + echo "
TO VDAD Visualizzare:     Vendita Categoria:     Morto leader Categoria:  
Descrizione:
        \n"; + echo "   CANCELLA
 
\n"; + + echo "
AGGIUNGI NUOVA CATEGORIA DI ESITI
\n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
\n"; + echo "TimeOnVDAD Visualizzare:   \n"; + echo "Vendita Categoria:   \n"; + echo "Morto leader Categoria:  
\n"; + echo "Descrizione:   \n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + + + +###################### +# ADD=341111111111111 modify vicidial QC status code +###################### + +if ($ADD==341111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
\n"; + echo ""; + + echo "
\n"; + echo "QC VICIDIAL Status CODICI Nellambito di questo sistema:  $NWB#vicidial_qc_status_codes$NWE
\n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
STATUS CODEDESCRIZIONEMODIFICA/CANCELLA
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
        \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "CANCELLA\n"; + } + else + { + echo "CANCELLA\n"; + } + echo "
\n"; + + echo "
ADD NEW QC CODICE STATO
\n"; + echo "\n"; + echo "Esito:   \n"; + echo "Descrizione:
\n"; + echo "
\n"; + + echo "

\n"; + + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) + { + echo "
\n"; + echo ""; + + echo "
RICERCA UTENTI
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
Numero Utente:
Nome Completo:
Livello Utente:
Gruppo Utente:
\n"; + } + +###################### +# ADD=660 user search results +###################### + +if ($ADD==660) + { + echo "
\n"; + echo ""; + + $SQL = ''; + if ($user) {$SQL .= " user LIKE \"%$user%\" and";} + if ($full_name) {$SQL .= " full_name LIKE \"%$full_name%\" and";} + if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} + if ($user_group) {$SQL .= " user_group = '$user_group' and";} + $SQL = eregi_replace(" and$", "", $SQL); + if (strlen($SQL)>5) {$SQL = "and $SQL";} + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; +# echo "\n|$stmt|\n"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
RESULTADOS DE LA BÚSQUEDA:\n"; + echo "
\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo "\n"; + $o++; + } + + echo "
$row[1]$row[3]$row[4]$row[5]MODIFICA | STATISTICHE | ESITO | TIME
\n"; + + } + + +###################################################################################################### +###################################################################################################### +####### 8 series, Callback lists +###################################################################################################### +###################################################################################################### + +###################### +# ADD=8 find all callbacks on hold by a User +###################### +if ($ADD==8) + { + if ($LOGmodify_users==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Utente($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
Utente($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user
Remove LIVE Callbacks older than one week for this user
"; + + echo ""; + + $CBquerySQLwhere = "and user='$user'"; + + echo "
ELENCO RICHIAMI DA EFFETTUARE PER L`UTENTE: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } + +###################### +# ADD=81 find all callbacks on hold within a Campaign +###################### +if ($ADD==81) + { + if ($LOGmodify_campaigns==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this campaign
Remove LIVE Callbacks older than one week for this campaign
"; + + echo ""; + + $CBquerySQLwhere = "and campaign_id='$campaign_id'"; + + echo "
CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } + +###################### +# ADD=811 find all callbacks on hold within a List +###################### +if ($ADD==811) + { + if ($LOGmodify_lists==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this list
Remove LIVE Callbacks older than one week for this list
"; + + echo ""; + + $CBquerySQLwhere = "and list_id='$list_id'"; + + echo "
LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } + +###################### +# ADD=8111 find all callbacks on hold within a user group +###################### +if ($ADD==8111) + { + if ($LOGmodify_usergroups==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
Remove LIVE Callbacks older than one month for this user group
Remove LIVE Callbacks older than one week for this user group
"; + + echo ""; + + $CBquerySQLwhere = "and user_group='$user_group'"; + + echo "
Utente Group CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } + +###################### +# ADD=82 display all callbacks on hold +###################### +if ($ADD==82) + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $LIVELLOlink='stage=LIVELLOUP';} + + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $rslt=mysql_query($stmt, $link); + $cb_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($cb_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONTATTOLIST CAMPAGNAENTRY DATACALLBACK DATAUTENTERECIPIENTESITOGRUPPO
$row[1]$row[2]$row[3]$row[5]$row[6]$row[8]$row[9]$row[4]$row[11]
\n"; + + echo "$CBinactiveLINK"; + } + + + +###################################################################################################### +###################################################################################################### +####### 0 series, displays and searches +###################################################################################################### +###################################################################################################### + +###################### +# ADD=0 display all active users +###################### +if ($ADD==0) + { + echo "
\n"; + echo ""; + echo "
ELENCO UTENTI: "; + if (ereg('display_all',$status)) + { + $SQLstatus = ''; + echo "   mostra solo utenti attivi\n"; + } + else + { + $SQLstatus = "and active='Y'"; + echo "   mostra tutti gli utenti\n"; + } + + $USERlink='stage=USERIDDOWN'; + $NAMElink='stage=NAMEDOWN'; + $LIVELLOlink='stage=LIVELLODOWN'; + $GROUPlink='stage=GROUPDOWN'; + $SQLorder='order by full_name'; + if (eregi("USERIDUP",$stage)) {$SQLorder='order by user asc'; $USERlink='stage=USERIDDOWN';} + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc'; $USERlink='stage=USERIDUP';} + if (eregi("NAMEUP",$stage)) {$SQLorder='order by full_name asc'; $NAMElink='stage=NAMEDOWN';} + if (eregi("NAMEDOWN",$stage)) {$SQLorder='order by full_name desc'; $NAMElink='stage=NAMEUP';} + if (eregi("LIVELLOUP",$stage)) {$SQLorder='order by user_level asc'; $LIVELLOlink='stage=LIVELLODOWN';} + if (eregi("LIVELLODOWN",$stage)) {$SQLorder='order by user_level desc'; $LIVELLOlink='stage=LIVELLOUP';} + if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ID UTENTENOME COMPLETOLIVELLOGRUPPOATTIVOLINK
$row[0]$row[1]$row[2]$row[3]$row[4]
MODIFICA | STATISTICHE | ESITO | TIME
\n"; + } + +###################### +# ADD=10 display all campaigns +###################### +if ($ADD==10) + { + echo "
\n"; + echo ""; + + $stmt="SELECT campaign_id,campaign_name,active,dial_method,auto_dial_level,lead_order,dial_statuses from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + echo "
ELENCO CAMPAGNE:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + $o++; + } + + echo "
CAMPAGNA ID
NOME
ACTIVE   DIAL METODO   LIVELLO   PIOMBO PER   DIAL status   MODIFICA
$row[0]   $row[1]   $row[2]   $row[3]   $row[4]   $row[5]   $row[6]MODIFICA
\n"; + } + + +###################### +# ADD=100 display all lists +###################### +if ($ADD==100) + { + echo "
\n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
ELENCO LISTE:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $lists_printed = ''; + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $lists_printed .= "'$row[0]',"; + $o++; + } + + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ID LISTANOME LISTADESCRIZIONERTIMEPORTA CONTEATTIVODATA ULTIMA CHIAMATACAMPAGNAMODIFICA
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]MODIFICA
$row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]MODIFICA
\n"; + } + + + +###################### +# ADD=1000 display all inbound groups +###################### +if ($ADD==1000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_id,group_name,queue_priority,active,call_time_id,group_color from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $ingroups_to_print = mysql_num_rows($rslt); + + echo "
ELENCO GRUPPI INBOUND:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($ingroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
IN-GROUPNOMEPRIORITYATTIVOTIMECOLORMODIFICA
$row[0] $row[1] $row[2] $row[3] $row[4]  MODIFICA
\n"; + } + + +###################### +# ADD=1300 display all inbound dids +###################### +if ($ADD==1300) + { + echo "
\n"; + echo ""; + + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route from vicidial_inbound_dids order by did_pattern"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + + echo "
INBOUND DID LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
#DIDDESCRIZIONEATTIVOROUTEMODIFICA
$row[0] $row[1] $row[2] $row[3] $row[4]MODIFICA
\n"; + } + + +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
\n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
CALL MENU LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MENU IDNOMEPROMPTTIMEOUTOPTIONSMODIFICA
$menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]MODIFICA
\n"; + } + + +###################### +# ADD=10000 display all remote agents +###################### +if ($ADD==10000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id from vicidial_remote_agents order by server_ip,campaign_id,user_start"; + $rslt=mysql_query($stmt, $link); + $remoteagents_to_print = mysql_num_rows($rslt); + + echo "
ELENCO OPERATORI REMOTI:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($remoteagents_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
UTENTELINESSERVER   CONF-EXTEN   STATUS   CAMPAIGN   MODIFICA
$row[1] $row[2] $row[3] $row[4] $row[5] $row[6]MODIFICA
\n"; + } + + +###################### +# ADD=100000 display all user groups +###################### +if ($ADD==100000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT user_group,group_name,forced_timeclock_login from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $usergroups_to_print = mysql_num_rows($rslt); + + echo "
ELENCO GRUPPI UTENTI:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($usergroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Utente GroupNOME GRUPPOVIGORE orologio   MODIFICA
$row[0] $row[1] $row[2]MODIFICA
\n"; + } + + +###################### +# ADD=1000000 display all scripts +###################### +if ($ADD==1000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT script_id,script_name,active from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + + echo "
ELENCO SCRIPT:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SCRIPT IDNome scriptACTIVE   MODIFICA
$row[0] $row[1] $row[2]MODIFICA
\n"; + } + + +###################### +# ADD=10000000 display all filters +###################### +if ($ADD==10000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + + echo "
ELENCO FILTRI CONTATTI:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($filters_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
FILTER IDFILTER NAMEMODIFICA
$row[0] $row[1]MODIFICA
\n"; + } + + +###################### +# ADD=100000000 display all call times +###################### +if ($ADD==100000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,ct_default_start,ct_default_stop from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $calltimes_to_print = mysql_num_rows($rslt); + + echo "
ELENCO ORARI CHIAMATE:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($calltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME NOMEINIZIO DI MORADEFAULT STOPMODIFICA
$row[0] $row[1] $row[2] $row[3] MODIFICA
\n"; + } + +###################### +# ADD=1000000000 display all state call times +###################### +if ($ADD==1000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,sct_default_start,sct_default_stop from vicidial_state_call_times order by state_call_time_id"; + $rslt=mysql_query($stmt, $link); + $statecalltimes_to_print = mysql_num_rows($rslt); + + echo "
ELENCO ORARI CHIAMATE PER STATO:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($statecalltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CALLTIME IDCALLTIME STATECALLTIME NOMEINIZIO DI MORADEFAULT STOPMODIFICA
$row[0] $row[1] $row[2] $row[3] $row[4] MODIFICA
\n"; + } + +###################### +# ADD=130000000 display all shifts +###################### +if ($ADD==130000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + + echo "
SHIFT LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($shifts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SHIFT IDSHIFT NOMESHIFT INIZIOSHIFT DURATASETTIMANALEMODIFICA
$row[0] $row[1] $row[2] $row[3] $row[4] MODIFICA
\n"; + } + +###################### +# ADD=10000000000 display all phones +###################### +if ($ADD==10000000000) + { + echo "
\n"; + echo ""; + + $EXTENlink='stage=EXTENDOWN'; + $PROTOlink='stage=PROTODOWN'; + $SERVERlink='stage=SERVERDOWN'; + $STATUSlink='stage=STATUSDOWN'; + $SQLorder='order by extension,server_ip'; + if (eregi("EXTENUP",$stage)) {$SQLorder='order by extension asc'; $EXTENlink='stage=EXTENDOWN';} + if (eregi("EXTENDOWN",$stage)) {$SQLorder='order by extension desc'; $EXTENlink='stage=EXTENUP';} + if (eregi("PROTOUP",$stage)) {$SQLorder='order by protocol asc'; $PROTOlink='stage=PROTODOWN';} + if (eregi("PROTODOWN",$stage)) {$SQLorder='order by protocol desc'; $PROTOlink='stage=PROTOUP';} + if (eregi("SERVERUP",$stage)) {$SQLorder='order by server_ip asc'; $SERVERlink='stage=SERVERDOWN';} + if (eregi("SERVERDOWN",$stage)) {$SQLorder='order by server_ip desc'; $SERVERlink='stage=SERVERUP';} + if (eregi("STATUSUP",$stage)) {$SQLorder='order by status asc'; $STATUSlink='stage=STATUSDOWN';} + if (eregi("STATUSDOWN",$stage)) {$SQLorder='order by status desc'; $STATUSlink='stage=STATUSUP';} + $stmt="SELECT extension,protocol,server_ip,dialplan_number,voicemail_id,status,fullname,messages,old_messages from phones $SQLorder"; + $rslt=mysql_query($stmt, $link); + $phones_to_print = mysql_num_rows($rslt); + + echo "
ELENCO TELEFONI:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phones_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo " + + + + + + + + "; + echo "\n"; + $o++; + } + + echo "
EXTENPROTOSERVERDIAL PIANOESITONOMEVMAILLINK
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]$row[7]$row[8]MODIFICA | STATISTICHE
\n"; + } + +###################### +# ADD=12000000000 display all phones alias +###################### +if ($ADD==12000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias order by alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
TELEFONO ALIAS LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
ALIAS IDALIAS NOMELogin ELENCO TELEFONICOMODIFICA
$row[0]$row[1]$row[2]MODIFICA
\n"; + } + +###################### +# ADD=13000000000 display all group alias +###################### +if ($ADD==13000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias order by group_alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
GRUPPO ALIAS LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
GRUPPO ALIAS IDALIAS NOME GRUPPOCID NUMEROCID NOMEATTIVOMODIFICA
$row[0]$row[1]$row[2]$row[3]$row[4]MODIFICA
\n"; + } + +###################### +# ADD=100000000000 display all servers +###################### +if ($ADD==100000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,local_gmt from servers order by server_id"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + + echo "
ELENCO SERVER:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($servers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
SERVER IDNOMESERVER IPATTIVOASTERISKBauliGMTMODIFICA
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]MODIFICA
\n"; + } + +###################### +# ADD=130000000000 display all conf templates +###################### +if ($ADD==130000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT template_id,template_name from vicidial_conf_templates order by template_id"; + $rslt=mysql_query($stmt, $link); + $templates_to_print = mysql_num_rows($rslt); + + echo "
CONF TEMPLATE ELENCOINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($templates_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Template IDNome modelloMODIFICA
$row[0]$row[1]MODIFICA
\n"; + } + +###################### +# ADD=140000000000 display all carriers +###################### +if ($ADD==140000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,server_ip,protocol,registration_string,active from vicidial_server_carriers order by carrier_id"; + $rslt=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rslt); + + echo "
VETTORE LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($carriers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
Vettore IDNome del vettoreIP ServerProtocolRegistrazioneAttivoMODIFICA
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFICA
\n"; + } + + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
TTS IDTTS NomeAttivoTTS TextMODIFICA
$row[0]$row[1]$row[2]$row[3]MODIFICA
\n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
MOH IDMOH NameAttivoOrdine casualeMODIFICA
$row[0]$row[1]$row[2]$row[3]MODIFICA
\n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
VOICEMAIL SCATOLE:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
VOICEMAIL IDNameAttivoMessaggi NuoviMessaggi VecchiDeleteMODIFICA
$row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFICA
\n"; + } + + +###################### +# ADD=1000000000000 display all conferences +###################### +if ($ADD==1000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $conferences_to_print = mysql_num_rows($rslt); + + echo "
ELENCO CONFERENZE:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($conferences_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCESERVER IPINTERNOMODIFICA
$row[0]$row[1]$row[2]MODIFICA
\n"; + } + +###################### +# ADD=10000000000000 display all vicidial conferences +###################### +if ($ADD==10000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from vicidial_conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $vicidialconf_to_print = mysql_num_rows($rslt); + + echo "
VICIDIAL ELENCO CONFERENZE:\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vicidialconf_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
CONFERENCESERVER IPINTERNOMODIFICA
$row[0] $row[1] $row[2]MODIFICA
\n"; + } + + + + + +###################### +# ADD=700000000000000 view all activity in the admin log +###################### + +if ($ADD==700000000000000) + { + echo "
\n"; + echo ""; + + if ($stage > 9999) + { + $next_limit = ($stage + 10000); + $limitSQL = "10000 offset $stage"; + } + else + { + $next_limit = "10000"; + $limitSQL = "10000"; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log order by event_date desc limit $limitSQL;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN Change Log: (Ultimo 10000 record)\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUTENTEIPSECTIONTYPERECORD IDDESCRIZIONEGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "NEXT\n"; + echo "
\n"; + } + + +###################### +# ADD=710000000000000 view all activity in the admin log made by one user +###################### + +if ($ADD==710000000000000) + { + echo "\n";echo "\n"; +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; + +?> +
+ +
\n"; + echo ""; + + $stmt="SELECT full_name from vicidial_users where user='$stage';"; + $rslt=mysql_query($stmt, $link); + $names_to_print = mysql_num_rows($rslt); + if ($names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $user_name = $row[0]; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where user='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN Change Log: Modifiche apportate dal $stage - $user_name\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUTENTEIPSECTIONTYPERECORD IDDESCRIZIONEGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=720000000000000 view all activity in the admin log made to one section/value +###################### + +if ($ADD==720000000000000) + { + echo "\n"; +echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where event_section='$category' and record_id='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
ADMIN Change Log: Sezione Records - $category - $stage\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
IDDATE TIMEUTENTEIPSECTIONTYPERECORD IDDESCRIZIONEGOTO
$row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


\n"; + echo "\n"; + echo "
\n"; + } + + +###################### +# ADD=730000000000000 detail view of one admin log entry +###################### + +if ($ADD==730000000000000) + { + echo "
\n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,val.user,ip_address,event_section,event_type,record_id,event_code,event_notes,event_sql,full_name from vicidial_admin_log val, vicidial_users vu where admin_log_id='$stage' and val.user=vu.user;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + if ($logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + echo "
ADMIN Change Log: Record Dettagliata - $stage

\n"; + echo "
\n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + $row[9] = eregi_replace("',","' ,",$row[9]); + echo ""; + echo ""; + echo "\n"; + echo "
ID: $row[0]
DATE TIME: $row[1]
USER: $row[2] - $row[10]
IP: $row[3]
SECTION: $row[4]
TYPE: $row[5]
RECORD ID: $row[6]
DESCRIZIONE: $row[7]
NOTES: $row[8]
SQL:

$row[9]



\n"; + echo "\n"; + echo "
\n"; + } + } + + +###################### +# ADD=999999 display reports section +###################### +if ($ADD==999999) + { + if ($LOGview_reports==1) + { + echo "
\n"; + echo ""; + + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $servers_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $sysload[$i] = $row[4]; + $channels_total[$i] = $row[5]; + $cpu_idle_percent[$i] = $row[6]; + $disk_usage[$i] = $row[7]; + $i++; + } + + $stmt="SELECT queuemetrics_url,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $queuemetrics_url_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; + ?> + + + + + + Statistiche e Report + Statistiche e Report

+
+       + + Real-Time Rapporti
+
+ Inbound and Outbound Calling Rapporti
+ + +
+       + + Agent Rapporti
+
+ Time Clock Rapporti
+
+ Other Report and Links
+ +
+ + +

+		
+		 $o)
+			{
+			$cpu = (100 - $cpu_idle_percent[$o]);
+			$disk = '';
+			$disk_ary = explode('|',$disk_usage[$o]);
+			$disk_ary_ct = count($disk_ary);
+			$k=0;
+			while ($k < $disk_ary_ct)
+				{
+				$disk_ary[$k] = preg_replace("/^\d* /","",$disk_ary[$k]);
+				if ($k<1) {$disk = "$disk_ary[$k]";}
+				else
+					{
+					if ($disk_ary[$k] > $disk) {$disk = "$disk_ary[$k]";}
+					}
+				$k++;
+				}
+			$disk = "$disk%";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			echo "\n";
+			$o++;
+			}
+
+		echo "
SERVERDESCRIZIONEIPACTLOADCHANDISKOUTBOUNDINBOUND
$server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]$sysload[$o] - $cpu%$channels_total[$o]$diskLINKLINK
\n"; + } + else + { + echo "Non hai l`autorizzazione per accedere a questa pagina\n"; + exit; + } + } + + +echo "
\n"; +echo "
\n"; + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "
\n"; +echo "

"; +echo "VERSIONE: $admin_version
"; +echo "BUILD: $build
\n"; + +?> + +
+
+ + + +1) + { + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Domenica ora locale + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Lunedi ora locale + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Martedì ora locale + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Mercoledì ora locale + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Giovedi ora locale + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Venerdì ora locale + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Sabato ora locale + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Domenica ora locale + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Lunedi ora locale + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Martedì ora locale + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Mercoledì ora locale + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Giovedi ora locale + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Venerdì ora locale + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Sabato ora locale + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL"; + #$DB=1; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rslt_rows = mysql_num_rows($rslt); + if ($rslt_rows) + { + $rowx=mysql_fetch_row($rslt); + $active_leads = "$rowx[0]"; + } + else {$active_leads = '0';} + + echo "|$DB|\n"; + echo "Questa campagna ha $active_leads contatti da chiamare in queste liste\n"; + } + else + { + echo "nessun esito di chiamata selezionato per questa campagna\n"; + } + } + else + { + echo "nessuna lista attiva selezionata per questa campagna\n"; + } + } +else + { + echo "nessuna lista attiva selezionata per questa campagna\n"; + } +##### END calculate what gmt_offset_now values are within the allowed local_call_time setting ### +} +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin_header.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin_header.php new file mode 100644 index 00000000..371554a2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin_header.php @@ -0,0 +1,1287 @@ + LICENSE: AGPLv2 +# + +# CHANGES +# 90310-0709 - First Build +# 90508-0542 - Added Call Menu option, changed script to use long PHP tags +# 90514-0605 - Added audio prompt selection functions +# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option +# 90531-2339 - Added Dynamic options for Call Menu +# 90612-0852 - Changed relative links +# 90635-0943 - Added javascript for dynamic menus in In-Groups +# 90627-0548 - Added no-agent-no-queue options +# 90628-1016 - Added Text-to-speech options +# 90830-2213 - Added Music On Hold options +# 90904-1534 - Added launch_moh_chooser +# 90916-2334 - Added Voicemail options +# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus +# + + +######################### SMALL HTML HEADER BEGIN ####################################### +if($short_header) + { + ?> +
+ + + + + + + + + + + + +
    Utenti     Campagnas     Liste     Script     Filtri     In-Groups     Gruppi Utenti     Operatori Remoti     Admin     Rapporti  
+ 0) + { + if ($hh=='lists') + {$lists_hh="bgcolor=\"$lists_color\""; $lists_fc="$lists_font"; $lists_bold="$header_selected_bold";} + else {$lists_hh=''; $lists_fc='WHITE'; $lists_bold="$header_nonselected_bold";} + } +if ($hh=='ingroups') + {$ingroups_hh="bgcolor=\"$ingroups_color\""; $ingroups_fc="$ingroups_font"; $ingroups_bold="$header_selected_bold";} + else {$ingroups_hh=''; $ingroups_fc='WHITE'; $ingroups_bold="$header_nonselected_bold";} +if ($hh=='remoteagent') + {$remoteagent_hh="bgcolor=\"$remoteagent_color\""; $remoteagent_fc="$remoteagent_font"; $remoteagent_bold="$header_selected_bold";} + else {$remoteagent_hh=''; $remoteagent_fc='WHITE'; $remoteagent_bold="$header_nonselected_bold";} +if ($hh=='usergroups') + {$usergroups_hh="bgcolor=\"$usergroups_color\""; $usergroups_fc="$usergroups_font"; $usergroups_bold="$header_selected_bold";} + else {$usergroups_hh=''; $usergroups_fc='WHITE'; $usergroups_bold="$header_nonselected_bold";} +if ($hh=='scripts') + {$scripts_hh="bgcolor=\"$scripts_color\""; $scripts_fc="$scripts_font"; $scripts_bold="$header_selected_bold";} + else {$scripts_hh=''; $scripts_fc='WHITE'; $scripts_bold="$header_nonselected_bold";} +if ($SSoutbound_autodial_active > 0) + { + if ($hh=='filters') + {$filters_hh="bgcolor=\"$filters_color\""; $filters_fc="$filters_font"; $filters_bold="$header_selected_bold";} + else {$filters_hh=''; $filters_fc='WHITE'; $filters_bold="$header_nonselected_bold";} + } +if ($hh=='admin') + {$admin_hh="bgcolor=\"$admin_color\""; $admin_fc="$admin_font"; $admin_bold="$header_selected_bold";} + else {$admin_hh=''; $admin_fc='WHITE'; $admin_bold="$header_nonselected_bold";} +if ($hh=='reports') + {$reports_hh="bgcolor=\"$reports_color\""; $reports_fc="$reports_font"; $reports_bold="$header_selected_bold";} + else {$reports_hh=''; $reports_fc='WHITE'; $reports_bold="$header_nonselected_bold";} + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
English Italiano
+ +\r\n"; + print " \r\n"; + } + $rec_count++; + } +$sthA->finish(); + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader_super.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader_super.pl new file mode 100644 index 00000000..9b09bba7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader_super.pl @@ -0,0 +1,1162 @@ +#!/usr/bin/perl +# +# listloader_super.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60906-1056 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1207 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$vars=$ARGV[0]; +@xls_fields=split(/\,/, $vars); + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +### Grab Server values from the database +$stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } +$sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[0]]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[1]]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[2]]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[3]]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[4]]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[5]]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[6]]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[7]]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[8]]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[9]]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[10]]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[11]]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[12]]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[13]]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[14]]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[15]]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[16]]; + if ($oWkC) {$country_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[17]]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[18]]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[19]]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[20]]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[21]]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } + + + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/new_listloader_superL.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/new_listloader_superL.php new file mode 100644 index 00000000..e19121fe --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/new_listloader_superL.php @@ -0,0 +1,2258 @@ + LICENSE: AGPLv2 +# +# AST GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 60113-1603 - Fixed a few bugs in Excel import +# 60421-1624 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60616-1240 - added listID override +# 60616-1604 - added gmt lookup for each lead +# 60619-1651 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1121 - fixed for nonwritable directories +# 60906-1100 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1149 - added postal code GMT lookup and duplicate check options +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0417 - UTF8 changes +# 80514-1030 - removed filesize limit and raised number of errors to be displayed +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 81011-2009 - a few bug fixes +# 90309-1831 - Added admin_log logging +# 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# +# 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 = '2.2.0-33'; +$build = '91112-0616'; + + +require("dbconnect.php"); + +### links used for testing +#$link=mysql_connect("10.10.10.15", "cron", "1234"); +#mysql_select_db("asterisk"); +#$WeBServeRRooT = '/home/www/htdocs'; + +$US='_'; + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} +if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} +if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} + elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} +if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} + elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} +if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} +if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} + elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} +if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} + elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} +if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} +if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} +if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} + elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} +if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"];} + elseif (isset($_POST["province_field"])) {$province_field=$_POST["province_field"];} +if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} + elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} +if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} +if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} + elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} + elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} +if (isset($_GET["phone_code_override"])) {$phone_code_override=$_GET["phone_code_override"];} + elseif (isset($_POST["phone_code_override"])) {$phone_code_override=$_POST["phone_code_override"];} + $phone_code_override = (preg_replace("/\D/","",$phone_code_override)); + +# $country_field=$_GET["country_field"]; if (!$country_field) {$country_field=$_POST["country_field"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('new_listloader_superL.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"AIUTO\""; + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +function macfontfix($fontsize) { + + $browser = getenv("HTTP_USER_AGENT"); + $pctype = explode("(", $browser); + if (ereg("Mac",$pctype[1])) { + /* Browser is a Mac. If not Netscape 6, raise fonts */ + + $blownbrowser = explode('/', $browser); + $ver = explode(' ', $blownbrowser[1]); + $ver = $ver[0]; + if ($ver >= 5.0) return $fontsize; else return ($fontsize+2); + + } else return $fontsize; /* Browser is not a Mac - don't touch fonts */ +} + +echo "\n"; + +?> + + + +ADMINISTRATION: Lead Loader + + + +
+VICIDIAL logo +ADMINISTRATION
+ + + + 1) { + ?> + >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + + + + 1) + { + if ($sh=='basic') {$sh='list';} + if ($sh=='detail') {$sh='list';} + if ($sh=='dialstat') {$sh='list';} + + if ($sh=='list') {$list_sh="bgcolor=\"$subcamp_color\""; $list_fc="$subcamp_font";} + else {$list_sh=''; $list_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$subcamp_color\""; $status_fc="$subcamp_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='hotkey') {$hotkey_sh="bgcolor=\"$subcamp_color\""; $hotkey_fc="$subcamp_font";} + else {$hotkey_sh=''; $hotkey_fc='BLACK';} + if ($sh=='recycle') {$recycle_sh="bgcolor=\"$subcamp_color\""; $recycle_fc="$subcamp_font";} + else {$recycle_sh=''; $recycle_fc='BLACK';} + if ($sh=='autoalt') {$autoalt_sh="bgcolor=\"$subcamp_color\""; $autoalt_fc="$subcamp_font";} + else {$autoalt_sh=''; $autoalt_fc='BLACK';} + if ($sh=='pause') {$pause_sh="bgcolor=\"$subcamp_color\""; $pause_fc="$subcamp_font";} + else {$pause_sh=''; $pause_fc='BLACK';} + if ($sh=='listmix') {$listmix_sh="bgcolor=\"$subcamp_color\""; $listmix_fc="$subcamp_font";} + else {$listmix_sh=''; $listmix_fc='BLACK';} + + ?> + > + + > + + > + + 0) + { + ?> + > + + > + + > + + + > + + + + 0) + { + ?> + + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Add-Eliminare numero da DNC';} + else {$DNClink = 'Add Number To DNC';} + ?> + >>>>> + + + + 1) + { + ?> + >> + + + 0) + { + ?> + + 1) + { + ?> + >> + + + + 1) + { + ?> + >>>>>>>>> + + + + 1) + { + ?> + >>>> + + + + 1) + { + ?> + >> + + + + 1) + { + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} + else {$times_sh=''; $times_fc='BLACK';} + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} + else {$shifts_sh=''; $shifts_fc='BLACK';} + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} + else {$templates_sh=''; $templates_fc='BLACK';} + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} + else {$carriers_sh=''; $carriers_fc='BLACK';} + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} + else {$phones_sh=''; $phones_fc='BLACK';} + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} + else {$server_sh=''; $server_fc='BLACK';} + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} + else {$conference_sh=''; $conference_fc='BLACK';} + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} + else {$settings_sh=''; $settings_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} + + ?> + > + + > + > + > + > + > + > + > + > + > + + 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + + + + +
WIDTH=160> + SIZE=>Utenti +
+   >Inserisci Utenti +
+   >Aggiungere un nuovo utente +
+   >Copia Utente +
+   >Cerca un utente +
+   >Statistiche utente +
+   >Status Utente +
+   >Time Sheet
+   >Utente Territori
> + SIZE=>Campagnas +
>   SIZE=>Campagne Main
>   SIZE=>Esiti
>   SIZE=>Hot-Key
>   SIZE=>Piombo Riciclare
>   SIZE=>Auto-Alt Dial
>   SIZE=>Elenco Mix
>   SIZE=>Codici Pausa
> SIZE=>Liste
  + > Visualizza Liste +
  + > Nuova Lista +
  + > Ricerca Contatti +
  + > +
  + > Carica Nuovi Contatti +
> + SIZE=> Script +
  + > Visualizza Script +
  + > Aggiungi Nuovo Script +
> SIZE=> Filtri
  + > Visualizza Filtri +
  + > Aggiungi Nuovo Filtro +
> + SIZE=> Gruppi Inbound +
  + > Visualizza Gruppi Inbound +
  + > Aggiungi Gruppo Inbound +
  + > Copia Gruppo Inbound
+
  + > Visualizza DIDs +
  + > Aggiungi un nuovo DID +
  + > CopiaDID
+
  + > Show Call Menu +
  + > Aggiungi un nuovo menu Call +
  + > Copia Call Menu +
> + SIZE=> Gruppi Utenti +
  + > Visualizza Gruppi Utenti +
  + >Aggiungi Nuovo Gruppo Utente +
  + > Report Orario Per Gruppo +
  + > Bulk Gruppo Cambia +
> + SIZE=> Operatori Remoti +
  + > Visualizza Operatori Remoti +
  + >Aggiungi Operatore Remoto +
> + SIZE=> Admin +
COLSPAN=2>   + SIZE=> Orari Chiamata
>   + SIZE=> Turni
>   + SIZE=> Telefoni
>   + SIZE=> Modelli
>   + SIZE=> Vettori
>   + SIZE=> Server
>   + SIZE=> Conferencias
>   + SIZE=> Impostazioni di Sistema
>   + SIZE=> Esiti di Default
>   + SIZE=> Casella Vocale
>   + SIZE=> Audio Store
>   + SIZE=> Music On Hold
>   + SIZE=> Text To Speech
> + SIZE=> Report +
 
+
BGCOLOR=#D9E6FE> + + + + + HEIGHT=15> + + + + + + + + + + + + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { + ?> + > + 1) and (!eregi('campaign',$hh) ) ) { + ?> + > + + > + 1) { + ?> +> + + + + +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + $call_log .= ""; + $call_log .= ""; + $call_log .= ""; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); + + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + + $campaign_id = $row[5]; + } + + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); + + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; + + echo "
Informazioni Chiamata: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
HOME | Orologio | Logout  
>   > Visualizza Campagne     |     > Aggiungi Nuova Campagna     |     > Copia Campagna     |     > Riepilogo Campagne In Tempo Reale
  > Elenca Orari Chiamata  | > Nuovo Orario Chiamate  | > Elenca Orari Chiamata Per Stati  | > Nuovo Orario Chiamate Per Stato
  > Mostra cambiamenti  | > Aggiungi un nuovo Shift
  > Visualizza Telefoni  | > Aggiungi Un Nuovo Telefono  | > Telefono Alias Elenco  | > Aggiungi un nuovo telefono Alias  | > Gruppo Alias Elenco  | > Aggiungere un nuovo gruppo Alias
  >Visualizza Conferenze   |   > Aggiungi Conferenza   |   > Visualizza Conferenze VICIDIAL   |   > Aggiungi Conferenza VICIDIAL
  > Visualizza Server   |   > Aggiungi Un Nuovo Server
  > Visualizza modelli   |   > Aggiungi un nuovo modello
  > Show Vettori   |   > Add A New Carrier
  > Mostra TTS Entries   |   > Aggiungere una nuova voce TTS
  > Mostra MOH Entries   |   > Aggiungere una nuova voce MOH
  > Show Casella Vocale Entries   |   > Add A New Casella Vocale Entry
  > Impostazioni di Sistema
  > Esiti di Default   |   > Categorie di esiti   |   >Codici di stato, QC
  >Statistiche utente   |   >Status Utente   |   >Time Sheet   |   >Giorni di stato
>  
+ LICENSE: AGPLv2 +# +# CHANGES +# +# 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 +# 60609-1112 - Added DNC list addition if status changed to DNC +# 60619-1539 - Added variable filtering to eliminate SQL injection attack threat +# 61130-1639 - Added recording_log lookup and list for this lead_id +# 61201-1136 - Added recording_log user(TSR) display and link +# 70305-1133 - Changed to default CHECKED modify logs upon status change +# 70424-1128 - Added campaign-specific statuses, reformatted recordings list +# 70702-1259 - Added recording location link and truncation +# 70906-2132 - Added closer_log records display +# 80428-0144 - UTF8 cleanup +# 80501-0454 - Added Hangup Reason to logs display +# 80516-0936 - Cleanup of logging changes, added vicidial_agent_log display +# 80701-0832 - Changed to allow for altering of main phone number +# 80805-2106 - Changed comments to TEXTAREA +# 81210-1529 - Added server recording display options +# 90309-1829 - Added admin_log logging +# 90508-0644 - Changed to PHP long tags +# 90708-1549 - Added phone number dialed to outbound log +# 90721-1246 - Added rank and owner as vicidial_list fields +# 90917-2355 - Added extended alt phone entries +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["old_phone"])) {$old_phone=$_GET["old_phone"];} + elseif (isset($_POST["old_phone"])) {$old_phone=$_POST["old_phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_GET["CBchangeUSERtoANY"];} + elseif (isset($_POST["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_POST["CBchangeUSERtoANY"];} +if (isset($_GET["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_GET["CBchangeUSERtoUSER"];} + elseif (isset($_POST["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_POST["CBchangeUSERtoUSER"];} +if (isset($_GET["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_GET["CBchangeANYtoUSER"];} + elseif (isset($_POST["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_POST["CBchangeANYtoUSER"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} + elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} +if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];} + elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];} +if (isset($_GET["modify_logs"])) {$modify_logs=$_GET["modify_logs"];} + elseif (isset($_POST["modify_logs"])) {$modify_logs=$_POST["modify_logs"];} +if (isset($_GET["modify_closer_logs"])) {$modify_closer_logs=$_GET["modify_closer_logs"];} + elseif (isset($_POST["modify_closer_logs"])) {$modify_closer_logs=$_POST["modify_closer_logs"];} +if (isset($_GET["modify_agent_logs"])) {$modify_agent_logs=$_GET["modify_agent_logs"];} + elseif (isset($_POST["modify_agent_logs"])) {$modify_agent_logs=$_POST["modify_agent_logs"];} +if (isset($_GET["add_closer_record"])) {$add_closer_record=$_GET["add_closer_record"];} + elseif (isset($_POST["add_closer_record"])) {$add_closer_record=$_POST["add_closer_record"];} + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $old_phone = ereg_replace("[^0-9]","",$old_phone); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $alt_phone = ereg_replace("[^0-9]","",$alt_phone); + } +if (strlen($phone_number)<6) {$phone_number=$old_phone;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Registro del Lead modificado + + +
+ADMINISTRATION: Registro del Lead modificado
\n"; + +if ($end_call > 0) + { + ### update the lead record in the vicidial_list table + $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) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "informazione modificata

\n"; + echo "\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='MODIFY', record_id='$lead_id', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + if ( ($dispo != $status) and ($dispo == 'CALLBK') ) + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record inactivated: $lead_id
\n"; + } + + if ( ($dispo != $status) and ($status == 'DNC') ) + { + ### add lead to the internal DNC list + $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
Lead added to DNC List: $lead_id - $phone_number
\n"; + } + ### update last record in vicidial_log table + if (($dispo != $status) and ($modify_logs > 0)) + { + $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_closer_log table + if (($dispo != $status) and ($modify_closer_logs > 0)) + { + $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_agent_log table + if (($dispo != $status) and ($modify_agent_logs > 0)) + { + $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + if ($add_closer_record > 0) + { + ### 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('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . 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";} + $rslt=mysql_query($stmt, $link); + } + + + } +else + { + + if ($CBchangeUSERtoANY == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='" . mysql_real_escape_string($callback_id) . "';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to ANYONE
\n"; + } + if ($CBchangeUSERtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record user changed to $CBuser
\n"; + } + if ($CBchangeANYtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
vicidial_callback record changed to USERONLY, user: $CBuser
\n"; + } + + + + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
$c$row[0] $row[1] $row[2] $row[3] $row[4]
$u$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1] $row[15]   $row[10]
$y$row[3] $row[5] $row[1] $row[7] $row[9] $row[11] $row[13]   $row[14]   $row[15]   $row[17]
$y$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1]   $row[14]   $row[17]
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     Lead ID: $lead_id
Fronter: $tsr     ID Lista: $list_id
Nome:   \n"; + echo " Cognome:
Indirizzo 1 :
Indirizzo 2 :
Indirizzo 3 :
Citta` :
Estado:   \n"; + echo " CAP:
Provincia :
Stato :
Main Phone :
Numero Alt :
Email :
Seguridad:
Rank :
Owner :
Note :
Esito: (with $log_campaign statuses)
Modificarevicidial log
Modificareagent log
Modificarecloser log
Add closer log record
\n"; + echo "


\n"; + + if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) + { + ### find any vicidial_callback records for this lead + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group 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";} + $rslt=mysql_query($stmt, $link); + $CB_to_print = mysql_num_rows($rslt); + $rowx=mysql_fetch_row($rslt); + + if ($CB_to_print>0) + { + if ($rowx[9] == 'USERONLY') + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

\n"; + + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UtenteID: \n"; + echo "

\n"; + } + else + { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UtenteID: \n"; + echo "

\n"; + } + } + else + { + echo "
No Callback records found
\n"; + } + } + } + else + { + echo "las operaciones de búsqueda del plomo FALLARON para el lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + echo "

\n"; + + echo "
\n"; + + if ($c > 0) + { + echo "EXTENDED ALTERNATE NUMERI DI TELEFONO PER QUESTA PIOMBO:\n"; + echo "\n"; + echo "\n"; + + echo "$alts_output\n"; + + echo "
# ALT PHONE ALT NOTE ALT COUNT ACTIVE
\n"; + echo "

\n"; + } + + echo "CHIAMATE VERSO QUESTO CONTATTO:\n"; + echo "\n"; + echo "\n"; + + echo "$call_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNA LIST LEAD HANGUP REASON PHONE
\n"; + echo "

\n"; + + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$closer_log\n"; + + echo "
# DATE/TIME LENGTH STATUS TSR CAMPAGNA LIST LEAD WAIT HANGUP REASON
\n"; + echo "

\n"; + + + echo "AGENT LOG RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$agent_log\n"; + + echo "
# DATE/TIME CAMPAGNA TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
\n"; + echo "

\n"; + + + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "$locat";} + else + {$location = $locat;} + $u++; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + + } + + + echo "
# LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
$u $row[12] $row[4] $row[8] $row[0]   $row[10] $location $row[13]
\n"; + } + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nTempo Esecuzione Script: $RUNtime seconds
"; + + +?> + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin_search_lead.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin_search_lead.php new file mode 100644 index 00000000..d2a66b9c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/admin_search_lead.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 80710-0023 - Added searching by list, user, status +# 90121-0500 - Added filter for phone to remove non-digits +# 90309-1828 - Added admin_log logging +# 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); +$phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner'; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Ricerca Contatti +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '100'; +$hh = 'lists'; +$LOGast_admin_access = '1'; +$SSoutbound_autodial_active = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$lists_color = '#FFFF99'; +$lists_font = 'BLACK'; +$lists_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + +echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; + +if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<form method=post name=search action=\"$PHP_SELF\">\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<b>Per favore, inserisci:<br> Vendor ID(co`digo del vendedor del Lead): <input type=text name=vendor_id size=10 maxlength=10> or \n"; + echo "<br><b>un numero di telefono: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; + echo "<br><b>un ID Contatto: <input type=text name=lead_id size=10 maxlength=10> or\n"; + echo "<br><b>esito: <input type=text name=status size=7 maxlength=6>   \n"; + echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; + echo "<b>user: <input type=text name=user size=15 maxlength=20> <br><br>\n"; + echo "<input type=submit name=submit value=INVIA></b>\n"; + echo "</form>\n</center>\n"; + echo "</body></html>\n"; + exit; + } + +else + { + + if ($vendor_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; + } + else + { + if ($phone) + { + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } + } + else + { + if ($lead_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + } + else + { + if ( (strlen($status)>0) or (strlen($list_id)>0) or (strlen($user)>0) ) + { + $statusSQL = ''; + $list_idSQL = ''; + $userSQL = ''; + if (strlen($status)>0) + { + $statusSQL = "status='" . mysql_real_escape_string($status) . "'"; $SQLctA++; + } + if (strlen($list_id)>0) + { + if ($SQLctA > 0) {$andA = 'and';} + $list_idSQL = "$andA list_id='" . mysql_real_escape_string($list_id) . "'"; $SQLctB++; + } + if (strlen($user)>0) + { + if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} + $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; + } + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; + } + else + { + print "ERROR: you must search for something! Go back and search for something"; + exit; + } + } + } + } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + + if ($DB) + { + echo "\n\n$stmt\n\n"; + } + + $rslt=mysql_query("$stmt", $link); + $results_to_print = mysql_num_rows($rslt); + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<b>Le variabili di ricerca inserite non sono attive in questo sistema</b><br><br>\n"; + echo "<b>Per favore torna indietro e controlla di nuovo le informazioni inserite, quindi reinviale di nuovo</b>\n"; + echo "</center>\n"; + echo "</body></html>\n"; + exit; + } + else + { + echo "<b>RESULTS: $results_to_print</b><BR><BR>\n"; + echo "<TABLE BGCOLOR=WHITE CELLPADDING=1 CELLSPACING=0>\n"; + echo "<TR BGCOLOR=BLACK>\n"; + echo "<TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>#</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LEAD ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ESITO</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>VENDOR ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LAST AGENT</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>ID LISTA</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>PHONE</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>NOME</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>CITY</B></FONT></TD>\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"; + echo "</TR>\n"; + $o=0; + while ($results_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $o++; + $search_lead = $row[0]; + 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]\" target=\"_blank\">$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[31]</FONT></TD>\n"; + echo "</TR>\n"; + } + echo "</TABLE>\n"; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n<a href=\"$PHP_SELF\">NUOVA RICERCA</a>"; + + +echo "\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds"; + + +?> + + + +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/audio_store.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $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 > 7 and modify_campaigns='1'"; + 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|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $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); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/call_report_export.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/call_report_export.php new file mode 100644 index 00000000..77a49b05 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/call_report_export.php @@ -0,0 +1,562 @@ +<?php +# call_report_export.php +# +# displays options to select for downloading of leads and their vicidial_log +# and/or vicidial_closer_log information by status, list_id and date range. +# downloads to a flat text file that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} + elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and export_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### +if ($run_export > 0) + { + $US='_'; + $MT[0]=''; + $ip = getenv("REMOTE_ADDR"); + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $FILE_TIME = date("Ymd-His"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $campaign_ct = count($campaign); + $group_ct = count($group); + $user_group_ct = count($user_group); + $list_ct = count($list_id); + $status_ct = count($status); + $campaign_string='|'; + $group_string='|'; + $user_group_string='|'; + $list_string='|'; + $status_string='|'; + + $i=0; + while($i < $campaign_ct) + { + $campaign_string .= "$campaign[$i]|"; + $campaign_SQL .= "'$campaign[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$campaign_string) ) or ($campaign_ct < 1) ) + { + $campaign_SQL = "campaign_id IN('')"; + $RUNcampaign=0; + } + else + { + $campaign_SQL = eregi_replace(",$",'',$campaign_SQL); + $campaign_SQL = "and vl.campaign_id IN($campaign_SQL)"; + $RUNcampaign++; + } + + $i=0; + while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; + $group_SQL = "campaign_id IN('')"; + $RUNgroup=0; + } + else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and vl.campaign_id IN($group_SQL)"; + $RUNgroup++; + } + + $i=0; + while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } + else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vl.user_group IN($user_group_SQL)"; + } + + $i=0; + while($i < $list_ct) + { + $list_string .= "$list_id[$i]|"; + $list_SQL .= "'$list_id[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$list_string) ) or ($list_ct < 1) ) + { + $list_SQL = ""; + } + else + { + $list_SQL = eregi_replace(",$",'',$list_SQL); + $list_SQL = "and vi.list_id IN($list_SQL)"; + } + + $i=0; + while($i < $status_ct) + { + $status_string .= "$status[$i]|"; + $status_SQL .= "'$status[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$status_string) ) or ($status_ct < 1) ) + { + $status_SQL = ""; + } + else + { + $status_SQL = eregi_replace(",$",'',$status_SQL); + $status_SQL = "and vl.status IN($status_SQL)"; + } + + + if ($DB > 0) + { + echo "<BR>\n"; + echo "$campaign_ct|$campaign_string|$campaign_SQL\n"; + echo "<BR>\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + echo "$list_ct|$list_string|$list_SQL\n"; + echo "<BR>\n"; + echo "$status_ct|$status_string|$status_SQL\n"; + echo "<BR>\n"; + } + + $outbound_calls=0; + $export_rows=''; + $k=0; + if ($RUNcampaign > 0) + { + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $outbound_to_print = mysql_num_rows($rslt); + if ($outbound_to_print < 1) + { + echo "There are no outbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $outbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + $outbound_calls++; + } + } + } + + if ($RUNgroup > 0) + { + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmtA, $link); + if ($DB) {echo "$stmt\n";} + $inbound_to_print = mysql_num_rows($rslt); + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) + { + echo "There are no inbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + } + } + } + + + if ( ($outbound_to_print > 0) or ($inbound_to_print > 0) ) + { + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $TXTfilename = "EXPORT_CALL_REPORT_$FILE_TIME.txt"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$TXTfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } + } + else + { + echo "There are no calls during this time period for these parameters\n"; + exit; + } + } +##### END RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### + + +else + { + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $stmt="select campaign_id from vicidial_campaigns;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $campaigns_to_print = mysql_num_rows($rslt); + $i=0; + $LISTcampaigns[$i]='---NONE---'; + $i++; + $campaigns_to_print++; + while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTcampaigns[$i] =$row[0]; + $i++; + } + + $stmt="select group_id from vicidial_inbound_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; + while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $i++; + } + + $stmt="select user_group from vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; + while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + + $stmt="select list_id from vicidial_lists;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $lists_to_print = mysql_num_rows($rslt); + $i=0; + $LISTlists[$i]='---ALL---'; + $i++; + $lists_to_print++; + while ($i < $lists_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTlists[$i] =$row[0]; + $i++; + } + + $stmt="select status from vicidial_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $statuses_to_print = mysql_num_rows($rslt); + $i=0; + $LISTstatus[$i]='---ALL---'; + $i++; + $statuses_to_print++; + while ($i < $statuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + } + + $stmt="select distinct status from vicidial_campaign_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $Cstatuses_to_print = mysql_num_rows($rslt); + $j=0; + while ($j < $Cstatuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + $j++; + } + $statuses_to_print = ($statuses_to_print + $Cstatuses_to_print); + + echo "<HTML><HEAD>\n"; + + + echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; + + ##### BEGIN Set variables to make header show properly ##### + $ADD = '100'; + $hh = 'lists'; + $LOGast_admin_access = '1'; + $SSoutbound_autodial_active = '1'; + $ADMIN = 'admin.php'; + $page_width='770'; + $section_width='750'; + $header_font_size='3'; + $subheader_font_size='2'; + $subcamp_font_size='2'; + $header_selected_bold='<b>'; + $header_nonselected_bold=''; + $lists_color = '#FFFF99'; + $lists_font = 'BLACK'; + $lists_color = '#E6E6E6'; + $subcamp_color = '#C6C6C6'; + ##### END Set variables to make header show properly ##### + + require("admin_header.php"); + + + echo "<CENTER><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; + echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; + echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; + echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; + echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; + echo "<BR>to<BR>\n"; + echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; + $o=0; + while ($campaigns_to_print > $o) + { + if (ereg("\|$LISTcampaigns[$o]\|",$campaign_string)) + {echo "<option selected value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + else + {echo "<option value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; + $o=0; + while ($groups_to_print > $o) + { + if (ereg("\|$LISTgroups[$o]\|",$group_string)) + {echo "<option selected value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + else + {echo "<option value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; + $o=0; + while ($lists_to_print > $o) + { + if (ereg("\|$LISTlists[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + else + {echo "<option value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; + $o=0; + while ($statuses_to_print > $o) + { + if (ereg("\|$LISTstatus[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + else + {echo "<option value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; + echo "</TD></TR></TABLE>\n"; + echo "</FORM>\n\n"; + + } +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/count.htm b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/count.htm new file mode 100644 index 00000000..51f8a361 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/count.htm @@ -0,0 +1 @@ + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/dbconnect.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/dbconnect.php new file mode 100644 index 00000000..dca45485 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/dbconnect.php @@ -0,0 +1,62 @@ +<?php +# +# dbconnect.php version 2.2.0 +# +# database connection settings and some global web settings +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database"); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules +$AM_shift_BEGIN = '03:45:00'; +$AM_shift_END = '17:45:00'; +$PM_shift_BEGIN = '17:45:01'; +$PM_shift_END = '23:59:59'; +$admin_qc_enabled = '0'; +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/fcstats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/fcstats.php new file mode 100644 index 00000000..e5da03e7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/fcstats.php @@ -0,0 +1,601 @@ +<?php +# fcstats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 70813-1526 - First Build +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71217-1128 - Changed method for calculating stats +# 71228-1140 - added percentages, cross-day start/stop +# 80328-1139 - adapted for basic fronter/closer stats +# 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = 'CL_TEST_L';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + +<HTML> +<HEAD> +<STYLE type="text/css"> +<!-- + .green {color: white; background-color: green} + .red {color: white; background-color: red} + .blue {color: white; background-color: blue} + .purple {color: white; background-color: purple} +--> + </STYLE> + +<?php +echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; +echo "<TITLE>In-Group Fronter-Closer Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
"; + +echo "
\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFICA | REPORT \n"; +echo "
\n\n"; + +echo "
\n\n";
+
+
+if (!$group)
+{
+echo "\n\n";
+echo "PLEASE SELECT AN IN-GROUP AND DATE ABOVE THEN CLICK INVIA\n";
+}
+
+else
+{
+#	$time_BEGIN=$AM_shift_BEGIN;
+#	$time_END=$AM_shift_END;
+#$query_date_BEGIN = "$query_date $time_BEGIN";   
+#$query_date_END = "$query_date $time_END";
+
+$Cqdate = explode('-',$query_date);
+
+if ($shift == 'AM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(17, 45, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'PM') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(17, 45, 1, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+if ($shift == 'ALL') 
+	{
+	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
+	}
+
+echo "In-Group Fronter-Closer Stats Report                      $NOW_TIME\n";
+
+echo "\n";
+echo "---------- TOTALI FOR $query_date_BEGIN to $query_date_END\n";
+
+$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "' and status = 'SALE';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+$A1_points = ($row[0] * 1);
+$A1_points =	sprintf("%10s", $A1_points);
+$A1_tally =	sprintf("%10s", $row[0]);
+
+$TOT_tally = ($A1_tally + $A2_tally + $A3_tally + $A4_tally);
+$TOT_points = ($A1_points + $A2_points + $A3_points + $A4_points);
+$TOT_tally =	sprintf("%10s", $TOT_tally);
+$TOT_points =	sprintf("%10s", $TOT_points);
+
+echo "STATUS   CUSTOMERS\n";
+echo "SALES:   $A1_tally\n";
+
+echo "\n";
+
+
+
+
+
+
+
+
+
+##############################
+#########  FRONTER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$TOTsales=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+
+echo "\n";
+echo "---------- FRONTER STATS\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| AGENT                    |SUCCESS| XFERS  |SUCCESS%| SALE | DROP |OTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+#$stmt="select vicidial_xfer_log.user,full_name,count(*) from vicidial_xfer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_xfer_log.user is not null and vicidial_xfer_log.user=vicidial_users.user group by vicidial_xfer_log.user;";
+$stmt="select user,count(distinct lead_id) from vicidial_xfer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcallsRAW[$i] =	$row[1];
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; 
+	$stmt="select vc.status,count(distinct vc.lead_id) from vicidial_xfer_log vx, vicidial_closer_log vc where vx.call_date >= '$query_date_BEGIN' and vx.call_date <= '$query_date_END' and vc.call_date >= '$query_date_BEGIN' and vc.call_date <= '$query_date_END' and  vc.campaign_id='" . mysql_real_escape_string($group) . "' and vx.campaign_id='" . mysql_real_escape_string($group) . "' and vx.user='$userRAW[$i]' and vc.lead_id=vx.lead_id and vc.xfercallid=vx.xfercallid group by vc.status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) {$A1=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A2') and ($recL < 1) ) {$A2=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A3') and ($recL < 1) ) {$A3=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A4') and ($recL < 1) ) {$A4=$row[1]; $recL++; $sales=($sales + $row[1]);}
+	#	if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+	#	if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);
+	$totA2 = ($totA2 + $A2);
+	$totA3 = ($totA3 + $A3);
+	$totA4 = ($totA4 + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$TOTsales = ($TOTsales + $sales);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Spct = ( ($sales / $USERcallsRAW[$i]) * 100);}
+		else {$Spct=0;}
+	$Spct = round($Spct, 2);
+	$Spct =	sprintf("%01.2f", $Spct);
+	
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%5s", $sales);
+	$Spct =	sprintf("%6s", $Spct);
+
+	echo "| $user[$i] - $full_name[$i] | $sales | $USERcalls[$i] | $Spct%| $A1 | $DROP | $OTHER |\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totSpct = ( ($TOTsales / $TOTcalls) * 100);}
+	else {$totSpct=0;}
+$totSpct = round($totSpct, 2);
+$totSpct =	sprintf("%01.2f", $totSpct);
+$totSpct =	sprintf("%6s", $totSpct);
+	
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$TOTsales =		sprintf("%5s", $TOTsales);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+
+
+$stmt="select avg(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "';";
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$row=mysql_fetch_row($rslt);
+
+$AVGwait = $row[0];
+$AVGwait_M = ($AVGwait / 60);
+$AVGwait_M = round($AVGwait_M, 2);
+$AVGwait_M_int = intval("$AVGwait_M");
+$AVGwait_S = ($AVGwait_M - $AVGwait_M_int);
+$AVGwait_S = ($AVGwait_S * 60);
+$AVGwait_S = round($AVGwait_S, 0);
+if ($AVGwait_S < 10) {$AVGwait_S = "0$AVGwait_S";}
+$AVGwait_MS = "$AVGwait_M_int:$AVGwait_S";
+$AVGwait =		sprintf("%6s", $AVGwait_MS);
+
+
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "| TOTAL FRONTERS: $TOTagents   | $TOTsales | $TOTcalls | $totSpct%|$totA1 |$totDROP |$totOTHER |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+echo "|                          Average time in Queue for customers:    $AVGwait |\n";
+echo "+--------------------------+-------+--------+--------+------+------+------+\n";
+
+
+
+
+
+##############################
+#########  CLOSER STATS
+
+$TOTagents=0;
+$TOTcalls=0;
+$totA1=0;
+$totA2=0;
+$totA3=0;
+$totA4=0;
+$totA5=0;
+$totA6=0;
+$totA7=0;
+$totA8=0;
+$totA9=0;
+$totDROP=0;
+$totOTHER=0;
+$TOTsales=0;
+
+echo "\n";
+echo "---------- CLOSER STATS\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| AGENT                    | CALLS  | SALE | DROP |OTHER | SALE | CONV %|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+$stmt="select user,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
+if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+$rslt=mysql_query($stmt, $link);
+if ($DB) {echo "$stmt\n";}
+$users_to_print = mysql_num_rows($rslt);
+$i=0;
+while ($i < $users_to_print)
+	{
+	$row=mysql_fetch_row($rslt);
+
+	$TOTcalls = ($TOTcalls + $row[1]);
+	$userRAW[$i]=$row[0];
+	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
+	$USERcalls[$i] =	sprintf("%6s", $row[1]);
+	$USERcallsRAW[$i] =	$row[1];
+
+	$i++;
+	}
+
+$i=0;
+while ($i < $users_to_print)
+	{
+	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$names_to_print = mysql_num_rows($rslt);
+	if ($names_to_print > 0)
+		{
+		$row=mysql_fetch_row($rslt);
+		if ($non_latin < 1)
+			{
+			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
+			}
+		else
+			{
+			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
+			}
+		}
+	else
+		{$full_name[$i] = '               ';}
+
+	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; $uTOP=0; $uBOT=0; $points=0;
+	$stmt="select status,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user='$userRAW[$i]' group by status;";
+	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
+	$rslt=mysql_query($stmt, $link);
+	if ($DB) {echo "$stmt\n";}
+	$lead_ids_to_print = mysql_num_rows($rslt);
+	$j=0;
+	while ($j < $lead_ids_to_print)
+		{
+		$row=mysql_fetch_row($rslt);
+		$recL=0;
+		if ( ($row[0]=='SALE') and ($recL < 1) ) 
+			{
+			$A1=$row[1]; $recL++; 
+			$sales=($sales + $row[1]);
+			$points = ($points + ($row[1] * 1) );
+			}
+		if ( ($row[0]=='A2') and ($recL < 1) ) 
+			{
+			$A2=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A3') and ($recL < 1) ) 
+			{
+			$A3=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 2) );
+			}
+		if ( ($row[0]=='A4') and ($recL < 1) ) 
+			{
+			$A4=$row[1]; $recL++; 
+			$sales=($sales + $row[1]); 
+			$uTOP=($uTOP + $row[1]); 
+			$uBOT=($uBOT + $row[1]);
+			$points = ($points + ($row[1] * 3) );
+			}
+#		if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
+#		if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
+#		if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
+#		if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
+#		if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
+		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
+		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
+		
+		$j++;
+		}
+
+	$totA1 = ($totA1 + $A1);	$TOTsales = ($TOTsales + $A1);
+	$totA2 = ($totA2 + $A2);	$TOTsales = ($TOTsales + $A2);	$totTOP = ($totTOP + $A2);
+	$totA3 = ($totA3 + $A3);	$TOTsales = ($TOTsales + $A3);	$totBOT = ($totBOT + $A3);
+	$totA4 = ($totA4 + $A4);	$TOTsales = ($TOTsales + $A4);	$totTOP = ($totTOP + $A4);	$totBOT = ($totBOT + $A4);
+	$totA5 = ($totA5 + $A5);
+	$totA6 = ($totA6 + $A6);
+	$totA7 = ($totA7 + $A7);
+	$totA8 = ($totA8 + $A8);
+	$totA9 = ($totA9 + $A9);
+	$totDROP = ($totDROP + $DROP);
+	$totOTHER = ($totOTHER + $OTHER);
+	$totPOINTS = ($totPOINTS + $points);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Cpct = ( ($sales / ( ($USERcallsRAW[$i] - 0) - $DROP) ) * 100);}
+		else {$Cpct=0;}
+	$Cpct = round($Cpct, 2);
+	$Cpct =	sprintf("%01.2f", $Cpct);
+	$Cpct =	sprintf("%6s", $Cpct);
+
+	if ( ($sales > 0) and ($uTOP > 0) ) {$TOP = ( ($uTOP / $sales) * 100);}
+		else {$TOP=0;}
+	$TOP = round($TOP, 0);
+	$TOP =	sprintf("%01.0f", $TOP);
+	$TOP =	sprintf("%3s", $TOP);
+
+	if ( ($sales > 0) and ($uBOT > 0) ) {$BOT = ( ($uBOT / $sales) * 100);}
+		else {$BOT=0;}
+	$BOT = round($BOT, 0);
+	$BOT =	sprintf("%01.0f", $BOT);
+	$BOT =	sprintf("%3s", $BOT);
+
+	if ( ($USERcallsRAW[$i] > 0) and ($points > 0) ) {$ppc = ($points / ( ($USERcallsRAW[$i] - 0) - $DROP) );}
+		else {$ppc=0;}
+	$ppc = round($ppc, 2);
+	$ppc =	sprintf("%01.2f", $ppc);
+	$ppc =	sprintf("%4s", $ppc);
+
+
+	$A1 =	sprintf("%4s", $A1);
+	$A2 =	sprintf("%4s", $A2);
+	$A3 =	sprintf("%4s", $A3);
+	$A4 =	sprintf("%4s", $A4);
+	$A5 =	sprintf("%4s", $A5);
+	$A6 =	sprintf("%4s", $A6);
+	$A7 =	sprintf("%4s", $A7);
+	$A8 =	sprintf("%4s", $A8);
+	$A9 =	sprintf("%4s", $A9);
+	$DROP =	sprintf("%4s", $DROP);
+	$OTHER =	sprintf("%4s", $OTHER);
+	$sales =	sprintf("%4s", $sales);
+
+	echo "| $user[$i] - $full_name[$i] | $USERcalls[$i] | $A1 | $DROP | $OTHER | $sales |$Cpct%|\n";
+
+	$i++;
+	}
+
+
+if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totCpct = ( ($TOTsales / ( ($TOTcalls - 0) - $totDROP) ) * 100);}
+	else {$totCpct=0;}
+$totCpct = round($totCpct, 2);
+$totCpct =	sprintf("%01.2f", $totCpct);
+$totCpct =	sprintf("%6s", $totCpct);
+		
+if ( ($TOTcalls > 0) and ($totPOINTS > 0) ) {$ppc = ($totPOINTS / ( ($TOTcalls - $totOTHER) - $totDROP) );}
+	else {$ppc=0;}
+$ppc = round($ppc, 2);
+$ppc =	sprintf("%01.2f", $ppc);
+$ppc =	sprintf("%4s", $ppc);
+		
+if ( ($TOTsales > 0) and ($totTOP > 0) ) {$TOP = ( ($totTOP / $TOTsales) * 100);}
+	else {$TOP=0;}
+$TOP = round($TOP, 0);
+$TOP =	sprintf("%01.0f", $TOP);
+$TOP =	sprintf("%3s", $TOP);
+
+if ( ($TOTsales > 0) and ($totBOT > 0) ) {$BOT = ( ($totBOT / $TOTsales) * 100);}
+	else {$BOT=0;}
+$BOT = round($BOT, 0);
+$BOT =	sprintf("%01.0f", $BOT);
+$BOT =	sprintf("%3s", $BOT);
+
+$TOTagents =	sprintf("%6s", $i);
+$TOTcalls =		sprintf("%6s", $TOTcalls);
+$totA1 =		sprintf("%5s", $totA1);
+$totA2 =		sprintf("%5s", $totA2);
+$totA3 =		sprintf("%5s", $totA3);
+$totA4 =		sprintf("%5s", $totA4);
+$totA5 =		sprintf("%5s", $totA5);
+$totA6 =		sprintf("%5s", $totA6);
+$totA7 =		sprintf("%5s", $totA7);
+$totA8 =		sprintf("%5s", $totA8);
+$totA9 =		sprintf("%5s", $totA9);
+$totDROP =		sprintf("%5s", $totDROP);
+$totOTHER =		sprintf("%5s", $totOTHER);
+$TOTsales =		sprintf("%5s", $TOTsales);
+
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+echo "| TOTAL CLOSERS:  $TOTagents   | $TOTcalls |$totA1 |$totDROP |$totOTHER |$TOTsales |$totCpct%|\n";
+echo "+--------------------------+--------+------+------+------+------+-------+\n";
+
+
+
+
+
+
+
+
+
+$ENDtime = date("U");
+$RUNtime = ($ENDtime - $STARTtime);
+if ($DB) {echo "\nRun Time: $RUNtime seconds\n";}
+}
+
+
+
+
+
+?>
+
+
+ + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/functions.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/group_hourly_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/group_hourly_stats.php new file mode 100644 index 00000000..98c0ac9f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/group_hourly_stats.php @@ -0,0 +1,295 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1014 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["date_with_hour"])) {$date_with_hour=$_GET["date_with_hour"];} + elseif (isset($_POST["date_with_hour"])) {$date_with_hour=$_POST["date_with_hour"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$date_with_hour_default = date("Y-m-d H"); +$date_no_hour_default = $TODAY; + +if (!isset($date_with_hour)) {$date_with_hour = $date_with_hour_default;} + $date_no_hour = $date_with_hour; + $date_no_hour = eregi_replace(" ([0-9]{2})",'',$date_no_hour); +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + +# $stmt="SELECT full_name from vicidial_users where user='$user';"; +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# $full_name = $row[0]; + + } + + + + +?> + + + +ADMINISTRATION: Statistiche Orarie Del Gruppo +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Statistiche Orarie Del Gruppo <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +if ( ($group) and ($status) and ($date_with_hour) ) +{ +$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";} +$rslt=mysql_query($stmt, $link); +$tsrs_to_print = mysql_num_rows($rslt); + $o=0; + while($o < $tsrs_to_print) + { + $row=mysql_fetch_row($rslt); + $VDuser[$o] = "$row[0]"; + $VDname[$o] = "$row[1]"; + $o++; + } + + $o=0; + while($o < $tsrs_to_print) + { + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDtotal[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDday[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDcount[$o] = "$row[0]"; + $o++; + } + +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +echo "<B>DATI ORARI: <a href=\"./admin.php?ADD=3111&group_id=$group\">$group</a> | $status | $date_with_hour | $date_no_hour</B>\n"; + +echo "<center><TABLE width=600 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>TSR </td><td align=left><font size=2>ID </td><td align=right><font size=2>   $status</td><td align=right><font size=2>   TOTALE CHIAMATE</td><td align=right><font size=2>   $status DAY</td><td align=right><font size=2>     </td></tr>\n"; + + $day_calls=0; + $hour_calls=0; + $total_calls=0; + $o=0; + while($o < $tsrs_to_print) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo "<tr $bgcolor><td><font size=2>$VDuser[$o]</td>"; + echo "<td align=left><font size=2> $VDname[$o]</td>\n"; + echo "<td align=right><font size=2> $VDcount[$o]</td>\n"; + echo "<td align=right><font size=2> $VDtotal[$o]</td>\n"; + echo "<td align=right><font size=2> $VDday[$o]</td>\n"; + echo "<td align=right><font size=1><a href=\"./admin.php?ADD=3&user=$VDuser[$o]\">MODIFICA</a> | <a href=\"./user_stats.php?user=$VDuser[$o]\">STATISTICHE</a></td></tr>\n"; + $total_calls = ($total_calls + $VDtotal[$o]); + $hour_calls = ($hour_calls + $VDcount[$o]); + $day_calls = ($day_calls + $VDday[$o]); + + $o++; + } + +echo "<tr><td><font size=2>TOTALE </td><td align=right><font size=2> $status </td><td align=right><font size=2> $hour_calls</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $day_calls</td></tr>\n"; + + +} + +echo "</TABLE></center>\n"; +echo "<br><br>\n"; + + + echo "<br>Per favore inserisci il gruppo per il quale vuoi le statistiche orarie: <form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=$DB>\n"; + echo "gruppo: <select size=1 name=group>\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $o=0; + $groups_list=''; + while ($groups_to_print > $o) { + $rowx=mysql_fetch_row($rslt); + if ($group == $group) + {$groups_list .= "<option selected value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + else + {$groups_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + $o++; + } + echo "$groups_list</select><br>\n"; + echo "esito: <input type=text name=status size=10 maxlength=10 value=\"$status\">   (esempio: XFER)<br>\n"; + echo "data e ora: <input type=text name=date_with_hour size=14 maxlength=13 value=\"$date_with_hour\">   (esempio: 2004-06-25 14)<br>\n"; + echo "<input type=submit name=submit value=INVIA>\n"; + echo "<BR><BR><BR>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds</font>"; + + +?> + + +</TD></TR></TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/help.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/help.gif new file mode 100644 index 00000000..5575d7c8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/help.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/list_download.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/list_download.php new file mode 100644 index 00000000..9914d2b2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/list_download.php @@ -0,0 +1,132 @@ +<?php +# list_download.php +# +# downloads the entire contents of a vicidial list ID to a flat text file +# that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and download_lists='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Utentename/Password non validi or no list download permission: |$PHP_AUTH_USER|\n"; + exit; + } + +$stmt="select count(*) from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$count_to_print = mysql_num_rows($rslt); +if ($count_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $leads_count =$row[0]; + $i++; + } + +if ($leads_count < 1) + { + echo "There are no leads in list_id: $list_id\n"; + exit; + } + +$US='_'; +$MT[0]=''; +$ip = getenv("REMOTE_ADDR"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +### LOG INSERTION Admin Log Table ### +$SQL_log = "$stmt|$stmtA|"; +$SQL_log = ereg_replace(';','',$SQL_log); +$SQL_log = addslashes($SQL_log); +$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='$list_id', event_code='ADMIN EXPORT LIST', event_sql=\"$SQL_log\", event_notes='';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + + +$TXTfilename = "LIST_$list_id$US$FILE_TIME.txt"; + +// We'll be outputting a TXT file +header('Content-type: application/octet-stream'); + +// It will be called LIST_101_20090209-121212.txt +header("Content-Disposition: attachment; filename=\"$TXTfilename\""); +header('Expires: 0'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); +header('Pragma: public'); +ob_clean(); +flush(); + +$stmt="select lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$leads_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $leads_to_print) + { + $row=mysql_fetch_row($rslt); + + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; + + $i++; + } + +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader.pl new file mode 100644 index 00000000..052d93e0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader.pl @@ -0,0 +1,1160 @@ +#!/usr/bin/perl +# +# listloader.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60822-1121 - fixed for nonwritable directories +# 60906-1058 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1215 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = <conf>; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + + ### Grab Server values from the database + $stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } + $sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Processing Excel file...\n"; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][0]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][1]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][2]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][3]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][4]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][5]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][6]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][7]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][8]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][9]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][10]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][11]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][12]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][13]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][14]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][15]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][16]; + if ($oWkC) {$country=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][17]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][18]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][19]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][20]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][21]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][22]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup_lead, $postalgmt_found)</script>"; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total</font></center>"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloaderMAIN.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloaderMAIN.php new file mode 100644 index 00000000..0210fcb7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloaderMAIN.php @@ -0,0 +1,87 @@ +<?php +# listloaderMAIN.php +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# 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 +# +# changes: +# 60620-1149 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?><HTML> +<HEAD> +<TITLE>VICIDIAL: Modulo Caricamento Contatti + + + + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader_rowdisplay.pl b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader_rowdisplay.pl new file mode 100644 index 00000000..9caaeab2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/listloader_rowdisplay.pl @@ -0,0 +1,154 @@ +#!/usr/bin/perl +# +# listloader_rowdisplay.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } +} +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); +$var_str=""; + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for(my $iC = $oWkS->{MinCol} ; defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) { + $oWkC = $oWkS->{Cells}[0][$iC]; + if ($oWkC) { + $var_str.=$oWkC->Value."|"; + } else { + $var_str.="|"; + } + } +} + +@xls_row=split(/\|/, $var_str); + + +$stmtA = "select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + my $names = $sthA->{'NAME'}; + my $numFields = $sthA->{'NUM_OF_FIELDS'}; + for (my $i = 0; $i < $numFields; $i++) + { + # printf("%s%s", $i ? "," : "", $$names[$i]); + # printf("%s%s", $i ? "," : "", $$ref[$i]); + + $field_name=uc($$names[$i]); + $field_name=~s/\_/ /g; + print "
".$field_name.": \r\n"; + print " \r\n"; + print "
"; +?> + + +
method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Carica Contatti Da Questo File:
Sovrascrittura ID Lista: (solo cifre o lasciare in bianco per usare i valori contenuti nel file)
Sovrascrittura Codice Telefono: (solo cifre o lasciare in bianco per usare i valori contenuti nel file)
Struttura del file da usare:Standard Format    Struttura personalizzata
Controlla Contatti Duplicati:
Ricerca Fusi Orari (Solo USA):
        
        TORNA AD AMMINISTRAZIONELIST LOADER-     VERSIONE:     BUILD:    
+ + +document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; + flush(); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.txt"); + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + { + $stmt_file=fopen("listloader_stmts.txt", "w"); + } + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + print "
Elaborazione in corso$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

ID LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE: $phone_code_override

"; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($list_id_override)>0) + { + # print "

ID LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
ERRORE: Il file non ha il numero di campi necessare per essere elaborato.
"; + } + } else if (!eregi(".csv", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.xls"); + $file=fopen("$lead_file", "r"); + + print "
Elaborazione in corsoExcel file... \n"; + if (strlen($list_id_override)>0) + { + print "

ID LISTA OVERRIDE FOR THIS FILE: $list_id_override

\n"; + } + if (strlen($phone_code_override)>0) + { + print "

SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE: $phone_code_override

\n"; + } + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } else { + # copy($leadfile, "./vicidial_temp_file.csv"); + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
Elaborazione in corsoCSV file... \n"; + if (strlen($list_id_override)>0) + { + print "

ID LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + + if (strlen($phone_code_override)>0) + { + print "

SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + } + print ""; + } + +if ($leadfile) { + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + ### LOG INSERTION Admin Log Table ### + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTE', event_type='LOAD', record_id='$list_id_override', event_code='ADMIN LOAD LIST', event_sql='', event_notes='File Name: $leadfile_name';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($file_layout=="standard") { + + print ""; + flush(); + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "
Elaborazione in corso$delim_name-delimited file... ($tab_count|$pipe_count)\n"; + if (strlen($list_id_override)>0) + { + print "

ID LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE: $phone_code_override

\n"; + } + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } else { + print "
ERRORE: Il file non ha il numero di campi necessare per essere elaborato.
"; + } + } else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + $file=fopen("$lead_file", "r"); + + # echo "|$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
Elaborazione in corsoCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

ID LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE: $phone_code_override

"; + } + + while($row=fgetcsv($file, 1000, ",")) { + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

Done
GOOD: $good       BAD: $bad       TOTAL: $total
"; + + } + print ""; + + } else { + print "
"; + flush(); + print "\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1", $link); + + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + flush(); + $file=fopen("$lead_file", "r"); + print "
Elaborazione in corso$delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

ID LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE: $phone_code_override

"; + } + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + + } + } + else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + + # echo "|$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
Elaborazione in corsoCSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

ID LISTA OVERRIDE FOR THIS FILE: $list_id_override

"; + } + if (strlen($phone_code_override)>0) + { + print "

SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE: $phone_code_override

"; + } + + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + $row=fgetcsv($file, 1000, ","); + for ($i=0; $i\n"; + } else { + print "
\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + } + } + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print "
VICIDIAL ColonnaDati File
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
        
\r\n"; + # } + print ""; + } +#} else if (filesize($leadfile)>8388608) { +# print "
ERROR: File exceeds the 8MB limit.
"; +} +?> + + + + + + + + +4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Domenica March to First Domenica November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Domenica March to First Domenica November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Domenica, to 6=Sabato) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # ora locale calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Domenica April to Last Domenica October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Domenica in April and last Domenica in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # ora locale calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Domenica March to Last Domenica October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Domenica in March and last Domenica in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # ora locale calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # ora locale calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Domenica October to Last Domenica March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Domenica in October and last Domenica in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # ora locale calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # ora locale calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Domenica October to Last Domenica March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Domenica in October and last Domenica in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # ora locale calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Domenica October to Third Domenica March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Domenica in October and third Domenica in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # ora locale calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Domenica October to Last Domenica February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Domenica October to Last Domenica February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # ora locale calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # ora locale calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + +?> +
diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/non_agent_api.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/non_agent_api.php new file mode 100644 index 00000000..b64ab4c0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/non_agent_api.php @@ -0,0 +1,2500 @@ + LICENSE: AGPLv2 +# +# This script is designed as an API(Application Programming Interface) to allow +# other programs to interact with all non-agent-screen VICIDIAL functions +# +# required variables: +# - $user +# - $pass +# - $function - ('add_lead','version') +# - $source - ('vtiger','webform','adminweb') +# - $format - ('text','debug') + +# CHANGELOG: +# 80724-0021 - First build of script +# 80801-0047 - Added gmt lookup and hopper insert time validation +# 80909-2012 - Added support for campaign-specific DNC lists +# 80910-0020 - Added support for multi-alt-phones, added version function +# 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function +# + +$version = '2.2.0-16'; +$build = '91216-0331'; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["function"])) {$function=$_GET["function"];} + elseif (isset($_POST["function"])) {$function=$_POST["function"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["dnc_check"])) {$dnc_check=$_GET["dnc_check"];} + elseif (isset($_POST["dnc_check"])) {$dnc_check=$_POST["dnc_check"];} +if (isset($_GET["campaign_dnc_check"])) {$campaign_dnc_check=$_GET["campaign_dnc_check"];} + elseif (isset($_POST["campaign_dnc_check"])) {$campaign_dnc_check=$_POST["campaign_dnc_check"];} +if (isset($_GET["add_to_hopper"])) {$add_to_hopper=$_GET["add_to_hopper"];} + elseif (isset($_POST["add_to_hopper"])) {$add_to_hopper=$_POST["add_to_hopper"];} +if (isset($_GET["hopper_priority"])) {$hopper_priority=$_GET["hopper_priority"];} + elseif (isset($_POST["hopper_priority"])) {$hopper_priority=$_POST["hopper_priority"];} +if (isset($_GET["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_GET["hopper_local_call_time_check"];} + elseif (isset($_POST["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_POST["hopper_local_call_time_check"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phones"];} + elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} +if (isset($_GET["source"])) {$source=$_GET["source"];} + elseif (isset($_POST["source"])) {$source=$_POST["source"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $DB=ereg_replace("[^0-9]","",$DB); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); + $format = ereg_replace("[^0-9a-zA-Z]","",$format); + $list_id = ereg_replace("[^0-9]","",$list_id); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $vendor_lead_code = ereg_replace(";","",$vendor_lead_code); + $vendor_lead_code = ereg_replace("\+"," ",$vendor_lead_code); + $source_id = ereg_replace(";","",$source_id); + $source_id = ereg_replace("\+"," ",$source_id); + $gmt_offset_now = ereg_replace("-\_\.0-9","",$gmt_offset_now); + $title = ereg_replace("[^- \_\.0-9a-zA-Z]","",$title); + $first_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$first_name); + $first_name = ereg_replace("\+"," ",$first_name); + $middle_initial = ereg_replace("[^0-9a-zA-Z]","",$middle_initial); + $last_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$last_name); + $last_name = ereg_replace("\+"," ",$last_name); + $address1 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address1); + $address2 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address2); + $address3 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address3); + $address1 = ereg_replace("\+"," ",$address1); + $address2 = ereg_replace("\+"," ",$address2); + $address3 = ereg_replace("\+"," ",$address3); + $city = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$city); + $city = ereg_replace("\+"," ",$city); + $state = ereg_replace("[^- 0-9a-zA-Z]","",$state); + $province = ereg_replace("[^- \+\.\_0-9a-zA-Z]","",$province); + $province = ereg_replace("\+"," ",$province); + $postal_code = ereg_replace("[^- \+0-9a-zA-Z]","",$postal_code); + $postal_code = ereg_replace("\+"," ",$postal_code); + $country_code = ereg_replace("[^A-Z]","",$country_code); + $gender = ereg_replace("[^A-Z]","",$gender); + $date_of_birth = ereg_replace("[^-0-9]","",$date_of_birth); + $alt_phone = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$alt_phone); + $alt_phone = ereg_replace("\+"," ",$alt_phone); + $email = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$email); + $email = ereg_replace("\+"," ",$email); + $security_phrase = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$security_phrase); + $security_phrase = ereg_replace("\+"," ",$security_phrase); + $comments = ereg_replace(";","",$comments); + $comments = ereg_replace("\+"," ",$comments); + $dnc_check = ereg_replace("[^A-Z]","",$dnc_check); + $campaign_dnc_check = ereg_replace("[^A-Z]","",$campaign_dnc_check); + $add_to_hopper = ereg_replace("[^A-Z]","",$add_to_hopper); + $hopper_priority = ereg_replace("-0-9","",$hopper_priority); + $hopper_local_call_time_check = ereg_replace("[^A-Z]","",$hopper_local_call_time_check); + $campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); + $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); + $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); + $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); + } + +if (strlen($list_id)<1) {$list_id='999';} +if (strlen($phone_code)<1) {$phone_code='1';} +$USarea = substr($phone_number, 0, 3); +if (strlen($hopper_priority)<1) {$hopper_priority=0;} +if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$postalgmt=''; +$api_script = 'non-agent'; +$api_logging = 1; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +### Grab Server GMT value from the database +$stmt="SELECT local_gmt FROM servers where active='Y' limit 1;"; +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$gmt_recs = mysql_num_rows($rslt); +if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } +else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + +$LOCAL_GMT_OFF = $SERVER_GMT; +$LOCAL_GMT_OFF_STD = $SERVER_GMT; + + + + + +################################################################################ +### version - show version and date information for the API +################################################################################ +if ($function == 'version') + { + $data = "VERSION: $version|BUILD: $build|DATE: $NOW_TIME|EPOCH: $StarTtime"; + $result = 'SUCCESS'; + echo "$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
\n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
#FILENAMEDATESIZEPLAY
$sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
\n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Music On Hold ClassNameRandom
$sf$moh_id[$k]$moh_name[$k]$random[$k]
 Files: $MOHfiles
\n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
#Voicemail BoxesNameEmail
$sf$voicemail_id[$k]$fullname[$k]$email[$k]
$sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
\n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
\n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
\n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
\n"; + $output .= "\n"; + $output .= "
\n"; + $output .= "
\n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
$closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
No In-Groups Allowed

\n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
\n"; + $output .= "OUTBOUND AUTODIAL: $blended
\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
\n"; + $output .= "MANAGER: $external_igb_set_user
\n"; + $output .= "\n"; + $output .= "
\n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + + + + + +################################################################################ +### add_lead - inserts a lead into the vicidial_list table +################################################################################ +if ($function == 'add_lead') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $modify_leads=$row[0]; + + if ($modify_leads < 1) + { + $result = 'ERROR'; + $result_reason = "add_lead USER DOES NOT HAVE PERMISSION TO ADD LEADS TO THE SYSTEM"; + echo "$result: $result_reason: |$user|$modify_leads|\n"; + $data = "$modify_leads"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ( (strlen($phone_number)<6) || (strlen($phone_number)>16) ) + { + $result = 'ERROR'; + $result_reason = "add_lead INVALID PHONE NUMBER"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN DNC"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN CAMPAIGN DNC"; + echo "$result: $result_reason - $phone_number|$campaign_id|$user\n"; + $data = "$phone_number|$campaign_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + + + ### get current gmt_offset of the phone_number + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',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',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $lead_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "add_lead LEAD HAS BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$lead_id|$gmt_offset|$user\n"; + $data = "$phone_number|$list_id|$lead_id|$gmt_offset"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + if (strlen($multi_alt_phones) > 5) + { + $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; + $map = explode('!', $multi_alt_phones); + $map_count = count($map); + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} + $g++; + $r=0; $s=0; $inserted_alt_phones=0; + while ($r < $map_count) + { + $s++; + $ncn=$MT; + $ncn = explode('_', $map[$r]); + print "$ncn[0]|$ncn[1]|$ncn[2]"; + + if (strlen($forcephonecode) > 0) + {$ALTm_phone_code[$r] = $forcephonecode;} + else + {$ALTm_phone_code[$r] = $ncn[1];} + if (strlen($ALTm_phone_code[$r]) < 1) + {$ALTm_phone_code[$r]='1';} + $ALTm_phone_number[$r] = $ncn[0]; + $ALTm_phone_note[$r] = $ncn[2]; + $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Zaffected_rows = mysql_affected_rows($link); + $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); + $r++; + } + $result = 'NOTICE'; + $result_reason = "add_lead MULTI-ALT-PHONE NUMBERS LOADED"; + echo "$result: $result_reason - $inserted_alt_phones|$lead_id|$user\n"; + $data = "$inserted_alt_phones|$lead_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + + if ($add_to_hopper == 'Y') + { + $dialable=1; + + $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $local_call_time=$row[0]; + $VD_campaign_id=$row[1]; + + if ($hopper_local_call_time_check == 'Y') + { + ### call function to determine if lead is dialable + $dialable = dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state); + } + if ($dialable < 1) + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME"; + echo "$result: $result_reason - $phone_number|$lead_id|$gmt_offset|$dialable|$user\n"; + $data = "$phone_number|$lead_id|$gmt_offset|$dialable"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + ### code to insert into hopper goes here + + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Haffected_rows = mysql_affected_rows($link); + if ($Haffected_rows > 0) + { + $hopper_id = mysql_insert_id($link); + + $result = 'NOTICE'; + $result_reason = "add_lead ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$hopper_id|$user\n"; + $data = "$phone_number|$lead_id|$hopper_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$stmt|$user\n"; + $data = "$phone_number|$lead_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + else + { + $result = 'ERROR'; + $result_reason = "add_lead LEAD HAS NOT BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$stmt|$user\n"; + $data = "$phone_number|$list_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } + } +################################################################################ +### END add_lead +################################################################################ + + + +$result = 'ERROR'; +$result_reason = "NO FUNCTION SPECIFIED"; +echo "$result: $result_reason\n"; +api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + + + + + + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + + + + + + +##### FUNCTIONS ##### + +##### LOOKUP GMT, FINDS THE CURRENT GMT OFFSET FOR A PHONE NUMBER ##### + +function lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code) +{ +require("dbconnect.php"); + +$postalgmt_found=0; +if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + + + + + +##### DETERMINE IF LEAD IS DIALABLE ##### +function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) + { + $dialable=0; + + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + if ($GMT_day==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } + } + + return $dialable; + } + +/* + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) + { + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + +*/ + + + + +##### Logging ##### +function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) + { + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/remote_dispo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/remote_dispo.php new file mode 100644 index 00000000..a50a5fa8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/remote_dispo.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + +$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;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +?> + + +REMOTE VICIDIAL: disposicion De la Llamada +\n"; +?> + + +
+ +"; + +if ($end_call > 0) +{ + +$call_length = ($STARTtime - $call_began); + + ### insert a NEW record to the vicidial_closer_log table + $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";} + $rslt=mysql_query($stmt, $link); + + ### update the lead record in the vicidial_list table + $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";} + $rslt=mysql_query($stmt, $link); + + echo "La Chiamata Ha Avuto Un Esito       $NOW_TIME\n

\n"; + + echo "
\n"; + +} +else +{ + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $campaign_id = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; # + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; # + $address1 = "$row[16]"; # + $address2 = "$row[17]"; # + $address3 = "$row[18]"; # + $city = "$row[19]"; # + $state = "$row[20]"; # + $province = "$row[21]"; # + $postal_code = "$row[22]"; # + $country_code = "$row[23]"; # + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; # + $email = "$row[27]"; # + $security = "$row[28]"; # + $comments = "$row[29]"; # + + echo "
Informazioni Chiamata: $first_name $last_name - $phone_number

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
Vendor ID: $vendor_id     ID Campagna: $campaign_id
Fronter: $tsr     ID Lista: $list_id
Nome:   \n"; + echo " Cognome:
Indirizzo 1 :
Indirizzo 2 :
Indirizzo 3 :
Citta` :
Estado:   \n"; + echo " CAP:
Provincia :
Stato :
Numero Alt :
Email :
Seguridad:
Note :
Esito:
\n"; + echo "


\n"; + + } + else + { + echo "las operaciones de búsqueda del plomo FALLARON para el lead_id $lead_id       $NOW_TIME\n

\n"; +# echo "Close this window\n

\n"; + } + + + + + + +} + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


\n\n"; + + +echo "\n\n\n


\nTempo Esecuzione Script: $RUNtime seconds
"; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_edit.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_edit.php new file mode 100644 index 00000000..52e7269a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_edit.php @@ -0,0 +1,481 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80624-1342 - First build +# 80701-1323 - functional beta version done +# 90310-2109 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["oldLOGINepoch"])) {$oldLOGINepoch=$_GET["oldLOGINepoch"];} + elseif (isset($_POST["oldLOGINepoch"])) {$oldLOGINepoch=$_POST["oldLOGINepoch"];} +if (isset($_GET["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_GET["oldLOGOUTepoch"];} + elseif (isset($_POST["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_POST["oldLOGOUTepoch"];} +if (isset($_GET["oldLOGINdate"])) {$oldLOGINdate=$_GET["oldLOGINdate"];} + elseif (isset($_POST["oldLOGINdate"])) {$oldLOGINdate=$_POST["oldLOGINdate"];} +if (isset($_GET["oldLOGOUTdate"])) {$oldLOGOUTdate=$_GET["oldLOGOUTdate"];} + elseif (isset($_POST["oldLOGOUTdate"])) {$oldLOGOUTdate=$_POST["oldLOGOUTdate"];} +if (isset($_GET["LOGINepoch"])) {$LOGINepoch=$_GET["LOGINepoch"];} + elseif (isset($_POST["LOGINepoch"])) {$LOGINepoch=$_POST["LOGINepoch"];} +if (isset($_GET["LOGOUTepoch"])) {$LOGOUTepoch=$_GET["LOGOUTepoch"];} + elseif (isset($_POST["LOGOUTepoch"])) {$LOGOUTepoch=$_POST["LOGOUTepoch"];} +if (isset($_GET["notes"])) {$notes=$_GET["notes"];} + elseif (isset($_POST["notes"])) {$notes=$_POST["notes"];} +if (isset($_GET["LOGINevent_id"])) {$LOGINevent_id=$_GET["LOGINevent_id"];} + elseif (isset($_POST["LOGINevent_id"])) {$LOGINevent_id=$_POST["LOGINevent_id"];} +if (isset($_GET["LOGOUTevent_id"])) {$LOGOUTevent_id=$_GET["LOGOUTevent_id"];} + elseif (isset($_POST["LOGOUTevent_id"])) {$LOGOUTevent_id=$_POST["LOGOUTevent_id"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["timeclock_id"])) {$timeclock_id=$_GET["timeclock_id"];} + elseif (isset($_POST["timeclock_id"])) {$timeclock_id=$_POST["timeclock_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); +$invalid_record=0; + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $modify_timeclock_log = $row[1]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT event,tcid_link from vicidial_timeclock_log where timeclock_id='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $event = $row[0]; + $tcid_link = $row[1]; + } + if (ereg("LOGIN",$event)) + { + $LOGINevent_id = $timeclock_id; + $LOGOUTevent_id = $tcid_link; + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (ereg("LOGOUT",$event)) + { + $LOGOUTevent_id = $timeclock_id; + $stmt="SELECT timeclock_id from vicidial_timeclock_log where tcid_link='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_id = $row[0]; + } + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (strlen($LOGOUTevent_id)<1) + {$invalid_record++;} + + ### + if ($invalid_record < 1) + { + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGINevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_epoch = $row[0]; + $LOGINevent_date = $row[1]; + $LOGINlogin_sec = $row[2]; + $LOGINevent = $row[3]; + $LOGINuser = $row[4]; + $LOGINuser_group = $row[5]; + $LOGINip_address = $row[6]; + $LOGINshift_id = $row[7]; + $LOGINnotes = $row[8]; + $LOGINmanager_user = $row[9]; + $LOGINmanager_ip = $row[10]; + $LOGINevent_datestamp = $row[11]; + } + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGOUTevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGOUTevent_epoch = $row[0]; + $LOGOUTevent_date = $row[1]; + $LOGOUTlogin_sec = $row[2]; + $LOGOUTevent = $row[3]; + $LOGOUTuser = $row[4]; + $LOGOUTuser_group = $row[5]; + $LOGOUTip_address = $row[6]; + $LOGOUTshift_id = $row[7]; + $LOGOUTnotes = $row[8]; + $LOGOUTmanager_user = $row[9]; + $LOGOUTmanager_ip = $row[10]; + $LOGOUTevent_datestamp =$row[11]; + } + + $user=$LOGINuser; + } + } + + + +?> + + + +ADMINISTRATION: Orologio Modifica record +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$TCedit_javascript = '1'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=720 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Orologio Modifica record for <?php echo $user ?></TD><TD ALIGN=RIGHT>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + + + + + +##### BEGIN TIMECLOCK RECORD MODIFY ##### + +if ( ($invalid_record < 1) or (strlen($timeclock_id)<1) ) +{ + +if ($stage == "edit_TC_log") + { + $log_time = ($LOGOUTepoch - $LOGINepoch); + $NEXTevent_epoch = $StarTtimE; + $PREVevent_epoch = 0; + + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id > '$LOGOUTevent_id' and user='$user' order by timeclock_id limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $NEXTevent_epoch = $row[0]; + $NEXTevent_id = $row[1]; + } + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id < '$LOGINevent_id' and user='$user' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $PREVevent_epoch = $row[0]; + $PREVevent_id = $row[1]; + } + + if ( ($LOGINepoch <= $PREVevent_epoch) || ($LOGOUTepoch >= $NEXTevent_epoch) ) + { + echo "ERRORI Si è verificato un problema con i dati che hai inserito, si prega di tornare indietro<BR>\n"; + echo "Un orologio di sessione non può sovrapporsi di un altro orologio sessione<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + echo "$PREVevent_epoch<BR>\n"; + echo "$PREVevent_id<BR>\n"; + echo "$NEXTevent_epoch<BR>\n"; + echo "$NEXTevent_id<BR>\n"; + exit; + } + if ( ($LOGINepoch > $StarTtimE) || ($LOGOUTepoch > $StarTtimE) || ($log_time > 86400) || ($log_time < 1) ) + { + echo "ERRORI Si è verificato un problema con i dati che hai inserito, si prega di tornare indietro<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$notes<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + exit; + } + else + { + $LOGINdatetime = date("Y-m-d H:i:s", $LOGINepoch); + $LOGOUTdatetime = date("Y-m-d H:i:s", $LOGOUTepoch); + + ### update LOGIN record in the timeclock log + $stmtA="UPDATE vicidial_timeclock_log set event_epoch='$LOGINepoch', event_date='$LOGINdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGINevent_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGINevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGINepoch|$oldLOGINdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + ### update LOGOUT record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set event_epoch='$LOGOUTepoch', event_date='$LOGOUTdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGOUTevent_id';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGOUTevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGOUTepoch|$oldLOGOUTdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + echo "The timeclock session has been updated. <A HREF=\"$PHP_SELF?timeclock_id=$LOGINevent_id\">Click here to view</A>.<BR>\n"; + exit; + } + } +##### END TIMECLOCK RECORD MODIFY ##### + + + + +echo "\n<BR>"; + +if ($modify_timeclock_log > 0) + { +# $LOGINevent_id = $timeclock_id; +# $LOGOUTevent_id = $tcid_link; + + $event_hours = ($LOGINlogin_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + + $stmt="SELECT full_name from vicidial_users where user='$LOGINuser';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST name=edit_log id=edit_log>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<input type=hidden name=oldLOGINepoch id=oldLOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGOUTepoch id=oldLOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGINdate id=oldLOGINdate value=\"$LOGINevent_date\">\n"; + echo "<input type=hidden name=oldLOGOUTdate id=oldLOGOUTdate value=\"$LOGOUTevent_date\">\n"; + echo "<input type=hidden name=LOGINepoch id=LOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=LOGOUTepoch id=LOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=LOGINevent_id id=LOGINevent_id value=\"$LOGINevent_id\">\n"; + echo "<input type=hidden name=LOGOUTevent_id id=LOGOUTevent_id value=\"$LOGOUTevent_id\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<TABLE Border=0><TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "        USER: $LOGINuser ($full_name)         \n"; + echo "HOURS: <span name=login_time id=login_time> $event_hours_int:$event_minutes_int </span>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD>\n"; + echo "<TABLE Border=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGIN TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGINbegin_date id=LOGINbegin_date value=\"$LOGINevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGINevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Utente Gruppo: </TD><TD ALIGN=RIGHT>$LOGINuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGINip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGINmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGINmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGINnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGINevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + + echo "</TD><TD>         \n"; + echo "</TD><TD>\n"; + echo "<TABLE Border=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGOUT TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGOUTbegin_date id=LOGOUTbegin_date value=\"$LOGOUTevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGOUTevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Utente Gruppo: </TD><TD ALIGN=RIGHT>$LOGOUTuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGOUTip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGOUTnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGOUTevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + echo "</TD></TR>\n"; + + echo "<TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "NEW NOTES: <input type=text name=notes value='' size=80 maxlength=255>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD COLSPAN=3 ALIGN=CENTER>\n"; + echo "<input type=button name=go_submit id=go_submit value=INVIA onclick=\"run_submit();\"><BR></form>\n"; + echo "</TD></TR></TABLE>\n"; + echo "<BR><BR>\n"; + } + + +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " - <a href=\"./user_stats.php?user=$user\">Statistiche utente</a>\n"; +echo " - <a href=\"./admin.php?ADD=3&user=$user\">Modifica Utente</a>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +} +else +{ + +echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; +} +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_report.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_report.php new file mode 100644 index 00000000..261f7a9f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_report.php @@ -0,0 +1,361 @@ +<?php +# timeclock_report.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80529-0055 - First build +# 80617-1416 - Fixed totals tally bug +# 80707-0754 - Fixed groups bug, changed formatting +# 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +##### Pull values from posted form variables ##### +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($order)<2) {$order='hours_down';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + +##### START HTML ##### +?> + +<HTML> +<HEAD> + +<style type="text/css"> +<!-- + div.scroll_callback {height: 300px; width: 620px; overflow: scroll;} + div.scroll_list {height: 400px; width: 140px; overflow: scroll;} + div.scroll_script {height: 331px; width: 600px; background: #FFF5EC; overflow: scroll; font-size: 12px; font-family: sans-serif;} + div.text_input {overflow: auto; font-size: 10px; font-family: sans-serif;} + .body_text {font-size: 13px; font-family: sans-serif;} + .preview_text {font-size: 13px; font-family: sans-serif; background: #CCFFCC} + .preview_text_red {font-size: 13px; font-family: sans-serif; background: #FFCCCC} + .body_small {font-size: 11px; font-family: sans-serif;} + .body_tiny {font-size: 10px; font-family: sans-serif;} + .log_text {font-size: 11px; font-family: monospace;} + .log_text_red {font-size: 11px; font-family: monospace; font-weight: bold; background: #FF3333} + .sd_text {font-size: 16px; font-family: sans-serif; font-weight: bold;} + .sh_text {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .sb_text {font-size: 12px; font-family: sans-serif;} + .sk_text {font-size: 11px; font-family: sans-serif;} + .skb_text {font-size: 13px; font-family: sans-serif; font-weight: bold;} + .ON_conf {font-size: 11px; font-family: monospace; color: black; background: #FFFF99} + .OFF_conf {font-size: 11px; font-family: monospace; color: black; background: #FFCC77} + .cust_form {font-family: sans-serif; font-size: 10px; overflow: auto} + + .select_bold {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .header_white {font-size: 14px; font-family: sans-serif; font-weight: bold; color: white} + .data_records {font-size: 12px; font-family: sans-serif; color: black} + .data_records_fix {font-size: 12px; font-family: monospace; color: black} + .data_records_fix_small {font-size: 9px; font-family: monospace; color: black} + +--> +</style> + +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<TITLE>UtenteOrologio Report + +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +$user_group_ct = count($user_group); +$user_group_string='|'; + +$i=0; +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_timeclock_log.user_group IN($user_group_SQL)"; + } + +if ($DB > 0) + { + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + } + +echo "<CENTER>\n"; +echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; +echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; +echo "<TABLE Border=0 CELLSPACING=6><TR><TD ALIGN=LEFT VALIGN=TOP>\n"; + +echo "<font class=\"select_bold\"><B>Date:</B></font><BR><CENTER>\n"; +echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; +echo "<BR>to<BR>\n"; +echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Gruppi Utenti:</B></font><BR><CENTER>\n"; +echo "<SELECT SIZE=5 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } +echo "</SELECT>\n"; + +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Order:</B></font><BR>\n"; +echo "<SELECT SIZE=1 NAME=order>\n"; +echo "<option selected value=\"$order\">$order</option>\n"; +echo "<option value=\"\">--</option>\n"; +echo "<option>hours_up</option>\n"; +echo "<option>hours_down</option>\n"; +echo "<option>user_up</option>\n"; +echo "<option>user_down</option>\n"; +echo "<option>name_up</option>\n"; +echo "<option>name_down</option>\n"; +echo "<option>group_up</option>\n"; +echo "<option>group_down</option>\n"; +echo "</SELECT><BR><CENTER>\n"; + +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Utente:</B></font><BR>\n"; +echo "<INPUT TYPE=text NAME=user SIZE=7 MAXLENGTH=20 VALUE=\"$user\">\n"; + +echo "<BR><BR><INPUT TYPE=Submit NAME=INVIA VALUE=INVIA>\n"; +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "</TD><TD ALIGN=CENTER VALIGN=TOP ROWSPAN=3>\n"; +echo "<FONT class=\"select_bold\" COLOR=BLACK SIZE=2>     <a href=\"./admin.php?ADD=999999\">REPORT</a> </FONT>\n"; + +echo "</TD></TR></TABLE>\n"; +echo "</FORM>\n\n"; + +echo "<PRE><FONT SIZE=3>\n"; + + +echo "UtenteOrologio Report $NOW_TIME\n"; + +echo "Intervallo Di Tempo: $query_date to $end_date\n\n"; +echo "---------- USER TIMECLOCK DETAILS -------------\n"; +echo "These totals do NOT include any active sessions\n</PRE>\n"; + +echo "<TABLE Border=0 CELLSPACING=1 CELLPADDING=3><TR BGCOLOR=BLACK>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">#</TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  USER  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  NAME  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  GROUP  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  HOURS  </TD>\n"; +echo "</TR>\n"; + +$order_SQL=''; +if ($order == 'hours_up') {$order_SQL = "order by login";} +if ($order == 'hours_down') {$order_SQL = "order by login desc";} +if ($order == 'user_up') {$order_SQL = "order by vicidial_users.user";} +if ($order == 'user_down') {$order_SQL = "order by vicidial_users.user desc";} +if ($order == 'name_up') {$order_SQL = "order by full_name";} +if ($order == 'name_down') {$order_SQL = "order by full_name desc";} +if ($order == 'group_up') {$order_SQL = "order by vicidial_timeclock_log.user_group";} +if ($order == 'group_down') {$order_SQL = "order by vicidial_timeclock_log.user_group desc";} + +if (strlen($user) > 0) {$user_SQL = "and vicidial_timeclock_log.user='$user'";} +else {$user_SQL='';} + +$stmt="select vicidial_users.user,full_name,sum(login_sec) as login,vicidial_timeclock_log.user_group from vicidial_users,vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date 00:00:00' and event_date <= '$end_date 23:59:59' and vicidial_users.user=vicidial_timeclock_log.user $user_SQL $user_group_SQL group by vicidial_users.user,vicidial_timeclock_log.user_group $order_SQL limit 100000;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$rows_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $rows_to_print) + { + $dbHOURS=0; + $row=mysql_fetch_row($rslt); + $user_id[$i] = $row[0]; + $full_name[$i] = $row[1]; + $login_sec[$i] = $row[2]; $TOTlogin_sec = ($TOTlogin_sec + $row[2]); + $u_group[$i] = $row[3]; + + if ($login_sec[$i] > 0) + { + $dbHOURS = ($login_sec[$i] / 3600); + $dbHOURS = round($dbHOURS, 2); + $dbHOURS = sprintf("%01.2f", $dbHOURS); + } + else + {$dbHOURS='0.00';} + + $hours[$i] = $dbHOURS; + $hoursSORT[$i] = "$dbHOURS-----$i"; + + $i++; + } + + +$j=0; +while ($j < $rows_to_print) + { + + $hours_split = explode("-----",$hoursSORT[$j]); + $i = $hours_split[1]; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "<TR $bgcolor>\n"; + echo "<TD ALIGN=LEFT><FONT class=\"data_records_fix_small\">$j</TD>\n"; + echo "<TD><FONT class=\"data_records\"><A HREF=\"user_status.php?user=$user_id[$i]\">$user_id[$i]</A> </TD>\n"; + echo "<TD><FONT class=\"data_records\">$full_name[$i] </TD>\n"; + echo "<TD><FONT class=\"data_records\">$u_group[$i] </TD>\n"; + echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $hours[$i]</TD>\n"; + echo "</TR>\n"; + + $j++; + } + + +if ($TOTlogin_sec > 0) + { + $TOTdbHOURS = ($TOTlogin_sec / 3600); + $TOTdbHOURS = round($TOTdbHOURS, 0); + $TOTdbHOURS = sprintf("%01.0f", $TOTdbHOURS); + } +else + {$TOTdbHOURS='0.00';} + +$TOThours = $TOTdbHOURS; + + +echo "<TR BGCOLOR=#E6E6E6>\n"; +echo "<TD ALIGN=LEFT COLSPAN=4><FONT class=\"data_records\">TOTALI</TD>\n"; +echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $TOThours</TD>\n"; +echo "</TR>\n"; + +echo "</TABLE>\n"; + +echo "\n"; + +/* + $TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60); + $TOTavgWAIT_M = round($TOTavgWAIT_M, 2); + $TOTavgWAIT_M_int = intval("$TOTavgWAIT_M"); + $TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int); + $TOTavgWAIT_S = ($TOTavgWAIT_S * 60); + $TOTavgWAIT_S = round($TOTavgWAIT_S, 0); + if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";} + $TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S"; + $TOTavgWAIT_MS = sprintf("%6s", $TOTavgWAIT_MS); + while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);} +*/ +?> +</CENTER> +</BODY></HTML> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_status.php new file mode 100644 index 00000000..c633c320 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/timeclock_status.php @@ -0,0 +1,550 @@ +<?php +# timeclock_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80602-0201 - First Build +# 80603-1500 - formatting changes +# 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$HHMM = date("Hi"); +$HHteod = substr($timeclock_end_of_day,0,2); +$MMteod = substr($timeclock_end_of_day,2,2); + +if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} +else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + +$EoDdate = date("Y-m-d H:i:s", $EoD); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + if ($row[0]==$user_group) + {$FORMuser_groups.="<option value=\"$row[0]\" SELECTED>$row[0]</option>";} + else + {$FORMuser_groups.="<option value=\"$row[0]\">$row[0]</option>";} + $i++; + } + +if (strlen($user_group) > 0) + { + $stmt="SELECT group_name from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + } + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION:Orologio Status +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<CENTER> +<TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Orologio Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php +echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; +echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>Utente Group</a>\n"; +?> +</TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<select size=1 name=user_group>$FORMuser_groups</select>"; +echo "<input type=submit name=submit value=submit>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; +echo "<br><center>\n"; + +if (strlen($user_group) < 1) + { + exit; + } + + +##### grab all users in this user_group ##### +$stmt="SELECT user,full_name from vicidial_users where user_group='" . mysql_real_escape_string($user_group) . "' order by full_name;"; +if ($DB>0) {echo "|$stmt|";} +$rslt=mysql_query($stmt, $link); +$users_to_print = mysql_num_rows($rslt); +$o=0; +while ($users_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $users[$o] = $row[0]; + $full_name[$o] = $row[1]; + $Vevent_time[$o] = ''; + $Vevent_epoch[$o] = 0; + $Vcampaign[$o] = ''; + $Tevent_epoch[$o] = ''; + $Tevent_date[$o] = ''; + $Tstatus[$o] = ''; + $Tip_address[$o] = ''; + $Tlogin_time[$o] = ''; + $Tlogin_sec[$o] = 0; + + $o++; + } + +$o=0; +while ($users_to_print > $o) + { + $total_login_time = 0; + ##### grab timeclock status record for this user ##### + $stmt="SELECT event_epoch,event_date,status,ip_address from vicidial_timeclock_status where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $stats_to_print = mysql_num_rows($rslt); + if ($stats_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_epoch[$o] = $row[0]; + $Tevent_date[$o] = $row[1]; + $Tstatus[$o] = $row[2]; + $Tip_address[$o] = $row[3]; + + if ( ($row[2]=='START') or ($row[2]=='LOGIN') ) + {$bgcolor[$o]='bgcolor="#B9CBFD"';} + else + {$bgcolor[$o]='bgcolor="#9BB9FB"';} + } + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event,event_epoch,login_sec from vicidial_timeclock_log where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $logs_to_parse = mysql_num_rows($rslt); + $p=0; + while ($logs_to_parse > $p) + { + $row=mysql_fetch_row($rslt); + if ( (ereg("LOGIN", $row[0])) or (ereg("START", $row[0])) ) + { + $login_sec=''; + $Tevent_time[$o] = date("Y-m-d H:i:s", $row[1]); + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[2]; + $total_login_time = ($total_login_time + $login_sec); + } + $p++; + } + if ( (strlen($login_sec)<1) and ($logs_to_parse > 0) ) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } + if ($logs_to_parse > 0) + { + $total_login_hours = ($total_login_time / 3600); + $total_login_hours_int = round($total_login_hours, 2); + $total_login_hours_int = intval("$total_login_hours"); + $total_login_minutes = ($total_login_hours - $total_login_hours_int); + $total_login_minutes = ($total_login_minutes * 60); + $total_login_minutes_int = round($total_login_minutes, 0); + if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + + $Tlogin_time[$o] = "$total_login_hours_int:$total_login_minutes_int"; + $Tlogin_sec[$o] = $total_login_time; + } + else + { + $total_login_time = 0; + $Tlogin_time[$o] = "0:00"; + $Tlogin_sec[$o] = $total_login_time; + } + + if ($DB>0) {echo "|$Tlogin_sec[$o]|$Tlogin_time[$o]|";} + + ##### grab vicidial_agent_log records in this user_group ##### + $stmt="SELECT event_time,UNIX_TIMESTAMP(event_time),campaign_id from vicidial_agent_log where user='$users[$o]' and event_time >= '$EoDdate' order by agent_log_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $vals_to_print = mysql_num_rows($rslt); + if ($vals_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Vevent_time[$o] = $row[0]; + $Vevent_epoch[$o] = $row[1]; + $Vcampaign[$o] = $row[2]; + } + + $o++; + } + + +##### print each user that has any activity for today ##### +echo "<br>\n"; +echo "<center>\n"; + +echo "<TABLE width=720 cellspacing=0 cellpadding=1>\n"; +echo "<TR>\n"; +echo "<TD bgcolor=\"#99FF33\">     </TD><TD align=left> TC Logged in and VICI active</TD>\n"; # bright green +echo "<TD bgcolor=\"#FFFF33\">     </TD><TD align=left> TC Logged in only</TD>\n"; # bright yellow +echo "<TD bgcolor=\"#FF6666\">     </TD><TD align=left> VICI active only</TD>\n"; # bright red +echo "</TR><TR>\n"; +echo "<TD bgcolor=\"#66CC66\">     </TD><TD align=left> TC Logged out and VICI active</TD>\n"; # dull green +echo "<TD bgcolor=\"#CCCC00\">     </TD><TD align=left> TC Logged out only</TD>\n"; # dull yellow +echo "<TD>     </TD><TD align=left>   </TD>\n"; +echo "</TR></TABLE><BR>\n"; + +echo "<B>USER STATUS FOR Utente Gruppo: $user_group</B>\n"; +echo "<TABLE width=700 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2># </td><td><font size=2>USER </td><td align=left><font size=2>NAME </td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> TC TIME</td><td align=right><font size=2>TC LOGIN</td><td align=right><font size=2> VICI LAST LOG</td><td align=right><font size=2> VICI CAMPAIGN</td></tr>\n"; + +$o=0; +$s=0; +while ($users_to_print > $o) + { + if ( ($Tlogin_sec[$o] > 0) or (strlen($Vevent_time[$o]) > 0) ) + { + if ( ($Tstatus[$o]=='START') or ($Tstatus[$o]=='LOGIN') ) + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#FFFF33"';} # yellow + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#99FF33"';} # green + } + else + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#CCCC00"';} # yellow + if (strlen($Vevent_time[$o]) > 0) + {$bgcolor[$o]='bgcolor="#FF6666"';} # red + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#66CC66"';} # green + } + + $s++; + echo "<tr $bgcolor[$o]>"; + echo "<td><font size=1>$s</td>"; + echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; + echo "<td><font size=2>$full_name[$o]</td>"; + echo "<td><font size=2>$Tip_address[$o]</td>"; + echo "<td align=right><font size=2>$Tlogin_time[$o]</td>"; + echo "<td align=right><font size=2>$Tevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vcampaign[$o]</td>"; + echo "</tr>"; + + if (strlen($Tstatus[$o])>0) + {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} + } + $o++; + } + + + +$total_login_hours = ($TOTlogin_sec / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr bgcolor=white>"; +echo "<td colspan=4><font size=2>TOTALI</td>"; +echo "<td align=right><font size=2>$total_login_hours_int:$total_login_minutes_int</td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "</tr>"; +echo "</table>"; + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php +exit; + + + + + + + + + + + +##### vicidial_timeclock log records for user ##### + +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK TIEMPO LOGIN/LOGOUT:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>ORE:MINUTI</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours = ($login_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } +$total_login_hours = ($total_login_time / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTALE </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_group_bulk_change.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_group_bulk_change.php new file mode 100644 index 00000000..096f68ca --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_group_bulk_change.php @@ -0,0 +1,271 @@ +<?php +# user_group_bulk_change.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# 81119-0918 - First build +# 90309-1830 - Added admin_log logging +# 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["old_group"])) {$old_group=$_GET["old_group"];} + elseif (isset($_POST["old_group"])) {$old_group=$_POST["old_group"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Gruppo Utente Bulk Cambia +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + + +?> + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Gruppo Utente Bulk Cambia</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### GROUP CHANGE FOR ALL USERS IN A USER GROUP ##### +if ($stage == "one_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group='" . mysql_real_escape_string($old_group) . "';"; + $rslt=mysql_query($stmt, $link); + + echo "All Gruppo Utente $old_group Utenti changed to the $group Gruppo Utente<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK Utente Group CHANGE', event_sql=\"$SQL_log\", event_notes='Old Gruppo: $old_group';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +##### GROUP CHANGE FOR ALL USERS IN THE SYSTEM EXCEPT FOR LEVEL > 6 AND ADMIN GROUP ##### +if ($stage == "all_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group!='ADMIN' and user_group < 7;"; + $rslt=mysql_query($stmt, $link); + + echo "All non-Admin Utenti changed to the $group Gruppo Utente<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK Utente Group CHANGE', event_sql=\"$SQL_log\", event_notes='ALL NON-ADMIN;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +### one user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"one_user_group_change\">\n"; +echo "Change Utenti in this gruppo: <SELECT SIZE=1 NAME=old_group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR>   to this gruppo: <SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=INVIA></CENTER><BR></form>\n"; + +echo "\n<BR><BR><BR>"; + + + +### all user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"all_user_group_change\">\n"; +echo "Change ALL non-Admin Utenti to this gruppo: <BR><SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=INVIA></CENTER><BR></form>\n"; + +echo "\n<BR>"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_stats.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_stats.php new file mode 100644 index 00000000..dcf5245d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_stats.php @@ -0,0 +1,677 @@ +<?php +# user_stats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1743 - Added variable filtering to eliminate SQL injection attack threat +# 61201-1136 - Added recordings display and changed calls to time range with 10000 limit +# 70118-1605 - Added user group column to login/out and calls lists +# 70702-1231 - Added recording location link and truncation +# 80117-0316 - Added vicidial_user_closer_log entries to display +# 80501-0506 - Added Hangup Reason to logs display +# 80523-2012 - Added vicidial timeclock records display +# 80617-1402 - Fixed timeclock total logged-in time +# 81210-1634 - Added server recording display options +# 90208-0504 - Added link to multi-day report and fixed call status summary section +# 90305-1226 - Added user_call_log manual dial logs +# 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +$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"); +$TODAY = date("Y-m-d"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + $stmt="SELECT full_name from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Statistiche utente +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Statistiche utente for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=text name=begin_date value=\"$begin_date\" size=10 maxsize=10> to \n"; +echo "<input type=text name=end_date value=\"$end_date\" size=10 maxsize=10>  \n"; +if (strlen($user)>1) + {echo "<input type=hidden name=user value=\"$user\">\n";} +else + {echo "<input type=text name=user size=12 maxlength=10>\n";} +echo "<input type=submit name=submit value=submit>\n"; + + +echo "           $user - $full_name<BR><BR>\n"; + +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " | <a href=\"./user_status.php?user=$user\">Status Utente</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modifica Utente</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">Utente multiple day status detail report</a>"; +echo "</center>\n"; + + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +##### vicidial agent talk time and status ##### + +echo "<B>AGENT TEMPO DI CHIAMATA E ESITO:</B>\n"; + +echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ESITO</td><td align=right><font size=2>CUENTA</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + +$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); +$VLstatuses_to_print = mysql_num_rows($rslt); +$total_calls=0; +$o=0; $p=0; +while ($VLstatuses_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $p++; + $o++; + } + +$stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_closer_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); +$VCLstatuses_to_print = mysql_num_rows($rslt); +$o=0; +while ($VCLstatuses_to_print > $o) + { + $status_match=0; + $r=0; + $row=mysql_fetch_row($rslt); + while ($VLstatuses_to_print > $r) + { + if ($status[$r] == $row[1]) + { + $counts[$r] = ($counts[$r] + $row[0]); + $call_sec[$r] = ($call_sec[$r] + $row[2]); + $status_match++; + } + $r++; + } + if ($status_match < 1) + { + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $VLstatuses_to_print++; + $p++; + } + $o++; + } + +$o=0; +$total_sec=0; +while ($o < $p) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $call_hours_minutes = sec_convert($call_sec[$o],'H'); + + echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; + echo "<td align=right><font size=2> $counts[$o]</td>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $total_calls = ($total_calls + $counts[$o]); + $total_sec = ($total_sec + $call_sec[$o]); + $call_seconds=0; + $o++; + } + +$call_hours_minutes = sec_convert($total_sec,'H'); + +echo "<tr><td><font size=2>TOTALE CHIAMATE </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; +echo "</TABLE></center>\n"; + + +##### Login and Logout time from vicidial agent interface ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>AGENT TIEMPO LOGIN/LOGOUT:</B>\n"; +echo "<TABLE width=500 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><td align=right><font size=2> CAMPAGNA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group 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); + $events_to_print = mysql_num_rows($rslt); + + $total_calls=0; + $o=0; + $event_start_seconds=''; + $event_stop_seconds=''; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if (eregi("LOGIN", $row[0])) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if (ereg("LOGIN", $row[0])) + { + $event_start_seconds = $row[1]; + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + if ($event_start_seconds) + { + + $event_stop_seconds = $row[1]; + $event_seconds = ($event_stop_seconds - $event_start_seconds); + $total_login_time = ($total_login_time + $event_seconds); + $event_hours_minutes = sec_convert($event_seconds,'H'); + + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; + $event_start_seconds=''; + $event_stop_seconds=''; + } + else + { + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + } + + $total_calls = ($total_calls + $row[0]); + + $call_seconds=0; + $o++; + } + +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +echo "<tr><td><font size=2>TOTALE</td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + +##### vicidial_timeclock log records for user ##### + +$total_login_time=0; +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK TIEMPO LOGIN/LOGOUT:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENTO </td><td align=right><font size=2> DATA</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours_minutes = sec_convert($login_sec,'H'); + + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes"; + if ($DB) {echo " - $total_login_time - $login_sec";} + echo "</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} + } +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +if ($DB) {echo " - $total_login_time - $login_sec";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTALE </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + +##### closer in-group selection logs ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAGNA</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; + +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_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' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound calls for this time period ##### + +echo "<B>OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> CAMPAGNA</td><td align=right><font size=2> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial 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' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent inbound calls for this time period ##### + +echo "<B>INBOUND/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> CAMPAGNA</td><td align=right><font size=2> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[17] </td></tr>\n"; + + } + + +echo "</TABLE></center><BR><BR>\n"; + + +##### vicidial recordings for this time period ##### + +echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "<a href=\"$location\">$locat</a>";} + else + {$location = $locat;} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td align=left><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[12]\" target=\"_blank\">$row[12]</A> </td>"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[8] </td>\n"; + echo "<td align=left><font size=2> $row[0] </td>\n"; + echo "<td align=center><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $location   </td>\n"; + echo "</tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound user manual calls for this time period ##### + +echo "<B>MANUAL OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CALL TYPE</td><td align=left><font size=2> SERVER</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> DIALED</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CALLERID</td><td align=right><font size=2> ALIAS</td></tr>\n"; + + $stmt="select call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id from user_call_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[0]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[2]</td>\n"; + echo "<td align=left><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[4] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[5]\" target=\"_blank\">$row[5]</A> </td>\n"; + echo "<td align=right><font size=2> $row[6] </td>\n"; + echo "<td align=right><font size=2> $row[7] </td></tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_status.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_status.php new file mode 100644 index 00000000..37f215b0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_status.php @@ -0,0 +1,677 @@ +<?php +# user_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1738 - Added variable filtering to eliminate SQL injection attack threat +# 80603-1452 - Added manager timeclock force login/logout of user +# 81118-1034 - Disabled change campaign because it does not work +# 90208-0511 - Added link to user multi-day status report +# 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $agents_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $agents_to_print) + { + $row=mysql_fetch_row($rslt); + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; + $i++; + } + + $stmt="SELECT event_date,status,ip_address from vicidial_timeclock_status where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_date = $row[0]; + $Tstatus = $row[1]; + $Tip_address = $row[2]; + $i++; + } + + } + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Status Utente +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Status Utente for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### EMERGENCY CAMPAIGN CHANGE FOR AN AGENT ##### +if ($stage == "live_campaign_change") + { + $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); + + echo "Agent $user - $full_name changed to $group campaign<BR>\n"; + + exit; + } + +##### EMERGENCY LOGOUT OF AN AGENT ##### +if ($stage == "log_agent_out") + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; + + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } + + exit; + } + + + + + +##### BEGIN TIMECLOCK LOGOUT OF A USER ##### +if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($modify_timeclock_log > 0) ) + { + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $LOG_run=0; + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + } + + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; + } + + + ##### Run timeclock login queries ##### + if ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage == "tc_log_user_IN") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGIN of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update the user's timeclock status record + $stmtB="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtC="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGIN', record_id='$user', event_code='USER FORCED LOGIN FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Orologio ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-in the user: $user - $full_name"; + } + + ##### Run timeclock logout queries ##### + if ( ( ($status=='LOGIN') or ($status=='START') ) and ($stage == "tc_log_user_OUT") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGOUT of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update last login record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_log record updated for $user: |$affected_rows| -->\n"; + + ### Update the user's timeclock status record + $stmtC="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtD="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtD\n";} + $rslt=mysql_query($stmtD, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Update last login record in the timeclock audit log + $stmtE="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtE\n";} + $rslt=mysql_query($stmtE, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_audit_log record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|$stmtD|$stmtE|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGOUT', record_id='$user', event_code='USER FORCED LOGOUT FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Utente login time: $last_action_sec|Orologio ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-out the user: $user - $full_name<BR>Amount of time user was logged-in: $totTIME_HMS"; + } + + if ($LOG_run < 1) + {$VDdisplayMESSAGE = "ERROR: timeclock log problem, could not process: $status|$stage";} + + echo "$VDdisplayMESSAGE\n"; + + exit; + } + +##### END TIMECLOCK LOGOUT OF A USER ##### + +if ($agents_to_print > 0) + { + echo "<BR>\n"; + echo "$user - $full_name \n"; + echo "       GROUP: $user_group <BR>\n"; + + echo "<TABLE CELLPADDING=0 CELLSPACING=0>"; + echo "<TR><TD ALIGN=RIGHT>Agent Logged in at server:</TD><TD ALIGN=LEFT>   $Aserver_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>in session:</TD><TD ALIGN=LEFT>   $Asession_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>from phone:</TD><TD ALIGN=LEFT>   $Aextension</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Agent is in campaign:</TD><TD ALIGN=LEFT>   $Acampaign</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>esito:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} + echo "</TABLE>\n<BR>\n"; + + if ($change_agent_campaign > 0) + { + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; + echo "Current Campagna: <SELECT SIZE=1 NAME=group>\n"; + $o=0; + while ($groups_to_print > $o) + { + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; + + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"log_agent_out\">\n"; + echo "<input type=submit name=submit value=\"EMERGENCY LOG AGENT OUT\"><BR></form>\n"; + } + } + +else + { + echo "Agent is not logged in\n<BR>"; + } + +echo "\n<BR>"; + +if ( ($Tstatus == "LOGIN") or ($Tstatus == "START") ) + { + echo "Utente $user($full_name) - is logged in to the timeclock. <BR>Login time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_OUT'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER OUT'; + } +else + { + echo "Utente $user($full_name) - is NOT logged in to the timeclock. <BR>Last logout time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_IN'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER IN'; + } + +if ($modify_timeclock_log > 0) + { + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"$TC_log_change_stage\">\n"; + echo "<input type=submit name=submit value=\"$TC_log_change_button\"><BR></form>\n"; + echo "<BR><BR>\n"; + } + + +$REPORTdate = date("Y-m-d"); +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " | <a href=\"./user_stats.php?user=$user\">Statistiche utente</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modifica Utente</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">Utente multiple day status detail report</a>"; +echo "</center>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nTempo Esecuzione Script: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_territories.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner
\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Account ID:
New Owner:
Update ViciDial List Owner:
\n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
\n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
\n"; + echo "Records Changed: $changed
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
  ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
  \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
\n"; + echo ""; + + echo "
Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
Territory:
New Owner:
Update ViciDial List Owner:
\n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo " ++ {elseif $keyid eq '11'} ++ + {elseif $keyid eq '15' || $keyid eq '16'} + + {/if} + {/if} +- ++ {if $MODULE eq 'Accounts'} ++ VC fax log     ++ VC email log ++ {/if} ++ + {if $MODULE eq 'Contacts' || $EVENT_PERMISSION eq 'true'} + + ++ {elseif $keyid eq '11'} ++ + {elseif $keyid eq '15' || $keyid eq '16'} + + {/if} + {/if} +- ++ {if $MODULE eq 'Accounts'} ++ VC fax log     ++ VC email log ++ {/if} ++ ++ {if $MODULE eq 'Contacts'} ++ VC SELECT THIS CONTACT ++ {/if} ++ ++ + {if $MODULE eq 'Contacts' || $EVENT_PERMISSION eq 'true'} + +
\n"; + echo ""; + + echo "
Add User Territory\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
Agent:
Territory:
Level:
\n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
\n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo " + {elseif $keyid eq '13'} + ++ ++ {elseif $keyid eq '11'} ++ + {elseif $keyid eq '15' || $keyid eq '16' || $keyid eq '111'} + ++ {elseif $keyid eq '11'} ++ + + {elseif $keyid eq '15' || $keyid eq '16' || $keyid eq '111'} + {foreach item=arr from=$keyoptions} +--- ./include/js/dtlviewajax.js 2009-01-26 13:59:25.000000000 -0500 ++++ ./include/js/dtlviewajax.js 2009-01-26 15:02:33.000000000 -0500 +@@ -293,6 +293,9 @@ + if(secEmail) + secEmail.value = tagValue; + } ++ }else if(uitype == '11') ++ { ++ getObj(dtlView).innerHTML = ""+tagValue+" "; + }else if(uitype == '17') + { + getObj(dtlView).innerHTML = ""+tagValue+" "; +--- ./include/utils/ListViewUtils.php 2009-01-26 10:42:14.000000000 -0500 ++++ ./include/utils/ListViewUtils.php 2009-01-26 18:54:39.000000000 -0500 +@@ -1291,6 +1291,11 @@ + $value = ''.$temp_val.''; + + } ++ // VICIDIAL agent screen phone number click to dial ++ elseif($uitype == 11) ++ { ++ $value = "VCcall: user_name');\">$temp_val"; ++ } + elseif($uitype == 56) + { + if($temp_val == 1) +--- ./include/utils/UserInfoUtil.php 2008-12-31 21:39:39.000000000 -0500 ++++ ./include/utils/UserInfoUtil.php 2009-01-01 01:20:17.000000000 -0500 +@@ -1175,6 +1175,18 @@ + global $adb; + global $current_user; + global $seclog; ++ if (!file_exists('user_privileges/user_privileges_'.$current_user->id.'.php')) ++ { ++ # create User Priviledges file ++ require('modules/Users/CreateUserPrivilegeFile.php'); ++ createUserPrivilegesfile($current_user->id); ++ } ++ if (!file_exists('user_privileges/sharing_privileges_'.$current_user->id.'.php')) ++ { ++ # create Sharing Priviledges file ++ require('modules/Users/CreateUserPrivilegeFile.php'); ++ createUserSharingPrivilegesfile($current_user->id); ++ } + require('user_privileges/user_privileges_'.$current_user->id.'.php'); + require('user_privileges/sharing_privileges_'.$current_user->id.'.php'); + $permission = "no"; +--- ./Smarty/templates/DetailView.tpl 2008-03-10 08:54:31.000000000 -0400 ++++ ./Smarty/templates/DetailView.tpl 2009-03-26 19:52:24.000000000 -0400 +@@ -175,6 +175,10 @@ +   + {/if} + {/if} ++ {if $MODULE eq 'Accounts'} ++           VC fax log   ++           VC email log   ++ {/if} + {if $MODULE eq 'Quotes' || $MODULE eq 'PurchaseOrder' || $MODULE eq 'SalesOrder' || $MODULE eq 'Invoice'} + {if $CREATEPDF eq 'permitted'} +   + +--- ./include/js/general.js 2008-03-10 08:54:31.000000000 -0400 ++++ ./include/js/general.js 2009-04-07 19:31:16.000000000 -0400 +@@ -1768,6 +1768,73 @@ + openPopUp('xComposeEmail',this,url,'createemailWin',830,662,opts); + } + ++function VICIDIALcall(record_id,field_name,phone,user_name) { ++//alert(record_id + "|" + field_name + "|" + phone + "|" user_name); ++var xmlhttp=false; ++/*@cc_on @*/ ++/*@if (@_jscript_version >= 5) ++// JScript gives us Conditional compilation, we can cope with old IE versions. ++// and security blocked creation of the objects. ++ try { ++ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); ++ } catch (e) { ++ try { ++ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); ++ } catch (E) { ++ xmlhttp = false; ++ } ++ } ++@end @*/ ++if (!xmlhttp && typeof XMLHttpRequest!='undefined') ++ { ++ xmlhttp = new XMLHttpRequest(); ++ } ++if (xmlhttp) ++ { ++ var callback_flag=''; ++ if (field_name=='CallBack') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 10) ++ {log_call = "0" + log_call;} ++ phone = "99" + log_call; ++ callback_flag = '&callback=1'; ++ } ++ if (field_name=='fax') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 8) ++ {log_call = "0" + log_call;} ++ phone = "18" + log_call; ++ } ++ if (field_name=='email') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 8) ++ {log_call = "0" + log_call;} ++ phone = "19" + log_call; ++ } ++ var VCcallQuery = "VCcall=1&phone=" + phone + "&vendor_id=" + record_id + '' + callback_flag; ++ xmlhttp.open('POST', 'vtigerservice.php'); ++ xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); ++ xmlhttp.send(VCcallQuery); ++ xmlhttp.onreadystatechange = function() ++ { ++ if (xmlhttp.readyState == 4 && xmlhttp.status == 200) ++ { ++ // alert(xmlhttp.responseText); ++ var Xoutput = null; ++ Xoutput = xmlhttp.responseText; ++ var regXFerr = new RegExp("ERROR","g"); ++ if (Xoutput.match(regXFerr)) ++ { ++ alert(xmlhttp.responseText); ++ } ++ } ++ } ++ delete xmlhttp; ++ } ++} + function fnHide_Event(obj){ + document.getElementById(obj).style.visibility = 'hidden'; + } +--- ./vtigerservice.php 2008-03-10 08:54:31.000000000 -0400 ++++ ./vtigerservice.php 2009-04-07 19:16:44.000000000 -0400 +@@ -42,6 +42,63 @@ + } + else + { ++ if(isset($_REQUEST['VCcall'])) ++ { ++ $CL=':'; ++ $server_name = getenv("SERVER_NAME"); ++ $server_port = getenv("SERVER_PORT"); ++ if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} ++ else {$HTTPprotocol = 'http://';} ++ if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} ++ else {$server_port = "$CL$server_port";} ++ $URLbase = "$HTTPprotocol$server_name$server_port"; ++ ++ $callback_flag=''; ++ if(isset($_REQUEST['callback'])) ++ { ++ $callback_flag = '&vtiger_callback=YES'; ++ } ++ global $entityDel; ++ global $display; ++ global $category; ++ header('Content-Type: text/html; charset='. $charset); ++ session_start(); ++ require_once('include/utils/utils.php'); ++ require_once('config.inc.php'); ++ $default_config_values = Array( "allow_exports"=>"all","upload_maxsize"=>"3000000", "listview_max_textlength" => "40" ); ++ set_default_config($default_config_values); ++ require_once('include/logging.php'); ++ require_once('modules/Users/Users.php'); ++ global $currentModule; ++ $current_user = new Users(); ++ ++ $log =& LoggerManager::getLogger('index'); ++ global $seclog; ++ $seclog =& LoggerManager::getLogger('SECURITY'); ++ $log->debug($_REQUEST); ++ ++ // Check to see if there is an authenticated user in the session. ++ if(isset($_SESSION["authenticated_user_id"]) && (isset($_SESSION["app_unique_key"]) && $_SESSION["app_unique_key"] == $application_unique_key)) ++ { ++ $log->debug("We have an authenticated user id: ".$_SESSION["authenticated_user_id"]); ++ $result = $current_user->retrieveCurrentUserInfoFromFile($_SESSION['authenticated_user_id']); ++ $log->debug('Current user is: '.$current_user->user_name); ++ } ++ ++ $phone = $_REQUEST['phone']; $vendor_id = $_REQUEST['vendor_id']; ++ $user = $current_user->user_name; ++ ++ $VCapiURL = "/agc/api.php"; ++ $VCpauseQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_pause&value=PAUSE"; ++ $VCcallQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_dial&value=$phone&phone_code=1&search=YES&preview=NO&focus=YES&vendor_id=$vendor_id$callback_flag"; ++ $replyP = file("$URLbase$VCapiURL$VCpauseQuery"); ++// sleep(1); ++ $replyC = file("$URLbase$VCapiURL$VCcallQuery"); ++ echo "$replyP[0]|$replyC[0]\n"; ++// echo "$URLbase$VCapiURL$VCcallQuery\n"; ++ } ++ else ++ { + echo "

vtigerCRM Soap Services

"; + echo "
  • vtigerCRM Outlook Plugin EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM Word Plugin EndPoint URL -- Click here
  • "; +@@ -49,6 +106,7 @@ + echo "
  • vtigerCRM Customer Portal EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM WebForm EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM FireFox Extension EndPoint URL -- Click here
  • "; ++ } + } + + +--- ./Smarty/templates/ActivityDetailView.tpl 2008-03-10 08:54:31.000000000 -0400 ++++ ./Smarty/templates/ActivityDetailView.tpl 2009-04-07 18:50:36.000000000 -0400 +@@ -104,7 +104,10 @@ +
    \n"; + echo ""; + + echo "
    Add Territory\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Territory:
    Territory Description:
    \n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
    \n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
    \n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
    \n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "\\n\";"; + } + $e++; + } + } + else + { + if ($file[$LINESct] =~ /INTERNATIONALIZATION-LINKS-PLACEHOLDER-AGC/) + { + $file[$LINESct] =~ s/INTERNATIONALIZATION-LINKS-PLACEHOLDER-AGC/ILPA/g; + $e=0; + $gif = '.gif'; + foreach(@lang_link_list) + { + if (length($lang_link_list[$e]) > 2) + { + @lang_list_detail = split(/-/, $lang_link_list[$e]); + $lang_list_abb = $lang_list_detail[0]; + $lang_list_name = $lang_list_detail[1]; + if ($lang_list_abb =~ /$lang_abb/) {$list_bgcolor = ' BGCOLOR=\"#CCFFCC\"';} + else {$list_bgcolor = '';} + $file[$LINESct] .= "echo \"\\n\";"; + } + $e++; + } + } + else + { + if ( ($lang_abb =~ /^en/) && ($Tct > 2) ) + { + $file[$LINESct] =~ s/\.\/images\//\.\.\/agc\/images\//g; + $file[$LINESct] =~ s/\"help.gif/\"..\/astguiclient\/help.gif/g; + $phrase_found_counter++; + } + if ($lang_abb !~ /^en/) + { + $file[$LINESct] =~ s/$ORIGtext/$TRANStext/g; + $phrase_found_counter++; + } + } + } + } + + if ($phrase_found_counter < 1) + { + open(ERRout, ">>$LANG_FILE_ERROR") + || die "Can't open $LANG_FILE_ERROR: $!\n"; + print ERRout "|$ORIGtext|\n"; + close(ERRout); + } + + $LINESct++; + + if ($a =~ /00000$/i) {print "$a $file[$LINESct]\n|$ORIGtext|$TRANStext|";} + $a++; + } + $Tct++; + } + } + ### open the translation result file for writing ### + open(out, ">$webroot/$file_path$US$lang_abb/$file_name") + || die "Can't open $webroot/$file_path$US$lang_abb/$file_name: $!\n"; + # print out "Header(\"Content-type: text/html; charset=utf-8\");\n"; + $LINESct=0; + foreach(@file) + { + print out "$file[$LINESct]"; + $LINESct++; + } + close(out); + print "\n"; + print "File Written: $webroot/$file_path$US$lang_abb/$file_name\n"; + } + else + { + print "File does not exist: $webroot/$file_path/$file_name\n"; + } + $Fct++; + } + } + } + $i++; + } + +} \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/bin/start_asterisk_boot.pl b/agc_2-X/branches/agc_2.2.0/bin/start_asterisk_boot.pl new file mode 100644 index 00000000..9295f2f2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/start_asterisk_boot.pl @@ -0,0 +1,128 @@ +#!/usr/bin/perl +# +# start_asterisk_boot.pl version 2.0.5 +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# +# 60814-1658 - mattf - Added option to start without logging through servers table setting +# 90309-0905 - mattf - Added deleting of asterisk command files +# 90325-2238 - mattf - Rewrote launching of Asterisk, removed command files +# 90506-1443 - mikec - Added the T option to the asterisk command. This enables timestamping. +# 91210-1500 - mattf - Added datetimestamp to astshell screen +# + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +$secX = time(); +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX); +$mon++; +$year = ($year + 1900); +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +$launch_date = "$year$mon$mday$hour$min$sec"; + +`PERL5LIB="$PATHhome/libs"; export PERL5LIB`; + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = $aryA[0]; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + } +$sthA->finish(); + +`ulimit -n 65536`; + +if ($SYSLOG) + { + `/usr/bin/screen -d -m -S astershell$launch_date /usr/bin/screen -S astshell$launch_date`; + print "started screen\n"; + + sleep(1); + `screen -XS astshell$launch_date eval 'stuff "cd /var/log/astguiclient\015"'`; + print "changed directory\n"; + + sleep(1); + `screen -XS astshell$launch_date eval 'stuff "screen -L -S asterisk\015"'`; + print "started new screen session\n"; + + sleep(1); + `screen -d astshell$launch_date`; + `screen -d asterisk`; + print "detached screens\n"; + + sleep(1); + `screen -XS asterisk eval 'stuff "ulimit -n 65536\015"'`; + print "raised ulimit open files\n"; + + sleep(1); + `screen -XS asterisk eval 'stuff "/usr/sbin/asterisk -vvvvvvvvvvvvvvvvvvvvvgcT\015"'`; + print "Asterisk started... screen logging on\n"; + } +else + { + `/usr/bin/screen -d -m -S astershell$launch_date /usr/bin/screen -S asterisk`; + print "started screen\n"; + + sleep(1); + `screen -d asterisk`; + print "detached screen\n"; + + sleep(1); + `screen -XS asterisk eval 'stuff "ulimit -n 65536\015"'`; + print "raised ulimit open files\n"; + + sleep(1); + `screen -XS asterisk eval 'stuff "/usr/sbin/asterisk -vvvvgcT\015"'`; + print "Asterisk started... screen logging off\n"; + } + + +### Set the conf files to automatically update +$stmtA = "UPDATE servers SET rebuild_conf_files='Y' where server_ip = '$VARserver_ip';"; +$affected_rows = $dbhA->do($stmtA); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/docs/ACQS.txt b/agc_2-X/branches/agc_2.2.0/docs/ACQS.txt new file mode 100644 index 00000000..050bcdf0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/ACQS.txt @@ -0,0 +1,93 @@ ++------------------------------------------------------------------------------+ +| Asterisk GUI client - astguiclient | +| Description of the Asterisk Central Queue System | +| created by Matt Florell | +| project started 2003-10-06 http://sourceforge.net/projects/astguiclient/ | ++------------------------------------------------------------------------------+ + +This suite of programs is designed to work with the Asterisk Open-source PBX +(http://www.asterisk.org) as a cross-platform GUI client and the supporting +server side applications necessary for the features of the GUI application to +work with Asterisk. + +Scripts that are involved with the ACQS backend are: + + - /etc/astguiclient.conf - file where you define your variables for the server apps + + Must be present and configured through the install.pl script + + - AST_manager_listen.pl - listener for the Asterisk Central Queue System (ACQS) + + Must be present in the /home/cron/ directory + + Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules + + - AST_manager_send.pl - send-spawn for the ACQS + + Must be present in the /home/cron/ directory + + Requires Net::Telnet, Net::MySQL and Time::HiRes perl Modules + + - AST_send_action_child.pl - blind-send for the ACQS + + Must be present in the /home/cron/ directory + + Requires Net::Telnet, Net::MySQL perl Modules + + - ADMIN_keepalive_ALL.pl - checks to see that ACQS is running + + Must put entry for this script in the cron as "* * * * * /path/script" + + - ADMIN_restart_roll_logs.pl - rolls logs over datestamp upon restart + + put this script in your machine's startup routine + + +DESCRIPTION: +This set of programs was created to reduce the risk of deadlocks that occur when +the manager interface connection from a remote machine to the Asterisk server +becomes severed or backlogged in some way resulting in a buffer-overflow of the +manager interface on the Asterisk box and a deadlock of the Asterisk PBX. The +probability of this happening is rare on a system where you may have 100 or less +action commans being executed a day, but when the action commands rise to the +level of 3000+ per server across 30 machines you will have at least 1 deadlock +per day if not one per hour. That's why we needed to find a way to still issue +manager Actions but not have to maintain a connection with the Asterisk Manager +interface. Here is a rundown of how the ACQS works: + +There is a simple database table where the action information with unique IDs is +stored and where each action's information is updated by the listener. The table +I use is called vicidial_manager and is detailed in the CONF_MySQL.txt file in +this distribution. + +1. First, the GUI client application inserts a record into the table as a NEW +action and includes a unique callerID for REDIRECT and ORIGINATE commands(the +callerID field is how the listener will update the record in the DB) +INSERT INTO vicidial_manager values('','','2004-01-30 +17:22:53','NEW','N','10.10.11.12','','Originate','DL40130172253cc160','Channel: +local/8600011@demo','Context: default','Exten: 917274515135','Priority: +1','Callerid: DL40130172253cc160','','','','',''); + +2. Second, there is a constantly running application on the Asterisk box that +selects queues from the database to be processed, and launches a new child +script to send the action to the database, then marks the action as SENT. + +3. Third, each child process logs into the manager interface and sends the +action immediately, then stays open for 10 seconds to not cause any problems, +clears it's buffer and then logs out and exits. + +4. Fourth, the listener app is constantly connected on the Asterisk box to the +manager interface and parses all output from the manager interface. Every time a +"Newstate Ringing" event is seen an update statement is sent to the DB based +upon the callerid of the call filling in the channel that the call is on and the +uniqueID of the call and sets the record to "UPDATED" + +5. Fifth, the listener also listens for "Hangup" events and sends an update to +the DB with a "DEAD" status keyed by the call's uniqueID. + +The above process is executed extremely fast and actually has suprisingly little +effect on the load of the Asterisk box. Because each action is sent through it's +own child process there is no risk of the system deadlocking because of a single +bad action thread. + + + +NOTES: +This started out as a desperate quick fix that evolved into a system that has +been up and running reliably on two separate Asterisk servers. Since we +implemented ACQS we haven't had a single deadlock on either of these servers. +If anyone has suggestions/praises/criticisms I would love to hear them. + +To use, follow the instructions in the docs/SCRATCH_INSTALL.txt document. + diff --git a/agc_2-X/branches/agc_2.2.0/docs/AGENT_API.txt b/agc_2-X/branches/agc_2.2.0/docs/AGENT_API.txt new file mode 100644 index 00000000..03e26a29 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/AGENT_API.txt @@ -0,0 +1,386 @@ +AGENT API DOCUMENT Started: 2008-07-03 + +This document describes the functions of an API(Application Programming Interface) +for the VICIDIAL Agent screen. This functionality will be rather limited at first +and will be built upon as critical functions are identified and programmed into it. + +There is also a new NON-agent API script, for more information on that, please +read the NON-AGENT_API.txt document. + + + +API functions: +version - shows version and build of the API, along with the date/time +external_hangup - sends command to hangup the current phone call for one specific agent(Hangup Customer) +external_status - sends command to set the disposition for one specific agent and move on to next call +external_pause - sends command to pause/resume an agent now if not on a call, or pause after their next call if on call +external_dial - sends command to manually dial a number on the agent's screen +change_ingroups - changes the selected in-groups for a logged-in agent +update_fields - changes values for selected data fields in the agent interface +set_timer_action - sets timer action for the current call the agent is on +st_login_log - looks up the vicidial_users.custom_three field and logs event from CRM +st_get_agent_active_lead - looks up active lead info for an agent and outputs lead information + + + +New scripts: +/agc/api.php - the script that is accessed to execute commands + + + +Required variables for API calls: +# user - is the API user +# pass - is the API user password +# agent_user - is the vicidial agent user whose session that you want to affect +# source - description of what originated the API call (maximum 20 characters) + + + +To hangup the call, disposition it and then pause the agent, do the following in order: +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_pause&value=PAUSE +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_hangup&value=1 +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_status&value=A + + + +Response to calls will return either an ERROR or a SUCCESS along with an explanation. +for example: +SUCCESS: external_status function set - 6666|A +ERROR: agent_user is not logged in - 6666 + + + +DETAIL OF EACH FUNCTION: + + + +-------------------------------------------------------------------------------- +version - + +DESCRIPTION: +shows version and build of the API, along with the date/time + +VALUES: NONE + +EXAMPLE URL: +http://server/agc/api.php?function=version + +RESPONSES: +VERSION: 2.0.5-2|BUILD: 90116-1229|DATE: 2009-01-15 14:59:33|EPOCH: 1222020803 + + + +-------------------------------------------------------------------------------- +external_hangup - + +DESCRIPTION: +Hangs up the current customer call on the agent screen + +VALUES: (value) +1 - the only valid value for this function + +EXAMPLE URL: +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_hangup&value=1 + +RESPONSES: +ERROR: external_hangup not valid - 1|6666 +ERROR: no user found - 6666 +ERROR: agent_user is not logged in - 6666 +SUCCESS: external_hangup function set - 1|6666 + + + +-------------------------------------------------------------------------------- +external_status - + +DESCRIPTION: +Sets the status of the current customer call on the agent dispotion screen + +VALUES: (value) +Any valid status in the VICIDIAL system will work for this function + +EXAMPLE URL: +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_status&value=A + +RESPONSES: +ERROR: external_status not valid - A|6666 +ERROR: no user found - 6666 +ERROR: agent_user is not logged in - 6666 +SUCCESS: external_status function set - A|6666 + + + +-------------------------------------------------------------------------------- +external_pause - + +DESCRIPTION: +Pauses or Resumes the agent. If a Pause and the agent is on a live call will pause after the live call is dispositioned + +VALUES: (value) +PAUSE - Pauses the agent session +RESUME - Resumes the agent session + +EXAMPLE URLS: +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_pause&value=PAUSE +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_pause&value=RESUME + +RESPONSES: +ERROR: external_pause not valid - PAUSE|6666 +ERROR: no user found - 6666 +ERROR: agent_user is not logged in - 6666 +SUCCESS: external_pause function set - PAUSE|1232020456|6666 + + + +-------------------------------------------------------------------------------- +external_dial - + +DESCRIPTION: +Places a manual dial phone call on the agent screen, you can define whether to search for the lead in the existing database or not and you can define the phone_code and the number to dial. This action will pause the agent after their current call, enter in the information to place the call, and dialing the call on the agent screen. + +VALUES: +value - + Any valid phone number (7275551212) +phone_code - + Any valid phone country code (1 for USA/Canada, 44 for UK, etc...) +search - + YES - perform a search in the campaign-defined vicidial_list list for this phone number and bring up that lead + NO - do not search, create a new vicidial_list record for the call +preview - + YES - preview the lead in the vicidial screen without dialing + NO - do not preview the lead, place call immediately +focus - + YES - change the focus of the screen to the vicidial.php agent interface, brings up an alert in the browser window + NO - do not change focus +vendor_id - + Any valid Vendor lead code +dial_prefix - + OPTIONAL, any dial prefix that you want to add to the beginning of the dial string for this call +group_alias - + OPTIONAL, the outbound callerID(from an existing group-alias) that you want to use for this call +vtiger_callback - + OPTIONAL, YES or NO, will lookup the phone number and Vtiger account ID from the provided Event ID +alt_user - + OPTIONAL, instead of agent_user, this is to lookup the agent_user using the vicidial_users.custom_three field + +EXAMPLE URLS: +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_dial&value=7275551212&phone_code=1&search=YES&preview=NO&focus=YES +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=external_dial&value=7275551212&phone_code=1&search=YES&preview=NO&focus=YES&dial_prefix=88&group_alias=DEFAULT + +RESPONSES: +ERROR: external_dial not valid - 7275551212|1|YES|6666 +ERROR: no user found - 6666 +ERROR: agent_user is not logged in - 6666 +ERROR: agent_user is not allowed to place manual dial calls - 6666 +ERROR: caller_id_number from group_alias is not valid - 6666|TESTING|123 +ERROR: group_alias is not valid - 6666|TESTING +ERROR: vtiger callback activity does not exist in vtiger system - 12345 +SUCCESS: external_dial function set - 7275551212|6666|1|YES|NO|YES|123456|1232020456|9|TESTING|7275551211 + + + +-------------------------------------------------------------------------------- +change_ingroups - + +DESCRIPTION: +This function will change the selected in-groups for an agent that is logged into a campaign that allows for inbound calls to be handled. Allows the selected in-groups for an agent to be changed while they are logged-in to the ViciDial Agent screen only. Once changed in this way, the agent would need to log out and back in to be able to select in-groups themselves(If Agent Choose In-Groups is enabled for that user). The blended checkbox can also be changed using this function. The API user performing this function must have vicidial_users.change_agent_campaign = 1. + +VALUES: +value - + CHANGE - will change all in-groups to those defined in ingroup_choices + REMOVE - will only remove the listed in-groups + ADD - will only add the listed in-groups +blended - + YES - set the agent to take outbound auto-dialed calls (not applicable in MANUAL and INBOUND_MAN dial method campaigns) + NO - set the agent to only take inbound calls +ingroup_choices - + OPTIONAL, a space-delimited(use plusses + in the URL) list of in-groups to allow the agent to take calls from, example: " TEST_IN2 SALESLINE TRAINING_IN -" +set_as_default - + OPTIONAL, YES or NO - overwrites the settings for the agent in the user modification screen, default is NO + +EXAMPLE URLS: +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=change_ingroups&value=CHANGE&set_as_default=YES&blended=YES&ingroup_choices=+TEST_IN+SALESLINE+FAKE_IN+- +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=change_ingroups&value=REMOVE&blended=NO&ingroup_choices=+TEST_IN2+TEST_IN4+- +http://server/agc/api.php?source=test&user=6666&pass=1234&agent_user=1000&function=change_ingroups&value=ADD&blended=NO&ingroup_choices=+TEST_IN2+- + +RESPONSES: +ERROR: change_ingroups not valid - N| TEST_IN SALESLINE - +ERROR: agent_user is not logged in - 6666 +ERROR: campaign does not allow inbound calls - 6666 +ERROR: user is not allowed to change agent in-groups - 6666|TESTING|123 +ERROR: campaign dial_method does not allow outbound autodial - 6666|TESTING +ERROR: ingroup does not exist - FAKE_IN| TEST_IN FAKE_IN SALESLINE - +ERROR: ingroup_choices are required for ADD and REMOVE values - ADD| +SUCCESS: change_ingroups function set - YES| TEST_IN SALESLINE -|6666 + + + + + + + + +-------------------------------------------------------------------------------- +update_fields - + +DESCRIPTION: +Updates the fields that are specified with the values. This will update the data that is on the agent's screen in the customer information section. + +VALUES: +agent_user - + REQUIRED alphanumeric string for agent user +LEAD DATA (must populate at least one) + NOTE: Only fields that are specified in the API call will be modified + address1 + address2 + address3 + alt_phone + city + comments + country_code + date_of_birth + email + first_name + gender + gmt_offset_now + last_name + middle_initial + phone_number + phone_code + postal_code + province + security_phrase + source_id + state + title + vendor_lead_code + rank + owner + +EXAMPLE URLS: +http://server/agc/api.php?source=test&user=6666&pass=1234&function=update_fields&agent_user=6666&vendor_lead_code=1234567&address1= + +RESPONSES: +ERROR: update_fields not valid - 6666 +ERROR: agent_user is not logged in - 6666 +ERROR: user is not allowed to modify lead information - 6666|1234 +ERROR: agent_user does not have a lead on their screen - 6666|1234 +ERROR: no fields have been defined - 6666 +SUCCESS: update_fields lead updated - 6666|1234|87498|vendor_lead_code='1234567',address1='' + + + +-------------------------------------------------------------------------------- +set_timer_action - + +DESCRIPTION: +Updates the fields that are specified with the values. This will update the data that is on the agent's screen in the customer information section. + +VALUES: +agent_user - + REQUIRED, alphanumeric string for agent user +value - + REQUIRED, one of these choices: 'NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','D3_DIAL','D4_DIAL','D5_DIAL','MESSAGE_ONLY' +notes - + Optional, the message to be displayed with the timer action +rank - + Optional, the number of seconds into the call to display + + +EXAMPLE URLS: +http://server/agc/api.php?source=test&user=6666&pass=1234&function=set_timer_action&agent_user=6666&value=MESSAGE_ONLY¬es=test+message&rank=15 + +RESPONSES: +ERROR: set_timer_action not valid - 6666 +ERROR: agent_user is not logged in - 6666 +ERROR: user is not allowed to modify campaign settings - 6666|1234 +SUCCESS: set_timer_action lead updated - 6666|1234|MESSAGE_ONLY|test message|15 + + + +-------------------------------------------------------------------------------- +st_login_log - + +DESCRIPTION: +Looks up the vicidial_users.custom_three field(as "agentId") to associate with a vicidial user ID. If found it will populate the custom_four field with a "teamId" value, then output the vicidial user ID + +VALUES: +value - + REQUIRED alphanumeric string for CRM AgentID +vendor_id - + REQUIRED alphanumeric string for CRM TeamID + +EXAMPLE URLS: +http://server/agc/api.php?source=test&user=6666&pass=1234&function=st_login_log&value=876543&vendor_id=207 + +RESPONSES: +ERROR: st_login_log not valid - 6666|207 +ERROR: no user found - 6666 +SUCCESS: st_login_log user found - 6666 + + + +-------------------------------------------------------------------------------- +st_get_agent_active_lead - + +DESCRIPTION: +Looks up the vicidial_users.custom_three field(as "agentId") to associate with a vicidial user ID. If found it will output the active lead_id and phone number, vendor_lead_code, province, security_phrase and source_id fields. + +VALUES: +value - + REQUIRED alphanumeric string for CRM AgentID +vendor_id - + REQUIRED alphanumeric string for CRM TeamID + +EXAMPLE URLS: +http://server/agc/api.php?source=test&user=6666&pass=1234&function=st_get_agent_active_lead&value=876543&vendor_id=207 + +RESPONSES: +ERROR: st_get_agent_active_lead not valid - 6666|207 +ERROR: no user found - 6666 +ERROR: user not logged in - 6666 +ERROR: no active lead found - 6666 +SUCCESS: st_get_agent_active_lead lead found - 6666|7275551212|123456|9987-1234765|SK|WILLIAMS|JUH764AJJJ9 + + + + + + + + + + +-------------------------------------------------------------------------------- +Other information: + + +Example MySQL query options for executing API functions(not available for all functions): +update vicidial_live_agents set external_hangup=1 where user='1000'; +update vicidial_live_agents set external_status='A' where user='1000'; + + +Database changes: (these are already in the system, DO NOT RUN THEM) +ALTER TABLE vicidial_live_agents ADD external_hangup VARCHAR(1) default ''; +ALTER TABLE vicidial_live_agents ADD external_status VARCHAR(6) default ''; +ALTER TABLE vicidial_live_agents ADD external_pause VARCHAR(20) default ''; +ALTER TABLE vicidial_live_agents ADD external_dial VARCHAR(100) default ''; + +ALTER TABLE vicidial_users ADD vdc_agent_api_access ENUM('0','1') default '0'; + +ALTER TABLE system_settings ADD vdc_agent_api_active ENUM('0','1') default '0'; + +CREATE TABLE vicidial_api_log ( +api_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20) NOT NULL, +api_date DATETIME, +api_script VARCHAR(10), +function VARCHAR(20) NOT NULL, +agent_user VARCHAR(20), +value VARCHAR(255), +result VARCHAR(10), +result_reason VARCHAR(255), +source VARCHAR(20), +data TEXT, +index(api_date) +); diff --git a/agc_2-X/branches/agc_2.2.0/docs/ALTERNATE_NUMBER_DIALING.txt b/agc_2-X/branches/agc_2.2.0/docs/ALTERNATE_NUMBER_DIALING.txt new file mode 100644 index 00000000..901781f4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/ALTERNATE_NUMBER_DIALING.txt @@ -0,0 +1,122 @@ +ALTERNATE NUMBER DIALING Redesign 2008-08-20 + +*** THIS SECTION OUTLINES PROPOSED CHANGES TO ALT-NUMBER-DIALING in the 2.0.5 version *** +*** FOR INFORMATION ON THE 2.0.3 AND 2.0.4 VERSION OF ALT NUMBER DIALING LOOK BELOW THIS SECTION *** + + +As of the 2.2.0 version a lot of bugs have been fixed, and DNC statuses can now be used as auto-alt-dial triggering statuses + + +In order to allow for more alt-numbers per lead to dial we built a new method of storing and dialing alt-numbers for leads. + +CLI lead loader will be changed to allow for the importation of upto 65,000 phone numbers per lead. The new file format is shown below. + +vicidial.php agent screen and vdc_db_query.php scripts have been changed to allow for alt-number display and setting alt numbers to inactive if needed. + +AST_VDauto_dial.pl, AST_VDauto_dial_FILL.pl and the VDhangup process in FastAGI_log.pl have all been modified to work with the new alt number data structure. + +non_agent_api.php has been changed in 2.2.0 to accept new multiple-alt-numbers per inserted lead(see the NON_AGENT_API.txt doc for more information) + + +File structure for CLI lead loader goes here: + +standard + +vendor_lead_code|source_code|list_id|phone_code|phone_number|title|first_name|middle|last_name|address1|address2|address3|city|state|province|postal_code|country|gender|date_of_birth|alt_phone|email|security_phrase|COMMENTS|called_count|status|entry_date|multi-alt-entries + +3857822|31022|105|01144|1625551212|MRS|B||BURTON|249 MUNDON ROAD|MALDON|ESSEX||||CM9 6PW|UK||||||COMMENTS|2|B|2007-08-09 00:00:00|7275551212_1_work!7275551213_61_sister house!7275551214_44_neighbor + +The multi-alt-entries field is formatted as a field of phone-number/phone-code/phone-note set of data(phone code and alt_note are both optional and the phone code can be overridden by the force phone code flag). The record delimiter is an exclamation point with the optional phone code and note delimited within the record by an underscore character _. + + + +Changes to database: +*** DO NOT MAKE THESE CHANGES, for documentation only *** + +CREATE TABLE vicidial_list_alt_phones ( +alt_phone_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +phone_code VARCHAR(10), +phone_number VARCHAR(18), +alt_phone_note VARCHAR(30), +alt_phone_count SMALLINT(5) UNSIGNED, +active ENUM('Y','N') default 'Y', +index (lead_id), +index (phone_number) +); + +ALTER TABLE vicidial_hopper MODIFY alt_dial VARCHAR(6) default 'NONE'; + +ALTER TABLE vicidial_auto_calls MODIFY alt_dial VARCHAR(6) default 'NONE'; + +ALTER TABLE vicidial_campaigns MODIFY auto_alt_dial ENUM('NONE','ALT_ONLY','ADDR3_ONLY','ALT_AND_ADDR3','ALT_AND_EXTENDED','ALT_AND_ADDR3_AND_EXTENDED','EXTENDED_ONLY') default 'NONE'; + +ALTER TABLE vicidial_log ADD alt_dial VARCHAR(6) default 'NONE'; + +ALTER TABLE vicidial_campaigns ADD agent_extended_alt_dial ENUM('Y','N') default 'N'; + +UPDATE system_settings SET db_schema_version='1104'; + + + + + + + + + + +ALTERNATE NUMBER DIALING Summary and Overview 2007-01-15 + +*** ALTERNATE NUMBER DIALING IN AUTODIAL MODE HAS BEEN ADDED IN THE 2.0.3 RELEASE *** + +This document will outline the methods used to automatically dial the alt_phone and/or address3 fields containing phone numbers for a lead while in Auto-dial modes(RATIO or ADAPT*). This feature does not function for leads dialed with the MANUAL dial_method. + +If you will be using automatic alt number dialing, it is strongly recommended that you filter your alternate numbers to be the proper length, and remove any non-numeric characters from those fields. + + + +First, a new field in vicidial_campaigns was needed to tell the dialer that it should look for contact numbers in the alt_phone and/or address3 fields if a call to a regular number results in a no-contact(NA/B/DC/N)[defined in the auto_alt_dial_statuses field in the vicidial_campaigns table]. + +ALTER TABLE vicidial_campaigns ADD auto_alt_dial ENUM('NONE','ALT_ONLY','ADDR3_ONLY','ALT_AND_ADDR3') default 'NONE'; + + +Second, a new field in vicidial_auto_calls and vicidial_hopper tables was needed to tell the dialer that when this call is terminated as no-contact(NA/B/DC/N), it needs to try dialing the next alternate number(s). This field is populated accordingly: +- If the main phone_number is currently being dialed, the alt_dial field will be MAIN +- If the alt_phone is being dialed, ALT +- If the address3 field is being dialed, ADDR3 +- If the campaign has AUTO_ALT_DIAL set to NONE or the alt numbers are invalid, then this field will also be set to NONE +This tells the scripts handling the call termination what needs to be done with the call status and what number(if any) it should place in the hopper next. + +ALTER TABLE vicidial_auto_calls ADD alt_dial ENUM('NONE','MAIN','ALT','ADDR3') default 'NONE'; +ALTER TABLE vicidial_hopper ADD alt_dial ENUM('NONE','ALT','ADDR3') default 'NONE'; + + +Third, because of how the insertion into the hopper of the next attempt has to work when the call is answered by an agent we need to modify the status field in the vicidial_hopper to allow for a HOLD status that can be made READY once the lead is dispositioned: + +ALTER TABLE vicidial_hopper MODIFY status ENUM('READY','QUEUE','INCALL','DONE','HOLD') default 'READY'; + + +Fourth, so that the no-answer statuses can be definable, we need to add a new field to vicidial_campaigns to hold the statuses and allow the admin.php interface to be able to modify them. + +ALTER TABLE vicidial_campaigns ADD auto_alt_dial_statuses VARCHAR(255) default ' B N NA DC -'; + + + + +STEPS OF AN AUTO-ALT-DIAL CALL: + +1. When a call to a lead's main phone_number is placed by AST_VDauto_dial.pl or AST_VDauto_dial_FILL.pl and the auto_alt_dial field is NOT set to NONE, a flag will be set in the vicidial_auto_calls field as MAIN to note that this lead needs to be called again under it's alternate number(s) if it is terminated under a no-connect status(NA/B/DC/N). + +2. What happens when one of these calls is terminated: + 2a. If the call has an alt_dial value of MAIN or ALT and went to an agent and was defined as no-contact(NA/B/DC/N) then the vdc_db_query.php script will immediately place that lead back into the vicidial_hopper to be dialed under it's alternate phone number or addr3. + + 2b. If call has an alt_dial value of MAIN or ALT and was terminated as no-contact by no-answer(NA/B/DC) then the VDhangup process will immediately place that lead back into the vicidial_hopper to be dialed under it's alternate phone number. + +3. When the alt_phone is dialed of the same lead, the alt_dial flag in vicidial_auto_calls will be set to ALT, then repeat step 2 + +4. When the address3 field is dialed from the same lead, the alt_dial flag is set to ADDR3 + +5. When a call is terminated in auto-dial mode and the number dialed was not the main phone_number, the status will not be changed in the vicidial_list table unless the status is a connect status and it came from an agent. + + diff --git a/agc_2-X/branches/agc_2.2.0/docs/APP_CONFERENCE.txt b/agc_2-X/branches/agc_2.2.0/docs/APP_CONFERENCE.txt new file mode 100644 index 00000000..92011ec2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/APP_CONFERENCE.txt @@ -0,0 +1,86 @@ +VICIDIAL and app_conference +(1.2 tree) EXPERIMENTAL!!! + +app_conference offers the plusses of being able to do conferencing +without any zaptel hardware or timers as well as doing native codec +streaming, meaning no manditory downsampling to slin like meetme. +These two features alone mean a rather significant performance boost +to companies who only use VOIP for agents and trunks as well as not +requiring the cost of zaptel hardware or the nightmare of getting +ztdummy to work on some systems. + +As of right now, I have a test system fully up and running using +app_conference with VICIDIAL on Asterisk 1.2.8. I have made several +modifications to the app_conference code to make it more of a drop-in +replacement for meetme so that it does not require any changes to the +VICIDIAL codebase. I have added entry and exit sounds(slightly +different from meetme's) as well as "only one in this conference" +message in addition to changing the default member type to speaker(S). +So far I have tested with IAX and SIP channels only and everything +works just like on meetme but I have not done any capacity testing or +tested it in production yet. + +If you want to use app_conference instead of meetme for VICIDIAL then follow these instructions: + +cd /usr/src/asterisk +wget http://www.eflo.net/files/VD_app_conference_0.6.zip +unzip VD_app_conference_0.6.zip +cd app_conference +make clean +make +make install + + +In your extensions.conf file you would replace these lines: +exten => 8600051,1,Meetme,8600051 +exten => 8600052,1,Meetme,8600052 +...continue through 8600100... +exten => 78600051,1,Meetme,8600051|q +exten => 78600052,1,Meetme,8600052|q +...continue through 78600100... +exten => 68600051,1,Meetme,8600051|mq +exten => 68600052,1,Meetme,8600052|mq +...continue through 68600100... + + +with these lines: +exten => 8600051,1,Conference(8600051) +exten => 8600052,1,Conference(8600052) +...continue through 8600100... +exten => 78600051,1,Conference(8600051|q) +exten => 78600052,1,Conference(8600052|q) +...continue through 78600100... +exten => 68600051,1,Conference(8600051|Lq) +exten => 68600052,1,Conference(8600052|Lq) +...continue through 68600100... + +NOTES: +Here are the possible feature flags for this version of app_conference: + o M: Moderator (presently same as speaker) [default] + o S: Speaker + o L: Listener + o T: "Telephone caller" (just for stats?). + o V: Do VAD on this caller + o D: Use Denoise filter on this caller. + o d: Send manager events when DTMF is received. + o q: Do not play enter or exit sounds. + o i: use inband dtmf broadcast. + o t: use rfc dtmf signal broadcast. + +COMPILE NOTES: + +Some Makefile alterations may be necessary for your system: + +From Alek Barkley: +I am running FC4 with latest updates ( 2.6.16 kernel ) +My CPU is AMD K6 and GCC 4.0.2. + +I edited Makefile in app_conference distribution. +To enter CPU architecture in my case -march=k6 +======================================================== +PROC = k6 +# this is fun for x86 +#CFLAGS += -march=pentium3 -msse -mfpmath=sse,387 +CFLAGS += -march=k6 +=========================================================== + diff --git a/agc_2-X/branches/agc_2.2.0/docs/ASTERISK_CONF-GEN.txt b/agc_2-X/branches/agc_2.2.0/docs/ASTERISK_CONF-GEN.txt new file mode 100644 index 00000000..ecdd31b9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/ASTERISK_CONF-GEN.txt @@ -0,0 +1,204 @@ +ASTERISK CONF FILE GENERATION 2009-02-11 + +This file details the process for how the system automatically generates Asterisk conf files purely from VICIDIAL settings. + +The conf files that are generated are: + /etc/asterisk/extensions-vicidial.conf + /etc/asterisk/iax-vicidial.conf + /etc/asterisk/sip-vicidial.conf + /etc/asterisk/voicemail-vicidial.conf + /etc/asterisk/meetme-vicidial.conf + /etc/asterisk/musiconhold-vicidial.conf + +All of the above files are included in their respective conf files by #include links that you can see if you look at the sample conf files in the docs directory. + +IMPORTANT!!! - Files will only be generated for SIP and IAX phones and carriers that are listed as active=Y in the VICIDIAL administration web interface. + - Files will only be generated on servers where the server record is set to active_asterisk_server='Y' and generate_vicidial_conf='Y' + - The automatic reloading of new conf files by the system is only possible if you started Asterisk with the start_asterisk_boot.pl script, or if Asterisk is running in a screen session named 'asterisk'. + +After any phone, server, carrier, musiconhold, call menu or voicemail entry is edited in the admin interface, a flag(rebuild_conf_files='Y') will be set to have the ADMIN_keepalive_ALL.pl script(that should be running once a minute in the crontab) run and generate new conf files and reload Asterisk. + +Phones are defined in the admin.php -> Admin -> Show Phones +Carriers are defined in the admin.php -> Admin -> Servers -> Show Carriers + +If you have special settings that you want to use for phones such as codecs you can use either a Template(admin.php -> Admin -> Servers -> Show Templates) or enter in the full account record(not including the "[extension]") into the "Conf Override" field. + +If you are using a SIP carrier, then you may need to manually set "externip=XXX.XXX.XXX.XXX" in the /etc/asterisk/sip.conf file where XXX.XXX.XXX.XXX is the external IP address of your server as the outside world(or your carrier) sees it. + + + + + + + + +CALL MENUS (aka IVRs): + +The Call Menus feature allows for the creation of IVR segments that can be linked together through contexts in the dialplan. In this way, both simple and complex menus can be created, to deliver anything from a simple Automated Atttendant to more detailed IVR applications. + +The Menu ID is the unique identifier of the call menu and it is also used as the context when the entry is created in the dialplan. + + +Call Menu Options: +0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK + +The options are the DTMF digits that a caller can select within this Call Menu, with the exception of the TIMECHECK option which is used when the call is taking place outside of the call_time as defined in the Call menu. + + +Call Menu Routes: +CALLMENU,HANGUP,DID,EXTENSION,PHONE,VOICEMAIL,AGI + +The option route is similar to the DID route since it defines what method to use to send the call to the option route value. The route value is dependant upon the route selected, for example if you selected DID as the route you would then need to select a value DID to send the call to. Or if you selected PHONE as the route, the route value would need to be a valid phone login as defined in the phones section of Administration. + + + +An example of a call menu: + +menu_id = test_menu +menu_name = this is only a test +menu_prompt = hello +menu_timeout = 10 +menu_timeout_prompt = vm-goodbye +menu_invalid_prompt = +menu_repeat = 1 +menu_time_check = 1 +call_time_id = 9am-5pm +track_in_vdac = 1 + +menu_id = test_menu +option_value = 1 +option_description = This is what happens when you press 1 +option_route = DID +option_route_value = 6666 +option_route_value_context = + +menu_id = test_menu +option_value = 2 +option_description = This is what happens when you press 2 +option_route = DID +option_route_value = 6667 +option_route_value_context = + +menu_id = test_menu +option_value = 3 +option_description = This is what happens when you press 3 +option_route = EXTENSION +option_route_value = 101 +option_route_value_context = default + +menu_id = test_menu +option_value = 4 +option_description = This is what happens when you press 4 +option_route = PHONE +option_route_value = 350 +option_route_value_context = + +menu_id = test_menu +option_value = 5 +option_description = This is what happens when you press 5 +option_route = CALLMENU +option_route_value = test_menu_2 +option_route_value_context = + +menu_id = test_menu +option_value = 6 +option_description = This is what happens when you press 6 +option_route = HANGUP +option_route_value = vm-goodbye +option_route_value_context = + +menu_id = test_menu +option_value = 7 +option_description = This is what happens when you press 7 +option_route = VOICEMAIL +option_route_value = 350 +option_route_value_context = + +menu_id = test_menu +option_value = 8 +option_description = This is what happens when you press 8 +option_route = AGI +option_route_value = agi-test.agi,variables-go-here +option_route_value_context = + +menu_id = test_menu +option_value = TIMECHECK +option_description = +option_route = EXTENSION +option_route_value = 101 +option_route_value_context = default + + + +This is what it would look like in the dialplan: + + +; this is only a test +[test_menu] +exten => s,1,AGI(agi-VDAD_inbound_calltime_check.agi,-----YES-----test_menu-----24hours-----EXTENSION-----101-----default) +exten => s,n,Background(hello) +exten => s,n,WaitExten(10) +exten => s,n,Background(hello) +exten => s,n,WaitExten(10) +exten => s,n,Hangup + +; This is what happens when you press 1 +exten => 1,1,Goto(6666,1,trunkinbound) +; This is what happens when you press 2 +exten => 2,1,Goto(6667,1,trunkinbound) +; This is what happens when you press 3 +exten => 3,1,Goto(101,1,default) +; This is what happens when you press 4 +exten => 4,1,Goto(350,1,default) +; This is what happens when you press 5 +exten => 5,1,Goto(s,1,test_menu_2) +; This is what happens when you press 6 +exten => 6,1,Playback(vm-goodbye) +exten => 6,n,Hangup +; This is what happens when you press 7 +exten => 7,1,Goto(85026666666666350,1,default) +; This is what happens when you press 8 +exten => 8,1,AGI(agi-test.agi,variables-go-here) + +exten => i,1,Goto(s,2) +exten => t,1,Playback(vm-goodbye) +exten => t,n,Goto(s,2) +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + + + + + + + + + +Database changes needed for Call Menus: +###### DO NOT RUN, FOR DOCUMENTATION PURPOSES ONLY! ###### + +CREATE TABLE vicidial_call_menu ( +menu_id VARCHAR(50) PRIMARY KEY NOT NULL, +menu_name VARCHAR(100), +menu_prompt VARCHAR(100), +menu_timeout SMALLINT(2) UNSIGNED default '10', +menu_timeout_prompt VARCHAR(100) default 'NONE', +menu_invalid_prompt VARCHAR(100) default 'NONE', +menu_repeat TINYINT(1) UNSIGNED default '0', +menu_time_check ENUM('0','1') default '0', +call_time_id VARCHAR(20) default '', +track_in_vdac ENUM('0','1') default '1' +); + +CREATE TABLE vicidial_call_menu_options ( +menu_id VARCHAR(50) NOT NULL, +option_value VARCHAR(20) NOT NULL default '', +option_description VARCHAR(255) default '', +option_route VARCHAR(20), +option_route_value VARCHAR(100), +option_route_value_context VARCHAR(100), +index (menu_id), +unique index menuoption (menu_id, option_value) +); + +ALTER TABLE vicidial_inbound_dids MODIFY did_route ENUM('EXTEN','VOICEMAIL','AGENT','PHONE','IN_GROUP','CALLMENU') default 'EXTEN'; +ALTER TABLE vicidial_inbound_dids ADD menu_id VARCHAR(50) default ''; diff --git a/agc_2-X/branches/agc_2.2.0/docs/BALANCE_FILL_PROCESS.txt b/agc_2-X/branches/agc_2.2.0/docs/BALANCE_FILL_PROCESS.txt new file mode 100644 index 00000000..54253ed0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/BALANCE_FILL_PROCESS.txt @@ -0,0 +1,42 @@ +VICIDIAL Dialing-out Balance FILL proces flow 2006-11-20 + +** FULL VICIDIAL BALANCE DIALING FUNCTIONALITY WAS ADDED IN THE 2.0.2 RELEASE ** + +This will outline the process I have thought through in my head for a way to allow for dialing-out only servers and for dialing-out-trunk-lines on one VICIDIAL server to be utilized when another dialing server does not have enough lines to meet it's dial level for the number of agents that are on the server. + +This process is made much more complicated by the addition of the new campaign-reserved-trunks feature for servers, meaning that you need to check on the trunk reservations and their settngs before being able to place any calls. + +This script(AST_VDauto_dial_FILL.pl) will be a constantly running script that needs to only be run on one server in a VICIDIAL cluster of servers. + +This script will be started up and monitored by the ADMIN_keepalive_ALL.pl script. + +This script is not needed on a single-server or single-VICIDIAL/Asterisk server setup. + + + +MySQL database changes needed for this new feature:(already in upgrade_2.0.2.sql file) +ALTER TABLE vicidial_auto_calls MODIFY call_type ENUM('IN','OUT','OUTBALANCE') default 'OUT'; +- Added OUTBALANCE to keep track of the calls that were originated by the Balance FILL process. + + + +Changes to existing AST_VDauto_dial.pl script: +Only one notable change for CLOSER campaigns to look for OUTBALANCE in addition to OUT calls in vicidial_auto_calls when dialing BLENDED on CLOSER campaigns. + + + +Process Flow of the AST_VDauto_dial_FILL.pl script: +- Check if there are any servers with vicidial_balance_active=Y and no trunk shortage + - Get a count of the shortages and what campaigns they are on + - Start looping through the campaigns with trunk shortages + - Get a count of the DB value and current balance_trunk_fill + - Get list of servers with trunk shortfall + - Get a count of the servers that have no shortfall and allow balance dialing + - Get dialing variable values for servers with balance available and no shortfall + - Loop through these servers + - Calculate the available trunks for this campaign per server + - Calculate the number of trunks to dial for this server for this campaign + - Select leads from the hopper and dial + (this step is identical to normal AST_VDauto_dial.pl script) + + diff --git a/agc_2-X/branches/agc_2.2.0/docs/BASE_INSTALL.txt b/agc_2-X/branches/agc_2.2.0/docs/BASE_INSTALL.txt new file mode 100644 index 00000000..9a415f39 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/BASE_INSTALL.txt @@ -0,0 +1,657 @@ +Asterisk/astguiclient install from existing server. v.2.2.0 2010-01-07 + By the VICIDIAL group info@vicidial.com + + +This document is meant to be more of an overview of a VICIDIAL/astGUIclient +installation. If you are looking for more detail or are having problems with +installation please read the SCRATCH_INSTALL.txt document. + + +End-user Manuals for Agents and Managers are available from http://www.eflo.net + +There is also an easier Ubuntu install doc: Ubuntu_Install.txt + +If you want to skip the experience of installing step-by-step completely, take +a look at our ISO installer: http://www.vicibox.com + + + +REQUIREMENTS: +- root access on the server you want to install asGUIclient/VICIDIAL on to. +- Zap trunks(T1/E1 or PSTN lines), IAX2 trunks or SIP trunks required +- You must have a zaptel timer like a PSTN/T1/E1 card or ztdummy + or you can use the experimental app_conference module +- Client phones can be SIP/IAX/Zap +- SoX 12.17.5 or greater must be installed +- GNU screen 3.9.15 or greater must be installed +- ntp must be installed and syncd to same time source as any other servers +- Perl5 with several CPAN modules(Time::HiRes, DBI, DBD::mysql, Net::Telnet, Net::Server etc) +- asterisk-perl 0.08, do NOT use newer versions, they do not work with VICIDIAL +- MySQL server or mysqlclientlibs, must be version 5.0.X or higher +- If you will be installing Asterisk 1.4 releases you need Gnu Make 3.81 +- Apache/PHP server with php.ini memory_limit set to 48M or higher + + + + +PHASE 1: INSTALLING ASTERISK + +1. follow these command line steps: + + mkdir /usr/src/asterisk-1.4 + cd /usr/src/asterisk-1.4 + wget http://downloads.digium.com/pub/asterisk/old-releases/asterisk-1.4.21.2.tar.gz + wget http://downloads.digium.com/pub/zaptel/zaptel-1.4.12.1.tar.gz + wget http://downloads.digium.com/pub/libpri/libpri-1.4.9.tar.gz + tar xzf asterisk-1.4.21.2.tar.gz + tar xzf zaptel-1.4.12.1.tar.gz + tar xzf libpri-1.4.9.tar.gz + cd libpri-1.4.9 + make clean; make; make install + cd ../zaptel-1.4.12.1 + ./configure; make clean; make; make install + cd ../asterisk-1.4.21.2 + wget http://www.eflo.net/files/enter.h + wget http://www.eflo.net/files/leave.h + mv -f enter.h apps/enter.h + mv -f leave.h apps/leave.h + wget http://download.vicidial.com/asterisk-patches/1.4-gsm-gcc4.2.patch + patch -p1 ./codecs/gsm/Makefile 1.4-gsm-gcc4.2.patch + wget http://download.vicidial.com/conf/res_agi_defunct.patch + patch -p1 < res_agi_defunct.patch + File to patch: res/res_agi.c + cd apps/ + rm -f app_waitforsilence.c + wget http://download.vicidial.com/conf/app_waitforsilence.c + cd ../channels/ + rm chan_sip.c + wget http://download.vicidial.com/conf/chan_sip.c + cd ../ + ./configure; make clean; make; make install + # this makes sample conf files (only use for new installs) + make samples + modprobe zaptel + modprobe ztdummy (if you have no timer) + + - install the module for the digium device that you are using, we are + using the T100P single span T1 card so we use: +modprobe wct1xxp + Here's the list of all digium cards and the modules you use with +them: + Card Module + ----------------- + TDM400P wctdm + X100P wcfxo + TDM* wcfxs + S100U wcusb + T100P wct1xxp + E100P wct1xxp + T400P tor2 + E400P tor2 + TE110P wcte11xp + TE410P wct4xxp + TE405P wct4xxp + TE411P wct4xxp + TE406P wct4xxp + TE210P wct2xxp + TE205P wct2xxp + TDM2400P wctdm24xxp + - If you have chosen a Sangoma T1/E1 or analog card, you will need to + follow their instructions for installation of their driver software + LATEST Sangoma Wanpipe drivers: + ftp://ftp.sangoma.com/linux/current_wanpipe/wanpipe-3.3.9.tgz + - now your asterisk installation is built and loaded and it's time to +configure it. + +NOTES: If you want to install zttool diagnostics you may need the newt package installed: +http://download.vicidial.com/packages/newt-0.51.6.tar.gz +ln -s /usr/lib/libnewt.so.0.51.6 /usr/lib/libnewt.so.0.51 +then go to your zaptel folder and do 'make zttool' + +Digium/Clone X100P EXAMPLE for reliable cheap hardware timer: +./conf_examples/zaptel.conf.x100p.sample +./conf_examples/zapata.conf.x100p.sample + +Digium/Clone T100P EXAMPLE, also works for TE4xxp cards +./conf_examples/zaptel.conf.t100p.sample +./conf_examples/zapata.conf.t100p.sample + + + + + +PHASE 2: CONFIGURING ASTERISK + +### Mostly depricated, ViciDial now allows you to configure phones, carriers, voicemail and musiconhold in the admin +web interface + + +Sample conf files for a system with: +- astGUIclient and VICIDIAL +- two SIP phones +- one IAX phone +- a SIP trunk +- an IAX trunk +- a set of Zap phones through a channelbank +- a Zap T1 PRI line with 23 voice channels +These are available in these sample conf files: +./conf_examples/sip.conf.sample +./conf_examples/iax.conf.sample +./conf_examples/extensions.conf.sample +./conf_examples/meetme.conf.sample +./conf_examples/voicemail.conf.sample +./conf_examples/manager.conf.sample +./conf_examples/logger.conf.sample +./conf_examples/dnsmgr.conf.sample + +For more information on configuring Asterisk or your phones read the +SCRATCH_INSTALL document. + + + + + +PHASE 3: INSTALLING ASTGUICLIENT AND VICIDIAL + +Now that Asterisk is installed and running we can add the astGUIclient and +VICIDIAL components to the system. + +There are two methods for downloading astGUIclient/VICIDIAL, a release and SVN + +1. Go to http://astguiclient.sf.net/ and download the latest astguiclient +package(as of this writing it is 2.2.0) + - for 2.0.X release: + mkdir /usr/src/astguiclient + cd /usr/src/astguiclient + wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.2.0.zip + unzip astguiclient_2.2.0.zip + perl install.pl + - for SVN 2.2.0 branch: + mkdir /usr/src/astguiclient + cd /usr/src/astguiclient + svn checkout svn://svn.eflo.net:3690/agc_2-X/branches/agc_2.2.0 + cd agc_2.2.0 + perl install.pl + - for SVN 2.4 trunk: + mkdir /usr/src/astguiclient + cd /usr/src/astguiclient + svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk + cd trunk + perl install.pl + select to do interactive setup and customize to your server + - there is one more file you need that's not included with the download +package, it's the conf.gsm file(this is the half-hour music file that we use +to put people on hold). I have a free classical music file that is available +free for download at the following two sites: + http://download.vicidial.com/sounds/conf.gsm + http://astguiclient.sf.net/conf.gsm + Once you have downloaded it, you will need to copy it to this folder: + /var/lib/asterisk/sounds/ + Then you will need to execute this command to copy it as the park file + 'cp /var/lib/asterisk/sounds/conf.gsm /var/lib/asterisk/sounds/park.gsm' + Here are the steps spelled out: + cd /var/lib/asterisk/sounds + wget http://download.vicidial.com/sounds/conf.gsm + cp conf.gsm park.gsm + - you are done + +If you will be doing native music-on-hold for your inbound calls, you will need +musiconhold audio files to be converted to native formats like GSM, ULAW and ALAW: + + cd /var/lib/asterisk/mohmp3/ + mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-sunshine.mp3 > /var/lib/asterisk/mohmp3/fpm-sunshine.raw + sox -r 44100 -w -s -c 1 fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav + sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm + sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm + mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-calm-river.mp3 > /var/lib/asterisk/mohmp3/fpm-calm-river.raw + sox -r 44100 -w -s -c 1 fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav + sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm + sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm + mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-world-mix.mp3 > /var/lib/asterisk/mohmp3/fpm-world-mix.raw + sox -r 44100 -w -s -c 1 fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav + sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm + sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm + mkdir ../orig-mp3 + mv -f *.mp3 ../orig-mp3/ + mkdir ../quiet-mp3 + cd ../quiet-mp3 + sox -r 44100 -w -s -c 1 ../mohmp3/fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav vol 0.25 + sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm + sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm + sox -r 44100 -w -s -c 1 ../mohmp3/fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav vol 0.25 + sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm + sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm + sox -r 44100 -w -s -c 1 ../mohmp3/fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav vol 0.25 + sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm + sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm + rm -f ../mohmp3/*.raw + + + + + +PHASE 4: CREATING MYSQL DATABASE AND POPULATING IT + +we will create the database and add a few initial records so that we can +use the administrative web interface. Since this is a new install it is easier +to use our new mysql script file to add the tables to the database: +Make sure to use reasonable settings for mysql huge.cnf does not look as huge anymore +in light of current systems. +Plus you should increase the connect_timeout so connections do not fail on +a more loaded system. + +1. at the command prompt type go to the mysql client: +/usr/local/mysql/bin/mysql +2. type the following into the mysql client prompt: + (make sure you put your IP address in place of "10.10.10.15" in the queries below) +######------ BEGIN Mysql data entry(you can copy and paste this into terminal) # + +SET GLOBAL connect_timeout=60; + +CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; + +GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234'; +GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234'; + +GRANT RELOAD ON *.* TO cron@'%'; +GRANT RELOAD ON *.* TO cron@localhost; + +flush privileges; + +use asterisk; + +\. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql + or you may need to run this if you get an error: + \. /usr/src/astguiclient/agc_2.2.0/extras/MySQL_AST_CREATE_tables.sql + \. /usr/src/astguiclient/astguiclient/MySQL_AST_CREATE_tables.sql + +### to load in default IAX and SIP phone accounts run the following query + +\. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql + or you may need to run this if you get an error: + \. /usr/src/astguiclient/agc_2.2.0/extras/sip-iax_phones.sql + \. /usr/src/astguiclient/astguiclient/sip-iax_phones.sql + +### to load the initial server values for this first system install + +\. /usr/src/astguiclient/trunk/extras/first_server_install.sql + or you may need to run this if you get an error: + \. /usr/src/astguiclient/agc_2.2.0/extras/first_server_install.sql + \. /usr/src/astguiclient/astguiclient/first_server_install.sql + +quit + + to change the server_ip address from default to match your system run: + - /usr/share/astguiclient/ADMIN_update_server_ip.pl --old-server_ip=10.10.10.15 + + to populate the timezone/country table run this command from command line: + - /usr/share/astguiclient/ADMIN_area_code_populate.pl + + to load the performance testing leads run these commands: + - cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + or + - cp /usr/src/astguiclient/agc_2.2.0/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + - cp /usr/src/astguiclient_2.2.0/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + + - /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 --forcephonecode=1 + + +######------ END Mysql data entry ------###### + +NOTE: if you are not installing using default user/pass or have MySQL on another +server, you will need to edit either the /etc/astguiclient.conf file or the +dbconnect.php files in the astguiclient, vicidial and agc directories of your +webroot. + +3. Enter the astguiclient administration page: +http://10.10.10.15/vicidial/admin.php +NOTE: if you click on the Logout button you must leave the user/pass empty and click OK + - Here you will enter the login and password that you inserted into the mysql +database in the vicidial_users table (above [6666/1234]) + - Now that you are logged into the astGUIclient administration system we can +add a new phone entry for each of the sipura lines we created. + - click on the "PHONES" link at the top, then the "ADD PHONE" link below +that and enter in the proper information for each of the new phone lines. +Here's what we entered for spa2000: + - Phone extension: spa2000 + - Dialplan Number: 2000 + - Voicemail Box: 2000 + - Phone IP address: 10.10.10.17 + - Computer IP address: 10.10.9.17 + - Server IP: 10.10.10.15 + - Login: spa2000 + - Password: test + - Conf File Secret: test + - Status: ACTIVE + - Active Account: Y + - Phone Type: Sipura SPA-2000 line 1 + - Full Name: Sipura line 1 test + - Company: TEST + - Picture: + - Protocol: SIP + - for the next phone simply replace 2000 with 2001 in the above example + - now your phones are all all set up in the astguiclient system and you can +use this website to add new phones to be used with astguiclient and monitor +the number of calls people are making. + - click on the "LIST ALL SERVERS" link at the top then click on the + server to modify. Verify that the GMT time zone and all other fields + are what you want them to be. There is a setting(Max VICIDIAL Trunks) + that can be modified to limit the number of VICIDIAL outbound trunks + that will be allowed to use on this server. + +**OPTIONAL** For Zap clients you will need to use full Zap Channel name as the +extension on the admin page entry: "1-1" for our Zap phone example +previously. And do not forget to set the protocol on this page to Zap + + + + + +PHASE 5: ADDING STARTUP ENTRIES FOR ASTGUICLIENT/VICIDIAL SCRIPTS + +1. Make several entries in the rc.local of your system: + - on the command line type: + - vi /etc/rc.d/rc.local + - add the following entries(here's what we used): + +# OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring) +# /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2 + +# Disable console blanking and powersaving +setterm -blank +setterm -powersave off +setterm -powerdown + +### start time server +/usr/local/bin/ntpdate -u ntp.myfloridacity.us +/usr/sbin/ntpd + +### start up the MySQL server +/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache & + +### roll the Asterisk logs upon reboot +/usr/share/astguiclient/ADMIN_restart_roll_logs.pl + +### clear the server-related records from the database +/usr/share/astguiclient/AST_reset_mysql_vars.pl + +### start up the apache web server +/usr/local/apache2/bin/apachectl start + +### load digium zaptel 4xT1 drivers into system +# if using Sangoma card, put wanrouter start in place or modprobes +modprobe zaptel +modprobe wct4xxp +/sbin/ztcfg -vvvvvvvvvvvv + +### sybsys local login +touch /var/lock/subsys/local + +### sleep for 10 seconds before launching Asterisk +sleep 10 + +### start up asterisk +/usr/share/astguiclient/start_asterisk_boot.pl + + - you are done + + + + + +PHASE 6: ADDING CRONTAB ENTRIES FOR ASTGUICLIENT/VICIDIAL SCRIPTS + +1. Make several entries in the cron of your system: + - on the command line type: + - cd /usr/share/astguiclient + - crontab -e + - add the following entries(here's what we used): + +### recording mixing/compressing/ftping scripts +0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX +#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM +#2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM + +### keepalive script for astguiclient processes +* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl + +### kill Hangup script for Asterisk updaters +* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl + +### updater for voicemail +* * * * * /usr/share/astguiclient/AST_vm_update.pl + +### updater for conference validator +* * * * * /usr/share/astguiclient/AST_conf_update.pl + +### flush queue DB table every hour for entries older than 1 hour +11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q + +### fix the vicidial_agent_log once every hour and the full day run at night +33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl +50 0 * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --last-24hours +## uncomment below if using QueueMetrics +#*/5 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --only-qm-live-call-check + +## uncomment below if using Vtiger +#1 1 * * * /usr/share/astguiclient/Vtiger_optimize_all_tables.pl --quiet + +### updater for VICIDIAL hopper +* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q + +### adjust the GMT offset for the leads in the vicidial_list table +1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug + +### reset several temporary-info tables in the database +2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl + +### optimize the database tables within the asterisk database +3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl + +## adjust time on the server with ntp +30 * * * * /usr/local/bin/ntpdate -u pool.ntp.org 2>/dev/null 1>&2 + +### VICIDIAL agent time log weekly summary report generation +2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl + +### remove old recordings more than 7 days old +#24 0 * * * /usr/bin/find /var/spool/asterisk/monitorDONE -maxdepth 2 -type f -mtime +7 -print | xargs rm -f + +### roll logs monthly on high-volume dialing systems +#30 1 1 * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl + +### remove old vicidial logs and asterisk logs more than 2 days old +28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f +29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +2 -print | xargs rm -f +30 0 * * * /usr/bin/find / -maxdepth 1 -name "screenlog.0*" -mtime +4 -print | xargs rm -f + + + + - once your system starts up you can attach to the screen running asterisk by +typing "screen -r " find which screen by typing "screen -r" and +looking for the lowest screen number. Then to detach again from the screen +while you are in it type 'Ctrl+a' then 'd' + - you are done + + + + + +PHASE 7: ADDING TEST LEADS TO VICIDIAL AND CONFIGURING A TEST CAMPAIGN AND USERS + +First we will add a few test leads to the vicidial_list table so that we can +test our system. There is also an application included with the distribution +that will accept a delimited file of leads placed in the /usr/share/astguiclient/VICIDIAL/LEADS_IN/ +directory and load it into the database automatically(VICIDIAL_IN_new_leads_file.pl +[a sample lead file in the proper format is included with this release: + - test_VICIDIAL_lead_file.txt]) +If you want to use the lead import script I suggest looking at the code to make +sure it is entering what you want it to. We are not going to go over that +particular script in this document. + +Also, there is a web-based lead loader available and is accessible from the +VICIDIAL admin.php web page(click on the "LOAD NEW LEADS" link in the LIST +section at the top of the admin page). To get to this page you must have +permissions in the vicidial_user table(Load Leads set to 1). Instructions on +it's use are included on the page through the help question mark link. + +NOTE: in PHP you must have "fileuploads" enabled for this page to work. +NOTE: it is important to have your proper country code in the phone_code field +of your leads so that the GMT offset encodding will properly code the time +zones for your leads. For the USA/Canada/Caribbean this would be 1. For the +UK this is 44 and Mexico is 52 and so on. + +Now that the sample leads have been entered, we can go into the VICIDIAL +administration website and set up our campaigns, lists and users. +But first let's make sure that they have the right GMT offset: + run this on the command line: + - /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --postal-code-gmt + +3. Enter the astguiclient administration page: +http://10.10.10.15/vicidial/admin.php +(use the username and password created when we entered a record into the +vicidial_users table in SUBPHASE 6.3, In our case this is 6666 and 1234) +NOTE: if you click on the Logout button you must leave the user/pass empty and click OK + - Now that you are logged into the vicidial administration system we can add +new user entries for each of the new users and enter new campaigns and new +lists. + - The first step is to enter your new users, Click on the ADD A NEW USER +and fill in the appropriate information for each now user you want to +add. + - Next, you need to create a new campaign, click on the ADD A NEW +CAMPAIGN link and fill in what you want the campaign to be called as +well as a description + - Next, you need to define a new list, click on the ADD A NEW LIST link +and fill in what you want the list to be called as well as a using the +list ID of the leads that we loaded in the previous step "101" and +select the new campaign from the pull-down menu that we just created. + - Now that you have created your list, make it active by changing active to Y + - now modify your campaign ang change the first status to be called to +NEW and submit. Now your system is ready to dial. + - you are done + + + + + +PHASE 8: astGUIclient and VICIDIAL WEB CLIENTS + +The browser requirements for the web-client interfaces are: +- Firefox 1.0 or greater *** RECOMMENDED*** +- Mozilla 1.7 or greater +- Netscape 8 or greater +- Opera 8.5 or greater +- Microsoft Internet Explorer 6.0 or greater + +To log into this app you will need a login setup in the vicidial_users table +as well as an entry for the phone you are using in the phones table. You will +first get a login prompt for the vicidial login then you will have the phone +login where you enter the Login and Password for that phone entry. From there +the app should display and you will see the MAIN screen with your login +information at the top. + +The example web page you would go to on this installation would be: +http://10.10.10.15/agc/astguiclient.php +http://10.10.10.15/agc/vicidial.php + +Another thing to note is that you can have the agc folder(with the .php files +in it) copied to multiple web servers, you just need to make sure that the +MySQL database connection works (check the settings in the dbconnect.php file +that is in the agc directory). We have had astguiclient.php running on 3 +separate web servers for the same DB server and Asterisk server. This is an +easy way to allow for auto failover and/or redundancy. Also, this client will +work over SSL connections(https) for encrypted communications with the server. + +New in astGUIclient release 1.1.7 is multi-language support. multi-language +versions of web-clients and admin pages are available in the LANG_agc.zip and +LANG_www directries and can be copied into your webroot directory. + +One more feature that the VICIDIAL web-client offers is the ability to set up +an EXTERNAL phone extension in the astguiclient admin section so that you can +have agents log in to vicidial.php wherever they have access to a phone with +an external phone number and a web browser. To do this follow these steps: +- "ADD PHONE" in the admin.php web page and enter whatever name you want +- For the dialplan number field put in the full digits that you would dial from + the Asterisk server to get to that agent's external phone(with 91 if used) +- For the Protocol select EXTERNAL +- make sure the agent knows the login and password set for this phone entry. +Then the agent will go to the vicidial.php page and enter in their phone +login/pass, their vicidial user/pass/campaign and their phone should ring in a +few seconds, and they are logged in and ready to take calls. + +Admin Note: If you want to enable your agents to login with only their user/pass +you can hardcode the phone_login and phone_pass into the query string(URL) and +use a bookmark on their desktop, taking one more step out of their login process +example: http://10.10.10.15/agc/vicidial.php?pl=gs102&pp=test + +It is recommended if you are in a call center environment that you would disable +the "Saved Form Information" option in Firefox settings. This is a checkbox in +the Privacy settings under the Options menu. + + + + + +PHASE 9: VICIDIAL REMOTE AGENTS + +With v1.0 of VICIDIAL we have the ability to use a simple web form to give +remote agents a way to receive calls to whatever number they happen to be at, +and they can view/edit call details and see a call log all through a web page +(vdremote.php) or http://10.10.10.15/vicidial/vdremote.php on this installation. +Remote Agents is only recommended for inbound calls because of the extra time +needed to dial a number out to transfer the call to. To set up remote agents, +just go to the vicidial admin.php page and ADD NEW REMOTE AGENTS(Make sure the +userID start also has a user login so they can get to the vdremote page). You +will see that you can set up a remote agent entry to take multiple lines if you +wish meaning that, for example, if you need to send all of your calls to another +location because of a massive snowstorm(and none of your agents showed up at work) +you just log in that remote agent record with say 10 lines and then all of those +calls will be directed to the same number you set up for the remote agent. Then +again you could just get your agents to log in from home if they have a phone +and computer + + + + + +PHASE 10: You are done with installation + +If you have problems and it is not working right(and are NOT celebrating right +now), feel free to take a look at the FAQ for solutions to common installation +errors, read the SCRATCH_INSTALL document, visit the VICIDIAL forum or send an +email to the mailing list: +http://www.eflo.net/VICIDIALforum/index.php +https://lists.sourceforge.net/lists/listinfo/astguiclient-users + +Also, check out our weblog: http://astguiclient.blogspot.com/ + + +**** IMPORTANT - In order for vicidial/astguiclient to function correctly please +read the REQUIREMENTS.txt for a minimum requirements list. *** + +End-user Manuals for Agents and Managers are available from http://www.eflo.net + + + + + +PHASE 11: Security Hardening: + +You may want to reduce the exposure of some of the elements of VICIDIAL. Here are some examples: + +ln -s /dev/null /usr/local/apache2/htdocs/vicidial/project_auth_entries.txt +ln -s /dev/null /usr/local/apache2/htdocs/agc/vicidial_auth_entries.txt +ln -s /dev/null /usr/local/apache2/htdocs/agc/astguiclient_auth_entries.txt + +- Change the WWW writable in the admin.php system settings to "0" +- Change the default admin user "6666" or it's password from the default +- Change the Default secret(password) for the default SIP and IAX accounts that are set up (admin.php -> Admin, Phones and Servers as "Conf File Secret") +- Change the default password for the Asterisk manager connection in manager.conf then change it in the Server modification screen +- Change the default password for the mysql cron user in mysql and change it to match in /etc/astguiclient.conf on each server +- Possibly use static IP addresses for the IAX/SIP conf account entries +- Change the default port for Apache in httpd.conf from 80 to something else +- Change the default port for IAX in iax.conf from 4569 to something else +- Change the default control port for SIP in sip.conf from 5060 to something else +- Use a firewall to route access using different port numbers or restricting connection by VPN or set IP addresses diff --git a/agc_2-X/branches/agc_2.2.0/docs/CALLBACKS_PROCESS.txt b/agc_2-X/branches/agc_2.2.0/docs/CALLBACKS_PROCESS.txt new file mode 100644 index 00000000..2077cdb7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/CALLBACKS_PROCESS.txt @@ -0,0 +1,98 @@ +CALLBACK proces flow 2006-01-05 + +***** FULL CALLBACKS FUNCTIONALITY WAS ADDED IN THE 1.1.11 RELEASE ***** + +This will outline the process I have thought through in my head for a call-back +process in VICIDIAL. I have received suggestions for methodologies of how many +people think that call-backs should work and I think I've finally come to a +conclusion of how I may build it into VICIDIAL that incorporates most of these +suggestions. + + + +The Agent Side: +When an Agent dispositions a call as CALLBK, a popup frame will appear that will +allow selecting a date from a calendar window(with option to go forward by month +up to 1 year) and a pull-down list that will show hours(in 30 minute increments +defaulting to current half hour). After the agent selects a day and time, they +must check a box to denote that only they should be able to get this Callback. +If the box is unchecked, anyone will be able to call this lead after it's +callback_time elapses. The lead will be entered as vicidial_list.status CBHOLD +in the system and will not be able to be dialed or selected as a dial status in +the admin screen. + +If the agent checks the box that they will be the only one that can callback the +lead and it is time to call that lead again(vicidial.php will check at login and +every 30 minutes to see if there are any agent-specific leads that need to be +called back by that agent) then when the agent is paused they will be able to +click on the "CALLBACK" button on the bottom of the screen and select which lead +that they want to callback. The call will proceed as a normal call and will be +dispositioned as normal. The callback button will probably be able to flash or +gently strobe like the astguiclient.php voicemail button does when callbacks are +available to be called for that logged-in agent. + +If the agent does not check that they are the only ones to be able to call that +specific lead back, then it will be updated by the AST_VDhopper.pl script once +it's callback date/time has been reached the status will be changed to CALLBK +and will be available for calling if that status is selected in the dial +statuses for the campaign and if the list is active. + +If the managr has given the agent permission to set USERONLY callbacks, then +the agent will be able to call those customers back by clicking on the CALLBACK +count link below the comments field of vicidial.php once they are logged in. +From here they can see the listing of their callbacks and their settings, and +can call the customer back by clicking on the callback record. + + + +The Admin Side: +In the admin.php web page will be a callback viewer. Admin users will be able to +search and sort by campaign, list, user, status and time-range to see summary +lists of the Callbacks in the vicidial_callbacks table. Callbacks will be +alterable through the modify lead screen. + + + +The Server Side: +The vicidial_callbacks table will look like this: + CREATE TABLE vicidial_callbacks ( +callback_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED, +list_id INT(8) UNSIGNED, +campaign_id VARCHAR(8), +status VARCHAR(10), +entry_time DATETIME, +callback_time DATETIME, +modify_date TIMESTAMP, +user VARCHAR(20), +recipient ENUM('USERONLY','ANYONE'), +comments VARCHAR(255), +index (lead_id), +index (status), +index (callback_time) +); + +The status field will probably have the following possible values: ACTIVE, LIVE, +ARCHIVE and all old callback entries will be kept for archival purposes, +anthough not viewable by the agent. + +The AST_VDhopper.pl script will do a select every minute(before it does it's +hopper filling run) for callbacks that need to be placed back in CALLBK status. +Something like this query: + SELECT lead_id from vicidial_callbacks where callback_time < '2006-01-06 +10:02:03' and status='ACTIVE'; + +AST_VDhopper.pl will then: +- set these leads to vicidial_list.status of CALLBK +- set the called_since_last_reset to N +- insert the lead into the vicidial_hopper under the campaign it was originally + set if it is an ANYONE callback +- change the vicidial_callbacks.status to LIVE. + +At the time of a hangup of a callback call, the vicidial.php script will set the +vicidial_callbacks.status to ARCHIVE. The leads that designate the recipient as +USERONLY will not be altered in any way by AST_VDhopper.pl. + + + + diff --git a/agc_2-X/branches/agc_2.2.0/docs/IE_INCOMPATIBILITIES.txt b/agc_2-X/branches/agc_2.2.0/docs/IE_INCOMPATIBILITIES.txt new file mode 100644 index 00000000..ea564347 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/IE_INCOMPATIBILITIES.txt @@ -0,0 +1,31 @@ +Microsoft Internet Explorer Incompatibilities with VICIDIAL Agent Interface 2007-06-13 + +*** AS OF RELEASE 2.0.4 VICIDIAL IS COMPATIBLE WITH IE 6.0 *** + +There are quite a few issues with using Microsoft Internet Explorer(IE) with VICIDIAL because of incompatibilites with the W3C standards as well as stability and architectural issues. + +The decision was made to stop testing on IE because of time constraints as well as the lack of cross-compatibility of IE and lack of compatibility with standards, even between IE versions. Firefox meets all compatibility requirements which is why that is the recommended platform for VICIDIAL agents. + +As of release 2.0.4 of astguiclient, IE 5.0 and 5.5 compatibility was broken to make VICIDIAL fully compatible with IE 6.0. Along with this change, all of the memory issues were fixed, along with several features that were not working before in IE like HotKeys. + + +Some of the issues include the following: +- Because ActiveX is used for AJAX with IE(and no other browser) it is difficult to debug the issue with faulty garabage collection where IE, or rather ActiveX, will not delete any of the XMLHTTPRequest events that it grabs resulting in the eventual crashing of IE after it hits its memory limit. I have heard that with IE7 and newer ActiveX there is a potential way around this through using some different Javascript commands. +- Using a span with NOSCROLL and a form element inside of it are sometimes ignored by IE, not sure why, but using spans with form elements may need to be changed to accomodate IE in the future. + Changed: + .cust_form {font-family: sans-serif; font-size: 10px; overflow:} + To: + .cust_form {font-family: sans-serif; font-size: 10px} +- For some reason form elements inside of a hidden span cannot be given focus or blur(Causing Hotkeys not to work): + Commented out the following lines: + document.vicidial_form.inert_button.focus(); + document.vicidial_form.inert_button.blur(); +- There are issues with Hotkeys key-binding working with some versions of IE dues to the Javascript used to achieve the function. +- Sometimes document elements will error out as undefined even though Firefox ses them just fine, for example: + Commented out the folowing lines(3 locations): + if ( (dialed_label.length < 3) || (dialed_label=='NONE') ) {dialed_label='MAIN';} + Changed to: + if (dialed_label=='NONE') {dialed_label='MAIN';} + Making these changes allows IE to work with 2.0.3 but does not allow for color status bar changes on inbound calls. + + diff --git a/agc_2-X/branches/agc_2.2.0/docs/INBOUND-CLOSER_PROCESS.txt b/agc_2-X/branches/agc_2.2.0/docs/INBOUND-CLOSER_PROCESS.txt new file mode 100644 index 00000000..1090ff4d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/INBOUND-CLOSER_PROCESS.txt @@ -0,0 +1,113 @@ +INBOUND/CLOSER process flow 2007-05-02 + +** THIS FULLY REDONE INBOUND-CLOSER PROSESS IS PLANNED FOR THE 2.0.4 RELEASE ** + +This will outline the process I have thought through in my head for rewriting the inbound and closer call queueing and handling processes within VICIDIAL. The objective is to add the following features to make VICIDIAL a more well-rounded product: +- consolidate the 13 VDAD inbound and closer scripts into one script with CLI options +- custom hold music per in-group +- put call_times into effect for in-groups allowing calls coming in after hours to be directed to another extension or voicemail box +- allow any campaign to take inbound calls, removing the restriction on campaign_id name for that purpose + + + + + + + +***** Here are some planned features that will have to wait for the next release: +- add concurrent-transfers options to inbound groups +- announce estimated time on hold +- announce place in line +- option for customer to leave the queue and leave a message while still keeping their place in line +- allow agent to search for customer lead in system after they have been connected +- for closer transfers, allow fronter to send calls to any in-group by a pull-down list + + + +The Agent Side: +The vicidial.php script will need to be modified to allow for a record to load and show that a customer has called and possibly display their callerID and play a message that they may have left. The agent would then have the option to place a manual dial call to reach the customer. + +Another important change that needs to be made to the vicidial.php agent interface is to allow searching for a customer's record and changing the lead_id that is associated with the call while the call is going on. This could prove problematic, but will end up being a much better solution than locking the agent into a record when the call comes in. This may also result in records having to be associated with other records, which might mean either another table or possibly adding another field to the vicidial_list table. + +For the changes in the Fronter/Closer transfers, new User Group permissions will need to be added to be able to restrict the in-groups that agents are allowed to transfer calls to. When Closer transfers are enabled in a campaign the agent interface will select these in-groups and can transfer calls to any of those groups. Also, a complete reworking of how the Transfer Conference box is laid out will be done. + + + +The Admin Side: +More settings will be needed for the In-Groups section to be able to accomodate these changes: +ALTER TABLE vicidial_inbound_groups ADD moh_extension VARCHAR(20); +ALTER TABLE vicidial_inbound_groups ADD prompt_interval SMALLINT(5) UNSIGNED default '60'; +ALTER TABLE vicidial_inbound_groups ADD announce_place_in_line ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD announce_estimate_hold_time ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD allow_leave_queue_place ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD allow_leave_queue_message ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD callback_number_validation ENUM('6','7','8','9','10','11','12','13','14','NORTH_AMERICA','UK'); +ALTER TABLE vicidial_inbound_groups ADD call_time VARCHAR(20); +ALTER TABLE vicidial_inbound_groups ADD after_hours ENUM('HANGUP','VOICEMAIL','EXTENSION') default 'EXTENSION'; +ALTER TABLE vicidial_inbound_groups ADD after_hours_exten VARCHAR(20); + +In the servers table a field will also be added: +ALTER TABLE servers ADD hold_queue_prompt_exten VARCHAR(20) default '8359'; + +In the vicidial_auto_calls table a field will also be added: +ALTER TABLE vicidial_auto_calls ADD last_prompt_time DATETIME; +ALTER TABLE vicidial_auto_calls ADD random_id INT(9) UNSIGNED; +ALTER TABLE vicidial_auto_calls ADD recording_id INT(10) UNSIGNED; + +For the fronter/closer transfers some fields will need to be added to the vicidial_user groups table: +ALTER TABLE vicidial_user_groups ADD allowable_xfer_inbound_groups TEXT +ALTER TABLE vicidial_user_groups ADD default_xfer_inbound_group VARCHAR(20) + + + +The Server Side: +For inbound and closer transfers, the agi_VDAD... scripts will still run as they normally do now, but after 5 seconds, without a transfer to an agent, the customer will be put into the new call-queue manager which will consist of a constantly running perl script(we will call it "AST_VD_hold_queue.pl") that will keep track of the call while it is still active and before it gets sent to an agent, and an AGI script(we will call this one agi-VD_queue_prompts.agi) that will perform the dynamic functions of speaking the customer's place in line, estimated hold time and offer the option to press a DTMF digit and either leave a message for the agent to take the call or leave a callback number to be called back when their turn arrives. This script will also have to somehow keep the vicidial_auto_calls records active even after a customer has hung up in order to preserve place-in-line and allow for playing of a customer message or callback to a customer. + +*** This section to be removed due to change in architecture it was not implemented *** + +Here is a process flow explanation of how a call would move through the hold queue: +- Call comes in to the agi_VDADcloser... script and cannot find an agent to send the call to within 5 seconds +- the agi_VDADcloser script changes the status of the call in vicidial_auto_calls to HOLDP and sends the call to the extension that the agi-VD_queue_prompts.agi script is on(defined in the servers table, default will be 8359) +- the agi-VD_queue_prompts.agi script will query the database for the vicidial_inbound_group settings to see what options it should offer the customer and then that script plays the desired prompts(if selected, leave number and/or leave voice message), then it will wait 15 seconds for a digit press and if there is no valid digit press then it will continue on(steps for if there is a digit press are at the end of this process flow) +- Then the agi script checks for a "conferences" table entry that matches that moh_extension(for a moh_extension of 1234 this would be reserved under HOLDQ1234 in the conferences table) +- If the conference is reserved then the customer call is immediately transferred there, if it does not exist, the agi script will reserve a new conferences record and post an Originate record to the vicidial_manager table so that the hold music/message will start playing in that meetme conference +- The vicidial_auto_calls record is changed to HOLDQ and the customer call is then sent to that meetme room in listen-only mode so that multiple customers can be sent to the same meetme room.(This adds the extra option of allowing a manager to dial into that conference and speak a message to all of the people waiting in the queue) +- The AST_VD_hold_queue.pl script then checks to see if there are any available agents as well as updates the time on the vicidial_auto_calls record every second to keep it alive, as well as checking to see whether the call is due to be sent back to the prompt agi by how old the call's last_prompt_time field is set to(even if a call is in HOLDP and is in the prompt agi process, it will still keep it's place in line and it will immediately be transferred if an agent becomes available) +- If the last_prompt_time is older than prompt_interval seconds, then the vicidial_auto_calls status is set back to HOLDP and the call is sent back to the agi-VD_queue_prompts.agi script for another loop +- If there is an available agent, then the vicidial_live_agents record is updated and the call is immediately sent to the agent's meetme room +- If the customer is in the agi-prompt script and they choose to leave a message and/or leave a callback phone number, the script will add the callback number to the alt_phone field(if it does not match callerIDnumber that the call came in under), and the voice message will be logged in the recording_log table along with the server_ip that it was recorded on. The filename for the recording will be something like this "70503124128_CUSTSERV_7275551212-all.wav" which is the datetimecode_inboundgroup_customerphone +- If customer enters in a callback number and vicidial_inbound_groups callback_number_validation field is set to 6-14, NORTH_AMERICA or UK then the number of digits and pattern are validated or cleaned to make sure it is a valid number. The agi prompt script will also read back the phone number they entered to verify it again with the customer and ask for a confirmation of that number with press of a 1 or 2. +- After the customer has left a callback phone number and left a message, their vicidial_auto_calls status is changed to PLACE and their call is hung-up +- When a PLACE call that a customer had left a message on is sent to an agent, the agent will see the customer record appear and the audio recording will be automatically played in their session with a button to allow them to play it again. Then the agent screen will go into manual-dial-alt-dial mode allowing the agent to place a call back to the customer. + + + +This functionality will require three new statuses in the vicidial_auto_calls table: +HOLDQ - this status will be for the LIVE-status calls that were not sent to an agent in the first five seconds on the system, so they will be handed over to be taken care of by the AST_VD_queue_hold.pl perl script. +HOLDP - this status will be for the HOLDQ calls that are currently in the agi-VD_queue_prompts.agi script. +PLACE - this status is a placeholder for the customer after they choose the option to hang-up and either leave a message or leave their contact number for a callback. They are no longer on an active channel, but their place in line as a customer should be preserved so that the agent that receives their record can proceed with a call to follow-up with the customer. + + +MORE TO COME... + + + +- optionally make native audio files for Music On Hold: + +cd /var/lib/asterisk/mohmp3/ +mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-sunshine.mp3 > /var/lib/asterisk/mohmp3/fpm-sunshine.raw +sox -r 44100 -w -s -c 1 fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav +sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm +sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm +mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-calm-river.mp3 > /var/lib/asterisk/mohmp3/fpm-calm-river.raw +sox -r 44100 -w -s -c 1 fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav +sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm +sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm +mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-world-mix.mp3 > /var/lib/asterisk/mohmp3/fpm-world-mix.raw +sox -r 44100 -w -s -c 1 fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav +sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm +sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm +rm -f *.raw +mkdir ../orig-mp3 +mv -f *.mp3 ../orig-mp3/ + diff --git a/agc_2-X/branches/agc_2.2.0/docs/Inbound_VDAC_IVR.txt b/agc_2-X/branches/agc_2.2.0/docs/Inbound_VDAC_IVR.txt new file mode 100644 index 00000000..28628e56 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/Inbound_VDAC_IVR.txt @@ -0,0 +1,69 @@ +Inbound VDAC IVR process 2008-05-25 + + +NOTE: the Call Menu feature has been recently added in 2.2.0 that enables you to create and maintain IVRs, such as those mentioned in this document, using only the web-based Administration interface. For more information about Call Menus, take a look at the In-Groups -> Call Menu section of the Administration website or look at the ASTERISK_CONF-GEN.txt document + + + +This doc goes over the addition of the IVR status to the vicidial_auto_calls table and how calls that are not yet in an in-group(queue) can still be counted as active calls. This allows your system to show a tally of inbound calls that are still navigating menus before finding an in-group(queue) to be put into. + +The agi-VDAD_inbound_calltime_check.agi script does a check for the calltime scheme of the defined in-group(queue) as well as using the after-hours method for that in-group and the associated after-hours message if defined. Also, this script can place a record in the vicidial_auto_calls status in the IVR status. Calls in this status do not affect the dial ratios of blended campaigns, but they will display in the AST_timeonVDADall.php real-time status pages. + +A log of the calls going into this agi-VDAD_inbound_calltime_check.agi script is also inserted into the live_inbound_log table. + +The agi-VDAD_inbound_calltime_check.agi script can also be used to log the progression of a call through an IVR if you place it at major points in your IVR dialplan. The third field that you can define allows you to set a note or comment that is placed into the database when the call goes through that step. + +Now included in the vicidial web directory is the AST_IVRstats.php report which can show you the statistics on the progression of customers through an Asterisk dialplan-based IVR using tracking with this script. + + +The example below shows how to do a very simple IVR before sending to a queue asking if the caller wants English, Spanish, French or German language service. + +The "test_in_menu" audio file would have something like the following script: + +"Hello, thank you for calling ACME Service Inc. For English press one, para el +espaol, prensa dos, pour le Franais, presse trois, fr Deutsche Presse vier." + + + +extensions.conf additions: + + +; First, in the default context you will put a line sending the inbound calls +; for this number into a context named the same as the first in-group(queue), +; in this case "TEST_IN". There are also 3 other in-groups(queues) for the +; non-English in-groups(queues): +; TEST_IN - English - option 1 +; TEST_IN_ES - Spanish - option 2 +; TEST_IN_FR - French - option 3 +; TEST_IN_DE - German - option 4 + +[default] +exten => 7275551111,1,Goto(TEST_IN,s,1) + + +[TEST_IN] +exten => s,1,AGI(agi-VDAD_inbound_calltime_check.agi,TEST_IN-----YES-----START) +exten => s,2,Background(test_in_menu) +exten => s,n,WaitExten(10) +exten => s,n,Background(test_in_menu) +exten => s,n,WaitExten(10) +exten => s,n,Playback(vm-goodbye) +exten => s,n,hangup + +exten => 1,1,AGI(agi-VDAD_ALL_inbound.agi,CIDLOOKUP-----LB-----TEST_IN-----7275551111-----Closer-----park----------999-----1-----OUTB) +exten => 1,n,Hangup + +exten => 2,1,AGI(agi-VDAD_ALL_inbound.agi,CIDLOOKUP-----LB-----TEST_IN_ES-----7275551111-----Closer-----park----------999-----1-----OUTB) +exten => 2,n,Hangup + +exten => 3,1,AGI(agi-VDAD_ALL_inbound.agi,CIDLOOKUP-----LB-----TEST_IN_FR-----7275551111-----Closer-----park----------999-----1-----OUTB) +exten => 3,n,Hangup + +exten => 4,1,AGI(agi-VDAD_ALL_inbound.agi,CIDLOOKUP-----LB-----TEST_IN_DE-----7275551111-----Closer-----park----------999-----1-----OUTB) +exten => 4,n,Hangup + +exten => #,1,Goto(s,2) +exten => i,1,Goto(s,2) +exten => t,1,Goto(s,2) +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + diff --git a/agc_2-X/branches/agc_2.2.0/docs/LICENSE.txt b/agc_2-X/branches/agc_2.2.0/docs/LICENSE.txt new file mode 100644 index 00000000..395acb93 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/LICENSE.txt @@ -0,0 +1,277 @@ +AFFERO GENERAL PUBLIC LICENSE (AGPLv2) + +Version 2, November 2007 + +Copyright 2007 Affero Inc. +510 Third Street - Suite 225, San Francisco, CA 94107, USA + +This is version 2 of the Affero General Public License. It gives each licensee +permission to distribute the Program or a work based on the Program (as defined +in version 1 of the Affero GPL) under the GNU Affero General Public License, +version 2 or any later version. + +This license is a modified version of the GNU General Public License copyright +(C) 1989, 1991 Free Software Foundation, Inc. made with their permission. +Section 2(d) has been added to cover use of software over a computer network. + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the Affero General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This Public License applies to most of +Affero's software and to any other program whose authors commit to using it. +(Some other Affero software is covered by the GNU Library General Public License +instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. This +General Public License is designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you can +do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for a +fee, you must give the recipients all the rights that you have. You must make +sure that they, too, receive or can get the source code. And you must show them +these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) offer +you this license which gives you legal permission to copy, distribute and/or +modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced by +others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We wish +to avoid the danger that redistributors of a free program will individually +obtain patent licenses, in effect making the program proprietary. To prevent +this, we have made it clear that any patent must be licensed for everyone's free +use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this Affero General Public License. The "Program", below, refers to any such +program or work, and a "work based on the Program" means either the Program or +any derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included without +limitation in the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is not +restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and appropriately +publish on each copy an appropriate copyright notice and disclaimer of warranty; +keep intact all the notices that refer to this License and to the absence of any +warranty; and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may at +your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + +* a) You must cause the modified files to carry prominent notices stating that +you changed the files and the date of any change. + +* b) You must cause any work that you distribute or publish, that in whole or in +part contains or is derived from the Program or any part thereof, to be licensed +as a whole at no charge to all third parties under the terms of this License. + +* c) If the modified program normally reads commands interactively when run, you +must cause it, when started running for such interactive use in the most +ordinary way, to print or display an announcement including an appropriate +copyright notice and a notice that there is no warranty (or else, saying that +you provide a warranty) and that users may redistribute the program under these +conditions, and telling the user how to view a copy of this License. (Exception: +if the Program itself is interactive but does not normally print such an +announcement, your work based on the Program is not required to print an +announcement.) + +* d) If the Program as you received it is intended to interact with users +through a computer network and if, in the version you received, any user +interacting with the Program was given the opportunity to request transmission +to that user of the Program's complete source code, you must not remove that +facility from your modified version of the Program or work based on the Program, +and must offer an equivalent opportunity for all users interacting with your +Program through a computer network to request immediate transmission by HTTP of +the complete source code of your modified version or other derivative work. + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the entire whole, +and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on the +Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under Section +2) in object code or executable form under the terms of Sections 1 and 2 above +provided that you also do one of the following: + +* a) Accompany it with the complete corresponding machine-readable source code, +which must be distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +* b) Accompany it with a written offer, valid for at least three years, to give +any third party, for a charge no more than your cost of physically performing +source distribution, a complete machine-readable copy of the corresponding +source code, to be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange; or, + +* c) Accompany it with the information you received as to the offer to +distribute corresponding source code. (This alternative is allowed only for +noncommercial distribution and only if you received the program in object code +or executable form with such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all the +source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code distributed +need not include anything that is normally distributed (in either source or +binary form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component itself +accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source code +from the same place counts as distribution of the source code, even though third +parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or any +work based on the Program), you indicate your acceptance of this License to do +so, and all its terms and conditions for copying, distributing or modifying the +Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by third +parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement +or for any other reason (not limited to patent issues), conditions are imposed +on you (whether by court order, agreement or otherwise) that contradict the +conditions of this License, they do not excuse you from the conditions of this +License. If you cannot distribute so as to satisfy simultaneously your +obligations under this License and any other pertinent obligations, then as a +consequence you may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by all those +who receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from +distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and the +section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original copyright +holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In such +case, this License incorporates the limitation as if written in the body of this +License. + +9. Affero Inc. may publish revised and/or new versions of the Affero General +Public License from time to time. Such new versions will be similar in spirit to +the present version, but may differ in detail to address new problems or +concerns. + +Each version is given a distinguishing version number. If the Program specifies +a version number of this License which applies to it and "any later version", +you have the option of following the terms and conditions either of that version +or of any later version published by Affero, Inc. If the Program does not +specify a version number of this License, you may choose any version ever +published by Affero, Inc. + +You may also choose to redistribute modified versions of this program under any +version of the Free Software Foundation's GNU General Public License version 2 +or higher, so long as that version of the GNU GPL includes terms and conditions +substantially equivalent to those of this license. +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by Affero, Inc., write to us; we +sometimes make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and of +promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE +PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED +IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS +IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, +SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY +TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF +THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. diff --git a/agc_2-X/branches/agc_2.2.0/docs/LIMESURVEY.txt b/agc_2-X/branches/agc_2.2.0/docs/LIMESURVEY.txt new file mode 100644 index 00000000..1ea784c0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/LIMESURVEY.txt @@ -0,0 +1,58 @@ +LIME SURVEY and ViciDial + +We've been asked about Lime Survey(http://www.limesurvey.org) integration with ViciDial several times so here is a little summary of how you install it as well as how you can get it to work with Vicidial. + +We recommend creating a LimeSurvey Survey for each campaign and adding a "question" that will store the lead ID or phone number. For example, we will use the code LEADID to the survey and then we will send those variables using the web form in the agent interface using the following for the web form address: +VARhttp://SERVER/limesurvey/index.php?sid=37487&lang=en&37487X1X5=--A--phone_number--B-- + (example: http://SERVER/limesurvey/index.php?sid=37487&lang=en&37487X1X5=3125551212) + 37487 is the survey ID + 1 is the question group ID + 5 is the question ID (phone number) + 3125551212 is a phone number + +More information here: +http://docs.limesurvey.org/tiki-index.php?page=Workarounds#Prefilling_survey_answers_using_the_survey_URL + + + + +INSTALLATION INSTRUCTIONS: + +cd /usr/local/apache2/htdocs/ +wget http://softlayer.dl.sourceforge.net/project/limesurvey/1._LimeSurvey_stable/1.85%2B/limesurvey185plus-build7593-20090907.tar.gz +gunzip limesurvey185plus-build7593-20090907.tar.gz +tar xvf limesurvey185plus-build7593-20090907.tar +rm -f limesurvey185plus-build7593-20090907.tar + +vi config.php +* change variable to fit + database = limedb + user = limedbuser + password = limedbpw + +mysql +create database limedb; +create user limedbuser; +create user limedbuser@localhost; +set password for limedbuser = PASSWORD('limedbpw'); +set password for limedbuser@localhost = PASSWORD('limedbpw'); +grant all on limedb.* to 'limedbuser'; +grant all on limedb.* to 'limedbuser'@'localhost'; + +*IN A WEB BROWSER, GO TO THIS ADDRESS TO POPULATE THE ADDRESS: +http://SERVER/limesurvey/admin/install/ + +* delete the admin install directory +rm -fr admin/install/ + +Go to adm web page: +http://SERVER/limesurvey/admin/admin.php + +Add a user: (vicidial/1234/ViciDial User) +Add a group: (ViciDial agent group) +Add a survey: ViciDial test Survey +Add question group: ViciDial general questions +Add a question: + +For more information read the online manual: +http://docs.limesurvey.org/tiki-index.php?page=English+Instructions+for+LimeSurvey diff --git a/agc_2-X/branches/agc_2.2.0/docs/LIST_SUGGESTIONS.txt b/agc_2-X/branches/agc_2.2.0/docs/LIST_SUGGESTIONS.txt new file mode 100644 index 00000000..85abd69b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/LIST_SUGGESTIONS.txt @@ -0,0 +1,213 @@ +PROCESS FOR LIST SUGGESTIONS FOR ROOM MANAGERS Started: 2008-07-14 + +This document goes over the process for making suggestions of what lists to use at what time in a special report linked from the vicidial Administration web site(vicidial/admin.php). + +The suggestions would group lists usage into eight 3-hour periods for each day according to server time. The actual number of 3-hour periods shown for each list would be restricted depending on the local call time scheme selected for the campaign and the area that the leads were present in. + +The list suggestion process would most likely not be real-time, although at companies with small lists that might be possible. Instead, a server process running after-hours will generate statistics and scores for each list for each of the 3-hour periods. Something like the following will be viewable after the stats have been run: + +LIST TIME TZ-DIAL% HA-SCORE SALE-SCORE +101 9AM-12PM 100 15 15 +101 12PM-3PM 100 25 35 * +101 3PM-6PM 100 35 30 +101 6PM-9PM 100 25 20 + +In the above example, the best time for a manager to call the list, for the highest rate of Human-Answered CONTACT, would be from 3-6PM. Or to maximixe SALEs they might want to call the list earlier at 12PM-3PM. the reason that you only see four 3-hour periods is that this specific list has only US Eastern time-zone leads in it and the campaign time scheme is set to 9AM-9PM so there is no possibility of calling past 9PM server time since the server is located in US Eastern Timezone, but a list with central or mountain time zone leads in it would show a fifth period(9PM-12AM) that would have score next to it(see example below). The Asterisk * is next to the time period that is happening right now, in the actual report that line would be highlighted with a different color. + +LIST TIME TZ-DIAL% HA-SCORE SALE-SCORE +102 9AM-12PM 67 20 15 +102 12PM-3PM 100 15 15 * +102 3PM-6PM 100 20 25 +102 6PM-9PM 100 15 10 +102 9PM-12AM 33 30 35 + +In this example you get some indication of how the TZ-DIAL % will work. In the real application it might be better to use some kind of graph or filled-in sections of the table that would indicate the time ranges and lead percentage covered in each of the time periods to give a better visual of when the leads are able to be dialed. + +There will also be the ability to see a comparison of the available lists for the current time period so that a manager can make a decision as to which of those lists to make active. + + +Factors to be taken into account by the scoring process: +- number of leads in the list +- number of leads in a callable time zone in the list +- number of sales and the sales ratio in each time period +- number of attempts by leads in the list in each time period +- the amount of dead leads(leads that cannot be called anymore) in the list +- the number of calls placed yesterday in the same time period +- the number of Human-Answered leads for each period + + + +Needed database changes: +!!! IMPORTANT !!! +THESE ARE FOR REFERENCE ONLY, DO NOT RUN THEM!!! + +ALTER TABLE vicidial_status_categories ADD sale_category ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_status_categories ADD dead_lead_category ENUM('Y','N') default 'N'; + +CREATE TABLE vicidial_lists_suggestions ( +list_id BIGINT(14) UNSIGNED PRIMARY KEY NOT NULL, +last_update_time DATETIME, +leads_count INT(9) UNSIGNED, +calls_count INT(9) UNSIGNED, +sales_count INT(9) UNSIGNED, +contacts_count INT(9) UNSIGNED, +period_1_dialable MEDIUMINT(7) UNSIGNED, +period_1_tz_dial_pct TINYINT(3), +period_1_calls MEDIUMINT(7) UNSIGNED, +period_1_sales MEDIUMINT(7) UNSIGNED, +period_1_contacts MEDIUMINT(7) UNSIGNED, +period_1_avg_attempts TINYINT(3) UNSIGNED, +period_1_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_1_score_sale TINYINT(3), +period_1_score_contact TINYINT(3), +period_2_dialable MEDIUMINT(7) UNSIGNED, +period_2_tz_dial_pct TINYINT(3), +period_2_calls MEDIUMINT(7) UNSIGNED, +period_2_sales MEDIUMINT(7) UNSIGNED, +period_2_contacts MEDIUMINT(7) UNSIGNED, +period_2_avg_attempts TINYINT(3) UNSIGNED, +period_2_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_2_score_sale TINYINT(3), +period_2_score_contact TINYINT(3), +period_3_dialable MEDIUMINT(7) UNSIGNED, +period_3_tz_dial_pct TINYINT(3), +period_3_calls MEDIUMINT(7) UNSIGNED, +period_3_sales MEDIUMINT(7) UNSIGNED, +period_3_contacts MEDIUMINT(7) UNSIGNED, +period_3_avg_attempts TINYINT(3) UNSIGNED, +period_3_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_3_score_sale TINYINT(3), +period_3_score_contact TINYINT(3), +period_4_dialable MEDIUMINT(7) UNSIGNED, +period_4_tz_dial_pct TINYINT(3), +period_4_calls MEDIUMINT(7) UNSIGNED, +period_4_sales MEDIUMINT(7) UNSIGNED, +period_4_contacts MEDIUMINT(7) UNSIGNED, +period_4_avg_attempts TINYINT(3) UNSIGNED, +period_4_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_4_score_sale TINYINT(3), +period_4_score_contact TINYINT(3), +period_5_dialable MEDIUMINT(7) UNSIGNED, +period_5_tz_dial_pct TINYINT(3), +period_5_calls MEDIUMINT(7) UNSIGNED, +period_5_sales MEDIUMINT(7) UNSIGNED, +period_5_contacts MEDIUMINT(7) UNSIGNED, +period_5_avg_attempts TINYINT(3) UNSIGNED, +period_5_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_5_score_sale TINYINT(3), +period_5_score_contact TINYINT(3), +period_6_dialable MEDIUMINT(7) UNSIGNED, +period_6_tz_dial_pct TINYINT(3), +period_6_calls MEDIUMINT(7) UNSIGNED, +period_6_sales MEDIUMINT(7) UNSIGNED, +period_6_contacts MEDIUMINT(7) UNSIGNED, +period_6_avg_attempts TINYINT(3) UNSIGNED, +period_6_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_6_score_sale TINYINT(3), +period_6_score_contact TINYINT(3), +period_7_dialable MEDIUMINT(7) UNSIGNED, +period_7_tz_dial_pct TINYINT(3), +period_7_calls MEDIUMINT(7) UNSIGNED, +period_7_sales MEDIUMINT(7) UNSIGNED, +period_7_contacts MEDIUMINT(7) UNSIGNED, +period_7_avg_attempts TINYINT(3) UNSIGNED, +period_7_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_7_score_sale TINYINT(3), +period_7_score_contact TINYINT(3), +period_8_dialable MEDIUMINT(7) UNSIGNED, +period_8_tz_dial_pct TINYINT(3), +period_8_calls MEDIUMINT(7) UNSIGNED, +period_8_sales MEDIUMINT(7) UNSIGNED, +period_8_contacts MEDIUMINT(7) UNSIGNED, +period_8_avg_attempts TINYINT(3) UNSIGNED, +period_8_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_8_score_sale TINYINT(3), +period_8_score_contact TINYINT(3) +); + +CREATE TABLE vicidial_lists_suggestion_log ( +list_id BIGINT(14) UNSIGNED NOT NULL, +campaign_id VARCHAR(20) NOT NULL, +log_datetime DATETIME NOT NULL, +leads_count INT(9) UNSIGNED, +calls_count INT(9) UNSIGNED, +sales_count INT(9) UNSIGNED, +contacts_count INT(9) UNSIGNED, +period_1_dialable MEDIUMINT(7) UNSIGNED, +period_1_tz_dial_pct TINYINT(3), +period_1_calls MEDIUMINT(7) UNSIGNED, +period_1_sales MEDIUMINT(7) UNSIGNED, +period_1_contacts MEDIUMINT(7) UNSIGNED, +period_1_avg_attempts TINYINT(3) UNSIGNED, +period_1_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_1_score_sale TINYINT(3), +period_1_score_contact TINYINT(3), +period_2_dialable MEDIUMINT(7) UNSIGNED, +period_2_tz_dial_pct TINYINT(3), +period_2_calls MEDIUMINT(7) UNSIGNED, +period_2_sales MEDIUMINT(7) UNSIGNED, +period_2_contacts MEDIUMINT(7) UNSIGNED, +period_2_avg_attempts TINYINT(3) UNSIGNED, +period_2_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_2_score_sale TINYINT(3), +period_2_score_contact TINYINT(3), +period_3_dialable MEDIUMINT(7) UNSIGNED, +period_3_tz_dial_pct TINYINT(3), +period_3_calls MEDIUMINT(7) UNSIGNED, +period_3_sales MEDIUMINT(7) UNSIGNED, +period_3_contacts MEDIUMINT(7) UNSIGNED, +period_3_avg_attempts TINYINT(3) UNSIGNED, +period_3_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_3_score_sale TINYINT(3), +period_3_score_contact TINYINT(3), +period_4_dialable MEDIUMINT(7) UNSIGNED, +period_4_tz_dial_pct TINYINT(3), +period_4_calls MEDIUMINT(7) UNSIGNED, +period_4_sales MEDIUMINT(7) UNSIGNED, +period_4_contacts MEDIUMINT(7) UNSIGNED, +period_4_avg_attempts TINYINT(3) UNSIGNED, +period_4_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_4_score_sale TINYINT(3), +period_4_score_contact TINYINT(3), +period_5_dialable MEDIUMINT(7) UNSIGNED, +period_5_tz_dial_pct TINYINT(3), +period_5_calls MEDIUMINT(7) UNSIGNED, +period_5_sales MEDIUMINT(7) UNSIGNED, +period_5_contacts MEDIUMINT(7) UNSIGNED, +period_5_avg_attempts TINYINT(3) UNSIGNED, +period_5_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_5_score_sale TINYINT(3), +period_5_score_contact TINYINT(3), +period_6_dialable MEDIUMINT(7) UNSIGNED, +period_6_tz_dial_pct TINYINT(3), +period_6_calls MEDIUMINT(7) UNSIGNED, +period_6_sales MEDIUMINT(7) UNSIGNED, +period_6_contacts MEDIUMINT(7) UNSIGNED, +period_6_avg_attempts TINYINT(3) UNSIGNED, +period_6_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_6_score_sale TINYINT(3), +period_6_score_contact TINYINT(3), +period_7_dialable MEDIUMINT(7) UNSIGNED, +period_7_tz_dial_pct TINYINT(3), +period_7_calls MEDIUMINT(7) UNSIGNED, +period_7_sales MEDIUMINT(7) UNSIGNED, +period_7_contacts MEDIUMINT(7) UNSIGNED, +period_7_avg_attempts TINYINT(3) UNSIGNED, +period_7_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_7_score_sale TINYINT(3), +period_7_score_contact TINYINT(3), +period_8_dialable MEDIUMINT(7) UNSIGNED, +period_8_tz_dial_pct TINYINT(3), +period_8_calls MEDIUMINT(7) UNSIGNED, +period_8_sales MEDIUMINT(7) UNSIGNED, +period_8_contacts MEDIUMINT(7) UNSIGNED, +period_8_avg_attempts TINYINT(3) UNSIGNED, +period_8_calls_yesterday MEDIUMINT(7) UNSIGNED, +period_8_score_sale TINYINT(3), +period_8_score_contact TINYINT(3), +index (list_id), +index (campaign_id), +index (log_datetime) +); + + diff --git a/agc_2-X/branches/agc_2.2.0/docs/LOAD_BALANCING.txt b/agc_2-X/branches/agc_2.2.0/docs/LOAD_BALANCING.txt new file mode 100644 index 00000000..fbff36d8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/LOAD_BALANCING.txt @@ -0,0 +1,382 @@ +VICIDIAL - LOAD BALANCING setup. + +This document is meant to summarize the capabilities and setup of VICIDIAL in a multi-server environment. + +Why Load Balance? + +The primary reason to do load balancing, or clustering of multiple VICIDIAL servers, is to spread the calls taken in or the answered calls on an outbound campaign across all of the agents that are logged into a campaign no matter what server they are on. For instance, on an outbound campaign, you have 2 servers, server one has 20 agents logged in on a campaign and the other server(two) has 5 agents logged in on the same campaign. Lets say that the campaign is set to a dial_level of 3.0 so there are 60 active calls being placed on server one and 15 active calls being placed on server two. Then 23 of the calls on server one answer, meaning that there are three calls too many for the agents available on that server. Under a load-balancing-overflow setup, those three calls can travel over an IAX2 trunk directly to the agents on that server that are still available. This increased efficiency in both inbound and outbound environments as well as reducing on-hold times for customers and equalizing wait times for agents across all servers for a campaign. + +Another reason for load balancing is the ability to use cheaper hardware on the server side. It is much cheaper and more fault-tolerant to buy four P4 2.0GHz 1U servers for $800 a piece than it is to buy a single 4U quad Xeon 3.2GHz server. The four 1U servers will have more total capacity, can be easily scaled and if one fails you've only lost 25% of capacity instead of everything. This philosophy has serverd our call center very well over the last two years. + +As of release 2.0.2, a new script(AST_VDauto_dial_FILL.pl) allows for dial-out-only(no agents on the server) VICIDIAL servers as well as balance dialing where a server with available trunk lines can dial lines for another server that does not have enough lines to dial for it's dial_level. AST_VDauto_dial_FILL.pl script is only for multi-server systems and is started from new ADMIN_keepalive_ALL.pl script with option 7 in astguiclient.conf. + + + +How do I set up load balancing on my two server VICIDIAL setup? + +These steps are mostly taken directly from the SCRATCH_INSTALL document, but they are all put together here to give a better idea of what is needed all in one place. It is assumed that you already have VICIDIAL up and running on both servers. + +NOTE: In a multi-server setup you may want to have your database and web server on a separate machine from your Asterisk/VICIDIAL servers. Simply copy the web page directories to your new database/web server and set the /etc/astguiclient.conf files on your VICIDIAL servers to point to that new database server. You can also have several web servers(or even load-balancing web servers) if you have more than 70 seats in one installation you may want to do that if you are not using eaccelerator. For the web pages you just need to make sure the dbconnect.php files are configured for your database server. We have had 12 VICIDIAL servers and 2 web servers using a single database server with no problems. + +NOTE: at the bottom of this document are conf examples for a 3 server load balancing setup. + +NOTE: as of 2.0.5 most of these settings are already done for you if you are using auto-conf file generation + +NOTE: as of SVN trunk 2009-05-19 the voicemail and prompt recording extensions are also auto-generated + + + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +AS OF RELEASE 2.2.0 YOU SHOULD NOT HAVE TO TAKE ANY STEPS BEYOND STEP 2 IN THIS DOCUMENT TO GET MULTI-SERVER VICIDIAL TO WORK IF YOU ARE USING THE DEFAULT VICIDIAL CONF FILES. +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + + + + +1. The VICIDIAL/Asterisk servers need to have all of the perl scripts and cron jobs installed on them, except these which only need to be on one of the servers: + - AST_VDhopper.pl (crontab) + - AST_cleanup_agent_log.pl (crontab) + - ADMIN_adjust_GMTnow_on_leads.pl (crontab) + - AST_DB_optimize.pl (crontab) + - AST_VDadapt.pl (defined in /etc/astguiclient.conf) + - AST_VDauto_dial_FILL.pl (defined in /etc/astguiclient.conf) + - ADMIN_archive_log_tables.pl (crontab) + +2. The VARactive_keepalives variable in /etc/astguiclient.conf should have "5" and "7" on only ONE SERVER in your entire dialer setup, the other servers should not have 5 or 7 in that field. + # 1 - AST_update + # 2 - AST_send_listen + # 3 - AST_VDauto_dial + # 4 - AST_VDremote_agents + # 5 - AST_VDadapt (If multi-server system, this must only be on one server) + # 6 - FastAGI_log + # 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server) + +(NOTE: the install.pl script now has an option to generate the following settings and print them out to the screen so that you do not have to manually build them. ./install.pl --build_multiserver_conf) +3. The two servers need to be registered to each other as IAX2 friends: + SERVER ONE(ASTtest1-10.10.10.15) + iax.conf: + register => ASTtest1:test@10.10.10.16 + + [ASTtest2] + type=friend + accountcode=IAXtrunk2 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + + SERVER TWO(ASTtest2-10.10.10.16) + iax.conf: + register => ASTtest2:test@10.10.10.15 + + [ASTtest1] + type=friend + accountcode=IAXtrunk1 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + + +4. The two servers need to have wildcard extensions assigned to the other server in the dialplan: + ## NOTE: the "010*010*010*015" is the IP address of the server as defined in + the /etc/astguiclient.conf file + SERVER ONE(ASTtest1-10.10.10.15) + extensions.conf: + [globals] + TRUNKIAX2=IAX2/ASTtest1:test@10.10.10.16 + + [default] + exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1) + exten => _010*010*010*016*.,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o) + + exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + + SERVER TWO(ASTtest2-10.10.10.16) + extensions.conf: + [globals] + TRUNKIAX1=IAX2/ASTtest2:test@10.10.10.15 + + [default] + exten => _010*010*010*015*.,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o) + exten => _010*010*010*016*.,1,Goto(default,${EXTEN:16},1) + + exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + +5. For BOTH servers the VDAD extens need to be setup there as well for the Load-Balance and Load-Balance-Overflow AGI scripts, as well as setting up the closer and inbound extens if needed(these should already be part of the default extensions.conf): + + ; VICIDIAL_auto_dialer transfer script Load Balance Overflow: + exten => 8367,1,Playback(sip-silence) + exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log) + exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) + exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) + exten => 8367,5,Hangup + + ; VICIDIAL_auto_dialer transfer script Load Balanced: + exten => 8368,1,Playback(sip-silence) + exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log) + exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) + exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) + exten => 8368,5,Hangup + + + ; Below are the parameters needed for the script to be run properly + ; 1. the method of call handling for the script: + ; - CID - CID received, add record with phone number + ; - CIDLOOKUP - Lookup CID to find record in whole system + ; - CIDLOOKUPRL - Restrict lookup to one list + ; - CIDLOOKUPRC - Restrict lookup to one campaign's lists + ; - CLOSER - Closer calls from VICIDIAL fronters + ; - ANI - ANI received, add record with phone number + ; - ANILOOKUP - Lookup ANI to find record in whole system + ; - ANILOOKUPRL - Restrict lookup to one list + ; - 3DIGITID - Enter 3 digit code to go to agent + ; - 4DIGITID - Enter 4 digit code to go to agent + ; - 5DIGITID - Enter 5 digit code to go to agent + ; - 10DIGITID - Enter 10 digit code to go to agent + ; 2. the method of searching for an available agent: + ; - LO - Load Balance Overflow only (priority to home server) + ; - LB - Load Balance total system + ; - SO - Home server only + ; 3. the full name of the IN GROUP to be used in vicidial for the inbound call + ; 4. the phone number that was called, for the log entry + ; 5. the callerID or lead_id of the person that called(usually overridden) + ; 6. the park extension audio file name if used + ; 7. the status of the call initially(usually not used) + ; 8. the list_id to insert the new lead under if it is new (and CID/ANI available) + ; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available) + ; 10. the campaign_id to search within lists if CIDLOOKUPRC + ;inbound VICIDIAL calls: + exten => 1234,1,Answer ; Answer the line + exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----INB-----7274515134-----Closer-----park----------999-----1-----OUTB) + exten => 1234,3,Hangup + + ; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel] + exten => _90009.,1,Answer ; Answer the line + exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1) + exten => _90009.,3,Hangup + exten => _990009.,1,Answer ; Answer the line + exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1) + exten => _990009.,3,Hangup + + +6. Reload both Asterisk servers and for outbound change the VDAD exten in the campaign detail screens to 8367 or 8368 and kill the AST_VDauto_dial.pl scripts on both servers so they can restart and you can now look at the AST_timeonVDADall.php page(per campaign time-on-VDAD available from the STATS and REPORTS link on the vicidial admin screen) that will allo you to see the server_ip of the agent and the server_ip of the call per campaign across all campaigns. + +If you have any questions or problems please post to the astguiclient-users list(link available on the project website) + +7. For multi-server VICIDIAL/astGUIclient installations these cron scripts only need to be set up and run on one of the servers: + - AST_VDhopper.pl (crontab) + - AST_cleanup_agent_log.pl (crontab) + - ADMIN_adjust_GMTnow_on_leads.pl (crontab) + - AST_DB_optimize.pl (crontab) + - AST_VDadapt.pl (defined in /etc/astguiclient.conf) + - AST_VDauto_dial_FILL.pl (defined in /etc/astguiclient.conf) + - ADMIN_archive_log_tables.pl (crontab) + +8. On all servers but one you should DELETE the following line from your extensions.conf: + ; prompt recording AGI script, ID is 4321 + exten => 8167,1,Answer + exten => 8167,2,AGI(agi-record_prompts.agi,wav-----720000) + exten => 8167,3,Hangup + exten => 8168,1,Answer + exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----720000) + exten => 8168,3,Hangup + This should help to prevent overwriting of prompts that are copied over from the one server that is used to do prompt creation. + Or you can simply redirect to the server that does have the recordings on it: + exten => 8167,1,Dial(${TRUNKIAX2}/${EXTEN},55,o) + exten => 8168,1,Dial(${TRUNKIAX2}/${EXTEN},55,o) + +9. On all servers but one you should consider redirecting voicemail direct calls to a single server: + Change this: + exten => _85026666666666.,1,Wait(1) + exten => _85026666666666.,2,Voicemail(${EXTEN:14}|u) + exten => _85026666666666.,3,Hangup + To something like this: + exten => _85026666666666.,1,Dial(${TRUNKIAX2}/${EXTEN},55,o) + + Change this: + exten => 8500,1,VoicemailMain + exten => 8500,2,Goto(s,6) + To something like this: + exten => 8500,1,Dial(${TRUNKIAX2}/${EXTEN},55,o) + + Change this: + exten => 8501,1,VoicemailMain(s${CALLERIDNUM}) + exten => 8501,2,Hangup + To something like this: + exten => 8501,1,Dial(${TRUNKIAX2}/${EXTEN},55,o) + +THREE VICIDIAL SERVER LOAD BALANCING SETUP: + +The only steps that are different as you add more load-balanced servers are steps 2 and 3: + +3. The three servers need to be registered to each other as IAX2 friends: + SERVER ONE(ASTtest1-10.10.10.15) + iax.conf: + register => ASTtest1:test@10.10.10.16 + register => ASTtest1:test@10.10.10.17 + + [ASTtest2] + type=friend + accountcode=IAXtrunk2 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + + [ASTtest3] + type=friend + accountcode=IAXtrunk3 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + + SERVER TWO(ASTtest2-10.10.10.16) + iax.conf: + register => ASTtest2:test@10.10.10.15 + register => ASTtest2:test@10.10.10.17 + + [ASTtest1] + type=friend + accountcode=IAXtrunk1 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + + [ASTtest3] + type=friend + accountcode=IAXtrunk3 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + + SERVER THREE(ASTtest3-10.10.10.17) + iax.conf: + register => ASTtest3:test@10.10.10.15 + register => ASTtest3:test@10.10.10.16 + + [ASTtest1] + type=friend + accountcode=IAXtrunk1 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + + [ASTtest2] + type=friend + accountcode=IAXtrunk2 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + + +4. The three servers need to have wildcard extensions assigned to the other server in the dialplan: + SERVER ONE(ASTtest1-10.10.10.15) + extensions.conf: + [globals] + TRUNKIAX2=IAX2/ASTtest1:test@10.10.10.16 + TRUNKIAX3=IAX2/ASTtest1:test@10.10.10.17 + + [default] + exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1) + exten => _010*010*010*016*.,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o) + exten => _010*010*010*017*.,1,Dial(${TRUNKIAX3}/${EXTEN:16},55,o) + + exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + + SERVER TWO(ASTtest2-10.10.10.16) + extensions.conf: + [globals] + TRUNKIAX1=IAX2/ASTtest2:test@10.10.10.15 + TRUNKIAX3=IAX2/ASTtest2:test@10.10.10.17 + + [default] + exten => _010*010*010*015*.,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o) + exten => _010*010*010*016*.,1,Goto(default,${EXTEN:16},1) + exten => _010*010*010*017*.,1,Dial(${TRUNKIAX3}/${EXTEN:16},55,o) + + exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + + exten => 8167,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + exten => 8168,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + exten => _85026666666666.,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + exten => 8500,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + exten => 8501,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + + SERVER THREE(ASTtest3-10.10.10.17) + extensions.conf: + [globals] + TRUNKIAX1=IAX2/ASTtest2:test@10.10.10.15 + TRUNKIAX2=IAX2/ASTtest2:test@10.10.10.16 + + [default] + exten => _010*010*010*015*.,1,Dial(${TRUNKIAX1}/${EXTEN:16},55,o) + exten => _010*010*010*016*.,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o) + exten => _010*010*010*017*.,1,Goto(default,${EXTEN:16},1) + + exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + + exten => 8167,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + exten => 8168,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + exten => _85026666666666.,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + exten => 8500,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + exten => 8501,1,Dial(${TRUNKIAX1}/${EXTEN},55,o) + + + +Example Audio Monitoring of Load Balancing agents on other servers: + +exten => _589XXX,1,Goto(default,8600${EXTEN:3},1) +exten => _689XXX,1,Dial(${TRUNKIAX1}/08600${EXTEN:3},55,o) +exten => _789XXX,1,Dial(${TRUNKIAX2}/08600${EXTEN:3},55,o) +exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To) + + + +Example of altering vicidial_conferences entries to make monitoring easier: +delete from vicidial_conferences where conf_exten < 8600100 and server_ip='192.168.1.101'; +delete from vicidial_conferences where conf_exten > 8600199 and server_ip='192.168.1.101'; +update vicidial_conferences set conf_exten = (conf_exten + 100) where server_ip='192.168.1.101'; + +Then add the following to your extensions.conf: +remove existing blind monitoring 08600XXX extension and replace with this: +; blind monitoring +exten => _086001XX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,ot) +exten => _086002XX,1,Dial(${TRUNKvicidial2}/${EXTEN},55,ot) +exten => _086003XX,1,Dial(${TRUNKvicidial3}/${EXTEN},55,ot) +exten => _086004XX,1,Dial(${TRUNKvicidial4}/${EXTEN},55,ot) + +Change the _8600[1-2]XX to just _86--1XX + +in the meetme.conf +remove all conferences before 8600200 and after 8600299 + +(vi command for search and replace ":%s/86001/86002/g") + diff --git a/agc_2-X/branches/agc_2.2.0/docs/NON-AGENT_API.txt b/agc_2-X/branches/agc_2.2.0/docs/NON-AGENT_API.txt new file mode 100644 index 00000000..bc8abeea --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/NON-AGENT_API.txt @@ -0,0 +1,283 @@ +NON-AGENT API DOCUMENT Started: 2008-07-24 + +This document describes the functions of an API(Application Programming +Interface) for all functions NOT directly relating to the VICIDIAL Agent screen. +This functionality will be rather limited at first and will be built upon as +critical functions are identified and programmed into it. + +There is also a new agent API script, for more information on that, please read +the AGENT_API.txt document. + + + + +API functions: +version - shows version and build of the API, along with the date/time +sounds_list - outputs a list of audio files from the audio store +moh_list - outputs a list of music on hold classes in the system +vm_list - outputs a list of voicemail boxes in the system +blind_monitor - calls user-defined phone and places them in session as blind monitor +add_lead - adds a new lead to the vicidial_list table with several fields and options +agent_ingroup_info - shows in-group and outbound auto-dial info for logged-in agent + + + +New scripts: +/vicidial/non_agent_api.php - the script that is accessed to execute commands + + +Changes: +80724-1723 - First build +90428-0208 - Added blind_monitor function +90513-1720 - Added sounds_list function +90721-1432 - Added rank and owner +90904-1535 - Added moh_list musiconhold function +90916-2342 - Added vm_list voicemail list +91203-1140 - Added agent_ingroup_info feature +91216-0331 - Added duplication check features to add_lead function + + + +API Functions use the 'function' variable + +NOTE: Just as with the Agent API, the non-agent API requires the user and pass of a +valid api-enabled vicidial_users account to execute actions. + + + +-------------------------------------------------------------------------------- +version - shows version and build of the API, along with the date/time + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?function=version + +Example responses: +VERSION: 2.0.5-4|BUILD: 80910-0020|DATE: 2008-09-10 00:26:43|EPOCH: 1221020803 + + + + + +-------------------------------------------------------------------------------- +sounds_list - outputs a list of audio files from the audio store + +NOTE: api user for this function must have user_level set to 7 or higher + +OPTIONAL FIELDS- +format - format of the output(tab, link, selectframe) +stage - how to sort the output(date, size, name) +comments - name of the field to populate + + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=sounds_list&format=selectframe&comments=fieldname&stage=date + +Example responses: + + +ERROR: sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST + +ERROR: sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE + + + + + +-------------------------------------------------------------------------------- +moh_list - outputs a list of music on hold classes in the system + +NOTE: api user for this function must have user_level set to 7 or higher + +OPTIONAL FIELDS- +format - format of the output(tab, link, selectframe) +comments - name of the field to populate + + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=moh_list&format=selectframe&comments=fieldname&stage=date + +Example responses: + + +ERROR: moh_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST + +ERROR: moh_list CENTRAL SOUND CONTROL IS NOT ACTIVE + + + + + +-------------------------------------------------------------------------------- +vm_list - outputs a list of voicemail boxes in the system + +NOTE: api user for this function must have user_level set to 7 or higher + +OPTIONAL FIELDS- +format - format of the output(tab, link, selectframe) +comments - name of the field to populate + + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=vm_list&format=selectframe&comments=fieldname&stage=date + +Example responses: + + +ERROR: vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST + +ERROR: vm_list CENTRAL SOUND CONTROL IS NOT ACTIVE + + + + + +-------------------------------------------------------------------------------- +blind_monitor - calls user-defined phone and places them in session as blind monitor + +NOTE: api user for this function must have user_level set to 7 or higher + +REQUIRED FIELDS- +phone_login - alpha-numeric, no spaces or special characters allowed +session_id - must be all numbers, 7 digits +server_ip - must be all numbers and dots, max 15 characters +source - description of what originated the API call (maximum 20 characters) +stage - MONITOR, BARGE or HIJACK, default is MONITOR + (HIJACK option is not currently functional) + + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=blind_monitor&phone_login=350a&session_id=8600051&server_ip=10.10.10.16&stage=MONITOR + +Example responses: +SUCCESS: blind_monitor HAS BEEN LAUNCHED - 350a|010*010*010*017*350|8600051 + +ERROR: blind_monitor INVALID PHONE LOGIN - 350q + +ERROR: blind_monitor INVALID SESSION ID - 8602051 + +ERROR: blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR - 6666|0 + +ERROR: NO FUNCTION SPECIFIED + + + + +-------------------------------------------------------------------------------- +agent_ingroup_info - shows in-group and outbound auto-dial info for logged-in agent + +REQUIRED FIELDS- +agent_user - 2-20 characters +source - description of what originated the API call (maximum 20 characters) + +SETTINGS FIELDS- +stage - info(show information only), change(show options to change), text(standard non-HTML output) + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?source=test&function=agent_ingroup_info&stage=change&user=6666&pass=1234&agent_user=1000 + +Example responses: +ERROR: agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO - 6666|0 +ERROR: agent_ingroup_info INVALID USER ID - 1255|6666 + + + + + + + +-------------------------------------------------------------------------------- +add_lead - adds a new lead to the vicidial_list table with several fields and options + +NOTE: api user for this function must have modify_leads set to 1 and user_level + must be set to 8 or higher + +REQUIRED FIELDS- +phone_number - must be all numbers, 6-16 digits +phone_code - must be all numbers, 1-4 digits, defaults to 1 if not set +list_id - must be all numbers, 3-12 digits, defaults to 999 if not set +source - description of what originated the API call (maximum 20 characters) + +SETTINGS FIELDS- +dnc_check - Y, N or AREACODE, default is N +campaign_dnc_check - Y, N or AREACODE, default is N +campaign_id - 2-8 Character campaign ID, required if using campaign_dnc_check +add_to_hopper - Y or N, default is N +hopper_priority - 99 to -99, the higher number the higher priority, default is 0 +hopper_local_call_time_check - Y or N, default is N. Validate the local call time before inserting lead in the hopper +duplicate_check - Check for duplicate records in the system, can select more than one (duplicate_check=DUPLIST-DUPTITLEALTPHONELIST) + If duplicate is found, will return error, the duplicate data and lead_id and list_id of existing record + Here are the duplicate_check options: + DUPLIST - check for duplicate phone_number in same list + DUPCAMP - check for duplicate phone_number in all lists for this list's campaign + DUPSYS - check for duplicate phone_number in entire system + DUPTITLEALTPHONELIST - check for duplicate title and alt_phone in same list + DUPTITLEALTPHONECAMP - check for duplicate title and alt_phone in all lists for this list's campaign + DUPTITLEALTPHONESYS - check for duplicate title and alt_phone in entire system + +(for fields with spaces in the values, you can replace the space with a plus + sign[address, city, first_name, etc...]) +OPTIONAL FIELDS- +vendor_lead_code - 1-20 characters +source_id - 1-50 characters +gmt_offset_now - overridden by auto-lookup of phone_code and area_code portion of phone number if applicable +title - 1-4 characters +first_name - 1-30 characters +middle_initial - 1 character +last_name - 1-30 characters +address1 - 1-100 characters +address2 - 1-100 characters +address3 - 1-100 characters +city - 1-50 characters +state - 2 characters +province - 1-50 characters +postal_code - 1-10 characters +country_code - 3 characters +gender - U, M, F (Undefined, Male, Female) - defaults to 'U' +date_of_birth - YYYY-MM-DD +alt_phone - 1-12 characters +email - 1-70 characters +security_phrase - 1-100 characters +comments - 1-255 characters +multi_alt_phones - 5-1024 characters (see examples for more info) +rank - 1-5 digits +owner - 1-20 characters (user ID, Territory or user group) + + +Multi-ALT-Phones format: + +7275551212_1_work!7275551213_1_sister+house!1234567890_1_neighbor + +The multi-alt-phones field is formatted as a field of phone-number/phone-code/phone-note set of data(phone code and alt_note are both optional and the phone code can be overridden by the force phone code flag). The record delimiter is an exclamation point with the optional phone code and note delimited within the record by an underscore character _. + + +Example URL strings for API calls: +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=add_lead&phone_number=7275551111 + +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=add_lead&phone_number=7275551212&phone_code=1&list_id=999&dnc_check=N&first_name=Bob&last_name=Wilson + +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=add_lead&phone_number=7275551111&phone_code=1&list_id=999&dnc_check=N&first_name=Bob&last_name=Wilson&add_to_hopper=Y&hopper_local_call_time_check=Y + +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=add_lead&phone_number=7275551111&phone_code=1&list_id=999&dnc_check=N&campaign_dnc_check=Y&campaign_id=TESTCAMP&first_name=Bob&last_name=Wilson&address1=1234+Main+St.&city=Chicago+Heights&state=IL&add_to_hopper=Y&hopper_local_call_time_check=Y&multi_alt_phones=7275551212_1_work!7275551213_1_sister+house!1234567890_1_neighbor + +http://server/vicidial/non_agent_api.php?source=test&user=6666&pass=1234&function=add_lead&phone_number=7275551212&phone_code=1&list_id=999&dnc_check=N&first_name=Bob&last_name=Wilson&duplicate_check=DUPLIST-DUPTITLEALTPHONELIST + + +Example responses: +SUCCESS: add_lead LEAD HAS BEEN ADDED - 7275551111|6666|999|193715|-4 +NOTICE: add_lead ADDED TO HOPPER - 7275551111|6666|193715|1677922 + +SUCCESS: add_lead LEAD HAS BEEN ADDED - 7275551111|6666|999|193716|-4 +NOTICE: add_lead MULTI-ALT-PHONE NUMBERS LOADED - 3|6666|193716 +NOTICE: add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME - 7275551111|6666|193716|-4|0 + +ERROR: add_lead INVALID PHONE NUMBER - 72755|6666 + +ERROR: add_lead USER DOES NOT HAVE PERMISSION TO ADD LEADS TO THE SYSTEM - 6666|0 + +ERROR: NO FUNCTION SPECIFIED + +ERROR: add_lead DUPLICATE PHONE NUMBER IN LIST - 7275551111|101|8765444 +ERROR: add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS - 7275551111|101|8765444|101 +ERROR: add_lead DUPLICATE PHONE NUMBER IN SYSTEM - 7275551111|101|8765444|101 +ERROR: add_lead DUPLICATE TITLE ALT_PHONE IN LIST - 1234|7275551111|101|8765444 +ERROR: add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS - 1234|7275551111|101|8765444|101 +ERROR: add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM - 1234|7275551111|101|8765444|101 diff --git a/agc_2-X/branches/agc_2.2.0/docs/OUTBOUND_LIST_ORDERING.txt b/agc_2-X/branches/agc_2.2.0/docs/OUTBOUND_LIST_ORDERING.txt new file mode 100644 index 00000000..4c74307d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/OUTBOUND_LIST_ORDERING.txt @@ -0,0 +1,48 @@ +OUTBOUND LIST ORDERING AND MIXING 2007-05-16 + +** THIS NEW OPTIONAL LIST ORDERING FEATURE IS PLANNED FOR THE 2.0.4 RELEASE ** + +This document will outline the new optional feature within VICIDIAL outbound dialing that will allow for both list ordering and mixing while dialing outbound vicidial campaigns. + + + +The Agent Side: +Nothing changes + + + +The Admin Side: +The lists used in a VICIDIAL campaign will be moved to a different tab in the Campaign Modification screen to allow for easier quick modification of the lists used and their order and mixing percentage. Also, a new field will be added to vicidial_campaigns table and a new vicidial_campaigns_list_mix table will be created to store the information for list ordering and mixing: + +ALTER TABLE vicidial_campaigns ADD list_order_mix VARCHAR(20) default 'DISABLED'; + + CREATE TABLE vicidial_campaigns_list_mix ( +vcl_id VARCHAR(20) PRIMARY KEY NOT NULL, +vcl_name VARCHAR(50), +campaign_id VARCHAR(8), +list_mix_container TEXT, +mix_method ENUM('EVEN_MIX','IN_ORDER','RANDOM') default 'EVEN_MIX', +status ENUM('ACTIVE','INACTIVE') default 'INACTIVE', +index (campaign_id) +); + +The list_mix field would be a container for the following parameters: +list_id|order|percent|statuses|:list_id|order|percent|statuses|:... +for example: +101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -| +The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated. + +campaign hopper_level must be at least 100 when in list-mix-mode + +No more than 10 lists can be in a single list mix record + +List orders with "2nd NEW, 3rd NEW and 4th NEW" are ignored, and only DOWN COUNT is used + + + +The Server Side: +The AST_VDhopper.pl script will need to be changed to use the new order mix to grab and order the leads for a campaign. This will involve checking if the list_order_mix is set to DISABLED or not, and if it is then it will proceed as it currently does. If it does not, it will grab the vicidial_campaigns_list_mix record that matches the list_order_mix and parse through it's lists. Then it will do a SELECT for each of the lists and mix all of the leads together using the proper mix_method. + + + +MORE TO COME... diff --git a/agc_2-X/branches/agc_2.2.0/docs/PERFORMANCE_TESTING.txt b/agc_2-X/branches/agc_2.2.0/docs/PERFORMANCE_TESTING.txt new file mode 100644 index 00000000..56da3108 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/PERFORMANCE_TESTING.txt @@ -0,0 +1,136 @@ +PERFORMANCE TESTING OF A VICIDIAL SERVER 2008-03-31 + + +OVERVIEW: + +This document goes over the setup of a VICIDIAL/Asterisk server that you are testing, and the control Asterisk server that will be taking the calls from the serer being tested. + +It is very difficult to realistically performance test a VICIDIAL server not in production because of the random-ness of call center operations. + +How this process works is that multiple remote agents are activated and calls are placed from the server being tested to a control server that will take those calls and send various signals and play various audio files so that the randomness of outbound dialing is simulated. + +The test server and the control server(s) need to be connected through either crossover T1 cables, SIP trunks or IAX trunks. + +It is important that there are no live VICIDIAL agents or calls happening on this server when performance testing is enabled. + +If you want pretty server performance graphics you need to make sure the server record has performance logging enabled. + + NOTE: as of release 2.0.4.1 Performance testing extensions are loaded in the default extensions.conf and the "loop" IAX trunk is enabled for the server to send calls back to itself, making performance testing on a default install of VICIDIAL much easier. + +EXAMPLE TESTING SCENARIO: + +For this test below we will be placing calls out over crossover T1 cables to other Asterisk servers and we will be attempting to simulate agents logging in over SIP phones to meetme rooms on the test server. The agent connections will actually be a six(6) hour loop of on-hold-music to simulate voice(the conf.gsm file). This will be on one of the control servers so simulate true SIP phone agent connections to meetme rooms on the test server. + +When setting up the remote agents record we will use 999999999999(twelve nines) as the dialplan number. This is a special flag in the remote agents handling script that will give a different session_id to each remote agent and will place a call from each of those sessions(meetme rooms) to the 999999999999 extension that should be setup to call the on-hold-music on the control server over SIP trunk. + +We will also be using a special list of phone numbers to call so that we are sure that we do not place any real phone calls. The special list is available in the extras directory and is called: performance_test_leads.txt + +In the control server you will need the following in your extensions.conf: + +exten => _999XXXXXX1,1,Answer +exten => _999XXXXXX1,2,Wait(2) +exten => _999XXXXXX1,3,Playback(beep) +exten => _999XXXXXX1,4,Hangup + +exten => _999XXXX112,1,Wait(8) +exten => _999XXXX112,2,Answer +exten => _999XXXX112,3,Playback(demo-instruct) +exten => _999XXXX112,4,Playback(demo-instruct) +exten => _999XXXX112,5,Hangup + +exten => _999XXXXXX2,1,Wait(8) +exten => _999XXXXXX2,2,Answer +exten => _999XXXXXX2,3,Playback(demo-instruct) +exten => _999XXXXXX2,4,Hangup + +exten => _999XXXXXX3,1,SetVar(PRI_CAUSE=1) +exten => _999XXXXXX3,2,Hangup + +exten => _999XXXXXX4,1,SetVar(PRI_CAUSE=27) +exten => _999XXXXXX4,2,Hangup + +exten => _999XXXXXX5,1,Wait(60) +exten => _999XXXXXX5,2,Hangup + +exten => _999XXXXXX6,1,Wait(10) +exten => _999XXXXXX6,2,Answer +exten => _999XXXXXX6,3,Playback(demo-instruct) +exten => _999XXXXXX6,4,Hangup + +exten => _999XXXXXX7,1,Wait(12) +exten => _999XXXXXX7,2,Answer +exten => _999XXXXXX7,3,Playback(demo-enterkeywords) +exten => _999XXXXXX7,4,Hangup + +exten => _999XXXXXX8,1,SetVar(PRI_CAUSE=17) +exten => _999XXXXXX8,2,Hangup + +exten => _999XXXXXX9,1,Wait(6) +exten => _999XXXXXX9,2,Answer +exten => _999XXXXXX9,3,Playback(demo-abouttotry) +exten => _999XXXXXX9,4,Hangup + +exten => _999XXXXXX0,1,Wait(5) +exten => _999XXXXXX0,2,Answer +exten => _999XXXXXX0,3,Playback(vm-goodbye) +exten => _999XXXXXX0,4,Hangup + +exten => 99999999999,1,Answer +exten => 99999999999,2,Playback(conf) +exten => 99999999999,3,Playback(conf) +exten => 99999999999,4,Playback(conf) +exten => 99999999999,5,Playback(conf) +exten => 99999999999,6,Playback(conf) +exten => 99999999999,7,Playback(conf) +exten => 99999999999,8,Playback(conf) +exten => 99999999999,9,Playback(conf) +exten => 99999999999,10,Playback(conf) +exten => 99999999999,11,Playback(conf) +exten => 99999999999,12,Playback(conf) +exten => 99999999999,13,Playback(conf) +exten => 99999999999,14,Hangup + + +In the test server you will need the following in your extensions.conf: + +[globals] +TESTTRUNK = Zap/g2 +TESTSIPTRUNK = SIP/VICItest:test@10.10.10.16:5060 + +[default] +exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91999NXXXXXX,2,Dial(${TESTTRUNK}/${EXTEN:2},,tTo) +exten => _91999NXXXXXX,3,Hangup + +exten => 999999999999,1,Answer +exten => 999999999999,2,Dial(${TESTSIPTRUNK}/${EXTEN:1},,tTo) +exten => 999999999999,2,Hangup + + +In the sip.conf file of the test server: +register => ASTtest2:test@10.10.10.16:5060 + +[VICItest] +disallow=all +allow=ulaw +type=friend +username=VICItest +secret=test +host=dynamic +dtmfmode=inband +defaultip=10.10.10.16 +qualify=1000 + + +In the sip.conf file of the control server: + +[VICItest] +disallow=all +allow=ulaw +type=friend +username=VICItest +secret=test +host=dynamic +dtmfmode=inband +defaultip=10.10.10.16 +qualify=1000 diff --git a/agc_2-X/branches/agc_2.2.0/docs/PREDICTIVE.txt b/agc_2-X/branches/agc_2.2.0/docs/PREDICTIVE.txt new file mode 100644 index 00000000..6eadcb23 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/PREDICTIVE.txt @@ -0,0 +1,132 @@ +PREDICTIVE Summary and Overview 2006-08-29 + +*** PREDICTIVE OUTBOUND CALLING FUNCTIONALITY WAS ADDED IN THE 2.0.1 RELEASE *** + +This will outline the methods used to predictively dial outbound calling +campaigns in VICIDIAL with the ADAPT dial methods. This is a description of the +first versions of the Predictive/Adaptive dialing algorithms used in VICIDIAL. +As the need arises we will create more versions of different algorithms in the +future. + + +The gathering of data to analyze: + +In order to properly analyze calling trends and adapt to the current list that +is being called we need to first gather a lot of data to analyze. + +The first set of data we want to gather is the recent queue and agent statistics +for each campaign. This information is gathered by the AST_VDauto_dial.pl script +as it runs through each loop every 2.5-3.0 seconds. This data is used only for +Blended CLOSER campaigns doing Predictive dialing and for the timeonVDADall +realtime campaign reports. The data gathered in this script are all averages of +the last 15 and 60 seconds of agent and queue activity: + 1. The average number of agents that are logged into the campaign across +one minute + 2. The average number of calls waiting to be transferred to an agent +across one minute + 3. The average number of agents waiting for calls across one minute + 4. The difference between the waiting calls and ready agents across one +minute + This number if positive means that on average more agents were +waiting for calls than calls waiting for agents in the last +minute for that campaign. + +The second set of data to gather is dropped call information across several +intervals as well as faster agent and queue call statistics. This information +will be gathered by the actual AST_VDadapt.pl script that will also be the +script actually changing the dial level when the predictive/adaptive dial method +is activated. +Once a second this script will gather: + 1. The average number of agents that are logged into the campaign for +the last 15 seconds + 2. The average number of calls waiting to be transferred to an agent for +the last 15 seconds + 3. The average number of agents waiting for calls for the last 15 +seconds + 4. The difference between the waiting calls and ready agents for the +last 15 seconds +Once every 15 seconds this script will: + 1. Calculate the average dial level differential for the last 15 seconds + 2. Apply the campaign's adaptive_dl_diff_target + 3. Apply the campaign's adaptive_intensity setting + 4. Calculate the new desired dial_level + 5. Check the drop rate cap method(HARD_LIMIT, TAPERED, AVERAGE) + 6. If drop rate is over the limit the proper equation is used to figure +out new dial_level difference. + 7. Change the dial level for the campaign to the new suggested dial +level +Once a minute this script will gather: + 1. Total drops and total calls for the campaign since midnight + 2. Total drops and total calls for the campaign in the past hour + 3. Total drops and total calls for the campaign in the past half hour + 4. Total drops and total calls for the campaign in the past five minutes + 5. Total drops and total calls for the campaign in the past one minute + Also, the drop percentage is calculated and stored in the +vicidial_campaign_stats table. + + +The settings in the campaign detail screen: + +Dial Method - This field is the way to define how dialing is to take place. If +MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is +changed. If RATIO then the normal dialing a number of lines for Active agents. +ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then +not allow aggressive dialing once the drop limit is reached until the percentage +goes down again. ADAPT_TAPERED allows for running over the dropped percentage in +the first half of the shift(as defined by call_time selected for campaign) and +gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an +average or the dropped percentage not imposing hard limits as aggressively as +the other two methods. + +Auto Dial Level - 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. + +Available Only Tally - This field if set to Y will leave out INCALL and QUEUE +status agents when calculating the number of calls to dial when not in MANUAL +dial mode. Default is N. + +Drop Percentage Limit - This field is where you set the limit of the percentage +of dropped calls you would like while using an adaptive-predictive dial method, +not MANUAL or RATIO. Dropped calls percentage is measured out of the total +number of Answered calls for the campaign for the day. + +Maximum Adapt Dial Level - This field is where you set the limit of the limit to +the numbr of lines you would like dialed per agent while using an +adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher +than the Auto Dial Level if your hardware will support it. Value must be a +positive number greater than one and can have decimal places Default 3.0. + +Latest Server Time - This field is only used by the ADAPT_TAPERED dial method. +You should enter in the hour and minute that you will stop calling on this +campaign, 2100 would mean that you will stop dialing this campaign at 9PM server +time. This allows the Tapered algorithm to decide how aggressively to dial by +how long you have until you will be finished calling. + +Adapt Intensity Modifier - This field is used to adjust the predictive intensity +either higher or lower. The higher a positive number you select, the greater the +dialer will increase the call pacing when it goes up and the slower the dialer +will decrease the call pacing when it goes down. The lower the negative number +you select here, the slower the dialer will increase the call pacing and the +faster the dialer will lower the call pacing when it goes down. Default is 0. +This field is not used by the MANUAL or RATIO dial methods. + +Dial Level Difference Target - This field is used to define whether you want to +target having a specific number of agents waiting for calls or calls waiting for +agents. For example if you would always like to have on average one agent free +to take calls immediately you would set this to -1, if you would like to target +always having one call on hold waiting for an agent you would set this to 1. +Default is 0. This field is not used by the MANUAL or RATIO dial methods. + + + +To use adaptive dialing you must have the ADMIN keepaliveAST_VDadapt.pl script +in your crontab running every minute: +### keepalive script for VICIDIAL predictive script +* * * * * /usr/share/astguiclient/ADMIN_keepalive_AST_VDadapt.pl + + +NOTE: With Predictive dialing, the dial_level will never drop below 1.0. + diff --git a/agc_2-X/branches/agc_2.2.0/docs/QC_PROCESS.txt b/agc_2-X/branches/agc_2.2.0/docs/QC_PROCESS.txt new file mode 100644 index 00000000..f53f14ef --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/QC_PROCESS.txt @@ -0,0 +1,256 @@ +QC(Quality Control) process flow 2008-01-03 + +** THIS QC FUNCTIONALITY PROSESS IS PLANNED FOR THE 2.0.5 RELEASE AND IS CURRENTLY IN DEVELOPMENT ** + +This will outline the process I have thought through for adding a Quality Assurance(QA) or Quality Control(QC) process to the VICIDIAL system. As the needs have changed for sponsor client and VICIDIAL has evolved since this functionality was first put into the planning stages, there have been several changes to how the QC process is going to be built. The objective is to add the following QC features to make VICIDIAL a more well-rounded product: +- ability to define which statuses are to be able to be QCd per campaign and inbound group(queue) +- ability to give agents permission to QC records for their allowable campaigns/inbound groups +- ability to log all access and changes to QCd records +- creation of some basic reports on QC activity + + + +The back-end process will work like this: +- ADMIN_keepalive_ALL.pl script will look for the 'Q' in the keepalive definition in /etc/astguiclient.conf file. If it is set, it will trigger a script (QC_gather_records.pl) to gather the QC records every five minutes(with a 15 second delay) since the last QC gathering as defined in the system_settings table qc_last_pull_time field(which is populated with four-hours-before the START time of the last QC-pull run to make sure to catch all potential long calls that may have ended). The time interval for this might be made configurable. +- There will also be an optional method of pulling QC records available to the QC managers that enables them to specify a date range to pull and insert records +- Selected records from the vicidial_list table (keyed on the the vicidial_log and vicidial_closer_log tables) will be taken and inserted into the vicidial_qc_list table. +- QC agents are then able to run their process starting with the earliest records for their selected campaign/inbound groups +- After QC agents have PASSed, FINISHed and COMMITted the QC records, then they can be exported + + + +Agent-side scripts: + - qc.php - the screen that agents log in to + - qc_query.php - the data processing script that handles most of the AJAX queries and IFRAME displays from qc.php + + +The QC agent will login to the new qc.php screen within the agc web directory. They will then have a screen very similar to the vicidial.php login screen(but in a different color) that will have a user/pass to fill in. Then when they login the QC agents with level of 1-3 will see a green screen similar to the vicidial.php inbound(CLOSER-type) screen that will show them their allowable qc inbound-groups and campaigns. The agent will then choose which in-groups and campaigns that they want to QC the records for and then they will submit and they will be logged-in to the QC system. QC agents with a qc_level of 4-5 can select to review first level reccords, review all 2nd level records, review only 2nd level changed-status or review 2nd level same-status records. QC agents with 6-7 qc_level can also have the option of entering a management screen showing more information on the QC system including committing QC records and links to QC reports. + +Upon login, they will be able to see the count of QC-able records and they can click on a link to bring up the next record to be QCd. + +Upon clicking on a link, the qc.php application will insert a record into the vicidial_qc_log to keep track of changes and other information on the qc record session. The customer and original call data will remain unaltered in the vicidial_qc_list table. + +The SCRIPTS tab and web form will both function exactly as they do in the vicidial.php application, with the exception that there will be added qc_web_form_address and qc_script options for both campaigns and inbound groups. There will also be an option to have any of these launched upon a new record appearing on the QC agent's screen. + +The qc.php user interface will be using AJAX as a method to bring up records and keep track of QC-agent activity and performance. + +An optional element is for a small audio frame be opened with each new customer record that will have an audio recording of the call that the QC agent can listen to. At this point in time, the best candidate for this is the Flourish Flash-based application(http://flourishplayer.sourceforge.net/) It is open source under a BSD-like license and is based on Adobe Flash, which currently seems to be much more lightweight and provides a much lower barrier to entry on most platforms than JAVA does. + + + +Each qc_user_level will have different permissions for the qc system: +1- modify nothing +2- modify nothing but status +3- modify everything +4- can check records of other QC agents +5- can view stats on qc system and unlock locked records from first level QC agents +6- can view finished and non-committed records and alter them and unlock locked records from first and second level QC agents +7- Manager level (can do anything including delete QC records) + +The the QC agent roles: +FIRST - first level review +SECOND_ALL - second level review all records +SECOND_CHANGED - second level review only changed-status records +SECOND_PASSED - second level review only unchanged-status records +THIRD - third level review and commit/clear +MANAGER - manager level actions + +The qc_stage is a record status within QC that tells what is going on with the record: +NEW - record has never been QCd +LOCK_1 - a QC agent is reviewing the record +PASS - QC agent has passed the record +LOCK_2 - a QC agent is reviewing the record for possible finishing +FINISH - record is ready to be processed +COMMIT - QC record is committed to the system and cannot be modified by anyone +DEAD - QC record is old and present for logs only, newer record has taken it's place + + +The Database Changes: +!!! IMPORTANT !!! +THESE ARE FOR REFERENCE ONLY, DO NOT RUN THEM!!! + +# This table contains the live session information for qc_agents + CREATE TABLE qc_agent_sessions ( +qc_session_id INT(9) UNSIGNED PRIMARY KEY NOT NULL, +user VARCHAR(20), +qc_user_level INT(2) default '0', +qc_role VARCHAR(20), +status ENUM('READY','INQC','PAUSED') default 'PAUSED', +qc_id INT(9) UNSIGNED NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +selected_campaigns_groups TEXT, +qc_records_today SMALLINT(5) UNSIGNED default '0', +login_time DATETIME, +last_action_time DATETIME, +index (user), +index (last_action_time) +); + +# This table contains the stats information for qc_agents for today + CREATE TABLE qc_agent_stats ( +user VARCHAR(20), +campaign_group_id VARCHAR(20), +qc_records_today SMALLINT(5) UNSIGNED default '0', +last_record_time DATETIME, +last_record_finish DATETIME, +index (user), +index (campaign_group_id) +); + +# This table contains the log information for qc_agent logins +CREATE TABLE vicidial_user_qc_log ( +user VARCHAR(20), +event_date DATETIME, +selected_campaigns_groups TEXT, +index (user), +index (event_date) +); + +# For ability to restrict statuses by user_level per campaign/in-group + CREATE TABLE qc_allowed_statuses ( +status VARCHAR(6) PRIMARY KEY NOT NULL, +qc_user_level INT(2) default '0', +campaign_group_id VARCHAR(20) +); + +# This table contains the original lead and log information before changes + CREATE TABLE vicidial_qc_list ( +qc_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +qc_import_date DATETIME, +qc_stage VARCHAR(6) default 'NEW', +call_date DATETIME, +vicidial_id VARCHAR(20) UNIQUE NOT NULL, +campaign_group_id VARCHAR(20), +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +length_in_sec SMALLINT(5) UNSIGNED default '0', +status VARCHAR(6), +call_type VARCHAR(20), +term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','NONE') default 'NONE', +modify_date TIMESTAMP, +qc_user VARCHAR(20), +user VARCHAR(20), +user_group VARCHAR(20), +fronter VARCHAR(20), +vendor_lead_code VARCHAR(20), +source_id VARCHAR(50), +phone_code VARCHAR(10), +phone_number VARCHAR(12), +title VARCHAR(4), +first_name VARCHAR(30), +middle_initial VARCHAR(1), +last_name VARCHAR(30), +address1 VARCHAR(100), +address2 VARCHAR(100), +address3 VARCHAR(100), +city VARCHAR(50), +state VARCHAR(2), +province VARCHAR(50), +postal_code VARCHAR(10), +country_code VARCHAR(3), +gender ENUM('M','F','U') default 'U', +date_of_birth DATE, +alt_phone VARCHAR(12), +email VARCHAR(70), +security_phrase VARCHAR(100), +comments VARCHAR(255), +index (vicidial_id), +index (lead_id), +index (phone_number) +); + +# This table contains the updated QC records + CREATE TABLE vicidial_qc_log ( +qc_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +qc_id INT(9) UNSIGNED NOT NULL, +qc_stage VARCHAR(6), +modify_date TIMESTAMP, +qc_user VARCHAR(20), +qc_status VARCHAR(6), +qc_code VARCHAR(8), +qc_date DATETIME, +qc_length_in_sec SMALLINT(5) UNSIGNED default '0', +qc_comments TEXT, +qc_altered ENUM('0','1') default '0', +status VARCHAR(6), +vendor_lead_code VARCHAR(20), +phone_code VARCHAR(10), +phone_number VARCHAR(12), +title VARCHAR(4), +first_name VARCHAR(30), +middle_initial VARCHAR(1), +last_name VARCHAR(30), +address1 VARCHAR(100), +address2 VARCHAR(100), +address3 VARCHAR(100), +city VARCHAR(50), +state VARCHAR(2), +province VARCHAR(50), +postal_code VARCHAR(10), +country_code VARCHAR(3), +gender ENUM('M','F','U') default 'U', +date_of_birth DATE, +alt_phone VARCHAR(12), +email VARCHAR(70), +security_phrase VARCHAR(100), +comments VARCHAR(255), +index (qc_id), +index (phone_number), +index (qc_stage) +); + + + + + + + + + +# Changes committed to upgrade sql file: + +# For the inbound groups table, some fields will need to be added to the vicidial_campaigns table: +ALTER TABLE vicidial_inbound_groups ADD qc_enabled ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD qc_statuses TEXT; +ALTER TABLE vicidial_inbound_groups ADD qc_shift_id VARCHAR(20) default '24HRMIDNIGHT'; +ALTER TABLE vicidial_inbound_groups ADD qc_get_record_launch ENUM('NONE','SCRIPT','WEBFORM','QCSCRIPT','QCWEBFORM') default 'NONE'; +ALTER TABLE vicidial_inbound_groups ADD qc_show_recording ENUM('Y','N') default 'Y'; +ALTER TABLE vicidial_inbound_groups ADD qc_web_form_address VARCHAR(255); +ALTER TABLE vicidial_inbound_groups ADD qc_script VARCHAR(10); + +# Alter some earlier defined fields and populate with default values +ALTER TABLE vicidial_campaigns CHANGE campaign_shift_start_time qc_shift_id VARCHAR(20) default '24HRMIDNIGHT'; +ALTER TABLE vicidial_campaigns CHANGE campaign_shift_length qc_get_record_launch ENUM('NONE','SCRIPT','WEBFORM','QCSCRIPT','QCWEBFORM') default 'NONE'; +ALTER TABLE vicidial_campaigns CHANGE campaign_day_start_time qc_show_recording ENUM('Y','N') default 'Y'; +UPDATE vicidial_campaigns SET qc_shift_id='24HRMIDNIGHT'; +UPDATE vicidial_campaigns SET qc_get_record_launch='NONE'; +UPDATE vicidial_campaigns SET qc_show_recording='Y'; + +ALTER TABLE system_settings ADD qc_last_pull_time DATETIME; + +# qc codes to be used for statistics + CREATE TABLE vicidial_qc_codes ( +code VARCHAR(8) PRIMARY KEY NOT NULL, +code_name VARCHAR(30) +); + +# For the campaigns table, some fields will need to be added to the vicidial_campaigns table: +ALTER TABLE vicidial_campaigns ADD qc_enabled ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD qc_statuses TEXT; +ALTER TABLE vicidial_campaigns ADD qc_lists TEXT; +ALTER TABLE vicidial_campaigns ADD campaign_shift_start_time VARCHAR(4) default '0900'; +ALTER TABLE vicidial_campaigns ADD campaign_shift_length VARCHAR(5) default '16:00'; +ALTER TABLE vicidial_campaigns ADD campaign_day_start_time VARCHAR(4) default '0100'; +ALTER TABLE vicidial_campaigns ADD qc_web_form_address VARCHAR(255); +ALTER TABLE vicidial_campaigns ADD qc_script VARCHAR(10); + +# For the in-groups/campaigns QC permissions, some fields will need to be added to the vicidial_user_groups table: +ALTER TABLE vicidial_user_groups ADD qc_allowed_campaigns TEXT; +ALTER TABLE vicidial_user_groups ADD qc_allowed_inbound_groups TEXT; + +# For the user QC permissions, some fields will need to be added to the vicidial_users table: +ALTER TABLE vicidial_users ADD qc_enabled ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD qc_user_level INT(2) default '1'; +ALTER TABLE vicidial_users ADD qc_pass ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD qc_finish ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD qc_commit ENUM('1','0') default '0'; diff --git a/agc_2-X/branches/agc_2.2.0/docs/QUEUEMETRICS.txt b/agc_2-X/branches/agc_2.2.0/docs/QUEUEMETRICS.txt new file mode 100644 index 00000000..7cca95c3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/QUEUEMETRICS.txt @@ -0,0 +1,431 @@ +VICIDIAL and QueueMetrics + +queue_log logging was added to VICIDIAL outbound auto calling as an option in the 2.0.3 release, and for inbound in the 2.0.4 release. + +This document goes over the features and needed changes made to VICIDIAL to enable it to insert activity records into the queue_log and other tables in MySQL that QueueMetrics uses for it's statistical analysis and reports. This document should not be taken as a HOWTO for proper installation steps to get QueueMetrics working. + +QueueMetrics is a closed-source, commercial product written by Loway Research in Italy/Switzerland. The writers of VICIDIAL do not support or warranty QueueMetrics or it's functionality with VICIDIAL in any way. + +This feature was added to the package at the request of several users of VICIDIAL and was achieved with some help from the creators of QueueMetrics(although all VICIDIAL code changes were done entirely by Matt Florell). + +This feature is functional on outbound manual dialing, auto dialing and inbound call handling as of 2008-06-30(SVN trunk 2.0.5). + +Another very important issue to note is that just like with VICIDIAL on multi-server systems, if QueueMetrics data is being generated on a multi-server system the data will be corrupted if all of the servers are not on the same time. I strongly recommend getting ntp working properly on all servers in a VICIDIAL or QueueMetrics server cluster. + +To be able to view stats for inbound and outbound calls properly you need to add each one individually in QueueMetrics "queues" and properly set whether each one is inbound or outbound. After that you can create a combined queue-alias with all of the campaigns and in-groups in it and it will tell you correctly the number of inbound and outbound calls. + +As of 2008-10-30, several validation and correction functions were added to the AST_cleanup_agent_log.pl script that is supposed to run every hour. These functions should clean up any queue_log errors that appear and cause QueueMetrics to display incorrect call totals. + + +As of 2009-05-30, live montoring and playback of archived recordings through the QueueMetrics interface was added. To use this you must have the audio.server, audio.liveserver and default.audioRpcServer variables set properly in the configuration.properties file as specified toward the bottom of this document. The live monitoring asks for an extension to send the call to, this is an extension dialed on the active voicemail server as defined in the system settings. If there is no active voicemail defined then the live monitor will place the call to the extension on the server that the agent is on. + +As of 2009-11-23, DID and IVR logging through QueueMetrics queue_log is now part of the code. DID entries for the queue will be counted only for calls that actually enter the queue or are sent to an agent through a ViciDial in-group. For IVR entries, only the last Call Menu will be counted in the QueueMetrics reports. + + +Entries you should have in your crontab on one server: +### fix the vicidial_agent_log once every hour and the full day run at night +33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl +50 0 * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --last-24hours +*/5 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --only-qm-live-call-check +1 1 * * * /usr/share/astguiclient/Vtiger_optimize_all_tables.pl --quiet + + +Here is a short summary of the needed steps to install QueueMetrics on your system: + +NOTE: further down in this document are updated installation instructions and instructions for installing on OpenSuSE 11.1. + +First, get Sun Java SDK/JRE and install on your system. +NOTE: the GCJ java JRE available on most RedHat/Feroda/CentOS systems WILL NOT WORK + +download and install the Java jdk-1_5_0_11-linux-i586-rpm.bin from: +http://www.sun.com/software/communitysource/j2se/java2/index.xml + + +cd /usr/local +chmod 0777 jdk-1_5_0_11-linux-i586-rpm.bin +./jdk-1_5_0_11-linux-i586-rpm.bin +ls -l +rpm -i jdk-1_5_0_11-linux-i586.rpm +wget http://www.mirrorgeek.com/apache.org/tomcat/tomcat-5/v5.5.20/bin/apache-tomcat-5.5.20.tar.gz +gunzip apache-tomcat-5.5.20.tar.gz +tar xvf apache-tomcat-5.5.20.tar +ln -s apache-tomcat-5.5.20 tomcat +cd apache-tomcat-5.5.20 + +JAVA_HOME=/usr/java/jdk1.5.0_11/ +JAVA_OPTS="-Xms256M -Xmx512M" +JRE_HOME=/usr/java/jdk1.5.0_11/jre + +or + +JRE_HOME=/usr/java/jre1.6.0/ +JAVA_HOME=/usr/java/ +JAVA_OPTS="-Xms256M -Xmx512M" + +export JAVA_HOME +export JAVA_OPTS +export JRE_HOME +/usr/local/tomcat/bin/startup.sh + +At this point you should go here on your web browser to see if the tomcat installation went well: +http://ip-address:8080/ + +If it did, then you want to add the following lines to your /etc/rc.d/rc.local file so that tomcat will start up on boot: + JAVA_HOME=/usr/java/jdk1.5.0_11/ + JAVA_OPTS="-Xms256M -Xmx512M" + JRE_HOME=/usr/java/jdk1.5.0_11/jre + export JAVA_HOME + export JAVA_OPTS + export JRE_HOME + /usr/local/tomcat/bin/startup.sh + + + +cd /usr/local +*** download QueueMetrics and place it in /usr/local *** +gunzip QueueMetrics-1.1.tar.gz +tar xvf QueueMetrics-1.1.tar +mv queuemetrics-1.1 /usr/local/tomcat/webapps/qm +cd /usr/local/tomcat/webapps/qm/WEB_INF +wget http://mysql.mirrors.pair.com/Downloads/Connector-J/mysql-connector-java-3.0.10-stable.tar.gz +gunzip mysql-connector-java-3.0.10-stable.tar.gz +tar xvf mysql-connector-java-3.0.10-stable.tar +cp mysql-connector-java-3.0.10-stable/mysql-connector-java-3.0.10-stable-bin.jar ./lib/ + +At this point you should go here on your web browser to see if the tomcat installation went well: +http://ip-address:8080/qm + +If you see a QueueMetrics page(probably with many errors), then installation went well up to this point. + +You now need to add the database tables, configure the web.xml file and configuration.properties file for your system. + + + + + +Now to the database side of things. +First, give permissions to your user: + +GRANT ALL PRIVILEGES ON queuemetrics.* TO qm@'localhost' IDENTIFIED BY 'qm'; +GRANT ALL PRIVILEGES ON queuemetrics.* TO qm@'%' IDENTIFIED BY 'qm'; + +Second, the queue_log table: + +mysql> describe queue_log; ++------------------+------------------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++------------------+------------------+------+-----+---------+-------+ +| partition | char(20) | NO | MUL | NULL | | +| time_id | int(11) unsigned | NO | MUL | 0 | | +| call_id | char(30) | NO | MUL | NULL | | +| queue | char(30) | NO | | NULL | | +| agent | char(30) | NO | | NULL | | +| verb | char(30) | NO | | NULL | | +| data1 | char(30) | NO | | NULL | | +| data2 | char(30) | NO | | NULL | | +| data3 | char(30) | NO | | NULL | | +| data4 | char(30) | NO | | NULL | | +| serverid | varchar(10) | NO | | 0 | | +| fileid | int(10) unsigned | NO | | NULL | | +| recordid | int(10) unsigned | NO | | NULL | | +| unique_row_count | int(11) | NO | | NULL | | ++------------------+------------------+------+-----+---------+-------+ + +Use the following query to create a queue_log table in your asterisk database +to gather queue_log entries without doing a full QueueMetrics install: + + CREATE TABLE queue_log ( +partition VARCHAR(20) NOT NULL, +time_id INT(11) UNSIGNED NOT NULL default '0', +call_id VARCHAR(30) NOT NULL, +queue VARCHAR(30) NOT NULL, +agent VARCHAR(30) NOT NULL, +verb VARCHAR(30) NOT NULL, +data1 VARCHAR(30) NOT NULL, +data2 VARCHAR(30) NOT NULL, +data3 VARCHAR(30) NOT NULL, +data4 VARCHAR(30) NOT NULL, +serverid VARCHAR(10) NOT NULL default '0', +fileid INT(10) UNSIGNED, +recordid INT(10) UNSIGNED, +unique_row_count INT(10) UNSIGNED NOT NULL, +index(time_id), +index(call_id) + ); + + + +# NOTE: by default QueueMetrics does not index the time_id and call_id field. We strongly recommend you add these indexes: + +CREATE INDEX time_id on queue_log(time_id); +CREATE INDEX call_id on queue_log(call_id); + + + + +partition: set to "P01" for the first partition, should match up with configuration.properties presets + +time_id: epoch, unixtime (seconds since 1970-01-01 00:00:00) [1170345603] + +call_id: Asterisk unique prepended with server_id field [1-1170345497.30369] + For VICIDIAL we will use the CallerIDname of the call to + +queue: the queue that call came into (we will use the campaign_id here) + +agent: we will use the user ID prepended by "agent/" [agent/6666] + +verbs: + +system actions - used by the AST_VDadapt.pl script when starting up + QUEUESTART + +agent actions - used by vicidial.php, vdc_db_query.php and AST_VDremote_agents.pl + AGENTLOGIN(channel) + AGENTLOGOFF(channel|logintime) + PAUSEALL + PAUSE + UNPAUSEALL + UNPAUSE + PAUSEREASON + +call actions before going to agent - used by agi-VDAD_ALL_inbound/outbound scripts + ENTERQUEUE(url|callerid) + CALLOUTBOUND(url|callerid) + CONNECT(holdtime) + EXITWITHTIMEOUT(position) + EXITWITHKEY(key|position) + TRANSFER(extension|context|holdtime|calltime) + INFO([IVR or DID]|[context or DID]) + +call actions before going to agent - used by AST_VDauto_dial.pl + ABANDON(position|origposition|waittime) + +call actions after going to agent - used by vicidial.php, vdc_db_query.php and FastAGI_log.pl + COMPLETEAGENT(holdtime|calltime|origposition) + COMPLETECALLER(holdtime|calltime|origposition) + CALLSTATUS(status) + + +not used in vicidial - + EXITEMPTY(position|origposition|waittime) + AGENTDUMP + + + + +data1: call termination codes, DID, IVR context + +data2: callerID or number called(sometimes prepended by DNIS) [3101-9015556189] + NOTE: the queuemetrics_eq_prepend field allows you to specify what + vicidial_list field you would like to prefend to the phone number on + ENTERQUEUE/CALLOUTBOUND events + +data3: ?? + +data4: ?? + +serverid: number of the server the call came from [for VICIDIAL use the database system_settings.queuemetrics_log_id field] + + + + +### For documentation ONLY, these fields should already exist: +On the vicidial database side of things, we will add the following columns to the system_settings table: +enable_queuemetrics_logging ENUM('0','1') default '0', +queuemetrics_server_ip VARCHAR(15), +queuemetrics_dbname VARCHAR(50), +queuemetrics_login VARCHAR(50), +queuemetrics_pass VARCHAR(50), +queuemetrics_url VARCHAR(255), +queuemetrics_log_id VARCHAR(10) default 'VIC' +queuemetrics_eq_prepend VARCHAR(255) default 'NONE' + + + + + + + +Instructions for setting up the XML RPC recording lookup php script: + +Install PEAR XML_RPC libraries: +pear install XML_RPC-1.5.1 + + + + + +updated install instructions (2009-05-25): + + +wget http://www.mirrorgeek.com/apache.org/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz +gunzip apache-tomcat-6.0.18.tar.gz +tar xvf apache-tomcat-6.0.18.tar +ln -s apache-tomcat-6.0.18 tomcat +cd apache-tomcat-6.0.18 +/usr/local/tomcat/bin/startup.sh + +At this point you should go here on your web browser to see if the tomcat installation went well: +http://192.168.1.100:8080/ + +If it did, then you want to add the following lines to your /etc/rc.d/rc.local file so that tomcat will start up on boot: + /usr/local/tomcat/bin/startup.sh + +cd /usr/local +wget http://queuemetrics.com/download/QueueMetrics-1.5.3-trial.tar.gz +gunzip QueueMetrics-1.5.3-trial.tar.gz +tar xvf QueueMetrics-1.5.3-trial.tar +mv queuemetrics-1.5.3 /usr/local/tomcat/webapps/QM +cd /usr/local/tomcat/webapps/QM/WEB-INF +wget http://mirror.services.wisc.edu/mysql/Downloads/Connector-J/mysql-connector-java-3.0.10-stable.tar.gz +gunzip mysql-connector-java-3.0.10-stable.tar.gz +tar xvf mysql-connector-java-3.0.10-stable.tar +cp mysql-connector-java-3.0.10-stable/mysql-connector-java-3.0.10-stable-bin.jar ./lib/ + +At this point you should go here on your web browser to see if the tomcat installation went well: +http://ip-address:8080/QM + +If you see a QueueMetrics page(probably with many errors), then installation went well up to this point. + +You now need to add the database tables, configure the web.xml file and configuration.properties file for your system. + +mysql +CREATE DATABASE queuemetrics; +GRANT ALL PRIVILEGES ON queuemetrics.* TO 'queuemetrics'@'localhost' IDENTIFIED BY 'javadude'; +GRANT ALL PRIVILEGES ON queuemetrics.* TO queuemetrics@localhost IDENTIFIED BY 'javadude'; +GRANT ALL PRIVILEGES ON queuemetrics.* TO queuemetrics@'%' IDENTIFIED BY 'javadude'; + +mysql --user=queuemetrics --password=javadude queuemetrics < /usr/local/apache-tomcat-6.0.18/webapps/QM/WEB-INF/README/queuemetrics_sample.sql + + +change the following in the configuration.properties file: + +# This is the default queue log file. +default.queue_log_file=sql:P01 + +# audio recording lookup link, change the audioRpcServer to point to your server +audio.server=it.loway.app.queuemetrics.callListen.listeners.ClassicXmlRpcRecordings +audio.liveserver=it.loway.app.queuemetrics.callListen.RTlisteners.ClassicXmlRpcListenerRT +default.audioRpcServer=http://10.0.0.4/vicidial/xml_rpc_audio_server_vicidial.php + + + +change the following in the web.xml file(change server IP): + + jdbc:mysql://10.0.0.4/queuemetrics?autoReconnect=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&us +er=queuemetrics&password=javadude + + + + +# NOTE: by default QueueMetrics does not index the time_id and call_id field. We strongly recommend you add these indexes: +mysql queuemetrics +CREATE INDEX time_id on queue_log(time_id); +CREATE INDEX call_id on queue_log(call_id); + + + + + + + + + + +OpenSuSE 11.1 installation instructions: + +How to install Queue Metrics on OpenSuSE v.11.1 (32 or 64 bit) with a system that was installed with the ViciDial Group install script. Run them in this order to avoid funky java script bugs :D + +1) Type: zypper in tomcat6 tomcat6-webapps +- Say yes to install, and say yes to license + +2) Type: zypper in java-1_6_0-sun +- Say yes to install, and say yes to license + +3) cd /usr/src +4) wget http://queuemetrics.com/download/QueueMetrics-1.5.5-trial.tar.gz +5) mkdir tars (incase it doesn't exist) +6) tar -xzf QueueMetrics-1.5.5-trial.tar.gz +7) mv QueueMetrics-1.5.5-trial.tar.gz ./tars/ +8) mkdir /srv/tomcat6/webapps/QM +9) cp -r queuemetrics-1.5.5/* /srv/tomcat6/webapps/QM/ +10) zypper in mysql-connector-java +11) cp /usr/share/java/mysql-connector-java.jar /srv/tomcat6/webapps/QM/WEB-INF/lib/ +12) chkconfig tomcat6 on +13) mysql --execute="CREATE DATABASE queuemetrics;" +14) mysql queuemetrics --execute="GRANT ALL PRIVILEGES ON queuemetrics.* TO 'queuemetrics'@'localhost' IDENTIFIED BY 'javadude';" +15) mysql queuemetrics --execute="GRANT ALL PRIVILEGES ON queuemetrics.* TO queuemetrics@localhost IDENTIFIED BY 'javadude';" +16) mysql queuemetrics --execute="GRANT ALL PRIVILEGES ON queuemetrics.* TO queuemetrics@'%' IDENTIFIED BY 'javadude';" +17) mysql queuemetrics --user=queuemetrics --password=javadude < /srv/tomcat6/webapps/QM/WEB-INF/README/queuemetrics_sample.sql +18) mysql queuemetrics --execute="CREATE INDEX time_id on queue_log(time_id);" +19) mysql queuemetrics --execute="CREATE INDEX call_id on queue_log(call_id);" +20) rctomcat6 start + +21) Edit /srv/tomcat6/webapps/QM/WEB-INF/configuration.properties and change the entry to the following: +- # This is the default queue log file. +- default.queue_log_file=sql:P01 + +22) Edit /srv/tomcat6/webapps/QM/WEB-INF/web.xml and change the IP address of the following entry: +- jdbc:mysql://10.0.0.4/queuemetrics?autoReconnect=true&zeroDateTimeBehavior=convertToNull&jdbcCompliantTruncation=false&user=queuemetrics&password=javadude + +23) Go to http://:8080/QM and it should tell you the schema is old, just click next or yes to everything and have fun + +24) If nothing shows up, you may need to go into 'yast' and change the firewall settings: + Security --> Firewall settings, go to allowed services, type "alt-d" and add 8080 as a new port, then save and exit + + + + + + + + + + +Example queue_log output generated by ViciDial: + ++-----------+------------+----------------------+----------+------------+-----------------+-------------+------------+-------+-------+----------+------------------+ +| partition | time_id | call_id | queue | agent | verb | data1 | data2 | data3 | data4 | serverid | unique_row_count | ++-----------+------------+----------------------+----------+------------+-----------------+-------------+------------+-------+-------+----------+------------------+ +| P01 | 1243280596 | NONE | NONE | Agent/6666 | AGENTLOGIN | 6666@agents | | | | VIC | 1 | +| P01 | 1243280596 | NONE | NONE | Agent/6666 | PAUSEALL | NULL | | | | VIC | 2 | +| P01 | 1243280603 | NONE | NONE | Agent/6666 | UNPAUSEALL | NULL | | | | VIC | 1 | +| P01 | 1243280614 | V0525154325000035377 | TESTCAMP | NONE | ENTERQUEUE | NULL | 9998888112 | | | VIC | 1 | +| P01 | 1243280614 | V0525154325000035377 | TESTCAMP | Agent/6666 | CONNECT | 0 | | | | VIC | 2 | +| P01 | 1243280619 | V0525154328000213841 | TESTCAMP | NONE | ENTERQUEUE | NULL | 9999000016 | | | VIC | 1 | +| P01 | 1243280625 | V0525154328000213841 | TESTCAMP | NONE | EXITWITHTIMEOUT | 1 | | | | VIC | 1 | +| P01 | 1243280625 | V0525154328000213841 | TESTCAMP | NONE | CALLSTATUS | DROP | | | | VIC | 2 | +| P01 | 1243280626 | Y0525154346000213841 | TEST_IN | NONE | ENTERQUEUE | NULL | 9999000016 | | | VIC | 1 | +| P01 | 1243280631 | V0525154325000035377 | TESTCAMP | Agent/6666 | COMPLETEAGENT | 0 | 17 | 1 | | VIC | 1 | +| P01 | 1243280631 | NONE | NONE | Agent/6666 | PAUSEALL | NULL | | | | VIC | 2 | +| P01 | 1243280633 | NONE | NONE | Agent/6666 | UNPAUSEALL | NULL | | | | VIC | 1 | +| P01 | 1243280633 | V0525154325000035377 | TESTCAMP | Agent/6666 | CALLSTATUS | N | | | | VIC | 2 | +| P01 | 1243280646 | V0525154353000213842 | TESTCAMP | NONE | ENTERQUEUE | NULL | 9999000017 | | | VIC | 1 | +| P01 | 1243280646 | V0525154353000213842 | TESTCAMP | Agent/6666 | CONNECT | 0 | | | | VIC | 2 | +| P01 | 1243280650 | V0525154353000213842 | TESTCAMP | Agent/6666 | COMPLETEAGENT | 0 | 4 | 1 | | VIC | 1 | +| P01 | 1243280650 | NONE | NONE | Agent/6666 | PAUSEALL | NULL | | | | VIC | 2 | +| P01 | 1243280659 | V0525154353000213842 | TESTCAMP | Agent/6666 | CALLSTATUS | NP | | | | VIC | 1 | +| P01 | 1243280672 | Y0525154346000213841 | TEST_IN | NONE | EXITWITHTIMEOUT | 1 | | | | VIC | 1 | +| P01 | 1243280672 | Y0525154346000213841 | TEST_IN | NONE | CALLSTATUS | DROP | | | | VIC | 2 | +| P01 | 1243280673 | Y0525154433000213841 | TEST_IN2 | NONE | ENTERQUEUE | NULL | 9999000016 | | | VIC | 1 | +| P01 | 1243280686 | Y0525154433000213841 | TEST_IN2 | NONE | ABANDON | 1 | 1 | 3 | | VIC | 1 | +| P01 | 1243280940 | NONE | NONE | Agent/6666 | UNPAUSEALL | NULL | | | | VIC | 1 | +| P01 | 1243280940 | M0525154900000194239 | TESTCAMP | NONE | ENTERQUEUE | NULL | 9998888112 | | | VIC | 2 | +| P01 | 1243280940 | M0525154900000194239 | TESTCAMP | Agent/6666 | CONNECT | 0 | | | | VIC | 3 | +| P01 | 1243280965 | M0525154900000194239 | TESTCAMP | Agent/6666 | COMPLETEAGENT | 0 | 17 | 1 | | VIC | 1 | +| P01 | 1243280965 | NONE | NONE | Agent/6666 | PAUSEALL | NULL | | | | VIC | 2 | +| P01 | 1243280973 | M0525154900000194239 | TESTCAMP | Agent/6666 | CALLSTATUS | N | | | | VIC | 1 | +| P01 | 1243281049 | Y0525155049000194239 | TEST_IN2 | NONE | ENTERQUEUE | NULL | 9998888112 | | | VIC | 1 | +| P01 | 1243281052 | NONE | NONE | Agent/6666 | UNPAUSEALL | NULL | | | | VIC | 1 | +| P01 | 1243281057 | Y0525155049000194239 | TEST_IN2 | Agent/6666 | CONNECT | 3 | | | | VIC | 1 | +| P01 | 1243281073 | Y0525155049000194239 | TEST_IN2 | Agent/6666 | COMPLETEAGENT | 3 | 24 | 1 | | VIC | 1 | +| P01 | 1243281073 | NONE | NONE | Agent/6666 | PAUSEALL | NULL | | | | VIC | 2 | +| P01 | 1243281079 | Y0525155049000194239 | TEST_IN2 | Agent/6666 | CALLSTATUS | WN | | | | VIC | 1 | +| P01 | 1243281088 | NONE | NONE | Agent/6666 | UNPAUSEALL | NULL | | | | VIC | 1 | +| P01 | 1243281088 | M0525155128000194239 | TESTCAMP | NONE | ENTERQUEUE | NULL | 9998888112 | | | VIC | 2 | +| P01 | 1243281088 | M0525155128000194239 | TESTCAMP | Agent/6666 | CONNECT | 0 | | | | VIC | 3 | +| P01 | 1243281105 | M0525155128000194239 | TESTCAMP | Agent/6666 | COMPLETEAGENT | 0 | 7 | 1 | | VIC | 1 | +| P01 | 1243281105 | NONE | NONE | Agent/6666 | PAUSEALL | NULL | | | | VIC | 2 | +| P01 | 1243281111 | M0525155128000194239 | TESTCAMP | Agent/6666 | CALLSTATUS | NP | | | | VIC | 1 | +| P01 | 1243281112 | NONE | NONE | Agent/6666 | AGENTLOGOFF | 6666@agents | 516 | | | VIC | 1 | ++-----------+------------+----------------------+----------+------------+-----------------+-------------+------------+-------+-------+----------+------------------+ diff --git a/agc_2-X/branches/agc_2.2.0/docs/README.txt b/agc_2-X/branches/agc_2.2.0/docs/README.txt new file mode 100644 index 00000000..64cb948f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/README.txt @@ -0,0 +1,623 @@ ++------------------------------------------------------------------------------+ +| ViciDial Call Center - astguiclient - thirtieth public release 2.0.5 | +| created by ViciDial group | +| project started 2003-10-06 http://sourceforge.net/projects/astguiclient/ | ++------------------------------------------------------------------------------+ + +This suite of programs is designed to work with the Asterisk Open-source PBX +(http://www.asterisk.org) as a cross-platform GUI client and the supporting +server side applications necessary for the features of the GUI application to +work with Asterisk. The client-side GUI apps are available as web pages running +AJAX scripted web pages(Firefox recommended) + +End-user Manuals for Agents and Managers are available from http://www.eflo.net + + ***** Description, Notes and Changelog below ***** + +Included in this distribution of the Asterisk GUI client are: +- agi/ - the Asterisk agi-bin files needed for astguiclient +- bin/ - the astGUIclient server-side perl script applications +- docs/ - astGUIclient installation and other documentation +- docs/conf_examples/ - example Asterisk conf files for astGUIclient +- extras/ - data files, sql files and other extra files needed for ViciDial +- LANG_www/ - ViciDial admin and user web pages translated into other languages +- sounds/ - Asterisk sounds needed by ViciDial +- translations/ - UTF8 language translation files for other language versions +- www/ - the pages and scripts of the user and admin astGUIclient web interface + + +DESCRIPTION: +This program was designed as a GUI client for the Asterisk PBX with Zaptel +trunks or IAX or SIP VOIP trunks and SIP/IAX/Zap hard or softphones or devices +as extensions, it could be adapted to other functions, but it was designed for +Zap/IAX/SIP users. The client programs are web-based and will run on most +modern web browsers. + + +KNOWN BUGS: +- With ViciDial(and Asterisk in general) you cannot record a native bridge + VOIP-only conversation unless you go into a conference, you also cannot + monitor a native-bridge VOIP-only conversation unless you use a separate + specialized application like OrecX + + +VERSION HISTORY: + +0.7 - First public release - 2003-11-18 +This is the first release of the Asterisk GUI Client code, it is entirely +written in Perl with portability and rapid development/testing in mind. The perl +code is NOT strict, it was written loose and fast and has been functioning +rather well in a production environment of 60 clients for one month now. + +0.8 - Second public release - 2003-12-09 +- Several bug fixes +- New button for monitoring live extensions on Zap channels +- Changed the method that the live channels/phone were populated on the +listboxes of the client app. +- Changed the Asterisk/Manager commands to work correctly with new Asterisk CVS +versions requirements. +- A new routine was enabled to allow for making sure that the updater is +running and bringing up a popup alert window on the client if the updater has +not updated in the last 6 seconds. (this also added a new MySQL table) +- Changed the updater to run every 450 milliseconds instead of every 333 +milliseconds. +- Updater changed to allow for ringing channels to appear in the live_channels +table. + +0.9 - Third public release - 2004-02-05 +The majority of the work in this release it to make it more stable and fix some +pretty bad bugs. We created the Asterisk Central Queue System to address the +problem with buffer-overflows in the manager interface of Asterisk causing total +system deadlocks. We also completed and touched-up many other features that we +didn't finish in previous releases. Here is the list of changes: +- Several bug fixes +- Inclusion of listing for active SIP/Local channels and ability to hang them up +- Completely changed the method of conferencing to be more fluid +- Added HELP popup screen +- Added intrasystem calling funtionality +- Updater changed to allow for SIP/Local channels +- Recording for conferences is now able to record all audio in and out +- Added ability to send DTMF tones within a conference +- Changed alert window for updater being down timeout to 20 seconds +- Added an option for using the new Asterisk Central Queue System(ACQS) that +reduces the risk of deadlocks that occur with buffer-overflows on remote manager +interface connections +- Included new script to run at boot time and rotate the logs as well as a +keepalive script for the new ACQS +- Changed non-AGI server-side scripts to allow for a single config file +- Detailed activity logging to text file option added +- Activity logging added to all non-AGI server applications + +0.9.2 - Fourth public release - 2004-03-08 +- several bug fixes for the GUI client and ACQS applications +- addition of the new VICIDIAL auto-dialer application and admin web pages +- added new script to reset MySQL tables +- added new script to kill CONGEST Local/ channels + +0.9.4 - Fifth public release - 2004-03-12 +- a few bug fixes for the GUI and server apps +- addition of callerID popup for the GUI +- callerID buttons to launch web pages from callerID popup +- addition of voicemail count display to GUI +- addition of button to directly connect to voicemail +- addition of voicemail counter updater +- MySQL table "phones" modified and "inbound" table added(see CONF_MySQL.txt) +- new extensions.conf entries need to be added to use callerid and vmail GUI + +1.0.0 - Sixth public release - 2004-03-26 +- a few bug fixes for the GUI and server apps +- Major documentation changes with the addition of the SCRATCH_INSTALL.txt file +that goes step-by-step through the entire install process of an asterisk server +from blank hardware to astguiclient installation and configuration. +- added pretty buttons to the WINphoneAPP +- added blind transfer to voicemail, blind transfer to another extension and +blind external transfer +- new install script created to put server files in default positions and set +permissions to execute +- new sql file to create all tables by running a script execute command in MySQL + +1.0.1 - Seventh public release - 2004-04-27 +- a few bug fixes for the GUI and server apps +- minor changes to WINphoneAPP +- major changes to VICIDIAL client code: + + rearranged VICIDIAL buttons and added some color to DIAL and HANGUP buttons + + allowed for call parking with different park music per-campaign + + allowed for webpage forms launched from GUI with call info + + allowed for different web form web page per-campaign + + allowed agents using VICIDIAL client to send calls with data to a closer + + new call-closer functionality is web-based for flexibility + + added new DTMF dialpad for sending tones quickly +- fixed bugs in VICIDIAL web admin pages +- fixed bugs in ASTGUICLIENT web admin pages +- added code from Paul Concepcion to allow admin pages to work with globals off +- added common database connection file for each set of PHP admin pages +- made small changes to the MySQL database Schema + (NOTE: if upgrading from 1.0.0 run the upgrade_1.0.1.sql script in MySQL) + +1.0.2 - Eighth public release - 2004-06-03 +- a few bug fixes for the GUI apps +- corrected documentation errors in SCRATCH_INSTALL instructions +- updated SCRATCH_INSTALL instructions for some newer software +- corrected errors in SQL install queries +- corrected errors in server installation scripts +- WINphoneAPP config option to allow one persistant mysql DB connection +- WINphoneAPP config option to allow modification of info refresh interval +- VICIDIAL modified to allow for auto-dial of next number + (NOTE: if upgrading from 1.0.1 you do not need to update any web pages or + server apps, this update is only a client GUI and docs update. Note that the + AST_VICI_conf.pl has been updated, so you may need to modify your client + configs to enable new features.) + +1.0.3 - Ninth public release - 2004-07-21 +- a few bug fixes for the GUI apps +- changed the recording to show recording ID when recording is started +- VICIDIAL overhauled: + + added Time::HiRes module requirement to better control time increments + + changed to dial from a small hopper of pre-ordered leads per campaign + + added cron script to always keep leads in the hopper every minute + + added a counter to see how many times a lead is called + + added ability to dial campaign by how many times lead called + + added some new stats to the admin web pages + + created a limited predictive-dialer that will dial a certain amount of leads + per logged in agent and direct the calls that are picked up to the next agent + + ability to transfer the called line and the 3rd party call into a separate + meetme room and continue on dialing + UPGRADE NOTES: + * if upgrading from 1.0.2 you need to update the web pages and all + server apps. + * if upgrading from 1.0.2 run the upgrade_1.0.3.sql script in MySQL + * if upgrading from 1.0.2 you may want to run AST_upgrade_1.0.3.pl to update + your called counts of your leads in vicidial_list. + * AST_SERVER_conf.pl has been updated, so you may need to modify your server + configs to enable new features. + * client app names have been changed to astVICIDIAL and astGUIclient + +1.0.4 - Tenth public release - 2004-09-21 +- several minor bug fixes for GUI apps and server apps +- fixed recording bug in astGUIclient that would rarely stop recording +- added timezone dialing in VICIDIAL +- added new client GUI app for inserting leads into the VICIDIAL leads table +- adjusted timings in the VICIDIAL autodialer for better performance +- added streamlined manager interface logins to help scripts run more smoothly + UPGRADE NOTES: + * if upgrading from 1.0.3 you need to update the web pages and all + server apps. + * if upgrading from 1.0.3 run the upgrade_1.0.4.sql script in MySQL + * if upgrading from 1.0.3 you may want to run ADMIN_adjust_GMTnow_on_leads.pl + to update the timezone in the vicidial_list table + * AST_SERVER_conf.pl on the server has been updated, so you may need to modify + your server configs to enable new features(like timezone dialing). + * AST_VICI_conf.pl for clients has been updated, so you may need to modify + your client configs to enable new features(like timezone dialing). + * run this script if you plan on doing timezone restrictions on VICIDIAL: + ADMIN_area_code_populate.pl + +1.0.5 - Eleventh public release - 2004-10-28 +- many minor bug fixes in most of the server and client scripts +- fixed multiple login bug on VICIDIAL +- fixed the manual-dial/auto-dial switching bug on VICIDIAL +- fixed a few time zone calling bugs on VICIDIAL server apps +- all apps now allow for IAX trunks to be used in addition to the usual Zap +- added more options to install script +- changed CLI lead loader to use Net::MySQL instead of DBI +- modified several scripts that handle CallerID because of the early October + change in the CVS of outputting CID info as two separate fields(CallerID and + CallerIDname) instead of everything being sent in CallerID. +UPGRADE NOTES: + * if upgrading from 1.0.4 you need to update the web pages and all + server and client apps. + * if upgrading from 1.0.4 run the upgrade_1.0.5.sql script in MySQL + * if using a CVS version 2004-10-07 or newer or release 1.0.3 or newer + change the line in extensions.conf + exten => 8309,2,Monitor(wav,${CALLERIDNUM}) + change to + exten => 8309,2,Monitor(wav,${CALLERIDNAME}) + +1.0.6 - Twelfth public release - 2004-12-23 +- many minor bug fixes in most of the server and client scripts +- optimized the ACQS and restructured its keepalive scripts +- added hijack line feature to astGUIclient +- added inbound call handling for VICIDIAL +- added blended in-outbound calling within VICIDIAL +- added new closer stats report +- updated the SCRATCH_INSTALL instructions and corrected errors +- see the TODO.txt file for other items DONE in this release +UPGRADE NOTES: + * if upgrading from 1.0.5 you need to update the web pages and all + server and client apps. + * if upgrading from 1.0.5 run the upgrade_1.0.6.sql script in MySQL + * if upgrading from 1.0.5 add a campaign "CLOSER" to enable closers and + inbound call taking through the VICIDIAL application + (see the SCRATCH_INSTALL document SUBPHASE 6.2 for more information) + +1.1.0 - Thirteenth public release - 2005-03-09 +- several small bug fixes in most of the server and client scripts +- added IAX and Zap client/agent compatibility +- implemented some major database optimizations +- ability to specify MySQL port across all apps +- moved almost all client config variables from client files to the Database +- created a meetme room validator that will allow faster reassignment of conferences +- created a new remote_agent login system for VICIDIAL in/outbound calls +- restructuring of AST_update script to cope better with manager output hiccups +- added dial timeout field to VICIDIAL to specify the timeout per campaign +- added help popups to every page of the admin web pages to explain fields +- see the TODO.txt file for other items DONE in this release +UPGRADE NOTES: + * if upgrading from 1.0.6 you need to update the web pages and all + server and client apps. + * if upgrading from 1.0.6 run the upgrade_1.1.0.sql script in MySQL + * if upgrading from 1.0.6 you will need to configure your client parameters on + the admin web page and remove them from the client computers (except for the + fields that are in the sample AST_VICI_conf.pl file) + * older client apps are not compatible with this version, you must upgrade + +1.1.1 - Fourteenth public release - 2005-06-03 +- several small bug fixes in most of the server and client scripts +- added astGUIclient web-only client +- added campaign-custom disposition statuses to VICIDIAL +- added campaign-custom CallerID to VICIDIAL +- added fronter-display-disable option to VICIDIAL Inbound Groups +- added ability to separate vicidial users by groups +- added performance stats gathering ability to AST_update script +- fixed the send-to-vmail portion of inbound AGI scripts +- added simple web-based lead file loader for VICIDIAL +UPGRADE NOTES: + * if upgrading from 1.1.0 you need to update the web pages and all + server apps. + * if upgrading from 1.1.0 run the upgrade_1.1.1.sql script in MySQL + +1.1.2 - Fifteenth public release - 2005-06-06 +- fixed fatal bug in AST_update.pl script +- added instructions for ploticus install to SCRATCH_INSTALL +UPGRADE NOTES: + * if upgrading from 1.1.0 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + * if upgrading from 1.1.0 run the upgrade_1.1.1.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.1.sql) + +1.1.3 - Sixteenth public release - 2005-06-10 +- fixed config bug in AST_VDauto_dial.pl script +- added null query result checks to scripts in the agc web-only client +- added documentation for the inbound and transfer AGI script variables +- added documentation and tested install with MySQL 4.1 tree (4.1.12) +UPGRADE NOTES: + * if upgrading from 1.1.0 - 1.1.2 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + * if upgrading from 1.1.0 run the upgrade_1.1.1.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.1.sql) + +1.1.4 - Seventeenth public release - 2005-06-24 +- fixed new Local channel bugs caused by changes in Asterisk 1.0.8 and CVS +- added beta support for SIP trunks +- added ability to send VICIDIAL outbound calls to custom AGI script per + campaign and included new survey sample AGI script +- added better Asterisk shutdown detection to AST_manager_listen script +UPGRADE NOTES: + * if upgrading from 1.1.3 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + - if using VICIDIAL download the new client script to all client stations + - make sure you populate the new $AST_ver variable in AST_SERVER_conf.pl + * if upgrading from 1.1.3 run the upgrade_1.1.4.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.4.sql) + +1.1.5 - Eighteenth public release - 2005-08-12 +- fixed new Local channel bugs caused by changes in Asterisk 1.0.8 and 1.0.9 +- moved many server variables to the database, editable through admin.php +- added ability to limit number of outbound trunks used by VICIDIAL auto dialer +- many small changes and bug fixes to the astguiclient web client +- added alpha vicidial web-client (click-to-dial only) +UPGRADE NOTES: + * if upgrading from 1.1.4 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + - VICIDIAL perl/TK client is unchanged from 1.1.4 + - make sure you check the astguiclient admin.php server parameters + * if upgrading from 1.1.4 run the upgrade_1.1.5.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.5.sql) + +1.1.6 - Nineteenth public release - 2005-08-29 +- streamlined many of the server apps and added command-line debug capability +- finished the vicidial web-client and tested in prduction +- modified server-side scripts to function with Asterisk CVS_HEAD(soon to be 1.2) +- modified server performance logging and graphing, added user/system proc % +UPGRADE NOTES: + * if upgrading from 1.1.5 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + (make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly) + - perl/TK clients are unchanged from 1.1.5 + - make sure you check the astguiclient admin.php server parameters + - make the agi-VDADtransfer.agi changes in extensions.conf (mentioned in SCRATCH_INSTALL doc) + * if upgrading from 1.1.5 run the upgrade_1.1.6.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.6.sql) + +1.1.7 - Twentieth public release - 2005-10-05 +- Added HotKeys key binding for VICIDIAL web-client fast dispositioning +- Internationalization(multi-language) of web-clients and admin pages +- Added ability in manual VICIDIAL to call alternate lead phone numbers +- Added option of pull-down of active campaigns to VICIDIAL web login +- Fixed some issues with scripts interacting with Asterisk 1.2 +- other small changes listed in the TODO.txt file +UPGRADE NOTES: + * if upgrading from 1.1.6 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + (make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly) + - perl/TK clients have been slightly updated(will be unsupported soon) + - multi-language versions of web-clients and admin pages are available in the + LANG_agc.zip and LANG_admin.zip files and can be unzipped into your webroot + directory. Make sure you check the dbconnect.php file in each directory. + * if upgrading from 1.1.6 run the upgrade_1.1.7.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.7.sql) + +1.1.8 - Twenty-First public release - 2005-11-10 +- Added per-campaign call recording options to VICIDIAL +- Added detailed logging for VICIDIAL agent time +- Fixed some issues with scripts interacting with Asterisk 1.2 +- other small changes listed in the TODO.txt file +UPGRADE NOTES: + * if upgrading from 1.1.7 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + (make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly) + - multi-language versions of web-clients and admin pages are available in the + LANG_agc.zip and LANG_admin.zip files and can be unzipped into your webroot + directory. Make sure you check the dbconnect.php file in each directory. + * if upgrading from 1.1.7 run the upgrade_1.1.8.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.8.sql) + +1.1.9 - Twenty-Second public release - 2006-01-19 +- Added Load Balancing of Inbound and Outbound calls across multiple Asterisk + servers in the same setup +- Removed all PHP globals requirements, can now use register_globals=Off in PHP +- Add fully translated Greek admin and agc scripts(agc images to come) +- Added security elements to admin pages and added record deletion functions +- Added a script tab to VICIDIAL to have a variable-populated agent script +- Added new Super lead loader with field chooser and CVS/XLS-format capability +- Added favorites panel to astguiclient.php that shows off/on hook +- Many other small changes listed in the TODO.txt file +UPGRADE NOTES: + * if upgrading from 1.1.8 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + (make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly) + - multi-language versions of web-clients and admin pages are available in the + LANG_agc.zip and LANG_admin.zip files and can be unzipped into your webroot + directory. Make sure you check the dbconnect.php file in each directory. + * if upgrading from 1.1.8 run the upgrade_1.1.9.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.9.sql) + +1.1.10 - Twenty-Third public release - 2006-03-17 +- Added capability to work with app_amd(answering machine detection) +- Added transfer-conference number and DTMF presets per campaign +- Added sphinx ring-time analysis disposition package(beta) +- Added scheduled callbacks to VICIDIAL +- Added more user-permission options/restrictions +- Several small bug fixes for better Asterisk 1.2.4 compatibility +- Many other small changes listed in the TODO.txt file +UPGRADE NOTES: + * if upgrading from 1.1.9 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + (make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly) + - add "exten => h,2,DeadAGI(VD_hangup.agi,${EXTEN})" to extensions.conf + - multi-language versions of web-clients and admin pages are available in the + LANG_agc.zip and LANG_admin.zip files and can be unzipped into your webroot + directory. Make sure you check the dbconnect.php file in each directory. + * if upgrading from 1.1.9 run the upgrade_1.1.10.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.10.sql) + +1.1.11 - Twenty-Fourth public release - 2006-04-28 +- Added Agent-only Scheduled Callbacks +- Added Lead Filters for campaigns to use custom SQL to narrow calling scope +- Added Agent manual-lead-insertion capability +- Fixed PHP variable checking in all PHP scripts to be more compliant +- Added more user-permission options/restrictions for both agents and admins +- Several small bug fixes for better Asterisk 1.2.6 and SVN compatibility +- Many other small changes listed in the TODO.txt file +UPGRADE NOTES: + * if upgrading from 1.1.10 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + (make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly) + - multi-language versions of web-clients and admin pages are available in the + LANG_agc.zip and LANG_admin.zip files and can be unzipped into your webroot + directory. Make sure you check the dbconnect.php file in each directory. + * if upgrading from 1.1.10 run the upgrade_1.1.11.sql script in MySQL + (\. astguiclient/upgrade_1.1.11.sql) + +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 +- Added Drop-call and safe-harbor options to campaigns and inbound groups +- Added option for allowing wrapup time between calls in vicidial.php +- Multi-language translation rewritten for more flexibility and easy of use +- Added more user-permission options/restrictions for both agents and admins +- Added option of using app_conference instead of meetme engine +- 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 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 +UPGRADE NOTES: + * if upgrading from 1.1.11 you need to: + - download the new version from the project website + - unzip the zip file into the astguiclientastguiclient directory + - and either: + + copy the web pages and all server apps to their proper locations manually + + or run the install_server_files.pl script to put all items in their + default places + (make sure AST_SERVER_conf.pl and dbconnect.php files are config'd properly) + - multi-language versions of web-clients and admin pages are available in the + LANG_agc.zip and LANG_admin.zip files and can be unzipped into your webroot + directory. Make sure you check the dbconnect.php file in each directory. + * if upgrading from 1.1.11 run the upgrade_1.1.12.sql script in MySQL + (\. astguiclientastguiclient/upgrade_1.1.12.sql) + * if upgrading from older version you will need to run this query for each + campaign in VICIDIAL in MySQL: + (INSERT INTO vicidial_campaign_stats (campaign_id) values('campaignname');) + +2.0.1 - Twenty-Sixth public release - 2006-09-15 +- Changed all Perl script to use DBI instead of Net::MySQL +- Completely new interactive install script with new astguiclient.conf file +- Ability to turn off or on logging of server scripts +- Ability to redirect AGI output to file, STDERR, both or nowhere. +- Code and process optimization of many of the server-side scripts +- Added a Predictive outbound dialing algorithm with many user-defined settings +- Wrote new BASE_INSTALL.txt doc for simple install and added sample conf files +- Many other changes and bug fixes listed in the TODO Wiki webpage: + http://www.eflo.net/VICIDIALwiki/index.php/TODO:2.0.1 +UPGRADE NOTES: + * if upgrading from 1.1.12 you need to follow instructions in the UPGRADE doc + +2.0.2 - Twenty-Seventh public release - 2006-12-22 +- Added FastAGI replacement for call_log and VDhangup scripts +- Added new USA-Canada Daylight Savings time scheme and DST for Brazil +- astguiclient/admin.php removed and merged into vicidial/admin.php +- Ability for agent to alter volume levels of participants +- Keepalives consolidated into single script +- New all-active-campaigns realtime summary screen +- New script added to make it easier to change IP address of servers in VICIDIAL +- Added ability to reserver trunk lines for specific VICIDIAL campaigns +- Added ability for balance dialing and dialing-only servers in VICIDIAL +- Many other changes and bug fixes listed in the TODO Wiki webpage: + http://www.eflo.net/VICIDIALwiki/index.php/TODO:2.0.2 +UPGRADE NOTES: + * if upgrading from 2.0.1 you need to follow instructions in the UPGRADE doc + +2.0.3 - Twenty-Eighth public release - 2007-04-27 +- Added optimized manager sending scripts +- Made several changes to admin.php and made it more customizable +- Made changes to HotKeys to allow for manual auto dial and auto alt number dial +- Added ability to dial alternate lead phone numbers in auto-dial modes +- Added ability to send more calls to agents at once, helping large installations +- Added more levels of access control to the administrative interfaces +- Added Agent Pause codes to alow agents to categorize their PAUSE time +- Added VICIDIAL outbound compatibility with QueueMetrics +- Many other changes and bug fixes listed in the TODO Wiki webpage: + http://www.eflo.net/VICIDIALwiki/index.php/TODO:2.0.3 +UPGRADE NOTES: + * if upgrading from 2.0.2 you need to follow instructions in the UPGRADE doc + +2.0.4 - Twenty-Ninth public release - 2007-12-03 +- Easy control over System Statuses, including the addition of Status Categories +- Several new additional In-Group features including music-on-hold, alert messages and call times +- Skills based ranking and call routing for inbound and outbound +- Agent call routing based on the number of calls taken today per in-group or campaign +- Added the ability to copy the settings of an existing User/Campaign/In-Group into a new one +- Changing the Transfer feature in the agent screen to allow for more transfer In-Group choices +- Dynamic display of available campaigns for an agent in the agent login screen +- Many other changes and bug fixes listed in the TODO Wiki webpage: + http://www.eflo.net/VICIDIALwiki/index.php/TODO:2.0.4 +UPGRADE NOTES: + * if upgrading from 2.0.3 you need to follow instructions in the UPGRADE doc + + +2.0.5 - Thirtieth public release - 2009-04-03 +UPGRADE NOTES: + * if upgrading from 2.0.4 you need to follow instructions in the UPGRADE doc +CHANGES: +1. Note the license change from GPLv2 to AGPLv2. This change was made to close the ASP loophole for code distribution that was present in the GPLv2 license. Please read the docs/LICENSE.txt file for more information +2. Several of the MySQL tables have been changed to a HEAP type to reside in memory to improve performance. +3. Added the ability for inbound and blended agents to choose their selected in-groups without logging out. The new GROUPS link at the top of the agent screen(vicidial.php) can be used when an agent is Paused to change their selected groups and whether they are set to do Blended calling or not. There is also a new log with the details of what groups an agent has selected each time in the user stats page. +4. Queue Priority has been added allowing for the prioritization of one in-group over another in-group or outbound campaign(when in blended mode) +5. Drop call action has been added to both inbound and outbound calling. You can now send a call that would drop into an inbound group. The call will still be recorded as a DROP in it's original in-group or campaign, but the lead information will move on to the drop in-group. +6. Audio recording mixing/compression/ftping scripts have been completely rewritten and separated into different scripts for better fault tolerance. Also, you have the option of compression in to the following formats: WAV, GSM, MP3 and OGG - AST_CRON_audio_1_move_mix.pl - AST_CRON_audio_1_move_VDonly.pl - AST_CRON_audio_2_compress.pl - AST_CRON_audio_3_ftp.pl +7. Created a new script to backup a VICIDIAL setup, including the Asterisk conf files, prompt recordings, bin, agi and web files: ADMIN_backup.pl +8. Added ability to override recording options of a campaign for individual inbound-groups +9. The 8 outbound agi-VDADtransfer scripts are in process of being consolidated into a single AGI script: agi-VDAD_ALL_outbound.agi All older outbound scripts are depricated and do not function any more +10. Added the ability to load balance the logins to vicidial.php for phones that are registered to multiple servers on a multi-server system. Simply put multiple phone_login values in the phone login field at login separated by a comma and the vicidial.php script will pick the server that has the fewest agents logged into it at the moment of login. +11. Added ability for vicidial.php to populate the phones.computer_ip field upon agent login. Options set in the vicidial.php file to allow for overwrite every login or only if field is empty. +12. Several code changes for better UTF8 compatibility with the database as well as special character leads in the agent screen, lead loading +13. Added after hours redirect of calls to an in-group to another in-group +14. Added collection of hangup reasons for inbound and outbound calls in the vicidial_log and vicidial_closer_log tables +15. Added a new timeclock feature w/ audit and log, including the addition of shifts to VICIDIAL user groups and the ability to auto-generate user IDs as you are adding users to the system. timeclock.php user login page created and linked to from admin/agent/welcome screens +16. Added a new inbound/closer(queues) report for showing service levels +17. Added Calls in Queue counter to agent vicidial.php screen +18. Added ability to use calltime scheme for calls not yet in an in-group(queue) as well as display in real-time stats. See Inbound_VDAC_IVR.txt doc for more information +19. Auto-dial survey broadcast campaigns can now be fully configured within the admin.php interface and they have new options shown in the Survey sub- section +20. Changed add-to-DNC list to allow for multiple phone numbers per submission +21. Date/time and phone formats that appear in the VICIDIAL agent screen are now customizable as defined in the Admin -> System Settings screen. +22. Added manual dial and inbound queue_log logging capability for better QueueMetrics compatibility +23. Added some basic agent interface API functions and an agc/api.php script +24. A field has been added to vicidial_list(last_local_call_time) to sort by the last time a lead was called as well as for lead recycling changes. +25. IMPORTANT FOR RECORDINGS!!! The recording extensions have been changed within VICIDIAL so you need to add the following lines to your extensions.conf ; quiet monitor-only entry and leaving conferences for VICIDIAL (recording) exten => _58600XXX,1,Meetme,${EXTEN:1}|Fmq +26. Added option (for Internet Explorer users only) to copy a field to the clipboard of the agent computer upon a call being sent to the agent. +27. Added new alternate number dialing method which allows for over 65,000 alt phone numbers per lead. Currently these extra numbers are only available for auto dialing, not manual dial. These extra alternate number leads must be imported either with the CLI lead loader(VICIDIAL_IN_new_leads_file.pl) or the non-agent API script. +28. Added campaign-specific DNC filtering lists to the system +29. Added optional dialplan entries to sample extensions.conf to play a not-in- service message for invalid phone numbers that cannot be dialing in North America +30. Rewrote Leave-3way function for conference calling to work more reliably on high load systems. Need to add more vicidial_conferences entries and meetme.conf entries for this, see the meetme.conf.sample file and the first_server_install.sql file for more information +31. Added several new features to inbound call handling including: - announce place in line - announce estimated hold time - welcome message options - options for call routing when estimated hold time is too high - press 1 to leave a voicemail for customers if wait time too high +32. Added DID call routing to allow for basic routing of calls to phones, extensions, voicemail and VICIDIAL inbound groups without editing the extensions.conf dialplan. *requires initial adding one line to dialplan of inbound context: exten => _X.,1,AGI(agi-DID_route.agi) *as well as a few more lines in your VICIDIAL default context: ; DID forwarded calls exten => _99909*.,1,Answer exten => _99909*.,2,AGI(agi-VDAD_ALL_inbound.agi) exten => _99909*.,3,Hangup +33. Added ability to set callerID number on outgoing conference calls to CAMPAIGN, CUSTOMER or AGENT_PHONE callerID settings. +34. New Slovak translation for the agent screen, as well as new German agent screen translation and new German buttons for the agent screen +35. New Welcome demo and languages screens with links to all translations of agent and admin screens +36. Added INBOUND_MAN dial method to allow for inbound call handling by agents that are also placing manual dial list calls through their campaign lists +37. Added option to see the inbound group call stats in the Real-time screen +38. Added ability for agents to dial in to an AGI script(agi-AGENT_dial_in.agi) to log their phone into the session instead of having VICIDIAL call them. The user ID and password for the agent must be digits only for this to work! This requires the following to be added to the dialplan on the dial-in DID or extension that you want to use: exten => 2345,1,Answer ; Answer the line exten => 2345,2,AGI(agi-AGENT_dial_in.agi) exten => 2345,3,Hangup +39. Added pause codes display to the Real-time report as well as pause code statistics to the agent performance detail report. Also added an option to force agents to enter a pause code(this is a campaign option) +40. Added full MySQL error logging to vicidial agent web interface. Logs are written to the webserver. +41. Added new inbound-only reporting to Real-time report as well as many new features to existing inbound report. Created IVR stats report to show stats on Asterisk IVRs +42. Updated Vtiger integration to version 5.0.4 and allow searching by leads/accounts/vendors. Also added user synchronization with vicidial_users. Also added click-to-dial from Vtiger sending call to vicidial agent screen. Also added batch synchronization of Accounts between Vtiger and VICIDIAL. +43. Added notification of time synchronization problems in the vicidial.php page +44. Added AGENTDIRECT queueing to be able to send calls to only one agent without having to create a new in-group for each agent. You can configure DIDs to use AGENTDIRECT, and you can have VICIDIAL agents send calls to specific agents using the AGENTDIRECT transfer group with LOCAL CLOSER button and putting the agent to send the call to in the Number To Dial field. +45. Added agent alert option to agent screen. sends browser alert prompt when a call is send to the agent screen. +46. Added option for using North American NANPA prefix timezone encoding for more accurate time zone encoding. The data is NOT included but can be purchased from the VICIDIAL Group. +47. Added System Settings option to disable auto-dialing(list dialing) from the system to simplify administration for inbound-only call centers +48. Added patch and configuration options to allow VICIDIAL to work with Sangoma ParaXip CPD(Call Progress Detection) for Answering Maching and Fax detection +49. Added list_download.php that allows you to download the entire contents of vicidial lists from the admin.php interface. You must set the download_lists permission in vicidial_users to 1 for this to work. +50. Small redesign of the agent interface to use grey backgrounds and new tabs +51. Added Asterisk version prompt to the install.pl script to allow for the copying of the proper conf files for the installed Asterisk version +52. Added auto-generation of SIP and IAX phones and carriers into the Asterisk conf files so that you can fully configure them using only the admin.php web interface. See the ASTERISK_CONF-GEN.txt file for more information +53. Added group alias option for selecting callerID on manual and 3rd-party calls +54. Added options for custom web variables for each agent per in-group and camaign. This is definable in the user modification page +55. Added Agent Shift enforcement options to restrict logins and vicidial agent activity +56. Added Server vital statistics(load/CPU/disk) to the reports screen and the server modification screen +57. Removed the admin_changes flat text log file and now put all administrative actions into the vicidial_admin_log table in MySQL. These logs are displayed to user_level 9 users in admin.php through a link on the REPORTS screen, and at the bottom of the other screens (USERS, CAMPAIGNS, LISTS, etc...)you can click on the "Click here to see Admin chages to this record" link to find out the most recent changes to that record. +58. Added uniform admin headers to all administrative pages and reports +59. Added Calls Export Utility allowing exporting of call and lead data by defining the following parameters: date range, campaigns, in-groups, statuses, lists and user groups. A flat tab-delimited text file is exported. +60. Added new monitoring functionality to allow monitoring from one agent to another without hanging up +61. Added Russian and Dutch agent interface translations diff --git a/agc_2-X/branches/agc_2.2.0/docs/REQUIRED_APPS_INSTALL.txt b/agc_2-X/branches/agc_2.2.0/docs/REQUIRED_APPS_INSTALL.txt new file mode 100644 index 00000000..96244e4e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/REQUIRED_APPS_INSTALL.txt @@ -0,0 +1,612 @@ +# Quick install of required apps v.2.2.0 2009-03-15 +# This file is a supplement to the BASE_INSTALL document giving you simple copy/ +# paste installation shell commands for required and helper apps for VICIDIAL +# might need: echo '/* Linuxthreads */' >> /usr/include/pthread.h + +cd /usr/local +wget http://mirrors.kernel.org/gnu/make/make-3.81.tar.gz +gunzip make-3.81.tar.gz +tar xvf make-3.81.tar +cd make-3.81 +./configure +make +make install + +cd /usr/local/ +wget http://files.directadmin.com/services/all/mysql/mysql-5.0.67.tar.gz +gunzip mysql-5.0.67.tar.gz +tar xvf mysql-5.0.67.tar +cd mysql-5.0.67 +groupadd mysql +useradd -g mysql mysql +./configure --prefix=/usr/local/mysql --enable-shared=yes --with-readline --enable-thread-safe-client --enable-large-files --enable-assembler --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-big-tables +make +make install +PATH=$PATH:$HOME/bin:/usr/local/mysql/bin/ +export PATH +PATH=$PATH:$HOME/bin:/usr/local/mysql/include/mysql/ +export PATH +cp /usr/local/mysql-5.0.67/libmysql/.libs/libmysqlclient.so /usr/lib/ +cp /usr/local/mysql-5.0.67/libmysql/.libs/libmysqlclient.so.15 /usr/lib/ +cd /usr/local/mysql-5.0.67 +scripts/mysql_install_db +chown -R root /usr/local/mysql +chown -R mysql /usr/local/mysql/var +chgrp -R mysql /usr/local/mysql +cp support-files/my-huge.cnf /etc/my.cnf +/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache & +ln -s /tmp/mysql.sock /var/run/mysql/mysql.sock +vi /etc/my.cnf + # add this line below 'skip-locking' + skip-name-resolve + # comment out the line 'log-bin=mysql-bin' + max_connections = 200 + +perl -MCPAN -e shell +install MD5 +install Digest::MD5 +install Digest::SHA1 +install readline +install Bundle::CPAN +install DBI +force install DBD::mysql +install Net::Telnet +install Time::HiRes +install Net::Server +install Switch +install Mail::Sendmail +install Unicode::Map +install Jcode +install OLE::Storage_Lite +install Spreadsheet::WriteExcel +install Proc::ProcessTable +install IO::Scalar +install Spreadsheet::ParseExcel +quit + + +cd /usr/local +wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz +gunzip asterisk-perl-0.08.tar.gz +tar xvf asterisk-perl-0.08.tar +cd asterisk-perl-0.08 +perl Makefile.PL +make all +make install + + +cd /usr/local +wget http://easynews.dl.sourceforge.net/sourceforge/lame/lame-3.96.1.tar.gz +gunzip lame-3.96.1.tar.gz +tar xvf lame-3.96.1.tar +cd lame-3.96.1 +./configure +make +make install + + +cd /usr/local +wget http://easynews.dl.sourceforge.net/sourceforge/sox/sox-14.0.1.tar.gz +gunzip sox-14.0.1.tar.gz +tar xvf sox-14.0.1.tar +cd sox-14.0.1 +./configure --disable-shared +make +make install + + +cd /usr/local +wget http://ftp.gnu.org/gnu/screen/screen-4.0.2.tar.gz +gunzip screen-4.0.2.tar.gz +tar xvf screen-4.0.2.tar +cd screen-4.0.2 +./configure +make +make install + + +cd /usr/local +wget http://www.daveltd.com/src/util/ttyload/ttyload-0.5.tar.gz +gunzip ttyload-0.5.tar.gz +tar xvf ttyload-0.5.tar +cd ttyload-0.5 +make +ln -s /usr/local/ttyload-0.5/ttyload /usr/bin/ttyload + + +cd /usr/local +wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.2p3.tar.gz +gunzip ntp-4.2.2p3.tar.gz +tar xvf ntp-4.2.2p3.tar +cd ntp-4.2.2p3 +./configure +make +make install +/usr/local/bin/ntpdate -u pool.ntp.org + + +cd /usr/local +wget http://www.tcpdump.org/release/libpcap-0.9.4.tar.gz +gunzip libpcap-0.9.4.tar.gz +tar xvf libpcap-0.9.4.tar +cd libpcap-0.9.4 +./configure +make +make install +cd /usr/local +wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz +gunzip iftop-0.17.tar.gz +tar xvf iftop-0.17.tar +cd iftop-0.17 +./configure +make +make install + + +cd /usr/local +wget http://www.zlib.net/zlib-1.2.3.tar.gz +gunzip zlib-1.2.3.tar.gz +tar xvf zlib-1.2.3.tar +cd zlib-1.2.3 +./configure +make +make install +cd /usr/local +wget http://ftp.arcane-networks.fr/pub/OpenBSD/OpenSSH/portable/openssh-5.2p1.tar.gz +gunzip openssh-5.2p1.tar.gz +tar xvf openssh-5.2p1.tar +cd openssh-5.1p1 +./configure +make +make install + + +cd /usr/local +wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz +gunzip openssl-0.9.8k.tar.gz +tar xvf openssl-0.9.8k.tar +cd openssl-0.9.8k +./config --prefix=/usr +make +make install + + + +cd /usr/local +wget http://subversion.tigris.org/downloads/subversion-1.5.2.tar.gz +gunzip subversion-1.5.2.tar.gz +tar xvf subversion-1.5.2.tar +cd subversion-1.5.2 +./configure +make +make install + + +cd /usr/local +wget http://superb-west.dl.sourceforge.net/sourceforge/ploticus/pl240src.tar.gz +gunzip pl240src.tar.gz +tar xvf pl240src.tar +cd pl240src/src/ +make clean +make +make install + + +cd /usr/local +wget http://us2.php.net/distributions/php-5.2.10.tar.gz +gunzip php-5.2.10.tar.gz +tar xvf php-5.2.10.tar +wget http://mirror.nyi.net/apache/httpd/httpd-2.2.13.tar.gz +gunzip httpd-2.2.13.tar.gz +tar xvf httpd-2.2.13.tar +cd httpd-2.2.13 +make clean +./configure --prefix=/usr/local/apache2 --enable-ssl --enable-setenvif --enable-so --with-apxs2 --enable-dav --enable-maintainer-mode --with-ssl=/usr/local/ssl +make +make install +mkdir /usr/local/apache2/conf/ssl.key +mkdir /usr/local/apache2/conf/ssl.crt +mkdir /usr/local/apache2/conf/ssl.crl +openssl req -new -x509 -days 1200 -keyout /usr/local/apache2/conf/ssl.key/server.key.cpy -out /usr/local/apache2/conf/ssl.crt/server.crt -subj '/CN=10.10.10.15' + + +openssl rsa -in /usr/local/apache2/conf/ssl.key/server.key.cpy -out /usr/local/apache2/conf/ssl.key/server.key + + +cd ../php-5.2.10 +make clean +./configure --with-mysql=/usr/local/mysql --enable-inline-optimization --enable-memory-limit --enable-track-vars --enable-libgcc --enable-sysvsem --with-openssl=/usr/local/ssl --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib --enable-mbstring +make +make install +cp php.ini-dist /usr/local/lib/php.ini +vi /usr/local/apache2/conf/httpd.conf + + + add the following lines: + "AddType application/x-httpd-php .php .phtml" + "LoadModule php5_module modules/libphp5.so" + or + "LoadModule php5_module modules/libphp5.so" + modify the index.html line and add index.php to the list + + to disable logging, change: + "CustomLog logs/access_log common" + to this: + "CustomLog /dev/null common" + + to enable web browsing of Recordings on Asterisk server, add this: + Alias /RECORDINGS/ "/var/spool/asterisk/monitorDONE/" + + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + + OPTIONAL: USE ONLY FOR STANDALONE apache/php SERVER ONLY: + + ServerLimit 768 + StartServers 450 + MinSpareServers 250 + MaxSpareServers 500 + MaxClients 768 + MaxRequestsPerChild 1000 + + +vi /usr/local/lib/php.ini + + + Make sure short tags are enabled: + "short_open_tag = On" + + some other fields to change if using web-based lead loader: + max_execution_time = 330 + max_input_time = 360 + post_max_size = 48M + upload_max_filesize = 42M + default_socket_timeout = 360 + + +cd /usr/local +wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.zip +unzip eaccelerator-0.9.5.3.zip +cd eaccelerator-0.9.5.3 +export PHP_PREFIX="/usr/local" +$PHP_PREFIX/bin/phpize +./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config +make +make install +vi /usr/local/lib/php.ini + + + Add the following lines to the dynamic extensions section of php.ini: + (you may need to change the extension location depending on your install of php) +zend_extension="../../../usr/local/eaccelerator-0.9.5.3/modules/eaccelerator.so" +eaccelerator.shm_size="48" +eaccelerator.cache_dir="/tmp/eaccelerator" +eaccelerator.enable="1" +eaccelerator.optimizer="1" +eaccelerator.check_mtime="1" +eaccelerator.debug="0" +eaccelerator.filter="" +eaccelerator.shm_max="0" +eaccelerator.shm_ttl="0" +eaccelerator.shm_prune_period="0" +eaccelerator.shm_only="0" +eaccelerator.compress="1" +eaccelerator.compress_level="9" + +mkdir /tmp/eaccelerator +chmod 0777 /tmp/eaccelerator +ls -l /tmp/eaccelerator +php -v + +/usr/local/apache2/bin/apachectl startssl + + +cpan + +install Curses +install Getopt::Long +install Net::Domain +quit + +cd /usr/local +wget http://superb-east.dl.sourceforge.net/sourceforge/mtop/mtop-0.6.6.tar.gz +gunzip mtop-0.6.6.tar.gz +tar xvf mtop-0.6.6.tar +cd mtop-0.6.6 +perl Makefile.PL +make +make install +/usr/local/bin/mtop --dbuser=root --seconds=3 + + +cd /usr/local +wget http://download.berlios.de/sipsak/sipsak-0.9.6-1.tar.gz +gunzip sipsak-0.9.6-1.tar.gz +tar xvf sipsak-0.9.6-1.tar +cd sipsak-0.9.6 +./configure +make +make install +/usr/local/bin/sipsak --version + + + + +#### OPTIONAL 1.2.X VERSIONS OF ASTERISK #### +(1.4.X instructions are further down) + +mkdir /usr/src/asterisk +cd /usr/src/asterisk +wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.2.30.2.tar.gz +wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.2.27.tar.gz +wget http://downloads.digium.com/pub/libpri/releases/libpri-1.2.8.tar.gz +gunzip asterisk-1.2.30.2.tar.gz +tar xvf asterisk-1.2.30.2.tar +gunzip zaptel-1.2.27.tar.gz +tar xvf zaptel-1.2.27.tar +gunzip libpri-1.2.8.tar.gz +tar xvf libpri-1.2.8.tar +cd ./zaptel-1.2.27 +wget http://download.vicidial.com/packages/newt-0.51.6.tar.gz +gunzip newt-0.51.6.tar.gz +tar xvf newt-0.51.6.tar +cd newt-0.51.6 +./configure +make +make install +cd ../ +ln -s /usr/lib/libnewt.so.0.51.6 /usr/lib/libnewt.so.0.51 +make clean +make zttool +make +make install +cd ../libpri-1.2.8 +make clean +make +make install +cd ../asterisk-1.2.30.2 +cd apps +wget http://www.eflo.net/files/app_amd2.c +mv app_amd2.c app_amd.c +vi Makefile + + + replace this line(line 32): + app_mixmonitor.so app_stack.so + with this line: + app_mixmonitor.so app_stack.so app_amd.so + + +wget http://www.eflo.net/files/amd2.conf +mkdir /etc/asterisk +mv amd2.conf /etc/asterisk/amd.conf +wget http://www.eflo.net/files/meetme_DTMF_passthru-1.2.23.patch +patch -p1 < ./meetme_DTMF_passthru-1.2.23.patch + + + - File to patch: app_meetme.c + + +wget http://www.eflo.net/files/meetme_volume_control_1.2.16.patch +patch -p1 < ./meetme_volume_control_1.2.16.patch + + + - File to patch: app_meetme.c + + +cd ../ +wget http://www.eflo.net/files/cli_chan_concise_delimiter.patch +patch -p1 < ./cli_chan_concise_delimiter.patch + + + - File to patch: cli.c + +wget http://download.vicidial.com/asterisk-patches/1.2-gsm-gcc4.2.patch +patch -p1 ./codecs/gsm/Makefile 1.2-gsm-gcc4.2.patch + +wget http://download.vicidial.com/asterisk-patches/app_waitforsilence.c +mv -f app_waitforsilence.c apps/app_waitforsilence.c +wget http://www.eflo.net/files/enter.h +wget http://www.eflo.net/files/leave.h +mv -f enter.h apps/enter.h +mv -f leave.h apps/leave.h + +make clean +make +make install + +make samples + +cd /var/lib/asterisk/mohmp3/ +mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-sunshine.mp3 > /var/lib/asterisk/mohmp3/fpm-sunshine.raw +sox -r 44100 -w -s -c 1 fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav +sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm +sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm +mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-calm-river.mp3 > /var/lib/asterisk/mohmp3/fpm-calm-river.raw +sox -r 44100 -w -s -c 1 fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav +sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm +sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm +mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-world-mix.mp3 > /var/lib/asterisk/mohmp3/fpm-world-mix.raw +sox -r 44100 -w -s -c 1 fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav +sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm +sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm +mkdir ../orig-mp3 +mv -f *.mp3 ../orig-mp3/ +mkdir ../quiet-mp3 +cd ../quiet-mp3 +sox -r 44100 -w -s -c 1 ../mohmp3/fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav vol 0.25 +sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm +sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm +sox -r 44100 -w -s -c 1 ../mohmp3/fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav vol 0.25 +sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm +sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm +sox -r 44100 -w -s -c 1 ../mohmp3/fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav vol 0.25 +sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm +sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm +rm -f ../mohmp3/*.raw + + + +############# INSTRUCTIONS FOR Asterik 1.4 release #################### +Downgrading back to 1.2.X from 1.4.X: +rm -f /usr/lib/asterisk/modules/* +rm -f /usr/include/asterisk/* + + +NOTE: If you want to use Asterisk 1.4, you will need to make sure that you set +the servers table "asterisk_version" field to the proper version number and you +can use the docs/conf_examples/extensions.conf.sample-1.4 file for your default +dialplan + +### If upgrading from 1.2.X Asterisk, run the following lines first: +rm -f /usr/lib/asterisk/modules/app_curl.so +rm -f /usr/lib/asterisk/modules/app_cut.so +rm -f /usr/lib/asterisk/modules/app_enumlookup.so +rm -f /usr/lib/asterisk/modules/app_eval.so +rm -f /usr/lib/asterisk/modules/app_groupcount.so +rm -f /usr/lib/asterisk/modules/app_math.so +rm -f /usr/lib/asterisk/modules/app_md5.so +rm -f /usr/lib/asterisk/modules/app_setcidname.so +rm -f /usr/lib/asterisk/modules/app_setcidnum.so +rm -f /usr/lib/asterisk/modules/app_setrdnis.so +rm -f /usr/lib/asterisk/modules/app_txtcidname.so +rm -f /usr/lib/asterisk/modules/chan_features.so +rm -f /usr/lib/asterisk/modules/format_au.so +rm -f /usr/lib/asterisk/modules/format_pcm_alaw.so +rm -f /usr/lib/asterisk/modules/pbx_functions.so + +### If downgrading from 1.4.X Asterisk to 1.2.X asterisk: +rm -f /usr/lib/asterisk/modules/app_channelredirect.so +rm -f /usr/lib/asterisk/modules/app_followme.so +rm -f /usr/lib/asterisk/modules/app_morsecode.so +rm -f /usr/lib/asterisk/modules/app_speech_utils.so +rm -f /usr/lib/asterisk/modules/format_h264.so +rm -f /usr/lib/asterisk/modules/func_base64.so +rm -f /usr/lib/asterisk/modules/func_cdr.so +rm -f /usr/lib/asterisk/modules/func_channel.so +rm -f /usr/lib/asterisk/modules/func_curl.so +rm -f /usr/lib/asterisk/modules/func_cut.so +rm -f /usr/lib/asterisk/modules/func_db.so +rm -f /usr/lib/asterisk/modules/func_env.so +rm -f /usr/lib/asterisk/modules/func_global.so +rm -f /usr/lib/asterisk/modules/func_groupcount.so +rm -f /usr/lib/asterisk/modules/func_language.so +rm -f /usr/lib/asterisk/modules/func_logic.so +rm -f /usr/lib/asterisk/modules/func_math.so +rm -f /usr/lib/asterisk/modules/func_md5.so +rm -f /usr/lib/asterisk/modules/func_moh.so +rm -f /usr/lib/asterisk/modules/func_rand.so +rm -f /usr/lib/asterisk/modules/func_realtime.so +rm -f /usr/lib/asterisk/modules/func_sha1.so +rm -f /usr/lib/asterisk/modules/func_strings.so +rm -f /usr/lib/asterisk/modules/func_timeout.so +rm -f /usr/lib/asterisk/modules/res_clioriginate.so +rm -f /usr/lib/asterisk/modules/res_convert.so +rm -f /usr/lib/asterisk/modules/res_smdi.so +rm -f /usr/lib/asterisk/modules/res_snmp.so +rm -f /usr/lib/asterisk/modules/res_speech.so + +##### Asterisk 1.4.21.2 with zaptel + +mkdir /usr/src/asterisk-1.4 +cd /usr/src/asterisk-1.4 +wget http://downloads.digium.com/pub/asterisk/old-releases/asterisk-1.4.21.2.tar.gz +wget http://downloads.digium.com/pub/zaptel/zaptel-1.4.12.1.tar.gz +wget http://downloads.digium.com/pub/libpri/libpri-1.4.9.tar.gz +tar xzf asterisk-1.4.21.2.tar.gz +tar xzf zaptel-1.4.12.1.tar.gz +tar xzf libpri-1.4.9.tar.gz +cd libpri-1.4.9 +make clean; make; make install +cd ../zaptel-1.4.12.1 +./configure; make clean; make; make install +cd ../asterisk-1.4.21.2 +wget http://www.eflo.net/files/enter.h +wget http://www.eflo.net/files/leave.h +mv -f enter.h apps/enter.h +mv -f leave.h apps/leave.h +wget http://download.vicidial.com/asterisk-patches/1.4-gsm-gcc4.2.patch +patch -p1 ./codecs/gsm/Makefile 1.4-gsm-gcc4.2.patch +wget http://download.vicidial.com/conf/res_agi_defunct.patch +patch -p1 < res_agi_defunct.patch + File to patch: res/res_agi.c +cd apps/ +rm -f app_waitforsilence.c +wget http://download.vicidial.com/conf/app_waitforsilence.c +cd ../channels/ +rm chan_sip.c +wget http://download.vicidial.com/conf/chan_sip.c +cd ../ +./configure; make clean; make; make install +make samples +modprobe zaptel +modprobe ztdummy + + + + +##### Asterisk 1.4.27 with Dahdi + +cd /usr/src/asterisk-1.4/ +wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.26.3.tar.gz +wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.27-rc3.tar.gz +wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.10.2.tar.gz +wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/releases/dahdi-linux-2.2.0.2.tar.gz +wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/releases/dahdi-tools-2.2.0.tar.gz +tar xvfz dahdi-tools-2.2.0.tar.gz +tar xfz dahdi-linux-2.2.0.2.tar.gz +tar xfz libpri-1.4.10.2.tar.gz +tar xfz asterisk-1.4.27-rc3.tar.gz +tar xfz asterisk-1.4.26.3.tar.gz +cd ../dahdi-linux-2.2.0.2 +make +make install +cd ../dahdi-tools-2.2.0 +./configure +make +make install +make config +dahdi_genconf modules +dahdi_cfg +modprobe dahdi +cd ../libpri-1.4.10.2 +./configure +make +make install +cd ../asterisk-1.4.27-rc3 +wget http://download.vicidial.com/asterisk-patches/1.4-gsm-gcc4.2.patch +wget http://download.vicidial.com/asterisk-patches/moh-alpha-sort-1.4.26.2.patch +wget http://download.vicidial.com/asterisk-patches/netborder-cpd-1.4.patch +wget http://download.vicidial.com/asterisk-patches/app_waitforsilence.c-1.4 +wget http://download.vicidial.com/asterisk-patches/leave.h +wget http://download.vicidial.com/asterisk-patches/enter.h +mv -f enter.h apps/enter.h +mv -f leave.h apps/leave.h +patch -p1 ./codecs/gsm/Makefile 1.4-gsm-gcc4.2.patch +patch -p1 < moh-alpha-sort-1.4.26.2.patch +patch -p1 < netborder-cpd-1.4.patch +./configure +make +make install +asterisk -vvvvvvvvvvvvvvvvvvgc + + + + +#### pureftpd FTP server installation instructions #### + +cd /usr/local +wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.20.tar.gz +gunzip pure-ftpd-1.0.20.tar.gz +tar xvf pure-ftpd-1.0.20.tar +cd pure-ftpd-1.0.20 +groupadd ftpgroup +useradd -g ftpgroup -d /dev/null -s /etc ftpuser +./configure --with-everything --with-largefile --with-virtualchroot +make install-strip +pure-pw useradd cron -u ftpuser -d /home/cron +/usr/local/sbin/pure-ftpd & diff --git a/agc_2-X/branches/agc_2.2.0/docs/REQUIREMENTS.txt b/agc_2-X/branches/agc_2.2.0/docs/REQUIREMENTS.txt new file mode 100644 index 00000000..93032a8c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/REQUIREMENTS.txt @@ -0,0 +1,33 @@ +This is the basic list of requirements for using astGUIclient. It is highly +recommended that you read the SCRATCH_INSTALL doc for more information on +installing the package properly. + +Requirements for installing astGUIclient/VICIDIAL on an Asterisk server: +- Asterisk 1.2.27 and 1.4.21.2 recommended but will work with most older Asterisk versions +- ViciDial does NOT support Asterisk 1.6.X at this time due to stability issues +- Zap trunks(T1/E1 or PSTN lines), IAX2 trunks or SIP trunks required +- If using VOIP trunks and VICIDIAL auto-dial, you must have trunks registered +- It is strongly suggested that you have a zaptel timer like a PSTN/T1/E1 card or ztdummy +- Client phones can be SIP/IAX/Zap +- In extensions.conf you must use the 'o' Dial flag on your outbound extensions +- In extensions.conf you must have the following line in your default context: + exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})) +- No modification of outgoing callerID (you can set callerID through admin) +- Access to Apache/PHP webserver, php.ini memory_limit set to 48M +- In php.ini you must have uploads turned on to use the web lead loader +- Even so eAccelerator is technically not mandatory, it is strongly recommended. +- SoX 12.17.5 or greater must be installed +- GNU screen 3.9.15 or greater must be installed +- ntp must be installed and syncd to same time source as any other servers +- Perl5 with several CPAN modules(Time::HiRes, DBD::mysql, Net::Telnet, etc) +- asterisk-perl-0.08 perl module required (0.09 version does NOT work) +- Access to MySQL server and mysqlclientlibs, must be version 4.0.X or higher +- Several entries in the crontab for interval-running scripts and keepalives + +Requirements for using the astGUIclient/VICIDIAL web-client versions +- Recommended 500MHz speed or faster and 64MB RAM or more +- Any Unix with Xwindows, Mac OS9/X or Win98/2k/XP operating system +- Recommended use Firefox for all OSs (will run under IE5.0 or greater as well) + Will also run on Opera 8.5+, Mozilla 1.7+, Netscape 8+ and IE 6.0 +- ntp or sntp time syncing to same source as server recommended +- Proper configuration settings for each phone/computer in the phones DB table diff --git a/agc_2-X/branches/agc_2.2.0/docs/SCRATCH_INSTALL.txt b/agc_2-X/branches/agc_2.2.0/docs/SCRATCH_INSTALL.txt new file mode 100644 index 00000000..f5f31054 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/SCRATCH_INSTALL.txt @@ -0,0 +1,2666 @@ +Asterisk/astguiclient install from scratch. v.2.2.0 2010-01-07 + By the VICIDIAL group info@vicidial.com + +**** IMPORTANT - In order for vicidial/astguiclient to function correctly please +read the REQUIREMENTS.txt for a minimum requirements list. *** + +End-user Manuals for Agents and Managers are available from http://www.eflo.net + +There is also an easier Ubuntu install doc: Ubuntu_Install.txt + +If you want to skip the experience of installing step-by-step completely, take +a look at our ISO installer: http://www.vicibox.com + + +This document will be depricated and not supported after the 2.2.0 release. + + + + +This document is meant to be a very in-depth step-by-step explanation of +installing the Asterisk open-source PBX on a Linux system and also installing +the astGUIclient suite. The instructions will assume starting from nothing and +will try to give several side step instructions to account for some differences +in choices of hardware and software. + +The actual installation that I am doing as I write these instructions will be on +the following hardware: + (Changed to more realistic modern hardware) + - Intel Core 2 Quad CPU + - SuperMicro Motherboard + - 4GB RAM + - 160GB Western Digital SATA ES drive + - Sangoma VoiceTime USB hardware timer + - 2U rackmount case with 450W power supply + - VOIP Phone will be a Zoiper softphone because it's free and does both IAX/SIP + +All of these parts cost less than $1500 together. + +This is our test Asterisk server and functions well for 100 or so extensions +in use if it were to be used in production. A size that is optimal for many +small offices operating with a fractional data/voice T1 for instance. This +hardware would also be good for a stand-alone ViciDial system with about 50 +agents handling inbound calls with full recording, or 25 agents doing heavy +predictive outbound dialing. + +For hardware you can use almost any modern CPU processor(Intel core2, Xeon, etc) +, and you can use any Digium or Sangoma telco interface card or USB timer. Both +of these choices will determine what the capacity of your Asterisk/ViciDial +server will be. If you want to do simple IVR or conference calling and a few +extensions, then an Intel Celeron 2GHz with a single Sangoma USB VoiceTime +dongle will work just fine for you. If you want to use the ViciDial applications +, you will usually want to get as high-powered of a machine as you can afford. + +The following is assumed for these installation procedures: +- You have access to a CD burner and 3 blank CDs(or 1 CD and 1 DVD) +- You have some sort of broadband internet connection +- You understand basic linux commands and can use a file editor like vi +- You have all of the necessary hardware: + - a pentium-class computer + - a digium telco interface card with appropriate telco lines + - at least 1 SIP/IAX VOIP device(this can be a softphone too) + - a Local Area Network(LAN) with extra ports enough for the new server +and the number of phones you want + + + + + +PHASE 1: INSTALLING AN OPERATING SYSTEM + + +This installation will be using Slackware 12 for the linux distribution, +Slackware 12.X will also work with these instructions. There are several easier +linux distributions and there are others that are more popular, but Slackware is +a nice non-commercial distro that has been around for a long time and proven +itself to be a very uncluttered and stable platform for development. + +1. Go to http://www.ultimatebootcd.com/ , download the latest bootcd and +burn it to a CD. This will be needed to partition the hard drive prior to +installation of Slackware linux. The latest version as of this writing is 4.1 +(If you have problems with your hardware booting some of the utilities with 4.1 +I suggest trying 1.7, that version has older utilities, but still gets the job +done and works on every machine I've tried it on). + +2. Insert the ultimatebootcd you just burned into your CDROM drive and boot +to it. You will select "filesystem utilities" and then "XFDISK" + +3. Select any old partitions and delete them and then create 2 new +partitions: + - 150000 MB, select yes to validate, change partition type to "Linux Native" + - 3332 MB, select yes to validate, change partition type to "Linux Swap" + - press F3 to exit and let it do it's thing, this will take an hour or so. + +4. Go to http://www.slackware.com/getslack/ to download Slackware linux. +The most recent release we recommend is 11.0. This release fits on 3 CDs +or 1 DVD. Download both installation disks from any close server listed on the +download page and burn them both to CDs. + +5. Insert Disk 1 of the Slackware installation CD and boot your computer. +If you have a simple computer with just an IDE drive just hit enter at the boot: +prompt. If you have other hard drive adapters(SCSI/RAID/SATA/etc..) you will +need to look at the Slackware installation help page to determine what boot +image you will need to use to install Slackware correctly. + +6. Login as root and type "setup" at the prompt to go to the setup menu. +7. Go to ADDSWAP and hit Enter +8. Select the swap partition you just created and hit Yes, The swap +partition will then be formatted +9. Select the root partiton you just created as Linux Native and hit +Select, then select "ext3" for the file system, then select 4096 for the inodes +and the root partition will then be formatted +10. Select "Install Slackware from a CD" and hit OK +11. Select "auto" installation and hit OK +12. Select every package except for "KDEI" and hit OK +13. Select "full" installation and hit OK +14. Insert the next Slackware installation disk (disk 2) when it prompts +you, and hit OK to continue +15. Now you will select the boot kernel that you will use from now on. If +you have a simple system with IDE drives you can probably just select "skip" and +go to the next step. If not then you should probably select "cdrom" and select +the kernel from the list that you selected to boot into the installation. +16. You can make a bootdisk if you like, but you don't have to. +17. For Modem you can select "no modem" and hit OK to continue +18. Enable hotplug, hit Yes to continue +19. Install lilo "simple" and hit OK to continue +20. lilo frame buffer console 640x480 is safe choice if you're not sure +21. Optional Lilo append, leave blank and hit OK to continue +22. Lilo destination, I usually choose MBR but root works most of the time +23. Mouse, select the mouse type that you have hooked up, or select ps/2 +24. Load GPM at boot time, Hit Yes to continue +25. select Yes to configure your network +26. Hostname, we are typing "phone" +27. network, we are typing our local domain name +28. IP address, we are selecting Static IP, here's what we enter for +network, you should enter a network setup that will work with your local LAN: + - IP address: 10.10.10.15 + - subnet: 255.255.0.0 + - gateway: 10.10.10.1 + - name server: 10.10.10.1 +29. Accept your network settings +30. Startup services to run, change nothing and select OK to continue +31. select NO for custom screen fonts +32. Hardware clock to UTC, select NO +33. Select your time zone and hit OK +34. I usually select gnome as the window manager, even though you won't be +using it on this machine +35. Select Yes to enter a root password. type something that you will +remember. +36. Setup of Slackware Linux is complete, hit OK and EXIT then press +CTRL-ALT-DELETE to reboot your computer + + + + + +PHASE 2: COMPILING A CUSTOM LINUX KERNEL + + +From this step on you should be able to continue the installation remotely +although it is wise to at least have quick access to the machine if something +goes wrong. + +To connect remotely through SSH on linux type "slogin serveripaddress" or to use +Windows to connect you can use a piece of free software called putty available +here: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html +Also, for windows you can use SSH file transferring(SFTP) with a program called +filezilla: http://filezilla.sourceforge.net/ + +This is an optional step if your linux system is running, but compiling your own +custom kernel is always a way to optimize your system for the hardware you have +installed or a way to remove the unnecesary modules that are in the default +kernel. You will definately want to build your own kernel if you have a multi +processor machine. If you are new to Linux you probably do not want to do this. + +If you are using a newer Digium Octasic-based echo-cancellation quad T1/E1 card +then you need to use a 2.6 Linux kernel in order to use the echo-cancellation +functionality of the card. + +If you want to compile a 2.6 kernel then start with OPTION 1: + +OPTION 1: compile Linux kernel 2.6.17 *NOT REQUIRED* + +1. cd /usr/src +2. wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.11.tar.gz +3. gunzip linux-2.6.17.11.tar.gz +4. tar xvf linux-2.6.17.11.tar +5. mv -f /usr/src/linux /usr/src/linux-old +6. ln -s /usr/src/linux-2.6.17.11 /usr/src/linux +7. cd linux +8. make mrproper # prep for kernel assembly +9. make menuconfig # launch configuration menu app + (this part is very dependant upon your own hardware) + (what is mentioned below are only changes beyond what is selected by default) + + Block Layer ---> + -> IO Scheduler + this should be set to CFQ if you do not have a hardware caching controller + if you have a hardware caching controller DEADLINE or NO-OP are the best + choices, if you have a battery backuped caching controller that is set to write-back you should use NO-OP. + Processor Type and Features ---> + ->Symmetric multi-processing support + (if you have multiple processors or a Dual-core or HT enabled) + ->High Memory Support + (if you have more than 900MB of System RAM move upto 4GB) + ->Timer frequency (1000 HZ) + (change to 1000Hz if using ztdummy for timer on pre 2.6.17 kernel) + ->[*]Tickless System (enable UNLESS using ztdummy on pre 2.6.17 kernel) + ->[*]Enable Kernel irq balancing + ->Preemption Model (No Forced Preemption (Server)) + (^This one is very important!!!) + Power management options (ACPI, APM) ---> + ->ACPI (Advanced Configuration and Power Interface) Support + (enable all down to Processor and thermal zone) + Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> + ->[*] PCI Express support + (if using Sangoma PCI Express card) + Networking ---> + Amateur Radio support ---> + <*> Amateur Radio AX.25 Level 2 protocol + [*] AX.25 DAMA Slave support + <*> Amateur Radio NET/ROM protocol + <*> Amateur Radio X.25 PLP (Rose) + (all needed for new Digium Octasic drivers) + Device Drivers ---> + ATA/ATAPI/MFM/RLL support ---> + <*> SCSI emulation support + (needed for SATA drives, also further down check chipset drivers) + SCSI device support ---> + <*> RAID Transport Class + (needed if you are using a RAID) + SCSI low-level drivers ---> + <*> Serial ATA (SATA) support + (required if using SATA drives) + (if using a SCSI RAID card pick correct driver here) + Multi-device support (RAID and LVM) ---> + (select proper RAID types if using Linux RAID) + Network device support ---> + Ethernet (10 or 100Mbit) ---> + Ethernet (1000 Mbit) ---> + (select proper drivers for the eype of network card you have) + Character devices ---> + <*> Enhanced Real Time Clock Support + (double-check that this is enabled, very important) + Real Time Clock ---> + <*> RTC class + (double-check that this is enabled, very important) + File systems ---> + <*> Ext3 journalling file system support + (important if using ext3 filesystem) + pseudo filesystems ---> + <*> Virtual memory file system support + (this is usually checked anyway but mandatory for recording to RAM[tmpfs]) + Library routines ---> + <*> CRC-CCITT functions + <*> CRC16 functions + <*> CRC32c (Castagnoli, et al) Cyclic Redundancy-Check + (important for new Digium Octasic drivers) + EXIT AND SAVE YOUR CONFIGURATION + +10. make clean # clean up the kernel build areas +11. make bzImage # create a kernel bzImage +12. make modules # build the modules into the image +13. make modules_install # install kernel modules +14. cp arch/i386/boot/bzImage /boot/bzImage-XXXX # copy image + (put whatever you want in XXXX, that is your new kernel name) +15. cp System.map /boot/System.map-XXXX # copy system map +16. mv -f /boot/System.map /boot/System.map-orig +17. ln -s /boot/System.map-XXXX /boot/System.map # symlink map +18. vi /etc/lilo.conf # edit the lilo boot config file + image=/boot/bzImage-XXXX # add the new image in above- + label=test-XXXX # the previous one + root=/dev/hda1 # device of root partition + read-only +19. /sbin/lilo # run the lilo reload script +20. vi /etc/fstab # to include the following line for recording to RAM + tmpfs /var/spool/asterisk/monitor tmpfs rw 0 0 +21. shutdown -r 0 # reboot machine and hope it worked + + +After compiling your kernel you can run a few commands to verify that you are +running your new kernel and that devices are running as they are supposed to: + ps --info (will show you your linux kernel version and other info) + cat /proc/cpuinfo (will show you processor type and more than one if SMP) + top (will show you system memory) + + + + +PHASE 3: INSTALLING SOFTWARE BEFORE ASTERISK + +In this step we will be installing software that Asterisk and/or astGUIclient +needs to be able to function to its fullest ability. Not all of these software +packages are manditory to successfully install Asterisk and some of them can be +installed on other machines on your network like MySQL or Apache. But, in this +installation we are assuming that there are no other machines on our network to +help the Asterisk server, so it must have everything it needs installed locally. + + + +SUBPHASE 3.0: install new Gnu Make + +A new version of the "make" compilation application replaced the 4-year-old +version that most Linux distros(Including Slackware) use. This is only needed +if you will be building Asterisk from the 1.4 release tree. + + - wget http://mirrors.kernel.org/gnu/make/make-3.81.tar.gz + - gunzip make-3.81.tar.gz + - tar xvf make-3.81.tar + - cd make-3.81 + - ./configure + - make + - make install + + + +SUBPHASE 3.1: MySQL requirements + +You must at least have Mysql client installed on each VICIDIAL server, but you +only need one database server. + +MySQL is a fast database system that is very easy to integrate with any +application. You can either install the server on the local Asterisk system or +have one somewhere on your network. For our purposes, we are creating an Asterisk +installation that is self contained and needs no other local servers to operate, +so we will need to install mysql on this machine. +*REQUIRED and OPTIONAL* (only install MySQL server locally if you don't want to use an installation +on another machine, Mysql client is required on all VICIDIAL servers) +NOTE: a minimum of MySQL server 5.0.X is required +You should increase the connect_timeout so connections do not fail on +a more loaded system. + + Go to http://www.mysql.com/ and download the mysql package + - to install this directly on the command line type: + - cd /usr/local/ + - wget http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-5.0/mysql-5.0.67.tar.gz + - gunzip mysql-5.0.67.tar.gz + - tar xvf mysql-5.0.67.tar + - cd mysql-5.0.67 + - groupadd mysql + - useradd -g mysql mysql + - ./configure --prefix=/usr/local/mysql --enable-shared=yes --with-readline --enable-thread-safe-client --enable-large-files --enable-assembler --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-big-tables + **** If only MySQL client is needed for DBD::mysql then use this: + - "./configure --prefix=/usr/local/mysql --without-server --enable-shared=yes --with-readline" + - make + - make install + - PATH=$PATH:$HOME/bin:/usr/local/mysql/bin/ + - export PATH + - PATH=$PATH:$HOME/bin:/usr/local/mysql/include/mysql/ + - export PATH + - cp /usr/local/mysql-5.0.67/libmysql/.libs/libmysqlclient.so /usr/lib/ + - cp /usr/local/mysql-5.0.67/libmysql/.libs/libmysqlclient.so.15 /usr/lib/ + - cd /usr/local/mysql-5.0.67 + - scripts/mysql_install_db + - chown -R root /usr/local/mysql + - chown -R mysql /usr/local/mysql/var + - chgrp -R mysql /usr/local/mysql + - cp support-files/my-huge.cnf /etc/my.cnf + - /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache & + - ln -s /tmp/mysql.sock /var/run/mysql/mysql.sock + - vi /etc/my.cnf + # add this line below 'skip-locking' + skip-name-resolve + # comment out the line 'log-bin=mysql-bin' + max_connections = 200 + connect_timeout=60 + + **** For some systems you may need to add the mysql/bin directory to your PATH: + - PATH=$PATH:$HOME/bin:/usr/local/mysql/bin/ + - export PATH + **** you may also want to add those two lines to your /root/.bash_profile file + **** For Mysql 5 tree only, you also may need to copy the libmysqlclient.so file to libs + - cp /usr/local/mysql-5.0.67/libmysql/.libs/libmysqlclient.so /usr/lib/ + - cp /usr/local/mysql-5.0.67/libmysql/.libs/libmysqlclient.so.15 /usr/lib/ + - you are done + + ** INSTALLATION NOTE ** + If you are having Linuxthreads problems upon onfigure, just execute the following command: + echo '/* Linuxthreads */' >> /usr/include/pthread.h + + ***** NOTE: if you will be using any of the DBI perl scripts: ***** + Every machine that you will be using the newer BDI perl scripts on will need + to have the perl modules DBI and DBD::mysql installed on them. To do this + you will also need to at least have the MySQL client installed on the server + (see above) then you will need to go to 'cpan' and "install DBI" and + "install DBD::mysql". You may need to "force install DBD::mysql" if the DBD + tests fail on your first try, but that is OK since the tests are not needed + + + +SUBPHASE 3.2: Installing Perl Modules + +NOTE - you can install ActiveState http://www.activestate.com perl, but it is +not required. Here's the source for ActiveState +Perl 5.8: (it's free) + http://downloads.activestate.com/ActivePerl/src/5.8/AP817_source.tgz + +cpan is the "Comprehensive Perl Archive Network". It's a mirrored archive of +most of the perl modules out there complete with a installation and management +command-line interface. Here's what you do to start it: +*REQUIRED* (needed for perl AGIs) + +1. perl -MCPAN -e shell # type in the command line +2. You will then go through CPAN setup, just hit ENTER for most prompts except +for the mirrors list, you will want to select at least 4 mirrors + - yes for manual configuration + - enter for the next 18 prompts + - for the "make install options" it's a good idea to add UNINST=1 + - enter for the next 4 prompts + - select your continent and country + - select a few cpan mirrors + - enter for the next 2 prompts +3. Once you see the cpan> prompt you can begin installing modules +4. If you've never installed cpan before you should probably install the +following modules first: (say YES if asked to install prerequisites) + - install MD5 + - install Digest::MD5 + - install Digest::SHA1 + - install readline (just hit Enter when it asks for operator) + - install Bundle::CPAN + - reload cpan +- then you can install other modules: + - install DBI + - force install DBD::mysql (must at least have mysqlclientlibs installed) + - install Net::Telnet + - install Time::HiRes + - install Net::Server + - install Switch + - install Mail::Sendmail + - install Unicode::Map (needed for super list loader Excel) + - install Jcode (needed for super list loader Excel) + - install Spreadsheet::WriteExcel (needed for super list loader Excel) + - install OLE::Storage_Lite (needed for super list loader Excel) + - install Proc::ProcessTable (needed for super list loader Excel) + - install IO::Scalar (needed for super list loader Excel) + - install Spreadsheet::ParseExcel (needed for super list loader Excel) +- if Spreadsheet::ParseExcel fails to install try running the following: + - force install Scalar::Util (this will enable weak references) + - install Spreadsheet::ParseExcel +- then quit cpan, you are done +5. Go to http://asterisk.gnuinter.net/ and download the asterisk-perl module +(backup link: http://download.vicidial.com/packages/asterisk-perl-0.08.tar.gz) +NOTE: Do NOT use the 0.09 or any newer version, they do not work with VICIDIAL + - to install this directly on the command line type: + - cd /usr/local + - wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz + - gunzip asterisk-perl-0.08.tar.gz + - tar xvf asterisk-perl-0.08.tar + - cd asterisk-perl-0.08 + - perl Makefile.PL + - make all + - make install + - you are done + + + +SUBPHASE 3.3: Installing other utilities + +Sox is an audio utility that allows you to mix audio files together at their +start point into one file. it is necessary for Asterisk recordings that record +in and out as separate files +*REQUIRED* (needed for recording mixing) + +1. Go to http://sourceforge.net/projects/sox/ and download the sox package + - to install this directly on the command line type: + - cd /usr/local + - cd /usr/local + - wget http://easynews.dl.sourceforge.net/sourceforge/sox/sox-14.0.1.tar.gz + - gunzip sox-14.0.1.tar.gz + - tar xvf sox-14.0.1.tar + - cd sox-14.0.1 + - ./configure --disable-shared + - make (if alsa.o errors add --disable-alsa-dsp to configure and redo) + - make install + - you are done + + +LAME is an MP3 encoder used to convert audio files from WAV to MP3. We prefer GSM +usually, but some users have standardized on MP3 so they would need this utility +to be loaded to use that option. +*OPTIONAL* (only needed if you will be converting recordings to MP3) + +2. Go to http://lame.sourceforge.net/ and download the lame package + - to install this directly on the command line type: + - cd /usr/local + -wget http://easynews.dl.sourceforge.net/sourceforge/lame/lame-3.96.1.tar.gz + -gunzip lame-3.96.1.tar.gz + -tar xvf lame-3.96.1.tar + -cd lame-3.96.1 + -./configure + -make + -make install + - you are done + + + +Screen is a terminal emulator that allows you to run a process as command line +and be able to detach from them('Ctrl+a' then 'd') and log all output of the +terminal to a screenlog file if desired(add a '-L' to the launching command). +In our installations this is how we launch Asterisk upon startup and still have +the ability to log output and still attach to the screen that executed asterisk +originally. +*REQUIRED* *MANDITORY FOR VICIDIAL SERVERS* + +3. Go to http://www.gnu.org/software/screen/ and download the screen package + - to install this directly on the command line type: + - cd /usr/local + - wget http://ftp.gnu.org/gnu/screen/screen-4.0.2.tar.gz + or for older version: + - wget http://mirrors.kernel.org/gnu/screen/screen-3.9.15.tar.gz + - gunzip screen-4.0.2.tar.gz + - tar xvf screen-4.0.2.tar + - cd screen-4.0.2 + - ./configure + - make + - make install + - you are done + + +ttyload is a simple terminal application that shows the processor load in a +graphical time-based scrolling graph. We use it to view how loaded the system is +and it visualizes load spikes very well +*OPTIONAL* (only for obsessive admins like me) + +4. Go to http://www.daveltd.com/src/util/ttyload/ and download the ttyload +package + - to install this directly on the command line type: + - cd /usr/local + - wget http://www.daveltd.com/src/util/ttyload/ttyload-0.4.4.tar.gz + - gunzip ttyload-0.4.4.tar.gz + - tar xvf ttyload-0.4.4.tar + - cd ttyload-0.4.4 + - make + - ln -s /usr/local/ttyload-0.4.4/ttyload /usr/bin/ttyload + - you are done + + +ntpd is the network time protocol daemon that matches the time on your machine +with the time of a master server somewhere in the world. We use it to make sure +the time is the same on our client computers and our servers. +*MANDITORY FOR VICIDIAL SERVERS* (install on server and all clients) + +5. Go to http://www.ntp.org/ and download the ntpd package + - to install this directly on the command line type: + - cd /usr/local + - wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.2p3.tar.gz + If you get compilation errors here try 4.1.2: + - wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.1.2.tar.gz + - gunzip ntp-4.2.2p3.tar.gz + - tar xvf ntp-4.2.2p3.tar + - cd ntp-4.2.2p3 + - ./configure + - make + - make install + - vi /etc/ntp.conf (change to just 1 line: "server ntp.myfloridacity.us") + - cp /etc/ntp.conf /etc/ntpd.conf # just to be sure + - /usr/local/bin/ntpdate -u pool.ntp.org # initial sync + - /usr/sbin/ntpd # run it + - you are done + + +iftop is a good console bandwidth visualization tool that shows you active +connections, where they are going to/from and how much of your precious bandwidth +they are using. *OPTIONAL* +NOTE: another good network analysis utility is "iptraf" and is on most system + +6. Go to http://www.ex-parrot.com/~pdw/iftop/ and download the package + - to install this directly on the command line type: + - cd /usr/local + - wget http://www.tcpdump.org/release/libpcap-0.9.4.tar.gz + - gunzip libpcap-0.9.4.tar.gz + - tar xvf libpcap-0.9.4.tar + - cd libpcap-0.9.4 + - ./configure + - make + - make install + - cd /usr/local + - wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz + - gunzip iftop-0.17.tar.gz + - tar xvf iftop-0.17.tar + - cd iftop-0.17 + - ./configure + - make + - make install + - iftop + - you are done + + +ploticus is a free graph creation package that allows you to create line graphs +within PNG files simply by creating a config file and a data file. We use this +package along with the included PHP script to generate server performance graphs +that can be displayed real-time on a web page. +*OPTIONAL* (only needed for server performance graphing web reports) + +7. Go to http://ploticus.sourceforge.net/ and download the package + - to install this directly on the command line type: + NOTE: you may have to edit the Makefile to remove X11 if you don't have it + - cd /usr/local + - wget http://superb-west.dl.sourceforge.net/sourceforge/ploticus/pl240src.tar.gz + - gunzip pl240src.tar.gz + - tar xvf pl240src.tar + - cd pl240src/src/ + - make clean + - make + - make install + - you are done + NOTE: uncomment these lines to compile on systems without X11(v232): + NOXFLAG = -DNOX11 + XLIBS = + XOBJ = + NOTE: for the graphics to work on the AST_server_performance page you will + need the 'pl' script to be linked or copied into your htdocs/vicidial/ploticus directory + NOTE: you may need to edit the Makefile for ploticus if you do not have X11 + + +openssh is a remote login protocol server that is always a good idea to have +updated on your system, so we're going to install a new version now. +*OPTIONAL* (only updated as a precaution, not manditory) + [NOTE: newer zlib is needed before installing] + +8. Go to http://www.openssh.org/ and download the linux source for openssh + - to install this directly on the command line type: + - cd /usr/local + - wget http://www.zlib.net/zlib-1.2.3.tar.gz + - gunzip zlib-1.2.3.tar.gz + - tar xvf zlib-1.2.3.tar + - cd zlib-1.2.3 + - ./configure + - make + - make install + - cd /usr/local + - wget http://ftp.arcane-networks.fr/pub/OpenBSD/OpenSSH/portable/openssh-5.2p1.tar.gz + - gunzip openssh-5.2p1.tar.gz + - tar xvf openssh-5.2p1.tar + - cd openssh-5.2p1 + - ./configure + - make + - make install + - you are done + + +openssl is the open-source SSL libraries package, and to install a fake SSL cert +locally and have it work with apache, you need it installed on your machine +*OPTIONAL* (only install openssl if you want to use SSL secured web pages on +your locally installed copy of Apache web server) + +9. Go to http://www.openssl.org/ and download the linux source for openssl + - to install this directly on the command line type: + - cd /usr/local + - wget http://www.openssl.org/source/openssl-0.9.8j.tar.gz + - gunzip openssl-0.9.8j.tar.gz + - tar xvf openssl-0.9.8j.tar + - cd openssl-0.9.8j + - ./config + - make + - make install + - you are done + + +apache is a web server that allows you to use many different modules with it to +extend it's functionality. In order to use some of the astguiclient +functionalities we need to have Apache and PHP installed on this machine. +*OPTIONAL* (only install Apache and PHP locally if you don't want to use an +installation on another machine) + +10. Go to http://www.apache.org/ and download the apache unix source + Go to http://www.php.net/ and download the php unix source code + - to install this directly on the command line type: + - cd /usr/local + - wget http://mirror.nyi.net/apache/httpd/httpd-2.2.11.tar.gz + - gunzip httpd-2.2.11.tar.gz + - tar xvf httpd-2.2.11.tar + - wget http://us2.php.net/distributions/php-5.2.9.tar.gz + - gunzip php-5.2.9.tar.gz + - tar xvf php-5.2.9.tar + - cd httpd-2.2.11 + - ./configure --enable-so --with-apxs2 + - make + - make install + - cd ../php-5.2.9 + - ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql + - make + - make install + - cp php.ini-dist /usr/local/lib/php.ini + NOTE: you will want to make sure NOTICE logging is turned off: + error_reporting = E_ALL & ~E_NOTICE ; (this is default) +!!! REQUIRED !!! be sure the memory limit for scripts in php.ini is AT LEAST 48M: + memory_limit = 48M + Make sure short tags are enabled: + short_open_tag = On + some other fields to change if using web-based lead loader: + max_execution_time = 330 + max_input_time = 360 + post_max_size = 48M + upload_max_filesize = 42M + default_socket_timeout = 360 + + - vi /usr/local/apache2/conf/httpd.conf + add the following lines: + "AddType application/x-httpd-php .php .phtml" + "LoadModule php4_module libexec/libphp5.so" + or + "LoadModule php4_module modules/libphp5.so" + modify the index.html line and add index.php to the list + + to disable logging, change: + "CustomLog logs/access_log common" + to this: + "CustomLog /dev/null common" + + to enable web browsing of Recordings on Asterisk server, add this: + Alias /RECORDINGS/ "/var/spool/asterisk/monitorDONE/" + + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + Forcetype application/forcedownload + + + + - /usr/local/apache2/bin/apachectl start + - go to http://your-new-asterisk-server-ipaddress/ to see if it worked + - you are done + NOTE: If using PHP5 you may need to add the following line to php.ini: + short_open_tag = On + + OPTIONAL- Load eAccelerator PHP-caching application: + Even so this is technically an optional part, it is strongly recommended that you install eAccelerator + since it will slash PHPs processing power requirements greatly. Without eAccelerator load on the system + can be ten times as high, which can cause all kinds of problems, this is especially true for single + system setups. + - Go to http://eaccelerator.net and download the most recent package + - cd /usr/local + - wget http://bart.eaccelerator.net/source/0.9.5/eaccelerator-0.9.5.3.zip + - unzip eaccelerator-0.9.5.3.zip + - cd eaccelerator-0.9.5.3 + - export PHP_PREFIX="/usr/local" + - $PHP_PREFIX/bin/phpize + - ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config + - make + - make install + - vi /usr/local/lib/php.ini + Add the following lines to the dynamic extensions section of php.ini: + (you may need to change the extension location depending on your install of php) + zend_extension="../../../usr/local/eaccelerator-0.9.5/modules/eaccelerator.so" + eaccelerator.shm_size="48" + eaccelerator.cache_dir="/tmp/eaccelerator" + eaccelerator.enable="1" + eaccelerator.optimizer="1" + eaccelerator.check_mtime="1" + eaccelerator.debug="0" + eaccelerator.filter="" + eaccelerator.shm_max="0" + eaccelerator.shm_ttl="0" + eaccelerator.shm_prune_period="0" + eaccelerator.shm_only="0" + eaccelerator.compress="1" + eaccelerator.compress_level="9" + - mkdir /tmp/eaccelerator + - chmod 0777 /tmp/eaccelerator + # to verify installation: + - php -v + + + + +balance is a load-balancing application for Linux that will allow you to spread +the load of your web traffic across many servers. If you are running more than +70 agents on a single server you may want to install this application and build +another cheap web server to handle the extra load. +*OPTIONAL* + +11. Go to http://balance.sourceforge.net to download the most recent source version + - to install this directly on the command line type: + - cd /usr/local + - wget http://voxel.dl.sourceforge.net/sourceforge/balance/balance-3.34.tgz + - gunzip balance-3.34.tgz + - tar xvf balance-3.34.tar + - cd balance-3.34 + - make + - make install + - /usr/sbin/balance -f 81 localhost:80 10.10.10.16:80 + That command will take port 81 traffic and send it evenly to the local + server and the 10.10.10.16 server reducing the load and speeding up + the applications. More info on balance: http://www.inlab.de/balance.pdf + + +subversion is the new code control framework use by the Asterisk community. If +you want to use the latest development code of Asterisk you will need to have +this loaded on your system. +*OPTIONAL* + +12. Go to http://subversion.tigris.org to download the most recent source version + - to install this directly on the command line type: + - cd /usr/local + - wget http://subversion.tigris.org/downloads/subversion-1.5.2.tar.gz + - gunzip subversion-1.5.2.tar.gz + - tar xvf subversion-1.5.2.tar + - cd subversion-1.5.2 + - ./configure + - make + - make install + + +mtop is a great utility for real-time monitoring of mysql and the queries that +are running in it. +*OPTIONAL* + 13. Go to http://mtop.sourceforge.net to download the most recent version + - to install this directly on the command line type: + - cd /usr/local + - wget http://superb-east.dl.sourceforge.net/sourceforge/mtop/mtop-0.6.6.tar.gz + - gunzip mtop-0.6.6.tar.gz + - tar xvf mtop-0.6.6.tar + - cd mtop-0.6.6 + - cpan + - install Curses + - install Getopt::Long + - install Net::Domain + - quit + - perl Makefile.PL + - make + - make install + - /usr/local/bin/mtop --dbuser=root --seconds=3 + + +sipsak is an optional utility that VICIDIAL can use to send messages to an +agent's SIP-based phone(like the Snom 320) to display text on their LCD screen. +If you want to use this, make sure it is installed on the same server that your +web server is installed on(Apache). +*OPTIONAL* + 14. Go to http://sipsak.org to download the most recent version + - to install this directly on the command line, type: + - cd /usr/local + - wget http://download.berlios.de/sipsak/sipsak-0.9.6-1.tar.gz + - gunzip sipsak-0.9.6-1.tar.gz + - tar xvf sipsak-0.9.6-1.tar + - cd sipsak-0.9.6-1 + - ./configure + - make + - make install + - /usr/local/bin/sipsak --version + + + + + +PHASE 4: INSTALLING ASTERISK + +OK, all the prep work is done, now it's time to start having fun with Asterisk. +There are two basic ways to install Asterisk, an official release(at the time of +this writing the recommended release is 1.4.21.2). These instructions are how we +get our Asterisk system with it's T1 line installed with our Zoiper softphone. + +NOTE: If you want to use Asterisk 1.2, you will need to make sure that you set +the servers table "asterisk_version" field to the proper version number and you +can use the docs/conf_examples/extensions.conf.sample file for your default +dialplan + +1. follow these command line steps: + mkdir /usr/src/asterisk-1.4 + cd /usr/src/asterisk-1.4 + wget http://downloads.digium.com/pub/asterisk/old-releases/asterisk-1.4.21.2.tar.gz + wget http://downloads.digium.com/pub/zaptel/zaptel-1.4.12.1.tar.gz + wget http://downloads.digium.com/pub/libpri/libpri-1.4.9.tar.gz + tar xzf asterisk-1.4.21.2.tar.gz + tar xzf zaptel-1.4.12.1.tar.gz + tar xzf libpri-1.4.9.tar.gz + cd libpri-1.4.9 + make clean; make; make install + cd ../zaptel-1.4.12.1 + ./configure; make clean; make; make install + cd ../asterisk-1.4.21.2 + wget http://www.eflo.net/files/enter.h + wget http://www.eflo.net/files/leave.h + mv -f enter.h apps/enter.h + mv -f leave.h apps/leave.h + wget http://download.vicidial.com/asterisk-patches/1.4-gsm-gcc4.2.patch + patch -p1 ./codecs/gsm/Makefile 1.4-gsm-gcc4.2.patch + wget http://download.vicidial.com/conf/res_agi_defunct.patch + patch -p1 < res_agi_defunct.patch + File to patch: res/res_agi.c + cd apps/ + rm -f app_waitforsilence.c + wget http://download.vicidial.com/conf/app_waitforsilence.c + cd ../channels/ + rm chan_sip.c + wget http://download.vicidial.com/conf/chan_sip.c + cd ../ + ./configure; make clean; make; make install + # this makes sample conf files (only use for new installs) + make samples + modprobe zaptel + + - modprobe zaptel # this loads the zaptel module + - install the module for the digium device that you are using, we are +using the T100P single span T1 card so we use: + - modprobe wct1xxp + or if you have no timer, just "modprobe ztdummy" + Here's the list of all digium cards and the modules you use with +them: + Card Module + ----------------- + TDM400P wctdm + X100P wcfxo + TDM* wcfxs + S100U wcusb + T100P wct1xxp + E100P wct1xxp + T400P tor2 + E400P tor2 + TE110P wcte11xp + TE410P wct4xxp + TE405P wct4xxp + TE411P wct4xxp + TE406P wct4xxp + TE210P wct2xxp + TE205P wct2xxp + TDM2400P wctdm24xxp + - If you have chosen a Sangoma T1/E1 or analog card, you will need to + follow their instructions for installation of their driver software + LATEST Sangoma Wanpipe drivers: + ftp://ftp.sangoma.com/linux/current_wanpipe/wanpipe-3.3.9.tgz + - now your asterisk installation is built and loaded and it's time to +configure it. + +NOTES: If you want to install zttool diagnostics you may need the newt package installed: + - wget http://download.vicidial.com/packages/newt-0.51.6.tar.gz + - gunzip newt-0.51.6.tar.gz + - tar xvf newt-0.51.6.tar + - cd newt-0.51.6 + - ./configure + - make + - make install + - cd ../ + - ln -s /usr/lib/libnewt.so.0.51.6 /usr/lib/libnewt.so.0.51 +then go to your zaptel folder and do 'make zttool' + +Digium/Clone X100P EXAMPLE: +Here is an example of a configuration where an X100P single FXO card is used for +zaptel timing and not used for calling: + +NOTE: you can get an X100P through ebay for $10-$30 that will work with Asterisk + + /etc/zaptel.conf: + loadzone=us + defaultzone=us + fxsks=1 + + /etc/asterisk/zapata.conf: + [trunkgroups] + [channels] + context=unused + signalling=fxs_ks + channel => 1 + + Added this to the rc.local file: + # Load zaptel drivers for x100p + modprobe zaptel + modprobe wcfxo + +If you will be doing native music-on-hold for your inbound calls, you will need +musiconhold audio files to be converted to native formats like GSM, ULAW and ALAW: + + cd /var/lib/asterisk/mohmp3/ + mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-sunshine.mp3 > /var/lib/asterisk/mohmp3/fpm-sunshine.raw + sox -r 44100 -w -s -c 1 fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav + sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm + sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm + mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-calm-river.mp3 > /var/lib/asterisk/mohmp3/fpm-calm-river.raw + sox -r 44100 -w -s -c 1 fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav + sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm + sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm + mpg123 -s --rate 44100 --mono /var/lib/asterisk/mohmp3/fpm-world-mix.mp3 > /var/lib/asterisk/mohmp3/fpm-world-mix.raw + sox -r 44100 -w -s -c 1 fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav + sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm + sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm + mkdir ../orig-mp3 + mv -f *.mp3 ../orig-mp3/ + mkdir ../quiet-mp3 + cd ../quiet-mp3 + sox -r 44100 -w -s -c 1 ../mohmp3/fpm-sunshine.raw -r 8000 -c 1 fpm-sunshine.wav vol 0.25 + sox fpm-sunshine.wav -t gsm -r 8000 -b -c 1 fpm-sunshine.gsm + sox fpm-sunshine.wav -t ul -r 8000 -b -c 1 fpm-sunshine.pcm + sox -r 44100 -w -s -c 1 ../mohmp3/fpm-calm-river.raw -r 8000 -c 1 fpm-calm-river.wav vol 0.25 + sox fpm-calm-river.wav -t gsm -r 8000 -b -c 1 fpm-calm-river.gsm + sox fpm-calm-river.wav -t ul -r 8000 -b -c 1 fpm-calm-river.pcm + sox -r 44100 -w -s -c 1 ../mohmp3/fpm-world-mix.raw -r 8000 -c 1 fpm-world-mix.wav vol 0.25 + sox fpm-world-mix.wav -t gsm -r 8000 -b -c 1 fpm-world-mix.gsm + sox fpm-world-mix.wav -t ul -r 8000 -b -c 1 fpm-world-mix.pcm + rm -f ../mohmp3/*.raw + + + +PHASE 5: CONFIGURING ASTERISK AND YOUR SIP PHONES + +As of the 2.0.5 release it is possible to configure SIP and IAX phones and +carrier trunks without editing conf files, just by using the web administration +interface. For more information on this, please read the VICIDIAL Manager +Manual available at www.eflo.net + +In this phase we will configure the telco lines, the SIP phones, the extensions, +meetme(conference calling) rooms, dialplan extensions and the voicemail boxes. +After this phase your Asterisk system should be able to place and receive calls +to and from the SIP phones you have installed over the telco lines you've hooked +up. There are several things that we will not be showing how to do because +Asterisk is extremely flexible and has so many different ways of being +configured, that if we were to try to explain them all in this document it would +be 99% asterisk configuration and be 20,000 lines long, and that would +just be a barrier for those who just want to get it set up. The "Wiki" and the +mailing list are two very good resources for finding answers if you run into +problems configuring your system, here are links to them: +The Wiki: http://www.voip-info.org/tiki-index.php +The Lists: http://www.asterisk.org/index.php?menu=support + +I need to note that it is possible to install Asterisk and use astGUIclient +applications with no Zaptel(Digium/Sangoma/Rhino/etc...) cards installed, but it +is not recommended even if you are not going to use Zap trunks for your inbound- +outbound calls with no real Zap devices, you would need to use a dummy timer +(zt_dummy) based on you USB ports to get meetme conference rooms working +properly and you may have other issues along the way. We would at least +recommend getting a X100 or X101 board from Digium or a clone manufacturer so +there is a dedicated hardware timer in place on your system. + + + +SUBPHASE 5.0: setting up your Asterisk configuration files + +1. edit zaptel.conf + - vi /etc/zaptel.conf + There are many examples inside of the zaptel.conf file that is +generated with the "make samples" command that we issued at the end +of the last phase. There are many different parameters for the +different telco line possibilities, because we are installing a T1 +that is NON-PRI-isdn B8ZS ExtendedSuperframe(ESF) E&M Wink start and 24 +channels, we will use the following settings for zaptel.conf: + span=1,1,0,esf,b8zs + e&m=1-24 + loadzone = us + defaultzone=us + FOR A PRI YOU WOULD USE SOMETHING LIKE THIS: + span=2,2,0,esf,b8zs + bchan=25-47 + dchan=48 + +2. edit zapata.conf + - vi /etc/asterisk/zapata.conf + There are also many examples of how to configure zapata.conf online. +we decided to separate our T1 into two line groups to keep some +incoming calls from being busy if we filled up all of our lines. +Here's what we used(you can set echocancel=no if you are using PRIs): + [channels] + group=1 + language=en + signalling=em_w + usecallerid=yes + callerid=asreceived + context=default + echocancel=64 + echocancelwhenbridged=yes + rxgain=1.0 + txgain=1.0 + channel => 1-2 + group=2 + language=en + signalling=em_w + usecallerid=yes + callerid=asreceived + context=default + echocancel=64 + echocancelwhenbridged=yes + rxgain=1.0 + txgain=1.0 + channel => 3-24 + FOR A PRI YOU WOULD USE SOMETHING LIKE THIS: + group=3 + language=en + signalling=pri_net + usecallerid=yes + callerid=asreceived + callprogress=no + busydetect=no + context=default + echocancel=64 + echocancelwhenbridged=yes + rxgain=1.0 + txgain=1.0 + channel => 25-47 + +3. edit sip.conf + +!!!!! IMPORTANT NOTE !!!!! +As of the 2.0.5 release it is possible to configure SIP and IAX phones and +carrier trunks without editing conf files, just by using the web administration +interface. For more information on this, please read the VICIDIAL Manager +Manual available at www.eflo.net + + - vi /etc/asterisk/sip.conf + here is where we will edit the configuration of our SIP compatible +phone devices. As stated at the beginning, we will be setting up a +Grandstream Budgetone 102 phone and a Sipura/Linksys SPA-2000 adapter with +two analog phones connected(each with it's own extension). Here are +the settings we used to set each of them up: + [general] + port = 5060 + bindaddr = 0.0.0.0 + context = default + ; register SIP account on remote machine if using SIP trunks + ; register => testSIPtrunk:test@10.10.10.16:5060 + ; + ; setup account for SIP trunking: + ; [SIPtrunk] + ; disallow=all + ; allow=ulaw + ; allow=alaw + ; type=friend + ; username=testSIPtrunk + ; secret=test + ; host=10.10.10.16 + ; dtmfmode=inband + ; qualify=1000 + + [gs102] + disallow=all + allow=ulaw + allow=alaw + type=friend + username=gs102 + secret=test + host=dynamic + dtmfmode=inband + defaultip=10.10.10.16 + qualify=1000 + mailbox=102 + [spa2000] + disallow=all + allow=ulaw + allow=alaw + type=friend + username=spa2000 + secret=test + host=dynamic + dtmfmode=inband + defaultip=10.10.10.17 + qualify=1000 + mailbox=2000 + [spa2001] + disallow=all + allow=ulaw + allow=alaw + type=friend + username=spa2001 + secret=test + host=dynamic + dtmfmode=inband + defaultip=10.10.10.17 + qualify=1000 + mailbox=2001 +4. edit meetme.conf + - vi /etc/asterisk/meetme.conf + This is known as the conference calling configuration file. We are +just going to add two conferences(one without a pin number and one +with a pin number required for entry): + [rooms] + conf => 8600 + conf => 8601,1234 +5. edit iax.conf + +!!!!! IMPORTANT NOTE !!!!! +As of the 2.0.5 release it is possible to configure SIP and IAX phones and +carrier trunks without editing conf files, just by using the web administration +interface. For more information on this, please read the VICIDIAL Manager +Manual available at www.eflo.net + + - vi /etc/asterisk/iax.conf + This is the IAX configuration file, below is a very simple config for + having two Asterisk servers connect natively to each other, if you + will be using this, make sure to add the optional lines included + after the extensions.conf section. Also, there is an account setup + here for a firefly IAX softphone to use.(details on that later) + * IMPORTANT NOTE * if you plan to use IAX2 trunks for VICIDIAL + outbound dialing you must register with the remote IAX2 server + through the iax.conf file, not just in the Dial or TRUNK line + of the extensions.conf dialplan. + [general] + bindport=4569 + iaxcompat=yes + bandwidth=high + allow=all + allow=gsm ; Always allow GSM, it's cool :) + jitterbuffer=no + tos=lowdelay + register => ASTtest1:test@10.10.10.16:4569 + + [ASTtest2] + type=friend + accountcode=IAXtrunk2 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + disallow=all + allow=ulaw + qualify=yes + + [firefly01] + type=friend + accountcode=firefly01 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + disallow=all + allow=gsm + qualify=yes + +##### EXAMPLE - This is a config example for setting up Binfone service(http://www.binfone.com) + +NOTE: The "1112223333" is your iax username. When you signup, Binfone creates +a default IAX username for you, (a 5 digit number, usually, starting with a 1). +This works for most customers. Folks that want inbound then also sign up for +DIDs, each of which has its own IAX username. (Which is the 10 digit DID). +Each username has its own password which is managed through their web interface. + +NOTE: If you will be using the G729 codec through binfone there is now a +dedicated G729 gateway that only handles G729 calls. Please use this address to +register to if you plan on using G729 as your codec: iax-g729.binfone.com + + iax.conf: + [general] + register => 1112223333:PASSWORD@iax.binfone.com + + [1112223333] + auth=md5 + type=friend + username=1112223333 + secret=PASSWORD + host=iax.binfone.com + context=incoming-IAX-context-in-extensions.conf + + + extensions.conf: + [global] + TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface + + [default] + exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) + exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,o) + exten => _91NXXNXXXXXX,3,Hangup + + [incoming] + exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log) + exten => 1112223333,2,Dial(sip/gs102,55,o) + exten => 1112223333,3,Hangup + + + dnsmgr.conf: # It is very helpful to enable dnsmgr + [general] + enable=yes ; enable creation of managed DNS lookups + refreshinterval=300 ; refresh managed DNS lookups every seconds + + +##### END EXAMPLE + + +6. edit voicemail.conf + +!!!!! IMPORTANT NOTE !!!!! +As of release 2.2.0 it is now possible to configure voicemail and musiconhold +without editing conf files, just by using the web administration interface. +For more information on this, please read the VICIDIAL Manager Manual available +at www.eflo.net + + - vi /etc/asterisk/voicemail.conf + This is where we set up the voicemail boxes for the extensions that +we have set up: + [general] + format=wav49|gsm|wav + serveremail=asterisk + attach=yes + skipms=3000 + maxsilence=10 + silencethreshold=128 + maxlogins=3 + [zonemessages] + eastern=America/New_York|'vm-received' Q 'digits/at' IMp + central=America/Chicago|'vm-received' Q 'digits/at' IMp + central24=America/Chicago|'vm-received' q 'digits/at' H 'digits/hundred' M 'hours' + [default] + 102 => 102,Grandstream Mailbox,root@localhost + 2000 => 2000,Sipura Mailbox 1 + 2001 => 2001,Sipura Mailbox 2 + 3001 => 3001,Firefly Mailbox 1 +7. edit manager.conf + - vi /etc/asterisk/manager.conf + This is where we set up remote logins to the asterisk manager +interface, to allow sending of Action commands from remote +connections to the Asterisk server, this will be important for the +astguiclient applications so let's set that up now: + [general] + enabled = yes + port = 5038 + bindaddr = 0.0.0.0 + [cron] + secret = 1234 + read = system,call,log,verbose,command,agent,user + write = system,call,log,verbose,command,agent,user + [updatecron] + secret = 1234 + read = command + write = command + [listencron] + secret = 1234 + read = system,call,log,verbose,command,agent,user + write = command + [sendcron] + secret = 1234 + read = command + write = system,call,log,verbose,command,agent,user + +8. edit logger.conf + - vi /etc/asterisk/logger.conf + This file determines the messages that are logged to the console and +the /var/log/asterisk/messages file. We usually turn on full logging +to the messages file to more easily diagnose any problems that we may +run into, the problem with this is that is does produce very large +files, so be warned: + [logfiles] + console => notice,warning,error + messages => notice,warning,error,debug,verbose +9. edit extensions.conf + - vi /etc/asterisk/extensions.conf + +!!!!! IMPORTANT NOTE !!!!! +You should be using the sample extensions.conf that is included with the +release of VICIDIAL that you installed. There is also an auto-generated +extensions-vicidial.conf file that contains dynamic dialplan entries. + +10. edit dnsmgr.conf: # It is very helpful to enable dnsmgr + [general] + enable=yes ; enable creation of managed DNS lookups + refreshinterval=300 ; refresh managed DNS lookups every seconds + + +11. Now that you have configured Asterisk, it is time to try to start it for the +first time. + - First make sure that your T1 line(or other telco line) is connected to the +digium card. + - next type the following at the command prompt: "ztcfg -vvvvvv" + - you should see a confirmation that the Zaptel device has loaded + - now you can launch asterisk with the following command: + "asterisk -vvvvvvvvvvvvgc" + - you should see a lot of messages scroll by and at the end you should +be given a CLI> prompt if everything loaded OK. To get out of Asterisk you can +type "stop now". Now that you are sure it is running you can either run it in a +separate terminal window or use the start_asterisk_boot.pl that you will +install with astguiclient to start Asterisk: + /usr/share/astguiclient/start_asterisk_boot.pl + + + +SUBPHASE 5.1: setting up your SIP phones + +You will need to follow the instructions for the phones that you are using with +your system, but here's the way to set up a Grandstream 102 and a Linksys/Sipura +SPA-2000 + +1. Here are basic instructions for setting up a Grandstream BT 102: + - On the phone plug it in to power only at first and follow these +instructions: + - wait for the phone to boot up and press the MENU button + - go through the menu screens with the menu key and the up/down arrow +keys to move from setting to setting. We are setting the following +values: + - DHCP OFF + - IP Addr: 010.010.010.016 + - Subnet: 255.255.000.000 + - router: 010.010.010.001 + - dnS: 010.010.010.001 + - tftp: we leave this blank for now + - menu 7 we change the codec to G-711u + - now wait 10 seconds and unplug the power and plug it back in + - you can also plug the network cable into the LAN port on the phone + - at this time you can go to your workstation and open a new web browser + - go to http://10.10.10.16/ the password is "admin" + - here is where you will enter in the configuration details for the +phone to register with the Asterisk server + - SIP server: 10.10.10.15 + - SIP user ID: gs102 + - Authenticate ID: gs102 + - Password: test + - Name: gs102 + - Voice Mail UserID: 102 + - Send DTMF: in-audio + - NTP Server: tick.mit.edu + - then click update, click review changes, and click reboot + - your phone should now be able to register with the Asterisk server. If you +still have your console screen up you should see a registration message +appear telling you that gs102 has registered. + +2. Here are the basic instructions for setting up a Sipura SPA-2000 analog +adapter with 2 lines. + - Plug power and two analog phones into the adapter. + - pick up the phone plugged into line1 and press **** to enter admin menu + - press 101# then 0# to disable DHCP + - press 111# then 10*10*10*17# to change the IP address + - press 121# then 255*255*0*0# to change the subnet mask + - press 131# then 10*10*10*1# to change the default gateway + - hang up the phone, unplug the power, plug in the network cable and plug in +the power cable + - now you can go the the admin website: http://10.10.10.17/admin/advanced + - you will need to make these setting changes: + - click on the "Line 1" tab at the top and change the following values: + - Proxy: 10.10.10.15 + - Display Name: spa2000 + - userID: spa2000 + - password: test + - authID: spa2000 + - change the dialplan to the following: +(*xx|xxx|xxxx|xxxxx|xxxxxx|xxxxxxx|xxxxxxxx|xxxxxxxxxxx|xxxxxxxxxxxx|xxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxx.) + - then click the "submit all changes" button at the bottom of the page +and your first phone line should work now + - to register the second line, simply click on the "Line 2" tab and go +through the above steps except use spa2001 instead of spa2000 for the use IDs + +3. Now both of your phone devices are set up and you can try making phone calls +between the three phones + + + +SUBPHASE 5.2: setting up an IAX2 phone + +This is optinal and we won't go into too much detail about this, but currently +there are several IAX hard and softphones on the market and more are coming +every month. Follow the instructions with the IAX phone you have chosen and +follow the steps below: + +1. Add an entry into your iax.conf file like below if you have not already + [firefly01] + type=friend + accountcode=firefly01 + context=default + auth=plaintext + host=dynamic + permit=0.0.0.0/0.0.0.0 + secret=test + qualify=yes + +2. Add an entry into your extensions.conf file like below if it is not in there + ; Extension 3001 rings IAX phone + exten => 301,1,Dial(IAX2/firefly01@firefly01/s) + exten => 301,2,Voicemail,u301 ; Send to voicemail... + +3. Download Firefly 3rd party, or IDEfisk for Windows or Linux: + - http://www.virbiage.com/firefly/download/firefly-thirdparty.exe + MIRRORS: + - http://mirror.isp.net.au/ftp/pub/firefly/firefly-thirdparty.exe + - http://download.vicidial.com/softphones/firefly-thirdparty.exe + IDEFISK: + - http://www.asteriskguru.com/idefisk/ + - Install the application + - Launch Firefly Softphone + - click the "I wish to connect to a 3rd party network" button + - Enter in network name: Asterisk + - Select IAX2 as the protocol + - enter in your server address: "10.10.10.15" in our case + - enter login and pass: "firefly01" and "test" for in our case + - click OK and you should be logged in and can place calls + + +SUBPHASE 5.3: setting up a Zap phone + +This is optinal and we won't go into too much detail about this either, there +are a few ways to use Zap devices as phones on your Asterisk system: Zaptel +phone cards, Channel Banks going through Zaptel T1 card, outside line call +coming in going through Zaptel line card. There isn't much to do but set your +Zaptel config files up and put entries into your extensions.conf file: + +1. Add an entry into your extensions.conf file like below + ; Extension 4001 rings Zap phone + exten => 4001,1,Dial,Zap/1|30| ; ring Zap device 1 + exten => 4001,2,Voicemail,u4001 ; Send to voicemail... + + + + +PHASE 6: INSTALLING ASTGUICLIENT AND VICIDIAL + +Now that Asterisk is installed and running we can add the astGUIclient and +VICIDIAL components to the system. + + + +SUBPHASE 6.0: putting the files in place + +There are two methods for downloading astGUIclient/VICIDIAL, a release and SVN + +1. Go to http://astguiclient.sf.net/ and download the latest astguiclient +package(as of this writing it is 2.2.0) + - for 2.0.X release: + - mkdir /usr/src/astguiclient + - cd /usr/src/astguiclient + - wget http://internap.dl.sourceforge.net/sourceforge/astguiclient/astguiclient_2.2.0.zip + - unzip astguiclient_2.2.0.zip + - perl install.pl (make sure you are in the directory with the install.pl file) + - for SVN 2.2.0 branch: + - mkdir /usr/src/astguiclient + - cd /usr/src/astguiclient + - svn checkout svn://svn.eflo.net:3690/agc_2-X/branches/agc_2.2.0 + - cd agc_2.2.0 + - perl install.pl + - for SVN 2.4 trunk: + - mkdir /usr/src/astguiclient + - cd /usr/src/astguiclient + - svn checkout svn://svn.eflo.net:3690/agc_2-X/trunk + - cd trunk + - perl install.pl + select to do interactive setup and customize to your server + NOTE: if this is a fresh install, it is strongly suggested that you + select 'Y' to copy the sample conf files. + - there is one more file you need that's not included with the download +package, it's the conf.gsm file(this is the half-hour music file that we use +to put people on hold). I have a free classical music file that is available +free for download at the following two sites: + http://download.vicidial.com/sounds/conf.gsm + http://astguiclient.sf.net/conf.gsm + Once you have downloaded it, you will need to copy it to this folder: + /var/lib/asterisk/sounds/ + Then you will need to execute this command to copy it as the park file + 'cp /var/lib/asterisk/sounds/conf.gsm /var/lib/asterisk/sounds/park.gsm' + Here are the steps spelled out: + cd /var/lib/asterisk/sounds + wget http://download.vicidial.com/sounds/conf.gsm + cp conf.gsm park.gsm + + - you are done + + + +SUBPHASE 6.1: creating the MySQL "asterisk" database + +we will create the database and add a few initial records so that we can +use the administrative web interface. Since this is a new install it is easier +to use our new mysql script file to add the tables to the database: + +1. at the command prompt type go to the mysql client: +/usr/local/mysql/bin/mysql +2. type the following into the mysql client prompt: + (make sure you put your IP address in place of "10.10.10.15" in the queries below) +######------ BEGIN Mysql data entry(you can copy and paste this into terminal) # +create database asterisk; + +NOTE: if you will be using lead files with a language that does not use the +standard latin character set then you will want to use UTF8 for your default +characterset in the MySQL database. This requires at least MySQL 5.0.X and you +can use the following query to create the database: + CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; + + +GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234'; +GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234'; + +GRANT RELOAD ON *.* TO cron@'%'; +GRANT RELOAD ON *.* TO cron@localhost; + +flush privileges; + +# To make sure that new processes can connect to the Database under load we should +# increase the global connect_timeout + +SET GLOBAL connect_timeout=60; + +# NOTE: make sure you do NOT put any spaces or other punctuation in the +# server_id, phone, extension, or user fields in the queries below if you edit them. + +use asterisk; + +\. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql + or you may need to run this if you get an error: + \. /usr/src/astguiclient/agc_2.2.0/extras/MySQL_AST_CREATE_tables.sql + \. /usr/src/astguiclient/astguiclient/MySQL_AST_CREATE_tables.sql + +### to load in default IAX and SIP phone accounts run the following query + +\. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql + or you may need to run this if you get an error: + \. /usr/src/astguiclient/agc_2.2.0/extras/sip-iax_phones.sql + \. /usr/src/astguiclient/astguiclient/sip-iax_phones.sql + +### to load the initial server values for this first system install + +\. /usr/src/astguiclient/trunk/extras/first_server_install.sql + or you may need to run this if you get an error: + \. /usr/src/astguiclient/agc_2.2.0/extras/first_server_install.sql + \. /usr/src/astguiclient/astguiclient/first_server_install.sql + +quit + + to populate the timezone/country table run this command from command line: + - /usr/share/astguiclient/ADMIN_area_code_populate.pl + + to load the performance testing leads run these commands: + - cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + or + - cp /usr/src/astguiclient/agc_2.2.0/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + - cp /usr/src/astguiclient_2.2.0/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ + + - /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 --forcephonecode=1 + + +######------ END Mysql data entry ------###### + +NOTE: If you will be using channelbanks for agent phones you can use the +/extras/single_channelbank_phones.sql file to help enter the phones table entries. + +NOTE: If you will be using IAX or SIP phones for agent phones you can use the +/extras/sip-iax_phones.sql file to help enter the phones table entries. + +NOTE: if you are not installing using default user/pass or have MySQL on another +server, you will need to edit either the /etc/astguiclient.conf file or the +dbconnect.php files in the astguiclient, vicidial and agc directories of your +webroot. + +3. Enter the vicidial administration page: +http://10.10.10.15/vicidial/admin.php +NOTE: if you click on the Logout button you must leave the user/pass empty and click OK + - Here you will enter the login and password that you inserted into the mysql +database in the vicidial_users table (subphase 6.1 [6666/1234]) + - Now that you are logged into the astGUIclient administration system we can +add a new phone entry for each of the sipura lines we created. + - click on the "Admin" link at the top, then the "ADD PHONE" link below +that and enter in the proper information for each of the new phone lines. +Here's what we entered for spa2000: + - Phone extension: spa2000 + - Dialplan Number: 2000 + - Voicemail Box: 2000 + - Phone IP address: 10.10.10.17 + - Computer IP address: 10.10.9.17 + - Server IP: 10.10.10.15 + - Login: spa2000 + - Password: test + - Conf File Secret: test + - Status: ACTIVE + - Active Account: Y + - Phone Type: Sipura SPA-2000 line 1 + - Full Name: Sipura line 1 test + - Company: TEST + - Picture: + - for the next phone simply replace 2000 with 2001 in the above example + - now your phones are all all set up in the astguiclient system and you can +use this website to add new phones to be used with astguiclient and monitor +the number of calls people are making. + - now your database is set up for the astguiclient conferences which + will allow you to have over 6 remote parties that you called from your + GUI client application in one conference. + - click on the "LIST ALL SERVERS" link at the top then click on the + server to modify. Verify that the GMT time zone and all other fields + are what you want them to be. There is a setting(Max VICIDIAL Trunks) + that can be modified to limit the number of VICIDIAL outbound trunks + that will be allowed to use on this server. + +4. **OPTIONAL** For IAX clients you will need to use full phone name as the +extension on the admin page entry: "firefly01@firefly01" for our IAX phone example +previously. And do not forget to set the protocol on this page to IAX2 + +5. **OPTIONAL** For Zap clients you will need to use full Zap Channel name as the +extension on the admin page entry: "1-1" for our Zap phone example +previously. And do not forget to set the protocol on this page to Zap + + + + +SUBPHASE 6.2: making additions to your Asterisk conf files + +Now that the database is set up and our phones have entries in the system we can +make the additions to the running Asterisk system that will allow astguiclient +to work with it. + +!!!!! IMPORTANT NOTE !!!!! +Again, if you have selected to use the sample conf files during installation +then you do not have to add any of these lines to your conf files, they should +already be included. There is also an auto-generated +extensions-vicidial.conf file that contains dynamic dialplan entries. + + +1. Add the call_log entries to all incoming/outgoing extensions entries: + - here is how our sample dialplan changes for adding call_log entries(only +effected extension groups are show): +######------ START extensions.conf changes for call_log ------###### + +##### This 'h' exten is VERY important for VICIDIAL usage, +##### you will have problems if it is not in your dialplan! +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + +; MANDITORY VDAD extens: +; In this setup, the serverIP is the prefix followed by agent conf_exten +; These lines are REQUIRED for VICIDIAL to work properly +; local server extens: +; BE SURE TO CHANGE THIS LINE FOR YOUR IP ADDRESS! + exten => _010*010*010*015*.,1,Goto(default,${EXTEN:16},1) + exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) +; Local blind monitoring + exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To) +; OPTIONAL server 2 extens, needed for load balancing: + exten => _010*010*010*016*.,1,Dial(${TRUNKIAX2}/${EXTEN:16},55,o) + +; Extension 3429 - Inbound 800 number (1-800-555-3429) +exten => _**3429,1,Ringing +exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log) +exten => _**3429,3,Answer +exten => _**3429,4,Dial,sip/spa2000&sip/spa2001,30,to +exten => _**3429,5,Voicemail,u2000 +; Extension 3429 - with ANI [callerID] +exten => _*NXXNXXXXXX*3429,1,Ringing +exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log) +exten => _*NXXNXXXXXX*3429,3,Answer +exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001,30,to +exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000 + +; Extension 7275551212 - Inbound local number from PRI with 10 digit delivery +; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4 +exten => 7275551212,1,Ringing +exten => 7275551212,2,Wait(1) +exten => 7275551212,3,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME}) +exten => 7275551212,4,Answer +exten => 7275551212,5,Dial,sip/spa2000&sip/spa2001,30,to +exten => 7275551212,6,Voicemail,u2000 + +; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls, + +; dial a long distance outbound number to the UK +exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,tTo) +exten => _901144XXXXXXXXXX,3,Hangup + +; dial a long distance outbound number to Australia +exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,tTo) +exten => _901161XXXXXXXXX,3,Hangup + +; Extensions for performance testing +exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo) +exten => _91999NXXXXXX,3,Hangup +exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo) +exten => 999999999999,3,Hangup + +; dial an 800 outbound number +exten => _91800NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91800NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo) +exten => _91800NXXXXXX,3,Hangup +exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo) +exten => _91888NXXXXXX,3,Hangup +exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo) +exten => _91877NXXXXXX,3,Hangup +exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,tTo) +exten => _91866NXXXXXX,3,Hangup + +; dial a local 727 outbound number with area code +exten => _9727NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _9727NXXXXXX,2,Dial(${TRUNK}/1${EXTEN:1},,tTo) +exten => _9727NXXXXXX,3,Hangup + +; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls, +; dial a long distance outbound number +exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,tTo) +exten => _91NXXNXXXXXX,3,Hangup + +; dial a local outbound number (modified because of only LD T1) +exten => _9NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _9NXXXXXX,2,Dial(${TRUNK}/1727${EXTEN:1},,tTo) +exten => _9NXXXXXX,3,Hangup + +######------ END extensions.conf changes ------###### + + +2. Add the call_inbound entries to all incoming extensions entries that you want +CallerID popups on(ONLY WORKS IN astguiclient.php APPLICATION): +(Using the DID configuration is the preferred method of call routing in ViciDial) + + - here is how our sample dialplan changes for adding call_inbound +entries(only effected extension groups are show): +######------ START extensions.conf changes for call_inbound ------###### +; parameters for call_inbound.agi (7 fields separated by five dashes "-----"): +; 1. the extension of the phone to ring as defined in the asterisk.phones table +; 2. the phone number that was called, for the live_inbound/_log entry +; 3. a text description of the number that was called in +; 4-7. optional fields, they are also passed as fields in the GUI to web browser + +; Extension 3429 - Inbound 800 number (1-800-555-3429) +exten => _**3429,1,Ringing +exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log) +exten => _**3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) +exten => _**3429,4,Answer +exten => _**3429,5,Dial,sip/spa2000&sip/spa2001|30|to +exten => _**3429,6,Voicemail,u2000 +; Extension 3429 - with ANI [callerID] +exten => _*NXXNXXXXXX*3429,1,Ringing +exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log) +exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) +exten => _*NXXNXXXXXX*3429,3,Answer +exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to +exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000 + +* NOTE, you need to set the dial_level of the CLOSER campaign to 1 or higher for inbound/closers to work + +######------ END extensions.conf changes for call_inbound ------###### + + +3. Add the ZapBarge entries for all zap lines: + - here is how our sample dialplan changes for adding zapbarge line-specific +entries(this is a pure addition, nothing is being modified): + +; ZapBarge direct channel extensions +exten => _86120XX,1,ZapBarge(${EXTEN:5}) + + +4. Add the meetme entries for astguiclient and VICIDIAL conferences to +meetme.conf: + +!!!!! IMPORTANT NOTE !!!!! +Again, if you have selected to use the sample conf files during installation +then you do not have to add any of these lines to your conf files, they should +already be included. There is also an auto-generated +meetme-vicidial.conf file that contains dynamic conference entries. + + - here is how our sample meetme.conf file changes for adding conference +entries (this is a pure addition, nothing is being modified): +######------ START meetme.conf additions for conferences ------###### +conf => 8600001 +conf => 8600002 +conf => 8600003 +conf => 8600004 +conf => 8600005 +conf => 8600006 +conf => 8600007 +conf => 8600008 +conf => 8600009 +conf => 8600010 +conf => 8600011 +conf => 8600012 +conf => 8600013 +conf => 8600014 +conf => 8600015 +conf => 8600016 +conf => 8600017 +conf => 8600018 +conf => 8600019 +conf => 8600020 +conf => 8600021 +conf => 8600022 +conf => 8600023 +conf => 8600024 +conf => 8600025 +conf => 8600026 +conf => 8600027 +conf => 8600028 +conf => 8600029 +conf => 8600030 +conf => 8600031 +conf => 8600032 +conf => 8600033 +conf => 8600034 +conf => 8600035 +conf => 8600036 +conf => 8600037 +conf => 8600038 +conf => 8600039 +conf => 8600040 +conf => 8600041 +conf => 8600042 +conf => 8600043 +conf => 8600044 +conf => 8600045 +conf => 8600046 +conf => 8600047 +conf => 8600048 +conf => 8600049 +conf => 8600050 +conf => 8600051 +conf => 8600052 +conf => 8600053 +conf => 8600054 +conf => 8600055 +conf => 8600056 +conf => 8600057 +conf => 8600058 +conf => 8600059 +conf => 8600060 +conf => 8600061 +conf => 8600062 +conf => 8600063 +conf => 8600064 +conf => 8600065 +conf => 8600066 +conf => 8600067 +conf => 8600068 +conf => 8600069 +conf => 8600070 +conf => 8600071 +conf => 8600072 +conf => 8600073 +conf => 8600074 +conf => 8600075 +conf => 8600076 +conf => 8600077 +conf => 8600078 +conf => 8600079 +conf => 8600080 +conf => 8600081 +conf => 8600082 +conf => 8600083 +conf => 8600084 +conf => 8600085 +conf => 8600086 +conf => 8600087 +conf => 8600088 +conf => 8600089 +conf => 8600090 +conf => 8600091 +conf => 8600092 +conf => 8600093 +conf => 8600094 +conf => 8600095 +conf => 8600096 +conf => 8600097 +conf => 8600098 +conf => 8600099 +conf => 8600100 +conf => 8600101 +conf => 8600102 +conf => 8600103 +conf => 8600104 +conf => 8600105 +conf => 8600106 +conf => 8600107 +conf => 8600108 +conf => 8600109 +conf => 8600110 +conf => 8600111 +conf => 8600112 +conf => 8600113 +conf => 8600114 +conf => 8600115 +conf => 8600116 +conf => 8600117 +conf => 8600118 +conf => 8600119 +conf => 8600120 +conf => 8600121 +conf => 8600122 +conf => 8600123 +conf => 8600124 +conf => 8600125 +conf => 8600126 +conf => 8600127 +conf => 8600128 +conf => 8600129 +conf => 8600130 +conf => 8600131 +conf => 8600132 +conf => 8600133 +conf => 8600134 +conf => 8600135 +conf => 8600136 +conf => 8600137 +conf => 8600138 +conf => 8600139 +conf => 8600140 +conf => 8600141 +conf => 8600142 +conf => 8600143 +conf => 8600144 +conf => 8600145 +conf => 8600146 +conf => 8600147 +conf => 8600148 +conf => 8600149 +conf => 8600150 +conf => 8600151 +conf => 8600152 +conf => 8600153 +conf => 8600154 +conf => 8600155 +conf => 8600156 +conf => 8600157 +conf => 8600158 +conf => 8600159 +conf => 8600160 +conf => 8600161 +conf => 8600162 +conf => 8600163 +conf => 8600164 +conf => 8600165 +conf => 8600166 +conf => 8600167 +conf => 8600168 +conf => 8600169 +conf => 8600170 +conf => 8600171 +conf => 8600172 +conf => 8600173 +conf => 8600174 +conf => 8600175 +conf => 8600176 +conf => 8600177 +conf => 8600178 +conf => 8600179 +conf => 8600180 +conf => 8600181 +conf => 8600182 +conf => 8600183 +conf => 8600184 +conf => 8600185 +conf => 8600186 +conf => 8600187 +conf => 8600188 +conf => 8600189 +conf => 8600190 +conf => 8600191 +conf => 8600192 +conf => 8600193 +conf => 8600194 +conf => 8600195 +conf => 8600196 +conf => 8600197 +conf => 8600198 +conf => 8600199 +conf => 8600200 +######------ END meetme.conf additions for conferences ------###### + + +5. Add the conference entries for astguiclient conferences: + - here is how our sample dialplan changes for adding conference entries (this +is a pure addition, nothing is being modified): + +; astGUIclient conferences +exten => _86000[0-4]X,1,Meetme,${EXTEN}|q + + +6. Add the conference entries for VICIDIAL conferences: + - here is how our sample dialplan changes for adding VICIDIAL conference +entries(this is already in the sample extensions.conf file): +NOTE: see below these entries for app_conference instructions is used +######------ START extensions.conf changes for VD conf ------###### +exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1}) +exten => _X48600XXX,2,Hangup + +exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1}) +exten => _X38600XXX,2,Hangup + +exten => _X28600XXX,1,MeetMeAdmin(${EXTEN:2},m,${EXTEN:0:1}) +exten => _X28600XXX,2,Hangup + +exten => _X18600XXX,1,MeetMeAdmin(${EXTEN:2},M,${EXTEN:0:1}) +exten => _X18600XXX,2,Hangup + +exten => _55558600XXX,1,MeetMeAdmin(${EXTEN:4},K) +exten => _55558600XXX,2,Hangup +exten => 8300,1,Hangup + +; VICIDIAL conferences +exten => _86000[5-9]X,1,Meetme,${EXTEN}|F +exten => _86001XX,1,Meetme,${EXTEN}|F +exten => _8600200,1,Meetme,${EXTEN}|F +; quiet entry and leaving conferences for VICIDIAL +exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq +; quiet monitor extensions for meetme rooms (for room managers) +exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq +; Local blind monitoring +exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To) + +; voicelab exten +exten => _86009XX,1,Meetme,${EXTEN}|Fmq +; voicelab exten moderator +exten => _986009XX,1,Meetme,${EXTEN:1} + +######------ END extensions.conf changes for VD conf ------###### + +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) + + +7. Add the more entries for astGUIclient specific uses: + - here are some more dialplan additions needed to use astGUIclient(this is a +pure addition, nothing is being modified): +(this is already in the sample extensions.conf file) +######------ START extensions.conf other additions ------###### +; park channel for client GUI parking, hangup after 30 minutes +; create a GSM formatted audio file named "park.gsm" that is 30 minutes long +; and put it in /var/lib/asterisk/sounds +exten => 8301,1,Answer +exten => 8301,2,AGI(park_CID.agi) +exten => 8301,3,Playback(park) +exten => 8301,4,Hangup +exten => 8303,1,Answer +exten => 8303,2,AGI(park_CID.agi) +exten => 8303,3,Playback(conf) +exten => 8303,4,Hangup + +; park channel for client GUI conferencing, hangup after 30 minutes +; create a GSM formatted audio file named "conf.gsm" that is 30 minutes long +; and put it in /var/lib/asterisk/sounds +exten => 8302,1,Answer +exten => 8302,2,Playback(conf) +exten => 8302,3,Hangup + +exten => 8304,1,Answer +exten => 8304,2,Playback(ding) +exten => 8304,3,Hangup + +; default audio for safe harbor 2-second-after-hello message then hangup +; create a GSM formatted audio file complies with safe harbor rules +; and put it in /var/lib/asterisk/sounds then change filename below +exten => 8307,1,Answer +exten => 8307,2,Playback(vm-goodbye) +exten => 8307,3,Hangup + +; this is used for recording conference calls, the client app sends the filename +; value as a callerID recordings go to /var/spool/asterisk/monitor (WAV) +; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4 +exten => 8309,1,Answer +exten => 8309,2,Monitor(wav,${CALLERIDNAME}) +exten => 8309,3,Wait,3600 +exten => 8309,4,Hangup + +; this is used for recording conference calls, the client app sends the filename +; value as a callerID recordings go to /var/spool/asterisk/monitor (GSM) +; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4 +exten => 8310,1,Answer +exten => 8310,2,Monitor(gsm,${CALLERIDNAME}) +exten => 8310,3,Wait,3600 +exten => 8310,4,Hangup + +; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL +exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES) +exten => 8320,2,Hangup + +; this is used to allow the GUI to send you directly into voicemail +; don't forget to set GUI variable $voicemail_exten to this extension +; SEE extensions.conf.sample-1.4 for changes needed for use with Asterisk 1.4 +exten => 8501,1,VoicemailMain(s${CALLERIDNUM}) +exten => 8501,2,Hangup + +; this is used to allow the GUI to send live calls directly into voicemail +; don't forget to set GUI variable $voicemail_dump_exten to this extension +exten => _85026666666666.,1,Wait(2) +exten => _85026666666666.,2,Voicemail(${EXTEN:14}) +exten => _85026666666666.,3,Hangup + +; this is used for sending DTMF signals within conference calls, the client app +; sends the digits to be played in the callerID field +; sound files must be placed in /var/lib/asterisk/sounds +exten => 8500998,1,Answer +exten => 8500998,2,Playback(silence) +exten => 8500998,3,AGI(agi-dtmf.agi) +exten => 8500998,4,Hangup + +; prompts for recording AGI script, ID is 4321 +; first variable is format (gsm/wav) +; second variable is timeout in milliseconds (default is 360000 [6 minutes]) +exten => 8167,1,Answer +exten => 8167,2,AGI(agi-record_prompts.agi,wav-----360000) +exten => 8167,3,Hangup +exten => 8168,1,Answer +exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----360000) +exten => 8168,3,Hangup + +; playback of recorded prompts +exten => _851XXXXX,1,Answer +exten => _851XXXXX,2,Playback(${EXTEN}) +exten => _851XXXXX,3,Hangup + +#### VDAD STANDARD TRANSFER ENTRIES #### +; VICIDIAL_auto_dialer transfer script for no-agent campaigns: +exten => 8364,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 8364,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8364,5,Hangup + +; VICIDIAL_auto_dialer transfer script: +exten => 8365,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 8365,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +exten => 8365,5,Hangup + +; VICIDIAL_auto_dialer transfer script SURVEY at beginning: +exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 8366,2,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8366,5,Hangup + +; VICIDIAL_auto_dialer transfer script Load Balance Overflow: +exten => 8367,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 8367,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +exten => 8367,5,Hangup + +; VICIDIAL_auto_dialer transfer script Load Balanced: +exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 8368,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8368,5,Hangup + +; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: +exten => 8369,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 8369,2,AMD(2000|2000|1000|5000|120|50|4|256) +exten => 8369,3,AGI(VD_amd.agi,${EXTEN}) +exten => 8369,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8369,7,Hangup + +; VICIDIAL auto-dial reminder script +exten => 8372,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 8372,2,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +exten => 8372,5,Hangup + +; VICIDIAL SURVEY transfer script AMD with Load Balanced: +exten => 8373,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 8373,2,AMD(2000|2000|1000|5000|120|50|4|256) +exten => 8373,3,AGI(VD_amd.agi,${EXTEN}) +exten => 8373,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8373,6,Hangup + +#### VDAD SIP UNREGISTERED TRANSFER ENTRIES #### +#### Use these entries IN PLACE OF the entries above if you are using SIP trunks +#### and are not registering your provider in sip.conf +;; VICIDIAL_auto_dialer transfer script for no-agent campaigns: +;exten => 8364,1,Playback(sip-silence) +;exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +;exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +;exten => 8364,5,Hangup +; +;; VICIDIAL_auto_dialer transfer script: +;exten => 8365,1,Playback(sip-silence) +;exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +;exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +;exten => 8365,5,Hangup +; +;; VICIDIAL_auto_dialer transfer script SURVEY at beginning: +;exten => 8366,1,Playback(sip-silence) +;exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +;exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +;exten => 8366,5,Hangup +; +;; VICIDIAL_auto_dialer transfer script Load Balance Overflow: +;exten => 8367,1,Playback(sip-silence) +;exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +;exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +;exten => 8367,5,Hangup +; +;; VICIDIAL_auto_dialer transfer script Load Balanced: +;exten => 8368,1,Playback(sip-silence) +;exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +;exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +;exten => 8368,5,Hangup +; +;; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: +;exten => 8369,1,Playback(sip-silence) +;exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256) +;exten => 8369,4,AGI(VD_amd.agi,${EXTEN}) +;exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +;exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +;exten => 8369,7,Hangup +; +;; VICIDIAL auto-dial reminder script +;exten => 8372,1,Playback(sip-silence) +;exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +;exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +;exten => 8372,5,Hangup +; +;; VICIDIAL SURVEY transfer script AMD with Load Balanced: +;exten => 8373,1,Playback(sip-silence) +;exten => 8373,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => 8373,3,AMD(2000|2000|1000|5000|120|50|4|256) +;exten => 8373,4,AGI(VD_amd.agi,${EXTEN}) +;exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +;exten => 8373,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +;exten => 8373,7,Hangup + + + +SUBPHASE 6.3: adding entries to your MySQL "asterisk" database for vicidial +applications + +We need to add a few initial values to the vicidial tables in the "asterisk" +database in order to start setting up the vicidial dialer system for use. + +#### REMOVED, not necessary if you run the first_server_install.sql file above + + + +SUBPHASE 6.4: setting up asterisk and helper applications for startup + +1. Make several entries in the rc.local of your system: + - on the command line type: + - vi /etc/rc.d/rc.local + - add the following entries(here's what we used): + +# OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring) +# /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2 + +# Disable console blanking and powersaving +/usr/bin/setterm -blank +/usr/bin/setterm -powersave off +/usr/bin/setterm -powerdown + +### start time server +/usr/local/bin/ntpdate -u pool.ntp.org +/usr/sbin/ntpd + +### start up the MySQL server +/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-name-resolve --skip-host-cache & + +### start up the MySQL 4.1.X server (with old passwords) +/usr/local/mysql/bin/safe_mysqld --old-passwords --skip-name-resolve --skip-host-cache & + +### start up the apache web server +/usr/local/apache2/bin/apachectl start + +### roll the Asterisk logs upon reboot +/usr/share/astguiclient/ADMIN_restart_roll_logs.pl + +### clear the server-related records from the database +/usr/share/astguiclient/AST_reset_mysql_vars.pl + +### load digium tormenta 4xT1 drivers into system +modprobe zaptel +modprobe wct1xxp +/sbin/ztcfg -vvvvvvvvvvvv + +### sybsys local login +touch /var/lock/subsys/local + +### sleep for 20 seconds before launching Asterisk +sleep 20 + +### start up asterisk +/usr/share/astguiclient/start_asterisk_boot.pl + + - you are done + + + + +SUBPHASE 6.5: setting up astguiclient scripts for continuous running + +1. Make several entries in the crontab of your system: + - on the command line type: + - cd /usr/share/astguiclient + - crontab -e + - add the following entries(here's what we used): + +### recording mixing/compressing/ftping scripts +0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX +#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM +#2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM + +### keepalive script for astguiclient processes +* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl + +### kill Hangup script for Asterisk updaters +* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl + +### updater for voicemail +* * * * * /usr/share/astguiclient/AST_vm_update.pl + +### updater for conference validator +* * * * * /usr/share/astguiclient/AST_conf_update.pl + +### flush queue DB table every hour for entries older than 1 hour +11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q + +### fix the vicidial_agent_log once every hour and the full day run at night +33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl +50 0 * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --last-24hours +## uncomment below if using QueueMetrics +#*/5 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl --only-qm-live-call-check + +## uncomment below if using Vtiger +#1 1 * * * /usr/share/astguiclient/Vtiger_optimize_all_tables.pl --quiet + +### updater for VICIDIAL hopper +* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q + +### adjust the GMT offset for the leads in the vicidial_list table +1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug + +### reset several temporary-info tables in the database +2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl + +### optimize the database tables within the asterisk database +3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl + +## adjust time on the server with ntp +30 * * * * /usr/local/bin/ntpdate -u pool.ntp.org 2>/dev/null 1>&2 + +### VICIDIAL agent time log weekly and daily summary report generation +2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl +22 0 * * * /usr/share/astguiclient/AST_agent_day.pl + +### VICIDIAL campaign export scripts (OPTIONAL) +#32 0 * * * /usr/share/astguiclient/AST_VDsales_export.pl +#42 0 * * * /usr/share/astguiclient/AST_sourceID_summary_export.pl + +### remove old recordings more than 7 days old +#24 0 * * * /usr/bin/find /var/spool/asterisk/monitorDONE -maxdepth 2 -type f -mtime +7 -print | xargs rm -f + +### roll logs monthly on high-volume dialing systems +#30 1 1 * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl + +### remove old vicidial logs and asterisk logs more than 2 days old +28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f +29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +2 -print | xargs rm -f +30 0 * * * /usr/bin/find / -maxdepth 1 -name "screenlog.0*" -mtime +4 -print | xargs rm -f + + + + + - once your system starts up you can attach to the screen running asterisk by +typing "screen -r " find which screen by typing "screen -r" and +looking for the lowest screen number. Then to detach again from the screen +while you are in it type 'Ctrl+a' then 'd' + - you are done + +NOTES: +- The AST_agent_day.pl and AST_agent_week.pl scripts create an ASCII fixed-length report of all agent activity on the system +- The AST_VDsales_export.pl script allows for the exporting(into several different formats) of specified vicidial_list data based on status and campaign as well as inbound group +- The AST_sourceID_summary_export.pl script summarizes leads in the system by source_id and generates a text report + + + + + +SUBPHASE 6.6: adding test leads to the VICIDIAL database and configuring a +VICIDIAL campaign and users + +First we will add a few test leads to the vicidial_list table so that we can +test our system. There is also an application included with the distribution +that will accept a delimited file of leads placed in the /usr/share/astguiclient/VICIDIAL/LEADS_IN/ +directory and load it into the database automatically(VICIDIAL_IN_new_leads_file.pl +[a sample lead file in the proper format is included with this release: + - test_VICIDIAL_lead_file.txt]) +If you want to use the lead import script I suggest looking at the code to make +sure it is entering what you want it to. We are not going to go over that +particular script in this document. + +Also, there is a web-based lead loader that was made available as of the 1.1.1 +release and is accessible from the VICIDIAL admin.php web page(click on the +"LOAD NEW LEADS" link at the top of the admin page). To get to this page you +must have permissions in the vicidial_user table(Load Leads set to 1) . +Instructions on it's use are included on the page through the help question +mark link. +NOTE: in PHP you must have "fileuploads" enabled for this page to work. +NOTE: it is important to have your proper country code in the phone_code field of your leads so that the GMT offset encodding will properly code the time zones for your leads. For the USA/Canada/Caribbean this would be 1. For the UK this is 44 and Mexico is 52 and so on. + +Second we need to add the disposition statuses into the system, all of these +queries are below: +(Note: you may want to replace 7275551212 with a real number to test in these +records) + +#### REMOVED, not necessary if you run the first_server_install.sql file above + + +Now that the sample leads and disposition codes have been entered, we can go +into the VICIDIAL administration website and set up our campaigns, lists and users. +But first let's make sure that they have the right GMT offset: + run this on the command line: + - /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --postal-code-gmt + +3. Enter the astguiclient administration page: +http://10.10.10.15/vicidial/admin.php +(use the username and password created when we entered a record into the +vicidial_users table in SUBPHASE 6.1, In our case this is 6666 and 1234) +NOTE: if you click on the Logout button you must leave the user/pass empty and click OK + - Now that you are logged into the vicidial administration system we can add +new user entries for each of the new users and enter new campaigns and new +lists. + - The first step is to enter your new users, Click on the ADD A NEW USER +and fill in the appropriate information for each now user you want to +add. + - Next, you need to create a new campaign, click on the ADD A NEW +CAMPAIGN link and fill in what you want the campaign to be called as +well as a description + - Next, you need to define a new list, click on the ADD A NEW LIST link +and fill in what you want the list to be called as well as a using the +list ID of the leads that we loaded in the previous step "101" and +select the new campaign from the pull-down menu that we just created. + - Now that you have created your list, make it active by changing active to Y + - now modify your campaign ang change the first status to be called to +NEW and submit. Now your system is ready to dial. + - you are done + + + +SUBPHASE 6.7: VICIDIAL remote agents: + +With v1.0 of VICIDIAL we have the ability to use a simple web form to give +remote agents a way to receive calls to whatever number they happen to be at, +and they can view/edit call details and see a call log all through a web page +(vdremote.php) or http://10.10.10.15/vicidial/vdremote.php on this installation. +Remote Agents is only recommended for inbound calls because of the extra time +needed to dial a number out to transfer the call to. To set up remote agents, +just go to the vicidial admin.php page and ADD NEW REMOTE AGENTS(Make sure the +userID start also has a user login so they can get to the vdremote page). You +will see that you can set up a remote agent entry to take multiple lines if you +wish meaning that, for example, if you need to send all of your calls to another +location because of a massive snowstorm(and none of your agents showed up at work) +you just log in that remote agent record with say 10 lines and then all of those +calls will be directed to the same number you set up for the remote agent. Then +again you could just get your agents to log in from home if they have a phone +and computer + + + +SUBPHASE 6.8: astGUIclient web-only client: + +With 1.1.1 release of astguiclient we have completely rewritten the astGUIclient +client app in AJAX(PHP/Javascript/XMLHTTPRequest) to enable a full, real-time +GUI interface using only a web browser. The browser requirements for this are: +- Firefox 1.0 or greater *** RECOMMENDED *** +- Mozilla 1.7 or greater +- Netscape 8 or greater +- Opera 8.5 or greater +- Microsoft Internet Explorer 6.0 + +This new version also has more flexibility and functionality than the perl/Tk +version as well as being prettier. We have successfully tested this on many +platforms and in remote locations. It functioned wonderfully off-site with one +of our IAX hardphones and offers a lot of promise for road warriors who need +a lot of options on their phone usage like conferencing and a detailed call log. + +To log into this app you will need a login setup in the vicidial_users table +with a user_level of 1 or greater as well as an entry for the phone you are +using in the phones table. You will first get a login prompt for the vicidial +login then you will have the phone login where you enter the Login and Password +for that phone entry. From there the app should display and you will see the +MAIN screen with your phone information, voicemail display and your inbound/ +outbound phone call log. + +The example web page you would go to on this installation would be: +http://10.10.10.15/agc/astguiclient.php + +The inbound log and callerID popup is dependant on having a call_inbound.agi +entry in your dialplan before you phone is dialed(see subphase 6.2 step 2) + +Another thing to note is that you can have the agc folder(with the .php files +in it) copied to multiple web servers, you just need to make sure that the +MySQL database connection works (check the settings in the dbconnect.php file +that is in the agc directory). We have had astguiclient.php running on 3 +separate web servers for the same DB server and Asterisk server. This is an +easy way to allow for auto failover and/or redundancy. Also, this client will +work over SSL connections(https) for encrypted communications with the server. + +New in astGUIclient release 1.1.7 is multi-language support. multi-language +versions of web-clients and admin pages are available in the LANG_www directory +and can be unzipped into your webroot directory. + + + +SUBPHASE 6.9: VICIDIAL web-only client: + +NOTE: There is a VICIDIAL Agent manual available from http://www.eflo.net + +With 1.1.6 release of astguiclient we have finished the rewrite of the VICIDIAL +client app in AJAX(PHP/Javascript/XMLHTTPRequest) to enable a full, real-time +GUI interface using only a web browser like we have done with astGUIclient. +The browser requirements for this are: +- Firefox 1.0 or greater *** RECOMMENDED *** +- Mozilla 1.7 or greater +- Netscape 8 or greater +- Opera 8.5 or greater +- Microsoft Internet Explorer 6.0 + +This version is fully functional and has been tested in our production +call center with no problems. + +To log into this app you will need a login setup in the vicidial_users table +with a user_level of 1 or greater as well as an entry for the phone you are +using in the phones table. You will first get a login prompt for the vicidial +login then you will have the phone login where you enter the Login and Password +for that phone entry. From there the app should display and you will see the +VICIDIAL screen with your phone information. + +The example web page you would go to on this installation would be: +http://10.10.10.15/agc/vicidial.php + +One more feature that the VICIDIAL web-client offers is the ability to set up +an EXTERNAL phone extension in the astguiclient admin section so that you can +have agents log in to vicidial.php wherever they have access to a phone with +an external phone number and a web browser. To do this follow these steps: +- "ADD PHONE" in the admin.php web page and enter whatever name you want +- For the dialplan number field put in the full digits that you would dial from + the Asterisk server to get to that agent's external phone(with 91 if used) +- For the Protocol select EXTERNAL +- make sure the agent knows the login and password set for this phone entry. +Then the agent will go to the vicidial.php page and enter in their phone +login/pass, their vicidial user/pass/campaign and their phone should ring in a +few seconds, and they are logged in and ready to take calls. + +Another thing to note is that you can have the agc folder(with the .php files +in it) copied to multiple web servers, you just need to make sure that the +MySQL database connection works (check the settings in the dbconnect.php file +that is in the agc directory). We have had astguiclient.php running on 3 +separate web servers for the same DB server and Asterisk server. This is an +easy way to allow for auto failover and/or redundancy. Also, this client will +work over SSL connections(https) for encrypted communications with the server. + +New in astGUIclient release 1.1.7 is multi-language support. multi-language +versions of web-clients and admin pages are available in the LANG_www directory +and can be unzipped into your webroot directory. + +Admin Note: If you want to enable your agents to login with only their user/pass +you can hardcode the phone_login and phone_pass into the query string(URL) and +use a bookmark on their desktop, taking one more step out of their login process +example: http://10.10.10.15/agc/vicidial.php?pl=gs102&pp=test + +It is recommended if you are in a call center environment that you would disable +the "Saved Form Information" option in Firefox settings. This is a checkbox in +the Privacy settings under the Options menu. + + + +PHASE 7.0: You are done with installation + +If you have problems and it is not working right(and are NOT celebrating right +now), feel free to take a look at the FAQ for solutions to common installation +errors, read the SCRATCH_INSTALL document, visit the VICIDIAL forum or send an +email to the mailing list: +http://www.eflo.net/VICIDIALforum/index.php +https://lists.sourceforge.net/lists/listinfo/astguiclient-users + +Also, check out our weblog: http://astguiclient.blogspot.com/ + + +**** IMPORTANT - In order for vicidial/astguiclient to function correctly please +read the REQUIREMENTS.txt for a minimum requirements list. *** + +End-user Manuals for Agents and Managers are available from http://www.eflo.net diff --git a/agc_2-X/branches/agc_2.2.0/docs/Sangoma_Netborder_CPD_Walkthrough.txt b/agc_2-X/branches/agc_2.2.0/docs/Sangoma_Netborder_CPD_Walkthrough.txt new file mode 100644 index 00000000..0e5cd8cc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/Sangoma_Netborder_CPD_Walkthrough.txt @@ -0,0 +1,112 @@ +Configuring Sangoma's NetBorder CPA(Call Progress Analysis, aka ParaXip) to work with VICIDIAL. + +This walk through assumes the following things: +- That you have a working installation of Vicidial that is able to place outbound calls. VICIbox Server (www.vicibox.com) will set this up for you. +- That you have the asterisk source code on the VICIDIAL server. VICIbox server installs Asterisk from source so it will meet this requirement. +- That you have a SIP Carrier that does not use an outbound proxy and is setup to use host based authentication. +- That you have used the Carrier configuration section of VICIDIAL to setup your SIP Carrier. +- That you have at least one phone setup on the VICIDIAL system and you are able to place outbound phone calls from this phone to your SIP Carrier. +- That you have a Windows system already setup. According to the NetBorder documentation, NetBorder works with Windows XP, Windows 2003 Server, or Windows Vista. We highly recommend installing it on Windows 2003 Server. It is possible, though not confirmed, that it will work on Windows Server 2008. +- The Windows system is able to ping your carrier and its firewall is configured to allow traffic on the following ports UDP 5060 to 5069 and 10000 to 20000 and TCP 5060 to 5069. + +Section 1. NetBorder Installation. + +Step 1. On the Windows system go to www.sangoma.com. +Step 2. Go to "Products and Solutions" -> "Software Building Blocks" -> "NetBorder(TM) Suite for Contact Centers" and click on "Call Analyzer Call Progress Analysis" +Step 3. Click on the "Try It Now!" tab. +Step 4. Click on the "Download now" button. +Step 5. Fill out the form and click the "Submit" button. +Step 6. The download should start. If not click the link to begin the download. +Step 7. Once the download is complete, unzip the file to the Desktop. +Step 8. Open the extracted directory. +Step 9. Run the ParaxipNetBorderSetup.VERSION.exe file. +Step 10. Read the License Agreement and then click "I Agree" (unless you don't. Then you should probably exit). +Step 11. Where it says "Call Progress Analysis Service" click the check box that is appropriate for your area of the world. For North America you would check the "North American models". Then click "Next". +Step 12. Next you will be prompted on where you want to install NetBorder. Change this if you like, then click "Install". +Step 13. During the install process, Windows may ask you if you want to unblock certain ports. If it does it means that the firewall is not properly configured. It needs to allow traffic on the following ports UDP 5060 to 5069, UDP 10000 to 20000, and TCP 5060 to 5069. +Step 14. Once the installer is complete click the "Close" button. + + +Section 2. Initial NetBorder Configuration + +Step 1. In the Windows Start menu click find the Paraxip NetBorder section and click on the "Start Session Controller" short cut. +Step 2. Go to the Windows Control Panel and double click on "Administrative Tools". +Step 3. Double click on Services. +Step 4. Scroll down to the Paraxip services and verify that the "Paraxip NetBorder Session Controller" and "Paraxip NetBorder Call Progress Analysis" services are both started. If they have not you will need to contact Sangoma's technical support staff. +Step 5. To start these services automatically when Windows starts right click each of them and click on Properties. Then change the Startup Type from Manual to Automatic. +Step 6. Reboot the windows system to verify that these services start on boot up. +Step 7. Once the windows system is back up, log in and go back to Services in the Administrative Tools (see step 16). +Step 8. Scroll back down to the Paraxip Section and verify that the "Paraxip NetBorder Session Controller" and "Paraxip NetBorder Call Progress Analysis" services started on their own. If not, this might be caused by issues with your version of Windows. Contact Sangoma technical support for more details. +Step 9. Open up My Computer and browser to the directory where you installed Paraxip. The default should be "C:\Program Files\Paraxip NetBorder\". +Step 10. Open the "config" directory. +Step 11. Right click the "sip-hub.properties" file and click Open. +Step 12. Choose "Select the program from a list" and click OK. +Step 13. Choose "WordPad" from the available programs and click OK. +Step 14. Change the line that reads "paraxip.sip.userAgent.IPAddress=INADDER_ANY:5062/udp" to "paraxip.sip.userAgent.IPAddress=INADDER_ANY:5060/udp". +Step 15. Change the line that reads "#paraxip.net.primaryIPAddress=x.x.x.x" to "paraxip.net.primaryIPAddress=IPADRESS" where IPADDRESS is the IP address of the windows system. If you have two IP addresses change this to the one where paraxip will be accepting the connections from the VICIDIAL system (usually the internal IP). +Step 16. Go back to the NetBorder config directory and double click the cpa_media_uas.properties file (note windows may now be hiding the ".properties" at the end of the filename). +Step 17. Change the line that reads "#paraxip.net.primaryIPAddress=x.x.x.x" to "paraxip.net.primaryIPAddress=IPADRESS" where IPADDRESS is the IP address of the windows system just like you did in the sip-hub.properties file. + + +Section 2. Patching and recompiling Asterisk. + +Step 1. On the Linux console of your VICIDIAL system change to the Asterisk source code directory (on a VICIbox Server installation this is located at /usr/src/asterisk-1.2.30.4). The command to do so will look something like this "cd /usr/src/asterisk-1.2.30.4". +Step 2. Copy the version (1.2 or 1.4) of the paraxip patch that matches the version of Asterisk which is installed on your VICIDIAL system from the extras directory of the VICIDIAL source code (on a VICIbox Server installation this is the 1.2 version and it is located in the /usr/src/astguiclient/extras/ directory) to the asterisk source code directory. The command to do so will look something like this "cp /usr/src/astguiclient/extras/vicidial_paraxip_chan_sip-1.2.patch ." Adjust this command according to the location of your VICIDIAL source code and the version of asterisk that you are using(new version for Asterisk 1.4: netborder-cpd-1.4.patch). +Step 3. Patch the chan_sip.c file in the channels directory. The command to do so will look something like this "patch channels/chan_sip.c -p1 < vicidial_paraxip_chan_sip-1.2.patch". If you are using 1.4 asterisk be sure to adjust this command accordingly. +Step 4. Now it is time to recompile asterisk. If you are using 1.2 Asterisk the command to do so is this "make clean && make all && make install". If you are using 1.4 asterisk the command to do so is this "./configure && make clean && make all && make install". This process will take some time. What ever you do, do NOT run "make samples" as this will wipe out your existing asterisk configurations. + + +Section 3. Configuring your Carrier in VICIDIAL. + +Step 1. Log into the VICIDIAL admin page and go to the Admin -> Carriers section. +Step 2. Click on the MODIFY link for your Carrier on the right hand side. +Step 3. In the "Account Entry" section add the following: + outboundproxy=NETBORDERIP + port=5060 +Where NETBORDERIP is the ip address of the Windows system that you are running NetBorder on. If "outboundproxy" is already set for your carrier it may not be possible to use NetBorder with them. + + +Section 4. Testing. + +Step 1. On the Linux console of your VICIDIAL system enter the Asterisk CLI by typing "asterisk -r". +Step 2. Using the phone that you have already configured to use with Vicidial try placing several test calls. +Step 3. If everything is configured correctly your call should go out to your carrier and connect. If not it is either a problem with your VICIDIAL carrier configuration, the patching of Asterisk, or with the Configuration of NetBorder. +Step 4. If step 3 worked correctly, you should now be able to set the "CPD AMD Action" in your campaigns. The process of which is explained in the VICIDIAL Managers Manual available from eflo.net. + + +Section 6. Final NetBorder Configuration. + +Once you have successfully placed some test calls through ParaXip you should turn down the level of logging that NetBorder is performing. This will increase the number of calls NetBorder is able to handle. + +Step 1. Go to NetBorder config directory and open the sip-hub.properties file. +Step 2. Find the line that reads "log4cplus.rootLogger=WARN, NTEVENTLOG, DEVUG_APPENDER, CALL_LOG_APPENDER" to "log4cplus.rootLogger=WARN, NTEVENTLOG". +Step 3. Find the line that reads "log4cplus.appender.NTEVENTLOG.filters.1.LogLevelMin=WARN" to "log4cplus.appender.NTEVENTLOG.filters.1.LogLevelMin=ERROR". +Step 4. Go to NetBorder config directory and open the cpa_media_uas.properties file. +Step 5. Find the line that reads "log4cplus.rootLogger=WARN, NTEVENTLOG, DEVUG_APPENDER, CALL_LOG_APPENDER" to "log4cplus.rootLogger=WARN, NTEVENTLOG". +Step 6. Find the line that reads "log4cplus.appender.NTEVENTLOG.filters.1.LogLevelMin=WARN" to "log4cplus.appender.NTEVENTLOG.filters.1.LogLevelMin=ERROR". +Step 7. Click the windows Start menu and go to the Paraxip NetBorder section and click the "Stop Session Controller" shortcut. +Step 8. Got back to the Paraxip NetBorder section of the Start menu and click the "Start Session Controller" shortcut. + + +Congratulations! The free trial of NetBorder CPA Analysis and Vicidial are now successfully integrated. The free trial has a limit of 30 concurrent channels. If you try and dial more than this your calls will fail. Also keep an eye on the CPU load on the windows system. If the load gets higher than 60% Paraxip will not be able to react in time. You might get choppy audio or a higher rate of false positives or false negatives. + + + + + +VICIDIAL Additional statuses for pre-Answer results: + +INSERT INTO vicidial_statuses values('CPDATB','CPD All-Trunks-Busy','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDB','CPD Busy','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDNA','CPD No-Answer','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDREJ','CPD Reject','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDINV','CPD Invalid-Number','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDSUA','CPD Service-Unavailable','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDSI','CPD Sit-Intercept','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDSNC','CPD Sit-No-Circuit','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDSR','CPD Sit-Reorder','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDSUK','CPD Sit-Unknown','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDSV','CPD Sit-Vacant','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDUK','CPD Unknown','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CPDERR','CPD Error','N','N','UNDEFINED','N','N','N','N','N'); + diff --git a/agc_2-X/branches/agc_2.2.0/docs/Slackware-Linux_USA_DST_changes.txt b/agc_2-X/branches/agc_2.2.0/docs/Slackware-Linux_USA_DST_changes.txt new file mode 100644 index 00000000..b6c64cf0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/Slackware-Linux_USA_DST_changes.txt @@ -0,0 +1,48 @@ +Below are Timezone update instructions for Slackware and any generic Linux +install. Because of the changes in Daylight Savings Time in the USA ad Canada +in 2007, it becomes necessary to update your system's timezone info if you are +using a Linux distro that was released before 2006 and have not updated it. + +SLACKWARE 10.2: +cd / +wget ftp://ftp.slackware.com/pub/slackware/slackware-10.2/patches/packages/glibc-zoneinfo-2.3.5-noarch-7_slack10.2.tgz +gunzip glibc-zoneinfo-2.3.5-noarch-7_slack10.2.tgz +tar xvf glibc-zoneinfo-2.3.5-noarch-7_slack10.2.tar +chmod 0777 install/doinst.sh +./install/doinst.sh +date + + +SLACKWARE 10.1: +cd / +ncftpget ftp://ftp.slackware.com/pub/slackware/slackware-10.1/patches/packages/glibc-zoneinfo-2.3.4-noarch-2_slack10.1.tgz +gunzip glibc-zoneinfo-2.3.4-noarch-2_slack10.1.tgz +tar xvf glibc-zoneinfo-2.3.4-noarch-2_slack10.1.tar +chmod 0777 install/doinst.sh +./install/doinst.sh +date + + +SLACKWARE 10.0: +cd / +ncftpget ftp://ftp.slackware.com/pub/slackware/slackware-10.0/patches/packages/glibc-zoneinfo-2.3.2-noarch-7_slack10.0.tgz +gunzip glibc-zoneinfo-2.3.2-noarch-7_slack10.0.tgz +tar xvf glibc-zoneinfo-2.3.2-noarch-7_slack10.0.tar +chmod 0777 install/doinst.sh +./install/doinst.sh +date + + +GENERIC LINUX TIMEZONE CHANGES(Example New York EST): +cd /tmp +ncftpget ftp://elsie.nci.nih.gov/pub/tzdata2007c.tar.gz +gunzip tzdata2007c.tar.gz +tar xvf tzdata2007c.tar +zic -d /tmp/zoneinfo northamerica +cp -f /tmp/zoneinfo/EST5EDT /usr/share/zoneinfo/ +cp -f /tmp/zoneinfo/America/New_York /usr/share/zoneinfo/America/ +zdump -v /usr/share/zoneinfo/EST5EDT | grep 2007 +zdump -v /usr/share/zoneinfo/America/New_York | grep 2007 +ln -fs /etc/localtime /usr/share/zoneinfo/EST5EDT +zdump -v /etc/localtime | grep 2007 +date diff --git a/agc_2-X/branches/agc_2.2.0/docs/SuSE_10_3_OS_INSTALL.odt b/agc_2-X/branches/agc_2.2.0/docs/SuSE_10_3_OS_INSTALL.odt new file mode 100644 index 00000000..bd36b8ad Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/docs/SuSE_10_3_OS_INSTALL.odt differ diff --git a/agc_2-X/branches/agc_2.2.0/docs/SuSE_10_3_OS_INSTALL.pdf b/agc_2-X/branches/agc_2.2.0/docs/SuSE_10_3_OS_INSTALL.pdf new file mode 100644 index 00000000..aa352049 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/docs/SuSE_10_3_OS_INSTALL.pdf differ diff --git a/agc_2-X/branches/agc_2.2.0/docs/TIMECLOCK_PROCESS.txt b/agc_2-X/branches/agc_2.2.0/docs/TIMECLOCK_PROCESS.txt new file mode 100644 index 00000000..a5e3e2e0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/TIMECLOCK_PROCESS.txt @@ -0,0 +1,175 @@ +Timeclock process flow 2008-05-12 + +** THIS TIMECLOCK FUNCTIONALITY PROCESS IS PLANNED FOR THE 2.0.5 RELEASE ** + +This will outline the process I have thought through for adding a timeclock component to the VICIDIAL system. The objective is to add the following features to make VICIDIAL a more well-rounded product: +- Allow vicidial users to clock-in to the system +- Allow vicidial managers to clock users in and out as well as edit timeclock records +- Maintain an audit trail for manager-modified records +- Add a SHIFT section to administration +- Have reports showing all timeclock totals for various parameters(user-group/time-period/user/current-status/etc...) +- ability to allow managers to alter timeclock records with audit trail + +Future planned features: +- Allow restrictions of agent-login by shift +- Allow ability to not allow agents to log-in to any VICIDIAL page(admin or agent) without clocking in. +- reports showing user log activity outside of shift timeframes + + +Description: + +The first new feature to be added to help with the overall adoption of this feature is the ability to have the system optionally generate unique userIDs as users are entered into the system. For this purpose a new auto-generate option has been added to the add-a-new-user and copy-user functions. This auto-generate feature will take the auto_user_add_value field in the system_settings table and check to see if an agent with that ID exists in the system. If they do, then 7 will be added to the number and checked again until a non-used number is found. + +To facilitate more workforce management, as is desired with the addition of a timeclock function to VICIDIAL, I have decided to add a SHIFT structure to the system as well. This should allow for scheduling of user_groups of agents and will have the ability to not allow them to login if they try to login outside of their scheduled hours. A shift will have a start time and a length(to make running over midnight easier) as well as a list of the days of the week that the shift applies. Each user-group can have multiple shifts activated for it, for instance you may want a Monday-Friday shift of 9AM-5PM and a Saturday shift of 10AM to 4PM. In this case the user-group would have two shifts selected. Some reports will also be viewable by shift as well. + + + +Newly Created Scripts: +timeclock.php - linked to from vicidial.php/admin.php/welcome.php to give easy access for users to use the timeclock and then go back to what they were doing. + +timeclock_auto_logout.pl - script that runs at the defined system_settings.timeclock_end_of_day field that will go through all agents that are currently logged into the timeclock for the day and log them out with the AUTOLOGOUT event. Only runs once a day. Triggered by the ADMIN_keepalive_all.pl script. Defined to run by the '9' flag in the keepalive settings of the astguiclient.conf file + +timeclock_report.php - report linked from the reports page that shows completed timeclock records by user and user-group across a timeframe + +timeclock_edit.php - page that allows managers to edit existing completed timeclock records + + + +More to come... + + + +New associated features: + +VICIDIAL Administrator Log: +The admin log will replace the older flat-file log of administrator and manager activity. This log will allow for much easier viewing of the changes that have taken place for a specific record and other activities that managers and administrators do from the VICIDIAL administration interface. There will be event types and record IDs that identify the kind of record and the specific record worked with by a specific administrator. This table will be utilized at first only by the timeclock apps, but as the code is developed it will fully replace the admin log file. + +Administrator Sections: +USER +TIMECLOCK +CAMPAIGN +CAMPAIGN DIAL STATUS +CAMPAIGN HOPPER +CAMPAIGN STATUS +CAMPAIGN HOTKEY +CAMPAIGN RECYCLE +CAMPAIGN AUTO-ALT-DIAL +CAMPAIGN PAUSE CODE +CAMPAIGN LIST MIX +CAMPAIGN QC +LIST +LIST DNC +SCRIPT +FILTER +IN-GROUP +USER GROUP +REMOTE AGENT +PHONE +PHONE ALIAS +CALLTIME +STATE CALLTIME +SHIFT +CONFERENCE +VICIDIAL CONFERENCE +SERVER +SERVER TRUNK +SYSTEM SETTINGS +SYSTEM STATUS +STATUS CATEGORY +QC STATUS +REPORT +OTHER + + +The Database Changes: + +# add field for auto-increment of users +ALTER TABLE system_settings ADD auto_user_add_value INT(9) UNSIGNED default '101'; +UPDATE system_settings SET auto_user_add_value='2110'; + +# This table contains system shift information + CREATE TABLE vicidial_shifts ( +shift_id VARCHAR(20) NOT NULL, +shift_name VARCHAR(50), +shift_start_time VARCHAR(4) default '0900', +shift_length VARCHAR(5) default '16:00', +shift_weekdays VARCHAR(7) default '0123456', +index (shift_id) +); + +# add field for allowable shifts for user groups +ALTER TABLE vicidial_user_groups ADD group_shifts TEXT; + +# This table contains the log of timeclock activity + CREATE TABLE vicidial_timeclock_log ( +timeclock_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +event_epoch INT(10) UNSIGNED NOT NULL, +event_date DATETIME NOT NULL, +login_sec INT(10) UNSIGNED, +event VARCHAR(50) NOT NULL, +user VARCHAR(20) NOT NULL, +user_group VARCHAR(20) NOT NULL, +ip_address VARCHAR(15), +shift_id VARCHAR(20), +notes VARCHAR(255), +manager_user VARCHAR(20), +manager_ip VARCHAR(15), +event_datestamp TIMESTAMP NOT NULL, +tcid_link INT(9) UNSIGNED, +index (user) +); + +# This table contains the current timeclock status of a user + CREATE TABLE vicidial_timeclock_status ( +user VARCHAR(20) UNIQUE NOT NULL, +user_group VARCHAR(20) NOT NULL, +event_epoch INT(10) UNSIGNED, +event_date TIMESTAMP, +status VARCHAR(50), +ip_address VARCHAR(15), +shift_id VARCHAR(20), +index (user) +); + +# This table contains the audit log of timeclock activity(non-editable) + CREATE TABLE vicidial_timeclock_audit_log ( +timeclock_id INT(9) UNSIGNED NOT NULL, +event_epoch INT(10) UNSIGNED NOT NULL, +event_date DATETIME NOT NULL, +login_sec INT(10) UNSIGNED, +event VARCHAR(50) NOT NULL, +user VARCHAR(20) NOT NULL, +user_group VARCHAR(20) NOT NULL, +ip_address VARCHAR(15), +shift_id VARCHAR(20), +event_datestamp TIMESTAMP NOT NULL, +tcid_link INT(9) UNSIGNED, +index (timeclock_id), +index (user) +); + +# system settings added fields to define the time when all logged-in agents are to be auto-logged out +ALTER TABLE system_settings ADD timeclock_end_of_day VARCHAR(4) default '0000'; +ALTER TABLE system_settings ADD timeclock_last_reset_date DATE; + +# vicidial_users added fields for permissions to allow users to edit timeclock_log records +ALTER TABLE vicidial_users ADD add_timeclock_log ENUM('1','0') default '0' +ALTER TABLE vicidial_users ADD modify_timeclock_log ENUM('1','0') default '0' +ALTER TABLE vicidial_users ADD delete_timeclock_log ENUM('1','0') default '0' + +# added new table for administrator activity log + CREATE TABLE vicidial_admin_log ( +admin_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +event_date DATETIME NOT NULL, +user VARCHAR(20) NOT NULL, +ip_address VARCHAR(15) NOT NULL, +event_section VARCHAR(30) NOT NULL, +event_type ENUM('ADD','COPY','LOAD','RESET','MODIFY','DELETE','SEARCH','LOGIN','LOGOUT','CLEAR','OTHER') default 'OTHER', +record_id VARCHAR(50) NOT NULL, +event_code VARCHAR(255) NOT NULL, +event_sql TEXT, +event_notes TEXT, +index (user), +index (event_section), +index (record_id) +); diff --git a/agc_2-X/branches/agc_2.2.0/docs/Ubuntu_Install.txt b/agc_2-X/branches/agc_2.2.0/docs/Ubuntu_Install.txt new file mode 100644 index 00000000..4cb1317e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/Ubuntu_Install.txt @@ -0,0 +1,305 @@ +Ubuntu VICIDIAL Install: 2009-09-13 + +### NOTE ### +If you just want a quick setup of ViciDial on Ubuntu, take a look at our +downloadable ViciBox server install ISO available at: http://www.vicibox.com + + +From a full default install of Ubuntu Server 8.0.4.3: + +Open a terminal on the system +$ sudo su +$ passwd (set the root user's password) + +$ apt-get update (retrieves the latest repository information) +$ apt-get upgrade (upgrades any out of date packages +$ apt-get install linux-headers-server (Used for zaptel compil) +$ reboot (reboot to use the new kernel) + +'apt-get install' the following packages: +apache2 (web server) +apache2-mpm-prefork (multi threaded portion to apache2) +build-essential (this is the build tool chain for gcc) +iftop (this is a useful tool for looking at the network interface) +lame (this is a mp3 encoding tool) +libmysqlclient15-dev (library that lets programs connect to mysql) +libncurses5-dev +libploticus0-dev +libsox-fmt-all (encoding and decoding libraries for sox) +linux-source (needed if you are going to recompile the linux kernel) +mpg123 (mp3 playback utility for the commandline) +mtop (utility for monitoring mysql) +mysql-client-5.0 (command for connecting to mysql) +mysql-doc-5.0 (documentation for mysql) +mysql-server-5.0 (this will ask for a password you can just press enter a bunch of times) +mytop (utility for monitoring mysql) +ntp (time synchronization utility) +openssh-server (ssh server allows for remote connection) +php5 (base php files) +php5-cli (php command line interface (allows us to run php -v for eaccelerator)) +php5-dev (development tools for php5 allows us to compile eaccelerator +php5-mysql (allows php5 to connect to a mysql server) +phpmyadmin (vicidial uses apache2 as its webserver please select this) +ploticus (this is what creates the graphs for the server performance screen) +screen (vicidial runs its core scripts in screen so this is REQUIRED) +sipsak (tool for sending various information to sip phones) +sox (command line encoding and decoding tool) +subversion (code versioning tool) +subversion-tools +unzip +libcurl3 +curl +vim + + +Go to terminal: +$ cd /usr/src +$ tar -xjf linux-source-*.tar.bz2 (where * is the kernel version) +$ cpan +(press enter to go through the prompts. If you have a multi cored system you should enter the -j option when specified with n+1 as the value, where n is the number of CPUs you have in your system. Also enter UNINST=1 when asked. until you get to the mirror selection portion) +(select 3 mirror sites in your area) +> install MD5 +> install Digest::SHA1 +> install readline +> install Bundle::CPAN (do not change settings) +> quit +$ cpan (enter through questions until you get to the cpan prompt) +> o conf commit (saves the config changes) +> force install Scalar::Util +> install DBI +> force install DBD::mysql +> install Net::Server +> install Time::HiRes +> install Net::Telnet +> install Unicode::Map +> install Jcode +> install OLE::Storage_Lite +> install Spreadsheet::WriteExcel +> install Proc::ProcessTable +> install Spreadsheet::ParseExcel +> install Mail::Sendmail +> quit + +$ cd /usr/src +$ wget http://asterisk.gnuinter.net/files/asterisk-perl-0.08.tar.gz +$ tar xzf asterisk-perl-0.08.tar.gz +$ cd asterisk-perl-0.08 +$ perl Makefile.PL +$ make all +$ make install + +$ cd /usr/src +$ wget http://www.daveltd.com/src/util/ttyload/ttyload-0.5.tar.gz +$ tar xzf ttyload-0.5.tar.gz +$ cd ttyload-0.5 +$ make +$ make install + +$ cd /usr/src +$ wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.zip +$ unzip eaccelerator-0.9.5.3.zip +$ cd eaccelerator-0.9.5.3 +$ phpize +$ ./configure +$ make +$ make install +$ cd /etc/php5/conf.d/ +$ vim eaccelerator.ini +> add the following to the eaccelerator.: + extension="eaccelerator.so" + eaccelerator.shm_size="48" + eaccelerator.cache_dir="/var/lib/eaccelerator" + eaccelerator.enable="1" + eaccelerator.optimizer="1" + eaccelerator.check_mtime="1" + eaccelerator.debug="0" + eaccelerator.filter="" + eaccelerator.shm_max="0" + eaccelerator.shm_ttl="0" + eaccelerator.shm_prune_period="0" + eaccelerator.shm_only="0" + eaccelerator.compress="1" + eaccelerator.compress_level="9" +$ mkdir /var/lib/eaccelerator +$ chmod 0777 /var/lib/eaccelerator +$ php -v + +NOTE: You should see a line mentioning eaccelerator. If you do not or you get an error you have done something wrong + +$ mkdir /usr/src/asterisk +$ cd /usr/src/asterisk + +****FOR 1.2 asterisk run the following +$ wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.2.30.2.tar.gz +$ wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.2.27.tar.gz +$ wget http://downloads.digium.com/pub/libpri/releases/libpri-1.2.8.tar.gz +$ tar xzf asterisk-1.2.30.2.tar.gz +$ tar xzf zaptel-1.2.27.tar.gz +$ tar xzf libpri-1.2.8.tar.gz +$ cd libpri-1.2.8 +$ make clean && make && make install +$ cd ../zaptel-1.2.27 +$ make clean&& make && make install +$ cd ../asterisk-1.2.30.2 +$ cd apps +$ wget http://www.eflo.net/files/app_amd2.c +$ mv app_amd2.c app_amd.c +$ vi Makefile + replace this line(line 32): + app_mixmonitor.so app_stack.so + with this line: + app_mixmonitor.so app_stack.so app_amd.so +$ wget http://www.eflo.net/files/amd2.conf +$ mkdir /etc/asterisk +$ mv amd2.conf /etc/asterisk/amd.conf +$ wget http://www.eflo.net/files/meetme_DTMF_passthru-1.2.23.patch +$ patch -p1 < ./meetme_DTMF_passthru-1.2.23.patch + File to patch: app_meetme.c +$ wget http://www.eflo.net/files/meetme_volume_control_1.2.16.patch +$ patch -p1 < ./meetme_volume_control_1.2.16.patch + File to patch: app_meetme.c +$ cd ../ +$ wget http://www.eflo.net/files/cli_chan_concise_delimiter.patch +$ patch -p1 < ./cli_chan_concise_delimiter.patch + File to patch: cli.c +$ wget http://www.eflo.net/files/app_waitforsilence.c +$ mv app_waitforsilence.c apps/app_waitforsilence.c +$ wget http://www.eflo.net/files/enter.h +$ wget http://www.eflo.net/files/leave.h +$ mv -f enter.h apps/enter.h +$ mv -f leave.h apps/leave.h +$ vi codecs/gsm/Makefile + add OPTIMIZE=-O2 to the file before the ifneq section, to fix GSM audio problems +$ make clean; make; make installation +$ make samples +$ modprobe zaptel +$ modprobe ztdummy + +****FOR 1.4 asterisk do the following: +$ wget http://downloads.vicidial.com/required-apps/asterisk-1.4.21.2-vic.tar.gz +$ wget http://downloads.digium.com/pub/zaptel/zaptel-1.4.12.1.tar.gz +$ wget http://downloads.asterisk.org/pub/telephony/libpri/old/libpri-1.4.10.1.tar.gz +$ tar xzf asterisk-1.4.21.2-vici.tar.gz +$ tar xzf zaptel-1.4.12.1.tar.gz +$ tar xzf libpri-1.4.9.tar.gz +$ cd libpri-1.4.9 +$ make clean; make; make install +$ cd ../zaptel-1.4.12.1 +$ ./configure; make clean; make; make install +$ cd ../asterisk-1.4.21.2 +$ ./configure; make clean; make; make install +$ make samples +$ modprobe zaptel +$ modprobe ztdummy + +$ asterisk -vvvvvvvvvvvvvvvvvvvvvvvvvvvvgc (to see if Asterisk runs) +> show version +> zap show status +> show application meetme +> stop now + +**** for SVN 2.0.5 branch: +$ mkdir /usr/src/astguiclient +$ cd /usr/src/astguiclient +$ svn checkout svn://svn.eflo.net:43690/agc_2-X/branches/agc_2.0.5 +$ cd agc_2.0.5 +$ perl install.pl + +**** for SVN 2.2.0 trunk: +$ mkdir /usr/src/astguiclient +$ cd /usr/src/astguiclient +$ svn checkout svn://svn.eflo.net:43690/agc_2-X/trunk +$ cd trunk +$ perl install.pl + + : manual configuration [y] + : press enter until you get to webroot and set that to the following: /var/www + : press enter through to the Sample configuration files and set that to 'y' + : press enter through to the end of the script +$ cd /var/lib/asterisk/sounds +$ wget http://downloads.vicidial.com/conf/conf.gsm +$ cp conf.gsm park.gsm + +$ mysql -p (enter the mysql root user's password you set earlier) +> CREATE DATABASE `asterisk` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; +> GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234'; +> GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234'; +> use asterisk; +> \. /usr/src/astguiclient/trunk/extras/MySQL_AST_CREATE_tables.sql +> \. /usr/src/astguiclient/trunk/extras/first_server_install.sql +> \. /usr/src/astguiclient/trunk/extras/sip-iax_phones.sql +> quit +$ /usr/share/astguiclient/ADMIN_update_server_ip.pl --old-server_ip=10.10.10.15 +$ /usr/share/astguiclient/ADMIN_area_code_populate.pl +$ cp /usr/src/astguiclient/trunk/extras/performance_test_leads.txt /usr/share/astguiclient/LEADS_IN/ +$ /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=107 --forcephonecode=1 + +$ crontab -e + Add the following lines: +### recording mixing/compressing/ftping scripts +0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +#0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --MP3 +#2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --MP3 +### keepalive script for astguiclient processes +* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl +### kill Hangup script for Asterisk updaters +* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl + +### updater for voicemail +* * * * * /usr/share/astguiclient/AST_vm_update.pl +### updater for conference validator +* * * * * /usr/share/astguiclient/AST_conf_update.pl +### flush queue DB table every hour for entries older than 1 hour +11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q +### fix the vicidial_agent_log once every hour +33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl +### updater for VICIDIAL hopper +* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q +### adjust the GMT offset for the leads in the vicidial_list table +1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug +### reset several temporary-info tables in the database +2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl +### optimize the database tables within the asterisk database +3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl +## adjust time on the server with ntp +30 * * * * /usr/local/bin/ntpdate -u pool.ntp.org 2>/dev/null 1>&2 +### VICIDIAL agent time log weekly summary report generation +2 0 * * 0 /usr/share/astguiclient/AST_agent_week.pl +### remove old recordings more than 7 days old +# 24 0 * * * /usr/bin/find /var/spool/asterisk/monitor -maxdepth 2 -type f -mtime +7 -print | xargs rm -f +### remove old vicidial logs and asterisk logs more than 2 days old +28 0 * * * /usr/bin/find /var/log/astguiclient -maxdepth 1 -type f -mtime +2 -print | xargs rm -f +29 0 * * * /usr/bin/find /var/log/asterisk -maxdepth 3 -type f -mtime +2 -print | xargs rm -f + + +$ cd /etc/init.d/ +$ wget http://download.vicidial.com/ubuntu/vicidial +$ chmod +x vicidial +$ update-rc.d -f vicidial defaults + +$ vim /etc/apache2/sites-available/default (add the following lines) + Alias /RECORDINGS/ "/var/spool/asterisk/monitorDONE/" + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + Forcetype application/forcedownload + + +$ chmod 0777 /var/spool/asterisk/monitorDONE/ +$ /etc/init.d/apache2 restart + +$ vi /etc/fstab (add the following line to the end of the file) +tmpfs /var/spool/asterisk/monitor tmpfs rw 0 0 + + + +$ shutdown -r 0 +$ screen -ls (should show at least 6 screens, one of which should be asterisk) + + +In a web browser, go to (http://YOUR_SERVER_IP_ADDRESS/vicidial/admin.php) to see if everything is working. You should also reboot at this point to make sure everything will start back up properly. +From here on you should follow the tutorials in the VICIDIAL Manager Manual(available at eflo.net) diff --git a/agc_2-X/branches/agc_2.2.0/docs/VICIDIAL.txt b/agc_2-X/branches/agc_2.2.0/docs/VICIDIAL.txt new file mode 100644 index 00000000..b261ca04 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/VICIDIAL.txt @@ -0,0 +1,207 @@ +# VICIDIAL.txt - description of the vicidial call center system +# pronounced (VEE-CHEE DIAL) + +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 +that would potentially lose calls and alienate clients. Since then we have added +the ability to do predictive dialing alongside ratio dialing and the traditional +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 call handling at the same time. + +Major Features: +- Inbound, Outbound and Blended call handling +- Outbound agent-controlled, broadcast and predictive dialing +- Full USA FTC-compliance capability +- Web-based agent and administrative interfaces +- Ability to have agents operate remotely +- Integrated call recording +- Three-Way calling within the agent application +- Scheduled Callbacks: Agent-Only and Anyone +- Scalable to hundreds of seats +- Ability to use standard Telco lines and VOIP trunks +- Open-Source GPL licensed, with no software licensing cost + +Complete Features List: +- Ability for an agent to call clients in succession from a database through a web-client +- Ability to display a script for the agent to read with fields like name, address, etc. filled-in +- Ability to set a campaign to auto-dial and send live calls to available agents +- Ability to dial predictively in a campaign with an adaptive dialing algorithm +- Ability to dial on a single campaign across multiple Asterisk servers, or multiple campaigns on a single server +- Ability to transfer calls with customer data to a closer on the local system or a remote Asterisk server +- Ability to open a custom web page with user data from the call, per campaign +- Ability to autodial campaigns to start with a simple IVR then direct to agent +- Ability to broadcast dial to customers with a pre-recorded message +- 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 set outbound CallerID per campaign +- Ability to take inbound calls grabbing CallerID +- Ability to function as an ACD for inbound and fronter/closer verification calls +- Ability to have an agent take both inbound and outbound calls in one session(blended) +- Ability to start and stop recording an agent's calls at any time +- Ability to automatically record all calls +- Ability to manually or automatically 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 in Manual dial mode to preview leads before dialing +- Ability for agents to be logged in remotely anywhere with just a phone and a web browser +- Faster hangup and dispositioning of calls with one key press (HotKeys) +- Definable Agent Wrapup-time per campaign +- Ability to add custom call dispositions per campaign +- Ability to use custom database queries in campaign dialing +- Recycling of Busy calls at a specified interval without resetting a list +- Dialing with custom TimeZone restrictions including per state and per day-of-the-week +- Dialing with Answering Machine Detection, also playing a message for AM calls +- Multiple campaigns and lead-lists are possible +- Option of a drop timer with safe-harbor message for FTC compliance +- Variable drop call percentage when dialing predictively for FTC compliance +- Internal DNC list can optionally be activated per campaign +- All calls are logged and statuses of calls are logged as well as agent time breakdowns +- Load Balancing across multiple inbound or outbound Asterisk servers is possible +- Several real-time and summary reports available +- Real-time campaign display screens +- 3rd party conferencing(with DTMF macros and number presets) +- 3rd party blind call transfer +- 3rd party conferencing with agent drop-off +- Ability to set user levels and permissions for certain features and campaigns +- Ability for managers to listen-in on agent conversations +- Ability for managers to enter conversations with agents and customers +- Ability for agents to select a Pause Code when they are not active +- Ability for agents to control volume levels and mute themselves +- Outbound dialing is QueueMetrics-compatible +- Web-based administration +- Client web-app web pages available in English, Spanish, Greek, German, French, Italian, Polish, Portuguese and Brazillian Portuguese +- Admin web pages available in English, Spanish, Greek and German + +Required components: +- Asterisk server with Zap, IAX2 or SIP trunks +- SIP/IAX/Zap phones(hard or soft single-line or multiple) +- Computer with proper software installed + - on Win32 Activestate perl + - on UNIX Xwindows Activestate perl recommended with perlTK libs loaded +- Asterisk server with proper software installed +- astGUIclient must be installed with the Asterisk Central Queue System(ACQS) +running + +Approach: +This system is dependant on a MySQL server acting as the storage place of +all data and settings for the system. This was done so that it would be very +scalable and flexible. This application draws on a lot of the core scripting +inside of the astGUIclient suite of applications and was built with flexibility +in mind. We have used VICIDIAL for over three years now on up to 160 seats at +once across 8 separate Asterisk servers all using the same MySQL server and +dialing on the same campaigns. It is important to keep in mind that because +VICIDIAL uses Asterisk meetme rooms for it's dialing that the Asterisk server +will see an increased load as compared to a simple Zap/SIP-only calls. + +Installation: +Look at the INSTALL FROM SCRATCH documentation and start at phase 6 if you +already have asterisk running + +Process flow of a one-call-at-a-time call: + - all components are installed and running(with Asterisk and MySQL servers) + - user logs in to the client GUI [user/password/campaign] + - GUI assigns an open meetme extension to the user, this is called the +session_id + - GUI sends manager command ORIGINATE to connect the user to the meetme ext + - user clicks DIAL NEXT NUMBER and GUI UPDATEs first available number-to-call +in DB to PENDING status + - GUI SELECTs info on that number[name/address/...] + - GUI sends ORIGINATE command to call that client's number from meetme ext + - user is talking to the client + - user transfers call to 3rd party, client Zap channel is REDIRECTed to +3rd party + or + - User transfers client to a closer to finish the call + or + - user puts client on park and dials 3rd party, then transfers client +back to meetme room + - Call is Hung up + - user hangs up call and clicks HANGUP CALL on GUI + or + - person called hangs up so user clicks on the CALL HUNGUP then HANGUP +CALL + - call is disconnected + - user selects disposition status of the call and clicks OK + - goes back to step 4 and repeats + +Process flow of an auto-dial call: + - The lead hopper app(AST_VDhopper.pl) that is running every minute keeps the +hopper for each campaign up to at least the minimum hopper lead size providing +there are enough leads to fill it. + - The predictive dialing control app(AST_VDadapt.pl) that is running constantly +analyzes the current status of calls and agents and calculates the dial level +that the campaign will need to be set at for the campaign's specific settings. + - The call center manager can either set the dial method (on the campaign +screen of the admin web page) to Manual for no autodialing, Ratio for fixed +lines-to-agent dialing or any of the Adapt predictive dialing models to use +Predictive dialing. + - As soon as an agent logs into a campaign, the client app will look at the +auto_dial_level setting of the campaign and determine whether + - it will insert a record into the vicidial_live_agents table(and set +status to READY) and update that record every second with a random 8 +digit number to show that the client is still alive and ready. Also, +the client app will show a "pause" and "resume" button to start or stop +receiving calls automatically instead of the usual "dial next number" +button. + or + - it will allow normal manual dialing operation + - The auto_dial app(AST_VDauto_dial.pl) will: + - count how many agents are READY,QUEUE,INCALL with updated +last_update_time in the last 2.5 seconds. + - look at the campaign's auto_dial_level to determine how many calls +should be placed each specific campaign on each server. + - update the vicidial_auto_calls records by searching for active +callerids in the vicidial_manager to see if they have hung up. + - count the number of active calls that are +occuring(vicidial_auto_calls records with a status of SENT,RINGING or +LIVE) + - place the calls for each server if the active calls is less than the +total that should be placed + - The auto_dial app will then: + - grab the next lead to be called from the vicidial_hopper for each +campaign(it will update that lead record in the vicidial_hopper table +to QUEUE with VDAD as the user) + - grab the lead information from vicidial_list and update +called_since_last_reset Y, the user to VDAD and increment the +called_count by 1 + - delete the record from vicidial_hopper for that lead + - place the call first to the Zap trunk(Exten: 917275551212), then to a +specified Local extension number(Channel: Local/99999@default) where +the auto_dial_transfer_agent app(agi-VDADtransfer.agi) is waiting to +take over. + - if the call is busy, disconnect or telco voicemail the call is never +technically picked up so it never makes it to the +auto_dial_transfer_agent app + - check for dead calls by looking in the call_log for and end time of +the call keyed by callerID(caller_code) and delete them t=from the +vicidial_auto_calls table + - The auto_dial_transfer_agent app takes the call and: + - immediately grabs the uniqueid and callerid of the call and updates +the vicidial_auto_calls record to LIVE + - logs the call to vicidial_log using the callerid to find out the lead +number(VmmddhhmmssLLLLLLLLL[where LLLLLLLLL is the zero-padded lead_id +from vicidial_list]) + - inserts the number_dialed and the caller_code in the vicidial_log +table for the uniqueid record of the call + - attempts to update(limit 1) a record in the vicidial_live_agents +table to see who is the next agent to receive a call(ordered by +last_call_time)[update the status to QUEUE, the lead_id to the proper +lead_id and the uniqueid and callerID to proper values for the call] + - if there are agents available[affected rows = 1](goto substep VII.) + - if there are no agents available: + - wait in 1 second increments and then checking substep IV. + - if no agent is available for the drop interval(usually 5 +seconds on outbound campaigns), the call is hung up and logged as DROP in +vicidial_log under user VDAD + - grabs the agent info from the vicidial_live_agents[conf_exten] and +does a redirect to the agent's meetme room. + - agent's app checks the vicidial_live_agents record every second for +itself to see if it is changed to QUEUE + - agent's app changes the vicidial_live_agents status to INCALL and +updates the vicidial_list record to INCALL and user to the agent's +userID and the call progresses normally + - The agent hangs up and the vicidial_live_agents record is changed back to +READY with the lead and call fields cleared out so the agent is ready to take +another call + + + diff --git a/agc_2-X/branches/agc_2.2.0/docs/VICIDIAL_statuses.txt b/agc_2-X/branches/agc_2.2.0/docs/VICIDIAL_statuses.txt new file mode 100644 index 00000000..da48c1ec --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/VICIDIAL_statuses.txt @@ -0,0 +1,51 @@ +NEW - New Lead - Lead has not been called, or cannot be called +QUEUE - Lead To Be Called - Lead is about to be sent to an agent +INCALL - Lead Being Called - Agent is talking to the lead +DROP - Agent Not Available - Call was dropped while customer was waiting for an agent +XDROP - Agent Not Available IN - Call was dropped while customer was waiting for an agent on an inbound call +NA - No Answer AutoDial - Any outbound call that does not receive an Answer signal(or other signal) from the carrier. This can include ring-no-answer, disconnected, carrier congestion and other errors +CALLBK - Call Back - Callback, both scheduled and non-scheduled +CBHOLD - Call Back Hold - Scheduled ANYONE callback that has not hit it's trigger, or an AGENTONLY callback +A - Answering Machine - Agent-defined Answering Machine +AA - Answering Machine Auto - Dialer-defined Answering Machine +AM - Answering Machine Sent to Mesg - AMD(Answering Machine Detection) call sent to a message to be played +AL - Answering Machine Msg Played - AMD(Answering Machine Detection) call sent to a message and message has been played +AFAX - Fax Machine Auto - Dialer-defined Fax Machine +B - Busy - Agent-defined Busy signal +AB - Busy Auto - Carrier-received Busy signal +DC - Disconnected Number - Agent-Defined Disconnected number +ADC - Disconnected Number Auto - Carrier-received Disconnected number +DEC - Declined Sale - Agent-defined status +DNC - DO NOT CALL - If defined, lead will also go int he VICIDIAL DNC list +DNCL - DO NOT CALL Hopper Match - status of a lead that matches the phone number of a lead that has been placed in the VICIDIAL DNC list +DNCC - DO NOT CALL Hopper Match Campaign- status of a lead that matches the phone number of a lead that has been placed in the VICIDIAL Campaign-specific DNC list for this Campaign +SALE - Sale Made - Agent-defined status +N - No Answer - Agent-defined status +NI - Not Interested - Agent-defined status +NP - No Pitch No Price - Agent-defined status +PU - Call Picked Up - Status that a call is changed to as soon as the carrier has sent the Answer signal and before the call is sent on to an agent +PM - Played Message - outbound broadcast or SURVEY campaign status for when a message has been played to the customer +XFER - Call Transferred - Call has been sent from an agent to a Closer agent +ERI - Agent Error - An agent has closed their browser before dispositioning a lead +DONEM - Agent placed a manual dial phone call and then closed their browser before dispositioning a lead +SVYEXT - Survey sent to Extension - Survey outbound campaign status only +SVYVM - Survey sent to Voicemail - Survey outbound campaign status only +SVYHU - Survey Hungup - Survey outbound campaign status only +SVYREC - Survey sent to Record - Survey outbound campaign status only +HXFER - Hold Recall Transfer to another in-group +HOLDTO - Hold time option call termination on inbound call +QVMAIL - Queue Abandon Voicemail Left +RQXFER - Re-Queue Transfer back to agent +CPDATB - Sangoma Call Progress Detection CPD All-Trunks-Busy +CPDB - Sangoma Call Progress Detection CPD Busy +CPDNA - Sangoma Call Progress Detection CPD No-Answer +CPDREJ - Sangoma Call Progress Detection CPD Reject +CPDINV - Sangoma Call Progress Detection CPD Invalid-Number +CPDSUA - Sangoma Call Progress Detection CPD Service-Unavailable +CPDSI - Sangoma Call Progress Detection CPD Sit-Intercept +CPDSNC - Sangoma Call Progress Detection CPD Sit-No-Circuit +CPDSR - Sangoma Call Progress Detection CPD Sit-Reorder +CPDSUK - Sangoma Call Progress Detection CPD Sit-Unknown +CPDSV - Sangoma Call Progress Detection CPD Sit-Vacant +CPDUK - Sangoma Call Progress Detection CPD Unknown +CPDERR - Sangoma Call Progress Detection CPD Error diff --git a/agc_2-X/branches/agc_2.2.0/docs/VTIGER.txt b/agc_2-X/branches/agc_2.2.0/docs/VTIGER.txt new file mode 100644 index 00000000..362f44ce --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/VTIGER.txt @@ -0,0 +1,347 @@ +VICIDIAL and Vtiger + +Current VICIDIAL integration with Vtiger is for the 5.1.0 release version of Vtiger only (we also have support for older Vtiger 5.0.4) + +Current integration features: +- vicidial.php WEBFORM search for lead/account/vendor +- User synchronization of VICIDIAL users to Vtiger user database +- User Group synchronization of VICIDIAL user groups to Vtiger Groups +- Added activity event option(call logging in Vtiger) when going from VICIDIAL to Vtiger + (Or this can be done in the background without having to use the web form) +- Added ViciDial status synchronization after each call to set the siccode field in Vtiger to the last selected VICIDIAL status +- Ability to un-delete or resurrect deleted Accounts within Vtiger from the web form(this is a VICIDIAL campaign option) +- Ability to click-to-dial a phone number from a record in Vtiger screen to the vicidial.php screen +- Ability to click-to-dial from a Planned Activity record then have it changed to Held after VICIDIAL dispo +- Ability for an agent to click on a VC fax log or VC email log link to account for fax or email time through VICIDIAL +- Optional script to bulk load leads into Vtiger from a CSV file since Vtiger only seems to want to load 500 at a time: + Vtiger_IN_new_accounts_file.pl +- Batch Account synchronization through script to output new leads from Vtiger and update existing leads in the VICIDIAL system: + Vtiger_OUT_sync2VICIDIAL_file.pl then you run the VICIDIAL_IN_new_leads_file.pl script to load the new leads + + +There has been a basic vtiger integration option available in VICIDIAL since the 1.X release versions through the vtiger_search.php web script(when used as a web form in the campaign) that will search through the leads for the dialed phone number in vicidial.php and if it is not in the vtiger system as a lead then it will be put in as a new lead. + +More in-depth integration with Vtiger is a bit complicated due to the fact that it has 312 database tables to start with(and you though VICIDIAL had a lot with about 70). Attempts at using the built-in 5.0.4 API structure were unsuccessful because of inaccurate documentation and the inability to use the modules easily outside of the vtiger directory tree without major reworking of the vtiger code, so we decided to have VICIDIAL work directly with the database instead. Unfortunately, working only with the database doesn't get you the whole way with Vtiger. For user synchronization you need to make sure that the patch(Vtiger504_vicidial.patch) is applied to Vtiger(see instructions below). Part of this patch is used to create blank user profile files so Vtiger will load properly with synchronized users from VICIDIAL. Vtiger doesn't check to see if these user profile files exist before trying to use them, so one thing this patch does is check if the files exist for each user, and if they do not, it will create them with a simple placeholder. Another purpose of this patch is to allow for click-to-dial phone numbers in Vtiger, so that the numbers will be dialed as manual dial calls in a VICIDIAL agent screen. For this to work you must have applied the patch, you need to have user 1000 set up in VICIDIAL with a password of 1234 and Agent API set to '1', and the agent needs to be logged into vicidial.php(there is also a VICIDIAL Campaign Detail option to automatically login to Vtiger when an agent logs into vicidial.php, this can log the agent into Vtiger within the SCRIPT tab or by opening a new browser window) then when the agent clicks on any phone number with a "VCcall:" label next to it, a call will be placed in their vicidial.php agent screen and the Vtiger window will be closed(or left open if using alternate patch) so that they can open it up again with the vicidial.php WEB FORM button in VICIDIAL. + +Since the 2.0.5 release we have added the ability to initiate a callback from a Planned Event screen that also will alter the event to Held status after the call is dispositioned. + +as of 2008-12-31, several user synchronization features have been added to allow for the creation of vtiger users from the vicidial_users user database. The vtiger_search.php script has also been updated to work with the current vtiger release 5.0.4. To enable the Vtiger integration features you will need to go to the Admin -> System Settings section of the admin.php Administration web page to set Vtiger Integration to enabled and configure the connection details for the Vtiger database. + +There are options in the VICIDIAL Modify Campaign Detail screen that you can choose how you want the vtiger_search.php to search for a Vtiger record in the Vtiger system. If Vtiger integration is enabled in the system_settings then this setting will define where the vtiger_search.php page will search for the phone number that was entered. There are 4 options that can be used in this field: + ACCTID- This option works only for accounts and it will take the vicidial vendor_lead_code field and try to search for the Vtiger accountid. If unsuccessful it will try any other methods listed that you have selected. + ACCOUNT- This option will search through the Vtiger accounts and all contacts and sub-contacts for the phone number + VENDOR- This option will only search through the Vtiger vendors + LEAD- This option will search through the Vtiger leads only + + NOTE: For this to work, you must have the vtiger_search.php set as your webform page, i.e.(http://10.10.10.15/vicidial/vtiger_search.php) +Multiple search options can be used for each campaign(in the VICIDIAL Campaign Detail screen), but on large databases this is not recommended. Default is LEAD. The order that you see the searching options above is the order in which they will be searched if you have selected multiple searching methods. If an account does not exist and you have LEAD selected as a search method, then(if the create lead option is enabled) it will insert the lead with that phone number and you will be taken to the edit screen for that lead when you go to the vtiger_search web page. There is also an option to log the call as an event in Vtiger that will associate with the Lead or Account that the agent screen is sent to. Vtiger recommends on standard equipment a limit of 50,000 account records, but many users report no issues with 100,000 or more account records in their Vtiger systems. + + +Here are the procedures to load leads into Vtiger, then output them from Vtiger and then load them into VICIDIAL: +(the vicidial_list.vendor_lead_code field[=vtiger_accounts.accountid] is used as a key between systems) +- put properly formatted CSV file into /usr/share/astguiclient/VTIGER_IN/ +- /usr/share/astguiclient/Vtiger_IN_new_accounts_file.pl --duplicate-system-website +- /usr/share/astguiclient/Vtiger_OUT_sync2VICIDIAL_file.pl --duplicate-system-vendor +- /usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl --forcelistid=9988 + +Then to keep the two systems in sync you would run the last two steps every day or at some other interval. + + +For VICIDIAL users that are synchronized to Vtiger, the following user_level to roles repationships are used: +- user_level 9 - H2, CEO +- user_level 8 - H3, Vice President +- user_level 7 - H4, Sales Manager +- user_level 6 and lower - H5, Sales Man + + +Here are the SQL queries used by the vtiger_search.php script to find records in the vtiger system: + +ACCTID: +$stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + +ACCOUNT: +$stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; +$stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; +$stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + +VENDOR: +$stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; + +LEAD: +$stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + + + + + +Here is a short summary of the needed steps to install vtiger on your system: + +NOTE: vtiger requires PHP5, APACHE2.2 and MySQL5, + see the REQUIRED_APPS.txt doc for install instructions for those packages + + +mysql +GRANT ALL on vtigercrm510.* TO vtiger@'%' IDENTIFIED BY 'vtuser'; +GRANT ALL on vtigercrm510.* TO vtiger@localhost IDENTIFIED BY 'vtuser'; +create database vtigercrm510; +quit + +cd /usr/local/apache2/htdocs/ +wget http://sourceforge.net/projects/vtigercrm/files/vtiger%20CRM%205.1.0/vtigercrm-5.1.0.tar.gz +tar xvfz vtigercrm-5.1.0.tar.gz +chmod -R 0777 vtigercrm +cd vtigercrm +ls -l +* in browser go to the following URL: http://ip-address/vtigetcrm/index.php +* enter contact info and click the START button at the bottom of the screen +* in system configuration set the database host to: +* database user/pass: vtiger/vtuser +* database name: vtigercrm510 +* change default admin(vtadmin) and standarduser(vtuser) passwords +* click to install vtiger, then follow the on-screen instructions +# patch vtiger to fix issue with user synchronization and add click-to-dial: +cp /usr/src/astguiclient/trunk/extras/Vtiger510_vicidial_001_noclose.patch ./ +patch -p1 < ./Vtiger510_vicidial_001_noclose.patch + + + + +Now to explain the database side of things. +First, here is how users are stored in vtiger: + +THE USER TABLES: +vtiger_users +vtiger_user2role +vtiger_users2group +vtiger_users_last_import +vtiger_users_seq +vtiger_usertype + + +TABLE DETAIL: + +The vtiger_users table has the basic user information for users fo the vtiger system. An agent must have an entry in this table to be able to access the vtigers system. user_name is the field that is synchronized with the vicidial_users.user field in VICIDIAL. +mysql> describe vtiger_users; ++--------------------+--------------+------+-----+-----------------------------------------------------------------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++--------------------+--------------+------+-----+-----------------------------------------------------------------+----------------+ +| id | int(11) | NO | PRI | NULL | auto_increment | +| user_name | varchar(255) | YES | MUL | NULL | | +| user_password | varchar(30) | YES | MUL | NULL | | +| user_hash | varchar(32) | YES | | NULL | | +| cal_color | varchar(25) | YES | | #E6FAD8 | | +| first_name | varchar(30) | YES | | NULL | | +| last_name | varchar(30) | YES | | NULL | | +| reports_to_id | varchar(36) | YES | | NULL | | +| is_admin | varchar(3) | YES | | 0 | | +| currency_id | int(19) | NO | | 1 | | +| description | text | YES | | NULL | | +| date_entered | timestamp | NO | | CURRENT_TIMESTAMP | | +| date_modified | timestamp | NO | | 0000-00-00 00:00:00 | | +| modified_user_id | varchar(36) | YES | | NULL | | +| title | varchar(50) | YES | | NULL | | +| department | varchar(50) | YES | | NULL | | +| phone_home | varchar(50) | YES | | NULL | | +| phone_mobile | varchar(50) | YES | | NULL | | +| phone_work | varchar(50) | YES | | NULL | | +| phone_other | varchar(50) | YES | | NULL | | +| phone_fax | varchar(50) | YES | | NULL | | +| email1 | varchar(100) | YES | | NULL | | +| email2 | varchar(100) | YES | | NULL | | +| yahoo_id | varchar(100) | YES | | NULL | | +| status | varchar(25) | YES | | NULL | | +| signature | varchar(250) | YES | | NULL | | +| address_street | varchar(150) | YES | | NULL | | +| address_city | varchar(100) | YES | | NULL | | +| address_state | varchar(100) | YES | | NULL | | +| address_country | varchar(25) | YES | | NULL | | +| address_postalcode | varchar(9) | YES | | NULL | | +| user_preferences | text | YES | | NULL | | +| tz | varchar(30) | YES | | NULL | | +| holidays | varchar(60) | YES | | NULL | | +| namedays | varchar(60) | YES | | NULL | | +| workdays | varchar(30) | YES | | NULL | | +| weekstart | int(11) | YES | | NULL | | +| date_format | varchar(200) | YES | | NULL | | +| hour_format | varchar(30) | YES | | am/pm | | +| start_hour | varchar(30) | YES | | 10:00 | | +| end_hour | varchar(30) | YES | | 23:00 | | +| homeorder | varchar(255) | YES | | HDB,ALVT,PLVT,QLTQ,CVLVT,HLT,OLV,GRT,OLTSO,ILTI,MNL,OLTPO,LTFAQ | | +| activity_view | varchar(200) | YES | | Today | | +| lead_view | varchar(200) | YES | | Today | | +| imagename | varchar(250) | YES | | NULL | | +| deleted | int(1) | NO | | 0 | | +| defhomeview | varchar(100) | YES | | NULL | | +| confirm_password | varchar(30) | YES | | NULL | | +| tagcloud_view | int(1) | YES | | 1 | | +| internal_mailer | varchar(3) | NO | | 1 | | +| crypt_type | varchar(20) | NO | | MD5 | | ++--------------------+--------------+------+-----+-----------------------------------------------------------------+----------------+ +mysql> select * from vtiger_users; ++----+--------------+------------------------------+----------------------------------+-----------+------------+---------------+---------------+----------+-------------+-------------+---------------------+---------------------+------------------+-------+------------+------------+--------------+------------+-------------+-----------+--------------------+--------+----------+--------+-----------+----------------+--------------+---------------+-----------------+--------------------+------------------+------+----------+----------+----------+-----------+-------------+-------------+------------+----------+-----------------------------------------------------------------+---------------+-----------+-----------+---------+-------------+------------------------------+---------------+-----------------+------------+ +| id | user_name | user_password | user_hash | cal_color | first_name | last_name | reports_to_id | is_admin | currency_id | description | date_entered | date_modified | modified_user_id | title | department | phone_home | phone_mobile | phone_work | phone_other | phone_fax | email1 | email2 | yahoo_id | status | signature | address_street | address_city | address_state | address_country | address_postalcode | user_preferences | tz | holidays | namedays | workdays | weekstart | date_format | hour_format | start_hour | end_hour | homeorder | activity_view | lead_view | imagename | deleted | defhomeview | confirm_password | tagcloud_view | internal_mailer | crypt_type | ++----+--------------+------------------------------+----------------------------------+-----------+------------+---------------+---------------+----------+-------------+-------------+---------------------+---------------------+------------------+-------+------------+------------+--------------+------------+-------------+-----------+--------------------+--------+----------+--------+-----------+----------------+--------------+---------------+-----------------+--------------------+------------------+------+----------+----------+----------+-----------+-------------+-------------+------------+----------+-----------------------------------------------------------------+---------------+-----------+-----------+---------+-------------+------------------------------+---------------+-----------------+------------+ +| 1 | admin | $1$ad$hsl2KFybNRnbXBa.b.WWv. | 21232f297a57a5a743894a0e4a801fc3 | #E6FAD8 | | Administrator | | on | 1 | | 2008-12-27 22:51:30 | 0000-00-00 00:00:00 | NULL | | | | | | | | mattf@vicidial.com | | | Active | | | | | | | NULL | NULL | NULL | NULL | NULL | NULL | yyyy-mm-dd | am/pm | 08:00 | 23:00 | HDB,ALVT,PLVT,QLTQ,CVLVT,HLT,OLV,GRT,OLTSO,ILTI,MNL,OLTPO,LTFAQ | This Week | Today | | 0 | NULL | $1$ad$peilFE10wX.4b0aIm7/.t/ | 1 | 1 | MD5 | +| 2 | standarduser | $1$st$k35HABw/iAKXXthyFMLPF/ | NULL | #E6FAD8 | | StandardUser | | off | 1 | | 2008-12-27 22:47:55 | 0000-00-00 00:00:00 | NULL | | | | | | | | mattf@vicidial.com | | | Active | | | | | | | NULL | NULL | NULL | NULL | NULL | NULL | yyyy-mm-dd | 24 | 08:00 | 23:00 | HDB,ALVT,PLVT,QLTQ,CVLVT,HLT,OLV,GRT,OLTSO,ILTI,MNL,OLTPO,LTFAQ | This Week | Today | | 0 | NULL | $1$st$1iX6Nfn6NbdWdlCljgg3u1 | 1 | 1 | MD5 | +| 4 | 6666 | $1$66$WpuoymV3Cudgm3vI8xWY.0 | 81dc9bdb52d04dc20036dbd8313ed055 | #E6FAD8 | NULL | Admin | NULL | on | 1 | NULL | 2008-12-31 13:32:23 | 0000-00-00 00:00:00 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Active | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | am/pm | 10:00 | 23:00 | HDB,ALVT,PLVT,QLTQ,CVLVT,HLT,OLV,GRT,OLTSO,ILTI,MNL,OLTPO,LTFAQ | Today | Today | NULL | 0 | NULL | NULL | 1 | 1 | MD5 | ++----+--------------+------------------------------+----------------------------------+-----------+------------+---------------+---------------+----------+-------------+-------------+---------------------+---------------------+------------------+-------+------------+------------+--------------+------------+-------------+-----------+--------------------+--------+----------+--------+-----------+----------------+--------------+---------------+-----------------+--------------------+------------------+------+----------+----------+----------+-----------+-------------+-------------+------------+----------+-----------------------------------------------------------------+---------------+-----------+-----------+---------+-------------+------------------------------+---------------+-----------------+------------+ + +This table stores the role of the vtiger users. VICIDIAL users will by default be set to H5(Sales Man), user_level 8 vicidial_users will be set to H4(Sales Manager) and user_level 9 vicidial_users will be set to H2(CEO). +mysql> describe vtiger_user2role; ++--------+--------------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++--------+--------------+------+-----+---------+-------+ +| userid | int(11) | NO | PRI | | | +| roleid | varchar(255) | NO | MUL | | | ++--------+--------------+------+-----+---------+-------+ +mysql> select * from vtiger_user2role; ++--------+--------+ +| userid | roleid | ++--------+--------+ +| 1 | H2 | +| 2 | H3 | ++--------+--------+ + +All VICIDIAL users will be entered into the Team Selling(groupid 1) +mysql> describe vtiger_users2group; ++---------+---------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++---------+---------+------+-----+---------+-------+ +| groupid | int(19) | NO | PRI | | | +| userid | int(19) | NO | PRI | | | ++---------+---------+------+-----+---------+-------+ +mysql> select * from vtiger_users2group; ++---------+--------+ +| groupid | userid | ++---------+--------+ +| 2 | 1 | +| 1 | 2 | +| 2 | 2 | +| 3 | 2 | ++---------+--------+ + +mysql> describe vtiger_users_last_import; ++------------------+-------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++------------------+-------------+------+-----+---------+----------------+ +| id | int(36) | NO | PRI | NULL | auto_increment | +| assigned_user_id | varchar(36) | YES | MUL | NULL | | +| bean_type | varchar(36) | YES | | NULL | | +| bean_id | varchar(36) | YES | | NULL | | +| deleted | int(1) | NO | | 0 | | ++------------------+-------------+------+-----+---------+----------------+ + +This table keeps the sequence number of the auto-incremented vtiger_users.id field +mysql> describe vtiger_users_seq; ++-------+---------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++-------+---------+------+-----+---------+-------+ +| id | int(11) | NO | | | | ++-------+---------+------+-----+---------+-------+ +mysql> select * from vtiger_users_seq; ++----+ +| id | ++----+ +| 2 | ++----+ + + +mysql> describe vtiger_usertype; ++-------------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++-------------+--------------+------+-----+---------+----------------+ +| usertypeid | int(19) | NO | PRI | NULL | auto_increment | +| usertype | varchar(200) | NO | UNI | | | +| sortorderid | int(19) | NO | | 0 | | +| presence | int(1) | NO | | 1 | | ++-------------+--------------+------+-----+---------+----------------+ + + +## Logging calls in Vtiger: +vtiger_crmentity_seq - increment once to account for call log and use for activity ID +vtiger_activity - Where calls are logged +vtiger_cntactivityrel - links a contact to an activity(call) +vtiger_salesmanactivityrel - links a user to an activity(call) +vtiger_seactivityrel - links crmid(account) to an activity(call) +vtiger_seactivityrel_seq - does not appear to be used + +mysql> describe vtiger_activity; ++------------------+--------------+------+-----+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++------------------+--------------+------+-----+---------+-------+ +| activityid | int(19) | NO | PRI | 0 | | +| subject | varchar(100) | NO | | | | +| semodule | varchar(20) | YES | | NULL | | +| activitytype | varchar(200) | NO | MUL | | | +| date_start | date | NO | MUL | | | +| due_date | date | YES | | NULL | | +| time_start | varchar(50) | YES | | NULL | | +| time_end | varchar(50) | YES | | NULL | | +| sendnotification | varchar(3) | NO | | 0 | | +| duration_hours | varchar(2) | YES | | NULL | | +| duration_minutes | varchar(200) | YES | | NULL | | +| status | varchar(200) | YES | MUL | NULL | | +| eventstatus | varchar(200) | YES | MUL | NULL | | +| priority | varchar(200) | YES | | NULL | | +| location | varchar(150) | YES | | NULL | | +| notime | varchar(3) | NO | | 0 | | +| visibility | varchar(50) | NO | | all | | +| recurringtype | varchar(200) | YES | | NULL | | ++------------------+--------------+------+-----+---------+-------+ + + activityid: 12 + subject: VICIDIAL call + semodule: NULL + activitytype: Call + date_start: 2009-01-11 + due_date: 2009-01-11 + time_start: 07:00 + time_end: 07:05 +sendnotification: 0 + duration_hours: 0 +duration_minutes: 5 + status: + eventstatus: Held + priority: Medium + location: Dialer + notime: 0 + visibility: Public + recurringtype: --None-- + + + +Files edited within Vtiger to allow for click-to-dial and user integration: +./include/utils/ListViewUtils.php +./Smarty/templates/DetailViewFields.tpl +./Smarty/templates/DetailViewUI.tpl +./include/js/general.js +./include/js/dtlviewajax.js +./vtigerservice.php +./include/utils/UserInfoUtil.php + +Click-to-dial: +uitype = '11' for phone fields +uitype = '1' for fax +uitype = '13' for email + + + +Use of custom fields for dates within Vtiger, these date fields will be updated by VICIDIAL if the status(siccode) update option is set to Y: + +mysql> select * from vtiger_field where fieldlabel LIKE "%Date%" and fieldname LIKE "cf%"; ++-------+---------+------------+-------------------+---------------+--------+-----------+--------------------------+----------+----------+----------+---------------+----------+-------+-------------+------------+-------------+---------------------+-----------+ +| tabid | fieldid | columnname | tablename | generatedtype | uitype | fieldname | fieldlabel | readonly | presence | selected | maximumlength | sequence | block | displaytype | typeofdata | quickcreate | quickcreatesequence | info_type | ++-------+---------+------------+-------------------+---------------+--------+-----------+--------------------------+----------+----------+----------+---------------+----------+-------+-------------+------------+-------------+---------------------+-----------+ +| 6 | 475 | cf_474 | vtiger_accountscf | 2 | 5 | cf_474 | Date of Last Attempt | 0 | 0 | 0 | 100 | 15 | 10 | 1 | D~O | 1 | 0 | BAS | +| 6 | 533 | cf_532 | vtiger_accountscf | 2 | 5 | cf_532 | Date of Last Non-Contact | 0 | 0 | 0 | 100 | 50 | 10 | 1 | D~O | 1 | 0 | BAS | +| 6 | 535 | cf_534 | vtiger_accountscf | 2 | 5 | cf_534 | Date of Last Contact | 0 | 0 | 0 | 100 | 51 | 10 | 1 | D~O | 1 | 0 | BAS | +| 6 | 537 | cf_536 | vtiger_accountscf | 2 | 5 | cf_536 | Date of Last Sale | 0 | 0 | 0 | 100 | 52 | 10 | 1 | D~O | 1 | 0 | BAS | ++-------+---------+------------+-------------------+---------------+--------+-----------+--------------------------+----------+----------+----------+---------------+----------+-------+-------------+------------+-------------+---------------------+-----------+ + +mysql> select * from vtiger_accountscf where accountid='6762'; ++-----------+------------+----------+------------+--------+------------+------------+------------+---------+----------+-----------------------------------+--------+---------------------+--------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ +| accountid | cf_456 | cf_464 | cf_474 | cf_530 | cf_532 | cf_534 | cf_536 | cf_538 | cf_540 | cf_542 | cf_544 | cf_546 | cf_548 | cf_550 | cf_552 | cf_554 | cf_556 | cf_558 | cf_560 | cf_562 | cf_564 | cf_566 | cf_568 | ++-----------+------------+----------+------------+--------+------------+------------+------------+---------+----------+-----------------------------------+--------+---------------------+--------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ +| 6762 | 2009-03-25 | 12:30 pm | 2009-03-09 | Sale | 2009-03-01 | 2009-03-09 | 2009-03-09 | 1500.75 | 30000.00 | Breakroom |##| Jan/San |##| Paper | Hot | Test Decision Maker | 610-701-9661 | | | | | | 1 | 1 | 1 | 1 | 0 | ++-----------+------------+----------+------------+--------+------------+------------+------------+---------+----------+-----------------------------------+--------+---------------------+--------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+ + diff --git a/agc_2-X/branches/agc_2.2.0/docs/Vicidial_Hardware_Requirements.odt b/agc_2-X/branches/agc_2.2.0/docs/Vicidial_Hardware_Requirements.odt new file mode 100644 index 00000000..805f760a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/docs/Vicidial_Hardware_Requirements.odt differ diff --git a/agc_2-X/branches/agc_2.2.0/docs/Vicidial_Hardware_Requirements.pdf b/agc_2-X/branches/agc_2.2.0/docs/Vicidial_Hardware_Requirements.pdf new file mode 100644 index 00000000..543605e8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/docs/Vicidial_Hardware_Requirements.pdf differ diff --git a/agc_2-X/branches/agc_2.2.0/docs/bind_named_install.txt b/agc_2-X/branches/agc_2.2.0/docs/bind_named_install.txt new file mode 100644 index 00000000..979d66e3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/bind_named_install.txt @@ -0,0 +1,108 @@ +wget http://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz +gunzip bind-9.3.2.tar.gz +tar xvf bind-9.3.2.tar +cd bind-9.3.2 +./configure +make +make install +locate -u +vi /etc/named.conf +vi /var/named/vicimarketing.zone +/usr/sbin/named-checkconf +/usr/sbin/named-checkzone +/usr/sbin/named-checkzone vicimarketing.com /var/named/vicimarketing.zone +vi /etc/named.conf +vi /etc/resolv.conf +/usr/sbin/named -d 9 + +To kill named: +killall -15 named + +To run testing in foreground: +/usr/sbin/named -f -d 9 + + + +root@ftp:/# cat /var/named/vicimarketing.zone +; +; Zone file for vicimarketing.com +; +; The full zone file +; +$TTL 1H +@ IN SOA ftp.vicimarketing.com. sip.vicimarketing.com. ( + 200607101 ; serial# + 3600 ; refresh, seconds + 3600 ; retry, seconds + 3600 ; expire, seconds + 3600 ) ; minimum, seconds +; + NS ftp ; Inet Address of nameserver +vicimarketing.com. MX 10 email ; Primary Mail Exchanger +vicimarketing.com. MX 70 email2 ; Primary Mail Exchanger +; +localhost A 127.0.0.1 +@ A 64.31.159.154 +www A 64.31.159.154 +www2 A 205.201.151.24 +email A 205.201.151.23 +email2 A 68.143.231.202 +ftp A 205.201.151.22 +rsc1 A 205.201.151.21 +annex A 205.201.151.26 +telcove A 64.31.159.154 +tc2 A 64.31.159.155 +codygate A 67.79.161.170 +viciDB3 A 205.201.151.26 +exchange A 10.10.10.5 +ICIast20 CNAME www2 +VICIast1 CNAME www2 +app2 CNAME www2 +cody CNAME codygate +sip CNAME ftp +gate3 CNAME www2 +gate2 CNAME www + + + + + +root@ftp:/# cat /etc/named.conf +options { + directory "/var/named"; + forwarders { 209.84.253.11; 209.84.253.12; }; + /* + * If there is a firewall between you and nameservers you want + * to talk to, you might need to uncomment the query-source + * directive below. Previous versions of BIND always asked + * questions using port 53, but BIND 8.1 uses an unprivileged + * port by default. + */ + // query-source address * port 53; +}; + +// +// a caching only nameserver config +// +zone "." IN { + type hint; + file "caching-example/named.ca"; +}; + +zone "localhost" IN { + type master; + file "caching-example/localhost.zone"; + allow-update { none; }; +}; + +zone "0.0.127.in-addr.arpa" IN { + type master; + file "caching-example/named.local"; + allow-update { none; }; +}; +zone "vicimarketing.com" { + type master; + notify no; + allow-query { any; }; + file "vicimarketing.zone"; +}; diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/dnsmgr.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/dnsmgr.conf.sample new file mode 100644 index 00000000..1215e584 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/dnsmgr.conf.sample @@ -0,0 +1,3 @@ +[general] +enable=yes ; enable creation of managed DNS lookups +refreshinterval=300 ; refresh managed DNS lookups every seconds diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/extensions.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/extensions.conf.sample new file mode 100644 index 00000000..2cb46e3d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/extensions.conf.sample @@ -0,0 +1,599 @@ +[general] +static=yes +writeprotect=no + +[globals] +CONSOLE=Console/dsp ; Console interface for demo +TRUNK=Zap/g1 ; Trunk interface +TRUNKX=Zap/g2 ; 2nd trunk interface +TRUNKIAX=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface +TRUNKIAX1=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface +TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface +SIPtrunk=SIP/1234:PASSWORD@sip.provider.net ; SIP trunk + +#include extensions-vicidial.conf + +[trunkinbound] +; DID call routing process +exten => _X.,1,AGI(agi-DID_route.agi) + +; FastAGI for VICIDIAL/astGUIclient call logging +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + + +[loopback-no-log] +; This context is to accept calls that have already been logged in another context in Vicidial +; and has been sent through one of the loopbacks. This is why this context is missing the h extension. +; Do not put any extensions in this context unless you specifically understand what this means. + +;exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To) +;exten => _91NXXNXXXXXX,3,Hangup + +exten => _999XX11112,1,Wait(2) +exten => _999XX11112,2,Answer +exten => _999XX11112,3,Playback(ss-noservice) +exten => _999XX11112,4,Playback(vm-goodbye) +exten => _999XX11112,5,Hangup + + + +[default] +include => vicidial-auto + +; VICI-GROUP DIRECT SUPPORT LINE (VICIHELP[84244357]) +exten => _84244XXX,1,Dial(IAX2/vicihelp/${EXTEN:5}) + +; Local agent alert extensions +exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) +exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) +; Local blind monitoring +exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To) + + +; playback of recorded prompts +exten => _851XXXXX,1,Answer +exten => _851XXXXX,2,Playback(${EXTEN}) +exten => _851XXXXX,3,Hangup + +; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL +exten => _7851XXXXX,1,WaitForSilence(2000,2) ; AMD got machine. leave message after recording +exten => _7851XXXXX,2,Playback(${EXTEN:1}) +exten => _7851XXXXX,3,AGI(VD_amd_post.agi,${EXTEN:1}) +exten => _7851XXXXX,4,Hangup + + +; FastAGI for VICIDIAL/astGUIclient call logging +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + + +; Example phone extensions + +; Extension 2000 Sipura/Linksys ATA line 1 +exten => 2000,1,Dial(sip/spa2000,30,to) ; Ring, 30 secs max +exten => 2000,2,Voicemail,u2000 ; Send to voicemail... +; Extension 2001 Sipura/Linksys ATA line 2 +exten => 2001,1,Dial(sip/spa2001,30,to) ; Ring, 30 secs max +exten => 2001,2,Voicemail,u2001 ; Send to voicemail... +; Extension 2102 rings Grandstream phone +exten => 2102,1,Dial(sip/gs102,30,to) ; Ring, 30 secs max +exten => 2102,2,Voicemail,u2102 ; Send to voicemail... +; Extension 401 rings the firefly softphone +exten => 401,1,Dial((IAX2/firefly01@firefly01/s||t) +exten => 401,2,Hangup + +; 100-350 phone extensions now auto-generated +; extensions for other SIP and IAX call center phones +; cc100-cc150 SIP Phones +;exten => _1[0-5]X,1,Dial(sip/cc${EXTEN},20,to) +; cc300-cc350 IAX Phones +;exten => _3[0-5]X,1,Dial(IAX2/cc${EXTEN},20,to) + +; extensions if using a T1 channelbank +;exten => _19XX,1,Dial(Zap/${EXTEN:2},30,o) +;exten => _19XX,2,Hangup + +; Extension 4001 rings Zap phone (this example for FXS on Zap port 1) +;exten => 4001,1,Dial(Zap/1,30,o) ; ring Zap device 1 +;exten => 4001,2,Voicemail,u4001 ; Send to voicemail... + + +; # timeout invalid rules +exten => #,1,Playback(invalid) ; "Thanks for trying the demo" +exten => #,2,Hangup ; Hang them up. +exten => t,1,Goto(#,1) ; If they take too long, give up +exten => i,1,Playback(invalid) ; "That's not valid, try again" + + +; Extensions for performance testing +exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo) +exten => _91999NXXXXXX,3,Hangup +exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo) +exten => 999999999999,3,Hangup + +; This is a loopback dialaround to allow for hearing of ringing for 3way calls +exten => _881NXXNXXXXXX,1,Answer +exten => _881NXXNXXXXXX,2,Dial(${TRUNKloop}/9${EXTEN:2},,To) +exten => _881NXXNXXXXXX,3,Hangup + +; Vtiger fax and email log extensions +exten => _9118XXXXXXXX,1,Dial(${TRUNKblind}/9998818112,55,to) +exten => _9119XXXXXXXX,1,Dial(${TRUNKblind}/9998819112,55,to) + + +; CARRIER DIALING EXTENSIONS, USE THE ADMIN INTERFACE TO PROGRAM THESE +; dial an 800 outbound number +;exten => _91800NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91800NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To) +;exten => _91800NXXXXXX,3,Hangup +;exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To) +;exten => _91888NXXXXXX,3,Hangup +;exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To) +;exten => _91877NXXXXXX,3,Hangup +;exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To) +;exten => _91866NXXXXXX,3,Hangup + +; dial a long distance outbound number +; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls +;exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To) +;exten => _91NXXNXXXXXX,3,Hangup + +; dial a local outbound number (modified because of only LD T1) +;exten => _9NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _9NXXXXXX,2,Dial(${TRUNK}/1727${EXTEN:1},,To) +;exten => _9NXXXXXX,3,Hangup + +; dial a local 727 outbound number with area code +;exten => _9727NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _9727NXXXXXX,2,Dial(${TRUNK}/1${EXTEN:1},,To) +;exten => _9727NXXXXXX,3,Hangup + +; dial a long distance outbound number to the UK +; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls, +;exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,To) +;exten => _901144XXXXXXXXXX,3,Hangup + +; dial a long distance outbound number to Australia +; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls, +;exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To) +;exten => _901161XXXXXXXXX,3,Hangup + +; dial a long distance outbound number through BINFONE +; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,To) +; exten => _91NXXNXXXXXX,3,Hangup +; dial a long distance outbound number through a SIP provider +; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN:1}@SIPtrunk,55,o) +; exten => _91NXXNXXXXXX,3,Hangup +; special extensions for North America to catch invalid phone numbers +; exten => _91XXX[0-1]XXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXX[0-1]XXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXX[0-1]XXXXXX,3,Hangup +; exten => _91[0-1]XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91[0-1]XXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91[0-1]XXXXXXXXX,3,Hangup +; exten => _91XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXXX,3,Hangup +; exten => _91XXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXX,3,Hangup +; exten => _91XXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXXXXX,3,Hangup +; exten => _91XXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXXXXXX,3,Hangup +; exten => _91XXXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXXXXXXX,3,Hangup + +exten => 8889990011112,1,Goto(loopback-no-log,9990011112,1) + + +; Inbound call from BINFONE +; exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => 1112223333,2,Dial(sip/gs102,55,o) +; exten => 1112223333,3,Hangup + +; Extension 7275551212 - Inbound local number from PRI with 10 digit delivery +;exten => 7275551212,1,Ringing +;exten => 7275551212,2,Wait(1) +;exten => 7275551212,3,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME}) +;exten => 7275551212,4,Answer +;exten => 7275551212,5,Dial(sip/spa2000&sip/spa2001,30,To) +;exten => 7275551212,6,Voicemail,u2000 + +; parameters for call_inbound.agi (7 fields separated by five dashes "-----"): +; 1. the extension of the phone to ring as defined in the asterisk.phones table +; 2. the phone number that was called, for the live_inbound/_log entry +; 3. a text description of the number that was called in +; 4-7. optional fields, they are also passed as fields in the GUI to web browser +; This is not part of VICIDIAL, it is for astGUIclient agent use only + +; Extension 3429 - Inbound 800 number (1-800-555-3429) example of RBS T1 +; with 10 digit ANI and 4 digit DNIS star separated +;exten => _**3429,1,Ringing +;exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => _**3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) +;exten => _**3429,4,Answer +;exten => _**3429,5,Dial(sip/spa2000&sip/spa2001,30,to) +;exten => _**3429,6,Voicemail,u2000 +; Extension 3429 - with ANI [callerID] +;exten => _*NXXNXXXXXX*3429,1,Ringing +;exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) +;exten => _*NXXNXXXXXX*3429,4,Answer +;exten => _*NXXNXXXXXX*3429,5,Dial(sip/spa2000&sip/spa2001,30,to) +;exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000 + + +; parameters for agi-VDAD_ALL_inbound.agi (upto 12 fields separated by five dashes "-----"): +; Below are the parameters needed for the script to be run properly +; 1. the method of call handling for the script: +; - CID - CID received, add record with phone number +; - CIDLOOKUP - Lookup CID to find record in whole system +; - CIDLOOKUPRL - Restrict lookup to one list +; - CIDLOOKUPRC - Restrict lookup to one campaign's lists +; - CLOSER - Closer calls from VICIDIAL fronters +; - ANI - ANI received, add record with phone number (based on RBS T1s) +; - ANILOOKUP - Lookup ANI to find record in whole system +; - ANILOOKUPRL - Restrict lookup to one list +; - ANILOOKUPRC - Restrict lookup to one campaign's lists +; - VID - Add record with Vendor Lead Code received as argument 12 +; - VIDLOOKUP - Lookup Vendor Lead Code received as argument 12 to find record in whole system +; - VIDLOOKUPRL - Restrict lookup to one list (argument 12) +; - VIDLOOKUPRC - Restrict lookup to one campaign's lists (argument 12) +; - VIDPROMPT - Prompt Vendor Lead Code to User with IVR to add record with Vendor Lead Code +; - VIDPROMPTLOOKUP - Prompt Vendor Lead Code to User with IVR to find record in whole system +; - VIDPROMPTLOOKUPRL - Restrict lookup to one list +; - VIDPROMPTLOOKUPRC - Restrict lookup to one campaign's lists +; - 3DIGITID - Enter 3 digit code to go to agent +; - 4DIGITID - Enter 4 digit code to go to agent +; - XDIGITID - Enter X digit code to go to agent(variable, i.e. 9DIGITID, 12DIGITID, etc...) +; 2. the method of searching for an available agent: +; - LO - Load Balance Overflow only (priority to home server) +; - LB - Load Balance total system +; - SO - Home server only +; 3. the full name of the IN GROUP to be used in vicidial for the inbound call +; 4. the phone number that was called, for the log entry +; 5. the callerID or lead_id of the person that called(usually overridden) +; 6. the park extension audio file name if used +; 7. the status of the call initially(usually not used) +; 8. the list_id to insert the new lead under if it is new (and CID/ANI available) +; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available) +; 10. the campaign_id to search within lists if CIDLOOKUPRC +; 11. the user to queue the call to for AGENTDIRECT in-group calls +; 12. vendor_lead_code if external mechanism like custom IVR is used to prompt user for ID +; +; inbound VICIDIAL call with CID delivery through T1 PRI +;exten => 1234,1,Answer ; Answer the line +;exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1) +;exten => 1234,3,Hangup + +; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel] +exten => _90009.,1,Answer ; Answer the line +exten => _90009.,2,Dial(${TRUNKloop}/9${EXTEN},,to) +exten => _90009.,3,Hangup +exten => _990009.,1,Answer ; Answer the line +exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1) +exten => _990009.,3,Hangup +; DID forwarded calls +exten => _99909*.,1,Answer +exten => _99909*.,2,AGI(agi-VDAD_ALL_inbound.agi) +exten => _99909*.,3,Hangup + + +; barge monitoring extension +exten => 8159,1,ZapBarge +exten => 8159,2,Hangup + +; ZapBarge direct channel extensions +exten => _86120XX,1,ZapBarge(${EXTEN:5}) + + +exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1}) +exten => _X48600XXX,2,Hangup + +exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1}) +exten => _X38600XXX,2,Hangup + +exten => _X28600XXX,1,MeetMeAdmin(${EXTEN:2},m,${EXTEN:0:1}) +exten => _X28600XXX,2,Hangup + +exten => _X18600XXX,1,MeetMeAdmin(${EXTEN:2},M,${EXTEN:0:1}) +exten => _X18600XXX,2,Hangup + +exten => _55558600XXX,1,MeetMeAdmin(${EXTEN:4},K) +exten => _55558600XXX,2,Hangup +exten => 8300,1,Hangup + +; astGUIclient conferences +exten => _86000[0-4]X,1,Meetme,${EXTEN}|q +; VICIDIAL conferences +exten => _86000[5-9]X,1,Meetme,${EXTEN}|F +exten => _8600[1-2]XX,1,Meetme,${EXTEN}|F +; quiet entry and leaving conferences for VICIDIAL (inbound announce and SendDTMF) +exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq +; quiet monitor-only extensions for meetme rooms (for room managers) +exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq +; quiet monitor-only entry and leaving conferences for VICIDIAL (recording) +exten => _58600XXX,1,Meetme,${EXTEN:1}|Fmq + +; voicelab exten +exten => _86009XX,1,Meetme,${EXTEN}|Fmq +; voicelab exten moderator +exten => _986009XX,1,Meetme,${EXTEN:1} + + + +; park channel for client GUI parking, hangup after 30 minutes +; create a GSM formatted audio file named "park.gsm" that is 30 minutes long +; and put it in /var/lib/asterisk/sounds +exten => 8301,1,Answer +exten => 8301,2,AGI(park_CID.agi) +exten => 8301,3,Playback(park) +exten => 8301,4,Hangup +exten => 8303,1,Answer +exten => 8303,2,AGI(park_CID.agi) +exten => 8303,3,Playback(conf) +exten => 8303,4,Hangup + +; park channel for client GUI conferencing, hangup after 30 minutes +; create a GSM formatted audio file named "conf.gsm" that is 30 minutes long +; and put it in /var/lib/asterisk/sounds +exten => 8302,1,Answer +exten => 8302,2,Playback(conf) +exten => 8302,3,Hangup + +exten => 8304,1,Answer +exten => 8304,2,Playback(ding) +exten => 8304,3,Hangup + +; default audio for safe harbor 2-second-after-hello message then hangup +; create a GSM formatted audio file complies with safe harbor rules +; and put it in /var/lib/asterisk/sounds then change filename below +exten => 8307,1,Answer +exten => 8307,2,Playback(vm-goodbye) +exten => 8307,3,Hangup + +; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL +exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES) +exten => 8320,2,Hangup + +; use for selective CallerID hangup by area code(hard-coded) +exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN}) +exten => 8352,2,Playback(safe_harbor) +exten => 8352,3,Hangup + +; this is used for sending DTMF signals within conference calls, the client app +; sends the digits to be played in the callerID field +; sound files must be placed in /var/lib/asterisk/sounds +exten => 8500998,1,Answer +exten => 8500998,2,Playback(silence) +exten => 8500998,3,AGI(agi-dtmf.agi) +exten => 8500998,4,Hangup + +; multi-remote-monitor entry extensions +exten => 8162,1,Dial(${TRUNKblind}/34567890123456789,55,to) + +exten => 34567890123456789,1,Answer +exten => 34567890123456789,2,Goto(monitor,s,1) + +;#### VDAD STANDARD TRANSFER ENTRIES #### +; Below are the parameters needed for the agi-VDAD_ALL_outbound.agi script to be run properly +; 1. the method of call handling for the script: +; - NORMAL - Standard outbound routing to agent +; - TEST - For performance testing only +; - BROADCAST - For no-agent broadcast dialing +; - SURVEY - For survery question then on to agent +; - REMINDER - Reminder campaign +; - REMINDX - Reminder with transfer to agent +; 2. the method of searching for an available agent: +; - LB - Load Balance total system +; - LO - Load Balance Overflow only (priority to home server) +; - SO - Home server only +; 3. the sound file to play when doing a SURVEY, REMINDER, REMINDX campaign +; 4. the acceptible dtmf digits for a SURVEY +; 5. the out-opt digit for a SURVEY (must be in the digit map) +; 6. the sound file to play for a SURVEY when transfering to an agent +; 7. the sound file to play for a SURVEY when DNCing the call +; 8. OPTIN or OPTOUT: if OPTIN call is only sent to agent with button press +; if OPTOUT call is sent to agent if no button press at all +; 9. the status that is use for a SURVEY when someone opts out +; if the status is DNC it will also add them to the internal dnc table + +; VICIDIAL_auto_dialer transfer script for no-agent campaigns: +exten => 8364,1,Playback(sip-silence) +exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8364,5,Hangup + +; VICIDIAL_auto_dialer transfer script: +exten => 8365,1,Playback(sip-silence) +exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +exten => 8365,5,Hangup + +; VICIDIAL_auto_dialer transfer script SURVEY at beginning: +exten => 8366,1,Playback(sip-silence) +exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8366,5,Hangup + +; VICIDIAL_auto_dialer transfer script Load Balance Overflow: +exten => 8367,1,Playback(sip-silence) +exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +exten => 8367,5,Hangup + +; VICIDIAL_auto_dialer transfer script Load Balanced: +exten => 8368,1,Playback(sip-silence) +exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8368,5,Hangup + +; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: +exten => 8369,1,Playback(sip-silence) +exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256) +exten => 8369,4,AGI(VD_amd.agi,${EXTEN}) +exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8369,7,Hangup + +; VICIDIAL auto-dial reminder script +exten => 8372,1,Playback(sip-silence) +exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +exten => 8372,5,Hangup + +; VICIDIAL SURVEY transfer script AMD with Load Balanced: +exten => 8373,1,Playback(sip-silence) +exten => 8373,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8373,3,AMD(2000|2000|1000|5000|120|50|4|256) +exten => 8373,4,AGI(VD_amd.agi,${EXTEN}) +exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8373,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8373,7,Hangup + +; VICIDIAL SURVEY transfer script with Cepstral names: +exten => 8374,1,Playback(sip-silence) +exten => 8374,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8374,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) +exten => 8374,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) +exten => 8374,5,Hangup + +; VICIDIAL SURVEY transfer script AMD with Cepstral variables: +exten => 8375,1,Playback(sip-silence) +exten => 8375,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8375,3,AMD(2000|2000|1000|5000|120|50|4|256) +exten => 8375,4,AGI(VD_amd.agi,${EXTEN}) +exten => 8375,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) +exten => 8375,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) +exten => 8375,7,Hangup + + + +; PERFORMANCE TESTING +exten => _999XXXXXX1,1,Answer +exten => _999XXXXXX1,2,Wait(2) +exten => _999XXXXXX1,3,Playback(vicidial-welcome) +exten => _999XXXXXX1,4,Hangup + +exten => _999XX11112,1,Wait(2) +exten => _999XX11112,2,Answer +exten => _999XX11112,3,Playback(ss-noservice) +exten => _999XX11112,4,Playback(vm-goodbye) +exten => _999XX11112,5,Hangup + +exten => _999XX18112,1,Wait(2) +exten => _999XX18112,2,Answer +exten => _999XX18112,3,Playback(vtiger-fax) +exten => _999XX18112,4,Playback(vtiger-fax) +exten => _999XX18112,5,Hangup + +exten => _999XX19112,1,Wait(2) +exten => _999XX19112,2,Answer +exten => _999XX19112,3,Playback(vtiger-email) +exten => _999XX19112,4,Playback(vtiger-email) +exten => _999XX19112,5,Hangup + +exten => _999XXXX112,1,Wait(5) +exten => _999XXXX112,2,Answer +exten => _999XXXX112,3,Playback(demo-instruct) +exten => _999XXXX112,4,Playback(demo-instruct) +exten => _999XXXX112,5,Hangup + +exten => _999XXXXXX2,1,Wait(8) +exten => _999XXXXXX2,2,Answer +exten => _999XXXXXX2,3,Playback(demo-instruct) +exten => _999XXXXXX2,4,Hangup + +exten => _999XXXXXX3,1,SetVar(PRI_CAUSE=1) +exten => _999XXXXXX3,2,Hangup + +exten => _999XXXXXX4,1,SetVar(PRI_CAUSE=27) +exten => _999XXXXXX4,2,Hangup + +exten => _999XXXXXX5,1,Wait(60) +exten => _999XXXXXX5,2,Hangup + +exten => _999XXXXXX6,1,Wait(10) +exten => _999XXXXXX6,2,Answer +exten => _999XXXXXX6,3,Playback(demo-instruct) +exten => _999XXXXXX6,4,Hangup + +exten => _999XXXXXX7,1,Wait(12) +exten => _999XXXXXX7,2,Answer +exten => _999XXXXXX7,3,Playback(demo-enterkeywords) +exten => _999XXXXXX7,4,Hangup + +exten => _999XXXXXX8,1,SetVar(PRI_CAUSE=17) +exten => _999XXXXXX8,2,Hangup + +exten => _999XXXXXX9,1,Wait(6) +exten => _999XXXXXX9,2,Answer +exten => _999XXXXXX9,3,Playback(demo-abouttotry) +exten => _999XXXXXX9,4,Hangup + +exten => _999XXXXXX0,1,Wait(5) +exten => _999XXXXXX0,2,Answer +exten => _999XXXXXX0,3,Playback(vm-goodbye) +exten => _999XXXXXX0,4,Hangup + +exten => 99999999999,1,Answer +exten => 99999999999,2,Playback(conf) +exten => 99999999999,3,Playback(conf) +exten => 99999999999,4,Playback(conf) +exten => 99999999999,5,Playback(conf) +exten => 99999999999,6,Playback(conf) +exten => 99999999999,7,Playback(conf) +exten => 99999999999,8,Playback(conf) +exten => 99999999999,9,Playback(conf) +exten => 99999999999,10,Playback(conf) +exten => 99999999999,11,Playback(conf) +exten => 99999999999,12,Playback(conf) +exten => 99999999999,13,Playback(conf) +exten => 99999999999,14,Hangup + + +[monitor] +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + +exten => s,1,SetVar(TIMEOUT(digit)=10) +exten => s,n,SetVar(TIMEOUT(response)=10) +exten => s,n,SetVar(MEETME_EXIT_CONTEXT=monitor_exit) +exten => s,n,Background(vm-extension) ; need audio prompt. +exten => s,n,WaitExten(10) + +exten => i,1,Goto(monitor_exit,s,1) +exten => #,1,Goto(monitor_exit,s,1) +exten => t,1,Goto(monitor_exit,s,1) + +exten => _8[0-2]XX,1,Meetme(8600${EXTEN:1},mqX) ; Listen +exten => _99[0-2]XX,1,Meetme(8600${EXTEN:2},X) ; Barge + +[monitor_exit] +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + +exten => _X,1,Goto(monitor,s,1) + +exten => i,1,Goto(monitor,s,1) +exten => #,1,Goto(monitor,s,1) +exten => t,1,Goto(monitor,s,1) diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/extensions.conf.sample-1.4 b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/extensions.conf.sample-1.4 new file mode 100644 index 00000000..27b1d803 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/extensions.conf.sample-1.4 @@ -0,0 +1,608 @@ +[general] +static=yes +writeprotect=no + +[globals] +CONSOLE=Console/dsp ; Console interface for demo +TRUNK=Zap/g1 ; Trunk interface +TRUNKX=Zap/g2 ; 2nd trunk interface +TRUNKIAX=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface +TRUNKIAX1=IAX2/ASTtest1:test@10.10.10.16:4569 ; IAX trunk interface +TRUNKBINFONE=IAX2/1112223333:PASSWORD@iax.binfone.com ; IAX trunk interface +SIPtrunk=SIP/1234:PASSWORD@sip.provider.net ; SIP trunk + +#include extensions-vicidial.conf + +[trunkinbound] +; DID call routing process +exten => _X.,1,AGI(agi-DID_route.agi) + +; FastAGI for VICIDIAL/astGUIclient call logging +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + + +[loopback-no-log] +; This context is to accept calls that have already been logged in another context in Vicidial +; and has been sent through one of the loopbacks. This is why this context is missing the h extension. +; Do not put any extensions in this context unless you specifically understand what this means. + +;exten => _91NXXNXXXXXX,1,Dial(${TRUNKX}/${EXTEN:1},,To) +;exten => _91NXXNXXXXXX,n,Hangup +; special Canadian PRI callerIDname settings FOR USE IN LOOPBACK CONTEXT ONLY +;exten => _91NXXNXXXXXX,1,Set(CALLERID(name)="ACME Widgets") +;exten => _91NXXNXXXXXX,n,AGI(agi-CANADA_PRI_CIDname.agi) +;exten => _91NXXNXXXXXX,n,Dial(${TRUNKX}/${EXTEN:1},,To) +;exten => _91NXXNXXXXXX,n,Hangup + +exten => _999XX11112,1,Wait(2) +exten => _999XX11112,n,Answer +exten => _999XX11112,n,Playback(ss-noservice) +exten => _999XX11112,n,Playback(vm-goodbye) +exten => _999XX11112,n,Hangup + + + +[default] +include => vicidial-auto + +; VICI-GROUP DIRECT SUPPORT LINE (VICIHELP[84244357]) +exten => _84244XXX,1,Dial(IAX2/vicihelp/${EXTEN:5}) + +; Local agent alert extensions +exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) +exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) +; Local blind monitoring +exten => _08600XXX,1,Dial(${TRUNKblind}/6${EXTEN:1},55,To) + + +; playback of recorded prompts +exten => _851XXXXX,1,Answer +exten => _851XXXXX,2,Playback(${EXTEN}) +exten => _851XXXXX,3,Hangup + +; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL +exten => _7851XXXXX,1,WaitForSilence(2000,2) ; AMD got machine. leave message after recording +exten => _7851XXXXX,2,Playback(${EXTEN:1}) +exten => _7851XXXXX,3,AGI(VD_amd_post.agi,${EXTEN:1}) +exten => _7851XXXXX,4,Hangup + + +; FastAGI for VICIDIAL/astGUIclient call logging +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + + +; Example phone extensions + +; Extension 2000 Sipura/Linksys ATA line 1 +exten => 2000,1,Dial(sip/spa2000,30,to) ; Ring, 30 secs max +exten => 2000,2,Voicemail,u2000 ; Send to voicemail... +; Extension 2001 Sipura/Linksys ATA line 2 +exten => 2001,1,Dial(sip/spa2001,30,to) ; Ring, 30 secs max +exten => 2001,2,Voicemail,u2001 ; Send to voicemail... +; Extension 2102 rings Grandstream phone +exten => 2102,1,Dial(sip/gs102,30,to) ; Ring, 30 secs max +exten => 2102,2,Voicemail,u2102 ; Send to voicemail... +; Extension 401 rings the firefly softphone +exten => 401,1,Dial((IAX2/firefly01@firefly01/s||t) +exten => 401,2,Hangup + +; 100-350 phone extensions now auto-generated +; extensions for other SIP and IAX call center phones +; cc100-cc150 SIP Phones +;exten => _1[0-5]X,1,Dial(sip/cc${EXTEN},20,to) +; cc300-cc350 IAX Phones +;exten => _3[0-5]X,1,Dial(IAX2/cc${EXTEN},20,to) + +; extensions if using a T1 channelbank +;exten => _19XX,1,Dial(Zap/${EXTEN:2},30,o) +;exten => _19XX,2,Hangup + +; Extension 4001 rings Zap phone (this example for FXS on Zap port 1) +;exten => 4001,1,Dial(Zap/1,30,o) ; ring Zap device 1 +;exten => 4001,2,Voicemail,u4001 ; Send to voicemail... + + +; # timeout invalid rules +exten => #,1,Playback(invalid) ; "Thanks for trying the demo" +exten => #,2,Hangup ; Hang them up. +exten => t,1,Goto(#,1) ; If they take too long, give up +exten => i,1,Playback(invalid) ; "That's not valid, try again" + + +; Extensions for performance testing +exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +exten => _91999NXXXXXX,2,Dial(${TRUNKloop}/${EXTEN:2},,tTo) +exten => _91999NXXXXXX,3,Hangup +exten => 999999999999,1,AGI(agi://127.0.0.1:4577/call_log) +exten => 999999999999,2,Dial(${TRUNKloop}/${EXTEN:1},,tTo) +exten => 999999999999,3,Hangup + +; This is a loopback dialaround to allow for hearing of ringing for 3way calls +exten => _881NXXNXXXXXX,1,Answer +exten => _881NXXNXXXXXX,2,Dial(${TRUNKloop}/9${EXTEN:2},,To) +exten => _881NXXNXXXXXX,3,Hangup + +; Vtiger fax and email log extensions +exten => _9118XXXXXXXX,1,Dial(${TRUNKblind}/9998818112,55,to) +exten => _9119XXXXXXXX,1,Dial(${TRUNKblind}/9998819112,55,to) + + +; CARRIER DIALING EXTENSIONS, USE THE ADMIN INTERFACE TO PROGRAM THESE +; dial an 800 outbound number +;exten => _91800NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91800NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To) +;exten => _91800NXXXXXX,3,Hangup +;exten => _91888NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91888NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To) +;exten => _91888NXXXXXX,3,Hangup +;exten => _91877NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91877NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To) +;exten => _91877NXXXXXX,3,Hangup +;exten => _91866NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91866NXXXXXX,2,Dial(${TRUNK}/${EXTEN:1},,To) +;exten => _91866NXXXXXX,3,Hangup + +; dial a long distance outbound number +; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls +;exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _91NXXNXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To) +;exten => _91NXXNXXXXXX,3,Hangup + +; dial a local outbound number (modified because of only LD T1) +;exten => _9NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _9NXXXXXX,2,Dial(${TRUNK}/1727${EXTEN:1},,To) +;exten => _9NXXXXXX,3,Hangup + +; dial a local 727 outbound number with area code +;exten => _9727NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _9727NXXXXXX,2,Dial(${TRUNK}/1${EXTEN:1},,To) +;exten => _9727NXXXXXX,3,Hangup + +; dial a long distance outbound number to the UK +; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls, +;exten => _901144XXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _901144XXXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},55,To) +;exten => _901144XXXXXXXXXX,3,Hangup + +; dial a long distance outbound number to Australia +; This 'o' Dial flag is VERY important for VICIDIAL on outbound calls, +;exten => _901161XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +;exten => _901161XXXXXXXXX,2,Dial(${TRUNKX}/${EXTEN:1},,To) +;exten => _901161XXXXXXXXX,3,Hangup + +; dial a long distance outbound number through BINFONE +; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91NXXNXXXXXX,2,Dial(${TRUNKIAX}/${EXTEN:1},55,To) +; exten => _91NXXNXXXXXX,3,Hangup +; dial a long distance outbound number through a SIP provider +; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91NXXNXXXXXX,2,Dial(sip/${EXTEN:1}@SIPtrunk,55,o) +; exten => _91NXXNXXXXXX,3,Hangup +; special extensions for North America to catch invalid phone numbers +; exten => _91XXX[0-1]XXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXX[0-1]XXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXX[0-1]XXXXXX,3,Hangup +; exten => _91[0-1]XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91[0-1]XXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91[0-1]XXXXXXXXX,3,Hangup +; exten => _91XXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXXX,3,Hangup +; exten => _91XXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXX,3,Hangup +; exten => _91XXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXXXXX,3,Hangup +; exten => _91XXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXXXXXX,3,Hangup +; exten => _91XXXXXXXXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91XXXXXXXXXXXXX,2,Dial(${TRUNKloop}/8889990011112,,to) +; exten => _91XXXXXXXXXXXXX,3,Hangup +; dial a USA long distance outbound number through the loopback-no-log context +; exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => _91NXXNXXXXXX,2,Dial(${TRUNKloop}/888${EXTEN:2},55,o) +; exten => _91NXXNXXXXXX,3,Hangup +;exten => 888NXXNXXXXXX,1,Goto(loopback-no-log,91${EXTEN:3},1) + +exten => 8889990011112,1,Goto(loopback-no-log,9990011112,1) + + +; Inbound call from BINFONE +; exten => 1112223333,1,AGI(agi://127.0.0.1:4577/call_log) +; exten => 1112223333,2,Dial(sip/gs102,55,o) +; exten => 1112223333,3,Hangup + +; Extension 7275551212 - Inbound local number from PRI with 10 digit delivery +;exten => 7275551212,1,Ringing +;exten => 7275551212,2,Wait(1) +;exten => 7275551212,3,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID(all)}-----${CALLERID(num)}-----${CALLERID(name)}) +;exten => 7275551212,4,Answer +;exten => 7275551212,5,Dial(sip/spa2000&sip/spa2001,30,To) +;exten => 7275551212,6,Voicemail,u2000 + +; parameters for call_inbound.agi (7 fields separated by five dashes "-----"): +; 1. the extension of the phone to ring as defined in the asterisk.phones table +; 2. the phone number that was called, for the live_inbound/_log entry +; 3. a text description of the number that was called in +; 4-7. optional fields, they are also passed as fields in the GUI to web browser +; This is not part of VICIDIAL, it is for astGUIclient agent use only + +; Extension 3429 - Inbound 800 number (1-800-555-3429) example of RBS T1 +; with 10 digit ANI and 4 digit DNIS star separated +;exten => _**3429,1,Ringing +;exten => _**3429,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => _**3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) +;exten => _**3429,4,Answer +;exten => _**3429,5,Dial(sip/spa2000&sip/spa2001,30,to) +;exten => _**3429,6,Voicemail,u2000 +; Extension 3429 - with ANI [callerID] +;exten => _*NXXNXXXXXX*3429,1,Ringing +;exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log) +;exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) +;exten => _*NXXNXXXXXX*3429,4,Answer +;exten => _*NXXNXXXXXX*3429,5,Dial(sip/spa2000&sip/spa2001,30,to) +;exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000 + + +; parameters for agi-VDAD_ALL_inbound.agi (upto 12 fields separated by five dashes "-----"): +; Below are the parameters needed for the script to be run properly +; 1. the method of call handling for the script: +; - CID - CID received, add record with phone number +; - CIDLOOKUP - Lookup CID to find record in whole system +; - CIDLOOKUPRL - Restrict lookup to one list +; - CIDLOOKUPRC - Restrict lookup to one campaign's lists +; - CLOSER - Closer calls from VICIDIAL fronters +; - ANI - ANI received, add record with phone number (based on RBS T1s) +; - ANILOOKUP - Lookup ANI to find record in whole system +; - ANILOOKUPRL - Restrict lookup to one list +; - ANILOOKUPRC - Restrict lookup to one campaign's lists +; - VID - Add record with Vendor Lead Code received as argument 12 +; - VIDLOOKUP - Lookup Vendor Lead Code received as argument 12 to find record in whole system +; - VIDLOOKUPRL - Restrict lookup to one list (argument 12) +; - VIDLOOKUPRC - Restrict lookup to one campaign's lists (argument 12) +; - VIDPROMPT - Prompt Vendor Lead Code to User with IVR to add record with Vendor Lead Code +; - VIDPROMPTLOOKUP - Prompt Vendor Lead Code to User with IVR to find record in whole system +; - VIDPROMPTLOOKUPRL - Restrict lookup to one list +; - VIDPROMPTLOOKUPRC - Restrict lookup to one campaign's lists +; - 3DIGITID - Enter 3 digit code to go to agent +; - 4DIGITID - Enter 4 digit code to go to agent +; - XDIGITID - Enter X digit code to go to agent(variable, i.e. 9DIGITID, 12DIGITID, etc...) +; 2. the method of searching for an available agent: +; - LO - Load Balance Overflow only (priority to home server) +; - LB - Load Balance total system +; - SO - Home server only +; 3. the full name of the IN GROUP to be used in vicidial for the inbound call +; 4. the phone number that was called, for the log entry +; 5. the callerID or lead_id of the person that called(usually overridden) +; 6. the park extension audio file name if used +; 7. the status of the call initially(usually not used) +; 8. the list_id to insert the new lead under if it is new (and CID/ANI available) +; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available) +; 10. the campaign_id to search within lists if CIDLOOKUPRC +; 11. the user to queue the call to for AGENTDIRECT in-group calls +; 12. vendor_lead_code if external mechanism like custom IVR is used to prompt user for ID +; +; inbound VICIDIAL call with CID delivery through T1 PRI +;exten => 1234,1,Answer ; Answer the line +;exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----CL_GALLERIA-----7274515134-----Closer-----park----------999-----1) +;exten => 1234,3,Hangup + +; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel] +exten => _90009.,1,Answer ; Answer the line +exten => _90009.,2,Dial(${TRUNKloop}/9${EXTEN},,to) +exten => _90009.,3,Hangup +exten => _990009.,1,Answer ; Answer the line, Sometimes needs to be removed +exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1) +exten => _990009.,3,Hangup +; DID forwarded calls +exten => _99909*.,1,Answer +exten => _99909*.,2,AGI(agi-VDAD_ALL_inbound.agi) +exten => _99909*.,3,Hangup + + +; barge monitoring extension +exten => 8159,1,ZapBarge +exten => 8159,2,Hangup + +; ZapBarge direct channel extensions +exten => _86120XX,1,ZapBarge(${EXTEN:5}) + + +exten => _X48600XXX,1,MeetMeAdmin(${EXTEN:2},T,${EXTEN:0:1}) +exten => _X48600XXX,2,Hangup + +exten => _X38600XXX,1,MeetMeAdmin(${EXTEN:2},t,${EXTEN:0:1}) +exten => _X38600XXX,2,Hangup + +exten => _X28600XXX,1,MeetMeAdmin(${EXTEN:2},m,${EXTEN:0:1}) +exten => _X28600XXX,2,Hangup + +exten => _X18600XXX,1,MeetMeAdmin(${EXTEN:2},M,${EXTEN:0:1}) +exten => _X18600XXX,2,Hangup + +exten => _55558600XXX,1,MeetMeAdmin(${EXTEN:4},K) +exten => _55558600XXX,2,Hangup +exten => 8300,1,Hangup + +; astGUIclient conferences +exten => _86000[0-4]X,1,Meetme,${EXTEN}|q +; VICIDIAL conferences +exten => _86000[5-9]X,1,Meetme,${EXTEN}|F +exten => _8600[1-2]XX,1,Meetme,${EXTEN}|F +; quiet entry and leaving conferences for VICIDIAL (inbound announce and SendDTMF) +exten => _78600XXX,1,Meetme,${EXTEN:1}|Fq +; quiet monitor-only extensions for meetme rooms (for room managers) +exten => _68600XXX,1,Meetme,${EXTEN:1}|Fmq +; quiet monitor-only entry and leaving conferences for VICIDIAL (recording) +exten => _58600XXX,1,Meetme,${EXTEN:1}|Fmq + +; voicelab exten +exten => _86009XX,1,Meetme,${EXTEN}|Fmq +; voicelab exten moderator +exten => _986009XX,1,Meetme,${EXTEN:1} + + + +; park channel for client GUI parking, hangup after 30 minutes +; create a GSM formatted audio file named "park.gsm" that is 30 minutes long +; and put it in /var/lib/asterisk/sounds +exten => 8301,1,Answer +exten => 8301,2,AGI(park_CID.agi) +exten => 8301,3,Playback(park) +exten => 8301,4,Hangup +exten => 8303,1,Answer +exten => 8303,2,AGI(park_CID.agi) +exten => 8303,3,Playback(conf) +exten => 8303,4,Hangup + +; park channel for client GUI conferencing, hangup after 30 minutes +; create a GSM formatted audio file named "conf.gsm" that is 30 minutes long +; and put it in /var/lib/asterisk/sounds +exten => 8302,1,Answer +exten => 8302,2,Playback(conf) +exten => 8302,3,Hangup + +exten => 8304,1,Answer +exten => 8304,2,Playback(ding) +exten => 8304,3,Hangup + +; default audio for safe harbor 2-second-after-hello message then hangup +; create a GSM formatted audio file complies with safe harbor rules +; and put it in /var/lib/asterisk/sounds then change filename below +exten => 8307,1,Answer +exten => 8307,2,Playback(vm-goodbye) +exten => 8307,3,Hangup + +; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL +exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES) +exten => 8320,2,Hangup + +; use for selective CallerID hangup by area code(hard-coded) +exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN}) +exten => 8352,2,Playback(safe_harbor) +exten => 8352,3,Hangup + +; this is used for sending DTMF signals within conference calls, the client app +; sends the digits to be played in the callerID field +; sound files must be placed in /var/lib/asterisk/sounds +exten => 8500998,1,Answer +exten => 8500998,2,Playback(silence) +exten => 8500998,3,AGI(agi-dtmf.agi) +exten => 8500998,4,Hangup + +; multi-remote-monitor entry extensions +exten => 8162,1,Dial(${TRUNKblind}/34567890123456789,55,to) + +exten => 34567890123456789,1,Answer +exten => 34567890123456789,2,Goto(monitor,s,1) + +;#### VDAD STANDARD TRANSFER ENTRIES #### +; Below are the parameters needed for the agi-VDAD_ALL_outbound.agi script to be run properly +; 1. the method of call handling for the script: +; - NORMAL - Standard outbound routing to agent +; - TEST - For performance testing only +; - BROADCAST - For no-agent broadcast dialing +; - SURVEY - For survery question then on to agent +; - REMINDER - Reminder campaign +; - REMINDX - Reminder with transfer to agent +; 2. the method of searching for an available agent: +; - LB - Load Balance total system +; - LO - Load Balance Overflow only (priority to home server) +; - SO - Home server only +; 3. the sound file to play when doing a SURVEY, REMINDER, REMINDX campaign +; 4. the acceptible dtmf digits for a SURVEY +; 5. the out-opt digit for a SURVEY (must be in the digit map) +; 6. the sound file to play for a SURVEY when transfering to an agent +; 7. the sound file to play for a SURVEY when DNCing the call +; 8. OPTIN or OPTOUT: if OPTIN call is only sent to agent with button press +; if OPTOUT call is sent to agent if no button press at all +; 9. the status that is use for a SURVEY when someone opts out +; if the status is DNC it will also add them to the internal dnc table + +; VICIDIAL_auto_dialer transfer script for no-agent campaigns: +exten => 8364,1,Playback(sip-silence) +exten => 8364,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8364,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8364,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8364,5,Hangup + +; VICIDIAL_auto_dialer transfer script: +exten => 8365,1,Playback(sip-silence) +exten => 8365,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8365,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +exten => 8365,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----SO) +exten => 8365,5,Hangup + +; VICIDIAL_auto_dialer transfer script SURVEY at beginning: +exten => 8366,1,Playback(sip-silence) +exten => 8366,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8366,5,Hangup + +; VICIDIAL_auto_dialer transfer script Load Balance Overflow: +exten => 8367,1,Playback(sip-silence) +exten => 8367,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8367,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +exten => 8367,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LO) +exten => 8367,5,Hangup + +; VICIDIAL_auto_dialer transfer script Load Balanced: +exten => 8368,1,Playback(sip-silence) +exten => 8368,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8368,5,Hangup + +; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: +exten => 8369,1,Playback(sip-silence) +exten => 8369,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8369,3,AMD(2000|2000|1000|5000|120|50|4|256) +exten => 8369,4,AGI(VD_amd.agi,${EXTEN}) +exten => 8369,5,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8369,6,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +exten => 8369,7,Hangup + +; VICIDIAL auto-dial reminder script +exten => 8372,1,Playback(sip-silence) +exten => 8372,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8372,3,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +exten => 8372,4,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +exten => 8372,5,Hangup + +; VICIDIAL SURVEY transfer script AMD with Load Balanced: +exten => 8373,1,Playback(sip-silence) +exten => 8373,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8373,3,AMD(2000|2000|1000|5000|120|50|4|256) +exten => 8373,4,AGI(VD_amd.agi,${EXTEN}) +exten => 8373,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8373,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMP-----LB) +exten => 8373,7,Hangup + +; VICIDIAL SURVEY transfer script with Cepstral names: +exten => 8374,1,Playback(sip-silence) +exten => 8374,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8374,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) +exten => 8374,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) +exten => 8374,5,Hangup + +; VICIDIAL SURVEY transfer script AMD with Cepstral variables: +exten => 8375,1,Playback(sip-silence) +exten => 8375,2,AGI(agi://127.0.0.1:4577/call_log) +exten => 8375,3,AMD(2000|2000|1000|5000|120|50|4|256) +exten => 8375,4,AGI(VD_amd.agi,${EXTEN}) +exten => 8375,5,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) +exten => 8375,6,AGI(agi-VDAD_ALL_outbound.agi,SURVEYCAMPCEP-----LB) +exten => 8375,7,Hangup + + + +; PERFORMANCE TESTING +exten => _999XXXXXX1,1,Answer +exten => _999XXXXXX1,2,Wait(2) +exten => _999XXXXXX1,3,Playback(vicidial-welcome) +exten => _999XXXXXX1,4,Hangup + +exten => _999XX11112,1,Wait(2) +exten => _999XX11112,2,Answer +exten => _999XX11112,3,Playback(ss-noservice) +exten => _999XX11112,4,Playback(vm-goodbye) +exten => _999XX11112,5,Hangup + +exten => _999XX18112,1,Wait(2) +exten => _999XX18112,2,Answer +exten => _999XX18112,3,Playback(vtiger-fax) +exten => _999XX18112,4,Playback(vtiger-fax) +exten => _999XX18112,5,Hangup + +exten => _999XX19112,1,Wait(2) +exten => _999XX19112,2,Answer +exten => _999XX19112,3,Playback(vtiger-email) +exten => _999XX19112,4,Playback(vtiger-email) +exten => _999XX19112,5,Hangup + +exten => _999XXXX112,1,Wait(5) +exten => _999XXXX112,2,Answer +exten => _999XXXX112,3,Playback(demo-instruct) +exten => _999XXXX112,4,Playback(demo-instruct) +exten => _999XXXX112,5,Hangup + +exten => _999XXXXXX2,1,Wait(8) +exten => _999XXXXXX2,2,Answer +exten => _999XXXXXX2,3,Playback(demo-instruct) +exten => _999XXXXXX2,4,Hangup + +exten => _999XXXXXX3,1,Set(PRI_CAUSE=1) +exten => _999XXXXXX3,2,Hangup + +exten => _999XXXXXX4,1,Set(PRI_CAUSE=27) +exten => _999XXXXXX4,2,Hangup + +exten => _999XXXXXX5,1,Wait(60) +exten => _999XXXXXX5,2,Hangup + +exten => _999XXXXXX6,1,Wait(10) +exten => _999XXXXXX6,2,Answer +exten => _999XXXXXX6,3,Playback(demo-instruct) +exten => _999XXXXXX6,4,Hangup + +exten => _999XXXXXX7,1,Wait(12) +exten => _999XXXXXX7,2,Answer +exten => _999XXXXXX7,3,Playback(demo-enterkeywords) +exten => _999XXXXXX7,4,Hangup + +exten => _999XXXXXX8,1,Set(PRI_CAUSE=17) +exten => _999XXXXXX8,2,Hangup + +exten => _999XXXXXX9,1,Wait(6) +exten => _999XXXXXX9,2,Answer +exten => _999XXXXXX9,3,Playback(demo-abouttotry) +exten => _999XXXXXX9,4,Hangup + +exten => _999XXXXXX0,1,Wait(5) +exten => _999XXXXXX0,2,Answer +exten => _999XXXXXX0,3,Playback(vm-goodbye) +exten => _999XXXXXX0,4,Hangup + +exten => 99999999999,1,Answer +exten => 99999999999,2,Playback(conf) +exten => 99999999999,3,Playback(conf) +exten => 99999999999,4,Playback(conf) +exten => 99999999999,5,Playback(conf) +exten => 99999999999,6,Playback(conf) +exten => 99999999999,7,Playback(conf) +exten => 99999999999,8,Playback(conf) +exten => 99999999999,9,Playback(conf) +exten => 99999999999,10,Playback(conf) +exten => 99999999999,11,Playback(conf) +exten => 99999999999,12,Playback(conf) +exten => 99999999999,13,Playback(conf) +exten => 99999999999,14,Hangup + + +[monitor] +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + +exten => s,1,Set(TIMEOUT(digit)=10) +exten => s,n,Set(TIMEOUT(response)=10) +exten => s,n,Set(MEETME_EXIT_CONTEXT=monitor_exit) +exten => s,n,Background(vm-extension) ; need audio prompt. +exten => s,n,WaitExten(10) + +exten => i,1,Goto(monitor_exit,s,1) +exten => #,1,Goto(monitor_exit,s,1) +exten => t,1,Goto(monitor_exit,s,1) + +exten => _8[0-2]XX,1,Meetme(8600${EXTEN:1},mqX) ; Listen +exten => _99[0-2]XX,1,Meetme(8600${EXTEN:2},X) ; Barge + +[monitor_exit] +exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) + +exten => _X,1,Goto(monitor,s,1) + +exten => i,1,Goto(monitor,s,1) +exten => #,1,Goto(monitor,s,1) +exten => t,1,Goto(monitor,s,1) diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/features.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/features.conf.sample new file mode 100644 index 00000000..21ddf7ab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/features.conf.sample @@ -0,0 +1,54 @@ +; +; Sample Parking configuration +; + +[general] +parkext => 700 ; What extension to dial to park +parkpos => 701-720 ; What extensions to park calls on. These needs to be + ; numeric, as Asterisk starts from the start position + ; and increments with one for the next parked call. +context => parkedcalls ; Which context parked calls are in +;parkingtime => 45 ; Number of seconds a call can be parked for + ; (default is 45 seconds) +;transferdigittimeout => 3 ; Number of seconds to wait between digits when transferring a call +;courtesytone = beep ; Sound file to play to the parked caller + ; when someone dials a parked call +;xfersound = beep ; to indicate an attended transfer is complete +;xferfailsound = beeperr ; to indicate a failed transfer +;adsipark = yes ; if you want ADSI parking announcements +;findslot => next ; Continue to the 'next' free parking space. + ; Defaults to 'first' available +;pickupexten = *8 ; Configure the pickup extension. Default is *8 +;featuredigittimeout = 500 ; Max time (ms) between digits for + ; feature activation. Default is 500 + + +[featuremap] +;blindxfer => #1 ; Blind transfer +;disconnect => *0 ; Disconnect +;automon => *1 ; One Touch Record +;atxfer => *2 ; Attended transfer + + +; ATTENTION VICIDIAL ADMINS: +; The follow effectively disables the built in blind transfer feature of Asterisk. +; This sets it to a DTMF tone that asterisk cannot even process, that is only available +; on certain telco style test sets. This does NOT disable the VICIDIAL blind transfer +; ability as this is implemented through other means. If you are using your VICIDIAL +; server as PBX you may want to comment this out. Be aware however that this can make +; it so that anyone can transfer the call to anyone else that is allowed by your dialplan. +; IE someone you have called could transfer the call to a their mother, the Pope, or +; a 900 number if you do not have your dialplan carefully setup. + +blindxfer => CC +disconnect => B + + +[applicationmap] +; Note that the DYNAMIC_FEATURES channel variable must be set to use the features +; defined here. The value of DYNAMIC_FEATURES should be the names of the features +; to allow the channel to use separated by '#'. For example: +; Set(DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3) +; +;testfeature => #9,callee,Playback,tt-monkeys ;Play tt-monkeys to + ;callee if #9 was pressed diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/iax.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/iax.conf.sample new file mode 100644 index 00000000..89a5fe2c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/iax.conf.sample @@ -0,0 +1,34 @@ +[general] +bindport=4569 +iaxcompat=yes +bandwidth=high +disallow=all +allow=all +allow=gsm ; Always allow GSM, it's cool :) +jitterbuffer=no +tos=lowdelay + +#include iax-vicidial.conf + +;register => 1112223333:PASSWORD@iax.binfone.com +;ASTloop/ASTblind removed and now included in iax-vicidial.conf + + +[vicihelp] +host=67.134.219.20 ;voip.vicidial-group.com +type=friend +context=opengateway +disallow=all +allow=gsm +allow=ulaw +permit=67.134.219.20/255.255.255.255 +insecure=very + + +[1112223333] +auth=md5 +type=friend +username=1112223333 +secret=PASSWORD +host=iax.binfone.com +context=trunkinbound diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/iax.conf.sample-1.4 b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/iax.conf.sample-1.4 new file mode 100644 index 00000000..02070fd4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/iax.conf.sample-1.4 @@ -0,0 +1,65 @@ +[general] +bindport=4569 ; bindport and bindaddr may be specified +bindaddr=0.0.0.0 ; more than once to bind to multiple +;iaxcompat=yes +;nochecksums=no +delayreject=yes +;amaflags=default +adsi=no +;accountcode=vicidial +language=en +mohinterpret=passthrough +mohsuggest=default +disallow=all +allow=ulaw +allow=gsm +jitterbuffer=yes +forcejitterbuffer=no +maxjitterbuffer=1000 +maxjitterinterps=10 +resyncthreshold=1000 +trunkfreq=20 ; How frequently to send trunk msgs (in ms) +trunktimestamps=yes +minregexpire = 60 +maxregexpire = 360 +iaxthreadcount = 50 +iaxmaxthreadcount = 250 +;register => marko:secretpass@tormenta.linux-support.net +;register => joe@remotehost:5656 +;register => marko:[torkey]@tormenta.linux-support.net +;register => user:pass@iaxtel.com +;register => FWDNumber:passwd@iax.fwdnet.net +authdebug=no +regcontext=default +autokill=yes +codecpriority=host +allowfwdownload=no +;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list +;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) +;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule +;rtignoreregexpire=yes ; When reading a peer from Realtime, if the peer's registration + +#include iax-vicidial.conf + +;register => 1112223333:PASSWORD@iax.binfone.com +;ASTloop/ASTblind removed and now included in iax-vicidial.conf + + +[vicihelp] +host=67.134.219.20 ;voip.vicidial-group.com +type=friend +requirecalltoken=no +context=opengateway +disallow=all +allow=gsm +allow=ulaw +permit=67.134.219.20/255.255.255.255 +insecure=very + +[1112223333] +auth=md5 +type=friend +username=1112223333 +secret=PASSWORD +host=iax.binfone.com +context=trunkinbound diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/logger.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/logger.conf.sample new file mode 100644 index 00000000..34af05de --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/logger.conf.sample @@ -0,0 +1,3 @@ +[logfiles] +console => notice,warning,error +messages => notice,warning,error,debug,verbose diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/manager.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/manager.conf.sample new file mode 100644 index 00000000..8760d41c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/manager.conf.sample @@ -0,0 +1,24 @@ +[general] +enabled = yes +port = 5038 +bindaddr = 0.0.0.0 + +[cron] +secret = 1234 +read = system,call,log,verbose,command,agent,user +write = system,call,log,verbose,command,agent,user + +[updatecron] +secret = 1234 +read = command +write = command + +[listencron] +secret = 1234 +read = system,call,log,verbose,command,agent,user +write = command + +[sendcron] +secret = 1234 +read = command +write = system,call,log,verbose,command,agent,user diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/meetme.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/meetme.conf.sample new file mode 100644 index 00000000..dca813a1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/meetme.conf.sample @@ -0,0 +1,5 @@ +[rooms] +conf => 8600 +conf => 8601,1234 + +#include meetme-vicidial.conf diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/musiconhold.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/musiconhold.conf.sample new file mode 100644 index 00000000..887e6cb2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/musiconhold.conf.sample @@ -0,0 +1,22 @@ +; +; Music on Hold -- Sample Configuration +; + +[old-default] +mode=files +directory=/var/lib/asterisk/mohmp3 + +[old-quiet] +mode=files +directory=/var/lib/asterisk/quiet-mp3 + +#include musiconhold-vicidial.conf + +; valid mode options: +; quietmp3 -- default +; mp3 -- loud +; mp3nb -- unbuffered +; quietmp3nb -- quiet unbuffered +; custom -- run a custom application +; files -- read files from a directory in any Asterisk supported format + diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/sip.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/sip.conf.sample new file mode 100644 index 00000000..858e1840 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/sip.conf.sample @@ -0,0 +1,80 @@ +[general] +context=default ; Default context for incoming calls +;allowguest=no ; Allow or reject guest calls (default is yes, this can also be set to 'osp' +;realm=mydomain.tld ; Realm for digest authentication +bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) +bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) +srvlookup=yes ; Enable DNS SRV lookups on outbound calls +;domain=mydomain.tld ; Set default domain for this host +;domain=mydomain.tld,mydomain-incoming +;domain=1.2.3.4 ; Add IP address as local domain +;allowexternalinvites=no ; Disable INVITE and REFER to non-local domains +;autodomain=yes ; Turn this on to have Asterisk add local host +;pedantic=yes ; Enable slow, pedantic checking for Pingtel +;tos=184 ; Set IP QoS to either a keyword or numeric val +tos=lowdelay ; lowdelay,throughput,reliability,mincost,none +maxexpiry=3600 ; Max length of incoming registration we allow +defaultexpiry=120 ; Default length of incoming/outgoing registration +;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY +;checkmwi=10 ; Default time between mailbox checks for peers +;vmexten=voicemail ; dialplan extension to reach mailbox sets the +;videosupport=yes ; Turn on support for SIP video +;recordhistory=yes ; Record SIP history by default +disallow=all ; First disallow all codecs +allow=ulaw ; Allow codecs in order of preference +allow=gsm ; +musicclass=default ; Sets the default music on hold class for all SIP calls +language=en ; Default language setting for all users/peers +relaxdtmf=yes ; Relax dtmf handling +rtptimeout=60 ; Terminate call if 60 seconds of no RTP activity +;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP activity +trustrpid = no ; If Remote-Party-ID should be trusted +sendrpid = yes ; If Remote-Party-ID should be sent +progressinband=no ; If we should generate in-band ringing always +;useragent=Asterisk PBX ; Allows you to change the user agent string +promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address +;usereqphone = no ; If yes, ";user=phone" is added to uri that contains +dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 +;compactheaders = yes ; send compact sip headers. +;sipdebug = yes ; Turn on SIP debugging by default, from +;subscribecontext = default ; Set a specific context for SUBSCRIBE requests +;notifyringing = yes ; Notify subscriptions on RINGING state +;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, +;regcontext=sipregistrations +;registertimeout=20 ; retry registration calls every 20 seconds (default) +;registerattempts=10 ; Number of registration attempts before we give up +callevents=no ; generate manager events when sip ua performs events (e.g. hold) +;externip = 192.168.1.1 ; Address that we're going to put in outbound SIP messages +;externhost=foo.dyndns.net ; Alternatively you can specify an +;externrefresh=10 ; How often to refresh externhost if +localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks +localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 +localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation +localnet=169.254.0.0/255.255.0.0 ;Zero conf local network +nat=yes ; Global NAT settings (Affects all peers and users) +canreinvite=no +;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list +;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) +;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule +;ignoreregexpire=yes ; Enabling this setting has two functions: +; domain=myasterisk.dom +; domain=customer.com,customer-context +; autodomain=yes +; fromdomain=mydomain.tld ; When making outbound SIP INVITEs to + +#include sip-vicidial.conf + +; register SIP account on remote machine if using SIP trunks +; register => testSIPtrunk:test@10.10.10.16:5060 +; +; setup account for SIP trunking: +; [SIPtrunk] +; disallow=all +; allow=ulaw +; allow=alaw +; type=friend +; username=testSIPtrunk +; secret=test +; host=10.10.10.16 +; dtmfmode=inband +; qualify=1000 diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/sip.conf.sample-1.4 b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/sip.conf.sample-1.4 new file mode 100644 index 00000000..a9925aa2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/sip.conf.sample-1.4 @@ -0,0 +1,104 @@ +[general] +context=default ; Default context for incoming calls +;allowguest=no ; Allow or reject guest calls (default is yes) +allowoverlap=no ; Disable overlap dialing support. (Default is yes) +;allowtransfer=no ; Disable all transfers (unless enabled in peers or users) +;realm=mydomain.tld ; Realm for digest authentication +bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) +bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all) +srvlookup=yes ; Enable DNS SRV lookups on outbound calls +;domain=mydomain.tld ; Set default domain for this host +;pedantic=yes ; Enable checking of tags in headers, +;tos_sip=cs3 ; Sets TOS for SIP packets. +;tos_audio=ef ; Sets TOS for RTP audio packets. +;tos_video=af41 ; Sets TOS for RTP video packets. +;maxexpiry=3600 ; Maximum allowed time of incoming registrations +;minexpiry=60 ; Minimum length of registrations/subscriptions (default 60) +;defaultexpiry=120 ; Default length of incoming/outgoing registration +;t1min=100 ; Minimum roundtrip time for messages to monitored hosts +;notifymimetype=text/plain ; Allow overriding of mime type in MWI NOTIFY +;checkmwi=10 ; Default time between mailbox checks for peers +;buggymwi=no ; Cisco SIP firmware doesn't support the MWI RFC +;vmexten=voicemail ; dialplan extension to reach mailbox sets the +disallow=all ; First disallow all codecs +allow=ulaw ; Allow codecs in order of preference +allow=gsm +mohinterpret=default +mohsuggest=default +language=en ; Default language setting for all users/peers +relaxdtmf=yes ; Relax dtmf handling +trustrpid = no ; If Remote-Party-ID should be trusted +sendrpid = yes ; If Remote-Party-ID should be sent +progressinband=no ; If we should generate in-band ringing always +;useragent=Asterisk PBX ; Allows you to change the user agent string +;promiscredir = no ; If yes, allows 302 or REDIR to non-local SIP address +;usereqphone = no ; If yes, ";user=phone" is added to uri that contains +dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833 +;compactheaders = yes ; send compact sip headers. +videosupport=no ; Turn on support for SIP video. You need to turn this on +;maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) +callevents=yes ; generate manager events when sip ua +;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected, +;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing +;matchexterniplocally = yes ; Only substitute the externip or externhost setting if it matches +;regcontext=sipregistrations +rtptimeout=60 ; Terminate call if 60 seconds of no RTP or RTCP activity +;rtpholdtimeout=300 ; Terminate call if 300 seconds of no RTP or RTCP activity +;rtpkeepalive= ; Send keepalives in the RTP stream to keep NAT open +;sipdebug = yes ; Turn on SIP debugging by default, from +;recordhistory=yes ; Record SIP history by default +;dumphistory=yes ; Dump SIP history at end of SIP dialogue +;allowsubscribe=no ; Disable support for subscriptions. (Default is yes) +;subscribecontext = default ; Set a specific context for SUBSCRIBE requests +notifyringing = yes ; Notify subscriptions on RINGING state (default: no) +notifyhold = yes ; Notify subscriptions on HOLD state (default: no) +limitonpeers = yes ; Apply call limits on peers only. This will improve +;t38pt_udptl = yes ; Default false +;register => 1234:password@mysipprovider.com +;registertimeout=20 ; retry registration calls every 20 seconds (default) +;registerattempts=10 ; Number of registration attempts before we give up +;externip = 192.168.1.1 ; Address that we're going to put in outbound SIP +;externhost=test.test.com ; Alternatively you can specify a domain +;externrefresh=10 ; How often to refresh externhost if +localnet=192.168.0.0/255.255.0.0; All RFC 1918 addresses are local networks +localnet=10.0.0.0/255.0.0.0 ; Also RFC1918 +localnet=172.16.0.0/12 ; Another RFC1918 with CIDR notation +localnet=169.254.0.0/255.255.0.0 ;Zero conf local network +nat=yes ; Global NAT settings (Affects all peers and users) +canreinvite=no ; Asterisk by default tries to redirect the +;directrtpsetup=yes ; Enable the new experimental direct RTP setup. This sets up +;rtcachefriends=yes ; Cache realtime friends by adding them to the internal list +;rtsavesysname=yes ; Save systemname in realtime database at registration +;rtupdate=yes ; Send registry updates to database using realtime? (yes|no) +;rtautoclear=yes ; Auto-Expire friends created on the fly on the same schedule +;ignoreregexpire=yes ; Enabling this setting has two functions: +;domain=mydomain.tld,mydomain-incoming +;domain=1.2.3.4 ; Add IP address as local domain +;allowexternaldomains=no ; Disable INVITE and REFER to non-local domains +;autodomain=yes ; Turn this on to have Asterisk add local host +;fromdomain=mydomain.tld ; When making outbound SIP INVITEs to +jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a +jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP +jbmaxsize = 100 ; Max length of the jitterbuffer in milliseconds. +jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is +jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP +jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". +qualify=yes ; By default, qualify all peers at 2000ms +limitonpeer = yes ; enable call limit on a per peer basis, different from limitonpeers + +#include sip-vicidial.conf + +; register SIP account on remote machine if using SIP trunks +; register => testSIPtrunk:test@10.10.10.16:5060 +; +; setup account for SIP trunking: +; [SIPtrunk] +; disallow=all +; allow=ulaw +; allow=alaw +; type=friend +; username=testSIPtrunk +; secret=test +; host=10.10.10.16 +; dtmfmode=inband +; qualify=1000 diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/voicemail.conf.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/voicemail.conf.sample new file mode 100644 index 00000000..dd255165 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/voicemail.conf.sample @@ -0,0 +1,20 @@ +[general] +format=wav49|gsm|wav +serveremail=asterisk +attach=yes +skipms=3000 +maxsilence=10 +silencethreshold=128 +maxlogins=3 +maxmsg=300 + +[zonemessages] +eastern=America/New_York|'vm-received' Q 'digits/at' IMp +central=America/Chicago|'vm-received' Q 'digits/at' IMp +central24=America/Chicago|'vm-received' q 'digits/at' H 'digits/hundred' M 'hours' + +[default] + + +#include voicemail-vicidial.conf + diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.e1.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.e1.sample new file mode 100644 index 00000000..fb829460 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.e1.sample @@ -0,0 +1,46 @@ +# /etc/asterisk/zapata.conf: +# Digium/Clone T100P EXAMPLE: +# Here is an example of a configuration where an T100P single T1 card is used +# for connecting a single T1 PRI circuit with 23 voice channels + +[channels] +language=it +rxgain=1.0 +txgain=1.0 +usecallerid=yes +callerid=asreceived +busydetect=no +context=default +echotraining=no +echocancel=yes +echocancelwhenbridged=no +usecallingpres=yes +callprogress = no +prilocaldialplan=unknown +pridialplan=unknown +overlapdial=yes +switchtype=euroisdn +immediate=no + +group=0 +signalling=pri_cpe + +#PRI 1 +channel => 1-15 +channel => 17-31 + +#PRI 2 +channel => 32-46 +channel => 48-62 + +#PRI 3 +channel => 63-77 +channel => 79-93 + +group=1 +signalling=pri_net + +#PRI 4 +channel => 94-108 +channel => 110-124 + diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.t100p.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.t100p.sample new file mode 100644 index 00000000..caa219a9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.t100p.sample @@ -0,0 +1,46 @@ +# /etc/asterisk/zapata.conf: +# Digium/Clone T100P EXAMPLE: +# Here is an example of a configuration where an T100P single T1 card is used +# for connecting a single T1 PRI circuit with 23 voice channels + +[channels] +group=1 +language=en +signalling=pri_cpe +usecallerid=yes +callerid=asreceived +callprogress=no +busydetect=no +context=default +echocancel=64 +echocancelwhenbridged=yes +rxgain=1.0 +txgain=1.0 +channel => 1-23 + +# FOR A RBS WinkStart T1 YOU WOULD USE SOMETHING LIKE THIS: +# group=1 +# language=en +# signalling=em_w +# usecallerid=yes +# callerid=asreceived +# context=default +# echocancel=64 +# echocancelwhenbridged=yes +# rxgain=1.0 +# txgain=1.0 +# channel => 1-24 +# +# FOR AN ANALOG T1 ChannelBank YOU WOULD USE SOMETHING LIKE THIS: +# group=4 +# language=en +# signalling=fxo_ks +# usecallerid=yes +# callerid=asreceived +# context=default +# echocancel=64 +# echocancelwhenbridged=no +# rxgain=-1.0 +# txgain=-1.0 +# channel => 1-24 + diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.x100p.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.x100p.sample new file mode 100644 index 00000000..6e2ecd8e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zapata.conf.x100p.sample @@ -0,0 +1,13 @@ +# /etc/asterisk/zapata.conf: +# Digium/Clone X100P EXAMPLE: +# Here is an example of a configuration where an X100P single FXO card is used +# for zaptel timing and not used for calling: +# +# NOTE: you can get an X100P on ebay for $10-30 that will work with Asterisk + +[trunkgroups] +[channels] +context=unused +signalling=fxs_ks +channel => 1 + diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.e1.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.e1.sample new file mode 100644 index 00000000..115f84ac --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.e1.sample @@ -0,0 +1,24 @@ +# /etc/zaptel.conf: +# Digium/Clone T100P EXAMPLE: +# Here is an example of a configuration where an T100P single T1 card is used +# for connecting a single T1 PRI circuit with 23 voice channels + +loadzone=it +defaultzone=it + +span=1,1,0,ccs,hdb3,crc4 +bchan=1-15,17-31 +dchan=16 + +span=2,2,0,ccs,hdb3,crc4 +bchan=32-46,48-62 +dchan=47 + +span=3,3,0,ccs,hdb3,crc4 +bchan=63-77,79-93 +dchan=78 + +span=4,4,0,ccs,hdb3,crc4 +bchan=94-108,110-124 +dchan=109 + diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.t100p.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.t100p.sample new file mode 100644 index 00000000..0e28251b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.t100p.sample @@ -0,0 +1,23 @@ +# /etc/zaptel.conf: +# Digium/Clone T100P EXAMPLE: +# Here is an example of a configuration where an T100P single T1 card is used +# for connecting a single T1 PRI circuit with 23 voice channels + +span=1,1,0,esf,b8zs +bchan=1-23 +dchan=24 +loadzone = us +defaultzone=us + +# FOR A RBS WinkStart T1 YOU WOULD USE SOMETHING LIKE THIS: +# span=1,1,0,esf,b8zs +# e&m=1-24 +# loadzone = us +# defaultzone=us +# +# FOR AN ANALOG T1 ChannelBank YOU WOULD USE SOMETHING LIKE THIS: +# span=1,1,0,esf,b8zs +# fxoks=1-24 +# loadzone = us +# defaultzone=us +# diff --git a/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.x100p.sample b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.x100p.sample new file mode 100644 index 00000000..a9742eea --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/docs/conf_examples/zaptel.conf.x100p.sample @@ -0,0 +1,10 @@ +# /etc/zaptel.conf: +# Digium/Clone X100P EXAMPLE: +# Here is an example of a configuration where an X100P single FXO card is used +# for zaptel timing and not used for calling: +# +# NOTE: you can get an X100P on ebay for $10-30 that will work with Asterisk + +loadzone=us +defaultzone=us +fxsks=1 diff --git a/agc_2-X/branches/agc_2.2.0/experimental/AST_update.pl b/agc_2-X/branches/agc_2.2.0/experimental/AST_update.pl new file mode 100644 index 00000000..f9a8dab1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/experimental/AST_update.pl @@ -0,0 +1,1225 @@ +#!/usr/bin/perl +# +# AST_update.pl version 2.0.5 *DBI-version* +# +# DESCRIPTION: +# uses the Asterisk Manager interface and Net::MySQL to update the live_channels +# tables and verify the parked_channels table in the asterisk MySQL database +# This "near-live-status of Zap/SIP/Local/IAX channels" list is used by clients +# +# SUMMARY: +# This program was designed for people using the Asterisk PBX with Digium +# Zaptel telco cards and SIP VOIP hardphones or softphones as extensions, it +# could be adapted to other functions, but I designed it specifically for +# Zap/IAX2/SIP users. The program will run on UNIX or Win32 command line +# providing the following criteria are met: +# +# Win32 - ActiveState Perl 5.8.0 +# UNIX - Gnome or KDE with Tk/Tcl and perl Tk/Tcl modules loaded +# Both - Net::MySQL, Net::Telnet and Time::HiRes perl modules loaded +# +# For the client program to work, this program must always be running +# +# For this program to work you need to have the "asterisk" MySQL database +# created and create the tables listed in the MySQL_AST_CREATE_tables.sql file, +# also make sure that the machine running this program has select/insert/update/delete +# access to that database +# +# In your Asterisk server setup you also need to have several things activated +# and defined. See the CONF_Asterisk.txt file for details +# +# It is recommended that you run this program on the local Asterisk machine +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# version changes: +# 41228-1659 - modified to compensate for manager output response hiccups +# 50107-1611 - modified to add Zap and IAX2 clients (differentiate from trunks) +# 50117-1537 - modified to add MySQL port ($DB_port) var from conf file +# 50303-0958 - modified to compensate for Zap manager output hiccups +# 50406-1320 - added channel_data to live_channels table for more flexibility +# also added Zap/IAX client check every 100 loop instead of only once +# 50509-1047 - added collection of server_performance data with SYSPERF flag +# 50621-1307 - modified to allow for SIP trunks +# 50810-1601 - Added database server variable definitions lookup +# 50823-1625 - Altered Debug vars and initial CVS/1.2 support for changed output +# 50824-1606 - Altered CVS/1.2 support for "show channels concise" output +# 50829-1134 - Added processor percentage usage to stat collection +# 51229-1355 - Added ability to take ! as delimited for 1.2 show channels concise +# 60117-1202 - Changed IAX2 client phone channel to reflect change to '-' iteration +# 60411-1032 - Fixed bug in test section that caused crash with ** in extension +# 60807-1605 - Changed to DBI +# 60808-1005 - changed to use /etc/astguiclient.conf for configs +# 60808-1500 - Fixed another bug in that caused crash with ** in extension +# 60814-1523 - SYSLOG and SYSPERF looked up from database, dynamic settings +# 60926-1601 - validate proper binutil locations for performance gathering +# 61130-1008 - defaults show_channels_format to 1 for non 1.0 version Asterisk +# 61227-1659 - added "core show channels concise" for Asterisk 1.4 compatibility +# 80111-1850 - fixed server_updater record missing bug +# + +$build = '80111-1850'; + +# constants +$SYSPERF=0; # system performance logging to MySQL server_performance table every 5 seconds +$SYSPERF_rec=0; # is dial-time recording turned on +$SYSLOG=0; # set to 1 to write log to a file +$DB=0; # Debug flag, set to 1 for debug messages WARNING LOTS OF OUTPUT!!! +$DBX=0; # Debug flag, set to 1 for debug messages WARNING LOTS OF OUTPUT!!! +$US='__'; +$AMP='@'; +$MT[0]=''; +$cpuUSERprev=0; +$cpuSYSTprev=0; +$cpuIDLEprev=0; + +# find proper locations of bin utils + +# cat +$bincat = "/usr/bin/cat"; +if (-e "/usr/local/bin/cat") + {$bincat = "/usr/local/bin/cat";} +else + { + if (-e "/bin/cat") + {$bincat = "/bin/cat";} + } + +# free +$binfree = "/usr/bin/free"; +if (-e "/usr/local/bin/free") + {$binfree = "/usr/local/bin/free";} +else + { + if (-e "/bin/free") + {$binfree = "/bin/free";} + } + +# ps +$binps = "/bin/ps"; +if (-e "/usr/local/bin/ps") + {$binps = "/usr/local/bin/ps";} +else + { + if (-e "/usr/bin/ps") + {$binps = "/usr/bin/ps";} + } + + +# DB table variables for testing + $parked_channels = 'parked_channels'; + $live_channels = 'live_channels'; + $live_sip_channels = 'live_sip_channels'; + $server_updater = 'server_updater'; +# $parked_channels = 'TEST_parked_channels'; +# $live_channels = 'TEST_live_channels'; +# $live_sip_channels = 'TEST_live_sip_channels'; +# $server_updater = 'TEST_server_updater'; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-sysperf] = system performance logging\n [-sysperfdebug] = system performance debug output\n [-debug] = verbose debug messages\n [-debugX] = Extra-verbose debug messages\n\n"; + exit; + } + else + { + if ($args =~ /-sysperf/i) + { + $SYSPERF=1; # System performance logging flag + } + if ($args =~ /-sysperfdebug/i) + { + $SYSPERFDB=1; # prints system performance data out to STDOUT + } + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /--debugX/i) + { + $DB=1; + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\nBUILD: $build\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +# print "no command line options set\n"; +} +### end parsing run-time options ### + + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + &get_time_now; + +if (!$UPLOGfile) {$UPLOGfile = "$PATHlogs/update.$year-$mon-$mday";} +if (!$VARDB_port) {$VARDB_port='3306';} + + $event_string='PROGRAM STARTED||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||'; + &event_logger; + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Net::Telnet (); +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + $event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|'; + &event_logger; + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context,asterisk_version,sys_perf_log,vd_server_logs FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +while ( my @aryA = $sthA->fetchrow_array ) + { + $DBtelnet_host = "$aryA[0]"; + $DBtelnet_port = "$aryA[1]"; + $DBASTmgrUSERNAME = "$aryA[2]"; + $DBASTmgrSECRET = "$aryA[3]"; + $DBASTmgrUSERNAMEupdate = "$aryA[4]"; + $DBASTmgrUSERNAMElisten = "$aryA[5]"; + $DBASTmgrUSERNAMEsend = "$aryA[6]"; + $DBmax_vicidial_trunks = "$aryA[7]"; + $DBanswer_transfer_agent= "$aryA[8]"; + $DBSERVER_GMT = "$aryA[9]"; + $DBext_context = "$aryA[10]"; + $DBasterisk_version = "$aryA[11]"; + $DBsys_perf_log = "$aryA[12]"; + $DBvd_server_logs = "$aryA[13]"; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBsys_perf_log =~ /Y/) {$SYSPERF = '1';} + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + $rec_count++; + } +$sthA->finish(); + + $show_channels_format = 1; + if ($AST_ver =~ /^1\.0/i) {$show_channels_format = 0;} + if ($AST_ver =~ /^1\.4/i) {$show_channels_format = 2;} + print STDERR "SHOW CHANNELS format: $show_channels_format\n"; + + +##### Check for a server_updater record, and if not present, insert one +$SUrec=0; +$stmtA = "SELECT count(*) FROM $server_updater where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +@aryA = $sthA->fetchrow_array; +$SUrec = $aryA[0]; +$sthA->finish(); + if($DB){print STDERR "\n|$SUrec|$stmtA|\n";} + +if ($SUrec < 1) + { + &get_time_now; + + $stmtU = "INSERT INTO $server_updater set server_ip='$server_ip', last_update='$now_date';"; + if($DB){print STDERR "\n|$stmtU|\n";} + $affected_rows = $dbhA->do($stmtU); + } + + +##### LOOK FOR ZAP CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR Zap clients assigned to this server:\n"; + $Zap_client_count=0; + $Zap_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'Zap' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + while ( my @aryA = $sthA->fetchrow_array() ) + { + print STDERR $aryA[0],"\n"; + $Zap_client_list .= "$aryA[0]|"; + $Zap_client_count++; + } + $sthA->finish(); + +##### LOOK FOR IAX2 CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR IAX2 clients assigned to this server:\n"; + $IAX2_client_count=0; + $IAX2_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'IAX2' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + while (my @aryA = $sthA->fetchrow_array() ) + { + print STDERR $aryA[0],"\n"; + $IAX2_client_list .= "$aryA[0]|"; + if ($aryA[0] !~ /\@/) + {$IAX2_client_list .= "$aryA[0]$AMP$aryA[0]|";} + else + { + $IAX_user = $aryA[0]; + $IAX_user =~ s/\@.*$//gi; + $IAX2_client_list .= "$IAX_user|"; + } + $IAX2_client_count++; + } + $sthA->finish(); + + +##### LOOK FOR SIP CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR SIP clients assigned to this server:\n"; + $SIP_client_count=0; + $SIP_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'SIP' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + while (@aryA = $sthA->fetchrow_array) + { + print STDERR $aryA[0],"\n"; + $SIP_client_list .= "$aryA[0]|"; + if ($aryA[0] !~ /\@/) + {$SIP_client_list .= "$aryA[0]$AMP$aryA[0]|";} + else + { + $SIP_user = $aryA[0]; + $SIP_user =~ s/\@.*$//gi; + $SIP_client_list .= "$SIP_user|"; + } + $SIP_client_count++; + } + $sthA->finish(); + + print STDERR "Zap Clients: $Zap_client_list\n"; + print STDERR "IAX2 Clients: $IAX2_client_list\n"; + print STDERR "SIP Clients: $SIP_client_list\n"; + +$one_day_interval = 12; # 2 hour loops for one day +while($one_day_interval > 0) +{ + + $event_string="STARTING NEW MANAGER TELNET CONNECTION||ATTEMPT|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + +if (!$telnet_port) {$telnet_port = '5038';} + + ### connect to asterisk manager through telnet + $t = new Net::Telnet (Port => $telnet_port, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '',); + #$fh = $t->dump_log("$telnetlog"); # uncomment for telnet log + if (length($ASTmgrUSERNAMEupdate) > 3) {$telnet_login = $ASTmgrUSERNAMEupdate;} + else {$telnet_login = $ASTmgrUSERNAME;} + $t->open("$telnet_host"); + $t->waitfor('/[01]\n$/'); # print login + $t->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); + $t->waitfor('/Authentication accepted/'); # waitfor auth accepted + + $event_string="STARTING NEW MANAGER TELNET CONNECTION|$telnet_login|CONFIRMED CONNECTION|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + + $endless_loop=5769999; # 30 days minutes at .45 seconds per loop + + while($endless_loop > 0) + { + + + @DBchannels=@MT; + @DBsips=@MT; + @list_channels=@MT; + @test_channels=@MT; + + &get_current_channels; + + &validate_parked_channels; + + + $t->buffer_empty; + if ($show_channels_format < 1) + { + @list_channels = $t->cmd(String => "Action: Command\nCommand: show channels\n\n", Prompt => '/--END COMMAND-.*/'); + } + if ($show_channels_format == 1) + { + @list_channels = $t->cmd(String => "Action: Command\nCommand: show channels concise\n\n", Prompt => '/--END COMMAND-.*/'); + } + if ($show_channels_format > 1) + { + @list_channels = $t->cmd(String => "Action: Command\nCommand: core show channels concise\n\n", Prompt => '/--END COMMAND-.*/'); + } + + ##### TEST CHANNELS ZAP/IAX2/Local TO SEE IF THERE WAS A LARGE HICCUP IN OUTPUT FROM PREVIOUS OUTPUT + @test_channels=@list_channels; + $test_zap_count=0; + $test_iax_count=0; + $test_local_count=0; + $test_sip_count=0; + $s=0; + foreach(@test_channels) + { + chomp($test_channels[$s]); + if($DBX){print "$s|$test_channels[$s]\n";} + $test_channels[$s] =~ s/Congestion\s+\(Empty\)/ SIP\/CONGEST/gi; + $test_channels[$s] =~ s/\(Outgoing Line\)|\(None\)/SIP\/ring/gi; + $test_channels[$s] =~ s/\(Empty\)/SIP\/internal/gi; + if (!$show_channels_format) + { + $test_channels[$s] =~ s/^\s*|\s*$//gi; + $test_channels[$s] =~ s/\(.*\)//gi; + } + else + { + $EXcount = 0; + $EXcount = @{[$test_channels[$s] =~ /\!/g]}; + if ($EXcount > 10) + { + @test_chan_12 = split(/\!/, $test_channels[$s]); + } + else + { + @test_chan_12 = split(/:/, $test_channels[$s]); + } + # @test_chan_12 = split(/:/, $test_channels[$s]); + if (length($test_chan_12[6])<2) {$test_chan_12[6] = 'SIP/ring';} + $test_channels[$s] = "$test_chan_12[0] $test_chan_12[6]"; + } + if ($test_channels[$s] =~ /^Zap|^IAX2|^SIP|^Local/) + { + if ($test_channels[$s] =~ /^(\S+)\s+.+\s+(\S+)$/) + { + $channel = $1; + $extension = $2; + if ($show_channels_format) + {$extension =~ s/^.*\(|\).*$//gi;} + $extension =~ s/^SIP\/|-\S+$//gi; + $extension =~ s/\|.*//gi; + if ($channel =~ /^SIP/) {$test_sip_count++;} + if ($channel =~ /^Local/) {$test_local_count++;} + if ($IAX2_client_count) + { + $channel_match=$channel; + $channel_match =~ s/\/\d+$|-\d+$//gi; + $channel_match =~ s/^IAX2\///gi; + $channel_match =~ s/\*/\\\*/gi; + if ($IAX2_client_list =~ /\|$channel_match\|/i) {$test_iax_count++;} + } + if ($Zap_client_count) + { + $channel_match=$channel; + $channel_match =~ s/^Zap\///gi; + $channel_match =~ s/\*/\\\*/gi; + if ($Zap_client_list =~ /\|$channel_match\|/i) {$test_zap_count++;} + } + } + } + $s++; + } + + + + # $DB_live_lines = ($#DBchannels + $#DBsips); + $DB_live_lines = ($channel_counter + $sip_counter); + if ( (!$DB_live_lines) or ($#list_channels < 2) ) + {$PERCENT_static = 0;} + else + { + $PERCENT_static = ( ($#list_channels / $DB_live_lines) * 100); + $PERCENT_static = sprintf("%6.2f", $PERCENT_static); + } + + if ( (!$test_zap_count) or ($zap_client_counter < 2) ) + {$PERCENT_ZC_static = 0;} + else + { + $PERCENT_ZC_static = ( ($test_zap_count / $zap_client_counter) * 100); + $PERCENT_ZC_static = sprintf("%6.2f", $PERCENT_ZC_static); + } + + if ( (!$test_iax_count) or ($iax_client_counter < 2) ) + {$PERCENT_IC_static = 0;} + else + { + $PERCENT_IC_static = ( ($test_iax_count / $iax_client_counter) * 100); + $PERCENT_IC_static = sprintf("%6.2f", $PERCENT_IC_static); + } + + if ( (!$test_local_count) or ($local_client_counter < 2) ) + {$PERCENT_LC_static = 0;} + else + { + $PERCENT_LC_static = ( ($test_local_count / $local_client_counter) * 100); + $PERCENT_LC_static = sprintf("%6.2f", $PERCENT_LC_static); + } + + if ( (!$test_sip_count) or ($sip_client_counter < 2) ) + {$PERCENT_SC_static = 0;} + else + { + $PERCENT_SC_static = ( ($test_sip_count / $sip_client_counter) * 100); + $PERCENT_SC_static = sprintf("%6.2f", $PERCENT_SC_static); + } + + if ($endless_loop =~ /0$/) + {print "-$now_date $PERCENT_static $#list_channels $#DBchannels:$channel_counter $#DBsips:$sip_counter $PERCENT_ZC_static|$test_zap_count:$zap_client_counter $PERCENT_IC_static|$test_iax_count:$iax_client_counter $PERCENT_LC_static|$test_local_count:$local_client_counter $PERCENT_SC_static|$test_sip_count:$sip_client_counter\n";} + + if ( ( ($PERCENT_static < 10) && ( ($channel_counter > 3) or ($sip_counter > 4) ) ) or + ( ($PERCENT_static < 20) && ( ($channel_counter > 10) or ($sip_counter > 10) ) ) or + ( ($PERCENT_static < 30) && ( ($channel_counter > 20) or ($sip_counter > 20) ) ) or + ( ($PERCENT_static < 40) && ( ($channel_counter > 30) or ($sip_counter > 30) ) ) or + ( ($PERCENT_static < 50) && ( ($channel_counter > 40) or ($sip_counter > 40) ) ) or + ( ($PERCENT_ZC_static < 20) && ( $zap_client_counter > 3 ) ) or + ( ($PERCENT_ZC_static < 40) && ( $zap_client_counter > 9 ) ) or + ( ($PERCENT_IC_static < 20) && ( $iax_client_counter > 3 ) ) or + ( ($PERCENT_IC_static < 40) && ( $iax_client_counter > 9 ) ) or + ( ($PERCENT_SC_static < 20) && ( $sip_client_counter > 3 ) ) or + ( ($PERCENT_SC_static < 40) && ( $sip_client_counter > 9 ) ) ) + { + $UD_bad_grab++; + $event_string="------ UPDATER BAD GRAB!!! UBGcount: $UD_bad_grab\n $PERCENT_static $#list_channels $#DBchannels:$channel_counter $#DBsips:$sip_counter $PERCENT_ZC_static|$test_zap_count:$zap_client_counter $PERCENT_IC_static|$test_iax_count:$iax_client_counter $PERCENT_LC_static|$test_local_count:$local_client_counter $PERCENT_SC_static|$test_sip_count:$sip_client_counter\n"; + print "$event_string\n"; + &event_logger; + if ($UD_bad_grab > 20) {$UD_bad_grab=0;} + } + else + { + $UD_bad_grab=0; + if ( ($endless_loop =~ /0$/) && ($SYSPERF) ) + { + $cpuUSERcent=0; $cpuSYSTcent=0; $cpuIDLEcent=0; + ### get processor usage seconds ### + # cpu 924841 211725 270473 6961811 + @cpuUSE = `$bincat /proc/stat`; + if ($cpuUSE[0] =~ /cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) + { + $cpuUSER = ($1 + $2); + $cpuSYST = $3; + $cpuIDLE = $4; + $cpuUSERdiff = ($cpuUSER - $cpuUSERprev); + $cpuSYSTdiff = ($cpuSYST - $cpuSYSTprev); + $cpuIDLEdiff = ($cpuIDLE - $cpuIDLEprev); + $cpuIDLEdiffTOTAL = (($cpuUSERdiff + $cpuSYSTdiff) + $cpuIDLEdiff); + if ($cpuIDLEdiffTOTAL > 0) + { + $cpuUSERcent = sprintf("%.0f", (($cpuUSERdiff / $cpuIDLEdiffTOTAL) * 100)); + $cpuSYSTcent = sprintf("%.0f", (($cpuSYSTdiff / $cpuIDLEdiffTOTAL) * 100)); + $cpuIDLEcent = sprintf("%.0f", (($cpuIDLEdiff / $cpuIDLEdiffTOTAL) * 100)); + } + $cpuUSERprev=$cpuUSER; + $cpuSYSTprev=$cpuSYST; + $cpuIDLEprev=$cpuIDLE; + } + + ### get system load ### + $serverLOAD = `$bincat /proc/loadavg`; + $serverLOAD =~ s/ .*//gi; + $serverLOAD =~ s/\D//gi; + + ### get memory usage ### + @GRABserverMEMORY = `$binfree -m -t`; + if ($GRABserverMEMORY[1] =~ /Mem:\s+(\d+)\s+(\d+)\s+(\d+)\s+/) + { + $MEMused = $2; + $MEMfree = $3; + } + ### get number of system processes ### + @GRABserverPROCESSES = `$binps -A --no-heading`; + $serverPROCESSES = $#GRABserverPROCESSES; + + if ($SYSPERF_rec) {$recording_count = ($test_local_count / 2)} + else {$recording_count=0;} + + if ($SYSPERFDB) + {print "$serverLOAD $MEMfree $MEMused $serverPROCESSES $#list_channels $cpuUSERcent $cpuSYSTcent $cpuIDLEcent\n";} + + $stmtA = "INSERT INTO server_performance (start_time,server_ip,sysload,freeram,usedram,processes,channels_total,trunks_total,clients_total,clients_zap,clients_iax,clients_local,clients_sip,live_recordings,cpu_user_percent,cpu_system_percent,cpu_idle_percent) values('$now_date','$server_ip','$serverLOAD','$MEMfree','$MEMused','$serverPROCESSES','$#list_channels','$channel_counter','$sip_counter','$test_zap_count','$test_iax_count','$test_local_count','$test_sip_count','$recording_count','$cpuUSERcent','$cpuSYSTcent','$cpuIDLEcent')"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA) or die "Couldn't execute query: |$stmtA|\n"; + } + } + + if ($endless_loop =~ /00$/) + { + ##### LOOK FOR ZAP CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR Zap clients assigned to this server:\n"; + $Zap_client_count=0; + $Zap_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'Zap' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + while ( my @aryA = $sthA->fetchrow_array() ) + { + print STDERR $aryA[0],"\n"; + $Zap_client_list .= "$aryA[0]|"; + $Zap_client_count++; + } + $sthA->finish(); + + ##### LOOK FOR IAX2 CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR IAX2 clients assigned to this server:\n"; + $IAX2_client_count=0; + $IAX2_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'IAX2' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + while (my @aryA = $sthA->fetchrow_array() ) + { + print STDERR $aryA[0],"\n"; + $IAX2_client_list .= "$aryA[0]|"; + if ($aryA[0] !~ /\@/) + {$IAX2_client_list .= "$aryA[0]$AMP$aryA[0]|";} + else + { + $IAX_user = $aryA[0]; + $IAX_user =~ s/\@.*$//gi; + $IAX2_client_list .= "$IAX_user|"; + } + $IAX2_client_count++; + } + $sthA->finish(); + + ##### LOOK FOR SIP CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR SIP clients assigned to this server:\n"; + $SIP_client_count=0; + $SIP_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'SIP' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + while ( my @aryA = $sthA->fetchrow_array() ) + { + ; + print STDERR $aryA[0],"\n"; + $SIP_client_list .= "$aryA[0]|"; + if ($aryA[0] !~ /\@/) + {$SIP_client_list .= "$aryA[0]$AMP$aryA[0]|";} + else + { + $SIP_user = $aryA[0]; + $SIP_user =~ s/\@.*$//gi; + $SIP_client_list .= "$SIP_user|"; + } + $SIP_client_count++; + } + $sthA->finish(); + + print STDERR "Zap Clients: $Zap_client_list\n"; + print STDERR "IAX2 Clients: $IAX2_client_list\n"; + print STDERR "SIP Clients: $SIP_client_list\n"; + ### Grab Server values from the database + $stmtA = "SELECT sys_perf_log,vd_server_logs FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + while ( my @aryA = $sthA->fetchrow_array() ) + { + $DBsys_perf_log = "$aryA[0]"; + $DBvd_server_logs = "$aryA[1]"; + if ($DBsys_perf_log =~ /Y/) {$SYSPERF = '1';} + else {$SYSPERF = '0';} + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + } + $sthA->finish(); + if ($SYSPERFDB) + {print "SYSPERF RELOAD: $DBsys_perf_log:$SYSPERF|$DBvd_server_logs:$SYSLOG\n";} + } + + @list_chan_12=@MT; + $EXcount = 0; + $EXcount = @{[$list_channels[2] =~ /\!/g]}; + if ($EXcount > 10) + { + @list_chan_12 = split(/\!/, $list_channels[2]); + } + else + { + @list_chan_12 = split(/:/, $list_channels[2]); + } + if( ($DB) && ($show_channels_format) ) {print "concise: $#list_chan_12\n";} + if ( ( ( ($list_channels[1] =~ /State Appl\./) or ($list_channels[2] =~ /State Appl\.|Application\(Data\)/) or ($list_channels[3] =~ /State Appl\.|Application\(Data\)/) ) || ($#list_chan_12 > 8) ) && (!$UD_bad_grab) ) + { + + $c=0; + if($DB){print "lines: $#list_channels\n";} + if($DB){print "DBchn: $#DBchannels\n";} + if($DB){print "DBsip: $#DBsips\n";} + foreach(@list_channels) + { + # $DBchannels =~ s/^\|//g; + + chomp($list_channels[$c]); + if( ($DB) or ($UD_bad_grab) ){print "-|$c|$list_channels[$c]|\n";} + $list_channels[$c] =~ s/Congestion\s+\(Empty\)/ SIP\/CONGEST/gi; + $list_channels[$c] =~ s/\(Outgoing Line\)|\(None\)/SIP\/ring/gi; + $list_channels[$c] =~ s/\(Empty\)/SIP\/internal/gi; + if (!$show_channels_format) + { + $list_channels[$c] =~ s/^\s*|\s*$//gi; + $list_channels[$c] =~ s/\(.*\)//gi; + } + else + { + @list_chan_12=@MT; + if ($EXcount > 10) + { + @list_chan_12 = split(/\!/, $list_channels[$c]); + } + else + { + @list_chan_12 = split(/:/, $list_channels[$c]); + } + if ($DBX) {print "EXcount: $EXcount\n";} + if (length($list_chan_12[6])<2) {$list_chan_12[6] = 'SIP/ring';} + $list_channels[$c] = "$list_chan_12[0] $list_chan_12[6]"; + } + $list_SIP[$c] = $list_channels[$c]; + if( ($DB) or ($UD_bad_grab) ){print "+|$c|$list_channels[$c]|\n\n";} + + ########## PARSE EACH LINE TO DETERMINE WHETHER IT IS TRUNK OR CLIENT AND PUT IN APPROPRIATE TABLE + if ($list_channels[$c] =~ /^Zap|^IAX2|^SIP|^Local/) + { + if ($list_channels[$c] =~ /^(\S+)\s+.+\s+(\S+)$/) + { + $line_type = ''; + $channel = $1; + $extension = $2; + $channel_data = $extension; + if ($show_channels_format) + { + $extension =~ s/^.*\(|\).*$//gi; + #### new data in 1.2 for future use + # SIP/cc160-7b91:default:917274514920:3:Up:Dial:Zap/g2/17274514920|30|o:cc160::3:9:Zap/25-1 + # Zap/30-1:demo:010*010*010*012*8600091:1:Up:Dial:IAX2/TESTast2:test@10.10.10.12:4569/8600051|25|o:::3:123:IAX2/TESTast2-29 + # Zap/9-1:demo:990009*CL_UMGCOF_L**6317906**9545541833*13678*:2:Up:Dial:Zap/r3/90009*CL_UMGCOF_L**6317906**9545541833*13678*|120|o:::3:334:Zap/82-1 + # $channel = $list_chan_12[0]; + # $channel_data = $list_chan_12[0]; + # $context = $list_chan_12[1]; + # $dialed = $list_chan_12[2]; + # $priority = $list_chan_12[3]; + # $state = $list_chan_12[4]; + # $extension = $list_chan_12[6]; + # $callerid = $list_chan_12[7]; + # $duration = $list_chan_12[10]; + # $bridged = $list_chan_12[11]; + } + $extension =~ s/^SIP\/|-\S+$//gi; + $extension =~ s/\|.*//gi; + $QRYchannel = "$channel$US$extension"; + + if( ($DB) or ($UD_bad_grab) ){print "channel: |$channel|\n";} + if( ($DB) or ($UD_bad_grab) ){print "extension: |$extension|\n";} + if( ($DB) or ($UD_bad_grab) ){print "QRYchannel:|$QRYchannel|\n";} + + if ($channel =~ /^SIP|^Zap|^IAX2/) {$line_type = 'TRUNK';} + if ($channel =~ /^Local/) {$line_type = 'CLIENT';} + if ($IAX2_client_count) + { + $channel_match=$channel; + $channel_match =~ s/\/\d+$|-\d+$//gi; + $channel_match =~ s/^IAX2\///gi; + $channel_match =~ s/\*/\\\*/gi; + # print "checking for IAX2 client: |$channel_match|\n"; + if ($IAX2_client_list =~ /\|$channel_match\|/i) {$line_type = 'CLIENT';} + } + if ($Zap_client_count) + { + $channel_match=$channel; + $channel_match =~ s/^Zap\///gi; + $channel_match =~ s/\*/\\\*/gi; + # print "checking for Zap client: |$channel_match|\n"; + if ($Zap_client_list =~ /\|$channel_match\|/i) {$line_type = 'CLIENT';} + } + if ($SIP_client_count) + { + $channel_match=$channel; + $channel_match =~ s/-\S+$//gi; + $channel_match =~ s/^SIP\///gi; + $channel_match =~ s/\*/\\\*/gi; + # print "checking for SIP client: |$channel_match|\n"; + if ($SIP_client_list =~ /\|$channel_match\|/i) {$line_type = 'CLIENT';} + } + + if ($line_type eq 'TRUNK') + { + if( ($DB) or ($UD_bad_grab) ){print "current channels: $#DBchannels\n";} + + $k=0; + $channel_in_DB=0; + foreach(@DBchannels) + { + if ( ($DBchannels[$k] eq "$QRYchannel") && (!$channel_in_DB) ) + { + $DBchannels[$k] = ''; + $channel_in_DB++; + } + if( ($DB) or ($UD_bad_grab) ){print "DB $k|$DBchannels[$k]| |";} + $k++; + } + + if ( (!$channel_in_DB) && (length($QRYchannel)>3) ) + { + $stmtA = "INSERT INTO $live_channels (channel,server_ip,extension,channel_data) values('$channel','$server_ip','$extension','$channel_data')"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA) or die "Couldn't execute query: |$stmtA|\n"; + } + } + + if ($line_type eq 'CLIENT') + { + if( ($DB) or ($UD_bad_grab) ){print "current sips: $#DBsips\n";} + + $k=0; + $sipchan_in_DB=0; + foreach(@DBsips) + { + if ( ($DBsips[$k] eq "$QRYchannel") && (!$sipchan_in_DB) ) + { + $DBsips[$k] = ''; + $sipchan_in_DB++; + } + if( ($DB) or ($UD_bad_grab) ){print "DB $k|$DBsips[$k]| |";} + $k++; + } + + if ( (!$sipchan_in_DB) && (length($QRYchannel)>3) ) + { + $stmtA = "INSERT INTO $live_sip_channels (channel,server_ip,extension,channel_data) values('$channel','$server_ip','$extension','$channel_data')"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA) or die "Couldn't execute query: |$stmtA|\n"; + } + } + } + } + + $c++; + } + if($DB){print "COUNT: $c|$#list_channels|$endless_loop\n";} + + + if ($#DBchannels >= 0) + { + $d=0; + foreach(@DBchannels) + { + if (length($DBchannels[$d])>4) + { + ($DELchannel, $DELextension) = split(/\_\_/, $DBchannels[$d]); + $stmtB = "DELETE FROM $live_channels where server_ip='$server_ip' and channel='$DELchannel' and extension='$DELextension' limit 1"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtB|\n";} + $affected_rows = $dbhA->do($stmtB); + } + $d++; + } + } + + if ($#DBsips >= 0) + { + $d=0; + foreach(@DBsips) + { + if (length($DBsips[$d])>4) + { + ($DELchannel, $DELextension) = split(/\_\_/, $DBsips[$d]); + $stmtB = "DELETE FROM $live_sip_channels where server_ip='$server_ip' and channel='$DELchannel' and extension='$DELextension' limit 1"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtB|\n";} + $affected_rows = $dbhA->do($stmtB); + } + $d++; + } + } + + ### sleep for 45 hundredths of a second + usleep(1*450*1000); + + $endless_loop--; + if($DB){print STDERR "\nloop counter: |$endless_loop|\n";} + + ### putting a blank file called "update.kill" in a directory will automatically safely kill this program + if (-e "$PATHhome/update.kill") + { + unlink("$PATHhome/update.kill"); + $endless_loop=0; + $one_day_interval=0; + print "\nPROCESS KILLED MANUALLY... EXITING\n\n" + } + + $bad_grabber_counter=0; + $no_channels_12_counter=0; + } + + else + { + if ( ($list_channels[1] !~ /Privilege: Command/) && ($show_channels_format) ) + { + $bad_grabber_counter++; + if($DB){print STDERR "\nbad grab, trying again\n";} + ### sleep for 20 hundredths of a second + usleep(1*200*1000); + + $event_string="BAD GRAB TRYING AGAIN|BAD_GRABS: $bad_grabber_counter|$endless_loop|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + + if ($bad_grabber_counter > 100) + { + $endless_loop=0; + $event_string="TOO MANY BAD GRABS, STARTING NEW CONNECTION|BAD_GRABS: $bad_grabber_counter|$endless_loop|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + $bad_grabber_counter=0; + } + } + else + { + $no_channels_12_counter++; + $event_string="NO CHANNELS HERE|COUNTER: $no_channels_12_counter|$endless_loop|ONE DAY INTERVAL:$one_day_interval|$list_channels[1]"; + &event_logger; + + if($DBX) {print "*|EMPTY CHANNELS: $no_channels_12_counter|$#list_channels|$list_channels[1]";} + + ### sleep for 40 hundredths of a second + usleep(1*400*1000); + if ($no_channels_12_counter == 3) + { + ### there are no channels, delete all from live_channels, live_sip_channels + $event_string="NO CHANNELS HERE|COUNTER: $no_channels_12_counter|$endless_loop|ONE DAY INTERVAL:$one_day_interval|$list_channels[1]"; + &event_logger; + $stmtB = "DELETE FROM $live_sip_channels where server_ip='$server_ip'"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtB|\n";} + $affected_rows = $dbhA->do($stmtB); + $stmtB = "DELETE FROM $live_channels where server_ip='$server_ip'"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtB|\n";} + $affected_rows = $dbhA->do($stmtB); + } + + } + } + + + } + + + if($DB){print "DONE... Exiting... Goodbye... See you later... Not really, initiating next loop...\n";} + + $event_string='HANGING UP|'; + &event_logger; + + @hangup = $t->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); + + $ok = $t->close; + + $one_day_interval--; + +} + + $event_string='CLOSING DB CONNECTION|'; + &event_logger; + + +$dbhA->disconnect(); + + +if($DB){print "DONE... Exiting... Goodbye... See you later... Really I mean it this time\n";} + + +exit; + + + + + + + +####################################################################### +# This subroutine simply grabs all active channel/extension combinations from +# the asterisk MySQL database to be compared to the Asterisk Manager results +####################################################################### +sub get_current_channels +{ +$sip_counter=0; +$zap_client_counter=0; +$iax_client_counter=0; +$local_client_counter=0; +$sip_client_counter=0; + + if($DB){print STDERR "\n|SELECT channel,extension FROM $live_channels where server_ip = '$server_ip'|\n";} + +$stmtA = "SELECT channel,extension FROM $live_channels where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$channel_counter=0; +while ( my @aryA = $sthA->fetchrow_array() ) + { + if($DB){print STDERR $aryA[0],"|", $aryA[1],"\n";} + $DBchannels[$channel_counter] = "$aryA[0]$US$aryA[1]"; + $channel_counter++; + } +$sthA->finish(); + +$stmtA = "SELECT channel,extension FROM $live_sip_channels where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count_sip=0; +while ( my @aryA = $sthA->fetchrow_array() ) + { + if($DB){print STDERR $aryA[0],"|", $aryA[1],"\n";} + $DBsips[$sip_counter] = "$aryA[0]$US$aryA[1]"; + + if ($aryA[0] =~ /^Zap/) {$zap_client_counter++;} + if ($aryA[0] =~ /^IAX/) {$iax_client_counter++;} + if ($aryA[0] =~ /^Local/) {$local_client_counter++;} + if ($aryA[0] =~ /^SIP/) {$sip_client_counter++;} + $sip_counter++; + $rec_count_sip++; + } +$sthA->finish(); + + &get_time_now; + +$stmtU = "UPDATE $server_updater set last_update='$now_date' where server_ip='$server_ip'"; + if($DB){print STDERR "\n|$stmtU|\n";} +$affected_rows = $dbhA->do($stmtU); + +} + + + + + +####################################################################### +# The purpose of this subroutine is to make sure that the calls that are +# listed as parked in the parked_channels table are in fact live (to make +# sure the caller has not hung up) and if the channel is not live to delete +# the parked_channels entry for that specific parked channel entry +# +# Yes it does use two DB connections all by itself, I just did that for speed +# and ease of programming to be backward compatible with MySQL < 4.1 or else +# I would have used a delete with subselect and saved all of this bloated code +####################################################################### +sub validate_parked_channels +{ + +if (!$run_validate_parked_channels_now) + { + $parked_counter=0; + @ARchannel=@MT; @ARextension=@MT; @ARparked_time=@MT; @ARparked_time_UNIX=@MT; + $stmtA = "SELECT channel,extension,parked_time,UNIX_TIMESTAMP(parked_time) FROM $parked_channels where server_ip = '$server_ip' order by channel desc, parked_time desc;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $rec_count=0; + while ( my @aryA = $sthA->fetchrow_array() ) + { + $PQchannel = $aryA[0]; + $PQextension = $aryA[1]; + $PQparked_time = $aryA[2]; + $PQparked_time_UNIX = $aryA[3]; + if($DB){print STDERR "\n|$PQchannel|$PQextension|$PQparked_time|$PQparked_time_UNIX|\n";} + + $dbhC = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + $AR=0; + $record_deleted=0; + foreach(@ARchannel) + { + if (@ARchannel[$AR] eq "$PQchannel") + { + if (@ARparked_time_UNIX[$AR] > $PQparked_time_UNIX) + { + if($DBX){print "Duplicate parked channel delete: |$PQchannel|$PQparked_time|\n";} + $stmtPQ = "DELETE FROM $parked_channels where server_ip='$server_ip' and channel='$PQchannel' and extension='$PQextension' and parked_time='$PQparked_time' limit 1"; + if($DB){print STDERR "\n|$stmtPQ|$$DEL_chan_park_counter|$DEL_chan_park_counter|\n\n";} + $affected_rows = $dbhC->do($stmtPQ); + + $DEL_chan_park_counter = "DEL$PQchannel$PQextension"; + $$DEL_chan_park_counter=0; + $record_deleted++; + } + + } + + $AR++; + } + + + + if (!$record_deleted) + { + $ARchannel[$rec_count] = $aryA[0]; + $ARextension[$rec_count] = $aryA[1]; + $ARparked_time[$rec_count] = $aryA[2]; + $ARparked_time_UNIX[$rec_count] = $aryA[3]; + + + $dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + + $event_string='LOGGED INTO MYSQL SERVER ON 2 CONNECTIONS TO VALIDATE PARKED CALLS|'; + &event_logger; + + $stmtB = "SELECT count(*) FROM $live_channels where server_ip='$server_ip' and channel='$PQchannel' and extension='$PQextension';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $rec_countB = 0; + while ( my @aryB = $sthB->fetchrow_array() ) + { + $PQcount = $aryB[0]; + if($DB){print STDERR "\n|$PQcount|\n";} + + $rec_countB++; + } + $sthB->finish(); + + if ($PQcount < 1) + { + $DEL_chan_park_counter = "DEL$PQchannel$PQextension"; + $$DEL_chan_park_counter++; + if($DBX){print STDERR "Parked counter down|$$DEL_chan_park_counter|$DEL_chan_park_counter|\n";} + + ### if the parked channel doesn't exist 6 times then delete it from table + if ($$DEL_chan_park_counter > 5) + { + if($DBX){print " parked channel delete: |$PQchannel|$PQparked_time|\n";} + $stmtPQ = "DELETE FROM $parked_channels where server_ip='$server_ip' and channel='$PQchannel' and extension='$PQextension' limit 1"; + if($DB){print STDERR "\n|$stmtPQ|$$DEL_chan_park_counter|$DEL_chan_park_counter|\n\n";} + $affected_rows = $dbhC->do($stmtPQ); + + $ARchannel[$rec_count] = ''; + $ARextension[$rec_count] = ''; + $ARparked_time[$rec_count] = ''; + $ARparked_time_UNIX[$rec_count] = ''; + $$DEL_chan_park_counter=0; + } + } + else + { + $DEL_chan_park_counter = "DEL$PQchannel$PQextension"; + $$DEL_chan_park_counter=0; + } + + + + $event_string='CLOSING MYSQL CONNECTIONS OPENED TO VALIDATE PARKED CALLS|'; + &event_logger; + + $dbhB->disconnect(); + + } + + $dbhC->disconnect(); + + $parked_counter++; + $rec_count++; + } + + $sthA->finish(); + + $run_validate_parked_channels_now=5; # set to run every five times the subroutine runs + } + +$run_validate_parked_channels_now--; +} + + + + + +################################################################################ +##### get the current date and time and epoch for logging call lengths and datetimes +sub get_time_now +{ +($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"; +} + + + + + +################################################################################ +##### open the log file for writing ### +sub event_logger +{ +if ($SYSLOG) + { + open(Lout, ">>$UPLOGfile") + || die "Can't open $UPLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } +$event_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/experimental/FastAGI_log_multi_server.pl b/agc_2-X/branches/agc_2.2.0/experimental/FastAGI_log_multi_server.pl new file mode 100644 index 00000000..0f3068fb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/experimental/FastAGI_log_multi_server.pl @@ -0,0 +1,1333 @@ +#!/usr/bin/perl +# +# FastAGI_log_multi_server.pl version 2.2.0 *DBI-version* +# +# Experimental Deamon using perl Net::Server that runs as FastAGI to reduce load +# replaces the following AGI scripts: +# - call_log.agi +# - call_logCID.agi +# - VD_hangup.agi +# +# This script needs to be running all of the time for AGI requests to work +# +# You need to put lines similar to those below in your extensions.conf file if the FastAGI is running on the same server as Asterisk: +# +# ;outbound dialing: +# exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +# +# ;inbound calls: +# exten => 101,1,AGI(agi://127.0.0.1:4577/call_log) +# or +# exten => 101,1,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME}) +# +# ;all hangups: +# exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) +# +# +# If the FastAGI server will be handling multiple Asterisk servers you need to put the following in each Asterisk servers extensions.conf, +# replacing "10.10.10.15" with ip address of the FastAGI server: +# +# ;outbound dialing: +# exten => _91NXXNXXXXXX,1,AGI(agi://10.10.10.15:4577/call_log) +# +# ;inbound calls: +# exten => 101,1,AGI(agi://10.10.10.15:4577/call_log) +# or +# exten => 101,1,AGI(agi://10.10.10.15:4577/call_log--fullCID--${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME}) +# +# ;all hangups: +# exten => h,1,DeadAGI(agi://10.10.10.15:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) +# +# Copyright (C) 2009 Vicidial Group info@vicidial.com LICENSE: AGPLv2 +# +# CHANGELOG: +# 61010-1007 - mattf - First test build +# 70116-1619 - mattf - Added Auto Alt Dial code +# 70215-1258 - mattf - Added queue_log entry when deleting vac record +# 70808-1425 - mattf - Moved VD_hangup section to the call_log end stage to improve efficiency +# 71030-2039 - mattf - Added priority to hopper insertions +# 80224-0040 - mattf - Fixed bugs in vicidial_log updates +# 80430-0907 - mattf - Added term_reason to vicidial_log and vicidial_closer_log +# 80507-1138 - mattf - Fixed vicidial_closer_log CALLER hangups +# 80510-0414 - mattf - Fixed crossover logging bugs +# 80510-2058 - mattf - Fixed status override bug +# 80525-1040 - mattf - Added IVR vac status compatibility for inbound calls +# 80830-0035 - mattf - Added auto alt dialing for EXTERNAL leads for each lead +# 80909-0843 - mattf - Added support for campaign-speccific DNC lists +# 81021-0306 - mattf - Added Local channel logging support and while-to-if changes +# 81026-1247 - mattf - Changed to allow for better remote agent calling +# 81029-0522 - mattf - Changed to disallow queue_log logging of IVR calls +# 90504-1712 - mikec - Added support for multi server logging. + + +### defaults for PreFork +$VARfastagi_log_min_servers = '3'; +$VARfastagi_log_max_servers = '16'; +$VARfastagi_log_min_spare_servers = '2'; +$VARfastagi_log_max_spare_servers = '8'; +$VARfastagi_log_max_requests = '1000'; +$VARfastagi_log_checkfordead = '30'; +$VARfastagi_log_checkforwait = '60'; + +### default path to astguiclient configuration file: ### +$PATHconf = '/etc/astguiclient.conf'; + +### open the config file and parse it. ### +open(CONF, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(CONF); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ($line =~ /^PATHlogs/) + { + $PATHlogs = $line; + $PATHlogs =~ s/.*=//gi; + } + if ($line =~ /^VARfastagi_log_min_servers/) + { + $VARfastagi_log_min_servers = $line; + $VARfastagi_log_min_servers =~ s/.*=//gi; + } + if ($line =~ /^VARfastagi_log_max_servers/) + { + $VARfastagi_log_max_servers = $line; + $VARfastagi_log_max_servers =~ s/.*=//gi; + } + if ($line =~ /^VARfastagi_log_min_spare_servers/) + { + $VARfastagi_log_min_spare_servers = $line; + $VARfastagi_log_min_spare_servers =~ s/.*=//gi; + } + if ($line =~ /^VARfastagi_log_max_spare_servers/) + { + $VARfastagi_log_max_spare_servers = $line; + $VARfastagi_log_max_spare_servers =~ s/.*=//gi; + } + if ($line =~ /^VARfastagi_log_max_requests/) + { + $VARfastagi_log_max_requests = $line; + $VARfastagi_log_max_requests =~ s/.*=//gi; + } + if ($line =~ /^VARfastagi_log_checkfordead/) + { + $VARfastagi_log_checkfordead = $line; + $VARfastagi_log_checkfordead =~ s/.*=//gi; + } + if ($line =~ /^VARfastagi_log_checkforwait/) + { + $VARfastagi_log_checkforwait = $line; + $VARfastagi_log_checkforwait =~ s/.*=//gi; + } + if ($line =~ /^VARserver_ip/) + { + $VARserver_ip = $line; + $VARserver_ip =~ s/.*=//gi; + } + if ($line =~ /^VARDB_server/) + { + $VARDB_server = $line; + $VARDB_server =~ s/.*=//gi; + } + if ($line =~ /^VARDB_database/) + { + $VARDB_database = $line; + $VARDB_database =~ s/.*=//gi; + } + if ($line =~ /^VARDB_user/) + { + $VARDB_user = $line; + $VARDB_user =~ s/.*=//gi; + } + if ($line =~ /^VARDB_pass/) + { + $VARDB_pass = $line; + $VARDB_pass =~ s/.*=//gi; + } + if ($line =~ /^VARDB_port/) + { + $VARDB_port = $line; + $VARDB_port =~ s/.*=//gi; + } + $i++; + } + +($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";} + +if (!$VARDB_port) {$VARDB_port='3306';} + +$SERVERLOG = 'N'; +$log_level = '0'; + +use DBI; +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtB = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; +$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; +$sthB->execute or die "executing: $stmtB ", $dbhB->errstr; +$sthBrows=$sthB->rows; +$rec_count=0; +while ($sthBrows > $rec_count) + { + @aryB = $sthB->fetchrow_array; + $SERVERLOG = "$aryB[0]"; + $rec_count++; + } +$sthB->finish(); +$dbhB->disconnect(); + +if ($SERVERLOG =~ /Y/) + { + $childLOGfile = "$PATHlogs/FastAGIchildLOG.$year-$mon-$mday"; + $log_level = "4"; + print "SERVER LOGGING ON: LEVEL-$log_level FILE-$childLOGfile\n"; + } + +package VDfastAGI; + +use Net::Server; +use Asterisk::AGI; +use vars qw(@ISA); +use Net::Server::PreFork; # any personality will do +@ISA = qw(Net::Server::PreFork); + + + + +sub process_request { + my $self = shift; + + $process = 'begin'; + $script = 'VDfastAGI'; + ########## Get current time, parse configs, get logging preferences ########## + ($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"; + + + ### default path to astguiclient configuration file: ### + $PATHconf = '/etc/astguiclient.conf'; + + ### open and parse the config file ### + open(CONF, "$PATHconf") || die "can't open $PATHconf: $!\n"; + @conf = ; + close(CONF); + $i=0; + foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ($line =~ /^PATHhome/) + { + $PATHhome = $line; + $PATHhome =~ s/.*=//gi; + } + if ($line =~ /^PATHlogs/) + { + $PATHlogs = $line; + $PATHlogs =~ s/.*=//gi; + } + if ($line =~ /^PATHagi/) + { + $PATHagi = $line; + $PATHagi =~ s/.*=//gi; + } + if ($line =~ /^PATHweb/) + { + $PATHweb = $line; + $PATHweb =~ s/.*=//gi; + } + if ($line =~ /^PATHsounds/) + { + $PATHsounds = $line; + $PATHsounds =~ s/.*=//gi; + } + if ($line =~ /^PATHmonitor/) + { + $PATHmonitor = $line; + $PATHmonitor =~ s/.*=//gi; + } + if ($line =~ /^VARserver_ip/) + { + $VARserver_ip = $line; + $VARserver_ip =~ s/.*=//gi; + } + if ($line =~ /^VARDB_server/) + { + $VARDB_server = $line; + $VARDB_server =~ s/.*=//gi; + } + if ($line =~ /^VARDB_database/) + { + $VARDB_database = $line; + $VARDB_database =~ s/.*=//gi; + } + if ($line =~ /^VARDB_user/) + { + $VARDB_user = $line; + $VARDB_user =~ s/.*=//gi; + } + if ($line =~ /^VARDB_pass/) + { + $VARDB_pass = $line; + $VARDB_pass =~ s/.*=//gi; + } + if ($line =~ /^VARDB_port/) + { + $VARDB_port = $line; + $VARDB_port =~ s/.*=//gi; + } + $i++; + } + + if (!$VARDB_port) {$VARDB_port='3306';} + if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/FASTagiout.$year-$mon-$mday";} + + $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + ### Grab Server values from the database + $stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } + $sthA->finish(); + + ### get the socket connection to the client ### + my $socket = $self->{server}->{client}; + + ### ask the socket for the clients ip address ### + my $ast_server_ip = $socket->peerhost(); + + ### if client is connecting from localhost ### + ### use the ip address in the config file ### + if ( $ast_server_ip eq "127.0.0.1" ) + { + $ast_server_ip = $VARserver_ip; + } + + ### start the log if we are logging ### + if ($AGILOG) + { + $agi_string = "+++++++++++++++++ FastAGI Start ++++++++++++++++++++++++++++++++++++++++"; + &agi_output; + $agi_string = "Connection accepted from $ast_server_ip"; + &agi_output; + } + + + + ### begin parsing run-time options ### + if (length($ARGV[0])>1) + { + if ($AGILOG) + { + $agi_string = "Perl Environment Dump:"; + &agi_output; + } + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) + { + $agi_string = "$i|$ARGV[$i]"; + &agi_output; + } + $i++; + } + } + $HVcauses=0; + $fullCID=0; + $callerid=''; + $calleridname=''; + $|=1; + while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_request\:\s+(.*)$/) {$request = $1;} + if ( ($request =~ /--fullCID--/i) && (!$fullCID) ) + { + $fullCID=1; + @CID = split(/-----/, $request); + $callerid = $CID[2]; + $calleridname = $CID[3]; + $agi_string = "URL fullCID: |$callerid|$calleridname|$request|"; + &agi_output; + } + if ( ($request =~ /--HVcauses--/i) && (!$HVcauses) ) + { + $HVcauses=1; + @ARGV_vars = split(/-----/, $request); + $PRI = $ARGV_vars[0]; + $PRI =~ s/.*--HVcauses--//gi; + $DEBUG = $ARGV_vars[1]; + $hangup_cause = $ARGV_vars[2]; + $dialstatus = $ARGV_vars[3]; + $dial_time = $ARGV_vars[4]; + $ring_time = $ARGV_vars[5]; + $agi_string = "URL HVcauses: |$PRI|$DEBUG|$hangup_cause|$dialstatus|$dial_time|$ring_time|"; + &agi_output; + } + if (!$fullCID) # if no fullCID sent + { + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( $calleridname =~ /\"/) {$calleridname =~ s/\"//gi;} + if ( + ( + (length($calleridname)>5) && + ( + (!$callerid) or + ($callerid =~ /unknown|private|00000000/i) or + ($callerid =~ /5551212/) + ) + ) or + ( + (length($calleridname)>17) && + ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) + ) + ) + {$callerid = $calleridname;} + + ### allow for ANI being sent with the DNIS "*3125551212*9999*" + if ($extension =~ /^\*\d\d\d\d\d\d\d\d\d\d\*/) + { + $callerid = $extension; + $callerid =~ s/\*\d\d\d\d\*$//gi; + $callerid =~ s/^\*//gi; + $extension =~ s/^\*\d\d\d\d\d\d\d\d\d\d\*//gi; + $extension =~ s/\*$//gi; + } + $calleridname = $callerid; + } + } + + if ($AGILOG) + { + $agi_string = "AGI Environment Dump:"; + &agi_output; + } + + foreach $i (sort keys %AGI) + { + if ($AGILOG) + { + $agi_string = " -- $i = $AGI{$i}"; + &agi_output; + } + } + + + if ($AGILOG) + { + $agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; + &agi_output; + } + + if ( ($extension =~ /h/i) && (length($extension) < 3) ) {$stage = 'END';} + else {$stage = 'START';} + + $process = $request; + $process =~ s/agi:\/\///gi; + $process =~ s/.*\/|--.*//gi; + if ($AGILOG) + { + $agi_string = "Process to run: |$request|$process|$stage|"; + &agi_output; + } + + + ################################################################### + ##### START call_log process ###################################### + ################################################################### + if ($process =~ /^call_log/) + { + ### call start stage + if ($stage =~ /START/) + { + $channel_group=''; + + if ($AGILOG) {$agi_string = "+++++ CALL LOG START : $now_date"; &agi_output;} + + if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} + if ($channel =~ /^IAX2/) {$channel =~ s/\/\d+$//gi;} + if ($channel =~ /^Zap\//) + { + $channel_line = $channel; + $channel_line =~ s/^Zap\///gi; + + $stmtA = "SELECT count(*) FROM phones where server_ip='$ast_server_ip' and extension='$channel_line' and protocol='Zap';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + $is_client_phone = "$aryA[0]"; + $sthA->finish(); + + if ($is_client_phone < 1) + { + $channel_group = 'Zap Trunk Line'; + $number_dialed = $extension; + } + else + { + $channel_group = 'Zap Client Phone'; + } + if ($AGILOG) {$agi_string = $channel_group . ": $aryA[0]|$channel_line|"; &agi_output;} + } + if ($channel =~ /^Local\//) + { + $channel_line = $channel; + $channel_line =~ s/^Local\/|\@.*//gi; + + $stmtA = "SELECT count(*) FROM phones where server_ip='$ast_server_ip' and dialplan_number='$channel_line' and protocol='EXTERNAL';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + $is_client_phone = "$aryA[0]"; + $sthA->finish(); + + if ($is_client_phone < 1) + { + $channel_group = 'Local Channel Line'; + $number_dialed = $extension; + } + else + { + $channel_group = 'EXTERNAL Client Phone'; + } + if ($AGILOG) {$agi_string = $channel_group . ": $aryA[0]|$channel_line|"; &agi_output;} + } + ### 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/) || ( ($is_client_phone > 0) && (length($channel_group) < 1) ) ) + { + if ( ($extension =~ /^901144/) && (length($extension)==16) ) #test 207 608 6400 + {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl UK';} + if ( ($extension =~ /^901161/) && (length($extension)==15) ) #test 39 417 2011 + {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl AUS';} + if ( ($extension =~ /^91800|^91888|^91877|^91866/) && (length($extension)==12) ) + {$extension =~ s/^91//gi; $channel_group = 'Outbound Local 800';} + if ( ($extension =~ /^9/) && (length($extension)==8) ) + {$extension =~ s/^9/727/gi; $channel_group = 'Outbound Local';} + if ( ($extension =~ /^9/) && (length($extension)==11) ) + {$extension =~ s/^9//gi; $channel_group = 'Outbound Local';} + if ( ($extension =~ /^91/) && (length($extension)==12) ) + {$extension =~ s/^91//gi; $channel_group = 'Outbound Long Distance';} + if ($is_client_phone > 0) + {$channel_group = 'Client Phone';} + + $SIP_ext = $channel; $SIP_ext =~ s/SIP\/|IAX2\/|Zap\/|Local\///gi; + + $number_dialed = $extension; + $extension = $SIP_ext; + } + + if ( ($callerid =~ /^V|^M/) && ($callerid =~ /\d\d\d\d\d\d\d\d\d/) && (length($number_dialed)<1) ) + { + $stmtA = "SELECT cmd_line_b,cmd_line_d FROM vicidial_manager where callerid='$callerid' limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cmd_line_b = "$aryA[0]"; + $cmd_line_d = "$aryA[1]"; + $cmd_line_b =~ s/Exten: //gi; + $cmd_line_d =~ s/Channel: Local\/|@.*//gi; + $rec_count++; + } + $sthA->finish(); + if ($callerid =~ /^V/) {$number_dialed = "$cmd_line_d";} + if ($callerid =~ /^M/) {$number_dialed = "$cmd_line_b";} + $number_dialed =~ s/\D//gi; + if (length($number_dialed)<1) {$number_dialed=$extension;} + } + $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','$ast_server_ip','$extension','$number_dialed','$now_date','$now_date_epoch','','','','','$callerid')"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + $dbhA->disconnect(); + } + + + ### call end stage + else + { + if ($AGILOG) {$agi_string = "|CALL HUNG UP|"; &agi_output;} + if ($request =~ /--HVcauses--/i) + { + $HVcauses=1; + @ARGV_vars = split(/-----/, $request); + $PRI = $ARGV_vars[0]; + $PRI =~ s/.*--HVcauses--//gi; + $DEBUG = $ARGV_vars[1]; + $hangup_cause = $ARGV_vars[2]; + $dialstatus = $ARGV_vars[3]; + $dial_time = $ARGV_vars[4]; + $ring_time = $ARGV_vars[5]; + $agi_string = "URL HVcauses: |$PRI|$DEBUG|$hangup_cause|$dialstatus|$dial_time|$ring_time|"; + &agi_output; + } + + ### get uniqueid and start_epoch from the call_log table + $stmtA = "SELECT uniqueid,start_epoch FROM call_log where uniqueid='$unique_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $start_time = "$aryA[1]"; + if ($AGILOG) {$agi_string = "|$aryA[0]|$aryA[1]|"; &agi_output;} + $rec_count++; + } + $sthA->finish(); + + if ($rec_count) + { + $length_in_sec = ($now_date_epoch - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + if ($AGILOG) {$agi_string = "QUERY done: start time = $start_time | sec: $length_in_sec | min: $length_in_min |"; &agi_output;} + + $stmtA = "UPDATE call_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$length_in_sec,length_in_min='$length_in_min',channel='$channel' where uniqueid='$unique_id'"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + } + + $stmtA = "DELETE from live_inbound where uniqueid='$unique_id' and server_ip='$ast_server_ip'"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + ##### BEGIN Park Log entry check and update ##### + $stmtA = "SELECT UNIX_TIMESTAMP(parked_time),UNIX_TIMESTAMP(grab_time) FROM park_log where uniqueid='$unique_id' and server_ip='$ast_server_ip' LIMIT 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $parked_time = "$aryA[0]"; + $grab_time = "$aryA[1]"; + if ($AGILOG) {$agi_string = "|$aryA[0]|$aryA[1]|"; &agi_output;} + $rec_count++; + } + $sthA->finish(); + + if ($rec_count) + { + if ($AGILOG) {$agi_string = "*****Entry found for $unique_id-$ast_server_ip in park_log: $parked_time|$grab_time"; &agi_output;} + if ($parked_time > $grab_time) + { + $parked_sec=($now_date_epoch - $parked_time); + $talked_sec=0; + } + else + { + $talked_sec=($now_date_epoch - $parked_time); + $parked_sec=($grab_time - $parked_time); + } + + $stmtA = "UPDATE park_log set status='HUNGUP',hangup_time='$now_date',parked_sec='$parked_sec',talked_sec='$talked_sec' where uniqueid='$unique_id' and server_ip='$ast_server_ip'"; + $affected_rows = $dbhA->do($stmtA); + } + ##### END Park Log entry check and update ##### + + # $dbhA->disconnect(); + + if ($AGILOG) {$agi_string = "+++++ CALL LOG HUNGUP: |$unique_id|$channel|$extension|$now_date|min: $length_in_min|"; &agi_output;} + + + ##### BEGIN former VD_hangup section functions ##### + + $VDADcampaign=''; + $VDADphone=''; + $VDADphone_code=''; + + if ($DEBUG =~ /^DEBUG$/) + { + ### open the hangup cause out file for writing ### + open(DEBUGOUT, ">>$PATHlogs/HANGUP_cause-output.txt") + || die "Can't open $PATHlogs/HANGUP_cause-output.txt: $!\n"; + + print DEBUGOUT "$now_date|$hangup_cause|$dialstatus|$dial_time|$ring_time|$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|\n"; + + close(DEBUGOUT); + } + else + { + if ($AGILOG) {$agi_string = "DEBUG: $DEBUG"; &agi_output;} + } + + + $callerid =~ s/\"//gi; + $CIDlead_id = $callerid; + $CIDlead_id = substr($CIDlead_id, 11, 9); + $CIDlead_id = ($CIDlead_id + 0); + + if ($AGILOG) {$agi_string = "VD_hangup : $callerid $channel $priority $CIDlead_id"; &agi_output;} + + if ($channel =~ /^Local/) + { + if ( ($PRI =~ /^PRI$/) && ($callerid =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) && ( ($dialstatus =~ /BUSY/) || ( ($dialstatus =~ /CHANUNAVAIL/) && ($hangup_cause =~ /^1$|^28$/) ) ) ) + { + if ($dialstatus =~ /BUSY/) {$VDL_status = 'B'; $VDAC_status = 'BUSY';} + if ($dialstatus =~ /CHANUNAVAIL/) {$VDL_status = 'DC'; $VDAC_status = 'DISCONNECT';} + + $stmtA = "UPDATE vicidial_list set status='$VDL_status' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VDADaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$VDADaffected_rows|$CIDlead_id"; &agi_output;} + + $stmtA = "UPDATE vicidial_auto_calls set status='$VDAC_status' where callerid = '$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VDACaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAC update: |$VDACaffected_rows|$CIDlead_id"; &agi_output;} + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+$//gi; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$VDL_status' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VDLaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$VDLaffected_rows|$uniqueid|$Euniqueid|"; &agi_output;} + + sleep(1); + + $dbhA->disconnect(); + } + else + { + if ($AGILOG) {$agi_string = "-- VD_hangup Local DEBUG: |$PRI|$callerid|$dialstatus|$hangup_cause|"; &agi_output;} + } + + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} + if ($priority > 2) {sleep(1);} + } + else + { + + ########## FIND AND DELETE vicidial_auto_calls ########## + $VD_alt_dial = 'NONE'; + $stmtA = "SELECT lead_id,callerid,campaign_id,alt_dial,stage,UNIX_TIMESTAMP(call_time),uniqueid,status FROM vicidial_auto_calls where uniqueid = '$uniqueid' or callerid = '$callerid' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_lead_id = "$aryA[0]"; + $VD_callerid = "$aryA[1]"; + $VD_campaign_id = "$aryA[2]"; + $VD_alt_dial = "$aryA[3]"; + $VD_stage = "$aryA[4]"; + $VD_start_epoch = "$aryA[5]"; + $VD_uniqueid = "$aryA[6]"; + $VD_status = "$aryA[7]"; + $rec_countCUSTDATA++; + } + $sthA->finish(); + + if (!$rec_countCUSTDATA) + { + if ($AGILOG) {$agi_string = "VD hangup: no VDAC record found: $uniqueid $calleridname"; &agi_output;} + } + else + { + $stmtA = "DELETE FROM vicidial_auto_calls where ( ( (status!='IVR') and (uniqueid='$uniqueid' or callerid = '$callerid') ) or ( (status='IVR') and (uniqueid='$uniqueid') ) ) order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAC record deleted: |$affected_rows| |$VD_lead_id|$uniqueid|$VD_uniqueid|$VD_callerid|$ast_server_ip|$VD_status|"; &agi_output;} + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = "$aryA[0]"; + $queuemetrics_server_ip = "$aryA[1]"; + $queuemetrics_dbname = "$aryA[2]"; + $queuemetrics_login= "$aryA[3]"; + $queuemetrics_pass = "$aryA[4]"; + $queuemetrics_log_id = "$aryA[5]"; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_queuemetrics_logging > 0) && ($VD_status !~ /IVR/) ) + { + $VD_agent='NONE'; + $secX = time(); + $VD_call_length = ($secX - $VD_start_epoch); + $VD_stage =~ s/.*-//gi; + if ($VD_stage < 0.25) {$VD_stage=0;} + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "SELECT agent from queue_log where call_id='$VD_callerid' and verb='CONNECT';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + $rec_count=0; + while ($sthBrows > $rec_count) + { + @aryB = $sthB->fetchrow_array; + $VD_agent = "$aryB[0]"; + $rec_count++; + } + $sthB->finish(); + + if ($rec_count < 1) + { + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$VD_callerid',queue='$VD_campaign_id',agent='$VD_agent',verb='ABANDON',data1='1',data2='1',data3='$VD_stage',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + } + else + { + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$VD_callerid',queue='$VD_campaign_id',agent='$VD_agent',verb='COMPLETECALLER',data1='$VD_stage',data2='$VD_call_length',data3='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + } + + $dbhB->disconnect(); + } + + + $epc_countCUSTDATA=0; + $VD_closecallid=''; + $VDL_update=0; + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+$//gi; + + if ($calleridname !~ /^Y\d\d\d\d/) + { + ########## FIND AND UPDATE vicidial_log ########## + $stmtA = "SELECT start_epoch,status,user,term_reason,comments FROM vicidial_log FORCE INDEX(lead_id) where lead_id = '$VD_lead_id' and uniqueid LIKE \"$Euniqueid%\" limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_start_epoch = "$aryA[0]"; + $VD_status = "$aryA[1]"; + $VD_user = "$aryA[2]"; + $VD_term_reason = "$aryA[3]"; + $VD_comments = "$aryA[4]"; + $epc_countCUSTDATA++; + } + $sthA->finish(); + } + + if ( (!$epc_countCUSTDATA) || ($calleridname =~ /^Y\d\d\d\d/) ) + { + if ($AGILOG) {$agi_string = "no VDL record found: $uniqueid $calleridname $VD_lead_id $uniqueid $VD_uniqueid"; &agi_output;} + + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + $stmtA = "SELECT start_epoch,status,closecallid,user,term_reason,length_in_sec,queue_seconds,comments FROM vicidial_closer_log where lead_id = '$VD_lead_id' and call_date > \"$RSQLdate\" order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCUSTDATA=0; + $VD_closecallid=''; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_start_epoch = "$aryA[0]"; + $VD_status = "$aryA[1]"; + $VD_closecallid = "$aryA[2]"; + $VD_user = "$aryA[3]"; + $VD_term_reason = "$aryA[4]"; + $VD_length_in_sec = "$aryA[5]"; + $VD_queue_seconds = "$aryA[6]"; + $VD_comments = "$aryA[7]"; + $epc_countCUSTDATA++; + } + $sthA->finish(); + } + if (!$epc_countCUSTDATA) + { + if ($AGILOG) {$agi_string = "no VDL or VDCL record found: $uniqueid $calleridname $VD_lead_id $uniqueid $VD_uniqueid"; &agi_output;} + } + else + { + $VD_seconds = ($now_date_epoch - $VD_start_epoch); + + $SQL_status=''; + if ( ($VD_status =~ /^NA$|^NEW$|^QUEUE$|^XFER$/) && ($VD_comments !~ /REMOTE/) ) + { + if ( ($VD_term_reason !~ /AGENT|CALLER|QUEUETIMEOUT/) && ( ($VD_user =~ /VDAD|VDCL/) || (length($VD_user) < 1) ) ) + {$VDLSQL_term_reason = "term_reason='ABANDON',";} + else + { + if ($VD_term_reason !~ /AGENT|CALLER|QUEUETIMEOUT/) + {$VDLSQL_term_reason = "term_reason='CALLER',";} + else + {$VDLSQL_term_reason = '';} + } + $SQL_status = "status='DROP',$VDLSQL_term_reason"; + + ########## FIND AND UPDATE vicidial_list ########## + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$VD_lead_id"; &agi_output;} + } + else + { + $SQL_status = "term_reason='CALLER',"; + } + + if ($calleridname !~ /^Y\d\d\d\d/) + { + $VDL_update=1; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set $SQL_status end_epoch='$now_date_epoch',length_in_sec='$VD_seconds' where lead_id = '$VD_lead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VLaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$VLaffected_rows|$uniqueid|$VD_status|"; &agi_output;} + } + + + + ########## UPDATE vicidial_closer_log ########## + if ( (length($VD_closecallid) < 1) || ($VDL_update > 0) ) + { + if ($AGILOG) {$agi_string = "no VDCL record found: $uniqueid|$calleridname|$VD_lead_id|$uniqueid|$VD_uniqueid|$VDL_update|"; &agi_output;} + } + else + { + if ($VD_status =~ /^DONE$|^INCALL$|^XFER$/) + {$VDCLSQL_update = "term_reason='CALLER',";} + else + { + if ( ($VD_term_reason !~ /AGENT|CALLER|QUEUETIMEOUT|AFTERHOURS|HOLDRECALLXFER|HOLDTIME/) && ( ($VD_user =~ /VDAD|VDCL/) || (length($VD_user) < 1) ) ) + {$VDCLSQL_term_reason = "term_reason='ABANDON',";} + else + { + if ($VD_term_reason !~ /AGENT|CALLER|QUEUETIMEOUT|AFTERHOURS|HOLDRECALLXFER|HOLDTIME/) + {$VDCLSQL_term_reason = "term_reason='CALLER',";} + else + {$VDCLSQL_term_reason = '';} + } + if ($VD_status =~ /QUEUE/) + { + $VDCLSQL_status = "status='DROP',"; + $VDCLSQL_queue_seconds = "queue_seconds='$VD_seconds',"; + } + else + { + $VDCLSQL_status = ''; + $VDCLSQL_queue_seconds = ''; + } + + $VDCLSQL_update = "$VDCLSQL_status$VDCLSQL_term_reason$VDCLSQL_queue_seconds"; + } + + $VD_seconds = ($now_date_epoch - $VD_start_epoch); + $stmtA = "UPDATE vicidial_closer_log set $VDCLSQL_update end_epoch='$now_date_epoch',length_in_sec='$VD_seconds' where closecallid = '$VD_closecallid';"; + if ($AGILOG) {$agi_string = "|$VDCLSQL_update|$VD_status|$VD_length_in_sec|$VD_term_reason|$VD_queue_seconds|\n|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL update: |$affected_rows|$uniqueid|$VD_closecallid|"; &agi_output;} + + } + } + + ##### BEGIN AUTO ALT PHONE DIAL SECTION ##### + ### check to see if campaign has alt_dial enabled + $VD_auto_alt_dial = 'NONE'; + $VD_auto_alt_dial_statuses=''; + $stmtA="SELECT auto_alt_dial,auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$VD_campaign_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCAMPDATA=0; + while ($sthArows > $epc_countCAMPDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_auto_alt_dial = "$aryA[0]"; + $VD_auto_alt_dial_statuses = "$aryA[1]"; + $VD_use_internal_dnc = "$aryA[2]"; + $VD_use_campaign_dnc = "$aryA[3]"; + $epc_countCAMPDATA++; + } + $sthA->finish(); + if ($VD_auto_alt_dial_statuses =~ / $VD_status | $VDL_status /) + { + if ( ($VD_auto_alt_dial =~ /(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) + { + $alt_dial_skip=0; + $VD_alt_phone=''; + $stmtA="SELECT alt_phone,gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCAMPDATA=0; + while ($sthArows > $epc_countCAMPDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_phone = "$aryA[0]"; + $VD_alt_phone =~ s/\D//gi; + $VD_gmt_offset_now = "$aryA[1]"; + $VD_state = "$aryA[2]"; + $VD_list_id = "$aryA[3]"; + $epc_countCAMPDATA++; + } + $sthA->finish(); + if (length($VD_alt_phone)>5) + { + if ($VD_use_internal_dnc =~ /Y/) + { + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_alt_phone';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = "$aryA[0]"; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ($VD_use_campaign_dnc =~ /Y/) + { + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_alt_phone' and campaign_id='$VD_campaign_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='ALT',user='',priority='25';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDH record inserted: |$affected_rows| |$stmtA|"; &agi_output;} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$VD_alt_dial='ALT';} + } + if ( ( ($VD_auto_alt_dial =~ /(ADDR3_ONLY)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) || ( ($VD_auto_alt_dial =~ /(ALT_AND_ADDR3)/) && ($VD_alt_dial =~ /ALT/) ) ) + { + $addr3_dial_skip=0; + $VD_address3=''; + $stmtA="SELECT address3,gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCAMPDATA=0; + while ($sthArows > $epc_countCAMPDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_address3 = "$aryA[0]"; + $VD_address3 =~ s/\D//gi; + $VD_gmt_offset_now = "$aryA[1]"; + $VD_state = "$aryA[2]"; + $VD_list_id = "$aryA[3]"; + $epc_countCAMPDATA++; + } + $sthA->finish(); + if (length($VD_address3)>5) + { + if ($VD_use_internal_dnc =~ /Y/) + { + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_address3';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = "$aryA[0]"; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ($VD_use_campaign_dnc =~ /Y/) + { + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_address3' and campaign_id='$VD_campaign_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='ADDR3',user='',priority='20';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDH record inserted: |$affected_rows| |$stmtA|"; &agi_output;} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$VD_alt_dial='ADDR3';} + } + if ( ( ($VD_auto_alt_dial =~ /(EXTENDED_ONLY)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) || ( ($VD_auto_alt_dial =~ /(ALT_AND_EXTENDED)/) && ($VD_alt_dial =~ /ALT/) ) || ( ($VD_auto_alt_dial =~ /ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED/) && ($VD_alt_dial =~ /ADDR3/) ) || ( ($VD_auto_alt_dial =~ /(EXTENDED)/) && ($VD_alt_dial =~ /X/) && ($VD_alt_dial !~ /XLAST/) ) ) + { + if ($VD_alt_dial =~ /ADDR3/) {$Xlast=0;} + else + {$Xlast = $VD_alt_dial;} + $Xlast =~ s/\D//gi; + if (length($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + $stmtA="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCAMPDATA=0; + while ($sthArows > $epc_countCAMPDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_gmt_offset_now = "$aryA[1]"; + $VD_state = "$aryA[2]"; + $VD_list_id = "$aryA[3]"; + $epc_countCAMPDATA++; + } + $sthA->finish(); + $alt_dial_phones_count=0; + $stmtA="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $alt_dial_phones_count = "$aryA[0]"; + } + $sthA->finish(); + + while ( ($alt_dial_phones_count > 0) && ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmtA="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$VD_lead_id' and alt_phone_count='$Xlast';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_altdial_id = "$aryA[0]"; + $VD_altdial_phone = "$aryA[1]"; + $VD_altdial_active = "$aryA[2]"; + } + else + {$Xlast=9999999999;} + $sthA->finish(); + + if ($VD_altdial_active =~ /Y/) + { + if ($VD_use_internal_dnc =~ /Y/) + { + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = "$aryA[0]"; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ($VD_use_campaign_dnc =~ /Y/) + { + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$VD_campaign_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count eq '$Xlast') + {$Xlast = 'LAST';} + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='X$Xlast',user='',priority='15';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDH record inserted: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &agi_output;} + $Xlast=9999999999; + } + else + {if ($AGILOG) {$agi_string = "-- VDH alt dial is DNC|X$Xlast|$VD_altdial_phone|"; &agi_output;}} + } + } + } + } + ##### END AUTO ALT PHONE DIAL SECTION ##### + } + + } + + $dbhA->disconnect(); + + } + } + ################################################################### + ##### END call_log process ######################################## + ################################################################### + + + + + + ################################################################### + ##### START VD_hangup process ##################################### + ################################################################### + if ($process =~ /^VD_hangup/) + { + $nothing=0; + } + ################################################################### + ##### END VD_hangup process ####################################### + ################################################################### + + +} + + +VDfastAGI->run( + port=>4577, + user=>'root', + group=>'root', + min_servers=>$VARfastagi_log_min_servers, + max_servers=>$VARfastagi_log_max_servers, + min_spare_servers=>$VARfastagi_log_min_spare_servers, + max_spare_servers=>$VARfastagi_log_max_spare_servers, + max_requests=>$VARfastagi_log_max_requests, + check_for_dead=>$VARfastagi_log_checkfordead, + check_for_waiting=>$VARfastagi_log_checkforwait, + log_file=>$childLOGfile, + log_level=>$log_level + ); +exit; + + + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(LOGOUT, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print LOGOUT "$now_date|$script|$process|$agi_string\n"; + close(LOGOUT); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + { + print STDERR "$now_date|$script|$process|$agi_string\n"; + } +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/experimental/convert_latin1_db_to_utf8.sh b/agc_2-X/branches/agc_2.2.0/experimental/convert_latin1_db_to_utf8.sh new file mode 100644 index 00000000..30247b83 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/experimental/convert_latin1_db_to_utf8.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +####################################################################### +# # +# convert_latin1_db_to_utf8.sh Version 0.0.1 # +# # +# Converts an existing latin1 mysql database into utf8 # +# # +# Copyright (C) 2008 Michael Cargile, Vicidial Group Inc. # +# # +# This program is free software; you can redistribute it and/or # +# modify it under the terms of the GNU General Public License # +# as published by the Free Software Foundation; either version 2 # +# of the License, or (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program; if not, write to: # +# Free Software Foundation, Inc. # +# 51 Franklin Street # +# Fifth Floor # +# Boston, MA 02110-1301, USA. # +# # +####################################################################### + +if [ "$1" == "--help" ] +then + echo "Converts an existing latin1 mysql database into utf8" + echo "usage:" + echo "convert_latin1_db_to_utf8.sh database database_host data_user database_password" + + exit +fi + +DBNAME=$1 +DBHOST=$2 +DBUSER=$3 +DBPASS=$4 + +MYDUMP=`which mysqldump` +MYSQL=`which mysql` +ICONV=`which iconv` + +FILE="back_up.sql" +FILEUTF8="back_up_uft8.sql" + +`$MYSQLDUMP -h $DBHOST -u $DBUSER --password=$DBPASS --default-character-set=latin1 -c --insert-ignore --skip-set-charset $DBNAME > $FILE` + +`$ICONV -f ISO-8859-1 -t UTF-8 $FILE > $FILEUTF8` + +`$MYSQL -h $DBHOST -u $DBUSER --password=$DBPASS --execute="DROP DATABASE $DBNAME; CREATE DATABASE $DBNAME CHARACTER SET utf8 COLLATE utf8_general_ci;"` + +`$MYSQL -h $DBHOST -u $DBUSER --password=$DBPASS --max_allowed_packet=16M -p --default-character-set=utf8 $DBNAME < $FILEUTF8` + +# Uncomment the next two lines to delete the backup and the converted backup +#rm $FILE +#rm $FILEUTF8 diff --git a/agc_2-X/branches/agc_2.2.0/extras/1.2-gsm-gcc4.2.patch b/agc_2-X/branches/agc_2.2.0/extras/1.2-gsm-gcc4.2.patch new file mode 100644 index 00000000..b7203076 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/1.2-gsm-gcc4.2.patch @@ -0,0 +1,18 @@ +diff -Naur asterisk-1.2.26.orig/codecs/gsm/Makefile asterisk-1.2.26/codecs/gsm/Makefile +--- asterisk-1.2.26.orig/codecs/gsm/Makefile 2006-07-24 13:05:56.000000000 -0400 ++++ asterisk-1.2.26/codecs/gsm/Makefile 2008-01-15 13:21:38.000000000 -0500 +@@ -37,6 +37,14 @@ + ######### ppro's, etc, as well as the AMD K6 and K7. The compile will + ######### probably require gcc. + ++# Due to the gsm codec beeing broken when compiled with gcc version 4.2 ++# and optimization higher than -O2 we are checking for that version and ++# set the optimization to -O2 in this case. ++ ++ifeq ($(shell gcc -v 2>&1 | grep "gcc version" | cut -c 13-16 ),4.2.) ++OPTIMIZE=-O2 ++endif ++ + ifneq (${OSARCH},Darwin) + ifneq (${OSARCH},SunOS) + ifneq (${PROC},x86_64) diff --git a/agc_2-X/branches/agc_2.2.0/extras/1.4_gsm_gcc4.2.patch b/agc_2-X/branches/agc_2.2.0/extras/1.4_gsm_gcc4.2.patch new file mode 100644 index 00000000..c227439e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/1.4_gsm_gcc4.2.patch @@ -0,0 +1,18 @@ +diff -Naur asterisk-1.4.17.orig/codecs/gsm/Makefile asterisk-1.4.17/codecs/gsm/Makefile +--- asterisk-1.4.17.orig/codecs/gsm/Makefile 2007-02-16 19:31:42.000000000 -0500 ++++ asterisk-1.4.17/codecs/gsm/Makefile 2008-01-15 13:23:37.000000000 -0500 +@@ -37,6 +37,14 @@ + ######### ppro's, etc, as well as the AMD K6 and K7. The compile will + ######### probably require gcc. + ++# Due to the gsm codec beeing broken when compiled with gcc version 4.2 ++# and optimization higher than -O2 we are checking for that version and ++# set the optimization to -O2 in this case. ++ ++ifeq ($(shell gcc -v 2>&1 | grep "gcc version" | cut -c 13-16 ),4.2.) ++OPTIMIZE=-O2 ++endif ++ + ifeq (, $(findstring $(OSARCH) , Darwin SunOS )) + ifeq (, $(findstring $(PROC) , x86_64 amd64 ultrasparc sparc64 arm armv5b armeb ppc powerpc ppc64 ia64 s390 bfin mipsel )) + ifeq (, $(findstring $(shell uname -m) , ppc ppc64 alpha armv4l s390 )) diff --git a/agc_2-X/branches/agc_2.2.0/extras/AUS_zipcode_ranges.txt b/agc_2-X/branches/agc_2.2.0/extras/AUS_zipcode_ranges.txt new file mode 100644 index 00000000..af434eb0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/AUS_zipcode_ranges.txt @@ -0,0 +1,14 @@ +ACT|0200|0399 +NT|0800|0999 +NSW|1000|2599 +ACT|2600|2618 +NSW|2619|2899 +ACT|2900|2920 +NSW|2921|2999 +VIC|3000|3999 +QLD|4000|4999 +SA|5000|5999 +WA|6000|6999 +TAS|7000|7999 +VIC|8000|8999 +QLD|9000|9999 \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/extras/Asterisk.pm b/agc_2-X/branches/agc_2.2.0/extras/Asterisk.pm new file mode 100644 index 00000000..15ecd4a8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Asterisk.pm @@ -0,0 +1,20 @@ +package Asterisk; + +require 5.004; + +$VERSION = '0.08'; + +sub version { $VERSION; } + +sub new { + my ($class, %args) = @_; + my $self = {}; + $self->{configfile} = undef; + $self->{config} = {}; + bless $self, ref $class || $class; + return $self; +} + +sub DESTROY { } + +1; diff --git a/agc_2-X/branches/agc_2.2.0/extras/Asterisk/AGI.pm b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/AGI.pm new file mode 100644 index 00000000..b1680ea6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/AGI.pm @@ -0,0 +1,685 @@ +package Asterisk::AGI; + +require 5.004; + +use Asterisk; + +@ISA = ( 'Asterisk' ); + +=head1 NAME + +Asterisk::AGI - Simple Asterisk Gateway Interface Class + +=head1 SYNOPSIS + +use Asterisk::AGI; + +$AGI = new Asterisk::AGI; + +# pull AGI variables into %input + + %input = $AGI->ReadParse(); + +# say the number 1984 + + $AGI->say_number(1984); + +=head1 DESCRIPTION + +This module should make it easier to write scripts that interact with the +asterisk open source pbx via AGI (asterisk gateway interface) + +=head1 AGI COMMANDS + +=cut + +sub new { + my ($class, %args) = @_; + my $self = {}; + $self->{'callback'} = undef; + $self->{'status'} = undef; + $self->{'lastresponse'} = undef; + bless $self, ref $class || $class; + return $self; +} + +sub ReadParse { + my ($self, $fh) = @_; + + my %input = (); + + $fh = \*STDIN if (!$fh); + + while (<$fh>) { + chomp; + last unless length($_); + if (/^agi_(\w+)\:\s+(.*)$/) { + $input{$1} = $2; + } + } + + + if (defined($DEBUG)&&($DEBUG>0)) { + print STDERR "AGI Environment Dump:\n"; + foreach $i (sort keys %input) { + print STDERR " -- $i = $input{$i}\n"; + } + } + + return %input; +} + +sub setcallback { + my ($self, $function) = @_; + + if (defined($function) && ref($function) eq 'CODE') { + $self->{'callback'} = $function; + } +} + +sub callback { + my ($self, $result) = @_; + + if (defined($self->{'callback'}) && ref($self->{'callback'}) eq 'CODE') { + &{$self->{'callback'}}($result); + } +} + +sub execute { + my ($self, $command) = @_; + + $self->_execcommand($command); + my $res = $self->_readresponse(); + + return $self->_checkresult($res); +} + +sub _execcommand { + my ($self, $command, $fh) = @_; + + $fh = \*STDOUT if (!$fh); + + select ((select ($fh), $| = 1)[0]); + + return -1 if (!defined($command)); + + return print $fh "$command\n"; +} + +sub _readresponse { + my ($self, $fh) = @_; + + my $response = undef; + $fh = \*STDIN if (!$fh); + $response = <$fh> || return '200 result=-1 (noresponse)'; + chomp($response); + return $response; +} + +sub _checkresult { + my ($self, $response) = @_; + + return undef if (!defined($response)); + my $result = undef; + + $self->_lastresponse($response); + if ($response =~ /^200/) { + if ($response =~ /result=(-?[\d*#]+)/) { + $result = $1; + } + } elsif ($response =~ /\(noresponse\)/) { + $self->_status('noresponse'); + } else { + print STDERR "Unexpected result '$response'\n" if (defined($DEBUG) && $DEBUG); + } + print STDERR "_checkresult($response) = $result\n" if (defined($DEBUG) && $DEBUG>3); + + return $result; +} + +sub _status { + my ($self, $status) = @_; + + if (defined($status)) { + $self->{'status'} = $status; + } else { + return $self->{'status'}; + } +} + +sub _lastresponse { + my ($self, $response) = @_; + + if (defined($response)) { + $self->{'lastresponse'} = $response; + } else { + return $self->{'lastresponse'}; + } +} + +=over 4 + +=item $AGI->stream_file($filename, $digits) + +Executes AGI Command "STREAM FILE $filename $digits" + +This command instructs Asterisk to play the given sound file and listen for the given dtmf digits. The +fileextension must not be used in the filename because Asterisk will find the most appropriate file +type. + +Example: $AGI->stream_file('demo-echotest', '0123'); + +Returns: -1 on error or hangup, +0 if playback completes without a digit being pressed, +or the ASCII numerical value of the digit if a digit was pressed + +=cut + +sub stream_file { + my ($self, $filename, $digits) = @_; + + my $ret = 0; + + $digits = '""' if (!defined($digits)); + + return -1 if (!defined($filename)); + $ret = $self->execute("STREAM FILE $filename $digits"); + + $self->callback($ret) if ($ret == -1); + + return $ret; +} + +=item $AGI->send_text($text) + +Executes AGI Command "SEND TEXT "$text" + +Sends the given text on a channel. Most channels do not support the transmission of text. + +Example: $AGI->send_text('You've got mail!'); + +Returns: -1 on error or hangup, +0 if the text was sent or if the channel does not support text transmission. + +=cut + +sub send_text { + my ($self, $text) = @_; + + my $ret = 0; + + return $ret if (!defined($text)); + $ret = $self->execute("SEND TEXT \"$text\""); + $self->callback($ret) if ($ret == -1); + + return $ret; +} + +=item $AGI->send_image($image) + +Executes AGI Command "SEND IMAGE $image + +Sends the given image on a channel. Most channels do not support the transmission of images. + +Example: $AGI->send_image('image.png'); + +Returns: -1 on error or hangup, +0 if the image was sent or if the channel does not support image transmission. + +=cut + +sub send_image { + my ($self, $image) = @_; + + my $ret = 0; + return -1 if (!defined($image)); + + $ret = $self->execute("SEND IMAGE $image"); + $self->callback($ret) if ($ret == -1); + + return $ret; +} + +=item $AGI->say_number($number, $digits) + +Executes AGI Command "SAY NUMBER $number $digits" + +Says the given $number, returning early if any of the $digits are received. + +Example: $AGI->say_number('98765'); + +Returns: -1 on error or hangup, +0 if playback completes without a digit being pressed, +or the ASCII numerical value of the digit of one was pressed. + +=cut + +sub say_number { + my ($self, $number, $digits) = @_; + + my $ret = 0; + + $digits = '""' if (!defined($digits)); + + return -1 if (!defined($number)); + $number =~ s/\D//g; + $ret = $self->execute("SAY NUMBER $number $digits"); + + $self->callback($ret) if ($ret == -1); + + return $ret; +} + +=item $AGI->say_digits($number, $digits) + +Executes AGI Command "SAY DIGITS $number $digits" + +Says the given digit string $number, returning early if any of the $digits are received. + +Example: $AGI->say_digits('8675309'); + +Returns: -1 on error or hangup, +0 if playback completes without a digit being pressed, +or the ASCII numerical value of the digit of one was pressed. + +=cut + +sub say_digits { + my ($self, $number, $digits) = @_; + + my $ret = 0; + $digits = '""' if (!defined($digits)); + + return -1 if (!defined($number)); + $number =~ s/\D//g; + $ret = $self->execute("SAY DIGITS $number $digits"); + $self->callback($ret) if ($ret == -1); + + return $ret; +} + +=item $AGI->answer() + +Executes AGI Command "ANSWER" + +Answers channel if not already in answer state + +Example: $AGI->answer(); + +Returns: -1 on channel failure, or +0 if successful + +=cut + +sub answer { + my ($self) = @_; + + my $ret = 0; + $ret = $self->execute('ANSWER'); + $self->callback($ret) if ($ret == -1); + + return $ret; + +} + +=item $AGI->get_data($filename, $timeout, $maxdigits) + +Executes AGI Command "GET DATA $filename $timeout $maxdigits" + +Streams $filename and returns when $maxdigits have been received or +when $timeout has been reached. Timeout is specified in ms + +Example: $AGI->get_data('demo-welcome', 15000, 5); + +=cut + +sub get_data { + my ($self, $filename, $timeout, $maxdigits) = @_; + + my $ret = undef; + + return -1 if (!defined($filename)); + $ret = $self->execute("GET DATA $filename $timeout $maxdigits"); + $self->callback($ret) if ($ret == -1); + + return $ret; +} + +=item $AGI->set_callerid($number) + +Executes AGI Command "SET CALLERID $number" + +Changes the callerid of the current channel to + +Example: $AGI->set_callerid('9995551212'); + +Returns: Always returns 1 + +=cut + +sub set_callerid { + my ($self, $number) = @_; + + return if (!defined($number)); + return $self->execute("SET CALLERID $number"); +} + +=item $AGI->set_context($context) + +Executes AGI Command "SET CONTEXT $context" + +Changes the context for continuation upon exiting the agi application + +Example: $AGI->set_context('dialout'); + +Returns: Always returns 0 + +=cut + +sub set_context { + my ($self, $context) = @_; + + return -1 if (!defined($context)); + return $self->execute("SET CONTEXT $context"); +} + +=item $AGI->set_extension($extension) + +Executes AGI Command "SET EXTENSION $extension" + +Changes the extension for continuation upon exiting the agi application + +Example: $AGI->set_extension('7'); + +Returns: Always returns 0 + +=cut + +sub set_extension { + my ($self, $extension) = @_; + + return -1 if (!defined($extension)); + return $self->execute("SET EXTENSION $extension"); +} + +=item $AGI->set_priority($priority) + +Executes AGI Command "SET PRIORITY $priority" + +Changes the priority for continuation upon exiting the agi application + +Example: $AGI->set_priority(1); + +Returns: Always returns 0 + +=cut + +sub set_priority { + my ($self, $priority) = @_; + + return -1 if (!defined($priority)); + return $self->execute("SET PRIORITY $priority"); +} + +sub receive_char { + my ($self, $timeout) = @_; + + my $ret = 0; +#wait forever if timeout is not set. is this the prefered default? + $timeout = 0 if (!defined($timeout)); + $ret = $self->execute("RECEIVE CHAR $timeout"); + $self->callback($ret) if ($ret == -1); + + return $ret; + +} + +sub tdd_mode { + my ($self, $mode) = @_; + + return 0 if (!defined($mode)); + return $self->execute("TDD MODE $mode"); +} + + +sub wait_for_digit { + my ($self, $timeout) = @_; + + my $ret = 0; + $timeout = -1 if (!defined($timeout)); + $ret = $self->execute("WAIT FOR DIGIT $timeout"); + + $self->callback($ret) if ($ret == -1); + + return $ret; +} + +sub record_file { + my ($self, $filename, $format, $digits, $timeout, $beep) = @_; + + my $ret = 0; + + return -1 if (!defined($filename)); + $digits = '""' if (!defined($digits)); + $ret = $self->execute("RECORD FILE $filename $format $digits $timeout"); + + $self->callback($ret) if ($ret == -1); + + return $ret; +} + +sub set_autohangup { + my ($self, $time) = @_; + + $time = 0 if (!defined($time)); + return $self->execute("SET AUTOHANGUP $time"); +} + +=item $AGI->hangup($channel) + +Executes AGI Command "HANGUP $channel" + +Hangs up the passed $channel, or the current channel if $channel is not passed. +It is left to the AGI script to exit properly, otherwise you could end up with zombies. + +Example: $AGI->hangup(); + +Returns: Always returns 1 + +=cut + +sub hangup { + my ($self, $channel) = @_; + + if ($channel) { + return $self->execute("HANGUP $channel"); + } else { + return $self->execute("HANGUP"); + } +} + +=item $AGI->exec($app, $options) + +Executes AGI Command "EXEC $app $options" + +The most powerful AGI command. Executes the given application passing the given options. + +Example: $AGI->exec('Dial', 'Zap/g2/8005551212'); + +Returns: -2 on failure to find application, or +whatever the given application returns + +=cut + +sub exec { + my ($self, $app, $options) = @_; + return -1 if (!defined($app)); + $options = '""' if (!defined($options)); + return $self->execute("EXEC $app $options"); +} + +sub channel_status { + my ($self, $channel) = @_; + + return $self->execute("CHANNEL STATUS $channel"); +} + +=item $AGI->set_variable($variable, $value) + +Executes AGI Command "SET VARIABLE $variable $value" + +Sets the channel variable to + +Example: $AGI->set_variable('status', 'authorized'); + +Returns: Always returns 1 + +=cut + +sub set_variable { + my ($self, $variable, $value) = @_; + + return $self->execute("SET VARIABLE $variable $value"); +} + +=item $AGI->get_variable($variable) + +Executes AGI Command "GET VARIABLE $variablename" + +Gets the channel variable + +Example: $AGI->get_variable('status'); + +Returns: The value of the variable, or undef if variable does not exist + +=cut + +sub get_variable { + my ($self, $variable) = @_; + + my $result = undef; + + if ($self->execute("GET VARIABLE $variable")) { + my $tempresult = $self->_lastresponse(); + if ($tempresult =~ /\((.*)\)/) { + $result = $1; + } + } + return $result; +} + +=item $AGI->verbose($message, $level) + +Executes AGI Command "VERBOSE $message $level" + +Logs $message with verboselevel $level + +Example: $AGI->verbose("System Crashed\n", 1); + +Returns: Always returns 1 + +=cut + + +sub verbose { + my ($self, $message, $level) = @_; + + return $self->execute("VERBOSE \"$message\" $level"); +} + +=item $AGI->database_get($family, $key) + +Executes AGI Command "DATABASE GET $family $key" + +Example: $var = $AGI->database_get('test', 'status'); + +Returns: The value of the variable, or undef if variable does not exist + +=cut + +sub database_get { + my ($self, $family, $key) = @_; + + my $result = undef; + + if ($self->execute("DATABASE GET $family $key")) { + my $tempresult = $self->_lastresponse(); + if ($tempresult =~ /\((.*)\)/) { + $result = $1; + } + } + return $result; +} + +=item $AGI->database_put($family, $key, $value) + +Executes AGI Command "DATABASE PUT $family $key $value" + +Set/modifes database entry / to + +Example: $AGI->database_put('test', 'status', 'authorized'); + +Returns: 1 on success, 0 otherwise + +=cut + +sub database_put { + my ($self, $family, $key, $value) = @_; + + return $self->execute("DATABASE PUT $family $key $value"); +} + +=item $AGI->database_del($family, $key) + +Executes AGI Command "DATABASE DEL $family $key" + +Removes database entry / + +Example: $AGI->database_del('test', 'status'); + +Returns: 1 on success, 0 otherwise + +=cut + +sub database_del { + my ($self, $family, $key) = @_; + + return $self->execute("DATABASE DEL $family $key"); +} + +=item $AGI->database_deltree($family, $key) + +Executes AGI Command "DATABASE DELTREE $family $key" + +Deletes a family or specific keytree within a family in the Asterisk database + +Example: $AGI->database_deltree('test', 'status'); +Example: $AGI->database_deltree('test'); + +Returns: 1 on success, 0 otherwise + +=cut + +sub database_deltree { + my ($self, $family, $key) = @_; + + return $self->execute("DATABASE DELTREE $family $key"); +} + +sub noop { + my ($self) = @_; + + return $self->execute("NOOP"); +} + +sub set_music { + my ($self, $mode, $class) = @_; + + return $self->execute("SET MUSIC $mode $class"); +} + +1; + +__END__ + +=back diff --git a/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Manager.pm b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Manager.pm new file mode 100644 index 00000000..69d860a1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Manager.pm @@ -0,0 +1,412 @@ +package Asterisk::Manager; + +require 5.004; + +use Asterisk; +use IO::Socket; +use Digest::MD5; + +#use strict; +#use warnings; + +=head1 NAME + +Asterisk::Manager - Asterisk Manager Interface + +=head1 SYNOPSIS + +use Asterisk::Manager; + +my $astman = new Asterisk::Manager; + +$astman->user('username'); + +$astman->secret('test'); + +$astman->host('localhost'); + +$astman->connect || die "Could not connect to " . $astman->host . "!\n"; + +$astman->disconnect; + +=head1 DESCRIPTION + +This module provides a simple interface to the asterisk manager interface. + +=cut + +my $EOL = "\r\n"; +my $BLANK = $EOL x 2; + +my $VERSION = '0.01'; + +sub version { $VERSION; } + +sub new { + my ($class, %args) = @_; + + my $self = {}; + $self->{_CONNFD} = undef; + $self->{_PROTOVERS} = undef; + $self->{_ERRORSTR} = undef; + $self->{_HOST} = 'localhost'; + $self->{_PORT} = 5038; + $self->{_USER} = undef; + $self->{_SECRET} = undef; + $self->{_EVENTCB} = {}; + $self->{_DEBUG} = 0; + $self->{_CONNECTED} = 0; + bless $self, ref $class || $class; + return $self; +} + +sub DESTROY { } + +sub user { + my ($self, $user) = @_; + + if ($user) { + $self->{_USER} = $user; + } + + return $self->{_USER}; +} + +sub secret { + my ($self, $secret) = @_; + + if ($secret) { + $self->{_SECRET} = $secret; + } + + return $self->{_SECRET}; +} + +sub host { + my ($self, $host) = @_; + + if ($host) { + $self->{_HOST} = $host; + } + + return $self->{_HOST}; +} + +sub port { + my ($self, $port) = @_; + + if ($port) { + $self->{_PORT} = $port; + } + + return $self->{_PORT}; +} + +sub connected { + my ($self, $connected) = @_; + + if (defined($connected)) { + $self->{_CONNECTED} = $connected; + } + + return $self->{_CONNECTED}; +} + +sub error { + my ($self, $error) = @_; + + if ($error) { + $self->{_ERRORSTR} = $error; + } + + return $self->{_ERRORSTR}; +} + +sub debug { + my ($self, $debug) = @_; + + if ($debug) { + $self->{_DEBUG} = $debug; + } + + return $self->{_DEBUG}; +} + +sub connfd { + my ($self, $connfd) = @_; + + if ($connfd) { + $self->{_CONNFD} = $connfd; + } + + return $self->{_CONNFD}; +} + +sub read_response { + my ($self, $connfd) = @_; + + my @response; + + if (!$connfd) { + $connfd = $self->connfd; + } + + while (my $line = <$connfd>) { + last if ($line eq $EOL); + + if (wantarray) { + $line =~ s/$EOL//g; + push(@response, $line) if $line; + } else { + $response[0] .= $line; + } + + } + + return wantarray ? @response : $response[0]; +} + +sub connect { + my ($self) = @_; + + my $host = $self->host; + my $port = $self->port; + my $user = $self->user; + my $secret = $self->secret; + my %resp; + + my $conn = new IO::Socket::INET( Proto => 'tcp', + PeerAddr => $host, + PeerPort => $port + ); + if (!$conn) { + $self->error("Connection refused ($host:$port)\n"); + return undef; + } + + $conn->autoflush(1); + + my $input = <$conn>; + $input =~ s/$EOL//g; + + my ($manager, $version) = split('/', $input); + + if ($manager !~ /Asterisk Call Manager/) { + return $self->error("Unknown Protocol\n"); + } + + $self->{_PROTOVERS} = $version; + $self->connfd($conn); + + # check if the remote host supports MD5 Challenge authentication + my %authresp = $self->sendcommand( Action => 'Challenge', + AuthType => 'MD5' + ); + + if (($authresp{Response} eq 'Success')) { + # do md5 login + my $md5 = new Digest::MD5; + $md5->add($authresp{Challenge}); + $md5->add($secret); + my $digest = $md5->hexdigest; + %resp = $self->sendcommand( Action => 'Login', + AuthType => 'MD5', + Username => $user, + Key => $digest + ); + } else { + # do plain text login + %resp = $self->sendcommand( Action => 'Login', + Username => $user, + Secret => $secret + ); + + } + + if ( ($resp{Response} ne 'Success') && ($resp{Message} ne 'Authentication accepted') ) { + $self->error("Authentication failed for user $user\n"); + return undef; + } + + $self->connected(1); + + return $conn; +} + +sub astman_h2s { + my ($self, %thash) = @_; + + my $tstring = ''; + + foreach my $key (keys %thash) { + $tstring .= $key . ': ' . $thash{$key} . ${EOL}; + } + + return $tstring; +} + +sub astman_s2h { + my ($self, $tstring) = @_; + + my %thash; + + foreach my $line (split(/$EOL/, $tstring)) { + if ($line =~ /(\w*):\s*(\w*)/) { + $thash{$1} = $2; + } + } + + return %thash; +} + +#$want is how you want the data returned +#$want = 0 (default) returns the results in a hash +#$want = 1 returns the results in a large string +#$want = 2 returns the results in an array +sub sendcommand { + my ($self, %command, $want) = @_; + + if (!defined($want)) { + $want = 0; + } + + my $conn = $self->connfd || return; + my $cstring = $self->astman_h2s(%command); + + $conn->send("$cstring$EOL"); + + if ($want == 1) { + my $response = $self->read_response($conn); + return $response; + } + + my @resp = $self->read_response($conn); + + if ($want == 2) { + return @resp; + } else { + return map { split(': ', $_) } @resp; + } +} + +sub setcallback { + my ($self, $event, $function) = @_; + + if (defined($function) && ref($function) eq 'CODE') { + $self->{_EVENTCB}{$event} = $function; + } +} + +sub eventcallback { + my ($self, %resp) = @_; + + my $callback; + my $event = $resp{Event}; + + return if (!$event); + + if (defined($self->{_EVENTCB}{$event})) { + $callback = $self->{_EVENTCB}{$event}; + } elsif (defined($self->{_EVENTCB}{DEFAULT})) { + $callback = $self->{_EVENTCB}{DEFAULT}; + } else { + return; + } + + return &{$callback}(%resp); +} + +sub eventloop { + my ($self) = @_; + + while (1) { + $self->handleevent; + } +} + +sub handleevent { + my ($self) = @_; + + my %resp = map { split(': ', $_); } $self->read_response; + $self->eventcallback(%resp); + + return %resp; +} + +sub action { + my ($self, $command, $wanthash) = @_; + + return if (!$command); + + my $conn = $self->connfd || return; + + print $conn "Action: $command" . $BLANK; + my @resp = $self->read_response($conn); + + if ($wanthash) { + return map { split(': ', $_) } @resp; + } elsif (wantarray) { + return @resp; + } else { + return $resp[0]; + } +} + +sub command { + my ($self, $command) = @_; + + return if (!$command); + + return $self->sendcommand('Action' => 'Command', + 'Command' => $command, 1 ); +} + +sub monitor { + my ($self, $channel, $file) = @_; + + return if (!$channel); + + return $self->sendcommand('Action' => 'Monitor', + 'Channel' => $channel, + 'File' => $file, 1 ); +} + +sub changemonitor { + my ($self, $channel, $file) = @_; + + return if (!$channel); + + return $self->sendcommand('Action' => 'ChangeMonitor', + 'Channel' => $channel, + 'File' => $file, 1 ); +} + +sub stopmonitor { + my ($self, $channel, $file) = @_; + + return if (!$channel); + + return $self->sendcommand('Action' => 'StopMonitor', + 'Channel' => $channel, + 'File' => $file, 1 ); +} + + +sub disconnect { + my ($self) = @_; + + my $conn = $self->connfd; + + my %resp = $self->sendcommand('Action' => 'Logoff'); + + + if ($resp{Response} eq 'Goodbye') { + $self->{_CONNFD} = undef; + $self->connected(0); + return 1; + } + + return 0; +} + +1; diff --git a/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Outgoing.pm b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Outgoing.pm new file mode 100644 index 00000000..6e128332 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Outgoing.pm @@ -0,0 +1,110 @@ +package Asterisk::Outgoing; + +=head1 NAME + +Asterisk::Outgoing - Create outgoing call queue file + +=head1 SYNOPSIS + +use Asterisk::Outgoing; + +my $out = new Asterisk::Outgoing; + +$out->setvariable('Channel', 'Zap/1/'); + +$out->setvariable('MaxRetries', 0); + +$out->setvariable('RetryTime', 60); + +$out->setvariable('WaitTime', 60); + +$out->setvariable('Application', 'Playback'); + +$out->setvariable('Data', 'beep'); + +$out->create_outgoing; + +=cut + +require 5.004; + +use Fcntl ':flock'; +use Asterisk; +@ISA = ('Asterisk'); + +$VERSION = '0.01'; + +sub new { + my ($class, %args) = @_; + my $self = {}; + $self->{OUTDIR} = '/var/spool/asterisk/outgoing'; + $self->{OUTTIME} = undef; + $self->{OUTVARS} = {}; + $self->{ALLOWEDVARS} = [ 'channel', 'maxretries', 'retrytime', 'waittime', 'context', 'extension', 'priority', 'application', 'data', 'callerid' ]; + bless $self, ref $class || $class; + return $self; +} + +sub outdir { + my ($self, $dir) = @_; + + if (defined($dir)) { + $self->{OUTDIR} = $dir; + } + + return $self->{OUTDIR}; +} + +sub outtime { + my ($self, $time) = @_; + + if (defined($time)) { + $self->{OUTTIME} = $time; + } elsif (!defined($self->{OUTTIME})) { + $self->{OUTTIME} = time(); + } + + return $self->{OUTTIME}; +} + +sub checkvariable { + my ($self, $var) = @_; + + my $ret = 0; + + foreach $allowed (@{$self->{ALLOWEDVARS}}) { + if ($allowed =~ /$var/i) { + $ret = 1; + } + } + return $ret; +} + +sub setvariable { + my ($self, $var, $value) = @_; + + if ($self->checkvariable($var)) { + $self->{OUTVARS}{$var} = $value; + } +} + +sub create_outgoing { + my ($self) = @_; + + my $time = $self->outtime(); + + my $outdir = $self->outdir(); + my $filename = $outdir . '/' . $time . '.outgoing'; + open(OUTFILE, ">$filename") || return 0; + flock(OUTFILE, LOCK_EX); + utime($time, $time, $filename); + foreach my $var (keys %{$self->{OUTVARS}}) { + print OUTFILE "$var: " . $self->{OUTVARS}{$var} . "\n"; + } + flock(OUTFILE, LOCK_UN); + close(OUTFILE); + utime($time, $time, $filename); + return 1; +} + +1; diff --git a/agc_2-X/branches/agc_2.2.0/extras/Asterisk/QCall.pm b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/QCall.pm new file mode 100644 index 00000000..25f75a9c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/QCall.pm @@ -0,0 +1,61 @@ +package Asterisk::QCall; + +require 5.004; + +use Fcntl ':flock'; +use Asterisk; + +$VERSION = '0.01'; + +sub version { $VERSION; } + +sub new { + my ($class, %args) = @_; + my $self = {}; + $self->{QUEUEDIR} = '/var/spool/asterisk/qcall'; + $self->{QUEUETIME} = undef; + bless $self, ref $class || $class; + return $self; +} + +sub DESTROY { } + +sub queuedir { + my ($self, $dir) = @_; + + if (defined($dir)) { + $self->{QUEUEDIR} = $dir; + } + + return $self->{QUEUEDIR}; +} + +sub queuetime { + my ($self, $time) = @_; + + if (defined($time)) { + $self->{QUEUETIME} = $time; + } elsif (!defined($self->{QUEUETIME})) { + $self->{QUEUETIME} = time(); + } + + return $self->{QUEUETIME}; +} + +sub create_qcall { + my ($self, $dialstring, $callerid, $extension, $maxsecs, $identifier, $response) = @_; + + my $time = $self->queuetime(); + + my $queuedir = $self->queuedir(); + my $filename = $queuedir . '/' . $time . '.queue'; + open(QFILE, ">$filename") || return 0; + flock(QFILE, LOCK_EX); + print QFILE "$dialstring $callerid $extension $maxsecs $identifier $response"; + flock(QFILE, LOCK_UN); + close(QFILE); + my $ret = utime($time, $time, $filename); + return 1; +} + +1; diff --git a/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Voicemail.pm b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Voicemail.pm new file mode 100644 index 00000000..780cef56 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Asterisk/Voicemail.pm @@ -0,0 +1,261 @@ +package Asterisk::Voicemail; + +require 5.004; + +=head1 NAME + +Asterisk::Voicemail - Stuff to deal with asterisk voicemail + +=head1 SYNOPSIS + +This is not completed yet + +=head1 DESCRIPTION + +description + +=cut + +use Asterisk; + +@ISA = ( 'Asterisk' ); + +$VERSION = '0.01'; + +$DEBUG = 5; + +sub version { $VERSION; } + +sub new { + my ($class, %args) = @_; + my $self = {}; + bless $self, ref $class || $class; +# while (my ($key,$value) = each %args) { $self->set($key,$value); } + return $self; +} + +sub DESTROY { } + +sub spooldirectory { + my ($self, $directory) = @_; + + if (defined($directory)) { + $self->{'spooldirectory'} = $directory; + } else { + $self->{'spooldirectory'} = '/var/spool/asterisk/vm' if (!defined($self->{'spooldirectory'})); + } + + return $self->{'spooldirectory'}; +} + +sub sounddirectory { + my ($self, $directory) = @_; + + if (defined($directory)) { + $self->{'sounddirectory'} = $directory; + } else { + $self->{'sounddirectory'} = '/var/lib/asterisk/sounds' if (!defined($self->{'sounddirectory'})); + } + + return $self->{'sounddirectory'}; +} + +sub serveremail { + my ($self, $email) = @_; + + $self->{'serveremail'} = $email if (defined($email)); + + return $self->{'serveremail'}; +} + +sub format { + my ($self, @formats) = @_; + + if (@formats) { + $self->{'formats'} = @formats; + } + + return $self->{'formats'}; +} + +sub vmbox { + my ($self, $vmbox, $vmpass, $vmfn, $vmemail) = @_; + + if (defined($vmbox) && (defined($vmpass) || defined($vmfn) || defined($vmemail)) ) { + $self->{'vmbox'}{$vmbox}{'pass'} = $vmpass if (defined($vmpass)); + $self->{'vmbox'}{$vmbox}{'fn'} = $vmfn if (defined($vmfn)); + $self->{'vmbox'}{$vmbox}{'email'} = $vmemail if (defined($vmemail)); + } elsif (defined($vmbox)) { + return ($self->{'vmbox'}{$vmbox}{'pass'}, + $self->{'vmbox'}{$vmbox}{'fn'}, + $self->{'vmbox'}{$vmbox}{'email'} ); + } + +} + +sub getfolders { + my ($self, $vmbox) = @_; + + my @folders = (); + + my $spool = $self->spooldirectory(); + + foreach $file (<$spool/$vmbox/*>) { + if ( -d $file ) { + $file =~ s/$spool\/$vmbox\///; + push(@folders, $file); + } + } + return @folders; +} + +sub configfile { + my ($self, $configfile) = @_; + + if (defined($configfile)) { + $self->{'configfile'} = $configfile; + } else { + $self->{'configfile'} = '/etc/asterisk/voicemail.conf' if (!defined($self->{'configfile'})); + } + + return $self->{'configfile'}; +} + +sub readconfig { + my ($self) = @_; + + my $context = ''; + my $line = ''; + + my $configfile = $self->configfile(); + + open(CF, "<$configfile") || die "Error loading $configfile: $!\n"; + while ($line = ) { + chop($line); + + $line =~ s/;.*$//; + $line =~ s/\s*$//; + + if ($line =~ /^;/) { + next; + } elsif ($line =~ /^\s*$/) { + next; + } elsif ($line =~ /^\[(\w+)\]$/) { + $context = $1; + print STDERR "Context: $context\n" if ($DEBUG>3); + } elsif ($line =~ /^format\s*[=>]+\s*(.*)/) { + my $formats = $1; + $self->format(split(/|/, $formats)); + } elsif ($line =~ /^serveremail\s*[=>]+\s*(.*)/) { + $self->serveremail($1); + } elsif ($line =~ /^(\d+)\s*[=>]+\s*(.*)/) { + my $vmbox = $1; + my $vmstr = $2; + my ($vmpass, $vmfn, $vmemail) = split(/,/, $vmstr); + print STDERR "VM BOX ($vmbox)\n" if ($DEBUG>3); + $self->vmbox($vmbox, $vmpass, $vmfn, $vmstr); + } else { + print STDERR "Unknown line: $line\n" if ($DEBUG); + } + } + + close(CF); +} + +sub appendsoundfile { + my ($self, $source, $dest) = @_; + + open(IN, "<$source") || return 0; + open(OUT, ">>$dest") || return 0; + while () { + print OUT $_; + } + close(IN); + close(OUT); + return 1; +} + +sub validmailbox { + my ($self, $vmbox) = @_; + + return 1 if ($self->vmbox($vmbox)); + return 0; +} + +sub msgcount { + my ($self, $vmbox, $folder) = @_; + + my $count = 0; + + return $count if (!defined($vmbox) || !defined($folder)); + + my $spool = $self->spooldirectory() . '/' . $vmbox . '/' . $folder; + + if (opendir(DIR, $spool)) { + my @msgs = grep(/^msg.*\.txt$/, readdir(DIR)); + $count = $#msgs+1; + closedir(DIR); + } + return $count; +} + +sub msgcountstr { + my ($self, $vmbox, $folder) = @_; + + my $count = $self->msgcount($vmbox, $folder); + + if ($count > 1) { + return "$count messages"; + } elsif ($count > 0) { + return "$count message"; + } else { + return "no messages"; + } +} + +sub createdefaultmailbox { + my ($self, $vmbox) = @_; + + my $spool = $self->spooldirectory(); + my $sounddir = $self->sounddirectory(); + + my $vmdir = "$spool/$vmbox"; + + + if ( -d $vmdir ) { + print STDERR "Directory already exists: $vmdir\n" if ($DEBUG); + } else { + mkdir($vmdir, 0755) || return 0; + mkdir("$vmdir/INBOX", 0755) || return 0; + } + + $self->appendsoundfile("$sounddir/vm-theperson.gsm", "$vmdir/unavail.gsm"); + $self->appendsoundfile("$sounddir/vm-theperson.gsm", "$vmdir/busy.gsm"); + $self->appendsoundfile("$sounddir/vm-extension.gsm", "$vmdir/greet.gsm"); + + foreach $chr (split(//, $vmbox)) { + $self->appendsoundfile("$sounddir/digits/$chr.gsm", "$vmdir/unavail.gsm"); + $self->appendsoundfile("$sounddir/digits/$chr.gsm", "$vmdir/busy.gsm"); + $self->appendsoundfile("$sounddir/digits/$chr.gsm", "$vmdir/greet.gsm"); + } + + $self->appendsoundfile("$sounddir/vm-isunavail.gsm", "$vmdir/unavail.gsm"); + $self->appendsoundfile("$sounddir/vm-isonphone.gsm", "$vmdir/busy.gsm"); + + return 1; +} + +sub messages { + my ($self, $messages, $folder) = @_; + + my $path = $self->spooldirectory() . '/' . $mailbox . '/' . $folder; + if (opendir(DIR, $path)) { + my @msgs = sort grep(/^msg....\.txt$/, readdir(DIR)); + closedir(DIR); + return map { s/^msg(....)\.txt$/$1/; $_ } @msgs; + } + return (); +} + +1; + diff --git a/agc_2-X/branches/agc_2.2.0/extras/Changed_meetme_sounds.txt b/agc_2-X/branches/agc_2.2.0/extras/Changed_meetme_sounds.txt new file mode 100644 index 00000000..579fd731 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Changed_meetme_sounds.txt @@ -0,0 +1,37 @@ +* Changed Meetme Sounds in Asterisk 2007-07-27 + + +For some reason, possibly effeciency, the enter and leave sounds that you hear in standard Asterisk meetme rooms are actually hex dumps of RAW ULAW 8bit audio that have been compiled into the code of Asterisk in a header file. This makes them somewhat difficult to change, especially since there are no instructions. + +This should slightly reduce time that it takes for calls to get to agents, as well as reduce the time of the locks that occur when these sounds are played in Asterisk. The new enter and leave sounds I include with VICIDIAL are 0.12 and 0.13 seconds respectively as compared to the default sounds which are more than double that. + + +Here are the steps I went to to change the meetme enter and leave sounds: + + +1. grab the source audio file you want and open it in your favorite editor + - In my case I tweaked the audio I used for the app_conference build I made and shrunk them a bit until they were at most, half the length as the Asterisk default sounds they would be replacing + + +2. Save the audio as 8-bit, 8k ULAW audio and save as .raw + + +3. used "hexdump" to dump the audio file into two-character hex chunks + /usr/bin/hexdump -C ./enter.raw + - I'm sure this could be made prettier with the proper formatting strings, but I didn't have time for that + - Here's some of the output: + + 00000000 d6 dc 55 5f 63 67 f0 f0 74 75 d6 ee 5d 73 66 60 |U_cgtu]sf`| + 00000010 dc fd 62 68 5b 5a 57 5e 5b 5c ef fc 4d 51 57 4c |bh[ZW^[\MQWL| + 00000020 5d 66 60 51 6c 5f 3e 4d 59 47 72 e4 52 53 58 48 |]f`Ql_>MYGrRSXH| + + +4. Used favorite text edotor to format the data properly: + - 60 character length lines comma-space separated in the same format as enter.h and leave.h were in. Don't forget the header and footer to this raw hex audio, they are important + + 0xd6, 0xdc, 0x55, 0x5f, 0x63, 0x67, 0xf0, 0xf0, 0x74, 0x75, + 0xd6, 0xee, 0x5d, 0x73, 0x66, 0x60, 0xdc, 0xfd, 0x62, 0x68, + 0x5b, 0x5a, 0x57, 0x5e, 0x5b, 0x5c, 0xef, 0xfc, 0x4d, 0x51, + +5. Copied the new enter.h and leave.h files over the old ones, and compile Asterisk + diff --git a/agc_2-X/branches/agc_2.2.0/extras/GMT_notes.txt b/agc_2-X/branches/agc_2.2.0/extras/GMT_notes.txt new file mode 100644 index 00000000..76f75cc4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/GMT_notes.txt @@ -0,0 +1,28 @@ +Daylight Savings Time(Summer Time) Schemes + +These are all of the Schemes for changing of the GMT offset within different geographic areas. Some of these schemes will change frequently. + +The first column is one country that is using the scheme +The seconds colum is the code for the scheme +The third column explains the scheme + +NORTHERN HEMISPHERE +* USA-Canada SSM-FSN Second Sunday March to First Sunday November +* Mexico FSA-LSO First Sunday April to Last Sunday October +* Europe LSM-LSO Last Sunday March to Last Sunday October European Summer Time +Egypt LTA-LTS Last Thursday April to Last Thursday September +Iraq FDA-FDO First day of April to the first day of October +Israel LFM-TSS *changes every year* Last Friday March to First Sunday September + +SOUTHERN HEMISPHERE +Namibia FSS-FSA First Sunday September to first sunday April +Falkland Isls FSS-TSA First Sunday September to Third Sunday April +Uruguay FSO-SSM First Sunday October to Second Sunday March +Chile SSO-SSM Second Saturday October to Second Saturday March +* Australia LSO-LSM Last Sunday October to Last Sunday March +* AUS-Taz FSO-LSM First Sunday October to Last Sunday March +* New Zealand FSO-TSM First Sunday October to Third Sunday March +* Brazil TSO-LSF Third Sunday October to Last Sunday February + + +* notes inclusion into ADMIN_adjust_GMTnow_on_leads.pl script diff --git a/agc_2-X/branches/agc_2.2.0/extras/MySQL_AST_CREATE_tables.sql b/agc_2-X/branches/agc_2.2.0/extras/MySQL_AST_CREATE_tables.sql new file mode 100644 index 00000000..83a66c3f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/MySQL_AST_CREATE_tables.sql @@ -0,0 +1,2031 @@ +CREATE TABLE phones ( +extension VARCHAR(100), +dialplan_number VARCHAR(20), +voicemail_id VARCHAR(10), +phone_ip VARCHAR(15), +computer_ip VARCHAR(15), +server_ip VARCHAR(15), +login VARCHAR(15), +pass VARCHAR(10), +status VARCHAR(10), +active ENUM('Y','N'), +phone_type VARCHAR(50), +fullname VARCHAR(50), +company VARCHAR(10), +picture VARCHAR(19), +messages INT(4), +old_messages INT(4), +protocol ENUM('SIP','Zap','IAX2','EXTERNAL') default 'SIP', +local_gmt VARCHAR(6) default '-5', +ASTmgrUSERNAME VARCHAR(20) default 'cron', +ASTmgrSECRET VARCHAR(20) default '1234', +login_user VARCHAR(20), +login_pass VARCHAR(20), +login_campaign VARCHAR(10), +park_on_extension VARCHAR(10) default '8301', +conf_on_extension VARCHAR(10) default '8302', +VICIDIAL_park_on_extension VARCHAR(10) default '8301', +VICIDIAL_park_on_filename VARCHAR(10) default 'park', +monitor_prefix VARCHAR(10) default '8612', +recording_exten VARCHAR(10) default '8309', +voicemail_exten VARCHAR(10) default '8501', +voicemail_dump_exten VARCHAR(20) default '85026666666666', +ext_context VARCHAR(20) default 'default', +dtmf_send_extension VARCHAR(100) default 'local/8500998@default', +call_out_number_group VARCHAR(100) default 'Zap/g2/', +client_browser VARCHAR(100) default '/usr/bin/mozilla', +install_directory VARCHAR(100) default '/usr/local/perl_TK', +local_web_callerID_URL VARCHAR(255) default 'http://astguiclient.sf.net/test_callerid_output.php', +VICIDIAL_web_URL VARCHAR(255) default 'http://astguiclient.sf.net/test_VICIDIAL_output.php', +AGI_call_logging_enabled ENUM('0','1') default '1', +user_switching_enabled ENUM('0','1') default '1', +conferencing_enabled ENUM('0','1') default '1', +admin_hangup_enabled ENUM('0','1') default '0', +admin_hijack_enabled ENUM('0','1') default '0', +admin_monitor_enabled ENUM('0','1') default '1', +call_parking_enabled ENUM('0','1') default '1', +updater_check_enabled ENUM('0','1') default '1', +AFLogging_enabled ENUM('0','1') default '1', +QUEUE_ACTION_enabled ENUM('0','1') default '1', +CallerID_popup_enabled ENUM('0','1') default '1', +voicemail_button_enabled ENUM('0','1') default '1', +enable_fast_refresh ENUM('0','1') default '0', +fast_refresh_rate INT(5) default '1000', +enable_persistant_mysql ENUM('0','1') default '0', +auto_dial_next_number ENUM('0','1') default '1', +VDstop_rec_after_each_call ENUM('0','1') default '1', +DBX_server VARCHAR(15), +DBX_database VARCHAR(15) default 'asterisk', +DBX_user VARCHAR(15) default 'cron', +DBX_pass VARCHAR(15) default '1234', +DBX_port INT(6) default '3306', +DBY_server VARCHAR(15), +DBY_database VARCHAR(15) default 'asterisk', +DBY_user VARCHAR(15) default 'cron', +DBY_pass VARCHAR(15) default '1234', +DBY_port INT(6) default '3306', +outbound_cid VARCHAR(20), +enable_sipsak_messages ENUM('0','1') default '0', +email VARCHAR(100), +template_id VARCHAR(15) NOT NULL, +conf_override TEXT, +phone_context VARCHAR(20) default 'default', +phone_ring_timeout SMALLINT(3) default '60', +conf_secret VARCHAR(20) default 'test', +delete_vm_after_email ENUM('N','Y') default 'N', +index (server_ip), +unique index extenserver (extension, server_ip) +); + +CREATE TABLE servers ( +server_id VARCHAR(10) NOT NULL, +server_description VARCHAR(255), +server_ip VARCHAR(15) NOT NULL, +active ENUM('Y','N'), +asterisk_version VARCHAR(20) default '1.4.21.1', +max_vicidial_trunks SMALLINT(4) default '23', +telnet_host VARCHAR(20) NOT NULL default 'localhost', +telnet_port INT(5) NOT NULL default '5038', +ASTmgrUSERNAME VARCHAR(20) NOT NULL default 'cron', +ASTmgrSECRET VARCHAR(20) NOT NULL default '1234', +ASTmgrUSERNAMEupdate VARCHAR(20) NOT NULL default 'updatecron', +ASTmgrUSERNAMElisten VARCHAR(20) NOT NULL default 'listencron', +ASTmgrUSERNAMEsend VARCHAR(20) NOT NULL default 'sendcron', +local_gmt VARCHAR(6) default '-5', +voicemail_dump_exten VARCHAR(20) NOT NULL default '85026666666666', +answer_transfer_agent VARCHAR(20) NOT NULL default '8365', +ext_context VARCHAR(20) NOT NULL default 'default', +sys_perf_log ENUM('Y','N') default 'N', +vd_server_logs ENUM('Y','N') default 'Y', +agi_output ENUM('NONE','STDERR','FILE','BOTH') default 'FILE', +vicidial_balance_active ENUM('Y','N') default 'N', +balance_trunks_offlimits SMALLINT(5) UNSIGNED default '0', +recording_web_link ENUM('SERVER_IP','ALT_IP') default 'SERVER_IP', +alt_server_ip VARCHAR(100) default '', +active_asterisk_server ENUM('Y','N') default 'Y', +generate_vicidial_conf ENUM('Y','N') default 'Y', +rebuild_conf_files ENUM('Y','N') default 'Y', +outbound_calls_per_second SMALLINT(3) UNSIGNED default '20', +sysload INT(6) NOT NULL default '0', +channels_total SMALLINT(4) UNSIGNED NOT NULL default '0', +cpu_idle_percent SMALLINT(3) UNSIGNED NOT NULL default '0', +disk_usage VARCHAR(255) default '1', +sounds_update ENUM('Y','N') default 'N', +vicidial_recording_limit MEDIUMINT(8) default '60', +carrier_logging_active ENUM('Y','N') default 'N', +vicidial_balance_rank TINYINT(3) UNSIGNED default '0', +rebuild_music_on_hold ENUM('Y','N') default 'Y', +active_agent_login_server ENUM('Y','N') default 'Y', +conf_secret VARCHAR(20) default 'test' +); + +CREATE UNIQUE INDEX server_id on servers (server_id); + +CREATE TABLE live_channels ( +channel VARCHAR(100) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +channel_group VARCHAR(30), +extension VARCHAR(100), +channel_data VARCHAR(100) +); + +CREATE TABLE live_sip_channels ( +channel VARCHAR(100) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +channel_group VARCHAR(30), +extension VARCHAR(100), +channel_data VARCHAR(100) +); + +CREATE TABLE parked_channels ( +channel VARCHAR(100) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +channel_group VARCHAR(30), +extension VARCHAR(100), +parked_by VARCHAR(100), +parked_time DATETIME +); + +CREATE TABLE conferences ( +conf_exten INT(7) UNSIGNED NOT NULL, +server_ip VARCHAR(15) NOT NULL, +extension VARCHAR(100) +); + +CREATE TABLE recording_log ( +recording_id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +channel VARCHAR(100), +server_ip VARCHAR(15), +extension VARCHAR(100), +start_time DATETIME, +start_epoch INT(10) UNSIGNED, +end_time DATETIME, +end_epoch INT(10) UNSIGNED, +length_in_sec MEDIUMINT(8) UNSIGNED, +length_in_min DOUBLE(8,2), +filename VARCHAR(50), +location VARCHAR(255), +lead_id INT(9) UNSIGNED, +user VARCHAR(20), +vicidial_id VARCHAR(20), +index(filename), +index(lead_id), +index(user), +index(vicidial_id) +); + +CREATE TABLE live_inbound ( +uniqueid VARCHAR(20) NOT NULL, +channel VARCHAR(100) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +caller_id VARCHAR(30), +extension VARCHAR(100), +phone_ext VARCHAR(40), +start_time DATETIME, +acknowledged ENUM('Y','N') default 'N', +inbound_number VARCHAR(20), +comment_a VARCHAR(50), +comment_b VARCHAR(50), +comment_c VARCHAR(50), +comment_d VARCHAR(50), +comment_e VARCHAR(50) +); + +CREATE TABLE inbound_numbers ( +extension VARCHAR(30) NOT NULL, +full_number VARCHAR(30) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +inbound_name VARCHAR(30), +department VARCHAR(30) +); + +CREATE TABLE server_updater ( +server_ip VARCHAR(15) NOT NULL, +last_update DATETIME, +db_time TIMESTAMP +); + +CREATE TABLE call_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +channel VARCHAR(100), +channel_group VARCHAR(30), +type VARCHAR(10), +server_ip VARCHAR(15), +extension VARCHAR(100), +number_dialed VARCHAR(15), +caller_code VARCHAR(20), +start_time DATETIME, +start_epoch INT(10), +end_time DATETIME, +end_epoch INT(10), +length_in_sec INT(10), +length_in_min DOUBLE(8,2), +index (caller_code), +index (server_ip), +index (channel) +); + +CREATE TABLE park_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +status VARCHAR(10), +channel VARCHAR(100), +channel_group VARCHAR(30), +server_ip VARCHAR(15), +parked_time DATETIME, +grab_time DATETIME, +hangup_time DATETIME, +parked_sec INT(10), +talked_sec INT(10), +extension VARCHAR(100), +user VARCHAR(20), +index (parked_time) +); + +CREATE TABLE vicidial_manager ( +man_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +uniqueid VARCHAR(20), +entry_date DATETIME, +status ENUM('NEW','QUEUE','SENT','UPDATED','DEAD'), +response ENUM('Y','N'), +server_ip VARCHAR(15) NOT NULL, +channel VARCHAR(100), +action VARCHAR(20), +callerid VARCHAR(20), +cmd_line_b VARCHAR(100), +cmd_line_c VARCHAR(100), +cmd_line_d VARCHAR(100), +cmd_line_e VARCHAR(100), +cmd_line_f VARCHAR(100), +cmd_line_g VARCHAR(100), +cmd_line_h VARCHAR(100), +cmd_line_i VARCHAR(100), +cmd_line_j VARCHAR(100), +cmd_line_k VARCHAR(100), +index (callerid), +index (uniqueid), +index serverstat(server_ip,status) +); + +CREATE TABLE vicidial_list ( +lead_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +entry_date DATETIME, +modify_date TIMESTAMP, +status VARCHAR(6), +user VARCHAR(20), +vendor_lead_code VARCHAR(20), +source_id VARCHAR(50), +list_id BIGINT(14) UNSIGNED NOT NULL DEFAULT '0', +gmt_offset_now DECIMAL(4,2) DEFAULT '0.00', +called_since_last_reset ENUM('Y','N','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10') default 'N', +phone_code VARCHAR(10), +phone_number VARCHAR(18) NOT NULL, +title VARCHAR(4), +first_name VARCHAR(30), +middle_initial VARCHAR(1), +last_name VARCHAR(30), +address1 VARCHAR(100), +address2 VARCHAR(100), +address3 VARCHAR(100), +city VARCHAR(50), +state VARCHAR(2), +province VARCHAR(50), +postal_code VARCHAR(10), +country_code VARCHAR(3), +gender ENUM('M','F','U') default 'U', +date_of_birth DATE, +alt_phone VARCHAR(12), +email VARCHAR(70), +security_phrase VARCHAR(100), +comments VARCHAR(255), +called_count SMALLINT(5) UNSIGNED default '0', +last_local_call_time DATETIME, +rank SMALLINT(5) NOT NULL default '0', +owner VARCHAR(20) default '', +index (phone_number), +index (list_id), +index (called_since_last_reset), +index (status), +index (gmt_offset_now), +index (postal_code), +index (last_local_call_time), +index (rank), +index (owner) +); + +CREATE TABLE vicidial_hopper ( +hopper_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +campaign_id VARCHAR(8), +status ENUM('READY','QUEUE','INCALL','DONE','HOLD','DNC') default 'READY', +user VARCHAR(20), +list_id BIGINT(14) UNSIGNED NOT NULL, +gmt_offset_now DECIMAL(4,2) DEFAULT '0.00', +state VARCHAR(2) default '', +alt_dial VARCHAR(6) default 'NONE', +priority TINYINT(2) default '0', +index (lead_id) +); + +CREATE TABLE vicidial_live_agents ( +live_agent_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +conf_exten VARCHAR(20), +extension VARCHAR(100), +status ENUM('READY','QUEUE','INCALL','PAUSED','CLOSER') default 'PAUSED', +lead_id INT(9) UNSIGNED NOT NULL, +campaign_id VARCHAR(8), +uniqueid VARCHAR(20), +callerid VARCHAR(20), +channel VARCHAR(100), +random_id INT(8) UNSIGNED, +last_call_time DATETIME, +last_update_time TIMESTAMP, +last_call_finish DATETIME, +closer_campaigns TEXT, +call_server_ip VARCHAR(15), +user_level INT(2) default '0', +comments VARCHAR(20), +campaign_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +external_hangup VARCHAR(1) default '', +external_status VARCHAR(6) default '', +external_pause VARCHAR(20) default '', +external_dial VARCHAR(100) default '', +external_ingroups TEXT, +external_blended ENUM('0','1') default '0', +external_igb_set_user VARCHAR(20) default '', +external_update_fields ENUM('0','1') default '0', +external_update_fields_data VARCHAR(255) default '', +external_timer_action VARCHAR(20) default '', +external_timer_action_message VARCHAR(255) default '', +external_timer_action_seconds MEDIUMINT(7) default '-1', +agent_log_id INT(9) UNSIGNED default '0', +last_state_change DATETIME, +agent_territories TEXT, +outbound_autodial ENUM('Y','N') default 'N', +manager_ingroup_set ENUM('Y','N','SET') default 'N', +index (random_id), +index (last_call_time), +index (last_update_time), +index (last_call_finish) +); + +CREATE TABLE vicidial_auto_calls ( +auto_call_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +server_ip VARCHAR(15) NOT NULL, +campaign_id VARCHAR(20), +status ENUM('SENT','RINGING','LIVE','XFER','PAUSED','CLOSER','BUSY','DISCONNECT','IVR') default 'PAUSED', +lead_id INT(9) UNSIGNED NOT NULL, +uniqueid VARCHAR(20), +callerid VARCHAR(20), +channel VARCHAR(100), +phone_code VARCHAR(10), +phone_number VARCHAR(18), +call_time DATETIME, +call_type ENUM('IN','OUT','OUTBALANCE') default 'OUT', +stage VARCHAR(20) default 'START', +last_update_time TIMESTAMP, +alt_dial VARCHAR(6) default 'NONE', +queue_priority TINYINT(2) default '0', +agent_only VARCHAR(20) default '', +agent_grab VARCHAR(20) default '', +queue_position SMALLINT(4) UNSIGNED default '1', +index (uniqueid), +index (callerid), +index (call_time), +index (last_update_time) +); + +CREATE TABLE vicidial_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(8), +call_date DATETIME, +start_epoch INT(10) UNSIGNED, +end_epoch INT(10) UNSIGNED, +length_in_sec INT(10), +status VARCHAR(6), +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +comments VARCHAR(255), +processed ENUM('Y','N'), +user_group VARCHAR(20), +term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','NONE') default 'NONE', +alt_dial VARCHAR(6) default 'NONE', +index (lead_id), +index (call_date) +); + +CREATE TABLE vicidial_closer_log ( +closecallid INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(20), +call_date DATETIME, +start_epoch INT(10) UNSIGNED, +end_epoch INT(10) UNSIGNED, +length_in_sec INT(10), +status VARCHAR(6), +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +comments VARCHAR(255), +processed ENUM('Y','N'), +queue_seconds DECIMAL(7,2) default '0', +user_group VARCHAR(20), +xfercallid INT(9) UNSIGNED, +term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','HOLDRECALLXFER','HOLDTIME','NOAGENT','NONE') default 'NONE', +uniqueid VARCHAR(20) NOT NULL default '', +agent_only VARCHAR(20) default '', +queue_position SMALLINT(4) UNSIGNED default '1', +index (lead_id), +index (call_date), +index (campaign_id), +index (uniqueid) +); + +CREATE TABLE vicidial_xfer_log ( +xfercallid INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(20), +call_date DATETIME, +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +closer VARCHAR(20), +index (lead_id), +index (call_date) +); + +CREATE TABLE vicidial_users ( +user_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20) NOT NULL, +pass VARCHAR(20) NOT NULL, +full_name VARCHAR(50), +user_level TINYINT(2) default '1', +user_group VARCHAR(20), +phone_login VARCHAR(20), +phone_pass VARCHAR(20), +delete_users ENUM('0','1') default '0', +delete_user_groups ENUM('0','1') default '0', +delete_lists ENUM('0','1') default '0', +delete_campaigns ENUM('0','1') default '0', +delete_ingroups ENUM('0','1') default '0', +delete_remote_agents ENUM('0','1') default '0', +load_leads ENUM('0','1') default '0', +campaign_detail ENUM('0','1') default '0', +ast_admin_access ENUM('0','1') default '0', +ast_delete_phones ENUM('0','1') default '0', +delete_scripts ENUM('0','1') default '0', +modify_leads ENUM('0','1') default '0', +hotkeys_active ENUM('0','1') default '0', +change_agent_campaign ENUM('0','1') default '0', +agent_choose_ingroups ENUM('0','1') default '1', +closer_campaigns TEXT, +scheduled_callbacks ENUM('0','1') default '1', +agentonly_callbacks ENUM('0','1') default '0', +agentcall_manual ENUM('0','1') default '0', +vicidial_recording ENUM('0','1') default '1', +vicidial_transfers ENUM('0','1') default '1', +delete_filters ENUM('0','1') default '0', +alter_agent_interface_options ENUM('0','1') default '0', +closer_default_blended ENUM('0','1') default '0', +delete_call_times ENUM('0','1') default '0', +modify_call_times ENUM('0','1') default '0', +modify_users ENUM('0','1') default '0', +modify_campaigns ENUM('0','1') default '0', +modify_lists ENUM('0','1') default '0', +modify_scripts ENUM('0','1') default '0', +modify_filters ENUM('0','1') default '0', +modify_ingroups ENUM('0','1') default '0', +modify_usergroups ENUM('0','1') default '0', +modify_remoteagents ENUM('0','1') default '0', +modify_servers ENUM('0','1') default '0', +view_reports ENUM('0','1') default '0', +vicidial_recording_override ENUM('DISABLED','NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'DISABLED', +alter_custdata_override ENUM('NOT_ACTIVE','ALLOW_ALTER') default 'NOT_ACTIVE', +qc_enabled ENUM('0','1') default '0', +qc_user_level INT(2) default '1', +qc_pass ENUM('0','1') default '0', +qc_finish ENUM('0','1') default '0', +qc_commit ENUM('0','1') default '0', +add_timeclock_log ENUM('0','1') default '0', +modify_timeclock_log ENUM('0','1') default '0', +delete_timeclock_log ENUM('0','1') default '0', +alter_custphone_override ENUM('NOT_ACTIVE','ALLOW_ALTER') default 'NOT_ACTIVE', +vdc_agent_api_access ENUM('0','1') default '0', +modify_inbound_dids ENUM('0','1') default '0', +delete_inbound_dids ENUM('0','1') default '0', +active ENUM('Y','N') default 'Y', +alert_enabled ENUM('0','1') default '0', +download_lists ENUM('0','1') default '0', +agent_shift_enforcement_override ENUM('DISABLED','OFF','START','ALL') default 'DISABLED', +manager_shift_enforcement_override ENUM('0','1') default '0', +shift_override_flag ENUM('0','1') default '0', +export_reports ENUM('0','1') default '0', +delete_from_dnc ENUM('0','1') default '0', +email VARCHAR(100) default '', +user_code VARCHAR(100) default '', +territory VARCHAR(100) default '', +allow_alerts ENUM('0','1') default '0', +agent_choose_territories ENUM('0','1') default '1', +custom_one VARCHAR(100) default '', +custom_two VARCHAR(100) default '', +custom_three VARCHAR(100) default '', +custom_four VARCHAR(100) default '', +custom_five VARCHAR(100) default '' +); + + +CREATE UNIQUE INDEX user ON vicidial_users (user); + +CREATE TABLE vicidial_user_log ( +user_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20), +event VARCHAR(50), +campaign_id VARCHAR(8), +event_date DATETIME, +event_epoch INT(10) UNSIGNED, +user_group VARCHAR(20), +index (user) +); + +CREATE TABLE vicidial_user_groups ( +user_group VARCHAR(20) NOT NULL, +group_name VARCHAR(40) NOT NULL, +allowed_campaigns TEXT, +qc_allowed_campaigns TEXT, +qc_allowed_inbound_groups TEXT, +group_shifts TEXT, +forced_timeclock_login ENUM('Y','N','ADMIN_EXEMPT') default 'N', +shift_enforcement ENUM('OFF','START','ALL') default 'OFF', +agent_status_viewable_groups TEXT, +agent_status_view_time ENUM('Y','N') default 'N' +); + +CREATE TABLE vicidial_campaigns ( +campaign_id VARCHAR(8) PRIMARY KEY NOT NULL, +campaign_name VARCHAR(40), +active ENUM('Y','N'), +dial_status_a VARCHAR(6), +dial_status_b VARCHAR(6), +dial_status_c VARCHAR(6), +dial_status_d VARCHAR(6), +dial_status_e VARCHAR(6), +lead_order VARCHAR(30), +park_ext VARCHAR(10), +park_file_name VARCHAR(10), +web_form_address TEXT, +allow_closers ENUM('Y','N'), +hopper_level INT(8) UNSIGNED default '1', +auto_dial_level VARCHAR(6) default '0', +next_agent_call ENUM('random','oldest_call_start','oldest_call_finish','campaign_rank','overall_user_level','fewest_calls','longest_wait_time') default 'longest_wait_time', +local_call_time VARCHAR(10) DEFAULT '9am-9pm', +voicemail_ext VARCHAR(10), +dial_timeout TINYINT UNSIGNED default '60', +dial_prefix VARCHAR(20) default '9', +campaign_cid VARCHAR(20) default '0000000000', +campaign_vdad_exten VARCHAR(20) default '8368', +campaign_rec_exten VARCHAR(20) default '8309', +campaign_recording ENUM('NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'ONDEMAND', +campaign_rec_filename VARCHAR(50) default 'FULLDATE_CUSTPHONE', +campaign_script VARCHAR(10), +get_call_launch ENUM('NONE','SCRIPT','WEBFORM') default 'NONE', +am_message_exten VARCHAR(100) default 'vm-goodbye', +amd_send_to_vmx ENUM('Y','N') default 'N', +xferconf_a_dtmf VARCHAR(50), +xferconf_a_number VARCHAR(50), +xferconf_b_dtmf VARCHAR(50), +xferconf_b_number VARCHAR(50), +alt_number_dialing ENUM('Y','N') default 'N', +scheduled_callbacks ENUM('Y','N') default 'N', +lead_filter_id VARCHAR(10) default 'NONE', +drop_call_seconds TINYINT(3) default '5', +drop_action ENUM('HANGUP','MESSAGE','VOICEMAIL','IN_GROUP') default 'MESSAGE', +safe_harbor_exten VARCHAR(20) default '8307', +display_dialable_count ENUM('Y','N') default 'Y', +wrapup_seconds SMALLINT(3) UNSIGNED default '0', +wrapup_message VARCHAR(255) default 'Wrapup Call', +closer_campaigns TEXT default '', +use_internal_dnc ENUM('Y','N','AREACODE') default 'N', +allcalls_delay SMALLINT(3) UNSIGNED default '0', +omit_phone_code ENUM('Y','N') default 'N', +dial_method ENUM('MANUAL','RATIO','ADAPT_HARD_LIMIT','ADAPT_TAPERED','ADAPT_AVERAGE','INBOUND_MAN') default 'MANUAL', +available_only_ratio_tally ENUM('Y','N') default 'N', +adaptive_dropped_percentage VARCHAR(4) default '3', +adaptive_maximum_level VARCHAR(6) default '3.0', +adaptive_latest_server_time VARCHAR(4) default '2100', +adaptive_intensity VARCHAR(6) default '0', +adaptive_dl_diff_target SMALLINT(3) default '0', +concurrent_transfers ENUM('AUTO','1','2','3','4','5','6','7','8','9','10') default 'AUTO', +auto_alt_dial ENUM('NONE','ALT_ONLY','ADDR3_ONLY','ALT_AND_ADDR3','ALT_AND_EXTENDED','ALT_AND_ADDR3_AND_EXTENDED','EXTENDED_ONLY') default 'NONE', +auto_alt_dial_statuses VARCHAR(255) default ' B N NA DC -', +agent_pause_codes_active ENUM('Y','N','FORCE') default 'N', +campaign_description VARCHAR(255), +campaign_changedate DATETIME, +campaign_stats_refresh ENUM('Y','N') default 'N', +campaign_logindate DATETIME, +dial_statuses VARCHAR(255) default ' NEW -', +disable_alter_custdata ENUM('Y','N') default 'N', +no_hopper_leads_logins ENUM('Y','N') default 'N', +list_order_mix VARCHAR(20) default 'DISABLED', +campaign_allow_inbound ENUM('Y','N') default 'N', +manual_dial_list_id BIGINT(14) UNSIGNED default '998', +default_xfer_group VARCHAR(20) default '---NONE---', +xfer_groups TEXT default '', +queue_priority TINYINT(2) default '50', +drop_inbound_group VARCHAR(20) default '---NONE---', +qc_enabled ENUM('Y','N') default 'N', +qc_statuses TEXT, +qc_lists TEXT, +qc_shift_id VARCHAR(20) default '24HRMIDNIGHT', +qc_get_record_launch ENUM('NONE','SCRIPT','WEBFORM','QCSCRIPT','QCWEBFORM') default 'NONE', +qc_show_recording ENUM('Y','N') default 'Y', +qc_web_form_address VARCHAR(255), +qc_script VARCHAR(10), +survey_first_audio_file VARCHAR(50) default 'US_pol_survey_hello', +survey_dtmf_digits VARCHAR(16) default '1238', +survey_ni_digit VARCHAR(1) default '8', +survey_opt_in_audio_file VARCHAR(50) default 'US_pol_survey_transfer', +survey_ni_audio_file VARCHAR(50) default 'US_thanks_no_contact', +survey_method ENUM('AGENT_XFER','VOICEMAIL','EXTENSION','HANGUP','CAMPREC_60_WAV') default 'AGENT_XFER', +survey_no_response_action ENUM('OPTIN','OPTOUT') default 'OPTIN', +survey_ni_status VARCHAR(6) default 'NI', +survey_response_digit_map VARCHAR(255) default '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|', +survey_xfer_exten VARCHAR(20) default '8300', +survey_camp_record_dir VARCHAR(255) default '/home/survey', +disable_alter_custphone ENUM('Y','N','HIDE') default 'Y', +display_queue_count ENUM('Y','N') default 'Y', +manual_dial_filter VARCHAR(50) default 'NONE', +agent_clipboard_copy VARCHAR(50) default 'NONE', +agent_extended_alt_dial ENUM('Y','N') default 'N', +use_campaign_dnc ENUM('Y','N','AREACODE') default 'N', +three_way_call_cid ENUM('CAMPAIGN','CUSTOMER','AGENT_PHONE','AGENT_CHOOSE') default 'CAMPAIGN', +three_way_dial_prefix VARCHAR(20) default '', +web_form_target VARCHAR(100) NOT NULL default 'vdcwebform', +vtiger_search_category VARCHAR(100) default 'LEAD', +vtiger_create_call_record ENUM('Y','N','DISPO') default 'Y', +vtiger_create_lead_record ENUM('Y','N') default 'Y', +vtiger_screen_login ENUM('Y','N','NEW_WINDOW') default 'Y', +cpd_amd_action ENUM('DISABLED','DISPO','MESSAGE') default 'DISABLED', +agent_allow_group_alias ENUM('Y','N') default 'N', +default_group_alias VARCHAR(30) default '', +vtiger_search_dead ENUM('DISABLED','ASK','RESURRECT') default 'ASK', +vtiger_status_call ENUM('Y','N') default 'N', +survey_third_digit VARCHAR(1) default '', +survey_third_audio_file VARCHAR(50) default 'US_thanks_no_contact', +survey_third_status VARCHAR(6) default 'NI', +survey_third_exten VARCHAR(20) default '8300', +survey_fourth_digit VARCHAR(1) default '', +survey_fourth_audio_file VARCHAR(50) default 'US_thanks_no_contact', +survey_fourth_status VARCHAR(6) default 'NI', +survey_fourth_exten VARCHAR(20) default '8300', +drop_lockout_time VARCHAR(6) default '0', +quick_transfer_button ENUM('N','IN_GROUP','PRESET_1','PRESET_2','PRESET_3','PRESET_4','PRESET_5') default 'N', +prepopulate_transfer_preset ENUM('N','PRESET_1','PRESET_2','PRESET_3','PRESET_4','PRESET_5') default 'N', +drop_rate_group VARCHAR(20) default 'DISABLED', +view_calls_in_queue ENUM('NONE','ALL','1','2','3','4','5') default 'NONE', +view_calls_in_queue_launch ENUM('AUTO','MANUAL') default 'MANUAL', +grab_calls_in_queue ENUM('Y','N') default 'N', +call_requeue_button ENUM('Y','N') default 'N', +pause_after_each_call ENUM('Y','N') default 'N', +no_hopper_dialing ENUM('Y','N') default 'N', +agent_dial_owner_only ENUM('NONE','USER','TERRITORY','USER_GROUP') default 'NONE', +agent_display_dialable_leads ENUM('Y','N') default 'N', +web_form_address_two TEXT, +waitforsilence_options VARCHAR(25) default '', +agent_select_territories ENUM('Y','N') default 'N', +campaign_calldate DATETIME, +crm_popup_login ENUM('Y','N') default 'N', +crm_login_address TEXT, +timer_action ENUM('NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','D3_DIAL','D4_DIAL','D5_DIAL','MESSAGE_ONLY') default 'NONE', +timer_action_message VARCHAR(255) default '', +timer_action_seconds MEDIUMINT(7) default '-1', +start_call_url TEXT, +dispo_call_url TEXT, +xferconf_c_number VARCHAR(50) default '', +xferconf_d_number VARCHAR(50) default '', +xferconf_e_number VARCHAR(50) default '' +); + +CREATE TABLE vicidial_lists ( +list_id BIGINT(14) UNSIGNED PRIMARY KEY NOT NULL, +list_name VARCHAR(30), +campaign_id VARCHAR(8), +active ENUM('Y','N'), +list_description VARCHAR(255), +list_changedate DATETIME, +list_lastcalldate DATETIME, +reset_time VARCHAR(100) default '', +agent_script_override VARCHAR(10) default '', +campaign_cid_override VARCHAR(20) default '', +am_message_exten_override VARCHAR(100) default '', +drop_inbound_group_override VARCHAR(20) default '', +xferconf_a_number VARCHAR(50) default '', +xferconf_b_number VARCHAR(50) default '', +xferconf_c_number VARCHAR(50) default '', +xferconf_d_number VARCHAR(50) default '', +xferconf_e_number VARCHAR(50) default '' +); + +CREATE TABLE vicidial_statuses ( +status VARCHAR(6) PRIMARY KEY NOT NULL, +status_name VARCHAR(30), +selectable ENUM('Y','N'), +human_answered ENUM('Y','N') default 'N', +category VARCHAR(20) default 'UNDEFINED', +sale ENUM('Y','N') default 'N', +dnc ENUM('Y','N') default 'N', +customer_contact ENUM('Y','N') default 'N', +not_interested ENUM('Y','N') default 'N', +unworkable ENUM('Y','N') default 'N' +); + +CREATE TABLE vicidial_campaign_statuses ( +status VARCHAR(6) NOT NULL, +status_name VARCHAR(30), +selectable ENUM('Y','N'), +campaign_id VARCHAR(8), +human_answered ENUM('Y','N') default 'N', +category VARCHAR(20) default 'UNDEFINED', +sale ENUM('Y','N') default 'N', +dnc ENUM('Y','N') default 'N', +customer_contact ENUM('Y','N') default 'N', +not_interested ENUM('Y','N') default 'N', +unworkable ENUM('Y','N') default 'N', +index (campaign_id) +); + +CREATE TABLE vicidial_campaign_hotkeys ( +status VARCHAR(6) NOT NULL, +hotkey VARCHAR(1) NOT NULL, +status_name VARCHAR(30), +selectable ENUM('Y','N'), +campaign_id VARCHAR(8), +index (campaign_id) +); + +CREATE TABLE vicidial_conferences ( +conf_exten INT(7) UNSIGNED NOT NULL, +server_ip VARCHAR(15) NOT NULL, +extension VARCHAR(100), +leave_3way ENUM('0','1') default '0', +leave_3way_datetime DATETIME +); + +CREATE UNIQUE INDEX serverconf on vicidial_conferences (server_ip, conf_exten); + +CREATE TABLE vicidial_phone_codes ( +country_code SMALLINT(5) UNSIGNED, +country CHAR(3), +areacode CHAR(3), +state VARCHAR(4), +GMT_offset VARCHAR(5), +DST enum('Y','N'), +DST_range VARCHAR(8), +geographic_description VARCHAR(30) +); + +CREATE TABLE vicidial_inbound_groups ( +group_id VARCHAR(20) PRIMARY KEY NOT NULL, +group_name VARCHAR(30), +group_color VARCHAR(7), +active ENUM('Y','N'), +web_form_address TEXT, +voicemail_ext VARCHAR(10), +next_agent_call ENUM('random','oldest_call_start','oldest_call_finish','overall_user_level','inbound_group_rank','campaign_rank','fewest_calls','fewest_calls_campaign','longest_wait_time') default 'longest_wait_time', +fronter_display ENUM('Y','N') default 'Y', +ingroup_script VARCHAR(10), +get_call_launch ENUM('NONE','SCRIPT','WEBFORM') default 'NONE', +xferconf_a_dtmf VARCHAR(50), +xferconf_a_number VARCHAR(50), +xferconf_b_dtmf VARCHAR(50), +xferconf_b_number VARCHAR(50), +drop_call_seconds SMALLINT(4) unsigned default '360', +drop_action ENUM('HANGUP','MESSAGE','VOICEMAIL','IN_GROUP') default 'MESSAGE', +drop_exten VARCHAR(20) default '8307', +call_time_id VARCHAR(20) default '24hours', +after_hours_action ENUM('HANGUP','MESSAGE','EXTENSION','VOICEMAIL','IN_GROUP') default 'MESSAGE', +after_hours_message_filename VARCHAR(255) default 'vm-goodbye', +after_hours_exten VARCHAR(20) default '8300', +after_hours_voicemail VARCHAR(20), +welcome_message_filename VARCHAR(255) default '---NONE---', +moh_context VARCHAR(50) default 'default', +onhold_prompt_filename VARCHAR(255) default 'generic_hold', +prompt_interval SMALLINT(5) UNSIGNED default '60', +agent_alert_exten VARCHAR(100) default 'ding', +agent_alert_delay INT(6) default '1000', +default_xfer_group VARCHAR(20) default '---NONE---', +queue_priority TINYINT(2) default '0', +drop_inbound_group VARCHAR(20) default '---NONE---', +ingroup_recording_override ENUM('DISABLED','NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'DISABLED', +ingroup_rec_filename VARCHAR(50) default 'NONE', +afterhours_xfer_group VARCHAR(20) default '---NONE---', +qc_enabled ENUM('Y','N') default 'N', +qc_statuses TEXT, +qc_shift_id VARCHAR(20) default '24HRMIDNIGHT', +qc_get_record_launch ENUM('NONE','SCRIPT','WEBFORM','QCSCRIPT','QCWEBFORM') default 'NONE', +qc_show_recording ENUM('Y','N') default 'Y', +qc_web_form_address VARCHAR(255), +qc_script VARCHAR(10), +play_place_in_line ENUM('Y','N') default 'N', +play_estimate_hold_time ENUM('Y','N') default 'N', +hold_time_option ENUM('NONE','EXTENSION','VOICEMAIL','IN_GROUP','CALLERID_CALLBACK','DROP_ACTION','PRESS_VMAIL') default 'NONE', +hold_time_option_seconds SMALLINT(5) default '360', +hold_time_option_exten VARCHAR(20) default '8300', +hold_time_option_voicemail VARCHAR(20) default '', +hold_time_option_xfer_group VARCHAR(20) default '---NONE---', +hold_time_option_callback_filename VARCHAR(255) default 'vm-hangup', +hold_time_option_callback_list_id BIGINT(14) UNSIGNED default '999', +hold_recall_xfer_group VARCHAR(20) default '---NONE---', +no_delay_call_route ENUM('Y','N') default 'N', +play_welcome_message ENUM('ALWAYS','NEVER','IF_WAIT_ONLY','YES_UNLESS_NODELAY') default 'ALWAYS', +answer_sec_pct_rt_stat_one SMALLINT(5) UNSIGNED default '20', +answer_sec_pct_rt_stat_two SMALLINT(5) UNSIGNED default '30', +default_group_alias VARCHAR(30) default '', +no_agent_no_queue ENUM('N','Y','NO_PAUSED') default 'N', +no_agent_action ENUM('CALLMENU','INGROUP','DID','MESSAGE','EXTENSION','VOICEMAIL') default 'MESSAGE', +no_agent_action_value VARCHAR(255) default 'nbdy-avail-to-take-call|vm-goodbye', +web_form_address_two TEXT, +timer_action ENUM('NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','D3_DIAL','D4_DIAL','D5_DIAL','MESSAGE_ONLY') default 'NONE', +timer_action_message VARCHAR(255) default '', +timer_action_seconds MEDIUMINT(7) default '-1', +start_call_url TEXT, +dispo_call_url TEXT, +xferconf_c_number VARCHAR(50) default '', +xferconf_d_number VARCHAR(50) default '', +xferconf_e_number VARCHAR(50) default '' +); + +CREATE TABLE vicidial_stations ( +agent_station VARCHAR(10) PRIMARY KEY NOT NULL, +phone_channel VARCHAR(100), +computer_ip VARCHAR(15) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +DB_server_ip VARCHAR(15) NOT NULL, +DB_user VARCHAR(15), +DB_pass VARCHAR(15), +DB_port VARCHAR(6) +); + +CREATE TABLE vicidial_remote_agents ( +remote_agent_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user_start VARCHAR(20), +number_of_lines TINYINT UNSIGNED default '1', +server_ip VARCHAR(15) NOT NULL, +conf_exten VARCHAR(20), +status ENUM('ACTIVE','INACTIVE') default 'INACTIVE', +campaign_id VARCHAR(8), +closer_campaigns TEXT +); + +CREATE TABLE live_inbound_log ( +uniqueid VARCHAR(20) NOT NULL, +channel VARCHAR(100) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +caller_id VARCHAR(30), +extension VARCHAR(100), +phone_ext VARCHAR(40), +start_time DATETIME, +acknowledged ENUM('Y','N') default 'N', +inbound_number VARCHAR(20), +comment_a VARCHAR(50), +comment_b VARCHAR(50), +comment_c VARCHAR(50), +comment_d VARCHAR(50), +comment_e VARCHAR(50), +index (uniqueid), +index (phone_ext), +index (start_time) +); + +CREATE TABLE web_client_sessions ( +extension VARCHAR(100) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +program ENUM('agc','vicidial','monitor','other') default 'agc', +start_time DATETIME NOT NULL, +session_name VARCHAR(40) UNIQUE NOT NULL +); + +CREATE TABLE server_performance ( +start_time DATETIME NOT NULL, +server_ip VARCHAR(15) NOT NULL, +sysload INT(6) NOT NULL, +freeram SMALLINT(5) UNSIGNED NOT NULL, +usedram SMALLINT(5) UNSIGNED NOT NULL, +processes SMALLINT(4) UNSIGNED NOT NULL, +channels_total SMALLINT(4) UNSIGNED NOT NULL, +trunks_total SMALLINT(4) UNSIGNED NOT NULL, +clients_total SMALLINT(4) UNSIGNED NOT NULL, +clients_zap SMALLINT(4) UNSIGNED NOT NULL, +clients_iax SMALLINT(4) UNSIGNED NOT NULL, +clients_local SMALLINT(4) UNSIGNED NOT NULL, +clients_sip SMALLINT(4) UNSIGNED NOT NULL, +live_recordings SMALLINT(4) UNSIGNED NOT NULL, +cpu_user_percent SMALLINT(3) UNSIGNED NOT NULL default '0', +cpu_system_percent SMALLINT(3) UNSIGNED NOT NULL default '0', +cpu_idle_percent SMALLINT(3) UNSIGNED NOT NULL default '0' +); + +CREATE TABLE vicidial_agent_log ( +agent_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +event_time DATETIME, +lead_id INT(9) UNSIGNED, +campaign_id VARCHAR(8), +pause_epoch INT(10) UNSIGNED, +pause_sec SMALLINT(5) UNSIGNED default '0', +wait_epoch INT(10) UNSIGNED, +wait_sec SMALLINT(5) UNSIGNED default '0', +talk_epoch INT(10) UNSIGNED, +talk_sec SMALLINT(5) UNSIGNED default '0', +dispo_epoch INT(10) UNSIGNED, +dispo_sec SMALLINT(5) UNSIGNED default '0', +status VARCHAR(6), +user_group VARCHAR(20), +comments VARCHAR(20), +sub_status VARCHAR(6), +dead_epoch INT(10) UNSIGNED, +dead_sec SMALLINT(5) UNSIGNED default '0', +index (lead_id), +index (user), +index (event_time) +); + +CREATE TABLE vicidial_scripts ( +script_id VARCHAR(10) PRIMARY KEY NOT NULL, +script_name VARCHAR(50), +script_comments VARCHAR(255), +script_text TEXT, +active ENUM('Y','N') +); + +CREATE TABLE phone_favorites ( +extension VARCHAR(100), +server_ip VARCHAR(15), +extensions_list TEXT +); + +CREATE TABLE vicidial_callbacks ( +callback_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(8), +status VARCHAR(10), +entry_time DATETIME, +callback_time DATETIME, +modify_date TIMESTAMP, +user VARCHAR(20), +recipient ENUM('USERONLY','ANYONE'), +comments VARCHAR(255), +user_group VARCHAR(20), +index (lead_id), +index (status), +index (callback_time) +); + +CREATE TABLE vicidial_list_pins ( +pins_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +entry_time DATETIME, +phone_number VARCHAR(18), +lead_id INT(9) UNSIGNED, +campaign_id VARCHAR(20), +product_code VARCHAR(20), +user VARCHAR(20), +digits VARCHAR(20), +index (lead_id), +index (phone_number), +index (entry_time) +); + +CREATE TABLE vicidial_lead_filters ( +lead_filter_id VARCHAR(10) PRIMARY KEY NOT NULL, +lead_filter_name VARCHAR(30) NOT NULL, +lead_filter_comments VARCHAR(255), +lead_filter_sql TEXT +); + +CREATE TABLE vicidial_call_times ( +call_time_id VARCHAR(10) PRIMARY KEY NOT NULL, +call_time_name VARCHAR(30) NOT NULL, +call_time_comments VARCHAR(255) default '', +ct_default_start SMALLINT(4) unsigned NOT NULL default '900', +ct_default_stop SMALLINT(4) unsigned NOT NULL default '2100', +ct_sunday_start SMALLINT(4) unsigned default '0', +ct_sunday_stop SMALLINT(4) unsigned default '0', +ct_monday_start SMALLINT(4) unsigned default '0', +ct_monday_stop SMALLINT(4) unsigned default '0', +ct_tuesday_start SMALLINT(4) unsigned default '0', +ct_tuesday_stop SMALLINT(4) unsigned default '0', +ct_wednesday_start SMALLINT(4) unsigned default '0', +ct_wednesday_stop SMALLINT(4) unsigned default '0', +ct_thursday_start SMALLINT(4) unsigned default '0', +ct_thursday_stop SMALLINT(4) unsigned default '0', +ct_friday_start SMALLINT(4) unsigned default '0', +ct_friday_stop SMALLINT(4) unsigned default '0', +ct_saturday_start SMALLINT(4) unsigned default '0', +ct_saturday_stop SMALLINT(4) unsigned default '0', +ct_state_call_times TEXT default '' +); + +CREATE TABLE vicidial_state_call_times ( +state_call_time_id VARCHAR(10) PRIMARY KEY NOT NULL, +state_call_time_state VARCHAR(2) NOT NULL, +state_call_time_name VARCHAR(30) NOT NULL, +state_call_time_comments VARCHAR(255) default '', +sct_default_start SMALLINT(4) unsigned NOT NULL default '900', +sct_default_stop SMALLINT(4) unsigned NOT NULL default '2100', +sct_sunday_start SMALLINT(4) unsigned default '0', +sct_sunday_stop SMALLINT(4) unsigned default '0', +sct_monday_start SMALLINT(4) unsigned default '0', +sct_monday_stop SMALLINT(4) unsigned default '0', +sct_tuesday_start SMALLINT(4) unsigned default '0', +sct_tuesday_stop SMALLINT(4) unsigned default '0', +sct_wednesday_start SMALLINT(4) unsigned default '0', +sct_wednesday_stop SMALLINT(4) unsigned default '0', +sct_thursday_start SMALLINT(4) unsigned default '0', +sct_thursday_stop SMALLINT(4) unsigned default '0', +sct_friday_start SMALLINT(4) unsigned default '0', +sct_friday_stop SMALLINT(4) unsigned default '0', +sct_saturday_start SMALLINT(4) unsigned default '0', +sct_saturday_stop SMALLINT(4) unsigned default '0' +); + +CREATE TABLE vicidial_campaign_stats ( +campaign_id VARCHAR(20) PRIMARY KEY NOT NULL, +update_time TIMESTAMP, +dialable_leads INT(9) UNSIGNED default '0', +calls_today INT(9) UNSIGNED default '0', +answers_today INT(9) UNSIGNED default '0', +drops_today INT(9) UNSIGNED default '0', +drops_today_pct VARCHAR(6) default '0', +drops_answers_today_pct VARCHAR(6) default '0', +calls_hour INT(9) UNSIGNED default '0', +answers_hour INT(9) UNSIGNED default '0', +drops_hour INT(9) UNSIGNED default '0', +drops_hour_pct VARCHAR(6) default '0', +calls_halfhour INT(9) UNSIGNED default '0', +answers_halfhour INT(9) UNSIGNED default '0', +drops_halfhour INT(9) UNSIGNED default '0', +drops_halfhour_pct VARCHAR(6) default '0', +calls_fivemin INT(9) UNSIGNED default '0', +answers_fivemin INT(9) UNSIGNED default '0', +drops_fivemin INT(9) UNSIGNED default '0', +drops_fivemin_pct VARCHAR(6) default '0', +calls_onemin INT(9) UNSIGNED default '0', +answers_onemin INT(9) UNSIGNED default '0', +drops_onemin INT(9) UNSIGNED default '0', +drops_onemin_pct VARCHAR(6) default '0', +differential_onemin VARCHAR(20) default '0', +agents_average_onemin VARCHAR(20) default '0', +balance_trunk_fill SMALLINT(5) UNSIGNED default '0', +status_category_1 VARCHAR(20), +status_category_count_1 INT(9) UNSIGNED default '0', +status_category_2 VARCHAR(20), +status_category_count_2 INT(9) UNSIGNED default '0', +status_category_3 VARCHAR(20), +status_category_count_3 INT(9) UNSIGNED default '0', +status_category_4 VARCHAR(20), +status_category_count_4 INT(9) UNSIGNED default '0', +hold_sec_stat_one MEDIUMINT(8) UNSIGNED default '0', +hold_sec_stat_two MEDIUMINT(8) UNSIGNED default '0', +agent_non_pause_sec MEDIUMINT(8) UNSIGNED default '0', +hold_sec_answer_calls MEDIUMINT(8) UNSIGNED default '0', +hold_sec_drop_calls MEDIUMINT(8) UNSIGNED default '0', +hold_sec_queue_calls MEDIUMINT(8) UNSIGNED default '0' +); + +CREATE TABLE vicidial_dnc ( +phone_number VARCHAR(18) PRIMARY KEY NOT NULL +); + +CREATE TABLE vicidial_lead_recycle ( +recycle_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +campaign_id VARCHAR(8), +status VARCHAR(6) NOT NULL, +attempt_delay SMALLINT(5) UNSIGNED default '1800', +attempt_maximum TINYINT(3) UNSIGNED default '2', +active ENUM('Y','N') default 'N', +index (campaign_id) +); + +CREATE TABLE vicidial_campaign_server_stats ( +campaign_id VARCHAR(20) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +update_time TIMESTAMP, +local_trunk_shortage SMALLINT(5) UNSIGNED default '0', +index (campaign_id), +index (server_ip) +); + +CREATE TABLE vicidial_server_trunks ( +server_ip VARCHAR(15) NOT NULL, +campaign_id VARCHAR(20) NOT NULL, +dedicated_trunks SMALLINT(5) UNSIGNED default '0', +trunk_restriction ENUM('MAXIMUM_LIMIT','OVERFLOW_ALLOWED') default 'OVERFLOW_ALLOWED', +index (campaign_id), +index (server_ip) +); + +CREATE TABLE vicidial_postal_codes ( +postal_code VARCHAR(10) NOT NULL, +state VARCHAR(4), +GMT_offset VARCHAR(5), +DST enum('Y','N'), +DST_range VARCHAR(8), +country CHAR(3), +country_code SMALLINT(5) UNSIGNED +); + +CREATE TABLE vicidial_pause_codes ( +pause_code VARCHAR(6) NOT NULL, +pause_code_name VARCHAR(30), +billable ENUM('NO','YES','HALF') default 'NO', +campaign_id VARCHAR(8), +index (campaign_id) +); + +CREATE TABLE system_settings ( +version VARCHAR(50), +install_date VARCHAR(50), +use_non_latin ENUM('0','1') default '0', +webroot_writable ENUM('0','1') default '1', +enable_queuemetrics_logging ENUM('0','1') default '0', +queuemetrics_server_ip VARCHAR(15), +queuemetrics_dbname VARCHAR(50), +queuemetrics_login VARCHAR(50), +queuemetrics_pass VARCHAR(50), +queuemetrics_url VARCHAR(255), +queuemetrics_log_id VARCHAR(10) default 'VIC', +queuemetrics_eq_prepend VARCHAR(255) default 'NONE', +vicidial_agent_disable ENUM('NOT_ACTIVE','LIVE_AGENT','EXTERNAL','ALL') default 'ALL', +allow_sipsak_messages ENUM('0','1') default '0', +admin_home_url VARCHAR(255) default '../vicidial/welcome.php', +enable_agc_xfer_log ENUM('0','1') default '0', +db_schema_version INT(8) UNSIGNED default '0', +auto_user_add_value INT(9) UNSIGNED default '101', +timeclock_end_of_day VARCHAR(4) default '0000', +timeclock_last_reset_date DATE, +vdc_header_date_format VARCHAR(50) default 'MS_DASH_24HR 2008-06-24 23:59:59', +vdc_customer_date_format VARCHAR(50) default 'AL_TEXT_AMPM OCT 24, 2008 11:59:59 PM', +vdc_header_phone_format VARCHAR(50) default 'US_PARN (000)000-0000', +vdc_agent_api_active ENUM('0','1') default '0', +qc_last_pull_time DATETIME, +enable_vtiger_integration ENUM('0','1') default '0', +vtiger_server_ip VARCHAR(15), +vtiger_dbname VARCHAR(50), +vtiger_login VARCHAR(50), +vtiger_pass VARCHAR(50), +vtiger_url VARCHAR(255), +qc_features_active ENUM('1','0') default '0', +outbound_autodial_active ENUM('1','0') default '1', +outbound_calls_per_second SMALLINT(3) UNSIGNED default '40', +enable_tts_integration ENUM('0','1') default '0', +agentonly_callback_campaign_lock ENUM('0','1') default '1', +sounds_central_control_active ENUM('0','1') default '0', +sounds_web_server VARCHAR(50) default '127.0.0.1', +sounds_web_directory VARCHAR(255) default '', +active_voicemail_server VARCHAR(15) default '', +auto_dial_limit VARCHAR(5) default '4', +user_territories_active ENUM('0','1') default '0', +allow_custom_dialplan ENUM('0','1') default '0', +db_schema_update_date DATETIME, +enable_second_webform ENUM('0','1') default '1' +); + +CREATE TABLE vicidial_campaigns_list_mix ( +vcl_id VARCHAR(20) PRIMARY KEY NOT NULL, +vcl_name VARCHAR(50), +campaign_id VARCHAR(8), +list_mix_container TEXT, +mix_method ENUM('EVEN_MIX','IN_ORDER','RANDOM') default 'IN_ORDER', +status ENUM('ACTIVE','INACTIVE') default 'INACTIVE', +index (campaign_id) +); + +CREATE TABLE vicidial_status_categories ( +vsc_id VARCHAR(20) PRIMARY KEY NOT NULL, +vsc_name VARCHAR(50), +vsc_description VARCHAR(255), +tovdad_display ENUM('Y','N') default 'N', +sale_category ENUM('Y','N') default 'N', +dead_lead_category ENUM('Y','N') default 'N' +); + +CREATE TABLE vicidial_ivr ( +ivr_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +entry_time DATETIME, +length_in_sec SMALLINT(5) UNSIGNED default '0', +inbound_number VARCHAR(12), +recording_id INT(9) UNSIGNED, +recording_filename VARCHAR(50), +company_id VARCHAR(12), +phone_number VARCHAR(18), +lead_id INT(9) UNSIGNED, +campaign_id VARCHAR(20), +product_code VARCHAR(20), +user VARCHAR(20), +prompt_audio_1 VARCHAR(20), +prompt_response_1 TINYINT(1) UNSIGNED default '0', +prompt_audio_2 VARCHAR(20), +prompt_response_2 TINYINT(1) UNSIGNED default '0', +prompt_audio_3 VARCHAR(20), +prompt_response_3 TINYINT(1) UNSIGNED default '0', +prompt_audio_4 VARCHAR(20), +prompt_response_4 TINYINT(1) UNSIGNED default '0', +prompt_audio_5 VARCHAR(20), +prompt_response_5 TINYINT(1) UNSIGNED default '0', +prompt_audio_6 VARCHAR(20), +prompt_response_6 TINYINT(1) UNSIGNED default '0', +prompt_audio_7 VARCHAR(20), +prompt_response_7 TINYINT(1) UNSIGNED default '0', +prompt_audio_8 VARCHAR(20), +prompt_response_8 TINYINT(1) UNSIGNED default '0', +prompt_audio_9 VARCHAR(20), +prompt_response_9 TINYINT(1) UNSIGNED default '0', +prompt_audio_10 VARCHAR(20), +prompt_response_10 TINYINT(1) UNSIGNED default '0', +prompt_audio_11 VARCHAR(20), +prompt_response_11 TINYINT(1) UNSIGNED default '0', +prompt_audio_12 VARCHAR(20), +prompt_response_12 TINYINT(1) UNSIGNED default '0', +prompt_audio_13 VARCHAR(20), +prompt_response_13 TINYINT(1) UNSIGNED default '0', +prompt_audio_14 VARCHAR(20), +prompt_response_14 TINYINT(1) UNSIGNED default '0', +prompt_audio_15 VARCHAR(20), +prompt_response_15 TINYINT(1) UNSIGNED default '0', +prompt_audio_16 VARCHAR(20), +prompt_response_16 TINYINT(1) UNSIGNED default '0', +prompt_audio_17 VARCHAR(20), +prompt_response_17 TINYINT(1) UNSIGNED default '0', +prompt_audio_18 VARCHAR(20), +prompt_response_18 TINYINT(1) UNSIGNED default '0', +prompt_audio_19 VARCHAR(20), +prompt_response_19 TINYINT(1) UNSIGNED default '0', +prompt_audio_20 VARCHAR(20), +prompt_response_20 TINYINT(1) UNSIGNED default '0', +index (phone_number), +index (entry_time) +); + +ALTER TABLE vicidial_ivr AUTO_INCREMENT = 1000000; + +CREATE TABLE vicidial_inbound_group_agents ( +user VARCHAR(20), +group_id VARCHAR(20), +group_rank TINYINT(1) default '0', +group_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +group_web_vars VARCHAR(255) default '', +index (group_id), +index (user) +); + +CREATE TABLE vicidial_live_inbound_agents ( +user VARCHAR(20), +group_id VARCHAR(20), +group_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +last_call_time DATETIME, +last_call_finish DATETIME, +index (group_id), +index (group_weight), +unique index vlia_user_group_id (user, group_id) +); + +CREATE TABLE vicidial_campaign_agents ( +user VARCHAR(20), +campaign_id VARCHAR(20), +campaign_rank TINYINT(1) default '0', +campaign_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +group_web_vars VARCHAR(255) default '', +index (campaign_id), +index (user) +); + +CREATE TABLE vicidial_user_closer_log ( +user VARCHAR(20), +campaign_id VARCHAR(20), +event_date DATETIME, +blended ENUM('1','0') default '0', +closer_campaigns TEXT, +manager_change VARCHAR(20) default '', +index (user), +index (event_date) +); + +CREATE TABLE vicidial_qc_codes ( +code VARCHAR(8) PRIMARY KEY NOT NULL, +code_name VARCHAR(30) +); + +CREATE TABLE vicidial_agent_sph ( +campaign_group_id VARCHAR(20) NOT NULL, +stat_date DATE NOT NULL, +shift VARCHAR(20) NOT NULL, +role ENUM('FRONTER','CLOSER') default 'FRONTER', +user VARCHAR(20) NOT NULL, +calls MEDIUMINT(8) UNSIGNED default '0', +sales MEDIUMINT(8) UNSIGNED default '0', +login_sec MEDIUMINT(8) UNSIGNED default '0', +login_hours DECIMAL(5,2) DEFAULT '0.00', +sph DECIMAL(6,2) DEFAULT '0.00', +index (campaign_group_id), +index (stat_date) +); + +CREATE TABLE phones_alias ( +alias_id VARCHAR(20) NOT NULL UNIQUE PRIMARY KEY, +alias_name VARCHAR(50), +logins_list VARCHAR(255) +); + +CREATE TABLE vicidial_shifts ( +shift_id VARCHAR(20) NOT NULL, +shift_name VARCHAR(50), +shift_start_time VARCHAR(4) default '0900', +shift_length VARCHAR(5) default '16:00', +shift_weekdays VARCHAR(7) default '0123456', +index (shift_id) +); + +CREATE TABLE vicidial_timeclock_log ( +timeclock_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +event_epoch INT(10) UNSIGNED NOT NULL, +event_date DATETIME NOT NULL, +login_sec INT(10) UNSIGNED, +event VARCHAR(50) NOT NULL, +user VARCHAR(20) NOT NULL, +user_group VARCHAR(20) NOT NULL, +ip_address VARCHAR(15), +shift_id VARCHAR(20), +notes VARCHAR(255), +manager_user VARCHAR(20), +manager_ip VARCHAR(15), +event_datestamp TIMESTAMP NOT NULL, +tcid_link INT(9) UNSIGNED, +index (user) +); + +CREATE TABLE vicidial_timeclock_status ( +user VARCHAR(20) UNIQUE NOT NULL, +user_group VARCHAR(20) NOT NULL, +event_epoch INT(10) UNSIGNED, +event_date TIMESTAMP, +status VARCHAR(50), +ip_address VARCHAR(15), +shift_id VARCHAR(20), +index (user) +); + +CREATE TABLE vicidial_timeclock_audit_log ( +timeclock_id INT(9) UNSIGNED NOT NULL, +event_epoch INT(10) UNSIGNED NOT NULL, +event_date DATETIME NOT NULL, +login_sec INT(10) UNSIGNED, +event VARCHAR(50) NOT NULL, +user VARCHAR(20) NOT NULL, +user_group VARCHAR(20) NOT NULL, +ip_address VARCHAR(15), +shift_id VARCHAR(20), +event_datestamp TIMESTAMP NOT NULL, +tcid_link INT(9) UNSIGNED, +index (timeclock_id), +index (user) +); + +CREATE TABLE vicidial_admin_log ( +admin_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +event_date DATETIME NOT NULL, +user VARCHAR(20) NOT NULL, +ip_address VARCHAR(15) NOT NULL, +event_section VARCHAR(30) NOT NULL, +event_type ENUM('ADD','COPY','LOAD','RESET','MODIFY','DELETE','SEARCH','LOGIN','LOGOUT','CLEAR','OVERRIDE','EXPORT','OTHER') default 'OTHER', +record_id VARCHAR(50) NOT NULL, +event_code VARCHAR(255) NOT NULL, +event_sql TEXT, +event_notes TEXT, +index (user), +index (event_section), +index (record_id) +); + +CREATE TABLE vicidial_list_alt_phones ( +alt_phone_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +phone_code VARCHAR(10), +phone_number VARCHAR(18), +alt_phone_note VARCHAR(30), +alt_phone_count SMALLINT(5) UNSIGNED, +active ENUM('Y','N') default 'Y', +index (lead_id), +index (phone_number) +); + +CREATE TABLE vicidial_campaign_dnc ( +phone_number VARCHAR(18) NOT NULL, +campaign_id VARCHAR(8) NOT NULL, +index (phone_number), +unique index phonecamp (phone_number, campaign_id) +); + +CREATE TABLE vicidial_inbound_dids ( +did_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +did_pattern VARCHAR(50) NOT NULL, +did_description VARCHAR(50), +did_active ENUM('Y','N') default 'Y', +did_route ENUM('EXTEN','VOICEMAIL','AGENT','PHONE','IN_GROUP','CALLMENU') default 'EXTEN', +extension VARCHAR(50) default '9998811112', +exten_context VARCHAR(50) default 'default', +voicemail_ext VARCHAR(10), +phone VARCHAR(100), +server_ip VARCHAR(15), +user VARCHAR(20), +user_unavailable_action ENUM('IN_GROUP','EXTEN','VOICEMAIL','PHONE') default 'VOICEMAIL', +user_route_settings_ingroup VARCHAR(20) default 'AGENTDIRECT', +group_id VARCHAR(20), +call_handle_method VARCHAR(20) default 'CID', +agent_search_method ENUM('LO','LB','SO') default 'LB', +list_id BIGINT(14) UNSIGNED default '999', +campaign_id VARCHAR(8), +phone_code VARCHAR(10) default '1', +menu_id VARCHAR(50) default '', +unique index (did_pattern), +index (group_id) +); + +CREATE TABLE vicidial_did_log ( +uniqueid VARCHAR(20) NOT NULL, +channel VARCHAR(100) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +caller_id_number VARCHAR(18), +caller_id_name VARCHAR(20), +extension VARCHAR(100), +call_date DATETIME, +did_id VARCHAR(9) default '', +did_route VARCHAR(9) default '', +index (uniqueid), +index (caller_id_number), +index (extension), +index (call_date) +); + +CREATE TABLE vicidial_api_log ( +api_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20) NOT NULL, +api_date DATETIME, +api_script VARCHAR(10), +function VARCHAR(20) NOT NULL, +agent_user VARCHAR(20), +value VARCHAR(255), +result VARCHAR(10), +result_reason VARCHAR(255), +source VARCHAR(20), +data TEXT, +index(api_date) +); + +CREATE TABLE vicidial_nanpa_prefix_codes ( +areacode CHAR(3), +prefix CHAR(3), +GMT_offset VARCHAR(6), +DST enum('Y','N'), +latitude VARCHAR(17), +longitude VARCHAR(17), +city VARCHAR(50) default '', +state VARCHAR(2) default '', +postal_code VARCHAR(10) default '', +country VARCHAR(2) default '' +); + +CREATE INDEX areaprefix on vicidial_nanpa_prefix_codes (areacode,prefix); + +CREATE TABLE vicidial_cpd_log ( +cpd_id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +channel VARCHAR(100) NOT NULL, +uniqueid VARCHAR(20), +callerid VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +lead_id INT(9) UNSIGNED, +event_date DATETIME, +result VARCHAR(20), +status ENUM('NEW','PROCESSED') default 'NEW', +cpd_seconds DECIMAL(7,2) default '0', +index(uniqueid), +index(callerid), +index(lead_id) +); + +CREATE TABLE vicidial_conf_templates ( +template_id VARCHAR(15) NOT NULL, +template_name VARCHAR(50) NOT NULL, +template_contents TEXT, +unique index (template_id) +); + +CREATE TABLE vicidial_server_carriers ( +carrier_id VARCHAR(15) NOT NULL, +carrier_name VARCHAR(50) NOT NULL, +registration_string VARCHAR(255), +template_id VARCHAR(15) NOT NULL, +account_entry TEXT, +protocol ENUM('SIP','Zap','IAX2','EXTERNAL') default 'SIP', +globals_string VARCHAR(255), +dialplan_entry TEXT, +server_ip VARCHAR(15) NOT NULL, +active ENUM('Y','N') default 'Y', +carrier_description VARCHAR(255), +unique index(carrier_id), +index (server_ip) +); + +CREATE TABLE groups_alias ( +group_alias_id VARCHAR(30) NOT NULL UNIQUE PRIMARY KEY, +group_alias_name VARCHAR(50), +caller_id_number VARCHAR(20), +caller_id_name VARCHAR(20), +active ENUM('Y','N') default 'N' +); + +CREATE TABLE user_call_log ( +user_call_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20), +call_date DATETIME, +call_type VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +phone_number VARCHAR(20), +number_dialed VARCHAR(30), +lead_id INT(9) UNSIGNED, +callerid VARCHAR(20), +group_alias_id VARCHAR(30), +index (user), +index (call_date), +index (group_alias_id) +); + +CREATE TABLE vicidial_tts_prompts ( +tts_id VARCHAR(50) PRIMARY KEY NOT NULL, +tts_name VARCHAR(100), +active ENUM('Y','N'), +tts_text TEXT +); + +CREATE TABLE vicidial_call_menu ( +menu_id VARCHAR(50) PRIMARY KEY NOT NULL, +menu_name VARCHAR(100), +menu_prompt VARCHAR(255), +menu_timeout SMALLINT(2) UNSIGNED default '10', +menu_timeout_prompt VARCHAR(255) default 'NONE', +menu_invalid_prompt VARCHAR(255) default 'NONE', +menu_repeat TINYINT(1) UNSIGNED default '0', +menu_time_check ENUM('0','1') default '0', +call_time_id VARCHAR(20) default '', +track_in_vdac ENUM('0','1') default '1', +custom_dialplan_entry TEXT, +tracking_group VARCHAR(20) default 'CALLMENU' +); + +CREATE TABLE vicidial_call_menu_options ( +menu_id VARCHAR(50) NOT NULL, +option_value VARCHAR(20) NOT NULL default '', +option_description VARCHAR(255) default '', +option_route VARCHAR(20), +option_route_value VARCHAR(255), +option_route_value_context VARCHAR(100), +index (menu_id), +unique index menuoption (menu_id, option_value) +); + +CREATE TABLE vicidial_user_territories ( +user VARCHAR(20) NOT NULL, +territory VARCHAR(100) default '', +level ENUM('TOP_AGENT','STANDARD_AGENT','BOTTOM_AGENT') default 'STANDARD_AGENT', +index (user), +unique index userterritory (user, territory) +); + +CREATE TABLE vicidial_territories ( +territory_id MEDIUMINT(8) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +territory VARCHAR(100) default '', +territory_description VARCHAR(255) default '', +unique index uniqueterritory (territory) +); + +CREATE TABLE vicidial_override_ids ( +id_table VARCHAR(50) PRIMARY KEY NOT NULL, +active ENUM('0','1') default '1', +value INT(9) default '0' +); + +CREATE TABLE vicidial_carrier_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +call_date DATETIME, +server_ip VARCHAR(15) NOT NULL, +lead_id INT(9) UNSIGNED, +hangup_cause TINYINT(1) UNSIGNED default '0', +dialstatus VARCHAR(16), +channel VARCHAR(100), +dial_time SMALLINT(2) UNSIGNED default '0', +index (call_date) +); + +CREATE TABLE vicidial_list_update_log ( +event_date DATETIME, +lead_id VARCHAR(255), +vendor_id VARCHAR(255), +phone_number VARCHAR(255), +status VARCHAR(6), +old_status VARCHAR(255), +filename VARCHAR(255) default '', +result VARCHAR(20), +result_rows SMALLINT(3) UNSIGNED default '0', +list_id VARCHAR(255), +index (event_date) +); + +CREATE TABLE vicidial_drop_rate_groups ( +group_id VARCHAR(20) PRIMARY KEY NOT NULL, +update_time TIMESTAMP, +calls_today INT(9) UNSIGNED default '0', +answers_today INT(9) UNSIGNED default '0', +drops_today INT(9) UNSIGNED default '0', +drops_today_pct VARCHAR(6) default '0', +drops_answers_today_pct VARCHAR(6) default '0' +); + +CREATE TABLE vicidial_process_triggers ( +trigger_id VARCHAR(20) PRIMARY KEY NOT NULL, +trigger_name VARCHAR(100), +server_ip VARCHAR(15) NOT NULL, +trigger_time DATETIME, +trigger_run ENUM('0','1') default '0', +user VARCHAR(20), +trigger_lines TEXT +); + +CREATE TABLE vicidial_process_trigger_log ( +trigger_id VARCHAR(20) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +trigger_time DATETIME, +user VARCHAR(20), +trigger_lines TEXT, +trigger_results TEXT, +index (trigger_id), +index (trigger_time) +); + +CREATE TABLE vtiger_rank_data ( +account VARCHAR(20) PRIMARY KEY NOT NULL, +seqacct VARCHAR(20) UNIQUE NOT NULL, +last_attempt_days SMALLINT(5) UNSIGNED NOT NULL, +orders SMALLINT(5) NOT NULL, +net_sales SMALLINT(5) NOT NULL, +net_sales_ly SMALLINT(5) NOT NULL, +percent_variance VARCHAR(10) NOT NULL, +imu VARCHAR(10) NOT NULL, +aov SMALLINT(5) NOT NULL, +returns SMALLINT(5) NOT NULL, +rank SMALLINT(5) NOT NULL +); + +CREATE TABLE vtiger_rank_parameters ( +parameter_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +parameter VARCHAR(20) NOT NULL, +lower_range VARCHAR(20) NOT NULL, +upper_range VARCHAR(20) NOT NULL, +points SMALLINT(5) NOT NULL, +index (parameter) +); + + +CREATE TABLE twoday_call_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +channel VARCHAR(100), +channel_group VARCHAR(30), +type VARCHAR(10), +server_ip VARCHAR(15), +extension VARCHAR(100), +number_dialed VARCHAR(15), +caller_code VARCHAR(20), +start_time DATETIME, +start_epoch INT(10), +end_time DATETIME, +end_epoch INT(10), +length_in_sec INT(10), +length_in_min DOUBLE(8,2), +index (caller_code), +index (server_ip), +index (channel) +); + +CREATE TABLE twoday_vicidial_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(8), +call_date DATETIME, +start_epoch INT(10) UNSIGNED, +end_epoch INT(10) UNSIGNED, +length_in_sec INT(10), +status VARCHAR(6), +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +comments VARCHAR(255), +processed ENUM('Y','N'), +user_group VARCHAR(20), +term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','NONE') default 'NONE', +alt_dial VARCHAR(6) default 'NONE', +index (lead_id), +index (call_date) +); + +CREATE TABLE twoday_vicidial_closer_log ( +closecallid INT(9) UNSIGNED PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(20), +call_date DATETIME, +start_epoch INT(10) UNSIGNED, +end_epoch INT(10) UNSIGNED, +length_in_sec INT(10), +status VARCHAR(6), +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +comments VARCHAR(255), +processed ENUM('Y','N'), +queue_seconds DECIMAL(7,2) default '0', +user_group VARCHAR(20), +xfercallid INT(9) UNSIGNED, +term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','HOLDRECALLXFER','HOLDTIME','NOAGENT','NONE') default 'NONE', +uniqueid VARCHAR(20) NOT NULL default '', +agent_only VARCHAR(20) default '', +index (lead_id), +index (call_date), +index (campaign_id), +index (uniqueid) +); + +CREATE TABLE twoday_vicidial_xfer_log ( +xfercallid INT(9) UNSIGNED PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(20), +call_date DATETIME, +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +closer VARCHAR(20), +index (lead_id), +index (call_date) +); + +CREATE TABLE twoday_recording_log ( +recording_id INT(10) UNSIGNED PRIMARY KEY NOT NULL, +channel VARCHAR(100), +server_ip VARCHAR(15), +extension VARCHAR(100), +start_time DATETIME, +start_epoch INT(10) UNSIGNED, +end_time DATETIME, +end_epoch INT(10) UNSIGNED, +length_in_sec MEDIUMINT(8) UNSIGNED, +length_in_min DOUBLE(8,2), +filename VARCHAR(50), +location VARCHAR(255), +lead_id INT(9) UNSIGNED, +user VARCHAR(20), +vicidial_id VARCHAR(20), +index(filename), +index(lead_id), +index(user), +index(vicidial_id) +); + +CREATE TABLE twoday_vicidial_agent_log ( +agent_log_id INT(9) UNSIGNED PRIMARY KEY NOT NULL, +user VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +event_time DATETIME, +lead_id INT(9) UNSIGNED, +campaign_id VARCHAR(8), +pause_epoch INT(10) UNSIGNED, +pause_sec SMALLINT(5) UNSIGNED default '0', +wait_epoch INT(10) UNSIGNED, +wait_sec SMALLINT(5) UNSIGNED default '0', +talk_epoch INT(10) UNSIGNED, +talk_sec SMALLINT(5) UNSIGNED default '0', +dispo_epoch INT(10) UNSIGNED, +dispo_sec SMALLINT(5) UNSIGNED default '0', +status VARCHAR(6), +user_group VARCHAR(20), +comments VARCHAR(20), +sub_status VARCHAR(6), +dead_epoch INT(10) UNSIGNED, +dead_sec SMALLINT(5) UNSIGNED default '0', +index (lead_id), +index (user), +index (event_time) +); + +CREATE TABLE vicidial_music_on_hold ( +moh_id VARCHAR(100) PRIMARY KEY NOT NULL, +moh_name VARCHAR(255), +active ENUM('Y','N') default 'N', +random ENUM('Y','N') default 'N', +remove ENUM('Y','N') default 'N' +); + +CREATE TABLE vicidial_music_on_hold_files ( +filename VARCHAR(100) NOT NULL, +moh_id VARCHAR(100) NOT NULL, +rank SMALLINT(5), +unique index mohfile (filename, moh_id) +); + +CREATE TABLE vicidial_voicemail ( +voicemail_id VARCHAR(10) NOT NULL UNIQUE PRIMARY KEY, +active ENUM('Y','N') default 'Y', +pass VARCHAR(10) NOT NULL, +fullname VARCHAR(100) NOT NULL, +messages INT(4) default '0', +old_messages INT(4) default '0', +email VARCHAR(100), +delete_vm_after_email ENUM('N','Y') default 'N' +); + +CREATE TABLE vicidial_user_territory_log ( +user VARCHAR(20), +campaign_id VARCHAR(20), +event_date DATETIME, +agent_territories TEXT, +index (user), +index (event_date) +); + +CREATE TABLE vicidial_grab_call_log ( +auto_call_id INT(9) UNSIGNED NOT NULL, +user VARCHAR(20), +event_date DATETIME, +call_time DATETIME, +campaign_id VARCHAR(20), +uniqueid VARCHAR(20), +phone_number VARCHAR(20), +lead_id INT(9) UNSIGNED, +queue_priority TINYINT(2) default '0', +call_type ENUM('IN','OUT','OUTBALANCE') default 'OUT', +index (auto_call_id), +index (event_date), +index (user), +index (campaign_id) +); + + +ALTER TABLE vicidial_campaign_server_stats ENGINE=HEAP; + +ALTER TABLE live_channels ENGINE=HEAP; + +ALTER TABLE live_sip_channels ENGINE=HEAP; + +ALTER TABLE parked_channels ENGINE=HEAP; + +ALTER TABLE server_updater ENGINE=HEAP; + +ALTER TABLE web_client_sessions ENGINE=HEAP; + + +UPDATE system_settings SET auto_user_add_value='1101'; + +INSERT INTO vicidial_music_on_hold SET moh_id='default',moh_name='Default Music On Hold',active='Y',random='N'; +INSERT INTO vicidial_music_on_hold_files SET moh_id='default',filename='conf',rank='1'; + +INSERT INTO vicidial_inbound_groups(group_id,group_name,group_color,active,queue_priority) values('AGENTDIRECT','Single Agent Direct Queue','white','Y','99'); + +INSERT INTO vicidial_lists SET list_id='999',list_name='Default inbound list',campaign_id='TESTCAMP',active='N'; +INSERT INTO vicidial_lists SET list_id='998',list_name='Default Manual list',campaign_id='TESTCAMP',active='N'; + +INSERT INTO system_settings (version,install_date) values('2.2.0rc1', CURDATE()); + +INSERT INTO vicidial_status_categories (vsc_id,vsc_name) values('UNDEFINED','Default Category'); + +INSERT INTO vicidial_user_groups SET user_group='ADMIN',group_name='VICIDIAL ADMINISTRATORS',allowed_campaigns=' -ALL-CAMPAIGNS- - -',agent_status_viewable_groups=' --ALL-GROUPS-- '; + +INSERT INTO vicidial_call_times SET call_time_id='24hours',call_time_name='default 24 hours calling',ct_default_start='0',ct_default_stop='2400'; +INSERT INTO vicidial_call_times SET call_time_id='9am-9pm',call_time_name='default 9am to 9pm calling',ct_default_start='900',ct_default_stop='2100'; +INSERT INTO vicidial_call_times SET call_time_id='9am-5pm',call_time_name='default 9am to 5pm calling',ct_default_start='900',ct_default_stop='1700'; +INSERT INTO vicidial_call_times SET call_time_id='12pm-5pm',call_time_name='default 12pm to 5pm calling',ct_default_start='1200',ct_default_stop='1700'; +INSERT INTO vicidial_call_times SET call_time_id='12pm-9pm',call_time_name='default 12pm to 9pm calling',ct_default_start='1200',ct_default_stop='1200'; +INSERT INTO vicidial_call_times SET call_time_id='5pm-9pm',call_time_name='default 5pm to 9pm calling',ct_default_start='1700',ct_default_stop='2100'; + +INSERT INTO vicidial_state_call_times SET state_call_time_id='alabama',state_call_time_state='AL',state_call_time_name='Alabama 8am-8pm and Sunday',sct_default_start='800',sct_default_stop='2000',sct_sunday_start='2400',sct_sunday_stop='2400'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='illinois',state_call_time_state='IL',state_call_time_name='Illinois 8am',sct_default_start='800',sct_default_stop='2100'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='indiana',state_call_time_state='IN',state_call_time_name='Indiana 8pm restriction',sct_default_start='900',sct_default_stop='2000'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='kentucky',state_call_time_state='KY',state_call_time_name='Kentucky 10am restriction',sct_default_start='1000',sct_default_stop='2100'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='louisiana',state_call_time_state='LA',state_call_time_name='Louisiana 8am-8pm and Sunday',sct_default_start='800',sct_default_stop='2000',sct_sunday_start='2400',sct_sunday_stop='2400'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='massachuse',state_call_time_state='MA',state_call_time_name='Massachusetts 8am-8pm',sct_default_start='800',sct_default_stop='2000'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='mississipp',state_call_time_state='MS',state_call_time_name='Mississippi 8am-8pm and Sunday',sct_default_start='800',sct_default_stop='2000',sct_sunday_start='2400',sct_sunday_stop='2400'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='nebraska',state_call_time_state='NE',state_call_time_name='Nebraska 8am',sct_default_start='800',sct_default_stop='2100'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='nevada',state_call_time_state='NV',state_call_time_name='Nevada 8pm restriction',sct_default_start='900',sct_default_stop='2000'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='pennsylvan',state_call_time_state='PA',state_call_time_name='Pennsylvania sunday restriction',sct_sunday_start='1330',sct_sunday_stop='2100'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='rhodeislan',state_call_time_state='RI',state_call_time_name='Rhode Island restrictions',sct_default_start='900',sct_default_stop='1800',sct_sunday_start='2400',sct_sunday_stop='2400',sct_saturday_start='1000',sct_saturday_stop='1700'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='sdakota',state_call_time_state='SD',state_call_time_name='South Dakota sunday restrict',sct_sunday_start='2400',sct_sunday_stop='2400'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='tennessee',state_call_time_state='TN',state_call_time_name='Tennessee 8am',sct_default_start='800',sct_default_stop='2100'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='texas',state_call_time_state='TX',state_call_time_name='Texas sunday restriction',sct_sunday_start='1200',sct_sunday_stop='2100'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='utah',state_call_time_state='UT',state_call_time_name='Utah 8pm restriction',sct_default_start='900',sct_default_stop='2000'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='washington',state_call_time_state='WA',state_call_time_name='Washington 8am',sct_default_start='800',sct_default_stop='2100'; +INSERT INTO vicidial_state_call_times SET state_call_time_id='wyoming',state_call_time_state='WY',state_call_time_name='Wyoming 8am-8pm',sct_default_start='800',sct_default_stop='2000'; + +INSERT INTO vicidial_shifts SET shift_id='24HRMIDNIGHT',shift_name='24 hours 7 days a week',shift_start_time='0000',shift_length='24:00',shift_weekdays='0123456'; + +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','227','MD','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','CAN','343','ON','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','364','KY','-6','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','447','IL','-6','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','575','NM','-7','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','CAN','581','QC','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','CAN','587','AB','-7','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','659','AL','-6','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','667','MD','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','681','WV','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','730','IL','-6','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','DOM','829','','-4','N','','Dominican Republic'); + +INSERT INTO vicidial_conf_templates SET template_id='SIP_generic',template_name='SIP phone generic',template_contents="type=friend\nhost=dynamic\ncanreinvite=no\ncontext=default"; +INSERT INTO vicidial_conf_templates SET template_id='IAX_generic',template_name='IAX phone generic',template_contents="type=friend\nhost=dynamic\nmaxauthreq=10\nauth=md5,plaintext,rsa\ncontext=default"; + +INSERT INTO vicidial_server_carriers SET carrier_id='PARAXIP', carrier_name='TEST ParaXip CPD example',registration_string='', template_id='--NONE--', account_entry="[paraxip]\ndisallow=all\nallow=ulaw\ntype=peer\nusername=paraxip\nfromuser=paraxip\nsecret=test\nfromdomain=10.10.10.16\nhost=10.10.10.15\ninsecure=port,invite\noutboundproxy=10.0.0.7", protocol='SIP', globals_string='TESTSIPTRUNKP = SIP/paraxip', dialplan_entry="exten => _5591999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)\nexten => _5591999NXXXXXX,2,Dial(${TESTSIPTRUNKP}/${EXTEN:4},,tTor)\nexten => _5591999NXXXXXX,3,Hangup", server_ip='10.10.10.15', active='N'; +INSERT INTO vicidial_server_carriers SET carrier_id='SIPEXAMPLE', carrier_name='TEST SIP carrier example',registration_string='register => testcarrier:test@10.10.10.15:5060', template_id='--NONE--', account_entry="[testcarrier]\ndisallow=all\nallow=ulaw\ntype=friend\nusername=testcarrier\nsecret=test\nhost=dynamic\ndtmfmode=rfc2833\ncontext=trunkinbound\n", protocol='SIP', globals_string='TESTSIPTRUNK = SIP/testcarrier', dialplan_entry="exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)\nexten => _91999NXXXXXX,2,Dial(${TESTSIPTRUNK}/${EXTEN:2},,tTor)\nexten => _91999NXXXXXX,3,Hangup\n", server_ip='10.10.10.15', active='N'; +INSERT INTO vicidial_server_carriers SET carrier_id='IAXEXAMPLE', carrier_name='TEST IAX carrier example',registration_string='register => testcarrier:test@10.10.10.15:4569', template_id='--NONE--', account_entry="[testcarrier]\ndisallow=all\nallow=ulaw\ntype=friend\naccountcode=testcarrier\nsecret=test\nhost=dynamic\ncontext=trunkinbound\n", protocol='IAX2', globals_string='TESTIAXTRUNK = IAX2/testcarrier', dialplan_entry="exten => _71999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)\nexten => _71999NXXXXXX,2,Dial(${TESTIAXTRUNK}/${EXTEN:2},,tTor)\nexten => _71999NXXXXXX,3,Hangup\n", server_ip='10.10.10.15', active='N'; + +INSERT INTO vicidial_inbound_dids SET did_pattern='default', did_description='Default DID', did_active='Y', did_route='EXTEN', extension='9998811112', exten_context='default'; + +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_users','0','1000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_campaigns','0','20000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_inbound_groups','0','30000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_lists','0','40000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_call_menu','0','50000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_user_groups','0','60000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_lead_filters','0','70000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_scripts','0','80000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('phones','0','100'); + +INSERT INTO vicidial_lead_filters(lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql) values('DROP72HOUR','UK 72 hour Drop No Call','Prevents dropped calls from being called within 72 hours of the last attempt',"( ( (status='DROP') and (last_local_call_time < CONCAT(DATE_ADD(CURDATE(), INTERVAL -3 DAY),' ',CURTIME()) ) ) or (status != 'DROP') )"); + +INSERT INTO vicidial_drop_rate_groups SET group_id='101'; +INSERT INTO vicidial_drop_rate_groups SET group_id='102'; +INSERT INTO vicidial_drop_rate_groups SET group_id='103'; +INSERT INTO vicidial_drop_rate_groups SET group_id='104'; +INSERT INTO vicidial_drop_rate_groups SET group_id='105'; +INSERT INTO vicidial_drop_rate_groups SET group_id='106'; +INSERT INTO vicidial_drop_rate_groups SET group_id='107'; +INSERT INTO vicidial_drop_rate_groups SET group_id='108'; +INSERT INTO vicidial_drop_rate_groups SET group_id='109'; +INSERT INTO vicidial_drop_rate_groups SET group_id='110'; + +INSERT INTO vicidial_process_triggers SET trigger_id='LOAD_LEADS',server_ip='10.10.10.15',trigger_name='Load Leads',trigger_time='2009-01-01 00:00:00',trigger_run='0',trigger_lines='/usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl'; + +INSERT INTO vicidial_call_menu SET menu_id='defaultlog',menu_name='logging of all outbound calls from agent phones',menu_prompt='sip-silence',menu_timeout='20',menu_timeout_prompt='NONE',menu_invalid_prompt='NONE',menu_repeat='0',menu_time_check='0',call_time_id='',track_in_vdac='0',custom_dialplan_entry='exten => _.,1,AGI(agi-NVA_recording.agi,BOTH------Y---Y---Y)\nexten => _.,n,Goto(default,${EXTEN},1)',tracking_group=''; + +INSERT INTO vicidial_call_menu_options SET menu_id='defaultlog',option_value='TIMEOUT',option_description='hangup',option_route='HANGUP',option_route_value='vm-goodbye',option_route_value_context=''; + +UPDATE system_settings SET qc_last_pull_time=NOW(); + +CREATE INDEX country_postal_code on vicidial_postal_codes (country_code,postal_code); +CREATE INDEX country_area_code on vicidial_phone_codes (country_code,areacode); +CREATE INDEX country_state on vicidial_phone_codes (country_code,state); +CREATE INDEX country_code on vicidial_phone_codes (country_code); +CREATE INDEX phone_list on vicidial_list (phone_number,list_id); +CREATE INDEX list_phone on vicidial_list (list_id,phone_number); +CREATE INDEX start_time on call_log (start_time); +CREATE INDEX end_time on call_log (end_time); +CREATE INDEX time on call_log (start_time,end_time); +CREATE INDEX list_status on vicidial_list (list_id,status); +CREATE INDEX time_user on vicidial_agent_log (event_time,user); +CREATE INDEX date_user on vicidial_xfer_log (call_date,user); +CREATE INDEX date_closer on vicidial_xfer_log (call_date,closer); +CREATE INDEX phone_number on vicidial_xfer_log (phone_number); +CREATE INDEX phone_number on vicidial_closer_log (phone_number); +CREATE INDEX date_user on vicidial_closer_log (call_date,user); +CREATE INDEX comment_a on live_inbound_log (comment_a); + +CREATE TABLE call_log_archive LIKE call_log; + +CREATE TABLE vicidial_log_archive LIKE vicidial_log; + +CREATE TABLE vicidial_agent_log_archive LIKE vicidial_agent_log; +ALTER TABLE vicidial_agent_log_archive MODIFY agent_log_id INT(9) UNSIGNED NOT NULL; + +UPDATE system_settings SET db_schema_version='1191',db_schema_update_date=NOW(); + +GRANT RELOAD ON *.* TO cron@'%'; +GRANT RELOAD ON *.* TO cron@localhost; + +flush privileges; diff --git a/agc_2-X/branches/agc_2.2.0/extras/Net/HTTP/Methods.pm b/agc_2-X/branches/agc_2.2.0/extras/Net/HTTP/Methods.pm new file mode 100644 index 00000000..b1b2115f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Net/HTTP/Methods.pm @@ -0,0 +1,520 @@ +package Net::HTTP::Methods; + +# $Id: Methods.pm,v 1.12 2002/12/26 09:13:55 gisle Exp $ + +require 5.005; # 4-arg substr + +use strict; +use vars qw($VERSION); + +$VERSION = "1.00"; + +my $CRLF = "\015\012"; # "\r\n" is not portable + +sub new { + my($class, %cnf) = @_; + require Symbol; + my $self = bless Symbol::gensym(), $class; + return $self->http_configure(\%cnf); +} + +sub http_configure { + my($self, $cnf) = @_; + + die "Listen option not allowed" if $cnf->{Listen}; + my $host = delete $cnf->{Host}; + my $peer = $cnf->{PeerAddr} || $cnf->{PeerHost}; + if ($host) { + $cnf->{PeerAddr} = $host unless $peer; + } + else { + $host = $peer; + $host =~ s/:.*//; + } + $cnf->{PeerPort} = $self->http_default_port unless $cnf->{PeerPort}; + $cnf->{Proto} = 'tcp'; + + my $keep_alive = delete $cnf->{KeepAlive}; + my $http_version = delete $cnf->{HTTPVersion}; + $http_version = "1.1" unless defined $http_version; + my $peer_http_version = delete $cnf->{PeerHTTPVersion}; + $peer_http_version = "1.0" unless defined $peer_http_version; + my $send_te = delete $cnf->{SendTE}; + my $max_line_length = delete $cnf->{MaxLineLength}; + $max_line_length = 4*1024 unless defined $max_line_length; + my $max_header_lines = delete $cnf->{MaxHeaderLines}; + $max_header_lines = 128 unless defined $max_header_lines; + + return undef unless $self->http_connect($cnf); + + unless ($host =~ /:/) { + my $p = $self->peerport; + $host .= ":$p"; + } + $self->host($host); + $self->keep_alive($keep_alive); + $self->send_te($send_te); + $self->http_version($http_version); + $self->peer_http_version($peer_http_version); + $self->max_line_length($max_line_length); + $self->max_header_lines($max_header_lines); + + ${*$self}{'http_buf'} = ""; + + return $self; +} + +sub http_default_port { + 80; +} + +# set up property accessors +for my $method (qw(host keep_alive send_te max_line_length max_header_lines peer_http_version)) { + my $prop_name = "http_" . $method; + no strict 'refs'; + *$method = sub { + my $self = shift; + my $old = ${*$self}{$prop_name}; + ${*$self}{$prop_name} = shift if @_; + return $old; + }; +} + +# we want this one to be a bit smarter +sub http_version { + my $self = shift; + my $old = ${*$self}{'http_version'}; + if (@_) { + my $v = shift; + $v = "1.0" if $v eq "1"; # float + unless ($v eq "1.0" or $v eq "1.1") { + require Carp; + Carp::croak("Unsupported HTTP version '$v'"); + } + ${*$self}{'http_version'} = $v; + } + $old; +} + +sub format_request { + my $self = shift; + my $method = shift; + my $uri = shift; + + my $content = (@_ % 2) ? pop : ""; + + for ($method, $uri) { + require Carp; + Carp::croak("Bad method or uri") if /\s/ || !length; + } + + push(@{${*$self}{'http_request_method'}}, $method); + my $ver = ${*$self}{'http_version'}; + my $peer_ver = ${*$self}{'http_peer_http_version'} || "1.0"; + + my @h; + my @connection; + my %given = (host => 0, "content-length" => 0, "te" => 0); + while (@_) { + my($k, $v) = splice(@_, 0, 2); + my $lc_k = lc($k); + if ($lc_k eq "connection") { + push(@connection, split(/\s*,\s*/, $v)); + next; + } + if (exists $given{$lc_k}) { + $given{$lc_k}++; + } + push(@h, "$k: $v"); + } + + if (length($content) && !$given{'content-length'}) { + push(@h, "Content-Length: " . length($content)); + } + + my @h2; + if ($given{te}) { + push(@connection, "TE") unless grep lc($_) eq "te", @connection; + } + elsif ($self->send_te && zlib_ok()) { + # gzip is less wanted since the Compress::Zlib interface for + # it does not really allow chunked decoding to take place easily. + push(@h2, "TE: deflate,gzip;q=0.3"); + push(@connection, "TE"); + } + + unless (grep lc($_) eq "close", @connection) { + if ($self->keep_alive) { + if ($peer_ver eq "1.0") { + # from looking at Netscape's headers + push(@h2, "Keep-Alive: 300"); + unshift(@connection, "Keep-Alive"); + } + } + else { + push(@connection, "close") if $ver ge "1.1"; + } + } + push(@h2, "Connection: " . join(", ", @connection)) if @connection; + push(@h2, "Host: ${*$self}{'http_host'}") unless $given{host}; + + return join($CRLF, "$method $uri HTTP/$ver", @h2, @h, "", $content); +} + + +sub write_request { + my $self = shift; + $self->print($self->format_request(@_)); +} + +sub format_chunk { + my $self = shift; + return $_[0] unless defined($_[0]) && length($_[0]); + return sprintf("%x", length($_[0])) . $CRLF . $_[0] . $CRLF; +} + +sub write_chunk { + my $self = shift; + return 1 unless defined($_[0]) && length($_[0]); + $self->print(sprintf("%x", length($_[0])) . $CRLF . $_[0] . $CRLF); +} + +sub format_chunk_eof { + my $self = shift; + my @h; + while (@_) { + push(@h, sprintf "%s: %s$CRLF", splice(@_, 0, 2)); + } + return join("", "0$CRLF", @h, $CRLF); +} + +sub write_chunk_eof { + my $self = shift; + $self->print($self->format_chunk_eof(@_)); +} + + +sub my_read { + die if @_ > 3; + my $self = shift; + my $len = $_[1]; + for (${*$self}{'http_buf'}) { + if (length) { + $_[0] = substr($_, 0, $len, ""); + return length($_[0]); + } + else { + return $self->sysread($_[0], $len); + } + } +} + + +sub my_readline { + my $self = shift; + for (${*$self}{'http_buf'}) { + my $max_line_length = ${*$self}{'http_max_line_length'}; + my $pos; + while (1) { + # find line ending + $pos = index($_, "\012"); + last if $pos >= 0; + die "Line too long (limit is $max_line_length)" + if $max_line_length && length($_) > $max_line_length; + + # need to read more data to find a line ending + my $n = $self->sysread($_, 1024, length); + if (!$n) { + return undef unless length; + return substr($_, 0, length, ""); + } + } + die "Line too long ($pos; limit is $max_line_length)" + if $max_line_length && $pos > $max_line_length; + + my $line = substr($_, 0, $pos+1, ""); + $line =~ s/(\015?\012)\z// || die "Assert"; + return wantarray ? ($line, $1) : $line; + } +} + + +sub _rbuf { + my $self = shift; + if (@_) { + for (${*$self}{'http_buf'}) { + my $old; + $old = $_ if defined wantarray; + $_ = shift; + return $old; + } + } + else { + return ${*$self}{'http_buf'}; + } +} + +sub _rbuf_length { + my $self = shift; + return length ${*$self}{'http_buf'}; +} + + +sub _read_header_lines { + my $self = shift; + my $junk_out = shift; + + my @headers; + my $line_count = 0; + my $max_header_lines = ${*$self}{'http_max_header_lines'}; + while (my $line = my_readline($self)) { + if ($line =~ /^(\S+)\s*:\s*(.*)/s) { + push(@headers, $1, $2); + } + elsif (@headers && $line =~ s/^\s+//) { + $headers[-1] .= " " . $line; + } + elsif ($junk_out) { + push(@$junk_out, $line); + } + else { + die "Bad header: '$line'\n"; + } + if ($max_header_lines) { + $line_count++; + if ($line_count >= $max_header_lines) { + die "Too many header lines (limit is $max_header_lines)"; + } + } + } + return @headers; +} + + +sub read_response_headers { + my($self, %opt) = @_; + my $laxed = $opt{laxed}; + + my($status, $eol) = my_readline($self); + unless (defined $status) { + die "EOF instead of response status line" unless $laxed; + # assume HTTP/0.9 + ${*$self}{'http_peer_http_version'} = "0.9"; + ${*$self}{'http_status'} = "200"; + return 200 unless wantarray; + return (200, "EOF"); + } + + my($peer_ver, $code, $message) = split(/\s+/, $status, 3); + if (!$peer_ver || $peer_ver !~ s,^HTTP/,, || $code !~ /^[1-5]\d\d$/) { + die "Bad response status line: '$status'" unless $laxed; + # assume HTTP/0.9 + ${*$self}{'http_peer_http_version'} = "0.9"; + ${*$self}{'http_status'} = "200"; + substr(${*$self}{'http_buf'}, 0, 0) = $status . $eol; + return 200 unless wantarray; + return (200, "Assumed OK"); + }; + + ${*$self}{'http_peer_http_version'} = $peer_ver; + ${*$self}{'http_status'} = $code; + + my $junk_out; + if ($laxed) { + $junk_out = $opt{junk_out} || []; + } + my @headers = $self->_read_header_lines($junk_out); + + # pick out headers that read_entity_body might need + my @te; + my $content_length; + for (my $i = 0; $i < @headers; $i += 2) { + my $h = lc($headers[$i]); + if ($h eq 'transfer-encoding') { + push(@te, $headers[$i+1]); + } + elsif ($h eq 'content-length') { + $content_length = $headers[$i+1]; + } + } + ${*$self}{'http_te'} = join(",", @te); + ${*$self}{'http_content_length'} = $content_length; + ${*$self}{'http_first_body'}++; + delete ${*$self}{'http_trailers'}; + return $code unless wantarray; + return ($code, $message, @headers); +} + + +sub read_entity_body { + my $self = shift; + my $buf_ref = \$_[0]; + my $size = $_[1]; + die "Offset not supported yet" if $_[2]; + + my $chunked; + my $bytes; + + if (${*$self}{'http_first_body'}) { + ${*$self}{'http_first_body'} = 0; + delete ${*$self}{'http_chunked'}; + delete ${*$self}{'http_bytes'}; + my $method = shift(@{${*$self}{'http_request_method'}}); + my $status = ${*$self}{'http_status'}; + if ($method eq "HEAD" || $status =~ /^(?:1|[23]04)/) { + # these responses are always empty + $bytes = 0; + } + elsif (my $te = ${*$self}{'http_te'}) { + my @te = split(/\s*,\s*/, lc($te)); + die "Chunked must be last Transfer-Encoding '$te'" + unless pop(@te) eq "chunked"; + + for (@te) { + if ($_ eq "deflate" && zlib_ok()) { + #require Compress::Zlib; + my $i = Compress::Zlib::inflateInit(); + die "Can't make inflator" unless $i; + $_ = sub { scalar($i->inflate($_[0])) } + } + elsif ($_ eq "gzip" && zlib_ok()) { + #require Compress::Zlib; + my @buf; + $_ = sub { + push(@buf, $_[0]); + return Compress::Zlib::memGunzip(join("", @buf)) if $_[1]; + return ""; + }; + } + elsif ($_ eq "identity") { + $_ = sub { $_[0] }; + } + else { + die "Can't handle transfer encoding '$te'"; + } + } + + @te = reverse(@te); + + ${*$self}{'http_te2'} = @te ? \@te : ""; + $chunked = -1; + } + elsif (defined(my $content_length = ${*$self}{'http_content_length'})) { + $bytes = $content_length; + } + else { + # XXX Multi-Part types are self delimiting, but RFC 2616 says we + # only has to deal with 'multipart/byteranges' + + # Read until EOF + } + } + else { + $chunked = ${*$self}{'http_chunked'}; + $bytes = ${*$self}{'http_bytes'}; + } + + if (defined $chunked) { + # The state encoded in $chunked is: + # $chunked == 0: read CRLF after chunk, then chunk header + # $chunked == -1: read chunk header + # $chunked > 0: bytes left in current chunk to read + + if ($chunked <= 0) { + my $line = my_readline($self); + if ($chunked == 0) { + die "Missing newline after chunk data: '$line'" unless $line eq ""; + $line = my_readline($self); + } + my $chunk_len = $line; + $chunk_len =~ s/;.*//; # ignore potential chunk parameters + unless ($chunk_len =~ /^([\da-fA-F]+)\s*$/) { + die "Bad chunk-size in HTTP response: $line"; + } + $chunked = hex($1); + if ($chunked == 0) { + ${*$self}{'http_trailers'} = [$self->_read_header_lines]; + $$buf_ref = ""; + + my $n = 0; + if (my $transforms = delete ${*$self}{'http_te2'}) { + for (@$transforms) { + $$buf_ref = &$_($$buf_ref, 1); + } + $n = length($$buf_ref); + } + + # in case somebody tries to read more, make sure we continue + # to return EOF + delete ${*$self}{'http_chunked'}; + ${*$self}{'http_bytes'} = 0; + + return $n; + } + } + + my $n = $chunked; + $n = $size if $size && $size < $n; + $n = my_read($self, $$buf_ref, $n); + return undef unless defined $n; + + ${*$self}{'http_chunked'} = $chunked - $n; + + if ($n > 0) { + if (my $transforms = ${*$self}{'http_te2'}) { + for (@$transforms) { + $$buf_ref = &$_($$buf_ref, 0); + } + $n = length($$buf_ref); + $n = -1 if $n == 0; + } + } + return $n; + } + elsif (defined $bytes) { + unless ($bytes) { + $$buf_ref = ""; + return 0; + } + my $n = $bytes; + $n = $size if $size && $size < $n; + $n = my_read($self, $$buf_ref, $n); + return undef unless defined $n; + ${*$self}{'http_bytes'} = $bytes - $n; + return $n; + } + else { + # read until eof + $size ||= 8*1024; + return my_read($self, $$buf_ref, $size); + } +} + +sub get_trailers { + my $self = shift; + @{${*$self}{'http_trailers'} || []}; +} + +BEGIN { +my $zlib_ok; + +sub zlib_ok { + return $zlib_ok if defined $zlib_ok; + + # Try to load Compress::Zlib. + local $@; + local $SIG{__DIE__}; + $zlib_ok = 0; + + eval { + require Compress::Zlib; + Compress::Zlib->VERSION(1.10); + $zlib_ok++; + }; + + return $zlib_ok; +} + +} # BEGIN + +1; diff --git a/agc_2-X/branches/agc_2.2.0/extras/Net/HTTP/NB.pm b/agc_2-X/branches/agc_2.2.0/extras/Net/HTTP/NB.pm new file mode 100644 index 00000000..feeee310 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Net/HTTP/NB.pm @@ -0,0 +1,106 @@ +package Net::HTTP::NB; + +# $Id: NB.pm,v 1.5 2001/08/28 03:03:42 gisle Exp $ + +use strict; +use vars qw($VERSION @ISA); + +$VERSION = "0.02"; +require Net::HTTP; +@ISA=qw(Net::HTTP); + +sub sysread { + my $self = $_[0]; + if (${*$self}{'httpnb_read_count'}++) { + ${*$self}{'http_buf'} = ${*$self}{'httpnb_save'}; + die "Multi-read\n"; + } + my $buf; + my $offset = $_[3] || 0; + my $n = sysread($self, $_[1], $_[2], $offset); + ${*$self}{'httpnb_save'} .= substr($_[1], $offset); + return $n; +} + +sub read_response_headers { + my $self = shift; + ${*$self}{'httpnb_read_count'} = 0; + ${*$self}{'httpnb_save'} = ${*$self}{'http_buf'}; + my @h = eval { $self->SUPER::read_response_headers(@_) }; + if ($@) { + return if $@ eq "Multi-read\n"; + die; + } + return @h; +} + +sub read_entity_body { + my $self = shift; + ${*$self}{'httpnb_read_count'} = 0; + ${*$self}{'httpnb_save'} = ${*$self}{'http_buf'}; + # XXX I'm not so sure this does the correct thing in case of + # transfer-encoding tranforms + my $n = eval { $self->SUPER::read_entity_body(@_); }; + if ($@) { + $_[0] = ""; + return -1; + } + return $n; +} + +1; + +__END__ + +=head1 NAME + +Net::HTTP::NB - Non-blocking HTTP client + +=head1 SYNOPSIS + + use Net::HTTP::NB; + my $s = Net::HTTP::NB->new(Host => "www.perl.com) || die $@; + $s->write_request(GET => "/"); + + use IO::Select; + my $sel = IO::Select->new($s); + + READ_HEADER: { + die "Header timeout" unless $sel->can_read(10); + my($code, $mess, %h) = $s->read_response_headers; + redo READ_HEADER unless $code; + } + + while (1) { + die "Body timeout" unless $sel->can_read(10); + my $buf; + my $n = $s->read_entity_body($buf, 1024); + last unless $n; + print $buf; + } + +=head1 DESCRIPTION + +Same interface as C but it will never try multiple reads +when the read_response_headers() or read_entity_body() methods are +invoked. This make it possible to multiplex multiple Net::HTTP::NB +using select without risk blocking. + +If read_response_headers() did not see enough data to complete the +headers an empty list is returned. + +If read_entity_body() did not see new entity data in its read +the value -1 is returned. + +=head1 SEE ALSO + +L + +=head1 COPYRIGHT + +Copyright 2001 Gisle Aas. + +This library is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut diff --git a/agc_2-X/branches/agc_2.2.0/extras/Net/Telnet.pm b/agc_2-X/branches/agc_2.2.0/extras/Net/Telnet.pm new file mode 100644 index 00000000..9f84fe31 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Net/Telnet.pm @@ -0,0 +1,5252 @@ +package Net::Telnet; + +## Copyright 1997, 2000, 2002 Jay Rogers. All rights reserved. +## This program is free software; you can redistribute it and/or +## modify it under the same terms as Perl itself. + +## See user documentation at the end of this file. Search for =head + +use strict; +require 5.002; + +## Module export. +use vars qw(@EXPORT_OK); +@EXPORT_OK = qw(TELNET_IAC TELNET_DONT TELNET_DO TELNET_WONT TELNET_WILL + TELNET_SB TELNET_GA TELNET_EL TELNET_EC TELNET_AYT TELNET_AO + TELNET_IP TELNET_BREAK TELNET_DM TELNET_NOP TELNET_SE + TELNET_EOR TELNET_ABORT TELNET_SUSP TELNET_EOF TELNET_SYNCH + TELOPT_BINARY TELOPT_ECHO TELOPT_RCP TELOPT_SGA TELOPT_NAMS + TELOPT_STATUS TELOPT_TM TELOPT_RCTE TELOPT_NAOL TELOPT_NAOP + TELOPT_NAOCRD TELOPT_NAOHTS TELOPT_NAOHTD TELOPT_NAOFFD + TELOPT_NAOVTS TELOPT_NAOVTD TELOPT_NAOLFD TELOPT_XASCII + TELOPT_LOGOUT TELOPT_BM TELOPT_DET TELOPT_SUPDUP + TELOPT_SUPDUPOUTPUT TELOPT_SNDLOC TELOPT_TTYPE TELOPT_EOR + TELOPT_TUID TELOPT_OUTMRK TELOPT_TTYLOC TELOPT_3270REGIME + TELOPT_X3PAD TELOPT_NAWS TELOPT_TSPEED TELOPT_LFLOW + TELOPT_LINEMODE TELOPT_XDISPLOC TELOPT_OLD_ENVIRON + TELOPT_AUTHENTICATION TELOPT_ENCRYPT TELOPT_NEW_ENVIRON + TELOPT_EXOPL); + +## Module import. +use Exporter (); +use Socket qw(AF_INET SOCK_STREAM inet_aton sockaddr_in); +use Symbol qw(qualify); + +## Base classes. +use vars qw(@ISA); +@ISA = qw(Exporter); +if (&_io_socket_include) { # successfully required module IO::Socket + push @ISA, "IO::Socket::INET"; +} +else { # perl version < 5.004 + require FileHandle; + push @ISA, "FileHandle"; +} + +## Global variables. +use vars qw($VERSION @Telopts); +$VERSION = "3.03"; +@Telopts = ("BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", + "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", + "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", + "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", + "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", + "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", + "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", + "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON"); + + +########################### Public Methods ########################### + + +sub new { + my ($class) = @_; + my ( + $errmode, + $fh_open, + $host, + $self, + %args, + ); + local $_; + + ## Create a new object with defaults. + $self = $class->SUPER::new; + *$self->{net_telnet} = { + bin_mode => 0, + blksize => &_optimal_blksize(), + buf => "", + cmd_prompt => '/[\$%#>] $/', + cmd_rm_mode => "auto", + dumplog => '', + eofile => 1, + errormode => "die", + errormsg => "", + fdmask => '', + host => "localhost", + inputlog => '', + last_line => "", + last_prompt => "", + maxbufsize => 1_048_576, + num_wrote => 0, + ofs => "", + opened => '', + opt_cback => '', + opt_log => '', + opts => {}, + ors => "\n", + outputlog => '', + pending_errormsg => "", + port => 23, + pushback_buf => "", + rs => "\n", + subopt_cback => '', + telnet_mode => 1, + time_out => 10, + timedout => '', + unsent_opts => "", + }; + + ## Indicate that we'll accept an offer from remote side for it to echo + ## and suppress go aheads. + &_opt_accept($self, + { option => &TELOPT_ECHO, + is_remote => 1, + is_enable => 1 }, + { option => &TELOPT_SGA, + is_remote => 1, + is_enable => 1 }, + ); + + ## Parse the args. + if (@_ == 2) { # one positional arg given + $host = $_[1]; + } + elsif (@_ > 2) { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse all other named args. + foreach (keys %args) { + if (/^-?binmode$/i) { + $self->binmode($args{$_}); + } + elsif (/^-?cmd_remove_mode$/i) { + $self->cmd_remove_mode($args{$_}); + } + elsif (/^-?dump_log$/i) { + $self->dump_log($args{$_}); + } + elsif (/^-?errmode$/i) { + $errmode = $args{$_}; + } + elsif (/^-?fhopen$/i) { + $fh_open = $args{$_}; + } + elsif (/^-?host$/i) { + $host = $args{$_}; + } + elsif (/^-?input_log$/i) { + $self->input_log($args{$_}); + } + elsif (/^-?input_record_separator$/i or /^-?rs$/i) { + $self->input_record_separator($args{$_}); + } + elsif (/^-?option_log$/i) { + $self->option_log($args{$_}); + } + elsif (/^-?output_log$/i) { + $self->output_log($args{$_}); + } + elsif (/^-?output_record_separator$/i or /^-?ors$/i) { + $self->output_record_separator($args{$_}); + } + elsif (/^-?port$/i) { + $self->port($args{$_}); + } + elsif (/^-?prompt$/i) { + $self->prompt($args{$_}); + } + elsif (/^-?telnetmode$/i) { + $self->telnetmode($args{$_}); + } + elsif (/^-?timeout$/i) { + $self->timeout($args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::new()"); + } + } + } + + if (defined $errmode) { # user wants to set errmode + $self->errmode($errmode); + } + + if (defined $fh_open) { # user wants us to attach to existing filehandle + $self->fhopen($fh_open) + or return; + } + elsif (defined $host) { # user wants us to open a connection to host + $self->host($host); + $self->open + or return; + } + + $self; +} # end sub new + + +sub DESTROY { +} # end sub DESTROY + + +sub binmode { + my ($self, $mode) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{bin_mode}; + + if (@_ >= 2) { + unless (defined $mode) { + $mode = 0; + } + + $s->{bin_mode} = $mode; + } + + $prev; +} # end sub binmode + + +sub break { + my ($self) = @_; + my $s = *$self->{net_telnet}; + my $break_cmd = "\xff\xf3"; + + $s->{timedout} = ''; + + &_put($self, \$break_cmd, "break"); +} # end sub break + + +sub buffer { + my ($self) = @_; + my $s = *$self->{net_telnet}; + + \$s->{buf}; +} # end sub buffer + + +sub buffer_empty { + my ($self) = @_; + my ( + $buffer, + ); + + $buffer = $self->buffer; + $$buffer = ""; +} # end sub buffer_empty + + +sub close { + my ($self) = @_; + my $s = *$self->{net_telnet}; + + $s->{eofile} = 1; + $s->{opened} = ''; + close $self + if defined fileno($self); + + 1; +} # end sub close + + +sub cmd { + my ($self, @args) = @_; + my ( + $cmd_remove_mode, + $errmode, + $firstpos, + $last_prompt, + $lastpos, + $lines, + $ors, + $output, + $output_ref, + $prompt, + $remove_echo, + $rs, + $rs_len, + $s, + $telopt_echo, + $timeout, + %args, + ); + my $cmd = ""; + local $_; + + ## Init. + $self->timed_out(''); + $self->last_prompt(""); + $s = *$self->{net_telnet}; + $output = []; + $cmd_remove_mode = $self->cmd_remove_mode; + $errmode = $self->errmode; + $ors = $self->output_record_separator; + $prompt = $self->prompt; + $rs = $self->input_record_separator; + $timeout = $self->timeout; + + ## Parse args. + if (@_ == 2) { # one positional arg given + $cmd = $_[1]; + } + elsif (@_ > 2) { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?cmd_remove/i) { + $cmd_remove_mode = &_parse_cmd_remove_mode($self, $args{$_}); + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?input_record_separator$/i or /^-?rs$/i) { + $rs = &_parse_input_record_separator($self, $args{$_}); + } + elsif (/^-?output$/i) { + $output_ref = $args{$_}; + if (defined($output_ref) and ref($output_ref) eq "ARRAY") { + $output = $output_ref; + } + } + elsif (/^-?output_record_separator$/i or /^-?ors$/i) { + $ors = $self->output_record_separator($args{$_}); + } + elsif (/^-?prompt$/i) { + $prompt = &_parse_prompt($self, $args{$_}); + } + elsif (/^-?string$/i) { + $cmd = $args{$_}; + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::cmd()"); + } + } + } + + ## Override some user settings. + local $s->{errormode} = "return"; + local $s->{time_out} = &_endtime($timeout); + $self->errmsg(""); + + ## Send command and wait for the prompt. + $self->put($cmd . $ors) + and ($lines, $last_prompt) = $self->waitfor($prompt); + + ## Check for failure. + $s->{errormode} = $errmode; + return $self->error("command timed-out") if $self->timed_out; + return $self->error($self->errmsg) if $self->errmsg ne ""; + + ## Save the most recently matched prompt. + $self->last_prompt($last_prompt); + + ## Split lines into an array, keeping record separator at end of line. + $firstpos = 0; + $rs_len = length $rs; + while (($lastpos = index($lines, $rs, $firstpos)) > -1) { + push(@$output, + substr($lines, $firstpos, $lastpos - $firstpos + $rs_len)); + $firstpos = $lastpos + $rs_len; + } + + if ($firstpos < length $lines) { + push @$output, substr($lines, $firstpos); + } + + ## Determine if we should remove the first line of output based + ## on the assumption that it's an echoed back command. + if ($cmd_remove_mode eq "auto") { + ## See if remote side told us they'd echo. + $telopt_echo = $self->option_state(&TELOPT_ECHO); + $remove_echo = $telopt_echo->{remote_enabled}; + } + else { # user explicitly told us how many lines to remove. + $remove_echo = $cmd_remove_mode; + } + + ## Get rid of possible echo back command. + while ($remove_echo--) { + shift @$output; + } + + ## Ensure at least a null string when there's no command output - so + ## "true" is returned in a list context. + unless (@$output) { + @$output = (""); + } + + ## Return command output via named arg, if requested. + if (defined $output_ref) { + if (ref($output_ref) eq "SCALAR") { + $$output_ref = join "", @$output; + } + elsif (ref($output_ref) eq "HASH") { + %$output_ref = @$output; + } + } + + wantarray ? @$output : 1; +} # end sub cmd + + +sub cmd_remove_mode { + my ($self, $mode) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{cmd_rm_mode}; + + if (@_ >= 2) { + $s->{cmd_rm_mode} = &_parse_cmd_remove_mode($self, $mode); + } + + $prev; +} # end sub cmd_remove_mode + + +sub dump_log { + my ($self, $name) = @_; + my ( + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $fh = $s->{dumplog}; + + if (@_ >= 2) { + unless (defined $name) { + $name = ""; + } + + $fh = &_fname_to_handle($self, $name) + or return; + $s->{dumplog} = $fh; + } + + $fh; +} # end sub dump_log + + +sub eof { + my ($self) = @_; + + *$self->{net_telnet}{eofile}; +} # end sub eof + + +sub errmode { + my ($self, $mode) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{errormode}; + + if (@_ >= 2) { + $s->{errormode} = &_parse_errmode($self, $mode); + } + + $prev; +} # end sub errmode + + +sub errmsg { + my ($self, @errmsgs) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{errormsg}; + + if (@_ >= 2) { + $s->{errormsg} = join "", @errmsgs; + } + + $prev; +} # end sub errmsg + + +sub error { + my ($self, @errmsg) = @_; + my ( + $errmsg, + $func, + $mode, + $s, + @args, + ); + local $_; + + $s = *$self->{net_telnet}; + + if (@_ >= 2) { + ## Put error message in the object. + $errmsg = join "", @errmsg; + $s->{errormsg} = $errmsg; + + ## Do the error action as described by error mode. + $mode = $s->{errormode}; + if (ref($mode) eq "CODE") { + &$mode($errmsg); + return; + } + elsif (ref($mode) eq "ARRAY") { + ($func, @args) = @$mode; + &$func(@args); + return; + } + elsif ($mode =~ /^return$/i) { + return; + } + else { # die + if ($errmsg =~ /\n$/) { + die $errmsg; + } + else { + ## Die and append caller's line number to message. + &_croak($self, $errmsg); + } + } + } + else { + return $s->{errormsg} ne ""; + } +} # end sub error + + +sub fhopen { + my ($self, $fh) = @_; + my ( + $globref, + $s, + ); + + ## Convert given filehandle to a typeglob reference, if necessary. + $globref = &_qualify_fh($self, $fh); + + ## Ensure filehandle is already open. + return $self->error("fhopen filehandle isn't already open") + unless defined($globref) and defined(fileno $globref); + + ## Ensure we're closed. + $self->close; + + ## Save our private data. + $s = *$self->{net_telnet}; + + ## Switch ourself with the given filehandle. + *$self = *$globref; + + ## Restore our private data. + *$self->{net_telnet} = $s; + + ## Re-initialize ourself. + select((select($self), $|=1)[$[]); # don't buffer writes + $s = *$self->{net_telnet}; + $s->{blksize} = &_optimal_blksize((stat $self)[11]); + $s->{buf} = ""; + $s->{eofile} = ''; + $s->{errormsg} = ""; + vec($s->{fdmask}='', fileno($self), 1) = 1; + $s->{host} = ""; + $s->{last_line} = ""; + $s->{last_prompt} = ""; + $s->{num_wrote} = 0; + $s->{opened} = 1; + $s->{pending_errormsg} = ""; + $s->{port} = ''; + $s->{pushback_buf} = ""; + $s->{timedout} = ''; + $s->{unsent_opts} = ""; + &_reset_options($s->{opts}); + + 1; +} # end sub fhopen + + +sub get { + my ($self, %args) = @_; + my ( + $binmode, + $endtime, + $errmode, + $line, + $s, + $telnetmode, + $timeout, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $timeout = $s->{time_out}; + $s->{timedout} = ''; + return if $s->{eofile}; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?binmode$/i) { + $binmode = $args{$_}; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $args{$_}; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::get()"); + } + } + + ## If any args given, override corresponding instance data. + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + + ## Set wall time when we time out. + $endtime = &_endtime($timeout); + + ## Try to send any waiting option negotiation. + if (length $s->{unsent_opts}) { + &_flush_opts($self); + } + + ## Try to read just the waiting data using return error mode. + { + local $s->{errormode} = "return"; + $s->{errormsg} = ""; + &_fillbuf($self, $s, 0); + } + + ## We're done if we timed-out and timeout value is set to "poll". + return $self->error($s->{errormsg}) + if ($s->{timedout} and defined($timeout) and $timeout == 0 + and !length $s->{buf}); + + ## We're done if we hit an error other than timing out. + if ($s->{errormsg} and !$s->{timedout}) { + if (!length $s->{buf}) { + return $self->error($s->{errormsg}); + } + else { # error encountered but there's some data in buffer + $s->{pending_errormsg} = $s->{errormsg}; + } + } + + ## Clear time-out error from first read. + $s->{timedout} = ''; + $s->{errormsg} = ""; + + ## If buffer is still empty, try to read according to user's timeout. + if (!length $s->{buf}) { + &_fillbuf($self, $s, $endtime) + or do { + return if $s->{timedout}; + + ## We've reached end-of-file. + $self->close; + return; + }; + } + + ## Extract chars from buffer. + $line = $s->{buf}; + $s->{buf} = ""; + + $line; +} # end sub get + + +sub getline { + my ($self, %args) = @_; + my ( + $binmode, + $endtime, + $errmode, + $len, + $line, + $offset, + $pos, + $rs, + $s, + $telnetmode, + $timeout, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + return if $s->{eofile}; + $rs = $s->{rs}; + $timeout = $s->{time_out}; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?binmode$/i) { + $binmode = $args{$_}; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?input_record_separator$/i or /^-?rs$/i) { + $rs = &_parse_input_record_separator($self, $args{$_}); + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $args{$_}; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::getline()"); + } + } + + ## If any args given, override corresponding instance data. + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + + ## Set wall time when we time out. + $endtime = &_endtime($timeout); + + ## Try to send any waiting option negotiation. + if (length $s->{unsent_opts}) { + &_flush_opts($self); + } + + ## Keep reading into buffer until end-of-line is read. + $offset = 0; + while (($pos = index($s->{buf}, $rs, $offset)) == -1) { + $offset = length $s->{buf}; + &_fillbuf($self, $s, $endtime) + or do { + return if $s->{timedout}; + + ## We've reached end-of-file. + $self->close; + if (length $s->{buf}) { + return $s->{buf}; + } + else { + return; + } + }; + } + + ## Extract line from buffer. + $len = $pos + length $rs; + $line = substr($s->{buf}, 0, $len); + substr($s->{buf}, 0, $len) = ""; + + $line; +} # end sub getline + + +sub getlines { + my ($self, %args) = @_; + my ( + $binmode, + $errmode, + $line, + $rs, + $s, + $telnetmode, + $timeout, + ); + my $all = 1; + my @lines = (); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + return if $s->{eofile}; + $timeout = $s->{time_out}; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?all$/i) { + $all = $args{$_}; + unless (defined $all) { + $all = ''; + } + } + elsif (/^-?binmode$/i) { + $binmode = $args{$_}; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?input_record_separator$/i or /^-?rs$/i) { + $rs = &_parse_input_record_separator($self, $args{$_}); + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $args{$_}; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::getlines()"); + } + } + + ## If any args given, override corresponding instance data. + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{rs} = $rs + if defined $rs; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + local $s->{time_out} = &_endtime($timeout); + + ## User requested only the currently available lines. + if (! $all) { + return &_next_getlines($self, $s); + } + + ## Read lines until eof or error. + while (1) { + $line = $self->getline + or last; + push @lines, $line; + } + + ## Check for error. + return if ! $self->eof; + + @lines; +} # end sub getlines + + +sub host { + my ($self, $host) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{host}; + + if (@_ >= 2) { + unless (defined $host) { + $host = ""; + } + + $s->{host} = $host; + } + + $prev; +} # end sub host + + +sub input_log { + my ($self, $name) = @_; + my ( + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $fh = $s->{inputlog}; + + if (@_ >= 2) { + unless (defined $name) { + $name = ""; + } + + $fh = &_fname_to_handle($self, $name) + or return; + $s->{inputlog} = $fh; + } + + $fh; +} # end sub input_log + + +sub input_record_separator { + my ($self, $rs) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{rs}; + + if (@_ >= 2) { + $s->{rs} = &_parse_input_record_separator($self, $rs); + } + + $prev; +} # end sub input_record_separator + + +sub last_prompt { + my ($self, $string) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{last_prompt}; + + if (@_ >= 2) { + unless (defined $string) { + $string = ""; + } + + $s->{last_prompt} = $string; + } + + $prev; +} # end sub last_prompt + + +sub lastline { + my ($self, $line) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{last_line}; + + if (@_ >= 2) { + unless (defined $line) { + $line = ""; + } + + $s->{last_line} = $line; + } + + $prev; +} # end sub lastline + + +sub login { + my ($self) = @_; + my ( + $errmode, + $error, + $is_passwd_arg, + $is_username_arg, + $lastline, + $match, + $ors, + $passwd, + $prematch, + $prompt, + $s, + $timeout, + $username, + %args, + ); + local $_; + + ## Init. + $self->timed_out(''); + $self->last_prompt(""); + $s = *$self->{net_telnet}; + $timeout = $self->timeout; + $ors = $self->output_record_separator; + $prompt = $self->prompt; + + ## Parse args. + if (@_ == 3) { # just username and passwd given + $username = $_[1]; + $passwd = $_[2]; + + $is_username_arg = 1; + $is_passwd_arg = 1; + } + else { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?name$/i) { + $username = $args{$_}; + unless (defined $username) { + $username = ""; + } + + $is_username_arg = 1; + } + elsif (/^-?pass/i) { + $passwd = $args{$_}; + unless (defined $passwd) { + $passwd = ""; + } + + $is_passwd_arg = 1; + } + elsif (/^-?prompt$/i) { + $prompt = &_parse_prompt($self, $args{$_}); + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given ", + "to " . ref($self) . "::login()"); + } + } + } + + ## Ensure both username and password argument given. + &_croak($self,"Name argument not given to " . ref($self) . "::login()") + unless $is_username_arg; + &_croak($self,"Password argument not given to " . ref($self) . "::login()") + unless $is_passwd_arg; + + ## Override some user settings. + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{time_out} = &_endtime($timeout); + + ## Create a subroutine to generate an error. + $error + = sub { + my ($errmsg) = @_; + + if ($self->timed_out) { + return $self->error($errmsg); + } + elsif ($self->eof) { + ($lastline = $self->lastline) =~ s/\n+//; + return $self->error($errmsg, ": ", $lastline); + } + else { + return $self->error($self->errmsg); + } + }; + + + return $self->error("login failed: filehandle isn't open") + if $self->eof; + + ## Wait for login prompt. + $self->waitfor(Match => '/login[: ]*$/i', + Match => '/username[: ]*$/i', + Errmode => "return") + or do { + return &$error("eof read waiting for login prompt") + if $self->eof; + return &$error("timed-out waiting for login prompt"); + }; + + ## Delay sending response because of bug in Linux login program. + &_sleep(0.01); + + ## Send login name. + $self->put(String => $username . $ors, + Errmode => "return") + or return &$error("login disconnected"); + + ## Wait for password prompt. + $self->waitfor(Match => '/password[: ]*$/i', + Errmode => "return") + or do { + return &$error("eof read waiting for password prompt") + if $self->eof; + return &$error("timed-out waiting for password prompt"); + }; + + ## Delay sending response because of bug in Linux login program. + &_sleep(0.01); + + ## Send password. + $self->put(String => $passwd . $ors, + Errmode => "return") + or return &$error("login disconnected"); + + ## Wait for command prompt or another login prompt. + ($prematch, $match) = $self->waitfor(Match => '/login[: ]*$/i', + Match => '/username[: ]*$/i', + Match => $prompt, + Errmode => "return") + or do { + return &$error("eof read waiting for command prompt") + if $self->eof; + return &$error("timed-out waiting for command prompt"); + }; + + ## It's a bad login if we got another login prompt. + return $self->error("login failed: bad name or password") + if $match =~ /login[: ]*$/i or $match =~ /username[: ]*$/i; + + ## Save the most recently matched command prompt. + $self->last_prompt($match); + + 1; +} # end sub login + + +sub max_buffer_length { + my ($self, $maxbufsize) = @_; + my ( + $prev, + $s, + ); + my $minbufsize = 512; + + $s = *$self->{net_telnet}; + $prev = $s->{maxbufsize}; + + if (@_ >= 2) { + ## Ensure a positive integer value. + unless (defined $maxbufsize + and $maxbufsize =~ /^\d+$/ + and $maxbufsize) + { + &_carp($self, "ignoring bad Max_buffer_length " . + "argument \"$maxbufsize\": it's not a positive integer"); + $maxbufsize = $prev; + } + + ## Adjust up values that are too small. + if ($maxbufsize < $minbufsize) { + $maxbufsize = $minbufsize; + } + + $s->{maxbufsize} = $maxbufsize; + } + + $prev; +} # end sub max_buffer_length + + +## Make ofs() synonymous with output_field_separator(). +*ofs = \&output_field_separator; + + +sub open { + my ($self) = @_; + my ( + $errmode, + $errno, + $host, + $ip_addr, + $port, + $s, + $timeout, + %args, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $timeout = $s->{time_out}; + $s->{timedout} = ''; + + if (@_ == 2) { # one positional arg given + $self->host($_[1]); + } + elsif (@_ > 2) { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?host$/i) { + $self->host($args{$_}); + } + elsif (/^-?port$/i) { + $self->port($args{$_}) + or return; + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given ", + "to " . ref($self) . "::open()"); + } + } + } + + ## If any args given, override corresponding instance data. + local $s->{errormode} = $errmode + if defined $errmode; + + ## Get host and port. + $host = $self->host; + $port = $self->port; + + ## Ensure we're already closed. + $self->close; + + ## Connect with or without a timeout. + if (defined($timeout) and &_have_alarm) { # use a timeout + ## Convert possible absolute timeout to relative timeout. + if ($timeout >= $^T) { # it's an absolute time + $timeout = $timeout - time; + } + + ## Ensure a valid timeout value for alarm. + if ($timeout < 1) { + $timeout = 1; + } + $timeout = int($timeout + 1.5); + + ## Connect to server, timing out if it takes too long. + eval { + ## Turn on timer. + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{ALRM} = sub { die "timed-out\n" }; + alarm $timeout; + + ## Lookup server's IP address. + $ip_addr = inet_aton $host + or die "unknown remote host: $host\n"; + + ## Create a socket and attach the filehandle to it. + socket $self, AF_INET, SOCK_STREAM, 0 + or die "problem creating socket: $!\n"; + + ## Open connection to server. + connect $self, sockaddr_in($port, $ip_addr) + or die "problem connecting to \"$host\", port $port: $!\n"; + }; + alarm 0; + + ## Check for error. + if ($@ =~ /^timed-out$/) { # time out failure + $s->{timedout} = 1; + $self->close; + if (!$ip_addr) { + return $self->error("unknown remote host: $host: ", + "name lookup timed-out"); + } + else { + return $self->error("problem connecting to \"$host\", ", + "port $port: connect timed-out"); + } + } + elsif ($@) { # hostname lookup or connect failure + $self->close; + chomp $@; + return $self->error($@); + } + } + else { # don't use a timeout + $timeout = undef; + + ## Lookup server's IP address. + $ip_addr = inet_aton $host + or return $self->error("unknown remote host: $host"); + + ## Create a socket and attach the filehandle to it. + socket $self, AF_INET, SOCK_STREAM, 0 + or return $self->error("problem creating socket: $!"); + + ## Open connection to server. + connect $self, sockaddr_in($port, $ip_addr) + or do { + $errno = "$!"; + $self->close; + return $self->error("problem connecting to \"$host\", ", + "port $port: $errno"); + }; + } + + select((select($self), $|=1)[$[]); # don't buffer writes + $s->{blksize} = &_optimal_blksize((stat $self)[11]); + $s->{buf} = ""; + $s->{eofile} = ''; + $s->{errormsg} = ""; + vec($s->{fdmask}='', fileno($self), 1) = 1; + $s->{last_line} = ""; + $s->{num_wrote} = 0; + $s->{opened} = 1; + $s->{pending_errormsg} = ""; + $s->{pushback_buf} = ""; + $s->{timedout} = ''; + $s->{unsent_opts} = ""; + &_reset_options($s->{opts}); + + 1; +} # end sub open + + +sub option_accept { + my ($self, @args) = @_; + my ( + $arg, + $option, + $s, + @opt_args, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + + ## Parse the named args. + while (($_, $arg) = splice @args, 0, 2) { + ## Verify and save arguments. + if (/^-?do$/i) { + ## Make sure a callback is defined. + return $self->error("usage: an option callback must already ", + "be defined when enabling with $_") + unless $s->{opt_cback}; + + $option = &_verify_telopt_arg($self, $arg, $_); + return unless defined $option; + push @opt_args, { option => $option, + is_remote => '', + is_enable => 1, + }; + } + elsif (/^-?dont$/i) { + $option = &_verify_telopt_arg($self, $arg, $_); + return unless defined $option; + push @opt_args, { option => $option, + is_remote => '', + is_enable => '', + }; + } + elsif (/^-?will$/i) { + ## Make sure a callback is defined. + return $self->error("usage: an option callback must already ", + "be defined when enabling with $_") + unless $s->{opt_cback}; + + $option = &_verify_telopt_arg($self, $arg, $_); + return unless defined $option; + push @opt_args, { option => $option, + is_remote => 1, + is_enable => 1, + }; + } + elsif (/^-?wont$/i) { + $option = &_verify_telopt_arg($self, $arg, $_); + return unless defined $option; + push @opt_args, { option => $option, + is_remote => 1, + is_enable => '', + }; + } + else { + return $self->error('usage: $obj->option_accept(' . + '[Do => $telopt,] ', + '[Dont => $telopt,] ', + '[Will => $telopt,] ', + '[Wont => $telopt,]'); + } + } + + ## Set "receive ok" for options specified. + &_opt_accept($self, @opt_args); +} # end sub option_accept + + +sub option_callback { + my ($self, $callback) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{opt_cback}; + + if (@_ >= 2) { + unless (defined $callback and ref($callback) eq "CODE") { + &_carp($self, "ignoring Option_callback argument because it's " . + "not a code ref"); + $callback = $prev; + } + + $s->{opt_cback} = $callback; + } + + $prev; +} # end sub option_callback + + +sub option_log { + my ($self, $name) = @_; + my ( + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $fh = $s->{opt_log}; + + if (@_ >= 2) { + unless (defined $name) { + $name = ""; + } + + $fh = &_fname_to_handle($self, $name) + or return; + $s->{opt_log} = $fh; + } + + $fh; +} # end sub option_log + + +sub option_state { + my ($self, $option) = @_; + my ( + $opt_state, + $s, + %opt_state, + ); + + ## Ensure telnet option is non-negative integer. + $option = &_verify_telopt_arg($self, $option); + return unless defined $option; + + ## Init. + $s = *$self->{net_telnet}; + unless (defined $s->{opts}{$option}) { + &_set_default_option($s, $option); + } + + ## Return hashref to a copy of the values. + $opt_state = $s->{opts}{$option}; + %opt_state = %$opt_state; + \%opt_state; +} # end sub option_state + + +## Make ors() synonymous with output_record_separator(). +*ors = \&output_record_separator; + + +sub output_field_separator { + my ($self, $ofs) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{ofs}; + + if (@_ >= 2) { + unless (defined $ofs) { + $ofs = ""; + } + + $s->{ofs} = $ofs; + } + + $prev; +} # end sub output_field_separator + + +sub output_log { + my ($self, $name) = @_; + my ( + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $fh = $s->{outputlog}; + + if (@_ >= 2) { + unless (defined $name) { + $name = ""; + } + + $fh = &_fname_to_handle($self, $name) + or return; + $s->{outputlog} = $fh; + } + + $fh; +} # end sub output_log + + +sub output_record_separator { + my ($self, $ors) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{ors}; + + if (@_ >= 2) { + unless (defined $ors) { + $ors = ""; + } + + $s->{ors} = $ors; + } + + $prev; +} # end sub output_record_separator + + +sub port { + my ($self, $port) = @_; + my ( + $prev, + $s, + $service, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{port}; + + if (@_ >= 2) { + unless (defined $port) { + $port = ""; + } + + if (!$port) { + &_carp($self, "ignoring bad Port argument \"$port\""); + $port = $prev; + } + elsif ($port !~ /^\d+$/) { # port isn't all digits + $service = $port; + $port = getservbyname($service, "tcp"); + unless ($port) { + &_carp($self, "ignoring bad Port argument \"$service\": " . + "it's an unknown TCP service"); + $port = $prev; + } + } + + $s->{port} = $port; + } + + $prev; +} # end sub port + + +sub print { + my ($self) = shift; + my ( + $buf, + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + return $self->error("write error: filehandle isn't open") + unless $s->{opened}; + + ## Add field and record separators. + $buf = join($s->{ofs}, @_) . $s->{ors}; + + ## Log the output if requested. + if ($s->{outputlog}) { + &_log_print($s->{outputlog}, $buf); + } + + ## Convert native newlines to CR LF. + if (!$s->{bin_mode}) { + $buf =~ s(\n)(\015\012)g; + } + + ## Escape TELNET IAC and also CR not followed by LF. + if ($s->{telnet_mode}) { + $buf =~ s(\377)(\377\377)g; + &_escape_cr(\$buf); + } + + &_put($self, \$buf, "print"); +} # end sub print + + +sub print_length { + my ($self) = @_; + + *$self->{net_telnet}{num_wrote}; +} # end sub print_length + + +sub prompt { + my ($self, $prompt) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{cmd_prompt}; + + ## Parse args. + if (@_ == 2) { + $s->{cmd_prompt} = &_parse_prompt($self, $prompt); + } + + $prev; +} # end sub prompt + + +sub put { + my ($self) = @_; + my ( + $binmode, + $buf, + $errmode, + $is_timeout_arg, + $s, + $telnetmode, + $timeout, + %args, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + + ## Parse args. + if (@_ == 2) { # one positional arg given + $buf = $_[1]; + } + elsif (@_ > 2) { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?binmode$/i) { + $binmode = $args{$_}; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?string$/i) { + $buf = $args{$_}; + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $args{$_}; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + $is_timeout_arg = 1; + } + else { + &_croak($self, "bad named parameter \"$_\" given ", + "to " . ref($self) . "::put()"); + } + } + } + + ## If any args given, override corresponding instance data. + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + local $s->{time_out} = $timeout + if defined $is_timeout_arg; + + ## Check for errors. + return $self->error("write error: filehandle isn't open") + unless $s->{opened}; + + ## Log the output if requested. + if ($s->{outputlog}) { + &_log_print($s->{outputlog}, $buf); + } + + ## Convert native newlines to CR LF. + if (!$s->{bin_mode}) { + $buf =~ s(\n)(\015\012)g; + } + + ## Escape TELNET IAC and also CR not followed by LF. + if ($s->{telnet_mode}) { + $buf =~ s(\377)(\377\377)g; + &_escape_cr(\$buf); + } + + &_put($self, \$buf, "print"); +} # end sub put + + +## Make rs() synonymous input_record_separator(). +*rs = \&input_record_separator; + + +sub suboption_callback { + my ($self, $callback) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{subopt_cback}; + + if (@_ >= 2) { + unless (defined $callback and ref($callback) eq "CODE") { + &_carp($self,"ignoring Suboption_callback argument because it's " . + "not a code ref"); + $callback = $prev; + } + + $s->{subopt_cback} = $callback; + } + + $prev; +} # end sub suboption_callback + + +sub telnetmode { + my ($self, $mode) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{telnet_mode}; + + if (@_ >= 2) { + unless (defined $mode) { + $mode = 0; + } + + $s->{telnet_mode} = $mode; + } + + $prev; +} # end sub telnetmode + + +sub timed_out { + my ($self, $value) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{timedout}; + + if (@_ >= 2) { + unless (defined $value) { + $value = ""; + } + + $s->{timedout} = $value; + } + + $prev; +} # end sub timed_out + + +sub timeout { + my ($self, $timeout) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{time_out}; + + if (@_ >= 2) { + $s->{time_out} = &_parse_timeout($self, $timeout); + } + + $prev; +} # end sub timeout + + +sub waitfor { + my ($self, @args) = @_; + my ( + $arg, + $binmode, + $endtime, + $errmode, + $len, + $match, + $match_op, + $pos, + $prematch, + $s, + $search, + $search_cond, + $telnetmode, + $timeout, + @match_cond, + @match_ops, + @search_cond, + @string_cond, + @warns, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + return if $s->{eofile}; + return unless @args; + $timeout = $s->{time_out}; + + ## Code template used to build string match conditional. + ## Values between array elements must be supplied later. + @string_cond = + ('if (($pos = index $s->{buf}, ', ') > -1) { + $len = ', '; + $prematch = substr $s->{buf}, 0, $pos; + $match = substr $s->{buf}, $pos, $len; + substr($s->{buf}, 0, $pos + $len) = ""; + last; + }'); + + ## Code template used to build pattern match conditional. + ## Values between array elements must be supplied later. + @match_cond = + ('if ($s->{buf} =~ ', ') { + $prematch = $`; + $match = $&; + substr($s->{buf}, 0, length($`) + length($&)) = ""; + last; + }'); + + ## Parse args. + if (@_ == 2) { # one positional arg given + $arg = $_[1]; + + ## Fill in the blanks in the code template. + push @match_ops, $arg; + push @search_cond, join("", $match_cond[0], $arg, $match_cond[1]); + } + elsif (@_ > 2) { # named args given + ## Parse the named args. + while (($_, $arg) = splice @args, 0, 2) { + if (/^-?binmode$/i) { + $binmode = $arg; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $arg); + } + elsif (/^-?match$/i) { + ## Fill in the blanks in the code template. + push @match_ops, $arg; + push @search_cond, join("", + $match_cond[0], $arg, $match_cond[1]); + } + elsif (/^-?string$/i) { + ## Fill in the blanks in the code template. + $arg =~ s/'/\\'/g; # quote ticks + push @search_cond, join("", + $string_cond[0], "'$arg'", + $string_cond[1], length($arg), + $string_cond[2]); + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $arg; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $arg); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::waitfor()"); + } + } + } + + ## If any args given, override corresponding instance data. + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + + ## Check for bad match operator argument. + foreach $match_op (@match_ops) { + return $self->error("missing opening delimiter of match operator ", + "in argument \"$match_op\" given to ", + ref($self) . "::waitfor()") + unless $match_op =~ m(^\s*/) or $match_op =~ m(^\s*m\s*\W); + } + + ## Construct conditional to check for requested string and pattern matches. + ## Turn subsequent "if"s into "elsif". + $search_cond = join "\n\tels", @search_cond; + + ## Construct loop to fill buffer until string/pattern, timeout, or eof. + $search = join "", " + while (1) {\n\t", + $search_cond, ' + &_fillbuf($self, $s, $endtime) + or do { + last if $s->{timedout}; + $self->close; + last; + }; + }'; + + ## Set wall time when we timeout. + $endtime = &_endtime($timeout); + + ## Run the loop. + { + local $^W = 1; + local $SIG{"__WARN__"} = sub { push @warns, @_ }; + local $s->{errormode} = "return"; + $s->{errormsg} = ""; + eval $search; + } + + ## Check for failure. + return $self->error("pattern match timed-out") if $s->{timedout}; + return $self->error($s->{errormsg}) if $s->{errormsg} ne ""; + return $self->error("pattern match read eof") if $s->{eofile}; + + ## Check for Perl syntax errors or warnings. + if ($@ or @warns) { + foreach $match_op (@match_ops) { + &_match_check($self, $match_op) + or return; + } + return $self->error($@) if $@; + return $self->error(@warns) if @warns; + } + + wantarray ? ($prematch, $match) : 1; +} # end sub waitfor + + +######################## Private Subroutines ######################### + + +sub _append_lineno { + my ($obj, @msgs) = @_; + my ( + $file, + $line, + $pkg, + ); + + ## Find the caller that's not in object's class or one of its base classes. + ($pkg, $file , $line) = &_user_caller($obj); + join("", @msgs, " at ", $file, " line ", $line, "\n"); +} # end sub _append_lineno + + +sub _carp { + warn &_append_lineno(@_); +} # end sub _carp + + +sub _croak { + die &_append_lineno(@_); +} # end sub _croak + + +sub _endtime { + my ($interval) = @_; + + ## Compute wall time when timeout occurs. + if (defined $interval) { + if ($interval >= $^T) { # it's already an absolute time + return $interval; + } + elsif ($interval > 0) { # it's relative to the current time + return int(time + 1.5 + $interval); + } + else { # it's a one time poll + return 0; + } + } + else { # there's no timeout + return undef; + } +} # end sub _endtime + + +sub _escape_cr { + my ($string) = @_; + my ( + $nextchar, + ); + my $pos = 0; + + ## Convert all CR (not followed by LF) to CR NULL. + while (($pos = index($$string, "\015", $pos)) > -1) { + $nextchar = substr $$string, $pos + 1, 1; + + substr($$string, $pos, 1) = "\015\000" + unless $nextchar eq "\012"; + + $pos++; + } + + 1; +} # end sub _escape_cr + + +sub _fillbuf { + my ($self, $s, $endtime) = @_; + my ( + $msg, + $nfound, + $nread, + $pushback_len, + $read_pos, + $ready, + $timed_out, + $timeout, + $unparsed_pos, + ); + + ## If error from last read not yet reported then do it now. + if ($s->{pending_errormsg}) { + $msg = $s->{pending_errormsg}; + $s->{pending_errormsg} = ""; + return $self->error($msg); + } + + return unless $s->{opened}; + + while (1) { + ## Maximum buffer size exceeded? + return $self->error("maximum input buffer length exceeded: ", + $s->{maxbufsize}, " bytes") + unless length($s->{buf}) <= $s->{maxbufsize}; + + ## Determine how long to wait for input ready. + ($timed_out, $timeout) = &_timeout_interval($endtime); + if ($timed_out) { + $s->{timedout} = 1; + return $self->error("read timed-out"); + } + + ## Wait for input ready. + $nfound = select $ready=$s->{fdmask}, "", "", $timeout; + + ## Handle any errors while waiting. + if (!defined $nfound or $nfound <= 0) { # input not ready + if (defined $nfound and $nfound == 0) { # timed-out + $s->{timedout} = 1; + return $self->error("read timed-out"); + } + else { # error waiting for input ready + next if $! =~ /^interrupted/i; + + $s->{opened} = ''; + return $self->error("read error: $!"); + } + } + + ## Append to buffer any partially processed telnet or CR sequence. + $pushback_len = length $s->{pushback_buf}; + if ($pushback_len) { + $s->{buf} .= $s->{pushback_buf}; + $s->{pushback_buf} = ""; + } + + ## Read the waiting data. + $read_pos = length $s->{buf}; + $unparsed_pos = $read_pos - $pushback_len; + $nread = sysread $self, $s->{buf}, $s->{blksize}, $read_pos; + + ## Handle any read errors. + if (!defined $nread) { # read failed + next if $! =~ /^interrupted/i; # restart interrupted syscall + + $s->{opened} = ''; + return $self->error("read error: $!"); + } + + ## Handle eof. + if ($nread == 0) { # eof read + $s->{opened} = ''; + return; + } + + ## Display network traffic if requested. + if ($s->{dumplog}) { + &_log_dump('<', $s->{dumplog}, \$s->{buf}, $read_pos); + } + + ## Process any telnet commands in the data stream. + if ($s->{telnet_mode} and index($s->{buf},"\377",$unparsed_pos) > -1) { + &_interpret_tcmd($self, $s, $unparsed_pos); + } + + ## Process any carriage-return sequences in the data stream. + &_interpret_cr($s, $unparsed_pos); + + ## Read again if all chars read were consumed as telnet cmds. + next if $unparsed_pos >= length $s->{buf}; + + ## Log the input if requested. + if ($s->{inputlog}) { + &_log_print($s->{inputlog}, substr($s->{buf}, $unparsed_pos)); + } + + ## Save the last line read. + &_save_lastline($s); + + ## We've successfully read some data into the buffer. + last; + } # end while(1) + + 1; +} # end sub _fillbuf + + +sub _flush_opts { + my ($self) = @_; + my ( + $option_chars, + ); + my $s = *$self->{net_telnet}; + + ## Get option and clear the output buf. + $option_chars = $s->{unsent_opts}; + $s->{unsent_opts} = ""; + + ## Try to send options without waiting. + { + local $s->{errormode} = "return"; + local $s->{time_out} = 0; + &_put($self, \$option_chars, "telnet option negotiation") + or do { + ## Save chars not printed for later. + substr($option_chars, 0, $self->print_length) = ""; + $s->{unsent_opts} .= $option_chars; + }; + } + + 1; +} # end sub _flush_opts + + +sub _fname_to_handle { + my ($self, $fh) = @_; + my ( + $filename, + ); + + ## Ensure valid input. + return "" + unless defined $fh and (ref $fh or length $fh); + + ## Open a new filehandle if input is a filename. + no strict "refs"; + if (!ref($fh) and !defined(fileno $fh)) { # fh is a filename + $filename = $fh; + $fh = &_new_handle(); + CORE::open $fh, "> $filename" + or return $self->error("problem creating $filename: $!"); + } + + select((select($fh), $|=1)[$[]); # don't buffer writes + $fh; +} # end sub _fname_to_handle + + +sub _have_alarm { + eval { + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{ALRM} = sub { die }; + alarm 0; + }; + + ! $@; +} # end sub _have_alarm + + +sub _interpret_cr { + my ($s, $pos) = @_; + my ( + $nextchar, + ); + + while (($pos = index($s->{buf}, "\015", $pos)) > -1) { + $nextchar = substr($s->{buf}, $pos + 1, 1); + if ($nextchar eq "\0") { + ## Convert CR NULL to CR when in telnet mode. + if ($s->{telnet_mode}) { + substr($s->{buf}, $pos + 1, 1) = ""; + } + } + elsif ($nextchar eq "\012") { + ## Convert CR LF to newline when not in binary mode. + if (!$s->{bin_mode}) { + substr($s->{buf}, $pos, 2) = "\n"; + } + } + elsif (!length($nextchar) and ($s->{telnet_mode} or !$s->{bin_mode})) { + ## Save CR in alt buffer for possible CR LF or CR NULL conversion. + $s->{pushback_buf} .= "\015"; + chop $s->{buf}; + } + + $pos++; + } + + 1; +} # end sub _interpret_cr + + +sub _interpret_tcmd { + my ($self, $s, $offset) = @_; + my ( + $callback, + $endpos, + $nextchar, + $option, + $parameters, + $pos, + $subcmd, + ); + local $_; + + ## Parse telnet commands in the data stream. + $pos = $offset; + while (($pos = index $s->{buf}, "\377", $pos) > -1) { # unprocessed IAC + $nextchar = substr $s->{buf}, $pos + 1, 1; + + ## Save command if it's only partially read. + if (!length $nextchar) { + $s->{pushback_buf} .= "\377"; + chop $s->{buf}; + last; + } + + if ($nextchar eq "\377") { # IAC is escaping "\377" char + ## Remove escape char from data stream. + substr($s->{buf}, $pos, 1) = ""; + $pos++; + } + elsif ($nextchar eq "\375" or $nextchar eq "\373" or + $nextchar eq "\374" or $nextchar eq "\376") { # opt negotiation + $option = substr $s->{buf}, $pos + 2, 1; + + ## Save command if it's only partially read. + if (!length $option) { + $s->{pushback_buf} .= "\377" . $nextchar; + chop $s->{buf}; + chop $s->{buf}; + last; + } + + ## Remove command from data stream. + substr($s->{buf}, $pos, 3) = ""; + + ## Handle option negotiation. + &_negotiate_recv($self, $s, $nextchar, ord($option), $pos); + } + elsif ($nextchar eq "\372") { # start of subnegotiation parameters + ## Save command if it's only partially read. + $endpos = index $s->{buf}, "\360", $pos; + if ($endpos == -1) { + $s->{pushback_buf} .= substr $s->{buf}, $pos; + substr($s->{buf}, $pos) = ""; + last; + } + + ## Remove subnegotiation cmd from buffer. + $subcmd = substr($s->{buf}, $pos, $endpos - $pos + 1); + substr($s->{buf}, $pos, $endpos - $pos + 1) = ""; + + ## Invoke subnegotiation callback. + if ($s->{subopt_cback} and length($subcmd) >= 5) { + $option = unpack "C", substr($subcmd, 2, 1); + if (length($subcmd) >= 6) { + $parameters = substr $subcmd, 3, length($subcmd) - 5; + } + else { + $parameters = ""; + } + + $callback = $s->{subopt_cback}; + &$callback($self, $option, $parameters); + } + } + else { # various two char telnet commands + ## Ignore and remove command from data stream. + substr($s->{buf}, $pos, 2) = ""; + } + } + + ## Try to send any waiting option negotiation. + if (length $s->{unsent_opts}) { + &_flush_opts($self); + } + + 1; +} # end sub _interpret_tcmd + + +sub _io_socket_include { + local $SIG{"__DIE__"} = "DEFAULT"; + eval "require IO::Socket"; +} # end sub io_socket_include + + +sub _log_dump { + my ($direction, $fh, $data, $offset, $len) = @_; + my ( + $addr, + $hexvals, + $line, + ); + + $addr = 0; + $len = length($$data) - $offset + if !defined $len; + return 1 if $len <= 0; + + ## Print data in dump format. + while ($len > 0) { + ## Convert up to the next 16 chars to hex, padding w/ spaces. + if ($len >= 16) { + $line = substr $$data, $offset, 16; + } + else { + $line = substr $$data, $offset, $len; + } + $hexvals = unpack("H*", $line); + $hexvals .= ' ' x (32 - length $hexvals); + + ## Place in 16 columns, each containing two hex digits. + $hexvals = sprintf("%s %s %s %s " x 4, + unpack("a2" x 16, $hexvals)); + + ## For the ASCII column, change unprintable chars to a period. + $line =~ s/[\000-\037,\177-\237]/./g; + + ## Print the line in dump format. + &_log_print($fh, sprintf("%s 0x%5.5lx: %s%s\n", + $direction, $addr, $hexvals, $line)); + + $addr += 16; + $offset += 16; + $len -= 16; + } + + &_log_print($fh, "\n"); + + 1; +} # end sub _log_dump + + +sub _log_option { + my ($fh, $direction, $request, $option) = @_; + my ( + $name, + ); + + if ($option >= 0 and $option <= $#Telopts) { + $name = $Telopts[$option]; + } + else { + $name = $option; + } + + &_log_print($fh, "$direction $request $name\n"); +} # end sub _log_option + + +sub _log_print { + my ($fh, $buf) = @_; + local $\ = ''; + + if (ref($fh) and ref($fh) ne "GLOB") { # fh is blessed ref + $fh->print($buf); + } + else { # fh isn't blessed ref + print $fh $buf; + } +} # end sub _log_print + + +sub _match_check { + my ($self, $code) = @_; + my $error; + my @warns = (); + + ## Use eval to check for syntax errors or warnings. + { + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{"__WARN__"} = sub { push @warns, @_ }; + local $^W = 1; + local $_ = ''; + eval "\$_ =~ $code;"; + } + if ($@) { + ## Remove useless lines numbers from message. + ($error = $@) =~ s/ at \(eval \d+\) line \d+.?//; + chomp $error; + return $self->error("bad match operator: $error"); + } + elsif (@warns) { + ## Remove useless lines numbers from message. + ($error = shift @warns) =~ s/ at \(eval \d+\) line \d+.?//; + $error =~ s/ while "strict subs" in use//; + chomp $error; + return $self->error("bad match operator: $error"); + } + + 1; +} # end sub _match_check + + +sub _negotiate_callback { + my ($self, $opt, $is_remote, $is_enabled, $was_enabled, $opt_bufpos) = @_; + my ( + $callback, + $s, + ); + local $_; + + ## Keep track of remote echo. + if ($is_remote and $opt == &TELOPT_ECHO) { # received WILL or WONT ECHO + $s = *$self->{net_telnet}; + + if ($is_enabled and !$was_enabled) { # received WILL ECHO + $s->{remote_echo} = 1; + } + elsif (!$is_enabled and $was_enabled) { # received WONT ECHO + $s->{remote_echo} = ''; + } + } + + ## Invoke callback, if there is one. + $callback = $self->option_callback; + if ($callback) { + &$callback($self, $opt, $is_remote, + $is_enabled, $was_enabled, $opt_bufpos); + } + + 1; +} # end sub _negotiate_callback + + +sub _negotiate_recv { + my ($self, $s, $opt_request, $opt, $opt_bufpos) = @_; + + ## Ensure data structure exists for this option. + unless (defined $s->{opts}{$opt}) { + &_set_default_option($s, $opt); + } + + ## Process the option. + if ($opt_request eq "\376") { # DONT + &_negotiate_recv_disable($self, $s, $opt, "dont", $opt_bufpos, + $s->{opts}{$opt}{local_enable_ok}, + \$s->{opts}{$opt}{local_enabled}, + \$s->{opts}{$opt}{local_state}); + } + elsif ($opt_request eq "\375") { # DO + &_negotiate_recv_enable($self, $s, $opt, "do", $opt_bufpos, + $s->{opts}{$opt}{local_enable_ok}, + \$s->{opts}{$opt}{local_enabled}, + \$s->{opts}{$opt}{local_state}); + } + elsif ($opt_request eq "\374") { # WONT + &_negotiate_recv_disable($self, $s, $opt, "wont", $opt_bufpos, + $s->{opts}{$opt}{remote_enable_ok}, + \$s->{opts}{$opt}{remote_enabled}, + \$s->{opts}{$opt}{remote_state}); + } + elsif ($opt_request eq "\373") { # WILL + &_negotiate_recv_enable($self, $s, $opt, "will", $opt_bufpos, + $s->{opts}{$opt}{remote_enable_ok}, + \$s->{opts}{$opt}{remote_enabled}, + \$s->{opts}{$opt}{remote_state}); + } + else { # internal error + die; + } + + 1; +} # end sub _negotiate_recv + + +sub _negotiate_recv_disable { + my ($self, $s, $opt, $opt_request, + $opt_bufpos, $enable_ok, $is_enabled, $state) = @_; + my ( + $ack, + $disable_cmd, + $enable_cmd, + $is_remote, + $nak, + $was_enabled, + ); + + ## What do we use to request enable/disable or respond with ack/nak. + if ($opt_request eq "wont") { + $enable_cmd = "\377\375" . pack("C", $opt); # do command + $disable_cmd = "\377\376" . pack("C", $opt); # dont command + $is_remote = 1; + $ack = "DO"; + $nak = "DONT"; + + &_log_option($s->{opt_log}, "RCVD", "WONT", $opt) + if $s->{opt_log}; + } + elsif ($opt_request eq "dont") { + $enable_cmd = "\377\373" . pack("C", $opt); # will command + $disable_cmd = "\377\374" . pack("C", $opt); # wont command + $is_remote = ''; + $ack = "WILL"; + $nak = "WONT"; + + &_log_option($s->{opt_log}, "RCVD", "DONT", $opt) + if $s->{opt_log}; + } + else { # internal error + die; + } + + ## Respond to WONT or DONT based on the current negotiation state. + if ($$state eq "no") { # state is already disabled + } + elsif ($$state eq "yes") { # they're initiating disable + $$is_enabled = ''; + $$state = "no"; + + ## Send positive acknowledgment. + $s->{unsent_opts} .= $disable_cmd; + &_log_option($s->{opt_log}, "SENT", $nak, $opt) + if $s->{opt_log}; + + ## Invoke callbacks. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantno") { # they sent positive ack + $$is_enabled = ''; + $$state = "no"; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantno opposite") { # pos ack but we changed our mind + ## Indicate disabled but now we want to enable. + $$is_enabled = ''; + $$state = "wantyes"; + + ## Send queued request. + $s->{unsent_opts} .= $enable_cmd; + &_log_option($s->{opt_log}, "SENT", $ack, $opt) + if $s->{opt_log}; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantyes") { # they sent negative ack + $$is_enabled = ''; + $$state = "no"; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantyes opposite") { # nak but we changed our mind + $$is_enabled = ''; + $$state = "no"; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } +} # end sub _negotiate_recv_disable + + +sub _negotiate_recv_enable { + my ($self, $s, $opt, $opt_request, + $opt_bufpos, $enable_ok, $is_enabled, $state) = @_; + my ( + $ack, + $disable_cmd, + $enable_cmd, + $is_remote, + $nak, + $was_enabled, + ); + + ## What we use to send enable/disable request or send ack/nak response. + if ($opt_request eq "will") { + $enable_cmd = "\377\375" . pack("C", $opt); # do command + $disable_cmd = "\377\376" . pack("C", $opt); # dont command + $is_remote = 1; + $ack = "DO"; + $nak = "DONT"; + + &_log_option($s->{opt_log}, "RCVD", "WILL", $opt) + if $s->{opt_log}; + } + elsif ($opt_request eq "do") { + $enable_cmd = "\377\373" . pack("C", $opt); # will command + $disable_cmd = "\377\374" . pack("C", $opt); # wont command + $is_remote = ''; + $ack = "WILL"; + $nak = "WONT"; + + &_log_option($s->{opt_log}, "RCVD", "DO", $opt) + if $s->{opt_log}; + } + else { # internal error + die; + } + + ## Save current enabled state. + $was_enabled = $$is_enabled; + + ## Respond to WILL or DO based on the current negotiation state. + if ($$state eq "no") { # they're initiating enable + if ($enable_ok) { # we agree they/us should enable + $$is_enabled = 1; + $$state = "yes"; + + ## Send positive acknowledgment. + $s->{unsent_opts} .= $enable_cmd; + &_log_option($s->{opt_log}, "SENT", $ack, $opt) + if $s->{opt_log}; + + ## Invoke callbacks. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + else { # we disagree they/us should enable + ## Send negative acknowledgment. + $s->{unsent_opts} .= $disable_cmd; + &_log_option($s->{opt_log}, "SENT", $nak, $opt) + if $s->{opt_log}; + } + } + elsif ($$state eq "yes") { # state is already enabled + } + elsif ($$state eq "wantno") { # error: our disable req answered by enable + $$is_enabled = ''; + $$state = "no"; + + ## Invoke callbacks. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantno opposite") { # err: disable req answerd by enable + $$is_enabled = 1; + $$state = "yes"; + + ## Invoke callbacks. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantyes") { # they sent pos ack + $$is_enabled = 1; + $$state = "yes"; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantyes opposite") { # pos ack but we changed our mind + ## Indicate enabled but now we want to disable. + $$is_enabled = 1; + $$state = "wantno"; + + ## Inform other side we changed our mind. + $s->{unsent_opts} .= $disable_cmd; + &_log_option($s->{opt_log}, "SENT", $nak, $opt) + if $s->{opt_log}; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + + 1; +} # end sub _negotiate_recv_enable + + +sub _new_handle { + if ($INC{"IO/Handle.pm"}) { + return IO::Handle->new; + } + else { + require FileHandle; + return FileHandle->new; + } +} # end sub _new_handle + + +sub _next_getlines { + my ($self, $s) = @_; + my ( + $len, + $line, + $pos, + @lines, + ); + + ## Fill buffer and get first line. + $line = $self->getline + or return; + push @lines, $line; + + ## Extract subsequent lines from buffer. + while (($pos = index($s->{buf}, $s->{rs})) != -1) { + $len = $pos + length $s->{rs}; + push @lines, substr($s->{buf}, 0, $len); + substr($s->{buf}, 0, $len) = ""; + } + + @lines; +} # end sub _next_getlines + + +sub _opt_accept { + my ($self, @args) = @_; + my ( + $arg, + $option, + $s, + ); + + ## Init. + $s = *$self->{net_telnet}; + + foreach $arg (@args) { + ## Ensure data structure defined for this option. + $option = $arg->{option}; + if (!defined $s->{opts}{$option}) { + &_set_default_option($s, $option); + } + + ## Save whether we'll accept or reject this option. + if ($arg->{is_remote}) { + $s->{opts}{$option}{remote_enable_ok} = $arg->{is_enable}; + } + else { + $s->{opts}{$option}{local_enable_ok} = $arg->{is_enable}; + } + } + + 1; +} # end sub _opt_accept + + +sub _optimal_blksize { + my ($blksize) = @_; + local $^W = ''; # avoid non-numeric warning for ms-windows blksize of "" + + ## Use default when block size is invalid. + return 8192 + unless defined $blksize and $blksize >= 1 and $blksize <= 1_048_576; + + $blksize; +} # end sub _optimal_blksize + + +sub _parse_cmd_remove_mode { + my ($self, $mode) = @_; + + if (!defined $mode) { + $mode = 0; + } + elsif ($mode =~ /^\s*auto\s*$/i) { + $mode = "auto"; + } + elsif ($mode !~ /^\d+$/) { + &_carp($self, "ignoring bad Cmd_remove_mode " . + "argument \"$mode\": it's not \"auto\" or a " . + "non-negative integer"); + $mode = *$self->{net_telnet}{cmd_rm_mode}; + } + + $mode; +} # end sub _parse_cmd_remove_mode + + +sub _parse_errmode { + my ($self, $errmode) = @_; + + ## Set the error mode. + if (!defined $errmode) { + &_carp($self, "ignoring undefined Errmode argument"); + $errmode = *$self->{net_telnet}{errormode}; + } + elsif ($errmode =~ /^\s*return\s*$/i) { + $errmode = "return"; + } + elsif ($errmode =~ /^\s*die\s*$/i) { + $errmode = "die"; + } + elsif (ref($errmode) eq "CODE") { + } + elsif (ref($errmode) eq "ARRAY") { + unless (ref($errmode->[0]) eq "CODE") { + &_carp($self, "ignoring bad Errmode argument: " . + "first list item isn't a code ref"); + $errmode = *$self->{net_telnet}{errormode}; + } + } + else { + &_carp($self, "ignoring bad Errmode argument \"$errmode\""); + $errmode = *$self->{net_telnet}{errormode}; + } + + $errmode; +} # end sub _parse_errmode + + +sub _parse_input_record_separator { + my ($self, $rs) = @_; + + unless (defined $rs and length $rs) { + &_carp($self, "ignoring null Input_record_separator argument"); + $rs = *$self->{net_telnet}{rs}; + } + + $rs; +} # end sub _parse_input_record_separator + + +sub _parse_prompt { + my ($self, $prompt) = @_; + + unless (defined $prompt) { + $prompt = ""; + } + + unless ($prompt =~ m(^\s*/) or $prompt =~ m(^\s*m\s*\W)) { + &_carp($self, "ignoring bad Prompt argument \"$prompt\": " . + "missing opening delimiter of match operator"); + $prompt = *$self->{net_telnet}{cmd_prompt}; + } + + $prompt; +} # end sub _parse_prompt + + +sub _parse_timeout { + my ($self, $timeout) = @_; + + ## Ensure valid timeout. + if (defined $timeout) { + ## Test for non-numeric or negative values. + eval { + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{"__WARN__"} = sub { die "non-numeric\n" }; + local $^W = 1; + $timeout *= 1; + }; + if ($@) { # timeout arg is non-numeric + &_carp($self, + "ignoring non-numeric Timeout argument \"$timeout\""); + $timeout = *$self->{net_telnet}{time_out}; + } + elsif ($timeout < 0) { # timeout arg is negative + &_carp($self, "ignoring negative Timeout argument \"$timeout\""); + $timeout = *$self->{net_telnet}{time_out}; + } + } + + $timeout; +} # end sub _parse_timeout + + +sub _put { + my ($self, $buf, $subname) = @_; + my ( + $endtime, + $len, + $nfound, + $nwrote, + $offset, + $ready, + $s, + $timed_out, + $timeout, + $zero_wrote_count, + ); + + ## Init. + $s = *$self->{net_telnet}; + $s->{num_wrote} = 0; + $zero_wrote_count = 0; + $offset = 0; + $len = length $$buf; + $endtime = &_endtime($s->{time_out}); + + return $self->error("write error: filehandle isn't open") + unless $s->{opened}; + + ## Try to send any waiting option negotiation. + if (length $s->{unsent_opts}) { + &_flush_opts($self); + } + + ## Write until all data blocks written. + while ($len) { + ## Determine how long to wait for output ready. + ($timed_out, $timeout) = &_timeout_interval($endtime); + if ($timed_out) { + $s->{timedout} = 1; + return $self->error("$subname timed-out"); + } + + ## Wait for output ready. + $nfound = select "", $ready=$s->{fdmask}, "", $timeout; + + ## Handle any errors while waiting. + if (!defined $nfound or $nfound <= 0) { # output not ready + if (defined $nfound and $nfound == 0) { # timed-out + $s->{timedout} = 1; + return $self->error("$subname timed-out"); + } + else { # error waiting for output ready + next if $! =~ /^interrupted/i; + + $s->{opened} = ''; + return $self->error("write error: $!"); + } + } + + ## Write the data. + $nwrote = syswrite $self, $$buf, $len, $offset; + + ## Handle any write errors. + if (!defined $nwrote) { # write failed + next if $! =~ /^interrupted/i; # restart interrupted syscall + + $s->{opened} = ''; + return $self->error("write error: $!"); + } + elsif ($nwrote == 0) { # zero chars written + ## Try ten more times to write the data. + if ($zero_wrote_count++ <= 10) { + &_sleep(0.01); + next; + } + + $s->{opened} = ''; + return $self->error("write error: zero length write: $!"); + } + + ## Display network traffic if requested. + if ($s->{dumplog}) { + &_log_dump('>', $s->{dumplog}, $buf, $offset, $nwrote); + } + + ## Increment. + $s->{num_wrote} += $nwrote; + $offset += $nwrote; + $len -= $nwrote; + } + + 1; +} # end sub _put + + +sub _qualify_fh { + my ($obj, $name) = @_; + my ( + $user_class, + ); + local $_; + + ## Get user's package name. + ($user_class) = &_user_caller($obj); + + ## Ensure name is qualified with a package name. + $name = qualify($name, $user_class); + + ## If it's not already, make it a typeglob ref. + if (!ref $name) { + no strict; + local $^W = 0; + + $name =~ s/^\*+//; + $name = eval "\\*$name"; + return unless ref $name; + } + + $name; +} # end sub _qualify_fh + + +sub _reset_options { + my ($opts) = @_; + my ( + $opt, + ); + + foreach $opt (keys %$opts) { + $opts->{$opt}{remote_enabled} = ''; + $opts->{$opt}{remote_state} = "no"; + $opts->{$opt}{local_enabled} = ''; + $opts->{$opt}{local_state} = "no"; + } + + 1; +} # end sub _reset_options + + +sub _save_lastline { + my ($s) = @_; + my ( + $firstpos, + $lastpos, + $len_w_sep, + $len_wo_sep, + $offset, + ); + my $rs = "\n"; + + if (($lastpos = rindex $s->{buf}, $rs) > -1) { # eol found + while (1) { + ## Find beginning of line. + $firstpos = rindex $s->{buf}, $rs, $lastpos - 1; + if ($firstpos == -1) { + $offset = 0; + } + else { + $offset = $firstpos + length $rs; + } + + ## Determine length of line with and without separator. + $len_wo_sep = $lastpos - $offset; + $len_w_sep = $len_wo_sep + length $rs; + + ## Save line if it's not blank. + if (substr($s->{buf}, $offset, $len_wo_sep) + !~ /^\s*$/) + { + $s->{last_line} = substr($s->{buf}, + $offset, + $len_w_sep); + last; + } + + last if $firstpos == -1; + + $lastpos = $firstpos; + } + } + + 1; +} # end sub _save_lastline + + +sub _set_default_option { + my ($s, $option) = @_; + + $s->{opts}{$option} = { + remote_enabled => '', + remote_state => "no", + remote_enable_ok => '', + local_enabled => '', + local_state => "no", + local_enable_ok => '', + }; +} # end sub _set_default_option + + +sub _sleep { + my ($secs) = @_; + my $bitmask = ""; + local *SOCK; + + socket SOCK, AF_INET, SOCK_STREAM, 0; + vec($bitmask, fileno(SOCK), 1) = 1; + select $bitmask, "", "", $secs; + CORE::close SOCK; + + 1; +} # end sub _sleep + + +sub _timeout_interval { + my ($endtime) = @_; + my ( + $timeout, + ); + + ## Return timed-out boolean and timeout interval. + if (defined $endtime) { + ## Is it a one-time poll. + return ('', 0) if $endtime == 0; + + ## Calculate the timeout interval. + $timeout = $endtime - time; + + ## Did we already timeout. + return (1, 0) unless $timeout > 0; + + return ('', $timeout); + } + else { # there is no timeout + return ('', undef); + } +} # end sub _timeout_interval + + +sub _user_caller { + my ($obj) = @_; + my ( + $class, + $curr_pkg, + $file, + $i, + $line, + $pkg, + %isa, + @isa, + ); + local $_; + + ## Create a boolean hash to test for isa. Make sure current + ## package and the object's class are members. + $class = ref $obj; + @isa = eval "\@${class}::ISA"; + push @isa, $class; + ($curr_pkg) = caller 1; + push @isa, $curr_pkg; + %isa = map { $_ => 1 } @isa; + + ## Search back in call frames for a package that's not in isa. + $i = 1; + while (($pkg, $file, $line) = caller ++$i) { + next if $isa{$pkg}; + + return ($pkg, $file, $line); + } + + ## If not found, choose outer most call frame. + ($pkg, $file, $line) = caller --$i; + return ($pkg, $file, $line); +} # end sub _user_caller + + +sub _verify_telopt_arg { + my ($self, $option, $argname) = @_; + + ## If provided, use argument name in error message. + if (defined $argname) { + $argname = "for arg $argname"; + } + else { + $argname = ""; + } + + ## Ensure telnet option is a non-negative integer. + eval { + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{"__WARN__"} = sub { die "non-numeric\n" }; + local $^W = 1; + $option = abs(int $option); + }; + return $self->error("bad telnet option $argname: non-numeric") + if $@; + + return $self->error("bad telnet option $argname: option > 255") + unless $option <= 255; + + $option; +} # end sub _verify_telopt_arg + + +######################## Exported Constants ########################## + + +sub TELNET_IAC () {255}; # interpret as command: +sub TELNET_DONT () {254}; # you are not to use option +sub TELNET_DO () {253}; # please, you use option +sub TELNET_WONT () {252}; # I won't use option +sub TELNET_WILL () {251}; # I will use option +sub TELNET_SB () {250}; # interpret as subnegotiation +sub TELNET_GA () {249}; # you may reverse the line +sub TELNET_EL () {248}; # erase the current line +sub TELNET_EC () {247}; # erase the current character +sub TELNET_AYT () {246}; # are you there +sub TELNET_AO () {245}; # abort output--but let prog finish +sub TELNET_IP () {244}; # interrupt process--permanently +sub TELNET_BREAK () {243}; # break +sub TELNET_DM () {242}; # data mark--for connect. cleaning +sub TELNET_NOP () {241}; # nop +sub TELNET_SE () {240}; # end sub negotiation +sub TELNET_EOR () {239}; # end of record (transparent mode) +sub TELNET_ABORT () {238}; # Abort process +sub TELNET_SUSP () {237}; # Suspend process +sub TELNET_EOF () {236}; # End of file +sub TELNET_SYNCH () {242}; # for telfunc calls + +sub TELOPT_BINARY () {0}; # Binary Transmission +sub TELOPT_ECHO () {1}; # Echo +sub TELOPT_RCP () {2}; # Reconnection +sub TELOPT_SGA () {3}; # Suppress Go Ahead +sub TELOPT_NAMS () {4}; # Approx Message Size Negotiation +sub TELOPT_STATUS () {5}; # Status +sub TELOPT_TM () {6}; # Timing Mark +sub TELOPT_RCTE () {7}; # Remote Controlled Trans and Echo +sub TELOPT_NAOL () {8}; # Output Line Width +sub TELOPT_NAOP () {9}; # Output Page Size +sub TELOPT_NAOCRD () {10}; # Output Carriage-Return Disposition +sub TELOPT_NAOHTS () {11}; # Output Horizontal Tab Stops +sub TELOPT_NAOHTD () {12}; # Output Horizontal Tab Disposition +sub TELOPT_NAOFFD () {13}; # Output Formfeed Disposition +sub TELOPT_NAOVTS () {14}; # Output Vertical Tabstops +sub TELOPT_NAOVTD () {15}; # Output Vertical Tab Disposition +sub TELOPT_NAOLFD () {16}; # Output Linefeed Disposition +sub TELOPT_XASCII () {17}; # Extended ASCII +sub TELOPT_LOGOUT () {18}; # Logout +sub TELOPT_BM () {19}; # Byte Macro +sub TELOPT_DET () {20}; # Data Entry Terminal +sub TELOPT_SUPDUP () {21}; # SUPDUP +sub TELOPT_SUPDUPOUTPUT () {22}; # SUPDUP Output +sub TELOPT_SNDLOC () {23}; # Send Location +sub TELOPT_TTYPE () {24}; # Terminal Type +sub TELOPT_EOR () {25}; # End of Record +sub TELOPT_TUID () {26}; # TACACS User Identification +sub TELOPT_OUTMRK () {27}; # Output Marking +sub TELOPT_TTYLOC () {28}; # Terminal Location Number +sub TELOPT_3270REGIME () {29}; # Telnet 3270 Regime +sub TELOPT_X3PAD () {30}; # X.3 PAD +sub TELOPT_NAWS () {31}; # Negotiate About Window Size +sub TELOPT_TSPEED () {32}; # Terminal Speed +sub TELOPT_LFLOW () {33}; # Remote Flow Control +sub TELOPT_LINEMODE () {34}; # Linemode +sub TELOPT_XDISPLOC () {35}; # X Display Location +sub TELOPT_OLD_ENVIRON () {36}; # Environment Option +sub TELOPT_AUTHENTICATION () {37}; # Authentication Option +sub TELOPT_ENCRYPT () {38}; # Encryption Option +sub TELOPT_NEW_ENVIRON () {39}; # New Environment Option +sub TELOPT_EXOPL () {255}; # Extended-Options-List + + +1; +__END__; + + +######################## User Documentation ########################## + + +## To format the following documentation into a more readable format, +## use one of these programs: perldoc; pod2man; pod2html; pod2text. +## For example, to nicely format this documentation for printing, you +## may use pod2man and groff to convert to postscript: +## pod2man Net/Telnet.pm | groff -man -Tps > Net::Telnet.ps + +=head1 NAME + +Net::Telnet - interact with TELNET port or other TCP ports + +=head1 SYNOPSIS + +C + +see METHODS section below + +=head1 DESCRIPTION + +Net::Telnet allows you to make client connections to a TCP port and do +network I/O, especially to a port using the TELNET protocol. Simple +I/O methods such as print, get, and getline are provided. More +sophisticated interactive features are provided because connecting to +a TELNET port ultimately means communicating with a program designed +for human interaction. These interactive features include the ability +to specify a time-out and to wait for patterns to appear in the input +stream, such as the prompt from a shell. + +Other reasons to use this module than strictly with a TELNET port are: + +=over 2 + +=item * + +You're not familiar with sockets and you want a simple way to make +client connections to TCP services. + +=item * + +You want to be able to specify your own time-out while connecting, +reading, or writing. + +=item * + +You're communicating with an interactive program at the other end of +some socket or pipe and you want to wait for certain patterns to +appear. + +=back + +Here's an example that prints who's logged-on to the remote host +sparky. In addition to a username and password, you must also know +the user's shell prompt, which for this example is C + + use Net::Telnet (); + $t = new Net::Telnet (Timeout => 10, + Prompt => '/bash\$ $/'); + $t->open("sparky"); + $t->login($username, $passwd); + @lines = $t->cmd("who"); + print @lines; + +More examples are in the B section below. + +Usage questions should be directed to the Usenet newsgroup +comp.lang.perl.modules. + +Contact me, Jay Rogers , if you find any bugs or have +suggestions for improvement. + +=head2 What To Know Before Using + +=over 2 + +=item * + +All output is flushed while all input is buffered. Each object +contains its own input buffer. + +=item * + +The output record separator for C and C is set to +C<"\n"> by default, so that you don't have to append all your commands +with a newline. To avoid printing a trailing C<"\n"> use C or +set the I to C<"">. + +=item * + +The methods C and C use the I setting in the +object to determine when a login or remote command is complete. Those +methods will fail with a time-out if you don't set the prompt +correctly. + +=item * + +Use a combination of C and C as an alternative to +C or C when they don't do what you want. + +=item * + +Errors such as timing-out are handled according to the error mode +action. The default action is to print an error message to standard +error and have the program die. See the C method for more +information. + +=item * + +When constructing the match operator argument for C or +C, always use single quotes instead of double quotes to +avoid unexpected backslash interpretation (e.g. C<'/bash\$ $/'>). If +you're constructing a DOS like file path, you'll need to use four +backslashes to represent one (e.g. C<'/c:\\\\users\\\\billE$/i'>). + +Of course don't forget about regexp metacharacters like C<.>, C<[>, or +C<$>. You'll only need a single backslash to quote them. The anchor +metacharacters C<^> and C<$> refer to positions in the input buffer. +To avoid matching characters read that look like a prompt, it's a good +idea to end your prompt pattern with the C<$> anchor. That way the +prompt will only match if it's the last thing read. + +=item * + +In the input stream, each sequence of I and I (i.e. C<"\015\012"> or CR LF) is converted to C<"\n">. In the +output stream, each occurrence of C<"\n"> is converted to a sequence +of CR LF. See C to change the behavior. TCP protocols +typically use the ASCII sequence, carriage return and line feed to +designate a newline. + +=item * + +Timing-out while making a connection is disabled for machines that +don't support the C function. Most notably these include +MS-Windows machines. + +=item * + +You'll need to be running at least Perl version 5.002 to use this +module. This module does not require any libraries that don't already +come with a standard Perl distribution. + +If you have the IO:: libraries installed (they come standard with +perl5.004 and later) then IO::Socket::INET is used as a base class, +otherwise FileHandle is used. + +=item * + +Contact me, Jay Rogers , if you find any bugs or have +suggestions for improvement. + +=back + +=head2 Debugging + +The typical usage bug causes a time-out error because you've made +incorrect assumptions about what the remote side actually sends. The +easiest way to reconcile what the remote side sends with your +expectations is to use C or C. + +C allows you to see the data being sent from the remote +side before any translation is done, while C shows you +the results after translation. The translation includes converting +end of line characters, removing and responding to TELNET protocol +commands in the data stream. + +=head2 Style of Named Parameters + +Two different styles of named parameters are supported. This document +only shows the IO:: style: + + Net::Telnet->new(Timeout => 20); + +however the dash-option style is also allowed: + + Net::Telnet->new(-timeout => 20); + +=head2 Connecting to a Remote MS-Windows Machine + +By default MS-Windows doesn't come with a TELNET server. However +third party TELNET servers are available. Unfortunately many of these +servers falsely claim to be a TELNET server. This is especially true +of the so-called "Microsoft Telnet Server" that comes installed with +some newer versions MS-Windows. + +When a TELNET server first accepts a connection, it must use the ASCII +control characters carriage-return and line-feed to start a new line +(see RFC854). A server like the "Microsoft Telnet Server" that +doesn't do this, isn't a TELNET server. These servers send ANSI +terminal escape sequences to position to a column on a subsequent line +and to even position while writing characters that are adjacent to +each other. Worse, when sending output these servers resend +previously sent command output in a misguided attempt to display an +entire terminal screen. + +Connecting Net::Telnet to one of these false TELNET servers makes your +job of parsing command output very difficult. It's better to replace +a false TELNET server with a real TELNET server. The better TELNET +servers for MS-Windows allow you to avoid the ANSI escapes by turning +off something some of them call I. + + +=head1 METHODS + +In the calling sequences below, square brackets B<[]> represent +optional parameters. + +=over 4 + +=item B - create a new Net::Telnet object + + $obj = new Net::Telnet ([$host]); + + $obj = new Net::Telnet ([Binmode => $mode,] + [Cmd_remove_mode => $mode,] + [Dump_Log => $filename,] + [Errmode => $errmode,] + [Fhopen => $filehandle,] + [Host => $host,] + [Input_log => $file,] + [Input_record_separator => $chars,] + [Option_log => $file,] + [Ors => $chars,] + [Output_log => $file,] + [Output_record_separator => $chars,] + [Port => $port,] + [Prompt => $matchop,] + [Rs => $chars,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This is the constructor for Net::Telnet objects. A new object is +returned on success, the error mode action is performed on failure - +see C. The optional arguments are short-cuts to methods of +the same name. + +If the I<$host> argument is given then the object is opened by +connecting to TCP I<$port> on I<$host>. Also see C. The new +object returned is given the following defaults in the absence of +corresponding named parameters: + +=over 4 + +=item + +The default I is C<"localhost"> + +=item + +The default I is C<23> + +=item + +The default I is C<'/[\$%#E] $/'> + +=item + +The default I is C<10> + +=item + +The default I is C<"die"> + +=item + +The default I is C<"\n">. Note that I +is synonymous with I. + +=item + +The default I is C<"\n">. Note that I is +synonymous with I. + +=item + +The default I is C<0>, which means do newline translation. + +=item + +The default I is C<1>, which means respond to TELNET +commands in the data stream. + +=item + +The default I is C<"auto"> + +=item + +The defaults for I, I, I, and +I are C<"">, which means that logging is turned-off. + +=back + +=back + + +=over 4 + +=item B - toggle newline translation + + $mode = $obj->binmode; + + $prev = $obj->binmode($mode); + +This method controls whether or not sequences of carriage returns and +line feeds (CR LF or more specifically C<"\015\012">) are translated. +By default they are translated (i.e. binmode is C<0>). + +If no argument is given, the current mode is returned. + +If I<$mode> is C<1> then binmode is I and newline translation is +not done. + +If I<$mode> is C<0> then binmode is I and newline translation is +done. In the input stream, each sequence of CR LF is converted to +C<"\n"> and in the output stream, each occurrence of C<"\n"> is +converted to a sequence of CR LF. + +Note that input is always buffered. Changing binmode doesn't effect +what's already been read into the buffer. Output is not buffered and +changing binmode will have an immediate effect. + +=back + + +=over 4 + +=item B - send TELNET break character + + $ok = $obj->break; + +This method sends the TELNET break character. This character is +provided because it's a signal outside the ASCII character set which +is currently given local meaning within many systems. It's intended +to indicate that the Break Key or the Attention Key was hit. + +This method returns C<1> on success, or performs the error mode action +on failure. + +=back + + +=over 4 + +=item B - scalar reference to object's input buffer + + $ref = $obj->buffer; + +This method returns a scalar reference to the input buffer for +I<$obj>. Data in the input buffer is data that has been read from the +remote side but has yet to be read by the user. Modifications to the +input buffer are returned by a subsequent read. + +=back + + +=over 4 + +=item B - discard all data in object's input buffer + + $obj->buffer_empty; + +This method removes all data in the input buffer for I<$obj>. + +=back + + +=over 4 + +=item B - close object + + $ok = $obj->close; + +This method closes the socket, file, or pipe associated with the +object. It always returns a value of C<1>. + +=back + + +=over 4 + +=item B - issue command and retrieve output + + $ok = $obj->cmd($string); + $ok = $obj->cmd(String => $string, + [Output => $ref,] + [Cmd_remove_mode => $mode,] + [Errmode => $mode,] + [Input_record_separator => $chars,] + [Ors => $chars,] + [Output_record_separator => $chars,] + [Prompt => $match,] + [Rs => $chars,] + [Timeout => $secs,]); + + @output = $obj->cmd($string); + @output = $obj->cmd(String => $string, + [Output => $ref,] + [Cmd_remove_mode => $mode,] + [Errmode => $mode,] + [Input_record_separator => $chars,] + [Ors => $chars,] + [Output_record_separator => $chars,] + [Prompt => $match,] + [Rs => $chars,] + [Timeout => $secs,]); + +This method sends the command I<$string>, and reads the characters +sent back by the command up until and including the matching prompt. +It's assumed that the program to which you're sending is some kind of +command prompting interpreter such as a shell. + +The command I<$string> is automatically appended with the +output_record_separator, By default that's C<"\n">. This is similar +to someone typing a command and hitting the return key. Set the +output_record_separator to change this behavior. + +In a scalar context, the characters read from the remote side are +discarded and C<1> is returned on success. On time-out, eof, or other +failures, the error mode action is performed. See C. + +In a list context, just the output generated by the command is +returned, one line per element. In other words, all the characters in +between the echoed back command string and the prompt are returned. +If the command happens to return no output, a list containing one +element, the empty string is returned. This is so the list will +indicate true in a boolean context. On time-out, eof, or other +failures, the error mode action is performed. See C. + +The characters that matched the prompt may be retrieved using +C. + +Many command interpreters echo back the command sent. In most +situations, this method removes the first line returned from the +remote side (i.e. the echoed back command). See C +for more control over this feature. + +Use C to debug when this method keeps timing-out and you +don't think it should. + +Consider using a combination of C and C as an +alternative to this method when it doesn't do what you want, e.g. the +command you send prompts for input. + +The I named parameter provides an alternative method of +receiving command output. If you pass a scalar reference, all the +output (even if it contains multiple lines) is returned in the +referenced scalar. If you pass an array or hash reference, the lines +of output are returned in the referenced array or hash. You can use +C to change the notion of what separates a +line. + +Optional named parameters are provided to override the current +settings of cmd_remove_mode, errmode, input_record_separator, ors, +output_record_separator, prompt, rs, and timeout. Rs is synonymous +with input_record_separator and ors is synonymous with +output_record_separator. + +=back + + +=over 4 + +=item B - toggle removal of echoed commands + + $mode = $obj->cmd_remove_mode; + + $prev = $obj->cmd_remove_mode($mode); + +This method controls how to deal with echoed back commands in the +output returned by cmd(). Typically, when you send a command to the +remote side, the first line of output returned is the command echoed +back. Use this mode to remove the first line of output normally +returned by cmd(). + +If no argument is given, the current mode is returned. + +If I<$mode> is C<0> then the command output returned from cmd() has no +lines removed. If I<$mode> is a positive integer, then the first +I<$mode> lines of command output are stripped. + +By default, I<$mode> is set to C<"auto">. Auto means that whether or +not the first line of command output is stripped, depends on whether +or not the remote side offered to echo. By default, Net::Telnet +always accepts an offer to echo by the remote side. You can change +the default to reject such an offer using C. + +A warning is printed to STDERR when attempting to set this attribute +to something that's not C<"auto"> or a non-negative integer. + +=back + + +=over 4 + +=item B - log all I/O in dump format + + $fh = $obj->dump_log; + + $fh = $obj->dump_log($fh); + + $fh = $obj->dump_log($filename); + +This method starts or stops dump format logging of all the object's +input and output. The dump format shows the blocks read and written +in a hexadecimal and printable character format. This method is +useful when debugging, however you might want to first try +C as it's more readable. + +If no argument is given, the current log filehandle is returned. An +empty string indicates logging is off. + +To stop logging, use an empty string as an argument. + +If an open filehandle is given, it is used for logging and returned. +Otherwise, the argument is assumed to be the name of a file, the file +is opened and a filehandle to it is returned. If the file can't be +opened for writing, the error mode action is performed. + +=back + + +=over 4 + +=item B - end of file indicator + + $eof = $obj->eof; + +This method returns C<1> if end of file has been read, otherwise it +returns an empty string. Because the input is buffered this isn't the +same thing as I<$obj> has closed. In other words I<$obj> can be +closed but there still can be stuff in the buffer to be read. Under +this condition you can still read but you won't be able to write. + +=back + + +=over 4 + +=item B - define action to be performed on error + + $mode = $obj->errmode; + + $prev = $obj->errmode($mode); + +This method gets or sets the action used when errors are encountered +using the object. The first calling sequence returns the current +error mode. The second calling sequence sets it to I<$mode> and +returns the previous mode. Valid values for I<$mode> are C<"die"> +(the default), C<"return">, a I, or an I. + +When mode is C<"die"> and an error is encountered using the object, +then an error message is printed to standard error and the program +dies. + +When mode is C<"return"> then the method generating the error places +an error message in the object and returns an undefined value in a +scalar context and an empty list in list context. The error message +may be obtained using C. + +When mode is a I, then when an error is encountered +I is called with the error message as its first argument. +Using this mode you may have your own subroutine handle errors. If +I itself returns then the method generating the error returns +undefined or an empty list depending on context. + +When mode is an I, the first element of the array must be a +I. Any elements that follow are the arguments to I. +When an error is encountered, the I is called with its +arguments. Using this mode you may have your own subroutine handle +errors. If the I itself returns then the method generating +the error returns undefined or an empty list depending on context. + +A warning is printed to STDERR when attempting to set this attribute +to something that's not C<"die">, C<"return">, a I, or an +I whose first element isn't a I. + +=back + + +=over 4 + +=item B - most recent error message + + $msg = $obj->errmsg; + + $prev = $obj->errmsg(@msgs); + +The first calling sequence returns the error message associated with +the object. The empty string is returned if no error has been +encountered yet. The second calling sequence sets the error message +for the object to the concatenation of I<@msgs> and returns the +previous error message. Normally, error messages are set internally +by a method when an error is encountered. + +=back + + +=over 4 + +=item B - perform the error mode action + + $obj->error(@msgs); + +This method concatenates I<@msgs> into a string and places it in the +object as the error message. Also see C. It then performs +the error mode action. Also see C. + +If the error mode doesn't cause the program to die, then an undefined +value or an empty list is returned depending on the context. + +This method is primarily used by this class or a sub-class to perform +the user requested action when an error is encountered. + +=back + + +=over 4 + +=item B - use already open filehandle for I/O + + $ok = $obj->fhopen($fh); + +This method associates the open filehandle I<$fh> with I<$obj> for +further I/O. Filehandle I<$fh> must already be opened. + +Suppose you want to use the features of this module to do I/O to +something other than a TCP port, for example STDIN or a filehandle +opened to read from a process. Instead of opening the object for I/O +to a TCP port by using C or C, call this method +instead. + +The value C<1> is returned success, the error mode action is performed +on failure. + +=back + + +=over 4 + +=item B - read block of data + + $data = $obj->get([Binmode => $mode,] + [Errmode => $errmode,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This method reads a block of data from the object and returns it along +with any buffered data. If no buffered data is available to return, +it will wait for data to read using the timeout specified in the +object. You can override that timeout using I<$secs>. Also see +C. If buffered data is available to return, it also checks +for a block of data that can be immediately read. + +On eof an undefined value is returned. On time-out or other failures, +the error mode action is performed. To distinguish between eof or an +error occurring when the error mode is not set to C<"die">, use +C. + +Optional named parameters are provided to override the current +settings of binmode, errmode, telnetmode, and timeout. + +=back + + +=over 4 + +=item B - read next line + + $line = $obj->getline([Binmode => $mode,] + [Errmode => $errmode,] + [Input_record_separator => $chars,] + [Rs => $chars,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This method reads and returns the next line of data from the object. +You can use C to change the notion of what +separates a line. The default is C<"\n">. If a line isn't +immediately available, this method blocks waiting for a line or a +time-out. + +On eof an undefined value is returned. On time-out or other failures, +the error mode action is performed. To distinguish between eof or an +error occurring when the error mode is not set to C<"die">, use +C. + +Optional named parameters are provided to override the current +settings of binmode, errmode, input_record_separator, rs, telnetmode, +and timeout. Rs is synonymous with input_record_separator. + +=back + + +=over 4 + +=item B - read next lines + + @lines = $obj->getlines([Binmode => $mode,] + [Errmode => $errmode,] + [Input_record_separator => $chars,] + [Rs => $chars,] + [Telnetmode => $mode,] + [Timeout => $secs,] + [All => $boolean,]); + +This method reads and returns all the lines of data from the object +until end of file is read. You can use C to +change the notion of what separates a line. The default is C<"\n">. +A time-out error occurs if all the lines can't be read within the +time-out interval. See C. + +The behavior of this method was changed in version 3.03. Prior to +version 3.03 this method returned just the lines available from the +next read. To get that old behavior, use the optional named parameter +I and set I<$boolean> to C<""> or C<0>. + +If only eof is read then an empty list is returned. On time-out or +other failures, the error mode action is performed. Use C to +distinguish between reading only eof or an error occurring when the +error mode is not set to C<"die">. + +Optional named parameters are provided to override the current +settings of binmode, errmode, input_record_separator, rs, telnetmode, +and timeout. Rs is synonymous with input_record_separator. + +=back + + +=over 4 + +=item B - name of remote host + + $host = $obj->host; + + $prev = $obj->host($host); + +This method designates the remote host for C. With no +argument it returns the current host name set in the object. With an +argument it sets the current host name to I<$host> and returns the +previous host name. You may indicate the remote host using either a +hostname or an IP address. + +The default value is C<"localhost">. It may also be set by C +or C. + +=back + + +=over 4 + +=item B - log all input + + $fh = $obj->input_log; + + $fh = $obj->input_log($fh); + + $fh = $obj->input_log($filename); + +This method starts or stops logging of input. This is useful when +debugging. Also see C. Because most command interpreters +echo back commands received, it's likely all your output will also be +in this log. Note that input logging occurs after newline +translation. See C for details on newline translation. + +If no argument is given, the log filehandle is returned. An empty +string indicates logging is off. + +To stop logging, use an empty string as an argument. + +If an open filehandle is given, it is used for logging and returned. +Otherwise, the argument is assumed to be the name of a file, the file +is opened for logging and a filehandle to it is returned. If the file +can't be opened for writing, the error mode action is performed. + +=back + + +=over 4 + +=item B - input line delimiter + + $chars = $obj->input_record_separator; + + $prev = $obj->input_record_separator($chars); + +This method designates the line delimiter for input. It's used with +C, C, and C to determine lines in the +input. + +With no argument this method returns the current input record +separator set in the object. With an argument it sets the input +record separator to I<$chars> and returns the previous value. Note +that I<$chars> must have length. + +A warning is printed to STDERR when attempting to set this attribute +to a string with no length. + +=back + + +=over 4 + +=item B - last prompt read + + $string = $obj->last_prompt; + + $prev = $obj->last_prompt($string); + +With no argument this method returns the last prompt read by cmd() or +login(). See C. With an argument it sets the last prompt +read to I<$string> and returns the previous value. Normally, only +internal methods set the last prompt. + +=back + + +=over 4 + +=item B - last line read + + $line = $obj->lastline; + + $prev = $obj->lastline($line); + +This method retrieves the last line read from the object. This may be +a useful error message when the remote side abnormally closes the +connection. Typically the remote side will print an error message +before closing. + +With no argument this method returns the last line read from the +object. With an argument it sets the last line read to I<$line> and +returns the previous value. Normally, only internal methods set the +last line. + +=back + + +=over 4 + +=item B - perform standard login + + $ok = $obj->login($username, $password); + + $ok = $obj->login(Name => $username, + Password => $password, + [Errmode => $mode,] + [Prompt => $match,] + [Timeout => $secs,]); + +This method performs a standard login by waiting for a login prompt +and responding with I<$username>, then waiting for the password prompt +and responding with I<$password>, and then waiting for the command +interpreter prompt. If any of those prompts sent by the remote side +don't match what's expected, this method will time-out, unless timeout +is turned off. + +Login prompt must match either of these case insensitive patterns: + + /login[: ]*$/i + /username[: ]*$/i + +Password prompt must match this case insensitive pattern: + + /password[: ]*$/i + +The command interpreter prompt must match the current setting of +prompt. See C. + +Use C to debug when this method keeps timing-out and you +don't think it should. + +Consider using a combination of C and C as an +alternative to this method when it doesn't do what you want, e.g. the +remote host doesn't prompt for a username. + +On success, C<1> is returned. On time out, eof, or other failures, +the error mode action is performed. See C. + +Optional named parameters are provided to override the current +settings of errmode, prompt, and timeout. + +=back + + +=over 4 + +=item B - maximum size of input buffer + + $len = $obj->max_buffer_length; + + $prev = $obj->max_buffer_length($len); + +This method designates the maximum size of the input buffer. An error +is generated when a read causes the buffer to exceed this limit. The +default value is 1,048,576 bytes (1MB). The input buffer can grow +much larger than the block size when you continuously read using +C or C and the data stream contains no newlines +or matching waitfor patterns. + +With no argument, this method returns the current maximum buffer +length set in the object. With an argument it sets the maximum buffer +length to I<$len> and returns the previous value. Values of I<$len> +smaller than 512 will be adjusted to 512. + +A warning is printed to STDERR when attempting to set this attribute +to something that isn't a positive integer. + +=back + + +=over 4 + +=item B - field separator for print + + $chars = $obj->ofs + + $prev = $obj->ofs($chars); + +This method is synonymous with C. + +=back + + +=over 4 + +=item B - connect to port on remote host + + $ok = $obj->open($host); + + $ok = $obj->open([Host => $host,] + [Port => $port,] + [Errmode => $mode,] + [Timeout => $secs,]); + +This method opens a TCP connection to I<$port> on I<$host>. If either +argument is missing then the current value of C or C +is used. Optional named parameters are provided to override the +current setting of errmode and timeout. + +On success C<1> is returned. On time-out or other connection +failures, the error mode action is performed. See C. + +Time-outs don't work for this method on machines that don't implement +SIGALRM - most notably MS-Windows machines. For those machines, an +error is returned when the system reaches its own time-out while +trying to connect. + +A side effect of this method is to reset the alarm interval associated +with SIGALRM. + +=back + + +=over 4 + +=item B - indicate willingness to accept a TELNET option + + $fh = $obj->option_accept([Do => $telopt,] + [Dont => $telopt,] + [Will => $telopt,] + [Wont => $telopt,]); + +This method is used to indicate whether to accept or reject an offer +to enable a TELNET option made by the remote side. If you're using +I or I to indicate a willingness to enable, then a +notification callback must have already been defined by a prior call +to C. See C for details on +receiving enable/disable notification of a TELNET option. + +You can give multiple I, I, I, or I arguments +for different TELNET options in the same call to this method. + +The following example describes the meaning of the named parameters. +A TELNET option, such as C used below, is an integer +constant that you can import from Net::Telnet. See the source in file +Telnet.pm for the complete list. + +=over 4 + +=item + +I => C + +=over 4 + +=item + +we'll accept an offer to enable the echo option on the local side + +=back + +=item + +I => C + +=over 4 + +=item + +we'll reject an offer to enable the echo option on the local side + +=back + +=item + +I => C + +=over 4 + +=item + +we'll accept an offer to enable the echo option on the remote side + +=back + +=item + +I => C + +=over 4 + +=item + +we'll reject an offer to enable the echo option on the remote side + +=back + +=back + +=item + +Use C to send a request to the remote side to enable or +disable a particular TELNET option. + +=back + + +=over 4 + +=item B - define the option negotiation callback + + $coderef = $obj->option_callback; + + $prev = $obj->option_callback($coderef); + +This method defines the callback subroutine that's called when a +TELNET option is enabled or disabled. Once defined, the +I may not be undefined. However, calling this method +with a different I<$coderef> changes it. + +A warning is printed to STDERR when attempting to set this attribute +to something that isn't a coderef. + +Here are the circumstances that invoke I<$coderef>: + +=over 4 + +=item + +An option becomes enabled because the remote side requested an enable +and C had been used to arrange that it be accepted. + +=item + +The remote side arbitrarily decides to disable an option that is +currently enabled. Note that Net::Telnet always accepts a request to +disable from the remote side. + +=item + +C was used to send a request to enable or disable an +option and the response from the remote side has just been received. +Note, that if a request to enable is rejected then I<$coderef> is +still invoked even though the option didn't change. + +=back + +=item + +Here are the arguments passed to I<&$coderef>: + + &$coderef($obj, $option, $is_remote, + $is_enabled, $was_enabled, $buf_position); + +=over 4 + +=item + +1. I<$obj> is the Net::Telnet object + +=item + +2. I<$option> is the TELNET option. Net::Telnet exports constants +for the various TELNET options which just equate to an integer. + +=item + +3. I<$is_remote> is a boolean indicating for which side the option +applies. + +=item + +4. I<$is_enabled> is a boolean indicating the option is enabled or +disabled + +=item + +5. I<$was_enabled> is a boolean indicating the option was previously +enabled or disabled + +=item + +6. I<$buf_position> is an integer indicating the position in the +object's input buffer where the option takes effect. See C +to access the object's input buffer. + +=back + +=back + + +=over 4 + +=item B - log all TELNET options sent or received + + $fh = $obj->option_log; + + $fh = $obj->option_log($fh); + + $fh = $obj->option_log($filename); + +This method starts or stops logging of all TELNET options being sent +or received. This is useful for debugging when you send options via +C or you arrange to accept option requests from the +remote side via C. Also see C. + +If no argument is given, the log filehandle is returned. An empty +string indicates logging is off. + +To stop logging, use an empty string as an argument. + +If an open filehandle is given, it is used for logging and returned. +Otherwise, the argument is assumed to be the name of a file, the file +is opened for logging and a filehandle to it is returned. If the file +can't be opened for writing, the error mode action is performed. + +=back + + +=over 4 + +=item B - send TELNET option negotiation request + + $ok = $obj->option_send([Do => $telopt,] + [Dont => $telopt,] + [Will => $telopt,] + [Wont => $telopt,] + [Async => $boolean,]); + +This method is not yet implemented. Look for it in a future version. + +=back + + +=over 4 + +=item B - get current state of a TELNET option + + $hashref = $obj->option_state($telopt); + +This method returns a hashref containing a copy of the current state +of TELNET option I<$telopt>. + +Here are the values returned in the hash: + +=over 4 + +=item + +I<$hashref>->{remote_enabled} + +=over 4 + +=item + +boolean that indicates if the option is enabled on the remote side. + +=back + +=item + +I<$hashref>->{remote_enable_ok} + +=over 4 + +=item + +boolean that indicates if it's ok to accept an offer to enable this +option on the remote side. + +=back + +=item + +I<$hashref>->{remote_state} + +=over 4 + +=item + +string used to hold the internal state of option negotiation for this +option on the remote side. + +=back + +=item + +I<$hashref>->{local_enabled} + +=over 4 + +=item + +boolean that indicates if the option is enabled on the local side. + +=back + +=item + +I<$hashref>->{local_enable_ok} + +=over 4 + +=item + +boolean that indicates if it's ok to accept an offer to enable this +option on the local side. + +=back + +=item + +I<$hashref>->{local_state} + +=over 4 + +=item + +string used to hold the internal state of option negotiation for this +option on the local side. + +=back + +=back + +=back + + +=over 4 + +=item B - output line delimiter + + $chars = $obj->ors; + + $prev = $obj->ors($chars); + +This method is synonymous with C. + +=back + + +=over 4 + +=item B - field separator for print + + $chars = $obj->output_field_separator; + + $prev = $obj->output_field_separator($chars); + +This method designates the output field separator for C. +Ordinarily the print method simply prints out the comma separated +fields you specify. Set this to specify what's printed between +fields. + +With no argument this method returns the current output field +separator set in the object. With an argument it sets the output +field separator to I<$chars> and returns the previous value. + +By default it's set to an empty string. + +=back + + +=over 4 + +=item B - log all output + + $fh = $obj->output_log; + + $fh = $obj->output_log($fh); + + $fh = $obj->output_log($filename); + +This method starts or stops logging of output. This is useful when +debugging. Also see C. Because most command interpreters +echo back commands received, it's likely all your output would also be +in an input log. See C. Note that output logging occurs +before newline translation. See C for details on newline +translation. + +If no argument is given, the log filehandle is returned. An empty +string indicates logging is off. + +To stop logging, use an empty string as an argument. + +If an open filehandle is given, it is used for logging and returned. +Otherwise, the argument is assumed to be the name of a file, the file +is opened for logging and a filehandle to it is returned. If the file +can't be opened for writing, the error mode action is performed. + +=back + + +=over 4 + +=item B - output line delimiter + + $chars = $obj->output_record_separator; + + $prev = $obj->output_record_separator($chars); + +This method designates the output line delimiter for C and +C. Set this to specify what's printed at the end of C +and C. + +The output record separator is set to C<"\n"> by default, so there's +no need to append all your commands with a newline. To avoid printing +the output_record_separator use C or set the +output_record_separator to an empty string. + +With no argument this method returns the current output record +separator set in the object. With an argument it sets the output +record separator to I<$chars> and returns the previous value. + +=back + + +=over 4 + +=item B - remote port + + $port = $obj->port; + + $prev = $obj->port($port); + +This method designates the remote TCP port. With no argument this +method returns the current port number. With an argument it sets the +current port number to I<$port> and returns the previous port. If +I<$port> is a TCP service name, then it's first converted to a port +number using the perl function C. + +The default value is C<23>. It may also be set by C or +C. + +A warning is printed to STDERR when attempting to set this attribute +to something that's not a positive integer or a valid TCP service +name. + +=back + + +=over 4 + +=item B - write to object + + $ok = $obj->print(@list); + +This method writes I<@list> followed by the I +to the open object and returns C<1> if all data was successfully +written. On time-out or other failures, the error mode action is +performed. See C. + +By default, the C is set to C<"\n"> so all +your commands automatically end with a newline. In most cases your +output is being read by a command interpreter which won't accept a +command until newline is read. This is similar to someone typing a +command and hitting the return key. To avoid printing a trailing +C<"\n"> use C instead or set the output_record_separator to an +empty string. + +On failure, it's possible that some data was written. If you choose +to try and recover from a print timing-out, use C to +determine how much was written before the error occurred. + +You may also use the output field separator to print a string between +the list elements. See C. + +=back + + +=over 4 + +=item B - number of bytes written by print + + $num = $obj->print_length; + +This returns the number of bytes successfully written by the most +recent C or C. + +=back + + +=over 4 + +=item B - pattern to match a prompt + + $matchop = $obj->prompt; + + $prev = $obj->prompt($matchop); + +This method sets the pattern used to find a prompt in the input +stream. It must be a string representing a valid perl pattern match +operator. The methods C and C try to read until +matching the prompt. They will fail with a time-out error if the +pattern you've chosen doesn't match what the remote side sends. + +With no argument this method returns the prompt set in the object. +With an argument it sets the prompt to I<$matchop> and returns the +previous value. + +The default prompt is C<'/[\$%#E] $/'> + +Always use single quotes, instead of double quotes, to construct +I<$matchop> (e.g. C<'/bash\$ $/'>). If you're constructing a DOS like +file path, you'll need to use four backslashes to represent one +(e.g. C<'/c:\\\\users\\\\billE$/i'>). + +Of course don't forget about regexp metacharacters like C<.>, C<[>, or +C<$>. You'll only need a single backslash to quote them. The anchor +metacharacters C<^> and C<$> refer to positions in the input buffer. + +A warning is printed to STDERR when attempting to set this attribute +with a match operator missing its opening delimiter. + +=back + + +=over 4 + +=item B - write to object + + $ok = $obj->put($string); + + $ok = $obj->put(String => $string, + [Binmode => $mode,] + [Errmode => $errmode,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This method writes I<$string> to the opened object and returns C<1> if +all data was successfully written. This method is like C +except that it doesn't write the trailing output_record_separator +("\n" by default). On time-out or other failures, the error mode +action is performed. See C. + +On failure, it's possible that some data was written. If you choose +to try and recover from a put timing-out, use C to +determine how much was written before the error occurred. + +Optional named parameters are provided to override the current +settings of binmode, errmode, telnetmode, and timeout. + +=back + + +=over 4 + +=item B - input line delimiter + + $chars = $obj->rs; + + $prev = $obj->rs($chars); + +This method is synonymous with C. + +=back + + +=over 4 + +=item B - turn off/on telnet command interpretation + + $mode = $obj->telnetmode; + + $prev = $obj->telnetmode($mode); + +This method controls whether or not TELNET commands in the data stream +are recognized and handled. The TELNET protocol uses certain +character sequences sent in the data stream to control the session. +If the port you're connecting to isn't using the TELNET protocol, then +you should turn this mode off. The default is I. + +If no argument is given, the current mode is returned. + +If I<$mode> is C<0> then telnet mode is off. If I<$mode> is C<1> then +telnet mode is on. + +=back + + +=over 4 + +=item B - time-out indicator + + $boolean = $obj->timed_out; + + $prev = $obj->timed_out($boolean); + +This method indicates if a previous read, write, or open method +timed-out. Remember that timing-out is itself an error. To be able +to invoke C after a time-out error, you'd have to change +the default error mode to something other than C<"die">. See +C. + +With no argument this method returns C<1> if the previous method +timed-out. With an argument it sets the indicator. Normally, only +internal methods set this indicator. + +=back + + +=over 4 + +=item B - I/O time-out interval + + $secs = $obj->timeout; + + $prev = $obj->timeout($secs); + +This method sets the timeout interval that's used when performing I/O +or connecting to a port. When a method doesn't complete within the +timeout interval then it's an error and the error mode action is +performed. + +A timeout may be expressed as a relative or absolute value. If +I<$secs> is greater than or equal to the time the program started, as +determined by $^T, then it's an absolute time value for when time-out +occurs. The perl function C may be used to obtain an absolute +time value. For a relative time-out value less than $^T, time-out +happens I<$secs> from when the method begins. + +If I<$secs> is C<0> then time-out occurs if the data cannot be +immediately read or written. Use the undefined value to turn off +timing-out completely. + +With no argument this method returns the timeout set in the object. +With an argument it sets the timeout to I<$secs> and returns the +previous value. The default timeout value is C<10> seconds. + +A warning is printed to STDERR when attempting to set this attribute +to something that's not an C or a non-negative integer. + +=back + + +=over 4 + +=item B - wait for pattern in the input + + $ok = $obj->waitfor($matchop); + $ok = $obj->waitfor([Match => $matchop,] + [String => $string,] + [Binmode => $mode,] + [Errmode => $errmode,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + + ($prematch, $match) = $obj->waitfor($matchop); + ($prematch, $match) = $obj->waitfor([Match => $matchop,] + [String => $string,] + [Binmode => $mode,] + [Errmode => $errmode,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This method reads until a pattern match or string is found in the +input stream. All the characters before and including the match are +removed from the input stream. + +In a list context the characters before the match and the matched +characters are returned in I<$prematch> and I<$match>. In a scalar +context, the matched characters and all characters before it are +discarded and C<1> is returned on success. On time-out, eof, or other +failures, for both list and scalar context, the error mode action is +performed. See C. + +You can specify more than one pattern or string by simply providing +multiple I and/or I named parameters. A I<$matchop> +must be a string representing a valid Perl pattern match operator. +The I<$string> is just a substring to find in the input stream. + +Use C to debug when this method keeps timing-out and you +don't think it should. + +An optional named parameter is provided to override the current +setting of timeout. + +To avoid unexpected backslash interpretation, always use single quotes +instead of double quotes to construct a match operator argument for +C and C (e.g. C<'/bash\$ $/'>). If you're +constructing a DOS like file path, you'll need to use four backslashes +to represent one (e.g. C<'/c:\\\\users\\\\billE$/i'>). + +Of course don't forget about regexp metacharacters like C<.>, C<[>, or +C<$>. You'll only need a single backslash to quote them. The anchor +metacharacters C<^> and C<$> refer to positions in the input buffer. + +Optional named parameters are provided to override the current +settings of binmode, errmode, telnetmode, and timeout. + +=back + + +=head1 SEE ALSO + +=over 2 + +=item RFC 854 + +S + +S + +=item RFC 1143 + +S + +S + +=item TELNET Option Assignments + +S + +=back + + +=head1 EXAMPLES + +This example gets the current weather forecast for Brainerd, Minnesota. + + my ($forecast, $t); + + use Net::Telnet (); + $t = new Net::Telnet; + $t->open("rainmaker.wunderground.com"); + + ## Wait for first prompt and "hit return". + $t->waitfor('/continue:.*$/'); + $t->print(""); + + ## Wait for second prompt and respond with city code. + $t->waitfor('/city code.*$/'); + $t->print("BRD"); + + ## Read and print the first page of forecast. + ($forecast) = $t->waitfor('/[ \t]+press return to continue/i'); + print $forecast; + + exit; + + +This example checks a POP server to see if you have mail. + + my ($hostname, $line, $passwd, $pop, $username); + + $hostname = "your_destination_host_here"; + $username = "your_username_here"; + $passwd = "your_password_here"; + + use Net::Telnet (); + $pop = new Net::Telnet (Telnetmode => 0); + $pop->open(Host => $hostname, + Port => 110); + + + ## Read connection message. + $line = $pop->getline; + die $line unless $line =~ /^\+OK/; + + ## Send user name. + $pop->print("user $username"); + $line = $pop->getline; + die $line unless $line =~ /^\+OK/; + + ## Send password. + $pop->print("pass $passwd"); + $line = $pop->getline; + die $line unless $line =~ /^\+OK/; + + ## Request status of messages. + $pop->print("list"); + $line = $pop->getline; + print $line; + + exit; + + +Here's an example that uses the ssh program to connect to a remote +host. Because the ssh program reads and writes to its controlling +terminal, the IO::Pty module is used to create a new pseudo terminal +for use by ssh. A new Net::Telnet object is then created to read and +write to that pseudo terminal. To use the code below, substitute +"changeme" with the actual host, user, password, and command prompt. + + ## Main program. + { + my ($pty, $ssh, @lines); + my $host = "changeme"; + my $user = "changeme"; + my $password = "changeme"; + my $prompt = '/changeme:~> $/'; + + ## Start ssh program. + $pty = &spawn("ssh", "-l", $user, $host); # spawn() defined below + + ## Create a Net::Telnet object to perform I/O on ssh's tty. + use Net::Telnet; + $ssh = new Net::Telnet (-fhopen => $pty, + -prompt => $prompt, + -telnetmode => 0, + -cmd_remove_mode => 1, + -output_record_separator => "\r"); + + ## Login to remote host. + $ssh->waitfor(-match => '/password: ?$/i', + -errmode => "return") + or die "problem connecting to host: ", $ssh->lastline; + $ssh->print($password); + $ssh->waitfor(-match => $ssh->prompt, + -errmode => "return") + or die "login failed: ", $ssh->lastline; + + ## Send command, get and print its output. + @lines = $ssh->cmd("who"); + print @lines; + + exit; + } # end main program + + sub spawn { + my(@cmd) = @_; + my($pid, $pty, $tty, $tty_fd); + + ## Create a new pseudo terminal. + use IO::Pty (); + $pty = new IO::Pty + or die $!; + + ## Execute the program in another process. + unless ($pid = fork) { # child process + die "problem spawning program: $!\n" unless defined $pid; + + ## Disassociate process from existing controlling terminal. + use POSIX (); + POSIX::setsid + or die "setsid failed: $!"; + + ## Associate process with a new controlling terminal. + $tty = $pty->slave; + $tty_fd = $tty->fileno; + close $pty; + + ## Make stdio use the new controlling terminal. + open STDIN, "<&$tty_fd" or die $!; + open STDOUT, ">&$tty_fd" or die $!; + open STDERR, ">&STDOUT" or die $!; + close $tty; + + ## Execute requested program. + exec @cmd + or die "problem executing $cmd[0]\n"; + } # end child process + + $pty; + } # end sub spawn + + +Here's an example that changes a user's login password. Because the +passwd program always prompts for passwords on its controlling +terminal, the IO::Pty module is used to create a new pseudo terminal +for use by passwd. A new Net::Telnet object is then created to read +and write to that pseudo terminal. To use the code below, substitute +"changeme" with the actual old and new passwords. + + my ($pty, $passwd); + my $oldpw = "changeme"; + my $newpw = "changeme"; + + ## Start passwd program. + $pty = &spawn("passwd"); # spawn() defined above + + ## Create a Net::Telnet object to perform I/O on passwd's tty. + use Net::Telnet; + $passwd = new Net::Telnet (-fhopen => $pty, + -timeout => 2, + -output_record_separator => "\r", + -telnetmode => 0, + -cmd_remove_mode => 1); + $passwd->errmode("return"); + + ## Send existing password. + $passwd->waitfor('/password: ?$/i') + or die "no old password prompt: ", $passwd->lastline; + $passwd->print($oldpw); + + ## Send new password. + $passwd->waitfor('/new password: ?$/i') + or die "bad old password: ", $passwd->lastline; + $passwd->print($newpw); + + ## Send new password verification. + $passwd->waitfor('/new password: ?$/i') + or die "bad new password: ", $passwd->lastline; + $passwd->print($newpw); + + ## Display success or failure. + $passwd->waitfor('/changed/') + or die "bad new password: ", $passwd->lastline; + print $passwd->lastline; + + $passwd->close; + exit; + + +Here's an example you can use to down load a file of any type. The +file is read from the remote host's standard output using cat. To +prevent any output processing, the remote host's standard output is +put in raw mode using the Bourne shell. The Bourne shell is used +because some shells, notably tcsh, prevent changing tty modes. Upon +completion, FTP style statistics are printed to stderr. + + my ($block, $filename, $host, $hostname, $k_per_sec, $line, + $num_read, $passwd, $prevblock, $prompt, $size, $size_bsd, + $size_sysv, $start_time, $total_time, $username); + + $hostname = "your_destination_host_here"; + $username = "your_username_here"; + $passwd = "your_password_here"; + $filename = "your_download_file_here"; + + ## Connect and login. + use Net::Telnet (); + $host = new Net::Telnet (Timeout => 30, + Prompt => '/[%#>] $/'); + $host->open($hostname); + $host->login($username, $passwd); + + ## Make sure prompt won't match anything in send data. + $prompt = "_funkyPrompt_"; + $host->prompt("/$prompt\$/"); + $host->cmd("set prompt = '$prompt'"); + + ## Get size of file. + ($line) = $host->cmd("/bin/ls -l $filename"); + ($size_bsd, $size_sysv) = (split ' ', $line)[3,4]; + if ($size_sysv =~ /^\d+$/) { + $size = $size_sysv; + } + elsif ($size_bsd =~ /^\d+$/) { + $size = $size_bsd; + } + else { + die "$filename: no such file on $hostname"; + } + + ## Start sending the file. + binmode STDOUT; + $host->binmode(1); + $host->print("/bin/sh -c 'stty raw; cat $filename'"); + $host->getline; # discard echoed back line + + ## Read file a block at a time. + $num_read = 0; + $prevblock = ""; + $start_time = time; + while (($block = $host->get) and ($block !~ /$prompt$/o)) { + if (length $block >= length $prompt) { + print $prevblock; + $num_read += length $prevblock; + $prevblock = $block; + } + else { + $prevblock .= $block; + } + + } + $host->close; + + ## Print last block without trailing prompt. + $prevblock .= $block; + $prevblock =~ s/$prompt$//; + print $prevblock; + $num_read += length $prevblock; + die "error: expected size $size, received size $num_read\n" + unless $num_read == $size; + + ## Print totals. + $total_time = (time - $start_time) || 1; + $k_per_sec = ($size / 1024) / $total_time; + $k_per_sec = sprintf "%3.1f", $k_per_sec; + warn("$num_read bytes received in $total_time seconds ", + "($k_per_sec Kbytes/s)\n"); + + exit; + + +=head1 AUTHOR + +Jay Rogers + + +=head1 COPYRIGHT + +Copyright 1997, 2000, 2002 by Jay Rogers. All rights reserved. +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. diff --git a/agc_2-X/branches/agc_2.2.0/extras/OLD_vdc_tab_script.gif b/agc_2-X/branches/agc_2.2.0/extras/OLD_vdc_tab_script.gif new file mode 100644 index 00000000..69e43b79 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/OLD_vdc_tab_script.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/OLD_vdc_tab_vicidial.gif b/agc_2-X/branches/agc_2.2.0/extras/OLD_vdc_tab_vicidial.gif new file mode 100644 index 00000000..1e862589 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/OLD_vdc_tab_vicidial.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/OLD_vtc_tab_vicidial.gif b/agc_2-X/branches/agc_2.2.0/extras/OLD_vtc_tab_vicidial.gif new file mode 100644 index 00000000..8b9fd8c4 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/OLD_vtc_tab_vicidial.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/Telnet.pm b/agc_2-X/branches/agc_2.2.0/extras/Telnet.pm new file mode 100644 index 00000000..9f84fe31 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Telnet.pm @@ -0,0 +1,5252 @@ +package Net::Telnet; + +## Copyright 1997, 2000, 2002 Jay Rogers. All rights reserved. +## This program is free software; you can redistribute it and/or +## modify it under the same terms as Perl itself. + +## See user documentation at the end of this file. Search for =head + +use strict; +require 5.002; + +## Module export. +use vars qw(@EXPORT_OK); +@EXPORT_OK = qw(TELNET_IAC TELNET_DONT TELNET_DO TELNET_WONT TELNET_WILL + TELNET_SB TELNET_GA TELNET_EL TELNET_EC TELNET_AYT TELNET_AO + TELNET_IP TELNET_BREAK TELNET_DM TELNET_NOP TELNET_SE + TELNET_EOR TELNET_ABORT TELNET_SUSP TELNET_EOF TELNET_SYNCH + TELOPT_BINARY TELOPT_ECHO TELOPT_RCP TELOPT_SGA TELOPT_NAMS + TELOPT_STATUS TELOPT_TM TELOPT_RCTE TELOPT_NAOL TELOPT_NAOP + TELOPT_NAOCRD TELOPT_NAOHTS TELOPT_NAOHTD TELOPT_NAOFFD + TELOPT_NAOVTS TELOPT_NAOVTD TELOPT_NAOLFD TELOPT_XASCII + TELOPT_LOGOUT TELOPT_BM TELOPT_DET TELOPT_SUPDUP + TELOPT_SUPDUPOUTPUT TELOPT_SNDLOC TELOPT_TTYPE TELOPT_EOR + TELOPT_TUID TELOPT_OUTMRK TELOPT_TTYLOC TELOPT_3270REGIME + TELOPT_X3PAD TELOPT_NAWS TELOPT_TSPEED TELOPT_LFLOW + TELOPT_LINEMODE TELOPT_XDISPLOC TELOPT_OLD_ENVIRON + TELOPT_AUTHENTICATION TELOPT_ENCRYPT TELOPT_NEW_ENVIRON + TELOPT_EXOPL); + +## Module import. +use Exporter (); +use Socket qw(AF_INET SOCK_STREAM inet_aton sockaddr_in); +use Symbol qw(qualify); + +## Base classes. +use vars qw(@ISA); +@ISA = qw(Exporter); +if (&_io_socket_include) { # successfully required module IO::Socket + push @ISA, "IO::Socket::INET"; +} +else { # perl version < 5.004 + require FileHandle; + push @ISA, "FileHandle"; +} + +## Global variables. +use vars qw($VERSION @Telopts); +$VERSION = "3.03"; +@Telopts = ("BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", "STATUS", + "TIMING MARK", "RCTE", "NAOL", "NAOP", "NAOCRD", "NAOHTS", + "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD", "NAOLFD", "EXTEND ASCII", + "LOGOUT", "BYTE MACRO", "DATA ENTRY TERMINAL", "SUPDUP", + "SUPDUP OUTPUT", "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", + "TACACS UID", "OUTPUT MARKING", "TTYLOC", "3270 REGIME", "X.3 PAD", + "NAWS", "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC", "OLD-ENVIRON", + "AUTHENTICATION", "ENCRYPT", "NEW-ENVIRON"); + + +########################### Public Methods ########################### + + +sub new { + my ($class) = @_; + my ( + $errmode, + $fh_open, + $host, + $self, + %args, + ); + local $_; + + ## Create a new object with defaults. + $self = $class->SUPER::new; + *$self->{net_telnet} = { + bin_mode => 0, + blksize => &_optimal_blksize(), + buf => "", + cmd_prompt => '/[\$%#>] $/', + cmd_rm_mode => "auto", + dumplog => '', + eofile => 1, + errormode => "die", + errormsg => "", + fdmask => '', + host => "localhost", + inputlog => '', + last_line => "", + last_prompt => "", + maxbufsize => 1_048_576, + num_wrote => 0, + ofs => "", + opened => '', + opt_cback => '', + opt_log => '', + opts => {}, + ors => "\n", + outputlog => '', + pending_errormsg => "", + port => 23, + pushback_buf => "", + rs => "\n", + subopt_cback => '', + telnet_mode => 1, + time_out => 10, + timedout => '', + unsent_opts => "", + }; + + ## Indicate that we'll accept an offer from remote side for it to echo + ## and suppress go aheads. + &_opt_accept($self, + { option => &TELOPT_ECHO, + is_remote => 1, + is_enable => 1 }, + { option => &TELOPT_SGA, + is_remote => 1, + is_enable => 1 }, + ); + + ## Parse the args. + if (@_ == 2) { # one positional arg given + $host = $_[1]; + } + elsif (@_ > 2) { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse all other named args. + foreach (keys %args) { + if (/^-?binmode$/i) { + $self->binmode($args{$_}); + } + elsif (/^-?cmd_remove_mode$/i) { + $self->cmd_remove_mode($args{$_}); + } + elsif (/^-?dump_log$/i) { + $self->dump_log($args{$_}); + } + elsif (/^-?errmode$/i) { + $errmode = $args{$_}; + } + elsif (/^-?fhopen$/i) { + $fh_open = $args{$_}; + } + elsif (/^-?host$/i) { + $host = $args{$_}; + } + elsif (/^-?input_log$/i) { + $self->input_log($args{$_}); + } + elsif (/^-?input_record_separator$/i or /^-?rs$/i) { + $self->input_record_separator($args{$_}); + } + elsif (/^-?option_log$/i) { + $self->option_log($args{$_}); + } + elsif (/^-?output_log$/i) { + $self->output_log($args{$_}); + } + elsif (/^-?output_record_separator$/i or /^-?ors$/i) { + $self->output_record_separator($args{$_}); + } + elsif (/^-?port$/i) { + $self->port($args{$_}); + } + elsif (/^-?prompt$/i) { + $self->prompt($args{$_}); + } + elsif (/^-?telnetmode$/i) { + $self->telnetmode($args{$_}); + } + elsif (/^-?timeout$/i) { + $self->timeout($args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::new()"); + } + } + } + + if (defined $errmode) { # user wants to set errmode + $self->errmode($errmode); + } + + if (defined $fh_open) { # user wants us to attach to existing filehandle + $self->fhopen($fh_open) + or return; + } + elsif (defined $host) { # user wants us to open a connection to host + $self->host($host); + $self->open + or return; + } + + $self; +} # end sub new + + +sub DESTROY { +} # end sub DESTROY + + +sub binmode { + my ($self, $mode) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{bin_mode}; + + if (@_ >= 2) { + unless (defined $mode) { + $mode = 0; + } + + $s->{bin_mode} = $mode; + } + + $prev; +} # end sub binmode + + +sub break { + my ($self) = @_; + my $s = *$self->{net_telnet}; + my $break_cmd = "\xff\xf3"; + + $s->{timedout} = ''; + + &_put($self, \$break_cmd, "break"); +} # end sub break + + +sub buffer { + my ($self) = @_; + my $s = *$self->{net_telnet}; + + \$s->{buf}; +} # end sub buffer + + +sub buffer_empty { + my ($self) = @_; + my ( + $buffer, + ); + + $buffer = $self->buffer; + $$buffer = ""; +} # end sub buffer_empty + + +sub close { + my ($self) = @_; + my $s = *$self->{net_telnet}; + + $s->{eofile} = 1; + $s->{opened} = ''; + close $self + if defined fileno($self); + + 1; +} # end sub close + + +sub cmd { + my ($self, @args) = @_; + my ( + $cmd_remove_mode, + $errmode, + $firstpos, + $last_prompt, + $lastpos, + $lines, + $ors, + $output, + $output_ref, + $prompt, + $remove_echo, + $rs, + $rs_len, + $s, + $telopt_echo, + $timeout, + %args, + ); + my $cmd = ""; + local $_; + + ## Init. + $self->timed_out(''); + $self->last_prompt(""); + $s = *$self->{net_telnet}; + $output = []; + $cmd_remove_mode = $self->cmd_remove_mode; + $errmode = $self->errmode; + $ors = $self->output_record_separator; + $prompt = $self->prompt; + $rs = $self->input_record_separator; + $timeout = $self->timeout; + + ## Parse args. + if (@_ == 2) { # one positional arg given + $cmd = $_[1]; + } + elsif (@_ > 2) { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?cmd_remove/i) { + $cmd_remove_mode = &_parse_cmd_remove_mode($self, $args{$_}); + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?input_record_separator$/i or /^-?rs$/i) { + $rs = &_parse_input_record_separator($self, $args{$_}); + } + elsif (/^-?output$/i) { + $output_ref = $args{$_}; + if (defined($output_ref) and ref($output_ref) eq "ARRAY") { + $output = $output_ref; + } + } + elsif (/^-?output_record_separator$/i or /^-?ors$/i) { + $ors = $self->output_record_separator($args{$_}); + } + elsif (/^-?prompt$/i) { + $prompt = &_parse_prompt($self, $args{$_}); + } + elsif (/^-?string$/i) { + $cmd = $args{$_}; + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::cmd()"); + } + } + } + + ## Override some user settings. + local $s->{errormode} = "return"; + local $s->{time_out} = &_endtime($timeout); + $self->errmsg(""); + + ## Send command and wait for the prompt. + $self->put($cmd . $ors) + and ($lines, $last_prompt) = $self->waitfor($prompt); + + ## Check for failure. + $s->{errormode} = $errmode; + return $self->error("command timed-out") if $self->timed_out; + return $self->error($self->errmsg) if $self->errmsg ne ""; + + ## Save the most recently matched prompt. + $self->last_prompt($last_prompt); + + ## Split lines into an array, keeping record separator at end of line. + $firstpos = 0; + $rs_len = length $rs; + while (($lastpos = index($lines, $rs, $firstpos)) > -1) { + push(@$output, + substr($lines, $firstpos, $lastpos - $firstpos + $rs_len)); + $firstpos = $lastpos + $rs_len; + } + + if ($firstpos < length $lines) { + push @$output, substr($lines, $firstpos); + } + + ## Determine if we should remove the first line of output based + ## on the assumption that it's an echoed back command. + if ($cmd_remove_mode eq "auto") { + ## See if remote side told us they'd echo. + $telopt_echo = $self->option_state(&TELOPT_ECHO); + $remove_echo = $telopt_echo->{remote_enabled}; + } + else { # user explicitly told us how many lines to remove. + $remove_echo = $cmd_remove_mode; + } + + ## Get rid of possible echo back command. + while ($remove_echo--) { + shift @$output; + } + + ## Ensure at least a null string when there's no command output - so + ## "true" is returned in a list context. + unless (@$output) { + @$output = (""); + } + + ## Return command output via named arg, if requested. + if (defined $output_ref) { + if (ref($output_ref) eq "SCALAR") { + $$output_ref = join "", @$output; + } + elsif (ref($output_ref) eq "HASH") { + %$output_ref = @$output; + } + } + + wantarray ? @$output : 1; +} # end sub cmd + + +sub cmd_remove_mode { + my ($self, $mode) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{cmd_rm_mode}; + + if (@_ >= 2) { + $s->{cmd_rm_mode} = &_parse_cmd_remove_mode($self, $mode); + } + + $prev; +} # end sub cmd_remove_mode + + +sub dump_log { + my ($self, $name) = @_; + my ( + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $fh = $s->{dumplog}; + + if (@_ >= 2) { + unless (defined $name) { + $name = ""; + } + + $fh = &_fname_to_handle($self, $name) + or return; + $s->{dumplog} = $fh; + } + + $fh; +} # end sub dump_log + + +sub eof { + my ($self) = @_; + + *$self->{net_telnet}{eofile}; +} # end sub eof + + +sub errmode { + my ($self, $mode) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{errormode}; + + if (@_ >= 2) { + $s->{errormode} = &_parse_errmode($self, $mode); + } + + $prev; +} # end sub errmode + + +sub errmsg { + my ($self, @errmsgs) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{errormsg}; + + if (@_ >= 2) { + $s->{errormsg} = join "", @errmsgs; + } + + $prev; +} # end sub errmsg + + +sub error { + my ($self, @errmsg) = @_; + my ( + $errmsg, + $func, + $mode, + $s, + @args, + ); + local $_; + + $s = *$self->{net_telnet}; + + if (@_ >= 2) { + ## Put error message in the object. + $errmsg = join "", @errmsg; + $s->{errormsg} = $errmsg; + + ## Do the error action as described by error mode. + $mode = $s->{errormode}; + if (ref($mode) eq "CODE") { + &$mode($errmsg); + return; + } + elsif (ref($mode) eq "ARRAY") { + ($func, @args) = @$mode; + &$func(@args); + return; + } + elsif ($mode =~ /^return$/i) { + return; + } + else { # die + if ($errmsg =~ /\n$/) { + die $errmsg; + } + else { + ## Die and append caller's line number to message. + &_croak($self, $errmsg); + } + } + } + else { + return $s->{errormsg} ne ""; + } +} # end sub error + + +sub fhopen { + my ($self, $fh) = @_; + my ( + $globref, + $s, + ); + + ## Convert given filehandle to a typeglob reference, if necessary. + $globref = &_qualify_fh($self, $fh); + + ## Ensure filehandle is already open. + return $self->error("fhopen filehandle isn't already open") + unless defined($globref) and defined(fileno $globref); + + ## Ensure we're closed. + $self->close; + + ## Save our private data. + $s = *$self->{net_telnet}; + + ## Switch ourself with the given filehandle. + *$self = *$globref; + + ## Restore our private data. + *$self->{net_telnet} = $s; + + ## Re-initialize ourself. + select((select($self), $|=1)[$[]); # don't buffer writes + $s = *$self->{net_telnet}; + $s->{blksize} = &_optimal_blksize((stat $self)[11]); + $s->{buf} = ""; + $s->{eofile} = ''; + $s->{errormsg} = ""; + vec($s->{fdmask}='', fileno($self), 1) = 1; + $s->{host} = ""; + $s->{last_line} = ""; + $s->{last_prompt} = ""; + $s->{num_wrote} = 0; + $s->{opened} = 1; + $s->{pending_errormsg} = ""; + $s->{port} = ''; + $s->{pushback_buf} = ""; + $s->{timedout} = ''; + $s->{unsent_opts} = ""; + &_reset_options($s->{opts}); + + 1; +} # end sub fhopen + + +sub get { + my ($self, %args) = @_; + my ( + $binmode, + $endtime, + $errmode, + $line, + $s, + $telnetmode, + $timeout, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $timeout = $s->{time_out}; + $s->{timedout} = ''; + return if $s->{eofile}; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?binmode$/i) { + $binmode = $args{$_}; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $args{$_}; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::get()"); + } + } + + ## If any args given, override corresponding instance data. + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + + ## Set wall time when we time out. + $endtime = &_endtime($timeout); + + ## Try to send any waiting option negotiation. + if (length $s->{unsent_opts}) { + &_flush_opts($self); + } + + ## Try to read just the waiting data using return error mode. + { + local $s->{errormode} = "return"; + $s->{errormsg} = ""; + &_fillbuf($self, $s, 0); + } + + ## We're done if we timed-out and timeout value is set to "poll". + return $self->error($s->{errormsg}) + if ($s->{timedout} and defined($timeout) and $timeout == 0 + and !length $s->{buf}); + + ## We're done if we hit an error other than timing out. + if ($s->{errormsg} and !$s->{timedout}) { + if (!length $s->{buf}) { + return $self->error($s->{errormsg}); + } + else { # error encountered but there's some data in buffer + $s->{pending_errormsg} = $s->{errormsg}; + } + } + + ## Clear time-out error from first read. + $s->{timedout} = ''; + $s->{errormsg} = ""; + + ## If buffer is still empty, try to read according to user's timeout. + if (!length $s->{buf}) { + &_fillbuf($self, $s, $endtime) + or do { + return if $s->{timedout}; + + ## We've reached end-of-file. + $self->close; + return; + }; + } + + ## Extract chars from buffer. + $line = $s->{buf}; + $s->{buf} = ""; + + $line; +} # end sub get + + +sub getline { + my ($self, %args) = @_; + my ( + $binmode, + $endtime, + $errmode, + $len, + $line, + $offset, + $pos, + $rs, + $s, + $telnetmode, + $timeout, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + return if $s->{eofile}; + $rs = $s->{rs}; + $timeout = $s->{time_out}; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?binmode$/i) { + $binmode = $args{$_}; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?input_record_separator$/i or /^-?rs$/i) { + $rs = &_parse_input_record_separator($self, $args{$_}); + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $args{$_}; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::getline()"); + } + } + + ## If any args given, override corresponding instance data. + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + + ## Set wall time when we time out. + $endtime = &_endtime($timeout); + + ## Try to send any waiting option negotiation. + if (length $s->{unsent_opts}) { + &_flush_opts($self); + } + + ## Keep reading into buffer until end-of-line is read. + $offset = 0; + while (($pos = index($s->{buf}, $rs, $offset)) == -1) { + $offset = length $s->{buf}; + &_fillbuf($self, $s, $endtime) + or do { + return if $s->{timedout}; + + ## We've reached end-of-file. + $self->close; + if (length $s->{buf}) { + return $s->{buf}; + } + else { + return; + } + }; + } + + ## Extract line from buffer. + $len = $pos + length $rs; + $line = substr($s->{buf}, 0, $len); + substr($s->{buf}, 0, $len) = ""; + + $line; +} # end sub getline + + +sub getlines { + my ($self, %args) = @_; + my ( + $binmode, + $errmode, + $line, + $rs, + $s, + $telnetmode, + $timeout, + ); + my $all = 1; + my @lines = (); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + return if $s->{eofile}; + $timeout = $s->{time_out}; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?all$/i) { + $all = $args{$_}; + unless (defined $all) { + $all = ''; + } + } + elsif (/^-?binmode$/i) { + $binmode = $args{$_}; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?input_record_separator$/i or /^-?rs$/i) { + $rs = &_parse_input_record_separator($self, $args{$_}); + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $args{$_}; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::getlines()"); + } + } + + ## If any args given, override corresponding instance data. + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{rs} = $rs + if defined $rs; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + local $s->{time_out} = &_endtime($timeout); + + ## User requested only the currently available lines. + if (! $all) { + return &_next_getlines($self, $s); + } + + ## Read lines until eof or error. + while (1) { + $line = $self->getline + or last; + push @lines, $line; + } + + ## Check for error. + return if ! $self->eof; + + @lines; +} # end sub getlines + + +sub host { + my ($self, $host) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{host}; + + if (@_ >= 2) { + unless (defined $host) { + $host = ""; + } + + $s->{host} = $host; + } + + $prev; +} # end sub host + + +sub input_log { + my ($self, $name) = @_; + my ( + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $fh = $s->{inputlog}; + + if (@_ >= 2) { + unless (defined $name) { + $name = ""; + } + + $fh = &_fname_to_handle($self, $name) + or return; + $s->{inputlog} = $fh; + } + + $fh; +} # end sub input_log + + +sub input_record_separator { + my ($self, $rs) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{rs}; + + if (@_ >= 2) { + $s->{rs} = &_parse_input_record_separator($self, $rs); + } + + $prev; +} # end sub input_record_separator + + +sub last_prompt { + my ($self, $string) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{last_prompt}; + + if (@_ >= 2) { + unless (defined $string) { + $string = ""; + } + + $s->{last_prompt} = $string; + } + + $prev; +} # end sub last_prompt + + +sub lastline { + my ($self, $line) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{last_line}; + + if (@_ >= 2) { + unless (defined $line) { + $line = ""; + } + + $s->{last_line} = $line; + } + + $prev; +} # end sub lastline + + +sub login { + my ($self) = @_; + my ( + $errmode, + $error, + $is_passwd_arg, + $is_username_arg, + $lastline, + $match, + $ors, + $passwd, + $prematch, + $prompt, + $s, + $timeout, + $username, + %args, + ); + local $_; + + ## Init. + $self->timed_out(''); + $self->last_prompt(""); + $s = *$self->{net_telnet}; + $timeout = $self->timeout; + $ors = $self->output_record_separator; + $prompt = $self->prompt; + + ## Parse args. + if (@_ == 3) { # just username and passwd given + $username = $_[1]; + $passwd = $_[2]; + + $is_username_arg = 1; + $is_passwd_arg = 1; + } + else { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?name$/i) { + $username = $args{$_}; + unless (defined $username) { + $username = ""; + } + + $is_username_arg = 1; + } + elsif (/^-?pass/i) { + $passwd = $args{$_}; + unless (defined $passwd) { + $passwd = ""; + } + + $is_passwd_arg = 1; + } + elsif (/^-?prompt$/i) { + $prompt = &_parse_prompt($self, $args{$_}); + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given ", + "to " . ref($self) . "::login()"); + } + } + } + + ## Ensure both username and password argument given. + &_croak($self,"Name argument not given to " . ref($self) . "::login()") + unless $is_username_arg; + &_croak($self,"Password argument not given to " . ref($self) . "::login()") + unless $is_passwd_arg; + + ## Override some user settings. + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{time_out} = &_endtime($timeout); + + ## Create a subroutine to generate an error. + $error + = sub { + my ($errmsg) = @_; + + if ($self->timed_out) { + return $self->error($errmsg); + } + elsif ($self->eof) { + ($lastline = $self->lastline) =~ s/\n+//; + return $self->error($errmsg, ": ", $lastline); + } + else { + return $self->error($self->errmsg); + } + }; + + + return $self->error("login failed: filehandle isn't open") + if $self->eof; + + ## Wait for login prompt. + $self->waitfor(Match => '/login[: ]*$/i', + Match => '/username[: ]*$/i', + Errmode => "return") + or do { + return &$error("eof read waiting for login prompt") + if $self->eof; + return &$error("timed-out waiting for login prompt"); + }; + + ## Delay sending response because of bug in Linux login program. + &_sleep(0.01); + + ## Send login name. + $self->put(String => $username . $ors, + Errmode => "return") + or return &$error("login disconnected"); + + ## Wait for password prompt. + $self->waitfor(Match => '/password[: ]*$/i', + Errmode => "return") + or do { + return &$error("eof read waiting for password prompt") + if $self->eof; + return &$error("timed-out waiting for password prompt"); + }; + + ## Delay sending response because of bug in Linux login program. + &_sleep(0.01); + + ## Send password. + $self->put(String => $passwd . $ors, + Errmode => "return") + or return &$error("login disconnected"); + + ## Wait for command prompt or another login prompt. + ($prematch, $match) = $self->waitfor(Match => '/login[: ]*$/i', + Match => '/username[: ]*$/i', + Match => $prompt, + Errmode => "return") + or do { + return &$error("eof read waiting for command prompt") + if $self->eof; + return &$error("timed-out waiting for command prompt"); + }; + + ## It's a bad login if we got another login prompt. + return $self->error("login failed: bad name or password") + if $match =~ /login[: ]*$/i or $match =~ /username[: ]*$/i; + + ## Save the most recently matched command prompt. + $self->last_prompt($match); + + 1; +} # end sub login + + +sub max_buffer_length { + my ($self, $maxbufsize) = @_; + my ( + $prev, + $s, + ); + my $minbufsize = 512; + + $s = *$self->{net_telnet}; + $prev = $s->{maxbufsize}; + + if (@_ >= 2) { + ## Ensure a positive integer value. + unless (defined $maxbufsize + and $maxbufsize =~ /^\d+$/ + and $maxbufsize) + { + &_carp($self, "ignoring bad Max_buffer_length " . + "argument \"$maxbufsize\": it's not a positive integer"); + $maxbufsize = $prev; + } + + ## Adjust up values that are too small. + if ($maxbufsize < $minbufsize) { + $maxbufsize = $minbufsize; + } + + $s->{maxbufsize} = $maxbufsize; + } + + $prev; +} # end sub max_buffer_length + + +## Make ofs() synonymous with output_field_separator(). +*ofs = \&output_field_separator; + + +sub open { + my ($self) = @_; + my ( + $errmode, + $errno, + $host, + $ip_addr, + $port, + $s, + $timeout, + %args, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $timeout = $s->{time_out}; + $s->{timedout} = ''; + + if (@_ == 2) { # one positional arg given + $self->host($_[1]); + } + elsif (@_ > 2) { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?host$/i) { + $self->host($args{$_}); + } + elsif (/^-?port$/i) { + $self->port($args{$_}) + or return; + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + } + else { + &_croak($self, "bad named parameter \"$_\" given ", + "to " . ref($self) . "::open()"); + } + } + } + + ## If any args given, override corresponding instance data. + local $s->{errormode} = $errmode + if defined $errmode; + + ## Get host and port. + $host = $self->host; + $port = $self->port; + + ## Ensure we're already closed. + $self->close; + + ## Connect with or without a timeout. + if (defined($timeout) and &_have_alarm) { # use a timeout + ## Convert possible absolute timeout to relative timeout. + if ($timeout >= $^T) { # it's an absolute time + $timeout = $timeout - time; + } + + ## Ensure a valid timeout value for alarm. + if ($timeout < 1) { + $timeout = 1; + } + $timeout = int($timeout + 1.5); + + ## Connect to server, timing out if it takes too long. + eval { + ## Turn on timer. + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{ALRM} = sub { die "timed-out\n" }; + alarm $timeout; + + ## Lookup server's IP address. + $ip_addr = inet_aton $host + or die "unknown remote host: $host\n"; + + ## Create a socket and attach the filehandle to it. + socket $self, AF_INET, SOCK_STREAM, 0 + or die "problem creating socket: $!\n"; + + ## Open connection to server. + connect $self, sockaddr_in($port, $ip_addr) + or die "problem connecting to \"$host\", port $port: $!\n"; + }; + alarm 0; + + ## Check for error. + if ($@ =~ /^timed-out$/) { # time out failure + $s->{timedout} = 1; + $self->close; + if (!$ip_addr) { + return $self->error("unknown remote host: $host: ", + "name lookup timed-out"); + } + else { + return $self->error("problem connecting to \"$host\", ", + "port $port: connect timed-out"); + } + } + elsif ($@) { # hostname lookup or connect failure + $self->close; + chomp $@; + return $self->error($@); + } + } + else { # don't use a timeout + $timeout = undef; + + ## Lookup server's IP address. + $ip_addr = inet_aton $host + or return $self->error("unknown remote host: $host"); + + ## Create a socket and attach the filehandle to it. + socket $self, AF_INET, SOCK_STREAM, 0 + or return $self->error("problem creating socket: $!"); + + ## Open connection to server. + connect $self, sockaddr_in($port, $ip_addr) + or do { + $errno = "$!"; + $self->close; + return $self->error("problem connecting to \"$host\", ", + "port $port: $errno"); + }; + } + + select((select($self), $|=1)[$[]); # don't buffer writes + $s->{blksize} = &_optimal_blksize((stat $self)[11]); + $s->{buf} = ""; + $s->{eofile} = ''; + $s->{errormsg} = ""; + vec($s->{fdmask}='', fileno($self), 1) = 1; + $s->{last_line} = ""; + $s->{num_wrote} = 0; + $s->{opened} = 1; + $s->{pending_errormsg} = ""; + $s->{pushback_buf} = ""; + $s->{timedout} = ''; + $s->{unsent_opts} = ""; + &_reset_options($s->{opts}); + + 1; +} # end sub open + + +sub option_accept { + my ($self, @args) = @_; + my ( + $arg, + $option, + $s, + @opt_args, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + + ## Parse the named args. + while (($_, $arg) = splice @args, 0, 2) { + ## Verify and save arguments. + if (/^-?do$/i) { + ## Make sure a callback is defined. + return $self->error("usage: an option callback must already ", + "be defined when enabling with $_") + unless $s->{opt_cback}; + + $option = &_verify_telopt_arg($self, $arg, $_); + return unless defined $option; + push @opt_args, { option => $option, + is_remote => '', + is_enable => 1, + }; + } + elsif (/^-?dont$/i) { + $option = &_verify_telopt_arg($self, $arg, $_); + return unless defined $option; + push @opt_args, { option => $option, + is_remote => '', + is_enable => '', + }; + } + elsif (/^-?will$/i) { + ## Make sure a callback is defined. + return $self->error("usage: an option callback must already ", + "be defined when enabling with $_") + unless $s->{opt_cback}; + + $option = &_verify_telopt_arg($self, $arg, $_); + return unless defined $option; + push @opt_args, { option => $option, + is_remote => 1, + is_enable => 1, + }; + } + elsif (/^-?wont$/i) { + $option = &_verify_telopt_arg($self, $arg, $_); + return unless defined $option; + push @opt_args, { option => $option, + is_remote => 1, + is_enable => '', + }; + } + else { + return $self->error('usage: $obj->option_accept(' . + '[Do => $telopt,] ', + '[Dont => $telopt,] ', + '[Will => $telopt,] ', + '[Wont => $telopt,]'); + } + } + + ## Set "receive ok" for options specified. + &_opt_accept($self, @opt_args); +} # end sub option_accept + + +sub option_callback { + my ($self, $callback) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{opt_cback}; + + if (@_ >= 2) { + unless (defined $callback and ref($callback) eq "CODE") { + &_carp($self, "ignoring Option_callback argument because it's " . + "not a code ref"); + $callback = $prev; + } + + $s->{opt_cback} = $callback; + } + + $prev; +} # end sub option_callback + + +sub option_log { + my ($self, $name) = @_; + my ( + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $fh = $s->{opt_log}; + + if (@_ >= 2) { + unless (defined $name) { + $name = ""; + } + + $fh = &_fname_to_handle($self, $name) + or return; + $s->{opt_log} = $fh; + } + + $fh; +} # end sub option_log + + +sub option_state { + my ($self, $option) = @_; + my ( + $opt_state, + $s, + %opt_state, + ); + + ## Ensure telnet option is non-negative integer. + $option = &_verify_telopt_arg($self, $option); + return unless defined $option; + + ## Init. + $s = *$self->{net_telnet}; + unless (defined $s->{opts}{$option}) { + &_set_default_option($s, $option); + } + + ## Return hashref to a copy of the values. + $opt_state = $s->{opts}{$option}; + %opt_state = %$opt_state; + \%opt_state; +} # end sub option_state + + +## Make ors() synonymous with output_record_separator(). +*ors = \&output_record_separator; + + +sub output_field_separator { + my ($self, $ofs) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{ofs}; + + if (@_ >= 2) { + unless (defined $ofs) { + $ofs = ""; + } + + $s->{ofs} = $ofs; + } + + $prev; +} # end sub output_field_separator + + +sub output_log { + my ($self, $name) = @_; + my ( + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $fh = $s->{outputlog}; + + if (@_ >= 2) { + unless (defined $name) { + $name = ""; + } + + $fh = &_fname_to_handle($self, $name) + or return; + $s->{outputlog} = $fh; + } + + $fh; +} # end sub output_log + + +sub output_record_separator { + my ($self, $ors) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{ors}; + + if (@_ >= 2) { + unless (defined $ors) { + $ors = ""; + } + + $s->{ors} = $ors; + } + + $prev; +} # end sub output_record_separator + + +sub port { + my ($self, $port) = @_; + my ( + $prev, + $s, + $service, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{port}; + + if (@_ >= 2) { + unless (defined $port) { + $port = ""; + } + + if (!$port) { + &_carp($self, "ignoring bad Port argument \"$port\""); + $port = $prev; + } + elsif ($port !~ /^\d+$/) { # port isn't all digits + $service = $port; + $port = getservbyname($service, "tcp"); + unless ($port) { + &_carp($self, "ignoring bad Port argument \"$service\": " . + "it's an unknown TCP service"); + $port = $prev; + } + } + + $s->{port} = $port; + } + + $prev; +} # end sub port + + +sub print { + my ($self) = shift; + my ( + $buf, + $fh, + $s, + ); + + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + return $self->error("write error: filehandle isn't open") + unless $s->{opened}; + + ## Add field and record separators. + $buf = join($s->{ofs}, @_) . $s->{ors}; + + ## Log the output if requested. + if ($s->{outputlog}) { + &_log_print($s->{outputlog}, $buf); + } + + ## Convert native newlines to CR LF. + if (!$s->{bin_mode}) { + $buf =~ s(\n)(\015\012)g; + } + + ## Escape TELNET IAC and also CR not followed by LF. + if ($s->{telnet_mode}) { + $buf =~ s(\377)(\377\377)g; + &_escape_cr(\$buf); + } + + &_put($self, \$buf, "print"); +} # end sub print + + +sub print_length { + my ($self) = @_; + + *$self->{net_telnet}{num_wrote}; +} # end sub print_length + + +sub prompt { + my ($self, $prompt) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{cmd_prompt}; + + ## Parse args. + if (@_ == 2) { + $s->{cmd_prompt} = &_parse_prompt($self, $prompt); + } + + $prev; +} # end sub prompt + + +sub put { + my ($self) = @_; + my ( + $binmode, + $buf, + $errmode, + $is_timeout_arg, + $s, + $telnetmode, + $timeout, + %args, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + + ## Parse args. + if (@_ == 2) { # one positional arg given + $buf = $_[1]; + } + elsif (@_ > 2) { # named args given + ## Get the named args. + (undef, %args) = @_; + + ## Parse the named args. + foreach (keys %args) { + if (/^-?binmode$/i) { + $binmode = $args{$_}; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $args{$_}); + } + elsif (/^-?string$/i) { + $buf = $args{$_}; + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $args{$_}; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $args{$_}); + $is_timeout_arg = 1; + } + else { + &_croak($self, "bad named parameter \"$_\" given ", + "to " . ref($self) . "::put()"); + } + } + } + + ## If any args given, override corresponding instance data. + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + local $s->{time_out} = $timeout + if defined $is_timeout_arg; + + ## Check for errors. + return $self->error("write error: filehandle isn't open") + unless $s->{opened}; + + ## Log the output if requested. + if ($s->{outputlog}) { + &_log_print($s->{outputlog}, $buf); + } + + ## Convert native newlines to CR LF. + if (!$s->{bin_mode}) { + $buf =~ s(\n)(\015\012)g; + } + + ## Escape TELNET IAC and also CR not followed by LF. + if ($s->{telnet_mode}) { + $buf =~ s(\377)(\377\377)g; + &_escape_cr(\$buf); + } + + &_put($self, \$buf, "print"); +} # end sub put + + +## Make rs() synonymous input_record_separator(). +*rs = \&input_record_separator; + + +sub suboption_callback { + my ($self, $callback) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{subopt_cback}; + + if (@_ >= 2) { + unless (defined $callback and ref($callback) eq "CODE") { + &_carp($self,"ignoring Suboption_callback argument because it's " . + "not a code ref"); + $callback = $prev; + } + + $s->{subopt_cback} = $callback; + } + + $prev; +} # end sub suboption_callback + + +sub telnetmode { + my ($self, $mode) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{telnet_mode}; + + if (@_ >= 2) { + unless (defined $mode) { + $mode = 0; + } + + $s->{telnet_mode} = $mode; + } + + $prev; +} # end sub telnetmode + + +sub timed_out { + my ($self, $value) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{timedout}; + + if (@_ >= 2) { + unless (defined $value) { + $value = ""; + } + + $s->{timedout} = $value; + } + + $prev; +} # end sub timed_out + + +sub timeout { + my ($self, $timeout) = @_; + my ( + $prev, + $s, + ); + + $s = *$self->{net_telnet}; + $prev = $s->{time_out}; + + if (@_ >= 2) { + $s->{time_out} = &_parse_timeout($self, $timeout); + } + + $prev; +} # end sub timeout + + +sub waitfor { + my ($self, @args) = @_; + my ( + $arg, + $binmode, + $endtime, + $errmode, + $len, + $match, + $match_op, + $pos, + $prematch, + $s, + $search, + $search_cond, + $telnetmode, + $timeout, + @match_cond, + @match_ops, + @search_cond, + @string_cond, + @warns, + ); + local $_; + + ## Init. + $s = *$self->{net_telnet}; + $s->{timedout} = ''; + return if $s->{eofile}; + return unless @args; + $timeout = $s->{time_out}; + + ## Code template used to build string match conditional. + ## Values between array elements must be supplied later. + @string_cond = + ('if (($pos = index $s->{buf}, ', ') > -1) { + $len = ', '; + $prematch = substr $s->{buf}, 0, $pos; + $match = substr $s->{buf}, $pos, $len; + substr($s->{buf}, 0, $pos + $len) = ""; + last; + }'); + + ## Code template used to build pattern match conditional. + ## Values between array elements must be supplied later. + @match_cond = + ('if ($s->{buf} =~ ', ') { + $prematch = $`; + $match = $&; + substr($s->{buf}, 0, length($`) + length($&)) = ""; + last; + }'); + + ## Parse args. + if (@_ == 2) { # one positional arg given + $arg = $_[1]; + + ## Fill in the blanks in the code template. + push @match_ops, $arg; + push @search_cond, join("", $match_cond[0], $arg, $match_cond[1]); + } + elsif (@_ > 2) { # named args given + ## Parse the named args. + while (($_, $arg) = splice @args, 0, 2) { + if (/^-?binmode$/i) { + $binmode = $arg; + unless (defined $binmode) { + $binmode = 0; + } + } + elsif (/^-?errmode$/i) { + $errmode = &_parse_errmode($self, $arg); + } + elsif (/^-?match$/i) { + ## Fill in the blanks in the code template. + push @match_ops, $arg; + push @search_cond, join("", + $match_cond[0], $arg, $match_cond[1]); + } + elsif (/^-?string$/i) { + ## Fill in the blanks in the code template. + $arg =~ s/'/\\'/g; # quote ticks + push @search_cond, join("", + $string_cond[0], "'$arg'", + $string_cond[1], length($arg), + $string_cond[2]); + } + elsif (/^-?telnetmode$/i) { + $telnetmode = $arg; + unless (defined $telnetmode) { + $telnetmode = 0; + } + } + elsif (/^-?timeout$/i) { + $timeout = &_parse_timeout($self, $arg); + } + else { + &_croak($self, "bad named parameter \"$_\" given " . + "to " . ref($self) . "::waitfor()"); + } + } + } + + ## If any args given, override corresponding instance data. + local $s->{errormode} = $errmode + if defined $errmode; + local $s->{bin_mode} = $binmode + if defined $binmode; + local $s->{telnet_mode} = $telnetmode + if defined $telnetmode; + + ## Check for bad match operator argument. + foreach $match_op (@match_ops) { + return $self->error("missing opening delimiter of match operator ", + "in argument \"$match_op\" given to ", + ref($self) . "::waitfor()") + unless $match_op =~ m(^\s*/) or $match_op =~ m(^\s*m\s*\W); + } + + ## Construct conditional to check for requested string and pattern matches. + ## Turn subsequent "if"s into "elsif". + $search_cond = join "\n\tels", @search_cond; + + ## Construct loop to fill buffer until string/pattern, timeout, or eof. + $search = join "", " + while (1) {\n\t", + $search_cond, ' + &_fillbuf($self, $s, $endtime) + or do { + last if $s->{timedout}; + $self->close; + last; + }; + }'; + + ## Set wall time when we timeout. + $endtime = &_endtime($timeout); + + ## Run the loop. + { + local $^W = 1; + local $SIG{"__WARN__"} = sub { push @warns, @_ }; + local $s->{errormode} = "return"; + $s->{errormsg} = ""; + eval $search; + } + + ## Check for failure. + return $self->error("pattern match timed-out") if $s->{timedout}; + return $self->error($s->{errormsg}) if $s->{errormsg} ne ""; + return $self->error("pattern match read eof") if $s->{eofile}; + + ## Check for Perl syntax errors or warnings. + if ($@ or @warns) { + foreach $match_op (@match_ops) { + &_match_check($self, $match_op) + or return; + } + return $self->error($@) if $@; + return $self->error(@warns) if @warns; + } + + wantarray ? ($prematch, $match) : 1; +} # end sub waitfor + + +######################## Private Subroutines ######################### + + +sub _append_lineno { + my ($obj, @msgs) = @_; + my ( + $file, + $line, + $pkg, + ); + + ## Find the caller that's not in object's class or one of its base classes. + ($pkg, $file , $line) = &_user_caller($obj); + join("", @msgs, " at ", $file, " line ", $line, "\n"); +} # end sub _append_lineno + + +sub _carp { + warn &_append_lineno(@_); +} # end sub _carp + + +sub _croak { + die &_append_lineno(@_); +} # end sub _croak + + +sub _endtime { + my ($interval) = @_; + + ## Compute wall time when timeout occurs. + if (defined $interval) { + if ($interval >= $^T) { # it's already an absolute time + return $interval; + } + elsif ($interval > 0) { # it's relative to the current time + return int(time + 1.5 + $interval); + } + else { # it's a one time poll + return 0; + } + } + else { # there's no timeout + return undef; + } +} # end sub _endtime + + +sub _escape_cr { + my ($string) = @_; + my ( + $nextchar, + ); + my $pos = 0; + + ## Convert all CR (not followed by LF) to CR NULL. + while (($pos = index($$string, "\015", $pos)) > -1) { + $nextchar = substr $$string, $pos + 1, 1; + + substr($$string, $pos, 1) = "\015\000" + unless $nextchar eq "\012"; + + $pos++; + } + + 1; +} # end sub _escape_cr + + +sub _fillbuf { + my ($self, $s, $endtime) = @_; + my ( + $msg, + $nfound, + $nread, + $pushback_len, + $read_pos, + $ready, + $timed_out, + $timeout, + $unparsed_pos, + ); + + ## If error from last read not yet reported then do it now. + if ($s->{pending_errormsg}) { + $msg = $s->{pending_errormsg}; + $s->{pending_errormsg} = ""; + return $self->error($msg); + } + + return unless $s->{opened}; + + while (1) { + ## Maximum buffer size exceeded? + return $self->error("maximum input buffer length exceeded: ", + $s->{maxbufsize}, " bytes") + unless length($s->{buf}) <= $s->{maxbufsize}; + + ## Determine how long to wait for input ready. + ($timed_out, $timeout) = &_timeout_interval($endtime); + if ($timed_out) { + $s->{timedout} = 1; + return $self->error("read timed-out"); + } + + ## Wait for input ready. + $nfound = select $ready=$s->{fdmask}, "", "", $timeout; + + ## Handle any errors while waiting. + if (!defined $nfound or $nfound <= 0) { # input not ready + if (defined $nfound and $nfound == 0) { # timed-out + $s->{timedout} = 1; + return $self->error("read timed-out"); + } + else { # error waiting for input ready + next if $! =~ /^interrupted/i; + + $s->{opened} = ''; + return $self->error("read error: $!"); + } + } + + ## Append to buffer any partially processed telnet or CR sequence. + $pushback_len = length $s->{pushback_buf}; + if ($pushback_len) { + $s->{buf} .= $s->{pushback_buf}; + $s->{pushback_buf} = ""; + } + + ## Read the waiting data. + $read_pos = length $s->{buf}; + $unparsed_pos = $read_pos - $pushback_len; + $nread = sysread $self, $s->{buf}, $s->{blksize}, $read_pos; + + ## Handle any read errors. + if (!defined $nread) { # read failed + next if $! =~ /^interrupted/i; # restart interrupted syscall + + $s->{opened} = ''; + return $self->error("read error: $!"); + } + + ## Handle eof. + if ($nread == 0) { # eof read + $s->{opened} = ''; + return; + } + + ## Display network traffic if requested. + if ($s->{dumplog}) { + &_log_dump('<', $s->{dumplog}, \$s->{buf}, $read_pos); + } + + ## Process any telnet commands in the data stream. + if ($s->{telnet_mode} and index($s->{buf},"\377",$unparsed_pos) > -1) { + &_interpret_tcmd($self, $s, $unparsed_pos); + } + + ## Process any carriage-return sequences in the data stream. + &_interpret_cr($s, $unparsed_pos); + + ## Read again if all chars read were consumed as telnet cmds. + next if $unparsed_pos >= length $s->{buf}; + + ## Log the input if requested. + if ($s->{inputlog}) { + &_log_print($s->{inputlog}, substr($s->{buf}, $unparsed_pos)); + } + + ## Save the last line read. + &_save_lastline($s); + + ## We've successfully read some data into the buffer. + last; + } # end while(1) + + 1; +} # end sub _fillbuf + + +sub _flush_opts { + my ($self) = @_; + my ( + $option_chars, + ); + my $s = *$self->{net_telnet}; + + ## Get option and clear the output buf. + $option_chars = $s->{unsent_opts}; + $s->{unsent_opts} = ""; + + ## Try to send options without waiting. + { + local $s->{errormode} = "return"; + local $s->{time_out} = 0; + &_put($self, \$option_chars, "telnet option negotiation") + or do { + ## Save chars not printed for later. + substr($option_chars, 0, $self->print_length) = ""; + $s->{unsent_opts} .= $option_chars; + }; + } + + 1; +} # end sub _flush_opts + + +sub _fname_to_handle { + my ($self, $fh) = @_; + my ( + $filename, + ); + + ## Ensure valid input. + return "" + unless defined $fh and (ref $fh or length $fh); + + ## Open a new filehandle if input is a filename. + no strict "refs"; + if (!ref($fh) and !defined(fileno $fh)) { # fh is a filename + $filename = $fh; + $fh = &_new_handle(); + CORE::open $fh, "> $filename" + or return $self->error("problem creating $filename: $!"); + } + + select((select($fh), $|=1)[$[]); # don't buffer writes + $fh; +} # end sub _fname_to_handle + + +sub _have_alarm { + eval { + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{ALRM} = sub { die }; + alarm 0; + }; + + ! $@; +} # end sub _have_alarm + + +sub _interpret_cr { + my ($s, $pos) = @_; + my ( + $nextchar, + ); + + while (($pos = index($s->{buf}, "\015", $pos)) > -1) { + $nextchar = substr($s->{buf}, $pos + 1, 1); + if ($nextchar eq "\0") { + ## Convert CR NULL to CR when in telnet mode. + if ($s->{telnet_mode}) { + substr($s->{buf}, $pos + 1, 1) = ""; + } + } + elsif ($nextchar eq "\012") { + ## Convert CR LF to newline when not in binary mode. + if (!$s->{bin_mode}) { + substr($s->{buf}, $pos, 2) = "\n"; + } + } + elsif (!length($nextchar) and ($s->{telnet_mode} or !$s->{bin_mode})) { + ## Save CR in alt buffer for possible CR LF or CR NULL conversion. + $s->{pushback_buf} .= "\015"; + chop $s->{buf}; + } + + $pos++; + } + + 1; +} # end sub _interpret_cr + + +sub _interpret_tcmd { + my ($self, $s, $offset) = @_; + my ( + $callback, + $endpos, + $nextchar, + $option, + $parameters, + $pos, + $subcmd, + ); + local $_; + + ## Parse telnet commands in the data stream. + $pos = $offset; + while (($pos = index $s->{buf}, "\377", $pos) > -1) { # unprocessed IAC + $nextchar = substr $s->{buf}, $pos + 1, 1; + + ## Save command if it's only partially read. + if (!length $nextchar) { + $s->{pushback_buf} .= "\377"; + chop $s->{buf}; + last; + } + + if ($nextchar eq "\377") { # IAC is escaping "\377" char + ## Remove escape char from data stream. + substr($s->{buf}, $pos, 1) = ""; + $pos++; + } + elsif ($nextchar eq "\375" or $nextchar eq "\373" or + $nextchar eq "\374" or $nextchar eq "\376") { # opt negotiation + $option = substr $s->{buf}, $pos + 2, 1; + + ## Save command if it's only partially read. + if (!length $option) { + $s->{pushback_buf} .= "\377" . $nextchar; + chop $s->{buf}; + chop $s->{buf}; + last; + } + + ## Remove command from data stream. + substr($s->{buf}, $pos, 3) = ""; + + ## Handle option negotiation. + &_negotiate_recv($self, $s, $nextchar, ord($option), $pos); + } + elsif ($nextchar eq "\372") { # start of subnegotiation parameters + ## Save command if it's only partially read. + $endpos = index $s->{buf}, "\360", $pos; + if ($endpos == -1) { + $s->{pushback_buf} .= substr $s->{buf}, $pos; + substr($s->{buf}, $pos) = ""; + last; + } + + ## Remove subnegotiation cmd from buffer. + $subcmd = substr($s->{buf}, $pos, $endpos - $pos + 1); + substr($s->{buf}, $pos, $endpos - $pos + 1) = ""; + + ## Invoke subnegotiation callback. + if ($s->{subopt_cback} and length($subcmd) >= 5) { + $option = unpack "C", substr($subcmd, 2, 1); + if (length($subcmd) >= 6) { + $parameters = substr $subcmd, 3, length($subcmd) - 5; + } + else { + $parameters = ""; + } + + $callback = $s->{subopt_cback}; + &$callback($self, $option, $parameters); + } + } + else { # various two char telnet commands + ## Ignore and remove command from data stream. + substr($s->{buf}, $pos, 2) = ""; + } + } + + ## Try to send any waiting option negotiation. + if (length $s->{unsent_opts}) { + &_flush_opts($self); + } + + 1; +} # end sub _interpret_tcmd + + +sub _io_socket_include { + local $SIG{"__DIE__"} = "DEFAULT"; + eval "require IO::Socket"; +} # end sub io_socket_include + + +sub _log_dump { + my ($direction, $fh, $data, $offset, $len) = @_; + my ( + $addr, + $hexvals, + $line, + ); + + $addr = 0; + $len = length($$data) - $offset + if !defined $len; + return 1 if $len <= 0; + + ## Print data in dump format. + while ($len > 0) { + ## Convert up to the next 16 chars to hex, padding w/ spaces. + if ($len >= 16) { + $line = substr $$data, $offset, 16; + } + else { + $line = substr $$data, $offset, $len; + } + $hexvals = unpack("H*", $line); + $hexvals .= ' ' x (32 - length $hexvals); + + ## Place in 16 columns, each containing two hex digits. + $hexvals = sprintf("%s %s %s %s " x 4, + unpack("a2" x 16, $hexvals)); + + ## For the ASCII column, change unprintable chars to a period. + $line =~ s/[\000-\037,\177-\237]/./g; + + ## Print the line in dump format. + &_log_print($fh, sprintf("%s 0x%5.5lx: %s%s\n", + $direction, $addr, $hexvals, $line)); + + $addr += 16; + $offset += 16; + $len -= 16; + } + + &_log_print($fh, "\n"); + + 1; +} # end sub _log_dump + + +sub _log_option { + my ($fh, $direction, $request, $option) = @_; + my ( + $name, + ); + + if ($option >= 0 and $option <= $#Telopts) { + $name = $Telopts[$option]; + } + else { + $name = $option; + } + + &_log_print($fh, "$direction $request $name\n"); +} # end sub _log_option + + +sub _log_print { + my ($fh, $buf) = @_; + local $\ = ''; + + if (ref($fh) and ref($fh) ne "GLOB") { # fh is blessed ref + $fh->print($buf); + } + else { # fh isn't blessed ref + print $fh $buf; + } +} # end sub _log_print + + +sub _match_check { + my ($self, $code) = @_; + my $error; + my @warns = (); + + ## Use eval to check for syntax errors or warnings. + { + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{"__WARN__"} = sub { push @warns, @_ }; + local $^W = 1; + local $_ = ''; + eval "\$_ =~ $code;"; + } + if ($@) { + ## Remove useless lines numbers from message. + ($error = $@) =~ s/ at \(eval \d+\) line \d+.?//; + chomp $error; + return $self->error("bad match operator: $error"); + } + elsif (@warns) { + ## Remove useless lines numbers from message. + ($error = shift @warns) =~ s/ at \(eval \d+\) line \d+.?//; + $error =~ s/ while "strict subs" in use//; + chomp $error; + return $self->error("bad match operator: $error"); + } + + 1; +} # end sub _match_check + + +sub _negotiate_callback { + my ($self, $opt, $is_remote, $is_enabled, $was_enabled, $opt_bufpos) = @_; + my ( + $callback, + $s, + ); + local $_; + + ## Keep track of remote echo. + if ($is_remote and $opt == &TELOPT_ECHO) { # received WILL or WONT ECHO + $s = *$self->{net_telnet}; + + if ($is_enabled and !$was_enabled) { # received WILL ECHO + $s->{remote_echo} = 1; + } + elsif (!$is_enabled and $was_enabled) { # received WONT ECHO + $s->{remote_echo} = ''; + } + } + + ## Invoke callback, if there is one. + $callback = $self->option_callback; + if ($callback) { + &$callback($self, $opt, $is_remote, + $is_enabled, $was_enabled, $opt_bufpos); + } + + 1; +} # end sub _negotiate_callback + + +sub _negotiate_recv { + my ($self, $s, $opt_request, $opt, $opt_bufpos) = @_; + + ## Ensure data structure exists for this option. + unless (defined $s->{opts}{$opt}) { + &_set_default_option($s, $opt); + } + + ## Process the option. + if ($opt_request eq "\376") { # DONT + &_negotiate_recv_disable($self, $s, $opt, "dont", $opt_bufpos, + $s->{opts}{$opt}{local_enable_ok}, + \$s->{opts}{$opt}{local_enabled}, + \$s->{opts}{$opt}{local_state}); + } + elsif ($opt_request eq "\375") { # DO + &_negotiate_recv_enable($self, $s, $opt, "do", $opt_bufpos, + $s->{opts}{$opt}{local_enable_ok}, + \$s->{opts}{$opt}{local_enabled}, + \$s->{opts}{$opt}{local_state}); + } + elsif ($opt_request eq "\374") { # WONT + &_negotiate_recv_disable($self, $s, $opt, "wont", $opt_bufpos, + $s->{opts}{$opt}{remote_enable_ok}, + \$s->{opts}{$opt}{remote_enabled}, + \$s->{opts}{$opt}{remote_state}); + } + elsif ($opt_request eq "\373") { # WILL + &_negotiate_recv_enable($self, $s, $opt, "will", $opt_bufpos, + $s->{opts}{$opt}{remote_enable_ok}, + \$s->{opts}{$opt}{remote_enabled}, + \$s->{opts}{$opt}{remote_state}); + } + else { # internal error + die; + } + + 1; +} # end sub _negotiate_recv + + +sub _negotiate_recv_disable { + my ($self, $s, $opt, $opt_request, + $opt_bufpos, $enable_ok, $is_enabled, $state) = @_; + my ( + $ack, + $disable_cmd, + $enable_cmd, + $is_remote, + $nak, + $was_enabled, + ); + + ## What do we use to request enable/disable or respond with ack/nak. + if ($opt_request eq "wont") { + $enable_cmd = "\377\375" . pack("C", $opt); # do command + $disable_cmd = "\377\376" . pack("C", $opt); # dont command + $is_remote = 1; + $ack = "DO"; + $nak = "DONT"; + + &_log_option($s->{opt_log}, "RCVD", "WONT", $opt) + if $s->{opt_log}; + } + elsif ($opt_request eq "dont") { + $enable_cmd = "\377\373" . pack("C", $opt); # will command + $disable_cmd = "\377\374" . pack("C", $opt); # wont command + $is_remote = ''; + $ack = "WILL"; + $nak = "WONT"; + + &_log_option($s->{opt_log}, "RCVD", "DONT", $opt) + if $s->{opt_log}; + } + else { # internal error + die; + } + + ## Respond to WONT or DONT based on the current negotiation state. + if ($$state eq "no") { # state is already disabled + } + elsif ($$state eq "yes") { # they're initiating disable + $$is_enabled = ''; + $$state = "no"; + + ## Send positive acknowledgment. + $s->{unsent_opts} .= $disable_cmd; + &_log_option($s->{opt_log}, "SENT", $nak, $opt) + if $s->{opt_log}; + + ## Invoke callbacks. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantno") { # they sent positive ack + $$is_enabled = ''; + $$state = "no"; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantno opposite") { # pos ack but we changed our mind + ## Indicate disabled but now we want to enable. + $$is_enabled = ''; + $$state = "wantyes"; + + ## Send queued request. + $s->{unsent_opts} .= $enable_cmd; + &_log_option($s->{opt_log}, "SENT", $ack, $opt) + if $s->{opt_log}; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantyes") { # they sent negative ack + $$is_enabled = ''; + $$state = "no"; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantyes opposite") { # nak but we changed our mind + $$is_enabled = ''; + $$state = "no"; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } +} # end sub _negotiate_recv_disable + + +sub _negotiate_recv_enable { + my ($self, $s, $opt, $opt_request, + $opt_bufpos, $enable_ok, $is_enabled, $state) = @_; + my ( + $ack, + $disable_cmd, + $enable_cmd, + $is_remote, + $nak, + $was_enabled, + ); + + ## What we use to send enable/disable request or send ack/nak response. + if ($opt_request eq "will") { + $enable_cmd = "\377\375" . pack("C", $opt); # do command + $disable_cmd = "\377\376" . pack("C", $opt); # dont command + $is_remote = 1; + $ack = "DO"; + $nak = "DONT"; + + &_log_option($s->{opt_log}, "RCVD", "WILL", $opt) + if $s->{opt_log}; + } + elsif ($opt_request eq "do") { + $enable_cmd = "\377\373" . pack("C", $opt); # will command + $disable_cmd = "\377\374" . pack("C", $opt); # wont command + $is_remote = ''; + $ack = "WILL"; + $nak = "WONT"; + + &_log_option($s->{opt_log}, "RCVD", "DO", $opt) + if $s->{opt_log}; + } + else { # internal error + die; + } + + ## Save current enabled state. + $was_enabled = $$is_enabled; + + ## Respond to WILL or DO based on the current negotiation state. + if ($$state eq "no") { # they're initiating enable + if ($enable_ok) { # we agree they/us should enable + $$is_enabled = 1; + $$state = "yes"; + + ## Send positive acknowledgment. + $s->{unsent_opts} .= $enable_cmd; + &_log_option($s->{opt_log}, "SENT", $ack, $opt) + if $s->{opt_log}; + + ## Invoke callbacks. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + else { # we disagree they/us should enable + ## Send negative acknowledgment. + $s->{unsent_opts} .= $disable_cmd; + &_log_option($s->{opt_log}, "SENT", $nak, $opt) + if $s->{opt_log}; + } + } + elsif ($$state eq "yes") { # state is already enabled + } + elsif ($$state eq "wantno") { # error: our disable req answered by enable + $$is_enabled = ''; + $$state = "no"; + + ## Invoke callbacks. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantno opposite") { # err: disable req answerd by enable + $$is_enabled = 1; + $$state = "yes"; + + ## Invoke callbacks. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantyes") { # they sent pos ack + $$is_enabled = 1; + $$state = "yes"; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + elsif ($$state eq "wantyes opposite") { # pos ack but we changed our mind + ## Indicate enabled but now we want to disable. + $$is_enabled = 1; + $$state = "wantno"; + + ## Inform other side we changed our mind. + $s->{unsent_opts} .= $disable_cmd; + &_log_option($s->{opt_log}, "SENT", $nak, $opt) + if $s->{opt_log}; + + ## Invoke callback. + &_negotiate_callback($self, $opt, $is_remote, + $$is_enabled, $was_enabled, $opt_bufpos); + } + + 1; +} # end sub _negotiate_recv_enable + + +sub _new_handle { + if ($INC{"IO/Handle.pm"}) { + return IO::Handle->new; + } + else { + require FileHandle; + return FileHandle->new; + } +} # end sub _new_handle + + +sub _next_getlines { + my ($self, $s) = @_; + my ( + $len, + $line, + $pos, + @lines, + ); + + ## Fill buffer and get first line. + $line = $self->getline + or return; + push @lines, $line; + + ## Extract subsequent lines from buffer. + while (($pos = index($s->{buf}, $s->{rs})) != -1) { + $len = $pos + length $s->{rs}; + push @lines, substr($s->{buf}, 0, $len); + substr($s->{buf}, 0, $len) = ""; + } + + @lines; +} # end sub _next_getlines + + +sub _opt_accept { + my ($self, @args) = @_; + my ( + $arg, + $option, + $s, + ); + + ## Init. + $s = *$self->{net_telnet}; + + foreach $arg (@args) { + ## Ensure data structure defined for this option. + $option = $arg->{option}; + if (!defined $s->{opts}{$option}) { + &_set_default_option($s, $option); + } + + ## Save whether we'll accept or reject this option. + if ($arg->{is_remote}) { + $s->{opts}{$option}{remote_enable_ok} = $arg->{is_enable}; + } + else { + $s->{opts}{$option}{local_enable_ok} = $arg->{is_enable}; + } + } + + 1; +} # end sub _opt_accept + + +sub _optimal_blksize { + my ($blksize) = @_; + local $^W = ''; # avoid non-numeric warning for ms-windows blksize of "" + + ## Use default when block size is invalid. + return 8192 + unless defined $blksize and $blksize >= 1 and $blksize <= 1_048_576; + + $blksize; +} # end sub _optimal_blksize + + +sub _parse_cmd_remove_mode { + my ($self, $mode) = @_; + + if (!defined $mode) { + $mode = 0; + } + elsif ($mode =~ /^\s*auto\s*$/i) { + $mode = "auto"; + } + elsif ($mode !~ /^\d+$/) { + &_carp($self, "ignoring bad Cmd_remove_mode " . + "argument \"$mode\": it's not \"auto\" or a " . + "non-negative integer"); + $mode = *$self->{net_telnet}{cmd_rm_mode}; + } + + $mode; +} # end sub _parse_cmd_remove_mode + + +sub _parse_errmode { + my ($self, $errmode) = @_; + + ## Set the error mode. + if (!defined $errmode) { + &_carp($self, "ignoring undefined Errmode argument"); + $errmode = *$self->{net_telnet}{errormode}; + } + elsif ($errmode =~ /^\s*return\s*$/i) { + $errmode = "return"; + } + elsif ($errmode =~ /^\s*die\s*$/i) { + $errmode = "die"; + } + elsif (ref($errmode) eq "CODE") { + } + elsif (ref($errmode) eq "ARRAY") { + unless (ref($errmode->[0]) eq "CODE") { + &_carp($self, "ignoring bad Errmode argument: " . + "first list item isn't a code ref"); + $errmode = *$self->{net_telnet}{errormode}; + } + } + else { + &_carp($self, "ignoring bad Errmode argument \"$errmode\""); + $errmode = *$self->{net_telnet}{errormode}; + } + + $errmode; +} # end sub _parse_errmode + + +sub _parse_input_record_separator { + my ($self, $rs) = @_; + + unless (defined $rs and length $rs) { + &_carp($self, "ignoring null Input_record_separator argument"); + $rs = *$self->{net_telnet}{rs}; + } + + $rs; +} # end sub _parse_input_record_separator + + +sub _parse_prompt { + my ($self, $prompt) = @_; + + unless (defined $prompt) { + $prompt = ""; + } + + unless ($prompt =~ m(^\s*/) or $prompt =~ m(^\s*m\s*\W)) { + &_carp($self, "ignoring bad Prompt argument \"$prompt\": " . + "missing opening delimiter of match operator"); + $prompt = *$self->{net_telnet}{cmd_prompt}; + } + + $prompt; +} # end sub _parse_prompt + + +sub _parse_timeout { + my ($self, $timeout) = @_; + + ## Ensure valid timeout. + if (defined $timeout) { + ## Test for non-numeric or negative values. + eval { + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{"__WARN__"} = sub { die "non-numeric\n" }; + local $^W = 1; + $timeout *= 1; + }; + if ($@) { # timeout arg is non-numeric + &_carp($self, + "ignoring non-numeric Timeout argument \"$timeout\""); + $timeout = *$self->{net_telnet}{time_out}; + } + elsif ($timeout < 0) { # timeout arg is negative + &_carp($self, "ignoring negative Timeout argument \"$timeout\""); + $timeout = *$self->{net_telnet}{time_out}; + } + } + + $timeout; +} # end sub _parse_timeout + + +sub _put { + my ($self, $buf, $subname) = @_; + my ( + $endtime, + $len, + $nfound, + $nwrote, + $offset, + $ready, + $s, + $timed_out, + $timeout, + $zero_wrote_count, + ); + + ## Init. + $s = *$self->{net_telnet}; + $s->{num_wrote} = 0; + $zero_wrote_count = 0; + $offset = 0; + $len = length $$buf; + $endtime = &_endtime($s->{time_out}); + + return $self->error("write error: filehandle isn't open") + unless $s->{opened}; + + ## Try to send any waiting option negotiation. + if (length $s->{unsent_opts}) { + &_flush_opts($self); + } + + ## Write until all data blocks written. + while ($len) { + ## Determine how long to wait for output ready. + ($timed_out, $timeout) = &_timeout_interval($endtime); + if ($timed_out) { + $s->{timedout} = 1; + return $self->error("$subname timed-out"); + } + + ## Wait for output ready. + $nfound = select "", $ready=$s->{fdmask}, "", $timeout; + + ## Handle any errors while waiting. + if (!defined $nfound or $nfound <= 0) { # output not ready + if (defined $nfound and $nfound == 0) { # timed-out + $s->{timedout} = 1; + return $self->error("$subname timed-out"); + } + else { # error waiting for output ready + next if $! =~ /^interrupted/i; + + $s->{opened} = ''; + return $self->error("write error: $!"); + } + } + + ## Write the data. + $nwrote = syswrite $self, $$buf, $len, $offset; + + ## Handle any write errors. + if (!defined $nwrote) { # write failed + next if $! =~ /^interrupted/i; # restart interrupted syscall + + $s->{opened} = ''; + return $self->error("write error: $!"); + } + elsif ($nwrote == 0) { # zero chars written + ## Try ten more times to write the data. + if ($zero_wrote_count++ <= 10) { + &_sleep(0.01); + next; + } + + $s->{opened} = ''; + return $self->error("write error: zero length write: $!"); + } + + ## Display network traffic if requested. + if ($s->{dumplog}) { + &_log_dump('>', $s->{dumplog}, $buf, $offset, $nwrote); + } + + ## Increment. + $s->{num_wrote} += $nwrote; + $offset += $nwrote; + $len -= $nwrote; + } + + 1; +} # end sub _put + + +sub _qualify_fh { + my ($obj, $name) = @_; + my ( + $user_class, + ); + local $_; + + ## Get user's package name. + ($user_class) = &_user_caller($obj); + + ## Ensure name is qualified with a package name. + $name = qualify($name, $user_class); + + ## If it's not already, make it a typeglob ref. + if (!ref $name) { + no strict; + local $^W = 0; + + $name =~ s/^\*+//; + $name = eval "\\*$name"; + return unless ref $name; + } + + $name; +} # end sub _qualify_fh + + +sub _reset_options { + my ($opts) = @_; + my ( + $opt, + ); + + foreach $opt (keys %$opts) { + $opts->{$opt}{remote_enabled} = ''; + $opts->{$opt}{remote_state} = "no"; + $opts->{$opt}{local_enabled} = ''; + $opts->{$opt}{local_state} = "no"; + } + + 1; +} # end sub _reset_options + + +sub _save_lastline { + my ($s) = @_; + my ( + $firstpos, + $lastpos, + $len_w_sep, + $len_wo_sep, + $offset, + ); + my $rs = "\n"; + + if (($lastpos = rindex $s->{buf}, $rs) > -1) { # eol found + while (1) { + ## Find beginning of line. + $firstpos = rindex $s->{buf}, $rs, $lastpos - 1; + if ($firstpos == -1) { + $offset = 0; + } + else { + $offset = $firstpos + length $rs; + } + + ## Determine length of line with and without separator. + $len_wo_sep = $lastpos - $offset; + $len_w_sep = $len_wo_sep + length $rs; + + ## Save line if it's not blank. + if (substr($s->{buf}, $offset, $len_wo_sep) + !~ /^\s*$/) + { + $s->{last_line} = substr($s->{buf}, + $offset, + $len_w_sep); + last; + } + + last if $firstpos == -1; + + $lastpos = $firstpos; + } + } + + 1; +} # end sub _save_lastline + + +sub _set_default_option { + my ($s, $option) = @_; + + $s->{opts}{$option} = { + remote_enabled => '', + remote_state => "no", + remote_enable_ok => '', + local_enabled => '', + local_state => "no", + local_enable_ok => '', + }; +} # end sub _set_default_option + + +sub _sleep { + my ($secs) = @_; + my $bitmask = ""; + local *SOCK; + + socket SOCK, AF_INET, SOCK_STREAM, 0; + vec($bitmask, fileno(SOCK), 1) = 1; + select $bitmask, "", "", $secs; + CORE::close SOCK; + + 1; +} # end sub _sleep + + +sub _timeout_interval { + my ($endtime) = @_; + my ( + $timeout, + ); + + ## Return timed-out boolean and timeout interval. + if (defined $endtime) { + ## Is it a one-time poll. + return ('', 0) if $endtime == 0; + + ## Calculate the timeout interval. + $timeout = $endtime - time; + + ## Did we already timeout. + return (1, 0) unless $timeout > 0; + + return ('', $timeout); + } + else { # there is no timeout + return ('', undef); + } +} # end sub _timeout_interval + + +sub _user_caller { + my ($obj) = @_; + my ( + $class, + $curr_pkg, + $file, + $i, + $line, + $pkg, + %isa, + @isa, + ); + local $_; + + ## Create a boolean hash to test for isa. Make sure current + ## package and the object's class are members. + $class = ref $obj; + @isa = eval "\@${class}::ISA"; + push @isa, $class; + ($curr_pkg) = caller 1; + push @isa, $curr_pkg; + %isa = map { $_ => 1 } @isa; + + ## Search back in call frames for a package that's not in isa. + $i = 1; + while (($pkg, $file, $line) = caller ++$i) { + next if $isa{$pkg}; + + return ($pkg, $file, $line); + } + + ## If not found, choose outer most call frame. + ($pkg, $file, $line) = caller --$i; + return ($pkg, $file, $line); +} # end sub _user_caller + + +sub _verify_telopt_arg { + my ($self, $option, $argname) = @_; + + ## If provided, use argument name in error message. + if (defined $argname) { + $argname = "for arg $argname"; + } + else { + $argname = ""; + } + + ## Ensure telnet option is a non-negative integer. + eval { + local $SIG{"__DIE__"} = "DEFAULT"; + local $SIG{"__WARN__"} = sub { die "non-numeric\n" }; + local $^W = 1; + $option = abs(int $option); + }; + return $self->error("bad telnet option $argname: non-numeric") + if $@; + + return $self->error("bad telnet option $argname: option > 255") + unless $option <= 255; + + $option; +} # end sub _verify_telopt_arg + + +######################## Exported Constants ########################## + + +sub TELNET_IAC () {255}; # interpret as command: +sub TELNET_DONT () {254}; # you are not to use option +sub TELNET_DO () {253}; # please, you use option +sub TELNET_WONT () {252}; # I won't use option +sub TELNET_WILL () {251}; # I will use option +sub TELNET_SB () {250}; # interpret as subnegotiation +sub TELNET_GA () {249}; # you may reverse the line +sub TELNET_EL () {248}; # erase the current line +sub TELNET_EC () {247}; # erase the current character +sub TELNET_AYT () {246}; # are you there +sub TELNET_AO () {245}; # abort output--but let prog finish +sub TELNET_IP () {244}; # interrupt process--permanently +sub TELNET_BREAK () {243}; # break +sub TELNET_DM () {242}; # data mark--for connect. cleaning +sub TELNET_NOP () {241}; # nop +sub TELNET_SE () {240}; # end sub negotiation +sub TELNET_EOR () {239}; # end of record (transparent mode) +sub TELNET_ABORT () {238}; # Abort process +sub TELNET_SUSP () {237}; # Suspend process +sub TELNET_EOF () {236}; # End of file +sub TELNET_SYNCH () {242}; # for telfunc calls + +sub TELOPT_BINARY () {0}; # Binary Transmission +sub TELOPT_ECHO () {1}; # Echo +sub TELOPT_RCP () {2}; # Reconnection +sub TELOPT_SGA () {3}; # Suppress Go Ahead +sub TELOPT_NAMS () {4}; # Approx Message Size Negotiation +sub TELOPT_STATUS () {5}; # Status +sub TELOPT_TM () {6}; # Timing Mark +sub TELOPT_RCTE () {7}; # Remote Controlled Trans and Echo +sub TELOPT_NAOL () {8}; # Output Line Width +sub TELOPT_NAOP () {9}; # Output Page Size +sub TELOPT_NAOCRD () {10}; # Output Carriage-Return Disposition +sub TELOPT_NAOHTS () {11}; # Output Horizontal Tab Stops +sub TELOPT_NAOHTD () {12}; # Output Horizontal Tab Disposition +sub TELOPT_NAOFFD () {13}; # Output Formfeed Disposition +sub TELOPT_NAOVTS () {14}; # Output Vertical Tabstops +sub TELOPT_NAOVTD () {15}; # Output Vertical Tab Disposition +sub TELOPT_NAOLFD () {16}; # Output Linefeed Disposition +sub TELOPT_XASCII () {17}; # Extended ASCII +sub TELOPT_LOGOUT () {18}; # Logout +sub TELOPT_BM () {19}; # Byte Macro +sub TELOPT_DET () {20}; # Data Entry Terminal +sub TELOPT_SUPDUP () {21}; # SUPDUP +sub TELOPT_SUPDUPOUTPUT () {22}; # SUPDUP Output +sub TELOPT_SNDLOC () {23}; # Send Location +sub TELOPT_TTYPE () {24}; # Terminal Type +sub TELOPT_EOR () {25}; # End of Record +sub TELOPT_TUID () {26}; # TACACS User Identification +sub TELOPT_OUTMRK () {27}; # Output Marking +sub TELOPT_TTYLOC () {28}; # Terminal Location Number +sub TELOPT_3270REGIME () {29}; # Telnet 3270 Regime +sub TELOPT_X3PAD () {30}; # X.3 PAD +sub TELOPT_NAWS () {31}; # Negotiate About Window Size +sub TELOPT_TSPEED () {32}; # Terminal Speed +sub TELOPT_LFLOW () {33}; # Remote Flow Control +sub TELOPT_LINEMODE () {34}; # Linemode +sub TELOPT_XDISPLOC () {35}; # X Display Location +sub TELOPT_OLD_ENVIRON () {36}; # Environment Option +sub TELOPT_AUTHENTICATION () {37}; # Authentication Option +sub TELOPT_ENCRYPT () {38}; # Encryption Option +sub TELOPT_NEW_ENVIRON () {39}; # New Environment Option +sub TELOPT_EXOPL () {255}; # Extended-Options-List + + +1; +__END__; + + +######################## User Documentation ########################## + + +## To format the following documentation into a more readable format, +## use one of these programs: perldoc; pod2man; pod2html; pod2text. +## For example, to nicely format this documentation for printing, you +## may use pod2man and groff to convert to postscript: +## pod2man Net/Telnet.pm | groff -man -Tps > Net::Telnet.ps + +=head1 NAME + +Net::Telnet - interact with TELNET port or other TCP ports + +=head1 SYNOPSIS + +C + +see METHODS section below + +=head1 DESCRIPTION + +Net::Telnet allows you to make client connections to a TCP port and do +network I/O, especially to a port using the TELNET protocol. Simple +I/O methods such as print, get, and getline are provided. More +sophisticated interactive features are provided because connecting to +a TELNET port ultimately means communicating with a program designed +for human interaction. These interactive features include the ability +to specify a time-out and to wait for patterns to appear in the input +stream, such as the prompt from a shell. + +Other reasons to use this module than strictly with a TELNET port are: + +=over 2 + +=item * + +You're not familiar with sockets and you want a simple way to make +client connections to TCP services. + +=item * + +You want to be able to specify your own time-out while connecting, +reading, or writing. + +=item * + +You're communicating with an interactive program at the other end of +some socket or pipe and you want to wait for certain patterns to +appear. + +=back + +Here's an example that prints who's logged-on to the remote host +sparky. In addition to a username and password, you must also know +the user's shell prompt, which for this example is C + + use Net::Telnet (); + $t = new Net::Telnet (Timeout => 10, + Prompt => '/bash\$ $/'); + $t->open("sparky"); + $t->login($username, $passwd); + @lines = $t->cmd("who"); + print @lines; + +More examples are in the B section below. + +Usage questions should be directed to the Usenet newsgroup +comp.lang.perl.modules. + +Contact me, Jay Rogers , if you find any bugs or have +suggestions for improvement. + +=head2 What To Know Before Using + +=over 2 + +=item * + +All output is flushed while all input is buffered. Each object +contains its own input buffer. + +=item * + +The output record separator for C and C is set to +C<"\n"> by default, so that you don't have to append all your commands +with a newline. To avoid printing a trailing C<"\n"> use C or +set the I to C<"">. + +=item * + +The methods C and C use the I setting in the +object to determine when a login or remote command is complete. Those +methods will fail with a time-out if you don't set the prompt +correctly. + +=item * + +Use a combination of C and C as an alternative to +C or C when they don't do what you want. + +=item * + +Errors such as timing-out are handled according to the error mode +action. The default action is to print an error message to standard +error and have the program die. See the C method for more +information. + +=item * + +When constructing the match operator argument for C or +C, always use single quotes instead of double quotes to +avoid unexpected backslash interpretation (e.g. C<'/bash\$ $/'>). If +you're constructing a DOS like file path, you'll need to use four +backslashes to represent one (e.g. C<'/c:\\\\users\\\\billE$/i'>). + +Of course don't forget about regexp metacharacters like C<.>, C<[>, or +C<$>. You'll only need a single backslash to quote them. The anchor +metacharacters C<^> and C<$> refer to positions in the input buffer. +To avoid matching characters read that look like a prompt, it's a good +idea to end your prompt pattern with the C<$> anchor. That way the +prompt will only match if it's the last thing read. + +=item * + +In the input stream, each sequence of I and I (i.e. C<"\015\012"> or CR LF) is converted to C<"\n">. In the +output stream, each occurrence of C<"\n"> is converted to a sequence +of CR LF. See C to change the behavior. TCP protocols +typically use the ASCII sequence, carriage return and line feed to +designate a newline. + +=item * + +Timing-out while making a connection is disabled for machines that +don't support the C function. Most notably these include +MS-Windows machines. + +=item * + +You'll need to be running at least Perl version 5.002 to use this +module. This module does not require any libraries that don't already +come with a standard Perl distribution. + +If you have the IO:: libraries installed (they come standard with +perl5.004 and later) then IO::Socket::INET is used as a base class, +otherwise FileHandle is used. + +=item * + +Contact me, Jay Rogers , if you find any bugs or have +suggestions for improvement. + +=back + +=head2 Debugging + +The typical usage bug causes a time-out error because you've made +incorrect assumptions about what the remote side actually sends. The +easiest way to reconcile what the remote side sends with your +expectations is to use C or C. + +C allows you to see the data being sent from the remote +side before any translation is done, while C shows you +the results after translation. The translation includes converting +end of line characters, removing and responding to TELNET protocol +commands in the data stream. + +=head2 Style of Named Parameters + +Two different styles of named parameters are supported. This document +only shows the IO:: style: + + Net::Telnet->new(Timeout => 20); + +however the dash-option style is also allowed: + + Net::Telnet->new(-timeout => 20); + +=head2 Connecting to a Remote MS-Windows Machine + +By default MS-Windows doesn't come with a TELNET server. However +third party TELNET servers are available. Unfortunately many of these +servers falsely claim to be a TELNET server. This is especially true +of the so-called "Microsoft Telnet Server" that comes installed with +some newer versions MS-Windows. + +When a TELNET server first accepts a connection, it must use the ASCII +control characters carriage-return and line-feed to start a new line +(see RFC854). A server like the "Microsoft Telnet Server" that +doesn't do this, isn't a TELNET server. These servers send ANSI +terminal escape sequences to position to a column on a subsequent line +and to even position while writing characters that are adjacent to +each other. Worse, when sending output these servers resend +previously sent command output in a misguided attempt to display an +entire terminal screen. + +Connecting Net::Telnet to one of these false TELNET servers makes your +job of parsing command output very difficult. It's better to replace +a false TELNET server with a real TELNET server. The better TELNET +servers for MS-Windows allow you to avoid the ANSI escapes by turning +off something some of them call I. + + +=head1 METHODS + +In the calling sequences below, square brackets B<[]> represent +optional parameters. + +=over 4 + +=item B - create a new Net::Telnet object + + $obj = new Net::Telnet ([$host]); + + $obj = new Net::Telnet ([Binmode => $mode,] + [Cmd_remove_mode => $mode,] + [Dump_Log => $filename,] + [Errmode => $errmode,] + [Fhopen => $filehandle,] + [Host => $host,] + [Input_log => $file,] + [Input_record_separator => $chars,] + [Option_log => $file,] + [Ors => $chars,] + [Output_log => $file,] + [Output_record_separator => $chars,] + [Port => $port,] + [Prompt => $matchop,] + [Rs => $chars,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This is the constructor for Net::Telnet objects. A new object is +returned on success, the error mode action is performed on failure - +see C. The optional arguments are short-cuts to methods of +the same name. + +If the I<$host> argument is given then the object is opened by +connecting to TCP I<$port> on I<$host>. Also see C. The new +object returned is given the following defaults in the absence of +corresponding named parameters: + +=over 4 + +=item + +The default I is C<"localhost"> + +=item + +The default I is C<23> + +=item + +The default I is C<'/[\$%#E] $/'> + +=item + +The default I is C<10> + +=item + +The default I is C<"die"> + +=item + +The default I is C<"\n">. Note that I +is synonymous with I. + +=item + +The default I is C<"\n">. Note that I is +synonymous with I. + +=item + +The default I is C<0>, which means do newline translation. + +=item + +The default I is C<1>, which means respond to TELNET +commands in the data stream. + +=item + +The default I is C<"auto"> + +=item + +The defaults for I, I, I, and +I are C<"">, which means that logging is turned-off. + +=back + +=back + + +=over 4 + +=item B - toggle newline translation + + $mode = $obj->binmode; + + $prev = $obj->binmode($mode); + +This method controls whether or not sequences of carriage returns and +line feeds (CR LF or more specifically C<"\015\012">) are translated. +By default they are translated (i.e. binmode is C<0>). + +If no argument is given, the current mode is returned. + +If I<$mode> is C<1> then binmode is I and newline translation is +not done. + +If I<$mode> is C<0> then binmode is I and newline translation is +done. In the input stream, each sequence of CR LF is converted to +C<"\n"> and in the output stream, each occurrence of C<"\n"> is +converted to a sequence of CR LF. + +Note that input is always buffered. Changing binmode doesn't effect +what's already been read into the buffer. Output is not buffered and +changing binmode will have an immediate effect. + +=back + + +=over 4 + +=item B - send TELNET break character + + $ok = $obj->break; + +This method sends the TELNET break character. This character is +provided because it's a signal outside the ASCII character set which +is currently given local meaning within many systems. It's intended +to indicate that the Break Key or the Attention Key was hit. + +This method returns C<1> on success, or performs the error mode action +on failure. + +=back + + +=over 4 + +=item B - scalar reference to object's input buffer + + $ref = $obj->buffer; + +This method returns a scalar reference to the input buffer for +I<$obj>. Data in the input buffer is data that has been read from the +remote side but has yet to be read by the user. Modifications to the +input buffer are returned by a subsequent read. + +=back + + +=over 4 + +=item B - discard all data in object's input buffer + + $obj->buffer_empty; + +This method removes all data in the input buffer for I<$obj>. + +=back + + +=over 4 + +=item B - close object + + $ok = $obj->close; + +This method closes the socket, file, or pipe associated with the +object. It always returns a value of C<1>. + +=back + + +=over 4 + +=item B - issue command and retrieve output + + $ok = $obj->cmd($string); + $ok = $obj->cmd(String => $string, + [Output => $ref,] + [Cmd_remove_mode => $mode,] + [Errmode => $mode,] + [Input_record_separator => $chars,] + [Ors => $chars,] + [Output_record_separator => $chars,] + [Prompt => $match,] + [Rs => $chars,] + [Timeout => $secs,]); + + @output = $obj->cmd($string); + @output = $obj->cmd(String => $string, + [Output => $ref,] + [Cmd_remove_mode => $mode,] + [Errmode => $mode,] + [Input_record_separator => $chars,] + [Ors => $chars,] + [Output_record_separator => $chars,] + [Prompt => $match,] + [Rs => $chars,] + [Timeout => $secs,]); + +This method sends the command I<$string>, and reads the characters +sent back by the command up until and including the matching prompt. +It's assumed that the program to which you're sending is some kind of +command prompting interpreter such as a shell. + +The command I<$string> is automatically appended with the +output_record_separator, By default that's C<"\n">. This is similar +to someone typing a command and hitting the return key. Set the +output_record_separator to change this behavior. + +In a scalar context, the characters read from the remote side are +discarded and C<1> is returned on success. On time-out, eof, or other +failures, the error mode action is performed. See C. + +In a list context, just the output generated by the command is +returned, one line per element. In other words, all the characters in +between the echoed back command string and the prompt are returned. +If the command happens to return no output, a list containing one +element, the empty string is returned. This is so the list will +indicate true in a boolean context. On time-out, eof, or other +failures, the error mode action is performed. See C. + +The characters that matched the prompt may be retrieved using +C. + +Many command interpreters echo back the command sent. In most +situations, this method removes the first line returned from the +remote side (i.e. the echoed back command). See C +for more control over this feature. + +Use C to debug when this method keeps timing-out and you +don't think it should. + +Consider using a combination of C and C as an +alternative to this method when it doesn't do what you want, e.g. the +command you send prompts for input. + +The I named parameter provides an alternative method of +receiving command output. If you pass a scalar reference, all the +output (even if it contains multiple lines) is returned in the +referenced scalar. If you pass an array or hash reference, the lines +of output are returned in the referenced array or hash. You can use +C to change the notion of what separates a +line. + +Optional named parameters are provided to override the current +settings of cmd_remove_mode, errmode, input_record_separator, ors, +output_record_separator, prompt, rs, and timeout. Rs is synonymous +with input_record_separator and ors is synonymous with +output_record_separator. + +=back + + +=over 4 + +=item B - toggle removal of echoed commands + + $mode = $obj->cmd_remove_mode; + + $prev = $obj->cmd_remove_mode($mode); + +This method controls how to deal with echoed back commands in the +output returned by cmd(). Typically, when you send a command to the +remote side, the first line of output returned is the command echoed +back. Use this mode to remove the first line of output normally +returned by cmd(). + +If no argument is given, the current mode is returned. + +If I<$mode> is C<0> then the command output returned from cmd() has no +lines removed. If I<$mode> is a positive integer, then the first +I<$mode> lines of command output are stripped. + +By default, I<$mode> is set to C<"auto">. Auto means that whether or +not the first line of command output is stripped, depends on whether +or not the remote side offered to echo. By default, Net::Telnet +always accepts an offer to echo by the remote side. You can change +the default to reject such an offer using C. + +A warning is printed to STDERR when attempting to set this attribute +to something that's not C<"auto"> or a non-negative integer. + +=back + + +=over 4 + +=item B - log all I/O in dump format + + $fh = $obj->dump_log; + + $fh = $obj->dump_log($fh); + + $fh = $obj->dump_log($filename); + +This method starts or stops dump format logging of all the object's +input and output. The dump format shows the blocks read and written +in a hexadecimal and printable character format. This method is +useful when debugging, however you might want to first try +C as it's more readable. + +If no argument is given, the current log filehandle is returned. An +empty string indicates logging is off. + +To stop logging, use an empty string as an argument. + +If an open filehandle is given, it is used for logging and returned. +Otherwise, the argument is assumed to be the name of a file, the file +is opened and a filehandle to it is returned. If the file can't be +opened for writing, the error mode action is performed. + +=back + + +=over 4 + +=item B - end of file indicator + + $eof = $obj->eof; + +This method returns C<1> if end of file has been read, otherwise it +returns an empty string. Because the input is buffered this isn't the +same thing as I<$obj> has closed. In other words I<$obj> can be +closed but there still can be stuff in the buffer to be read. Under +this condition you can still read but you won't be able to write. + +=back + + +=over 4 + +=item B - define action to be performed on error + + $mode = $obj->errmode; + + $prev = $obj->errmode($mode); + +This method gets or sets the action used when errors are encountered +using the object. The first calling sequence returns the current +error mode. The second calling sequence sets it to I<$mode> and +returns the previous mode. Valid values for I<$mode> are C<"die"> +(the default), C<"return">, a I, or an I. + +When mode is C<"die"> and an error is encountered using the object, +then an error message is printed to standard error and the program +dies. + +When mode is C<"return"> then the method generating the error places +an error message in the object and returns an undefined value in a +scalar context and an empty list in list context. The error message +may be obtained using C. + +When mode is a I, then when an error is encountered +I is called with the error message as its first argument. +Using this mode you may have your own subroutine handle errors. If +I itself returns then the method generating the error returns +undefined or an empty list depending on context. + +When mode is an I, the first element of the array must be a +I. Any elements that follow are the arguments to I. +When an error is encountered, the I is called with its +arguments. Using this mode you may have your own subroutine handle +errors. If the I itself returns then the method generating +the error returns undefined or an empty list depending on context. + +A warning is printed to STDERR when attempting to set this attribute +to something that's not C<"die">, C<"return">, a I, or an +I whose first element isn't a I. + +=back + + +=over 4 + +=item B - most recent error message + + $msg = $obj->errmsg; + + $prev = $obj->errmsg(@msgs); + +The first calling sequence returns the error message associated with +the object. The empty string is returned if no error has been +encountered yet. The second calling sequence sets the error message +for the object to the concatenation of I<@msgs> and returns the +previous error message. Normally, error messages are set internally +by a method when an error is encountered. + +=back + + +=over 4 + +=item B - perform the error mode action + + $obj->error(@msgs); + +This method concatenates I<@msgs> into a string and places it in the +object as the error message. Also see C. It then performs +the error mode action. Also see C. + +If the error mode doesn't cause the program to die, then an undefined +value or an empty list is returned depending on the context. + +This method is primarily used by this class or a sub-class to perform +the user requested action when an error is encountered. + +=back + + +=over 4 + +=item B - use already open filehandle for I/O + + $ok = $obj->fhopen($fh); + +This method associates the open filehandle I<$fh> with I<$obj> for +further I/O. Filehandle I<$fh> must already be opened. + +Suppose you want to use the features of this module to do I/O to +something other than a TCP port, for example STDIN or a filehandle +opened to read from a process. Instead of opening the object for I/O +to a TCP port by using C or C, call this method +instead. + +The value C<1> is returned success, the error mode action is performed +on failure. + +=back + + +=over 4 + +=item B - read block of data + + $data = $obj->get([Binmode => $mode,] + [Errmode => $errmode,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This method reads a block of data from the object and returns it along +with any buffered data. If no buffered data is available to return, +it will wait for data to read using the timeout specified in the +object. You can override that timeout using I<$secs>. Also see +C. If buffered data is available to return, it also checks +for a block of data that can be immediately read. + +On eof an undefined value is returned. On time-out or other failures, +the error mode action is performed. To distinguish between eof or an +error occurring when the error mode is not set to C<"die">, use +C. + +Optional named parameters are provided to override the current +settings of binmode, errmode, telnetmode, and timeout. + +=back + + +=over 4 + +=item B - read next line + + $line = $obj->getline([Binmode => $mode,] + [Errmode => $errmode,] + [Input_record_separator => $chars,] + [Rs => $chars,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This method reads and returns the next line of data from the object. +You can use C to change the notion of what +separates a line. The default is C<"\n">. If a line isn't +immediately available, this method blocks waiting for a line or a +time-out. + +On eof an undefined value is returned. On time-out or other failures, +the error mode action is performed. To distinguish between eof or an +error occurring when the error mode is not set to C<"die">, use +C. + +Optional named parameters are provided to override the current +settings of binmode, errmode, input_record_separator, rs, telnetmode, +and timeout. Rs is synonymous with input_record_separator. + +=back + + +=over 4 + +=item B - read next lines + + @lines = $obj->getlines([Binmode => $mode,] + [Errmode => $errmode,] + [Input_record_separator => $chars,] + [Rs => $chars,] + [Telnetmode => $mode,] + [Timeout => $secs,] + [All => $boolean,]); + +This method reads and returns all the lines of data from the object +until end of file is read. You can use C to +change the notion of what separates a line. The default is C<"\n">. +A time-out error occurs if all the lines can't be read within the +time-out interval. See C. + +The behavior of this method was changed in version 3.03. Prior to +version 3.03 this method returned just the lines available from the +next read. To get that old behavior, use the optional named parameter +I and set I<$boolean> to C<""> or C<0>. + +If only eof is read then an empty list is returned. On time-out or +other failures, the error mode action is performed. Use C to +distinguish between reading only eof or an error occurring when the +error mode is not set to C<"die">. + +Optional named parameters are provided to override the current +settings of binmode, errmode, input_record_separator, rs, telnetmode, +and timeout. Rs is synonymous with input_record_separator. + +=back + + +=over 4 + +=item B - name of remote host + + $host = $obj->host; + + $prev = $obj->host($host); + +This method designates the remote host for C. With no +argument it returns the current host name set in the object. With an +argument it sets the current host name to I<$host> and returns the +previous host name. You may indicate the remote host using either a +hostname or an IP address. + +The default value is C<"localhost">. It may also be set by C +or C. + +=back + + +=over 4 + +=item B - log all input + + $fh = $obj->input_log; + + $fh = $obj->input_log($fh); + + $fh = $obj->input_log($filename); + +This method starts or stops logging of input. This is useful when +debugging. Also see C. Because most command interpreters +echo back commands received, it's likely all your output will also be +in this log. Note that input logging occurs after newline +translation. See C for details on newline translation. + +If no argument is given, the log filehandle is returned. An empty +string indicates logging is off. + +To stop logging, use an empty string as an argument. + +If an open filehandle is given, it is used for logging and returned. +Otherwise, the argument is assumed to be the name of a file, the file +is opened for logging and a filehandle to it is returned. If the file +can't be opened for writing, the error mode action is performed. + +=back + + +=over 4 + +=item B - input line delimiter + + $chars = $obj->input_record_separator; + + $prev = $obj->input_record_separator($chars); + +This method designates the line delimiter for input. It's used with +C, C, and C to determine lines in the +input. + +With no argument this method returns the current input record +separator set in the object. With an argument it sets the input +record separator to I<$chars> and returns the previous value. Note +that I<$chars> must have length. + +A warning is printed to STDERR when attempting to set this attribute +to a string with no length. + +=back + + +=over 4 + +=item B - last prompt read + + $string = $obj->last_prompt; + + $prev = $obj->last_prompt($string); + +With no argument this method returns the last prompt read by cmd() or +login(). See C. With an argument it sets the last prompt +read to I<$string> and returns the previous value. Normally, only +internal methods set the last prompt. + +=back + + +=over 4 + +=item B - last line read + + $line = $obj->lastline; + + $prev = $obj->lastline($line); + +This method retrieves the last line read from the object. This may be +a useful error message when the remote side abnormally closes the +connection. Typically the remote side will print an error message +before closing. + +With no argument this method returns the last line read from the +object. With an argument it sets the last line read to I<$line> and +returns the previous value. Normally, only internal methods set the +last line. + +=back + + +=over 4 + +=item B - perform standard login + + $ok = $obj->login($username, $password); + + $ok = $obj->login(Name => $username, + Password => $password, + [Errmode => $mode,] + [Prompt => $match,] + [Timeout => $secs,]); + +This method performs a standard login by waiting for a login prompt +and responding with I<$username>, then waiting for the password prompt +and responding with I<$password>, and then waiting for the command +interpreter prompt. If any of those prompts sent by the remote side +don't match what's expected, this method will time-out, unless timeout +is turned off. + +Login prompt must match either of these case insensitive patterns: + + /login[: ]*$/i + /username[: ]*$/i + +Password prompt must match this case insensitive pattern: + + /password[: ]*$/i + +The command interpreter prompt must match the current setting of +prompt. See C. + +Use C to debug when this method keeps timing-out and you +don't think it should. + +Consider using a combination of C and C as an +alternative to this method when it doesn't do what you want, e.g. the +remote host doesn't prompt for a username. + +On success, C<1> is returned. On time out, eof, or other failures, +the error mode action is performed. See C. + +Optional named parameters are provided to override the current +settings of errmode, prompt, and timeout. + +=back + + +=over 4 + +=item B - maximum size of input buffer + + $len = $obj->max_buffer_length; + + $prev = $obj->max_buffer_length($len); + +This method designates the maximum size of the input buffer. An error +is generated when a read causes the buffer to exceed this limit. The +default value is 1,048,576 bytes (1MB). The input buffer can grow +much larger than the block size when you continuously read using +C or C and the data stream contains no newlines +or matching waitfor patterns. + +With no argument, this method returns the current maximum buffer +length set in the object. With an argument it sets the maximum buffer +length to I<$len> and returns the previous value. Values of I<$len> +smaller than 512 will be adjusted to 512. + +A warning is printed to STDERR when attempting to set this attribute +to something that isn't a positive integer. + +=back + + +=over 4 + +=item B - field separator for print + + $chars = $obj->ofs + + $prev = $obj->ofs($chars); + +This method is synonymous with C. + +=back + + +=over 4 + +=item B - connect to port on remote host + + $ok = $obj->open($host); + + $ok = $obj->open([Host => $host,] + [Port => $port,] + [Errmode => $mode,] + [Timeout => $secs,]); + +This method opens a TCP connection to I<$port> on I<$host>. If either +argument is missing then the current value of C or C +is used. Optional named parameters are provided to override the +current setting of errmode and timeout. + +On success C<1> is returned. On time-out or other connection +failures, the error mode action is performed. See C. + +Time-outs don't work for this method on machines that don't implement +SIGALRM - most notably MS-Windows machines. For those machines, an +error is returned when the system reaches its own time-out while +trying to connect. + +A side effect of this method is to reset the alarm interval associated +with SIGALRM. + +=back + + +=over 4 + +=item B - indicate willingness to accept a TELNET option + + $fh = $obj->option_accept([Do => $telopt,] + [Dont => $telopt,] + [Will => $telopt,] + [Wont => $telopt,]); + +This method is used to indicate whether to accept or reject an offer +to enable a TELNET option made by the remote side. If you're using +I or I to indicate a willingness to enable, then a +notification callback must have already been defined by a prior call +to C. See C for details on +receiving enable/disable notification of a TELNET option. + +You can give multiple I, I, I, or I arguments +for different TELNET options in the same call to this method. + +The following example describes the meaning of the named parameters. +A TELNET option, such as C used below, is an integer +constant that you can import from Net::Telnet. See the source in file +Telnet.pm for the complete list. + +=over 4 + +=item + +I => C + +=over 4 + +=item + +we'll accept an offer to enable the echo option on the local side + +=back + +=item + +I => C + +=over 4 + +=item + +we'll reject an offer to enable the echo option on the local side + +=back + +=item + +I => C + +=over 4 + +=item + +we'll accept an offer to enable the echo option on the remote side + +=back + +=item + +I => C + +=over 4 + +=item + +we'll reject an offer to enable the echo option on the remote side + +=back + +=back + +=item + +Use C to send a request to the remote side to enable or +disable a particular TELNET option. + +=back + + +=over 4 + +=item B - define the option negotiation callback + + $coderef = $obj->option_callback; + + $prev = $obj->option_callback($coderef); + +This method defines the callback subroutine that's called when a +TELNET option is enabled or disabled. Once defined, the +I may not be undefined. However, calling this method +with a different I<$coderef> changes it. + +A warning is printed to STDERR when attempting to set this attribute +to something that isn't a coderef. + +Here are the circumstances that invoke I<$coderef>: + +=over 4 + +=item + +An option becomes enabled because the remote side requested an enable +and C had been used to arrange that it be accepted. + +=item + +The remote side arbitrarily decides to disable an option that is +currently enabled. Note that Net::Telnet always accepts a request to +disable from the remote side. + +=item + +C was used to send a request to enable or disable an +option and the response from the remote side has just been received. +Note, that if a request to enable is rejected then I<$coderef> is +still invoked even though the option didn't change. + +=back + +=item + +Here are the arguments passed to I<&$coderef>: + + &$coderef($obj, $option, $is_remote, + $is_enabled, $was_enabled, $buf_position); + +=over 4 + +=item + +1. I<$obj> is the Net::Telnet object + +=item + +2. I<$option> is the TELNET option. Net::Telnet exports constants +for the various TELNET options which just equate to an integer. + +=item + +3. I<$is_remote> is a boolean indicating for which side the option +applies. + +=item + +4. I<$is_enabled> is a boolean indicating the option is enabled or +disabled + +=item + +5. I<$was_enabled> is a boolean indicating the option was previously +enabled or disabled + +=item + +6. I<$buf_position> is an integer indicating the position in the +object's input buffer where the option takes effect. See C +to access the object's input buffer. + +=back + +=back + + +=over 4 + +=item B - log all TELNET options sent or received + + $fh = $obj->option_log; + + $fh = $obj->option_log($fh); + + $fh = $obj->option_log($filename); + +This method starts or stops logging of all TELNET options being sent +or received. This is useful for debugging when you send options via +C or you arrange to accept option requests from the +remote side via C. Also see C. + +If no argument is given, the log filehandle is returned. An empty +string indicates logging is off. + +To stop logging, use an empty string as an argument. + +If an open filehandle is given, it is used for logging and returned. +Otherwise, the argument is assumed to be the name of a file, the file +is opened for logging and a filehandle to it is returned. If the file +can't be opened for writing, the error mode action is performed. + +=back + + +=over 4 + +=item B - send TELNET option negotiation request + + $ok = $obj->option_send([Do => $telopt,] + [Dont => $telopt,] + [Will => $telopt,] + [Wont => $telopt,] + [Async => $boolean,]); + +This method is not yet implemented. Look for it in a future version. + +=back + + +=over 4 + +=item B - get current state of a TELNET option + + $hashref = $obj->option_state($telopt); + +This method returns a hashref containing a copy of the current state +of TELNET option I<$telopt>. + +Here are the values returned in the hash: + +=over 4 + +=item + +I<$hashref>->{remote_enabled} + +=over 4 + +=item + +boolean that indicates if the option is enabled on the remote side. + +=back + +=item + +I<$hashref>->{remote_enable_ok} + +=over 4 + +=item + +boolean that indicates if it's ok to accept an offer to enable this +option on the remote side. + +=back + +=item + +I<$hashref>->{remote_state} + +=over 4 + +=item + +string used to hold the internal state of option negotiation for this +option on the remote side. + +=back + +=item + +I<$hashref>->{local_enabled} + +=over 4 + +=item + +boolean that indicates if the option is enabled on the local side. + +=back + +=item + +I<$hashref>->{local_enable_ok} + +=over 4 + +=item + +boolean that indicates if it's ok to accept an offer to enable this +option on the local side. + +=back + +=item + +I<$hashref>->{local_state} + +=over 4 + +=item + +string used to hold the internal state of option negotiation for this +option on the local side. + +=back + +=back + +=back + + +=over 4 + +=item B - output line delimiter + + $chars = $obj->ors; + + $prev = $obj->ors($chars); + +This method is synonymous with C. + +=back + + +=over 4 + +=item B - field separator for print + + $chars = $obj->output_field_separator; + + $prev = $obj->output_field_separator($chars); + +This method designates the output field separator for C. +Ordinarily the print method simply prints out the comma separated +fields you specify. Set this to specify what's printed between +fields. + +With no argument this method returns the current output field +separator set in the object. With an argument it sets the output +field separator to I<$chars> and returns the previous value. + +By default it's set to an empty string. + +=back + + +=over 4 + +=item B - log all output + + $fh = $obj->output_log; + + $fh = $obj->output_log($fh); + + $fh = $obj->output_log($filename); + +This method starts or stops logging of output. This is useful when +debugging. Also see C. Because most command interpreters +echo back commands received, it's likely all your output would also be +in an input log. See C. Note that output logging occurs +before newline translation. See C for details on newline +translation. + +If no argument is given, the log filehandle is returned. An empty +string indicates logging is off. + +To stop logging, use an empty string as an argument. + +If an open filehandle is given, it is used for logging and returned. +Otherwise, the argument is assumed to be the name of a file, the file +is opened for logging and a filehandle to it is returned. If the file +can't be opened for writing, the error mode action is performed. + +=back + + +=over 4 + +=item B - output line delimiter + + $chars = $obj->output_record_separator; + + $prev = $obj->output_record_separator($chars); + +This method designates the output line delimiter for C and +C. Set this to specify what's printed at the end of C +and C. + +The output record separator is set to C<"\n"> by default, so there's +no need to append all your commands with a newline. To avoid printing +the output_record_separator use C or set the +output_record_separator to an empty string. + +With no argument this method returns the current output record +separator set in the object. With an argument it sets the output +record separator to I<$chars> and returns the previous value. + +=back + + +=over 4 + +=item B - remote port + + $port = $obj->port; + + $prev = $obj->port($port); + +This method designates the remote TCP port. With no argument this +method returns the current port number. With an argument it sets the +current port number to I<$port> and returns the previous port. If +I<$port> is a TCP service name, then it's first converted to a port +number using the perl function C. + +The default value is C<23>. It may also be set by C or +C. + +A warning is printed to STDERR when attempting to set this attribute +to something that's not a positive integer or a valid TCP service +name. + +=back + + +=over 4 + +=item B - write to object + + $ok = $obj->print(@list); + +This method writes I<@list> followed by the I +to the open object and returns C<1> if all data was successfully +written. On time-out or other failures, the error mode action is +performed. See C. + +By default, the C is set to C<"\n"> so all +your commands automatically end with a newline. In most cases your +output is being read by a command interpreter which won't accept a +command until newline is read. This is similar to someone typing a +command and hitting the return key. To avoid printing a trailing +C<"\n"> use C instead or set the output_record_separator to an +empty string. + +On failure, it's possible that some data was written. If you choose +to try and recover from a print timing-out, use C to +determine how much was written before the error occurred. + +You may also use the output field separator to print a string between +the list elements. See C. + +=back + + +=over 4 + +=item B - number of bytes written by print + + $num = $obj->print_length; + +This returns the number of bytes successfully written by the most +recent C or C. + +=back + + +=over 4 + +=item B - pattern to match a prompt + + $matchop = $obj->prompt; + + $prev = $obj->prompt($matchop); + +This method sets the pattern used to find a prompt in the input +stream. It must be a string representing a valid perl pattern match +operator. The methods C and C try to read until +matching the prompt. They will fail with a time-out error if the +pattern you've chosen doesn't match what the remote side sends. + +With no argument this method returns the prompt set in the object. +With an argument it sets the prompt to I<$matchop> and returns the +previous value. + +The default prompt is C<'/[\$%#E] $/'> + +Always use single quotes, instead of double quotes, to construct +I<$matchop> (e.g. C<'/bash\$ $/'>). If you're constructing a DOS like +file path, you'll need to use four backslashes to represent one +(e.g. C<'/c:\\\\users\\\\billE$/i'>). + +Of course don't forget about regexp metacharacters like C<.>, C<[>, or +C<$>. You'll only need a single backslash to quote them. The anchor +metacharacters C<^> and C<$> refer to positions in the input buffer. + +A warning is printed to STDERR when attempting to set this attribute +with a match operator missing its opening delimiter. + +=back + + +=over 4 + +=item B - write to object + + $ok = $obj->put($string); + + $ok = $obj->put(String => $string, + [Binmode => $mode,] + [Errmode => $errmode,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This method writes I<$string> to the opened object and returns C<1> if +all data was successfully written. This method is like C +except that it doesn't write the trailing output_record_separator +("\n" by default). On time-out or other failures, the error mode +action is performed. See C. + +On failure, it's possible that some data was written. If you choose +to try and recover from a put timing-out, use C to +determine how much was written before the error occurred. + +Optional named parameters are provided to override the current +settings of binmode, errmode, telnetmode, and timeout. + +=back + + +=over 4 + +=item B - input line delimiter + + $chars = $obj->rs; + + $prev = $obj->rs($chars); + +This method is synonymous with C. + +=back + + +=over 4 + +=item B - turn off/on telnet command interpretation + + $mode = $obj->telnetmode; + + $prev = $obj->telnetmode($mode); + +This method controls whether or not TELNET commands in the data stream +are recognized and handled. The TELNET protocol uses certain +character sequences sent in the data stream to control the session. +If the port you're connecting to isn't using the TELNET protocol, then +you should turn this mode off. The default is I. + +If no argument is given, the current mode is returned. + +If I<$mode> is C<0> then telnet mode is off. If I<$mode> is C<1> then +telnet mode is on. + +=back + + +=over 4 + +=item B - time-out indicator + + $boolean = $obj->timed_out; + + $prev = $obj->timed_out($boolean); + +This method indicates if a previous read, write, or open method +timed-out. Remember that timing-out is itself an error. To be able +to invoke C after a time-out error, you'd have to change +the default error mode to something other than C<"die">. See +C. + +With no argument this method returns C<1> if the previous method +timed-out. With an argument it sets the indicator. Normally, only +internal methods set this indicator. + +=back + + +=over 4 + +=item B - I/O time-out interval + + $secs = $obj->timeout; + + $prev = $obj->timeout($secs); + +This method sets the timeout interval that's used when performing I/O +or connecting to a port. When a method doesn't complete within the +timeout interval then it's an error and the error mode action is +performed. + +A timeout may be expressed as a relative or absolute value. If +I<$secs> is greater than or equal to the time the program started, as +determined by $^T, then it's an absolute time value for when time-out +occurs. The perl function C may be used to obtain an absolute +time value. For a relative time-out value less than $^T, time-out +happens I<$secs> from when the method begins. + +If I<$secs> is C<0> then time-out occurs if the data cannot be +immediately read or written. Use the undefined value to turn off +timing-out completely. + +With no argument this method returns the timeout set in the object. +With an argument it sets the timeout to I<$secs> and returns the +previous value. The default timeout value is C<10> seconds. + +A warning is printed to STDERR when attempting to set this attribute +to something that's not an C or a non-negative integer. + +=back + + +=over 4 + +=item B - wait for pattern in the input + + $ok = $obj->waitfor($matchop); + $ok = $obj->waitfor([Match => $matchop,] + [String => $string,] + [Binmode => $mode,] + [Errmode => $errmode,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + + ($prematch, $match) = $obj->waitfor($matchop); + ($prematch, $match) = $obj->waitfor([Match => $matchop,] + [String => $string,] + [Binmode => $mode,] + [Errmode => $errmode,] + [Telnetmode => $mode,] + [Timeout => $secs,]); + +This method reads until a pattern match or string is found in the +input stream. All the characters before and including the match are +removed from the input stream. + +In a list context the characters before the match and the matched +characters are returned in I<$prematch> and I<$match>. In a scalar +context, the matched characters and all characters before it are +discarded and C<1> is returned on success. On time-out, eof, or other +failures, for both list and scalar context, the error mode action is +performed. See C. + +You can specify more than one pattern or string by simply providing +multiple I and/or I named parameters. A I<$matchop> +must be a string representing a valid Perl pattern match operator. +The I<$string> is just a substring to find in the input stream. + +Use C to debug when this method keeps timing-out and you +don't think it should. + +An optional named parameter is provided to override the current +setting of timeout. + +To avoid unexpected backslash interpretation, always use single quotes +instead of double quotes to construct a match operator argument for +C and C (e.g. C<'/bash\$ $/'>). If you're +constructing a DOS like file path, you'll need to use four backslashes +to represent one (e.g. C<'/c:\\\\users\\\\billE$/i'>). + +Of course don't forget about regexp metacharacters like C<.>, C<[>, or +C<$>. You'll only need a single backslash to quote them. The anchor +metacharacters C<^> and C<$> refer to positions in the input buffer. + +Optional named parameters are provided to override the current +settings of binmode, errmode, telnetmode, and timeout. + +=back + + +=head1 SEE ALSO + +=over 2 + +=item RFC 854 + +S + +S + +=item RFC 1143 + +S + +S + +=item TELNET Option Assignments + +S + +=back + + +=head1 EXAMPLES + +This example gets the current weather forecast for Brainerd, Minnesota. + + my ($forecast, $t); + + use Net::Telnet (); + $t = new Net::Telnet; + $t->open("rainmaker.wunderground.com"); + + ## Wait for first prompt and "hit return". + $t->waitfor('/continue:.*$/'); + $t->print(""); + + ## Wait for second prompt and respond with city code. + $t->waitfor('/city code.*$/'); + $t->print("BRD"); + + ## Read and print the first page of forecast. + ($forecast) = $t->waitfor('/[ \t]+press return to continue/i'); + print $forecast; + + exit; + + +This example checks a POP server to see if you have mail. + + my ($hostname, $line, $passwd, $pop, $username); + + $hostname = "your_destination_host_here"; + $username = "your_username_here"; + $passwd = "your_password_here"; + + use Net::Telnet (); + $pop = new Net::Telnet (Telnetmode => 0); + $pop->open(Host => $hostname, + Port => 110); + + + ## Read connection message. + $line = $pop->getline; + die $line unless $line =~ /^\+OK/; + + ## Send user name. + $pop->print("user $username"); + $line = $pop->getline; + die $line unless $line =~ /^\+OK/; + + ## Send password. + $pop->print("pass $passwd"); + $line = $pop->getline; + die $line unless $line =~ /^\+OK/; + + ## Request status of messages. + $pop->print("list"); + $line = $pop->getline; + print $line; + + exit; + + +Here's an example that uses the ssh program to connect to a remote +host. Because the ssh program reads and writes to its controlling +terminal, the IO::Pty module is used to create a new pseudo terminal +for use by ssh. A new Net::Telnet object is then created to read and +write to that pseudo terminal. To use the code below, substitute +"changeme" with the actual host, user, password, and command prompt. + + ## Main program. + { + my ($pty, $ssh, @lines); + my $host = "changeme"; + my $user = "changeme"; + my $password = "changeme"; + my $prompt = '/changeme:~> $/'; + + ## Start ssh program. + $pty = &spawn("ssh", "-l", $user, $host); # spawn() defined below + + ## Create a Net::Telnet object to perform I/O on ssh's tty. + use Net::Telnet; + $ssh = new Net::Telnet (-fhopen => $pty, + -prompt => $prompt, + -telnetmode => 0, + -cmd_remove_mode => 1, + -output_record_separator => "\r"); + + ## Login to remote host. + $ssh->waitfor(-match => '/password: ?$/i', + -errmode => "return") + or die "problem connecting to host: ", $ssh->lastline; + $ssh->print($password); + $ssh->waitfor(-match => $ssh->prompt, + -errmode => "return") + or die "login failed: ", $ssh->lastline; + + ## Send command, get and print its output. + @lines = $ssh->cmd("who"); + print @lines; + + exit; + } # end main program + + sub spawn { + my(@cmd) = @_; + my($pid, $pty, $tty, $tty_fd); + + ## Create a new pseudo terminal. + use IO::Pty (); + $pty = new IO::Pty + or die $!; + + ## Execute the program in another process. + unless ($pid = fork) { # child process + die "problem spawning program: $!\n" unless defined $pid; + + ## Disassociate process from existing controlling terminal. + use POSIX (); + POSIX::setsid + or die "setsid failed: $!"; + + ## Associate process with a new controlling terminal. + $tty = $pty->slave; + $tty_fd = $tty->fileno; + close $pty; + + ## Make stdio use the new controlling terminal. + open STDIN, "<&$tty_fd" or die $!; + open STDOUT, ">&$tty_fd" or die $!; + open STDERR, ">&STDOUT" or die $!; + close $tty; + + ## Execute requested program. + exec @cmd + or die "problem executing $cmd[0]\n"; + } # end child process + + $pty; + } # end sub spawn + + +Here's an example that changes a user's login password. Because the +passwd program always prompts for passwords on its controlling +terminal, the IO::Pty module is used to create a new pseudo terminal +for use by passwd. A new Net::Telnet object is then created to read +and write to that pseudo terminal. To use the code below, substitute +"changeme" with the actual old and new passwords. + + my ($pty, $passwd); + my $oldpw = "changeme"; + my $newpw = "changeme"; + + ## Start passwd program. + $pty = &spawn("passwd"); # spawn() defined above + + ## Create a Net::Telnet object to perform I/O on passwd's tty. + use Net::Telnet; + $passwd = new Net::Telnet (-fhopen => $pty, + -timeout => 2, + -output_record_separator => "\r", + -telnetmode => 0, + -cmd_remove_mode => 1); + $passwd->errmode("return"); + + ## Send existing password. + $passwd->waitfor('/password: ?$/i') + or die "no old password prompt: ", $passwd->lastline; + $passwd->print($oldpw); + + ## Send new password. + $passwd->waitfor('/new password: ?$/i') + or die "bad old password: ", $passwd->lastline; + $passwd->print($newpw); + + ## Send new password verification. + $passwd->waitfor('/new password: ?$/i') + or die "bad new password: ", $passwd->lastline; + $passwd->print($newpw); + + ## Display success or failure. + $passwd->waitfor('/changed/') + or die "bad new password: ", $passwd->lastline; + print $passwd->lastline; + + $passwd->close; + exit; + + +Here's an example you can use to down load a file of any type. The +file is read from the remote host's standard output using cat. To +prevent any output processing, the remote host's standard output is +put in raw mode using the Bourne shell. The Bourne shell is used +because some shells, notably tcsh, prevent changing tty modes. Upon +completion, FTP style statistics are printed to stderr. + + my ($block, $filename, $host, $hostname, $k_per_sec, $line, + $num_read, $passwd, $prevblock, $prompt, $size, $size_bsd, + $size_sysv, $start_time, $total_time, $username); + + $hostname = "your_destination_host_here"; + $username = "your_username_here"; + $passwd = "your_password_here"; + $filename = "your_download_file_here"; + + ## Connect and login. + use Net::Telnet (); + $host = new Net::Telnet (Timeout => 30, + Prompt => '/[%#>] $/'); + $host->open($hostname); + $host->login($username, $passwd); + + ## Make sure prompt won't match anything in send data. + $prompt = "_funkyPrompt_"; + $host->prompt("/$prompt\$/"); + $host->cmd("set prompt = '$prompt'"); + + ## Get size of file. + ($line) = $host->cmd("/bin/ls -l $filename"); + ($size_bsd, $size_sysv) = (split ' ', $line)[3,4]; + if ($size_sysv =~ /^\d+$/) { + $size = $size_sysv; + } + elsif ($size_bsd =~ /^\d+$/) { + $size = $size_bsd; + } + else { + die "$filename: no such file on $hostname"; + } + + ## Start sending the file. + binmode STDOUT; + $host->binmode(1); + $host->print("/bin/sh -c 'stty raw; cat $filename'"); + $host->getline; # discard echoed back line + + ## Read file a block at a time. + $num_read = 0; + $prevblock = ""; + $start_time = time; + while (($block = $host->get) and ($block !~ /$prompt$/o)) { + if (length $block >= length $prompt) { + print $prevblock; + $num_read += length $prevblock; + $prevblock = $block; + } + else { + $prevblock .= $block; + } + + } + $host->close; + + ## Print last block without trailing prompt. + $prevblock .= $block; + $prevblock =~ s/$prompt$//; + print $prevblock; + $num_read += length $prevblock; + die "error: expected size $size, received size $num_read\n" + unless $num_read == $size; + + ## Print totals. + $total_time = (time - $start_time) || 1; + $k_per_sec = ($size / 1024) / $total_time; + $k_per_sec = sprintf "%3.1f", $k_per_sec; + warn("$num_read bytes received in $total_time seconds ", + "($k_per_sec Kbytes/s)\n"); + + exit; + + +=head1 AUTHOR + +Jay Rogers + + +=head1 COPYRIGHT + +Copyright 1997, 2000, 2002 by Jay Rogers. All rights reserved. +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. diff --git a/agc_2-X/branches/agc_2.2.0/extras/Time/HiRes.1.55.pm b/agc_2-X/branches/agc_2.2.0/extras/Time/HiRes.1.55.pm new file mode 100644 index 00000000..f0bd2008 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Time/HiRes.1.55.pm @@ -0,0 +1,351 @@ +package Time::HiRes; + +use strict; +use vars qw($VERSION $XS_VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD); + +require Exporter; +require DynaLoader; + +@ISA = qw(Exporter DynaLoader); + +@EXPORT = qw( ); +@EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval + getitimer setitimer + ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF + d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer + d_nanosleep); + +$VERSION = '1.55'; +$XS_VERSION = $VERSION; +$VERSION = eval $VERSION; + +sub AUTOLOAD { + my $constname; + ($constname = $AUTOLOAD) =~ s/.*:://; + die "&Time::HiRes::constant not defined" if $constname eq 'constant'; + my ($error, $val) = constant($constname); + if ($error) { die $error; } + { + no strict 'refs'; + *$AUTOLOAD = sub { $val }; + } + goto &$AUTOLOAD; +} + +bootstrap Time::HiRes; + +# Preloaded methods go here. + +sub tv_interval { + # probably could have been done in C + my ($a, $b) = @_; + $b = [gettimeofday()] unless defined($b); + (${$b}[0] - ${$a}[0]) + ((${$b}[1] - ${$a}[1]) / 1_000_000); +} + +# Autoload methods go after =cut, and are processed by the autosplit program. + +1; +__END__ + +=head1 NAME + +Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers + +=head1 SYNOPSIS + + use Time::HiRes qw( usleep ualarm gettimeofday tv_interval ); + + usleep ($microseconds); + + ualarm ($microseconds); + ualarm ($microseconds, $interval_microseconds); + + $t0 = [gettimeofday]; + ($seconds, $microseconds) = gettimeofday; + + $elapsed = tv_interval ( $t0, [$seconds, $microseconds]); + $elapsed = tv_interval ( $t0, [gettimeofday]); + $elapsed = tv_interval ( $t0 ); + + use Time::HiRes qw ( time alarm sleep ); + + $now_fractions = time; + sleep ($floating_seconds); + alarm ($floating_seconds); + alarm ($floating_seconds, $floating_interval); + + use Time::HiRes qw( setitimer getitimer + ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF ); + + setitimer ($which, $floating_seconds, $floating_interval ); + getitimer ($which); + +=head1 DESCRIPTION + +The C module implements a Perl interface to the C, +C, C, and C/C system calls, in other +words, high resolution time and timers. See the L section below +and the test scripts for usage; see your system documentation for the +description of the underlying C or C, C, +C, and C/C calls. + +If your system lacks C or an emulation of it you don't +get C or the one-argument form of C. If your system lacks all of +C, C, and C, you don't get +C or C. If your system lacks both +C and C you don't get +C or C. + +If you try to import an unimplemented function in the C statement +it will fail at compile time. + +If your subsecond sleeping is implemented with C instead of +C, you can mix subsecond sleeping with signals since +C does not use signals. This, however is unportable, and you +should first check for the truth value of C<&Time::HiRes::d_nanosleep> to +see whether you have nanosleep, and then carefully read your +C C API documentation for any peculiarities. (There is no +separate interface to call C; just use C +or C with small enough values.) + +Unless using C for mixing sleeping with signals, give +some thought to whether Perl is the tool you should be using for work +requiring nanosecond accuracies. + +The following functions can be imported from this module. +No functions are exported by default. + +=over 4 + +=item gettimeofday () + +In array context returns a two-element array with the seconds and +microseconds since the epoch. In scalar context returns floating +seconds like C (see below). + +=item usleep ( $useconds ) + +Sleeps for the number of microseconds specified. Returns the number +of microseconds actually slept. Can sleep for more than one second, +unlike the C system call. See also C below. + +=item ualarm ( $useconds [, $interval_useconds ] ) + +Issues a C call; the C<$interval_useconds> is optional and +will be zero if unspecified, resulting in C-like behaviour. + +=item tv_interval + +tv_interval ( $ref_to_gettimeofday [, $ref_to_later_gettimeofday] ) + +Returns the floating seconds between the two times, which should have +been returned by C. If the second argument is omitted, +then the current time is used. + +=item time () + +Returns a floating seconds since the epoch. This function can be +imported, resulting in a nice drop-in replacement for the C below. + +B: This higher resolution timer can return values either less +or more than the core C, depending on whether your platform +rounds the higher resolution timer values up, down, or to the nearest second +to get the core C, but naturally the difference should be never +more than half a second. + +B: Since Sunday, September 9th, 2001 at 01:46:40 AM GMT, when +the C seconds since epoch rolled over to 1_000_000_000, the +default floating point format of Perl and the seconds since epoch have +conspired to produce an apparent bug: if you print the value of +C you seem to be getting only five decimals, not six +as promised (microseconds). Not to worry, the microseconds are there +(assuming your platform supports such granularity in first place). +What is going on is that the default floating point format of Perl +only outputs 15 digits. In this case that means ten digits before the +decimal separator and five after. To see the microseconds you can use +either C/C with C<"%.6f">, or the C function in +list context, which will give you the seconds and microseconds as two +separate values. + +=item sleep ( $floating_seconds ) + +Sleeps for the specified amount of seconds. Returns the number of +seconds actually slept (a floating point value). This function can be +imported, resulting in a nice drop-in replacement for the C +provided with perl, see the L below. + +=item alarm ( $floating_seconds [, $interval_floating_seconds ] ) + +The C signal is sent after the specified number of seconds. +Implemented using C. The C<$interval_floating_seconds> argument +is optional and will be zero if unspecified, resulting in C-like +behaviour. This function can be imported, resulting in a nice drop-in +replacement for the C provided with perl, see the L below. + +B: With some operating system and Perl release combinations +C restarts C, instead of interuping it. +This means that an C followed by a C +may together take the sum of the times specified for the the +C and the C, not just the time of the C. + +=item setitimer ( $which, $floating_seconds [, $interval_floating_seconds ] ) + +Start up an interval timer: after a certain time, a signal arrives, +and more signals may keep arriving at certain intervals. To disable a +timer, use C<$floating_seconds> of zero. If the C<$interval_floating_seconds> +is set to zero (or unspecified), the timer is disabled B the +next delivered signal. + +Use of interval timers may interfere with C, C, +and C. In standard-speak the "interaction is unspecified", +which means that I may happen: it may work, it may not. + +In scalar context, the remaining time in the timer is returned. + +In list context, both the remaining time and the interval are returned. + +There are usually three or four interval timers available: the C<$which> +can be C, C, C, or C. +Note that which ones are available depends: true UNIX platforms usually +have the first three, but (for example) Win32 and Cygwin have only +C, and only Solaris seems to have C (which is +used to profile multithreaded programs). + +C results in C-like behavior. Time is counted in +I; that is, wallclock time. C is delivered when +the timer expires. + +C counts time in (process) I; that is, only +when the process is running. In multiprocessor/user/CPU systems this +may be more or less than real or wallclock time. (This time is also +known as the I.) C is delivered when the timer expires. + +C counts time when either the process virtual time or when +the operating system is running on behalf of the process (such as I/O). +(This time is also known as the I.) (The sum of user +time and system time is known as the I.) C is +delivered when the timer expires. C can interrupt system calls. + +The semantics of interval timers for multithreaded programs are +system-specific, and some systems may support additional interval +timers. See your C documentation. + +=item getitimer ( $which ) + +Return the remaining time in the interval timer specified by C<$which>. + +In scalar context, the remaining time is returned. + +In list context, both the remaining time and the interval are returned. +The interval is always what you put in using C. + +=back + +=head1 EXAMPLES + + use Time::HiRes qw(usleep ualarm gettimeofday tv_interval); + + $microseconds = 750_000; + usleep $microseconds; + + # signal alarm in 2.5s & every .1s thereafter + ualarm 2_500_000, 100_000; + + # get seconds and microseconds since the epoch + ($s, $usec) = gettimeofday; + + # measure elapsed time + # (could also do by subtracting 2 gettimeofday return values) + $t0 = [gettimeofday]; + # do bunch of stuff here + $t1 = [gettimeofday]; + # do more stuff here + $t0_t1 = tv_interval $t0, $t1; + + $elapsed = tv_interval ($t0, [gettimeofday]); + $elapsed = tv_interval ($t0); # equivalent code + + # + # replacements for time, alarm and sleep that know about + # floating seconds + # + use Time::HiRes; + $now_fractions = Time::HiRes::time; + Time::HiRes::sleep (2.5); + Time::HiRes::alarm (10.6666666); + + use Time::HiRes qw ( time alarm sleep ); + $now_fractions = time; + sleep (2.5); + alarm (10.6666666); + + # Arm an interval timer to go off first at 10 seconds and + # after that every 2.5 seconds, in process virtual time + + use Time::HiRes qw ( setitimer ITIMER_VIRTUAL time ); + + $SIG{VTALRM} = sub { print time, "\n" }; + setitimer(ITIMER_VIRTUAL, 10, 2.5); + +=head1 C API + +In addition to the perl API described above, a C API is available for +extension writers. The following C functions are available in the +modglobal hash: + + name C prototype + --------------- ---------------------- + Time::NVtime double (*)() + Time::U2time void (*)(UV ret[2]) + +Both functions return equivalent information (like C) +but with different representations. The names C and C +were selected mainly because they are operating system independent. +(C is Unix-centric, though some platforms like VMS have +emulations for it.) + +Here is an example of using C from C: + + double (*myNVtime)(); + SV **svp = hv_fetch(PL_modglobal, "Time::NVtime", 12, 0); + if (!svp) croak("Time::HiRes is required"); + if (!SvIOK(*svp)) croak("Time::NVtime isn't a function pointer"); + myNVtime = INT2PTR(double(*)(), SvIV(*svp)); + printf("The current time is: %f\n", (*myNVtime)()); + +=head1 DIAGNOSTICS + +=head2 negative time not invented yet + +You tried to use a negative time argument. + +=head2 internal error: useconds < 0 (unsigned ... signed ...) + +Something went horribly wrong-- the number of microseconds that cannot +become negative just became negative. Maybe your compiler is broken? + +=head1 CAVEATS + +Notice that the core C maybe rounding rather than truncating. +What this means is that the core C may be reporting the time as one second +later than C and C. + +=head1 AUTHORS + +D. Wegscheid +R. Schertler +J. Hietaniemi +G. Aas + +=head1 COPYRIGHT AND LICENSE + +Copyright (c) 1996-2002 Douglas E. Wegscheid. All rights reserved. + +Copyright (c) 2002,2003,2004 Jarkko Hietaniemi. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut diff --git a/agc_2-X/branches/agc_2.2.0/extras/Time/HiRes.1.59.pm b/agc_2-X/branches/agc_2.2.0/extras/Time/HiRes.1.59.pm new file mode 100644 index 00000000..98d31429 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Time/HiRes.1.59.pm @@ -0,0 +1,359 @@ +package Time::HiRes; + +use strict; +use vars qw($VERSION $XS_VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD); + +require Exporter; +require DynaLoader; + +@ISA = qw(Exporter DynaLoader); + +@EXPORT = qw( ); +@EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval + getitimer setitimer + ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF + d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer + d_nanosleep); + +$VERSION = '1.59'; +$XS_VERSION = $VERSION; +$VERSION = eval $VERSION; + +sub AUTOLOAD { + my $constname; + ($constname = $AUTOLOAD) =~ s/.*:://; + die "&Time::HiRes::constant not defined" if $constname eq 'constant'; + my ($error, $val) = constant($constname); + if ($error) { die $error; } + { + no strict 'refs'; + *$AUTOLOAD = sub { $val }; + } + goto &$AUTOLOAD; +} + +bootstrap Time::HiRes; + +# Preloaded methods go here. + +sub tv_interval { + # probably could have been done in C + my ($a, $b) = @_; + $b = [gettimeofday()] unless defined($b); + (${$b}[0] - ${$a}[0]) + ((${$b}[1] - ${$a}[1]) / 1_000_000); +} + +# Autoload methods go after =cut, and are processed by the autosplit program. + +1; +__END__ + +=head1 NAME + +Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers + +=head1 SYNOPSIS + + use Time::HiRes qw( usleep ualarm gettimeofday tv_interval ); + + usleep ($microseconds); + + ualarm ($microseconds); + ualarm ($microseconds, $interval_microseconds); + + $t0 = [gettimeofday]; + ($seconds, $microseconds) = gettimeofday; + + $elapsed = tv_interval ( $t0, [$seconds, $microseconds]); + $elapsed = tv_interval ( $t0, [gettimeofday]); + $elapsed = tv_interval ( $t0 ); + + use Time::HiRes qw ( time alarm sleep ); + + $now_fractions = time; + sleep ($floating_seconds); + alarm ($floating_seconds); + alarm ($floating_seconds, $floating_interval); + + use Time::HiRes qw( setitimer getitimer + ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF ); + + setitimer ($which, $floating_seconds, $floating_interval ); + getitimer ($which); + +=head1 DESCRIPTION + +The C module implements a Perl interface to the C, +C, C, and C/C system calls, in other +words, high resolution time and timers. See the L section below +and the test scripts for usage; see your system documentation for the +description of the underlying C or C, C, +C, and C/C calls. + +If your system lacks C or an emulation of it you don't +get C or the one-argument form of C. If your system lacks all of +C, C, and C, you don't get +C or C. If your system lacks both +C and C you don't get +C or C. + +If you try to import an unimplemented function in the C statement +it will fail at compile time. + +If your subsecond sleeping is implemented with C instead of +C, you can mix subsecond sleeping with signals since +C does not use signals. This, however is unportable, and you +should first check for the truth value of C<&Time::HiRes::d_nanosleep> to +see whether you have nanosleep, and then carefully read your +C C API documentation for any peculiarities. (There is no +separate interface to call C; just use C +or C with small enough values.) + +Unless using C for mixing sleeping with signals, give +some thought to whether Perl is the tool you should be using for work +requiring nanosecond accuracies. + +The following functions can be imported from this module. +No functions are exported by default. + +=over 4 + +=item gettimeofday () + +In array context returns a two-element array with the seconds and +microseconds since the epoch. In scalar context returns floating +seconds like C (see below). + +=item usleep ( $useconds ) + +Sleeps for the number of microseconds specified. Returns the number +of microseconds actually slept. Can sleep for more than one second, +unlike the C system call. See also C below. + +=item ualarm ( $useconds [, $interval_useconds ] ) + +Issues a C call; the C<$interval_useconds> is optional and +will be zero if unspecified, resulting in C-like behaviour. + +=item tv_interval + +tv_interval ( $ref_to_gettimeofday [, $ref_to_later_gettimeofday] ) + +Returns the floating seconds between the two times, which should have +been returned by C. If the second argument is omitted, +then the current time is used. + +=item time () + +Returns a floating seconds since the epoch. This function can be +imported, resulting in a nice drop-in replacement for the C + {elseif $keyid eq '13'} + ++ ++ {elseif $keyid eq '11'} ++ + {elseif $keyid eq '15' || $keyid eq '16' || $keyid eq '111'} + ++ {elseif $keyid eq '11'} ++ + + {elseif $keyid eq '15' || $keyid eq '16' || $keyid eq '111'} + {foreach item=arr from=$keyoptions} +--- ./include/js/dtlviewajax.js 2009-01-26 13:59:25.000000000 -0500 ++++ ./include/js/dtlviewajax.js 2009-01-26 15:02:33.000000000 -0500 +@@ -293,6 +293,9 @@ + if(secEmail) + secEmail.value = tagValue; + } ++ }else if(uitype == '11') ++ { ++ getObj(dtlView).innerHTML = ""+tagValue+" "; + }else if(uitype == '17') + { + getObj(dtlView).innerHTML = ""+tagValue+" "; +--- ./include/utils/ListViewUtils.php 2009-01-26 10:42:14.000000000 -0500 ++++ ./include/utils/ListViewUtils.php 2009-01-26 18:54:39.000000000 -0500 +@@ -1291,6 +1291,11 @@ + $value = ''.$temp_val.''; + + } ++ // VICIDIAL agent screen phone number click to dial ++ elseif($uitype == 11) ++ { ++ $value = "VCcall: user_name');\">$temp_val"; ++ } + elseif($uitype == 56) + { + if($temp_val == 1) +--- ./include/utils/UserInfoUtil.php 2008-12-31 21:39:39.000000000 -0500 ++++ ./include/utils/UserInfoUtil.php 2009-01-01 01:20:17.000000000 -0500 +@@ -1175,6 +1175,18 @@ + global $adb; + global $current_user; + global $seclog; ++ if (!file_exists('user_privileges/user_privileges_'.$current_user->id.'.php')) ++ { ++ # create User Priviledges file ++ require('modules/Users/CreateUserPrivilegeFile.php'); ++ createUserPrivilegesfile($current_user->id); ++ } ++ if (!file_exists('user_privileges/sharing_privileges_'.$current_user->id.'.php')) ++ { ++ # create Sharing Priviledges file ++ require('modules/Users/CreateUserPrivilegeFile.php'); ++ createUserSharingPrivilegesfile($current_user->id); ++ } + require('user_privileges/user_privileges_'.$current_user->id.'.php'); + require('user_privileges/sharing_privileges_'.$current_user->id.'.php'); + $permission = "no"; +--- ./Smarty/templates/DetailView.tpl 2008-03-10 08:54:31.000000000 -0400 ++++ ./Smarty/templates/DetailView.tpl 2009-03-26 19:52:24.000000000 -0400 +@@ -175,6 +175,10 @@ +   + {/if} + {/if} ++ {if $MODULE eq 'Accounts'} ++           VC fax log   ++           VC email log   ++ {/if} + {if $MODULE eq 'Quotes' || $MODULE eq 'PurchaseOrder' || $MODULE eq 'SalesOrder' || $MODULE eq 'Invoice'} + {if $CREATEPDF eq 'permitted'} +   + +--- ./include/js/general.js 2008-03-10 08:54:31.000000000 -0400 ++++ ./include/js/general.js 2009-04-07 19:31:16.000000000 -0400 +@@ -1768,6 +1768,77 @@ + openPopUp('xComposeEmail',this,url,'createemailWin',830,662,opts); + } + ++function VICIDIALcall(record_id,field_name,phone,user_name) { ++//alert(record_id + "|" + field_name + "|" + phone + "|" user_name); ++var xmlhttp=false; ++/*@cc_on @*/ ++/*@if (@_jscript_version >= 5) ++// JScript gives us Conditional compilation, we can cope with old IE versions. ++// and security blocked creation of the objects. ++ try { ++ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); ++ } catch (e) { ++ try { ++ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); ++ } catch (E) { ++ xmlhttp = false; ++ } ++ } ++@end @*/ ++if (!xmlhttp && typeof XMLHttpRequest!='undefined') ++ { ++ xmlhttp = new XMLHttpRequest(); ++ } ++if (xmlhttp) ++ { ++ var callback_flag=''; ++ if (field_name=='CallBack') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 10) ++ {log_call = "0" + log_call;} ++ phone = "99" + log_call; ++ callback_flag = '&callback=1'; ++ } ++ if (field_name=='fax') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 8) ++ {log_call = "0" + log_call;} ++ phone = "18" + log_call; ++ } ++ if (field_name=='email') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 8) ++ {log_call = "0" + log_call;} ++ phone = "19" + log_call; ++ } ++ var VCcallQuery = "VCcall=1&phone=" + phone + "&vendor_id=" + record_id + '' + callback_flag; ++ xmlhttp.open('POST', 'vtigerservice.php'); ++ xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); ++ xmlhttp.send(VCcallQuery); ++ xmlhttp.onreadystatechange = function() ++ { ++ if (xmlhttp.readyState == 4 && xmlhttp.status == 200) ++ { ++ // alert(xmlhttp.responseText); ++ var Xoutput = null; ++ Xoutput = xmlhttp.responseText; ++ var regXFerr = new RegExp("ERROR","g"); ++ if (Xoutput.match(regXFerr)) ++ { ++ alert(xmlhttp.responseText); ++ } ++ else ++ { ++ self.close(); ++ } ++ } ++ } ++ delete xmlhttp; ++ } ++} + function fnHide_Event(obj){ + document.getElementById(obj).style.visibility = 'hidden'; + } +--- ./vtigerservice.php 2008-03-10 08:54:31.000000000 -0400 ++++ ./vtigerservice.php 2009-04-07 19:16:44.000000000 -0400 +@@ -42,6 +42,63 @@ + } + else + { ++ if(isset($_REQUEST['VCcall'])) ++ { ++ $CL=':'; ++ $server_name = getenv("SERVER_NAME"); ++ $server_port = getenv("SERVER_PORT"); ++ if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} ++ else {$HTTPprotocol = 'http://';} ++ if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} ++ else {$server_port = "$CL$server_port";} ++ $URLbase = "$HTTPprotocol$server_name$server_port"; ++ ++ $callback_flag=''; ++ if(isset($_REQUEST['callback'])) ++ { ++ $callback_flag = '&vtiger_callback=YES'; ++ } ++ global $entityDel; ++ global $display; ++ global $category; ++ header('Content-Type: text/html; charset='. $charset); ++ session_start(); ++ require_once('include/utils/utils.php'); ++ require_once('config.inc.php'); ++ $default_config_values = Array( "allow_exports"=>"all","upload_maxsize"=>"3000000", "listview_max_textlength" => "40" ); ++ set_default_config($default_config_values); ++ require_once('include/logging.php'); ++ require_once('modules/Users/Users.php'); ++ global $currentModule; ++ $current_user = new Users(); ++ ++ $log =& LoggerManager::getLogger('index'); ++ global $seclog; ++ $seclog =& LoggerManager::getLogger('SECURITY'); ++ $log->debug($_REQUEST); ++ ++ // Check to see if there is an authenticated user in the session. ++ if(isset($_SESSION["authenticated_user_id"]) && (isset($_SESSION["app_unique_key"]) && $_SESSION["app_unique_key"] == $application_unique_key)) ++ { ++ $log->debug("We have an authenticated user id: ".$_SESSION["authenticated_user_id"]); ++ $result = $current_user->retrieveCurrentUserInfoFromFile($_SESSION['authenticated_user_id']); ++ $log->debug('Current user is: '.$current_user->user_name); ++ } ++ ++ $phone = $_REQUEST['phone']; $vendor_id = $_REQUEST['vendor_id']; ++ $user = $current_user->user_name; ++ ++ $VCapiURL = "/agc/api.php"; ++ $VCpauseQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_pause&value=PAUSE"; ++ $VCcallQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_dial&value=$phone&phone_code=1&search=YES&preview=NO&focus=YES&vendor_id=$vendor_id$callback_flag"; ++ $replyP = file("$URLbase$VCapiURL$VCpauseQuery"); ++// sleep(1); ++ $replyC = file("$URLbase$VCapiURL$VCcallQuery"); ++ echo "$replyP[0]|$replyC[0]\n"; ++// echo "$URLbase$VCapiURL$VCcallQuery\n"; ++ } ++ else ++ { + echo "

    vtigerCRM Soap Services

    "; + echo "
  • vtigerCRM Outlook Plugin EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM Word Plugin EndPoint URL -- Click here
  • "; +@@ -49,6 +106,7 @@ + echo "
  • vtigerCRM Customer Portal EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM WebForm EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM FireFox Extension EndPoint URL -- Click here
  • "; ++ } + } + + +--- ./Smarty/templates/ActivityDetailView.tpl 2008-03-10 08:54:31.000000000 -0400 ++++ ./Smarty/templates/ActivityDetailView.tpl 2009-04-07 18:50:36.000000000 -0400 +@@ -104,7 +104,10 @@ +
    \n"; + echo ""; + + echo "
    Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
    Territory: $rowx[0]
    Territory Description:
    Agents: $user_count
    Accounts: $owner_count
    Vtiger Accounts: $vtiger_count
    \n"; + echo "

    \n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    Users in this Territory:
    $p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
    "; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
    "; + echo "
    DELETE
    \n"; + echo "


    \n"; + + echo "Delete This Territory\n"; + echo "

    \n"; + } + else + { + echo "ERROR: Territory not found: $territory
    \n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
    \n"; + echo ""; + echo "
    List All Territories:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
    #IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
    $i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


    \n"; + echo "\n"; + echo "
    \n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
    User Territories     VERSION:     BUILD:    
    diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vdremote.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vdremote.php new file mode 100644 index 00000000..a40d7f93 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vdremote.php @@ -0,0 +1,591 @@ + LICENSE: AGPLv2 +# +# Changes +# 50307-1721 - First version +# 51123-1502 - removed requirement of PHP Globals=on +# 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 +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes +# + +$version = '2.2.0'; +$build = '91129-2249'; + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["INVIA"])) {$INVIA=$_GET["INVIA"];} + elseif (isset($_POST["INVIA"])) {$INVIA=$_POST["INVIA"];} + +if (!isset($force_logout)) {$force_logout = 0;} + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "Ora non sei collegato. Grazie\n"; + 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'; +$STARTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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 "Utentename/Password non validi: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } +else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + $stmt="SELECT count(*) from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $authx=$row[0]; + + if($authx>0) + { + $stmt="SELECT remote_agent_id,server_ip,number_of_lines from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id=$row[0]; + $server_ip=$row[1]; + if (!$number_of_lines) {$number_of_lines=$row[2];} + + fwrite ($fp, "VDremote|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + echo "This remote agent does not exist: |$PHP_AUTH_USER|\n"; + exit; + } + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +if ($ADD==61111) + { + echo"\n"; + } +echo "\n"; +?> + +OPERATORI REMOTI: $LOGfullname - $PHP_AUTH_USER "; + +if (!$ADD) {$ADD="31111";} +if ($ADD==31111) {echo "Modifica Operatori Remoti";} +if ($ADD==41111) {echo "Modifica Operatori Remoti";} +if ($ADD==61111) {echo "Remote Agent Status";} +if ($ADD==71111) {echo "Remote Agent Closer Stats";} + + +if (strlen($ADD)>4) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "\n"; + $o++; + } + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get inbound groups listing for checkboxes + if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $groups_list .= "2) {$groups_value .= " -";} + } + +?> + + + +
    + + + + +
      OPERATORI REMOTI:   Logout  
      MODIFICA | ">ESITO | ">STATISTICHE INBOUND
    +"; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
    MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Inizio ID Utente: $user_start
    Numero di Linee: (solo cifre)
    IP Server: $row[3]
    Numero Di Interno Remoto: (number dialed to reach agents [i.e. 913125551212])
    Esito:
    Campagna: $campaign_id
    Gruppi Inbound: \n"; + echo "$groups_list"; + echo "
    \n"; + echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; + } + + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + echo ""; + + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + {echo "
    AGENTES ALEJADOS NO MODIFICADOS - Per favore torna indietro e ricontrolla i dati inseriti\n";} + else + { + $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); + +# echo "$stmt\n"; + echo "
    LOS AGENTES ALEJADOS SE MODIFICARON\n"; + + ### LOG CHANGES TO LOG FILE ### + $fp = fopen ("./admin_changes_log.txt", "a"); + fwrite ($fp, "$date|MODIFY OPERATORI REMOTI ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); + fclose($fp); + } + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
    MODIFICAR UNA ENTRADA DE LOS AGENTES REMOTOS: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Inizio ID Utente: $user_start
    Numero di Linee: (solo cifre)
    IP Server: $row[3]
    Numero Di Interno Remoto: (number dialed to reach agents [i.e. 913125551212])
    Esito:
    Campagna: $campaign_id
    Gruppi Inbound: \n"; + echo "$groups_list"; + echo "
    \n"; + echo "NOTA: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate\n"; + } + + + +###################### +# ADD=61111 status of remote agent in the system and active calls and queue +###################### + +if ($ADD==61111) + { + echo "
    ";
    +
    +	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
    +		{echo "
    ERROR AGENTES REMOTOS – Por favor, vuelva atrás y compruebe los datos que introdujo\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'" . mysql_real_escape_string($nextuser) . "',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' and user IN($users_list) order by extension;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $leadlink=0; + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[4])) + { + $row[3]=''; + $row[5]='- IN ATTESA -'; + $row[6]=$row[7]; + } + $extension = sprintf("%-10s", $row[0]); + $user = sprintf("%-6s", $row[1]); + $leadid = sprintf("%-12s", $row[2]); + if ($row[2] > 0) + { + $leadidLINK=$row[2]; + $leadlink++; + if ( eregi("QUEUE",$row[4]) ) {$row[6]=$STARTtime;} + $leadid = "$leadid"; + } + $channel = sprintf("%-10s", $row[3]); + $cc=0; + while ( (strlen($channel) > 10) and ($cc < 100) ) + { + $channel = eregi_replace(".$","",$channel); + $cc++; + if (strlen($channel) <= 10) {$cc=101;} + } + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = ($STARTtime - $row[6]); + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$extension$EG | $G$user$EG | $G$leadid$EG | $G$channel$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i Operatori collegati al server $server_ip\n\n"; + + echo " - 5 o piu` minuti in conversazione\n"; + echo " - Oltre 10 minuti in conversazione\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "********************************* NESSUN OPERATORE IN CONVERSAZIONE *********************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
    \n\n"; + } + + +###################### +# ADD=71111 stats for remote agents from closer logs(vicidial_closer_log) +###################### + +if ($ADD==71111) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n\n"; + echo "
    ";
    +
    +	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
    +		{echo "
    ERROR AGENTES REMOTOS – Por favor, vuelva atrás y compruebe los datos que introdujo\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'$nextuser',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + $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 user IN($users_list);"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $in_calls = $row[0]; + $in_time = $row[1]; + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); + + echo "Stats de entrada del agente alejado $NOW_TIME\n\n"; + echo "\n"; + echo "Llamadas totales tomadas $query_date: $in_calls\n"; + echo "Tiempo total de conversacion$query_date: $in_time_MS (minutes:seconds)\n"; + echo "\n"; + echo "\n"; + echo "Lista la llamada para $query_date:\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + echo "| USER | LEADID | GROUP | PHONE NUM | STATUS | CALL TIME | MINUTES |\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + + + $stmt="select user,lead_id,campaign_id,phone_number,status,call_date,length_in_sec from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and user IN($users_list) order by call_date;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + $user = sprintf("%-8s", $row[0]); + $leadid = sprintf("%-10s", $row[1]); + $group = sprintf("%-14s", $row[2]); + $phone = sprintf("%-10s", $row[3]); + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = $row[6]; + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + # if ($call_time_M_int >= 5) {$G=''; $EG='';} + # if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$user$EG | $G$leadid$EG | $G$group$EG | $G$phone$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; + +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "*********************************NESSUNA CHIAMATA IN QUESTO GIORNO*******************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
    \n\n"; + } + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nTempo Esecuzione Script: $RUNtime seconds
    "; + + +?> + + +
    + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_admin_web_logo.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_admin_web_logo.gif new file mode 100644 index 00000000..8c5a9d22 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_admin_web_logo.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_admin_web_logo_small.gif b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_admin_web_logo_small.gif new file mode 100644 index 00000000..95738d49 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_admin_web_logo_small.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_sales_viewer.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_sales_viewer.php new file mode 100644 index 00000000..7b567e79 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vicidial_sales_viewer.php @@ -0,0 +1,258 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 80310-1500 - first build +# 90310-2135 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +if (isset($_GET["dcampaign"])) {$dcampaign=$_GET["dcampaign"];} + elseif (isset($_POST["dcampaign"])) {$dcampaign=$_POST["dcampaign"];} +if (isset($_GET["submit_report"])) {$submit_report=$_GET["submit_report"];} + elseif (isset($_POST["submit_report"])) {$submit_report=$_POST["submit_report"];} +if (isset($_GET["list_ids"])) {$list_ids=$_GET["list_ids"];} + elseif (isset($_POST["list_ids"])) {$list_ids=$_POST["list_ids"];} +if (isset($_GET["sales_number"])) {$sales_number=$_GET["sales_number"];} + elseif (isset($_POST["sales_number"])) {$sales_number=$_POST["sales_number"];} +if (isset($_GET["sales_time_frame"])) {$sales_time_frame=$_GET["sales_time_frame"];} + elseif (isset($_POST["sales_time_frame"])) {$sales_time_frame=$_POST["sales_time_frame"];} +if (isset($_GET["forc"])) {$forc=$_GET["forc"];} + elseif (isset($_POST["forc"])) {$forc=$_POST["forc"];} + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + +$PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); +$PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +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 "Utentename/Password non validi or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +?> + + +Recent Sales Lookup + + + + + +
    "; +?> + +
    + + + + + + + + + + + + + + + + + + + + + +
    Vicidial OUTBOUND recent sales report               Back to Admin +
    + + + + + + + + + + +
    Select a campaign:
    Select list ID(s) # (optional):
    +
    View sales made within the last OR...View the last sales**
    (If you enter values in both fields, the results will be limited by the first criteria met)
    Campagna is:    Transfer  Non-transfer
    ** - sorted by call date
    +
    +0)) { $list_id_clause.="$lists[$i], "; } + } + $list_id_clause=substr($list_id_clause, 0, -2); + $list_id_clause.=")"; + + if ($sales_number && $sales_number>0) { + $sales_number=eregi_replace("[^0-9]", "", $sales_number); + $limit_clause="limit $sales_number"; + } else { + $sales_number=0; + $limit_clause=""; + } + if ($sales_time_frame && $sales_time_frame>0) { + $hours=$sales_time_frame/60; + $timestamp=date("YmdHis", mktime(date("H"),(date("i")-$sales_time_frame),date("s"),date("m"),date("d"),date("Y"))); + } else { + $timestamp=date("YmdHis", mktime(date("H"),date("i"),date("s"),date("m"),(date("d")-1),date("Y"))); + $hours=24; + } + print "
    "; + print ""; + $i=0; + + $dfile=fopen("discover_stmts.txt", "w"); + if ($forc=="C") { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, u.full_name from vicidial_users u, vicidial_list v, vicidial_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause and vl.user=u.user order by call_date desc $limit_clause"; + } else { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, vl.user, vl.closer from vicidial_list v, vicidial_xfer_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause order by call_date desc $limit_clause"; + } + fwrite($dfile, "$stmt\n"); + $rslt=mysql_query($stmt, $link); + $q=0; + print "\n"; + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + while ($row=mysql_fetch_row($rslt)) { + $rec_stmt="select max(recording_id) from recording_log where lead_id='$row[4]'"; + $rec_rslt=mysql_query($rec_stmt, $link); + $rec_row=mysql_fetch_row($rec_rslt); + + if ($forc=="F") { + $rep_stmt="select full_name from vicidial_users where user='$row[5]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $fr_row=mysql_fetch_array($rep_rslt); + + $rep_stmt="select full_name from vicidial_users where user='$row[6]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $cl_row=mysql_fetch_array($rep_rslt); + + $rep_name="$fr_row[full_name]/$cl_row[full_name]"; + } else { + $rep_name=$row[5]; + } + + if ($i%2==0) {$bgcolor="#999999";} else {$bgcolor="#CCCCCC";} + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + flush(); + } + print "
    Last ".mysql_num_rows($rslt)." sales made
    Sales Rep(s)Customer NamePhoneRecording IDTimestamp
    $rep_name$row[0] $row[1]$row[2]$rec_row[0]$row[3]
    "; + passthru("$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign"); +# print "\n\n
    $WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign
    \n"; + flush(); + print ""; + if ($forc=="F") { + print ""; + } + print ""; + print "
    View complete Excel fronter report for this shiftView complete Excel sales report for this shift
    "; +} +?> + +
    + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vtiger_search.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vtiger_search.php new file mode 100644 index 00000000..6636a431 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vtiger_search.php @@ -0,0 +1,885 @@ + LICENSE: AGPLv2 +# +# This page does a search against a standard vtiger CRM system. If the record +# is not present, it will create a new one and send the agent's screen to that new page. +# +# This code is tested against vtiger 5.0.4 and 5.1.0 +# +# CHANGES +# 60719-1615 - First version +# 60801-2304 - Added mysql debug and auto-forward +# 60802-1111 - Added insertion of not-found record into vtiger system +# 71220-0000 - Modified by I. Taushanov for VTiger 5.03- search/create lead +# 80120-1934 - Added changes for compatibility with vtiger 5.0.3 +# 81229-1017 - Added usage of system_settings connection settings for vtiger database +# 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD +# 90111-1451 - Added logging of call as activity for account/lead +# 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$HHMMnow = date("H:i"); +$minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); +$HHMMend = date("H:i",$minute_old); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger Lookup\n"; +echo "\n"; + + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$vtc_conf_ct = mysql_num_rows($rslt); +if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + } +if (strlen($vtiger_search_category)<1) + {$vtiger_search_category = 'LEAD';} + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo 'Connected successfully'; +mysql_select_db("$vtiger_dbname", $linkV); + +# Methods of searching for records: +# +# ACCTID: +# $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; +# +# ACCOUNT: +# $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; +# +# VENDOR: +# $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; +# +# LEAD: +# $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; + +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} + + + +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +	echo "Forwarding to Vtiger Unified Contact Search page...\n";
    +	echo "phone number:   $phone\n";
    +	echo "

    "; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + + + +########################################################################## +##### BEGIN - ACCTID - Search in the account records for accountid number +########################################################################## +if ($acctid_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nACCTID|$vendor_id|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +			echo "account found! ACCTID\n";
    +			echo "accountid:   $vendor_id\n";
    +			echo "

    "; + exit; + } + } + } +########################################################################## +##### END - ACCTID - Search in the account records for accountid number +########################################################################## + + +########################################################################## +##### BEGIN - ACCOUNT - Search in the account records for phone number +########################################################################## +if ($account_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nACCOUNT|$phone|$found_count|vtiger_account\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nACCOUNT|$phone|$found_count|vtiger_contactdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nACCOUNT|$phone|$found_count|vtiger_contactsubdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_contact + $stmt="SELECT contactsubscriptionid from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $contactid = $row[0]; + + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where contactid='$contactid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + if (strlen($accountid) > 0) + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +			echo "account found! ACCOUNT\n";
    +			echo "accountid:   $accountid\n";
    +			echo "phone:       $phone\n";
    +			echo "

    "; + exit; + } + } + } +########################################################################## +##### END - ACCOUNT - Search in the account records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - VENDOR - Search in the vendor records for phone number +########################################################################## +if ($vendor_search > 0) + { + $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nVENDOR|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_vendor + $stmt="SELECT vendorid from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $vendorid = $row[0]; + + # http://mysite.com/vtigercrm/index.php?module=Vendors&action=DetailView&record=2&parenttab=Inventory + $account_URL = "$vtiger_url/index.php?module=Vendors&action=DetailView&record=$vendorid&parenttab=Inventory"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +		echo "account found! VENDOR\n";
    +		echo "vendorid:   $vendorid\n";
    +		echo "phone:       $phone\n";
    +		echo "

    "; + exit; + } + } +########################################################################## +##### END - VENDOR - Search in the vendor records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - LEAD - Search in the leads records for phone number +########################################################################## +if ($lead_search > 0) + { + $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nLEAD|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + if (ereg('Y',$vtiger_create_lead_record)) + { + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "$phone not found, creating account...\n"; + + $DB=1; + + #Get logged in user ID + if ($DB) {echo "
    ";}
    +			$stmt="SELECT id from vtiger_users where user_name='$user';";
    +			if ($DB) {echo "$stmt\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			$row=mysql_fetch_row($rslt);
    +			$user_id = $row[0];
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +			
    +			#Vtiger no longer use auto increment for vtiger_crmentity crmid, vtiger_crmentity_seq is used instead to list next aviable entity ID
    +			# Get next aviable id to use as  crmid in vtiger_crmentity	
    +			$stmt="SELECT id from vtiger_crmentity_seq ;";
    +			if ($DB) {echo "$stmt\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			$row=mysql_fetch_row($rslt);
    +			$leadid = ($row[0] + 1);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			# Increase 	next aviable crmid with 1 so next record gets proper id
    +			$stmt="UPDATE vtiger_crmentity_seq SET id = '$leadid';";
    +			if ($DB) {echo "$stmt\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +			
    +			#Insert values into vtiger_crmentity
    +			$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$leadid', '$user_id', '$user_id','$user_id', 'Leads', '(Memo)', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if ($DB) {echo "|$leadid|\n";}
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			#Insert values into vtiger_leaddetails	
    +			$stmt = "INSERT INTO vtiger_leaddetails (leadid,firstname,lastname,company) values('$leadid','$first_name','$last_name','$first_name $last_name');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			#Insert values into vtiger_leaddetails
    +			$stmt = "INSERT INTO vtiger_leadaddress (leadaddressid,city,code,state,country,phone,mobile,lane) values('$leadid','$city','$postal_code','$province','$country','$phone','$alt_phone','$address1 $address2');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			#Insert values into vtiger_leadsubdetails	
    +			$stmt = "INSERT INTO vtiger_leadsubdetails (leadsubscriptionid) VALUES ('$leadid');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +			
    +			#Insert values into vtiger_leadscf, these are custom created fields example	
    +			$stmt = "INSERT INTO vtiger_leadscf (leadid) VALUES ('$leadid');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			if ($DB) {echo "DONE creating lead records\n";}
    +
    +			if (ereg('Y',$vtiger_create_call_record))
    +				{
    +				### Log the call in Vtiger
    +
    +				#Get logged in user ID
    +				$stmt="SELECT id from vtiger_users where user_name='$user';";
    +				if ($DB) {echo "$stmt\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				$row=mysql_fetch_row($rslt);
    +				$user_id = $row[0];
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +				
    +				# Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity	
    +				$stmt="SELECT id from vtiger_crmentity_seq ;";
    +				if ($DB) {echo "$stmt\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				$row=mysql_fetch_row($rslt);
    +				$activityid = ($row[0] + 1);
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +				# Increase next aviable crmid with 1 so next record gets proper id
    +				$stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';";
    +				if ($DB) {echo "$stmt\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +				
    +				#Insert values into vtiger_salesmanactivityrel
    +				$stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';";
    +				if ($DB) {echo "|$stmt|\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if ($DB) {echo "|$leadid|\n";}
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +				
    +				#Insert values into vtiger_seactivityrel
    +				$stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';";
    +				if ($DB) {echo "|$stmt|\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if ($DB) {echo "|$leadid|\n";}
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +				
    +				#Insert values into vtiger_crmentity
    +				$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
    +				if ($DB) {echo "|$stmt|\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if ($DB) {echo "|$leadid|\n";}
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +				#Insert values into vtiger_activity
    +				$stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';";
    +				if ($DB) {echo "|$stmt|\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if ($DB) {echo "|$leadid|\n";}
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +
    +				# http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales
    +				$account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales";
    +				}
    +			else
    +				{
    +				# http://mysite.com/vtigercrm/index.php?module=Accounts&action=EditView&record=2&parenttab=Sales
    +				$account_URL = "$vtiger_url/index.php?module=Leads&action=EditView&record=$leadid&parenttab=Sales";
    +				}
    +
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "
    \n"; + + echo "
    ";
    +			echo "account created! LEAD\n";
    +			echo "leadid:   $leadid\n";
    +			echo "phone:       $phone\n";
    +			echo "

    "; + exit; + } + } + else + { + $stmt="SELECT leadaddressid from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $leadid = $row[0]; + + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +			echo "lead found! LEAD\n";
    +			echo "leadid:   $leadid\n";
    +			echo "phone:       $phone\n";
    +			echo "

    "; + exit; + } + } + } +########################################################################## +##### END - LEAD - Search in the leads records for phone number +########################################################################## + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n
    $phone NOT FOUND

    \n\n"; +echo "Click here to go to the Vtiger home page\n"; + +# echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vtiger_user.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vtiger_user.php new file mode 100644 index 00000000..f53a989a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/vtiger_user.php @@ -0,0 +1,317 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81231-1307 - First build +# 90228-2152 - Added Groups support +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger user synchronization utility\n"; +echo "\n"; + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +##### grab the existing user_groups in the vicidial_user_groups table +$stmt="SELECT user_group,group_name FROM vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_groups_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $UGid[$i] = $row[0]; + $UGname[$i] = $row[1]; + $i++; + } + +##### grab the existing users in the vicidial_users table +$stmt="SELECT user,pass,full_name,user_level,active,user_group FROM vicidial_users;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_users_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_users_ct) + { + $row=mysql_fetch_row($rslt); + $user[$i] = $row[0]; + $pass[$i] = $row[1]; + $full_name[$i] = $row[2]; while (strlen($full_name[$i])>30) {$full_name[$i] = eregi_replace(".$",'',$full_name[$i]);} + $user_level[$i] = $row[3]; + $active[$i] = $row[4]; + $user_group[$i] = $row[5]; + $i++; + } + + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo "Connected successfully\n
    \n"; +mysql_select_db("$vtiger_dbname", $linkV); + + +########################## +### BEGIN Group export +$i=0; +while ($i < $VD_groups_ct) + { + $VTgroup_name = $UGid[$i]; + $VTgroup_description = $UGname[$i]; + + $stmt="SELECT count(*) from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, grab groupid, update description + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + $VTugID[$i] = $groupid; + + $stmtA = "UPDATE vtiger_groups SET description='$VTgroup_description' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
    \n"; + echo "
    \n"; + } + + ### group doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $VTugID[$i] = $groupid; + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$VTgroup_name',description='$VTgroup_description';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
    \n"; + echo "
    \n"; + #### END CREATE NEW GROUP RECORD IN VTIGER + } + $i++; + } +### END Group export +########################## + + + +########################## +### BEGIN User export +$i=0; +while ($i < $VD_users_ct) + { + $user_name = $user[$i]; + $VUgroup = $user_group[$i]; + $user_password = $pass[$i]; + $last_name = $full_name[$i]; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level[$i] >= 7) {$roleid = 'H4';} + if ($user_level[$i] >= 8) {$roleid = 'H3';} + if ($user_level[$i] >= 9) {$roleid = 'H2';} + if ($user_level[$i] >= 9) {$is_admin = 'on';} + if (ereg('N',$active[$i])) {$status = 'Inactive';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + $i++; + + $j=0; + $all_VICIDIAL_groups_SQL=''; + while ($j < $VD_groups_ct) + { + if ( (eregi("$UGid[$j]",$VUgroup)) and ( (strlen($UGid[$j]))==(strlen($VUgroup)) ) ) + { + $groupid = $VTugID[$j]; + $VTgroup_name = $UGid[$j]; + $VTgroup_description = $UGname[$j]; + } + else + {$all_VICIDIAL_groups_SQL .= "'$VTugID[$j]',";} + $j++; + } + $all_VICIDIAL_groups_SQL = preg_replace("/.$/",'',$all_VICIDIAL_groups_SQL); + + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN($all_VICIDIAL_groups_SQL);"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + else + {$stmtC='';} + + echo "$user_name: $userid
    \n"; + echo "$stmtA
    \n"; + echo "$stmtB
    \n"; + echo "$stmtC
    \n"; + echo "$stmtD
    \n"; + echo "
    \n"; + + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "$user_name:
    \n"; + echo "$stmtA
    \n"; + echo "$stmtB
    \n"; + echo "$stmtC
    \n"; + echo "$stmtD
    \n"; + echo "
    \n"; + #### END CREATE NEW USER RECORD IN VTIGER + } + + + } +### END User export +########################## + + + + + +echo "DONE\n"; + +exit; + + diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome.php new file mode 100644 index 00000000..afb3a4b6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome.php @@ -0,0 +1,26 @@ + LICENSE: AGPLv2 +# + +echo "ViciDial Benvenuto\n"; +echo "\n"; +echo "\n"; +echo "




    "; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Benvenuti
     
    Agent Login
     
    Orologio
     
    Administration
     
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome_demo.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome_demo.php new file mode 100644 index 00000000..238cf5cf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome_demo.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



    "; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
     
    \n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    "; +echo "   English Agent Login"; +echo "
    "; +echo "   Spanish Agent Login"; +echo "
    "; +echo "   German Agent Login"; +echo "
    "; +echo "   Italian Agent Login"; +echo "
    "; +echo "   Greek Agent Login"; +echo "
    "; +echo "   French Agent Login"; +echo "
    "; +echo "   Brazillian Portuguese Agent Login"; +echo "
    "; +echo "   Portuguese Agent Login"; +echo "
    "; +echo "   Polish Agent Login"; +echo "
    "; +echo "   Slovak Agent Login"; +echo "
    "; +echo "   Russian Agent Login"; +echo "
    "; +echo "   Dutch Agent Login"; +echo "
    "; +echo "   Chinese(T) Agent Login"; +echo "
    \n"; + +echo "
    \n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    "; +echo "   English Administration"; +echo "
    "; +echo "   Spanish Administration"; +echo "
    "; +echo "   German Administration"; +echo "
    "; +echo "   Italian Administration"; +echo "
    "; +echo "   Greek Administration"; +echo "
    "; +echo "   French Administration"; +echo "
    \n"; +echo "
     
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome_languages.php b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome_languages.php new file mode 100644 index 00000000..d53707a9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/LANG_www/vicidial_it/welcome_languages.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



    "; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
     
    \n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    "; +echo "   English Agent Login"; +echo "
    "; +echo "   Spanish Agent Login"; +echo "
    "; +echo "   German Agent Login"; +echo "
    "; +echo "   Italian Agent Login"; +echo "
    "; +echo "   Greek Agent Login"; +echo "
    "; +echo "   French Agent Login"; +echo "
    "; +echo "   Brazillian Portuguese Agent Login"; +echo "
    "; +echo "   Portuguese Agent Login"; +echo "
    "; +echo "   Polish Agent Login"; +echo "
    "; +echo "   Slovak Agent Login"; +echo "
    "; +echo "   Russian Agent Login"; +echo "
    "; +echo "   Dutch Agent Login"; +echo "
    "; +echo "   Chinese(T) Agent Login"; +echo "
    \n"; + +echo "
    \n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    "; +echo "   English Administration"; +echo "
    "; +echo "   Spanish Administration"; +echo "
    "; +echo "   German Administration"; +echo "
    "; +echo "   Italian Administration"; +echo "
    "; +echo "   Greek Administration"; +echo "
    "; +echo "   French Administration"; +echo "
    \n"; +echo "
     
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/SuSE/get_sources.sh b/agc_2-X/branches/agc_2.2.0/SuSE/get_sources.sh new file mode 100644 index 00000000..72dd0cc9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/SuSE/get_sources.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +cd /usr/src + +wget http://www.daveltd.com/src/util/ttyload/ttyload-0.4.4.tar.gz +wget http://superb-west.dl.sourceforge.net/sourceforge/ploticus/pl240src.tar.gz +wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.2.tar.bz2 +wget http://superb-east.dl.sourceforge.net/sourceforge/mtop/mtop-0.6.6.tar.gz +wget http://download.berlios.de/sipsak/sipsak-0.9.6-1.tar.gz +wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.29.tar.gz +wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.24.tar.gz +#wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.26.tar.gz +wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.7.tar.gz +#wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.19.1.tar.gz +#wget http://downloads.digium.com/pub/libpri/libpri-1.4.3.tar.gz +#wget http://downloads.digium.com/pub/zaptel/zaptel-1.4.10.tar.gz + +mkdir patches +cd patches + +wget http://www.eflo.net/files/app_amd2.c +wget http://www.eflo.net/files/amd2.conf +wget http://www.eflo.net/files/meetme_DTMF_passthru-1.2.23.patch +wget http://www.eflo.net/files/meetme_volume_control_1.2.16.patch +wget http://www.eflo.net/files/cli_chan_concise_delimiter.patch +wget http://www.eflo.net/files/app_waitforsilence.c +wget http://www.eflo.net/files/enter.h +wget http://www.eflo.net/files/leave.h + diff --git a/agc_2-X/branches/agc_2.2.0/UPGRADE b/agc_2-X/branches/agc_2.2.0/UPGRADE new file mode 100644 index 00000000..6f3e7a77 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/UPGRADE @@ -0,0 +1,1015 @@ +################ UPGRADE + +NOTE: Upgrading from 2.0.4 to 2.0.5 is below the first section +NOTE: Upgrading from 2.0.3 to 2.0.4 is below the second section +NOTE: Upgrading from 2.0.2 to 2.0.3 is below the third section +NOTE: Upgrading from 2.0.1 to 2.0.2 is in the next section +NOTE: Upgrading from 1.1.12-3 to 2.0.1 is at the bottom + +########## UPGRADING FROM 2.0.5 TO 2.2.0 ########## + +1. install new files: + perl ./install.pl + NOTES: If you have customized any scripts in the bin or agi folders, + then make sure you back them up before running the install.pl script. + This script will replace existing files in the astguiclient installation. + +2. upgrade the MySQL asterisk database: + mysql + use asterisk + \. /path/from/root/extras/upgrade_2.2.0.sql + quit + +3. Added new method for monitoring from the Real-time screen using a phone entry + +4. Outbound Survey option for using Cepstral Text-to-speech. Requires Cepstral + to be installed and configured with proper licenses in place to use. + You must enable TTS in the System Settings screen, then you can access + the TTS section of the web administration. + +5. Added RANDOM and LAST CALL TIME lead order options to campaigns + +6. Changed List Mix to be active by default, depricated the + AST_VDhopper_MIXtest.pl script, if you use it change it to the + AST_VDhopper.pl in your crontab entries + +7. Added Call Menus Feature(aka IVR) in the In-groups section. This allows you + to create call menus with DTMF options using the Admin web interface. + +8. Changed all PHP scripts to use long tags, short tags are depricated in PHP6 + +9. Added audio upload ability from web interface, choose audio prompts from a + list in the call menu and in-group admin screens, and back-end audio + synchronization utilities have been added for multi-server setups. + to seed all Asterisk audio files, run the following command from your + Asterisk server with ViciDial installed: + /usr/share/astguiclient/ADMIN_audio_store_sync.pl --force-upload --debug + NOTE: Make sure the web audio store folder exists and is writable + +10. Added Active Voicemail Server setting to System Settings. Now the voicemail + and prompt recording extensions are auto-generated so that they all + direct to the same server and they should be removed from the + extensions.conf file: + 8168, 8167, 85026666666666, 8500, 8501 + +11. Added auto dial limit setting to System Settings to allow setting of the + top limit for Campaign Auto Dial Level pull-down menu in the Modify + Campaign screens + +12. Added Agent Time Detail report showing the timeclock time, agent activity + time and pause codes time by agent across selected campaigns and/or + user groups. Also reformatted Reports screen in Administration + +13. Removed the ViciDial recording extensions from the general dialplan since + they are now auto-generated and placed in the extensions-vicidial.conf + file(8309 and 8310). Also, phone dial-out contexts are definable now + allowing you to lock out agent phone in a call center from dialing out. + +14. Added option to login as an agent with no phone. Must create a phones entry + called 'nophone' with dialplan number of 8300. + +15. Added live monitoring of calls and retrieval of recorded calls through the + QueueMetrics interface + +16. Added up to 40 records to one List Mix going down to 1% mix, as well as the + option to populate all records with a set of statuses + +17. Added ability to force auto-incremented ID values for Users, Campaigns, + Lists, Scripts, In-groups, etc... using the vicidial_override_ids table + +18. Added the HIDE option for Disable Alter Customer Phone field to hide the + customer phone number from the agent interface + +19. Added dynamic route options to Call Menus and links to Call Menus and DIDs + +20. Added DID traffic stats report: AST_DIDstats.php + +21. Added User Time-Clock Detail report to show agent login and logout times + along with totals, sortable and downloadable + +22. Added DAHDI channel compatibility and carrier logging for outbound list calls + +23. Changed Auto-Detected Busy and Disconnected statuses to AB and ADC to better + separate them from agent-defined statuses + +24. Added option to lock out DROP calls from being called again for a period of + time, as a campaign option. This is useful to be able to comply with the + UK telemarketing regulations that state you may not auto-dial a customer + back within 72 hours of an abandon. + +25. Changed In-Group and Call Menu prompts to allow for multiple audio files per + prompt by separating them by pipes |. Also, changed the Agent Alert + Extention to a Filename in In-Groups + +26. Added a conf_secret field to phones table to be used as sip.conf/iax.conf + password instead of the pass field. Please check that this is set + properly if you are having phone registration issues + +27. Added no-agent-no-queueing options to In-Groups to send a call somewhere + else when there is no agent logged in(or active) to the in-group + +28. Changed the agent alert extension to a filename in in-groups + +29. Added process for updating statuses on leads in the vicidial_list table + through a batch process(VICIDIAL_UPDATE_leads_status_file.pl) as well + as a web-based report to show the stats for these transactions + +30. Added the option for a Quick Transfer from the agent screen. This option + allows the blind transfer of a call to the default transfer group or one + of the presets with a single button click. Also added a preset populate + feature to pre-populate the Number to Call field with one of the presets + for the campaign. + +31. Added Multiple Campaign Drop Rate Groups to allow campaigns to share a drop + percentage. This allows you to to run multiple smaller campaigns at one + time and more easily control your drop rate. + +32. Added pre-Answer statuses and processing for the Sangoma CPD(Call Progress + Detection) proxy as well as a new netborder sip patch: + netborder-cpd-1.4.patch + +33. Added Agents Status View sidebar to agent interface, and available transfer + agent frame to AGENTDIRECT transfers when clicking on the NUMBER TO CALL + field in the transfer conference frame + +34. Added Calls in Queue display to Agent screen, along with click to grab a + call from this listing. + +35. Added a Re-Queue Call button to send the current call back to an AGENTDIRECT + in-group for the agent to take later + +36. Added rank and owner to the vicidial_list table. the CLI lead loader has + a new stdrankowner format to add these fields in lead files. Also, added + these fields to the web-based lead loader formats and field chooser. + Related to this, RANK and OWNER are now lead order options in the + campaign screen. + +37. Added automatic list reset option to List Modification screen. You can enter + multiple times, and the leads in the list will be reset at those times. + +38. Added no-hopper dialing option for MANUAL and INBOUND_MAN campaigns. If This + is enabled, the hopper will not run for this campaign. This option is + only available when the dial method is set to MANUAL or INBOUND_MAN. It + is recommended that you do not enable this option if you have a very + large lead database, over 100,000 leads. With No Hopper Dialing, the + following features do not work: lead recycling, auto-alt-dialing, list + mix, list ordering with Xth NEW. If you want to use Owner Only Dialing + you must have No Hopper Dialing enabled. Default is N for disabled. + +39. Added lead owner option to restrict dialing within a list to the owner of a + lead only. If This is enabled, the agent will only receive leads that + they are within the ownership parameters for. If this is set to USER + then the agent must be the user defined in the database as the owner of + this lead. If this is set to TERRITORY then the owner of the lead must + match the territory listed in the User Modification screen for this + agent. If this is set to USER_GROUP then the owner of the lead must + match the user group that the agent is a member of. For this feature to + work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper + Dialing must be enabled. Default is NONE for disabled. + +40. Agent screen Alert option is now disabled by default. + +41. Added --GSW option for audio processing scripts 2 and 3 for GSM codec files + with an RIFF header and named with .wav file extension + +42. Added agent screen display dialable leads option for campaigns + +43. Added ViciDial Balance Rank for servers to allow prioritizing the servers + that will dial the FILL calls in a multi-server cluster + +44. Added optional twoday_ log tables which give you a safer place to be pulling + slightly less than real-time information from log tables without locking + the live log tables. there are 6 twoday_ log tables: recording_log, + call_log, vicidial_log, vicidial_closer_log, vicidial_xfer_log and + vicidial_agent_log + +45. Added new Inbound Summary Hourly Report to show stats by in-group and broken + down per in-group in hourly increments. This report also allows + filtering of the stats by call time scheme. + +46. Added option to the Outbound(VDAD) report to calculate stats including the + overflow drop in-group stats with the outbound campaign stats. + +47. Added longest_wait_time option for Next Agent Call in Campaigns and + In-Groups. + +48. Changed Real-time Report screen agent time display to be based upon a change + in "state"(INCALL, READY, PAUSED, etc...) instead of being based upon + the time of the last call they handled. + +49. Changed the ViciDial agent screen to not delete session reservations by + default at agent logout. Instead, the ADMIN_keepalive process will clear + out unused session reservations once a day at the timeclock reset time + as set in system_settings. + +50. Changed voicemail config to use phone password as voicemail password instead + of just the voicemail ID as the password + +51. Rewrote how scripts are displayed in the ViciDial agent interface + +52. Added List agent script override setting allowing different scripts to be + used for each list ID even within the same campaign + +53. Added web-configurable Music-On-Hold and conferences to the admin interface. + Make sure you add the following lines to your meetme.conf and + musiconhold.conf files, or just use the samples included: + #include musiconhold-vicidial.conf + #include meetme-vicidial.conf + +54. Changed the reloading of Asterisk modules to only reload the ones that have + had changes made to them. + +55. Added "Active Agent Server" option to servers to allow disabling of agent + phone logins through ViciDial Agent Screen to a specific server + +56. Added TIMEZONE UP and DOWN lead orders options for campaigns + +57. Added DEAD call time logging and agent notification of call hangup + +58. Added second web form button with different URLs possible per campaign and + in-group. Must be enabled in System Settings + +59. Changed Answering Machine Message campaign option to an audio select with an + option for TTS prompt to be used. You must change any custom values you + have set in this field to an audio prompt or it will not function + properly. Also added WaitForSilence Options setting to the campaign + screen. If you want to use this it must be populated in each campaign. + + You must change 8320 to the following in your extensions.conf: + exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES) + exten => 8320,2,Hangup + # the VD_amd_post.agi script is now depricated + +60. Added additional Voicemail configuration through admin.php. Voicemail boxes + can now be created without being tied to a phone. These voicemail boxes + are added to the active voicemail server and there must be an active + voicemail server defined in the system settings for these to work. + +61. Added List override options for callerID, answering machine message and + drop inbound group to override campaign settings for leads within a + specific list + +62. Added Agent-selectable territories list upon login to select what list + territories they want to place calls in. + REQUIREMENTS: + - Must have System Setting "User Territories Active" enabled + - Must have Campaign "No Hopper Dialing" enabled + - Must have Campaign "Owner Only Dialing" set to TERRITORY + - Must have Campaign "Agent Select Territories" enabled + - Must have User "Agent Choose Territories" enabled + - Leads must have the owner field set to desired territory + +63. Added ability to use Remote Agents with all inbound next-agent-call settings + +64. Added ability to use DNCC and DNCL as Auto-Alt-Dial statuses + +65. Added ability to DNC filter by North American AREACODE using 201XXXXXXX as + a DNC list entry. Enabled by using the AREACODE option in Campaign + Detail settings + +66. Added agi-NVA_recording.agi script to allow for recording of non-agent calls + as well as the ability to log them. If audio recording using this script + make sure you use the STEP 1 audio mixing script in your crontab with + the "--MIX" option so that these recordings are stored properly + +67. Added queue_log DID and IVR logging entries for QueueMetrics + +68. Added secondary FTP audio recording file transfer script to send recordings + to a second FTP server after finishing transfer to the primary server. + +69. Added Conf File Secret to Servers section to allow for a custom password + on internal ASTloop, ASTblind and server-to-server IAX connections + This requires some lines to be removed from the iax.conf file: + - remove the register entries for ASTloop and ASTblind + - remove the account entries for [ASTloop] and [ASTblind] + This requires some lines to be removed from the extensions.conf file: + - remove the TRUNKloop and TRUNKblind entries near the top + +70. Added Outbound Summary Interval Report which will show various statistics + for a range of campaigns, filtering results by call time and displaying + them broken down by 15/30/60 minute periods by campaign. Also has an + option to included the drop overflow calls in the statistics. + +71. Added option for links to the reports page by including a file in vicidial + web directory named 'custom_report_links.html'. This allows you to + maintain custom links even after upgrading your system. There is a + 'EXAMPLEcustom_report_links.html' file included in that directory that + can just be copied and customized for your needs. + +72. Replaced all "SELECT *" MySQL queries with proper field lists. This makes + database table field order less important, allowing for more + customizations by the user without causing problems. + +73. Added an API function(change_ingroups) which allows the selected in-groups + for an agent to be changed while they are active in the ViciDial Agent + screen. Once changed in this way, the agent would need to log out and + back in to be able to select in-groups themselves. Blended can also be + changed using this function. For more information see the AGENT_API.txt + document in the docs directory. + +74. Added a non-agent-API function and a new feature to the Real-Time screen + that allows a manager to change the in-groups selected by an agent in + real time while an agent is logged in. Simply click on the INFO + link + for the agent you want to modify, select the in-groups, select blended + and select if you want to override the agent default settings then + click submit. Manager must have the ability to Change Agent Campaign in + their user settings. + +75. Added Recording Filename and Recording ID as Script variables. If you use + either or both of these the script content will load twice if you have + auto-launch set to SCRIPT. Only works with recording set to ALLCALLS or + ALLFORCE for script on auto-launch. Also, added a refresh link for the + script tab to reload content at will. + +76. Redesigned the Transfer-Conference frame in the agent interface and added + a CONSULTATIVE checkbox to allow for easier consultative 3-way calls + with other ViciDial agents with customer information. This also allows + for AGENTDIRECT consultative transfers. CXFER is no longer needed to do + consultative transfers + +77. Added "Delete Voicemail After Email" options to delete messages on the + server after they have been emailed + +78. Added CRM Login Popup to campaign settings to allow for a custom window to + be opened on agent login, optionally using agent and campaign variables + +79. Added 5 custom fields to the user settings + +80. Added Initial Queue Position logging on inbound calls and a summary of this + to the Inbound report + +81. Added six duplication check methods to the non-agent API add_lead function + +82. Added VIDPROMPT options for in-group call handling to prompt caller for an + ID number that will be populated in the vendor ID(vendor_lead_code) + field. + +83. Added an agent API function to update vicidial_list fields and the field + values in the agent screen on-the-fly for the agent's current call + +84. Added timer action options to campaigns and in-groups allowing a message, + webform or D1/D2-dial to happen at a specified number of seconds after + the customer connects to the agent. Also, an API callw as added for this + +85. Added three more transfer-conference number-to-dial presets as well as List + ID override options for all five number presets + +86. Added Dispo Call URL that allows a back-end call to a web page or URL, that + will not display to the agent, which can send information like the + selected disposition, talk time, phone number or most of the other + fields available in the web form into a formatted URL to post to a + remote web server. Available in Campaigns and In-Groups. + +87. Added log rolling archive script to automatically move logs into archive + tables monthly. The ADMIN_archive_log_tables.pl script needs to be added + to your crontab to run monthly(example: "30 1 1 * *") + +88. Added Traditional Chinese (zt_tw) language translation of the agent screen + which can be found in the LANG_www/agc_tw directory + + + + + +########## UPGRADING FROM 2.0.4 TO 2.0.5 ########## + +1. Note the license change from GPLv2 to AGPLv2. This change was made to close + the ASP loophole for code distribution that was present in the GPLv2 + license. Please read the docs/LICENSE.txt file for more information + +2. install new files: + perl ./install.pl + NOTES: If you have customized any scripts in the bin or agi folders, + then make sure you back them up before running the install.pl script. + This script will replace existing files in the astguiclient installation. + +3. upgrade the MySQL asterisk database: + mysql + use asterisk + \. /path/from/root/extras/upgrade_2.0.5.sql + quit + +4. Several of the MySQL tables have been changed to a HEAP type to reside in + memory to improve performance. + +5. Added the ability for inbound and blended agents to choose their selected + in-groups without logging out. The new GROUPS link at the top of the + agent screen(vicidial.php) can be used when an agent is Paused to + change their selected groups and whether they are set to do Blended + calling or not. There is also a new log with the details of what + groups an agent has selected each time in the user stats page. + +6. Queue Priority has been added allowing for the prioritization of one in-group + over another in-group or outbound campaign(when in blended mode) + +7. Drop call action has been added to both inbound and outbound calling. You + can now send a call that would drop into an inbound group. The call will + still be recorded as a DROP in it's original in-group or campaign, but + the lead information will move on to the drop in-group. + +8. Audio recording mixing/compression/ftping scripts have been completely + rewritten and separated into different scripts for better fault + tolerance. Also, you have the option of compression in to the following + formats: WAV, GSM, MP3 and OGG + - AST_CRON_audio_1_move_mix.pl + - AST_CRON_audio_1_move_VDonly.pl + - AST_CRON_audio_2_compress.pl + - AST_CRON_audio_3_ftp.pl + +9. Created a new script to backup a VICIDIAL setup, including the Asterisk conf + files, prompt recordings, bin, agi and web files: + ADMIN_backup.pl + +10. Added ability to override recording options of a campaign for individual + inbound-groups + +11. The 8 outbound agi-VDADtransfer scripts are in process of being consolidated + into a single AGI script: agi-VDAD_ALL_outbound.agi + All older outbound scripts are depricated and do not function any more + +12. The start of a new QC (Quality Control) feature [non functional right now] + +13. Install the Switch perl module from CPAN + perl -MCPAN -e shell + - install Switch + +14. Recording to RAM now uses tmpfs it is usually included in all kernels if you want + to check in in menuconfig you will find it under + File Systems --> Pseudo filesystems --> [*] Virtual memory file system support. + It does not hurt to enable + [*] Tmpfs POSIX Access Control Lists + as well. + The following line should be added to /etc/fstab: + tmpfs /var/spool/asterisk/monitor tmpfs rw 0 0 + Mounting the ramdisk in rc.local should be remove: + # mke2fs -m 0 /dev/ram0 + # mount /dev/ram0 /var/spool/asterisk/monitor + This allows for a more efficient use of memory and recording to RAM with less RAM + available. + +15. The following should be added to the [featuremap] section of /etc/asterisk/features.conf + to prevent agents and called parties from being able to "transfer" a call to any + number possible in your Asterisk dialplan. + [featuremap] + blindxfer => D + +16. Added ip_relay to allow for loopback IAX trunks that make true blind + monitoring possible for all agents no matter their phone type 0860XXXX. + +17. Added the ability to load balance the logins to vicidial.php for phones + that are registered to multiple servers on a multi-server system. + Simply put multiple phone_login values in the phone login field at + login separated by a comma and the vicidial.php script will pick the + server that has the fewest agents logged into it at the moment of login. + +18. Added ability for vicidial.php to populate the phones.computer_ip field upon + agent login. Options set in the vicidial.php file to allow for overwrite + every login or only if field is empty. + +19. Several code changes for better UTF8 compatibility with the database as well + as special character leads in the agent screen, lead loading + +20. Added after hours redirect of calls to an in-group to another in-group + +21. Added collection of hangup reasons for inbound and outbound calls in the + vicidial_log and vicidial_closer_log tables + +22. Added a new timeclock feature w/ audit and log, including the addition + of shifts to VICIDIAL user groups and the ability to auto-generate + user IDs as you are adding users to the system. timeclock.php user login + page created and linked to from admin/agent/welcome screens + +23. Added a new inbound/closer(queues) report for showing service levels + +24. Added Calls in Queue counter to agent vicidial.php screen + +25. Added ability to use calltime scheme for calls not yet in an in-group(queue) + as well as display in real-time stats. See Inbound_VDAC_IVR.txt doc for + more information + +26. Auto-dial survey broadcast campaigns can now be fully configured within the + admin.php interface and they have new options shown in the Survey sub- + section + +27. Changed add-to-DNC list to allow for multiple phone numbers per submission + +28. Date/time and phone formats that appear in the VICIDIAL agent screen are now + customizable as defined in the Admin -> System Settings screen. + +29. Added manual dial and inbound queue_log logging capability for better + QueueMetrics compatibility + +30. Added some basic agent interface API functions and an agc/api.php script + +31. A field has been added to vicidial_list(last_local_call_time) to sort by + the last time a lead was called as well as for lead recycling changes. + +32. IMPORTANT FOR RECORDINGS!!! + The recording extensions have been changed within VICIDIAL so you need to + add the following lines to your extensions.conf + ; quiet monitor-only entry and leaving conferences for VICIDIAL (recording) + exten => _58600XXX,1,Meetme,${EXTEN:1}|Fmq + +33. Added option (for Internet Explorer users only) to copy a field to the + clipboard of the agent computer upon a call being sent to the agent. + +34. Added new alternate number dialing method which allows for over 65,000 alt + phone numbers per lead. Currently these extra numbers are only available for + auto dialing, not manual dial. These extra alternate number leads must be + imported either with the CLI lead loader(VICIDIAL_IN_new_leads_file.pl) or + the non-agent API script. + +35. Added campaign-specific DNC filtering lists to the system + +36. Added optional dialplan entries to sample extensions.conf to play a not-in- + service message for invalid phone numbers that cannot be dialing in North + America + +37. Rewrote Leave-3way function for conference calling to work more reliably on + high load systems. + Need to add more vicidial_conferences entries and meetme.conf entries + for this, see the meetme.conf.sample file and the + first_server_install.sql file for more information + +38. Added several new features to inbound call handling including: + - announce place in line + - announce estimated hold time + - welcome message options + - options for call routing when estimated hold time is too high + - press 1 to leave a voicemail for customers if wait time too high + +39. Added DID call routing to allow for basic routing of calls to phones, + extensions, voicemail and VICIDIAL inbound groups without editing the + extensions.conf dialplan. + *requires initial adding one line to dialplan of inbound context: + exten => _X.,1,AGI(agi-DID_route.agi) + *as well as a few more lines in your VICIDIAL default context: + ; DID forwarded calls + exten => _99909*.,1,Answer + exten => _99909*.,2,AGI(agi-VDAD_ALL_inbound.agi) + exten => _99909*.,3,Hangup + +40. Added ability to set callerID number on outgoing conference calls to + CAMPAIGN, CUSTOMER or AGENT_PHONE callerID settings. + +41. New Slovak translation for the agent screen, as well as new German agent + screen translation and new German buttons for the agent screen + +42. New Welcome demo and languages screens with links to all translations of + agent and admin screens + +43. Added INBOUND_MAN dial method to allow for inbound call handling by agents + that are also placing manual dial list calls through their campaign lists + +44. Added option to see the inbound group call stats in the Real-time screen + +45. Added ability for agents to dial in to an AGI script(agi-AGENT_dial_in.agi) + to log their phone into the session instead of having VICIDIAL call them. + The user ID and password for the agent must be digits only for this to work! + This requires the following to be added to the dialplan on the dial-in DID + or extension that you want to use: + exten => 2345,1,Answer ; Answer the line + exten => 2345,2,AGI(agi-AGENT_dial_in.agi) + exten => 2345,3,Hangup + +46. Added pause codes display to the Real-time report as well as pause code + statistics to the agent performance detail report. Also added an option to + force agents to enter a pause code(this is a campaign option) + +47. Added full MySQL error logging to vicidial agent web interface. Logs are + written to the webserver. + +48. Added new inbound-only reporting to Real-time report as well as many new + features to existing inbound report. Created IVR stats report to show stats + on Asterisk IVRs + +49. Updated Vtiger integration to version 5.0.4 and allow searching by + leads/accounts/vendors. Also added user synchronization with vicidial_users. + Also added click-to-dial from Vtiger sending call to vicidial agent screen. + Also added batch synchronization of Accounts between Vtiger and VICIDIAL. + +50. Added notification of time synchronization problems in the vicidial.php page + +51. Added AGENTDIRECT queueing to be able to send calls to only one agent + without having to create a new in-group for each agent. You can configure + DIDs to use AGENTDIRECT, and you can have VICIDIAL agents send calls to + specific agents using the AGENTDIRECT transfer group with LOCAL CLOSER button + and putting the agent to send the call to in the Number To Dial field. + +52. Added agent alert option to agent screen. sends browser alert prompt when + a call is send to the agent screen. + +53. Added option for using North American NANPA prefix timezone encoding for + more accurate time zone encoding. The data is NOT included but can be + purchased from the VICIDIAL Group. + +54. Added System Settings option to disable auto-dialing(list dialing) from the + system to simplify administration for inbound-only call centers + +55. Added patch and configuration options to allow VICIDIAL to work with Sangoma + ParaXip CPD(Call Progress Detection) for Answering Maching and Fax detection + +56. Added list_download.php that allows you to download the entire contents of + vicidial lists from the admin.php interface. You must set the download_lists + permission in vicidial_users to 1 for this to work. + +57. Small redesign of the agent interface to use grey backgrounds and new tabs + +58. Added Asterisk version prompt to the install.pl script to allow for the + copying of the proper conf files for the installed Asterisk version + +59. Added auto-generation of SIP and IAX phones and carriers into the Asterisk + conf files so that you can fully configure them using only the admin.php + web interface. See the ASTERISK_CONF-GEN.txt file for more information + +60. Added group alias option for selecting callerID on manual and 3rd-party + calls + +61. Added options for custom web variables for each agent per in-group and + camaign. This is definable in the user modification page + +62. Added Agent Shift enforcement options to restrict logins and vicidial + agent activity + +63. Added Server vital statistics(load/CPU/disk) to the reports screen and the + server modification screen + +64. Removed the admin_changes flat text log file and now put all administrative + actions into the vicidial_admin_log table in MySQL. These logs are displayed + to user_level 9 users in admin.php through a link on the REPORTS screen, and + at the bottom of the other screens (USERS, CAMPAIGNS, LISTS, etc...)you can + click on the "Click here to see Admin chages to this record" link to find out + the most recent changes to that record. + +65. Added uniform admin headers to all administrative pages and reports + +66. Added Calls Export Utility allowing exporting of call and lead data by + defining the following parameters: date range, campaigns, in-groups, statuses, + lists and user groups. A flat tab-delimited text file is exported. + +67. Added new monitoring functionality to allow monitoring from one agent to + another without hanging up + +68. Added Russian version of the Agent screen + +69. Added Dutch version of the Agent screen + +70. Many changes have been made to the extensions.conf dialplan. It is usually + better to take the default docs/conf_examples/extensions.conf.sample file and + take the customizations from your old extensions.conf file and move them into + the new file. + + + + + +########## UPGRADING FROM 2.0.3 TO 2.0.4 ########## + +1. install new files: + perl ./install.pl + NOTES: If you have customized any scripts in the bin or agi folders, + then make sure you back them up before running the install.pl script. + This script will replace existing files in the astguiclient installation. + +2. upgrade the MySQL asterisk database: + mysql + use asterisk + \. /path/from/root/extras/upgrade_2.0.4.sql + quit + NOTE: If you do not use the standard "cron" database login, you will + need to add "LOCK TABLES" to the permissions to your db login + +3. add the "server_reports" directory to your Web Path: + mkdir $PATHweb/vicidial/server_reports/ + chmod 0777 $PATHweb/vicidial/server_reports/ + +4. A new set of changes have been made to the statuses sections in the admin.php + pages allowing for categorizing statues and modifying them without delete. + Also, the gathering of a tally of the statuses in these categories is + now available on the timeonVDADall scripts. + +5. The admin.php interface has had more sections broken into sub-sections for + easier management and rapid modifications. + +6. Added option for shorter enter and leave sounds(done during Asterisk build) + BASE/SCRATCH_INSTALL or extras/Changed_meetme_sounds for more details + +7. Added optional patch to meetme in Asterisk 1.2.X that will allow for better + DTMF passthru. Need to use the "F" flag to enable on Meetme in + extensiosn.conf. Feature is backported from Asterisk 1.4.X + +8. REQUIRED! Changed the FastAGI_log process to consolidate the "h" exten hangup + process into one executed function instead of two. Because of this, the + h exten needs to be changed to only the following: + exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})) + +9. Moved the audio transfer script and report generating scripts settings to + /etc/astguiclient.conf settings file. FTP and reports login info. + +10. Added agent alert, music-on-hold and several other parameters to inbound + groups. Make sure you have musiconhold working properly before using + in production. + +11. REQUIRED CHANGE! in your dialplan you must now add lines for load balancing + even if you only have one server, and you must also have lines with the + 7 prefix for silent insertion into the meetme conference: + exten => _010*010*010*015*8600XXX,... + exten => _010*010*010*015*8600XXX*.,... + exten => _010*010*010*015*78600XXX,... + exten => _010*010*010*015*78600XXX*.,... + exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi) + See LOAD_BALANCING.txt and extensions.conf.sample for more information + +12. Inbound, Blended and Closer-type campaigns are no longer required to have + campaign_id incude specific words or characters to be treated as such. + There is now a new campaign_allow_inbound field where this is set. + +13. Call distribution by agent ranking per in-group and total calls to in-group + +14. Added ability to copy the settings campaigns, users and in-groups to new records + +15. REQUIRED CHANGE! Old inbound and Closer AGI scripts have all been consolidated + into a single script: agi-VDAD_ALL_inbound.agi + Please look at the script header or the SCRATCH_INSTALL doc for more + info on how to alter your extenions.conf to use the new script. + The old agi-VDAD_closer... scripts have all been depricated and moved + to the extras/old_agi/ directory. + +16. AST_agent_performance_detail.php report script has been completely rewritten + +17. REQUIRED CHANGE! If you use Fronter/Closer campaigns where an agent is sending + calls to a closer, you will need to define the new "Default Transfer Group" + field with the inbound group that you want to take the calls. Transfers + are now allowed from a list of definable in-groups that you have to set + in the campaign detail screen. + +18. In the vicidial.php code, you can now modify the size of the elements on the + screen using the BROWSER_HEIGHT and BROWSER_WIDTH variables. + + + + + +########## UPGRADING FROM 2.0.2 TO 2.0.3 ########## + +1. install new files: + perl ./install.pl + NOTES: If you have customized any scripts in the bin or agi folders, + then make sure you back them up before running the install.pl script. + This script will replace existing files in the astguiclient installation. + +2. upgrade the MySQL asterisk database: + mysql + use asterisk + \. /path/from/root/extras/upgrade_2.0.3.sql + quit + +3. The server_stats.php has been merged into the vicidial/admin.php page + +4. Width of the admin.php screen, and the color and size of the headers are all + now definable by variables at top of the admin.php script. + +5. Dial Override checkbox added to the campaign modification screen of admin.php + to force manual dial_level changes in ADAPT dialing modes. + +6. Behaviour of HotKeys in manual dial mode has changed to automatically go on + to the next lead when a HotKey is pressed. + +7. It is now possible for agents to dial alternate phone numbers using only + HotKeys if ALTPH2 and/or ADDR3 are added to a campaign's hotkeys. + +8. You can now use BLEND/INBND/*_C/*_B/*_I to define a campaign a a CLOSER + campaign capable of taking inbound calls. + +9. In Auto-dialing campaigns(RATIO and ADAPT) you can now configure the dialer + to dial up to two alternate numbers per lead automatically, as well as + defining the statuses that you want to do this for. More info about + this feature in the ALTERNATE_NUMBER_DIALING.txt doc. + +10. Added ability to send multiple concurrent transfers at once to agents in + outbound campaigns. This will greatly benefit larger VICIDIAL + installations by decreasing the time it takes for a call to get to an + agent once answered after a large queue backup. This is defaulted to + AUTO, but can be forced to a set number. This is the Concurrent + Transfers option in the Campaign Modification page. + +11. New optimized code for AST_manager_send.pl and AST_send_action_child.pl. + Thanks to Lott Caskey for the code contribution + +12. The field user_group has been added to several log tables to allow for + better tracking of stats by user groups. Several reports now offer + user group display options. + +13. VERY IMPORTANT!!! Make sure the php.ini setting for memory_limit is set to + a minimum of 12M, we recommend 48M: + memory_limit = 48M + Some of the scripts have grown in size and need more memory to run + properly on some systems. + +14. Added ability to control access to each admin section by vicidial_users. + This includes a view_reports settings to restrict access to all of the + reports scripts. + +15. Added Agent Pause Codes that are definable per campaign and allows the + agent to select what they are doing when they are in pause time. + +16. Added optional Asterisk-compatible queue_log logging for QueueMetrics + compatibility. See the QUEUEMETRICS.txt doc for more information + +17. RECOMMENDATION - If you are calling in the USA, you should add the + "--postal-code-gmt" flag to your adjust GMT script in the crontab to + more accurately assign timezones to your leads. + +18. Changed dial statuses to use dynamic number of dial statuses instead of + static dial_status_x fields. + +19. Added Mute/UnMute ability to vicidial.php agent screen. To use, you must + have the _X18600XXX and _X28600XXX entries in your extensions.conf + +20. Added basic sipsak display on compatible SIP devices for VICIDIAL activity. + +21. Tested with Asterisk 1.2.16 and 1.2.17, new patch for meetme volume controls + for those two versions, see SCRATCH_INSTALL for more info. + +22. Added HOME link to the admin web page that goes to a configurable web address. + + + + + + +########## UPGRADING FROM 2.0.1 TO 2.0.2 ########## + +1. install new files: + perl ./install.pl + NOTES: If you have customized any scripts in the bin or agi folders, + then make sure you back them up before running the install.pl script. + This script will replace existing files in the astguiclient installation. + + /etc/astguiclient.conf has new variables for new functionality including: + - new ADMIN_keepalive_ALL process settings + - FastAGI_log server settings + and comments are added to the astguiclient.conf file + +2. upgrade the MySQL asterisk database: + mysql + use asterisk + \. /path/from/root/extras/upgrade_2.0.2.sql + quit + /usr/share/astguiclient/ADMIN_area_code_populate.pl + The Daylight Savings Time scheme for the USA and Canada has been + updated for the 2007 changes. Also, Brazil DST has been added. + Another addition on this topic is the addition of USA zipcode + GMT offset list that allows for more accurate timezone lookups. + +3. The astguiclient web directory has been removed and the + astguiclient/admin.php functions have been merged into the + vicidial/admin.php page + +4. You can now define trunks for use only by specific campaigns. See the help + in the vicidial/admin.php server modification page under the + VICIDIAL SERVER TRUNKS section. + +5. Agents now have the ability to control volume levels for any call in their + meetme room directly from the vicidial.php page. This only works on + Asterisk 1.2.7.1, 1.2.12.1, 1.2.13 or SVN_1.2 and the meetmeadmin_volume_control.patch + patch must be applied as described in the SCRATCH_INSTALL. Also, a few + lines must be added to the extensions.conf for this to work: + (_X48600XXX, _X38600XXX, 8300 [see docs/conf_examples/extensions.conf.sample]) + +6. Multiple ADMIN_keepalive scripts have been replaced with a single script + ADMIN_keepalive_ALL.pl + Remove all other ADMIN keepalive entries in your crontab and replace + with this one: + ### keepalive script for astguiclient processes + * * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl + + NOTE: the scripts to be kept alive are to be defined in the astguiclient.conf file + +7. FastAGI replacement for call_log and VD_hangup AGI scripts: + FastAGI_log.pl - requires cpan module Net::Server to run + If you want to use it, read the comments at the top of the script + Look at the docs/conf_examples/extensions.conf.sample file for examples + of how to use this new feature in your dialplan + - cpan + - install Net::Server + +8. Fix for unregistered SIP trunks (thanks to Chris Doyle): + look at the bottom of the docs/conf_examples/extensions.conf.sample + file for examples of what to put in your extensions.conf file to get + VICIDIAL auto dialing to work with non-registered SIP trunks. remember + to put sip-silence.gsm in your /var/lib/asterisk/sounds/ directory. + +9. Added new campaign summary screen and reformatted the timeonVDADall report: + A summary screen with all of the call information for every active + campaign for the day. reformatted campaign Realtime report with new + colors and other display options. + +10. Added new script to change the server_ip entries when a machine changes IPs + The ADMIN_update_server_ip.pl script can be used to update your server's + IP address within all vicidial database tables and config files from + this one script. This can even be run in the crontab if you are on + a DHCP service and need to modify your IP address often + +11. Added new script to allow for dial-out-only(no agents on the server) + VICIDIAL servers as well as balance dialing where a server with + available trunk lines can dial lines for another server that does not + have enough lines to dial for it's dial_level. AST_VDauto_dial_FILL.pl + script is only for multi-server systems and is started from new + ADMIN_keepalive_ALL.pl script with option 7 in astguiclient.conf + +12. Added the ability to restrict agent logins by user group to a specific set + of campaigns. This is definable in the USER GROUPS section of admin.php. + You must make sure that your admin login is in a user group and that + the selected user group has the allowable campaigns set to ALL + CAMPAIGNS to be able to view and modify all campaigns in the system. + +13. Added lead_id and user fields to the recording_log, along with cross- + reference links in several admin web pages for these. + +14. Changed Drop percentage to be out of Answered calls for FTC compliance. + +15. Tested new asterisk-perl module (0.09) and found that it is NOT compatible. + Please make sure you use asterisk-perl-0.08 ONLY. + + + + + +########## UPGRADING FROM 1.1.12-3 TO 2.0.1 ########## + +If you are upgrading to the 2.0 code tree from the 1.1.12-3 release there have +been several changes made to the code base and to where some files are stored in +the release as well as on your machine. + +1. upgrade the MySQL Asterisk database: + mysql + use asterisk + \. /path/from/root/extras/upgrade_2.0.1.sql + quit + + +2. use the new installer for astguiclient-VICIDIAL files: + NOTE: this new script is interactive with prompts. this script will + create the new /etc/astguiclient.conf settings file that replaces the + old AST_SERVER_conf.pl file that has been removed. Also, this settings + file is used by dbconnect.php scripts so no need to manually edit them + + perl install.pl + + +3. Make sure you have MySQL clientlibs installed: +Because all perl script now use DBI instead of Net::MySQL you need to make sure +that you have at least the MySQL client installed on all VICIDIAL servers even +if the MySQL server is installed on another machine. You can skip this step if +MySQL server is already on your VICIDIAL server: + Go to http://www.mysql.com/ and download the mysql package + - to install this directly on the command line type: + - cd /usr/local + - wget http://mirror.trouble-free.net/mysql_mirror/Downloads/MySQL-4.0/mysql-4.0.27.tar.gz + - gunzip mysql-4.0.27.tar.gz + - tar xvf mysql-4.0.27.tar + - cd mysql-4.0.27 + - groupadd mysql + - useradd -g mysql mysql + - "./configure --prefix=/usr/local/mysql --without-server --enable-shared=yes --with-readline" + - make + - make install + - you are done + + +4. New MySQL perl modules: +You will need to make sure that you have installed the following perl modules: +DBI (top-level Database interface module "install DBI") +DBD::mysql (MySQL-specific interface through DBI "force install DBD::mysql") + + +5. new predictive dialing crontab entry: +If you will be using the new predictive dialing functions you need to make sure +you have the keepalive for this function loaded in your crontab: +NOTE: this only needs to be on a single server if you are in a multiple +VICIDIAL server setup. +### keepalive script for VICIDIAL predictive script +* * * * * /usr/share/astguiclient/ADMIN_keepalive_AST_VDadapt.pl + + +6. all old crontab entries and /home/cron files +All of your old crontab entries need to be changed from /home/cron to +/usr/share/astguiclient if you choose the default installation path. You can +manually set the path to /home/cron if you like though since the home path is +now dynamic in all vicidial perl(.pl) scripts. If you do choose to use the new +default path, you can delete everything in the /home/cron directory if you like + + +7. old /etc/rc.d/rc.local entries +Be sure to change your /etc/rc.d/rc.local entries(the commands that are run at +system boot to start asterisk and other scripts like log rolling) and change the +/home/cron path to the new /usr/share/astguiclient path. + + +8. other notes: +- there is a new DIAL METHOD field and several other new dial-control fields +in campaign modification page, please take a minute to read the help +documentation for these new features. + + diff --git a/agc_2-X/branches/agc_2.2.0/agi/VDL_CID_lookup.agi b/agc_2-X/branches/agc_2.2.0/agi/VDL_CID_lookup.agi new file mode 100644 index 00000000..d9085a6b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/VDL_CID_lookup.agi @@ -0,0 +1,405 @@ +#!/usr/bin/perl +# +# VDL_CID_lookup.agi version 0.1 *DBI-version* +# +# runs after a call goes through AMD in extensions.conf to send the call on to +# it's proper destination +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: +# exten => 8369,1,Ringing +# exten => 8369,2,Wait(1) +# exten => 8369,3,Answer +# exten => 8369,4,AGI(VDL_CID_lookup.agi) +# exten => 8369,5,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----IN_TEST-----7275551212-----Closer-----park----------999-----1) +# exten => 8369,6,Hangup +# exten => 8369,7,AGI(call_logCID.agi,${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME}) +# exten => 8369,8,AGI(agi-VDADinbound_NI_DNC_CIDlookup.agi) +# exten => 8369,9,Hangup +# +# +# Copyright (C) 2008 Matt Florell LICENSE: GPLv2 +# +# changes: +# 80930-0226 - first build +# 81015-1702 - added filter stats +# + +$filter_stats = 1; +$script = 'VDL_CID_lookup.agi'; + +($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) {$hour = "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"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1; $calleridnum = $callerid;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|BUS: $business_hours|"; &agi_output;} + +$callerid =~ s/\"//gi; + + + + + + + + + + + + + +if ($filter_stats > 0) + { + ### find out if phone number exists in the vicidial_list table + $stmtA = "SELECT count(*) FROM vicidial_list where phone_number = '$callerid';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDL_count = "$aryA[0]"; + } + $sthA->finish(); + + if ($VDL_count < 1) + { + $priority = ($priority + 3); + $stmtA = "INSERT INTO live_inbound_log (uniqueid,channel,server_ip,caller_id,extension,start_time,comment_a,comment_b) values('$uniqueid','$channel','$VARserver_ip','$callerid','$extension','$SQLdate','INBOUND_IVR_FILTER','NOT_FOUND')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- cid_lookup finish: : |$affected_rows|$callerid|$priority|NOT_FOUND|"; &agi_output;} + + print "SET PRIORITY $priority\n"; + checkresult($result); + + $dbhA->disconnect(); + + exit; + } + else ################# LEAD IN SYSTEM, FILTER FURTHER ######################### + { + $stmtA = "SELECT count(*) FROM vicidial_list where phone_number = '$callerid' and status IN('A1','A2','A3','A4','SALE');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $sales_count = "$aryA[0]"; + } + $sthA->finish(); + + if ($sales_count > 0) + { + $priority = ($priority + 3); + $stmtA = "INSERT INTO live_inbound_log (uniqueid,channel,server_ip,caller_id,extension,start_time,comment_a,comment_b,comment_c) values('$uniqueid','$channel','$VARserver_ip','$callerid','$extension','$SQLdate','INBOUND_IVR_FILTER','EXISTING','SALE')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- cid_lookup finish: : |$affected_rows|$callerid|$priority|EXISTING|SALE|"; &agi_output;} + + print "SET PRIORITY $priority\n"; + checkresult($result); + + $dbhA->disconnect(); + + exit; + } + + $stmtA = "SELECT count(*) FROM vicidial_list where phone_number = '$callerid' and status IN('DNC');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dnc_count = "$aryA[0]"; + } + $sthA->finish(); + + if ($dnc_count > 0) + { + $priority = ($priority + 3); + $stmtA = "INSERT INTO live_inbound_log (uniqueid,channel,server_ip,caller_id,extension,start_time,comment_a,comment_b,comment_c) values('$uniqueid','$channel','$VARserver_ip','$callerid','$extension','$SQLdate','INBOUND_IVR_FILTER','EXISTING','DNC')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- cid_lookup finish: : |$affected_rows|$callerid|$priority|EXISTING|DNC|"; &agi_output;} + + print "SET PRIORITY $priority\n"; + checkresult($result); + + $dbhA->disconnect(); + + exit; + } + + $stmtA = "SELECT count(*) FROM vicidial_list where phone_number = '$callerid' and list_id NOT IN('999999');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $archive_count = "$aryA[0]"; + } + $sthA->finish(); + + if ($archive_count < 1) + { + $priority = ($priority + 3); + $stmtA = "INSERT INTO live_inbound_log (uniqueid,channel,server_ip,caller_id,extension,start_time,comment_a,comment_b,comment_c) values('$uniqueid','$channel','$VARserver_ip','$callerid','$extension','$SQLdate','INBOUND_IVR_FILTER','EXISTING','ARCHIVE')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- cid_lookup finish: : |$affected_rows|$callerid|$priority|EXISTING|ARCHIVE|"; &agi_output;} + + print "SET PRIORITY $priority\n"; + checkresult($result); + + $dbhA->disconnect(); + + exit; + } + + $stmtA = "INSERT INTO live_inbound_log (uniqueid,channel,server_ip,caller_id,extension,start_time,comment_a,comment_b,comment_c) values('$uniqueid','$channel','$VARserver_ip','$callerid','$extension','$SQLdate','INBOUND_IVR_FILTER','CLEAN','TO_AGENT')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- cid_lookup finish: : |$affected_rows|$callerid|$priority|EXISTING|CLEAN|"; &agi_output;} + + exit; + } + + } + +else + { + ### find out if phone number exists in the vicidial_list table + $stmtA = "SELECT count(*) FROM vicidial_list where phone_number = '$callerid' and list_id NOT IN('999999');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDL_count = "$aryA[0]"; + } + $sthA->finish(); + + if ($VDL_count < 1) + { + $priority = ($priority + 3); + if ($AGILOG) {$agi_string = "-- cid_lookup finish: |$priority|$callerid"; &agi_output;} + print "SET PRIORITY $priority\n"; + checkresult($result); + } + + } + +$dbhA->disconnect(); + +exit; + + + + + + +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++; + } +} + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/VD_amd.agi b/agc_2-X/branches/agc_2.2.0/agi/VD_amd.agi new file mode 100644 index 00000000..32e0e3f4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/VD_amd.agi @@ -0,0 +1,628 @@ +#!/usr/bin/perl +# +# VD_amd.agi version 2.2.0 *DBI-version* +# +# runs after a call goes through AMD in extensions.conf to send the call on to +# it's proper destination, or when agent sends to VM message +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: +# exten => 8369,1,AGI(call_log.agi,${EXTEN}) +# exten => 8369,2,(AMD),AMD +# exten => 8369,3,AGI(VD_amd.agi,${EXTEN}-----NO) +# exten => 8369,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) +# exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) +# exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) +# exten => 8369,7,Hangup +# +# exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES) +# exten => 8320,2,Hangup +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60206-1434 first build +# 60207-1205 added database records entries/modifications +# 60207-1507 added ability to send AMs to campaign-defined message to leave +# 60731-1407 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60815-1310 - added output options check from database +# 71118-0252 - compatibility with Asterisk 1.4, added AA and AM statuses +# 90916-1317 - Changed to audio file playback and TTS playback +# 90924-1533 - Added answering machine message list_id override option +# + +$script = 'VD_amd.agi'; + +$A = 1; # set to 1 for AMD output messages mode +$AMD_LOG = 1; # set to 1 for logfile + +($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) {$hour = "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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} +if (!$CEPLOGfile) {$CEPLOGfile = "$PATHlogs/Cepstral.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($AGILOG) + {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + $CLI_exten = $ARGV_vars[0]; + $force_playback = $ARGV_vars[1]; + } + + +$|=1; +while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1; $calleridnum = $callerid;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + } + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; +# ### set the callerid to the ACQS value(calleridname) +# print "SET CALLERID $callerid\n"; +# checkresult($result); +# print STDERR "callerID changed: $callerid\n"; + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; +# ### set the callerid to the ACQS value(calleridname) +# print "SET CALLERID $callerid\n"; +# checkresult($result); +# print STDERR "callerID changed: $callerid\n"; + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) + { + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} + } + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); +$VD_lead_id = $CIDlead_id; + +if ($AGILOG) {$agi_string = "+++++ VD amd START : |$CIDlead_id|$now_date|$AST_ver|$priority|$calleridname|"; &agi_output;} + + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) + { + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} + if ($priority > 2) {sleep(1);} + exit; + } + + +$AMDSTATUS = $AGI->get_variable(AMDSTATUS); +$AMDCAUSE = $AGI->get_variable(AMDCAUSE); + +if ($A) + { + if ($AGILOG) {$agi_string = "AAAAA AMD results: |$AMDSTATUS|$AMDCAUSE|"; &agi_output;} + } + +# Asterisk 1.2.X +# AAAAA AMD results: |AMD_PERSON|AMD_HUMAN-300-300| +# AAAAA AMD results: |AMD_MACHINE|AMD_LONGGREETING-1500-1500| +# Asterisk 1.4.X: +# AAAAA AMD results: |HUMAN|HUMAN-1000-1000|0000000000| +# AAAAA AMD results: |MACHINE|MAXWORDS-4-4|0000000000| + +if ($AMD_LOG) + { + open(Lout, ">>$PATHlogs/AMD_log.txt") + || die "Can't open $PATHlogs/AMD_log.txt: $!\n"; + print Lout "$now_date|$VD_lead_id| |$AMDSTATUS|$AMDCAUSE|$calleridnum|\n"; + close(Lout); + } + + +################################################################################## +########## AMD says it's a person so exit and go on to transfer scripts ########## +if ( ($AMDSTATUS =~ /PERSON|HUMAN|NOTSURE|HANGUP/) && ($force_playback !~ /YES/) ) + { + if ($A) + { + if ($AGILOG) {$agi_string = " AMD exiting"; &agi_output;} + } + exit; + } + +else + { + ################################################################################ + ########## AMD says it's a machine so modify statuses and hangup call ########## + ########## or play back a message on AMs ########## + + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + + + ########## FIND ext_context from the servers table ########## + $stmtA = "SELECT ext_context FROM servers where server_ip = '$VARserver_ip';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBext_context = "$aryA[0]"; + if ($DBext_context) {$ext_context = $DBext_context;} + $rec_count++; + } + $sthA->finish(); + + + ########## FIND vicidial_auto_calls record ########## + $stmtA = "SELECT campaign_id,phone_code,phone_number FROM vicidial_auto_calls where callerid='$callerid' order by auto_call_id desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VD_campaign_id = "$aryA[0]"; + $VD_phone_code = "$aryA[1]"; + $VD_phone_number = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + + + ########## UPDATE vicidial_list ########## + $stmtA = "UPDATE vicidial_list set status='AA' where lead_id = '$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$VD_lead_id"; &agi_output;} + + ########## DELETE vicidial_auto_calls entry ########## + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by auto_call_id desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAC record deleted: |$affected_rows| |$VD_lead_id|$uniqueid|$VD_callerid"; &agi_output;} + + ########## FIND AND UPDATE vicidial_log ########## + $stmtA = "SELECT start_epoch FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$VD_lead_id' order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCUSTDATA=0; + while ($sthArows > $epc_countCUSTDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_start_epoch = "$aryA[0]"; + $epc_countCUSTDATA++; + } + $sthA->finish(); + + if (!$epc_countCUSTDATA) + { + if ($AGILOG) {$agi_string = "no VDL record found: $uniqueid $calleridname $VD_lead_id $uniqueid"; &agi_output;} + $end_epoch = ($now_date_epoch + 3); + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed,length_in_sec,end_epoch) values('$uniqueid','$VD_lead_id','$VD_campaign_id','$now_date','$now_date_epoch','AA','$VD_phone_code','$VD_phone_number','VDAD','N','3','$end_epoch')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + } + else + { + $VD_seconds = ($now_date_epoch - $VD_start_epoch); + $stmtA = "UPDATE vicidial_log set status='AA',end_epoch='$now_date_epoch',length_in_sec='$VD_seconds' where uniqueid='$uniqueid' and lead_id='$VD_lead_id' order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid|"; &agi_output;} + } + + + ### Grab vmail forward message values from the database + $stmtA = "SELECT am_message_exten,amd_send_to_vmx,waitforsilence_options FROM vicidial_campaigns where campaign_id = '$VD_campaign_id' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DB_am_message_exten = $aryA[0]; + $DB_amd_send_to_vmx = $aryA[1]; + $waitforsilence_options = $aryA[2]; + $sthA->finish(); + } + else + { + $sthA->finish(); + ### Grab vmail forward message values from the database + $stmtA = "SELECT am_message_exten,amd_send_to_vmx,waitforsilence_options FROM vicidial_campaigns where closer_campaigns LIKE \"% $VD_campaign_id %\" order by campaign_id limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DB_am_message_exten = $aryA[0]; + $DB_amd_send_to_vmx = $aryA[1]; + $waitforsilence_options = $aryA[2]; + $sthA->finish(); + } + else + {$sthA->finish();} + } + + ### check for list_id override + if ($DB_amd_send_to_vmx =~ /Y/) + { + ### find list_id for this lead + $stmtA = "SELECT list_id from vicidial_list where lead_id = '$VD_lead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsL=$sthA->rows; + if ($sthArowsL > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_list_id = $aryA[0]; + } + $sthA->finish(); + + $am_message_exten_override=''; + ### gather list_id overrides + $stmtA = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$VD_list_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsL=$sthA->rows; + if ($sthArowsL > 0) + { + @aryA = $sthA->fetchrow_array; + $am_message_exten_override = $aryA[0]; + if (length($am_message_exten_override) > 0) + {$DB_am_message_exten = $am_message_exten_override;} + } + $sthA->finish(); + } + + if ($AGILOG) {$agi_string = "-- AMD campaign values: |$VD_campaign_id|$DB_am_message_exten|$DB_amd_send_to_vmx|"; &agi_output;} + + if ( ( ($DB_amd_send_to_vmx =~ /Y/) || ($force_playback =~ /YES/) ) && (length($DB_am_message_exten) > 0) ) + { + $stmtA = "UPDATE vicidial_log set status='AM' where uniqueid='$uniqueid' and lead_id='$VD_lead_id' order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log AM update: |$affected_rows|$uniqueid|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='AM' where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list AM update: |$affected_rows|$uniqueid|"; &agi_output;} + + + ##### BEGIN Check if prompt uses TTS, if so, create TTS and set the filename to the generated prompt ##### + if ($DB_am_message_exten =~ /^TTS/) + { + $TTS_filename = $DB_am_message_exten; + $TTS_filename =~s/^TTS//gi; + $TTS_filename =~s/\|.*//gi; + + if ($AGILOG) {$agi_string = "-- TTS : |$TTS_filename|"; &agi_output;} + + $stmtA = "SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$VD_lead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $TTS_lead_id = $aryA[0]; + $TTS_entry_date = $aryA[1]; + $TTS_modify_date = $aryA[2]; + $TTS_status = $aryA[3]; + $TTS_user = $aryA[4]; + $TTS_vendor_lead_code = $aryA[5]; + $TTS_source_id = $aryA[6]; + $TTS_list_id = $aryA[7]; + $TTS_phone_number = $aryA[8]; + $TTS_title = $aryA[9]; + $TTS_first_name = $aryA[10]; + $TTS_middle_initial = $aryA[11]; + $TTS_last_name = $aryA[12]; + $TTS_address1 = $aryA[13]; + $TTS_address2 = $aryA[14]; + $TTS_address3 = $aryA[15]; + $TTS_city = $aryA[16]; + $TTS_state = $aryA[17]; + $TTS_province = $aryA[18]; + $TTS_postal_code = $aryA[19]; + $TTS_country_code = $aryA[20]; + $TTS_gender = $aryA[21]; + $TTS_date_of_birth = $aryA[22]; + $TTS_alt_phone = $aryA[23]; + $TTS_email = $aryA[24]; + $TTS_security_phrase = $aryA[25]; + $TTS_comments = $aryA[26]; + $TTS_called_count = $aryA[27]; + $TTS_last_local_call_time = $aryA[28]; + $TTS_rank = $aryA[29]; + $TTS_owner = $aryA[30]; + } + $sthA->finish(); + + $stmtA = "SELECT tts_text FROM vicidial_tts_prompts where tts_id='$TTS_filename';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $TTS_text = $aryA[0]; + $TTS_text =~ s/--A--lead_id--B--/$TTS_lead_id/gi; + $TTS_text =~ s/--A--entry_date--B--/$TTS_entry_date/gi; + $TTS_text =~ s/--A--modify_date--B--/$TTS_modify_date/gi; + $TTS_text =~ s/--A--status--B--/$TTS_status/gi; + $TTS_text =~ s/--A--user--B--/$TTS_user/gi; + $TTS_text =~ s/--A--vendor_lead_code--B--/$TTS_vendor_lead_code/gi; + $TTS_text =~ s/--A--source_id--B--/$TTS_source_id/gi; + $TTS_text =~ s/--A--list_id--B--/$TTS_list_id/gi; + $TTS_text =~ s/--A--phone_number--B--/$TTS_phone_number/gi; + $TTS_text =~ s/--A--title--B--/$TTS_title/gi; + $TTS_text =~ s/--A--first_name--B--/$TTS_first_name/gi; + $TTS_text =~ s/--A--middle_initial--B--/$TTS_middle_initial/gi; + $TTS_text =~ s/--A--last_name--B--/$TTS_last_name/gi; + $TTS_text =~ s/--A--address1--B--/$TTS_address1/gi; + $TTS_text =~ s/--A--address2--B--/$TTS_address2/gi; + $TTS_text =~ s/--A--address3--B--/$TTS_address3/gi; + $TTS_text =~ s/--A--city--B--/$TTS_city/gi; + $TTS_text =~ s/--A--state--B--/$TTS_state/gi; + $TTS_text =~ s/--A--province--B--/$TTS_province/gi; + $TTS_text =~ s/--A--postal_code--B--/$TTS_postal_code/gi; + $TTS_text =~ s/--A--country_code--B--/$TTS_country_code/gi; + $TTS_text =~ s/--A--gender--B--/$TTS_gender/gi; + $TTS_text =~ s/--A--date_of_birth--B--/$TTS_date_of_birth/gi; + $TTS_text =~ s/--A--alt_phone--B--/$TTS_alt_phone/gi; + $TTS_text =~ s/--A--email--B--/$TTS_email/gi; + $TTS_text =~ s/--A--security_phrase--B--/$TTS_security_phrase/gi; + $TTS_text =~ s/--A--comments--B--/$TTS_comments/gi; + $TTS_text =~ s/--A--called_count--B--/$TTS_called_count/gi; + $TTS_text =~ s/--A--last_local_call_time--B--/$TTS_last_local_call_time/gi; + $TTS_text =~ s/--A--rank--B--/$TTS_rank/gi; + $TTS_text =~ s/--A--owner--B--/$TTS_owner/gi; + $TTS_text =~ s/[^,\.\<\>\'\/\=\_ 0-9a-zA-Z]//gi; + $TTS_textRAW = $TTS_text; + $TTS_text =~ s/ /\\ /gi; + $TTS_text =~ s/\./\\./gi; + $TTS_text =~ s/\=/\\=/gi; + $TTS_text =~ s/\/\\>/gi; + $TTS_text =~ s/\//\\\//gi; + $TTS_text =~ s/\'/\\'/gi; + $voice = 'Allison-8kHz'; + print STDERR "\nGenerating: $TTS_text - $voice\n"; + `$PATHagi/cepstral_generate.pl --debug --voice=$voice --dialog=$TTS_text >> $CEPLOGfile `; + + use Digest::MD5 qw(md5_hex); + + $enc = md5_hex("$TTS_textRAW-$voice"); # the hash + $enc_ftl = substr($enc, 0, 2); # first letter of hash + $TTS_filename_path = $PATHsounds . "/tts/" . $enc_ftl . "/tts-" . $enc; + print STDERR "\nfilename: $TTS_filename_path\n"; + + $DB_am_message_exten = $TTS_filename_path; + } + $sthA->finish(); + } + ##### END Check if prompt uses TTS, if so, create TTS and set the filename to the generated prompt ##### + + + ### run waitforsilence if enabled + if (length($waitforsilence_options) > 0) + { + $AGI->exec("WaitForSilence","$waitforsilence_options"); + } + + ### play messages + if ($DB_am_message_exten =~ /\|/) + { + @DB_am_message_exten_array = split(/\|/,$DB_am_message_exten); + $w=0; + foreach(@DB_am_message_exten_array) + { + if (length($DB_am_message_exten_array[$w])>0) + { + $AGI->stream_file("$DB_am_message_exten_array[$w]"); + } + $w++; + } + } + else + {$AGI->stream_file("$DB_am_message_exten");} + + + $stmtA = "UPDATE vicidial_log set status='AL' where lead_id='$VD_lead_id' order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log AL update: |$affected_rows|$uniqueid|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='AL' where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list AL update: |$affected_rows|$uniqueid|"; &agi_output;} + } + + + $dbhA->disconnect(); + + $AGI->hangup($channel); + + exit; + } + + + + + +exit; + +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++; + } + } + + +sub agi_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### + if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} + $agi_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/agi/VD_amd_post.agi b/agc_2-X/branches/agc_2.2.0/agi/VD_amd_post.agi new file mode 100644 index 00000000..f8362cbc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/VD_amd_post.agi @@ -0,0 +1,313 @@ +#!/usr/bin/perl +# +# THIS SCRIPT WILL BE DEPRICATED AND REMOVED BEFORE THE 2.2.0 RELEASE +# +# VD_amd_post.agi version 2.0.4 *DBI-version* +# +# NOTE: This script is only needed with app_amd enabled systems +# +# runs after a call goes through AMD in extensions.conf to send the call on to +# it's proper destination +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: +# exten => 8369,1,AGI(call_log.agi,${EXTEN}) +# exten => 8369,2,(AMD),AMD +# exten => 8369,3,AGI(VD_amd.agi,${EXTEN}) +# exten => 8369,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) +# exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) +# exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) +# exten => 8369,7,Hangup +# +# ; this is used for playing a message to an answering machine forwarded from AMD in VICIDIAL +# ; replace conf with the message file you want to leave +# exten => 8320,1,WaitForSilence(2000,2) ; AMD got machine. leave message after recording +# exten => 8320,2,Playback(ding) +# exten => 8320,3,AGI(VD_amd_post.agi,${EXTEN}) +# exten => 8320,4,Hangup +# +# Copyright (C) 2007 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60217-1119 first build +# 60731-1403 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60817-1025 - added output options check from database +# 71118-0257 - updated comments +# + +$script = 'VD_amd_post.agi'; + +$A = 1; # set to 1 for AMD output messages mode +$AMD_LOG = 0; # set to 1 for logfile + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; +# ### set the callerid to the ACQS value(calleridname) +# print "SET CALLERID $callerid\n"; +# checkresult($result); +# print STDERR "callerID changed: $callerid\n"; + + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; +# ### set the callerid to the ACQS value(calleridname) +# print "SET CALLERID $callerid\n"; +# checkresult($result); +# print STDERR "callerID changed: $callerid\n"; + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); +$VD_lead_id = $CIDlead_id; + +if ($AGILOG) {$agi_string = "+++++ VD amd START: |$CIDlead_id|$now_date|$AST_ver|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + + + + + + + + + + + + +################################################################################ +########## AMD says it's a machine so modify statuses and hangup call ########## +########## something will go here later for leaving a message on AMs ########## + +$stmtA = "UPDATE vicidial_log set status='AL' where lead_id='$VD_lead_id' order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_log AL update: |$affected_rows|$uniqueid|"; &agi_output;} + +$stmtA = "UPDATE vicidial_list set status='AL' where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_list AL update: |$affected_rows|$uniqueid|"; &agi_output;} + + +$dbhA->disconnect(); + + + + +exit; + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/VD_auto_post_VERIFY.agi b/agc_2-X/branches/agc_2.2.0/agi/VD_auto_post_VERIFY.agi new file mode 100644 index 00000000..949d12e1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/VD_auto_post_VERIFY.agi @@ -0,0 +1,392 @@ +#!/usr/bin/perl +# +# VD_auto_post_VERIFY.agi version 2.0.5 *DBI-version* +# +# NOTE: This script is only used with auto-message campaigns with dynamic data +# +# runs after a call is answered +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced: +#exten => 8320,1,WaitForSilence(2000,2) ; wait for 2 seconds of silence +#exten => 8320,2,AGI(VD_auto_post_VERIFY.agi,${EXTEN}) +#exten => 8320,3,Hangup +# +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60915-1616 - first build +# + +$script = 'VD_auto_post_VERIFY.agi'; + +### files to play for message of not interested or DNC and your request has been processed +$goodbye_audio_file = 'US_reminder_goodbye'; +$mc_one_file = '85100019'; +$mc_two_file = '85100021'; +$visa_one_file = '85100018'; +$visa_two_file = '85100020'; + + +#$A = 1; # set to 1 for AMD output messages mode +$AMD_LOG = 0; # set to 1 for logfile + +($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) {$hour = "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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; +# ### set the callerid to the ACQS value(calleridname) +# print "SET CALLERID $callerid\n"; +# checkresult($result); +# print STDERR "callerID changed: $callerid\n"; + + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; +# ### set the callerid to the ACQS value(calleridname) +# print "SET CALLERID $callerid\n"; +# checkresult($result); +# print STDERR "callerID changed: $callerid\n"; + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); +$VD_lead_id = $CIDlead_id; + +if ($AGILOG) {$agi_string = "+++++ VD amd START: |$CIDlead_id|$now_date|$AST_ver|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + + +# Thank you for your recent purchase of ACME Sprockets, we have +# confirmed your enrollment in the + +# [Verified by Visa| MasterCard SecureCode] + +# program. Please go to www.iconfirm.net and enter your name and +# verification code + +# [verification code] + +# within the next (x amount of hours) to +# complete + +# [Verified by Visa|MasterCard SecureCode] + +# authentication. Your +# participation is optional and does not effect the processing of your +# purchase. Thank you." + + +$AGI->stream_file('beep'); + +$stmtA = "UPDATE vicidial_log set status='PU' where lead_id='$VD_lead_id' order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_log PU update: |$affected_rows|$uniqueid|"; &agi_output;} + +$stmtA = "UPDATE vicidial_list set status='PU' where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_list PU update: |$affected_rows|$uniqueid|"; &agi_output;} + +### Check to see if the number is in the system ### +$stmtA= "SELECT security_phrase,comments from vicidial_list where lead_id='$VD_lead_id';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $security_phrase = "$aryA[0]"; + $comments = "$aryA[1]"; + $sthA->finish(); + } +else + { + $AGI->stream_file("$goodbye_audio_file"); + } + +### first read of the message +if ($comments =~ /Master/i) + { + $message_one = $mc_one_file; + $message_two = $mc_two_file; + } +else + { + $message_one = $visa_one_file; + $message_two = $visa_two_file; + } + +if ($AGILOG) {$agi_string = "Verify message playing: |$VD_lead_id|$security_phrase|$comments|$message_one|$message_two|"; &agi_output;} + +$AGI->stream_file("$message_one"); + + sleep(1); + +$AGI->stream_file("letters/v"); +$AGI->say_digits("$security_phrase"); + + sleep(1); + + +$AGI->stream_file("$message_two"); + + + + + +$stmtA = "UPDATE vicidial_log set status='AL' where lead_id='$VD_lead_id' order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_log AM update: |$affected_rows|$uniqueid|"; &agi_output;} + +$stmtA = "UPDATE vicidial_list set status='AL' where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_list AM update: |$affected_rows|$uniqueid|"; &agi_output;} + +$dbhA->disconnect(); + + + + +### second read of the message + +$AGI->stream_file("$message_one"); + + sleep(1); + +$AGI->stream_file("letters/v"); +$AGI->say_digits("$security_phrase"); + + sleep(1); + + +$AGI->stream_file("$message_two"); + + + $AGI->stream_file("$goodbye_audio_file"); + + + + + + + + +exit; + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-AGENT_dial_in.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-AGENT_dial_in.agi new file mode 100644 index 00000000..d6200dc2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-AGENT_dial_in.agi @@ -0,0 +1,463 @@ +#!/usr/bin/perl +# +# agi-AGENT_dial_in.agi version 0.1 +# +# This script is designed to allow agents the ability to dial in to an extension +# to establish the phone connection to their VICIDIAL session. The user login +# and password must be only digits and nothing but digits to use this utility. +# +# user is prompted for their user ID then press # +# user is prompted for their passcode then press # +# then the user is forwarded to the active vicidial agent session +# +# ;agent dial-in: +#exten => 2345,1,Answer ; Answer the line +#exten => 2345,2,AGI(agi-AGENT_dial_in.agi) +#exten => 2345,3,Hangup +# +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 81022-2115 - First build +# + +&get_time_now; + $start_epoch = $now_date_epoch; + +$script = 'agi-AGENT_dial_in.agi'; + +$now_date_epoch = time(); +$now_date = "$year-$mon-$mday $hour:$min:$sec"; + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +$US='_'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/ivrout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($V) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; +if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} +$phone_number=$callerid; + +### Grab Server values from the database +$stmtA = "SELECT ext_context,agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBext_context = "$aryA[0]"; + $DBagi_output = "$aryA[1]"; + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + + +$AGI->stream_file('sip-silence'); +$AGI->stream_file('sip-silence'); + + +$entry_chances=0; +$VALID_login=0; +$ACTIVE_login=0; +$VDADremDIALstr=''; +while ( ($entry_chances < 3) && ($VALID_login < 1) ) + { + $entry_chances++; + + + &user_password_gather; + + + ###### Check userID and password against vicidial_users table + $stmtA = "SELECT count(*) FROM vicidial_users where user='$PIN_number' and pass='$PASS_word';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VALID_login = "$aryA[0]"; + } + $sthA->finish(); + + + if ($VALID_login > 0) + { + $AGI->stream_file('pin-number-accepted'); + } + else + { + $AGI->stream_file('pin-invalid'); + } + } + + + +if ($VALID_login < 1) + { + if ($AGILOG) {$agi_string = "DIAL-IN END: Invalid Login |$VALID_login|$PIN_number|$PASS_word|"; &agi_output;} + + $AGI->stream_file('vm-goodbye'); + + $AGI->hangup(); + + $dbhA->disconnect(); + exit; + } +else + { + $secX = time(); + $PDtarget = ($secX - 30); + ($Psec,$Pmin,$Phour,$Pmday,$Pmon,$Pyear,$Pwday,$Pyday,$Pisdst) = localtime($PDtarget); + $Pyear = ($Pyear + 1900); + $Pmon++; + if ($Pmon < 10) {$Pmon = "0$Pmon";} + if ($Pmday < 10) {$Pmday = "0$Pmday";} + if ($Phour < 10) {$Phour = "0$Phour";} + if ($Pmin < 10) {$Pmin = "0$Pmin";} + if ($Psec < 10) {$Psec = "0$Psec";} + $PDtsSQLdate = "$Pyear$Pmon$Pmday$Phour$Pmin$Psec"; + + ###### Check if user is logged in, vicidial_live_agents table + $stmtA = "SELECT count(*) FROM vicidial_live_agents where user='$PIN_number' and last_update_time > \"$PDtsSQLdate\";"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $ACTIVE_login = "$aryA[0]"; + } + $sthA->finish(); + + if ($ACTIVE_login < 1) + { + if ($AGILOG) {$agi_string = "DIAL-IN END: Inactive Login |$VALID_login|$PIN_number|$PASS_word| |$ACTIVE_login|$PDtsSQLdate|"; &agi_output;} + + $AGI->stream_file('login-fail'); + $AGI->stream_file('you-must-be-logged-in'); + $AGI->stream_file('vm-goodbye'); + + $AGI->hangup(); + + $dbhA->disconnect(); + exit; + } + else + { + $stmtA = "SELECT conf_exten,extension,server_ip from vicidial_live_agents WHERE user='$PIN_number' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADextension = "$aryA[1]"; + $VDADserver_ip = "$aryA[2]"; + } + $sthA->finish(); + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + if( $VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($AGILOG) {$agi_string = "Agent $PIN_number sent to $VDADremDIALstr"; &agi_output;} + + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + } + + + +$dbhA->disconnect(); + +exit; + + + + + +################################################################################ +##### SUBROUTINES ############################################################## +################################################################################ + + +##### BEGIN collect the user and password ###################################### +sub user_password_gather +{ +################################################################################ +# please enter the pin number followed by the pound key + +$interrupt_digit=''; + +$interrupt_digit = $AGI->stream_file('ld_welcome_pin_number','0123456789'); + + print STDERR "interrupt_digit |$interrupt_digit|\n"; + +$digits_being_entered=1; +$PIN_number=''; +if ($interrupt_digit > 0) + { +# 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;} + + $PIN_number=$interrupt_digit; + } + +$digit_loop_counter=0; +while ( ($digits_being_entered > 0) && ($digit_loop_counter < 20) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $PIN_number = "$PIN_number$digit"; + print STDERR "digit |$digit| PIN_number |$PIN_number|\n"; +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digits_being_entered=0; + } + + $digit_loop_counter++; + } + +$PIN_number =~ s/\D//gi; +if ($PIN_number) {print STDERR "digit |$digit| PIN_number |$PIN_number|\n";} + + + +################################################################################ +# please enter your password followed by the pound key + +$interrupt_digit=''; + +$interrupt_digit = $AGI->stream_file('enter-password','0123456789'); + + print STDERR "interrupt_digit |$interrupt_digit|\n"; + +$digits_being_entered=1; +$PASS_word=''; +if ($interrupt_digit > 0) + { +# 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;} + + $PASS_word=$interrupt_digit; + } + +$digit_loop_counter=0; +while ( ($digits_being_entered > 0) && ($digit_loop_counter < 20) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $PASS_word = "$PASS_word$digit"; + print STDERR "digit |$digit| PASS_word |$PASS_word|\n"; +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digits_being_entered=0; + } + + $digit_loop_counter++; + } + +$PASS_word =~ s/\D//gi; +if ($PASS_word) {print STDERR "digit |$digit| PASS_word |$PASS_word| PIN_number |$PIN_number|\n";} + +} +##### END collect the user and password ############################################### + + + + + +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) {$hour = "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"; +$filedate = "$year$mon$mday$hour$min$sec"; +} + + + +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++; + } +} + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} + +sub leading_zero($) +{ + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-CANADA_PRI_CIDname.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-CANADA_PRI_CIDname.agi new file mode 100644 index 00000000..6be35afe --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-CANADA_PRI_CIDname.agi @@ -0,0 +1,261 @@ +#!/usr/bin/perl +# +# agi-CANADA_PRI_CIDname.agi version 0.1 +# +# Runs after call goes through IAX loop to send out custom CallerIDname on +# Canadian PRIs that allow dynamic setting of CIDname with call initiation +# +# You need to have lines similar to those below in your extensions.conf file: +# +# ;outbound VICIDIAL calls: +#exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN}) +#exten => _91NXXNXXXXXX,2,AGI(agi-CANADA_PRI_CIDname.agi,${EXTEN}) +#exten => _91NXXNXXXXXX,3,Dial(${TRUNKX}/${EXTEN:1},55,tTo) +#exten => _91NXXNXXXXXX,4,Hangup +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 90305-2136 - First build +# + +$script = 'agi-CANADA_PRI_CIDname.agi'; + +$AGILOG=0; +$FD=0; # force debug for testing + +($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) {$hour = "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"; + +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + } + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} +if (!$DIDLOGfile) {$DIDLOGfile = "$PATHlogs/didin.$year-$mon-$mday";} + + +$|=1; +while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + } + +if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; +if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + +if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} +if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} + +foreach $i (sort keys %AGI) + { + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} + } + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $calleridname =~ s/^\"//gi; + $calleridname =~ s/\".*$//gi; + } + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output,local_gmt FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + $local_gmt = "$aryA[1]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### Grab Server values from the database +$stmtA = "SELECT cmd_line_g,cmd_line_h,cmd_line_i,cmd_line_j FROM vicidial_manager where callerid = '$calleridname' limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $sthA->finish(); + $account_check = "|$aryA[0]|$aryA[1]|$aryA[2]|$aryA[3]"; + if ($account_check =~ /usegroupalias=1/) + { + @data = split(/Account: /,$account_check); + $data[1] =~ s/\|.*//gi; + $account = $data[1]; + + ### Grab callerIDname and number from the database + $stmtA = "SELECT caller_id_name,caller_id_number FROM groups_alias where group_alias_id = '$account' limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $sthA->finish(); + $caller_id_name = "$aryA[0]"; + $caller_id_number = "$aryA[1]"; + + ### set the callerid to the ACQS value(calleridname) + ## use these two lines for Asterisk 1.2 tree + $newcallerid = "\"$caller_id_name <$caller_id_number>\""; + $AGI->set_callerid($newcallerid); + ## use these two lines for Asterisk 1.0 tree + # print "SET CALLERID \"$calleridname\" <0000000000>\n"; + # print "SET CALLERIDNAME \"$calleridname\"\n"; + + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: newcallerid; &agi_output";} + + if ($FD > 0) {print STDERR "callerID changed: newcallerid\n";} + + + if ($AGILOG) {$agi_string = "AGI Variables: |$extension|$areacode|$callerid|$calleridname|newcallerid|"; &agi_output;} + } + } + } + + +exit; + + + + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-DID_route.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-DID_route.agi new file mode 100644 index 00000000..911176af --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-DID_route.agi @@ -0,0 +1,454 @@ +#!/usr/bin/perl +# +# agi-DID_route.agi version 2.2.0 +# +# runs when a call comes into an inbound context on a trunk. This script will +# send the calls to various places depending on the settings for each DID. +# +# +# You need to put a line similar to this below in your extensions.conf file: +# ;inbound DID catch-all: +#exten => _X.,1,AGI(agi-DID_route.agi) +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 81007-0324 - First Build +# 90115-0645 - Activated AGENT call routing +# 90117-0756 - Added vicidial_did_log logging to database +# 90214-0217 - Added 'default' did option, to send all non-matching calls to, enforced did_active setting +# 90507-1145 - Added CALLMENU option +# 90825-2252 - Changed PHONE to route using dialplan number +# 91122-0743 - Added QueueMetrics logging as DID INFO entries +# + +$script = 'agi-DID_route.agi'; +$dtmf_silent_prefix = '7'; +$at='@'; +$S='*'; + + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +$hm = "$hour$min"; +$hm = ($hm + 0); + +$now_date_epoch = time(); +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$CLInow_date = "$year-$mon-$mday\\ $hour:$min:$sec"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} +if (!$DIDLOGfile) {$DIDLOGfile = "$PATHlogs/didin.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output,local_gmt FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + $local_gmt = "$aryA[1]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + } +$sthA->finish(); + +############################################# +##### START QUEUEMETRICS LOGGING LOOKUP ##### +$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = $aryA[0]; + $queuemetrics_server_ip = $aryA[1]; + $queuemetrics_dbname = $aryA[2]; + $queuemetrics_login= $aryA[3]; + $queuemetrics_pass = $aryA[4]; + $queuemetrics_log_id = $aryA[5]; + $queuemetrics_eq_prepend = $aryA[6]; + } +$sthA->finish(); +##### END QUEUEMETRICS LOGGING LOOKUP ##### +########################################### + + +$|=1; +while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + } + + +if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + +$callerid =~ s/\D//gi; +$calleridname =~ s/unknown//gi; +if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + +### Grab DID values from the database +$stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id FROM vicidial_inbound_dids where did_pattern = '$extension' and did_active='Y';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $did_id = $aryA[0]; + $did_pattern = $aryA[1]; + $did_description = $aryA[2]; + $did_active = $aryA[3]; + $did_route = $aryA[4]; + $did_extension = $aryA[5]; + $exten_context = $aryA[6]; + $voicemail_ext = $aryA[7]; + $phone = $aryA[8]; + $did_server_ip = $aryA[9]; + $user = $aryA[10]; + $user_unavailable_action = $aryA[11]; + $user_route_settings_ingroup = $aryA[12]; + $menu_id = $aryA[13]; + } +$sthA->finish(); + +$stmtA = "INSERT INTO vicidial_did_log SET uniqueid='$uniqueid',channel='$channel',server_ip='$VARserver_ip',caller_id_number='$callerid',caller_id_name='$calleridname',extension='$extension',call_date='$SQLdate',did_id='$did_id',did_route='$did_route';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rowsL = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- DID LOG : |$affected_rowsL|$stmtA|"; &agi_output;} + +if ($AGILOG) {$did_string = "$SQLdate|$uniqueid|$channel|$extension|$callerid|$calleridname|$did_id|$did_route|"; &did_output;} + +if ($sthArows < 1) + { + ### Grab DID values from the database for a default DID pattern if there is one + $stmtA = "SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,menu_id FROM vicidial_inbound_dids where did_pattern = 'default' and did_active='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $did_id = $aryA[0]; + $did_pattern = $aryA[1]; + $did_description = $aryA[2]; + $did_active = $aryA[3]; + $did_route = $aryA[4]; + $did_extension = $aryA[5]; + $exten_context = $aryA[6]; + $voicemail_ext = $aryA[7]; + $phone = $aryA[8]; + $did_server_ip = $aryA[9]; + $user = $aryA[10]; + $user_unavailable_action = $aryA[11]; + $user_route_settings_ingroup = $aryA[12]; + $menu_id = $aryA[13]; + } + $sthA->finish(); + + if ($sthArows < 1) + { + ### if nothing found, exit script + exit; + } + } + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + + + + + +### Route call to a VICIDIAL-defined phone +if ($did_route =~ /PHONE/) + { + $stmtA = "SELECT dialplan_number,voicemail_id,protocol,ext_context FROM phones where server_ip = '$did_server_ip' and extension='$phone';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dialplan_number = "$aryA[0]"; + $voicemail_id = "$aryA[1]"; + $protocol = "$aryA[2]"; + $ext_context = "$aryA[3]"; + } + $sthA->finish(); + + ### format the remote server dialstring to get the call to the overflow agent meetme room + if( $did_server_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $ServerString = "$a$S$b$S$c$S$d$S"; + } + + $did_extension = "$ServerString$dialplan_number"; + $did_route = 'EXTEN'; + } + + +### Route call to a voicemail box on the system +if ($did_route =~ /VOICEMAIL/) + { + ### format the remote server dialstring to get the call to the overflow agent meetme room + if( $did_server_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $ServerString = "$a$S$b$S$c$S$d$S"; + } + $did_extension = "$ServerString$voicemail_dump_exten$voicemail_ext"; + $did_route = 'EXTEN'; + } + + +### Route call to a VICIDIAL Inbound Group +if ($did_route =~ /IN_GROUP/) + { + $did_extension = "99909$S$did_id$S"; + $exten_context = $ext_context; + $did_route = 'EXTEN'; + } + + +### Route call to a logged-in VICIDIAL agent +if ($did_route =~ /AGENT/) + { + $did_extension = "99909$S$did_id$S"; + $exten_context = $ext_context; + $did_route = 'EXTEN'; + } + + +### QueueMetrics logging if enabled +if ( ($did_route =~ /EXTEN|CALLMENU/) && ($enable_queuemetrics_logging > 0) ) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO QueueMetrics DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$uniqueid',queue='NONE',agent='NONE',verb='INFO',data1='DID',data2='$extension',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhB->disconnect(); + } + + +### Route call to an extension on the system +if ($did_route =~ /EXTEN/) + { + $XFERexten = "$did_extension"; + if ($AGILOG) {$agi_string = "exiting the DID app, transferring call to $XFERexten @ $exten_context"; &agi_output;} + print "SET CONTEXT $exten_context\n"; + checkresult($result); + print "SET EXTENSION $XFERexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + exit; + } + + +### Route call to a call menu on the system +if ($did_route =~ /CALLMENU/) + { + $XFERcontext = "$menu_id"; + if ($AGILOG) {$agi_string = "exiting the DID app, transferring call to CALLMENU $XFERcontext"; &agi_output;} + print "SET CONTEXT $XFERcontext\n"; + checkresult($result); + print "SET EXTENSION s\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + exit; + } + + + + + + +######### SUBROUTINES ################# + +sub checkresult + { + $pass=0; $fail=0; + 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++; + } + } + +sub leading_zero($) + { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; + } # End of the leading_zero() routine. + +sub agi_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### + if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} + $agi_string=''; + } + +sub did_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Dout, ">>$DIDLOGfile") + || die "Can't open $DIDLOGfile: $!\n"; + print Dout "$did_string\n"; + close(Dout); + } + $did_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-IVR_recording_verification.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-IVR_recording_verification.agi new file mode 100644 index 00000000..6ecab848 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-IVR_recording_verification.agi @@ -0,0 +1,738 @@ +#!/usr/bin/perl +# +# agi-IVR_recording_verification.agi version 0.1 +# +# This script is designed to function as a complete automated 3rd party +# verification IVR recording system. This script will work by optionally asking +# for a company ID and/or a customer phone number, then it will play through the +# listed prompts asking for a single digit press (i.e. 1 for a yes or a 3 for a +# no, hash/pound/star/zero/0 are not accepted only 1-9 is valid for these steps). +# All data for these calls will be logged to the vicidial_ivr table as well as +# optionally to a log file in the standard astguiclient log file directory +# and/or STDERR output on the asterisk process. This script uses the +# /etc/astguiclient.conf file for database connection settings, logging data and +# for logfile path information only. +# +# With a modified VDAD agi transfer script, this script could also be used to do +# automated outbound surveys as well. Feature under development. +# +# ; 1. the DNIS or inbound number called +# ; 2. play the recording ID (Y|N) with prompt leading up to it +# ; 3. record this call(Y|N) +# ; 4. ask for a company code(Y|N) with the number of digits in that company code and the prompt +# ; 5. ask for a user code(Y|N) with the number of digits in that user code and the prompt +# ; 6. ask for the customer phone number(Y|N) with the number of digits in that phone number and the prompt (Y-10-85100001) +# ; 7. speak the current date (Y|N) with prompt announcing the date +# ; 8. a dash-delimited list of prompts that expect responses(85100002-85100003) +# ; 9. a "your recording ID is..." prompt (85100004) +# ; 10. logging/output (FILE|STDERR|BOTH|NONE) +# +# ;inbound IVR call: +#exten => 1234,1,Ringing ; call ringing +#exten => 1234,2,Wait(1) ; Wait 1 second for CID delivery from PRI +#exten => 1234,3,Answer ; Answer the line +#exten => 1234,4,AGI(agi-IVR_recording_verification.agi,7274506620---Y-85100004---Y---Y-1-85100016---N---N---Y-85100007---85100009-600--85100012-30--85100013---85100004---BOTH) +#exten => 1234,5,Hangup +# +# ;inbound IVR call from a VICIDIAL transfer: +#exten => _83002*.,1,Ringing ; call ringing +#exten => _83002*.,2,Wait(1) ; Wait 1 second for CID delivery +#exten => _83002*.,3,Answer ; Answer the line +#exten => _83002*.,4,AGI(agi-IVR_recording_verification.agi,7275551234---N---Y---N---N---Y-10-85100001---N---85100002-85100003---85100004---BOTH) +#exten => _83002*.,5,Hangup +# +# +# Copyright (C) 2007 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 70912-1105 - First build, non-functional +# 70916-2331 - functional alpha version, reads all prompts and logs data, no recording yet +# 70921-1110 - full beta version with recording working +# 71028-1122 - added say datetime as an option +# 71112-0238 - added prompt delays and date announcement message +# 71120-1337 - added playing of recording ID at beginning of session +# + +&get_time_now; + $start_epoch = $now_date_epoch; + +$script = 'agi-IVR_recording_verification.agi'; + +$now_date_epoch = time(); +$now_date = "$year-$mon-$mday $hour:$min:$sec"; + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +$US='_'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/ivrout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($ARGV[0] =~ /---/) + { + ### list of command-line array arguments: + @ARGV_vars = split(/---/, $ARGV[0]); + + $inbound_number = $ARGV_vars[0]; + $play_ID = $ARGV_vars[1]; + $record_call = $ARGV_vars[2]; + $company_ID_ask = $ARGV_vars[3]; + $user_ID_ask = $ARGV_vars[4]; + $cust_phone_ask = $ARGV_vars[5]; + $say_date = $ARGV_vars[6]; + $prompts = $ARGV_vars[7]; + $last_prompt = $ARGV_vars[8]; + $AGI_output = $ARGV_vars[9]; + @prompts_list = split(/-/, $prompts); + $prompts_count = $#prompts_list; + if ($play_ID =~ /Y/) + { + @play_IDary = split(/-/, $play_ID); + $play_ID_prompt = $play_IDary[1]; + } + if ($company_ID_ask =~ /Y/) + { + @company_ID = split(/-/, $company_ID_ask); + $company_ID_length = $company_ID[1]; + $company_ID_prompt = $company_ID[2]; + } + if ($user_ID_ask =~ /Y/) + { + @user_ID = split(/-/, $user_ID_ask); + $user_ID_length = $user_ID[1]; + $user_ID_prompt = $user_ID[2]; + } + if ($cust_phone_ask =~ /Y/) + { + @cust_phone_ID = split(/-/, $cust_phone_ask); + $cust_phone_length = $cust_phone_ID[1]; + $cust_phone_prompt = $cust_phone_ID[2]; + } + if ($say_date =~ /Y/) + { + @say_date_ID = split(/-/, $say_date); + $say_date_prompt = $say_date_ID[1]; + } + if ($AGI_output =~ /STDERR/) {$AGILOG = '1';} + if ($AGI_output =~ /FILE/) {$AGILOG = '2';} + if ($AGI_output =~ /BOTH/) {$AGILOG = '3';} + + } +} + + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($V) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; +if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + +$phone_number=$callerid; + + +### allow for VICIDIAL transfer data string "83002*3125551212*10000123*TESTCAMP*ABC*1234*" +if ($extension =~ /^832\d\d\*|^833\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $phone_number = $EXT_vars[1]; # phone number + $lead_id = $EXT_vars[2]; # lead_id in vicidial_list + $campaign_id = $EXT_vars[3]; # campaign id + $product_code = $EXT_vars[4]; # product code + $user = $EXT_vars[5]; # vicidial_user that sent the call here + } + + +### table structure for data ### +# CREATE TABLE vicidial_ivr ( +# ivr_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +# entry_time DATETIME, +# length_in_sec SMALLINT(5) UNSIGNED default '0', +# inbound_number VARCHAR(12), +# recording_id INT(9) UNSIGNED, +# recording_filename VARCHAR(50), +# company_id VARCHAR(12), +# phone_number VARCHAR(12), +# lead_id INT(9) UNSIGNED, +# campaign_id VARCHAR(20), +# product_code VARCHAR(20), +# user VARCHAR(20), +# prompt_audio_1 VARCHAR(20), +# prompt_response_1 TINYINT(1) UNSIGNED default '0', +# prompt_audio_2 VARCHAR(20), +# prompt_response_2 TINYINT(1) UNSIGNED default '0', +# prompt_audio_3 VARCHAR(20), +# prompt_response_3 TINYINT(1) UNSIGNED default '0', +# prompt_audio_4 VARCHAR(20), +# prompt_response_4 TINYINT(1) UNSIGNED default '0', +# prompt_audio_5 VARCHAR(20), +# prompt_response_5 TINYINT(1) UNSIGNED default '0', +# prompt_audio_6 VARCHAR(20), +# prompt_response_6 TINYINT(1) UNSIGNED default '0', +# prompt_audio_7 VARCHAR(20), +# prompt_response_7 TINYINT(1) UNSIGNED default '0', +# prompt_audio_8 VARCHAR(20), +# prompt_response_8 TINYINT(1) UNSIGNED default '0', +# prompt_audio_9 VARCHAR(20), +# prompt_response_9 TINYINT(1) UNSIGNED default '0', +# prompt_audio_10 VARCHAR(20), +# prompt_response_10 TINYINT(1) UNSIGNED default '0', +# prompt_audio_11 VARCHAR(20), +# prompt_response_11 TINYINT(1) UNSIGNED default '0', +# prompt_audio_12 VARCHAR(20), +# prompt_response_12 TINYINT(1) UNSIGNED default '0', +# prompt_audio_13 VARCHAR(20), +# prompt_response_13 TINYINT(1) UNSIGNED default '0', +# prompt_audio_14 VARCHAR(20), +# prompt_response_14 TINYINT(1) UNSIGNED default '0', +# prompt_audio_15 VARCHAR(20), +# prompt_response_15 TINYINT(1) UNSIGNED default '0', +# prompt_audio_16 VARCHAR(20), +# prompt_response_16 TINYINT(1) UNSIGNED default '0', +# prompt_audio_17 VARCHAR(20), +# prompt_response_17 TINYINT(1) UNSIGNED default '0', +# prompt_audio_18 VARCHAR(20), +# prompt_response_18 TINYINT(1) UNSIGNED default '0', +# prompt_audio_19 VARCHAR(20), +# prompt_response_19 TINYINT(1) UNSIGNED default '0', +# prompt_audio_20 VARCHAR(20), +# prompt_response_20 TINYINT(1) UNSIGNED default '0', +# index (phone_number), +# index (entry_time) +# ); + +### insert record into vicidial_ivr table ### +$stmtA = "INSERT INTO vicidial_ivr (entry_time,length_in_sec,inbound_number,phone_number,lead_id,campaign_id,product_code,user) values('$now_date','0','$inbound_number','$phone_number','$lead_id','$campaign_id','$product_code','$user');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $ivr_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + + +if ($AGILOG) {$agi_string = "IVR START- $ivr_id $inbound_number|$record_call|$company_ID_ask|$cust_phone_ask|$prompts|$last_prompt|$AGI_output"; &agi_output;} + + +$AGI->stream_file('beep'); + +### if set to play ID at beginning of session ### +if ($play_ID =~ /Y/) +{ +$AGI->stream_file("$play_ID_prompt"); +$AGI->say_digits("$ivr_id"); +sleep(1); +$AGI->stream_file('beep'); +$AGI->say_digits("$ivr_id"); +sleep(1); +} + +### if set to ask for company ID, run that subroutine ### +if ($company_ID_ask =~ /Y/) +{ +&company_ID_gather_response; + $company_ID = $totalDTMF; +&get_time_now; + $length_in_sec = ($now_date_epoch - $start_epoch); +$stmtA = "UPDATE vicidial_ivr SET company_id='$company_ID', length_in_sec='$length_in_sec' where ivr_id='$ivr_id';"; + if ($AGILOG) {$agi_string = "IVR- $ivr_id company: $company_ID length: $length_in_sec"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +} + + +### if set to ask for user ID, run that subroutine ### +if ($user_ID_ask =~ /Y/) +{ +&user_ID_gather_response; + $user_ID = $totalDTMF; +&get_time_now; + $length_in_sec = ($now_date_epoch - $start_epoch); +$stmtA = "UPDATE vicidial_ivr SET user='$user_ID', length_in_sec='$length_in_sec' where ivr_id='$ivr_id';"; + if ($AGILOG) {$agi_string = "IVR- $ivr_id user: $user_ID length: $length_in_sec"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +} + + +### if set to ask for customer phone number, run that subroutine ### +if ($cust_phone_ask =~ /Y/) +{ +&cust_phone_gather_response; + $phone_number = $totalDTMF; +&get_time_now; + $length_in_sec = ($now_date_epoch - $start_epoch); +$stmtA = "UPDATE vicidial_ivr SET phone_number='$phone_number', length_in_sec='$length_in_sec' where ivr_id='$ivr_id';"; + if ($AGILOG) {$agi_string = "IVR- $ivr_id phone: $phone_number length: $length_in_sec"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +} + + +### if set to record this session, start recording ### +if ($record_call =~ /Y/) +{ +#$filename = "$inbound_number$US$phone_number$US$ivr_id"; +$filename = "$ivr_id"; +### code to record call goes here ### + +$AGI->exec("Monitor wav|/var/spool/asterisk/monitor/$filename|m"); + +### insert record into recording_log table ### +$stmtA = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,length_in_sec,filename,lead_id,user,location) values('$channel','$server_ip','$inbound_number','$now_date','start_epoch','0','$filename','$lead_id','$user','$ivr_id');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $recording_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$stmtA = "UPDATE vicidial_ivr SET recording_id='$recording_id', recording_filename='$filename' where ivr_id='$ivr_id';"; + if ($AGILOG) {$agi_string = "RECORDING- $recording_id $ivr_id START filename: $filename"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +} + + +### if set, say the current date ### +if ($say_date =~ /Y/) +{ + if ($AGILOG) {$agi_string = "SAYING DATETIME $now_date_epoch"; &agi_output;} + if (length($say_date_prompt)>0) {$AGI->stream_file("$say_date_prompt");} + sleep(1); + $AGI->exec("SayUnixtime"); + sleep(1); +} + + +##### Go through the propmts one at a time until done ##### + @prompts_list = split(/--/, $prompts); + $prompts_count = $#prompts_list; + +$i=0; +$j=1; +while($prompts_count >= $i) +{ + $prompt_ary = $prompts_list[$i]; + @prompts_specs = split(/-/, $prompt_ary); + $prompt = $prompts_specs[0]; + $wait_sec = $prompts_specs[1]; + if ($wait_sec < 1) {$wait_sec=10;} + $response = ''; + $prompt_name = "prompt_audio_$j"; + $response_name = "prompt_response_$j"; + + sleep(1); + + &prompt_gather_response; + $response = $totalDTMF; + + &get_time_now; + $length_in_sec = ($now_date_epoch - $start_epoch); + + $stmtA = "UPDATE vicidial_ivr SET $prompt_name='$prompt', $response_name='$response', length_in_sec='$length_in_sec' where ivr_id='$ivr_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "IVR- $ivr_id $i prompt: $prompt - $wait_sec response: $response length: $length_in_sec"; &agi_output;} + + $i++; + $j++; +} + +##### Play the last prompt and say the IVR number ##### + $AGI->stream_file("$last_prompt"); + $AGI->say_digits("$ivr_id"); + + &get_time_now; + $length_in_sec = ($now_date_epoch - $start_epoch); + + $stmtA = "UPDATE vicidial_ivr SET length_in_sec='$length_in_sec' where ivr_id='$ivr_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "IVR- $ivr_id END prompt: $last_prompt length: $length_in_sec"; &agi_output;} + + if ($record_call =~ /Y/) + { + $stmtA = "UPDATE recording_log SET length_in_sec='$length_in_sec' where recording_id='$recording_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "RECORDING- $recording_id length: $length_in_sec"; &agi_output;} + } + + sleep(1); + $AGI->stream_file('beep'); + $AGI->say_digits("$ivr_id"); + sleep(1); + $AGI->stream_file('vm-goodbye'); + + +if ($AGILOG) {$agi_string = "IVR- ID: $ivr_id DONE Exiting"; &agi_output;} + +exit; + + + + +################################################################################ +##### SUBROUTINES ############################################################## +################################################################################ + + +##### BEGIN collect the company ID ############################################# +sub company_ID_gather_response +{ +$digit=''; +$interrupt_digit=''; + +$interrupt_digit = $AGI->stream_file("$company_ID_prompt",'1234567890'); + + 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 < $company_ID_length) + { + $digit = chr($AGI->wait_for_digit('100000')); # wait 100 seconds for input + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + print STDERR "digit |$digit| TotalDTMF |$totalDTMF|\n"; +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=$company_ID_length; + } + + $digit_loop_counter++; + } +} +##### END collect the company ID ############################################### + + + +##### BEGIN collect the user ID ################################################ +sub user_ID_gather_response +{ +$digit=''; +$interrupt_digit=''; + +$interrupt_digit = $AGI->stream_file("$user_ID_prompt",'1234567890'); + + 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 < $user_ID_length) + { + $digit = chr($AGI->wait_for_digit('100000')); # wait 100 seconds for input + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + print STDERR "digit |$digit| TotalDTMF |$totalDTMF|\n"; +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=$user_ID_length; + } + + $digit_loop_counter++; + } +} +##### END collect the user ID ################################################## + + + +##### BEGIN collect the customer phone number ################################## +sub cust_phone_gather_response +{ +$digit=''; +$interrupt_digit=''; + +$interrupt_digit = $AGI->stream_file("$cust_phone_prompt",'1234567890'); + + print STDERR "interrupt_digit |$interrupt_digit|\n"; + +$digits_being_entered=1; +$digit_loop_counter=0; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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 < $cust_phone_length) + { + $digit = chr($AGI->wait_for_digit('100000')); # wait 100 seconds for input + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + print STDERR "digit |$digit| TotalDTMF |$totalDTMF|\n"; +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=$cust_phone_length; + } + + $digit_loop_counter++; + } +} +##### END collect the customer phone number #################################### + + + +##### BEGIN collect the response to a prompt ################################### +sub prompt_gather_response +{ +$digit=''; +$interrupt_digit=''; + +$interrupt_digit = $AGI->stream_file("$prompt",'123456789'); + + print STDERR "interrupt_digit |$interrupt_digit|\n"; + +$digits_being_entered=1; +$digit_loop_counter=0; +$totalDTMF=''; +if ($interrupt_digit > 1) + { +# 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) + { + $wait_ms = ($wait_sec * 1000); + $digit = chr($AGI->wait_for_digit("$wait_ms")); # wait number of milli-seconds for input + 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++; + } +} +##### END collect the response to a prompt ##################################### + + + + + +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) {$hour = "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"; +$filedate = "$year$mon$mday$hour$min$sec"; +} + + + +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++; + } +} + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-LCR-Route.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-LCR-Route.agi new file mode 100644 index 00000000..c578ca59 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-LCR-Route.agi @@ -0,0 +1,184 @@ +#!/usr/bin/perl +# +# agi-LCR-Route.agi version 2.2.0 +# +# This script looks up the NPANXX in the lcr table and sets +# the LCRTRUNK dialplan variable to the carrier string +# with the cheapest rate. If no carrier is found for this NPANXX +# the variable is unchanged so you should set it with the default +# previously. +# +# [globals] +# LCRTRUNK=SIP/provider1 ; default LCR trunk +# +# [default] +# ;outbound VICIDIAL calls: +# exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +# exten => _91NXXNXXXXXX,n,AGI(agi-LCR-Route.agi,${EXTEN:2:6}) +# exten => _91NXXNXXXXXX,n,Dial(${LCRTRUNK}/${EXTEN:2},,To) +# exten => _91NXXNXXXXXX,n,Hangup +# +# Here is the SQL to create the lcr table: +# +# create table if not exists lcr ( +# npanxx mediumint not null, +# rate varchar(10) not null, +# carrier_string varchar(20) not null +# ); +# alter table lcr add unique index (npanxx, rate, carrier_string); +# +# A typical npanxx from this table should look like: +# +# mysql> select npanxx,rate,carrier_string from lcr where npanxx='734223'; +# +--------+--------+----------------+ +# | npanxx | rate | carrier_string | +# +--------+--------+----------------+ +# | 734223 | 0.0064 | SIP/provider1 | +# | 734223 | 0.0076 | SIP/provider2 | +# +--------+--------+----------------+ +# +# Unfortunately these rate sheets are not in a standard format. +# You will have to write a custom loading script to populate this table. +# An exampe loading script is provided in the extras directory of the +# astguiclient source code called lcr_loader_example.pl +# +# +# Copyright (C) 2009 Michael Cargile LICENSE: AGPLv2 +# +# changes: +# 90717-1554 - First Build +# 91129-2209 - formatting fixes +# + +sub agi_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### + if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} + $agi_string=''; + } + +$script = 'agi-LCR-Route.agi'; +$AGILOG = '0'; + + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $npanxx = $ARGV_vars[0]; + if ($AGILOG) {$agi_string = "Searching for NPANXX = $npanxx"; &agi_output;} + } + +# get the cheapest carrier +$stmtA = "SELECT carrier_string, rate FROM lcr WHERE npanxx='$npanxx' ORDER BY rate ASC"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ( $sthArows > 0 ) + { + $rec_count=0; + @aryA = $sthA->fetchrow_array; + $carrier_string = "$aryA[0]"; + $sthA->finish(); + + if ($AGILOG) {$agi_string = "Setting LCRTRUNK to $carrier_string"; &agi_output;} + + $AGI->set_variable( "LCRTRUNK",$carrier_string ); + } +else + { + if ($AGILOG) {$agi_string = "No carrier found for NPANXX = $npanxx. Leaving the LCRTRUNK variable as the default."; &agi_output;} + } diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-NVA_recording.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-NVA_recording.agi new file mode 100644 index 00000000..3f6b4f34 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-NVA_recording.agi @@ -0,0 +1,223 @@ +#!/usr/bin/perl +# +# agi-NVA_recording.agi version 0.1 +# +# This script is designed to give recording ability to agents not the using +# ViciDial agent screen +# +# ; 1. logging output (NONE|STDERR|FILE|BOTH) +# ; 2. the ViciDial user ID, if empty it defaults to accountcode(usually phone extension) +# ; 3. log this call in user_call_log (Y|N) default N +# ; 4. log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND AND INTERSYSTEM CALLS!!! +# ; 5. audio record this call (Y|N) default N +# +# ;custom dialplan entry example: +#exten => _.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y) +#exten => _.,n,Goto(default,${EXTEN},1) +#exten => _.,n,Hangup +# +# ;inbound to agent example: +#exten => 5678,1,AGI(agi-NVA_recording.agi,BOTH------Y---Y---Y) +#exten => 5678,n,Goto(vicidial-auto,5678,1) +#exten => 5678,n,Hangup +# +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 91105-1402 - First build +# + +&get_time_now; + +$script = 'agi-NVA_recording.agi'; + +$now_date_epoch = time(); +$start_epoch = $now_date_epoch; + +($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 = "$year-$mon-$mday $hour:$min:$sec"; +$filedate = "$year$mon$mday$hour$min$sec"; + +$US='_'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/nvaout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($ARGV[0] =~ /---/) + { + ### list of command-line array arguments: + @ARGV_vars = split(/---/, $ARGV[0]); + + $AGI_output = $ARGV_vars[0]; + if (length($ARGV_vars[1]) > 0) + {$user = $ARGV_vars[1];} + $log_user_call = $ARGV_vars[2]; + $log_call = $ARGV_vars[3]; + $record_call = $ARGV_vars[4]; + + if ($AGI_output =~ /STDERR/) {$AGILOG = '1';} + if ($AGI_output =~ /FILE/) {$AGILOG = '2';} + if ($AGI_output =~ /BOTH/) {$AGILOG = '3';} + + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + if ($AGILOG) {$agi_string = "$AGI_output|$user|$log_call|$record_call|$uniqueid_log"; &agi_output;} + } + } + + +$|=1; +while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + $agi_string = "$1|$2"; &agi_output; + } + } + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_accountcode\:\s+(.*)$/) {$accountcode = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + } + +if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; +if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + +if (length($user) > 0) + {$accountcode = $user;} + +### if set to record this call, start recording ### +if ($record_call =~ /Y/) + { + $filename = "$filedate$US$accountcode$US$extension"; + ### code to record call goes here ### + + $AGI->exec("Monitor wav|/var/spool/asterisk/monitor/MIX/$filename"); + + ### insert record into recording_log table ### + $stmtA = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,length_in_sec,filename,lead_id,user,location,vicidial_id) values('$channel','$VARserver_ip','$extension','$now_date','start_epoch','0','$filename','0','$accountcode','$filename','$unique_id');"; + $affected_rows = $dbhA->do($stmtA); + } + +### if set to user log this call, insert user_call_log entry ### +if ($log_user_call =~ /Y/) + { + ### insert record into user_call_log table ### + $stmtA = "INSERT INTO user_call_log SET user='$accountcode', call_date='$now_date', call_type='PHONE_DIAL', server_ip='$VARserver_ip', phone_number='$extension', number_dialed='$extension', callerid='$callerid', group_alias_id='$unique_id';"; + $affected_rows = $dbhA->do($stmtA); + } + +### if set to log this call, insert call_log entry ### +if ($log_call =~ /Y/) + { + ### insert record into call_log table ### + $stmtA = "INSERT INTO call_log SET uniqueid='$unique_id', channel='$channel', channel_group='PHONE_DIAL', server_ip='$VARserver_ip', type='$type', extension='$accountcode', number_dialed='$extension', caller_code='$callerid', start_time='$now_date', start_epoch='$start_epoch';"; + $affected_rows = $dbhA->do($stmtA); + } + + +exit; + + + +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"; + $filedate = "$year$mon$mday$hour$min$sec"; + } + + +sub agi_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### + if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} + $agi_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_ALL_inbound.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_ALL_inbound.agi new file mode 100644 index 00000000..f942a6e3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_ALL_inbound.agi @@ -0,0 +1,3289 @@ +#!/usr/bin/perl +# +# agi-VDAD_ALL_inbound.agi version 2.2.0 +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# ## THIS SCRIPT CONSOLIDATES THIRTEEN SEPARATE VDAD closer inbound SCRIPTS ## +# +# +# You need to put lines similar to those below in your extensions.conf file: +# ; Below are the parameters needed for the script to be run properly +# ; 1. the method of call handling for the script: +# ; - CID - CID received, add record with phone number +# ; - CIDLOOKUP - Lookup CID to find record in whole system +# ; - CIDLOOKUPRL - Restrict lookup to one list +# ; - CIDLOOKUPRC - Restrict lookup to one campaign's lists +# ; - CLOSER - Closer calls from VICIDIAL fronters +# ; - ANI - ANI received, add record with phone number (based on RBS T1s) +# ; - ANILOOKUP - Lookup ANI to find record in whole system +# ; - ANILOOKUPRL - Restrict lookup to one list +# ; - ANILOOKUPRC - Restrict lookup to one campaign's lists +# ; - VID - Add record with Vendor Lead Code received as argument 12 +# ; - VIDLOOKUP - Lookup Vendor Lead Code received as argument 12 to find record in whole system +# ; - VIDLOOKUPRL - Restrict lookup to one list (argument 12) +# ; - VIDLOOKUPRC - Restrict lookup to one campaign's lists (argument 12) +# ; - VIDPROMPT - Prompt Vendor Lead Code to User with IVR to add record with Vendor Lead Code +# ; - VIDPROMPTLOOKUP - Prompt Vendor Lead Code to User with IVR to find record in whole system +# ; - VIDPROMPTLOOKUPRL - Restrict lookup to one list +# ; - VIDPROMPTLOOKUPRC - Restrict lookup to one campaign's lists +# ; - 3DIGITID - Enter 3 digit code to go to agent +# ; - 4DIGITID - Enter 4 digit code to go to agent +# ; - XDIGITID - Enter X digit code to go to agent(variable, i.e. 9DIGITID, 12DIGITID, etc...) +# ; 2. the method of searching for an available agent: +# ; - LO - Load Balance Overflow only (priority to home server) +# ; - LB - Load Balance total system +# ; - SO - Home server only +# ; 3. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 4. the phone number that was called, for the log entry +# ; 5. the callerID or lead_id of the person that called(usually overridden) +# ; 6. the park extension audio file name if used +# ; 7. the status of the call initially(usually not used) +# ; 8. the list_id to insert the new lead under if it is new (and CID/ANI available) +# ; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available) +# ; 10. the campaign_id to search within lists if CIDLOOKUPRC +# ; 11. the user to queue the call to for AGENTDIRECT in-group calls +# ; 12. vendor_lead_code if external mechanism like custom IVR is used to prompt user for ID +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----INB-----7274515134-----Closer-----park----------999-----1-----OUTB) +#exten => 1234,3,Hangup +# +# ;inbound with removal of first digit of callerID on all calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,n,set(CALLERID(num)=${CALLERID(num):1}) +#exten => 1234,n,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----INB-----7274515134-----Closer-----park----------999-----1-----OUTB) +#exten => 1234,n,Hangup +# +#; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel] +#exten => _90009.,1,Answer ; Answer the line +#exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1) +#exten => _90009.,3,Hangup +#exten => _990009.,1,Answer ; Answer the line +#exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1) +#exten => _990009.,3,Hangup +#; DID forwarded calls +#exten => _99909*.,1,Answer +#exten => _99909*.,2,AGI(agi-VDAD_ALL_inbound.agi) +#exten => _99909*.,3,Hangup +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 70828-0924 - First Build +# 71013-0310 - Added use of default Music-on-hold instead of generic on-hold message +# 71020-1714 - fixed issues with MoH and stream_file messages +# 71024-2153 - Added CLOSER functionality for calls coming from VICIDIAL fronters +# 71029-1726 - Changed CLOSER-type campaigns to use new campaign_allow_inbound field +# 71030-0713 - fixed after-hours logging +# 71030-0939 - fixed issue where MoH was still playing, added ding and wait before transfer +# 71103-2305 - added group rank and fewest calls options to next_agent_call +# 71112-0058 - fixed multi-logging bug on CLOSER calls +# 71116-1045 - added fewest_calls_campaign agent call routing option +# 71128-1758 - added CIDLOOKUPRC method to search all lists within a campaign +# 80109-2348 - added option to trigger a system process when the call is sent to an agent +# 80227-0335 - added queue priority functionality +# 80302-0232 - added drop_action and transfer to in-group +# 80402-0142 - added code for manual dial transfer duplicate check +# 80430-1144 - added term_reason to vicidial_closer_log, QUEUETIMEOUT, AFTERHOURS +# 80501-0515 - added after hours transfer in-group +# 80525-1040 - added ability to convert IVR status inbound calls to LIVE in-group calls +# 80630-2232 - added queue_log logging of inbound calls +# 80821-0133 - fixed non-play issue with hold message +# 80918-0505 - Added place in line and estimated time on hold +# 81002-1120 - Added processing for DID forwarded calls +# 81011-1019 - Added option for press 1 to leave voicemail if wait time > hold-time-option-seconds +# 81020-0237 - Added term_reason logging for all possible exits of the script +# 81021-2315 - Changed and add queue_log logging +# 81024-0006 - Changed LOOKUP to insert new lead if phone_number < 3 digits, changed queue_sec calculation +# 81104-0301 - Changed code to alter callerIDnumber for remote agents to the number of the caller +# 81105-0248 - Added MySQL error logging +# 90103-0311 - Added sip-silences before transfers to fix rare MoH issues +# 90115-0601 - Added AGENTDIRECT functionality +# 90607-1717 - Fix for AGENTDIRECT bug under certain configurations +# 90623-0724 - Changed prompts to multi-file prompts, changed agent alert exten to a prompt +# 90627-0546 - Added no-agent-no-queue options +# 90702-2129 - Fixed rare agent alert bug, added option to send to remote agent as phone*vendor_id +# 90709-1648 - Fixed alt-number transfers +# 90712-2307 - Added agent grab call in queue +# 90720-0023 - Added checks for filename validity before streaming, changed initial heavy search from 3 to 2 seconds +# 90726-0114 - Fixed bug on some calls for agent grab +# 90808-0307 - Added longest_wait_time as agent routing option +# 91004-0959 - Fix for queue_log consultative transfers +# 91105-1258 - Added CallerIDnumber change on Drop when sending call out +# 91122-2352 - Added queue_log IVR and DID entry linking +# 91125-0921 - Fixed no-agent-no-queue AGENTDIRECT bug +# 91213-0942 - Added queue_position to queue_log COMPLETE... records +# 91214-2034 - Fixes for rare in-group rank route bug +# 91223-0959 - Added VID(vendor_lead_code) options +# 91230-0911 - Reset to original callerID when sending the call to VMAIL/CALLMENU/PHONE/etc... +# + +$script = 'agi-VDAD_ALL_inbound.agi'; +$dtmf_silent_prefix = '7'; + +$DROP_TIME = 720; ### default number of seconds to wait until you drop a waiting call +$start_moh=1; +$at='@'; +$S='*'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=123; +$one_mysql_log=0; + + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +$hm = "$hour$min"; +$hm = ($hm + 0); + +$now_date_epoch = time(); +$start_epoch = $now_date_epoch; +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$CLInow_date = "$year-$mon-$mday\\ $hour:$min:$sec"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($now_date_epoch - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} +if (!$PRSLOGfile) {$PRSLOGfile = "$PATHlogs/prsout.$year-$mon-$mday";} +if (!$PRSTESTfile) {$PRSTESTfile = "$PATHlogs/prstest.$year-$mon-$mday";} +if (!$ERRLOGfile) {$ERRLOGfile = "$PATHlogs/MySQLerror.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output,local_gmt FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02001'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + $local_gmt = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $call_handle_method = $ARGV_vars[0]; + $agent_search_method = $ARGV_vars[1]; + $channel_group = $ARGV_vars[2]; + $inbound_number = $ARGV_vars[3]; + $parked_by = $ARGV_vars[4]; + $park_extension = $ARGV_vars[5]; + $status = $ARGV_vars[6]; + $list_id = $ARGV_vars[7]; + $phone_code = $ARGV_vars[8]; + $Scampaign_id = $ARGV_vars[9]; + $agent_only = $ARGV_vars[10]; + $vendor_id = $ARGV_vars[11]; + } + +$|=1; +while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + } + + +if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + +$callerid =~ s/\D//gi; +$calleridname =~ s/unknown//gi; +if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} +$originalCID = $callerid; + +$user_unavailable_action=''; +##### special processing for DID forwarded calls "99909*1*" +if ($extension =~ /^999\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $did_id = $EXT_vars[1]; # the DID ID to grab settings from + + ### Grab DID values from the database + $stmtA = "SELECT call_handle_method,agent_search_method,group_id,did_pattern,list_id,phone_code,campaign_id,user,user_unavailable_action,user_route_settings_ingroup,did_route,voicemail_ext,extension,exten_context,phone,server_ip FROM vicidial_inbound_dids where did_id = '$did_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02002'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $call_handle_method = $aryA[0]; + $agent_search_method = $aryA[1]; + $did_in_group = $aryA[2]; + $inbound_number = $aryA[3]; + $list_id = $aryA[4]; + $phone_code = $aryA[5]; + $Scampaign_id = $aryA[6]; + $agent_only = $aryA[7]; + $user_unavailable_action = $aryA[8]; + $user_route_settings_ingroup = $aryA[9]; + $did_route = $aryA[10]; + $did_voicemail_ext = $aryA[11]; + $did_extension = $aryA[12]; + $did_exten_context = $aryA[13]; + $did_phone = $aryA[14]; + $did_phone_server_ip = $aryA[15]; + if ($did_route =~ /AGENT/) + {$channel_group = $user_route_settings_ingroup;} + else + {$channel_group = $did_in_group;} + } + $sthA->finish(); + } + +if ($call_handle_method =~ /^CLOSER/) + { + ### allow for internal PRI/IAX/SIP transfer data string "90009*CL_uk3survy_*8301*10000123*universal*7275551212*1234*" + if ($extension =~ /^900\d\d\*|^9900\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $channel_group = $EXT_vars[1]; # name of the parked group "In-group" + $inbound_number = $EXT_vars[2]; # extension to send call to after parsing + $parked_by = $EXT_vars[3]; # leadID + $park_extension = $EXT_vars[4]; # filename of the on-hold music file + $phone_number = $EXT_vars[5]; # phone number of customer + $fronter = $EXT_vars[6]; # user of the fronter that transferred the call + if ($channel_group =~ /AGENTDIRECT/) + { + $agent_only = $EXT_vars[7]; # optional AGENTDIRECT user to queue call for + } + $CIDlead_id = $parked_by; + $fronter_call_seconds = $EXT_vars[8]; # not currently used + + $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} + # JmmddhhmmssLLLLLLLLL + $JqueryCID = "J$CIDdate$PADlead_id"; + $callerid = $JqueryCID; + $VCcallerid = $JqueryCID; + ### set the new call callerid to track the call + print "SET CALLERID $JqueryCID\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $JqueryCID"; &agi_output;} + } + } + +if ( ($call_handle_method =~ /^CID/) || ($call_handle_method =~ /^VID/) ) + { + if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} + if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} + } + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + +if ($call_handle_method =~ /^ANI/) + { + $phone_number=''; + ### allow for external ANI to be collected on older RBS T1 circuits + if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + $phone_number = $EXT_vars[1]; + if ($AGILOG) {$agi_string = "ANI found: |$phone_number|"; &agi_output;} + } + } + +# When VID or VIDPROMPT, methods are not used, no Vendor Lead Code can be supplied. Fill it with inbound_number +if ($call_handle_method !~ /^VID/) + {$vendor_id = $inbound_number;} + +foreach $i (sort keys %AGI) + { + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} + } + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +if (length($pin) < 1) {$pin=$inbound_number;} + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; +$VCcallerid = $channel_group; +if (length($VCcallerid)<2) + {$VCcallerid = 'ViciDial Inbound';} + +if ($channel =~ /Local/i) + { + if ( ($inbound_number =~ /CXFER/) || ($call_handle_method =~ /^CLOSER/) ) + { + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: CXFER OVERRIDE- $priority"; &agi_output;} + if ($call_handle_method =~ /^CLOSER/) + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where lead_id='$CIDlead_id' and call_type='IN' and campaign_id='$channel_group' and channel NOT LIKE \"Local%\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02003'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Pseudo_duplicate_count = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + if ($Pseudo_duplicate_count > 0) + { + if ($AGILOG) {$agi_string = "+++++ INBOUND LOCAL DUPLICATE: EXITING- $priority"; &agi_output;} + exit; + } + } + } + else + { + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} + exit; + } + } + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02004'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + + + +### Grab inbound groups values from the database +$cbc=0; +$stmtA = "SELECT call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,drop_call_seconds,drop_action,drop_exten,next_agent_call,voicemail_ext,queue_priority,drop_inbound_group,afterhours_xfer_group,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,no_agent_no_queue,no_agent_action,no_agent_action_value FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02005'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $call_time_id = "$aryA[0]"; + $after_hours_action = "$aryA[1]"; + $after_hours_message_filename = "$aryA[2]"; + $after_hours_exten = "$aryA[3]"; + $after_hours_voicemail = "$aryA[4]"; + $welcome_message_filename = "$aryA[5]"; + $moh_context = "$aryA[6]"; + $onhold_prompt_filename = "$aryA[7]"; + $prompt_interval = "$aryA[8]"; + $agent_alert_exten = "$aryA[9]"; + $agent_alert_delay = "$aryA[10]"; + $drop_call_seconds = "$aryA[11]"; + $DROP_TIME = $drop_call_seconds; + $drop_action = "$aryA[12]"; + $drop_exten = "$aryA[13]"; + $CAMP_callorder = "$aryA[14]"; + $VDADvoicemail_ext = "$aryA[15]"; + $VDADvoicemail_ext =~ s/\D//gi; + $queue_priority = "$aryA[16]"; + $drop_inbound_group = "$aryA[17]"; + $afterhours_xfer_group = "$aryA[18]"; + $play_place_in_line = "$aryA[19]"; + $play_estimate_hold_time = "$aryA[20]"; + $hold_time_option = "$aryA[21]"; + $hold_time_option_seconds = "$aryA[22]"; + $hold_time_option_exten = "$aryA[23]"; + $hold_time_option_voicemail = "$aryA[24]"; + $hold_time_option_xfer_group = "$aryA[25]"; + $hold_time_option_callback_filename = "$aryA[26]"; + $hold_time_option_callback_list_id = "$aryA[27]"; + $hold_recall_xfer_group = "$aryA[28]"; + $no_delay_call_route = "$aryA[29]"; + if ($hold_time_option =~ /DROP_ACTION/) + {$hold_time_option = $drop_action;} + $play_welcome_message = "$aryA[30]"; + $no_agent_no_queue = "$aryA[31]"; + $no_agent_action = "$aryA[32]"; + $no_agent_action_value = "$aryA[33]"; + + $cbc++; + } +$sthA->finish(); + +if ($wday==0) {$daySQL=',ct_sunday_start,ct_sunday_stop';} +if ($wday==1) {$daySQL=',ct_monday_start,ct_monday_stop';} +if ($wday==2) {$daySQL=',ct_tuesday_start,ct_tuesday_stop';} +if ($wday==3) {$daySQL=',ct_wednesday_start,ct_wednesday_stop';} +if ($wday==4) {$daySQL=',ct_thursday_start,ct_thursday_stop';} +if ($wday==5) {$daySQL=',ct_friday_start,ct_friday_stop';} +if ($wday==6) {$daySQL=',ct_saturday_start,ct_saturday_stop';} + +### Grab call_times values from the database +$stmtA = "SELECT ct_default_start,ct_default_stop $daySQL FROM vicidial_call_times where call_time_id = '$call_time_id';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02006'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +@aryA = $sthA->fetchrow_array; +$ct_default_start = "$aryA[0]"; +$ct_default_stop = "$aryA[1]"; +$ct_day_start = "$aryA[2]"; +$ct_day_stop = "$aryA[3]"; +$sthA->finish(); + +if ( ($ct_day_start > 0) || ($ct_day_stop > 0) ) + { + $ct_default_start = $ct_day_start; + $ct_default_stop = $ct_day_stop; + } + +$AGI->stream_file('sip-silence'); +$AGI->stream_file('sip-silence'); + +if ($call_handle_method =~ /DIGITID$/) + { + &enter_pin_number; + if (length($pin) > 0) + {$fronter = $pin;} + } + +if ($call_handle_method =~ /^VIDPROMPT/) + { + &enter_id_number; + } + +if ($call_handle_method =~ /LOOKUP/) + { + if ( ( ($call_handle_method =~ /^VID/) && (length($vendor_id)) < 3) || (length($phone_number) < 3) ) + { + ### insert a record into the vicidial_list table + $stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$fronter','$vendor_id','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','$local_gmt','$VLcomments');"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02007'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $cbc=0; + $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02008'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "VDAD vicidial_list insert |$insert_lead_id|$stmtA|"; &agi_output;} + } + else + { + $listSQL = ''; + if ($call_handle_method =~ /LOOKUPRL$/) + {$listSQL = "and list_id='$list_id'";} + else + { + if ($call_handle_method =~ /LOOKUPRC$/) + { + ### Grab all lists associated with Scampaign_id + $cbc=0; + $SlistsSQL=''; + $stmtA = "SELECT list_id FROM vicidial_lists where campaign_id='$Scampaign_id' limit 100;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02009'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $SlistsSQL .= "'$aryA[0]',"; + $cbc++; + } + $sthA->finish(); + chop($SlistsSQL); + + if (length($SlistsSQL)>3) + {$listSQL = "and list_id IN($SlistsSQL)";} + } + } + + $cbc=0; + if ($call_handle_method =~ /^VID/) + { + $stmtA= "SELECT lead_id from vicidial_list where vendor_lead_code='$vendor_id' $listSQL order by last_local_call_time desc limit 1;"; + } + else + { + $stmtA= "SELECT lead_id from vicidial_list where phone_number='$phone_number' $listSQL order by last_local_call_time desc limit 1;"; + } + if ($AGILOG) {$agi_string = "VDAD vicidial_list search |$phone_number|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02010'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "VDAD vicidial_list found |$insert_lead_id|$stmtA|"; &agi_output;} + } + else + { + ### insert a record into the vicidial_list table + $stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$fronter','$vendor_id','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','$local_gmt','$VLcomments');"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02011'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $cbc=0; + $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02012'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "VDAD vicidial_list insert |$insert_lead_id|$stmtA|"; &agi_output;} + } + } + } + +else + { + if ($call_handle_method =~ /CLOSER/) + { + ### Grab call lead parameters from vicidial_list table + $cbc=0; + $stmtA = "SELECT phone_number,phone_code,user,vendor_lead_code FROM vicidial_list where lead_id='$CIDlead_id' limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02013'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $campaign = "$channel_group"; + if (length($phone_number) < 10) + {$phone_number = "$aryA[0]";} + $phone_code = "$aryA[1]"; + $insert_lead_id = "$CIDlead_id"; + $fronter = "$aryA[2]"; + $vendor_id = "$aryA[3]"; + $cbc++; + } + $sthA->finish(); + } + + else + { + ### insert a record into the vicidial_list table if no record was found above + $stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$fronter','$vendor_id','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00','$VLcomments');"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02014'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $cbc=0; + $stmtA = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02015'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + } + } + + + +##### BEGIN AFTER HOURS CHECK ##### +if ( ($hm < $ct_default_start) || ($hm > $ct_default_stop) ) + { + $VHqueryCID = "VA$CIDdate$hour$min$sec$sec"; + + $stmtA = "INSERT INTO vicidial_closer_log set status='DROP',start_epoch='$now_date_epoch',end_epoch='$now_date_epoch',length_in_sec='1',queue_seconds='0',lead_id = '$insert_lead_id',campaign_id='$channel_group',user='VDCL',list_id='$list_id',call_date='$now_date',phone_code='$phone_code',phone_number='$phone_number',comments='AFTER HOURS DROP',term_reason='AFTERHOURS',uniqueid='$uniqueid';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02016'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtB ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02017'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $insert_close_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + if ($AGILOG) {$agi_string = "-- AH VDCL vcl insert: |$affected_rows|$insert_lead_id|$insert_close_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$insert_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02018'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- AH VDCL vl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02019'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- AH VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + if ($after_hours_action =~ /EXTENSION|VOICEMAIL|IN_GROUP/) + { + if ($after_hours_action =~ /EXTENSION/) + { + $DROPexten = "$after_hours_exten"; + $CIDcampaign_cid='0000000000'; + ### Grab ID values from the database + $stmtA = "SELECT campaign_id,campaign_cid FROM vicidial_campaigns where closer_campaigns LIKE \"% $channel_group %\" and active='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02113'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CIDcampaign_id = $aryA[0]; + $CIDcampaign_cid = $aryA[1]; + } + $sthA->finish(); + + $newcallerid = "\"$callerid <$CIDcampaign_cid>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$callerid\" \<$CIDcampaign_cid\> from $CIDcampaign_id"; &agi_output;} + } + if ($after_hours_action =~ /VOICEMAIL/) + { + $newcallerid = "\"$VCcallerid <$originalCID>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + $DROPexten = "$voicemail_dump_exten$after_hours_voicemail"; + } + if ($after_hours_action =~ /IN_GROUP/) + { # 90009*CL_uk3survy_*8301*10000123*universal*7275551212*1234*" + $DROPexten = "90009*$afterhours_xfer_group$S$S$insert_lead_id$S$S$phone_number$S$fronter$S"; + } + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($no_delay_call_route =~ /N/) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + } + + if ($AGILOG) {$agi_string = "exiting the VDAD app after hours, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + } + + if ($after_hours_action =~ /HANGUP/) + { + ### insert a NEW record to the vicidial_manager table to hangup the channel + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02020'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL call_hungup after hours: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + if ($after_hours_action =~ /MESSAGE/) + { + if (length($after_hours_message_filename) > 0) + { + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + if ($after_hours_message_filename =~ /\|/) + { + @after_hours_message_filename_array = split(/\|/,$after_hours_message_filename); + $w=0; + foreach(@after_hours_message_filename_array) + { + if (length($after_hours_message_filename_array[$w])>0) + { + $AGI->stream_file("$after_hours_message_filename_array[$w]"); + } + $w++; + } + } + else + {$AGI->stream_file("$after_hours_message_filename");} + } + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + ### insert a NEW record to the vicidial_manager table to hangup the channel + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02021'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- AH VDCL call_hungup after hours: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $dbhA->disconnect(); + + exit; + + } +##### END AFTER HOURS CHECK ##### + + + +##### BEGIN NO AGENT NO QUEUE CHECK ##### +if ($no_agent_no_queue =~ /Y|NO_PAUSED/) + { + $NPsql=''; + $ADsql=''; + if ($no_agent_no_queue =~ /NO_PAUSED/) + {$NPsql = "and status NOT IN('PAUSED')";} + if ( ($channel_group =~ /AGENTDIRECT/i) && (length($agent_only) > 1) ) + {$ADsql = "and user='$agent_only'";} + $stmtA = "SELECT count(*) FROM vicidial_live_agents where closer_campaigns LIKE \"% $channel_group %\" $NPsql $ADsql;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02104'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $group_agents_count = "$aryA[0]"; + } + $sthA->finish(); + + if ($group_agents_count < 1) + { + $VHqueryCID = "VA$CIDdate$hour$min$sec$sec"; + + $stmtA = "INSERT INTO vicidial_closer_log set status='DROP',start_epoch='$now_date_epoch',end_epoch='$now_date_epoch',length_in_sec='1',queue_seconds='0',lead_id = '$insert_lead_id',campaign_id='$channel_group',user='VDCL',list_id='$list_id',call_date='$now_date',phone_code='$phone_code',phone_number='$phone_number',comments='NO AGENT DROP',term_reason='NOAGENT',uniqueid='$uniqueid';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02105'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtB ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02017'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $insert_close_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + if ($AGILOG) {$agi_string = "-- NA VDCL vcl insert: |$affected_rows|$insert_lead_id|$insert_close_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$insert_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02106'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- NA VDCL vl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02107'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- NA VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + if ($no_agent_action =~ /CALLMENU|INGROUP|DID|EXTENSION|VOICEMAIL/) + { + if ($no_agent_action =~ /EXTENSION/) + { + if (length($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + @EXno_agent_action_value = split(/,/,$no_agent_action_value); + $DROPexten = $EXno_agent_action_value[0]; + $ext_context = $EXno_agent_action_value[1]; + + $CIDcampaign_cid='0000000000'; + ### Grab ID values from the database + $stmtA = "SELECT campaign_id,campaign_cid FROM vicidial_campaigns where closer_campaigns LIKE \"% $channel_group %\" and active='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02114'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CIDcampaign_id = $aryA[0]; + $CIDcampaign_cid = $aryA[1]; + } + $sthA->finish(); + + $newcallerid = "\"$callerid <$CIDcampaign_cid>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$callerid\" \<$CIDcampaign_cid\> from $CIDcampaign_id"; &agi_output;} + } + if ($no_agent_action =~ /DID/) + { + $newcallerid = "\"$VCcallerid <$originalCID>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + if (length($no_agent_action_value) < 1) + {$no_agent_action_value = '6666';} + $DROPexten = $no_agent_action_value; + $ext_context = 'trunkinbound'; + } + if ($no_agent_action =~ /CALLMENU/) + { + $newcallerid = "\"$VCcallerid <$originalCID>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + $DROPexten = 's'; + $ext_context = $no_agent_action_value; + } + if ($no_agent_action =~ /VOICEMAIL/) + { + $newcallerid = "\"$VCcallerid <$originalCID>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + $DROPexten = "$voicemail_dump_exten$no_agent_action_value"; + } + if ($no_agent_action =~ /INGROUP/) + { # 90009*CL_uk3survy_*8301*10000123*universal*7275551212*1234*" + if (length($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + @IGno_agent_action_value = split(/,/,$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + + $DROPexten = "90009*$IGgroup_id$S$S$insert_lead_id$S$S$phone_number$S$fronter$S"; + } + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($no_delay_call_route =~ /N/) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + } + + if ($AGILOG) {$agi_string = "exiting the VDAD app no agent no queue, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + } + + if ($no_agent_action =~ /MESSAGE/) + { + if (length($no_agent_action_value) > 0) + { + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + if ($no_agent_action_value =~ /\|/) + { + @no_agent_action_value_array = split(/\|/,$no_agent_action_value); + $w=0; + foreach(@no_agent_action_value_array) + { + if (length($no_agent_action_value_array[$w])>0) + { + $AGI->stream_file("$no_agent_action_value_array[$w]"); + } + $w++; + } + } + else + {$AGI->stream_file("$no_agent_action_value");} + } + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + ### insert a NEW record to the vicidial_manager table to hangup the channel + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02021'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- NA VDCL call_hungup after hours: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $dbhA->disconnect(); + + exit; + } + } +##### END NO AGENT NO QUEUE CHECK ##### + + + +##### PLAY WELCOME MESSAGE ##### +if ( ($welcome_message_filename !~ /---NONE---/) && (length($welcome_message_filename) > 0) && ( ($play_welcome_message =~ /ALWAYS/) || ( ($no_delay_call_route =~ /N/) && ($play_welcome_message =~ /YES_UNLESS_NODELAY/) ) ) ) + { + if ($welcome_message_filename =~ /\|/) + { + @welcome_message_filename_array = split(/\|/,$welcome_message_filename); + $w=0; + foreach(@welcome_message_filename_array) + { + if (length($welcome_message_filename_array[$w])>0) + { + $AGI->stream_file("$welcome_message_filename_array[$w]"); + } + $w++; + } + } + else + {$AGI->stream_file("$welcome_message_filename");} + } +if ($play_welcome_message =~ /IF_WAIT_ONLY/) + {$if_wait_play_welcome=1;} +else + {$if_wait_play_welcome=0;} + + +$vci=0; +$INBOUNDcampsSQL=''; +$stmtA = "SELECT campaign_id FROM vicidial_campaigns where active='Y' and campaign_allow_inbound='Y';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02022'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + while ($sthArows > $vci) + { + @aryA = $sthA->fetchrow_array; + if ($vci==0) {$INBOUNDcampsSQL .= "'$aryA[0]'";} + else {$INBOUNDcampsSQL .= ",'$aryA[0]'";} + $vci++; + } +$sthA->finish(); + +if ($AGILOG) {$agi_string = "|$stmtA|$insert_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $insert_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL +$YqueryCID = "Y$CIDdate$PADlead_id"; +$callerid = $YqueryCID; +$VCcallerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +if ($call_handle_method =~ /DIGITID$/) + { + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$insert_lead_id','$channel_group','$SQLdate','$now_date_epoch','XFER','$phone_code','$phone_number','$fronter','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02023'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD : |$insert_lead_id|$fronter|insert to vicidial_log: $uniqueid"; &agi_output;} + } +$insert_xfer_id=0; +if ($call_handle_method =~ /CLOSER|DIGITID$/) + { + $stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$insert_lead_id','$channel_group','$SQLdate','$phone_code','$phone_number','$fronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02024'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtB ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02025'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $insert_xfer_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "-- VDXL : |$insert_lead_id|$insert_xfer_id|insert to vicidial_xfer_log"; &agi_output;} + } + +############################################# +##### START QUEUEMETRICS LOGGING LOOKUP ##### +$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02026'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = $aryA[0]; + $queuemetrics_server_ip = $aryA[1]; + $queuemetrics_dbname = $aryA[2]; + $queuemetrics_login= $aryA[3]; + $queuemetrics_pass = $aryA[4]; + $queuemetrics_log_id = $aryA[5]; + $queuemetrics_eq_prepend = $aryA[6]; + } +$sthA->finish(); +##### END QUEUEMETRICS LOGGING LOOKUP ##### +########################################### +if ($enable_queuemetrics_logging > 0) + { + $data2 = "$phone_number"; + + if ( (length($queuemetrics_eq_prepend) > 0) && ($queuemetrics_eq_prepend !~ /NONE/) ) + { + $stmtA = "SELECT $queuemetrics_eq_prepend FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02027'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + $DASH='-'; + @aryA = $sthA->fetchrow_array; + $QMprepend = "$aryA[0]"; + $rec_count++; + $data2 = "$QMprepend$DASH$phone_number"; + } + $sthA->finish(); + } + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='ENTERQUEUE',data2='$data2',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02028'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + } + + +### If AGENTDIRECT set variable accordingly ### +$adSQL=''; +if ($channel_group =~ /AGENTDIRECT/) + {$adSQL = ",agent_only='$agent_only'";} + +### check for an IVR status record in vicidial_auto_calls +$Uaffected_rows=0; +$stmtA = "select auto_call_id from vicidial_auto_calls where uniqueid='$uniqueid' and server_ip='$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + if ($AGILOG) {$agi_string = "$sthArows|$stmtA|"; &agi_output;} + $dbhP=$dbhA; $mysql_count='02029'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $auto_call_id = $aryA[0]; + + ### UPDATE existing record to LIVE in the vicidial_auto_calls table + $stmtA = "UPDATE vicidial_auto_calls SET campaign_id='$channel_group',status='LIVE',lead_id='$insert_lead_id',callerid='$callerid',channel='$channel',phone_code='$phone_code',phone_number='$phone_number',call_time='$SQLdate',call_type='IN',stage='LIVE-0',queue_priority='$queue_priority' $adSQL WHERE auto_call_id='$auto_call_id';"; + $Uaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$Uaffected_rows|$stmtA|"; &agi_output;} + $dbhP=$dbhA; $mysql_count='02029'; $MEL_aff_rows=$Uaffected_rows; &mysql_error_logging; + } +$sthA->finish(); + +if ($Uaffected_rows < 1) + { + ### insert a LIVE record to the vicidial_auto_calls table + $stmtA = "INSERT INTO vicidial_auto_calls SET server_ip='$VARserver_ip', campaign_id='$channel_group', status='LIVE', lead_id='$insert_lead_id', uniqueid='$uniqueid', callerid='$callerid', channel='$channel', phone_code='$phone_code', phone_number='$phone_number', call_time='$SQLdate', call_type='IN', stage='LIVE-0', queue_priority='$queue_priority' $adSQL;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02030'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtB ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02109'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $auto_call_id = $aryA[0]; + } + $sthA->finish(); + } + +if ($enable_queuemetrics_logging > 0) + { + $QL_last_day = ($now_date_epoch - 86400); + $stmtB = "UPDATE queue_log SET call_id='$YqueryCID' where time_id > '$QL_last_day' and call_id='$uniqueid' and queue='NONE' and agent='NONE' and verb='INFO' and data1 IN('DID','IVR');"; + $Baffected_rows = $dbhB->do($stmtB); + if ($AGILOG) {$agi_string = "$Baffected_rows|$stmtB|"; &agi_output;} + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02115'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + $dbhB->disconnect(); + } + +### determin original queue position of the call +$queue_position=1; +$stmtA = "SELECT count(*) from vicidial_auto_calls where status = 'LIVE' and campaign_id='$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + if ($AGILOG) {$agi_string = "$sthArows|$stmtA|"; &agi_output;} + $dbhP=$dbhA; $mysql_count='02120'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $queue_position = $aryA[0]; + } + +### UPDATE vicidial_auto_calls record with starting queue_position +$stmtA = "UPDATE vicidial_auto_calls SET queue_position='$queue_position' WHERE auto_call_id='$auto_call_id';"; +$Uaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$Uaffected_rows|$stmtA|"; &agi_output;} + $dbhP=$dbhA; $mysql_count='02121'; $MEL_aff_rows=$Uaffected_rows; &mysql_error_logging; + +### INSERT vicidial_closer_log record, call is entering the queue +$stmtA = "INSERT INTO vicidial_closer_log SET lead_id='$insert_lead_id', campaign_id='$channel_group', call_date='$SQLdate', start_epoch='$now_date_epoch', status='QUEUE', phone_code='$phone_code', phone_number='$phone_number', user='VDCL', processed='N', xfercallid='$insert_xfer_id', uniqueid='$uniqueid', queue_position='$queue_position' $adSQL;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02031'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; +$stmtB = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtB ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02032'; $MEL_aff_rows=$sthArows; &mysql_error_logging; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $insert_close_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); +if ($AGILOG) {$agi_string = "-- VDCL : |$insert_lead_id|$insert_xfer_id|$insert_close_id|insert to vicidial_closer_log"; &agi_output;} + + + + +$wait_in_queue=1; +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=($prompt_interval - 10); +$hold_tone_counter=0; +$skipLOSO=0; +$ADfindSQL=''; +$ADUfindSQL=''; + +########################################################## +### For AGENTDIRECT calls try to send call to an agent ### +if ( ($channel_group =~ /AGENTDIRECT/) && (length($agent_only) > 1) ) + { + $skipLOSO=1; + $ADfindSQL = "and agent_only='$agent_only'"; + $ADUfindSQL = "and vicidial_live_agents.user='$agent_only'"; + } +else + { + $ADfindSQL = "and agent_only=''"; + } + + +############################################ +### Loop to try to send call to an agent ### +while ( ($drop_timer <= $DROP_TIME) && ($wait_in_queue > 0) ) + { + $channel_status = $AGI->channel_status("$channel"); + if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 720) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 720); + } + } + + $rec_countCUSTDATA=0; + $rec_countWAIT=0; + $gsp_countWAIT=0; + $qp_countWAIT=0; + $cbc=0; + $aco_sub=0; + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /longest_wait_time/i) {$agent_call_order = 'order by vicidial_live_agents.last_state_change';} + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by vicidial_live_agents.last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by vicidial_live_agents.last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} + if ($CAMP_callorder =~ /fewest_calls_campaign/i) {$agent_call_order = 'order by vicidial_live_agents.calls_today,vicidial_live_agents.last_call_finish';} + if ($CAMP_callorder =~ /inbound_group_rank/i) {$aco_sub=1; $agent_call_order = 'order by group_weight desc';} + if ($CAMP_callorder =~ /fewest_calls$/i) {$aco_sub=1; $agent_call_order = 'order by vicidial_live_inbound_agents.calls_today,vicidial_live_inbound_agents.last_call_finish';} + + + $vci=0; + $INBOUNDcampsSQL="''"; + $stmtA = "SELECT campaign_id FROM vicidial_campaigns where active='Y' and campaign_allow_inbound='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02033'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + while ($sthArows > $vci) + { + @aryA = $sthA->fetchrow_array; + if ($vci < 1) {$INBOUNDcampsSQL = "'$aryA[0]'";} + else {$INBOUNDcampsSQL .= ",'$aryA[0]'";} + $vci++; + } + $sthA->finish(); + + + ################################################################ + ##### BEGIN Check for Agent Grab of this call + $AGENTgrab=0; + $AGENTuser=''; + $stmtA = "SELECT agent_grab FROM vicidial_auto_calls where auto_call_id='$auto_call_id' and agent_grab NOT IN('');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02110'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $AGENTuser = $aryA[0]; + $AGENTgrab++; + } + $sthA->finish(); + ##### END Check for Agent Grab of this call + ################################################################ + + + ################################################################ + ##### Attempt to send call to an agent on this server only ##### + if ( ($agent_search_method =~ /^SO|^LO/) && ($skipLOSO < 1) ) + { + ### Get count of number of calls in this group that are ahead of this call + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$insert_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02034'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = $aryA[0]; + $cbc++; + } + $sthA->finish(); + + if ( ($rec_countWAIT < 1) || ($AGENTgrab > 0) ) + { + $qp_countWAIT=0; + ### Get count of number of waiting calls in higher priority groups than this call or the same priority with longer wait time + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and lead_id != '$insert_lead_id' and ( (queue_priority > '$queue_priority') or (queue_priority = '$queue_priority' and call_time < \"$SQLdateBEGIN\"));"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02035'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $qp_countWAIT = $aryA[0]; + } + $sthA->finish(); + + $qp_groupWAIT=''; + $qp_groupWAIT_SQL=''; + $qp_groupWAIT_aco=''; + $qp_groupWAIT_aco_SQL=''; + $qp_groupWAIT_camp_SQL=''; + if ( ($qp_countWAIT > 0) && ($AGENTgrab < 1) ) + { + ### Get group/campaign ids of calls in higher priority groups than this call or the same priority with longer wait time + $stmtA = "SELECT distinct campaign_id FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and lead_id != '$insert_lead_id' and ( (queue_priority > '$queue_priority') or (queue_priority = '$queue_priority' and call_time < \"$SQLdateBEGIN\") );"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02036'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $dbc=0; + $qp_groupWAIT=''; + while ($sthArows > $dbc) + { + @aryA = $sthA->fetchrow_array; + $qp_groupWAIT_aco .= "'$aryA[0]',"; + if ($dbc > 0) + { + $qp_groupWAIT .= "and "; + } + $qp_groupWAIT .= "closer_campaigns NOT LIKE \"% $aryA[0] %\" "; + $dbc++; + } + if (length($qp_groupWAIT_aco)>2) + {chop($qp_groupWAIT_aco);} + else + { + $qp_groupWAIT_aco="''"; + $qp_groupWAIT = "closer_campaigns != ''"; + } + + $qp_groupWAIT_SQL = "and ($qp_groupWAIT)"; + $qp_groupWAIT_aco_SQL = "and vicidial_live_inbound_agents.group_id NOT IN($qp_groupWAIT_aco)"; + $qp_groupWAIT_camp_SQL = "and campaign_id NOT IN($qp_groupWAIT_aco)"; + + $sthA->finish(); + } + + if ( ($aco_sub>0) || ($AGENTgrab > 0) ) + { + $stmtA = "LOCK TABLES vicidial_live_agents WRITE, vicidial_live_inbound_agents WRITE;"; + my $LOCKaffected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02037'; $MEL_aff_rows=$LOCKaffected_rows; &mysql_error_logging; + + if (length($qp_groupWAIT_aco)<2) + {$qp_groupWAIT_aco="''";} + ### Get list of users that should take higher priority inbound calls first + $stmtA = "SELECT distinct user from vicidial_live_inbound_agents where group_id IN($qp_groupWAIT_aco);"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02122'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $dbc=0; + $vlia_users=''; + while ($sthArows > $dbc) + { + @aryA = $sthA->fetchrow_array; + $vlia_users .= "'$aryA[0]',"; + $dbc++; + } + if (length($vlia_users)>2) + {chop($vlia_users);} + else + {$vlia_users="''";} + + $stmtA = "SELECT vicidial_live_agents.conf_exten,vicidial_live_agents.user,vicidial_live_agents.extension,vicidial_live_agents.server_ip,vicidial_live_inbound_agents.group_weight from vicidial_live_agents, vicidial_live_inbound_agents WHERE vicidial_live_agents.user=vicidial_live_inbound_agents.user and status IN('CLOSER','READY') and lead_id<1 and server_ip='$VARserver_ip' $ADUfindSQL and vicidial_live_inbound_agents.group_id='$channel_group' and last_update_time > '$BDtsSQLdate' and vicidial_live_agents.user NOT IN($vlia_users) $qp_groupWAIT_camp_SQL $agent_call_order limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02038'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = $aryA[0]; + $VDADuser = $aryA[1]; + $VDADextension = $aryA[2]; + $VDADserver_ip = $aryA[3]; + $VDADgroup_weight = $aryA[4]; + } + $sthA->finish(); + if ($AGILOG) {$agi_string = "$VDADuser|$VDADgroup_weight|$stmtA|"; &agi_output;} + + if ($AGENTgrab > 0) + { + $stmtA = "SELECT conf_exten,extension from vicidial_live_agents WHERE user='$AGENTuser';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02111'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = $aryA[0]; + $VDADextension = $aryA[1]; + $VDADuser = $AGENTuser; + } + $sthA->finish(); + } + if ($sthArows > 0) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$insert_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid',comments='INBOUND' where user='$VDADuser';"; + $Faffected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02039'; $MEL_aff_rows=$Faffected_rows; &mysql_error_logging; + } + else + { + $Faffected_rows=0; + } + $found_agents=$Faffected_rows; + + $stmtA = "UNLOCK TABLES;"; + $LOCKaffected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02040'; $MEL_aff_rows=$LOCKaffected_rows; &mysql_error_logging; + } + else + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$insert_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid',comments='INBOUND' where status IN('CLOSER','READY') and lead_id<1 and server_ip='$VARserver_ip' and campaign_id IN($INBOUNDcampsSQL) and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $qp_groupWAIT_SQL $qp_groupWAIT_camp_SQL $agent_call_order limit 1;"; + $Faffected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02041'; $MEL_aff_rows=$Faffected_rows; &mysql_error_logging; + $found_agents=$Faffected_rows; + } + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$Faffected_rows|$channel_group|$found_agents|$stmtA|"; &agi_output;} + if ($found_agents > 0) + { + if ($aco_sub<1) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status IN('QUEUE','INCALL') and server_ip='$VARserver_ip' and campaign_id IN($INBOUNDcampsSQL) and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02042'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + } + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02043'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + if ($affected_rows < 1) + { + $stmtA = "INSERT INTO vicidial_auto_calls SET server_ip='$VARserver_ip',campaign_id='$channel_group',status='CLOSER',lead_id='$insert_lead_id',uniqueid='$uniqueid',callerid='$callerid',channel='$channel',phone_code='$phone_code',phone_number='$phone_number',call_time='$SQLdate',call_type='IN',stage='CLOSER-$drop_timer',queue_priority='$queue_priority' $adSQL;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02044'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "$affected_rows|VDAC-reinsert|$stmtA|"; &agi_output;} + } + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + $now_date_epoch = time(); + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02045'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $QLabandon=0; + $stmtB="SELECT count(*) from queue_log where call_id='$YqueryCID' and verb='ABANDON';"; + if ($AGILOG) {$agi_string = "|$stmtB|"; &agi_output;} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrowsQLA=$sthB->rows; + if ($sthBrowsQLA > 0) + { + @aryB = $sthB->fetchrow_array; + $QLabandon = "$aryB[0]"; + } + $sthB->finish(); + if ( ($QLabandon > 0) && (length($callerid) > 15) ) + { + $stmtB = "DELETE FROM queue_log where call_id='$YqueryCID' and verb='ABANDON';"; + if ($AGILOG) {$agi_string = "Removing ABANDON queue_log entries for call $QLabandon|$YqueryCID"; &agi_output;} + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02116'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + } + + $dbhB->disconnect(); + } + + if ($call_handle_method =~ /CLOSER|DIGITID$/) + { + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$insert_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02046'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$insert_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + } + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$insert_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02047'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$insert_lead_id|$insert_close_id|\n|$stmtA|"; &agi_output;} + + ### if agent alert exten is not disabled, then trigger the alert and wait + if ( ($agent_alert_exten !~ /^X$/i) && (length($agent_alert_exten)>0) && ($no_delay_call_route !~ /Y/i) ) + { + if ($agent_alert_exten =~ /^8304$/) + {$agent_alert_exten = 'ding';} + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + ### insert a NEW record to the vicidial_manager table to play the alert message to the agent + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Originate','$VHqueryCID','Exten: 83047777777777','Context: vicidial-auto','Channel: Local/$dtmf_silent_prefix$VDADconf_exten$at$ext_context','Priority: 1','Callerid: $agent_alert_exten','Timeout: 10','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02048'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL agent alert: |$VHqueryCID|7$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + + usleep(1 * $agent_alert_delay * 1000); + } + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + + if ($no_delay_call_route =~ /N/) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); + } + + ### update calls_today for vicidial_live_inbound_agents ### + $stmtA = "SELECT calls_today from vicidial_inbound_group_agents WHERE user='$VDADuser' and group_id='$channel_group';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02049'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $calls_today = "$aryA[0]"; + $calls_today++; + } + $sthA->finish(); + + if ($sthArows > 0) + { + $stmtA = "UPDATE vicidial_live_inbound_agents set calls_today='$calls_today' WHERE user='$VDADuser' and group_id='$channel_group';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02050'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $stmtA = "UPDATE vicidial_inbound_group_agents set calls_today='$calls_today' WHERE user='$VDADuser' and group_id='$channel_group';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02051'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDLIA agent calls: |$calls_today|$VDADuser|$channel_group|"; &agi_output;} + } + + &trigger_transfer_process; + + if ($no_delay_call_route !~ /Y/i) + {usleep(1*500*1000);} + + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + + if ($VDADextension =~ /^R\//) + { + ### set the callerid to the ACQS value(calleridname) + ## use these two lines for Asterisk 1.2 tree + $newcallerid = "\"$callerid <$phone_number>\""; + $AGI->set_callerid($newcallerid); + ## use these two lines for Asterisk 1.0 tree + # print "SET CALLERID \"$calleridname\" <0000000000>\n"; + # print "SET CALLERIDNAME \"$calleridname\"\n"; + ### custom change to allow exten to be sent as phone*vendor_id + if ($VDADconf_exten =~ /888888888888/) + { + $VDADconf_exten = "$phone_number$S$vendor_id"; + } + + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$callerid\" \<$phone_number\>"; &agi_output;} + } + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$insert_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02052'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|$insert_close_id|\n|$stmtA|"; &agi_output;} + + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available local agent found"; &agi_output;} + } + } + else + { + ### For Debugging purposes display the call ahead of this call + if ( ($rec_countWAIT == '1') && ($drop_timer > 2) && ($AGILOG) ) + { + $stmtA = "SELECT call_time,campaign_id,last_update_time,callerid,status,channel FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$insert_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02053'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $r=0; + $agi_string="\n"; + while ($sthArows > $r) + { + @aryA = $sthA->fetchrow_array; + $agi_string .= "|$aryA[0]|$aryA[1]|$aryA[2]|$aryA[3]|$aryA[4]|$aryA[5]|\n"; + $r++; + } + $sthA->finish(); + &agi_output; + } + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER LOCAL WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|$drop_timer|"; &agi_output;} + } + } + + + if ($agent_search_method =~ /^LO|^LB/) + { + ################################################################################################### + ##### Attempt to send call to an agent on any server ##### + $cbc=0; + $rec_countWAITrem=0; + ### Get count of number of calls in this group that are ahead of this call + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$insert_lead_id' $ADfindSQL;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02054'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAITrem = $aryA[0]; + $cbc++; + } + $sthA->finish(); + if ($AGILOG) {$agi_string = "$rec_countWAITrem|$stmtA|"; &agi_output;} + + if ( ($rec_countWAITrem < 1) || ($AGENTgrab > 0) ) + { + $qp_countWAIT=0; + ### Get count of number of waiting calls in higher priority groups than this call or the same priority with longer wait time + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and lead_id != '$insert_lead_id' $ADfindSQL and ( (queue_priority > '$queue_priority') or (queue_priority = '$queue_priority' and call_time < \"$SQLdateBEGIN\") );"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02055'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $qp_countWAIT = $aryA[0]; + } + $sthA->finish(); + if ($AGILOG) {$agi_string = "$qp_countWAIT|$stmtA|"; &agi_output;} + + $qp_groupWAIT=''; + $qp_groupWAIT_SQL=''; + $qp_groupWAIT_aco=''; + $qp_groupWAIT_aco_SQL=''; + $qp_groupWAIT_camp_SQL=''; + if ( ($qp_countWAIT > 0) && ($AGENTgrab < 1) ) + { + ### Get group/campaign ids of calls in higher priority groups than this call or the same priority with longer wait time + $stmtA = "SELECT distinct campaign_id FROM vicidial_auto_calls where status = 'LIVE' and lead_id != '$insert_lead_id' $ADfindSQL and ( (queue_priority > '$queue_priority') or (queue_priority = '$queue_priority' and call_time < \"$SQLdateBEGIN\") );"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02056'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $dbc=0; + $qp_groupWAIT=''; + while ($sthArows > $dbc) + { + @aryA = $sthA->fetchrow_array; + $qp_groupWAIT_aco .= "'$aryA[0]',"; + if ($dbc > 0) + { + $qp_groupWAIT .= "and "; + } + $qp_groupWAIT .= "closer_campaigns NOT LIKE \"% $aryA[0] %\" "; + $dbc++; + } + if (length($qp_groupWAIT_aco)>2) + {chop($qp_groupWAIT_aco);} + else + { + $qp_groupWAIT_aco="''"; + $qp_groupWAIT = "closer_campaigns != ''"; + } + + $qp_groupWAIT_SQL = "and ($qp_groupWAIT)"; + $qp_groupWAIT_aco_SQL = "and vicidial_live_inbound_agents.group_id NOT IN($qp_groupWAIT_aco)"; + $qp_groupWAIT_camp_SQL = "and campaign_id NOT IN($qp_groupWAIT_aco)"; + + if ($AGILOG) {$agi_string = "$qp_groupWAIT_SQL|$stmtA|"; &agi_output;} + $sthA->finish(); + } + + if ( ($aco_sub>0) || ($AGENTgrab > 0) ) + { + $stmtA = "LOCK TABLES vicidial_live_agents WRITE, vicidial_live_inbound_agents WRITE;"; + my $LOCKaffected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02057'; $MEL_aff_rows=$LOCKaffected_rows; &mysql_error_logging; + + if (length($qp_groupWAIT_aco)<2) + {$qp_groupWAIT_aco="''";} + ### Get list of users that should take higher priority inbound calls first + $stmtA = "SELECT distinct user from vicidial_live_inbound_agents where group_id IN($qp_groupWAIT_aco);"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02123'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $dbc=0; + $vlia_users=''; + while ($sthArows > $dbc) + { + @aryA = $sthA->fetchrow_array; + $vlia_users .= "'$aryA[0]',"; + $dbc++; + } + if (length($vlia_users)>2) + {chop($vlia_users);} + else + {$vlia_users="''";} + + $stmtA = "SELECT vicidial_live_agents.conf_exten,vicidial_live_agents.user,vicidial_live_agents.extension,vicidial_live_agents.server_ip,vicidial_live_inbound_agents.group_weight from vicidial_live_agents, vicidial_live_inbound_agents WHERE vicidial_live_agents.user=vicidial_live_inbound_agents.user and status IN('CLOSER','READY') and lead_id<1 $ADUfindSQL and vicidial_live_inbound_agents.group_id='$channel_group' and last_update_time > '$BDtsSQLdate' and vicidial_live_agents.user NOT IN($vlia_users) $qp_groupWAIT_camp_SQL $agent_call_order limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + $dbhP=$dbhA; $mysql_count='02058'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = $aryA[0]; + $VDADuser = $aryA[1]; + $VDADextension = $aryA[2]; + $VDADserver_ip = $aryA[3]; + $VDADgroup_weight = $aryA[4]; + } + $sthA->finish(); + if ($AGILOG) {$agi_string = "$VDADuser|$VDADgroup_weight|$stmtA|"; &agi_output;} + + if ($AGENTgrab > 0) + { + $stmtA = "SELECT conf_exten,extension from vicidial_live_agents WHERE user='$AGENTuser';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02112'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = $aryA[0]; + $VDADextension = $aryA[1]; + $VDADuser = $AGENTuser; + } + $sthA->finish(); + } + if ($sthArows > 0) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$insert_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip',comments='INBOUND' where user='$VDADuser';"; + $Faffected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02059'; $MEL_aff_rows=$Faffected_rows; &mysql_error_logging; + } + else + { + $Faffected_rows=0; + } + $found_agents=$Faffected_rows; + + $stmtA = "UNLOCK TABLES;"; + my $LOCKaffected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02060'; $MEL_aff_rows=$LOCKaffected_rows; &mysql_error_logging; + } + else + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$insert_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip',comments='INBOUND' where status IN('CLOSER','READY') and lead_id<1 $ADUfindSQL and campaign_id IN($INBOUNDcampsSQL) and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $qp_groupWAIT_SQL $qp_groupWAIT_camp_SQL $agent_call_order limit 1;"; + $Faffected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02061'; $MEL_aff_rows=$Faffected_rows; &mysql_error_logging; + $found_agents=$Faffected_rows; + if ($AGILOG) {$agi_string = "$Faffected_rows|$stmtA|"; &agi_output;} + } + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$DROP_TIME|$drop_timer|$Faffected_rows|$found_agents|update of vla table: $channel_group|\n|$stmtA|"; &agi_output;} + if ($found_agents > 0) + { + if ($aco_sub<1) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension,server_ip,last_call_time FROM vicidial_live_agents where status IN('QUEUE','INCALL') and campaign_id IN($INBOUNDcampsSQL) and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02062'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_countCUSTDATA=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = $aryA[0]; + $VDADuser = $aryA[1]; + $VDADextension = $aryA[2]; + $VDADserver_ip = $aryA[3]; + $VDADlast_call_time = $aryA[4]; + $cbc++; + } + $sthA->finish(); + if ($AGILOG) {$agi_string = "$VDADuser|$VDADlast_call_time|$stmtA|"; &agi_output;} + } + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02063'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL XFER REMOTE: |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + if ($affected_rows < 1) + { + $stmtA = "INSERT INTO vicidial_auto_calls SET server_ip='$VARserver_ip',campaign_id='$channel_group',status='CLOSER',lead_id='$insert_lead_id',uniqueid='$uniqueid',callerid='$callerid',channel='$channel',phone_code='$phone_code',phone_number='$phone_number',call_time='$SQLdate',call_type='IN',stage='CLOSER-$drop_timer',queue_priority='$queue_priority' $adSQL;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02064'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "$affected_rows|VDAC-reinsert|$stmtA|"; &agi_output;} + } + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + $now_date_epoch = time(); + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02065'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $QLabandon=0; + $stmtB="SELECT count(*) from queue_log where call_id='$YqueryCID' and verb='ABANDON';"; + if ($AGILOG) {$agi_string = "|$stmtB|"; &agi_output;} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrowsQLA=$sthB->rows; + if ($sthBrowsQLA > 0) + { + @aryB = $sthB->fetchrow_array; + $QLabandon = $aryB[0]; + } + $sthB->finish(); + if ( ($QLabandon > 0) && (length($callerid) > 15) ) + { + $stmtB = "DELETE FROM queue_log where call_id='$YqueryCID' and verb='ABANDON';"; + if ($AGILOG) {$agi_string = "Removing ABANDON queue_log entries for call $QLabandon|$YqueryCID"; &agi_output;} + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02117'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + } + + $dbhB->disconnect(); + } + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$insert_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02066'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDXL vicidial_xfer_log update: |$affected_rows|$insert_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$insert_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02067'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|update of vcl table: $insert_lead_id\n|$stmtA|"; &agi_output;} + + ### format the remote server dialstring to get the call to the overflow agent meetme room + if( $VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $alertVDADremDIALstr = "$VDADremDIALstr"; + $alertVDADremDIALstr .= "$dtmf_silent_prefix$VDADconf_exten"; + $VDADremDIALstr .= "$VDADconf_exten"; + + ### if agent alert exten is not disabled, then trigger the alert and wait + if ( ($agent_alert_exten !~ /^X$/i) && (length($agent_alert_exten)>0) && ($no_delay_call_route !~ /Y/i) ) + { + if ($agent_alert_exten =~ /^8304$/) + {$agent_alert_exten = 'ding';} + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + ### insert a NEW record to the vicidial_manager table to play the alert message to the agent + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VDADserver_ip','','Originate','$VHqueryCID','Exten: 83047777777777','Context: vicidial-auto','Channel: Local/$alertVDADremDIALstr$at$ext_context','Priority: 1','Callerid: $agent_alert_exten','Timeout: 10','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02068'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL agent alert: |$VHqueryCID|$alertVDADremDIALstr|$channel|insert to vicidial_manager"; &agi_output;} + + usleep(1 * $agent_alert_delay * 1000); + } + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + + if ($no_delay_call_route =~ /N/) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); + } + + ### update calls_today for vicidial_live_inbound_agents ### + $stmtA = "SELECT calls_today from vicidial_inbound_group_agents WHERE user='$VDADuser' and group_id='$channel_group';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02069'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $calls_today = $aryA[0]; + $calls_today++; + } + $sthA->finish(); + + if ($sthArows > 0) + { + $stmtA = "UPDATE vicidial_live_inbound_agents set calls_today='$calls_today' WHERE user='$VDADuser' and group_id='$channel_group';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02070'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $stmtA = "UPDATE vicidial_inbound_group_agents set calls_today='$calls_today' WHERE user='$VDADuser' and group_id='$channel_group';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02071'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDLIA agent calls: |$calls_today|$VDADuser|$channel_group|"; &agi_output;} + } + + &trigger_transfer_process; + + if ($no_delay_call_route !~ /Y/i) + {usleep(1*500*1000);} + + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + + if ($VDADextension =~ /^R\//) + { + ### set the callerid to the ACQS value(calleridname) + ## use these two lines for Asterisk 1.2 tree + $newcallerid = "\"$callerid <$phone_number>\""; + $AGI->set_callerid($newcallerid); + ## use these two lines for Asterisk 1.0 tree + # print "SET CALLERID \"$calleridname\" <0000000000>\n"; + # print "SET CALLERIDNAME \"$calleridname\"\n"; + ### custom change to allow exten to be sent as phone*vendor_id + if ($VDADremDIALstr =~ /888888888888/) + { + $VDADremDIALstr = "$a$S$b$S$c$S$d$S$phone_number$S$vendor_id"; + } + + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$callerid\" \<$phone_number\>"; &agi_output;} + } + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$insert_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02072'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available balance agent found"; &agi_output;} + } + } + else + { + if ( ($rec_countWAITrem == '1') && ($drop_timer > 2) && ($AGILOG) ) + { + $stmtA = "SELECT call_time,campaign_id,last_update_time,callerid,status,channel FROM vicidial_auto_calls where status = 'LIVE' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$insert_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02073'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $r=0; + $agi_string="\n"; + while ($sthArows > $r) + { + @aryA = $sthA->fetchrow_array; + $agi_string .= "|$aryA[0]|$aryA[1]|$aryA[2]|$aryA[3]|$aryA[4]|$aryA[5]|\n"; + $r++; + } + $sthA->finish(); + &agi_output; + } + + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER BALANCE WAIT: |$rec_countWAITrem|$channel_group|$channel|$callerid|$uniqueid|$drop_timer|"; &agi_output;} + } + } + + if ($hold_recall_xfer_group !~ /NONE/) + { + $now_date_epoch = time(); + $FDtarget = ($now_date_epoch - 86400); + ($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); + $Fyear = ($Fyear + 1900); + $Fmon++; + if ($Fmon < 10) {$Fmon = "0$Fmon";} + if ($Fmday < 10) {$Fmday = "0$Fmday";} + if ($Fhour < 10) {$Fhour = "0$Fhour";} + if ($Fmin < 10) {$Fmin = "0$Fmin";} + if ($Fsec < 10) {$Fsec = "0$Fsec";} + $hrxgSQLdate = "$Fyear-$Fmon-$Fmday $Fhour:$Fmin:$Fsec"; + + $stmtA = "SELECT count(*) FROM vicidial_closer_log where call_date > \"$hrxgSQLdate\" and phone_number='$phone_number';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02074'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $hrxg_count = "$aryA[0]"; + } + $sthA->finish(); + + if ($hrxg_count > 1) + { + $DROPexten = "90009*$hold_recall_xfer_group$S$S$insert_lead_id$S$S$phone_number$S$fronter$S"; + + if ($no_delay_call_route =~ /N/) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02075'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + if ($drop_seconds < 1) {$drop_seconds = $drop_timer;} + + $stmtA = "UPDATE vicidial_closer_log set status='HXFER',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds',term_reason='HOLDRECALLXFER' where lead_id = '$insert_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02076'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='HXFER' where lead_id = '$insert_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02077'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $place=0; + if ($rec_countWAIT > 0) {$place = $rec_countWAIT;} + if ($rec_countWAITrem > 0) {$place = $rec_countWAITrem;} + $place++; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='EXITWITHKEY',data1='2',data2='$place',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02078'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='CALLSTATUS',data1='HXFER',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02079'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $dbhB->disconnect(); + } + + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + $dbhA->disconnect(); + + exit; + } + } + + if ( ($if_wait_play_welcome > 0) && ($welcome_message_filename !~ /---NONE---/) && (length($welcome_message_filename) > 0) ) + { + $if_wait_play_welcome=0; + + $now_date_epoch = time(); + $FDtarget = ($now_date_epoch + 20); + ($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); + $Fyear = ($Fyear + 1900); + $Fmon++; + if ($Fmon < 10) {$Fmon = "0$Fmon";} + if ($Fmday < 10) {$Fmday = "0$Fmday";} + if ($Fhour < 10) {$Fhour = "0$Fhour";} + if ($Fmin < 10) {$Fmin = "0$Fmin";} + if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDtsSQLdate = "$Fyear$Fmon$Fmday$Fhour$Fmin$Fsec"; + + $stmtA = "UPDATE vicidial_auto_calls set last_update_time='$FDtsSQLdate' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02080'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC posttime record: |$affected_rows|$FDtsSQLdate|$callerid|"; &agi_output;} + + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); # stop music-on-hold process + if ($welcome_message_filename =~ /\|/) + { + @welcome_message_filename_array = split(/\|/,$welcome_message_filename); + $w=0; + foreach(@welcome_message_filename_array) + { + if (length($welcome_message_filename_array[$w])>0) + { + $AGI->stream_file("$welcome_message_filename_array[$w]"); + } + $w++; + } + } + else + {$AGI->stream_file("$welcome_message_filename");} + } + + + if ( ($hold_message_counter > $prompt_interval) && ($prompt_interval > 0) ) + { + $now_date_epoch = time(); + $FDtarget = ($now_date_epoch + 10); + ($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); + $Fyear = ($Fyear + 1900); + $Fmon++; + if ($Fmon < 10) {$Fmon = "0$Fmon";} + if ($Fmday < 10) {$Fmday = "0$Fmday";} + if ($Fhour < 10) {$Fhour = "0$Fhour";} + if ($Fmin < 10) {$Fmin = "0$Fmin";} + if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDtsSQLdate = "$Fyear$Fmon$Fmday$Fhour$Fmin$Fsec"; + + $stmtA = "UPDATE vicidial_auto_calls set last_update_time='$FDtsSQLdate' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02081'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC posttime record: |$affected_rows|$FDtsSQLdate|$callerid|"; &agi_output;} + + if (length($onhold_prompt_filename) > 0) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); # stop music-on-hold process + if ($onhold_prompt_filename =~ /\|/) + { + @onhold_prompt_filename_array = split(/\|/,$onhold_prompt_filename); + $w=0; + foreach(@onhold_prompt_filename_array) + { + if (length($onhold_prompt_filename_array[$w])>0) + { + $AGI->stream_file("$onhold_prompt_filename_array[$w]"); + } + $w++; + } + } + else + {$AGI->stream_file("$onhold_prompt_filename");} # this prompt must be less than 10 seconds long + } + $hold_message_counter = 0; + $start_moh=1; + $moh_delay=1; + if ($play_place_in_line =~ /Y/i) {$start_place_in_line=1; $moh_delay=2;} + if ($play_estimate_hold_time =~ /Y/i) {$start_hold_estimate=1; $moh_delay=2;} + if ($hold_time_option !~ /NONE/) {$start_hold_estimate=1; $moh_delay=2;}; + if ($drop_timer >= 2) {$drop_timer = ($drop_timer + 5);} # add prompt play time to total queue time + } + else {$hold_message_counter++;} + if ($hold_tone_counter > 3) + { + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + + ##### play the place in line of the caller if option is set + if ( ($start_place_in_line > 0) && ($moh_delay == '1') ) + { + $now_date_epoch = time(); + $FDtarget = ($now_date_epoch + 5); + ($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); + $Fyear = ($Fyear + 1900); + $Fmon++; + if ($Fmon < 10) {$Fmon = "0$Fmon";} + if ($Fmday < 10) {$Fmday = "0$Fmday";} + if ($Fhour < 10) {$Fhour = "0$Fhour";} + if ($Fmin < 10) {$Fmin = "0$Fmin";} + if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDtsSQLdate = "$Fyear$Fmon$Fmday$Fhour$Fmin$Fsec"; + + $stmtA = "UPDATE vicidial_auto_calls set last_update_time='$FDtsSQLdate' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02082'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC posttime record: |$affected_rows|$FDtsSQLdate|$callerid|"; &agi_output;} + + $place=0; + if ($rec_countWAIT > 0) {$place = $rec_countWAIT;} + if ($rec_countWAITrem > 0) {$place = $rec_countWAITrem;} + $place++; + if ($AGILOG) {$agi_string = "-- PLACE IN LINE: |$campaign|$place|"; &agi_output;} + + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); # stop music-on-hold process + if ($place > 1) + { + $AGI->stream_file('queue-thereare'); # you are currently caller number + $AGI->say_number("$place"); + if ($drop_timer >= 2) {$drop_timer = ($drop_timer + 2);} # add prompt play time to total queue time + } + else + { + $AGI->stream_file('queue-youarenext'); # your call is now first in line + if ($drop_timer >= 2) {$drop_timer = ($drop_timer + 5);} # add prompt play time to total queue time + } + + $start_place_in_line=0; + } + + ##### calculate hold time estimate if needed + $holdtime_estimate=1; $holdtime_estimate_sec=0; $livetime_estimate_sec=0; # Make hold time estimate available to other sections + if ( ($start_hold_estimate > 0) && ($moh_delay == '1') ) + { + $now_date_epoch = time(); + $FDtarget = ($now_date_epoch + 5); + ($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); + $Fyear = ($Fyear + 1900); + $Fmon++; + if ($Fmon < 10) {$Fmon = "0$Fmon";} + if ($Fmday < 10) {$Fmday = "0$Fmday";} + if ($Fhour < 10) {$Fhour = "0$Fhour";} + if ($Fmin < 10) {$Fmin = "0$Fmin";} + if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDtsSQLdate = "$Fyear$Fmon$Fmday$Fhour$Fmin$Fsec"; + + $stmtA = "UPDATE vicidial_auto_calls set last_update_time='$FDtsSQLdate' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02083'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC posttime record: |$affected_rows|$FDtsSQLdate|$callerid|"; &agi_output;} + + $stmtA = "SELECT queue_seconds FROM vicidial_closer_log where campaign_id = '$channel_group' order by call_date desc limit 5;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02084'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $r=0; + $agi_string="\n"; + while ($sthArows > $r) + { + @aryA = $sthA->fetchrow_array; + $holdtime_estimate_sec = ($holdtime_estimate_sec + $aryA[0]); + $r++; + } + $sthA->finish(); + $holdtime_estimate_sec = int( ($holdtime_estimate_sec / $r) + 1); + + $stmtA = "SELECT stage FROM vicidial_auto_calls where status = 'LIVE' and campaign_id = '$channel_group' and call_time <= \"$SQLdateBEGIN\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02085'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $s=0; $t=0; + $agi_string="\n"; + while ($sthArows > $s) + { + @aryA = $sthA->fetchrow_array; + $stage_wait_sec = $aryA[0]; + $stage_wait_sec =~ s/LIVE-|CLOSE-|CLOSER-//gi; + if ($stage_wait_sec >= $holdtime_estimate_sec) + { + $livetime_estimate_sec = ($livetime_estimate_sec + $stage_wait_sec); + $t++; + } + $s++; + } + $sthA->finish(); + + if ( ($livetime_estimate_sec > 0) && ($t > 0) ) + { + $livetime_estimate_sec = int( ($livetime_estimate_sec / $t) + 1); + $avgtime_estimate_sec = int( ($livetime_estimate_sec + $holdtime_estimate_sec) / 2); + } + else + {$avgtime_estimate_sec = $holdtime_estimate_sec;} + + $holdtime_estimate_sec_diff = ($avgtime_estimate_sec - $drop_timer); + if ($holdtime_estimate_sec_diff < 10) {$holdtime_estimate_sec_diff=10;} + $holdtime_estimate = int($holdtime_estimate_sec_diff / 60); + $holdtime_estimate_sec_rem = ( $holdtime_estimate_sec_diff - ($holdtime_estimate * 60) ); + if ($AGILOG) {$agi_string = "-- HOLD ESTIMATE: |$campaign|$holdtime_estimate|$holdtime_estimate_sec_rem|$holdtime_estimate_sec_diff| |$holdtime_estimate_sec|$livetime_estimate_sec|$avgtime_estimate_sec|"; &agi_output;} + + ##### play the hold time estimate to the caller if option is set + if ($play_estimate_hold_time =~ /Y/i) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); # stop music-on-hold process + + if ($pretend_every_call_is_next > 0) + { + $AGI->stream_file('queue-youarenext'); # you are next in line + } + else + { + $AGI->stream_file('queue-holdtime'); # the estimated hold time is currently + if ($holdtime_estimate > 0) + { + $AGI->say_number("$holdtime_estimate"); + $AGI->stream_file('queue-minutes'); # minutes + } + if ($holdtime_estimate < 2) + { + my $roundto = 5; # sensible values 5, 10, 15, ( 20, 30) + my $rounded_time = $holdtime_estimate_sec_diff - ( $holdtime_estimate_sec_diff % $roundto ) + $roundto; + $AGI->say_number("$rounded_time"); + $AGI->stream_file('queue-seconds'); # seconds + } + } + } + if ($drop_timer >= 2) {$drop_timer = ($drop_timer + 3);} # add prompt play time to total queue time + + $start_hold_estimate=0; + $wait_in_queue = 1; # trigger hold-time-option is applicable + } + + ##### check if hold_time_option is set to leave Queue + if ( ($hold_time_option !~ /NONE/ ) && ( $holdtime_estimate_sec_diff > $hold_time_option_seconds ) && ($wait_in_queue < 2) ) + { + $wait_in_queue=0; # exits wait loop + $DROPexten = ''; + $exitwithkey=0; + if ($hold_time_option =~ /EXTENSION/) + { + if (length($hold_time_option_exten)>0) + { + $DROPexten = "$hold_time_option_exten"; + + $CIDcampaign_cid='0000000000'; + ### Grab ID values from the database + $stmtA = "SELECT campaign_id,campaign_cid FROM vicidial_campaigns where closer_campaigns LIKE \"% $channel_group %\" and active='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02119'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CIDcampaign_id = $aryA[0]; + $CIDcampaign_cid = $aryA[1]; + } + $sthA->finish(); + + $newcallerid = "\"$callerid <$CIDcampaign_cid>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$callerid\" \<$CIDcampaign_cid\> from $CIDcampaign_id"; &agi_output;} + } + } + if ($hold_time_option =~ /PRESS_VMAIL/) + { + $now_date_epoch = time(); + $FDtarget = ($now_date_epoch + 8); + ($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); + $Fyear = ($Fyear + 1900); + $Fmon++; + if ($Fmon < 10) {$Fmon = "0$Fmon";} + if ($Fmday < 10) {$Fmday = "0$Fmday";} + if ($Fhour < 10) {$Fhour = "0$Fhour";} + if ($Fmin < 10) {$Fmin = "0$Fmin";} + if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDtsSQLdate = "$Fyear$Fmon$Fmday$Fhour$Fmin$Fsec"; + + $stmtA = "UPDATE vicidial_auto_calls set last_update_time='$FDtsSQLdate' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02086'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC posttime record: |$affected_rows|$FDtsSQLdate|$callerid|"; &agi_output;} + + if ($drop_timer >= 2) {$drop_timer = ($drop_timer + 8);} # add prompt play time to total queue time + + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); # stop music-on-hold process + + &press_one_to_leave_voicemail; + + if ($pin =~ /1/) + { + $newcallerid = "\"$VCcallerid <$originalCID>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + $DROPexten = "$voicemail_dump_exten$hold_time_option_voicemail"; + $HT_status='QVMAIL'; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $place=0; + if ($rec_countWAIT > 0) {$place = $rec_countWAIT;} + if ($rec_countWAITrem > 0) {$place = $rec_countWAITrem;} + $place++; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='EXITWITHKEY',data1='1',data2='$place',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02087'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='CALLSTATUS',data1='QVMAIL',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02088'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $exitwithkey++; + + $dbhB->disconnect(); + } + } + else + { + $DROPexten=''; + $wait_in_queue = 2; #continue waiting on hold + } + } + if ($hold_time_option =~ /VOICEMAIL/) + { + $newcallerid = "\"$VCcallerid <$originalCID>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + if (length($hold_time_option_voicemail)>0) + {$DROPexten = "$voicemail_dump_exten$hold_time_option_voicemail";} + } + if ($hold_time_option =~ /IN_GROUP/) + { # 90009*CL_uk3survy_*8301*10000123*universal*7275551212*1234*" + $DROPexten = "90009*$hold_time_option_xfer_group$S$S$insert_lead_id$S$S$phone_number$S$fronter$S"; + } + if ($hold_time_option =~ /CALLERID_CALLBACK/) + { + if (length($hold_time_option_exten)>0) + {$DROPexten = "$hold_time_option_exten";} + # if callerid is not valid do not execute + if ( ( length($phone_number) > 6 ) && ( $phone_number > 0) ) + { + ### insert a record into the vicidial_list table + $stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$fronter','$vendor_id','VDCL','$hold_time_option_callback_list_id','N','$phone_code','$phone_number','$channel_group','1','$local_gmt','$VLcomments');"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02089'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + $cbc=0; + $stmtB = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $stmtA=$stmtB; $mysql_count='02103'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = $aryA[0]; + $cbc++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "VDAD vicidial_list insert |$insert_lead_id|$stmtA|"; &agi_output;} + + $DROPexten = "8300"; + + if (length($hold_time_option_callback_filename) > 0) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); # stop music-on-hold process + if ($hold_time_option_callback_filename =~ /\|/) + { + @hold_time_option_callback_filename_array = split(/\|/,$hold_time_option_callback_filename); + $w=0; + foreach(@hold_time_option_callback_filename_array) + { + if (length($hold_time_option_callback_filename_array[$w])>0) + { + $AGI->stream_file("$hold_time_option_callback_filename_array[$w]"); + } + $w++; + } + } + else + {$AGI->stream_file("$hold_time_option_callback_filename");} # this prompt must be less than 10 seconds long + } + } + else + { + $wait_in_queue = 2; #continue waiting + } + + } + + if ($AGILOG) {$agi_string = "-- VDCL HOLD TIME OPT: |$hold_time_option|$DROPexten|$wait_in_queue|"; &agi_output;} + + if ($wait_in_queue < 1) + { + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if ($no_delay_call_route =~ /N/) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02090'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + if ($drop_seconds < 1) {$drop_seconds = $drop_timer;} + + if (length($HT_status)<1) {$HT_status='HOLDTO';} + $stmtA = "UPDATE vicidial_closer_log set status='$HT_status',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds',term_reason='HOLDTIME' where lead_id = '$insert_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02091'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='HOLDTO' where lead_id = '$insert_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02092'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + if ( ($enable_queuemetrics_logging > 0) && ($exitwithkey < 1) ) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $place=0; + if ($rec_countWAIT > 0) {$place = $rec_countWAIT;} + if ($rec_countWAITrem > 0) {$place = $rec_countWAITrem;} + $place++; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='EXITWITHKEY',data1='2',data2='$place',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02093'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='CALLSTATUS',data1='HOLDTO',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02094'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $dbhB->disconnect(); + } + + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + $dbhA->disconnect(); + + exit; + } + } + } + + + + ##### wait before looking again for an agent to take the call + if ($wait_in_queue > 0) + { + if ($drop_timer < 2) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + if ($moh_delay > 0) + {$moh_delay = ($moh_delay - 1);} + } + else + { + if ( ($start_moh > 0) && ($moh_delay < 1) ) + { + $start_moh=0; + print "SET MUSIC ON $moh_context\n"; + checkresult($result); + } + if ($moh_delay > 0) + {$moh_delay = ($moh_delay - 1);} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + # $drop_timer++; + $NOWsec = time(); + $drop_timer = ($NOWsec - $start_epoch); + } + } + + $stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02095'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($affected_rows < 1) + { + $stmtA = "INSERT INTO vicidial_auto_calls SET server_ip='$VARserver_ip',campaign_id='$channel_group',status='LIVE',lead_id='$insert_lead_id',uniqueid='$uniqueid',callerid='$callerid',channel='$channel',phone_code='$phone_code',phone_number='$phone_number',call_time='$SQLdate',call_type='IN',stage='LIVE-$drop_timer',queue_priority='$queue_priority' $adSQL;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02096'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "$affected_rows|VDAC-reinsert|$stmtA|"; &agi_output;} + } + else + { + # if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update vac table: $callerid\n|$stmtA|$drop_timer ($NOWsec - $start_epoch)|"; &agi_output;} + } + } + +################################################### +### End of Loop to try to send call to an agent ### +### Time to figure out where to drop the call ### + +if ($drop_timer > $DROP_TIME) + { + ($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) {$hour = "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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + # $VDADvoicemail_ext = ''; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $place=0; + if ($rec_countWAIT > 0) {$place = $rec_countWAIT;} + if ($rec_countWAITrem > 0) {$place = $rec_countWAITrem;} + $place++; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='EXITWITHTIMEOUT',data1='$place',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02097'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$YqueryCID',queue='$channel_group',agent='NONE',verb='CALLSTATUS',data1='DROP',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='02098'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $dbhB->disconnect(); + } + + $DROPexten = ''; + if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + } + + if ( ($channel_group =~ /AGENTDIRECT/) && (length($agent_only) > 1) && (length($user_unavailable_action) > 1) ) + { + $drop_action = $user_unavailable_action; + $drop_inbound_group = $did_in_group; + $VDADvoicemail_ext = $did_voicemail_ext; + } + + if ($drop_action =~ /MESSAGE|EXTEN/) + { + if ( ($channel_group =~ /AGENTDIRECT/) && (length($agent_only) > 1) && (length($user_unavailable_action) > 1) ) + { + $drop_exten = $did_extension; + $ext_context = $did_exten_context; + } + else + { + $CIDcampaign_cid='0000000000'; + ### Grab ID values from the database + $stmtA = "SELECT campaign_id,campaign_cid FROM vicidial_campaigns where closer_campaigns LIKE \"% $channel_group %\" and active='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02118'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CIDcampaign_id = $aryA[0]; + $CIDcampaign_cid = $aryA[1]; + } + $sthA->finish(); + + $newcallerid = "\"$callerid <$CIDcampaign_cid>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$callerid\" \<$CIDcampaign_cid\> from $CIDcampaign_id"; &agi_output;} + } + if (length($drop_exten)>0) + {$DROPexten = "$drop_exten";} + } + if ($drop_action =~ /VOICEMAIL/) + { + $newcallerid = "\"$VCcallerid <$originalCID>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + } + if ($drop_action =~ /IN_GROUP/) + { # 90009*CL_uk3survy_*8301*10000123*universal*7275551212*1234*" + $DROPexten = "90009*$drop_inbound_group$S$S$insert_lead_id$S$S$phone_number$S$fronter$S"; + } + if ($drop_action =~ /PHONE/) + { + $newcallerid = "\"$VCcallerid <$originalCID>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + ### Grab phone dialplan number value from the database + $stmtA = "SELECT dialplan_number FROM phones where server_ip='$did_phone_server_ip' and extension='$did_phone';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='02002'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $did_phone_dialplan_number = $aryA[0]; + } + $sthA->finish(); + + ### format the remote server dialstring to get the call to the overflow agent meetme room + if( $did_phone_server_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $DIDphoneDIALstr = "$a$S$b$S$c$S$d$S"; + } + $DROPexten = "$DIDphoneDIALstr$did_phone_dialplan_number"; + } + + if ($AGILOG) {$agi_string = "-- VDCL DROP: |$drop_action|$DROPexten|"; &agi_output;} + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02099'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds',term_reason='QUEUETIMEOUT' where lead_id = '$insert_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02100'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$insert_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02101'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$insert_lead_id|\n|$stmtA|"; &agi_output;} + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + + if ($no_delay_call_route =~ /N/) + { + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + } + + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='02102'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timeout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + } + +$dbhA->disconnect(); + +exit; + + + + + + +sub enter_pin_number + { + $digits_to_collect =~ s/DIGITID//gi; + + # please enter the pin number followed by the pound key + # please enter your X digit pin number + + $digit=''; + undef $digit; + $interrupt_digit=''; + undef $interrupt_digit; + + $interrupt_digit = $AGI->stream_file('four_digit_id','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + + $digits_being_entered=1; + $totalDTMF=''; + if ($interrupt_digit > 1) + { + 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 ( ($digit_loop_counter < $digits_to_collect) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + # $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=$digits_to_collect; + } + + $digit_loop_counter++; + } + + $totalDTMF =~ s/\D//gi; + $pin = $totalDTMF; + if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} + } + + +# PROMPTS USED: +# please_enter_id_number - "Please enter your ID Number followed by the # key +# id_number - "Your ID number is" +# confirm_id_number - "Press 1 if it is correct. Press 2 to repeat entry" +sub enter_id_number + { + for ( $i = 0; $i < 2; $i++ ) + { + $vendor_id = 0; + $id_number = $AGI->get_data('please_enter_id_number',5000,16); + + if ( length $id_number == 0 ) { return; } + if ($AGILOG) {$agi_string = "prompt id_number: $id_number"; &agi_output;} + + $AGI->stream_file('id_number'); + $AGI->say_digits($id_number); + + $id_verify = $AGI->get_data('confirm_id_number',5000,1); + if( length $id_verify == 0 ) { return; } + if ($AGILOG) {$agi_string = "prompt verify id: $id_verify"; &agi_output;} + + if($id_verify == 1) + { + $vendor_id = $id_number; + return; + } + } + } + + +sub press_one_to_leave_voicemail + { + $digits_to_collect = 1; + + # To be called back when a representative is available, press 1 + + $digit=''; + undef $digit; + $interrupt_digit=''; + undef $interrupt_digit; + $digit_loop_counter=0; + + $interrupt_digit = $AGI->stream_file('to-be-called-back','1'); + if ($interrupt_digit < 2) + {$interrupt_digit = $AGI->stream_file('digits/1','1');} + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + + $digits_being_entered=1; + $totalDTMF=''; + if ($interrupt_digit > 1) + { + 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 < $digits_to_collect) ) + { + $digit = chr($AGI->wait_for_digit('4000')); # wait 4 seconds for input or until the key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + # $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=$digits_to_collect; + } + + $digit_loop_counter++; + } + + $totalDTMF =~ s/\D//gi; + $pin = $totalDTMF; + if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} + } + + + +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++; + } + } + + +sub leading_zero($) + { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; + } # End of the leading_zero() routine. + + + +### you're call is very important to us, please stay on the line and you will be transferred to the next available agent + + +sub agi_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### + if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} + $agi_string=''; + } + + +sub mysql_error_logging + { + $errno=''; + $error=''; + if ( ($mel > 0) || ($one_mysql_log > 0) ) + { + $errno = $dbhP->err(); + if ( ($errno > 0) || ($mel > 1) || ($one_mysql_log > 0) ) + { + $error = $dbhP->errstr(); + ### open the log file for writing ### + open(Eout, ">>$ERRLOGfile") + || die "Can't open $ERRLOGfile: $!\n"; + print Eout "$now_date|$script|$mysql_count|$MEL_aff_rows|$errno|$error|$stmtA|$callerid|$insert_lead_id|\n"; + close(Eout); + } + } + $one_mysql_log=0; + } + + +sub trigger_transfer_process + { + # $DS='--'; + # $BEGIN='BEGIN'; + # + # $CLI = "/usr/bin/date >> $PRSTESTfile &"; + # $CLI = "/root/phone.pl $insert_lead_id$DS$insert_close_id$DS$CLInow_date$DS$VDADuser$DS$phone_number$DS$DS$BEGIN$DS >> $PRSTESTfile &"; + # + # `$CLI`; + # + # if ($AGILOG >=2) + # { + # ### open the log file for writing ### + # open(Pout, ">>$PRSLOGfile") + # || die "Can't open $AGILOGfile: $!\n"; + # print Pout "$now_date|$VDADconf_exten|$VDADuser|$VDADextension|$insert_lead_id|$phone_number|$insert_close_id|$channel_group|$drop_timer|$CLI|\n"; + # close(Pout); + # } + } diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_ALL_outbound.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_ALL_outbound.agi new file mode 100644 index 00000000..f8700ff3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_ALL_outbound.agi @@ -0,0 +1,2206 @@ +#!/usr/bin/perl +# +# agi-VDAD_ALL_outbound.agi version 2.2.0 +# +# runs when an outbound call is answered. This script will +# send the calls out to the agents that are logged in. +# ## THIS SCRIPT CONSOLIDATES EIGHT SEPARATE VDAD outbound transfer SCRIPTS ## +# +# +# You need to put lines similar to those below in your extensions.conf file: +# ; Below are the parameters needed for the script to be run properly +# ; 1. the method of call handling for the script: +# ; - NORMAL - Standard outbound routing to agent +# ; - TEST - For performance testing only +# ; - BROADCAST - For no-agent broadcast dialing +# ; - SURVEY - For survery question then on to agent +# ; - SURVEYCAMP - For survery question using campaign settings +# ; - SURVEYCAMPCEP - Survery question, campaign settings, cepstral name +# ; - REMINDER - Reminder campaign +# ; - REMINDX - Reminder with transfer to agent +# ; 2. the method of searching for an available agent: +# ; - LB - Load Balance total system +# ; - LO - Load Balance Overflow only (priority to home server) +# ; - SO - Home server only +# ; 3. the sound file to play when doing a SURVEY, REMINDER, REMINDX campaign +# ; 4. the acceptible dtmf digits for a SURVEY +# ; 5. the out-opt digit for a SURVEY (must be in the digit map) +# ; 6. the sound file to play for a SURVEY when transfering to an agent +# ; 7. the sound file to play for a SURVEY when DNCing the call +# ; 8. OPTIN or OPTOUT: if OPTIN call is only sent to agent with button press +# ; if OPTOUT call is sent to agent if no button press at all +# ; 9. the status that is use for a SURVEY when someone opts out +# ; if the status is DNC it will also add them to the internal dnc table +# +# ;outbound VICIDIAL calls: +#exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log) +#exten => 8368,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +#exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +#exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB) +#exten => 8368,5,Hangup +# +# ;outbound VICIDIAL SURVEY calls: +#exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log) +#exten => 8366,2,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact-----OPTOUT-----DNC) +#exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact-----OPTOUT-----DNC) +#exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact-----OPTOUT-----DNC) +#exten => 8366,5,Hangup +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 80218-2027 - First Build +# 80302-0232 - Added drop_action and transfer to in-group +# 80430-1144 - Added term_reason to vicidial_log, QUEUETIMEOUT +# 80520-0059 - Added SURVEY ability and digit maps +# 80527-2329 - Added SURVEYCAMP ability to pull settings from database +# 80831-0353 - Added logging of alt_dial field +# 80909-0603 - Added campaign-specific dnc option for outbound survey +# 81020-0235 - Fixed Drop hangup bug and other small bugs +# 81104-0255 - Changed code to alter callerIDnumber for remote agents to the number of the caller +# 81105-0424 - Added MySQL error logging +# 90202-0505 - Added CPD AMD detection and routing options +# 90214-0831 - Added CPD Fax detection option +# 90410-1645 - Added SURVEYCAMPCEP call handling method and cleaned up formatting +# 90628-1138 - Added more variable options for Cepstral TTS generation +# 90630-2250 - Added more Sangoma CDP statuses +# 90702-2240 - Added option to send to remote agent as phone*vendor_id +# 90721-1137 - Added rank and owner as vicidial_list fields +# 90808-0307 - Added longest_wait_time as agent routing option +# 90827-1535 - Added proper logging of list_id in vicidial_log table +# 90924-1605 - Added drop_inbound_group_override list_id option +# 91112-1101 - Changed ENTERQUEUE to CALLOUTBOUND in QM logging for outbound calls +# 91230-1159 - Change to callee callerID when sending the call to VMAIL +# + +$script = 'agi-VDAD_ALL_outbound.agi'; +$AGILOG = '0'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=57; +$one_mysql_log=0; + + +$DROP_TIME = 9; ### default number of seconds to wait until you drop a waiting call +$at='@'; +$US='_'; + +# get date/time +($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) {$hour = "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"; +$CLInow_date = "$year-$mon-$mday\\ $hour:$min:$sec"; +$start_time_epoch = $now_date_epoch; +$start_time=$now_date; +$CIDdate = "$mon$mday$hour$min$sec"; +$tsSQLdate = "$year$mon$mday$hour$min$sec"; +$filedate = "$US$year-$mon-$mday$US$hour$min$sec"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; +$SQLdateBEGIN = $SQLdate; + +$BDtarget = ($now_date_epoch - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} +$BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +$FDtarget = ($now_date_epoch + 120); +($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); +$Fyear = ($Fyear + 1900); +$Fmon++; +if ($Fmon < 10) {$Fmon = "0$Fmon";} +if ($Fmday < 10) {$Fmday = "0$Fmday";} +if ($Fhour < 10) {$Fhour = "0$Fhour";} +if ($Fmin < 10) {$Fmin = "0$Fmin";} +if ($Fsec < 10) {$Fsec = "0$Fsec";} +$FDtsSQLdate = "$Fyear$Fmon$Fmday$Fhour$Fmin$Fsec"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} +if (!$PRSLOGfile) {$PRSLOGfile = "$PATHlogs/prsout.$year-$mon-$mday";} +if (!$PRSTESTfile) {$PRSTESTfile = "$PATHlogs/prstest.$year-$mon-$mday";} +if (!$ERRLOGfile) {$ERRLOGfile = "$PATHlogs/MySQLerror.$year-$mon-$mday";} +if (!$CEPLOGfile) {$CEPLOGfile = "$PATHlogs/Cepstral.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks,agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01001'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + $DBagi_output = "$aryA[6]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($AGILOG) + {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + $call_handle_method = $ARGV_vars[0]; + $agent_search_method = $ARGV_vars[1]; + $survey_first_audio_file = $ARGV_vars[2]; + $survey_dtmf_digits = $ARGV_vars[3]; + $survey_ni_digit = $ARGV_vars[4]; + $survey_opt_in_audio_file = $ARGV_vars[5]; + $survey_ni_audio_file = $ARGV_vars[6]; + $survey_no_response_action =$ARGV_vars[7]; + $survey_ni_status = $ARGV_vars[8]; + } + +if ($call_handle_method !~ /NORMAL|TEST|BROADCAST|SURVEY|REMIND/) + {$call_handle_method='NORMAL';} +if ($agent_search_method !~ /LB|LO|SO/) + {$agent_search_method='LB';} + +if ($call_handle_method =~ /BROADCAST|SURVEY|REMIND/) + {$vdlog_status='PU';} +else + {$vdlog_status='QUEUE';} + +$|=1; +while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + } + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) + { + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} + } + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|$AST_ver|$priority|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) + { + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} + if ($priority > 2) {sleep(1);} + exit; + } + +$stmtA = "SELECT count(*) FROM vicidial_live_agents where callerid='$callerid';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01002'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Pseudo_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($AGILOG) {$agi_string = "$Pseudo_duplicate_count|$stmtA|"; &agi_output;} + +if ($Pseudo_duplicate_count > 0) + { + if ($AGILOG) {$agi_string = "+++++ VDAD START PSEUDO DUPLICATE: EXITING- $priority"; &agi_output;} + exit; + } + +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where callerid='$callerid' and status IN('LIVE','XFER');"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01003'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dialplan_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($AGILOG) {$agi_string = "$dialplan_duplicate_count|$stmtA|"; &agi_output;} + +if ($dialplan_duplicate_count > 0) + { + if ($AGILOG) {$agi_string = "+++++ VDAD START DIALPLAN DUPLICATE: EXITING- $priority"; &agi_output;} + exit; + } + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01004'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + # flag the lead as being Answered or Picked up + $stmtA = "UPDATE vicidial_list set status='PU' where lead_id='$CIDlead_id' and status NOT IN('CALLBK');"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01005'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list PU update: |$affected_rows|$uniqueid|"; &agi_output;} + + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time,alt_dial FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01006'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $VDADalt_dial = "$aryA[5]"; + $rec_count++; + } + $sthA->finish(); + + ### Grab campaign values from the database + $stmtA = "SELECT drop_call_seconds,drop_action,safe_harbor_exten,concurrent_transfers,next_agent_call,voicemail_ext,drop_inbound_group,use_internal_dnc,use_campaign_dnc,cpd_amd_action,am_message_exten,three_way_call_cid,campaign_cid,survey_first_audio_file,survey_opt_in_audio_file,survey_ni_audio_file,survey_third_audio_file,survey_fourth_audio_file FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01007'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_action = "$aryA[1]"; + $DBsafe_harbor_exten = "$aryA[2]"; + $DBconcurrent_transfers = "$aryA[3]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_action) {$drop_action = $DBdrop_action;} + if ($DBsafe_harbor_exten) {$safe_harbor_exten = $DBsafe_harbor_exten;} + $CAMP_callorder = "$aryA[4]"; + $VDADvoicemail_ext = "$aryA[5]"; + $drop_inbound_group = "$aryA[6]"; + $use_internal_dnc = "$aryA[7]"; + $use_campaign_dnc = "$aryA[8]"; + $cpd_amd_action = "$aryA[9]"; + $am_message_exten = "$aryA[10]"; + $three_way_call_cid = "$aryA[11]"; + $campaign_cid = "$aryA[12]"; + $survey_first_audio_file = "$aryA[13]"; + $survey_opt_in_audio_file = "$aryA[14]"; + $survey_ni_audio_file = "$aryA[15]"; + $survey_third_audio_file = "$aryA[16]"; + $survey_fourth_audio_file = "$aryA[17]"; + } + $sthA->finish(); + + ### pre-generate Cepstral first and last name as an audio file + if ($call_handle_method =~ /SURVEYCAMPCEP/) + { + $t=0; + if ($survey_first_audio_file =~ /^TTS/) + { + $TTS_prompt[$t] = 'survey_first_audio_file'; + $TTS_filename[$t] = $survey_first_audio_file; + $TTS_filename[$t]=~s/^TTS//gi; + $t++; + } + if ($survey_opt_in_audio_file =~ /^TTS/) + { + $TTS_prompt[$t] = 'survey_opt_in_audio_file'; + $TTS_filename[$t] = $survey_opt_in_audio_file; + $TTS_filename[$t]=~s/^TTS//gi; + $t++; + } + if ($survey_ni_audio_file =~ /^TTS/) + { + $TTS_prompt[$t] = 'survey_ni_audio_file'; + $TTS_filename[$t] = $survey_ni_audio_file; + $TTS_filename[$t]=~s/^TTS//gi; + $t++; + } + if ($survey_third_audio_file =~ /^TTS/) + { + $TTS_prompt[$t] = 'survey_third_audio_file'; + $TTS_filename[$t] = $survey_third_audio_file; + $TTS_filename[$t]=~s/^TTS//gi; + $t++; + } + if ($survey_fourth_audio_file =~ /^TTS/) + { + $TTS_prompt[$t] = 'survey_fourth_audio_file'; + $TTS_filename[$t] = $survey_fourth_audio_file; + $TTS_filename[$t]=~s/^TTS//gi; + $t++; + } + + if ($AGILOG) {$agi_string = "-- TTS : |$t|$TTS_filename[0]|$TTS_filename[1]|$TTS_filename[2]|$TTS_filename[3]|$TTS_filename[4]|"; &agi_output;} + + ### if there are TTS audio files run this + if ($t > 0) + { + $stmtA = "SELECT lead_id,entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,phone_number,title,first_name,middle_initial,last_name,address1,address2,address3,city,state,province,postal_code,country_code,gender,date_of_birth,alt_phone,email,security_phrase,comments,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01057'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $TTS_lead_id = $aryA[0]; + $TTS_entry_date = $aryA[1]; + $TTS_modify_date = $aryA[2]; + $TTS_status = $aryA[3]; + $TTS_user = $aryA[4]; + $TTS_vendor_lead_code = $aryA[5]; + $TTS_source_id = $aryA[6]; + $TTS_list_id = $aryA[7]; + $TTS_phone_number = $aryA[8]; + $TTS_title = $aryA[9]; + $TTS_first_name = $aryA[10]; + $TTS_middle_initial = $aryA[11]; + $TTS_last_name = $aryA[12]; + $TTS_address1 = $aryA[13]; + $TTS_address2 = $aryA[14]; + $TTS_address3 = $aryA[15]; + $TTS_city = $aryA[16]; + $TTS_state = $aryA[17]; + $TTS_province = $aryA[18]; + $TTS_postal_code = $aryA[19]; + $TTS_country_code = $aryA[20]; + $TTS_gender = $aryA[21]; + $TTS_date_of_birth = $aryA[22]; + $TTS_alt_phone = $aryA[23]; + $TTS_email = $aryA[24]; + $TTS_security_phrase = $aryA[25]; + $TTS_comments = $aryA[26]; + $TTS_called_count = $aryA[27]; + $TTS_last_local_call_time = $aryA[28]; + $TTS_rank = $aryA[29]; + $TTS_owner = $aryA[30]; + } + $sthA->finish(); + + $s=0; + while ($s < $t) + { + $stmtA = "SELECT tts_text FROM vicidial_tts_prompts where tts_id='$TTS_filename[$s]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01057'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($s < 1) {$hideCLI = '';} + else {$hideCLI = '&';} + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $TTS_text[$s] = $aryA[0]; + $TTS_text[$s] =~ s/--A--lead_id--B--/$TTS_lead_id/gi; + $TTS_text[$s] =~ s/--A--entry_date--B--/$TTS_entry_date/gi; + $TTS_text[$s] =~ s/--A--modify_date--B--/$TTS_modify_date/gi; + $TTS_text[$s] =~ s/--A--status--B--/$TTS_status/gi; + $TTS_text[$s] =~ s/--A--user--B--/$TTS_user/gi; + $TTS_text[$s] =~ s/--A--vendor_lead_code--B--/$TTS_vendor_lead_code/gi; + $TTS_text[$s] =~ s/--A--source_id--B--/$TTS_source_id/gi; + $TTS_text[$s] =~ s/--A--list_id--B--/$TTS_list_id/gi; + $TTS_text[$s] =~ s/--A--phone_number--B--/$TTS_phone_number/gi; + $TTS_text[$s] =~ s/--A--title--B--/$TTS_title/gi; + $TTS_text[$s] =~ s/--A--first_name--B--/$TTS_first_name/gi; + $TTS_text[$s] =~ s/--A--middle_initial--B--/$TTS_middle_initial/gi; + $TTS_text[$s] =~ s/--A--last_name--B--/$TTS_last_name/gi; + $TTS_text[$s] =~ s/--A--address1--B--/$TTS_address1/gi; + $TTS_text[$s] =~ s/--A--address2--B--/$TTS_address2/gi; + $TTS_text[$s] =~ s/--A--address3--B--/$TTS_address3/gi; + $TTS_text[$s] =~ s/--A--city--B--/$TTS_city/gi; + $TTS_text[$s] =~ s/--A--state--B--/$TTS_state/gi; + $TTS_text[$s] =~ s/--A--province--B--/$TTS_province/gi; + $TTS_text[$s] =~ s/--A--postal_code--B--/$TTS_postal_code/gi; + $TTS_text[$s] =~ s/--A--country_code--B--/$TTS_country_code/gi; + $TTS_text[$s] =~ s/--A--gender--B--/$TTS_gender/gi; + $TTS_text[$s] =~ s/--A--date_of_birth--B--/$TTS_date_of_birth/gi; + $TTS_text[$s] =~ s/--A--alt_phone--B--/$TTS_alt_phone/gi; + $TTS_text[$s] =~ s/--A--email--B--/$TTS_email/gi; + $TTS_text[$s] =~ s/--A--security_phrase--B--/$TTS_security_phrase/gi; + $TTS_text[$s] =~ s/--A--comments--B--/$TTS_comments/gi; + $TTS_text[$s] =~ s/--A--called_count--B--/$TTS_called_count/gi; + $TTS_text[$s] =~ s/--A--last_local_call_time--B--/$TTS_last_local_call_time/gi; + $TTS_text[$s] =~ s/--A--rank--B--/$TTS_rank/gi; + $TTS_text[$s] =~ s/--A--owner--B--/$TTS_owner/gi; + $TTS_text[$s] =~ s/[^,\.\<\>\'\/\=\_\-\: 0-9a-zA-Z]//gi; + $TTS_textRAW[$s] = $TTS_text[$s]; + $TTS_text[$s] =~ s/ /\\ /gi; + $TTS_text[$s] =~ s/\./\\./gi; + $TTS_text[$s] =~ s/\=/\\=/gi; + $TTS_text[$s] =~ s/\/\\>/gi; + $TTS_text[$s] =~ s/\//\\\//gi; + $TTS_text[$s] =~ s/\'/\\'/gi; + $voice = 'Allison-8kHz'; + print STDERR "\nGenerating: $TTS_text[$s] - $voice\n"; + `$PATHagi/cepstral_generate.pl --debug --voice=$voice --dialog=$TTS_text[$s] >> $CEPLOGfile $hideCLI`; + + use Digest::MD5 qw(md5_hex); + + $enc = md5_hex("$TTS_textRAW[$s]-$voice"); # the hash + $enc_ftl = substr($enc, 0, 2); # first letter of hash + $TTS_filename_path[$s] = $PATHsounds . "/tts/" . $enc_ftl . "/tts-" . $enc; + print STDERR "\nfilename: $TTS_filename_path[$s]\n"; + } + $sthA->finish(); + + $s++; + } + + $s=0; + while ($s < $t) + { + if ($TTS_prompt[$s] =~ /survey_first_audio_file/) + {$survey_first_audio_file = $TTS_filename_path[$s];} + if ($TTS_prompt[$s] =~ /survey_opt_in_audio_file/) + {$survey_opt_in_audio_file = $TTS_filename_path[$s];} + if ($TTS_prompt[$s] =~ /survey_ni_audio_file/) + {$survey_ni_audio_file = $TTS_filename_path[$s];} + if ($TTS_prompt[$s] =~ /survey_third_audio_file/) + {$survey_third_audio_file = $TTS_filename_path[$s];} + if ($TTS_prompt[$s] =~ /survey_fourth_audio_file/) + {$survey_fourth_audio_file = $TTS_filename_path[$s];} + $s++; + } + } + } + + $xCLlist_id=0; + $stmtA = "SELECT list_id from vicidial_list where lead_id='$CIDlead_id' limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsLI=$sthA->rows; + $dbhP=$dbhA; $mysql_count='010XX'; $MEL_aff_rows=$sthArowsLI; &mysql_error_logging; + if ($sthArowsLI > 0) + { + @aryA = $sthA->fetchrow_array; + $xCLlist_id = "$aryA[0]"; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed,alt_dial,list_id) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','$vdlog_status','$VDADphone_code','$VDADphone','VDAD','N','$VDADalt_dial','$xCLlist_id')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01008'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01009'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = "$aryA[0]"; + $queuemetrics_server_ip = "$aryA[1]"; + $queuemetrics_dbname = "$aryA[2]"; + $queuemetrics_login= "$aryA[3]"; + $queuemetrics_pass = "$aryA[4]"; + $queuemetrics_log_id = "$aryA[5]"; + $queuemetrics_eq_prepend = "$aryA[6]"; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $stmtA = "SELECT phone_number FROM vicidial_auto_calls where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01010'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $phone_number = "$aryA[0]"; + $data2 = "$phone_number"; + $rec_count++; + } + $sthA->finish(); + + if ( (length($queuemetrics_eq_prepend) > 0) && ($queuemetrics_eq_prepend !~ /NONE/) ) + { + $stmtA = "SELECT $queuemetrics_eq_prepend FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01011'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + $DASH='-'; + @aryA = $sthA->fetchrow_array; + $QMprepend = "$aryA[0]"; + $rec_count++; + $data2 = "$QMprepend$DASH$phone_number"; + } + $sthA->finish(); + } + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='CALLOUTBOUND',data2='$data2',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01012'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + $dbhB->disconnect(); + } + } + + +################################################################################ +##### PLAY REMINDER MESSAGE ##### +if ($call_handle_method =~ /REMIND/) + { + $AGI->stream_file('sip-silence'); + + ############# BEGIN CPD AMD SECTION ############################ + if ($cpd_amd_action =~ /DISPO|MESSAGE/) + { + $stmtA = "SELECT count(*) FROM vicidial_cpd_log where callerid='$callerid' and result NOT IN('Voice','Unknown','???','') and status='NEW';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01054'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cpd_amd = "$aryA[0]"; + } + $sthA->finish(); + + if ($cpd_amd > 0) + { + &cpd_end_call; + } + } + ############# END CPD AMD SECTION ############################ + + $stmtA = "UPDATE vicidial_auto_calls set last_update_time='$FDtsSQLdate',stage='REMIND-0' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01013'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC posttime record: |$affected_rows|$FDtsSQLdate|$callerid|REMIND|"; &agi_output;} + + $AGI->stream_file("$survey_first_audio_file"); + } + + + + + +################################################################################ +##### START DO THE SURVEY ##### +if ($call_handle_method =~ /SURVEY/) + { + $AGI->stream_file('sip-silence'); + + ############# BEGIN CPD AMD SECTION ############################ + if ($cpd_amd_action =~ /DISPO|MESSAGE/) + { + $stmtA = "SELECT count(*) FROM vicidial_cpd_log where callerid='$callerid' and result NOT IN('Voice','Unknown','???','') and status='NEW';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01054'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cpd_amd = "$aryA[0]"; + } + $sthA->finish(); + + if ($cpd_amd > 0) + { + &cpd_end_call; + } + } + ############# END CPD AMD SECTION ############################ + + $stmtA = "UPDATE vicidial_auto_calls set last_update_time='$FDtsSQLdate',stage='SURVEY-0' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01014'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC posttime record: |$affected_rows|$FDtsSQLdate|$callerid|SURVEY|"; &agi_output;} + + ### check to see if the SURVEY settings should be pulled from the campaign settings in the database + if ($call_handle_method =~ /SURVEYCAMP/) + { + $stmtA = "SELECT survey_dtmf_digits,survey_ni_digit,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,survey_third_digit,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_status,survey_fourth_exten FROM vicidial_campaigns where campaign_id='$VDADcampaign';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01015'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + + $survey_dtmf_digits = "$aryA[0]"; + $survey_ni_digit = "$aryA[1]"; + $survey_method = "$aryA[2]"; + $survey_no_response_action = "$aryA[3]"; + $survey_ni_status = "$aryA[4]"; + $survey_response_digit_map = "$aryA[5]"; + $survey_xfer_exten = "$aryA[6]"; + $survey_camp_record_dir = "$aryA[7]"; + $survey_third_digit = "$aryA[8]"; + $survey_third_status = "$aryA[9]"; + $survey_third_exten = "$aryA[10]"; + $survey_fourth_digit = "$aryA[11]"; + $survey_fourth_status = "$aryA[12]"; + $survey_fourth_exten = "$aryA[13]"; + + @digit_map = split(/\|/,$survey_response_digit_map); + + $rec_count++; + } + $sthA->finish(); + } + + # play the message and let them press a number + $digits_to_collect = '1'; + $opt_code = enter_pin_number($survey_first_audio_file,$survey_dtmf_digits); + if (length($opt_code) < 1) {$opt_code = 'X';} + $opt_description = $opt_code; + + $w=0; + foreach (@digit_map) + { + if ($digit_map[$w] =~ /^$opt_code/) {$opt_description = $digit_map[$w]} + $w++; + } + + # record what they entered + $stmtA = "UPDATE vicidial_list set security_phrase='$opt_description',status='PM' where lead_id = '$CIDlead_id';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01016'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_list OPT_CODE update: |$affected_rows|$CIDlead_id|$opt_code|"; + &agi_output; + } + + # they opted out + if ($opt_code =~ /$survey_ni_digit/) + { + if ( $survey_ni_audio_file ne "") + { + $AGI->stream_file($survey_ni_audio_file); + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01017'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; + &agi_output; + } + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $now_date_epoch = time(); + $drop_seconds = $now_date_epoch - $start_time_epoch; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$survey_ni_status', end_epoch='$now_date_epoch', length_in_sec='$drop_seconds', term_reason='CALLER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01018'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_log update: $survey_ni_status|$affected_rows|$uniqueid|$drop_seconds|"; + &agi_output; + } + + $stmtA = "UPDATE vicidial_list set status='$survey_ni_status' where lead_id = '$CIDlead_id';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01019'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_list update: $survey_ni_status|$affected_rows|$CIDlead_id"; + &agi_output; + } + + if (($use_internal_dnc =~ /Y/) && ($survey_ni_status eq "DNC")) + { + $stmtA = "INSERT INTO vicidial_dnc set phone_number='$VDADphone';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01020'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_dnc insert: $affected_rows|$VDADphone"; + &agi_output; + } + } + if (($use_campaign_dnc =~ /Y/) && ($survey_ni_status eq "DNC")) + { + $stmtA = "INSERT INTO vicidial_campaign_dnc set phone_number='$VDADphone', campaign_id='$VDADcampaign';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01021'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_campaign_dnc insert: $affected_rows|$VDADphone|$VDADcampaign"; + &agi_output; + } + } + + $AGI->hangup(); + + exit; + } + + ### third digit option + if ($opt_code =~ /$survey_third_digit/) + { + if ( $survey_third_audio_file ne "") + { + $AGI->stream_file($survey_third_audio_file); + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01017'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; + &agi_output; + } + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $now_date_epoch = time(); + $drop_seconds = $now_date_epoch - $start_time_epoch; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$survey_third_status', end_epoch='$now_date_epoch', length_in_sec='$drop_seconds', term_reason='CALLER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01018'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_log update: $survey_third_status|$affected_rows|$uniqueid|$drop_seconds|"; + &agi_output; + } + + $stmtA = "UPDATE vicidial_list set status='$survey_third_status' where lead_id = '$CIDlead_id';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01019'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_list update: $survey_third_status|$affected_rows|$CIDlead_id"; + &agi_output; + } + + if (($use_internal_dnc =~ /Y/) && ($survey_third_status eq "DNC")) + { + $stmtA = "INSERT INTO vicidial_dnc set phone_number='$VDADphone';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01020'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_dnc insert: $affected_rows|$VDADphone"; + &agi_output; + } + } + if (($use_campaign_dnc =~ /Y/) && ($survey_third_status eq "DNC")) + { + $stmtA = "INSERT INTO vicidial_campaign_dnc set phone_number='$VDADphone', campaign_id='$VDADcampaign';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01021'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_campaign_dnc insert: $affected_rows|$VDADphone|$VDADcampaign"; + &agi_output; + } + } + + if (length($survey_third_exten) > 0) + { + if ($AGILOG) {$agi_string = "exiting the VDAD SURVEY app, transferring call to $survey_third_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $survey_third_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + {$AGI->hangup();} + + exit; + } + + + ### fourth digit option + if ($opt_code =~ /$survey_fourth_digit/) + { + if ( $survey_fourth_audio_file ne "") + { + $AGI->stream_file($survey_fourth_audio_file); + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01017'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; + &agi_output; + } + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $now_date_epoch = time(); + $drop_seconds = $now_date_epoch - $start_time_epoch; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$survey_fourth_status', end_epoch='$now_date_epoch', length_in_sec='$drop_seconds', term_reason='CALLER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01018'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_log update: $survey_fourth_status|$affected_rows|$uniqueid|$drop_seconds|"; + &agi_output; + } + + $stmtA = "UPDATE vicidial_list set status='$survey_fourth_status' where lead_id = '$CIDlead_id';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01019'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_list update: $survey_fourth_status|$affected_rows|$CIDlead_id"; + &agi_output; + } + + if (($use_internal_dnc =~ /Y/) && ($survey_fourth_status eq "DNC")) + { + $stmtA = "INSERT INTO vicidial_dnc set phone_number='$VDADphone';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01020'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_dnc insert: $affected_rows|$VDADphone"; + &agi_output; + } + } + if (($use_campaign_dnc =~ /Y/) && ($survey_fourth_status eq "DNC")) + { + $stmtA = "INSERT INTO vicidial_campaign_dnc set phone_number='$VDADphone', campaign_id='$VDADcampaign';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01021'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_campaign_dnc insert: $affected_rows|$VDADphone|$VDADcampaign"; + &agi_output; + } + } + + if (length($survey_fourth_exten) > 0) + { + if ($AGILOG) {$agi_string = "exiting the VDAD SURVEY app, transferring call to $survey_fourth_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $survey_fourth_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + {$AGI->hangup();} + + exit; + } + + # they opted in + if ( ($opt_code =~ /\d/) || ($survey_no_response_action =~ /OPTOUT/) ) + { + $now_date_epoch = time(); + $FDtarget = ($now_date_epoch + 60); + ($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); + $Fyear = ($Fyear + 1900); + $Fmon++; + if ($Fmon < 10) {$Fmon = "0$Fmon";} + if ($Fmday < 10) {$Fmday = "0$Fmday";} + if ($Fhour < 10) {$Fhour = "0$Fhour";} + if ($Fmin < 10) {$Fmin = "0$Fmin";} + if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDtsSQLdate = "$Fyear$Fmon$Fmday$Fhour$Fmin$Fsec"; + + $stmtA = "UPDATE vicidial_auto_calls set last_update_time='$FDtsSQLdate' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01022'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC posttime record: |$affected_rows|$FDtsSQLdate|$callerid|"; &agi_output;} + + if ( $survey_opt_in_audio_file ne "") + { + $AGI->stream_file($survey_opt_in_audio_file); + } + + if ($survey_method =~ /VOICEMAIL|EXTENSION|HANGUP/) + { + $DROPexten=''; + if ($survey_method =~ /VOICEMAIL/) + { + $newcallerid = "\"$callerid <$VDADphone>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + $survey_status='SVYVM'; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + } + if ($survey_method =~ /EXTENSION/) + { + $survey_status='SVYEXT'; + if (length($survey_xfer_exten)>0) + { + $DROPexten = "$survey_xfer_exten"; + + if ($three_way_call_cid !~ /CUSTOMER/) + { + $newcallerid = "\"$campaign_cid <$campaign_cid>\""; + $AGI->set_callerid($newcallerid); + + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$calleridname\" \<$VDADphone\>"; &agi_output;} + } + } + } + if ($survey_method =~ /HANGUP/) + { + $survey_status='SVYHU'; + } + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $now_date_epoch = time(); + $drop_seconds = $now_date_epoch - $start_time_epoch; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$survey_status', end_epoch='$now_date_epoch', length_in_sec='$drop_seconds', term_reason='CALLER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01023'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_log update: $survey_status|$affected_rows|$uniqueid|$drop_seconds|"; + &agi_output; + } + + $stmtA = "UPDATE vicidial_list set status='$survey_status' where lead_id = '$CIDlead_id';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01024'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_list update: $survey_status|$affected_rows|$CIDlead_id"; + &agi_output; + } + + if (length($DROPexten) > 0) + { + $stmtA = "UPDATE vicidial_auto_calls set status='XFER',stage='XFER-0' where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01025'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAC XFER status: |$affected_rows|$FDtsSQLdate|$callerid|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting the VDAD SURVEY app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + exit; + } + + if ($survey_method =~ /HANGUP/) + { + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01026'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; + &agi_output; + } + + $AGI->hangup(); + + exit; + } + } + + if ($survey_method =~ /CAMPREC/) + { + if ($survey_method =~ /60/) + {$timeout=60000;} + if ($survey_method =~ /WAV/) + {$format='WAV';} + if ($survey_method =~ /GSM/) + {$format='GSM';} + + $survey_status='SVYREC'; + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $now_date_epoch = time(); + $drop_seconds = $now_date_epoch - $start_time_epoch; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$survey_status', end_epoch='$now_date_epoch', length_in_sec='$drop_seconds', term_reason='CALLER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01027'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_log update: $survey_status|$affected_rows|$uniqueid|$drop_seconds|"; + &agi_output; + } + + $stmtA = "UPDATE vicidial_list set status='$survey_status' where lead_id = '$CIDlead_id';"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01028'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_list update: $survey_status|$affected_rows|$CIDlead_id"; + &agi_output; + } + + if ( -e ('$survey_camp_record_dir/$VDADcampaign')) + {$do_nothing=1;} + else + {`mkdir -p --mode=0666 $survey_camp_record_dir/$VDADcampaign`;} + + $AGI->stream_file('beep'); + + $interrupt_digit = $AGI->record_file("$survey_camp_record_dir/$VDADcampaign/$VDADphone$filedate", "$format", '123456789*#', "$timeout", '0', 1, '10'); + if ($AGILOG) + { + $agi_string = "RECORDING FINISHED: $interrupt_digit|$survey_camp_record_dir/$VDADcampaign/$VDADphone$filedate|"; + &agi_output; + } + + $now_date_epoch = time(); + $drop_seconds = $now_date_epoch - $start_time_epoch; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$survey_status', end_epoch='$now_date_epoch', length_in_sec='$drop_seconds', term_reason='CALLER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01029'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_log update: $survey_status|$affected_rows|$uniqueid|$drop_seconds|"; + &agi_output; + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01030'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; + &agi_output; + } + + $AGI->hangup(); + + exit; + } + } + else + { + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $now_date_epoch = time(); + $drop_seconds = $now_date_epoch - $start_time_epoch; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='PM', end_epoch='$now_date_epoch', length_in_sec='$drop_seconds', term_reason='CALLER' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) { $agi_string = "|$stmtA|"; &agi_output; } + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01031'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vicidial_log update: PM|$affected_rows|$uniqueid|$drop_seconds|"; + &agi_output; + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01032'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) + { + $agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; + &agi_output; + } + + $AGI->hangup(); + + exit; + } + } +################################################################################ +##### END DO THE SURVEY ##### + + + + + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) + { + $channel_status = $AGI->channel_status("$channel"); + if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < $DROP_TIME) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + $DROP_TIME); + } + } + + ############# BEGIN CPD AMD SECTION ############################ + if ($cpd_amd_action =~ /DISPO|MESSAGE/) + { + $stmtA = "SELECT count(*) FROM vicidial_cpd_log where callerid='$callerid' and result NOT IN('Voice','Unknown','???','') and status='NEW';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01054'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cpd_amd = "$aryA[0]"; + } + $sthA->finish(); + + if ($cpd_amd > 0) + { + &cpd_end_call; + } + } + ############# END CPD AMD SECTION ############################ + + + $rec_countCUSTDATA=0; + $rec_countWAIT=0; + $cbc=0; + $aco_sub=0; + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /longest_wait_time/i) {$agent_call_order = 'order by last_state_change';} + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} + if ($CAMP_callorder =~ /fewest_calls/i) {$aco_sub=1; $agent_call_order = 'order by calls_today';} + + + ##### Attempt to send call to an agent on this server only ##### + if ($agent_search_method =~ /^SO|^LO/) + { + $rec_countWAIT=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01033'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01034'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $concurrent_transfers = ($active_agents / 10); + $concurrent_transfers = sprintf("%.0f", $concurrent_transfers); + $concurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $concurrent_transfers ($active_agents)|"; &agi_output;} + } + else {$concurrent_transfers = $DBconcurrent_transfers;} + $sthA->finish(); + if ($rec_countWAIT < $concurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', call_server_ip='$VARserver_ip', callerid='$callerid',comments='AUTO' where status = 'READY' and lead_id<1 and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01035'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $r=0; + $VDADuser=''; + while ( (length($VDADuser)<1) && ($r<3) ) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status IN('QUEUE','INCALL') and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01036'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + $r++; + if ($r > 1) + { + if ($AGILOG) {$agi_string = "EEEEEEEEEE vla UPDATE DELAY!!! |$callerid|$r|"; &agi_output;} + + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + if ($r > 2) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where callerid='$callerid' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01037'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "FFFFFFFFFF vla OR SELECT |$callerid|$VDADuser|"; &agi_output;} + } + } + + if ($VDADextension =~ /^R\//) + { + ### set the callerid to the ACQS value(calleridname) + ## use these two lines for Asterisk 1.2 tree + $newcallerid = "\"$calleridname <$VDADphone>\""; + $AGI->set_callerid($newcallerid); + ## use these two lines for Asterisk 1.0 tree + # print "SET CALLERID \"$calleridname\" <0000000000>\n"; + # print "SET CALLERIDNAME \"$calleridname\"\n"; + ### custom change to allow exten to be sent as phone*vendor_id + if ($VDADconf_exten =~ /888888888888/) + { + $stmtA = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01057'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $vendor_id = $aryA[0]; + } + $sthA->finish(); + $VDADconf_exten = "$VDADphone$S$vendor_id"; + } + + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$calleridname\" \<$VDADphone\>"; &agi_output;} + } + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01038'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01039'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $dbhB->disconnect(); + } + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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) {$hour = "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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + } + + if ($agent_search_method =~ /^LO|^LB/) + { + ################################################################################################### + ##### Attempt to send call to an agent on any server ##### + $cbc=0; + $rec_countWAITrem=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01040'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAITrem = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01041'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $concurrent_transfers = ($active_agents / 10); + $concurrent_transfers = sprintf("%.0f", $concurrent_transfers); + $concurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $concurrent_transfers ($active_agents)|"; &agi_output;} + } + else {$concurrent_transfers = $DBconcurrent_transfers;} + $sthA->finish(); + if ($rec_countWAITrem < $concurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', call_server_ip='$VARserver_ip', callerid='$callerid',comments='AUTO' where status = 'READY' and lead_id<1 and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01042'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $r=0; + $VDADuser=''; + while ( (length($VDADuser)<1) && ($r<3) ) + { + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status IN('QUEUE','INCALL') and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01043'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $rec_count++; + } + $sthA->finish(); + $r++; + if ($r > 1) + { + if ($AGILOG) {$agi_string = "EEEEEEEEEE vla UPDATE DELAY!!! |$callerid|$r|"; &agi_output;} + + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + if ($r > 2) + { + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where callerid='$callerid' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01044'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $rec_count++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "FFFFFFFFFF vla OR SELECT |$callerid|$VDADuser|"; &agi_output;} + } + } + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01045'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD XFER REMOTE: |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + if( $VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($VDADextension =~ /^R\//) + { + ### set the callerid to the ACQS value(calleridname) + ## use these two lines for Asterisk 1.2 tree + $newcallerid = "\"$calleridname <$VDADphone>\""; + $AGI->set_callerid($newcallerid); + ## use these two lines for Asterisk 1.0 tree + # print "SET CALLERID \"$calleridname\" <0000000000>\n"; + # print "SET CALLERIDNAME \"$calleridname\"\n"; + if ($VDADremDIALstr =~ /888888888888/) + { + $stmtA = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01057'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $vendor_id = $aryA[0]; + } + $sthA->finish(); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S$VDADphone$S$vendor_id"; + } + + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$calleridname\" \<$VDADphone\>"; &agi_output;} + } + + $dbhA->disconnect(); + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01046'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $dbhB->disconnect(); + } + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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) {$hour = "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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER BALANCE WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + } + + if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + + $stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($affected_rows < 1) + { + $stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','CLOSER','$CIDlead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','CLOSER-$drop_timer')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01047'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "$affected_rows|VDAC-reinsert|$stmtA|"; &agi_output;} + } + #if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + } + + + + + + +if ($drop_timer > $DROP_TIME) + { + ($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) {$hour = "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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='EXITWITHTIMEOUT',data1='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01048'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='CALLSTATUS',data1='DROP',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01049'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $dbhB->disconnect(); + } + + if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + } + + if ($drop_action =~ /MESSAGE/) + { + if (length($safe_harbor_exten)>0) + {$DROPexten = "$safe_harbor_exten";} + } + if ($drop_action =~ /VOICEMAIL/) + { + $newcallerid = "\"$callerid <$VDADphone>\""; + $AGI->set_callerid($newcallerid); + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $newcallerid"; &agi_output;} + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + } + if ($drop_action =~ /IN_GROUP/) + { + $drop_inbound_group_override=''; + if (length($xCLlist_id) > 1) + { + ### gather list_id overrides + $stmtA = "SELECT drop_inbound_group_override FROM vicidial_lists where list_id='$xCLlist_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsL=$sthA->rows; + if ($sthArowsL > 0) + { + @aryA = $sthA->fetchrow_array; + $drop_inbound_group_override = $aryA[0]; + if (length($drop_inbound_group_override) > 0) + {$drop_inbound_group = $drop_inbound_group_override;} + } + $sthA->finish(); + } + # Example: 90009*CL_uk3survy_*8301*10000123*universal*7275551212*1234*" + $S='*'; + $DROPexten = "90009*$drop_inbound_group$S$S$CIDlead_id$S$S$VDADphone$S$fronter$S"; + } + + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',term_reason='QUEUETIMEOUT' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01050'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01051'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01052'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + + $AGI->stream_file('ding'); # stop music-on-hold process + + sleep(1); + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01053'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$CIDlead_id|$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + + $AGI->hangup(); + } + } + + + +$dbhA->disconnect(); + +exit; + +sub enter_pin_number + { + $sound = $_[0]; + $survey_dtmf_digits = $_[1]; + + $digits_to_collect =~ s/DIGITID//gi; + + # please enter the pin number followed by the pound key + # please enter your X digit pin number + + $digit=''; + undef $digit; + $interrupt_digit=''; + undef $interrupt_digit; + + $interrupt_digit = $AGI->stream_file("$sound","$survey_dtmf_digits"); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + + $digits_being_entered=1; + $totalDTMF=''; + if ($interrupt_digit > 1) + { + $interrupt_digit = $interrupt_digit - 48; + + $totalDTMF=$interrupt_digit; + } + + $digit_loop_counter = length($totalDTMF); + + while ( ($digit_loop_counter < $digits_to_collect) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + # $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=$digits_to_collect; + } + + $digit_loop_counter++; + } + + $totalDTMF =~ s/\D//gi; + $pin = $totalDTMF; + if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} + + return $pin; + } + + + + +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++; + } + } + + +sub leading_zero($) + { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; + } # End of the leading_zero() routine. + + + +### you're call is very important to us, please stay on the line and you will be transferred to the next available agent + + +sub agi_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### + if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} + $agi_string=''; + } + + +sub mysql_error_logging + { + $errno=''; + $error=''; + if ( ($mel > 0) || ($one_mysql_log > 0) ) + { + $errno = $dbhP->err(); + if ( ($errno > 0) || ($mel > 1) || ($one_mysql_log > 0) ) + { + $error = $dbhP->errstr(); + ### open the log file for writing ### + open(Eout, ">>$ERRLOGfile") + || die "Can't open $ERRLOGfile: $!\n"; + print Eout "$now_date|$script|$mysql_count|$MEL_aff_rows|$errno|$error|$stmtA|$callerid|$CIDlead_id|\n"; + close(Eout); + } + } + $one_mysql_log=0; + } + + + +##### CPD call progress AMD end call process ##### +sub cpd_end_call + { + $stmtA = "SELECT result FROM vicidial_cpd_log where callerid='$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $dbhP=$dbhA; $mysql_count='01056'; $MEL_aff_rows=$sthArows; &mysql_error_logging; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cpd_result = "$aryA[0]"; + } + $sthA->finish(); + $CPDfound=0; + if ($cpd_result =~ /Busy/i) {$vdad_result='CPDB'; $CPDfound++;} + if ($cpd_result =~ /All-Trunks-Busy/i) {$vdad_result='CPDATB'; $CPDfound++;} + if ($cpd_result =~ /No-Answer/i) {$vdad_result='CPDNA'; $CPDfound++;} + if ($cpd_result =~ /Reject/i) {$vdad_result='CPDREJ'; $CPDfound++;} + if ($cpd_result =~ /Invalid-Number/i) {$vdad_result='CPDINV'; $CPDfound++;} + if ($cpd_result =~ /Service-Unavailable/i) {$vdad_result='CPDSUA'; $CPDfound++;} + if ($cpd_result =~ /Sit-Intercept/i) {$vdad_result='CPDSI'; $CPDfound++;} + if ($cpd_result =~ /Sit-No-Circuit/i) {$vdad_result='CPDSNC'; $CPDfound++;} + if ($cpd_result =~ /Sit-Reorder/i) {$vdad_result='CPDSR'; $CPDfound++;} + if ($cpd_result =~ /Sit-Unknown/i) {$vdad_result='CPDSUK'; $CPDfound++;} + if ($cpd_result =~ /Sit-Vacant/i) {$vdad_result='CPDSV'; $CPDfound++;} + if ($cpd_result =~ /Fax|Modem/i) {$vdad_result='AFAX'; $CPDfound++;} + if ($CPDfound < 1) {$vdad_result='AA';} + + if ($AGILOG) {$agi_string = "CALL CPD AMD Detected $channel $callerid|$drop_timer|$cpd_result"; &agi_output;} + + ($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) {$hour = "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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='EXITWITHTIMEOUT',data1='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01048'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='CALLSTATUS',data1='$vdad_result',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + $dbhP=$dbhB; $stmtA=$stmtB; $mysql_count='01049'; $MEL_aff_rows=$Baffected_rows; &mysql_error_logging; + + $dbhB->disconnect(); + } + + if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + } + + if ( ($cpd_amd_action =~ /MESSAGE/) && ($cpd_result !~ /Fax/i) ) + { + $DROPexten = "8320"; + } + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+//gi; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$vdad_result',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',term_reason='AGENT' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01050'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD CPD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='$vdad_result' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01051'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD CPD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01052'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDAD CPD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_cpd_log SET status='PROCESSED',cpd_seconds='$drop_timer' where callerid='$callerid' and result IN('Answering-Machine','Fax') and status='NEW';"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01055'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + $AGI->stream_file('ding'); # stop music-on-hold process + + sleep(1); + + if ($AGILOG) {$agi_string = "exiting the VDAD app, CPD transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + exit; + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + $dbhP=$dbhA; $mysql_count='01053'; $MEL_aff_rows=$affected_rows; &mysql_error_logging; + if ($AGILOG) {$agi_string = "-- VDCL call_hungup CPD timout: |$CIDlead_id|$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + + $AGI->hangup(); + + exit; + } + } + + +sub trigger_transfer_process + { + # $DS='--'; + # $BEGIN='BEGIN'; + # + # $CLI = "/usr/bin/date >> $PRSTESTfile &"; + # $CLI = "/root/phone.pl $insert_lead_id$DS$insert_close_id$DS$CLInow_date$DS$VDADuser$DS$phone_number$DS$DS$BEGIN$DS >> $PRSTESTfile &"; + # + # `$CLI`; + # + # if ($AGILOG >=2) + # { + # ### open the log file for writing ### + # open(Pout, ">>$PRSLOGfile") + # || die "Can't open $AGILOGfile: $!\n"; + # print Pout "$now_date|$VDADconf_exten|$VDADuser|$VDADextension|$insert_lead_id|$phone_number|$insert_close_id|$channel_group|$drop_timer|$CLI|\n"; + # close(Pout); + # } + } diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_inbound_calltime_check.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_inbound_calltime_check.agi new file mode 100644 index 00000000..6aeee1ba --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_inbound_calltime_check.agi @@ -0,0 +1,550 @@ +#!/usr/bin/perl +# +# agi-VDAD_inbound_calltime_check.agi version 2.2.0 +# +# Runs when a call comes in from an inbound call. This script will check the +# settings of the defined calltime scheme in VICIDIAL and either send the call +# to the after-hours method for the defined IN-GROUP or exit to let the call +# continue. This script is also used by Call Menus. +# +# You need to put lines similar to those below in your extensions.conf file: +# ; Below are the parameters needed for the script to be run properly +# ; 1. the in-group to take settings from +# ; 2. whether to log the call into the vicidial_auto_calls table: +# ; - YES - insert the call as status IVR +# ; - NO - do not insert call into vac table +# ; 3. note to put in the comment_b field when record inserted into the +# ; live_inbound_log table, no spaces in this field, use underscore '_' +# ; default if not populated is NONE +# ; 4. call time scheme override +# ; 5. call route after hours override +# ; 6. call route value after hours override +# ; 7. call route context after hours override +# ; +# ;inbound calls check calltime: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDAD_inbound_calltime_check.agi,INBOUND-----YES-----START-----24hours-----EXTENSION-----101-----default) +#exten => 1234,3,Hangup +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 80525-0144 - First Build +# 81015-0305 - Added drop logging +# 81015-2009 - Added more logging and NOTE option +# 81017-0238 - Fixed duplication bug for vac in multi-entry dialplans +# 90504-1555 - Added call time scheme override +# 90621-1130 - Fixed issue when no call time is specified +# 91122-2353 - Added QueueMetrics logging as IVR INFO entries +# + +$script = 'agi-VDAD_inbound_calltime_check.agi'; + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +$hm = "$hour$min"; +$hm = ($hm + 0); + +$now_date_epoch = time(); +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$CLInow_date = "$year-$mon-$mday\\ $hour:$min:$sec"; +$start_time=$now_date; +$CIDdate = "$mon$mday$hour$min$sec"; +$tsSQLdate = "$year$mon$mday$hour$min$sec"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; +$SQLdateBEGIN = $SQLdate; + +$BDtarget = ($now_date_epoch + 600); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} +$last_update_time = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} +if (!$PRSLOGfile) {$PRSLOGfile = "$PATHlogs/prsout.$year-$mon-$mday";} +if (!$PRSTESTfile) {$PRSTESTfile = "$PATHlogs/prstest.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + } +$sthA->finish(); + +############################################# +##### START QUEUEMETRICS LOGGING LOOKUP ##### +$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = $aryA[0]; + $queuemetrics_server_ip = $aryA[1]; + $queuemetrics_dbname = $aryA[2]; + $queuemetrics_login= $aryA[3]; + $queuemetrics_pass = $aryA[4]; + $queuemetrics_log_id = $aryA[5]; + $queuemetrics_eq_prepend = $aryA[6]; + } +$sthA->finish(); +##### END QUEUEMETRICS LOGGING LOOKUP ##### +########################################### + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $log_to_vac = $ARGV_vars[1]; + $note = $ARGV_vars[2]; + if (length($note)<1) {$note = 'NONE';} + $call_time_override = $ARGV_vars[3]; + $route_override = $ARGV_vars[4]; + $route_value_override = $ARGV_vars[5]; + $route_context_override = $ARGV_vars[6]; + } + +$|=1; +while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_context\:\s+(.*)$/) {$context = $1;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + } + + +if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + +$callerid =~ s/\D//gi; +$calleridname =~ s/unknown//gi; +if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + +if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} +if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} +if (length($callerid)<8) {$callerid = $parked_by;} +if (length($pin)>0) {$callerid = $pin;} + + +foreach $i (sort keys %AGI) + { + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} + } + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +if (length($pin) < 1) {$pin=$inbound_number;} + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) + { + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} + exit; + } + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = $aryA[0]; + $DBext_context = $aryA[1]; + $DBanswer_transfer_agent = $aryA[2]; + $DBSERVER_GMT = $aryA[3]; + $DBasterisk_version = $aryA[4]; + $DBmax_vicidial_trunks = $aryA[5]; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +if (length($channel_group) > 1) + { + ### Grab inbound groups values from the database + $cbc=0; + $stmtA = "SELECT call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,drop_call_seconds,drop_action,drop_exten,next_agent_call,voicemail_ext,queue_priority,drop_inbound_group,afterhours_xfer_group FROM vicidial_inbound_groups where group_id = '$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $call_time_id = $aryA[0]; + $after_hours_action = $aryA[1]; + $after_hours_message_filename = $aryA[2]; + $after_hours_exten = $aryA[3]; + $after_hours_voicemail = $aryA[4]; + $welcome_message_filename = $aryA[5]; + $moh_context = $aryA[6]; + $onhold_prompt_filename = $aryA[7]; + $prompt_interval = $aryA[8]; + $agent_alert_exten = $aryA[9]; + $agent_alert_delay = $aryA[10]; + $drop_call_seconds = $aryA[11]; + $DROP_TIME = $drop_call_seconds; + $drop_action = $aryA[12]; + $drop_exten = $aryA[13]; + $CAMP_callorder = $aryA[14]; + $VDADvoicemail_ext = $aryA[15]; + $VDADvoicemail_ext =~ s/\D//gi; + $queue_priority = $aryA[16]; + $drop_inbound_group = $aryA[17]; + $afterhours_xfer_group = $aryA[18]; + $cbc++; + } + $sthA->finish(); + } +if (length($call_time_override) > 1) + { + $call_time_id = $call_time_override; + } +if (length($route_override) > 1) + { + $after_hours_action = $route_override; + } +if (length($route_value_override) > 1) + { + $after_hours_message_filename = $route_value_override; + $after_hours_exten = $route_value_override; + $after_hours_voicemail = $route_value_override; + } +if (length($route_context_override) > 1) + { + $ext_context = $route_context_override; + } + +if ($wday==0) {$daySQL=',ct_sunday_start,ct_sunday_stop';} +if ($wday==1) {$daySQL=',ct_monday_start,ct_monday_stop';} +if ($wday==2) {$daySQL=',ct_tuesday_start,ct_tuesday_stop';} +if ($wday==3) {$daySQL=',ct_wednesday_start,ct_wednesday_stop';} +if ($wday==4) {$daySQL=',ct_thursday_start,ct_thursday_stop';} +if ($wday==5) {$daySQL=',ct_friday_start,ct_friday_stop';} +if ($wday==6) {$daySQL=',ct_saturday_start,ct_saturday_stop';} + +$ct_default_start = '0'; +$ct_default_stop = '9999'; + +### Grab call_times values from the database +$stmtA = "SELECT ct_default_start,ct_default_stop $daySQL FROM vicidial_call_times where call_time_id = '$call_time_id';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $ct_default_start = $aryA[0]; + $ct_default_stop = $aryA[1]; + $ct_day_start = $aryA[2]; + $ct_day_stop = $aryA[3]; + $sthA->finish(); + + if ( ($ct_day_start > 0) || ($ct_day_stop > 0) ) + { + $ct_default_start = $ct_day_start; + $ct_default_stop = $ct_day_stop; + } + } + +$AGI->stream_file('sip-silence'); +$AGI->stream_file('sip-silence'); + + + + +##### BEGIN AFTER HOURS CHECK ##### +if ( ($hm < $ct_default_start) || ($hm > $ct_default_stop) ) + { + $VHqueryCID = "VA$CIDdate$hour$min$sec$sec"; + + if ($after_hours_action =~ /EXTENSION|VOICEMAIL|IN_GROUP/) + { + if ($after_hours_action =~ /EXTENSION/) + { + $DROPexten = "$after_hours_exten"; + } + if ($after_hours_action =~ /VOICEMAIL/) + { + $DROPexten = "$voicemail_dump_exten$after_hours_voicemail"; + } + if ($after_hours_action =~ /IN_GROUP/) + { # 90009*CL_uk3survy_*8301*10000123*universal*7275551212*1234*" + $S='*'; + $DROPexten = "90009*$afterhours_xfer_group$S$S$insert_lead_id$S$S$phone_number$S$fronter$S"; + } + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + + $AGI->stream_file('sip-silence'); # stop music-on-hold process + $AGI->stream_file('sip-silence'); # stop music-on-hold process + + sleep(1); + + if ($AGILOG) {$agi_string = "exiting the VDAD app after hours, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + } + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and uniqueid='$uniqueid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- AH VDCL vac record deleted: |$affected_rows| $uniqueid|$callerid|"; &agi_output;} + + $stmtA = "INSERT INTO live_inbound_log (uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,comment_a,comment_b,comment_c,comment_d,comment_e) values('$uniqueid','$channel','$VARserver_ip','$callerid','$extension','$phone_number','$SQLdate','$channel_group','$note','AFTERHOURSDROP','$context','$priority')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rowsL = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- AH LIL : |$affected_rowsL|$uniqueid|$callerid|$extension|"; &agi_output;} + + ### QueueMetrics logging if enabled + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO QueueMetrics DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$uniqueid',queue='NONE',agent='NONE',verb='INFO',data1='IVR',data2='$context',serverid='$queuemetrics_log_id';"; + if ($AGILOG) {$agi_string = "|$stmtB|"; &agi_output;} + $Baffected_rows = $dbhB->do($stmtB); + $dbhB->disconnect(); + } + + if ($after_hours_action =~ /HANGUP/) + { + ### insert a NEW record to the vicidial_manager table to hangup the channel + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup after hours: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + if ($after_hours_action =~ /MESSAGE/) + { + $AGI->stream_file('sip-silence'); + $AGI->stream_file('sip-silence'); + $AGI->stream_file("$after_hours_message_filename"); + sleep(1); + + ### insert a NEW record to the vicidial_manager table to hangup the channel + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup after hours: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $dbhA->disconnect(); + + exit; + } +##### END AFTER HOURS CHECK ##### + + + +### insert an IVR record to the vicidial_auto_calls table +if ($log_to_vac =~ /YES/) + { + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and uniqueid='$uniqueid' and server_ip='$VARserver_ip';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $uniqueid|$callerid|"; &agi_output;} + + $stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,lead_id,status,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage,queue_priority,last_update_time) values('$VARserver_ip','$channel_group','0','IVR','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','IVR-0','$queue_priority','$last_update_time')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rowsV = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VAC : |$affected_rowsV|$uniqueid|$callerid|$extension|"; &agi_output;} + } + +$stmtA = "INSERT INTO live_inbound_log (uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,comment_a,comment_b,comment_d,comment_e) values('$uniqueid','$channel','$VARserver_ip','$callerid','$extension','$phone_number','$SQLdate','$channel_group','$note','$context','$priority')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rowsL = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- LIL : |$affected_rowsL|$uniqueid|$callerid|$extension|"; &agi_output;} + + +### QueueMetrics logging if enabled +if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO QueueMetrics DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='$uniqueid',queue='NONE',agent='NONE',verb='INFO',data1='IVR',data2='$context',serverid='$queuemetrics_log_id';"; + if ($AGILOG) {$agi_string = "|$stmtB|"; &agi_output;} + $Baffected_rows = $dbhB->do($stmtB); + $dbhB->disconnect(); + } + + +$sthA->finish(); +$dbhA->disconnect(); + +exit; + + + + + + + +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++; + } + } + + +sub agi_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### + if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} + $agi_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_pin_IVR.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_pin_IVR.agi new file mode 100644 index 00000000..e1f6b145 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDAD_pin_IVR.agi @@ -0,0 +1,240 @@ +#!/usr/bin/perl +# +# agi-VDAD_pin_IVR.agi version 2.0.5 *DBI-version* +# +# At the end of a call, the agent transfers customer to this script +# +# This script plays a beep then plays the first portion of the message +# then logs the portion as listened to in the vicidial_list_pins table +# then plays second portion and hangs up. +# +# IN THE CAMPAIGN OR IN-GROUP NUMBER PRESET FIELD: +# AXFER83209 +# +# ON THE SERVER ORIGINATING THE CALL: +#;outbound IVR play VICIDIAL calls: +#exten => _983209.,1,AGI(call_log.agi,${EXTEN}) +#exten => _983209.,2,Dial(${TRUNKY}/${EXTEN:1},60) +#exten => _983209.,3,Hangup +# +# ON THE SERVER THAT HAS THIS SCRIPT: +#;inbound IVR play VICIDIAL calls: +#exten => _83209.,1,Answer +#exten => _83209.,2,AGI(agi-VDAD_pin_IVR.agi,${EXTEN}) +#exten => _83209.,3,Hangup +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60802-1304 - first build +# 60817-1113 - added output options check from database +# + +$script = 'agi-VDAD_pin_IVR.agi'; + +$first_audio_file = '85100003'; +$second_audio_file = '85100004'; +$goodbye_audio_file = 'US_reminder_goodbye'; + +#$first_audio_file = 'US_reminder_message'; +#$second_audio_file = 'US_reminder_options'; +#$goodbye_audio_file = 'US_reminder_goodbye'; + + +### set defaults for testing +$referring_extension = '83209'; +$phone_number = '9999999999'; +$lead_id = '999999999'; +$campaign_id = 'TESTCAMP'; +$product_code = 'ABC'; +$user = '1234'; +$pin = '0'; + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + ### allow for internal transfer data string "83009*3125551212*10000123*TESTCAMP*ABC*1234*" + if ($extension =~ /^8320\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $phone_number = $EXT_vars[1]; # phone number + $lead_id = $EXT_vars[2]; # lead_id in vicidial_list + $campaign_id = $EXT_vars[3]; # campaign id + $product_code = $EXT_vars[4]; # product code + $user = $EXT_vars[5]; # vicidial_user that sent the call here + } +} + + if ($AGILOG) {$agi_string = "INBOUND IVR PLAY CALL VDCL STARTED"; &agi_output;} + + +$AGI->stream_file('beep'); + +sleep(1); + +$AGI->stream_file("$first_audio_file"); + +### insert a record into the vicidial_list_pins table +$stmtA = "INSERT INTO vicidial_list_pins (entry_time,phone_number,lead_id,campaign_id,product_code,user,digits) values('$SQLdate','$phone_number','$lead_id','$campaign_id','$product_code','$user','IVR');"; + +$affected_rows = $dbhA->do($stmtA); + +$insert_pin_id = $dbhA->{'mysql_insertid'}; + +if ($AGILOG) {$agi_string = "|$stmtA|$insert_pin_id|$affected_rows|"; &agi_output;} + +$dbhA->disconnect(); + +$AGI->stream_file("$second_audio_file"); + +sleep(1); + +$AGI->stream_file("$goodbye_audio_file"); + + +exit; + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDADautoREMINDER.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADautoREMINDER.agi new file mode 100644 index 00000000..11df36fa --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADautoREMINDER.agi @@ -0,0 +1,667 @@ +#!/usr/bin/perl +# +# agi-VDADautoREMINDER.agi version 0.4 *DBI-version* +# +# runs when a call comes in from the VICIDIAL auto_dialer. This script will +# send the calls out to specified voicemail boxes in if called person presses key. +# The voicemail box is defined per-lead in the vicidial_list.security_phrase field +# This campaign does not send calls to live agents. +# +# Call statuses from this script: +# N- Call was picked up, didn't finish initial message +# MP- Initial message was played +# VM- call was sent to voicemail +# CALLBK- customer selected to be called back +# +# It is recommended that you run this campaign at a dial level of 1.0 +# It is recommended that you use remote_agents for activation of this script +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => 8372,1,AGI(call_log.agi,${EXTEN}) +# exten => 8372,2,AGI(agi-VDADautoREMINDER.agi,${EXTEN}) +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# CHANGES +# 60313-1626 - First build +# 60810-1729 - Changed to DBI +# - changed to use /etc/astguiclient.conf for configs +# 60818-1144 - added output options check from database +# + +$script = 'agi-VDADautoREMINDER.agi'; + +##### AUDIO FILES IN THIS PROGRAM ##### +$message_audio_file = 'US_reminder_message'; +$options_audio_file = 'US_reminder_options'; +# $voicemail_xfer_file = 'US_reminder_voicemail'; not used +$callback_audio_file = 'US_reminder_callback'; +$goodbye_audio_file = 'US_reminder_goodbye'; + + +($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) {$hour = "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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; #20060310100402 + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + + + +sleep(1); + +$AGI->stream_file('beep'); + + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $rec_count++; + } +$sthA->finish(); + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','N','$VDADphone_code','$VDADphone','VDAD','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + } + + + + +######### REMINDER CHOICE FROM RECORDINGS ######## +&reminder_choice; + +if ($pin < 1) + { + &reminder_choice; + + if ($pin < 1) + { + $AGI->stream_file("$goodbye_audio_file"); + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $end_date_epoch = time(); + $length_in_sec = ($end_date_epoch - $now_date_epoch); + + $stmtA = "UPDATE vicidial_log set end_epoch='$end_date_epoch', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|$end_date_epoch|$now_date_epoch|$length_in_sec|"; &agi_output;} + + $VHqueryCID = "VHNGUP$tsSQLdate"; + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + + sleep(1); + + exit; + } + } + +if ($AGILOG) {$agi_string = "+++++ VDAD STATUS : pressed $pin|$unique_id|$channel|$extension|$type|$callerid|$CIDlead_id|$now_date"; &agi_output;} + +if ($pin !~ /^1|^2/) {exit;} + +if (!$DB_port) {$DB_port='3306';} + + + + + +if ($pin =~ /^1|^2/) +{ + +if ($pin == "1") ### send call to voicemail + { +# message can be left on agent vmail box +# # Thank you for your response, we will now transfer you to your agent's voicemail box. +# $AGI->stream_file("$voicemail_xfer_file"); + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='VM' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id|XFER"; &agi_output;} + + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + + $end_date_epoch = time(); + $length_in_sec = ($end_date_epoch - $now_date_epoch); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='VM', end_epoch='$end_date_epoch', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record updated: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $VMAIL_box=0; + ### Grab Server values from the database + $stmtA = "SELECT security_phrase FROM vicidial_list where lead_id = '$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VMAIL_box = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + ### SEND CALL TO VOICEMAIL BOX ### + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $voicemail_dump_exten$VMAIL_box"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $voicemail_dump_exten$VMAIL_box\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + + } + +if ($pin == "2") ### mark call as a CALLBK + { + + # Thank you for your response, your agent will be contacting you shortly. + $stmtA = "DELETE from vicidial_auto_calls where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD DONE : |$affected_rows|delete of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='CALLBK' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id|XFER"; &agi_output;} + + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + + $end_date_epoch = time(); + $length_in_sec = ($end_date_epoch - $now_date_epoch); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='CALLBK', end_epoch='$end_date_epoch', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record updated: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $AGI->stream_file("$callback_audio_file"); + + $VHqueryCID = "VHNGUP$tsSQLdate"; + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + + sleep(1); + + exit; + } + +} ### end if pressed 1,2 + + + + + +else ### user pressed digit other than 1 or 2 +{ + +exit; +} + +$dbhA->close; + + + +exit; + + + + + + + + + + + +sub reminder_choice +{ +$digit=''; +undef $digit; +$interrupt_digit=''; +undef $interrupt_digit; + +# Hello, this is a courtesy call from ACME Industries reminding you that the deadline for the submission of orders for the June 5th batch delivery is tomorrow, March 10th: + # second audio file +# If you would like to leave a message for your agent please press 1. +# If you would like to have your agent call you back please press 2. + # third audio file +# Thank you, Goodbye + + +######### PLAY THE MESSAGE FILE THEN WAIT 2 SECONDS FOR DIGITS ############ +$interrupt_digit = $AGI->stream_file("$message_audio_file",'12'); + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} +$digits_being_entered=1; +$digit_loop_counter=0; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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++; + } + +$channel_status = $AGI->channel_status("$channel"); + if ($AGILOG) {$agi_string = "SSSSSSSSSS Channel Status: $channel_status"; &agi_output;} + + if ($channel_status == 6) + { + $stmtA = "UPDATE vicidial_log set status='MP' where uniqueid = '$uniqueid' and lead_id='$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: N|$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='MP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: N|$affected_rows|$CIDlead_id"; &agi_output;} + } + +while ($digit_loop_counter < 1) + { + $digit = chr($AGI->wait_for_digit('2000')); # wait 2 seconds for input or until digit pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=1; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) + { + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + return; + } + + + +######### PLAY THE OPTIONS FILE THEN WAIT 5 SECONDS FOR DIGITS ############ +$interrupt_digit = $AGI->stream_file("$options_audio_file",'12'); + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} +$digits_being_entered=1; +$digit_loop_counter=0; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('10000')); # wait 10 seconds for input or until digit pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=1; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) + { + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + return; + } +} + + + + +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++; + } +} + + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDADautoREMINDERxfer.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADautoREMINDERxfer.agi new file mode 100644 index 00000000..eb63d98b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADautoREMINDERxfer.agi @@ -0,0 +1,729 @@ +#!/usr/bin/perl +# +# agi-VDADautoREMINDERxfer.agi version 0.3 *DBI-version* +# +# runs when a call comes in from the VICIDIAL auto_dialer. This script will +# send the calls out to specified voicemail boxes or specified extensions if +# called person presses specified key(1,2,3). +# The voicemail box is defined per-lead in the vicidial_list.security_phrase field +# The exten xfer number is defined per-lead in the vicidial_list.comments field +# +# Call statuses from this script: +# N- Call was picked up, didn't finish initial message +# MP- Initial message was played +# VM- call was sent to voicemail +# XFER- call was sent to specified extension +# CALLBK- customer selected to be called back +# +# It is recommended that you run this campaign at a dial level of 1.0 +# It is recommended that you use remote_agents for activation of this script +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => 8372,1,AGI(call_log.agi,${EXTEN}) +# exten => 8372,2,AGI(agi-VDADautoREMINDERxfer.agi,${EXTEN}) +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# CHANGES +# 60511-1214 - First build +# 60810-1729 - Changed to DBI +# - changed to use /etc/astguiclient.conf for configs +# 60818-1144 - added output options check from database +# + +$script = 'agi-VDADautoREMINDERxfer.agi'; + +##### AUDIO FILES IN THIS PROGRAM ##### +$message_audio_file = 'US_reminder_message'; +$options_audio_file = 'US_reminder_options'; +# $voicemail_xfer_file = 'US_reminder_voicemail'; not used +$callback_audio_file = 'US_reminder_callback'; +$goodbye_audio_file = 'US_reminder_goodbye'; + + +($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) {$hour = "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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; #20060310100402 + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + + + +sleep(1); + +$AGI->stream_file('beep'); + + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $rec_count++; + } +$sthA->finish(); + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','N','$VDADphone_code','$VDADphone','VDAD','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + } + + + + +######### REMINDER CHOICE FROM RECORDINGS ######## +&reminder_choice; + +if ($pin < 1) + { + &reminder_choice; + + if ($pin < 1) + { + $AGI->stream_file("$goodbye_audio_file"); + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $end_date_epoch = time(); + $length_in_sec = ($end_date_epoch - $now_date_epoch); + + $stmtA = "UPDATE vicidial_log set end_epoch='$end_date_epoch', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|$end_date_epoch|$now_date_epoch|$length_in_sec|"; &agi_output;} + + $VHqueryCID = "VHNGUP$tsSQLdate"; + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + + sleep(1); + + exit; + } + } + +if ($AGILOG) {$agi_string = "+++++ VDAD STATUS : pressed $pin|$unique_id|$channel|$extension|$type|$callerid|$CIDlead_id|$now_date"; &agi_output;} + +if ($pin !~ /^1|^2|^3/) {exit;} + +if (!$DB_port) {$DB_port='3306';} + + + + + +if ($pin =~ /^1|^2|^3/) +{ + +if ($pin == "1") ### send call to voicemail + { +# message can be left on agent vmail box +# # Thank you for your response, we will now transfer you to your agent's voicemail box. +# $AGI->stream_file("$voicemail_xfer_file"); + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='VM' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id|XFER"; &agi_output;} + + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + + $end_date_epoch = time(); + $length_in_sec = ($end_date_epoch - $now_date_epoch); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='VM', end_epoch='$end_date_epoch', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record updated: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $VMAIL_box=0; + ### Grab Server values from the database + $stmtA = "SELECT security_phrase FROM vicidial_list where lead_id = '$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VMAIL_box = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + ### SEND CALL TO VOICEMAIL BOX ### + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $voicemail_dump_exten$VMAIL_box"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $voicemail_dump_exten$VMAIL_box\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + + } + +if ($pin == "2") ### mark call as a CALLBK + { + + # Thank you for your response, your agent will be contacting you shortly. + $stmtA = "DELETE from vicidial_auto_calls where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD DONE : |$affected_rows|delete of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='CALLBK' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id|XFER"; &agi_output;} + + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + + $end_date_epoch = time(); + $length_in_sec = ($end_date_epoch - $now_date_epoch); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='CALLBK', end_epoch='$end_date_epoch', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record updated: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $AGI->stream_file("$callback_audio_file"); + + $VHqueryCID = "VHNGUP$tsSQLdate"; + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + + sleep(1); + + exit; + } + +if ($pin == "3") ### send call to extension + { +# call can be sent to extension +# # Thank you for your response, we will now transfer you to your agent's voicemail box. +# $AGI->stream_file("$voicemail_xfer_file"); + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XFER' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id|XFER"; &agi_output;} + + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + + $end_date_epoch = time(); + $length_in_sec = ($end_date_epoch - $now_date_epoch); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='XFER', end_epoch='$end_date_epoch', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record updated: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $VMAIL_box=0; + ### Grab Server values from the database + $stmtA = "SELECT comments FROM vicidial_list where lead_id = '$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $XFER_exten = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + ### SEND CALL TO VOICEMAIL BOX ### + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $XFER_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $XFER_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + + } + +} ### end if pressed 1,2,3 + + + + + +else ### user pressed digit other than 1 or 2 or 3 +{ + +exit; +} + +$dbhA->close; + + + +exit; + + + + + + + + + + + +sub reminder_choice +{ +$digit=''; +undef $digit; +$interrupt_digit=''; +undef $interrupt_digit; + +# Hello, this is a courtesy call from ACME Industries reminding you that the deadline for the submission of orders for the June 5th batch delivery is tomorrow, March 10th: + # second audio file +# If you would like to leave a message for your agent please press 1. +# If you would like to have your agent call you back please press 2. + # third audio file +# Thank you, Goodbye + + +######### PLAY THE MESSAGE FILE THEN WAIT 2 SECONDS FOR DIGITS ############ +$interrupt_digit = $AGI->stream_file("$message_audio_file",'123'); + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} +$digits_being_entered=1; +$digit_loop_counter=0; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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++; + } + +$channel_status = $AGI->channel_status("$channel"); + if ($AGILOG) {$agi_string = "SSSSSSSSSS Channel Status: $channel_status"; &agi_output;} + + if ($channel_status == 6) + { + $stmtA = "UPDATE vicidial_log set status='MP' where uniqueid = '$uniqueid' and lead_id='$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: N|$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='MP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: N|$affected_rows|$CIDlead_id"; &agi_output;} + } + +while ($digit_loop_counter < 1) + { + $digit = chr($AGI->wait_for_digit('2000')); # wait 2 seconds for input or until digit pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=1; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) + { + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + return; + } + + + +######### PLAY THE OPTIONS FILE THEN WAIT 5 SECONDS FOR DIGITS ############ +$interrupt_digit = $AGI->stream_file("$options_audio_file",'123'); + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} +$digits_being_entered=1; +$digit_loop_counter=0; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('10000')); # wait 10 seconds for input or until digit pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=1; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) + { + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + return; + } +} + + + + +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++; + } +} + + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDADfixCXFER.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADfixCXFER.agi new file mode 100644 index 00000000..fe052ea2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADfixCXFER.agi @@ -0,0 +1,261 @@ +#!/usr/bin/perl +# +# agi-VDADfixCXFER.agi version 2.0.5 *DBI-version* +# +# runs when a Consultative transfer is released by the vicidial fronter as the +# call arrives on another channel so that the vicidial_live_agents record is +# updated to be accurate. +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL Consultative Xfer fix script: +# exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) +# exten => _010*010*010*015*8600XXX*.,1,AGI(agi-VDADfixCXFER.agi) +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG: +# 60809-1749 - First build +# 60817-1122 - Added output options check from database +# 70212-1252 - Fixed issue with Local/ channel transfers on same server +# + +$script = 'agi-VDADfixCXFER.agi'; + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} +} + +# 010*010*011*011* + +$extension =~ s/^\d\d\d\*\d\d\d\*\d\d\d\*\d\d\d\*//gi; + +@EXTEN = split(/\*/, $extension); + $conf_exten = $EXTEN[0]; + $lead_id = $EXTEN[1]; + $user = $EXTEN[2]; + $phone_code = $EXTEN[3]; + $phone_number = $EXTEN[4]; + $campaign_id = $EXTEN[5]; + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +if ($AGILOG) {$agi_string = "CXFERfix : $lead_id $user $channel $uniqueid"; &agi_output;} + + $CIDlead = sprintf("%010s", $lead_id); + $CIDlead = "C123412345$CIDlead"; + print "SET CALLERID $CIDlead\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $CIDlead"; &agi_output;} + +########## FIND AND UPDATE vicidial_live_agents ########## +$stmtA = "UPDATE vicidial_live_agents SET channel='$channel',call_server_ip='$VARserver_ip',uniqueid='$uniqueid' where user='$user' and lead_id='$lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_live_agents update: |$affected_rows|$lead_id|"; &agi_output;} + +########## INSERT NEW vicidial_auto_calls record ########## +$stmtA = "INSERT INTO vicidial_auto_calls SET channel='$channel',server_ip='$VARserver_ip',uniqueid='$uniqueid',campaign_id='$campaign_id',status='CLOSER',lead_id='$lead_id',phone_code='$phone_code',phone_number='$phone_number',call_time='$SQLdate',call_type='IN',callerid='$CIDlead';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_auto_calls insert: |$affected_rows|$lead_id|"; &agi_output;} + +$dbhA->disconnect(); + + +if ($AGILOG) {$agi_string = "exiting the CXFERfix app, transferring call to $conf_exten"; &agi_output;} +#print "SET CONTEXT $ext_context\n"; +# checkresult($result); +print "SET EXTENSION $conf_exten\n"; + checkresult($result); +print "SET PRIORITY 1\n"; + checkresult($result); + + + + +exit; + + + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDADinbound_NI_DNC_CIDlookup.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADinbound_NI_DNC_CIDlookup.agi new file mode 100644 index 00000000..867b82fb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADinbound_NI_DNC_CIDlookup.agi @@ -0,0 +1,445 @@ +#!/usr/bin/perl +# +# agi-VDADinbound_NI_DNC_CIDlookup.agi version 2.0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# play a message and take input to automatically change customer lead to NI or DNC. +# *** This version detects inbound callerID over PRI *** +# +# Flag Options: +# 1- default to insert into the vicidial_dnc table for DNC selections (Default=YES) +# 2- campaign to take dnc settings from(overrides option 1) +# +# ;inbound call from outbound CID callbacks from VICIDIAL calls: +#exten => 1234,1,Ringing ; call ringing +#exten => 1234,2,Wait(1) ; Wait 1 second for CID delivery from PRI +#exten => 1234,3,Answer ; Answer the line +#exten => 1234,4,AGI(agi-VDADinbound_NI_DNC_CIDlookup.agi,YES-----TESTCAMP) +#exten => 1234,5,Hangup +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60914-1051 - First draft +# 80909-0614 - Added optional field for campaign so that vicidial_campaign_dnc could be used +# + +$script = 'agi-VDADinbound_NI_DNC_CIDlookup.agi'; + +### number of seconds to wait until you drop a waiting call +$DROP_TIME = 360; + +### files to play for message of not interested or DNC and your request has been processed +$prompt_file = 'not_interested_or_dnc'; +$processed_file = 'request_has_been_processed'; +$goodbye_audio_file = 'US_reminder_goodbye'; + + +($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) {$hour = "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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $dnc_default = $ARGV_vars[0]; + $campaign_id = $ARGV_vars[1]; + } + +if (length($dnc_default) < 2) + {$dnc_default = 'YES';} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + + if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} + if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +&enter_pin_number; + +if ( (length($pin)<1) || ($pin =~ /9/) ) + {&enter_pin_number;} +if ( (length($pin)<1) || ($pin =~ /9/) ) + {&enter_pin_number;} +if ( (length($pin)<1) || ($pin =~ /9/) ) + {&enter_pin_number;} +if ( (length($pin)<1) || ($pin =~ /9/) ) + {&enter_pin_number;} + +if ($pin =~ /2/) # set the phone_number to NI + { + ### Check to see if the number is in the system ### + $stmtA= "SELECT count(*) from vicidial_list where phone_number='$phone_number';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $lead_in_system = "$aryA[0]"; + $sthA->finish(); + + ### update all records for the phone_number in vicidial_list to NI (Not Interested) + $stmtA = "UPDATE vicidial_list SET status='NI' where phone_number='$phone_number';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$affected_rows|$stmtA|"; &agi_output;} + } + $AGI->stream_file("$processed_file"); + } + +if ($pin =~ /3/) # set the phone_number to DNC + { + ### Check to see if the number is in the system ### + $stmtA= "SELECT count(*) from vicidial_list where phone_number='$phone_number';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $lead_in_system = "$aryA[0]"; + $sthA->finish(); + + ### update all records for the phone_number in vicidial_list to NI (Not Interested) + $stmtA = "UPDATE vicidial_list SET status='DNC' where phone_number='$phone_number';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$affected_rows|$stmtA|"; &agi_output;} + } + + if (length($campaign_id)>1) + { + ### Grab DNC settings from campaign + $stmtA = "SELECT use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id = '$campaign_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + $use_internal_dnc = "$aryA[0]"; + $use_campaign_dnc = "$aryA[1]"; + $sthA->finish(); + + if ($use_internal_dnc =~ /Y/) + { + ### add the number to the vicidial_dnc table + $stmtA = "INSERT INTO vicidial_dnc SET phone_number='$phone_number';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$affected_rows|$stmtA|"; &agi_output;} + } + if ($use_campaign_dnc =~ /Y/) + { + ### add the number to the vicidial_campaign_dnc table + $stmtA = "INSERT INTO vicidial_campaign_dnc SET phone_number='$phone_number',campaign_id='$campaign_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$affected_rows|$stmtA|"; &agi_output;} + } + } + else + { + if ($dnc_default =~ /YES/) + { + ### add the number to the vicidial_dnc table + $stmtA = "INSERT INTO vicidial_dnc SET phone_number='$phone_number';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$affected_rows|$stmtA|"; &agi_output;} + } + } + + $AGI->stream_file("$processed_file"); + } + +$dbhA->disconnect(); + + +$AGI->stream_file("$goodbye_audio_file"); + +exit; + + + + + + + + + + + + + + + +sub enter_pin_number +{ +# if you are not interested in this program press 2 +# if you would not like to be contacted by us again press 3 +# if you would like us to try to get in contact with you hangup + +$interrupt_digit=''; +undef $interrupt_digit; + +$interrupt_digit = $AGI->stream_file("$prompt_file",'239'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('30000')); # wait 30 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++; +# } +#while ( ($digit_loop_counter < 4) ) +# { +# $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed +# if ($digit =~ /\d/) +# { +# $totalDTMF = "$totalDTMF$digit"; +# if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); +# undef $digit; +# } +# else +# { +# $digit_loop_counter=4; +# } +# +# $digit_loop_counter++; +# } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} +} + + + + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDADlisten_DTMF.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADlisten_DTMF.agi new file mode 100644 index 00000000..8347dd98 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADlisten_DTMF.agi @@ -0,0 +1,293 @@ +#!/usr/bin/perl +# +# agi-VDADlisten_DTMF.agi version 2.0.5 *DBI-version* +# +# To be initiated by an agent so during a call. Agent will click a PIN NUMBER +# link on a web form webpage that will Originate a new call to this script +# +# This script plays a beep and waits for entry of 4 digits then inserts record +# +# ***** THIS SCRIPT ONLY WORKS WITH A CROSSOVER T1 CABLE FROM ONE T1 PORT ***** +# ***** TO ANOTHER T1 PORT WHETHER ON THE SAME SERVER OR DIFFERENT ONE ***** +# +# IN THE CAMPAIGN OR IN-GROUP NUMBER PRESET FIELD: +# AXFER83009 +# +# ON THE SERVER ORIGINATING THE CALL: +#;outbound DTMF VICIDIAL calls: +#exten => _983009.,1,AGI(call_log.agi,${EXTEN}) +#exten => _983009.,2,Dial(${TRUNKY}/${EXTEN:1},60) +#exten => _983009.,3,Hangup +# +# ON THE SERVER THAT HAS THIS SCRIPT: +#;inbound DTMF VICIDIAL calls: +#exten => _83009.,1,AGI(agi-VDADlisten_DTMF.agi,${EXTEN}) +#exten => _83009.,2,Hangup +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60206-1434 first build +# 60207-1205 - added database records entries/modifications +# 60207-1507 - added ability to send AMs to campaign-defined message to leave +# 60731-1536 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60817-1113 - added output options check from database +# 70806-1619 - added HeavyDTMF check and filter +# + +$script = 'agi-VDADlisten_DTMF.agi'; + +$heavyDTMFcheck = 1; # set to 1 to check for heavy DTMF double-tones + +### set defaults for testing +$referring_extension = '83009'; +$phone_number = '9999999999'; +$lead_id = '999999999'; +$campaign_id = 'TESTCAMP'; +$product_code = 'ABC'; +$user = '1234'; +$pin = '0'; + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use Time::HiRes qw(gettimeofday); +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + ### allow for internal transfer data string "83009*3125551212*10000123*TESTCAMP*ABC*1234*" + if ($extension =~ /^8300\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $phone_number = $EXT_vars[1]; # phone number + $lead_id = $EXT_vars[2]; # lead_id in vicidial_list + $campaign_id = $EXT_vars[3]; # campaign id + $product_code = $EXT_vars[4]; # product code + $user = $EXT_vars[5]; # vicidial_user that sent the call here + } +} + + if ($AGILOG) {$agi_string = "INBOUND DTMF CALL VDCL STARTED"; &agi_output;} + +&enter_pin_number; + +if (length($pin) < 4) {$AGI->stream_file('buzz');} +else {$AGI->stream_file('ding');} + +### insert a record into the vicidial_list_pins table +$stmtA = "INSERT INTO vicidial_list_pins (entry_time,phone_number,lead_id,campaign_id,product_code,user,digits) values('$SQLdate','$phone_number','$lead_id','$campaign_id','$product_code','$user','$pin');"; + +$affected_rows = $dbhA->do($stmtA); + +$insert_pin_id = $dbhA->{'mysql_insertid'}; + +if ($AGILOG) {$agi_string = "|$stmtA|$insert_pin_id|$affected_rows|"; &agi_output;} + +$dbhA->disconnect(); + +exit; + + + + + + + + +sub enter_pin_number +{ +$lastdigit=''; +$lastdigittime=''; + +$AGI->stream_file('beep'); + +while ( ($digit_loop_counter < 4) ) + { + $digit = chr($AGI->wait_for_digit('30000')); # wait 30 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + # get seconds and microseconds since the epoch + ($s, $usec) = gettimeofday(); + $Susec = sprintf("%06s", $usec); + $utime = "$s$Susec"; + + if (length($lastdigittime)<1) {$lastdigittime = $utime; $lastdigit = 99; $difftime = 0;} + else + { + $difftime = ($utime - $lastdigittime); + } + print STDERR "$s$Susec - $digit - $lastdigittime - $difftime\n"; + if ( ($difftime < 200000) && ($digit == $lastdigit) && ($heavyDTMFcheck>0) ) + { + print STDERR "HEAVY DTMF DETECTED AND IGNORED: $digit - $lastdigit - $difftime\n"; + $digit_loop_counter = ($digit_loop_counter - 1); + } + else + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + # $AGI->say_digits("$digit"); + } + $lastdigittime = $utime; $lastdigit = $digit; + undef $digit; + } + else + { + $digit_loop_counter=4; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) + { + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + } +# $AGI->say_digits("$pin"); +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDADselective_CID.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADselective_CID.agi new file mode 100644 index 00000000..5fe6aa1d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADselective_CID.agi @@ -0,0 +1,175 @@ +#!/usr/bin/perl +# +# agi-VDADselective_CID.agi version 0.1 *NO DB Connection* +# +# Runs before a call is placed outbound to filter outgoing callerIDnumber +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;outbound VICIDIAL calls: +#exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN}) +#exten => _91NXXNXXXXXX,2,AGI(agi-VDADselective_CID.agi,${EXTEN}) +#exten => _91NXXNXXXXXX,3,Dial(${TRUNKX}/${EXTEN:1},55,tTo) +#exten => _91NXXNXXXXXX,4,Hangup +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60918-1042 - First build +# 71012-1239 - changed method for getting areacode +# + +$script = 'agi-VDADselective_CID.agi'; + +$AGILOG=0; +$FD=0; # force debug for testing + +# CLEAR AREA CODE LISTINGS: +# Florida: 239|305|321|352|386|407|561|689|727|754|772|786|813|836|850|861|863|904|941|954 + +$clear_area_codes = '239|305|321|352|386|407|561|689|727|754|772|786|813|836|850|861|863|904|941|954'; + + +($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) {$hour = "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"; + +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + + if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} + if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} +} + +$areacode = substr($extension, -10, 3); + + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + + +if ($areacode !~ /$clear_area_codes/) +{ + if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $calleridname =~ s/^\"//gi; + $calleridname =~ s/\".*$//gi; + } + + ### set the callerid to the ACQS value(calleridname) + ## use these two lines for Asterisk 1.2 tree + $newcallerid = "\"$calleridname <0000000000>\""; + $AGI->set_callerid($newcallerid); + ## use these two lines for Asterisk 1.0 tree +# print "SET CALLERID \"$calleridname\" <0000000000>\n"; +# print "SET CALLERIDNAME \"$calleridname\"\n"; + + print STDERR "Setting CID \"$newcallerid\"\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: \"$calleridname\" \<0000000000\>"; &agi_output;} + + if ($FD > 0) {print STDERR "callerID changed: \"$calleridname\" \<0000000000\> |$areacode|\n";} +} +else +{ + if ($FD > 0) {print STDERR "callerID NOT changed: \"$calleridname\" <$callerid> |$areacode|\n";} + +} +if ($AGILOG) {$agi_string = "AGI Variables: |$extension|$areacode|$callerid|$calleridname|"; &agi_output;} + +exit; + + + + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-VDADselective_CID_hangup.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADselective_CID_hangup.agi new file mode 100644 index 00000000..5f1d2417 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-VDADselective_CID_hangup.agi @@ -0,0 +1,226 @@ +#!/usr/bin/perl +# +# agi-VDADselective_CID_hangup.agi version 2.0.5 *NO DB Connection* +# +# Will hangup a call if it is not within the specified area codes +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;outbound VICIDIAL calls: +#exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN}) +#exten => 8352,2,Playback(85100001) +#exten => 8352,3,Hangup +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60918-1151 - First build +# + +$script = 'agi-VDADselective_CID_hangup.agi'; + +$AGILOG=1; + +# CLEAR AREA CODE LISTINGS: +# Florida: 239|305|321|352|386|407|561|689|727|754|772|786|813|836|850|861|863|904|941|954 + +$clear_area_codes = '239|305|321|352|386|407|561|689|727|754|772|786|813|836|850|861|863|904|941|954'; + + +($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) {$hour = "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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + + if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} +} + +$CIDlead_id = $calleridname; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +$stmtA = "SELECT phone_number FROM vicidial_list where lead_id = '$CIDlead_id' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $phone_number = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +$areacode = $phone_number; +if (length($areacode) > 10) + { + $areacode =~ s/^91|^991|^981|^971|^961|^951//gi; + $areacode =~ s/^1//gi; + } +$areacode =~ s/\d\d\d\d\d\d\d$//gi; + + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + + +if ($areacode !~ /$clear_area_codes/) +{ + print "SET HANGUP $channel\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "channel Hungup: $channel"; &agi_output;} + print "SET EXTENSION $extension\n"; + checkresult($result); + print "SET PRIORITY 3\n"; + checkresult($result); + +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$extension|$areacode|$phone_number|$callerid|$calleridname|$channel|"; &agi_output;} + +exit; + + + + + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-dtmf.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-dtmf.agi new file mode 100644 index 00000000..4311aa9e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-dtmf.agi @@ -0,0 +1,140 @@ +#!/usr/bin/perl +# +# agi-dtmf.agi - script for playing DTMF tones received as the callerid field +# +# DTMF sound files must be in /var/lib/asterisk/sounds for this to work +# +# Accepted values are: 1 2 3 4 5 6 7 8 9 0 # * , +# comma means pause for 1 second +# +# exten => 8500998,1,Answer +# exten => 8500998,2,Playback(silence) +# exten => 8500998,3,AGI(agi-dtmf.agi) +#; exten => 8500998,3,AGI(agi-dtmf.agi,signalonly) ; optional signal only DTMF +# exten => 8500998,4,Hangup +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 90312-1534 - Added signalonly option +# + +$signalonly=0; +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($ARGV[0] =~ /signalonly/) + {$signalonly=1;} + } + +$|=1; +while() + { + chomp; + last unless length($_); + if (/^agi_(\w+)\:\s+(.*)$/) + {$AGI{$1} = $2;} + if (/^agi_callerid\:\s+(.*)$/) {$caller_id = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$caller_idname = $1;} + } + +print STDERR "AGI Environment Dump:\n"; +foreach $i (sort keys %AGI) { + print STDERR " -- $i = $AGI{$i}\n"; +} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second + +use Asterisk::AGI; +my $agi = new Asterisk::AGI; + +my $clid = $agi->get_variable('CALLERID'); +my $clidname = $agi->get_variable('CALLERIDNAME'); + +print STDERR "X. |$clid|$caller_id|$clidname|\n"; + + +### sleep for 5 tenths of a second +usleep(1*500*1000); + +print "STREAM FILE silence \"\"\n"; + +$caller_id = "$caller_id$caller_idname"; + +@CALLERID_DIGITS = split(//, $caller_id); + +foreach (@CALLERID_DIGITS) +{ + +if ($CALLERID_DIGITS[$g] =~ /\d/) + { + if ($signalonly > 0) + {print "EXEC SendDTMF $CALLERID_DIGITS[$g] \"\"\n";} + else + {print "STREAM FILE $CALLERID_DIGITS[$g] \"\"\n";} + print STDERR "DIGIT: $CALLERID_DIGITS[$g]\n"; + } +else + { + if ($CALLERID_DIGITS[$g] =~ /\#/) + { + if ($signalonly > 0) + {print "EXEC SendDTMF \# \"\"\n";} + else + {print "STREAM FILE hash \"\"\n";} + } + if ($CALLERID_DIGITS[$g] =~ /\*/) + { + if ($signalonly > 0) + {print "EXEC SendDTMF \* \"\"\n";} + else + {print "STREAM FILE star \"\"\n";} + } + if ($CALLERID_DIGITS[$g] =~ /\,/) + {sleep(1);} + print STDERR "NON-DIGIT: $CALLERID_DIGITS[$g]\n"; + } +$g++; + +### sleep for 20 hundredths of a second +usleep(1*150*1000); + +print "STREAM FILE silence \"\"\n"; + +### sleep for 10 hundredths of a second +usleep(1*100*1000); +} + +print "STREAM FILE silence \"\"\n"; +$result = ; +checkresult($result); + +exit; + +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++; + } +} + diff --git a/agc_2-X/branches/agc_2.2.0/agi/agi-record_prompts.agi b/agc_2-X/branches/agc_2.2.0/agi/agi-record_prompts.agi new file mode 100644 index 00000000..f973e473 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/agi-record_prompts.agi @@ -0,0 +1,415 @@ +#!/usr/bin/perl +# +# agi-record_prompts.agi version 2.2.0-4 +# +# for recording prompts to GSM file over the phone +# Saves recordings with 8-digit filenames to be played when exten is dialed +# +# ; prompts for recording AGI script, ID is 4321 +# ; first variable is format (gsm/wav) +# ; second variable is timeout in milliseconds (default is 360000 [6 minutes]) +# exten => 8167,1,Answer +# exten => 8167,2,AGI(agi-record_prompts.agi,wav-----360000) +# exten => 8167,3,Hangup +# exten => 8168,1,Answer +# exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----360000) +# 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 +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 71226-1303 - Added option to change format GSM/WAV and timeout through flags +# 90519-1019 - Changed formatting to conform to other scripts +# + +$US='_'; + +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $format = $ARGV_vars[0]; + $timeout = $ARGV_vars[1]; + } + +$|=1; +while() + { + chomp; + last unless length($_); + if ($V) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + } + +if ($format =~ /WAV/i) {$format = 'wav';} +else {$format = 'gsm';} + +if ($timeout < 1) {$timeout = 360000;} # default is 6 minutes + +$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 = ; + 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", "$format", '123456789*#', "$timeout", 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 + { + # nothing + } + + +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) {$hour = "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++; + } + } diff --git a/agc_2-X/branches/agc_2.2.0/agi/call_inbound.agi b/agc_2-X/branches/agc_2.2.0/agi/call_inbound.agi new file mode 100644 index 00000000..7a61cab9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/call_inbound.agi @@ -0,0 +1,292 @@ +#!/usr/bin/perl +# +# call_inbound.agi version 2.0.5 *DBI-version* +# +# runs at the beginning and ending of every inbound call received +# +# You need to put lines similar to those below in your extensions.conf file: +# +# parameters for call_inbound.agi (7 fields separated by five dashes "-----"): +# 1. the extension of the phone to ring as defined in the asterisk.phones table +# 2. the phone number that was called, for the live_inbound/_log entry +# 3. a text description of the number that was called in +# 4-7. optional fields, they are also passed as fields in the GUI to web browser +# +# ;inbound calls: +#exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) +# +# +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60731-1435 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60817-1102 - added output options check from database +# + +$script = 'call_inbound.agi'; + +$US='_'; +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$Y = substr($year, 0, 1); +$mon++; +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +if ($hour < 10) {$hour = "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"; +$filedate = "$US$Y$mon$mday$hour$min$sec$US"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $phone_ext = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $comment_a = $ARGV_vars[2]; + $comment_b = $ARGV_vars[3]; + $comment_c = $ARGV_vars[4]; + $comment_d = $ARGV_vars[5]; + $comment_e = $ARGV_vars[6]; + + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( $calleridname =~ /\"/) {$calleridname =~ s/\"//gi;} + if ( (length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) ) + {$callerid = $calleridname;} + + ### allow for ANI being sent with the DNIS "*3125551212*9999*" + if ($extension =~ /^\*\d\d\d\d\d\d\d\d\d\d\*/) + { + $callerid = $extension; + $callerid =~ s/\*\d\d\d\d\*$//gi; + $callerid =~ s/\*\d\d\d\d$//gi; + $callerid =~ s/^\*//gi; + $extension =~ s/^\*\d\d\d\d\d\d\d\d\d\d\*//gi; + $extension =~ s/\*$//gi; + + ### set the callerid if sent with DNIS + print "SET CALLERID $callerid\n"; + checkresult($result); + } +} + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + + $callerid = "\"$calleridname\" <$callerid>"; + +if ($extension =~ /h/i) {$stage = 'END';} +else {$stage = 'START';} + +### call start stage +if ($stage =~ /START/) + { + + if ($AGILOG) {$agi_string = "+++++ CALL INBOUND START : |$now_date|"; &agi_output;} + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + + $stmtA = "INSERT INTO live_inbound (uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e) values('$unique_id','$channel','$VARserver_ip','$callerid','$extension','$phone_ext','$now_date','$inbound_number','$comment_a','$comment_b','$comment_c','$comment_d','$comment_e')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + $stmtA = "INSERT INTO live_inbound_log (uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e) values('$unique_id','$channel','$VARserver_ip','$callerid','$extension','$phone_ext','$now_date','$inbound_number','$comment_a','$comment_b','$comment_c','$comment_d','$comment_e')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + $dbhA->disconnect(); + } + + +### call end stage +else + { + if ($AGILOG) {$agi_string = "CALL INBOUND HUNG UP; deleting live_inbound record for $unique_id"; &agi_output;} + + $stmtA = "DELETE from live_inbound where uniqueid='$unique_id' and server_ip='$VARserver_ip'"; + $affected_rows = $dbhA->do($stmtA); + + $dbhA->disconnect(); + + if ($AGILOG) {$agi_string = "+++++ CALL INBOUND HUNGUP: |$unique_id|$affected_rows|"; &agi_output;} + } + +exit; + + + + +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++; + } +} + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/cepstral_generate.pl b/agc_2-X/branches/agc_2.2.0/agi/cepstral_generate.pl new file mode 100644 index 00000000..fdedc195 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/cepstral_generate.pl @@ -0,0 +1,339 @@ +#!/usr/bin/perl +# +# cepstral_generate.pl version 2.2.0 +# +# Text-To-Speech files will be cached for later use. +# +# Call this script like this: +# /var/lib/asterisk/agi-bin/cepstral_generate.pl --debug --voice=Allison-8kHz --dialog=Hello\ There +# +# Copyright (C) 2009 Matt Florell, Mike Cargile LICENSE: AGPLv2 +# +# CHANGES: +# 90406-1058 - First Build +# 90410-1458 - Fixed generate bug, added conf path variables +# + +# Cepstral paths +$PATHvoices = '/tmp/swift_voices'; +$PATHswift = '/opt/swift/bin/swift'; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + $i++; + } + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [-t] = test\n"; + print " [-debug] = verbose debug messages\n"; + print " [-debugX] = Extra-verbose debug messages\n"; + print " [-voice=Allison-8kHz] = Cepstral voice to use(Allison-8kHz is default)\n\n"; + print " [-dialog=Hello] = Message to generate\n\n"; + print " (This must be the LAST option)\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + if ($args =~ /-voice=/i) + { + @data_in = split(/-voice=/,$args); + $voice = $data_in[1]; + $voice =~ s/ .*//gi; + if ($DBX > 0) {print "\n----- VOICE: $voice -----\n\n";} + } + else + {$voice = 'Allison-8kHz';} + if ($args =~ /-dialog=/i) + { + @data_in = split(/-dialog=/,$args); + $dialog = $data_in[1]; + $dialog =~ s/\n|\r|\l|\t//gi; + if ($DBX > 0) {print "\n----- DIALOG: $dialog -----\n\n";} + } + else + {$dialog = '';} + } + } +else + { + # print "no command line options set\n"; + } +### end parsing run-time options ### + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$SQL_date = "$year-$mon-$mday $hour:$min:$sec"; + +use Digest::MD5 qw(md5_hex); +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +#my @voice = &get_cep_voice(2); + +if (length($dialog) > 1) + { + $enc = md5_hex("$dialog-$voice"); # the hash + $enc_ftl = substr($enc, 0, 2); # first letter of hash + $enc_file = "tts/" . $enc_ftl . "/tts-" . $enc . ".wav"; + + if ($DB > 0) + {print "$SQL_date - Creating $dialog - $voice file: $enc_file\n";} +# &say_cepstral("$dialog","$voice"); + &gen_cepstral("$dialog","$voice"); + } + +exit; + +# EXAMPLES +#&say_cepstral("Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this. But, in a larger sense, we can not dedicate -- we can not consecrate -- we can not hallow -- this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us -- that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion -- that we here highly resolve that these dead shall not have died in vain -- that this nation, under God, shall have a new birth of freedom -- and that government of the people, by the people, for the people, shall not perish from the earth.",$voice[0]); +#&say_cepstral("Welcome to the VEECHEE DIAL open source call center suite",$voice[0]); + +# function to get a voice that is currently installed +# takes and integer +# the integer needs to be greater than 0 +# returns an array with the following info in this order +# Voice +# Version +# Lic? +# Gender +# Age +# Language +# Sample Rate +sub get_cep_voice { + my $number = $_[0]; + if ($number <= 0) { + return 0; # failure + } + + my $cepstral_app = "$PATHswift"; + + my $command = $cepstral_app.' --voices | tail +8 | tr -d " " > '.$PATHvoices; + + system( $command ); # Ask swift for the voices + + my @voice; + my @voice_lines; + my $voice_count; + + open(VFILE,"$PATHvoices"); # read in the file with the voices + @voice_lines = ; + close(VFILE); + #unlink("/tmp/swift_vioces"); # delete the file with the voices + + # find the correct voice + foreach my $voice_line(@voice_lines) { + chomp($voice_line); + $voice_count++; + if ($voice_count == $number) { + @voice = split(/\|/,$voice_line); + } + } + + # return it + return @voice; +} + +# Function to return the number of voices that are installed +# Returns an int +sub get_cep_num_voices { + my $cepstral_app = "$PATHswift"; + + my $command = $cepstral_app.' --voices | tail +8 | tr -d " " > '.$PATHvoices; + + system( $command ); # Ask swift for the voices + + my @voice_lines; + my $number = 0; + + # read in the file with the voices + open(VFILE,"$PATHvoices"); + @voice_lines = ; + close(VFILE); + #unlink("/tmp/swift_vioces"); # delete it + + foreach (@voice_lines) { + $number++; + } + + return $number; +} + +# Function to pregenerate TTS file +# First option is the text +# Second option is the voice +sub gen_cepstral { + my $text = $_[0]; # the text to play + my $voice = $_[1]; # voice to use + + # hash of the text + my $hash = md5_hex("$text-$voice"); # the hash + my $hash_ftl = substr($hash, 0, 2); # first two letters of hash + + # Directories that hold everything + my $astsounddir = $PATHsounds; # asterisk sound directory + my $ttssounddir = $astsounddir."/tts"; + my $astsubdir = "tts/".$hash_ftl; # sub directory that holds the file + my $sounddir = $astsounddir . "/" . $astsubdir; # full path to the directory + + # Wave File to play + my $wavefile = "tts-".$hash; # wave file without the .wav at the end + my $wavepath = $sounddir."/".$wavefile.".wav"; # full path to the wavefile + my $astwavpath = $astsubdir."/".$wavefile; # asterisk path to .wav file without .wav + + # text file of words to say + my $textfile = "tts-text-".$hash.".txt"; # file to hold the words to say + my $textpath = $sounddir."/".$textfile; # full path to the text file + + # generate the tts + if (!(&real_gen_cepstral($text, $voice, $ttssounddir, $sounddir, $wavepath, $textpath))) { + #TODO print an error message somewhere + return 0; # failure + } + + return 1; # success +} + +# Function to play TTS file +# Will generate TTS file if it is not pregenerated +# First option is the text +# Second option is the voice +sub say_cepstral { + my $text = $_[0]; # the text to play + my $voice = $_[1]; # voice to use + + my %input = $AGI->ReadParse(); + + # hash of the text + my $hash = md5_hex("$text-$voice"); # the hash + my $hash_ftl = substr($hash, 0, 2); # first letter of hash + + # Directories that hold everything + my $astsounddir = $PATHsounds; # asterisk sound directory + my $ttssounddir = $astsounddir."/tts"; + my $astsubdir = "tts/".$hash_ftl; # sub directory that holds the file + my $sounddir = $astsounddir."/".$astsubdir; # full path to the directory + + # Wave File to play + my $wavefile = "tts-".$hash; # wave file without the .wav at the end + my $wavepath = $sounddir."/".$wavefile.".wav"; # full path to the wavefile + my $astwavpath = $astsubdir."/".$wavefile; # asterisk path to .wav file without .wav + + # text file of words to say + my $textfile = "tts-text-".$hash.".txt"; # file to hold the words to say + my $textpath = $sounddir."/".$textfile; # full path to the text file + + # generate the tts + if (!(&real_gen_cepstral($text, $voice, $ttssounddir, $sounddir, $wavepath, $textpath))) { + #TODO print an error message somewhere + return 0; # failure + } + # wait up to a second + # for the sound file to appear + # and the textfile to be deleted + # This is for concurrency issues + my $i = 0; + while ( ($i < 100) && !(-f $wavepath) && (-f $textpath) ) { + usleep(10000); + $i++; + } + + $AGI->stream_file($astwavpath); # play the tts + + return 1; # success +} + +# This is a helper function do not call it directly +sub real_gen_cepstral { + my $text = $_[0]; + my $voice = $_[1]; + my $ttssounddir = $_[2]; + my $sounddir = $_[3]; + my $wavepath = $_[4]; + my $textpath = $_[5]; + + + # Cepstral commnad and options + my $cepstral_app = "$PATHswift"; # the executable + my $cepstral_opt = "-p speech/rate=140"; # the command line options + + + # Make sure the tts directory is there + if (!(-d $ttssounddir)) { + if (!(mkdir($ttssounddir))) { + #TODO print an error message somewhere + return 0; # failure - cannot make the tts directory + } + } + + # Make sure the sub directory is there + if (!(-d $sounddir)) { + if (!(mkdir($sounddir))) { + #TODO print an error message somewhere + return 0; # failure - cannot make the sub directory + } + } + + # check if both the wav file and the text file do not exists + if (!( -f $wavepath ) && !( -f $textpath )) { + # write to the text file whats to be said + open(fileOUT, ">$textpath"); + print fileOUT "$text"; + close(fileOUT); + + # build the command to call cepstral and give it the text file to generate + my $command=$cepstral_app." ".$cepstral_opt." -n ".$voice." -o ".$wavepath." -f ".$textpath." > /dev/null"; + + # execute the command + system($command); + + # delete the text file + unlink($textpath); + } + + return 1; # success +} diff --git a/agc_2-X/branches/agc_2.2.0/agi/debug_speak.agi b/agc_2-X/branches/agc_2.2.0/agi/debug_speak.agi new file mode 100644 index 00000000..bd481022 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/debug_speak.agi @@ -0,0 +1,123 @@ +#!/usr/bin/perl +# +# debug_speak.agi version 2.0.5 +# +# runs during any extension and speaks the extension sent to it while +# printing the extension as well as lots of info about the call to STDERR +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;inbound errors with speaking of extension: +#exten => _XXXX,1,AGI(debug_speak.agi,${EXTEN}) +#exten => _XXXX,3,Hangup +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# + +$V = 1; # set to 1 for verbose mode +$CLIOUT = 1; # set to 1 for printing 1 line to STDERR +$SPEAK = 1; # set to 1 for saying invalid digits + +($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) {$hour = "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"; + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ +if ($CLIOUT) {print STDERR "Perl Environment Dump:\n";} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($CLIOUT) {print STDERR "$i|$ARGV[$i]|\n";} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +if ($V) {print "no command line options set\n";} +} + +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$|=1; +while() { + chomp; + last unless length($_); + if ($V) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + + if ($V) + { + + if ($V) {print STDERR "AGI Environment Dump:\n";} + foreach $i (sort keys %AGI) { + if ($V) {print STDERR " -- $i = $AGI{$i}\n";} + } + } + +if ($CLIOUT) {print STDERR "****** DEBUG: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|\n";} + +if ($SPEAK) + { + $AGI->stream_file('beep'); + sleep(1); + $AGI->say_digits("$extension"); + } + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/agi/invalid_speak.agi b/agc_2-X/branches/agc_2.2.0/agi/invalid_speak.agi new file mode 100644 index 00000000..f3f07a2f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/invalid_speak.agi @@ -0,0 +1,139 @@ +#!/usr/bin/perl +# +# invalid_speak.agi version 2.0.5 +# +# runs during an invalid extension and speaks the extension sent to it while printing to STDERR +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;inbound errors with speaking of extension: +#exten => _XXXX,1,AGI(invalid_speak.agi,${EXTEN}) +#exten => _XXXX,2,Playback(invalid) +#exten => _XXXX,3,Hangup +# +#exten => _*XXXXXXXXXX*XXXX,1,AGI(invalid_speak.agi,${EXTEN}) +#exten => _*XXXXXXXXXX*XXXX,2,Playback(invalid) +#exten => _*XXXXXXXXXX*XXXX,3,Hangup +# +#exten => _*XXXXXXXXXX*XXXX*,1,AGI(invalid_speak.agi,${EXTEN}) +#exten => _*XXXXXXXXXX*XXXX*,2,Playback(invalid) +#exten => _*XXXXXXXXXX*XXXX*,3,Hangup +# +#exten => _**XXXX,1,AGI(invalid_speak.agi,${EXTEN}) +#exten => _**XXXX,2,Playback(invalid) +#exten => _**XXXX,3,Hangup +# +#exten => _**XXXX*,1,AGI(invalid_speak.agi,${EXTEN}) +#exten => _**XXXX*,2,Playback(invalid) +#exten => _**XXXX*,3,Hangup +# +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# + +$V = 0; # set to 1 for verbose mode +$CLIOUT = 1; # set to 1 for printing 1 line to STDERR +$SPEAK = 1; # set to 1 for saying invalid digits + +($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) {$hour = "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"; + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ +if ($V) {print STDERR "Perl Environment Dump:\n";} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($V) {print STDERR "$i|$ARGV[$i]|\n";} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +if ($V) {print "no command line options set\n";} +} + +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$|=1; +while() { + chomp; + last unless length($_); + if ($V) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} +} + + if ($V) + { + + if ($V) {print STDERR "AGI Environment Dump:\n";} + foreach $i (sort keys %AGI) { + if ($V) {print STDERR " -- $i = $AGI{$i}\n";} + } + } + +if ($CLIOUT) {print STDERR "****** INVALID EXTENSION: |$unique_id|$channel|$extension|$type|$callerid|\n";} + +if ($SPEAK) + { + $AGI->stream_file('beep'); + sleep(1); + $AGI->say_digits("$extension"); + } + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/agi/park_CID.agi b/agc_2-X/branches/agc_2.2.0/agi/park_CID.agi new file mode 100644 index 00000000..7dd0a33d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/agi/park_CID.agi @@ -0,0 +1,230 @@ +#!/usr/bin/perl +# +# park_CID.agi version 2.2.0 *DBI-version* +# +# runs before the park extension to populate the parked_channels entry with the channel's callerid +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;outbound dialing: +# exten => 8301,1,Answer +# exten => 8301,2,AGI(park_CID.agi) +# exten => 8301,3,Playback(park) +# exten => 8301,4,Hangup +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60731-1423 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60815-1256 - added output options check from database +# 90909-0922 - Fixed calleridname issue +# + +$script = 'park_CID.agi'; + +($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) {$hour = "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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + if ($args =~ />| |\"/i) + { + @CID = split(/-----/, $args); + $fullCID=1; + $callerid = $CID[2]; + $calleridname = $CID[3]; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (!$fullCID) # if no fullCID sent + { + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( $calleridname =~ /\"/) {$calleridname =~ s/\"//gi;} + if ( (!$callerid) or ($callerid =~ /unknown/) or ( ($calleridname =~ /\d\d\d\d\d\d\d\d\d/) && (length($calleridname) > 16) ) ) + {$callerid = $calleridname;} + + ### allow for ANI being sent with the DNIS "*3125551212*9999*" + if ($extension =~ /^\*\d\d\d\d\d\d\d\d\d\d\*/) + { + $callerid = $extension; + $callerid =~ s/\*\d\d\d\d\*$//gi; + $callerid =~ s/^\*//gi; + $extension =~ s/^\*\d\d\d\d\d\d\d\d\d\d\*//gi; + $extension =~ s/\*$//gi; + } + $calleridname = $callerid; + } +} + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + +if ($AGILOG) {$agi_string = "CALL BEING PARKED"; &agi_output;} + + +$stmtA = "UPDATE parked_channels set channel_group='$callerid' where server_ip='$VARserver_ip' and channel='$channel';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- Park record updated: |$affected_rows| |$callerid|$channel|$VARserver_ip"; &agi_output;} + +$dbhA->disconnect(); + + +exit; + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_adjust_GMTnow_on_leads.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_adjust_GMTnow_on_leads.pl new file mode 100644 index 00000000..11ab0a21 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_adjust_GMTnow_on_leads.pl @@ -0,0 +1,1507 @@ +#!/usr/bin/perl + +# ADMIN_adjust_GMTnow_on_leads.pl verison 2.2.0 +# +# program goes throught the vicidial_list table and adjusts the gmt_offset_now +# field to change it to today's offset if needed because of Daylight Saving Time +# +# run every time you load leads into the vicidial_list table +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 50810-1540 - Added database server variable definitions lookup +# 60615-1717 - Added definition GMT lookup from database not flat text file +# 60717-1045 - Changed to DBI by Marin Blu +# 60717-1531 - Changed to use /etc/astguiclient.conf for configuration +# 61108-1320 - Added new DST schemes for USA/Canada change and changes in other countries +# 61110-1204 - Added new DST scheme for Brazil +# 61128-1034 - Added postal code GMT lookup option +# 61219-1106 - Fixed updating for NULL gmt_offset records +# 70823-1633 - Added ability to restrict by list_id +# 80917-2202 - Added FSO-FSA for Eastern Australia (not active) +# Added LSS-FSA for New Zealand (not active) +# 90129-1114 - Added NANPA prefix lookup option +# 90401-1327 - Fixed quiet flag function +# 91129-2155 - Replaced SELECT STAR queries with field lists, formatting fixes +# + +$MT[0]=''; +$q=0; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debugging messages\n"; + print " [--debugX] = Super debugging messages\n"; + print " [--postal-code-gmt] = Attempt postal codes lookup for timezones\n"; + print " [--nanpa-prefix-gmt] = Attempt nanpa prefix lookup for timezones\n"; + print " [--singlelistid=XXX] = Only lookup and alter leads in one list_id\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /-q/i) + { + $q=1; + } + if ($args =~ /-t|--test/i) + { + $T=1; $TEST=1; + if ($q < 1) {print "\n-----TESTING -----\n\n";} + } + if ($args =~ /--debug/i) + { + $DB=1; + print "\n-----DEBUGGING -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + if ($args =~ /--postal-code-gmt/i) + { + $searchPOST=1; + if ($q < 1) {print "\n----- DO POSTAL CODE LOOKUP -----\n\n";} + } + if ($args =~ /--nanpa-prefix-gmt/i) + { + $searchNANPA=1; + if ($q < 1) {print "\n----- DO NANPA PREFIX LOOKUP -----\n\n";} + } + if ($args =~ /-singlelistid=/i) + { + @data_in = split(/-singlelistid=/,$args); + $singlelistid = $data_in[1]; + if ($q < 1) {print "\n----- SINGLE LISTID OVERRIDE: $singlelistid -----\n\n";} + } + else + {$singlelistid = '';} + + } + } +else + { + print "no command line options set\n"; + } + +if ($DB) {print "STARTING TIME ZONE DAYLIGHT SAVING TIME CALCULATION SCRIPT\n\n\n\n";} + +### end parsing run-time options ### + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$secX = time(); +# $secX = '1079989363'; # epoch for March 22, 2993 +# $secX = '1097989363'; # epoch for October 17, 2004 + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX); +$mon++; +$year = ($year + 1900); +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_countY=0; +while ($sthArows > $rec_countY) + { + @aryA = $sthA->fetchrow_array; + $DBtelnet_host = "$aryA[0]"; + $DBtelnet_port = "$aryA[1]"; + $DBASTmgrUSERNAME = "$aryA[2]"; + $DBASTmgrSECRET = "$aryA[3]"; + $DBASTmgrUSERNAMEupdate = "$aryA[4]"; + $DBASTmgrUSERNAMElisten = "$aryA[5]"; + $DBASTmgrUSERNAMEsend = "$aryA[6]"; + $DBmax_vicidial_trunks = "$aryA[7]"; + $DBanswer_transfer_agent= "$aryA[8]"; + $DBSERVER_GMT = "$aryA[9]"; + $DBext_context = "$aryA[10]"; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + $rec_countY++; + } +$sthA->finish(); + +$LOCAL_GMT_OFF = $SERVER_GMT; +$LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + +if (length($singlelistid)> 0) {$listSQL = "where list_id='$singlelistid'"; $XlistSQL=" and list_id='$singlelistid' ";} +else {$listSQL = ''; $XlistSQL='';} +$stmtA = "select distinct phone_code from vicidial_list $listSQL;"; +if($DBX){print STDERR "\n|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_countY=0; +@phone_codes=@MT; +$phone_codes_list='|'; + +while ($sthArows > $rec_countY) + { + @aryA = $sthA->fetchrow_array; + + $phone_codes[$rec_countY] = $aryA[0]; + $phone_codes_ORIG[$rec_countY] = $aryA[0]; + $phone_codes[$rec_countY] =~ s/011|0011| |\t|\r|\n//gi; + + # if ( ($phone_codes_list !~ /\|$phone_codes[$rec_countY]\|/) && (length($phone_codes[$rec_countY]) > 0) ) + # { + # $phone_codes_list .= "$phone_codes[$rec_countY]|"; + # } + + if ($DBX) {print "|",$aryA[0],"|","\n";} + $rec_countY++; + } +$sthA->finish(); +if ($DB) {print " - Unique Country dial codes found: $rec_countY\n";} + + +##### Put all country/area code records into an array for speed +$stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes;"; +if($DBX){print STDERR "\n|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_countZ=0; +@codefile=@MT; +while ($sthArows > $rec_countZ) + { + @aryA = $sthA->fetchrow_array; + $codefile[$rec_countZ] = "$aryA[0]\t$aryA[1]\t$aryA[2]\t$aryA[3]\t$aryA[4]\t$aryA[5]\t$aryA[6]\t$aryA[7]\n"; + $rec_countZ++; + } + +if ($searchPOST > 0) + { + ##### Put all postal code records into an array for speed + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countT=0; + @postalfile=@MT; + while ($sthArows > $rec_countT) + { + @aryA = $sthA->fetchrow_array; + $postalfile[$rec_countT] = "$aryA[0]\t$aryA[1]\t$aryA[2]\t$aryA[3]\t$aryA[4]\t$aryA[5]\t$aryA[6]"; + $rec_countT++; + } + $sthA->finish(); + if ($DB) {print " - GMT postal codes records: $rec_countT\n";} + } + +if ($searchNANPA > 0) + { + ##### Put all nanpa prefix records into an array for speed + $stmtA = "select areacode,prefix,GMT_offset,DST from vicidial_nanpa_prefix_codes;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countN=0; + @nanpafile=@MT; + while ($sthArows > $rec_countN) + { + if ($aryA[3] =~ /Y/) {$DST_method = 'SSM-FSN';} + else {$DST_method = '';} + @aryA = $sthA->fetchrow_array; + $nanpafile[$rec_countN] = "$aryA[0]\t$aryA[1]\t$aryA[2]\t$DST_method"; + $rec_countN++; + } + $sthA->finish(); + if ($DB) {print " - NANPA prefix records: $rec_countN\n";} + } + +$ep=0; $ei=0; $ee=0; +$d=0; +$TOTALpostal_updated_count=0; +$TOTALarea_updated_count=0; +$TOTALnanpa_updated_count=0; + +foreach (@phone_codes) + { + $match_code = $phone_codes[$d]; + $match_code_ORIG = $phone_codes[$d]; + + if ($DB) {print "\nRUNNING LOOP FOR COUNTRY CODE: $match_code\n";} + + ##### BEGIN RUN LOOP FOR EACH COUNTRY CODE/AREA CODE RECORD THAT IS INSIDE THIS COUNTRY CODE ##### + $e=0; + $area_updated_count=0; + foreach (@codefile) + { + chomp($codefile[$e]); + if ($codefile[$e] =~ /^$match_code\t/) + { + @m = split(/\t/, $codefile[$e]); + $area_code = $m[2]; + $area_state = $m[3]; + $area_GMT = $m[4]; $area_GMT =~ s/\+//gi; $area_GMT = ($area_GMT + 0); + $area_GMT_method = $m[6]; + if ($area_code =~ /S/) # look for state override flag in areacode field + { + $area_code =~ s/\D//gi; + $AC_match = " and phone_number LIKE \"$area_code%\" and state='$area_state'"; + if ($DB) {print " AREA CODE STATE OVERRIDE: $codefile[$e]\n";} + } + else + { + if ($area_code =~ /\*/) {$AC_match = '';} + else {$AC_match = " and phone_number LIKE \"$area_code%\"";} + } + if ($DBX) {print "PROCESSING THIS LINE: $codefile[$e]\n";} + + $stmtA = "select count(*) from vicidial_list where phone_code='$match_code_ORIG' $AC_match $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countZ=0; + @aryA = $sthA->fetchrow_array; + $rec_countZ = $aryA[0]; + $sthA->finish(); + + if (!$rec_countZ) + { + # if ($DB) {print " IGNORING: $codefile[$e]\n";} + $ei++; + } + else + { + $AC_GMT_diff = ($area_GMT - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($area_GMT_method =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-FSA/) ) + { + if ($DBX) {print " First Sunday October to First Sunday April\n";} + &AUSE_dstcalc; + if ($DBX) {print " DST: $AUSE_DST\n";} + if ($AUSE_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSS-FSA/) ) + { + if ($DBX) {print " Last Sunday September to First Sunday April\n";} + &NZLN_dstcalc; + if ($DBX) {print " DST: $NZLN_DST\n";} + if ($NZLN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + + if ($AC_processed) + { + $stmtA = "select count(*) from vicidial_list where phone_code='$match_code_ORIG' $AC_match and (gmt_offset_now != '$area_GMT' or gmt_offset_now IS NULL) $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countW=0; + @aryA = $sthA->fetchrow_array; + $rec_countW = $aryA[0]; + $sthA->finish(); + + if (!$rec_countW) + { + if ($DBX) {print " ALL GMT ALREADY CORRECT FOR : $match_code_ORIG $area_code $area_GMT\n";} + $ei++; + } + else + { + $stmtA = "update vicidial_list set gmt_offset_now='$area_GMT' where phone_code='$match_code_ORIG' $AC_match and (gmt_offset_now != '$area_GMT' or gmt_offset_now IS NULL) $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + $area_updated_count = ($area_updated_count + $affected_rows); + } + $Prec_countW = sprintf("%8s", $rec_countW); + if ($DB) {print " $Prec_countW records in $match_code_ORIG $area_code updated to $area_GMT\n";} + $ee++; + # sleep(1); + } + } + } + + $ep++; + } + else + { + # if ($DBX) {print " IGNORING: $codefile[$e]\n";} + $ei++; + } + $e++; + } + ##### END RUN LOOP FOR EACH COUNTRY CODE/AREA CODE RECORD THAT IS INSIDE THIS COUNTRY CODE ##### + if($DB){print "Area Code Updates: $area_updated_count\n";} + $TOTALarea_updated_count = ($TOTALarea_updated_count + $area_updated_count); + + + + + + ##### BEGIN RUN LOOP FOR EACH POSTAL CODE RECORD THAT IS INSIDE THIS COUNTRY CODE ##### + $postal_updated_count=0; + if ($searchPOST > 0) + { + if ($DB) {print "POSTAL CODE RUN START...\n";} + $e=0; + foreach (@postalfile) + { + chomp($postalfile[$e]); + if ($postalfile[$e] =~ /\t$match_code$/) + { + @m = split(/\t/, $postalfile[$e]); + $postal_code = $m[0]; + $postal_state = $m[1]; + $area_GMT = $m[2]; $area_GMT =~ s/\+//gi; $area_GMT = ($area_GMT + 0); + $area_GMT_method = $m[4]; + $AC_match = " and postal_code LIKE \"$postal_code%\""; + if ($DBX) {print "PROCESSING THIS LINE: $postalfile[$e]\n";} + + $stmtA = "select count(*) from vicidial_list where phone_code='$match_code_ORIG' $AC_match $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countZ=0; + @aryA = $sthA->fetchrow_array; + $rec_countZ = $aryA[0]; + $sthA->finish(); + + if (!$rec_countZ) + { + # if ($DB) {print " IGNORING: $postalfile[$e]\n";} + $ei++; + } + else + { + $AC_GMT_diff = ($area_GMT - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($area_GMT_method =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-FSA/) ) + { + if ($DBX) {print " First Sunday October to First Sunday April\n";} + &AUSE_dstcalc; + if ($DBX) {print " DST: $AUSE_DST\n";} + if ($AUSE_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSS-FSA/) ) + { + if ($DBX) {print " Last Sunday September to First Sunday April\n";} + &NZLN_dstcalc; + if ($DBX) {print " DST: $NZLN_DST\n";} + if ($NZLN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + + if ($AC_processed) + { + $stmtA = "select count(*) from vicidial_list where phone_code='$match_code_ORIG' $AC_match and (gmt_offset_now != '$area_GMT' or gmt_offset_now IS NULL) $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countW=0; + @aryA = $sthA->fetchrow_array; + $rec_countW = $aryA[0]; + $sthA->finish(); + + if (!$rec_countW) + { + if ($DBX) {print " ALL GMT ALREADY CORRECT FOR : $match_code_ORIG $postal_code $area_GMT\n";} + $ei++; + } + else + { + $stmtA = "update vicidial_list set gmt_offset_now='$area_GMT' where phone_code='$match_code_ORIG' $AC_match and (gmt_offset_now != '$area_GMT' or gmt_offset_now IS NULL) $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + $postal_updated_count = ($postal_updated_count + $affected_rows); + } + $Prec_countW = sprintf("%8s", $rec_countW); + if ($DB) {print " $Prec_countW records in $match_code_ORIG $postal_code updated to $area_GMT\n";} + $ee++; + # sleep(1); + } + } + } + + $ep++; + } + else + { + # if ($DBX) {print " IGNORING: $postalfile[$e]\n";} + $ei++; + } + $e++; + } + } + ##### END RUN LOOP FOR EACH POSTAL CODE RECORD THAT IS INSIDE THIS COUNTRY CODE ##### + if($DB){print "Postal Updates: $postal_updated_count\n";} + $TOTALpostal_updated_count = ($TOTALpostal_updated_count + $postal_updated_count); + + + + + + ##### START RUN LOOP FOR EACH NANPA PREFIX RECORD ##### + # areacode,prefix,GMT_offset,DST,SSM-FSN + $nanpa_updated_count=0; + if ( ($searchNANPA > 0) && ($match_code =~ /^1$/) ) + { + if ($DB) {print "NANPA PREFIX RUN START...\n";} + $e=0; + foreach (@nanpafile) + { + chomp($nanpafile[$e]); + @m = split(/\t/, $nanpafile[$e]); + $nanpa_areacode = $m[0]; + $nanpa_prefix = $m[1]; + $area_GMT = $m[2]; $area_GMT =~ s/\+//gi; $area_GMT = ($area_GMT + 0); + $area_GMT_method = $m[3]; + $AC_match = " and phone_number LIKE \"$nanpa_areacode$nanpa_prefix%\""; + if ($DBX) {print "PROCESSING THIS LINE: $nanpafile[$e]\n";} + + $stmtA = "select count(*) from vicidial_list where phone_code='$match_code_ORIG' $AC_match $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countZ=0; + @aryA = $sthA->fetchrow_array; + $rec_countZ = $aryA[0]; + $sthA->finish(); + + if (!$rec_countZ) + { + # if ($DB) {print " IGNORING: $nanpafile[$e]\n";} + $ei++; + } + else + { + $AC_GMT_diff = ($area_GMT - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($area_GMT_method =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-FSA/) ) + { + if ($DBX) {print " First Sunday October to First Sunday April\n";} + &AUSE_dstcalc; + if ($DBX) {print " DST: $AUSE_DST\n";} + if ($AUSE_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /LSS-FSA/) ) + { + if ($DBX) {print " Last Sunday September to First Sunday April\n";} + &NZLN_dstcalc; + if ($DBX) {print " DST: $NZLN_DST\n";} + if ($NZLN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($area_GMT_method =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + + if ($AC_processed) + { + $stmtA = "select count(*) from vicidial_list where phone_code='$match_code_ORIG' $AC_match and (gmt_offset_now != '$area_GMT' or gmt_offset_now IS NULL) $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countW=0; + @aryA = $sthA->fetchrow_array; + $rec_countW = $aryA[0]; + $sthA->finish(); + + if (!$rec_countW) + { + if ($DBX) {print " ALL GMT ALREADY CORRECT FOR : $match_code_ORIG $nanpa_code $area_GMT\n";} + $ei++; + } + else + { + $stmtA = "update vicidial_list set gmt_offset_now='$area_GMT' where phone_code='$match_code_ORIG' $AC_match and (gmt_offset_now != '$area_GMT' or gmt_offset_now IS NULL) $XlistSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + $nanpa_updated_count = ($nanpa_updated_count + $affected_rows); + } + $Prec_countW = sprintf("%8s", $rec_countW); + if ($DB) {print " $Prec_countW records in $match_code_ORIG $nanpa_areacode $nanpa_prefix updated to $area_GMT\n";} + $ee++; + # sleep(1); + } + } + } + + $ep++; + $e++; + } + } + ##### START RUN LOOP FOR EACH NANPA PREFIX RECORD ##### + if($DB){print "NANPA Updates: $nanpa_updated_count\n";} + $TOTALnanpa_updated_count = ($TOTALnanpa_updated_count + $nanpa_updated_count); + + + $d++; + } + + + +$dbhA->disconnect(); + +if($DB){print "\nGRAND TOTALS:\n";} +if($DB){print "Postal Updates: $TOTALpostal_updated_count\n";} +if($DB){print "Area Code Updates: $TOTALarea_updated_count\n";} +if($DB){print "NANPA Updates: $TOTALnanpa_updated_count\n";} +if($DB){print "\nDONE\n";} +$secy = time(); $secz = ($secy - $secX); $minz = ($secz/60); # calculate script runtime so far +if ($q < 1) {print " - process runtime ($secz sec) ($minz minutes)\n";} + +exit; + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM - Australia, for 2008-9 Western Australia only +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUSE_dstcalc { +#********************************************************************** +# FSO-FSA +# 2008+ EASTERN AUSTRALIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and first Sunday in April at 1 am. +#********************************************************************** + + $AUSE_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $AUSE_DST=1; return 1; + } elsif ($mm >= 5 && $mm <= 9) { + $AUSE_DST=0; return 0; + } elsif ($mm == 4) { + if ($dd > 7) { + $AUSE_DST=0; return 0; + } elsif ($dd >= ($dow+0)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $AUSE_DST=1; return 1; + } else { + $AUSE_DST=0; return 0; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUSE_DST=1; return 1; + } else { + $AUSE_DST=0; return 0; + } + } + } else { + $AUSE_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUSE_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUSE_DST=0; return 0; + } else { + $AUSE_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUSE_DST=0; return 0; + } else { + $AUSE_DST=1; return 1; + } + } + } else { + $AUSE_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NZLN_dstcalc { +#********************************************************************** +# LSS-FSA +# 2007+ NEW ZEALAND +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in September and first Sunday in April at 1 am. +#********************************************************************** + + $NZLN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 9) { + $NZLN_DST=1; return 1; + } elsif ($mm >= 5 && $mm <= 9) { + $NZLN_DST=0; return 0; + } elsif ($mm == 4) { + if ($dd > 7) { + $NZLN_DST=0; return 0; + } elsif ($dd >= ($dow+0)) { + if ($timezone) { + if ($dow == 0 && $ns < (3600+$timezone*3600)) { + $NZLN_DST=1; return 1; + } else { + $NZLN_DST=0; return 0; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZLN_DST=1; return 1; + } else { + $NZLN_DST=0; return 0; + } + } + } else { + $NZLN_DST=0; return 0; + } + } elsif ($mm == 9) { + if ($dd < 25) { + $NZLN_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $NZLN_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZLN_DST=0; return 0; + } else { + $NZLN_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $NZLN_DST=0; return 0; + } else { + $NZLN_DST=1; return 1; + } + } + } else { + $NZLN_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_archive_log_tables.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_archive_log_tables.pl new file mode 100644 index 00000000..6be2d49d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_archive_log_tables.pl @@ -0,0 +1,321 @@ +#!/usr/bin/perl +# +# ADMIN_archive_log_tables.pl +# +# This script is designed to put all records from call_log, vicidial_log and +# vicidial_agent_log in relevant _archive tables and delete records in original +# tables older than 2 months from current date. Also, deletes old +# server_performance table records without archiving them as well as optimizing +# all involved tables. +# +# Place in the crontab and run every month after one in the morning, or whenever +# your server is not busy with other tasks +# 30 1 1 * * /usr/share/astguiclient/ADMIN_archive_log_tables.pl +# +# NOTE: On a high-load outbound dialing system, this script can take hours to +# run. While the script is running the system is unusable. Please schedule to +# run this script at a time when the system will not be used for several hours. +# +# original author: I. Taushanov(okli) +# Based on perl scripts in ViciDial from Matt Florell and post: +# http://www.eflo.net/VICIDIALforum/viewtopic.php?p=22506&sid=ca5347cffa6f6382f56ce3db9fb3d068#22506 +# +# Copyright (C) 2010 I. Taushanov, Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 90615-1701 - First version +# 100101-1722 - Added error safety checks +# 100103-2052 - Formatting fixes, name change, added initial table counts and added archive tables to official SQL files +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n\n"; + exit; + } + else + { + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING-----\n\n"; + } + } + } +else + { + print "no command line options set\n"; + } +### end parsing run-time options ### + + +$secX = time(); +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +#change 2 to how many months old records to be moved and deleted +$mon = ($mon - 2); +if ($mon < 0) + { + $mon = ($mon + 12); + $year = ($year - 1); + } +$mon++; +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} + +$del_time = "$year-$mon-$mday 01:00:00"; + + +if (!$Q) {print "\n\n\n\n-- ADMIN_archive_log_tables.pl --\n\n";} +if (!$Q) {print "This program is designed to put all records from call_log, vicidial_log, server_performance and vicidial_agent_log in relevant _archive tables \nand delete records in original tables older than 2 months ( $del_time ) from current date \n\n";} + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +use DBI; +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +if (!$T) + { + ##### call_log + $stmtA = "SELECT count(*) from call_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $call_log_count = $aryA[0]; + } + $sthA->finish(); + + $stmtA = "SELECT count(*) from call_log_archive;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $call_log_archive_count = $aryA[0]; + } + $sthA->finish(); + + if (!$Q) {print "\nProcessing call_log table... ($call_log_count|$call_log_archive_count)\n";} + $stmtA = "INSERT IGNORE INTO call_log_archive SELECT * from call_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows = $sthA->rows; + if (!$Q) {print "$sthArows rows inserted into call_log_archive table\n";} + + $rv = $sthA->err(); + if (!$rv) + { + $stmtA = "DELETE FROM call_log WHERE start_time < '$del_time';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows = $sthA->rows; + if (!$Q) {print "$sthArows rows deleted from call_log table \n";} + + $stmtA = "optimize table call_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + + $stmtA = "DELETE from call_log_archive where channel LIKE 'Local/9%' and extension not IN('8365','8366','8367','8368','8369','8370','8371','8372','8373','8374') and caller_code LIKE 'V%' and length_in_sec < 75 and start_time < '$del_time';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows = $sthA->rows; + if (!$Q) {print "$sthArows rows deleted from call_log_archive table \n";} + + $stmtA = "optimize table call_log_archive;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + } + + + ##### vicidial_log + $stmtA = "SELECT count(*) from vicidial_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $vicidial_log_count = $aryA[0]; + } + $sthA->finish(); + + $stmtA = "SELECT count(*) from vicidial_log_archive;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $vicidial_log_archive_count = $aryA[0]; + } + $sthA->finish(); + + if (!$Q) {print "\nProcessing vicidial_log table... ($vicidial_log_count|$vicidial_log_archive_count)\n";} + $stmtA = "INSERT IGNORE INTO vicidial_log_archive SELECT * from vicidial_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + + $sthArows = $sthA->rows; + if (!$Q) {print "$sthArows rows inserted into vicidial_log_archive table \n";} + + $rv = $sthA->err(); + if (!$rv) + { + $stmtA = "DELETE FROM vicidial_log WHERE call_date < '$del_time';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows = $sthA->rows; + if (!$Q) {print "$sthArows rows deleted from vicidial_log table \n";} + + $stmtA = "optimize table vicidial_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + + $stmtA = "optimize table vicidial_log_archive;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + } + + + ##### server_performance + $stmtA = "SELECT count(*) from server_performance;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $server_performance_count = $aryA[0]; + } + $sthA->finish(); + + if (!$Q) {print "\nProcessing server_performance table... ($server_performance_count)\n";} + $stmtA = "DELETE FROM server_performance WHERE start_time < '$del_time';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows = $sthA->rows; + if (!$Q) {print "$sthArows rows deleted from server_performance table \n";} + + $stmtA = "optimize table server_performance;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + + + ##### vicidial_agent_log + $stmtA = "SELECT count(*) from vicidial_agent_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $vicidial_agent_log_count = $aryA[0]; + } + $sthA->finish(); + + $stmtA = "SELECT count(*) from vicidial_agent_log_archive;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $vicidial_agent_log_archive_count = $aryA[0]; + } + $sthA->finish(); + + if (!$Q) {print "\nProcessing vicidial_agent table... ($vicidial_agent_log_count|$vicidial_agent_log_archive_count)\n";} + $stmtA = "INSERT IGNORE INTO vicidial_agent_log_archive SELECT * from vicidial_agent_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows = $sthA->rows; + if (!$Q) {print "$sthArows rows inserted into vicidial_agent_log_archive table \n";} + + $rv = $sthA->err(); + if (!$rv) + { + $stmtA = "DELETE FROM vicidial_agent_log WHERE event_time < '$del_time';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows = $sthA->rows; + if (!$Q) {print "$sthArows rows deleted from vicidial_agent_log table \n";} + + $stmtA = "optimize table vicidial_agent_log;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + + $stmtA = "optimize table vicidial_agent_log_archive;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + } + } +#$dbhA->disconnect(); +#print "$del_time\n\n"; + + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); +if (!$Q) {print "\nscript execution time in seconds: $secZ minutes: $secZm\n";} + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_area_code_populate.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_area_code_populate.pl new file mode 100644 index 00000000..e7b7da99 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_area_code_populate.pl @@ -0,0 +1,389 @@ +#!/usr/bin/perl +# +# ADMIN_area_code_populate.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# Description: +# server application that allows load areacodes into to asterisk list database +# +# CHANGES +# 60615-1514 - Changed to ignore the header row +# 60807-1003 - Changed to DBI +# - changed to use /etc/astguiclient.conf for configs +# 61122-1902 - Added GMT_USA_zip.txt data import for USA postal GMT data +# 80416-1017 - Added download of phone codes from remote host +# 90129-0932 - Added optional NANP prefix/time date import "--load-NANPA-prefix" flag +# 90131-0933 - Added purge-table option to clear out old records before adding new ones +# 90204-0806 - Added duplicate check to nanpa list loading +# 90317-2353 - Added city, state, postal_code, country to nanpa format +# + + +# default path to astguiclient configuration file: +$PATHconf = "/etc/astguiclient.conf"; +$domain = "http://phonecodes.vicidial.com"; +$URL1 = "$domain/phone_codes_GMT-latest.txt"; +$URL2 = "$domain/GMT_USA_zip-latest.txt"; + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debug output\n"; + print " [--use-local-files] = Do not download files, use local copies\n"; + print " [--load-NANPA-prefix] = Only loads the special NANPA list into the database\n"; + print " [--purge-table] = Purges the table to be inserted before inserting\n"; + print "\n files used by this script are:\n"; + print " phone_codes_GMT-latest.txt - Phone codes and country codes with time zone data\n"; + print " GMT_USA_zip-latest.txt - USA zip code and time zone data\n"; + print " NANPA_prefix-latest.txt - North American areacode, prefix and time zone data\n"; + + exit; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; + print "\n----- DEBUGGING -----\n\n"; + } + if ($args =~ /-debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + else {$DBX=0;} + + if ($args =~ /-q/i) + { + $q=1; + } + if ($args =~ /-t/i) + { + $T=1; + $TEST=1; + print "\n----- TESTING -----\n\n"; + } + if ($args =~ /--use-local-files/i) + { + $use_local_files=1; + print "\n----- USING LOCAL DATA FILES -----\n\n"; + } + if ($args =~ /--load-NANPA-prefix/i) + { + $nanpa_load=1; + print "\n----- NANPA PHONE PREFIX DATA LOAD -----\n\n"; + } + if ($args =~ /--purge-table/i) + { + $purge_table=1; + print "\n----- PURGE TABLE BEFORE DATA LOAD -----\n\n"; + } + } + } +else + { + print "no command line options set\n"; + $args = ""; + $i=0; + $forcelistid = ''; + $format='standard'; + } +### end parsing run-time options ### + + + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +$slash_star = '\*'; + + +use Time::HiRes ('gettimeofday','usleep','sleep'); # needed to have perl sleep in increments of less than one second +use DBI; + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + + +if ($nanpa_load > 0) + { + #### load special North American phone code prefix table #### + # LONG # NPA,NXX,,,,,,STATE,COUNTRY,,,,,RC,TZ,DST,ZIP,,,,,,,,,,,LATITUDE,LONGITUDE,,,,, + # SHORT # NPA,NXX,TZ,DST,LATITUDE,LONGITUDE,CITY,STATE,POSTAL_CODE,COUNTRY + + #### BEGIN vicidial_nanpa_prefix_codes population from NANPA_prefix-latest.txt file #### + open(prefixfile, "$PATHhome/NANPA_prefix-latest.txt") || die "can't open $PATHhome/NANPA_prefix-latest.txt: $!\n"; + @prefixfile = ; + close(prefixfile); + if ( ($purge_table > 0) && ($#prefixfile > 10) ) + { + print "\n----- PURGING DATA IN vicidial_nanpa_prefix_codes TABLE -----\n\n"; + + $stmtA = "DELETE from vicidial_nanpa_prefix_codes;"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + $stmtA = "OPTIMIZE table vicidial_nanpa_prefix_codes;"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + } + $pc=0; $full_file=0; $dup_count=0; $ins_count=0; $dup_list=''; + $ins_stmt="insert into vicidial_nanpa_prefix_codes VALUES "; + foreach (@prefixfile) + { + @row=split(/,/, $prefixfile[$pc]); + if ($#row > 20) + {$full_file++;} + if ( ($prefixfile[$pc] !~ /XXXXX/) && ($prefixfile[$pc] !~ /^\D|^0|^1/) ) + { + $prefixfile[$pc] =~ s/\r|\n|\t| $//gi; + $pc++; + $temp_insert=''; + $dup_check=0; + if ($full_file > 0) + { + if ($row[14] !~ /XX/) + { + $row[13] =~ s/\(.*//gi; + $row[13] =~ s/ $//gi; + $row[13] =~ s/\'/\\\'/gi; + $row[14] =~ s/NT/-3.50/gi; + $row[14] =~ s/AT/-4.00/gi; + $row[14] =~ s/ET/-5.00/gi; + $row[14] =~ s/CT/-6.00/gi; + $row[14] =~ s/MT/-7.00/gi; + $row[14] =~ s/PT/-8.00/gi; + $row[14] =~ s/AK/-9.00/gi; + $row[14] =~ s/HT/-10.00/gi; + $row[14] =~ s/AS/-11.00/gi; + $row[14] =~ s/CH/10.00/gi; + $row[15] =~ s/X/N/gi; + $temp_insert="('$row[0]', '$row[1]', '$row[14]', '$row[15]', '$row[27]', '$row[28]', '$row[13]', '$row[7]', '$row[16]', '$row[8]'), "; + } + } + else + { + $row[6] =~ s/\'/\\\'/gi; + $row[9] =~ s/\r|\n|\t| $//gi; + $temp_insert="('$row[0]', '$row[1]', '$row[2]', '$row[3]', '$row[4]', '$row[5]', '$row[6]', '$row[7]', '$row[8]', '$row[9]'), "; + } + + $stmtA = "SELECT count(*) FROM vicidial_nanpa_prefix_codes where areacode='$row[0]' and prefix='$row[1]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_check = "$aryA[0]"; + } + $sthA->finish(); + + if ($dup_check < 1) + { + if ($dup_list =~ /$row[0]$row[1]\|/) + {$dup_count++;} + else + { + $dup_list .= "$row[0]$row[1]|"; + $ins_stmt .= "$temp_insert"; + $ins_count++; + } + } + else + {$dup_count++;} + + if ($pc =~ /000$/) + { + chop($ins_stmt); + chop($ins_stmt); + $affected_rows = $dbhA->do($ins_stmt) || die "can't execute query: |$ins_stmt| $!\n"; + $ins_stmt="insert into vicidial_nanpa_prefix_codes VALUES "; + print STDERR "$pc Lines $ins_count Inserted $dup_count Duplicates\r"; + $dup_list=''; + } + } + else + {$pc++;} + } + + chop($ins_stmt); + chop($ins_stmt); + $affected_rows = $dbhA->do($ins_stmt); + $ins_stmt="insert into vicidial_nanpa_prefix_codes VALUES "; + print STDERR "$pc Lines $ins_count Inserted $dup_count Duplicates\n"; + #### END vicidial_nanpa_prefix_codes population #### + + } +else + { + #### download the latest phone code table #### + chdir("$PATHhome"); + + if ($use_local_files < 1) + { + $wget = `which wget`; + print "$wget\n"; + if ( $wget eq "" ) + { + print STDERR "Please install the wget command\n"; + exit(); + } + + print STDERR "Downloading latest phone codes tables\n"; + + `wget $URL1`; + `wget $URL2`; + } + + #### BEGIN vicidial_phone_codes population from phone_codes_GMT-latest.txt file #### + open(codefile, "$PATHhome/phone_codes_GMT-latest.txt") || die "can't open $PATHhome/phone_codes_GMT-latest.txt: $!\n"; + @codefile = ; + close(codefile); + if ( ($purge_table > 0) && ($#codefile > 10) ) + { + print "\n----- PURGING DATA IN vicidial_phone_codes TABLE -----\n\n"; + + $stmtA = "DELETE from vicidial_phone_codes;"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + $stmtA = "OPTIMIZE table vicidial_phone_codes;"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + } + $pc=0; + $ins_stmt="insert into vicidial_phone_codes VALUES "; + foreach (@codefile) + { + @row=split(/\t/, $codefile[$pc]); + if ($codefile[$pc] !~ /GEOGRAPHIC DESCRIPTION/) + { + $pc++; + $row[7] =~ s/\r|\n|\t| $//gi; + $row[6] =~ s/\r|\n|\t| $//gi; + $row[5] =~ s/\r|\n|\t| $//gi; + $row[4] =~ s/\r|\n|\t| $//gi; + $row[3] =~ s/\r|\n|\t| $//gi; + $row[2] =~ s/\r|\n|\t| $//gi; + $row[1] =~ s/\r|\n|\t| $//gi; + $row[0] =~ s/\r|\n|\t| $//gi; + $ins_stmt.="('$row[0]', '$row[1]', '$row[2]', '$row[3]', '$row[4]', '$row[5]', '$row[6]', '$row[7]'), "; + if ($pc =~ /00$/) + { + chop($ins_stmt); + chop($ins_stmt); + $affected_rows = $dbhA->do($ins_stmt) || die "can't execute query: |$ins_stmt| $!\n"; + $ins_stmt="insert into vicidial_phone_codes VALUES "; + print STDERR "$pc\r"; + } + } + else {$pc++;} + } + + chop($ins_stmt); + chop($ins_stmt); + $affected_rows = $dbhA->do($ins_stmt); + $ins_stmt="insert into vicidial_phone_codes VALUES "; + print STDERR "$pc\n"; + #### END vicidial_phone_codes population #### + + + #### BEGIN vicidial_postal_codes population from GMT_USA_zip-latest.txt file #### + open(zipfile, "$PATHhome/GMT_USA_zip-latest.txt") || die "can't open $PATHhome/GMT_USA_zip-latest.txt: $!\n"; + @zipfile = ; + close(zipfile); + if ( ($purge_table > 0) && ($#zipfile > 10) ) + { + print "\n----- PURGING DATA IN vicidial_postal_codes TABLE -----\n\n"; + + $stmtA = "DELETE from vicidial_postal_codes;"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + $stmtA = "OPTIMIZE table vicidial_postal_codes;"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + } + $pc=0; + $ins_stmt="insert into vicidial_postal_codes VALUES "; + foreach (@zipfile) + { + @row=split(/\t/, $zipfile[$pc]); + $pc++; + $row[0] =~ s/\r|\n|\t| $//gi; + $row[1] =~ s/\r|\n|\t| $//gi; + $row[2] =~ s/\r|\n|\t| $//gi; + $row[3] =~ s/\r|\n|\t| $//gi; + if ($row[3] =~ /Y/i) {$DST_range = 'SSM-FSN';} + else {$DST_range = '';} + $ins_stmt.="('$row[0]', '$row[1]', '$row[2]', '$row[3]', '$DST_range', 'USA', '1'), "; + if ($pc =~ /00$/) + { + chop($ins_stmt); + chop($ins_stmt); + $affected_rows = $dbhA->do($ins_stmt) || die "can't execute query: |$ins_stmt| $!\n"; + $ins_stmt="insert into vicidial_postal_codes VALUES "; + print STDERR "$pc\r"; + } + } + + chop($ins_stmt); + chop($ins_stmt); + $affected_rows = $dbhA->do($ins_stmt); + $ins_stmt="insert into vicidial_postal_codes VALUES "; + print STDERR "$pc\n"; + #### END vicidial_postal_codes population #### + } + +$dbhA->disconnect(); + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_audio_store_sync.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_audio_store_sync.pl new file mode 100644 index 00000000..6609b05f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_audio_store_sync.pl @@ -0,0 +1,622 @@ +#!/usr/bin/perl +# +# ADMIN_audio_store_sync.pl version 2.2.0 +# +# DESCRIPTION: +# syncronizes audio between audio store and this server +# +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 90513-0458 - First Build +# 90518-2107 - Added force-upload option +# 90831-1349 - Added music-on-hold sync +# + +# constants +$DB=0; +$US='__'; +$MT[0]=''; +$uploaded=0; +$downloaded=0; +$force_moh_rebuild=0; +$new_file_moh_rebuild=0; + +$secT = time(); +$now_date_epoch = $secT; +($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";} +$file_date = "$year-$mon-$mday"; +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$VDL_date = "$year-$mon-$mday 00:00:01"; +$inactive_epoch = ($secT - 60); +$HHMM = "$hour$min"; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options(must stay in this order):\n"; + print " [--debug] = debug\n"; + print " [--debugX] = super debug\n"; + print " [-t] = test\n"; + print " [--upload] = upload audio not found on audio store\n"; + print " [--force-download] = force download of everything from audio store\n"; + print " [--force-upload] = force upload of all local audio files to the audio store\n"; + print " [--settings-override] = ignore database settings and run sync anyway\n"; + print " [--force-moh-rebuild] = ignore database settings and rebuild Music On Hold\n"; + print "\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /-upload/i) + { + $upload=1; + if ($DB) {print "\n----- UPLOAD -----\n\n";} + } + if ($args =~ /--force-download/i) + { + $force_download=1; + if ($DB) {print "\n----- FORCE DOWNLOAD -----\n\n";} + } + if ($args =~ /--force-upload/i) + { + $force_upload=1; + if ($DB) {print "\n----- FORCE UPLOAD -----\n\n";} + } + if ($args =~ /--settings-override/i) + { + $settings_override=1; + if ($DB) {print "\n----- SETTINGS OVERRIDE -----\n\n";} + } + if ($args =~ /--force-moh-rebuild/i) + { + $force_moh_rebuild=1; + if ($DB) {print "\n----- FORCE MUSIC ON HOLD REBUILD -----\n\n";} + } + if ($args =~ /--debugX/i) + { + $DBX=1; + if ($DB) {print "\n----- SUPER DEBUG -----\n\n";} + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + if ($DB) {print "\n-----TESTING -----\n\n";} + } + } + } +else + { +# print "no command line options set\n"; + } + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VASLOGfile) {$VASLOGfile = "$PATHlogs/audiostore.$year-$mon-$mday";} +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +### Grab Server values from the database +$stmtA = "SELECT active_asterisk_server FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $active_asterisk_server = "$aryA[0]"; + } +$sthA->finish(); + +### Grab system_settings values from the database +$stmtA = "SELECT sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $sounds_central_control_active = "$aryA[0]"; + $sounds_web_server = "$aryA[1]"; + $sounds_web_directory = "$aryA[2]"; + } +$sthA->finish(); + +if ( ( ($sounds_central_control_active < 1) || ($active_asterisk_server !~ /Y/) ) && ($settings_override < 1) ) + { + print "Audio Sync Settings not active, Exiting\n"; + exit; + } + +$stmtA="UPDATE servers SET sounds_update='N' where server_ip='$VARserver_ip';"; +$affected_rows = $dbhA->do($stmtA); + + + + +### find wget binary +$wgetbin = ''; +if ( -e ('/bin/wget')) {$wgetbin = '/bin/wget';} +else + { + if ( -e ('/usr/bin/wget')) {$wgetbin = '/usr/bin/wget';} + else + { + if ( -e ('/usr/local/bin/wget')) {$wgetbin = '/usr/local/bin/wget';} + else + { + print "Can't find wget binary! Exiting...\n"; + exit; + } + } + } + +### find curl binary +$curlbin = ''; +if ( -e ('/bin/curl')) {$curlbin = '/bin/curl';} +else + { + if ( -e ('/usr/bin/curl')) {$curlbin = '/usr/bin/curl';} + else + { + if ( -e ('/usr/local/bin/curl')) {$curlbin = '/usr/local/bin/curl';} + else + { + print "Can't find curl binary! Exiting...\n"; + exit; + } + } + } + + +$URL = "http://$sounds_web_server/vicidial/audio_store.php?action=LIST&audio_server_ip=$VARserver_ip"; + +$URL =~ s/&/\\&/gi; +if ($DB) + {print "\n$URL\n";} + +$audio_list_file = '/tmp/audio_store_list.txt'; +`rm -f $audio_list_file`; +`$wgetbin -q --output-document=$audio_list_file $URL `; + +open(list, "$audio_list_file") || die "can't open $audio_list_file: $!\n"; +@list = ; +close(list); + +opendir(sounds, "$PATHsounds"); +@sounds= readdir(sounds); +closedir(sounds); + + + +####### BEGIN download of audio files +if ($DB > 0) {print "REMOTE AUDIO FILES:\n";} + +$i=0; +while ($i <= $#list) + { + chomp($list[$i]); + @file_data = split(/\t/, $list[$i]); + $filename = $file_data[1]; + $filedate = $file_data[2]; + $filesize = $file_data[3]; + $fileepoch = $file_data[4]; + if ($DB > 0) {print "$i $filename $filedate $filesize $fileepoch\n";} + + $k=0; + $found_file=0; + while ($k <= $#sounds) + { + chomp($sounds[$k]); + $soundname = $sounds[$k]; + $soundsize = (-s "$PATHsounds/$sounds[$k]"); + + if ( ($filename eq "$soundname") && ($filesize eq "$soundsize") ) + { + $found_file++; + } + $k++; + } + + if ( ($found_file < 1) || ($force_download > 0) ) + { + `$wgetbin -q --output-document=$PATHsounds/$filename http://$sounds_web_server/$sounds_web_directory/$filename`; + $event_string = "DOWNLOADING: $filename $filesize"; + if ($DB > 0) {print " $event_string\n";} + &event_logger; + + $downloaded++; + $new_file_moh_rebuild++; + } + else + { + if ($DB > 0) {print " FILE FOUND: $filename\n";} + } + $i++; + } +####### END download of audio files + +$total_files = $i; + + + +`rm -f $audio_list_file`; +`$wgetbin -q --output-document=$audio_list_file $URL `; + +open(list, "$audio_list_file") || die "can't open $audio_list_file: $!\n"; +@list = ; +close(list); + +opendir(sounds, "$PATHsounds"); +@sounds= readdir(sounds); +closedir(sounds); + + + + + +####### BEGIN upload of audio files +if ($upload > 0) + { + if ($DB > 0) {print "LOCAL AUDIO FILES:\n";} + + $k=0; + while ($k <= $#sounds) + { + chomp($sounds[$k]); + if ($sounds[$k] =~ /\.wav$|\.gsm$/) + { + $soundname = $sounds[$k]; + $sounddate = (-M "$PATHsounds/$sounds[$k]"); + $soundsize = (-s "$PATHsounds/$sounds[$k]"); + $soundsec = ($sounddate * 86400); + $soundepoch = ($secT - $soundsec); + + if ($DB > 0) {print "$k $soundname $sounddate $soundsize $soundepoch\n";} + + $i=0; + $found_file=0; + while ($i <= $#list) + { + chomp($list[$i]); + @file_data = split(/\t/, $list[$i]); + $filename = $file_data[1]; + $filedate = $file_data[2]; + $filesize = $file_data[3]; + $fileepoch = $file_data[4]; + + if ( ($filename eq "$soundname") && ($filesize eq "$soundsize") ) + { + $found_file++; + } + $i++; + } + + if ( ($found_file < 1) || ($force_upload > 0) ) + { + $curloptions = "-s 'http://$sounds_web_server/vicidial/audio_store.php?action=AUTOUPLOAD&audio_server_ip=$VARserver_ip' -F \"audiofile=\@$PATHsounds/$soundname\""; + `$curlbin $curloptions`; + $event_string = "UPLOADING: $soundname $soundsize"; + if ($DB > 0) {print " $event_string\n|$curlbin $curloptions|\n";} + &event_logger; + + $uploaded++; + } + else + { + if ($DB > 0) {print " FILE FOUND: $soundname\n";} + } + } + $k++; + } + } +####### END upload of audio files + + + + +###### If audio was uploaded from this server, set all other servers to update sounds next minute +if ($uploaded > 0) + { + $stmtA="UPDATE servers SET sounds_update='Y' where server_ip NOT IN('$VARserver_ip');"; + $affected_rows = $dbhA->do($stmtA); + } + + + + + +###### BEGIN Music on hold rebuild ##### +$wav = '.wav'; +$gsm = '.gsm'; + +$stmtA = "SELECT rebuild_music_on_hold FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $rebuild_music_on_hold = $aryA[0]; + } +$sthA->finish(); + +if ( ($force_moh_rebuild > 0) || ($new_file_moh_rebuild > 0) || ($rebuild_music_on_hold =~ /Y/i) ) + { + $stmtA="UPDATE servers SET rebuild_music_on_hold='N' where server_ip = '$VARserver_ip';"; + $affected_rows = $dbhA->do($stmtA); + + ### Find music on hold contexts to remove + $stmtA = "SELECT moh_id FROM vicidial_music_on_hold where remove='Y' and moh_id NOT IN('astdb','sounds','agi-bin','keys');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsM=$sthA->rows; + @remove_moh_id=@MT; + $j=0; + while ($sthArowsM > $j) + { + @aryA = $sthA->fetchrow_array; + $remove_moh_id[$j] = $aryA[0]; + $j++; + } + $sthA->finish(); + + ### Remove flagged music on hold contexts + $j=0; + while ($sthArowsM > $j) + { + $stmtA="DELETE from vicidial_music_on_hold where moh_id='$remove_moh_id[$j]' and remove='Y' and moh_id NOT IN('astdb','sounds','agi-bin','keys');"; + $affected_rowsX = $dbhA->do($stmtA); + + $stmtB="DELETE from vicidial_music_on_hold_files where moh_id='$remove_moh_id[$j]' and moh_id NOT IN('astdb','sounds','agi-bin','keys');"; + $affected_rowsY = $dbhA->do($stmtB); + + if ($affected_rowsX > 0) + {`rm -fr /var/lib/asterisk/$remove_moh_id[$j]`;} + + if ($DBX) + { + print "Deleting Existing MoH: $affected_rowsX|$affected_rowsY|$stmtA|$stmtB|rm -fr /var/lib/asterisk/$remove_moh_id[$j]\n"; + } + + $j++; + } + + ### Find active music on hold contexts + $stmtA = "SELECT moh_id,moh_name,random FROM vicidial_music_on_hold where active='Y' and moh_id NOT IN('astdb','sounds','agi-bin','keys');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsC=$sthA->rows; + @remove_moh_id=@MT; + $j=0; + while ($sthArowsC > $j) + { + @aryA = $sthA->fetchrow_array; + $moh_id[$j] = $aryA[0]; + $moh_name[$j] = $aryA[1]; + $random[$j] = $aryA[2]; + $j++; + } + $sthA->finish(); + + ### Go through each context and check the files in the folders + $j=0; + while ($sthArowsC > $j) + { + $filelist_names = '|'; + $MoH_directory = "/var/lib/asterisk/$moh_id[$j]"; + ### Check if directory exists, if not, create it + if ( -e ("$MoH_directory")) {$mohpath = "$MoH_directory";} + else + { + `mkdir $MoH_directory`; + $mohpath = "$MoH_directory"; + if ($DBX) + { + print "Creating New MoH: $MoH_directory\n"; + } + } + + opendir(sounds, "$PATHsounds"); + @sounds= readdir(sounds); + closedir(sounds); + + ### copy over files that are not in place currently + $stmtA = "SELECT filename,rank FROM vicidial_music_on_hold_files where moh_id='$moh_id[$j]' order by rank;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsF=$sthA->rows; + @remove_moh_id=@MT; + $m=0; + while ($sthArowsF > $m) + { + @aryA = $sthA->fetchrow_array; + $filename[$m] = $aryA[0]; + $rank[$m] = $aryA[1]; + $filerank[$m] = sprintf("%04d",$rank[$m]) . "_"; + $fileexists[$m] = 0; + $filesize_moh[$m] = 0; + $filesize_original[$m] = 0; + $filelist_names .= "$filerank[$m]$filename[$m]|"; + + if ( (-e "$MoH_directory/$filerank[$m]$filename[$m]$wav") || (-e "$MoH_directory/$filerank[$m]$filename[$m]$gsm") ) + { + if (-e "$MoH_directory/$filerank[$m]$filename[$m]$wav") + { + $temp_filesize_moh = (-s "$MoH_directory/$filerank[$m]$filename[$m]$wav"); + $temp_filesize_original = (-s "$PATHsounds/$filename[$m]$wav"); + $filesize_moh[$m] = ($filesize_moh[$m] + $temp_filesize_moh); + $filesize_original[$m] = ($filesize_original[$m] + $temp_filesize_original); + if ($DBX) + { + print "WAV check existing:\n"; + print "$temp_filesize_moh|$filesize_moh[$m]|$MoH_directory/$filerank[$m]$filename[$m]$wav\n"; + print "$temp_filesize_original|$filesize_original[$m]|$PATHsounds/$filename[$m]$wav\n"; + } + } + if (-e "$MoH_directory/$filerank[$m]$filename[$m]$gsm") + { + $temp_filesize_moh = (-s "$MoH_directory/$filerank[$m]$filename[$m]$gsm"); + $temp_filesize_original = (-s "$PATHsounds/$filename[$m]$gsm"); + $filesize_moh[$m] = ($filesize_moh[$m] + $temp_filesize_moh); + $filesize_original[$m] = ($filesize_original[$m] + $temp_filesize_original); + if ($DBX) + { + print "GSM check existing:\n"; + print "$temp_filesize_moh|$filesize_moh[$m]|$MoH_directory/$filerank[$m]$filename[$m]$gsm\n"; + print "$temp_filesize_original|$filesize_original[$m]|$PATHsounds/$filename[$m]$gsm\n"; + } + } + + if ( ($filesize_moh[$m] == $filesize_original[$m]) && ($filesize_moh[$m] > 0) ) + {$fileexists[$m]++;} + } + if ($fileexists[$m] < 1) + { + $d=0; + foreach(@sounds) + { + if ($sounds[$d] =~ /^$filename[$m]\./) + { + `cp $PATHsounds/$sounds[$d] $MoH_directory/$filerank[$m]$sounds[$d]`; + $fileexists[$m]++; + if ($DBX) + {print "Copy new file: $PATHsounds/$sounds[$d] $MoH_directory/$filerank[$m]$sounds[$d]\n";} + } + $d++; + } + } + $m++; + } + $sthA->finish(); + + opendir(mohdir, "$MoH_directory"); + @MoH_files= readdir(mohdir); + closedir(mohdir); + + ### Check for files not in MoH context and delete them + $d=0; + foreach(@MoH_files) + { + $MoH_files_check[$d] = $MoH_files[$d]; + $MoH_files_check[$d] =~ s/\..*$//gi; + if ($DBX) + {print "Checking file: $MoH_files[$d] $MoH_files_check[$d] $filelist_names\n";} + if ( (length($MoH_files[$d]) > 4) && (-f "$MoH_directory/$MoH_files[$d]") && ($filelist_names !~ /\|$MoH_files_check[$d]\|/) ) + { + `rm -f $MoH_directory/$MoH_files[$d]`; + if ($DBX) + {print "Deleting file: $MoH_directory/$MoH_files[$d] $filelist_names\n";} + } + $d++; + } + $j++; + } + + ### reloading moh in Asterisk + if ($DBX) + {print "reloading moh in asterisk\n";} + `screen -XS asterisk eval 'stuff "moh reload\015"'`; + + } +###### END Music on hold rebuild ##### + + + + + +if($DB) + { + print "AUDIO FILES ON SERVER: $total_files\n"; + print "NEW DOWNLOADED: $downloaded\n"; + print "NEW UPLOADED: $uploaded\n\n"; + + ### calculate time to run script ### + $secY = time(); + $secZ = ($secY - $secT); + + if (!$q) {print "DONE. Script execution time in seconds: $secZ\n";} + } + +$dbhA->disconnect(); + +exit; + + + +sub event_logger + { + if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$VASLOGfile") + || die "Can't open $VASLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } + diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_backup.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_backup.pl new file mode 100644 index 00000000..89ca8b55 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_backup.pl @@ -0,0 +1,374 @@ +#!/usr/bin/perl +# +# ADMIN_backup.pl version 2.2.0 +# +# DESCRIPTION: +# Backs-up the asterisk database, conf/agi/sounds/bin files +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# +# 80316-2211 - First Build +# 80317-1609 - Added Sangoma conf file backup and changed FTP settings +# 80328-0135 - Do not attempt to archive /etc/my.cnf is --without-db flag is set +# 80611-0549 - Added DB option to backup all tables except for log tables +# 90620-1851 - Moved mysqldump bin lookup to database backup section +# + +$secT = time(); +$secX = time(); +($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";} +$file_date = "$year-$mon-$mday"; +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$VDL_date = "$year-$mon-$mday 00:00:01"; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--db-only] = only backup the database\n"; + print " [--db-without-logs] = do not backup the log tables in the database\n"; + print " [--conf-only] = only backup the asterisk conf files\n"; + print " [--without-db] = do not backup the database\n"; + print " [--without-conf] = do not backup the conf files\n"; + print " [--without-web] = do not backup web files\n"; + print " [--without-sounds] = do not backup asterisk sounds\n"; + print " [--ftp-transfer] = Transfer backup to FTP server\n"; + print " [--debugX] = super debug\n"; + print " [--debug] = debug\n"; + print " [-t] = test\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; $FTPdebug=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + if ($args =~ /--db-only/i) + { + $db_only=1; + print "\n----- Backup Database Only -----\n\n"; + } + if ($args =~ /--db-without-logs/i) + { + $db_without_logs=1; + print "\n----- Backup Database Without Logs -----\n\n"; + } + if ($args =~ /--conf-only/i) + { + $conf_only=1; + print "\n----- Conf Files Backup Only -----\n\n"; + } + if ($args =~ /--without-db/i) + { + $without_db=1; + print "\n----- No Database Backup -----\n\n"; + } + if ($args =~ /--without-conf/i) + { + $without_conf=1; + print "\n----- No Conf Files Backup -----\n\n"; + } + if ($args =~ /--without-sounds/i) + { + $without_sounds=1; + print "\n----- No Sounds Backup -----\n\n"; + } + if ($args =~ /--without-web/i) + { + $without_web=1; + print "\n----- No web files Backup -----\n\n"; + } + if ($args =~ /--ftp-transfer/i) + { + $ftp_transfer=1; + print "\n----- FTP transfer -----\n\n"; + } + } + } +else + { + print "no command line options set\n"; + } + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_dir/) && ($CLIREPORT_dir < 1) ) + {$VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi;} + + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$ARCHIVEpath) {$ARCHIVEpath = "$PATHlogs/archive";} +if (!$VARDB_port) {$VARDB_port='3306';} + +### find tar binary to do the archiving +$tarbin = ''; +if ( -e ('/usr/bin/tar')) {$tarbin = '/usr/bin/tar';} +else + { + if ( -e ('/usr/local/bin/tar')) {$tarbin = '/usr/local/bin/tar';} + else + { + if ( -e ('/bin/tar')) {$tarbin = '/bin/tar';} + else + { + print "Can't find tar binary! Exiting...\n"; + exit; + } + } + } + +### find gzip binary to do the archiving +$gzipbin = ''; +if ( -e ('/usr/bin/gzip')) {$gzipbin = '/usr/bin/gzip';} +else + { + if ( -e ('/usr/local/bin/gzip')) {$gzipbin = '/usr/local/bin/gzip';} + else + { + if ( -e ('/bin/gzip')) {$gzipbin = '/bin/gzip';} + else + { + print "Can't find gzip binary! Exiting...\n"; + exit; + } + } + } + +$conf='_CONF_'; +$sangoma='_SANGOMA_'; +$linux='_LINUX_'; +$bin='_BIN_'; +$web='_WEB_'; +$sounds='_SOUNDS_'; +$all='_ALL_'; +$tar='.tar'; +$gz='.gz'; +$sgSTRING=''; + +`cd $ARCHIVEpath`; +`mkdir $ARCHIVEpath/temp`; + +if ( ($without_db < 1) && ($conf_only < 1) ) + { + ### find mysqldump binary to do the database dump + $mysqldumpbin = ''; + if ( -e ('/usr/bin/mysqldump')) {$mysqldumpbin = '/usr/bin/mysqldump';} + else + { + if ( -e ('/usr/local/mysql/bin/mysqldump')) {$mysqldumpbin = '/usr/local/mysql/bin/mysqldump';} + else + { + if ( -e ('/bin/mysqldump')) {$mysqldumpbin = '/bin/mysqldump';} + else + { + print "Can't find mysqldump binary! MySQL backups will not work...\n"; + } + } + } + + ### BACKUP THE MYSQL FILES ON THE DB SERVER ### + if ($db_without_logs) + { + use DBI; + + ### connect to MySQL database defined in the conf file + $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + $stmtA = "show tables;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $log_tables=''; + $archive_tables=''; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] =~ /_log|server_performance|vicidial_ivr|vicidial_hopper|vicidial_manager|web_client_sessions|imm_outcomes/) + { + $log_tables .= " $aryA[0]"; + } + else + { + $archive_tables .= " $aryA[0]"; + } + $rec_count++; + } + $sthA->finish(); + + $dump_non_log_command = "$mysqldumpbin --user=$VARDB_user --password=$VARDB_pass --lock-tables --flush-logs $VARDB_database $archive_tables | $gzipbin > $ARCHIVEpath/temp/$VARserver_ip$VARDB_database$wday.gz"; + $dump_log_command = "$mysqldumpbin --user=$VARDB_user --password=$VARDB_pass --lock-tables --flush-logs --no-data --no-create-db $VARDB_database $log_tables | $gzipbin > $ARCHIVEpath/temp/LOGS_$VARserver_ip$VARDB_database$wday.gz"; + + if ($DBX) {print "$dump_non_log_command\n$dump_log_command";} + `$dump_non_log_command`; + `$dump_log_command`; + } + else + { + `$mysqldumpbin --user=$VARDB_user --password=$VARDB_pass --lock-tables --flush-logs $VARDB_database | $gzipbin > $ARCHIVEpath/temp/$VARserver_ip$VARDB_database$wday.gz`; + } + } + +if ( ($without_conf < 1) && ($db_only < 1) ) + { + ### BACKUP THE ASTERISK CONF FILES ON THE SERVER ### + `$tarbin cf $ARCHIVEpath/temp/$VARserver_ip$conf$wday$tar /etc/astguiclient.conf /etc/zaptel.conf /etc/asterisk`; + + ### BACKUP THE WANPIPE CONF FILES(if there are any) ### + if ( -e ('/etc/wanpipe/wanpipe1.conf')) + { + $sgSTRING = '/etc/wanpipe/wanpipe1.conf '; + if ( -e ('/etc/wanpipe/wanpipe2.conf')) {$sgSTRING .= '/etc/wanpipe/wanpipe2.conf ';} + if ( -e ('/etc/wanpipe/wanpipe3.conf')) {$sgSTRING .= '/etc/wanpipe/wanpipe3.conf ';} + if ( -e ('/etc/wanpipe/wanpipe4.conf')) {$sgSTRING .= '/etc/wanpipe/wanpipe4.conf ';} + if ( -e ('/etc/wanpipe/wanpipe5.conf')) {$sgSTRING .= '/etc/wanpipe/wanpipe5.conf ';} + if ( -e ('/etc/wanpipe/wanpipe6.conf')) {$sgSTRING .= '/etc/wanpipe/wanpipe6.conf ';} + if ( -e ('/etc/wanpipe/wanpipe7.conf')) {$sgSTRING .= '/etc/wanpipe/wanpipe7.conf ';} + if ( -e ('/etc/wanpipe/wanpipe8.conf')) {$sgSTRING .= '/etc/wanpipe/wanpipe8.conf ';} + if ( -e ('/etc/wanpipe/wanrouter.rc')) {$sgSTRING .= '/etc/wanpipe/wanrouter.rc ';} + + `$tarbin cf $ARCHIVEpath/temp/$VARserver_ip$sangoma$wday$tar $sgSTRING`; + } + + if ($without_db < 1) + { + ### BACKUP OTHER CONF FILES ON THE SERVER ### + $files = ""; + if ( -e ('/etc/my.cnf')) {$files .= "/etc/my.cnf ";} + if ( -e ('/etc/hosts')) {$files .= "/etc/hosts ";} + if ( -e ('/etc/rc.d/rc.local')) {$files .= "/etc/rc.d/rc.local ";} + if ( -e ('/etc/resolv.conf')) {$files .= "/etc/resolv.conf ";} + + `$tarbin cf $ARCHIVEpath/temp/$VARserver_ip$linux$wday$tar $files`; + } + else + { + ### BACKUP OTHER CONF FILES ON THE SERVER ### + $files = ""; + if ( -e ('/etc/hosts')) {$files += "/etc/hosts ";} + if ( -e ('/etc/rc.d/rc.local')) {$files += "/etc/rc.d/rc.local ";} + if ( -e ('/etc/resolv.conf')) {$files += "/etc/resolv.conf ";} + + `$tarbin cf $ARCHIVEpath/temp/$VARserver_ip$linux$wday$tar $files`; + } + } + +if ( ($conf_only < 1) && ($db_only < 1) && ($without_web < 1) ) + { + ### BACKUP THE WEB FILES ON THE SERVER ### + `$tarbin cf $ARCHIVEpath/temp/$VARserver_ip$web$wday$tar $PATHweb`; + } + +if ( ($conf_only < 1) && ($db_only < 1) ) + { + ### BACKUP THE ASTGUICLIENT AND AGI FILES ON THE SERVER ### + `$tarbin cf $ARCHIVEpath/temp/$VARserver_ip$bin$wday$tar $PATHagi $PATHhome`; + } + +if ( ($conf_only < 1) && ($db_only < 1) && ($without_sounds < 1) ) + { + ### BACKUP THE ASTERISK SOUNDS ON THE SERVER ### + `$tarbin cf $ARCHIVEpath/temp/$VARserver_ip$sounds$wday$tar $PATHsounds`; + } + +### PUT EVERYTHING TOGETHER TO BE COMPRESSED ### +`$tarbin cf $ARCHIVEpath/$VARserver_ip$all$wday$tar $ARCHIVEpath/temp`; + +### REMOVE OLD GZ FILE +`rm -f $ARCHIVEpath/$VARserver_ip$all$wday$tar$gz`; + +### COMPRESS THE ALL FILE ### +`$gzipbin -9 $ARCHIVEpath/$VARserver_ip$all$wday$tar`; + +### REMOVE TEMP FILES ### +`rm -fR $ARCHIVEpath/temp`; + + +#### FTP to the Backup server and upload the final file +if ($ftp_transfer > 0) + { + use Net::FTP; + $ftp = Net::FTP->new("$VARREPORT_host", Port => "$VARREPORT_port", Debug => "$FTPdebug"); + $ftp->login("$VARREPORT_user","$VARREPORT_pass"); + $ftp->cwd("$VARREPORT_dir"); + $ftp->binary(); + $ftp->put("$ARCHIVEpath/$VARserver_ip$all$wday$tar$gz", "$VARserver_ip$all$wday$tar$gz"); + $ftp->quit; + } + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_keepalive_ALL.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_keepalive_ALL.pl new file mode 100644 index 00000000..32a67148 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_keepalive_ALL.pl @@ -0,0 +1,2161 @@ +#!/usr/bin/perl +# +# ADMIN_keepalive_ALL.pl version 2.2.0 +# +# Designed to keep the astGUIclient processes alive and check every minute +# Replaces all other ADMIN_keepalive scripts +# Uses /etc/astguiclient.conf file to know which processes to keepalive +# +# Other functions of this program: +# - Launches the timeclock auto-logout process +# - clear out non-used vicidial_conferences sessions +# - Generates Asterisk conf files and reloads Asterisk +# - Synchronizes the audio store files +# - Runs trigger processes at defined times +# - Auto reset lists at defined times +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 61011-1348 - First build +# 61120-2011 - Added option 7 for AST_VDauto_dial_FILL.pl +# 80227-1526 - Added option 8 for ip_relay +# 80526-1350 - Added option 9 for timeclock auto-logout +# 90211-1236 - Added auto-generation of conf files functions +# 90213-0625 - Separated the reloading of Asterisk into 4 separate steps +# 90325-2239 - Rewrote sending of reload commands to Asterisk +# 90327-1421 - Removed [globals] tag from auto-generated extensions file +# 90409-1251 - Fixed voicemail conf file issue +# 90506-1155 - Added Call Menu functionality +# 90513-0449 - Added audio store sync functionality +# 90519-1018 - Added upload file trigger for prompt recording if defined as voicemail server and voicemail/prompt recording extensions auto-generated +# 90529-0652 - Added phone_context and fixed calledid and voicemail for phones entries +# 90614-0753 - Added in-group routing to call menu feature +# 90617-0821 - Added phone ring timeout and call menu custom dialplan entry +# 90621-0823 - Added phones conf file secret field use +# 90621-1425 - Added tracking group for call menus +# 90622-2146 - Added 83047777777777 for dynamic agent alert extension +# 90630-2259 - Added vicidial_process_triggers functionality +# 90713-0140 - Changed direct dial phone extensions to failover to voicemail forwarder +# 90722-1102 - Added list reset by time option +# 90812-0053 - Added clear out non-used vicidial_conferences sessions +# 90821-1246 - Fixed central voicemail server conf file, changed voicemail to use phone password +# 90903-1626 - Added musiconhold and meetme conf file generation +# 90919-1516 - Added generation of standalone voicemail boxes in voicemail conf file +# 91028-1023 - Added clearing of daily-reset tables at the timeclock reset time +# 91031-1258 - Added carrier description comments +# 91109-1205 - Added requirecalltoken=no as IAX setting for newer Asterisk 1.4 versions +# 91125-0709 - Added conf_secret to servers conf +# 91205-2315 - Added delete_vm_after_email option to voicemail conf generation +# + +$DB=0; # Debug flag +$MT[0]=''; $MT[1]=''; +@psline=@MT; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +$wtoday = $wday; +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$reset_test = "$hour$min"; + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n[-debugX] = Extra-verbose debug messages\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + # print "no command line options set\n"; + } +### end parsing run-time options ### + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^VARactive_keepalives/) && ($CLIactive_keepalives < 1) ) + {$VARactive_keepalives = $line; $VARactive_keepalives =~ s/.*=//gi;} + $i++; + } + +##### list of codes for active_keepalives and what processes they correspond to +# X - NO KEEPALIVE PROCESSES (use only if you want none to be keepalive)\n"; +# 1 - AST_update\n"; +# 2 - AST_send_listen\n"; +# 3 - AST_VDauto_dial\n"; +# 4 - AST_VDremote_agents\n"; +# 5 - AST_VDadapt (If multi-server system, this must only be on one server)\n"; +# 6 - FastAGI_log\n"; +# 7 - AST_VDauto_dial_FILL\n"; +# 8 - ip_relay for blind monitoring\n"; +# 9 - Timeclock auto logout\n"; +# - Other setting are set by configuring them in the database + +if ($VARactive_keepalives =~ /X/) + { + if ($DB) {print "X in active_keepalives, exiting...\n";} + exit; + } + +$AST_update=0; +$AST_send_listen=0; +$AST_VDauto_dial=0; +$AST_VDremote_agents=0; +$AST_VDadapt=0; +$FastAGI_log=0; +$AST_VDauto_dial_FILL=0; +$ip_relay=0; +$timeclock_auto_logout=0; +$runningAST_update=0; +$runningAST_send=0; +$runningAST_listen=0; +$runningAST_VDauto_dial=0; +$runningAST_VDremote_agents=0; +$runningAST_VDadapt=0; +$runningFastAGI_log=0; +$runningAST_VDauto_dial_FILL=0; +$runningip_relay=0; + +if ($VARactive_keepalives =~ /1/) + { + $AST_update=1; + if ($DB) {print "AST_update set to keepalive\n";} + } +if ($VARactive_keepalives =~ /2/) + { + $AST_send_listen=1; + if ($DB) {print "AST_send_listen set to keepalive\n";} + } +if ($VARactive_keepalives =~ /3/) + { + $AST_VDauto_dial=1; + if ($DB) {print "AST_VDauto_dial set to keepalive\n";} + } +if ($VARactive_keepalives =~ /4/) + { + $AST_VDremote_agents=1; + if ($DB) {print "AST_VDremote_agents set to keepalive\n";} + } +if ($VARactive_keepalives =~ /5/) + { + $AST_VDadapt=1; + if ($DB) {print "AST_VDadapt set to keepalive\n";} + } +if ($VARactive_keepalives =~ /6/) + { + $FastAGI_log=1; + if ($DB) {print "FastAGI_log set to keepalive\n";} + } +if ($VARactive_keepalives =~ /7/) + { + $AST_VDauto_dial_FILL=1; + if ($DB) {print "AST_VDauto_dial_FILL set to keepalive\n";} + } +if ($VARactive_keepalives =~ /8/) + { + $ip_relay=1; + if ($DB) {print "ip_relay set to keepalive\n";} + } +if ($VARactive_keepalives =~ /9/) + { + $timeclock_auto_logout=1; + if ($DB) {print "Check to see if Timeclock auto logout should run\n";} + } + +$REGhome = $PATHhome; +$REGhome =~ s/\//\\\//gi; + + + + + + +##### First, check and see which processes are running ##### + +### you may have to use a different ps command if you're not using Slackware Linux +# @psoutput = `ps -f -C AST_update --no-headers`; +# @psoutput = `ps -f -C AST_updat* --no-headers`; +# @psoutput = `/bin/ps -f --no-headers -A`; +# @psoutput = `/bin/ps -o pid,args -A`; ### use this one for FreeBSD +@psoutput = `/bin/ps -o "%p %a" --no-headers -A`; + +$i=0; +foreach (@psoutput) +{ +chomp($psoutput[$i]); +if ($DBX) {print "$i|$psoutput[$i]| \n";} +@psline = split(/\/usr\/bin\/perl /,$psoutput[$i]); + + if ($psline[1] =~ /$REGhome\/AST_update\.pl/) + { + $runningAST_update++; + if ($DB) {print "AST_update RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /AST_manager_se/) + { + $runningAST_send++; + if ($DB) {print "AST_send RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /AST_manager_li/) + { + $psoutput[$i] =~ s/ .*|\n|\r|\t| //gi; + $listen_pid[$runningAST_listen] = $psoutput[$i]; + $runningAST_listen++; + if ($DB) {print "AST_listen RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/AST_VDauto_dial\.pl/) + { + $runningAST_VDauto_dial++; + if ($DB) {print "AST_VDauto_dial RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/AST_VDremote_agents\.pl/) + { + $runningAST_VDremote_agents++; + if ($DB) {print "AST_VDremote_agents RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/AST_VDadapt\.pl/) + { + $runningAST_VDadapt++; + if ($DB) {print "AST_VDadapt RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/FastAGI_log\.pl/) + { + $runningFastAGI_log++; + if ($DB) {print "FastAGI_log RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/AST_VDauto_dial_FILL\.pl/) + { + $runningAST_VDauto_dial_FILL++; + if ($DB) {print "AST_VDauto_dial_FILL RUNNING: |$psline[1]|\n";} + } + if ($psoutput[$i] =~ / ip_relay /) + { + $runningip_relay++; + if ($DB) {print "ip_relay RUNNING: |$psoutput[$i]|\n";} + } +$i++; +} + + + + + +##### Second, IF MORE THAN ONE LISTEN INSTANCE IS RUNNING, KILL THE SECOND ONE ##### +@psline=@MT; +@psoutput=@MT; +@listen_pid=@MT; +if ($runningAST_listen > 1) +{ +$runningAST_listen=0; + + sleep(1); + +### you may have to use a different ps command if you're not using Slackware Linux +# @psoutput = `ps -f -C AST_update --no-headers`; +# @psoutput = `ps -f -C AST_updat* --no-headers`; +# @psoutput = `/bin/ps -f --no-headers -A`; +# @psoutput = `/bin/ps -o pid,args -A`; ### use this one for FreeBSD +@psoutput = `/bin/ps -o "%p %a" --no-headers -A`; + +$i=0; +foreach (@psoutput) + { + chomp($psoutput[$i]); + if ($DBX) {print "$i|$psoutput[$i]| \n";} + @psline = split(/\/usr\/bin\/perl /,$psoutput[$i]); + $psoutput[$i] =~ s/^ *//gi; + $psoutput[$i] =~ s/ .*|\n|\r|\t| //gi; + + if ($psline[1] =~ /AST_manager_li/) + { + $listen_pid[$runningAST_listen] = $psoutput[$i]; + if ($DB) {print "AST_listen RUNNING: |$psline[1]|$listen_pid[$runningAST_listen]|\n";} + $runningAST_listen++; + } + + $i++; + } + +if ($runningAST_listen > 1) + { + if ($DB) {print "Killing AST_manager_listen... |$listen_pid[1]|\n";} + `/bin/kill -s 9 $listen_pid[1]`; + } +} + + + + + + + +##### Third, double-check that non-running scripts are not running ##### +@psline=@MT; +@psoutput=@MT; + +if ( + ( ($AST_update > 0) && ($runningAST_update < 1) ) || + ( ($AST_send_listen > 0) && ($runningAST_send < 1) ) || + ( ($AST_send_listen > 0) && ($runningAST_listen < 1) ) || + ( ($AST_VDauto_dial > 0) && ($runningAST_VDauto_dial < 1) ) || + ( ($AST_VDremote_agents > 0) && ($runningAST_VDremote_agents < 1) ) || + ( ($AST_VDadapt > 0) && ($runningAST_VDadapt < 1) ) || + ( ($FastAGI_log > 0) && ($runningFastAGI_log < 1) ) || + ( ($AST_VDauto_dial_FILL > 0) && ($runningAST_VDauto_dial_FILL < 1) ) || + ( ($ip_relay > 0) && ($runningip_relay < 1) ) + ) +{ + +if ($DB) {print "double check that processes are not running...\n";} + + sleep(1); + +`PERL5LIB="$PATHhome/libs"; export PERL5LIB`; +### you may have to use a different ps command if you're not using Slackware Linux +# @psoutput = `ps -f -C AST_update --no-headers`; +# @psoutput = `ps -f -C AST_updat* --no-headers`; +# @psoutput = `/bin/ps -f --no-headers -A`; +# @psoutput = `/bin/ps -o pid,args -A`; ### use this one for FreeBSD +@psoutput2 = `/bin/ps -o "%p %a" --no-headers -A`; +$i=0; +foreach (@psoutput2) + { + chomp($psoutput2[$i]); + if ($DBX) {print "$i|$psoutput2[$i]| \n";} + @psline = split(/\/usr\/bin\/perl /,$psoutput2[$i]); + + if ($psline[1] =~ /$REGhome\/AST_update\.pl/) + { + $runningAST_update++; + if ($DB) {print "AST_update RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /AST_manager_se/) + { + $runningAST_send++; + if ($DB) {print "AST_send RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /AST_manager_li/) + { + $runningAST_listen++; + if ($DB) {print "AST_listen RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/AST_VDauto_dial\.pl/) + { + $runningAST_VDauto_dial++; + if ($DB) {print "AST_VDauto_dial RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/AST_VDremote_agents\.pl/) + { + $runningAST_VDremote_agents++; + if ($DB) {print "AST_VDremote_agents RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/AST_VDadapt\.pl/) + { + $runningAST_VDadapt++; + if ($DB) {print "AST_VDadapt RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/FastAGI_log\.pl/) + { + $runningFastAGI_log++; + if ($DB) {print "FastAGI_log RUNNING: |$psline[1]|\n";} + } + if ($psline[1] =~ /$REGhome\/AST_VDauto_dial_FILL\.pl/) + { + $runningAST_VDauto_dial_FILL++; + if ($DB) {print "AST_VDauto_dial_FILL RUNNING: |$psline[1]|\n";} + } + if ($psoutput2[$i] =~ / ip_relay /) + { + $runningip_relay++; + if ($DB) {print "ip_relay RUNNING: |$psoutput2[$i]|\n";} + } + $i++; + } + + +if ( ($AST_update > 0) && ($runningAST_update < 1) ) + { + if ($DB) {print "starting AST_update...\n";} + # add a '-L' to the command below to activate logging + `/usr/bin/screen -d -m -S ASTupdate $PATHhome/AST_update.pl`; + } +if ( ($AST_send_listen > 0) && ($runningAST_send < 1) ) + { + if ($DB) {print "starting AST_manager_send...\n";} + # add a '-L' to the command below to activate logging + `/usr/bin/screen -d -m -S ASTsend $PATHhome/AST_manager_send.pl`; + } +if ( ($AST_send_listen > 0) && ($runningAST_listen < 1) ) + { + if ($DB) {print "starting AST_manager_listen...\n";} + # add a '-L' to the command below to activate logging + `/usr/bin/screen -d -m -S ASTlisten $PATHhome/AST_manager_listen.pl`; + } +if ( ($AST_VDauto_dial > 0) && ($runningAST_VDauto_dial < 1) ) + { + if ($DB) {print "starting AST_VDauto_dial...\n";} + # add a '-L' to the command below to activate logging + `/usr/bin/screen -d -m -S ASTVDauto $PATHhome/AST_VDauto_dial.pl`; + } +if ( ($AST_VDremote_agents > 0) && ($runningAST_VDremote_agents < 1) ) + { + if ($DB) {print "starting AST_VDremote_agents...\n";} + # add a '-L' to the command below to activate logging + `/usr/bin/screen -d -m -S ASTVDremote $PATHhome/AST_VDremote_agents.pl --debug`; + } +if ( ($AST_VDadapt > 0) && ($runningAST_VDadapt < 1) ) + { + if ($DB) {print "starting AST_VDadapt...\n";} + # add a '-L' to the command below to activate logging + `/usr/bin/screen -d -m -S ASTVDadapt $PATHhome/AST_VDadapt.pl --debug`; + } +if ( ($FastAGI_log > 0) && ($runningFastAGI_log < 1) ) + { + if ($DB) {print "starting FastAGI_log...\n";} + # add a '-L' to the command below to activate logging + `/usr/bin/screen -d -m -S ASTfastlog $PATHhome/FastAGI_log.pl --debug`; + } +if ( ($AST_VDauto_dial_FILL > 0) && ($runningAST_VDauto_dial_FILL < 1) ) + { + if ($DB) {print "starting AST_VDauto_dial_FILL...\n";} + # add a '-L' to the command below to activate logging + `/usr/bin/screen -d -m -S ASTVDautoFILL $PATHhome/AST_VDauto_dial_FILL.pl`; + } +if ( ($ip_relay > 0) && ($runningip_relay < 1) ) + { + if ($DB) {print "starting ip_relay through relay_control...\n";} + `$PATHhome/ip_relay/relay_control start 2>/dev/null 1>&2`; + } +} + + + +### run the Timeclock auto-logout process ### +if ($timeclock_auto_logout > 0) + { + if ($DB) {print "running Timeclock auto-logout process...\n";} + `/usr/bin/screen -d -m -S Timeclock $PATHhome/ADMIN_timeclock_auto_logout.pl 2>/dev/null 1>&2`; + } +################################################################################ +##### END keepalive of ViciDial-related scripts +################################################################################ + + + + + +################################################################################ +##### START clear out non-used vicidial_conferences sessions and reset daily +##### tally tables +################################################################################ + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +$THISserver_voicemail=0; +$voicemail_server_id=''; +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$timeclock_end_of_day_NOW=0; +### Grab system_settings values from the database + $stmtA = "SELECT count(*) from system_settings where timeclock_end_of_day LIKE \"%$reset_test%\";"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $timeclock_end_of_day_NOW = "$aryA[0]"; + } + $sthA->finish(); + +if ($timeclock_end_of_day_NOW > 0) + { + if ($DB) {print "Starting clear out non-used vicidial_conferences sessions process...\n";} + + $stmtA = "SELECT conf_exten,extension from vicidial_conferences where server_ip='$server_ip' and leave_3way='0';"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $VCexten_ct=$sthA->rows; + $rec_count=0; + while ($VCexten_ct > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PT_conf_extens[$rec_count] = $aryA[0]; + $PT_extensions[$rec_count] = $aryA[1]; + if ($DBX) {print "|$PT_conf_extens[$rec_count]|$PT_extensions[$rec_count]|\n";} + $rec_count++; + } + $sthA->finish(); + $k=0; + while ($k < $rec_count) + { + $live_session=0; + $stmtA = "SELECT count(*) from vicidial_live_agents where conf_exten='$PT_conf_extens[$k]' and server_ip='$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $live_session = "$aryA[0]"; + } + $sthA->finish(); + + if ($live_session < 1) + { + $stmtA = "UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$k]';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + $k++; + } + + + if ($DB) {print "Starting clear out daily reset tables...\n";} + + $secX = time(); + $TDtarget = ($secX - 86000); # almost one day old + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + + $stmtA = "UPDATE vicidial_campaign_stats SET dialable_leads='0', calls_today='0', answers_today='0', drops_today='0', drops_today_pct='0', drops_answers_today_pct='0', calls_hour='0', answers_hour='0', drops_hour='0', drops_hour_pct='0', calls_halfhour='0', answers_halfhour='0', drops_halfhour='0', drops_halfhour_pct='0', calls_fivemin='0', answers_fivemin='0', drops_fivemin='0', drops_fivemin_pct='0', calls_onemin='0', answers_onemin='0', drops_onemin='0', drops_onemin_pct='0', differential_onemin='0', agents_average_onemin='0', balance_trunk_fill='0', status_category_count_1='0', status_category_count_2='0', status_category_count_3='0', status_category_count_4='0';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_campaign_stats records reset|\n";} + + $stmtA = "optimize table vicidial_campaign_stats;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + + $stmtA = "UPDATE vicidial_drop_rate_groups SET calls_today='0', answers_today='0', drops_today='0', drops_today_pct='0', drops_answers_today_pct='0';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_campaign_stats records reset|\n";} + + $stmtA = "optimize table vicidial_drop_rate_groups;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + + $stmtA = "delete from vicidial_campaign_server_stats;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_campaign_server_stats records deleted|\n";} + + $stmtA = "optimize table vicidial_campaign_server_stats;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + + $stmtA = "update vicidial_inbound_group_agents SET calls_today=0;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_inbound_group_agents call counts reset|\n";} + + $stmtA = "optimize table vicidial_inbound_group_agents;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + + $stmtA = "update vicidial_campaign_agents SET calls_today=0;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_campaign_agents call counts reset|\n";} + + $stmtA = "optimize table vicidial_campaign_agents;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + + $stmtA = "delete from vicidial_live_inbound_agents where last_call_finish < \"$TDSQLdate\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_live_inbound_agents old records deleted|\n";} + + $stmtA = "update vicidial_live_inbound_agents SET calls_today=0;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_live_inbound_agents call counts reset|\n";} + + $stmtA = "optimize table vicidial_live_inbound_agents;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + + $stmtA = "delete from vicidial_live_agents where last_state_change < \"$TDSQLdate\" and extension NOT LIKE \"R/%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_live_agents old records deleted|\n";} + + $stmtA = "optimize table vicidial_live_agents;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + + $stmtA = "delete from vicidial_auto_calls where last_update_time < \"$TDSQLdate\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows vicidial_auto_calls old records deleted|\n";} + + $stmtA = "optimize table vicidial_auto_calls;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if ($DB) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +################################################################################ +##### END clear out non-used vicidial_conferences sessions and reset daily +##### tally tables +################################################################################ + + + + + +################################################################################ +##### START Creation of auto-generated conf files +################################################################################ + +##### Get the settings from system_settings ##### +$stmtA = "SELECT sounds_central_control_active,active_voicemail_server FROM system_settings;"; +# print "$stmtA\n"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $sounds_central_control_active = $aryA[0]; + $active_voicemail_server = $aryA[1]; + } +$sthA->finish(); +if ( ($active_voicemail_server =~ /$server_ip/) && ((length($active_voicemail_server)) eq (length($server_ip))) ) + {$THISserver_voicemail=1;} +else + { + $stmtA = "SELECT server_id FROM servers,system_settings where servers.server_ip=system_settings.active_voicemail_server;"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $voicemail_server_id = $aryA[0]; + } + $sthA->finish(); + } + +##### Get the settings for this server's server_ip ##### +$stmtA = "SELECT active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,asterisk_version,sounds_update,conf_secret FROM servers where server_ip='$server_ip';"; +# print "$stmtA\n"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $active_asterisk_server = $aryA[0]; + $generate_vicidial_conf = $aryA[1]; + $rebuild_conf_files = $aryA[2]; + $asterisk_version = $aryA[3]; + $sounds_update = $aryA[4]; + $self_conf_secret = $aryA[5]; + } +$sthA->finish(); + + +if ( ($active_asterisk_server =~ /Y/) && ($generate_vicidial_conf =~ /Y/) && ($rebuild_conf_files =~ /Y/) ) + { + if ($DB) {print "generating new auto-gen conf files\n";} + + $stmtA="UPDATE servers SET rebuild_conf_files='N' where server_ip='$server_ip';"; + $affected_rows = $dbhA->do($stmtA); + + ### format the new server_ip dialstring for example to use with extensions.conf + $S='*'; + if( $VARserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VARremDIALstr = "$a$S$b$S$c$S$d"; + } + + $ext .= "TRUNKloop = IAX2/ASTloop:$self_conf_secret\@127.0.0.1:40569\n"; + $ext .= "TRUNKblind = IAX2/ASTblind:$self_conf_secret\@127.0.0.1:41569\n"; + + $iax .= "register => ASTloop:$self_conf_secret\@127.0.0.1:40569\n"; + $iax .= "register => ASTblind:$self_conf_secret\@127.0.0.1:41569\n"; + + $Lext = "\n"; + $Lext .= "; Local Server: $server_ip\n"; + $Lext .= "exten => _$VARremDIALstr*.,1,Goto(default,\${EXTEN:16},1)\n"; + + $Liax .= "\n"; + $Liax .= "[ASTloop]\n"; + $Liax .= "accountcode=ASTloop\n"; + $Liax .= "secret=$self_conf_secret\n"; + $Liax .= "type=friend\n"; + $Liax .= "requirecalltoken=no\n"; + $Liax .= "context=default\n"; + $Liax .= "auth=plaintext\n"; + $Liax .= "host=dynamic\n"; + $Liax .= "permit=0.0.0.0/0.0.0.0\n"; + $Liax .= "disallow=all\n"; + $Liax .= "allow=ulaw\n"; + $Liax .= "qualify=yes\n"; + + $Liax .= "\n"; + $Liax .= "[ASTblind]\n"; + $Liax .= "accountcode=ASTblind\n"; + $Liax .= "secret=$self_conf_secret\n"; + $Liax .= "type=friend\n"; + $Liax .= "requirecalltoken=no\n"; + $Liax .= "context=default\n"; + $Liax .= "auth=plaintext\n"; + $Liax .= "host=dynamic\n"; + $Liax .= "permit=0.0.0.0/0.0.0.0\n"; + $Liax .= "disallow=all\n"; + $Liax .= "allow=ulaw\n"; + $Liax .= "qualify=yes\n"; + + + ##### Get the server_id for this server's server_ip ##### + $stmtA = "SELECT server_id,vicidial_recording_limit FROM servers where server_ip='$server_ip';"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $server_id = $aryA[0]; + $vicidial_recording_limit = (60 * $aryA[1]); + $i++; + } + $sthA->finish(); + + + ##### BEGIN Generate the server_ips and server_ids of all VICIDIAL servers on the network for load balancing ##### + $stmtA = "SELECT server_ip,server_id,conf_secret FROM servers where server_ip!='$server_ip' and active_asterisk_server='Y' order by server_ip;"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $server_ip[$i] = $aryA[0]; + $server_id[$i] = $aryA[1]; + $conf_secret[$i] = $aryA[2]; + + if( $server_ip[$i] =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VARremDIALstr = "$a$S$b$S$c$S$d"; + } + $ext .= "TRUNK$server_id[$i] = IAX2/$server_id:$conf_secret[$i]\@$server_ip[$i]:4569\n"; + + $iax .= "register => $server_id:$conf_secret[$i]\@$server_ip[$i]:4569\n"; + + $Lext .= "; Remote Server VDAD extens: $server_id[$i] $server_ip[$i]\n"; + $Lext .= "exten => _$VARremDIALstr*.,1,Dial(\${TRUNK$server_id[$i]}/\${EXTEN:16},55,oT)\n"; + + $Liax .= "\n"; + $Liax .= "[$server_id[$i]]\n"; + $Liax .= "accountcode=IAX$server_id[$i]\n"; + $Liax .= "secret=$self_conf_secret\n"; + $Liax .= "type=friend\n"; + $Liax .= "requirecalltoken=no\n"; + $Liax .= "context=default\n"; + $Liax .= "auth=plaintext\n"; + $Liax .= "host=dynamic\n"; + $Liax .= "permit=0.0.0.0/0.0.0.0\n"; + $Liax .= "disallow=all\n"; + $Liax .= "allow=ulaw\n"; + $Liax .= "qualify=yes\n"; + + $i++; + } + $sthA->finish(); + ##### END Generate the server_ips and server_ids of all VICIDIAL servers on the network for load balancing ##### + + + + ##### BEGIN Create Voicemail extensions for this server_ip ##### + if ( ($THISserver_voicemail > 0) || (length($voicemail_server_id) < 1) ) + { + $Vext .= "; Voicemail Extensions:\n"; + $Vext .= "exten => _85026666666666.,1,Wait(1)\n"; + $Vext .= "exten => _85026666666666.,2,Voicemail(\${EXTEN:14}|u)\n"; + $Vext .= "exten => _85026666666666.,3,Hangup\n"; + $Vext .= "exten => 8500,1,VoicemailMain\n"; + $Vext .= "exten => 8500,2,Goto(s,6)\n"; + if ($asterisk_version =~ /^1.2/) + {$Vext .= "exten => 8501,1,VoicemailMain(s\${CALLERIDNUM})\n";} + else + {$Vext .= "exten => 8501,1,VoicemailMain(s\${{CALLERID(num)}(num)})\n";} + $Vext .= "exten => 8501,2,Hangup\n"; + $Vext .= "\n"; + $Vext .= "; Prompt Extensions:\n"; + $Vext .= "exten => 8167,1,Answer\n"; + $Vext .= "exten => 8167,2,AGI(agi-record_prompts.agi,wav-----720000)\n"; + $Vext .= "exten => 8167,3,Hangup\n"; + $Vext .= "exten => 8168,1,Answer\n"; + $Vext .= "exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----720000)\n"; + $Vext .= "exten => 8168,3,Hangup\n"; + } + else + { + $Vext .= "; Voicemail Extensions go to main voicemail server:\n"; + $Vext .= "exten => _85026666666666.,1,Dial(\${TRUNK$voicemail_server_id}/\${EXTEN},99,oT)\n"; + $Vext .= "exten => 8500,1,Dial(\${TRUNK$voicemail_server_id}/\${EXTEN},99,oT)\n"; + $Vext .= "exten => 8501,1,Dial(\${TRUNK$voicemail_server_id}/\${EXTEN},99,oT)\n"; + $Vext .= "\n"; + $Vext .= "; Prompt Extensions go to main voicemail server:\n"; + $Vext .= "exten => 8167,1,Dial(\${TRUNK$voicemail_server_id}/\${EXTEN},99,oT)\n"; + $Vext .= "exten => 8168,1,Dial(\${TRUNK$voicemail_server_id}/\${EXTEN},99,oT)\n"; + } + + $Vext .= "\n"; + $Vext .= "; this is used for recording conference calls, the client app sends the filename\n"; + $Vext .= "; value as a callerID recordings go to /var/spool/asterisk/monitor (WAV)\n"; + $Vext .= "; Recording is limited to 1 hour, to make longer, just change the server\n"; + $Vext .= "; setting ViciDial Recording Limit\n"; + $Vext .= "; this is the WAV verison, default\n"; + $Vext .= "exten => 8309,1,Answer\n"; + if ($asterisk_version =~ /^1.2/) + {$Vext .= "exten => 8309,2,Monitor(wav,\${CALLERIDNAME})\n";} + else + {$Vext .= "exten => 8309,2,Monitor(wav,\${CALLERID(name)})\n";} + $Vext .= "exten => 8309,3,Wait,$vicidial_recording_limit\n"; + $Vext .= "exten => 8309,4,Hangup\n"; + $Vext .= "; this is the GSM verison\n"; + $Vext .= "exten => 8310,1,Answer\n"; + if ($asterisk_version =~ /^1.2/) + {$Vext .= "exten => 8310,2,Monitor(gsm,\${CALLERIDNAME})\n";} + else + {$Vext .= "exten => 8310,2,Monitor(gsm,\${CALLERID(name)})\n";} + $Vext .= "exten => 8310,3,Wait,$vicidial_recording_limit\n"; + $Vext .= "exten => 8310,4,Hangup\n"; + + + $Vext .= "\n; agent alert extension\n"; + $Vext .= "exten => 83047777777777,1,Answer\n"; + if ($asterisk_version =~ /^1.2/) + {$Vext .= "exten => 83047777777777,2,Playback(\${CALLERIDNAME})\n";} + else + {$Vext .= "exten => 83047777777777,2,Playback(\${CALLERID(name)})\n";} + $Vext .= "exten => 83047777777777,3,Hangup\n"; + ##### END Create Voicemail extensions for this server_ip ##### + + + + ##### BEGIN Generate the IAX carriers for this server_ip ##### + $stmtA = "SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,globals_string,dialplan_entry,carrier_description FROM vicidial_server_carriers where server_ip='$server_ip' and active='Y' and protocol='IAX2' order by carrier_id;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $carrier_id[$i] = $aryA[0]; + $carrier_name[$i] = $aryA[1]; + $registration_string[$i] = $aryA[2]; + $template_id[$i] = $aryA[3]; + $account_entry[$i] = $aryA[4]; + $globals_string[$i] = $aryA[5]; + $dialplan_entry[$i] = $aryA[6]; + $carrier_description[$i] = $aryA[7]; + $i++; + } + $sthA->finish(); + + $i=0; + while ($sthArows > $i) + { + $template_contents[$i]=''; + if ( (length($template_id[$i]) > 1) && ($template_id[$i] !~ /--NONE--/) ) + { + $stmtA = "SELECT template_contents FROM vicidial_conf_templates where template_id='$template_id[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthBrows=$sthA->rows; + if ($sthBrows > 0) + { + @aryA = $sthA->fetchrow_array; + $template_contents[$i] = "$aryA[0]"; + } + $sthA->finish(); + } + $ext .= "$globals_string[$i]\n"; + + $iax .= "$registration_string[$i]\n"; + + $Lext .= "; VICIDIAL Carrier: $carrier_id[$i] - $carrier_name[$i]\n"; + if (length($carrier_description[$i]) > 0) {$Lext .= "; $carrier_description[$i]\n";} + $Lext .= "$dialplan_entry[$i]\n"; + + $Liax .= "; VICIDIAL Carrier: $carrier_id[$i] - $carrier_name[$i]\n"; + if (length($carrier_description[$i]) > 0) {$Liax .= "; $carrier_description[$i]\n";} + $Liax .= "$account_entry[$i]\n"; + $Liax .= "$template_contents[$i]\n"; + + $i++; + } + ##### END Generate the IAX carriers for this server_ip ##### + + + + ##### BEGIN Generate the SIP carriers for this server_ip ##### + $stmtA = "SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,globals_string,dialplan_entry,carrier_description FROM vicidial_server_carriers where server_ip='$server_ip' and active='Y' and protocol='SIP' order by carrier_id;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $carrier_id[$i] = $aryA[0]; + $carrier_name[$i] = $aryA[1]; + $registration_string[$i] = $aryA[2]; + $template_id[$i] = $aryA[3]; + $account_entry[$i] = $aryA[4]; + $globals_string[$i] = $aryA[5]; + $dialplan_entry[$i] = $aryA[6]; + $carrier_description[$i] = $aryA[7]; + $i++; + } + $sthA->finish(); + + $i=0; + while ($sthArows > $i) + { + $template_contents[$i]=''; + if ( (length($template_id[$i]) > 1) && ($template_id[$i] !~ /--NONE--/) ) + { + $stmtA = "SELECT template_contents FROM vicidial_conf_templates where template_id='$template_id[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthBrows=$sthA->rows; + if ($sthBrows > 0) + { + @aryA = $sthA->fetchrow_array; + $template_contents[$i] = "$aryA[0]"; + } + $sthA->finish(); + } + $ext .= "$globals_string[$i]\n"; + + $sip .= "$registration_string[$i]\n"; + + $Lext .= "; VICIDIAL Carrier: $carrier_id[$i] - $carrier_name[$i]\n"; + if (length($carrier_description[$i]) > 0) {$Lext .= "; $carrier_description[$i]\n";} + $Lext .= "$dialplan_entry[$i]\n"; + + $Lsip .= "; VICIDIAL Carrier: $carrier_id[$i] - $carrier_name[$i]\n"; + if (length($carrier_description[$i]) > 0) {$Lsip .= "; $carrier_description[$i]\n";} + $Lsip .= "$account_entry[$i]\n"; + $Lsip .= "$template_contents[$i]\n"; + + $i++; + } + ##### BEGIN Generate the SIP carriers for this server_ip ##### + + + $Pext .= "\n"; + $Pext .= "; Phones direct dial extensions:\n"; + + + ##### BEGIN Generate the IAX phone entries ##### + $stmtA = "SELECT extension,dialplan_number,voicemail_id,pass,template_id,conf_override,email,template_id,conf_override,outbound_cid,fullname,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email FROM phones where server_ip='$server_ip' and protocol='IAX2' and active='Y' order by extension;"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $extension[$i] = $aryA[0]; + $dialplan[$i] = $aryA[1]; + $voicemail[$i] = $aryA[2]; + $pass[$i] = $aryA[3]; + $template_id[$i] = $aryA[4]; + $conf_override[$i] = $aryA[5]; + $email[$i] = $aryA[6]; + $template_id[$i] = $aryA[7]; + $conf_override[$i] = $aryA[8]; + $outbound_cid[$i] = $aryA[9]; + $fullname[$i] = $aryA[10]; + $phone_context[$i] = $aryA[11]; + $phone_ring_timeout[$i] = $aryA[12]; + $conf_secret[$i] = $aryA[13]; + $delete_vm_after_email[$i] = $aryA[14]; + $i++; + } + $sthA->finish(); + + $i=0; + while ($sthArows > $i) + { + $conf_entry_written=0; + $template_contents[$i]=''; + if ( (length($template_id[$i]) > 1) && ($template_id[$i] !~ /--NONE--/) ) + { + $stmtA = "SELECT template_contents FROM vicidial_conf_templates where template_id='$template_id[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthBrows=$sthA->rows; + if ($sthBrows > 0) + { + @aryA = $sthA->fetchrow_array; + $template_contents[$i] = "$aryA[0]"; + + $Piax .= "\n\[$extension[$i]\]\n"; + $Piax .= "username=$extension[$i]\n"; + $Piax .= "secret=$conf_secret[$i]\n"; + $Piax .= "callerid=\"$fullname[$i]\" <$outbound_cid[$i]>\n"; + $Piax .= "mailbox=$voicemail[$i]\n"; + $Piax .= "$template_contents[$i]\n"; + + $conf_entry_written++; + } + $sthA->finish(); + } + if (length($conf_override[$i]) > 10) + { + $Piax .= "\n\[$extension[$i]\]\n"; + $Piax .= "$conf_override[$i]\n"; + $conf_entry_written++; + } + if ($conf_entry_written < 1) + { + $Piax .= "\n\[$extension[$i]\]\n"; + $Piax .= "username=$extension[$i]\n"; + $Piax .= "secret=$conf_secret[$i]\n"; + $Piax .= "callerid=\"$fullname[$i]\" <$outbound_cid[$i]>\n"; + $Piax .= "mailbox=$voicemail[$i]\n"; + $Piax .= "requirecalltoken=no\n"; + $Piax .= "context=$phone_context[$i]\n"; + $Piax .= "type=friend\n"; + $Piax .= "auth=md5\n"; + $Piax .= "host=dynamic\n"; + } + $Pext .= "exten => $dialplan[$i],1,Dial(IAX2/$extension[$i]|$phone_ring_timeout[$i]|)\n"; + $Pext .= "exten => $dialplan[$i],2,Goto(default,85026666666666$voicemail[$i],1)\n"; + + if ($delete_vm_after_email[$i] =~ /Y/) + {$vm .= "$voicemail[$i] => $pass[$i],$extension[$i] Mailbox,$email[$i],,|delete=yes\n";} + else + {$vm .= "$voicemail[$i] => $pass[$i],$extension[$i] Mailbox,$email[$i]\n";} + + $i++; + } + ##### END Generate the IAX phone entries ##### + + + + ##### BEGIN Generate the SIP phone entries ##### + $stmtA = "SELECT extension,dialplan_number,voicemail_id,pass,template_id,conf_override,email,template_id,conf_override,outbound_cid,fullname,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email FROM phones where server_ip='$server_ip' and protocol='SIP' and active='Y' order by extension;"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $extension[$i] = $aryA[0]; + $dialplan[$i] = $aryA[1]; + $voicemail[$i] = $aryA[2]; + $pass[$i] = $aryA[3]; + $template_id[$i] = $aryA[4]; + $conf_override[$i] = $aryA[5]; + $email[$i] = $aryA[6]; + $template_id[$i] = $aryA[7]; + $conf_override[$i] = $aryA[8]; + $outbound_cid[$i] = $aryA[9]; + $fullname[$i] = $aryA[10]; + $phone_context[$i] = $aryA[11]; + $phone_ring_timeout[$i] = $aryA[12]; + $conf_secret[$i] = $aryA[13]; + $delete_vm_after_email[$i] = $aryA[14]; + $i++; + } + $sthA->finish(); + + $i=0; + while ($sthArows > $i) + { + $conf_entry_written=0; + $template_contents[$i]=''; + if ( (length($template_id[$i]) > 1) && ($template_id[$i] !~ /--NONE--/) ) + { + $stmtA = "SELECT template_contents FROM vicidial_conf_templates where template_id='$template_id[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthBrows=$sthA->rows; + if ($sthBrows > 0) + { + @aryA = $sthA->fetchrow_array; + $template_contents[$i] = "$aryA[0]"; + + $Psip .= "\n\[$extension[$i]\]\n"; + $Psip .= "username=$extension[$i]\n"; + $Psip .= "secret=$conf_secret[$i]\n"; + $Psip .= "callerid=\"$fullname[$i]\" <$outbound_cid[$i]>\n"; + $Psip .= "mailbox=$voicemail[$i]\n"; + $Psip .= "$template_contents[$i]\n"; + + $conf_entry_written++; + } + $sthA->finish(); + } + if (length($conf_override[$i]) > 10) + { + $Psip .= "\n\[$extension[$i]\]\n"; + $Psip .= "$conf_override[$i]\n"; + $conf_entry_written++; + } + if ($conf_entry_written < 1) + { + $Psip .= "\n\[$extension[$i]\]\n"; + $Psip .= "username=$extension[$i]\n"; + $Psip .= "secret=$conf_secret[$i]\n"; + $Psip .= "callerid=\"$fullname[$i]\" <$outbound_cid[$i]>\n"; + $Psip .= "mailbox=$voicemail[$i]\n"; + $Psip .= "context=$phone_context[$i]\n"; + $Psip .= "type=friend\n"; + $Psip .= "host=dynamic\n"; + } + $Pext .= "exten => $dialplan[$i],1,Dial(SIP/$extension[$i]|$phone_ring_timeout[$i]|)\n"; + $Pext .= "exten => $dialplan[$i],2,Goto(default,85026666666666$voicemail[$i],1)\n"; + + if ($delete_vm_after_email[$i] =~ /Y/) + {$vm .= "$voicemail[$i] => $pass[$i],$extension[$i] Mailbox,$email[$i],,|delete=yes\n";} + else + {$vm .= "$voicemail[$i] => $pass[$i],$extension[$i] Mailbox,$email[$i]\n";} + + $i++; + } + ##### END Generate the SIP phone entries ##### + + + + ##### BEGIN Generate the Call Menu entries ##### + $stmtA = "SELECT menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group FROM vicidial_call_menu order by menu_id;"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $menu_id[$i] = "$aryA[0]"; + $menu_name[$i] = "$aryA[1]"; + $menu_prompt[$i] = "$aryA[2]"; + $menu_timeout[$i] = "$aryA[3]"; + $menu_timeout_prompt[$i] = "$aryA[4]"; + $menu_invalid_prompt[$i] = "$aryA[5]"; + $menu_repeat[$i] = "$aryA[6]"; + $menu_time_check[$i] = "$aryA[7]"; + $call_time_id[$i] = "$aryA[8]"; + $track_in_vdac[$i] = "$aryA[9]"; + $custom_dialplan_entry[$i]= "$aryA[10]"; + $tracking_group[$i] = "$aryA[11]"; + + if ($track_in_vdac[$i] > 0) + {$track_in_vdac[$i] = 'YES'} + else + {$track_in_vdac[$i] = 'NO'} + $i++; + } + $sthA->finish(); + + $i=0; + $call_menu_ext = ''; + while ($sthArows > $i) + { + $stmtA = "SELECT option_value,option_description,option_route,option_route_value,option_route_value_context FROM vicidial_call_menu_options where menu_id='$menu_id[$i]' order by option_value;"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsJ=$sthA->rows; + $j=0; + $time_check_scheme = ''; + $time_check_route = ''; + $time_check_route_value = ''; + $time_check_route_context = ''; + $call_menu_timeout_ext = ''; + $call_menu_invalid_ext = ''; + $call_menu_options_ext = ''; + if ($DBX>0) {print "$sthArowsJ|$stmtA\n";} + while ($sthArowsJ > $j) + { + @aryA = $sthA->fetchrow_array; + $option_value[$j] = "$aryA[0]"; + $option_description[$j] = "$aryA[1]"; + $option_route[$j] = "$aryA[2]"; + $option_route_value[$j] = "$aryA[3]"; + $option_route_value_context[$j] = "$aryA[4]"; + if ($option_value[$j] =~ /STAR/) {$option_value[$j] = '*';} + if ($option_value[$j] =~ /HASH/) {$option_value[$j] = '#';} + $j++; + } + + $j=0; + while ($sthArowsJ > $j) + { + $PRI=1; + $call_menu_line=''; + if ( ($option_value[$j] =~ /TIMECHECK/) && ($menu_time_check[$i] > 0) && (length($call_time_id[$i])>0) ) + { + $time_check_scheme = $call_time_id[$i]; + $time_check_route = $option_route[$j]; + $time_check_route_value = $option_route_value[$j]; + $time_check_route_context = $option_route_value_context[$j]; + } + else + { + if (length($option_description[$j])>0) + { + $call_menu_line .= "; $option_description[$j]\n"; + } + if ($option_value[$j] =~ /TIMEOUT/) + { + $option_value[$j] = 't'; + if ( (length($menu_timeout_prompt[$i])>0) && ($menu_timeout_prompt[$i] !~ /NONE/) ) + { + $menu_timeout_prompt_ext=''; + if ($menu_timeout_prompt[$i] =~ /\|/) + { + @menu_timeout_prompts_array = split(/\|/,$menu_timeout_prompt[$i]); + $w=0; + foreach(@menu_timeout_prompts_array) + { + if (length($menu_timeout_prompts_array[$w])>0) + { + $menu_timeout_prompt_ext .= "exten => t,$PRI,Playback($menu_timeout_prompts_array[$w])\n"; + $PRI++; + } + $w++; + } + } + else + { + $menu_timeout_prompt_ext .= "exten => t,1,Playback($menu_timeout_prompt[$i])\n"; + $PRI++; + } + + $call_menu_line .= "$menu_timeout_prompt_ext"; + } + } + if ($option_value[$j] =~ /INVALID/) + { + if ( (length($menu_invalid_prompt[$i])>0) && ($menu_invalid_prompt[$i] !~ /NONE/) ) + { + $menu_invalid_prompt_ext=''; + if ($menu_invalid_prompt[$i] =~ /\|/) + { + @menu_invalid_prompts_array = split(/\|/,$menu_invalid_prompt[$i]); + $w=0; + foreach(@menu_invalid_prompts_array) + { + if (length($menu_invalid_prompts_array[$w])>0) + { + $menu_invalid_prompt_ext .= "exten => i,$PRI,Playback($menu_invalid_prompts_array[$w])\n"; + $PRI++; + } + $w++; + } + } + else + { + $menu_invalid_prompt_ext .= "exten => i,1,Playback($menu_invalid_prompt[$i])\n"; + $PRI++; + } + + $call_menu_line .= "$menu_invalid_prompt_ext"; + } + $option_value[$j] = 'i'; + } + if ($option_route[$j] =~ /AGI/) + { + $call_menu_line .= "exten => $option_value[$j],$PRI,AGI($option_route_value[$j])\n"; + } + if ($option_route[$j] =~ /CALLMENU/) + { + $call_menu_line .= "exten => $option_value[$j],$PRI,Goto($option_route_value[$j],s,1)\n"; + } + if ($option_route[$j] =~ /DID/) + { + $call_menu_line .= "exten => $option_value[$j],$PRI,Goto(trunkinbound,$option_route_value[$j],1)\n"; + } + if ($option_route[$j] =~ /INGROUP/) + { + @IGoption_route_value_context = split(/,/,$option_route_value_context[$j]); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + + $call_menu_line .= "exten => $option_value[$j],$PRI,AGI(agi-VDAD_ALL_inbound.agi,$IGhandle_method-----$IGsearch_method-----$option_route_value[$j]-----$menu_id[$i]--------------------$IGlist_id-----$IGphone_code-----$IGcampaign_id)\n"; + } + if ($option_route[$j] =~ /EXTENSION/) + { + if (length($option_route_value_context[$j])>0) {$option_route_value_context[$j] = "$option_route_value_context[$j],";} + $call_menu_line .= "exten => $option_value[$j],$PRI,Goto($option_route_value_context[$j]$option_route_value[$j],1)\n"; + } + if ($option_route[$j] =~ /VOICEMAIL/) + { + $call_menu_line .= "exten => $option_value[$j],$PRI,Goto(default,85026666666666$option_route_value[$j],1)\n"; + } + if ($option_route[$j] =~ /HANGUP/) + { + if ( (length($option_route_value[$j])>0) && ($option_route_value[$j] !~ /NONE/) ) + { + $hangup_prompt_ext=''; + if ($option_route_value[$j] =~ /\|/) + { + @hangup_prompts_array = split(/\|/,$option_route_value[$j]); + $w=0; + foreach(@hangup_prompts_array) + { + if (length($hangup_prompts_array[$w])>0) + { + $hangup_prompt_ext .= "exten => $option_value[$j],$PRI,Playback($hangup_prompts_array[$w])\n"; + $PRI++; + } + $w++; + } + } + else + { + $hangup_prompt_ext .= "exten => $option_value[$j],1,Playback($option_route_value[$j])\n"; + $PRI++; + } + + $call_menu_line .= "$hangup_prompt_ext"; + $call_menu_line .= "exten => $option_value[$j],n,Hangup\n"; + } + else + { + $call_menu_line .= "exten => $option_value[$j],$PRI,Hangup\n"; + } + } + if ($option_route[$j] =~ /PHONE/) + { + $stmtA = "SELECT dialplan_number,server_ip FROM phones where login='$option_route_value[$j]';"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsP=$sthA->rows; + if ($sthArowsP > 0) + { + @aryA = $sthA->fetchrow_array; + $Pdialplan = "$aryA[0]"; + $Pserver_ip = "$aryA[1]"; + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + if( $Pserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $DIALstring = "$a$S$b$S$c$S$d$S"; + } + $call_menu_line .= "exten => $option_value[$j],$PRI,Goto(default,$DIALstring$Pdialplan,1)\n"; + } + $sthA->finish(); + } + + if ($option_value[$j] =~ /t/) + { + $call_menu_timeout_ext = "$call_menu_line"; + } + if ($option_value[$j] =~ /i/) + { + $call_menu_invalid_ext = "$call_menu_line"; + } + if ($option_value[$j] !~ /i|t/) + { + $call_menu_options_ext .= "$call_menu_line"; + } + } + if ($DBX>0) {print "$i|$j| $menu_id[$i]|$option_value[$j]\n";} + $j++; + } + $sthA->finish(); + + $menu_prompt_ext=''; + if ($menu_prompt[$i] =~ /\|/) + { + @menu_prompts_array = split(/\|/,$menu_prompt[$i]); + $w=0; + foreach(@menu_prompts_array) + { + if (length($menu_prompts_array[$w])>0) + {$menu_prompt_ext .= "exten => s,n,Background($menu_prompts_array[$w])\n";} + $w++; + } + } + else + {$menu_prompt_ext .= "exten => s,n,Background($menu_prompt[$i])\n";} + + $call_menu_ext .= "\n"; + $call_menu_ext .= "; $menu_name[$i]\n"; + $call_menu_ext .= "[$menu_id[$i]]\n"; + $call_menu_ext .= "exten => s,1,AGI(agi-VDAD_inbound_calltime_check.agi,$tracking_group[$i]-----$track_in_vdac[$i]-----$menu_id[$i]-----$time_check_scheme-----$time_check_route-----$time_check_route_value-----$time_check_route_context)\n"; + $call_menu_ext .= "$menu_prompt_ext"; + if ($menu_timeout[$i] > 0) + {$call_menu_ext .= "exten => s,n,WaitExten($menu_timeout[$i])\n";} + $k=0; + while ($k < $menu_repeat[$i]) + { + $call_menu_ext .= "$menu_prompt_ext"; + if ($menu_timeout[$i] > 0) + {$call_menu_ext .= "exten => s,n,WaitExten($menu_timeout[$i])\n";} + $k++; + } + # $call_menu_ext .= "exten => s,n,Hangup\n"; + $call_menu_ext .= "\n"; + $call_menu_ext .= "$call_menu_options_ext"; + $call_menu_ext .= "\n"; + + if (length($call_menu_timeout_ext) < 1) + { + if ( (length($menu_timeout_prompt[$i])>0) && ($menu_timeout_prompt[$i] !~ /NONE/) ) + { + $call_menu_ext .= "exten => t,1,Playback($menu_timeout_prompt[$i])\n"; + $call_menu_ext .= "exten => t,n,Goto(s,2)\n"; + } + else + { + $call_menu_ext .= "exten => t,1,Goto(s,2)\n"; + } + } + else + { + $call_menu_ext .= "$call_menu_timeout_ext"; + } + if (length($call_menu_invalid_ext) < 1) + { + if ( (length($menu_invalid_prompt[$i])>0) && ($menu_invalid_prompt[$i] !~ /NONE/) ) + { + $call_menu_ext .= "exten => i,1,Playback($menu_invalid_prompt[$i])\n"; + $call_menu_ext .= "exten => i,n,Goto(s,2)\n"; + } + else + { + $call_menu_ext .= "exten => i,1,Goto(s,2)\n"; + } + } + else + { + $call_menu_ext .= "$call_menu_invalid_ext"; + } + + $call_menu_ext .= "; hangup\n"; + $call_menu_ext .= 'exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})'; + + if (length($custom_dialplan_entry[$i]) > 4) + { + $call_menu_ext .= "\n\n"; + $call_menu_ext .= "; custom dialplan entries\n"; + $call_menu_ext .= "$custom_dialplan_entry[$i]\n"; + } + + $call_menu_ext .= "\n\n"; + + $i++; + } + ##### END Generate the Call Menu entries ##### + + + + ##### BEGIN generate voicemail accounts for all distinct phones on dedicated voicemail server + if ($THISserver_voicemail > 0) + { + $vm=''; + + ##### Get the distinct phone entries ##### + $stmtA = "SELECT distinct(voicemail_id) FROM phones where active='Y' order by voicemail_id;"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $voicemail[$i] = "$aryA[0]"; + $i++; + } + $sthA->finish(); + + $i=0; + while ($sthArows > $i) + { + ##### Get the distinct phone entries ##### + $stmtA = "SELECT extension,pass,email,delete_vm_after_email FROM phones where active='Y' and voicemail_id='$voicemail[$i]';"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsX=$sthA->rows; + if ($sthArowsX > 0) + { + @aryA = $sthA->fetchrow_array; + $extension[$i] = $aryA[0]; + $pass[$i] = $aryA[1]; + $email[$i] = $aryA[2]; + $delete_vm_after_email[$i] = $aryA[3]; + } + $sthA->finish(); + + if ($delete_vm_after_email[$i] =~ /Y/) + {$vm .= "$voicemail[$i] => $pass[$i],$extension[$i] Mailbox,$email[$i],,|delete=yes\n";} + else + {$vm .= "$voicemail[$i] => $pass[$i],$extension[$i] Mailbox,$email[$i]\n";} + + $i++; + } + + ##### Get the other voicemail box entries ##### + $stmtA = "SELECT voicemail_id,fullname,pass,email,delete_vm_after_email FROM vicidial_voicemail where active='Y';"; + # print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + $vm .= "\n"; + $vm .= "; Other Voicemail Entries:\n"; + } + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $voicemail_id[$i] = $aryA[0]; + $fullname[$i] = $aryA[1]; + $pass[$i] = $aryA[2]; + $email[$i] = $aryA[3]; + $delete_vm_after_email[$i] = $aryA[4]; + + if ($delete_vm_after_email[$i] =~ /Y/) + {$vm .= "$voicemail_id[$i] => $pass[$i],$fullname[$i],$email[$i],,|delete=yes\n";} + else + {$vm .= "$voicemail_id[$i] => $pass[$i],$fullname[$i],$email[$i]\n";} + + $i++; + } + $sthA->finish(); + } + ##### END generate voicemail accounts for all distinct phones on dedicated voicemail server + + + + ##### BEGIN generate meetme entries for this server + $mm = "; ViciDial Conferences:\n"; + + ### Find vicidial_conferences on this server + $stmtA = "SELECT conf_exten FROM vicidial_conferences where server_ip='$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsVC=$sthA->rows; + $j=0; + while ($sthArowsVC > $j) + { + @aryA = $sthA->fetchrow_array; + $vc_meetme[$j] = $aryA[0]; + $j++; + } + $sthA->finish(); + + $j=0; + while ($sthArowsVC > $j) + { + $mm .= "conf => $vc_meetme[$j]\n"; + $j++; + } + + $mm .= "\n"; + $mm .= "; Conferences:\n"; + + ### Find conferences on this server + $stmtA = "SELECT conf_exten FROM conferences where server_ip='$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsC=$sthA->rows; + $j=0; + while ($sthArowsC > $j) + { + @aryA = $sthA->fetchrow_array; + $meetme[$j] = $aryA[0]; + $j++; + } + $sthA->finish(); + + $j=0; + while ($sthArowsC > $j) + { + $mm .= "conf => $meetme[$j]\n"; + $j++; + } + ##### END generate meetme entries for this server + + + + ##### BEGIN generate music on hold entries for this server + $moh=''; + + ### Find music on hold contexts + $stmtA = "SELECT moh_id,moh_name,random FROM vicidial_music_on_hold where remove='N' and active='Y' and moh_id NOT IN('astdb','sounds','agi-bin','keys');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsM=$sthA->rows; + $j=0; + while ($sthArowsM > $j) + { + @aryA = $sthA->fetchrow_array; + $moh_id[$j] = $aryA[0]; + $moh_name[$j] = $aryA[1]; + $random[$j] = $aryA[2]; + $j++; + } + $sthA->finish(); + + $j=0; + while ($sthArowsM > $j) + { + $moh .= "; $moh_name[$j]\n"; + $moh .= "[$moh_id[$j]]\n"; + $moh .= "mode=files\n"; + $moh .= "directory=/var/lib/asterisk/$moh_id[$j]\n"; + if ($random[$j] =~ /Y/) + {$moh .= "random=yes\n";} + $moh .= "\n"; + + $j++; + } + + ##### END generate music on hold entries for this server + + + + if ($DB) {print "writing auto-gen conf files\n";} + + open(ext, ">/etc/asterisk/BUILDextensions-vicidial.conf") || die "can't open /etc/asterisk/BUILDextensions-vicidial.conf: $!\n"; + open(iax, ">/etc/asterisk/BUILDiax-vicidial.conf") || die "can't open /etc/asterisk/BUILDiax-vicidial.conf: $!\n"; + open(sip, ">/etc/asterisk/BUILDsip-vicidial.conf") || die "can't open /etc/asterisk/BUILDsip-vicidial.conf: $!\n"; + open(vm, ">/etc/asterisk/BUILDvoicemail-vicidial.conf") || die "can't open /etc/asterisk/BUILDvoicemail-vicidial.conf: $!\n"; + open(moh, ">/etc/asterisk/BUILDmusiconhold-vicidial.conf") || die "can't open /etc/asterisk/BUILDmusiconhold-vicidial.conf: $!\n"; + open(mm, ">/etc/asterisk/BUILDmeetme-vicidial.conf") || die "can't open /etc/asterisk/BUILDmeetme-vicidial.conf: $!\n"; + + print ext "; WARNING- THIS FILE IS AUTO-GENERATED BY VICIDIAL, ANY EDITS YOU MAKE WILL BE LOST\n"; + print ext "$ext\n"; + print ext "$call_menu_ext\n"; + print ext "[vicidial-auto]\n"; + print ext 'exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})'; + print ext "\n"; + print ext "$Lext\n"; + print ext "$Vext\n"; + print ext "$Pext\n"; + print ext "\n; END OF FILE\n"; + + print iax "; WARNING- THIS FILE IS AUTO-GENERATED BY VICIDIAL, ANY EDITS YOU MAKE WILL BE LOST\n"; + print iax "$iax\n"; + print iax "$Liax\n"; + print iax "$Piax\n"; + print iax "\n; END OF FILE\n"; + + print sip "; WARNING- THIS FILE IS AUTO-GENERATED BY VICIDIAL, ANY EDITS YOU MAKE WILL BE LOST\n"; + print sip "$sip\n"; + print sip "$Lsip\n"; + print sip "$Psip\n"; + print sip "\n; END OF FILE\n"; + + print vm "; WARNING- THIS FILE IS AUTO-GENERATED BY VICIDIAL, ANY EDITS YOU MAKE WILL BE LOST\n"; +# print vm "[vicidial-auto]\n"; + print vm "$vm\n"; + print vm "\n; END OF FILE\n"; + + print moh "; WARNING- THIS FILE IS AUTO-GENERATED BY VICIDIAL, ANY EDITS YOU MAKE WILL BE LOST\n"; + print moh "$moh\n"; + print moh "\n; END OF FILE\n"; + + print mm "; WARNING- THIS FILE IS AUTO-GENERATED BY VICIDIAL, ANY EDITS YOU MAKE WILL BE LOST\n"; + print mm "$mm\n"; + print mm "\n; END OF FILE\n"; + + close(ext); + close(iax); + close(sip); + close(vm); + close(moh); + close(mm); + + ### find cmp binary + $cmpbin = ''; + if ( -e ('/bin/cmp')) {$cmpbin = '/bin/cmp';} + else + { + if ( -e ('/usr/bin/cmp')) {$cmpbin = '/usr/bin/cmp';} + else + { + if ( -e ('/usr/local/bin/cmp')) {$cmpbin = '/usr/local/bin/cmp';} + else + { + print "Can't find cmp binary! Exiting...\n"; + exit; + } + } + } + + if ( !-e ('/etc/asterisk/extensions-vicidial.conf')) + {`echo -e \"; END OF FILE\n\" > /etc/asterisk/extensions-vicidial.conf`;} + + if ( !-e ('/etc/asterisk/iax-vicidial.conf')) + {`echo -e \"; END OF FILE\n\" > /etc/asterisk/iax-vicidial.conf`;} + + if ( !-e ('/etc/asterisk/sip-vicidial.conf')) + {`echo -e \"; END OF FILE\n\" > /etc/asterisk/sip-vicidial.conf`;} + + if ( !-e ('/etc/asterisk/voicemail-vicidial.conf')) + {`echo -e \"; END OF FILE\n\" > /etc/asterisk/voicemail-vicidial.conf`;} + + if ( !-e ('/etc/asterisk/musiconhold-vicidial.conf')) + {`echo -e \"; END OF FILE\n\" > /etc/asterisk/musiconhold-vicidial.conf`;} + + if ( !-e ('/etc/asterisk/meetme-vicidial.conf')) + {`echo -e \"; END OF FILE\n\" > /etc/asterisk/meetme-vicidial.conf`;} + + use File::Compare; + + $extCMP = compare("/etc/asterisk/BUILDextensions-vicidial.conf","/etc/asterisk/extensions-vicidial.conf"); + $iaxCMP = compare("/etc/asterisk/BUILDiax-vicidial.conf","/etc/asterisk/iax-vicidial.conf"); + $sipCMP = compare("/etc/asterisk/BUILDsip-vicidial.conf","/etc/asterisk/sip-vicidial.conf"); + $vmCMP = compare("/etc/asterisk/BUILDvoicemail-vicidial.conf","/etc/asterisk/voicemail-vicidial.conf"); + $mohCMP = compare("/etc/asterisk/BUILDmusiconhold-vicidial.conf","/etc/asterisk/musiconhold-vicidial.conf"); + $mmCMP = compare("/etc/asterisk/BUILDmeetme-vicidial.conf","/etc/asterisk/meetme-vicidial.conf"); + + sleep(1); + + ### reload Asterisk + if ($DB) {print "reloading asterisk modules:\n";} + if ($asterisk_version =~ /^1.2/) + { + if ($extCMP > 0) + { + `cp -f /etc/asterisk/BUILDextensions-vicidial.conf /etc/asterisk/extensions-vicidial.conf`; + `screen -XS asterisk eval 'stuff "extensions reload\015"'`; + if ($DB) {print "extensions reload\n";} + sleep(1); + } + if ($sipCMP > 0) + { + `cp -f /etc/asterisk/BUILDsip-vicidial.conf /etc/asterisk/sip-vicidial.conf`; + `screen -XS asterisk eval 'stuff "sip reload\015"'`; + if ($DB) {print "sip reload\n";} + sleep(1); + } + if ($iaxCMP > 0) + { + `cp -f /etc/asterisk/BUILDiax-vicidial.conf /etc/asterisk/iax-vicidial.conf`; + `screen -XS asterisk eval 'stuff "iax2 reload\015"'`; + if ($DB) {print "iax reload\n";} + sleep(1); + } + if ($vmCMP > 0) + { + `cp -f /etc/asterisk/BUILDvoicemail-vicidial.conf /etc/asterisk/voicemail-vicidial.conf`; + `screen -XS asterisk eval 'stuff "reload app_voicemail.so\015"'`; + if ($DB) {print "reload app_voicemail.so\n";} + sleep(1); + } + if ($mohCMP > 0) + { + `cp -f /etc/asterisk/BUILDmusiconhold-vicidial.conf /etc/asterisk/musiconhold-vicidial.conf`; + `screen -XS asterisk eval 'stuff "moh reload\015"'`; + if ($DB) {print "moh reload\n";} + sleep(1); + } + if ($mmCMP > 0) + { + `cp -f /etc/asterisk/BUILDmeetme-vicidial.conf /etc/asterisk/meetme-vicidial.conf`; + `screen -XS asterisk eval 'stuff "reload app_meetme.so\015"'`; + if ($DB) {print "reload app_meetme.so\n";} + sleep(1); + } + } + else + { + if ($extCMP > 0) + { + `cp -f /etc/asterisk/BUILDextensions-vicidial.conf /etc/asterisk/extensions-vicidial.conf`; + `screen -XS asterisk eval 'stuff "dialplan reload\015"'`; + if ($DB) {print "dialplan reload\n";} + sleep(1); + } + if ($sipCMP > 0) + { + `cp -f /etc/asterisk/BUILDsip-vicidial.conf /etc/asterisk/sip-vicidial.conf`; + `screen -XS asterisk eval 'stuff "sip reload\015"'`; + if ($DB) {print "sip reload\n";} + sleep(1); + } + if ($iaxCMP > 0) + { + `cp -f /etc/asterisk/BUILDiax-vicidial.conf /etc/asterisk/iax-vicidial.conf`; + `screen -XS asterisk eval 'stuff "iax2 reload\015"'`; + if ($DB) {print "iax2 reload\n";} + sleep(1); + } + if ($vmCMP > 0) + { + `cp -f /etc/asterisk/BUILDvoicemail-vicidial.conf /etc/asterisk/voicemail-vicidial.conf`; + `screen -XS asterisk eval 'stuff "module reload app_voicemail.so\015"'`; + if ($DB) {print "module reload app_voicemail.so\n";} + sleep(1); + } + if ($mohCMP > 0) + { + `cp -f /etc/asterisk/BUILDmusiconhold-vicidial.conf /etc/asterisk/musiconhold-vicidial.conf`; + `screen -XS asterisk eval 'stuff "moh reload\015"'`; + if ($DB) {print "moh reload\n";} + sleep(1); + } + if ($mmCMP > 0) + { + `cp -f /etc/asterisk/BUILDmeetme-vicidial.conf /etc/asterisk/meetme-vicidial.conf`; + `screen -XS asterisk eval 'stuff "module reload app_meetme.so\015"'`; + if ($DB) {print "module reload app_meetme.so\n";} + sleep(1); + } + } + + `rm -f /etc/asterisk/BUILDextensions-vicidial.conf`; + `rm -f /etc/asterisk/BUILDiax-vicidial.conf`; + `rm -f /etc/asterisk/BUILDsip-vicidial.conf`; + `rm -f /etc/asterisk/BUILDvoicemail-vicidial.conf`; + `rm -f /etc/asterisk/BUILDmusiconhold-vicidial.conf`; + `rm -f /etc/asterisk/BUILDmeetme-vicidial.conf`; + + } +################################################################################ +##### END Creation of auto-generated conf files +################################################################################ + + + + + + + + +################################################################################ +##### BEGIN Audio Store sync +################################################################################ +$upload_audio = 0; +$upload_flag = ''; +$soundsec=0; + +if ( ($active_voicemail_server =~ /$server_ip/) && ((length($active_voicemail_server)) eq (length($server_ip))) ) + { + if (-e "/prompt_count.txt") + { + open(test, "/prompt_count.txt") || die "can't open /prompt_count.txt: $!\n"; + @test = ; + close(test); + chomp($test[0]); + $test[0] = ($test[0] + 85100000); + $last_file_gsm = "$test[0].gsm"; + $last_file_wav = "$test[0].wav"; + + if (-e "$PATHsounds/$last_file_gsm") + { + $sounddate = (-M "$PATHsounds/$last_file_gsm"); + $soundsec = ($sounddate * 86400); + } + if (-e "$PATHsounds/$last_file_wav") + { + $sounddate = (-M "$PATHsounds/$last_file_wav"); + $soundsec = ($sounddate * 86400); + } + if ($DB) {print "age of last audio prompt file: |$sounddate|$soundsec| ($PATHsounds/$last_file_gsm|$last_file_wav)\n";} + if ( ($soundsec > 300) && ($soundsec <= 360) ) + { + $upload_audio = 1; + $upload_flag = '--upload'; + } + } + } + +if ( ($active_asterisk_server =~ /Y/) && ( ($sounds_update =~ /Y/) || ($upload_audio > 0) ) ) + { + if ($sounds_central_control_active > 0) + { + if ($DB) {print "running audio store sync process...\n";} + `/usr/bin/screen -d -m -S AudioStore $PATHhome/ADMIN_audio_store_sync.pl $upload_flag 2>/dev/null 1>&2`; + } + } +################################################################################ +##### END Audio Store sync +################################################################################ + + + + + + +################################################################################ +##### BEGIN process triggers +################################################################################ +$stmtA = "SELECT trigger_id,user,trigger_lines FROM vicidial_process_triggers where server_ip='$server_ip' and trigger_run='1' and trigger_time < NOW() order by trigger_time limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthBrows=$sthA->rows; +if ($sthBrows > 0) + { + @aryA = $sthA->fetchrow_array; + $trigger_id = "$aryA[0]"; + $user = "$aryA[1]"; + $trigger_lines = "$aryA[2]"; + } +$sthA->finish(); + +if ($sthBrows > 0) + { + $stmtA="UPDATE vicidial_process_triggers SET trigger_run='0' where trigger_id='$trigger_id';"; + $affected_rows = $dbhA->do($stmtA); + + $MT[0]=''; + $trigger_results=''; + if ($DB) {print "running process trigger: $trigger_id\n";} + @triggers = split(/\|/,$trigger_lines); + $i=0; + foreach(@triggers) + { + $trigger_results .= "$triggers[$i]\n"; + @output=@MT; + @output = `$triggers[$i]`; + $m=0; + foreach(@output) + { + $trigger_results .= "$output[$m]"; + $m++; + } + + $i++; + } + if ($DB) {print "DONE\n";} + if ($DB) {print "$trigger_results\n";} + + $trigger_lines =~ s/;|\\|\"//gi; + $trigger_results =~ s/;|\\|\"//gi; + + $stmtA="INSERT INTO vicidial_process_trigger_log SET trigger_id='$trigger_id',user='$user',trigger_time=NOW(),server_ip='$server_ip',trigger_lines='$trigger_lines',trigger_results='$trigger_results';"; + $Iaffected_rows = $dbhA->do($stmtA); + if ($DB) {print "FINISHED: $affected_rows|$Iaffected_rows";} + + } +################################################################################ +##### END process triggers +################################################################################ + + + + + +################################################################################ +##### BEGIN reset lists +################################################################################ +$stmtA = "SELECT list_id FROM vicidial_lists where active='Y' and reset_time LIKE \"%$reset_test%\";"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthBrows=$sthA->rows; +$i=0; +while ($sthBrows > $i) + { + @aryA = $sthA->fetchrow_array; + $list_id[$i] = "$aryA[0]"; + $i++; + } +$sthA->finish(); + +if ($DBX) {print "RESET LIST: $i|$reset_test";} + +$i=0; +while ($sthBrows > $i) + { + $stmtA="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id[$i]';"; + $affected_rows = $dbhA->do($stmtA); + + $SQL_log = "$stmtA|"; + $SQL_log =~ s/;|\\|\'|\"//gi; + + if ($DB) {print "DONE\n";} + if ($DB) {print "$trigger_results\n";} + + $stmtA="INSERT INTO vicidial_admin_log set event_date='$now_date', user='VDAD', ip_address='1.1.1.1', event_section='LISTS', event_type='RESET', record_id='$list_id[$i]', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='$affected_rows leads reset';"; + $Iaffected_rows = $dbhA->do($stmtA); + if ($DB) {print "FINISHED: $affected_rows|$Iaffected_rows|$stmtA";} + + $i++; + } +################################################################################ +##### END reset lists +################################################################################ + + + + + + + +if ($DB) {print "DONE\n";} + +exit; + + + +sub leading_zero($) +{ + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_restart_roll_logs.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_restart_roll_logs.pl new file mode 100644 index 00000000..741ac4af --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_restart_roll_logs.pl @@ -0,0 +1,51 @@ +#!/usr/bin/perl +# +# ADMIN_restart_roll_logs.pl version 2.2.0 +# +# script to roll the Asterisk logs on machine restart +# +# have this run on the astersik server +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES: +# 90311-0921 - Added /var/log/asterisk/screenlog log rolling +# 90508-0535 - Changes root screenlog to /var/log/astguiclient +# + +($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"; + + +print "rolling Asterisk messages log...\n"; +`mv -f /var/log/asterisk/messages /var/log/asterisk/messages.$now_date`; + +print "rolling Asterisk event log...\n"; +`mv -f /var/log/asterisk/event_log /var/log/asterisk/event_log.$now_date`; + +print "rolling Asterisk cdr logs...\n"; +`mv -f /var/log/asterisk/cdr-csv/Master.csv /var/log/asterisk/cdr-csv/Master.csv.$now_date`; +`mv -f /var/log/asterisk/cdr-custom/Master.csv /var/log/asterisk/cdr-custom/Master.csv.$now_date`; + +print "rolling Asterisk screen log...\n"; +`mv -f /var/log/astguiclient/screenlog.0 /var/log/astguiclient/screenlog.0.$now_date`; + +print "rolling Asterisk root screen log...\n"; +`mv -f /root/screenlog.0 /root/screenlog.0.$now_date`; + +print "rolling Asterisk var log screen log...\n"; +`mv -f /var/log/asterisk/screenlog.0 /var/log/asterisk/screenlog.0.$now_date`; + + +print "FINISHED... EXITING\n"; + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_timeclock_auto_logout.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_timeclock_auto_logout.pl new file mode 100644 index 00000000..434601b4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_timeclock_auto_logout.pl @@ -0,0 +1,276 @@ +#!/usr/bin/perl +# +# ADMIN_timeclock_auto_logout.pl version 2.2.0 *DBI-version* +# +# DESCRIPTION: +# forces logout of all users still logged into the timeclock +# +# This script is launched by the ADMIN_keepalive_ALL.pl script with the '9' flag +# defined in astguiclient.conf +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 80526-0958 - First Build +# 80604-0733 - Fixed minor bug in update +# 90812-0103 - Formatting fixes +# + +# constants +$DB=0; # Debug flag, set to 0 for no debug messages, On an active system this will generate lots of lines of output per minute +$US='__'; +$MT[0]=''; + +$secT = time(); +$now_date_epoch = $secT; +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +$file_date = "$year-$mon-$mday"; +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$VDL_date = "$year-$mon-$mday 00:00:01"; +$inactive_epoch = ($secT - 60); +$HHMM = "$hour$min"; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options(must stay in this order):\n [--debug] = debug\n [--debugX] = super debug\n [-t] = test\n [--force-run] = force run even if already run for the day\n\n"; + exit; + } + else + { + if ($args =~ /--force-run/i) + { + $force_run=1; + print "\n----- FORCE RUN -----\n\n"; + } + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + } + } +else + { + print "no command line options set\n"; + } + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VDALOGfile) {$VDALOGfile = "$PATHlogs/timeclockautologout.$year-$mon-$mday";} +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +### Grab Server values from the database + $stmtA = "SELECT vd_server_logs,local_gmt FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = "$aryA[0]"; + $DBSERVER_GMT = "$aryA[1]"; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + if (length($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } + $sthA->finish(); + +### Grab system_settings values from the database + $stmtA = "SELECT timeclock_end_of_day,timeclock_last_reset_date FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $timeclock_end_of_day = "$aryA[0]"; + $timeclock_last_reset_date = "$aryA[1]"; + } + $sthA->finish(); + + + + +### check to see if the script should run +$nowtest = ($HHMM+0); +$logtest = ($timeclock_end_of_day+0); +if ( ($force_run > 0) || ( ($nowtest >= $logtest) && ($timeclock_last_reset_date ne "$file_date") ) ) + { + @user=@MT; + + ### grab users that are currently logged-in to the timeclock + $stmtA = "SELECT user,user_group,event_epoch,status,ip_address,shift_id from vicidial_timeclock_status where status IN('START','LOGIN')"; + + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $user[$rec_count] = "$aryA[0]"; + $user_group[$rec_count] = "$aryA[1]"; + $event_epoch[$rec_count] = "$aryA[2]"; + $status[$rec_count] = "$aryA[3]"; + $ip_address[$rec_count] = "$aryA[4]"; + $shift_id[$rec_count] = "$aryA[5]"; + + $rec_count++; + } + $sthA->finish(); + if ($DB) {print "USERS TO LOG OUT OF THE TIMECLOCK: $rec_count\n";} + + ##### LOOP THROUGH EACH USER AND LOG THEM OUT OF THE TIMECLOCK ##### + $i=0; + while($i < $rec_count) + { + if ($DBX) {print " USER: $user[$i]\n";} + $event_string = " USER: $user[$i]"; + &event_logger; + + $last_action_sec = ($now_date_epoch - $event_epoch[$i]); + $stmtA = "INSERT INTO vicidial_timeclock_log set event='AUTOLOGOUT', user='$user[$i]', user_group='$user_group[$i]', event_epoch='$now_date_epoch', ip_address='$VARserver_ip', login_sec='$last_action_sec', event_date='$now_date';"; + $affected_rows = $dbhA->do($stmtA); + $timeclock_id = $dbhA->{'mysql_insertid'}; + if ($DBX) {print "|$affected_rows|$stmtA|\n";} + $event_string = "USER VTL INSERT|$affected_rows|$timeclock_id|$stmtA|"; + &event_logger; + + $stmtA = "UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user[$i]' order by timeclock_id desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "|$affected_rows|$stmtA|\n";} + $event_string = "USER VTL UPDATE|$affected_rows|$stmtA|"; + &event_logger; + + $stmtA = "UPDATE vicidial_timeclock_status set status='AUTOLOGOUT', user_group='$user_group[$i]', event_epoch='$now_date_epoch', ip_address='$VARserver_ip' where user='$user[$i]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "|$affected_rows|$stmtA|\n";} + $event_string = "USER VTS UPDATE|$affected_rows|$stmtA|"; + &event_logger; + + $stmtA = "INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='AUTOLOGOUT', user='$user[$i]', user_group='$user_group[$i]', event_epoch='$now_date_epoch', ip_address='$VARserver_ip', login_sec='$last_action_sec', event_date='$now_date';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "|$affected_rows|$stmtA|\n";} + $event_string = "USER VTAL INSERT|$affected_rows|$stmtA|"; + &event_logger; + + $stmtA = "UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user[$i]' order by timeclock_id desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "|$affected_rows|$stmtA|\n";} + $event_string = "USER VTAL UPDATE|$affected_rows|$stmtA|"; + &event_logger; + + $i++; + } + + $stmtA = "UPDATE system_settings set timeclock_last_reset_date='$file_date';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "|$affected_rows|$stmtA|\n";} + $event_string = "SYSTEM SETTINGS UPDATE|$affected_rows|$stmtA|"; + &event_logger; + + } +else + { + print "cannot run: |$force_run|$HHMM($nowtest)|$timeclock_end_of_day($logtest)|$timeclock_last_reset_date|$file_date|\n"; + } + +if($DB) + { + ### calculate time to run script ### + $secY = time(); + $secZ = ($secY - $secT); + + if (!$q) {print "DONE. Script execution time in seconds: $secZ\n";} + } + +$dbhA->disconnect(); + +exit; + + + +sub event_logger + { + if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$VDALOGfile") + || die "Can't open $VDALOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } + diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_update_archive_url.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_update_archive_url.pl new file mode 100644 index 00000000..3451bf0a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_update_archive_url.pl @@ -0,0 +1,151 @@ +#!/usr/bin/perl + +# ADMIN_update_archive_url.pl - updates the url for the archive server +# in the recording_log table +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 90609-1609 - mikec - created the script + +use DBI; + +# function to print out the help for this script +sub print_help { + print "$0 - updates the url in the recording_log\n"; + print "command-line options:\n"; + print " [--debug] = shows the sql as it is being executed.\n"; + print " [--test] = activates debuging and does not actually\n"; + print " execute the updates.\n"; + print " [--old-server-url] = the old url used to access the recordings.\n"; + print " This is a required argument.\n"; + print " [--new-server-url] = the new url used to access the recordings.\n"; + print " This is a required argument.\n\n"; + + exit; +} + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +# read in the conf file +open(CONFIG, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@config = ; +close(CONFIG); +$i=0; +foreach(@config) { + $line = $config[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ($line =~ /^VARserver_ip/) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ($line =~ /^VARDB_server/) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ($line =~ /^VARDB_database/) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ($line =~ /^VARDB_user/) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ($line =~ /^VARDB_pass/) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ($line =~ /^VARDB_port/) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; +} + +# initialize the variables +$old_url = ""; +$new_url = ""; +$DB = 0; +$TEST = 0; + +# begin parsing run-time options +if ( length($ARGV[0]) > 1 ) { + $i=0; + while ($#ARGV >= $i) { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) { + &print_help; + } else { + # activate debugging + if ($args =~ /--debug/i) { + $DB=1; + } + + # activate test mode + if ($args =~ /--test/i) { + $DB=1; + $TEST=1; + } + + # get the old server url + if ($args =~ /--old-server-url=/i) { + @CLIoldurlARY = split(/--old-server-url=/,$args); + @CLIoldurlARX = split(/ /,$CLIoldurlARY[1]); + $old_url = $CLIoldurlARX[0]; + } + + # get the new server url + if ($args =~ /--new-server-url=/i) { + @CLInewurlARY = split(/--new-server-url=/,$args); + @CLInewurlARX = split(/ /,$CLInewurlARY[1]); + $new_url = $CLInewurlARX[0]; + } + } +} else { + # we didnt get any arguments + &print_help; +} + +# make sure they set something +if (( $new_url eq "") || ( $old_url eq "")) { + &print_help; +} + +# connect to the db +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +# get all the recordings with the old_url +$stmtA = "SELECT recording_id, location from recording_log where location LIKE '$old_url%';"; +if ( $DB ) { + print $stmtA . "\n"; +} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; + +# cycle through them +while ($sthArows > $rec_count) { + @aryA = $sthA->fetchrow_array; + + # get the parameters from the DB + $rec_id = "$aryA[0]"; + $location = "$aryA[1]"; + + # change the url + $new_loc = $location; + $new_loc =~ s/$old_url/$new_url/gi; + + # UPDATE THE recording_log RECORD + $stmtB = "UPDATE recording_log SET location='$new_loc' where recording_id='$rec_id';"; + if ( $DB ) { + print $stmtB . "\n"; + } + + # execute the update if we are not in test mode + if ( $TEST == 0 ) { + $sthB = $dbhA->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthB->finish(); + } + $rec_count++; +} + +print "Updated $rec_count records in the recording_log table\n"; + +$sthA->finish(); + +$dbhA->disconnect(); \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/bin/ADMIN_update_server_ip.pl b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_update_server_ip.pl new file mode 100644 index 00000000..b5d0e1a6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/ADMIN_update_server_ip.pl @@ -0,0 +1,490 @@ +#!/usr/bin/perl + +# ADMIN_update_server_ip.pl - updates IP address in DB and conf file +# +# This script is designed to update all database tables and the local +# astguiclient.conf file to reflect a change in IP address. The script will +# automatically default to the first eth address in the ifconfig output. +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 71205-2144 - Added display of extensions.conf example for call routing +# 80321-0220 - Updated for new settings +# 90211-1247 - Added asterisk version +# 90630-2256 - vicidial_process_triggers +# +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARold_server_ip = $line; $VARold_server_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +############################################ + +$CLIold_server_ip=0; +$CLIserver_ip=0; + +$secX = time(); + +# constants +$DB=1; # Debug flag, set to 0 for no debug messages, lots of output +$US='_'; +$MT[0]=''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "ADMIN_update_server_ip.pl - updates server_ip in the $VARDB_database\n"; + print "database and in the local /etc/astguiclient.conf file.\n"; + print "\n"; + print "command-line options:\n"; + print " [--help] = this help screen\n"; + print " [--debug] = verbose debug messages\n"; + print " [--auto] = no prompts\n"; + print "configuration options:\n"; + print " [--old-server_ip=192.168.0.1] = define old server IP address at runtime\n"; + print " [--server_ip=192.168.0.2] = define new server IP address at runtime\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /--debug/i) # Debug flag + { + $DB=1; + } + if ($args =~ /--auto/i) # no prompts flag + { + $AUTO=1; + } + if ($args =~ /--old-server_ip=/i) # CLI defined old server IP address + { + @CLIoldserver_ipARY = split(/--old-server_ip=/,$args); + @CLIoldserver_ipARX = split(/ /,$CLIoldserver_ipARY[1]); + if (length($CLIoldserver_ipARX[0])>2) + { + $VARold_server_ip = $CLIoldserver_ipARX[0]; + $VARold_server_ip =~ s/\/$| |\r|\n|\t//gi; + $CLIold_server_ip=1; + print " CLI defined old server IP: $VARold_server_ip\n"; + } + } + if ($args =~ /--server_ip=/i) # CLI defined server IP address + { + @CLIserver_ipARY = split(/--server_ip=/,$args); + @CLIserver_ipARX = split(/ /,$CLIserver_ipARY[1]); + if (length($CLIserver_ipARX[0])>2) + { + $VARserver_ip = $CLIserver_ipARX[0]; + $VARserver_ip =~ s/\/$| |\r|\n|\t//gi; + $CLIserver_ip=1; + print " CLI defined server IP: $VARserver_ip\n"; + } + } + } + } +else + { + # print "no command line options set\n"; + } +### end parsing run-time options ### + +if (-e "$PATHconf") + { + print "Previous astGUIclient configuration file found at: $PATHconf\n"; + open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; + @conf = ; + close(conf); + $i=0; + foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} +# if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) +# {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARactive_keepalives/) && ($CLIactive_keepalives < 1) ) + {$VARactive_keepalives = $line; $VARactive_keepalives =~ s/.*=//gi;} + if ( ($line =~ /^VARasterisk_version/) && ($CLIasterisk_version < 1) ) + {$VARasterisk_version = $line; $VARasterisk_version =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_dir/) && ($CLIREPORT_dir < 1) ) + {$VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_min_servers/) && ($CLIVARfastagi_log_min_servers < 1) ) + {$VARfastagi_log_min_servers = $line; $VARfastagi_log_min_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_servers/) && ($CLIVARfastagi_log_max_servers < 1) ) + {$VARfastagi_log_max_servers = $line; $VARfastagi_log_max_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_min_spare_servers/) && ($CLIVARfastagi_log_min_spare_servers < 1) ) + {$VARfastagi_log_min_spare_servers = $line; $VARfastagi_log_min_spare_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_spare_servers/) && ($CLIVARfastagi_log_max_spare_servers < 1) ) + {$VARfastagi_log_max_spare_servers = $line; $VARfastagi_log_max_spare_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_requests/) && ($CLIVARfastagi_log_max_requests < 1) ) + {$VARfastagi_log_max_requests = $line; $VARfastagi_log_max_requests =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_checkfordead/) && ($CLIVARfastagi_log_checkfordead < 1) ) + {$VARfastagi_log_checkfordead = $line; $VARfastagi_log_checkfordead =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_checkforwait/) && ($CLIVARfastagi_log_checkforwait < 1) ) + {$VARfastagi_log_checkforwait = $line; $VARfastagi_log_checkforwait =~ s/.*=//gi;} + $i++; + } + } + +if ($AUTO) + { + $manual='n'; + @ip = `/sbin/ifconfig`; + $j=0; + while($#ip>=$j) + { + if ($ip[$j] =~ /inet addr/) {$VARserver_ip = $ip[$j]; $j=1000;} + $j++; + } + $VARserver_ip =~ s/.*addr:| Bcast.*|\r|\n|\t| //gi; + } +else + { + print("\nWould you like to use interactive mode (y/n): [y] "); + $manual = ; + chomp($manual); + } + +if ($manual =~ /n/i) + { + $manual=0; + } +else + { + $config_finished='NO'; + while ($config_finished =~/NO/) + { + print "\nSTARTING SERVER IP ADDRESS CHANGE FOR VICIDIAL...\n"; + + ##### BEGIN old_server_ip propmting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nOld server IP address or press enter for default: [$VARold_server_ip] "); + $PROMPTold_server_ip = ; + chomp($PROMPTold_server_ip); + if (length($PROMPTold_server_ip)>6) + { + $PROMPTold_server_ip =~ s/ |\n|\r|\t|\/$//gi; + $VARold_server_ip=$PROMPTold_server_ip; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END old_server_ip propmting and check ##### + + ##### BEGIN server_ip propmting and check ##### + if (length($VARserver_ip)<7) + { + ### get best guess of IP address from ifconfig output ### + # inet addr:10.10.11.17 Bcast:10.10.255.255 Mask:255.255.0.0 + @ip = `/sbin/ifconfig`; + $j=0; + while($#ip>=$j) + { + if ($ip[$j] =~ /inet addr/) {$VARserver_ip = $ip[$j]; $j=1000;} + $j++; + } + $VARserver_ip =~ s/.*addr:| Bcast.*|\r|\n|\t| //gi; + } + + $continue='NO'; + while ($continue =~/NO/) + { + print("\nserver IP address or press enter for default: [$VARserver_ip] "); + $PROMPTserver_ip = ; + chomp($PROMPTserver_ip); + if (length($PROMPTserver_ip)>6) + { + $PROMPTserver_ip =~ s/ |\n|\r|\t|\/$//gi; + $VARserver_ip=$PROMPTserver_ip; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END server_ip propmting and check ##### + + + + print "\n"; + print " old server_ip: $VARold_server_ip\n"; + print " new server_ip: $VARserver_ip\n"; + print "\n"; + + print("Are these settings correct?(y/n): [y] "); + $PROMPTconfig = ; + chomp($PROMPTconfig); + if ( (length($PROMPTconfig)<1) or ($PROMPTconfig =~ /y/i) ) + { + $config_finished='YES'; + } + } + } + +print "Writing change to astguiclient.conf file: $PATHconf\n"; + +open(conf, ">$PATHconf") || die "can't open $PATHconf: $!\n"; +print conf "# astguiclient.conf - configuration elements for the astguiclient package\n"; +print conf "# this is the astguiclient configuration file \n"; +print conf "# all comments will be lost if you run install.pl again\n"; +print conf "\n"; +print conf "# Paths used by astGUIclient\n"; +print conf "PATHhome => $PATHhome\n"; +print conf "PATHlogs => $PATHlogs\n"; +print conf "PATHagi => $PATHagi\n"; +print conf "PATHweb => $PATHweb\n"; +print conf "PATHsounds => $PATHsounds\n"; +print conf "PATHmonitor => $PATHmonitor\n"; +print conf "PATHDONEmonitor => $PATHDONEmonitor\n"; +print conf "\n"; +print conf "# The IP address of this machine\n"; +print conf "VARserver_ip => $VARserver_ip\n"; +print conf "\n"; +print conf "# Database connection information\n"; +print conf "VARDB_server => $VARDB_server\n"; +print conf "VARDB_database => $VARDB_database\n"; +print conf "VARDB_user => $VARDB_user\n"; +print conf "VARDB_pass => $VARDB_pass\n"; +print conf "VARDB_port => $VARDB_port\n"; +print conf "\n"; +print conf "# Alpha-Numeric list of the astGUIclient processes to be kept running\n"; +print conf "# (value should be listing of characters with no spaces: 123456)\n"; +print conf "# X - NO KEEPALIVE PROCESSES (use only if you want none to be keepalive)\n"; +print conf "# 1 - AST_update\n"; +print conf "# 2 - AST_send_listen\n"; +print conf "# 3 - AST_VDauto_dial\n"; +print conf "# 4 - AST_VDremote_agents\n"; +print conf "# 5 - AST_VDadapt (If multi-server system, this must only be on one server)\n"; +print conf "# 6 - FastAGI_log\n"; +print conf "# 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server)\n"; +print conf "# 8 - ip_relay (used for blind agent monitoring)\n"; +print conf "# 9 - Timeclock auto logout\n"; +print conf "VARactive_keepalives => $VARactive_keepalives\n"; +print conf "\n"; +print conf "# Asterisk version VICIDIAL is installed for\n"; +print conf "VARasterisk_version => $VARasterisk_version\n"; +print conf "\n"; +print conf "# FTP recording archive connection information\n"; +print conf "VARFTP_host => $VARFTP_host\n"; +print conf "VARFTP_user => $VARFTP_user\n"; +print conf "VARFTP_pass => $VARFTP_pass\n"; +print conf "VARFTP_port => $VARFTP_port\n"; +print conf "VARFTP_dir => $VARFTP_dir\n"; +print conf "VARHTTP_path => $VARHTTP_path\n"; +print conf "\n"; +print conf "# REPORT server connection information\n"; +print conf "VARREPORT_host => $VARREPORT_host\n"; +print conf "VARREPORT_user => $VARREPORT_user\n"; +print conf "VARREPORT_pass => $VARREPORT_pass\n"; +print conf "VARREPORT_port => $VARREPORT_port\n"; +print conf "VARREPORT_dir => $VARREPORT_dir\n"; +print conf "\n"; +print conf "# Settings for FastAGI logging server\n"; +print conf "VARfastagi_log_min_servers => $VARfastagi_log_min_servers\n"; +print conf "VARfastagi_log_max_servers => $VARfastagi_log_max_servers\n"; +print conf "VARfastagi_log_min_spare_servers => $VARfastagi_log_min_spare_servers\n"; +print conf "VARfastagi_log_max_spare_servers => $VARfastagi_log_max_spare_servers\n"; +print conf "VARfastagi_log_max_requests => $VARfastagi_log_max_requests\n"; +print conf "VARfastagi_log_checkfordead => $VARfastagi_log_checkfordead\n"; +print conf "VARfastagi_log_checkforwait => $VARfastagi_log_checkforwait\n"; +close(conf); + + +print "\nSTARTING DATABASE TABLES UPDATES PHASE...\n"; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +print " Updating servers table...\n"; +$stmtA = "UPDATE servers SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating phones table...\n"; +$stmtA = "UPDATE phones SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating inbound_numbers table...\n"; +$stmtA = "UPDATE inbound_numbers SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating server_updater table...\n"; +$stmtA = "UPDATE server_updater SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating conferences table...\n"; +$stmtA = "UPDATE conferences SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating vicidial_conferences table...\n"; +$stmtA = "UPDATE vicidial_conferences SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating vicidial_stations table...\n"; +$stmtA = "UPDATE vicidial_stations SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating vicidial_remote_agents table...\n"; +$stmtA = "UPDATE vicidial_remote_agents SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating phone_favorites table...\n"; +$stmtA = "UPDATE phone_favorites SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating vicidial_server_trunks table...\n"; +$stmtA = "UPDATE vicidial_server_trunks SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating vicidial_server_carriers table...\n"; +$stmtA = "UPDATE vicidial_server_carriers SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating vicidial_inbound_dids table...\n"; +$stmtA = "UPDATE vicidial_inbound_dids SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Updating vicidial_process_triggers table...\n"; +$stmtA = "UPDATE vicidial_process_triggers SET server_ip='$VARserver_ip' where server_ip='$VARold_server_ip';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + +print " Setting servers to rebuild conf files...\n"; +$stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print " |$affected_rows|$stmtA|\n";} + + +$dbhA->disconnect(); + +### format the new server_ip dialstring for example to use with extensions.conf +$S='*'; +if( $VARserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VARremDIALstr = "$a$S$b$S$c$S$d"; + } + +print "\n"; +print "SERVER IP ADDRESS CHANGE FOR VICIDIAL FINISHED!\n"; +print "\n"; +#print "If you are not having VICIDIAL auto-generate your conf files, please\n"; +#print "remember to change your extensions.conf entries for the new IP address:\n"; +#print "exten => _$VARremDIALstr*.,1,Goto(default,\${EXTEN:16},1)\n"; +#print "exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)\n"; +#print "exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)\n"; + + +$secy = time(); $secz = ($secy - $secX); $minz = ($secz/60); # calculate script runtime so far +print "\n - process runtime ($secz sec) ($minz minutes)\n"; + + +exit; + + +sub leading_zero($) +{ + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_GSM_SALE_recordings.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_GSM_SALE_recordings.pl new file mode 100644 index 00000000..75e1ae72 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_GSM_SALE_recordings.pl @@ -0,0 +1,164 @@ +#!/usr/bin/perl +# +# AST_CRON_GSM_SALE_recordings.pl version 2.0.5 +# +# IMPORTANT!!! used to delete recordings!!! +# +# runs every day, goes through all recordings to compress only the SALE recordings +# and place them in a special directory +# +# put an entry into the cron of of your asterisk archive to run this script +# every day or however often you desire +# +# This program assumes that recordings are saved as .wav +# should be easy to change this code if you use .gsm instead +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# +# 1112-1245 - first build +# + +$save_statuses = '|SALE|UPSALE|UPSELL|XFER|A1|A2|A3|A4|'; +$save_statusesSQL = "'SALE','UPSALE','UPSELL','XFER','A1','A2','A3','A4'"; +$suffix = '-all.wav'; +$local_DIR = '/home2/cron/RECORDINGS'; +$GSM_DIR = '/home/cron/GSM'; +$use_date_DIRs = 1; + +$secX = time(); + +$TDtarget = ($secX - 36000); # 10 hours ago + +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} + $BEGINdate = "$Tyear-$Tmon-$Tmday 00:00:00"; + $ENDdate = "$Tyear-$Tmon-$Tmday 23:59:59"; + + $BEGINdate = "2007-08-01 00:00:00"; + $ENDdate = "2007-08-31 23:59:59"; + +$soxbin = ''; +if ( -e ('/usr/bin/sox')) {$soxbin = '/usr/bin/sox';} +else + { + if ( -e ('/usr/local/bin/sox')) {$soxbin = '/usr/local/bin/sox';} + else + { + print "Can't find sox binary! Exiting...\n"; + exit; + } + } + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; + + +##### Get the lead_ids of all recordings that are not DELETED or NULL ##### +$stmtA = "SELECT recording_log.lead_id,recording_id,start_time,filename,location,status FROM recording_log,vicidial_log where start_time > '$BEGINdate' and start_time < '$ENDdate' and location IS NOT NULL and location NOT IN('','NOT_FOUND','NOT_FOUND_2','DELETED') and vicidial_log.status IN($save_statusesSQL) and call_date > '$BEGINdate' and call_date < '$ENDdate' and recording_log.lead_id=vicidial_log.lead_id and recording_log.user=vicidial_log.user order by recording_id LIMIT 500000;"; + print "$stmtA\n"; + +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $lead_ids[$i] = "$aryA[0]"; + $recording_ids[$i] = "$aryA[1]"; + $start_times[$i] = "$aryA[2]"; + $filenames[$i] = "$aryA[3]"; + $locations[$i] = "$aryA[4]"; + $status[$i] = "$aryA[5]"; + $i++; + } +$sthA->finish(); + + +##### Go through the list of sales recordings and compress all of them ##### +$i=0; +$WAV='-all.wav'; +$GSM='-all.gsm'; +foreach(@lead_ids) + { + if ($use_date_DIRs) + { + $date_DIR = $start_times[$i]; + $date_DIR =~ s/ .*//gi; + $date_DIR .= "/"; + } + else {$date_DIR=''} + if ( -e ("$GSM_DIR/$date_DIR")) {$nothing=1;} + else {mkdir("$GSM_DIR/$date_DIR");} + if ( -e ("$GSM_DIR/$date_DIR$filenames[$i]$GSM")) + {print "DUPLICATE: $GSM_DIR/$date_DIR$filenames[$i]$GSM EXISTS\n";} + else + { + `$soxbin "$local_DIR/$date_DIR$filenames[$i]$WAV" "$GSM_DIR/$date_DIR$filenames[$i]$GSM"`; + print "$soxbin \"$local_DIR/$date_DIR$filenames[$i]$WAV\" \"$GSM_DIR/$date_DIR$filenames[$i]$GSM\"\n"; + } + $i++; + } + +print "TOTAL COMPRESSED: $i\n"; + +if ($v) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_1_move_VDonly.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_1_move_VDonly.pl new file mode 100644 index 00000000..2b4a803d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_1_move_VDonly.pl @@ -0,0 +1,227 @@ +#!/usr/bin/perl +# +# AST_CRON_audio_1_move_VDonly.pl +# +# This is a STEP-1 program in the audio archival process +# +# IMPORTANT!!! ONLY TO BE USED WHEN ONLY VICIDIAL RECORDINGS ARE ON THE SYSTEM! +# +# runs every 3 minutes and copies the -in recordings in the monitor to the DONE +# directory for further processing. Very important for RAM-drive usage +# +# put an entry into the cron of of your asterisk machine to run this script +# every 3 minutes or however often you desire +# +# ### recording mixing/compressing/ftping scripts +##0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +# 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +# 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM +# 2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM +# +# make sure that the following directories exist: +# /var/spool/asterisk/monitor # default Asterisk recording directory +# /var/spool/asterisk/monitorDONE # where the moved -in files are put +# +# This program assumes that recordings are saved by Asterisk as .wav +# should be easy to change this code if you use .gsm instead +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# +# 80302-1958 - First Build +# 80731-2253 - Changed size comparisons for more efficiency +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [--debug] = debug\n [--debugX] = super debug\n [-t] = test\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + } + } +else + { + #print "no command line options set\n"; + } + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; +$dir2 = "$PATHDONEmonitor"; + +opendir(FILE, "$dir1/"); +@FILES = readdir(FILE); + + +### Loop through files first to gather filesizes +$i=0; +foreach(@FILES) + { + $FILEsize1[$i] = 0; + if ( (length($FILES[$i]) > 4) && (!-d "$dir1/$FILES[$i]") ) + { + $FILEsize1[$i] = (-s "$dir1/$FILES[$i]"); + if ($DBX) {print "$FILES[$i] $FILEsize1[$i]\n";} + } + $i++; + } + +sleep(5); + + +### Loop through files a second time to gather filesizes again 5 seconds later +$i=0; +foreach(@FILES) + { + $FILEsize2[$i] = 0; + + if ( (length($FILES[$i]) > 4) && (!-d "$dir1/$FILES[$i]") ) + { + + $FILEsize2[$i] = (-s "$dir1/$FILES[$i]"); + if ($DBX) {print "$FILES[$i] $FILEsize2[$i]\n\n";} + + if ( ($FILES[$i] !~ /out\.wav|out\.gsm|lost\+found/i) && ($FILEsize1[$i] eq $FILEsize2[$i]) && (length($FILES[$i]) > 4)) + { + $INfile = $FILES[$i]; + $OUTfile = $FILES[$i]; + $OUTfile =~ s/-in\.wav/-out.wav/gi; + $OUTfile =~ s/-in\.gsm/-out.gsm/gi; + $ALLfile = $FILES[$i]; + $ALLfile =~ s/-in\.wav/-all.wav/gi; + $ALLfile =~ s/-in\.gsm/-all.gsm/gi; + $SQLFILE = $FILES[$i]; + $SQLFILE =~ s/-in\.wav|-in\.gsm//gi; + + $stmtA = "select recording_id from recording_log where filename='$SQLFILE' order by recording_id desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $recording_id = "$aryA[0]"; + } + $sthA->finish(); + + if ($DB) {print "|$recording_id|$INfile| |$ALLfile|\n";} + + if (!$T) + { + `mv -f "$dir1/$INfile" "$dir2/$ALLfile"`; + `rm -f "$dir1/$OUTfile"`; + } + else + { + `cp -f "$dir1/$INfile" "$dir2/$ALLfile"`; + } + + $stmtA = "UPDATE recording_log set location='http://$server_ip/RECORDINGS/$ALLfile' where recording_id='$recording_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + + ### sleep for twenty hundredths of a second to not flood the server with disk activity + usleep(1*200*1000); + + } + } + $i++; + } + +if ($DB) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_1_move_mix.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_1_move_mix.pl new file mode 100644 index 00000000..1009e1b8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_1_move_mix.pl @@ -0,0 +1,256 @@ +#!/usr/bin/perl +# +# AST_CRON_audio_1_move_mix.pl +# +# This is a STEP-1 program in the audio archival process +# +# runs every 3 minutes and copies and mixes the -in and -out recordings in the +# monitor to the DONE directory for further processing. Very important for +# RAM-drive usage +# +# put an entry into the cron of of your asterisk machine to run this script +# every 3 minutes or however often you desire +# +# ### recording mixing/compressing/ftping scripts +# 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl --MIX +##0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +# 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM +# 2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM +# +# make sure that the following directories exist: +# /var/spool/asterisk/monitor # default Asterisk recording directory +# /var/spool/asterisk/monitorDONE # where the mixed -all files are put +# +# This program assumes that recordings are saved by Asterisk as .wav +# should be easy to change this code if you use .gsm instead +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# +# 80302-1958 - First Build +# 80731-2253 - Changed size comparisons for more efficiency +# 91105-1353 - Added --MIX option to only check the /var/spool/asterisk/monitor/MIX directory +# + +$MIX=0; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [--debug] = debug\n [--debugX] = super debug\n [-t] = test\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + if ($args =~ /--MIX/i) + { + $MIX=1; + if ($DB) {print "MIX directory audio processing only\n";} + } + } + } +else + { + #print "no command line options set\n"; + } + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +### find soxmix or sox to do the mixing +$soxmixbin = ''; +if ( -e ('/usr/bin/soxmix')) {$soxmixbin = '/usr/bin/soxmix';} +else + { + if ( -e ('/usr/local/bin/soxmix')) {$soxmixbin = '/usr/local/bin/soxmix';} + else + { + if ($DB) {print "Can't find soxmix binary! Trying sox...\n";} + if ( -e ('/usr/bin/sox')) {$soxmixbin = '/usr/bin/sox -m';} + else + { + if ( -e ('/usr/local/bin/sox')) {$soxmixbin = '/usr/local/bin/sox -m';} + else + { + print "Can't find sox binary! Exiting...\n"; + exit; + } + } + } + } + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; +$dir2 = "$PATHDONEmonitor"; + +if ($MIX > 0) + {$dir1 = "$PATHmonitor/MIX";} + +opendir(FILE, "$dir1/"); +@FILES = readdir(FILE); + + +### Loop through files first to gather filesizes +$i=0; +foreach(@FILES) + { + $FILEsize1[$i] = 0; + if ( (length($FILES[$i]) > 4) && (!-d "$dir1/$FILES[$i]") ) + { + $FILEsize1[$i] = (-s "$dir1/$FILES[$i]"); + if ($DBX) {print "$FILES[$i] $FILEsize1[$i]\n";} + } + $i++; + } + +sleep(5); + + +### Loop through files a second time to gather filesizes again 5 seconds later +$i=0; +foreach(@FILES) + { + $FILEsize2[$i] = 0; + + if ( (length($FILES[$i]) > 4) && (!-d "$dir1/$FILES[$i]") ) + { + + $FILEsize2[$i] = (-s "$dir1/$FILES[$i]"); + if ($DBX) {print "$FILES[$i] $FILEsize2[$i]\n\n";} + + if ( ($FILES[$i] !~ /out\.wav|out\.gsm|lost\+found/i) && ($FILEsize1[$i] eq $FILEsize2[$i]) && (length($FILES[$i]) > 4)) + { + $INfile = $FILES[$i]; + $OUTfile = $FILES[$i]; + $OUTfile =~ s/-in\.wav/-out.wav/gi; + $OUTfile =~ s/-in\.gsm/-out.gsm/gi; + $ALLfile = $FILES[$i]; + $ALLfile =~ s/-in\.wav/-all.wav/gi; + $ALLfile =~ s/-in\.gsm/-all.gsm/gi; + $SQLFILE = $FILES[$i]; + $SQLFILE =~ s/-in\.wav|-in\.gsm//gi; + + $stmtA = "select recording_id from recording_log where filename='$SQLFILE' order by recording_id desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $recording_id = "$aryA[0]"; + } + $sthA->finish(); + + if ($DB) {print "|$recording_id|$INfile|$OUTfile| |$ALLfile|\n";} + + `$soxmixbin "$dir1/$INfile" "$dir1/$OUTfile" "$dir2/$ALLfile"`; + + $stmtA = "UPDATE recording_log set location='http://$server_ip/RECORDINGS/$ALLfile' where recording_id='$recording_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + + if (!$T) + { + `mv -f "$dir1/$INfile" "$dir2/ORIG/$INfile"`; + `mv -f "$dir1/$OUTfile" "$dir2/ORIG/$OUTfile"`; + } + + ### sleep for twenty hundredths of a second to not flood the server with disk activity + usleep(1*200*1000); + } + } + $i++; + } + +if ($DB) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_2_compress.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_2_compress.pl new file mode 100644 index 00000000..473206f9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_2_compress.pl @@ -0,0 +1,345 @@ +#!/usr/bin/perl +# +# AST_CRON_audio_2_compress.pl +# +# This is a STEP-2 program in the audio archival process +# +# runs every 3 minutes and compresses the -all recording files to GSM format +# +# put an entry into the cron of of your asterisk machine to run this script +# every 3 minutes or however often you desire +# +# ### recording mixing/compressing/ftping scripts +##0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +# 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +# 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM +# 2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM +# +# FLAGS FOR COMPRESSION CODECS +# --GSM = GSM 6.10 codec +# --MP3 = MPEG Layer3 codec +# --OGG = OGG Vorbis codec +# --GSW = GSM 6.10 codec with RIFF headers (.wav extension) +# +# make sure that the following directories exist: +# /var/spool/asterisk/monitorDONE # where the mixed -all files are put +# +# This program assumes that recordings are saved by Asterisk as .wav +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# +# 80302-1958 - First Build +# 80731-2253 - Changed size comparisons for more efficiency +# 90727-1417 - Added GSW format option +# + +$GSM=0; $MP3=0; $OGG=0; $GSW=0; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--help] = this screen\n"; + print " [--debug] = debug\n"; + print " [--debugX] = super debug\n"; + print " [-t] = test\n"; + print " [--GSM] = compress into GSM codec\n"; + print " [--MP3] = compress into MPEG-Layer-3 codec\n"; + print " [--OGG] = compress into OGG Vorbis codec\n"; + print " [--GSW] = compress into GSM codec with RIFF headers and .wav extension\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + if ($args =~ /--GSM/i) + { + $GSM=1; + if ($DB) {print "GSM compression\n";} + } + else + { + if ($args =~ /--MP3/i) + { + $MP3=1; + if ($DB) {print "MP3 compression\n";} + } + else + { + if ($args =~ /--OGG/i) + { + $OGG=1; + if ($DB) {print "OGG compression\n";} + } + else + { + if ($args =~ /--GSW/i) + { + $GSW=1; + if ($DB) {print "GSW compression\n";} + } + } + } + } + } + } +else + { + #print "no command line options set\n"; + $GSM=1; + } + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +if ( ($GSM > 0) || ($OGG > 0) || ($GSW > 0) ) + { + ### find sox binary to do the compression + $soxbin = ''; + if ( -e ('/usr/bin/sox')) {$soxbin = '/usr/bin/sox';} + else + { + if ( -e ('/usr/local/bin/sox')) {$soxbin = '/usr/local/bin/sox';} + else + { + print "Can't find sox binary! Exiting...\n"; + exit; + } + } + } + +if ($MP3 > 0) + { + ### find lame mp3 encoder binary to do the compression + $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; + } + } + } + +if ($DBX > 0) + { + print "SOX: $soxbin LAME: $lamebin\n"; + } + +### directory where -all recordings are +$dir2 = "$PATHDONEmonitor"; + +opendir(FILE, "$dir2/"); +@FILES = readdir(FILE); + + +### Loop through files first to gather filesizes +$i=0; +foreach(@FILES) + { + $FILEsize1[$i] = 0; + if ( (length($FILES[$i]) > 4) && (!-d "$dir1/$FILES[$i]") ) + { + $FILEsize1[$i] = (-s "$dir1/$FILES[$i]"); + if ($DBX) {print "$FILES[$i] $FILEsize1[$i]\n";} + } + $i++; + } + +sleep(5); + + +### Loop through files a second time to gather filesizes again 5 seconds later +$i=0; +foreach(@FILES) + { + $FILEsize2[$i] = 0; + + if ( (length($FILES[$i]) > 4) && (!-d "$dir1/$FILES[$i]") ) + { + + $FILEsize2[$i] = (-s "$dir1/$FILES[$i]"); + if ($DBX) {print "$FILES[$i] $FILEsize2[$i]\n\n";} + + if ( ($FILES[$i] !~ /out\.|in\.|lost\+found/i) && ($FILEsize1[$i] eq $FILEsize2[$i]) && (length($FILES[$i]) > 4)) + { + $recording_id=''; + $ALLfile = $FILES[$i]; + $SQLFILE = $FILES[$i]; + $SQLFILE =~ s/-all\.wav|-all\.gsm//gi; + + $stmtA = "select recording_id from recording_log where filename='$SQLFILE' order by recording_id desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $recording_id = "$aryA[0]"; + } + $sthA->finish(); + + + if ($GSM > 0) + { + $GSMfile = $FILES[$i]; + $GSMfile =~ s/-all\.wav/-all.gsm/gi; + + if ($DB) {print "|$recording_id|$ALLfile|$GSMfile| |$SQLfile|\n";} + + `$soxbin "$dir2/$ALLfile" "$dir2/GSM/$GSMfile"`; + + $stmtA = "UPDATE recording_log set location='http://$server_ip/RECORDINGS/GSM/$GSMfile' where recording_id='$recording_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + + if ($OGG > 0) + { + $OGGfile = $FILES[$i]; + $OGGfile =~ s/-all\.wav/-all.ogg/gi; + + if ($DB) {print "|$recording_id|$ALLfile|$OGGfile| |$SQLfile|\n";} + + `$soxbin "$dir2/$ALLfile" "$dir2/OGG/$OGGfile"`; + + $stmtA = "UPDATE recording_log set location='http://$server_ip/RECORDINGS/OGG/$OGGfile' where recording_id='$recording_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + + if ($MP3 > 0) + { + $MP3file = $FILES[$i]; + $MP3file =~ s/-all\.wav/-all.mp3/gi; + + if ($DB) {print "|$recording_id|$ALLfile|$MP3file| |$SQLfile|\n";} + + `$lamebin -b 16 -m m --silent "$dir2/$ALLfile" "$dir2/MP3/$MP3file"`; + + $stmtA = "UPDATE recording_log set location='http://$server_ip/RECORDINGS/MP3/$MP3file' where recording_id='$recording_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + + if ($GSW > 0) + { + $GSWfile = $FILES[$i]; + + if ($DB) {print "|$recording_id|$ALLfile|$GSWfile| |$SQLfile|$soxbin \"$dir2/$ALLfile\" -g -b \"$dir2/GSW/$GSWfile\"|\n";} + + `$soxbin "$dir2/$ALLfile" -g -b "$dir2/GSW/$GSWfile"`; + + $stmtA = "UPDATE recording_log set location='http://$server_ip/RECORDINGS/GSW/$GSWfile' where recording_id='$recording_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + + + if (!$T) + { + `mv -f "$dir2/$ALLfile" "$dir2/ORIG/$ALLfile"`; + } + + ### sleep for twenty hundredths of a second to not flood the server with disk activity + usleep(1*200*1000); + } + } + $i++; + } + +if ($DB) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_3_ftp.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_3_ftp.pl new file mode 100644 index 00000000..d5291f67 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_3_ftp.pl @@ -0,0 +1,428 @@ +#!/usr/bin/perl +# +# AST_CRON_audio_3_ftp.pl +# +# This is a STEP-3 program in the audio archival process +# +# runs every 3 minutes and copies the recording files to an FTP server +# +# put an entry into the cron of of your asterisk machine to run this script +# every 3 minutes or however often you desire +# +# ### recording mixing/compressing/ftping scripts +##0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +# 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +# 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM +# 2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM +# +# FLAGS FOR COMPRESSION FILES TO TRANSFER +# --GSM = GSM 6.10 files +# --MP3 = MPEG Layer3 files +# --OGG = OGG Vorbis files +# --WAV = WAV files +# --GSW = GSM 6.10 codec with RIFF headers (.wav extension) +# +# FLAG FOR NO DATE DIRECTORY ON FTP +# --NODATEDIR +# +# if pinging is not working, try the 'icmp' Ping command in the code instead +# +# make sure that the following directories exist: +# /var/spool/asterisk/monitorDONE # where the mixed -all files are put +# +# This program assumes that recordings are saved by Asterisk as .wav +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# 80302-1958 - First Build +# 80317-2349 - Added FTP debug if debugX +# 80731-2253 - Changed size comparisons for more efficiency +# 90727-1458 - Added GSW format option +# 90730-1454 - Fixed non-VicDial recordings date directory, added secondary icmp ping if standard ping fails +# 90818-0953 - Fixed a bug where the filesizes for all files were null +# 90818-1017 - Added a transfer limit and list limit options. +# 90827-2013 - Fixed list limit option +# 91123-0037 - Added FTP CLI options +# + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$FTPdate = "$year-$mon-$mday"; + +$GSM=0; $MP3=0; $OGG=0; $WAV=0; $GSW=0; $NODATEDIR=0; + +# Default variables for FTP +$VARFTP_host = '10.0.0.4'; +$VARFTP_user = 'cron'; +$VARFTP_pass = 'test'; +$VARFTP_port = '21'; +$VARFTP_dir = 'RECORDINGS'; +$VARHTTP_path = 'http://10.0.0.4'; + +$file_limit = 1000; +$list_limit = 1000; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--help] = this screen\n"; + print " [--debug] = debug\n"; + print " [--debugX] = super debug\n"; + print " [--transfer-limit=XXX] = number of files to transfer before exiting\n"; + print " [--list-limit=XXX] = number of files to list in the directory before moving on\n"; + print " [--debugX] = super debug\n"; + print " [-t] = test\n"; + print " [--GSM] = copy GSM files\n"; + print " [--MP3] = copy MPEG-Layer-3 files\n"; + print " [--OGG] = copy OGG Vorbis files\n"; + print " [--WAV] = copy WAV files\n"; + print " [--GSW] = copy GSM with RIFF headers and .wav extension files\n"; + print " [--nodatedir] = do not put into dated directories\n"; + print " [--ftp-server=XXX] = FTP server\n"; + print " [--ftp-login=XXX] = FTP server login account\n"; + print " [--ftp-pass=XXX] = FTP server password\n"; + print " [--ftp-dir=XXX] = FTP server directory\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n----- TESTING -----\n\n"; + } + if ($args =~ /--nodatedir/i) + { + $NODATEDIR=1; + if ($DB) {print "\n----- NO DATE DIRECTORIES -----\n\n";} + } + if ($args =~ /--transfer-limit=/i) + { + my @data_in = split(/--transfer-limit=/,$args); + $file_limit = $data_in[1]; + $file_limit =~ s/ .*//gi; + print "\n----- FILE TRANSFER LIMIT: $file_limit -----\n\n"; + } + if ($args =~ /--list-limit=/i) + { + my @data_in = split(/--list-limit=/,$args); + $list_limit = $data_in[1]; + $list_limit =~ s/ .*//gi; + print "\n----- FILE LIST LIMIT: $list_limit -----\n\n"; + } + if ($args =~ /--GSM/i) + { + $GSM=1; + if ($DB) {print "GSM audio files\n";} + } + else + { + if ($args =~ /--MP3/i) + { + $MP3=1; + if ($DB) {print "MP3 audio files\n";} + } + else + { + if ($args =~ /--OGG/i) + { + $OGG=1; + if ($DB) {print "OGG audio files\n";} + } + else + { + if ($args =~ /--WAV/i) + { + $WAV=1; + if ($DB) {print "WAV audio files\n";} + } + else + { + if ($args =~ /--GSW/i) + { + $GSW=1; + if ($DB) {print "GSW audio files\n";} + } + } + } + } + } + if ($args =~ /--ftp-server=/i) + { + my @data_in = split(/--ftp-server=/,$args); + $VARFTP_host = $data_in[1]; + $VARFTP_host =~ s/ .*//gi; + $CLIFTP_host=1; + if ($DB > 0) + {print "\n----- FTP SERVER: $VARFTP_host -----\n\n";} + } + if ($args =~ /--ftp-login=/i) + { + my @data_in = split(/--ftp-login=/,$args); + $VARFTP_user = $data_in[1]; + $VARFTP_user =~ s/ .*//gi; + $CLIFTP_user=1; + if ($DB > 0) + {print "\n----- FTP LOGIN: $VARFTP_user -----\n\n";} + } + if ($args =~ /--ftp-pass=/i) + { + my @data_in = split(/--ftp-pass=/,$args); + $VARFTP_pass = $data_in[1]; + $VARFTP_pass =~ s/ .*//gi; + $CLIFTP_pass=1; + if ($DB > 0) + {print "\n----- FTP PASS: $VARFTP_pass -----\n\n";} + } + if ($args =~ /--ftp-dir=/i) + { + my @data_in = split(/--ftp-dir=/,$args); + $VARFTP_dir = $data_in[1]; + $VARFTP_dir =~ s/ .*//gi; + $CLIFTP_dir=1; + if ($DB > 0) + {print "\n----- FTP DIRECTORY: $VARFTP_dir -----\n\n";} + } + } + } +else + { + #print "no command line options set\n"; + $WAV=1; + } + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +use Net::Ping; +use Net::FTP; + +### directory where -all recordings are +if ($WAV > 0) {$dir2 = "$PATHDONEmonitor";} +if ($MP3 > 0) {$dir2 = "$PATHDONEmonitor/MP3";} +if ($GSM > 0) {$dir2 = "$PATHDONEmonitor/GSM";} +if ($OGG > 0) {$dir2 = "$PATHDONEmonitor/OGG";} +if ($GSW > 0) {$dir2 = "$PATHDONEmonitor/GSW";} + +opendir(FILE, "$dir2/"); +@FILES = readdir(FILE); + +### Loop through files first to gather filesizes +$i=0; +$files_that_count=0; +foreach(@FILES) + { + $FILEsize1[$i] = 0; + if ( (length($FILES[$i]) > 4) && (!-d "$dir2/$FILES[$i]") ) + { + $FILEsize1[$i] = (-s "$dir2/$FILES[$i]"); + if ($DBX) {print "$dir2/$FILES[$i] $FILEsize1[$i]\n";} + $files_that_count++; + } + $i++; + if ($files_that_count >= $list_limit) + { + last(); + } + } + +sleep(5); + +$transfered_files = 0; + +### Loop through files a second time to gather filesizes again 5 seconds later +$i=0; +foreach(@FILES) + { + $FILEsize2[$i] = 0; + + if ( (length($FILES[$i]) > 4) && (!-d "$dir2/$FILES[$i]") ) + { + + $FILEsize2[$i] = (-s "$dir2/$FILES[$i]"); + if ($DBX) {print "$dir2/$FILES[$i] $FILEsize2[$i]\n\n";} + + if ($FILEsize1[$i] ne $FILEsize2[$i]) { + if ($DBX) {print "not transfering $dir2/$FILES[$i]. File size mismatch $FILEsize2[$i] != $FILEsize1[$i]\n\n";} + } + + if ( ($FILES[$i] !~ /out\.|in\.|lost\+found/i) && ($FILEsize1[$i] eq $FILEsize2[$i]) && (length($FILES[$i]) > 4)) + { + $recording_id=''; + $ALLfile = $FILES[$i]; + $SQLFILE = $FILES[$i]; + $SQLFILE =~ s/-all\.wav|-all\.gsm|-all\.ogg|-all\.mp3//gi; + + $stmtA = "select recording_id,start_time from recording_log where filename='$SQLFILE' order by recording_id desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $recording_id = "$aryA[0]"; + $start_date = "$aryA[1]"; + $start_date =~ s/ .*//gi; + } + $sthA->finish(); + + if (length($start_date) < 6) + {$start_date = $FTPdate;} + + if ($DB) {print "|$recording_id|$start_date|$ALLfile| |$SQLfile|\n";} + + ### BEGIN Remote file transfer + $p = Net::Ping->new(); + $ping_good = $p->ping("$VARFTP_host"); + + if (!$ping_good) + { + $p = Net::Ping->new("icmp"); + $ping_good = $p->ping("$VARFTP_host"); + } + + if ($ping_good) + { + $transfered_files++; + + $start_date_PATH=''; + $FTPdb=0; + if ($DBX>0) {$FTPdb=1;} + $ftp = Net::FTP->new("$VARFTP_host", Port => $VARFTP_port, Debug => $FTPdb); + $ftp->login("$VARFTP_user","$VARFTP_pass"); + $ftp->cwd("$VARFTP_dir"); + if ($NODATEDIR < 1) + { + $ftp->mkdir("$start_date"); + $ftp->cwd("$start_date"); + $start_date_PATH = "$start_date/"; + } + $ftp->binary(); + $ftp->put("$dir2/$ALLfile", "$ALLfile"); + $ftp->quit; + + $stmtA = "UPDATE recording_log set location='$VARHTTP_path/$start_date_PATH$ALLfile' where recording_id='$recording_id';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + + if (!$T) + { + `mv -f "$dir2/$ALLfile" "$PATHDONEmonitor/FTP/$ALLfile"`; + } + + if($DBX){print STDERR "Transfered $transfered_files files\n";} + + if ( $transfered_files == $file_limit) + { + if($DBX){print STDERR "Transfer limit of $file_limit reached breaking out of the loop\n";} + last(); + } + } + else + { + if($DB){print "ERROR: Could not ping server $VARFTP_host\n";} + } + ### END Remote file transfer + + ### sleep for twenty hundredths of a second to not flood the server with disk activity + usleep(1*200*1000); + + } + } + $i++; + } + +if ($DB) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_3_newftp.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_3_newftp.pl new file mode 100644 index 00000000..6ee2612f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_3_newftp.pl @@ -0,0 +1,620 @@ +#!/usr/bin/perl + +# AST_CRON_audio_3_newftp.pl version 2.2.0 +# +# This is a STEP-3 program in the audio archival process. Normally you can run it +# every 3 minutes and copies the recording files to an FTP server. +# +# put an entry into the cron of of your asterisk machine to run this script +# every 3 minutes or however often you desire +# +# ### recording mixing/compressing/ftping scripts +# #0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +# 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +# 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --MP3 +# 2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_newftp.pl --MP3 +# +# FLAGS FOR COMPRESSION FILES TO TRANSFER +# --gsm or --GSM = GSM 6.10 files +# --mp3 or --MP3 = MPEG Layer3 files +# --ogg or --OGG = OGG Vorbis files +# --wav or --WAV = WAV files +# --gsw or --GSW = GSM 6.10 codec with RIFF headers (.wav extension) +# +# FLAGS FOR PING SETTINGS +# --ping-type = The type of ping to send. Options are "none", "tcp", "udp", "icmp", +# "stream", "syn", and "external". None disables pinging. Default is "icmp" +# WARNING setting --ping-type="none" can lead to files being "transfer" to no if your ftp server goes down. +# --ping-timeout = How long to wait for the ping to timeout before giving up, default is 5 seconds. +# +# FLAGS FOR FTP TRANSFER INFO +# --ftp-host = the host address to ftp into +# --ftp-port = the port of the ftp server +# --ftp-user = the user to log into the ftp server with +# --ftp-pass = the password to log into the ftp server with +# --ftp-dir = the directory to put the files into on the ftp server +# --url-path = the url where the recordings can be accessed after the move +# +# FLAGS THAT EFFECT THE ACTUAL TRANSFER +# --stay-connected = remain connected to the ftp server. Without this the script will disconnect and reconnect for each file. +# --transfer-limit = the number of files to transfer before giving up. Default is 1000 +# --list-limit = number of files to list in the directory before moving on +# --no-date-dir = does not create a date directory on the server for the files. +# --campaign_id = which OUTBOUND campaigns to transfer files for in a '-' delimited list +# (this only works for outbound calls, not inbound or transfers) +# --ingroup_id = which ingroups to transfer files for in a '-' delimited list +# WARNING you can only set --campaign_id or --ingroup_id, not both. +# +# The following example will transfer 50 mp3s for the campaigns TESTCAMP1 and TESTCAMP2 to the ftp server. +# It will not create dated directories on the ftp server. It will send icmp pings to the server +# and wait at most 3 seconds for a response: +# /usr/share/astguiclient/AST_CRON_audio_3_newftp.pl --no-date-dir --mp3 --ping-type="icmp" --ping-timeout=3 \ +# --ftp-host="10.10.10.15" --ftp-port=21 --ftp-user="username" --ftp-pass="password" --ftp-dir="RECORDINGS" \ +# --url-path="http://10.10.10.15/RECORDINGS" --transfer-limit=50 --list-limit=200 --campaign_id="TESTCAMP1-TESTCAMP2" +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG: +# 90930-1405 - mikec - first build + +use 5.008; +use strict; +use warnings; + +# OTHER USE FLAGS +use DBI; +use Net::Ping; +use Net::FTP; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command for less than one second + + +# Vars +my $debug = 0; +my $debugX = 0; +my $test = 0; + +my $pingtype = "tcp"; +my $pingtimeout = 5; +my $datedir = 1; +my $camp_check = 0; +my $campaigns = ""; +my @camp_array; +my $ingrp_check = 0; +my $ingroups = ""; +my @ingrp_array; +my $list_limit = 1000; +my $trans_limit = 1000; +my $trans_type = "wav"; + +my $PATHhome = ''; +my $PATHlogs = ''; +my $PATHagi = ''; +my $PATHweb = ''; +my $PATHsounds = ''; +my $PATHmonitor = ''; +my $PATHDONEmonitor = ''; +my $VARserver_ip = ''; +my $VARDB_server = ''; +my $VARDB_database = ''; +my $VARDB_user = ''; +my $VARDB_pass = ''; +my $VARDB_port = ''; +my $ftp_host = '10.0.0.4'; +my $ftp_user = 'cron'; +my $ftp_pass = 'test'; +my $ftp_port = '21'; +my $ftp_dir = 'RECORDINGS'; +my $url_path = 'http://10.0.0.4'; + +# default path to astguiclient configuration file: +my $PATHconf = '/etc/astguiclient.conf'; + +# load the config file settings +open(CONF, "$PATHconf") || die "can't open $PATHconf: $!\n"; +my @conf = ; +close(CONF); +my $i=0; +my $line=''; +foreach(@conf) { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ($line =~ /^PATHhome/) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ($line =~ /^PATHlogs/) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ($line =~ /^PATHagi/) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ($line =~ /^PATHweb/) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ($line =~ /^PATHsounds/) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ($line =~ /^PATHmonitor/) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ($line =~ /^PATHDONEmonitor/) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ($line =~ /^VARserver_ip/) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ($line =~ /^VARDB_server/) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ($line =~ /^VARDB_database/) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ($line =~ /^VARDB_user/) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ($line =~ /^VARDB_pass/) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ($line =~ /^VARDB_port/) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ($line =~ /^VARFTP_host/) + {$ftp_host = $line; $ftp_host =~ s/.*=//gi;} + if ($line =~ /^VARFTP_user/) + {$ftp_user = $line; $ftp_user =~ s/.*=//gi;} + if ($line =~ /^VARFTP_pass/) + {$ftp_pass = $line; $ftp_pass =~ s/.*=//gi;} + if ($line =~ /^VARFTP_port/) + {$ftp_port = $line; $ftp_port =~ s/.*=//gi;} + if ($line =~ /^VARFTP_dir/) + {$ftp_dir = $line; $ftp_dir =~ s/.*=//gi;} + if ($line =~ /^VARHTTP_path/) + {$url_path = $line; $url_path =~ s/.*=//gi;} + $i++; +} + +# parse run-time options +my $args = ''; +if (length($ARGV[0])>1) { + $i=0; + while ($#ARGV >= $i) { + $args = "$args $ARGV[$i]"; + $i++; + } + if ($args =~ /--help/i) { + print "allowed run time options:\n"; + print " [--help] = this screen\n"; + print " [--test] = don't move the file\n"; + print " [--debug] = debug\n"; + print " [--debugX] = super debug\n"; + print " [--gsm or --GSM] = copy GSM 6.10 files\n"; + print " [--mp3 or --MP3] = copy MPEG Layer3 files\n"; + print " [--ogg or --OGG] = copy OGG Vorbis files\n"; + print " [--wav or --WAV] = copy WAV files\n"; + print " [--gsw or --GSW] = copy GSM 6.10 codec with RIFF headers (.wav extension)\n"; + print " [--ping-type] = The type of ping to send. Options are \"none\", \"tcp\", \"udp\", \"icmp\", \n"; + print " \"stream\", \"syn\", and \"external\". None disables pinging. Default is \"icmp\"\n"; + print " WARNING setting --ping-type=\"none\" can lead to files being \"transfer\"\n"; + print " to no where if your ftp server goes down.\n"; + print " [--ping-timeout] = How long to wait for the ping to timeout before giving up, default is 5 seconds.\n"; + print " [--ftp-host] = the host address to ftp into\n"; + print " [--ftp-port] = the port of the ftp server \n"; + print " [--ftp-user] = the user to log into the ftp server with\n"; + print " [--ftp-pass] = the password to log into the ftp server with\n"; + print " [--ftp-dir] = the directory to put the files into on the ftp server\n"; + print " [--url-path] = the url where the recordings can be accessed after the move\n"; + print " [--transfer-limit=XXX] = the number of files to transfer before giving up. Default is 1000\n"; + print " [--list-limit=XXX] = number of files to list in the directory before moving on\n"; + print " [--no-date-dir] = does not put the files in a dated directory.\n"; + print " [--campaign_id] = which OUTBOUND campaigns to transfer files for in a '-' delimited list \n"; + print " (this only works for outbound calls, not inbound or transfers)\n"; + print " [--ingroup_id] = which ingroups to transfer files for in a '-' delimited list\n"; + print " WARNING you can only set --campaign_id or --ingroup_id, not both.\n\n"; + exit; + } else { + if ($args =~ /--debug/i) { + $debug=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) { + $debugX=1; + $debug=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /--test/i) { + $test=1; + print "\n----- TESTING -----\n\n"; + } + if (($args =~ /--nodatedir/i) || ($args =~ /--no-date-dir/i)) { + $datedir=0; + if ($debug) { + print "\n----- NO DATE DIRECTORIES -----\n\n"; + } + } + if ($args =~ /--ping-type=/i) { + my @data_in = split(/--ping-type=/,$args); + $pingtype = $data_in[1]; + $pingtype =~ s/ .*//gi; + if ($debug) { + print "\n----- FILE TRANSFER LIMIT: $trans_limit -----\n\n"; + } + } + if ($args =~ /--ping-timeout=/i) { + my @data_in = split(/--ping-timeout=/,$args); + $pingtimeout = $data_in[1]; + $pingtimeout =~ s/ .*//gi; + if ($debug) { + print "\n----- PING TIMEOUT: $pingtimeout -----\n\n"; + } + } + if ($args =~ /--ftp-host=/i) { + my @data_in = split(/--ftp-host=/,$args); + $ftp_host = $data_in[1]; + $ftp_host =~ s/ .*//gi; + if ($debug) { + print "\n----- FTP HOST: $ftp_host -----\n\n"; + } + } + if ($args =~ /--ftp-port=/i) { + my @data_in = split(/--ftp-port=/,$args); + $ftp_port = $data_in[1]; + $ftp_port =~ s/ .*//gi; + if ($debug) { + print "\n----- FTP PORT: $ftp_port -----\n\n"; + } + } + if ($args =~ /--ftp-user=/i) { + my @data_in = split(/--ftp-user=/,$args); + $ftp_user = $data_in[1]; + $ftp_user =~ s/ .*//gi; + if ($debug) { + print "\n----- FTP USER: $ftp_user -----\n\n"; + } + } + if ($args =~ /--ftp-pass=/i) { + my @data_in = split(/--ftp-pass=/,$args); + $ftp_pass = $data_in[1]; + $ftp_pass =~ s/ .*//gi; + if ($debug) { + print "\n----- FTP PASSWORD: $ftp_pass -----\n\n"; + } + } + if ($args =~ /--ftp-dir=/i) { + my @data_in = split(/--ftp-dir=/,$args); + $ftp_dir = $data_in[1]; + $ftp_dir =~ s/ .*//gi; + if ($debug) { + print "\n----- FTP DIRECTORY: $ftp_dir -----\n\n"; + } + } + if ($args =~ /--url-path=/i) { + my @data_in = split(/--url-path=/,$args); + $url_path = $data_in[1]; + $url_path =~ s/ .*//gi; + if ($debug) { + print "\n----- URL PATH: $url_path -----\n\n"; + } + } + if ($args =~ /--campaign_id=/i) { + my @data_in = split(/--campaign_id=/,$args); + $campaigns = $data_in[1]; + $campaigns =~ s/ .*//gi; + $campaigns = uc($campaigns); + $camp_check=1; + if ($debug) { + print "\n----- CAMPAIGNS: $campaigns -----\n\n"; + } + } + if ($args =~ /--ingroup_id=/i) { + my @data_in = split(/--ingroup_id=/,$args); + $ingroups = $data_in[1]; + $ingroups =~ s/ .*//gi; + $ingrp_check=1; + if ($debug) { + print "\n----- INGROUPS: $ingroups -----\n\n"; + } + } + if ($args =~ /--transfer-limit=/i) { + my @data_in = split(/--transfer-limit=/,$args); + $trans_limit = $data_in[1]; + $trans_limit =~ s/ .*//gi; + if ($debug) { + print "\n----- FILE TRANSFER LIMIT: $trans_limit -----\n\n"; + } + } + if ($args =~ /--list-limit=/i) { + my @data_in = split(/--list-limit=/,$args); + $list_limit = $data_in[1]; + $list_limit =~ s/ .*//gi; + if ($debug) { + print "\n----- FILE LIST LIMIT: $list_limit -----\n\n"; + } + } + if ( ( $args =~ /--GSM/i ) || ( $args =~ /--gsm/i ) ){ + $trans_type="gsm"; + if ($debug) { + print "GSM audio files\n"; + } + } else { + if ( ($args =~ /--MP3/i) || ($args =~ /--mp3/i) ) { + $trans_type="mp3"; + if ($debug) { + print "MP3 audio files\n"; + } + } else { + if ( ( $args =~ /--OGG/i) || ($args =~ /--ogg/i) ) { + $trans_type="ogg"; + if ($debug) { + print "OGG audio files\n"; + } + } else { + if ( ( $args =~ /--WAV/i ) || ( $args =~ /--wav/i ) ) { + $trans_type="wav"; + if ($debug) { + print "WAV audio files\n"; + } + } else { + if ( ($args =~ /--GSW/i) || ($args =~ /--gsw/i) ) { + $trans_type="gsw"; + if ($debug) { + print "GSW audio files\n"; + } + } + } + } + } + } + } +} + +#### make sure they are not trying to do something we cannot do #### +if (($camp_check) && ($ingrp_check)) { + print "ERROR. You cannot specify ingroups and campaigns in the same instance of this script.\n"; + exit(); +} + +#### get the list of campaigns #### +if ($camp_check) { + @camp_array = split(/-/,$campaigns); +} + +#### get the list of ingroups #### +if ($ingrp_check) { + @ingrp_array = split(/-/,$ingroups); +} + +#### connect to the db #### +my $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +#### prepare the sql queries ahead of time so they run quicker #### +# get the info for the recording +my $rec_log_stmt = "SELECT recording_id, start_time, vicidial_id, lead_id FROM recording_log WHERE filename=? ORDER BY recording_id DESC LIMIT 1;"; +my $rec_log_sth = $dbhA->prepare($rec_log_stmt) or die "preparing: ",$dbhA->errstr; + +# find the campaign_id for the call. +my $vici_log_stmt = "SELECT campaign_id FROM vicidial_log WHERE uniqueid=? AND lead_id=? ORDER BY campaign_id DESC LIMIT 1;"; +my $vici_log_sth = $dbhA->prepare($vici_log_stmt) or die "preparing: ",$dbhA->errstr; + +# find the ingroup_id for the call. +# why did matt name the ingroup field in the closer log campaign_id? +my $clsr_log_stmt = "SELECT campaign_id FROM vicidial_closer_log WHERE closecallid=? AND lead_id=? ORDER BY campaign_id DESC LIMIT 1;"; +my $clsr_log_sth = $dbhA->prepare($clsr_log_stmt) or die "preparing: ",$dbhA->errstr; + +# update the recording log +my $update_log_stmt = "UPDATE recording_log SET location=? WHERE recording_id=?;"; +my $update_log_sth = $dbhA->prepare($update_log_stmt) or die "preparing: ",$dbhA->errstr; + +#### directory where -all recordings are +my $directory = ''; +if ($trans_type eq "wav") {$directory = "$PATHDONEmonitor";} +if ($trans_type eq "gsw") {$directory = "$PATHDONEmonitor/GSW";} +if ($trans_type eq "gsm") {$directory = "$PATHDONEmonitor/GSM";} +if ($trans_type eq "ogg") {$directory = "$PATHDONEmonitor/OGG";} +if ($trans_type eq "mp3") {$directory = "$PATHDONEmonitor/MP3";} + + +opendir(FILE, "$directory/"); +my @files = readdir(FILE); + +### Loop through files first to gather filesizes +my $file_loop_count=0; +my $files_that_count=0; +my @FILEsize1; +foreach(@files) { + $FILEsize1[$file_loop_count] = 0; + if ( (length($files[$file_loop_count]) > 4) && (!-d "$directory/$files[$file_loop_count]") ) { + $FILEsize1[$file_loop_count] = (-s "$directory/$files[$file_loop_count]"); + if ($debugX) { + print "$directory/$files[$file_loop_count] $FILEsize1[$file_loop_count]\n"; + } + $files_that_count++; + } + $file_loop_count++; + if ($files_that_count >= $list_limit) { + last(); + } +} + +### sleep 5 seconds +sleep(5); + +my $transfered_files = 0; +my @FILEsize2; +my $recording_id = ''; +my $start_date = ''; +my $ALLfile = ''; +my $SQLFILE = ''; +my $transfer_file=0; + +my $ping = Net::Ping->new($pingtype, $pingtimeout); + +if ($pingtype eq "none") { + $ping = 0; +} + +### Loop through files a second time to gather filesizes again 5 seconds later +$file_loop_count=0; +$files_that_count=0; +foreach(@files) { + if ($debug) {print "\n\n\n--------NEW-FILE-------------------------------------------------------------------------------------------\n";} + $transfer_file=0; + $FILEsize2[$file_loop_count] = 0; + + if ( (length($files[$file_loop_count]) > 4) && (!-d "$directory/$files[$file_loop_count]") ) { + + $FILEsize2[$file_loop_count] = (-s "$directory/$files[$file_loop_count]"); + if ($debug) { + print "$directory/$files[$file_loop_count] $FILEsize2[$file_loop_count]\n"; + } + + if ($FILEsize1[$file_loop_count] ne $FILEsize2[$file_loop_count]) { + if ($debugX) {print "not transfering $directory/$files[$file_loop_count]. File size mismatch $FILEsize2[$file_loop_count] != $FILEsize1[$file_loop_count]\n";} + } + + if ( ($files[$file_loop_count] !~ /out\.|in\.|lost\+found/i) && ($FILEsize1[$file_loop_count] eq $FILEsize2[$file_loop_count]) && (length($files[$file_loop_count]) > 4)) { + my $recording_id = ''; + my $start_date = ''; + my $lead_id = ''; + my $vicidial_id = ''; + my $ALLfile = $files[$file_loop_count]; + my $SQLFILE = $files[$file_loop_count]; + $SQLFILE =~ s/-all\.wav|-all\.gsm|-all\.ogg|-all\.mp3//gi; + + my $rec_log_db_stmt = "select recording_id, start_time, vicidial_id, lead_id from recording_log where filename=$SQLFILE order by recording_id desc LIMIT 1;"; + $rec_log_sth->execute($SQLFILE) or die "executing: $rec_log_db_stmt ", $dbhA->errstr; + my $sthArows=$rec_log_sth->rows; + if ($sthArows > 0) { + my @aryA = $rec_log_sth->fetchrow_array; + $recording_id = "$aryA[0]"; + $start_date = "$aryA[1]"; + $vicidial_id = "$aryA[2]"; + $lead_id = "$aryA[3]"; + $start_date =~ s/ .*//gi; + } + $rec_log_sth->finish(); + + if ($debug) { + print "|$camp_check|$recording_id|$start_date|$ALLfile|$SQLFILE|\n"; + } + + ### are we doing a campaign check + if ($camp_check) { + my $vici_log_db_stmt = "select campaign_id from vicidial_log where uniqueid=$vicidial_id and lead_id=$lead_id;"; + $vici_log_sth->execute($vicidial_id, $lead_id) or die "executing: $rec_log_db_stmt ", $dbhA->errstr; + my $sthArows=$vici_log_sth->rows; + if ($sthArows > 0) { + my @aryA = $vici_log_sth->fetchrow_array; + my $campaign_id = "$aryA[0]"; + + if($debug){print STDERR "\n|$ALLfile is in the $campaign_id campaign.|\n";} + + # loop through the campaigns they want to transfer + foreach( @camp_array ) { + # see if the campaign is in there + if ( $_ eq $campaign_id ) { + $transfer_file = 1; + if($debug){print STDERR "\n|$_ is in the list of campaigns.|\n";} + } + } + if(($debug) && ($transfer_file == 0)) {print STDERR "\n|$campaign_id is not in the list of campaigns.|\n";} + } + $vici_log_sth->finish(); + } else { + ### are we doing an ingroup check + if ($ingrp_check) { + my $clsr_log_db_stmt = "select campaign_id from vicidial_closer_log where closecallid=$vicidial_id and lead_id=$lead_id;"; + $clsr_log_sth->execute($vicidial_id, $lead_id) or die "executing: $rec_log_db_stmt ", $dbhA->errstr; + my $sthArows=$clsr_log_sth->rows; + if ($sthArows > 0) { + my @aryA = $clsr_log_sth->fetchrow_array; + my $ingroup_id = "$aryA[0]"; + + if($debug){print STDERR "\n|$ALLfile is in the $ingroup_id ingroup.|\n";} + + # loop through the ingroups they want to transfer + foreach( @ingrp_array ) { + # see if the ingroup is in there + if ( $_ eq $ingroup_id ) { + $transfer_file = 1; + if($debug){print STDERR "\n|$_ is in the list of ingroups.|\n";} + } + } + if(($debug) && ($transfer_file == 0)) {print STDERR "\n|$ingroup_id is not in the list of ingroups.|\n";} + } + $clsr_log_sth->finish(); + } else { + ### doing neither so always transfer the file. + $transfer_file = 1; + } + } + + ### BEGIN Remote file transfer + if ($transfer_file) { + # ping the host to make sure it is alive + my $ping_good = 0; + if ($pingtype ne "none") { + $ping_good = $ping->ping("$ftp_host"); + if($debug){print "Ping result: $ping_good\n";} + } + + ### if the ping came back okay or if we are not pinging the server + if (($ping_good) || ($pingtype eq "none")) { + if($debug) { + print STDERR "Transfering the file\n"; + } + $transfered_files++; + + my $start_date_PATH=''; + my $ftp = Net::FTP->new("$ftp_host", Port => $ftp_port, Debug => $debugX); + $ftp->login("$ftp_user","$ftp_pass"); + $ftp->mkdir("$ftp_dir"); + $ftp->cwd("$ftp_dir"); + if ($datedir) { + $ftp->mkdir("$start_date"); + $ftp->cwd("$start_date"); + $start_date_PATH = "$start_date/"; + } + $ftp->binary(); + $ftp->put("$directory/$ALLfile", "$ALLfile"); + $ftp->quit; + + my $update_log_db_stmt = "UPDATE recording_log set location='$url_path/$start_date_PATH$ALLfile' where recording_id='$recording_id';"; + if($debug){print STDERR "\n|$update_log_db_stmt|\n";} + my $affected_rows = $update_log_sth->execute('$url_path/$start_date_PATH$ALLfile',$recording_id) + or die "executing: $rec_log_db_stmt ", $dbhA->errstr; + + if (!$test) { + if($debugX) { + print STDERR "Moving file from $directory/$ALLfile to $PATHDONEmonitor/FTP/$ALLfile\n"; + } + `mv -f "$directory/$ALLfile" "$PATHDONEmonitor/FTP/$ALLfile"`; + } + + if($debugX){ + print STDERR "Transfered $transfered_files files\n"; + } + + if ( $transfered_files == $trans_limit) { + if($debug) { + print STDERR "Transfer limit of $trans_limit reached breaking out of the loop\n"; + } + last(); + } + } else { + if($debug){ + print "ERROR: Could not ping server $ftp_host\n"; + } + } + } + ### END Remote file transfer + + ### sleep for twenty hundredths of a second to not flood the server with disk activity + usleep(200*1000); + } + # keep track of the files that we actually care about listing. + $files_that_count++; + } else { + if($debug) { + print STDERR "$files[$file_loop_count]'s file name is to short or it is a directory.\n"; + } + } + $file_loop_count++; + # break out of here if we have reached the list_limit + if ($files_that_count >= $list_limit) { + last(); + } +} + +if ($debug) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_4_ftp2.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_4_ftp2.pl new file mode 100644 index 00000000..cec4e7c7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_audio_4_ftp2.pl @@ -0,0 +1,369 @@ +#!/usr/bin/perl +# +# AST_CRON_audio_4_ftp2.pl +# +# This is a STEP-4 program in the audio archival process +# +# runs every 3 minutes and copies the recording files to an FTP server +# +# put an entry into the cron of of your asterisk machine to run this script +# every 3 minutes or however often you desire +# +# ### recording mixing/compressing/ftping scripts +##0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_mix.pl +# 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_1_move_VDonly.pl +# 1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58 * * * * /usr/share/astguiclient/AST_CRON_audio_2_compress.pl --GSM +# 2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59 * * * * /usr/share/astguiclient/AST_CRON_audio_3_ftp.pl --GSM +# 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /usr/share/astguiclient/AST_CRON_audio_4_ftp2.pl +# +# FLAG FOR NO DATE DIRECTORY ON FTP +# --NODATEDIR +# +# if pinging is not working, try the 'icmp' Ping command in the code instead +# +# make sure that the following directories exist: +# /var/spool/asterisk/monitorDONE # where the mixed -all files are put +# +# This program assumes that recordings are saved by Asterisk as .wav +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# 91123-0005 - First Build +# + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$FTPdate = "$year-$mon-$mday"; + +$GSM=0; $MP3=0; $OGG=0; $WAV=0; $GSW=0; $NODATEDIR=0; + +# Default variables for FTP +$VARFTP_host = '10.0.0.4'; +$VARFTP_user = 'cron'; +$VARFTP_pass = 'test'; +$VARFTP_port = '21'; +$VARFTP_dir = 'RECORDINGS'; +$VARHTTP_path = 'http://10.0.0.4'; + +$file_limit = 1000; +$list_limit = 1000; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--help] = this screen\n"; + print " [--debug] = debug\n"; + print " [--debugX] = super debug\n"; + print " [--transfer-limit=XXX] = number of files to transfer before exiting\n"; + print " [--list-limit=XXX] = number of files to list in the directory before moving on\n"; + print " [--ftp-server=XXX] = FTP server\n"; + print " [--ftp-login=XXX] = FTP server login account\n"; + print " [--ftp-pass=XXX] = FTP server password\n"; + print " [--ftp-dir=XXX] = FTP server directory\n"; + print " [--debugX] = super debug\n"; + print " [-t] = test\n"; + print " [--nodatedir] = do not put into dated directories\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n----- TESTING -----\n\n"; + } + if ($args =~ /--nodatedir/i) + { + $NODATEDIR=1; + if ($DB) {print "\n----- NO DATE DIRECTORIES -----\n\n";} + } + if ($args =~ /--transfer-limit=/i) + { + my @data_in = split(/--transfer-limit=/,$args); + $file_limit = $data_in[1]; + $file_limit =~ s/ .*//gi; + print "\n----- FILE TRANSFER LIMIT: $file_limit -----\n\n"; + } + if ($args =~ /--list-limit=/i) + { + my @data_in = split(/--list-limit=/,$args); + $list_limit = $data_in[1]; + $list_limit =~ s/ .*//gi; + print "\n----- FILE LIST LIMIT: $list_limit -----\n\n"; + } + if ($args =~ /--ftp-server=/i) + { + my @data_in = split(/--ftp-server=/,$args); + $VARFTP_host = $data_in[1]; + $VARFTP_host =~ s/ .*//gi; + $CLIFTP_host=1; + if ($DB > 0) + {print "\n----- FTP SERVER: $VARFTP_host -----\n\n";} + } + if ($args =~ /--ftp-login=/i) + { + my @data_in = split(/--ftp-login=/,$args); + $VARFTP_user = $data_in[1]; + $VARFTP_user =~ s/ .*//gi; + $CLIFTP_user=1; + if ($DB > 0) + {print "\n----- FTP LOGIN: $VARFTP_user -----\n\n";} + } + if ($args =~ /--ftp-pass=/i) + { + my @data_in = split(/--ftp-pass=/,$args); + $VARFTP_pass = $data_in[1]; + $VARFTP_pass =~ s/ .*//gi; + $CLIFTP_pass=1; + if ($DB > 0) + {print "\n----- FTP PASS: $VARFTP_pass -----\n\n";} + } + if ($args =~ /--ftp-dir=/i) + { + my @data_in = split(/--ftp-dir=/,$args); + $VARFTP_dir = $data_in[1]; + $VARFTP_dir =~ s/ .*//gi; + $CLIFTP_dir=1; + if ($DB > 0) + {print "\n----- FTP DIRECTORY: $VARFTP_dir -----\n\n";} + } + } + } +else + { + #print "no command line options set\n"; + $WAV=1; + } + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +use Net::Ping; +use Net::FTP; + +### directory where -all recordings are +$dir2 = "$PATHDONEmonitor/FTP"; + +opendir(FILE, "$dir2/"); +@FILES = readdir(FILE); + +### Loop through files first to gather filesizes +$i=0; +$files_that_count=0; +foreach(@FILES) + { + $FILEsize1[$i] = 0; + if ( (length($FILES[$i]) > 4) && (!-d "$dir2/$FILES[$i]") ) + { + $FILEsize1[$i] = (-s "$dir2/$FILES[$i]"); + if ($DBX) {print "$dir2/$FILES[$i] $FILEsize1[$i]\n";} + $files_that_count++; + } + $i++; + if ($files_that_count >= $list_limit) + { + last(); + } + } + +sleep(5); + +$transfered_files = 0; + +### Loop through files a second time to gather filesizes again 5 seconds later +$i=0; +foreach(@FILES) + { + $FILEsize2[$i] = 0; + + if ( (length($FILES[$i]) > 4) && (!-d "$dir2/$FILES[$i]") ) + { + + $FILEsize2[$i] = (-s "$dir2/$FILES[$i]"); + if ($DBX) {print "$dir2/$FILES[$i] $FILEsize2[$i]\n\n";} + + if ($FILEsize1[$i] ne $FILEsize2[$i]) { + if ($DBX) {print "not transfering $dir2/$FILES[$i]. File size mismatch $FILEsize2[$i] != $FILEsize1[$i]\n\n";} + } + + if ( ($FILES[$i] !~ /out\.|in\.|lost\+found/i) && ($FILEsize1[$i] eq $FILEsize2[$i]) && (length($FILES[$i]) > 4)) + { + $recording_id=''; + $ALLfile = $FILES[$i]; + $SQLFILE = $FILES[$i]; + $SQLFILE =~ s/-all\.wav|-all\.gsm|-all\.ogg|-all\.mp3//gi; + + $stmtA = "select recording_id,start_time from recording_log where filename='$SQLFILE' order by recording_id desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $recording_id = "$aryA[0]"; + $start_date = "$aryA[1]"; + $start_date =~ s/ .*//gi; + } + $sthA->finish(); + + if (length($start_date) < 6) + {$start_date = $FTPdate;} + + if ($DB) {print "|$recording_id|$start_date|$ALLfile| |$SQLfile|\n";} + + ### BEGIN Remote file transfer + $p = Net::Ping->new(); + $ping_good = $p->ping("$VARFTP_host"); + + if (!$ping_good) + { + $p = Net::Ping->new("icmp"); + $ping_good = $p->ping("$VARFTP_host"); + } + + if ($ping_good) + { + $transfered_files++; + + $start_date_PATH=''; + $FTPdb=0; + if ($DBX>0) {$FTPdb=1;} + $ftp = Net::FTP->new("$VARFTP_host", Port => $VARFTP_port, Debug => $FTPdb); + $ftp->login("$VARFTP_user","$VARFTP_pass"); + $ftp->cwd("$VARFTP_dir"); + if ($NODATEDIR < 1) + { + $ftp->mkdir("$start_date"); + $ftp->cwd("$start_date"); + $start_date_PATH = "$start_date/"; + } + $ftp->binary(); + $ftp->put("$dir2/$ALLfile", "$ALLfile"); + $ftp->quit; + + # FTP2 scripts do not alter the URL of the recording + # $stmtA = "UPDATE recording_log set location='$VARHTTP_path/$start_date_PATH$ALLfile' where recording_id='$recording_id';"; + # if($DB){print STDERR "\n|$stmtA|\n";} + # $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + + if (!$T) + { + `mv -f "$dir2/$ALLfile" "$PATHDONEmonitor/FTP2/$ALLfile"`; + } + + if($DBX){print STDERR "Transfered $transfered_files files\n";} + + if ( $transfered_files == $file_limit) + { + if($DBX){print STDERR "Transfer limit of $file_limit reached breaking out of the loop\n";} + last(); + } + } + else + { + if($DB){print "ERROR: Could not ping server $VARFTP_host\n";} + } + ### END Remote file transfer + + ### sleep for twenty hundredths of a second to not flood the server with disk activity + usleep(1*200*1000); + + } + } + $i++; + } + +if ($DB) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_purge_recordings.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_purge_recordings.pl new file mode 100644 index 00000000..e3b25a45 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_CRON_purge_recordings.pl @@ -0,0 +1,193 @@ +#!/usr/bin/perl +# +# AST_CRON_purge_recordings.pl version 2.0.5 +# +# IMPORTANT!!! used to delete recordings!!! +# +# runs every day, goes through recordings older than a certain number of days +# and deletes those recordings that are not of a certain status +# default is 30 days old to remove non-sales +# +# put an entry into the cron of of your asterisk machine to run this script +# every day or however often you desire +# +# This program assumes that recordings are saved as .wav +# should be easy to change this code if you use .gsm instead +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# +# 70917-1339 - first build +# + +$save_statuses = '|SALE|UPSALE|UPSELL|XFER|DNC|DROP|A1|A2|A3|A4|A5|A6|A7|A8|A9|'; +$suffix = '-all.wav'; +$local_DIR = '/home2/cron/RECORDINGS'; +$use_date_DIRs = 1; + +# Customize variables for FTP +$FTP_host = '10.0.0.4'; +$FTP_user = 'cron'; +$FTP_pass = 'test'; +$FTP_dir = 'RECORDINGS'; +$HTTP_path = 'http://10.0.0.4'; + + +$secX = time(); + +$TDtarget = ($secX - 2592000); # thirty days +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + +$FDtarget = ($secX - 3456000); # forty-five days +($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); +$Fyear = ($Fyear + 1900); +$Fmon++; +if ($Fmon < 10) {$Fmon = "0$Fmon";} +if ($Fmday < 10) {$Fmday = "0$Fmday";} +if ($Fhour < 10) {$Fhour = "0$Fhour";} +if ($Fmin < 10) {$Fmin = "0$Fmin";} +if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDSQLdate = "$Fyear-$Fmon-$Fmday $Fhour:$Fmin:$Fsec"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; + + +##### Get the lead_ids of all recordings that are not DELETED or NULL ##### +$stmtA = "SELECT lead_id,recording_id,start_time,filename,location FROM recording_log where start_time < '$TDSQLdate' and start_time > '$FDSQLdate' and location IS NOT NULL and location NOT IN('','NOT_FOUND','NOT_FOUND_2','DELETED') LIMIT 5000;"; + print "$stmtA\n"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $lead_ids[$i] = "$aryA[0]"; + $recording_ids[$i] = "$aryA[1]"; + $start_times[$i] = "$aryA[2]"; + $filenames[$i] = "$aryA[3]"; + $locations[$i] = "$aryA[4]"; + $i++; + } +$sthA->finish(); + +##### Go through list of leads and find all of their statuses ##### +$i=0; +foreach(@lead_ids) + { + ### Grab status of the lead in the vicidial_list table + $stmtA = "SELECT status FROM vicidial_list where lead_id='$lead_ids[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $h=0; + while ($sthArows > $h) + { + @aryA = $sthA->fetchrow_array; + $statuses[$i] = "$aryA[0]"; + $h++; + } + $sthA->finish(); + + $i++; + } + + +##### Go through list of leads and delete all recordings with no-save statuses ##### +$i=0; +$KEEP=0; +$DELETE=0; +foreach(@lead_ids) + { + if ( ($save_statuses !~ /\|$statuses[$i]\|/) && (length($statuses[$i])>0) ) + { + if ($use_date_DIRs) + { + $date_DIR = $start_times[$i]; + $date_DIR =~ s/ .*//gi; + $date_DIR .= "/"; + } + else {$date_DIR=''} + `rm -f $local_DIR/$date_DIR$filenames[$i]$suffix`; + print "rm -f $local_DIR/$date_DIR$filenames[$i]$suffix |$statuses[$i]|$lead_ids[$i]|\n"; + + $stmtA = "UPDATE recording_log set location='DELETED' where recording_id='$recording_ids[$i]';"; + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + $DELETE++; + } + else + { + print "KEEP- $filenames[$i]$suffix |$statuses[$i]|$lead_ids[$i]|\n"; + $KEEP++; + } + $i++; + } + +print "KEEP: $KEEP\n"; +print "DELETED: $DELETE\n"; +print "--------------------\n"; +print "TOTAL: $i\n"; + +if ($v) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_DB_lead_status_change.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_DB_lead_status_change.pl new file mode 100644 index 00000000..37bb2cbb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_DB_lead_status_change.pl @@ -0,0 +1,111 @@ +#!/usr/bin/perl +# +# AST_DB_lead_status_change.pl version 2.0.5 *DBI-version* +# +# DESCRIPTION: +# OPTIONAL!!! CUSTOMIZE THIS SCRIPT FIRST!!! +# - changes status of leads as crontab script +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 80114-1150 - first build +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag, set to 0 for no debug messages, On an active system this will generate hundreds of lines of output per minute + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +print "no command line options set\n"; + $loop_delay = '2500'; + $DB=1; +} +### end parsing run-time options ### + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +##### change Pacific Mountain + +$stmtA = "UPDATE vicidial_list set status='NEW' where status='NA' and called_count IN('1','2');"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + +$dbhA->disconnect(); + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_DB_optimize.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_DB_optimize.pl new file mode 100644 index 00000000..7f4876dd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_DB_optimize.pl @@ -0,0 +1,336 @@ +#!/usr/bin/perl +# +# AST_DB_optimize.pl version 2.2.0 *DBI-version* +# +# DESCRIPTION: +# optimizes the tables used in the asterisk MySQL database +# +# It is recommended that you run this program on the local Asterisk machine +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 60717-1242 - changed to DBI by Marin Blu +# 60718-1645 - changed to use /etc/astguiclient.conf for configs +# 71030-2020 - Added deletions of stats and inbound live agents +# 71109-1725 - fixed vicidial_campaign_stats bug +# 71215-0410 - fixed UPDATE/DELETE results +# 80909-0555 - added vicidial_campaign_dnc table +# 90307-2025 - Added several new queries and rearranged update/deletes +# 90401-1335 - Added quiet and test flag functions +# 90628-2354 - Added vicidial_drop_rate_groups optimizations +# 91028-1028 - Removed non-optimize queries, they are placed in ADMIN_keepalive now and happen at timeclock reset time +# + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + + + +$MT[0]=''; +$q=0; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [-help] = this screen\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /-t/i) + { + $T=1; + } + if ($args =~ /-q/i) + { + $q=1; + $DB=0; + } + } + } +else + { + print "no command line options set\n"; + } + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$stmtA = "optimize table call_log;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table park_log;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_log;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_closer_log;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_xfer_log;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_list;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_manager;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_auto_calls;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_live_agents;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_dnc;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_campaign_dnc;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_callbacks;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_agent_log;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_conferences;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_hopper;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table servers;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_timeclock_log;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$stmtA = "optimize table vicidial_timeclock_status;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } + +$dbhA->disconnect(); + + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_DB_tz_divide.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_DB_tz_divide.pl new file mode 100644 index 00000000..81d18f38 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_DB_tz_divide.pl @@ -0,0 +1,209 @@ +#!/usr/bin/perl +# +# AST_DB_tz_divide.pl version 2.0.5 *DBI-version* +# +# DESCRIPTION: +# OPTIONAL!!! CUSTOMIZE THIS SCRIPT FIRST!!! +# - separates leads into two different lists +# - moves leads older than 30 days into 999999 list_id +# - deletes non-sale leads older than 45 days +# +# It is recommended that you run this program on the local Asterisk machine +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 71106-0250 - first build +# 71106-1235 - fixed bugs and made debug function properly +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag, set to 0 for no debug messages, On an active system this will generate hundreds of lines of output per minute + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +print "no command line options set\n"; + $loop_delay = '2500'; + $DB=1; +} +### end parsing run-time options ### + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); + + +if ($isdst) + { + $TZmove = "'-6.00','-7.00','-8.00','-9.00','-10.00'"; + $TZback = "'-4.00','-5.00'"; + } +else + { + $TZmove = "'-7.00','-8.00','-9.00','-10.00','-11.00'"; + $TZback = "'-5.00','-6.00'"; + } + + ##### change Pacific Mountain + + $stmtA = "UPDATE vicidial_list set list_id='222' where list_id='111' and gmt_offset_now IN($TZmove);"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + + $stmtA = "UPDATE vicidial_list set list_id='12021' where list_id='11315' and gmt_offset_now IN($TZmove);"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + + $stmtA = "UPDATE vicidial_list set list_id='4444' where list_id='3333' and gmt_offset_now IN($TZmove);"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + + ##### change back Eastern Central + + $stmtA = "UPDATE vicidial_list set list_id='111' where list_id='222' and gmt_offset_now IN($TZback);"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + + $stmtA = "UPDATE vicidial_list set list_id='11315' where list_id='12021' and gmt_offset_now IN($TZback);"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + + $stmtA = "UPDATE vicidial_list set list_id='3333' where list_id='4444' and gmt_offset_now IN($TZback);"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + + + + +$secX = time(); + +$XDtarget = ($secX - 2678400); +($Xsec,$Xmin,$Xhour,$Xmday,$Xmon,$Xyear,$Xwday,$Xyday,$Xisdst) = localtime($XDtarget); +$Xyear = ($Xyear + 1900); +$Xmon++; +if ($Xmon < 10) {$Xmon = "0$Xmon";} +if ($Xmday < 10) {$Xmday = "0$Xmday";} +if ($Xhour < 10) {$Xhour = "0$Xhour";} +if ($Xmin < 10) {$Xmin = "0$Xmin";} +if ($Xsec < 10) {$Xsec = "0$Xsec";} + $XDSQLdate = "$Xyear-$Xmon-$Xmday $Xhour:$Xmin:$Xsec"; + +$TDtarget = ($secX - 5356800); +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + + $stmtA = "UPDATE vicidial_list set list_id='999999' where list_id IN('11315','12021','111','222','3333','4444') and entry_date < \"$XDSQLdate\";"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + + $stmtA = "DELETE from vicidial_list WHERE list_id='999999' and entry_date < \"$TDSQLdate\" and status NOT IN('SALE','UPSELL','UPSALE','A1','A2','A3','A4');"; + if($DB){print STDERR "\n|$stmtA|\n";} + if (!$T) { + $affected_rows = $dbhA->do($stmtA); + if($DB){print STDERR "\n|$affected_rows records changed|\n";} + } + + + $dbhA->disconnect(); + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_SWAMPauto_dial.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_SWAMPauto_dial.pl new file mode 100644 index 00000000..f003b195 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_SWAMPauto_dial.pl @@ -0,0 +1,276 @@ +#!/usr/bin/perl +# +# AST_SWAMPauto_dial.pl version 0.3 +# +# DESCRIPTION: +# uses MySQL to place auto_dial calls on the VICIDIAL dialer system +# +# SUMMARY: +# This program was designed to test inbound phone system with a set number of +# calls being launched one per second for a set time period using incrementing +# CallerID numbers +# +# # The Gettysburg address is about 100 seconds, this is a free recording +# cd /var/lib/asterisk/sounds/ +# wget http://www.eflo.net/files/gettysburgaddress.wav +# +# exten => 834562311,1,Answer +# exten => 834562311,2,Playback(gettysburgaddress) +# exten => 834562311,3,Hangup +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 50708-1533 - First version +# 80217-0226 - Changed to DBI and added more options +# 90411-0708 - Added --concurrent-calls flag +# + + +# constants + $CIDlist[0] = '9989998888'; +$dialstring_800_prefix = '91'; +$dialstring_number = '6102350796'; # number being dialed (inbound queue) + $server_ips[0] = '192.168.75.21'; + $server_ips[1] = '192.168.75.23'; + $server_ips[2] = '192.168.75.22'; +# $server_ips[3] = '192.168.1.240'; +# $server_ips[0] = '192.168.1.106'; +# $server_ips[1] = '192.168.1.249'; +# $server_ips[2] = '192.168.1.239'; +# $server_ips[3] = '192.168.1.240'; +# $server_ips[0] = '10.10.11.11'; +# $server_ips[1] = '10.10.11.21'; +# $server_ips[2] = '10.10.11.22'; +# $server_ips[3] = '10.10.11.23'; +# $server_ips[4] = '10.10.11.24'; +# $server_ips[5] = '10.10.11.25'; +# $server_ips[6] = '10.10.11.13'; +# $server_ips[7] = '10.10.11.14'; +# $server_ips[8] = '10.10.11.15'; +# $server_ips[9] = '10.10.11.16'; +# $server_ips[10] = '10.10.11.18'; +# $server_ips[11] = '10.10.11.19'; +$exten='834562311'; # where the test audio file is located +$context='default'; +$US='_'; +$loop_delay = '10000'; +$it='0'; +$total_loops='3600'; # 3600 seconds = 1 hour +#$total_loops='100'; # 3600 seconds = 1 hour +$dialstring = "$dialstring_800_prefix$dialstring_number"; +$MT[0]=''; + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [-t] = test\n"; + print " [-debug] = verbose debug messages\n"; + print " [--delay=XXX] = delay of XXX seconds per loop, default 2.5 seconds\n"; + print " [--concurrent-calls=XXX] = sets number of concurrent calls to maintain, overrides delay setting\n\n"; + exit; + } + else + { + if ($args =~ /--delay=/i) + { + @data_in = split(/--delay=/,$args); + $loop_delay = $data_in[1]; + print " LOOP DELAY OVERRIDE!!!!! = $loop_delay seconds\n\n"; + $loop_delay = ($loop_delay * 1000); + } + else + { + $loop_delay = '1000'; + } + if ($args =~ /--concurrent-calls=/i) + { + @data_in = split(/--concurrent-calls=/,$args); + $concurrent_calls = $data_in[1]; + $loop_delay = (100000 / $concurrent_calls); + print " CONCURRENT CALLS OVERRIDE!!!!! = $concurrent_calls - $loop_delay\n\n"; + } + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag, set to 0 for no debug messages, On an active system this will generate hundreds of lines of output per minute + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + print "no command line options set\n"; + $DB=1; + } +### end parsing run-time options ### + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +&get_time_now; + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +$SWAMPLOGfile = "$PATHlogs/SWAMP_LOG_$file_date$txt"; + + + $event_string='PROGRAM STARTED||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||'; + &event_logger; # writes to the log and if debug flag is set prints to STDOUT + +use lib './lib', '../lib'; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second + + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|'; +&event_logger; + +$total=0; +$list_it=0; +$server_it=0; +$list_inc=0; +while($it < $total_loops) + { + &get_time_now; # update time/date variables + + $CIDtemp = ($CIDlist[$list_it] + $list_inc); + $SERVERtemp = $server_ips[$server_it]; + + $k=0; + while ($k < 1) + { + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$SERVERtemp','','Originate','TESTCIDX$CIDdate$US$it','Channel: Local/$dialstring@$context','Context; $context','Exten: $exten','Priority: 1','Callerid: \"Inbound Test Call\" <$CIDtemp>','','','','','');"; + $affected_rows = $dbhA->do($stmtA); + # print "|$stmtA|\n"; + $k++; + $total++; + + $event_string="CALL: $total TO: $dialstring CID: $CIDtemp it: $it list_it: $list_it list_inc: $list_inc server: $SERVERtemp"; + print "$event_string\n"; + &event_logger; + + } + ### sleep before beginning the loop again + usleep(1*$loop_delay*1000); + + $it++; + $list_it++; + if ($list_it > $#CIDlist) {$list_it=0; $list_inc++;} + $server_it++; + if ($server_it > $#server_ips) {$server_it=0;} + } + +exit; + + + + + + + + + + + + + +sub get_time_now #get the current date and time and epoch for logging call lengths and datetimes +{ + $secX = time(); +$secX = time(); + +($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"; +$file_date = "$year-$mon-$mday_$hour$min$sec"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + +} + + + + + +sub event_logger +{ + +#if ($DB) {print "$now_date|$event_string|\n";} + ### open the log file for writing ### + open(Lout, ">>$SWAMPLOGfile") + || die "Can't open $SWAMPLOGfile: $!\n"; + + print Lout "$now_date|$event_string|\n"; + + close(Lout); + +$event_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDadapt.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDadapt.pl new file mode 100644 index 00000000..e19d7e1e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDadapt.pl @@ -0,0 +1,1721 @@ +#!/usr/bin/perl +# +# AST_VDadapt.pl version 2.2.0 +# +# DESCRIPTION: +# adjusts the auto_dial_level for vicidial adaptive-predictive campaigns. +# gather call stats for campaigns and in-groups +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 60823-1302 - First build from AST_VDhopper.pl +# 60825-1734 - Functional alpha version, no loop +# 60826-0857 - Added loop and CLI flag options +# 60827-0035 - Separate Drop calculation and target dial level calculation into different subroutines +# - Alter code so that DROP percentages would calculate only about once a minute no matter he loop delay +# 60828-1149 - Add field for target dial_level difference, -1 would target one agent waiting, +1 would target 1 customer waiting +# 60919-1243 - Changed variables to use arrays for all campaign-specific values +# 61215-1110 - Added answered calls stats and use drops as percentage of answered for today +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70205-1429 - Added code for campaign_changedate and campaign_stats_refresh updates +# 70213-1221 - Added code for QueueMetrics queue_log QUEUESTART record +# 70219-1249 - Removed unused references to dial_status_x fields +# 70409-1219 - Removed CLOSER-type campaign restriction +# 70521-1038 - Fixed bug when no live campaigns are running, define $vicidial_log +# 70619-1339 - Added Status Category tally calculations +# 71029-1906 - Changed CLOSER-type campaign_id restriction +# 81021-2201 - Deactivated queue_log QUEUESTART event +# 81022-0713 - Added gathering of vicidial_inbound_groups stats(day only) +# 81108-0808 - Added more inbound stats with some debug output and added campaign agent non-pause time +# 90415-0925 - Fixed rare division by zero bug +# 90512-1549 - Formatting fixes and calculation bugs in blended +# 90628-2001 - Added drop rate group functions +# 91115-0929 - Added auto-kill of script at timeclock reset time of day to facilitate cleaner clearing of daily stats +# 91206-2203 - Added campaign_calldate within last 5 minute as an override to recalculate stats +# + +# constants +$DB=0; # Debug flag, set to 0 for no debug messages, On an active system this will generate lots of lines of output per minute +$US='__'; +$MT[0]=''; + +##### table definitions: + $vicidial_log = 'vicidial_log FORCE INDEX (call_date) '; +# $vicidial_log = 'vicidial_log'; + $vicidial_closer_log = 'vicidial_closer_log FORCE INDEX (call_date) '; +# $vicidial_closer_log = 'vicidial_closer_log'; + + +$i=0; +$drop_count_updater=0; +$stat_it=15; +$diff_ratio_updater=0; +$stat_count=1; +$VCScalls_today[$i]=0; +$VCSdrops_today[$i]=0; +$VCSdrops_today_pct[$i]=0; +$VCScalls_hour[$i]=0; +$VCSdrops_hour[$i]=0; +$VCSdrops_hour_pct[$i]=0; +$VCScalls_halfhour[$i]=0; +$VCSdrops_halfhour[$i]=0; +$VCSdrops_halfhour_pct[$i]=0; +$VCScalls_five[$i]=0; +$VCSdrops_five[$i]=0; +$VCSdrops_five_pct[$i]=0; +$VCScalls_one[$i]=0; +$VCSdrops_one[$i]=0; +$VCSdrops_one_pct[$i]=0; +$total_agents[$i]=0; +$ready_agents[$i]=0; +$waiting_calls[$i]=0; +$ready_diff_total[$i]=0; +$waiting_diff_total[$i]=0; +$total_agents_total[$i]=0; +$ready_diff_avg[$i]=0; +$waiting_diff_avg[$i]=0; +$total_agents_avg[$i]=0; +$stat_differential[$i]=0; +$VCSINCALL[$i]=0; +$VCSREADY[$i]=0; +$VCSCLOSER[$i]=0; +$VCSPAUSED[$i]=0; +$VCSagents[$i]=0; +$VCSagents_calc[$i]=0; +$VCSagents_active[$i]=0; + +# set to 61 initially so that a baseline drop count is pulled +$drop_count_updater=61; + +$secT = time(); + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options(must stay in this order):\n [--debug] = debug\n [--debugX] = super debug\n [-t] = test\n [--loops=XXX] = force a number of loops of XXX\n [--delay=XXX] = force a loop delay of XXX seconds\n [--campaign=XXX] = run for campaign XXX only\n [-force] = force calculation of suggested predictive dial_level\n [-test] = test only, do not alter dial_level\n\n"; + } + else + { + if ($args =~ /--campaign=/i) # CLI defined campaign + { + @CLIvarARY = split(/--campaign=/,$args); + @CLIvarARX = split(/ /,$CLIvarARY[1]); + if (length($CLIvarARX[0])>2) + { + $CLIcampaign = $CLIvarARX[0]; + $CLIcampaign =~ s/\/$| |\r|\n|\t//gi; + } + else + {$CLIcampaign = '';} + @CLIvarARY=@MT; @CLIvarARY=@MT; + } + else + {$CLIcampaign = '';} + if ($args =~ /--level=/i) # CLI defined level + { + @CLIvarARY = split(/--level=/,$args); + @CLIvarARX = split(/ /,$CLIvarARY[1]); + if (length($CLIvarARX[0])>2) + { + $CLIlevel = $CLIvarARX[0]; + $CLIlevel =~ s/\/$| |\r|\n|\t//gi; + $CLIlevel =~ s/\D//gi; + } + else + {$CLIlevel = '';} + @CLIvarARY=@MT; @CLIvarARY=@MT; + } + else + {$CLIlevel = '';} + if ($args =~ /--loops=/i) # CLI defined loops + { + @CLIvarARY = split(/--loops=/,$args); + @CLIvarARX = split(/ /,$CLIvarARY[1]); + if (length($CLIvarARX[0])>2) + { + $CLIloops = $CLIvarARX[0]; + $CLIloops =~ s/\/$| |\r|\n|\t//gi; + $CLIloops =~ s/\D//gi; + } + else + {$CLIloops = '1000000';} + @CLIvarARY=@MT; @CLIvarARY=@MT; + } + else + {$CLIloops = '1000000';} + if ($args =~ /--delay=/i) # CLI defined delay + { + @CLIvarARY = split(/--delay=/,$args); + @CLIvarARX = split(/ /,$CLIvarARY[1]); + if (length($CLIvarARX[0])>2) + { + $CLIdelay = $CLIvarARX[0]; + $CLIdelay =~ s/\/$| |\r|\n|\t//gi; + $CLIdelay =~ s/\D//gi; + } + else + {$CLIdelay = '1';} + @CLIvarARY=@MT; @CLIvarARY=@MT; + } + else + {$CLIdelay = '1';} + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n"; + print "----- SUPER DEBUG -----\n"; + print "VARS-\n"; + print "CLIcampaign- $CLIcampaign\n"; + print "CLIlevel- $CLIlevel\n"; + print "CLIloops- $CLIloops\n"; + print "CLIdelay- $CLIdelay\n"; + print "\n"; + } + if ($args =~ /-force/i) + { + $force_test=1; + print "\n----- FORCE TESTING -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + } + } +else + { + $CLIcampaign = ''; + $CLIlevel = ''; + $CLIloops = '1000000'; + $CLIdelay = '1'; + } + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +if ($DBX) {print "CONNECTED TO DATABASE: $VARDB_server|$VARDB_database\n";} + +# make sure the vicidial_campaign_stats table has all of the campaigns. +# They should exist, but sometimes they get accidently removed during db moves and the like. +$stmtA = "insert ignore into vicidial_campaign_stats (campaign_id) select campaign_id from vicidial_campaigns;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + +&get_time_now; + +############################################# +##### START QUEUEMETRICS LOGGING LOOKUP ##### +# Disabled per Lorenzo at QueueMetrics because this Asterisk event is apparently useless +#$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; +#$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +#$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +#$sthArows=$sthA->rows; +#$rec_count=0; +#while ($sthArows > $rec_count) +# { +# @aryA = $sthA->fetchrow_array; +# $enable_queuemetrics_logging = "$aryA[0]"; +# $queuemetrics_server_ip = "$aryA[1]"; +# $queuemetrics_dbname = "$aryA[2]"; +# $queuemetrics_login = "$aryA[3]"; +# $queuemetrics_pass = "$aryA[4]"; +# $queuemetrics_log_id = "$aryA[5]"; +# $rec_count++; +# } +#$sthA->finish(); +# +#if ($enable_queuemetrics_logging > 0) +# { +# $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") +# or die "Couldn't connect to database: " . DBI->errstr; +# +# if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} +# +# $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secT',call_id='NONE',queue='NONE',agent='NONE',verb='QUEUESTART',serverid='$queuemetrics_log_id';"; +# $Baffected_rows = $dbhB->do($stmtB); +# +# $dbhB->disconnect(); +# } +##### END QUEUEMETRICS LOGGING LOOKUP ##### +########################################### + + +$master_loop=0; + +### Start master loop ### +while ($master_loop<$CLIloops) + { + &get_time_now; + + ### Grab Server values from the database + $stmtA = "SELECT vd_server_logs,local_gmt FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = "$aryA[0]"; + $DBSERVER_GMT = "$aryA[1]"; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + if (length($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } + $sthA->finish(); + + + $secX = time(); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX); + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + if ($isdst) {$LOCAL_GMT_OFF++;} + + $GMT_now = ($secX - ($LOCAL_GMT_OFF * 3600)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($GMT_now); + $mon++; + $year = ($year + 1900); + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + + # if ($DB) {print "TIME DEBUG: $master_loop $LOCAL_GMT_OFF_STD|$LOCAL_GMT_OFF|$isdst| GMT: $hour:$min\n";} + + @campaign_id=@MT; + @lead_order=@MT; + @hopper_level=@MT; + @auto_dial_level=@MT; + @local_call_time=@MT; + @lead_filter_id=@MT; + @use_internal_dnc=@MT; + @dial_method=@MT; + @available_only_ratio_tally=@MT; + @adaptive_dropped_percentage=@MT; + @adaptive_maximum_level=@MT; + @adaptive_latest_server_time=@MT; + @adaptive_intensity=@MT; + @adaptive_dl_diff_target=@MT; + @campaign_changedate=@MT; + @campaign_stats_refresh=@MT; + @campaign_allow_inbound=@MT; + @drop_rate_group=@MT; + + if ($CLIcampaign) + { + $stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,UNIX_TIMESTAMP(campaign_changedate),campaign_stats_refresh,campaign_allow_inbound,drop_rate_group,UNIX_TIMESTAMP(campaign_calldate) from vicidial_campaigns where campaign_id='$CLIcampaign'"; + } + else + { + $stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,UNIX_TIMESTAMP(campaign_changedate),campaign_stats_refresh,campaign_allow_inbound,drop_rate_group,UNIX_TIMESTAMP(campaign_calldate) from vicidial_campaigns where ( (active='Y') or (campaign_stats_refresh='Y') )"; + } + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $campaign_id[$rec_count] = $aryA[0]; + $lead_order[$rec_count] = $aryA[1]; + if (!$CLIlevel) + {$hopper_level[$rec_count] = $aryA[2];} + else + {$hopper_level[$rec_count] = $CLIlevel;} + $auto_dial_level[$rec_count] = $aryA[3]; + $local_call_time[$rec_count] = $aryA[4]; + $lead_filter_id[$rec_count] = $aryA[5]; + $use_internal_dnc[$rec_count] = $aryA[6]; + $dial_method[$rec_count] = $aryA[7]; + $available_only_ratio_tally[$i][$rec_count] = $aryA[8]; + $adaptive_dropped_percentage[$rec_count] = $aryA[9]; + $adaptive_maximum_level[$rec_count] = $aryA[10]; + $adaptive_latest_server_time[$rec_count] = $aryA[11]; + $adaptive_intensity[$rec_count] = $aryA[12]; + $adaptive_dl_diff_target[$rec_count] = $aryA[13]; + $campaign_changedate[$rec_count] = $aryA[14]; + $campaign_stats_refresh[$rec_count] = $aryA[15]; + $campaign_allow_inbound[$rec_count] = $aryA[16]; + $drop_rate_group[$rec_count] = $aryA[17]; + $campaign_calldate_epoch[$rec_count] = $aryA[18]; + + $rec_count++; + } + $sthA->finish(); + if ($DB) {print "$now_date CAMPAIGNS TO PROCESSES ADAPT FOR: $rec_count|$#campaign_id IT: $master_loop\n";} + + $five_min_ago = time(); + $five_min_ago = ($five_min_ago - 300); + + ##### LOOP THROUGH EACH CAMPAIGN AND PROCESS THE HOPPER ##### + $i=0; + foreach(@campaign_id) + { + ### Find out how many leads are in the hopper from a specific campaign + $hopper_ready_count=0; + $stmtA = "SELECT count(*) from vicidial_hopper where campaign_id='$campaign_id[$i]' and status='READY';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $hopper_ready_count = $aryA[0]; + if ($DB) {print " $campaign_id[$i] hopper READY count: $hopper_ready_count";} + # if ($DBX) {print " |$stmtA|\n";} + } + $sthA->finish(); + $event_string = "|$campaign_id[$i]|$hopper_level[$i]|$hopper_ready_count|$local_call_time[$i]|$diff_ratio_updater|$drop_count_updater|"; + if ($DBX) {print "$i $event_string\n";} + &event_logger; + + if ($DBX) {print " TIME CALL CHECK: $five_min_ago/$campaign_calldate_epoch[$i]\n";} + + ##### IF THERE ARE NO LEADS IN THE HOPPER FOR THE CAMPAIGN WE DO NOT WANT TO ADJUST THE DIAL_LEVEL + if ($hopper_ready_count>0) + { + ### BEGIN - GATHER STATS FOR THE vicidial_campaign_stats TABLE ### + $differential_onemin[$i]=0; + $agents_average_onemin[$i]=0; + + &count_agents_lines; + + if ($total_agents_avg[$i] > 0) + { + ### Update Drop counter every 60 seconds + if ($drop_count_updater>=60) + { + &calculate_drops; + } + + ### Calculate and update Dial level every 15 seconds + if ($diff_ratio_updater>=15) + { + &calculate_dial_level; + } + } + else + { + if ( ($campaign_stats_refresh[$i] =~ /Y/) || ($five_min_ago < $campaign_calldate_epoch[$i]) ) + { + if ($drop_count_updater>=60) + { + if ($DB) {print " REFRESH OVERRIDE: $campaign_id[$i]\n";} + + &calculate_drops; + + $RESETdrop_count_updater++; + + $stmtA = "UPDATE vicidial_campaigns SET campaign_stats_refresh='N' where campaign_id='$campaign_id[$i]';"; + $affected_rows = $dbhA->do($stmtA); + } + } + else + { + if ($campaign_changedate[$i] >= $VDL_ninty) + { + if ($drop_count_updater>=60) + { + if ($DB) {print " CHANGEDATE OVERRIDE: $campaign_id[$i]\n";} + + &calculate_drops; + + $RESETdrop_count_updater++; + } + } + } + } + } + else + { + if ( ($campaign_stats_refresh[$i] =~ /Y/) || ($five_min_ago < $campaign_calldate_epoch[$i]) ) + { + if ($drop_count_updater>=60) + { + if ($DB) {print " REFRESH OVERRIDE: $campaign_id[$i]\n";} + + &calculate_drops; + + $RESETdrop_count_updater++; + + $stmtA = "UPDATE vicidial_campaigns SET campaign_stats_refresh='N' where campaign_id='$campaign_id[$i]';"; + $affected_rows = $dbhA->do($stmtA); + } + } + else + { + if ($campaign_changedate[$i] >= $VDL_ninty) + { + if ($drop_count_updater>=60) + { + if ($DB) {print " CHANGEDATE OVERRIDE: $campaign_id[$i]\n";} + + &calculate_drops; + + $RESETdrop_count_updater++; + } + } + } + } + $i++; + } + + if ($stat_count =~ /1$/) + { + &drop_rate_group_gather; + } + + if ( ($stat_count =~ /00$|50$/) || ($stat_count==1) ) + { + &launch_inbound_gather; + } + + if ($RESETdiff_ratio_updater>0) {$RESETdiff_ratio_updater=0; $diff_ratio_updater=0;} + if ($RESETdrop_count_updater>0) {$RESETdrop_count_updater=0; $drop_count_updater=0;} + $diff_ratio_updater = ($diff_ratio_updater + $CLIdelay); + $drop_count_updater = ($drop_count_updater + $CLIdelay); + + usleep($CLIdelay*1000*1000); + + $stat_count++; + $master_loop++; + } + +$dbhA->disconnect(); + +if($DB) + { + ### calculate time to run script ### + $secY = time(); + $secZ = ($secY - $secT); + + if (!$q) {print "DONE. Script execution time in seconds: $secZ\n";} + } + +exit; + + + + + +### SUBROUTINES ############################################################### + +sub event_logger + { + if ($SYSLOG) + { + if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/adapt.$year-$mon-$mday";} + + ### open the log file for writing ### + open(Lout, ">>$VDHLOGfile") + || die "Can't open $VDHLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } + + +sub adaptive_logger + { + if ($SYSLOG) + { + $VDHCLOGfile = "$PATHlogs/VDadaptive-$campaign_id[$i].$file_date"; + + ### open the log file for writing ### + open(Aout, ">>$VDHCLOGfile") + || die "Can't open $VDHCLOGfile: $!\n"; + print Aout "$now_date$adaptive_string\n"; + close(Aout); + } + $adaptive_string=''; + } + +sub get_time_now + { + $secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $file_date = "$year-$mon-$mday"; + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + $VDL_date = "$year-$mon-$mday 00:00:01"; + $current_hourmin = "$hour$min"; + + ### get date-time of one hour ago ### + $VDL_hour = ($secX - (60 * 60)); + ($Vsec,$Vmin,$Vhour,$Vmday,$Vmon,$Vyear,$Vwday,$Vyday,$Visdst) = localtime($VDL_hour); + $Vyear = ($Vyear + 1900); + $Vmon++; + if ($Vmon < 10) {$Vmon = "0$Vmon";} + if ($Vmday < 10) {$Vmday = "0$Vmday";} + $VDL_hour = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec"; + + ### get date-time of half hour ago ### + $VDL_halfhour = ($secX - (30 * 60)); + ($Vsec,$Vmin,$Vhour,$Vmday,$Vmon,$Vyear,$Vwday,$Vyday,$Visdst) = localtime($VDL_halfhour); + $Vyear = ($Vyear + 1900); + $Vmon++; + if ($Vmon < 10) {$Vmon = "0$Vmon";} + if ($Vmday < 10) {$Vmday = "0$Vmday";} + $VDL_halfhour = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec"; + + ### get date-time of five minutes ago ### + $VDL_five = ($secX - (5 * 60)); + ($Vsec,$Vmin,$Vhour,$Vmday,$Vmon,$Vyear,$Vwday,$Vyday,$Visdst) = localtime($VDL_five); + $Vyear = ($Vyear + 1900); + $Vmon++; + if ($Vmon < 10) {$Vmon = "0$Vmon";} + if ($Vmday < 10) {$Vmday = "0$Vmday";} + $VDL_five = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec"; + + ### get epoch of ninty seconds ago ### + $VDL_ninty = ($secX - (1 * 90)); + + ### get date-time of one minute ago ### + $VDL_one = ($secX - (1 * 60)); + ($Vsec,$Vmin,$Vhour,$Vmday,$Vmon,$Vyear,$Vwday,$Vyday,$Visdst) = localtime($VDL_one); + $Vyear = ($Vyear + 1900); + $Vmon++; + if ($Vmon < 10) {$Vmon = "0$Vmon";} + if ($Vmday < 10) {$Vmday = "0$Vmday";} + $VDL_one = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec"; + + $timeclock_end_of_day_NOW=0; + ### Grab system_settings values from the database + $stmtA = "SELECT count(*) from system_settings where timeclock_end_of_day LIKE \"%$current_hourmin%\";"; + if ($DBX) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $timeclock_end_of_day_NOW = "$aryA[0]"; + } + $sthA->finish(); + + if ($timeclock_end_of_day_NOW > 0) + { + $event_string = "End of Day, shutting down this script in 10 seconds, script will resume in 60 seconds..."; + if ($DB) {print "\n$event_string\n\n\n";} + &event_logger; + + usleep(10*1000*1000); + + exit; + } + } + + +sub count_agents_lines + { + ### Calculate campaign-wide agent waiting and calls waiting differential + $stat_it=15; + $total_agents[$i]=0; + $ready_agents[$i]=0; + $waiting_calls[$i]=0; + $ready_diff_total[$i]=0; + $waiting_diff_total[$i]=0; + $total_agents_total[$i]=0; + $ready_diff_avg[$i]=0; + $waiting_diff_avg[$i]=0; + $total_agents_avg[$i]=0; + $stat_differential[$i]=0; + + $stmtA = "SELECT count(*),status from vicidial_live_agents where campaign_id='$campaign_id[$i]' and last_update_time > '$VDL_one' group by status;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VCSagent_count[$i] = "$aryA[0]"; + $VCSagent_status[$i] = "$aryA[1]"; + $rec_count++; + if ($VCSagent_status[$i] =~ /READY|DONE/) {$ready_agents[$i] = ($ready_agents[$i] + $VCSagent_count[$i]);} + $total_agents[$i] = ($total_agents[$i] + $VCSagent_count[$i]); + } + $sthA->finish(); + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where campaign_id='$campaign_id[$i]' and status IN('LIVE');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $waiting_calls[$i] = "$aryA[0]"; + } + $sthA->finish(); + + $stat_ready_agents[$i][$stat_count] = $ready_agents[$i]; + $stat_waiting_calls[$i][$stat_count] = $waiting_calls[$i]; + $stat_total_agents[$i][$stat_count] = $total_agents[$i]; + + if ($stat_count < 15) + { + $stat_it = $stat_count; + $stat_B = 1; + } + else + { + $stat_B = ($stat_count - 14); + } + + $it=0; + while($it < $stat_it) + { + $it_ary = ($it + $stat_B); + $ready_diff_total[$i] = ($ready_diff_total[$i] + $stat_ready_agents[$i][$it_ary]); + $waiting_diff_total[$i] = ($waiting_diff_total[$i] + $stat_waiting_calls[$i][$it_ary]); + $total_agents_total[$i] = ($total_agents_total[$i] + $stat_total_agents[$i][$it_ary]); + # $event_string="$stat_count $it_ary $stat_total_agents[$i][$it_ary]|$stat_ready_agents[$i][$it_ary]|$stat_waiting_calls[$i][$it_ary]"; + # if ($DB) {print " $event_string\n";} + # &event_logger; + $it++; + } + + if ($ready_diff_total[$i] > 0) + {$ready_diff_avg[$i] = ($ready_diff_total[$i] / $stat_it);} + if ($waiting_diff_total[$i] > 0) + {$waiting_diff_avg[$i] = ($waiting_diff_total[$i] / $stat_it);} + if ($total_agents_total[$i] > 0) + {$total_agents_avg[$i] = ($total_agents_total[$i] / $stat_it);} + $stat_differential[$i] = ($ready_diff_avg[$i] - $waiting_diff_avg[$i]); + + $event_string="CAMPAIGN DIFFERENTIAL: $total_agents_avg[$i] $stat_differential[$i] ($ready_diff_avg[$i] - $waiting_diff_avg[$i])"; + if ($DBX) {print "$campaign_id[$i]|$event_string\n";} + if ($DB) {print " $event_string\n";} + + &event_logger; + + # $stmtA = "UPDATE vicidial_campaign_stats SET differential_onemin[$i]='$stat_differential[$i]', agents_average_onemin[$i]='$total_agents_avg[$i]' where campaign_id='$DBIPcampaign[$i]';"; + # $affected_rows = $dbhA->do($stmtA); + } + + + + + +sub calculate_drops + { + $camp_ANS_STAT_SQL=''; + # GET LIST OF HUMAN-ANSWERED STATUSES + $stmtA = "SELECT status from vicidial_statuses where human_answered='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $camp_ANS_STAT_SQL .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "SELECT status from vicidial_campaign_statuses where campaign_id='$campaign_id[$i]' and human_answered='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $camp_ANS_STAT_SQL .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + chop($camp_ANS_STAT_SQL); + + if ($DBX) {print " CAMPAIGN ANSWERED STATUSES: $campaign_id[$i]|$camp_ANS_STAT_SQL|\n";} + + $RESETdrop_count_updater++; + $VCScalls_today[$i]=0; + $VCSanswers_today[$i]=0; + $VCSdrops_today[$i]=0; + $VCSdrops_today_pct[$i]=0; + $VCSdrops_answers_today_pct[$i]=0; + $VCScalls_hour[$i]=0; + $VCSanswers_hour[$i]=0; + $VCSdrops_hour[$i]=0; + $VCSdrops_hour_pct[$i]=0; + $VCScalls_halfhour[$i]=0; + $VCSanswers_halfhour[$i]=0; + $VCSdrops_halfhour[$i]=0; + $VCSdrops_halfhour_pct[$i]=0; + $VCScalls_five[$i]=0; + $VCSanswers_five[$i]=0; + $VCSdrops_five[$i]=0; + $VCSdrops_five_pct[$i]=0; + $VCScalls_one[$i]=0; + $VCSanswers_one[$i]=0; + $VCSdrops_one[$i]=0; + $VCSdrops_one_pct[$i]=0; + $VCSagent_nonpause_time[$i]=0; + + # LAST ONE MINUTE CALL AND DROP STATS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_one';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCScalls_one[$i] = "$aryA[0]"; + } + $sthA->finish(); + if ($VCScalls_one[$i] > 0) + { + # LAST MINUTE ANSWERS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_one' and status IN($camp_ANS_STAT_SQL);"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSanswers_one[$i] = "$aryA[0]"; + } + $sthA->finish(); + # LAST MINUTE DROPS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_one' and status IN('DROP','XDROP');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSdrops_one[$i] = "$aryA[0]"; + if ($VCSdrops_one[$i] > 0) + { + $VCSdrops_one_pct[$i] = ( ($VCSdrops_one[$i] / $VCScalls_one[$i]) * 100 ); + $VCSdrops_one_pct[$i] = sprintf("%.2f", $VCSdrops_one_pct[$i]); + } + } + $sthA->finish(); + } + + # TODAY CALL AND DROP STATS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_date';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCScalls_today[$i] = "$aryA[0]"; + } + $sthA->finish(); + if ($VCScalls_today[$i] > 0) + { + # TODAY ANSWERS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_date' and status IN($camp_ANS_STAT_SQL);"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSanswers_today[$i] = "$aryA[0]"; + } + $sthA->finish(); + # TODAY DROPS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_date' and status IN('DROP','XDROP');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + if ($DBX > 0) {print "$stmtA\n";} + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSdrops_today[$i] = "$aryA[0]"; + if ($VCSdrops_today[$i] > 0) + { + $VCSdrops_today_pct[$i] = ( ($VCSdrops_today[$i] / $VCScalls_today[$i]) * 100 ); + $VCSdrops_today_pct[$i] = sprintf("%.2f", $VCSdrops_today_pct[$i]); + if ($VCSanswers_today[$i] < 1) {$VCSanswers_today[$i] = 1;} + $VCSdrops_answers_today_pct[$i] = ( ($VCSdrops_today[$i] / $VCSanswers_today[$i]) * 100 ); + $VCSdrops_answers_today_pct[$i] = sprintf("%.2f", $VCSdrops_answers_today_pct[$i]); + } + } + $sthA->finish(); + } + + # LAST HOUR CALL AND DROP STATS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_hour';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCScalls_hour[$i] = "$aryA[0]"; + } + $sthA->finish(); + if ($VCScalls_hour[$i] > 0) + { + # ANSWERS LAST HOUR + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_hour' and status IN($camp_ANS_STAT_SQL);"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSanswers_hour[$i] = "$aryA[0]"; + } + $sthA->finish(); + # DROP LAST HOUR + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_hour' and status IN('DROP','XDROP');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSdrops_hour[$i] = "$aryA[0]"; + if ($VCSdrops_hour[$i] > 0) + { + $VCSdrops_hour_pct[$i] = ( ($VCSdrops_hour[$i] / $VCScalls_hour[$i]) * 100 ); + $VCSdrops_hour_pct[$i] = sprintf("%.2f", $VCSdrops_hour_pct[$i]); + } + $rec_count++; + } + $sthA->finish(); + } + + # LAST HALFHOUR CALL AND DROP STATS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_halfhour';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCScalls_halfhour[$i] = "$aryA[0]"; + } + $sthA->finish(); + if ($VCScalls_halfhour[$i] > 0) + { + # ANSWERS HALFHOUR + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_halfhour' and status IN($camp_ANS_STAT_SQL);"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSanswers_halfhour[$i] = "$aryA[0]"; + } + $sthA->finish(); + # DROPS HALFHOUR + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_halfhour' and status IN('DROP','XDROP');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSdrops_halfhour[$i] = "$aryA[0]"; + if ($VCSdrops_halfhour[$i] > 0) + { + $VCSdrops_halfhour_pct[$i] = ( ($VCSdrops_halfhour[$i] / $VCScalls_halfhour[$i]) * 100 ); + $VCSdrops_halfhour_pct[$i] = sprintf("%.2f", $VCSdrops_halfhour_pct[$i]); + } + } + $sthA->finish(); + } + + # LAST FIVE MINUTE CALL AND DROP STATS + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_five';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCScalls_five[$i] = "$aryA[0]"; + } + $sthA->finish(); + + if ($VCScalls_five[$i] > 0) + { + # ANSWERS FIVEMINUTE + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_five' and status IN($camp_ANS_STAT_SQL);"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSanswers_five[$i] = "$aryA[0]"; + } + $sthA->finish(); + # DROPS FIVEMINUTE + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_five' and status IN('DROP','XDROP');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCSdrops_five[$i] = "$aryA[0]"; + if ($VCSdrops_five[$i] > 0) + { + $VCSdrops_five_pct[$i] = ( ($VCSdrops_five[$i] / $VCScalls_five[$i]) * 100 ); + $VCSdrops_five_pct[$i] = sprintf("%.2f", $VCSdrops_five_pct[$i]); + } + } + $sthA->finish(); + } + if ($DBX) {print "$campaign_id[$i]|$VCSdrops_five_pct[$i]|$VCSdrops_today_pct[$i]| |$VCSdrops_today[$i] / $VCScalls_today[$i] / $VCSanswers_today[$i]| $i\n";} + + # DETERMINE WHETHER TO GATHER STATUS CATEGORY STATISTICS + $VSC_categories=0; + $VSCupdateSQL=''; + $stmtA = "SELECT vsc_id from vicidial_status_categories where tovdad_display='Y' limit 4;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VSC_categories[$rec_count] = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + $g=0; + foreach (@VSC_categories) + { + $VSCcategory=$VSC_categories[$g]; + $VSCtally=''; + $CATstatusesSQL=''; + # FIND STATUSES IN STATUS CATEGORY + $stmtA = "SELECT status from vicidial_statuses where category='$VSCcategory';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CATstatusesSQL .= "'$aryA[0]',"; + $rec_count++; + } + # FIND CAMPAIGN_STATUSES IN STATUS CATEGORY + $stmtA = "SELECT status from vicidial_campaign_statuses where category='$VSCcategory' and campaign_id='$campaign_id[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CATstatusesSQL .= "'$aryA[0]',"; + $rec_count++; + } + chop($CATstatusesSQL); + if (length($CATstatusesSQL)>2) + { + # FIND STATUSES IN STATUS CATEGORY + $stmtA = "SELECT count(*) from $vicidial_log where campaign_id='$campaign_id[$i]' and call_date > '$VDL_date' and status IN($CATstatusesSQL);"; + # if ($DBX) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VSCtally = "$aryA[0]"; + } + } + $g++; + if ($DBX) {print " $campaign_id[$i]|$VSCcategory|$VSCtally|$CATstatusesSQL|\n";} + $VSCupdateSQL .= "status_category_$g='$VSCcategory',status_category_count_$g='$VSCtally',"; + } + while ($g < 4) + { + $g++; + $VSCupdateSQL .= "status_category_$g='',status_category_count_$g='0',"; + } + chop($VSCupdateSQL); + + # AGENT NON-PAUSE TIME PULL + $stmtA = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where campaign_id='$campaign_id[$i]' and event_time > '$VDL_date';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 0) + {$VCSagent_nonpause_time[$i] = $aryA[0];} + } + $sthA->finish(); + + # If campaign is using a drop rate group, gather its stats + if ($drop_rate_group[$i] !~ /DISABLED/) + { + $stmtA = "SELECT drops_answers_today_pct from vicidial_drop_rate_groups where group_id='$drop_rate_group[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + if ($DBX) {print " DROP RATE GROUP USED: $drop_rate_group[$i] $aryA[0]|$VCSdrops_answers_today_pct[$i]\n";} + $VCSdrops_answers_today_pct[$i] = "$aryA[0]"; + } + $sthA->finish(); + } + + $stmtA = "UPDATE vicidial_campaign_stats SET calls_today='$VCScalls_today[$i]',answers_today='$VCSanswers_today[$i]',drops_today='$VCSdrops_today[$i]',drops_today_pct='$VCSdrops_today_pct[$i]',drops_answers_today_pct='$VCSdrops_answers_today_pct[$i]',calls_hour='$VCScalls_hour[$i]',answers_hour='$VCSanswers_hour[$i]',drops_hour='$VCSdrops_hour[$i]',drops_hour_pct='$VCSdrops_hour_pct[$i]',calls_halfhour='$VCScalls_halfhour[$i]',answers_halfhour='$VCSanswers_halfhour[$i]',drops_halfhour='$VCSdrops_halfhour[$i]',drops_halfhour_pct='$VCSdrops_halfhour_pct[$i]',calls_fivemin='$VCScalls_five[$i]',answers_fivemin='$VCSanswers_five[$i]',drops_fivemin='$VCSdrops_five[$i]',drops_fivemin_pct='$VCSdrops_five_pct[$i]',calls_onemin='$VCScalls_one[$i]',answers_onemin='$VCSanswers_one[$i]',drops_onemin='$VCSdrops_one[$i]',drops_onemin_pct='$VCSdrops_one_pct[$i]',agent_non_pause_sec='$VCSagent_nonpause_time[$i]',$VSCupdateSQL where campaign_id='$campaign_id[$i]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "OUTBOUND $campaign_id[$i]|$affected_rows|$stmtA|\n";} + } + + +sub drop_rate_group_gather + { + ################################################################################ + #### BEGIN gather drop rate group stats + ################################################################################ + + # Gather drop rate groups + @DRgroup=@MT; + $stmtA = "SELECT group_id from vicidial_drop_rate_groups;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsDR=$sthA->rows; + $dr=0; + while ($sthArowsDR > $dr) + { + @aryA = $sthA->fetchrow_array; + $DRgroup[$dr] = "$aryA[0]"; + $dr++; + } + $sthA->finish(); + + $dr=0; + while ($sthArowsDR > $dr) + { + $DRcalls_today=0; + $DRanswers_today=0; + $DRdrops_today=0; + $DRdrops_today_pct=0; + $DRdrops_answers_today_pct=0; + $stmtA = "SELECT count(*),sum(calls_today),sum(answers_today),sum(drops_today) from vicidial_campaign_stats vcs, vicidial_campaigns vc where vcs.campaign_id=vc.campaign_id and vc.drop_rate_group='$DRgroup[$dr]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 0) + { + $DRcalls_today = $aryA[1]; + $DRanswers_today = $aryA[2]; + $DRdrops_today = $aryA[3]; + } + } + $sthA->finish(); + if ($DRdrops_today > 0) + { + $DRdrops_today_pct = ( ($DRdrops_today / $DRcalls_today) * 100 ); + $DRdrops_today_pct = sprintf("%.2f", $DRdrops_today_pct); + if ($DRanswers_today < 1) {$DRanswers_today = 1;} + $DRdrops_answers_today_pct = ( ($DRdrops_today / $DRanswers_today) * 100 ); + $DRdrops_answers_today_pct = sprintf("%.2f", $DRdrops_answers_today_pct); + } + + $stmtA = "UPDATE vicidial_drop_rate_groups SET calls_today='$DRcalls_today',answers_today='$DRanswers_today',drops_today='$DRdrops_today',drops_today_pct='$DRdrops_today_pct',drops_answers_today_pct='$DRdrops_answers_today_pct' where group_id='$DRgroup[$dr]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "$DRgroup[$dr]|$affected_rows|$stmtA|\n";} + + $stmtA = "UPDATE vicidial_campaign_stats vcs, vicidial_campaigns vc SET vcs.drops_answers_today_pct='$DRdrops_answers_today_pct' where vcs.campaign_id=vc.campaign_id and vc.drop_rate_group='$DRgroup[$dr]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "VCS update: $affected_rows|$stmtA|\n";} + + $dr++; + } + + ################################################################################ + #### END gather drop rate group stats + ################################################################################ + } + + +sub launch_inbound_gather + { + ################################################################################ + #### BEGIN gather stats for inbound groups for the real-time display + ################################################################################ + $stmtA = "SELECT group_id from vicidial_inbound_groups where active='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $ibg_count=0; + while ($sthArows > $ibg_count) + { + @aryA = $sthA->fetchrow_array; + $group_id[$ibg_count] = $aryA[0]; + $ibg_count++; + } + $sthA->finish(); + if ($DB) {print "$now_date INBOUND GROUPS TO GET STATS FOR: $ibg_count|$#group_id IT: $master_loop\n";} + + + ##### LOOP THROUGH EACH INBOUND GROUP AND GATHER STATS ##### + $p=0; + foreach(@group_id) + { + &calculate_drops_inbound; + + $p++; + } + + ################################################################################ + #### END gather stats for inbound groups for the real-time display + ################################################################################ + } + + + +sub calculate_drops_inbound + { + $answer_sec_pct_rt_stat_one = '20'; + $answer_sec_pct_rt_stat_two = '30'; + # GET inbound group hold stat seconds settings + $stmtA = "SELECT answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two from vicidial_inbound_groups where group_id='$group_id[$p]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $answer_sec_pct_rt_stat_one = $aryA[0]; + $answer_sec_pct_rt_stat_two = $aryA[1]; + } + $sthA->finish(); + + $camp_ANS_STAT_SQL=''; + # GET LIST OF HUMAN-ANSWERED STATUSES + $stmtA = "SELECT status from vicidial_statuses where human_answered='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $camp_ANS_STAT_SQL .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "SELECT distinct(status) from vicidial_campaign_statuses where human_answered='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $camp_ANS_STAT_SQL .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + chop($camp_ANS_STAT_SQL); + + if ($DBX) {print " ANSWERED STATUSES: $group_id[$p]|$camp_ANS_STAT_SQL|\n";} + + #$RESETdrop_count_updater++; + $iVCScalls_today[$p]=0; + $iVCSanswers_today[$p]=0; + $iVCSdrops_today[$p]=0; + $iVCSdrops_today_pct[$p]=0; + $iVCSdrops_answers_today_pct[$p]=0; + $answer_sec_pct_rt_stat_one_PCT[$p]=0; + $answer_sec_pct_rt_stat_two_PCT[$p]=0; + $hold_sec_answer_calls[$p]=0; + $hold_sec_drop_calls[$p]=0; + $hold_sec_queue_calls[$p]=0; + + # TODAY CALL AND DROP STATS + $stmtA = "SELECT count(*) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $iVCScalls_today[$p] = "$aryA[0]"; + } + $sthA->finish(); + if ($iVCScalls_today[$p] > 0) + { + # TODAY ANSWERS + $stmtA = "SELECT count(*) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date' and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $iVCSanswers_today[$p] = "$aryA[0]"; + } + $sthA->finish(); + # TODAY DROPS + $stmtA = "SELECT count(*) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date' and status IN('DROP','XDROP');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($DBX > 0) {print "$stmtA\n";} + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $iVCSdrops_today[$p] = "$aryA[0]"; + if ($iVCSdrops_today[$p] > 0) + { + $iVCSdrops_today_pct[$p] = ( ($iVCSdrops_today[$p] / $iVCScalls_today[$p]) * 100 ); + $iVCSdrops_today_pct[$p] = sprintf("%.2f", $iVCSdrops_today_pct[$p]); + if ($iVCSanswers_today[$p] < 1) {$iVCSanswers_today[$p] = 1;} + $iVCSdrops_answers_today_pct[$p] = ( ($iVCSdrops_today[$p] / $iVCSanswers_today[$p]) * 100 ); + $iVCSdrops_answers_today_pct[$p] = sprintf("%.2f", $iVCSdrops_answers_today_pct[$p]); + } + } + $sthA->finish(); + + # TODAY ANSWER PERCENT OF HOLD SECONDS one and two + $stmtA = "SELECT count(*) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date' and queue_seconds <= $answer_sec_pct_rt_stat_one;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $answer_sec_pct_rt_stat_one_PCT[$p] = $aryA[0]; + } + $sthA->finish(); + $stmtA = "SELECT count(*) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date' and queue_seconds <= $answer_sec_pct_rt_stat_two;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $answer_sec_pct_rt_stat_two_PCT[$p] = $aryA[0]; + } + + # TODAY TOTAL HOLD TIME FOR ANSWERED CALLS + $stmtA = "SELECT sum(queue_seconds) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date' and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 0) + {$hold_sec_answer_calls[$p] = $aryA[0];} + } + # TODAY TOTAL HOLD TIME FOR DROP CALLS + $stmtA = "SELECT sum(queue_seconds) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date' and status IN('DROP','XDROP');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 0) + {$hold_sec_drop_calls[$p] = $aryA[0];} + } + # TODAY TOTAL QUEUE TIME FOR QUEUE CALLS + $stmtA = "SELECT sum(queue_seconds) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 0) + {$hold_sec_queue_calls[$p] = $aryA[0];} + } + } + + + + + # DETERMINE WHETHER TO GATHER STATUS CATEGORY STATISTICS + $VSC_categories=0; + $VSCupdateSQL=''; + $stmtA = "SELECT vsc_id from vicidial_status_categories where tovdad_display='Y' limit 4;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VSC_categories[$rec_count] = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + $g=0; + foreach (@VSC_categories) + { + $VSCcategory=$VSC_categories[$g]; + $VSCtally=''; + $CATstatusesSQL=''; + # FIND STATUSES IN STATUS CATEGORY + $stmtA = "SELECT status from vicidial_statuses where category='$VSCcategory';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CATstatusesSQL .= "'$aryA[0]',"; + $rec_count++; + } + # FIND CAMPAIGN_STATUSES IN STATUS CATEGORY + $stmtA = "SELECT status from vicidial_campaign_statuses where category='$VSCcategory';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CATstatusesSQL .= "'$aryA[0]',"; + $rec_count++; + } + chop($CATstatusesSQL); + if (length($CATstatusesSQL)>2) + { + # FIND STATUSES IN STATUS CATEGORY + $stmtA = "SELECT count(*) from $vicidial_closer_log where campaign_id='$group_id[$p]' and call_date > '$VDL_date' and status IN($CATstatusesSQL);"; + # if ($DBX) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VSCtally = "$aryA[0]"; + } + } + $g++; + if ($DBX) {print " $group_id[$p]|$VSCcategory|$VSCtally|$CATstatusesSQL|\n";} + $VSCupdateSQL .= "status_category_$g='$VSCcategory',status_category_count_$g='$VSCtally',"; + } + while ($g < 4) + { + $g++; + $VSCupdateSQL .= "status_category_$g='',status_category_count_$g='0',"; + } + chop($VSCupdateSQL); + + $vcs_exists=1; + $stmtA = "SELECT count(*) from vicidial_campaign_stats where campaign_id='$group_id[$p]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $vcs_exists = "$aryA[0]"; + } + $sthA->finish(); + + if ($vcs_exists < 1) + { + $stmtA = "INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id[$p]');"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "$group_id[$p]|$stmtA|\n";} + } + + $stmtA = "UPDATE vicidial_campaign_stats SET calls_today='$iVCScalls_today[$p]',answers_today='$iVCSanswers_today[$p]',drops_today='$iVCSdrops_today[$p]',drops_today_pct='$iVCSdrops_today_pct[$p]',drops_answers_today_pct='$iVCSdrops_answers_today_pct[$p]',hold_sec_stat_one='$answer_sec_pct_rt_stat_one_PCT[$p]',hold_sec_stat_two='$answer_sec_pct_rt_stat_two_PCT[$p]',hold_sec_answer_calls='$hold_sec_answer_calls[$p]',hold_sec_drop_calls='$hold_sec_drop_calls[$p]',hold_sec_queue_calls='$hold_sec_queue_calls[$p]',$VSCupdateSQL where campaign_id='$group_id[$p]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "INBOUND $group_id[$p]|$affected_rows|$stmtA|\n";} + + print "$p IN-GROUP: $group_id[$p] CALLS: $iVCScalls_today[$p] ANSWER: $iVCSanswers_today[$p] DROPS: $iVCSdrops_today[$p]\n"; + print " Stat1: $answer_sec_pct_rt_stat_one_PCT[$p] Stat2: $answer_sec_pct_rt_stat_two_PCT[$p] Hold: $hold_sec_queue_calls[$p]|$hold_sec_answer_calls[$p]|$hold_sec_drop_calls[$p]\n"; + } +##### END calculate_drops_inbound + + + + +sub calculate_dial_level + { + $RESETdiff_ratio_updater++; + $VCSINCALL[$i]=0; + $VCSREADY[$i]=0; + $VCSCLOSER[$i]=0; + $VCSPAUSED[$i]=0; + $VCSagents[$i]=0; + $VCSagents_calc[$i]=0; + $VCSagents_active[$i]=0; + + # COUNTS OF STATUSES OF AGENTS IN THIS CAMPAIGN + $stmtA = "SELECT count(*),status from vicidial_live_agents where campaign_id='$campaign_id[$i]' and last_update_time > '$VDL_one' group by status;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VCSagent_count[$i] = "$aryA[0]"; + $VCSagent_status[$i] = "$aryA[1]"; + $rec_count++; + if ($VCSagent_status[$i] =~ /INCALL|QUEUE/) {$VCSINCALL[$i] = ($VCSINCALL[$i] + $VCSagent_count[$i]);} + if ($VCSagent_status[$i] =~ /READY/) {$VCSREADY[$i] = ($VCSREADY[$i] + $VCSagent_count[$i]);} + if ($VCSagent_status[$i] =~ /CLOSER/) {$VCSCLOSER[$i] = ($VCSCLOSER[$i] + $VCSagent_count[$i]);} + if ($VCSagent_status[$i] =~ /PAUSED/) {$VCSPAUSED[$i] = ($VCSPAUSED[$i] + $VCSagent_count[$i]);} + $VCSagents[$i] = ($VCSagents[$i] + $VCSagent_count[$i]); + } + $sthA->finish(); + + if ($available_only_ratio_tally[$i] =~ /Y/) + {$VCSagents_calc[$i] = $VCSREADY[$i];} + else + {$VCSagents_calc[$i] = ($VCSINCALL[$i] + $VCSREADY[$i]);} + $VCSagents_active[$i] = ($VCSINCALL[$i] + $VCSREADY[$i] + $VCSCLOSER[$i]); + + ### END - GATHER STATS FOR THE vicidial_campaign_stats TABLE ### + + if ($campaign_allow_inbound[$i] =~ /Y/) + { + # GET AVERAGES FROM THIS CAMPAIGN + $stmtA = "SELECT differential_onemin,agents_average_onemin from vicidial_campaign_stats where campaign_id='$campaign_id[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $differential_onemin[$i] = "$aryA[0]"; + $agents_average_onemin[$i] = "$aryA[1]"; + $rec_count++; + } + $sthA->finish(); + } + else + { + $agents_average_onemin[$i] = $total_agents_avg[$i]; + $differential_onemin[$i] = $stat_differential[$i]; + } + + if ( ($dial_method[$i] =~ /ADAPT_HARD_LIMIT|ADAPT_AVERAGE|ADAPT_TAPERED/) || ($force_test>0) ) + { + # Calculate the optimal dial_level differential for the past minute + $differential_target[$i] = ($differential_onemin[$i] + $adaptive_dl_diff_target[$i]); + if ( ($differential_target[$i] != 0) && ($agents_average_onemin[$i] != 0) ) + { + $differential_mul[$i] = ($differential_target[$i] / $agents_average_onemin[$i]); + $differential_pct_raw[$i] = ($differential_mul[$i] * 100); + } + else + { + $differential_mul[$i] = 0; + $differential_pct_raw[$i] = 0; + } + $differential_pct[$i] = sprintf("%.2f", $differential_pct_raw[$i]); + + # Factor in the intensity setting + $intensity_mul[$i] = ($adaptive_intensity[$i] / 100); + if ($differential_pct_raw[$i] < 0) + { + $abs_intensity_mul[$i] = abs($intensity_mul[$i] - 1); + $intensity_diff[$i] = ($differential_pct_raw[$i] * $abs_intensity_mul[$i]); + } + else + {$intensity_diff[$i] = ($differential_pct_raw[$i] * ($intensity_mul[$i] + 1) );} + $intensity_pct[$i] = sprintf("%.2f", $intensity_diff[$i]); + $intensity_diff_mul[$i] = ($intensity_diff[$i] / 100); + + # Suggested dial_level based on differential + $suggested_dial_level[$i] = ($auto_dial_level[$i] * ($differential_mul[$i] + 1) ); + $suggested_dial_level[$i] = sprintf("%.3f", $suggested_dial_level[$i]); + + # Suggested dial_level based on differential with intensity setting + $intensity_dial_level[$i] = ($auto_dial_level[$i] * ($intensity_diff_mul[$i] + 1) ); + $intensity_dial_level[$i] = sprintf("%.3f", $intensity_dial_level[$i]); + + # Calculate last timezone target for ADAPT_TAPERED + $last_target_hour_final[$i] = $adaptive_latest_server_time[$i]; + # if ($last_target_hour_final[$i]>2400) {$last_target_hour_final[$i]=2400;} + $tapered_hours_left[$i] = ($last_target_hour_final[$i] - $current_hourmin); + if ($tapered_hours_left[$i] > 1000) + {$tapered_rate[$i] = 1;} + else + {$tapered_rate[$i] = ($tapered_hours_left[$i] / 1000);} + + $adaptive_string = "\n"; + $adaptive_string .= "CAMPAIGN: $campaign_id[$i] $i\n"; + $adaptive_string .= "SETTINGS-\n"; + $adaptive_string .= " DIAL LEVEL: $auto_dial_level[$i]\n"; + $adaptive_string .= " DIAL METHOD: $dial_method[$i]\n"; + $adaptive_string .= " AVAIL ONLY: $available_only_ratio_tally[$i]\n"; + $adaptive_string .= " DROP PERCENT: $adaptive_dropped_percentage[$i]\n"; + $adaptive_string .= " MAX LEVEL: $adaptive_maximum_level[$i]\n"; + $adaptive_string .= " SERVER TIME: $current_hourmin\n"; + $adaptive_string .= " LATE TARGET: $last_target_hour_final[$i] ($tapered_hours_left[$i] left|$tapered_rate[$i])\n"; + $adaptive_string .= " INTENSITY: $adaptive_intensity[$i]\n"; + $adaptive_string .= " DLDIFF TARGET: $adaptive_dl_diff_target[$i]\n"; + $adaptive_string .= "CURRENT STATS-\n"; + $adaptive_string .= " AVG AGENTS: $agents_average_onemin[$i]\n"; + $adaptive_string .= " AGENTS: $VCSagents[$i] ACTIVE: $VCSagents_active[$i] CALC: $VCSagents_calc[$i] INCALL: $VCSINCALL[$i] READY: $VCSREADY[$i]\n"; + $adaptive_string .= " DL DIFFERENTIAL: $differential_target[$i] = ($differential_onemin[$i] + $adaptive_dl_diff_target[$i])\n"; + $adaptive_string .= "DIAL LEVEL SUGGESTION-\n"; + $adaptive_string .= " PERCENT DIFF: $differential_pct[$i]\n"; + $adaptive_string .= " SUGGEST DL: $suggested_dial_level[$i] = ($auto_dial_level[$i] * ($differential_mul[$i] + 1) )\n"; + $adaptive_string .= " INTENSE DIFF: $intensity_pct[$i]\n"; + $adaptive_string .= " INTENSE DL: $intensity_dial_level[$i] = ($auto_dial_level[$i] * ($intensity_diff_mul[$i] + 1) )\n"; + if ($intensity_dial_level[$i] > $adaptive_maximum_level[$i]) + { + $adaptive_string .= " DIAL LEVEL OVER CAP! SETTING TO CAP: $adaptive_maximum_level[$i]\n"; + $intensity_dial_level[$i] = $adaptive_maximum_level[$i]; + } + if ($intensity_dial_level[$i] < 1) + { + $adaptive_string .= " DIAL LEVEL TOO LOW! SETTING TO 1\n"; + $intensity_dial_level[$i] = "1.0"; + } + $adaptive_string .= "DROP STATS-\n"; + $adaptive_string .= " TODAY DROPS: $VCScalls_today[$i] $VCSdrops_today[$i] $VCSdrops_today_pct[$i]%\n"; + $adaptive_string .= " ANSWER DROPS: $VCSanswers_today[$i] $VCSdrops_answers_today_pct[$i]%\n"; + $adaptive_string .= " ONE HOUR DROPS: $VCScalls_hour[$i]/$VCSanswers_hour[$i] $VCSdrops_hour[$i] $VCSdrops_hour_pct[$i]%\n"; + $adaptive_string .= " HALF HOUR DROPS: $VCScalls_halfhour[$i]/$VCSanswers_halfhour[$i] $VCSdrops_halfhour[$i] $VCSdrops_halfhour_pct[$i]%\n"; + $adaptive_string .= " FIVE MIN DROPS: $VCScalls_five[$i]/$VCSanswers_five[$i] $VCSdrops_five[$i] $VCSdrops_five_pct[$i]%\n"; + $adaptive_string .= " ONE MIN DROPS: $VCScalls_one[$i]/$VCSanswers_one[$i] $VCSdrops_one[$i] $VCSdrops_one_pct[$i]%\n"; + + ### DROP PERCENTAGE RULES TO LOWER DIAL_LEVEL ### + if ( ($VCScalls_one[$i] > 20) && ($VCSdrops_one_pct[$i] > 50) ) + { + $intensity_dial_level[$i] = ($intensity_dial_level[$i] / 2); + $adaptive_string .= " DROP RATE OVER 50% FOR LAST MINUTE! CUTTING DIAL LEVEL TO: $intensity_dial_level[$i]\n"; + } + if ( ($VCScalls_today[$i] > 50) && ($VCSdrops_answers_today_pct[$i] > $adaptive_dropped_percentage[$i]) ) + { + if ($dial_method[$i] =~ /ADAPT_HARD_LIMIT/) + { + $intensity_dial_level[$i] = "1.0"; + $adaptive_string .= " DROP RATE OVER HARD LIMIT FOR TODAY! HARD DIAL LEVEL TO: 1.0\n"; + } + if ($dial_method[$i] =~ /ADAPT_AVERAGE/) + { + $intensity_dial_level[$i] = ($intensity_dial_level[$i] / 2); + $adaptive_string .= " DROP RATE OVER LIMIT FOR TODAY! AVERAGING DIAL LEVEL TO: $intensity_dial_level[$i]\n"; + } + if ($dial_method[$i] =~ /ADAPT_TAPERED/) + { + if ($tapered_hours_left[$i] < 0) + { + $intensity_dial_level[$i] = "1.0"; + $adaptive_string .= " DROP RATE OVER LAST HOUR LIMIT FOR TODAY! TAPERING DIAL LEVEL TO: 1.0\n"; + } + else + { + $intensity_dial_level[$i] = ($intensity_dial_level[$i] * $tapered_rate[$i]); + $adaptive_string .= " DROP RATE OVER LIMIT FOR TODAY! TAPERING DIAL LEVEL TO: $intensity_dial_level[$i]\n"; + } + } + } + + ### ALWAYS RAISE DIAL_LEVEL TO 1.0 IF IT IS LOWER ### + if ($intensity_dial_level[$i] < 1) + { + $adaptive_string .= " DIAL LEVEL TOO LOW! SETTING TO 1\n"; + $intensity_dial_level[$i] = "1.0"; + } + + if (!$TEST) + { + $stmtA = "UPDATE vicidial_campaigns SET auto_dial_level='$intensity_dial_level[$i]' where campaign_id='$campaign_id[$i]';"; + $Uaffected_rows = $dbhA->do($stmtA); + } + + $adaptive_string .= "DIAL LEVEL UPDATED TO: $intensity_dial_level[$i] CONFIRM: $Uaffected_rows\n"; + } + + if ($DB) {print "campaign stats updated: $campaign_id[$i] $adaptive_string\n";} + + &adaptive_logger; + } diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDauto_dial.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDauto_dial.pl new file mode 100644 index 00000000..cd10af28 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDauto_dial.pl @@ -0,0 +1,2332 @@ +#!/usr/bin/perl +# +# AST_VDauto_dial.pl version 2.2.0 *DBI-version* +# +# DESCRIPTION: +# Places auto_dial calls on the VICIDIAL dialer system +# +# SUMMARY: +# This program was designed for people using the Asterisk PBX with VICIDIAL +# +# For the client to use VICIDIAL, this program must be in the cron constantly +# +# For this program to work you need to have the "asterisk" MySQL database +# created and create the tables listed in the CONF_MySQL.txt file, also make sure +# that the machine running this program has read/write/update/delete access +# to that database +# +# It is recommended that you run this program on the local Asterisk machine +# +# This script is to run perpetually querying every second to place new phone +# calls from the vicidial_hopper based upon how many available agents there are +# and the value of the auto_dial_level setting in the campaign screen of the +# admin web page +# +# It is good practice to keep this program running by placing the associated +# KEEPALIVE script running every minute to ensure this program is always running +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG: +# 50125-1201 - Changed dial timeout to 120 seconds from 180 seconds +# 50317-0954 - Added duplicate check per cycle to account for DB lockups +# 50322-1302 - Added campaign custom callerid feature +# 50324-1353 - Added optional variable to record ring time thru separate diap prefix +# 50606-2308 - Added code to ensure no calls placed out on inactive campaign +# 50617-1248 - Added code to place LOGOUT entry in auto-paused user logs +# 50620-1349 - Added custom vdad transfer AGI extension per campaign +# 50810-1610 - Added database server variable definitions lookup +# 50810-1630 - Added max_vicidial_trunks server limiter on active lines +# 50812-0957 - Corrected max_trunks logic, added update of server every 25 sec +# 60120-1522 - Corrected time error for hour variable, caused agi problems +# 60427-1223 - Fixed Blended in/out CLOSER campaign issue +# 60608-1134 - Altered vac table field of call_type for IN OUT distinction +# 60612-1324 - Altered dead call section to accept BUSY detection from VD_hangup +# - Altered dead call section to accept DISCONNECT detection from VD_hangup +# 60614-1142 - Added code to work with recycled leads, multi called_since_last_reset values +# - Removed gmt lead validation because it is already done by VDhopper +# 60807-1438 - Changed to DBI +# - Changed to use /etc/astguiclient.conf for configs +# 60814-1749 - Added option for no logging to file +# 60821-1546 - Added option to not dial phone_code per campaign +# 60824-1437 - Added available_only_ratio_tally option +# 61003-1353 - Added restrictions for server trunks +# 61113-1625 - Added code for clearing VDAC LIVE jams +# 61115-1725 - Added OUTBALANCE to call calculation for call_type for balance dialing +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1635 - Added initial auto-alt-dial functionality +# 70116-1619 - Added VDAD Ring-No-Answer Auto Alt Dial code +# 70118-1539 - Added user_group logging to vicidial_user_log +# 70131-1550 - Fixed Manual dialing trunk shortage bug +# 70205-1414 - Added code for last called date update +# 70207-1031 - Fixed Tally-only-available bug with customer hangups +# 70215-1123 - Added queue_log ABANDON logging +# 70302-1412 - Fixed max_vicidial_trunks update if set to 0 +# 70320-1458 - Fixed several errors in calculating trunk shortage for campaigns +# 71029-1909 - Changed CLOSER-type campaign_id restriction +# 71030-2054 - Added hopper priority sorting +# 80227-0406 - added queue_priority +# 80525-1040 - Added IVR vac status compatibility for inbound calls +# 80713-0624 - Added vicidial_list_last_local_call_time field +# 80829-2359 - Added extended alt dial and dnc checkon all alt dial hopper insertions +# 80909-0845 - Added support for campaign-specific DNC lists +# 81013-2216 - Fixed improper deletion of auto_calls records +# 81020-0125 - Bug fixes from changes to auto_calls deletion changes +# 90124-0721 - Added parameter to ensure no auto-dial calls are placed for MANUAL campaigns +# 90202-0203 - Added outbound_autodial_active option to halt all dialing +# 90306-1845 - Added configurable calls-per-second option +# 90611-0554 - Bug fix for Manual dial calls and logging +# 90619-1948 - Format fixing +# 90630-2252 - Added Sangoma CDP pre-Answer call processing +# 90816-0057 - Changed default vicidial_log time to 0 from 1 second +# 90827-1227 - Added list_id logging in vicidial_log on NA calls +# 90907-0919 - Added LAGGED pause code update for paused agents, reduced logging if no issues +# 90909-0640 - Parked bug fix and code optimizations +# 90917-1432 - Fixed issue on high-volume systems with lagged agents +# 90924-0914 - Added List callerid override option +# 91026-1218 - Added AREACODE DNC option +# 91108-2122 - Added LAGGED PAUSEREASON QM entry for lagged agents +# 91123-1802 - Added outbound_autodial field, and exception for outbound-only agents on blended campaign +# 91213-1856 - Added queue_position to queue_log ABANDON records +# + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n [--delay=XXX] = delay of XXX seconds per loop, default 2.5 seconds\n\n"; + } + else + { + if ($args =~ /--delay=/i) + { + @data_in = split(/--delay=/,$args); + $loop_delay = $data_in[1]; + print " LOOP DELAY OVERRIDE!!!!! = $loop_delay seconds\n\n"; + $loop_delay = ($loop_delay * 1000); + } + else + { + $loop_delay = '2500'; + } + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag, set to 0 for no debug messages, On an active system this will generate hundreds of lines of output per minute + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + print "no command line options set\n"; + $loop_delay = '2500'; + $DB=1; + } +### end parsing run-time options ### + + +# constants +$US='__'; +$MT[0]=''; +$RECcount=''; ### leave blank for no REC count +$RECprefix='7'; ### leave blank for no REC prefix +$useJAMdebugFILE='1'; ### leave blank for no Jam call debug file writing +$max_vicidial_trunks=0; ### setting a default value for max_vicidial_trunks + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + + &get_time_now; # update time/date variables + +if (!$VDADLOGfile) {$VDADLOGfile = "$PATHlogs/vdautodial.$year-$mon-$mday";} +if (!$JAMdebugFILE) {$JAMdebugFILE = "$PATHlogs/vdad-JAM.$year-$mon-$mday";} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + +### connect to MySQL database defined in the conf file +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") +or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context,vd_server_logs FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBtelnet_host = $aryA[0]; + $DBtelnet_port = $aryA[1]; + $DBASTmgrUSERNAME = $aryA[2]; + $DBASTmgrSECRET = $aryA[3]; + $DBASTmgrUSERNAMEupdate = $aryA[4]; + $DBASTmgrUSERNAMElisten = $aryA[5]; + $DBASTmgrUSERNAMEsend = $aryA[6]; + $DBmax_vicidial_trunks = $aryA[7]; + $DBanswer_transfer_agent= $aryA[8]; + $DBSERVER_GMT = $aryA[9]; + $DBext_context = $aryA[10]; + $DBvd_server_logs = $aryA[11]; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + $max_vicidial_trunks = $DBmax_vicidial_trunks; + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + } +$sthA->finish(); + +$event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|'; +&event_logger; + +############################################# +##### START QUEUEMETRICS LOGGING LOOKUP ##### +$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,outbound_autodial_active FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = $aryA[0]; + $queuemetrics_server_ip = $aryA[1]; + $queuemetrics_dbname = $aryA[2]; + $queuemetrics_login= $aryA[3]; + $queuemetrics_pass = $aryA[4]; + $queuemetrics_log_id = $aryA[5]; + $outbound_autodial_active = $aryA[6]; + } +$sthA->finish(); +##### END QUEUEMETRICS LOGGING LOOKUP ##### +########################################### + + +$one_day_interval = 12; # 1 month loops for one year +while($one_day_interval > 0) + { + $endless_loop=5760000; # 30 days minutes at XXX seconds per loop + $stat_count=1; + + while($endless_loop > 0) + { + &get_time_now; + + $VDADLOGfile = "$PATHlogs/vdautodial.$year-$mon-$mday"; + + ############################################################################### + ###### first figure out how many calls should be placed for each campaign per server + ############################################################################### + @DBlive_user=@MT; + @DBlive_server_ip=@MT; + @DBlive_campaign=@MT; + @DBlive_conf_exten=@MT; + @DBlive_status=@MT; + @DBcampaigns=@MT; + @DBIPaddress=@MT; + @DBIPcampaign=@MT; + @DBIPactive=@MT; + @DBIPvdadexten=@MT; + @DBIPcount=@MT; + @DBIPACTIVEcount=@MT; + @DBIPINCALLcount=@MT; + @DBIPadlevel=@MT; + @DBIPdialtimeout=@MT; + @DBIPdialprefix=@MT; + @DBIPcampaigncid=@MT; + @DBIPexistcalls=@MT; + @DBIPexistcalls_IN=@MT; + @DBIPexistcalls_OUT=@MT; + @DBIPgoalcalls=@MT; + @DBIPmakecalls=@MT; + @DBIPlivecalls=@MT; + @DBIPclosercamp=@MT; + @DBIPomitcode=@MT; + @DBIPautoaltdial=@MT; + @DBIPtrunk_shortage=@MT; + @DBIPcampaign_ready_agents=@MT; + @DBIPold_trunk_shortage=@MT; + @DBIPserver_trunks_limit=@MT; + @DBIPserver_trunks_other=@MT; + @DBIPserver_trunks_allowed=@MT; + @DBIPqueue_priority=@MT; + @DBIPdial_method=@MT; + + $active_line_counter=0; + $user_counter=0; + $user_campaigns = '|'; + $user_campaignsSQL = "''"; + $user_campaigns_counter = 0; + $user_campaignIP = '|'; + $user_CIPct = 0; + $active_agents = "'READY','QUEUE','INCALL','DONE'"; + $lists_update = ''; + $LUcount=0; + $campaigns_update = ''; + $CPcount=0; + + ##### Get maximum calls per second that this process can send out + $stmtA = "SELECT outbound_calls_per_second FROM servers where server_ip='$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $outbound_calls_per_second = $aryA[0]; + } + $sthA->finish(); + + if ( ($outbound_calls_per_second > 0) && ($outbound_calls_per_second < 201) ) + {$per_call_delay = (1000 / $outbound_calls_per_second);} + else + {$per_call_delay = '25';} + + $event_string="SERVER CALLS PER SECOND MAXIMUM SET TO: $outbound_calls_per_second |$per_call_delay|"; + &event_logger; + + ############################################# + ##### Check if auto-dialing is enabled + $stmtA = "SELECT outbound_autodial_active FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $outbound_autodial_active = $aryA[0]; + } + $sthA->finish(); + + ##### Get a listing of the users that are active and ready to take calls + ##### Also get a listing of the campaigns and campaigns/serverIP that will be used + $stmtA = "SELECT user,server_ip,campaign_id,conf_exten,status FROM vicidial_live_agents where status IN($active_agents) and outbound_autodial='Y' and server_ip='$server_ip' and last_update_time > '$BDtsSQLdate' order by last_call_time"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBlive_user[$user_counter] = $aryA[0]; + $DBlive_server_ip[$user_counter] = $aryA[1]; + $DBlive_campaign[$user_counter] = $aryA[2]; + $DBlive_conf_exten[$user_counter] = $aryA[3]; + $DBlive_status[$user_counter] = $aryA[4]; + + if ($user_campaigns !~ /\|$DBlive_campaign[$user_counter]\|/i) + { + if ($campaigns_update !~ /'$DBlive_campaign[$user_counter]'/) {$campaigns_update .= "'$DBlive_campaign[$user_counter]',"; $CPcount++;} + $user_campaigns .= "$DBlive_campaign[$user_counter]|"; + $user_campaignsSQL .= ",'$DBlive_campaign[$user_counter]'"; + $DBcampaigns[$user_campaigns_counter] = $DBlive_campaign[$user_counter]; + $user_campaigns_counter++; + } + if ($user_campaignIP !~ /\|$DBlive_campaign[$user_counter]__$DBlive_server_ip[$user_counter]\|/i) + { + $user_campaignIP .= "$DBlive_campaign[$user_counter]__$DBlive_server_ip[$user_counter]|"; + $DBIPcampaign[$user_CIPct] = "$DBlive_campaign[$user_counter]"; + $DBIPaddress[$user_CIPct] = "$DBlive_server_ip[$user_counter]"; + $user_CIPct++; + } + $user_counter++; + $rec_count++; + } + $sthA->finish(); + + ### see how many total VDAD calls are going on right now for max limiter + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where server_ip='$server_ip' and status IN('SENT','RINGING','LIVE','XFER','CLOSER','IVR');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $active_line_counter = $aryA[0]; + } + $sthA->finish(); + + $event_string="LIVE AGENTS LOGGED IN: $user_counter ACTIVE CALLS: $active_line_counter"; + &event_logger; + + $stmtA = "UPDATE vicidial_campaign_server_stats set local_trunk_shortage='0' where server_ip='$server_ip' and campaign_id NOT IN($user_campaignsSQL);"; + $UVCSSaffected_rows = $dbhA->do($stmtA); + if ($UVCSSaffected_rows > 0) + { + $event_string="OLD TRUNK SHORTS CLEARED: $UVCSSaffected_rows |$user_campaignsSQL|"; + &event_logger; + } + $user_CIPct = 0; + foreach(@DBIPcampaign) + { + $user_counter=0; + foreach(@DBlive_campaign) + { + if ( ($DBlive_campaign[$user_counter] =~ /$DBIPcampaign[$user_CIPct]/i) && (length($DBlive_campaign[$user_counter]) == length($DBIPcampaign[$user_CIPct])) && ($DBlive_server_ip[$user_counter] =~ /$DBIPaddress[$user_CIPct]/i) ) + { + $DBIPcount[$user_CIPct]++; + $DBIPACTIVEcount[$user_CIPct] = ($DBIPACTIVEcount[$user_CIPct] + 0); + $DBIPINCALLcount[$user_CIPct] = ($DBIPINCALLcount[$user_CIPct] + 0); + if ($DBlive_status[$user_counter] =~ /READY|DONE/) + { + $DBIPACTIVEcount[$user_CIPct]++; + } + else + { + $DBIPINCALLcount[$user_CIPct]++; + } + } + $user_counter++; + } + + ### get count of READY-status agents in this campaign + $stmtA = "SELECT count(*) FROM vicidial_live_agents where campaign_id='$DBIPcampaign[$user_CIPct]' and server_ip='$server_ip' and status='READY';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBIPcampaign_ready_agents[$user_CIPct] = $aryA[0]; + } + + ### check for vicidial_campaign_server_stats record, if non present then create it + $stmtA = "SELECT local_trunk_shortage FROM vicidial_campaign_server_stats where campaign_id='$DBIPcampaign[$user_CIPct]' and server_ip='$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBIPold_trunk_shortage[$user_CIPct] = $aryA[0]; + $rec_count++; + } + if ($rec_count < 1) + { + $stmtA = "INSERT INTO vicidial_campaign_server_stats SET local_trunk_shortage='0', server_ip='$server_ip',campaign_id='$DBIPcampaign[$user_CIPct]';"; + $affected_rows = $dbhA->do($stmtA); + + $DBIPold_trunk_shortage[$user_CIPct]=0; + + $event_string="VCSS ENTRY INSERTED: $affected_rows"; + &event_logger; + } + + $DBIPserver_trunks_limit[$user_CIPct] = ''; + $DBIPserver_trunks_other[$user_CIPct] = 0; + $DBIPserver_trunks_allowed[$user_CIPct] = $max_vicidial_trunks; + ### check for vicidial_server_trunks record + $stmtA = "SELECT dedicated_trunks FROM vicidial_server_trunks where campaign_id='$DBIPcampaign[$user_CIPct]' and server_ip='$server_ip' and trunk_restriction='MAXIMUM_LIMIT';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBIPserver_trunks_limit[$user_CIPct] = $aryA[0]; + $rec_count++; + } + $stmtA = "SELECT sum(dedicated_trunks) FROM vicidial_server_trunks where campaign_id NOT IN('$DBIPcampaign[$user_CIPct]') and server_ip='$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBIPserver_trunks_other[$user_CIPct] = $aryA[0]; + $rec_count++; + } + + $DBIPserver_trunks_allowed[$user_CIPct] = ($max_vicidial_trunks - $DBIPserver_trunks_other[$user_CIPct]); + + + ### grab the dial_level and multiply by active agents to get your goalcalls + $DBIPadlevel[$user_CIPct]=0; + $stmtA = "SELECT auto_dial_level,local_call_time,dial_timeout,dial_prefix,campaign_cid,active,campaign_vdad_exten,closer_campaigns,omit_phone_code,available_only_ratio_tally,auto_alt_dial,campaign_allow_inbound,queue_priority,dial_method FROM vicidial_campaigns where campaign_id='$DBIPcampaign[$user_CIPct]'"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $active_only=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBIPadlevel[$user_CIPct] = $aryA[0]; + $DBIPcalltime[$user_CIPct] = $aryA[1]; + $DBIPdialtimeout[$user_CIPct] = $aryA[2]; + $DBIPdialprefix[$user_CIPct] = $aryA[3]; + $DBIPcampaigncid[$user_CIPct] = $aryA[4]; + $DBIPactive[$user_CIPct] = $aryA[5]; + $DBIPvdadexten[$user_CIPct] = $aryA[6]; + $DBIPclosercamp[$user_CIPct] = $aryA[7]; + $omit_phone_code = $aryA[8]; + if ($omit_phone_code =~ /Y/) {$DBIPomitcode[$user_CIPct] = 1;} + else {$DBIPomitcode[$user_CIPct] = 0;} + $available_only_ratio_tally = $aryA[9]; + if ($available_only_ratio_tally =~ /Y/) + { + $DBIPcount[$user_CIPct] = $DBIPACTIVEcount[$user_CIPct]; + $active_only=1; + } + $DBIPautoaltdial[$user_CIPct] = $aryA[10]; + $DBIPcampaign_allow_inbound[$user_CIPct] = $aryA[11]; + $DBIPqueue_priority[$user_CIPct] = $aryA[12]; + $DBIPdial_method[$user_CIPct] = $aryA[13]; + $rec_count++; + } + $sthA->finish(); + + $DBIPgoalcalls[$user_CIPct] = ($DBIPadlevel[$user_CIPct] * $DBIPcount[$user_CIPct]); + if ($active_only > 0) + { + $tally_xfer_line_counter=0; + ### see how many VDAD calls are live as XFERs to agents + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where server_ip='$DBIPaddress[$user_CIPct]' and campaign_id='$DBIPcampaign[$user_CIPct]' and status IN('XFER','CLOSER');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $tally_xfer_line_counter = $aryA[0]; + } + $sthA->finish(); + + $DBIPgoalcalls[$user_CIPct] = ($DBIPgoalcalls[$user_CIPct] + $tally_xfer_line_counter); + } + if ($DBIPactive[$user_CIPct] =~ /N/) {$DBIPgoalcalls[$user_CIPct] = 0;} + $DBIPgoalcalls[$user_CIPct] = sprintf("%.0f", $DBIPgoalcalls[$user_CIPct]); + + $event_string="$DBIPcampaign[$user_CIPct] $DBIPaddress[$user_CIPct]: agents: $DBIPcount[$user_CIPct] (READY: $DBIPcampaign_ready_agents[$user_CIPct]) dial_level: $DBIPadlevel[$user_CIPct]"; + &event_logger; + + + ### see how many calls are already active per campaign per server and + ### subtract that number from goalcalls to determine how many new + ### calls need to be placed in this loop + if ($DBIPcampaign_allow_inbound[$user_CIPct] =~ /Y/) + { + if (length($DBIPclosercamp[$user_CIPct]) > 2) + { + $DBIPclosercamp[$user_CIPct] =~ s/^ | -$//gi; + $DBIPclosercamp[$user_CIPct] =~ s/ /','/gi; + $DBIPclosercamp[$user_CIPct] = "'$DBIPclosercamp[$user_CIPct]'"; + } + else {$DBIPclosercamp[$user_CIPct]="''";} + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where (call_type='IN' and campaign_id IN($DBIPclosercamp[$user_CIPct])) and server_ip='$DBIPaddress[$user_CIPct]' and status IN('SENT','RINGING','LIVE','XFER','CLOSER');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBIPexistcalls_IN[$user_CIPct] = $aryA[0]; + } + $sthA->finish(); + } + else + {$DBIPexistcalls_IN[$user_CIPct]=0;} + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where (campaign_id='$DBIPcampaign[$user_CIPct]' and call_type IN('OUT','OUTBALANCE')) and server_ip='$DBIPaddress[$user_CIPct]' and status IN('SENT','RINGING','LIVE','XFER','CLOSER');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBIPexistcalls_OUT[$user_CIPct] = $aryA[0]; + } + $sthA->finish(); + + $DBIPexistcalls[$user_CIPct] = ($DBIPexistcalls_IN[$user_CIPct] + $DBIPexistcalls_OUT[$user_CIPct]); + + if ( ($DBIPcampaign_ready_agents[$user_CIPct] > 0) && ($DBIPexistcalls_IN[$user_CIPct] > 0) ) + { + $event_string=" BLENDED-OUTBOUND-AGENTS-WAITING OVERRIDE: $DBIPcampaign[$user_CIPct] $DBIPexistcalls[$user_CIPct] [$DBIPexistcalls_IN[$user_CIPct] + $DBIPexistcalls_OUT[$user_CIPct]])"; + &event_logger; + + $DBIPexistcalls[$user_CIPct] = $DBIPexistcalls_OUT[$user_CIPct]; + } + + $active_line_goal=0; + $DBIPmakecalls[$user_CIPct] = ($DBIPgoalcalls[$user_CIPct] - $DBIPexistcalls[$user_CIPct]); + $DBIPmakecallsGOAL = $DBIPmakecalls[$user_CIPct]; + $MVT_msg = ''; + $DBIPtrunk_shortage[$user_CIPct] = 0; + $active_line_goal = ($active_line_counter + $DBIPmakecalls[$user_CIPct]); + if ($active_line_goal > $max_vicidial_trunks) + { + $NEWmakecallsgoal = ($max_vicidial_trunks - $active_line_counter); + if ($DBIPmakecalls[$user_CIPct] > $NEWmakecallsgoal) + {$DBIPmakecalls[$user_CIPct] = $NEWmakecallsgoal;} + $DBIPtrunk_shortage[$user_CIPct] = ($active_line_goal - $max_vicidial_trunks); + if ($DBIPtrunk_shortage[$user_CIPct] > $DBIPmakecallsGOAL) + {$DBIPtrunk_shortage[$user_CIPct] = $DBIPmakecallsGOAL} + $MVT_msg = " MVT override: $max_vicidial_trunks |$DBIPmakecalls[$user_CIPct] $DBIPtrunk_shortage[$user_CIPct]|"; + } + if (length($DBIPserver_trunks_limit[$user_CIPct])>0) + { + if ($DBIPserver_trunks_limit[$user_CIPct] < $active_line_goal) + { + $MVT_msg .= " TRUNK LIMIT override: $DBIPserver_trunks_limit[$user_CIPct]"; + $DBIPtrunk_shortage[$user_CIPct] = ($active_line_goal - $DBIPserver_trunks_limit[$user_CIPct]); + if ($DBIPtrunk_shortage[$user_CIPct] > $DBIPmakecallsGOAL) + {$DBIPtrunk_shortage[$user_CIPct] = $DBIPmakecallsGOAL} + $active_line_goal = $DBIPserver_trunks_limit[$user_CIPct]; + $NEWmakecallsgoal = ($active_line_goal - $active_line_counter); + if ($DBIPmakecalls[$user_CIPct] > $NEWmakecallsgoal) + {$DBIPmakecalls[$user_CIPct] = $NEWmakecallsgoal;} + } + } + else + { + if ($DBIPserver_trunks_allowed[$user_CIPct] < $active_line_goal) + { + $MVT_msg .= " OTHER LIMIT override: $DBIPserver_trunks_allowed[$user_CIPct]"; + $DBIPtrunk_shortage[$user_CIPct] = ($active_line_goal - $DBIPserver_trunks_allowed[$user_CIPct]); + if ($DBIPtrunk_shortage[$user_CIPct] > $DBIPmakecallsGOAL) + {$DBIPtrunk_shortage[$user_CIPct] = $DBIPmakecallsGOAL} + $active_line_goal = $DBIPserver_trunks_allowed[$user_CIPct]; + $NEWmakecallsgoal = ($active_line_goal - $active_line_counter); + if ($DBIPmakecalls[$user_CIPct] > $NEWmakecallsgoal) + {$DBIPmakecalls[$user_CIPct] = $NEWmakecallsgoal;} + } + } + + if ($DBIPmakecalls[$user_CIPct] > 0) + {$active_line_counter = ($DBIPmakecalls[$user_CIPct] + $active_line_counter);} + + $event_string="$DBIPcampaign[$user_CIPct] $DBIPaddress[$user_CIPct]: Calls to place: $DBIPmakecalls[$user_CIPct] ($DBIPgoalcalls[$user_CIPct] - $DBIPexistcalls[$user_CIPct] [$DBIPexistcalls_IN[$user_CIPct] + $DBIPexistcalls_OUT[$user_CIPct]]) $active_line_counter $MVT_msg"; + &event_logger; + + ### Calculate campaign-wide agent waiting and calls waiting differential + ### This is used by the AST_VDadapt script to see if the current dial_level + ### should be changed at all + $total_agents=0; + $ready_agents=0; + $waiting_calls=0; + $waiting_calls_IN=0; + $waiting_calls_OUT=0; + + $stmtA = "SELECT count(*),status from vicidial_live_agents where campaign_id='$DBIPcampaign[$user_CIPct]' and last_update_time > '$halfminSQLdate' group by status;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VCSagent_count = $aryA[0]; + $VCSagent_status = $aryA[1]; + $rec_count++; + if ($VCSagent_status =~ /READY|DONE/) {$ready_agents = ($ready_agents + $VCSagent_count);} + $total_agents = ($total_agents + $VCSagent_count); + } + $sthA->finish(); + + if ($DBIPcampaign_allow_inbound[$user_CIPct] =~ /Y/) + { + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where (call_type='IN' and campaign_id IN($DBIPclosercamp[$user_CIPct])) and status IN('LIVE');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $waiting_calls_IN = $aryA[0]; + } + $sthA->finish(); + } + else + {$waiting_calls_IN=0;} + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where (campaign_id='$DBIPcampaign[$user_CIPct]' and call_type IN('OUT','OUTBALANCE')) and status IN('LIVE');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $waiting_calls_OUT = $aryA[0]; + } + $sthA->finish(); + + $waiting_calls = ($waiting_calls_IN + $waiting_calls_OUT); + + $stat_ready_agents[$user_CIPct][$stat_count] = $ready_agents; + $stat_waiting_calls[$user_CIPct][$stat_count] = $waiting_calls; + $stat_total_agents[$user_CIPct][$stat_count] = $total_agents; + + $stat_it=20; + $ready_diff_total=0; + $waiting_diff_total=0; + $total_agents_total=0; + $ready_diff_avg=0; + $waiting_diff_avg=0; + $total_agents_avg=0; + $stat_differential=0; + if ($stat_count < 20) + { + $stat_it = $stat_count; + $stat_B = 1; + } + else + { + $stat_B = ($stat_count - 19); + } + + $it=0; + while($it < $stat_it) + { + $it_ary = ($it + $stat_B); + $ready_diff_total = ($ready_diff_total + $stat_ready_agents[$user_CIPct][$it_ary]); + $waiting_diff_total = ($waiting_diff_total + $stat_waiting_calls[$user_CIPct][$it_ary]); + $total_agents_total = ($total_agents_total + $stat_total_agents[$user_CIPct][$it_ary]); + # $event_string="$stat_count $it_ary $stat_total_agents[$user_CIPct][$it_ary]|$stat_ready_agents[$user_CIPct][$it_ary]|$stat_waiting_calls[$user_CIPct][$it_ary]"; + # &event_logger; + $it++; + } + + if ($ready_diff_total > 0) + {$ready_diff_avg = ($ready_diff_total / $stat_it);} + if ($waiting_diff_total > 0) + {$waiting_diff_avg = ($waiting_diff_total / $stat_it);} + if ($total_agents_total > 0) + {$total_agents_avg = ($total_agents_total / $stat_it);} + $stat_differential = ($ready_diff_avg - $waiting_diff_avg); + + $event_string="CAMPAIGN DIFFERENTIAL: $total_agents_avg $stat_differential ($ready_diff_avg - $waiting_diff_avg)"; + &event_logger; + + $stmtA = "UPDATE vicidial_campaign_stats SET differential_onemin='$stat_differential', agents_average_onemin='$total_agents_avg' where campaign_id='$DBIPcampaign[$user_CIPct]';"; + $affected_rows = $dbhA->do($stmtA); + + if ( ($DBIPold_trunk_shortage[$user_CIPct] > $DBIPtrunk_shortage[$user_CIPct]) || ($DBIPold_trunk_shortage[$user_CIPct] < $DBIPtrunk_shortage[$user_CIPct]) ) + { + if ( ($DBIPadlevel[$user_CIPct] < 1) || ($DBIPdial_method[$user_CIPct] =~ /MANUAL|INBOUND_MAN/) ) + { + $event_string="Manual Dial Override for Shortage |$DBIPadlevel[$user_CIPct]|$DBIPtrunk_shortage[$user_CIPct]|"; + &event_logger; + $DBIPtrunk_shortage[$user_CIPct] = 0; + } + $stmtA = "UPDATE vicidial_campaign_server_stats SET local_trunk_shortage='$DBIPtrunk_shortage[$user_CIPct]',update_time='$now_date' where server_ip='$server_ip' and campaign_id='$DBIPcampaign[$user_CIPct]';"; + $affected_rows = $dbhA->do($stmtA); + } + + $event_string="LOCAL TRUNK SHORTAGE: $DBIPtrunk_shortage[$user_CIPct]|$DBIPold_trunk_shortage[$user_CIPct] ($active_line_goal - $max_vicidial_trunks)"; + &event_logger; + + $user_CIPct++; + } + + ############################################################################### + ###### second lookup leads and place calls for each campaign/server_ip + ###### go one lead at a time and place the call by inserting a record into vicidial_manager + ############################################################################### + + $user_CIPct = 0; + foreach(@DBIPcampaign) + { + if ( ($DBIPdial_method[$user_CIPct] =~ /MANUAL|INBOUND_MAN/) || ($outbound_autodial_active < 1) ) + { + $event_string="$DBIPcampaign[$user_CIPct] $DBIPaddress[$user_CIPct]: MANUAL DIAL CAMPAIGN, NO DIALING"; + &event_logger; + } + else + { + $event_string="$DBIPcampaign[$user_CIPct] $DBIPaddress[$user_CIPct]: CALLING"; + &event_logger; + $call_CMPIPct=0; + $lead_id_call_list='|'; + my $UDaffected_rows=0; + if ($call_CMPIPct < $DBIPmakecalls[$user_CIPct]) + { + $stmtA = "UPDATE vicidial_hopper set status='QUEUE', user='VDAD_$server_ip' where campaign_id='$DBIPcampaign[$user_CIPct]' and status='READY' order by priority desc,hopper_id LIMIT $DBIPmakecalls[$user_CIPct]"; + print "|$stmtA|\n"; + $UDaffected_rows = $dbhA->do($stmtA); + print "hopper rows updated to QUEUE: |$UDaffected_rows|\n"; + + if ($UDaffected_rows) + { + $lead_id=''; $phone_code=''; $phone_number=''; $called_count=''; + while ($call_CMPIPct < $UDaffected_rows) + { + $stmtA = "SELECT lead_id,alt_dial FROM vicidial_hopper where campaign_id='$DBIPcampaign[$user_CIPct]' and status='QUEUE' and user='VDAD_$server_ip' order by priority desc,hopper_id LIMIT 1"; + print "|$stmtA|\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $lead_id = $aryA[0]; + $alt_dial = $aryA[1]; + $rec_count++; + } + $sthA->finish(); + + if ($lead_id_call_list =~ /\|$lead_id\|/) + { + print "!!!!!!!!!!!!!!!!duplicate lead_id for this run: |$lead_id| $lead_id_call_list\n"; + if ($SYSLOG) + { + open(DUPout, ">>$PATHlogs/VDAD_DUPLICATE.$file_date") + || die "Can't open $PATHlogs/VDAD_DUPLICATE.$file_date: $!\n"; + print DUPout "$now_date-----$lead_id_call_list-----$lead_id\n"; + close(DUPout); + } + } + else + { + $stmtA = "UPDATE vicidial_hopper set status='INCALL' where lead_id='$lead_id'"; + print "|$stmtA|\n"; + $UQaffected_rows = $dbhA->do($stmtA); + print "hopper row updated to INCALL: |$UQaffected_rows|$lead_id|\n"; + + ### Gather lead data + $stmtA = "SELECT list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,address3,alt_phone,called_count FROM vicidial_list where lead_id='$lead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $list_id = $aryA[0]; + $gmt_offset_now = $aryA[1]; + $called_since_last_reset = $aryA[2]; + $phone_code = $aryA[3]; + $phone_number = $aryA[4]; + $address3 = $aryA[5]; + $alt_phone = $aryA[6]; + $called_count = $aryA[7]; + + $rec_countCUSTDATA++; + $rec_count++; + } + $sthA->finish(); + + if ($rec_countCUSTDATA) + { + $campaign_cid_override=''; + ### gather list_id overrides + $stmtA = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsL=$sthA->rows; + if ($sthArowsL > 0) + { + @aryA = $sthA->fetchrow_array; + $campaign_cid_override = $aryA[0]; + } + $sthA->finish(); + + ### update called_count + $called_count++; + if ($called_since_last_reset =~ /^Y/) + { + if ($called_since_last_reset =~ /^Y$/) {$CSLR = 'Y1';} + else + { + $called_since_last_reset =~ s/^Y//gi; + $called_since_last_reset++; + $CSLR = "Y$called_since_last_reset"; + } + } + else {$CSLR = 'Y';} + + $LLCT_DATE_offset = ($LOCAL_GMT_OFF - $gmt_offset_now); + $LLCT_DATE_offset_epoch = ( $secX - ($LLCT_DATE_offset * 3600) ); + ($Lsec,$Lmin,$Lhour,$Lmday,$Lmon,$Lyear,$Lwday,$Lyday,$Lisdst) = localtime($LLCT_DATE_offset_epoch); + $Lyear = ($Lyear + 1900); + $Lmon++; + if ($Lmon < 10) {$Lmon = "0$Lmon";} + if ($Lmday < 10) {$Lmday = "0$Lmday";} + if ($Lhour < 10) {$Lhour = "0$Lhour";} + if ($Lmin < 10) {$Lmin = "0$Lmin";} + if ($Lsec < 10) {$Lsec = "0$Lsec";} + $LLCT_DATE = "$Lyear-$Lmon-$Lmday $Lhour:$Lmin:$Lsec"; + + if ( ($alt_dial =~ /ALT|ADDR3|X/) && ($DBIPautoaltdial[$user_CIPct] =~ /ALT|ADDR|X/) ) + { + if ( ($alt_dial =~ /ALT/) && ($DBIPautoaltdial[$user_CIPct] =~ /ALT/) ) + { + $alt_phone =~ s/\D//gi; + $phone_number = $alt_phone; + } + if ( ($alt_dial =~ /ADDR3/) && ($DBIPautoaltdial[$user_CIPct] =~ /ADDR3/) ) + { + $address3 =~ s/\D//gi; + $phone_number = $address3; + } + if ( ($alt_dial =~ /X/) && ($DBIPautoaltdial[$user_CIPct] =~ /X/) ) + { + if ($alt_dial =~ /LAST/) + { + $stmtA = "SELECT phone_code,phone_number FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = $alt_dial; + $Talt_dial =~ s/\D//gi; + $stmtA = "SELECT phone_code,phone_number FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $phone_code = $aryA[0]; + $phone_number = $aryA[1]; + $phone_number =~ s/\D//gi; + } + $sthA->finish(); + } + + $stmtA = "UPDATE vicidial_list set called_since_last_reset='$CSLR',called_count='$called_count',user='VDAD',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id'"; + } + else + { + $stmtA = "UPDATE vicidial_list set called_since_last_reset='$CSLR', called_count='$called_count',user='VDAD',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id'"; + } + $affected_rows = $dbhA->do($stmtA); + + $stmtA = "DELETE FROM vicidial_hopper where lead_id='$lead_id'"; + $affected_rows = $dbhA->do($stmtA); + + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + if ($DBIPdialtimeout[$user_CIPct] > 4) {$Local_dial_timeout = $DBIPdialtimeout[$user_CIPct];} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (length($DBIPdialprefix[$user_CIPct]) > 0) {$Local_out_prefix = "$DBIPdialprefix[$user_CIPct]";} + if (length($DBIPvdadexten[$user_CIPct]) > 0) {$VDAD_dial_exten = "$DBIPvdadexten[$user_CIPct]";} + else {$VDAD_dial_exten = "$answer_transfer_agent";} + + if (length($DBIPcampaigncid[$user_CIPct]) > 6) {$CCID = "$DBIPcampaigncid[$user_CIPct]"; $CCID_on++;} + if (length($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if ($DBIPdialprefix[$user_CIPct] =~ /x/i) {$Local_out_prefix = '';} + + if ($RECcount) + { + if ( (length($RECprefix)>0) && ($called_count < $RECcount) ) + {$Local_out_prefix .= "$RECprefix";} + } + $PADlead_id = sprintf("%09s", $lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} + + if ($lists_update !~ /'$list_id'/) {$lists_update .= "'$list_id',"; $LUcount++;} + + $lead_id_call_list .= "$lead_id|"; + + if (length($alt_dial)<1) {$alt_dial='MAIN';} + + ### whether to omit phone_code or not + if ($DBIPomitcode[$user_CIPct] > 0) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if (length($ext_context) < 1) {$ext_context='default';} + ### use manager middleware-app to connect the next call to the meetme room + # VmmddhhmmssLLLLLLLLL + $VqueryCID = "V$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$VqueryCID\" <$CCID>";} + else {$CIDstring = "$VqueryCID";} + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$DBIPaddress[$user_CIPct]','','Originate','$VqueryCID','Exten: $VDAD_dial_exten','Context: $ext_context','Channel: $local_DEF$Ndialstring$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','')"; + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| number call dialed|$DBIPcampaign[$user_CIPct]|$VqueryCID|$stmtA|$gmt_offset_now|$alt_dial|"; + &event_logger; + + ### insert a SENT record to the vicidial_auto_calls table + $stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type,alt_dial,queue_priority) values('$DBIPaddress[$user_CIPct]','$DBIPcampaign[$user_CIPct]','SENT','$lead_id','$VqueryCID','$phone_code','$phone_number','$SQLdate','OUT','$alt_dial','$DBIPqueue_priority[$user_CIPct]')"; + $affected_rows = $dbhA->do($stmtA); + + ### sleep for a five hundredths of a second to not flood the server with new calls + # usleep(1*50*1000); + usleep(1*$per_call_delay*1000); + } + } + $call_CMPIPct++; + } + } + } + } + $user_CIPct++; + } + + + + + + &get_time_now; + + ############################################################################### + ###### third we will grab the callerids of the vicidial_auto_calls records and check for dead calls + ###### we also check to make sure that it isn't a call that has been transferred, + ###### if it has been we need to leave the vicidial_list status alone + ############################################################################### + + @KLcallerid = @MT; + @KLserver_ip = @MT; + @KLchannel = @MT; + $kill_vac=0; + + $stmtA = "SELECT callerid,server_ip,channel,uniqueid,status FROM vicidial_auto_calls where server_ip='$server_ip' order by call_time;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + $kill_vac=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $KLcallerid[$kill_vac] = $aryA[0]; + $KLserver_ip[$kill_vac] = $aryA[1]; + $KLchannel[$kill_vac] = $aryA[2]; + $KLuniqueid[$kill_vac] = $aryA[3]; + $KLstatus[$kill_vac] = $aryA[4]; + $kill_vac++; + $rec_count++; + } + $sthA->finish(); + + $kill_vac=0; + foreach(@KLcallerid) + { + if (length($KLserver_ip[$kill_vac]) > 7) + { + $end_epoch=0; $CLuniqueid=''; $start_epoch=0; $CLlast_update_time=0; + $KLcalleridCHECK[$kill_vac]=$KLcallerid[$kill_vac]; + $KLcalleridCHECK[$kill_vac] =~ s/\W//gi; + + if ( (length($KLcalleridCHECK[$kill_vac]) > 17) && ($KLcalleridCHECK[$kill_vac] =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) + { + $stmtA = "SELECT end_epoch,uniqueid,start_epoch FROM call_log where caller_code='$KLcallerid[$kill_vac]' and server_ip='$KLserver_ip[$kill_vac]' order by end_epoch, start_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $end_epoch = $aryA[0]; + $CLuniqueid = $aryA[1]; + $start_epoch = $aryA[2]; + $rec_count++; + } + $sthA->finish(); + } + + if ( (length($KLuniqueid[$kill_vac]) > 11) && (length($CLuniqueid) < 12) ) + { + $stmtA = "SELECT end_epoch,uniqueid,start_epoch FROM call_log where uniqueid='$KLuniqueid[$kill_vac]' and server_ip='$KLserver_ip[$kill_vac]' order by end_epoch, start_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $end_epoch = $aryA[0]; + $CLuniqueid = $aryA[1]; + $start_epoch = $aryA[2]; + $rec_count++; + } + $sthA->finish(); + } + + # Find out if (the call is parked + $PARKchannel=0; + if (length($KLcallerid[$kill_vac]) > 17) + { + $stmtA = "SELECT count(*) from parked_channels where channel_group='$KLcallerid[$kill_vac]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsPK=$sthA->rows; + if ($sthArowsPK > 0) + { + @aryA = $sthA->fetchrow_array; + $PARKchannel = $aryA[0]; + } + $sthA->finish(); + } + + $CLlead_id=''; $auto_call_id=''; $CLstatus=''; $CLcampaign_id=''; $CLphone_number=''; $CLphone_code=''; + + $stmtA = "SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,call_type,UNIX_TIMESTAMP(last_update_time) FROM vicidial_auto_calls where callerid='$KLcallerid[$kill_vac]'"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $auto_call_id = $aryA[0]; + $CLlead_id = $aryA[1]; + $CLphone_number = $aryA[2]; + $CLstatus = $aryA[3]; + $CLcampaign_id = $aryA[4]; + $CLphone_code = $aryA[5]; + $CLalt_dial = $aryA[6]; + $CLstage = $aryA[7]; + $CLcall_type = $aryA[8]; + $CLlast_update_time = $aryA[9]; + $rec_count++; + } + $sthA->finish(); + $stmtA = "SELECT user FROM vicidial_live_agents where callerid='$KLcallerid[$kill_vac]'"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CLuser = "$aryA[0]"; + } + $sthA->finish(); + if ( (length($CLlead_id) < 1) || ($CLlead_id < 1) ) + { + $CLlead_id = $KLcallerid[$kill_vac]; + $CLlead_id = substr($CLlead_id, 11, 9); + $CLlead_id = ($CLlead_id + 0); + } + + if ($CLcall_type =~ /IN/) + { + $stmtA = "SELECT drop_call_seconds FROM vicidial_inbound_groups where group_id='$CLcampaign_id';"; + $timeout_leeway = 30; + } + else + { + $stmtA = "SELECT dial_timeout,drop_call_seconds FROM vicidial_campaigns where campaign_id='$CLcampaign_id';"; + $timeout_leeway = 7; + } + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CLdial_timeout = $aryA[0]; + $CLdrop_call_seconds = $aryA[1]; + } + $sthA->finish(); + + $dialtime_log = ($end_epoch - $start_epoch); + $dialtime_catch = ($now_date_epoch - ($start_epoch + $timeout_leeway)); + $hanguptime_manual = ($end_epoch + 60); + if ($dialtime_catch > 100000) {$dialtime_catch=0;} + $call_timeout = ($CLdial_timeout + $CLdrop_call_seconds); + if ($CLstage =~ /SURVEY|REMIND/) {$call_timeout = ($call_timeout + 120);} + + if ( ( ($dialtime_log >= $call_timeout) || ($dialtime_catch >= $call_timeout) || ($CLstatus =~ /BUSY|DISCONNECT|XFER|CLOSER/) ) && ($PARKchannel < 1) ) + { + if ($CLcall_type !~ /IN/) + { + if ($CLstatus !~ /XFER|CLOSER/) + { + $stmtA = "DELETE from vicidial_auto_calls where auto_call_id='$auto_call_id'"; + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| dead call vac deleted|$auto_call_id|$CLlead_id|$KLcallerid[$kill_vac]|$end_epoch|$affected_rows|$KLchannel[$kill_vac]|$CLcall_type|$CLdial_timeout|$CLdrop_call_seconds|$call_timeout|$dialtime_log|$dialtime_catch|"; + &event_logger; + + $CLstage =~ s/LIVE|-//gi; + if ($CLstage < 0.25) {$CLstage=0;} + + if ($CLstatus =~ /BUSY/) {$CLnew_status = 'B';} + else + { + if ($CLstatus =~ /DISCONNECT/) {$CLnew_status = 'DC';} + else {$CLnew_status = 'NA';} + } + if ($CLstatus =~ /LIVE/) {$CLnew_status = 'DROP';} + else + { + $insertVLuser = 'VDAD'; + $insertVLcount=0; + if ($KLcallerid[$kill_vac] =~ /^M\d\d\d\d\d\d\d\d\d\d/) + { + $beginUNIQUEID = $CLuniqueid; + $beginUNIQUEID =~ s/\..*//gi; + $insertVLuser = $CLuser; + $stmtA="SELECT count(*) from vicidial_log where lead_id='$CLlead_id' and user='$CLuser' and phone_number='$CLphone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsVL=$sthA->rows; + if ($sthArowsVL > 0) + { + @aryA = $sthA->fetchrow_array; + $insertVLcount = $aryA[0]; + } + $sthA->finish(); + } + + ############################################################## + ### BEGIN - CPD Look for result for NA/B/DC calls + ############################################################## + $stmtA = "SELECT result FROM vicidial_cpd_log where callerid='$KLcallerid[$kill_vac]' order by cpd_id desc limit 1;"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cpd_result = $aryA[0]; + $sthA->finish(); + $CPDfound=0; + if ($cpd_result =~ /Busy/i) {$CLnew_status='CPDB'; $CPDfound++;} + if ($cpd_result =~ /Unknown/i) {$CLnew_status='CPDUK'; $CPDfound++;} + if ($cpd_result =~ /All-Trunks-Busy/i) {$CLnew_status='CPDATB'; $CPDfound++;} + if ($cpd_result =~ /No-Answer/i) {$CLnew_status='CPDNA'; $CPDfound++;} + if ($cpd_result =~ /Reject/i) {$CLnew_status='CPDREJ'; $CPDfound++;} + if ($cpd_result =~ /Invalid-Number/i) {$CLnew_status='CPDINV'; $CPDfound++;} + if ($cpd_result =~ /Service-Unavailable/i) {$CLnew_status='CPDSUA'; $CPDfound++;} + if ($cpd_result =~ /Sit-Intercept/i) {$CLnew_status='CPDSI'; $CPDfound++;} + if ($cpd_result =~ /Sit-No-Circuit/i) {$CLnew_status='CPDSNC'; $CPDfound++;} + if ($cpd_result =~ /Sit-Reorder/i) {$CLnew_status='CPDSR'; $CPDfound++;} + if ($cpd_result =~ /Sit-Unknown/i) {$CLnew_status='CPDSUK'; $CPDfound++;} + if ($cpd_result =~ /Sit-Vacant/i) {$CLnew_status='CPDSV'; $CPDfound++;} + if ($cpd_result =~ /\?\?\?/i) {$CLnew_status='CPDERR'; $CPDfound++;} + if ($cpd_result =~ /Fax|Modem/i) {$CLnew_status='AFAX'; $CPDfound++;} + if ($cpd_result =~ /Answering-Machine/i) {$CLnew_status='AA'; $CPDfound++;} + } + + ############################################################## + ### END - CPD Look for result for NA/B/DC calls + ############################################################## + + $end_epoch = $now_date_epoch; + if ($insertVLcount < 1) + { + $xCLlist_id=0; + $stmtA="SELECT list_id from vicidial_list where lead_id='$CLlead_id' limit 1;"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsVLL=$sthA->rows; + if ($sthArowsVLL > 0) + { + @aryA = $sthA->fetchrow_array; + $xCLlist_id = $aryA[0]; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed,length_in_sec,end_epoch,alt_dial,list_id) values('$CLuniqueid','$CLlead_id','$CLcampaign_id','$SQLdate','$now_date_epoch','$CLnew_status','$CLphone_code','$CLphone_number','$insertVLuser','N','$CLstage','$end_epoch','$CLalt_dial','$xCLlist_id')"; + if($M){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| dead NA call added to log $CLuniqueid|$CLlead_id|$CLphone_number|$CLstatus|$CLnew_status|$affected_rows|$insertVLcount"; + &event_logger; + } + else + { + $stmtA = "UPDATE vicidial_log SET status='$CLnew_status',length_in_sec='$CLstage',end_epoch='$end_epoch',alt_dial='$CLalt_dial' where lead_id='$CLlead_id' and user='$CLuser' and phone_number='$CLphone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if($M){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| dead NA call updated in log $CLuniqueid|$CLlead_id|$CLphone_number|$CLstatus|$CLnew_status|$affected_rows|$insertVLcount|$beginUNIQUEID"; + &event_logger; + } + } + + if ($CLlead_id > 0) + { + $stmtA = "UPDATE vicidial_list set status='$CLnew_status' where lead_id='$CLlead_id'"; + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| dead call vac lead marked $CLnew_status|$CLlead_id|$CLphone_number|$CLstatus|"; + &event_logger; + } + + if ($KLcallerid[$kill_vac] !~ /^M\d\d\d\d\d\d\d\d\d\d/) + { + $stmtA = "UPDATE vicidial_live_agents set status='PAUSED',random_id='10' where callerid='$KLcallerid[$kill_vac]';"; + $Vaffected_rows = $dbhA->do($stmtA); + + if ($Vaffected_rows > 0) + { + $stmtA = "SELECT agent_log_id,user from vicidial_live_agents where callerid='$KLcallerid[$kill_vac]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsML=$sthA->rows; + $lagged_ids=0; + while ($sthArowsML > $lagged_ids) + { + @aryA = $sthA->fetchrow_array; + $MLAGagent_log_id[$lagged_ids] = $aryA[0]; + $MLAGuser[$lagged_ids] = $aryA[1]; + $lagged_ids++; + } + $sthA->finish(); + $lagged_ids=0; + while ($sthArowsML > $lagged_ids) + { + $stmtA = "UPDATE vicidial_agent_log set sub_status='LAGGED' where agent_log_id='$MLAGagent_log_id[$lagged_ids]';"; + $VLaffected_rows = $dbhA->do($stmtA); + + if ($enable_queuemetrics_logging > 0) + { + $secX = time(); + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='NONE',agent='Agent/$MLAGuser[$lagged_ids]',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='LAGGED';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + $lagged_ids++; + } + + $event_string = "| dead call vla agent PAUSED $Vaffected_rows|$VLaffected_rows|$CLlead_id|$CLphone_number|$CLstatus|"; + &event_logger; + } + } + + if ( ($enable_queuemetrics_logging > 0) && ($CLstatus =~ /LIVE/) ) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + ### find original queue position of the call + $queue_position=1; + $stmtA = "SELECT queue_position,call_date FROM vicidial_closer_log where lead_id='$CLlead_id' and campaign_id='$CLcampaign_id' and call_date > \"$RSQLdate\" order by closecallid desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $queue_position = $aryA[0]; + $VCLcall_date = $aryA[1]; + } + $sthA->finish(); + + ### find current number of calls in this queue to find position when channel hung up + $current_position=1; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id='$CLcampaign_id' and call_time < '$VCLcall_date';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $current_position = ($aryA[0] + 1); + } + $sthA->finish(); + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$KLcallerid[$kill_vac]',queue='$CLcampaign_id',agent='NONE',verb='ABANDON',data1='$current_position',data2='$queue_position',data3='$CLstage',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + ##### BEGIN AUTO ALT PHONE DIAL SECTION ##### + ### check to see if campaign has alt_dial enabled + $VD_auto_alt_dial = 'NONE'; + $VD_auto_alt_dial_statuses=''; + $stmtA="SELECT auto_alt_dial,auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$CLcampaign_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_auto_alt_dial = $aryA[0]; + $VD_auto_alt_dial_statuses = $aryA[1]; + $VD_use_internal_dnc = $aryA[2]; + $VD_use_campaign_dnc = $aryA[3]; + } + $sthA->finish(); + $event_string = "|$stmtA|$VD_auto_alt_dial|$VD_auto_alt_dial_statuses|$CLnew_status|$CLlead_id|$CLalt_dial"; &event_logger; + if ( ($VD_auto_alt_dial_statuses =~ / $CLnew_status /) && ($CLlead_id > 0) ) + { + if ( ($VD_auto_alt_dial =~ /ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED/) && ($CLalt_dial =~ /NONE|MAIN/) ) + { + $alt_dial_skip=0; + $VD_alt_phone=''; + $stmtA="SELECT alt_phone,gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$CLlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_phone = $aryA[0]; + $VD_alt_phone =~ s/\D//gi; + $VD_gmt_offset_now = $aryA[1]; + $VD_state = $aryA[2]; + $VD_list_id = $aryA[3]; + } + $sthA->finish(); + $event_string = "|$stmtA|$VD_alt_phone|"; &event_logger; + if (length($VD_alt_phone)>5) + { + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $alt_areacode = substr($VD_alt_phone, 0, 3); + $alt_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_alt_phone','$alt_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_alt_phone';";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + $event_string = "|$stmtA|$VD_alt_dnc_count|"; &event_logger; + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $alt_areacode = substr($VD_alt_phone, 0, 3); + $alt_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_alt_phone','$alt_areacode') and campaign_id='$CLcampaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_alt_phone' and campaign_id='$CLcampaign_id';";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + $event_string = "|$stmtA|$VD_alt_dnc_count|"; &event_logger; + } + if ($VD_alt_dnc_count < 1) + { + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$CLlead_id',campaign_id='$CLcampaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='ALT',user='',priority='25';"; + $affected_rows = $dbhA->do($stmtA); + $event_string = "-- VDH record inserted: |$affected_rows| |$stmtA|"; &event_logger; + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$CLalt_dial='ALT';} + } + if ( ( ($VD_auto_alt_dial =~ /ADDR3_ONLY/) && ($CLalt_dial =~ /NONE|MAIN/) ) || ( ($VD_auto_alt_dial =~ /ALT_AND_ADDR3/) && ($CLalt_dial =~ /ALT/) ) ) + { + $addr3_dial_skip=0; + $VD_address3=''; + $stmtA="SELECT address3,gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$CLlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_address3 = $aryA[0]; + $VD_address3 =~ s/\D//gi; + $VD_gmt_offset_now = $aryA[1]; + $VD_state = $aryA[2]; + $VD_list_id = $aryA[3]; + } + $sthA->finish(); + $event_string = "|$stmtA|$VD_address3|"; &event_logger; + if (length($VD_address3)>5) + { + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $addr3_areacode = substr($VD_address3, 0, 3); + $addr3_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_address3','$addr3_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_address3';";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + $event_string = "|$stmtA|$VD_alt_dnc_count|"; &event_logger; + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $addr3_areacode = substr($VD_address3, 0, 3); + $addr3_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_address3','$addr3_areacode') and campaign_id='$CLcampaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_address3' and campaign_id='$CLcampaign_id';";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + $event_string = "|$stmtA|$VD_alt_dnc_count|"; &event_logger; + } + if ($VD_alt_dnc_count < 1) + { + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$CLlead_id',campaign_id='$CLcampaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='ADDR3',user='',priority='20';"; + $affected_rows = $dbhA->do($stmtA); + $event_string = "-- VDH record inserted: |$affected_rows| |$stmtA|"; &event_logger; + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$CLalt_dial='ADDR3';} + } + if ( ( ($VD_auto_alt_dial =~ /EXTENDED_ONLY/) && ($CLalt_dial =~ /NONE|MAIN/) ) || ( ($VD_auto_alt_dial =~ /ALT_AND_EXTENDED/) && ($CLalt_dial =~ /ALT/) ) || ( ($VD_auto_alt_dial =~ /ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED/) && ($CLalt_dial =~ /ADDR3/) ) || ( ($VD_auto_alt_dial =~ /EXTENDED/) && ($CLalt_dial =~ /^X/) && ($CLalt_dial !~ /XLAST/) ) ) + { + if ($CLalt_dial =~ /ADDR3/) {$Xlast=0;} + else + {$Xlast = $CLalt_dial;} + $Xlast =~ s/\D//gi; + if (length($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + $stmtA="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$CLlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_gmt_offset_now = $aryA[0]; + $VD_state = $aryA[1]; + $VD_list_id = $aryA[2]; + } + $sthA->finish(); + $alt_dial_phones_count=0; + $stmtA="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$CLlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $alt_dial_phones_count = $aryA[0]; + } + $sthA->finish(); + $event_string = "|$stmtA|$alt_dial_phones_count"; &event_logger; + + while ( ($alt_dial_phones_count > 0) && ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmtA="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$CLlead_id' and alt_phone_count='$Xlast';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_altdial_id = $aryA[0]; + $VD_altdial_phone = $aryA[1]; + $VD_altdial_active = $aryA[2]; + } + else + {$Xlast=9999999999;} + $event_string = "|$stmtA|$VD_altdial_phone|$Xlast|"; &event_logger; + $sthA->finish(); + + $DNCC=0; + $DNCL=0; + if ($VD_altdial_active =~ /Y/) + { + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $ad_areacode = substr($VD_altdial_phone, 0, 3); + $ad_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_altdial_phone','$ad_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + $DNCL = $aryA[0]; + } + $sthA->finish(); + $event_string = "|$stmtA|$VD_alt_dnc_count|"; &event_logger; + } + else {$VD_alt_dnc_count=0;} + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $ad_areacode = substr($VD_altdial_phone, 0, 3); + $ad_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$ad_areacode') and campaign_id='$CLcampaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$CLcampaign_id';";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + $DNCC = $aryA[0]; + } + $sthA->finish(); + $event_string = "|$stmtA|$VD_alt_dnc_count|"; &event_logger; + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$CLlead_id',campaign_id='$CLcampaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='X$Xlast',user='',priority='15';"; + $affected_rows = $dbhA->do($stmtA); + $event_string = "-- VDH record inserted: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &event_logger; + $Xlast=9999999999; + } + else + { + if ( ( ($VD_auto_alt_dial_statuses =~ / DNCC /) && ($DNCC > 0) ) || ( ($VD_auto_alt_dial_statuses =~ / DNCL /) && ($DNCL > 0) ) ) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$CLlead_id',campaign_id='$CLcampaign_id',status='DNC',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='X$Xlast',user='',priority='15';"; + $affected_rows = $dbhA->do($stmtA); + $event_string = "-- VDH record DNC inserted: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &event_logger; + $Xlast=9999999999; + } + else + { + $event_string = "-- VDH record DNC not-inserted: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &event_logger; + } + } + } + } + } + } + ##### END AUTO ALT PHONE DIAL SECTION ##### + + + + + } + else + { + if ( ($KLcallerid[$kill_vac] =~ /^M\d\d\d\d\d\d\d\d\d\d/) && ($CLlast_update_time < $TDtarget) ) + { + $stmtA = "DELETE from vicidial_auto_calls where auto_call_id='$auto_call_id'"; + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| M dead call vac deleted|$auto_call_id|$CLlead_id|$KLcallerid[$kill_vac]|$end_epoch|$affected_rows|$KLchannel[$kill_vac]|$CLcall_type|$CLlast_update_time < $XDtarget|"; + &event_logger; + + } + else + { + $event_string = "| dead call vac XFERd do nothing|$CLlead_id|$CLphone_number|$CLstatus|"; + &event_logger; + } + } + } + else + { + $event_string = "| dead call vac INBOUND do nothing|$CLlead_id|$CLphone_number|$CLstatus|"; + &event_logger; + } + } + } + $kill_vac++; + } + + + + ### pause agents that have disconnected or closed their apps over 30 seconds ago + $toPAUSEcount=0; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where server_ip='$server_ip' and last_update_time < '$PDtsSQLdate' and status NOT IN('PAUSED');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsC=$sthA->rows; + if ($sthArowsC > 0) + { + @aryA = $sthA->fetchrow_array; + $toPAUSEcount = $aryA[0]; + } + $sthA->finish(); + $affected_rows=0; + + if ($toPAUSEcount > 0) + { + $stmtA = "SELECT agent_log_id,user from vicidial_live_agents where server_ip='$server_ip' and last_update_time < '$PDtsSQLdate' and status NOT IN('PAUSED');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsL=$sthA->rows; + $lagged_ids=0; + while ($sthArowsL > $lagged_ids) + { + @aryA = $sthA->fetchrow_array; + $LAGagent_log_id[$lagged_ids] = $aryA[0]; + $LAGuser[$lagged_ids] = $aryA[1]; + $lagged_ids++; + } + $sthA->finish(); + $lagged_ids=0; + while ($sthArowsL > $lagged_ids) + { + $stmtA = "UPDATE vicidial_agent_log set sub_status='LAGGED' where agent_log_id='$LAGagent_log_id[$lagged_ids]';"; + $VLaffected_rows = $dbhA->do($stmtA); + + if ($enable_queuemetrics_logging > 0) + { + $secX = time(); + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='NONE',agent='Agent/$LAGuser[$lagged_ids]',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='LAGGED';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + $lagged_ids++; + } + + $stmtA = "UPDATE vicidial_live_agents set status='PAUSED',random_id='10' where server_ip='$server_ip' and last_update_time < '$PDtsSQLdate' and status NOT IN('PAUSED');"; + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| lagged call vla agent PAUSED $affected_rows|$VLaffected_rows|$PDtsSQLdate|$BDtsSQLdate|$tsSQLdate|"; + &event_logger; + + if ($affected_rows > 0) + { + @VALOuser=@MT; @VALOcampaign=@MT; @VALOtimelog=@MT; @VALOextension=@MT; + $logcount=0; + $stmtA = "SELECT user,campaign_id,last_update_time,extension FROM vicidial_live_agents where server_ip='$server_ip' and status = 'PAUSED' and random_id='10' order by last_update_time desc limit $affected_rows"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VALOuser[$logcount] = $aryA[0]; + $VALOcampaign[$logcount] = $aryA[1]; + $VALOtimelog[$logcount] = $aryA[2]; + $VALOextension[$logcount] = $aryA[3]; + $logcount++; + $rec_count++; + } + $sthA->finish(); + $logrun=0; + foreach(@VALOuser) + { + $VALOuser_group=''; + $stmtA = "SELECT user_group FROM vicidial_users where user='$VALOuser[$logrun]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $UGrec_count=0; + while ($sthArows > $UGrec_count) + { + @aryA = $sthA->fetchrow_array; + $VALOuser_group = $aryA[0]; + $UGrec_count++; + } + $sthA->finish(); + $stmtA = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VALOuser[$logrun]','LOGOUT','$VALOcampaign[$logrun]','$SQLdate','$now_date_epoch','$VALOuser_group');"; + $affected_rows = $dbhA->do($stmtA); + + if ($enable_queuemetrics_logging > 0) + { + $secX = time(); + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $agents='@agents'; + $time_logged_in=''; + $stmtB = "SELECT time_id FROM queue_log where agent='Agent/$VALOuser[$logrun]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $time_logged_in = $aryB[0]; + } + $sthB->finish(); + + $time_logged_in = ($secX - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + $LOGOFFtime = ($secX + 1); + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$LOGOFFtime',call_id='NONE',queue='NONE',agent='Agent/$VALOuser[$logrun]',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VALOuser[$logrun]$agents',data2='$time_logged_in';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + $event_string = "| lagged agent LOGOUT entry inserted $VALOuser[$logrun]|$VALOcampaign[$logrun]|$VALOextension[$logcount]|"; + &event_logger; + + $logrun++; + } + } + } + + + + ### delete call records that are SENT for over 2 minutes + $stmtA = "DELETE FROM vicidial_auto_calls where server_ip='$server_ip' and call_time < '$XDSQLdate' and status NOT IN('XFER','CLOSER','LIVE','IVR')"; + $VACaffected_rows = $dbhA->do($stmtA); + + if ($VACaffected_rows > 0) + { + $event_string = "| lagged call vac agent DELETED $VACaffected_rows|$XDSQLdate|"; + &event_logger; + } + + + ### For debugging purposes, try to grab Jammed calls and log them to jam logfile + if ($useJAMdebugFILE) + { + $stmtA = "SELECT auto_call_id,server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage,last_update_time,alt_dial,queue_priority,agent_only,agent_grab FROM vicidial_auto_calls where server_ip='$server_ip' and last_update_time < '$BDtsSQLdate' and status IN('LIVE')"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $JAMrec_count=0; + while ($sthArows > $JAMrec_count) + { + @aryA = $sthA->fetchrow_array; + $jam_string = "$JAMrec_count|$BDtsSQLdate| |$aryA[0]|$aryA[1]|$aryA[2]|$aryA[3]|$aryA[4]|$aryA[5]|$aryA[6]|$aryA[7]|$aryA[8]|$aryA[9]|$aryA[10]|$aryA[11]|$aryA[12]|$aryA[13]|$aryA[14]|"; + &jam_event_logger; + $JAMrec_count++; + } + $sthA->finish(); + } + + ### find call records that are LIVE and not updated for over 10 seconds + $stmtA = "SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where server_ip='$server_ip' and last_update_time < '$BDtsSQLdate' and status IN('LIVE','IVR');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $auto_call_id = $aryA[0]; + $CLlead_id = $aryA[1]; + $CLphone_number = $aryA[2]; + $CLstatus = $aryA[3]; + $CLcampaign_id = $aryA[4]; + $CLphone_code = $aryA[5]; + $CLalt_dial = $aryA[6]; + $CLstage = $aryA[7]; + $CLcallerid = $aryA[8]; + $CLuniqueid = $aryA[9]; + $rec_count++; + } + $sthA->finish(); + + ### delete call records that are LIVE and not updated for over 10 seconds + $rec_count=0; + while ($sthArows > $rec_count) + { + $stmtA = "DELETE from vicidial_auto_calls where auto_call_id='$auto_call_id'"; + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| lagged call vdac call DELETED $affected_rows|$BDtsSQLdate|$auto_call_id|$CLcallerid|$CLuniqueid|$CLphone_number|$CLstatus|"; + &event_logger; + + if ( ($affected_rows > 0) && ($CLlead_id > 0) ) + { + $xCLlist_id=0; + $stmtA="SELECT list_id from vicidial_list where lead_id='$CLlead_id' limit 1;"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsVLL=$sthA->rows; + if ($sthArowsVLL > 0) + { + @aryA = $sthA->fetchrow_array; + $xCLlist_id = $aryA[0]; + } + $sthA->finish(); + + $jam_string = "| lagged call vdac call DELETED $affected_rows|$BDtsSQLdate|$auto_call_id|$CLcallerid|$CLuniqueid|$CLphone_number|$CLstatus|$xCLlist_id|"; + &jam_event_logger; + + $CLstage =~ s/LIVE|-//gi; + if ($CLstage < 0.25) {$CLstage=0;} + + $end_epoch = $now_date_epoch; + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed,length_in_sec,end_epoch,alt_dial,list_id) values('$CLuniqueid','$CLlead_id','$CLcampaign_id','$SQLdate','$now_date_epoch','DROP','$CLphone_code','$CLphone_number','VDAD','N','$CLstage','$end_epoch','$CLalt_dial','$xCLlist_id')"; + if($M){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| dead NA call added to log $CLuniqueid|$CLlead_id|$CLphone_number|$CLstatus|DROP|$affected_rows|"; + &event_logger; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + ### find original queue position of the call + $queue_position=1; + $stmtA = "SELECT queue_position,call_date FROM vicidial_closer_log where lead_id='$CLlead_id' and campaign_id='$CLcampaign_id' and call_date > \"$RSQLdate\" order by closecallid desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $queue_position = $aryA[0]; + $VCLcall_date = $aryA[1]; + } + $sthA->finish(); + + ### find current number of calls in this queue to find position when channel hung up + $current_position=1; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id='$CLcampaign_id' and call_time < '$VCLcall_date';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $current_position = ($aryA[0] + 1); + } + $sthA->finish(); + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$CLcallerid',queue='$CLcampaign_id',agent='NONE',verb='ABANDON',data1='$current_position',data2='$queue_position',data3='$CLstage',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + } + + $rec_count++; + } + $sthA->finish(); + + + if ($LUcount > 0) + { + chop($lists_update); + $stmtA = "UPDATE vicidial_lists SET list_lastcalldate='$SQLdate' where list_id IN($lists_update);"; + $affected_rows = $dbhA->do($stmtA); + $event_string = "| lastcalldate UPDATED $affected_rows|$lists_update|"; + &event_logger; + } + + if ($CPcount > 0) + { + chop($campaigns_update); + $stmtA = "UPDATE vicidial_campaigns SET campaign_logindate='$SQLdate' where campaign_id IN($campaigns_update);"; + $affected_rows = $dbhA->do($stmtA); + $event_string = "| logindate UPDATED $affected_rows|$campaigns_update|"; + &event_logger; + } + + + ############################################################################### + ###### last, wait for a little bit and repeat the loop + ############################################################################### + + ### sleep for 2 and a half seconds before beginning the loop again + usleep(1*$loop_delay*1000); + + $endless_loop--; + if($DB){print STDERR "\nloop counter: |$endless_loop|\n";} + + ### putting a blank file called "VDAD.kill" in the directory will automatically safely kill this program + if (-e "$PATHhome/VDAD.kill") + { + unlink("$PATHhome/VDAD.kill"); + $endless_loop=0; + $one_day_interval=0; + print "\nPROCESS KILLED MANUALLY... EXITING\n\n" + } + if ($endless_loop =~ /0$/) # run every ten cycles (about 25 seconds) + { + ### Grab Server values from the database + $stmtA = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = $aryA[0]; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } + $sthA->finish(); + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = $aryA[0]; + $queuemetrics_server_ip = $aryA[1]; + $queuemetrics_dbname = $aryA[2]; + $queuemetrics_login= $aryA[3]; + $queuemetrics_pass = $aryA[4]; + $queuemetrics_log_id = $aryA[5]; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + ### delete call records that are LIVE for over 100 minutes + $stmtA = "DELETE FROM vicidial_auto_calls where server_ip='$server_ip' and call_time < '$TDSQLdate' and status NOT IN('XFER','CLOSER')"; + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| lagged call vac agent DELETED $affected_rows|$TDSQLdate|LIVE|"; + &event_logger; + + ### Grab Server values from the database in case they've changed + $stmtA = "SELECT max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBmax_vicidial_trunks = $aryA[0]; + $DBanswer_transfer_agent = $aryA[1]; + $DBSERVER_GMT = $aryA[2]; + $DBext_context = $aryA[3]; + $max_vicidial_trunks = $DBmax_vicidial_trunks; + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + } + $sthA->finish(); + + $event_string = "| updating server parameters $max_vicidial_trunks|$answer_transfer_agent|$SERVER_GMT|$ext_context|"; + &event_logger; + + &get_time_now; + + #@psoutput = `/bin/ps -f --no-headers -A`; + @psoutput = `/bin/ps -o "%p %a" --no-headers -A`; + + $running_listen = 0; + + $i=0; + foreach (@psoutput) + { + chomp($psoutput[$i]); + + @psline = split(/\/usr\/bin\/perl /,$psoutput[$i]); + + if ($psline[1] =~ /AST_manager_li/) {$running_listen++;} + + $i++; + } + + if (!$running_listen) + { + $endless_loop=0; + $one_day_interval=0; + print "\nPROCESS KILLED NO LISTENER RUNNING... EXITING\n\n"; + } + + if($DB){print "checking to see if listener is dead |$running_listen|\n";} + } + + $bad_grabber_counter=0; + + $stat_count++; + } + + + if($DB){print "DONE... Exiting... Goodbye... See you later... Not really, initiating next loop...\n";} + + $event_string='HANGING UP|'; + &event_logger; + + $one_day_interval--; + + } + +$event_string='CLOSING DB CONNECTION|'; +&event_logger; + + +$dbhA->disconnect(); + + +if($DB){print "DONE... Exiting... Goodbye... See you later... Really I mean it this time\n";} + + +exit; + + + + + + + + + + + + + +sub get_time_now #get the current date and time and epoch for logging call lengths and datetimes + { + $secX = time(); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX); + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + if ($isdst) {$LOCAL_GMT_OFF++;} + + $GMT_now = ($secX - ($LOCAL_GMT_OFF * 3600)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($GMT_now); + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + + if ($DB) {print "TIME DEBUG: $LOCAL_GMT_OFF_STD|$LOCAL_GMT_OFF|$isdst| GMT: $hour:$min\n";} + + ($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) {$hour = "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"; + $file_date = "$year-$mon-$mday"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + + $BDtarget = ($secX - 10); + ($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); + $Byear = ($Byear + 1900); + $Bmon++; + if ($Bmon < 10) {$Bmon = "0$Bmon";} + if ($Bmday < 10) {$Bmday = "0$Bmday";} + if ($Bhour < 10) {$Bhour = "0$Bhour";} + if ($Bmin < 10) {$Bmin = "0$Bmin";} + if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + $PDtarget = ($secX - 30); + ($Psec,$Pmin,$Phour,$Pmday,$Pmon,$Pyear,$Pwday,$Pyday,$Pisdst) = localtime($PDtarget); + $Pyear = ($Pyear + 1900); + $Pmon++; + if ($Pmon < 10) {$Pmon = "0$Pmon";} + if ($Pmday < 10) {$Pmday = "0$Pmday";} + if ($Phour < 10) {$Phour = "0$Phour";} + if ($Pmin < 10) {$Pmin = "0$Pmin";} + if ($Psec < 10) {$Psec = "0$Psec";} + $PDtsSQLdate = "$Pyear$Pmon$Pmday$Phour$Pmin$Psec"; + $halfminSQLdate = "$Pyear-$Pmon-$Pmday $Phour:$Pmin:$Psec"; + + $XDtarget = ($secX - 120); + ($Xsec,$Xmin,$Xhour,$Xmday,$Xmon,$Xyear,$Xwday,$Xyday,$Xisdst) = localtime($XDtarget); + $Xyear = ($Xyear + 1900); + $Xmon++; + if ($Xmon < 10) {$Xmon = "0$Xmon";} + if ($Xmday < 10) {$Xmday = "0$Xmday";} + if ($Xhour < 10) {$Xhour = "0$Xhour";} + if ($Xmin < 10) {$Xmin = "0$Xmin";} + if ($Xsec < 10) {$Xsec = "0$Xsec";} + $XDSQLdate = "$Xyear-$Xmon-$Xmday $Xhour:$Xmin:$Xsec"; + + $TDtarget = ($secX - 6000); + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDtsSQLdate = "$Tyear$Tmon$Tmday$Thour$Tmin$Tsec"; + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + } + + + +sub event_logger + { + if ($DB) {print "$now_date|$event_string|\n";} + if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$VDADLOGfile") + || die "Can't open $VDADLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } + +sub jam_event_logger + { + if ($DB) {print "$now_date|$jam_string|\n";} + if ($useJAMdebugFILE) + { + ### open the log file for writing ### + open(Jout, ">>$JAMdebugFILE") + || die "Can't open $JAMdebugFILE: $!\n"; + print Jout "$now_date|$jam_string|\n"; + close(Jout); + } + $jam_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDauto_dial_FILL.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDauto_dial_FILL.pl new file mode 100644 index 00000000..839cbcdc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDauto_dial_FILL.pl @@ -0,0 +1,1047 @@ +#!/usr/bin/perl +# +# AST_VDauto_dial_FILL.pl version 2.2.0 *DBI-version* +# +# DESCRIPTION: +# Places auto_dial calls on the VICIDIAL dialer system across all servers only +# for campaigns that have a shortfall in number of lines dialed. +# +# Script needs to be started by ADMIN_keepalive_ALL.pl script (option 7) +# +# Not for use in systems with only one Asterisk/VICIDIAL server +# +# Should only be run on one server in a multi-server Asterisk/VICIDIAL cluster +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG: +# 61115-1246 - First build, framework setup, non-functional +# 61120-2008 - second alpha version, functional and tested in production +# 70205-1425 - Added code for last called date update +# 71030-2054 - Added hopper priority sorting +# 71111-2349 - fixed overdialing bug +# 80227-0406 - fixed auto-alt-dial and added queue_priority +# 80713-0624 - Added vicidial_list_last_local_call_time field +# 80831-0400 - Added new alt-dial options +# 81210-1938 - Fixed callerIDnumber bug +# 90306-1844 - Added configurable calls-per-second option +# 90729-0611 - Added vicidial_balance_rank option +# 90924-1519 - Added List callerid override option +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n [--delay=XXX] = delay of XXX seconds per loop, default 2.5 seconds\n\n"; + } + else + { + if ($args =~ /--delay=/i) + { + @data_in = split(/--delay=/,$args); + $loop_delay = $data_in[1]; + print " LOOP DELAY OVERRIDE!!!!! = $loop_delay seconds\n\n"; + $loop_delay = ($loop_delay * 1000); + } + else + { + $loop_delay = '2500'; + } + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag, set to 0 for no debug messages + print "\n-- DEBUG --\n\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + print "no command line options set\n"; + $loop_delay = '2500'; + $DB=1; + } +### end parsing run-time options ### + + +# constants +$US='__'; +$MT[0]=''; +$RECcount=''; ### leave blank for no REC count +$RECprefix='7'; ### leave blank for no REC prefix + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + + &get_time_now; # update time/date variables + +if (!$VDADLOGfile) {$VDADLOGfile = "$PATHlogs/vdautodial_FILL.$year-$mon-$mday";} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + + ### connect to MySQL database defined in the conf file + $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context,vd_server_logs FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBtelnet_host = "$aryA[0]"; + $DBtelnet_port = "$aryA[1]"; + $DBASTmgrUSERNAME = "$aryA[2]"; + $DBASTmgrSECRET = "$aryA[3]"; + $DBASTmgrUSERNAMEupdate = "$aryA[4]"; + $DBASTmgrUSERNAMElisten = "$aryA[5]"; + $DBASTmgrUSERNAMEsend = "$aryA[6]"; + $DBmax_vicidial_trunks = "$aryA[7]"; + $DBanswer_transfer_agent= "$aryA[8]"; + $DBSERVER_GMT = "$aryA[9]"; + $DBext_context = "$aryA[10]"; + $DBvd_server_logs = "$aryA[11]"; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } +$sthA->finish(); + + $event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|'; + &event_logger; + +$one_day_interval = 12; # 1 month loops for one year +while($one_day_interval > 0) + { + + $endless_loop=5760000; # 30 days minutes at XXX seconds per loop + $stat_count=1; + + while($endless_loop > 0) + { + &get_time_now; + + $VDADLOGfile = "$PATHlogs/vdautodial_FILL.$year-$mon-$mday"; + + ############################################################################### + ###### first figure out how many calls should be placed for each campaign per server + ############################################################################### + @DBfill_campaign=@MT; + @DBfill_shortage=@MT; + @DBfill_tally=@MT; + @DBfill_needed=@MT; + @DBfill_current_balance=@MT; + @DBlive_campaign=@MT; + @DBlive_conf_exten=@MT; + @DBlive_status=@MT; + @DBcampaigns=@MT; + @DBIPaddress=@MT; + @DBIPcampaign=@MT; + @DBIPactive=@MT; + @DBIPvdadexten=@MT; + @DBIPcount=@MT; + @DBIPACTIVEcount=@MT; + @DBIPINCALLcount=@MT; + @DBIPadlevel=@MT; + @DBIPdialtimeout=@MT; + @DBIPdialprefix=@MT; + @DBIPcampaigncid=@MT; + @DBIPexistcalls=@MT; + @DBIPgoalcalls=@MT; + @DBIPmakecalls=@MT; + @DBIPlivecalls=@MT; + @DBIPclosercamp=@MT; + @DBIPomitcode=@MT; + @DBIPtrunk_shortage=@MT; + @DBIPold_trunk_shortage=@MT; + @DBIPserver_trunks_limit=@MT; + @DBIPserver_trunks_other=@MT; + @DBIPserver_trunks_allowed=@MT; + @DBIPqueue_priority=@MT; + + $active_line_counter=0; + $camp_counter=0; + $total_shortage=0; + $balance_servers=0; + $lists_update = ''; + $LUcount=0; + + $stmtA = "SELECT count(*) FROM servers where vicidial_balance_active = 'Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $balance_servers = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + ##### Get a listing of the campaigns that have shortages of trunks + $stmtA = "SELECT campaign_id,sum(local_trunk_shortage) FROM vicidial_campaign_server_stats where update_time > '$XDSQLdate' and local_trunk_shortage > 0 group by campaign_id;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBfill_campaign[$camp_counter] = "$aryA[0]"; + $DBfill_shortage[$camp_counter] = "$aryA[1]"; + $total_shortage = ($total_shortage + $aryA[1]); + if($DB) {print "$DBfill_campaign[$camp_counter]: $DBfill_shortage[$camp_counter]\n";} + + $camp_counter++; + $rec_count++; + } + $sthA->finish(); + + ##### Get maximum calls per second that this process can send out + $stmtA = "SELECT outbound_calls_per_second FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $outbound_calls_per_second = "$aryA[0]"; + } + $sthA->finish(); + + if ( ($outbound_calls_per_second > 0) && ($outbound_calls_per_second < 201) ) + {$per_call_delay = (1000 / $outbound_calls_per_second);} + else + {$per_call_delay = '25';} + + $event_string ="SERVER CALLS PER SECOND MAXIMUM SET TO: $outbound_calls_per_second |$per_call_delay|\n"; + $event_string.="SERVERS WITH TRUNK BALANCE: $balance_servers\n"; + $event_string.="CAMPAIGNS WITH TRUNK SHORTAGE: $camp_counter| TOTAL SHORTAGE: $total_shortage"; + &event_logger; + + + + ################################################################################## + ##### START LOOP IF THERE ARE BALANCE SERVERS AND THERE ARE SHORTAGES + ################################################################################## + if ( ($balance_servers > 0) && ($camp_counter > 0) ) + { + $camp_CIPct = 0; + foreach(@DBfill_campaign) + { + $camp_counter=0; + $DB_balance_fill=0; + $VAC_balance_fill=0; + $AVAIL_balance_servers=0; + $DBfill_tally[$camp_CIPct]=0; + + ### grab the dial_level and multiply by active agents to get your goalcalls + $DBIPadlevel[$camp_CIPct]=0; + $stmtA = "SELECT dial_timeout,dial_prefix,campaign_cid,active,campaign_vdad_exten,omit_phone_code,auto_alt_dial,queue_priority FROM vicidial_campaigns where campaign_id='$DBfill_campaign[$camp_CIPct]'"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $active_only=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBIPdialtimeout[$camp_CIPct] = "$aryA[0]"; + $DBIPdialprefix[$camp_CIPct] = "$aryA[1]"; + $DBIPcampaigncid[$camp_CIPct] = "$aryA[2]"; + $DBIPactive[$camp_CIPct] = "$aryA[3]"; + $DBIPvdadexten[$camp_CIPct] = "$aryA[4]"; + $omit_phone_code = "$aryA[5]"; + if ($omit_phone_code =~ /Y/) {$DBIPomitcode[$camp_CIPct] = 1;} + else {$DBIPomitcode[$camp_CIPct] = 0;} + $DBIPautoaltdial[$camp_CIPct] = "$aryA[6]"; + $DBIPqueue_priority[$camp_CIPct] = "$aryA[7]"; + + $rec_count++; + } + $sthA->finish(); + + $stmtA = "SELECT balance_trunk_fill FROM vicidial_campaign_stats where campaign_id='$DBfill_campaign[$camp_CIPct]'"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DB_balance_fill = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where campaign_id='$DBfill_campaign[$camp_CIPct]' and call_type='OUTBALANCE';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VAC_balance_fill = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + $DBfill_current_balance[$camp_CIPct] = "$VAC_balance_fill"; + + $event_string=" CAMPAIGN: $DBfill_campaign[$camp_CIPct]\n"; + $event_string.="DB_balance_fill: $DB_balance_fill VAC_balance_fill: $VAC_balance_fill\n"; + + $DBfill_needed[$camp_CIPct] = ($DBfill_shortage[$camp_CIPct] - $VAC_balance_fill); + $event_string.="Additional Balance Calls Needed For This Campaign: $DBfill_needed[$camp_CIPct]\n"; + + + ##### Get a listing of the servers in the campaign that have shortages of trunks + $full_servers='|'; + $full_serversSQL=''; + $stmtA = "SELECT server_ip FROM vicidial_campaign_server_stats where update_time > '$XDSQLdate' and local_trunk_shortage > 0 and campaign_id='$DBfill_campaign[$camp_CIPct]'"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $full_servers .= "$aryA[0]|"; + $full_serversSQL .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + chop($full_serversSQL); + if (length($full_serversSQL)<6) {$full_serversSQL="''";} + $event_string.="SERVERS WITH TRUNK FULL for $DBfill_campaign[$camp_CIPct]: $full_servers |$full_serversSQL|"; + &event_logger; + + ##### Check if there are any balance-enabled servers outside of the ones with trunk shortage + $stmtA = "SELECT count(*) FROM servers where vicidial_balance_active = 'Y' and server_ip NOT IN($full_serversSQL);"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $AVAIL_balance_servers = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + ################################################################################## + ##### CONTINUE IF THERE ARE BALANCE SERVERS AVAILABLE THAT ARE NOT IN TRUNK SHORTAGE + ################################################################################## + if ($AVAIL_balance_servers > 0) + { + $event_string="Balance Servers available: $AVAIL_balance_servers"; + &event_logger; + + $DB_camp_servers=0; + @DB_camp_server_server_ip=@MT; + @DB_camp_server_max_vicidial_trunks=@MT; + @DB_camp_server_balance_trunks_offlimits=@MT; + @DB_camp_server_dedicated_trunks=@MT; + @DB_camp_server_trunk_restriction=@MT; + @DB_NONcamp_server_dedicated_trunks=@MT; + @DB_camp_server_available=@MT; + @DB_camp_server_trunks_to_dial=@MT; + ##### Get the trunk settings for the campaign across all servers + $stmtA = "SELECT server_ip,max_vicidial_trunks,balance_trunks_offlimits,vicidial_balance_rank FROM servers where vicidial_balance_active = 'Y' and server_ip NOT IN($full_serversSQL) order by vicidial_balance_rank desc, server_ip;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DB_camp_server_server_ip[$DB_camp_servers] = "$aryA[0]"; + $DB_camp_server_max_vicidial_trunks[$DB_camp_servers] = "$aryA[1]"; + $DB_camp_server_balance_trunks_offlimits[$DB_camp_servers] = "$aryA[2]"; + $DB_camp_servers++; + $rec_count++; + } + $sthA->finish(); + + + ################################################################################## + ##### LOOP THROUGH SERVERS, CALCULATE TRUNKS FOR EACH FOR THIS CAMPAIGN + ################################################################################## + $server_CIPct = 0; + foreach(@DB_camp_server_server_ip) + { + $DB_camp_server_dedicated_trunks[$server_CIPct]=0; + $DB_camp_server_trunk_restriction[$server_CIPct]=0; + $DB_NONcamp_server_dedicated_trunks[$server_CIPct]=0; + ##### Get the campaign-specific trunk settings for the campaign on this server + $stmtA = "SELECT dedicated_trunks,trunk_restriction FROM vicidial_server_trunks where server_ip='$DB_camp_server_server_ip[$server_CIPct]' and campaign_id='$DBfill_campaign[$camp_CIPct]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DB_camp_server_dedicated_trunks[$server_CIPct] = "$aryA[0]"; + $DB_camp_server_trunk_restriction[$server_CIPct] = "$aryA[1]"; + $rec_count++; + } + $sthA->finish(); + + ##### Get the campaign-specific dedicated trunks count for other campaigns on this server + $stmtA = "SELECT sum(dedicated_trunks) FROM vicidial_server_trunks where server_ip='$DB_camp_server_server_ip[$server_CIPct]' and campaign_id NOT IN('$DBfill_campaign[$camp_CIPct]');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DB_NONcamp_server_dedicated_trunks[$server_CIPct] = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + $VAC_server_camp=0; + $VAC_server_NONcamp=0; + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where server_ip='$DB_camp_server_server_ip[$server_CIPct]' and campaign_id='$DBfill_campaign[$camp_CIPct]' and call_type='OUTBALANCE';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VAC_server_BALcamp = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where server_ip='$DB_camp_server_server_ip[$server_CIPct]' and campaign_id='$DBfill_campaign[$camp_CIPct]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VAC_server_camp = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where server_ip='$DB_camp_server_server_ip[$server_CIPct]' and campaign_id!='$DBfill_campaign[$camp_CIPct]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VAC_server_NONcamp = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + if($DB) {print "VAC CALLS: |$VAC_server_camp|$VAC_server_NONcamp|$VAC_server_BALcamp|\n";} + if($DB) {print "SETTINGS: |$DB_camp_server_dedicated_trunks[$server_CIPct]|$DB_camp_server_max_vicidial_trunks[$server_CIPct]|$DB_camp_server_balance_trunks_offlimits[$server_CIPct]||\n";} + + if ($DB_camp_server_trunk_restriction[$server_CIPct] =~ /MAXIMUM_LIMIT/) + { + $DB_camp_server_available[$server_CIPct] = $DB_camp_server_dedicated_trunks[$server_CIPct]; + } + else + { + $DB_camp_server_available[$server_CIPct] = ( ($DB_camp_server_max_vicidial_trunks[$server_CIPct] - $DB_camp_server_balance_trunks_offlimits[$server_CIPct]) - $DB_NONcamp_server_dedicated_trunks[$server_CIPct]); + } + $temp_tally = ($DBfill_needed[$camp_CIPct] - $DBfill_tally[$camp_CIPct]); + $temp_avail = ( ($DB_camp_server_max_vicidial_trunks[$server_CIPct] - $VAC_server_camp) - $VAC_server_NONcamp); + $DB_camp_server_available[$server_CIPct] = ($DB_camp_server_available[$server_CIPct] - $VAC_server_BALcamp); + if ($DB_camp_server_available[$server_CIPct] < 0) {$DB_camp_server_available[$server_CIPct]=0;} + + if($DB) {print "TEMPVALS: |$temp_tally|$temp_avail|$DB_camp_server_available[$server_CIPct]||\n";} + if ($DB_camp_server_available[$server_CIPct] >= $temp_tally) + {$DB_camp_server_trunks_to_dial[$server_CIPct] = $temp_tally;} + else + {$DB_camp_server_trunks_to_dial[$server_CIPct] = $DB_camp_server_available[$server_CIPct];} + + if ($temp_avail < $DB_camp_server_trunks_to_dial[$server_CIPct]) + {$DB_camp_server_trunks_to_dial[$server_CIPct] = $temp_avail;} + + $DBfill_tally[$camp_CIPct] = ($DBfill_tally[$camp_CIPct] + $DB_camp_server_trunks_to_dial[$server_CIPct]); + + $event_string=" Server: $DB_camp_server_server_ip[$server_CIPct] AVAIL: $DB_camp_server_available[$server_CIPct] DIAL: $DB_camp_server_trunks_to_dial[$server_CIPct]"; + $event_string.=" Campaign Dial Fill tally: $DBfill_tally[$camp_CIPct]/$DBfill_needed[$camp_CIPct]"; + &event_logger; + + + $stmtA = "SELECT count(*) FROM vicidial_live_agents where campaign_id='$DBfill_campaign[$camp_CIPct]' and status NOT IN('PAUSED');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $LVA_count = $aryA[0]; + $rec_count++; + } + $sthA->finish(); + + if ($LVA_count > 0) + { + ################################################################################## + ##### PLACE THE CALLS + ################################################################################## + $event_string="$DBfill_campaign[$camp_CIPct] $DB_camp_server_server_ip[$server_CIPct]: CALLING"; + &event_logger; + $call_CMPIPct=0; + $lead_id_call_list='|'; + my $UDaffected_rows=0; + if ($call_CMPIPct < $DB_camp_server_trunks_to_dial[$server_CIPct]) + { + $stmtA = "UPDATE vicidial_hopper set status='QUEUE', user='VDAD_$DB_camp_server_server_ip[$server_CIPct]' where campaign_id='$DBfill_campaign[$camp_CIPct]' and status='READY' order by priority desc,hopper_id LIMIT $DB_camp_server_trunks_to_dial[$server_CIPct]"; + print "|$stmtA|\n"; + $UDaffected_rows = $dbhA->do($stmtA); + print "hopper rows updated to QUEUE: |$UDaffected_rows|\n"; + + if ($UDaffected_rows) + { + $lead_id=''; $phone_code=''; $phone_number=''; $called_count=''; + while ($call_CMPIPct < $UDaffected_rows) + { + $stmtA = "SELECT lead_id,alt_dial FROM vicidial_hopper where campaign_id='$DBfill_campaign[$camp_CIPct]' and status='QUEUE' and user='VDAD_$DB_camp_server_server_ip[$server_CIPct]' order by priority desc,hopper_id LIMIT 1"; + print "|$stmtA|\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $lead_id = "$aryA[0]"; + $alt_dial = "$aryA[1]"; + $rec_count++; + } + $sthA->finish(); + + if ($lead_id_call_list =~ /\|$lead_id\|/) + { + print "!!!!!!!!!!!!!!!!duplicate lead_id for this run: |$lead_id| $lead_id_call_list\n"; + if ($SYSLOG) + { + open(DUPout, ">>$PATHlogs/VDAD_DUPLICATE.$file_date") + || die "Can't open $PATHlogs/VDAD_DUPLICATE.$file_date: $!\n"; + print DUPout "$now_date-----$lead_id_call_list-----$lead_id\n"; + close(DUPout); + } + } + else + { + $stmtA = "UPDATE vicidial_hopper set status='INCALL' where lead_id='$lead_id'"; + print "|$stmtA|\n"; + $UQaffected_rows = $dbhA->do($stmtA); + print "hopper row updated to INCALL: |$UQaffected_rows|$lead_id|\n"; + + $stmtA = "SELECT list_id,gmt_offset_now,called_since_last_reset,phone_code,phone_number,address3,alt_phone,called_count FROM vicidial_list where lead_id='$lead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $rec_countCUSTDATA=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $list_id = $aryA[0]; + $gmt_offset_now = $aryA[1]; + $called_since_last_reset = $aryA[2]; + $phone_code = $aryA[3]; + $phone_number = $aryA[4]; + $address3 = $aryA[5]; + $alt_phone = $aryA[6]; + $called_count = $aryA[7]; + + $rec_countCUSTDATA++; + $rec_count++; + } + $sthA->finish(); + + if ($rec_countCUSTDATA) + { + $campaign_cid_override=''; + ### gather list_id overrides + $stmtA = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsL=$sthA->rows; + if ($sthArowsL > 0) + { + @aryA = $sthA->fetchrow_array; + $campaign_cid_override = $aryA[0]; + } + $sthA->finish(); + + ### update called_count + $called_count++; + if ($called_since_last_reset =~ /^Y/) + { + if ($called_since_last_reset =~ /^Y$/) {$CSLR = 'Y1';} + else + { + $called_since_last_reset =~ s/^Y//gi; + $called_since_last_reset++; + $CSLR = "Y$called_since_last_reset"; + } + } + else {$CSLR = 'Y';} + + $LLCT_DATE_offset = ($LOCAL_GMT_OFF - $gmt_offset_now); + $LLCT_DATE_offset_epoch = ( $secX - ($LLCT_DATE_offset * 3600) ); + ($Lsec,$Lmin,$Lhour,$Lmday,$Lmon,$Lyear,$Lwday,$Lyday,$Lisdst) = localtime($LLCT_DATE_offset_epoch); + $Lyear = ($Lyear + 1900); + $Lmon++; + if ($Lmon < 10) {$Lmon = "0$Lmon";} + if ($Lmday < 10) {$Lmday = "0$Lmday";} + if ($Lhour < 10) {$Lhour = "0$Lhour";} + if ($Lmin < 10) {$Lmin = "0$Lmin";} + if ($Lsec < 10) {$Lsec = "0$Lsec";} + $LLCT_DATE = "$Lyear-$Lmon-$Lmday $Lhour:$Lmin:$Lsec"; + + if ( ($alt_dial =~ /ALT|ADDR3|X/) && ($DBIPautoaltdial[$user_CIPct] =~ /ALT|ADDR|X/) ) + { + if ( ($alt_dial =~ /ALT/) && ($DBIPautoaltdial[$user_CIPct] =~ /ALT/) ) + { + $alt_phone =~ s/\D//gi; + $phone_number = $alt_phone; + } + if ( ($alt_dial =~ /ADDR3/) && ($DBIPautoaltdial[$user_CIPct] =~ /ADDR3/) ) + { + $address3 =~ s/\D//gi; + $phone_number = $address3; + } + if ( ($alt_dial =~ /^X/) && ($DBIPautoaltdial[$user_CIPct] =~ /^X/) ) + { + if ($alt_dial =~ /LAST/) + { + $stmtA = "SELECT phone_code,phone_number FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = $alt_dial; + $Talt_dial =~ s/\D//gi; + $stmtA = "SELECT phone_code,phone_number FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $phone_code = "$aryA[0]"; + $phone_number = "$aryA[1]"; + $phone_number =~ s/\D//gi; + } + $sthA->finish(); + } + + $stmtA = "UPDATE vicidial_list set called_since_last_reset='$CSLR', called_count='$called_count',user='VDAD',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id'"; + } + else + { + $stmtA = "UPDATE vicidial_list set called_since_last_reset='$CSLR', called_count='$called_count',user='VDAD',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id'"; + } + $affected_rows = $dbhA->do($stmtA); + + $stmtA = "DELETE FROM vicidial_hopper where lead_id='$lead_id'"; + $affected_rows = $dbhA->do($stmtA); + + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + if ($DBIPdialtimeout[$camp_CIPct] > 4) {$Local_dial_timeout = $DBIPdialtimeout[$camp_CIPct];} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (length($DBIPdialprefix[$camp_CIPct]) > 0) {$Local_out_prefix = "$DBIPdialprefix[$camp_CIPct]";} + if (length($DBIPvdadexten[$camp_CIPct]) > 0) {$VDAD_dial_exten = "$DBIPvdadexten[$camp_CIPct]";} + else {$VDAD_dial_exten = "$answer_transfer_agent";} + + if (length($DBIPcampaigncid[$camp_CIPct]) > 6) {$CCID = "$DBIPcampaigncid[$camp_CIPct]"; $CCID_on++;} + if (length($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if ($DBIPdialprefix[$camp_CIPct] =~ /x/i) {$Local_out_prefix = '';} + + if ($RECcount) + { + if ( (length($RECprefix)>0) && ($called_count < $RECcount) ) + {$Local_out_prefix .= "$RECprefix";} + } + $PADlead_id = sprintf("%09s", $lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} + + if ($lists_update !~ /'$list_id'/) {$lists_update .= "'$list_id',"; $LUcount++;} + + $lead_id_call_list .= "$lead_id|"; + + if (length($alt_dial)<1) {$alt_dial='MAIN';} + + ### whether to omit phone_code or not + if ($DBIPomitcode[$camp_CIPct] > 0) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if (length($ext_context) < 1) {$ext_context='default';} + ### use manager middleware-app to connect the next call to the meetme room + # VmmddhhmmssLLLLLLLLL + $VqueryCID = "V$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$VqueryCID\" <$CCID>";} + else {$CIDstring = "$VqueryCID";} + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$DB_camp_server_server_ip[$server_CIPct]','','Originate','$VqueryCID','Exten: $VDAD_dial_exten','Context: $ext_context','Channel: $local_DEF$Ndialstring$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','')"; + $affected_rows = $dbhA->do($stmtA); + + $event_string = "| number call dialed|$DBfill_campaign[$camp_CIPct]|$VqueryCID|$stmtA|$gmt_offset_now|$alt_dial|"; + &event_logger; + + ### insert a SENT record to the vicidial_auto_calls table + $stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type,alt_dial,queue_priority) values('$DB_camp_server_server_ip[$server_CIPct]','$DBfill_campaign[$camp_CIPct]','SENT','$lead_id','$VqueryCID','$phone_code','$phone_number','$SQLdate','OUTBALANCE','$alt_dial','$DBIPqueue_priority[$camp_CIPct]')"; + $affected_rows = $dbhA->do($stmtA); + + ### sleep for 2.5 hundredths of a second to not flood the server with new calls + # usleep(1*25*1000); + usleep(1*$per_call_delay*1000); + } + } + $call_CMPIPct++; + } + } + } + } + else + { + $event_string.="No Agents logged in, not dialing"; + &event_logger; + } + + + + + + $server_CIPct++; + } + + } + else + { + $event_string.="No Balance Servers available that do not have a shortage"; + &event_logger; + } + + $temp_balance_total = ($DBfill_current_balance[$camp_CIPct] + $DBfill_tally[$camp_CIPct]); + if ($DB) {print "CURRENT FILL: $temp_balance_total = ($DBfill_current_balance[$camp_CIPct] + $DBfill_tally[$camp_CIPct])\n";} + $stmtA = "UPDATE vicidial_campaign_stats SET balance_trunk_fill='$temp_balance_total' where campaign_id='$DBfill_campaign[$camp_CIPct]';"; + $affected_rows = $dbhA->do($stmtA); + + $camp_CIPct++; + } + + } + ################################################################################## + ##### END LOOP IF THERE ARE BALANCE SERVERS AND THERE ARE SHORTAGES + ################################################################################## + else + { + if ($DB) {print "No Balance servers or no shortages\n";} + $stmtA = "UPDATE vicidial_campaign_stats SET balance_trunk_fill='0';"; + $affected_rows = $dbhA->do($stmtA); + + $event_string.="No Balance Servers available or No Shortages"; + &event_logger; + } + + +# so far we have a check of balance servers, a check of shortage servers and we begin traversing the campaigns array +#exit; + + + + + + + &get_time_now; + + + if ($LUcount > 0) + { + chop($lists_update); + $stmtA = "UPDATE vicidial_lists SET list_lastcalldate='$SQLdate' where list_id IN($lists_update);"; + $affected_rows = $dbhA->do($stmtA); + $event_string = "| lastcalldate UPDATED $affected_rows|$lists_update|"; + &event_logger; + } + + ############################################################################### + ###### last, wait for a little bit and repeat the loop + ############################################################################### + + ### sleep for 2 and a half seconds before beginning the loop again + usleep(1*$loop_delay*1000); + + $endless_loop--; + if($DB){print STDERR "\nloop counter: |$endless_loop|\n";} + + ### putting a blank file called "VDADfull.kill" in the directory will automatically safely kill this program + if (-e "$PATHhome/VDADfull.kill") + { + unlink("$PATHhome/VDADfull.kill"); + $endless_loop=0; + $one_day_interval=0; + print "\nPROCESS KILLED MANUALLY... EXITING\n\n" + } + if ($endless_loop =~ /0$/) # run every ten cycles (about 25 seconds) + { + ### Grab Server values from the database + $stmtA = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = "$aryA[0]"; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } + $sthA->finish(); + + ### Grab Server values from the database in case they've changed + $stmtA = "SELECT max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBmax_vicidial_trunks = "$aryA[0]"; + $DBanswer_transfer_agent= "$aryA[1]"; + $DBSERVER_GMT = "$aryA[2]"; + $DBext_context = "$aryA[3]"; + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + $rec_count++; + } + $sthA->finish(); + + $event_string = "| updating server parameters $max_vicidial_trunks|$answer_transfer_agent|$SERVER_GMT|$ext_context|$DBvd_server_logs|$SYSLOG|"; + &event_logger; + &get_time_now; + } + + $stat_count++; + } + + + if($DB){print "DONE... Exiting... Goodbye... See you later... Not really, initiating next loop...\n";} + + $event_string='HANGING UP|'; + &event_logger; + + $one_day_interval--; + + } + +$event_string='CLOSING DB CONNECTION|'; +&event_logger; + + +$dbhA->disconnect(); + + +if($DB){print "DONE... Exiting... Goodbye... See you later... Really I mean it this time\n";} + + +exit; + + + + + + + + + + + + + +sub get_time_now #get the current date and time and epoch for logging call lengths and datetimes + { + $secX = time(); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX); + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + if ($isdst) {$LOCAL_GMT_OFF++;} + + $GMT_now = ($secX - ($LOCAL_GMT_OFF * 3600)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($GMT_now); + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + + if ($DB) {print "TIME DEBUG: $LOCAL_GMT_OFF_STD|$LOCAL_GMT_OFF|$isdst| GMT: $hour:$min\n";} + + ($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) {$hour = "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"; + $file_date = "$year-$mon-$mday"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + + $BDtarget = ($secX - 10); + ($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); + $Byear = ($Byear + 1900); + $Bmon++; + if ($Bmon < 10) {$Bmon = "0$Bmon";} + if ($Bmday < 10) {$Bmday = "0$Bmday";} + if ($Bhour < 10) {$Bhour = "0$Bhour";} + if ($Bmin < 10) {$Bmin = "0$Bmin";} + if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + $PDtarget = ($secX - 30); + ($Psec,$Pmin,$Phour,$Pmday,$Pmon,$Pyear,$Pwday,$Pyday,$Pisdst) = localtime($PDtarget); + $Pyear = ($Pyear + 1900); + $Pmon++; + if ($Pmon < 10) {$Pmon = "0$Pmon";} + if ($Pmday < 10) {$Pmday = "0$Pmday";} + if ($Phour < 10) {$Phour = "0$Phour";} + if ($Pmin < 10) {$Pmin = "0$Pmin";} + if ($Psec < 10) {$Psec = "0$Psec";} + $PDtsSQLdate = "$Pyear$Pmon$Pmday$Phour$Pmin$Psec"; + $halfminSQLdate = "$Pyear-$Pmon-$Pmday $Phour:$Pmin:$Psec"; + + $XDtarget = ($secX - 120); + ($Xsec,$Xmin,$Xhour,$Xmday,$Xmon,$Xyear,$Xwday,$Xyday,$Xisdst) = localtime($XDtarget); + $Xyear = ($Xyear + 1900); + $Xmon++; + if ($Xmon < 10) {$Xmon = "0$Xmon";} + if ($Xmday < 10) {$Xmday = "0$Xmday";} + if ($Xhour < 10) {$Xhour = "0$Xhour";} + if ($Xmin < 10) {$Xmin = "0$Xmin";} + if ($Xsec < 10) {$Xsec = "0$Xsec";} + $XDSQLdate = "$Xyear-$Xmon-$Xmday $Xhour:$Xmin:$Xsec"; + + $TDtarget = ($secX - 600); + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + } + + + + + +sub event_logger + { + if ($DB) {print "$now_date|$event_string|\n";} + if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$VDADLOGfile") + || die "Can't open $VDADLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDhopper.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDhopper.pl new file mode 100644 index 00000000..b133d82a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDhopper.pl @@ -0,0 +1,2145 @@ +#!/usr/bin/perl +# +# AST_VDhopper.pl version 2.2.0 *DBI-version* +# +# DESCRIPTION: +# uses DBD::MySQL to update the VICIDIAL leads hopper for the streamlined +# approach of allocating leads to client machines. +# +# SUMMARY: +# This program was designed for people using the Asterisk PBX with VICIDIAL +# +# For the client to use VICIDIAL, this program must be in the cron running +# every minute +# +# For this program to work you need to have the "asterisk" MySQL database +# created and create the tables listed in the CONF_MySQL.txt file, also make sure +# that the machine running this program has read/write/update/delete access +# to that database +# +# It is recommended that you run this program on the local Asterisk machine +# +# If this script is run ever minute and you are getting close to no leads after +# a minute, you may want to play with the variables below to streamline for +# your usage +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 50810-1613 - Added database server variable definitions lookup +# 60215-1106 - Added Scheduled Callback release functionality +# 60228-1623 - Change Callback activation to set the called_since_last_reset=N +# 60228-1735 - Added hopper gmt validation to remove gmt outside of time range +# 60320-0932 - Added inactive lead list hopper deletion (Thanks Vic Jolin) +# 60322-1030 - Added super debug output +# 60418-0947 - Added lead filter per campaign +# 60509-1416 - Rewrite of local_call_time functions +# 60511-1150 - Added inserts into vicidial_campaign_stats table +# 60609-1451 - Added ability to filter by DNC list vicidial_dnc +# 60614-1159 - Added campaign lead recycling ability +# 60715-2251 - Changed to use /etc/astguiclient.conf for configs +# 60801-1634 - Fixed Callback activation bug 000008 +# 60814-1720 - Added option for no logging to file +# 60822-1527 - Added campaign_stats and logging options for adaptive dialing +# 60925-1330 - Fixed recycling leads issues +# 61110-1513 - Changed Xth NEW to fill to hopper_level with standard if not enough NEW +# 70219-1247 - Changed to use dial_statuses field instead of dial_status_x fields +# 71029-1929 - Added 5th and 6th NEW to list order +# 71030-2043 - Added hopper priority for callbacks +# 80112-0221 - Added 2nd, 3rd,... NEW for LAST NAME/PHONE Sort +# 80125-0821 - Added detail logging of each lead inserted +# 80713-0028 - Changed Recycling methodology +# 80909-1901 - Added support for campaign-specific DNC lists +# 90430-0117 - Added last call time and random sorting options +# 90430-1022 - Changed this script to allow for List Mix ability +# 90601-2111 - Added allow_inactive_list_leads to allow for inactive lists while in List Mix mode +# 90603-1157 - Fixed rare bug in list mix where statuses field do not end with - +# 90608-1201 - Added Drop Lockout Time Campaign setting option +# 90723-0842 - Added no hopper dial option to clear hopper leads +# 90809-0347 - Quick fix for null list_id loading when no active campaign lists +# 90904-1612 - Added timezone ordering +# 90907-2132 - Fixed order issues +# 91020-0054 - Fixed Auto-alt-dial DNC issues +# 91026-1207 - Added AREACODE DNC option +# + +# constants +$DB=0; # Debug flag, set to 0 for no debug messages, On an active system this will generate lots of lines of output per minute +$US='__'; +$MT[0]=''; +#$vicidial_hopper='TEST_vicidial_hopper'; # for testing +$vicidial_hopper='vicidial_hopper'; + +# options +$insert_auto_CB_to_hopper = 1; # set to 1 to automatically insert ANYONE callbacks into the hopper + + +$secT = time(); +$secX = time(); +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +$wtoday = $wday; +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +$file_date = "$year-$mon-$mday"; +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$VDL_date = "$year-$mon-$mday 00:00:01"; + +### get date-time of one hour ago ### +$VDL_hour = ($secX - (60 * 60)); +($Vsec,$Vmin,$Vhour,$Vmday,$Vmon,$Vyear,$Vwday,$Vyday,$Visdst) = localtime($VDL_hour); +$Vyear = ($Vyear + 1900); +$Vmon++; +if ($Vmon < 10) {$Vmon = "0$Vmon";} +if ($Vmday < 10) {$Vmday = "0$Vmday";} +$VDL_hour = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec"; + +### get date-time of half hour ago ### +$VDL_halfhour = ($secX - (30 * 60)); +($Vsec,$Vmin,$Vhour,$Vmday,$Vmon,$Vyear,$Vwday,$Vyday,$Visdst) = localtime($VDL_halfhour); +$Vyear = ($Vyear + 1900); +$Vmon++; +if ($Vmon < 10) {$Vmon = "0$Vmon";} +if ($Vmday < 10) {$Vmday = "0$Vmday";} +$VDL_halfhour = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec"; + +### get date-time of five minutes ago ### +$VDL_five = ($secX - (5 * 60)); +($Vsec,$Vmin,$Vhour,$Vmday,$Vmon,$Vyear,$Vwday,$Vyday,$Visdst) = localtime($VDL_five); +$Vyear = ($Vyear + 1900); +$Vmon++; +if ($Vmon < 10) {$Vmon = "0$Vmon";} +if ($Vmday < 10) {$Vmday = "0$Vmday";} +$VDL_five = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec"; + +### get date-time of one minute ago ### +$VDL_one = ($secX - (1 * 60)); +($Vsec,$Vmin,$Vhour,$Vmday,$Vmon,$Vyear,$Vwday,$Vyday,$Visdst) = localtime($VDL_one); +$Vyear = ($Vyear + 1900); +$Vmon++; +if ($Vmon < 10) {$Vmon = "0$Vmon";} +if ($Vmday < 10) {$Vmday = "0$Vmday";} +$VDL_one = "$Vyear-$Vmon-$Vmday $Vhour:$Vmin:$Vsec"; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + $allow_inactive_list_leads=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options(must stay in this order):\n"; + print " [--debug] = debug\n"; + print " [--debugX] = super debug\n"; + print " [--dbgmt] = show GMT offset of records as they are inserted into hopper\n"; + print " [--dbdetail] = additional level of logging the leads that are inserted into the hopper\n"; + print " [--allow-inactive-list-leads] = do not delete inactive list leads\n"; + print " [-t] = test\n"; + print " [--level=XXX] = force a hopper_level of XXX\n"; + print " [--campaign=XXX] = run for campaign XXX only\n"; + print "\n"; + exit; + } + else + { + if ($args =~ /--campaign=/i) + { + # print "\n|$ARGS|\n\n"; + @data_in = split(/--campaign=/,$args); + $CLIcampaign = $data_in[1]; + $CLIcampaign =~ s/ .*$//gi; + } + else + {$CLIcampaign = '';} + if ($args =~ /--level=/i) + { + @data_in = split(/--level=/,$args); + $CLIlevel = $data_in[1]; + $CLIlevel =~ s/ .*$//gi; + $CLIlevel =~ s/\D//gi; + print "\n-----HOPPER LEVEL OVERRIDE: $CLIlevel -----\n\n"; + } + else + {$CLIlevel = '';} + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /--dbgmt/i) + { + $DB_show_offset=1; + print "\n-----DEBUG GMT -----\n\n"; + } + if ($args =~ /--dbdetail/i) + { + $DB_detail=1; + # print "\n-----DEBUG DETAIL -----\n\n"; + } + if ($args =~ /--allow-inactive-list-leads/i) + { + $allow_inactive_list_leads=1; + # print "\n-----DEBUG DETAIL -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + if ($args =~ /--wipe-hopper-clean/i) + { + $wipe_hopper_clean=1; + } + } + } +else + { + print "no command line options set\n"; + } + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/hopper.$year-$mon-$mday";} +if (!$VDHDLOGfile) {$VDHDLOGfile = "$PATHlogs/hopper-detail.$year-$mon-$mday";} +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +### Grab Server values from the database +$stmtA = "SELECT vd_server_logs,local_gmt FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows==0) {die "Server IP $VARserver_ip does not have an entry in the servers table\n\n";} +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = "$aryA[0]"; + $DBSERVER_GMT = "$aryA[1]"; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + if (length($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + } +$sthA->finish(); + + + +$secX = time(); +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX); +$LOCAL_GMT_OFF = $SERVER_GMT; +$LOCAL_GMT_OFF_STD = $SERVER_GMT; +if ($isdst) {$LOCAL_GMT_OFF++;} + +$GMT_now = ($secX - ($LOCAL_GMT_OFF * 3600)); +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($GMT_now); +$mon++; +$year = ($year + 1900); +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +if ($DB) {print "TIME DEBUG: $LOCAL_GMT_OFF_STD|$LOCAL_GMT_OFF|$isdst| GMT: $hour:$min\n";} + +if ($wipe_hopper_clean) + { + $stmtA = "DELETE from $vicidial_hopper;"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print "Hopper Wiped Clean: $affected_rows\n";} + $event_string = "|HOPPER WIPE CLEAN|"; + &event_logger; + + exit; + } +### Delete leads from inactive lists if there are any +$stmtA = "SELECT list_id FROM vicidial_lists where active='N';"; +if ($DB) {print $stmtA;} +$inactive_lists=''; +$inactive_lists_count=0; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $inactive_lists_count) + { + @aryA = $sthA->fetchrow_array; + $inactive_list = $aryA[0]; + $inactive_lists .= "'$inactive_list',"; + $inactive_lists_count++; + } +$sthA->finish(); +if ($DB) {print "Inactive Lists: $inactive_lists_count\n";} + +if ($inactive_lists_count > 0) + { + chop($inactive_lists); + if ($allow_inactive_list_leads < 1) + { + $stmtA = "DELETE from $vicidial_hopper where list_id IN($inactive_lists);"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print "Inactive List Leads Deleted: $affected_rows |$stmtA|\n";} + $event_string = "|INACTIVE LIST DEL|$affected_rows|"; + &event_logger; + } + } + + +### BEGIN Change CBHOLD status leads to CALLBK if their vicidial_callbacks time has passed +$stmtA = "SELECT count(*) FROM vicidial_callbacks where callback_time <= '$now_date' and status='ACTIVE';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +@aryA = $sthA->fetchrow_array; +$CBHOLD_count = $aryA[0]; +if ($DB) {print "CALLBACK HOLD: $CBHOLD_count|$stmtA|\n";} +$sthA->finish(); + +if ($CBHOLD_count > 0) + { + $update_leads=''; + $cbc=0; + $cba=0; + $stmtA = "SELECT vicidial_callbacks.lead_id,recipient,campaign_id,vicidial_callbacks.list_id,gmt_offset_now,state FROM vicidial_callbacks,vicidial_list where callback_time <= '$now_date' and vicidial_callbacks.status='ACTIVE' and vicidial_callbacks.lead_id=vicidial_list.lead_id;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $lead_ids[$cbc] = $aryA[0]; + $recipient = $aryA[1]; + $update_leads .= "'$lead_ids[$cbc]',"; + if ($recipient =~ /ANYONE/) + { + $CA_lead_id[$cba] = $aryA[0]; + $CA_campaign_id[$cba] = $aryA[2]; + $CA_list_id[$cba] = $aryA[3]; + $CA_gmt_offset_now[$cba] = $aryA[4]; + $CA_state[$cba] = $aryA[5]; + $cba++; + } + $cbc++; + } + $sthA->finish(); + if ($cbc > 0) + { + chop($update_leads); + + $stmtA = "UPDATE vicidial_callbacks set status='LIVE' where lead_id IN($update_leads) and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print "Scheduled Callbacks Activated: $affected_rows\n";} + $event_string = "|CALLBACKS CB ACT |$affected_rows|"; + &event_logger; + } + ### INSERT ANYONE CALLBACKS INTO HOPPER DIRECTLY ### + if ( ($cba > 0) && ($insert_auto_CB_to_hopper) ) + { + if ($DB) {print "ANYONE Scheduled Callbacks to Insert into hopper: $cba\n";} + $event_string = "|ANYONE CB HOPPER |$cba|"; + &event_logger; + $CAu=0; + foreach(@CA_lead_id) + { + $stmtA = "UPDATE vicidial_list set status='CALLBK', called_since_last_reset='N' where lead_id='$CA_lead_id[$CAu]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print "Scheduled Callbacks Activated: $affected_rows\n";} + $event_string = "|CALLBACKS LISTACT|$affected_rows|"; + &event_logger; + + $stmtA = "INSERT INTO $vicidial_hopper SET lead_id='$CA_lead_id[$CAu]',campaign_id='$CA_campaign_id[$CAu]',list_id='$CA_list_id[$CAu]',gmt_offset_now='$CA_gmt_offset_now[$CAu]',user='',state='$CA_state[$CAu]',priority='50';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print "ANYONE Scheduled Callback Inserted into hopper: $affected_rows|$CA_lead_id[$CAu]\n";} + $CAu++; + } + } + } +### END Change CBHOLD status leads to CALLBK if their vicidial_callbacks time has passed + + +### BEGIN Auto-Alt-Dial DNC check and update or delete +### Find out how many leads in the hopper are set to DNC status +$hopper_dnc_count=0; +$stmtA = "SELECT count(*) from $vicidial_hopper where status='DNC';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $hopper_dnc_count = $aryA[0]; + if ($DB) {print " hopper DNC count: $hopper_dnc_count\n";} + if ($DBX) {print " |$stmtA|\n";} + } +$sthA->finish(); +if ($hopper_dnc_count > 0) + { + $event_string = "|hopper DNC count: $hopper_dnc_count||"; + &event_logger; + + ### Gather all DNC statused vicidial_hopper entries + $stmtA = "SELECT hopper_id,lead_id,alt_dial,campaign_id FROM $vicidial_hopper where status='DNC';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsVHdnc=$sthA->rows; + $aad=0; + while ($sthArowsVHdnc > $aad) + { + @aryA = $sthA->fetchrow_array; + $AAD_hopper_id[$aad] = $aryA[0]; + $AAD_lead_id[$aad] = $aryA[1]; + $AAD_alt_dial[$aad] = $aryA[2]; + $AAD_campaign_id[$aad] = $aryA[3]; + $aad++; + } + $sthA->finish(); + + ### Go through all DNC statused vicidial_hopper entries and look for next number. If found, set the next phone number, alt dial and change status to READY + $aad=0; + while ($sthArowsVHdnc > $aad) + { + $VD_auto_alt_dial=''; + $VD_use_internal_dnc=''; + $VD_use_campaign_dnc=''; + $VD_alt_dial = $AAD_alt_dial[$aad]; + $VD_campaign_id = $AAD_campaign_id[$aad]; + $VD_lead_id = $AAD_lead_id[$aad]; + ### look up auto-alt-dial settings for campaign + $stmtA = "SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$AAD_campaign_id[$aad]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_auto_alt_dial = $aryA[0]; + $VD_use_internal_dnc = $aryA[1]; + $VD_use_campaign_dnc = $aryA[2]; + } + $sthA->finish(); + + $event_string = "|DNC record: $AAD_lead_id[$aad]|$AAD_campaign_id[$aad]|$VD_auto_alt_dial|$AAD_alt_dial[$aad]"; + &event_logger; + + if ( ($VD_auto_alt_dial =~ /(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) + { + $alt_dial_skip=0; + $VD_alt_phone=''; + $stmtA="SELECT alt_phone,gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$AAD_lead_id[$aad]';"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_phone = $aryA[0]; + $VD_alt_phone =~ s/\D//gi; + $VD_gmt_offset_now = $aryA[1]; + $VD_state = $aryA[2]; + $VD_list_id = $aryA[3]; + } + $sthA->finish(); + if (length($VD_alt_phone)>5) + { + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $alt_areacode = substr($VD_alt_phone, 0, 3); + $alt_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_alt_phone','$alt_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_alt_phone';";} + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $alt_areacode = substr($VD_alt_phone, 0, 3); + $alt_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_alt_phone','$alt_areacode') and campaign_id='$VD_campaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_alt_phone' and campaign_id='$VD_campaign_id';";} + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + $stmtA = "UPDATE vicidial_hopper SET status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='ALT',user='',priority='25' where hopper_id='$AAD_hopper_id[$aad]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {$event_string = "-- VDH record updated: |$affected_rows| |$stmtA|"; &event_logger;} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$VD_alt_dial='ALT';} + } + if ( ( ($VD_auto_alt_dial =~ /(ADDR3_ONLY)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) || ( ($VD_auto_alt_dial =~ /(ALT_AND_ADDR3)/) && ($VD_alt_dial =~ /ALT/) ) ) + { + $addr3_dial_skip=0; + $VD_address3=''; + $stmtA="SELECT address3,gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$AAD_lead_id[$aad]';"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_address3 = $aryA[0]; + $VD_address3 =~ s/\D//gi; + $VD_gmt_offset_now = $aryA[1]; + $VD_state = $aryA[2]; + $VD_list_id = $aryA[3]; + } + $sthA->finish(); + if (length($VD_address3)>5) + { + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $addr3_areacode = substr($VD_address3, 0, 3); + $addr3_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_address3','$addr3_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_address3';";} + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $addr3_areacode = substr($VD_address3, 0, 3); + $addr3_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_address3','$addr3_areacode') and campaign_id='$VD_campaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_address3' and campaign_id='$VD_campaign_id';";} + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + $stmtA = "UPDATE vicidial_hopper SET status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='ADDR3',user='',priority='25' where hopper_id='$AAD_hopper_id[$aad]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {$event_string = "-- VDH record updated: |$affected_rows| |$stmtA|"; &event_logger;} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$VD_alt_dial='ADDR3';} + } + if ( ( ($VD_auto_alt_dial =~ /(EXTENDED_ONLY)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) || ( ($VD_auto_alt_dial =~ /(ALT_AND_EXTENDED)/) && ($VD_alt_dial =~ /ALT/) ) || ( ($VD_auto_alt_dial =~ /ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED/) && ($VD_alt_dial =~ /ADDR3/) ) || ( ($VD_auto_alt_dial =~ /(EXTENDED)/) && ($VD_alt_dial =~ /X/) && ($VD_alt_dial !~ /XLAST/) ) ) + { + if ($VD_alt_dial =~ /ADDR3/) {$Xlast=0;} + else + {$Xlast = $VD_alt_dial;} + $Xlast =~ s/\D//gi; + if (length($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + $stmtA="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$VD_lead_id';"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_gmt_offset_now = $aryA[0]; + $VD_state = $aryA[1]; + $VD_list_id = $aryA[2]; + } + $sthA->finish(); + $alt_dial_phones_count=0; + $stmtA="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$AAD_lead_id[$aad]';"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $alt_dial_phones_count = $aryA[0]; + } + $sthA->finish(); + + if ($alt_dial_phones_count <= $Xlast) + { + $stmtA = "DELETE FROM vicidial_hopper where hopper_id='$AAD_hopper_id[$aad]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {$event_string = "-- VDH record DNC deleted: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &event_logger;} + } + + while ( ($alt_dial_phones_count > 0) && ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmtA="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$VD_lead_id' and alt_phone_count='$Xlast';"; + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_altdial_id = $aryA[0]; + $VD_altdial_phone = $aryA[1]; + $VD_altdial_active = $aryA[2]; + } + else + {$Xlast=9999999999;} + $sthA->finish(); + + if ($VD_altdial_active =~ /Y/) + { + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $ad_areacode = substr($VD_altdial_phone, 0, 3); + $ad_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_altdial_phone','$ad_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $ad_areacode = substr($VD_altdial_phone, 0, 3); + $ad_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$ad_areacode') and campaign_id='$VD_campaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$VD_campaign_id';";} + if ($DB) {$event_string = "|$stmtA|"; &event_logger;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count eq '$Xlast') + {$Xlast = 'LAST';} + $stmtA = "UPDATE vicidial_hopper SET status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='X$Xlast',user='',priority='25' where hopper_id='$AAD_hopper_id[$aad]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {$event_string = "-- VDH record updated: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &event_logger;} + $Xlast=9999999999; + } + else + { + if ($alt_dial_phones_count eq '$Xlast') + {$Xlast = 'LAST';} + $stmtA = "UPDATE vicidial_hopper SET status='DNC',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='X$Xlast',user='',priority='15' where hopper_id='$AAD_hopper_id[$aad]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {$event_string = "-- VDH record DNC updated: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &event_logger;} + $Xlast=9999999999; + if ($DB) {$event_string = "-- VDH alt dial is DNC|X$Xlast|$VD_altdial_phone|"; &event_logger;} + } + } + } + } + if ($VD_alt_dial =~ /XLAST/) + { + $stmtA = "DELETE FROM vicidial_hopper where hopper_id='$AAD_hopper_id[$aad]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {$event_string = "-- VDH record DNC deleted: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &event_logger;} + } + + + $aad++; + } + } +### END Auto-Alt-Dial DNC check and update or delete + + + +@campaign_id=@MT; + +if ($CLIcampaign) + { + $stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$CLIcampaign';"; + } +else + { + $stmtA = "SELECT campaign_id,lead_order,hopper_level,auto_dial_level,local_call_time,lead_filter_id,use_internal_dnc,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,dial_statuses,list_order_mix,use_campaign_dnc,drop_lockout_time,no_hopper_dialing,auto_alt_dial_statuses from vicidial_campaigns where active='Y';"; + } +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $campaign_id[$rec_count] = $aryA[0]; + $lead_order[$rec_count] = $aryA[1]; + if (!$CLIlevel) + {$hopper_level[$rec_count] = $aryA[2];} + else + {$hopper_level[$rec_count] = "$CLIlevel";} + $auto_dial_level[$rec_count] = $aryA[3]; + $local_call_time[$rec_count] = $aryA[4]; + $lead_filter_id[$rec_count] = $aryA[5]; + $use_internal_dnc[$rec_count] = $aryA[6]; + $dial_method[$rec_count] = $aryA[7]; + $available_only_ratio_tally[$rec_count] = $aryA[8]; + $adaptive_dropped_percentage[$rec_count] = $aryA[9]; + $adaptive_maximum_level[$rec_count] = $aryA[10]; + $dial_statuses[$rec_count] = $aryA[11]; + $list_order_mix[$rec_count] = $aryA[12]; + $use_campaign_dnc[$rec_count] = $aryA[13]; + $drop_lockout_time[$rec_count] = $aryA[14]; + $no_hopper_dialing[$rec_count] = $aryA[15]; + $auto_alt_dial_statuses[$rec_count] = $aryA[16]; + + $rec_count++; + } +$sthA->finish(); +if ($DB) {print "CAMPAIGNS TO PROCESSES HOPPER FOR: $rec_count|$#campaign_id\n";} + + +##### LOOP THROUGH EACH CAMPAIGN AND PROCESS THE HOPPER ##### +$i=0; +foreach(@campaign_id) + { + if ($no_hopper_dialing[$i] =~ /Y/) + { + if ($DB) {print "Campaign $campaign_id[$i] set to no-hopper-dialing: $no_hopper_dialing[$i]\n";} + + ### BEGIN Change CBHOLD status leads to CALLBK if their vicidial_callbacks time has passed + $stmtA = "SELECT count(*) FROM $vicidial_hopper where campaign_id='$campaign_id[$i]' and status NOT IN('QUEUE','HOLD');"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $NOHOPPER_count = $aryA[0]; + if ($DBX) {print "NO HOPPER COUNT: $NOHOPPER_count|$stmtA|\n";} + $sthA->finish(); + + if ($NOHOPPER_count > 0) + { + $stmtA = "DELETE from $vicidial_hopper where campaign_id='$campaign_id[$i]' and status NOT IN('QUEUE','HOLD');"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print "No Hopper delete: $affected_rows\n";} + $event_string = "|NO HOPPER DELETE|$affected_rows|"; + &event_logger; + } + } + else + { + $vicidial_log = 'vicidial_log'; + $VCSdialable_leads[$i]=0; + + if ($list_order_mix[$i] =~ /DISABLED/) + { + ### BEGIN - GATHER STATS FOR THE vicidial_campaign_stats TABLE ### + $dial_statuses[$i] =~ s/ -$//gi; + @Dstatuses = split(/ /,$dial_statuses[$i]); + $Ds_to_print = (($#Dstatuses) + 0); + $STATUSsql[$i]=''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $STATUSsql[$i] .= "'$Dstatuses[$o]',"; + } + if (length($STATUSsql[$i])<3) {$STATUSsql[$i]="''";} + else {chop($STATUSsql[$i]);} + } + + $stmtA = "SELECT dialable_leads from vicidial_campaign_stats where campaign_id='$campaign_id[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VCSdialable_leads[$i] = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + ### END - GATHER STATS FOR THE vicidial_campaign_stats TABLE ### + + ##### BEGIN calculate what gmt_offset_now values are within the allowed local_call_time setting ### + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + if ($DBX) {print "\n |GMT-DAY-HOUR| ";} + while ($p > -13) + { + $pzone = ($GMT_now + ($p * 3600)); + ($psec,$pmin,$phour,$pmday,$pmon,$pyear,$pday,$pyday,$pisdst) = localtime($pzone); + $phour=($phour * 100); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + if ($DBX) {print "|$GMT_gmt[$g]-$GMT_day[$g]-$GMT_hour[$g]|";} + $g++; + } + if ($DBX) {print "\n";} + + $stmtA = "SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time[$i]';"; + if ($DBX) {print " |$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Gct_default_start = "$aryA[3]"; + $Gct_default_stop = "$aryA[4]"; + $Gct_sunday_start = "$aryA[5]"; + $Gct_sunday_stop = "$aryA[6]"; + $Gct_monday_start = "$aryA[7]"; + $Gct_monday_stop = "$aryA[8]"; + $Gct_tuesday_start = "$aryA[9]"; + $Gct_tuesday_stop = "$aryA[10]"; + $Gct_wednesday_start = "$aryA[11]"; + $Gct_wednesday_stop = "$aryA[12]"; + $Gct_thursday_start = "$aryA[13]"; + $Gct_thursday_stop = "$aryA[14]"; + $Gct_friday_start = "$aryA[15]"; + $Gct_friday_stop = "$aryA[16]"; + $Gct_saturday_start = "$aryA[17]"; + $Gct_saturday_stop = "$aryA[18]"; + $Gct_state_call_times = "$aryA[19]"; + $rec_count++; + } + $sthA->finish(); + + + ### BEGIN For lead recycling find out the no-call gap time and begin dial time for today + $lct_gap=0; # number of seconds from stopping of calling to starting of calling based on local call time + $lct_begin=0; # hour and minute of the begin time for the local call time + $lct_end=0; # hour and minute of the end time for the local call time + + $secYESTERDAY = ($secX - (24 * 3600)); + ($ksec,$kmin,$khour,$kmday,$kmon,$kyear,$wyesterday,$kyday,$kisdst) = localtime($secYESTERDAY); + + if ($wtoday < 1) #### Sunday local time + { + if (($Gct_sunday_start < 1) && ($Gct_sunday_stop < 1)) {$lct_begin = $Gct_default_start;} + else {$lct_begin = $Gct_sunday_start;} + } + if ($wtoday==1) #### Monday local time + { + if (($Gct_monday_start < 1) && ($Gct_monday_stop < 1)) {$lct_begin = $Gct_default_start;} + else {$lct_begin = $Gct_monday_start;} + } + if ($wtoday==2) #### Tuesday local time + { + if (($Gct_tuesday_start < 1) && ($Gct_tuesday_stop < 1)) {$lct_begin = $Gct_default_start;} + else {$lct_begin = $Gct_tuesday_start;} + } + if ($wtoday==3) #### Wednesday local time + { + if (($Gct_wednesday_start < 1) && ($Gct_wednesday_stop < 1)) {$lct_begin = $Gct_default_start;} + else {$lct_begin = $Gct_wednesday_start;} + } + if ($wtoday==4) #### Thursday local time + { + if (($Gct_thursday_start < 1) && ($Gct_thursday_stop < 1)) {$lct_begin = $Gct_default_start;} + else {$lct_begin = $Gct_thursday_start;} + } + if ($wtoday==5) #### Friday local time + { + if (($Gct_friday_start < 1) && ($Gct_friday_stop < 1)) {$lct_begin = $Gct_default_start;} + else {$lct_begin = $Gct_friday_start;} + } + if ($wtoday==6) #### Saturday local time + { + if (($Gct_saturday_start < 1) && ($Gct_saturday_stop < 1)) {$lct_begin = $Gct_default_start;} + else {$lct_begin = $Gct_saturday_start;} + } + + + $dayBACKsec=0; + $weekBACK=0; + while ( ($lct_end < 1) && ($weekBACK <= 1) ) + { + if ($wyesterday==6) #### Saturday local time + { + if ($Gct_saturday_start > 2399) {$wyesterday = 0; $dayBACKsec = ($dayBACKsec + 86400); if ($DBX) {print "DayBACK: $wyesterday\n";}} + else + { + if (($Gct_saturday_start < 1) && ($Gct_saturday_stop < 1)) {$lct_end = $Gct_default_stop;} + else {$lct_end = $Gct_saturday_stop;} + } + } + if ($wyesterday==5) #### Friday local time + { + if ($Gct_friday_start > 2399) {$wyesterday = 1; $dayBACKsec = ($dayBACKsec + 86400); if ($DBX) {print "DayBACK: $wyesterday\n";}} + else + { + if (($Gct_friday_start < 1) && ($Gct_friday_stop < 1)) {$lct_end = $Gct_default_stop;} + else {$lct_end = $Gct_friday_stop;} + } + } + if ($wyesterday==4) #### Thursday local time + { + if ($Gct_thursday_start > 2399) {$wyesterday = 2; $dayBACKsec = ($dayBACKsec + 86400); if ($DBX) {print "DayBACK: $wyesterday\n";}} + else + { + if (($Gct_thursday_start < 1) && ($Gct_thursday_stop < 1)) {$lct_end = $Gct_default_stop;} + else {$lct_end = $Gct_thursday_stop;} + } + } + if ($wyesterday==3) #### Wednesday local time + { + if ($Gct_wednesday_start > 2399) {$wyesterday = 3; $dayBACKsec = ($dayBACKsec + 86400); if ($DBX) {print "DayBACK: $wyesterday\n";}} + else + { + if (($Gct_wednesday_start < 1) && ($Gct_wednesday_stop < 1)) {$lct_end = $Gct_default_stop;} + else {$lct_end = $Gct_wednesday_stop;} + } + } + if ($wyesterday==2) #### Tuesday local time + { + if ($Gct_tuesday_start > 2399) {$wyesterday = 4; $dayBACKsec = ($dayBACKsec + 86400); if ($DBX) {print "DayBACK: $wyesterday\n";}} + else + { + if (($Gct_tuesday_start < 1) && ($Gct_tuesday_stop < 1)) {$lct_end = $Gct_default_stop;} + else {$lct_end = $Gct_tuesday_stop;} + } + } + if ($wyesterday==1) #### Monday local time + { + if ($Gct_monday_start > 2399) {$wyesterday = 5; $dayBACKsec = ($dayBACKsec + 86400); if ($DBX) {print "DayBACK: $wyesterday\n";}} + else + { + if (($Gct_monday_start < 1) && ($Gct_monday_stop < 1)) {$lct_end = $Gct_default_stop;} + else {$lct_end = $Gct_monday_stop;} + } + } + if ($wyesterday==0) #### Sunday local time + { + if ($Gct_sunday_start > 2399) {$wyesterday = 6; $dayBACKsec = ($dayBACKsec + 86400); if ($DBX) {print "DayBACK: $wyesterday\n";}} + else + { + if (($Gct_sunday_start < 1) && ($Gct_sunday_stop < 1)) {$lct_end = $Gct_default_stop;} + else {$lct_end = $Gct_sunday_stop;} + } + } + $weekBACK++; + } + + $lct_end = sprintf("%04d", $lct_end); + $lct_end_hour = substr($lct_end, 0, 2); + $lct_end_min = substr($lct_end, 2, 2); + $lct_begin = sprintf("%04d", $lct_begin); + $lct_begin_hour = substr($lct_begin, 0, 2); + $lct_begin_min = substr($lct_begin, 2, 2); + + $lct_gap = ( ( ( ( ( (24 - $lct_end_hour) + $lct_begin_hour) * 3600) + ($lct_begin_min * 60) ) - ($lct_end_min * 60) ) + $dayBACKsec); + + if ($DBX) {print "LocalCallTime No-Call Gap: |$lct_gap|$lct_end($lct_end_hour $lct_end_min)|$lct_begin($lct_begin_hour $lct_begin_min)|$wtoday|$wyesterday|\n";} + + ### END For lead recycling find out the no-call gap time and begin dial time for today + + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $del_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (length($Gct_state_call_times)>2) + { + @state_rules = split(/\|/,$Gct_state_call_times); + $ct_srs = ($#state_rules - 2); + } + while($ct_srs >= $b) + { + if (length($state_rules[$b])>1) + { + $stmtA = "SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + if ($DBX) {print " |$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Gstate_call_time_id = "$aryA[0]"; + $Gstate_call_time_state = "$aryA[1]"; + $Gsct_default_start = "$aryA[4]"; + $Gsct_default_stop = "$aryA[5]"; + $Gsct_sunday_start = "$aryA[6]"; + $Gsct_sunday_stop = "$aryA[7]"; + $Gsct_monday_start = "$aryA[8]"; + $Gsct_monday_stop = "$aryA[9]"; + $Gsct_tuesday_start = "$aryA[10]"; + $Gsct_tuesday_stop = "$aryA[11]"; + $Gsct_wednesday_start = "$aryA[12]"; + $Gsct_wednesday_stop = "$aryA[13]"; + $Gsct_thursday_start = "$aryA[14]"; + $Gsct_thursday_stop = "$aryA[15]"; + $Gsct_friday_start = "$aryA[16]"; + $Gsct_friday_stop = "$aryA[17]"; + $Gsct_saturday_start = "$aryA[18]"; + $Gsct_saturday_stop = "$aryA[19]"; + $ct_states .="'$Gstate_call_time_state',"; + $rec_count++; + } + $sthA->finish(); + + $r=0; + $state_gmt=''; + $del_state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) && ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) && ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) && ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) && ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) && ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) && ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) && ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) && ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) && ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) && ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) && ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) && ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) && ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) && ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) && ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) && ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) && ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) && ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) && ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) && ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) && ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + else + {$del_state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $del_state_gmt = "$del_state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' && gmt_offset_now IN($state_gmt)) "; + $del_state_gmt_SQL .= "or (state='$Gstate_call_time_state' && gmt_offset_now IN($del_state_gmt)) "; + } + + $b++; + } + if (length($ct_states)>2) + { + $ct_states =~ s/,$//gi; + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + @default_gmt_ARY=@MT; + $dgA=0; + $default_gmt=''; + $del_default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) && ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) && ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) && ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) && ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) && ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) && ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) && ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) && ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) && ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) && ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) && ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) && ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) && ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) && ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) && ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) && ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) && ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) && ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) && ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) && ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) && ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',"; $default_gmt_ARY[$dgA] = "$GMT_gmt[$r]"; $dgA++;} + else + {$del_default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $del_default_gmt = "$del_default_gmt'99'"; + $all_gmtSQL[$i] = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + $del_gmtSQL[$i] = "(gmt_offset_now IN($del_default_gmt) $ct_statesSQL) $del_state_gmt_SQL"; + + ##### END calculate what gmt_offset_now values are within the allowed local_call_time setting ### + + ##### BEGIN lead recycling parsing and prep ### + + $stmtA = "SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id[$i]' and active='Y';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @recycle_status=@MT; + @recycle_delay=@MT; + @recycle_maximum=@MT; + @RSQLdate=@MT; + $r_ct=0; + $rec_ct[$i]=0; + while ($sthArows > $r_ct) + { + @aryA = $sthA->fetchrow_array; + $recycle_status[$r_ct] = "$aryA[2]"; + $recycle_delay[$r_ct] = "$aryA[3]"; + $recycle_maximum[$r_ct] = "$aryA[4]"; + $r_ct++; + $rec_ct[$i]++; + } + $sthA->finish(); + + if ($rec_ct[$i] > 0) + { + $rc=0; + $recycle_SQL[$i] = "( "; + while($rc < $rec_ct[$i]) + { + $Y=1; + $recycle_Y = "'Y'"; + while ($Y < $recycle_maximum[$rc]) + { + $recycle_Y .= ",'Y$Y'"; + $Y++; + } + + if ($rc > 0) {$recycle_SQL[$i] .= " or ";} + + $recycle_SQL[$i] .= "( (called_since_last_reset IN($recycle_Y)) and (status='$recycle_status[$rc]') and ("; + + $dgA=0; + foreach(@default_gmt_ARY) + { + $secX = time(); + $LLCT_DATE_offset = ($LOCAL_GMT_OFF - $default_gmt_ARY[$dgA]); + $LLCT_DATE_offset_epoch = ( $secX - ($LLCT_DATE_offset * 3600) ); + $Rtarget = ($LLCT_DATE_offset_epoch - $recycle_delay[$rc]); + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $Rhourmin = "$Rhour$Rmin"; + if ( ($Rhourmin < $lct_begin) || ($Rhourmin > $lct_end) ) + { + $RGtarget = ($Rtarget - $lct_gap); + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($RGtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + if ($DBX) {print "RECYCLE DELAY GAP: |$campaign_id[$i]|$Rhourmin|$RGtarget|Rtarget|($recycle_delay[$rc] $lct_gap)\n";} + } + $RSQLdate[$rc] = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + if ($dgA > 0) {$recycle_SQL[$i] .= " or ";} + + $recycle_SQL[$i] .= "( (gmt_offset_now='$default_gmt_ARY[$dgA]') and (last_local_call_time < \"$RSQLdate[$rc]\") )"; + + $dgA++; + } + if ($DBX) {print "RECYCLE: |$campaign_id[$i]|$recycle_status[$rc]|$recycle_delay[$rc]|$recycle_maximum[$rc]|$RSQLdate[$rc]|\n";} + + $recycle_SQL[$i] .= " ) )"; + + $rc++; + } + + $recycle_SQL[$i] .= " )"; + + if ($DBX) {print "RECYCLE SQL: |$recycle_SQL[$i]|\n";} + } + ##### END lead recycling parsing and prep ### + + if ($DB) {print "Starting hopper run for $campaign_id[$i] campaign- GMT: $local_call_time[$i] HOPPER: $hopper_level[$i] ORDER: $lead_order[$i]\n";} + + ### Delete the DONE leads if there are any + $stmtA = "DELETE from $vicidial_hopper where campaign_id='$campaign_id[$i]' and status IN('DONE');"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print " hopper DONE cleared: $affected_rows\n";} + if ($DBX) {print " |$stmtA|\n";} + + ### Delete the leads that are out of GMT time range if there are any + $stmtA = "DELETE from $vicidial_hopper where campaign_id='$campaign_id[$i]' and ($del_gmtSQL[$i]);"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print " hopper GMT BAD cleared: $affected_rows\n";} + if ($DBX) {print " |$stmtA|\n";} + + ### Find out how many leads are in the hopper from a specific campaign + $hopper_ready_count=0; + $stmtA = "SELECT count(*) from $vicidial_hopper where campaign_id='$campaign_id[$i]' and status='READY';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $hopper_ready_count = $aryA[0]; + if ($DB) {print " hopper READY count: $hopper_ready_count\n";} + if ($DBX) {print " |$stmtA|\n";} + } + $sthA->finish(); + $event_string = "|$campaign_id[$i]|$hopper_level[$i]|$hopper_ready_count|$local_call_time[$i]||"; + &event_logger; + + ##### IF hopper level is below set minimum, then try to add more leads ##### + if ($hopper_ready_count < $hopper_level[$i]) + { + if ($DB) {print " hopper too low ($hopper_ready_count|$hopper_level[$i]) starting hopper dump\n";} + + $active_listSQL = "and active='Y'"; + if ( ($list_order_mix[$i] !~ /DISABLED/) && ($allow_inactive_list_leads > 0) ) + {$active_listSQL = '';} + + ### Get list of the lists in the campaign ### + $stmtA = "SELECT list_id FROM vicidial_lists where campaign_id='$campaign_id[$i]' $active_listSQL;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countLISTS=0; + $camp_lists[$i] = ''; + while ($sthArows > $rec_countLISTS) + { + @aryA = $sthA->fetchrow_array; + $camp_lists[$i] .= "'$aryA[0]',"; + $rec_countLISTS++; + } + $sthA->finish(); + if (length($camp_lists[$i])<3) {$camp_lists[$i]="'999876543210'";} + else {chop($camp_lists[$i]);} + + if ($DB) {print " campaign lists count: $rec_countLISTS | $camp_lists[$i]\n";} + if ($DBX) {print " |$stmtA|\n";} + + if ($list_order_mix[$i] !~ /DISABLED/) + { + $stmtA = "SELECT vcl_id,vcl_name,list_mix_container,mix_method FROM vicidial_campaigns_list_mix where campaign_id='$campaign_id[$i]' and status='ACTIVE';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $vcl_id[$i] = "$aryA[0]"; + $vcl_name[$i] = "$aryA[1]"; + $list_mix_container[$i] = "$aryA[2]"; + $mix_method[$i] = "$aryA[3]"; + $rec_count++; + } + $sthA->finish(); + + @list_mixARY=@MT; + $list_mix_dialableSQL=''; + @list_mixARY = split(/:/,$list_mix_container[$i]); + $x=0; + foreach(@list_mixARY) + { + if ($x > 0) {$list_mix_dialableSQL .= " or ";} + @list_mix_stepARY = split(/\|/,$list_mixARY[$x]); + $list_mix_stepARY[3] =~ s/ /\',\'/gi; + $list_mix_stepARY[3] =~ s/^\',|,\'-//gi; + if ($list_mix_stepARY[3] !~ /\'$/) + {$list_mix_stepARY[3] = "$list_mix_stepARY[3]'";} + if ($DBX) {print " LM $x ++$list_mixARY[$x]++ |$list_mix_stepARY[0]|$list_mix_stepARY[2]|$list_mix_stepARY[3]|\n";} + $list_mix_dialableSQL .= "(list_id='$list_mix_stepARY[0]' and status IN($list_mix_stepARY[3]))"; + + $x++; + } + + if ($DB) {print " campaign mix: $list_order_mix[$i] |$vcl_id[$i] - $vcl_name[$i]|$list_mix_container[$i]|$x|$mix_method[$i]|\n";} + } + + if ( ($lead_filter_id[$i] !~ /NONE/) && (length($lead_filter_id[$i])>0) ) + { + ### Get SQL of lead filter for the campaign ### + $stmtA = "SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $lead_filter_sql[$i] = "$aryA[0]"; + $lead_filter_sql[$i] =~ s/\\//gi; + $rec_count++; + } + $sthA->finish(); + $lead_filter_sql[$i] =~ s/^and|and$|^or|or$|^ and|and $|^ or|or $//gi; + $lead_filter_sql[$i] = "and $lead_filter_sql[$i]"; + if ($DB) {print " lead filter $lead_filter_id[$i] defined for $campaign_id[$i]\n";} + if ($DBX) {print " |$lead_filter_sql[$i]|\n";} + } + else + { + $lead_filter_sql[$i] = ''; + if ($DB) {print " no lead filter defined for campaign: $campaign_id[$i]\n";} + if ($DBX) {print " |$lead_filter_id[$i]|\n";} + } + + $DLTsql[$i]=''; + if ($drop_lockout_time[$i] > 0) + { + $DLseconds[$i] = ($drop_lockout_time[$i] * 3600); + $DLTsql[$i] = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds[$i] SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + if ($DB) {print " drop lockout time $drop_lockout_time[$i]($DLseconds[$i]) defined for $campaign_id[$i]\n";} + if ($DBX) {print " |$DLTsql[$i]|\n";} + } + + ##### Get count of leads that are dialable ##### + if ($list_order_mix[$i] =~ /DISABLED/) + { + $stmtA = "SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($STATUSsql[$i]) and list_id IN($camp_lists[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i];"; + } + else + { + $stmtA = "SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and ($list_mix_dialableSQL) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i];"; + } + if ($DBX) {print " |$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $campaign_leads_to_call[$i] = "$aryA[0]"; + if ($DB) {print " leads to call count: $campaign_leads_to_call[$i]\n";} + if ($DBX) {print " |$stmtA|\n";} + } + $sthA->finish(); + + if ( ($lead_order[$i] =~ / 2nd NEW$| 3rd NEW$| 4th NEW$| 5th NEW$| 6th NEW$/) && ($list_order_mix[$i] =~ /DISABLED/) ) + { + $stmtA = "SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN('NEW') and list_id IN($camp_lists[$i]) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i];"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $NEW_campaign_leads_to_call[$i] = "$aryA[0]"; + if ($DB) {print " NEW leads to call count: $NEW_campaign_leads_to_call[$i]\n";} + if ($DBX) {print " |$stmtA|\n";} + } + $sthA->finish(); + } + + ##### IF no NEW leads to be called, error out of this campaign ##### + if ( ($lead_order[$i] =~ / 2nd NEW$| 3rd NEW$| 4th NEW$| 5th NEW$| 6th NEW$/) && ($NEW_campaign_leads_to_call[$i] > 0) && ($list_order_mix[$i] =~ /DISABLED/) ) {$GOOD=1;} + else + { + if ($lead_order[$i] !~ / 2nd NEW$| 3rd NEW$| 4th NEW$| 5th NEW$| 6th NEW$/) + { + if ($DB) {print " NO SHUFFLE-NEW-LEADS INTO HOPPER DEFINED FOR LEAD ORDER\n";} + } + else + { + if ($DB) {print " ERROR CANNOT ADD ANY NEW LEADS TO HOPPER\n";} + } + } + + ##### IF no leads to be called, error out of this campaign ##### + if ( ($campaign_leads_to_call[$i] < 1) && ($rec_ct[$i] < 1) ) + { + if ($DB) {print " ERROR CANNOT ADD ANY LEADS TO HOPPER\n";} + if ($VCSdialable_leads[$i] > 0) + { + $stmtA = "UPDATE vicidial_campaign_stats SET dialable_leads='0' where campaign_id='$campaign_id[$i]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "CAMPAIGN STATS: $affected_rows|$stmtA|\n";} + } + } + else + { + if ($VCSdialable_leads[$i] != $campaign_leads_to_call[$i]) + { + $stmtA = "UPDATE vicidial_campaign_stats SET dialable_leads='$campaign_leads_to_call[$i]' where campaign_id='$campaign_id[$i]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "CAMPAIGN STATS: $affected_rows|$stmtA|\n";} + } + if ($DB) {print " Getting Leads to add to hopper\n";} + ### grab leads already in hopper so we don't duplicate + $stmtA = "SELECT lead_id FROM $vicidial_hopper where campaign_id='$campaign_id[$i]';"; + if ($DBX) {print " |$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $lead_id_lists = ''; + $rec_countLISTS=0; + while ($sthArows > $rec_countLISTS) + { + @aryA = $sthA->fetchrow_array; + $lead_id_lists .= "'$aryA[0]',"; + $rec_countLISTS++; + } + $sthA->finish(); + $lead_id_lists .= "'0'"; + $order_stmt=''; + $NEW_count = 0; + $NEW_level = 0; + $OTHER_level = $hopper_level[$i]; + if ($lead_order[$i] =~ /^DOWN/) {$order_stmt = 'order by lead_id asc';} + if ($lead_order[$i] =~ /^UP/) {$order_stmt = 'order by lead_id desc';} + if ($lead_order[$i] =~ /^UP LAST NAME/) {$order_stmt = 'order by last_name desc, lead_id asc';} + if ($lead_order[$i] =~ /^DOWN LAST NAME/) {$order_stmt = 'order by last_name, lead_id asc';} + if ($lead_order[$i] =~ /^UP PHONE/) {$order_stmt = 'order by phone_number desc, lead_id asc';} + if ($lead_order[$i] =~ /^DOWN PHONE/) {$order_stmt = 'order by phone_number, lead_id asc';} + if ($lead_order[$i] =~ /^UP COUNT/) {$order_stmt = 'order by called_count desc, lead_id asc';} + if ($lead_order[$i] =~ /^DOWN COUNT/) {$order_stmt = 'order by called_count, lead_id asc';} + if ($lead_order[$i] =~ /^UP LAST CALL TIME/) {$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if ($lead_order[$i] =~ /^DOWN LAST CALL TIME/) {$order_stmt = 'order by last_local_call_time, lead_id asc';} + if ($lead_order[$i] =~ /^RANDOM/) {$order_stmt = 'order by RAND()';} + if ($lead_order[$i] =~ /^UP RANK/) {$order_stmt = 'order by rank desc, lead_id asc';} + if ($lead_order[$i] =~ /^DOWN RANK/) {$order_stmt = 'order by rank, lead_id asc';} + if ($lead_order[$i] =~ /^UP OWNER/) {$order_stmt = 'order by owner desc, lead_id asc';} + if ($lead_order[$i] =~ /^DOWN OWNER/) {$order_stmt = 'order by owner, lead_id asc';} + if ($lead_order[$i] =~ /^UP TIMEZONE/) {$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if ($lead_order[$i] =~ /^DOWN TIMEZONE/) {$order_stmt = 'order by gmt_offset_now, lead_id asc';} + if ($lead_order[$i] =~ / 2nd NEW$/) {$NEW_count = 2;} + if ($lead_order[$i] =~ / 3rd NEW$/) {$NEW_count = 3;} + if ($lead_order[$i] =~ / 4th NEW$/) {$NEW_count = 4;} + if ($lead_order[$i] =~ / 5th NEW$/) {$NEW_count = 5;} + if ($lead_order[$i] =~ / 6th NEW$/) {$NEW_count = 6;} + + ### BEGIN recycle grab leads ### + $REC_rec_countLEADS=0; + @REC_leads_to_hopper=@MT; + @REC_lists_to_hopper=@MT; + @REC_phone_to_hopper=@MT; + @REC_gmt_to_hopper=@MT; + @REC_state_to_hopper=@MT; + @REC_status_to_hopper=@MT; + @REC_modify_to_hopper=@MT; + @REC_user_to_hopper=@MT; + if ($rec_ct[$i] > 0) + { + if ($DB) {print " looking for RECYCLE leads, maximum of $hopper_level[$i]\n";} + + $stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user FROM vicidial_list where $recycle_SQL[$i] and list_id IN($camp_lists[$i]) and lead_id NOT IN($lead_id_lists) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $order_stmt limit $hopper_level[$i];"; + if ($DBX) {print " |$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($DB) {print " RECYCLE leads to call count: $sthArows\n";} + if ($DBX) {print " |$stmtA|\n";} + while ($sthArows > $REC_rec_countLEADS) + { + @aryA = $sthA->fetchrow_array; + $REC_leads_to_hopper[$REC_rec_countLEADS] = "$aryA[0]"; + $REC_lists_to_hopper[$REC_rec_countLEADS] = "$aryA[1]"; + $REC_gmt_to_hopper[$REC_rec_countLEADS] = "$aryA[2]"; + $REC_phone_to_hopper[$REC_rec_countLEADS] = "$aryA[3]"; + $REC_state_to_hopper[$REC_rec_countLEADS] = "$aryA[4]"; + $REC_status_to_hopper[$REC_rec_countLEADS] = "$aryA[5]"; + $REC_modify_to_hopper[$REC_rec_countLEADS] = "$aryA[6]"; + $REC_user_to_hopper[$REC_rec_countLEADS] = "$aryA[7]"; + if ($DB_show_offset) {print "LEAD_ADD: $aryA[2] $aryA[3] $aryA[4]\n";} + $REC_rec_countLEADS++; + } + $sthA->finish(); + } + else + { + if ($DB) {print " NO RECYCLE-LEADS INTO HOPPER DEFINED\n";} + } + ### END recycle grab leads ### + + + ### BEGIN NEW grab leads ### + $NEW_rec_countLEADS=0; + @NEW_leads_to_hopper=@MT; + @NEW_lists_to_hopper=@MT; + @NEW_phone_to_hopper=@MT; + @NEW_gmt_to_hopper=@MT; + @NEW_state_to_hopper=@MT; + @NEW_status_to_hopper=@MT; + @NEW_modify_to_hopper=@MT; + @NEW_user_to_hopper=@MT; + if ( ($NEW_count > 0) && ($list_order_mix[$i] =~ /DISABLED/) ) + { + $NEW_level = int($hopper_level[$i] / $NEW_count); + $OTHER_level = ($hopper_level[$i] - $NEW_level); + if ($DB) {print " looking for $NEW_level NEW leads mixed in with $OTHER_level other leads\n";} + + $stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user FROM vicidial_list where called_since_last_reset='N' and status IN('NEW') and list_id IN($camp_lists[$i]) and lead_id NOT IN($lead_id_lists) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $order_stmt limit $NEW_level;"; + if ($DBX) {print " |$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $NEW_rec_countLEADS) + { + @aryA = $sthA->fetchrow_array; + $NEW_leads_to_hopper[$NEW_rec_countLEADS] = "$aryA[0]"; + $NEW_lists_to_hopper[$NEW_rec_countLEADS] = "$aryA[1]"; + $NEW_gmt_to_hopper[$NEW_rec_countLEADS] = "$aryA[2]"; + $NEW_phone_to_hopper[$NEW_rec_countLEADS] = "$aryA[3]"; + $NEW_state_to_hopper[$NEW_rec_countLEADS] = "$aryA[4]"; + $NEW_status_to_hopper[$NEW_rec_countLEADS] = "$aryA[5]"; + $NEW_modify_to_hopper[$NEW_rec_countLEADS] = "$aryA[6]"; + $NEW_user_to_hopper[$NEW_rec_countLEADS] = "$aryA[7]"; + if ($DB_show_offset) {print "LEAD_ADD: $aryA[2] $aryA[3] $aryA[4]\n";} + $NEW_rec_countLEADS++; + } + $OTHER_level = ($hopper_level[$i] - $NEW_rec_countLEADS); + $sthA->finish(); + } + + ### BEGIN standard grab leads ### + $rec_countLEADS=0; + $NEW_dec=99; + $NEW_in=0; + $rec_count=0; + $REC_insert_count=0; + @leads_to_hopper=@MT; + @lists_to_hopper=@MT; + @gmt_to_hopper=@MT; + @state_to_hopper=@MT; + @phone_to_hopper=@MT; + @status_to_hopper=@MT; + @modify_to_hopper=@MT; + @user_to_hopper=@MT; + if ($campaign_leads_to_call[$i] > 0) + { + if ($DB) {print " lead call order: $order_stmt\n";} + + if ($list_order_mix[$i] =~ /DISABLED/) + { + $stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user FROM vicidial_list where called_since_last_reset='N' and status IN($STATUSsql[$i]) and list_id IN($camp_lists[$i]) and lead_id NOT IN($lead_id_lists) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $order_stmt limit $OTHER_level;"; + if ($DBX) {print " |$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if ( ($NEW_count > 0) && ($NEW_rec_countLEADS > $NEW_in) ) + { + if ($DB_show_offset) {print "NEW_COUNT: $NEW_count|$NEW_dec|$NEW_in|$NEW_rec_countLEADS\n";} + if ($NEW_count > $NEW_dec) + { + $NEW_dec++; + } + else + { + $leads_to_hopper[$rec_countLEADS] = "$NEW_leads_to_hopper[$NEW_in]"; + $lists_to_hopper[$rec_countLEADS] = "$NEW_lists_to_hopper[$NEW_in]"; + $gmt_to_hopper[$rec_countLEADS] = "$NEW_gmt_to_hopper[$NEW_in]"; + $state_to_hopper[$rec_countLEADS] = "$NEW_state_to_hopper[$NEW_in]"; + $phone_to_hopper[$rec_countLEADS] = "$NEW_phone_to_hopper[$NEW_in]"; + $status_to_hopper[$rec_countLEADS] = "$NEW_status_to_hopper[$NEW_in]"; + $modify_to_hopper[$rec_countLEADS] = "$NEW_modify_to_hopper[$NEW_in]"; + $user_to_hopper[$rec_countLEADS] = "$NEW_user_to_hopper[$NEW_in]"; + if ($DB_show_offset) {print "LEAD_ADD: $NEW_leads_to_hopper[$NEW_in] $NEW_phone_to_hopper[$NEW_in]\n";} + $rec_countLEADS++; + $NEW_in++; + $NEW_dec=2; + } + } + if ($REC_rec_countLEADS > $REC_insert_count) + { + $leads_to_hopper[$rec_countLEADS] = "$REC_leads_to_hopper[$REC_insert_count]"; + $lists_to_hopper[$rec_countLEADS] = "$REC_lists_to_hopper[$REC_insert_count]"; + $gmt_to_hopper[$rec_countLEADS] = "$REC_gmt_to_hopper[$REC_insert_count]"; + $state_to_hopper[$rec_countLEADS] = "$REC_state_to_hopper[$REC_insert_count]"; + $phone_to_hopper[$rec_countLEADS] = "$REC_phone_to_hopper[$REC_insert_count]"; + $status_to_hopper[$rec_countLEADS] = "$REC_status_to_hopper[$REC_insert_count]"; + $modify_to_hopper[$rec_countLEADS] = "$REC_modify_to_hopper[$REC_insert_count]"; + $user_to_hopper[$rec_countLEADS] = "$REC_user_to_hopper[$REC_insert_count]"; + $rec_countLEADS++; + $REC_insert_count++; + } + $leads_to_hopper[$rec_countLEADS] = "$aryA[0]"; + $lists_to_hopper[$rec_countLEADS] = "$aryA[1]"; + $gmt_to_hopper[$rec_countLEADS] = "$aryA[2]"; + $state_to_hopper[$rec_countLEADS] = "$aryA[4]"; + $phone_to_hopper[$rec_countLEADS] = "$aryA[3]"; + $status_to_hopper[$rec_countLEADS] = "$aryA[5]"; + $modify_to_hopper[$rec_countLEADS] = "$aryA[6]"; + $user_to_hopper[$rec_countLEADS] = "$aryA[7]"; + if ($DB_show_offset) {print "LEAD_ADD: $aryA[2] $aryA[3] $aryA[4]\n";} + $rec_countLEADS++; + $rec_count++; + } + $sthA->finish(); + } + + ##### LIST MIX LEADS GRAB ##### + else + { + $USX='_____'; + $x=0; + $z=0; + @LM_results=@MT; + foreach(@list_mixARY) + { + $rec_count=0; + @list_mix_stepARY=@MT; + + @list_mix_stepARY = split(/\|/,$list_mixARY[$x]); + $LM_step_goal[$x] = ( ($list_mix_stepARY[2] / 100) * $hopper_level[$i]); + $LM_step_even[$x] = ( (100 / $list_mix_stepARY[2]) * 100000); + $list_mix_stepARY[3] =~ s/ /','/gi; + $list_mix_stepARY[3] =~ s/^',|,'-//gi; + if ($list_mix_stepARY[3] !~ /\'$/) + {$list_mix_stepARY[3] = "$list_mix_stepARY[3]'";} + if ($DBX) {print " LM $x |$list_mix_stepARY[0]|$list_mix_stepARY[2]|$LM_step_goal[$x]|$list_mix_stepARY[3]|\n";} + $list_mix_dialableSQL = "(list_id='$list_mix_stepARY[0]' and status IN($list_mix_stepARY[3]))"; + + $stmtA = "SELECT lead_id,list_id,gmt_offset_now,phone_number,state,status,modify_date,user FROM vicidial_list where called_since_last_reset='N' and $list_mix_dialableSQL and lead_id NOT IN($lead_id_lists) and ($all_gmtSQL[$i]) $lead_filter_sql[$i] $DLTsql[$i] $order_stmt limit $LM_step_goal[$x];"; + if ($DBX) {print " |$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if ($mix_method[$i] =~ /RANDOM/) + { + $order = int( rand(9999999)) + 10000000; + } + else + { + if ($mix_method[$i] =~ /EVEN_MIX/) + { + $order = ( ($rec_count * $LM_step_even[$x]) + $x); + } + else + { + $order = ( ($x * 1000000) + $rec_count); + } + } + $LM_results[$z] = "$order$USX$aryA[0]$USX$aryA[1]$USX$aryA[2]$USX$aryA[3]$USX$aryA[4]$USX$aryA[5]$USX$aryA[6]$USX$aryA[7]"; + # if ($DBX) {print " $z|$LM_results[$z]\n";} + + $rec_count++; + $z++; + } + $sthA->finish(); + + $x++; + } + + @LM_results_SORT = sort { $a <=> $b } @LM_results; + + $w=0; + while ($z > $w) + { + @aryA = split(/_____/,$LM_results_SORT[$w]); + if ($REC_rec_countLEADS > $REC_insert_count) + { + $leads_to_hopper[$rec_countLEADS] = "$REC_leads_to_hopper[$REC_insert_count]"; + $lists_to_hopper[$rec_countLEADS] = "$REC_lists_to_hopper[$REC_insert_count]"; + $gmt_to_hopper[$rec_countLEADS] = "$REC_gmt_to_hopper[$REC_insert_count]"; + $state_to_hopper[$rec_countLEADS] = "$REC_state_to_hopper[$REC_insert_count]"; + $phone_to_hopper[$rec_countLEADS] = "$REC_phone_to_hopper[$REC_insert_count]"; + $status_to_hopper[$rec_countLEADS] = "$REC_status_to_hopper[$REC_insert_count]"; + $modify_to_hopper[$rec_countLEADS] = "$REC_modify_to_hopper[$REC_insert_count]"; + $user_to_hopper[$rec_countLEADS] = "$REC_user_to_hopper[$REC_insert_count]"; + $rec_countLEADS++; + $REC_insert_count++; + } + $leads_to_hopper[$rec_countLEADS] = "$aryA[1]"; + $lists_to_hopper[$rec_countLEADS] = "$aryA[2]"; + $gmt_to_hopper[$rec_countLEADS] = "$aryA[3]"; + $phone_to_hopper[$rec_countLEADS] = "$aryA[4]"; + $state_to_hopper[$rec_countLEADS] = "$aryA[5]"; + $status_to_hopper[$rec_countLEADS] = "$aryA[6]"; + $modify_to_hopper[$rec_countLEADS] = "$aryA[7]"; + $user_to_hopper[$rec_countLEADS] = "$aryA[8]"; + if ($DB_show_offset) {print "LEAD_ADD: $aryA[3] $aryA[4] $aryA[5]\n";} + if ($DBX) {print " $w|$LM_results[$w]\n";} + $rec_countLEADS++; + $w++; + } + } + } + ### finish inserting any recycled leads if any + while ($REC_rec_countLEADS > $REC_insert_count) + { + $leads_to_hopper[$rec_countLEADS] = "$REC_leads_to_hopper[$REC_insert_count]"; + $lists_to_hopper[$rec_countLEADS] = "$REC_lists_to_hopper[$REC_insert_count]"; + $gmt_to_hopper[$rec_countLEADS] = "$REC_gmt_to_hopper[$REC_insert_count]"; + $state_to_hopper[$rec_countLEADS] = "$REC_state_to_hopper[$REC_insert_count]"; + $phone_to_hopper[$rec_countLEADS] = "$REC_phone_to_hopper[$REC_insert_count]"; + $status_to_hopper[$rec_countLEADS] = "$REC_status_to_hopper[$REC_insert_count]"; + $modify_to_hopper[$rec_countLEADS] = "$REC_modify_to_hopper[$REC_insert_count]"; + $user_to_hopper[$rec_countLEADS] = "$REC_user_to_hopper[$REC_insert_count]"; + $rec_countLEADS++; + $REC_insert_count++; + } + + if ($DB) {print " Adding to hopper: $rec_countLEADS\n";} + $event_string = "|$campaign_id[$i]|Added to hopper $rec_countLEADS|"; + &event_logger; + + $h=0; + foreach(@leads_to_hopper) + { + if ($leads_to_hopper[$h] != '0') + { + $DNClead=0; + $DNCC=0; + $DNCL=0; + if ( ($use_internal_dnc[$i] =~ /Y/) || ($use_internal_dnc[$i] =~ /AREACODE/) ) + { + if ($use_internal_dnc[$i] =~ /AREACODE/) + { + $pth_areacode = substr($phone_to_hopper[$h], 0, 3); + $pth_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$phone_to_hopper[$h]','$pth_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_to_hopper[$h]';";} + if ($DB) {print " Doing DNC Check: $phone_to_hopper[$h] - $use_internal_dnc[$i]\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DNClead = $aryA[0]; + } + $sthA->finish(); + if ($DNClead != '0') + { + $DNCL++; + $stmtA = "UPDATE vicidial_list SET status='DNCL' where lead_id='$leads_to_hopper[$h]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "Flagging DNC lead: $affected_rows $phone_to_hopper[$h]\n";} + } + } + if ( ( ($use_campaign_dnc[$i] =~ /Y/) || ($use_campaign_dnc[$i] =~ /AREACODE/) ) && ($DNClead == '0') ) + { + if ($use_campaign_dnc[$i] =~ /AREACODE/) + { + $pth_areacode = substr($phone_to_hopper[$h], 0, 3); + $pth_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$phone_to_hopper[$h]','$pth_areacode') and campaign_id='$campaign_id[$i]';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_to_hopper[$h]' and campaign_id='$campaign_id[$i]';";} + if ($DB) {print "Doing CAMP DNC Check: $phone_to_hopper[$h] - $use_campaign_dnc[$i]\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DNClead = ($DNClead + $aryA[0]); + } + $sthA->finish(); + if ($aryA[0] != '0') + { + $DNCC++; + $stmtA = "UPDATE vicidial_list SET status='DNCC' where lead_id='$leads_to_hopper[$h]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "Flagging DNC lead: $affected_rows $phone_to_hopper[$h] $campaign_id[$i]\n";} + } + } + if ($DNClead == '0') + { + $stmtA = "INSERT INTO $vicidial_hopper (lead_id,campaign_id,status,user,list_id,gmt_offset_now,state,priority) values('$leads_to_hopper[$h]','$campaign_id[$i]','READY','','$lists_to_hopper[$h]','$gmt_to_hopper[$h]','$state_to_hopper[$h]','0');"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "LEAD INSERTED: $affected_rows|$leads_to_hopper[$h]|\n";} + if ($DB_detail) + { + $detail_string = "|$campaign_id[$i]|$leads_to_hopper[$h]|$phone_to_hopper[$h]|$state_to_hopper[$h]|$gmt_to_hopper[$h]|$status_to_hopper[$h]|$modify_to_hopper[$h]|$user_to_hopper[$h]|"; + &detail_logger; + } + } + else + { + ##### Auto-Alt-Dial if DNCC or DNCL are set to campaign auto-alt-dial statuses, insert lead into hopper as DNC status + if ( ( ($auto_alt_dial_statuses[$i] =~ / DNCC /) && ($DNCC > 0) ) || ( ($auto_alt_dial_statuses[$i] =~ / DNCL /) && ($DNCL > 0) ) ) + { + $stmtA = "INSERT INTO $vicidial_hopper (lead_id,campaign_id,status,user,list_id,gmt_offset_now,state,priority) values('$leads_to_hopper[$h]','$campaign_id[$i]','DNC','','$lists_to_hopper[$h]','$gmt_to_hopper[$h]','$state_to_hopper[$h]','0');"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "LEAD INSERTED AS DNC: $affected_rows|$leads_to_hopper[$h]|\n";} + if ($DB_detail) + { + $detail_string = "|$campaign_id[$i]|$leads_to_hopper[$h]|$phone_to_hopper[$h]|$state_to_hopper[$h]|$gmt_to_hopper[$h]|$status_to_hopper[$h]|$modify_to_hopper[$h]|$user_to_hopper[$h]|"; + &detail_logger; + } + } + } + } + $h++; + } + if ($DB) {print " DONE with this campaign\n";} + + } + } + + } + $i++; + } + + +$dbhA->disconnect(); + +if($DB) + { + ### calculate time to run script ### + $secY = time(); + $secZ = ($secY - $secT); + + if (!$q) {print "DONE. Script execution time in seconds: $secZ\n";} + } + +exit; + + + +sub event_logger + { + if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$VDHLOGfile") + || die "Can't open $VDHLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } + +sub detail_logger + { + if ($SYSLOG) + { + ### open the log file for writing ### + open(LDout, ">>$VDHDLOGfile") + || die "Can't open $VDHDLOGfile: $!\n"; + print LDout "$now_date|$detail_string|\n"; + close(LDout); + } + $detail_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDlist_summary_export.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDlist_summary_export.pl new file mode 100644 index 00000000..8d5a41a0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDlist_summary_export.pl @@ -0,0 +1,472 @@ +#!/usr/bin/perl +# +# AST_VDlist_summary_export.pl version: 2.0.5 +# +# This script is designed to gather stats for the lists and write to static files +# this script should be run from the web server +# +# /usr/share/astguiclient/AST_VDlist_summary_export.pl --email-list=test@gmail.com --email-sender=test@test.com +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 81214-0001 - First version +# 90106-2308 - Added email sending +# + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debugging messages\n"; + print " [--debugX] = Super debugging messages\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG MODE -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG MODE -----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /--test/i) + { + $T=1; $TEST=1; + print "\n----- TESTING -----\n\n"; + } + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n"; + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n"; + } + else + {$email_sender = 'vicidial@localhost';} + } + } +else + { + print "no command line options set, using defaults.\n"; + } +### end parsing run-time options ### + + +$secX = time(); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); + $year = ($year + 1900); + $mon++; + +# # rerun override - Use this to override the day manually +# $year='2007'; +# $mon='5'; +# $mday='18'; + + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $timestamp = "$year-$mon-$mday $hour:$min:$sec"; + $filedate = "$year$mon$mday"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_dir/) && ($CLIREPORT_dir < 1) ) + {$VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if ($output_format =~ /^pipe-standard$/) + {$DLT = '|'; $txt='.txt'; print "---- pipe-standard ----\n";} +if ($output_format =~ /^csv-standard$/) + {$DLT = "','"; $txt='.csv'; print "---- csv-standard ----\n";} +if ($output_format =~ /^tab-standard$/) + {$DLT = "\t"; $txt='.txt'; print "---- tab-standard ----\n";} +if ($output_format =~ /^pipe-triplep$/) + {$DLT = ''; $txt='.txt'; print "---- pipe-triplep ----\n";} +if ($output_format =~ /^pipe-vici$/) + {$DLT = '|'; $txt='.txt'; print "---- pipe-vici ----\n";} +if ($output_format =~ /^html-rec$/) + {$DLT = ' '; $txt='.html'; print "---- html-rec ----\n";} + +if (!$Q) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_VDlist_summary_export.pl --\n\n"; + print "This program is designed to gather stats on lead lists and post them to a file. \n"; + print "\n"; + print "$timestamp LIST STATUS SUMMARY REPORT\n"; + print "\n"; + } + +$outfile = "LIST_REPORT_$filedate$txt"; + +### open the X out file for writing ### +$PATHoutfile = "$PATHweb/vicidial/server_reports/$outfile"; +open(out, ">$PATHoutfile") + || die "Can't open $PATHoutfile: $!\n"; + +$Ealert = "$timestamp LIST STATUS SUMMARY REPORT\n\n"; + + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$TOTAL_LEADS=0; + + +########################################################################### +########### CURRENT DAY SALES GATHERING outbound-only: vicidial_log ###### +########################################################################### +$stmtA = "select count(*),list_id,status from vicidial_list where list_id>99 group by list_id,status order by list_id,status;"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $count[$i] = $aryA[0]; + $list_id[$i] = $aryA[1]; + $status[$i] = $aryA[2]; + $i++; + } +$sthA->finish(); + +$i=0; +$k=0; +$m=0; +$previous_list=$lists_list_id[0]; +foreach(@list_id) + { + $stmtA = "select status_name from vicidial_statuses where status='$status[$i]';"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $status_name[$i] = $aryA[0]; + } + $sthA->finish(); + if (length($status_name[$i])<1) + { + $stmtA = "select status_name from vicidial_campaign_statuses where status='$status[$i]';"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $status_name[$i] = $aryA[0]; + } + $sthA->finish(); + } + + $status[$i] = sprintf("%-7s", $status[$i]); + $status_name[$i] = sprintf("%-20s", $status_name[$i]); while (length($status_name[$i])>20) {$status_name[$i] =~ s/.$//gi;} + $count[$i] = sprintf("%7s", $count[$i]); + if ( ($list_id[$i] =~ /$previous_list/) && (length($list_id[$i]) == length($previous_list)) ) + { + if ($lists_line_count[$k] == 1) {$p='List Name ';} + if ($lists_line_count[$k] == 2) {$p='Campaign ID ';} + if ($lists_line_count[$k] == 3) {$p='Campaign Name ';} + if ($lists_line_count[$k] == 4) {$p=' TOTAL LEADS IN LIST ';} + if ($lists_line_count[$k] > 4) {$p=' ';} + $lists_line_output[$k] .= "$p $status[$i] $status_name[$i] $count[$i]\n"; + $lists_line_count[$k]++; + $lists_line_tally[$k] = ($lists_line_tally[$k] + $count[$i]); + $lists_list_id[$k] = $list_id[$i]; + } + else + { + if ($lists_line_count[$k] <= 1) {$lists_line_output[$k] .= "List Name \n";} + if ($lists_line_count[$k] <= 2) {$lists_line_output[$k] .= "Campaign ID \n";} + if ($lists_line_count[$k] <= 3) {$lists_line_output[$k] .= "Campaign Name \n";} + if ($lists_line_count[$k] <= 4) {$lists_line_output[$k] .= " TOTAL LEADS IN LIST \n";} + $k++; + $lists_line_output[$k] .= "List ID $status[$i] $status_name[$i] $count[$i]\n"; + $lists_line_count[$k]++; + $lists_line_tally[$k] = ($lists_line_tally[$k] + $count[$i]); + $lists_list_id[$k] = $list_id[$i]; + $previous_list=$list_id[$i]; + } + $i++; + } + + if ($lists_line_count[$k] <= 1) {$lists_line_output[$k] .= "List Name \n";} + if ($lists_line_count[$k] <= 2) {$lists_line_output[$k] .= "Campaign ID \n";} + if ($lists_line_count[$k] <= 3) {$lists_line_output[$k] .= "Campaign Name \n";} + if ($lists_line_count[$k] <= 4) {$lists_line_output[$k] .= " TOTAL LEADS IN LIST \n";} + +$i=0; +foreach(@lists_list_id) + { + if (length($lists_list_id[$i])>2) + { + $stmtA = "select list_name,vicidial_lists.campaign_id,campaign_name from vicidial_lists,vicidial_campaigns where list_id='$lists_list_id[$i]' and vicidial_lists.campaign_id=vicidial_campaigns.campaign_id;"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $lists_list_name[$i] = sprintf("%-30s", $aryA[0]); while (length($lists_list_name[$i])>30) {$lists_list_name[$i] =~ s/.$//gi;} + $lists_campaign_id[$i] = sprintf("%-28s", $aryA[1]); while (length($lists_campaign_id[$i])>28) {$lists_campaign_id[$i] =~ s/.$//gi;} + $lists_campaign_name[$i] = sprintf("%-26s", $aryA[2]); while (length($lists_campaign_name[$i])>26) {$lists_campaign_name[$i] =~ s/.$//gi;} + } + $sthA->finish(); + + $lists_list_id[$i] = sprintf("%-15s", $lists_list_id[$i]); while (length($lists_list_id[$i])>15) {$lists_list_id[$i] =~ s/.$//gi;} + $lists_list_id[$i] = "$lists_list_id[$i] ($i of $k)"; + $lists_list_id[$i] = sprintf("%-32s", $lists_list_id[$i]); while (length($lists_list_id[$i])>32) {$lists_list_id[$i] =~ s/.$//gi;} + $lists_line_tally[$i] = sprintf("%-18s", $lists_line_tally[$i]); while (length($lists_line_tally[$i])>18) {$lists_line_tally[$i] =~ s/.$//gi;} + $TOTAL_LEADS = ($TOTAL_LEADS + $lists_line_tally[$i]); + + $lists_line_output[$i] =~ s/List ID/List ID: $lists_list_id[$i]/gi; + $lists_line_output[$i] =~ s/List Name/List Name: $lists_list_name[$i]/gi; + $lists_line_output[$i] =~ s/Campaign ID/Campaign ID: $lists_campaign_id[$i]/gi; + $lists_line_output[$i] =~ s/Campaign Name/Campaign Name: $lists_campaign_name[$i]/gi; + $lists_line_output[$i] =~ s/TOTAL LEADS IN LIST/TOTAL LEADS IN LIST: $lists_line_tally[$i]/gi; + + $Ealert .= "\n"; + $Ealert .= " LIST INFORMATION STATUS DESCRIPTION COUNT\n"; + $Ealert .= "-------------------------------------------------------------------------------\n"; + $Ealert .= "$lists_line_output[$i]"; + } + $i++; + } + + + + + +if ($ftp_transfer > 0) +{ + use Net::FTP; + + if (!$Q) {print "Sending File Over FTP: $outfile\n";} + $ftp = Net::FTP->new("$VARREPORT_host", Port => $VARREPORT_port); + $ftp->login("$VARREPORT_user","$VARREPORT_pass"); + $ftp->cwd("$VARREPORT_dir"); + $ftp->put("$PATHweb/vicidial/server_reports/$outfile", "$outfile"); + $ftp->quit; +} + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +$Ealert .= "\n"; +$Ealert .= "-------------------------------------------------------------------------------------\n"; +$Ealert .= "LIST REPORT FOR $timestamp: $outfile\n"; +$Ealert .= "TOTAL LEADS IN SYSTEM: $TOTAL_LEADS\n"; +$Ealert .= "\n"; +$Ealert .= "TOTAL LEADS IN SYSTEM BY STATUS:\n"; + +### gather status subtotals +$stmtA = "select count(*),status from vicidial_list where list_id>99 group by status order by status;"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $Tcount[$i] = $aryA[0]; + $Tstatus[$i] = $aryA[1]; + $i++; + } +$sthA->finish(); + +$i=0; +$k=0; +$m=0; +foreach(@Tstatus) + { + $stmtA = "select status_name from vicidial_statuses where status='$Tstatus[$i]';"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Tstatus_name[$i] = $aryA[0]; + } + $sthA->finish(); + if (length($Tstatus_name[$i])<1) + { + $stmtA = "select status_name from vicidial_campaign_statuses where status='$Tstatus[$i]';"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Tstatus_name[$i] = $aryA[0]; + } + $sthA->finish(); + } + + $Tstatus[$i] = sprintf("%-7s", $Tstatus[$i]); + $Tstatus_name[$i] = sprintf("%-20s", $Tstatus_name[$i]); while (length($Tstatus_name[$i])>20) {$Tstatus_name[$i] =~ s/.$//gi;} + $Tcount[$i] = sprintf("%7s", $Tcount[$i]); + + $Ealert .= "$Tstatus[$i] - $Tstatus_name[$i]: $Tcount[$i]\n"; + + $i++; + } + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +print out "$Ealert"; + +close(out); + +###### EMAIL SECTION + +if ( (length($Ealert)>5) && (length($email_list) > 3) ) + { + print "Sending email: $email_list\n"; + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VICIDIAL Lead Lists Report $shipdate"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + ); + $boundary = "====" . time() . "===="; + $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; + + $message = encode_qp( "VICIDIAL Lead Lists Report for $shipdate:\n\n Attachment: $outfile" ); + + $Zfile = "$PATHoutfile"; + + open (F, $Zfile) or die "Cannot read $Zfile: $!"; + binmode F; undef $/; + $attachment = encode_base64(); + close F; + + $boundary = '--'.$boundary; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; + $mail{body} .= "Content-Transfer-Encoding: quoted-printable\n\n"; + $mail{body} .= "$message\n"; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: application/octet-stream; name=\"$outfile\"\n"; + $mail{body} .= "Content-Transfer-Encoding: base64\n"; + $mail{body} .= "Content-Disposition: attachment; filename=\"$outfile\"\n\n"; + $mail{body} .= "$attachment\n"; + $mail{body} .= "$boundary"; + $mail{body} .= "--\n"; + + sendmail(%mail) or die $mail::Sendmail::error; + print "ok. log says:\n", $mail::sendmail::log; ### print mail log for status + + } + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDlist_summary_export_UK.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDlist_summary_export_UK.pl new file mode 100644 index 00000000..a4970092 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDlist_summary_export_UK.pl @@ -0,0 +1,445 @@ +#!/usr/bin/perl +# +# AST_VDlist_summary_export_UK.pl version: 2.0.5 +# +# This script is designed to gather stats for the lists and write to static files +# this script should be run from the web server +# +# /usr/share/astguiclient/AST_VDlist_summary_export_UK.pl --campaign=GOODB-GROUP1 --good-statuses=NEW --filename=UNWORKED_LEADS_YYYY-MM-DD.txt --email-list=test@gmail.com --email-sender=test@test.com +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 90105-2343 - First version +# 90106-2308 - Added email sending +# + +$secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $timestamp = "$year-$mon-$mday $hour:$min:$sec"; + $filedate = "$year$mon$mday"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debugging messages\n"; + print " [--debugX] = Super debugging messages\n"; + print " [--campaign=XXX] = Campaign that sales will be pulled from\n"; + print " [--good-statuses=XXX-XXY] = Statuses that are deemed to be \"Good\". Default NEW\n"; + print " [--filename=XXX] = Name to be used for file\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + + print "\n"; + + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG MODE -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG MODE -----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /--test/i) + { + $T=1; $TEST=1; + print "\n----- TESTING -----\n\n"; + } + if ($args =~ /--campaign=/i) + { + # print "\n|$ARGS|\n\n"; + @data_in = split(/--campaign=/,$args); + $campaign = $data_in[1]; + $campaign =~ s/ .*$//gi; + $campaignSQL = $campaign; + if ($campaignSQL =~ /-/) + { + $campaignSQL =~ s/-/','/gi; + } + $campaignSQL = "'$campaignSQL'"; + } + if ($args =~ /--good-statuses=/i) + { + @data_in = split(/--good-statuses=/,$args); + $good_statuses = $data_in[1]; + $good_statuses =~ s/ .*$//gi; + $good_statusesSQL = $good_statuses; + $good_statusesSQL =~ s/-/','/gi; + $good_statusesSQL = "'$good_statusesSQL'"; + } + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n"; + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n"; + } + else + {$email_sender = 'vicidial@localhost';} + if ($args =~ /--filename=/i) + { + # print "\n|$ARGS|\n\n"; + @data_in = split(/--filename=/,$args); + $filename = $data_in[1]; + $filename =~ s/ .*$//gi; + $filename =~ s/YYYY/$year/gi; + $filename =~ s/MM/$mon/gi; + $filename =~ s/DD/$mday/gi; + $filename_override=1; + } + } + } +else + { + print "no command line options set, using defaults.\n"; + } +### end parsing run-time options ### + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_dir/) && ($CLIREPORT_dir < 1) ) + {$VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$Q) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_VDlist_summary_export_UK.pl --\n\n"; + print "This program is designed to gather stats on lead lists and post them to a file. \n"; + print "\n"; + print "$timestamp UK LIST STATUS SUMMARY REPORT\n"; + print "\n"; + print "================================================================================\n"; + print "Region Postal --------------------- Prioirty ----------------------\n"; + print " Code Code 1 2 7 8 5 6 Bad Total\n"; + print "--------------------------------------------------------------------------------\n"; + } + +$outfile = "UNWORKED_LEADS_$filedate$txt"; +if ($filename_override > 0) {$outfile = $filename;} + +### open the X out file for writing ### +$PATHoutfile = "$PATHweb/vicidial/server_reports/$outfile"; +open(out, ">$PATHoutfile") + || die "Can't open $PATHoutfile: $!\n"; + + +$Ealert .= "$timestamp UK REGION STATUS SUMMARY REPORT\n\n"; +$Ealert .= "================================================================================\n"; +$Ealert .= "Region Postal --------------------- Prioirty ----------------------\n"; +$Ealert .= " Code Code 1 2 7 8 5 6 Bad Total\n"; +$Ealert .= "--------------------------------------------------------------------------------\n"; + + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$TOTAL_LEADS=0; + + +########################################################################### +########### grab lists within campaigns and regions of the UK ###### +########################################################################### + +$stmtA = "select list_id from vicidial_lists where campaign_id IN($campaignSQL);"; +if ($DBX) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $listSQL .= "'$aryA[0]',"; + $i++; + } +$sthA->finish(); +if ($sthArows < 1) {print "ERROR! no lists for campaigns $campaign"; exit;} +else {$listSQL =~ s/,$//gi;} + +$stmtA = "select region,region_code,post_code_prefix,country_code,list_code_id from vicidial_uk_region_codes order by region_code,post_code_prefix limit 2000;"; +if ($DBX) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +$m=0; +while ($sthArows > $m) + { + @aryA = $sthA->fetchrow_array; + if (length($aryA[2])<3) + { + $region[$i] = $aryA[0]; + $region_code[$i] = $aryA[1]; + $post_code_prefix[$i] = $aryA[2]; if (length($post_code_prefix[$i])<2) {$post_code_prefix[$i] = "$post_code_prefix[$i] ";} + $country_code[$i] = $aryA[3]; + $list_code_id[$i] = $aryA[4]; + $i++; + } + $m++; + } +$sthA->finish(); +if ($sthArows < 1) {print "ERROR! no regions in the UK"; exit;} + +$i=0; +$k=0; +$m=0; +$previous_region_code=''; +$p1t=0; $p2t=0; $p7t=0; $p8t=0; $p5t=0; $p6t=0; $p9t=0; $pSt=0; +$p1T=0; $p2T=0; $p7T=0; $p8T=0; $p5T=0; $p6T=0; $p9T=0; $pST=0; +foreach(@region_code) + { + if ( ($region_code[$i] =~ /$previous_region_code/) && (length($region_code[$i]) == length($previous_region_code)) ) + {$do_nothing=1;} + else + { + if ($i > 0) + { + $p1T = ($p1T + $p1t); + $p2T = ($p2T + $p2t); + $p7T = ($p7T + $p7t); + $p8T = ($p8T + $p8t); + $p5T = ($p5T + $p5t); + $p6T = ($p6T + $p6t); + $p9T = ($p9T + $p9t); + $pST = ($pST + $pSt); + $p1t = sprintf("%-8s",$p1t); + $p2t = sprintf("%-8s",$p2t); + $p7t = sprintf("%-8s",$p7t); + $p8t = sprintf("%-8s",$p8t); + $p5t = sprintf("%-8s",$p5t); + $p6t = sprintf("%-8s",$p6t); + $p9t = sprintf("%-7s",$p9t); + $pSt = sprintf("%-8s",$pSt); + $previous_region_code = sprintf("%-3s",$previous_region_code); + + $Ealert .= " Subtotal: $previous_region_code $p1t$p2t$p7t$p8t$p5t$p6t$p9t$pSt\n"; + if ($DB) {print " Subtotal: $previous_region_code $p1t$p2t$p7t$p8t$p5t$p6t$p9t$pSt\n";} + $p1t=0; $p2t=0; $p7t=0; $p8t=0; $p5t=0; $p6t=0; $p9t=0; $pSt=0; + } + $Ealert .= "$region[$i] - $region_code[$i]:\n"; + if ($DB) {print "$region[$i] - $region_code[$i]:\n";} + $previous_region_code=$region_code[$i]; + } + + $p1[$i]=0; $p2[$i]=0; $p7[$i]=0; $p8[$i]=0; $p5[$i]=0; $p6[$i]=0; $p9[$i]=0; $pS[$i]=0; + $stmtA = "select count(*),list_id from vicidial_list where postal_code LIKE \"$post_code_prefix[$i]%\" and list_id IN($listSQL) and status IN($good_statusesSQL) group by list_id order by list_id,status;"; + if ($DBX) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $k=0; + while ($sthArows > $k) + { + @aryA = $sthA->fetchrow_array; + $count[$k] = $aryA[0]; + $list_id[$k] = $aryA[1]; + if ($DBX) {print "$i|$k|$region_code[$i]|$post_code_prefix[$i]| |$count[$k]|$list_id[$k]|\n";} + if ($list_id[$k] =~ /1$/) {$p1[$i]=($p1[$i] + $count[$k]); $p1t=($p1t + $count[$k]);} + if ($list_id[$k] =~ /2$/) {$p2[$i]=($p2[$i] + $count[$k]); $p2t=($p2t + $count[$k]);} + if ($list_id[$k] =~ /7$/) {$p7[$i]=($p7[$i] + $count[$k]); $p7t=($p7t + $count[$k]);} + if ($list_id[$k] =~ /8$/) {$p8[$i]=($p8[$i] + $count[$k]); $p8t=($p8t + $count[$k]);} + if ($list_id[$k] =~ /5$/) {$p5[$i]=($p5[$i] + $count[$k]); $p5t=($p5t + $count[$k]);} + if ($list_id[$k] =~ /6$/) {$p6[$i]=($p6[$i] + $count[$k]); $p6t=($p6t + $count[$k]);} + if ($list_id[$k] =~ /3$|4$|9$|0$/) {$p9[$i]=($p9[$i] + $count[$k]); $p9t=($p9t + $count[$k]);} + $pS[$i] = ($pS[$i] + $count[$k]); + $pSt = ($pSt + $count[$k]); + $k++; + } + $sthA->finish(); + + $p1[$i] = sprintf("%-8s",$p1[$i]); + $p2[$i] = sprintf("%-8s",$p2[$i]); + $p7[$i] = sprintf("%-8s",$p7[$i]); + $p8[$i] = sprintf("%-8s",$p8[$i]); + $p5[$i] = sprintf("%-8s",$p5[$i]); + $p6[$i] = sprintf("%-8s",$p6[$i]); + $p9[$i] = sprintf("%-7s",$p9[$i]); + $pS[$i] = sprintf("%-8s",$pS[$i]); + $post_code_prefix[$i] = sprintf("%-5s",$post_code_prefix[$i]); + + $Ealert .= " $post_code_prefix[$i]$p1[$i]$p2[$i]$p7[$i]$p8[$i]$p5[$i]$p6[$i]$p9[$i]$pS[$i]\n"; + if ($DB) {print " $post_code_prefix[$i]$p1[$i]$p2[$i]$p7[$i]$p8[$i]$p5[$i]$p6[$i]$p9[$i]$pS[$i]\n";} + + $i++; + } + +$p1T = sprintf("%-8s",$p1T); +$p2T = sprintf("%-8s",$p2T); +$p7T = sprintf("%-8s",$p7T); +$p8T = sprintf("%-8s",$p8T); +$p5T = sprintf("%-8s",$p5T); +$p6T = sprintf("%-8s",$p6T); +$p9T = sprintf("%-7s",$p9T); +$pST = sprintf("%-8s",$pST); + +$Ealert .= "TOTAL $p1T$p2T$p7T$p8T$p5T$p6T$p9T$pST\n"; +if ($DB) {print "TOTAL $p1T$p2T$p7T$p8T$p5T$p6T$p9T$pST\n";} + + +if ($ftp_transfer > 0) +{ + use Net::FTP; + + if (!$Q) {print "Sending File Over FTP: $outfile\n";} + $ftp = Net::FTP->new("$VARREPORT_host", Port => $VARREPORT_port); + $ftp->login("$VARREPORT_user","$VARREPORT_pass"); + $ftp->cwd("$VARREPORT_dir"); + $ftp->put("$PATHweb/vicidial/server_reports/$outfile", "$outfile"); + $ftp->quit; +} + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +print out "$Ealert"; +close(out); + +###### EMAIL SECTION + +if ( (length($Ealert)>5) && (length($email_list) > 3) ) + { + print "Sending email: $email_list\n"; + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VICIDIAL Unworked Leads $outfile"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + ); + $boundary = "====" . time() . "===="; + $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; + + $message = encode_qp( "VICIDIAL Unworked leads Report for $shipdate:\n\n Attachment: $outfile" ); + + $Zfile = "$PATHoutfile"; + + open (F, $Zfile) or die "Cannot read $Zfile: $!"; + binmode F; undef $/; + $attachment = encode_base64(); + close F; + + $boundary = '--'.$boundary; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; + $mail{body} .= "Content-Transfer-Encoding: quoted-printable\n\n"; + $mail{body} .= "$message\n"; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: application/octet-stream; name=\"$outfile\"\n"; + $mail{body} .= "Content-Transfer-Encoding: base64\n"; + $mail{body} .= "Content-Disposition: attachment; filename=\"$outfile\"\n\n"; + $mail{body} .= "$attachment\n"; + $mail{body} .= "$boundary"; + $mail{body} .= "--\n"; + + sendmail(%mail) or die $mail::Sendmail::error; + print "ok. log says:\n", $mail::sendmail::log; ### print mail log for status + + } + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDremote_agents.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDremote_agents.pl new file mode 100644 index 00000000..b53fb43a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDremote_agents.pl @@ -0,0 +1,963 @@ +#!/usr/bin/perl +# +# AST_VDremote_agents.pl version 2.2.0 *DBI-version* +# +# SUMMARY: +# This program was designed for people using the Asterisk PBX with VICIDIAL +# +# To use VICIDIAL with remote agents, this must always be running +# +# This program must be run on each local Asterisk machine that has Remote Agents +# +# This script is to run perpetually querying every second to update the remote +# agents that should appear to be logged in so that the calls can be transferred +# out to them properly. +# +# It is good practice to keep this program running by placing the associated +# KEEPALIVE script running every minute to ensure this program is always running +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG: +# 50215-0954 - First version of script +# 50810-1615 - Added database server variable definitions lookup +# 60807-1003 - Changed to DBI +# - Changed to use /etc/astguiclient.conf for configs +# 60814-1726 - Added option for no logging to file +# 61012-1025 - Added performance testing options +# 61110-1443 - Added user_level from vicidial_user record into vicidial_live_agents +# 70213-1306 - Added queuemetrics logging +# 70214-1243 - Added queuemetrics_log_id field to queue_log logging +# 70222-1606 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70417-1346 - Fixed bug that would add unneeded simulated agent lines +# 80128-0105 - Fixed calls_today bug +# 81007-1746 - Added debugX output for count statements and changed to if from while +# 81026-1246 - Added better logging of calls and fixed the DROP bug +# 90808-0247 - Added agent last_state_change field +# 91013-1128 - Added full inbound compatibility with vicidial_live_inbound_agents table +# 91123-1802 - Added outbound_autodial field +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-v] = verbose debug messages\n [--delay=XXX] = delay of XXX seconds per loop, default 2 seconds\n\n"; + } + else + { + if ($args =~ /--delay=/i) + { + @data_in = split(/--delay=/,$args); + $loop_delay = $data_in[1]; + print " LOOP DELAY OVERRIDE!!!!! = $loop_delay seconds\n\n"; + $loop_delay = ($loop_delay * 1000); + } + else + { + $loop_delay = '2000'; + } + if ($args =~ /--debug/i) + { + $DB=1; + print "\n-----DEBUGGING -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + print "no command line options set\n"; + $loop_delay = '2000'; + } +### end parsing run-time options ### + + +# constants +$US='__'; +$MT[0]=''; +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$agents = '@agents'; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + +&get_time_now; # update time/date variables + +if (!$VDRLOGfile) {$VDRLOGfile = "$PATHlogs/remoteagent.$year-$mon-$mday";} +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT vd_server_logs,local_gmt,ext_context FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = $aryA[0]; + $DBSERVER_GMT = $aryA[1]; + $ext_context = $aryA[2]; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + if (length($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } +$sthA->finish(); + + +&get_time_now; # update time/date variables + +$event_string='PROGRAM STARTED||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||'; +&event_logger; # writes to the log and if debug flag is set prints to STDOUT + + +$event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|'; +&event_logger; + +$one_day_interval = 12; # 1 month loops for one year +while($one_day_interval > 0) + { + $endless_loop=5760000; # 30 days minutes at XXX seconds per loop + while($endless_loop > 0) + { + &get_time_now; + + $VDRLOGfile = "$PATHlogs/remoteagent.$year-$mon-$mday"; + + if ($endless_loop =~ /0$|5$/) + { + ### Grab Server values from the database + $stmtA = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = $aryA[0]; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } + $sthA->finish(); + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = $aryA[0]; + $queuemetrics_server_ip = $aryA[1]; + $queuemetrics_dbname = $aryA[2]; + $queuemetrics_login = $aryA[3]; + $queuemetrics_pass = $aryA[4]; + $queuemetrics_log_id = $aryA[5]; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + + ##### grab paused remote agents on this server, then we will delete them + @VLApausedUSER = @MT; + $stmtA = "SELECT user FROM vicidial_live_agents where server_ip='$server_ip' and status IN('PAUSED') and extension LIKE \"R/%\";"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $vla_PAUSED_ct=$sthA->rows; + $r=0; + while ($vla_PAUSED_ct > $r) + { + @aryA = $sthA->fetchrow_array; + $VLApausedUSER[$r] = $aryA[0]; + $r++; + } + $sthA->finish(); + + $r=0; + $VLAaffected_rows=0; + $VLIAaffected_rows=0; + $VLAaffected_rowsTOTAL=0; + $VLIAaffected_rowsTOTAL=0; + while ($vla_PAUSED_ct > $r) + { + ### delete vicidial_live_agents records for paused remote users + $stmtA = "DELETE FROM vicidial_live_agents where user='$VLApausedUSER[$r]' and server_ip='$server_ip' and status IN('PAUSED') and extension LIKE \"R/%\";"; + $VLAaffected_rows = $dbhA->do($stmtA); + ### delete vicidial_live_inbound_agents records for paused remote users + $stmtA = "DELETE FROM vicidial_live_inbound_agents where user='$VLApausedUSER[$r]';"; + $VLIAaffected_rows = $dbhA->do($stmtA); + $VLAaffected_rowsTOTAL = ($VLAaffected_rows + $VLAaffected_rowsTOTAL); + $VLIAaffected_rowsTOTAL = ($VLIAaffected_rows + $VLIAaffected_rowsTOTAL); + $r++; + } + + if ( ($VLAaffected_rowsTOTAL > 0) || ($VLIAaffected_rowsTOTAL > 0) ) + { + $event_string = "| lagged call vla agent DELETED: $VLAaffected_rowsTOTAL|$VLIAaffected_rowsTOTAL"; + &event_logger; + } + + @QHlive_agent_id=@MT; + @QHlead_id=@MT; + @QHuniqueid=@MT; + @QHuser=@MT; + @QHcall_type=@MT; + @QHcampaign_id=@MT; + ##### grab number of QUEUE calls right now and update + $stmtA = "SELECT vla.live_agent_id,vla.lead_id,vla.uniqueid,vla.user,vac.call_type,vac.campaign_id FROM vicidial_live_agents vla,vicidial_auto_calls vac where vla.server_ip='$server_ip' and vla.status IN('QUEUE') and vla.extension LIKE \"R/%\" and vla.uniqueid=vac.uniqueid and vla.channel=vac.channel;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $vla_qh_ct=$sthA->rows; + $w=0; + while ($vla_qh_ct > $w) + { + @aryA = $sthA->fetchrow_array; + $QHlive_agent_id[$w] = $aryA[0]; + $QHlead_id[$w] = $aryA[1]; + $QHuniqueid[$w] = $aryA[2]; + $QHuser[$w] = $aryA[3]; + $QHcall_type[$w] = $aryA[4]; + $QHcampaign_id[$w] = $aryA[5]; + $w++; + } + $sthA->finish(); + + $w=0; + while ($vla_qh_ct > $w) + { + $stmtA = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$SQLdate',comments='REMOTE',calls_today=(calls_today + 1),last_state_change='$SQLdate' where live_agent_id='$QHlive_agent_id[$w]';"; + $Aaffected_rows = $dbhA->do($stmtA); + + $stmtB = "UPDATE vicidial_list set status='XFER',user='$QHuser[$w]' where lead_id='$QHlead_id[$w]';"; + $Baffected_rows = $dbhA->do($stmtB); + + if ($QHcall_type[$w] =~ /IN/) + { + $stmtC = "UPDATE vicidial_closer_log set status='XFER',user='$QHuser[$w]',comments='REMOTE' where lead_id='$QHlead_id[$w]' and uniqueid='$QHuniqueid[$w]' and campaign_id='$QHcampaign_id[$w]' limit 1;"; + $Caffected_rows = $dbhA->do($stmtC); + + $stmtD = "UPDATE vicidial_live_inbound_agents set calls_today=(calls_today + 1),last_call_time='$SQLdate' where user='$QHuser[$w]' and group_id='$QHcampaign_id[$w]';"; + $Daffected_rows = $dbhA->do($stmtD); + + $stmtE = "UPDATE vicidial_inbound_group_agents set calls_today=(calls_today + 1) where user='$QHuser[$w]' and group_id='$QHcampaign_id[$w]';"; + $Eaffected_rows = $dbhA->do($stmtE); + } + else + { + $stmtC = "UPDATE vicidial_log set status='XFER',user='$QHuser[$w]',comments='REMOTE' where uniqueid='$QHuniqueid[$w]';"; + $Caffected_rows = $dbhA->do($stmtC); + + $Daffected_rows=0; + $Eaffected_rows=0; + } + + $event_string = "| QUEUEd listing UPDATEd: |$Aaffected_rows|$Baffected_rows|$Caffected_rows|$Daffected_rows|$Eaffected_rows| |$QHlive_agent_id[$w]|$QHlead_id[$w]|$QHuniqueid[$w]|$QHuser[$w]|$QHcall_type[$w]|$QHcampaign_id[$w]|"; + &event_logger; + + $w++; + } + + #@psoutput = `/bin/ps -f --no-headers -A`; + @psoutput = `/bin/ps -o "%p %a" --no-headers -A`; + + $running_listen = 0; + + $i=0; + foreach (@psoutput) + { + chomp($psoutput[$i]); + + @psline = split(/\/usr\/bin\/perl /,$psoutput[$i]); + + if ($psline[1] =~ /AST_manager_li/) {$running_listen++;} + + $i++; + } + + if (!$running_listen) + { + $endless_loop=0; + $one_day_interval=0; + print "\nPROCESS KILLED NO LISTENER RUNNING... EXITING\n\n"; + } + + if($DB){print "checking to see if listener is dead |$running_listen|\n";} + } + + $user_counter=0; + $DELusers=''; + @DBuser_start=@MT; + @DBuser_level=@MT; + @DBremote_user=@MT; + @DBremote_server_ip=@MT; + @DBremote_campaign=@MT; + @DBremote_conf_exten=@MT; + @DBremote_closer=@MT; + @DBremote_random=@MT; + @loginexistsRANDOM=@MT; + @loginexistsALL=@MT; + @VD_user=@MT; + @VD_extension=@MT; + @VD_status=@MT; + @VD_uniqueid=@MT; + @VD_callerid=@MT; + @VD_random=@MT; + @autocallexists=@MT; + @calllogfinished=@MT; + + ############################################################################### + ###### first, grab all of the ACTIVE remote agents information from the database + ############################################################################### + $stmtA = "SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns FROM vicidial_remote_agents where status IN('ACTIVE') and server_ip='$server_ip' order by user_start;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $TESTrun=0; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $user_start = $aryA[1]; + $number_of_lines = $aryA[2]; + $conf_exten = $aryA[4]; + $campaign_id = $aryA[6]; + $closer_campaigns = $aryA[7]; + + $y=0; + while ($y < $number_of_lines) + { + $random = int( rand(9999999)) + 10000000; + $user_id = ($user_start + $y); + $DBuser_start[$user_counter] = $user_start; + $DBremote_user[$user_counter] = $user_id; + $DBremote_server_ip[$user_counter] = $server_ip; + $DBremote_campaign[$user_counter] = $campaign_id; + $DBremote_conf_exten[$user_counter] = $conf_exten; + if ($conf_exten =~ /999999999999/) + { + $TESTrun++; + $DBremote_conf_exten[$user_counter] = ($user_counter + 8600051); + } + $DBremote_closer[$user_counter] = $closer_campaigns; + $DBremote_random[$user_counter] = $random; + + $y++; + $user_counter++; + } + + $rec_count++; + } + $sthA->finish(); + if ($DB) {print STDERR "$user_counter live remote agents ACTIVE\n";} + + + ############################################################################### + ###### second, grab all of the INACTIVE remote agents information from the database + ############################################################################### + $stmtA = "SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns FROM vicidial_remote_agents where status IN('INACTIVE') and server_ip='$server_ip' order by user_start;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Duser_start = $aryA[1]; + $Dnumber_of_lines = $aryA[2]; + $w=0; + while ($w < $Dnumber_of_lines) + { + $Duser_id = ($Duser_start + $w); + $DELusers .= "R/$Duser_id|"; + $w++; + } + $rec_count++; + } + $sthA->finish(); + # if ($DBX) {print STDERR "INACTIVE remote agents: |$DELusers|\n";} + + + ############################################################################### + ###### third, traverse array of remote agents to be active and insert or update + ###### in vicidial_live_agents and vicidial_live_inbound_agents tables + ############################################################################### + $h=0; + foreach(@DBremote_user) + { + if (length($DBremote_user[$h])>1) + { + $CAMPAIGN_autodial[$h] = 'Y'; + ### find the dial method of the campaign for each remote agent + $stmtA = "SELECT dial_method FROM vicidial_campaigns where campaign_id='$DBremote_campaign[$h]';"; + if ($DBX) {print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $CAMPAIGN_dial_method[$h] = $aryA[0]; + + if ($CAMPAIGN_dial_method[$h] =~ /MANUAL|INBOUND_MAN/) + {$CAMPAIGN_autodial[$h] = 'N';} + } + $sthA->finish(); + + ### check to see if the record exists and only needs random number update + $stmtA = "SELECT count(*) FROM vicidial_live_agents where user='$DBremote_user[$h]' and server_ip='$server_ip' and campaign_id='$DBremote_campaign[$h]' and conf_exten='$DBremote_conf_exten[$h]' and closer_campaigns='$DBremote_closer[$h]' and outbound_autodial='$CAMPAIGN_autodial[$h]';"; + if ($DBX) {print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $loginexistsRANDOM[$h] = $aryA[0]; + } + $sthA->finish(); + + if ($loginexistsRANDOM[$h] > 0) + { + $stmtA = "UPDATE vicidial_live_agents set random_id='$DBremote_random[$h]' where user='$DBremote_user[$h]' and server_ip='$server_ip' and campaign_id='$DBremote_campaign[$h]' and conf_exten='$DBremote_conf_exten[$h]' and closer_campaigns='$DBremote_closer[$h]';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print STDERR "$DBremote_user[$h] $DBremote_campaign[$h] ONLY RANDOM ID UPDATE: $affected_rows\n";} + } + ### check if record for user on server exists at all in vicidial_live_agents + else + { + $stmtA = "SELECT count(*) FROM vicidial_live_agents where user='$DBremote_user[$h]' and server_ip='$server_ip'"; + if ($DBX) {print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $loginexistsALL[$h] = $aryA[0]; + } + $sthA->finish(); + + if ($loginexistsALL[$h] > 0) + { + $stmtA = "UPDATE vicidial_live_agents set random_id='$DBremote_random[$h]',campaign_id='$DBremote_campaign[$h]',conf_exten='$DBremote_conf_exten[$h]',closer_campaigns='$DBremote_closer[$h]',status='READY',last_state_change='$SQLdate',outbound_autodial='$CAMPAIGN_autodial[$h]' where user='$DBremote_user[$h]' and server_ip='$server_ip';"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print STDERR "$DBremote_user[$h] ALL UPDATE: $affected_rows\n";} + # if ($affected_rows>0) + # { + # if ($enable_queuemetrics_logging > 0) + # { + # $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + # or die "Couldn't connect to database: " . DBI->errstr; + + # if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + # $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$DBremote_campaign[$h]',agent='Agent/$DBremote_user[$h]',verb='UNPAUSE',serverid='1';"; + # $Baffected_rows = $dbhB->do($stmtB); + + # $dbhB->disconnect(); + # } + + # } + } + ### no records exist so insert a new one + else + { + # grab the user_level of the agent + $DBuser_level[$h]='1'; + $stmtA = "SELECT user_level FROM vicidial_users where user='$DBuser_start[$h]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBuser_level[$h] = $aryA[0]; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,campaign_id,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,channel,uniqueid,callerid,user_level,comments,last_state_change,outbound_autodial) values('$DBremote_user[$h]','$server_ip','$DBremote_conf_exten[$h]','R/$DBremote_user[$h]','READY','$DBremote_campaign[$h]','$DBremote_random[$h]','$SQLdate','$FDtsSQLdate','$SQLdate','$DBremote_closer[$h]','','','','$DBuser_level[$h]','REMOTE','$SQLdate','$CAMPAIGN_autodial[$h]');"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print STDERR "$DBremote_user[$h] NEW INSERT\n";} + if ($TESTrun > 0) + { + $stmtA = "SELECT count(*) FROM live_sip_channels where extension LIKE \"%999999999999\" and server_ip='$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $LSC_count = $aryA[0]; + } + $sthA->finish(); + + if ($number_of_lines > $LSC_count) + { + $SIqueryCID = "T$CIDdate$DBremote_conf_exten[$h]"; + $stmtA="INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $local_DEF$DBremote_conf_exten[$h]$local_AMP$ext_context','Context: $ext_context','Exten: 999999999999','Priority: 1','Callerid: $SIqueryCID','','','','','');"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print STDERR " TESTrun CALL PLACED: 999999999999 $DBremote_conf_exten[$h] $DBremote_user[$h] NEW INSERT: |$affected_rows|\n";} + } + else {print STDERR "Agent test calls already adequate $number_of_lines !> $LSC_count\n";} + } + if ($affected_rows>0) + { + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$DBremote_campaign[$h]',agent='Agent/$DBremote_user[$h]',verb='AGENTLOGIN',data1='$DBremote_user[$h]$agents',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$DBremote_campaign[$h]',agent='Agent/$DBremote_user[$h]',verb='UNPAUSE',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + } + } + } + ##### If there are selected inbound/closer groups, gather in-group rankings and insert/update if needed + @TEMPingroups=@MT; + $TEMPagentINGROUPS=''; + if (length($DBremote_closer[$h]) > 1) + { + $TEMPagentINGROUPS = $DBremote_closer[$h]; + $TEMPagentINGROUPS =~ s/-$//gi; + @TEMPingroups = split(/ /,$TEMPagentINGROUPS); + $s=0; + foreach(@TEMPingroups) + { + if (length($TEMPingroups[$s]) > 1) + { + $TEMPagentWEIGHT=0; + $TEMPagentCALLS=0; + $TEMPexistsVLIA=0; + # grab the group weight and calls today of the agent in each in-group + $DBuser_level[$h]='1'; + $stmtA = "SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$DBuser_start[$h]' and group_id='$TEMPingroups[$s]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsVIGA=$sthA->rows; + if ($sthArowsVIGA > 0) + { + @aryA = $sthA->fetchrow_array; + $TEMPagentWEIGHT = $aryA[0]; + $TEMPagentCALLS = $aryA[1]; + } + $sthA->finish(); + + $stmtA = "SELECT count(*) FROM vicidial_live_inbound_agents where user='$DBremote_user[$h]' and group_id='$TEMPingroups[$s]' and group_weight='$TEMPagentWEIGHT';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsVLIA=$sthA->rows; + if ($sthArowsVLIA > 0) + { + @aryA = $sthA->fetchrow_array; + $TEMPexistsVLIA = $aryA[0]; + } + $sthA->finish(); + + if ($TEMPexistsVLIA < 1) + { + $stmtA = "INSERT IGNORE INTO vicidial_live_inbound_agents SET user='$DBremote_user[$h]', group_id='$TEMPingroups[$s]', group_weight='$TEMPagentWEIGHT', calls_today='$TEMPagentCALLS', last_call_time='$SQLdate', last_call_finish='$SQLdate' ON DUPLICATE KEY UPDATE group_weight='$TEMPagentWEIGHT';"; + $affected_rows = $dbhA->do($stmtA); + if ( ($DBX) && ($affected_rows > 0) ) {print STDERR "$DBremote_user[$h] VLIA UPDATE: $affected_rows|$TEMPingroups[$s]|$TEMPagentWEIGHT\n";} + } + } + $s++; + } + } + } + $h++; + } + + + ############################################################################### + ###### fourth, validate that the calls that the vicidial_live_agents are on are not dead + ###### and if they are wipe out the values and set the agent record back to READY + ############################################################################### + $stmtA = "SELECT user,extension,status,uniqueid,callerid,lead_id,campaign_id FROM vicidial_live_agents where extension LIKE \"R/%\" and server_ip='$server_ip' and uniqueid > 10;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + $z=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDuser = $aryA[0]; + $VDextension = $aryA[1]; + $VDstatus = $aryA[2]; + $VDuniqueid = $aryA[3]; + $VDcallerid = $aryA[4]; + $VDlead_id = $aryA[5]; + $VDcampaign_id = $aryA[6]; + $VDrandom = int( rand(9999999)) + 10000000; + + $VD_user[$z] = $VDuser; + $VD_extension[$z] = $VDextension; + $VD_status[$z] = $VDstatus; + $VD_uniqueid[$z] = $VDuniqueid; + $VD_callerid[$z] = $VDcallerid; + $VD_lead_id[$z] = $VDlead_id; + $VD_campaign_id[$z] = $VDcampaign_id; + $VD_random[$z] = $VDrandom; + + $z++; + $rec_count++; + } + $sthA->finish(); + if ($DB) {print STDERR "$z remote agents on calls\n";} + + $z=0; + foreach(@VD_user) + { + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where uniqueid='$VD_uniqueid[$z]' and server_ip='$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $autocallexists[$z] = $aryA[0]; + } + $sthA->finish(); + + if ($autocallexists[$z] < 1) + { + if ($DELusers =~ /R\/$VD_user[$z]\|/) + { + $stmtA = "UPDATE vicidial_live_agents set random_id='$VD_random[$z]',status='PAUSED', last_call_finish='$SQLdate',lead_id='',uniqueid='',callerid='',channel='',last_state_change='$SQLdate' where user='$VD_user[$z]' and server_ip='$server_ip';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print STDERR "$VD_user[$z] CALL WIPE UPDATE: $affected_rows|PAUSED|$VD_uniqueid[$z]|$VD_user[$z]|\n";} + if ($affected_rows>0) + { + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='NONE',agent='Agent/$VD_user[$z]',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $stmtB = "SELECT time_id FROM queue_log where agent='Agent/$VD_user[$z]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + $rec_count=0; + while ($sthBrows > $rec_count) + { + @aryB = $sthB->fetchrow_array; + $logintime = $aryB[0]; + $rec_count++; + } + $sthB->finish(); + if ($DBX) {print "LOGOFF TIME LOG: $logintime|$secX|$stmtB|\n";} + + $time_logged_in = ($secX - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='$VD_campaign_id[$z]',agent='Agent/$VD_user[$z]',verb='AGENTLOGOFF',data1='$VD_user[$z]$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + } + } + else + { + $stmtA = "UPDATE vicidial_live_agents set random_id='$VD_random[$z]', last_call_finish='$SQLdate',lead_id='',uniqueid='',callerid='',channel='',last_state_change='$SQLdate' where user='$VD_user[$z]' and server_ip='$server_ip';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print STDERR "$VD_user[$z] CALL WIPE UPDATE: $affected_rows|READY|$VD_uniqueid[$z]|$VD_user[$z]|\n";} + + $stmtA = "UPDATE vicidial_live_agents set status='READY' where user='$VD_user[$z]' and server_ip='$server_ip';"; + $affected_rows = $dbhA->do($stmtA); + if ($DB) {print STDERR "$VD_user[$z] CALL WIPE UPDATE: $affected_rows|READY|$VD_uniqueid[$z]|$VD_user[$z]|\n";} + if ($affected_rows>0) + { + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='NONE',agent='Agent/$VD_user[$z]',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='NONE',queue='NONE',agent='Agent/$VD_user[$z]',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + } + + } + } + ### possible future active call checker + # else + # { + # $stmtA = "SELECT count(*) FROM call_log where caller_code='$VD_callerid[$z]' and server_ip='$server_ip' and end_epoch > 10;"; + # $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + # $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + # $sthArows=$sthA->rows; + # $rec_count=0; + # while ($sthArows > $rec_count) + # { + # @aryA = $sthA->fetchrow_array; + # $calllogfinished[$z] = "$aryA[0]"; + # $rec_count++; + # } + # $sthA->finish(); + # if ($calllogfinished[$z] > 1) + # { + # $stmtA = "UPDATE vicidial_live_agents set random_id='$VD_random[$z]',status='READY', last_call_finish='$SQLdate',lead_id='',uniqueid='',callerid='',channel='' where user='$VD_user[$z]' and server_ip='$server_ip';"; + # $affected_rows = $dbhA->do($stmtA); + # if ($DB) {print STDERR "$VD_user[$z] AGENT READY UPDATE: $affected_rows|READY|$VD_uniqueid[$z]|$VD_callerid[$z]|$VD_user[$z]|\n";} + + # $stmtA = "DELETE from vicidial_auto_calls where callerid='$VD_callerid[$z]' and server_ip='$server_ip';"; + # $affected_rows = $dbhA->do($stmtA); + # if ($DB) {print STDERR "$VD_user[$z] VAC DELETE: $affected_rows|$VD_callerid[$z]|\n";} + # } + # } + + $z++; + } + + + + ############################################################################### + ###### last, wait for a little bit and repeat the loop + ############################################################################### + + ### sleep for X seconds before beginning the loop again + usleep(1*$loop_delay*1000); + + $endless_loop--; + if($DB){print STDERR "\nloop counter: |$endless_loop|\n";} + + ### putting a blank file called "VDAD.kill" in the directory will automatically safely kill this program + if (-e "$PATHhome/VDAD.kill") + { + unlink("$PATHhome/VDAD.kill"); + $endless_loop=0; + $one_day_interval=0; + print "\nPROCESS KILLED MANUALLY... EXITING\n\n" + } + + $bad_grabber_counter=0; + } + + + if($DB){print "DONE... Exiting... Goodbye... See you later... Not really, initiating next loop...\n";} + + $event_string='HANGING UP|'; + &event_logger; + + $one_day_interval--; + } + +$event_string='CLOSING DB CONNECTION|'; +&event_logger; + + +$dbhA->disconnect(); + + +if($DB){print "DONE... Exiting... Goodbye... See you later... Really I mean it this time\n";} + + +exit; + + + + + + + + + +##### SUBROUTINES ##### +sub get_time_now #get the current date and time and epoch for logging call lengths and datetimes + { + $secX = time(); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($secX); + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + if ($isdst) {$LOCAL_GMT_OFF++;} + + $GMT_now = ($secX - ($LOCAL_GMT_OFF * 3600)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($GMT_now); + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + + if ($DB) {print "TIME DEBUG: $LOCAL_GMT_OFF_STD|$LOCAL_GMT_OFF|$isdst| GMT: $hour:$min\n";} + + ($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) {$hour = "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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $filedate = "$year-$mon-$mday"; + + $FDtarget = ($secX + 10); + ($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); + $Fyear = ($Fyear + 1900); + $Fmon++; + if ($Fmon < 10) {$Fmon = "0$Fmon";} + if ($Fmday < 10) {$Fmday = "0$Fmday";} + if ($Fhour < 10) {$Fhour = "0$Fhour";} + if ($Fmin < 10) {$Fmin = "0$Fmin";} + if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDtsSQLdate = "$Fyear$Fmon$Fmday$Fhour$Fmin$Fsec"; + + $BDtarget = ($secX - 10); + ($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); + $Byear = ($Byear + 1900); + $Bmon++; + if ($Bmon < 10) {$Bmon = "0$Bmon";} + if ($Bmday < 10) {$Bmday = "0$Bmday";} + if ($Bhour < 10) {$Bhour = "0$Bhour";} + if ($Bmin < 10) {$Bmin = "0$Bmin";} + if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + $PDtarget = ($secX - 30); + ($Psec,$Pmin,$Phour,$Pmday,$Pmon,$Pyear,$Pwday,$Pyday,$Pisdst) = localtime($PDtarget); + $Pyear = ($Pyear + 1900); + $Pmon++; + if ($Pmon < 10) {$Pmon = "0$Pmon";} + if ($Pmday < 10) {$Pmday = "0$Pmday";} + if ($Phour < 10) {$Phour = "0$Phour";} + if ($Pmin < 10) {$Pmin = "0$Pmin";} + if ($Psec < 10) {$Psec = "0$Psec";} + $PDtsSQLdate = "$Pyear$Pmon$Pmday$Phour$Pmin$Psec"; + + $XDtarget = ($secX - 120); + ($Xsec,$Xmin,$Xhour,$Xmday,$Xmon,$Xyear,$Xwday,$Xyday,$Xisdst) = localtime($XDtarget); + $Xyear = ($Xyear + 1900); + $Xmon++; + if ($Xmon < 10) {$Xmon = "0$Xmon";} + if ($Xmday < 10) {$Xmday = "0$Xmday";} + if ($Xhour < 10) {$Xhour = "0$Xhour";} + if ($Xmin < 10) {$Xmin = "0$Xmin";} + if ($Xsec < 10) {$Xsec = "0$Xsec";} + $XDSQLdate = "$Xyear-$Xmon-$Xmday $Xhour:$Xmin:$Xsec"; + + $TDtarget = ($secX - 600); + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + } + + +sub event_logger + { + if ($DB) {print "$now_date|$event_string|\n";} + if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$VDRLOGfile") + || die "Can't open $VDRLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDsales_export.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDsales_export.pl new file mode 100644 index 00000000..22d1f9be --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDsales_export.pl @@ -0,0 +1,1242 @@ +#!/usr/bin/perl +# +# AST_VDsales_export.pl version: 2.2.0 +# +# This script is designed to gather sales for a VICIDIAL Outbound-only campaign and +# post them to a directory +# +# /usr/share/astguiclient/AST_VDsales_export.pl --campaign=GOODB-GROUP1-GROUP3-GROUP4-SPECIALS-DNC_BEDS --output-format=fixed-as400 --sale-statuses=SALE --debug --filename=BEDSsaleMMDD.txt --date=yesterday --email-list=test@gmail.com --email-sender=test@test.com +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 61219-1118 - First version +# 70503-2137 - Added upsell +# 70611-1154 - Added CLI options +# 70709-1411 - Added FTP transfer option +# 71005-0054 - Altered script to use astguiclient.conf for settings +# 90105-1155 - Added AS400 export formats and changed around date override +# 90106-2309 - Added email sending +# 90620-0900 - Formatting fixes +# 90627-0757 - Added time addition when transfer recordings is enabled +# 90710-0514 - Fixes for data output formatting changes +# 90721-1314 - Added rank and owner as vicidial_list fields +# 90731-0555 - Added call time scheme restriction +# 90807-1632 - Fixed call time bug and call length bug +# 90825-1249 - Added without-camp and without-in options +# 90902-0437 - Added outbound-calltime-ignore and ftp-norun options +# 90909-2322 - Added totals-only option +# + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; +$Q=0; +$DB=0; +$uniqueidLIST='|'; + +# Default FTP account variables +$VARREPORT_host = '10.0.0.4'; +$VARREPORT_user = 'cron'; +$VARREPORT_pass = 'test'; +$VARREPORT_port = '21'; +$VARREPORT_dir = 'REPORTS'; + +# default CLI values +$campaign = 'TESTCAMP'; +$sale_statuses = 'SALE-UPSELL'; +$output_format = 'pipe-standard'; +$outbound_calltime_ignore=0; +$totals_only=0; +$OUTcalls=0; +$OUTtalk=0; +$OUTtalkmin=0; +$INcalls=0; +$INtalk=0; +$INtalkmin=0; + +$secX = time(); +$time = $secX; + ($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +$timestamp = "$year-$mon-$mday $hour:$min:$sec"; +$filedate = "$year$mon$mday"; +$ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; +$shipdate = "$year-$mon-$mday"; +$start_date = "$year$mon$mday"; +$datestamp = "$year/$mon/$mday $hour:$min"; + + +use Time::Local; + +### find epoch of 2AM today +$TWOAMsec = ( ($secX - ($sec + ($min * 60) + ($hour * 3600) ) ) + 7200); +### find epoch of 2AM yesterday +$TWOAMsecY = ($TWOAMsec - 86400); + +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TWOAMsecY); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--date=YYYY-MM-DD] = date override\n"; + print " [--filename=XXX] = Name to be used for file\n"; + print " [--campaign=XXX] = Campaign that sales will be pulled from\n"; + print " [--without-camp=XXX] = Campaign that will be excluded from ALL\n"; + print " [--sale-statuses=XXX-XXY] = Statuses that are deemed to be \"Sales\". Default SALE\n"; + print " NOTE: To include all statuses in the export, use \"--sale-statuses=---ALL---\"\n"; + print " [--output-format=XXX] = Format of file. Default \"pipe-standard\"\n"; + print " [--with-inbound=XXX-XXY] = include the following inbound groups\n"; + print " [--without-in=XXX-XXY] = inbound groups that will be excluded from ALL\n"; + print " [--calltime=XXX] = filter results to only include those calls during this call time\n"; + print " [--outbound-calltime-ignore] = for outbound calls ignores call time\n"; + print " [--totals-only] = print totals of time and calls only\n"; + print " [--ftp-transfer] = Send results file by FTP to another server\n"; + print " [--ftp-audio-transfer] = Send associated audio files to FTP server, dated directories\n"; + print " [--ftp-norun] = Stop program when you get to the FTP transfer\n"; + print " [--with-transfer-audio] = Different method for finding audio, also grabs transfer audio filenames\n"; + print " [--with-did-lookup] = Looks up the DID pattern and name the call came in on if possible\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + print " [--quiet] = quiet\n"; + print " [--test] = test\n"; + print " [--debug] = debugging messages\n"; + print " [--debugX] = Super debugging messages\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG MODE -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG MODE -----\n\n"; + } + if ($args =~ /-quiet/i) + { + $q=1; $Q=1; + } + if ($args =~ /-totals-only/i) + {$totals_only=1;} + + if ($args =~ /--date=/i) + { + @data_in = split(/--date=/,$args); + $shipdate = $data_in[1]; + $shipdate =~ s/ .*//gi; + if ($shipdate =~ /today/) + { + $shipdate="$year-$mon-$mday"; + $time = $TWOAMsec; + } + else + { + if ($shipdate =~ /yesterday/) + { + $shipdate="$Tyear-$Tmon-$Tmday"; + $year = $Tyear; + $mon = $Tmon; + $mday = $Tmday; + $time=$TWOAMsecY; + } + else + { + @cli_date = split("-",$shipdate); + $year = $cli_date[0]; + $mon = $cli_date[1]; + $mday = $cli_date[2]; + $cli_date[1] = ($cli_date[1] - 1); + $time = timelocal(0,0,2,$cli_date[2],$cli_date[1],$cli_date[0]); + } + } + if (!$Q) {print "\n----- DATE OVERRIDE: $shipdate -----\n\n";} + } + else + { + $time=$TWOAMsec; + } + + + if ($args =~ /--campaign=/i) + { + # print "\n|$ARGS|\n\n"; + @data_in = split(/--campaign=/,$args); + $campaign = $data_in[1]; + $campaign =~ s/ .*$//gi; + $campaignSQL = $campaign; + if ($campaignSQL =~ /-/) + { + $campaignSQL =~ s/-/','/gi; + } + $campaignSQL = "'$campaignSQL'"; + } + if ($args =~ /--without-camp=/i) + { + # print "\n|$ARGS|\n\n"; + @data_in = split(/--without-camp=/,$args); + $NOTcampaign = $data_in[1]; + $NOTcampaign =~ s/ .*$//gi; + $NOTcampaignSQL = $NOTcampaign; + if ($NOTcampaignSQL =~ /-/) + { + $NOTcampaignSQL =~ s/-/','/gi; + } + $NOTcampaignSQL = "'$NOTcampaignSQL'"; + } + if ($args =~ /--filename=/i) + { + # print "\n|$ARGS|\n\n"; + @data_in = split(/--filename=/,$args); + $filename = $data_in[1]; + $filename =~ s/ .*$//gi; + $filename =~ s/YYYY/$year/gi; + $filename =~ s/MM/$mon/gi; + $filename =~ s/DD/$mday/gi; + $filename_override=1; + } + if ($args =~ /--sale-statuses=/i) + { + @data_in = split(/--sale-statuses=/,$args); + $sale_statuses = $data_in[1]; + $sale_statuses =~ s/ .*$//gi; + if ($sale_statuses =~ /---ALL---/) + {if (!$Q) {print "\n----- EXPORT ALL STATUSES -----\n\n";} } + } + if ($args =~ /--output-format=/i) + { + @data_in = split(/--output-format=/,$args); + $output_format = $data_in[1]; + $output_format =~ s/ .*$//gi; + } + if ($args =~ /--with-inbound=/i) + { + @data_in = split(/--with-inbound=/,$args); + $with_inbound = $data_in[1]; + $with_inbound =~ s/ .*$//gi; + } + if ($args =~ /--without-in=/i) + { + @data_in = split(/--without-in=/,$args); + $NOTwith_inbound = $data_in[1]; + $NOTwith_inbound =~ s/ .*$//gi; + } + if ($args =~ /--calltime=/i) + { + # print "\n|$ARGS|\n\n"; + @data_in = split(/--calltime=/,$args); + $call_time = $data_in[1]; + $call_time =~ s/ .*$//gi; + } + if ($args =~ /--outbound-calltime-ignore/i) + { + $outbound_calltime_ignore=1; + if (!$Q) + {print "\n----- IGNORE CALLTIME FOR OUTBOUND -----\n\n";} + } + if ($args =~ /-ftp-transfer/i) + { + if (!$Q) + {print "\n----- FTP TRANSFER MODE -----\n\n";} + $ftp_transfer=1; + } + if ($args =~ /-ftp-audio-transfer/i) + { + if (!$Q) + {print "\n----- FTP AUDIO TRANSFER MODE -----\n\n";} + $ftp_audio_transfer=1; + + ### find wget binary + $wgetbin = ''; + if ( -e ('/bin/wget')) {$wgetbin = '/bin/wget';} + else + { + if ( -e ('/usr/bin/wget')) {$wgetbin = '/usr/bin/wget';} + else + { + if ( -e ('/usr/local/bin/wget')) {$wgetbin = '/usr/local/bin/wget';} + else + { + print "Can't find wget binary! Exiting...\n"; + exit + } + } + } + ### find find binary + $findbin = ''; + if ( -e ('/bin/find')) {$findbin = '/bin/find';} + else + { + if ( -e ('/usr/bin/find')) {$findbin = '/usr/bin/find';} + else + { + if ( -e ('/usr/local/bin/find')) {$findbin = '/usr/local/bin/find';} + else + { + print "Can't find find binary! Exiting...\n"; + exit + } + } + } + $tempdir = '/root/tempaudioexport'; + if (!-e "$tempdir") + {`mkdir -p $tempdir`;} + ## remove old audio files from directory + `$findbin $tempdir/ -maxdepth 1 -type f -mtime +0 -print | xargs rm -f`; + } + if ($args =~ /-ftp-norun/i) + { + if (!$Q) + {print "\n----- FTP NORUN MODE -----\n\n";} + $ftp_norun=1; + } + if ($args =~ /-with-transfer-audio/i) + { + if (!$Q) + {print "\n----- AUDIO TRANSFER LOOKUP MODE -----\n\n";} + $with_transfer_audio=1; + } + if ($args =~ /-with-did-lookup/i) + { + if (!$Q) + {print "\n----- DID LOOKUP ENABLED -----\n\n";} + $with_did_lookup=1; + } + if ($args =~ /--test/i) + { + $T=1; $TEST=1; + print "\n----- TESTING -----\n\n"; + } + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n"; + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n"; + } + else + {$email_sender = 'vicidial@localhost';} + } + } +else + { + print "no command line options set, using defaults.\n"; + } +### end parsing run-time options ### + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_dir/) && ($CLIREPORT_dir < 1) ) + {$VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if ($output_format =~ /^pipe-standard$/) + {$DLT = '|'; $txt='.txt'; print "---- pipe-standard ----\n";} +if ($output_format =~ /^csv-standard$/) + {$DLT = "','"; $txt='.csv'; print "---- csv-standard ----\n";} +if ($output_format =~ /^tab-standard$/) + {$DLT = "\t"; $txt='.txt'; print "---- tab-standard ----\n";} +if ($output_format =~ /^pipe-triplep$/) + {$DLT = ''; $txt='.txt'; print "---- pipe-triplep ----\n";} +if ($output_format =~ /^pipe-vici$/) + {$DLT = '|'; $txt='.txt'; print "---- pipe-vici ----\n";} +if ($output_format =~ /^html-rec$/) + {$DLT = ' '; $txt='.html'; print "---- html-rec ----\n";} +if ($output_format =~ /^fixed-as400$/) + {$DLT = ''; $txt='.txt'; print "---- fixed-as400 ----\n";} + +if ($sale_statuses =~ /---ALL---/) + { + $sale_statusesSQL=''; + $close_statusesSQL=''; + } +else + { + $sale_statusesSQL = $sale_statuses; + $sale_statusesSQL =~ s/-/','/gi; + $sale_statusesSQL = "'$sale_statusesSQL'"; + $close_statusesSQL = $sale_statusesSQL; + $sale_statusesSQL = " and vicidial_log.status IN($sale_statusesSQL)"; + $close_statusesSQL = " and vicidial_closer_log.status IN($close_statusesSQL)"; + } + + +if (length($with_inbound) < 2) + { + if (length($NOTwith_inbound) < 2) + {$with_inboundSQL = '';} + else + { + $with_inboundSQL = $NOTwith_inbound; + $with_inboundSQL =~ s/-/','/gi; + $with_inboundSQL = "vicidial_closer_log.campaign_id NOT IN('$with_inboundSQL')"; + } + } +else + { + $with_inboundSQL = $with_inbound; + $with_inboundSQL =~ s/-/','/gi; + $with_inboundSQL = "vicidial_closer_log.campaign_id IN('$with_inboundSQL')"; + } + +if (length($campaignSQL) < 2) + { + if (length($NOTcampaignSQL) < 2) + {$campaignSQL = "vicidial_log.campaign_id NOT IN('')";} + else + {$campaignSQL = "vicidial_log.campaign_id NOT IN($NOTcampaignSQL)";} + } +else + {$campaignSQL = "vicidial_log.campaign_id IN($campaignSQL)";} + +if (!$Q) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_VDsales_export.pl --\n\n"; + print "This program is designed to gather sales from a VICIDIAL outbound-only campaign and post them to a file. \n"; + print "\n"; + print "Campaign: $campaign $campaignSQL\n"; + print "Sale Statuses: $sale_statuses $sale_statusesSQL\n"; + print "Output Format: $output_format\n"; + print "With Inbound: $with_inbound $with_inboundSQL\n"; + print "\n"; + } + +$outfile = "$campaign$US$filedate$US$sale_statuses$txt"; +if ($filename_override > 0) {$outfile = $filename;} + +### open the X out file for writing ### +$PATHoutfile = "$PATHweb/vicidial/server_reports/$outfile"; +open(out, ">$PATHoutfile") + || die "Can't open $PATHoutfile: $!\n"; + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$TOTAL_SALES=0; + + + +$stmtA = "SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$call_time';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + if ($DBX) {print " $sthArows|$stmtA|\n";} +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Gct_default_start = "$aryA[3]"; + $Gct_default_stop = "$aryA[4]"; + $Gct_sunday_start = "$aryA[5]"; + $Gct_sunday_stop = "$aryA[6]"; + $Gct_monday_start = "$aryA[7]"; + $Gct_monday_stop = "$aryA[8]"; + $Gct_tuesday_start = "$aryA[9]"; + $Gct_tuesday_stop = "$aryA[10]"; + $Gct_wednesday_start = "$aryA[11]"; + $Gct_wednesday_stop = "$aryA[12]"; + $Gct_thursday_start = "$aryA[13]"; + $Gct_thursday_stop = "$aryA[14]"; + $Gct_friday_start = "$aryA[15]"; + $Gct_friday_stop = "$aryA[16]"; + $Gct_saturday_start = "$aryA[17]"; + $Gct_saturday_stop = "$aryA[18]"; + $sthA->finish(); + } +else + { + if ($DB > 0) {print "CALL TIME NOT FOUND: $call_time\n";} + $call_time=''; + } + + +########################################################################### +########### CURRENT DAY SALES GATHERING outbound-only: vicidial_log ###### +########################################################################### +$stmtA = "select vicidial_log.user,first_name,last_name,address1,address2,city,state,postal_code,vicidial_list.phone_number,vicidial_list.email,security_phrase,vicidial_list.comments,call_date,vicidial_list.lead_id,vicidial_users.full_name,vicidial_log.status,vicidial_list.vendor_lead_code,vicidial_list.source_id,vicidial_log.list_id,title,address3,last_local_call_time,uniqueid,length_in_sec,vicidial_list.list_id,vicidial_list.list_id,UNIX_TIMESTAMP(vicidial_log.call_date),vicidial_campaigns.campaign_name,vicidial_campaigns.campaign_cid from vicidial_list,vicidial_log,vicidial_users,vicidial_campaigns where $campaignSQL $sale_statusesSQL and call_date > '$shipdate 00:00:01' and call_date < '$shipdate 23:59:59' and vicidial_log.lead_id=vicidial_list.lead_id and vicidial_users.user=vicidial_log.user and vicidial_log.campaign_id=vicidial_campaigns.campaign_id order by call_date;"; +if ($output_format =~ /^tab-QMcustomUSA$/) + { + $stmtA = "select vicidial_log.user,8,8,8,8,8,8,8,vicidial_log.phone_number,8,8,8,call_date,vicidial_log.lead_id,vicidial_users.full_name,vicidial_log.status,8,8,vicidial_log.list_id,8,8,call_date,uniqueid,length_in_sec,vicidial_log.list_id,vicidial_log.list_id,UNIX_TIMESTAMP(vicidial_log.call_date),vicidial_campaigns.campaign_name,vicidial_campaigns.campaign_cid from vicidial_log,vicidial_users,vicidial_campaigns where $campaignSQL $sale_statusesSQL and call_date > '$shipdate 00:00:01' and call_date < '$shipdate 23:59:59' and vicidial_users.user=vicidial_log.user and vicidial_log.campaign_id=vicidial_campaigns.campaign_id order by call_date;"; + } +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; + if ($DB) {print "$sthArows|$stmtA|\n";} +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $user = $aryA[0]; + $first_name = $aryA[1]; + $last_name = $aryA[2]; + $address1 = $aryA[3]; + $address2 = $aryA[4]; + $city = $aryA[5]; + $state = $aryA[6]; + $postal_code = $aryA[7]; + $phone_number = $aryA[8]; + $email = $aryA[9]; + $security = $aryA[10]; + $comments = $aryA[11]; + $call_date = $aryA[12]; + $lead_id = $aryA[13]; + $agent_name = $aryA[14]; + $status = $aryA[15]; + $vendor_id = $aryA[16]; + $source_id = $aryA[17]; + $list_id = $aryA[18]; + $title = $aryA[19]; + $address3 = $aryA[20]; + $last_local_call_time = $aryA[21]; + $vicidial_id = $aryA[22]; + $uniqueid = $aryA[22]; + $length_in_sec = $aryA[23]; + $rank = $aryA[24]; + $owner = $aryA[25]; + $epoch = $aryA[26]; + $did_name = $aryA[27]; + $did_pattern = $aryA[28]; + + $outbound = 'Y'; + $domestic = 'Y'; + $queue_seconds = '0'; + $closer=''; + + &select_format_loop; + + $TOTAL_SALES++; + } +$sthA->finish(); + +if (length($with_inboundSQL)>3) + { + ########################################################################### + ########### CURRENT DAY SALES GATHERING inbound-only: vicidial_closer_log ###### + ########################################################################### + $stmtA = "select vicidial_closer_log.user,first_name,last_name,address1,address2,city,state,postal_code,vicidial_list.phone_number,vicidial_list.email,security_phrase,vicidial_list.comments,call_date,vicidial_list.lead_id,vicidial_users.full_name,vicidial_closer_log.status,vicidial_list.vendor_lead_code,vicidial_list.source_id,vicidial_closer_log.list_id,campaign_id,title,address3,last_local_call_time,xfercallid,closecallid,uniqueid,length_in_sec,queue_seconds,vicidial_list.list_id,vicidial_list.list_id,UNIX_TIMESTAMP(vicidial_closer_log.call_date),agent_alert_delay from vicidial_list,vicidial_closer_log,vicidial_users,vicidial_inbound_groups where $with_inboundSQL $close_statusesSQL and call_date > '$shipdate 00:00:01' and call_date < '$shipdate 23:59:59' and vicidial_closer_log.lead_id=vicidial_list.lead_id and vicidial_users.user=vicidial_closer_log.user and vicidial_inbound_groups.group_id=vicidial_closer_log.campaign_id order by call_date;"; + if ($output_format =~ /^tab-QMcustomUSA$/) + { + $stmtA = "select vicidial_closer_log.user,8,8,8,8,8,8,8,vicidial_closer_log.phone_number,8,8,8,call_date,vicidial_closer_log.lead_id,vicidial_users.full_name,vicidial_closer_log.status,8,8,vicidial_closer_log.list_id,campaign_id,8,8,call_date,xfercallid,closecallid,uniqueid,length_in_sec,queue_seconds,vicidial_closer_log.list_id,vicidial_closer_log.list_id,UNIX_TIMESTAMP(vicidial_closer_log.call_date),agent_alert_delay from vicidial_closer_log,vicidial_users,vicidial_inbound_groups where $with_inboundSQL $close_statusesSQL and call_date > '$shipdate 00:00:01' and call_date < '$shipdate 23:59:59' and vicidial_users.user=vicidial_closer_log.user and vicidial_inbound_groups.group_id=vicidial_closer_log.campaign_id order by call_date;"; + } + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($DB) {print "$sthArows|$stmtA|\n";} + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $closer = $aryA[0]; + $first_name = $aryA[1]; + $last_name = $aryA[2]; + $address1 = $aryA[3]; + $address2 = $aryA[4]; + $city = $aryA[5]; + $state = $aryA[6]; + $postal_code = $aryA[7]; + $phone_number = $aryA[8]; + $email = $aryA[9]; + $security = $aryA[10]; + $comments = $aryA[11]; + $call_date = $aryA[12]; + $lead_id = $aryA[13]; + $closer_name = $aryA[14]; + $status = $aryA[15]; + $vendor_id = $aryA[16]; + $source_id = $aryA[17]; + $list_id = $aryA[18]; + $campaign_id = $aryA[19]; + $title = $aryA[20]; + $address3 = $aryA[21]; + $last_local_call_time = $aryA[22]; + $xfercallid = $aryA[23]; + $vicidial_id = $aryA[24]; + $uniqueid = $aryA[25]; + $length_in_sec = $aryA[26]; + $queue_seconds = $aryA[27]; + $rank = $aryA[28]; + $owner = $aryA[29]; + $epoch = $aryA[30]; + $agent_alert_delay = int($aryA[31] / 1000); + + $outbound = 'N'; + $domestic = 'Y'; + $user = ''; + $agent_name=''; + + $stmtB = "select vicidial_xfer_log.user,full_name from vicidial_xfer_log,vicidial_users where lead_id='$lead_id' and closer='$closer' and xfercallid='$xfercallid' and call_date > '$shipdate 00:00:01' and call_date < '$shipdate 23:59:59' and vicidial_users.user=vicidial_xfer_log.user order by call_date desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $user = $aryB[0]; + $agent_name = $aryB[1]; + } + $sthB->finish(); + + &select_format_loop; + + $TOTAL_SALES++; + } + $sthA->finish(); + } + +close(out); + + +###### EMAIL SECTION + +if ( (length($Ealert)>5) && (length($email_list) > 3) ) + { + print "Sending email: $email_list\n"; + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VICIDIAL Lead Export $outfile"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + ); + $boundary = "====" . time() . "===="; + $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; + + $message = encode_qp( "VICIDIAL Lead Export:\n\n Attachment: $outfile\n Total Records: $TOTAL_SALES\n" ); + + $Zfile = "$PATHoutfile"; + + open (F, $Zfile) or die "Cannot read $Zfile: $!"; + binmode F; undef $/; + $attachment = encode_base64(); + close F; + + $boundary = '--'.$boundary; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; + $mail{body} .= "Content-Transfer-Encoding: quoted-printable\n\n"; + $mail{body} .= "$message\n"; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: application/octet-stream; name=\"$outfile\"\n"; + $mail{body} .= "Content-Transfer-Encoding: base64\n"; + $mail{body} .= "Content-Disposition: attachment; filename=\"$outfile\"\n\n"; + $mail{body} .= "$attachment\n"; + $mail{body} .= "$boundary"; + $mail{body} .= "--\n"; + + sendmail(%mail) or die $mail::Sendmail::error; + print "ok. log says:\n", $mail::sendmail::log; ### print mail log for status + + } + + + +# FTP overrides- +# $VARREPORT_host = '10.0.0.4'; +# $VARREPORT_port = '21'; +# $VARREPORT_user = 'cron'; +# $VARREPORT_pass = 'test'; +# $VARREPORT_dir = ''; + +$NODATEDIR = 0; # Don't use dated directories for audio +$YEARDIR = 1; # put dated directories in a year directory first + +if ($ftp_transfer > 0) + { + use Net::FTP; + + if (!$Q) {print "Sending File Over FTP: $outfile\n";} + $ftp = Net::FTP->new("$VARREPORT_host", Port => $VARREPORT_port); + $ftp->login("$VARREPORT_user","$VARREPORT_pass"); + $ftp->cwd("$VARREPORT_dir"); + $ftp->put("$PATHweb/vicidial/server_reports/$outfile", "$outfile"); + $ftp->quit; + } + +if ( ( ($DB) || ($totals_only > 0) ) && ($output_format =~ /^tab-QMcustomUSA$/) ) + { + if ($OUTtalk > 0) {$OUTtalkmin = ($OUTtalk / 60);} + if ($INtalk > 0) {$INtalkmin = ($INtalk / 60);} + $OUTtalkmin = sprintf("%10.2f",$OUTtalkmin); + $INtalkmin = sprintf("%10.2f",$INtalkmin); + $OUTcalls = sprintf("%10s",$OUTcalls); + $INcalls = sprintf("%10s",$INcalls); + $OUTtalk = sprintf("%10s",$OUTtalk); + $INtalk = sprintf("%10s",$INtalk); + print "OUTBOUND CALLS: $OUTcalls\n"; + print "OUTBOUND SECONDS: $OUTtalk\n"; + print "OUTBOUND MINUTES: $OUTtalkmin\n"; + print "INBOUND CALLS: $INcalls\n"; + print "INBOUND SECONDS: $INtalk\n"; + print "INBOUND MINUTES: $INtalkmin\n"; + } + +if ($ftp_audio_transfer > 0) + { + use Net::FTP; + opendir(FILE, "$tempdir/"); + @FILES = readdir(FILE); + + if (!$Q) {print "Sending Audio Over FTP: $#FILES\n";} + + if ($ftp_norun > 0) + {exit;} + + $i=0; + foreach(@FILES) + { + if ( (length($FILES[$i]) > 4) && (!-d "$tempdir/$FILES[$i]") ) + { + $ftp = Net::FTP->new("$VARREPORT_host", Port => "$VARREPORT_port", Debug => "$DB", Passive => "1"); + $ftp->login("$VARREPORT_user","$VARREPORT_pass"); + if (length($VARREPORT_dir) > 0) + {$ftp->cwd("$VARREPORT_dir");} + if ($NODATEDIR < 1) + { + if ($YEARDIR > 0) + { + $ftp->mkdir("$year"); + $ftp->cwd("$year"); + } + $ftp->mkdir("$start_date"); + $ftp->cwd("$start_date"); + } + $start_date_PATH = "$start_date/"; + $ftp->binary(); + $ftp->put("$tempdir/$FILES[$i]", "$FILES[$i]"); + $ftp->quit; + } + $i++; + } + } + + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if (!$Q) {print "SALES EXPORT FOR $shipdate: $outfile\n";} +if (!$Q) {print "TOTAL SALES: $TOTAL_SALES\n";} +if (!$Q) {print "TOTAL EXCLUDED BY CALLTIME: $CALLTIME_KICK\n";} +if (!$Q) {print "script execution time in seconds: $secZ minutes: $secZm\n";} + +exit; + + + + + +### Subroutine for formatting of the output ### +sub select_format_loop + { + $within_calltime = 1; + + if (length($call_time) > 0) + { + $CTtarget = ($secX - 10); + ($Csec,$Cmin,$Chour,$Cmday,$Cmon,$Cyear,$Cwday,$Cyday,$Cisdst) = localtime($epoch); + if ($Chour < 10) {$Chour = "0$Chour";} + if ($Cmin < 10) {$Cmin = "0$Cmin";} + $CThourminute = "$Chour$Cmin"; + + $CTstart = $Gct_default_start; + $CTstop = $Gct_default_stop; + + if ( ($Cwday == 0) && ( ($Gct_sunday_start > 0) && ($Gct_sunday_stop > 0) ) ) + {$CTstart = $Gct_sunday_start; $CTstop = $Gct_sunday_stop;} + if ( ($Cwday == 1) && ( ($Gct_monday_start > 0) && ($Gct_monday_stop > 0) ) ) + {$CTstart = $Gct_monday_start; $CTstop = $Gct_monday_stop;} + if ( ($Cwday == 2) && ( ($Gct_tuesday_start > 0) && ($Gct_tuesday_stop > 0) ) ) + {$CTstart = $Gct_tuesday_start; $CTstop = $Gct_tuesday_stop;} + if ( ($Cwday == 3) && ( ($Gct_wednesday_start > 0) && ($Gct_wednesday_stop > 0) ) ) + {$CTstart = $Gct_wednesday_start; $CTstop = $Gct_wednesday_stop;} + if ( ($Cwday == 4) && ( ($Gct_thursday_start > 0) && ($Gct_thursday_stop > 0) ) ) + {$CTstart = $Gct_thursday_start; $CTstop = $Gct_thursday_stop;} + if ( ($Cwday == 5) && ( ($Gct_friday_start > 0) && ($Gct_friday_stop > 0) ) ) + {$CTstart = $Gct_friday_start; $CTstop = $Gct_friday_stop;} + if ( ($Cwday == 6) && ( ($Gct_saturday_start > 0) && ($Gct_saturday_stop > 0) ) ) + {$CTstart = $Gct_saturday_start; $CTstop = $Gct_saturday_stop;} + + if ( ($CThourminute < $CTstart) || ($CThourminute > $CTstop) ) + { + if ($DB > 0) {print "Call is outside of defined call time: $CThourminute|$Cwday| |$CTstart|$CTstop| \n";} + $within_calltime=0; + } + } + + if ( ($within_calltime > 0) || ( ($outbound_calltime_ignore > 0) && ($outbound =~ /Y/) ) ) + { + $str=''; + if ($T) + { + # $user = '1234'; + $agent_name = 'Joe Agent'; + # $closer = '4321'; + $closer_name = 'Jane Closer'; + $security = '4111111111111111'; + $comments = 'VISA'; + $phone_number =~ s/^\d\d\d\d\d/23456/gi; + $address1 =~ s/^..../1234 /gi + } + + ##### BEGIN standard audio lookup ##### + if ($with_transfer_audio < 1) + { + $ivr_id = '0'; + $ivr_filename = ''; + + $stmtB = "select recording_id,filename,location from recording_log where lead_id='$lead_id' and start_time > '$shipdate 00:00:01' and start_time < '$shipdate 23:59:59' order by length_in_sec desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + $rec_countB=0; + while ($sthBrows > $rec_countB) + { + @aryB = $sthB->fetchrow_array; + $ivr_id = $aryB[0]; + $ivr_filename = $aryB[1]; + $ivr_location = $aryB[2]; + $rec_countB++; + } + $sthB->finish(); + + if (length($ivr_id)<3) + { + $stmtB = "select recording_id,filename,location from recording_log where lead_id='$lead_id' order by length_in_sec desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + $rec_countB=0; + while ($sthBrows > $rec_countB) + { + @aryB = $sthB->fetchrow_array; + $ivr_id = $aryB[0]; + $ivr_filename = $aryB[1]; + $ivr_location = $aryB[2]; + $rec_countB++; + } + $sthB->finish(); + + if (length($ivr_id)<3) + { + $stmtB = "select recording_id,filename,location from recording_log where filename LIKE \"%$phone_number%\" order by length_in_sec desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + $rec_countB=0; + while ($sthBrows > $rec_countB) + { + @aryB = $sthB->fetchrow_array; + $ivr_id = $aryB[0]; + $ivr_filename = $aryB[1]; + $ivr_location = $aryB[2]; + $rec_countB++; + } + $sthB->finish(); + } + } + + if ( ($ftp_audio_transfer > 0) && (length($ivr_filename) > 3) && (length($ivr_location) > 5) ) + { + @ivr_path = split(/\//,$ivr_location); + $path_file = $ivr_path[$#ivr_path]; + `$wgetbin -q --output-document=$tempdir/$path_file $ivr_location `; + } + } + ##### END standard audio lookup ##### + + ##### BEGIN transfer audio lookup ##### + else + { + $ivr_id = '0'; + $ivr_filename = ''; + $ivr_location = ''; + + $stmtB = "select recording_id,filename,location from recording_log where vicidial_id='$vicidial_id' and start_time > '$shipdate 00:00:01' and start_time < '$shipdate 23:59:59' order by start_time limit 10;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + $rec_countB=0; + while ($sthBrows > $rec_countB) + { + @aryB = $sthB->fetchrow_array; + if ($rec_countB > 0) + { + $ivr_id .= "|"; + $ivr_filename .= "|"; + } + $ivr_id .= "$aryB[0]"; + $ivr_location = "$aryB[2]"; + @ivr_path = split(/\//,$ivr_location); + $path_file = $ivr_path[$#ivr_path]; + $ivr_filename .= "$path_file"; + $rec_countB++; + if ($ftp_audio_transfer > 0) + { + `$wgetbin -q --output-document=$tempdir/$path_file $aryB[2] `; + } + } + $sthB->finish(); + + ### Look for other closer calls after this call + $more_calls[0]=''; + $stmtB = "select closecallid,length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where lead_id='$lead_id' and call_date > '$call_date' and call_date < '$shipdate 23:59:59' and campaign_id=group_id order by call_date limit 10;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($DBX > 0) {print "$sthBrows|$stmtB\n";} + $rec_countB=0; + while ($sthBrows > $rec_countB) + { + @aryB = $sthB->fetchrow_array; + $more_calls[$rec_countB] = "$aryB[0]"; + $Xagent_alert_delay = int($aryB[3] / 1000); + $length_in_sec = (($length_in_sec + $aryB[1]) - $Xagent_alert_delay); + $queue_seconds = ($queue_seconds + $aryB[2]); + $rec_countB++; + } + $sthB->finish(); + + $u=0; + while ($sthBrows > $u) + { + $closecallid = $more_calls[$u]; + + $stmtB = "select recording_id,filename,location from recording_log where vicidial_id='$closecallid' and start_time > '$shipdate 00:00:01' and start_time < '$shipdate 23:59:59' order by start_time limit 10;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrowsR=$sthB->rows; + if ($DBX > 0) {print "$sthBrowsR|$stmtB\n";} + $rec_countBR=0; + while ($sthBrowsR > $rec_countBR) + { + @aryB = $sthB->fetchrow_array; + if (length($ivr_id) > 1) + { + $ivr_id .= "|"; + $ivr_filename .= "|"; + } + $ivr_id .= "$aryB[0]"; + $ivr_location = "$aryB[2]"; + @ivr_path = split(/\//,$ivr_location); + $path_file = $ivr_path[$#ivr_path]; + $ivr_filename .= "$path_file"; + $rec_countBR++; + if ($ftp_audio_transfer > 0) + { + `$wgetbin -q --output-document=$tempdir/$path_file $aryB[2] `; + } + } + $sthB->finish(); + + $u++; + } + } + ##### END transfer audio lookup ##### + + ##### BEGIN DID lookup ##### + if ( ($with_did_lookup > 0) && ($outbound =~ /N/) ) + { + $did_pattern = ''; + $did_name = ''; + $did_date = ''; + + $stmtB = "select did_pattern,did_description,call_date from vicidial_inbound_dids vid,vicidial_did_log vdl where uniqueid='$uniqueid' and call_date > '$shipdate 00:00:01' and call_date <= '$call_date' and vid.did_id=vdl.did_id order by call_date desc limit 1;"; + if ($DBX > 0) {print "$stmtB\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $did_pattern = "$aryB[0]"; + $did_name = "$aryB[1]"; + $did_date = "$aryB[2]"; + $sthB->finish(); + } + else + { + $stmtB = "select vc.campaign_cid,vc.campaign_name,call_date from vicidial_campaigns vc,vicidial_log vl where lead_id='$lead_id' and call_date > '$shipdate 00:00:01' and call_date <= '$call_date' and vc.campaign_id=vl.campaign_id order by call_date desc limit 1;"; + if ($DBX > 0) {print "$stmtB\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $did_pattern = "$aryB[0]"; + $did_name = "$aryB[1]"; + $did_date = "$aryB[2]"; + $sthB->finish(); + } + ##### UNCOMMENT IF USING LIST ID NAME FOR DID_NAME + # $stmtB = "select list_name,campaign_cid_override from vicidial_lists where list_id='$list_id' limit 1;"; + # if ($DBX > 0) {print "$stmtB\n";} + # $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + # $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + # $sthBrows=$sthB->rows; + # if ($sthBrows > 0) + # { + # @aryB = $sthB->fetchrow_array; + # $did_name = $aryB[0]; + # $did_pattern = $aryB[1]; + # $sthB->finish(); + # } + } + } + ##### END DID lookup ##### + + if ($status =~ /UPSELL/) {$UPSELL='L5';} + else {$UPSELL='N';} + + if ($output_format =~ /^pipe-standard$/) + { + $str = "$first_name|$last_name|$address1|$address2|$city|$state|$postal_code|$phone_number|$email|$security|$comments|$call_date|$lead_id|$list_id|$user|$agent_name|$status|$vendor_id|$source_id|$campaign|$campaign_id|$ivr_id|$closer|$closer_name|$rank|$owner|\n"; + } + + if ($output_format =~ /^csv-standard$/) + { + $str = "\"$first_name\",\"$last_name\",\"$address1\",\"$address2\",\"$city\",\"$state\",\"$postal_code\",\"$phone_number\",\"$email\",\"$security\",\"$comments\",\"$call_date\",\"$lead_id\",\"$list_id\",\"$user\",\"$agent_name\",\"$status\",\"$vendor_id\",\"$source_id\",\"$campaign\",\"$campaign_id\",\"$ivr_id\",\"$closer\",\"$closer_name\",\"$rank\",\"$owner\"\r\n"; + } + + if ($output_format =~ /^tab-standard$/) + { + $str = "$first_name\t$last_name\t$address1\t$address2\t$city\t$state\t$postal_code\t$phone_number\t$email\t$security\t$comments\t$call_date\t$lead_id\t$list_id\t$user\t$agent_name\t$status\t$vendor_id\t$source_id\t$campaign\t$campaign_id\t$ivr_id\t$closer\t$closer_name\t$rank\t$owner\t\n"; + } + + if ($output_format =~ /^pipe-triplep$/) + { + $str = "$user|$agent_name|$closer|$closer_name|$call_date|$status|$first_name|$last_name|$phone_number|$address1|$address2|$city|$state|$postal_code|$comments|$security|$email|$vendor_id|$source_id|$lead_id|$list_id|$campaign|$campaign_id|$ivr_id|\n"; + } + + if ($output_format =~ /^pipe-vici$/) + { + $str = "VDAD|$agent_name|$first_name|$last_name|$address1|$address2|$city|$state|$postal_code|$phone_number|$ivr_id|DU|$UPSELL|N|||$security|$comments||||||$call_date|CBDISC|$email\r\n"; + } + + if ($output_format =~ /^html-rec$/) + { + $str = "$user|$agent_name|$closer|$closer_name|$call_date|$status|$first_name|$last_name|$phone_number|$address1|$address2|$city|$state|$postal_code|$comments|$security|$email|$vendor_id|$source_id|$lead_id|$list_id|$campaign|$campaign_id|$ivr_id|\n"; + } + + if ($output_format =~ /^fixed-as400$/) + { + # 16884259 MRS. JEAN BROWN RISALPUR BROMSBERROW HEATYH LEDBURY HEREFORDSHIRE ENGLAND HR8 1PQ 01531650052 1209200809:52NI 3205UK + $vendor_id = sprintf("%-10s",$vendor_id); while(length($vendor_id)>10) {$vendor_id =~ s/.$//gi;} + $title = sprintf("%-10s",$title); while(length($title)>10) {$title =~ s/.$//gi;} + $first_name = sprintf("%-15s",$first_name); while(length($first_name)>15) {$first_name =~ s/.$//gi;} + $last_name = sprintf("%-20s",$last_name); while(length($last_name)>20) {$last_name =~ s/.$//gi;} + $address1 = sprintf("%-30s",$address1); while(length($address1)>30) {$address1 =~ s/.$//gi;} + $address2 = sprintf("%-30s",$address2); while(length($address2)>30) {$address2 =~ s/.$//gi;} + $address3 = sprintf("%-30s",$address3); while(length($address3)>30) {$address3 =~ s/.$//gi;} + $city = sprintf("%-50s",$city); while(length($city)>50) {$city =~ s/.$//gi;} + $postal_code = sprintf("%-9s",$postal_code); while(length($postal_code)>9) {$postal_code =~ s/.$//gi;} + $phone_number = sprintf("%-20s",$phone_number); while(length($phone_number)>20) {$phone_number =~ s/.$//gi;} + @dtsplit = split(" ",$last_local_call_time); + @datesplit = split("-",$dtsplit[0]); + $timesplit = substr($dtsplit[1], 0, 5); + $formatted_date = "$datesplit[1]$datesplit[2]$datesplit[0]$timesplit"; + $user = sprintf("%-4s",$user); + if ($status =~ /^AA$/) {$status = 'A';} + if ($status =~ /^A$/) {$status = 'A';} + if ($status =~ /^B$/) {$status = 'B';} + if ($status =~ /^N$/) {$status = 'N';} + if ($status =~ /^NA$/) {$status = 'N';} + if ($status =~ /^NP$/) {$status = 'N';} + if ($status =~ /^PU$/) {$status = 'N';} + if ($status =~ /^DROP$/) {$status = 'N';} + if ($status =~ /^SALE$/) {$status = 'AP';} + if ($status =~ /^A6$/) {$status = 'A6';} + if ($status =~ /^DC$/) {$status = 'D';} + if ($status =~ /^DNC$/) {$status = 'DC';} + if ($status =~ /^DNCL$/) {$status = 'DC';} + if ($status =~ /^DIED$/) {$status = 'DD';} + if ($status =~ /^COMP$/) {$status = 'DD';} + if ($status =~ /^DEC$/) {$status = 'DD';} + if ($status =~ /^ERI$/) {$status = 'DD';} + if ($status =~ /^INCALL$/) {$status = 'DD';} + if ($status =~ /^SP$/) {$status = 'DD';} + if ($status =~ /^WRON$/) {$status = 'DD';} + if ($status =~ /^HBED$/) {$status = 'DD';} + if ($status =~ /^CALLBK$/) {$status = 'A6';} + if ($status =~ /^HAP1$/) {$status = 'NI';} + if ($status =~ /^HAP2$/) {$status = 'NI';} + if ($status =~ /^NI$/) {$status = 'NI';} + + $status = sprintf("%-16s",$status); while(length($status)>16) {$status =~ s/.$//gi;} + $user =~ s/VDAD/ /gi; + $UK = 'UK'; + + $str = "$vendor_id$title$first_name$last_name$address1$address2$address3$city$postal_code$phone_number$formatted_date$status$user$UK\r\n"; + } + + if ($output_format =~ /^tab-QMcustomUSA$/) + { + # 1245328655100219 2009-06-18 05:37:35 937 9375551212 8185551223 8106 35 255 0 DSAW - q8187-20090618-053939-1245328655.100219.WAV|q8186-20090618-053735-1245328655.100219.WAV + # 1- unique number (digits only) + # 2- date + # 3- time + # 4- CID arecode + # 5- CID full + # 6- DID + # 7- user + # 8- hold time (seconds) + # 9- talk time (seconds) + # 10- after call work time (seconds) + # 11- application name, 4 characters + # 12- order number (just a dash for now '-') + # 13- call recording filenames + + $uniqueid =~ s/\.00000//gi; + $uniqueid =~ s/\.0000//gi; + $uniqueid =~ s/\.000//gi; + $uniqueid =~ s/\.00//gi; + $uniqueid =~ s/\.0//gi; + $uniqueid =~ s/\D//gi; + @call_date_array = split(/ /,$call_date); + while (length($phone_number)>10) {$phone_number =~ s/^.//gi;} + $phone_areacode = substr($phone_number, 0, 3); + if (length($closer) < 1) {$closer = $user;} + if ($closer =~ /VDCL|VDAD/) {$closer='-';} + $application = substr($did_name, 0, 4); + $queue_seconds = int($queue_seconds + .5); + $talk_seconds = ( ($length_in_sec - $queue_seconds) - $agent_alert_delay); + if ($talk_seconds < 0) {$talk_seconds=0;} + $dispo_time = 0; + + if ($uniqueidLIST !~ /\|$uniqueid\|/) + { + $str = "103$uniqueid\t$call_date_array[0]\t$call_date_array[1]\t$phone_areacode\t$phone_number\t$did_pattern\t$closer\t$queue_seconds\t$talk_seconds\t$dispo_time\t$application\t-\t$ivr_filename\t$outbound\t$domestic\t\n"; + + $uniqueidLIST .= "$uniqueid|"; + if ($DBX > 0) {print "UNIQUE: -----$uniqueidLIST-----$uniqueid";} + # if ($DBX > 0) {print "$uniqueid|$talk_seconds|$outbound|$INcalls|$OUTcalls\n";} + + if ($outbound =~ /Y/) {$OUTtalk = ($OUTtalk + $talk_seconds); $OUTcalls++;} + else {$INtalk = ($INtalk + $talk_seconds); $INcalls++;} + } + + } + + $Ealert .= "$str"; + + print out "$str"; + if ($DBX) {print "$str\n";} + } + else + {$CALLTIME_KICK++;} + + if ($DB > 0) + { + if ($rec_count =~ /10$/i) {print STDERR "0 $rec_count\r";} + if ($rec_count =~ /20$/i) {print STDERR "+ $rec_count\r";} + if ($rec_count =~ /30$/i) {print STDERR "| $rec_count\r";} + if ($rec_count =~ /40$/i) {print STDERR "\\ $rec_count\r";} + if ($rec_count =~ /50$/i) {print STDERR "- $rec_count\r";} + if ($rec_count =~ /60$/i) {print STDERR "/ $rec_count\r";} + if ($rec_count =~ /70$/i) {print STDERR "| $rec_count\r";} + if ($rec_count =~ /80$/i) {print STDERR "+ $rec_count\r";} + if ($rec_count =~ /90$/i) {print STDERR "0 $rec_count\r";} + if ($rec_count =~ /00$/i) {print "$rec_count|$TOTAL_SALES|$CALLTIME_KICK| |$phone_number|\n";} + } + $rec_count++; + + } + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_VDweekly_agent_statuses_report.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_VDweekly_agent_statuses_report.pl new file mode 100644 index 00000000..aa787e0d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_VDweekly_agent_statuses_report.pl @@ -0,0 +1,307 @@ +#!/usr/bin/perl + +# This report gathers the user, lead_id, event_time, campaign_id, pause_sec, +# wait_sec, talk_sec, dispo_sec, and status from the vicidial_agent_log as +# well as the the vendor_lead code from the list, and the status_name from +# either the vicidial_statuses or vicidial_campaign_statuses table and +# puts all that information into a CSV file which gets emailed out. + +# lets play nice +use 5.008; +use strict; +use warnings; + +# all the modules we use +use MIME::QuotedPrint; +use MIME::Base64; +use Mail::Sendmail; +use DBI; + +my $DB = 0; # 1 for debugging +my $email_list = ""; # people to send the report to +my $email_sender = ""; # person the email is from + +# begin parsing run-time options +if ( ( $ARGV[0] ) && ( length( $ARGV[0] ) > 1 ) ) { + my $i = 0; + my $args = ""; + + while ($#ARGV >= $i) { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) { + print "allowed run time options:\n"; + print " [--email-list=test\@test.com:test2\@test.com] = send email results to these addresses\n"; + print " [--email-sender=vicidial\@localhost] = sender for the email results\n"; + print " [--debug] = debugging messages\n"; + print "\n"; + + exit; + } else { + if ($args =~ /--debug/i) { + $DB=1; + print "\n----- DEBUG MODE -----\n\n"; + } + if ($args =~ /--email-list=/i) { + my @data_in = split( /--email-list=/ , $args ); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n"; + } + if ($args =~ /--email-sender=/i) { + my @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n"; + } else { + $email_sender = 'vicidial@localhost'; + } + } +} + + +# get the current time +my $current_time = time(); + +my $csec = 0; +my $cmin = 0; +my $chour = 0; +my $cmday = 0; +my $cmon = 0; +my $cyear = 0; +my $cwday = 0; +my $cyday = 0; +my $cisdst = 0; + +($csec,$cmin,$chour,$cmday,$cmon,$cyear,$cwday,$cyday,$cisdst) = localtime($current_time); + +$cyear = ($cyear + 1900); +$cmon++; +if ($cmon < 10) {$cmon = "0$cmon";} +if ($cmday < 10) {$cmday = "0$cmday";} +if ($chour < 10) {$chour = "0$chour";} +if ($cmin < 10) {$cmin = "0$cmin";} +if ($csec < 10) {$csec = "0$csec";} + +# now get the time a week (604800 seconds) ago +my $week_ago_time = $current_time - 604800; + +my $wsec = 0; +my $wmin = 0; +my $whour = 0; +my $wmday = 0; +my $wmon = 0; +my $wyear = 0; +my $wwday = 0; +my $wyday = 0; +my $wisdst = 0; + +($wsec,$wmin,$whour,$wmday,$wmon,$wyear,$wwday,$wyday,$wisdst) = localtime($week_ago_time); + +$wyear = ($wyear + 1900); +$wmon++; +if ($wmon < 10) {$wmon = "0$wmon";} +if ($wmday < 10) {$wmday = "0$wmday";} +if ($whour < 10) {$whour = "0$whour";} +if ($wmin < 10) {$wmin = "0$wmin";} +if ($wsec < 10) {$wsec = "0$wsec";} + +# mysql date stamps +my $current_time_stamp = "$cyear-$cmon-$cmday $chour:$cmin:$csec"; +my $week_ago_time_stamp = "$wyear-$wmon-$wmday $whour:$wmin:$wsec"; + +print "running report for date range $week_ago_time_stamp to $current_time_stamp\n"; + +# read in the config file + +# default path to astguiclient configuration file: +my $config_file = '/etc/astguiclient.conf'; + +open(CONFIG, "$config_file") || die "can't open $config_file: $!\n"; +my @conf = ; +close(CONFIG); +my $i = 0; + +my $PATHhome = ""; +my $PATHlogs = ""; +my $PATHagi = ""; +my $PATHweb = ""; +my $PATHsounds = ""; +my $PATHmonitor = ""; +my $VARserver_ip = ""; +my $VARDB_server = ""; +my $VARDB_database = ""; +my $VARDB_user = ""; +my $VARDB_pass = ""; +my $VARDB_port = ""; +my $VARREPORT_host = ""; +my $VARREPORT_user = ""; +my $VARREPORT_pass = ""; +my $VARREPORT_port = ""; +my $VARREPORT_dir = ""; + +foreach(@conf) { + my $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ($line =~ /^PATHhome/) { $PATHhome = $line; $PATHhome =~ s/.*=//gi; } + if ($line =~ /^PATHlogs/) { $PATHlogs = $line; $PATHlogs =~ s/.*=//gi; } + if ($line =~ /^PATHagi/) { $PATHagi = $line; $PATHagi =~ s/.*=//gi; } + if ($line =~ /^PATHweb/) { $PATHweb = $line; $PATHweb =~ s/.*=//gi; } + if ($line =~ /^PATHsounds/) { $PATHsounds = $line; $PATHsounds =~ s/.*=//gi; } + if ($line =~ /^PATHmonitor/) { $PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi; } + if ($line =~ /^VARserver_ip/) { $VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi; } + if ($line =~ /^VARDB_server/) { $VARDB_server = $line; $VARDB_server =~ s/.*=//gi; } + if ($line =~ /^VARDB_database/) { $VARDB_database = $line; $VARDB_database =~ s/.*=//gi; } + if ($line =~ /^VARDB_user/) { $VARDB_user = $line; $VARDB_user =~ s/.*=//gi; } + if ($line =~ /^VARDB_pass/) { $VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi; } + if ($line =~ /^VARDB_port/) { $VARDB_port = $line; $VARDB_port =~ s/.*=//gi; } + if ($line =~ /^VARREPORT_host/) { $VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi; } + if ($line =~ /^VARREPORT_user/) { $VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi; } + if ($line =~ /^VARREPORT_pass/) { $VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi; } + if ($line =~ /^VARREPORT_port/) { $VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi; } + if ($line =~ /^VARREPORT_dir/) { $VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi; } + $i++; +} + + +# the name of the csv file +my $csv_file_name = "weekly_agent_stats-$wyear$wmon$wmday-$cyear$cmon$cmday.csv"; + +# path to the file +my $csv_path = "$PATHweb/$csv_file_name"; + +if ( !$VARDB_port ) { $VARDB_port='3306'; } + +# connect to the db +my $dbh = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") or die "Couldn't connect to database: " . DBI->errstr; + +# setup the queries +my $sys_status_stmt = "SELECT status, status_name FROM vicidial_statuses;"; +my $sys_status_sth = $dbh->prepare($sys_status_stmt) or die "preparing: ",$dbh->errstr; + +my $camp_status_stmt = "SELECT status, status_name FROM vicidial_campaign_statuses;"; +my $camp_status_sth = $dbh->prepare($camp_status_stmt) or die "preparing: ",$dbh->errstr; + +my $agent_stats_stmt = "SELECT user, lead_id, event_time, campaign_id, pause_sec, wait_sec, talk_sec, dispo_sec, status FROM vicidial_agent_log where event_time <= ? and event_time >= ?"; +my $agent_stats_sth = $dbh->prepare($agent_stats_stmt) or die "preparing: ",$dbh->errstr; + +my $vendor_stmt = "SELECT vendor_lead_code FROM vicidial_list WHERE lead_id = ?;"; +my $vendor_sth = $dbh->prepare($vendor_stmt) or die "preparing: ",$dbh->errstr; + + +# get the system statuses +$sys_status_sth->execute() or die "executing: $sys_status_stmt ", $dbh->errstr(); +my $sys_status_ref = $sys_status_sth->fetchall_hashref('status'); + +# get the campaign statuses +$camp_status_sth->execute() or die "executing: $camp_status_stmt ", $dbh->errstr(); +my $camp_status_ref = $camp_status_sth->fetchall_hashref('status'); + +# open the CSV file for writing +open (CSVFILE, ">>$csv_path") or die $!; + +# print the header +print CSVFILE "\"user\",\"lead_id\",\"event_time\",\"campaign_id\",\"pause_sec\",\"wait_sec\",\"talk_sec\",\"dispo_sec\",\"status\",\"status_name\",\"vendor_lead_code\"\n"; + +# grab the vicidial_agent_log records +$agent_stats_sth->execute( $current_time_stamp, $week_ago_time_stamp ) or die "executing: $agent_stats_stmt ", $dbh->errstr(); +my $agent_stats_rows = $agent_stats_sth->rows; +my $rec_count = 0; + +while ($agent_stats_rows > $rec_count) { + my @ary = $agent_stats_sth->fetchrow_array; + + my $user = $ary[0]; + my $lead_id = $ary[1]; + my $event_time = $ary[2]; + my $campaign_id = $ary[3]; + my $pause_sec = $ary[4]; + my $wait_sec = $ary[5]; + my $talk_sec = $ary[6]; + my $dispo_sec = $ary[7]; + my $status = $ary[8]; + + my $status_name = ""; + + # apparently you can have a NULL status + if ($status) { + $status_name = $sys_status_ref->{$status}->{'status_name'}; + if ( !($status_name) ) { + $status_name = $camp_status_ref->{$status}->{'status_name'}; + } + } else { + $status = ""; + } + + my $vendor_lead_code = ""; + + # apparently you can have a NULL lead_id + if ($lead_id) { + $vendor_sth->execute($lead_id) or die "executing: $agent_stats_stmt ", $dbh->errstr(); + my @vend_ary = $vendor_sth->fetchrow_array(); + $vendor_lead_code = $vend_ary[0]; + if ( !($vendor_lead_code) ) { + $vendor_lead_code = ""; + } + } else { + $lead_id=""; + } + + print CSVFILE "\"$user\",\"$lead_id\",\"$event_time\",\"$campaign_id\",\"$pause_sec\",\"$wait_sec\",\"$talk_sec\",\"$dispo_sec\",\"$status\",\"$status_name\",\"$vendor_lead_code\"\n"; + + $rec_count++; +} + +close (CSVFILE); + +# clean up the statement handles +$sys_status_sth->finish(); +$camp_status_sth->finish(); +$agent_stats_sth->finish(); +$vendor_sth->finish(); +$dbh->disconnect(); + +# email the file if they gave use some email addresses +if ($email_list ne "") { + print "Generating the email\n"; + + my $mailsubject = "VICIDIAL Weekly Agent Status Report $csv_file_name"; + + my %mail = ( + To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + ); + my $boundary = "====" . time() . "===="; + $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; + + my $message = encode_qp( "VICIDIAL Lead Export:\n\n Attachment: $csv_file_name\n Total Records: $agent_stats_rows\n" ); + + my $Zfile = "$csv_path"; + + open (F, $Zfile) or die "Cannot read $Zfile: $!"; + binmode F; undef $/; + my $attachment = encode_base64(); + close F; + + $boundary = '--'.$boundary; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; + $mail{body} .= "Content-Transfer-Encoding: quoted-printable\n\n"; + $mail{body} .= "$message\n"; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: application/octet-stream; name=\"$csv_file_name\"\n"; + $mail{body} .= "Content-Transfer-Encoding: base64\n"; + $mail{body} .= "Content-Disposition: attachment; filename=\"$csv_file_name\"\n\n"; + $mail{body} .= "$attachment\n"; + $mail{body} .= "$boundary"; + $mail{body} .= "--\n"; + + print "Sending email to: $email_list\n"; + sendmail(%mail) or die $Mail::Sendmail::error; + print "OK. Log says:\n", $Mail::Sendmail::log, "\n"; +} diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_agent_daily_SPH.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_daily_SPH.pl new file mode 100644 index 00000000..a976e875 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_daily_SPH.pl @@ -0,0 +1,735 @@ +#!/usr/bin/perl + +# AST_agent_daily_SPH.pl +# +# This script is designed to gather stats for all agent activity over the course +# of a week and print it in an ASCI text file to be placed +# on a web server for viewing. +# +# This script assumes a work day to be from 2AM to 2AM +# +# Place in the crontab and run every night at 02:00AM for the previous day's stats +# 0 2 * * * /home/cron/AST_agent_daily_SPH.pl +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 80114-1221 - First version +# 80116-0941 - only print agents with week and month hours of 0 to PIPE file +# 80216-2255 - Add Year-to-date on Sunday mornings only +# + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; + +$SQLrestrict = "and campaign_id IN('QRA','QRB','QRC','QRD')"; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n-----DEBUG MODE-----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING-----\n\n"; + } + } +} +else +{ +print "no command line options set\n"; +} +### end parsing run-time options ### + + +$secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $filedate = "$year$mon$mday-$hour$min$sec"; + $ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + +use Time::Local; + +$YTDrun=0; + +### find epoch of 2AM today +$TWOAMsec = ( ($secX - ($sec + ($min * 60) + ($hour * 3600) ) ) + 7200); +### find epoch of 2AM yesterday +$TWOAMsecY = ($TWOAMsec - 86400); + +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TWOAMsecY); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} + $begindate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; +if ($Twday == '6') {$YTDrun=1; print "RUNNING YTD\n";} + +### find epoch of 2AM the first day of the month +$BMONTHsec = ($TWOAMsecY - (86400 * ($Tmday - 1) ) ); +### find epoch of 2AM the first day of next month +if ($Tmon>11) {$Tmon=0; $Tyear++;} +$EMONTHsec = timelocal($Tsec,$Tmin,$Thour,1,$Tmon,$Tyear); + + if ($Twday==0) {$day='Sunday '; $SETprevday = 6;} + if ($Twday==1) {$day='Monday '; $SETprevday = 0;} + if ($Twday==2) {$day='Tuesday '; $SETprevday = 1;} + if ($Twday==3) {$day='Wednesday'; $SETprevday = 2;} + if ($Twday==4) {$day='Thursday '; $SETprevday = 3;} + if ($Twday==5) {$day='Friday '; $SETprevday = 4;} + if ($Twday==6) {$day='Saturday '; $SETprevday = 5;} + +($TMsec,$TMmin,$TMhour,$TMmday,$TMmon,$TMyear,$TMwday,$TMyday,$TMisdst) = localtime($BMONTHsec); +$TMyear = ($TMyear + 1900); +$TMmon++; +if ($TMmon < 10) {$TMmon = "0$TMmon";} +if ($TMmday < 10) {$TMmday = "0$TMmday";} +if ($TMhour < 10) {$TMhour = "0$TMhour";} +if ($TMmin < 10) {$TMmin = "0$TMmin";} +if ($TMsec < 10) {$TMsec = "0$TMsec";} + $beginmonth = "$TMyear-$TMmon-$TMmday $TMhour:$TMmin:$TMsec"; + +($TMsec,$TMmin,$TMhour,$TMmday,$TMmon,$TMyear,$TMwday,$TMyday,$TMisdst) = localtime($EMONTHsec); +$TMyear = ($TMyear + 1900); +$TMmon++; +if ($TMmon < 10) {$TMmon = "0$TMmon";} +if ($TMmday < 10) {$TMmday = "0$TMmday";} +if ($TMhour < 10) {$TMhour = "0$TMhour";} +if ($TMmin < 10) {$TMmin = "0$TMmin";} +if ($TMsec < 10) {$TMsec = "0$TMsec";} + $endmonth = "$TMyear-$TMmon-$TMmday $TMhour:$TMmin:$TMsec"; + +#print "|$ABIfiledate|$begindate|$beginmonth|$endmonth|\n"; +#exit; + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_agent_daily_SPH.pl --\n\n"; +print "This program is designed to print sales-per-hour(SPH) to a file for agents' activity for the current week. \n\n"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +$outfile = "AGENT_SPH_$Tyear-$Tmon-$Tmday$txt"; +$Doutfile = "AGENT_SPH_PIPE_$Tyear-$Tmon-$Tmday$txt"; + +### open the X out file for writing ### +open(out, ">$PATHweb/vicidial/agent_reports/$outfile") + || die "Can't open $outfile: $!\n"; +open(Dout, ">$PATHweb/vicidial/agent_reports/$Doutfile") + || die "Can't open $Doutfile: $!\n"; + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +#$vicidial_agent_log = 'vicidial_agent_log_archive'; +$vicidial_agent_log = 'vicidial_agent_log'; + +########################################################################### +########### PAST WEEK STAT GATHERING LOOP ################################# +########################################################################### +if ($YTDrun>0) + { + $YEARheadPIPE = 'MONTH HOURS|MONTH SPH|'; + $YEARheadFIXED = ' HRS SPH '; + $YEARhHEAD = ' YEAR'; + } +print Dout "DATE|AGENT|USER|MON HOURS|MON SPH|TUE HOURS|TUE SPH|WED HOURS|WED SPH|THU HOURS|THU SPH|FRI HOURS|FRI SPH|SAT HOURS|SAT SPH|SUN HOURS|SUN SPH|WEEK HOURS|WEEK SPH|MONTH HOURS|MONTH SPH$YEARheadPIPE|GROUP|\n"; +$outline = "REPORT: SPH $Tyear-$Tmon-$Tmday\n\n"; +$outline.= " MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY WEEK MONTH$YEARhHEAD\n"; +$outline.= "AGENT USER HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH $YEARheadFIXED GROUP \n"; +print "$outline"; +print out "$outline"; + +### FIND ALL ACTIVE USERS IN THE SYSTEM IN('1090','1102','1245')='1090' +$stmtA = "select full_name,user,user_group from vicidial_users order by user_group,full_name limit 1000;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + + $Dname[$rec_count] = $aryA[0]; + $Duser[$rec_count] = $aryA[1]; + $Dgroup[$rec_count] = $aryA[2]; + $name[$rec_count] = sprintf("%-20s", $aryA[0]); while(length($name[$rec_count])>20) {chop($name[$rec_count]);} + $user[$rec_count] = sprintf("%-8s", $aryA[1]); + $group[$rec_count] = sprintf("%-8s", $aryA[2]); + + $rec_count++; + } +$sthA->finish(); + + +$Gsph[0]=' 0'; $Gsph[1]=' 0'; $Gsph[2]=' 0'; $Gsph[3]=' 0'; $Gsph[4]=' 0'; $Gsph[5]=' 0'; $Gsph[6]=' 0'; +$Gsales[0]=0; $Gsales[1]=0; $Gsales[2]=0; $Gsales[3]=0; $Gsales[4]=0; $Gsales[5]=0; $Gsales[6]=0; +$Ghours[0]=' 0.0'; $Ghours[1]=' 0.0'; $Ghours[2]=' 0.0'; $Ghours[3]=' 0.0'; $Ghours[4]=' 0.0'; $Ghours[5]=' 0.0'; $Ghours[6]=' 0.0'; +$GDsph[0]=0; $GDsph[1]=0; $GDsph[2]=0; $GDsph[3]=0; $GDsph[4]=0; $GDsph[5]=0; $GDsph[6]=0; +$GDsales[0]=0; $GDsales[1]=0; $GDsales[2]=0; $GDsales[3]=0; $GDsales[4]=0; $GDsales[5]=0; $GDsales[6]=0; +$GDhours[0]=0; $GDhours[1]=0; $GDhours[2]=0; $GDhours[3]=0; $GDhours[4]=0; $GDhours[5]=0; $GDhours[6]=0; +$GWEEKsph=0; $GWEEKhours=0; $GWEEKsales=0; +$GMONTHsph=0; $GMONTHhours=0; $GMONTHsales=0; +$GYEARsph=0; $GYEARhours=0; $GYEARsales=0; + +$TOTsph[0]=' 0'; $TOTsph[1]=' 0'; $TOTsph[2]=' 0'; $TOTsph[3]=' 0'; $TOTsph[4]=' 0'; $TOTsph[5]=' 0'; $TOTsph[6]=' 0'; +$TOTsales[0]=0; $TOTsales[1]=0; $TOTsales[2]=0; $TOTsales[3]=0; $TOTsales[4]=0; $TOTsales[5]=0; $TOTsales[6]=0; +$TOThours[0]=' 0.0'; $TOThours[1]=' 0.0'; $TOThours[2]=' 0.0'; $TOThours[3]=' 0.0'; $TOThours[4]=' 0.0'; $TOThours[5]=' 0.0'; $TOThours[6]=' 0.0'; +$TOTDsph[0]=0; $TOTDsph[1]=0; $TOTDsph[2]=0; $TOTDsph[3]=0; $TOTDsph[4]=0; $TOTDsph[5]=0; $TOTDsph[6]=0; +$TOTDsales[0]=0; $TOTDsales[1]=0; $TOTDsales[2]=0; $TOTDsales[3]=0; $TOTDsales[4]=0; $TOTDsales[5]=0; $TOTDsales[6]=0; +$TOTDhours[0]=0; $TOTDhours[1]=0; $TOTDhours[2]=0; $TOTDhours[3]=0; $TOTDhours[4]=0; $TOTDhours[5]=0; $TOTDhours[6]=0; +$TOTWEEKsph=0; $TOTWEEKhours=0; $TOTWEEKsales=0; +$TOTMONTHsph=0; $TOTMONTHhours=0; $TOTMONTHsales=0; +$TOTYEARsph=0; $TOTYEARhours=0; $TOTYEARsales=0; + + +### GO THROUGH EACH USER ACCOUNT AND FIND OUT THE HOURS AND SPH +$i=0; +foreach (@Duser) + { + $j=0; + $sph[0]=' 0'; $sph[1]=' 0'; $sph[2]=' 0'; $sph[3]=' 0'; $sph[4]=' 0'; $sph[5]=' 0'; $sph[6]=' 0'; + $sales[0]=0; $sales[1]=0; $sales[2]=0; $sales[3]=0; $sales[4]=0; $sales[5]=0; $sales[6]=0; + $hours[0]=' 0.0'; $hours[1]=' 0.0'; $hours[2]=' 0.0'; $hours[3]=' 0.0'; $hours[4]=' 0.0'; $hours[5]=' 0.0'; $hours[6]=' 0.0'; + $Dsph[0]=0; $Dsph[1]=0; $Dsph[2]=0; $Dsph[3]=0; $Dsph[4]=0; $Dsph[5]=0; $Dsph[6]=0; + $Dsales[0]=0; $Dsales[1]=0; $Dsales[2]=0; $Dsales[3]=0; $Dsales[4]=0; $Dsales[5]=0; $Dsales[6]=0; + $Dhours[0]=0; $Dhours[1]=0; $Dhours[2]=0; $Dhours[3]=0; $Dhours[4]=0; $Dhours[5]=0; $Dhours[6]=0; + $WEEKsph=0; $WEEKhours=0; $WEEKsales=0; + $MONTHsph=0; $MONTHhours=0; $MONTHsales=0; + $YEARsph=0; $YEARhours=0; $YEARsales=0; + + $UDtarget[0] = ($TWOAMsec - (86400 * 0) ); # X-0 days in the past + $UDtarget[1] = ($TWOAMsec - (86400 * 1) ); # X-1 days in the past + $UDtarget[2] = ($TWOAMsec - (86400 * 2) ); # X-2 days in the past + $UDtarget[3] = ($TWOAMsec - (86400 * 3) ); # X-3 days in the past + $UDtarget[4] = ($TWOAMsec - (86400 * 4) ); # X-4 days in the past + $UDtarget[5] = ($TWOAMsec - (86400 * 5) ); # X-5 days in the past + $UDtarget[6] = ($TWOAMsec - (86400 * 6) ); # X-6 days in the past + $UDtarget[7] = ($TWOAMsec - (86400 * 7) ); # X-7 days in the past + + $prevday = $SETprevday; + + ### GO THROUGH EACH DAY THIS WEEK UP TO TODAY + while ($prevday >= 0) + { + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($UDtarget[$j]); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $enddate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + + $k = ($j + 1); + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($UDtarget[$k]); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $begindate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + + $Dsales[$prevday]=0; + $Dhours[$prevday]=0; + + $stmtA = "select sum(talk_sec+pause_sec+wait_sec+dispo_sec) from vicidial_agent_log where event_time <= '$enddate' and event_time >= '$begindate' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 and user='$Duser[$i]' $SQLrestrict limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Dhours[$prevday] = ($aryA[0]/3600); + } + + $stmtA = "select count(*) from vicidial_xfer_log vx,vicidial_closer_log vc where vx.call_date <= '$enddate' and vx.call_date >= '$begindate' and vc.status IN('A1','A2','A3','A4','SALE','UPSELL') and vx.user='$Duser[$i]' and vx.xfercallid=vc.xfercallid;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Dsales[$prevday] = $aryA[0]; + } + + $Dhours[$prevday] = sprintf("%.2f", $Dhours[$prevday]); + $hours[$prevday] = sprintf("%5s", $Dhours[$prevday]); + $sales[$prevday] = sprintf("%5s", $Dsales[$prevday]); + if ( ($Dsales[$prevday] > 0) && ($Dhours[$prevday] > 0) ) + {$Dsph[$prevday] = ($Dsales[$prevday]/$Dhours[$prevday]);} + else + {$Dsph[$prevday] = 0;} + $Dsph[$prevday] = sprintf("%.1f", $Dsph[$prevday]); + $sph[$prevday] = sprintf("%4s", $Dsph[$prevday]); + + $GDsales[$prevday] = ($GDsales[$prevday] + $Dsales[$prevday]); + $TOTDsales[$prevday] = ($TOTDsales[$prevday] + $Dsales[$prevday]); + $GDhours[$prevday] = ($GDhours[$prevday] + $Dhours[$prevday]); + $TOTDhours[$prevday] = ($TOTDhours[$prevday] + $Dhours[$prevday]); + + $WEEKhours = ($WEEKhours + $Dhours[$prevday]); + $WEEKsales = ($WEEKsales + $Dsales[$prevday]); + + if ($DB) {print STDERR "$hours[$prevday] $sales[$prevday] $sph[$prevday] $prevday $begindate\n";} + $prevday = ($prevday - 1); + $j++; + } + + $stmtA = "select sum(talk_sec+pause_sec+wait_sec+dispo_sec) from vicidial_agent_log where event_time <= '$endmonth' and event_time >= '$beginmonth' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 and user='$Duser[$i]' $SQLrestrict limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $MONTHhours = ($aryA[0]/3600); + } + + $stmtA = "select count(*) from vicidial_xfer_log vx,vicidial_closer_log vc where vx.call_date <= '$endmonth' and vx.call_date >= '$beginmonth' and vc.status IN('A1','A2','A3','A4','SALE','UPSELL') and vx.user='$Duser[$i]' and vx.xfercallid=vc.xfercallid;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $MONTHsales = $aryA[0]; + } + + if ($YTDrun>0) + { + $Ybegin='-01-01 01:00:00'; + $stmtA = "select sum(talk_sec+pause_sec+wait_sec+dispo_sec) from vicidial_agent_log where event_time <= '$endmonth' and event_time >= '$TMyear$Ybegin' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 and user='$Duser[$i]' $SQLrestrict limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $YEARhours = ($aryA[0]/3600); + } + + $stmtA = "select count(*) from vicidial_xfer_log vx,vicidial_closer_log vc where vx.call_date <= '$endmonth' and vx.call_date >= '$TMyear$Ybegin' and vc.status IN('A1','A2','A3','A4','SALE','UPSELL') and vx.user='$Duser[$i]' and vx.xfercallid=vc.xfercallid;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $YEARsales = $aryA[0]; + } + + if ( ($YEARsales > 0) && ($YEARhours > 0) ) + {$YEARsph = ($YEARsales/$YEARhours);} + else + {$YEARsph = 0;} + + $GYEARsales = ($GYEARsales + $YEARsales); + $TOTYEARsales = ($TOTYEARsales + $YEARsales); + $GYEARhours = ($GYEARhours + $YEARhours); + $TOTYEARhours = ($TOTYEARhours + $YEARhours); + + $YEARhours = sprintf("%.0f", $YEARhours); + $YEARhours = sprintf("%5s", $YEARhours); + $YEARsph = sprintf("%.1f", $YEARsph); + $YEARsph = sprintf("%4s", $YEARsph); + + $YEARpipe="$YEARhours|$YEARsph|"; + $YEARfixed="$YEARhours $YEARsph "; + } + + if ( ($WEEKsales > 0) && ($WEEKhours > 0) ) + {$WEEKsph = ($WEEKsales/$WEEKhours);} + else + {$WEEKsph = 0;} + + if ( ($MONTHsales > 0) && ($MONTHhours > 0) ) + {$MONTHsph = ($MONTHsales/$MONTHhours);} + else + {$MONTHsph = 0;} + + $GMONTHsales = ($GMONTHsales + $MONTHsales); + $TOTMONTHsales = ($TOTMONTHsales + $MONTHsales); + $GMONTHhours = ($GMONTHhours + $MONTHhours); + $TOTMONTHhours = ($TOTMONTHhours + $MONTHhours); + + print Dout "$shipdate|$Dname[$i]|$Duser[$i]|$Dhours[0]|$Dsph[0]|$Dhours[1]|$Dsph[1]|$Dhours[2]|$Dsph[2]|$Dhours[3]|$Dsph[3]|$Dhours[4]|$Dsph[4]|$Dhours[5]|$Dsph[5]|$Dhours[6]|$Dsph[6]|$WEEKhours|$WEEKsph|$MONTHhours|$MONTHsph|$YEARpipe$Dgroup[$i]\n"; + + ### only print to ASCII fixed-length file if week-to-date and month-to-date hours > 0 + if ( ($WEEKhours > 0) || ($MONTHhours > 0) ) + { + $WEEKhours = sprintf("%.0f", $WEEKhours); + $WEEKhours = sprintf("%5s", $WEEKhours); + $WEEKsph = sprintf("%.1f", $WEEKsph); + $WEEKsph = sprintf("%4s", $WEEKsph); + + $MONTHhours = sprintf("%.0f", $MONTHhours); + $MONTHhours = sprintf("%5s", $MONTHhours); + $MONTHsph = sprintf("%.1f", $MONTHsph); + $MONTHsph = sprintf("%4s", $MONTHsph); + + $outline = "$name[$i] $user[$i] $hours[0] $sph[0] $hours[1] $sph[1] $hours[2] $sph[2] $hours[3] $sph[3] $hours[4] $sph[4] $hours[5] $sph[5] $hours[6] $sph[6] $WEEKhours $WEEKsph $MONTHhours $MONTHsph $YEARfixed$group[$i]\n"; + print "$outline"; + print out "$outline"; + } + else + { + print "SKIPPED: $name[$i] $user[$i] $WEEKhours $MONTHhours\n"; + } + + $Dprevgroup = $Dgroup[$i]; + $prevgroup = $group[$i]; + $i++; + + ### BEGIN GROUP SUMMARY STATS + if ($Dgroup[$i] !~ /^$Dprevgroup$/) + { + $prevday = $SETprevday; + + ### GO THROUGH EACH DAY THIS WEEK UP TO TODAY + while ($prevday >= 0) + { + $GDhours[$prevday] = sprintf("%.2f", $GDhours[$prevday]); + $Ghours[$prevday] = sprintf("%5s", $GDhours[$prevday]); while(length($Ghours[$prevday])>5) {chop($Ghours[$prevday]);} + $Gsales[$prevday] = sprintf("%5s", $GDsales[$prevday]); + if ( ($GDsales[$prevday] > 0) && ($GDhours[$prevday] > 0) ) + {$GDsph[$prevday] = ($GDsales[$prevday]/$GDhours[$prevday]);} + else + {$GDsph[$prevday] = 0;} + $GDsph[$prevday] = sprintf("%.1f", $GDsph[$prevday]); + $Gsph[$prevday] = sprintf("%4s", $GDsph[$prevday]); + + $GWEEKhours = ($GWEEKhours + $GDhours[$prevday]); + $GWEEKsales = ($GWEEKsales + $GDsales[$prevday]); + + $prevday = ($prevday - 1); + } + + if ( ($GWEEKsales > 0) && ($GWEEKhours > 0) ) + {$GWEEKsph = ($GWEEKsales/$GWEEKhours);} + else + {$GWEEKsph = 0;} + + if ( ($GMONTHsales > 0) && ($GMONTHhours > 0) ) + {$GMONTHsph = ($GMONTHsales/$GMONTHhours);} + else + {$GMONTHsph = 0;} + + if ($YTDrun>0) + { + if ( ($GYEARsales > 0) && ($GYEARhours > 0) ) + {$GYEARsph = ($GYEARsales/$GYEARhours);} + else + {$GYEARsph = 0;} + + $GYEARhours = sprintf("%.0f", $GYEARhours); + $GYEARhours = sprintf("%5s", $GYEARhours); while(length($GYEARhours)>5) {chop($GYEARhours);} + $GYEARsph = sprintf("%.1f", $GYEARsph); + $GYEARsph = sprintf("%4s", $GYEARsph); + + $YEARgpipe="$GYEARhours|$GYEARsph|"; + $YEARgfixed=" $GYEARhours $GYEARsph"; + } + + print Dout "$shipdate|TOTAL $Dprevgroup||$GDhours[0]|$GDsph[0]|$GDhours[1]|$GDsph[1]|$GDhours[2]|$GDsph[2]|$GDhours[3]|$GDsph[3]|$GDhours[4]|$GDsph[4]|$GDhours[5]|$GDsph[5]|$GDhours[6]|$GDsph[6]|$GWEEKhours|$GWEEKsph|$GMONTHhours|$GMONTHsph|$YEARgpipe\n"; + + $GWEEKhours = sprintf("%.0f", $GWEEKhours); + $GWEEKhours = sprintf("%5s", $GWEEKhours); while(length($GWEEKhours)>5) {chop($GWEEKhours);} + $GWEEKsph = sprintf("%.1f", $GWEEKsph); + $GWEEKsph = sprintf("%4s", $GWEEKsph); + + $GMONTHhours = sprintf("%.0f", $GMONTHhours); + $GMONTHhours = sprintf("%5s", $GMONTHhours); while(length($GMONTHhours)>5) {chop($GMONTHhours);} + $GMONTHsph = sprintf("%.1f", $GMONTHsph); + $GMONTHsph = sprintf("%4s", $GMONTHsph); + + $outline = " GROUP TOTAL $prevgroup $Ghours[0] $Gsph[0] $Ghours[1] $Gsph[1] $Ghours[2] $Gsph[2] $Ghours[3] $Gsph[3] $Ghours[4] $Gsph[4] $Ghours[5] $Gsph[5] $Ghours[6] $Gsph[6] $GWEEKhours $GWEEKsph $GMONTHhours $GMONTHsph$YEARgfixed\n\n"; + print "$outline"; + print out "$outline"; + + $Gsph[0]=' 0'; $Gsph[1]=' 0'; $Gsph[2]=' 0'; $Gsph[3]=' 0'; $Gsph[4]=' 0'; $Gsph[5]=' 0'; $Gsph[6]=' 0'; + $Gsales[0]=0; $Gsales[1]=0; $Gsales[2]=0; $Gsales[3]=0; $Gsales[4]=0; $Gsales[5]=0; $Gsales[6]=0; + $Ghours[0]=' 0.0'; $Ghours[1]=' 0.0'; $Ghours[2]=' 0.0'; $Ghours[3]=' 0.0'; $Ghours[4]=' 0.0'; $Ghours[5]=' 0.0'; $Ghours[6]=' 0.0'; + $GDsph[0]=0; $GDsph[1]=0; $GDsph[2]=0; $GDsph[3]=0; $GDsph[4]=0; $GDsph[5]=0; $GDsph[6]=0; + $GDsales[0]=0; $GDsales[1]=0; $GDsales[2]=0; $GDsales[3]=0; $GDsales[4]=0; $GDsales[5]=0; $GDsales[6]=0; + $GDhours[0]=0; $GDhours[1]=0; $GDhours[2]=0; $GDhours[3]=0; $GDhours[4]=0; $GDhours[5]=0; $GDhours[6]=0; + $GWEEKsph=0; $GWEEKhours=0; $GWEEKsales=0; + $GMONTHsph=0; $GMONTHhours=0; $GMONTHsales=0; + $GYEARsph=0; $GYEARhours=0; $GYEARsales=0; + } + } + ### END AGENT STATS + + +### BEGIN TOTAL STATS + + +$prevday = $SETprevday; + +### GO THROUGH EACH DAY THIS WEEK UP TO TODAY +while ($prevday >= 0) + { + $TOTDhours[$prevday] = sprintf("%.0f", $TOTDhours[$prevday]); + $TOThours[$prevday] = sprintf("%5s", $TOTDhours[$prevday]); while(length($TOThours[$prevday])>5) {chop($TOThours[$prevday]);} + $TOTsales[$prevday] = sprintf("%5s", $TOTDsales[$prevday]); + if ( ($TOTDsales[$prevday] > 0) && ($TOTDhours[$prevday] > 0) ) + {$TOTDsph[$prevday] = ($TOTDsales[$prevday]/$TOTDhours[$prevday]);} + else + {$TOTDsph[$prevday] = 0;} + $TOTDsph[$prevday] = sprintf("%.1f", $TOTDsph[$prevday]); + $TOTsph[$prevday] = sprintf("%4s", $TOTDsph[$prevday]); + + $TOTWEEKhours = ($TOTWEEKhours + $TOTDhours[$prevday]); + $TOTWEEKsales = ($TOTWEEKsales + $TOTDsales[$prevday]); + + $prevday = ($prevday - 1); + } + +if ( ($TOTWEEKsales > 0) && ($TOTWEEKhours > 0) ) + {$TOTWEEKsph = ($TOTWEEKsales/$TOTWEEKhours);} +else + {$TOTWEEKsph = 0;} + +if ( ($TOTMONTHsales > 0) && ($TOTMONTHhours > 0) ) + {$TOTMONTHsph = ($TOTMONTHsales/$TOTMONTHhours);} +else + {$TOTMONTHsph = 0;} + + if ($YTDrun>0) + { + if ( ($TOTMONTHsales > 0) && ($TOTMONTHhours > 0) ) + {$TOTMONTHsph = ($TOTMONTHsales/$TOTMONTHhours);} + else + {$TOTMONTHsph = 0;} + + $TOTYEARhours = sprintf("%.0f", $TOTYEARhours); + $TOTYEARhours = sprintf("%5s", $TOTYEARhours); while(length($TOTYEARhours)>5) {chop($TOTYEARhours);} + $TOTYEARsph = sprintf("%.1f", $TOTYEARsph); + $TOTYEARsph = sprintf("%4s", $TOTYEARsph); + + $YEARtpipe="$TOTYEARhours|$TOTYEARsph|"; + $YEARtfixed=" $TOTYEARhours $TOTYEARsph"; + } + +print Dout "$shipdate|TOTAL||$TOTDhours[0]|$TOTDsph[0]|$TOTDhours[1]|$TOTDsph[1]|$TOTDhours[2]|$TOTDsph[2]|$TOTDhours[3]|$TOTDsph[3]|$TOTDhours[4]|$TOTDsph[4]|$TOTDhours[5]|$TOTDsph[5]|$TOTDhours[6]|$TOTDsph[6]|$TOTWEEKhours|$TOTWEEKsph|$TOTMONTHhours|$TOTMONTHsph|$YEARtpipe\n"; + + $TOTWEEKhours = sprintf("%.0f", $TOTWEEKhours); + $TOTWEEKhours = sprintf("%5s", $TOTWEEKhours); while(length($TOTWEEKhours)>5) {chop($TOTWEEKhours);} + $TOTWEEKsph = sprintf("%.1f", $TOTWEEKsph); + $TOTWEEKsph = sprintf("%4s", $TOTWEEKsph); + + $TOTMONTHhours = sprintf("%.0f", $TOTMONTHhours); + $TOTMONTHhours = sprintf("%5s", $TOTMONTHhours); while(length($TOTMONTHhours)>5) {chop($TOTMONTHhours);} + $TOTMONTHsph = sprintf("%.1f", $TOTMONTHsph); + $TOTMONTHsph = sprintf("%4s", $TOTMONTHsph); + +$outline = " TOTAL $TOThours[0] $TOTsph[0] $TOThours[1] $TOTsph[1] $TOThours[2] $TOTsph[2] $TOThours[3] $TOTsph[3] $TOThours[4] $TOTsph[4] $TOThours[5] $TOTsph[5] $TOThours[6] $TOTsph[6] $TOTWEEKhours $TOTWEEKsph $TOTMONTHhours $TOTMONTHsph$YEARtfixed\n"; +print "$outline"; +print out "$outline"; + + +exit; + + + + + + + ### TOTAL ACTIVE TIME + $active = ($aryA[3] + $aryA[4] + $aryA[5] + $aryA[6]); + $TIME_S = $active; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dactive = $TIME_HMS; + $active = sprintf("%9s", $TIME_HMS); + + ### TOTAL TALK TIME + $TIME_S = $aryA[3]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dtalk = $TIME_HMS; + $talk = sprintf("%9s", $TIME_HMS); + + ### TOTAL PAUSE TIME + $TIME_S = $aryA[4]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dpause = $TIME_HMS; + $pause = sprintf("%9s", $TIME_HMS); + + ### TOTAL WAIT TIME + $TIME_S = $aryA[5]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dwait = $TIME_HMS; + $wait = sprintf("%9s", $TIME_HMS); + + ### TOTAL DISPO TIME + $TIME_S = $aryA[6]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Ddispo = $TIME_HMS; + $dispo = sprintf("%9s", $TIME_HMS); + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$begindate 00:00:00' and user='$aryA[2]' order by event_time limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $Dfirst_time = $aryB[0]; + $first_time = sprintf("%21s", $aryB[0]); + $Dfirst_log = $aryB[1]; + $first_log = $aryB[1]; + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$begindate 00:00:00' and user='$aryA[2]' order by event_time desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $Dlast_time = $aryB[0]; + $last_time = sprintf("%21s", $aryB[0]); + $Dlast_log = $aryB[1]; + $last_log = $aryB[1]; + + $TIME_S = ($last_log - $first_log); + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $TIME_HMS = "N/A"; + $Dlogin_time = $TIME_HMS; + $login_time = sprintf("%9s", $TIME_HMS); + + + + print Dout "$shipdate|$Dname|$Duser|$Dcalls|$Dtalk|$Dpause|$Dwait|$Ddispo|$Dactive|$Dlogin_time|$Dfirst_time|$Dlast_time\n"; + print out "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + print "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + + + +close(Dout); +close(out); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_agent_daily_SPHfront.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_daily_SPHfront.pl new file mode 100644 index 00000000..13d0c07b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_daily_SPHfront.pl @@ -0,0 +1,664 @@ +#!/usr/bin/perl + +# AST_agent_daily_SPH.pl +# +# This script is designed to gather stats for all agent activity over the course +# of a week and print it in an ASCI text file to be placed +# on a web server for viewing. +# +# This script assumes a work day to be from 2AM to 2AM +# +# Place in the crontab and run every night at 02:00AM for the previous day's stats +# 0 2 * * * /home/cron/AST_agent_daily_SPH.pl +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 80114-1221 - First version +# 80116-0941 - only print agents with week and month hours of 0 to PIPE file +# + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n-----DEBUG MODE-----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING-----\n\n"; + } + } +} +else +{ +print "no command line options set\n"; +} +### end parsing run-time options ### + + +$secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $filedate = "$year$mon$mday-$hour$min$sec"; + $ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + +use Time::Local; + +### find epoch of 2AM today +$TWOAMsec = ( ($secX - ($sec + ($min * 60) + ($hour * 3600) ) ) + 7200); +### find epoch of 2AM yesterday +$TWOAMsecY = ($TWOAMsec - 86400); + +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TWOAMsecY); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} + $begindate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + +### find epoch of 2AM the first day of the month +$BMONTHsec = ($TWOAMsecY - (86400 * ($Tmday - 1) ) ); +### find epoch of 2AM the first day of next month +if ($Tmon>11) {$Tmon=0; $Tyear++;} +$EMONTHsec = timelocal($Tsec,$Tmin,$Thour,1,$Tmon,$Tyear); + + if ($Twday==0) {$day='Sunday '; $SETprevday = 6;} + if ($Twday==1) {$day='Monday '; $SETprevday = 0;} + if ($Twday==2) {$day='Tuesday '; $SETprevday = 1;} + if ($Twday==3) {$day='Wednesday'; $SETprevday = 2;} + if ($Twday==4) {$day='Thursday '; $SETprevday = 3;} + if ($Twday==5) {$day='Friday '; $SETprevday = 4;} + if ($Twday==6) {$day='Saturday '; $SETprevday = 5;} + +($TMsec,$TMmin,$TMhour,$TMmday,$TMmon,$TMyear,$TMwday,$TMyday,$TMisdst) = localtime($BMONTHsec); +$TMyear = ($TMyear + 1900); +$TMmon++; +if ($TMmon < 10) {$TMmon = "0$TMmon";} +if ($TMmday < 10) {$TMmday = "0$TMmday";} +if ($TMhour < 10) {$TMhour = "0$TMhour";} +if ($TMmin < 10) {$TMmin = "0$TMmin";} +if ($TMsec < 10) {$TMsec = "0$TMsec";} + $beginmonth = "$TMyear-$TMmon-$TMmday $TMhour:$TMmin:$TMsec"; + +($TMsec,$TMmin,$TMhour,$TMmday,$TMmon,$TMyear,$TMwday,$TMyday,$TMisdst) = localtime($EMONTHsec); +$TMyear = ($TMyear + 1900); +$TMmon++; +if ($TMmon < 10) {$TMmon = "0$TMmon";} +if ($TMmday < 10) {$TMmday = "0$TMmday";} +if ($TMhour < 10) {$TMhour = "0$TMhour";} +if ($TMmin < 10) {$TMmin = "0$TMmin";} +if ($TMsec < 10) {$TMsec = "0$TMsec";} + $endmonth = "$TMyear-$TMmon-$TMmday $TMhour:$TMmin:$TMsec"; + +#print "|$ABIfiledate|$begindate|$beginmonth|$endmonth|\n"; +#exit; + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_agent_daily_SPH.pl --\n\n"; +print "This program is designed to print sales-per-hour(SPH) to a file for agents' activity for the current week. \n\n"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +$outfile = "AGENT_SPH_$Tyear-$Tmon-$Tmday$txt"; +$Doutfile = "AGENT_SPH_PIPE_$Tyear-$Tmon-$Tmday$txt"; + +### open the X out file for writing ### +open(out, ">$PATHweb/vicidial/agent_reports/$outfile") + || die "Can't open $outfile: $!\n"; +open(Dout, ">$PATHweb/vicidial/agent_reports/$Doutfile") + || die "Can't open $Doutfile: $!\n"; + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +#$vicidial_agent_log = 'vicidial_agent_log_archive'; +$vicidial_agent_log = 'vicidial_agent_log'; + +########################################################################### +########### PAST WEEK STAT GATHERING LOOP ################################# +########################################################################### +print Dout "DATE|AGENT|USER|MON HOURS|MON SPH|TUE HOURS|TUE SPH|WED HOURS|WED SPH|THU HOURS|THU SPH|FRI HOURS|FRI SPH|SAT HOURS|SAT SPH|SUN HOURS|SUN SPH|WEEK HOURS|WEEK SPH|MONTH HOURS|MONTH SPH|GROUP|\n"; +$outline = "REPORT: SPH $Tyear-$Tmon-$Tmday\n\n"; +$outline.= " MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY WEEK MONTH\n"; +$outline.= "AGENT USER HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH HRS SPH GROUP \n"; +print "$outline"; +print out "$outline"; + +### FIND ALL ACTIVE USERS IN THE SYSTEM IN('1090','1102','1245')='1090' +$stmtA = "select full_name,user,user_group from vicidial_users order by user_group,full_name limit 1000;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + + $Dname[$rec_count] = $aryA[0]; + $Duser[$rec_count] = $aryA[1]; + $Dgroup[$rec_count] = $aryA[2]; + $name[$rec_count] = sprintf("%-20s", $aryA[0]); while(length($name[$rec_count])>20) {chop($name[$rec_count]);} + $user[$rec_count] = sprintf("%-8s", $aryA[1]); + $group[$rec_count] = sprintf("%-8s", $aryA[2]); + + $rec_count++; + } +$sthA->finish(); + + +$Gsph[0]=' 0'; $Gsph[1]=' 0'; $Gsph[2]=' 0'; $Gsph[3]=' 0'; $Gsph[4]=' 0'; $Gsph[5]=' 0'; $Gsph[6]=' 0'; +$Gsales[0]=0; $Gsales[1]=0; $Gsales[2]=0; $Gsales[3]=0; $Gsales[4]=0; $Gsales[5]=0; $Gsales[6]=0; +$Ghours[0]=' 0.0'; $Ghours[1]=' 0.0'; $Ghours[2]=' 0.0'; $Ghours[3]=' 0.0'; $Ghours[4]=' 0.0'; $Ghours[5]=' 0.0'; $Ghours[6]=' 0.0'; +$GDsph[0]=0; $GDsph[1]=0; $GDsph[2]=0; $GDsph[3]=0; $GDsph[4]=0; $GDsph[5]=0; $GDsph[6]=0; +$GDsales[0]=0; $GDsales[1]=0; $GDsales[2]=0; $GDsales[3]=0; $GDsales[4]=0; $GDsales[5]=0; $GDsales[6]=0; +$GDhours[0]=0; $GDhours[1]=0; $GDhours[2]=0; $GDhours[3]=0; $GDhours[4]=0; $GDhours[5]=0; $GDhours[6]=0; +$GWEEKsph=0; $GWEEKhours=0; $GWEEKsales=0; +$GMONTHsph=0; $GMONTHhours=0; $GMONTHsales=0; + +$TOTsph[0]=' 0'; $TOTsph[1]=' 0'; $TOTsph[2]=' 0'; $TOTsph[3]=' 0'; $TOTsph[4]=' 0'; $TOTsph[5]=' 0'; $TOTsph[6]=' 0'; +$TOTsales[0]=0; $TOTsales[1]=0; $TOTsales[2]=0; $TOTsales[3]=0; $TOTsales[4]=0; $TOTsales[5]=0; $TOTsales[6]=0; +$TOThours[0]=' 0.0'; $TOThours[1]=' 0.0'; $TOThours[2]=' 0.0'; $TOThours[3]=' 0.0'; $TOThours[4]=' 0.0'; $TOThours[5]=' 0.0'; $TOThours[6]=' 0.0'; +$TOTDsph[0]=0; $TOTDsph[1]=0; $TOTDsph[2]=0; $TOTDsph[3]=0; $TOTDsph[4]=0; $TOTDsph[5]=0; $TOTDsph[6]=0; +$TOTDsales[0]=0; $TOTDsales[1]=0; $TOTDsales[2]=0; $TOTDsales[3]=0; $TOTDsales[4]=0; $TOTDsales[5]=0; $TOTDsales[6]=0; +$TOTDhours[0]=0; $TOTDhours[1]=0; $TOTDhours[2]=0; $TOTDhours[3]=0; $TOTDhours[4]=0; $TOTDhours[5]=0; $TOTDhours[6]=0; +$TOTWEEKsph=0; $TOTWEEKhours=0; $TOTWEEKsales=0; +$TOTMONTHsph=0; $TOTMONTHhours=0; $TOTMONTHsales=0; + + +### GO THROUGH EACH USER ACCOUNT AND FIND OUT THE HOURS AND SPH +$i=0; +foreach (@Duser) + { + $j=0; + $sph[0]=' 0'; $sph[1]=' 0'; $sph[2]=' 0'; $sph[3]=' 0'; $sph[4]=' 0'; $sph[5]=' 0'; $sph[6]=' 0'; + $sales[0]=0; $sales[1]=0; $sales[2]=0; $sales[3]=0; $sales[4]=0; $sales[5]=0; $sales[6]=0; + $hours[0]=' 0.0'; $hours[1]=' 0.0'; $hours[2]=' 0.0'; $hours[3]=' 0.0'; $hours[4]=' 0.0'; $hours[5]=' 0.0'; $hours[6]=' 0.0'; + $Dsph[0]=0; $Dsph[1]=0; $Dsph[2]=0; $Dsph[3]=0; $Dsph[4]=0; $Dsph[5]=0; $Dsph[6]=0; + $Dsales[0]=0; $Dsales[1]=0; $Dsales[2]=0; $Dsales[3]=0; $Dsales[4]=0; $Dsales[5]=0; $Dsales[6]=0; + $Dhours[0]=0; $Dhours[1]=0; $Dhours[2]=0; $Dhours[3]=0; $Dhours[4]=0; $Dhours[5]=0; $Dhours[6]=0; + $WEEKsph=0; $WEEKhours=0; $WEEKsales=0; + $MONTHsph=0; $MONTHhours=0; $MONTHsales=0; + + $UDtarget[0] = ($TWOAMsec - (86400 * 0) ); # X-0 days in the past + $UDtarget[1] = ($TWOAMsec - (86400 * 1) ); # X-1 days in the past + $UDtarget[2] = ($TWOAMsec - (86400 * 2) ); # X-2 days in the past + $UDtarget[3] = ($TWOAMsec - (86400 * 3) ); # X-3 days in the past + $UDtarget[4] = ($TWOAMsec - (86400 * 4) ); # X-4 days in the past + $UDtarget[5] = ($TWOAMsec - (86400 * 5) ); # X-5 days in the past + $UDtarget[6] = ($TWOAMsec - (86400 * 6) ); # X-6 days in the past + $UDtarget[7] = ($TWOAMsec - (86400 * 7) ); # X-7 days in the past + + $prevday = $SETprevday; + + ### GO THROUGH EACH DAY THIS WEEK UP TO TODAY + while ($prevday >= 0) + { + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($UDtarget[$j]); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $enddate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + + $k = ($j + 1); + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($UDtarget[$k]); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $begindate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + + $Dsales[$prevday]=0; + $Dhours[$prevday]=0; + + $stmtA = "select sum(talk_sec+pause_sec+wait_sec+dispo_sec) from vicidial_agent_log where event_time <= '$enddate' and event_time >= '$begindate' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 and user='$Duser[$i]' limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Dhours[$prevday] = ($aryA[0]/3600); + } + + $stmtA = "select count(*) from vicidial_log where call_date <= '$enddate' and call_date >= '$begindate' and status IN('A1','A2','A3','A4','SALE','UPSELL') and user='$Duser[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Dsales[$prevday] = $aryA[0]; + } + + $Dhours[$prevday] = sprintf("%.2f", $Dhours[$prevday]); + $hours[$prevday] = sprintf("%5s", $Dhours[$prevday]); + $sales[$prevday] = sprintf("%5s", $Dsales[$prevday]); + if ( ($Dsales[$prevday] > 0) && ($Dhours[$prevday] > 0) ) + {$Dsph[$prevday] = ($Dsales[$prevday]/$Dhours[$prevday]);} + else + {$Dsph[$prevday] = 0;} + $Dsph[$prevday] = sprintf("%.1f", $Dsph[$prevday]); + $sph[$prevday] = sprintf("%4s", $Dsph[$prevday]); + + $GDsales[$prevday] = ($GDsales[$prevday] + $Dsales[$prevday]); + $TOTDsales[$prevday] = ($TOTDsales[$prevday] + $Dsales[$prevday]); + $GDhours[$prevday] = ($GDhours[$prevday] + $Dhours[$prevday]); + $TOTDhours[$prevday] = ($TOTDhours[$prevday] + $Dhours[$prevday]); + + $WEEKhours = ($WEEKhours + $Dhours[$prevday]); + $WEEKsales = ($WEEKsales + $Dsales[$prevday]); + + if ($DB) {print STDERR "$hours[$prevday] $sales[$prevday] $sph[$prevday] $prevday $begindate\n";} + $prevday = ($prevday - 1); + $j++; + } + + $stmtA = "select sum(talk_sec+pause_sec+wait_sec+dispo_sec) from vicidial_agent_log where event_time <= '$endmonth' and event_time >= '$beginmonth' and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 and user='$Duser[$i]' limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $MONTHhours = ($aryA[0]/3600); + } + + $stmtA = "select count(*) from vicidial_log where call_date <= '$endmonth' and call_date >= '$beginmonth' and status IN('A1','A2','A3','A4','SALE','UPSELL') and user='$Duser[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $MONTHsales = $aryA[0]; + } + + if ( ($WEEKsales > 0) && ($WEEKhours > 0) ) + {$WEEKsph = ($WEEKsales/$WEEKhours);} + else + {$WEEKsph = 0;} + + if ( ($MONTHsales > 0) && ($MONTHhours > 0) ) + {$MONTHsph = ($MONTHsales/$MONTHhours);} + else + {$MONTHsph = 0;} + + $GMONTHsales = ($GMONTHsales + $MONTHsales); + $TOTMONTHsales = ($TOTMONTHsales + $MONTHsales); + $GMONTHhours = ($GMONTHhours + $MONTHhours); + $TOTMONTHhours = ($TOTMONTHhours + $MONTHhours); + + print Dout "$shipdate|$Dname[$i]|$Duser[$i]|$Dhours[0]|$Dsph[0]|$Dhours[1]|$Dsph[1]|$Dhours[2]|$Dsph[2]|$Dhours[3]|$Dsph[3]|$Dhours[4]|$Dsph[4]|$Dhours[5]|$Dsph[5]|$Dhours[6]|$Dsph[6]|$WEEKhours|$WEEKsph|$MONTHhours|$MONTHsph|$Dgroup[$i]\n"; + + ### only print to ASCII fixed-length file if week-to-date and month-to-date hours > 0 + if ( ($WEEKhours > 0) || ($MONTHhours > 0) ) + { + $WEEKhours = sprintf("%.0f", $WEEKhours); + $WEEKhours = sprintf("%5s", $WEEKhours); + $WEEKsph = sprintf("%.1f", $WEEKsph); + $WEEKsph = sprintf("%4s", $WEEKsph); + + $MONTHhours = sprintf("%.0f", $MONTHhours); + $MONTHhours = sprintf("%5s", $MONTHhours); + $MONTHsph = sprintf("%.1f", $MONTHsph); + $MONTHsph = sprintf("%4s", $MONTHsph); + + $outline = "$name[$i] $user[$i] $hours[0] $sph[0] $hours[1] $sph[1] $hours[2] $sph[2] $hours[3] $sph[3] $hours[4] $sph[4] $hours[5] $sph[5] $hours[6] $sph[6] $WEEKhours $WEEKsph $MONTHhours $MONTHsph $group[$i]\n"; + print "$outline"; + print out "$outline"; + } + else + { + print "SKIPPED: $name[$i] $user[$i] $WEEKhours $MONTHhours\n"; + } + + $Dprevgroup = $Dgroup[$i]; + $prevgroup = $group[$i]; + $i++; + + ### BEGIN GROUP SUMMARY STATS + if ($Dgroup[$i] !~ /^$Dprevgroup$/) + { + $prevday = $SETprevday; + + ### GO THROUGH EACH DAY THIS WEEK UP TO TODAY + while ($prevday >= 0) + { + $GDhours[$prevday] = sprintf("%.2f", $GDhours[$prevday]); + $Ghours[$prevday] = sprintf("%5s", $GDhours[$prevday]); while(length($Ghours[$prevday])>5) {chop($Ghours[$prevday]);} + $Gsales[$prevday] = sprintf("%5s", $GDsales[$prevday]); + if ( ($GDsales[$prevday] > 0) && ($GDhours[$prevday] > 0) ) + {$GDsph[$prevday] = ($GDsales[$prevday]/$GDhours[$prevday]);} + else + {$GDsph[$prevday] = 0;} + $GDsph[$prevday] = sprintf("%.1f", $GDsph[$prevday]); + $Gsph[$prevday] = sprintf("%4s", $GDsph[$prevday]); + + $GWEEKhours = ($GWEEKhours + $GDhours[$prevday]); + $GWEEKsales = ($GWEEKsales + $GDsales[$prevday]); + + $prevday = ($prevday - 1); + } + + if ( ($GWEEKsales > 0) && ($GWEEKhours > 0) ) + {$GWEEKsph = ($GWEEKsales/$GWEEKhours);} + else + {$GWEEKsph = 0;} + + if ( ($GMONTHsales > 0) && ($GMONTHhours > 0) ) + {$GMONTHsph = ($GMONTHsales/$GMONTHhours);} + else + {$GMONTHsph = 0;} + + print Dout "$shipdate|TOTAL $Dprevgroup||$GDhours[0]|$GDsph[0]|$GDhours[1]|$GDsph[1]|$GDhours[2]|$GDsph[2]|$GDhours[3]|$GDsph[3]|$GDhours[4]|$GDsph[4]|$GDhours[5]|$GDsph[5]|$GDhours[6]|$GDsph[6]|$GWEEKhours|$GWEEKsph|$GMONTHhours|$GMONTHsph|\n"; + + $GWEEKhours = sprintf("%.0f", $GWEEKhours); + $GWEEKhours = sprintf("%5s", $GWEEKhours); while(length($GWEEKhours)>5) {chop($GWEEKhours);} + $GWEEKsph = sprintf("%.1f", $GWEEKsph); + $GWEEKsph = sprintf("%4s", $GWEEKsph); + + $GMONTHhours = sprintf("%.0f", $GMONTHhours); + $GMONTHhours = sprintf("%5s", $GMONTHhours); while(length($GMONTHhours)>5) {chop($GMONTHhours);} + $GMONTHsph = sprintf("%.1f", $GMONTHsph); + $GMONTHsph = sprintf("%4s", $GMONTHsph); + + $outline = " GROUP TOTAL $prevgroup $Ghours[0] $Gsph[0] $Ghours[1] $Gsph[1] $Ghours[2] $Gsph[2] $Ghours[3] $Gsph[3] $Ghours[4] $Gsph[4] $Ghours[5] $Gsph[5] $Ghours[6] $Gsph[6] $GWEEKhours $GWEEKsph $GMONTHhours $GMONTHsph\n\n"; + print "$outline"; + print out "$outline"; + + $Gsph[0]=' 0'; $Gsph[1]=' 0'; $Gsph[2]=' 0'; $Gsph[3]=' 0'; $Gsph[4]=' 0'; $Gsph[5]=' 0'; $Gsph[6]=' 0'; + $Gsales[0]=0; $Gsales[1]=0; $Gsales[2]=0; $Gsales[3]=0; $Gsales[4]=0; $Gsales[5]=0; $Gsales[6]=0; + $Ghours[0]=' 0.0'; $Ghours[1]=' 0.0'; $Ghours[2]=' 0.0'; $Ghours[3]=' 0.0'; $Ghours[4]=' 0.0'; $Ghours[5]=' 0.0'; $Ghours[6]=' 0.0'; + $GDsph[0]=0; $GDsph[1]=0; $GDsph[2]=0; $GDsph[3]=0; $GDsph[4]=0; $GDsph[5]=0; $GDsph[6]=0; + $GDsales[0]=0; $GDsales[1]=0; $GDsales[2]=0; $GDsales[3]=0; $GDsales[4]=0; $GDsales[5]=0; $GDsales[6]=0; + $GDhours[0]=0; $GDhours[1]=0; $GDhours[2]=0; $GDhours[3]=0; $GDhours[4]=0; $GDhours[5]=0; $GDhours[6]=0; + $GWEEKsph=0; $GWEEKhours=0; $GWEEKsales=0; + $GMONTHsph=0; $GMONTHhours=0; $GMONTHsales=0; + } + } + ### END AGENT STATS + + +### BEGIN TOTAL STATS + + +$prevday = $SETprevday; + +### GO THROUGH EACH DAY THIS WEEK UP TO TODAY +while ($prevday >= 0) + { + $TOTDhours[$prevday] = sprintf("%.0f", $TOTDhours[$prevday]); + $TOThours[$prevday] = sprintf("%5s", $TOTDhours[$prevday]); while(length($TOThours[$prevday])>5) {chop($TOThours[$prevday]);} + $TOTsales[$prevday] = sprintf("%5s", $TOTDsales[$prevday]); + if ( ($TOTDsales[$prevday] > 0) && ($TOTDhours[$prevday] > 0) ) + {$TOTDsph[$prevday] = ($TOTDsales[$prevday]/$TOTDhours[$prevday]);} + else + {$TOTDsph[$prevday] = 0;} + $TOTDsph[$prevday] = sprintf("%.1f", $TOTDsph[$prevday]); + $TOTsph[$prevday] = sprintf("%4s", $TOTDsph[$prevday]); + + $TOTWEEKhours = ($TOTWEEKhours + $TOTDhours[$prevday]); + $TOTWEEKsales = ($TOTWEEKsales + $TOTDsales[$prevday]); + + $prevday = ($prevday - 1); + } + +if ( ($TOTWEEKsales > 0) && ($TOTWEEKhours > 0) ) + {$TOTWEEKsph = ($TOTWEEKsales/$TOTWEEKhours);} +else + {$TOTWEEKsph = 0;} + +if ( ($TOTMONTHsales > 0) && ($TOTMONTHhours > 0) ) + {$TOTMONTHsph = ($TOTMONTHsales/$TOTMONTHhours);} +else + {$TOTMONTHsph = 0;} + + +print Dout "$shipdate|TOTAL||$TOTDhours[0]|$TOTDsph[0]|$TOTDhours[1]|$TOTDsph[1]|$TOTDhours[2]|$TOTDsph[2]|$TOTDhours[3]|$TOTDsph[3]|$TOTDhours[4]|$TOTDsph[4]|$TOTDhours[5]|$TOTDsph[5]|$TOTDhours[6]|$TOTDsph[6]|$TOTWEEKhours|$TOTWEEKsph|$TOTMONTHhours|$TOTMONTHsph|\n"; + + $TOTWEEKhours = sprintf("%.0f", $TOTWEEKhours); + $TOTWEEKhours = sprintf("%5s", $TOTWEEKhours); while(length($TOTWEEKhours)>5) {chop($TOTWEEKhours);} + $TOTWEEKsph = sprintf("%.1f", $TOTWEEKsph); + $TOTWEEKsph = sprintf("%4s", $TOTWEEKsph); + + $TOTMONTHhours = sprintf("%.0f", $TOTMONTHhours); + $TOTMONTHhours = sprintf("%5s", $TOTMONTHhours); while(length($TOTMONTHhours)>5) {chop($TOTMONTHhours);} + $TOTMONTHsph = sprintf("%.1f", $TOTMONTHsph); + $TOTMONTHsph = sprintf("%4s", $TOTMONTHsph); + +$outline = " TOTAL $TOThours[0] $TOTsph[0] $TOThours[1] $TOTsph[1] $TOThours[2] $TOTsph[2] $TOThours[3] $TOTsph[3] $TOThours[4] $TOTsph[4] $TOThours[5] $TOTsph[5] $TOThours[6] $TOTsph[6] $TOTWEEKhours $TOTWEEKsph $TOTMONTHhours $TOTMONTHsph\n"; +print "$outline"; +print out "$outline"; + + +exit; + + + + + + + + + + + + + + + + + + + + + + + + + ### TOTAL ACTIVE TIME + $active = ($aryA[3] + $aryA[4] + $aryA[5] + $aryA[6]); + $TIME_S = $active; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dactive = $TIME_HMS; + $active = sprintf("%9s", $TIME_HMS); + + ### TOTAL TALK TIME + $TIME_S = $aryA[3]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dtalk = $TIME_HMS; + $talk = sprintf("%9s", $TIME_HMS); + + ### TOTAL PAUSE TIME + $TIME_S = $aryA[4]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dpause = $TIME_HMS; + $pause = sprintf("%9s", $TIME_HMS); + + ### TOTAL WAIT TIME + $TIME_S = $aryA[5]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dwait = $TIME_HMS; + $wait = sprintf("%9s", $TIME_HMS); + + ### TOTAL DISPO TIME + $TIME_S = $aryA[6]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Ddispo = $TIME_HMS; + $dispo = sprintf("%9s", $TIME_HMS); + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$begindate 00:00:00' and user='$aryA[2]' order by event_time limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $Dfirst_time = $aryB[0]; + $first_time = sprintf("%21s", $aryB[0]); + $Dfirst_log = $aryB[1]; + $first_log = $aryB[1]; + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$begindate 00:00:00' and user='$aryA[2]' order by event_time desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $Dlast_time = $aryB[0]; + $last_time = sprintf("%21s", $aryB[0]); + $Dlast_log = $aryB[1]; + $last_log = $aryB[1]; + + $TIME_S = ($last_log - $first_log); + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $TIME_HMS = "N/A"; + $Dlogin_time = $TIME_HMS; + $login_time = sprintf("%9s", $TIME_HMS); + + + + print Dout "$shipdate|$Dname|$Duser|$Dcalls|$Dtalk|$Dpause|$Dwait|$Ddispo|$Dactive|$Dlogin_time|$Dfirst_time|$Dlast_time\n"; + print out "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + print "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + + + +close(Dout); +close(out); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_agent_day.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_day.pl new file mode 100644 index 00000000..848a7d9b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_day.pl @@ -0,0 +1,300 @@ +#!/usr/bin/perl +# +# AST_agent_day.pl version 2.0.5 +# +# This script is designed to gather stats for all agent activity over the course +# of a day and print it in an ASCI text file to be placed +# on a web server for viewing. +# +# Place in the crontab and run every night at 23:59 +# 59 23 * * * /home/cron/AST_agent_day.pl +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 60517-1100 - First version +# 60715-2325 - changed to use /etc/astguiclient.conf for configs +# 71115-0231 - added Pipe-delimited file output +# + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n-----DEBUG MODE-----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING-----\n\n"; + } + } +} +else +{ +print "no command line options set\n"; +} +### end parsing run-time options ### + + +$secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $filedate = "$year$mon$mday-$hour$min$sec"; + $ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + + if ($wday==0) {$day='Sunday ';} + if ($wday==1) {$day='Monday ';} + if ($wday==2) {$day='Tuesday ';} + if ($wday==3) {$day='Wednesday';} + if ($wday==4) {$day='Thursday ';} + if ($wday==5) {$day='Friday ';} + if ($wday==6) {$day='Saturday ';} + + + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_agent_day.pl --\n\n"; +print "This program is designed to print stats to a file for agents' activity for the previous day. \n\n"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +$outfile = "AGENT_DAY_$shipdate$txt"; +$Doutfile = "AGENT_DAY_PIPE_$shipdate$txt"; + +### open the X out file for writing ### +open(out, ">$PATHweb/vicidial/agent_reports/$outfile") + || die "Can't open $outfile: $!\n"; +open(Dout, ">$PATHweb/vicidial/agent_reports/$Doutfile") + || die "Can't open $Doutfile: $!\n"; + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +#$vicidial_agent_log = 'vicidial_agent_log_archive'; +$vicidial_agent_log = 'vicidial_agent_log'; + +########################################################################### +########### PAST WEEK STAT GATHERING LOOP ################################# +########################################################################### +print Dout "TODAY: $day $shipdate\n\n"; +print Dout "DATE|AGENT|USER|CALLS|TALK|PAUSE|WAIT|DISPO|ACTIVE|LOGTIME|FIRST|LAST\n"; +print out "TODAY: $day $shipdate\n\n"; +print out "AGENT USER CALLS TALK PAUSE WAIT DISPO ACTIVE LOGTIME FIRST LAST \n"; +print "TODAY: $day $shipdate\n\n"; +print "AGENT USER CALLS TALK PAUSE WAIT DISPO ACTIVE LOGTIME FIRST LAST \n"; + +$stmtA = "select count(*) as calls, full_name,vicidial_users.user,sum(talk_sec),sum(pause_sec),sum(wait_sec),sum(dispo_sec) from vicidial_users,$vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$shipdate 00:00:00' and vicidial_users.user=$vicidial_agent_log.user and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 group by vicidial_users.user order by full_name limit 10000;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + + $Dcalls = $aryA[0]; + $Dname = $aryA[1]; + $Duser = $aryA[2]; + $calls = sprintf("%7s", $aryA[0]); + $name = sprintf("%-20s", $aryA[1]); while(length($name)>20) {chop($name);} + $user = sprintf("%-8s", $aryA[2]); + + ### TOTAL ACTIVE TIME + $active = ($aryA[3] + $aryA[4] + $aryA[5] + $aryA[6]); + $TIME_S = $active; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dactive = $TIME_HMS; + $active = sprintf("%9s", $TIME_HMS); + + ### TOTAL TALK TIME + $TIME_S = $aryA[3]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dtalk = $TIME_HMS; + $talk = sprintf("%9s", $TIME_HMS); + + ### TOTAL PAUSE TIME + $TIME_S = $aryA[4]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dpause = $TIME_HMS; + $pause = sprintf("%9s", $TIME_HMS); + + ### TOTAL WAIT TIME + $TIME_S = $aryA[5]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dwait = $TIME_HMS; + $wait = sprintf("%9s", $TIME_HMS); + + ### TOTAL DISPO TIME + $TIME_S = $aryA[6]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Ddispo = $TIME_HMS; + $dispo = sprintf("%9s", $TIME_HMS); + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$shipdate 00:00:00' and user='$aryA[2]' order by event_time limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $Dfirst_time = $aryB[0]; + $first_time = sprintf("%21s", $aryB[0]); + $Dfirst_log = $aryB[1]; + $first_log = $aryB[1]; + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$shipdate 00:00:00' and user='$aryA[2]' order by event_time desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $Dlast_time = $aryB[0]; + $last_time = sprintf("%21s", $aryB[0]); + $Dlast_log = $aryB[1]; + $last_log = $aryB[1]; + + $TIME_S = ($last_log - $first_log); + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dlogin_time = $TIME_HMS; + $login_time = sprintf("%9s", $TIME_HMS); + + + + print Dout "$shipdate|$Dname|$Duser|$Dcalls|$Dtalk|$Dpause|$Dwait|$Ddispo|$Dactive|$Dlogin_time|$Dfirst_time|$Dlast_time\n"; + print out "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + print "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + + + $rec_count++; + } +$sthA->finish(); + + + +close(Dout); +close(out); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_agent_logout.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_logout.pl new file mode 100644 index 00000000..b00d86e4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_logout.pl @@ -0,0 +1,316 @@ +#!/usr/bin/perl +# +# AST_agent_logout.pl version 2.2.0 +# +# DESCRIPTION: +# forces logout of agents in a specified campaign or all campaigns +# +# This script is meant to be used in the crontab at scheduled intervals +# +# EXAMPLE CRONTAB ENTRIES: +# +# ### Force logout at different times +# +# ## 3:15PM and 10:15PM Monday-Thursday +# 15 15,22 * * 1,2,3,4 /usr/share/astguiclient/AST_agent_logout.pl --debugX +# +# ## 8:15PM on Friday +# 15 20 * * 5 /usr/share/astguiclient/AST_agent_logout.pl --debugX +# +# ## 4:15PM on Saturday +# 15 16 * * 6 /usr/share/astguiclient/AST_agent_logout.pl --debugX +# +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG +# 80112-0330 - First Build +# 91129-2138 - Replace SELECT STAR in SQL statement, fixed other formatting +# + +# constants +$DB=0; # Debug flag, set to 0 for no debug messages, On an active system this will generate lots of lines of output per minute +$US='__'; +$MT[0]=''; + +$secT = time(); +$now_date_epoch = $secT; +($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";} +$file_date = "$year-$mon-$mday"; +$now_date = "$year-$mon-$mday $hour:$min:$sec"; +$VDL_date = "$year-$mon-$mday 00:00:01"; +$inactive_epoch = ($secT - 60); + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options(must stay in this order):\n [--debug] = debug\n [--debugX] = super debug\n [-t] = test\n [--campaign=XXX] = run for campaign XXX only\n\n"; + exit; + } + else + { + if ($args =~ /--campaign=/i) + { + # print "\n|$ARGS|\n\n"; + @data_in = split(/--campaign=/,$args); + $CLIcampaign = $data_in[1]; + $CLIcampaign =~ s/ .*$//gi; + } + else + {$CLIcampaign = '';} + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG -----\n\n"; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + } + } +else + { + print "no command line options set\n"; + } + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VDALOGfile) {$VDALOGfile = "$PATHlogs/agentlogout.$year-$mon-$mday";} +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +### Grab Server values from the database +$stmtA = "SELECT vd_server_logs,local_gmt FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = "$aryA[0]"; + $DBSERVER_GMT = "$aryA[1]"; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + if (length($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + } +$sthA->finish(); + + + +@user=@MT; + +if ($CLIcampaign) + { + $stmtA = "SELECT user,server_ip,status,lead_id,campaign_id,uniqueid,callerid,channel,last_call_time,UNIX_TIMESTAMP(last_update_time),last_call_finish,closer_campaigns,call_server_ip from vicidial_live_agents where campaign_id='$CLIcampaign'"; + } +else + { + $stmtA = "SELECT user,server_ip,status,lead_id,campaign_id,uniqueid,callerid,channel,last_call_time,UNIX_TIMESTAMP(last_update_time),last_call_finish,closer_campaigns,call_server_ip from vicidial_live_agents"; + } +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $user[$rec_count] = "$aryA[0]"; + $server_ip[$rec_count] = "$aryA[1]"; + $status[$rec_count] = "$aryA[2]"; + $lead_id[$rec_count] = "$aryA[3]"; + $campaign_id[$rec_count] = "$aryA[4]"; + $uniqueid[$rec_count] = "$aryA[5]"; + $callerid[$rec_count] = "$aryA[6]"; + $channel[$rec_count] = "$aryA[7]"; + $last_call_time[$rec_count] = "$aryA[8]"; + $last_update_time[$rec_count] = "$aryA[9]"; + $last_call_finish[$rec_count] = "$aryA[10]"; + $closer_campaigns[$rec_count] = "$aryA[11]"; + $call_server_ip[$rec_count] = "$aryA[12]"; + + $rec_count++; + } +$sthA->finish(); +if ($DB) {print "AGENTS TO LOGOUT: $rec_count\n";} + +##### LOOP THROUGH EACH AGENT(USER) AND LOG THEM OUT ##### +$i=0; +foreach(@user) + { + ### attempt to gracefully update the timers in the logs before logging out the agent + if ($last_update_time[$i] > $inactive_epoch) + { + $stmtA = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$user[$i]' and campaign_id='$campaign_id[$i]' order by agent_log_id desc LIMIT 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $agent_log_id[$i] = "$aryA[0]"; + $pause_epoch[$i] = "$aryA[6]"; + $pause_sec[$i] = "$aryA[7]"; + $wait_epoch[$i] = "$aryA[8]"; + $wait_sec[$i] = "$aryA[9]"; + $talk_epoch[$i] = "$aryA[10]"; + $talk_sec[$i] = "$aryA[11]"; + $dispo_epoch[$i] = "$aryA[12]"; + $dispo_sec[$i] = "$aryA[13]"; + $user_group[$i] = "$aryA[15]"; + } + $sthA->finish(); + + if ( ($wait_epoch[$i] < 1) || ( ($status[$i] =~ /PAUSE/) && ($dispo_epoch[$i] < 1) ) ) + { + $pause_sec = ( ($now_date_epoch - $pause_epoch[$i]) + $pause_sec[$i]); + $stmtA = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$pause_sec' where agent_log_id='$agent_log_id[$i]';"; + } + else + { + if ($talk_epoch[$i] < 1) + { + $wait_sec = ( ($now_date_epoch - $wait_epoch[$i]) + $wait_sec[$i]); + $stmtA = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$wait_sec' where agent_log_id='$agent_log_id[$i]';"; + } + else + { + if ($dispo_epoch[$i] < 1) + { + $talk_sec = ($now_date_epoch - $talk_epoch[$i]); + $stmtA = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$talk_sec' where agent_log_id='$agent_log_id[$i]';"; + } + else + { + if ($dispo_sec[$i] < 1) + { + $dispo_sec = ($now_date_epoch - $dispo_epoch[$i]); + $stmtA = "UPDATE vicidial_agent_log SET dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id[$i]';"; + } + } + } + } + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "UPDATING VAL RECORD: $affected_rows |$stmtA|\n";} + $event_string = "AGENT UPDATE|$affected_rows|$stmtA|"; + &event_logger; + } + + $stmtA = "DELETE from vicidial_live_agents where user='$user[$i]' and campaign_id='$campaign_id[$i]' order by live_agent_id LIMIT 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($DBX) {print "VLA record Deleted: $affected_rows $user[$1] $campaign_id[$i] $status[$i] $last_call_time[$i]\n";} + $event_string = "AGENT LOGOUT|$user[$1]|$campaign_id[$i]|$status[$i]|$last_call_time[$i]"; + &event_logger; + + + if (length($user_group[$i])<1) + { + $stmtA = "SELECT user_group FROM vicidial_users where user='$user[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $user_group[$i] = "$aryA[0]"; + } + $sthA->finish(); + } + $stmtA = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user[$i]','LOGOUT','$campaign_id[$i]','$now_date','$now_date_epoch','$user_group[$i]');"; + $affected_rows = $dbhA->do($stmtA); + + $i++; + } + + +$dbhA->disconnect(); + +if($DB) + { + ### calculate time to run script ### + $secY = time(); + $secZ = ($secY - $secT); + + if (!$q) {print "DONE. Script execution time in seconds: $secZ\n";} + } + +exit; + + + +sub event_logger + { + if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$VDALOGfile") + || die "Can't open $VDALOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_agent_week.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_week.pl new file mode 100644 index 00000000..a00c55bb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_week.pl @@ -0,0 +1,352 @@ +#!/usr/bin/perl +# +# AST_agent_week.pl version 2.0.5 +# +# This script is designed to gather stats for all agent activity over the course +# of a week(Sunday to Saturday) and print it in an ASCI text file to be placed +# on a web server for viewing. +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 60517-1100 - First version +# 60715-2325 - changed to use /etc/astguiclient.conf for configs +# + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n-----DEBUG MODE-----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING-----\n\n"; + } + } +} +else +{ +print "no command line options set\n"; +} +### end parsing run-time options ### + + +$secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $filedate = "$year$mon$mday-$hour$min$sec"; + $ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + + $STARTtarget = ($secX - (86400 * $wday)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($STARTtarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $START_week = (($Syday/7)+1); $START_week = sprintf("%2d", $START_week); + $STARTtarget_date = "$Syear-$Smon-$Smday"; + + $ENDtarget = ($STARTtarget + (86400 * 6)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($ENDtarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $ENDtarget_date = "$Syear-$Smon-$Smday"; + + $PAST_STARTtarget = ($STARTtarget - (86400 * 7)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($PAST_STARTtarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $PAST_START_week = (($Syday/7)+1); $PAST_START_week = sprintf("%2d", $PAST_START_week); + $PAST_STARTtarget_date = "$Syear-$Smon-$Smday"; + + $PAST_ENDtarget = ($ENDtarget - (86400 * 7)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($PAST_ENDtarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $PAST_ENDtarget_date = "$Syear-$Smon-$Smday"; + + $PAST_date[0] = $PAST_STARTtarget_date; + $PAST_day[0] = 'Sunday '; + $PAST_date[6] = $PAST_ENDtarget_date; + $PAST_day[6] = 'Saturday '; + + $PAST_Mondaytarget = ($STARTtarget - (86400 * 6)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($PAST_Mondaytarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $PAST_date[1] = "$Syear-$Smon-$Smday"; + $PAST_day[1] = 'Monday '; + + $PAST_Tuesdaytarget = ($STARTtarget - (86400 * 5)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($PAST_Tuesdaytarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $PAST_date[2] = "$Syear-$Smon-$Smday"; + $PAST_day[2] = 'Tuesday '; + + $PAST_Wednesdaytarget = ($STARTtarget - (86400 * 4)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($PAST_Wednesdaytarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $PAST_date[3] = "$Syear-$Smon-$Smday"; + $PAST_day[3] = 'Wednesday'; + + $PAST_Thursdaytarget = ($STARTtarget - (86400 * 3)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($PAST_Thursdaytarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $PAST_date[4] = "$Syear-$Smon-$Smday"; + $PAST_day[4] = 'Thursday '; + + $PAST_Fridaytarget = ($STARTtarget - (86400 * 2)); + ($Ssec,$Smin,$Shour,$Smday,$Smon,$Syear,$Swday,$Syday,$Sisdst) = localtime($PAST_Fridaytarget); + $Syear = ($Syear + 1900); $Smon++; + if ($Smon < 10) {$Smon = "0$Smon";} + if ($Smday < 10) {$Smday = "0$Smday";} + $PAST_date[5] = "$Syear-$Smon-$Smday"; + $PAST_day[5] = 'Friday '; + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_agent_week.pl --\n\n"; +print "This program is designed to print stats to a file for agents' activity for the previous week. \n\n"; + +$TLoutfile = ''; +$TLoutfile .= "TODAY: $shipdate\n"; +$TLoutfile .= "THIS WEEK: week $START_week $STARTtarget_date - $ENDtarget_date\n"; +$TLoutfile .= "LAST WEEK: week $PAST_START_week $PAST_STARTtarget_date - $PAST_ENDtarget_date\n\n"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +$outfile = "AGENT_HOURS_$PAST_STARTtarget_date$US$PAST_ENDtarget_date$txt"; + +### open the X out file for writing ### +open(out, ">$PATHweb/vicidial/agent_reports/$outfile") + || die "Can't open $outfile: $!\n"; + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +#$vicidial_agent_log = 'vicidial_agent_log_archive'; +$vicidial_agent_log = 'vicidial_agent_log'; + +########################################################################### +########### PAST WEEK STAT GATHERING LOOP ################################# +########################################################################### +$h=0; +foreach(@PAST_date) +{ + print out "\n$PAST_day[$h] $PAST_date[$h]\n\n"; + print out "AGENT USER CALLS TALK PAUSE WAIT DISPO ACTIVE LOGTIME FIRST LAST \n"; + print "\n$PAST_day[$h] $PAST_date[$h]\n\n"; + print "AGENT USER CALLS TALK PAUSE WAIT DISPO ACTIVE LOGTIME FIRST LAST \n"; + + $stmtA = "select count(*) as calls, full_name,vicidial_users.user,sum(talk_sec),sum(pause_sec),sum(wait_sec),sum(dispo_sec) from vicidial_users,$vicidial_agent_log where event_time <= '$PAST_date[$h] 23:59:59' and event_time >= '$PAST_date[$h] 00:00:00' and vicidial_users.user=$vicidial_agent_log.user and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 group by vicidial_users.user order by full_name limit 10000;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + + $calls = sprintf("%7s", $aryA[0]); + $name = sprintf("%-20s", $aryA[1]); while(length($name)>20) {chop($name);} + $user = sprintf("%-8s", $aryA[2]); + + ### TOTAL ACTIVE TIME + $active = ($aryA[3] + $aryA[4] + $aryA[5] + $aryA[6]); + $TIME_S = $active; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $active = sprintf("%9s", $TIME_HMS); + + ### TOTAL TALK TIME + $TIME_S = $aryA[3]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $talk = sprintf("%9s", $TIME_HMS); + + ### TOTAL PAUSE TIME + $TIME_S = $aryA[4]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $pause = sprintf("%9s", $TIME_HMS); + + ### TOTAL WAIT TIME + $TIME_S = $aryA[5]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $wait = sprintf("%9s", $TIME_HMS); + + ### TOTAL DISPO TIME + $TIME_S = $aryA[6]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $dispo = sprintf("%9s", $TIME_HMS); + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$PAST_date[$h] 23:59:59' and event_time >= '$PAST_date[$h] 00:00:00' and user='$aryA[2]' order by event_time limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $first_time = sprintf("%21s", $aryB[0]); + $first_log = $aryB[1]; + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$PAST_date[$h] 23:59:59' and event_time >= '$PAST_date[$h] 00:00:00' and user='$aryA[2]' order by event_time desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $last_time = sprintf("%21s", $aryB[0]); + $last_log = $aryB[1]; + + $TIME_S = ($last_log - $first_log); + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $login_time = sprintf("%9s", $TIME_HMS); + + + + print out "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + print "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + + + $rec_count++; + } + $sthA->finish(); + +$h++; +} + + + +close(out); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_agent_week_tally.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_week_tally.pl new file mode 100644 index 00000000..98bef4f5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_agent_week_tally.pl @@ -0,0 +1,311 @@ +#!/usr/bin/perl +# +# AST_agent_week_tally.pl version 2.0.5 +# +# This script is designed to gather stats for all agent activity over the course +# of a week and print it in an ASCI text file to be placed +# on a web server for viewing. +# +# Place in the crontab and run every Saturday night at 23:59 +# 59 23 6 * * /home/cron/AST_agent_day.pl +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 60517-1100 - First version +# 60715-2325 - changed to use /etc/astguiclient.conf for configs +# 71115-0231 - added Pipe-delimited file output +# 71205-1232 - Changed to week total version +# + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n\n"; + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n-----DEBUG MODE-----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /-t/i) + { + $T=1; $TEST=1; + print "\n-----TESTING-----\n\n"; + } + } +} +else +{ +print "no command line options set\n"; +} +### end parsing run-time options ### + + +$secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $filedate = "$year$mon$mday-$hour$min$sec"; + $ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + + if ($wday==0) {$day='Sunday ';} + if ($wday==1) {$day='Monday ';} + if ($wday==2) {$day='Tuesday ';} + if ($wday==3) {$day='Wednesday';} + if ($wday==4) {$day='Thursday ';} + if ($wday==5) {$day='Friday ';} + if ($wday==6) {$day='Saturday ';} + +$TDtarget = ($secX - 600000); # 6 days 10 hours 30 minutes in the past +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} + $begindate = "$Tyear-$Tmon-$Tmday"; + + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_agent_week_tally.pl --\n\n"; +print "This program is designed to print stats to a file for agents' activity for the previous week. \n\n"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +$outfile = "AGENT_TALLY_$shipdate$txt"; +$Doutfile = "AGENT_TALLY_PIPE_$shipdate$txt"; + +### open the X out file for writing ### +open(out, ">$PATHweb/vicidial/agent_reports/$outfile") + || die "Can't open $outfile: $!\n"; +open(Dout, ">$PATHweb/vicidial/agent_reports/$Doutfile") + || die "Can't open $Doutfile: $!\n"; + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +#$vicidial_agent_log = 'vicidial_agent_log_archive'; +$vicidial_agent_log = 'vicidial_agent_log'; + +########################################################################### +########### PAST WEEK STAT GATHERING LOOP ################################# +########################################################################### +print Dout "DATE|AGENT|USER|CALLS|TALK|PAUSE|WAIT|DISPO|ACTIVE|LOGTIME|FIRST|LAST\n"; +print out "WEEK: $begindate through $shipdate\n\n"; +print out "AGENT USER CALLS TALK PAUSE WAIT DISPO ACTIVE LOGTIME FIRST LAST \n"; +print "WEEK: $begindate through $shipdate\n\n"; +print "AGENT USER CALLS TALK PAUSE WAIT DISPO ACTIVE LOGTIME FIRST LAST \n"; + +$stmtA = "select count(*) as calls, full_name,vicidial_users.user,sum(talk_sec),sum(pause_sec),sum(wait_sec),sum(dispo_sec) from vicidial_users,$vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$begindate 00:00:00' and vicidial_users.user=$vicidial_agent_log.user and pause_sec<48800 and wait_sec<48800 and talk_sec<48800 and dispo_sec<48800 group by vicidial_users.user order by full_name limit 10000;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + + $Dcalls = $aryA[0]; + $Dname = $aryA[1]; + $Duser = $aryA[2]; + $calls = sprintf("%7s", $aryA[0]); + $name = sprintf("%-20s", $aryA[1]); while(length($name)>20) {chop($name);} + $user = sprintf("%-8s", $aryA[2]); + + ### TOTAL ACTIVE TIME + $active = ($aryA[3] + $aryA[4] + $aryA[5] + $aryA[6]); + $TIME_S = $active; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dactive = $TIME_HMS; + $active = sprintf("%9s", $TIME_HMS); + + ### TOTAL TALK TIME + $TIME_S = $aryA[3]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dtalk = $TIME_HMS; + $talk = sprintf("%9s", $TIME_HMS); + + ### TOTAL PAUSE TIME + $TIME_S = $aryA[4]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dpause = $TIME_HMS; + $pause = sprintf("%9s", $TIME_HMS); + + ### TOTAL WAIT TIME + $TIME_S = $aryA[5]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Dwait = $TIME_HMS; + $wait = sprintf("%9s", $TIME_HMS); + + ### TOTAL DISPO TIME + $TIME_S = $aryA[6]; + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $Ddispo = $TIME_HMS; + $dispo = sprintf("%9s", $TIME_HMS); + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$begindate 00:00:00' and user='$aryA[2]' order by event_time limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $Dfirst_time = $aryB[0]; + $first_time = sprintf("%21s", $aryB[0]); + $Dfirst_log = $aryB[1]; + $first_log = $aryB[1]; + + $stmtB = "select event_time,UNIX_TIMESTAMP(event_time) from $vicidial_agent_log where event_time <= '$shipdate 23:59:59' and event_time >= '$begindate 00:00:00' and user='$aryA[2]' order by event_time desc limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhB->errstr; + @aryB = $sthB->fetchrow_array; + $Dlast_time = $aryB[0]; + $last_time = sprintf("%21s", $aryB[0]); + $Dlast_log = $aryB[1]; + $last_log = $aryB[1]; + + $TIME_S = ($last_log - $first_log); + $TIME_H = int($TIME_S / 3600); + $TIME_S = ($TIME_S - ($TIME_H * 3600)); + $TIME_M = int($TIME_S / 60); + $TIME_S = ($TIME_S - ($TIME_M * 60)); + if ($TIME_S < 10) {$TIME_S = "0$TIME_S";} + if ($TIME_M < 10) {$TIME_M = "0$TIME_M";} + $TIME_HMS = "$TIME_H:$TIME_M:$TIME_S"; + $TIME_HMS = "N/A"; + $Dlogin_time = $TIME_HMS; + $login_time = sprintf("%9s", $TIME_HMS); + + + + print Dout "$shipdate|$Dname|$Duser|$Dcalls|$Dtalk|$Dpause|$Dwait|$Ddispo|$Dactive|$Dlogin_time|$Dfirst_time|$Dlast_time\n"; + print out "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + print "$name$user$calls$talk$pause$wait$dispo$active$login_time$first_time$last_time\n"; + + + $rec_count++; + } +$sthA->finish(); + + + +close(Dout); +close(out); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_cleanup_agent_log.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_cleanup_agent_log.pl new file mode 100644 index 00000000..b48c2c3d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_cleanup_agent_log.pl @@ -0,0 +1,1239 @@ +#!/usr/bin/perl +# +# AST_cleanup_agent_log.pl version 2.2.0 +# +# DESCRIPTION: +# to be run frequently to clean up the vicidial_agent_log to fix erroneous time +# calculations due to out-of-order vicidial_agent_log updates. This happens 0.5% +# of the time in our test setups, but that leads to inaccurate time logs so we +# wrote this script to fix the miscalculations +# +# This program only needs to be run by one server +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 60711-0945 - Changed to DBI by Marin Blu +# 60715-2301 - Changed to use /etc/astguiclient.conf for configs +# 81029-0124 - Added portion to clean up queue_log entries if QM enabled +# 81114-0155 - Added portion to remove queue_log COMPLETE duplicates +# 81208-0133 - Added portion to check for more missing queue_log entries +# 90330-2128 - Minor code fixes and restricted queue_log actions to VICIDIAL-defined serverid records +# 91112-1100 - Added fixing for more QM issues, added CALLOUTBOUND checking with ENTERQUEUE +# 91209-0956 - Added PAUSEREASON-LAGGED queue_log correction during live call +# 91210-0609 - Added LOGOFF queue_log correction during live call +# 91214-0933 - Added queue_position to queue_log COMPLETE... and ABANDON records +# + +# constants +$US='__'; +$MT[0]=''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [-no-time-restriction] = will clean up all logs, without flag will only do last hour\n"; + print " (without time flag will do logs from 150-10 minutes ago)\n"; + print " [-last-24hours] = will clean up logs for the last 24 hours only\n"; + print " [-more-than-24hours] = will clean up logs older than 24 hours only\n"; + print " [-skip-queue-log-inserts] = will skip only the queue_log missing record checks\n"; + print " [-only-check-agent-login-lags] = will only fix queue_log missing PAUSEREASON records\n"; + print " [-only-qm-live-call-check] = will only check the queue_log calls that report as live, in ViciDial\n"; + print " [-q] = quiet, no output\n"; + print " [-test] = test\n"; + print " [-debug] = verbose debug messages\n"; + print " [-debugX] = Extra-verbose debug messages\n\n"; + exit; + } + else + { + if ($args =~ /-q/i) + { + $Q=1; # quiet + } + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + if ($Q < 1) {print "\n----- DEBUGGING -----\n\n";} + } + if ($args =~ /--debugX/i) + { + $DBX=1; + if ($Q < 1) {print "\n----- SUPER-DUPER DEBUGGING -----\n\n";} + } + if ($args =~ /-test/i) + { + $TEST=1; + $T=1; + if ($Q < 1) {print "\n----- TEST RUN, NO UPDATES -----\n\n";} + } + if ($args =~ /-no-time-restriction/i) + { + $ALL_TIME=1; + if ($Q < 1) {print "\n----- NO TIME RESTRICTIONS -----\n\n";} + } + if ($args =~ /-only-check-agent-login-lags/i) + { + $login_lagged_check=1; + if ($Q < 1) {print "\n----- ONLY LOGIN LAGGED CHECK -----\n\n";} + } + if ($args =~ /-only-qm-live-call-check/i) + { + $qm_live_call_check=1; + if ($Q < 1) {print "\n----- QM LIVE CALL CHECK -----\n\n";} + } + if ($args =~ /-last-24hours/i) + { + $TWENTYFOUR_HOURS=1; + if ($Q < 1) {print "\n----- LAST 24 HOURS ONLY -----\n\n";} + } + if ($args =~ /-more-than-24hours/i) + { + $TWENTYFOUR_OLDER=1; + if ($Q < 1) {print "\n----- MORE THAN 24 HOURS OLD ONLY -----\n\n";} + } + if ($args =~ /-skip-queue-log-inserts/i) + { + $skip_queue_log_inserts=1; + if ($Q < 1) {print "\n----- SKIPPING QUEUE_LOG INSERTS -----\n\n";} + } + } + } +else + { + # print "no command line options set\n"; + } +### end parsing run-time options ### + +# define time restrictions for queries in script +$secX = time(); +$HDtarget = ($secX - 150); # 2.5 minutes in the past +($Hsec,$Hmin,$Hhour,$Hmday,$Hmon,$Hyear,$Hwday,$Hyday,$Hisdst) = localtime($HDtarget); +$Hyear = ($Hyear + 1900); +$Hmon++; +if ($Hmon < 10) {$Hmon = "0$Hmon";} +if ($Hmday < 10) {$Hmday = "0$Hmday";} +if ($Hhour < 10) {$Hhour = "0$Hhour";} +if ($Hmin < 10) {$Hmin = "0$Hmin";} +if ($Hsec < 10) {$Hsec = "0$Hsec";} + $HDSQLdate = "$Hyear-$Hmon-$Hmday $Hhour:$Hmin:$Hsec"; + +$FDtarget = ($secX - 600); # 10 minutes in the past +($Fsec,$Fmin,$Fhour,$Fmday,$Fmon,$Fyear,$Fwday,$Fyday,$Fisdst) = localtime($FDtarget); +$Fyear = ($Fyear + 1900); +$Fmon++; +if ($Fmon < 10) {$Fmon = "0$Fmon";} +if ($Fmday < 10) {$Fmday = "0$Fmday";} +if ($Fhour < 10) {$Fhour = "0$Fhour";} +if ($Fmin < 10) {$Fmin = "0$Fmin";} +if ($Fsec < 10) {$Fsec = "0$Fsec";} + $FDSQLdate = "$Fyear-$Fmon-$Fmday $Fhour:$Fmin:$Fsec"; + +$TDtarget = ($secX - 9000); # 150 minutes in the past +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + +$VDAD_SQL_time = "and event_time > \"$TDSQLdate\" and event_time < \"$FDSQLdate\""; +$QM_SQL_time = "and time_id > $TDtarget and time_id < $FDtarget"; +$QM_SQL_time_H = "and time_id > $TDtarget and time_id < $HDtarget"; + +if ($ALL_TIME > 0) + { + $VDAD_SQL_time = ""; + $QM_SQL_time = ""; + } +if ($TWENTYFOUR_HOURS > 0) + { + $TDtarget = ($secX - 86400); # 24 hours in the past + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + + $VDAD_SQL_time = "and event_time > \"$TDSQLdate\" and event_time < \"$FDSQLdate\""; + $QM_SQL_time = "and time_id > $TDtarget and time_id < $FDtarget"; + $QM_SQL_time_H = "and time_id > $TDtarget and time_id < $HDtarget"; + } +if ($TWENTYFOUR_OLDER > 0) + { + $TDtarget = ($secX - 86400); # 24 hours in the past + ($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); + $Tyear = ($Tyear + 1900); + $Tmon++; + if ($Tmon < 10) {$Tmon = "0$Tmon";} + if ($Tmday < 10) {$Tmday = "0$Tmday";} + if ($Thour < 10) {$Thour = "0$Thour";} + if ($Tmin < 10) {$Tmin = "0$Tmin";} + if ($Tsec < 10) {$Tsec = "0$Tsec";} + $TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; + + $VDAD_SQL_time = "and event_time < \"$TDSQLdate\""; + $QM_SQL_time = "and time_id < $TDtarget"; + $QM_SQL_time_H = "and time_id < $TDtarget"; + } + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$CLEANLOGfile) {$CLEANLOGfile = "$PATHlogs/clean.$Hyear-$Hmon-$Hmday";} + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") +or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START QUEUEMETRICS LOGGING LOOKUP ##### +$stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = $aryA[0]; + $queuemetrics_server_ip = $aryA[1]; + $queuemetrics_dbname = $aryA[2]; + $queuemetrics_login= $aryA[3]; + $queuemetrics_pass = $aryA[4]; + $queuemetrics_log_id = $aryA[5]; + $queuemetrics_eq_prepend = $aryA[6]; + } +$sthA->finish(); +##### END QUEUEMETRICS LOGGING LOOKUP ##### +########################################### + + + + +### BEGIN CHECKING ENTERQUEUE/CALLOUTBOUND ENTRIES FOR LIVE CALLS +if ($enable_queuemetrics_logging > 0) + { + if ($DB) {print " - Checking queue_log in-queue calls in ViciDial\n";} + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + ############################################################## + ##### grab all queue_log entries for ENTERQUEUE verb to validate + $stmtB = "SELECT time_id,call_id,queue,verb,serverid FROM queue_log where verb IN('ENTERQUEUE','CALLOUTBOUND') and serverid='$queuemetrics_log_id' $QM_SQL_time_H order by time_id;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $EQenter_records=$sthB->rows; + if ($DB) {print "ENTERQUEUE Records: $EQenter_records|$stmtB|\n\n";} + $h=0; + while ($EQenter_records > $h) + { + @aryB = $sthB->fetchrow_array; + $time_id[$h] = $aryB[0]; + $call_id[$h] = $aryB[1]; + $queue[$h] = $aryB[2]; + $verb[$h] = $aryB[3]; + $serverid[$h] = $aryB[4]; + $lead_id[$h] = substr($call_id[$h], 11, 9); + $lead_id[$h] = ($lead_id[$h] + 0); + $h++; + } + $sthB->finish(); + + $h=0; + while ($EQenter_records > $h) + { + $EQend_count=0; + ##### find the CONNECT/ABANDON/COMPLETEAGENT/COMPLETECALLER/CALLSTATUS/EXITWITHKEY/EXITWITHTIMEOUT count for each record + $stmtB = "SELECT count(*) FROM queue_log where verb IN('CONNECT','ABANDON','COMPLETEAGENT','COMPLETECALLER','CALLSTATUS','EXITWITHKEY','EXITWITHTIMEOUT') and call_id='$call_id[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $CQ_records=$sthB->rows; + if ($CQ_records > 0) + { + @aryB = $sthB->fetchrow_array; + $EQend_count = $aryB[0]; + } + $sthB->finish(); + + if ($EQend_count < 1) + { + if ($DB) {print "IN-QUEUE CALL: $h|$time_id[$h]|$call_id[$h]|$verb[$h]|$serverid[$h]\n";} + + $VAClive_count=0; + $VLAlive_count=0; + + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where callerid='$call_id[$h]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VAClive_count = $aryA[0]; + } + $sthA->finish(); + + $stmtA = "SELECT count(*) FROM vicidial_live_agents where callerid='$call_id[$h]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VLAlive_count = $aryA[0]; + } + $sthA->finish(); + + if ( ($VLAlive_count < 1) && ($VAClive_count < 1) ) + { + $EQdead++; + if ($DB) {print " DEAD IN-QUEUE queue_log CALL: $EQdead|$call_id[$h]|$VLAlive_count|$VAClive_count\n";} + + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + ### find original queue position of the call + $queue_position=1; + $queue_seconds=0; + $stmtA = "SELECT queue_position,queue_seconds FROM vicidial_closer_log where lead_id='$lead_id[$h]' and campaign_id='$queue[$h]' and call_date > \"$RSQLdate\" order by closecallid desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $queue_position = $aryA[0]; + $queue_seconds = int($aryA[1] + .5); + } + $sthA->finish(); + + $newtimeABANDON = ($time_id[$h] + 1); + ##### insert an ABANDON record for this call into the queue_log + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$newtimeABANDON',call_id='$call_id[$h]',queue='$queue[$h]',agent='NONE',verb='ABANDON',data1='1',data2='$queue_position',data3='$queue_seconds',serverid='$serverid[$h]';"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB); + } + if ($DB) {print " ABANDON record inserted: $Baffected_rows|$stmtB|\n";} + + $event_string = "DEAD IN-QUEUE CALL: $h|$EQdead|$time_id[$h]|$call_id[$h]|$queue[$h]|$verb[$h]|$serverid[$h]|$VLAlive_count|$VAClive_count|$Baffected_rows|$stmtB"; + &event_logger; + } + } + + $h++; + } + + @time_id=@MT; + @agent=@MT; + + ############################################################## + ##### grab all queue_log entries with a PAUSEREASON of LAGGED to validate + $stmtB = "SELECT time_id,agent FROM queue_log where verb='PAUSEREASON' and data1='LAGGED' $QM_SQL_time_H order by time_id;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $P_lagged_records=$sthB->rows; + if ($DB) {print "LAGGED Records: $P_lagged_records|$stmtB|\n\n";} + $h=0; + while ($P_lagged_records > $h) + { + @aryB = $sthB->fetchrow_array; + $time_id[$h] = $aryB[0]; + $agent[$h] = $aryB[1]; + $h++; + } + $sthB->finish(); + + $h=0; + while ($P_lagged_records > $h) + { + $NEXTtime=0; + $NEXTverb=''; + $NEXTqueue=''; + $NEXTcall_id=''; + ##### find the next queue_log record after the PAUSEREASON record + $stmtB = "SELECT time_id,verb,queue,call_id FROM queue_log where agent='$agent[$h]' and time_id > '$time_id[$h]' order by time_id limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $PL_records=$sthB->rows; + if ($PL_records > 0) + { + @aryB = $sthB->fetchrow_array; + $NEXTtime = $aryB[0]; + $NEXTverb = $aryB[1]; + $NEXTqueue = $aryB[2]; + $NEXTcall_id = $aryB[3]; + } + $sthB->finish(); + + if ( ($PL_records > 0) && ($NEXTverb =~ /CALLSTATUS|COMPLETECALLER|COMPLETEAGENT/) ) + { + $NEXTtimePAUSE = ($NEXTtime + 1); + if ($DB) {print "LAGGED PAUSE DURING CALL: $h|$time_id[$h]|$agent[$h]|$NEXTtime|$NEXTverb|$NEXTqueue|$NEXTcall_id\n";} + + ##### update the PAUSEREASON LAGGED record in the queue_log to one second after the end of the call + $stmtB = "UPDATE queue_log SET time_id='$NEXTtimePAUSE' where agent='$agent[$h]' and time_id='$time_id[$h]' and verb='PAUSEREASON' and data1='LAGGED' limit 1;"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB); + } + if ($DB) {print " PAUSEREASON record updated: $Baffected_rows|$stmtB|\n";} + + $event_string = "LAGGED DURING CALL: $h|$PL_records|$time_id[$h]|$agent[$h]|$NEXTtimePAUSE|$NEXTverb|$NEXTqueue|$NEXTcall_id|$Baffected_rows|$stmtB"; + &event_logger; + } + + $h++; + } + + + @time_id=@MT; + @agent=@MT; + + ############################################################## + ##### grab all queue_log entries with a verb of AGENTLOGOFF to validate + $stmtB = "SELECT time_id,agent FROM queue_log where verb='AGENTLOGOFF' $QM_SQL_time_H order by time_id;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $A_logoff_records=$sthB->rows; + if ($DB) {print "AGENTLOGOFF Records: $A_logoff_records|$stmtB|\n\n";} + $h=0; + while ($A_logoff_records > $h) + { + @aryB = $sthB->fetchrow_array; + $time_id[$h] = $aryB[0]; + $agent[$h] = $aryB[1]; + $h++; + } + $sthB->finish(); + + $h=0; + while ($A_logoff_records > $h) + { + $NEXTtime=0; + $NEXTverb=''; + $NEXTqueue=''; + $NEXTcall_id=''; + ##### find the next queue_log record after the PAUSEREASON record + $stmtB = "SELECT time_id,verb,queue,call_id FROM queue_log where agent='$agent[$h]' and time_id > '$time_id[$h]' order by time_id limit 1;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $AL_records=$sthB->rows; + if ($AL_records > 0) + { + @aryB = $sthB->fetchrow_array; + $NEXTtime = $aryB[0]; + $NEXTverb = $aryB[1]; + $NEXTqueue = $aryB[2]; + $NEXTcall_id = $aryB[3]; + } + $sthB->finish(); + + if ( ($AL_records > 0) && ($NEXTverb =~ /CALLSTATUS|COMPLETECALLER|COMPLETEAGENT/) ) + { + $NEXTtimeLOGOFF = ($NEXTtime + 1); + if ($DB) {print "LOGOFF DURING CALL: $h|$time_id[$h]|$agent[$h]|$NEXTtime|$NEXTverb|$NEXTqueue|$NEXTcall_id\n";} + + ##### update the AGENTLOGOFF record in the queue_log to one second after the end of the call + $stmtB = "UPDATE queue_log SET time_id='$NEXTtimeLOGOFF' where agent='$agent[$h]' and time_id='$time_id[$h]' and verb='AGENTLOGOFF' limit 1;"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB); + } + if ($DB) {print " AGENTLOGOFF record updated: $Baffected_rows|$stmtB|\n";} + + $event_string = "AGENTLOGOFF DURING CALL: $h|$AL_records|$time_id[$h]|$agent[$h]|$NEXTtimeLOGOFF|$NEXTverb|$NEXTqueue|$NEXTcall_id|$Baffected_rows|$stmtB"; + &event_logger; + } + + $h++; + } + + if ($qm_live_call_check > 0) + { + exit; + } + } +### END CHECKING ENTERQUEUE/CALLOUTBOUND ENTRIES FOR LIVE CALLS AND PAUSEREASON-LAGGED/LOGOFF ENTRIES FOR LIVE AGENTS + + + +### BEGIN FIX LOGIN/LAGGED PAUSEREASON ENTRIES (not a recurring process that needs to be run) +if ( ($enable_queuemetrics_logging > 0) && ($login_lagged_check > 0) ) + { + @time_id=@MT; + @agent=@MT; + @verb=@MT; + @serverid=@MT; + @lead_id=@MT; + + if ($DB) {print " - Checking for LOGIN and LAGGED pausereason records in queue_log\n";} + + $PAUSEREASONinsert=0; + ############################################################## + ##### grab all queue_log entries for AGENTLOGIN verb to validate + $stmtB = "SELECT time_id,agent,verb,serverid FROM queue_log where verb='AGENTLOGIN' and serverid='$queuemetrics_log_id' $QM_SQL_time order by time_id;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $EQ_records=$sthB->rows; + if ($DB) {print "AGENTLOGIN Records: $EQ_records|$stmtB|\n\n";} + $h=0; + while ($EQ_records > $h) + { + @aryB = $sthB->fetchrow_array; + $time_id[$h] = "$aryB[0]"; + $agent[$h] = "$aryB[1]"; + $verb[$h] = "$aryB[2]"; + $serverid[$h] = "$aryB[3]"; + $h++; + } + $sthB->finish(); + + $h=0; + while ($EQ_records > $h) + { + $PRtimecheck = ($time_id[$h] + 1); + $PRtimecheckCOUNT=0; + ##### find the CONNECT details for calls that were sent to agents + $stmtB = "SELECT count(*) FROM queue_log where verb='PAUSEREASON' and time_id='$PRtimecheck' and agent='$agent[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $CQ_records=$sthB->rows; + if ($CQ_records > 0) + { + @aryB = $sthB->fetchrow_array; + $PRtimecheckCOUNT = "$aryB[0]"; + } + $sthB->finish(); + + if ($PRtimecheckCOUNT < 1) + { + ##### insert a PAUSEREASON record for this call into the queue_log + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$PRtimecheck',call_id='NONE',queue='NONE',agent='$agent[$h]',verb='PAUSEREASON',data1='LOGIN',serverid='$serverid[$h]';"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB); + } + if ($DB) {print "PRI: $Baffected_rows|$stmtB|\n";} + $PAUSEREASONinsert++; + } + $h++; + } + + if ($DB) {print " - DONE Checking for LOGIN and LAGGED pausereason records in queue_log\n";} + + exit; + } +### END FIX LOGIN/LAGGED PAUSEREASON ENTRIES + + + + + +if ($DB) {print " - cleaning up pause time\n";} +### Grab any pause time record greater than 43999 +$stmtA = "SELECT agent_log_id,pause_epoch,wait_epoch from vicidial_agent_log where pause_sec>43999 $VDAD_SQL_time;"; +if ($DBX) {print "$stmtA\n";} +#$dbhA->query("$stmtA"); +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + +$i=0; +while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $DBout = ''; + $agent_log_id[$i] = "$aryA[0]"; + $pause_epoch[$i] = "$aryA[1]"; + $wait_epoch[$i] = "$aryA[2]"; + $pause_sec[$i] = int($wait_epoch[$i] - $pause_epoch[$i]); + if ( ($pause_sec[$i] < 0) || ($pause_sec[$i] > 43999) ) + { + $DBout = "Override output: $pause_sec[$i]"; + $pause_sec[$i] = 0; + } + if ($DBX) {print "$i - $agent_log_id[$i] |$wait_epoch[$i]|$pause_epoch[$i]|$pause_sec[$i]|$DBout|\n";} + $i++; + } + +$sthA->finish(); + +$h=0; +while ($h < $i) + { + $stmtA = "UPDATE vicidial_agent_log set pause_sec='$pause_sec[$h]' where agent_log_id='$agent_log_id[$h]';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + if ($TEST < 1) {$affected_rows = $dbhA->do($stmtA); } + $h++; + } +if ($DB) {print STDERR " Pause times fixed: $h\n";} + + +@agent_log_id=@MT; +@wait_epoch=@MT; + +if ($DBX) {print "\n\n";} +if ($DB) {print " - cleaning up wait time\n";} +### Grab any pause time record greater than 43999 +$stmtA = "SELECT agent_log_id,wait_epoch,talk_epoch from vicidial_agent_log where wait_sec>43999 $VDAD_SQL_time;"; + if ($DBX) {print "$stmtA\n";} + +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + +$i=0; +while ( $sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $DBout = ''; + $agent_log_id[$i] = "$aryA[0]"; + $wait_epoch[$i] = "$aryA[1]"; + $talk_epoch[$i] = "$aryA[2]"; + $wait_sec[$i] = int($talk_epoch[$i] - $wait_epoch[$i]); + if ( ($wait_sec[$i] < 0) || ($wait_sec[$i] > 43999) ) + { + $DBout = "Override output: $wait_sec[$i]"; + $wait_sec[$i] = 0; + } + if ($DBX) {print "$i - $agent_log_id[$i] |$talk_epoch[$i]|$wait_epoch[$i]|$wait_sec[$i]|$DBout|\n";} + $i++; + } +$sthA->finish(); + +$h=0; +while ($h < $i) + { + $stmtA = "UPDATE vicidial_agent_log set wait_sec='$wait_sec[$h]' where agent_log_id='$agent_log_id[$h]';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + if ($TEST < 1) {$affected_rows = $dbhA->do($stmtA); } + $h++; + } +if ($DB) {print STDERR " Wait times fixed: $h\n";} + + +@agent_log_id=@MT; +@talk_epoch=@MT; + +if ($DBX) {print "\n\n";} +if ($DB) {print " - cleaning up talk time\n";} +### Grab any pause time record greater than 43999 +$stmtA = "SELECT agent_log_id,talk_epoch,dispo_epoch from vicidial_agent_log where talk_sec>43999 $VDAD_SQL_time;"; + if ($DBX) {print "$stmtA\n";} + +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + +$i=0; +while ( $sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $DBout = ''; + $agent_log_id[$i] = "$aryA[0]"; + $talk_epoch[$i] = "$aryA[1]"; + $dispo_epoch[$i] = "$aryA[2]"; + $talk_sec[$i] = int($dispo_epoch[$i] - $talk_epoch[$i]); + if ( ($talk_sec[$i] < 0) || ($talk_sec[$i] > 43999) ) + { + $DBout = "Override output: $talk_sec[$i]"; + $talk_sec[$i] = 0; + } + if ($DBX) {print "$i - $agent_log_id[$i] |$dispo_epoch[$i]|$talk_epoch[$i]|$talk_sec[$i]|$DBout|\n";} + $i++; + } +$sthA->finish(); + +$h=0; +while ($h < $i) + { + $stmtA = "UPDATE vicidial_agent_log set talk_sec='$talk_sec[$h]' where agent_log_id='$agent_log_id[$h]';"; + if($DBX){print STDERR "|$stmtA|\n";} + if ($TEST < 1) {$affected_rows = $dbhA->do($stmtA); } + $h++; + } +if ($DB) {print STDERR " Talk times fixed: $h\n";} + + + +@agent_log_id=@MT; +@dispo_epoch=@MT; + +if ($DBX) {print "\n\n";} +if ($DB) {print " - cleaning up dispo time\n";} + $stmtA = "UPDATE vicidial_agent_log set dispo_sec='0' where dispo_sec>43999 $VDAD_SQL_time;"; + if($DBX){print STDERR "|$stmtA|\n";} +if ($TEST < 1) + { + $affected_rows = $dbhA->do($stmtA); + } +if ($DB) {print STDERR " Bad Dispo times zeroed out: $affected_rows\n";} + + + + + +if ($enable_queuemetrics_logging > 0) + { + if ($skip_queue_log_inserts < 1) + { + $COMPLETEinsert=0; + $COMPLETEupdate=0; + $COMPLETEqueue=0; + $CONNECTinsert=0; + $noCONNECT=0; + $noCALLSTATUS=0; + $noCOMPLETEinsert=0; + + ############################################################## + ##### grab all queue_log entries for ENTERQUEUE verb to validate + $stmtB = "SELECT time_id,call_id,queue,agent,verb,serverid FROM queue_log where verb IN('ENTERQUEUE','CALLOUTBOUND') and serverid='$queuemetrics_log_id' $QM_SQL_time order by time_id;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $EQ_records=$sthB->rows; + if ($DB) {print "ENTERQUEUE Records: $EQ_records|$stmtB|\n\n";} + $h=0; + while ($EQ_records > $h) + { + @aryB = $sthB->fetchrow_array; + $time_id[$h] = "$aryB[0]"; + $call_id[$h] = "$aryB[1]"; + $queue[$h] = "$aryB[2]"; + $agent[$h] = "$aryB[3]"; + $verb[$h] = "$aryB[4]"; + $serverid[$h] = "$aryB[5]"; + $h++; + } + $sthB->finish(); + + $h=0; + while ($EQ_records > $h) + { + ##### find the CONNECT details for calls that were sent to agents + $stmtB = "SELECT time_id,call_id,queue,agent,verb,serverid,data1 FROM queue_log where verb='CONNECT' and call_id='$call_id[$h]' $QM_SQL_time;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $CQ_records=$sthB->rows; + if ($CQ_records > 0) + { + @aryB = $sthB->fetchrow_array; + $Ctime_id[$h] = "$aryB[0]"; + $Ccall_id[$h] = "$aryB[1]"; + $Cqueue[$h] = "$aryB[2]"; + $Cagent[$h] = "$aryB[3]"; + $Cverb[$h] = "$aryB[4]"; + $Cserverid[$h] = "$aryB[5]"; + $Cdata1[$h] = "$aryB[6]"; + } + $sthB->finish(); + + if ( ($CQ_records > 0) && ($Ctime_id[$h] > 1000) ) + { + ##### find the CALLSTATUS details for calls that were dispositioned by an agent + $stmtB = "SELECT time_id,call_id,queue,agent,verb,serverid FROM queue_log where verb='CALLSTATUS' and call_id='$call_id[$h]' and agent='$Cagent[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $SQ_records=$sthB->rows; + if ($SQ_records > 0) + { + @aryB = $sthB->fetchrow_array; + $Stime_id[$h] = "$aryB[0]"; + $Scall_id[$h] = "$aryB[1]"; + $Squeue[$h] = "$aryB[2]"; + $Sagent[$h] = "$aryB[3]"; + $Sverb[$h] = "$aryB[4]"; + $Sserverid[$h] = "$aryB[5]"; + $Slead_id[$h] = substr($Scall_id[$h], 11, 9); + $Slead_id[$h] = ($Slead_id[$h] + 0); + } + $sthB->finish(); + + if ( ($SQ_records > 0) && ($Stime_id[$h] > 1000) ) + { + ##### check if there is a COMPLETEAGENT or COMPLETECALLER record for this call_id + $stmtB = "SELECT count(*) FROM queue_log where verb IN('COMPLETEAGENT','COMPLETECALLER') and call_id='$call_id[$h]' and agent='$Cagent[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $MQ_records=$sthB->rows; + if ($MQ_records > 0) + { + @aryB = $sthB->fetchrow_array; + $COMPLETEcount[$h] = "$aryB[0]"; + } + $sthB->finish(); + if ($COMPLETEcount[$h] > 0) + { + ##### check that the queue is set properly + $stmtB = "SELECT count(*) FROM queue_log where verb IN('COMPLETEAGENT','COMPLETECALLER') and call_id='$call_id[$h]' and agent='$Cagent[$h]' and queue='$queue[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $QQ_records=$sthB->rows; + if ($QQ_records > 0) + { + @aryB = $sthB->fetchrow_array; + $COMPLETEqueue[$h] = "$aryB[0]"; + } + $sthB->finish(); + if ($COMPLETEqueue[$h] < 1) + { + $stmtB = "UPDATE queue_log SET queue='$queue[$h]' where verb IN('COMPLETEAGENT','COMPLETECALLER') and call_id='$call_id[$h]' and agent='$Cagent[$h]';"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB); + } + if ($DB) {print "MCRI: $Baffected_rows|$stmtB|\n";} + $COMPLETEupdate++; + } + } + else + { + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + ### find original queue position of the call + $queue_position=1; + $queue_seconds=0; + $stmtA = "SELECT queue_position,queue_seconds FROM vicidial_closer_log where lead_id='$Slead_id[$h]' and campaign_id='$Squeue[$h]' and call_date > \"$RSQLdate\" order by closecallid desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $queue_position = $aryA[0]; + $queue_seconds = int($aryA[1] + .5); + } + $sthA->finish(); + + ##### insert a COMPLETEAGENT record for this call into the queue_log + $CALLtime[$h] = ($Stime_id[$h] - $time_id[$h]); + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$Stime_id[$h]',call_id='$Scall_id[$h]',queue='$Squeue[$h]',agent='$Sagent[$h]',verb='COMPLETEAGENT',data1='$Cdata1[$h]',data2='$CALLtime[$h]',data3='$queue_position',serverid='$Sserverid[$h]';"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB); + } + if ($DB) {print "MCRI: $Baffected_rows|$stmtB|\n";} + $COMPLETEinsert++; + } + } + else + { + if ($DB) {print "NO CALLSTATUS: $Ctime_id[$h]|$Ccall_id[$h]|$Cagent[$h] \n";} + $noCALLSTATUS++; + ##### find the COMPLETE details for calls that were connected to an agent + $stmtB = "SELECT time_id,call_id,queue,agent,verb,serverid FROM queue_log where verb IN('COMPLETEAGENT','COMPLETECALLER') and call_id='$call_id[$h]' and agent='$Cagent[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $SQ_records=$sthB->rows; + if ($SQ_records > 0) + { + @aryB = $sthB->fetchrow_array; + $Stime_id[$h] = "$aryB[0]"; + $Scall_id[$h] = "$aryB[1]"; + $Squeue[$h] = "$aryB[2]"; + $Sagent[$h] = "$aryB[3]"; + $Sverb[$h] = "$aryB[4]"; + $Sserverid[$h] = "$aryB[5]"; + } + $sthB->finish(); + + if ( ($SQ_records > 0) && ($Stime_id[$h] > 1000) ) + { + ##### insert a CALLSTATUS record for this call into the queue_log + $CALLtime[$h] = ($Stime_id[$h] - $time_id[$h]); + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$Stime_id[$h]',call_id='$Scall_id[$h]',queue='$Cqueue[$h]',agent='$Sagent[$h]',verb='CALLSTATUS',data1='PU',serverid='$Sserverid[$h]';"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB); + } + if ($DB) {print "MCSI: $Baffected_rows|$stmtB|\n";} + $CONNECTinsert++; + } + else + { + $old_call_sec = ($secX - 10800); + if ($Ctime_id[$h] < $old_call_sec) + { + $search_sec_BEGIN = ($Ctime_id[$h] - 3600); + $search_sec_END = ($Ctime_id[$h] + 3600); + $search_lead_id = substr($call_id[$h], 11, 9); + $search_lead_id = ($search_lead_id + 0); + $VALuser = $Cagent[$h]; + $VALuser =~ s/Agent\///gi; + + ##### insert a COMPLETEAGENT record for this call into the queue_log + $stmtA = "SELECT pause_epoch,wait_epoch,talk_epoch,dispo_epoch,status FROM vicidial_agent_log where lead_id='$search_lead_id' and user='$VALuser' and pause_epoch > \"$search_sec_BEGIN\" and pause_epoch < \"$search_sec_END\" order by pause_epoch desc;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VALpause = "$aryA[0]"; + $VALwait = "$aryA[1]"; + $VALtalk = "$aryA[2]"; + $VALdispo = "$aryA[3]"; + $VALstatus ="$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + if ($rec_count > 0) + { + $Stime_id[$h]=0; + if ($VALwait >= $Ctime_id[$h]) {$Stime_id[$h] = $VALwait;} + if ($VALtalk >= $Ctime_id[$h]) {$Stime_id[$h] = $VALtalk;} + if ($VALdispo >= $Ctime_id[$h]) {$Stime_id[$h] = $VALdispo;} + if ($Stime_id[$h] < 1) {$Stime_id[$h] = ($time_id[$h] + 1);} + $VALstatus =~ s/ //gi; + if ( ($VALstatus =~ /NULL/i) || (length($VALstatus<1)) ) {$VALstatus='ERI';} + + $Clead_id[$h] = substr($Ccall_id[$h], 11, 9); + $Clead_id[$h] = ($Clead_id[$h] + 0); + + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + ### find original queue position of the call + $queue_position=1; + $queue_seconds=0; + $stmtA = "SELECT queue_position,queue_seconds FROM vicidial_closer_log where lead_id='$Clead_id[$h]' and campaign_id='$Cqueue[$h]' and call_date > \"$RSQLdate\" order by closecallid desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $queue_position = $aryA[0]; + $queue_seconds = int($aryA[1] + .5); + } + $sthA->finish(); + + ##### insert a COMPLETEAGENT record for this call into the queue_log + $CALLtime[$h] = ($Stime_id[$h] - $time_id[$h]); + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$Stime_id[$h]',call_id='$Ccall_id[$h]',queue='$Cqueue[$h]',agent='$Cagent[$h]',verb='COMPLETEAGENT',data1='$Cdata1[$h]',data2='$CALLtime[$h]',data3='$queue_position',serverid='$Cserverid[$h]';"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB) or die "ERROR: $stmtB" . DBI->errstr; + } + if ($DB) {print "MNCI: $Baffected_rows|$stmtB|$TEST\n";} + + ##### insert a CALLSTATUS record for this call into the queue_log + $CALLtime[$h] = ($Stime_id[$h] - $time_id[$h]); + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$Stime_id[$h]',call_id='$Ccall_id[$h]',queue='$Cqueue[$h]',agent='$Cagent[$h]',verb='CALLSTATUS',data1='$VALstatus',serverid='$Cserverid[$h]';"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB) or die "ERROR: $stmtB" . DBI->errstr; + } + if ($DB) {print "MNCI: $Baffected_rows|$stmtB|$TEST\n";} + $noCOMPLETEinsert++; + + } + } + } + } + } + else + { + if ($DBX) {print "NO CONNECT: $time_id[$h]|$call_id[$h]|$queue[$h] \n";} + $noCONNECT++; + } + if ($DB) + { + ($Dsec,$Dmin,$Dhour,$Dmday,$Dmon,$Dyear,$Dwday,$Dyday,$Disdst) = localtime($time_id[$h]); + $Dyear = ($Dyear + 1900); + $Dmon++; + if ($Dmon < 10) {$Dmon = "0$Dmon";} + if ($Dmday < 10) {$Dmday = "0$Dmday";} + if ($Dhour < 10) {$Dhour = "0$Dhour";} + if ($Dmin < 10) {$Dmin = "0$Dmin";} + if ($Dsec < 10) {$Dsec = "0$Dsec";} + $DBSQLdate = "$Dyear-$Dmon-$Dmday $Dhour:$Dmin:$Dsec"; + + if ($h =~ /0$/) {$k='+';} + if ($h =~ /1$/) {$k='|';} + if ($h =~ /2$/) {$k='/';} + if ($h =~ /3$/) {$k='-';} + if ($h =~ /4$/) {$k="\\";} + if ($h =~ /5$/) {$k='|';} + if ($h =~ /6$/) {$k='/';} + if ($h =~ /7$/) {$k='-';} + if ($h =~ /8$/) {$k="\\";} + if ($h =~ /9$/) {$k='0';} + print STDERR "$k $noCONNECT $noCALLSTATUS $COMPLETEinsert|$COMPLETEupdate $CONNECTinsert $noCOMPLETEinsert $h/$EQ_records $DBSQLdate|$time_id[$h] $Ctime_id[$h]|$CQ_records $Stime_id[$h]|$SQ_records $call_id[$h]|$COMPLETEcount[$h]\r"; + } + $h++; + } + } + + + + ############################################################## + ##### grab all queue_log entries for COMPLETEAGENT verb to validate queue + $stmtB = "SELECT time_id,call_id,queue,agent,serverid FROM queue_log where verb='COMPLETEAGENT' and serverid='$queuemetrics_log_id' $QM_SQL_time order by time_id;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $EQ_records=$sthB->rows; + if ($DB) {print "COMPLETEAGENT Records: $EQ_records|$stmtB|\n\n";} + $h=0; + while ($EQ_records > $h) + { + @aryB = $sthB->fetchrow_array; + $time_id[$h] = "$aryB[0]"; + $call_id[$h] = "$aryB[1]"; + $queue[$h] = "$aryB[2]"; + $agent[$h] = "$aryB[3]"; + $serverid[$h] = "$aryB[4]"; + $h++; + } + $sthB->finish(); + + $h=0; + while ($EQ_records > $h) + { + if (length($queue[$h])<1) + { + $CAQqueue[$h]=''; + ##### find queue ID for this call + $stmtB = "SELECT queue FROM queue_log WHERE verb='CONNECT' and serverid='$queuemetrics_log_id' and call_id='$call_id[$h]' and agent='$agent[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $MXC_records=$sthB->rows; + if ($MXC_records > 0) + { + @aryB = $sthB->fetchrow_array; + $CAQqueue[$h] = $aryB[0]; + } + $sthB->finish(); + + ##### update queue ID in this COMPLETEAGENT record + $stmtB = "UPDATE queue_log SET queue='$CAQqueue[$h]' WHERE verb='COMPLETEAGENT' and serverid='$queuemetrics_log_id' and time_id='$time_id[$h]' and call_id='$call_id[$h]';"; + if ($TEST < 1) + { + $Baffected_rows = $dbhB->do($stmtB); + $COMPLETEqueue = ($COMPLETEqueue + $Baffected_rows); + } + if ($DB) {print "COMPLETEAGENT Record Updated: $Baffected_rows|$stmtB|\n\n";} + } + $h++; + } + + + + ####################################################################### + ##### grab all queue_log entries with more than one COMPLETE verb to clean up + $stmtB = "SELECT call_id, count(*) FROM queue_log WHERE verb IN('COMPLETEAGENT','COMPLETECALLER','TRANSFER') and serverid='$queuemetrics_log_id' GROUP BY call_id HAVING count(*)>1 ORDER BY count(*) DESC;"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $XC_records=$sthB->rows; + if ($DB) {print "Extra COMPLETE Records: $XC_records|$stmtB|\n\n";} + $h=0; + while ($XC_records > $h) + { + @aryB = $sthB->fetchrow_array; + $CDcall_id[$h] = "$aryB[0]"; + $h++; + } + $sthB->finish(); + + $h=0; + while ($XC_records > $h) + { + ##### grab oldest COMPLETE record to delete + $stmtB = "DELETE FROM queue_log WHERE call_id='$CDcall_id[$h]' and verb IN('COMPLETEAGENT','COMPLETECALLER','TRANSFER') ORDER BY unique_row_count DESC LIMIT 1;"; + if ($TEST < 1) {$Baffected_rows = $dbhB->do($stmtB); } + if ($DB) {print "Extra COMPLETE Record Deleted: $Baffected_rows|$stmtB|\n\n";} + + $h++; + } + + + ########################################################################## + ##### grab all queue_log COMPLETEAGENT entries with negative call time to clean up + $stmtB = "SELECT call_id, time_id FROM queue_log WHERE verb IN('COMPLETEAGENT') and data2 < '0' and serverid='$queuemetrics_log_id';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $XN_records=$sthB->rows; + if ($DB) {print "Negative COMPLETEAGENT Records: $XN_records|$stmtB|\n\n";} + $h=0; + while ($XN_records > $h) + { + @aryB = $sthB->fetchrow_array; + $CNcall_id[$h] = "$aryB[0]"; + $CNtime_id[$h] = "$aryB[1]"; + $h++; + } + $sthB->finish(); + + $h=0; + while ($XN_records > $h) + { + ### Get time of CONNECT + $stmtB = "SELECT time_id FROM queue_log WHERE verb IN('CONNECT') and call_id='$CNcall_id[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $XNC_records=$sthB->rows; + if ($XNC_records < 1) + {print "ERROR! No CONNECT record for $CNcall_id[$h] $CNtime_id[$h]";} + else + { + @aryB = $sthB->fetchrow_array; + $CCNtime_id[$h] = "$aryB[0]"; + $sthB->finish(); + + ### Get time of CALLSTATUS + $stmtB = "SELECT time_id FROM queue_log WHERE verb IN('CALLSTATUS') and call_id='$CNcall_id[$h]';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $XNS_records=$sthB->rows; + if ($XNS_records < 1) + {print "ERROR! No CALLSTATUS record for $CNcall_id[$h] $CNtime_id[$h]";} + else + { + @aryB = $sthB->fetchrow_array; + $CSNtime_id[$h] = "$aryB[0]"; + $sthB->finish(); + + if ($CSNtime_id[$h] < $CCNtime_id[$h]) + { + ##### update CALLSTATUS record to CONNECT time_id + $stmtB = "UPDATE queue_log SET time_id='$CCNtime_id[$h]' WHERE call_id='$CNcall_id[$h]' and verb IN('CALLSTAUTS') LIMIT 1;"; + if ($TEST < 1) {$Baffected_rows = $dbhB->do($stmtB); } + if ($DB) {print "CALLSTATUS time_id Record Updated: $Baffected_rows|$stmtB|\n\n";} + } + } + if ($CNtime_id[$h] < $CCNtime_id[$h]) + { + ##### update COMPLETEAGENT record to CONNECT time_id and 0 data2 + $stmtB = "UPDATE queue_log SET time_id='$CCNtime_id[$h]',data2='0' WHERE call_id='$CNcall_id[$h]' and verb IN('COMPLETEAGENT') LIMIT 1;"; + if ($TEST < 1) {$Baffected_rows = $dbhB->do($stmtB); } + if ($DB) {print "COMPLETEAGENT time_id Record Updated: $Baffected_rows|$stmtB|\n";} + if ($DB) {print "Debug: $CCNtime_id[$h]|$CSNtime_id[$h]|$CNtime_id[$h]|$CNcall_id[$h]|\n\n";} + } + } + $h++; + } + + + $dbhB->disconnect(); + } + + + + + + + + if ($DB) {print STDERR "\nDONE\n";} + + + +# $dbhA->close; + + +exit; + + + + + + +sub event_logger + { + ### open the log file for writing ### + open(Lout, ">>$CLEANLOGfile") + || die "Can't open $CLEANLOGfile: $!\n"; + print Lout "$HDSQLdate|$event_string|\n"; + close(Lout); + $event_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_conf_update.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_conf_update.pl new file mode 100644 index 00000000..6087ba30 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_conf_update.pl @@ -0,0 +1,431 @@ +#!/usr/bin/perl +# +# AST_conf_update.pl version 2.0.5 *DBI-version* +# +# This script checks if there are channels in reserved conferences +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# 50810-1532 - Added database server variable definitions lookup +# 50823-1456 - Added commandline arguments for debug at runtime +# 60717-1135 - changed to DBI by Marin Blu +# 60717-1536 - changed to use /etc/astguiclient.conf for configs +# 80506-1055 - Added check for vicidial_conferences in 3WAY +# 80914-1533 - Added kickall for leave-3way calls after one hour +# 81008-0937 - Added kickall from vicidial_conferences if only one participant +# + +# constants +$DB=0; # Debug flag, set to 0 for no debug messages per minute +$US='__'; +$MT[0]=''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + print "-- DEBUGGING ENABLED --\n\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + # print "no command line options set\n"; + } +### end parsing run-time options ### + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; +use Net::Telnet (); + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context FROM servers where server_ip = '$server_ip';"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBtelnet_host = "$aryA[0]"; + $DBtelnet_port = "$aryA[1]"; + $DBASTmgrUSERNAME = "$aryA[2]"; + $DBASTmgrSECRET = "$aryA[3]"; + $DBASTmgrUSERNAMEupdate = "$aryA[4]"; + $DBASTmgrUSERNAMElisten = "$aryA[5]"; + $DBASTmgrUSERNAMEsend = "$aryA[6]"; + $DBmax_vicidial_trunks = "$aryA[7]"; + $DBanswer_transfer_agent= "$aryA[8]"; + $DBSERVER_GMT = "$aryA[9]"; + $DBext_context = "$aryA[10]"; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + } + $sthA->finish(); + + +($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) {$hour = "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"; + +##### Find date-time one hour in the past +$secX = time(); +$TDtarget = ($secX - 3600); +($Tsec,$Tmin,$Thour,$Tmday,$Tmon,$Tyear,$Twday,$Tyday,$Tisdst) = localtime($TDtarget); +$Tyear = ($Tyear + 1900); +$Tmon++; +if ($Tmon < 10) {$Tmon = "0$Tmon";} +if ($Tmday < 10) {$Tmday = "0$Tmday";} +if ($Thour < 10) {$Thour = "0$Thour";} +if ($Tmin < 10) {$Tmin = "0$Tmin";} +if ($Tsec < 10) {$Tsec = "0$Tsec";} +$TDSQLdate = "$Tyear-$Tmon-$Tmday $Thour:$Tmin:$Tsec"; +$TDnum = "$Tyear$Tmon$Tmday$Thour$Tmin$Tsec"; + +###################################################################### +##### CLEAR vicidial_conferences ENTRIES IN LEAVE-3WAY FOR MORE THAN ONE HOUR +###################################################################### +@PTextensions=@MT; @PT_conf_extens=@MT; @PTmessages=@MT; @PTold_messages=@MT; @NEW_messages=@MT; @OLD_messages=@MT; +$stmtA = "SELECT conf_exten,extension from vicidial_conferences where server_ip='$server_ip' and leave_3way='1' and leave_3way_datetime < \"$TDSQLdate\";"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PT_conf_extens[$rec_count] = "$aryA[0]"; + $PT_extensions[$rec_count] = "$aryA[0]"; + if ($DB) {print "|$PT_conf_extens[$rec_count]|$PT_extensions[$rec_count]|\n";} + $rec_count++; + } +$sthA->finish(); +$k=0; +while ($k < $rec_count) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$PT_conf_extens[$k]$local_AMP$ext_context"; + $queryCID = "ULGC35$TDnum"; + + $stmtA="INSERT INTO vicidial_manager values('','','$now_date','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','','');"; + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + + $stmtA = "UPDATE vicidial_conferences set extension='',leave_3way='0' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$k]';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + + $k++; + } + + + + +###################################################################### +##### CHECK vicidial_conferences TABLE ##### +###################################################################### +@PTextensions=@MT; @PT_conf_extens=@MT; @PTmessages=@MT; @PTold_messages=@MT; @NEW_messages=@MT; @OLD_messages=@MT; +$stmtA = "SELECT extension,conf_exten from vicidial_conferences where server_ip='$server_ip' and leave_3way='1';"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PTextensions[$rec_count] = "$aryA[0]"; + $PT_conf_extens[$rec_count] = "$aryA[1]"; + if ($DB) {print "|$PT_conf_extens[$rec_count]|$PTextensions[$rec_count]|\n";} + $rec_count++; + } +$sthA->finish(); + +if (!$telnet_port) {$telnet_port = '5038';} + +### connect to asterisk manager through telnet +$t = new Net::Telnet (Port => $telnet_port, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '',); +#$fh = $t->dump_log("$telnetlog"); # uncomment for telnet log + if (length($ASTmgrUSERNAMEsend) > 3) {$telnet_login = $ASTmgrUSERNAMEsend;} + else {$telnet_login = $ASTmgrUSERNAME;} + +$t->open("$telnet_host"); +$t->waitfor('/[01]\n$/'); # print login +$t->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); +$t->waitfor('/Authentication accepted/'); # waitfor auth accepted + + +$i=0; +foreach(@PTextensions) + { + @list_channels=@MT; + $t->buffer_empty; + $COMMAND = "Action: Command\nCommand: Meetme list $PT_conf_extens[$i]\n\nAction: Ping\n\n"; + if ($DB) {print "|$PT_conf_extens[$i]|$COMMAND|\n";} + @list_channels = $t->cmd(String => "$COMMAND", Prompt => '/Response: Pong.*/'); + + + $j=0; + $conf_empty[$i]=0; + $conf_users[$i]=''; + foreach(@list_channels) + { + if($DB){print "|$list_channels[$j]|\n";} + ### mark all empty conferences and conferences with only one channel as empty + if ($list_channels[$j] =~ /No active conferences|No such conference/i) + {$conf_empty[$i]++;} + if ($list_channels[$j] =~ /1 users in that conference/i) + {$conf_empty[$i]++;} + $j++; + } + + if($DB){print "Meetme list $PT_conf_extens[$i]- Exten:|$PTextensions[$i]| Empty:|$conf_empty[$i]| ";} + if (!$conf_empty[$i]) + { + if($DB){print "CONFERENCE STILL HAS PARTICIPANTS, DOING NOTHING FOR THIS CONFERENCE\n";} + if ($PTextensions[$i] =~ /Xtimeout\d$/i) + { + $PTextensions[$i] =~ s/Xtimeout\d$//gi; + $stmtA = "UPDATE vicidial_conferences set extension='$PTextensions[$i]' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$i]';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + } + else + { + $NEWexten[$i] = $PTextensions[$i]; + $leave_3waySQL='1'; + if ($PTextensions[$i] =~ /Xtimeout3$/i) {$NEWexten[$i] =~ s/Xtimeout3$/Xtimeout2/gi;} + if ($PTextensions[$i] =~ /Xtimeout2$/i) {$NEWexten[$i] =~ s/Xtimeout2$/Xtimeout1/gi;} + if ($PTextensions[$i] =~ /Xtimeout1$/i) {$NEWexten[$i] = ''; $leave_3waySQL='0';} + if ( ($PTextensions[$i] !~ /Xtimeout\d$/i) and (length($PTextensions[$i])> 0) ) {$NEWexten[$i] .= 'Xtimeout3';} + + if ($NEWexten[$i] =~ /Xtimeout1$/i) + { + ### Kick all participants if there are any left in the conference so it can be reused + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$PT_conf_extens[$i]$local_AMP$ext_context"; + $queryCID = "ULGC36$TDnum"; + + $stmtA="INSERT INTO vicidial_manager values('','','$now_date','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','','');"; + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtA|\n";} + } + + $stmtA = "UPDATE vicidial_conferences set extension='$NEWexten[$i]',leave_3way='$leave_3waySQL' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$i]';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + + $i++; + ### sleep for 10 hundredths of a second + usleep(1*100*1000); + } + +$t->buffer_empty; +@hangup = $t->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); +$t->buffer_empty; +$ok = $t->close; + + +sleep(5); + + + + + +###################################################################### +##### CHECK conferences TABLE ##### +###################################################################### +@PTextensions=@MT; @PT_conf_extens=@MT; @PTmessages=@MT; @PTold_messages=@MT; @NEW_messages=@MT; @OLD_messages=@MT; +$stmtA = "SELECT extension,conf_exten from conferences where server_ip='$server_ip' and extension is NOT NULL and extension != '';"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PTextensions[$rec_count] = "$aryA[0]"; + $PT_conf_extens[$rec_count] = "$aryA[1]"; + if ($DB) {print "|$PT_conf_extens[$rec_count]|$PTextensions[$rec_count]|\n";} + $rec_count++; + } +$sthA->finish(); + +if (!$telnet_port) {$telnet_port = '5038';} + +### connect to asterisk manager through telnet +$t = new Net::Telnet (Port => $telnet_port, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '',); +#$fh = $t->dump_log("$telnetlog"); # uncomment for telnet log +if (length($ASTmgrUSERNAMEsend) > 3) {$telnet_login = $ASTmgrUSERNAMEsend;} +else {$telnet_login = $ASTmgrUSERNAME;} + +$t->open("$telnet_host"); +$t->waitfor('/[01]\n$/'); # print login +$t->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); +$t->waitfor('/Authentication accepted/'); # waitfor auth accepted + + +$i=0; +foreach(@PTextensions) + { + @list_channels=@MT; + $t->buffer_empty; + $COMMAND = "Action: Command\nCommand: Meetme list $PT_conf_extens[$i]\n\nAction: Ping\n\n"; + if ($DB) {print "|$PT_conf_extens[$i]|$COMMAND|\n";} + @list_channels = $t->cmd(String => "$COMMAND", Prompt => '/Response: Pong.*/'); + + + $j=0; + $conf_empty[$i]=0; + $conf_users[$i]=''; + foreach(@list_channels) + { + if($DB){print "|$list_channels[$j]|\n";} + if ($list_channels[$j] =~ /No active conferences|No such conference/i) + {$conf_empty[$i]++;} +# if ($list_channels[$j] =~ /^User /i) +# { +# $userx = ''; +# $userx = $list_channels[$j]; +# $userx =~ s/User \#: //gi; +# $conf_users[$i] .= "$userx|"; +# } + $j++; + } + + if($DB){print "Meetme list $PT_conf_extens[$i]- Exten:|$PTextensions[$i]| Empty:|$conf_empty[$i]| ";} + if (!$conf_empty[$i]) + { + if($DB){print "CONFERENCE STILL HAS PARTICIPANTS, DOING NOTHING FOR THIS CONFERENCE\n";} + if ($PTextensions[$i] =~ /Xtimeout\d$/i) + { + $PTextensions[$i] =~ s/Xtimeout\d$//gi; + $stmtA = "UPDATE conferences set extension='$PTextensions[$i]' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$i]';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + } + else + { + $NEWexten[$i] = $PTextensions[$i]; + if ($PTextensions[$i] =~ /Xtimeout3$/i) {$NEWexten[$i] =~ s/Xtimeout3$/Xtimeout2/gi;} + if ($PTextensions[$i] =~ /Xtimeout2$/i) {$NEWexten[$i] =~ s/Xtimeout2$/Xtimeout1/gi;} + if ($PTextensions[$i] =~ /Xtimeout1$/i) {$NEWexten[$i] = '';} + if ( ($PTextensions[$i] !~ /Xtimeout\d$/i) and (length($PTextensions[$i])> 0) ) {$NEWexten[$i] .= 'Xtimeout3';} + + + $stmtA = "UPDATE conferences set extension='$NEWexten[$i]' where server_ip='$server_ip' and conf_exten='$PT_conf_extens[$i]';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + + $i++; + ### sleep for 10 hundredths of a second + usleep(1*100*1000); + } + + +$t->buffer_empty; +@hangup = $t->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); +$t->buffer_empty; +$ok = $t->close; + +$dbhA->disconnect(); + +if($DB){print "DONE... Exiting... Goodbye... See you later... \n";} + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_email_web_report.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_email_web_report.pl new file mode 100644 index 00000000..483bef2d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_email_web_report.pl @@ -0,0 +1,248 @@ +#!/usr/bin/perl +# +# AST_email_web_report.pl version: 2.0.5 +# +# This script is designed to wget a web report and then email it as an attachment +# this script should be run from the web server +# +# /usr/share/astguiclient/AST_VDlist_summary_export.pl --email-list=test@gmail.com --email-sender=test@test.com +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 90225-1247 - First version +# + +$txt = '.txt'; +$html = '.html'; +$US = '_'; +$MT[0] = ''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debugging messages\n"; + print " [--debugX] = Super debugging messages\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG MODE -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG MODE -----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /--test/i) + { + $T=1; $TEST=1; + print "\n----- TESTING -----\n\n"; + } + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n"; + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n"; + } + else + {$email_sender = 'vicidial@localhost';} + } + } +else + { + print "no command line options set, using defaults.\n"; + } +### end parsing run-time options ### + + +$secX = time(); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); + $year = ($year + 1900); + $mon++; + +# # rerun override - Use this to override the day manually +# $year='2007'; +# $mon='5'; +# $mday='18'; + + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $timestamp = "$year-$mon-$mday $hour:$min:$sec"; + $filedate = "$year$mon$mday"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_dir/) && ($CLIREPORT_dir < 1) ) + {$VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if ($output_format =~ /^pipe-standard$/) + {$DLT = '|'; $txt='.txt'; print "---- pipe-standard ----\n";} +if ($output_format =~ /^csv-standard$/) + {$DLT = "','"; $txt='.csv'; print "---- csv-standard ----\n";} +if ($output_format =~ /^tab-standard$/) + {$DLT = "\t"; $txt='.txt'; print "---- tab-standard ----\n";} +if ($output_format =~ /^pipe-triplep$/) + {$DLT = ''; $txt='.txt'; print "---- pipe-triplep ----\n";} +if ($output_format =~ /^pipe-vici$/) + {$DLT = '|'; $txt='.txt'; print "---- pipe-vici ----\n";} +if ($output_format =~ /^html-rec$/) + {$DLT = ' '; $txt='.html'; print "---- html-rec ----\n";} + +if (!$Q) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_email_web_report.pl --\n\n"; + print "This program is designed to wget a web report and email it. \n"; + print "\n"; + } + + +$HTMLfile = "Outbound_Report_ALL_$shipdate$html"; + +#$location = "http://6666:1234\@127.0.0.1/vicidial/fcstats.php?db_log=1\\&query_date=$shipdate\\&group=$group\\&shift=$shift\\&archive=1"; +#$location = "http://6666:1234\@192.168.1.101/vicidial/AST_VDADstats.php?query_date=$shipdate\\&end_date=$shipdate\\&group[]=--ALL--\\&shift=ALL"; +$location = "http://8888:8888\@127.0.0.1/vicidial/AST_VDADstats.php?query_date=$shipdate\\&end_date=$shipdate\\&group[]=--ALL--\\&shift=ALL"; + +print "Running Report $ship_date\n$location\n"; +`/usr/bin/wget --output-document=/tmp/$HTMLfile $location `; + + + + + + +###### EMAIL SECTION + +if (length($email_list) > 3) + { + print "Sending email: $email_list\n"; + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VICIDIAL Outbound Report $shipdate"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + ); + $boundary = "====" . time() . "===="; + $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; + + $message = encode_qp( "VICIDIAL Outbound Report for $shipdate:\n\n Attachment: $HTMLfile" ); + + $Zfile = "/tmp/$HTMLfile"; + + open (F, $Zfile) or die "Cannot read $Zfile: $!"; + binmode F; undef $/; + $attachment = encode_base64(); + close F; + + $boundary = '--'.$boundary; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; + $mail{body} .= "Content-Transfer-Encoding: quoted-printable\n\n"; + $mail{body} .= "$message\n"; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: application/octet-stream; name=\"$HTMLfile\"\n"; + $mail{body} .= "Content-Transfer-Encoding: base64\n"; + $mail{body} .= "Content-Disposition: attachment; filename=\"$HTMLfile\"\n\n"; + $mail{body} .= "$attachment\n"; + $mail{body} .= "$boundary"; + $mail{body} .= "--\n"; + + sendmail(%mail) or die $mail::Sendmail::error; + print "ok. log says:\n", $mail::sendmail::log; ### print mail log for status + + } + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_flush_DBqueue.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_flush_DBqueue.pl new file mode 100644 index 00000000..61510b53 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_flush_DBqueue.pl @@ -0,0 +1,277 @@ +#!/usr/bin/perl +# +# AST_flush_DBqueue.pl version 2.2.0 +# +# DESCRIPTION: +# - clears out mysql records for this server for the ACQS vicidial_manager table +# - optimizes tables used frequently by VICIDIAL +# +# It is recommended that you run this program on the local Asterisk machine +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 60717-1214 - changed to DBI by Marin Blu +# 60717-1536 - changed to use /etc/astguiclient.conf for configs +# 60910-0238 - removed park_log query +# 90628-2358 - Added vicidial_drop_rate_groups optimization +# 91206-2149 - Added vicidial_campaigns and vicidial_lists optimization +# + +$secX = time(); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); + $year = ($year + 1900); + $yy = $year; $yy =~ s/^..//gi; + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} +$SQLdate_NOW="$year-$mon-$mday $hour:$min:$sec"; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time()-3600); + $year = ($year + 1900); + $yy = $year; $yy =~ s/^..//gi; + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} +$SQLdate_NEG_1hour="$year-$mon-$mday $hour:$min:$sec"; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time()-1800); + $year = ($year + 1900); + $yy = $year; $yy =~ s/^..//gi; + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} +$SQLdate_NEG_halfhour="$year-$mon-$mday $hour:$min:$sec"; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [--debug] = debugging messages\n\n"; + } + else + { + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /--debug/i) + { + $DB=1; + print "\n-----DEBUGGING -----\n\n"; + } + if ($args =~ /-t|--test/i) + { + $T=1; $TEST=1; + print "\n-----TESTING -----\n\n"; + } + } + } +else + { + print "no command line options set\n"; + } +### end parsing run-time options ### + + +if (!$Q) {print "TEST\n\n";} +if (!$Q) {print "NOW DATETIME: $SQLdate_NOW\n";} +if (!$Q) {print "1 HOUR AGO DATETIME: $SQLdate_NEG_1hour\n\n";} + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = "$aryA[0]"; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } +$sthA->finish(); + +if ($SYSLOG) + {$flush_time = $SQLdate_NEG_1hour;} +else + {$flush_time = $SQLdate_NEG_halfhour;} + +$stmtA = "delete from vicidial_manager where server_ip='$server_ip' and entry_date < '$flush_time';"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) { $affected_rows = $dbhA->do($stmtA);} +if (!$Q) {print " - vicidial_manager flush\n";} + + +$stmtA = "optimize table vicidial_manager;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$Q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } +if (!$Q) {print " - optimize vicidial_manager \n";} + + +$stmtA = "optimize table vicidial_live_agents;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$Q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } +if (!$Q) {print " - optimize vicidial_live_agents \n";} + + +$stmtA = "optimize table vicidial_auto_calls;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$Q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $rec_countY++; + $sthA->finish(); + } +if (!$Q) {print " - optimize vicidial_auto_calls \n";} + + +$stmtA = "optimize table vicidial_hopper;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$Q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } +if (!$Q) {print " - optimize vicidial_hopper \n";} + + +$stmtA = "optimize table vicidial_drop_rate_groups;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$Q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } +if (!$Q) {print " - optimize vicidial_drop_rate_groups \n";} + + +$stmtA = "optimize table vicidial_campaigns;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$Q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } +if (!$Q) {print " - optimize vicidial_campaigns \n";} + + +$stmtA = "optimize table vicidial_lists;"; +if($DB){print STDERR "\n|$stmtA|\n";} +if (!$T) + { + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + if (!$Q) {print "|",$aryA[0],"|",$aryA[1],"|",$aryA[2],"|",$aryA[3],"|","\n";} + $sthA->finish(); + } +if (!$Q) {print " - optimize vicidial_lists \n";} + + + +$dbhA->disconnect(); + + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_manager_kill_hung_congested.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_manager_kill_hung_congested.pl new file mode 100644 index 00000000..62807549 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_manager_kill_hung_congested.pl @@ -0,0 +1,377 @@ +#!/usr/bin/perl +# +# AST_manager_kill_hung_congested.pl version 2.0.5 +# +# Part of the Asterisk Central Queue System (ACQS) +# +# DESCRIPTION: +# kills CONGEST local channels every 15 seconds +# +# For the client program to work in ACQS mode, this program must be running +# +# put this in the cron to run every minute +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 50823-1525 - Added commandline debug options with debug printouts +# 60717-1247 - changed to DBI by Marin Blu +# 60717-1536 - changed to use /etc/astguiclient.conf for configs +# 60814-1706 - added option for no logging to file +# + +# constants +$DB=0; # Debug flag, set to 0 for no debug messages, On an active system this will generate thousands of lines of output per minute +$US='__'; +$MT[0]=''; + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n[-debugX] = Extra-verbose debug messages\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +# print "no command line options set\n"; +} +### end parsing run-time options ### + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + + &get_time_now; + +if (!$KHLOGfile) {$KHLOGfile = "$PATHlogs/congest.$year-$mon-$mday";} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database + $stmtA = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = "$aryA[0]"; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } + $sthA->finish(); + +$stmtA = "SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = 'CONGEST' and channel LIKE \"Local%\" limit 99"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if($DB){print STDERR $aryA[0],"\n";} + $congest_kill[$rec_count] = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + + +$i=0; +foreach(@congest_kill) + { + $i_count = $i; + if ($i_count < 10) {$i_count = "0$i_count";} + + if (length($congest_kill[$i])>0) + { + ### use manager middleware-app to zapbarge call being placed from meetme + $KCqueryCID = "KC$i_count$CIDdate"; + + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$now_date','NEW','N','$server_ip','','Hangup','$KCqueryCID','Channel: $congest_kill[$i]','','','','','','','','','')"; + + $event_string = "SUBRT|killing_congest|KC|$KCqueryCID|$congest_kill[$i]|$stmtA|"; + event_logger; + + if ($DB) {print "KILLING $congest_kill[$i]\n";} + $affected_rows = $dbhA->do($stmtA); + } + $i++; + } + + +sleep(14); + +######## 22222 starting another loop + &get_time_now; +@congest_kill = @MT; + + + +$stmtA = "SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = 'CONGEST' and channel LIKE \"Local%\" limit 99"; +# $event_string="SQL_QUERY|$stmtA|"; +# &event_logger; + +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if($DB){print STDERR $aryA[0],"\n";} + $congest_kill[$rec_count] = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + +$i=0; +foreach(@congest_kill) + { + $i_count = $i; + if ($i_count < 10) {$i_count = "0$i_count";} + + if (length($congest_kill[$i])>0) + { + ### use manager middleware-app to zapbarge call being placed from meetme + $KCqueryCID = "KC$i_count$CIDdate"; + + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$now_date','NEW','N','$server_ip','','Hangup','$KCqueryCID','Channel: $congest_kill[$i]','','','','','','','','','')"; + + $event_string = "SUBRT|killing_congest|KC|$KCqueryCID|$congest_kill[$i]|$stmtA|"; + event_logger; + + if ($DB) {print "KILLING $congest_kill[$i]\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:\n"; + } + $i++; + } + + +sleep(15); + +######## 33333 starting another loop + &get_time_now; +@congest_kill = @MT; + + + + +$stmtA = "SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = 'CONGEST' and channel LIKE \"Local%\" limit 99"; +# $event_string="SQL_QUERY|$stmtA|"; +# &event_logger; + +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if($DB){print STDERR $aryA[0],"\n";} + $congest_kill[$rec_count] = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + +$i=0; +foreach(@congest_kill) + { + $i_count = $i; + if ($i_count < 10) {$i_count = "0$i_count";} + + if (length($congest_kill[$i])>0) + { + ### use manager middleware-app to zapbarge call being placed from meetme + $KCqueryCID = "KC$i_count$CIDdate"; + + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$now_date','NEW','N','$server_ip','','Hangup','$KCqueryCID','Channel: $congest_kill[$i]','','','','','','','','','')"; + + $event_string = "SUBRT|killing_congest|KC|$KCqueryCID|$congest_kill[$i]|$stmtA|"; + event_logger; + + if ($DB) {print "KILLING $congest_kill[$i]\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:\n"; + } + $i++; + } + + +sleep(15); + +######## 44444 starting another loop + &get_time_now; +@congest_kill = @MT; + + + + + +$stmtA = "SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = 'CONGEST' and channel LIKE \"Local%\" limit 99"; +# $event_string="SQL_QUERY|$stmtA|"; +# &event_logger; + +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if($DB){print STDERR $aryA[0],"\n";} + $congest_kill[$rec_count] = "$aryA[0]"; + $rec_count++; + } + $sthA->finish(); + + +$i=0; +foreach(@congest_kill) + { + $i_count = $i; + if ($i_count < 10) {$i_count = "0$i_count";} + + if (length($congest_kill[$i])>0) + { + ### use manager middleware-app to zapbarge call being placed from meetme + $KCqueryCID = "KC$i_count$CIDdate"; + + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$now_date','NEW','N','$server_ip','','Hangup','$KCqueryCID','Channel: $congest_kill[$i]','','','','','','','','','')"; + + $event_string = "SUBRT|killing_congest|KC|$KCqueryCID|$congest_kill[$i]|$stmtA|"; + event_logger; + + if ($DB) {print "KILLING $congest_kill[$i]\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:\n"; + } + $i++; + } + + + +# $event_string='CLOSING DB CONNECTION|'; +# &event_logger; + +$dbhA->disconnect(); + + + if($DB){print "DONE... Exiting... Goodbye... See you later... \n";} + + +exit; + + + + + + + +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"; +$action_log_date = "$year-$mon-$mday"; +$CIDdate = "$year$mon$mday$hour$min$sec"; +} + + + + + +sub event_logger +{ +if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$KHLOGfile") + || die "Can't open $KHLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } +$event_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_manager_listen.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_manager_listen.pl new file mode 100644 index 00000000..a6b699e6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_manager_listen.pl @@ -0,0 +1,726 @@ +#!/usr/bin/perl +# +# AST_manager_listen.pl version 2.0.5 *DBI-version* +# +# Part of the Asterisk Central Queue System (ACQS) +# +# DESCRIPTION: +# connects to the Asterisk Manager interface and updates records in the +# vicidial_manager table of the asterisk database in MySQL based upon the +# events that it receives +# +# SUMMARY: +# This program was designed as the listen-only part of the ACQS. It's job is to +# look for certain events and based upon either the uniqueid or the callerid of +# the call update the status and information of an action record in the +# vicidial_manager table of the asterisk MySQL database. +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 50322-1300 - changed callerid parsing to remove quotes and number +# 50616-1559 - Added NewCallerID parsing and updating +# 50621-1406 - Added Asterisk server shutdown and connection dead detection +# 50810-1534 - Added database server variable definitions lookup +# 50824-1606 - Altered CVS/1.2 support for different output +# 50901-2359 - Another CVS/1.2 output parsing fix +# 51222-1553 - fixed parentheses bug in manager output +# 60403-1230 - Added SVN/1.4 support for different output +# 60718-0909 - changed to DBI by Marin Blu +# 60718-0955 - changed to use /etc/astguiclient.conf for configs +# 60720-1142 - added keepalive to MySQL connection every 50 seconds +# 60814-1733 - added option for no logging to file +# 60906-1714 - added updating for special vicidial conference calls +# 71129-2004 - Fixed SQL error +# + +# constants +$DB=1; # Debug flag, set to 0 for no debug messages, lots of output +$US='__'; +$MT[0]=''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n[-debugX] = Extra-verbose debug messages\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +# print "no command line options set\n"; +} +### end parsing run-time options ### + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + + &get_time_now; + +#use lib './lib', '../lib'; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; +use Net::Telnet (); + + $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context,vd_server_logs FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBtelnet_host = "$aryA[0]"; + $DBtelnet_port = "$aryA[1]"; + $DBASTmgrUSERNAME = "$aryA[2]"; + $DBASTmgrSECRET = "$aryA[3]"; + $DBASTmgrUSERNAMEupdate = "$aryA[4]"; + $DBASTmgrUSERNAMElisten = "$aryA[5]"; + $DBASTmgrUSERNAMEsend = "$aryA[6]"; + $DBmax_vicidial_trunks = "$aryA[7]"; + $DBanswer_transfer_agent= "$aryA[8]"; + $DBSERVER_GMT = "$aryA[9]"; + $DBext_context = "$aryA[10]"; + $DBvd_server_logs = "$aryA[11]"; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } +$sthA->finish(); + +if (!$telnet_port) {$telnet_port = '5038';} + + $event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|'; + &event_logger; + +$one_day_interval = 90; # 1 day loops for 3 months +while($one_day_interval > 0) +{ + + $event_string="STARTING NEW MANAGER TELNET CONNECTION||ATTEMPT|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; +# Errmode => Return, + + ### connect to asterisk manager through telnet + $tn = new Net::Telnet (Port => $telnet_port, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '',); + #$LItelnetlog = "$PATHlogs/listen_telnet_log.txt" # uncomment for telnet log + #$fh = $tn->dump_log("$LItelnetlog"); # uncomment for telnet log + if (length($ASTmgrUSERNAMElisten) > 3) {$telnet_login = $ASTmgrUSERNAMElisten;} + else {$telnet_login = $ASTmgrUSERNAME;} + $tn->open("$telnet_host"); + $tn->waitfor('/[01]\n$/'); # print login + $tn->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); + $tn->waitfor('/Authentication accepted/'); # waitfor auth accepted + + $tn->buffer_empty; + + $event_string="STARTING NEW MANAGER TELNET CONNECTION|$telnet_login|CONFIRMED CONNECTION|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + + $endless_loop=864000; # 1 day at .10 seconds per loop + + while($endless_loop > 0) + { + ### sleep for 10 hundredths of a second + usleep(1*100*1000); + + $msg=''; + $read_input_buf = $tn->get(Errmode => Return, Timeout => 1,); + $input_buf_length = length($read_input_buf); + $msg = $tn->errmsg; + if ($msg =~ /filehandle isn\'t open/i) + { + $endless_loop=0; + $one_day_interval=0; + print "ERRMSG: |$msg|\n"; + print "\nAsterisk server shutting down, PROCESS KILLED... EXITING\n\n"; + $event_string="Asterisk server shutting down, PROCESS KILLED... EXITING|ONE DAY INTERVAL:$one_day_interval|$msg|"; + &event_logger; + } + + if ( ($read_input_buf !~ /\n\n/) or ($input_buf_length < 10) ) + { + # if ($read_input_buf =~ /\n/) {print "\n|||$input_buf_length|||$read_input_buf|||\n";} + $input_buf = "$input_buf$read_input_buf"; + } + else + { + $partial=0; + $partial_input_buf=''; + + if ($read_input_buf !~ /\n\n$/) + { + $read_input_buf =~ s/\(|\)/ /gi; # replace parens with space + $partial_input_buf = $read_input_buf; + $partial_input_buf =~ s/\n/-----/gi; + $partial_input_buf =~ s/\*/\\\*/gi; + $partial_input_buf =~ s/.*----------//gi; + $partial_input_buf =~ s/-----/\n/gi; + $read_input_buf =~ s/$partial_input_buf$//gi; + $partial++; + } + + $input_buf = "$input_buf$read_input_buf"; + @input_lines = split(/\n\n/, $input_buf); + + if($DB){print "input buffer: $input_buf_length lines: $#input_lines partial: $partial\n";} + if ( ($DB) && ($partial) ) {print "-----[$partial_input_buf]-----\n\n";} + if($DB){print "|$input_buf|\n";} + + $manager_string = "$input_buf"; + &manager_output_logger; + + $input_buf = "$partial_input_buf"; + + + @command_line=@MT; + $ILcount=0; + foreach(@input_lines) + { + ##### look for special vicidial conference call event ##### + if ( ($input_lines[$ILcount] =~ /CallerIDName: DCagcW/) && ($input_lines[$ILcount] =~ /Event: Dial|State: Up/) ) + { + ### BEGIN 1.2.X tree versions + $input_lines[$ILcount] =~ s/^\n|^\n\n//gi; + @command_line=split(/\n/, $input_lines[$ILcount]); + + if ($input_lines[$ILcount] =~ /Event: Dial/) + { + if ($command_line[3] =~ /Destination: /i) + { + $channel = $command_line[3]; + $channel =~ s/Destination: |\s*$//gi; + $callid = $command_line[5]; + $callid =~ s/CallerIDName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[6]; + $uniqueid =~ s/SrcUniqueID: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + if ($channel !~ /local/i) + { + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows Conference DIALs updated|\n";} + } + } + } + if ($input_lines[$ILcount] =~ /State: Up/) + { + if ($command_line[2] =~ /Channel: /i) + { + $channel = $command_line[2]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[5]; + $callid =~ s/CallerIDName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[6]; + $uniqueid =~ s/SrcUniqueID: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid' and status='SENT';"; + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows Conference DIALs updated|\n";} + } + } + ### END 1.2.X tree versions + + } + + ##### parse through all other important events ##### + if ( ($input_lines[$ILcount] =~ /State: Ringing|State: Up|State: Dialing|Event: Newstate|Event: Hangup|Event: Newcallerid|Event: Shutdown|Event: CPD-Result/) && ($input_lines[$ILcount] !~ /ZOMBIE/) ) + { + $input_lines[$ILcount] =~ s/^\n|^\n\n//gi; + @command_line=split(/\n/, $input_lines[$ILcount]); + if ($input_lines[$ILcount] =~ /Event: Shutdown/) + { + $endless_loop=0; + $one_day_interval=0; + print "\nAsterisk server shutting down, PROCESS KILLED... EXITING\n\n"; + $event_string="Asterisk server shutting down, PROCESS KILLED... EXITING|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + } + + if ($input_lines[$ILcount] =~ /Event: Hangup/) + { + if ( ($command_line[2] =~ /^Channel: /i) && ($command_line[3] =~ /^Uniqueid: /i) ) ### post 2005-08-07 CVS -- added Privilege line + { + $channel = $command_line[2]; + $channel =~ s/Channel: |\s*$//gi; + $uniqueid = $command_line[3]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='DEAD', channel='$channel' where server_ip = '$server_ip' and uniqueid = '$uniqueid' and callerid NOT LIKE \"DCagcW%\";"; + + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + + if($DB){print "|$affected_rows HANGUPS updated|\n";} + } + else + { + if ( ($command_line[3] =~ /^Channel: /i) && ($command_line[4] =~ /^Uniqueid: /i) ) ### post 2006-03-20 SVN -- Added Timestamp line + { + $channel = $command_line[3]; + $channel =~ s/Channel: |\s*$//gi; + $uniqueid = $command_line[4]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='DEAD', channel='$channel' where server_ip = '$server_ip' and uniqueid = '$uniqueid' and callerid NOT LIKE \"DCagcW%\";"; + + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows HANGUPS updated|\n";} + } + else + { + $channel = $command_line[1]; + $channel =~ s/Channel: |\s*$//gi; + $uniqueid = $command_line[2]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='DEAD', channel='$channel' where server_ip = '$server_ip' and uniqueid = '$uniqueid' and callerid NOT LIKE \"DCagcW%\";"; + + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows HANGUPS updated|\n";} + } + } + } + + if ($input_lines[$ILcount] =~ /State: Dialing/) + { + if ( ($command_line[1] =~ /^Channel: /i) && ($command_line[4] =~ /^Uniqueid: /i) ) ### pre 2004-10-07 CVS + { + $channel = $command_line[1]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[3]; + $callid =~ s/Callerid: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[4]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='SENT', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + + if($DB){print "|$affected_rows DIALINGs updated|\n";} + } + if ( ($command_line[1] =~ /^Channel: /i) && ($command_line[4] =~ /^CalleridName: /i) ) ### post 2004-10-07 CVS + { + $channel = $command_line[1]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[4]; + $callid =~ s/CalleridName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[5]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='SENT', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows DIALINGs updated|\n";} + } + if ( ($command_line[2] =~ /^Channel: /i) && ($command_line[5] =~ /^CalleridName: /i) ) ### post 2005-08-07 CVS + { + $channel = $command_line[2]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[5]; + $callid =~ s/CalleridName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[6]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='SENT', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows DIALINGs updated|\n";} + } + if ( ($command_line[3] =~ /^Channel: /i) && ($command_line[6] =~ /^CalleridName: /i) ) ### post 2006-03-20 -- Added Timestamp line + { + $channel = $command_line[3]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[6]; + $callid =~ s/CalleridName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[7]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='SENT', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows DIALINGs updated|\n";} + } + } + if ($input_lines[$ILcount] =~ /State: Ringing|State: Up/) + { + if ( ($command_line[1] =~ /^Channel: /i) && ($command_line[4] =~ /^Uniqueid: /i) ) ### pre 2004-10-07 CVS + { + $channel = $command_line[1]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[3]; + $callid =~ s/Callerid: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[4]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + if ($channel !~ /local/i) + { + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows RINGINGs updated|\n";} + } + } + if ( ($command_line[1] =~ /^Channel: /i) && ($command_line[4] =~ /^CalleridName: /i) ) ### post 2004-10-07 CVS + { + $channel = $command_line[1]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[4]; + $callid =~ s/CalleridName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[5]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + if ($channel !~ /local/i) + { + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows RINGINGs updated|\n";} + } + } + if ( ($command_line[2] =~ /^Channel: /i) && ($command_line[5] =~ /^CalleridName: /i) ) ### post 2005-08-07 CVS + { + $channel = $command_line[2]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[5]; + $callid =~ s/CalleridName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[6]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + if ($channel !~ /local/i) + { + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows RINGINGs updated|\n";} + } + } + if ( ($command_line[3] =~ /^Channel: /i) && ($command_line[6] =~ /^CalleridName: /i) ) ### post 2006-03-20 SVN -- Added Timestamp line + { + $channel = $command_line[3]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[6]; + $callid =~ s/CalleridName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[7]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + if ($channel !~ /local/i) + { + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows RINGINGs updated|\n";} + } + } + } + + if ($input_lines[$ILcount] =~ /Event: Newcallerid/) + { + if ( ($command_line[1] =~ /^Channel: /i) && ($command_line[3] =~ /^Uniqueid: /i) ) + { + $channel = $command_line[1]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[2]; + $callid =~ s/Callerid: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[3]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + if ($channel =~ /local/i) + { + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows RINGINGs updated|\n";} + } + } + if ( ($command_line[3] =~ /^Channel: /i) && ($command_line[6] =~ /^Uniqueid: /i) ) ### post 2006-03-20 SVN -- Added Timestamp line + { + $channel = $command_line[3]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[5]; + $callid =~ s/Callerid: |\s*$//gi; + # $callid =~ s/CallerIDName: |\s*$//gi; + $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + $uniqueid = $command_line[6]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + if ($channel =~ /local/i) + { + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows RINGINGs updated|\n";} + } + } + # if ( ($command_line[2] =~ /^Channel: /i) && ($command_line[5] =~ /^Uniqueid: /i) ) ### post 2006-06-21 SVN -- Changed from CallerID to CallerIDName + # { + # $channel = $command_line[2]; + # $channel =~ s/Channel: |\s*$//gi; + # $callid = $command_line[4]; + # $callid =~ s/CallerIDName: |\s*$//gi; + # $callid =~ s/^\"//gi; $callid =~ s/\".*$//gi; + # $uniqueid = $command_line[5]; + # $uniqueid =~ s/Uniqueid: |\s*$//gi; + # $stmtA = "UPDATE vicidial_manager set status='UPDATED', channel='$channel', uniqueid = '$uniqueid' where server_ip = '$server_ip' and callerid = '$callid'"; + # if ($channel =~ /local/i) + # { + # print STDERR "|$stmtA|\n"; + # my $affected_rows = $dbhA->do($stmtA); + # if($DB){print "|$affected_rows RINGINGs updated|\n";} + # } + # } + } + if ($input_lines[$ILcount] =~ /Event: CPD-Result/) + { + # Event: CPD-Result + # Privilege: system,all + # ChannelDriver: SIP + # Channel: SIP/paraxip-out-08291448 + # CallerIDName: V0202034729000030735 + # Uniqueid: 1233564450.141 + # Result: Answering-Machine + if ( ($command_line[3] =~ /^Channel: /i) && ($command_line[5] =~ /^Uniqueid: /i) ) + { + &get_time_now; + + $channel = $command_line[3]; + $channel =~ s/Channel: |\s*$//gi; + $callid = $command_line[4]; + $callid =~ s/CallerIDName: |\s*$//gi; + $uniqueid = $command_line[5]; + $uniqueid =~ s/Uniqueid: |\s*$//gi; + $result = $command_line[6]; + $result =~ s/Result: |\s*$//gi; + if (length($result)>0) + { + $lead_id = substr($callid, 11, 9); + $lead_id = ($lead_id + 0); + $stmtA = "INSERT INTO vicidial_cpd_log set channel='$channel', uniqueid='$uniqueid', callerid='$callid', server_ip='$server_ip', lead_id='$lead_id', event_date='$now_date', result='$result';"; + print STDERR "|$stmtA|\n"; + my $affected_rows = $dbhA->do($stmtA); + if($DB){print "|$affected_rows CPD_log inserted|\n";} + } + } + } + + } + $ILcount++; + } + + } + + + $endless_loop--; + $keepalive_count_loop++; + if($DB){print STDERR "loop counter: |$endless_loop|$keepalive_count_loop|\r";} + + ### putting a blank file called "sendmgr.kill" in a directory will automatically safely kill this program + if ( (-e "$PATHhome/listenmgr.kill") or ($sendonlyone) ) + { + unlink("$PATHhome/listenmgr.kill"); + $endless_loop=0; + $one_day_interval=0; + print "\nPROCESS KILLED MANUALLY... EXITING\n\n"; + } + + ### run a keepalive command to flush whatever is in the buffer through and to keep the connection alive + ### Also, keep the MySQL connection alive by selecting the server_updater time for this server + if ($endless_loop =~ /00$|50$/) + { + &get_time_now; + + ### Grab Server values from the database + $stmtA = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvd_server_logs = "$aryA[0]"; + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } + $sthA->finish(); + + ### Grab Server values to keep DB connection alive + $stmtA = "SELECT last_update FROM server_updater where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $last_update = "$aryA[0]"; + $sthA->finish(); + + @list_lines = $tn->cmd(String => "Action: Command\nCommand: show uptime\n\n", Prompt => '/--END COMMAND--.*/', Errmode => Return, Timeout => 1); + if($DB){print "input lines: $#list_lines\n";} + + if($DB){print "+++++++++++++++++++++++++++++++sending keepalive transmit line $endless_loop|$now_date|$last_update|\n";} + $keepalive_count_loop=0; + + } + + + } + + + if($DB){print "DONE... Exiting... Goodbye... See you later... Not really, initiating next loop...$one_day_interval left\n";} + + $event_string='HANGING UP|'; + &event_logger; + + @hangup = $tn->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/", Errmode => Return, Timeout => 1); + + $ok = $tn->close; + + $one_day_interval--; + +} + + $event_string='CLOSING DB CONNECTION|'; + &event_logger; + + + $dbhA->disconnect(); + + + if($DB){print "DONE... Exiting... Goodbye... See you later... Really I mean it this time\n";} + + +exit; + + + + + + + +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"; +$action_log_date = "$year-$mon-$mday"; +} + + + + + +sub event_logger +{ +if ($SYSLOG) + { + ### open the log file for writing ### + open(Lout, ">>$PATHlogs/listen_process.$action_log_date") + || die "Can't open $PATHlogs/listen_process.$action_log_date: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } +$event_string=''; +} + + + + +sub manager_output_logger +{ +if ($SYSLOG) + { + open(MOout, ">>$PATHlogs/listen.$action_log_date") + || die "Can't open $PATHlogs/listen.$action_log_date: $!\n"; + print MOout "$now_date|$manager_string|\n"; + close(MOout); + } +} diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_manager_send.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_manager_send.pl new file mode 100644 index 00000000..f19e8392 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_manager_send.pl @@ -0,0 +1,403 @@ +#!/usr/bin/perl +# +# AST_manager_send.pl version 2.2.0 +# +# Part of the Asterisk Central Queue System (ACQS) +# +# DESCRIPTION: +# spawns child processes (AST_send_action_child.pl) to execute action commands +# on the Asterisk manager interface from records in the vicidial_manager table +# of the asterisk database in MySQL that are marked as a status of NEW +# +# SUMMARY: +# This program was designed as the send-only part of the ACQS. It's job is to +# pick NEW actions from the vicidial_manager table and send them to be executed +# by separate child process. This allows for a higher degree of flexibility and +# scalability over just using a single process. Also, this means that a single +# action execution lock cannot bring the entire system down. +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 50823-1514 - Added commandline debug options with debug printouts +# 50902-1051 - Added extra debug output launch sub(commented out) +# 60718-0909 - changed to DBI by Marin Blu +# 60718-1005 - changed to use /etc/astguiclient.conf for configs +# 60718-1211 - removed need for ADMIN_keepalive_send_listen.at launching +# 60814-1712 - added option for no logging to file +# 60817-1211 - added more ARGS to go to child process to remove DBI from child +# 61221-1926 - optimize and clean code, lc +# 80418-0901 - reduced time between Actions being sent, raised endless loop timer +# 91129-2146 - removed SELECT STAR and formatting fixes +# + +$|++; +use strict; +use DBI; +use Getopt::Long; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second + +# constants and globals +my $servConf; +my %conf; +$conf{PATHconf} = '/etc/astguiclient.conf'; # default path to astguiclient configuration file: +my $COUNTER_OUTPUT=1; # set to 1 to display the counter as the script runs +my ($CLOhelp, $sendonlyone, $TEST, $DB, $DBX, $SYSLOG); + +### begin parsing run-time options ### +if (scalar @ARGV) + { + GetOptions('help!' => \$CLOhelp, + 'sendonlyone!' => \$sendonlyone, + 'counteroutput!' => \$COUNTER_OUTPUT, + 't!' => \$TEST, #Fucntionality doesn't actually exist. + 'debug!' => \$DB, + 'debugX!' => \$DBX ); + $DB = 1 if ($DBX); + if ($DB) + { + print "----- DEBUGGING -----\n"; + print "----- EXTRA-VERBOSE DEBUGGING -----\n" if ($DBX); + print "COUNTER_OUTPUT: $COUNTER_OUTPUT\n"; + print "sendonlyone: $sendonlyone\n" if ($sendonlyone); + print "TEST: $TEST\n" if ($TEST); + } + if ($CLOhelp) + { + print "\nAST_manager_send.pl\n"; + print "allowed run time options:\n"; + print " [--help] = This help screen.\n"; + print " [--sendonlyone] = Send only one command\n"; + print " [--nocounteroutput] = Do not display counter as script runs\n"; + print " [-t] = Test Mode\n"; + print " [--debug] or [-v] = Verbose debug messages\n"; + print " [--debugX] or [-vv] = Extra-verbose debug messages\n\n"; + exit 0; + } + } +### end parsing run-time options ### + +# Begin Parsing astguiclient config file. +open(CONF, $conf{PATHconf}) || die "can't open " . $conf{PATHconf} . ": " . $! . "\n"; +while (my $line = ) + { + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + foreach my $key (qw( PATHhome PATHlogs PATHagi PATHweb PATHsounds PATHmontior + VARserver_ip VARDB_server VARDB_database VARDB_user VARDB_pass VARDB_port)) + { + if ($line =~ /^$key/) + { + $conf{$key} = $line; + $conf{$key} =~ s/.*=//gi; + } + } + } +$conf{VARDB_port} = '3306' unless ($conf{VARDB_port}); + +# Connect to DB +my $dbhA = DBI->connect("DBI:mysql:" . $conf{VARDB_database} . ":" . $conf{VARDB_server} . ":" . $conf{VARDB_port}, + $conf{VARDB_user}, $conf{VARDB_pass}) or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$servConf = getServerConfig($dbhA, $conf{VARserver_ip}); +$SYSLOG = 1 if ($servConf->{vd_server_logs} =~ /Y/); +my $event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|'; +eventLogger($conf{PATHlogs}, 'process', $event_string); + + +my $one_day_interval = 182; # 2 day loops for 12 months +while ($one_day_interval > 0) + { + my $endless_loop = 1728000; # 2 days at .10 seconds per loop + my $affected_rows; + my $NEW_actions; + while ($endless_loop > 0) + { + my $stmtA = "SELECT count(*) from vicidial_manager where server_ip = '" . $conf{VARserver_ip} . "' and status = 'NEW'"; + my $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + my $NEW_actions = ($sthA->fetchrow_array)[0]; + print STDERR $NEW_actions . " NEW Actions to send on server " . $conf{VARserver_ip} . " $endless_loop\n" if ($DB); + $sthA->finish(); + + if ($NEW_actions) + { + my $stmtA = "UPDATE vicidial_manager set status='QUEUE' where server_ip = '" . $conf{VARserver_ip} . "' and status = 'NEW' order by entry_date limit 1"; + $affected_rows = $dbhA->do($stmtA); + print STDERR "rows updated to QUEUE: |$affected_rows|\n" if ($DB); + } + else + { + $affected_rows = 0; + } + + if ($affected_rows) + { + my $stmtA = "SELECT man_id,uniqueid,entry_date,status,response,server_ip,channel,action,callerid,cmd_line_b,cmd_line_c,cmd_line_d,cmd_line_e,cmd_line_f,cmd_line_g,cmd_line_h,cmd_line_i,cmd_line_j,cmd_line_k FROM vicidial_manager where server_ip = '" . $conf{VARserver_ip} . "' and status = 'QUEUE' order by entry_date desc limit 1"; + eventLogger($conf{'PATHlogs'}, 'process', "SQL_QUERY|" . $stmtA . "|"); + + my $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + + while (my $vdm = $sthA->fetchrow_hashref) + { + print STDERR $vdm->{man_id} . "|" . $vdm->{uniqueid} . "|" . $vdm->{channel} . "|" . + $vdm->{action} . "|" . $vdm->{callerid} . "\n" if ($DB); + + my $originate_command = "Action: ". $vdm->{action} . "\n"; + $originate_command .= $vdm->{cmd_line_b} . "\n" if ($vdm->{cmd_line_b}); + $originate_command .= $vdm->{cmd_line_c} . "\n" if ($vdm->{cmd_line_c}); + $originate_command .= $vdm->{cmd_line_d} . "\n" if ($vdm->{cmd_line_d}); + $originate_command .= $vdm->{cmd_line_e} . "\n" if ($vdm->{cmd_line_e}); + $originate_command .= $vdm->{cmd_line_f} . "\n" if ($vdm->{cmd_line_f}); + $originate_command .= $vdm->{cmd_line_g} . "\n" if ($vdm->{cmd_line_g}); + $originate_command .= $vdm->{cmd_line_h} . "\n" if ($vdm->{cmd_line_h}); + $originate_command .= $vdm->{cmd_line_i} . "\n" if ($vdm->{cmd_line_i}); + $originate_command .= $vdm->{cmd_line_j} . "\n" if ($vdm->{cmd_line_j}); + $originate_command .= $vdm->{cmd_line_k} . "\n" if ($vdm->{cmd_line_k}); + $originate_command .= "\n"; + + my $SENDNOW=1; + if ($originate_command =~ /Action: Hangup|Action: Redirect/) + { + $SENDNOW=0; + print STDERR "\n|checking for dead call before executing|" . $vdm->{callerid} . "|" . $vdm->{uniqueid} . "|\n" if ($DB); + my $stmtB = "SELECT count(*) FROM vicidial_manager where server_ip = '" . $conf{VARserver_ip} . "' and callerid='" . $vdm->{callerid} . "' and status = 'DEAD'"; + my $sthB = $dbhA->prepare($stmtB) or die "preparing: ",$dbhA->errstr; + $sthB->execute or die "executing: $stmtA ", $dbhA->errstr; + my $dead_count = ($sthB->fetchrow_array)[0]; + $sthB->finish(); + + if ($dead_count) + { + print STDERR "\n|not sending command line is dead|" . $vdm->{callerid} . "|" . $vdm->{uniqueid} . "|\n" if ($DB); + } + else + { + $SENDNOW=1; + } + } + + my $event_string = "----BEGIN NEW COMMAND----\nCallerID: " . $vdm->{callerid} . "\n$originate_command----END NEW COMMAND----\n"; + eventLogger($conf{'PATHlogs'}, 'process', $event_string); + + if ($SENDNOW) + { + my $cPATHlogs = $conf{PATHlogs}; + $cPATHlogs =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_b} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_c} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_d} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_e} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_f} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_g} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_h} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_i} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_j} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + $vdm->{cmd_line_k} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; + + my $launch = $conf{PATHhome} . "/AST_send_action_child.pl"; + $launch .= " --SYSLOG" if ($SYSLOG); + $launch .= " --PATHlogs=" . $cPATHlogs; + $launch .= " --telnet_host=" . $servConf->{telnet_host}; + $launch .= " --telnet_port=" . $servConf->{telnet_port}; + $launch .= " --ASTmgrUSERNAME=" . $servConf->{ASTmgrUSERNAME}; + $launch .= " --ASTmgrSECRET=" . $servConf->{ASTmgrSECRET}; + $launch .= " --ASTmgrUSERNAMEsend=" . $servConf->{ASTmgrUSERNAMEsend}; + $launch .= " --man_id=" . $vdm->{man_id}; + $launch .= " --action=" . $vdm->{action}; + $launch .= " --cmd_line_b=" . $vdm->{cmd_line_b} if ($vdm->{cmd_line_b}); + $launch .= " --cmd_line_c=" . $vdm->{cmd_line_c} if ($vdm->{cmd_line_c}); + $launch .= " --cmd_line_d=" . $vdm->{cmd_line_d} if ($vdm->{cmd_line_d}); + $launch .= " --cmd_line_e=" . $vdm->{cmd_line_e} if ($vdm->{cmd_line_e}); + $launch .= " --cmd_line_f=" . $vdm->{cmd_line_f} if ($vdm->{cmd_line_f}); + $launch .= " --cmd_line_g=" . $vdm->{cmd_line_g} if ($vdm->{cmd_line_g}); + $launch .= " --cmd_line_h=" . $vdm->{cmd_line_h} if ($vdm->{cmd_line_h}); + $launch .= " --cmd_line_i=" . $vdm->{cmd_line_i} if ($vdm->{cmd_line_i}); + $launch .= " --cmd_line_j=" . $vdm->{cmd_line_j} if ($vdm->{cmd_line_j}); + $launch .= " --cmd_line_k=" . $vdm->{cmd_line_k} if ($vdm->{cmd_line_k}); + eventLogger($conf{'PATHlogs'}, 'launch', $launch . " " . + $vdm->{callerid} . " " . $vdm->{uniqueid} . " " . $vdm->{channel}); + + + $launch .= " >> " . $conf{PATHlogs} . "/action_send." . logDate() if ($SYSLOG); + system($launch . ' &'); + + # $launch = "SENT " . $vdm->{man_id} . " " . $vdm->{callerid} . ' ' . $vdm->{uniqueid} . ' ' . $vdm->{channel}; + # eventLogger($conf{'PATHlogs'}, 'launch', $launch);; + + my $stmtA = "UPDATE vicidial_manager set status='SENT' where man_id='" . $vdm->{man_id} . "'"; + print STDERR "\n|$stmtA|\n" if ($DB); + $affected_rows = $dbhA->do($stmtA); + + $event_string = "SQL_QUERY|$stmtA|"; + eventLogger($conf{'PATHlogs'}, 'process', $event_string); + } + else + { + $stmtA = "UPDATE vicidial_manager set status='DEAD' where man_id='" . $vdm->{man_id} . "'"; + print STDERR "\n|$stmtA|\n" if ($DB); + $affected_rows = $dbhA->do($stmtA); + $event_string="COMMAND NOT SENT, SQL_QUERY|$stmtA|"; + eventLogger($conf{'PATHlogs'}, 'process', $event_string);; + } + } + $sthA->finish(); + } + + if ($affected_rows) + { + ### sleep for 1 hundredth of a second if just send an ACTION + usleep(1*10*1000); + } + else + { + ### sleep for 10 hundredths of a second if no actions sent + usleep(1*100*1000); + } + + $endless_loop--; + print STDERR "loop counter: |$endless_loop|\r" if($COUNTER_OUTPUT or $DB); + + ### putting a blank file called "sendmgr.kill" in a directory will automatically safely kill this program + if (-e $conf{PATHhome} . "/sendmgr.kill" or $sendonlyone) + { + unlink($conf{PATHhome} . "/sendmgr.kill"); + $endless_loop = 0; + $one_day_interval = 0; + print "\nPROCESS KILLED MANUALLY... EXITING\n\n"; + } + + my $running_listen = 0; + if ($endless_loop =~ /0$/) + { + ### Grab Server values from the database + $servConf = getServerConfig($dbhA, $conf{VARserver_ip}); + + print "checking to see if listener is dead |$sendonlyone|$running_listen|\n" if($COUNTER_OUTPUT or $DB); + #my @psoutput = `/bin/ps -f --no-headers -A`; + my @psoutput = `/bin/ps -o "%p %a" --no-headers -A`; + foreach my $line (@psoutput) + { + chomp($line); + print "|$line| \n" if ($DBX); + my @psline = split(/\/usr\/bin\/perl /,$line); + if ($psline[1] =~ /AST_manager_li/) + { + $running_listen++; + print "SEND RUNNING: |$psline[1]|\n" if ($DB); + } + } + + unless ($running_listen) + { + $sendonlyone++; + print "LISTENER DEAD STOPPING PROGRAM... ATTEMPTING TO START keepalive SCRIPT\n" if ($COUNTER_OUTPUT or $DB); + $event_string = 'LISTENER DEAD STOPPING PROGRAM... ATTEMPTING TO START keepalive SCRIPT|'; + eventLogger($conf{'PATHlogs'}, 'process', $event_string); + # `/usr/bin/at now < $PATHhome/ADMIN_keepalive_send_listen.at 2>/dev/null 1>&2`; + my $screencmd = "/usr/bin/screen -d -m " . $conf{PATHhome} . "/ADMIN_keepalive_AST_send_listen.pl 2>/dev/null 1>&2"; + `$screencmd`; + } + } + } + + print "DONE... Exiting... Goodbye... See you later... Not really, initiating next loop...$one_day_interval left\n" if($COUNTER_OUTPUT or $DB); + $one_day_interval--; + + } + +$event_string='CLOSING DB CONNECTION|'; +eventLogger($conf{'PATHlogs'}, 'process', $event_string); + +$dbhA->disconnect(); + +print "DONE... Exiting... Goodbye... See you later... Really I mean it this time\n" if($COUNTER_OUTPUT or $DB); +exit 0; +# Program ends. + + +### Start of subs. + +# getServerConfig usage: +# getServerConfig($dbh, $serverIP); +# Requires: +# $dbh : Database handle to current open DB. +# $serverIP : IP of server to get config for. +# Returns: +# hashref with conents of table entry. +sub getServerConfig + { + my ($dbhA, $serverip) = @_; + my $stmtA = "SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret FROM servers where server_ip = '" . $serverip ."';"; + my $sthA = $dbhA->prepare($stmtA) or die "preparing: " . $dbhA->errstr; + $sthA->execute or die "executing: $stmtA " . $dbhA->errstr; + my $servConf = $sthA->fetchrow_hashref; + $SYSLOG = 1 if ($servConf->{vd_server_logs} =~ /Y/); + $sthA->finish(); + return $servConf; + } + +# eventLogger usage: +# eventLgger($LogFileDir, $LogType, $EventString); +# Requires: +# $LogFilePath : Directory where log files are. +# $LogType : Type of log, ie process, send, launch, full +# $EventString : String to record in log. +sub eventLogger + { + my ($path,$type,$string) = @_; + open(LOG, ">>" . $path . "/action_" . $type . "." . logDate()) + || die "Can't open " . $path . "/action_" . $type . "." . + logDate() . ": " . $! . "\n"; + print LOG nowDate() . "|" . $string . "|\n"; + close(LOG); + } + +# getTime usage: +# getTime($SecondsSinceEpoch); +# Options: +# $SecondsSinceEpoch : Request time in seconds, defaults to current date/time. +# Returns: +# ($sec, $min, $hour. $day, $mon, $year) +sub getTime + { + my ($tms) = @_; + $tms = time unless ($tms); + my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($tms); + $year += 1900; + $mon++; + $mon = "0" . $mon if ($mon < 10); + $mday = "0" . $mday if ($mday < 10); + $min = "0" . $min if ($min < 10); + $sec = "0" . $sec if ($sec < 10); + return ($sec,$min,$hour,$mday,$mon,$year); + } + +# nowDate usage: +# nowDate($SecondsSinceEpoch); +# Options: +# $SecondsSinceEpoch : Request time in seconds, defaults to current date/time. +# Returns: +# scalar date/time string (MySQL formatted) ie "2007-01-01 00:00:00" +sub nowDate + { + my ($tms) = @_; + my($sec,$min,$hour,$mday,$mon,$year) = getTime($tms); + return $year.'-'.$mon.'-'.$mday.' '.$hour.':'.$min.':'.$sec; + } + +# logDate usage: +# logDate($SecondsSinceEpoch); +# Options: +# $SecondsSinceEpoch : Request time in seconds, defaults to current date/time. +# Returns: +# scalar date string ie "2007-01-01" +sub logDate + { + my ($tms) = @_; + my($sec,$min,$hour,$mday,$mon,$year) = getTime($tms); + return $year . '-' . $mon . '-' . $mday; + } + +### End of subs diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_phone_update.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_phone_update.pl new file mode 100644 index 00000000..cb8f84cd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_phone_update.pl @@ -0,0 +1,322 @@ +#!/usr/bin/perl +# +# AST_phone_update.pl version 2.0.5 *DBI-version* +# +# DESCRIPTION: +# checks the registered IP address of the phone and updates the phones table +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# 70521-1529 - first build +# + +# constants +$DB=0; # Debug flag, set to 0 for no debug messages per minute +$US='__'; +$MT[0]=''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +# print "no command line options set\n"; +} +### end parsing run-time options ### + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; +use Net::Telnet (); + + $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context FROM servers where server_ip = '$server_ip';"; + +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +if ($DB) {print "|$stmtA|\n";} +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBtelnet_host = "$aryA[0]"; + $DBtelnet_port = "$aryA[1]"; + $DBASTmgrUSERNAME = "$aryA[2]"; + $DBASTmgrSECRET = "$aryA[3]"; + $DBASTmgrUSERNAMEupdate = "$aryA[4]"; + $DBASTmgrUSERNAMElisten = "$aryA[5]"; + $DBASTmgrUSERNAMEsend = "$aryA[6]"; + $DBmax_vicidial_trunks = "$aryA[7]"; + $DBanswer_transfer_agent= "$aryA[8]"; + $DBSERVER_GMT = "$aryA[9]"; + $DBext_context = "$aryA[10]"; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + } + $sthA->finish(); + + +############# BEGIN SIP SECTION ################################################ +if($DB){print "\n\nSIP EXTENSIONS:\n";} + + +@PTextensions=@MT; @PTphone_ips=@MT; +$stmtA = "SELECT extension,phone_ip from phones where server_ip='$server_ip' and protocol='SIP'"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PTextensions[$rec_count] = "$aryA[0]"; + $PTphone_ips[$rec_count] = "$aryA[1]"; + $rec_count++; + } + $sthA->finish(); + + +### connect to asterisk manager through telnet +$t = new Net::Telnet (Port => 5038, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '',); +#$fh = $t->dump_log("$telnetlog"); # uncomment for telnet log + if (length($ASTmgrUSERNAMEsend) > 3) {$telnet_login = $ASTmgrUSERNAMEsend;} + else {$telnet_login = $ASTmgrUSERNAME;} + +$t->open("$telnet_host"); +$t->waitfor('/[01]\n$/'); # print login +$t->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); +$t->waitfor('/Authentication accepted/'); # waitfor auth accepted + + +$i=0; +foreach(@PTextensions) + { + @list_channels=@MT; + $t->buffer_empty; + @list_channels = $t->cmd(String => "Action: Command\nCommand: sip show peer $PTextensions[$i]\n\nAction: Ping\n\n", Prompt => '/Response: Pong.*/'); + + $j=0; + foreach(@list_channels) + { # Addr->IP : 10.10.14.25 Port 5060 + if ($list_channels[$j] =~ / Addr->IP : /) + { + $NEW_IPaddr[$i] = "$list_channels[$j]"; + $NEW_IPaddr[$i] =~ s/ Addr->IP : | Port .*|\n|\r|\t//g; + } + + $j++; + } + + if($DB){print "Phone IP- $PTextensions[$i] NEW:|$NEW_IPaddr[$i]| OLD:|$PTphone_ips[$i]| ";} + if ( ($NEW_IPaddr[$i] =~ /$PTphone_ips[$i]/) && (length($NEW_IPaddr[$i]) eq length($PTphone_ips[$i])) ) + { + if($DB){print "PHONE IP UNCHANGED, DOING NOTHING FOR THIS EXTENSION\n";} + } + else + { + if ($NEW_IPaddr[$i] =~ /Unspecified/) + { + if($DB){print "PHONE IP UNSPECIFIED, DOING NOTHING FOR THIS EXTENSION\n";} + } + else + { + $stmtA = "UPDATE phones set phone_ip='$NEW_IPaddr[$i]' where server_ip='$server_ip' and extension='$PTextensions[$i]'"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + } + + $i++; + ### sleep for 10 hundredths of a second + usleep(1*100*1000); + } + + +$t->buffer_empty; +@hangup = $t->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); +$t->buffer_empty; +$ok = $t->close; + +############# END SIP SECTION ################################################ + + + +############# BEGIN IAX2 SECTION ################################################ +if($DB){print "\n\niax2 EXTENSIONS:\n";} + +@PTextensions=@MT; @PTphone_ips=@MT; +$stmtA = "SELECT extension,phone_ip from phones where server_ip='$server_ip' and protocol='IAX2'"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PTextensions[$rec_count] = "$aryA[0]"; + $PTphone_ips[$rec_count] = "$aryA[1]"; + $rec_count++; + } + $sthA->finish(); + + +### connect to asterisk manager through telnet +$t = new Net::Telnet (Port => 5038, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '',); +#$fh = $t->dump_log("$telnetlog"); # uncomment for telnet log + if (length($ASTmgrUSERNAMEsend) > 3) {$telnet_login = $ASTmgrUSERNAMEsend;} + else {$telnet_login = $ASTmgrUSERNAME;} + +$t->open("$telnet_host"); +$t->waitfor('/[01]\n$/'); # print login +$t->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); +$t->waitfor('/Authentication accepted/'); # waitfor auth accepted + + +$i=0; +foreach(@PTextensions) + { + @list_channels=@MT; + $t->buffer_empty; + @list_channels = $t->cmd(String => "Action: Command\nCommand: iax2 show peer $PTextensions[$i]\n\nAction: Ping\n\n", Prompt => '/Response: Pong.*/'); + + $j=0; + foreach(@list_channels) + { # Addr->IP : 10.10.14.25 Port 5060 + if ($list_channels[$j] =~ / Addr->IP : /) + { + $NEW_IPaddr[$i] = "$list_channels[$j]"; + $NEW_IPaddr[$i] =~ s/ Addr->IP : | Port .*|\n|\r|\t//g; + } + + $j++; + } + + if($DB){print "Phone IP- $PTextensions[$i] NEW:|$NEW_IPaddr[$i]| OLD:|$PTphone_ips[$i]| ";} + if ( ($NEW_IPaddr[$i] =~ /$PTphone_ips[$i]/) && (length($NEW_IPaddr[$i]) eq length($PTphone_ips[$i])) ) + { + if($DB){print "PHONE IP UNCHANGED, DOING NOTHING FOR THIS EXTENSION\n";} + } + else + { + if ($NEW_IPaddr[$i] =~ /Unspecified/) + { + if($DB){print "PHONE IP UNSPECIFIED, DOING NOTHING FOR THIS EXTENSION\n";} + } + else + { + $stmtA = "UPDATE phones set phone_ip='$NEW_IPaddr[$i]' where server_ip='$server_ip' and extension='$PTextensions[$i]'"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + } + + $i++; + ### sleep for 10 hundredths of a second + usleep(1*100*1000); + } + + +$t->buffer_empty; +@hangup = $t->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); +$t->buffer_empty; +$ok = $t->close; +############# END IAX2 SECTION ################################################ + + + + + +$dbhA->disconnect(); + +if($DB){print "DONE... Exiting...\n";} + +exit; + + + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_reset_mysql_vars.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_reset_mysql_vars.pl new file mode 100644 index 00000000..1aaf33b9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_reset_mysql_vars.pl @@ -0,0 +1,123 @@ +#!/usr/bin/perl +# +# AST_reset_mysql_vars.pl version 2.0.5 +# +# !!! DO NOT RUN THIS WHILE THERE ARE ACTIVE CALLS ON THE ASTERISK SERVER !!! +# +# DESCRIPTION: +# clears out mysql records for this server +# +# It is recommended that you run this program on the local Asterisk machine +# You should place a command to run this in the /etc/rc.d/rc.local file +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 60717-1237 - changed to DBI by Marin Blu +# 60717-1536 - changed to use /etc/astguiclient.conf for configs +# + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + + $stmtA = "UPDATE conferences set extension='' where server_ip='$server_ip';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; + print " - conferences reset\n"; + + $stmtA = "UPDATE vicidial_conferences set extension='' where server_ip='$server_ip';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; + print " - vicidial_conferences reset\n"; + +# $stmtA = "UPDATE vicidial_manager set status='DEAD' where server_ip='$server_ip' and status='NEW';"; +# if($DB){print STDERR "\n|$stmtA|\n";} +# $dbhA->query($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; +# print " - vicidial_manager queue reset\n"; + + $stmtA = "DELETE from vicidial_manager where server_ip='$server_ip';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; + print " - vicidial_manager delete\n"; + + $stmtA = "DELETE from vicidial_auto_calls where server_ip='$server_ip';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; + print " - vicidial_auto_calls delete\n"; + + $stmtA = "DELETE from vicidial_live_agents where server_ip='$server_ip';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; + print " - vicidial_live_agents delete\n"; + + $stmtA = "DELETE from vicidial_users where full_name='5555';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; + print " - vicidial__users delete\n"; + + $stmtA = "DELETE from vicidial_campaign_server_stats where server_ip='$server_ip';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; + print " - vicidial_campaign_server_stats delete\n"; + + $stmtA = "DELETE from vicidial_hopper where user LIKE \"%_$server_ip\";"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query: |$stmtA|\n"; + print " - vicidial_hopper delete\n"; + + $dbhA->disconnect(); + + +exit; + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_send_action_child.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_send_action_child.pl new file mode 100644 index 00000000..25b233c9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_send_action_child.pl @@ -0,0 +1,330 @@ +#!/usr/bin/perl +# +# AST_send_action_child.pl version 2.0.5 *DBI-version +# +# Part of the Asterisk Central Queue System (ACQS) +# +# DESCRIPTION: +# This script is spawned every time an action is to be executed by the main +# AST_manager_send.pl script and sends actions blindly to the Asterisk manager +# +# SUMMARY: +# This program was designed as the blind-send part of the ACQS. It's job is to +# be spawned by the AST_manager_send.pl script lookup the record in the MySQL DB +# to be executed. connect to the manager interface, send the action and logoff +# then exit. +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 50810-1547 - Added database server variable definitions lookup +# 50823-1527 - Altered commandline debug options with debug printouts +# 50902-1032 - Changed default logging to fulllog +# 60718-0909 - changed to DBI by Marin Blu +# 60718-1024 - changed to use /etc/astguiclient.conf for configs +# 60814-1720 - added option for no logging to file +# 60817-1244 - removed all DB calls and config file open to reduce footprint +# 61004-1728 - added ability to parse volume control and lookup meetme IDs +# 61220-1720 - optimize and clean code, lc. +# 61221-1942 - additional modification to structure, lc. +# 80418-0927 - added man_id to logging output for better tracking, raised sleep times +# + +$|++; +use strict; +use Getopt::Long; +use Net::Telnet; + +### Initialize date/time vars ### +my $secX = time(); #Start time + +### Initialize run-time variables ### +my ($CLOhelp, $SYSLOG, $PATHlogs, $telnet_host, $telnet_port, $ASTmgrUSERNAME); +my ($ASTmgrSECRET, $ASTmgrUSERNAMEsend, $man_id, $action, $cmd_line_b, $cmd_line_c); +my ($cmd_line_d, $cmd_line_e, $cmd_line_f, $cmd_line_g, $cmd_line_h); +my ($cmd_line_i, $cmd_line_j, $cmd_line_k, $DB, $DBX); +my $FULL_LOG = 1; + +### begin parsing run-time options ### +if (scalar @ARGV) { + GetOptions('help!' => \$CLOhelp, + 'SYSLOG!' => \$SYSLOG, + 'PATHlogs=s' => \$PATHlogs, + 'telnet_host=s' => \$telnet_host, + 'telnet_port=s' => \$telnet_port, + 'ASTmgrUSERNAME=s' => \$ASTmgrUSERNAME, + 'ASTmgrSECRET=s' => \$ASTmgrSECRET, + 'ASTmgrUSERNAMEsend=s' => \$ASTmgrUSERNAMEsend, + 'man_id=s' => \$man_id, + 'action=s' => \$action, + 'cmd_line_b=s' => \$cmd_line_b, + 'cmd_line_c=s' => \$cmd_line_c, + 'cmd_line_d=s' => \$cmd_line_d, + 'cmd_line_e=s' => \$cmd_line_e, + 'cmd_line_f=s' => \$cmd_line_f, + 'cmd_line_g=s' => \$cmd_line_g, + 'cmd_line_h=s' => \$cmd_line_h, + 'cmd_line_i=s' => \$cmd_line_i, + 'cmd_line_j=s' => \$cmd_line_j, + 'cmd_line_k=s' => \$cmd_line_k, + 'debug!' => \$DB, + 'debugX!' => \$DBX, + 'fulllog!' => \$FULL_LOG); + + $DB = 1 if ($DBX); + if ($DB) { + print "\n----- DEBUGGING -----\n\n"; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n" if ($DBX); + print " SYSLOG: $SYSLOG\n" if ($SYSLOG); + print " telnet_host: $telnet_host\n" if ($telnet_host); + print " telnet_port: $telnet_port\n" if ($telnet_port); + print " ASTmgrUSERNAME: $ASTmgrUSERNAME\n" if ($ASTmgrUSERNAME); + print " ASTmgrSECRET: $ASTmgrSECRET\n" if ($ASTmgrSECRET); + print " ASTmgrUSERNAMEsend: $ASTmgrUSERNAMEsend\n" if ($ASTmgrUSERNAMEsend); + print " man_id: $man_id\n" if ($man_id); + print " cmd_line_b: $cmd_line_b\n" if ($cmd_line_b); + print " cmd_line_c: $cmd_line_c\n" if ($cmd_line_c); + print " cmd_line_d: $cmd_line_d\n" if ($cmd_line_d); + print " cmd_line_e: $cmd_line_e\n" if ($cmd_line_e); + print " cmd_line_f: $cmd_line_f\n" if ($cmd_line_f); + print " cmd_line_g: $cmd_line_g\n" if ($cmd_line_g); + print " cmd_line_h: $cmd_line_h\n" if ($cmd_line_h); + print " cmd_line_i: $cmd_line_i\n" if ($cmd_line_i); + print " cmd_line_j: $cmd_line_j\n" if ($cmd_line_j); + print " cmd_line_k: $cmd_line_k\n" if ($cmd_line_k); + print "\n"; + } + if ($CLOhelp) { + print "allowed run time options:\n"; + print " [--help] = this help screen\n"; + print " [--SYSLOG] = whether to log actions or not\n"; + print "required flags:\n"; + print " [--PATHlogs] = logs directory path\n"; + print " [--telnet_host] = IP address to connect to Asterisk Manager\n"; + print " [--telnet_port] = port to connect to Asterisk Manager\n"; + print " [--ASTmgrUSERNAME] = username for Asterisk Manager login\n"; + print " [--ASTmgrSECRET] = secret or password for Asterisk Manager login\n"; + print " [--ASTmgrUSERNAMEsend] = username specific for sending actions for Asterisk Manager login\n"; + print " [--man_id] = ID of the action in the vicidial_manager table\n"; + print " [--action] = type of manager action to send\n"; + print " [--cmd_line_X] = lines to send to Manager after action\n"; + print " X replaced with b-k (10 lines)\n"; + print "\n"; + print "You may prefix an option with 'no' to disable it.\n"; + print " ie. --noSYSLOG or --noFULLLOG\n"; + + exit 0; + } +} + +if ($action) { + $PATHlogs =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_b =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_c =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_d =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_e =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_f =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_g =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_h =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_i =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_j =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + $cmd_line_k =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg; + if ($DB) { + print " SYSLOG: $SYSLOG\n" if ($SYSLOG); + print " telnet_host: $telnet_host\n" if ($telnet_host); + print " telnet_port: $telnet_port\n" if ($telnet_port); + print " ASTmgrUSERNAME: $ASTmgrUSERNAME\n" if ($ASTmgrUSERNAME); + print " ASTmgrSECRET: $ASTmgrSECRET\n" if ($ASTmgrSECRET); + print " ASTmgrUSERNAMEsend: $ASTmgrUSERNAMEsend\n" if ($ASTmgrUSERNAMEsend); + print " man_id: $man_id\n" if ($man_id); + print " cmd_line_b: $cmd_line_b\n" if ($cmd_line_b); + print " cmd_line_c: $cmd_line_c\n" if ($cmd_line_c); + print " cmd_line_d: $cmd_line_d\n" if ($cmd_line_d); + print " cmd_line_e: $cmd_line_e\n" if ($cmd_line_e); + print " cmd_line_f: $cmd_line_f\n" if ($cmd_line_f); + print " cmd_line_g: $cmd_line_g\n" if ($cmd_line_g); + print " cmd_line_h: $cmd_line_h\n" if ($cmd_line_h); + print " cmd_line_i: $cmd_line_i\n" if ($cmd_line_i); + print " cmd_line_j: $cmd_line_j\n" if ($cmd_line_j); + print " cmd_line_k: $cmd_line_k\n" if ($cmd_line_k); + } + + $telnet_port = '5038' if (!$telnet_port); + + ### connect to asterisk manager through telnet + my $tn = new Net::Telnet (Port => $telnet_port, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '', + Errmode => "return"); + #$fh = $tn->dump_log("$PATHlogs/SAC_telnet_log.txt"); # uncomment for telnet log + my $telnet_login; + if ($ASTmgrUSERNAMEsend) { + $telnet_login = $ASTmgrUSERNAMEsend; + } else { + $telnet_login = $ASTmgrUSERNAME; + } + $tn->open($telnet_host); + $tn->waitfor('/[01]\n$/'); # print login + $tn->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); + $tn->waitfor('/Authentication accepted/'); # waitfor auth accepted + + $tn->buffer_empty; + + if ($cmd_line_b =~ /XXYYXXYYXXYYXX/) { + # Action: Command + # Command: meetme list 8600051 + # + # Response: Follows + # Privilege: Command + # User #: 03 261 261iax Channel: IAX2/261iax-13 (unmonitored) + # 1 users in that conference. + # --END COMMAND-- + my $meetme_command = "Action: Command\nCommand: meetme list $cmd_line_k\n\n"; + print nowDate() . "|$SYSLOG|\n$meetme_command"; + + my $participant; + my @list_meetme = $tn->cmd(String => $meetme_command, + Prompt => '/--END COMMAND-.*/'); + foreach my $meetme (@list_meetme) { + if ($meetme =~ /$cmd_line_j /i) { + $meetme =~ s/User \#: //gi; + my @participants = split(/ /, $meetme); + $participant = ($participants[0] + 0); + } + # print "$participant|$cmd_line_j|$meetme"; + } + $cmd_line_b =~ s/XXYYXXYYXXYYXX/$participant/gi if ($participant > 0); + $cmd_line_j = ''; + $cmd_line_k = ''; + } + + my $originate_command; + $originate_command .= "Action: $action\n"; + #if (length($cmd_line_b)>3) {$originate_command .= "$cmd_line_b\n";} + $originate_command .= $cmd_line_b . "\n" if ($cmd_line_b); + $originate_command .= $cmd_line_c . "\n" if ($cmd_line_c); + $originate_command .= $cmd_line_d . "\n" if ($cmd_line_d); + $originate_command .= $cmd_line_e . "\n" if ($cmd_line_e); + $originate_command .= $cmd_line_f . "\n" if ($cmd_line_f); + $originate_command .= $cmd_line_g . "\n" if ($cmd_line_g); + $originate_command .= $cmd_line_h . "\n" if ($cmd_line_h); + $originate_command .= $cmd_line_i . "\n" if ($cmd_line_i); + $originate_command .= $cmd_line_j . "\n" if ($cmd_line_j); + $originate_command .= $cmd_line_k . "\n" if ($cmd_line_k); + $originate_command .= "\n"; + + + print nowDate() . "|$SYSLOG|$man_id|\n$originate_command"; + my $event_string = $man_id . "|0|" . $SYSLOG . "|"; + $event_string .= "\n" . $originate_command; + + eventLogger($PATHlogs,'full',$event_string) if ($FULL_LOG and $SYSLOG); + + my @list_channels = $tn->cmd(String => $originate_command, + Prompt => '/.*/'); + + sleep(4); + + my $data1; # ? Useless ? + if ($FULL_LOG and $SYSLOG) { + my $event_string = $man_id . "|1|" . $data1 . "|"; + foreach my $channel (@list_channels) { + $event_string .= $channel; + } + my $read_input_buf = $tn->get(Errmode => "return", + Timeout => 1); + $event_string .= $read_input_buf; + eventLogger($PATHlogs,'full',$event_string); + } + + $tn->buffer_empty; + #@hangup = $tn->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); + $tn->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); + sleep(3); + + if ($FULL_LOG and $SYSLOG) { + my $event_string = $man_id . "|2|" . $data1 . "|"; + foreach my $channel (@list_channels) { + $event_string .= $channel; + } + my $read_input_buf = $tn->get(Errmode => "return", + Timeout => 1); + $event_string .= $read_input_buf; + eventLogger($PATHlogs,'full',$event_string); + } + + $tn->buffer_empty; + $tn->close; +} + +my $secZ = time(); +my $script_time = ($secZ - $secX); +print "DONE execute time: $script_time seconds\n"; + +exit 0; +# Program ends. + + +### Start of subs. + +# eventLogger usage: +# eventLgger($LogFileDir, $LogType, $EventString); +# Requires: +# $LogFilePath : Directory where log files are. +# $LogType : Type of log, ie process, send, launch, full +# $EventString : String to record in log. +sub eventLogger { + my ($path,$type,$string) = @_; + open(LOG, ">>" . $path . "/action_" . $type . "." . logDate()) + || die "Can't open " . $path . "/action_" . $type . "." . + logDate() . ": " . $! . "\n"; + print LOG nowDate() . "|" . $string . "|\n"; + close(LOG); +} + +# getTime usage: +# getTime($SecondsSinceEpoch); +# Options: +# $SecondsSinceEpoch : Request time in seconds, defaults to current date/time. +# Returns: +# ($sec, $min, $hour. $day, $mon, $year) +sub getTime { + my ($tms) = @_; + $tms = time unless ($tms); + my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime($tms); + $year += 1900; + $mon++; + $mon = "0" . $mon if ($mon < 10); + $mday = "0" . $mday if ($mday < 10); + $min = "0" . $min if ($min < 10); + $sec = "0" . $sec if ($sec < 10); + return ($sec,$min,$hour,$mday,$mon,$year); +} + +# nowDate usage: +# nowDate($SecondsSinceEpoch); +# Options: +# $SecondsSinceEpoch : Request time in seconds, defaults to current date/time. +# Returns: +# scalar date/time string (MySQL formatted) ie "2007-01-01 00:00:00" +sub nowDate { + my ($tms) = @_; + my($sec,$min,$hour,$mday,$mon,$year) = getTime($tms); + return $year.'-'.$mon.'-'.$mday.' '.$hour.':'.$min.':'.$sec; +} + +# logDate usage: +# logDate($SecondsSinceEpoch); +# Options: +# $SecondsSinceEpoch : Request time in seconds, defaults to current date/time. +# Returns: +# scalar date string ie "2007-01-01" +sub logDate { + my ($tms) = @_; + my($sec,$min,$hour,$mday,$mon,$year) = getTime($tms); + return $year . '-' . $mon . '-' . $mday; +} + +### End of subs + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_sourceID_summary_export.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_sourceID_summary_export.pl new file mode 100644 index 00000000..d1dafa3f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_sourceID_summary_export.pl @@ -0,0 +1,349 @@ +#!/usr/bin/perl +# +# AST_sourceID_summary_export.pl version: 2.2.0 +# +# This script is designed to gather stats for all leads by source_id and +# post them to a directory +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 70905-1409 - First version +# 71005-0054 - Altered script to use astguiclient.conf for settings +# 90620-0856 - Formatting fixes +# + +$txt = '.txt'; +$US = '_'; +$MT[0] = ''; + +# Default FTP account variables +$VARREPORT_host = '10.0.0.4'; +$VARREPORT_user = 'cron'; +$VARREPORT_pass = 'test'; +$VARREPORT_port = '21'; +$VARREPORT_dir = 'REPORTS'; + +# default CLI values +$sale_statuses = 'SALE-UPSELL'; +$ni_statuses = 'NI'; +$np_statuses = 'NP'; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--sale-statuses=XXX-XXY] = Statuses that are deemed to be \"Sales\". Default SALE\n"; + print " [--NI-statuses=XXX-XXY] = Statuses that are deemed to be \"Not Interested\". Default NI\n"; + print " [--NP-statuses=XXX-XXY] = Statuses that are deemed to be \"No Pitch\". Default NP\n"; + print " [--ignore-lists=XXX-XXY] = lists that should be ignored in summary\n"; + print " [--ftp-transfer] = Send results file by FTP to another server\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debugging messages\n"; + print " [--debugX] = Super debugging messages\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG MODE -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG MODE -----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /--sale-statuses=/i) + { + @data_in = split(/--sale-statuses=/,$args); + $sale_statuses = $data_in[1]; + $sale_statuses =~ s/ .*$//gi; + } + if ($args =~ /--NI-statuses=/) + { + @data_in = split(/--NI-statuses=/,$args); + $ni_statuses = $data_in[1]; + $ni_statuses =~ s/ .*$//gi; + } + if ($args =~ /--NP-statuses=/) + { + @data_in = split(/--NP-statuses=/,$args); + $np_statuses = $data_in[1]; + $np_statuses =~ s/ .*$//gi; + } + if ($args =~ /--ignore-lists=/) + { + @data_in = split(/--ignore-lists=/,$args); + $ignore_lists = $data_in[1]; + $ignore_lists =~ s/ .*$//gi; + } + if ($args =~ /-ftp-transfer/i) + { + if (!$Q) + {print "\n----- FTP TRANSFER MODE -----\n\n";} + $ftp_transfer=1; + } + if ($args =~ /--test/i) + { + $T=1; $TEST=1; + print "\n----- TESTING -----\n\n"; + } + } + } +else + { + print "no command line options set, using defaults.\n"; + } +### end parsing run-time options ### + + +$secX = time(); +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; + +# # rerun override - Use this to override the day manually +# $year='2007'; +# $mon='5'; +# $mday='18'; + +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +$timestamp = "$year-$mon-$mday $hour:$min:$sec"; +$filedate = "$year$mon$mday"; +$ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; +$shipdate = "$year-$mon-$mday"; +$datestamp = "$year/$mon/$mday $hour:$min"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_dir/) && ($CLIREPORT_dir < 1) ) + {$VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi;} + + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + $sale_statusesSQL = $sale_statuses; + $sale_statusesSQL =~ s/-/','/gi; + $sale_statusesSQL = "'$sale_statusesSQL'"; + $ni_statusesSQL = $ni_statuses; + $ni_statusesSQL =~ s/-/','/gi; + $ni_statusesSQL = "'$ni_statusesSQL'"; + $np_statusesSQL = $np_statuses; + $np_statusesSQL =~ s/-/','/gi; + $np_statusesSQL = "'$np_statusesSQL'"; + $ignore_listsSQL = $ignore_lists; + $ignore_listsSQL =~ s/-/','/gi; + $ignore_listsSQL = "'$ignore_listsSQL'"; + +if (!$Q) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- AST_sourceID_summary_export.pl --\n\n"; + print "This program is designed to generate a summary report of sourceIDs for VICIDIAL outbound-only campaign and post them to a file. \n"; + print "\n"; + print "Sale Statuses: $sale_statuses $sale_statusesSQL\n"; + print "NI Statuses: $ni_statuses $ni_statusesSQL\n"; + print "NP Statuses: $np_statuses $np_statusesSQL\n"; + print "Ignore Lists: $ignore_lists $ignore_listsSQL\n"; + print "\n"; + } + +$outfile = "SOURCEID_SUMMARY$filedate$txt"; + +### open the X out file for writing ### +open(out, ">$PATHweb/vicidial/server_reports/$outfile") + || die "Can't open $outfile: $!\n"; + +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$w=0; + + +########################################################################### +########### SALES TOTAL IN SYSTEM BY SOURCE_ID vicidial_list ###### +########################################################################### +$stmtA = "select source_id,count(*) from vicidial_list where status IN($sale_statusesSQL) and list_id NOT IN($ignore_listsSQL) group by source_id order by source_id;"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $source_id = $aryA[0]; + $count = $aryA[1]; + + print out "ALL_SALES|$source_id|$count\r\n"; + if ($DBX) {print "$rec_count|ALL_SALES|$source_id|$count|\n";} + $rec_count++; $w++; + } +$sthA->finish(); + + +########################################################################### +########### NI TOTAL IN SYSTEM BY SOURCE_ID vicidial_list ###### +########################################################################### +$stmtA = "select source_id,count(*) from vicidial_list where status IN($ni_statusesSQL) and list_id NOT IN($ignore_listsSQL) group by source_id order by source_id;"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $source_id = $aryA[0]; + $count = $aryA[1]; + + print out "NOT_INTR|$source_id|$count\r\n"; + if ($DBX) {print "$rec_count|NOT_INTR|$source_id|$count|\n";} + $rec_count++; $w++; + } +$sthA->finish(); + + +########################################################################### +########### NP TOTAL IN SYSTEM BY SOURCE_ID vicidial_list ###### +########################################################################### +$stmtA = "select source_id,count(*) from vicidial_list where status IN($np_statusesSQL) and list_id NOT IN($ignore_listsSQL) group by source_id order by source_id;"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $source_id = $aryA[0]; + $count = $aryA[1]; + + print out "B6_NO_PTCH|$source_id|$count\r\n"; + if ($DBX) {print "$rec_count|B6_NO_PTCH|$source_id|$count|\n";} + $rec_count++; $w++; + } +$sthA->finish(); + + +########################################################################### +########### ALL TOTAL IN SYSTEM BY SOURCE_ID vicidial_list ###### +########################################################################### +$stmtA = "select source_id,count(*) from vicidial_list where list_id NOT IN($ignore_listsSQL) group by source_id order by source_id;"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $source_id = $aryA[0]; + $count = $aryA[1]; + + print out "RECD_COUNT|$source_id|$count\r\n"; + if ($DBX) {print "$rec_count|RECD_COUNT|$source_id|$count|\n";} + $rec_count++; $w++; + } +$sthA->finish(); + +close(out); + + +if ($ftp_transfer > 0) + { + use Net::FTP; + + if (!$Q) {print "Sending File Over FTP: $outfile\n";} + $ftp = Net::FTP->new("$VARREPORT_host", Port => $VARREPORT_port); + $ftp->login("$VARREPORT_user","$VARREPORT_pass"); + $ftp->cwd("$VARREPORT_dir"); + $ftp->put("$PATHweb/vicidial/server_reports/$outfile", "$outfile"); + $ftp->quit; + } + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if (!$Q) {print "SOURCEID EXPORT FOR $timestamp: $outfile\n";} +if (!$Q) {print "TOTAL RECORDS IN FILE: $w\n";} +if (!$Q) {print "script execution time in seconds: $secZ minutes: $secZm\n";} + +exit; + + diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_twoday_tables_control.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_twoday_tables_control.pl new file mode 100644 index 00000000..90afd01c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_twoday_tables_control.pl @@ -0,0 +1,313 @@ +#!/usr/bin/perl +# +# AST_twoday_tables_control.pl version 2.2.0 +# +# DESCRIPTION: +# populates the twoday_ log tables during the day, and purges them at night +# +# crontab entry example: +# two-day processes +#0,5,10,15,20,25,30,35,40,45,50,55 0,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * /usr/share/astguiclient/AST_twoday_tables_control.pl --insert +#31 2 * * * /usr/share/astguiclient/AST_twoday_tables_control.pl --purge +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 90729-0951 - First build +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--help] = this screen\n"; + print " [-t] = test\n"; + print " [-debug] = verbose debug messages\n"; + print " [-q] = quiet\n"; + print " [-insert] = run inserts, grab records in the past hour\n"; + print " [-purge] = purge records more than 24 hours old\n"; + print "\n"; + exit; + } + else + { + if ($args =~ /-q/i) + { + $Q=1; + } + if ($args =~ /-insert/i) + { + $insert=1; + } + if ($args =~ /-purge/i) + { + $purge=1; + } + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag, set to 0 for no debug messages, On an active system this will generate hundreds of lines of output per minute + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + if ($Q < 1) {print "no command line options set\n";} + } +### end parsing run-time options ### + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $filedate = "$year$mon$mday-$hour$min$sec"; + $ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + +use Time::Local; + +$secX = time(); + +$HHtarget = ($secX - 7200); # 2 hours +($Hsec,$Hmin,$Hhour,$Hmday,$Hmon,$Hyear,$Hwday,$Hyday,$Hisdst) = localtime($HHtarget); +$Hyear = ($Hyear + 1900); +$Hmon++; +if ($Hmon < 10) {$Hmon = "0$Hmon";} +if ($Hmday < 10) {$Hmday = "0$Hmday";} +if ($Hhour < 10) {$Hhour = "0$Hhour";} +if ($Hmin < 10) {$Hmin = "0$Hmin";} +if ($Hsec < 10) {$Hsec = "0$Hsec";} +$HHSQLdate = "$Hyear-$Hmon-$Hmday $Hhour:$Hmin:$Hsec"; + +$YDtarget = ($secX - 86400); # 24 hours +($Ysec,$Ymin,$Yhour,$Ymday,$Ymon,$Yyear,$Ywday,$Yyday,$Yisdst) = localtime($YDtarget); +$Yyear = ($Yyear + 1900); +$Ymon++; +if ($Ymon < 10) {$Ymon = "0$Ymon";} +if ($Ymday < 10) {$Ymday = "0$Ymday";} +if ($Yhour < 10) {$Yhour = "0$Yhour";} +if ($Ymin < 10) {$Ymin = "0$Ymin";} +if ($Ysec < 10) {$Ysec = "0$Ysec";} +$YDSQLdate = "$Yyear-$Ymon-$Ymday $Yhour:$Ymin:$Ysec"; + + +################################ INSERT PROCESS +if ($insert > 0) + { + $stmtA = "INSERT IGNORE INTO twoday_call_log SELECT * from call_log where start_time > '$HHSQLdate' ON DUPLICATE KEY UPDATE end_time=VALUES(end_time),end_epoch=VALUES(end_epoch),length_in_sec=VALUES(length_in_sec),length_in_min=VALUES(length_in_min);"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "INSERT IGNORE INTO twoday_vicidial_log SELECT * from vicidial_log where call_date > '$HHSQLdate' ON DUPLICATE KEY UPDATE end_epoch=VALUES(end_epoch),length_in_sec=VALUES(length_in_sec),status=VALUES(status),user=VALUES(user),comments=VALUES(comments),user_group=VALUES(user_group),term_reason=VALUES(term_reason),alt_dial=VALUES(alt_dial);"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "INSERT IGNORE INTO twoday_vicidial_closer_log SELECT * from vicidial_closer_log where call_date > '$HHSQLdate' ON DUPLICATE KEY UPDATE list_id=VALUES(list_id),campaign_id=VALUES(campaign_id),end_epoch=VALUES(end_epoch),length_in_sec=VALUES(length_in_sec),status=VALUES(status),user=VALUES(user),comments=VALUES(comments),queue_seconds=VALUES(queue_seconds),user_group=VALUES(user_group),xfercallid=VALUES(xfercallid),term_reason=VALUES(term_reason),uniqueid=VALUES(uniqueid),agent_only=VALUES(agent_only);"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "INSERT IGNORE INTO twoday_recording_log SELECT * from recording_log where start_time > '$HHSQLdate' ON DUPLICATE KEY UPDATE end_time=VALUES(end_time),end_epoch=VALUES(end_epoch),length_in_sec=VALUES(length_in_sec),length_in_min=VALUES(length_in_min),filename=VALUES(filename),location=VALUES(location),lead_id=VALUES(lead_id),user=VALUES(user),vicidial_id=VALUES(vicidial_id);"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "INSERT IGNORE INTO twoday_vicidial_xfer_log SELECT * from vicidial_xfer_log where call_date > '$HHSQLdate' ON DUPLICATE KEY UPDATE list_id=VALUES(list_id),campaign_id=VALUES(campaign_id),call_date=VALUES(call_date),user=VALUES(user),closer=VALUES(closer);"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "INSERT IGNORE INTO twoday_vicidial_agent_log SELECT * from vicidial_agent_log where event_time > '$HHSQLdate' ON DUPLICATE KEY UPDATE lead_id=VALUES(lead_id),campaign_id=VALUES(campaign_id),pause_epoch=VALUES(pause_epoch),pause_sec=VALUES(pause_sec),wait_epoch=VALUES(wait_epoch),wait_sec=VALUES(wait_sec),talk_epoch=VALUES(talk_epoch),talk_sec=VALUES(talk_sec),dispo_epoch=VALUES(dispo_epoch),dispo_sec=VALUES(dispo_sec),status=VALUES(status),user_group=VALUES(user_group),comments=VALUES(comments),sub_status=VALUES(sub_status);"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + } + + +################################ PURGE PROCESS +if ($purge > 0) + { + ##### PURGE RECORDS OLDER THAN 24 HOURS + $stmtA = "DELETE FROM twoday_call_log where start_time < '$YDSQLdate';"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "DELETE FROM twoday_vicidial_log where call_date < '$YDSQLdate';"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "DELETE FROM twoday_vicidial_closer_log where call_date < '$YDSQLdate';"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "DELETE FROM twoday_recording_log where start_time < '$YDSQLdate';"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "DELETE FROM twoday_vicidial_xfer_log where call_date < '$YDSQLdate';"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "DELETE FROM twoday_vicidial_agent_log where event_time < '$YDSQLdate';"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + + ##### OPTIMIZE TABLES + $stmtA = "OPTIMIZE TABLE twoday_call_log;"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "OPTIMIZE TABLE twoday_vicidial_log;"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "OPTIMIZE TABLE twoday_vicidial_closer_log;"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "OPTIMIZE TABLE twoday_recording_log;"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "OPTIMIZE TABLE twoday_vicidial_xfer_log;"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + $stmtA = "OPTIMIZE TABLE twoday_vicidial_agent_log;"; + if (!$T) + { + $affected_rows = $dbhA->do($stmtA); + if($DB){print "\n|$affected_rows records changed|$stmtA|\n";} + } + + } + + + +$dbhA->disconnect(); + +if ($DB > 0) + { + $secY=time(); + $seconds = ($secY - $secX); + print "Finished, $seconds seconds\n"; + } + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_update.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_update.pl new file mode 100644 index 00000000..734e27f4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_update.pl @@ -0,0 +1,1301 @@ +#!/usr/bin/perl +# +# AST_update.pl version 2.0.5 *DBI-version* +# +# DESCRIPTION: +# uses the Asterisk Manager interface and Net::MySQL to update the live_channels +# tables and verify the parked_channels table in the asterisk MySQL database +# This near-live-status of Zap/SIP/Local/IAX/DAHDI channels list is used by clients +# +# SUMMARY: +# This program was designed for people using the Asterisk PBX with Digium +# Zaptel telco cards and SIP VOIP hardphones or softphones as extensions, it +# could be adapted to other functions, but I designed it specifically for +# Zap/IAX2/SIP/DAHDI users. The program will run on UNIX or Win32 command line +# providing the following criteria are met: +# +# Win32 - ActiveState Perl 5.8.0 +# UNIX - Gnome or KDE with Tk/Tcl and perl Tk/Tcl modules loaded +# Both - Net::MySQL, Net::Telnet and Time::HiRes perl modules loaded +# +# For the client program to work, this program must always be running +# +# For this program to work you need to have the "asterisk" MySQL database +# created and create the tables listed in the MySQL_AST_CREATE_tables.sql file, +# also make sure that the machine running this program has select/insert/update/delete +# access to that database +# +# In your Asterisk server setup you also need to have several things activated +# and defined. See the CONF_Asterisk.txt file for details +# +# It is recommended that you run this program on the local Asterisk machine +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# version changes: +# 41228-1659 - modified to compensate for manager output response hiccups +# 50107-1611 - modified to add Zap and IAX2 clients (differentiate from trunks) +# 50117-1537 - modified to add MySQL port ($DB_port) var from conf file +# 50303-0958 - modified to compensate for Zap manager output hiccups +# 50406-1320 - added channel_data to live_channels table for more flexibility +# also added Zap/IAX client check every 100 loop instead of only once +# 50509-1047 - added collection of server_performance data with SYSPERF flag +# 50621-1307 - modified to allow for SIP trunks +# 50810-1601 - Added database server variable definitions lookup +# 50823-1625 - Altered Debug vars and initial CVS/1.2 support for changed output +# 50824-1606 - Altered CVS/1.2 support for "show channels concise" output +# 50829-1134 - Added processor percentage usage to stat collection +# 51229-1355 - Added ability to take ! as delimited for 1.2 show channels concise +# 60117-1202 - Changed IAX2 client phone channel to reflect change to '-' iteration +# 60411-1032 - Fixed bug in test section that caused crash with ** in extension +# 60807-1605 - Changed to DBI +# 60808-1005 - changed to use /etc/astguiclient.conf for configs +# 60808-1500 - Fixed another bug in that caused crash with ** in extension +# 60814-1523 - SYSLOG and SYSPERF looked up from database, dynamic settings +# 60926-1601 - validate proper binutil locations for performance gathering +# 61130-1008 - defaults show_channels_format to 1 for non 1.0 version Asterisk +# 61227-1659 - added "core show channels concise" for Asterisk 1.4 compatibility +# 80111-1850 - fixed server_updater record missing bug +# 90307-1932 - Added servers table stats updating, reformatted code to match standard +# 90604-1127 - Added support for DAHDI channels +# + +$build = '90604-1127'; + +# constants +$SYSPERF=0; # system performance logging to MySQL server_performance table every 5 seconds +$SYSPERF_rec=0; # is dial-time recording turned on +$SYSLOG=0; # set to 1 to write log to a file +$DB=0; # Debug flag, set to 1 for debug messages WARNING LOTS OF OUTPUT!!! +$DBX=0; # Debug flag, set to 1 for debug messages WARNING LOTS OF OUTPUT!!! +$US='__'; +$AMP='@'; +$MT[0]=''; +$cpuUSERprev=0; +$cpuSYSTprev=0; +$cpuIDLEprev=0; + +# find proper locations of bin utils + +# cat +$bincat = "/usr/bin/cat"; +if (-e "/usr/local/bin/cat") + {$bincat = "/usr/local/bin/cat";} +else + { + if (-e "/bin/cat") + {$bincat = "/bin/cat";} + } + +# free +$binfree = "/usr/bin/free"; +if (-e "/usr/local/bin/free") + {$binfree = "/usr/local/bin/free";} +else + { + if (-e "/bin/free") + {$binfree = "/bin/free";} + } + +# ps +$binps = "/bin/ps"; +if (-e "/usr/local/bin/ps") + {$binps = "/usr/local/bin/ps";} +else + { + if (-e "/usr/bin/ps") + {$binps = "/usr/bin/ps";} + } + +### find df binary +$dfbin = ''; +if ( -e ('/bin/df')) {$dfbin = '/bin/df';} +else + { + if ( -e ('/usr/bin/df')) {$dfbin = '/usr/bin/df';} + else + { + if ( -e ('/usr/local/bin/df')) {$dfbin = '/usr/local/bin/df';} + else + { + print "Can't find df binary! Exiting...\n"; + } + } + } + + +# DB table variables for testing + $parked_channels = 'parked_channels'; + $live_channels = 'live_channels'; + $live_sip_channels = 'live_sip_channels'; + $server_updater = 'server_updater'; +# $parked_channels = 'TEST_parked_channels'; +# $live_channels = 'TEST_live_channels'; +# $live_sip_channels = 'TEST_live_sip_channels'; +# $server_updater = 'TEST_server_updater'; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-sysperf] = system performance logging\n [-sysperfdebug] = system performance debug output\n [-debug] = verbose debug messages\n [-debugX] = Extra-verbose debug messages\n\n"; + exit; + } + else + { + if ($args =~ /-sysperf/i) + { + $SYSPERF=1; # System performance logging flag + } + if ($args =~ /-sysperfdebug/i) + { + $SYSPERFDB=1; # prints system performance data out to STDOUT + } + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /--debugX/i) + { + $DB=1; + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\nBUILD: $build\n"; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + # print "no command line options set\n"; + } +### end parsing run-time options ### + + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + &get_time_now; + +if (!$UPLOGfile) {$UPLOGfile = "$PATHlogs/update.$year-$mon-$mday";} +if (!$VARDB_port) {$VARDB_port='3306';} + + $event_string='PROGRAM STARTED||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||'; + &event_logger; + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Net::Telnet (); +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + $event_string='LOGGED INTO MYSQL SERVER ON 1 CONNECTION|'; + &event_logger; + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context,asterisk_version,sys_perf_log,vd_server_logs FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBtelnet_host = "$aryA[0]"; + $DBtelnet_port = "$aryA[1]"; + $DBASTmgrUSERNAME = "$aryA[2]"; + $DBASTmgrSECRET = "$aryA[3]"; + $DBASTmgrUSERNAMEupdate = "$aryA[4]"; + $DBASTmgrUSERNAMElisten = "$aryA[5]"; + $DBASTmgrUSERNAMEsend = "$aryA[6]"; + $DBmax_vicidial_trunks = "$aryA[7]"; + $DBanswer_transfer_agent= "$aryA[8]"; + $DBSERVER_GMT = "$aryA[9]"; + $DBext_context = "$aryA[10]"; + $DBasterisk_version = "$aryA[11]"; + $DBsys_perf_log = "$aryA[12]"; + $DBvd_server_logs = "$aryA[13]"; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBsys_perf_log =~ /Y/) {$SYSPERF = '1';} + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + $rec_count++; + } +$sthA->finish(); + +$show_channels_format = 1; +if ($AST_ver =~ /^1\.0/i) {$show_channels_format = 0;} +if ($AST_ver =~ /^1\.4/i) {$show_channels_format = 2;} +print STDERR "SHOW CHANNELS format: $show_channels_format\n"; + + +##### Check for a server_updater record, and if not present, insert one +$SUrec=0; +$stmtA = "SELECT count(*) FROM $server_updater where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +@aryA = $sthA->fetchrow_array; +$SUrec = $aryA[0]; +$sthA->finish(); + if($DB){print STDERR "\n|$SUrec|$stmtA|\n";} + +if ($SUrec < 1) + { + &get_time_now; + + $stmtU = "INSERT INTO $server_updater set server_ip='$server_ip', last_update='$now_date';"; + if($DB){print STDERR "\n|$stmtU|\n";} + $affected_rows = $dbhA->do($stmtU); + } + + +##### LOOK FOR ZAP/DAHDI CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS +print STDERR "LOOKING FOR Zap/DAHDI clients assigned to this server:\n"; +$Zap_client_count=0; +$Zap_client_list='|'; +$stmtA = "SELECT extension FROM phones where protocol = 'Zap' and server_ip='$server_ip'"; +if($DB){print STDERR "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + print STDERR $aryA[0],"\n"; + $Zap_client_list .= "$aryA[0]|"; + $Zap_client_count++; + $rec_count++; + } +$sthA->finish(); + +##### LOOK FOR IAX2 CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS +print STDERR "LOOKING FOR IAX2 clients assigned to this server:\n"; +$IAX2_client_count=0; +$IAX2_client_list='|'; +$stmtA = "SELECT extension FROM phones where protocol = 'IAX2' and server_ip='$server_ip'"; +if($DB){print STDERR "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + print STDERR $aryA[0],"\n"; + $IAX2_client_list .= "$aryA[0]|"; + if ($aryA[0] !~ /\@/) + {$IAX2_client_list .= "$aryA[0]$AMP$aryA[0]|";} + else + { + $IAX_user = $aryA[0]; + $IAX_user =~ s/\@.*$//gi; + $IAX2_client_list .= "$IAX_user|"; + } + $IAX2_client_count++; + $rec_count++; + } +$sthA->finish(); + + +##### LOOK FOR SIP CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS +print STDERR "LOOKING FOR SIP clients assigned to this server:\n"; +$SIP_client_count=0; +$SIP_client_list='|'; +$stmtA = "SELECT extension FROM phones where protocol = 'SIP' and server_ip='$server_ip'"; +if($DB){print STDERR "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + print STDERR $aryA[0],"\n"; + $SIP_client_list .= "$aryA[0]|"; + if ($aryA[0] !~ /\@/) + {$SIP_client_list .= "$aryA[0]$AMP$aryA[0]|";} + else + { + $SIP_user = $aryA[0]; + $SIP_user =~ s/\@.*$//gi; + $SIP_client_list .= "$SIP_user|"; + } + $SIP_client_count++; + $rec_count++; + } +$sthA->finish(); + +print STDERR "Zap Clients: $Zap_client_list\n"; +print STDERR "IAX2 Clients: $IAX2_client_list\n"; +print STDERR "SIP Clients: $SIP_client_list\n"; + +$one_day_interval = 12; # 2 hour loops for one day +while($one_day_interval > 0) + { + $event_string="STARTING NEW MANAGER TELNET CONNECTION||ATTEMPT|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + + if (!$telnet_port) {$telnet_port = '5038';} + + ### connect to asterisk manager through telnet + $t = new Net::Telnet (Port => $telnet_port, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '',); + #$fh = $t->dump_log("$telnetlog"); # uncomment for telnet log + if (length($ASTmgrUSERNAMEupdate) > 3) {$telnet_login = $ASTmgrUSERNAMEupdate;} + else {$telnet_login = $ASTmgrUSERNAME;} + $t->open("$telnet_host"); + $t->waitfor('/[01]\n$/'); # print login + $t->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); + $t->waitfor('/Authentication accepted/'); # waitfor auth accepted + + $event_string="STARTING NEW MANAGER TELNET CONNECTION|$telnet_login|CONFIRMED CONNECTION|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + + $gather_stats_first=1; + $endless_loop=5769999; # 30 days minutes at .45 seconds per loop + + while($endless_loop > 0) + { + @DBchannels=@MT; + @DBsips=@MT; + @list_channels=@MT; + @test_channels=@MT; + + &get_current_channels; + + &validate_parked_channels; + + $t->buffer_empty; + if ($show_channels_format < 1) + { + @list_channels = $t->cmd(String => "Action: Command\nCommand: show channels\n\n", Prompt => '/--END COMMAND-.*/'); + } + if ($show_channels_format == 1) + { + @list_channels = $t->cmd(String => "Action: Command\nCommand: show channels concise\n\n", Prompt => '/--END COMMAND-.*/'); + } + if ($show_channels_format > 1) + { + @list_channels = $t->cmd(String => "Action: Command\nCommand: core show channels concise\n\n", Prompt => '/--END COMMAND-.*/'); + } + + ##### TEST CHANNELS ZAP/IAX2/Local TO SEE IF THERE WAS A LARGE HICCUP IN OUTPUT FROM PREVIOUS OUTPUT + @test_channels=@list_channels; + $test_zap_count=0; + $test_iax_count=0; + $test_local_count=0; + $test_sip_count=0; + $s=0; + foreach(@test_channels) + { + chomp($test_channels[$s]); + if($DBX){print "$s|$test_channels[$s]\n";} + $test_channels[$s] =~ s/Congestion\s+\(Empty\)/ SIP\/CONGEST/gi; + $test_channels[$s] =~ s/\(Outgoing Line\)|\(None\)/SIP\/ring/gi; + $test_channels[$s] =~ s/\(Empty\)/SIP\/internal/gi; + if (!$show_channels_format) + { + $test_channels[$s] =~ s/^\s*|\s*$//gi; + $test_channels[$s] =~ s/\(.*\)//gi; + } + else + { + $EXcount = 0; + $EXcount = @{[$test_channels[$s] =~ /\!/g]}; + if ($EXcount > 10) + { + @test_chan_12 = split(/\!/, $test_channels[$s]); + } + else + { + @test_chan_12 = split(/:/, $test_channels[$s]); + } + # @test_chan_12 = split(/:/, $test_channels[$s]); + if (length($test_chan_12[6])<2) {$test_chan_12[6] = 'SIP/ring';} + $test_channels[$s] = "$test_chan_12[0] $test_chan_12[6]"; + } + if ($test_channels[$s] =~ /^Zap|^IAX2|^SIP|^Local|^DAHDI/) + { + if ($test_channels[$s] =~ /^(\S+)\s+.+\s+(\S+)$/) + { + $channel = $1; + $extension = $2; + if ($show_channels_format) + {$extension =~ s/^.*\(|\).*$//gi;} + $extension =~ s/^SIP\/|-\S+$//gi; + $extension =~ s/\|.*//gi; + if ($channel =~ /^SIP/) {$test_sip_count++;} + if ($channel =~ /^Local/) {$test_local_count++;} + if ($IAX2_client_count) + { + $channel_match=$channel; + $channel_match =~ s/\/\d+$|-\d+$//gi; + $channel_match =~ s/^IAX2\///gi; + $channel_match =~ s/\*/\\\*/gi; + if ($IAX2_client_list =~ /\|$channel_match\|/i) {$test_iax_count++;} + } + if ($Zap_client_count) + { + $channel_match=$channel; + $channel_match =~ s/^Zap\/|^DAHDI\///gi; + $channel_match =~ s/\*/\\\*/gi; + if ($Zap_client_list =~ /\|$channel_match\|/i) {$test_zap_count++;} + } + } + } + $s++; + } + + + + # $DB_live_lines = ($#DBchannels + $#DBsips); + $DB_live_lines = ($channel_counter + $sip_counter); + if ( (!$DB_live_lines) or ($#list_channels < 2) ) + {$PERCENT_static = 0;} + else + { + $PERCENT_static = ( ($#list_channels / $DB_live_lines) * 100); + $PERCENT_static = sprintf("%6.2f", $PERCENT_static); + } + + if ( (!$test_zap_count) or ($zap_client_counter < 2) ) + {$PERCENT_ZC_static = 0;} + else + { + $PERCENT_ZC_static = ( ($test_zap_count / $zap_client_counter) * 100); + $PERCENT_ZC_static = sprintf("%6.2f", $PERCENT_ZC_static); + } + + if ( (!$test_iax_count) or ($iax_client_counter < 2) ) + {$PERCENT_IC_static = 0;} + else + { + $PERCENT_IC_static = ( ($test_iax_count / $iax_client_counter) * 100); + $PERCENT_IC_static = sprintf("%6.2f", $PERCENT_IC_static); + } + + if ( (!$test_local_count) or ($local_client_counter < 2) ) + {$PERCENT_LC_static = 0;} + else + { + $PERCENT_LC_static = ( ($test_local_count / $local_client_counter) * 100); + $PERCENT_LC_static = sprintf("%6.2f", $PERCENT_LC_static); + } + + if ( (!$test_sip_count) or ($sip_client_counter < 2) ) + {$PERCENT_SC_static = 0;} + else + { + $PERCENT_SC_static = ( ($test_sip_count / $sip_client_counter) * 100); + $PERCENT_SC_static = sprintf("%6.2f", $PERCENT_SC_static); + } + + if ($endless_loop =~ /0$/) + {print "-$now_date $PERCENT_static $#list_channels $#DBchannels:$channel_counter $#DBsips:$sip_counter $PERCENT_ZC_static|$test_zap_count:$zap_client_counter $PERCENT_IC_static|$test_iax_count:$iax_client_counter $PERCENT_LC_static|$test_local_count:$local_client_counter $PERCENT_SC_static|$test_sip_count:$sip_client_counter\n";} + + if ( ( ($PERCENT_static < 10) && ( ($channel_counter > 3) or ($sip_counter > 4) ) ) or + ( ($PERCENT_static < 20) && ( ($channel_counter > 10) or ($sip_counter > 10) ) ) or + ( ($PERCENT_static < 30) && ( ($channel_counter > 20) or ($sip_counter > 20) ) ) or + ( ($PERCENT_static < 40) && ( ($channel_counter > 30) or ($sip_counter > 30) ) ) or + ( ($PERCENT_static < 50) && ( ($channel_counter > 40) or ($sip_counter > 40) ) ) or + ( ($PERCENT_ZC_static < 20) && ( $zap_client_counter > 3 ) ) or + ( ($PERCENT_ZC_static < 40) && ( $zap_client_counter > 9 ) ) or + ( ($PERCENT_IC_static < 20) && ( $iax_client_counter > 3 ) ) or + ( ($PERCENT_IC_static < 40) && ( $iax_client_counter > 9 ) ) or + ( ($PERCENT_SC_static < 20) && ( $sip_client_counter > 3 ) ) or + ( ($PERCENT_SC_static < 40) && ( $sip_client_counter > 9 ) ) ) + { + $UD_bad_grab++; + $event_string="------ UPDATER BAD GRAB!!! UBGcount: $UD_bad_grab\n $PERCENT_static $#list_channels $#DBchannels:$channel_counter $#DBsips:$sip_counter $PERCENT_ZC_static|$test_zap_count:$zap_client_counter $PERCENT_IC_static|$test_iax_count:$iax_client_counter $PERCENT_LC_static|$test_local_count:$local_client_counter $PERCENT_SC_static|$test_sip_count:$sip_client_counter\n"; + print "$event_string\n"; + &event_logger; + if ($UD_bad_grab > 20) {$UD_bad_grab=0;} + } + else + { + $UD_bad_grab=0; + if ( ( ($endless_loop =~ /0$/) && ($SYSPERF) ) || ($endless_loop =~ /00$/) || ($gather_stats_first >= 1) ) + { + $cpuUSERcent=0; $cpuSYSTcent=0; $cpuIDLEcent=0; + ### get processor usage seconds ### + # cpu 924841 211725 270473 6961811 + @cpuUSE = `$bincat /proc/stat`; + if ($cpuUSE[0] =~ /cpu\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) + { + $cpuUSER = ($1 + $2); + $cpuSYST = $3; + $cpuIDLE = $4; + $cpuUSERdiff = ($cpuUSER - $cpuUSERprev); + $cpuSYSTdiff = ($cpuSYST - $cpuSYSTprev); + $cpuIDLEdiff = ($cpuIDLE - $cpuIDLEprev); + $cpuIDLEdiffTOTAL = (($cpuUSERdiff + $cpuSYSTdiff) + $cpuIDLEdiff); + if ($cpuIDLEdiffTOTAL > 0) + { + $cpuUSERcent = sprintf("%.0f", (($cpuUSERdiff / $cpuIDLEdiffTOTAL) * 100)); + $cpuSYSTcent = sprintf("%.0f", (($cpuSYSTdiff / $cpuIDLEdiffTOTAL) * 100)); + $cpuIDLEcent = sprintf("%.0f", (($cpuIDLEdiff / $cpuIDLEdiffTOTAL) * 100)); + } + $cpuUSERprev=$cpuUSER; + $cpuSYSTprev=$cpuSYST; + $cpuIDLEprev=$cpuIDLE; + } + + ### get system load ### + $serverLOAD = `$bincat /proc/loadavg`; + $serverLOAD =~ s/ .*//gi; + $serverLOAD =~ s/\D//gi; + + ### get memory usage ### + @GRABserverMEMORY = `$binfree -m -t`; + if ($GRABserverMEMORY[1] =~ /Mem:\s+(\d+)\s+(\d+)\s+(\d+)\s+/) + { + $MEMused = $2; + $MEMfree = $3; + } + ### get number of system processes ### + @GRABserverPROCESSES = `$binps -A --no-heading`; + $serverPROCESSES = $#GRABserverPROCESSES; + + if ($SYSPERF_rec) {$recording_count = ($test_local_count / 2)} + else {$recording_count=0;} + + if ($SYSPERF) + { + if ($SYSPERFDB) + {print "$serverLOAD $MEMfree $MEMused $serverPROCESSES $#list_channels $cpuUSERcent $cpuSYSTcent $cpuIDLEcent\n";} + + $stmtA = "INSERT INTO server_performance (start_time,server_ip,sysload,freeram,usedram,processes,channels_total,trunks_total,clients_total,clients_zap,clients_iax,clients_local,clients_sip,live_recordings,cpu_user_percent,cpu_system_percent,cpu_idle_percent) values('$now_date','$server_ip','$serverLOAD','$MEMfree','$MEMused','$serverPROCESSES','$#list_channels','$channel_counter','$sip_counter','$test_zap_count','$test_iax_count','$test_local_count','$test_sip_count','$recording_count','$cpuUSERcent','$cpuSYSTcent','$cpuIDLEcent')"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA) or die "Couldn't execute query: |$stmtA|\n"; + } + if ( ($endless_loop =~ /00$/) || ($gather_stats_first >= 1) ) + { + ### get disk space usage ### + $disk_usage=''; + @serverDISK = `$dfbin -B 1048576`; + #Filesystem 1M-blocks Used Available Use% Mounted on + #/dev/sda1 30030 6867 21613 0% / + + $gather_stats_first=0; + $channels_total=0; + if ($#list_channels > 0) + {$channels_total = ($#list_channels - 1);} + $ct=0; $ct_PCT=0; + foreach(@serverDISK) + { + if ($serverDISK[$ct] =~ /(\d+\%)/) + { + $ct_PCT++; + $usage = $1; + $usage =~ s/\%//gi; + $disk_usage .= "$ct_PCT $usage|"; + } + $ct++; + } + + $stmtA = "UPDATE servers SET sysload='$serverLOAD',channels_total='$channels_total',cpu_idle_percent='$cpuIDLEcent',disk_usage='$disk_usage' where server_ip='$server_ip';"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA) or die "Couldn't execute query: |$stmtA|\n"; + } + } + } + + if ($endless_loop =~ /00$/) + { + ##### LOOK FOR ZAP CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR Zap clients assigned to this server:\n"; + $Zap_client_count=0; + $Zap_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'Zap' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + print STDERR $aryA[0],"\n"; + $Zap_client_list .= "$aryA[0]|"; + $Zap_client_count++; + $rec_count++; + } + $sthA->finish(); + + ##### LOOK FOR IAX2 CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR IAX2 clients assigned to this server:\n"; + $IAX2_client_count=0; + $IAX2_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'IAX2' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + print STDERR $aryA[0],"\n"; + $IAX2_client_list .= "$aryA[0]|"; + if ($aryA[0] !~ /\@/) + {$IAX2_client_list .= "$aryA[0]$AMP$aryA[0]|";} + else + { + $IAX_user = $aryA[0]; + $IAX_user =~ s/\@.*$//gi; + $IAX2_client_list .= "$IAX_user|"; + } + $IAX2_client_count++; + $rec_count++; + } + $sthA->finish(); + + ##### LOOK FOR SIP CLIENTS AS DEFINED IN THE phones TABLE SO THEY ARE NOT MISLABELED AS TRUNKS + print STDERR "LOOKING FOR SIP clients assigned to this server:\n"; + $SIP_client_count=0; + $SIP_client_list='|'; + $stmtA = "SELECT extension FROM phones where protocol = 'SIP' and server_ip='$server_ip'"; + if($DB){print STDERR "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + print STDERR $aryA[0],"\n"; + $SIP_client_list .= "$aryA[0]|"; + if ($aryA[0] !~ /\@/) + {$SIP_client_list .= "$aryA[0]$AMP$aryA[0]|";} + else + { + $SIP_user = $aryA[0]; + $SIP_user =~ s/\@.*$//gi; + $SIP_client_list .= "$SIP_user|"; + } + $SIP_client_count++; + $rec_count++; + } + $sthA->finish(); + + print STDERR "Zap Clients: $Zap_client_list\n"; + print STDERR "IAX2 Clients: $IAX2_client_list\n"; + print STDERR "SIP Clients: $SIP_client_list\n"; + ### Grab Server values from the database + $stmtA = "SELECT sys_perf_log,vd_server_logs FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBsys_perf_log = "$aryA[0]"; + $DBvd_server_logs = "$aryA[1]"; + if ($DBsys_perf_log =~ /Y/) {$SYSPERF = '1';} + else {$SYSPERF = '0';} + if ($DBvd_server_logs =~ /Y/) {$SYSLOG = '1';} + else {$SYSLOG = '0';} + $rec_count++; + } + $sthA->finish(); + if ($SYSPERFDB) + {print "SYSPERF RELOAD: $DBsys_perf_log:$SYSPERF|$DBvd_server_logs:$SYSLOG\n";} + } + + @list_chan_12=@MT; + $EXcount = 0; + $EXcount = @{[$list_channels[2] =~ /\!/g]}; + if ($EXcount > 10) + { + @list_chan_12 = split(/\!/, $list_channels[2]); + } + else + { + @list_chan_12 = split(/:/, $list_channels[2]); + } + if( ($DB) && ($show_channels_format) ) + {print "concise: $#list_chan_12 loop: $endless_loop\n";} + if ( ( ( ($list_channels[1] =~ /State Appl\./) or ($list_channels[2] =~ /State Appl\.|Application\(Data\)/) or ($list_channels[3] =~ /State Appl\.|Application\(Data\)/) ) || ($#list_chan_12 > 8) ) && (!$UD_bad_grab) ) + { + + $c=0; + if($DB){print "lines: $#list_channels\n";} + if($DB){print "DBchn: $#DBchannels\n";} + if($DB){print "DBsip: $#DBsips\n";} + foreach(@list_channels) + { + # $DBchannels =~ s/^\|//g; + + chomp($list_channels[$c]); + if( ($DB) or ($UD_bad_grab) ){print "-|$c|$list_channels[$c]|\n";} + $list_channels[$c] =~ s/Congestion\s+\(Empty\)/ SIP\/CONGEST/gi; + $list_channels[$c] =~ s/\(Outgoing Line\)|\(None\)/SIP\/ring/gi; + $list_channels[$c] =~ s/\(Empty\)/SIP\/internal/gi; + if (!$show_channels_format) + { + $list_channels[$c] =~ s/^\s*|\s*$//gi; + $list_channels[$c] =~ s/\(.*\)//gi; + } + else + { + @list_chan_12=@MT; + if ($EXcount > 10) + { + @list_chan_12 = split(/\!/, $list_channels[$c]); + } + else + { + @list_chan_12 = split(/:/, $list_channels[$c]); + } + if ($DBX) {print "EXcount: $EXcount\n";} + if (length($list_chan_12[6])<2) {$list_chan_12[6] = 'SIP/ring';} + $list_channels[$c] = "$list_chan_12[0] $list_chan_12[6]"; + } + $list_SIP[$c] = $list_channels[$c]; + if( ($DB) or ($UD_bad_grab) ){print "+|$c|$list_channels[$c]|\n\n";} + + ########## PARSE EACH LINE TO DETERMINE WHETHER IT IS TRUNK OR CLIENT AND PUT IN APPROPRIATE TABLE + if ($list_channels[$c] =~ /^Zap|^IAX2|^SIP|^Local|^DAHDI/) + { + if ($list_channels[$c] =~ /^(\S+)\s+.+\s+(\S+)$/) + { + $line_type = ''; + $channel = $1; + $extension = $2; + $channel_data = $extension; + if ($show_channels_format) + { + $extension =~ s/^.*\(|\).*$//gi; + #### new data in 1.2 for future use + # SIP/cc160-7b91:default:917274514920:3:Up:Dial:Zap/g2/17274514920|30|o:cc160::3:9:Zap/25-1 + # Zap/30-1:demo:010*010*010*012*8600091:1:Up:Dial:IAX2/TESTast2:test@10.10.10.12:4569/8600051|25|o:::3:123:IAX2/TESTast2-29 + # Zap/9-1:demo:990009*CL_UMGCOF_L**6317906**9545541833*13678*:2:Up:Dial:Zap/r3/90009*CL_UMGCOF_L**6317906**9545541833*13678*|120|o:::3:334:Zap/82-1 + # $channel = $list_chan_12[0]; + # $channel_data = $list_chan_12[0]; + # $context = $list_chan_12[1]; + # $dialed = $list_chan_12[2]; + # $priority = $list_chan_12[3]; + # $state = $list_chan_12[4]; + # $extension = $list_chan_12[6]; + # $callerid = $list_chan_12[7]; + # $duration = $list_chan_12[10]; + # $bridged = $list_chan_12[11]; + } + $extension =~ s/^SIP\/|-\S+$//gi; + $extension =~ s/\|.*//gi; + $QRYchannel = "$channel$US$extension"; + + if( ($DB) or ($UD_bad_grab) ){print "channel: |$channel|\n";} + if( ($DB) or ($UD_bad_grab) ){print "extension: |$extension|\n";} + if( ($DB) or ($UD_bad_grab) ){print "QRYchannel:|$QRYchannel|\n";} + + if ($channel =~ /^SIP|^Zap|^IAX2|^DAHDI/) {$line_type = 'TRUNK';} + if ($channel =~ /^Local/) {$line_type = 'CLIENT';} + if ($IAX2_client_count) + { + $channel_match=$channel; + $channel_match =~ s/\/\d+$|-\d+$//gi; + $channel_match =~ s/^IAX2\///gi; + $channel_match =~ s/\*/\\\*/gi; + # print "checking for IAX2 client: |$channel_match|\n"; + if ($IAX2_client_list =~ /\|$channel_match\|/i) {$line_type = 'CLIENT';} + } + if ($Zap_client_count) + { + $channel_match=$channel; + $channel_match =~ s/^Zap\/|^DAHDI\///gi; + $channel_match =~ s/\*/\\\*/gi; + # print "checking for Zap client: |$channel_match|\n"; + if ($Zap_client_list =~ /\|$channel_match\|/i) {$line_type = 'CLIENT';} + } + if ($SIP_client_count) + { + $channel_match=$channel; + $channel_match =~ s/-\S+$//gi; + $channel_match =~ s/^SIP\///gi; + $channel_match =~ s/\*/\\\*/gi; + # print "checking for SIP client: |$channel_match|\n"; + if ($SIP_client_list =~ /\|$channel_match\|/i) {$line_type = 'CLIENT';} + } + + if ($line_type eq 'TRUNK') + { + if( ($DB) or ($UD_bad_grab) ){print "current channels: $#DBchannels\n";} + + $k=0; + $channel_in_DB=0; + foreach(@DBchannels) + { + if ( ($DBchannels[$k] eq "$QRYchannel") && (!$channel_in_DB) ) + { + $DBchannels[$k] = ''; + $channel_in_DB++; + } + if( ($DB) or ($UD_bad_grab) ){print "DB $k|$DBchannels[$k]| |";} + $k++; + } + + if ( (!$channel_in_DB) && (length($QRYchannel)>3) ) + { + $stmtA = "INSERT INTO $live_channels (channel,server_ip,extension,channel_data) values('$channel','$server_ip','$extension','$channel_data')"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA) or die "Couldn't execute query: |$stmtA|\n"; + } + } + + if ($line_type eq 'CLIENT') + { + if( ($DB) or ($UD_bad_grab) ){print "current sips: $#DBsips\n";} + + $k=0; + $sipchan_in_DB=0; + foreach(@DBsips) + { + if ( ($DBsips[$k] eq "$QRYchannel") && (!$sipchan_in_DB) ) + { + $DBsips[$k] = ''; + $sipchan_in_DB++; + } + if( ($DB) or ($UD_bad_grab) ){print "DB $k|$DBsips[$k]| |";} + $k++; + } + + if ( (!$sipchan_in_DB) && (length($QRYchannel)>3) ) + { + $stmtA = "INSERT INTO $live_sip_channels (channel,server_ip,extension,channel_data) values('$channel','$server_ip','$extension','$channel_data')"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA) or die "Couldn't execute query: |$stmtA|\n"; + } + } + } + } + + $c++; + } + if($DB){print "COUNT: $c|$#list_channels|$endless_loop\n";} + + if ($#DBchannels >= 0) + { + $d=0; + foreach(@DBchannels) + { + if (length($DBchannels[$d])>4) + { + ($DELchannel, $DELextension) = split(/\_\_/, $DBchannels[$d]); + $stmtB = "DELETE FROM $live_channels where server_ip='$server_ip' and channel='$DELchannel' and extension='$DELextension' limit 1"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtB|\n";} + $affected_rows = $dbhA->do($stmtB); + } + $d++; + } + } + + if ($#DBsips >= 0) + { + $d=0; + foreach(@DBsips) + { + if (length($DBsips[$d])>4) + { + ($DELchannel, $DELextension) = split(/\_\_/, $DBsips[$d]); + $stmtB = "DELETE FROM $live_sip_channels where server_ip='$server_ip' and channel='$DELchannel' and extension='$DELextension' limit 1"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtB|\n";} + $affected_rows = $dbhA->do($stmtB); + } + $d++; + } + } + + ### sleep for 45 hundredths of a second + usleep(1*450*1000); + + $endless_loop--; + if($DB){print STDERR "\nloop counter: |$endless_loop|\n";} + + ### putting a blank file called "update.kill" in a directory will automatically safely kill this program + if (-e "$PATHhome/update.kill") + { + unlink("$PATHhome/update.kill"); + $endless_loop=0; + $one_day_interval=0; + print "\nPROCESS KILLED MANUALLY... EXITING\n\n" + } + + $bad_grabber_counter=0; + $no_channels_12_counter=0; + } + + else + { + if ( ($list_channels[1] !~ /Privilege: Command/) && ($show_channels_format) ) + { + $bad_grabber_counter++; + if($DB){print STDERR "\nbad grab, trying again\n";} + ### sleep for 20 hundredths of a second + usleep(1*200*1000); + + $event_string="BAD GRAB TRYING AGAIN|BAD_GRABS: $bad_grabber_counter|$endless_loop|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + + if ($bad_grabber_counter > 100) + { + $endless_loop=0; + $event_string="TOO MANY BAD GRABS, STARTING NEW CONNECTION|BAD_GRABS: $bad_grabber_counter|$endless_loop|ONE DAY INTERVAL:$one_day_interval|"; + &event_logger; + $bad_grabber_counter=0; + } + } + else + { + $no_channels_12_counter++; + $event_string="NO CHANNELS HERE|COUNTER: $no_channels_12_counter|$endless_loop|ONE DAY INTERVAL:$one_day_interval|$list_channels[1]"; + &event_logger; + + if($DBX) {print "*|EMPTY CHANNELS: $no_channels_12_counter|$#list_channels|$list_channels[1]";} + + $endless_loop--; + ### sleep for 40 hundredths of a second + usleep(1*400*1000); + if ($no_channels_12_counter == 3) + { + ### there are no channels, delete all from live_channels, live_sip_channels + $event_string="NO CHANNELS HERE|COUNTER: $no_channels_12_counter|$endless_loop|ONE DAY INTERVAL:$one_day_interval|$list_channels[1]"; + &event_logger; + $stmtB = "DELETE FROM $live_sip_channels where server_ip='$server_ip'"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtB|\n";} + $affected_rows = $dbhA->do($stmtB); + $stmtB = "DELETE FROM $live_channels where server_ip='$server_ip'"; + if( ($DB) or ($UD_bad_grab) ){print STDERR "\n|$stmtB|\n";} + $affected_rows = $dbhA->do($stmtB); + } + } + } + } + + + if($DB){print "DONE... Exiting... Goodbye... See you later... Not really, initiating next loop...\n";} + + $event_string='HANGING UP|'; + &event_logger; + + @hangup = $t->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); + + $ok = $t->close; + + $one_day_interval--; + } + +$event_string='CLOSING DB CONNECTION|'; +&event_logger; + + +$dbhA->disconnect(); + + +if($DB){print "DONE... Exiting... Goodbye... See you later... Really I mean it this time\n";} + + +exit; + + + + + + + +####################################################################### +# This subroutine simply grabs all active channel/extension combinations from +# the asterisk MySQL database to be compared to the Asterisk Manager results +####################################################################### +sub get_current_channels + { + $channel_counter=0; + $sip_counter=0; + $zap_client_counter=0; + $iax_client_counter=0; + $local_client_counter=0; + $sip_client_counter=0; + + if($DB){print STDERR "\n|SELECT channel,extension FROM $live_channels where server_ip = '$server_ip'|\n";} + + $stmtA = "SELECT channel,extension FROM $live_channels where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if($DB){print STDERR $aryA[0],"|", $aryA[1],"\n";} + $DBchannels[$channel_counter] = "$aryA[0]$US$aryA[1]"; + $channel_counter++; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "SELECT channel,extension FROM $live_sip_channels where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count_sip=0; + while ($sthArows > $rec_count_sip) + { + @aryA = $sthA->fetchrow_array; + if($DB){print STDERR $aryA[0],"|", $aryA[1],"\n";} + $DBsips[$sip_counter] = "$aryA[0]$US$aryA[1]"; + + if ($aryA[0] =~ /^Zap|^DAHDI/) {$zap_client_counter++;} + if ($aryA[0] =~ /^IAX/) {$iax_client_counter++;} + if ($aryA[0] =~ /^Local/) {$local_client_counter++;} + if ($aryA[0] =~ /^SIP/) {$sip_client_counter++;} + $sip_counter++; + $rec_count_sip++; + } + $sthA->finish(); + + &get_time_now; + + $stmtU = "UPDATE $server_updater set last_update='$now_date' where server_ip='$server_ip'"; + if($DB){print STDERR "\n|$stmtU|\n";} + $affected_rows = $dbhA->do($stmtU); + } + + + + + +####################################################################### +# The purpose of this subroutine is to make sure that the calls that are +# listed as parked in the parked_channels table are in fact live (to make +# sure the caller has not hung up) and if the channel is not live to delete +# the parked_channels entry for that specific parked channel entry +# +# Yes it does use two DB connections all by itself, I just did that for speed +# and ease of programming to be backward compatible with MySQL < 4.1 or else +# I would have used a delete with subselect and saved all of this bloated code +####################################################################### +sub validate_parked_channels + { + if (!$run_validate_parked_channels_now) + { + $parked_counter=0; + @ARchannel=@MT; @ARextension=@MT; @ARparked_time=@MT; @ARparked_time_UNIX=@MT; + $stmtA = "SELECT channel,extension,parked_time,UNIX_TIMESTAMP(parked_time) FROM $parked_channels where server_ip = '$server_ip' order by channel desc, parked_time desc;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PQchannel = $aryA[0]; + $PQextension = $aryA[1]; + $PQparked_time = $aryA[2]; + $PQparked_time_UNIX = $aryA[3]; + if($DB){print STDERR "\n|$PQchannel|$PQextension|$PQparked_time|$PQparked_time_UNIX|\n";} + + $dbhC = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + $AR=0; + $record_deleted=0; + foreach(@ARchannel) + { + if (@ARchannel[$AR] eq "$PQchannel") + { + if (@ARparked_time_UNIX[$AR] > $PQparked_time_UNIX) + { + if($DBX){print "Duplicate parked channel delete: |$PQchannel|$PQparked_time|\n";} + $stmtPQ = "DELETE FROM $parked_channels where server_ip='$server_ip' and channel='$PQchannel' and extension='$PQextension' and parked_time='$PQparked_time' limit 1"; + if($DB){print STDERR "\n|$stmtPQ|$$DEL_chan_park_counter|$DEL_chan_park_counter|\n\n";} + $affected_rows = $dbhC->do($stmtPQ); + + $DEL_chan_park_counter = "DEL$PQchannel$PQextension"; + $$DEL_chan_park_counter=0; + $record_deleted++; + } + + } + + $AR++; + } + + + + if (!$record_deleted) + { + $ARchannel[$rec_count] = $aryA[0]; + $ARextension[$rec_count] = $aryA[1]; + $ARparked_time[$rec_count] = $aryA[2]; + $ARparked_time_UNIX[$rec_count] = $aryA[3]; + + $dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + $event_string='LOGGED INTO MYSQL SERVER ON 2 CONNECTIONS TO VALIDATE PARKED CALLS|'; + &event_logger; + + $stmtB = "SELECT count(*) FROM $live_channels where server_ip='$server_ip' and channel='$PQchannel' and extension='$PQextension';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + $rec_countB=0; + while ($sthBrows > $rec_countB) + { + @aryB = $sthB->fetchrow_array; + $PQcount = $aryB[0]; + if($DB){print STDERR "\n|$PQcount|\n";} + + $rec_countB++; + } + $sthB->finish(); + + if ($PQcount < 1) + { + $DEL_chan_park_counter = "DEL$PQchannel$PQextension"; + $$DEL_chan_park_counter++; + if($DBX){print STDERR "Parked counter down|$$DEL_chan_park_counter|$DEL_chan_park_counter|\n";} + + ### if the parked channel doesn't exist 6 times then delete it from table + if ($$DEL_chan_park_counter > 5) + { + if($DBX){print " parked channel delete: |$PQchannel|$PQparked_time|\n";} + $stmtPQ = "DELETE FROM $parked_channels where server_ip='$server_ip' and channel='$PQchannel' and extension='$PQextension' limit 1"; + if($DB){print STDERR "\n|$stmtPQ|$$DEL_chan_park_counter|$DEL_chan_park_counter|\n\n";} + $affected_rows = $dbhC->do($stmtPQ); + + $ARchannel[$rec_count] = ''; + $ARextension[$rec_count] = ''; + $ARparked_time[$rec_count] = ''; + $ARparked_time_UNIX[$rec_count] = ''; + $$DEL_chan_park_counter=0; + } + } + else + { + $DEL_chan_park_counter = "DEL$PQchannel$PQextension"; + $$DEL_chan_park_counter=0; + } + + $event_string='CLOSING MYSQL CONNECTIONS OPENED TO VALIDATE PARKED CALLS|'; + &event_logger; + + $dbhB->disconnect(); + } + + $dbhC->disconnect(); + + $parked_counter++; + $rec_count++; + } + + $sthA->finish(); + + $run_validate_parked_channels_now=5; # set to run every five times the subroutine runs + } + + $run_validate_parked_channels_now--; + } + + + + + +################################################################################ +##### get the current date and time and epoch for logging call lengths and datetimes +sub get_time_now + { + ($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"; + } + + + + + +################################################################################ +##### open the log file for writing ### +sub event_logger + { + if ($SYSLOG) + { + open(Lout, ">>$UPLOGfile") + || die "Can't open $UPLOGfile: $!\n"; + print Lout "$now_date|$event_string|\n"; + close(Lout); + } + $event_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/bin/AST_vm_update.pl b/agc_2-X/branches/agc_2.2.0/bin/AST_vm_update.pl new file mode 100644 index 00000000..e1df04fb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/AST_vm_update.pl @@ -0,0 +1,309 @@ +#!/usr/bin/perl +# +# AST_vm_update.pl version 2.2.0 *DBI-version* +# +# DESCRIPTION: +# uses the Asterisk Manager interface to update the count of voicemail messages +# for each mailbox (in the phone and vicidial_voicemail tables) in the voicemail +# table list is used by client apps for voicemail notification +# +# If this script is run ever minute there is a theoretical limit of +# 1200 mailboxes that it can check due to the wait interval. If you have +# more than this either change the cron when this script is run or change the +# wait interval below +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# 50823-1422 - Added database server variable definitions lookup +# 50823-1452 - Added commandline arguments for debug at runtime +# 60717-1204 - Changed to DBI by Marin Blu +# 60715-2301 - Changed to use /etc/astguiclient.conf for configs +# 90919-1739 - Added other voicemail checking from vicidial_voicemail table +# + +# constants +$DB=0; # Debug flag, set to 0 for no debug messages per minute +$US='__'; +$MT[0]=''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } + } +else + { + # print "no command line options set\n"; + } +### end parsing run-time options ### + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use DBI; +use Net::Telnet (); + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +if ($DB) {print "|$stmtA|\n";} +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $DBtelnet_host = "$aryA[0]"; + $DBtelnet_port = "$aryA[1]"; + $DBASTmgrUSERNAME = "$aryA[2]"; + $DBASTmgrSECRET = "$aryA[3]"; + $DBASTmgrUSERNAMEupdate = "$aryA[4]"; + $DBASTmgrUSERNAMElisten = "$aryA[5]"; + $DBASTmgrUSERNAMEsend = "$aryA[6]"; + $DBmax_vicidial_trunks = "$aryA[7]"; + $DBanswer_transfer_agent= "$aryA[8]"; + $DBSERVER_GMT = "$aryA[9]"; + $DBext_context = "$aryA[10]"; + if ($DBtelnet_host) {$telnet_host = $DBtelnet_host;} + if ($DBtelnet_port) {$telnet_port = $DBtelnet_port;} + if ($DBASTmgrUSERNAME) {$ASTmgrUSERNAME = $DBASTmgrUSERNAME;} + if ($DBASTmgrSECRET) {$ASTmgrSECRET = $DBASTmgrSECRET;} + if ($DBASTmgrUSERNAMEupdate) {$ASTmgrUSERNAMEupdate = $DBASTmgrUSERNAMEupdate;} + if ($DBASTmgrUSERNAMElisten) {$ASTmgrUSERNAMElisten = $DBASTmgrUSERNAMElisten;} + if ($DBASTmgrUSERNAMEsend) {$ASTmgrUSERNAMEsend = $DBASTmgrUSERNAMEsend;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBext_context) {$ext_context = $DBext_context;} + } +$sthA->finish(); + +@PTextensions=@MT; @PTvoicemail_ids=@MT; @PTmessages=@MT; @PTold_messages=@MT; @NEW_messages=@MT; @OLD_messages=@MT; +$stmtA = "SELECT extension,voicemail_id,messages,old_messages from phones where server_ip='$server_ip'"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PTextensions[$rec_count] = "$aryA[0]"; + $PTvoicemail_ids[$rec_count] = "$aryA[1]"; + $PTmessages[$rec_count] = "$aryA[2]"; + $PTold_messages[$rec_count] = "$aryA[3]"; + $rec_count++; + } +$sthA->finish(); + + +### connect to asterisk manager through telnet +$t = new Net::Telnet (Port => 5038, + Prompt => '/.*[\$%#>] $/', + Output_record_separator => '',); +#$fh = $t->dump_log("$telnetlog"); # uncomment for telnet log +if (length($ASTmgrUSERNAMEsend) > 3) {$telnet_login = $ASTmgrUSERNAMEsend;} +else {$telnet_login = $ASTmgrUSERNAME;} + +$t->open("$telnet_host"); +$t->waitfor('/[01]\n$/'); # print login +$t->print("Action: Login\nUsername: $telnet_login\nSecret: $ASTmgrSECRET\n\n"); +$t->waitfor('/Authentication accepted/'); # waitfor auth accepted + + +$i=0; +foreach(@PTextensions) + { + @list_channels=@MT; + $t->buffer_empty; + @list_channels = $t->cmd(String => "Action: MailboxCount\nMailbox: $PTvoicemail_ids[$i]\n\nAction: Ping\n\n", Prompt => '/Response: Pong.*/'); + + $j=0; + foreach(@list_channels) + { + if ($list_channels[$j] =~ /Mailbox: $PTvoicemail_ids[$i]/) + { + $NEW_messages[$i] = "$list_channels[$j+1]"; + $NEW_messages[$i] =~ s/NewMessages: |\n//gi; + $OLD_messages[$i] = "$list_channels[$j+2]"; + $OLD_messages[$i] =~ s/OldMessages: |\n//gi; + } + + $j++; + } + + if($DB){print "MailboxCount- $PTvoicemail_ids[$i] NEW:|$NEW_messages[$i]| OLD:|$OLD_messages[$i]| ";} + if ( ($NEW_messages[$i] eq $PTmessages[$i]) && ($OLD_messages[$i] eq $PTold_messages[$i]) ) + { + if($DB){print "MESSAGE COUNT UNCHANGED, DOING NOTHING FOR THIS MAILBOX\n";} + } + else + { + $stmtA = "UPDATE phones set messages='$NEW_messages[$i]', old_messages='$OLD_messages[$i]' where server_ip='$server_ip' and extension='$PTextensions[$i]'"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + + $i++; + ### sleep for 5 hundredths of a second + usleep(1*50*1000); + } + + +##### BEGIN check vicidial_voicemail entries ##### + +### find out if this server is the active_voicemail_server +$stmtA = "SELECT count(*) from system_settings where active_voicemail_server='$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +if ($DB) {print "|$stmtA|\n";} +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $active_voicemail_server = $aryA[0]; + } +$sthA->finish(); + +if ($active_voicemail_server > 0) + { + if($DB){print "Active Voicemail Server, checking vicidial_voicemail boxes...\n";} + @PTvoicemail_ids=@MT; @PTmessages=@MT; @PTold_messages=@MT; @NEW_messages=@MT; @OLD_messages=@MT; + $stmtA = "SELECT voicemail_id,messages,old_messages from vicidial_voicemail where active='Y';"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $PTvoicemail_ids[$rec_count] = $aryA[0]; + $PTmessages[$rec_count] = $aryA[1]; + $PTold_messages[$rec_count] = $aryA[2]; + $rec_count++; + } + $sthA->finish(); + + $i=0; + foreach(@PTvoicemail_ids) + { + @list_channels=@MT; + $t->buffer_empty; + @list_channels = $t->cmd(String => "Action: MailboxCount\nMailbox: $PTvoicemail_ids[$i]\n\nAction: Ping\n\n", Prompt => '/Response: Pong.*/'); + + $j=0; + foreach(@list_channels) + { + if ($list_channels[$j] =~ /Mailbox: $PTvoicemail_ids[$i]/) + { + $NEW_messages[$i] = "$list_channels[$j+1]"; + $NEW_messages[$i] =~ s/NewMessages: |\n//gi; + $OLD_messages[$i] = "$list_channels[$j+2]"; + $OLD_messages[$i] =~ s/OldMessages: |\n//gi; + } + + $j++; + } + + if($DB){print "MailboxCount- $PTvoicemail_ids[$i] NEW:|$NEW_messages[$i]| OLD:|$OLD_messages[$i]| ";} + if ( ($NEW_messages[$i] eq $PTmessages[$i]) && ($OLD_messages[$i] eq $PTold_messages[$i]) ) + { + if($DB){print "MESSAGE COUNT UNCHANGED, DOING NOTHING FOR THIS MAILBOX\n";} + } + else + { + $stmtA = "UPDATE vicidial_voicemail set messages='$NEW_messages[$i]',old_messages='$OLD_messages[$i]' where voicemail_id='$PTvoicemail_ids[$i]';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + } + + $i++; + ### sleep for 5 hundredths of a second + usleep(1*50*1000); + } + + + } +##### END check vicidial_voicemail entries ##### + + + +$t->buffer_empty; +@hangup = $t->cmd(String => "Action: Logoff\n\n", Prompt => "/.*/"); +$t->buffer_empty; +$ok = $t->close; + + +$dbhA->disconnect(); + +if($DB){print "DONE... Exiting... Goodbye... See you later... \n";} + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/bin/FastAGI_log.pl b/agc_2-X/branches/agc_2.2.0/bin/FastAGI_log.pl new file mode 100644 index 00000000..bb2562d5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/FastAGI_log.pl @@ -0,0 +1,1431 @@ +#!/usr/bin/perl +# +# FastAGI_log.pl version 2.2.0 *DBI-version* +# +# Experimental Deamon using perl Net::Server that runs as FastAGI to reduce load +# replaces the following AGI scripts: +# - call_log.agi +# - call_logCID.agi +# - VD_hangup.agi +# +# This script needs to be running all of the time for AGI requests to work +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;outbound dialing: +# exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log) +# +# ;inbound calls: +# exten => 101,1,AGI(agi://127.0.0.1:4577/call_log) +# or +# exten => 101,1,AGI(agi://127.0.0.1:4577/call_log--fullCID--${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME}) +# +# +# ;all hangups: +# exten => h,1,DeadAGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) +# +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGELOG: +# 61010-1007 - First test build +# 70116-1619 - Added Auto Alt Dial code +# 70215-1258 - Added queue_log entry when deleting vac record +# 70808-1425 - Moved VD_hangup section to the call_log end stage to improve efficiency +# 71030-2039 - Added priority to hopper insertions +# 80224-0040 - Fixed bugs in vicidial_log updates +# 80430-0907 - Added term_reason to vicidial_log and vicidial_closer_log +# 80507-1138 - Fixed vicidial_closer_log CALLER hangups +# 80510-0414 - Fixed crossover logging bugs +# 80510-2058 - Fixed status override bug +# 80525-1040 - Added IVR vac status compatibility for inbound calls +# 80830-0035 - Added auto alt dialing for EXTERNAL leads for each lead +# 80909-0843 - Added support for campaign-specific DNC lists +# 81021-0306 - Added Local channel logging support and while-to-if changes +# 81026-1247 - Changed to allow for better remote agent calling +# 81029-0522 - Changed to disallow queue_log logging of IVR calls +# 90604-1044 - Fixed formatting, added DAHDI support, added carrier hangup code logging +# 90608-0316 - Changed hangup code dispos B and DC to AB and ADC to separate Agent dispos from Auto +# 90630-2253 - Added Sangoma CDP pre-Answer call processing +# 90814-0810 - Added extra logging for vicidial_log in some cases +# 90815-0750 - Fixed extra vicidial_log logging +# 91020-0055 - Fixed several bugs with auto-alt-dial, DNC and extended alt number dialing +# 91026-1148 - Added AREACODE DNC option +# 91213-1213 - Added queue_position to queue_log COMPLETE... and ABANDON records +# + +# defaults for PreFork +$VARfastagi_log_min_servers = '3'; +$VARfastagi_log_max_servers = '16'; +$VARfastagi_log_min_spare_servers = '2'; +$VARfastagi_log_max_spare_servers = '8'; +$VARfastagi_log_max_requests = '1000'; +$VARfastagi_log_checkfordead = '30'; +$VARfastagi_log_checkforwait = '60'; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_min_servers/) && ($CLIVARfastagi_log_min_servers < 1) ) + {$VARfastagi_log_min_servers = $line; $VARfastagi_log_min_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_servers/) && ($CLIVARfastagi_log_max_servers < 1) ) + {$VARfastagi_log_max_servers = $line; $VARfastagi_log_max_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_min_spare_servers/) && ($CLIVARfastagi_log_min_spare_servers < 1) ) + {$VARfastagi_log_min_spare_servers = $line; $VARfastagi_log_min_spare_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_spare_servers/) && ($CLIVARfastagi_log_max_spare_servers < 1) ) + {$VARfastagi_log_max_spare_servers = $line; $VARfastagi_log_max_spare_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_requests/) && ($CLIVARfastagi_log_max_requests < 1) ) + {$VARfastagi_log_max_requests = $line; $VARfastagi_log_max_requests =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_checkfordead/) && ($CLIVARfastagi_log_checkfordead < 1) ) + {$VARfastagi_log_checkfordead = $line; $VARfastagi_log_checkfordead =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_checkforwait/) && ($CLIVARfastagi_log_checkforwait < 1) ) + {$VARfastagi_log_checkforwait = $line; $VARfastagi_log_checkforwait =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +($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) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} + +if (!$VARDB_port) {$VARDB_port='3306';} + +$SERVERLOG = 'N'; +$log_level = '0'; + +use DBI; +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtB = "SELECT vd_server_logs FROM servers where server_ip = '$VARserver_ip';"; +$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; +$sthB->execute or die "executing: $stmtB ", $dbhB->errstr; +$sthBrows=$sthB->rows; +if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $SERVERLOG = $aryB[0]; + } +$sthB->finish(); +$dbhB->disconnect(); + +if ($SERVERLOG =~ /Y/) + { + $childLOGfile = "$PATHlogs/FastAGIchildLOG.$year-$mon-$mday"; + $log_level = "4"; + print "SERVER LOGGING ON: LEVEL-$log_level FILE-$childLOGfile\n"; + } + +package VDfastAGI; + +use Net::Server; +use Asterisk::AGI; +use vars qw(@ISA); +use Net::Server::PreFork; # any personality will do +@ISA = qw(Net::Server::PreFork); + + + + +sub process_request + { + $carrier_logging_active=0; + $process = 'begin'; + $script = 'VDfastAGI'; + ########## Get current time, parse configs, get logging preferences ########## + ($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) {$hour = "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"; + + + # default path to astguiclient configuration file: + $PATHconf = '/etc/astguiclient.conf'; + + open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; + @conf = ; + close(conf); + $i=0; + foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + + if (!$VARDB_port) {$VARDB_port='3306';} + if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/FASTagiout.$year-$mon-$mday";} + + $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + ### Grab Server values from the database + $stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = $aryA[0]; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + } + $sthA->finish(); + + + if ($AGILOG) + { + $agi_string = "+++++++++++++++++ FastAGI Start ++++++++++++++++++++++++++++++++++++++++"; + &agi_output; + } + + + + ### begin parsing run-time options ### + if (length($ARGV[0])>1) + { + if ($AGILOG) + { + $agi_string = "Perl Environment Dump:"; + &agi_output; + } + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) + { + $agi_string = "$i|$ARGV[$i]"; + &agi_output; + } + $i++; + } + } + + $HVcauses=0; + $fullCID=0; + $callerid=''; + $calleridname=''; + $|=1; + while() + { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_request\:\s+(.*)$/) {$request = $1;} + if ( ($request =~ /--fullCID--/i) && (!$fullCID) ) + { + $fullCID=1; + @CID = split(/-----/, $request); + $callerid = $CID[2]; + $calleridname = $CID[3]; + $agi_string = "URL fullCID: |$callerid|$calleridname|$request|"; + &agi_output; + } + if ( ($request =~ /--HVcauses--/i) && (!$HVcauses) ) + { + $HVcauses=1; + @ARGV_vars = split(/-----/, $request); + $PRI = $ARGV_vars[0]; + $PRI =~ s/.*--HVcauses--//gi; + $DEBUG = $ARGV_vars[1]; + $hangup_cause = $ARGV_vars[2]; + $dialstatus = $ARGV_vars[3]; + $dial_time = $ARGV_vars[4]; + $ring_time = $ARGV_vars[5]; + $agi_string = "URL HVcauses: |$PRI|$DEBUG|$hangup_cause|$dialstatus|$dial_time|$ring_time|"; + &agi_output; + } + if (!$fullCID) # if no fullCID sent + { + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( $calleridname =~ /\"/) {$calleridname =~ s/\"//gi;} + # if ( (length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) ) + if ( ( + (length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) + ) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + {$callerid = $calleridname;} + + ### allow for ANI being sent with the DNIS "*3125551212*9999*" + if ($extension =~ /^\*\d\d\d\d\d\d\d\d\d\d\*/) + { + $callerid = $extension; + $callerid =~ s/\*\d\d\d\d\*$//gi; + $callerid =~ s/^\*//gi; + $extension =~ s/^\*\d\d\d\d\d\d\d\d\d\d\*//gi; + $extension =~ s/\*$//gi; + } + $calleridname = $callerid; + } + } + + if ($AGILOG) + { + $agi_string = "AGI Environment Dump:"; + &agi_output; + } + + foreach $i (sort keys %AGI) + { + if ($AGILOG) + { + $agi_string = " -- $i = $AGI{$i}"; + &agi_output; + } + } + + + if ($AGILOG) + { + $agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; + &agi_output; + } + + if ( ($extension =~ /h/i) && (length($extension) < 3)) {$stage = 'END';} + else {$stage = 'START';} + + $process = $request; + $process =~ s/agi:\/\///gi; + $process =~ s/.*\/|--.*//gi; + if ($AGILOG) + { + $agi_string = "Process to run: |$request|$process|$stage|"; + &agi_output; + } + + + ################################################################### + ##### START call_log process ###################################### + ################################################################### + if ($process =~ /^call_log/) + { + ### call start stage + if ($stage =~ /START/) + { + $channel_group=''; + + if ($AGILOG) {$agi_string = "+++++ CALL LOG START : $now_date"; &agi_output;} + + if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} + if ($channel =~ /^IAX2/) {$channel =~ s/\/\d+$//gi;} + if ($channel =~ /^Zap\/|^DAHDI\//) + { + $channel_line = $channel; + $channel_line =~ s/^Zap\/|^DAHDI\///gi; + + $stmtA = "SELECT count(*) FROM phones where server_ip='$VARserver_ip' and extension='$channel_line' and protocol='Zap';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + $is_client_phone = "$aryA[0]"; + $sthA->finish(); + + if ($is_client_phone < 1) + { + $channel_group = 'Zap Trunk Line'; + $number_dialed = $extension; + } + else + { + $channel_group = 'Zap Client Phone'; + } + if ($AGILOG) {$agi_string = $channel_group . ": $aryA[0]|$channel_line|"; &agi_output;} + } + if ($channel =~ /^Local\//) + { + $channel_line = $channel; + $channel_line =~ s/^Local\/|\@.*//gi; + + $stmtA = "SELECT count(*) FROM phones where server_ip='$VARserver_ip' and dialplan_number='$channel_line' and protocol='EXTERNAL';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + $is_client_phone = "$aryA[0]"; + $sthA->finish(); + + if ($is_client_phone < 1) + { + $channel_group = 'Local Channel Line'; + $number_dialed = $extension; + } + else + { + $channel_group = 'EXTERNAL Client Phone'; + } + if ($AGILOG) {$agi_string = $channel_group . ": $aryA[0]|$channel_line|"; &agi_output;} + } + ### 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/) || ( ($is_client_phone > 0) && (length($channel_group) < 1) ) ) + { + if ( ($extension =~ /^901144/) && (length($extension)==16) ) #test 207 608 6400 + {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl UK';} + if ( ($extension =~ /^901161/) && (length($extension)==15) ) #test 39 417 2011 + {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl AUS';} + if ( ($extension =~ /^91800|^91888|^91877|^91866/) && (length($extension)==12) ) + {$extension =~ s/^91//gi; $channel_group = 'Outbound Local 800';} + if ( ($extension =~ /^9/) && (length($extension)==8) ) + {$extension =~ s/^9/727/gi; $channel_group = 'Outbound Local';} + if ( ($extension =~ /^9/) && (length($extension)==11) ) + {$extension =~ s/^9//gi; $channel_group = 'Outbound Local';} + if ( ($extension =~ /^91/) && (length($extension)==12) ) + {$extension =~ s/^91//gi; $channel_group = 'Outbound Long Distance';} + if ($is_client_phone > 0) + {$channel_group = 'Client Phone';} + + $SIP_ext = $channel; $SIP_ext =~ s/SIP\/|IAX2\/|Zap\/|DAHDI\/|Local\///gi; + + $number_dialed = $extension; + $extension = $SIP_ext; + } + + if ( ($callerid =~ /^V|^M/) && ($callerid =~ /\d\d\d\d\d\d\d\d\d/) && (length($number_dialed)<1) ) + { + $stmtA = "SELECT cmd_line_b,cmd_line_d FROM vicidial_manager where callerid='$callerid' limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cmd_line_b = "$aryA[0]"; + $cmd_line_d = "$aryA[1]"; + $cmd_line_b =~ s/Exten: //gi; + $cmd_line_d =~ s/Channel: Local\/|@.*//gi; + $rec_count++; + } + $sthA->finish(); + if ($callerid =~ /^V/) {$number_dialed = "$cmd_line_d";} + if ($callerid =~ /^M/) {$number_dialed = "$cmd_line_b";} + $number_dialed =~ s/\D//gi; + if (length($number_dialed)<1) {$number_dialed=$extension;} + } + $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','$VARserver_ip','$extension','$number_dialed','$now_date','$now_date_epoch','','','','','$callerid')"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + $dbhA->disconnect(); + } + + + ### call end stage + else + { + if ($AGILOG) {$agi_string = "|CALL HUNG UP|"; &agi_output;} + + $callerid =~ s/\"//gi; + $CIDlead_id = $callerid; + $CIDlead_id = substr($CIDlead_id, 11, 9); + $CIDlead_id = ($CIDlead_id + 0); + + $park_abandon=0; + ### find if call was parked on another server + $stmtA = "SELECT count(*) from parked_channels where channel_group='$callerid';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $sthA->finish(); + $parked_count = $aryA[0]; + if ($parked_count > 0) + { + $stmtA = "SELECT server_ip from parked_channels where channel_group='$callerid';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $sthA->finish(); + $parked_server_ip = $aryA[0]; + if ( ($parked_server_ip =~ /$VARserver_ip/) && (length($VARserver_ip) == length($parked_server_ip)) ) + { + if ($AGILOG) {$agi_string = "-- PARKED CALL ON-SERVER: |$parked_server_ip|$VARserver_ip|$callerid"; &agi_output;} + } + else + { + if ($AGILOG) {$agi_string = "-- PARKED CALL NON-SERVER: |$parked_server_ip|$VARserver_ip|$callerid"; &agi_output;} + $park_abandon=1; + } + } + } + } + + if ($park_abandon < 1) + { + if ($request =~ /--HVcauses--/i) + { + $HVcauses=1; + @ARGV_vars = split(/-----/, $request); + $PRI = $ARGV_vars[0]; + $PRI =~ s/.*--HVcauses--//gi; + $DEBUG = $ARGV_vars[1]; + $hangup_cause = $ARGV_vars[2]; + $dialstatus = $ARGV_vars[3]; + $dial_time = $ARGV_vars[4]; + $ring_time = $ARGV_vars[5]; + $agi_string = "URL HVcauses: |$PRI|$DEBUG|$hangup_cause|$dialstatus|$dial_time|$ring_time|"; + &agi_output; + + if ( (length($dialstatus) > 0) && ($callerid =~ /^V|^M/) ) + { + ### Grab Server values from the database + $stmtA = "SELECT carrier_logging_active FROM servers where server_ip = '$VARserver_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] =~ /Y/) + {$carrier_logging_active = 1;} + else + {$carrier_logging_active = 0;} + } + $sthA->finish(); + + if ($carrier_logging_active > 0) + { + $stmtA = "INSERT IGNORE INTO vicidial_carrier_log set uniqueid='$uniqueid',call_date='$now_date',server_ip='$VARserver_ip',lead_id='$CIDlead_id',hangup_cause='$hangup_cause',dialstatus='$dialstatus',channel='$channel',dial_time='$dial_time';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VCARaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- CARRIER LOG insert: |$VCARaffected_rows|$CIDlead_id|$hangup_cause"; &agi_output;} + } + } + } + + ### get uniqueid and start_epoch from the call_log table + $stmtA = "SELECT uniqueid,start_epoch FROM call_log where uniqueid='$unique_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $start_time = "$aryA[1]"; + if ($AGILOG) {$agi_string = "|$aryA[0]|$aryA[1]|"; &agi_output;} + $rec_count++; + } + $sthA->finish(); + + if ($rec_count) + { + $length_in_sec = ($now_date_epoch - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + if ($AGILOG) {$agi_string = "QUERY done: start time = $start_time | sec: $length_in_sec | min: $length_in_min |"; &agi_output;} + + $stmtA = "UPDATE call_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$length_in_sec,length_in_min='$length_in_min',channel='$channel' where uniqueid='$unique_id'"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + } + + $stmtA = "DELETE from live_inbound where uniqueid='$unique_id' and server_ip='$VARserver_ip'"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + ##### BEGIN Park Log entry check and update ##### + $stmtA = "SELECT UNIX_TIMESTAMP(parked_time),UNIX_TIMESTAMP(grab_time) FROM park_log where uniqueid='$unique_id' and server_ip='$VARserver_ip' LIMIT 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $parked_time = "$aryA[0]"; + $grab_time = "$aryA[1]"; + if ($AGILOG) {$agi_string = "|$aryA[0]|$aryA[1]|"; &agi_output;} + $rec_count++; + } + $sthA->finish(); + + if ($rec_count) + { + if ($AGILOG) {$agi_string = "*****Entry found for $unique_id-$VARserver_ip in park_log: $parked_time|$grab_time"; &agi_output;} + if ($parked_time > $grab_time) + { + $parked_sec=($now_date_epoch - $parked_time); + $talked_sec=0; + } + else + { + $talked_sec=($now_date_epoch - $parked_time); + $parked_sec=($grab_time - $parked_time); + } + + $stmtA = "UPDATE park_log set status='HUNGUP',hangup_time='$now_date',parked_sec='$parked_sec',talked_sec='$talked_sec' where uniqueid='$unique_id' and server_ip='$VARserver_ip'"; + $affected_rows = $dbhA->do($stmtA); + } + ##### END Park Log entry check and update ##### + + # $dbhA->disconnect(); + + if ($AGILOG) {$agi_string = "+++++ CALL LOG HUNGUP: |$unique_id|$channel|$extension|$now_date|min: $length_in_min|"; &agi_output;} + + + ##### BEGIN former VD_hangup section functions ##### + + $VDADcampaign=''; + $VDADphone=''; + $VDADphone_code=''; + $VDL_status=''; + + if ($DEBUG =~ /^DEBUG$/) + { + ### open the hangup cause out file for writing ### + open(out, ">>$PATHlogs/HANGUP_cause-output.txt") + || die "Can't open $PATHlogs/HANGUP_cause-output.txt: $!\n"; + + print out "$now_date|$hangup_cause|$dialstatus|$dial_time|$ring_time|$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|\n"; + + close(out); + } + else + { + if ($AGILOG) {$agi_string = "DEBUG: $DEBUG"; &agi_output;} + } + + if ($AGILOG) {$agi_string = "VD_hangup : $callerid $channel $priority $CIDlead_id"; &agi_output;} + + if ($channel =~ /^Local/) + { + $CPDfound=0; + ############################################################## + ### BEGIN - CPD Look for result for B/DC calls + ############################################################## + $stmtA = "SELECT result FROM vicidial_cpd_log where callerid='$callerid' and result NOT IN('Voice','Unknown','???','') order by cpd_id desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $cpd_result = "$aryA[0]"; + $sthA->finish(); + if ($cpd_result =~ /Busy/i) {$VDL_status='CPDB'; $VDAC_status='BUSY'; $CPDfound++;} + if ($cpd_result =~ /Unknown/i) {$VDL_status='CPDUK'; $VDAC_status='NA'; $CPDfound++;} + if ($cpd_result =~ /All-Trunks-Busy/i) {$VDL_status='CPDATB'; $VDAC_status='CONGESTION'; $CPDfound++;} + if ($cpd_result =~ /No-Answer/i) {$VDL_status='CPDNA'; $VDAC_status='NA'; $CPDfound++;} + if ($cpd_result =~ /Reject/i) {$VDL_status='CPDREJ'; $VDAC_status='DISCONNECT'; $CPDfound++;} + if ($cpd_result =~ /Invalid-Number/i) {$VDL_status='CPDINV'; $VDAC_status='DISCONNECT'; $CPDfound++;} + if ($cpd_result =~ /Service-Unavailable/i) {$VDL_status='CPDSUA'; $VDAC_status='CONGESTION'; $CPDfound++;} + if ($cpd_result =~ /Sit-Intercept/i) {$VDL_status='CPDSI'; $VDAC_status='DISCONNECT'; $CPDfound++;} + if ($cpd_result =~ /Sit-No-Circuit/i) {$VDL_status='CPDSNC'; $VDAC_status='CONGESTION'; $CPDfound++;} + if ($cpd_result =~ /Sit-Reorder/i) {$VDL_status='CPDSR'; $VDAC_status='CONGESTION'; $CPDfound++;} + if ($cpd_result =~ /Sit-Unknown/i) {$VDL_status='CPDSUK'; $VDAC_status='CONGESTION'; $CPDfound++;} + if ($cpd_result =~ /Sit-Vacant/i) {$VDL_status='CPDSV'; $VDAC_status='CONGESTION'; $CPDfound++;} + if ($cpd_result =~ /\?\?\?/i) {$VDL_status='CPDERR'; $VDAC_status='NA'; $CPDfound++;} + if ($cpd_result =~ /Fax|Modem/i) {$VDL_status='AFAX'; $VDAC_status='FAX'; $CPDfound++;} + if ($cpd_result =~ /Answering-Machine/i) {$VDL_status='AA'; $VDAC_status='AMD'; $CPDfound++;} + } + $sthA->finish(); + ############################################################## + ### END - CPD Look for result for B/DC calls + ############################################################## + + if ( ($PRI =~ /^PRI$/) && ($callerid =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) && ( ( ($dialstatus =~ /BUSY/) || ( ($dialstatus =~ /CHANUNAVAIL/) && ($hangup_cause =~ /^1$|^28$/) ) ) || ($CPDfound > 0) )) + { + if ($CPDfound < 1) + { + if ($dialstatus =~ /BUSY/) {$VDL_status = 'AB'; $VDAC_status = 'BUSY';} + if ($dialstatus =~ /CHANUNAVAIL/) {$VDL_status = 'ADC'; $VDAC_status = 'DISCONNECT';} + } + + $stmtA = "UPDATE vicidial_list set status='$VDL_status' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VDADaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$VDADaffected_rows|$CIDlead_id"; &agi_output;} + + $stmtA = "UPDATE vicidial_auto_calls set status='$VDAC_status' where callerid = '$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VDACaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAC update: |$VDACaffected_rows|$CIDlead_id"; &agi_output;} + + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+$//gi; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set status='$VDL_status' where lead_id = '$CIDlead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VDLaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$VDLaffected_rows|$uniqueid|$VDACuniqueid|"; &agi_output;} + + sleep(1); + } + else + { + if ($AGILOG) {$agi_string = "-- VD_hangup Local DEBUG: |$PRI|$callerid|$dialstatus|$hangup_cause|"; &agi_output;} + } + + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} + if ($priority > 2) {sleep(1);} + } + else + { + ########## FIND AND DELETE vicidial_auto_calls ########## + $VD_alt_dial = 'NONE'; + $stmtA = "SELECT lead_id,callerid,campaign_id,alt_dial,stage,UNIX_TIMESTAMP(call_time),uniqueid,status,call_time,phone_code,phone_number,queue_position FROM vicidial_auto_calls where uniqueid = '$uniqueid' or callerid = '$callerid' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_lead_id = $aryA[0]; + $VD_callerid = $aryA[1]; + $VD_campaign_id = $aryA[2]; + $VD_alt_dial = $aryA[3]; + $VD_stage = $aryA[4]; + $VD_start_epoch = $aryA[5]; + $VD_uniqueid = $aryA[6]; + $VD_status = $aryA[7]; + $VD_call_time = $aryA[8]; + $VD_phone_code = $aryA[9]; + $VD_phone_number = $aryA[10]; + $VD_queue_position = $aryA[11]; + $rec_countCUSTDATA++; + } + $sthA->finish(); + + if (!$rec_countCUSTDATA) + { + if ($AGILOG) {$agi_string = "VD hangup: no VDAC record found: $uniqueid $calleridname"; &agi_output;} + } + else + { + $stmtA = "DELETE FROM vicidial_auto_calls where ( ( (status!='IVR') and (uniqueid='$uniqueid' or callerid = '$callerid') ) or ( (status='IVR') and (uniqueid='$uniqueid') ) ) order by call_time desc limit 1;"; + $VACaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAC record deleted: |$VACaffected_rows| |$VD_lead_id|$uniqueid|$VD_uniqueid|$VD_callerid|$VARserver_ip|$VD_status|"; &agi_output;} + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = $aryA[0]; + $queuemetrics_server_ip = $aryA[1]; + $queuemetrics_dbname = $aryA[2]; + $queuemetrics_login= $aryA[3]; + $queuemetrics_pass = $aryA[4]; + $queuemetrics_log_id = $aryA[5]; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_queuemetrics_logging > 0) && ($VD_status !~ /IVR/) ) + { + $VD_agent='NONE'; + $secX = time(); + $VD_call_length = ($secX - $VD_start_epoch); + $VD_stage =~ s/.*-//gi; + if ($VD_stage < 0.25) {$VD_stage=0;} + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "SELECT agent from queue_log where call_id='$VD_callerid' and verb='CONNECT';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + $rec_count=0; + while ($sthBrows > $rec_count) + { + @aryB = $sthB->fetchrow_array; + $VD_agent = "$aryB[0]"; + $rec_count++; + } + $sthB->finish(); + + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + ### find original queue position of the call + $queue_position=1; + $stmtA = "SELECT queue_position,call_date FROM vicidial_closer_log where uniqueid='$unique_id' and lead_id='$CIDlead_id' and campaign_id='$VD_campaign_id' and call_date > \"$RSQLdate\" order by closecallid desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $queue_position = $aryA[0]; + $VCLcall_date = $aryA[1]; + } + $sthA->finish(); + + if ($rec_count < 1) + { + ### find current number of calls in this queue to find position when channel hung up + $current_position=1; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id='$VD_campaign_id' and call_time < '$VCLcall_date';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $current_position = ($aryA[0] + 1); + } + $sthA->finish(); + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$VD_callerid',queue='$VD_campaign_id',agent='$VD_agent',verb='ABANDON',data1='$current_position',data2='$queue_position',data3='$VD_stage',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + } + else + { + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$VD_callerid',queue='$VD_campaign_id',agent='$VD_agent',verb='COMPLETECALLER',data1='$VD_stage',data2='$VD_call_length',data3='$queue_position',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + } + + $dbhB->disconnect(); + } + + + $epc_countCUSTDATA=0; + $VD_closecallid=''; + $VDL_update=0; + $Euniqueid=$uniqueid; + $Euniqueid =~ s/\.\d+$//gi; + + if ($calleridname !~ /^Y\d\d\d\d/) + { + ########## FIND AND UPDATE vicidial_log ########## + $stmtA = "SELECT start_epoch,status,user,term_reason,comments FROM vicidial_log FORCE INDEX(lead_id) where lead_id = '$VD_lead_id' and uniqueid LIKE \"$Euniqueid%\" limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_start_epoch = "$aryA[0]"; + $VD_status = "$aryA[1]"; + $VD_user = "$aryA[2]"; + $VD_term_reason = "$aryA[3]"; + $VD_comments = "$aryA[4]"; + $epc_countCUSTDATA++; + } + $sthA->finish(); + } + + if ( (!$epc_countCUSTDATA) || ($calleridname =~ /^Y\d\d\d\d/) ) + { + if ($AGILOG) {$agi_string = "no VDL record found: $uniqueid $calleridname $VD_lead_id $uniqueid $VD_uniqueid"; &agi_output;} + + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + $stmtA = "SELECT start_epoch,status,closecallid,user,term_reason,length_in_sec,queue_seconds,comments FROM vicidial_closer_log where lead_id = '$VD_lead_id' and call_date > \"$RSQLdate\" order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCUSTDATA=0; + $VD_closecallid=''; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_start_epoch = "$aryA[0]"; + $VD_status = "$aryA[1]"; + $VD_closecallid = "$aryA[2]"; + $VD_user = "$aryA[3]"; + $VD_term_reason = "$aryA[4]"; + $VD_length_in_sec = "$aryA[5]"; + $VD_queue_seconds = "$aryA[6]"; + $VD_comments = "$aryA[7]"; + $epc_countCUSTDATA++; + } + $sthA->finish(); + } + if (!$epc_countCUSTDATA) + { + if ($AGILOG) {$agi_string = "no VDL or VDCL record found: $uniqueid $calleridname $VD_lead_id $uniqueid $VD_uniqueid |$VACaffected_rows|$VD_callerid|"; &agi_output;} + + # uncomment for some special circumstances + # $VD_status = 'NA'; + # if (length($VDL_status) > 0) + # {$VD_status = $VDL_status;} + + # if ( ($VACaffected_rows > 0) && ($VD_callerid =~ /^V/) ) + # { + # $stmtA = "INSERT INTO vicidial_log SET uniqueid='$uniqueid',lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',call_date='$VD_call_time',start_epoch='$VD_start_epoch',status='$VD_status',phone_code='$VD_phone_code',phone_number='$VD_phone_number',user='VDAD',processed='N',length_in_sec='0',end_epoch='$VD_start_epoch',alt_dial='$VD_alt_dial';"; + # $affected_rows = $dbhA->do($stmtA); + + # $agi_string = "| NO VDL add to vicidial_log $VD_uniqueid|$VD_lead_id|$VD_phone_number|$VD_status|$affected_rows|$VACaffected_rows|$affected_rows|$stmtA|"; + # &agi_output; + # } + } + else + { + $VD_seconds = ($now_date_epoch - $VD_start_epoch); + + $SQL_status=''; + if ( ($VD_status =~ /^NA$|^NEW$|^QUEUE$|^XFER$/) && ($VD_comments !~ /REMOTE/) ) + { + if ( ($VD_term_reason !~ /AGENT|CALLER|QUEUETIMEOUT/) && ( ($VD_user =~ /VDAD|VDCL/) || (length($VD_user) < 1) ) ) + {$VDLSQL_term_reason = "term_reason='ABANDON',";} + else + { + if ($VD_term_reason !~ /AGENT|CALLER|QUEUETIMEOUT/) + {$VDLSQL_term_reason = "term_reason='CALLER',";} + else + {$VDLSQL_term_reason = '';} + } + $SQL_status = "status='DROP',$VDLSQL_term_reason"; + + ########## FIND AND UPDATE vicidial_list ########## + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$VD_lead_id"; &agi_output;} + } + else + { + $SQL_status = "term_reason='CALLER',"; + } + + if ($calleridname !~ /^Y\d\d\d\d/) + { + $VDL_update=1; + $stmtA = "UPDATE vicidial_log FORCE INDEX(lead_id) set $SQL_status end_epoch='$now_date_epoch',length_in_sec='$VD_seconds' where lead_id = '$VD_lead_id' and uniqueid LIKE \"$Euniqueid%\";"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $VLaffected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$VLaffected_rows|$uniqueid|$VD_status|"; &agi_output;} + } + + + + ########## UPDATE vicidial_closer_log ########## + if ( (length($VD_closecallid) < 1) || ($VDL_update > 0) ) + { + if ($AGILOG) {$agi_string = "no VDCL record found: $uniqueid|$calleridname|$VD_lead_id|$uniqueid|$VD_uniqueid|$VDL_update|"; &agi_output;} + } + else + { + if ($VD_status =~ /^DONE$|^INCALL$|^XFER$/) + {$VDCLSQL_update = "term_reason='CALLER',";} + else + { + if ( ($VD_term_reason !~ /AGENT|CALLER|QUEUETIMEOUT|AFTERHOURS|HOLDRECALLXFER|HOLDTIME|NOAGENT/) && ( ($VD_user =~ /VDAD|VDCL/) || (length($VD_user) < 1) ) ) + {$VDCLSQL_term_reason = "term_reason='ABANDON',";} + else + { + if ($VD_term_reason !~ /AGENT|CALLER|QUEUETIMEOUT|AFTERHOURS|HOLDRECALLXFER|HOLDTIME|NOAGENT/) + {$VDCLSQL_term_reason = "term_reason='CALLER',";} + else + {$VDCLSQL_term_reason = '';} + } + if ($VD_status =~ /QUEUE/) + { + $VDCLSQL_status = "status='DROP',"; + $VDCLSQL_queue_seconds = "queue_seconds='$VD_seconds',"; + } + else + { + $VDCLSQL_status = ''; + $VDCLSQL_queue_seconds = ''; + } + + $VDCLSQL_update = "$VDCLSQL_status$VDCLSQL_term_reason$VDCLSQL_queue_seconds"; + } + + $VD_seconds = ($now_date_epoch - $VD_start_epoch); + $stmtA = "UPDATE vicidial_closer_log set $VDCLSQL_update end_epoch='$now_date_epoch',length_in_sec='$VD_seconds' where closecallid = '$VD_closecallid';"; + if ($AGILOG) {$agi_string = "|$VDCLSQL_update|$VD_status|$VD_length_in_sec|$VD_term_reason|$VD_queue_seconds|\n|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL update: |$affected_rows|$uniqueid|$VD_closecallid|"; &agi_output;} + + } + } + + ##### BEGIN AUTO ALT PHONE DIAL SECTION ##### + ### check to see if campaign has alt_dial enabled + $VD_auto_alt_dial = 'NONE'; + $VD_auto_alt_dial_statuses=''; + $stmtA="SELECT auto_alt_dial,auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$VD_campaign_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCAMPDATA=0; + while ($sthArows > $epc_countCAMPDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_auto_alt_dial = $aryA[0]; + $VD_auto_alt_dial_statuses = $aryA[1]; + $VD_use_internal_dnc = $aryA[2]; + $VD_use_campaign_dnc = $aryA[3]; + $epc_countCAMPDATA++; + } + $sthA->finish(); + if ($VD_auto_alt_dial_statuses =~ / $VD_status | $VDL_status /) + { + if ( ($VD_auto_alt_dial =~ /(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) + { + $alt_dial_skip=0; + $VD_alt_phone=''; + $stmtA="SELECT alt_phone,gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCAMPDATA=0; + while ($sthArows > $epc_countCAMPDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_phone = $aryA[0]; + $VD_alt_phone =~ s/\D//gi; + $VD_gmt_offset_now = $aryA[1]; + $VD_state = $aryA[2]; + $VD_list_id = $aryA[3]; + $epc_countCAMPDATA++; + } + $sthA->finish(); + if (length($VD_alt_phone)>5) + { + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $alt_areacode = substr($VD_alt_phone, 0, 3); + $alt_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_alt_phone','$alt_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_alt_phone';";} + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $alt_areacode = substr($VD_alt_phone, 0, 3); + $alt_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_alt_phone','$alt_areacode') and campaign_id='$VD_campaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_alt_phone' and campaign_id='$VD_campaign_id';";} + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='ALT',user='',priority='25';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDH record inserted: |$affected_rows| |$stmtA|"; &agi_output;} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$VD_alt_dial='ALT';} + } + if ( ( ($VD_auto_alt_dial =~ /(ADDR3_ONLY)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) || ( ($VD_auto_alt_dial =~ /(ALT_AND_ADDR3)/) && ($VD_alt_dial =~ /ALT/) ) ) + { + $addr3_dial_skip=0; + $VD_address3=''; + $stmtA="SELECT address3,gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCAMPDATA=0; + while ($sthArows > $epc_countCAMPDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_address3 = $aryA[0]; + $VD_address3 =~ s/\D//gi; + $VD_gmt_offset_now = $aryA[1]; + $VD_state = $aryA[2]; + $VD_list_id = $aryA[3]; + $epc_countCAMPDATA++; + } + $sthA->finish(); + if (length($VD_address3)>5) + { + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $addr3_areacode = substr($VD_address3, 0, 3); + $addr3_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_address3','$addr3_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_address3';";} + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $addr3_areacode = substr($VD_address3, 0, 3); + $addr3_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_address3','$alt_areacode') and campaign_id='$VD_campaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_address3' and campaign_id='$VD_campaign_id';";} + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='ADDR3',user='',priority='20';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDH record inserted: |$affected_rows| |$stmtA|"; &agi_output;} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$VD_alt_dial='ADDR3';} + } + if ( ( ($VD_auto_alt_dial =~ /(EXTENDED_ONLY)/) && ($VD_alt_dial =~ /NONE|MAIN/) ) || ( ($VD_auto_alt_dial =~ /(ALT_AND_EXTENDED)/) && ($VD_alt_dial =~ /ALT/) ) || ( ($VD_auto_alt_dial =~ /ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED/) && ($VD_alt_dial =~ /ADDR3/) ) || ( ($VD_auto_alt_dial =~ /(EXTENDED)/) && ($VD_alt_dial =~ /X/) && ($VD_alt_dial !~ /XLAST/) ) ) + { + if ($VD_alt_dial =~ /ADDR3/) {$Xlast=0;} + else + {$Xlast = $VD_alt_dial;} + $Xlast =~ s/\D//gi; + if (length($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + $stmtA="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCAMPDATA=0; + while ($sthArows > $epc_countCAMPDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_gmt_offset_now = $aryA[0]; + $VD_state = $aryA[1]; + $VD_list_id = $aryA[2]; + $epc_countCAMPDATA++; + } + $sthA->finish(); + $alt_dial_phones_count=0; + $stmtA="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $alt_dial_phones_count = $aryA[0]; + } + $sthA->finish(); + + while ( ($alt_dial_phones_count > 0) && ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmtA="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$VD_lead_id' and alt_phone_count='$Xlast';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_altdial_id = $aryA[0]; + $VD_altdial_phone = $aryA[1]; + $VD_altdial_active = $aryA[2]; + } + else + {$Xlast=9999999999;} + $sthA->finish(); + + if ($VD_altdial_active =~ /Y/) + { + $DNCC=0; + $DNCL=0; + if ( ($VD_use_internal_dnc =~ /Y/) || ($VD_use_internal_dnc =~ /AREACODE/) ) + { + if ($VD_use_internal_dnc =~ /AREACODE/) + { + $ad_areacode = substr($VD_altdial_phone, 0, 3); + $ad_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_dnc where phone_number IN('$VD_altdial_phone','$ad_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = $aryA[0]; + $DNCL = $aryA[0]; + } + $sthA->finish(); + } + else {$VD_alt_dnc_count=0;} + if ( ($VD_use_campaign_dnc =~ /Y/) || ($VD_use_campaign_dnc =~ /AREACODE/) ) + { + if ($VD_use_campaign_dnc =~ /AREACODE/) + { + $ap_areacode = substr($VD_altdial_phone, 0, 3); + $ap_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$ap_areacode') and campaign_id='$VD_campaign_id';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$VD_campaign_id';";} + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VD_alt_dnc_count = ($VD_alt_dnc_count + $aryA[0]); + $DNCC = $aryA[0]; + } + $sthA->finish(); + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count eq '$Xlast') + {$Xlast = 'LAST';} + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='X$Xlast',user='',priority='15';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDH record inserted: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &agi_output;} + $Xlast=9999999999; + } + else + { + if ( ( ($VD_auto_alt_dial_statuses =~ / DNCC /) && ($DNCC > 0) ) || ( ($VD_auto_alt_dial_statuses =~ / DNCL /) && ($DNCL > 0) ) ) + { + if ($alt_dial_phones_count eq '$Xlast') + {$Xlast = 'LAST';} + $stmtA = "INSERT INTO vicidial_hopper SET lead_id='$VD_lead_id',campaign_id='$VD_campaign_id',status='DNC',list_id='$VD_list_id',gmt_offset_now='$VD_gmt_offset_now',state='$VD_state',alt_dial='X$Xlast',user='',priority='15';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDH record DNC inserted: |$affected_rows| |$stmtA|X$Xlast|$VD_altdial_id|"; &agi_output;} + $Xlast=9999999999; + if ($AGILOG) {$agi_string = "-- VDH alt dial inserting DNC|X$Xlast|$VD_altdial_phone|"; &agi_output;} + } + else + { + if ($AGILOG) {$agi_string = "-- VDH alt dial not-inserting DNC|X$Xlast|$VD_altdial_phone|"; &agi_output;} + } + } + } + } + } + } + ##### END AUTO ALT PHONE DIAL SECTION ##### + } + } + } + $dbhA->disconnect(); + } + } + ################################################################### + ##### END call_log process ######################################## + ################################################################### + + + + + + ################################################################### + ##### START VD_hangup process ##################################### + ################################################################### + if ($process =~ /^VD_hangup/) + { + $nothing=0; + } + ################################################################### + ##### END VD_hangup process ####################################### + ################################################################### + + + } + + +VDfastAGI->run( + port=>4577, + user=>'root', + group=>'root', + min_servers=>$VARfastagi_log_min_servers, + max_servers=>$VARfastagi_log_max_servers, + min_spare_servers=>$VARfastagi_log_min_spare_servers, + max_spare_servers=>$VARfastagi_log_max_spare_servers, + max_requests=>$VARfastagi_log_max_requests, + check_for_dead=>$VARfastagi_log_checkfordead, + check_for_waiting=>$VARfastagi_log_checkforwait, + log_file=>$childLOGfile, + log_level=>$log_level + ); +exit; + + + + +sub agi_output + { + if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$process|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### + if ( ($AGILOG == '1') || ($AGILOG == '3') ) + { + print STDERR "$now_date|$script|$process|$agi_string\n"; + } + $agi_string=''; + } diff --git a/agc_2-X/branches/agc_2.2.0/bin/QC_gather_records.pl b/agc_2-X/branches/agc_2.2.0/bin/QC_gather_records.pl new file mode 100644 index 00000000..08f6378d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/QC_gather_records.pl @@ -0,0 +1,575 @@ +#!/usr/bin/perl +# +# QC_gather_records.pl version: 2.0.5 +# +# This script is designed to gather records to be posted to the +# qc_vicidial_list_original table so that it can be processed by the QC system +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 80717-1146 - First version development +# 80721-1627 - functional beta version +# + +use Time::Local; + +$txt = '.txt'; +$US = '_'; +$DS = '-'; +$MT[0] = ''; +$date_override_set=0; + +# default CLI values +$campaign = '---ALL---'; +$pull_statuses = 'SALE-UPSELL'; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--campaign=XXX] = Single campaign/in-group that records will be pulled from.\n"; + print " Default will pull all qc_active campaigns and in-groups\n"; + print " [--pull-statuses=XXX-XXY] = Statuses that are to be pulled. Default SALE and UPSELL\n"; + print " NOTE: To include all statuses in the export, use \"--sale-statuses=---ALL---\"\n"; + print " [--date-override=YYYYMMDDHHMMSS] = Date to force a re-pull from.\n"; + print " Pulls 24 hours of records from the override time/date\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debugging messages\n"; + print " [--debugX] = Super debugging messages\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /--debug/i) + { + $DB=1; + print "\n----- DEBUG MODE -----\n\n"; + } + if ($args =~ /--debugX/i) + { + $DBX=1; + print "\n----- SUPER DEBUG MODE -----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; $Q=1; + } + if ($args =~ /--date-override=/i) + { + @data_in = split(/--date-override=/,$args); + $date_override = $data_in[1]; + $date_override =~ s/ .*$//gi; + $date_override =~ s/\D//gi; + if ( (length($date_override)<14) || (length($date_override)>14) ) + { + print "ERROR! Invalid date_override format |$date_override|\n"; + $data_override=''; + } + else + { + $YYYY = substr($date_override, 0, 4); + $MM = substr($date_override, 4, 2); + $MM = ($MM - 1); + $DD = substr($date_override, 6, 2); + $hh = substr($date_override, 8, 2); + $mm = substr($date_override, 10, 2); + $ss = substr($date_override, 12, 2); + $STARTdateSQL = "$YYYY$DS$MM$DS$DD $hh:$mm:$ss"; + $STARTdateEPOCH = timelocal($ss,$mm,$hh,$DD,$MM,$YYYY); + $ENDdateEPOCH = ($STARTdateEPOCH + 86400); + ($EDsec,$EDmin,$EDhour,$EDmday,$EDmon,$EDyear,$EDwday,$EDyday,$EDisdst) = localtime($ENDdateEPOCH); + $EDyear = ($EDyear + 1900); + $EDmon++; + if ($EDmon < 10) {$EDmon = "0$EDmon";} + if ($EDmday < 10) {$EDmday = "0$EDmday";} + if ($EDhour < 10) {$EDhour = "0$EDhour";} + if ($EDmin < 10) {$EDmin = "0$EDmin";} + if ($EDsec < 10) {$EDsec = "0$EDsec";} + $ENDdateSQL = "$EDyear-$EDmon-$EDmday $EDhour:$EDmin:$EDsec"; + + $dateSQL = "and (call_date >= \"$STARTdateSQL\" and call_date < \"$ENDdateSQL\")"; + $date_override_set++; + } + } + if ($args =~ /--campaign=/i) + { + @data_in = split(/--campaign=/,$args); + $campaign = $data_in[1]; + $campaign =~ s/ .*$//gi; + } + else + {$campaign='---ALL---';} + if ($args =~ /--pull-statuses=/i) + { + @data_in = split(/--pull-statuses=/,$args); + $pull_statuses = $data_in[1]; + $pull_statuses =~ s/ .*$//gi; + if ($pull_statuses =~ /---ALL---/) + {if (!$Q) {print "\n----- PULL ALL STATUSES -----\n\n";} } + } + else + {$pull_statuses='---ALL---';} + if ($args =~ /--test/i) + { + $T=1; $TEST=1; + print "\n----- TESTING -----\n\n"; + } + } + } +else + { + print "no command line options set, using defaults.\n"; + } +### end parsing run-time options ### + +if (!$Q) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- QC_gather_records.pl --\n\n"; + print "This program is designed to gather records from VICIDIAL campaigns and in-groups and place them into the qc_vicidial_list_original table for processing by the QC system. \n"; + print "\n"; + } + +$secX = time(); + ($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) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $timestamp = "$year-$mon-$mday $hour:$min:$sec"; + $filedate = "$year$mon$mday"; + $ABIfiledate = "$mon-$mday-$year$us$hour$min$sec"; + $shipdate = "$year-$mon-$mday"; + $datestamp = "$year/$mon/$mday $hour:$min"; + + $four_hours_behind = ($secX -14400); + ($MBsec,$MBmin,$MBhour,$MBmday,$MBmon,$MByear,$MBwday,$MByday,$MBisdst) = localtime($four_hours_behind); + $MByear = ($MByear + 1900); + $MBmon++; + if ($MBmon < 10) {$MBmon = "0$MBmon";} + if ($MBmday < 10) {$MBmday = "0$MBmday";} + if ($MBhour < 10) {$MBhour = "0$MBhour";} + if ($MBmin < 10) {$MBmin = "0$MBmin";} + if ($MBsec < 10) {$MBsec = "0$MBsec";} + $qc_this_pull_time = "$MByear-$MBmon-$MBmday $MBhour:$MBmin:$MBsec"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin,qc_last_pull_time FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = $aryA[0]; + $qc_last_pull_time = $aryA[1]; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} +if ($date_override_set<1) {$dateSQL = "and (call_date >= \"$qc_last_pull_time\")";} + +##### BEGIN find campaigns or in-groups to query ##### +$CLIcampSQLc=''; +$CLIcampSQLi=''; +$campaignSQL=''; +$ingroupSQL=''; +$pull_campaigns=0; +$pull_ingroups=0; + +if ($campaign !~ /---ALL---/) + { + $CLIcampSQLc = "and campaign_id='$campaign'"; + $CLIcampSQLi = "and group_id='$campaign'"; + } + +$stmtA = "select campaign_id from vicidial_campaigns where qc_enabled='Y' $CLIcampSQLc;"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $pull_campaigns) + { + @aryA = $sthA->fetchrow_array; + $campaignSQL .= "'$aryA[0]',"; + $campaigns[$pull_campaigns] = $aryA[0]; + $pull_campaigns++; + } +$sthA->finish(); +if (length($campaignSQL)>2) + {chop($campaignSQL);} +else {$campaignSQL="''";} + +$stmtA = "select group_id from vicidial_inbound_groups where qc_enabled='Y' $CLIcampSQLi;"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $pull_ingroups) + { + @aryA = $sthA->fetchrow_array; + $ingroupSQL .= "'$aryA[0]',"; + $ingroups[$pull_ingroups] = $aryA[0]; + $pull_ingroups++; + } +$sthA->finish(); +if (length($ingroupSQL)>2) + {chop($ingroupSQL);} +else {$ingroupSQL="''";} +##### END find campaigns or in-groups to query ##### + + +##### START get lists of statuses to pull for each in-group and campaign ##### +$VCLquerySQL=''; +$VLquerySQL=''; +if ($pull_statuses =~ /---ALL---/) + { + ### if all statuses, loop through each campaign and in-group to grab statuses + $i=0; $j=0; + foreach(@ingroups) + { + $stmtA = "select qc_statuses,qc_shift_id,shift_start_time from vicidial_inbound_groups,vicidial_shifts where group_id='$ingroups[$i]' and qc_shift_id=shift_id;"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $aryA[0] =~ s/ -$//gi; + @QCstatuses = split(/ /, $aryA[0]); + $QCs_to_print = $#QCstatuses; + $QCsql = ''; + $o=0; + while ($QCs_to_print > $o) + { + $o++; + $QCsql .= "'$QCstatuses[$o]',"; + } + $QCsql =~ s/,$//gi; + if (length($QCsql)<2) {$QCsql="''";} + + if ($j>0) {$VCLquerySQL .= " or ";} + $VCLquerySQL .= "(vicidial_closer_log.campaign_id='$ingroups[$i]' and vicidial_closer_log.status IN($QCsql))"; + $ingroup_statuses[$i] = $aryA[0]; + $j++; + } + $sthA->finish(); + $i++; + } + + ### if all statuses, loop through each campaign and in-group to grab statuses + $i=0; $j=0; + foreach(@campaigns) + { + $stmtA = "select qc_statuses,qc_shift_id,shift_start_time from vicidial_campaigns,vicidial_shifts where campaign_id='$campaigns[$i]' and qc_shift_id=shift_id;"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $aryA[0] =~ s/ -$//gi; + @QCstatuses = split(/ /, $aryA[0]); + $QCs_to_print = $#QCstatuses; + $QCsql = ''; + $o=0; + while ($QCs_to_print > $o) + { + $o++; + $QCsql .= "'$QCstatuses[$o]',"; + } + $QCsql =~ s/,$//gi; + if (length($QCsql)<2) {$QCsql="''";} + + if ($j>0) {$VLquerySQL .= " or ";} + $VLquerySQL .= "(vicidial_log.campaign_id='$campaigns[$i]' and vicidial_log.status IN($QCsql))"; + $campaign_statuses[$i] = $aryA[0]; + $j++; + } + $sthA->finish(); + $i++; + } + $VCLquerySQL = "and ($VCLquerySQL)"; + $VLquerySQL = "and ($VLquerySQL)"; + if ($DB>0) {print "\n$VCLquerySQL\n";} + if ($DB>0) {print "\n$VLquerySQL\n";} + ##### END get lists of statuses to pull for each in-group and campaign ##### + + $pull_statusesSQL=''; + $close_statusesSQL=''; + } +else + { + $pull_statusesSQL = $pull_statuses; + $pull_statusesSQL =~ s/-/','/gi; + $pull_statusesSQL = "'$pull_statusesSQL'"; + $close_statusesSQL = $pull_statusesSQL; + $pull_statusesSQL = " and (vicidial_log.status IN($pull_statusesSQL))"; + $close_statusesSQL = " and (vicidial_closer_log.status IN($close_statusesSQL))"; + } + +##### Construct the queries to pull records for QC ##### +$VCLsql= "SELECT closecallid,lead_id,campaign_id,call_date,length_in_sec,status,user,comments,user_group,term_reason,xfercallid from vicidial_closer_log where campaign_id IN($ingroupSQL) $dateSQL $VCLquerySQL $close_statusesSQL;"; +$VLsql= "SELECT uniqueid,lead_id,campaign_id,call_date,length_in_sec,status,user,comments,user_group,term_reason from vicidial_log where campaign_id IN($campaignSQL) $dateSQL $VLquerySQL $pull_statusesSQL;"; + + +$j=0; +##### Pull records from vicidial_closer_log table +$stmtA = "$VCLsql"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $vicidial_id[$j] = $aryA[0]; + $lead_id[$j] = $aryA[1]; + $campaign_id[$j] = $aryA[2]; + $call_date[$j] = $aryA[3]; + $length_in_sec[$j] = $aryA[4]; + $status[$j] = $aryA[5]; + $user[$j] = $aryA[6]; + $call_type[$j] = $aryA[7]; + $user_group[$j] = $aryA[8]; + $term_reason[$j] = $aryA[9]; + $xfercallid[$j] = $aryA[10]; + + $i++; $j++; + } +$sthA->finish(); + +##### Pull records from vicidial_log table +$stmtA = "$VLsql"; +if ($DB) {print "|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$k=0; +while ($sthArows > $k) + { + @aryA = $sthA->fetchrow_array; + $vicidial_id[$j] = $aryA[0]; + $lead_id[$j] = $aryA[1]; + $campaign_id[$j] = $aryA[2]; + $call_date[$j] = $aryA[3]; + $length_in_sec[$j] = $aryA[4]; + $status[$j] = $aryA[5]; + $user[$j] = $aryA[6]; + $call_type[$j] = $aryA[7]; + $user_group[$j] = $aryA[8]; + $term_reason[$j] = $aryA[9]; + $xfercallid[$j] = ''; + + $k++; $j++; + } +$sthA->finish(); + +if ($DB) {print "vicidial_closer_log records found: $i\n";} +if ($DB) {print "vicidial_log records found: $k\n";} +if ($DB) {print " TOTAL: $j\n";} + +$i=0; $j=0; +foreach(@vicidial_id) + { + ### check to see if there is already an entry in the vicidial_qc_list table for this record + $VDIDduplicate=0; + $stmtA = "select count(*) from vicidial_qc_list where vicidial_id='$vicidial_id[$i]';"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VDIDduplicate = $aryA[0]; + } + $sthA->finish(); + + if ($VDIDduplicate > 0) + { + $j++; + if ($DB) {print "DUPLICATE: |$vicidial_id[$i]|$i|$j|\n";} + } + else + { + ### grab vicidial_list details + $stmtA = "select vendor_lead_code,source_id,list_id,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 from vicidial_list where lead_id='$lead_id[$i]';"; + if ($DB) {print "|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $vendor_lead_code[$i] = $aryA[0]; + $source_id[$i] = $aryA[1]; + $list_id[$i] = $aryA[2]; + $phone_code[$i] = $aryA[3]; + $phone_number[$i] = $aryA[4]; + $title[$i] = $aryA[5]; + $first_name[$i] = $aryA[6]; + $middle_initial[$i] = $aryA[7]; + $last_name[$i] = $aryA[8]; + $address1[$i] = $aryA[9]; + $address2[$i] = $aryA[10]; + $address3[$i] = $aryA[11]; + $city[$i] = $aryA[12]; + $state[$i] = $aryA[13]; + $province[$i] = $aryA[14]; + $postal_code[$i] = $aryA[15]; + $country_code[$i] = $aryA[16]; + $gender[$i] = $aryA[17]; + $date_of_birth[$i] = $aryA[18]; + $alt_phone[$i] = $aryA[19]; + $email[$i] = $aryA[20]; + $security_phrase[$i] = $aryA[21]; + $comments[$i] = $aryA[22]; + } + $sthA->finish(); + + ### if there is a fronter, look for one in the xfer log by the xfercallid + if (length($xfercallid > 0)) + { + $stmtA = "select user from vicidial_xfer_log where xfercallid='$xfercallid[$i]' limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtB ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $fronter[$i] = $aryA[0]; + } + $sthA->finish(); + } + else + {$fronter[$i]='';} + + ### Insert a record into the vicidial_qc_list table + $stmtA = "INSERT INTO vicidial_qc_list SET "; + $stmtA .= "qc_import_date='$timestamp',"; + $stmtA .= "qc_stage='NEW',"; + $stmtA .= "call_date='$call_date[$i]',"; + $stmtA .= "vicidial_id='$vicidial_id[$i]',"; + $stmtA .= "campaign_group_id='$campaign_id[$i]',"; + $stmtA .= "lead_id='$lead_id[$i]',"; + $stmtA .= "list_id='$list_id[$i]',"; + $stmtA .= "length_in_sec='$length_in_sec[$i]',"; + $stmtA .= "status='$status[$i]',"; + $stmtA .= "call_type='$call_type[$i]',"; + $stmtA .= "term_reason='$term_reason[$i]',"; + $stmtA .= "qc_user='VDQC',"; + $stmtA .= "user='$user[$i]',"; + $stmtA .= "user_group='$user_group[$i]',"; + $stmtA .= "fronter='$fronter[$i]',"; + $stmtA .= "vendor_lead_code='$vendor_lead_code[$i]',"; + $stmtA .= "source_id='$source_id[$i]',"; + $stmtA .= "phone_code='$phone_code[$i]',"; + $stmtA .= "phone_number='$phone_number[$i]',"; + $stmtA .= "title='$title[$i]',"; + $stmtA .= "first_name='$first_name[$i]',"; + $stmtA .= "middle_initial='$middle_initial[$i]',"; + $stmtA .= "last_name='$last_name[$i]',"; + $stmtA .= "address1='$address1[$i]',"; + $stmtA .= "address2='$address2[$i]',"; + $stmtA .= "address3='$address3[$i]',"; + $stmtA .= "city='$city[$i]',"; + $stmtA .= "state='$state[$i]',"; + $stmtA .= "province='$province[$i]',"; + $stmtA .= "postal_code='$postal_code[$i]',"; + $stmtA .= "country_code='$country_code[$i]',"; + $stmtA .= "gender='$gender[$i]',"; + $stmtA .= "date_of_birth='$date_of_birth[$i]',"; + $stmtA .= "alt_phone='$alt_phone[$i]',"; + $stmtA .= "email='$email[$i]',"; + $stmtA .= "security_phrase='$security_phrase[$i]',"; + $stmtA .= "comments='$comments[$i]'"; + $stmtA .= ";"; + $affected_rows = $dbhA->do($stmtA); + $inserted = ($inserted + $affected_rows); + } + $i++; + } +if ($DB) {print "Records Inserted: $inserted out of $i\n";} + +$stmtA = "UPDATE system_settings SET qc_last_pull_time = '$qc_this_pull_time';"; +$affected_rows = $dbhA->do($stmtA); +if ($DB) {print "system_settings update: $qc_this_pull_time\n";} + +if ($DB) {print "DONE\n";} + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_DEDUPE_leads.pl b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_DEDUPE_leads.pl new file mode 100644 index 00000000..2b0abe8e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_DEDUPE_leads.pl @@ -0,0 +1,323 @@ +#!/usr/bin/perl +# +# VICIDIAL_DEDUPE_leads.pl version 2.0.5 +# +# DESCRIPTION: +# moves duplicate leads to another list_id +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# /usr/share/astguiclient/VICIDIAL_DEDUPE_leads.pl --debugX --campaign-duplicate=CTF --ignore-list=999 +# +# CHANGES +# 70521-1643 - first build +# + +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +$liveupdate=0; + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/dupleads.$year-$mon-$mday";} + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- VICIDIAL_DEDUPE_leads.pl --\n\n"; +print "This program is designed to scan all leads for a campaign or entire system that are duplicates and move the newer lead into a different list_id. \n\n"; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--live-update] = runs the live UPDATE to move leads, default is report only\n"; + print " [--system-duplicate] = checks for duplicates in entire database\n"; + print " [--campaign-duplicate=1234] = duplicate check witin this campaign\n"; + print " [--ignore-list=999] = ignores the list in duplicate check\n"; + print " [--duplicate-list=998] = list_id that duplicate leads are moved to, default is 998\n"; + print " [-h] = this help screen\n\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; + print "\n-----DEBUGGING -----\n\n"; + } + if ($args =~ /-debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + if ($args =~ /-q/i) + { + $q=1; + } + if ($args =~ /-t/i) + { + $T=1; + $TEST=1; + print "\n----- TESTING -----\n\n"; + } + if ($args =~ /-live-update/i) + { + $liveupdate=1; + print "\n----- RUN LIVE UPDATE -----\n\n"; + } + if ($args =~ /-system-duplicate/i) + { + $sysdup=1; + print "\n----- ENTIRE SYSTEM DUPLICATE CHECK -----\n\n"; + } + if ($args =~ /-campaign-duplicate=/i) + { + @data_in = split(/-campaign-duplicate=/,$args); + $campdup = $data_in[1]; + $campdup =~ s/ .*//gi; + print "\n----- CAMPAIGN DUPLICATE CHECK: $campdup -----\n\n"; + } + else + {$campdup = '';} + + if ($args =~ /--ignore-list=/i) + { + @data_in = split(/--ignore-list=/,$args); + $ignorelist = $data_in[1]; + $ignorelist =~ s/ .*//gi; + print "\n----- LISTID IGNORE: $ignorelist -----\n\n"; + } + else + {$ignorelist = '';} + + if ($args =~ /--duplicate-list=/i) + { + @data_in = split(/--duplicate-list=/,$args); + $duplicatelist = $data_in[1]; + $duplicatelist =~ s/ .*//gi; + print "\n----- LISTID DUPLICATE: $duplicatelist -----\n\n"; + } + else + {$duplicatelist = '998';} + + } +} +else +{ +print "no command line options set\n"; +$args = ""; +$i=0; +$campdup = ''; +$liveupdate=0; +$duplicatelist = '998'; +} +### end parsing run-time options ### + +$US = '_'; +$phone_list = '|'; +$MT[0]=''; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +open(out, ">>$VDHLOGfile") || die "Can't open $VDHLOGfile: $!\n"; +print out "\n\nSTARTED DUPLICATE CHECK: $pulldate0|$sysdup: $sysdup|campdup: $campdup|ignorelist: $ignorelist|\n"; +close(out); + +$campSQL=''; +$listSQL=''; +$where='WHERE'; +$and='and'; +if (length($campdup)>0) + { + $stmtA = "select list_id from vicidial_lists where campaign_id='$campdup';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + chop($dup_lists); + $campSQL="list_id IN($dup_lists)"; + if (length($ignorelist)>0) + { + $listSQL=" and list_id NOT IN('$ignorelist')"; + } + + } +else + { + if (length($ignorelist)>0) + { + $listSQL="list_id NOT IN('$ignorelist')"; + } + else + { + $where=''; + $and=''; + } + } + +$stmtA = "select count(*) as tally, phone_number from vicidial_list $where $campSQL $listSQL group by phone_number order by tally desc;"; +if($DBX){print STDERR "\n|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +$nonDUP='0'; +while ( ($sthArows > $i) && ($nonDUP=='0') ) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 1) + { + $dup_count[$i] = "$aryA[0]"; + $dup_list[$i] = "$aryA[1]"; + } + else + { + $nonDUP++; + } + $i++; + } +$sthA->finish(); + +$b=0; +foreach(@dup_list) + { + $dup_limit = ($dup_count[$b] - 1); + $stmtA = "select lead_id,list_id,entry_date from vicidial_list where phone_number='$dup_list[$b]' $and $campSQL $listSQL order by entry_date;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + open(out, ">>$VDHLOGfile") || die "Can't open $VDHLOGfile: $!\n"; + print out "$dup_list[$b]|$dup_count[$b]|"; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if ($rec_count<1) {print out "$aryA[0]|$aryA[1]|$aryA[2]\n";} + else + { + print out " $aryA[0]|$aryA[1]|$aryA[2]\n"; + $DUP_updates .= "'$aryA[0]',"; + } + $rec_count++; + } + close(out); + $sthA->finish(); + + $b++; + + if ($b =~ /100$/i) {print STDERR "0 $b\r";} + if ($b =~ /200$/i) {print STDERR "+ $b\r";} + if ($b =~ /300$/i) {print STDERR "| $b\r";} + if ($b =~ /400$/i) {print STDERR "\\ $b\r";} + if ($b =~ /500$/i) {print STDERR "- $b\r";} + if ($b =~ /600$/i) {print STDERR "/ $b\r";} + if ($b =~ /700$/i) {print STDERR "| $b\r";} + if ($b =~ /800$/i) {print STDERR "+ $b\r";} + if ($b =~ /900$/i) {print STDERR "0 $b\r";} + if ($b =~ /000$/i) {print "|$b|$phone_number|\n";} + + } +chop($DUP_updates); + +if ($liveupdate>0) + { + $stmtA = "UPDATE vicidial_list set list_id='$duplicatelist' where lead_id IN($DUP_updates);"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + + if($DBX){print STDERR "\nDUP UPDATES|$DUP_updates|\n $affected_rows Leads moved to $duplicatelist\n";} + } +else + { + if($DB){print STDERR "\n|$stmtA|\n";} + } + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_IN_new_leads_file.pl b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_IN_new_leads_file.pl new file mode 100644 index 00000000..ddd7807f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_IN_new_leads_file.pl @@ -0,0 +1,1923 @@ +#!/usr/bin/perl +# +# VICIDIAL_IN_new_leads_file.pl version 2.2.0 *DBI-version* +# +# DESCRIPTION: +# script lets you insert leads into the vicidial_list table from a TAB-delimited +# lead file that is in the proper format. (for format see --help) +# +# It is recommended that you run this program on the local Asterisk machine +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 60615-1543 - Added gmt_offset_now lookup for each lead +# - Added option to force a gmt value(field after COMMENTS field) +# 60616-0958 - Added listID override feature to force all leads into same list +# 60807-1003 - Changed to DBI +# - Changed to use /etc/astguiclient.conf for configs +# 60906-1055 - Added filter of non-digits in alt_phone field +# 60913-1236 - Fixed MySQL bugs and non-debug bug +# - Added duplicate check flag option within same list +# 61127-1132 - Added new DST methods +# 61128-1037 - Added postal codes GMT lookup option +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 70801-0912 - Added called count and status to import leads format (fields 24 and 25) +# 70815-2128 - Added entry_date to import leads format (field 26) +# 80128-0105 - Fixed bugs in file loading +# 80428-0320 - UTF8 update +# 80713-0023 - Added last_local_call_time field default of 2008-01-01 +# 80730-1607 - Added minicsv format +# 80812-1204 - Added FTP grab options and summary email options +# 80829-2301 - Added multi-alt-phone entry insertion capability +# 90324-1038 - Added minicsv02 format +# 90401-1340 - Fixed quiet flag functionality +# 90721-1315 - Added rank and owner as vicidial_list fields, stdrankowner format +# 90728-1255 - Added fixed254 file format +# 90802-0758 - Added sctab08 file format +# 90810-0956 - Added sccsv11 file format +# 90830-0953 - Added forcelistfilename option +# 91112-0645 - Added title/alt_phone duplicate checks +# 91129-2202 - removed SELECT STAR and formatting fixes +# + +$secX = time(); +$MT[0]=''; +$Ealert=''; +$force_quiet=0; +$forcelistfilename=0; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$insert_date = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); +$MT[0]=''; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/newleads.$year-$mon-$mday";} + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--forcegmt] = forces gmt value of column after comments column\n"; + print " [--debug] = debug output\n"; + print " [--format=standard] = ability to define a format, standard is default, formats allowed shown in examples\n"; + print " [--forcelistid=1234] = overrides the listID given in the file with the 1234\n"; + print " [--forcelistfilename] = overrides the listID using last number in filename: (XYZ_1234.txt = list ID 1234)\n"; + print " [--forcephonecode=44] = overrides the phone_code given in the lead with the 44\n"; + print " [--duplicate-check] = checks for the same phone number in the same list id before inserting lead\n"; + print " [--duplicate-campaign-check] = checks for the same phone number in the same campaign before inserting lead\n"; + print " [--duplicate-system-check] = checks for the same phone number in the entire system before inserting lead\n"; + print " [--duplicate-tap-list-check] = checks for the same title/alt-number in the same list ID before inserting lead\n"; + print " [--duplicate-tap-system-check] = checks for the same title/alt-number in the entire system before inserting lead\n"; + print " [--postal-code-gmt] = checks for the time zone based on the postal code given where available\n"; + print " [--ftp-pull] = grabs lead files from a remote FTP server, uses REPORTS FTP login information\n"; + print " [--ftp-dir=leads_in] = remote FTP server directory to grab files from, should have a DONE sub-directory\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results for each file to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + print " [-h] = this help screen\n\n"; + print "\n"; + print "This script takes in lead files in the following order when they are placed in the $PATHhome/LEADS_IN directory to be imported into the vicidial_list table (examples):\n\n"; + print "standard:\n"; + print "vendor_lead_code|source_code|list_id|phone_code|phone_number|title|first_name|middle|last_name|address1|address2|address3|city|state|province|postal_code|country|gender|date_of_birth|alt_phone|email|security_phrase|COMMENTS|called_count|status|entry_date|multi-alt-entries\n"; + print "3857822|31022|105|01144|1625551212|MRS|B||BURTON|249 MUNDON ROAD|MALDON|ESSEX||||CM9 6PW|UK||||||COMMENTS|2|B|2007-08-09 00:00:00|7275551212_1_work!7275551213_61_sister house!7275551214_44_neighbor\n\n"; + print "stdrankowner:\n"; + print "vendor_lead_code|source_code|list_id|phone_code|phone_number|title|first_name|middle|last_name|address1|address2|address3|city|state|province|postal_code|country|gender|date_of_birth|alt_phone|email|security_phrase|COMMENTS|called_count|status|entry_date|rank|owner|multi-alt-entries\n"; + print "3857822|31022|105|01144|1625551212|MRS|B||BURTON|249 MUNDON ROAD|MALDON|ESSEX||||CM9 6PW|UK||||||COMMENTS|2|B|2007-08-09 00:00:00|99|6666|7275551212_1_work!7275551213_61_sister house!7275551214_44_neighbor\n\n"; + print "minicsv:\n"; + print "address1,city,name,phone_number,state,postal_code\n"; + print "\"105 Fifth St\",\"Steinhatchee\",\"Frank Smith\",\"3525556601\",\"FL\",\"32359\"\n\n"; + print "minicsv02:\n"; + print "name,address1,city,state,postal_code,phone_number\n"; + print "\"Adam Smith\",\"123 Fourth St\",\"Englishtown\",\"NS\",\"B0C1H0\",\"902-555-1212\"\n\n"; + print "fixed254:\n"; + print "fixed width(without the quotes)\n"; + print "\"9185551212ROSE SMITHS 155 TIGER MOUNTAIN RD. RR 1 BOX 107 HENRYETTA OK74437-941DEMG 226555 0 \"\n\n"; + print "sctab08:\n"; + print "STATE\tNAME\tPHONE\tFAX\tADDRESS\tADDRESS2\tCITY\tZIP\n"; + print "AL\tTom Wilson\t205 5551212\t\t 1689 15th Ave\t\tBESSEMER\t35020\n\n"; + print "sccsv11:\n"; + print "STATE,ID,NAME,ADDRESS,ADDRESS2,CITY,COUNTY,PHONE,FAX,ZIP,COMMENTS\n"; + print "AL,16700,Fairfax Retirement Center (Crowder House),1324 25th St,,FAIRFAX,JEFFERSON,(205) 555-0508,,35733,Comments\n\n"; + + exit; + } + else + { + if ($args =~ /-q/i) + { + $q=1; + $DB=0; + $DBX=0; + $force_quiet=1; + } + if ( ($args =~ /-debug/i) && ($force_quiet < 1) ) + { + $DB=1; + print "\n----- DEBUGGING -----\n\n"; + } + if ( ($args =~ /-debugX/i) && ($force_quiet < 1) ) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + else {$DBX=0;} + + if ($args =~ /-t/i) + { + $T=1; + $TEST=1; + if ($q < 1) {print "\n----- TESTING -----\n\n";} + } + if ($args =~ /-forcegmt/i) + { + $forcegmt=1; + if ($q < 1) {print "\n----- FORCE GMT -----\n\n";} + } + if ($args =~ /-forcelistid=/i) + { + @data_in = split(/-forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + if ($q < 1) {print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n";} + } + else + {$forcelistid = '';} + + if ($args =~ /-forcelistfilename/i) + { + $forcelistfilename=1; + if ($q < 1) {print "\n----- FORCE LISTID FROM FILENAME -----\n\n";} + } + + if ($args =~ /-format=/i) + { + @data_in = split(/-format=/,$args); + $format = $data_in[1]; + $format =~ s/ .*//gi; + if ($q < 1) {print "\n----- FORMAT OVERRIDE: $format -----\n\n";} + } + else + {$format = 'standard';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + if ($q < 1) {print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n";} + } + else + {$forcephonecode = '';} + + if ($args =~ /-duplicate-check/i) + { + $dupcheck=1; + if ($q < 1) {print "\n----- DUPLICATE CHECK -----\n\n";} + } + if ($args =~ /-duplicate-campaign-check/i) + { + $dupcheckcamp=1; + if ($q < 1) {print "\n----- DUPLICATE CAMPAIGN CHECK -----\n\n";} + } + if ($args =~ /-duplicate-system-check/i) + { + $dupchecksys=1; + if ($q < 1) {print "\n----- DUPLICATE SYSTEM CHECK -----\n\n";} + } + if ($args =~ /-duplicate-tap-list-check/i) + { + $duptapchecklist=1; + if ($q < 1) {print "\n----- DUPLICATE TITLE/ALT-PHONE LIST CHECK -----\n\n";} + } + if ($args =~ /-duplicate-tap-system-check/i) + { + $duptapchecksys=1; + if ($q < 1) {print "\n----- DUPLICATE TITLE/ALT-PHONE SYSTEM CHECK -----\n\n";} + } + if ($args =~ /-postal-code-gmt/i) + { + $postalgmt=1; + if ($q < 1) {print "\n----- POSTAL CODE TIMEZONE -----\n\n";} + } + if ($args =~ /-ftp-pull/i) + { + $ftp_pull=1; + if ($q < 1) {print "\n----- FTP LEAD FILE PULL -----\n\n";} + } + if ($args =~ /--ftp-dir=/i) + { + @data_in = split(/--ftp-dir=/,$args); + $ftp_dir = $data_in[1]; + $ftp_dir =~ s/ .*//gi; + if ($q < 1) {print "\n----- REMOTE FTP DIRECTORY: $ftp_dir -----\n\n";} + } + else + {$ftp_dir = '';} + + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + if ($q < 1) {print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n";} + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + if ($q < 1) {print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n";} + } + else + {$email_sender = 'vicidial@localhost';} + + } + } +else + { + print "no command line options set\n"; + $args = ""; + $i=0; + $forcelistid = ''; + $format='standard'; + } +### end parsing run-time options ### + +if ($q < 1) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- VICIDIAL_IN_new_leads_file.pl --\n\n"; + print "This program is designed to take a tab delimited file and import it into the VICIDIAL system. \n\n"; + } + +$i=0; +$US = '_'; +$phone_list = '|'; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +$suf = '.txt'; +$people_packages_id_update=''; +$dir1 = "$PATHhome/LEADS_IN"; +$dir2 = "$PATHhome/LEADS_IN/DONE"; + + if($DBX){print STDERR "\nLEADS_IN directory: |$dir1|\n";} + + +$files_copied_count=0; +$fcc=0; +@FTPfiles=@MT; + +if ($ftp_pull > 0) + { + $i=0; + use Net::FTP; + + $ftp = Net::FTP->new("$VARREPORT_host", Port => "$VARREPORT_port", Debug => "$DBX", Passive => 1) + or die "Can't connect: $@\n"; + $ftp->login("$VARREPORT_user","$VARREPORT_pass") or die "Cannot log in /: $!"; + @FILES = $ftp->dir("$ftp_dir") + or die "Can't get a list of files in $ftp_dir: $!"; + + foreach(@FILES) + { + if ($DBX > 0) {print "$FILES[$i]\n";} + if ($FILES[$i] !~ /^d/i) + { + chomp($FILES[$i]); + @FILEDETAILS = split(/ \d\d:\d\d /, $FILES[$i]); + $FILES[$i] = "$FILEDETAILS[1]"; + $FILES[$i] =~ s/ *$//gi; + + if (length($FILES[$i]) > 4) + { + $GOODfname = $FILES[$i]; + $FILES[$i] =~ s/ /_/gi; + $FILES[$i] =~ s/\(|\)|\||\\|\/|\'|\"|//gi; + $ftp->rename("$ftp_dir/$GOODfname","$ftp_dir/$FILES[$i]"); + $FILEname = $FILES[$i]; + $ftp->get("$ftp_dir/$FILES[$i]", "$dir1/$FILES[$i]"); + + if (!$TEST) {$ftp->rename("$ftp_dir/$FILES[$i]", "$ftp_dir/DONE/$FILES[$i]");} + if ($DB > 0) {print "FTP FILE COPIED: $FILES[$i]\n";} + $FTPfiles[$fcc] = $FILES[$i]; + $fcc++; + $files_copied_count++; + } + } + $i++; + } + if (!$q) {print "$ftp_dir - $VARREPORT_host - $#FILES - $files_copied_count\n";} + + @FILES = @FTPfiles; + } +else + { + @FILES=@MT; + opendir(FILE, "$dir1/"); + @FILES = readdir(FILE); + } + + +$i=0; + +foreach(@FILES) + { + $size1 = 0; + $size2 = 0; + $person_id_delete = ''; + $transaction_id_delete = ''; + $forcelistfilename_name = ''; + + if (length($FILES[$i]) > 4) + { + $size1 = (-s "$dir1/$FILES[$i]"); + if (!$q) {print "$FILES[$i] $size1\n";} + sleep(2); + $size2 = (-s "$dir1/$FILES[$i]"); + if (!$q) {print "$FILES[$i] $size2\n\n";} + + if ( ($FILES[$i] !~ /^TRANSFERRED/i) && ($size1 eq $size2) && (length($FILES[$i]) > 4)) + { + $GOODfname = $FILES[$i]; + $FILES[$i] =~ s/ /_/gi; + $FILES[$i] =~ s/\(|\)|\||\\|\/|\'|\"|//gi; + rename("$dir1/$GOODfname","$dir1/$FILES[$i]"); + $FILEname = $FILES[$i]; + + `cp -f $dir1/$FILES[$i] $dir2/$source$FILES[$i]`; + + if ($forcelistfilename > 0) + { + $forcelistfilename_name = $FILES[$i]; + $forcelistfilename_name =~ s/\..*//gi; + @forcelistfilename_nameARY = split(/_/, $forcelistfilename_name); + $forcelistfilename_listid = $forcelistfilename_nameARY[$#forcelistfilename_nameARY]; + $forcelistfilename_listid =~ s/\D//gi; + if ($DB > 0) {print "$forcelistfilename_listid|$#forcelistfilename_nameARY|$forcelistfilename_name|$FILES[$i]\n";} + } + + + ### open the in file for reading ### + open(infile, "$dir2/$source$FILES[$i]") + || die "Can't open $source$FILES[$i]: $!\n"; + + + ### Grab Server values from the database + $stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = $aryA[0]; + if (length($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + $sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + + if ($isdst) {$LOCAL_GMT_OFF++;} + if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + $a=0; ### each line of input file counter ### + $b=0; ### status of 'APPROVED' counter ### + $c=0; ### status of 'DECLINED' counter ### + $d=0; ### status of 'REFERRED' counter ### + $e=0; ### status of 'ERROR' counter ### + $f=0; ### number of 'DUPLICATE' counter ### + $g=0; ### number of leads with multi-alt-entries + + $multi_insert_counter=0; + $multistmt=''; + $rank=''; + $owner=''; + + #if ($DB) + while () + { + @m=@MT; + # print "$a| $number\n"; + $number = $_; + $raw_number = $number; + chomp($number); + # $number =~ s/,/\|/gi; + $number =~ s/\t/\|/gi; + $number =~ s/\'|\t|\r|\n|\l//gi; + $number =~ s/\'|\t|\r|\n|\l//gi; + $number =~ s/\",,,,,,,\"/\|\|\|\|\|\|\|/gi; + $number =~ s/\",,,,,,\"/\|\|\|\|\|\|/gi; + $number =~ s/\",,,,,\"/\|\|\|\|\|/gi; + $number =~ s/\",,,,\"/\|\|\|\|/gi; + $number =~ s/\",,,\"/\|\|\|/gi; + $number =~ s/\",,\"/\|\|/gi; + $number =~ s/\",\"/\|/gi; + $number =~ s/\"//gi; + @m = split(/\|/, $number); + + $format_set=0; + + # This is the format for the minicsv02 lead files + # name,address1,city,state,postal_code,phone_number + # "Adam Smith","123 Fourth St","Englishtown","NS","B0C1H0","902-555-1212" + if ( ($format =~ /minicsv02/) && ($format_set < 1) ) + { + @name=@MT; + $vendor_lead_code = ''; + $source_code = ''; + $list_id = '995'; + $phone_code = '1'; + $phone_number = $m[5]; chomp($phone_number); $phone_number =~ s/\D//gi; + $USarea = substr($phone_number, 0, 3); + $title = ''; + $full_name = $m[0]; @name = split(/ /, $full_name); + $first_name = $name[0]; chomp($first_name); + $last_name = "$name[1] $name[2]"; chomp($first_name); + $middle_initial = ''; + $address1 = $m[1]; chomp($address1); + $address2 = ''; + $address3 = ''; + $city = $m[2]; chomp($city); + $state = $m[3]; chomp($state); + $province = ''; + $postal_code = $m[4]; chomp($postal_code); + $country = 'USA'; + $gender = 'U'; + $date_of_birth = '0000-00-00'; + $alt_phone = ''; + $email = ''; + $security_phrase = ''; + $comments = ''; + $called_count = 0; + $status = 'NEW'; + + $format_set++; + } + + # This is the format for the minicsv lead files + #"105 Fifth St","Steinhatchee","Frank Smith","3525556601","FL","32359" + if ( ($format =~ /minicsv/) && ($format_set < 1) ) + { + @name=@MT; + $vendor_lead_code = ''; + $source_code = ''; + $list_id = '995'; + $phone_code = '1'; + $phone_number = $m[3]; chomp($phone_number); $phone_number =~ s/\D//gi; + $USarea = substr($phone_number, 0, 3); + $title = ''; + $full_name = $m[2]; @name = split(/ /, $full_name); + $first_name = $name[1]; chomp($first_name); + $last_name = "$name[0] $name[2]"; chomp($first_name); + $middle_initial = ''; + $address1 = $m[0]; chomp($address1); + $address2 = ''; + $address3 = ''; + $city = $m[1]; chomp($city); + $state = $m[4]; chomp($state); + $province = ''; + $postal_code = $m[5]; chomp($postal_code); + $country = 'USA'; + $gender = 'U'; + $date_of_birth = '0000-00-00'; + $alt_phone = ''; + $email = ''; + $security_phrase = ''; + $comments = ''; + $called_count = 0; + $status = 'NEW'; + + $format_set++; + } + + # This is the format for the fixed254 lead files + #"9185551212ROSE SMITHS 155 TIGER MOUNTAIN RD. RR 1 BOX 107 HENRYETTA OK74437-941DEMG 226555 0 " + if ( ($format =~ /fixed254/) && ($format_set < 1) ) + { + $phone_number = substr($raw_number, 0, 10); $phone_number =~ s/\D//gi; + $USarea = substr($phone_number, 0, 3); + $phone_code = '1'; + $first_name = substr($raw_number, 10, 16); $first_name =~ s/\s+$//gi; + $last_name = substr($raw_number, 26, 24); $last_name =~ s/\s+$//gi; + $address1 = substr($raw_number, 50, 40); $address1 =~ s/\s+$//gi; + $address2 = substr($raw_number, 90, 40); $address2 =~ s/\s+$//gi; + $city = substr($raw_number, 130, 28); $city =~ s/\s+$//gi; + $state = substr($raw_number, 158, 2); + $postal_code = substr($raw_number, 160, 5); $postal_code =~ s/\s+$//gi; + $province = substr($raw_number, 169, 4); + $vendor_lead_code = substr($raw_number, 173, 8); $vendor_lead_code =~ s/^\s+//gi; + $security_phrase = substr($raw_number, 181, 4); + + $source_code = ''; + $list_id = '995'; + $country = 'USA'; + $gender = 'U'; + $date_of_birth = '0000-00-00'; + $alt_phone = ''; + $email = ''; + $comments = ''; + $called_count = 0; + $status = 'NEW'; + + $format_set++; + } + + # This is the format for the sctab08 lead files + # STATE\tNAME\tPHONE\tFAX\tADDRESS\tADDRESS2\tCITY\tZIP\n"; + # AL\tTom Wilson\t205 5551212\t\t 1689 15th Ave\t\tBESSEMER\t35020 + if ( ($format =~ /sctab08/) && ($format_set < 1) ) + { + @name=@MT; + $vendor_lead_code = ''; + $source_code = ''; + $list_id = '995'; + $phone_code = '1'; + $phone_number = $m[2]; chomp($phone_number); $phone_number =~ s/\D//gi; + $USarea = substr($phone_number, 0, 3); + $title = ''; + $full_name = $m[1]; @name = split(/ /, $full_name); + $first_name = $name[1]; chomp($first_name); + $last_name = "$name[0] $name[2]"; chomp($first_name); + $middle_initial = ''; + $address1 = $m[4]; chomp($address1); + $address2 = $m[5]; chomp($address1); + $address3 = ''; + $city = $m[6]; chomp($city); + $state = $m[0]; chomp($state); + $province = ''; + $postal_code = $m[7]; chomp($postal_code); + $country = 'USA'; + $gender = 'U'; + $date_of_birth = '0000-00-00'; + $alt_phone = $m[3]; chomp($alt_phone); $alt_phone =~ s/\D//gi; + $email = ''; + $security_phrase = ''; + $comments = ''; + $called_count = 0; + $status = 'NEW'; + + $format_set++; + } + + # This is the format for the sccsv11 lead files + # STATE,ID,NAME,ADDRESS,ADDRESS2,CITY,COUNTY,PHONE,FAX,ZIP,COMMENTS + # AL,16700,Fairfax Retirement Center (Crowder House),1324 25th St,,FAIRFAX,JEFFERSON,(205) 555-0508,,35733,Comments + + if ( ($format =~ /sccsv11/) && ($format_set < 1) ) + { + $raw_number =~ s/\'|\t|\r|\n|\l//gi; + $raw_number =~ s/,/\|/gi; + @m = split(/\|/, $raw_number); + @name=@MT; + $state = $m[0]; chomp($state); + $vendor_lead_code = $m[1]; $vendor_lead_code =~ s/\D//gi; + + $field = 2; + if ($m[$field] =~ /^\"/) + { + $full_name = "$m[$field]"; $field++; + $full_name .= "$m[$field]"; $field++; + } + else + { + $full_name = "$m[$field]"; $field++; + } + $full_name =~ s/\"|\)|\(|;//gi; + @name = split(/ /, $full_name); + $first_name = $name[1]; chomp($first_name); + $last_name = "$name[0] $name[2]"; chomp($first_name); + $middle_initial = ''; + + if ($m[$field] =~ /^\"/) + { + $address1 = "$m[$field]"; $field++; + $address1 .= "$m[$field]"; $field++; + } + else + { + $address1 = "$m[$field]"; $field++; + } + $address1 =~ s/\"|\)|\(|;//gi; + + if ($m[$field] =~ /^\"/) + { + $address2 = "$m[$field]"; $field++; + $address2 .= "$m[$field]"; $field++; + } + else + { + $address2 = "$m[$field]"; $field++; + } + $address2 =~ s/\"|\)|\(|;//gi; + + if ($m[$field] =~ /^\"/) + { + $city = "$m[$field]"; $field++; + $city .= "$m[$field]"; $field++; + } + else + { + $city = "$m[$field]"; $field++; + } + $city =~ s/\"|\)|\(|;//gi; + + if ($m[$field] =~ /^\"/) + { + $province = "$m[$field]"; $field++; + $province .= "$m[$field]"; $field++; + } + else + { + $province = "$m[$field]"; $field++; + } + $province =~ s/\"|\)|\(|;//gi; + + $phone_number = "$m[$field]"; $field++; $phone_number =~ s/\D//gi; + $USarea = substr($phone_number, 0, 3); + $alt_phone = "$m[$field]"; $field++; $alt_phone =~ s/\D//gi; + $postal_code = "$m[$field]"; $field++; + + if ($m[$field] =~ /^\"/) + { + $comments = "$m[$field]"; $field++; + $comments .= "$m[$field]"; $field++; + } + else + { + $comments = "$m[$field]"; $field++; + } + $comments =~ s/\"|\)|\(|;//gi; + + $source_code = ''; + $list_id = '995'; + $phone_code = '1'; + $title = ''; + $address3 = ''; + $country = 'USA'; + $gender = 'U'; + $date_of_birth = '0000-00-00'; + $email = ''; + $security_phrase = ''; + $called_count = 0; + $status = 'NEW'; + + $format_set++; + } + + # This is the format for the stdrankowner lead files (standard plus rank and owner ) + #3857822|31022|105|01144|1625551212|MRS|B||BURTON|249 MUNDON ROAD|MALDON|ESSEX||||CM9 6PW|UK||||||COMMENTS|COUNT|STATUS|INS-DATE|RANK|OWNER + if ( ($format =~ /stdrankowner/) && ($format_set < 1) ) + { + $vendor_lead_code = $m[0]; chomp($vendor_lead_code); + $source_code = $m[1]; chomp($source_code); $source_id = $source_code; + $list_id = $m[2]; chomp($list_id); + $phone_code = $m[3]; chomp($phone_code); $phone_code =~ s/\D//gi; + $phone_number = $m[4]; chomp($phone_number); $phone_number =~ s/\D//gi; + $USarea = substr($phone_number, 0, 3); + $title = $m[5]; chomp($title); + $first_name = $m[6]; chomp($first_name); + $middle_initial = $m[7]; chomp($middle_initial); + $last_name = $m[8]; chomp($last_name); + $address1 = $m[9]; chomp($address1); + $address2 = $m[10]; chomp($address2); + $address3 = $m[11]; chomp($address3); + $city = $m[12]; chomp($city); + $state = $m[13]; chomp($state); + $province = $m[14]; chomp($province); + $postal_code = $m[15]; chomp($postal_code); + $country = $m[16]; chomp($country); + $gender = $m[17]; + $date_of_birth = $m[18]; + $alt_phone = $m[19]; chomp($alt_phone); $alt_phone =~ s/\D//gi; + $email = $m[20]; + $security_phrase = $m[21]; + $comments = $m[22]; + $called_count = $m[23]; $called_count =~ s/\D|\r|\n|\t//gi; if (length($called_count)<1) {$called_count=0;} + $status = $m[24]; $status =~ s/ |\r|\n|\t//gi; if (length($status)<1) {$status='NEW';} + $insert_date = $m[25]; $insert_date =~ s/\r|\n|\t|[a-zA-Z]//gi; if (length($insert_date)<6) {$insert_date=$pulldate0;} + if ($insert_date =~ /\//) + { + @iD = split(/\//, $insert_date); + $iD[0] = sprintf("%02d", $iD[0]); + $iD[1] = sprintf("%02d", $iD[1]); + $insert_date = "$iD[2]-$iD[0]-$iD[1]"; + } + $rank = $m[26]; + $owner = $m[27]; + $multi_alt_phones = $m[28]; + + $map_count=0; + if (length($multi_alt_phones)>4) + { + @map=@MT; @ALTm_phone_code=@MT; @ALTm_phone_number=@MT; @ALTm_phone_note=@MT; + @map = split(/\!/, $multi_alt_phones); + $map_count = ($#map +1); + if ($DBX) {print "multi-al-entry: $a|$map_count|$multi_alt_phones\n";} + $g++; + $r=0; + while ($r < $map_count) + { + @ncn=@MT; + @ncn = split(/\_/, $map[$r]); + print "$ncn[0]|$ncn[1]|$ncn[2]"; + + if (length($forcephonecode) > 0) + {$ALTm_phone_code[$r] = $forcephonecode;} + else + {$ALTm_phone_code[$r] = $ncn[1];} + if (length($ALTm_phone_code[$r]) < 1) + {$ALTm_phone_code[$r]='1';} + $ALTm_phone_number[$r] = $ncn[0]; + $ALTm_phone_note[$r] = $ncn[2]; + $r++; + } + } + + $format_set++; + } + + # This is the format for the standard lead files + #3857822|31022|105|01144|1625551212|MRS|B||BURTON|249 MUNDON ROAD|MALDON|ESSEX||||CM9 6PW|UK||||||COMMENTS + if ($format_set < 1) + { + $vendor_lead_code = $m[0]; chomp($vendor_lead_code); + $source_code = $m[1]; chomp($source_code); $source_id = $source_code; + $list_id = $m[2]; chomp($list_id); + $phone_code = $m[3]; chomp($phone_code); $phone_code =~ s/\D//gi; + $phone_number = $m[4]; chomp($phone_number); $phone_number =~ s/\D//gi; + $USarea = substr($phone_number, 0, 3); + $title = $m[5]; chomp($title); + $first_name = $m[6]; chomp($first_name); + $middle_initial = $m[7]; chomp($middle_initial); + $last_name = $m[8]; chomp($last_name); + $address1 = $m[9]; chomp($address1); + $address2 = $m[10]; chomp($address2); + $address3 = $m[11]; chomp($address3); + $city = $m[12]; chomp($city); + $state = $m[13]; chomp($state); + $province = $m[14]; chomp($province); + $postal_code = $m[15]; chomp($postal_code); + $country = $m[16]; chomp($country); + $gender = $m[17]; + $date_of_birth = $m[18]; + $alt_phone = $m[19]; chomp($alt_phone); $alt_phone =~ s/\D//gi; + $email = $m[20]; + $security_phrase = $m[21]; + $comments = $m[22]; + $called_count = $m[23]; $called_count =~ s/\D|\r|\n|\t//gi; if (length($called_count)<1) {$called_count=0;} + $status = $m[24]; $status =~ s/ |\r|\n|\t//gi; if (length($status)<1) {$status='NEW';} + $insert_date = $m[25]; $insert_date =~ s/\r|\n|\t|[a-zA-Z]//gi; if (length($insert_date)<6) {$insert_date=$pulldate0;} + if ($insert_date =~ /\//) + { + @iD = split(/\//, $insert_date); + $iD[0] = sprintf("%02d", $iD[0]); + $iD[1] = sprintf("%02d", $iD[1]); + $insert_date = "$iD[2]-$iD[0]-$iD[1]"; + } + $multi_alt_phones = $m[26]; + + $map_count=0; + if (length($multi_alt_phones)>4) + { + @map=@MT; @ALTm_phone_code=@MT; @ALTm_phone_number=@MT; @ALTm_phone_note=@MT; + @map = split(/\!/, $multi_alt_phones); + $map_count = ($#map +1); + if ($DBX) {print "multi-al-entry: $a|$map_count|$multi_alt_phones\n";} + $g++; + $r=0; + while ($r < $map_count) + { + @ncn=@MT; + @ncn = split(/\_/, $map[$r]); + print "$ncn[0]|$ncn[1]|$ncn[2]"; + + if (length($forcephonecode) > 0) + {$ALTm_phone_code[$r] = $forcephonecode;} + else + {$ALTm_phone_code[$r] = $ncn[1];} + if (length($ALTm_phone_code[$r]) < 1) + {$ALTm_phone_code[$r]='1';} + $ALTm_phone_number[$r] = $ncn[0]; + $ALTm_phone_note[$r] = $ncn[2]; + $r++; + } + } + } + + if (length($rank)<1) {$rank='0';} + + if (length($forcelistfilename_listid) > 0) + { + $list_id = $forcelistfilename_listid; # set list_id to filename override value + } + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + if ($DBX) {print "$a|$phone_number\n";} + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + # set default values + $modify_date = ""; + $user = ""; + $called_since_last_reset='N'; + $gmt_offset = '0'; + + if ($forcegmt > 0) + { + $gmt_offset = $m[23]; # set GMT offset value to 24th field value + } + else + { + $postalgmt_found=0; + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($area_GMT - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + } + + + if ($map_count > 0) + { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values('','$insert_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments','$called_count','2008-01-01 00:00:00','$rank','$owner');"; + if (!$T) {$affected_rows = $dbhA->do($stmtZ); } # or die "Couldn't execute query: |$stmtZ|\n"; + $lead_id = $dbhA->{'mysql_insertid'}; + if($DB){print STDERR "\n|$affected_rows|$stmtZ|\n";} + $c++; + + $r=0; $s=0; + while ($r < $map_count) + { + $s++; + $stmtZ = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; + if (!$T) {$affected_rows = $dbhA->do($stmtZ); } # or die "Couldn't execute query: |$stmtZ|\n"; + # $alt_phone_id = $dbhA->{'mysql_insertid'}; + if($DB){print STDERR "\n|$affected_rows|$stmtZ|\n";} + $r++; + } + } + else + { + if ($multi_insert_counter > 8) + { + ### insert good lead into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$insert_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments','$called_count','2008-01-01 00:00:00','$rank','$owner');"; + if (!$T) {$affected_rows = $dbhA->do($stmtZ); } # or die "Couldn't execute query: |$stmtZ|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtZ|\n";} + + $multistmt=''; + $multi_insert_counter=0; + $c++; + } + else + { + $multistmt .= "('','$insert_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments','$called_count','2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + } + $b++; + } + else + { + if ($dup_lead > 0) + {if ($q < 1) {print "DUPLICATE: $phone_number|$list_id|$dup_lead_list|$a|$title $alt_phone\n";} $f++;} + else + {if ($q < 1) {print "BAD Home_Phone: $phone_number|$vendor_id|$a\n";} $e++;} + } + + $a++; + + if ($q < 1) + { + if ($a =~ /100$/i) {print STDERR "0 $a\r";} + if ($a =~ /200$/i) {print STDERR "+ $a\r";} + if ($a =~ /300$/i) {print STDERR "| $a\r";} + if ($a =~ /400$/i) {print STDERR "\\ $a\r";} + if ($a =~ /500$/i) {print STDERR "- $a\r";} + if ($a =~ /600$/i) {print STDERR "/ $a\r";} + if ($a =~ /700$/i) {print STDERR "| $a\r";} + if ($a =~ /800$/i) {print STDERR "+ $a\r";} + if ($a =~ /900$/i) {print STDERR "0 $a\r";} + if ($a =~ /000$/i) {print "$a|$b|$c|$d|$e|$f|$g|$phone_number|\n";} + } + + } + + if (length($multistmt) > 10) + { + chop($multistmt); + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt;"; + if (!$T) {$affected_rows = $dbhA->do($stmtZ); } # or die "Couldn't execute query: |$stmtZ|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtZ|\n";} + + $multistmt=''; + $multi_insert_counter=0; + $c++; + } + + + ### open the stats out file for writing ### + open(Sout, ">>$VDHLOGfile") + || die "Can't open $VDHLOGfile: $!\n"; + + + ### close file handler and DB connections ### + $Falert = "\n\nTOTALS FOR $FILEname:\n"; + $Falert .= "Lines in lead file: $a\n"; + $Falert .= "INSERTED: $b\n"; + $Falert .= "INSERT STATEMENTS: $c\n"; + $Falert .= "ERROR: $e\n"; + $Falert .= "MULTI-ALT-PHONE: $g\n"; + if ($f > 0) + {$Falert .= "DUPLICATES: $f\n";} + + if ($q < 1) {print "$Falert";} + print Sout "$Falert"; + $Ealert .= "$Falert"; + + close(infile); + close(Sout); + chmod 0777, "$VDHLOGfile"; + + ### Move file to the DONE directory locally + if (!$T) {`mv -f $dir1/$FILEname $dir2/$FILEname`;} + + } + } + $i++; + } + + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if ($q < 1) + { + print "script execution time in seconds: $secZ minutes: $secZm\n"; + } + +###### EMAIL SECTION + +if ( (length($Ealert)>5) && (length($email_list) > 3) ) + { + if ($q < 1) {print "Sending email: $email_list\n";} + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VICIDIAL LEAD FILE LOAD $pulldate0"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + Message => "VICIDIAL LEAD FILE LOAD $pulldate0\n\n$Ealert\n" + ); + sendmail(%mail) or die $mail::Sendmail::error; + if ($q < 1) {print "ok. log says:\n", $mail::sendmail::log;} ### print mail log for status + } + +exit; + + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_UPDATE_leads_status_file.pl b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_UPDATE_leads_status_file.pl new file mode 100644 index 00000000..70ea379e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_UPDATE_leads_status_file.pl @@ -0,0 +1,564 @@ +#!/usr/bin/perl +# +# VICIDIAL_UPDATE_leads_status_file.pl version 2.2.0 +# +# DESCRIPTION: +# script lets you update vicidial_list records from a PIPE-delimited +# file that is in the proper format. (for format see --help) +# +# NOTE: add to DNC feature is not implemented yet +# +# /usr/share/astguiclient/VICIDIAL_UPDATE_leads_status_file.pl --quiet --delete-from-hopper +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 90627-1402 - First Build +# 90907-0635 - Added list_id to table and allowed for multiple matches in results +# + +$secX = time(); +$MT[0]=''; +$Ealert=''; +$force_quiet=0; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$SQL_date = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); +$MT[0]=''; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/updateleads.$year-$mon-$mday";} + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n"; + print " [--quiet] = quiet\n"; + print " [--test] = test\n"; + print " [--debug] = debug output\n"; + print " [--delete-from-hopper] = delete lead from hopper if present\n"; + print " [--format=standard] = ability to define a format, standard is default, formats allowed shown in examples\n"; + print " [--ftp-pull] = grabs lead files from a remote FTP server, uses REPORTS FTP login information\n"; + print " [--ftp-dir=leads_in] = remote FTP server directory to grab files from, should have a DONE sub-directory\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results for each file to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + print " [--help] = this help screen\n\n"; + print "\n"; + print "This script takes in files in the following order when they are placed in the $PATHhome/UPDATE_IN directory to be imported into the vicidial_list table (examples):\n\n"; + print "standard:\n"; + print "vendor_lead_code|new_status|DNC_this_lead\n\n"; + print "leadid:\n"; + print "lead_id|new_status|DNC_this_lead\n\n"; + + exit; + } + else + { + if ($args =~ /-quiet/i) + { + $q=1; + $DB=0; + $DBX=0; + $force_quiet=1; + } + if ( ($args =~ /-debug/i) && ($force_quiet < 1) ) + { + $DB=1; + print "\n----- DEBUGGING -----\n\n"; + } + if ( ($args =~ /-debugX/i) && ($force_quiet < 1) ) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + else {$DBX=0;} + if ($args =~ /--delete-from-hopper/) + { + $delete_from_hopper=1; + if ($q < 1) {print "\n----- DELETE FROM HOPPER -----\n\n";} + } + else {$DBX=0;} + + if ($args =~ /-format=/i) + { + @data_in = split(/-format=/,$args); + $format = $data_in[1]; + $format =~ s/ .*//gi; + if ($q < 1) {print "\n----- FORMAT OVERRIDE: $format -----\n\n";} + } + else + {$format = 'standard';} + if ($args =~ /-test/i) + { + $T=1; + $TEST=1; + if ($q < 1) {print "\n----- TESTING -----\n\n";} + } + if ($args =~ /-ftp-pull/i) + { + $ftp_pull=1; + if ($q < 1) {print "\n----- FTP LEAD FILE PULL -----\n\n";} + } + if ($args =~ /--ftp-dir=/i) + { + @data_in = split(/--ftp-dir=/,$args); + $ftp_dir = $data_in[1]; + $ftp_dir =~ s/ .*//gi; + if ($q < 1) {print "\n----- REMOTE FTP DIRECTORY: $ftp_dir -----\n\n";} + } + else + {$ftp_dir = '';} + + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + if ($q < 1) {print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n";} + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + if ($q < 1) {print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n";} + } + else + {$email_sender = 'vicidial@localhost';} + + } + } +else + { + print "no command line options set\n"; + $args = ""; + $i=0; + $forcelistid = ''; + $format='standard'; + } +### end parsing run-time options ### + +if ($q < 1) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- VICIDIAL_UPDATE_leads_status_file.pl --\n\n"; + print "This program is designed to take a pipe delimited file and update vicidial_list entries in the VICIDIAL system. \n\n"; + } + +$i=0; +$US = '_'; +$phone_list = '|'; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +$suf = '.txt'; +$people_packages_id_update=''; +$dir1 = "$PATHhome/UPDATE_IN"; +$dir2 = "$PATHhome/UPDATE_IN/DONE"; + + if($DBX){print STDERR "\nUPDATE_IN directory: |$dir1|\n";} + +if ($ftp_pull > 0) + { + $i=0; + use Net::FTP; + + $files_copied_count=0; + + $ftp = Net::FTP->new("$VARREPORT_host", Port => "$VARREPORT_port", Debug => "$DBX", Passive => 1) + or die "Can't connect: $@\n"; + $ftp->login("$VARREPORT_user","$VARREPORT_pass") or die "Cannot log in /: $!"; + @FILES = $ftp->dir("$ftp_dir") + or die "Can't get a list of files in $ftp_dir: $!"; + + foreach(@FILES) + { + if ($DBX > 0) {print "$FILES[$i]\n";} + if ($FILES[$i] !~ /^d/i) + { + chomp($FILES[$i]); + @FILEDETAILS = split(/ \d\d:\d\d /, $FILES[$i]); + $FILES[$i] = "$FILEDETAILS[1]"; + $FILES[$i] =~ s/ *$//gi; + + if (length($FILES[$i]) > 4) + { + $GOODfname = $FILES[$i]; + $FILES[$i] =~ s/ /_/gi; + $FILES[$i] =~ s/\(|\)|\||\\|\/|\'|\"|//gi; + $ftp->rename("$ftp_dir/$GOODfname","$ftp_dir/$FILES[$i]"); + $FILEname = $FILES[$i]; + $ftp->get("$ftp_dir/$FILES[$i]", "$dir1/$FILES[$i]"); + + if (!$TEST) {$ftp->rename("$ftp_dir/$FILES[$i]", "$ftp_dir/DONE/$FILES[$i]");} + if ($DB > 0) {print "FTP FILE COPIED: $FILES[$i]\n";} + $files_copied_count++; + } + } + $i++; + } + if (!$q) {print "$ftp_dir - $VARREPORT_host - $#FILES - $files_copied_count\n";} + } + + +$i=0; +@FILES=@MT; +opendir(FILE, "$dir1/"); +@FILES = readdir(FILE); + +foreach(@FILES) + { + $size1 = 0; + $size2 = 0; + $person_id_delete = ''; + $transaction_id_delete = ''; + + if (length($FILES[$i]) > 4) + { + + $size1 = (-s "$dir1/$FILES[$i]"); + if (!$q) {print "$FILES[$i] $size1\n";} + sleep(2); + $size2 = (-s "$dir1/$FILES[$i]"); + if (!$q) {print "$FILES[$i] $size2\n\n";} + + + if ( ($FILES[$i] !~ /^TRANSFERRED/i) && ($size1 eq $size2) && (length($FILES[$i]) > 4)) + { + $GOODfname = $FILES[$i]; + $FILES[$i] =~ s/ /_/gi; + $FILES[$i] =~ s/\(|\)|\||\\|\/|\'|\"|//gi; + rename("$dir1/$GOODfname","$dir1/$FILES[$i]"); + $FILEname = $FILES[$i]; + + `cp -f $dir1/$FILES[$i] $dir2/$source$FILES[$i]`; + + ### open the in file for reading ### + open(infile, "$dir2/$source$FILES[$i]") + || die "Can't open $source$FILES[$i]: $!\n"; + + $a=0; ### each line of input file counter ### + $b=0; ### status of 'UPDATED' counter ### + $c=0; ### status of 'NOT_UPDATED' counter ### + $d=0; ### status of 'NOT_FOUND' counter ### + + $multi_insert_counter=0; + $multistmt=''; + + #if ($DB) + while () + { + $lead_id = ''; + $vendor_lead_code = ''; + $old_status = ''; + $phone_number = ''; + $old_list_id = ''; + $Uaffected_rows = 0; + @m=@MT; + # print "$a| $number\n"; + $number = $_; + chomp($number); + # $number =~ s/,/\|/gi; + $number =~ s/\t/\|/gi; + $number =~ s/\'|\t|\r|\n|\l//gi; + $number =~ s/\'|\t|\r|\n|\l//gi; + $number =~ s/\",,,,,,,\"/\|\|\|\|\|\|\|/gi; + $number =~ s/\",,,,,,\"/\|\|\|\|\|\|/gi; + $number =~ s/\",,,,,\"/\|\|\|\|\|/gi; + $number =~ s/\",,,,\"/\|\|\|\|/gi; + $number =~ s/\",,,\"/\|\|\|/gi; + $number =~ s/\",,\"/\|\|/gi; + $number =~ s/\",\"/\|/gi; + $number =~ s/\"//gi; + @m = split(/\|/, $number); + + $format_set=0; + + # This is the format for the leadid update files + # lead_id|new_status|add_to_DNC + # "32124","HOLD","N" + if ( ($format =~ /leadid/) && ($format_set < 1) ) + { + @name=@MT; + $vendor_lead_code = ''; + $lead_id = $m[0]; + $status = $m[1]; + $add_to_dnc = $m[2]; + + $lookupSQL = "lead_id='$lead_id'"; + + $format_set++; + } + + # This is the format for the standard update files + # vendor_lead_code|new_status|add_to_DNC + # 321654987,HOLD,N + if ($format_set < 1) + { + $vendor_lead_code = $m[0]; + $lead_id = ''; + $status = $m[1]; + $add_to_dnc = $m[2]; + + $lookupSQL = "vendor_lead_code='$vendor_lead_code'"; + } + + if ($DBX) {print "$a|$vendor_lead_code|$lead_id|$status|$add_to_dnc\n";} + + + $lead_found=0; + $stmtA = "SELECT lead_id,vendor_lead_code,status,phone_number,list_id from vicidial_list where $lookupSQL;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $h=0; + if ($sthArows > 0) + { + $lead_id = ''; + $vendor_lead_code = ''; + $old_status = ''; + $phone_number = ''; + $old_list_id = ''; + } + while ($sthArows > $h) + { + @aryA = $sthA->fetchrow_array; + $lead_idSQL .= "'$aryA[0]',"; + $lead_id .= "$aryA[0],"; + $vendor_lead_code .= "$aryA[1],"; + $old_status .= "$aryA[2],"; + $phone_number .= "$aryA[3],"; + $old_list_id .= "$aryA[4],"; + + $lead_found++; + $h++; + } + $sthA->finish(); + + if ($sthArows > 0) + { + chop($lead_idSQL); + chop($lead_id); + chop($vendor_lead_code); + chop($old_status); + chop($phone_number); + chop($old_list_id); + } + + if ($lead_found > 0) + { + $stmtZ = "UPDATE vicidial_list SET status='$status' where $lookupSQL;"; + if (!$T) {$Uaffected_rows = $dbhA->do($stmtZ); } # or die "Couldn't execute query: |$stmtZ|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtZ|\n";} + if ($Uaffected_rows > 0) + {$result = 'UPDATED'; $b++;} + else + {$result = 'NO_UPDATE'; $c++;} + + if ($delete_from_hopper > 0) + { + $stmtZ = "DELETE from vicidial_hopper where lead_id IN($lead_id);"; + if (!$T) {$Uaffected_rows = $dbhA->do($stmtZ); } # or die "Couldn't execute query: |$stmtZ|\n"; + if($DB){print STDERR "\n|$Uaffected_rows|$stmtZ|\n";} + } + } + else + {$result = 'NOT_FOUND'; $d++;} + + # CREATE TABLE vicidial_list_update_log ( + # event_date DATETIME, + # lead_id INT(9) UNSIGNED, + # vendor_id VARCHAR(20), + # phone_number VARCHAR(20), + # status VARCHAR(6), + # old_status VARCHAR(6), + # filename VARCHAR(255) default '', + # result VARCHAR(20), + # result_rows SMALLINT(3) UNSIGNED default '0', + # index (event_date) + # ); + + $stmtZ = "INSERT INTO vicidial_list_update_log SET event_date='$SQL_date',lead_id='$lead_id',vendor_id='$vendor_lead_code',phone_number='$phone_number',status='$status',old_status='$old_status',filename='$FILEname',result='$result',result_rows='$Uaffected_rows',list_id='$old_list_id';"; + if (!$T) {$affected_rows = $dbhA->do($stmtZ); } # or die "Couldn't execute query: |$stmtZ|\n"; + # $alt_phone_id = $dbhA->{'mysql_insertid'}; + if($DB){print STDERR "\n|$affected_rows|$stmtZ|\n";} + + $a++; + + if ($q < 1) + { + if ($a =~ /100$/i) {print STDERR "0 $a\r";} + if ($a =~ /200$/i) {print STDERR "+ $a\r";} + if ($a =~ /300$/i) {print STDERR "| $a\r";} + if ($a =~ /400$/i) {print STDERR "\\ $a\r";} + if ($a =~ /500$/i) {print STDERR "- $a\r";} + if ($a =~ /600$/i) {print STDERR "/ $a\r";} + if ($a =~ /700$/i) {print STDERR "| $a\r";} + if ($a =~ /800$/i) {print STDERR "+ $a\r";} + if ($a =~ /900$/i) {print STDERR "0 $a\r";} + if ($a =~ /000$/i) {print "$a|$b|$c|$d|$phone_number|\n";} + } + + } + + + ### open the stats out file for writing ### + open(Sout, ">>$VDHLOGfile") + || die "Can't open $VDHLOGfile: $!\n"; + + ### close file handler and DB connections ### + $Falert = "\n\nTOTALS FOR $FILEname:\n"; + $Falert .= "Lines in update file: $a\n"; + $Falert .= "UPDATED: $b\n"; + $Falert .= "NOT UPDATED: $c\n"; + $Falert .= "NOT FOUND: $d\n"; + + if ($q < 1) {print "$Falert";} + print Sout "$Falert"; + $Ealert .= "$Falert"; + + close(infile); + close(Sout); + chmod 0777, "$VDHLOGfile"; + + ### Move file to the DONE directory locally + if (!$T) {`mv -f $dir1/$FILEname $dir2/$FILEname`;} + + } + } + $i++; + } + + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if ($q < 1) + { + print "script execution time in seconds: $secZ minutes: $secZm\n"; + } + +###### EMAIL SECTION + +if ( (length($Ealert)>5) && (length($email_list) > 3) ) + { + if ($q < 1) {print "Sending email: $email_list\n";} + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VICIDIAL LEAD UPDATE LOAD $pulldate0"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + Message => "VICIDIAL LEAD UPDATE LOAD $pulldate0\n\n$Ealert\n" + ); + sendmail(%mail) or die $mail::Sendmail::error; + if ($q < 1) {print "ok. log says:\n", $mail::sendmail::log;} ### print mail log for status + } + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_fix_list_statuses.pl b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_fix_list_statuses.pl new file mode 100644 index 00000000..d7014726 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_fix_list_statuses.pl @@ -0,0 +1,177 @@ +#!/usr/bin/perl +# +# VICIDIAL_fix_lead_statuses.pl version 2.0.5 +# +# DESCRIPTION: +# resets the status in vicidial_list for leads marked in status NOUSE +# Very useful if you manually mess up the list statuses with a SQL query +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 80308-0915 - first build +# + +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$DB=1; + +$liveupdate=0; + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/dupleads.$year-$mon-$mday";} + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- VICIDIAL_fix_list_statuses.pl --\n\n"; +print "This program is designed to scan all leads marked NOUSE and set them to their proper status according to the logs. \n\n"; + + +$stmtA = "select lead_id,list_id from vicidial_list where status='NOUSE';"; +if($DBX){print STDERR "\n|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +$nonDUP='0'; +while ( ($sthArows > $i) && ($nonDUP=='0') ) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 1) + { + $lead_id[$i] = "$aryA[0]"; + $list_id[$i] = "$aryA[1]"; + } + $i++; + } +$sthA->finish(); + +$b=0; +foreach(@lead_id) + { + $Nstatus=''; + $Nepoch=0; + $Cstatus=''; + $Cepoch=0; + $stmtA = "select status,start_epoch from vicidial_log where lead_id='$lead_id[$b]' order by call_date desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Nstatus = $aryA[0]; + $Nepoch = $aryA[1]; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "select status,start_epoch from vicidial_closer_log where lead_id='$lead_id[$b]' order by closecallid desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Cstatus = $aryA[0]; + $Cepoch = $aryA[1]; + $rec_count++; + } + $sthA->finish(); + + if ($Cepoch > $Nepoch) {$NEWstatus = $Cstatus;} + else {$NEWstatus = $Nstatus;} + + $stmtA = "UPDATE vicidial_list set status='$NEWstatus' where lead_id='$lead_id[$b]';"; + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + if($DB){print STDERR "|$b|$lead_id[$b]|$Nstatus|$Cstatus|$list_id[$b]||$stmtA|\n";} + + $b++; + + if ($b =~ /100$/i) {print STDERR "0 $b\r";} + if ($b =~ /200$/i) {print STDERR "+ $b\r";} + if ($b =~ /300$/i) {print STDERR "| $b\r";} + if ($b =~ /400$/i) {print STDERR "\\ $b\r";} + if ($b =~ /500$/i) {print STDERR "- $b\r";} + if ($b =~ /600$/i) {print STDERR "/ $b\r";} + if ($b =~ /700$/i) {print STDERR "| $b\r";} + if ($b =~ /800$/i) {print STDERR "+ $b\r";} + if ($b =~ /900$/i) {print STDERR "0 $b\r";} + if ($b =~ /000$/i) {print "|$b|$lead_id[$b]|$Nstatus|$Cstatus|$list_id[$b]|\n";} + + } +chop($DUP_updates); + + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_fix_status_mismatch.pl b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_fix_status_mismatch.pl new file mode 100644 index 00000000..620931e2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_fix_status_mismatch.pl @@ -0,0 +1,180 @@ +#!/usr/bin/perl +# +# VICIDIAL_fix_status_mismatch.pl version 2.0.5 +# +# DESCRIPTION: +# resets the status in vicidial_list for leads marked in status NOUSE +# Very useful if you manually mess up the list statuses with a SQL query +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 80318-0112 - first build +# + +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$DB=1; + +$liveupdate=0; + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/dupleads.$year-$mon-$mday";} + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- VICIDIAL_fix_status_mismatch.pl --\n\n"; +print "This program is designed to scan all leads marked A4 and set them to their proper status according to the logs. \n\n"; + + +$stmtA = "select distinct lead_id,status from vicidial_closer_log where status IN('A1','A2','A3','A4') and call_date > '2008-03-01 01:00:00';"; +if($DBX){print STDERR "\n|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +$nonDUP='0'; +while ( ($sthArows > $i) && ($nonDUP=='0') ) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 1) + { + $lead_id[$i] = "$aryA[0]"; + $status[$i] = "$aryA[1]"; + } + $i++; + } +$sthA->finish(); + +$b=0; +foreach(@lead_id) + { + $Nstatus=''; + $Nepoch=0; + $Cstatus=''; + $Cepoch=0; + $stmtA = "select status,start_epoch from vicidial_log where lead_id='$lead_id[$b]' order by call_date desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Nstatus = $aryA[0]; + $Nepoch = $aryA[1]; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "select status,start_epoch from vicidial_closer_log where lead_id='$lead_id[$b]' order by closecallid desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Cstatus = $aryA[0]; + $Cepoch = $aryA[1]; + $rec_count++; + } + $sthA->finish(); + + if ($Cepoch > $Nepoch) {$NEWstatus = $Cstatus;} + else {$NEWstatus = $Nstatus;} + + if ($Cstatus !~ /$status[$b]/) + { + $stmtA = "UPDATE vicidial_list set status='$Cstatus' where lead_id='$lead_id[$b]';"; + #$affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + if($DB){print STDERR "|$b|$lead_id[$b]|$Nstatus|$Cstatus|$status[$b]||$stmtA|\n";} + $h++; + } + $b++; + + if ($b =~ /100$/i) {print STDERR "0 $b - $h\r";} + if ($b =~ /200$/i) {print STDERR "+ $b - $h\r";} + if ($b =~ /300$/i) {print STDERR "| $b - $h\r";} + if ($b =~ /400$/i) {print STDERR "\\ $b - $h\r";} + if ($b =~ /500$/i) {print STDERR "- $b - $h\r";} + if ($b =~ /600$/i) {print STDERR "/ $b - $h\r";} + if ($b =~ /700$/i) {print STDERR "| $b - $h\r";} + if ($b =~ /800$/i) {print STDERR "+ $b - $h\r";} + if ($b =~ /900$/i) {print STDERR "0 $b - $h\r";} + if ($b =~ /000$/i) {print "|$b|$h|$lead_id[$b]|$Nstatus|$Cstatus|$status[$b]|\n";} + + } +chop($DUP_updates); + + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_last_local_call_time_UPDATE.pl b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_last_local_call_time_UPDATE.pl new file mode 100644 index 00000000..4c6e7c54 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/VICIDIAL_last_local_call_time_UPDATE.pl @@ -0,0 +1,188 @@ +#!/usr/bin/perl +# +# VICIDIAL_last_local_call_time_UPDATE.pl version 2.0.5 +# +# DESCRIPTION: +# populates the new last_local_call_time field in the vicidial_list table from +# records in the vicidial_log and vicidial_closer_log table +# +# Copyright (C) 2008 Matt Florell LICENSE: AGPLv2 +# +# CHANGES +# 80714-0530 - first build +# + +$DB=0; +$liveupdate=0; +$calculate_recycle_counts=1; + +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/dupleads.$year-$mon-$mday";} + +print "\n\n\n\n\n\n\n\n\n\n\n\n-- VICIDIAL_last_local_call_time_UPDATE.pl --\n\n"; +print "populates the new last_local_call_time field in the vicidial_list table from records in the vicidial_log and vicidial_closer_log table. \n\n"; + + +$stmtA = "select lead_id,list_id,called_count from vicidial_list limit 10000000;"; +if($DBX){print STDERR "\n|$stmtA|\n";} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$i=0; +$nonDUP='0'; +while ( ($sthArows > $i) && ($nonDUP=='0') ) + { + @aryA = $sthA->fetchrow_array; + if ($aryA[0] > 1) + { + $lead_id[$i] = "$aryA[0]"; + $list_id[$i] = "$aryA[1]"; + $Ncount[$i] = "$aryA[2]"; + } + $i++; + } +$sthA->finish(); + +$b=0; +foreach(@lead_id) + { + $Ncall_date='2008-01-01 00:00:00'; + $Nepoch=0; + $Ccall_date='2008-01-01 00:00:00'; + $Cepoch=0; + $stmtA = "select call_date,start_epoch from vicidial_log where lead_id='$lead_id[$b]' order by call_date desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Ncall_date = $aryA[0]; + $Nepoch = $aryA[1]; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "select call_date,start_epoch from vicidial_closer_log where lead_id='$lead_id[$b]' order by closecallid desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $Ccall_date = $aryA[0]; + $Cepoch = $aryA[1]; + $rec_count++; + } + $sthA->finish(); + + if ($Cepoch > $Nepoch) {$NEWcall_date = $Ccall_date;} + else {$NEWcall_date = $Ncall_date;} + + if ($calculate_recycle_counts > 0) + { + if ( ($Ncount[$b]==0) or ($Ncount[$b]=='') ) {$Ncount[$b] = 'N';} + if ($Ncount[$b]==1) {$Ncount[$b] = 'Y';} + if ( ($Ncount[$b]>1) && ($Ncount[$b]<11) ) {$Ncount[$b] = ($Ncount[$b] - 1); $Ncount[$b] = "Y$Ncount[$b]";} + if ($Ncount[$b]>10) {$Ncount[$b] = 'Y10';} + $called_since_last_resetSQL = ",called_since_last_reset='$Ncount[$b]'"; + } + else + {$called_since_last_resetSQL = "";} + + $stmtA = "UPDATE vicidial_list set last_local_call_time='$NEWcall_date' $called_since_last_resetSQL where lead_id='$lead_id[$b]';"; + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + if($DB){print STDERR "|$b|$lead_id[$b]|$Ncall_date|$Ccall_date|$list_id[$b]|$Ncount[$b]|$stmtA|\n";} + + $b++; + + if ($b =~ /100$/i) {print STDERR "0 $b\r";} + if ($b =~ /200$/i) {print STDERR "+ $b\r";} + if ($b =~ /300$/i) {print STDERR "| $b\r";} + if ($b =~ /400$/i) {print STDERR "\\ $b\r";} + if ($b =~ /500$/i) {print STDERR "- $b\r";} + if ($b =~ /600$/i) {print STDERR "/ $b\r";} + if ($b =~ /700$/i) {print STDERR "| $b\r";} + if ($b =~ /800$/i) {print STDERR "+ $b\r";} + if ($b =~ /900$/i) {print STDERR "0 $b\r";} + if ($b =~ /000$/i) {print "|$b|$lead_id[$b]|$Ncall_date|$Ccall_date|$list_id[$b]|\n";} + + } + + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +print "script execution time in seconds: $secZ minutes: $secZm\n"; + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/Vtiger_IN_new_accounts_file.pl b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_IN_new_accounts_file.pl new file mode 100644 index 00000000..6e832ee3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_IN_new_accounts_file.pl @@ -0,0 +1,719 @@ +#!/usr/bin/perl +# +# Vtiger_IN_new_accounts_file.pl version 2.2.0 *DBI-version* +# +# DESCRIPTION: +# script lets you insert leads into the vtiger system table from a CSV-formatted +# file that is in the proper format. (for format see --help) +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 90127-1206 - First build +# 90318-0142 - Added vicidialalt import format and importasdeleted option +# 90327-1149 - Added phone-limit option +# + +$secX = time(); +$MT[0]=''; +$Ealert=''; +$importasdeleted=0; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$NOW_TIME = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); +$MT[0]=''; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/newleads.$year-$mon-$mday";} + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debug output\n"; + print " [--format=standard] = ability to define a format, standard is default, formats allowed shown in examples\n"; + print " [--duplicate-system-check] = checks for the same phone number in the entire system before inserting lead\n"; + print " [--duplicate-system-siccode] = checks for the same SIC code in the entire system before inserting lead\n"; + print " [--duplicate-system-website] = checks for the same website in the entire system before inserting lead\n"; + print " [--import-as-deleted] = imports the accounts as deleted in vtiger_crmentity\n"; + print " [--phone-limit=X] = limit phone and fax numbers to X digits\n"; + print " [--ftp-pull] = grabs lead files from a remote FTP server, uses REPORTS FTP login information\n"; + print " [--ftp-dir=leads_in] = remote FTP server directory to grab files from, should have a DONE sub-directory\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results for each file to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + print " [-h] = this help screen\n\n"; + print "\n"; + print "This script takes in account CSV files in the following order when they are placed in the $PATHhome/VTIGER_IN directory to be imported into the vtiger system (examples):\n\n"; + print "standard:\n"; + print "employees,ticker_symbol,sic_code,revenue,account_name,address,po_box,city,state,post_code,phone_number,ownership,fax,email,other_phone,other_email,website\n"; + print "4,C03IMM001,39207955,2,ST MARK CHURCH,1710 W COLLEGE AVE,,CHICAGO,IL,61555,3095551111,PAUL SMITH,3095551212,TEST@VERIZON.NET,7775553333,test@1034.com,bigsite.com\n\n"; + print "vicidialalt:\n"; + print "employees,ticker_symbol,web1,revenue,account_name,address,po_box,city,state,post_code,phone_number,ownership,fax,email,other_phone,other_email,website,emailoptout,notify_owner\n"; + print "4,C03IMM001,12345,2,ST MARK CHURCH,1710 W COLLEGE AVE,,CHICAGO,IL,61555,3095551111,PAUL SMITH,3095551212,TEST@VERIZON.NET,7775553333,test@1034.com,bigsite.com,1,0\n\n"; + print "minicsv:\n"; + print "business,contact,phone_number,address1,city,state,postal_code\n"; + print "\"CHURCH\",\"Bob Smith\",\"3525556601\",\"105 Fifth St\",\"Steinhatchee\",\"FL\",\"32359\"\n\n"; + + exit; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; + print "\n----- DEBUGGING -----\n\n"; + } + if ($args =~ /-debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + else {$DBX=0;} + + if ($args =~ /-q/i) + { + $q=1; + } + if ($args =~ /-t/i) + { + $T=1; + $TEST=1; + print "\n----- TESTING -----\n\n"; + } + + if ($args =~ /-format=/i) + { + @data_in = split(/-format=/,$args); + $format = $data_in[1]; + $format =~ s/ .*//gi; + print "\n----- FORMAT OVERRIDE: $format -----\n\n"; + } + else + {$format = 'standard';} + + if ($args =~ /-phone-limit=/i) + { + @data_in = split(/-phone-limit=/,$args); + $phone_limit = $data_in[1]; + $phone_limit =~ s/ .*//gi; + print "\n----- PHONE LIMIT: $phone_limit -----\n\n"; + } + else + {$phone_limit = 0;} + + if ($args =~ /-duplicate-system-check/i) + { + $dupchecksys=1; + print "\n----- DUPLICATE SYSTEM CHECK PHONE -----\n\n"; + } + if ($args =~ /-duplicate-system-siccode/i) + { + $dupchecksic=1; + print "\n----- DUPLICATE SYSTEM CHECK SICCODE -----\n\n"; + } + if ($args =~ /-duplicate-system-website/i) + { + $dupcheckweb=1; + print "\n----- DUPLICATE SYSTEM CHECK WEBSITE -----\n\n"; + } + if ($args =~ /-import-as-deleted/i) + { + $importasdeleted=1; + print "\n----- IMPORT ACCOUNTS AS DELETED -----\n\n"; + } + if ($args =~ /-ftp-pull/i) + { + $ftp_pull=1; + print "\n----- FTP LEAD FILE PULL -----\n\n"; + } + if ($args =~ /--ftp-dir=/i) + { + @data_in = split(/--ftp-dir=/,$args); + $ftp_dir = $data_in[1]; + $ftp_dir =~ s/ .*//gi; + print "\n----- REMOTE FTP DIRECTORY: $ftp_dir -----\n\n"; + } + else + {$ftp_dir = '';} + + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n"; + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n"; + } + else + {$email_sender = 'vicidial@localhost';} + + } + } +else + { + print "no command line options set\n"; + $args = ""; + $i=0; + $forcelistid = ''; + $format='standard'; + } +if ($format !~ /minicsv|vicidialalt|standard/) + {$format='standard';} +### end parsing run-time options ### + +if ($q < 1) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- Vtiger_IN_new_accounts_file.pl --\n\n"; + print "This program is designed to take a CSV delimited file and import it into the Vtiger system. \n\n"; + } + +$i=0; +$US = '_'; +$phone_list = '|'; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + $vtiger_server_ip = "$aryA[1]"; + $vtiger_dbname = "$aryA[2]"; + $vtiger_login = "$aryA[3]"; + $vtiger_pass = "$aryA[4]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + +$dbhB = DBI->connect("DBI:mysql:$vtiger_dbname:$vtiger_server_ip:$VARDB_port", "$vtiger_login", "$vtiger_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +$suf = '.txt'; +$people_packages_id_update=''; +$dir1 = "$PATHhome/VTIGER_IN"; +$dir2 = "$PATHhome/VTIGER_IN/DONE"; + + if($DBX){print STDERR "\nVTIGER_IN directory: |$dir1|\n";} + +if ($ftp_pull > 0) + { + $i=0; + use Net::FTP; + + $files_copied_count=0; + + $ftp = Net::FTP->new("$VARREPORT_host", Port => "$VARREPORT_port", Debug => "$DBX", Passive => 1) + or die "Can't connect: $@\n"; + $ftp->login("$VARREPORT_user","$VARREPORT_pass") or die "Cannot log in /: $!"; + @FILES = $ftp->dir("$ftp_dir") + or die "Can't get a list of files in $ftp_dir: $!"; + + foreach(@FILES) + { + if ($DBX > 0) {print "$FILES[$i]\n";} + if ($FILES[$i] !~ /^d/i) + { + chomp($FILES[$i]); + @FILEDETAILS = split(/ \d\d:\d\d /, $FILES[$i]); + $FILES[$i] = "$FILEDETAILS[1]"; + $FILES[$i] =~ s/ *$//gi; + + if (length($FILES[$i]) > 4) + { + $GOODfname = $FILES[$i]; + $FILES[$i] =~ s/ /_/gi; + $FILES[$i] =~ s/\(|\)|\||\\|\/|\'|\"|//gi; + $ftp->rename("$ftp_dir/$GOODfname","$ftp_dir/$FILES[$i]"); + $FILEname = $FILES[$i]; + $ftp->get("$ftp_dir/$FILES[$i]", "$dir1/$FILES[$i]"); + + if (!$TEST) {$ftp->rename("$ftp_dir/$FILES[$i]", "$ftp_dir/DONE/$FILES[$i]");} + if ($DB > 0) {print "FTP FILE COPIED: $FILES[$i]\n";} + $files_copied_count++; + } + } + $i++; + } + if (!$q) {print "$ftp_dir - $VARREPORT_host - $#FILES - $files_copied_count\n";} + } + + +$i=0; +@FILES=@MT; +opendir(FILE, "$dir1/"); +@FILES = readdir(FILE); + +foreach(@FILES) + { + $size1 = 0; + $size2 = 0; + $person_id_delete = ''; + $transaction_id_delete = ''; + + if (length($FILES[$i]) > 4) + { + + $size1 = (-s "$dir1/$FILES[$i]"); + if (!$q) {print "$FILES[$i] $size1\n";} + sleep(2); + $size2 = (-s "$dir1/$FILES[$i]"); + if (!$q) {print "$FILES[$i] $size2\n\n";} + + + if ( ($FILES[$i] !~ /^TRANSFERRED/i) && ($size1 eq $size2) && (length($FILES[$i]) > 4)) + { + $GOODfname = $FILES[$i]; + $FILES[$i] =~ s/ /_/gi; + $FILES[$i] =~ s/\(|\)|\||\\|\/|\'|\"|//gi; + rename("$dir1/$GOODfname","$dir1/$FILES[$i]"); + $FILEname = $FILES[$i]; + + `cp -f $dir1/$FILES[$i] $dir2/$source$FILES[$i]`; + + ### open the in file for reading ### + open(infile, "$dir2/$source$FILES[$i]") + || die "Can't open $source$FILES[$i]: $!\n"; + + $a=0; ### each line of input file counter ### + $b=0; ### status of 'APPROVED' counter ### + $c=0; ### status of 'DECLINED' counter ### + $d=0; ### status of 'REFERRED' counter ### + $e=0; ### status of 'ERROR' counter ### + $f=0; ### number of 'DUPLICATE' counter ### + $g=0; ### number of leads with multi-alt-entries + + $multi_insert_counter=0; + $multistmt=''; + + #if ($DB) + while () + { + @m=@MT; + # print "$a| $number\n"; + $number = $_; + chomp($number); + $number =~ s/\t/\|/gi; + $number =~ s/\'|\t|\r|\n|\l//gi; + $number =~ s/\'|\t|\r|\n|\l//gi; + $number =~ s/\",,,,,,,\"/\|\|\|\|\|\|\|/gi; + $number =~ s/\",,,,,,\"/\|\|\|\|\|\|/gi; + $number =~ s/\",,,,,\"/\|\|\|\|\|/gi; + $number =~ s/\",,,,\"/\|\|\|\|/gi; + $number =~ s/\",,,\"/\|\|\|/gi; + $number =~ s/\",,\"/\|\|/gi; + $number =~ s/\",\"/\|/gi; + $number =~ s/\"//gi; + $number =~ s/,/\|/gi; + @m = split(/\|/, $number); + + $format_set=0; + + # This is the format for the minicsv lead files + # business,contact,phone_number,address1,city,state,postal_code + # "CHURCH","Bob Smith","3525556601","105 Fifth St","Steinhatchee","FL","32359" + if ( ($format =~ /minicsv/) && ($format_set < 1) ) + { + $employees = '1'; + $ticker_symbol = ''; + $sic_code = ''; + $revenue = ''; + $account_name = $m[0]; chomp($account_name); + if (length($account_name)<1) {$account_name='NONE';} + $address = $m[3]; chomp($address); + $po_box = ''; + $city = $m[4]; chomp($city); + $state = $m[5]; chomp($state); + $post_code = $m[6]; chomp($post_code); + $phone_number = $m[2]; chomp($phone_number); $phone_number =~ s/\D//gi; + if ($phone_limit > 6) {while (length($phone_number)>$phone_limit) {chop($phone_number);} } + $ownership = $m[1]; chomp($ownership); + $other_phone = ''; + if ($phone_limit > 6) {while (length($other_phone)>$phone_limit) {chop($other_phone);} } + $email = ''; + $fax = ''; + if ($phone_limit > 6) {while (length($fax)>$phone_limit) {chop($fax);} } + $other_email = ''; + $website = ''; + $emailoptout = '0'; + $notify_owner = '0'; + $country = 'USA'; + + $format_set++; + } + + # This is the format for the vicidialalt(VICIDIAL alternate) lead files + # employees,ticker_symbol,web1,revenue,account_name,address,po_box,city,state,post_code,phone_number,ownership,fax,email,other_phone,other_email,website,emailoptout,notify_owner + # 4,C03IMM001,12345,2,ST MARK CHURCH,1710 W COLLEGE AVE,,CHICAGO,IL,61555,3095551111,PAUL SMITH,3095551212,TEST@VERIZON.NET,7775553333,test@1034.com,bigsite.com,1,0 + # sic_code is left blank because it will be used by vicidial to put the last call dispo status in + if ( ($format =~ /vicidialalt/) && ($format_set < 1) ) + { + $employees = $m[0]; chomp($employees); $employees =~ s/\D//gi; + $ticker_symbol = $m[1]; chomp($ticker_symbol); + $sic_code = ''; + $web1 = $m[2]; chomp($web1); + $revenue = $m[3]; chomp($revenue); $revenue =~ s/\D//gi; + $account_name = $m[4]; chomp($account_name); + if (length($account_name)<1) {$account_name='NONE';} + $address = $m[5]; chomp($address); + $po_box = $m[6]; chomp($po_box); + $city = $m[7]; chomp($city); + $state = $m[8]; chomp($state); + $post_code = $m[9]; chomp($post_code); + $phone_number = $m[10]; chomp($phone_number); $phone_number =~ s/\D//gi; + if ($phone_limit > 6) {while (length($phone_number)>$phone_limit) {chop($phone_number);} } + $ownership = $m[11]; chomp($ownership); + $fax = $m[12]; chomp($fax); + if ($phone_limit > 6) {while (length($fax)>$phone_limit) {chop($fax);} } + $email = $m[13]; chomp($email); + $other_phone = $m[14]; chomp($other_phone); + if ($phone_limit > 6) {while (length($other_phone)>$phone_limit) {chop($other_phone);} } + $other_email = $m[15]; chomp($other_email); + $website = $m[16]; chomp($website); + if (length($website)<3) {$website="$web1-$revenue";} + $emailoptout = $m[17]; chomp($emailoptout); $emailoptout =~ s/\D//gi; + if (length($emailoptout)<1) {$emailoptout="0";} + $notify_owner = $m[18]; chomp($notify_owner); $notify_owner =~ s/\D//gi; + if (length($notify_owner)<1) {$notify_owner="0";} + $country = 'USA'; + + $format_set++; + } + + # This is the format for the standard lead files + # employees,ticker_symbol,sic_code,revenue,account_name,address,po_box,city,state,post_code,phone_number,ownership,fax,email,other_phone,other_email,website + # 4,C03IMM001,39207955,2,ST MARK CHURCH,1710 W COLLEGE AVE,,CHICAGO,IL,61555,3095551111,PAUL SMITH,3095551212,TEST@VERIZON.NET,7775553333,test@1034.com,bigsite.com + if ( ($format =~ /standard/) || ($format_set < 1) ) + { + $employees = $m[0]; chomp($employees); $employees =~ s/\D//gi; + $ticker_symbol = $m[1]; chomp($ticker_symbol); + $sic_code = $m[2]; chomp($sic_code); + $revenue = $m[3]; chomp($revenue); $revenue =~ s/\D//gi; + $account_name = $m[4]; chomp($account_name); + if (length($account_name)<1) {$account_name='NONE';} + $address = $m[5]; chomp($address); + $po_box = $m[6]; chomp($po_box); + $city = $m[7]; chomp($city); + $state = $m[8]; chomp($state); + $post_code = $m[9]; chomp($post_code); + $phone_number = $m[10]; chomp($phone_number); $phone_number =~ s/\D//gi; + if ($phone_limit > 6) {while (length($phone_number)>$phone_limit) {chop($phone_number);} } + $ownership = $m[11]; chomp($ownership); + $fax = $m[12]; chomp($fax); + if ($phone_limit > 6) {while (length($fax)>$phone_limit) {chop($fax);} } + $email = $m[13]; chomp($email); + $other_phone = $m[14]; chomp($other_phone); + if ($phone_limit > 6) {while (length($other_phone)>$phone_limit) {chop($other_phone);} } + $other_email = $m[15]; chomp($other_email); + $website = $m[16]; chomp($website); + if (length($website)<3) {$website="$sic_code-$revenue";} + $emailoptout = '0'; + $notify_owner = '0'; + $country = 'USA'; + + $format_set++; + } + + if ($DBX) {print "$a|$phone_number|$account_name|$website\n";} + + $dup_lead=0; + ##### Check for duplicate phone numbers in vtiger_account table ##### + if ($dupchecksys > 0) + { + $stmtB="SELECT count(*) from vtiger_account where phone='$phone_number';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $dup_lead = $aryB[0]; + } + $sthB->finish(); + } + ##### Check for duplicate sic code acct ID in vtiger_account table ##### + if ($dupchecksic > 0) + { + $stmtB="SELECT count(*) from vtiger_account where siccode='$sic_code';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $dup_lead = $aryB[0]; + } + $sthB->finish(); + } + ##### Check for duplicate website in vtiger_account table ##### + if ($dupcheckweb > 0) + { + $stmtB="SELECT count(*) from vtiger_account where website='$website';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $dup_lead = $aryB[0]; + } + $sthB->finish(); + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + $user='6666'; + + #Get logged in user ID + $stmtB="SELECT id from vtiger_users where user_name='$user';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $user_id = $aryB[0]; + } + $sthB->finish(); + + # Get current ID from vtiger_crmentity_seq + $stmtB="SELECT id from vtiger_crmentity_seq;"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $crm_id = ($aryB[0] + 1); + } + $sthB->finish(); + + ### update the crm ID ### + $stmtB = "UPDATE vtiger_crmentity_seq SET id = '$crm_id';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into crmentity table ### + $stmtB = "INSERT INTO vtiger_crmentity SET crmid='$crm_id',smcreatorid='$user_id',smownerid='$user_id',modifiedby='$user_id',setype='Accounts',description='',createdtime='$NOW_TIME',modifiedtime='$NOW_TIME', viewedtime='$NOW_TIME', deleted='$importasdeleted';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_account table ### + $stmtB = "INSERT INTO vtiger_account SET accountid='$crm_id',accountname='$account_name',account_type='Customer',industry='--None--',annualrevenue='$revenue',rating='--None--',ownership='$ownership',siccode='$sic_code',tickersymbol='$ticker_symbol',phone='$phone_number',otherphone='$other_phone',email1='$email',email2='$other_email',website='$website',fax='$fax',employees='$employees',emailoptout='$emailoptout',notify_owner='$notify_owner';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_accountbillads table ### + $stmtB = "INSERT INTO vtiger_accountbillads SET accountaddressid='$crm_id',bill_city='$city',bill_code='$post_code',bill_country='$country',bill_state='$state',bill_street='$address',bill_pobox='$po_box';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_accountscf table ### + $stmtB = "INSERT INTO vtiger_accountscf SET accountid='$crm_id';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_accountshipads table ### + $stmtB = "INSERT INTO vtiger_accountshipads SET accountaddressid='$crm_id',ship_city='',ship_code='',ship_country='',ship_state='',ship_street='',ship_pobox='';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_tracker table ### + $stmtB = "INSERT INTO vtiger_tracker SET user_id='$user_id',module_name='Accounts',item_id='$crm_id',item_summary='$account_name';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + $b++; + } + else + { + if ($dup_lead > 0) + {print "DUPLICATE: $phone_number|$sic_code|$website|$a\n"; $f++;} + else + {print "BAD Phone Number: $phone_number|$vendor_id|$a\n"; $e++;} + } + + $a++; + + if ($a =~ /100$/i) {print STDERR "0 $a\r";} + if ($a =~ /200$/i) {print STDERR "+ $a\r";} + if ($a =~ /300$/i) {print STDERR "| $a\r";} + if ($a =~ /400$/i) {print STDERR "\\ $a\r";} + if ($a =~ /500$/i) {print STDERR "- $a\r";} + if ($a =~ /600$/i) {print STDERR "/ $a\r";} + if ($a =~ /700$/i) {print STDERR "| $a\r";} + if ($a =~ /800$/i) {print STDERR "+ $a\r";} + if ($a =~ /900$/i) {print STDERR "0 $a\r";} + if ($a =~ /000$/i) {print "$a|$b|$c|$d|$e|$f|$g|$phone_number|\n";} + } + + + + ### open the stats out file for writing ### + open(Sout, ">>$VDHLOGfile") + || die "Can't open $VDHLOGfile: $!\n"; + + + ### close file handler and DB connections ### + $Falert = "\n\nTOTALS FOR $FILEname:\n"; + $Falert .= "Lines in file: $a\n"; + $Falert .= "INSERTED: $b\n"; + $Falert .= "INSERT STATEMENTS: $c\n"; + $Falert .= "ERROR: $e\n"; + $Falert .= "MULTI-ALT-PHONE: $g\n"; + if ($f > 0) + {$Falert .= "DUPLICATES: $f\n";} + + print "$Falert"; + print Sout "$Falert"; + $Ealert .= "$Falert"; + + close(infile); + close(Sout); + chmod 0777, "$VDHLOGfile"; + + ### Move file to the DONE directory locally + if (!$T) {`mv -f $dir1/$FILEname $dir2/$FILEname`;} + + } + } + $i++; + } + + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if ($q < 1) + { + print "script execution time in seconds: $secZ minutes: $secZm\n"; + } + +###### EMAIL SECTION + +if ( (length($Ealert)>5) && (length($email_list) > 3) ) + { + print "Sending email: $email_list\n"; + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VTIGER ACCOUNT FILE LOAD $pulldate0"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + Message => "VTIGER ACCOUNT FILE LOAD $pulldate0\n\n$Ealert\n" + ); + sendmail(%mail) or die $mail::Sendmail::error; + print "ok. log says:\n", $mail::sendmail::log; ### print mail log for status + } + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/Vtiger_IN_notes_activities_file.pl b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_IN_notes_activities_file.pl new file mode 100644 index 00000000..7697a3be --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_IN_notes_activities_file.pl @@ -0,0 +1,700 @@ +#!/usr/bin/perl +# +# Vtiger_IN_notes_activities_file.pl version 2.2.0 +# +# DESCRIPTION: +# script lets you insert notes and activities into the vtiger system from a +# CSV-formatted file that is in the proper format. (for format see --help) +# +# NOTE - written for a specific client use, you will probably need to modify +# this script to be able to use it for your purposes +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 90327-1148 - First build +# 90623-0605 - Added duplicate check +# + +$secX = time(); +$MT[0]=''; +$Ealert=''; +$importasdeleted=0; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$NOW_TIME = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); +$MT[0]=''; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/addnotes.$year-$mon-$mday";} + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debug output\n"; + print " [--duplicate-check] = check whether the record exists before attempting to insert it\n"; + print " [--format=notes] = select whether you are importing notes or activities\n"; + print " [--ftp-pull] = grabs lead files from a remote FTP server, uses REPORTS FTP login information\n"; + print " [--ftp-dir=leads_in] = remote FTP server directory to grab files from, should have a DONE sub-directory\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results for each file to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + print " [-h] = this help screen\n\n"; + print "\n"; + print "This script takes in notes or activities CSV files in the following order when they are placed in the $PATHhome/VTIGER_IN directory to be imported into the vtiger system (examples):\n\n"; + print "notes:\n"; + print "account,sequence,status,date,notes1,notes2\n"; + print "39207955,2,ANSWERING MACHINE,01/30/09,SPOKE WITH DEVONNE,SHE PLACED AN ORDER ONLINE THIS MORNING WILL CALL HER BACK IN TWO WEEKS ON FEB 19\n\n"; + print "activity:\n"; + print "account,sequence,date,time,session_length,call_length,status\n"; + print "39207955,2,01/30/09,14:47:42,205,116,ANSWERING MACHINE\n\n"; + + exit; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; + print "\n----- DEBUGGING -----\n\n"; + } + if ($args =~ /-debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + else {$DBX=0;} + + if ($args =~ /-q/i) + { + $q=1; + } + if ($args =~ /-t/i) + { + $T=1; + $TEST=1; + print "\n----- TESTING -----\n\n"; + } + + if ($args =~ /-format=/i) + { + @data_in = split(/-format=/,$args); + $format = $data_in[1]; + $format =~ s/ .*//gi; + print "\n----- FORMAT OVERRIDE: $format -----\n\n"; + } + else + {$format = 'standard';} + + if ($args =~ /-ftp-pull/i) + { + $ftp_pull=1; + print "\n----- FTP LEAD FILE PULL -----\n\n"; + } + if ($args =~ /--ftp-dir=/i) + { + @data_in = split(/--ftp-dir=/,$args); + $ftp_dir = $data_in[1]; + $ftp_dir =~ s/ .*//gi; + print "\n----- REMOTE FTP DIRECTORY: $ftp_dir -----\n\n"; + } + else + {$ftp_dir = '';} + + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n"; + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n"; + } + else + {$email_sender = 'vicidial@localhost';} + + if ($args =~ /--duplicate-check/i) + { + $dup_check=1; + print "\n----- DUPLICATE CHECK -----\n\n"; + } + } + } +else + { + print "no command line options set\n"; + $args = ""; + $i=0; + $forcelistid = ''; + $format='standard'; + } +if ($format !~ /notes|activities/) + {$format='notes';} +### end parsing run-time options ### + +if ($q < 1) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- Vtiger_IN_notes_activities.pl --\n\n"; + print "This program is designed to take a CSV delimited file and import it as notes or activities into the Vtiger system. \n\n"; + } + +$i=0; +$US = '_'; +$phone_list = '|'; +$DASH='-'; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + $vtiger_server_ip = "$aryA[1]"; + $vtiger_dbname = "$aryA[2]"; + $vtiger_login = "$aryA[3]"; + $vtiger_pass = "$aryA[4]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + +$dbhB = DBI->connect("DBI:mysql:$vtiger_dbname:$vtiger_server_ip:$VARDB_port", "$vtiger_login", "$vtiger_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +$suf = '.txt'; +$people_packages_id_update=''; +$dir1 = "$PATHhome/VTIGER_IN"; +$dir2 = "$PATHhome/VTIGER_IN/DONE"; + + if($DBX){print STDERR "\nVTIGER_IN directory: |$dir1|\n";} + +if ($ftp_pull > 0) + { + $i=0; + use Net::FTP; + + $files_copied_count=0; + + $ftp = Net::FTP->new("$VARREPORT_host", Port => "$VARREPORT_port", Debug => "$DBX", Passive => 1) + or die "Can't connect: $@\n"; + $ftp->login("$VARREPORT_user","$VARREPORT_pass") or die "Cannot log in /: $!"; + @FILES = $ftp->dir("$ftp_dir") + or die "Can't get a list of files in $ftp_dir: $!"; + + foreach(@FILES) + { + if ($DBX > 0) {print "$FILES[$i]\n";} + if ($FILES[$i] !~ /^d/i) + { + chomp($FILES[$i]); + @FILEDETAILS = split(/ \d\d:\d\d /, $FILES[$i]); + $FILES[$i] = "$FILEDETAILS[1]"; + $FILES[$i] =~ s/ *$//gi; + + if (length($FILES[$i]) > 4) + { + $GOODfname = $FILES[$i]; + $FILES[$i] =~ s/ /_/gi; + $FILES[$i] =~ s/\(|\)|\||\\|\/|\'|\"|//gi; + $ftp->rename("$ftp_dir/$GOODfname","$ftp_dir/$FILES[$i]"); + $FILEname = $FILES[$i]; + $ftp->get("$ftp_dir/$FILES[$i]", "$dir1/$FILES[$i]"); + + if (!$TEST) {$ftp->rename("$ftp_dir/$FILES[$i]", "$ftp_dir/DONE/$FILES[$i]");} + if ($DB > 0) {print "FTP FILE COPIED: $FILES[$i]\n";} + $files_copied_count++; + } + } + $i++; + } + if (!$q) {print "$ftp_dir - $VARREPORT_host - $#FILES - $files_copied_count\n";} + } + + +$i=0; +@FILES=@MT; +opendir(FILE, "$dir1/"); +@FILES = readdir(FILE); + +foreach(@FILES) + { + $size1 = 0; + $size2 = 0; + $person_id_delete = ''; + $transaction_id_delete = ''; + + if (length($FILES[$i]) > 4) + { + + $size1 = (-s "$dir1/$FILES[$i]"); + if (!$q) {print "$FILES[$i] $size1\n";} + sleep(2); + $size2 = (-s "$dir1/$FILES[$i]"); + if (!$q) {print "$FILES[$i] $size2\n\n";} + + + if ( ($FILES[$i] !~ /^TRANSFERRED/i) && ($size1 eq $size2) && (length($FILES[$i]) > 4)) + { + $GOODfname = $FILES[$i]; + $FILES[$i] =~ s/ /_/gi; + $FILES[$i] =~ s/\(|\)|\||\\|\/|\'|\"|//gi; + rename("$dir1/$GOODfname","$dir1/$FILES[$i]"); + $FILEname = $FILES[$i]; + + `cp -f $dir1/$FILES[$i] $dir2/$source$FILES[$i]`; + + ### open the in file for reading ### + open(infile, "$dir2/$source$FILES[$i]") + || die "Can't open $source$FILES[$i]: $!\n"; + + $a=0; ### each line of input file counter ### + $b=0; ### status of 'APPROVED' counter ### + $c=0; ### status of 'DECLINED' counter ### + $d=0; ### status of 'REFERRED' counter ### + $e=0; ### status of 'ERROR' counter ### + $f=0; ### number of 'NOTFOUND' counter ### + $g=0; ### number of leads with multi-alt-entries + + $multi_insert_counter=0; + $multistmt=''; + + #if ($DB) + while () + { + @m=@MT; + # print "$a| $number\n"; + $number = $_; + chomp($number); + $number =~ s/\t/\|/gi; + $number =~ s/\'|\t|\r|\n|\l//gi; + $number =~ s/\'|\t|\r|\n|\l//gi; + $number =~ s/\",,,,,,,\"/\|\|\|\|\|\|\|/gi; + $number =~ s/\",,,,,,\"/\|\|\|\|\|\|/gi; + $number =~ s/\",,,,,\"/\|\|\|\|\|/gi; + $number =~ s/\",,,,\"/\|\|\|\|/gi; + $number =~ s/\",,,\"/\|\|\|/gi; + $number =~ s/\",,\"/\|\|/gi; + $number =~ s/\",\"/\|/gi; + $number =~ s/\"//gi; + $number =~ s/,/\|/gi; + @m = split(/\|/, $number); + + $format_set=0; + + ### This is the format for the activities files + # account,sequence,date,time,session_length,call_length,status + # 39207955,2,01/30/09,14:47:42,205,116,ANSWERING MACHINE + if ( ($format =~ /activities/) && ($format_set < 1) ) + { + $format='activities'; + $web1 = $m[0]; chomp($web1); $web1 =~ s/\D//gi; + $revenue = $m[1]; chomp($revenue); $revenue =~ s/\D//gi; + $date = $m[2]; chomp($date); + $time = $m[3]; chomp($time); + $session_length = $m[4]; chomp($session_length); + $call_length = $m[5]; chomp($call_length); + $status = $m[6]; chomp($status); + $website="$web1$DASH$revenue"; + @date_array = split(/\//,$date); + $YYYY = $date_array[2]; $YYYY = ($YYYY + 2000); + $MM = $date_array[0]; + $DD = $date_array[1]; + $date = "$YYYY-$MM-$DD"; + if ($session_length > 300) + {$session_length = int($session_length / 60);} + else + {$session_length = '5';} + @time_array = split(/:/,$time); + $HH = ($time_array[0] + 0); + $MM = ($time_array[1] + $session_length); + $SS = $time_array[2]; + if ($MM > 59) + {$MM = ($MM - 60); $HH = ($HH + 1);} + if ($HH < 10) {$HH = "0$HH";} + if ($MM < 10) {$MM = "0$MM";} + $end_time = "$HH:$MM:$SS"; + + $format_set++; + } + + ### This is the format for the notes files + # account,sequence,status,date,notes1,notes2 + # 39207955,2,ANSWERING MACHINE,01/30/09,SPOKE WITH DEVONNE,SHE PLACED AN ORDER ONLINE THIS MORNING WILL CALL HER BACK IN TWO WEEKS ON FEB 19 + if ( ($format =~ /notes/) || ($format_set < 1) ) + { + $format='notes'; + $web1 = $m[0]; chomp($web1); $web1 =~ s/\D//gi; + $revenue = $m[1]; chomp($revenue); $revenue =~ s/\D//gi; + $status = $m[2]; chomp($status); + $date = $m[3]; chomp($date); + $notes = "$m[4] $m[5]"; chomp($notes); + $website="$web1$DASH$revenue"; + @date_array = split(/\//,$date); + $YYYY = $date_array[2]; $YYYY = ($YYYY + 2000); + $MM = $date_array[0]; + $DD = $date_array[1]; + $date = "$YYYY-$MM-$DD"; + $time = "14:00"; + + $format_set++; + } + + if ($DBX) {print "$a|$web1|$revenue|$website| $number\n";} + + + + if (length($web1)>0) + { + # Get current vendor ID from vtiger_account + $stmtB="SELECT accountid from vtiger_account where website='$website';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows < 1) + { + $sthB->finish(); + + print "BAD Account Not Found: $website|$a\n"; $f++; + } + else + { + @aryB = $sthB->fetchrow_array; + $vendor_id = $aryB[0]; + $sthB->finish(); + + + $user='6666'; + + ##### BEGIN Duplicate Check ##### + $duplicate=0; + if ($dup_check) + { + if ($format =~ /activities/) + { + $first_duplicate=0; + # Check for duplicate activities entry + $stmtB="SELECT count(*) from vtiger_activity where subject='Old Call: $status' and activitytype='Call' and date_start='$date' and time_start='$time' and time_end='$end_time';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $first_duplicate = $aryB[0]; + } + $sthB->finish(); + + if ($first_duplicate > 0) + { + $stmtB="SELECT count(*) from vtiger_seactivityrel vs, vtiger_activity va where vs.crmid='$vendor_id' and vs.activityid=va.activityid and subject='Old Call: $status' and activitytype='Call' and date_start='$date' and time_start='$time' and time_end='$end_time';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $duplicate = $aryB[0]; + } + $sthB->finish(); + } + } + else # notes dup check + { + $first_duplicate=0; + # Check for duplicate activities entry + $stmtB="SELECT count(*) from vtiger_crmentity where setype='Notes' and description='Old Notes: $status' and createdtime='$date $time';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $first_duplicate = $aryB[0]; + } + $sthB->finish(); + + if ($first_duplicate > 0) + { + $stmtB="SELECT count(*) from vtiger_senotesrel vn, vtiger_crmentity vc where vn.crmid='$vendor_id' and vn.notesid=vc.crmid and subject='Old Call: $status' and activitytype='Call' and date_start='$date' and time_start='$time' and time_end='$end_time';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $duplicate = $aryB[0]; + } + $sthB->finish(); + } + } + } + ##### END Duplicate Check ##### + + if ($duplicate < 1) + { + #Get logged in user ID + $stmtB="SELECT id from vtiger_users where user_name='$user';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $user_id = $aryB[0]; + } + $sthB->finish(); + + # Get current ID from vtiger_crmentity_seq + $stmtB="SELECT id from vtiger_crmentity_seq;"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $crm_id = ($aryB[0] + 1); + } + $sthB->finish(); + + ### update the crm ID ### + $stmtB = "UPDATE vtiger_crmentity_seq SET id = '$crm_id';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + if ($format =~ /activities/) + { + ### insert record into vtiger_salesmanactivityrel table ### + $stmtB = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$crm_id';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_seactivityrel table ### + $stmtB = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$crm_id';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into crmentity table ### + $stmtB = "INSERT INTO vtiger_crmentity SET crmid='$crm_id',smcreatorid='$user_id',smownerid='$user_id',modifiedby='$user_id',setype='Calendar',description='Old Call: $status',createdtime='$date $time',modifiedtime='$date $time', viewedtime='$date $time';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_activity table ### + $stmtB = "INSERT INTO vtiger_activity SET activityid='$crm_id',subject='Old Call: $status',activitytype='Call',date_start='$date',due_date='$date',time_start='$time',time_end='$end_time',sendnotification='0',duration_hours='0',duration_minutes='$session_length',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + } + else + { + ### insert record into crmentity table ### + $stmtB = "INSERT INTO vtiger_crmentity SET crmid='$crm_id',smcreatorid='$user_id',smownerid='$user_id',modifiedby='$user_id',setype='Notes',description='Old Notes: $status',createdtime='$date $time',modifiedtime='$date $time', viewedtime='$date $time';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_notes table ### + $stmtB = "INSERT INTO vtiger_notes SET notesid='$crm_id',title='Old Notes: $status',notecontent='$notes';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### insert record into vtiger_senotesrel table ### + $stmtB = "INSERT INTO vtiger_senotesrel SET crmid='$vendor_id',notesid='$crm_id';"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + } + $b++; + } + else + { + print "BAD duplicate: $web1|$revenue|$status|$date $time|$a\n"; $h++; + } + } + } + else + { + print "BAD Account Number: $web1|$revenue|$a\n"; $e++; + } + + $a++; + + if ($a =~ /100$/i) {print STDERR "0 $a\r";} + if ($a =~ /200$/i) {print STDERR "+ $a\r";} + if ($a =~ /300$/i) {print STDERR "| $a\r";} + if ($a =~ /400$/i) {print STDERR "\\ $a\r";} + if ($a =~ /500$/i) {print STDERR "- $a\r";} + if ($a =~ /600$/i) {print STDERR "/ $a\r";} + if ($a =~ /700$/i) {print STDERR "| $a\r";} + if ($a =~ /800$/i) {print STDERR "+ $a\r";} + if ($a =~ /900$/i) {print STDERR "0 $a\r";} + if ($a =~ /000$/i) {print "$a|$b|$c|$d|$e|$f|$g|$h|$phone_number|\n";} + } + + + + ### open the stats out file for writing ### + open(Sout, ">>$VDHLOGfile") + || die "Can't open $VDHLOGfile: $!\n"; + + + ### close file handler and DB connections ### + $Falert = "\n\nTOTALS FOR $FILEname:\n"; + $Falert .= "Lines in file: $a\n"; + $Falert .= "INSERTED: $b\n"; + $Falert .= "INSERT STATEMENTS: $c\n"; + $Falert .= "ERROR: $e\n"; + $Falert .= "NOT FOUND: $f\n"; + $Falert .= "MULTI-ALT-PHONE: $g\n"; + $Falert .= "DUPLICATE: $h\n"; + + print "$Falert"; + print Sout "$Falert"; + $Ealert .= "$Falert"; + + close(infile); + close(Sout); + chmod 0777, "$VDHLOGfile"; + + ### Move file to the DONE directory locally + if (!$T) {`mv -f $dir1/$FILEname $dir2/$FILEname`;} + + } + } + $i++; + } + + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if ($q < 1) + { + print "script execution time in seconds: $secZ minutes: $secZm\n"; + } + +###### EMAIL SECTION + +if ( (length($Ealert)>5) && (length($email_list) > 3) ) + { + print "Sending email: $email_list\n"; + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VTIGER ACCOUNT FILE LOAD $pulldate0"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + Message => "VTIGER ACCOUNT FILE LOAD $pulldate0\n\n$Ealert\n" + ); + sendmail(%mail) or die $mail::Sendmail::error; + print "ok. log says:\n", $mail::sendmail::log; ### print mail log for status + } + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/Vtiger_KILL_slow_queries.pl b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_KILL_slow_queries.pl new file mode 100644 index 00000000..9e64884e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_KILL_slow_queries.pl @@ -0,0 +1,285 @@ +#!/usr/bin/perl +# +# Vtiger_KILL_slow_queries.pl version 2.2.0 +# +# DESCRIPTION: +# script kills rogue mysql SELECT queries that are launched by vtiger +# +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 90727-0757 - First build +# + +$secX = time(); +$MT[0]=''; +$Ealert=''; +$importasdeleted=0; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$NOW_TIME = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); +$MT[0]=''; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/VTkillslow.$year-$mon-$mday";} + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n"; + print " [-h] = this help screen\n\n"; + print " [-q] = quiet\n"; + print " [-t] = test\n"; + print " [--debug] = debug output\n"; + print " [--slow-seconds=X] = this allows you to override the default slow seconds of 60\n\n"; + print "\n"; + print "This script finds all SELECT queries running on the database and kills the SELECT queries running more than X seconds\n\n"; + + exit; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; + print "\n----- DEBUGGING -----\n\n"; + } + if ($args =~ /-debugX/i) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + else {$DBX=0;} + + if ($args =~ /-q/i) + { + $q=1; + } + if ($args =~ /-t/i) + { + $T=1; + $TEST=1; + if ($q < 1) {print "\n----- TESTING -----\n\n";} + } + if ($args =~ /--slow-seconds=/i) + { + @data_in = split(/--slow-seconds=/,$args); + $slow_seconds = $data_in[1]; + $slow_seconds =~ s/ .*//gi; + if ($q < 1) {print "\n----- SLOW SECONDS OVERRIDE: $slow_seconds -----\n\n";} + } + else + {$slow_seconds = '';} + } + } +else + { + print "no command line options set\n"; + $args = ""; + $i=0; + $slow_seconds='60'; + } +### end parsing run-time options ### + +if ($q < 1) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- Vtiger_KILL_slow_queries.pl --\n\n"; + print "This program is designed to kill slow SELECT queries launched from the Vtiger system. \n\n"; + } + +$i=0; +$US = '_'; +$phone_list = '|'; +$DASH='-'; +$noacct=0; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + $vtiger_server_ip = "$aryA[1]"; + $vtiger_dbname = "$aryA[2]"; + $vtiger_login = "$aryA[3]"; + $vtiger_pass = "$aryA[4]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + +$dbhB = DBI->connect("DBI:mysql:$vtiger_dbname:$vtiger_server_ip:$VARDB_port", "$vtiger_login", "$vtiger_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +# Get current crm ID, date and description from vtiger_account +$stmtB="SHOW FULL PROCESSLIST;"; + if($DB){print STDERR "\n|$stmtB|\n";} +$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; +$sthB->execute or die "executing: $stmtB ", $dbhB->errstr; +$sthBrows=$sthB->rows; + if($DB){print STDERR "\n|$sthBrows records|\n";} +$i=0; +while ($sthBrows > $i) + { + @aryB = $sthB->fetchrow_array; + $id[$i] = $aryB[0]; + $user[$i] = $aryB[1]; + $host[$i] = $aryB[2]; + $db[$i] = $aryB[3]; + $command[$i] = $aryB[4]; + $time[$i] = $aryB[5]; + $state[$i] = $aryB[6]; + $info[$i] = $aryB[7]; + if ($DBX > 0) + { + if ($command[$i] !~ /^Sleep$/i) + {print "$aryB[0]|$aryB[1]|$aryB[2]|$aryB[3]|$aryB[4]|$aryB[5]|$aryB[6]|$aryB[7]\n";} + } + $i++; + } +$sthB->finish(); + +$i=0; +while ($sthBrows > $i) + { + if ( ($db[$i] =~ /vtiger/i) && ($info[$i] =~ /^SELECT /i) && ($time[$i] >= $slow_seconds) ) + { + if ($DB > 0) {print "Killing process $id[$i], it has been running for $time[$i] seconds\n";} + if ($DBX > 0) {print " STATE:\n$state[$i]\n";} + if ($DBX > 0) {print " INFO:\n$info[$i]\n";} + if ($DBX > 0) {print " QUERY:\n$command[$i]\n";} + + ### kill process ### + $stmtB = "KILL $id[$i];"; + if (!$T) {$affected_rows = $dbhB->do($stmtB); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rows|$stmtB|\n";} + + ### open the log file for writing ### + open(out, ">>$VDHLOGfile") + || die "Can't open $VDHLOGfile: $!\n"; + + print out "DATETIME: $NOW_TIME\n"; + print out "ID: $id[$i]\n"; + print out "USER: $user[$i]\n"; + print out "HOST: $host[$i]\n"; + print out "DB: $db[$i]\n"; + print out "COMMAND: $command[$i]\n\n"; + print out "TIME: $time[$i]\n"; + print out "STATE: $state[$i]\n"; + print out "INFO: $info[$i]\n"; + + close(out); + chmod 0777, "$VDHLOGfile"; + + $Tattempt++; + } + + + $i++; + } + +$Falert = "\n\nTOTALS:\n"; +$Falert .= "Queries: $i\n"; +$Falert .= "Kills: $Tattempt\n"; + +if ($DB > 0) {print "$Falert";} + +$dbhA->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if ($q < 1) + { + print "script execution time in seconds: $secZ minutes: $secZm\n"; + } + + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/Vtiger_OUT_sync2VICIDIAL_file.pl b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_OUT_sync2VICIDIAL_file.pl new file mode 100644 index 00000000..15b5cade --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_OUT_sync2VICIDIAL_file.pl @@ -0,0 +1,1364 @@ +#!/usr/bin/perl +# +# Vtiger_OUT_sync2VICIDIAL_file.pl version 2.2.0 +# +# DESCRIPTION: +# script exports all accounts from the vtiger system table from a PIPE-formatted +# file that is in the proper format for VICIDIAL. (for format see --help) +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 90128-0319 - First build +# 90401-1347 - Fixed quiet flag +# 90417-0519 - Added custom field updates for timezone and last/largest sale amounts +# 90423-0453 - Added calls file and hours file reports +# 90424-1157 - Added orders file report +# 90517-1404 - Added date override and fixed order file report +# 90806-1654 - Added vicidial-owner-update option +# + +$secX = time(); +$MT[0]=''; +$Ealert=''; +$force_quiet=0; + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$TODAY = "$year-$mon-$mday"; +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$NOW_TIME = "$year-$mon-$mday $hour:$min:$sec"; +$VDLfile = "Vtiger_account_sync_file_$year$mon$mday$hour$min$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); +$MT[0]=''; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + + +if (!$VDHLOGfile) {$VDHLOGfile = "$PATHlogs/newleads.$year-$mon-$mday";} + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options-\n"; + print " screen output options:\n"; + print " [-q] = quiet\n"; + print " [--test] = test\n"; + print " [--debug] = debug output\n"; + print " [--help] = this help screen\n"; + print " vicidial update options:\n"; + print " [--skip-vicidial-update] = skips the lead file export and all ViciDial list updating functions\n"; + print " [--vicidial-owner-update] = updates the vicidial_list.owner field with the vtiger owner\n"; + print " [--format=standard] = ability to define a format, standard is default, formats allowed shown in examples\n"; + print " [--forcelistid=1234] = overrides the listID given in the file with the 1234\n"; + print " [--duplicate-system-check] = checks for the same phone number in the entire system before inserting lead\n"; + print " [--duplicate-system-vendor] = checks for the same website in the entire system before inserting lead\n"; + print " [--ftp-pull] = grabs lead files from a remote FTP server, uses REPORTS FTP login information\n"; + print " [--ftp-dir=leads_in] = remote FTP server directory to grab files from, should have a DONE sub-directory\n"; + print " vtiger update options:\n"; + print " [--vt-sales-update] = updates the Vtiger account custom sales fields based upon today sales order data\n"; + print " [--vt-sales-update-alldate] = updates the Vtiger account custom sales fields based upon all sales order data\n"; + print " [--vt-timezone-update] = updates the Vtiger account custom timezone field based upon ViciDial timezone/state\n"; + print " [--vt-territory-update] = updates the Vtiger account tickersymbol field based upon ViciDial user territory\n"; + print " [--vt-territory-restrict=3] = if above flag is present, will only update these records owned by this user_id\n"; + print " report generation options:\n"; + print " [--report-call-file] = generates a spec call file from vicidial records\n"; + print " [--report-hours-file] = generates a spec agent hours file from vicidial records\n"; + print " [--report-orders-file] = generates a spec orders file from vtiger records\n"; + print " [--date-override=YYYY-MM-DD] = run the report for a single day, must be formatted YYYY-MM-DD\n"; + print " [--all-records] = outputs all records, not restricted by date\n"; + print " email options:\n"; + print " [--email-list=test@test.com:test2@test.com] = send email results for each file to these addresses\n"; + print " [--email-sender=vicidial@localhost] = sender for the email results\n"; + print "\n"; + print "This script takes in account CSV files in the following order when they are placed in the $PATHhome/VTIGER_IN directory to be imported into the vtiger system (examples):\n\n"; + print "standard:\n"; + print "vendor_lead_code|source_code|list_id|phone_code|phone_number|title|first_name|middle|last_name|address1|address2|address3|city|state|province|postal_code|country|gender|date_of_birth|alt_phone|email|security_phrase|COMMENTS|called_count|status|entry_date\n"; + print "3857822|31022|99|01144|1625551212|MRS|B||BURTON|249 MUNDON ROAD|MALDON|ESSEX||||CM9 6PW|UK||||||COMMENTS|2|B|2007-08-09 00:00:00|7275551212_1_work!7275551213_61_sister house!7275551214_44_neighbor\n\n"; + + exit; + } + else + { + if ($args =~ /-q/i) + { + $q=1; + $DB=0; + $DBX=0; + $force_quiet=1; + } + if ( ($args =~ /-debug/i) && ($force_quiet < 1) ) + { + $DB=1; + print "\n----- DEBUGGING -----\n\n"; + } + if ( ($args =~ /-debugX/i) && ($force_quiet < 1) ) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + else {$DBX=0;} + + if ($args =~ /-test/i) + { + $T=1; + if ($q < 1) {print "\n----- TESTING -----\n\n";} + } + else + {$T=0;} + + if ($args =~ /-format=/i) + { + @data_in = split(/-format=/,$args); + $format = $data_in[1]; + $format =~ s/ .*//gi; + if ($q < 1) {print "\n----- FORMAT OVERRIDE: $format -----\n\n";} + } + else + {$format = 'standard';} + + if ($args =~ /-forcelistid=/i) + { + @data_in = split(/-forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + if ($q < 1) {print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n";} + } + else + {$forcelistid = '';} + + if ($args =~ /-duplicate-system-check/i) + { + $dupchecksys=1; + if ($q < 1) {print "\n----- DUPLICATE SYSTEM CHECK PHONE -----\n\n";} + } + if ($args =~ /-duplicate-system-vendor/i) + { + $dupcheckvend=1; + if ($q < 1) {print "\n----- DUPLICATE SYSTEM CHECK VENDOR -----\n\n";} + } + if ($args =~ /-vt-sales-update/i) + { + $vt_sales_update=1; + if ($q < 1) {print "\n----- VTIGER SALES DATE FIELD UPDATE TODAY -----\n\n";} + } + if ($args =~ /-vt-sales-update-alldate/i) + { + $vt_sales_update_alldate=1; + if ($q < 1) {print "\n----- VTIGER SALES DATE FIELD UPDATE ALLDATE -----\n\n";} + } + if ($args =~ /-vt-timezone-update/i) + { + $vt_timezone_update=1; + if ($q < 1) {print "\n----- VTIGER TIMEZONE FIELD UPDATE -----\n\n";} + } + if ($args =~ /-vt-territory-update/i) + { + $vt_territory_update=1; + if ($q < 1) {print "\n----- VTIGER USER TERRITORY UPDATE -----\n\n";} + } + + if ($args =~ /--vt-territory-restrict=/i) + { + @data_in = split(/--vt-territory-restrict=/,$args); + $vtur_user = $data_in[1]; + $vtur_user =~ s/ .*//gi; + if ($q < 1) {print "\n----- TERRITORY UPDATE RESTRICTION: $vtur_user -----\n\n";} + $VCuser_territory_update_restrictionSQL = " and smownerid='$vtur_user'"; + $VTuser_territory_update_restrictionSQL = " and user_id='$vtur_user'"; + } + if ($args =~ /--report-call-file/i) + { + $report_call_file=1; + if ($q < 1) {print "\n----- VTIGER REPORT CALL FILE -----\n\n";} + } + if ($args =~ /--report-hours-file/i) + { + $report_hours_file=1; + if ($q < 1) {print "\n----- VTIGER REPORT HOURS FILE -----\n\n";} + } + if ($args =~ /--report-orders-file/i) + { + $report_orders_file=1; + if ($q < 1) {print "\n----- VTIGER REPORT ORDERS FILE -----\n\n";} + } + if ($args =~ /--date-override=/i) + { + @data_in = split(/--date-override=/,$args); + $TODAY = $data_in[1]; + $TODAY =~ s/ .*//gi; + if ($q < 1) {print "\n----- DATE OVERRIDE: $TODAY -----\n\n";} + } + if ($args =~ /--all-records/i) + { + $TODAY = "1999-12-31"; + $ENDDAY = "2099-12-31"; + if ($q < 1) {print "\n----- REPORT ALL RECORDS -----\n\n";} + } + else + { + $ENDDAY = $TODAY; + if ($q < 1) {print "\n----- DATE END DAY: $ENDDAY -----\n\n";} + } + if ($args =~ /-skip-vicidial-update/i) + { + $skip_vicidial_update=1; + if ($q < 1) {print "\n----- SKIP VICIDIAL UPDATE -----\n\n";} + } + if ($args =~ /--vicidial-owner-update/i) + { + $vicidial_owner_update=1; + if ($q < 1) {print "\n----- VICIDIAL OWNER UPDATE -----\n\n";} + } + if ($args =~ /-ftp-pull/i) + { + $ftp_pull=1; + if ($q < 1) {print "\n----- FTP LEAD FILE PULL -----\n\n";} + } + if ($args =~ /--ftp-dir=/i) + { + @data_in = split(/--ftp-dir=/,$args); + $ftp_dir = $data_in[1]; + $ftp_dir =~ s/ .*//gi; + if ($q < 1) {print "\n----- REMOTE FTP DIRECTORY: $ftp_dir -----\n\n";} + } + else + {$ftp_dir = '';} + + if ($args =~ /--email-list=/i) + { + @data_in = split(/--email-list=/,$args); + $email_list = $data_in[1]; + $email_list =~ s/ .*//gi; + $email_list =~ s/:/,/gi; + if ($q < 1) {print "\n----- EMAIL NOTIFICATION: $email_list -----\n\n";} + } + else + {$email_list = '';} + + if ($args =~ /--email-sender=/i) + { + @data_in = split(/--email-sender=/,$args); + $email_sender = $data_in[1]; + $email_sender =~ s/ .*//gi; + $email_sender =~ s/:/,/gi; + if ($q < 1) {print "\n----- EMAIL NOTIFICATION SENDER: $email_sender -----\n\n";} + } + else + {$email_sender = 'vicidial@localhost';} + + } + } +else + { + print "no command line options set\n"; + $args = ""; + $i=0; + $forcelistid = ''; + $format='standard'; + $vt_sales_update=0; + $vt_sales_update_alldate=0; + $vt_timezone_update=0; + $skip_vicidial_update=0; + $T=0; + } +### end parsing run-time options ### + +if ($q < 1) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- Vtiger_OUT_sync2VICIDIAL_file.pl --\n\n"; + print "This program is designed to export a PIPE delimited file of the Accounts from Vtiger and format it for import into the VICIDIAL system. Also allows for other Vtiger data update functions.\n\n"; + } + +$i=0; +$US = '_'; +$phone_list = '|'; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + $vtiger_server_ip = "$aryA[1]"; + $vtiger_dbname = "$aryA[2]"; + $vtiger_login = "$aryA[3]"; + $vtiger_pass = "$aryA[4]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + +$dbhB = DBI->connect("DBI:mysql:$vtiger_dbname:$vtiger_server_ip:$VARDB_port", "$vtiger_login", "$vtiger_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +$list_id = '999'; +$phone_code = '1'; +$suf = '.txt'; +$people_packages_id_update=''; +$dir1 = "$PATHhome/LEADS_IN"; +$dir2 = "$PATHhome"; + +if($DBX){print STDERR "\nLEADS_IN directory: |$dir1|\n";} + + +$i=0; ### each Account counter ### +$b=0; ### status of 'APPROVED' counter ### +$c=0; ### status of 'DECLINED' counter ### +$d=0; ### status of 'REFERRED' counter ### +$e=0; ### status of 'DUPLICATE' vendor counter ### +$f=0; ### number of 'DUPLICATE' phone counter ### +$g=0; ### number of leads with multi-alt-entries +$h=0; ### number of timezone updates +$j=0; ### number of saleamount updates +$m=0; ### number of exported records to file +$n=0; ### number of territory updates + + +### open the output file for writing ### +open(out, ">$dir2/$VDLfile") + || die "Can't open $VDLfile: $!\n"; + +$TODAYfile = $TODAY; +$TODAYfile =~ s/-//gi; + +if ($report_call_file > 0) + { + $VTcfWEBfile = "$PATHweb/vicidial/server_reports/$TODAYfile" . "_IMM_Call_File.txt"; + ### open the output file for writing ### + open(CFout, ">$VTcfWEBfile") + || die "Can't open $VTcfWEBfile: $!\n"; + } +if ($report_orders_file > 0) + { + $VTofWEBfile = "$PATHweb/vicidial/server_reports/$TODAYfile" . "_IMM_Orders_File.txt"; + ### open the output file for writing ### + open(OFout, ">$VTofWEBfile") + || die "Can't open $VTofWEBfile: $!\n"; + } + + + +##### BEGIN REPORT HOURS FILE ##### +if ($report_hours_file > 0) + { + $VThfWEBfile = "$PATHweb/vicidial/server_reports/$TODAYfile" . "_IMM_Hours_File.txt"; + ### open the output file for writing ### + open(HFout, ">$VThfWEBfile") + || die "Can't open $VThfWEBfile: $!\n"; + + $VAL_exists=0; + $stmtA = "SELECT count(*) FROM vicidial_agent_log where event_time >= \"$TODAY 00:00:00\" and event_time <= \"$ENDDAY 23:59:59\";"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($DB) {print "$sthArows|$stmtA\n";} + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VAL_exists = "$aryA[0]"; + } + $sthA->finish(); + + if ($VAL_exists > 0) + { + # and vu.user_code LIKE \"IMM%\" + $stmtA = "SELECT pause_sec,wait_sec,talk_sec,dispo_sec,sub_status,vu.user,user_code,campaign_id,comments FROM vicidial_agent_log val,vicidial_users vu where event_time >= \"$TODAY 00:00:00\" and event_time <= \"$ENDDAY 23:59:59\" and val.user=vu.user order by val.user;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($DB) {print "$sthArows|$stmtA\n";} + $w=0; + while ($sthArows > $w) + { + @aryA = $sthA->fetchrow_array; + $pause_sec[$w] = "$aryA[0]"; + $wait_sec[$w] = "$aryA[1]"; + $talk_sec[$w] = "$aryA[2]"; + $dispo_sec[$w] = "$aryA[3]"; + $pause_code[$w] = "$aryA[4]"; + $user[$w] = "$aryA[5]"; + $rep[$w] = "$aryA[6]"; + $campaign[$w] = "$aryA[7]"; + $comments[$w] = "$aryA[8]"; + $w++; + } + $sthA->finish(); + + $last_user=''; + $w=0; + while ($sthArows >= $w) + { + if ( (length($last_user) != length($user[$w]) ) || ($last_user !~ /$user[$w]/) ) + { + # rep id user + # work date date yyyymmdd + # bus line status id ?? + # vendor site id 15 + # time ob talk outbound talk time in seconds + # time ib talk inbound talk time in seconds + # time acw dispo time in seconds + # time onhook pause time in seconds + # time train pause time training in seconds + # time break pause time break in seconds + # time wait wait time in seconds + + if ($DB) {print "printing $last_user|$Lrep\n";} + + if ($w > 0) + {print HFout "$last_user,$TODAY,4,15,$L_ob_talk,$L_ib_talk,$L_acw,$L_onhook,$L_train,$L_break,$L_wait\n";} + $last_user = $user[$w]; + $Lrep=$rep[$w]; + $L_ob_talk=0; + $L_ib_talk=0; + $L_acw=0; + $L_onhook=0; + $L_train=0; + $L_break=0; + $L_wait=0; + $m++; + } + $billable[$w] = 'NO'; + if ( ($pause_code[$w] !~ /NULL/) && (length($pause_code[$w]) > 0) && ($pause_sec[$w] > 0) ) + { + $stmtA = "SELECT billable from vicidial_pause_codes where campaign_id='$campaign[$w]' and pause_code='$pause_code[$w]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArowsX=$sthA->rows; + if ($sthArowsX > 0) + { + @aryA = $sthA->fetchrow_array; + $billable[$w] = "$aryA[0]"; + } + $sthA->finish(); + } + + if ($comments[$w] =~ /MANUAL|AUTO/) {$L_ob_talk = ($L_ob_talk + $talk_sec[$w]);} + else {$L_ib_talk = ($L_ib_talk + $talk_sec[$w]);} + $L_acw = ($L_acw + $dispo_sec[$w]); + $L_wait = ($L_wait + $wait_sec[$w]); + $pause_logged=0; + if ( ($pause_code[$w] !~ /NULL/i) && (length($pause_code[$w])>0) ) + { + if ( ($pause_code[$w] =~ /train|meet/i) && ($billable[$w] !~ /NO/) ) + { + $L_train = ($L_train + $pause_sec[$w]); + $pause_logged++; + } + if ( ($pause_code[$w] =~ /break|lunch/i) && ($billable[$w] !~ /NO/) ) + { + $L_break = ($L_break + $pause_sec[$w]); + $pause_logged++; + } + } + if ($pause_logged < 1) + {$L_onhook = ($L_onhook + $pause_sec[$w]);} + + $w++; + } + + } + + exit; + } +##### END REPORT HOURS FILE ##### + + + + + +$vt_timezone_field_exists=0; +if ($vt_timezone_update > 0) + { + $stmtB="SELECT count(*) from vtiger_field where fieldlabel='Timezone';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $vt_timezone_field_exists = "$aryB[0]"; + } + $sthB->finish(); + + if ($vt_timezone_field_exists > 0) + { + $stmtB="SELECT fieldname from vtiger_field where fieldlabel='Timezone';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $vt_timezone_field_name = "$aryB[0]"; + } + $sthB->finish(); + + if ($q < 1) {print "Vtiger Timezone field found: $vt_timezone_field_name, starting updates...\n";} + } + } + + + +$vt_last_saleamount_field_exists=0; +$vt_largest_saleamount_field_exists=0; +if ( ($vt_sales_update > 0) || ($vt_sales_update_alldate > 0) ) + { + $stmtB="SELECT count(*) from vtiger_field where fieldlabel='Last Sale Amount';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $vt_last_saleamount_field_exists = "$aryB[0]"; + } + $sthB->finish(); + + $stmtB="SELECT count(*) from vtiger_field where fieldlabel='Largest Sale Amount';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $vt_largest_saleamount_field_exists = "$aryB[0]"; + } + $sthB->finish(); + + if ($vt_last_saleamount_field_exists > 0) + { + $stmtB="SELECT fieldname from vtiger_field where fieldlabel='Last Sale Amount';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $vt_last_saleamount_field_name = "$aryB[0]"; + } + $sthB->finish(); + + if ($q < 1) {print "Vtiger Last Sale Amount field found: $vt_last_saleamount_field_name, starting updates...\n";} + } + if ($vt_largest_saleamount_field_exists > 0) + { + $stmtB="SELECT fieldname from vtiger_field where fieldlabel='Largest Sale Amount';"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $vt_largest_saleamount_field_name = "$aryB[0]"; + } + $sthB->finish(); + + if ($q < 1) {print "Vtiger Largest Sale Amount field found: $vt_largest_saleamount_field_name, starting updates...\n";} + } + } + + + +### Gather all non-deleted Accounts in Vtiger +$stmtB="SELECT crmid,smownerid from vtiger_crmentity where setype='Accounts' and deleted='0' order by crmid limit 3000000;"; +$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; +$sthB->execute or die "executing: $stmtB ", $dbhB->errstr; +$sthBrowsC=$sthB->rows; +$i=0; +while ($sthBrowsC > $i) + { + @aryB = $sthB->fetchrow_array; + $crmid[$i] = $aryB[0]; + $smownerid[$i] = $aryB[1]; + $i++; + } +$sthB->finish(); + +### Gather all account info and address info on those accounts, also checking for duplicates in vicidial_list if selected +$i=0; +while ($sthBrowsC > $i) + { + + + + + ##### BEGIN TIMEZONE UPDATE ##### + if ( ($vt_timezone_update > 0) && ($vt_timezone_field_exists > 0) ) + { + $VL_exists=0; + $stmtA = "SELECT count(*) FROM vicidial_list where vendor_lead_code='$crmid[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VL_exists = "$aryA[0]"; + } + $sthA->finish(); + + if ($VL_exists > 0) + { + $stmtA = "SELECT state,gmt_offset_now FROM vicidial_list where vendor_lead_code='$crmid[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VL_state = "$aryA[0]"; + $VL_timezone = "$aryA[1]"; + } + $sthA->finish(); + + $tz_set=0; + $timezone_abb = 'NONE'; + if ($VL_state =~ /AZ/) {$timezone_abb = 'MST'; $tz_set=1;} + if ( ($VL_state =~ /HI/) && ($tz_set < 1) ) {$timezone_abb = 'HST'; $tz_set=1;} + if ( ($VL_timezone == "-10") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'HST'; $tz_set=1;} + if ( ($VL_timezone == "-9") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'AKT'; $tz_set=1;} + if ( ($VL_timezone == "-8") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'PST'; $tz_set=1;} + if ( ($VL_timezone == "-7") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'MST'; $tz_set=1;} + if ( ($VL_timezone == "-6") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'CST'; $tz_set=1;} + if ( ($VL_timezone == "-5") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'EST'; $tz_set=1;} + if ( ($VL_timezone == "-4") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'AST'; $tz_set=1;} + if ( ($VL_timezone == "-3.5") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'NST'; $tz_set=1;} + if ( ($VL_timezone == "10") && ($isdst < 1) && ($tz_set < 1) ) {$timezone_abb = 'ChST'; $tz_set=1;} + if ( ($VL_timezone == "-9") && ($isdst > 0) && ($tz_set < 1) ) {$timezone_abb = 'HDT'; $tz_set=1;} + if ( ($VL_timezone == "-8") && ($isdst > 0) && ($tz_set < 1) ) {$timezone_abb = 'ADT'; $tz_set=1;} + if ( ($VL_timezone == "-7") && ($isdst > 0) && ($tz_set < 1) ) {$timezone_abb = 'PDT'; $tz_set=1;} + if ( ($VL_timezone == "-6") && ($isdst > 0) && ($tz_set < 1) ) {$timezone_abb = 'MDT'; $tz_set=1;} + if ( ($VL_timezone == "-5") && ($isdst > 0) && ($tz_set < 1) ) {$timezone_abb = 'CDT'; $tz_set=1;} + if ( ($VL_timezone == "-4") && ($isdst > 0) && ($tz_set < 1) ) {$timezone_abb = 'EDT'; $tz_set=1;} + if ( ($VL_timezone == "-3") && ($isdst > 0) && ($tz_set < 1) ) {$timezone_abb = 'ADT'; $tz_set=1;} + if ( ($VL_timezone == "-2.5") && ($isdst > 0) && ($tz_set < 1) ) {$timezone_abb = 'NDT'; $tz_set=1;} + + $stmtB = "UPDATE vtiger_accountscf SET $vt_timezone_field_name='$timezone_abb' where accountid='$crmid[$i]';"; + if ($T < 1) {$affected_rowsB = $dbhB->do($stmtB) or die "Couldn't execute query: |$stmtB|\n";} + if($DB){print "|$affected_rowsB|$stmtB|\n";} + $h = ($affected_rowsB + $h); + } + } + ##### END TIMEZONE UPDATE ##### + + + + ##### BEGIN USER TERRITORY UPDATE ##### + if ($vt_territory_update > 0) + { + $stmtB="SELECT tickersymbol from vtiger_account where accountid='$crmid[$i]';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $territory = $aryB[0]; + } + $sthB->finish(); + + if (length($territory)>0) + { + $VL_exists=0; + $stmtA = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VL_exists = "$aryA[0]"; + } + $sthA->finish(); + + if ($VL_exists > 0) + { + $user=''; + $stmtA = "SELECT user FROM vicidial_user_territories where territory='$territory' order by level desc,user;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $user = "$aryA[0]"; + } + $sthA->finish(); + + if (length($territory)>0) + { + $user_id=''; + $stmtB="SELECT id from vtiger_users where user_name='$user';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $user_id = $aryB[0]; + } + $sthB->finish(); + + if (length($user_id)>0) + { + $stmtB = "UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$crmid[$i]' $VCuser_territory_update_restrictionSQL;"; + if ($T < 1) {$affected_rowsB = $dbhB->do($stmtB) or die "Couldn't execute query: |$stmtB|\n";} + if($DB){print "|$affected_rowsB|$stmtB|\n";} + + $stmtB = "UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$crmid[$i]' $VTuser_territory_update_restrictionSQL;"; + if ($T < 1) {$affected_rowsB = $dbhB->do($stmtB) or die "Couldn't execute query: |$stmtB|\n";} + if($DB){print "|$affected_rowsB|$stmtB|\n";} + $n++; + } + } + } + } + } + ##### END USER TERRITORY UPDATE ##### + + + + ##### BEGIN SALE AMOUNT UPDATE ##### + if ( ( ($vt_sales_update > 0) || ($vt_sales_update_alldate > 0) ) && ( ($vt_last_saleamount_field_exists > 0) && ($vt_largest_saleamount_field_exists > 0) ) ) + { + $last_sale='0.00'; + $largest_sale='0.00'; + if ($vt_sales_update > 0) {$duedateSQL = "and duedate='$crmid[$i]'";} + if ($vt_sales_update_alldate > 0) {$duedateSQL = "";} + + $VS_exists=0; + $stmtB="SELECT count(*) from vtiger_salesorder where accountid='$crmid[$i]' $duedateSQL order by duedate;"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $VS_exists = $aryB[0]; + } + $sthB->finish(); + + if ($VS_exists > 0) + { + $k=0; + $stmtB="SELECT total from vtiger_salesorder where accountid='$crmid[$i]' $duedateSQL order by duedate;"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + while ($sthBrows > $k) + { + @aryB = $sthB->fetchrow_array; + $last_sale = $aryB[0]; + if ($aryB[0] > $largest_sale) {$largest_sale = $aryB[0];} + $k++; + } + $sthB->finish(); + + $stmtB = "UPDATE vtiger_accountscf SET $vt_largest_saleamount_field_name='$largest_sale',$vt_last_saleamount_field_name='$last_sale' where accountid='$crmid[$i]';"; + if ($T < 1) {$affected_rowsB = $dbhB->do($stmtB) or die "Couldn't execute query: |$stmtB|\n";} + if($DB){print "|$affected_rowsB|$stmtB|\n";} + $j = ($affected_rowsB + $j); + } + } + ##### END SALE AMOUNT UPDATE ##### + + + + + + ##### BEGIN REPORT CALL FILE ##### + if ($report_call_file > 0) + { + $VC_count=0; + $stmtA = "SELECT count(*) FROM vicidial_list where vendor_lead_code='$crmid[$i]' and last_local_call_time >= \"$TODAY 00:00:00\" and last_local_call_time <= \"$ENDDAY 23:59:59\";"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VC_count = "$aryA[0]"; + } + $sthA->finish(); + + if ($VC_count > 0) + { + $stmtB="SELECT website,tickersymbol,employees from vtiger_account where accountid='$crmid[$i]';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $website = $aryB[0]; + @webARY = split(/-/,$website); + $account = $webARY[0]; + $sequence = $webARY[1]; + $territory = $aryB[1]; + $business_line = $aryB[2]; + } + $sthB->finish(); + + $lead_id=''; + $stmtA = "SELECT lead_id FROM vicidial_list where vendor_lead_code='$crmid[$i]' and last_local_call_time >= \"$TODAY 00:00:00\" and last_local_call_time <= \"$ENDDAY 23:59:59\" order by lead_id desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $lead_id = "$aryA[0]"; + } + $sthA->finish(); + + $VL_count=0; + $stmtA = "SELECT count(*) FROM vicidial_log where lead_id='$lead_id' and call_date >= \"$TODAY 00:00:00\" and call_date <= \"$ENDDAY 23:59:59\";"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VL_count = "$aryA[0]"; + } + $sthA->finish(); + + $VCL_count=0; + $stmtA = "SELECT count(*) FROM vicidial_closer_log where lead_id='$lead_id' and call_date >= \"$TODAY 00:00:00\" and call_date <= \"$ENDDAY 23:59:59\";"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCL_count = "$aryA[0]"; + } + $sthA->finish(); + + # transaction id vicidial_log.uniqueid + # vendor site id 15 + # rep id vicidial_users.user_code + # account id first half of the vtiger_account.website field + # sequence second half of the vtiger_account.website field + # territory id vtiger_account.tickersymbol + # phone number vicidial_log.phone_number + # disposition code vicidial_log.status + # call length (s) vicidial_log.length_in_sec + # call date vicidial_log.call_date + # call type vicidial_log.comments turned into a numeric value + # bus line status id vtiger_account.employees + + if ($VL_count > 0) + { + $stmtA = "SELECT uniqueid,vl.user,user_code,phone_number,vl.status,length_in_sec,call_date,comments FROM vicidial_log vl,vicidial_users vu where lead_id='$lead_id' and call_date >= \"$TODAY 00:00:00\" and call_date <= \"$ENDDAY 23:59:59\" and vl.user=vu.user order by call_date;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $w=0; + while ($sthArows > $w) + { + @aryA = $sthA->fetchrow_array; + $transaction = "$aryA[0]"; + $user = "$aryA[1]"; + $rep = "$aryA[2]"; + $phone = "$aryA[3]"; + $disposition = "$aryA[4]"; + $call_length = "$aryA[5]"; + $call_date = "$aryA[6]"; + $call_type = "$aryA[7]"; + if ($call_type =~ /AUTO/) {$ct='3';} + else {$ct='2';} + + print CFout "$transaction,15,$user,$account,$sequence,$territory,$phone,$disposition,$call_length,$call_date,$ct\n"; + $m++; + $w++; + } + $sthA->finish(); + } + + if ($VCL_count > 0) + { + $stmtA = "SELECT closecallid,vcl.user,user_code,phone_number,vcl.status,length_in_sec,call_date,comments FROM vicidial_closer_log vcl,vicidial_users vu where lead_id='$lead_id' and call_date >= \"$TODAY 00:00:00\" and call_date <= \"$ENDDAY 23:59:59\" and vcl.user=vu.user order by call_date;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $w=0; + while ($sthArows > $w) + { + @aryA = $sthA->fetchrow_array; + $transaction = "$aryA[0]"; + $user = "$aryA[1]"; + $rep = "$aryA[2]"; + $phone = "$aryA[3]"; + $disposition = "$aryA[4]"; + $call_length = "$aryA[5]"; + $call_date = "$aryA[6]"; + $call_type = "$aryA[7]"; + + print CFout "$transaction,15,$user,$account,$sequence,$territory,$phone,$disposition,$call_length,$call_date,1\n"; + $m++; + $w++; + } + $sthA->finish(); + } + } + } + ##### END REPORT CALL FILE ##### + + + + + ##### BEGIN REPORT ORDERS FILE ##### + if ($report_orders_file > 0) + { + $VS_exists=0; + $stmtB="SELECT count(*) from vtiger_crmentity vc,vtiger_salesorder vs where setype='SalesOrder' and accountid='$crmid[$i]' and createdtime >= \"$TODAY 00:00:00\" and createdtime <= \"$ENDDAY 23:59:59\" and vc.crmid=vs.salesorderid;"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $VS_exists = $aryB[0]; + } + $sthB->finish(); + + if ($VS_exists > 0) + { + $stmtB="SELECT website,phone,accountname,ownership,siccode from vtiger_account where accountid='$crmid[$i]';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $website = $aryB[0]; + @webARY = split(/-/,$website); + $account = $webARY[0]; + $sequence = $webARY[1]; + $phone = $aryB[1]; + $company = $aryB[2]; + $ownership = $aryB[3]; + @ownARY = split(/ /,$ownership); + $first_name = $ownARY[0]; + $last_name = $ownARY[1]; + $VCstatus = $aryB[4]; + } + $sthB->finish(); + + $stmtA = "SELECT status FROM vicidial_statuses where status_name='$VCstatus';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCstatus = "$aryA[0]"; + $sthA->finish(); + } + else + { + $sthA->finish(); + $stmtA = "SELECT status FROM vicidial_campaign_statuses where status_name='$VCstatus';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VCstatus = "$aryA[0]"; + $sthA->finish(); + } + } + $sthA->finish(); + + $k=0; + $stmtB="SELECT salesorderid,total,duedate,smownerid,user_name from vtiger_salesorder vso, vtiger_crmentity vce, vtiger_users vu where accountid='$crmid[$i]' and createdtime >= \"$TODAY 00:00:00\" and createdtime <= \"$ENDDAY 23:59:59\" and vso.salesorderid=vce.crmid and vu.id=vce.smownerid order by duedate;"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + while ($sthBrows > $k) + { + @aryB = $sthB->fetchrow_array; + $salesorderid = $aryB[0]; + $total = $aryB[1]; + chop($total); + $duedate = $aryB[2]; + $so_owner = $aryB[3]; + $user = $aryB[4]; + + print OFout "$salesorderid,$phone,$account,$sequence,$company,$first_name,$last_name,$VCstatus,$duedate,$total,$user\n"; + $m++; + $k++; + } + $sthB->finish(); + } + + } + ##### END REPORT ORDERS FILE ##### + + + + + + ##### BEGIN VICIDIAL UPDATE ##### + if ($skip_vicidial_update < 1) + { + $VL_dup=0; + $VL_phone_dup=0; + + $stmtB="SELECT accountname,ownership,siccode,annualrevenue,tickersymbol,phone,otherphone,fax,email1,website from vtiger_account where accountid='$crmid[$i]';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $accountname = $aryB[0]; + $ownership = $aryB[1]; + $siccode = $aryB[2]; + $annualrevenue = $aryB[3]; + $tickersymbol = $aryB[4]; + $phone = $aryB[5]; + $otherphone = $aryB[6]; + $fax = $aryB[7]; + $email1 = $aryB[8]; + $website = $aryB[9]; + $accountname =~ s/'//gi; + $ownership =~ s/'//gi; + $siccode =~ s/'//gi; + $annualrevenue =~ s/'//gi; + $tickersymbol =~ s/'//gi; + $phone =~ s/'//gi; + $otherphone =~ s/'//gi; + $fax =~ s/'//gi; + $email1 =~ s/'//gi; + $website =~ s/'//gi; + } + $sthB->finish(); + + $stmtB="SELECT bill_city,bill_code,bill_country,bill_state,bill_street,bill_pobox from vtiger_accountbillads where accountaddressid='$crmid[$i]';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $bill_city = $aryB[0]; + $bill_code = $aryB[1]; + $bill_country = $aryB[2]; + $bill_state = $aryB[3]; + $bill_street = $aryB[4]; + $bill_pobox = $aryB[5]; + $bill_city =~ s/'//gi; + $bill_code =~ s/'//gi; + $bill_street =~ s/'//gi; + } + $sthB->finish(); + + if ($dupchecksys > 0) + { + $stmtA = "SELECT count(*) FROM vicidial_list where phone_number='$phone';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VL_phone_dup = "$aryA[0]"; + } + $sthA->finish(); + } + if ($dupcheckvend > 0) + { + $stmtA = "SELECT count(*) FROM vicidial_list where vendor_lead_code='$crmid[$i]';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $VL_dup = "$aryA[0]"; + } + $sthA->finish(); + } + + $vicidial_owner_updateSQL=''; + $vicidial_owner_updateFILE=''; + if ($vicidial_owner_update > 0) + { + $user=''; + $stmtB="SELECT user_name from vtiger_users where id='$smownerid[$i]';"; + if($DBX){print STDERR "\n|$stmtB|\n";} + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + $user = $aryB[0]; + } + $sthB->finish(); + + $vicidial_owner_updateSQL = ",owner='$user'"; + $vicidial_owner_updateFILE = "|||||$user"; + } + + if ($VL_phone_dup > 0) + { + if($DB){print "DUPLICATE PHONE: $phone|$crmid[$i]\n";} + $f++; + $affected_rowsA=0; + ### update the existing vicidial_list entry ### + $stmtA = "UPDATE vicidial_list SET first_name='$accountname',last_name='$ownership',address1='$bill_street',address2='$bill_pobox',city='$bill_city',state='$bill_state',postal_code='$bill_code',country='$bill_country',vendor_lead_code='$crmid[$i]',address3='$fax',alt_phone='$otherphone',email='$email1',province='$website',security_phrase='$tickersymbol',comments='$siccode|$annualrevenue' $vicidial_owner_updateSQL where phone_number='$phone' limit 1;"; + if ($T < 1) {$affected_rowsA = $dbhA->do($stmtA); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rowsA|$stmtA|\n";} + $c = ($affected_rowsA + $c); + } + else + { + if ($VL_dup > 0) + { + if($DB){print "DUPLICATE VENDOR_ID: $crmid[$i]\n";} + $e++; + $affected_rowsA=0; + ### update the existing vicidial_list entry ### + $stmtA = "UPDATE vicidial_list SET first_name='$accountname',last_name='$ownership',address1='$bill_street',address2='$bill_pobox',city='$bill_city',state='$bill_state',postal_code='$bill_code',country_code='$bill_country',phone_number='$phone',address3='$fax',alt_phone='$otherphone',email='$email1',province='$website',security_phrase='$tickersymbol',comments='$siccode $annualrevenue' $vicidial_owner_updateSQL where vendor_lead_code='$crmid[$i]' limit 1;"; + if ($T < 1) {$affected_rowsA = $dbhA->do($stmtA); } # or die "Couldn't execute query: |$stmtB|\n"; + if($DB){print STDERR "\n|$affected_rowsA|$stmtA|\n";} + $c = ($affected_rowsA + $c); + } + else + { + ### print the output file in proper format + print out "$crmid[$i]||$list_id|$phone_code|$phone||$accountname||$ownership|$bill_street|$bill_pobox|$fax|$bill_city|$bill_state|$website|$bill_code|$bill_country|||$otherphone|$email1|$ticketsymbol|$siccode $annualrevenue$vicidial_owner_updateFILE\n"; + $b++; + } + } + } + ##### END VICIDIAL UPDATE ##### + + $i++; + + if ($q < 1) + { + if ($i =~ /10$/i) {print STDERR "0 $i\r";} + if ($i =~ /20$/i) {print STDERR "+ $i\r";} + if ($i =~ /30$/i) {print STDERR "| $i\r";} + if ($i =~ /40$/i) {print STDERR "\\ $i\r";} + if ($i =~ /50$/i) {print STDERR "- $i\r";} + if ($i =~ /60$/i) {print STDERR "/ $i\r";} + if ($i =~ /70$/i) {print STDERR "| $i\r";} + if ($i =~ /80$/i) {print STDERR "+ $i\r";} + if ($i =~ /90$/i) {print STDERR "0 $i\r";} + if ($i =~ /00$/i) {print "$i|$b|$c|$d|$e|$f|$g|$h|$n|$crmid[$i]|$phone_number|\n";} + } + } + + + + ### open the stats out file for writing ### + open(Sout, ">>$VDHLOGfile") + || die "Can't open $VDHLOGfile: $!\n"; + + + ### close file handler and DB connections ### + $Falert = "\n\nTOTALS FOR $FILEname:\n"; + $Falert .= "Records in System: $i\n"; + $Falert .= "LINES OUTPUTED: $b\n"; + $Falert .= "LIVE VL UPDATE: $c\n"; + $Falert .= "ERROR: $e\n"; +# $Falert .= "MULTI-ALT-PHONE: $g\n"; + if ($e > 0) + {$Falert .= "VENDOR DUPLICATES: $e\n";} + if ($f > 0) + {$Falert .= "PHONE DUPLICATES: $f\n";} + $Falert .= "TIMEZONE UPDATES: $h\n"; + $Falert .= "SALE AMOUNT UPDATES:$j\n"; + $Falert .= "TERRITORY UPDATES: $n\n"; + $Falert .= "REPORT RECORDS: $m\n"; + + if ($q < 1) {print "$Falert";} + print Sout "$Falert"; + $Ealert .= "$Falert"; + + close(out); + close(Sout); + chmod 0777, "$VDHLOGfile"; + + ### Move file to the LEADS_IN directory locally + if ($T < 1) {`mv -f $dir2/$VDLfile $dir1/$VDLfile`;} + + +$dbhA->disconnect(); +$dbhB->disconnect(); + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if ($q < 1) + { + print "script execution time in seconds: $secZ minutes: $secZm\n"; + } + +###### EMAIL SECTION +$email_sent=0; +if ( ($report_call_file > 0) && (length($email_list) > 3) && ($m > 0) ) + { + if ($q < 1) {print "Sending email: $email_list\n";} + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VICIDIAL Lead Lists Report $shipdate"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + ); + $boundary = "====" . time() . "===="; + $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; + + $message = encode_qp( "VICIDIAL Lead Lists Report for $shipdate:\n\n Attachment: $outfile" ); + + $Zfile = "$PATHoutfile"; + + open (F, $Zfile) or die "Cannot read $Zfile: $!"; + binmode F; undef $/; + $attachment = encode_base64(); + close F; + + $boundary = '--'.$boundary; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; + $mail{body} .= "Content-Transfer-Encoding: quoted-printable\n\n"; + $mail{body} .= "$message\n"; + $mail{body} .= "$boundary\n"; + $mail{body} .= "Content-Type: application/octet-stream; name=\"$outfile\"\n"; + $mail{body} .= "Content-Transfer-Encoding: base64\n"; + $mail{body} .= "Content-Disposition: attachment; filename=\"$outfile\"\n\n"; + $mail{body} .= "$attachment\n"; + $mail{body} .= "$boundary"; + $mail{body} .= "--\n"; + + sendmail(%mail) or die $mail::Sendmail::error; + print "ok. log says:\n", $mail::sendmail::log; ### print mail log for status + + $email_sent++; + } + +if ( (length($Ealert)>5) && (length($email_list) > 3) && ($email_sent < 1) ) + { + if ($q < 1) {print "Sending email: $email_list\n";} + + use MIME::QuotedPrint; + use MIME::Base64; + use Mail::Sendmail; + + $mailsubject = "VTIGER ACCOUNT FILE LOAD $pulldate0"; + + %mail = ( To => "$email_list", + From => "$email_sender", + Subject => "$mailsubject", + Message => "VTIGER ACCOUNT FILE LOAD $pulldate0\n\n$Ealert\n" + ); + sendmail(%mail) or die $mail::Sendmail::error; + if ($q < 1) {print "ok. log says:\n", $mail::sendmail::log;} ### print mail log for status + } + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/Vtiger_optimize_all_tables.pl b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_optimize_all_tables.pl new file mode 100644 index 00000000..d2ffa8e5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/Vtiger_optimize_all_tables.pl @@ -0,0 +1,218 @@ +#!/usr/bin/perl +# +# Vtiger_optimize_all_tables.pl version 2.0.5 *DBI-version* +# +# DESCRIPTION: +# runs optimize table on all Vtiger tables in MySQL database +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 90422-0521 - First build +# + +$secX = time(); + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n"; + print " [-q] = quiet\n"; + print " [--test] = test\n"; + print " [--debug] = debug output\n"; + print " [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-q/i) + { + $q=1; + $DB=0; + $DBX=0; + $force_quiet=1; + } + if ( ($args =~ /-debug/i) && ($force_quiet < 1) ) + { + $DB=1; + print "\n----- DEBUGGING -----\n\n"; + } + if ( ($args =~ /-debugX/i) && ($force_quiet < 1) ) + { + $DBX=1; + print "\n----- SUPER-DUPER DEBUGGING -----\n\n"; + } + else {$DBX=0;} + + if ($args =~ /-test/i) + { + $T=1; + if ($q < 1) {print "\n----- TESTING -----\n\n";} + } + else + {$T=0;} + } + } +else + { + print "no command line options set\n"; + $args = ""; + $i=0; + $forcelistid = ''; + $T=0; + } +### end parsing run-time options ### + +if ($q < 1) + { + print "\n\n\n\n\n\n\n\n\n\n\n\n-- Vtiger_optimize_all_tables.pl --\n\n"; + print "This program is designed to optimize all tables in the VtigerCRM MySQL database.\n\n"; + } + +$i=0; +$US = '_'; +$phone_list = '|'; + +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + $vtiger_server_ip = "$aryA[1]"; + $vtiger_dbname = "$aryA[2]"; + $vtiger_login = "$aryA[3]"; + $vtiger_pass = "$aryA[4]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + +$dbhB = DBI->connect("DBI:mysql:$vtiger_dbname:$vtiger_server_ip:$VARDB_port", "$vtiger_login", "$vtiger_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + + +$i=0; ### each table counter ### + +$stmtB="show tables;"; +$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; +$sthB->execute or die "executing: $stmtB ", $dbhB->errstr; +$sthBrows=$sthB->rows; +while ($sthBrows > $i) + { + @aryB = $sthB->fetchrow_array; + $tables[$i] = "$aryB[0]"; + $i++; + } +$sthB->finish(); + +if ($q < 1) {print "VtigerCRM Database tables found: $i\n";} + + +if ( ($i > 0) && ($T < 1) ) + { + $j=0; + while ($i > $j) + { + $stmtB="OPTIMIZE TABLE $tables[$j];"; + $sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; + $sthB->execute or die "executing: $stmtB ", $dbhB->errstr; + $sthBrows=$sthB->rows; + if ($sthBrows > 0) + { + @aryB = $sthB->fetchrow_array; + if ($q < 1) {print "$stmtB|$aryB[0]|$aryB[1]|$aryB[2]|$aryB[3]\n";} + } + $sthB->finish(); + $j++; + } + + } + + + +### calculate time to run script ### +$secY = time(); +$secZ = ($secY - $secX); +$secZm = ($secZ /60); + +if ($q < 1) + { + print "script execution time in seconds: $secZ minutes: $secZm\n"; + } + +exit; + diff --git a/agc_2-X/branches/agc_2.2.0/bin/build_translation_www_files.pl b/agc_2-X/branches/agc_2.2.0/bin/build_translation_www_files.pl new file mode 100644 index 00000000..fb7d083d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/bin/build_translation_www_files.pl @@ -0,0 +1,423 @@ +#!/usr/bin/perl +# +# build_translation_www_files.pl version 2.0.5 +# +# converts web pages to other language +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +# changes: +# 60808-1029 - Changed to use /etc/astguiclient.conf for configs +# 70402-1305 - Added error log generation for not found phrases +# 90317-0127 - Changed internationalization link for admin +# + +############################################ +# grab variables from /etc/astguiclient.conf + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# +# path to home directory: (assumes it already exists) +$home = $PATHhome; + +# path to web root directory: (assumes it already exists) +$webroot = $PATHweb; + +############################################ + +$secX = time(); + +# constants +$DB=1; # Debug flag, set to 0 for no debug messages, lots of output +$US='_'; +$MT[0]=''; +$language_admin_file = 'language_admin.txt'; +$language_file = 'language.txt'; +$error_file = "language_error.txt"; +$admin_error_file = "language_admin_error.txt"; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-t] = test\n [-debug] = verbose debug messages\n[--admin-only] = only translate admin pages\n[--client-only] = only translate client pages\n[--without-en] = only translate non-english\n[--language=] = which language to build, 2 letter code, defaults to es-spanish\n\n"; + + exit; + } + else + { + if ($args =~ /-debug/i) + { + $DB=1; # Debug flag + } + if ($args =~ /--language/i) + { + $LANG=1; + print "\n----- LANGUAGE WEB SCRIPT ONLY BUILD -----\n\n"; + } + if ($args =~ /--language=/i) + { + @data_in = split(/--language=/,$args); + $CLIlanguage = $data_in[1]; + } + else + {$CLIlanguage = 'es';} # default to build all languages + if ($args =~ /-admin-only/i) + { + $admin_only=1; # Admin flag + print "\n----- ADMIN PAGES ONLY BUILD -----\n\n"; + } + if ($args =~ /-client-only/i) + { + $client_only=1; # Client flag + print "\n----- CLIENT PAGES ONLY BUILD -----\n\n"; + } + if ($args =~ /-without-en/i) + { + print "\n----- NON-ENGLISH ONLY BUILD -----\n\n"; + $without_en=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +# print "no command line options set\n"; +} +### end parsing run-time options ### + + +if ($LANG) +{ +if ( (!$admin_only) && (!$client_only) ) + {$admin_only=1; $client_only=1;} + +if ($admin_only==1) + { + print "\n----- LANGUAGE BUILD: $CLIlanguage -----\n\n"; + $LANG_FILE_ERROR = "$PATHlogs/$CLIlanguage$US$admin_error_file"; + $LANG_FILE_ADMIN = "./translations/$CLIlanguage$US$language_admin_file"; + open(lang, "$LANG_FILE_ADMIN") || die "can't open $LANG_FILE_ADMIN: $!\n"; + @lang = ; + close(lang); + &translate_pages; + } + +@lang=@MT; +@LANGUAGES=@MT; +@FILES=@MT; +@TRANSLATIONS=@MT; +@TRANSLATIONS_RAW=@MT; + +if ($client_only==1) + { + $LANG_FILE_ERROR = "$PATHlogs/$CLIlanguage$US$error_file"; + $LANG_FILE = "./translations/$CLIlanguage$US$language_file"; + open(lang, "$LANG_FILE") || die "can't open $LANG_FILE: $!\n"; + @lang = ; + close(lang); + &translate_pages; + } +} + +$secy = time(); $secz = ($secy - $secX); $minz = ($secz/60); # calculate script runtime so far +print "\n - process runtime ($secz sec) ($minz minutes)\n"; +print "\n\nDONE and EXITING\n"; + + +exit; + + + +sub translate_pages +{ +#***LANGUAGES*** +#en-English|es-Espaol| +#***FILES*** +#agc/astguiclient.php +#agc/vicidial.php +#***TRANSLATIONS*** +#English|Ingls| +#Spanish|Espaol| + +##### PARSE THE LANGUAGES SETTING FILE ##### +$section=''; +$i=0; +$Lct=0; $Fct=0; $Tct=0; +foreach(@lang) + { + if ($lang[$i] !~ /^\#/) + { + if ($lang[$i] =~ /^\*\*\*/) + { + $section = $lang[$i]; + $section =~ s/\*|\n|\r//gi; + # print "section heading: $section: $lang[$i]"; + } + else + { + if ($section =~ /LANGUAGES/) + { + $LANGUAGES = $lang[$i]; + $Lct++; + } + else + { + if ($section =~ /FILES/) + { + # print "section: $section line: $lang[$i]"; + $FILES[$Fct] = $lang[$i]; + $Fct++; + } + else + { + if ($section =~ /TRANSLATIONS/) + { + # print "section: $section line: $lang[$i]"; + @TRANSlineX = split(/\|/, $lang[$i]); + $ORIGtextX = "$TRANSlineX[0]"; + $lengthX = length($ORIGtextX); + $lengthX = sprintf("%04d",$lengthX); + $TRANSLATIONS_RAW[$Tct] = "$lengthX|$lang[$i]"; + $Tct++; + } + } + } + } + } + $i++; + } + +if ($DB) + { + print "LANGUAGE FILE PARSE RESULTS: $#lang lines in file\n"; + print "LANGUAGES: $LANGUAGES\n"; + print "FILES: $Fct\n"; + print "TRANSLATIONS: $Tct\n"; + } + +#@TRANSLATIONS = sort { length($b) <=> length($a) } @TRANSLATIONS_RAW; +@TRANSLATIONS = sort { $b <=> $a } @TRANSLATIONS_RAW; + +#$k=0; +#foreach(@TRANSLATIONS) +# { +# $length = length($TRANSLATIONS[$k]); +# print "$TRANSLATIONS[$k]|$length|\n"; +# $k++; +# } + +##### LOOP THROUGH THE LANGUAGES +@lang_list = split(/\|/, $LANGUAGES); +@lang_link_list = @lang_list; +$i=0; +$gif = '.gif'; +foreach(@lang_list) + { + if (length($lang_list[$i]) > 2) + { + @lang_detail = split(/-/, $lang_list[$i]); + $lang_abb = $lang_detail[0]; + $lang_name = $lang_detail[1]; + + if ( ($without_en==1) && ($lang_abb =~ /en/) ) + { + print "SKIPPING ENGLISH COPYING: $lang_abb|$i\n\n"; + } + else + { + ##### LOOP THROUGH THE FILES + $Fct=0; + foreach(@FILES) + { + $a=0; + @file_detail = split(/\|/, $FILES[$Fct]); + $file_path = $file_detail[0]; + $file_name = $file_detail[1]; + $file_name =~ s/\t|\r|\n//gi; + $file_passthru = $file_detail[2]; + $file_passthru =~ s/\t|\r|\n//gi; + if (-e "$webroot/$file_path/$file_name") + { + open(file, "$webroot/$file_path/$file_name") || die "can't open $webroot/$file_path/$file_name: $!\n"; + @file = @MT; + @file = ; + close(file); + + print "File exists: ./$file_path/$file_name\n"; + if (-e "$webroot/$file_path$US$lang_abb") + { + print "Lang Directory exists: $webroot/$file_path$US$lang_abb\n"; + } + else + { + `mkdir $webroot/$file_path$US$lang_abb`; + `chmod 0777 $webroot/$file_path$US$lang_abb`; + print "Lang Directory created: $webroot/$file_path$US$lang_abb\n"; + } + + if ($file_passthru < 1) + { + ##### LOOP THROUGH THE TRANSLATIONS + $Tct=0; + foreach(@TRANSLATIONS) + { + @TRANSline = split(/\|/, $TRANSLATIONS[$Tct]); + $ORIGtext = "$TRANSline[1]"; + $TRANStext = "$TRANSline[$i+1]"; + $LINESct=0; + foreach(@file) + { + if ($file[$LINESct] !~ /^\#|^\s*function |'INCALL'|'PAUSED'|'READY'|'NEW'|xmlhttp|ILPV |ILPA |SELECT cmd_line_f|=\"SELECT|Header\(\"/) + { + $phrase_found_counter=0; + if ($file[$LINESct] =~ /INTERNATIONALIZATION-LINKS-PLACEHOLDER-VICIDIAL/) + { + $file[$LINESct] =~ s/INTERNATIONALIZATION-LINKS-PLACEHOLDER-VICIDIAL/ILPV/g; + $e=0; + $gif = '.gif'; + foreach(@lang_link_list) + { + if (length($lang_link_list[$e]) > 2) + { + @lang_list_detail = split(/-/, $lang_link_list[$e]); + $lang_list_abb = $lang_list_detail[0]; + $lang_list_name = $lang_list_detail[1]; + if ($lang_list_abb =~ /$lang_abb/) {$list_bgcolor = ' BGCOLOR=\"#CCFFCC\"';} + else {$list_bgcolor = '';} + if ($file_name =~ /admin/) {$link_file_name = 'admin.php';} + else {$link_file_name = $file_name;} + $file[$LINESct] .= "echo \"
    $lang_list_name $lang_list_name   +- {if $keyid eq '55' || $keyid eq '255'} +- {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} +- {$APP.LBL_NOT_ACCESSIBLE} +- {else} +- {$keysalut} +- {/if} +- {*elseif $keyid eq '71' || $keyid eq '72'} ++ {if $keyid eq '1' || $keyid eq 2 || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} ++   ++ {if $keyid eq '55' || $keyid eq '255'} ++ {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} ++ {$APP.LBL_NOT_ACCESSIBLE} ++ {else} ++ {$keysalut} ++ {/if} ++ {*elseif $keyid eq '71' || $keyid eq '72'} + {$keycursymb*} + {/if} + {$keyval} + +- {if $smarty.session.internal_mailer eq 1} ++ {if $smarty.session.internal_mailer eq 1} + {$keyval} + {else} + {$keyval} + {/if} + +- ++ ++ VCcall: {$keyval} ++ ++   + {foreach item=arr from=$keyoptions} +--- ./Smarty/templates/DetailViewUI.tpl 2009-01-26 11:03:34.000000000 -0500 ++++ ./Smarty/templates/DetailViewUI.tpl 2009-01-26 15:03:44.000000000 -0500 +@@ -13,7 +13,7 @@ + -->*} + + +- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} ++ {if $keyid eq '1' || $keyid eq 2 || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} + + {if $keyid eq '55' || $keyid eq '255'} + {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} +@@ -46,6 +46,17 @@ + + + ++ VCcall: ++ {$keyval} ++ ++ ++
    + {strip} + {/strip} + +
    +- {$header} ++ {$header}               ++ {if $ACTIVITYDATA.eventstatus eq 'Planned'} ++ VCcall: Place VC Callback ++ {/if} +
    +--- ./modules/Users/Authenticate.php 2008-03-10 08:54:31.000000000 -0400 ++++ ./modules/Users/Authenticate.php 2009-05-27 08:12:39.000000000 -0400 +@@ -64,7 +64,19 @@ + //Security related entries start + require_once('include/utils/UserInfoUtil.php'); + ++ if (file_exists('user_privileges/user_privileges_'.$focus->id.'.php')) ++ { ++ # delete User Priviledges file ++ unlink('user_privileges/user_privileges_'.$focus->id.'.php'); ++ } ++ if (file_exists('user_privileges/sharing_privileges_'.$focus->id.'.php')) ++ { ++ # delete Sharing Priviledges file ++ unlink('user_privileges/sharing_privileges_'.$focus->id.'.php'); ++ } ++ # create User Sharing Priviledges files + createUserPrivilegesfile($focus->id); ++ createUserSharingPrivilegesfile($focus->id); + + //Security related entries end + session_unregister('login_password'); diff --git a/agc_2-X/branches/agc_2.2.0/extras/Vtiger504_vicidial_007_noclose.patch b/agc_2-X/branches/agc_2.2.0/extras/Vtiger504_vicidial_007_noclose.patch new file mode 100644 index 00000000..5191163d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Vtiger504_vicidial_007_noclose.patch @@ -0,0 +1,324 @@ +--- ./Smarty/templates/DetailViewFields.tpl 2009-01-26 11:01:37.000000000 -0500 ++++ ./Smarty/templates/DetailViewFields.tpl 2009-01-26 15:03:13.000000000 -0500 +@@ -13,28 +13,34 @@ + -->*} + + +- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} +-
      +- {if $keyid eq '55' || $keyid eq '255'} +- {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} +- {$APP.LBL_NOT_ACCESSIBLE} +- {else} +- {$keysalut} +- {/if} +- {*elseif $keyid eq '71' || $keyid eq '72'} ++ {if $keyid eq '1' || $keyid eq 2 || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} ++   ++ {if $keyid eq '55' || $keyid eq '255'} ++ {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} ++ {$APP.LBL_NOT_ACCESSIBLE} ++ {else} ++ {$keysalut} ++ {/if} ++ {*elseif $keyid eq '71' || $keyid eq '72'} + {$keycursymb*} + {/if} + {$keyval} + +- {if $smarty.session.internal_mailer eq 1} ++ {if $smarty.session.internal_mailer eq 1} + {$keyval} + {else} + {$keyval} + {/if} + +- ++ ++ VCcall: {$keyval} ++ ++   + {foreach item=arr from=$keyoptions} +--- ./Smarty/templates/DetailViewUI.tpl 2009-01-26 11:03:34.000000000 -0500 ++++ ./Smarty/templates/DetailViewUI.tpl 2009-01-26 15:03:44.000000000 -0500 +@@ -13,7 +13,7 @@ + -->*} + + +- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} ++ {if $keyid eq '1' || $keyid eq 2 || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} + + {if $keyid eq '55' || $keyid eq '255'} + {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} +@@ -46,6 +46,17 @@ + + + ++ VCcall: ++ {$keyval} ++ ++ ++
    + {strip} + {/strip} + +
    +- {$header} ++ {$header}               ++ {if $ACTIVITYDATA.eventstatus eq 'Planned'} ++ VCcall: Place VC Callback ++ {/if} +
    +--- ./modules/Users/Authenticate.php 2008-03-10 08:54:31.000000000 -0400 ++++ ./modules/Users/Authenticate.php 2009-05-27 08:12:39.000000000 -0400 +@@ -64,7 +64,19 @@ + //Security related entries start + require_once('include/utils/UserInfoUtil.php'); + ++ if (file_exists('user_privileges/user_privileges_'.$focus->id.'.php')) ++ { ++ # delete User Priviledges file ++ unlink('user_privileges/user_privileges_'.$focus->id.'.php'); ++ } ++ if (file_exists('user_privileges/sharing_privileges_'.$focus->id.'.php')) ++ { ++ # delete Sharing Priviledges file ++ unlink('user_privileges/sharing_privileges_'.$focus->id.'.php'); ++ } ++ # create User Sharing Priviledges files + createUserPrivilegesfile($focus->id); ++ createUserSharingPrivilegesfile($focus->id); + + //Security related entries end + session_unregister('login_password'); diff --git a/agc_2-X/branches/agc_2.2.0/extras/Vtiger510_vicidial_001_noclose.patch b/agc_2-X/branches/agc_2.2.0/extras/Vtiger510_vicidial_001_noclose.patch new file mode 100644 index 00000000..ec76fc66 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Vtiger510_vicidial_001_noclose.patch @@ -0,0 +1,311 @@ +--- ./Smarty/templates/DetailViewFields.tpl 2009-07-15 19:35:09.000000000 -0400 ++++ ./Smarty/templates/DetailViewFields.tpl 2009-07-15 21:14:56.000000000 -0400 +@@ -13,7 +13,7 @@ + -->*} + + +- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} ++ {if $keyid eq '1' || $keyid eq '2' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} +
      + {if $keyid eq '55' || $keyid eq '255'} + {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} +@@ -71,6 +71,12 @@ + {/if} + + ++ ++ VCcall: {$keyval} ++ ++   + {foreach item=arr from=$keyoptions} +--- ./Smarty/templates/DetailViewUI.tpl 2009-07-15 19:35:09.000000000 -0400 ++++ ./Smarty/templates/DetailViewUI.tpl 2009-07-15 21:12:50.000000000 -0400 +@@ -13,7 +13,7 @@ + -->*} + + +- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} ++ {if $keyid eq '1' || $keyid eq '2' || $keyid eq '7' || $keyid eq '9' || $keyid eq '11' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} + + {if $keyid eq '55' || $keyid eq '255'} + {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} +@@ -23,11 +23,13 @@ + {/if} + {/if} + +- {if $keyid eq 11} ++ {if $keyid eq '11'} + {if $USE_ASTERISK eq 'true'} +   {$keyval} + {else} +-   {$keyval} ++ VCcall: ++ {$keyval} ++ + {/if} + {else} +   {$keyval} +--- ./include/js/dtlviewajax.js 2009-07-15 19:35:09.000000000 -0400 ++++ ./include/js/dtlviewajax.js 2009-07-15 20:07:20.000000000 -0400 +@@ -293,7 +293,7 @@ + if(typeof(use_asterisk) != 'undefined' && use_asterisk == true){ + getObj(dtlView).innerHTML = ""+tagValue+""; + }else{ +- getObj(dtlView).innerHTML = tagValue; ++ getObj(dtlView).innerHTML = ""+tagValue+" "; + } + }else if(uitype == '17') + { +--- ./include/utils/ListViewUtils.php 2009-07-15 19:35:09.000000000 -0400 ++++ ./include/utils/ListViewUtils.php 2009-07-15 20:09:25.000000000 -0400 +@@ -1861,7 +1861,7 @@ + } + //added for asterisk integration + elseif($uitype == 11){ +- $value = "".$temp_val.""; ++ $value = "VCcall: user_name');\">$temp_val"; + } + //asterisk changes end here + //Added for email status tracking +@@ -4596,4 +4596,4 @@ + return $recordListRangeMsg; + } + +-?> +\ No newline at end of file ++?> +--- ./include/utils/UserInfoUtil.php 2009-07-15 19:35:09.000000000 -0400 ++++ ./include/utils/UserInfoUtil.php 2009-07-15 20:11:37.000000000 -0400 +@@ -748,6 +748,18 @@ + global $adb; + global $current_user; + global $seclog; ++ if (!file_exists('user_privileges/user_privileges_'.$current_user->id.'.php')) ++ { ++ # create User Priviledges file ++ require('modules/Users/CreateUserPrivilegeFile.php'); ++ createUserPrivilegesfile($current_user->id); ++ } ++ if (!file_exists('user_privileges/sharing_privileges_'.$current_user->id.'.php')) ++ { ++ # create Sharing Priviledges file ++ require('modules/Users/CreateUserPrivilegeFile.php'); ++ createUserSharingPrivilegesfile($current_user->id); ++ } + require('user_privileges/user_privileges_'.$current_user->id.'.php'); + require('user_privileges/sharing_privileges_'.$current_user->id.'.php'); + $permission = "no"; +@@ -4403,4 +4415,4 @@ + return ($fieldid !== false); + } + +-?> +\ No newline at end of file ++?> +--- ./Smarty/templates/DetailView.tpl 2009-07-15 19:35:09.000000000 -0400 ++++ ./Smarty/templates/DetailView.tpl 2009-07-15 20:50:19.000000000 -0400 +@@ -444,7 +444,11 @@ +
    +@@ -717,4 +721,4 @@ + + {if $MODULE eq 'Leads' or $MODULE eq 'Contacts' or $MODULE eq 'Accounts' or $MODULE eq 'Campaigns' or $MODULE eq 'Vendors'} +
    +-{/if} +\ No newline at end of file ++{/if} +--- ./include/js/general.js 2009-07-15 19:35:09.000000000 -0400 ++++ ./include/js/general.js 2009-07-15 20:28:37.000000000 -0400 +@@ -1849,6 +1849,74 @@ + openPopUp('xComposeEmail',this,url,'createemailWin',830,662,opts); + } + ++function VICIDIALcall(record_id,field_name,phone,user_name) { ++//alert(record_id + "|" + field_name + "|" + phone + "|" user_name); ++var xmlhttp=false; ++/*@cc_on @*/ ++/*@if (@_jscript_version >= 5) ++// JScript gives us Conditional compilation, we can cope with old IE versions. ++// and security blocked creation of the objects. ++ try { ++ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); ++ } catch (e) { ++ try { ++ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); ++ } catch (E) { ++ xmlhttp = false; ++ } ++ } ++@end @*/ ++if (!xmlhttp && typeof XMLHttpRequest!='undefined') ++ { ++ xmlhttp = new XMLHttpRequest(); ++ } ++if (xmlhttp) ++ { ++ var callback_flag=''; ++ if (field_name=='CallBack') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 10) ++ {log_call = "0" + log_call;} ++ phone = "99" + log_call; ++ callback_flag = '&callback=1'; ++ } ++ if (field_name=='fax') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 8) ++ {log_call = "0" + log_call;} ++ phone = "18" + log_call; ++ } ++ if (field_name=='email') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 8) ++ {log_call = "0" + log_call;} ++ phone = "19" + log_call; ++ } ++ var VCcallQuery = "VCcall=1&phone=" + phone + "&vendor_id=" + record_id + '' + callback_flag; ++ xmlhttp.open('POST', 'vtigerservice.php'); ++ xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); ++ xmlhttp.send(VCcallQuery); ++ xmlhttp.onreadystatechange = function() ++ { ++ if (xmlhttp.readyState == 4 && xmlhttp.status == 200) ++ { ++ // alert(xmlhttp.responseText); ++ var Xoutput = null; ++ Xoutput = xmlhttp.responseText; ++ var regXFerr = new RegExp("ERROR","g"); ++ if (Xoutput.match(regXFerr)) ++ { ++ alert(xmlhttp.responseText); ++ } ++ } ++ } ++ delete xmlhttp; ++ } ++} ++ + function fnHide_Event(obj){ + document.getElementById(obj).style.visibility = 'hidden'; + } +--- ./vtigerservice.php 2009-07-15 19:35:09.000000000 -0400 ++++ ./vtigerservice.php 2009-07-15 20:31:05.000000000 -0400 +@@ -41,13 +41,70 @@ + } + else + { +- echo "

    vtigerCRM Soap Services

    "; ++ if(isset($_REQUEST['VCcall'])) ++ { ++ $CL=':'; ++ $server_name = getenv("SERVER_NAME"); ++ $server_port = getenv("SERVER_PORT"); ++ if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} ++ else {$HTTPprotocol = 'http://';} ++ if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} ++ else {$server_port = "$CL$server_port";} ++ $URLbase = "$HTTPprotocol$server_name$server_port"; ++ ++ $callback_flag=''; ++ if(isset($_REQUEST['callback'])) ++ { ++ $callback_flag = '&vtiger_callback=YES'; ++ } ++ global $entityDel; ++ global $display; ++ global $category; ++ header('Content-Type: text/html; charset='. $charset); ++ session_start(); ++ require_once('include/utils/utils.php'); ++ require_once('config.inc.php'); ++ $default_config_values = Array( "allow_exports"=>"all","upload_maxsize"=>"3000000", "listview_max_textlength" => "40" ); ++ set_default_config($default_config_values); ++ require_once('include/logging.php'); ++ require_once('modules/Users/Users.php'); ++ global $currentModule; ++ $current_user = new Users(); ++ ++ $log =& LoggerManager::getLogger('index'); ++ global $seclog; ++ $seclog =& LoggerManager::getLogger('SECURITY'); ++ $log->debug($_REQUEST); ++ ++ // Check to see if there is an authenticated user in the session. ++ if(isset($_SESSION["authenticated_user_id"]) && (isset($_SESSION["app_unique_key"]) && $_SESSION["app_unique_key"] == $application_unique_key)) ++ { ++ $log->debug("We have an authenticated user id: ".$_SESSION["authenticated_user_id"]); ++ $result = $current_user->retrieveCurrentUserInfoFromFile($_SESSION['authenticated_user_id']); ++ $log->debug('Current user is: '.$current_user->user_name); ++ } ++ ++ $phone = $_REQUEST['phone']; $vendor_id = $_REQUEST['vendor_id']; ++ $user = $current_user->user_name; ++ ++ $VCapiURL = "/agc/api.php"; ++ $VCpauseQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_pause&value=PAUSE"; ++ $VCcallQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_dial&value=$phone&phone_code=1&search=YES&preview=NO&focus=YES&vendor_id=$vendor_id$callback_flag"; ++ $replyP = file("$URLbase$VCapiURL$VCpauseQuery"); ++// sleep(1); ++ $replyC = file("$URLbase$VCapiURL$VCcallQuery"); ++ echo "$replyP[0]|$replyC[0]\n"; ++// echo "$URLbase$VCapiURL$VCcallQuery\n"; ++ } ++ else ++ { echo "

    vtigerCRM Soap Services

    "; + echo "
  • vtigerCRM Outlook Plugin EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM Word Plugin EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM ThunderBird Extenstion EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM Customer Portal EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM WebForm EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM FireFox Extension EndPoint URL -- Click here
  • "; ++ } + } + + +--- ./modules/Users/Authenticate.php 2009-07-15 19:35:09.000000000 -0400 ++++ ./modules/Users/Authenticate.php 2009-07-15 20:45:50.000000000 -0400 +@@ -64,7 +64,19 @@ + //Security related entries start + require_once('include/utils/UserInfoUtil.php'); + +- createUserPrivilegesfile($focus->id); ++ if (file_exists('user_privileges/user_privileges_'.$focus->id.'.php')) ++ { ++ # delete User Priviledges file ++ unlink('user_privileges/user_privileges_'.$focus->id.'.php'); ++ } ++ if (file_exists('user_privileges/sharing_privileges_'.$focus->id.'.php')) ++ { ++ # delete Sharing Priviledges file ++ unlink('user_privileges/sharing_privileges_'.$focus->id.'.php'); ++ } ++ # create User Sharing Priviledges files ++ createUserPrivilegesfile($focus->id); ++ createUserSharingPrivilegesfile($focus->id); + + //Security related entries end + session_unregister('login_password'); +@@ -142,4 +154,4 @@ + header("Location: index.php"); + } + +-?> +\ No newline at end of file ++?> diff --git a/agc_2-X/branches/agc_2.2.0/extras/Vtiger510_vicidial_002_noclose.patch b/agc_2-X/branches/agc_2.2.0/extras/Vtiger510_vicidial_002_noclose.patch new file mode 100644 index 00000000..c64b3bee --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/Vtiger510_vicidial_002_noclose.patch @@ -0,0 +1,406 @@ +--- ../vtigercrm510orig/Smarty/templates/DetailViewFields.tpl 2009-12-29 10:45:35.000000000 -0500 ++++ ./Smarty/templates/DetailViewFields.tpl 2009-12-29 10:46:20.000000000 -0500 +@@ -13,7 +13,7 @@ + -->*} + + +- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} ++ {if $keyid eq '1' || $keyid eq '2' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '255'} +
      + {if $keyid eq '55' || $keyid eq '255'} + {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} +@@ -71,6 +71,12 @@ + {/if} + + ++ ++ VCcall: {$keyval} ++ ++   + {foreach item=arr from=$keyoptions} +--- ../vtigercrm510orig/Smarty/templates/DetailViewUI.tpl 2009-12-29 10:45:35.000000000 -0500 ++++ ./Smarty/templates/DetailViewUI.tpl 2009-12-29 10:46:20.000000000 -0500 +@@ -13,7 +13,7 @@ + -->*} + + +- {if $keyid eq '1' || $keyid eq 2 || $keyid eq '11' || $keyid eq '7' || $keyid eq '9' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} ++ {if $keyid eq '1' || $keyid eq '2' || $keyid eq '7' || $keyid eq '9' || $keyid eq '11' || $keyid eq '55' || $keyid eq '71' || $keyid eq '72' || $keyid eq '103' || $keyid eq '255'} + + {if $keyid eq '55' || $keyid eq '255'} + {if $keyaccess eq $APP.LBL_NOT_ACCESSIBLE} +@@ -23,11 +23,13 @@ + {/if} + {/if} + +- {if $keyid eq 11} ++ {if $keyid eq '11'} + {if $USE_ASTERISK eq 'true'} +   {$keyval} + {else} +-   {$keyval} ++ VCcall: ++ {$keyval} ++ + {/if} + {else} +   {$keyval} +--- ../vtigercrm510orig/include/js/dtlviewajax.js 2009-12-29 10:45:35.000000000 -0500 ++++ ./include/js/dtlviewajax.js 2009-12-29 10:46:20.000000000 -0500 +@@ -293,7 +293,7 @@ + if(typeof(use_asterisk) != 'undefined' && use_asterisk == true){ + getObj(dtlView).innerHTML = ""+tagValue+""; + }else{ +- getObj(dtlView).innerHTML = tagValue; ++ getObj(dtlView).innerHTML = ""+tagValue+" "; + } + }else if(uitype == '17') + { +--- ../vtigercrm510orig/include/utils/ListViewUtils.php 2009-12-29 10:45:35.000000000 -0500 ++++ ./include/utils/ListViewUtils.php 2009-12-29 10:46:20.000000000 -0500 +@@ -1861,7 +1861,7 @@ + } + //added for asterisk integration + elseif($uitype == 11){ +- $value = "".$temp_val.""; ++ $value = "VCcall: user_name');\">$temp_val"; + } + //asterisk changes end here + //Added for email status tracking +@@ -4596,4 +4596,4 @@ + return $recordListRangeMsg; + } + +-?> +\ No newline at end of file ++?> +--- ../vtigercrm510orig/include/utils/UserInfoUtil.php 2009-12-29 10:45:35.000000000 -0500 ++++ ./include/utils/UserInfoUtil.php 2009-12-29 10:46:20.000000000 -0500 +@@ -748,6 +748,18 @@ + global $adb; + global $current_user; + global $seclog; ++ if (!file_exists('user_privileges/user_privileges_'.$current_user->id.'.php')) ++ { ++ # create User Priviledges file ++ require('modules/Users/CreateUserPrivilegeFile.php'); ++ createUserPrivilegesfile($current_user->id); ++ } ++ if (!file_exists('user_privileges/sharing_privileges_'.$current_user->id.'.php')) ++ { ++ # create Sharing Priviledges file ++ require('modules/Users/CreateUserPrivilegeFile.php'); ++ createUserSharingPrivilegesfile($current_user->id); ++ } + require('user_privileges/user_privileges_'.$current_user->id.'.php'); + require('user_privileges/sharing_privileges_'.$current_user->id.'.php'); + $permission = "no"; +@@ -4403,4 +4415,4 @@ + return ($fieldid !== false); + } + +-?> +\ No newline at end of file ++?> +--- ../vtigercrm510orig/Smarty/templates/DetailView.tpl 2009-12-29 10:45:35.000000000 -0500 ++++ ./Smarty/templates/DetailView.tpl 2009-12-29 11:13:21.000000000 -0500 +@@ -444,7 +444,16 @@ +
    +@@ -717,4 +726,4 @@ + + {if $MODULE eq 'Leads' or $MODULE eq 'Contacts' or $MODULE eq 'Accounts' or $MODULE eq 'Campaigns' or $MODULE eq 'Vendors'} +
    +-{/if} +\ No newline at end of file ++{/if} +--- ../vtigercrm510orig/include/js/general.js 2009-12-29 10:45:35.000000000 -0500 ++++ ./include/js/general.js 2009-12-29 11:16:03.000000000 -0500 +@@ -1849,6 +1849,119 @@ + openPopUp('xComposeEmail',this,url,'createemailWin',830,662,opts); + } + ++function VICIDIALcall(record_id,field_name,phone,user_name) { ++//alert(record_id + "|" + field_name + "|" + phone + "|" user_name); ++var xmlhttp=false; ++/*@cc_on @*/ ++/*@if (@_jscript_version >= 5) ++// JScript gives us Conditional compilation, we can cope with old IE versions. ++// and security blocked creation of the objects. ++ try { ++ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); ++ } catch (e) { ++ try { ++ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); ++ } catch (E) { ++ xmlhttp = false; ++ } ++ } ++@end @*/ ++if (!xmlhttp && typeof XMLHttpRequest!='undefined') ++ { ++ xmlhttp = new XMLHttpRequest(); ++ } ++if (xmlhttp) ++ { ++ var callback_flag=''; ++ if (field_name=='CallBack') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 10) ++ {log_call = "0" + log_call;} ++ phone = "99" + log_call; ++ callback_flag = '&callback=1'; ++ } ++ if (field_name=='fax') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 8) ++ {log_call = "0" + log_call;} ++ phone = "18" + log_call; ++ } ++ if (field_name=='email') ++ { ++ var log_call = record_id + ''; ++ while (log_call.length < 8) ++ {log_call = "0" + log_call;} ++ phone = "19" + log_call; ++ } ++ var VCcallQuery = "VCcall=1&phone=" + phone + "&vendor_id=" + record_id + '' + callback_flag; ++ xmlhttp.open('POST', 'vtigerservice.php'); ++ xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); ++ xmlhttp.send(VCcallQuery); ++ xmlhttp.onreadystatechange = function() ++ { ++ if (xmlhttp.readyState == 4 && xmlhttp.status == 200) ++ { ++ // alert(xmlhttp.responseText); ++ var Xoutput = null; ++ Xoutput = xmlhttp.responseText; ++ var regXFerr = new RegExp("ERROR","g"); ++ if (Xoutput.match(regXFerr)) ++ { ++ alert(xmlhttp.responseText); ++ } ++ } ++ } ++ delete xmlhttp; ++ } ++} ++ ++function VICIDIALupdate(record_id,field_name) { ++//alert(record_id + "|" + field_name + "|"); ++var xmlhttp=false; ++/*@cc_on @*/ ++/*@if (@_jscript_version >= 5) ++// JScript gives us Conditional compilation, we can cope with old IE versions. ++// and security blocked creation of the objects. ++ try { ++ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); ++ } catch (e) { ++ try { ++ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); ++ } catch (E) { ++ xmlhttp = false; ++ } ++ } ++@end @*/ ++if (!xmlhttp && typeof XMLHttpRequest!='undefined') ++ { ++ xmlhttp = new XMLHttpRequest(); ++ } ++if (xmlhttp) ++ { ++ var VCupdateQuery = "VCupdate=1&contact_id=" + record_id + ''; ++ xmlhttp.open('POST', 'vtigerservice.php'); ++ xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); ++ xmlhttp.send(VCupdateQuery); ++ xmlhttp.onreadystatechange = function() ++ { ++ if (xmlhttp.readyState == 4 && xmlhttp.status == 200) ++ { ++ // alert(xmlhttp.responseText); ++ var Xoutput = null; ++ Xoutput = xmlhttp.responseText; ++ var regXFerr = new RegExp("ERROR","g"); ++ if (Xoutput.match(regXFerr)) ++ { ++ alert(xmlhttp.responseText); ++ } ++ } ++ } ++ delete xmlhttp; ++ } ++} ++ + function fnHide_Event(obj){ + document.getElementById(obj).style.visibility = 'hidden'; + } +--- ../vtigercrm510orig/vtigerservice.php 2009-12-29 10:45:35.000000000 -0500 ++++ ./vtigerservice.php 2009-12-29 10:53:48.000000000 -0500 +@@ -41,13 +41,115 @@ + } + else + { +- echo "

    vtigerCRM Soap Services

    "; ++ if(isset($_REQUEST['VCcall'])) ++ { ++ $CL=':'; ++ $server_name = getenv("SERVER_NAME"); ++ $server_port = getenv("SERVER_PORT"); ++ if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} ++ else {$HTTPprotocol = 'http://';} ++ if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} ++ else {$server_port = "$CL$server_port";} ++ $URLbase = "$HTTPprotocol$server_name$server_port"; ++ ++ $callback_flag=''; ++ if(isset($_REQUEST['callback'])) ++ { ++ $callback_flag = '&vtiger_callback=YES'; ++ } ++ global $entityDel; ++ global $display; ++ global $category; ++ header('Content-Type: text/html; charset='. $charset); ++ session_start(); ++ require_once('include/utils/utils.php'); ++ require_once('config.inc.php'); ++ $default_config_values = Array( "allow_exports"=>"all","upload_maxsize"=>"3000000", "listview_max_textlength" => "40" ); ++ set_default_config($default_config_values); ++ require_once('include/logging.php'); ++ require_once('modules/Users/Users.php'); ++ global $currentModule; ++ $current_user = new Users(); ++ ++ $log =& LoggerManager::getLogger('index'); ++ global $seclog; ++ $seclog =& LoggerManager::getLogger('SECURITY'); ++ $log->debug($_REQUEST); ++ ++ // Check to see if there is an authenticated user in the session. ++ if(isset($_SESSION["authenticated_user_id"]) && (isset($_SESSION["app_unique_key"]) && $_SESSION["app_unique_key"] == $application_unique_key)) ++ { ++ $log->debug("We have an authenticated user id: ".$_SESSION["authenticated_user_id"]); ++ $result = $current_user->retrieveCurrentUserInfoFromFile($_SESSION['authenticated_user_id']); ++ $log->debug('Current user is: '.$current_user->user_name); ++ } ++ ++ $phone = $_REQUEST['phone']; $vendor_id = $_REQUEST['vendor_id']; ++ $user = $current_user->user_name; ++ ++ $VCapiURL = "/agc/api.php"; ++ $VCpauseQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_pause&value=PAUSE"; ++ $VCcallQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=external_dial&value=$phone&phone_code=1&search=YES&preview=NO&focus=YES&vendor_id=$vendor_id$callback_flag"; ++ $replyP = file("$URLbase$VCapiURL$VCpauseQuery"); ++// sleep(1); ++ $replyC = file("$URLbase$VCapiURL$VCcallQuery"); ++ echo "$replyP[0]|$replyC[0]\n"; ++// echo "$URLbase$VCapiURL$VCcallQuery\n"; ++ } ++ elseif(isset($_REQUEST['VCupdate'])) ++ { ++ $CL=':'; ++ $server_name = getenv("SERVER_NAME"); ++ $server_port = getenv("SERVER_PORT"); ++ if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} ++ else {$HTTPprotocol = 'http://';} ++ if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} ++ else {$server_port = "$CL$server_port";} ++ $URLbase = "$HTTPprotocol$server_name$server_port"; ++ global $entityDel; ++ global $display; ++ global $category; ++ header('Content-Type: text/html; charset='. $charset); ++ session_start(); ++ require_once('include/utils/utils.php'); ++ require_once('config.inc.php'); ++ $default_config_values = Array( "allow_exports"=>"all","upload_maxsize"=>"3000000", "listview_max_textlength" => "40" ); ++ set_default_config($default_config_values); ++ require_once('include/logging.php'); ++ require_once('modules/Users/Users.php'); ++ global $currentModule; ++ $current_user = new Users(); ++ ++ $log =& LoggerManager::getLogger('index'); ++ global $seclog; ++ $seclog =& LoggerManager::getLogger('SECURITY'); ++ $log->debug($_REQUEST); ++ ++ // Check to see if there is an authenticated user in the session. ++ if(isset($_SESSION["authenticated_user_id"]) && (isset($_SESSION["app_unique_key"]) && $_SESSION["app_unique_key"] == $application_unique_key)) ++ { ++ $log->debug("We have an authenticated user id: ".$_SESSION["authenticated_user_id"]); ++ $result = $current_user->retrieveCurrentUserInfoFromFile($_SESSION['authenticated_user_id']); ++ $log->debug('Current user is: '.$current_user->user_name); ++ } ++ ++ $contact_id = $_REQUEST['contact_id']; ++ $user = $current_user->user_name; ++ ++ $VCapiURL = "/agc/api.php"; ++ $VCupdateQuery = "?source=vtiger&user=1000&pass=1234&agent_user=$user&function=update_fields&vendor_lead_code=$contact_id"; ++ $replyU = file("$URLbase$VCapiURL$VCupdateQuery"); ++ echo "$replyU[0]\n"; ++ } ++ else ++ { echo "

    vtigerCRM Soap Services

    "; + echo "
  • vtigerCRM Outlook Plugin EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM Word Plugin EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM ThunderBird Extenstion EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM Customer Portal EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM WebForm EndPoint URL -- Click here
  • "; + echo "
  • vtigerCRM FireFox Extension EndPoint URL -- Click here
  • "; ++ } + } + + +--- ../vtigercrm510orig/modules/Users/Authenticate.php 2009-12-29 10:45:35.000000000 -0500 ++++ ./modules/Users/Authenticate.php 2009-12-29 10:46:20.000000000 -0500 +@@ -64,7 +64,19 @@ + //Security related entries start + require_once('include/utils/UserInfoUtil.php'); + +- createUserPrivilegesfile($focus->id); ++ if (file_exists('user_privileges/user_privileges_'.$focus->id.'.php')) ++ { ++ # delete User Priviledges file ++ unlink('user_privileges/user_privileges_'.$focus->id.'.php'); ++ } ++ if (file_exists('user_privileges/sharing_privileges_'.$focus->id.'.php')) ++ { ++ # delete Sharing Priviledges file ++ unlink('user_privileges/sharing_privileges_'.$focus->id.'.php'); ++ } ++ # create User Sharing Priviledges files ++ createUserPrivilegesfile($focus->id); ++ createUserSharingPrivilegesfile($focus->id); + + //Security related entries end + session_unregister('login_password'); +@@ -142,4 +154,4 @@ + header("Location: index.php"); + } + +-?> +\ No newline at end of file ++?> diff --git a/agc_2-X/branches/agc_2.2.0/extras/channel.c-42600.patch b/agc_2-X/branches/agc_2.2.0/extras/channel.c-42600.patch new file mode 100644 index 00000000..36da290f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/channel.c-42600.patch @@ -0,0 +1,20 @@ +--- ./channel.c 2006-09-11 12:38:00.000000000 -0400 ++++ ./channel.c-42600 2006-09-11 12:29:45.000000000 -0400 +@@ -45,7 +45,7 @@ + + #include "asterisk.h" + +-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 42452 $") ++ASTERISK_FILE_VERSION(__FILE__, "$Revision: 42600 $") + + #include "asterisk/pbx.h" + #include "asterisk/frame.h" +@@ -2385,7 +2385,7 @@ + /* Now we have a good choice for both. */ + ast_mutex_lock(&chan->lock); + +- if ((*rawformat == native) && (*format == fmt)) { ++ if ((*rawformat == native) && (*format == fmt) && ((*rawformat == *format) || (*trans))) { + /* the channel is already in these formats, so nothing to do */ + ast_mutex_unlock(&chan->lock); + return 0; diff --git a/agc_2-X/branches/agc_2.2.0/extras/cli_chan_concise_delimiter.patch b/agc_2-X/branches/agc_2.2.0/extras/cli_chan_concise_delimiter.patch new file mode 100644 index 00000000..3fda82bf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/cli_chan_concise_delimiter.patch @@ -0,0 +1,11 @@ +--- cli-orig.c 2005-12-29 13:25:32.000000000 -0500 ++++ cli.c 2005-12-29 13:03:48.000000000 -0500 +@@ -428,7 +428,7 @@ + { + #define FORMAT_STRING "%-20.20s %-20.20s %-7.7s %-30.30s\n" + #define FORMAT_STRING2 "%-20.20s %-20.20s %-7.7s %-30.30s\n" +-#define CONCISE_FORMAT_STRING "%s:%s:%s:%d:%s:%s:%s:%s:%s:%d:%s:%s\n" ++#define CONCISE_FORMAT_STRING "%s!%s!%s!%d!%s!%s!%s!%s!%s!%d!%s!%s\n" + #define VERBOSE_FORMAT_STRING "%-20.20s %-20.20s %-16.16s %4d %-7.7s %-12.12s %-25.25s %-15.15s %8.8s %-11.11s %-20.20s\n" + #define VERBOSE_FORMAT_STRING2 "%-20.20s %-20.20s %-16.16s %-4.4s %-7.7s %-12.12s %-25.25s %-15.15s %8.8s %-11.11s %-20.20s\n" + diff --git a/agc_2-X/branches/agc_2.2.0/extras/convert_audio.sh b/agc_2-X/branches/agc_2.2.0/extras/convert_audio.sh new file mode 100644 index 00000000..baa9ca5b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/convert_audio.sh @@ -0,0 +1,26 @@ +#! /bin/bash +cd /var/lib/asterisk/sounds/ + +if [ -f /var/lib/asterisk/sounds/$1.mp3 ] ; then + sox -w -s $1.mp3 -r 8000 -c 1 $1.wav + sox $1.wav -t gsm -r 8000 -b -c 1 $1.gsm + sox $1.wav -t ul -r 8000 -b -c 1 $1.ul + sox $1.wav -t al -r 8000 -b -c 1 $1.al +else +if [ -f /var/lib/asterisk/sounds/$1.wav ] ; then + cp -f $1.wav ___$1.wav + sox -w -s ___$1.wav -r 8000 -c 1 $1.wav + rm -f ___$1.wav + sox $1.wav -t gsm -r 8000 -b -c 1 $1.gsm + sox $1.wav -t ul -r 8000 -b -c 1 $1.ul + sox $1.wav -t al -r 8000 -b -c 1 $1.al +else +if [ -f /var/lib/asterisk/sounds/$1.gsm ] ; then + sox -w -s $1.gsm -r 8000 -c 1 $1.wav + sox $1.wav -t ul -r 8000 -b -c 1 $1.ul + sox $1.wav -t al -r 8000 -b -c 1 $1.al +fi +fi +fi + + diff --git a/agc_2-X/branches/agc_2.2.0/extras/convert_moh_audio.sh b/agc_2-X/branches/agc_2.2.0/extras/convert_moh_audio.sh new file mode 100644 index 00000000..e1d5349f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/convert_moh_audio.sh @@ -0,0 +1,39 @@ +#! /bin/bash +if -f /var/lib/asterisk/mohmp3/$1.mp3; then + cd /var/lib/asterisk/mohmp3/ + sox -w -s $1.mp3 -r 8000 -c 1 $1.wav + sox $1.wav -t gsm -r 8000 -b -c 1 $1.gsm + sox $1.wav -t ul -r 8000 -b -c 1 $1.ul + sox $1.wav -t al -r 8000 -b -c 1 $1.al + mkdir ../orig-mp3 + mv -f *.mp3 ../orig-mp3/ + mkdir ../quiet-mp3 + cd ../quiet-mp3 + cp ../mohmp3/$1.wav full_$1.wav + sox full_$1.wav $1.wav vol 0.25 + sox $1.wav -t gsm -r 8000 -b -c 1 $1.gsm + sox $1.wav -t ul -r 8000 -b -c 1 $1.ul + sox $1 -t al -r 8000 -b -c 1 $1.al + rm -f full_*.wav +else +if -f /var/lib/asterisk/orig-mp3/$1.mp3; then + cd /var/lib/asterisk/mohmp3/ + cp /var/lib/asterisk/orig-mp3/$1.mp3 /var/lib/asterisk/mohmp3/ + sox -w -s $1.mp3 -r 8000 -c 1 $1.wav + sox $1.wav -t gsm -r 8000 -b -c 1 $1.gsm + sox $1.wav -t ul -r 8000 -b -c 1 $1.ul + sox $1.wav -t al -r 8000 -b -c 1 $1.al + rm -f $1.mp3 + mkdir ../quiet-mp3 + cd ../quiet-mp3 + cp ../mohmp3/$1.wav full_$1.wav + sox full_$1.wav $1.wav vol 0.25 + sox $1.wav -t gsm -r 8000 -b -c 1 $1.gsm + sox $1.wav -t ul -r 8000 -b -c 1 $1.ul + sox $1 -t al -r 8000 -b -c 1 $1.al + rm -f full_*.wav +else + echo -e "Syntax $0 filename" +fi +fi + diff --git a/agc_2-X/branches/agc_2.2.0/extras/enter.h b/agc_2-X/branches/agc_2.2.0/extras/enter.h new file mode 100644 index 00000000..c07cffd2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/enter.h @@ -0,0 +1,106 @@ +/* + * U-law 8-bit audio data + * Source: enter.raw (/usr/bin/hexdump -C ./enter.raw) + * Copyright (C) 2007, Matt Florell + * Distributed under the terms of the GPLv2 + */ + +static unsigned char enter[] = { +0xff, 0xff, 0x26, 0x26, 0x29, 0xce, 0xbe, 0xbf, 0xb2, 0xb6, +0xb6, 0x3d, 0x37, 0x36, 0x24, 0x26, 0x26, 0x28, 0x2d, 0x30, +0x48, 0x5c, 0xf2, 0xc4, 0xc5, 0xc4, 0xbe, 0xc2, 0xc7, 0xc5, +0xc8, 0xce, 0xc5, 0xc5, 0xc7, 0xbd, 0xbd, 0xbd, 0x3b, 0x2e, +0x2e, 0x27, 0x25, 0x1c, 0x1c, 0x1e, 0x25, 0x32, 0x66, 0xb3, +0xa7, 0x9f, 0x9f, 0xa1, 0x9a, 0x9d, 0xa3, 0xad, 0xcd, 0x75, +0x36, 0x2b, 0x2a, 0x27, 0x2d, 0x30, 0x48, 0xc1, 0xb7, 0x9f, +0x99, 0x98, 0x96, 0x99, 0x99, 0x97, 0x99, 0x9d, 0x9a, 0x9e, +0xa4, 0xa9, 0xbf, 0xd8, 0x4b, 0x5c, 0xd8, 0x5d, 0xb5, 0xab, +0xa9, 0x9c, 0x9b, 0x9e, 0x9e, 0xa3, 0x9f, 0x9b, 0x9d, 0x9d, +0x9e, 0x9f, 0xa6, 0xcb, 0x4b, 0x31, 0x2b, 0x2a, 0x23, 0x31, +0x45, 0x66, 0xab, 0xa3, 0x9d, 0x9a, 0x9c, 0x9a, 0x99, 0x9b, +0x9b, 0xa1, 0xb4, 0xd4, 0x3d, 0x27, 0x1f, 0x1e, 0x1d, 0x1e, +0x25, 0x35, 0x5d, 0xb9, 0xa6, 0xa0, 0x9e, 0x9b, 0x9a, 0x99, +0x9e, 0xa8, 0xad, 0xf4, 0x36, 0x26, 0x1b, 0x18, 0x16, 0x14, +0x15, 0x1a, 0x1f, 0x29, 0x3d, 0xc8, 0xaf, 0xa9, 0xa4, 0xa1, +0x9f, 0x9f, 0xaa, 0xbc, 0x44, 0x22, 0x19, 0x13, 0x0e, 0x0d, +0x0f, 0x0f, 0x13, 0x1c, 0x2a, 0x4e, 0xba, 0xaa, 0xa5, 0xa5, +0xa9, 0xae, 0xc0, 0x39, 0x27, 0x1e, 0x15, 0x0f, 0x0d, 0x0b, +0x0c, 0x0d, 0x0e, 0x10, 0x15, 0x1c, 0x28, 0x3c, 0xd6, 0xba, +0xb6, 0xb7, 0xbf, 0x5b, 0x32, 0x23, 0x19, 0x11, 0x0d, 0x0a, +0x08, 0x08, 0x09, 0x0a, 0x0d, 0x12, 0x1c, 0x2c, 0x6e, 0xaf, +0xa2, 0x9d, 0x9c, 0x9e, 0xa8, 0xc1, 0x36, 0x1e, 0x14, 0x0d, +0x09, 0x07, 0x07, 0x08, 0x0a, 0x0f, 0x18, 0x29, 0xe0, 0xa8, +0x9b, 0x95, 0x93, 0x95, 0x9a, 0xa7, 0xd4, 0x2c, 0x1a, 0x11, +0x0d, 0x0b, 0x0c, 0x0e, 0x14, 0x1d, 0x33, 0xba, 0x9f, 0x96, +0x91, 0x8f, 0x90, 0x95, 0x9d, 0xae, 0x47, 0x24, 0x18, 0x11, +0x0f, 0x0e, 0x11, 0x17, 0x20, 0x3c, 0xb5, 0x9f, 0x96, 0x90, +0x8f, 0x8f, 0x92, 0x9a, 0xa6, 0xcb, 0x30, 0x1e, 0x18, 0x14, +0x13, 0x15, 0x1a, 0x26, 0x45, 0xb4, 0x9f, 0x96, 0x91, 0x8f, +0x8f, 0x91, 0x97, 0x9f, 0xaf, 0x52, 0x2b, 0x1e, 0x1a, 0x18, +0x19, 0x1d, 0x27, 0x3d, 0xbe, 0xa6, 0x9c, 0x96, 0x92, 0x92, +0x94, 0x98, 0x9f, 0xac, 0xd4, 0x37, 0x27, 0x1f, 0x1d, 0x1e, +0x23, 0x2d, 0x4c, 0xba, 0xa6, 0x9d, 0x98, 0x95, 0x95, 0x96, +0x9a, 0xa0, 0xad, 0xcb, 0x3d, 0x2b, 0x23, 0x20, 0x20, 0x25, +0x2e, 0x46, 0xc2, 0xab, 0x9f, 0x9b, 0x99, 0x98, 0x9a, 0x9d, +0xa6, 0xb7, 0x59, 0x30, 0x25, 0x1e, 0x1c, 0x1d, 0x1f, 0x28, +0x36, 0xf9, 0xb5, 0xa7, 0x9f, 0x9d, 0x9d, 0x9f, 0xa6, 0xb2, +0xdf, 0x38, 0x28, 0x1f, 0x1b, 0x1a, 0x1b, 0x1e, 0x26, 0x33, +0x60, 0xba, 0xab, 0xa3, 0xa0, 0xa1, 0xa6, 0xaf, 0xc9, 0x41, +0x2c, 0x22, 0x1d, 0x1b, 0x1a, 0x1c, 0x1f, 0x26, 0x31, 0x4d, +0xc8, 0xb4, 0xac, 0xab, 0xac, 0xb1, 0xc1, 0x59, 0x36, 0x29, +0x21, 0x1d, 0x1b, 0x1b, 0x1d, 0x1f, 0x27, 0x2f, 0x40, 0xe8, +0xbf, 0xb7, 0xb3, 0xb5, 0xbe, 0xdb, 0x44, 0x2f, 0x26, 0x1f, +0x1d, 0x1c, 0x1c, 0x1f, 0x26, 0x31, 0x4a, 0xcb, 0xb5, 0xad, +0xab, 0xac, 0xb3, 0xc5, 0x54, 0x34, 0x28, 0x20, 0x1d, 0x1c, +0x1d, 0x1f, 0x26, 0x32, 0x50, 0xc1, 0xaf, 0xa9, 0xa6, 0xa6, +0xab, 0xb6, 0xd9, 0x3d, 0x2c, 0x23, 0x1e, 0x1d, 0x1e, 0x21, +0x29, 0x38, 0xf4, 0xb7, 0xa9, 0xa2, 0x9f, 0x9f, 0xa2, 0xaa, +0xba, 0x66, 0x36, 0x29, 0x23, 0x21, 0x22, 0x27, 0x30, 0x4b, +0xbf, 0xac, 0xa2, 0x9d, 0x9c, 0x9c, 0x9f, 0xa6, 0xb1, 0xd2, +0x3e, 0x2d, 0x27, 0x24, 0x24, 0x29, 0x33, 0x4f, 0xbe, 0xab, +0xa1, 0x9d, 0x9b, 0x9b, 0x9e, 0xa3, 0xae, 0xc5, 0x4d, 0x35, +0x2c, 0x29, 0x2a, 0x2e, 0x3d, 0xe5, 0xb7, 0xaa, 0xa1, 0x9e, +0x9d, 0x9d, 0xa0, 0xa7, 0xb0, 0xc6, 0x57, 0x3c, 0x33, 0x31, +0x34, 0x3d, 0x5a, 0xc7, 0xb4, 0xab, 0xa5, 0xa3, 0xa3, 0xa6, +0xac, 0xb7, 0xd2, 0x4c, 0x3a, 0x32, 0x30, 0x35, 0x3e, 0x65, +0xc2, 0xb1, 0xa9, 0xa5, 0xa3, 0xa4, 0xa8, 0xae, 0xbc, 0xf2, +0x3f, 0x31, 0x2c, 0x2a, 0x2b, 0x31, 0x40, 0xdf, 0xb9, 0xac, +0xa5, 0xa1, 0xa1, 0xa4, 0xab, 0xb8, 0xe3, 0x3d, 0x2e, 0x28, +0x25, 0x26, 0x2a, 0x31, 0x43, 0xd8, 0xb8, 0xac, 0xa8, 0xa7, +0xa8, 0xad, 0xb9, 0xdb, 0x40, 0x2f, 0x28, 0x24, 0x23, 0x25, +0x2a, 0x32, 0x48, 0xd6, 0xba, 0xaf, 0xad, 0xad, 0xb2, 0xbd, +0xe4, 0x42, 0x32, 0x2b, 0x27, 0x26, 0x28, 0x2c, 0x35, 0x45, +0xe9, 0xc1, 0xba, 0xb9, 0xbe, 0xca, 0xfc, 0x49, 0x37, 0x2e, +0x2a, 0x29, 0x29, 0x2c, 0x32, 0x3e, 0x5a, 0xd2, 0xc3, 0xbe, +0xc1, 0xd0, 0x5e, 0x3e, 0x31, 0x2b, 0x27, 0x25, 0x26, 0x2a, +0x30, 0x3f, 0x7a, 0xc5, 0xba, 0xb4, 0xb5, 0xbb, 0xcc, 0x56, +0x3a, 0x2e, 0x28, 0x25, 0x24, 0x25, 0x29, 0x2f, 0x3f, 0x7c, +0xc1, 0xb5, 0xaf, 0xae, 0xb1, 0xb9, 0xc8, 0x6c, 0x44, 0x37, +0x2f, 0x2e, 0x2e, 0x30, 0x37, 0x43, 0x5f, 0xd2, 0xbe, 0xb6, +0xb2, 0xb4, 0xba, 0xc8, 0xd6, 0x7e, 0x59, 0x54, 0x57, 0x63, +0xfb, 0xdd, 0xd2, 0xc9, 0xc4, 0xc4, 0xc4, 0xc6, 0xcd, 0xde, +0x6b, 0x56, 0x52, 0x55, 0x5f, 0xd8, 0xc0, 0xb7, 0xae, 0xa9, +0xa7, 0xa7, 0xa9, 0xae, 0xb9, 0xce, 0x51, 0x3d, 0x35, 0x33, +0x37, 0x3f, 0x5e, 0xc3, 0xb1, 0xaa, 0xa5, 0xa2, 0xa2, 0xa4, +0xa9, 0xb0, 0xc0, 0xfe, 0x47, 0x3c, 0x39, 0x3c, 0x45, 0x5f, +0xca, 0xb8, 0xaf, 0xab, 0xa9, 0xa9, 0xab, 0xae, 0xb5, 0xbe, +0xcc, 0xe6, 0x67, 0x5c, 0x5f, 0xe9, 0xcd, 0xc0, 0xb9, 0xb5, +0xb2, 0xb4, 0xb9, 0xbe, 0xca, 0xe3, 0x63, 0x57, 0x58, 0x6a, +0xde, 0xcb, 0xbf, 0xbb, 0xb9, 0xb8, 0xba, 0xbf, 0xca, 0xde, +0x60, 0x49, 0x3f, 0x3c, 0x3c, 0x3e, 0x47, 0x5b, 0xde, 0xc9, +0xbe, 0xbb, 0xbb, 0xbe, 0xc7, 0xdb, 0x5c, 0x47, 0x3e, 0x3b, +0x3c, 0x3f, 0x48, 0x54, 0x73, 0xdc, 0xcf, 0xcc, 0xcf, 0xd9, +0xfe, 0x58, 0x4a, 0x42, 0x3e, 0x3e, 0x40, 0x47, 0x52, 0x73, +0xda, 0xcd, 0xcb, 0xcf, 0xdf, 0x5f, 0x49, 0x3d, 0x37, 0x33, +0x32, 0x33, 0x37, 0x3e, 0x4a, 0x63, 0xdf, 0xd0, 0xcd, 0xd0, +0xe1, 0x61, 0x4c, 0x3e, 0x38, 0x34, 0x32, 0x33, 0x37, 0x3c, +0x47, 0x58, 0xf9, 0xdd, 0xda, 0xdf, 0x7e, 0x58, 0x4a, 0x41, +0x3d, 0x3b, 0x3b, 0x3d, 0x41, 0x49, 0x55, 0x68, 0xf1, 0xe6, +0xe9, 0xff, 0x5d, 0x4d, 0x45, 0x3e, 0x3c, 0x3c, 0x3d, 0x41, +0x4a, 0x56, 0x6d, 0xe7, 0xdd, 0xdc, 0xe4, 0x77, 0x5b, 0x4e, +0x49, 0x45, 0x44, 0x46, 0x4b, 0x53, 0x61, 0xf9, 0xe0, 0xda, +0xda, 0xdd, 0xe8, 0x7c, 0x64, 0x5b, 0x56, 0x4f, 0x4c, 0x4a, +0x4a, 0x4d, 0x50, 0x59, 0x67, 0xfe, 0xec, 0xe8, 0xec, 0xf9, +0x70, 0x61, 0x5c, 0x59, 0x58, 0x5a, 0x5e, 0x64, 0x6c, 0x79, +0xf8, 0xf0, 0xef, 0xef, 0xf3, 0xfa, 0xff, 0x7c, 0x7a, 0x7d, +0xfb, 0xf3, 0xeb, 0xe6, 0xe2, 0xdf, 0xdf, 0xdf }; diff --git a/agc_2-X/branches/agc_2.2.0/extras/enter.raw b/agc_2-X/branches/agc_2.2.0/extras/enter.raw new file mode 100644 index 00000000..4635599c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/enter.raw @@ -0,0 +1,4 @@ +&&)ξ=76$&&(-0H\ľǽ;..'%%2fu6+*'-0HK\]K1+*#1Ef='%5]6&)=ȯD" *N9' (<ֺ[2# + + ,n6  +)ਛ, 3G$ <0&ER+'=7'#-L=+# %.F«Y0%(68(&3`A,"&1MȴY6)!'/@迷D/&&1J˵T4( &2P=,#!)8f6)#!"'0K>-'$$)3OM5,)*.=巪W<314=ZǴL:205>e±?1,*+1@߹=.(%&*1Cظ@/($#%*2HֺB2+'&(,5EI7.*)),2>Zþ^>1+'%&*0?zźV:.(%$%)/?|lD7/..07C_Ҿ~YTWckVRU_Q=537?^ñG<9G[ɾ\G>;>@GRs_I=73237>JcaL>84237<<=AJVmw[NIEDFKSa|d[VOLJJMPYgpa\YXZ^dly|z} \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/extras/experimental_gsm_asm.patch b/agc_2-X/branches/agc_2.2.0/extras/experimental_gsm_asm.patch new file mode 100644 index 00000000..69a86aa4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/experimental_gsm_asm.patch @@ -0,0 +1,31 @@ +Index: codecs/gsm/inc/private.h +=================================================================== +--- codecs/gsm/inc/private.h (revision 109711) ++++ codecs/gsm/inc/private.h (working copy) +@@ -105,7 +105,7 @@ + __asm__ __volatile__( + + "addl %2,%0; jno 0f; movl $0x7fffffff,%0; adcl $0,%0; 0:" +- : "=r" (a) ++ : "=&r" (a) + : "0" (a), "ir" (b) + : "cc" + ); +@@ -116,7 +116,7 @@ + { + __asm__ __volatile__( + "addw %2,%0; jno 0f; movw $0x7fff,%0; adcw $0,%0; 0:" +- : "=r" (a) ++ : "=&r" (a) + : "0" (a), "ir" (b) + : "cc" + ); +@@ -127,7 +127,7 @@ + { + __asm__ __volatile__( + "subw %2,%0; jno 0f; movw $0x7fff,%0; adcw $0,%0; 0:" +- : "=r" (a) ++ : "=&r" (a) + : "0" (a), "ir" (b) + : "cc" + ); diff --git a/agc_2-X/branches/agc_2.2.0/extras/first_server_install.sql b/agc_2-X/branches/agc_2.2.0/extras/first_server_install.sql new file mode 100644 index 00000000..5a4830d5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/first_server_install.sql @@ -0,0 +1,354 @@ +INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version)values('TESTast','Test install of Asterisk server', '10.10.10.15','Y','1.4.21.2'); + +INSERT INTO server_updater SET server_ip='10.10.10.15', last_update=''; + +INSERT INTO phones (extension, dialplan_number, voicemail_id, phone_ip, computer_ip, server_ip, login, pass, status, active, phone_type, fullname, company, picture, messages, old_messages, protocol) values('gs102','102','102','10.10.10.16','10.10.9.16','10.10.10.15','gs102','test', 'ADMIN','Y','Grandstream BT 102','Test Admin Phone','TEST','','0','0','SIP'); +INSERT INTO phones (extension, dialplan_number, voicemail_id, phone_ip, computer_ip, server_ip, login, pass, status, active, phone_type, fullname, company, protocol) values('callin','8300','8300','10.10.10.15','10.10.10.15','10.10.10.15','callin','test', 'ACTIVE','Y','Dial-in agent phone','Dial-in Agent Phone','TEST','EXTERNAL'); + +INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,load_leads,campaign_detail,ast_admin_access,modify_users) values('6666','1234','Admin','9','ADMIN','1','1','1','1'); +INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,active) values('VDAD','donotedit','Outbound Auto Dial','1','ADMIN','N'); +INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,active) values('VDCL','donotedit','Inbound No Agent','1','ADMIN','N'); + +INSERT INTO conferences values('8600001','10.10.10.15',''); +INSERT INTO conferences values('8600002','10.10.10.15',''); +INSERT INTO conferences values('8600003','10.10.10.15',''); +INSERT INTO conferences values('8600004','10.10.10.15',''); +INSERT INTO conferences values('8600005','10.10.10.15',''); +INSERT INTO conferences values('8600006','10.10.10.15',''); +INSERT INTO conferences values('8600007','10.10.10.15',''); +INSERT INTO conferences values('8600008','10.10.10.15',''); +INSERT INTO conferences values('8600009','10.10.10.15',''); +INSERT INTO conferences values('8600010','10.10.10.15',''); +INSERT INTO conferences values('8600011','10.10.10.15',''); +INSERT INTO conferences values('8600012','10.10.10.15',''); +INSERT INTO conferences values('8600013','10.10.10.15',''); +INSERT INTO conferences values('8600014','10.10.10.15',''); +INSERT INTO conferences values('8600015','10.10.10.15',''); +INSERT INTO conferences values('8600016','10.10.10.15',''); +INSERT INTO conferences values('8600017','10.10.10.15',''); +INSERT INTO conferences values('8600018','10.10.10.15',''); +INSERT INTO conferences values('8600019','10.10.10.15',''); +INSERT INTO conferences values('8600020','10.10.10.15',''); +INSERT INTO conferences values('8600021','10.10.10.15',''); +INSERT INTO conferences values('8600022','10.10.10.15',''); +INSERT INTO conferences values('8600023','10.10.10.15',''); +INSERT INTO conferences values('8600024','10.10.10.15',''); +INSERT INTO conferences values('8600025','10.10.10.15',''); +INSERT INTO conferences values('8600026','10.10.10.15',''); +INSERT INTO conferences values('8600027','10.10.10.15',''); +INSERT INTO conferences values('8600028','10.10.10.15',''); +INSERT INTO conferences values('8600029','10.10.10.15',''); +INSERT INTO conferences values('8600030','10.10.10.15',''); +INSERT INTO conferences values('8600031','10.10.10.15',''); +INSERT INTO conferences values('8600032','10.10.10.15',''); +INSERT INTO conferences values('8600033','10.10.10.15',''); +INSERT INTO conferences values('8600034','10.10.10.15',''); +INSERT INTO conferences values('8600035','10.10.10.15',''); +INSERT INTO conferences values('8600036','10.10.10.15',''); +INSERT INTO conferences values('8600037','10.10.10.15',''); +INSERT INTO conferences values('8600038','10.10.10.15',''); +INSERT INTO conferences values('8600039','10.10.10.15',''); +INSERT INTO conferences values('8600040','10.10.10.15',''); +INSERT INTO conferences values('8600041','10.10.10.15',''); +INSERT INTO conferences values('8600042','10.10.10.15',''); +INSERT INTO conferences values('8600043','10.10.10.15',''); +INSERT INTO conferences values('8600044','10.10.10.15',''); +INSERT INTO conferences values('8600045','10.10.10.15',''); +INSERT INTO conferences values('8600046','10.10.10.15',''); +INSERT INTO conferences values('8600047','10.10.10.15',''); +INSERT INTO conferences values('8600048','10.10.10.15',''); +INSERT INTO conferences values('8600049','10.10.10.15',''); + +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600051','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600052','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600053','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600054','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600055','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600056','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600057','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600058','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600059','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600060','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600061','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600062','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600063','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600064','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600065','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600066','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600067','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600068','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600069','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600070','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600071','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600072','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600073','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600074','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600075','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600076','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600077','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600078','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600079','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600080','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600081','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600082','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600083','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600084','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600085','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600086','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600087','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600088','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600089','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600090','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600091','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600092','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600093','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600094','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600095','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600096','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600097','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600098','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600099','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600100','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600101','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600102','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600103','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600104','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600105','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600106','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600107','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600108','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600109','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600110','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600111','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600112','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600113','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600114','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600115','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600116','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600117','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600118','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600119','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600120','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600121','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600122','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600123','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600124','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600125','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600126','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600127','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600128','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600129','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600130','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600131','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600132','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600133','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600134','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600135','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600136','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600137','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600138','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600139','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600140','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600141','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600142','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600143','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600144','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600145','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600146','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600147','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600148','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600149','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600150','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600151','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600152','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600153','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600154','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600155','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600156','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600157','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600158','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600159','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600160','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600161','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600162','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600163','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600164','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600165','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600166','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600167','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600168','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600169','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600170','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600171','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600172','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600173','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600174','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600175','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600176','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600177','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600178','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600179','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600180','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600181','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600182','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600183','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600184','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600185','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600186','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600187','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600188','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600189','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600190','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600191','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600192','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600193','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600194','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600195','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600196','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600197','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600198','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600199','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600200','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600201','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600202','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600203','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600204','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600205','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600206','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600207','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600208','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600209','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600210','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600211','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600212','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600213','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600214','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600215','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600216','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600217','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600218','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600219','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600220','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600221','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600222','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600223','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600224','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600225','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600226','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600227','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600228','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600229','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600230','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600231','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600232','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600233','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600234','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600235','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600236','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600237','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600238','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600239','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600240','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600241','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600242','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600243','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600244','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600245','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600246','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600247','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600248','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600249','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600250','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600251','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600252','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600253','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600254','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600255','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600256','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600257','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600258','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600259','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600260','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600261','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600262','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600263','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600264','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600265','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600266','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600267','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600268','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600269','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600270','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600271','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600272','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600273','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600274','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600275','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600276','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600277','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600278','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600279','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600280','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600281','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600282','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600283','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600284','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600285','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600286','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600287','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600288','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600289','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600290','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600291','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600292','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600293','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600294','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600295','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600296','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600297','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600298','10.10.10.15'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600299','10.10.10.15'); + +INSERT INTO vicidial_list(status,list_id,phone_code,phone_number,first_name,last_name,address1,city,state,postal_code,country_code,gender,email) values('NEW','101','1','7275551212','Matt','lead01','1234 Fake St.','Clearwater','FL','33760','USA','M','test@test.com'); +INSERT INTO vicidial_list(status,list_id,phone_code,phone_number,first_name,last_name,address1,city,state,postal_code,country_code,gender,email) values('NEW','101','1','7275551212','Matt','lead02','1234 Fake St.','Clearwater','FL','33760','USA','M','test@test.com'); +INSERT INTO vicidial_list(status,list_id,phone_code,phone_number,first_name,last_name,address1,city,state,postal_code,country_code,gender,email) values('NEW','101','1','7275551212','Matt','lead03','1234 Fake St.','Clearwater','FL','33760','USA','M','test@test.com'); +INSERT INTO vicidial_list(status,list_id,phone_code,phone_number,first_name,last_name,address1,city,state,postal_code,country_code,gender,email) values('NEW','101','1','7275551212','Matt','lead04','1234 Fake St.','Clearwater','FL','33760','USA','M','test@test.com'); +INSERT INTO vicidial_list(status,list_id,phone_code,phone_number,first_name,last_name,address1,city,state,postal_code,country_code,gender,email) values('NEW','101','1','7275551212','Matt','lead05','1234 Fake St.','Clearwater','FL','33760','USA','M','test@test.com'); +INSERT INTO vicidial_list(status,list_id,phone_code,phone_number,first_name,last_name,address1,city,state,postal_code,country_code,gender,email) values('NEW','101','1','7275551212','Matt','lead06','1234 Fake St.','Clearwater','FL','33760','USA','M','test@test.com'); +INSERT INTO vicidial_list(status,list_id,phone_code,phone_number,first_name,last_name,address1,city,state,postal_code,country_code,gender,email) values('NEW','101','1','7275551212','Matt','lead07','1234 Fake St.','Clearwater','FL','33760','USA','M','test@test.com'); + +INSERT INTO vicidial_statuses values('NEW','New Lead','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('QUEUE','Lead To Be Called','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('INCALL','Lead Being Called','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('DROP','Agent Not Available','N','Y','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('XDROP','Agent Not Available IN','N','Y','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('NA','No Answer AutoDial','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('CALLBK','Call Back','Y','Y','UNDEFINED','N','N','Y','N','N'); +INSERT INTO vicidial_statuses values('CBHOLD','Call Back Hold','N','Y','UNDEFINED','N','N','Y','N','N'); +INSERT INTO vicidial_statuses values('A','Answering Machine','Y','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('AA','Answering Machine Auto','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('AM','Answering Machine Sent to Mesg','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('AL','Answering Machine Msg Played','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('AFAX','Fax Machine Auto','N','N','UNDEFINED','N','N','N','N','Y'); +INSERT INTO vicidial_statuses values('AB','Busy Auto','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('B','Busy','Y','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('DC','Disconnected Number','Y','N','UNDEFINED','N','N','N','N','Y'); +INSERT INTO vicidial_statuses values('ADC','Disconnected Number Auto','N','N','UNDEFINED','N','N','N','N','Y'); +INSERT INTO vicidial_statuses values('DEC','Declined Sale','Y','Y','UNDEFINED','N','N','Y','N','N'); +INSERT INTO vicidial_statuses values('DNC','DO NOT CALL','Y','Y','UNDEFINED','N','Y','N','N','N'); +INSERT INTO vicidial_statuses values('DNCL','DO NOT CALL Hopper Match','N','N','UNDEFINED','N','Y','N','N','N'); +INSERT INTO vicidial_statuses values('DNCC','DO NOT CALL Camp Match','N','N','UNDEFINED','N','Y','N','N','N'); +INSERT INTO vicidial_statuses values('SALE','Sale Made','Y','Y','UNDEFINED','Y','N','N','N','N'); +INSERT INTO vicidial_statuses values('N','No Answer','Y','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('NI','Not Interested','Y','Y','UNDEFINED','N','N','Y','Y','N'); +INSERT INTO vicidial_statuses values('NP','No Pitch No Price','Y','Y','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('PU','Call Picked Up','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('PM','Played Message','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('XFER','Call Transferred','Y','Y','UNDEFINED','N','N','Y','N','N'); +INSERT INTO vicidial_statuses values('ERI','Agent Error','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('SVYEXT','Survey sent to Extension','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('SVYVM','Survey sent to Voicemail','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('SVYHU','Survey Hungup','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('SVYREC','Survey sent to Record','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('QVMAIL','Queue Abandon Voicemail Left','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('RQXFER','Re-Queue','N','Y','UNDEFINED','N','N','N','N','N'); diff --git a/agc_2-X/branches/agc_2.2.0/extras/generic_images/sm_your_logo.gif b/agc_2-X/branches/agc_2.2.0/extras/generic_images/sm_your_logo.gif new file mode 100644 index 00000000..2d254a1c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/generic_images/sm_your_logo.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/generic_images/spacer.gif b/agc_2-X/branches/agc_2.2.0/extras/generic_images/spacer.gif new file mode 100644 index 00000000..ef3c30b2 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/generic_images/spacer.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/generic_images/vdc_tab_vicidial.gif b/agc_2-X/branches/agc_2.2.0/extras/generic_images/vdc_tab_vicidial.gif new file mode 100644 index 00000000..8caa4000 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/generic_images/vdc_tab_vicidial.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/generic_images/vicidial_admin_web_logo.gif b/agc_2-X/branches/agc_2.2.0/extras/generic_images/vicidial_admin_web_logo.gif new file mode 100644 index 00000000..71f15cfd Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/generic_images/vicidial_admin_web_logo.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/generic_images/vicidial_admin_web_logo_small.gif b/agc_2-X/branches/agc_2.2.0/extras/generic_images/vicidial_admin_web_logo_small.gif new file mode 100644 index 00000000..036a52e6 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/generic_images/vicidial_admin_web_logo_small.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/generic_images/vtc_tab_vicidial.gif b/agc_2-X/branches/agc_2.2.0/extras/generic_images/vtc_tab_vicidial.gif new file mode 100644 index 00000000..8caa4000 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/generic_images/vtc_tab_vicidial.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/init.d/vicidial b/agc_2-X/branches/agc_2.2.0/extras/init.d/vicidial new file mode 100644 index 00000000..c2d7ec1c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/init.d/vicidial @@ -0,0 +1,424 @@ +#!/bin/bash +# +# Template LSB system startup script for example service/daemon FOO +# Copyright (C) 1995--2005 Kurt Garloff, SUSE / Novell Inc. +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or (at +# your option) any later version. +# +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, +# USA. +# +# /etc/init.d/FOO +# LSB compatible service control script; see http://www.linuxbase.org/spec/ +# Please send feedback to http://www.suse.de/feedback/ +# +# Note: This template uses functions rc_XXX defined in /etc/rc.status on +# UnitedLinux/SUSE/Novell based Linux distributions. However, it will work +# on other distributions as well, by using the LSB (Linux Standard Base) +# or RH functions or by open coding the needed functions. +# Read http://www.tldp.org/HOWTO/HighQuality-Apps-HOWTO/ if you prefer not +# to use this template. +# +# chkconfig: 345 99 00 +# description: FOO XYZ daemon providing ZYX +# +### BEGIN INIT INFO +# Provides: Vicidial +# Required-Start: $ALL +# Should-Start: +# Required-Stop: +# Should-Stop: +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Vicidial Demon +# Description: This script starts Vicidial and all processes +# that are required to operate a Vicidial Dialing Server. +# Please make sure that the following services are NOT started +# from any other place when using this script. +# wanrouter (Sangoma Drivers), +# zaptel (zaptel driver and ztcfg), +# ViciDial start scripts. +# Please load zaptel hardware driver before starting this script +# or change the ZAP_MOD line in this file +### END INIT INFO +# +# Any extensions to the keywords given above should be preceeded by +# X-VendorTag- according to LSB. +# +# Notes on Required-Start/Should-Start: +# * There are two different issues that are solved by Required-Start +# and Should-Start +# (a) Hard dependencies: This is used by the runlevel editor to determine +# which services absolutely need to be started to make the start of +# this service make sense. Example: nfsserver should have +# Required-Start: $portmap +# Also, required services are started before the dependent ones. +# The runlevel editor will warn about such missing hard dependencies +# and suggest enabling. During system startup, you may expect an error, +# if the dependency is not fulfilled. +# (b) Specifying the init script ordering, not real (hard) dependencies. +# This is needed by insserv to determine which service should be +# started first (and at a later stage what services can be started +# in parallel). The tag Should-Start: is used for this. +# It tells, that if a service is available, it should be started +# before. If not, never mind. +# * When specifying hard dependencies or ordering requirements, you can +# use names of services (contents of their Provides: section) +# or pseudo names starting with a $. The following ones are available +# according to LSB (1.1): +# $local_fs all local file systems are mounted +# (most services should need this!) +# $remote_fs all remote file systems are mounted +# (note that /usr may be remote, so +# many services should Require this!) +# $syslog system logging facility up +# $network low level networking (eth card, ...) +# $named hostname resolution available +# $netdaemons all network daemons are running +# The $netdaemons pseudo service has been removed in LSB 1.2. +# For now, we still offer it for backward compatibility. +# These are new (LSB 1.2): +# $time the system time has been set correctly +# $portmap SunRPC portmapping service available +# UnitedLinux/SUSE/Novell extensions: +# $ALL indicates that a script should be inserted +# at the end +# * The services specified in the stop tags +# (Required-Stop/Should-Stop) +# specify which services need to be still running when this service +# is shut down. Often the entries there are just copies or a subset +# from the respective start tag. +# * Should-Start/Stop are now part of LSB as of 2.0, +# formerly SUSE/Unitedlinux used X-UnitedLinux-Should-Start/-Stop. +# insserv does support both variants. +# * X-UnitedLinux-Default-Enabled: yes/no is used at installation time +# (%fillup_and_insserv macro in %post of many RPMs) to specify whether +# a startup script should default to be enabled after installation. +# +# Note on runlevels: +# 0 - halt/poweroff 6 - reboot +# 1 - single user 2 - multiuser without network exported +# 3 - multiuser w/ network (text mode) 5 - multiuser w/ network and X11 (xdm) +# +# Note on script names: +# http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html +# A registry has been set up to manage the init script namespace. +# http://www.lanana.org/ +# Please use the names already registered or register one or use a +# vendor prefix. + + +# Check for missing binaries (stale symlinks should not happen) +# Note: Special treatment of stop for LSB conformance +AST_BIN=/usr/sbin/asterisk +test -x $AST_BIN || { echo "$AST_BIN not installed"; + if [ "$1" = "stop" ]; then exit 0; + else exit 5; fi; } + +WAN_BIN=/usr/sbin/wanrouter +test -x $WAN_BIN || { echo "will skip $WAN_BIN (not installed)"; } + +VICI_DIR=/usr/share/astguiclient +test -x $VICI_DIR/start_asterisk_boot.pl || { echo "$VICI_BIN/start_asterisk_boot.pl not installed"; + if [ "$1" = "stop" ]; then exit 0; + else exit 5; fi; } + +ZTCFG_BIN=/sbin/ztcfg +test -x $ZTCFG_BIN || { echo "$ZTCFG_BIN not installed"; + if [ "$1" = "stop" ]; then exit 0; + else exit 5; fi; } + +# Zaptel module name, please replace with driver name for hardware card +ZAP_MOD=ztdummy + +# providing start_daemon, killproc, pidofproc, +# log_success_msg, log_failure_msg and log_warning_msg. +# This is currently not used by UnitedLinux based distributions and +# not needed for init scripts for UnitedLinux only. If it is used, +# the functions from rc.status should not be sourced or used. +#. /lib/lsb/init-functions + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v be verbose in local rc status and clear it afterwards +# rc_status -v -r ditto and clear both the local and overall rc status +# rc_status -s display "skipped" and exit with status 3 +# rc_status -u display "unused" and exit with status 3 +# rc_failed set local and overall rc status to failed +# rc_failed set local and overall rc status to +# rc_reset clear both the local and overall rc status +# rc_exit exit appropriate to overall rc status +# rc_active checks whether a service is activated by symlinks + +# Use the SUSE rc_ init script functions; +# emulate them on LSB, RH and other systems + +# Default: Assume sysvinit binaries exist +start_daemon() { return /sbin/start_daemon ${1+"$@"}; } +killproc() { return /sbin/killproc ${1+"$@"}; } +pidofproc() { return /sbin/pidofproc ${1+"$@"}; } +checkproc() { return /sbin/checkproc ${1+"$@"}; } +if test -e /etc/rc.status; then + # SUSE rc script library + . /etc/rc.status +else + export LC_ALL=POSIX + _cmd=$1 + declare -a _SMSG + if test "${_cmd}" = "status"; then + _SMSG=(running dead dead unused unknown reserved) + _RC_UNUSED=3 + else + _SMSG=(done failed failed missed failed skipped unused failed failed reserved) + _RC_UNUSED=6 + fi + if test -e /lib/lsb/init-functions; then + # LSB + . /lib/lsb/init-functions + echo_rc() + { + if test ${_RC_RV} = 0; then + log_success_msg " [${_SMSG[${_RC_RV}]}] " + else + log_failure_msg " [${_SMSG[${_RC_RV}]}] " + fi + } + # TODO: Add checking for lockfiles + checkproc() { return pidofproc ${1+"$@"} >/dev/null 2>&1; } + elif test -e /etc/init.d/functions; then + # RHAT + . /etc/init.d/functions + echo_rc() + { + #echo -n " [${_SMSG[${_RC_RV}]}] " + if test ${_RC_RV} = 0; then + success " [${_SMSG[${_RC_RV}]}] " + else + failure " [${_SMSG[${_RC_RV}]}] " + fi + } + checkproc() { return status ${1+"$@"}; } + start_daemon() { return daemon ${1+"$@"}; } + else + # emulate it + echo_rc() { echo " [${_SMSG[${_RC_RV}]}] "; } + fi + rc_reset() { _RC_RV=0; } + rc_failed() + { + if test -z "$1"; then + _RC_RV=1; + elif test "$1" != "0"; then + _RC_RV=$1; + fi + return ${_RC_RV} + } + rc_check() + { + return rc_failed $? + } + rc_status() + { + rc_failed $? + if test "$1" = "-r"; then _RC_RV=0; shift; fi + if test "$1" = "-s"; then rc_failed 5; echo_rc; rc_failed 3; shift; fi + if test "$1" = "-u"; then rc_failed ${_RC_UNUSED}; echo_rc; rc_failed 3; shift; fi + if test "$1" = "-v"; then echo_rc; shift; fi + if test "$1" = "-r"; then _RC_RV=0; shift; fi + return ${_RC_RV} + } + rc_exit() { exit ${_RC_RV}; } + rc_active() + { + if test -z "$RUNLEVEL"; then read RUNLEVEL REST < <(/sbin/runlevel); fi + if test -e /etc/init.d/S[0-9][0-9]${1}; then return 0; fi + return 1 + } +fi + +# Reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - user had insufficient privileges +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running +# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signaling is not supported) are +# considered a success. + +case "$1" in +start) + echo "Starting Vicidial " + ## Start daemon with startproc(8). If this fails + ## the return value is set appropriately by startproc. + + if /sbin/lsmod | /usr/bin/grep zaptel + then + echo "Zaptel already loaded" + else + if [ -x $WAN_BIN ] ; then + echo "Starting Sangoma wanrouter driver" + $WAN_BIN start + else + echo "Starting kernel module $ZAP_MOD" + /sbin/modprobe $ZAP_MOD || { echo "$ZAP_MOD NOT loaded" ; exit 5; } + fi + fi + + sleep 3 + + $ZTCFG_BIN -vvv + + sleep 20 + + $VICI_DIR/ADMIN_restart_roll_logs.pl + + sleep 2 + + $VICI_DIR/AST_reset_mysql_vars.pl + + sleep 2 + + $VICI_DIR/start_asterisk_boot.pl + + sleep 2 + + $VICI_DIR/ADMIN_keepalive_ALL.pl + + echo "" + + echo "Started Vicidial " + + # Remember status and be verbose + rc_status -v + ;; +stop) + ## Stop daemon with killproc(8) and if this fails + ## killproc sets the return value according to LSB. + + if /bin/ps -A | /usr/bin/grep asterisk + then + echo "Stopping asterisk gracefully (wait 60sec)" + $AST_BIN -rx "stop gracefully" 1> /dev/null 2> /dev/null # stop asterisk gracefully + sleep 60 + + if /bin/ps -A| /usr/bin/grep asterisk + then + echo "Okay it has had long enough ... stopping Asterisk now" + $AST_BIN -rx "stop now" 1> /dev/null 2> /dev/null # stop asterisk now + fi + echo "Asterisk stopped" + else + echo "Asterisk not running" + fi + + if /sbin/lsmod | /usr/bin/grep zaptel + then + $ZTCFG_BIN -s + fi + + if [ -x $WAN_BIN ] ; then + $WAN_BIN stop + fi + + if /sbin/lsmod | /usr/bin/grep $ZAP_MOD + then + /sbin/rmmod $ZAP_MOD + fi + + if /sbin/lsmod | /usr/bin/grep zttranscode + then + /sbin/rmmod zttranscode + fi + + if /sbin/lsmod | /usr/bin/grep zaptel + then + /sbin/rmmod zaptel + fi + + + # Remember status and be verbose + + echo -n "Stopped Vicidial " + + rc_status -v + ;; + try-restart|condrestart) + ## Do a restart only if the service was active before. + ## Note: try-restart is now part of LSB (as of 1.9). + ## RH has a similar command named condrestart. + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + # Remember status and be quiet + rc_status + ;; +restart) + ## Stop the service and regardless of whether it was + ## running or not, start it again. + $0 stop + $0 start + + # Remember status and be quiet + rc_status + ;; +status) + echo -n "Checking for service Vicidial " + ## Check status with checkproc(8), if process is running + ## checkproc will return with exit status 0. + + # Return value is slightly different for the status command: + # 0 - service up and running + # 1 - service dead, but /var/run/ pid file exists + # 2 - service dead, but /var/lock/ lock file exists + # 3 - service not running (unused) + # 4 - service status unknown :-( + # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.) + + /usr/bin/screen -ls + + # NOTE: checkproc returns LSB compliant status values. + checkproc $AST_BIN + # NOTE: rc_status knows that we called this init script with + # "status" option and adapts its messages accordingly. + rc_status -v + ;; +probe) + ## Optional: Probe for the necessity of a reload, print out the + ## argument to this init script which is required for a reload. + ## Note: probe is not (yet) part of LSB (as of 1.9) + + test /etc/FOO/FOO.conf -nt /var/run/FOO.pid && echo reload + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" + exit 1 + ;; +esac +rc_exit diff --git a/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_1.0.021902.tar b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_1.0.021902.tar new file mode 100644 index 00000000..194a4a71 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_1.0.021902.tar differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_1.1.112705.zip b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_1.1.112705.zip new file mode 100644 index 00000000..9a7ed31a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_1.1.112705.zip differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_linux_i386 b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_linux_i386 new file mode 100644 index 00000000..5a325343 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/ip_relay_linux_i386 differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/ip_relay/lib_ip_relay_linux_i386.so.1.0.1 b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/lib_ip_relay_linux_i386.so.1.0.1 new file mode 100644 index 00000000..d42ee5f0 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/lib_ip_relay_linux_i386.so.1.0.1 differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/ip_relay/lib_ip_relay_linux_i386_gcc.a b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/lib_ip_relay_linux_i386_gcc.a new file mode 100644 index 00000000..05e85be3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/lib_ip_relay_linux_i386_gcc.a differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/ip_relay/relay_control b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/relay_control new file mode 100644 index 00000000..081574e8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/ip_relay/relay_control @@ -0,0 +1,59 @@ +#!/bin/sh +# +# relay_control ip_relay startup/shutdown script +# +# Version: 1.0 ip_relay/relay_control 7-Feb-2003 +# +# info@eflo.net +# +# This script is released under the BSD license +# (for compatibility with the ip_relay project) +# http://sourceforge.net/projects/iprelay/ +# +# Thanks to Rachad ALAO (ralao@venus.org) for writing ip_relay +# + + +case "$1" in + start) + + echo "starting up ip_relay services " + + ip_relay 40569 127.0.0.1 4569 9999999 & + ip_relay 41569 127.0.0.1 4569 9999999 & + + echo "done " + echo + ;; + + status) + + echo "current running processes " + + ps -C ip_relay + + echo "Done " + exit 0 + ;; + + restart|reload) + $0 stop + $0 start + ;; + + stop) + echo "Shutting down ip_relay services " + + # Turn off IP Forwarding + kill `ps -C ip_relay -o pid --no-heading` + + echo "Done " + + echo + ;; + *) + echo "Usage: relay_control {start|stop|status|restart|reload}" + exit 1 +esac + +exit 0 diff --git a/agc_2-X/branches/agc_2.2.0/extras/lcr_loader_example.pl b/agc_2-X/branches/agc_2.2.0/extras/lcr_loader_example.pl new file mode 100644 index 00000000..b1c63d7d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/lcr_loader_example.pl @@ -0,0 +1,107 @@ +#!/usr/bin/perl + +use strict; +use DBI; +use Cwd; + +my $pwd = cwd(); + +# change this to the name of the csv file that you are reading in. +my $datafile = "carrier_rates.csv"; + +# change this to the string needed to place the call through this carrier +my $carrier_string = "SIP/provider1"; + +# default path to astguiclient configuration file: +my $PATHconf = '/etc/astguiclient.conf'; +my $VARDB_server = 'localhost'; +my $VARDB_database = 'asterisk'; +my $VARDB_user = 'cron'; +my $VARDB_pass = '1234'; +my $VARDB_port = '3306'; + +print "Reading Vicidial configs\n"; + +open( conf, "$PATHconf" ) || die "can't open $PATHconf: $!\n"; +my @conf = ; +close(conf); +my $i = 0; +foreach (@conf) { + my $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( $line =~ /^VARDB_server/ ) { + $VARDB_server = $line; + $VARDB_server =~ s/.*=//gi; + } + if ( $line =~ /^VARDB_database/ ) { + $VARDB_database = $line; + $VARDB_database =~ s/.*=//gi; + } + if ( $line =~ /^VARDB_user/ ) { + $VARDB_user = $line; + $VARDB_user =~ s/.*=//gi; + } + if ( $line =~ /^VARDB_pass/ ) { + $VARDB_pass = $line; + $VARDB_pass =~ s/.*=//gi; + } + if ( $line =~ /^VARDB_port/ ) { + $VARDB_port = $line; + $VARDB_port =~ s/.*=//gi; + } + $i++; +} + +print "Opening connection to the database\n"; + +my $dbhA = DBI->connect( + "DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", + "$VARDB_user", + "$VARDB_pass" +) or die "Couldn't connect to database: " . DBI->errstr; + + +print "opening the file $datafile\n"; + +open( DATAFILE, "$datafile" ) or die "no such file $datafile"; + +my $npanxx; +my $state; +my $lata5; +my $lata_name; +my $ocn; +my $rate; +my $billing_zone; +my $nothing; + +my $stmtA = "INSERT IGNORE INTO lcr ( npanxx, rate, carrier_string ) VALUES ( ?,?,? );"; + +print "Inserting data into the lcr table\n"; + +my $index = 0; +while () { + my $line = $_; + $line =~ s/\r\n/\n/gi; + chomp($line); + if ( $index > 0 ) { + # parse the comma delimited line + ( $npanxx, $state, $lata5, $lata_name, $ocn, $rate, $billing_zone, $nothing ) = split ( ",", $line); + + # remove the extra white space + chomp( $npanxx ); + chomp( $rate ); + + # remove any quotes that might be in the csv + $npanxx =~ s/\"//g; + $rate =~ s/\"//g; + + # put it into the db + my $sthA = $dbhA->prepare_cached($stmtA) or die "preparing: ", $dbhA->errstr; + $sthA->execute( $npanxx, $rate, $carrier_string) or die "executing: $stmtA ", $dbhA->errstr; + $sthA->finish(); + + } + $index++; +} + +close( data ); diff --git a/agc_2-X/branches/agc_2.2.0/extras/leave.h b/agc_2-X/branches/agc_2.2.0/extras/leave.h new file mode 100644 index 00000000..c99bcbb2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/leave.h @@ -0,0 +1,110 @@ +/* + * U-law 8-bit audio data + * Source: leave.raw (/usr/bin/hexdump -C ./leave.raw) + * Copyright (C) 2007, Matt Florell + * Distributed under the terms of the GPLv2 + */ + +static unsigned char leave[] = { +0xd6, 0xdc, 0x55, 0x5f, 0x63, 0x67, 0xf0, 0xf0, 0x74, 0x75, +0xd6, 0xee, 0x5d, 0x73, 0x66, 0x60, 0xdc, 0xfd, 0x62, 0x68, +0x5b, 0x5a, 0x57, 0x5e, 0x5b, 0x5c, 0xef, 0xfc, 0x4d, 0x51, +0x57, 0x4c, 0x5d, 0x66, 0x60, 0x51, 0x6c, 0x5f, 0x3e, 0x4d, +0x59, 0x47, 0x72, 0xe4, 0x52, 0x53, 0x58, 0x48, 0x3e, 0x51, +0x54, 0x4e, 0xf8, 0xd2, 0x4c, 0x45, 0x4e, 0x3e, 0x46, 0x58, +0x5a, 0x59, 0x5a, 0xdc, 0x44, 0x3a, 0x53, 0x43, 0x45, 0xe1, +0x78, 0x52, 0x5b, 0x5d, 0x3e, 0x39, 0x69, 0x4b, 0x56, 0xd4, +0xdc, 0x5b, 0xef, 0x65, 0x4b, 0x4f, 0x4b, 0x7c, 0x75, 0xd5, +0xcd, 0xdb, 0x72, 0x4a, 0x4d, 0x4b, 0x50, 0xd6, 0xd7, 0xdb, +0xdb, 0xc8, 0x6b, 0x44, 0xf7, 0x5c, 0x6e, 0xda, 0xcb, 0xbc, +0xcb, 0xc1, 0xd2, 0xcf, 0x62, 0x53, 0x7b, 0xe0, 0xc9, 0xcb, +0xbc, 0xbc, 0xcd, 0x54, 0x78, 0x53, 0x5a, 0x5c, 0xbd, 0xcc, +0xbd, 0xd3, 0xb7, 0xde, 0x79, 0x67, 0x53, 0xdc, 0x57, 0xbf, +0xbd, 0xbd, 0xc6, 0xc6, 0xda, 0xd9, 0x41, 0xe6, 0x49, 0xcb, +0x5c, 0xbf, 0xbe, 0xd0, 0xd9, 0x44, 0xcc, 0x3b, 0xd0, 0x3f, +0xce, 0xdd, 0x4b, 0xea, 0x47, 0xbe, 0x4a, 0xcc, 0x69, 0xc6, +0x64, 0x49, 0xed, 0x4f, 0x69, 0x46, 0xea, 0xc5, 0x6b, 0xdc, +0xe3, 0xd6, 0x5a, 0x3c, 0x61, 0x35, 0xdb, 0x3a, 0xdb, 0xff, +0xf8, 0xc2, 0x48, 0xd7, 0x46, 0x6a, 0x48, 0x47, 0x5e, 0x7d, +0xe8, 0xd3, 0x66, 0xcf, 0x50, 0x7e, 0x48, 0x3d, 0x5d, 0x3c, +0xd6, 0x3a, 0xbe, 0x5a, 0xe5, 0xe2, 0x4d, 0xcd, 0x41, 0xbb, +0x43, 0xbb, 0x49, 0xc4, 0xd0, 0x42, 0xc5, 0x3c, 0xc6, 0x4e, +0xd6, 0xc0, 0xe7, 0xbc, 0xd4, 0xde, 0xc5, 0x45, 0xcd, 0x6a, +0xed, 0x5d, 0x67, 0xb8, 0x55, 0xba, 0xe3, 0xbb, 0xc5, 0x4a, +0xc0, 0x3c, 0xc8, 0x49, 0x77, 0xbc, 0xe8, 0xb6, 0xdc, 0xae, +0xeb, 0x71, 0xcb, 0x51, 0xf2, 0x47, 0xea, 0x6b, 0xdd, 0xce, +0xc8, 0xcc, 0xc2, 0xdc, 0xc5, 0xe7, 0x5d, 0xcb, 0x4a, 0xc9, +0x55, 0xca, 0xbb, 0x4f, 0xb9, 0x5c, 0xca, 0xf3, 0x3d, 0xbf, +0x38, 0xc6, 0xf8, 0x56, 0xb0, 0x3a, 0xbb, 0x79, 0xe1, 0xd3, +0x33, 0xbe, 0x36, 0xdf, 0x4e, 0x4f, 0xbb, 0x58, 0xb5, 0x67, +0xbb, 0x63, 0x4e, 0xd6, 0x3b, 0x5f, 0x38, 0xd6, 0xe9, 0x52, +0xc9, 0x3f, 0xbc, 0xd7, 0x40, 0xbf, 0x34, 0x67, 0x6d, 0x32, +0xd0, 0x3b, 0xd4, 0xe3, 0x4d, 0xb6, 0x40, 0xdd, 0xeb, 0x3e, +0xf0, 0x3c, 0x4a, 0x56, 0x49, 0x7e, 0xf2, 0x67, 0xd2, 0xd8, +0xec, 0xe1, 0x4c, 0xf7, 0x5d, 0x37, 0x4c, 0x48, 0x46, 0x6d, +0x3c, 0x5f, 0xbd, 0xf5, 0xe9, 0xca, 0x6d, 0x4d, 0x5d, 0x4a, +0x43, 0x3f, 0x49, 0x67, 0x49, 0xc6, 0xcd, 0x48, 0xbc, 0x66, +0xd3, 0xd9, 0x2e, 0xc5, 0x4e, 0x2e, 0xca, 0x3a, 0x33, 0xb4, +0xf7, 0x40, 0xb5, 0xee, 0x67, 0xc4, 0x5c, 0x6a, 0x4b, 0x63, +0x51, 0x3e, 0xcf, 0x4a, 0xd5, 0xb8, 0x5a, 0xb6, 0xcc, 0xed, +0xaf, 0x3e, 0x67, 0xb8, 0x34, 0xec, 0xc5, 0x33, 0xba, 0xb6, +0x3f, 0xb4, 0xbb, 0x67, 0xb2, 0xc4, 0x41, 0xd1, 0xe5, 0x53, +0xe0, 0x48, 0x69, 0xbf, 0xe5, 0xcc, 0xb9, 0x7b, 0xc7, 0xae, +0x52, 0xdd, 0xb7, 0x3f, 0xf6, 0xc2, 0x3d, 0xd3, 0xb5, 0x3d, +0xca, 0xad, 0x54, 0xbb, 0xb1, 0x4f, 0xb9, 0xb8, 0x48, 0xc5, +0xce, 0x3e, 0xcf, 0xe2, 0x40, 0xd6, 0xc9, 0x50, 0xc6, 0xbe, +0x4e, 0xb9, 0xbb, 0x3e, 0xca, 0xc1, 0x3b, 0x73, 0xce, 0x30, +0x65, 0xba, 0x3e, 0xd9, 0xb5, 0x41, 0xcd, 0xab, 0x3f, 0xcd, +0xb0, 0x34, 0x6f, 0xbc, 0x31, 0x67, 0xb3, 0x2d, 0x7a, 0xaa, +0x3a, 0xc2, 0xad, 0x34, 0xbd, 0xac, 0x34, 0xbc, 0xb1, 0x2a, +0xcb, 0xb5, 0x29, 0x6e, 0xbb, 0x2c, 0xcd, 0xbc, 0x2e, 0xc2, +0xc2, 0x36, 0xbd, 0x6f, 0x31, 0xb1, 0x5e, 0x2e, 0xb7, 0x37, +0x2e, 0xb1, 0x3f, 0x2b, 0xb7, 0x4c, 0x29, 0xae, 0xdb, 0x2b, +0xaf, 0xbb, 0x2a, 0xbb, 0xb3, 0x25, 0xc8, 0xaf, 0x25, 0x41, +0xaf, 0x2a, 0x3c, 0xa7, 0x2e, 0x2f, 0xa3, 0x5d, 0x2d, 0xac, +0xd5, 0x29, 0xbb, 0xbe, 0x26, 0xe2, 0xb6, 0x28, 0x44, 0xae, +0x32, 0x35, 0xac, 0x4a, 0x2f, 0xae, 0xcb, 0x2a, 0xb5, 0xb5, +0x2a, 0xcb, 0xae, 0x2c, 0x46, 0xab, 0x35, 0x32, 0xb0, 0x4b, +0x2b, 0xb5, 0xb8, 0x2c, 0xcd, 0xab, 0x3c, 0x44, 0xab, 0x4f, +0x30, 0xad, 0xc4, 0x28, 0xda, 0xb1, 0x2d, 0x61, 0xaa, 0x31, +0x3c, 0xa4, 0xea, 0x2f, 0xac, 0xb9, 0x2c, 0xbd, 0xad, 0x2e, +0x60, 0xaa, 0x40, 0x39, 0xad, 0xe0, 0x31, 0xaf, 0xb6, 0x37, +0xcb, 0xb4, 0x44, 0xd5, 0xad, 0x4d, 0x4a, 0xb2, 0xc7, 0xe3, +0xba, 0x50, 0x4c, 0xb2, 0xce, 0x3e, 0xc1, 0xe1, 0x3b, 0xb6, +0xb3, 0x34, 0xfe, 0xa9, 0x54, 0x49, 0xab, 0xd1, 0x36, 0xae, +0xb0, 0x2c, 0x55, 0xab, 0x4e, 0x3b, 0xb1, 0xcc, 0x32, 0xc8, +0xab, 0x43, 0x35, 0xae, 0xb5, 0x42, 0xcc, 0xb2, 0x47, 0x5b, +0xa8, 0xbc, 0x2c, 0x4e, 0xaa, 0xe5, 0x39, 0xbe, 0xcb, 0x33, +0xc6, 0xaa, 0x42, 0x34, 0xbb, 0xc9, 0x3b, 0xc8, 0xba, 0x3c, +0x3f, 0xb8, 0xc0, 0x44, 0xfb, 0xce, 0x49, 0x5e, 0xc2, 0x77, +0x3b, 0x62, 0xd1, 0x59, 0xf7, 0xdc, 0x3e, 0x45, 0xbb, 0xc8, +0x3f, 0x58, 0xcb, 0x58, 0x4c, 0xce, 0xec, 0x3a, 0x58, 0xbd, +0x56, 0x35, 0xe9, 0xd5, 0x40, 0xd9, 0xbf, 0x3b, 0x39, 0xb6, +0xc8, 0x32, 0x5c, 0xc1, 0x40, 0x3a, 0xb9, 0xfd, 0x2b, 0x58, +0xc0, 0x3d, 0x32, 0xd1, 0x74, 0x35, 0x5d, 0xc8, 0x3c, 0x34, +0xc0, 0xc8, 0x30, 0x45, 0xb7, 0xf9, 0x33, 0x5e, 0xc2, 0x3f, +0x40, 0xbe, 0xd1, 0x2f, 0x3b, 0xb9, 0x76, 0x2b, 0x3b, 0xce, +0x4a, 0x3b, 0xdc, 0xdf, 0x35, 0x3f, 0xbc, 0xd3, 0x37, 0x3e, +0xc7, 0x59, 0x48, 0xf8, 0x45, 0x3a, 0x3a, 0xec, 0x5a, 0x3a, +0x4e, 0x69, 0x4b, 0x48, 0xea, 0x5d, 0x34, 0x4d, 0xbe, 0x5c, +0x35, 0x47, 0xd5, 0x52, 0x4a, 0xdd, 0xfb, 0x46, 0x78, 0xc2, +0xdb, 0x40, 0x47, 0xc7, 0xc5, 0x75, 0x45, 0x4f, 0xeb, 0x55, +0xef, 0xc6, 0xfa, 0x3f, 0x5a, 0xc0, 0xd1, 0x4d, 0x58, 0xe0, +0xe5, 0x7d, 0xd3, 0xce, 0x4b, 0x47, 0xc3, 0xbd, 0x55, 0x49, +0xe0, 0xd6, 0xe2, 0xcb, 0xbf, 0xf2, 0x46, 0xf7, 0xb8, 0xbf, +0x56, 0x5c, 0xce, 0xc9, 0xda, 0xcd, 0xf3, 0x4b, 0xe2, 0xc9, +0xc6, 0xd6, 0x5e, 0x5d, 0xca, 0xbf, 0xcf, 0x75, 0xd3, 0xcc, +0x77, 0xca, 0xbe, 0xc8, 0x52, 0x72, 0xb6, 0xb6, 0xe5, 0x5c, +0xca, 0xbe, 0xc4, 0xc5, 0xbe, 0x5d, 0x57, 0xc3, 0xb7, 0xcb, +0x46, 0x59, 0xd4, 0xbe, 0xd2, 0xd2, 0xcb, 0x5d, 0xe8, 0xca, +0xb7, 0xc1, 0x51, 0x60, 0xbb, 0xb6, 0xce, 0x77, 0xc3, 0xc3, +0x62, 0xca, 0xb9, 0xc3, 0x48, 0x62, 0xb3, 0xb4, 0xe6, 0x4e, +0xd7, 0xc0, 0xc2, 0xcf, 0xcf, 0xe8, 0x5a, 0x6c, 0xd9, 0xc9, +0xcf, 0x4d, 0x47, 0xd5, 0xc4, 0xe3, 0x58, 0x6b, 0xe7, 0xe9, +0x79, 0xd5, 0xc8, 0x51, 0x44, 0xf4, 0xc7, 0xda, 0x4f, 0x67, +0xec, 0x6d, 0x54, 0x75, 0xd6, 0x71, 0x4a, 0x4e, 0xcc, 0xcd, +0x55, 0x55, 0x61, 0x68, 0x56, 0x5e, 0xce, 0xde, 0x43, 0x46, +0xce, 0xce, 0x59, 0x50, 0x7c, 0xfe, 0x52, 0x67, 0xcd, 0xeb, +0x49, 0x69, 0xe5, 0xfe, 0xde, 0x60, 0x5e, 0xf5, 0xde, 0xeb, +0x68, 0x6b, 0x71, 0xee, 0x78, 0x76, 0x76, 0x72, 0x6b, 0x6c, +0xfc, 0x7d, }; diff --git a/agc_2-X/branches/agc_2.2.0/extras/leave.raw b/agc_2-X/branches/agc_2.2.0/extras/leave.raw new file mode 100644 index 00000000..4949775b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/leave.raw @@ -0,0 +1 @@ +U_cgtu]sf`bh[ZW^[\MQWL]f`Ql_>MYGrRSXH>QTNLEN>FXZYZD:SCExR[]>9iKV[eKOK|urJMKPkD\n˼bS{˼TxSZ\̽ӷygSWAI\D;?KGJidIOiFkZJոZ>g43?gASHi̹{ǮRݷ?=ӵ=ʭTOH>@PƾN>;s0e>ٵAͫ?Ͱ4o1g-z:­44*˵)n,ͼ.6o1^.7.?+L)+*%ȯ%A*<./]-)&(D25J/**ˮ,F52K+,ͫ;4TI6,UN;2ȫC5B̲G[,N93ƪB4;ȺE?XXL:XV5@ٿ;92\@:+X=2t5]<40E3^?@/;v+;J;5?7>YHE::Z:NiKH]4M\5GRJFx@GuEOU?ZMX}KGýUI˿FV\K^]ʿuwʾRr\ʾž]W÷FYԾ]ʷQ`wbʹHbNZlMGXkyQDOgmTuqJNUUahV^CFYP|RgIi`^hkqxvvrkl} \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/extras/meetme_DTMF_passthru-1.2.23.patch b/agc_2-X/branches/agc_2.2.0/extras/meetme_DTMF_passthru-1.2.23.patch new file mode 100644 index 00000000..e44ef5df --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/meetme_DTMF_passthru-1.2.23.patch @@ -0,0 +1,79 @@ +--- app_meetme-orig.c 2007-08-13 12:34:41.000000000 -0400 ++++ app_meetme.c 2007-08-13 13:18:21.000000000 -0400 +@@ -85,6 +85,7 @@ + " 'D' -- dynamically add conference, prompting for a PIN\n" + " 'e' -- select an empty conference\n" + " 'E' -- select an empty pinless conference\n" ++" 'F' -- Pass DTMF through the conference.\n" + " 'i' -- announce user join/leave\n" + " 'm' -- set monitor only mode (Listen only, no talking)\n" + " 'M' -- enable music on hold when the conference has a single caller\n" +@@ -229,6 +230,7 @@ + #define CONFFLAG_EMPTY (1 << 19) + #define CONFFLAG_EMPTYNOPIN (1 << 20) + #define CONFFLAG_ALWAYSPROMPT (1 << 21) ++#define CONFFLAG_PASS_DTMF (1 << 22) + + enum { + OPT_ARG_WAITMARKED = 0, +@@ -257,6 +259,7 @@ + AST_APP_OPTION('e', CONFFLAG_EMPTY ), + AST_APP_OPTION('E', CONFFLAG_EMPTYNOPIN ), + AST_APP_OPTION('P', CONFFLAG_ALWAYSPROMPT ), ++ AST_APP_OPTION('F', CONFFLAG_PASS_DTMF ), + }); + + static char *istalking(int x) +@@ -797,6 +800,18 @@ + return 0; + } + ++static void conf_queue_dtmf(const struct ast_conference *conf, ++ const struct ast_conf_user *sender, struct ast_frame *f) ++{ ++ struct ast_conf_user *user; ++ ++ AST_LIST_TRAVERSE(&conf->userlist, user, list) { ++ if (user == sender) ++ continue; ++ if (ast_write(user->chan, f) < 0) ++ ast_log(LOG_WARNING, "Error writing frame to channel %s\n", user->chan->name); ++ } ++} + /* Decrement reference counts, as incremented by find_conf() */ + static int dispose_conf(struct ast_conference *conf) + { +@@ -1363,6 +1378,9 @@ + } else if ((f->frametype == AST_FRAME_DTMF) && (confflags & CONFFLAG_EXIT_CONTEXT)) { + char tmp[2]; + ++ if (confflags & CONFFLAG_PASS_DTMF) ++ conf_queue_dtmf(conf, user, f); ++ + tmp[0] = f->subclass; + tmp[1] = '\0'; + if (!ast_goto_if_exists(chan, exitcontext, tmp, 1)) { +@@ -1372,10 +1390,14 @@ + } else if (option_debug > 1) + ast_log(LOG_DEBUG, "Exit by single digit did not work in meetme. Extension %s does not exist in context %s\n", tmp, exitcontext); + } else if ((f->frametype == AST_FRAME_DTMF) && (f->subclass == '#') && (confflags & CONFFLAG_POUNDEXIT)) { ++ if (confflags & CONFFLAG_PASS_DTMF) ++ conf_queue_dtmf(conf, user, f); + ret = 0; + ast_frfree(f); + break; + } else if (((f->frametype == AST_FRAME_DTMF) && (f->subclass == '*') && (confflags & CONFFLAG_STARMENU)) || ((f->frametype == AST_FRAME_DTMF) && menu_active)) { ++ if (confflags & CONFFLAG_PASS_DTMF) ++ conf_queue_dtmf(conf, user, f); + if (ioctl(fd, ZT_SETCONF, &ztc_empty)) { + ast_log(LOG_WARNING, "Error setting conference\n"); + close(fd); +@@ -1542,6 +1564,8 @@ + } + + conf_flush(fd, chan); ++ } else if ((f->frametype == AST_FRAME_DTMF) && confflags & CONFFLAG_PASS_DTMF) { ++ conf_queue_dtmf(conf, user, f); + } else if (option_debug) { + ast_log(LOG_DEBUG, + "Got unrecognized frame on channel %s, f->frametype=%d,f->subclass=%d\n", diff --git a/agc_2-X/branches/agc_2.2.0/extras/meetme_volume_control_1.2.16.patch b/agc_2-X/branches/agc_2.2.0/extras/meetme_volume_control_1.2.16.patch new file mode 100644 index 00000000..ebad477d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/meetme_volume_control_1.2.16.patch @@ -0,0 +1,81 @@ +--- app_meetme_orig.c 2007-03-09 16:19:50.000000000 -0500 ++++ app_meetme.c 2007-03-09 16:01:54.000000000 -0500 +@@ -122,6 +122,16 @@ + " 'M' -- Mute conference\n" + " 'n' -- Unmute entire conference (except admin)\n" + " 'N' -- Mute entire conference (except admin)\n" ++" 'S' -- Raise entire conference speaking volume\n" ++" 's' -- Lower entire conference speaking volume\n" ++" 'V' -- Raise entire conference listening volume\n" ++" 'v' -- Lower entire conference listening volume\n" ++" 'T' -- Raise one user's talk volume\n" ++" 't' -- Lower one user's talk volume\n" ++" 'U' -- Raise one user's listen volume\n" ++" 'u' -- Lower one user's listen volume\n" ++" 'R' -- Reset all user's volume settings\n" ++" 'r' -- Reset one user's volume settings\n" + ""; + + #define CONFIG_FILE_NAME "meetme.conf" +@@ -2114,6 +2124,61 @@ + ast_log(LOG_NOTICE, "Specified User not found!\n"); + } + break; ++ case 118: /* v: Lower all users listen volume */ ++AST_LIST_TRAVERSE(&cnf->userlist, user, list) { ++ tweak_listen_volume(user, VOL_DOWN); ++ } ++ break; ++ case 86: /* V: Raise all users listen volume */ ++AST_LIST_TRAVERSE(&cnf->userlist, user, list) { ++ tweak_listen_volume(user, VOL_UP); ++ } ++ break; ++ case 115: /* s: Lower all users speaking volume */ ++AST_LIST_TRAVERSE(&cnf->userlist, user, list) { ++ tweak_talk_volume(user, VOL_DOWN); ++ } ++ break; ++ case 83: /* S: Raise all users speaking volume */ ++AST_LIST_TRAVERSE(&cnf->userlist, user, list) { ++ tweak_talk_volume(user, VOL_UP); ++ } ++ break; ++ case 82: /* R: Reset all volume levels */ ++AST_LIST_TRAVERSE(&cnf->userlist, user, list) { ++ reset_volumes(user); ++ } ++ break; ++ case 114: /* r: Reset user's volume level */ ++ if (user) ++ reset_volumes(user); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 85: /* U: Raise user's listen volume */ ++ if (user) ++ tweak_listen_volume(user, VOL_UP); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 117: /* u: Lower user's listen volume */ ++ if (user) ++ tweak_listen_volume(user, VOL_DOWN); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 84: /* T: Raise user's talk volume */ ++ if (user) ++ tweak_talk_volume(user, VOL_UP); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 116: /* t: Lower user's talk volume */ ++ if (user) ++ tweak_talk_volume(user, VOL_DOWN); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; + } + + dispose_conf(cnf); diff --git a/agc_2-X/branches/agc_2.2.0/extras/meetmeadmin_volume_control.1.2.7.1.patch b/agc_2-X/branches/agc_2.2.0/extras/meetmeadmin_volume_control.1.2.7.1.patch new file mode 100644 index 00000000..bd52eb1b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/meetmeadmin_volume_control.1.2.7.1.patch @@ -0,0 +1,180 @@ +--- asterisk-1.2.7.1/apps/app_meetme.c 2006-04-06 18:15:20.000000000 -0400 ++++ asterisk-1.2.7.1-mod/apps/app_meetme.c 2006-05-10 12:31:36.000000000 -0400 +@@ -121,6 +121,16 @@ + " 'M' -- Mute conference\n" + " 'n' -- Unmute entire conference (except admin)\n" + " 'N' -- Mute entire conference (except admin)\n" ++" 'S' -- Raise entire conference speaking volume\n" ++" 's' -- Lower entire conference speaking volume\n" ++" 'V' -- Raise entire conference listening volume\n" ++" 'v' -- Lower entire conference listening volume\n" ++" 'T' -- Raise one user's talk volume\n" ++" 't' -- Lower one user's talk volume\n" ++" 'U' -- Raise one user's listen volume\n" ++" 'u' -- Lower one user's listen volume\n" ++" 'R' -- Reset all user's volume settings\n" ++" 'r' -- Reset one user's volume settings\n" + ""; + + #define CONFIG_FILE_NAME "meetme.conf" +@@ -2068,13 +2078,12 @@ + break; + case 75: /* K: kick all users*/ + user = cnf->firstuser; +- while(user) { ++ while (user) { + user->adminflags |= ADMINFLAG_KICKME; +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 101: /* e: Eject last user*/ +@@ -2086,51 +2095,125 @@ + ast_log(LOG_NOTICE, "Not kicking last user, is an Admin!\n"); + break; + case 77: /* M: Mute */ +- if (user) { ++ if (user) + user->adminflags |= ADMINFLAG_MUTED; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found!\n"); +- } + break; + case 78: /* N: Mute all users */ + user = cnf->firstuser; +- while(user) { ++ while (user) { + if (user && !(user->userflags & CONFFLAG_ADMIN)) + user->adminflags |= ADMINFLAG_MUTED; +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 109: /* m: Unmute */ +- if (user && (user->adminflags & ADMINFLAG_MUTED)) { ++ if (user && (user->adminflags & ADMINFLAG_MUTED)) + user->adminflags ^= ADMINFLAG_MUTED; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found or he muted himself!"); +- } + break; + case 110: /* n: Unmute all users */ + user = cnf->firstuser; +- while(user) { +- if (user && (user-> adminflags & ADMINFLAG_MUTED)) { ++ while (user) { ++ if (user && (user-> adminflags & ADMINFLAG_MUTED)) + user->adminflags ^= ADMINFLAG_MUTED; +- } +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 107: /* k: Kick user */ +- if (user) { ++ if (user) + user->adminflags |= ADMINFLAG_KICKME; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 118: /* v: Lower all users listen volume */ ++ user = cnf->firstuser; ++ while(user) { ++ tweak_listen_volume(user, VOL_DOWN); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 86: /* V: Raise all users listen volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_listen_volume(user, VOL_UP); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; + } + break; ++ case 115: /* s: Lower all users speaking volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_talk_volume(user, VOL_DOWN); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 83: /* S: Raise all users speaking volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_talk_volume(user, VOL_UP); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 82: /* R: Reset all volume levels */ ++ user = cnf->firstuser; ++ while (user) { ++ reset_volumes(user); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 114: /* r: Reset user's volume level */ ++ if (user) ++ reset_volumes(user); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 85: /* U: Raise user's listen volume */ ++ if (user) ++ tweak_listen_volume(user, VOL_UP); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 117: /* u: Lower user's listen volume */ ++ if (user) ++ tweak_listen_volume(user, VOL_DOWN); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 84: /* T: Raise user's talk volume */ ++ if (user) ++ tweak_talk_volume(user, VOL_UP); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 116: /* t: Lower user's talk volume */ ++ if (user) ++ tweak_talk_volume(user, VOL_DOWN); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; + } + } else { + ast_log(LOG_NOTICE, "Conference Number not found\n"); diff --git a/agc_2-X/branches/agc_2.2.0/extras/meetmeadmin_volume_control.patch b/agc_2-X/branches/agc_2.2.0/extras/meetmeadmin_volume_control.patch new file mode 100644 index 00000000..ad5fee0d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/meetmeadmin_volume_control.patch @@ -0,0 +1,180 @@ +--- app_meetme-orig.c 2006-09-11 17:47:23.000000000 -0400 ++++ app_meetme.c 2006-10-05 11:51:40.000000000 -0400 +@@ -121,6 +121,16 @@ + " 'M' -- Mute conference\n" + " 'n' -- Unmute entire conference (except admin)\n" + " 'N' -- Mute entire conference (except admin)\n" ++" 'S' -- Raise entire conference speaking volume\n" ++" 's' -- Lower entire conference speaking volume\n" ++" 'V' -- Raise entire conference listening volume\n" ++" 'v' -- Lower entire conference listening volume\n" ++" 'T' -- Raise one user's talk volume\n" ++" 't' -- Lower one user's talk volume\n" ++" 'U' -- Raise one user's listen volume\n" ++" 'u' -- Lower one user's listen volume\n" ++" 'R' -- Reset all user's volume settings\n" ++" 'r' -- Reset one user's volume settings\n" + ""; + + #define CONFIG_FILE_NAME "meetme.conf" +@@ -2095,13 +2105,12 @@ + break; + case 75: /* K: kick all users*/ + user = cnf->firstuser; +- while(user) { ++ while (user) { + user->adminflags |= ADMINFLAG_KICKME; +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 101: /* e: Eject last user*/ +@@ -2113,51 +2122,125 @@ + ast_log(LOG_NOTICE, "Not kicking last user, is an Admin!\n"); + break; + case 77: /* M: Mute */ +- if (user) { ++ if (user) + user->adminflags |= ADMINFLAG_MUTED; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found!\n"); +- } + break; + case 78: /* N: Mute all users */ + user = cnf->firstuser; +- while(user) { ++ while (user) { + if (user && !(user->userflags & CONFFLAG_ADMIN)) + user->adminflags |= ADMINFLAG_MUTED; +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 109: /* m: Unmute */ +- if (user && (user->adminflags & ADMINFLAG_MUTED)) { ++ if (user && (user->adminflags & ADMINFLAG_MUTED)) + user->adminflags ^= ADMINFLAG_MUTED; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found or he muted himself!\n"); +- } + break; + case 110: /* n: Unmute all users */ + user = cnf->firstuser; +- while(user) { +- if (user && (user-> adminflags & ADMINFLAG_MUTED)) { ++ while (user) { ++ if (user && (user-> adminflags & ADMINFLAG_MUTED)) + user->adminflags ^= ADMINFLAG_MUTED; +- } +- if (user->nextuser) { ++ if (user->nextuser) + user = user->nextuser; +- } else { ++ else + break; +- } + } + break; + case 107: /* k: Kick user */ +- if (user) { ++ if (user) + user->adminflags |= ADMINFLAG_KICKME; +- } else { ++ else + ast_log(LOG_NOTICE, "Specified User not found!\n"); ++ break; ++ case 118: /* v: Lower all users listen volume */ ++ user = cnf->firstuser; ++ while(user) { ++ tweak_listen_volume(user, VOL_DOWN); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 86: /* V: Raise all users listen volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_listen_volume(user, VOL_UP); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 115: /* s: Lower all users speaking volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_talk_volume(user, VOL_DOWN); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 83: /* S: Raise all users speaking volume */ ++ user = cnf->firstuser; ++ while (user) { ++ tweak_talk_volume(user, VOL_UP); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; + } + break; ++ case 82: /* R: Reset all volume levels */ ++ user = cnf->firstuser; ++ while (user) { ++ reset_volumes(user); ++ if (user->nextuser) ++ user = user->nextuser; ++ else ++ break; ++ } ++ break; ++ case 114: /* r: Reset user's volume level */ ++ if (user) ++ reset_volumes(user); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 85: /* U: Raise user's listen volume */ ++ if (user) ++ tweak_listen_volume(user, VOL_UP); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 117: /* u: Lower user's listen volume */ ++ if (user) ++ tweak_listen_volume(user, VOL_DOWN); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 84: /* T: Raise user's talk volume */ ++ if (user) ++ tweak_talk_volume(user, VOL_UP); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; ++ case 116: /* t: Lower user's talk volume */ ++ if (user) ++ tweak_talk_volume(user, VOL_DOWN); ++ else ++ ast_log(LOG_NOTICE, "Specified User not found!"); ++ break; + } + } else { + ast_log(LOG_NOTICE, "Conference Number not found\n"); diff --git a/agc_2-X/branches/agc_2.2.0/extras/mysql-tuning.sh b/agc_2-X/branches/agc_2.2.0/extras/mysql-tuning.sh new file mode 100644 index 00000000..b82ebdb7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/mysql-tuning.sh @@ -0,0 +1,1466 @@ +#!/bin/bash + +######################################################################### +# # +# MySQL performance tuning primer script # +# Writen by: Matthew Montgomery # +# Inspired by: MySQLARd (http://gert.sos.be/demo/mysqlar/) # +# Version: 1.4-r0 Released: 2008-02-21 # +# Licenced under GPLv2 # +# # +######################################################################### + +######################################################################### +# # +# Little known feature: 1st argument is execution mode # +# # +# Usage: ./tuning-primer.sh [ mode ] # +# # +# Available Modes: # +# all : perform all checks (default) # +# prompt : prompt for login credintials and socket # +# and execution mode # +# mem, memory : run checks for tunable options which # +# effect memory usage # +# disk, file : run checks for options which effect # +# i/o performance or file handle limits # +# innodb : run InnoDB checks /* to be improved */ # +# misc : run checks for that don't categorise # +# well Slow Queries, Binary logs, # +# Used Connections and Worker Threads # +######################################################################### +# # +# Set this socket variable ONLY if you have multiple instances running # +# or we are unable to find your socket, and you don't want to to be # +# prompted for input each time you run this script. # +# # +######################################################################### +socket= + +function cecho () + +## -- Function to easliy print colored text -- ## + +# Color-echo. +# Argument $1 = message +# Argument $2 = color +{ +export black='\E[0m\c' +export boldblack='\E[1;0m\c' +export red='\E[31m\c' +export boldred='\E[1;31m\c' +export green='\E[32m\c' +export boldgreen='\E[1;32m\c' +export yellow='\E[33m\c' +export boldyellow='\E[1;33m\c' +export blue='\E[34m\c' +export boldblue='\E[1;34m\c' +export magenta='\E[35m\c' +export boldmagenta='\E[1;35m\c' +export cyan='\E[36m\c' +export boldcyan='\E[1;36m\c' +export white='\E[37m\c' +export boldwhite='\E[1;37m\c' + +local default_msg="No message passed." +# Doesn't really need to be a local variable. + +message=${1:-$default_msg} # Defaults to default message. +color=${2:-$black} # Defaults to black, if not specified. + +echo -e "$color" +echo -e "$message" +tput sgr0 # Reset to normal. +echo -e "$black" +return +} + +function print_banner () { + +## -- Banner -- ## + +cecho "\t\c " $black +cecho "-- MYSQL PERFORMANCE TUNING PRIMER --" $boldblue +cecho "\t - By: Matthew Montgomery -" $black + +} + +## -- Find the location of the mysql.sock file -- ## + +function check_for_socket () { +if [ -z "$socket" ] ; then +if [ -S /var/lib/mysql/mysql.sock ] ; then +socket=/var/lib/mysql/mysql.sock +elif [ -S /tmp/mysql.sock ] ; then +socket=/tmp/mysql.sock +else +if [ -S "$ps_socket" ] ; then +socket=$ps_socket +fi +fi +fi +if [ -S "$socket" ] ; then +echo UP > /dev/null +else +cecho "\c" +cecho "No valid socket file \"$socket\" found!" $boldred +cecho "The mysqld process is not running or it is installed in a custom location." $red +cecho "If you are sure mysqld is running, execute script in \"prompt\" mode or set " $red +cecho "the socket= variable at the top of this script" $red +exit 1 +fi +} + + +function check_for_plesk_passwords () { + +## -- Check for the existance of plesk and login using it's credentials -- ## + +if [ -f /etc/psa/.psa.shadow ] ; then +mysql="mysql -S $socket -u admin -p$(cat /etc/psa/.psa.shadow)" +mysqladmin="mysqladmin -S $socket -u admin -p$(cat /etc/psa/.psa.shadow)" +else +mysql="mysql -S $socket" +mysqladmin="mysqladmin -S $socket" +fi +} + +function check_mysql_login () { + +## -- Test for running mysql -- ## + +is_up=$($mysqladmin ping 2>&1) +if [ "$is_up" = "mysqld is alive" ] ; then +echo UP > /dev/null +elif [ "$is_up" != "mysqld is alive" ] ; then +cecho "\n\c" +cecho "- INITIAL LOGIN ATTEMPT FAILED -\n" $boldred +if [ -z $prompted ] ; then +find_webmin_passwords +else +return 1 +fi + +else +cecho "Unknow exit status" $red +exit -1 +fi +} + +function final_login_attempt () { +is_up=$($mysqladmin ping 2>&1) +if [ "$is_up" = "mysqld is alive" ] ; then +echo UP > /dev/null +elif [ "$is_up" != "mysqld is alive" ] ; then +cecho "- FINAL LOGIN ATTEMPT FAILED -\n" $boldred +cecho "Unable to log into socket: $socket" $boldred +exit 1 +fi +} + +function second_login_failed () { + +## -- create a ~/.my.cnf and exit when all else fails -- ## + +cecho "- RETRY LOGIN ATTEMPT FAILED -\n" $boldred +cecho "Could not auto detect login info!\n" +read -p "Do you have your login handy ? [y/N] : " +case $REPLY in +yes | y | Y | YES) +answer1='yes' +read -p "User: " user +read -rsp "Password: " pass +if [ -z $pass ] ; then +export mysql="$mysql -u$user" +export mysqladmin="$mysqladmin -u$user" +else +export mysql="$mysql -u$user -p$pass" +export mysqladmin="$mysqladmin -u$user -p$pass" +fi +;; +*) +cecho "\nPlease create a valid login to MySQL" +cecho "Or, set correct values for 'user=' and 'password=' in ~/.my.cnf" +;; +esac +cecho "\n\c" +read -p "Would you like me to create a ~/.my.cnf file for you? [y/N] : " +case $REPLY in +yes | y | Y | YES) +answer2='yes' +if [ ! -f ~/.my.cnf ] ; then +umask 077 +echo -e "[client]\nuser=$user\npassword=$pass" > ~/.my.cnf +if [ "$answer1" != 'yes' ] ; then +exit 1 +else +final_login_attempt +return 0 +fi +else +cecho "\n~/.my.cnf already exists!\n" $boldred +read -p "Replace ? [y/N] : " +if [ "$REPLY" = 'y' ] || [ "$REPLY = 'Y' " ] ; then +echo -e "[client]\nuser=$user\npassword=$pass" > ~/.my.cnf +if [ "$answer1" != 'yes' ] ; then +exit 1 +else +final_login_attempt +return 0 +fi +else +cecho "Please set the 'user=' and 'password=' values in ~/.my.cnf" +exit 1 +fi +fi +;; +*) +if [ "$answer1" != 'yes' ] ; then +exit 1 +else +final_login_attempt +return 0 +fi +;; +esac +} + +function find_webmin_passwords () { + +## -- populate the .my.cnf file using values harvested from Webmin -- ## + +cecho "Testing Stored for passwords:\c" +if [ -f /etc/webmin/mysql/config ] ; then +user=$(grep ^login= /etc/webmin/mysql/config | cut -d "=" -f 2) +pass=$(grep ^pass= /etc/webmin/mysql/config | cut -d "=" -f 2) +if [ $user ] && [ $pass ] && [ ! -f ~/.my.cnf ] ; then +cecho "Setting login info as User: $user Password: $pass" +touch ~/.my.cnf +chmod 600 ~/.my.cnf +echo -e "[client]\nuser=$user\npassword=$pass" > ~/.my.cnf +cecho "Retrying login" +is_up=$($mysqladmin ping 2>&1) +if [ "$is_up" = "mysqld is alive" ] ; then +echo UP > /dev/null +else +second_login_failed +fi +echo +else +second_login_failed +echo +fi +else +cecho " None Found\n" $boldred +second_login_failed +fi +} + +######################################################################### +# # +# Function to pull MySQL status variable # +# # +# Call using : # +# mysql_status \'Mysql_status_variable\' bash_dest_variable # +# # +######################################################################### + +function mysql_status () { +local status=$($mysql -Bse "show /*!50000 global */ status like $1" | awk '{ print $2 }') +export "$2"=$status +} + +######################################################################### +# # +# Function to pull MySQL server runtime variable # +# # +# Call using : # +# mysql_variable \'Mysql_server_variable\' bash_dest_variable # +# - OR - # +# mysql_variableTSV \'Mysql_server_variable\' bash_dest_variable # +# # +######################################################################### + +function mysql_variable () { +local variable=$($mysql -Bse "show /*!50000 global */ variables like $1" | awk '{ print $2 }') +export "$2"=$variable +} +function mysql_variableTSV () { +local variable=$($mysql -Bse "show /*!50000 global */ variables like $1" | awk -F \t '{ print $2 }') +export "$2"=$variable +} + +function float2int () { +local variable=$(echo "$1 / 1" | bc -l) +export "$2"=$variable +} + +function divide () { + +# -- Divide two intigers -- # + +usage="$0 dividend divisor '$variable' scale" +if [ $1 -ge 1 ] ; then +dividend=$1 +else +cecho "Invalid Dividend" $red +echo $usage +exit 1 +fi +if [ $2 -ge 1 ] ; then +divisor=$2 +else +cecho "Invalid Divisor" $red +echo $usage +exit 1 +fi +if [ ! -n $3 ] ; then +cecho "Invalid variable name" $red +echo $usage +exit 1 +fi +if [ -z $4 ] ; then +scale=2 +elif [ $4 -ge 0 ] ; then +scale=$4 +else +cecho "Invalid scale" $red +echo $usage +exit 1 +fi +export $3=$(echo "scale=$scale; $dividend / $divisor" | bc -l) +} + +function human_readable () { + +######################################################################### +# # +# Convert a value in to human readable size and populate a variable # +# with the result. # +# # +# Call using: # +# human_readable $value 'variable name' [ places of precision] # +# # +######################################################################### + +## value=$1 +## variable=$2 +scale=$3 + +if [ $1 -ge 1073741824 ] ; then +if [ -z $3 ] ; then +scale=2 +fi +divide $1 1073741824 "$2" $scale +unit="G" +elif [ $1 -ge 1048576 ] ; then +if [ -z $3 ] ; then +scale=0 +fi +divide $1 1048576 "$2" $scale +unit="M" +elif [ $1 -ge 1024 ] ; then +if [ -z $3 ] ; then +scale=0 +fi +divide $1 1024 "$2" $scale +unit="K" +else +export "$2"=$1 +unit="bytes" +fi +# let "$2"=$HR +} + +function human_readable_time () { + +######################################################################## +# # +# Function to produce human readable time # +# # +######################################################################## + +usage="$0 seconds 'variable'" +if [ -z $1 ] || [ -z $2 ] ; then +cecho $usage $red +exit 1 +fi +days=$(echo "scale=0 ; $1 / 86400" | bc -l) +remainder=$(echo "scale=0 ; $1 % 86400" | bc -l) +hours=$(echo "scale=0 ; $remainder / 3600" | bc -l) +remainder=$(echo "scale=0 ; $remainder % 3600" | bc -l) +minutes=$(echo "scale=0 ; $remainder / 60" | bc -l) +seconds=$(echo "scale=0 ; $remainder % 60" | bc -l) +export $2="$days days $hours hrs $minutes min $seconds sec" +} + +function check_mysql_version () { + +## -- Print Version Info -- ## + +mysql_variable \'version\' mysql_version +mysql_variable \'version_compile_machine\' mysql_version_compile_machine + +if [ $major_version == '3.23' ] || [ $major_version == '4.0' ] ; then +cecho "MySQL Version $mysql_version $mysql_version_compile_machine is EOL please upgrade to MySQL 4.1 or later" $boldred +else +cecho "MySQL Version $mysql_version $mysql_version_compile_machine" +fi + + +} + +function post_uptime_warning () { + +######################################################################### +# # +# Present a reminder that mysql must run for a couple of days to # +# build up good numbers in server status variables before these tuning # +# suggestions should be used. # +# # +######################################################################### + +mysql_status \'Uptime\' uptime +mysql_status \'Threads_connected\' threads +let queries_per_sec=$questions/$uptime +human_readable_time $uptime uptimeHR + +cecho "Uptime = $uptimeHR" +cecho "Avg. qps = $queries_per_sec" +cecho "Total Questions = $questions" +cecho "Threads Connected = $threads" +echo + +if [ $uptime -gt 172800 ] ; then +cecho "Server has been running for over 48hrs." +cecho "It should be safe to follow these recommendations" +else +cecho "Warning: \c" $boldred +cecho "Server has not been running for at least 48hrs." $boldred +cecho "It may not be safe to use these recommendations" $boldred + +fi +echo "" +cecho "To find out more information on how each of these" $red +cecho "runtime variables effects performance visit:" $red +if [ $major_version == '3.23' ] || [ $major_version == '4.0' ] || [ $major_version == '4.1' ]; then +cecho "http://dev.mysql.com/doc/refman/4.1/en/server-system-variables.html" $boldblue +elif [ $major_version == '5.0' ] || [ $major_version == '5.1' ] ; then +cecho "http://dev.mysql.com/doc/refman/$major_version/en/server-system-variables.html" $boldblue +else +cecho "UNSUPPORTED MYSQL VERSION" $boldred +exit 1 +fi +cecho "Visit http://www.mysql.com/products/enterprise/advisors.html" $boldblue +cecho "for info about MySQL's Enterprise Monitoring and Advisory Service" $boldblue +} + +function check_slow_queries () { + +## -- Slow Queries -- ## + +cecho "SLOW QUERIES" $boldblue + +mysql_status \'Slow_queries\' slow_queries +mysql_variable \'long_query_time\' long_query_time +mysql_variable \'log%queries\' log_slow_queries + +prefered_query_time=5 +if [ -e /etc/my.cnf ] ; then +if [ -z $log_slow_queries ] ; then +log_slow_queries=$(grep log-slow-queries /etc/my.cnf) +fi +fi + +if [ "$log_slow_queries" = 'ON' ] ; then +cecho "The slow query log is enabled." +elif [ "$log_slow_queries" = 'OFF' ] ; then +cecho "The slow query log is \c" +cecho "NOT \c" $boldred +cecho "enabled." +elif [ -z $log_slow_queries ] ; then +cecho "The slow query log is \c" +cecho "NOT \c" $boldred +cecho "enabled." +else +cecho "Error: $log_slow_queries" $boldred +fi +cecho "Current long_query_time = $long_query_time sec." +cecho "You have \c" +cecho "$slow_queries \c" $boldred +cecho "out of \c" +cecho "$questions \c" $boldred +cecho "that take longer than $long_query_time sec. to complete" + +if [ "$major_version" = '5.1' ]; then +float2int long_query_time long_query_timeInt +else +let long_query_timeInt=$long_query_time +fi + +if [ $long_query_timeInt -gt $prefered_query_time ] ; then +cecho "Your long_query_time may be too high, I typically set this under $prefered_query_time sec." $red +else +cecho "Your long_query_time seems to be fine" $green +fi + +} + +function check_binary_log () { + +## -- Binary Log -- ## + +cecho "BINARY UPDATE LOG" $boldblue + +mysql_variable \'log_bin\' log_bin +mysql_variable \'max_binlog_size\' max_binlog_size +mysql_variable \'expire_logs_days\' expire_logs_days +# mysql_variable \'max_binlog_cache_size\' max_binlog_cache_size + +if [ "$log_bin" = 'ON' ] ; then +cecho "The binary update log is enabled" +if [ -z "$max_binlog_size" ] ; then +cecho "The max_binlog_size is not set. The binary log will rotate when it reaches 1GB." $red +fi +if [ "$expire_logs_days" -eq 0 ] ; then +cecho "The expire_logs_days is not set." $boldred +cecho "The mysqld will retain the entire binary log until \c" $red +cecho "RESET MASTER or PURGE MASTER LOGS commands are run manually" $red +cecho "Setting expire_log_days will allow you to remove old binary logs automatically" $yellow +cecho "See http://dev.mysql.com/doc/refman/$major_version/en/purge-master-logs.html" $yellow +fi +else +cecho "The binary update log is \c" +cecho "NOT \c" $boldred +cecho "enabled." +cecho "You will not be able to do point in time recovery" $red +cecho "See http://dev.mysql.com/doc/refman/$major_version/en/point-in-time-recovery.html" $yellow +fi +} + +function check_used_connections () { + +## -- Used Connections -- ## + +mysql_variable \'max_connections\' max_connections +mysql_status \'Max_used_connections\' max_used_connections +mysql_status \'Threads_connected\' threads_connected + +let connections_ratio=$max_used_connections*100/$max_connections + +cecho "MAX CONNECTIONS" $boldblue +cecho "Current max_connections = $max_connections" +cecho "Current threads_connected = $threads_connected" +cecho "Historic max_used_connections = $max_used_connections" +cecho "The number of used connections is \c" +if [ $connections_ratio -ge 85 ] ; then +txt_color=$red +error=1 +elif [ $connections_ratio -le 10 ] ; then +txt_color=$red +error=2 +else +txt_color=$green +error=0 +fi +# cecho "$max_used_connections \c" $txt_color +# cecho "which is \c" +cecho "$connections_ratio% \c" $txt_color +cecho "of the configured maximum." + +if [ $error -eq 1 ] ; then +cecho "You should raise max_connections" $txt_color +elif [ $error -eq 2 ] ; then +cecho "You are using less than 10% of your configured max_connections." $txt_color +cecho "Lowering max_connections could help to avoid an over-allocation of memory" $txt_color +cecho "See \"MEMORY USAGE\" section to make sure you are not over-allocating" $txt_color +else +cecho "Your max_connections variable seems to be fine." $txt_color +fi +unset txt_color +} + +function check_threads() { + +## -- Worker Threads -- ## + +cecho "WORKER THREADS" $boldblue + +mysql_status \'Threads_created\' threads_created1 +sleep 1 +mysql_status \'Threads_created\' threads_created2 + +mysql_status \'Threads_cached\' threads_cached +mysql_status \'Uptime\' uptime +mysql_variable \'thread_cache_size\' thread_cache_size + +let historic_threads_per_sec=$threads_created1/$uptime +let current_threads_per_sec=$threads_created2-$threads_created1; + +cecho "Current thread_cache_size = $thread_cache_size" +cecho "Current threads_cached = $threads_cached" +cecho "Current threads_per_sec = $current_threads_per_sec" +cecho "Historic threads_per_sec = $historic_threads_per_sec" + +if [ $historic_threads_per_sec -ge 2 ] && [ $threads_cached -le 1 ] ; then +cecho "Threads created per/sec are overrunning threads cached" $red +cecho "You should raise thread_cache_size" $red +elif [ $current_threads_per_sec -ge 2 ] ; then +cecho "Threads created per/sec are overrunning threads cached" $red +cecho "You should raise thread_cache_size" $red +else +cecho "Your thread_cache_size is fine" $green +fi +} + +function check_key_buffer_size () { + +## -- Key buffer Size -- ## + +cecho "KEY BUFFER" $boldblue + +mysql_status \'Key_read_requests\' key_read_requests +mysql_status \'Key_reads\' key_reads +mysql_status \'Key_blocks_used\' key_blocks_used +mysql_status \'Key_blocks_unused\' key_blocks_unused +mysql_variable \'key_buffer_size\' key_buffer_size +mysql_variable \'datadir\' datadir +mysql_variable \'version_compile_machine\' mysql_version_compile_machine +myisam_indexes=$($mysql -Bse "/*!50000 SELECT SUM(INDEX_LENGTH) from information_schema.TABLES where ENGINE='MyISAM' */") + +if [ -z $myisam_indexes ] ; then +myisam_indexes=$(find $datadir -name '*.MYI' -exec du $duflags '{}' \; 2>&1 | awk '{ s += $1 } END { printf("%.0f\n", s )}') +fi + +if [ $key_reads -eq 0 ] ; then +cecho "No key reads?!" $boldred +cecho "Seriously look into using some indexes" $red +key_cache_miss_rate=0 +key_buffer_ratio=0 +key_buffer_ratioRND=0 +else +let key_cache_miss_rate=$key_read_requests/$key_reads +if [ ! -z $key_blocks_unused ] ; then +let key_blocks_total=$key_blocks_used+$key_blocks_unused +divide $key_blocks_used $key_blocks_total key_buffer_fill 2 +key_buffer_ratio=$(echo "$key_buffer_fill * 100" | bc -l) +key_buffer_ratioRND=$(echo "scale=0; $key_buffer_ratio / 1" | bc -l) +else +key_buffer_ratio='Unknown' +key_buffer_ratioRND=75 +fi +fi + +human_readable $myisam_indexes myisam_indexesHR 0 +cecho "Current MyISAM index space = $myisam_indexesHR $unit" + +human_readable $key_buffer_size key_buffer_sizeHR 0 +cecho "Current key_buffer_size = $key_buffer_sizeHR $unit" +cecho "Key cache miss rate is 1 : $key_cache_miss_rate" +cecho "Key buffer fill ratio = $key_buffer_ratio %" + +if [ "$major_version" == '5.1' ] && [ $mysql_version_num -lt '5123' ] ; then +if [ $key_buffer_size -ge 4294967296 ] && ( echo "x86_64 ppc64 ia64 sparc64 i686" | grep -q $mysql_version_compile_machine ) ; then +cecho "Using key_buffer_size > 4GB will cause instability in versions prior to 5.1.23 " $boldred +cecho "See Bug#5731, Bug#29419, Bug#29446" $boldred +fi +fi +if [ "$major_version" == '5.0' ] && [ $mysql_version_num -lt '5052' ] ; then +if [ $key_buffer_size -ge 4294967296 ] && ( echo "x86_64 ppc64 ia64 sparc64 i686" | grep -q $mysql_version_compile_machine ) ; then +cecho "Using key_buffer_size > 4GB will cause instability in versions prior to 5.0.52 " $boldred +cecho "See Bug#5731, Bug#29419, Bug#29446" $boldred +fi +fi +if [ "$major_version" == '4.1' -o "$major_version" == '4.0' ] && [ $key_buffer_size -ge 4294967296 ] && ( echo "x86_64 ppc64 ia64 sparc64 i686" | grep -q $mysql_version_compile_machine ) ; then +cecho "Using key_buffer_size > 4GB will cause instability in versions prior to 5.0.52 " $boldred +cecho "Reduce key_buffer_size to a safe value" $boldred +cecho "See Bug#5731, Bug#29419, Bug#29446" $boldred +fi + +if [ $key_cache_miss_rate -le 100 ] && [ $key_cache_miss_rate -gt 0 ] && [ $key_buffer_ratioRND -ge 80 ]; then +cecho "You could increase key_buffer_size" $boldred +cecho "It is safe to raise this up to 1/4 of total system memory;" +cecho "assuming this is a dedicated database server." +elif [ $key_buffer_ratioRND -ge 80 ] && [ $key_buffer_size -le $myisam_indexes ] ; then +cecho "You could increase key_buffer_size" $boldred +cecho "It is safe to raise this up to 1/4 of total system memory;" +cecho "assuming this is a dedicated database server." +elif [ $key_cache_miss_rate -ge 10000 ] || [ $key_buffer_ratioRND -le 50 ] ; then +cecho "Your key_buffer_size seems to be too high." $red +cecho "Perhaps you can use these resources elsewhere" $red +else +cecho "Your key_buffer_size seems to be fine" $green +fi +} + +function check_query_cache () { + +## -- Query Cache -- ## + +cecho "QUERY CACHE" $boldblue + +mysql_variable \'version\' mysql_version +mysql_variable \'query_cache_size\' query_cache_size +mysql_variable \'query_cache_limit\' query_cache_limit +mysql_variable \'query_cache_min_res_unit\' query_cache_min_res_unit +mysql_status \'Qcache_free_memory\' qcache_free_memory +mysql_status \'Qcache_total_blocks\' qcache_total_blocks +mysql_status \'Qcache_free_blocks\' qcache_free_blocks +mysql_status \'Qcache_lowmem_prunes\' qcache_lowmem_prunes + +if [ -z $query_cache_size ] ; then +cecho "You are using MySQL $mysql_version, no query cache is supported." $red +cecho "I recommend an upgrade to MySQL 4.1 or better" $red +elif [ $query_cache_size -eq 0 ] ; then +cecho "Query cache is supported but not enabled" $red +cecho "Perhaps you should set the query_cache_size" $red +else +let qcache_used_memory=$query_cache_size-$qcache_free_memory +qcache_mem_fill_ratio=$(echo "scale=2; $qcache_used_memory * 100 / $query_cache_size" | bc -l) +qcache_mem_fill_ratioHR=$(echo "scale=0; $qcache_mem_fill_ratio / 1" | bc -l) + +cecho "Query cache is enabled" $green +human_readable $query_cache_size query_cache_sizeHR +cecho "Current query_cache_size = $query_cache_sizeHR $unit" +human_readable $qcache_used_memory qcache_used_memoryHR +cecho "Current query_cache_used = $qcache_used_memoryHR $unit" +human_readable $query_cache_limit query_cache_limitHR +cecho "Current query_cache_limit = $query_cache_limitHR $unit" +cecho "Current Query cache Memory fill ratio = $qcache_mem_fill_ratio %" +human_readable $query_cache_min_res_unit query_cache_min_res_unitHR +cecho "Current query_cache_min_res_unit = $query_cache_min_res_unitHR $unit" +if [ $qcache_free_blocks -gt 2 ] && [ $qcache_total_blocks -gt 0 ] ; then +qcache_percent_fragmented=$(echo "scale=2; $qcache_free_blocks * 100 / $qcache_total_blocks" | bc -l) +qcache_percent_fragmentedHR=$(echo "scale=0; $qcache_percent_fragmented / 1" | bc -l) +if [ $qcache_percent_fragmentedHR -gt 20 ] ; then +cecho "Query Cache is $qcache_percent_fragmentedHR % fragmented" $red +cecho "Run \"FLUSH QUERY CACHE\" periodically to defragment the query cache memory" $red +cecho "If you have many small queries lower 'query_cache_min_res_unit' to reduce fragmentation." $red +fi +fi + +if [ $qcache_mem_fill_ratioHR -le 25 ] ; then +cecho "Your query_cache_size seems to be too high." $red +cecho "Perhaps you can use these resources elsewhere" $red +fi +if [ $qcache_lowmem_prunes -ge 50 ] && [ $qcache_mem_fill_ratioHR -ge 80 ]; then +cecho "However, \c" +cecho "$qcache_lowmem_prunes \c" $boldred +cecho "queries have been removed from the query cache due to lack of memory" +cecho "Perhaps you should raise query_cache_size" $boldred +fi +cecho "MySQL won't cache query results that are larger than query_cache_limit in size" $yellow +fi + +} + +function check_sort_operations () { + +## -- Sort Operations -- ## + +cecho "SORT OPERATIONS" $boldblue + +mysql_status \'Sort_merge_passes\' sort_merge_passes +mysql_status \'Sort_scan\' sort_scan +mysql_status \'Sort_range\' sort_range +mysql_variable \'sort_buffer%\' sort_buffer_size +mysql_variable \'read_rnd_buffer_size\' read_rnd_buffer_size + +let total_sorts=$sort_scan+$sort_range +if [ -z $read_rnd_buffer_size ] ; then +mysql_variable \'record_buffer\' read_rnd_buffer_size +fi + +## Correct for rounding error in mysqld where 512K != 524288 ## +let sort_buffer_size=$sort_buffer_size+8 +let read_rnd_buffer_size=$read_rnd_buffer_size+8 + +human_readable $sort_buffer_size sort_buffer_sizeHR +cecho "Current sort_buffer_size = $sort_buffer_sizeHR $unit" + +human_readable $read_rnd_buffer_size read_rnd_buffer_sizeHR +cecho "Current \c" +if [ "$major_version" == '3.23' ] ; then +cecho "record_rnd_buffer \c" +else +cecho "read_rnd_buffer_size \c" +fi +cecho "= $read_rnd_buffer_sizeHR $unit" + +if [ $total_sorts -eq 0 ] ; then +cecho "No sort operations have been performed" +passes_per_sort=0 +fi +if [ $sort_merge_passes -ne 0 ] ; then +let passes_per_sort=$sort_merge_passes/$total_sorts +else +passes_per_sort=0 +fi + +if [ $passes_per_sort -ge 2 ] ; then +cecho "On average \c" +cecho "$passes_per_sort \c" $boldred +cecho "sort merge passes are made per sort operation" +cecho "You should raise your sort_buffer_size" +cecho "You should also raise your \c" +if [ $major_version == '3.23' ] ; then +cecho "record_rnd_buffer_size" +else +cecho "read_rnd_buffer_size" +fi +else +cecho "Sort buffer seems to be fine" $green +fi +} + +function check_join_operations () { + +## -- Joins -- ## + +cecho "JOINS" $boldblue + +mysql_status \'Select_full_join\' select_full_join +mysql_status \'Select_range_check\' select_range_check +mysql_variable \'join_buffer%\' join_buffer_size + +## Some 4K is dropped from join_buffer_size adding it back to make sane ## +## handling of human-readable conversion ## + +let join_buffer_size=$join_buffer_size+4096 + +human_readable $join_buffer_size join_buffer_sizeHR 2 + +cecho "Current join_buffer_size = $join_buffer_sizeHR $unit" +cecho "You have had $select_full_join queries where a join could not use an index properly" + +if [ $select_range_check -eq 0 ] && [ $select_full_join -eq 0 ] ; then +cecho "Your joins seem to be using indexes properly" $green +fi +if [ $select_full_join -gt 0 ] ; then +print_error='true' +raise_buffer='true' +fi +if [ $select_range_check -gt 0 ] ; then +cecho "You have had $select_range_check joins without keys that check for key usage after each row" $red +print_error='true' +raise_buffer='true' +fi + +## For Debuging ## +# print_error='true' +if [ $join_buffer_size -ge 4194304 ] ; then +cecho "join_buffer_size >= 4 M" $boldred +cecho "This is not advised" $boldred +raise_buffer= +fi + +if [ $print_error ] ; then +if [ $major_version == '3.23' ] || [ $major_version == '4.0' ] ; then +cecho "You should enable \"log-long-format\" " +elif [ $major_version == '4.1' ] || [ $major_version == '5.0' ] || [ $major_version == '5.1' ] ; then +cecho "You should enable \"log-queries-not-using-indexes\"" +fi +cecho "Then look for non indexed joins in the slow query log." +if [ $raise_buffer ] ; then +cecho "If you are unable to optimize your queries you may want to increase your" +cecho "join_buffer_size to accommodate larger joins in one pass.\n" +cecho "Note! This script will still suggest raising the join_buffer_size when" $boldred +cecho "ANY joins not using indexes are found." $boldred +fi +fi + +# XXX Add better tests for join_buffer_size XXX # +} + +check_tmp_tables () { + +## -- Temp Tables -- ## + +cecho "TEMP TABLES" $boldblue + +mysql_status \'Created_tmp_tables\' created_tmp_tables +mysql_status \'Created_tmp_disk_tables\' created_tmp_disk_tables +mysql_variable \'tmp_table_size\' tmp_table_size +mysql_variable \'max_heap_table_size\' max_heap_table_size + + +if [ $created_tmp_tables -eq 0 ] ; then +tmp_disk_tables=0 +else +let tmp_disk_tables=created_tmp_disk_tables*100/created_tmp_tables +fi +human_readable $max_heap_table_size max_heap_table_sizeHR +cecho "Current max_heap_table_size = $max_heap_table_sizeHR $unit" + +human_readable $tmp_table_size tmp_table_sizeHR +cecho "Current tmp_table_size = $tmp_table_sizeHR $unit" + +cecho "Of $created_tmp_tables temp tables, $tmp_disk_tables% were created on disk" +if [ $tmp_table_size -gt $max_heap_table_size ] ; then +cecho "Effective in-memory tmp_table_size is limited to max_heap_table_size." $yellow +fi +if [ $tmp_disk_tables -ge 25 ] ; then +cecho "Perhaps you should increase your tmp_table_size and/or max_heap_table_size" $boldred +cecho "to reduce the number of disk-based temporary tables" $boldred +cecho "Note! BLOB and TEXT columns are not allow in memory tables." $yellow +cecho "If you are using these columns raising these values might not impact your " $yellow +cecho "ratio of on disk temp tables." $yellow +else +cecho "Created disk tmp tables ratio seems fine" $green +fi +} + +function check_open_files () { + +## -- Open Files Limit -- ## +cecho "OPEN FILES LIMIT" $boldblue + +mysql_variable \'open_files_limit\' open_files_limit +mysql_status \'Open_files\' open_files + +if [ -z $open_files_limit ] || [ $open_files_limit -eq 0 ] ; then +open_files_limit=$(ulimit -n) +cant_override=1 +else +cant_override=0 +fi +cecho "Current open_files_limit = $open_files_limit files" + +let open_files_ratio=$open_files*100/$open_files_limit + +cecho "The open_files_limit should typically be set to at least 2x-3x" $yellow +cecho "that of table_cache if you have heavy MyISAM usage." $yellow +if [ $open_files_ratio -ge 75 ] ; then +cecho "You currently have open more than 75% of your open_files_limit" $boldred +if [ $cant_override -eq 1 ] ; then +cecho "You should set a higer value for ulimit -u in the mysql startup script then restart mysqld" $boldred +cecho "MySQL 3.23 users : This is just a guess based upon the current shell's ulimit -u value" $yellow +elif [ $cant_override -eq 0 ] ; then +cecho "You should set a higher value for open_files_limit in my.cnf" $boldred +else +cecho "ERROR can't determine if mysqld override of ulimit is allowed" $boldred +exit 1 +fi +else +cecho "Your open_files_limit value seems to be fine" $green +fi + + + +} + +function check_table_cache () { + +## -- Table Cache -- ## + +cecho "TABLE CACHE" $boldblue + +mysql_variable \'datadir\' datadir +mysql_variable \'table_cache\' table_cache + +## /* MySQL +5.1 version of table_cache */ ## +mysql_variable \'table_open_cache\' table_open_cache +mysql_variable \'table_definition_cache\' table_definition_cache + +mysql_status \'Open_tables\' open_tables +mysql_status \'Opened_tables\' opened_tables +mysql_status \'Open_table_definitions\' open_table_definitions + +table_count=$($mysql -Bse "/*!50000 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' */") + +if [ -z "$table_count" ] ; then +if [ "$UID" != "$socket_owner" ] && [ "$UID" != "0" ] ; then +cecho "You are not '$socket_owner' or 'root'" $red +cecho "I am unable to determine the table_count!" $red +else +table_count=$(find $datadir 2>&1 | grep -c .frm$) +fi +fi +if [ $table_open_cache ] ; then +table_cache=$table_open_cache +fi + +if [ $opened_tables -ne 0 ] && [ $table_cache -ne 0 ] ; then +let table_cache_hit_rate=$open_tables*100/$opened_tables +let table_cache_fill=$open_tables*100/$table_cache +elif [ $opened_tables -eq 0 ] && [ $table_cache -ne 0 ] ; then +table_cache_hit_rate=100 +let table_cache_fill=$open_tables*100/$table_cache +else +cecho "ERROR no table_cache ?!" $boldred +exit 1 +fi +if [ $table_cache ] && [ ! $table_open_cache ] ; then +cecho "Current table_cache value = $table_cache tables" +fi +if [ $table_open_cache ] ; then +cecho "Current table_open_cache = $table_open_cache tables" +cecho "Current table_definition_cache = $table_definition_cache tables" +fi +if [ $table_count ] ; then +cecho "You have a total of $table_count tables" +fi + +if [ $table_cache_fill -lt 95 ] ; then +cecho "You have \c" +cecho "$open_tables \c" $green +cecho "open tables." +cecho "The table_cache value seems to be fine" $green +elif [ $table_cache_hit_rate -le 85 -o $table_cache_fill -ge 95 ]; then +cecho "You have \c" +cecho "$open_tables \c" $boldred +cecho "open tables." +cecho "Current table_cache hit rate is \c" +cecho "$table_cache_hit_rate%\c" $boldred +cecho ", while \c" +cecho "$table_cache_fill% \c" $boldred +cecho "of your table cache is in use" +cecho "You should probably increase your table_cache" $red +else +cecho "Current table_cache hit rate is \c" +cecho "$table_cache_hit_rate%\c" $green +cecho ", while \c" +cecho "$table_cache_fill% \c" $green +cecho "of your table cache is in use" +cecho "The table cache value seems to be fine" $green +fi +if [ $table_definition_cache ] && [ $table_definition_cache -le $table_count ] && [ $table_count -ge 100 ] ; then +cecho "You should probably increase your table_definition_cache value." $red +fi +} + +function check_table_locking () { + +## -- Table Locking -- ## + +cecho "TABLE LOCKING" $boldblue + +mysql_status \'Table_locks_waited\' table_locks_waited +mysql_status \'Table_locks_immediate\' table_locks_immediate +mysql_variable \'concurrent_insert\' concurrent_insert +mysql_variable \'low_priority_updates\' low_priority_updates +if [ "$concurrent_insert" = 'ON' ]; then +let concurrent_insert=1 +elif [ "$concurrent_insert" = 'OFF' ]; then +let concurrent_insert=0 +fi + +cecho "Current Lock Wait ratio = \c" +if [ $table_locks_waited -gt 0 ]; then +let immediate_locks_miss_rate=$table_locks_immediate/$table_locks_waited +cecho "1 : $immediate_locks_miss_rate" $red +else +let immediate_locks_miss_rate=99999 # perfect +cecho "0 : $questions" +fi +if [ $immediate_locks_miss_rate -lt 5000 ] ; then +cecho "You may benefit from selective use of InnoDB." +if [ "$low_priority_updates" == 'OFF' ] ; then +cecho "If you have long running SELECT's against MyISAM tables and perform" +cecho "frequent updates consider setting 'low_priority_updates=1'" +fi +if [ $concurrent_insert -le 1 ] && [ $major_version == '5.0' -o $major_version == '5.1' ] ; then +cecho "If you have a high concurrency of inserts on Dynamic row-length tables" +cecho "consider setting 'concurrent_insert=2'." +fi +else +cecho "Your table locking seems to be fine" $green +fi +} + +function check_table_scans () { + +## -- Table Scans -- ## + +cecho "TABLE SCANS" $boldblue + +mysql_status \'Com_select\' com_select +mysql_status \'Handler_read_rnd_next\' read_rnd_next +mysql_variable \'read_buffer_size\' read_buffer_size + +if [ -z $read_buffer_size ] ; then +mysql_variable \'record_buffer\' read_buffer_size +fi + +human_readable $read_buffer_size read_buffer_sizeHR +cecho "Current read_buffer_size = $read_buffer_sizeHR $unit" + +if [ $com_select -gt 0 ] ; then +let full_table_scans=$read_rnd_next/$com_select +cecho "Current table scan ratio = $full_table_scans : 1" +if [ $full_table_scans -ge 4000 ] && [ $read_buffer_size -le 2097152 ] ; then +cecho "You have a high ratio of sequential access requests to SELECTs" $red +cecho "You may benefit from raising \c" $red +if [ $major_version == '3.23' ] ; then +cecho "record_buffer \c" $red +else +cecho "read_buffer_size \c" $red +fi +cecho "and/or improving your use of indexes." $red +elif [ $read_buffer_size -gt 8388608 ] ; then +cecho "read_buffer_size is over 8 MB \c" $red +cecho "there is probably no need for such a large read_buffer" $red + +else +cecho "read_buffer_size seems to be fine" $green +fi +else +cecho "read_buffer_size seems to be fine" $green +fi +} + + +function check_innodb_status () { + +## -- InnoDB -- ## + +mysql_variable \'have_innodb\' have_innodb + +if [ "$have_innodb" == "YES" ] ; then +mysql_variable \'innodb_buffer_pool_size\' innodb_buffer_pool_size +mysql_variable \'innodb_additional_mem_pool_size\' innodb_additional_mem_pool_size +mysql_variable \'innodb_fast_shutdown\' innodb_fast_shutdown +mysql_varaible \'innodb_flush_log_at_trx_commit\' innodb_flush_log_at_trx_commit +mysql_variable \'innodb_locks_unsafe_for_binlog\' innodb_locks_unsafe_for_binlog +mysql_varaible \'innodb_log_buffer_size\' innodb_log_buffer_size +mysql_variable \'innodb_log_file_size\' innodb_log_file_size +mysql_variable \'innodb_log_files_in_group\' innodb_log_files_in_group +mysql_variable \'innodb_safe_binlog\' innodb_safe_binlog +mysql_variable \'innodb_thread_concurrency\' innodb_thread_concurrency + +echo +cecho "INNODB STATUS" $boldblue +innodb_indexes=$($mysql -Bse "/*!50000 SELECT SUM(INDEX_LENGTH) from information_schema.TABLES where ENGINE='InnoDB' */") + +if [ ! -z "$innodb_indexes" ] ; then + +mysql_status \'Innodb_buffer_pool_pages_data\' innodb_buffer_pool_pages_data +mysql_status \'Innodb_buffer_pool_pages_misc\' innodb_buffer_pool_pages_misc +mysql_status \'Innodb_buffer_pool_pages_free\' innodb_buffer_pool_pages_free +mysql_status \'Innodb_buffer_pool_pages_total\' innodb_buffer_pool_pages_total + +mysql_status \'Innodb_buffer_pool_read_ahead_seq\' innodb_buffer_pool_read_ahead_seq +mysql_status \'Innodb_buffer_pool_read_requests\' innodb_buffer_pool_read_requests + +mysql_status \'Innodb_os_log_pending_fsyncs\' innodb_os_log_pending_fsyncs +mysql_status \'Innodb_os_log_pending_writes\' innodb_os_log_pending_writes +mysql_status \'Innodb_log_waits\' innodb_log_waits + +mysql_status \'Innodb_row_lock_time\' innodb_row_lock_time +mysql_status \'Innodb_row_lock_waits\' innodb_row_lock_waits + +human_readable $innodb_indexes innodb_indexesHR 0 +cecho "Current InnoDB index space = $innodb_indexesHR $unit" +else +cecho "Cannot find InnoDB index space prior to 5.0.x" $red +fi + +human_readable $innodb_buffer_pool_size innodb_buffer_pool_sizeHR +cecho "Current innodb_buffer_pool_size = $innodb_buffer_pool_sizeHR $unit" +cecho "Depending on how much space your innodb indexes take up it may be safe" +cecho "to increase this value to up to 1 / 3 of total system memory" +echo +$mysql -s -e "SHOW /*!50000 ENGINE */ INNODB STATUS\G" +else +cecho "No InnoDB Support Enabled!" $boldred +fi +} + +function total_memory_used () { + +## -- Total Memory Usage -- ## +cecho "MEMORY USAGE" $boldblue + +mysql_variable \'read_buffer_size\' read_buffer_size +mysql_variable \'read_rnd_buffer_size\' read_rnd_buffer_size +mysql_variable \'sort_buffer_size\' sort_buffer_size +mysql_variable \'thread_stack\' thread_stack +mysql_variable \'max_connections\' max_connections +mysql_variable \'join_buffer_size\' join_buffer_size +mysql_variable \'tmp_table_size\' tmp_table_size +mysql_variable \'max_heap_table_size\' max_heap_table_size +mysql_variable \'log_bin\' log_bin +mysql_status \'Max_used_connections\' max_used_connections + +if [ "$major_version" = "3.23" ] ; then +mysql_variable \'record_buffer\' read_buffer_size +mysql_variable \'record_rnd_buffer\' read_rnd_buffer_size +mysql_variable \'sort_buffer\' sort_buffer_size +fi + +if [ "$log_bin" == "ON" ] ; then +mysql_variable \'binlog_cache_size\' binlog_cache_size +else +binlog_cache_size=0 +fi + +if [ $max_heap_table_size -le $tmp_table_size ] ; then +effective_tmp_table_size=$max_heap_table_size +else +effective_tmp_table_size=$tmp_table_size +fi + + +per_thread_buffers=$(echo "($read_buffer_size+$read_rnd_buffer_size+$sort_buffer_size+$thread_stack+$join_buffer_size+$binlog_cache_size)*$max_connections" | bc -l) +per_thread_max_buffers=$(echo "($read_buffer_size+$read_rnd_buffer_size+$sort_buffer_size+$thread_stack+$join_buffer_size+$binlog_cache_size)*$max_used_connections" | bc -l) + +mysql_variable \'innodb_buffer_pool_size\' innodb_buffer_pool_size +if [ -z $innodb_buffer_pool_size ] ; then +innodb_buffer_pool_size=0 +fi + +mysql_variable \'innodb_additional_mem_pool_size\' innodb_additional_mem_pool_size +if [ -z $innodb_additional_mem_pool_size ] ; then +innodb_additional_mem_pool_size=0 +fi + +mysql_variable \'innodb_log_buffer_size\' innodb_log_buffer_size +if [ -z $innodb_log_buffer_size ] ; then +innodb_log_buffer_size=0 +fi + +mysql_variable \'key_buffer_size\' key_buffer_size + +mysql_variable \'query_cache_size\' query_cache_size +if [ -z $query_cache_size ] ; then +query_cache_size=0 +fi + +global_buffers=$(echo "$innodb_buffer_pool_size+$innodb_additional_mem_pool_size+$innodb_log_buffer_size+$key_buffer_size+$query_cache_size" | bc -l) + + +max_memory=$(echo "$global_buffers+$per_thread_max_buffers" | bc -l) +total_memory=$(echo "$global_buffers+$per_thread_buffers" | bc -l) + +pct_of_sys_mem=$(echo "scale=0; $total_memory*100/$physical_memory" | bc -l) + +if [ $pct_of_sys_mem -gt 90 ] ; then +txt_color=$boldred +error=1 +else +txt_color= +error=0 +fi + +human_readable $max_memory max_memoryHR 0 +cecho "Max Memory Ever Allocated : $max_memoryHR $unit" $txt_color +human_readable $per_thread_buffers per_thread_buffersHR 0 +cecho "Configured Max Per-thread Buffers : $per_thread_buffersHR $unit" $txt_color +human_readable $global_buffers global_buffersHR 0 +cecho "Configured Max Global Buffers : $global_buffersHR $unit" $txt_color +human_readable $total_memory total_memoryHR 0 +cecho "Configured Max Memory Limit : $total_memoryHR $unit" $txt_color +# human_readable $effective_tmp_table_size effective_tmp_table_sizeHR 0 +# cecho "Plus $effective_tmp_table_sizeHR $unit per temporary table created" +human_readable $physical_memory physical_memoryHR 2 +cecho "Physical Memory : $physical_memoryHR $unit" $txt_color +if [ $error -eq 1 ] ; then +cecho "\nMax memory limit exceeds 90% of physical memory" $txt_color +else +cecho "Max memory limit seem to be within acceptable norms" $green +fi +unset txt_color +} + +function snarky () { + +## -- Be Snarky -- ## + +fortune=$(which fortune 2>/dev/null) +if [ -z $fortune ] ; then +echo "What the hell sort of straight-lace bastard doesn't have fortune installed?" +else +$fortune +fi +} + +## Required Functions ## + +function login_validation () { +check_for_socket # determine the socket location -- 1st login +check_for_plesk_passwords # determine the login method -- 2nd login +check_mysql_login # determine if mysql is accepting login -- 3rd login +export major_version=$($mysql -Bse 'SELECT SUBSTRING_INDEX(VERSION(), ".", +2)') +export mysql_version_num=$($mysql -Bse "SELECT LEFT(REPLACE(SUBSTRING_INDEX(VERSION(), '-', +1), '.', ''),4)" ) +} + +function shared_info () { +export major_version=$($mysql -Bse 'select substring_index(version(), ".", +2)') +export mysql_version_num=$($mysql -Bse "SELECT LEFT(REPLACE(SUBSTRING_INDEX(VERSION(), '-', +1), '.', ''),4)" ) +mysql_status \'Questions\' questions +# socket_owner=$(find -L $socket -printf '%u\n') +socket_owner=$(ls -nH $socket | awk '{ print $3 }') +} + + +function get_system_info () { + +export OS=$(uname) + +# Get information for various UNIXes +if [ "$OS" = 'Darwin' ]; then +ps_socket=$(netstat -ln | awk '/mysql(d)?\.sock/ { print $9 }') +export physical_memory=$(sysctl -n hw.memsize) +export duflags='' +elif [ "$OS" = 'FreeBSD' ] || [ "$OS" == 'OpenBSD' ]; then +## On FreeBSD must be root to locate sockets. +ps_socket=$(netstat -ln | awk '/mysql(d)?\.sock/ { print $9 }') +export physical_memory=$(sysctl -n hw.realmem) +export duflags='' +elif [ "$OS" = 'Linux' ] ; then +## Includes SWAP +## export physical_memory=$(free -b | grep -v buffers | awk '{ s += $2 } END { printf("%.0f\n", s ) }') +ps_socket=$(netstat -ln | awk '/mysql(d)?\.sock/ { print $9 }') +export physical_memory=$(awk '/^MemTotal/ { printf("%.0f", $2*1024 ) }' < /proc/meminfo) +export duflags='-b' +elif [ "$OS" = 'SunOS' ] ; then +ps_socket=$(netstat -a | awk '/mysql(d)?.sock/ { print $5 }') +export physical_memory=$(prtconf | awk '/^Memory\ size:/ { print $3*1048576 }') +fi +} + + +## Optional Components Groups ## + +function banner_info () { +shared_info +print_banner ; echo +check_mysql_version ; echo +post_uptime_warning ; echo +} + +function misc () { +shared_info +check_slow_queries ; echo +check_binary_log ; echo +check_threads ; echo +check_used_connections ; echo +} + +function memory () { +shared_info +total_memory_used ; echo +check_key_buffer_size ; echo +check_query_cache ; echo +check_sort_operations ; echo +check_join_operations ; echo +} + +function file () { +shared_info +check_open_files ; echo +check_table_cache ; echo +check_tmp_tables ; echo +check_table_scans ; echo +check_table_locking ; echo +} + +function all () { +banner_info +misc +memory +file +# snarky +} + +function prompt () { +prompted='true' +read -p "Username [anonymous] : " user +read -rsp "Password [] : " pass +cecho "\n\c" +read -p "Socket [ /var/lib/mysql/mysql.sock ] : " socket +if [ -z $socket ] ; then +export socket='/var/lib/mysql/mysql.sock' +fi + +if [ -z $pass ] ; then +export mysql="mysql -S $socket -u$user" +export mysqladmin="mysqladmin -S $socket -u$user" +else +export mysql="mysql -S $socket -u$user -p$pass" +export mysqladmin="mysqladmin -S $socket -u$user -p$pass" +fi + +check_for_socket +check_mysql_login + +if [ $? = 1 ] ; then +exit 1 +fi +read -p "Mode to test (see usage:) [all] : " pmode +if [ -z $pmode ] ; then +pmode='all' +fi +case $pmode in +banner | BANNER | header | HEADER | head | HEAD) +banner_info +;; +misc | MISC | miscelaneous ) +misc +;; +mem | memory | MEM | MEMORY ) +memory +;; +file | FILE | disk | DISK ) +file +;; +innodb | INNODB ) +innodb +;; +all | ALL ) +cecho "\n\c" +all +;; +* ) +cecho "Invalid Mode! Valid options are 'banner', 'misc', 'memory', 'file', 'innodb' or 'all'" $boldred +exit 1 +;; +esac +} + +## Address environmental differences ## +get_system_info + + +if [ -z "$1" ] ; then +login_validation +mode='ALL' +elif [ "$1" = "prompt" ] || [ "$1" = "PROMPT" ] ; then +mode=$1 +elif [ "$1" != "prompt" ] || [ "$1" != "PROMPT" ] ; then +login_validation +mode=$1 +fi + +case $mode in +all | ALL ) +cecho "\n\c" +all +;; +mem | memory | MEM | MEMORY ) +cecho "\n\c" +memory +;; +file | FILE | disk | DISK ) +cecho "\n\c" +file +;; +banner | BANNER | header | HEADER | head | HEAD ) +banner_info +;; +misc | MISC | miscelaneous ) +cecho "\n\c" +misc +;; +innodb | INNODB ) +banner_info +check_innodb_status ; echo +;; +prompt | PROMPT ) +prompt +;; +*) +cecho "usage: $0 [ all | banner | file | innodb | memory | misc | promp ]" $boldred +exit 1 +;; +esac diff --git a/agc_2-X/branches/agc_2.2.0/extras/netborder-cpd-1.4.patch b/agc_2-X/branches/agc_2.2.0/extras/netborder-cpd-1.4.patch new file mode 100644 index 00000000..74557145 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/netborder-cpd-1.4.patch @@ -0,0 +1,77 @@ +--- asterisk-1.4.21.2/channels/chan_sip.c 2008-06-03 10:46:24.000000000 -0400 ++++ asterisk-1.4.21.2-new/channels/chan_sip.c 2009-07-07 13:46:04.000000000 -0400 +@@ -1454,6 +1454,7 @@ + static void sip_send_all_registers(void); + + /*--- Parsing SIP requests and responses */ ++static int check_cpd_results(struct sip_pvt *p, struct sip_request *req); + static void append_date(struct sip_request *req); /* Append date to SIP packet */ + static int determine_firstline_parts(struct sip_request *req); + static const struct cfsubscription_types *find_subscription_type(enum subscriptiontype subtype); +@@ -4247,6 +4248,37 @@ + + return _default; + } ++/*! \brief Check for a CPD-Result ++ This looks for a CPD-Result in the sip_request ++ and throws a manager event if it finds one ++ */ ++static int check_cpd_results(struct sip_pvt *p, struct sip_request *req) { ++ const char *cpdr = get_header(req, "CPD-Result");\ ++ /* See if NetBorder had anything to say */ ++ if (!(ast_strlen_zero(cpdr))) { ++ if (p->owner) { ++ /* If so throw a manager event with the result */ ++ manager_event( ++ EVENT_FLAG_SYSTEM, ++ "CPD-Result", ++ "ChannelDriver: SIP\r\nChannel: %s\r\nCallerIDName: %s\r\nUniqueid: %s\r\nResult: %s\r\n", ++ p->owner->name, ++ p->owner->cid.cid_name, ++ p->owner->uniqueid, ++ cpdr ++ ); ++ } else { ++ /* Apparently we can have a CPD-Result and no owner, better not crash it though */ ++ manager_event( ++ EVENT_FLAG_SYSTEM, ++ "CPD-Result", ++ "ChannelDriver: SIP\r\nChannel: UNKNOWN\r\nCallerIDName: UNKNOWN\r\nUniqueid: UNKNOWN\r\nResult: %s\r\n", ++ cpdr ++ ); ++ } ++ } ++ return 0; ++} + + static const char *__get_header(const struct sip_request *req, const char *name, int *start) + { +@@ -6964,6 +6996,7 @@ + char tmp2[SIPBUFSIZE/2]; + const char *l = NULL, *n = NULL; + const char *urioptions = ""; ++ const char *netbordercpd = ";cpd=on"; /* string used to enable NetBorder's CPD */ + + if (ast_test_flag(&p->flags[0], SIP_USEREQPHONE)) { + const char *s = p->username; /* being a string field, cannot be NULL */ +@@ -7050,6 +7083,9 @@ + if (p->options && !ast_strlen_zero(p->options->uri_options)) + ast_build_string(&invite, &invite_max, ";%s", p->options->uri_options); + ++ /* Tell NetBorder to enable CPD */ ++ ast_build_string(&invite, &invite_max, "%s", netbordercpd); ++ + ast_string_field_set(p, uri, invite_buf); + + if (sipmethod == SIP_NOTIFY && !ast_strlen_zero(p->theirtag)) { +@@ -12740,6 +12776,10 @@ + gettag(req, "To", tag, sizeof(tag)); + ast_string_field_set(p, theirtag, tag); + } ++ ++ /* Check if NetBorder had anything to say */ ++ check_cpd_results(p, req); ++ + if (p->relatedpeer && p->method == SIP_OPTIONS) { + /* We don't really care what the response is, just that it replied back. + Well, as long as it's not a 100 response... since we might diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/VD_hangup.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/VD_hangup.agi new file mode 100644 index 00000000..9fdd98c4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/VD_hangup.agi @@ -0,0 +1,456 @@ +#!/usr/bin/perl +# +# VD_hangup.agi version 0.5 *DBI-version* +# +# NOTE: This script is only needed on Asterisk 1.2.X and higher systems +# +# runs when a call hangs up in the second priority behind call_log. This script +# will lookup the uniqueid of the call and/or the callerIDname and update tables +# if it is a VICIDIAL inbound or outbound call that hungup before sent to agent +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => h,1,DeadAGI(call_log.agi,${EXTEN}) +# exten => h,2,DeadAGI(VD_hangup.agi,PRI-----DEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME}) +# +# NOTES: +# - To disable Busy and Disconnect detection change the first field from PRI to NONPRI +# - To disable Debug output to file change the second field from DEBUG to NODEBUG +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60203-1218 - fixed calleridname issue with 1.2 tree for custom CID +# 60314-1250 - Altered to allow for ignoring of AGI-defined status +# 60612-1500 - Added option for text log of hangup codes +# - Added option for PRI hangup code dispositions: BUSY, DISCONNECT +# 60615-1101 - Fixed log updates for CLOSER transfer from fronter calls +# 60719-1118 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60815-1210 - added output options check from database +# 60905-1113 - fixed Closer dropped call issue, added queue_seconds to VDCL +# + +$script = 'VD_hangup.agi'; + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use Asterisk::AGI; +$AGI = new Asterisk::AGI; +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $PRI = $ARGV_vars[0]; + $DEBUG = $ARGV_vars[1]; + $hangup_cause = $ARGV_vars[2]; + $dialstatus = $ARGV_vars[3]; + $dial_time = $ARGV_vars[4]; + $ring_time = $ARGV_vars[5]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; +# ### set the callerid to the ACQS value(calleridname) +# print "SET CALLERID $callerid\n"; +# checkresult($result); +# print STDERR "callerID changed: $callerid\n"; + + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; +# ### set the callerid to the ACQS value(calleridname) +# print "SET CALLERID $callerid\n"; +# checkresult($result); +# print STDERR "callerID changed: $callerid\n"; + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +if ($DEBUG =~ /^DEBUG$/) +{ + ### open the hangup cause out file for writing ### + open(out, ">>$PATHlogs/HANGUP_cause-output.txt") + || die "Can't open $PATHlogs/HANGUP_cause-output.txt: $!\n"; + + print out "$now_date|$hangup_cause|$dialstatus|$dial_time|$ring_time|$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|\n"; + + close(out); +} +else +{ +if ($AGILOG) {$agi_string = "DEBUG: $DEBUG"; &agi_output;} +} + + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "VD_hangup : $callerid $channel $priority $CIDlead_id"; &agi_output;} + +if ($channel =~ /^Local/) +{ + if ( ($PRI =~ /^PRI$/) && ($callerid =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) && ( ($dialstatus =~ /BUSY/) || ( ($dialstatus =~ /CHANUNAVAIL/) && ($hangup_cause =~ /^1$|^28$/) ) ) ) + { + if ($dialstatus =~ /BUSY/) {$VDL_status = 'B'; $VDAC_status = 'BUSY';} + if ($dialstatus =~ /CHANUNAVAIL/) {$VDL_status = 'DC'; $VDAC_status = 'DISCONNECT';} + + $stmtA = "UPDATE vicidial_auto_calls set status='$VDAC_status' where callerid = '$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAC update: |$affected_rows|$CIDlead_id"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='$VDL_status' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='$VDL_status' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid|"; &agi_output;} + + $dbhA->disconnect(); + } + else + { + if ($AGILOG) {$agi_string = "-- VDhangup Local DEBUG: |$PRI|$callerid|$dialstatus|$hangup_cause|"; &agi_output;} + } + + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} + if ($priority > 2) {sleep(1);} + exit; +} + + +########## FIND AND DELETE vicidial_auto_calls ########## +$stmtA = "SELECT lead_id,callerid FROM vicidial_auto_calls where uniqueid = '$uniqueid' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_countCUSTDATA=0; +while ($sthArows > $rec_countCUSTDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_lead_id = "$aryA[0]"; + $VD_callerid = "$aryA[1]"; + $rec_countCUSTDATA++; + } +$sthA->finish(); + +if (!$rec_countCUSTDATA) + { + if ($AGILOG) {$agi_string = "VD hangup: no VDAC record found: $uniqueid $calleridname"; &agi_output;} + exit; + } + +$stmtA = "DELETE FROM vicidial_auto_calls where uniqueid='$uniqueid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAC record deleted: |$affected_rows| |$VD_lead_id|$uniqueid|$VD_callerid|$VARserver_ip"; &agi_output;} + + +########## FIND AND UPDATE vicidial_log ########## +$stmtA = "SELECT start_epoch,status FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$VD_lead_id' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $epc_countCUSTDATA=0; + $VD_closecallid=''; +while ($sthArows > $rec_countCUSTDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_start_epoch = "$aryA[0]"; + $VD_status = "$aryA[1]"; + $epc_countCUSTDATA++; + } +$sthA->finish(); + +if (!$epc_countCUSTDATA) + { + if ($AGILOG) {$agi_string = "no VDL record found: $uniqueid $calleridname $VD_lead_id $uniqueid"; &agi_output;} + + $secX = time(); + $Rtarget = ($secX - 21600); # look for VDCL entry within last 6 hours + ($Rsec,$Rmin,$Rhour,$Rmday,$Rmon,$Ryear,$Rwday,$Ryday,$Risdst) = localtime($Rtarget); + $Ryear = ($Ryear + 1900); + $Rmon++; + if ($Rmon < 10) {$Rmon = "0$Rmon";} + if ($Rmday < 10) {$Rmday = "0$Rmday";} + if ($Rhour < 10) {$Rhour = "0$Rhour";} + if ($Rmin < 10) {$Rmin = "0$Rmin";} + if ($Rsec < 10) {$Rsec = "0$Rsec";} + $RSQLdate = "$Ryear-$Rmon-$Rmday $Rhour:$Rmin:$Rsec"; + + $stmtA = "SELECT start_epoch,status,closecallid FROM vicidial_closer_log where lead_id = '$VD_lead_id' and call_date > \"$RSQLdate\" order by call_date desc limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $epc_countCUSTDATA=0; + $VD_closecallid=''; + while ($sthArows > $epc_countCUSTDATA) + { + @aryA = $sthA->fetchrow_array; + $VD_start_epoch = "$aryA[0]"; + $VD_status = "$aryA[1]"; + $VD_closecallid = "$aryA[2]"; + $epc_countCUSTDATA++; + } + $sthA->finish(); + } +if (!$epc_countCUSTDATA) + { + if ($AGILOG) {$agi_string = "no VDL or VDCL record found: $uniqueid $calleridname $VD_lead_id $uniqueid"; &agi_output;} + exit; + } +$VD_seconds = ($now_date_epoch - $VD_start_epoch); + +$SQL_status=''; +if ($VD_status =~ /^NA$|^NEW$|^QUEUE$|^XFER$/) + { + $SQL_status = "status='DROP',"; + + ########## FIND AND UPDATE vicidial_list ########## + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$VD_lead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$VD_lead_id"; &agi_output;} + } + +$stmtA = "UPDATE vicidial_log set $SQL_status end_epoch='$now_date_epoch',length_in_sec='$VD_seconds' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid|$VD_status|"; &agi_output;} + + + + +########## UPDATE vicidial_closer_log ########## +if (length($VD_closecallid) < 1) + { + if ($AGILOG) {$agi_string = "no VDCL record found: $uniqueid $calleridname $VD_lead_id $uniqueid"; &agi_output;} + exit; + } +if ($VD_status =~ /^DONE$|^INCALL$|^XFER$/) + {$VDCLSQL_status = "";} +else + {$VDCLSQL_status = "status='DROP',queue_seconds='$VD_seconds',";} + +$VD_seconds = ($now_date_epoch - $VD_start_epoch); +$stmtA = "UPDATE vicidial_closer_log set $VDCLSQL_status end_epoch='$now_date_epoch',length_in_sec='$VD_seconds' where closecallid = '$VD_closecallid';"; + if ($AGILOG) {$agi_string = "|$VDCLSQL_status|$VD_status|\n|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL update: |$affected_rows|$uniqueid|$VD_closecallid|"; &agi_output;} + + + +$dbhA->disconnect(); + + + +exit; + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer.agi new file mode 100644 index 00000000..8c8b2bbd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer.agi @@ -0,0 +1,634 @@ +#!/usr/bin/perl +# +# agi-VDAD_LB_closer.agi version 0.4 *DBI-version* +# Load Balanced - when a call comes in on this server the script looks for an agent +# on any server on the network on the same campaign to send call to. +# +# runs when a call comes in from a VICIDIAL fronter. This script will +# send the calls out to the closers that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will send the call to the specified Vmail +# box or hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;inbound VICIDIAL calls: +#exten => _90009.,1,Answer ; Answer the line +#exten => _90009.,2,AGI(agi-VDADcloser.agi,${EXTEN}-----START) +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1107 - Added drop second/message/exten options from inbound_group +# 60809-1056 - Changed to DBI by Marin Blu +# - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDAD_LB_closer.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + ### allow for internal PRI transfer data string "90009*CL_uk3survy_*8301*10000123*universal***" + if ($extension =~ /^900\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $channel_group = $EXT_vars[1]; # name of the parked group + $inbound_number = $EXT_vars[2]; # extension to send call to after parsing + $parked_by = $EXT_vars[3]; # leadID + $park_extension = $EXT_vars[4]; # filename of the on-hold music file + $comment_d = $EXT_vars[5]; # N/A + $comment_e = $EXT_vars[6]; # N/A + + $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} + # JmmddhhmmssLLLLLLLLL + $JqueryCID = "J$CIDdate$PADlead_id"; + $callerid = $JqueryCID; + ### set the callerid to the filename of the audio for on-hold + print "SET CALLERID $JqueryCID\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $JqueryCID"; &agi_output;} + } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|"; &agi_output;} + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### Grab call parameters from vicidial_list table +$cbc=0; +$stmtA = "SELECT phone_number,phone_code,user FROM vicidial_list where lead_id='$CIDlead_id' limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$channel_group"; + $VDADphone = "$aryA[0]"; + $VDADphone_code = "$aryA[1]"; + $VDADlead_id = "$CIDlead_id"; + $VDADfronter = "$aryA[2]"; + $cbc++; + } +$sthA->finish(); + + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$CIDlead_id','$uniqueid','$callerid','$channel','$VDADphone_code','$VDADphone','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$VDADlead_id|$CIDlead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$CIDlead_id','$VDADcampaign','$SQLdate','$VDADphone_code','$VDADphone','$VDADfronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$VDADlead_id|$CIDlead_id|insert to vicidial_xfer_log"; &agi_output;} + + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip' where status IN('CLOSER','READY') and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $VDADcampaign %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$VDADcampaign|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status = 'QUEUE' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$CIDlead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$CIDlead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + $VDADremDIALstr=''; + if( ($VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/) && ($VDADserver_ip !~ /$VARserver_ip/) ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$CIDlead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$CIDlead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +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++; + } +} + +sub leading_zero($) { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer_inbound.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer_inbound.agi new file mode 100644 index 00000000..a2017eb6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer_inbound.agi @@ -0,0 +1,765 @@ +#!/usr/bin/perl +# +# agi-VDAD_LB_closer_inbound.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# ## THIS IS THE LOAD-BALANCED VERSION OF THE SCRIPT ## +# +# if there are no available agents on any server, it will check every second until an agent becomes available, +# if at the end of 360 seconds it has not found an agent it will hangup the call and mark it as dropped +# +# This version asks for a 4-digit pin number to be entered and passed on as the fronter value to the closer +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDAD_LO_closer_inbound.agi,CL_GALLERIA-----7274515134-----Closer-----park----------999-----1) +#exten => 1234,3,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1122 - Added drop second/message/exten options from inbound_group +# 60809-1056 - Changed to DBI by Marin Blu +# - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDAD_LB_closer_inbound.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + $phone_number=''; + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +&enter_pin_number; + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','XFER','$phone_code','$phone_number','$fronter','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$new_lead_id|$fronter|insert to vicidial_log: $uniqueid"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$new_lead_id','$channel_group','$SQLdate','$phone_code','$phone_number','$fronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$new_lead_id|insert to vicidial_xfer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip' where status IN('CLOSER','READY') and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status = 'QUEUE' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$new_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + if( ($VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/) && ($VDADserver_ip !~ /$VARserver_ip/) ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +sub enter_pin_number +{ +# please enter the pin number followed by the pound key +# please enter your 4 digit pin number + +$digit=''; +undef $digit; +$interrupt_digit=''; +undef $interrupt_digit; + +$interrupt_digit = $AGI->stream_file('four_digit_id','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('30000')); # wait 30 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++; +# } + +while ( ($digit_loop_counter < 4) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=4; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} +} + + + + +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++; + } +} + +sub leading_zero($) { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. + + + +### you're call is very important to us, please stay on the line and you will be transferred to the next available agent + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer_inboundCID.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer_inboundCID.agi new file mode 100644 index 00000000..98de4dbb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_closer_inboundCID.agi @@ -0,0 +1,691 @@ +#!/usr/bin/perl +# +# agi-VDAD_LB_closer_inboundCID.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# ## THIS IS THE LOAD-BALANCED VERSION OF THE SCRIPT ## +# +# if there are no available agents on any server, it will check every second until an agent becomes available, +# if at the end of 360 seconds it has not found an agent it will hangup the call and mark it as dropped +# +# This version looks for the callerID from the telco +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDAD_LB_closer_inboundCID.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1) +#exten => 1234,3,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1122 - Added drop second/message/exten options from inbound_group +# 60809-1056 - Changed to DBI by Marin Blu +# - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDAD_LB_closer_inboundCID.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} + if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +if (length($pin) < 1) {$pin='VDAD';} + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00','$VLcomments');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','XFER','$phone_code','$phone_number','$fronter','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$new_lead_id|$fronter|insert to vicidial_log: $uniqueid"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$new_lead_id','$channel_group','$SQLdate','$phone_code','$phone_number','$fronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$new_lead_id|insert to vicidial_xfer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip' where status IN('CLOSER','READY') and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status = 'QUEUE' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$new_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + if( ($VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/) && ($VDADserver_ip !~ /$VARserver_ip/) ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + + + +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++; + } +} + +sub leading_zero($) { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. + + + +### you're call is very important to us, please stay on the line and you will be transferred to the next available agent + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_transfer.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_transfer.agi new file mode 100644 index 00000000..d0987ea4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LB_transfer.agi @@ -0,0 +1,804 @@ +#!/usr/bin/perl +# +# agi-VDAD_LB_transfer.agi version 2.0.4 *DBI-version* +# Load Balanced - when a call comes in on this server the script looks for an agent +# on any server on the network on the same campaign to send call to. +# +# runs when a call comes in from the VICIDIAL_auto_dialer. This script will +# send the calls out to the reps that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 10 seconds(default) it has not found an agent it will hangup the call and mark it as dropped. +# +# this version "LB" Load Balance will seek out agents on the local server and the +# same campaign on other servers and transfer the calls to them over IAX trunks. +# the IAX user trunks are named based on the IP address of the home server: +# The server 10.10.10.15 would have a username of 10x10x10x15 in the iax.conf on the other servers +# Also, the home server needs to have the trunks registered, for speed and channel consistency +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => 8365,1,AGI(call_log.agi,${EXTEN}) +# exten => 8365,2,AGI(agi-VDAD_LB_transfer.agi,${EXTEN}) +# +# +# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# +# CHANGELOG: +# 51118-2102 - First build based on agi-VDADtransfer.agi script +# 60119-1408 - Fixed calleridname issue with 1.2 tree for custom CID +# 60503-1043 - Added safe harbor and drop second options from campaign +# 60731-1441 - Changed to use DBI-DBD::mysql +# - Changed to use /etc/astguiclient.conf for configs +# 60816-1034 - Added output options check from database +# - Changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - Changed look for agent every 0.25 second for first 4 sec on hold +# 70215-1052 - Added QueueMetrics optional logging +# 70223-1101 - Added QueueMetrics ENTERQUEUE prepend option +# 70305-1251 - Fixed problems where the same call will run this script twice +# 71116-1045 - added fewest_calls and campaign_weight agent call routing options +# + +$script = 'agi-VDAD_LB_transfer.agi'; + +$DROP_TIME = 10; # default number of seconds to wait until you drop a waiting call + +($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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks,agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + $DBagi_output = "$aryA[6]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +$start_time=$now_date; +$CIDdate = "$mon$mday$hour$min$sec"; +$tsSQLdate = "$year$mon$mday$hour$min$sec"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; +$SQLdateBEGIN = $SQLdate; + +$secX = time(); +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|$AST_ver|$priority|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_live_agents where callerid='$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Pseudo_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($Pseudo_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START PSEUDO DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where callerid='$callerid' and status IN('LIVE','XFER');"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dialplan_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($dialplan_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START DIALPLAN DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + + + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + ### Grab campaign values from the database + $stmtA = "SELECT drop_call_seconds,safe_harbor_message,safe_harbor_exten,concurrent_transfers FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBsafe_harbor_message = "$aryA[1]"; + $DBsafe_harbor_exten = "$aryA[2]"; + $DBconcurrent_transfers = "$aryA[3]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBsafe_harbor_message) {$safe_harbor_message = $DBsafe_harbor_message;} + if ($DBsafe_harbor_exten) {$safe_harbor_exten = $DBsafe_harbor_exten;} + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDAD','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = "$aryA[0]"; + $queuemetrics_server_ip = "$aryA[1]"; + $queuemetrics_dbname = "$aryA[2]"; + $queuemetrics_login= "$aryA[3]"; + $queuemetrics_pass = "$aryA[4]"; + $queuemetrics_log_id = "$aryA[5]"; + $queuemetrics_eq_prepend = "$aryA[6]"; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $stmtA = "SELECT phone_number FROM vicidial_auto_calls where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $phone_number = "$aryA[0]"; + $data2 = "$phone_number"; + $rec_count++; + } + $sthA->finish(); + + if ( (length($queuemetrics_eq_prepend) > 0) && ($queuemetrics_eq_prepend !~ /NONE/) ) + { + $stmtA = "SELECT $queuemetrics_eq_prepend FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + $DASH='-'; + @aryA = $sthA->fetchrow_array; + $QMprepend = "$aryA[0]"; + $rec_count++; + $data2 = "$QMprepend$DASH$phone_number"; + } + $sthA->finish(); + } + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='ENTERQUEUE',data2='$data2',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + } + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < $DROP_TIME) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + $DROP_TIME); + } + } +$stmtA = "SELECT next_agent_call FROM vicidial_campaigns where campaign_id='$VDADcampaign';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +$agent_call_order=''; +if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} +if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} +if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} +if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} +if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} +if ($CAMP_callorder =~ /fewest_calls/i) {$agent_call_order = 'order by calls_today,last_call_finish';} + + $rec_countWAIT=0; +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $DBconcurrent_transfers = ($active_agents / 10); + $DBconcurrent_transfers = sprintf("%.0f", $DBconcurrent_transfers); + $DBconcurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $DBconcurrent_transfers ($active_agents)|"; &agi_output;} + } +$sthA->finish(); +if ($rec_countWAIT < $DBconcurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', call_server_ip='$VARserver_ip', callerid='$callerid' where status = 'READY' and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $r=0; + $VDADuser=''; + while ( (length($VDADuser)<1) && ($r<3) ) + { + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status IN('QUEUE','INCALL') and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $rec_count++; + } + $sthA->finish(); + $r++; + if ($r > 1) + { + if ($AGILOG) + {$agi_string = "EEEEEEEEEE vla UPDATE DELAY!!! |$callerid|$r|"; &agi_output;} + + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + if ($r > 2) + { + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where callerid='$callerid' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $rec_count++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "FFFFFFFFFF vla OR SELECT |$callerid|$VDADuser|"; &agi_output;} + } + } + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + $VDADremDIALstr=''; + if( ($VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/) && ($VDADserver_ip !~ /$VARserver_ip/) ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } +else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER REMOTE WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='EXITWITHTIMEOUT',data1='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($safe_harbor_message =~ /Y/) + { + $DROPexten = "$safe_harbor_exten"; + } + else + { + $stmtA = "SELECT voicemail_ext FROM vicidial_campaigns where campaign_id = '$VDADcampaign' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $rec_count++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} +} + + + + $dbhA->disconnect(); + + + +exit; + +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++; + } +} + +sub leading_zero($) { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_closer.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_closer.agi new file mode 100644 index 00000000..863b5519 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_closer.agi @@ -0,0 +1,723 @@ +#!/usr/bin/perl +# +# agi-VDAD_LO_closer.agi version 0.4 *DBI-version* +# Overflow Balanced - when a call comes in on this server the script looks for an agent +# on this server to send call to. If none available it looks for the next available +# agent on any other server on the network on the same campaign to send call to. +# +# runs when a call comes in from a VICIDIAL fronter. This script will +# send the calls out to the closers that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will send the call to the specified Vmail +# box or hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;inbound VICIDIAL calls: +#exten => _90009.,1,Answer ; Answer the line +#exten => _90009.,2,AGI(agi-VDADcloser.agi,${EXTEN}-----START) +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1150 - Added drop second/message/exten options from inbound_group +# 60809-1056 - Changed to DBI by Marin Blu +# - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDAD_LO_closer.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + ### allow for internal PRI transfer data string "90009*CL_uk3survy_*8301*10000123*universal***" + if ($extension =~ /^900\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $channel_group = $EXT_vars[1]; # name of the parked group + $inbound_number = $EXT_vars[2]; # extension to send call to after parsing + $parked_by = $EXT_vars[3]; # leadID + $park_extension = $EXT_vars[4]; # filename of the on-hold music file + $comment_d = $EXT_vars[5]; # N/A + $comment_e = $EXT_vars[6]; # N/A + + $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} + # JmmddhhmmssLLLLLLLLL + $JqueryCID = "J$CIDdate$PADlead_id"; + $callerid = $JqueryCID; + ### set the callerid to the filename of the audio for on-hold + print "SET CALLERID $JqueryCID\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $JqueryCID"; &agi_output;} + } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|"; &agi_output;} + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### Grab call parameters from vicidial_list table +$cbc=0; +$stmtA = "SELECT phone_number,phone_code,user FROM vicidial_list where lead_id='$CIDlead_id' limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$channel_group"; + $VDADphone = "$aryA[0]"; + $VDADphone_code = "$aryA[1]"; + $VDADlead_id = "$CIDlead_id"; + $VDADfronter = "$aryA[2]"; + $cbc++; + } +$sthA->finish(); + + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$CIDlead_id','$uniqueid','$callerid','$channel','$VDADphone_code','$VDADphone','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$VDADlead_id|$CIDlead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$CIDlead_id','$VDADcampaign','$SQLdate','$VDADphone_code','$VDADphone','$VDADfronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$VDADlead_id|$CIDlead_id|insert to vicidial_xfer_log"; &agi_output;} + + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $VDADcampaign %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$VDADcampaign|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$CIDlead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$CIDlead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$CIDlead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + +################################################################################################### +### noone found locally available, now check for someone on another server to take the call + $cbc=0; + $rec_countWAITrem=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip!='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAITrem = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAITrem < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip' where status IN('CLOSER','READY') and server_ip!='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $VDADcampaign %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$DROP_TIME|$drop_timer|$affected_rows|update of vla table: $channel_group|\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status = 'QUEUE' and server_ip!='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER REMOTE: |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$CIDlead_id' order by call_date desc limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL vicidial_xfer_log update: |$affected_rows|$new_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + if( $VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$CIDlead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available remote agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER REMOTE WAIT: |$rec_countWAITrem|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$CIDlead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +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++; + } +} + +sub leading_zero($) { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_closer_inbound.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_closer_inbound.agi new file mode 100644 index 00000000..9b77c4b5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_closer_inbound.agi @@ -0,0 +1,850 @@ +#!/usr/bin/perl +# +# agi-VDAD_LO_closer_inbound.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# ## THIS IS THE LOAD-BALANCED-OVERFLOW VERSION OF THE SCRIPT ## +# +# if there are no available agents on this server, it will check for available agents on other servers, +# then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# This version asks for a 4-digit pin number to be entered and passed on as the fronter value to the closer +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDAD_LO_closer_inbound.agi,CL_GALLERIA-----7274515134-----Closer-----park----------999-----1) +#exten => 1234,3,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1214 - Added drop second/message/exten options from inbound_group +# 60809-1056 - Changed to DBI by Marin Blu +# - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDAD_LO_closer_inbound.agi'; + +$DROP_TIME = 360; ### default number of seconds to wait until you drop a waiting call + + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + $phone_number=''; + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +&enter_pin_number; + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','XFER','$phone_code','$phone_number','$fronter','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$new_lead_id|$fronter|insert to vicidial_log: $uniqueid"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$new_lead_id','$channel_group','$SQLdate','$phone_code','$phone_number','$fronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$new_lead_id|insert to vicidial_xfer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$new_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +################################################################################################### +### noone found locally available, now check for someone on another server to take the call + $cbc=0; + $rec_countWAITrem=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip!='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAITrem = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAITrem < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid', call_server_ip='$VARserver_ip' where status IN('CLOSER','READY') and server_ip!='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$DROP_TIME|$drop_timer|$affected_rows|update of vla table: $channel_group|\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status = 'QUEUE' and server_ip!='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER REMOTE: |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$new_lead_id' order by call_date desc limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL vicidial_xfer_log update: |$affected_rows|$new_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|update of vcl table: $new_lead_id\n|$stmtA|"; &agi_output;} + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + if( $VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available remote agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER REMOTE WAIT: |$rec_countWAITrem|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +sub enter_pin_number +{ +# please enter the pin number followed by the pound key +# please enter your 4 digit pin number + +$digit=''; +undef $digit; +$interrupt_digit=''; +undef $interrupt_digit; + +$interrupt_digit = $AGI->stream_file('four_digit_id','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('30000')); # wait 30 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++; +# } + +while ( ($digit_loop_counter < 4) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=4; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} +} + + + + +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++; + } +} + + + +### you're call is very important to us, please stay on the line and you will be transferred to the next available agent + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_transfer.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_transfer.agi new file mode 100644 index 00000000..9155f807 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDAD_LO_transfer.agi @@ -0,0 +1,952 @@ +#!/usr/bin/perl +# +# agi-VDAD_LO_transfer.agi version 2.0.4 *DBI-version* +# Overflow Balanced - when a call comes in on this server the script looks for an agent +# on this server to send call to. If none available it looks for the next available +# agent on any other server on the network on the same campaign to send call to. +# +# runs when a call comes in from the VICIDIAL_auto_dialer. This script will +# send the calls out to the reps that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 20 seconds it has not found an agent it will hangup the call and mark it as dropped. +# +# this version "LO" Load Overflow checks first with local agents then it will seek out agents on the +# same campaign on other servers and transfer the calls to them over IAX trunks. +# the IAX user trunks are named based on the IP address of the home server: +# The server 10.10.10.15 would have a username of 10x10x10x15 in the iax.conf on the other servers +# Also, the home server needs to have the trunks registered, for speed and channel consistency +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => 8365,1,AGI(call_log.agi,${EXTEN}) +# exten => 8365,2,AGI(agi-VDAD_LO_transfer.agi,${EXTEN}) +# +# +# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# +# changes: +# 51118-2102 - First build based on agi-VDADtransfer.agi script +# 60119-1408 - Fixed calleridname issue with 1.2 tree for custom CID +# 60503-1048 - Added safe harbor and drop second options from campaign +# 60731-1441 - Changed to use DBI-DBD::mysql +# - Changed to use /etc/astguiclient.conf for configs +# 60816-1034 - Added output options check from database +# - Changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - Changed look for agent every 0.25 second for first 4 sec on hold +# 70215-1052 - Added QueueMetrics optional logging +# 70223-1101 - Added QueueMetrics ENTERQUEUE prepend option +# 70305-1251 - Fixed problems where the same call will run this script twice +# 71116-1045 - added fewest_calls and campaign_weight agent call routing options +# + +$script = 'agi-VDAD_LO_transfer.agi'; + +$DROP_TIME = 10; # default number of seconds to wait until you drop a waiting call + +($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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks,agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + $DBagi_output = "$aryA[6]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +$start_time=$now_date; +$CIDdate = "$mon$mday$hour$min$sec"; +$tsSQLdate = "$year$mon$mday$hour$min$sec"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; +$SQLdateBEGIN = $SQLdate; + +$secX = time(); +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|$AST_ver|$priority|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_live_agents where callerid='$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Pseudo_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($Pseudo_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START PSEUDO DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where callerid='$callerid' and status IN('LIVE','XFER');"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dialplan_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($dialplan_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START DIALPLAN DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + + + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + ### Grab campaign values from the database + $stmtA = "SELECT drop_call_seconds,safe_harbor_message,safe_harbor_exten,concurrent_transfers FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBsafe_harbor_message = "$aryA[1]"; + $DBsafe_harbor_exten = "$aryA[2]"; + $DBconcurrent_transfers = "$aryA[3]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBsafe_harbor_message) {$safe_harbor_message = $DBsafe_harbor_message;} + if ($DBsafe_harbor_exten) {$safe_harbor_exten = $DBsafe_harbor_exten;} + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDAD','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = "$aryA[0]"; + $queuemetrics_server_ip = "$aryA[1]"; + $queuemetrics_dbname = "$aryA[2]"; + $queuemetrics_login= "$aryA[3]"; + $queuemetrics_pass = "$aryA[4]"; + $queuemetrics_log_id = "$aryA[5]"; + $queuemetrics_eq_prepend = "$aryA[6]"; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $stmtA = "SELECT phone_number FROM vicidial_auto_calls where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $phone_number = "$aryA[0]"; + $data2 = "$phone_number"; + $rec_count++; + } + $sthA->finish(); + + if ( (length($queuemetrics_eq_prepend) > 0) && ($queuemetrics_eq_prepend !~ /NONE/) ) + { + $stmtA = "SELECT $queuemetrics_eq_prepend FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + $DASH='-'; + @aryA = $sthA->fetchrow_array; + $QMprepend = "$aryA[0]"; + $rec_count++; + $data2 = "$QMprepend$DASH$phone_number"; + } + $sthA->finish(); + } + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='ENTERQUEUE',data2='$data2',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + } + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < $DROP_TIME) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + $DROP_TIME); + } + } +$stmtA = "SELECT next_agent_call FROM vicidial_campaigns where campaign_id='$VDADcampaign';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +$agent_call_order=''; +if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} +if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} +if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} +if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} +if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} +if ($CAMP_callorder =~ /fewest_calls/i) {$agent_call_order = 'order by calls_today,last_call_finish';} + + $rec_countWAIT=0; +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $concurrent_transfers = ($active_agents / 10); + $concurrent_transfers = sprintf("%.0f", $concurrent_transfers); + $concurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $concurrent_transfers ($active_agents)|"; &agi_output;} + } +else {$concurrent_transfers = $DBconcurrent_transfers;} +$sthA->finish(); +if ($rec_countWAIT < $concurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', call_server_ip='$VARserver_ip', callerid='$callerid' where status = 'READY' and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $r=0; + $VDADuser=''; + while ( (length($VDADuser)<1) && ($r<3) ) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status IN('QUEUE','INCALL') and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + $r++; + if ($r > 1) + { + if ($AGILOG) {$agi_string = "EEEEEEEEEE vla UPDATE DELAY!!! |$callerid|$r|"; &agi_output;} + + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + if ($r > 2) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where callerid='$callerid' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "FFFFFFFFFF vla OR SELECT |$callerid|$VDADuser|"; &agi_output;} + } + } + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } +else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +################################################################################################### +### noone found locally available, now check for someone on another server to take the call + + $rec_countWAITrem=0; +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip!='$VARserver_ip' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAITrem = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where server_ip!='$VARserver_ip' and campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $concurrent_transfers = ($active_agents / 10); + $concurrent_transfers = sprintf("%.0f", $concurrent_transfers); + $concurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $concurrent_transfers ($active_agents)|"; &agi_output;} + } +else {$concurrent_transfers = $DBconcurrent_transfers;} +$sthA->finish(); +if ($rec_countWAITrem < $concurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', call_server_ip='$VARserver_ip', callerid='$callerid' where status = 'READY' and server_ip!='$VARserver_ip' and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $r=0; + $VDADuser=''; + while ( (length($VDADuser)<1) && ($r<3) ) + { + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where status IN('QUEUE','INCALL') and server_ip!='$VARserver_ip' and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $rec_count++; + } + $sthA->finish(); + $r++; + if ($r > 1) + { + if ($AGILOG) {$agi_string = "EEEEEEEEEE vla UPDATE DELAY!!! |$callerid|$r|"; &agi_output;} + + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + if ($r > 2) + { + $stmtA = "SELECT conf_exten,user,extension,server_ip FROM vicidial_live_agents where callerid='$callerid' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $VDADserver_ip = "$aryA[3]"; + $rec_count++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "FFFFFFFFFF vla OR SELECT |$callerid|$VDADuser|"; &agi_output;} + } + } + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER REMOTE: |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + ### format the remote server dialstring to get the call to the overflow agent meetme room + $S='*'; + if( $VDADserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VDADremDIALstr = "$a$S$b$S$c$S$d$S"; + } + $VDADremDIALstr .= "$VDADconf_exten"; + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADremDIALstr"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADremDIALstr\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } +else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER REMOTE WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='EXITWITHTIMEOUT',data1='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($safe_harbor_message =~ /Y/) + { + $DROPexten = "$safe_harbor_exten"; + } + else + { + $stmtA = "SELECT voicemail_ext FROM vicidial_campaigns where campaign_id = '$VDADcampaign' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $rec_count++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} +} + + + + $dbhA->disconnect(); + + + +exit; + +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++; + } +} + +sub leading_zero($) { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; +} # End of the leading_zero() routine. + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser.agi new file mode 100644 index 00000000..2993b945 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser.agi @@ -0,0 +1,629 @@ +#!/usr/bin/perl +# +# agi-VDADcloser.agi version 0.6 *DBI-version* +# +# runs when a call comes in from a VICIDIAL fronter. This script will +# send the calls out to the closers that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will send the call to the specified Vmail +# box or hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;inbound VICIDIAL calls: +#exten => _90009.,1,Answer ; Answer the line +#exten => _90009.,2,AGI(agi-VDADcloser.agi,${EXTEN}-----START) +# +# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# +# CHANGELOG: +# 60503-1242 - Added drop second/message/exten options from inbound_group +# 60811-1127 - Changed to DBI +# 60811-1145 - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70212-1252 - Fixed issue with Local/ channel transfers on same server +# + +$script = 'agi-VDADcloser.agi'; + +$DROP_TIME = 360; ### default number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + ### allow for internal PRI transfer data string "90009*CL_uk3survy_*8301*10000123*universal***" + if ($extension =~ /^900\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $channel_group = $EXT_vars[1]; # name of the parked group + $inbound_number = $EXT_vars[2]; # extension to send call to after parsing + $parked_by = $EXT_vars[3]; # leadID + $park_extension = $EXT_vars[4]; # filename of the on-hold music file + $comment_d = $EXT_vars[5]; # N/A + $comment_e = $EXT_vars[6]; # N/A + + $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} + # JmmddhhmmssLLLLLLLLL + $JqueryCID = "J$CIDdate$PADlead_id"; + $callerid = $JqueryCID; + ### set the callerid to the filename of the audio for on-hold + print "SET CALLERID $JqueryCID\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $JqueryCID"; &agi_output;} + } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|"; &agi_output;} + +if ($channel =~ /Local/i) +{ + if ($inbound_number =~ /CXFER/) + { + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: CXFER OVERRIDE- $priority"; &agi_output;} + } + else + { + if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} + exit; + } +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### Grab call parameters from vicidial_list table +$cbc=0; +$rec_countCUSTDATA=0; +$stmtA = "SELECT phone_number,phone_code,user FROM vicidial_list where lead_id='$CIDlead_id' limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$channel_group"; + $VDADphone = "$aryA[0]"; + $VDADphone_code = "$aryA[1]"; + $VDADlead_id = "$CIDlead_id"; + $VDADfronter = "$aryA[2]"; + $cbc++; + } +$sthA->finish(); + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$CIDlead_id','$uniqueid','$callerid','$channel','$VDADphone_code','$VDADphone','$SQLdate','IN','LIVE-0')"; +$affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$affected_rows|$stmtA|"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$affected_rows|$VDADlead_id|$CIDlead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$CIDlead_id','$VDADcampaign','$SQLdate','$VDADphone_code','$VDADphone','$VDADfronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$affected_rows|$VDADlead_id|$CIDlead_id|insert to vicidial_xfer_log"; &agi_output;} + + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $cbc=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $VDADcampaign %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$VDADcampaign|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $cbc=0; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + if ($affected_rows < 1) + { + $stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','CLOSER','$CIDlead_id','$uniqueid','$callerid','$channel','$VDADphone_code','$VDADphone','$SQLdate','IN','CLOSER-$drop_timer')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$affected_rows|VDAC-reinsert|$stmtA|"; &agi_output;} + } + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$CIDlead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$CIDlead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$CIDlead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows < 1) + { + $stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$CIDlead_id','$uniqueid','$callerid','$channel','$VDADphone_code','$VDADphone','$SQLdate','IN','LIVE-$drop_timer')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "$affected_rows|VDAC-reinsert|$stmtA|"; &agi_output;} + } + + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$CIDlead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +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++; + } +} + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_PHONE.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_PHONE.agi new file mode 100644 index 00000000..ceb8dd13 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_PHONE.agi @@ -0,0 +1,653 @@ +#!/usr/bin/perl +# +# agi-VDADcloser_PHONE.agi version 0.5 *DBI-version* +# +# runs when a call comes in from a VICIDIAL fronter from a foreign location. This script will +# send the calls out to the closers that are logged in. Customer data is not supplied aside from phone number, +# because the data resides on the foreign system. It is recommended that the WEB FORM page used for this would +# lookup the customer info from the foreign server as an alternate to doing the lookup in this script +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will hangup the call and mark it as dropped or +# if voicemail is defined, the call will go to voicemail +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;inbound VICIDIAL calls: +#exten => _90009.,1,Answer ; Answer the line +#exten => _90009.,2,AGI(agi-VDADcloser_PHONE.agi,${EXTEN}-----START) +# +# +#AGI Environment Dump: +# -- accountcode = +# -- callerid = unknown +# -- channel = Zap/26-1 +# -- context = default +# -- dnid = 90009*CL_MWCOF_L**2470995**7275551212*12345* +# -- enhanced = 0.0 +# -- extension = 90009*CL_MWCOF_L**2470995**7275551212*12345* +# -- language = en +# -- priority = 4 +# -- rdnis = unknown +# -- request = agi-VDADcloser_PHONE.agi +# -- type = Zap +# -- uniqueid = 1110912481.2331 +#AGI Environment Dump: |1110912481.2331|Zap/26-1|90009*CL_MWCOF_L**2470995**7275551212*12345*|Zap|J0315134801002470995| +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1243 - Added drop second/message/exten options from inbound_group +# 60811-1100 - Changed to DBI +# 60811-1145 - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDADcloser_PHONE.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + ### allow for internal PRI transfer data string "90009*CL_uk3survy_*8301*10000123*universal***" + ### 90009*CL_MWCOF_L**2470995**7275551212*12345* + if ($extension =~ /^900\d\d\*|^8900\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $referring_extension = $EXT_vars[0]; # initial extension sent + $channel_group = $EXT_vars[1]; # name of the parked group + $inbound_number = $EXT_vars[2]; # extension to send call to after parsing + $parked_by = $EXT_vars[3]; # leadID + $park_extension = $EXT_vars[4]; # filename of the on-hold music file + $cust_phone = $EXT_vars[5]; # customer phone number + $ref_agent = $EXT_vars[6]; # referral agent ID + + # $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} + # # JmmddhhmmssLLLLLLLLL + # $JqueryCID = "J$CIDdate$PADlead_id"; + # $callerid = $JqueryCID; + # ### set the callerid to the filename of the audio for on-hold + # print "SET CALLERID $JqueryCID\n"; + # checkresult($result); + # print STDERR "callerID changed: $JqueryCID\n"; + } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|"; &agi_output;} + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} +if (!$list_id) {$list_id = '999';} +if (!$phone_code) {$phone_code = '1';} +if (!$VLcomments) {$VLcomments = '';} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$ref_agent','$parked_by','VDCL','$list_id','Y','$phone_code','$cust_phone','$channel_group','1','-5.00','$VLcomments');"; +$affected_rows = $dbhA->do($stmtA); + +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +$CIDlead_id = $new_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +$VDADcampaign = "$channel_group"; +$VDADphone = "$cust_phone"; +$VDADphone_code = "$phone_code"; +$VDADlead_id = "$new_lead_id"; +$VDADfronter = "$ref_agent"; + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$CIDlead_id','$uniqueid','$callerid','$channel','$VDADphone_code','$VDADphone','$SQLdate','IN','LIVE-0')"; +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$VDADlead_id|$CIDlead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$CIDlead_id','$VDADcampaign','$SQLdate','$VDADphone_code','$VDADphone','$VDADfronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$VDADlead_id|$CIDlead_id|insert to vicidial_xferr_log"; &agi_output;} + + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $VDADcampaign %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$VDADcampaign|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$CIDlead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$CIDlead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$CIDlead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$CIDlead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$CIDlead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + + + +exit; + +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++; + } +} + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound.agi new file mode 100644 index 00000000..61b798c0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound.agi @@ -0,0 +1,743 @@ +#!/usr/bin/perl +# +# agi-VDADcloser_inbound.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# This version asks for a 4-digit pin number to be entered and passed on as the fronter value to the closer +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDADcloser_inbound.agi,CL_GALLERIA-----7274515134-----Closer-----park----------999-----1) +#exten => 1234,3,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1224 - Added drop second/message/exten options from inbound_group +# 60811-1003 - Changed to DBI by Marin Blu +# 60811-1145 - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDADcloser_inbound.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + $phone_number=''; + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +&enter_pin_number; + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','XFER','$phone_code','$phone_number','$fronter','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$new_lead_id|$fronter|insert to vicidial_log: $uniqueid"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$new_lead_id','$channel_group','$SQLdate','$phone_code','$phone_number','$fronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$new_lead_id|insert to vicidial_xfer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$new_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +sub enter_pin_number +{ +# please enter the pin number followed by the pound key +# please enter your 4 digit pin number + +$digit=''; +undef $digit; +$interrupt_digit=''; +undef $interrupt_digit; + +$interrupt_digit = $AGI->stream_file('four_digit_id','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('30000')); # wait 30 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++; +# } + +while ( ($digit_loop_counter < 4) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=4; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} +} + + + + +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++; + } +} + + + +### you're call is very important to us, please stay on the line and you will be transferred to the next available agent + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundANI.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundANI.agi new file mode 100644 index 00000000..8fd4d19f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundANI.agi @@ -0,0 +1,723 @@ +#!/usr/bin/perl +# +# agi-VDADcloser_inboundANI.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# *** This version detects inbound callerID over robbed-bit T1 ANI delivery *** +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDADcloser_inboundANI.agi,CL_GALLERIA-----7274515134-----Closer-----park----------999-----1) +#exten => 1234,3,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1240 - Added drop second/message/exten options from inbound_group +# 60811-1003 - Changed to DBI by Marin Blu +# 60811-1145 - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDADcloser_inboundANI.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + +# if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) +# { +# $calleridname = $callerid; +# $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; +# $calleridname =~ s/\"|\" //gi; +# } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; +# if ( (!$callerid) or ($callerid =~ /unknown/) ) +# {$callerid = $calleridname;} + + if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} + if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + + ### allow for external callerid to be collected from ANI *NXXNXXXXXX*DNIS + if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) + { + @EXT_vars = split(/\*/, $extension); + + $phone_number = $EXT_vars[1]; # ANI phone number + $DNIS = $EXT_vars[2]; # name of the parked group + } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +#&enter_pin_number; + +$pin = $inbound_number; + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00','$VLcomments');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +sub enter_pin_number +{ +# please enter the pin number followed by the pound key +# please enter your 4 digit pin number + +$interrupt_digit=''; +undef $interrupt_digit; + +$interrupt_digit = $AGI->stream_file('four_digit_id','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('30000')); # wait 30 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++; +# } + +while ( ($digit_loop_counter < 4) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=4; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} +} + + + + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundCID.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundCID.agi new file mode 100644 index 00000000..6481351f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundCID.agi @@ -0,0 +1,739 @@ +#!/usr/bin/perl +# +# agi-VDADcloser_inboundCID.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# *** This version detects inbound callerID over PRI *** +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Ringing ; call ringing +#exten => 1234,2,Wait(1) ; Wait 1 second for CID delivery from PRI +#exten => 1234,3,Answer ; Answer the line +#exten => 1234,4,AGI(agi-VDADcloser_inboundCID.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1) +#exten => 1234,5,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1241 - Added drop second/message/exten options from inbound_group +# 60811-1003 - Changed to DBI by Marin Blu +# 60811-1145 - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDADcloser_inboundCID.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + + if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} + if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +#&enter_pin_number; + +$pin = $inbound_number; + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00','$VLcomments');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +sub enter_pin_number +{ +# please enter the pin number followed by the pound key +# please enter your 4 digit pin number + +$interrupt_digit=''; +undef $interrupt_digit; + +$interrupt_digit = $AGI->stream_file('four_digit_id','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('30000')); # wait 30 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++; +# } + +while ( ($digit_loop_counter < 4) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=4; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} +} + + + + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundCIDlookup.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundCIDlookup.agi new file mode 100644 index 00000000..d45023a8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inboundCIDlookup.agi @@ -0,0 +1,760 @@ +#!/usr/bin/perl +# +# agi-VDADcloser_inboundCIDlookup.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# *** This version detects inbound callerID over PRI *** +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Ringing ; call ringing +#exten => 1234,2,Wait(1) ; Wait 1 second for CID delivery from PRI +#exten => 1234,3,Answer ; Answer the line +#exten => 1234,4,AGI(agi-VDADcloser_inboundCIDlookup.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1) +#exten => 1234,5,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1242 - Added drop second/message/exten options from inbound_group +# 60811-1003 - Changed to DBI by Marin Blu +# 60811-1145 - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDADcloser_inboundCIDlookup.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + + if ( ($callerid =~ /\".*\"/) && ( (!$calleridname) or ($calleridname =~ /unknown/) ) ) + { + $calleridname = $callerid; + $calleridname =~ s/\<\d\d\d\d\d\d\d\d\d\d\>//gi; + $calleridname =~ s/\"|\" //gi; + } + + $callerid =~ s/\D//gi; + $calleridname =~ s/unknown//gi; + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + if (length($callerid)>0) {$phone_number = $callerid;} + else {$phone_number = '';} + if (length($calleridname)>0) {$VLcomments = $calleridname;} + else {$VLcomments = '';} + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +#&enter_pin_number; + +$pin = $inbound_number; + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +$cbc=0; +$stmtA= "SELECT lead_id from vicidial_list where list_id='$list_id' and phone_number='$phone_number' order by modify_date limit 1;"; + +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) +{ + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); +} +else +{ + ### insert a record into the vicidial_list table + $stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now,comments) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00','$VLcomments');"; + $affected_rows = $dbhA->do($stmtA); + $cbc=0; + $stmtA = "select LAST_INSERT_ID() LIMIT 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); +} + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + $rec_countCUSTDATA=0; + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +sub enter_pin_number +{ +# please enter the pin number followed by the pound key +# please enter your 4 digit pin number + +$interrupt_digit=''; +undef $interrupt_digit; + +$interrupt_digit = $AGI->stream_file('four_digit_id','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('30000')); # wait 30 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++; +# } + +while ( ($digit_loop_counter < 4) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=4; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} +} + + + + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound_5ID.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound_5ID.agi new file mode 100644 index 00000000..bef8eda0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound_5ID.agi @@ -0,0 +1,741 @@ +#!/usr/bin/perl +# +# agi-VDADcloser_inbound_5ID.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# This version asks for a 5-digit pin number to be entered and passed on as the fronter value to the closer +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDADcloser_inbound.agi,CL_GALLERIA-----7274515134-----Closer-----park----------999-----1) +#exten => 1234,3,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1236 - Added drop second/message/exten options from inbound_group +# 60811-1003 - Changed to DBI by Marin Blu +# 60811-1145 - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDADcloser_inbound_5ID.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + $phone_number=''; + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +&enter_pin_number; + +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','XFER','$phone_code','$phone_number','$fronter','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$new_lead_id|$fronter|insert to vicidial_log: $uniqueid"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$new_lead_id','$channel_group','$SQLdate','$phone_code','$phone_number','$fronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$new_lead_id|insert to vicidial_xfer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$new_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +sub enter_pin_number +{ +# please enter the pin number followed by the pound key +# please enter your 4 digit pin number + +$digit=''; +undef $digit; +$interrupt_digit=''; +undef $interrupt_digit; + +$interrupt_digit = $AGI->stream_file('four_digit_id','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('30000')); # wait 30 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++; +# } + +while ( ($digit_loop_counter < 5) ) + { + $digit = chr($AGI->wait_for_digit('10000')); # wait 10 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=4; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) {if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;}} +} + + + + +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++; + } +} + + + +### you're call is very important to us, please stay on the line and you will be transferred to the next available agent + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound_NOCID.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound_NOCID.agi new file mode 100644 index 00000000..da3e1b46 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADcloser_inbound_NOCID.agi @@ -0,0 +1,663 @@ +#!/usr/bin/perl +# +# agi-VDADcloser_inbound_NOCID.agi version 0.5 *DBI-version* +# +# runs when a call comes in from an inbound call. This script will +# send the calls out to the closers that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 360 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# This version asks for nothing and assumes no CID is being sent +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ; 1. the full name of the IN GROUP to be used in vicidial for the inbound call +# ; 2. the phone number that was called, for the log entry +# ; 3. the callerID or lead_id of the person that called(usually overridden) +# ; 4. the park extension audio file name if used +# ; 5. the status of the call initially(usually not used) +# ; 6. the list_id to insert the new lead under if it is new (and callerID available) +# ; 7. the phone dialing code to insert with the new lead if new (and callerID available) +# +# ;inbound VICIDIAL calls: +#exten => 1234,1,Answer ; Answer the line +#exten => 1234,2,AGI(agi-VDADcloser_inbound_NOCID.agi,CL_GALLERIA-----7275555134-----Closer-----park----------999-----1) +#exten => 1234,3,Hangup +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# changes: +# 60504-1238 - Added drop second/message/exten options from inbound_group +# 60811-1003 - Changed to DBI by Marin Blu +# 60811-1145 - changed to use /etc/astguiclient.conf for configs +# 60821-1021 - added output options check from database +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# + +$script = 'agi-VDADcloser_inbound_NOCID.agi'; + +$DROP_TIME = 360; ### number of seconds to wait until you drop a waiting call + +($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"; +$start_time=$now_date; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $SQLdateBEGIN = $SQLdate; + +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + ### list of command-line array arguments: + @ARGV_vars = split(/-----/, $ARGV[0]); + + $channel_group = $ARGV_vars[0]; + $inbound_number = $ARGV_vars[1]; + $parked_by = $ARGV_vars[2]; + $park_extension = $ARGV_vars[3]; + $status = $ARGV_vars[4]; + $list_id = $ARGV_vars[5]; + $phone_code = $ARGV_vars[6]; + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( (!$callerid) or ($callerid =~ /unknown/) ) + {$callerid = $calleridname;} + + +# if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} +# if ($channel =~ /^Zap\//) {$channel =~ s/-\d$//gi;} + if (length($callerid)<10) {$callerid = $parked_by;} + if (length($pin)>0) {$callerid = $pin;} + + $phone_number=''; + + ### allow for external callerid to be collected +# if ($extension =~ /\*\d\d\d\d\d\d\d\d\d\d\*/) +# { +# @EXT_vars = split(/\*/, $extension); +# +# $referring_extension = $EXT_vars[0]; # initial extension sent +# $channel_group = $EXT_vars[1]; # name of the parked group +# $inbound_number = $EXT_vars[2]; # extension to send call to after parsing +# $parked_by = $EXT_vars[3]; # leadID +# $park_extension = $EXT_vars[4]; # filename of the on-hold music file +# $comment_d = $EXT_vars[5]; # N/A +# $comment_e = $EXT_vars[6]; # N/A +# +# $PADlead_id = sprintf("%09s", $parked_by); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# # JmmddhhmmssLLLLLLLLL +# $JqueryCID = "J$CIDdate$PADlead_id"; +# $callerid = $JqueryCID; +# ### set the callerid to the filename of the audio for on-hold +# print "SET CALLERID $JqueryCID\n"; +# checkresult($result); +# print STDERR "callerID changed: $JqueryCID\n"; +# } +} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + + +$AGI->stream_file('beep'); + +#&enter_pin_number; + +$pin = '123456'; +$fronter = $pin; + +if ($AGILOG) {$agi_string = "+++++ INBOUND CALL VDCL STARTED : |$channel_group|$callerid-$pin|$now_date"; &agi_output;} + +$VDADphone=''; +$VDADphone_code=''; + +if ($channel =~ /Local/i) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +exit; +} + +### Grab Server values from the database +$cbc=0; +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + $cbc++; + } +$sthA->finish(); + +### insert a record into the vicidial_list table +$stmtA = "INSERT INTO vicidial_list (entry_date,modify_date,status,user,vendor_lead_code,source_id,list_id,called_since_last_reset,phone_code,phone_number,security_phrase,called_count,gmt_offset_now) values('$SQLdate','$tsSQLdate','INBND','$fronter','$inbound_number','VDCL','$list_id','Y','$phone_code','$phone_number','$channel_group','1','-5.00');"; +$affected_rows = $dbhA->do($stmtA); +$cbc=0; +$stmtA = "select LAST_INSERT_ID() LIMIT 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $insert_lead_id = "$aryA[0]"; + $cbc++; + } +$sthA->finish(); + +$new_lead_id = $insert_lead_id; +if ($AGILOG) {$agi_string = "|$stmtA|$new_lead_id|"; &agi_output;} + +$PADlead_id = sprintf("%09s", $new_lead_id); while (length($PADlead_id) > 9) {chop($PADlead_id);} +# YmmddhhmmssLLLLLLLLL + $YqueryCID = "Y$CIDdate$PADlead_id"; + $callerid = $YqueryCID; +### set the callerid +print "SET CALLERID $YqueryCID\n"; +checkresult($result); +if ($AGILOG) {$agi_string = "callerID changed: $YqueryCID"; &agi_output;} + +### Grab inbound_group values from the database +$cbc=0; +$stmtA = "SELECT drop_call_seconds,drop_message,drop_exten FROM vicidial_inbound_groups where group_id = '$channel_group';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBdrop_message = "$aryA[1]"; + $DBdrop_exten = "$aryA[2]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBdrop_message) {$drop_message = $DBdrop_message;} + if ($DBdrop_exten) {$drop_exten = $DBdrop_exten;} + $cbc++; + } +$sthA->finish(); + +### insert a LIVE record to the vicidial_auto_calls table +$stmtA = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,uniqueid,callerid,channel,phone_code,phone_number,call_time,call_type,stage) values('$VARserver_ip','$channel_group','LIVE','$new_lead_id','$uniqueid','$callerid','$channel','$phone_code','$phone_number','$SQLdate','IN','LIVE-0')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); + +$stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','XFER','$phone_code','$phone_number','$fronter','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$new_lead_id|$fronter|insert to vicidial_log: $uniqueid"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_closer_log (lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$new_lead_id','$channel_group','$SQLdate','$now_date_epoch','QUEUE','$phone_code','$phone_number','VDCL','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDCL : |$new_lead_id|insert to vicidial_closer_log"; &agi_output;} + +$stmtA = "INSERT INTO vicidial_xfer_log (lead_id,campaign_id,call_date,phone_code,phone_number,user,closer) values('$new_lead_id','$channel_group','$SQLdate','$phone_code','$phone_number','$fronter','VDXL')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDXL : |$new_lead_id|insert to vicidial_xfer_log"; &agi_output;} + +$VDADlead_id = $new_lead_id; + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < 360) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + 360); + } + } + $cbc=0; + $stmtA = "SELECT next_agent_call FROM vicidial_inbound_groups where group_id='$channel_group';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + $agent_call_order='order by last_call_finish'; + if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} + if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} + if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} + if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} + + $rec_countWAIT=0; + $cbc=0; + $stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$channel_group' and call_time < \"$SQLdateBEGIN\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $cbc++; + } + $sthA->finish(); + + if ($rec_countWAIT < 1) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$new_lead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status IN('CLOSER','READY') and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and closer_campaigns LIKE \"% $channel_group %\" and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + my $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|$channel_group|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $cbc=0; + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + + $cbc++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='CLOSER', stage='CLOSER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL XFER : |$affected_rows|$callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_xfer_log set closer='$VDADuser' where lead_id = '$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDXL XFER vicidial_xfer_log update: |$affected_rows|$new_lead_id|$VDADuser\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set user='$VDADuser' where lead_id='$new_lead_id' order by call_date desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- closer log : |$affected_rows|$new_lead_id\n|$stmtA|"; &agi_output;} + + if ($AGILOG) {$agi_string = "exiting VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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";} + + $stmtA = "UPDATE vicidial_closer_log set queue_seconds='$drop_timer' where lead_id = '$new_lead_id' and call_date='$SQLdate';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + $now_date_epoch = time(); + $now_date = "$year-$mon-$mday $hour:$min:$sec"; + if ($AGILOG) {$agi_string = "XXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNN No available agent found"; &agi_output;} + } + } + else + { + if ($AGILOG) {$agi_string = "WWWWW VDAD XFER WAIT: |$rec_countWAIT|$channel_group|$channel|$callerid|$uniqueid|"; &agi_output;} + } + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($drop_message =~ /Y/) + { + $DROPexten = "$drop_exten"; + } + else + { + $cbc=0; + $stmtA = "SELECT voicemail_ext FROM vicidial_inbound_groups where group_id = '$channel_group' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_countCUSTDATA=0; + while ($sthArows > $cbc) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $cbc++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' and server_ip='$VARserver_ip' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vac record deleted: |$affected_rows| $VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_closer_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds',queue_seconds='$drop_seconds' where lead_id = '$new_lead_id' order by start_epoch desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vcl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XDROP' where lead_id = '$new_lead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDCL vl update: |$affected_rows|$new_lead_id|\n|$stmtA|"; &agi_output;} +} + +$dbhA->disconnect(); + +exit; + +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++; + } +} + + + +### you're call is very important to us, please stay on the line and you will be transferred to the next available agent + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransfer.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransfer.agi new file mode 100644 index 00000000..73bc26ff --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransfer.agi @@ -0,0 +1,774 @@ +#!/usr/bin/perl +# +# agi-VDADtransfer.agi version 2.0.4 *DBI-version* +# +# runs when a call comes in from the VICIDIAL_auto_dialer. This script will +# send the calls out to the reps that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 10 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => 8365,1,AGI(call_log.agi,${EXTEN}) +# exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN}) +# +# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# +# CHANGELOG: +# 50322-1246 - Changed callerid handling to allow for custom callerid +# 60119-1408 - Fixed calleridname issue with 1.2 tree for custom CID +# 60503-1054 - Added safe harbor and drop second options from campaign +# 60731-1441 - Changed to use DBI-DBD::mysql +# - Changed to use /etc/astguiclient.conf for configs +# 60816-1036 - Added output options check from database +# - Changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - Changed look for agent every 0.25 second for first 4 sec on hold +# 70109-1715 - Added option for concurrent_transfers +# 70214-1214 - Added QueueMetrics optional logging +# 70223-1046 - Added QueueMetrics ENTERQUEUE prepend option +# 70305-1240 - Fixed problems where the same call will run this script twice +# 71116-1045 - added fewest_calls and campaign_weight agent call routing options +# + +$script = 'agi-VDADtransfer.agi'; + +$DROP_TIME = 10; # default number of seconds to wait until you drop a waiting call + +($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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks,agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + $DBagi_output = "$aryA[6]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +$start_time=$now_date; +$CIDdate = "$mon$mday$hour$min$sec"; +$tsSQLdate = "$year$mon$mday$hour$min$sec"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; +$SQLdateBEGIN = $SQLdate; + +$secX = time(); +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|$AST_ver|$priority|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_live_agents where callerid='$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Pseudo_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($Pseudo_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START PSEUDO DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where callerid='$callerid' and status IN('LIVE','XFER');"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dialplan_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($dialplan_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START DIALPLAN DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + + + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + ### Grab campaign values from the database + $stmtA = "SELECT drop_call_seconds,safe_harbor_message,safe_harbor_exten,concurrent_transfers FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBsafe_harbor_message = "$aryA[1]"; + $DBsafe_harbor_exten = "$aryA[2]"; + $DBconcurrent_transfers = "$aryA[3]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBsafe_harbor_message) {$safe_harbor_message = $DBsafe_harbor_message;} + if ($DBsafe_harbor_exten) {$safe_harbor_exten = $DBsafe_harbor_exten;} + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDAD','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = "$aryA[0]"; + $queuemetrics_server_ip = "$aryA[1]"; + $queuemetrics_dbname = "$aryA[2]"; + $queuemetrics_login= "$aryA[3]"; + $queuemetrics_pass = "$aryA[4]"; + $queuemetrics_log_id = "$aryA[5]"; + $queuemetrics_eq_prepend = "$aryA[6]"; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $stmtA = "SELECT phone_number FROM vicidial_auto_calls where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $phone_number = "$aryA[0]"; + $data2 = "$phone_number"; + $rec_count++; + } + $sthA->finish(); + + if ( (length($queuemetrics_eq_prepend) > 0) && ($queuemetrics_eq_prepend !~ /NONE/) ) + { + $stmtA = "SELECT $queuemetrics_eq_prepend FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + $DASH='-'; + @aryA = $sthA->fetchrow_array; + $QMprepend = "$aryA[0]"; + $rec_count++; + $data2 = "$QMprepend$DASH$phone_number"; + } + $sthA->finish(); + } + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='ENTERQUEUE',data2='$data2',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + } + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < $DROP_TIME) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + $DROP_TIME); + } + } +$stmtA = "SELECT next_agent_call FROM vicidial_campaigns where campaign_id='$VDADcampaign';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +$agent_call_order=''; +if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} +if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} +if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} +if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} +if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} +if ($CAMP_callorder =~ /fewest_calls/i) {$agent_call_order = 'order by calls_today,last_call_finish';} + + $rec_countWAIT=0; +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $DBconcurrent_transfers = ($active_agents / 10); + $DBconcurrent_transfers = sprintf("%.0f", $DBconcurrent_transfers); + $DBconcurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $DBconcurrent_transfers ($active_agents)|"; &agi_output;} + } +$sthA->finish(); +if ($rec_countWAIT < $DBconcurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status = 'READY' and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $r=0; + $VDADuser=''; + while ( (length($VDADuser)<1) && ($r<3) ) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status IN('QUEUE','INCALL') and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + $r++; + if ($r > 1) + { + if ($AGILOG) {$agi_string = "EEEEEEEEEE vla UPDATE DELAY!!! |$callerid|$r|"; &agi_output;} + + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + if ($r > 2) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where callerid='$callerid' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "FFFFFFFFFF vla OR SELECT |$callerid|$VDADuser|"; &agi_output;} + } + } + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } +else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='EXITWITHTIMEOUT',data1='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($safe_harbor_message =~ /Y/) + { + $DROPexten = "$safe_harbor_exten"; + } + else + { + $stmtA = "SELECT voicemail_ext FROM vicidial_campaigns where campaign_id = '$VDADcampaign' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $rec_count++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} +} + + + + $dbhA->disconnect(); + + + +exit; + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferBROADCAST.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferBROADCAST.agi new file mode 100644 index 00000000..c7899053 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferBROADCAST.agi @@ -0,0 +1,608 @@ +#!/usr/bin/perl +# +# agi-VDADtransferBROADCAST.agi version 2.0.4 *DBI-version* +# +# runs when a call comes in from the VICIDIAL_auto_dialer. This script will +# send the calls out to the reps that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 10 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => 8365,1,AGI(call_log.agi,${EXTEN}) +# exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN}) +# +# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# +# changes: +# 50322-1246 - changed callerid handling to allow for custom callerid +# 60119-1408 - fixed calleridname issue with 1.2 tree for custom CID +# 60503-1054 - Added safe harbor and drop second options from campaign +# 60731-1441 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60816-1036 - added output options check from database +# - changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - changed look for agent every 0.25 second for first 4 sec on hold +# 61110-1625 - added change of vicidial_list, vicidial_log to PU once this script runs +# 71116-1045 - added fewest_calls and campaign_weight agent call routing options +# + +$script = 'agi-VDADtransferBROADCAST.agi'; + +$DROP_TIME = 10; # default number of seconds to wait until you drop a waiting call + +($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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks,agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + $DBagi_output = "$aryA[6]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +$start_time=$now_date; +$CIDdate = "$mon$mday$hour$min$sec"; +$tsSQLdate = "$year$mon$mday$hour$min$sec"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; +$SQLdateBEGIN = $SQLdate; + +$secX = time(); +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|$AST_ver|$priority|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + $stmtA = "UPDATE vicidial_list set status='PU' where lead_id='$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list PU update: |$affected_rows|$uniqueid|"; &agi_output;} + + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + ### Grab campaign values from the database + $stmtA = "SELECT drop_call_seconds,safe_harbor_message,safe_harbor_exten,concurrent_transfers FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBsafe_harbor_message = "$aryA[1]"; + $DBsafe_harbor_exten = "$aryA[2]"; + $DBconcurrent_transfers = "$aryA[3]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBsafe_harbor_message) {$safe_harbor_message = $DBsafe_harbor_message;} + if ($DBsafe_harbor_exten) {$safe_harbor_exten = $DBsafe_harbor_exten;} + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','PU','$VDADphone_code','$VDADphone','VDAD','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + } + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < $DROP_TIME) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + $DROP_TIME); + } + } +$stmtA = "SELECT next_agent_call FROM vicidial_campaigns where campaign_id='$VDADcampaign';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +$agent_call_order=''; +if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} +if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} +if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} +if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} +if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} +if ($CAMP_callorder =~ /fewest_calls/i) {$agent_call_order = 'order by calls_today,last_call_finish';} + + $rec_countWAIT=0; +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $DBconcurrent_transfers = ($active_agents / 10); + $DBconcurrent_transfers = sprintf("%.0f", $DBconcurrent_transfers); + $DBconcurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $DBconcurrent_transfers ($active_agents)|"; &agi_output;} + } +$sthA->finish(); +if ($rec_countWAIT < $DBconcurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status = 'READY' and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status = 'QUEUE' and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } +else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($safe_harbor_message =~ /Y/) + { + $DROPexten = "$safe_harbor_exten"; + } + else + { + $stmtA = "SELECT voicemail_ext FROM vicidial_campaigns where campaign_id = '$VDADcampaign' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $rec_count++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} +} + + + + $dbhA->disconnect(); + + + +exit; + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferSURVEY.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferSURVEY.agi new file mode 100644 index 00000000..a217ff76 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferSURVEY.agi @@ -0,0 +1,922 @@ +#!/usr/bin/perl +# +# agi-VDADtransferSURVEY.agi version 2.0.4 *DBI-version* +# +# runs when a call comes in from the VICIDIAL auto_dialer. This script will +# send the calls out to the reps that are logged in if called person presses key. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 10 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => 8366,1,AGI(call_log.agi,${EXTEN}) +# exten => 8366,2,AGI(agi-VDADtransferSURVEY.agi,${EXTEN}) +# +# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# +# CHANGELOG +# 60119-1408 - Fixed calleridname issue with 1.2 tree for custom CID +# 60503-1100 - Added safe harbor and drop second options from campaign +# 60731-1441 - Changed to use DBI-DBD::mysql +# - Changed to use /etc/astguiclient.conf for configs +# 60816-1034 - Added output options check from database +# - Changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - Changed look for agent every 0.25 second for first 4 sec on hold +# 70215-1052 - Added QueueMetrics optional logging +# 70223-1101 - Added QueueMetrics ENTERQUEUE prepend option +# 70305-1251 - Fixed problems where the same call will run this script twice +# 71116-1045 - added fewest_calls and campaign_weight agent call routing options +# + +$script = 'agi-VDADtransferSURVEY.agi'; + +$DROP_TIME = 10; # default number of seconds to wait until you drop a waiting call + +($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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks,agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + $DBagi_output = "$aryA[6]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +$start_time=$now_date; +$CIDdate = "$mon$mday$hour$min$sec"; +$tsSQLdate = "$year$mon$mday$hour$min$sec"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; +$SQLdateBEGIN = $SQLdate; + +$secX = time(); +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|$AST_ver|$priority|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + + +$stmtA = "SELECT count(*) FROM vicidial_live_agents where callerid='$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Pseudo_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($Pseudo_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START PSEUDO DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where callerid='$callerid' and status IN('LIVE','XFER');"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dialplan_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($dialplan_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START DIALPLAN DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + + +$AGI->stream_file('beep'); + + +$stmtA = "UPDATE vicidial_list set status='PU' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id|XFER"; &agi_output;} + + &enter_pin_number; + +if ($AGILOG) {$agi_string = "+++++ VDAD STATUS : pressed $pin|$unique_id|$channel|$extension|$type|$callerid|$CIDlead_id|$now_date"; &agi_output;} + +if ($pin !~ /^1|^2|^3|^8|^0/) {exit;} + +if (!$DB_port) {$DB_port='3306';} + + + + + +if ($pin =~ /^1|^2|^3|^0/) +{ +$voter=''; + +if ($pin == "1") {$voter = 'DEMOCRAT';} +if ($pin == "2") {$voter = 'REPUBLICAN';} +if ($pin == "3") {$voter = 'INDEPENDANT';} +if ($pin == "0") {$voter = 'OPERATOR';} + +$stmtA = "UPDATE vicidial_list set security_phrase='$voter' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_list VOTER update: |$affected_rows|$CIDlead_id|$voter"; &agi_output;} + +# Thank you for your response, we would now like to transfer you to a poll-taker for just a few more questions. Please stay on the line. + +$AGI->stream_file('US_pol_survey_transfer'); + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + ### Grab campaign values from the database + $stmtA = "SELECT drop_call_seconds,safe_harbor_message,safe_harbor_exten,concurrent_transfers FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBsafe_harbor_message = "$aryA[1]"; + $DBsafe_harbor_exten = "$aryA[2]"; + $DBconcurrent_transfers = "$aryA[3]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBsafe_harbor_message) {$safe_harbor_message = $DBsafe_harbor_message;} + if ($DBsafe_harbor_exten) {$safe_harbor_exten = $DBsafe_harbor_exten;} + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDAD','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = "$aryA[0]"; + $queuemetrics_server_ip = "$aryA[1]"; + $queuemetrics_dbname = "$aryA[2]"; + $queuemetrics_login= "$aryA[3]"; + $queuemetrics_pass = "$aryA[4]"; + $queuemetrics_log_id = "$aryA[5]"; + $queuemetrics_eq_prepend = "$aryA[6]"; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $stmtA = "SELECT phone_number FROM vicidial_auto_calls where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $phone_number = "$aryA[0]"; + $data2 = "$phone_number"; + $rec_count++; + } + $sthA->finish(); + + if ( (length($queuemetrics_eq_prepend) > 0) && ($queuemetrics_eq_prepend !~ /NONE/) ) + { + $stmtA = "SELECT $queuemetrics_eq_prepend FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + $DASH='-'; + @aryA = $sthA->fetchrow_array; + $QMprepend = "$aryA[0]"; + $rec_count++; + $data2 = "$QMprepend$DASH$phone_number"; + } + $sthA->finish(); + } + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='ENTERQUEUE',data2='$data2',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + } + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < $DROP_TIME) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + $DROP_TIME); + } + } +$stmtA = "SELECT next_agent_call FROM vicidial_campaigns where campaign_id='$VDADcampaign';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +$agent_call_order=''; +if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} +if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} +if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} +if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} +if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} +if ($CAMP_callorder =~ /fewest_calls/i) {$agent_call_order = 'order by calls_today,last_call_finish';} + + $rec_countWAIT=0; +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $DBconcurrent_transfers = ($active_agents / 10); + $DBconcurrent_transfers = sprintf("%.0f", $DBconcurrent_transfers); + $DBconcurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $DBconcurrent_transfers ($active_agents)|"; &agi_output;} + } +$sthA->finish(); +if ($rec_countWAIT < $DBconcurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status = 'READY' and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $r=0; + $VDADuser=''; + while ( (length($VDADuser)<1) && ($r<3) ) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status IN('QUEUE','INCALL') and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + $r++; + if ($r > 1) + { + if ($AGILOG) {$agi_string = "EEEEEEEEEE vla UPDATE DELAY!!! |$callerid|$r|"; &agi_output;} + + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + if ($r > 2) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where callerid='$callerid' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "FFFFFFFFFF vla OR SELECT |$callerid|$VDADuser|"; &agi_output;} + } + } + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='XFER' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id|XFER\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } +else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + +if ($hold_message_counter > 30) + { + $AGI->stream_file('generic_hold'); + $hold_message_counter = 0; + } + else {$hold_message_counter++;} +if ($hold_tone_counter > 3) + { + $AGI->stream_file('hold_tone'); + $hold_tone_counter = 0; + } + else {$hold_tone_counter++;} + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='EXITWITHTIMEOUT',data1='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($safe_harbor_message =~ /Y/) + { + $DROPexten = "$safe_harbor_exten"; + } + else + { + $stmtA = "SELECT voicemail_ext FROM vicidial_campaigns where campaign_id = '$VDADcampaign' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $rec_count++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} +} + +} ### end if pressed 1,2,3 or 0 + + + + + +else ### user pressed 8 to not be contacted again +{ + +$AGI->stream_file('US_thanks_no_contact'); + +$stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + +$stmtA = "UPDATE vicidial_log set status='DNC',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: DNC|$affected_rows|$uniqueid"; &agi_output;} + +$stmtA = "UPDATE vicidial_list set status='DNC' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: DNC|$affected_rows|$CIDlead_id"; &agi_output;} + + +exit; +} + + $dbhA->disconnect(); + + + +exit; + +sub enter_pin_number +{ +$digit=''; +undef $digit; +$interrupt_digit=''; +undef $interrupt_digit; + +# Hello, we are conducting a simple survery today, if you are a voter and registered as a Democrat, please press 1. If you are registered as a Republican, please press 2. If you are registered as an Independant or other party please press 3. If you do not want to be contacted again, please press 8. + +$interrupt_digit = $AGI->stream_file('US_pol_survey_hello','123456789'); + + if ($AGILOG) {$agi_string = "interrupt_digit |$interrupt_digit|"; &agi_output;} + +$digits_being_entered=1; +$digit_loop_counter=0; +$totalDTMF=''; +if ($interrupt_digit > 1) + { + 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('2000')); # wait 0.2 seconds for input or until the pound key is pressed + if ($digit =~ /\d/) + { + $totalDTMF = "$totalDTMF$digit"; + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} +# $AGI->say_digits("$digit"); + undef $digit; + } + else + { + $digit_loop_counter=1; + } + + $digit_loop_counter++; + } + +$totalDTMF =~ s/\D//gi; +$pin = $totalDTMF; +if ($totalDTMF) + { + if ($AGILOG) {$agi_string = "digit |$digit| TotalDTMF |$totalDTMF|"; &agi_output;} + } +} + + + + +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++; + } +} + + + +### Hello, you've been chosen to receive a great deal on travel to Florida, if you are insterested please press one on your phone now,,,,,If you would not like to be contacted again please press 2 + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferTEST.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferTEST.agi new file mode 100644 index 00000000..83afbdd9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/agi-VDADtransferTEST.agi @@ -0,0 +1,779 @@ +#!/usr/bin/perl +# +# agi-VDADtransferTEST.agi version 2.0.4 *DBI-version* +# +# !!! This is only to be used for performance testing setups !!! +# +# runs when a call comes in from the VICIDIAL_auto_dialer. This script will +# send the calls out to the reps that are logged in. +# +# if there are no available agents, then it will check every second until an agent becomes available, +# if at the end of 10 seconds(default) it has not found an agent it will hangup the call and mark it as dropped +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;VICIDIAL_auto_dialer transfer script: +# exten => 8365,1,AGI(call_log.agi,${EXTEN}) +# exten => 8365,2,AGI(agi-VDADtransfer.agi,${EXTEN}) +# +# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# +# CHANGELOG: +# 50322-1246 - Changed callerid handling to allow for custom callerid +# 60119-1408 - Fixed calleridname issue with 1.2 tree for custom CID +# 60503-1054 - Added safe harbor and drop second options from campaign +# 60731-1441 - Changed to use DBI-DBD::mysql +# - Changed to use /etc/astguiclient.conf for configs +# 60816-1036 - Added output options check from database +# - Changed look for agent every 0.5 second for first 4 sec on hold +# 60905-1047 - Changed look for agent every 0.25 second for first 4 sec on hold +# 70215-1052 - Added QueueMetrics optional logging +# 70223-1100 - Added QueueMetrics ENTERQUEUE prepend option +# 70305-1251 - Fixed problems where the same call will run this script twice +# 71116-1045 - added fewest_calls and campaign_weight agent call routing options +# + +$script = 'agi-VDADtransfer.agi'; + +$DROP_TIME = 10; # default number of seconds to wait until you drop a waiting call + +($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"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; +use Time::HiRes ('gettimeofday','usleep','sleep'); # necessary to have perl sleep command of less than one second +use Asterisk::AGI; +$AGI = new Asterisk::AGI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT voicemail_dump_exten,ext_context,answer_transfer_agent,local_gmt,asterisk_version,max_vicidial_trunks,agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBvoicemail_dump_exten = "$aryA[0]"; + $DBext_context = "$aryA[1]"; + $DBanswer_transfer_agent = "$aryA[2]"; + $DBSERVER_GMT = "$aryA[3]"; + $DBasterisk_version = "$aryA[4]"; + $DBmax_vicidial_trunks = "$aryA[5]"; + $DBagi_output = "$aryA[6]"; + if ($DBvoicemail_dump_exten) {$voicemail_dump_exten = $DBvoicemail_dump_exten;} + if ($DBext_context) {$ext_context = $DBext_context;} + if ($DBanswer_transfer_agent) {$answer_transfer_agent = $DBanswer_transfer_agent;} + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + if ($DBasterisk_version) {$AST_ver = $DBasterisk_version;} + if ($DBmax_vicidial_trunks) {$max_vicidial_trunks = $DBmax_vicidial_trunks;} + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + +$start_time=$now_date; +$CIDdate = "$mon$mday$hour$min$sec"; +$tsSQLdate = "$year$mon$mday$hour$min$sec"; +$SQLdate = "$year-$mon-$mday $hour:$min:$sec"; +$SQLdateBEGIN = $SQLdate; + +$secX = time(); +$BDtarget = ($secX - 5); +($Bsec,$Bmin,$Bhour,$Bmday,$Bmon,$Byear,$Bwday,$Byday,$Bisdst) = localtime($BDtarget); +$Byear = ($Byear + 1900); +$Bmon++; +if ($Bmon < 10) {$Bmon = "0$Bmon";} +if ($Bmday < 10) {$Bmday = "0$Bmday";} +if ($Bhour < 10) {$Bhour = "0$Bhour";} +if ($Bmin < 10) {$Bmin = "0$Bmin";} +if ($Bsec < 10) {$Bsec = "0$Bsec";} + $BDtsSQLdate = "$Byear$Bmon$Bmday$Bhour$Bmin$Bsec"; + + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() +{ + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1; $uniqueid = $unique_id;} + if (/^agi_priority\:\s+(.*)$/) {$priority = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} +} + +if ( (length($callerid)>20) && ($callerid =~ /\"\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S\S/) ) + { + $callerid =~ s/^\"//gi; + $callerid =~ s/\".*$//gi; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } +if ( ( +(length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) +) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + { + $callerid = $calleridname; + ### set the callerid to the ACQS value(calleridname) + print "SET CALLERID $callerid\n"; + checkresult($result); + if ($AGILOG) {$agi_string = "callerID changed: $callerid"; &agi_output;} + } + + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|$calleridname|$priority|"; &agi_output;} + +$VDADcampaign=''; +$VDADphone=''; +$VDADphone_code=''; + +$callerid =~ s/\"//gi; +$CIDlead_id = $callerid; +$CIDlead_id = substr($CIDlead_id, 11, 9); +$CIDlead_id = ($CIDlead_id + 0); + +if ($AGILOG) {$agi_string = "+++++ VDAD START : |$CIDlead_id|$now_date|$AST_ver|$priority|"; &agi_output;} + +if ( ($channel =~ /Local/i) && ($AST_ver !~ /^1\.0\.8|^1\.0\.9/) ) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START LOCAL CHANNEL: EXITING- $priority"; &agi_output;} +if ($priority > 2) {sleep(1);} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_live_agents where callerid='$callerid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $Pseudo_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($Pseudo_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START PSEUDO DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where callerid='$callerid' and status IN('LIVE','XFER');"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dialplan_duplicate_count = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +if ($dialplan_duplicate_count > 0) +{ +if ($AGILOG) {$agi_string = "+++++ VDAD START DIALPLAN DUPLICATE: EXITING- $priority"; &agi_output;} +exit; +} + + + +### Grab call parameters from vicidial_auto_calls table +$stmtA = "UPDATE vicidial_auto_calls set uniqueid='$unique_id', channel='$channel',status='LIVE',stage='LIVE-0' where callerid='$callerid' order by call_time desc limit 1;"; +$affected_rows = $dbhA->do($stmtA); +if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} +if ($affected_rows > 0) + { + $stmtA = "SELECT campaign_id,phone_number,phone_code,lead_id,call_time FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADcampaign = "$aryA[0]"; + $VDADphone = "$aryA[1]"; + $VDADphone_code = "$aryA[2]"; + $VDADlead_id = "$aryA[3]"; + $VDADcall_time = "$aryA[4]"; + $rec_count++; + } + $sthA->finish(); + + ### Grab campaign values from the database + $stmtA = "SELECT drop_call_seconds,safe_harbor_message,safe_harbor_exten,concurrent_transfers FROM vicidial_campaigns where campaign_id = '$VDADcampaign';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBdrop_call_seconds = "$aryA[0]"; + $DBsafe_harbor_message = "$aryA[1]"; + $DBsafe_harbor_exten = "$aryA[2]"; + $DBconcurrent_transfers = "$aryA[3]"; + if ($DBdrop_call_seconds) {$DROP_TIME = $DBdrop_call_seconds;} + if ($DBsafe_harbor_message) {$safe_harbor_message = $DBsafe_harbor_message;} + if ($DBsafe_harbor_exten) {$safe_harbor_exten = $DBsafe_harbor_exten;} + $rec_count++; + } + $sthA->finish(); + + $stmtA = "INSERT INTO vicidial_log (uniqueid,lead_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,processed) values('$uniqueid','$CIDlead_id','$VDADcampaign','$SQLdate','$now_date_epoch','QUEUE','$VDADphone_code','$VDADphone','VDAD','N')"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + if ($AGILOG) {$agi_string = "-- VDAD : |$VDADlead_id|$CIDlead_id|insert to vicidial_log: $uniqueid"; &agi_output;} + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmtA = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,queuemetrics_eq_prepend FROM system_settings;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $enable_queuemetrics_logging = "$aryA[0]"; + $queuemetrics_server_ip = "$aryA[1]"; + $queuemetrics_dbname = "$aryA[2]"; + $queuemetrics_login= "$aryA[3]"; + $queuemetrics_pass = "$aryA[4]"; + $queuemetrics_log_id = "$aryA[5]"; + $queuemetrics_eq_prepend = "$aryA[6]"; + $rec_count++; + } + $sthA->finish(); + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $stmtA = "SELECT phone_number FROM vicidial_auto_calls where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $phone_number = "$aryA[0]"; + $rec_count++; + $data2 = "$phone_number"; + } + $sthA->finish(); + + if ( (length($queuemetrics_eq_prepend) > 0) && ($queuemetrics_eq_prepend !~ /NONE/) ) + { + $stmtA = "SELECT $queuemetrics_eq_prepend FROM vicidial_list where lead_id='$CIDlead_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + $DASH='-'; + @aryA = $sthA->fetchrow_array; + $QMprepend = "$aryA[0]"; + $rec_count++; + $data2 = "$QMprepend$DASH$phone_number"; + } + $sthA->finish(); + } + + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='ENTERQUEUE',data2='$data2',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + } + +$drop_timer=0; +$drop_seconds=0; +$hold_message_counter=25; +$hold_tone_counter=0; + +while ($drop_timer <= $DROP_TIME) +{ +$channel_status = $AGI->channel_status("$channel"); +if ($channel_status < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer CHECKING AGAIN"; &agi_output;} + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $channel_status_DC = $AGI->channel_status("$channel"); + + if ($channel_status_DC < 1) + { + if ($AGILOG) {$agi_string = "CHANNEL $channel DOWN $channel_status $DROP_TIME|$drop_timer"; &agi_output;} + if ($drop_timer < $DROP_TIME) {$drop_seconds = $drop_timer;} + $drop_timer = ($drop_timer + $DROP_TIME); + } + } +$stmtA = "SELECT next_agent_call FROM vicidial_campaigns where campaign_id='$VDADcampaign';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $CAMP_callorder = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); + +$agent_call_order=''; +if ($CAMP_callorder =~ /overall_user_level/i) {$agent_call_order = 'order by user_level desc,last_call_finish';} +if ($CAMP_callorder =~ /oldest_call_start/i) {$agent_call_order = 'order by last_call_time';} +if ($CAMP_callorder =~ /oldest_call_finish/i) {$agent_call_order = 'order by last_call_finish';} +if ($CAMP_callorder =~ /random/i) {$agent_call_order = 'order by random_id';} +if ($CAMP_callorder =~ /campaign_rank/i) {$agent_call_order = 'order by campaign_weight desc,last_call_finish';} +if ($CAMP_callorder =~ /fewest_calls/i) {$agent_call_order = 'order by calls_today,last_call_finish';} + + $rec_countWAIT=0; +$stmtA = "SELECT count(*) FROM vicidial_auto_calls where status = 'LIVE' and server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and call_time < \"$VDADcall_time\" and lead_id != '$VDADlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; + $rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $rec_countWAIT = "$aryA[0]"; + $rec_count++; + } +$sthA->finish(); +if ($DBconcurrent_transfers =~ /AUTO/) + { + $active_agents=1; + $stmtA = "SELECT count(*) FROM vicidial_live_agents where server_ip='$VARserver_ip' and campaign_id = '$VDADcampaign' and last_update_time > '$BDtsSQLdate';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $active_agents = "$aryA[0]"; + $rec_count++; + } + + $DBconcurrent_transfers = ($active_agents / 10); + $DBconcurrent_transfers = sprintf("%.0f", $DBconcurrent_transfers); + $DBconcurrent_transfers++; + if ($AGILOG) {$agi_string = "|CONCURRENT TRANSFERS AUTO SETTING: $DBconcurrent_transfers ($active_agents)|"; &agi_output;} + } +$sthA->finish(); +if ($rec_countWAIT < $DBconcurrent_transfers) + { + $stmtA = "UPDATE vicidial_live_agents set status='QUEUE',lead_id='$CIDlead_id',uniqueid='$unique_id', channel='$channel', callerid='$callerid' where status = 'READY' and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and last_update_time > '$BDtsSQLdate' $agent_call_order limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD get agent: |$affected_rows|update of vla table: $VDADcampaign|$VARserver_ip\n|$stmtA|"; &agi_output;} + if ($affected_rows > 0) + { + $r=0; + $VDADuser=''; + while ( (length($VDADuser)<1) && ($r<3) ) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where status IN('QUEUE','INCALL') and server_ip='$VARserver_ip' and campaign_id='$VDADcampaign' and callerid='$callerid' and channel='$channel' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + $r++; + if ($r > 1) + { + if ($AGILOG) {$agi_string = "EEEEEEEEEE vla UPDATE DELAY!!! |$callerid|$r|"; &agi_output;} + + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } + if ($r > 2) + { + $stmtA = "SELECT conf_exten,user,extension FROM vicidial_live_agents where callerid='$callerid' order by last_call_time limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADconf_exten = "$aryA[0]"; + $VDADuser = "$aryA[1]"; + $VDADextension = "$aryA[2]"; + $rec_count++; + } + $sthA->finish(); + + if ($AGILOG) {$agi_string = "FFFFFFFFFF vla OR SELECT |$callerid|$VDADuser|"; &agi_output;} + } + } + + $stmtA = "UPDATE vicidial_auto_calls set status='XFER', stage='XFER-$drop_timer' where callerid='$callerid';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD XFER : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='PU' where lead_id='$CIDlead_id';"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD TEST : |$affected_rows|update of vl table: $CIDlead_id\n|$stmtA|"; &agi_output;} + + $dbhA->disconnect(); + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='Agent/$VDADuser',verb='CONNECT',data1='$drop_timer',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $VDADconf_exten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $VDADconf_exten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + + ($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"; + if ($AGILOG) {$agi_string = "XXXXXXXXXX VDAD transferred: start|stop $start_time|$now_date"; &agi_output;} + + exit; + } + else + { + if ($AGILOG) {$agi_string = "NNNNNNNNNN No agent record found!!!"; &agi_output;} + } + } +else + { + if ($AGILOG) {$agi_string = "WWWWWWWW VDAD XFER WAIT: |$rec_countWAIT|$VDADcampaign|$channel|$callerid|$uniqueid|"; &agi_output;} + } + + +if ($drop_timer < 3) + { + ### sleep for 23 hundredths of a second + usleep(1*230*1000); + $drop_timer = ($drop_timer + 0.25); + } +else + { + ### sleep for 99 hundredths of a second + usleep(1*990*1000); + + $drop_timer++; + } + +$stmtA = "UPDATE vicidial_auto_calls set stage='LIVE-$drop_timer' where callerid='$callerid';"; +$affected_rows = $dbhA->do($stmtA); +#if ($AGILOG) {$agi_string = "-- VDAD : |$affected_rows|update of vac table: $callerid\n|$stmtA|"; &agi_output;} + +} + + +if ($drop_timer >= $DROP_TIME) +{ +($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"; + $CIDdate = "$mon$mday$hour$min$sec"; + $tsSQLdate = "$year$mon$mday$hour$min$sec"; + $SQLdate = "$year-$mon-$mday $hour:$min:$sec"; + $VDADvoicemail_ext = ''; + +$DROPexten = ''; +if ($drop_seconds < 1) + { + $drop_seconds = $DROP_TIME; + + if ($enable_queuemetrics_logging > 0) + { + $dbhB = DBI->connect("DBI:mysql:$queuemetrics_dbname:$queuemetrics_server_ip:3306", "$queuemetrics_login", "$queuemetrics_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + if ($DBX) {print "CONNECTED TO DATABASE: $queuemetrics_server_ip|$queuemetrics_dbname\n";} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$secX',call_id='$callerid',queue='$VDADcampaign',agent='NONE',verb='EXITWITHTIMEOUT',data1='1',serverid='$queuemetrics_log_id';"; + $Baffected_rows = $dbhB->do($stmtB); + + $dbhB->disconnect(); + } + + if ($safe_harbor_message =~ /Y/) + { + $DROPexten = "$safe_harbor_exten"; + } + else + { + $stmtA = "SELECT voicemail_ext FROM vicidial_campaigns where campaign_id = '$VDADcampaign' limit 1;"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $VDADvoicemail_ext = "$aryA[0]"; + $VDADvoicemail_ext =~ s/\D//gi; + if (length($VDADvoicemail_ext)>0) + {$DROPexten = "$voicemail_dump_exten$VDADvoicemail_ext";} + $rec_count++; + } + $sthA->finish(); + } + } + + + ### use STDOUT to send call to proper DROP location + $VHqueryCID = "VH$CIDdate$VDADconf_exten"; + + if (length($DROPexten)>0) + { ### if DROP extension is defined then send the dropped call there instead of hangup + if ($AGILOG) {$agi_string = "exiting the VDAD app, transferring call to $DROPexten"; &agi_output;} + print "SET CONTEXT $ext_context\n"; + checkresult($result); + print "SET EXTENSION $DROPexten\n"; + checkresult($result); + print "SET PRIORITY 1\n"; + checkresult($result); + } + else + { + ### insert a NEW record to the vicidial_manager table to be processed + $stmtA = "INSERT INTO vicidial_manager values('','','$SQLdate','NEW','N','$VARserver_ip','','Hangup','$VHqueryCID','Channel: $channel','','','','','','','','','')"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD call_hungup timout: |$VHqueryCID|$VDADconf_exten|$channel|insert to vicidial_manager"; &agi_output;} + } + + $stmtA = "DELETE FROM vicidial_auto_calls where callerid='$callerid' order by call_time desc limit 1;"; + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vac record deleted: |$affected_rows|$VDADcampaign|"; &agi_output;} + + $stmtA = "UPDATE vicidial_log set status='DROP',end_epoch='$now_date_epoch',length_in_sec='$drop_seconds' where uniqueid = '$uniqueid';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_log update: |$affected_rows|$uniqueid"; &agi_output;} + + $stmtA = "UPDATE vicidial_list set status='DROP' where lead_id = '$CIDlead_id';"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + if ($AGILOG) {$agi_string = "-- VDAD vicidial_list update: |$affected_rows|$CIDlead_id"; &agi_output;} +} + + + + $dbhA->disconnect(); + + + +exit; + +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++; + } +} + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/call_log.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/call_log.agi new file mode 100644 index 00000000..027434af --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/call_log.agi @@ -0,0 +1,379 @@ +#!/usr/bin/perl +# +# call_log.agi version 0.10 *DBI-version* +# +# runs at the beginning and ending of every external call made and received +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;outbound dialing: +# exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN}) +# +# ;inbound calls: +# exten => 101,1,AGI(call_log.agi,${EXTEN}) +# +# ;all hangups: +# exten => h,1,AGI(call_log.agi,${EXTEN}) +# +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# CHANGES +# 60311-1309 - Fixed CallerID/name for VICIDIAL calls +# 60315-1020 - Added MySQL query fail debug print output +# 60622-0956 - Altered log for Zap client phones for consistent output +# 60718-1638 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60815-1023 - added output options check from database +# + +$script = 'call_log.agi'; + +($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"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + ## Seb Auriol added from here (04-May-05): + ## From http://home.cogeco.ca/~camstuff/agi.html: + ## """AGI scripts *always* receive two arguments. + ## The first argument is the full path to the script itself. + ## The second argument is the stuff passed in from the "exten" line.""" + ## $ARGV[1] is the second argument. + ## Actually http://home.cogeco.ca/~camstuff/agi.html is INCORRECT!!! + ## The FIRST and ONLY argument (in perl) is the stuff passed in from the "exten" line. + ## I think this is do with the perl interpreter vs the python interpreter, which inserts the + ## full path to the script as the 1st argument. + if (length($ARGV[0])>0) + { + $extensionarg = $ARGV[0]; # This is a fudge that assumes you only pass in one parameter. This argument should really be parsed. /Seb + } + ## until here. + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( $callerid =~ /\"/) {$callerid =~ s/\"//gi;} + +# if ( (length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) ) + if ( ( + (length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) + ) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + {$callerid = $calleridname;} + + ### allow for ANI being sent with the DNIS "*3125551212*9999*" + if ($extension =~ /\d\d\d\d\d\d\d\d\d\d\*/) + { + $callerid = $extension; + $callerid =~ s/\*\d\d\d\d$//gi; + $callerid =~ s/^\*//gi; + $extension =~ s/\d\d\d\d\d\d\d\d\d\d\*//gi; + $extension =~ s/\*$//gi; + } + ## Seb Auriol added from here (04-May-05): + ## $extensionarg was supplied to the script and should override $extension. + ## This is to enable us to call this script from a macro. + if ($extensionarg) {$extension = $extensionarg;} + ## until here. +} + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + + +if ($AGILOG) {$agi_string = "AGI Variables: |$unique_id|$channel|$extension|$type|$callerid|"; &agi_output;} + +if ( ($extension =~ /h/i) && (length($extension) < 3)) {$stage = 'END';} +else {$stage = 'START';} + +### call start stage +if ($stage =~ /START/) + { + if ($AGILOG) {$agi_string = "+++++ CALL LOG START : $now_date"; &agi_output;} + + if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} + if ($channel =~ /^IAX2/) {$channel =~ s/\/\d+$//gi;} + if ($channel =~ /^Zap\//) + { + $channel_line = $channel; + $channel_line =~ s/^Zap\///gi; + + $stmtA = "SELECT count(*) FROM phones where server_ip='$VARserver_ip' and extension='$channel_line' and protocol='Zap';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + $is_client_phone = "$aryA[0]"; + if ($AGILOG) {$agi_string = "Local Zap phone: $aryA[0]|$channel_line|"; &agi_output;} + $sthA->finish(); + + if ($is_client_phone < 1) + { + $channel_group = 'Zap Trunk Line'; + $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 + if ( ($channel =~ /^SIP|^IAX2/) or ($is_client_phone > 0) ) + { + if ( ($extension =~ /^901144/) && (length($extension)==16) ) #test 207 608 6400 + {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl UK';} + if ( ($extension =~ /^901161/) && (length($extension)==15) ) #test 39 417 2011 + {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl AUS';} + if ( ($extension =~ /^91800|^91888|^91877|^91866/) && (length($extension)==12) ) + {$extension =~ s/^91//gi; $channel_group = 'Outbound Local 800';} + if ( ($extension =~ /^9/) && (length($extension)==8) ) + {$extension =~ s/^9/727/gi; $channel_group = 'Outbound Local';} + if ( ($extension =~ /^9/) && (length($extension)==11) ) + {$extension =~ s/^9//gi; $channel_group = 'Outbound Local';} + if ( ($extension =~ /^91/) && (length($extension)==12) ) + {$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\/|Zap\///gi; + + $number_dialed = $extension; + $extension = $SIP_ext; + } + + $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','$VARserver_ip','$extension','$number_dialed','$now_date','$now_date_epoch','','','','','$callerid')"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + $dbhA->disconnect(); + } + + +### call end stage +else + { + if ($AGILOG) {$agi_string = "|CALL HUNG UP|"; &agi_output;} + + ### get uniqueid and start_epoch from the call_log table + $stmtA = "SELECT uniqueid,start_epoch FROM call_log where uniqueid='$unique_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $start_time = "$aryA[1]"; + if ($AGILOG) {$agi_string = "|$aryA[0]|$aryA[1]|"; &agi_output;} + $rec_count++; + } + $sthA->finish(); + + if ($rec_count) + { + $length_in_sec = ($now_date_epoch - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + if ($AGILOG) {$agi_string = "QUERY done: start time = $start_time | sec: $length_in_sec | min: $length_in_min |"; &agi_output;} + + $stmtA = "UPDATE call_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where uniqueid='$unique_id'"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + } + + $stmtA = "DELETE from live_inbound where uniqueid='$unique_id' and server_ip='$VARserver_ip'"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + +##### BEGIN Park Log entry check and update ##### + $stmtA = "SELECT UNIX_TIMESTAMP(parked_time),UNIX_TIMESTAMP(grab_time) FROM park_log where uniqueid='$unique_id' and server_ip='$VARserver_ip' LIMIT 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $parked_time = "$aryA[0]"; + $grab_time = "$aryA[1]"; + if ($AGILOG) {$agi_string = "|$aryA[0]|$aryA[1]|"; &agi_output;} + $rec_count++; + } + $sthA->finish(); + + if ($rec_count) + { + if ($AGILOG) {$agi_string = "*****Entry found for $unique_id-$VARserver_ip in park_log: $parked_time|$grab_time"; &agi_output;} + if ($parked_time > $grab_time) + { + $parked_sec=($now_date_epoch - $parked_time); + $talked_sec=0; + } + else + { + $talked_sec=($now_date_epoch - $parked_time); + $parked_sec=($grab_time - $parked_time); + } + + $stmtA = "UPDATE park_log set status='HUNGUP',hangup_time='$now_date',parked_sec='$parked_sec',talked_sec='$talked_sec' where uniqueid='$unique_id' and server_ip='$VARserver_ip'"; + $affected_rows = $dbhA->do($stmtA); + } +##### END Park Log entry check and update ##### + + $dbhA->disconnect(); + + if ($AGILOG) {$agi_string = "+++++ CALL LOG HUNGUP: |$unique_id|$channel|$extension|$now_date|min: $length_in_min|"; &agi_output;} + } + +exit; + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_agi/call_logCID.agi b/agc_2-X/branches/agc_2.2.0/extras/old_agi/call_logCID.agi new file mode 100644 index 00000000..a14ad009 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_agi/call_logCID.agi @@ -0,0 +1,372 @@ +#!/usr/bin/perl +# +# call_log.agi version 0.8 *DBI-version* +# +# runs at the beginning and ending of every external call made and received +# +# You need to put lines similar to those below in your extensions.conf file: +# +# ;outbound dialing: +# exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN}) +# +# ;inbound calls: +# exten => 101,1,AGI(call_log.agi,${EXTEN}) +# +# ;all hangups: +# exten => h,1,DeadAGI(call_log.agi,${EXTEN}) +# +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# +# CHANGES +# 60622-0957 - Altered log for Zap client phones for consistent output +# 60718-1638 - changed to use DBI-DBD::mysql +# - changed to use /etc/astguiclient.conf for configs +# 60815-1023 - added output options check from database +# + +$script = 'call_logCID.agi'; + +($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"; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +if (!$VARDB_port) {$VARDB_port='3306';} +if (!$AGILOGfile) {$AGILOGfile = "$PATHlogs/agiout.$year-$mon-$mday";} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +### Grab Server values from the database +$stmtA = "SELECT agi_output FROM servers where server_ip = '$VARserver_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + $AGILOG = '0'; + @aryA = $sthA->fetchrow_array; + $DBagi_output = "$aryA[0]"; + if ($DBagi_output =~ /STDERR/) {$AGILOG = '1';} + if ($DBagi_output =~ /FILE/) {$AGILOG = '2';} + if ($DBagi_output =~ /BOTH/) {$AGILOG = '3';} + $rec_count++; + } +$sthA->finish(); + + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ +if ($AGILOG) {$agi_string = "Perl Environment Dump:"; &agi_output;} + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + if ($AGILOG) {$agi_string = "$i|$ARGV[$i]"; &agi_output;} + $i++; + } + if ($args =~ />| |\"/i) + { + @CID = split(/-----/, $args); + $fullCID=1; + $callerid = $CID[2]; + $calleridname = $CID[3]; + } + + if ($args =~ /--help/i) + { + print "allowed run time options:\n [-q] = quiet\n [-t] = test\n [-debug] = verbose debug messages\n\n"; + } + else + { + if ($args =~ /-V/i) + { + $V=1; + } + if ($args =~ /-debug/i) + { + $DG=1; + } + if ($args =~ /-dbAVS/i) + { + $DGA=1; + } + if ($args =~ /-q/i) + { + $q=1; + $Q=1; + } + if ($args =~ /-t/i) + { + $TEST=1; + $T=1; + } + } +} +else +{ +if ($V) {print "no command line options set\n";} +} + +$|=1; +while() { + chomp; + last unless length($_); + if ($AGILOG) + { + if (/^agi_(\w+)\:\s+(.*)$/) + { + $AGI{$1} = $2; + } + } + + if (/^agi_uniqueid\:\s+(.*)$/) {$unique_id = $1;} + if (/^agi_channel\:\s+(.*)$/) {$channel = $1;} + if (/^agi_extension\:\s+(.*)$/) {$extension = $1;} + if (/^agi_type\:\s+(.*)$/) {$type = $1;} + if (!$fullCID) # if no fullCID sent + { + if (/^agi_callerid\:\s+(.*)$/) {$callerid = $1;} + if (/^agi_calleridname\:\s+(.*)$/) {$calleridname = $1;} + if ( $calleridname =~ /\"/) {$calleridname =~ s/\"//gi;} +# if ( (length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) ) + if ( ( + (length($calleridname)>5) && ( (!$callerid) or ($callerid =~ /unknown|private|00000000/i) or ($callerid =~ /5551212/) ) + ) or ( (length($calleridname)>17) && ($calleridname =~ /\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d/) ) ) + {$callerid = $calleridname;} + + ### allow for ANI being sent with the DNIS "*3125551212*9999*" + if ($extension =~ /^\*\d\d\d\d\d\d\d\d\d\d\*/) + { + $callerid = $extension; + $callerid =~ s/\*\d\d\d\d\*$//gi; + $callerid =~ s/^\*//gi; + $extension =~ s/^\*\d\d\d\d\d\d\d\d\d\d\*//gi; + $extension =~ s/\*$//gi; + } + $calleridname = $callerid; + } +} + +if ($AGILOG) {$agi_string = "AGI Environment Dump:"; &agi_output;} + +foreach $i (sort keys %AGI) +{ + if ($AGILOG) {$agi_string = " -- $i = $AGI{$i}"; &agi_output;} +} + + +if ( ($extension =~ /h/i) && (length($extension) < 3)) {$stage = 'END';} +else {$stage = 'START';} + +### call start stage +if ($stage =~ /START/) + { + if ($AGILOG) {$agi_string = "+++++ CALL LOG START : $now_date"; &agi_output;} + + $is_client_phone = 0; + if ($channel =~ /^SIP/) {$channel =~ s/-.*//gi;} + if ($channel =~ /^IAX2/) {$channel =~ s/\/\d+$//gi;} + if ($channel =~ /^Zap\//) + { + $channel_line = $channel; + $channel_line =~ s/^Zap\///gi; + + $stmtA = "SELECT count(*) FROM phones where server_ip='$VARserver_ip' and extension='$channel_line' and protocol='Zap';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + @aryA = $sthA->fetchrow_array; + $is_client_phone = "$aryA[0]"; + if ($AGILOG) {$agi_string = "Local Zap phone: $aryA[0]|$channel_line|"; &agi_output;} + $sthA->finish(); + + if ($is_client_phone < 1) + { + $channel_group = 'Zap Trunk Line'; + $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 + if ( ($channel =~ /^SIP|^IAX2/) or ($is_client_phone > 0) ) + { + if ( ($extension =~ /^901144/) && (length($extension)==16) ) #test 207 608 6400 + {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl UK';} + if ( ($extension =~ /^901161/) && (length($extension)==15) ) #test 39 417 2011 + {$extension =~ s/^9//gi; $channel_group = 'Outbound Intl AUS';} + if ( ($extension =~ /^91800|^91888|^91877|^91866/) && (length($extension)==12) ) + {$extension =~ s/^91//gi; $channel_group = 'Outbound Local 800';} + if ( ($extension =~ /^9/) && (length($extension)==8) ) + {$extension =~ s/^9/727/gi; $channel_group = 'Outbound Local';} + if ( ($extension =~ /^9/) && (length($extension)==11) ) + {$extension =~ s/^9//gi; $channel_group = 'Outbound Local';} + if ( ($extension =~ /^91/) && (length($extension)==12) ) + {$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\/|Zap\///gi; + + $number_dialed = $extension; + $extension = $SIP_ext; + } + + $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','$VARserver_ip','$extension','$number_dialed','$now_date','$now_date_epoch','','','','','$calleridname')"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + + $dbhA->disconnect(); + } + + +### call end stage +else + { + if ($AGILOG) {$agi_string = "|CALL HUNG UP|"; &agi_output;} + + ### get uniqueid and start_epoch from the call_log table + $stmtA = "SELECT uniqueid,start_epoch FROM call_log where uniqueid='$unique_id';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $start_time = "$aryA[1]"; + if ($AGILOG) {$agi_string = "|$aryA[0]|$aryA[1]|"; &agi_output;} + $rec_count++; + } + $sthA->finish(); + + if ($rec_count) + { + $length_in_sec = ($now_date_epoch - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + if ($AGILOG) {$agi_string = "QUERY done: start time = $start_time | sec: $length_in_sec | min: $length_in_min |"; &agi_output;} + + $stmtA = "UPDATE call_log set end_time='$now_date',end_epoch='$now_date_epoch',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where uniqueid='$unique_id'"; + + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + } + + $stmtA = "DELETE from live_inbound where uniqueid='$unique_id' and server_ip='$VARserver_ip'"; + if ($AGILOG) {$agi_string = "|$stmtA|"; &agi_output;} + $affected_rows = $dbhA->do($stmtA); + +##### BEGIN Park Log entry check and update ##### + $stmtA = "SELECT UNIX_TIMESTAMP(parked_time),UNIX_TIMESTAMP(grab_time) FROM park_log where uniqueid='$unique_id' and server_ip='$VARserver_ip' LIMIT 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $parked_time = "$aryA[0]"; + $grab_time = "$aryA[1]"; + if ($AGILOG) {$agi_string = "|$aryA[0]|$aryA[1]|"; &agi_output;} + $rec_count++; + } + $sthA->finish(); + + if ($rec_count) + { + if ($AGILOG) {$agi_string = "*****Entry found for $unique_id-$VARserver_ip in park_log: $parked_time|$grab_time"; &agi_output;} + if ($parked_time > $grab_time) + { + $parked_sec=($now_date_epoch - $parked_time); + $talked_sec=0; + } + else + { + $talked_sec=($now_date_epoch - $parked_time); + $parked_sec=($grab_time - $parked_time); + } + + $stmtA = "UPDATE park_log set status='HUNGUP',hangup_time='$now_date',parked_sec='$parked_sec',talked_sec='$talked_sec' where uniqueid='$unique_id' and server_ip='$VARserver_ip'"; + $affected_rows = $dbhA->do($stmtA); + } +# else {print STDERR "*****No entry found for $unique_id-$VARserver_ip in park_log\n";} +##### END Park Log entry check and update ##### + + $dbhA->disconnect(); + + if ($AGILOG) {$agi_string = "+++++ CALL LOG HUNGUP: |$unique_id|$channel|$extension|$now_date|min: $length_in_min|"; &agi_output;} + } + + +exit; + + + +sub agi_output +{ +if ($AGILOG >=2) + { + ### open the log file for writing ### + open(Lout, ">>$AGILOGfile") + || die "Can't open $AGILOGfile: $!\n"; + print Lout "$now_date|$script|$agi_string\n"; + close(Lout); + } + ### send to STDERR writing ### +if ( ($AGILOG == '1') || ($AGILOG == '3') ) + {print STDERR "$now_date|$script|$agi_string\n";} +$agi_string=''; +} diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings.pl b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings.pl new file mode 100644 index 00000000..39e98e24 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings.pl @@ -0,0 +1,183 @@ +#!/usr/bin/perl +# +# AST_CRON_mix_recordings.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 +# +# 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 LICENSE: GPLv2 +# +# +# 51021-1058 - Added quotes around CLI executed commands +# 51122-1458 - Added soxmix binary path check +# 60318-0921 - Added ability to mix gsm audio files +# 60807-1308 - Modified to use /etc/astguiclient.conf for settings +# 71004-1124 - Changed to not move ORIG recordings if FTP server does not Ping +# 71005-0049 - Altered script to use astguiclient.conf for settings +# + + +#$v=1; + +# Default variables for FTP +$VARFTP_host = '10.0.0.4'; +$VARFTP_user = 'cron'; +$VARFTP_pass = 'test'; +$VARFTP_dir = 'RECORDINGS'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; +$dir2 = "$PATHDONEmonitor"; + +$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; + } + } + +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|out\.gsm/i) && ($size1 eq $size2) && (length($FILES[$i]) > 4)) + { + $INfile = $FILES[$i]; + $OUTfile = $FILES[$i]; + $OUTfile =~ s/-in\.wav/-out.wav/gi; + $OUTfile =~ s/-in\.gsm/-out.gsm/gi; + $ALLfile = $FILES[$i]; + $ALLfile =~ s/-in\.wav/-all.wav/gi; + $ALLfile =~ s/-in\.gsm/-all.gsm/gi; + + if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";} + + ### BEGIN Remote file transfer + $p = Net::Ping->new(); + $ping_good = $p->ping("$VARFTP_host"); + + if ($ping_good) + { + `$soxmixbin "$dir1/$INfile" "$dir1/$OUTfile" "$dir2/$ALLfile"`; + if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";} + if (!$T) + { + `mv -f "$dir1/$INfile" "$dir2/ORIG/$INfile"`; + `mv -f "$dir1/$OUTfile" "$dir2/ORIG/$OUTfile"`; + } + + $ftp = Net::FTP->new("$VARFTP_host", Port => 21); + $ftp->login("$VARFTP_user","$VARFTP_pass"); + $ftp->cwd("$VARFTP_dir"); + $ftp->binary(); + $ftp->put("$dir2/$ALLfile", "$ALLfile"); + $ftp->quit; + } + ### END Remote file transfer + + } + } + $i++; + } + +if ($v) {print "DONE... EXITING\n\n";} + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_BASIC.pl b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_BASIC.pl new file mode 100644 index 00000000..04c67b00 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_BASIC.pl @@ -0,0 +1,148 @@ +#!/usr/bin/perl +# +# AST_CRON_mix_recordings_BASIC.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 +# +# 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 LICENSE: GPLv2 +# +# +# 51021-1058 - Added quotes around CLI executed commands +# 51122-1456 - Added soxmix binary path check +# 60318-0921 - Added ability to mix gsm audio files +# 60807-1308 - Modified to use /etc/astguiclient.conf for settings +# + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; + +$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! Trying sox...\n"; + if ( -e ('/usr/bin/sox')) {$soxmixbin = '/usr/bin/sox -m';} + else + { + if ( -e ('/usr/local/bin/sox')) {$soxmixbin = '/usr/local/bin/sox -m';} + else + { + print "Can't find sox binary! Exiting...\n"; + exit; + } + } + } + } + + 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|out\.gsm/i) && ($size1 eq $size2) && (length($FILES[$i]) > 4)) + { + $INfile = $FILES[$i]; + $OUTfile = $FILES[$i]; + $OUTfile =~ s/-in\.wav/-out.wav/gi; + $OUTfile =~ s/-in\.gsm/-out.gsm/gi; + $ALLfile = $FILES[$i]; + $ALLfile =~ s/-in\.wav/-all.wav/gi; + $ALLfile =~ s/-in\.gsm/-all.gsm/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"`; + } + } + } + $i++; + } + +if ($v) {print "DONE... EXITING\n\n";} + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_GSM.pl b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_GSM.pl new file mode 100644 index 00000000..56e2fe7b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_GSM.pl @@ -0,0 +1,204 @@ +#!/usr/bin/perl +# +# AST_CRON_mix_recordings_GSM.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 LICENSE: GPLv2 +# +# +# 51021-1058 - Added quotes around CLI executed commands +# 51122-1455 - Added soxmix and sox binary path check +# 60807-1308 - Modified to use /etc/astguiclient.conf for settings +# 71004-1124 - Changed to not move ORIG recordings if FTP server does not Ping +# 71005-0049 - Altered script to use astguiclient.conf for settings +# + + +# Default variables for FTP +$VARFTP_host = '10.0.0.4'; +$VARFTP_user = 'cron'; +$VARFTP_pass = 'test'; +$VARFTP_dir = 'RECORDINGS'; +$VARFTP_port = '21'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; +$dir2 = "$PATHDONEmonitor"; + +$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; + } + } +$soxbin = ''; +if ( -e ('/usr/bin/sox')) {$soxbin = '/usr/bin/sox';} +else + { + if ( -e ('/usr/local/bin/sox')) {$soxbin = '/usr/local/bin/sox';} + else + { + print "Can't find sox 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; + $GSMfile = $ALLfile; + $GSMfile =~ s/-all\.wav/-all.gsm/gi; + + if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";} + + ### BEGIN Remote file transfer + $p = Net::Ping->new(); + $ping_good = $p->ping("$VARFTP_host"); + + if ($ping_good) + { + `$soxmixbin "$dir1/$INfile" "$dir1/$OUTfile" "$dir2/$ALLfile"`; + if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";} + if (!$T) + { + `mv -f "$dir1/$INfile" "$dir2/ORIG/$INfile"`; + `mv -f "$dir1/$OUTfile" "$dir2/ORIG/$OUTfile"`; + } + + `$soxbin "$dir2/$ALLfile" "$dir2/$GSMfile"`; + + if (!$T) + { + `rm -f "$dir2/$ALLfile"`; + } + + if($DB){print STDERR "\n|/usr/bin/sox $live_folder/$filename[$k]$WAV $arch_folder/$filename[$k]$GSM|\n";} + chmod 0755, "$dir2/$GSMfile"; + + $ftp = Net::FTP->new("$VARFTP_host", Port => $VARFTP_port, Debug => 0, Passive => 1); + $ftp->login("$VARFTP_user","$VARFTP_pass"); + $ftp->cwd("$VARFTP_dir"); + $ftp->binary(); + $ftp->put("$dir2/$GSMfile", "$GSMfile"); + $ftp->quit; + } + ### END Remote file transfer + + } + } + $i++; + } + +if ($v) {print "DONE... EXITING\n\n";} + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_MP3.pl b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_MP3.pl new file mode 100644 index 00000000..c548a14a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_MP3.pl @@ -0,0 +1,206 @@ +#!/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 LICENSE: GPLv2 +# Contributions by Mike Lord +# +# 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 +# 60807-1308 - Modified to use /etc/astguiclient.conf for settings +# 71004-1124 - Changed to not move ORIG recordings if FTP server does not Ping +# 71005-0049 - Altered script to use astguiclient.conf for settings +# + + +# Default variables for FTP +$VARFTP_host = '10.0.0.4'; +$VARFTP_user = 'cron'; +$VARFTP_pass = 'test'; +$VARFTP_dir = 'recordings'; +$VARFTP_port = '21'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; +$dir2 = "$PATHDONEmonitor"; + +$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";} + + ### BEGIN Remote file transfer + $p = Net::Ping->new(); + $ping_good = $p->ping("$VARFTP_host"); + + if ($ping_good) + { + `$soxmixbin "$dir1/$INfile" "$dir1/$OUTfile" "$dir2/$ALLfile"`; + if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";} + + `$lamebin -b 16 -m m --silent "$dir2/$ALLfile" "$dir2/$MP3file"`; + + if($DB){print STDERR "\n|/usr/bin/sox $live_folder/$filename[$k]$WAV $arch_folder/$filename[$k]$GSM|\n";} + chmod 0755, "$dir2/$MP3file"; + + $ftp = Net::FTP->new("$VARFTP_host", Port => $VARFTP_port, Debug => 0, Passive => 1); + $ftp->login("$VARFTP_user","$VARFTP_pass"); + $ftp->cwd("$VARFTP_dir"); + $ftp->binary(); + $ftp->put("$dir2/$MP3file", "$MP3file"); + $ftp->quit; + + if (!$T) + { + `mv -f "$dir1/$INfile" "$dir2/ORIG/$INfile"`; + `mv -f "$dir1/$OUTfile" "$dir2/ORIG/$OUTfile"`; + } + if (!$T) + { + `rm -f "$dir2/$ALLfile"`; + } + + } + ### END Remote file transfer + + } + } + $i++; + } + +if ($v) {print "DONE... EXITING\n\n";} + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_MP3_DATE.pl b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_MP3_DATE.pl new file mode 100644 index 00000000..e3a9cf01 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_MP3_DATE.pl @@ -0,0 +1,231 @@ +#!/usr/bin/perl +# +# AST_CRON_mix_recordings_MP3_DATE.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 +# +# MODIFIED BY MAGMA NETWORKS: FTP Server has new folder created daily for archiving +# recordings. If the directory does not exist, this script creates the directory in +# YYYYMMDD format. +# +# +# VERY IMPORTANT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# You must be saving recordings as FULLDATE_CUSTPHONE_CAMPAIGN_AGENT +# and save files to dated-directories or this script will not work properly +# +# +# Copyright (C) 2006 Matt Florell LICENSE: GPLv2 +# Contributions by Mike Lord +# Contributions by Magma Networks LLC +# +# 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 +# - Creates Directory on target FTP server based on . +# 60807-1308 - Modified to use /etc/astguiclient.conf for settings +# 71004-1124 - Changed to not move ORIG recordings if FTP server does not Ping +# 71005-0049 - Altered script to use astguiclient.conf for settings +# + +#verbose +$v=0; +#test +$T=0; + +# Default variables for FTP +$VARFTP_host = '192.168.0.8'; +$VARFTP_user = 'recordings'; +$VARFTP_pass = 'recordings'; +$VARFTP_dir = '/var/www/html/RECORDINGS'; +$VARFTP_port = '21'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; +$dir2 = "$PATHDONEmonitor"; + +# get current date in the format YYYYMMDD for use in directory name on the storage server +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +my $today = sprintf("%d%02d%02d", $year + 1900, $mon + 1, $mday); + +$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; + + ### BEGIN Remote file transfer + $p = Net::Ping->new(); + $ping_good = $p->ping("$VARFTP_host"); + + if ($ping_good) + { + if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";} + + `$soxmixbin "$dir1/$INfile" "$dir1/$OUTfile" "$dir2/$ALLfile"`; + if ($v) {print "|$INfile| |$OUTfile| |$ALLfile|\n\n";} + if (!$T) + { + `mv -f "$dir1/$INfile" "$dir2/ORIG/$INfile"`; + `mv -f "$dir1/$OUTfile" "$dir2/ORIG/$OUTfile"`; + } + + `$lamebin -b 16 -m m --silent "$dir2/$ALLfile" "$dir2/$MP3file"`; + + + if($DB){print STDERR "\n|$lamebin -b 16 -m m --silent \"$dir2/$ALLfile\" \"$dir2/$MP3file\"\n";} + chmod 0755, "$dir2/$MP3file"; + + $ftp = Net::FTP->new("$VARFTP_host", Port => $VARFTP_port, Debug => ($v? 1 : 0), Passive => 1); + $ftp->login("$VARFTP_user","$VARFTP_pass"); + #$ftp->cwd("$VARFTP_dir"); + $ftp->mkdir("$VARFTP_dir/$today", 1); + $ftp->cwd("$VARFTP_dir/$today"); + $ftp->binary(); + $ftp->put("$dir2/$MP3file", "$MP3file"); + $ftp->quit; + + # clean up + if (!$T) + { + `rm -f "$dir2/ORIG/$INfile"`; + `rm -f "$dir2/ORIG/$OUTfile"`; + `rm -f "$dir2/$ALLfile"`; + `rm -f "$dir2/$MP3file"`; + } + } + ### END Remote file transfer + } + } + $i++; + } + +if ($v) {print "DONE... EXITING\n\n";} + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_VDonly_DATE.pl b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_VDonly_DATE.pl new file mode 100644 index 00000000..bbd8363d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_bin/AST_CRON_mix_recordings_VDonly_DATE.pl @@ -0,0 +1,198 @@ +#!/usr/bin/perl +# +# AST_CRON_mix_recordings_VDonly_DATE.pl +# +# IMPORTANT!!! ONLY TO BE USED WHEN ONLY VICIDIAL RECORDINGS ARE ON THE SYSTEM! +# +# runs every 5 minutes and copies the -in recordings in the monitor to a dated +# directory on an FTP server. Creates the FTP directory if it does not exist. +# +# 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/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) 2007 Matt Florell LICENSE: GPLv2 +# +# +# 51021-1058 - Added quotes around CLI executed commands +# 51122-1458 - Added soxmix binary path check +# 60318-0921 - Added ability to mix gsm audio files +# 60807-1308 - Modified to use /etc/astguiclient.conf for settings +# 70702-1139 - Removed mixing, and added dated folder storage on FTP server +# 71004-1124 - Changed to not move ORIG recordings if FTP server does not Ping +# 71005-0049 - Altered script to use astguiclient.conf for settings +# + +# Default variables for FTP +$VARFTP_host = '10.0.0.4'; +$VARFTP_user = 'cron'; +$VARFTP_pass = 'test'; +$VARFTP_port = '21'; +$VARFTP_dir = 'RECORDINGS'; +$VARHTTP_path = 'http://10.0.0.4'; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP +if (!$VARDB_port) {$VARDB_port='3306';} + +use DBI; + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +### directory where in/out recordings are saved to by Asterisk +$dir1 = "$PATHmonitor"; +$dir2 = "$PATHDONEmonitor"; + +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|out\.gsm/i) && ($size1 eq $size2) && (length($FILES[$i]) > 4)) + { + $INfile = $FILES[$i]; + $OUTfile = $FILES[$i]; + $OUTfile =~ s/-in\.wav/-out.wav/gi; + $OUTfile =~ s/-in\.gsm/-out.gsm/gi; + $ALLfile = $FILES[$i]; + $ALLfile =~ s/-in\.wav/-all.wav/gi; + $ALLfile =~ s/-in\.gsm/-all.gsm/gi; + $SQLFILE = $FILES[$i]; + $SQLFILE =~ s/-in\.wav|-in\.gsm//gi; + + $stmtA = "select recording_id,start_time from recording_log where filename='$SQLFILE' order by recording_id desc LIMIT 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $recording_id = "$aryA[0]"; + $start_date = "$aryA[1]"; + $start_date =~ s/ .*//gi; + $rec_count++; + } + $sthA->finish(); + + if ($v) {print "|$INfile| |$ALLfile| |$recording_id|$start_date|\n";} + ### BEGIN Remote file transfer + $p = Net::Ping->new(); + $ping_good = $p->ping("$VARFTP_host"); + + if ($ping_good) + { + $ftp = Net::FTP->new("$VARFTP_host", Port => $VARFTP_port); + $ftp->login("$VARFTP_user","$VARFTP_pass"); + $ftp->cwd("$VARFTP_dir"); + $ftp->mkdir("$start_date"); + $ftp->cwd("$start_date"); + $ftp->binary(); + $ftp->put("$dir1/$INfile", "$ALLfile"); + $ftp->quit; + + $stmtA = "UPDATE recording_log set location='$VARHTTP_path/$start_date/$ALLfile' where recording_id='$recording_id';"; + if($DB){print STDERR "\n|$stmtA|\n";} + $affected_rows = $dbhA->do($stmtA); # or die "Couldn't execute query:|$stmtA|\n"; + + if (!$T) + { + `mv -f "$dir1/$INfile" "$dir2/ORIG/$INfile"`; + `mv -f "$dir1/$OUTfile" "$dir2/ORIG/$OUTfile"`; + } + } + ### END Remote file transfer + } + } + $i++; + } + +if ($v) {print "DONE... EXITING\n\n";} + +$dbhA->disconnect(); + + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_bin/Makefile b/agc_2-X/branches/agc_2.2.0/extras/old_bin/Makefile new file mode 100644 index 00000000..00c7ec22 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_bin/Makefile @@ -0,0 +1,151 @@ +# +# Makefile +# +# Copyright (C) 2007 VICIDIAL-astGUIclient LICENSE: GPLv2 +# +# CHANGES +# 71121-1430 - Initial release. +# 71130-2137 - Remove install-VDconfig section and replace with install-common. +# 71201-0358 - Use sh to run VDconfig. +# +# +# methods: +# make menuconfig +# Runs graphical configuration. +# +# make defaultconfig +# Creates a default install config file. +# +# make clean +# Removes previous install config. +# +# make install +# Install Non-Web, Web and documents. +# +# make install-nonweb +# Only install executables and other Non-Web components. +# +# make install-web +# Only install Web components. +# +# make install-docs +# Installs documents to /usr/share/doc/astGUIclient-(version) +# +# make install-asterisk-sample-config +# Installs sample configs in /etc/asterisk, backing-up existing files. + + +.PHONY : defaultconfig menuconfig .install .install-nonweb install-web install install-nonweb install-web install-docs install-asterisk-sample-config clean .install-complete .install-common install-asterisk-sample-configs +VDconfig := VDconfig +version := $(shell cat version) + +menuconfig: + @sh $(VDconfig) + +clean: + rm -f .agc.config + +.agc.config: + @echo "########################################################" + @echo "###" + @echo "### \".agc.config\" file not found." + @echo "### Running configuration and just using defaults." + @echo "###" + @echo "########################################################" + @sh $(VDconfig) --no-menu + +defaultconfig: .agc_config + @sh $(VDconfig) --no-menu + +# The following, install, install-nonweb and install-web shell-out to +# run VDconfig which set the path variables and runs make with .install* +install: .agc.config + @sh $(VDconfig) --env-make .$@ + +install-nonweb: .agc.config + @sh $(VDconfig) --env-make .$@ + +install-web: .agc.config + @sh $(VDconfig) --env-make .$@ + + +# The following, .install, .install-nonweb and .install-web are the actual +# methods used to install +.install: .install-nonweb .install-web install-docs .install-common .install-complete + +.install-common: + @echo "Installing VDconfig script..." + @install -d -m 755 $(DESTDIR)$(PATHhome) + @install -p -m 755 $(VDconfig) $(DESTDIR)$(PATHhome)/VDconfig + @install -d -m 755 $(DESTDIR)/usr/bin + @ln -fs $(PATHhome)/VDconfig $(DESTDIR)/usr/bin/VDconfig + @echo "Installing astGUIclient configuration to $(DESTDIR)/etc/astguiclient.conf..." + @install -d -m 755 $(DESTDIR)/etc + @install -p -m 644 ./.agc.config $(DESTDIR)/etc/astguiclient.conf + @echo "Creating log directory $(DESTDIR)$(PATHlogs)..." + @install -d -m 755 $(DESTDIR)$(PATHlogs) + +.install-nonweb: .install-common + @echo "Installing non-web components..." + @install -d -m 755 $(DESTDIR)$(PATHhome)/libs/Asterisk + @install -d -m 755 $(DESTDIR)$(PATHhome)/LEADS_IN/DONE + @install -d -m 755 $(DESTDIR)$(PATHmonitor) + @install -d -m 755 $(DESTDIR)$(PATHDONEmonitor)/ORIG + @install -d -m 755 $(DESTDIR)$(PATHagi) + @install -d -m 755 $(DESTDIR)$(PATHsounds) + @install -p -m 755 ./bin/* $(DESTDIR)$(PATHhome) + @install -p -m 755 ./extras/Asterisk.pm $(DESTDIR)$(PATHhome)/libs + @install -p -m 755 ./extras/Asterisk/* $(DESTDIR)$(PATHhome)/libs/Asterisk + @install -p -m 644 ./extras/GMT_USA_zip.txt $(DESTDIR)$(PATHhome) + @install -p -m 644 ./extras/phone_codes_GMT.txt $(DESTDIR)$(PATHhome) + @install -p -m 644 ./extras/MySQL_AST_CREATE_tables.sql $(DESTDIR)$(PATHhome) + @install -p -m 755 ./agi/* $(DESTDIR)$(PATHagi) + @install -p -m 644 ./sounds/* $(DESTDIR)$(PATHsounds) + +.install-web: .install-common + @echo "Installing web components in $(DESTDIR)$(PATHweb)..." + @install -d -m 777 $(DESTDIR)$(PATHweb)/agc/images + @install -d -m 777 $(DESTDIR)$(PATHweb)/vicidial/ploticus + @install -d -m 777 $(DESTDIR)$(PATHweb)/vicidial/agent_reports + @install -d -m 777 $(DESTDIR)$(PATHweb)/vicidial/server_reports + @install -p -m 755 ./www/agc/*.php $(DESTDIR)$(PATHweb)/agc + @install -p -m 644 ./www/agc/images/* $(DESTDIR)$(PATHweb)/agc/images + @install -p -m 755 ./www/vicidial/*.php $(DESTDIR)$(PATHweb)/vicidial + @install -p -m 755 ./www/vicidial/*.pl $(DESTDIR)$(PATHweb)/vicidial + @install -p -m 644 ./www/vicidial/*.gif $(DESTDIR)$(PATHweb)/vicidial + +install-asterisk-sample-configs: install-asterisk-sample-config + +install-asterisk-sample-config: + @echo "Installing sample configs in $(DESTDIR)/etc/asterisk..." + @install -d -m 777 $(DESTDIR)/etc/asterisk + @install -b -p -m 644 ./docs/conf_examples/extensions.conf.sample $(DESTDIR)/etc/asterisk/extensions.conf + @install -b -p -m 644 ./docs/conf_examples/meetme.conf.sample $(DESTDIR)/etc/asterisk/meetme.conf + @install -b -p -m 644 ./docs/conf_examples/manager.conf.sample $(DESTDIR)/etc/asterisk/manager.conf + @install -b -p -m 644 ./docs/conf_examples/musiconhold.conf.sample $(DESTDIR)/etc/asterisk/musiconhold.conf + @install -b -p -m 644 ./docs/conf_examples/voicemail.conf.sample $(DESTDIR)/etc/asterisk/voicemail.conf + @install -b -p -m 644 ./docs/conf_examples/sip.conf.sample $(DESTDIR)/etc/asterisk/sip.conf + @install -b -p -m 644 ./docs/conf_examples/logger.conf.sample $(DESTDIR)/etc/asterisk/logger.conf + @install -b -p -m 644 ./docs/conf_examples/iax.conf.sample $(DESTDIR)/etc/asterisk/iax.conf + @install -b -p -m 644 ./docs/conf_examples/dnsmgr.conf.sample $(DESTDIR)/etc/asterisk/dnsmgr.conf + +install-docs: + @echo "Installing documents in $(DESTDIR)/usr/share/doc/astGUIclient-$(version)..." + @install -d -m 755 $(DESTDIR)/usr/share/doc/astGUIclient-$(version)/conf_examples + @install -p -m 644 ./docs/*.txt $(DESTDIR)/usr/share/doc/astGUIclient-$(version) + @install -p -m 644 ./docs/conf_examples/* $(DESTDIR)/usr/share/doc/astGUIclient-$(version)/conf_examples + +.install-complete: + @echo + @echo + @echo + @echo "#################################################################" + @echo "### ####" + @echo "### VICIDIAL-astGUIclient ####" + @echo "### INSTALLATION COMPLETE ####" + @echo "### ####" + @echo "### Please continue with the steps in SCRATH_INSTALL.txt ####" + @echo "### ####" + @echo "### Run /usr/bin/VDconfig to modify the configuration. ####" + @echo "### ####" + @echo "#################################################################" diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_bin/VDconfig b/agc_2-X/branches/agc_2.2.0/extras/old_bin/VDconfig new file mode 100644 index 00000000..ffcd643e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_bin/VDconfig @@ -0,0 +1,924 @@ +#!/bin/sh +# +# VDconfig +# +# Copyright (C) 2007 VICIDIAL-astGUIclient LICENSE: GPLv2 +# + +# CHANGES +# 71120-0000 - Iniitial release +# 71121-1220 - Added --no-menu to merge in astguiclient.conf and save config. +# 71121-1334 - Added --env-make [make_option] to set environment before make. +# 71129-1947 - Fixed .agc-config load problem, fixed duplicate save issue. + + + +SetDefaults () +{ + # default path to astguicient configuration file: + PATHconf="/etc/astguiclient.conf" + # default path to home direct: + PATHhome="/usr/share/astguiclient" + # default path to astguiclient logs directory: + PATHlogs="/var/log/astguiclient" + # default path to asterisk agi-bin directory: + PATHagi="/var/lib/asterisk/agi-bin" + # default path to web root directory (Best guess): + PATHweb="/var/www/html" + if [ -e "/usr/apache2/htdocs" ]; then + PATHweb="/usr/apache2/htdocs" + elif [ -e "/usr/local/apache2/htdocs" ]; then + PATHweb="/usr/local/apache2/htdocs" + fi + # default path to asterisk sounds directory: + PATHsounds="/var/lib/asterisk/sounds" + # default path to asterisk recording directory: + PATHmonitor="/var/spool/asterisk/monitor" + # default path to asterisk recording DONE directory: + PATHDONEmonitor="/var/spool/asterisk/monitorDONE" + # the IP address of this machine. default to best guess: + VARserver_ip=`/sbin/ifconfig eth0 | grep 'inet addr' | awk -F: '{ print $2 }' | awk '{ print $1 }'` + # default database server variables: + VARDB_server="localhost" + VARDB_database="asterisk" + VARDB_user="cron" + VARDB_pass="1234" + VARDB_port="3306" + # default keepalive processes: + VARactive_keepalives="123456" + # default recording FTP archive variables: + VARFTP_host=$VARserver_ip + VARFTP_user="cron" + VARFTP_pass="test" + VARFTP_port="21" + VARFTP_dir="RECORDINGS" + VARHTTP_path="http://$VARserver_ip" + # default report FTP variables: + VARREPORT_host=$VARserver_ip + VARREPORT_user="cron" + VARREPORT_pass="test" + VARREPORT_port="21" + VARREPORT_dir="REPORTS" + # defaults for FastAGI Server PreFork + VARfastagi_log_min_servers="3" + VARfastagi_log_max_servers="16" + VARfastagi_log_min_spare_servers="2" + VARfastagi_log_max_spare_servers="8" + VARfastagi_log_max_requests="1000" + VARfastagi_log_checkfordead="30" + VARfastagi_log_checkforwait="60" +} + +FileLocationConfig () +{ + DONE=no + while [ "$DONE" != "yes" ]; do + { + $DIALOG --clear --ok-label "Edit" --cancel-label "Done" \ + --backtitle "$BACKTITLE" \ + --item-help \ + --title "General Configuration Menu" \ + --menu "General configuration and file location menu.\n" \ + 15 74 8 \ + 1 "This server's IP address" "This server's IP address: $VARserver_ip" \ + 2 "Home directory" "Home directory: $PATHhome" \ + 3 "Log directory" "Log directory: $PATHlogs" \ + 4 "Web root directory" "Web root directory: $PATHweb" \ + 5 "Asterisk AGI-bin directory" "Asterisk AGI-bin direcory: $PATHagi" \ + 6 "Asterisk sounds directory" "Asterisk sounds directory: $PATHsounds" \ + 7 "Asterisk recordings directory" "Asterisk recordings directory: $PATHmonitor" \ + 8 "Asterisk recordings DONE directory" "Asterisk recordings DONE directory $PATHDONEmonitor" 2>$TEMP + + if [ "$?" != "0" ]; then + { + DONE=yes + } + else + { + set `cat $TEMP` + if [ "$1" = "1" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Server IP Address" \ + --inputbox "Enter this server's IP address:" 9 74 "$VARserver_ip" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARserver_ip=$1 + } + fi + } + elif [ "$1" = "2" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Home Directory" \ + --inputbox "Enter the astguiclient home directory" 9 74 "$PATHhome" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + PATHhome=$1 + } + fi + } + elif [ "$1" = "3" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Log Directory" \ + --inputbox "Enter the log directory" 9 74 "$PATHlogs" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + PATHlogs=$1 + } + fi + } + elif [ "$1" = "4" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Web Root Directory" \ + --inputbox "Enter the web root directory:" 9 74 "$PATHweb" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + PATHweb=$1 + } + fi + } + elif [ "$1" = "5" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Asterisk AGI-bin Directory" \ + --inputbox "Enter the location of Asterisk's AGI-bin directory:" 9 74 "$PATHagi" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + PATHagi=$1 + } + fi + } + elif [ "$1" = "6" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Asterisk Sound Directory" \ + --inputbox "Enter the location of Asterisk's sounds directory:" 9 74 "$PATHsounds" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + PATHsounds=$1 + } + fi + } + elif [ "$1" = "7" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Asterisk Recording Directory" \ + --inputbox "Enter the location of Asterisk's recordings directory:" 9 74 "$PATHmonitor" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + PATHmonitor=$1 + } + fi + } + elif [ "$1" = "8" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Asterisk Recording Completed Directory" \ + --inputbox "Enter the location of Asterisk's recording completion directory:" 9 74 "$PATHDONEmonitor" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + PATHDONEmonitor=$1 + } + fi + } + fi + } + fi + } + done + return 0 +} + +DatabaseConfig () +{ + DONE=no + while [ "$DONE" != "yes" ]; do + { + $DIALOG --clear --ok-label "Edit" --cancel-label "Done" \ + --backtitle "$BACKTITLE" \ + --item-help \ + --title "Database Configuration Menu" \ + --menu "Setup database access parameters.\n" \ + 12 74 5 \ + 1 "MySQL server" "MySQL server: $VARDB_server" \ + 2 "MySQL port" "MySQL port: $VARDB_port" \ + 3 "MySQL database" "MySQL database: $VARDB_database" \ + 4 "MySQL user" "MySQL user: $VARDB_user" \ + 5 "MySQL password" "MySQL password: $VARDB_pass" \ + 2> $TEMP + + if [ "$?" != "0" ]; then + { + DONE=yes + } + else + { + set `cat $TEMP` + if [ "$1" = "1" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "MySQL Server Address" \ + --inputbox "Enter server's IP address or hostname:" 9 74 "$VARDB_server" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARDB_server=$1 + } + fi + } + elif [ "$1" = "2" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "MySQL Port" \ + --inputbox "Enter port of the MySQL server:" 9 74 "$VARDB_port" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARDB_port=$1 + } + fi + } + elif [ "$1" = "3" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "MySQL Database" \ + --inputbox "Enter database name to use:" 9 74 "$VARDB_database" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARDB_database=$1 + } + fi + } + elif [ "$1" = "4" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "MySQL Username" \ + --inputbox "Enter the username:" 9 74 "$VARDB_user" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARDB_user=$1 + } + fi + } + elif [ "$1" = "5" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "MySQL Password" \ + --inputbox "Enter the password for the above user:" 9 74 "$VARDB_pass" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARDB_pass=$1 + } + fi + } + fi + } + fi + } + done + return 0 +} + +RecordingConfig () +{ + DONE=no + while [ "$DONE" != "yes" ]; do + { + $DIALOG --clear --ok-label "Edit" --cancel-label "Done" \ + --backtitle "$BACKTITLE" \ + --item-help \ + --title "Recording Configuration Menu" \ + --menu "Setup recording FTP/HTTP access.\n" \ + 13 74 6 \ + 1 "FTP host" "FTP host: $VARFTP_host" \ + 2 "FTP port" "FTP port: $VARFTP_port" \ + 3 "FTP user" "FTP user: $VARFTP_user" \ + 4 "FTP password" "FTP password: $VARFTP_pass" \ + 5 "FTP directory" "FTP directory: $VARFTP_dir" \ + 6 "HTTP path" "HTTP path: $VARHTTP_path" \ + 2> $TEMP + + if [ "$?" != "0" ]; then + { + DONE=yes + } + else + { + set `cat $TEMP` + if [ "$1" = "1" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Server Address" \ + --inputbox "Enter server's IP address or hostname:" 9 74 "$VARFTP_host" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_host=$1 + } + fi + } + elif [ "$1" = "2" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Port" \ + --inputbox "Enter port of the FTP server:" 9 74 "$VARFTP_port" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_port=$1 + } + fi + } + elif [ "$1" = "3" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Username" \ + --inputbox "Enter username:" 9 74 "$VARFTP_user" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_user=$1 + } + fi + } + elif [ "$1" = "4" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Password" \ + --inputbox "Enter the password:" 9 74 "$VARFTP_pass" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_pass=$1 + } + fi + } + elif [ "$1" = "5" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Directory" \ + --inputbox "Enter the directory to upload to:" 9 74 "$VARFTP_dir" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_dir=$1 + } + fi + } + elif [ "$1" = "6" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "HTTP Path" \ + --inputbox "Enter the HTTP path to the FTP uploads:" 9 74 "$VARHTTP_path" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARHTTP_path=$1 + } + fi + } + fi + } + fi + } + done + return 0 +} + +ReportingConfig () +{ + DONE=no + while [ "$DONE" != "yes" ]; do + { + $DIALOG --clear --ok-label "Edit" --cancel-label "Done" \ + --backtitle "$BACKTITLE" \ + --item-help \ + --title "Reporting Configuration Menu" \ + --menu "Setup reporting FTP access.\n" \ + 12 74 5 \ + 1 "FTP host" "FTP host: $VARREPORT_host" \ + 2 "FTP port" "FTP port: $VARREPORT_port" \ + 3 "FTP user" "FTP user: $VARREPORT_user" \ + 4 "FTP password" "FTP password: $VARREPORT_pass" \ + 5 "FTP directory" "FTP directory: $VARREPORT_dir" \ + 2> $TEMP + + if [ "$?" != "0" ]; then + { + DONE=yes + } + else + { + set `cat $TEMP` + if [ "$1" = "1" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Server Address" \ + --inputbox "Enter server's IP address or hostname:" 9 74 "$VARFTP_host" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_host=$1 + } + fi + } + elif [ "$1" = "2" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Port" \ + --inputbox "Enter port of the FTP server:" 9 74 "$VARFTP_port" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_port=$1 + } + fi + } + elif [ "$1" = "3" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Username" \ + --inputbox "Enter username:" 9 74 "$VARFTP_user" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_user=$1 + } + fi + } + elif [ "$1" = "4" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Password" \ + --inputbox "Enter the password:" 9 74 "$VARFTP_pass" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_pass=$1 + } + fi + } + elif [ "$1" = "5" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FTP Directory" \ + --inputbox "Enter the directory to upload to:" 9 74 "$VARFTP_dir" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARFTP_dir=$1 + } + fi + } + fi + } + fi + } + done + return 0 +} + +FastAGIConfig () +{ + DONE=no + while [ "$DONE" != "yes" ]; do + { + $DIALOG --clear --ok-label "Edit" --cancel-label "Done" \ + --backtitle "$BACKTITLE" \ + --item-help \ + --title "FastAGI Configuration Menu" \ + --menu "Settings for FastAGI logging server.\n" \ + 14 74 7 \ + 1 "Minimum Servers ($VARfastagi_log_min_servers)" "Minimum Servers: $VARfastagi_log_min_servers" \ + 2 "Maximum Servers ($VARfastagi_log_max_servers)" "Maximum Servers: $VARfastagi_log_max_servers" \ + 3 "Minimum Spares ($VARfastagi_log_min_spare_servers)" "Minimum Spares: $VARfastagi_log_min_spare_servers" \ + 4 "Maximum Spares ($VARfastagi_log_max_spare_servers)" "Maximum Spares: $VARfastagi_log_max_spare_servers" \ + 5 "Maximum Requests ($VARfastagi_log_max_requests)" "Maximum Requests: $VARfastagi_log_max_requests" \ + 6 "Check for Dead ($VARfastagi_log_checkfordead)" "Check for Dead: $VARfastagi_log_checkfordead" \ + 7 "Check for Wait ($VARfastagi_log_checkforwait)" "Check for Wait: $VARfastagi_log_checkforwait" \ + 2> $TEMP + + if [ "$?" != "0" ]; then + { + DONE=yes + } + else + { + set `cat $TEMP` + if [ "$1" = "1" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FastAGI Logger Minimum Servers" \ + --inputbox "Enter the minimum servers to run:" 9 74 "$VARfastagi_log_min_servers" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARfastagi_log_min_servers=$1 + } + fi + } + elif [ "$1" = "2" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FastAGI Logger Maximum Servers" \ + --inputbox "Enter the maximum number of servers to run:" 9 74 "$VARfastagi_log_max_servers" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARfastagi_log_max_servers=$1 + } + fi + } + elif [ "$1" = "3" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FastAGI Logger Minimum Spare Servers" \ + --inputbox "Enter the minimum number of spares:" 9 74 "$VARfastagi_log_min_spare_servers" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARfastagi_log_min_spare_servers=$1 + } + fi + } + elif [ "$1" = "4" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FastAGI Logger Maximum Spare Servers" \ + --inputbox "Enter the maximum number of spares:" 9 74 "$VARfastagi_log_max_spare_servers" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARfastagi_log_max_spare_servers=$1 + } + fi + } + elif [ "$1" = "5" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FastAGI Logger Maximum Requests" \ + --inputbox "Enter the maximum requests before killing server:" 9 74 "$VARfastagi_log_max_requests" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARfastagi_log_max_requests=$1 + } + fi + } + elif [ "$1" = "6" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FastAGI Logger Check for Dead" \ + --inputbox "Enter the check for dead time:" 9 74 "$VARfastagi_log_checkfordead" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARfastagi_log_cheackfordead=$1 + } + fi + } + elif [ "$1" = "7" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "FastAGI Logger Check for Wait" \ + --inputbox "Enter the check for wait time:" 9 74 "$VARfastagi_log_checkforwait" \ + 2> $TEMP + if [ "$?" = "0" ]; then + { + set `cat $TEMP` + VARfastagi_log_checkforwait=$1 + } + fi + } + fi + } + fi + } + done + return 0 +} + +RunPerlKeepAliveSep () +{ + KATMP="/tmp/.agc.conf.katmp.$$" + KAPTMP="/tmp/.agc.conf.kaptmp.$$" + echo '$k1 = "off"; $k2 = "off"; $k3 = "off"; $k4 = "off"; $k5 = "off"; $k6 = "off"; $k7 = "off";' > $KAPTMP + echo 'foreach $i (split //, $ARGV[0]) {' >> $KAPTMP + echo ' if ($i eq "1") { $k1 = "on"; } elsif ($i eq "2") { $k2 = "on";' >> $KAPTMP + echo ' } elsif ($i eq "3") { $k3 = "on"; } elsif ($i eq "4") { $k4 = "on";' >> $KAPTMP + echo ' } elsif ($i eq "5") { $k5 = "on"; } elsif ($i eq "6") { $k6 = "on";' >> $KAPTMP + echo ' } elsif ($i eq "7") { $k7 = "on"; }' >> $KAPTMP + echo '}' >> $KAPTMP + echo 'print "K1=$k1\nK2=$k2\nK3=$k3\nK4=$k4\nK5=$k5\nK6=$k6\nK7=$k7\n";' >> $KAPTMP + perl $KAPTMP $VARactive_keepalives >> $KATMP + . $KATMP + rm -f $KAPTMP + rm -f $KATMP +} + +KeepaliveConfig () +{ + RunPerlKeepAliveSep + DONE=no + while [ "$DONE" != "yes" ]; do + { + $DIALOG --clear --ok-label "Done" \ + --backtitle "$BACKTITLE" \ + --no-cancel \ + --item-help \ + --title "Keepalive Configuration Menu" \ + --checklist "Settings for keepalive processes.\nDeselect all items if you do not want any keepalive processes running.\n\nUse (Space) to select/deselect items." \ + 17 74 7 \ + 1 "AST_update" "$K1" "" \ + 2 "AST_send_listen" "$K2" "" \ + 3 "AST_VDauto_dial" "$K3" "" \ + 4 "AST_VDremote_agents" "$K4" "" \ + 5 "AST_VDadapt" "$K5" "If multi-server system, this must only be on one server." \ + 6 "FastAGI Logger" "$K6" "" \ + 7 "AST_VDauto_dial_FILL" "$K7" "Only for multi-server, this must only be on one server." \ + 2> $TEMP + + if [ "$?" = "0" ]; then + { + DONE=yes + VARactive_keepalives=`cat $TEMP | tr -d '"' | tr -d ' '` + if [ "$VARactive_keepalives" = "" ]; then + { + VARactive_keepalives="X" + } + fi + } + fi + } + done + return 0 +} + + +SaveConfig () + { + echo "# astguiclient.conf - configuration elements for the astguiclient package" > $PATHconf + echo "# this is the astguiclient configuration file" >> $PATHconf + echo "# all comments will be lost if you run install.pl again" >> $PATHconf + echo "AGCversion => $AGCversion" >> $PATHconf + echo "" >> $PATHconf + echo "# Paths used by astGUIclient" >> $PATHconf + echo "PATHhome => $PATHhome" >> $PATHconf + echo "PATHlogs => $PATHlogs" >> $PATHconf + echo "PATHagi => $PATHagi" >> $PATHconf + echo "PATHweb => $PATHweb" >> $PATHconf + echo "PATHsounds => $PATHsounds" >> $PATHconf + echo "PATHmonitor => $PATHmonitor" >> $PATHconf + echo "" >> $PATHconf + echo "# The IP address of this machine" >> $PATHconf + echo "VARserver_ip => $VARserver_ip" >> $PATHconf + echo "" >> $PATHconf + echo "# Database connection information" >> $PATHconf + echo "VARDB_server => $VARDB_server" >> $PATHconf + echo "VARDB_database => $VARDB_database" >> $PATHconf + echo "VARDB_user => $VARDB_user" >> $PATHconf + echo "VARDB_pass => $VARDB_pass" >> $PATHconf + echo "VARDB_port => $VARDB_port" >> $PATHconf + echo "" >> $PATHconf + echo "# Alpha-Numeric list of the astGUIclient processes to be kept running" >> $PATHconf + echo "# (value should be listing of characters with no spaces: 123456)" >> $PATHconf + echo "# X - NO KEEPALIVE PROCESSES (use only if you want none to be keepalive)" >> $PATHconf + echo "# 1 - AST_update" >> $PATHconf + echo "# 2 - AST_send_listen" >> $PATHconf + echo "# 3 - AST_VDauto_dial" >> $PATHconf + echo "# 4 - AST_VDremote_agents" >> $PATHconf + echo "# 5 - AST_VDadapt (If multi-server system, this must only be on one server)" >> $PATHconf + echo "# 6 - FastAGI_log" >> $PATHconf + echo "# 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server)" >> $PATHconf + echo "VARactive_keepalives => $VARactive_keepalives" >> $PATHconf + echo "" >> $PATHconf + echo "# Settings for FastAGI logging server" >> $PATHconf + echo "VARfastagi_log_min_servers => $VARfastagi_log_min_servers" >> $PATHconf + echo "VARfastagi_log_max_servers => $VARfastagi_log_max_servers" >> $PATHconf + echo "VARfastagi_log_min_spare_servers => $VARfastagi_log_min_spare_servers" >> $PATHconf + echo "VARfastagi_log_max_spare_servers => $VARfastagi_log_max_spare_servers" >> $PATHconf + echo "VARfastagi_log_max_requests => $VARfastagi_log_max_requests" >> $PATHconf + echo "VARfastagi_log_checkfordead => $VARfastagi_log_checkfordead" >> $PATHconf + echo "VARfastagi_log_checkforwait => $VARfastagi_log_checkforwait" >> $PATHconf + echo "" >> $PATHconf + echo "# Recording FTP archive variables" >> $PATHconf + echo "VARFTP_host => $VARFTP_host" >> $PATHconf + echo "VARFTP_user => $VARFTP_user" >> $PATHconf + echo "VARFTP_pass => $VARFTP_pass" >> $PATHconf + echo "VARFTP_port => $VARFTP_port" >> $PATHconf + echo "VARFTP_dir => $VARFTP_dir" >> $PATHconf + echo "VARHTTP_path => $VARHTTP_path" >> $PATHconf + echo "" >> $PATHconf + echo "# Report FTP variables" >> $PATHconf + echo "VARREPORT_host => $VARREPORT_host" >> $PATHconf + echo "VARREPORT_user => $VARREPORT_user" >> $PATHconf + echo "VARREPORT_pass => $VARREPORT_pass" >> $PATHconf + echo "VARREPORT_port => $VARREPORT_port" >> $PATHconf + echo "VARREPORT_dir => $VARREPORT_dir" >> $PATHconf + + chmod 644 $PATHconf + + MESSAGE="Configuration: $PATHconf" + EXIT="yes" + } + +############################################################################# +## Main Program +if ! which dialog > /dev/null; then +{ + echo "dialog not found!" + exit 1 +} +fi + +DIALOG="dialog" +TEMP="/tmp/.agc.tmp.$$" +EXIT="no" +MESSAGE="Abnormal Termination" + +# Source to environment and do not print messages. +if [ "$1" = "--env-make" ]; then + EXIT="yes" + OUTPUT="no" +fi + +if [ "$1" = "--no-menu" ]; then + EXIT="yes" + MENU="no" +fi + +# If a config for install is in current directory, use that. +if [ -f ".agc.config" ]; then +{ + PATHconf=".agc.config" +} +fi + +# Set defaults and load configuration. +SetDefaults +if [ -f "version" ]; then +{ + AGCversion=`cat version` + INSTALL="yes" + PATHconf=".agc.config" +} +fi +if [ -f "$PATHconf" ]; then +{ + CONFIG="/tmp/.agc.conf.$$" + if [ "$OUTPUT" != "no" ]; then + echo "Loading saved configuration from $PATHconf" + sleep 1 + fi + sed 's/[ |>|\t]//g' $PATHconf > $CONFIG + . $CONFIG + rm -f $CONFIG +} +fi + +# If version is blank, assume 2.0.3" +if [ "$AGCversion" = "" ]; then +{ + AGCversion="2.0.3" +} +fi + +while [ "$EXIT" != "yes" ]; do + { + BACKTITLE="VICIDIAL-astGUIclient $AGCversion Configuration" + MM_TEXT="Welcome to the VICIDIAL-astGUIclient Configuration Menu." + MM_TEXT="$MM_TEXT\nHere can configure the default settings for" + MM_TEXT="$MM_TEXT VICIDIAL-astGUIclient." + if [ "$INSTALL" = "yes" ]; then + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Main Configuration Menu" \ + --menu "$MM_TEXT" 18 74 10 \ + 1 "General configuration & file locations" \ + 2 "Database configuration" \ + 3 "Recording (FTP) configuration" \ + 4 "Reporting (FTP) configuration" \ + 5 "FastAGI server configuration" \ + 6 "Active Keepalives" \ + - "---------------------------------------" \ + 7 "Save configuration & exit" \ + 8 "Exit WITHOUT saving" \ + 9 "Save configuration & install" \ + 2>$TEMP + } + else + { + $DIALOG --clear --backtitle "$BACKTITLE" \ + --title "Main Configuration Menu" \ + --menu "$MM_TEXT" 17 74 9 \ + 1 "General configuration & file locations" \ + 2 "Database configuration" \ + 3 "Recording (FTP) configuration" \ + 4 "Reporting (FTP) configuration" \ + 5 "FastAGI server configuration" \ + 6 "Active Keepalives" \ + - "--------------------------------------" \ + 7 "Save configuration & exit" \ + 8 "Exit WITHOUT saving" \ + 2>$TEMP + } + fi + + if [ "$?" != "0" ]; then + { + MESSAGE="Configuration cancelled!" + EXIT="yes" + } + else + { + set `cat $TEMP` + if [ "$1" = "1" ]; then FileLocationConfig + elif [ "$1" = "2" ]; then DatabaseConfig + elif [ "$1" = "3" ]; then RecordingConfig + elif [ "$1" = "4" ]; then ReportingConfig + elif [ "$1" = "5" ]; then FastAGIConfig + elif [ "$1" = "6" ]; then KeepaliveConfig + elif [ "$1" = "7" ]; then SaveConfig + elif [ "$1" = "8" ]; then + { + MESSAGE="Configuration NOT saved!" + EXIT=yes + } + elif [ "$1" = "9" ]; then + { + SaveConfig + RUNINSTALL=yes + } + fi + } + fi +} +done + +if [ "$MENU" = "no" ]; then + SaveConfig +fi + +rm -f $TEMP +if [ "$OUTPUT" != "no" ]; then + echo "$0 written by Lott Caskey, 2007-11-19." + echo + echo + echo $MESSAGE +fi + +if [ "$1" = "--env-make" ]; then + export PATHconf PATHhome PATHlogs PATHagi PATHweb PATHsounds + export PATHmonitor PATHDONEmonitor DESTDIR + make $2 +fi + +if [ "$RUNINSTALL" = "yes" ]; then + export PATHconf PATHhome PATHlogs PATHagi PATHweb PATHsounds + export PATHmonitor PATHDONEmonitor DESTDIR + make install +fi diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.1.sql b/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.1.sql new file mode 100644 index 00000000..bc27592d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.1.sql @@ -0,0 +1,32 @@ +ALTER TABLE servers ADD sys_perf_log ENUM('Y','N') default 'N'; +ALTER TABLE servers ADD vd_server_logs ENUM('Y','N') default 'Y'; +ALTER TABLE servers ADD agi_output ENUM('NONE','STDERR','FILE','BOTH') default 'FILE'; +ALTER TABLE vicidial_campaigns ADD allcalls_delay SMALLINT(3) UNSIGNED default '0'; +ALTER TABLE vicidial_campaigns ADD omit_phone_code ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns MODIFY campaign_recording ENUM('NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'ONDEMAND'; + +ALTER TABLE vicidial_list MODIFY phone_number VARCHAR(12); +ALTER TABLE vicidial_auto_calls MODIFY phone_number VARCHAR(12); +ALTER TABLE vicidial_log MODIFY phone_number VARCHAR(12); +ALTER TABLE vicidial_closer_log MODIFY phone_number VARCHAR(12); +ALTER TABLE vicidial_xfer_log MODIFY phone_number VARCHAR(12); +ALTER TABLE vicidial_list_pins MODIFY phone_number VARCHAR(12); +ALTER TABLE vicidial_dnc MODIFY phone_number VARCHAR(12); +ALTER TABLE vicidial_list MODIFY alt_phone VARCHAR(12); + +ALTER TABLE phones MODIFY local_gmt VARCHAR(6) default '-5'; +ALTER TABLE servers MODIFY local_gmt VARCHAR(6) default '-5'; + +ALTER TABLE vicidial_campaigns MODIFY auto_dial_level VARCHAR(6) default '0'; +ALTER TABLE vicidial_campaigns ADD dial_method ENUM('MANUAL','RATIO','ADAPT_HARD_LIMIT','ADAPT_TAPERED','ADAPT_AVERAGE') default 'MANUAL'; +ALTER TABLE vicidial_campaigns ADD available_only_ratio_tally ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD adaptive_dropped_percentage SMALLINT(3) default '3'; +ALTER TABLE vicidial_campaigns ADD adaptive_maximum_level VARCHAR(6) default '3.0'; +ALTER TABLE vicidial_campaigns ADD adaptive_latest_server_time VARCHAR(4) default '2100'; +ALTER TABLE vicidial_campaigns ADD adaptive_intensity VARCHAR(6) default '0'; +ALTER TABLE vicidial_campaigns ADD adaptive_dl_diff_target SMALLINT(3) default '0'; + +ALTER TABLE vicidial_campaign_stats ADD differential_onemin VARCHAR(20) default '0'; +ALTER TABLE vicidial_campaign_stats ADD agents_average_onemin VARCHAR(20) default '0'; + +ALTER TABLE vicidial_closer_log ADD queue_seconds DECIMAL(7,2) default '0'; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.2.sql b/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.2.sql new file mode 100644 index 00000000..5a81197d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.2.sql @@ -0,0 +1,59 @@ +ALTER TABLE vicidial_campaign_stats ADD balance_trunk_fill SMALLINT(5) UNSIGNED default '0'; + + CREATE TABLE vicidial_campaign_server_stats ( +campaign_id VARCHAR(20) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +update_time TIMESTAMP, +local_trunk_shortage SMALLINT(5) UNSIGNED default '0', +index (campaign_id), +index (server_ip) +); + + CREATE TABLE vicidial_server_trunks ( +server_ip VARCHAR(15) NOT NULL, +campaign_id VARCHAR(20) NOT NULL, +dedicated_trunks SMALLINT(5) UNSIGNED default '0', +trunk_restriction ENUM('MAXIMUM_LIMIT','OVERFLOW_ALLOWED') default 'OVERFLOW_ALLOWED', +index (campaign_id), +index (server_ip) +); + +ALTER TABLE servers ADD vicidial_balance_active ENUM('Y','N') default 'N'; +ALTER TABLE servers ADD balance_trunks_offlimits SMALLINT(5) UNSIGNED default '0'; + +DELETE from vicidial_phone_codes; + + +ALTER TABLE vicidial_auto_calls ADD stage VARCHAR(20) default 'START'; +ALTER TABLE vicidial_auto_calls ADD last_update_time TIMESTAMP; +ALTER TABLE vicidial_auto_calls ADD index (last_update_time); + +ALTER TABLE vicidial_auto_calls MODIFY call_type ENUM('IN','OUT','OUTBALANCE') default 'OUT'; + +ALTER TABLE vicidial_user_groups ADD allowed_campaigns TEXT; + +UPDATE vicidial_user_groups SET allowed_campaigns=' -ALL-CAMPAIGNS- - -'; + + CREATE TABLE vicidial_postal_codes ( +postal_code VARCHAR(10) NOT NULL, +state VARCHAR(4), +GMT_offset VARCHAR(5), +DST enum('Y','N'), +DST_range VARCHAR(8), +country CHAR(3), +country_code SMALLINT(5) UNSIGNED +); + +ALTER TABLE vicidial_list ADD index (postal_code); + +ALTER TABLE recording_log ADD lead_id INT(9) UNSIGNED; +ALTER TABLE recording_log ADD index (lead_id); +ALTER TABLE recording_log ADD user VARCHAR(20); +ALTER TABLE recording_log ADD index (user); + +ALTER TABLE vicidial_campaign_stats ADD answers_today INT(9) UNSIGNED default '0' AFTER calls_today; +ALTER TABLE vicidial_campaign_stats ADD drops_answers_today_pct VARCHAR(6) default '0' AFTER drops_today_pct; +ALTER TABLE vicidial_campaign_stats ADD answers_hour INT(9) UNSIGNED default '0' AFTER calls_hour; +ALTER TABLE vicidial_campaign_stats ADD answers_halfhour INT(9) UNSIGNED default '0' AFTER calls_halfhour; +ALTER TABLE vicidial_campaign_stats ADD answers_fivemin INT(9) UNSIGNED default '0' AFTER calls_fivemin; +ALTER TABLE vicidial_campaign_stats ADD answers_onemin INT(9) UNSIGNED default '0' AFTER calls_onemin; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.3.sql b/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.3.sql new file mode 100644 index 00000000..a3663a48 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.3.sql @@ -0,0 +1,121 @@ +ALTER TABLE vicidial_campaigns ADD concurrent_transfers ENUM('AUTO','1','2','3','4','5','6','7','8','9','10') default 'AUTO'; +ALTER TABLE vicidial_campaigns ADD auto_alt_dial ENUM('NONE','ALT_ONLY','ADDR3_ONLY','ALT_AND_ADDR3') default 'NONE'; +ALTER TABLE vicidial_campaigns ADD auto_alt_dial_statuses VARCHAR(255) default ' B N NA DC -'; + +ALTER TABLE vicidial_auto_calls ADD alt_dial ENUM('NONE','MAIN','ALT','ADDR3') default 'NONE'; + +ALTER TABLE vicidial_hopper ADD alt_dial ENUM('NONE','ALT','ADDR3') default 'NONE'; +ALTER TABLE vicidial_hopper MODIFY status ENUM('READY','QUEUE','INCALL','DONE','HOLD') default 'READY'; + +ALTER TABLE vicidial_log ADD user_group VARCHAR(20); +ALTER TABLE vicidial_closer_log ADD user_group VARCHAR(20); +ALTER TABLE vicidial_user_log ADD user_group VARCHAR(20); +ALTER TABLE vicidial_agent_log ADD user_group VARCHAR(20); +ALTER TABLE vicidial_callbacks ADD user_group VARCHAR(20); + +ALTER TABLE vicidial_users ADD modify_users ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD modify_campaigns ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD modify_lists ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD modify_scripts ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD modify_filters ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD modify_ingroups ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD modify_usergroups ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD modify_remoteagents ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD modify_servers ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD view_reports ENUM('0','1') default '0'; + +UPDATE vicidial_users SET modify_users='1',view_reports='1' where user_level>7; +UPDATE vicidial_users SET modify_campaigns='1' where campaign_detail='1'; +UPDATE vicidial_users SET modify_campaigns='1' where delete_campaigns='1'; +UPDATE vicidial_users SET modify_lists='1' where delete_lists='1'; +UPDATE vicidial_users SET modify_scripts='1' where delete_scripts='1'; +UPDATE vicidial_users SET modify_filters='1' where delete_filters='1'; +UPDATE vicidial_users SET modify_ingroups='1' where delete_ingroups='1'; +UPDATE vicidial_users SET modify_usergroups='1' where delete_user_groups='1'; +UPDATE vicidial_users SET modify_remoteagents='1' where delete_remote_agents='1'; +UPDATE vicidial_users SET modify_servers='1' where ast_admin_access='1'; + +ALTER TABLE inbound_numbers ADD department VARCHAR(30); + +ALTER TABLE vicidial_agent_log ADD comments VARCHAR(20); +ALTER TABLE vicidial_agent_log ADD sub_status VARCHAR(6); +ALTER TABLE vicidial_live_agents ADD comments VARCHAR(20); + +ALTER TABLE vicidial_campaigns ADD agent_pause_codes_active ENUM('Y','N') default 'N'; + + CREATE TABLE vicidial_pause_codes ( +pause_code VARCHAR(6) NOT NULL, +pause_code_name VARCHAR(30), +billable ENUM('NO','YES','HALF') default 'NO', +campaign_id VARCHAR(8), +index (campaign_id) +); + +ALTER TABLE vicidial_list DROP INDEX lead_id; +ALTER TABLE recording_log DROP INDEX recording_id; +ALTER TABLE call_log DROP INDEX uniqueid; +ALTER TABLE park_log DROP INDEX uniqueid; +ALTER TABLE vicidial_manager DROP INDEX man_id; +ALTER TABLE vicidial_hopper DROP INDEX hopper_id; +ALTER TABLE vicidial_live_agents DROP INDEX live_agent_id; +ALTER TABLE vicidial_auto_calls DROP INDEX auto_call_id; +ALTER TABLE vicidial_log DROP INDEX uniqueid; +ALTER TABLE vicidial_closer_log DROP INDEX closecallid; +ALTER TABLE vicidial_xfer_log DROP INDEX xfercallid; +ALTER TABLE vicidial_users DROP INDEX user_id; +ALTER TABLE vicidial_user_log DROP INDEX user_log_id; +ALTER TABLE vicidial_campaigns DROP INDEX campaign_id; +ALTER TABLE vicidial_lists DROP INDEX list_id; +ALTER TABLE vicidial_statuses DROP INDEX status; +ALTER TABLE vicidial_inbound_groups DROP INDEX group_id; +ALTER TABLE vicidial_stations DROP INDEX agent_station; +ALTER TABLE vicidial_remote_agents DROP INDEX remote_agent_id; +ALTER TABLE vicidial_agent_log DROP INDEX agent_log_id; +ALTER TABLE vicidial_scripts DROP INDEX script_id; +ALTER TABLE vicidial_lead_recycle DROP INDEX recycle_id; + +ALTER TABLE vicidial_lists ADD list_description VARCHAR(255); +ALTER TABLE vicidial_lists ADD list_changedate DATETIME; +ALTER TABLE vicidial_lists ADD list_lastcalldate DATETIME; +ALTER TABLE vicidial_campaigns ADD campaign_description VARCHAR(255); +ALTER TABLE vicidial_campaigns ADD campaign_changedate DATETIME; +ALTER TABLE vicidial_campaigns ADD campaign_stats_refresh ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD campaign_logindate DATETIME; + +ALTER TABLE vicidial_users ADD vicidial_recording_override ENUM('DISABLED','NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'DISABLED'; + + CREATE TABLE system_settings ( +version VARCHAR(50) default '2.0.3b2.5', +install_date VARCHAR(50), +use_non_latin ENUM('0','1') default '0', +webroot_writable ENUM('0','1') default '1', +enable_queuemetrics_logging ENUM('0','1') default '0', +queuemetrics_server_ip VARCHAR(15), +queuemetrics_dbname VARCHAR(50), +queuemetrics_login VARCHAR(50), +queuemetrics_pass VARCHAR(50), +queuemetrics_url VARCHAR(255), +queuemetrics_log_id VARCHAR(10) default 'VIC' +); + +INSERT INTO system_settings (version,install_date) values('2.0.X', CURDATE()); + +ALTER TABLE vicidial_campaigns ADD dial_statuses VARCHAR(255) default ' NEW -'; + +update vicidial_campaigns SET dial_statuses=concat_ws(""," ",`dial_status_a`," ",`dial_status_b`," ",`dial_status_c`," ",`dial_status_d`," ",`dial_status_e`," -"); + +ALTER TABLE system_settings ADD queuemetrics_eq_prepend VARCHAR(255) default 'NONE'; + +ALTER TABLE system_settings ADD vicidial_agent_disable ENUM('NOT_ACTIVE','LIVE_AGENT','EXTERNAL','ALL') default 'NOT_ACTIVE'; + +ALTER TABLE vicidial_campaigns ADD disable_alter_custdata ENUM('Y','N') default 'N'; + +ALTER TABLE vicidial_users ADD alter_custdata_override ENUM('NOT_ACTIVE','ALLOW_ALTER') default 'NOT_ACTIVE'; + +ALTER TABLE vicidial_campaigns ADD no_hopper_leads_logins ENUM('Y','N') default 'N'; + +ALTER TABLE phones ADD enable_sipsak_messages ENUM('0','1') default '0'; + +ALTER TABLE system_settings ADD allow_sipsak_messages ENUM('0','1') default '0'; + +ALTER TABLE system_settings ADD admin_home_url VARCHAR(255) default '../vicidial/welcome.php'; diff --git a/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.4.sql b/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.4.sql new file mode 100644 index 00000000..660cfcc5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/old_upgrade/upgrade_2.0.4.sql @@ -0,0 +1,155 @@ +ALTER TABLE vicidial_statuses ADD human_answered ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaign_statuses ADD human_answered ENUM('Y','N') default 'Y'; + +UPDATE vicidial_statuses SET human_answered='Y' where status IN('DROP','DNC','DEC','SALE','XFER','CALLBK','NP','NI','N'); + +ALTER TABLE vicidial_campaigns ADD list_order_mix VARCHAR(20) default 'DISABLED'; +UPDATE vicidial_campaigns SET list_order_mix='DISABLED'; + + CREATE TABLE vicidial_campaigns_list_mix ( +vcl_id VARCHAR(20) PRIMARY KEY NOT NULL, +vcl_name VARCHAR(50), +campaign_id VARCHAR(8), +list_mix_container TEXT, +mix_method ENUM('EVEN_MIX','IN_ORDER','RANDOM') default 'IN_ORDER', +status ENUM('ACTIVE','INACTIVE') default 'INACTIVE', +index (campaign_id) +); + + CREATE TABLE vicidial_status_categories ( +vsc_id VARCHAR(20) PRIMARY KEY NOT NULL, +vsc_name VARCHAR(50), +vsc_description VARCHAR(255), +tovdad_display ENUM('Y','N') default 'N' +); + +ALTER TABLE vicidial_campaign_statuses ADD category VARCHAR(20) default 'UNDEFINED'; +ALTER TABLE vicidial_statuses ADD category VARCHAR(20) default 'UNDEFINED'; + +INSERT INTO vicidial_status_categories (vsc_id,vsc_name) values('UNDEFINED','Default Category'); + +ALTER TABLE vicidial_campaign_stats ADD status_category_1 VARCHAR(20); +ALTER TABLE vicidial_campaign_stats ADD status_category_count_1 INT(9) UNSIGNED default '0'; +ALTER TABLE vicidial_campaign_stats ADD status_category_2 VARCHAR(20); +ALTER TABLE vicidial_campaign_stats ADD status_category_count_2 INT(9) UNSIGNED default '0'; +ALTER TABLE vicidial_campaign_stats ADD status_category_3 VARCHAR(20); +ALTER TABLE vicidial_campaign_stats ADD status_category_count_3 INT(9) UNSIGNED default '0'; +ALTER TABLE vicidial_campaign_stats ADD status_category_4 VARCHAR(20); +ALTER TABLE vicidial_campaign_stats ADD status_category_count_4 INT(9) UNSIGNED default '0'; + +ALTER TABLE system_settings ADD enable_agc_xfer_log ENUM('0','1') default '0'; + + +CREATE TABLE vicidial_ivr ( +ivr_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +entry_time DATETIME, +length_in_sec SMALLINT(5) UNSIGNED default '0', +inbound_number VARCHAR(12), +recording_id INT(9) UNSIGNED, +recording_filename VARCHAR(50), +company_id VARCHAR(12), +phone_number VARCHAR(12), +lead_id INT(9) UNSIGNED, +campaign_id VARCHAR(20), +product_code VARCHAR(20), +user VARCHAR(20), +prompt_audio_1 VARCHAR(20), +prompt_response_1 TINYINT(1) UNSIGNED default '0', +prompt_audio_2 VARCHAR(20), +prompt_response_2 TINYINT(1) UNSIGNED default '0', +prompt_audio_3 VARCHAR(20), +prompt_response_3 TINYINT(1) UNSIGNED default '0', +prompt_audio_4 VARCHAR(20), +prompt_response_4 TINYINT(1) UNSIGNED default '0', +prompt_audio_5 VARCHAR(20), +prompt_response_5 TINYINT(1) UNSIGNED default '0', +prompt_audio_6 VARCHAR(20), +prompt_response_6 TINYINT(1) UNSIGNED default '0', +prompt_audio_7 VARCHAR(20), +prompt_response_7 TINYINT(1) UNSIGNED default '0', +prompt_audio_8 VARCHAR(20), +prompt_response_8 TINYINT(1) UNSIGNED default '0', +prompt_audio_9 VARCHAR(20), +prompt_response_9 TINYINT(1) UNSIGNED default '0', +prompt_audio_10 VARCHAR(20), +prompt_response_10 TINYINT(1) UNSIGNED default '0', +index (phone_number), +index (entry_time) +); + +ALTER TABLE vicidial_ivr AUTO_INCREMENT = 1357091; + +ALTER TABLE vicidial_inbound_groups ADD call_time_id VARCHAR(20) default '24hours'; +ALTER TABLE vicidial_inbound_groups ADD after_hours_action ENUM('HANGUP','MESSAGE','EXTENSION','VOICEMAIL') default 'MESSAGE'; +ALTER TABLE vicidial_inbound_groups ADD after_hours_message_filename VARCHAR(50) default 'vm-goodbye'; +ALTER TABLE vicidial_inbound_groups ADD after_hours_exten VARCHAR(20) default '8300'; +ALTER TABLE vicidial_inbound_groups ADD after_hours_voicemail VARCHAR(20); +ALTER TABLE vicidial_inbound_groups ADD welcome_message_filename VARCHAR(50) default '---NONE---'; +ALTER TABLE vicidial_inbound_groups ADD moh_context VARCHAR(50) default 'default'; +ALTER TABLE vicidial_inbound_groups ADD onhold_prompt_filename VARCHAR(50) default 'generic_hold'; +ALTER TABLE vicidial_inbound_groups ADD prompt_interval SMALLINT(5) UNSIGNED default '60'; +ALTER TABLE vicidial_inbound_groups ADD agent_alert_exten VARCHAR(20) default '8304'; +ALTER TABLE vicidial_inbound_groups ADD agent_alert_delay INT(6) default '1000'; + +ALTER TABLE vicidial_list MODIFY called_count SMALLINT(5) UNSIGNED default '0'; + +CREATE TABLE vicidial_inbound_group_agents ( +user VARCHAR(20), +group_id VARCHAR(20), +group_rank TINYINT(1) default '0', +group_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +index (group_id), +index (user) +); + +ALTER TABLE vicidial_campaigns ADD campaign_allow_inbound ENUM('Y','N') default 'N'; + +UPDATE vicidial_campaigns SET campaign_allow_inbound='Y' where campaign_id REGEXP '(CLOSER|BLEND|INBND|_C\$|_B\$|_I\$)'; + +INSERT INTO vicidial_lists SET list_id='999',list_name='Default inbound list',campaign_id='TESTCAMP',active='N'; + +ALTER TABLE vicidial_campaigns ADD manual_dial_list_id BIGINT(14) UNSIGNED default '999'; + +ALTER TABLE vicidial_hopper ADD priority TINYINT(2) default '0'; + +CREATE TABLE vicidial_live_inbound_agents ( +user VARCHAR(20), +group_id VARCHAR(20), +group_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +last_call_time DATETIME, +last_call_finish DATETIME, +index (group_id), +index (group_weight) +); + +ALTER TABLE vicidial_inbound_groups MODIFY next_agent_call ENUM('random','oldest_call_start','oldest_call_finish','overall_user_level','inbound_group_rank','fewest_calls') default 'oldest_call_finish'; + +GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@'%' IDENTIFIED BY '1234'; +GRANT SELECT,INSERT,UPDATE,DELETE,LOCK TABLES on asterisk.* TO cron@localhost IDENTIFIED BY '1234'; + +CREATE TABLE vicidial_campaign_agents ( +user VARCHAR(20), +campaign_id VARCHAR(20), +campaign_rank TINYINT(1) default '0', +campaign_weight TINYINT(1) default '0', +calls_today SMALLINT(5) UNSIGNED default '0', +index (campaign_id), +index (user) +); + +ALTER TABLE vicidial_live_agents ADD campaign_weight TINYINT(1) default '0'; +ALTER TABLE vicidial_live_agents ADD calls_today SMALLINT(5) UNSIGNED default '0'; + +ALTER TABLE vicidial_inbound_groups MODIFY next_agent_call ENUM('random','oldest_call_start','oldest_call_finish','overall_user_level','inbound_group_rank','campaign_rank','fewest_calls','fewest_calls_campaign') default 'oldest_call_finish'; + +ALTER TABLE vicidial_campaigns MODIFY next_agent_call ENUM('random','oldest_call_start','oldest_call_finish','campaign_rank','overall_user_level','fewest_calls') default 'oldest_call_finish'; + + +ALTER TABLE vicidial_campaigns ADD default_xfer_group VARCHAR(20) default '---NONE---'; + +ALTER TABLE vicidial_inbound_groups ADD default_xfer_group VARCHAR(20) default '---NONE---'; + +ALTER TABLE vicidial_campaigns ADD xfer_groups TEXT default ''; + diff --git a/agc_2-X/branches/agc_2.2.0/extras/performance_test_alt_multi.txt b/agc_2-X/branches/agc_2.2.0/extras/performance_test_alt_multi.txt new file mode 100644 index 00000000..54617b69 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/performance_test_alt_multi.txt @@ -0,0 +1,14 @@ +100001|10001|993|1|9999060010|MR|I|Q|SMITH01|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060449|test@test.com|nothing|COMMENTS||||9999061507_1_work +100002|10002|993|1|9999060011|MR|I|Q|SMITH02|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060349|test@test.com|nothing|COMMENTS||||9999061407_1_work!9999060010_1_sister house!7275551214_44_neighbor +100003|10003|993|1|9999060012|MR|I|Q|SMITH03|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060249|test@test.com|nothing|COMMENTS||||9999061307_1_work +100004|10004|993|1|9999060013|MR|I|Q|SMITH04|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999061049|test@test.com|nothing|COMMENTS||||9999061207_1_work!9999060009_1_sister house!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work!9999060107_1_work +100005|10005|993|1|9999060014|MR|I|Q|SMITH05|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060149|test@test.com|nothing|COMMENTS||||9999061107__airport +100006|10006|993|1|9999060015|MR|I|Q|SMITH06|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060039|test@test.com|nothing|COMMENTS||||9999061017__!9999060020__summer home +100007|10007|993|1|9999060016|MR|I|Q|SMITH07|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060939|test@test.com|nothing|COMMENTS||||9999060907_1_work +100008|10008|993|1|9999060017|MR|I|Q|SMITH08|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060839|test@test.com|nothing|COMMENTS||||9999060817_1_!9999060200_1_garage +100009|10009|993|1|9999060018|MR|I|Q|SMITH09|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060739|test@test.com|nothing|COMMENTS||||9999060707_1_work +100010|10010|993|1|9999060019|MR|I|Q|SMITH10|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060639|test@test.com|nothing|COMMENTS||||9999060607_1_work +100011|10011|993|1|9999060020|MR|I|Q|SMITH11|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060539|test@test.com|nothing|COMMENTS||||9999060507_1_work +100012|10012|993|1|9999060021|MR|I|Q|SMITH12|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060439|test@test.com|nothing|COMMENTS||||9999060407_1_work +100013|10013|993|1|9999060022|MR|I|Q|SMITH13|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060339|test@test.com|nothing|COMMENTS||||9999060309_1_work +100014|10014|993|1|9999060023|MR|I|Q|SMITH13|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|9999060239|test@test.com|nothing|COMMENTS||||9999060207_1_work diff --git a/agc_2-X/branches/agc_2.2.0/extras/performance_test_leads.txt b/agc_2-X/branches/agc_2.2.0/extras/performance_test_leads.txt new file mode 100644 index 00000000..0a9a04c3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/performance_test_leads.txt @@ -0,0 +1,60000 @@ +1000000|100000|989898|1|9999000000|MR|Test|E|Lead 0|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000001|100001|989898|1|9999000001|MR|Test|E|Lead 1|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000002|100002|989898|1|9999000002|MR|Test|E|Lead 2|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000003|100003|989898|1|9999000003|MR|Test|E|Lead 3|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000004|100004|989898|1|9999000004|MR|Test|E|Lead 4|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000005|100005|989898|1|9999000005|MR|Test|E|Lead 5|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000006|100006|989898|1|9999000006|MR|Test|E|Lead 6|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000007|100007|989898|1|9999000007|MR|Test|E|Lead 7|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000008|100008|989898|1|9999000008|MR|Test|E|Lead 8|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000009|100009|989898|1|9999000009|MR|Test|E|Lead 9|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000010|100010|989898|1|9999000010|MR|Test|E|Lead 10|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000011|100011|989898|1|9999000011|MR|Test|E|Lead 11|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000012|100012|989898|1|9999000012|MR|Test|E|Lead 12|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000013|100013|989898|1|9999000013|MR|Test|E|Lead 13|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000014|100014|989898|1|9999000014|MR|Test|E|Lead 14|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000015|100015|989898|1|9999000015|MR|Test|E|Lead 15|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000016|100016|989898|1|9999000016|MR|Test|E|Lead 16|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000017|100017|989898|1|9999000017|MR|Test|E|Lead 17|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000018|100018|989898|1|9999000018|MR|Test|E|Lead 18|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000019|100019|989898|1|9999000019|MR|Test|E|Lead 19|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000020|100020|989898|1|9999000020|MR|Test|E|Lead 20|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000021|100021|989898|1|9999000021|MR|Test|E|Lead 21|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000022|100022|989898|1|9999000022|MR|Test|E|Lead 22|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000023|100023|989898|1|9999000023|MR|Test|E|Lead 23|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000024|100024|989898|1|9999000024|MR|Test|E|Lead 24|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000025|100025|989898|1|9999000025|MR|Test|E|Lead 25|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000026|100026|989898|1|9999000026|MR|Test|E|Lead 26|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000027|100027|989898|1|9999000027|MR|Test|E|Lead 27|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000028|100028|989898|1|9999000028|MR|Test|E|Lead 28|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000029|100029|989898|1|9999000029|MR|Test|E|Lead 29|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000030|100030|989898|1|9999000030|MR|Test|E|Lead 30|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000031|100031|989898|1|9999000031|MR|Test|E|Lead 31|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000032|100032|989898|1|9999000032|MR|Test|E|Lead 32|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000033|100033|989898|1|9999000033|MR|Test|E|Lead 33|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000034|100034|989898|1|9999000034|MR|Test|E|Lead 34|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000035|100035|989898|1|9999000035|MR|Test|E|Lead 35|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000036|100036|989898|1|9999000036|MR|Test|E|Lead 36|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000037|100037|989898|1|9999000037|MR|Test|E|Lead 37|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000038|100038|989898|1|9999000038|MR|Test|E|Lead 38|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000039|100039|989898|1|9999000039|MR|Test|E|Lead 39|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000040|100040|989898|1|9999000040|MR|Test|E|Lead 40|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000041|100041|989898|1|9999000041|MR|Test|E|Lead 41|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000042|100042|989898|1|9999000042|MR|Test|E|Lead 42|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000043|100043|989898|1|9999000043|MR|Test|E|Lead 43|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000044|100044|989898|1|9999000044|MR|Test|E|Lead 44|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000045|100045|989898|1|9999000045|MR|Test|E|Lead 45|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000046|100046|989898|1|9999000046|MR|Test|E|Lead 46|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000047|100047|989898|1|9999000047|MR|Test|E|Lead 47|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000048|100048|989898|1|9999000048|MR|Test|E|Lead 48|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000049|100049|989898|1|9999000049|MR|Test|E|Lead 49|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000050|100050|989898|1|9999000050|MR|Test|E|Lead 50|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000051|100051|989898|1|9999000051|MR|Test|E|Lead 51|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000052|100052|989898|1|9999000052|MR|Test|E|Lead 52|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000053|100053|989898|1|9999000053|MR|Test|E|Lead 53|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000054|100054|989898|1|9999000054|MR|Test|E|Lead 54|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000055|100055|989898|1|9999000055|MR|Test|E|Lead 55|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000056|100056|989898|1|9999000056|MR|Test|E|Lead 56|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000057|100057|989898|1|9999000057|MR|Test|E|Lead 57|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000058|100058|989898|1|9999000058|MR|Test|E|Lead 58|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000059|100059|989898|1|9999000059|MR|Test|E|Lead 59|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000060|100060|989898|1|9999000060|MR|Test|E|Lead 60|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000061|100061|989898|1|9999000061|MR|Test|E|Lead 61|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000062|100062|989898|1|9999000062|MR|Test|E|Lead 62|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000063|100063|989898|1|9999000063|MR|Test|E|Lead 63|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000064|100064|989898|1|9999000064|MR|Test|E|Lead 64|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000065|100065|989898|1|9999000065|MR|Test|E|Lead 65|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000066|100066|989898|1|9999000066|MR|Test|E|Lead 66|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000067|100067|989898|1|9999000067|MR|Test|E|Lead 67|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000068|100068|989898|1|9999000068|MR|Test|E|Lead 68|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000069|100069|989898|1|9999000069|MR|Test|E|Lead 69|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000070|100070|989898|1|9999000070|MR|Test|E|Lead 70|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000071|100071|989898|1|9999000071|MR|Test|E|Lead 71|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000072|100072|989898|1|9999000072|MR|Test|E|Lead 72|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000073|100073|989898|1|9999000073|MR|Test|E|Lead 73|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000074|100074|989898|1|9999000074|MR|Test|E|Lead 74|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000075|100075|989898|1|9999000075|MR|Test|E|Lead 75|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000076|100076|989898|1|9999000076|MR|Test|E|Lead 76|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000077|100077|989898|1|9999000077|MR|Test|E|Lead 77|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000078|100078|989898|1|9999000078|MR|Test|E|Lead 78|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000079|100079|989898|1|9999000079|MR|Test|E|Lead 79|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000080|100080|989898|1|9999000080|MR|Test|E|Lead 80|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000081|100081|989898|1|9999000081|MR|Test|E|Lead 81|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000082|100082|989898|1|9999000082|MR|Test|E|Lead 82|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000083|100083|989898|1|9999000083|MR|Test|E|Lead 83|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000084|100084|989898|1|9999000084|MR|Test|E|Lead 84|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000085|100085|989898|1|9999000085|MR|Test|E|Lead 85|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000086|100086|989898|1|9999000086|MR|Test|E|Lead 86|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000087|100087|989898|1|9999000087|MR|Test|E|Lead 87|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000088|100088|989898|1|9999000088|MR|Test|E|Lead 88|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000089|100089|989898|1|9999000089|MR|Test|E|Lead 89|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000090|100090|989898|1|9999000090|MR|Test|E|Lead 90|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000091|100091|989898|1|9999000091|MR|Test|E|Lead 91|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000092|100092|989898|1|9999000092|MR|Test|E|Lead 92|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000093|100093|989898|1|9999000093|MR|Test|E|Lead 93|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000094|100094|989898|1|9999000094|MR|Test|E|Lead 94|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000095|100095|989898|1|9999000095|MR|Test|E|Lead 95|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000096|100096|989898|1|9999000096|MR|Test|E|Lead 96|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000097|100097|989898|1|9999000097|MR|Test|E|Lead 97|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000098|100098|989898|1|9999000098|MR|Test|E|Lead 98|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000099|100099|989898|1|9999000099|MR|Test|E|Lead 99|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000100|100100|989898|1|9999000100|MR|Test|E|Lead 100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000101|100101|989898|1|9999000101|MR|Test|E|Lead 101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000102|100102|989898|1|9999000102|MR|Test|E|Lead 102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000103|100103|989898|1|9999000103|MR|Test|E|Lead 103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000104|100104|989898|1|9999000104|MR|Test|E|Lead 104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000105|100105|989898|1|9999000105|MR|Test|E|Lead 105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000106|100106|989898|1|9999000106|MR|Test|E|Lead 106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000107|100107|989898|1|9999000107|MR|Test|E|Lead 107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000108|100108|989898|1|9999000108|MR|Test|E|Lead 108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000109|100109|989898|1|9999000109|MR|Test|E|Lead 109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000110|100110|989898|1|9999000110|MR|Test|E|Lead 110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000111|100111|989898|1|9999000111|MR|Test|E|Lead 111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000112|100112|989898|1|9999000112|MR|Test|E|Lead 112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000113|100113|989898|1|9999000113|MR|Test|E|Lead 113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000114|100114|989898|1|9999000114|MR|Test|E|Lead 114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000115|100115|989898|1|9999000115|MR|Test|E|Lead 115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000116|100116|989898|1|9999000116|MR|Test|E|Lead 116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000117|100117|989898|1|9999000117|MR|Test|E|Lead 117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000118|100118|989898|1|9999000118|MR|Test|E|Lead 118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000119|100119|989898|1|9999000119|MR|Test|E|Lead 119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000120|100120|989898|1|9999000120|MR|Test|E|Lead 120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000121|100121|989898|1|9999000121|MR|Test|E|Lead 121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000122|100122|989898|1|9999000122|MR|Test|E|Lead 122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000123|100123|989898|1|9999000123|MR|Test|E|Lead 123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000124|100124|989898|1|9999000124|MR|Test|E|Lead 124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000125|100125|989898|1|9999000125|MR|Test|E|Lead 125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000126|100126|989898|1|9999000126|MR|Test|E|Lead 126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000127|100127|989898|1|9999000127|MR|Test|E|Lead 127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000128|100128|989898|1|9999000128|MR|Test|E|Lead 128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000129|100129|989898|1|9999000129|MR|Test|E|Lead 129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000130|100130|989898|1|9999000130|MR|Test|E|Lead 130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000131|100131|989898|1|9999000131|MR|Test|E|Lead 131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000132|100132|989898|1|9999000132|MR|Test|E|Lead 132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000133|100133|989898|1|9999000133|MR|Test|E|Lead 133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000134|100134|989898|1|9999000134|MR|Test|E|Lead 134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000135|100135|989898|1|9999000135|MR|Test|E|Lead 135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000136|100136|989898|1|9999000136|MR|Test|E|Lead 136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000137|100137|989898|1|9999000137|MR|Test|E|Lead 137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000138|100138|989898|1|9999000138|MR|Test|E|Lead 138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000139|100139|989898|1|9999000139|MR|Test|E|Lead 139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000140|100140|989898|1|9999000140|MR|Test|E|Lead 140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000141|100141|989898|1|9999000141|MR|Test|E|Lead 141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000142|100142|989898|1|9999000142|MR|Test|E|Lead 142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000143|100143|989898|1|9999000143|MR|Test|E|Lead 143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000144|100144|989898|1|9999000144|MR|Test|E|Lead 144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000145|100145|989898|1|9999000145|MR|Test|E|Lead 145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000146|100146|989898|1|9999000146|MR|Test|E|Lead 146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000147|100147|989898|1|9999000147|MR|Test|E|Lead 147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000148|100148|989898|1|9999000148|MR|Test|E|Lead 148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000149|100149|989898|1|9999000149|MR|Test|E|Lead 149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000150|100150|989898|1|9999000150|MR|Test|E|Lead 150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000151|100151|989898|1|9999000151|MR|Test|E|Lead 151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000152|100152|989898|1|9999000152|MR|Test|E|Lead 152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000153|100153|989898|1|9999000153|MR|Test|E|Lead 153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000154|100154|989898|1|9999000154|MR|Test|E|Lead 154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000155|100155|989898|1|9999000155|MR|Test|E|Lead 155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000156|100156|989898|1|9999000156|MR|Test|E|Lead 156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000157|100157|989898|1|9999000157|MR|Test|E|Lead 157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000158|100158|989898|1|9999000158|MR|Test|E|Lead 158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000159|100159|989898|1|9999000159|MR|Test|E|Lead 159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000160|100160|989898|1|9999000160|MR|Test|E|Lead 160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000161|100161|989898|1|9999000161|MR|Test|E|Lead 161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000162|100162|989898|1|9999000162|MR|Test|E|Lead 162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000163|100163|989898|1|9999000163|MR|Test|E|Lead 163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000164|100164|989898|1|9999000164|MR|Test|E|Lead 164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000165|100165|989898|1|9999000165|MR|Test|E|Lead 165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000166|100166|989898|1|9999000166|MR|Test|E|Lead 166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000167|100167|989898|1|9999000167|MR|Test|E|Lead 167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000168|100168|989898|1|9999000168|MR|Test|E|Lead 168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000169|100169|989898|1|9999000169|MR|Test|E|Lead 169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000170|100170|989898|1|9999000170|MR|Test|E|Lead 170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000171|100171|989898|1|9999000171|MR|Test|E|Lead 171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000172|100172|989898|1|9999000172|MR|Test|E|Lead 172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000173|100173|989898|1|9999000173|MR|Test|E|Lead 173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000174|100174|989898|1|9999000174|MR|Test|E|Lead 174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000175|100175|989898|1|9999000175|MR|Test|E|Lead 175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000176|100176|989898|1|9999000176|MR|Test|E|Lead 176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000177|100177|989898|1|9999000177|MR|Test|E|Lead 177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000178|100178|989898|1|9999000178|MR|Test|E|Lead 178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000179|100179|989898|1|9999000179|MR|Test|E|Lead 179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000180|100180|989898|1|9999000180|MR|Test|E|Lead 180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000181|100181|989898|1|9999000181|MR|Test|E|Lead 181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000182|100182|989898|1|9999000182|MR|Test|E|Lead 182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000183|100183|989898|1|9999000183|MR|Test|E|Lead 183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000184|100184|989898|1|9999000184|MR|Test|E|Lead 184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000185|100185|989898|1|9999000185|MR|Test|E|Lead 185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000186|100186|989898|1|9999000186|MR|Test|E|Lead 186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000187|100187|989898|1|9999000187|MR|Test|E|Lead 187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000188|100188|989898|1|9999000188|MR|Test|E|Lead 188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000189|100189|989898|1|9999000189|MR|Test|E|Lead 189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000190|100190|989898|1|9999000190|MR|Test|E|Lead 190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000191|100191|989898|1|9999000191|MR|Test|E|Lead 191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000192|100192|989898|1|9999000192|MR|Test|E|Lead 192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000193|100193|989898|1|9999000193|MR|Test|E|Lead 193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000194|100194|989898|1|9999000194|MR|Test|E|Lead 194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000195|100195|989898|1|9999000195|MR|Test|E|Lead 195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000196|100196|989898|1|9999000196|MR|Test|E|Lead 196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000197|100197|989898|1|9999000197|MR|Test|E|Lead 197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000198|100198|989898|1|9999000198|MR|Test|E|Lead 198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000199|100199|989898|1|9999000199|MR|Test|E|Lead 199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000200|100200|989898|1|9999000200|MR|Test|E|Lead 200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000201|100201|989898|1|9999000201|MR|Test|E|Lead 201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000202|100202|989898|1|9999000202|MR|Test|E|Lead 202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000203|100203|989898|1|9999000203|MR|Test|E|Lead 203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000204|100204|989898|1|9999000204|MR|Test|E|Lead 204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000205|100205|989898|1|9999000205|MR|Test|E|Lead 205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000206|100206|989898|1|9999000206|MR|Test|E|Lead 206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000207|100207|989898|1|9999000207|MR|Test|E|Lead 207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000208|100208|989898|1|9999000208|MR|Test|E|Lead 208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000209|100209|989898|1|9999000209|MR|Test|E|Lead 209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000210|100210|989898|1|9999000210|MR|Test|E|Lead 210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000211|100211|989898|1|9999000211|MR|Test|E|Lead 211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000212|100212|989898|1|9999000212|MR|Test|E|Lead 212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000213|100213|989898|1|9999000213|MR|Test|E|Lead 213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000214|100214|989898|1|9999000214|MR|Test|E|Lead 214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000215|100215|989898|1|9999000215|MR|Test|E|Lead 215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000216|100216|989898|1|9999000216|MR|Test|E|Lead 216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000217|100217|989898|1|9999000217|MR|Test|E|Lead 217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000218|100218|989898|1|9999000218|MR|Test|E|Lead 218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000219|100219|989898|1|9999000219|MR|Test|E|Lead 219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000220|100220|989898|1|9999000220|MR|Test|E|Lead 220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000221|100221|989898|1|9999000221|MR|Test|E|Lead 221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000222|100222|989898|1|9999000222|MR|Test|E|Lead 222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000223|100223|989898|1|9999000223|MR|Test|E|Lead 223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000224|100224|989898|1|9999000224|MR|Test|E|Lead 224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000225|100225|989898|1|9999000225|MR|Test|E|Lead 225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000226|100226|989898|1|9999000226|MR|Test|E|Lead 226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000227|100227|989898|1|9999000227|MR|Test|E|Lead 227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000228|100228|989898|1|9999000228|MR|Test|E|Lead 228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000229|100229|989898|1|9999000229|MR|Test|E|Lead 229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000230|100230|989898|1|9999000230|MR|Test|E|Lead 230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000231|100231|989898|1|9999000231|MR|Test|E|Lead 231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000232|100232|989898|1|9999000232|MR|Test|E|Lead 232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000233|100233|989898|1|9999000233|MR|Test|E|Lead 233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000234|100234|989898|1|9999000234|MR|Test|E|Lead 234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000235|100235|989898|1|9999000235|MR|Test|E|Lead 235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000236|100236|989898|1|9999000236|MR|Test|E|Lead 236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000237|100237|989898|1|9999000237|MR|Test|E|Lead 237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000238|100238|989898|1|9999000238|MR|Test|E|Lead 238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000239|100239|989898|1|9999000239|MR|Test|E|Lead 239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000240|100240|989898|1|9999000240|MR|Test|E|Lead 240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000241|100241|989898|1|9999000241|MR|Test|E|Lead 241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000242|100242|989898|1|9999000242|MR|Test|E|Lead 242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000243|100243|989898|1|9999000243|MR|Test|E|Lead 243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000244|100244|989898|1|9999000244|MR|Test|E|Lead 244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000245|100245|989898|1|9999000245|MR|Test|E|Lead 245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000246|100246|989898|1|9999000246|MR|Test|E|Lead 246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000247|100247|989898|1|9999000247|MR|Test|E|Lead 247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000248|100248|989898|1|9999000248|MR|Test|E|Lead 248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000249|100249|989898|1|9999000249|MR|Test|E|Lead 249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000250|100250|989898|1|9999000250|MR|Test|E|Lead 250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000251|100251|989898|1|9999000251|MR|Test|E|Lead 251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000252|100252|989898|1|9999000252|MR|Test|E|Lead 252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000253|100253|989898|1|9999000253|MR|Test|E|Lead 253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000254|100254|989898|1|9999000254|MR|Test|E|Lead 254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000255|100255|989898|1|9999000255|MR|Test|E|Lead 255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000256|100256|989898|1|9999000256|MR|Test|E|Lead 256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000257|100257|989898|1|9999000257|MR|Test|E|Lead 257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000258|100258|989898|1|9999000258|MR|Test|E|Lead 258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000259|100259|989898|1|9999000259|MR|Test|E|Lead 259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000260|100260|989898|1|9999000260|MR|Test|E|Lead 260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000261|100261|989898|1|9999000261|MR|Test|E|Lead 261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000262|100262|989898|1|9999000262|MR|Test|E|Lead 262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000263|100263|989898|1|9999000263|MR|Test|E|Lead 263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000264|100264|989898|1|9999000264|MR|Test|E|Lead 264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000265|100265|989898|1|9999000265|MR|Test|E|Lead 265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000266|100266|989898|1|9999000266|MR|Test|E|Lead 266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000267|100267|989898|1|9999000267|MR|Test|E|Lead 267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000268|100268|989898|1|9999000268|MR|Test|E|Lead 268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000269|100269|989898|1|9999000269|MR|Test|E|Lead 269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000270|100270|989898|1|9999000270|MR|Test|E|Lead 270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000271|100271|989898|1|9999000271|MR|Test|E|Lead 271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000272|100272|989898|1|9999000272|MR|Test|E|Lead 272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000273|100273|989898|1|9999000273|MR|Test|E|Lead 273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000274|100274|989898|1|9999000274|MR|Test|E|Lead 274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000275|100275|989898|1|9999000275|MR|Test|E|Lead 275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000276|100276|989898|1|9999000276|MR|Test|E|Lead 276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000277|100277|989898|1|9999000277|MR|Test|E|Lead 277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000278|100278|989898|1|9999000278|MR|Test|E|Lead 278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000279|100279|989898|1|9999000279|MR|Test|E|Lead 279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000280|100280|989898|1|9999000280|MR|Test|E|Lead 280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000281|100281|989898|1|9999000281|MR|Test|E|Lead 281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000282|100282|989898|1|9999000282|MR|Test|E|Lead 282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000283|100283|989898|1|9999000283|MR|Test|E|Lead 283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000284|100284|989898|1|9999000284|MR|Test|E|Lead 284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000285|100285|989898|1|9999000285|MR|Test|E|Lead 285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000286|100286|989898|1|9999000286|MR|Test|E|Lead 286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000287|100287|989898|1|9999000287|MR|Test|E|Lead 287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000288|100288|989898|1|9999000288|MR|Test|E|Lead 288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000289|100289|989898|1|9999000289|MR|Test|E|Lead 289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000290|100290|989898|1|9999000290|MR|Test|E|Lead 290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000291|100291|989898|1|9999000291|MR|Test|E|Lead 291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000292|100292|989898|1|9999000292|MR|Test|E|Lead 292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000293|100293|989898|1|9999000293|MR|Test|E|Lead 293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000294|100294|989898|1|9999000294|MR|Test|E|Lead 294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000295|100295|989898|1|9999000295|MR|Test|E|Lead 295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000296|100296|989898|1|9999000296|MR|Test|E|Lead 296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000297|100297|989898|1|9999000297|MR|Test|E|Lead 297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000298|100298|989898|1|9999000298|MR|Test|E|Lead 298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000299|100299|989898|1|9999000299|MR|Test|E|Lead 299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000300|100300|989898|1|9999000300|MR|Test|E|Lead 300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000301|100301|989898|1|9999000301|MR|Test|E|Lead 301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000302|100302|989898|1|9999000302|MR|Test|E|Lead 302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000303|100303|989898|1|9999000303|MR|Test|E|Lead 303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000304|100304|989898|1|9999000304|MR|Test|E|Lead 304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000305|100305|989898|1|9999000305|MR|Test|E|Lead 305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000306|100306|989898|1|9999000306|MR|Test|E|Lead 306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000307|100307|989898|1|9999000307|MR|Test|E|Lead 307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000308|100308|989898|1|9999000308|MR|Test|E|Lead 308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000309|100309|989898|1|9999000309|MR|Test|E|Lead 309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000310|100310|989898|1|9999000310|MR|Test|E|Lead 310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000311|100311|989898|1|9999000311|MR|Test|E|Lead 311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000312|100312|989898|1|9999000312|MR|Test|E|Lead 312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000313|100313|989898|1|9999000313|MR|Test|E|Lead 313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000314|100314|989898|1|9999000314|MR|Test|E|Lead 314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000315|100315|989898|1|9999000315|MR|Test|E|Lead 315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000316|100316|989898|1|9999000316|MR|Test|E|Lead 316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000317|100317|989898|1|9999000317|MR|Test|E|Lead 317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000318|100318|989898|1|9999000318|MR|Test|E|Lead 318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000319|100319|989898|1|9999000319|MR|Test|E|Lead 319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000320|100320|989898|1|9999000320|MR|Test|E|Lead 320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000321|100321|989898|1|9999000321|MR|Test|E|Lead 321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000322|100322|989898|1|9999000322|MR|Test|E|Lead 322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000323|100323|989898|1|9999000323|MR|Test|E|Lead 323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000324|100324|989898|1|9999000324|MR|Test|E|Lead 324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000325|100325|989898|1|9999000325|MR|Test|E|Lead 325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000326|100326|989898|1|9999000326|MR|Test|E|Lead 326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000327|100327|989898|1|9999000327|MR|Test|E|Lead 327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000328|100328|989898|1|9999000328|MR|Test|E|Lead 328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000329|100329|989898|1|9999000329|MR|Test|E|Lead 329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000330|100330|989898|1|9999000330|MR|Test|E|Lead 330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000331|100331|989898|1|9999000331|MR|Test|E|Lead 331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000332|100332|989898|1|9999000332|MR|Test|E|Lead 332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000333|100333|989898|1|9999000333|MR|Test|E|Lead 333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000334|100334|989898|1|9999000334|MR|Test|E|Lead 334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000335|100335|989898|1|9999000335|MR|Test|E|Lead 335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000336|100336|989898|1|9999000336|MR|Test|E|Lead 336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000337|100337|989898|1|9999000337|MR|Test|E|Lead 337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000338|100338|989898|1|9999000338|MR|Test|E|Lead 338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000339|100339|989898|1|9999000339|MR|Test|E|Lead 339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000340|100340|989898|1|9999000340|MR|Test|E|Lead 340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000341|100341|989898|1|9999000341|MR|Test|E|Lead 341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000342|100342|989898|1|9999000342|MR|Test|E|Lead 342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000343|100343|989898|1|9999000343|MR|Test|E|Lead 343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000344|100344|989898|1|9999000344|MR|Test|E|Lead 344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000345|100345|989898|1|9999000345|MR|Test|E|Lead 345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000346|100346|989898|1|9999000346|MR|Test|E|Lead 346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000347|100347|989898|1|9999000347|MR|Test|E|Lead 347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000348|100348|989898|1|9999000348|MR|Test|E|Lead 348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000349|100349|989898|1|9999000349|MR|Test|E|Lead 349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000350|100350|989898|1|9999000350|MR|Test|E|Lead 350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000351|100351|989898|1|9999000351|MR|Test|E|Lead 351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000352|100352|989898|1|9999000352|MR|Test|E|Lead 352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000353|100353|989898|1|9999000353|MR|Test|E|Lead 353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000354|100354|989898|1|9999000354|MR|Test|E|Lead 354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000355|100355|989898|1|9999000355|MR|Test|E|Lead 355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000356|100356|989898|1|9999000356|MR|Test|E|Lead 356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000357|100357|989898|1|9999000357|MR|Test|E|Lead 357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000358|100358|989898|1|9999000358|MR|Test|E|Lead 358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000359|100359|989898|1|9999000359|MR|Test|E|Lead 359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000360|100360|989898|1|9999000360|MR|Test|E|Lead 360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000361|100361|989898|1|9999000361|MR|Test|E|Lead 361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000362|100362|989898|1|9999000362|MR|Test|E|Lead 362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000363|100363|989898|1|9999000363|MR|Test|E|Lead 363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000364|100364|989898|1|9999000364|MR|Test|E|Lead 364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000365|100365|989898|1|9999000365|MR|Test|E|Lead 365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000366|100366|989898|1|9999000366|MR|Test|E|Lead 366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000367|100367|989898|1|9999000367|MR|Test|E|Lead 367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000368|100368|989898|1|9999000368|MR|Test|E|Lead 368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000369|100369|989898|1|9999000369|MR|Test|E|Lead 369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000370|100370|989898|1|9999000370|MR|Test|E|Lead 370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000371|100371|989898|1|9999000371|MR|Test|E|Lead 371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000372|100372|989898|1|9999000372|MR|Test|E|Lead 372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000373|100373|989898|1|9999000373|MR|Test|E|Lead 373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000374|100374|989898|1|9999000374|MR|Test|E|Lead 374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000375|100375|989898|1|9999000375|MR|Test|E|Lead 375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000376|100376|989898|1|9999000376|MR|Test|E|Lead 376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000377|100377|989898|1|9999000377|MR|Test|E|Lead 377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000378|100378|989898|1|9999000378|MR|Test|E|Lead 378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000379|100379|989898|1|9999000379|MR|Test|E|Lead 379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000380|100380|989898|1|9999000380|MR|Test|E|Lead 380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000381|100381|989898|1|9999000381|MR|Test|E|Lead 381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000382|100382|989898|1|9999000382|MR|Test|E|Lead 382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000383|100383|989898|1|9999000383|MR|Test|E|Lead 383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000384|100384|989898|1|9999000384|MR|Test|E|Lead 384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000385|100385|989898|1|9999000385|MR|Test|E|Lead 385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000386|100386|989898|1|9999000386|MR|Test|E|Lead 386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000387|100387|989898|1|9999000387|MR|Test|E|Lead 387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000388|100388|989898|1|9999000388|MR|Test|E|Lead 388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000389|100389|989898|1|9999000389|MR|Test|E|Lead 389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000390|100390|989898|1|9999000390|MR|Test|E|Lead 390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000391|100391|989898|1|9999000391|MR|Test|E|Lead 391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000392|100392|989898|1|9999000392|MR|Test|E|Lead 392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000393|100393|989898|1|9999000393|MR|Test|E|Lead 393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000394|100394|989898|1|9999000394|MR|Test|E|Lead 394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000395|100395|989898|1|9999000395|MR|Test|E|Lead 395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000396|100396|989898|1|9999000396|MR|Test|E|Lead 396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000397|100397|989898|1|9999000397|MR|Test|E|Lead 397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000398|100398|989898|1|9999000398|MR|Test|E|Lead 398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000399|100399|989898|1|9999000399|MR|Test|E|Lead 399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000400|100400|989898|1|9999000400|MR|Test|E|Lead 400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000401|100401|989898|1|9999000401|MR|Test|E|Lead 401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000402|100402|989898|1|9999000402|MR|Test|E|Lead 402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000403|100403|989898|1|9999000403|MR|Test|E|Lead 403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000404|100404|989898|1|9999000404|MR|Test|E|Lead 404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000405|100405|989898|1|9999000405|MR|Test|E|Lead 405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000406|100406|989898|1|9999000406|MR|Test|E|Lead 406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000407|100407|989898|1|9999000407|MR|Test|E|Lead 407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000408|100408|989898|1|9999000408|MR|Test|E|Lead 408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000409|100409|989898|1|9999000409|MR|Test|E|Lead 409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000410|100410|989898|1|9999000410|MR|Test|E|Lead 410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000411|100411|989898|1|9999000411|MR|Test|E|Lead 411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000412|100412|989898|1|9999000412|MR|Test|E|Lead 412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000413|100413|989898|1|9999000413|MR|Test|E|Lead 413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000414|100414|989898|1|9999000414|MR|Test|E|Lead 414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000415|100415|989898|1|9999000415|MR|Test|E|Lead 415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000416|100416|989898|1|9999000416|MR|Test|E|Lead 416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000417|100417|989898|1|9999000417|MR|Test|E|Lead 417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000418|100418|989898|1|9999000418|MR|Test|E|Lead 418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000419|100419|989898|1|9999000419|MR|Test|E|Lead 419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000420|100420|989898|1|9999000420|MR|Test|E|Lead 420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000421|100421|989898|1|9999000421|MR|Test|E|Lead 421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000422|100422|989898|1|9999000422|MR|Test|E|Lead 422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000423|100423|989898|1|9999000423|MR|Test|E|Lead 423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000424|100424|989898|1|9999000424|MR|Test|E|Lead 424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000425|100425|989898|1|9999000425|MR|Test|E|Lead 425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000426|100426|989898|1|9999000426|MR|Test|E|Lead 426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000427|100427|989898|1|9999000427|MR|Test|E|Lead 427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000428|100428|989898|1|9999000428|MR|Test|E|Lead 428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000429|100429|989898|1|9999000429|MR|Test|E|Lead 429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000430|100430|989898|1|9999000430|MR|Test|E|Lead 430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000431|100431|989898|1|9999000431|MR|Test|E|Lead 431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000432|100432|989898|1|9999000432|MR|Test|E|Lead 432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000433|100433|989898|1|9999000433|MR|Test|E|Lead 433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000434|100434|989898|1|9999000434|MR|Test|E|Lead 434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000435|100435|989898|1|9999000435|MR|Test|E|Lead 435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000436|100436|989898|1|9999000436|MR|Test|E|Lead 436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000437|100437|989898|1|9999000437|MR|Test|E|Lead 437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000438|100438|989898|1|9999000438|MR|Test|E|Lead 438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000439|100439|989898|1|9999000439|MR|Test|E|Lead 439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000440|100440|989898|1|9999000440|MR|Test|E|Lead 440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000441|100441|989898|1|9999000441|MR|Test|E|Lead 441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000442|100442|989898|1|9999000442|MR|Test|E|Lead 442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000443|100443|989898|1|9999000443|MR|Test|E|Lead 443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000444|100444|989898|1|9999000444|MR|Test|E|Lead 444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000445|100445|989898|1|9999000445|MR|Test|E|Lead 445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000446|100446|989898|1|9999000446|MR|Test|E|Lead 446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000447|100447|989898|1|9999000447|MR|Test|E|Lead 447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000448|100448|989898|1|9999000448|MR|Test|E|Lead 448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000449|100449|989898|1|9999000449|MR|Test|E|Lead 449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000450|100450|989898|1|9999000450|MR|Test|E|Lead 450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000451|100451|989898|1|9999000451|MR|Test|E|Lead 451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000452|100452|989898|1|9999000452|MR|Test|E|Lead 452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000453|100453|989898|1|9999000453|MR|Test|E|Lead 453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000454|100454|989898|1|9999000454|MR|Test|E|Lead 454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000455|100455|989898|1|9999000455|MR|Test|E|Lead 455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000456|100456|989898|1|9999000456|MR|Test|E|Lead 456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000457|100457|989898|1|9999000457|MR|Test|E|Lead 457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000458|100458|989898|1|9999000458|MR|Test|E|Lead 458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000459|100459|989898|1|9999000459|MR|Test|E|Lead 459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000460|100460|989898|1|9999000460|MR|Test|E|Lead 460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000461|100461|989898|1|9999000461|MR|Test|E|Lead 461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000462|100462|989898|1|9999000462|MR|Test|E|Lead 462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000463|100463|989898|1|9999000463|MR|Test|E|Lead 463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000464|100464|989898|1|9999000464|MR|Test|E|Lead 464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000465|100465|989898|1|9999000465|MR|Test|E|Lead 465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000466|100466|989898|1|9999000466|MR|Test|E|Lead 466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000467|100467|989898|1|9999000467|MR|Test|E|Lead 467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000468|100468|989898|1|9999000468|MR|Test|E|Lead 468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000469|100469|989898|1|9999000469|MR|Test|E|Lead 469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000470|100470|989898|1|9999000470|MR|Test|E|Lead 470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000471|100471|989898|1|9999000471|MR|Test|E|Lead 471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000472|100472|989898|1|9999000472|MR|Test|E|Lead 472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000473|100473|989898|1|9999000473|MR|Test|E|Lead 473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000474|100474|989898|1|9999000474|MR|Test|E|Lead 474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000475|100475|989898|1|9999000475|MR|Test|E|Lead 475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000476|100476|989898|1|9999000476|MR|Test|E|Lead 476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000477|100477|989898|1|9999000477|MR|Test|E|Lead 477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000478|100478|989898|1|9999000478|MR|Test|E|Lead 478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000479|100479|989898|1|9999000479|MR|Test|E|Lead 479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000480|100480|989898|1|9999000480|MR|Test|E|Lead 480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000481|100481|989898|1|9999000481|MR|Test|E|Lead 481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000482|100482|989898|1|9999000482|MR|Test|E|Lead 482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000483|100483|989898|1|9999000483|MR|Test|E|Lead 483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000484|100484|989898|1|9999000484|MR|Test|E|Lead 484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000485|100485|989898|1|9999000485|MR|Test|E|Lead 485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000486|100486|989898|1|9999000486|MR|Test|E|Lead 486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000487|100487|989898|1|9999000487|MR|Test|E|Lead 487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000488|100488|989898|1|9999000488|MR|Test|E|Lead 488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000489|100489|989898|1|9999000489|MR|Test|E|Lead 489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000490|100490|989898|1|9999000490|MR|Test|E|Lead 490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000491|100491|989898|1|9999000491|MR|Test|E|Lead 491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000492|100492|989898|1|9999000492|MR|Test|E|Lead 492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000493|100493|989898|1|9999000493|MR|Test|E|Lead 493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000494|100494|989898|1|9999000494|MR|Test|E|Lead 494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000495|100495|989898|1|9999000495|MR|Test|E|Lead 495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000496|100496|989898|1|9999000496|MR|Test|E|Lead 496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000497|100497|989898|1|9999000497|MR|Test|E|Lead 497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000498|100498|989898|1|9999000498|MR|Test|E|Lead 498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000499|100499|989898|1|9999000499|MR|Test|E|Lead 499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000500|100500|989898|1|9999000500|MR|Test|E|Lead 500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000501|100501|989898|1|9999000501|MR|Test|E|Lead 501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000502|100502|989898|1|9999000502|MR|Test|E|Lead 502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000503|100503|989898|1|9999000503|MR|Test|E|Lead 503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000504|100504|989898|1|9999000504|MR|Test|E|Lead 504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000505|100505|989898|1|9999000505|MR|Test|E|Lead 505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000506|100506|989898|1|9999000506|MR|Test|E|Lead 506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000507|100507|989898|1|9999000507|MR|Test|E|Lead 507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000508|100508|989898|1|9999000508|MR|Test|E|Lead 508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000509|100509|989898|1|9999000509|MR|Test|E|Lead 509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000510|100510|989898|1|9999000510|MR|Test|E|Lead 510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000511|100511|989898|1|9999000511|MR|Test|E|Lead 511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000512|100512|989898|1|9999000512|MR|Test|E|Lead 512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000513|100513|989898|1|9999000513|MR|Test|E|Lead 513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000514|100514|989898|1|9999000514|MR|Test|E|Lead 514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000515|100515|989898|1|9999000515|MR|Test|E|Lead 515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000516|100516|989898|1|9999000516|MR|Test|E|Lead 516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000517|100517|989898|1|9999000517|MR|Test|E|Lead 517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000518|100518|989898|1|9999000518|MR|Test|E|Lead 518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000519|100519|989898|1|9999000519|MR|Test|E|Lead 519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000520|100520|989898|1|9999000520|MR|Test|E|Lead 520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000521|100521|989898|1|9999000521|MR|Test|E|Lead 521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000522|100522|989898|1|9999000522|MR|Test|E|Lead 522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000523|100523|989898|1|9999000523|MR|Test|E|Lead 523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000524|100524|989898|1|9999000524|MR|Test|E|Lead 524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000525|100525|989898|1|9999000525|MR|Test|E|Lead 525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000526|100526|989898|1|9999000526|MR|Test|E|Lead 526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000527|100527|989898|1|9999000527|MR|Test|E|Lead 527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000528|100528|989898|1|9999000528|MR|Test|E|Lead 528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000529|100529|989898|1|9999000529|MR|Test|E|Lead 529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000530|100530|989898|1|9999000530|MR|Test|E|Lead 530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000531|100531|989898|1|9999000531|MR|Test|E|Lead 531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000532|100532|989898|1|9999000532|MR|Test|E|Lead 532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000533|100533|989898|1|9999000533|MR|Test|E|Lead 533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000534|100534|989898|1|9999000534|MR|Test|E|Lead 534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000535|100535|989898|1|9999000535|MR|Test|E|Lead 535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000536|100536|989898|1|9999000536|MR|Test|E|Lead 536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000537|100537|989898|1|9999000537|MR|Test|E|Lead 537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000538|100538|989898|1|9999000538|MR|Test|E|Lead 538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000539|100539|989898|1|9999000539|MR|Test|E|Lead 539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000540|100540|989898|1|9999000540|MR|Test|E|Lead 540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000541|100541|989898|1|9999000541|MR|Test|E|Lead 541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000542|100542|989898|1|9999000542|MR|Test|E|Lead 542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000543|100543|989898|1|9999000543|MR|Test|E|Lead 543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000544|100544|989898|1|9999000544|MR|Test|E|Lead 544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000545|100545|989898|1|9999000545|MR|Test|E|Lead 545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000546|100546|989898|1|9999000546|MR|Test|E|Lead 546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000547|100547|989898|1|9999000547|MR|Test|E|Lead 547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000548|100548|989898|1|9999000548|MR|Test|E|Lead 548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000549|100549|989898|1|9999000549|MR|Test|E|Lead 549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000550|100550|989898|1|9999000550|MR|Test|E|Lead 550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000551|100551|989898|1|9999000551|MR|Test|E|Lead 551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000552|100552|989898|1|9999000552|MR|Test|E|Lead 552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000553|100553|989898|1|9999000553|MR|Test|E|Lead 553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000554|100554|989898|1|9999000554|MR|Test|E|Lead 554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000555|100555|989898|1|9999000555|MR|Test|E|Lead 555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000556|100556|989898|1|9999000556|MR|Test|E|Lead 556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000557|100557|989898|1|9999000557|MR|Test|E|Lead 557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000558|100558|989898|1|9999000558|MR|Test|E|Lead 558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000559|100559|989898|1|9999000559|MR|Test|E|Lead 559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000560|100560|989898|1|9999000560|MR|Test|E|Lead 560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000561|100561|989898|1|9999000561|MR|Test|E|Lead 561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000562|100562|989898|1|9999000562|MR|Test|E|Lead 562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000563|100563|989898|1|9999000563|MR|Test|E|Lead 563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000564|100564|989898|1|9999000564|MR|Test|E|Lead 564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000565|100565|989898|1|9999000565|MR|Test|E|Lead 565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000566|100566|989898|1|9999000566|MR|Test|E|Lead 566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000567|100567|989898|1|9999000567|MR|Test|E|Lead 567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000568|100568|989898|1|9999000568|MR|Test|E|Lead 568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000569|100569|989898|1|9999000569|MR|Test|E|Lead 569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000570|100570|989898|1|9999000570|MR|Test|E|Lead 570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000571|100571|989898|1|9999000571|MR|Test|E|Lead 571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000572|100572|989898|1|9999000572|MR|Test|E|Lead 572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000573|100573|989898|1|9999000573|MR|Test|E|Lead 573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000574|100574|989898|1|9999000574|MR|Test|E|Lead 574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000575|100575|989898|1|9999000575|MR|Test|E|Lead 575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000576|100576|989898|1|9999000576|MR|Test|E|Lead 576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000577|100577|989898|1|9999000577|MR|Test|E|Lead 577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000578|100578|989898|1|9999000578|MR|Test|E|Lead 578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000579|100579|989898|1|9999000579|MR|Test|E|Lead 579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000580|100580|989898|1|9999000580|MR|Test|E|Lead 580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000581|100581|989898|1|9999000581|MR|Test|E|Lead 581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000582|100582|989898|1|9999000582|MR|Test|E|Lead 582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000583|100583|989898|1|9999000583|MR|Test|E|Lead 583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000584|100584|989898|1|9999000584|MR|Test|E|Lead 584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000585|100585|989898|1|9999000585|MR|Test|E|Lead 585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000586|100586|989898|1|9999000586|MR|Test|E|Lead 586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000587|100587|989898|1|9999000587|MR|Test|E|Lead 587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000588|100588|989898|1|9999000588|MR|Test|E|Lead 588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000589|100589|989898|1|9999000589|MR|Test|E|Lead 589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000590|100590|989898|1|9999000590|MR|Test|E|Lead 590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000591|100591|989898|1|9999000591|MR|Test|E|Lead 591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000592|100592|989898|1|9999000592|MR|Test|E|Lead 592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000593|100593|989898|1|9999000593|MR|Test|E|Lead 593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000594|100594|989898|1|9999000594|MR|Test|E|Lead 594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000595|100595|989898|1|9999000595|MR|Test|E|Lead 595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000596|100596|989898|1|9999000596|MR|Test|E|Lead 596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000597|100597|989898|1|9999000597|MR|Test|E|Lead 597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000598|100598|989898|1|9999000598|MR|Test|E|Lead 598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000599|100599|989898|1|9999000599|MR|Test|E|Lead 599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000600|100600|989898|1|9999000600|MR|Test|E|Lead 600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000601|100601|989898|1|9999000601|MR|Test|E|Lead 601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000602|100602|989898|1|9999000602|MR|Test|E|Lead 602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000603|100603|989898|1|9999000603|MR|Test|E|Lead 603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000604|100604|989898|1|9999000604|MR|Test|E|Lead 604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000605|100605|989898|1|9999000605|MR|Test|E|Lead 605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000606|100606|989898|1|9999000606|MR|Test|E|Lead 606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000607|100607|989898|1|9999000607|MR|Test|E|Lead 607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000608|100608|989898|1|9999000608|MR|Test|E|Lead 608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000609|100609|989898|1|9999000609|MR|Test|E|Lead 609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000610|100610|989898|1|9999000610|MR|Test|E|Lead 610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000611|100611|989898|1|9999000611|MR|Test|E|Lead 611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000612|100612|989898|1|9999000612|MR|Test|E|Lead 612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000613|100613|989898|1|9999000613|MR|Test|E|Lead 613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000614|100614|989898|1|9999000614|MR|Test|E|Lead 614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000615|100615|989898|1|9999000615|MR|Test|E|Lead 615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000616|100616|989898|1|9999000616|MR|Test|E|Lead 616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000617|100617|989898|1|9999000617|MR|Test|E|Lead 617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000618|100618|989898|1|9999000618|MR|Test|E|Lead 618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000619|100619|989898|1|9999000619|MR|Test|E|Lead 619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000620|100620|989898|1|9999000620|MR|Test|E|Lead 620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000621|100621|989898|1|9999000621|MR|Test|E|Lead 621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000622|100622|989898|1|9999000622|MR|Test|E|Lead 622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000623|100623|989898|1|9999000623|MR|Test|E|Lead 623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000624|100624|989898|1|9999000624|MR|Test|E|Lead 624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000625|100625|989898|1|9999000625|MR|Test|E|Lead 625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000626|100626|989898|1|9999000626|MR|Test|E|Lead 626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000627|100627|989898|1|9999000627|MR|Test|E|Lead 627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000628|100628|989898|1|9999000628|MR|Test|E|Lead 628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000629|100629|989898|1|9999000629|MR|Test|E|Lead 629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000630|100630|989898|1|9999000630|MR|Test|E|Lead 630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000631|100631|989898|1|9999000631|MR|Test|E|Lead 631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000632|100632|989898|1|9999000632|MR|Test|E|Lead 632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000633|100633|989898|1|9999000633|MR|Test|E|Lead 633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000634|100634|989898|1|9999000634|MR|Test|E|Lead 634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000635|100635|989898|1|9999000635|MR|Test|E|Lead 635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000636|100636|989898|1|9999000636|MR|Test|E|Lead 636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000637|100637|989898|1|9999000637|MR|Test|E|Lead 637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000638|100638|989898|1|9999000638|MR|Test|E|Lead 638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000639|100639|989898|1|9999000639|MR|Test|E|Lead 639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000640|100640|989898|1|9999000640|MR|Test|E|Lead 640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000641|100641|989898|1|9999000641|MR|Test|E|Lead 641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000642|100642|989898|1|9999000642|MR|Test|E|Lead 642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000643|100643|989898|1|9999000643|MR|Test|E|Lead 643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000644|100644|989898|1|9999000644|MR|Test|E|Lead 644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000645|100645|989898|1|9999000645|MR|Test|E|Lead 645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000646|100646|989898|1|9999000646|MR|Test|E|Lead 646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000647|100647|989898|1|9999000647|MR|Test|E|Lead 647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000648|100648|989898|1|9999000648|MR|Test|E|Lead 648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000649|100649|989898|1|9999000649|MR|Test|E|Lead 649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000650|100650|989898|1|9999000650|MR|Test|E|Lead 650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000651|100651|989898|1|9999000651|MR|Test|E|Lead 651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000652|100652|989898|1|9999000652|MR|Test|E|Lead 652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000653|100653|989898|1|9999000653|MR|Test|E|Lead 653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000654|100654|989898|1|9999000654|MR|Test|E|Lead 654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000655|100655|989898|1|9999000655|MR|Test|E|Lead 655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000656|100656|989898|1|9999000656|MR|Test|E|Lead 656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000657|100657|989898|1|9999000657|MR|Test|E|Lead 657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000658|100658|989898|1|9999000658|MR|Test|E|Lead 658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000659|100659|989898|1|9999000659|MR|Test|E|Lead 659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000660|100660|989898|1|9999000660|MR|Test|E|Lead 660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000661|100661|989898|1|9999000661|MR|Test|E|Lead 661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000662|100662|989898|1|9999000662|MR|Test|E|Lead 662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000663|100663|989898|1|9999000663|MR|Test|E|Lead 663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000664|100664|989898|1|9999000664|MR|Test|E|Lead 664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000665|100665|989898|1|9999000665|MR|Test|E|Lead 665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000666|100666|989898|1|9999000666|MR|Test|E|Lead 666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000667|100667|989898|1|9999000667|MR|Test|E|Lead 667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000668|100668|989898|1|9999000668|MR|Test|E|Lead 668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000669|100669|989898|1|9999000669|MR|Test|E|Lead 669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000670|100670|989898|1|9999000670|MR|Test|E|Lead 670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000671|100671|989898|1|9999000671|MR|Test|E|Lead 671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000672|100672|989898|1|9999000672|MR|Test|E|Lead 672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000673|100673|989898|1|9999000673|MR|Test|E|Lead 673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000674|100674|989898|1|9999000674|MR|Test|E|Lead 674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000675|100675|989898|1|9999000675|MR|Test|E|Lead 675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000676|100676|989898|1|9999000676|MR|Test|E|Lead 676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000677|100677|989898|1|9999000677|MR|Test|E|Lead 677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000678|100678|989898|1|9999000678|MR|Test|E|Lead 678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000679|100679|989898|1|9999000679|MR|Test|E|Lead 679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000680|100680|989898|1|9999000680|MR|Test|E|Lead 680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000681|100681|989898|1|9999000681|MR|Test|E|Lead 681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000682|100682|989898|1|9999000682|MR|Test|E|Lead 682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000683|100683|989898|1|9999000683|MR|Test|E|Lead 683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000684|100684|989898|1|9999000684|MR|Test|E|Lead 684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000685|100685|989898|1|9999000685|MR|Test|E|Lead 685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000686|100686|989898|1|9999000686|MR|Test|E|Lead 686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000687|100687|989898|1|9999000687|MR|Test|E|Lead 687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000688|100688|989898|1|9999000688|MR|Test|E|Lead 688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000689|100689|989898|1|9999000689|MR|Test|E|Lead 689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000690|100690|989898|1|9999000690|MR|Test|E|Lead 690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000691|100691|989898|1|9999000691|MR|Test|E|Lead 691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000692|100692|989898|1|9999000692|MR|Test|E|Lead 692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000693|100693|989898|1|9999000693|MR|Test|E|Lead 693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000694|100694|989898|1|9999000694|MR|Test|E|Lead 694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000695|100695|989898|1|9999000695|MR|Test|E|Lead 695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000696|100696|989898|1|9999000696|MR|Test|E|Lead 696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000697|100697|989898|1|9999000697|MR|Test|E|Lead 697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000698|100698|989898|1|9999000698|MR|Test|E|Lead 698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000699|100699|989898|1|9999000699|MR|Test|E|Lead 699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000700|100700|989898|1|9999000700|MR|Test|E|Lead 700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000701|100701|989898|1|9999000701|MR|Test|E|Lead 701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000702|100702|989898|1|9999000702|MR|Test|E|Lead 702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000703|100703|989898|1|9999000703|MR|Test|E|Lead 703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000704|100704|989898|1|9999000704|MR|Test|E|Lead 704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000705|100705|989898|1|9999000705|MR|Test|E|Lead 705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000706|100706|989898|1|9999000706|MR|Test|E|Lead 706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000707|100707|989898|1|9999000707|MR|Test|E|Lead 707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000708|100708|989898|1|9999000708|MR|Test|E|Lead 708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000709|100709|989898|1|9999000709|MR|Test|E|Lead 709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000710|100710|989898|1|9999000710|MR|Test|E|Lead 710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000711|100711|989898|1|9999000711|MR|Test|E|Lead 711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000712|100712|989898|1|9999000712|MR|Test|E|Lead 712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000713|100713|989898|1|9999000713|MR|Test|E|Lead 713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000714|100714|989898|1|9999000714|MR|Test|E|Lead 714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000715|100715|989898|1|9999000715|MR|Test|E|Lead 715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000716|100716|989898|1|9999000716|MR|Test|E|Lead 716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000717|100717|989898|1|9999000717|MR|Test|E|Lead 717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000718|100718|989898|1|9999000718|MR|Test|E|Lead 718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000719|100719|989898|1|9999000719|MR|Test|E|Lead 719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000720|100720|989898|1|9999000720|MR|Test|E|Lead 720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000721|100721|989898|1|9999000721|MR|Test|E|Lead 721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000722|100722|989898|1|9999000722|MR|Test|E|Lead 722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000723|100723|989898|1|9999000723|MR|Test|E|Lead 723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000724|100724|989898|1|9999000724|MR|Test|E|Lead 724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000725|100725|989898|1|9999000725|MR|Test|E|Lead 725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000726|100726|989898|1|9999000726|MR|Test|E|Lead 726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000727|100727|989898|1|9999000727|MR|Test|E|Lead 727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000728|100728|989898|1|9999000728|MR|Test|E|Lead 728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000729|100729|989898|1|9999000729|MR|Test|E|Lead 729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000730|100730|989898|1|9999000730|MR|Test|E|Lead 730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000731|100731|989898|1|9999000731|MR|Test|E|Lead 731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000732|100732|989898|1|9999000732|MR|Test|E|Lead 732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000733|100733|989898|1|9999000733|MR|Test|E|Lead 733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000734|100734|989898|1|9999000734|MR|Test|E|Lead 734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000735|100735|989898|1|9999000735|MR|Test|E|Lead 735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000736|100736|989898|1|9999000736|MR|Test|E|Lead 736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000737|100737|989898|1|9999000737|MR|Test|E|Lead 737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000738|100738|989898|1|9999000738|MR|Test|E|Lead 738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000739|100739|989898|1|9999000739|MR|Test|E|Lead 739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000740|100740|989898|1|9999000740|MR|Test|E|Lead 740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000741|100741|989898|1|9999000741|MR|Test|E|Lead 741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000742|100742|989898|1|9999000742|MR|Test|E|Lead 742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000743|100743|989898|1|9999000743|MR|Test|E|Lead 743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000744|100744|989898|1|9999000744|MR|Test|E|Lead 744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000745|100745|989898|1|9999000745|MR|Test|E|Lead 745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000746|100746|989898|1|9999000746|MR|Test|E|Lead 746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000747|100747|989898|1|9999000747|MR|Test|E|Lead 747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000748|100748|989898|1|9999000748|MR|Test|E|Lead 748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000749|100749|989898|1|9999000749|MR|Test|E|Lead 749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000750|100750|989898|1|9999000750|MR|Test|E|Lead 750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000751|100751|989898|1|9999000751|MR|Test|E|Lead 751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000752|100752|989898|1|9999000752|MR|Test|E|Lead 752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000753|100753|989898|1|9999000753|MR|Test|E|Lead 753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000754|100754|989898|1|9999000754|MR|Test|E|Lead 754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000755|100755|989898|1|9999000755|MR|Test|E|Lead 755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000756|100756|989898|1|9999000756|MR|Test|E|Lead 756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000757|100757|989898|1|9999000757|MR|Test|E|Lead 757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000758|100758|989898|1|9999000758|MR|Test|E|Lead 758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000759|100759|989898|1|9999000759|MR|Test|E|Lead 759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000760|100760|989898|1|9999000760|MR|Test|E|Lead 760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000761|100761|989898|1|9999000761|MR|Test|E|Lead 761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000762|100762|989898|1|9999000762|MR|Test|E|Lead 762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000763|100763|989898|1|9999000763|MR|Test|E|Lead 763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000764|100764|989898|1|9999000764|MR|Test|E|Lead 764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000765|100765|989898|1|9999000765|MR|Test|E|Lead 765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000766|100766|989898|1|9999000766|MR|Test|E|Lead 766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000767|100767|989898|1|9999000767|MR|Test|E|Lead 767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000768|100768|989898|1|9999000768|MR|Test|E|Lead 768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000769|100769|989898|1|9999000769|MR|Test|E|Lead 769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000770|100770|989898|1|9999000770|MR|Test|E|Lead 770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000771|100771|989898|1|9999000771|MR|Test|E|Lead 771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000772|100772|989898|1|9999000772|MR|Test|E|Lead 772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000773|100773|989898|1|9999000773|MR|Test|E|Lead 773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000774|100774|989898|1|9999000774|MR|Test|E|Lead 774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000775|100775|989898|1|9999000775|MR|Test|E|Lead 775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000776|100776|989898|1|9999000776|MR|Test|E|Lead 776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000777|100777|989898|1|9999000777|MR|Test|E|Lead 777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000778|100778|989898|1|9999000778|MR|Test|E|Lead 778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000779|100779|989898|1|9999000779|MR|Test|E|Lead 779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000780|100780|989898|1|9999000780|MR|Test|E|Lead 780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000781|100781|989898|1|9999000781|MR|Test|E|Lead 781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000782|100782|989898|1|9999000782|MR|Test|E|Lead 782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000783|100783|989898|1|9999000783|MR|Test|E|Lead 783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000784|100784|989898|1|9999000784|MR|Test|E|Lead 784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000785|100785|989898|1|9999000785|MR|Test|E|Lead 785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000786|100786|989898|1|9999000786|MR|Test|E|Lead 786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000787|100787|989898|1|9999000787|MR|Test|E|Lead 787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000788|100788|989898|1|9999000788|MR|Test|E|Lead 788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000789|100789|989898|1|9999000789|MR|Test|E|Lead 789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000790|100790|989898|1|9999000790|MR|Test|E|Lead 790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000791|100791|989898|1|9999000791|MR|Test|E|Lead 791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000792|100792|989898|1|9999000792|MR|Test|E|Lead 792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000793|100793|989898|1|9999000793|MR|Test|E|Lead 793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000794|100794|989898|1|9999000794|MR|Test|E|Lead 794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000795|100795|989898|1|9999000795|MR|Test|E|Lead 795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000796|100796|989898|1|9999000796|MR|Test|E|Lead 796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000797|100797|989898|1|9999000797|MR|Test|E|Lead 797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000798|100798|989898|1|9999000798|MR|Test|E|Lead 798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000799|100799|989898|1|9999000799|MR|Test|E|Lead 799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000800|100800|989898|1|9999000800|MR|Test|E|Lead 800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000801|100801|989898|1|9999000801|MR|Test|E|Lead 801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000802|100802|989898|1|9999000802|MR|Test|E|Lead 802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000803|100803|989898|1|9999000803|MR|Test|E|Lead 803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000804|100804|989898|1|9999000804|MR|Test|E|Lead 804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000805|100805|989898|1|9999000805|MR|Test|E|Lead 805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000806|100806|989898|1|9999000806|MR|Test|E|Lead 806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000807|100807|989898|1|9999000807|MR|Test|E|Lead 807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000808|100808|989898|1|9999000808|MR|Test|E|Lead 808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000809|100809|989898|1|9999000809|MR|Test|E|Lead 809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000810|100810|989898|1|9999000810|MR|Test|E|Lead 810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000811|100811|989898|1|9999000811|MR|Test|E|Lead 811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000812|100812|989898|1|9999000812|MR|Test|E|Lead 812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000813|100813|989898|1|9999000813|MR|Test|E|Lead 813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000814|100814|989898|1|9999000814|MR|Test|E|Lead 814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000815|100815|989898|1|9999000815|MR|Test|E|Lead 815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000816|100816|989898|1|9999000816|MR|Test|E|Lead 816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000817|100817|989898|1|9999000817|MR|Test|E|Lead 817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000818|100818|989898|1|9999000818|MR|Test|E|Lead 818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000819|100819|989898|1|9999000819|MR|Test|E|Lead 819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000820|100820|989898|1|9999000820|MR|Test|E|Lead 820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000821|100821|989898|1|9999000821|MR|Test|E|Lead 821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000822|100822|989898|1|9999000822|MR|Test|E|Lead 822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000823|100823|989898|1|9999000823|MR|Test|E|Lead 823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000824|100824|989898|1|9999000824|MR|Test|E|Lead 824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000825|100825|989898|1|9999000825|MR|Test|E|Lead 825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000826|100826|989898|1|9999000826|MR|Test|E|Lead 826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000827|100827|989898|1|9999000827|MR|Test|E|Lead 827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000828|100828|989898|1|9999000828|MR|Test|E|Lead 828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000829|100829|989898|1|9999000829|MR|Test|E|Lead 829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000830|100830|989898|1|9999000830|MR|Test|E|Lead 830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000831|100831|989898|1|9999000831|MR|Test|E|Lead 831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000832|100832|989898|1|9999000832|MR|Test|E|Lead 832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000833|100833|989898|1|9999000833|MR|Test|E|Lead 833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000834|100834|989898|1|9999000834|MR|Test|E|Lead 834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000835|100835|989898|1|9999000835|MR|Test|E|Lead 835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000836|100836|989898|1|9999000836|MR|Test|E|Lead 836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000837|100837|989898|1|9999000837|MR|Test|E|Lead 837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000838|100838|989898|1|9999000838|MR|Test|E|Lead 838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000839|100839|989898|1|9999000839|MR|Test|E|Lead 839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000840|100840|989898|1|9999000840|MR|Test|E|Lead 840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000841|100841|989898|1|9999000841|MR|Test|E|Lead 841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000842|100842|989898|1|9999000842|MR|Test|E|Lead 842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000843|100843|989898|1|9999000843|MR|Test|E|Lead 843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000844|100844|989898|1|9999000844|MR|Test|E|Lead 844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000845|100845|989898|1|9999000845|MR|Test|E|Lead 845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000846|100846|989898|1|9999000846|MR|Test|E|Lead 846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000847|100847|989898|1|9999000847|MR|Test|E|Lead 847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000848|100848|989898|1|9999000848|MR|Test|E|Lead 848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000849|100849|989898|1|9999000849|MR|Test|E|Lead 849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000850|100850|989898|1|9999000850|MR|Test|E|Lead 850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000851|100851|989898|1|9999000851|MR|Test|E|Lead 851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000852|100852|989898|1|9999000852|MR|Test|E|Lead 852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000853|100853|989898|1|9999000853|MR|Test|E|Lead 853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000854|100854|989898|1|9999000854|MR|Test|E|Lead 854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000855|100855|989898|1|9999000855|MR|Test|E|Lead 855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000856|100856|989898|1|9999000856|MR|Test|E|Lead 856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000857|100857|989898|1|9999000857|MR|Test|E|Lead 857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000858|100858|989898|1|9999000858|MR|Test|E|Lead 858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000859|100859|989898|1|9999000859|MR|Test|E|Lead 859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000860|100860|989898|1|9999000860|MR|Test|E|Lead 860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000861|100861|989898|1|9999000861|MR|Test|E|Lead 861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000862|100862|989898|1|9999000862|MR|Test|E|Lead 862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000863|100863|989898|1|9999000863|MR|Test|E|Lead 863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000864|100864|989898|1|9999000864|MR|Test|E|Lead 864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000865|100865|989898|1|9999000865|MR|Test|E|Lead 865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000866|100866|989898|1|9999000866|MR|Test|E|Lead 866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000867|100867|989898|1|9999000867|MR|Test|E|Lead 867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000868|100868|989898|1|9999000868|MR|Test|E|Lead 868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000869|100869|989898|1|9999000869|MR|Test|E|Lead 869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000870|100870|989898|1|9999000870|MR|Test|E|Lead 870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000871|100871|989898|1|9999000871|MR|Test|E|Lead 871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000872|100872|989898|1|9999000872|MR|Test|E|Lead 872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000873|100873|989898|1|9999000873|MR|Test|E|Lead 873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000874|100874|989898|1|9999000874|MR|Test|E|Lead 874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000875|100875|989898|1|9999000875|MR|Test|E|Lead 875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000876|100876|989898|1|9999000876|MR|Test|E|Lead 876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000877|100877|989898|1|9999000877|MR|Test|E|Lead 877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000878|100878|989898|1|9999000878|MR|Test|E|Lead 878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000879|100879|989898|1|9999000879|MR|Test|E|Lead 879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000880|100880|989898|1|9999000880|MR|Test|E|Lead 880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000881|100881|989898|1|9999000881|MR|Test|E|Lead 881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000882|100882|989898|1|9999000882|MR|Test|E|Lead 882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000883|100883|989898|1|9999000883|MR|Test|E|Lead 883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000884|100884|989898|1|9999000884|MR|Test|E|Lead 884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000885|100885|989898|1|9999000885|MR|Test|E|Lead 885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000886|100886|989898|1|9999000886|MR|Test|E|Lead 886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000887|100887|989898|1|9999000887|MR|Test|E|Lead 887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000888|100888|989898|1|9999000888|MR|Test|E|Lead 888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000889|100889|989898|1|9999000889|MR|Test|E|Lead 889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000890|100890|989898|1|9999000890|MR|Test|E|Lead 890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000891|100891|989898|1|9999000891|MR|Test|E|Lead 891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000892|100892|989898|1|9999000892|MR|Test|E|Lead 892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000893|100893|989898|1|9999000893|MR|Test|E|Lead 893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000894|100894|989898|1|9999000894|MR|Test|E|Lead 894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000895|100895|989898|1|9999000895|MR|Test|E|Lead 895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000896|100896|989898|1|9999000896|MR|Test|E|Lead 896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000897|100897|989898|1|9999000897|MR|Test|E|Lead 897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000898|100898|989898|1|9999000898|MR|Test|E|Lead 898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000899|100899|989898|1|9999000899|MR|Test|E|Lead 899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000900|100900|989898|1|9999000900|MR|Test|E|Lead 900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000901|100901|989898|1|9999000901|MR|Test|E|Lead 901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000902|100902|989898|1|9999000902|MR|Test|E|Lead 902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000903|100903|989898|1|9999000903|MR|Test|E|Lead 903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000904|100904|989898|1|9999000904|MR|Test|E|Lead 904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000905|100905|989898|1|9999000905|MR|Test|E|Lead 905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000906|100906|989898|1|9999000906|MR|Test|E|Lead 906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000907|100907|989898|1|9999000907|MR|Test|E|Lead 907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000908|100908|989898|1|9999000908|MR|Test|E|Lead 908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000909|100909|989898|1|9999000909|MR|Test|E|Lead 909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000910|100910|989898|1|9999000910|MR|Test|E|Lead 910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000911|100911|989898|1|9999000911|MR|Test|E|Lead 911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000912|100912|989898|1|9999000912|MR|Test|E|Lead 912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000913|100913|989898|1|9999000913|MR|Test|E|Lead 913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000914|100914|989898|1|9999000914|MR|Test|E|Lead 914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000915|100915|989898|1|9999000915|MR|Test|E|Lead 915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000916|100916|989898|1|9999000916|MR|Test|E|Lead 916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000917|100917|989898|1|9999000917|MR|Test|E|Lead 917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000918|100918|989898|1|9999000918|MR|Test|E|Lead 918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000919|100919|989898|1|9999000919|MR|Test|E|Lead 919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000920|100920|989898|1|9999000920|MR|Test|E|Lead 920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000921|100921|989898|1|9999000921|MR|Test|E|Lead 921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000922|100922|989898|1|9999000922|MR|Test|E|Lead 922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000923|100923|989898|1|9999000923|MR|Test|E|Lead 923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000924|100924|989898|1|9999000924|MR|Test|E|Lead 924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000925|100925|989898|1|9999000925|MR|Test|E|Lead 925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000926|100926|989898|1|9999000926|MR|Test|E|Lead 926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000927|100927|989898|1|9999000927|MR|Test|E|Lead 927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000928|100928|989898|1|9999000928|MR|Test|E|Lead 928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000929|100929|989898|1|9999000929|MR|Test|E|Lead 929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000930|100930|989898|1|9999000930|MR|Test|E|Lead 930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000931|100931|989898|1|9999000931|MR|Test|E|Lead 931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000932|100932|989898|1|9999000932|MR|Test|E|Lead 932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000933|100933|989898|1|9999000933|MR|Test|E|Lead 933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000934|100934|989898|1|9999000934|MR|Test|E|Lead 934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000935|100935|989898|1|9999000935|MR|Test|E|Lead 935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000936|100936|989898|1|9999000936|MR|Test|E|Lead 936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000937|100937|989898|1|9999000937|MR|Test|E|Lead 937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000938|100938|989898|1|9999000938|MR|Test|E|Lead 938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000939|100939|989898|1|9999000939|MR|Test|E|Lead 939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000940|100940|989898|1|9999000940|MR|Test|E|Lead 940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000941|100941|989898|1|9999000941|MR|Test|E|Lead 941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000942|100942|989898|1|9999000942|MR|Test|E|Lead 942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000943|100943|989898|1|9999000943|MR|Test|E|Lead 943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000944|100944|989898|1|9999000944|MR|Test|E|Lead 944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000945|100945|989898|1|9999000945|MR|Test|E|Lead 945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000946|100946|989898|1|9999000946|MR|Test|E|Lead 946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000947|100947|989898|1|9999000947|MR|Test|E|Lead 947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000948|100948|989898|1|9999000948|MR|Test|E|Lead 948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000949|100949|989898|1|9999000949|MR|Test|E|Lead 949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000950|100950|989898|1|9999000950|MR|Test|E|Lead 950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000951|100951|989898|1|9999000951|MR|Test|E|Lead 951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000952|100952|989898|1|9999000952|MR|Test|E|Lead 952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000953|100953|989898|1|9999000953|MR|Test|E|Lead 953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000954|100954|989898|1|9999000954|MR|Test|E|Lead 954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000955|100955|989898|1|9999000955|MR|Test|E|Lead 955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000956|100956|989898|1|9999000956|MR|Test|E|Lead 956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000957|100957|989898|1|9999000957|MR|Test|E|Lead 957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000958|100958|989898|1|9999000958|MR|Test|E|Lead 958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000959|100959|989898|1|9999000959|MR|Test|E|Lead 959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000960|100960|989898|1|9999000960|MR|Test|E|Lead 960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000961|100961|989898|1|9999000961|MR|Test|E|Lead 961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000962|100962|989898|1|9999000962|MR|Test|E|Lead 962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000963|100963|989898|1|9999000963|MR|Test|E|Lead 963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000964|100964|989898|1|9999000964|MR|Test|E|Lead 964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000965|100965|989898|1|9999000965|MR|Test|E|Lead 965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000966|100966|989898|1|9999000966|MR|Test|E|Lead 966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000967|100967|989898|1|9999000967|MR|Test|E|Lead 967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000968|100968|989898|1|9999000968|MR|Test|E|Lead 968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000969|100969|989898|1|9999000969|MR|Test|E|Lead 969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000970|100970|989898|1|9999000970|MR|Test|E|Lead 970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000971|100971|989898|1|9999000971|MR|Test|E|Lead 971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000972|100972|989898|1|9999000972|MR|Test|E|Lead 972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000973|100973|989898|1|9999000973|MR|Test|E|Lead 973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000974|100974|989898|1|9999000974|MR|Test|E|Lead 974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000975|100975|989898|1|9999000975|MR|Test|E|Lead 975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000976|100976|989898|1|9999000976|MR|Test|E|Lead 976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000977|100977|989898|1|9999000977|MR|Test|E|Lead 977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000978|100978|989898|1|9999000978|MR|Test|E|Lead 978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000979|100979|989898|1|9999000979|MR|Test|E|Lead 979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000980|100980|989898|1|9999000980|MR|Test|E|Lead 980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000981|100981|989898|1|9999000981|MR|Test|E|Lead 981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000982|100982|989898|1|9999000982|MR|Test|E|Lead 982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000983|100983|989898|1|9999000983|MR|Test|E|Lead 983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000984|100984|989898|1|9999000984|MR|Test|E|Lead 984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000985|100985|989898|1|9999000985|MR|Test|E|Lead 985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000986|100986|989898|1|9999000986|MR|Test|E|Lead 986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000987|100987|989898|1|9999000987|MR|Test|E|Lead 987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000988|100988|989898|1|9999000988|MR|Test|E|Lead 988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000989|100989|989898|1|9999000989|MR|Test|E|Lead 989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000990|100990|989898|1|9999000990|MR|Test|E|Lead 990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000991|100991|989898|1|9999000991|MR|Test|E|Lead 991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000992|100992|989898|1|9999000992|MR|Test|E|Lead 992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000993|100993|989898|1|9999000993|MR|Test|E|Lead 993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000994|100994|989898|1|9999000994|MR|Test|E|Lead 994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000995|100995|989898|1|9999000995|MR|Test|E|Lead 995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000996|100996|989898|1|9999000996|MR|Test|E|Lead 996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000997|100997|989898|1|9999000997|MR|Test|E|Lead 997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000998|100998|989898|1|9999000998|MR|Test|E|Lead 998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1000999|100999|989898|1|9999000999|MR|Test|E|Lead 999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001000|101000|989898|1|9999001000|MR|Test|E|Lead 1000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001001|101001|989898|1|9999001001|MR|Test|E|Lead 1001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001002|101002|989898|1|9999001002|MR|Test|E|Lead 1002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001003|101003|989898|1|9999001003|MR|Test|E|Lead 1003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001004|101004|989898|1|9999001004|MR|Test|E|Lead 1004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001005|101005|989898|1|9999001005|MR|Test|E|Lead 1005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001006|101006|989898|1|9999001006|MR|Test|E|Lead 1006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001007|101007|989898|1|9999001007|MR|Test|E|Lead 1007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001008|101008|989898|1|9999001008|MR|Test|E|Lead 1008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001009|101009|989898|1|9999001009|MR|Test|E|Lead 1009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001010|101010|989898|1|9999001010|MR|Test|E|Lead 1010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001011|101011|989898|1|9999001011|MR|Test|E|Lead 1011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001012|101012|989898|1|9999001012|MR|Test|E|Lead 1012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001013|101013|989898|1|9999001013|MR|Test|E|Lead 1013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001014|101014|989898|1|9999001014|MR|Test|E|Lead 1014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001015|101015|989898|1|9999001015|MR|Test|E|Lead 1015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001016|101016|989898|1|9999001016|MR|Test|E|Lead 1016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001017|101017|989898|1|9999001017|MR|Test|E|Lead 1017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001018|101018|989898|1|9999001018|MR|Test|E|Lead 1018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001019|101019|989898|1|9999001019|MR|Test|E|Lead 1019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001020|101020|989898|1|9999001020|MR|Test|E|Lead 1020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001021|101021|989898|1|9999001021|MR|Test|E|Lead 1021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001022|101022|989898|1|9999001022|MR|Test|E|Lead 1022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001023|101023|989898|1|9999001023|MR|Test|E|Lead 1023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001024|101024|989898|1|9999001024|MR|Test|E|Lead 1024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001025|101025|989898|1|9999001025|MR|Test|E|Lead 1025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001026|101026|989898|1|9999001026|MR|Test|E|Lead 1026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001027|101027|989898|1|9999001027|MR|Test|E|Lead 1027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001028|101028|989898|1|9999001028|MR|Test|E|Lead 1028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001029|101029|989898|1|9999001029|MR|Test|E|Lead 1029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001030|101030|989898|1|9999001030|MR|Test|E|Lead 1030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001031|101031|989898|1|9999001031|MR|Test|E|Lead 1031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001032|101032|989898|1|9999001032|MR|Test|E|Lead 1032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001033|101033|989898|1|9999001033|MR|Test|E|Lead 1033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001034|101034|989898|1|9999001034|MR|Test|E|Lead 1034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001035|101035|989898|1|9999001035|MR|Test|E|Lead 1035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001036|101036|989898|1|9999001036|MR|Test|E|Lead 1036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001037|101037|989898|1|9999001037|MR|Test|E|Lead 1037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001038|101038|989898|1|9999001038|MR|Test|E|Lead 1038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001039|101039|989898|1|9999001039|MR|Test|E|Lead 1039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001040|101040|989898|1|9999001040|MR|Test|E|Lead 1040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001041|101041|989898|1|9999001041|MR|Test|E|Lead 1041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001042|101042|989898|1|9999001042|MR|Test|E|Lead 1042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001043|101043|989898|1|9999001043|MR|Test|E|Lead 1043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001044|101044|989898|1|9999001044|MR|Test|E|Lead 1044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001045|101045|989898|1|9999001045|MR|Test|E|Lead 1045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001046|101046|989898|1|9999001046|MR|Test|E|Lead 1046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001047|101047|989898|1|9999001047|MR|Test|E|Lead 1047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001048|101048|989898|1|9999001048|MR|Test|E|Lead 1048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001049|101049|989898|1|9999001049|MR|Test|E|Lead 1049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001050|101050|989898|1|9999001050|MR|Test|E|Lead 1050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001051|101051|989898|1|9999001051|MR|Test|E|Lead 1051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001052|101052|989898|1|9999001052|MR|Test|E|Lead 1052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001053|101053|989898|1|9999001053|MR|Test|E|Lead 1053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001054|101054|989898|1|9999001054|MR|Test|E|Lead 1054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001055|101055|989898|1|9999001055|MR|Test|E|Lead 1055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001056|101056|989898|1|9999001056|MR|Test|E|Lead 1056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001057|101057|989898|1|9999001057|MR|Test|E|Lead 1057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001058|101058|989898|1|9999001058|MR|Test|E|Lead 1058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001059|101059|989898|1|9999001059|MR|Test|E|Lead 1059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001060|101060|989898|1|9999001060|MR|Test|E|Lead 1060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001061|101061|989898|1|9999001061|MR|Test|E|Lead 1061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001062|101062|989898|1|9999001062|MR|Test|E|Lead 1062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001063|101063|989898|1|9999001063|MR|Test|E|Lead 1063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001064|101064|989898|1|9999001064|MR|Test|E|Lead 1064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001065|101065|989898|1|9999001065|MR|Test|E|Lead 1065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001066|101066|989898|1|9999001066|MR|Test|E|Lead 1066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001067|101067|989898|1|9999001067|MR|Test|E|Lead 1067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001068|101068|989898|1|9999001068|MR|Test|E|Lead 1068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001069|101069|989898|1|9999001069|MR|Test|E|Lead 1069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001070|101070|989898|1|9999001070|MR|Test|E|Lead 1070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001071|101071|989898|1|9999001071|MR|Test|E|Lead 1071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001072|101072|989898|1|9999001072|MR|Test|E|Lead 1072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001073|101073|989898|1|9999001073|MR|Test|E|Lead 1073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001074|101074|989898|1|9999001074|MR|Test|E|Lead 1074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001075|101075|989898|1|9999001075|MR|Test|E|Lead 1075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001076|101076|989898|1|9999001076|MR|Test|E|Lead 1076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001077|101077|989898|1|9999001077|MR|Test|E|Lead 1077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001078|101078|989898|1|9999001078|MR|Test|E|Lead 1078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001079|101079|989898|1|9999001079|MR|Test|E|Lead 1079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001080|101080|989898|1|9999001080|MR|Test|E|Lead 1080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001081|101081|989898|1|9999001081|MR|Test|E|Lead 1081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001082|101082|989898|1|9999001082|MR|Test|E|Lead 1082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001083|101083|989898|1|9999001083|MR|Test|E|Lead 1083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001084|101084|989898|1|9999001084|MR|Test|E|Lead 1084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001085|101085|989898|1|9999001085|MR|Test|E|Lead 1085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001086|101086|989898|1|9999001086|MR|Test|E|Lead 1086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001087|101087|989898|1|9999001087|MR|Test|E|Lead 1087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001088|101088|989898|1|9999001088|MR|Test|E|Lead 1088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001089|101089|989898|1|9999001089|MR|Test|E|Lead 1089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001090|101090|989898|1|9999001090|MR|Test|E|Lead 1090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001091|101091|989898|1|9999001091|MR|Test|E|Lead 1091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001092|101092|989898|1|9999001092|MR|Test|E|Lead 1092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001093|101093|989898|1|9999001093|MR|Test|E|Lead 1093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001094|101094|989898|1|9999001094|MR|Test|E|Lead 1094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001095|101095|989898|1|9999001095|MR|Test|E|Lead 1095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001096|101096|989898|1|9999001096|MR|Test|E|Lead 1096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001097|101097|989898|1|9999001097|MR|Test|E|Lead 1097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001098|101098|989898|1|9999001098|MR|Test|E|Lead 1098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001099|101099|989898|1|9999001099|MR|Test|E|Lead 1099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001100|101100|989898|1|9999001100|MR|Test|E|Lead 1100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001101|101101|989898|1|9999001101|MR|Test|E|Lead 1101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001102|101102|989898|1|9999001102|MR|Test|E|Lead 1102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001103|101103|989898|1|9999001103|MR|Test|E|Lead 1103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001104|101104|989898|1|9999001104|MR|Test|E|Lead 1104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001105|101105|989898|1|9999001105|MR|Test|E|Lead 1105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001106|101106|989898|1|9999001106|MR|Test|E|Lead 1106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001107|101107|989898|1|9999001107|MR|Test|E|Lead 1107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001108|101108|989898|1|9999001108|MR|Test|E|Lead 1108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001109|101109|989898|1|9999001109|MR|Test|E|Lead 1109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001110|101110|989898|1|9999001110|MR|Test|E|Lead 1110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001111|101111|989898|1|9999001111|MR|Test|E|Lead 1111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001112|101112|989898|1|9999001112|MR|Test|E|Lead 1112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001113|101113|989898|1|9999001113|MR|Test|E|Lead 1113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001114|101114|989898|1|9999001114|MR|Test|E|Lead 1114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001115|101115|989898|1|9999001115|MR|Test|E|Lead 1115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001116|101116|989898|1|9999001116|MR|Test|E|Lead 1116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001117|101117|989898|1|9999001117|MR|Test|E|Lead 1117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001118|101118|989898|1|9999001118|MR|Test|E|Lead 1118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001119|101119|989898|1|9999001119|MR|Test|E|Lead 1119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001120|101120|989898|1|9999001120|MR|Test|E|Lead 1120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001121|101121|989898|1|9999001121|MR|Test|E|Lead 1121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001122|101122|989898|1|9999001122|MR|Test|E|Lead 1122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001123|101123|989898|1|9999001123|MR|Test|E|Lead 1123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001124|101124|989898|1|9999001124|MR|Test|E|Lead 1124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001125|101125|989898|1|9999001125|MR|Test|E|Lead 1125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001126|101126|989898|1|9999001126|MR|Test|E|Lead 1126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001127|101127|989898|1|9999001127|MR|Test|E|Lead 1127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001128|101128|989898|1|9999001128|MR|Test|E|Lead 1128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001129|101129|989898|1|9999001129|MR|Test|E|Lead 1129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001130|101130|989898|1|9999001130|MR|Test|E|Lead 1130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001131|101131|989898|1|9999001131|MR|Test|E|Lead 1131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001132|101132|989898|1|9999001132|MR|Test|E|Lead 1132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001133|101133|989898|1|9999001133|MR|Test|E|Lead 1133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001134|101134|989898|1|9999001134|MR|Test|E|Lead 1134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001135|101135|989898|1|9999001135|MR|Test|E|Lead 1135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001136|101136|989898|1|9999001136|MR|Test|E|Lead 1136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001137|101137|989898|1|9999001137|MR|Test|E|Lead 1137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001138|101138|989898|1|9999001138|MR|Test|E|Lead 1138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001139|101139|989898|1|9999001139|MR|Test|E|Lead 1139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001140|101140|989898|1|9999001140|MR|Test|E|Lead 1140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001141|101141|989898|1|9999001141|MR|Test|E|Lead 1141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001142|101142|989898|1|9999001142|MR|Test|E|Lead 1142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001143|101143|989898|1|9999001143|MR|Test|E|Lead 1143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001144|101144|989898|1|9999001144|MR|Test|E|Lead 1144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001145|101145|989898|1|9999001145|MR|Test|E|Lead 1145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001146|101146|989898|1|9999001146|MR|Test|E|Lead 1146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001147|101147|989898|1|9999001147|MR|Test|E|Lead 1147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001148|101148|989898|1|9999001148|MR|Test|E|Lead 1148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001149|101149|989898|1|9999001149|MR|Test|E|Lead 1149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001150|101150|989898|1|9999001150|MR|Test|E|Lead 1150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001151|101151|989898|1|9999001151|MR|Test|E|Lead 1151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001152|101152|989898|1|9999001152|MR|Test|E|Lead 1152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001153|101153|989898|1|9999001153|MR|Test|E|Lead 1153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001154|101154|989898|1|9999001154|MR|Test|E|Lead 1154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001155|101155|989898|1|9999001155|MR|Test|E|Lead 1155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001156|101156|989898|1|9999001156|MR|Test|E|Lead 1156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001157|101157|989898|1|9999001157|MR|Test|E|Lead 1157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001158|101158|989898|1|9999001158|MR|Test|E|Lead 1158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001159|101159|989898|1|9999001159|MR|Test|E|Lead 1159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001160|101160|989898|1|9999001160|MR|Test|E|Lead 1160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001161|101161|989898|1|9999001161|MR|Test|E|Lead 1161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001162|101162|989898|1|9999001162|MR|Test|E|Lead 1162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001163|101163|989898|1|9999001163|MR|Test|E|Lead 1163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001164|101164|989898|1|9999001164|MR|Test|E|Lead 1164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001165|101165|989898|1|9999001165|MR|Test|E|Lead 1165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001166|101166|989898|1|9999001166|MR|Test|E|Lead 1166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001167|101167|989898|1|9999001167|MR|Test|E|Lead 1167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001168|101168|989898|1|9999001168|MR|Test|E|Lead 1168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001169|101169|989898|1|9999001169|MR|Test|E|Lead 1169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001170|101170|989898|1|9999001170|MR|Test|E|Lead 1170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001171|101171|989898|1|9999001171|MR|Test|E|Lead 1171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001172|101172|989898|1|9999001172|MR|Test|E|Lead 1172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001173|101173|989898|1|9999001173|MR|Test|E|Lead 1173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001174|101174|989898|1|9999001174|MR|Test|E|Lead 1174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001175|101175|989898|1|9999001175|MR|Test|E|Lead 1175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001176|101176|989898|1|9999001176|MR|Test|E|Lead 1176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001177|101177|989898|1|9999001177|MR|Test|E|Lead 1177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001178|101178|989898|1|9999001178|MR|Test|E|Lead 1178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001179|101179|989898|1|9999001179|MR|Test|E|Lead 1179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001180|101180|989898|1|9999001180|MR|Test|E|Lead 1180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001181|101181|989898|1|9999001181|MR|Test|E|Lead 1181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001182|101182|989898|1|9999001182|MR|Test|E|Lead 1182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001183|101183|989898|1|9999001183|MR|Test|E|Lead 1183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001184|101184|989898|1|9999001184|MR|Test|E|Lead 1184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001185|101185|989898|1|9999001185|MR|Test|E|Lead 1185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001186|101186|989898|1|9999001186|MR|Test|E|Lead 1186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001187|101187|989898|1|9999001187|MR|Test|E|Lead 1187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001188|101188|989898|1|9999001188|MR|Test|E|Lead 1188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001189|101189|989898|1|9999001189|MR|Test|E|Lead 1189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001190|101190|989898|1|9999001190|MR|Test|E|Lead 1190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001191|101191|989898|1|9999001191|MR|Test|E|Lead 1191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001192|101192|989898|1|9999001192|MR|Test|E|Lead 1192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001193|101193|989898|1|9999001193|MR|Test|E|Lead 1193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001194|101194|989898|1|9999001194|MR|Test|E|Lead 1194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001195|101195|989898|1|9999001195|MR|Test|E|Lead 1195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001196|101196|989898|1|9999001196|MR|Test|E|Lead 1196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001197|101197|989898|1|9999001197|MR|Test|E|Lead 1197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001198|101198|989898|1|9999001198|MR|Test|E|Lead 1198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001199|101199|989898|1|9999001199|MR|Test|E|Lead 1199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001200|101200|989898|1|9999001200|MR|Test|E|Lead 1200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001201|101201|989898|1|9999001201|MR|Test|E|Lead 1201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001202|101202|989898|1|9999001202|MR|Test|E|Lead 1202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001203|101203|989898|1|9999001203|MR|Test|E|Lead 1203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001204|101204|989898|1|9999001204|MR|Test|E|Lead 1204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001205|101205|989898|1|9999001205|MR|Test|E|Lead 1205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001206|101206|989898|1|9999001206|MR|Test|E|Lead 1206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001207|101207|989898|1|9999001207|MR|Test|E|Lead 1207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001208|101208|989898|1|9999001208|MR|Test|E|Lead 1208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001209|101209|989898|1|9999001209|MR|Test|E|Lead 1209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001210|101210|989898|1|9999001210|MR|Test|E|Lead 1210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001211|101211|989898|1|9999001211|MR|Test|E|Lead 1211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001212|101212|989898|1|9999001212|MR|Test|E|Lead 1212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001213|101213|989898|1|9999001213|MR|Test|E|Lead 1213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001214|101214|989898|1|9999001214|MR|Test|E|Lead 1214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001215|101215|989898|1|9999001215|MR|Test|E|Lead 1215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001216|101216|989898|1|9999001216|MR|Test|E|Lead 1216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001217|101217|989898|1|9999001217|MR|Test|E|Lead 1217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001218|101218|989898|1|9999001218|MR|Test|E|Lead 1218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001219|101219|989898|1|9999001219|MR|Test|E|Lead 1219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001220|101220|989898|1|9999001220|MR|Test|E|Lead 1220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001221|101221|989898|1|9999001221|MR|Test|E|Lead 1221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001222|101222|989898|1|9999001222|MR|Test|E|Lead 1222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001223|101223|989898|1|9999001223|MR|Test|E|Lead 1223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001224|101224|989898|1|9999001224|MR|Test|E|Lead 1224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001225|101225|989898|1|9999001225|MR|Test|E|Lead 1225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001226|101226|989898|1|9999001226|MR|Test|E|Lead 1226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001227|101227|989898|1|9999001227|MR|Test|E|Lead 1227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001228|101228|989898|1|9999001228|MR|Test|E|Lead 1228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001229|101229|989898|1|9999001229|MR|Test|E|Lead 1229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001230|101230|989898|1|9999001230|MR|Test|E|Lead 1230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001231|101231|989898|1|9999001231|MR|Test|E|Lead 1231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001232|101232|989898|1|9999001232|MR|Test|E|Lead 1232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001233|101233|989898|1|9999001233|MR|Test|E|Lead 1233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001234|101234|989898|1|9999001234|MR|Test|E|Lead 1234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001235|101235|989898|1|9999001235|MR|Test|E|Lead 1235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001236|101236|989898|1|9999001236|MR|Test|E|Lead 1236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001237|101237|989898|1|9999001237|MR|Test|E|Lead 1237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001238|101238|989898|1|9999001238|MR|Test|E|Lead 1238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001239|101239|989898|1|9999001239|MR|Test|E|Lead 1239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001240|101240|989898|1|9999001240|MR|Test|E|Lead 1240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001241|101241|989898|1|9999001241|MR|Test|E|Lead 1241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001242|101242|989898|1|9999001242|MR|Test|E|Lead 1242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001243|101243|989898|1|9999001243|MR|Test|E|Lead 1243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001244|101244|989898|1|9999001244|MR|Test|E|Lead 1244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001245|101245|989898|1|9999001245|MR|Test|E|Lead 1245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001246|101246|989898|1|9999001246|MR|Test|E|Lead 1246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001247|101247|989898|1|9999001247|MR|Test|E|Lead 1247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001248|101248|989898|1|9999001248|MR|Test|E|Lead 1248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001249|101249|989898|1|9999001249|MR|Test|E|Lead 1249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001250|101250|989898|1|9999001250|MR|Test|E|Lead 1250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001251|101251|989898|1|9999001251|MR|Test|E|Lead 1251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001252|101252|989898|1|9999001252|MR|Test|E|Lead 1252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001253|101253|989898|1|9999001253|MR|Test|E|Lead 1253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001254|101254|989898|1|9999001254|MR|Test|E|Lead 1254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001255|101255|989898|1|9999001255|MR|Test|E|Lead 1255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001256|101256|989898|1|9999001256|MR|Test|E|Lead 1256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001257|101257|989898|1|9999001257|MR|Test|E|Lead 1257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001258|101258|989898|1|9999001258|MR|Test|E|Lead 1258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001259|101259|989898|1|9999001259|MR|Test|E|Lead 1259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001260|101260|989898|1|9999001260|MR|Test|E|Lead 1260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001261|101261|989898|1|9999001261|MR|Test|E|Lead 1261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001262|101262|989898|1|9999001262|MR|Test|E|Lead 1262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001263|101263|989898|1|9999001263|MR|Test|E|Lead 1263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001264|101264|989898|1|9999001264|MR|Test|E|Lead 1264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001265|101265|989898|1|9999001265|MR|Test|E|Lead 1265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001266|101266|989898|1|9999001266|MR|Test|E|Lead 1266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001267|101267|989898|1|9999001267|MR|Test|E|Lead 1267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001268|101268|989898|1|9999001268|MR|Test|E|Lead 1268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001269|101269|989898|1|9999001269|MR|Test|E|Lead 1269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001270|101270|989898|1|9999001270|MR|Test|E|Lead 1270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001271|101271|989898|1|9999001271|MR|Test|E|Lead 1271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001272|101272|989898|1|9999001272|MR|Test|E|Lead 1272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001273|101273|989898|1|9999001273|MR|Test|E|Lead 1273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001274|101274|989898|1|9999001274|MR|Test|E|Lead 1274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001275|101275|989898|1|9999001275|MR|Test|E|Lead 1275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001276|101276|989898|1|9999001276|MR|Test|E|Lead 1276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001277|101277|989898|1|9999001277|MR|Test|E|Lead 1277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001278|101278|989898|1|9999001278|MR|Test|E|Lead 1278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001279|101279|989898|1|9999001279|MR|Test|E|Lead 1279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001280|101280|989898|1|9999001280|MR|Test|E|Lead 1280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001281|101281|989898|1|9999001281|MR|Test|E|Lead 1281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001282|101282|989898|1|9999001282|MR|Test|E|Lead 1282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001283|101283|989898|1|9999001283|MR|Test|E|Lead 1283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001284|101284|989898|1|9999001284|MR|Test|E|Lead 1284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001285|101285|989898|1|9999001285|MR|Test|E|Lead 1285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001286|101286|989898|1|9999001286|MR|Test|E|Lead 1286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001287|101287|989898|1|9999001287|MR|Test|E|Lead 1287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001288|101288|989898|1|9999001288|MR|Test|E|Lead 1288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001289|101289|989898|1|9999001289|MR|Test|E|Lead 1289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001290|101290|989898|1|9999001290|MR|Test|E|Lead 1290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001291|101291|989898|1|9999001291|MR|Test|E|Lead 1291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001292|101292|989898|1|9999001292|MR|Test|E|Lead 1292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001293|101293|989898|1|9999001293|MR|Test|E|Lead 1293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001294|101294|989898|1|9999001294|MR|Test|E|Lead 1294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001295|101295|989898|1|9999001295|MR|Test|E|Lead 1295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001296|101296|989898|1|9999001296|MR|Test|E|Lead 1296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001297|101297|989898|1|9999001297|MR|Test|E|Lead 1297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001298|101298|989898|1|9999001298|MR|Test|E|Lead 1298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001299|101299|989898|1|9999001299|MR|Test|E|Lead 1299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001300|101300|989898|1|9999001300|MR|Test|E|Lead 1300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001301|101301|989898|1|9999001301|MR|Test|E|Lead 1301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001302|101302|989898|1|9999001302|MR|Test|E|Lead 1302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001303|101303|989898|1|9999001303|MR|Test|E|Lead 1303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001304|101304|989898|1|9999001304|MR|Test|E|Lead 1304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001305|101305|989898|1|9999001305|MR|Test|E|Lead 1305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001306|101306|989898|1|9999001306|MR|Test|E|Lead 1306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001307|101307|989898|1|9999001307|MR|Test|E|Lead 1307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001308|101308|989898|1|9999001308|MR|Test|E|Lead 1308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001309|101309|989898|1|9999001309|MR|Test|E|Lead 1309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001310|101310|989898|1|9999001310|MR|Test|E|Lead 1310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001311|101311|989898|1|9999001311|MR|Test|E|Lead 1311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001312|101312|989898|1|9999001312|MR|Test|E|Lead 1312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001313|101313|989898|1|9999001313|MR|Test|E|Lead 1313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001314|101314|989898|1|9999001314|MR|Test|E|Lead 1314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001315|101315|989898|1|9999001315|MR|Test|E|Lead 1315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001316|101316|989898|1|9999001316|MR|Test|E|Lead 1316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001317|101317|989898|1|9999001317|MR|Test|E|Lead 1317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001318|101318|989898|1|9999001318|MR|Test|E|Lead 1318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001319|101319|989898|1|9999001319|MR|Test|E|Lead 1319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001320|101320|989898|1|9999001320|MR|Test|E|Lead 1320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001321|101321|989898|1|9999001321|MR|Test|E|Lead 1321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001322|101322|989898|1|9999001322|MR|Test|E|Lead 1322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001323|101323|989898|1|9999001323|MR|Test|E|Lead 1323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001324|101324|989898|1|9999001324|MR|Test|E|Lead 1324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001325|101325|989898|1|9999001325|MR|Test|E|Lead 1325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001326|101326|989898|1|9999001326|MR|Test|E|Lead 1326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001327|101327|989898|1|9999001327|MR|Test|E|Lead 1327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001328|101328|989898|1|9999001328|MR|Test|E|Lead 1328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001329|101329|989898|1|9999001329|MR|Test|E|Lead 1329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001330|101330|989898|1|9999001330|MR|Test|E|Lead 1330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001331|101331|989898|1|9999001331|MR|Test|E|Lead 1331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001332|101332|989898|1|9999001332|MR|Test|E|Lead 1332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001333|101333|989898|1|9999001333|MR|Test|E|Lead 1333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001334|101334|989898|1|9999001334|MR|Test|E|Lead 1334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001335|101335|989898|1|9999001335|MR|Test|E|Lead 1335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001336|101336|989898|1|9999001336|MR|Test|E|Lead 1336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001337|101337|989898|1|9999001337|MR|Test|E|Lead 1337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001338|101338|989898|1|9999001338|MR|Test|E|Lead 1338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001339|101339|989898|1|9999001339|MR|Test|E|Lead 1339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001340|101340|989898|1|9999001340|MR|Test|E|Lead 1340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001341|101341|989898|1|9999001341|MR|Test|E|Lead 1341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001342|101342|989898|1|9999001342|MR|Test|E|Lead 1342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001343|101343|989898|1|9999001343|MR|Test|E|Lead 1343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001344|101344|989898|1|9999001344|MR|Test|E|Lead 1344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001345|101345|989898|1|9999001345|MR|Test|E|Lead 1345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001346|101346|989898|1|9999001346|MR|Test|E|Lead 1346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001347|101347|989898|1|9999001347|MR|Test|E|Lead 1347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001348|101348|989898|1|9999001348|MR|Test|E|Lead 1348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001349|101349|989898|1|9999001349|MR|Test|E|Lead 1349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001350|101350|989898|1|9999001350|MR|Test|E|Lead 1350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001351|101351|989898|1|9999001351|MR|Test|E|Lead 1351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001352|101352|989898|1|9999001352|MR|Test|E|Lead 1352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001353|101353|989898|1|9999001353|MR|Test|E|Lead 1353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001354|101354|989898|1|9999001354|MR|Test|E|Lead 1354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001355|101355|989898|1|9999001355|MR|Test|E|Lead 1355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001356|101356|989898|1|9999001356|MR|Test|E|Lead 1356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001357|101357|989898|1|9999001357|MR|Test|E|Lead 1357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001358|101358|989898|1|9999001358|MR|Test|E|Lead 1358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001359|101359|989898|1|9999001359|MR|Test|E|Lead 1359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001360|101360|989898|1|9999001360|MR|Test|E|Lead 1360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001361|101361|989898|1|9999001361|MR|Test|E|Lead 1361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001362|101362|989898|1|9999001362|MR|Test|E|Lead 1362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001363|101363|989898|1|9999001363|MR|Test|E|Lead 1363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001364|101364|989898|1|9999001364|MR|Test|E|Lead 1364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001365|101365|989898|1|9999001365|MR|Test|E|Lead 1365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001366|101366|989898|1|9999001366|MR|Test|E|Lead 1366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001367|101367|989898|1|9999001367|MR|Test|E|Lead 1367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001368|101368|989898|1|9999001368|MR|Test|E|Lead 1368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001369|101369|989898|1|9999001369|MR|Test|E|Lead 1369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001370|101370|989898|1|9999001370|MR|Test|E|Lead 1370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001371|101371|989898|1|9999001371|MR|Test|E|Lead 1371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001372|101372|989898|1|9999001372|MR|Test|E|Lead 1372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001373|101373|989898|1|9999001373|MR|Test|E|Lead 1373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001374|101374|989898|1|9999001374|MR|Test|E|Lead 1374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001375|101375|989898|1|9999001375|MR|Test|E|Lead 1375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001376|101376|989898|1|9999001376|MR|Test|E|Lead 1376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001377|101377|989898|1|9999001377|MR|Test|E|Lead 1377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001378|101378|989898|1|9999001378|MR|Test|E|Lead 1378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001379|101379|989898|1|9999001379|MR|Test|E|Lead 1379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001380|101380|989898|1|9999001380|MR|Test|E|Lead 1380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001381|101381|989898|1|9999001381|MR|Test|E|Lead 1381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001382|101382|989898|1|9999001382|MR|Test|E|Lead 1382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001383|101383|989898|1|9999001383|MR|Test|E|Lead 1383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001384|101384|989898|1|9999001384|MR|Test|E|Lead 1384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001385|101385|989898|1|9999001385|MR|Test|E|Lead 1385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001386|101386|989898|1|9999001386|MR|Test|E|Lead 1386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001387|101387|989898|1|9999001387|MR|Test|E|Lead 1387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001388|101388|989898|1|9999001388|MR|Test|E|Lead 1388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001389|101389|989898|1|9999001389|MR|Test|E|Lead 1389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001390|101390|989898|1|9999001390|MR|Test|E|Lead 1390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001391|101391|989898|1|9999001391|MR|Test|E|Lead 1391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001392|101392|989898|1|9999001392|MR|Test|E|Lead 1392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001393|101393|989898|1|9999001393|MR|Test|E|Lead 1393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001394|101394|989898|1|9999001394|MR|Test|E|Lead 1394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001395|101395|989898|1|9999001395|MR|Test|E|Lead 1395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001396|101396|989898|1|9999001396|MR|Test|E|Lead 1396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001397|101397|989898|1|9999001397|MR|Test|E|Lead 1397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001398|101398|989898|1|9999001398|MR|Test|E|Lead 1398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001399|101399|989898|1|9999001399|MR|Test|E|Lead 1399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001400|101400|989898|1|9999001400|MR|Test|E|Lead 1400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001401|101401|989898|1|9999001401|MR|Test|E|Lead 1401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001402|101402|989898|1|9999001402|MR|Test|E|Lead 1402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001403|101403|989898|1|9999001403|MR|Test|E|Lead 1403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001404|101404|989898|1|9999001404|MR|Test|E|Lead 1404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001405|101405|989898|1|9999001405|MR|Test|E|Lead 1405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001406|101406|989898|1|9999001406|MR|Test|E|Lead 1406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001407|101407|989898|1|9999001407|MR|Test|E|Lead 1407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001408|101408|989898|1|9999001408|MR|Test|E|Lead 1408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001409|101409|989898|1|9999001409|MR|Test|E|Lead 1409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001410|101410|989898|1|9999001410|MR|Test|E|Lead 1410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001411|101411|989898|1|9999001411|MR|Test|E|Lead 1411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001412|101412|989898|1|9999001412|MR|Test|E|Lead 1412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001413|101413|989898|1|9999001413|MR|Test|E|Lead 1413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001414|101414|989898|1|9999001414|MR|Test|E|Lead 1414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001415|101415|989898|1|9999001415|MR|Test|E|Lead 1415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001416|101416|989898|1|9999001416|MR|Test|E|Lead 1416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001417|101417|989898|1|9999001417|MR|Test|E|Lead 1417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001418|101418|989898|1|9999001418|MR|Test|E|Lead 1418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001419|101419|989898|1|9999001419|MR|Test|E|Lead 1419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001420|101420|989898|1|9999001420|MR|Test|E|Lead 1420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001421|101421|989898|1|9999001421|MR|Test|E|Lead 1421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001422|101422|989898|1|9999001422|MR|Test|E|Lead 1422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001423|101423|989898|1|9999001423|MR|Test|E|Lead 1423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001424|101424|989898|1|9999001424|MR|Test|E|Lead 1424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001425|101425|989898|1|9999001425|MR|Test|E|Lead 1425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001426|101426|989898|1|9999001426|MR|Test|E|Lead 1426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001427|101427|989898|1|9999001427|MR|Test|E|Lead 1427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001428|101428|989898|1|9999001428|MR|Test|E|Lead 1428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001429|101429|989898|1|9999001429|MR|Test|E|Lead 1429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001430|101430|989898|1|9999001430|MR|Test|E|Lead 1430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001431|101431|989898|1|9999001431|MR|Test|E|Lead 1431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001432|101432|989898|1|9999001432|MR|Test|E|Lead 1432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001433|101433|989898|1|9999001433|MR|Test|E|Lead 1433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001434|101434|989898|1|9999001434|MR|Test|E|Lead 1434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001435|101435|989898|1|9999001435|MR|Test|E|Lead 1435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001436|101436|989898|1|9999001436|MR|Test|E|Lead 1436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001437|101437|989898|1|9999001437|MR|Test|E|Lead 1437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001438|101438|989898|1|9999001438|MR|Test|E|Lead 1438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001439|101439|989898|1|9999001439|MR|Test|E|Lead 1439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001440|101440|989898|1|9999001440|MR|Test|E|Lead 1440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001441|101441|989898|1|9999001441|MR|Test|E|Lead 1441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001442|101442|989898|1|9999001442|MR|Test|E|Lead 1442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001443|101443|989898|1|9999001443|MR|Test|E|Lead 1443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001444|101444|989898|1|9999001444|MR|Test|E|Lead 1444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001445|101445|989898|1|9999001445|MR|Test|E|Lead 1445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001446|101446|989898|1|9999001446|MR|Test|E|Lead 1446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001447|101447|989898|1|9999001447|MR|Test|E|Lead 1447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001448|101448|989898|1|9999001448|MR|Test|E|Lead 1448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001449|101449|989898|1|9999001449|MR|Test|E|Lead 1449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001450|101450|989898|1|9999001450|MR|Test|E|Lead 1450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001451|101451|989898|1|9999001451|MR|Test|E|Lead 1451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001452|101452|989898|1|9999001452|MR|Test|E|Lead 1452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001453|101453|989898|1|9999001453|MR|Test|E|Lead 1453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001454|101454|989898|1|9999001454|MR|Test|E|Lead 1454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001455|101455|989898|1|9999001455|MR|Test|E|Lead 1455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001456|101456|989898|1|9999001456|MR|Test|E|Lead 1456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001457|101457|989898|1|9999001457|MR|Test|E|Lead 1457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001458|101458|989898|1|9999001458|MR|Test|E|Lead 1458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001459|101459|989898|1|9999001459|MR|Test|E|Lead 1459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001460|101460|989898|1|9999001460|MR|Test|E|Lead 1460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001461|101461|989898|1|9999001461|MR|Test|E|Lead 1461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001462|101462|989898|1|9999001462|MR|Test|E|Lead 1462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001463|101463|989898|1|9999001463|MR|Test|E|Lead 1463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001464|101464|989898|1|9999001464|MR|Test|E|Lead 1464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001465|101465|989898|1|9999001465|MR|Test|E|Lead 1465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001466|101466|989898|1|9999001466|MR|Test|E|Lead 1466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001467|101467|989898|1|9999001467|MR|Test|E|Lead 1467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001468|101468|989898|1|9999001468|MR|Test|E|Lead 1468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001469|101469|989898|1|9999001469|MR|Test|E|Lead 1469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001470|101470|989898|1|9999001470|MR|Test|E|Lead 1470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001471|101471|989898|1|9999001471|MR|Test|E|Lead 1471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001472|101472|989898|1|9999001472|MR|Test|E|Lead 1472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001473|101473|989898|1|9999001473|MR|Test|E|Lead 1473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001474|101474|989898|1|9999001474|MR|Test|E|Lead 1474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001475|101475|989898|1|9999001475|MR|Test|E|Lead 1475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001476|101476|989898|1|9999001476|MR|Test|E|Lead 1476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001477|101477|989898|1|9999001477|MR|Test|E|Lead 1477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001478|101478|989898|1|9999001478|MR|Test|E|Lead 1478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001479|101479|989898|1|9999001479|MR|Test|E|Lead 1479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001480|101480|989898|1|9999001480|MR|Test|E|Lead 1480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001481|101481|989898|1|9999001481|MR|Test|E|Lead 1481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001482|101482|989898|1|9999001482|MR|Test|E|Lead 1482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001483|101483|989898|1|9999001483|MR|Test|E|Lead 1483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001484|101484|989898|1|9999001484|MR|Test|E|Lead 1484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001485|101485|989898|1|9999001485|MR|Test|E|Lead 1485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001486|101486|989898|1|9999001486|MR|Test|E|Lead 1486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001487|101487|989898|1|9999001487|MR|Test|E|Lead 1487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001488|101488|989898|1|9999001488|MR|Test|E|Lead 1488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001489|101489|989898|1|9999001489|MR|Test|E|Lead 1489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001490|101490|989898|1|9999001490|MR|Test|E|Lead 1490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001491|101491|989898|1|9999001491|MR|Test|E|Lead 1491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001492|101492|989898|1|9999001492|MR|Test|E|Lead 1492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001493|101493|989898|1|9999001493|MR|Test|E|Lead 1493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001494|101494|989898|1|9999001494|MR|Test|E|Lead 1494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001495|101495|989898|1|9999001495|MR|Test|E|Lead 1495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001496|101496|989898|1|9999001496|MR|Test|E|Lead 1496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001497|101497|989898|1|9999001497|MR|Test|E|Lead 1497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001498|101498|989898|1|9999001498|MR|Test|E|Lead 1498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001499|101499|989898|1|9999001499|MR|Test|E|Lead 1499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001500|101500|989898|1|9999001500|MR|Test|E|Lead 1500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001501|101501|989898|1|9999001501|MR|Test|E|Lead 1501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001502|101502|989898|1|9999001502|MR|Test|E|Lead 1502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001503|101503|989898|1|9999001503|MR|Test|E|Lead 1503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001504|101504|989898|1|9999001504|MR|Test|E|Lead 1504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001505|101505|989898|1|9999001505|MR|Test|E|Lead 1505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001506|101506|989898|1|9999001506|MR|Test|E|Lead 1506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001507|101507|989898|1|9999001507|MR|Test|E|Lead 1507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001508|101508|989898|1|9999001508|MR|Test|E|Lead 1508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001509|101509|989898|1|9999001509|MR|Test|E|Lead 1509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001510|101510|989898|1|9999001510|MR|Test|E|Lead 1510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001511|101511|989898|1|9999001511|MR|Test|E|Lead 1511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001512|101512|989898|1|9999001512|MR|Test|E|Lead 1512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001513|101513|989898|1|9999001513|MR|Test|E|Lead 1513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001514|101514|989898|1|9999001514|MR|Test|E|Lead 1514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001515|101515|989898|1|9999001515|MR|Test|E|Lead 1515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001516|101516|989898|1|9999001516|MR|Test|E|Lead 1516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001517|101517|989898|1|9999001517|MR|Test|E|Lead 1517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001518|101518|989898|1|9999001518|MR|Test|E|Lead 1518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001519|101519|989898|1|9999001519|MR|Test|E|Lead 1519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001520|101520|989898|1|9999001520|MR|Test|E|Lead 1520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001521|101521|989898|1|9999001521|MR|Test|E|Lead 1521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001522|101522|989898|1|9999001522|MR|Test|E|Lead 1522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001523|101523|989898|1|9999001523|MR|Test|E|Lead 1523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001524|101524|989898|1|9999001524|MR|Test|E|Lead 1524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001525|101525|989898|1|9999001525|MR|Test|E|Lead 1525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001526|101526|989898|1|9999001526|MR|Test|E|Lead 1526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001527|101527|989898|1|9999001527|MR|Test|E|Lead 1527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001528|101528|989898|1|9999001528|MR|Test|E|Lead 1528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001529|101529|989898|1|9999001529|MR|Test|E|Lead 1529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001530|101530|989898|1|9999001530|MR|Test|E|Lead 1530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001531|101531|989898|1|9999001531|MR|Test|E|Lead 1531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001532|101532|989898|1|9999001532|MR|Test|E|Lead 1532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001533|101533|989898|1|9999001533|MR|Test|E|Lead 1533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001534|101534|989898|1|9999001534|MR|Test|E|Lead 1534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001535|101535|989898|1|9999001535|MR|Test|E|Lead 1535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001536|101536|989898|1|9999001536|MR|Test|E|Lead 1536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001537|101537|989898|1|9999001537|MR|Test|E|Lead 1537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001538|101538|989898|1|9999001538|MR|Test|E|Lead 1538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001539|101539|989898|1|9999001539|MR|Test|E|Lead 1539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001540|101540|989898|1|9999001540|MR|Test|E|Lead 1540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001541|101541|989898|1|9999001541|MR|Test|E|Lead 1541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001542|101542|989898|1|9999001542|MR|Test|E|Lead 1542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001543|101543|989898|1|9999001543|MR|Test|E|Lead 1543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001544|101544|989898|1|9999001544|MR|Test|E|Lead 1544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001545|101545|989898|1|9999001545|MR|Test|E|Lead 1545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001546|101546|989898|1|9999001546|MR|Test|E|Lead 1546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001547|101547|989898|1|9999001547|MR|Test|E|Lead 1547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001548|101548|989898|1|9999001548|MR|Test|E|Lead 1548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001549|101549|989898|1|9999001549|MR|Test|E|Lead 1549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001550|101550|989898|1|9999001550|MR|Test|E|Lead 1550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001551|101551|989898|1|9999001551|MR|Test|E|Lead 1551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001552|101552|989898|1|9999001552|MR|Test|E|Lead 1552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001553|101553|989898|1|9999001553|MR|Test|E|Lead 1553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001554|101554|989898|1|9999001554|MR|Test|E|Lead 1554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001555|101555|989898|1|9999001555|MR|Test|E|Lead 1555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001556|101556|989898|1|9999001556|MR|Test|E|Lead 1556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001557|101557|989898|1|9999001557|MR|Test|E|Lead 1557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001558|101558|989898|1|9999001558|MR|Test|E|Lead 1558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001559|101559|989898|1|9999001559|MR|Test|E|Lead 1559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001560|101560|989898|1|9999001560|MR|Test|E|Lead 1560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001561|101561|989898|1|9999001561|MR|Test|E|Lead 1561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001562|101562|989898|1|9999001562|MR|Test|E|Lead 1562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001563|101563|989898|1|9999001563|MR|Test|E|Lead 1563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001564|101564|989898|1|9999001564|MR|Test|E|Lead 1564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001565|101565|989898|1|9999001565|MR|Test|E|Lead 1565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001566|101566|989898|1|9999001566|MR|Test|E|Lead 1566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001567|101567|989898|1|9999001567|MR|Test|E|Lead 1567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001568|101568|989898|1|9999001568|MR|Test|E|Lead 1568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001569|101569|989898|1|9999001569|MR|Test|E|Lead 1569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001570|101570|989898|1|9999001570|MR|Test|E|Lead 1570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001571|101571|989898|1|9999001571|MR|Test|E|Lead 1571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001572|101572|989898|1|9999001572|MR|Test|E|Lead 1572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001573|101573|989898|1|9999001573|MR|Test|E|Lead 1573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001574|101574|989898|1|9999001574|MR|Test|E|Lead 1574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001575|101575|989898|1|9999001575|MR|Test|E|Lead 1575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001576|101576|989898|1|9999001576|MR|Test|E|Lead 1576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001577|101577|989898|1|9999001577|MR|Test|E|Lead 1577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001578|101578|989898|1|9999001578|MR|Test|E|Lead 1578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001579|101579|989898|1|9999001579|MR|Test|E|Lead 1579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001580|101580|989898|1|9999001580|MR|Test|E|Lead 1580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001581|101581|989898|1|9999001581|MR|Test|E|Lead 1581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001582|101582|989898|1|9999001582|MR|Test|E|Lead 1582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001583|101583|989898|1|9999001583|MR|Test|E|Lead 1583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001584|101584|989898|1|9999001584|MR|Test|E|Lead 1584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001585|101585|989898|1|9999001585|MR|Test|E|Lead 1585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001586|101586|989898|1|9999001586|MR|Test|E|Lead 1586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001587|101587|989898|1|9999001587|MR|Test|E|Lead 1587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001588|101588|989898|1|9999001588|MR|Test|E|Lead 1588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001589|101589|989898|1|9999001589|MR|Test|E|Lead 1589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001590|101590|989898|1|9999001590|MR|Test|E|Lead 1590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001591|101591|989898|1|9999001591|MR|Test|E|Lead 1591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001592|101592|989898|1|9999001592|MR|Test|E|Lead 1592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001593|101593|989898|1|9999001593|MR|Test|E|Lead 1593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001594|101594|989898|1|9999001594|MR|Test|E|Lead 1594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001595|101595|989898|1|9999001595|MR|Test|E|Lead 1595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001596|101596|989898|1|9999001596|MR|Test|E|Lead 1596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001597|101597|989898|1|9999001597|MR|Test|E|Lead 1597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001598|101598|989898|1|9999001598|MR|Test|E|Lead 1598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001599|101599|989898|1|9999001599|MR|Test|E|Lead 1599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001600|101600|989898|1|9999001600|MR|Test|E|Lead 1600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001601|101601|989898|1|9999001601|MR|Test|E|Lead 1601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001602|101602|989898|1|9999001602|MR|Test|E|Lead 1602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001603|101603|989898|1|9999001603|MR|Test|E|Lead 1603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001604|101604|989898|1|9999001604|MR|Test|E|Lead 1604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001605|101605|989898|1|9999001605|MR|Test|E|Lead 1605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001606|101606|989898|1|9999001606|MR|Test|E|Lead 1606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001607|101607|989898|1|9999001607|MR|Test|E|Lead 1607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001608|101608|989898|1|9999001608|MR|Test|E|Lead 1608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001609|101609|989898|1|9999001609|MR|Test|E|Lead 1609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001610|101610|989898|1|9999001610|MR|Test|E|Lead 1610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001611|101611|989898|1|9999001611|MR|Test|E|Lead 1611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001612|101612|989898|1|9999001612|MR|Test|E|Lead 1612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001613|101613|989898|1|9999001613|MR|Test|E|Lead 1613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001614|101614|989898|1|9999001614|MR|Test|E|Lead 1614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001615|101615|989898|1|9999001615|MR|Test|E|Lead 1615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001616|101616|989898|1|9999001616|MR|Test|E|Lead 1616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001617|101617|989898|1|9999001617|MR|Test|E|Lead 1617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001618|101618|989898|1|9999001618|MR|Test|E|Lead 1618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001619|101619|989898|1|9999001619|MR|Test|E|Lead 1619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001620|101620|989898|1|9999001620|MR|Test|E|Lead 1620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001621|101621|989898|1|9999001621|MR|Test|E|Lead 1621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001622|101622|989898|1|9999001622|MR|Test|E|Lead 1622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001623|101623|989898|1|9999001623|MR|Test|E|Lead 1623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001624|101624|989898|1|9999001624|MR|Test|E|Lead 1624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001625|101625|989898|1|9999001625|MR|Test|E|Lead 1625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001626|101626|989898|1|9999001626|MR|Test|E|Lead 1626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001627|101627|989898|1|9999001627|MR|Test|E|Lead 1627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001628|101628|989898|1|9999001628|MR|Test|E|Lead 1628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001629|101629|989898|1|9999001629|MR|Test|E|Lead 1629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001630|101630|989898|1|9999001630|MR|Test|E|Lead 1630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001631|101631|989898|1|9999001631|MR|Test|E|Lead 1631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001632|101632|989898|1|9999001632|MR|Test|E|Lead 1632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001633|101633|989898|1|9999001633|MR|Test|E|Lead 1633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001634|101634|989898|1|9999001634|MR|Test|E|Lead 1634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001635|101635|989898|1|9999001635|MR|Test|E|Lead 1635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001636|101636|989898|1|9999001636|MR|Test|E|Lead 1636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001637|101637|989898|1|9999001637|MR|Test|E|Lead 1637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001638|101638|989898|1|9999001638|MR|Test|E|Lead 1638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001639|101639|989898|1|9999001639|MR|Test|E|Lead 1639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001640|101640|989898|1|9999001640|MR|Test|E|Lead 1640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001641|101641|989898|1|9999001641|MR|Test|E|Lead 1641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001642|101642|989898|1|9999001642|MR|Test|E|Lead 1642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001643|101643|989898|1|9999001643|MR|Test|E|Lead 1643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001644|101644|989898|1|9999001644|MR|Test|E|Lead 1644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001645|101645|989898|1|9999001645|MR|Test|E|Lead 1645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001646|101646|989898|1|9999001646|MR|Test|E|Lead 1646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001647|101647|989898|1|9999001647|MR|Test|E|Lead 1647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001648|101648|989898|1|9999001648|MR|Test|E|Lead 1648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001649|101649|989898|1|9999001649|MR|Test|E|Lead 1649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001650|101650|989898|1|9999001650|MR|Test|E|Lead 1650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001651|101651|989898|1|9999001651|MR|Test|E|Lead 1651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001652|101652|989898|1|9999001652|MR|Test|E|Lead 1652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001653|101653|989898|1|9999001653|MR|Test|E|Lead 1653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001654|101654|989898|1|9999001654|MR|Test|E|Lead 1654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001655|101655|989898|1|9999001655|MR|Test|E|Lead 1655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001656|101656|989898|1|9999001656|MR|Test|E|Lead 1656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001657|101657|989898|1|9999001657|MR|Test|E|Lead 1657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001658|101658|989898|1|9999001658|MR|Test|E|Lead 1658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001659|101659|989898|1|9999001659|MR|Test|E|Lead 1659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001660|101660|989898|1|9999001660|MR|Test|E|Lead 1660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001661|101661|989898|1|9999001661|MR|Test|E|Lead 1661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001662|101662|989898|1|9999001662|MR|Test|E|Lead 1662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001663|101663|989898|1|9999001663|MR|Test|E|Lead 1663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001664|101664|989898|1|9999001664|MR|Test|E|Lead 1664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001665|101665|989898|1|9999001665|MR|Test|E|Lead 1665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001666|101666|989898|1|9999001666|MR|Test|E|Lead 1666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001667|101667|989898|1|9999001667|MR|Test|E|Lead 1667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001668|101668|989898|1|9999001668|MR|Test|E|Lead 1668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001669|101669|989898|1|9999001669|MR|Test|E|Lead 1669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001670|101670|989898|1|9999001670|MR|Test|E|Lead 1670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001671|101671|989898|1|9999001671|MR|Test|E|Lead 1671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001672|101672|989898|1|9999001672|MR|Test|E|Lead 1672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001673|101673|989898|1|9999001673|MR|Test|E|Lead 1673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001674|101674|989898|1|9999001674|MR|Test|E|Lead 1674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001675|101675|989898|1|9999001675|MR|Test|E|Lead 1675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001676|101676|989898|1|9999001676|MR|Test|E|Lead 1676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001677|101677|989898|1|9999001677|MR|Test|E|Lead 1677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001678|101678|989898|1|9999001678|MR|Test|E|Lead 1678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001679|101679|989898|1|9999001679|MR|Test|E|Lead 1679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001680|101680|989898|1|9999001680|MR|Test|E|Lead 1680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001681|101681|989898|1|9999001681|MR|Test|E|Lead 1681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001682|101682|989898|1|9999001682|MR|Test|E|Lead 1682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001683|101683|989898|1|9999001683|MR|Test|E|Lead 1683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001684|101684|989898|1|9999001684|MR|Test|E|Lead 1684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001685|101685|989898|1|9999001685|MR|Test|E|Lead 1685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001686|101686|989898|1|9999001686|MR|Test|E|Lead 1686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001687|101687|989898|1|9999001687|MR|Test|E|Lead 1687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001688|101688|989898|1|9999001688|MR|Test|E|Lead 1688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001689|101689|989898|1|9999001689|MR|Test|E|Lead 1689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001690|101690|989898|1|9999001690|MR|Test|E|Lead 1690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001691|101691|989898|1|9999001691|MR|Test|E|Lead 1691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001692|101692|989898|1|9999001692|MR|Test|E|Lead 1692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001693|101693|989898|1|9999001693|MR|Test|E|Lead 1693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001694|101694|989898|1|9999001694|MR|Test|E|Lead 1694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001695|101695|989898|1|9999001695|MR|Test|E|Lead 1695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001696|101696|989898|1|9999001696|MR|Test|E|Lead 1696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001697|101697|989898|1|9999001697|MR|Test|E|Lead 1697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001698|101698|989898|1|9999001698|MR|Test|E|Lead 1698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001699|101699|989898|1|9999001699|MR|Test|E|Lead 1699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001700|101700|989898|1|9999001700|MR|Test|E|Lead 1700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001701|101701|989898|1|9999001701|MR|Test|E|Lead 1701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001702|101702|989898|1|9999001702|MR|Test|E|Lead 1702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001703|101703|989898|1|9999001703|MR|Test|E|Lead 1703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001704|101704|989898|1|9999001704|MR|Test|E|Lead 1704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001705|101705|989898|1|9999001705|MR|Test|E|Lead 1705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001706|101706|989898|1|9999001706|MR|Test|E|Lead 1706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001707|101707|989898|1|9999001707|MR|Test|E|Lead 1707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001708|101708|989898|1|9999001708|MR|Test|E|Lead 1708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001709|101709|989898|1|9999001709|MR|Test|E|Lead 1709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001710|101710|989898|1|9999001710|MR|Test|E|Lead 1710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001711|101711|989898|1|9999001711|MR|Test|E|Lead 1711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001712|101712|989898|1|9999001712|MR|Test|E|Lead 1712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001713|101713|989898|1|9999001713|MR|Test|E|Lead 1713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001714|101714|989898|1|9999001714|MR|Test|E|Lead 1714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001715|101715|989898|1|9999001715|MR|Test|E|Lead 1715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001716|101716|989898|1|9999001716|MR|Test|E|Lead 1716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001717|101717|989898|1|9999001717|MR|Test|E|Lead 1717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001718|101718|989898|1|9999001718|MR|Test|E|Lead 1718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001719|101719|989898|1|9999001719|MR|Test|E|Lead 1719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001720|101720|989898|1|9999001720|MR|Test|E|Lead 1720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001721|101721|989898|1|9999001721|MR|Test|E|Lead 1721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001722|101722|989898|1|9999001722|MR|Test|E|Lead 1722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001723|101723|989898|1|9999001723|MR|Test|E|Lead 1723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001724|101724|989898|1|9999001724|MR|Test|E|Lead 1724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001725|101725|989898|1|9999001725|MR|Test|E|Lead 1725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001726|101726|989898|1|9999001726|MR|Test|E|Lead 1726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001727|101727|989898|1|9999001727|MR|Test|E|Lead 1727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001728|101728|989898|1|9999001728|MR|Test|E|Lead 1728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001729|101729|989898|1|9999001729|MR|Test|E|Lead 1729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001730|101730|989898|1|9999001730|MR|Test|E|Lead 1730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001731|101731|989898|1|9999001731|MR|Test|E|Lead 1731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001732|101732|989898|1|9999001732|MR|Test|E|Lead 1732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001733|101733|989898|1|9999001733|MR|Test|E|Lead 1733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001734|101734|989898|1|9999001734|MR|Test|E|Lead 1734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001735|101735|989898|1|9999001735|MR|Test|E|Lead 1735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001736|101736|989898|1|9999001736|MR|Test|E|Lead 1736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001737|101737|989898|1|9999001737|MR|Test|E|Lead 1737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001738|101738|989898|1|9999001738|MR|Test|E|Lead 1738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001739|101739|989898|1|9999001739|MR|Test|E|Lead 1739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001740|101740|989898|1|9999001740|MR|Test|E|Lead 1740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001741|101741|989898|1|9999001741|MR|Test|E|Lead 1741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001742|101742|989898|1|9999001742|MR|Test|E|Lead 1742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001743|101743|989898|1|9999001743|MR|Test|E|Lead 1743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001744|101744|989898|1|9999001744|MR|Test|E|Lead 1744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001745|101745|989898|1|9999001745|MR|Test|E|Lead 1745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001746|101746|989898|1|9999001746|MR|Test|E|Lead 1746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001747|101747|989898|1|9999001747|MR|Test|E|Lead 1747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001748|101748|989898|1|9999001748|MR|Test|E|Lead 1748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001749|101749|989898|1|9999001749|MR|Test|E|Lead 1749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001750|101750|989898|1|9999001750|MR|Test|E|Lead 1750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001751|101751|989898|1|9999001751|MR|Test|E|Lead 1751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001752|101752|989898|1|9999001752|MR|Test|E|Lead 1752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001753|101753|989898|1|9999001753|MR|Test|E|Lead 1753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001754|101754|989898|1|9999001754|MR|Test|E|Lead 1754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001755|101755|989898|1|9999001755|MR|Test|E|Lead 1755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001756|101756|989898|1|9999001756|MR|Test|E|Lead 1756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001757|101757|989898|1|9999001757|MR|Test|E|Lead 1757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001758|101758|989898|1|9999001758|MR|Test|E|Lead 1758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001759|101759|989898|1|9999001759|MR|Test|E|Lead 1759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001760|101760|989898|1|9999001760|MR|Test|E|Lead 1760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001761|101761|989898|1|9999001761|MR|Test|E|Lead 1761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001762|101762|989898|1|9999001762|MR|Test|E|Lead 1762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001763|101763|989898|1|9999001763|MR|Test|E|Lead 1763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001764|101764|989898|1|9999001764|MR|Test|E|Lead 1764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001765|101765|989898|1|9999001765|MR|Test|E|Lead 1765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001766|101766|989898|1|9999001766|MR|Test|E|Lead 1766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001767|101767|989898|1|9999001767|MR|Test|E|Lead 1767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001768|101768|989898|1|9999001768|MR|Test|E|Lead 1768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001769|101769|989898|1|9999001769|MR|Test|E|Lead 1769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001770|101770|989898|1|9999001770|MR|Test|E|Lead 1770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001771|101771|989898|1|9999001771|MR|Test|E|Lead 1771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001772|101772|989898|1|9999001772|MR|Test|E|Lead 1772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001773|101773|989898|1|9999001773|MR|Test|E|Lead 1773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001774|101774|989898|1|9999001774|MR|Test|E|Lead 1774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001775|101775|989898|1|9999001775|MR|Test|E|Lead 1775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001776|101776|989898|1|9999001776|MR|Test|E|Lead 1776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001777|101777|989898|1|9999001777|MR|Test|E|Lead 1777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001778|101778|989898|1|9999001778|MR|Test|E|Lead 1778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001779|101779|989898|1|9999001779|MR|Test|E|Lead 1779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001780|101780|989898|1|9999001780|MR|Test|E|Lead 1780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001781|101781|989898|1|9999001781|MR|Test|E|Lead 1781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001782|101782|989898|1|9999001782|MR|Test|E|Lead 1782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001783|101783|989898|1|9999001783|MR|Test|E|Lead 1783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001784|101784|989898|1|9999001784|MR|Test|E|Lead 1784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001785|101785|989898|1|9999001785|MR|Test|E|Lead 1785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001786|101786|989898|1|9999001786|MR|Test|E|Lead 1786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001787|101787|989898|1|9999001787|MR|Test|E|Lead 1787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001788|101788|989898|1|9999001788|MR|Test|E|Lead 1788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001789|101789|989898|1|9999001789|MR|Test|E|Lead 1789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001790|101790|989898|1|9999001790|MR|Test|E|Lead 1790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001791|101791|989898|1|9999001791|MR|Test|E|Lead 1791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001792|101792|989898|1|9999001792|MR|Test|E|Lead 1792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001793|101793|989898|1|9999001793|MR|Test|E|Lead 1793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001794|101794|989898|1|9999001794|MR|Test|E|Lead 1794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001795|101795|989898|1|9999001795|MR|Test|E|Lead 1795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001796|101796|989898|1|9999001796|MR|Test|E|Lead 1796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001797|101797|989898|1|9999001797|MR|Test|E|Lead 1797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001798|101798|989898|1|9999001798|MR|Test|E|Lead 1798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001799|101799|989898|1|9999001799|MR|Test|E|Lead 1799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001800|101800|989898|1|9999001800|MR|Test|E|Lead 1800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001801|101801|989898|1|9999001801|MR|Test|E|Lead 1801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001802|101802|989898|1|9999001802|MR|Test|E|Lead 1802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001803|101803|989898|1|9999001803|MR|Test|E|Lead 1803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001804|101804|989898|1|9999001804|MR|Test|E|Lead 1804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001805|101805|989898|1|9999001805|MR|Test|E|Lead 1805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001806|101806|989898|1|9999001806|MR|Test|E|Lead 1806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001807|101807|989898|1|9999001807|MR|Test|E|Lead 1807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001808|101808|989898|1|9999001808|MR|Test|E|Lead 1808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001809|101809|989898|1|9999001809|MR|Test|E|Lead 1809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001810|101810|989898|1|9999001810|MR|Test|E|Lead 1810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001811|101811|989898|1|9999001811|MR|Test|E|Lead 1811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001812|101812|989898|1|9999001812|MR|Test|E|Lead 1812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001813|101813|989898|1|9999001813|MR|Test|E|Lead 1813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001814|101814|989898|1|9999001814|MR|Test|E|Lead 1814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001815|101815|989898|1|9999001815|MR|Test|E|Lead 1815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001816|101816|989898|1|9999001816|MR|Test|E|Lead 1816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001817|101817|989898|1|9999001817|MR|Test|E|Lead 1817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001818|101818|989898|1|9999001818|MR|Test|E|Lead 1818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001819|101819|989898|1|9999001819|MR|Test|E|Lead 1819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001820|101820|989898|1|9999001820|MR|Test|E|Lead 1820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001821|101821|989898|1|9999001821|MR|Test|E|Lead 1821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001822|101822|989898|1|9999001822|MR|Test|E|Lead 1822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001823|101823|989898|1|9999001823|MR|Test|E|Lead 1823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001824|101824|989898|1|9999001824|MR|Test|E|Lead 1824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001825|101825|989898|1|9999001825|MR|Test|E|Lead 1825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001826|101826|989898|1|9999001826|MR|Test|E|Lead 1826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001827|101827|989898|1|9999001827|MR|Test|E|Lead 1827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001828|101828|989898|1|9999001828|MR|Test|E|Lead 1828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001829|101829|989898|1|9999001829|MR|Test|E|Lead 1829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001830|101830|989898|1|9999001830|MR|Test|E|Lead 1830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001831|101831|989898|1|9999001831|MR|Test|E|Lead 1831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001832|101832|989898|1|9999001832|MR|Test|E|Lead 1832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001833|101833|989898|1|9999001833|MR|Test|E|Lead 1833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001834|101834|989898|1|9999001834|MR|Test|E|Lead 1834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001835|101835|989898|1|9999001835|MR|Test|E|Lead 1835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001836|101836|989898|1|9999001836|MR|Test|E|Lead 1836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001837|101837|989898|1|9999001837|MR|Test|E|Lead 1837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001838|101838|989898|1|9999001838|MR|Test|E|Lead 1838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001839|101839|989898|1|9999001839|MR|Test|E|Lead 1839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001840|101840|989898|1|9999001840|MR|Test|E|Lead 1840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001841|101841|989898|1|9999001841|MR|Test|E|Lead 1841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001842|101842|989898|1|9999001842|MR|Test|E|Lead 1842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001843|101843|989898|1|9999001843|MR|Test|E|Lead 1843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001844|101844|989898|1|9999001844|MR|Test|E|Lead 1844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001845|101845|989898|1|9999001845|MR|Test|E|Lead 1845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001846|101846|989898|1|9999001846|MR|Test|E|Lead 1846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001847|101847|989898|1|9999001847|MR|Test|E|Lead 1847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001848|101848|989898|1|9999001848|MR|Test|E|Lead 1848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001849|101849|989898|1|9999001849|MR|Test|E|Lead 1849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001850|101850|989898|1|9999001850|MR|Test|E|Lead 1850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001851|101851|989898|1|9999001851|MR|Test|E|Lead 1851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001852|101852|989898|1|9999001852|MR|Test|E|Lead 1852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001853|101853|989898|1|9999001853|MR|Test|E|Lead 1853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001854|101854|989898|1|9999001854|MR|Test|E|Lead 1854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001855|101855|989898|1|9999001855|MR|Test|E|Lead 1855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001856|101856|989898|1|9999001856|MR|Test|E|Lead 1856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001857|101857|989898|1|9999001857|MR|Test|E|Lead 1857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001858|101858|989898|1|9999001858|MR|Test|E|Lead 1858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001859|101859|989898|1|9999001859|MR|Test|E|Lead 1859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001860|101860|989898|1|9999001860|MR|Test|E|Lead 1860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001861|101861|989898|1|9999001861|MR|Test|E|Lead 1861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001862|101862|989898|1|9999001862|MR|Test|E|Lead 1862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001863|101863|989898|1|9999001863|MR|Test|E|Lead 1863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001864|101864|989898|1|9999001864|MR|Test|E|Lead 1864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001865|101865|989898|1|9999001865|MR|Test|E|Lead 1865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001866|101866|989898|1|9999001866|MR|Test|E|Lead 1866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001867|101867|989898|1|9999001867|MR|Test|E|Lead 1867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001868|101868|989898|1|9999001868|MR|Test|E|Lead 1868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001869|101869|989898|1|9999001869|MR|Test|E|Lead 1869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001870|101870|989898|1|9999001870|MR|Test|E|Lead 1870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001871|101871|989898|1|9999001871|MR|Test|E|Lead 1871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001872|101872|989898|1|9999001872|MR|Test|E|Lead 1872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001873|101873|989898|1|9999001873|MR|Test|E|Lead 1873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001874|101874|989898|1|9999001874|MR|Test|E|Lead 1874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001875|101875|989898|1|9999001875|MR|Test|E|Lead 1875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001876|101876|989898|1|9999001876|MR|Test|E|Lead 1876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001877|101877|989898|1|9999001877|MR|Test|E|Lead 1877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001878|101878|989898|1|9999001878|MR|Test|E|Lead 1878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001879|101879|989898|1|9999001879|MR|Test|E|Lead 1879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001880|101880|989898|1|9999001880|MR|Test|E|Lead 1880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001881|101881|989898|1|9999001881|MR|Test|E|Lead 1881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001882|101882|989898|1|9999001882|MR|Test|E|Lead 1882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001883|101883|989898|1|9999001883|MR|Test|E|Lead 1883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001884|101884|989898|1|9999001884|MR|Test|E|Lead 1884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001885|101885|989898|1|9999001885|MR|Test|E|Lead 1885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001886|101886|989898|1|9999001886|MR|Test|E|Lead 1886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001887|101887|989898|1|9999001887|MR|Test|E|Lead 1887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001888|101888|989898|1|9999001888|MR|Test|E|Lead 1888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001889|101889|989898|1|9999001889|MR|Test|E|Lead 1889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001890|101890|989898|1|9999001890|MR|Test|E|Lead 1890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001891|101891|989898|1|9999001891|MR|Test|E|Lead 1891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001892|101892|989898|1|9999001892|MR|Test|E|Lead 1892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001893|101893|989898|1|9999001893|MR|Test|E|Lead 1893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001894|101894|989898|1|9999001894|MR|Test|E|Lead 1894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001895|101895|989898|1|9999001895|MR|Test|E|Lead 1895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001896|101896|989898|1|9999001896|MR|Test|E|Lead 1896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001897|101897|989898|1|9999001897|MR|Test|E|Lead 1897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001898|101898|989898|1|9999001898|MR|Test|E|Lead 1898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001899|101899|989898|1|9999001899|MR|Test|E|Lead 1899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001900|101900|989898|1|9999001900|MR|Test|E|Lead 1900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001901|101901|989898|1|9999001901|MR|Test|E|Lead 1901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001902|101902|989898|1|9999001902|MR|Test|E|Lead 1902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001903|101903|989898|1|9999001903|MR|Test|E|Lead 1903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001904|101904|989898|1|9999001904|MR|Test|E|Lead 1904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001905|101905|989898|1|9999001905|MR|Test|E|Lead 1905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001906|101906|989898|1|9999001906|MR|Test|E|Lead 1906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001907|101907|989898|1|9999001907|MR|Test|E|Lead 1907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001908|101908|989898|1|9999001908|MR|Test|E|Lead 1908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001909|101909|989898|1|9999001909|MR|Test|E|Lead 1909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001910|101910|989898|1|9999001910|MR|Test|E|Lead 1910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001911|101911|989898|1|9999001911|MR|Test|E|Lead 1911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001912|101912|989898|1|9999001912|MR|Test|E|Lead 1912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001913|101913|989898|1|9999001913|MR|Test|E|Lead 1913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001914|101914|989898|1|9999001914|MR|Test|E|Lead 1914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001915|101915|989898|1|9999001915|MR|Test|E|Lead 1915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001916|101916|989898|1|9999001916|MR|Test|E|Lead 1916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001917|101917|989898|1|9999001917|MR|Test|E|Lead 1917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001918|101918|989898|1|9999001918|MR|Test|E|Lead 1918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001919|101919|989898|1|9999001919|MR|Test|E|Lead 1919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001920|101920|989898|1|9999001920|MR|Test|E|Lead 1920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001921|101921|989898|1|9999001921|MR|Test|E|Lead 1921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001922|101922|989898|1|9999001922|MR|Test|E|Lead 1922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001923|101923|989898|1|9999001923|MR|Test|E|Lead 1923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001924|101924|989898|1|9999001924|MR|Test|E|Lead 1924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001925|101925|989898|1|9999001925|MR|Test|E|Lead 1925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001926|101926|989898|1|9999001926|MR|Test|E|Lead 1926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001927|101927|989898|1|9999001927|MR|Test|E|Lead 1927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001928|101928|989898|1|9999001928|MR|Test|E|Lead 1928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001929|101929|989898|1|9999001929|MR|Test|E|Lead 1929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001930|101930|989898|1|9999001930|MR|Test|E|Lead 1930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001931|101931|989898|1|9999001931|MR|Test|E|Lead 1931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001932|101932|989898|1|9999001932|MR|Test|E|Lead 1932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001933|101933|989898|1|9999001933|MR|Test|E|Lead 1933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001934|101934|989898|1|9999001934|MR|Test|E|Lead 1934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001935|101935|989898|1|9999001935|MR|Test|E|Lead 1935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001936|101936|989898|1|9999001936|MR|Test|E|Lead 1936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001937|101937|989898|1|9999001937|MR|Test|E|Lead 1937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001938|101938|989898|1|9999001938|MR|Test|E|Lead 1938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001939|101939|989898|1|9999001939|MR|Test|E|Lead 1939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001940|101940|989898|1|9999001940|MR|Test|E|Lead 1940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001941|101941|989898|1|9999001941|MR|Test|E|Lead 1941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001942|101942|989898|1|9999001942|MR|Test|E|Lead 1942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001943|101943|989898|1|9999001943|MR|Test|E|Lead 1943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001944|101944|989898|1|9999001944|MR|Test|E|Lead 1944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001945|101945|989898|1|9999001945|MR|Test|E|Lead 1945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001946|101946|989898|1|9999001946|MR|Test|E|Lead 1946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001947|101947|989898|1|9999001947|MR|Test|E|Lead 1947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001948|101948|989898|1|9999001948|MR|Test|E|Lead 1948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001949|101949|989898|1|9999001949|MR|Test|E|Lead 1949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001950|101950|989898|1|9999001950|MR|Test|E|Lead 1950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001951|101951|989898|1|9999001951|MR|Test|E|Lead 1951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001952|101952|989898|1|9999001952|MR|Test|E|Lead 1952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001953|101953|989898|1|9999001953|MR|Test|E|Lead 1953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001954|101954|989898|1|9999001954|MR|Test|E|Lead 1954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001955|101955|989898|1|9999001955|MR|Test|E|Lead 1955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001956|101956|989898|1|9999001956|MR|Test|E|Lead 1956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001957|101957|989898|1|9999001957|MR|Test|E|Lead 1957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001958|101958|989898|1|9999001958|MR|Test|E|Lead 1958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001959|101959|989898|1|9999001959|MR|Test|E|Lead 1959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001960|101960|989898|1|9999001960|MR|Test|E|Lead 1960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001961|101961|989898|1|9999001961|MR|Test|E|Lead 1961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001962|101962|989898|1|9999001962|MR|Test|E|Lead 1962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001963|101963|989898|1|9999001963|MR|Test|E|Lead 1963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001964|101964|989898|1|9999001964|MR|Test|E|Lead 1964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001965|101965|989898|1|9999001965|MR|Test|E|Lead 1965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001966|101966|989898|1|9999001966|MR|Test|E|Lead 1966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001967|101967|989898|1|9999001967|MR|Test|E|Lead 1967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001968|101968|989898|1|9999001968|MR|Test|E|Lead 1968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001969|101969|989898|1|9999001969|MR|Test|E|Lead 1969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001970|101970|989898|1|9999001970|MR|Test|E|Lead 1970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001971|101971|989898|1|9999001971|MR|Test|E|Lead 1971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001972|101972|989898|1|9999001972|MR|Test|E|Lead 1972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001973|101973|989898|1|9999001973|MR|Test|E|Lead 1973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001974|101974|989898|1|9999001974|MR|Test|E|Lead 1974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001975|101975|989898|1|9999001975|MR|Test|E|Lead 1975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001976|101976|989898|1|9999001976|MR|Test|E|Lead 1976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001977|101977|989898|1|9999001977|MR|Test|E|Lead 1977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001978|101978|989898|1|9999001978|MR|Test|E|Lead 1978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001979|101979|989898|1|9999001979|MR|Test|E|Lead 1979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001980|101980|989898|1|9999001980|MR|Test|E|Lead 1980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001981|101981|989898|1|9999001981|MR|Test|E|Lead 1981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001982|101982|989898|1|9999001982|MR|Test|E|Lead 1982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001983|101983|989898|1|9999001983|MR|Test|E|Lead 1983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001984|101984|989898|1|9999001984|MR|Test|E|Lead 1984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001985|101985|989898|1|9999001985|MR|Test|E|Lead 1985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001986|101986|989898|1|9999001986|MR|Test|E|Lead 1986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001987|101987|989898|1|9999001987|MR|Test|E|Lead 1987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001988|101988|989898|1|9999001988|MR|Test|E|Lead 1988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001989|101989|989898|1|9999001989|MR|Test|E|Lead 1989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001990|101990|989898|1|9999001990|MR|Test|E|Lead 1990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001991|101991|989898|1|9999001991|MR|Test|E|Lead 1991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001992|101992|989898|1|9999001992|MR|Test|E|Lead 1992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001993|101993|989898|1|9999001993|MR|Test|E|Lead 1993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001994|101994|989898|1|9999001994|MR|Test|E|Lead 1994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001995|101995|989898|1|9999001995|MR|Test|E|Lead 1995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001996|101996|989898|1|9999001996|MR|Test|E|Lead 1996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001997|101997|989898|1|9999001997|MR|Test|E|Lead 1997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001998|101998|989898|1|9999001998|MR|Test|E|Lead 1998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1001999|101999|989898|1|9999001999|MR|Test|E|Lead 1999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002000|102000|989898|1|9999002000|MR|Test|E|Lead 2000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002001|102001|989898|1|9999002001|MR|Test|E|Lead 2001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002002|102002|989898|1|9999002002|MR|Test|E|Lead 2002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002003|102003|989898|1|9999002003|MR|Test|E|Lead 2003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002004|102004|989898|1|9999002004|MR|Test|E|Lead 2004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002005|102005|989898|1|9999002005|MR|Test|E|Lead 2005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002006|102006|989898|1|9999002006|MR|Test|E|Lead 2006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002007|102007|989898|1|9999002007|MR|Test|E|Lead 2007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002008|102008|989898|1|9999002008|MR|Test|E|Lead 2008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002009|102009|989898|1|9999002009|MR|Test|E|Lead 2009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002010|102010|989898|1|9999002010|MR|Test|E|Lead 2010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002011|102011|989898|1|9999002011|MR|Test|E|Lead 2011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002012|102012|989898|1|9999002012|MR|Test|E|Lead 2012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002013|102013|989898|1|9999002013|MR|Test|E|Lead 2013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002014|102014|989898|1|9999002014|MR|Test|E|Lead 2014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002015|102015|989898|1|9999002015|MR|Test|E|Lead 2015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002016|102016|989898|1|9999002016|MR|Test|E|Lead 2016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002017|102017|989898|1|9999002017|MR|Test|E|Lead 2017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002018|102018|989898|1|9999002018|MR|Test|E|Lead 2018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002019|102019|989898|1|9999002019|MR|Test|E|Lead 2019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002020|102020|989898|1|9999002020|MR|Test|E|Lead 2020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002021|102021|989898|1|9999002021|MR|Test|E|Lead 2021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002022|102022|989898|1|9999002022|MR|Test|E|Lead 2022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002023|102023|989898|1|9999002023|MR|Test|E|Lead 2023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002024|102024|989898|1|9999002024|MR|Test|E|Lead 2024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002025|102025|989898|1|9999002025|MR|Test|E|Lead 2025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002026|102026|989898|1|9999002026|MR|Test|E|Lead 2026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002027|102027|989898|1|9999002027|MR|Test|E|Lead 2027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002028|102028|989898|1|9999002028|MR|Test|E|Lead 2028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002029|102029|989898|1|9999002029|MR|Test|E|Lead 2029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002030|102030|989898|1|9999002030|MR|Test|E|Lead 2030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002031|102031|989898|1|9999002031|MR|Test|E|Lead 2031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002032|102032|989898|1|9999002032|MR|Test|E|Lead 2032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002033|102033|989898|1|9999002033|MR|Test|E|Lead 2033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002034|102034|989898|1|9999002034|MR|Test|E|Lead 2034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002035|102035|989898|1|9999002035|MR|Test|E|Lead 2035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002036|102036|989898|1|9999002036|MR|Test|E|Lead 2036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002037|102037|989898|1|9999002037|MR|Test|E|Lead 2037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002038|102038|989898|1|9999002038|MR|Test|E|Lead 2038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002039|102039|989898|1|9999002039|MR|Test|E|Lead 2039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002040|102040|989898|1|9999002040|MR|Test|E|Lead 2040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002041|102041|989898|1|9999002041|MR|Test|E|Lead 2041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002042|102042|989898|1|9999002042|MR|Test|E|Lead 2042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002043|102043|989898|1|9999002043|MR|Test|E|Lead 2043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002044|102044|989898|1|9999002044|MR|Test|E|Lead 2044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002045|102045|989898|1|9999002045|MR|Test|E|Lead 2045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002046|102046|989898|1|9999002046|MR|Test|E|Lead 2046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002047|102047|989898|1|9999002047|MR|Test|E|Lead 2047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002048|102048|989898|1|9999002048|MR|Test|E|Lead 2048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002049|102049|989898|1|9999002049|MR|Test|E|Lead 2049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002050|102050|989898|1|9999002050|MR|Test|E|Lead 2050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002051|102051|989898|1|9999002051|MR|Test|E|Lead 2051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002052|102052|989898|1|9999002052|MR|Test|E|Lead 2052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002053|102053|989898|1|9999002053|MR|Test|E|Lead 2053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002054|102054|989898|1|9999002054|MR|Test|E|Lead 2054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002055|102055|989898|1|9999002055|MR|Test|E|Lead 2055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002056|102056|989898|1|9999002056|MR|Test|E|Lead 2056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002057|102057|989898|1|9999002057|MR|Test|E|Lead 2057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002058|102058|989898|1|9999002058|MR|Test|E|Lead 2058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002059|102059|989898|1|9999002059|MR|Test|E|Lead 2059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002060|102060|989898|1|9999002060|MR|Test|E|Lead 2060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002061|102061|989898|1|9999002061|MR|Test|E|Lead 2061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002062|102062|989898|1|9999002062|MR|Test|E|Lead 2062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002063|102063|989898|1|9999002063|MR|Test|E|Lead 2063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002064|102064|989898|1|9999002064|MR|Test|E|Lead 2064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002065|102065|989898|1|9999002065|MR|Test|E|Lead 2065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002066|102066|989898|1|9999002066|MR|Test|E|Lead 2066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002067|102067|989898|1|9999002067|MR|Test|E|Lead 2067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002068|102068|989898|1|9999002068|MR|Test|E|Lead 2068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002069|102069|989898|1|9999002069|MR|Test|E|Lead 2069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002070|102070|989898|1|9999002070|MR|Test|E|Lead 2070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002071|102071|989898|1|9999002071|MR|Test|E|Lead 2071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002072|102072|989898|1|9999002072|MR|Test|E|Lead 2072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002073|102073|989898|1|9999002073|MR|Test|E|Lead 2073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002074|102074|989898|1|9999002074|MR|Test|E|Lead 2074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002075|102075|989898|1|9999002075|MR|Test|E|Lead 2075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002076|102076|989898|1|9999002076|MR|Test|E|Lead 2076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002077|102077|989898|1|9999002077|MR|Test|E|Lead 2077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002078|102078|989898|1|9999002078|MR|Test|E|Lead 2078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002079|102079|989898|1|9999002079|MR|Test|E|Lead 2079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002080|102080|989898|1|9999002080|MR|Test|E|Lead 2080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002081|102081|989898|1|9999002081|MR|Test|E|Lead 2081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002082|102082|989898|1|9999002082|MR|Test|E|Lead 2082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002083|102083|989898|1|9999002083|MR|Test|E|Lead 2083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002084|102084|989898|1|9999002084|MR|Test|E|Lead 2084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002085|102085|989898|1|9999002085|MR|Test|E|Lead 2085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002086|102086|989898|1|9999002086|MR|Test|E|Lead 2086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002087|102087|989898|1|9999002087|MR|Test|E|Lead 2087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002088|102088|989898|1|9999002088|MR|Test|E|Lead 2088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002089|102089|989898|1|9999002089|MR|Test|E|Lead 2089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002090|102090|989898|1|9999002090|MR|Test|E|Lead 2090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002091|102091|989898|1|9999002091|MR|Test|E|Lead 2091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002092|102092|989898|1|9999002092|MR|Test|E|Lead 2092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002093|102093|989898|1|9999002093|MR|Test|E|Lead 2093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002094|102094|989898|1|9999002094|MR|Test|E|Lead 2094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002095|102095|989898|1|9999002095|MR|Test|E|Lead 2095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002096|102096|989898|1|9999002096|MR|Test|E|Lead 2096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002097|102097|989898|1|9999002097|MR|Test|E|Lead 2097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002098|102098|989898|1|9999002098|MR|Test|E|Lead 2098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002099|102099|989898|1|9999002099|MR|Test|E|Lead 2099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002100|102100|989898|1|9999002100|MR|Test|E|Lead 2100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002101|102101|989898|1|9999002101|MR|Test|E|Lead 2101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002102|102102|989898|1|9999002102|MR|Test|E|Lead 2102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002103|102103|989898|1|9999002103|MR|Test|E|Lead 2103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002104|102104|989898|1|9999002104|MR|Test|E|Lead 2104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002105|102105|989898|1|9999002105|MR|Test|E|Lead 2105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002106|102106|989898|1|9999002106|MR|Test|E|Lead 2106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002107|102107|989898|1|9999002107|MR|Test|E|Lead 2107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002108|102108|989898|1|9999002108|MR|Test|E|Lead 2108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002109|102109|989898|1|9999002109|MR|Test|E|Lead 2109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002110|102110|989898|1|9999002110|MR|Test|E|Lead 2110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002111|102111|989898|1|9999002111|MR|Test|E|Lead 2111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002112|102112|989898|1|9999002112|MR|Test|E|Lead 2112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002113|102113|989898|1|9999002113|MR|Test|E|Lead 2113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002114|102114|989898|1|9999002114|MR|Test|E|Lead 2114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002115|102115|989898|1|9999002115|MR|Test|E|Lead 2115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002116|102116|989898|1|9999002116|MR|Test|E|Lead 2116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002117|102117|989898|1|9999002117|MR|Test|E|Lead 2117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002118|102118|989898|1|9999002118|MR|Test|E|Lead 2118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002119|102119|989898|1|9999002119|MR|Test|E|Lead 2119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002120|102120|989898|1|9999002120|MR|Test|E|Lead 2120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002121|102121|989898|1|9999002121|MR|Test|E|Lead 2121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002122|102122|989898|1|9999002122|MR|Test|E|Lead 2122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002123|102123|989898|1|9999002123|MR|Test|E|Lead 2123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002124|102124|989898|1|9999002124|MR|Test|E|Lead 2124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002125|102125|989898|1|9999002125|MR|Test|E|Lead 2125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002126|102126|989898|1|9999002126|MR|Test|E|Lead 2126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002127|102127|989898|1|9999002127|MR|Test|E|Lead 2127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002128|102128|989898|1|9999002128|MR|Test|E|Lead 2128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002129|102129|989898|1|9999002129|MR|Test|E|Lead 2129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002130|102130|989898|1|9999002130|MR|Test|E|Lead 2130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002131|102131|989898|1|9999002131|MR|Test|E|Lead 2131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002132|102132|989898|1|9999002132|MR|Test|E|Lead 2132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002133|102133|989898|1|9999002133|MR|Test|E|Lead 2133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002134|102134|989898|1|9999002134|MR|Test|E|Lead 2134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002135|102135|989898|1|9999002135|MR|Test|E|Lead 2135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002136|102136|989898|1|9999002136|MR|Test|E|Lead 2136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002137|102137|989898|1|9999002137|MR|Test|E|Lead 2137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002138|102138|989898|1|9999002138|MR|Test|E|Lead 2138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002139|102139|989898|1|9999002139|MR|Test|E|Lead 2139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002140|102140|989898|1|9999002140|MR|Test|E|Lead 2140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002141|102141|989898|1|9999002141|MR|Test|E|Lead 2141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002142|102142|989898|1|9999002142|MR|Test|E|Lead 2142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002143|102143|989898|1|9999002143|MR|Test|E|Lead 2143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002144|102144|989898|1|9999002144|MR|Test|E|Lead 2144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002145|102145|989898|1|9999002145|MR|Test|E|Lead 2145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002146|102146|989898|1|9999002146|MR|Test|E|Lead 2146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002147|102147|989898|1|9999002147|MR|Test|E|Lead 2147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002148|102148|989898|1|9999002148|MR|Test|E|Lead 2148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002149|102149|989898|1|9999002149|MR|Test|E|Lead 2149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002150|102150|989898|1|9999002150|MR|Test|E|Lead 2150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002151|102151|989898|1|9999002151|MR|Test|E|Lead 2151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002152|102152|989898|1|9999002152|MR|Test|E|Lead 2152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002153|102153|989898|1|9999002153|MR|Test|E|Lead 2153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002154|102154|989898|1|9999002154|MR|Test|E|Lead 2154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002155|102155|989898|1|9999002155|MR|Test|E|Lead 2155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002156|102156|989898|1|9999002156|MR|Test|E|Lead 2156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002157|102157|989898|1|9999002157|MR|Test|E|Lead 2157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002158|102158|989898|1|9999002158|MR|Test|E|Lead 2158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002159|102159|989898|1|9999002159|MR|Test|E|Lead 2159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002160|102160|989898|1|9999002160|MR|Test|E|Lead 2160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002161|102161|989898|1|9999002161|MR|Test|E|Lead 2161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002162|102162|989898|1|9999002162|MR|Test|E|Lead 2162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002163|102163|989898|1|9999002163|MR|Test|E|Lead 2163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002164|102164|989898|1|9999002164|MR|Test|E|Lead 2164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002165|102165|989898|1|9999002165|MR|Test|E|Lead 2165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002166|102166|989898|1|9999002166|MR|Test|E|Lead 2166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002167|102167|989898|1|9999002167|MR|Test|E|Lead 2167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002168|102168|989898|1|9999002168|MR|Test|E|Lead 2168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002169|102169|989898|1|9999002169|MR|Test|E|Lead 2169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002170|102170|989898|1|9999002170|MR|Test|E|Lead 2170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002171|102171|989898|1|9999002171|MR|Test|E|Lead 2171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002172|102172|989898|1|9999002172|MR|Test|E|Lead 2172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002173|102173|989898|1|9999002173|MR|Test|E|Lead 2173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002174|102174|989898|1|9999002174|MR|Test|E|Lead 2174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002175|102175|989898|1|9999002175|MR|Test|E|Lead 2175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002176|102176|989898|1|9999002176|MR|Test|E|Lead 2176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002177|102177|989898|1|9999002177|MR|Test|E|Lead 2177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002178|102178|989898|1|9999002178|MR|Test|E|Lead 2178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002179|102179|989898|1|9999002179|MR|Test|E|Lead 2179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002180|102180|989898|1|9999002180|MR|Test|E|Lead 2180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002181|102181|989898|1|9999002181|MR|Test|E|Lead 2181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002182|102182|989898|1|9999002182|MR|Test|E|Lead 2182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002183|102183|989898|1|9999002183|MR|Test|E|Lead 2183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002184|102184|989898|1|9999002184|MR|Test|E|Lead 2184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002185|102185|989898|1|9999002185|MR|Test|E|Lead 2185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002186|102186|989898|1|9999002186|MR|Test|E|Lead 2186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002187|102187|989898|1|9999002187|MR|Test|E|Lead 2187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002188|102188|989898|1|9999002188|MR|Test|E|Lead 2188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002189|102189|989898|1|9999002189|MR|Test|E|Lead 2189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002190|102190|989898|1|9999002190|MR|Test|E|Lead 2190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002191|102191|989898|1|9999002191|MR|Test|E|Lead 2191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002192|102192|989898|1|9999002192|MR|Test|E|Lead 2192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002193|102193|989898|1|9999002193|MR|Test|E|Lead 2193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002194|102194|989898|1|9999002194|MR|Test|E|Lead 2194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002195|102195|989898|1|9999002195|MR|Test|E|Lead 2195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002196|102196|989898|1|9999002196|MR|Test|E|Lead 2196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002197|102197|989898|1|9999002197|MR|Test|E|Lead 2197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002198|102198|989898|1|9999002198|MR|Test|E|Lead 2198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002199|102199|989898|1|9999002199|MR|Test|E|Lead 2199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002200|102200|989898|1|9999002200|MR|Test|E|Lead 2200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002201|102201|989898|1|9999002201|MR|Test|E|Lead 2201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002202|102202|989898|1|9999002202|MR|Test|E|Lead 2202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002203|102203|989898|1|9999002203|MR|Test|E|Lead 2203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002204|102204|989898|1|9999002204|MR|Test|E|Lead 2204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002205|102205|989898|1|9999002205|MR|Test|E|Lead 2205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002206|102206|989898|1|9999002206|MR|Test|E|Lead 2206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002207|102207|989898|1|9999002207|MR|Test|E|Lead 2207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002208|102208|989898|1|9999002208|MR|Test|E|Lead 2208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002209|102209|989898|1|9999002209|MR|Test|E|Lead 2209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002210|102210|989898|1|9999002210|MR|Test|E|Lead 2210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002211|102211|989898|1|9999002211|MR|Test|E|Lead 2211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002212|102212|989898|1|9999002212|MR|Test|E|Lead 2212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002213|102213|989898|1|9999002213|MR|Test|E|Lead 2213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002214|102214|989898|1|9999002214|MR|Test|E|Lead 2214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002215|102215|989898|1|9999002215|MR|Test|E|Lead 2215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002216|102216|989898|1|9999002216|MR|Test|E|Lead 2216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002217|102217|989898|1|9999002217|MR|Test|E|Lead 2217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002218|102218|989898|1|9999002218|MR|Test|E|Lead 2218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002219|102219|989898|1|9999002219|MR|Test|E|Lead 2219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002220|102220|989898|1|9999002220|MR|Test|E|Lead 2220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002221|102221|989898|1|9999002221|MR|Test|E|Lead 2221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002222|102222|989898|1|9999002222|MR|Test|E|Lead 2222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002223|102223|989898|1|9999002223|MR|Test|E|Lead 2223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002224|102224|989898|1|9999002224|MR|Test|E|Lead 2224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002225|102225|989898|1|9999002225|MR|Test|E|Lead 2225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002226|102226|989898|1|9999002226|MR|Test|E|Lead 2226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002227|102227|989898|1|9999002227|MR|Test|E|Lead 2227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002228|102228|989898|1|9999002228|MR|Test|E|Lead 2228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002229|102229|989898|1|9999002229|MR|Test|E|Lead 2229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002230|102230|989898|1|9999002230|MR|Test|E|Lead 2230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002231|102231|989898|1|9999002231|MR|Test|E|Lead 2231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002232|102232|989898|1|9999002232|MR|Test|E|Lead 2232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002233|102233|989898|1|9999002233|MR|Test|E|Lead 2233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002234|102234|989898|1|9999002234|MR|Test|E|Lead 2234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002235|102235|989898|1|9999002235|MR|Test|E|Lead 2235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002236|102236|989898|1|9999002236|MR|Test|E|Lead 2236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002237|102237|989898|1|9999002237|MR|Test|E|Lead 2237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002238|102238|989898|1|9999002238|MR|Test|E|Lead 2238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002239|102239|989898|1|9999002239|MR|Test|E|Lead 2239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002240|102240|989898|1|9999002240|MR|Test|E|Lead 2240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002241|102241|989898|1|9999002241|MR|Test|E|Lead 2241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002242|102242|989898|1|9999002242|MR|Test|E|Lead 2242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002243|102243|989898|1|9999002243|MR|Test|E|Lead 2243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002244|102244|989898|1|9999002244|MR|Test|E|Lead 2244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002245|102245|989898|1|9999002245|MR|Test|E|Lead 2245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002246|102246|989898|1|9999002246|MR|Test|E|Lead 2246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002247|102247|989898|1|9999002247|MR|Test|E|Lead 2247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002248|102248|989898|1|9999002248|MR|Test|E|Lead 2248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002249|102249|989898|1|9999002249|MR|Test|E|Lead 2249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002250|102250|989898|1|9999002250|MR|Test|E|Lead 2250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002251|102251|989898|1|9999002251|MR|Test|E|Lead 2251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002252|102252|989898|1|9999002252|MR|Test|E|Lead 2252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002253|102253|989898|1|9999002253|MR|Test|E|Lead 2253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002254|102254|989898|1|9999002254|MR|Test|E|Lead 2254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002255|102255|989898|1|9999002255|MR|Test|E|Lead 2255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002256|102256|989898|1|9999002256|MR|Test|E|Lead 2256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002257|102257|989898|1|9999002257|MR|Test|E|Lead 2257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002258|102258|989898|1|9999002258|MR|Test|E|Lead 2258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002259|102259|989898|1|9999002259|MR|Test|E|Lead 2259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002260|102260|989898|1|9999002260|MR|Test|E|Lead 2260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002261|102261|989898|1|9999002261|MR|Test|E|Lead 2261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002262|102262|989898|1|9999002262|MR|Test|E|Lead 2262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002263|102263|989898|1|9999002263|MR|Test|E|Lead 2263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002264|102264|989898|1|9999002264|MR|Test|E|Lead 2264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002265|102265|989898|1|9999002265|MR|Test|E|Lead 2265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002266|102266|989898|1|9999002266|MR|Test|E|Lead 2266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002267|102267|989898|1|9999002267|MR|Test|E|Lead 2267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002268|102268|989898|1|9999002268|MR|Test|E|Lead 2268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002269|102269|989898|1|9999002269|MR|Test|E|Lead 2269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002270|102270|989898|1|9999002270|MR|Test|E|Lead 2270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002271|102271|989898|1|9999002271|MR|Test|E|Lead 2271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002272|102272|989898|1|9999002272|MR|Test|E|Lead 2272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002273|102273|989898|1|9999002273|MR|Test|E|Lead 2273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002274|102274|989898|1|9999002274|MR|Test|E|Lead 2274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002275|102275|989898|1|9999002275|MR|Test|E|Lead 2275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002276|102276|989898|1|9999002276|MR|Test|E|Lead 2276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002277|102277|989898|1|9999002277|MR|Test|E|Lead 2277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002278|102278|989898|1|9999002278|MR|Test|E|Lead 2278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002279|102279|989898|1|9999002279|MR|Test|E|Lead 2279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002280|102280|989898|1|9999002280|MR|Test|E|Lead 2280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002281|102281|989898|1|9999002281|MR|Test|E|Lead 2281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002282|102282|989898|1|9999002282|MR|Test|E|Lead 2282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002283|102283|989898|1|9999002283|MR|Test|E|Lead 2283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002284|102284|989898|1|9999002284|MR|Test|E|Lead 2284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002285|102285|989898|1|9999002285|MR|Test|E|Lead 2285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002286|102286|989898|1|9999002286|MR|Test|E|Lead 2286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002287|102287|989898|1|9999002287|MR|Test|E|Lead 2287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002288|102288|989898|1|9999002288|MR|Test|E|Lead 2288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002289|102289|989898|1|9999002289|MR|Test|E|Lead 2289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002290|102290|989898|1|9999002290|MR|Test|E|Lead 2290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002291|102291|989898|1|9999002291|MR|Test|E|Lead 2291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002292|102292|989898|1|9999002292|MR|Test|E|Lead 2292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002293|102293|989898|1|9999002293|MR|Test|E|Lead 2293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002294|102294|989898|1|9999002294|MR|Test|E|Lead 2294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002295|102295|989898|1|9999002295|MR|Test|E|Lead 2295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002296|102296|989898|1|9999002296|MR|Test|E|Lead 2296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002297|102297|989898|1|9999002297|MR|Test|E|Lead 2297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002298|102298|989898|1|9999002298|MR|Test|E|Lead 2298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002299|102299|989898|1|9999002299|MR|Test|E|Lead 2299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002300|102300|989898|1|9999002300|MR|Test|E|Lead 2300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002301|102301|989898|1|9999002301|MR|Test|E|Lead 2301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002302|102302|989898|1|9999002302|MR|Test|E|Lead 2302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002303|102303|989898|1|9999002303|MR|Test|E|Lead 2303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002304|102304|989898|1|9999002304|MR|Test|E|Lead 2304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002305|102305|989898|1|9999002305|MR|Test|E|Lead 2305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002306|102306|989898|1|9999002306|MR|Test|E|Lead 2306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002307|102307|989898|1|9999002307|MR|Test|E|Lead 2307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002308|102308|989898|1|9999002308|MR|Test|E|Lead 2308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002309|102309|989898|1|9999002309|MR|Test|E|Lead 2309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002310|102310|989898|1|9999002310|MR|Test|E|Lead 2310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002311|102311|989898|1|9999002311|MR|Test|E|Lead 2311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002312|102312|989898|1|9999002312|MR|Test|E|Lead 2312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002313|102313|989898|1|9999002313|MR|Test|E|Lead 2313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002314|102314|989898|1|9999002314|MR|Test|E|Lead 2314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002315|102315|989898|1|9999002315|MR|Test|E|Lead 2315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002316|102316|989898|1|9999002316|MR|Test|E|Lead 2316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002317|102317|989898|1|9999002317|MR|Test|E|Lead 2317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002318|102318|989898|1|9999002318|MR|Test|E|Lead 2318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002319|102319|989898|1|9999002319|MR|Test|E|Lead 2319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002320|102320|989898|1|9999002320|MR|Test|E|Lead 2320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002321|102321|989898|1|9999002321|MR|Test|E|Lead 2321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002322|102322|989898|1|9999002322|MR|Test|E|Lead 2322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002323|102323|989898|1|9999002323|MR|Test|E|Lead 2323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002324|102324|989898|1|9999002324|MR|Test|E|Lead 2324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002325|102325|989898|1|9999002325|MR|Test|E|Lead 2325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002326|102326|989898|1|9999002326|MR|Test|E|Lead 2326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002327|102327|989898|1|9999002327|MR|Test|E|Lead 2327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002328|102328|989898|1|9999002328|MR|Test|E|Lead 2328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002329|102329|989898|1|9999002329|MR|Test|E|Lead 2329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002330|102330|989898|1|9999002330|MR|Test|E|Lead 2330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002331|102331|989898|1|9999002331|MR|Test|E|Lead 2331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002332|102332|989898|1|9999002332|MR|Test|E|Lead 2332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002333|102333|989898|1|9999002333|MR|Test|E|Lead 2333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002334|102334|989898|1|9999002334|MR|Test|E|Lead 2334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002335|102335|989898|1|9999002335|MR|Test|E|Lead 2335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002336|102336|989898|1|9999002336|MR|Test|E|Lead 2336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002337|102337|989898|1|9999002337|MR|Test|E|Lead 2337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002338|102338|989898|1|9999002338|MR|Test|E|Lead 2338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002339|102339|989898|1|9999002339|MR|Test|E|Lead 2339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002340|102340|989898|1|9999002340|MR|Test|E|Lead 2340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002341|102341|989898|1|9999002341|MR|Test|E|Lead 2341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002342|102342|989898|1|9999002342|MR|Test|E|Lead 2342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002343|102343|989898|1|9999002343|MR|Test|E|Lead 2343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002344|102344|989898|1|9999002344|MR|Test|E|Lead 2344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002345|102345|989898|1|9999002345|MR|Test|E|Lead 2345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002346|102346|989898|1|9999002346|MR|Test|E|Lead 2346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002347|102347|989898|1|9999002347|MR|Test|E|Lead 2347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002348|102348|989898|1|9999002348|MR|Test|E|Lead 2348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002349|102349|989898|1|9999002349|MR|Test|E|Lead 2349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002350|102350|989898|1|9999002350|MR|Test|E|Lead 2350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002351|102351|989898|1|9999002351|MR|Test|E|Lead 2351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002352|102352|989898|1|9999002352|MR|Test|E|Lead 2352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002353|102353|989898|1|9999002353|MR|Test|E|Lead 2353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002354|102354|989898|1|9999002354|MR|Test|E|Lead 2354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002355|102355|989898|1|9999002355|MR|Test|E|Lead 2355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002356|102356|989898|1|9999002356|MR|Test|E|Lead 2356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002357|102357|989898|1|9999002357|MR|Test|E|Lead 2357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002358|102358|989898|1|9999002358|MR|Test|E|Lead 2358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002359|102359|989898|1|9999002359|MR|Test|E|Lead 2359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002360|102360|989898|1|9999002360|MR|Test|E|Lead 2360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002361|102361|989898|1|9999002361|MR|Test|E|Lead 2361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002362|102362|989898|1|9999002362|MR|Test|E|Lead 2362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002363|102363|989898|1|9999002363|MR|Test|E|Lead 2363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002364|102364|989898|1|9999002364|MR|Test|E|Lead 2364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002365|102365|989898|1|9999002365|MR|Test|E|Lead 2365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002366|102366|989898|1|9999002366|MR|Test|E|Lead 2366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002367|102367|989898|1|9999002367|MR|Test|E|Lead 2367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002368|102368|989898|1|9999002368|MR|Test|E|Lead 2368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002369|102369|989898|1|9999002369|MR|Test|E|Lead 2369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002370|102370|989898|1|9999002370|MR|Test|E|Lead 2370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002371|102371|989898|1|9999002371|MR|Test|E|Lead 2371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002372|102372|989898|1|9999002372|MR|Test|E|Lead 2372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002373|102373|989898|1|9999002373|MR|Test|E|Lead 2373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002374|102374|989898|1|9999002374|MR|Test|E|Lead 2374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002375|102375|989898|1|9999002375|MR|Test|E|Lead 2375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002376|102376|989898|1|9999002376|MR|Test|E|Lead 2376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002377|102377|989898|1|9999002377|MR|Test|E|Lead 2377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002378|102378|989898|1|9999002378|MR|Test|E|Lead 2378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002379|102379|989898|1|9999002379|MR|Test|E|Lead 2379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002380|102380|989898|1|9999002380|MR|Test|E|Lead 2380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002381|102381|989898|1|9999002381|MR|Test|E|Lead 2381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002382|102382|989898|1|9999002382|MR|Test|E|Lead 2382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002383|102383|989898|1|9999002383|MR|Test|E|Lead 2383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002384|102384|989898|1|9999002384|MR|Test|E|Lead 2384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002385|102385|989898|1|9999002385|MR|Test|E|Lead 2385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002386|102386|989898|1|9999002386|MR|Test|E|Lead 2386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002387|102387|989898|1|9999002387|MR|Test|E|Lead 2387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002388|102388|989898|1|9999002388|MR|Test|E|Lead 2388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002389|102389|989898|1|9999002389|MR|Test|E|Lead 2389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002390|102390|989898|1|9999002390|MR|Test|E|Lead 2390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002391|102391|989898|1|9999002391|MR|Test|E|Lead 2391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002392|102392|989898|1|9999002392|MR|Test|E|Lead 2392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002393|102393|989898|1|9999002393|MR|Test|E|Lead 2393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002394|102394|989898|1|9999002394|MR|Test|E|Lead 2394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002395|102395|989898|1|9999002395|MR|Test|E|Lead 2395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002396|102396|989898|1|9999002396|MR|Test|E|Lead 2396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002397|102397|989898|1|9999002397|MR|Test|E|Lead 2397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002398|102398|989898|1|9999002398|MR|Test|E|Lead 2398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002399|102399|989898|1|9999002399|MR|Test|E|Lead 2399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002400|102400|989898|1|9999002400|MR|Test|E|Lead 2400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002401|102401|989898|1|9999002401|MR|Test|E|Lead 2401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002402|102402|989898|1|9999002402|MR|Test|E|Lead 2402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002403|102403|989898|1|9999002403|MR|Test|E|Lead 2403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002404|102404|989898|1|9999002404|MR|Test|E|Lead 2404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002405|102405|989898|1|9999002405|MR|Test|E|Lead 2405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002406|102406|989898|1|9999002406|MR|Test|E|Lead 2406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002407|102407|989898|1|9999002407|MR|Test|E|Lead 2407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002408|102408|989898|1|9999002408|MR|Test|E|Lead 2408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002409|102409|989898|1|9999002409|MR|Test|E|Lead 2409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002410|102410|989898|1|9999002410|MR|Test|E|Lead 2410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002411|102411|989898|1|9999002411|MR|Test|E|Lead 2411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002412|102412|989898|1|9999002412|MR|Test|E|Lead 2412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002413|102413|989898|1|9999002413|MR|Test|E|Lead 2413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002414|102414|989898|1|9999002414|MR|Test|E|Lead 2414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002415|102415|989898|1|9999002415|MR|Test|E|Lead 2415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002416|102416|989898|1|9999002416|MR|Test|E|Lead 2416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002417|102417|989898|1|9999002417|MR|Test|E|Lead 2417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002418|102418|989898|1|9999002418|MR|Test|E|Lead 2418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002419|102419|989898|1|9999002419|MR|Test|E|Lead 2419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002420|102420|989898|1|9999002420|MR|Test|E|Lead 2420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002421|102421|989898|1|9999002421|MR|Test|E|Lead 2421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002422|102422|989898|1|9999002422|MR|Test|E|Lead 2422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002423|102423|989898|1|9999002423|MR|Test|E|Lead 2423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002424|102424|989898|1|9999002424|MR|Test|E|Lead 2424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002425|102425|989898|1|9999002425|MR|Test|E|Lead 2425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002426|102426|989898|1|9999002426|MR|Test|E|Lead 2426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002427|102427|989898|1|9999002427|MR|Test|E|Lead 2427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002428|102428|989898|1|9999002428|MR|Test|E|Lead 2428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002429|102429|989898|1|9999002429|MR|Test|E|Lead 2429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002430|102430|989898|1|9999002430|MR|Test|E|Lead 2430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002431|102431|989898|1|9999002431|MR|Test|E|Lead 2431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002432|102432|989898|1|9999002432|MR|Test|E|Lead 2432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002433|102433|989898|1|9999002433|MR|Test|E|Lead 2433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002434|102434|989898|1|9999002434|MR|Test|E|Lead 2434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002435|102435|989898|1|9999002435|MR|Test|E|Lead 2435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002436|102436|989898|1|9999002436|MR|Test|E|Lead 2436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002437|102437|989898|1|9999002437|MR|Test|E|Lead 2437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002438|102438|989898|1|9999002438|MR|Test|E|Lead 2438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002439|102439|989898|1|9999002439|MR|Test|E|Lead 2439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002440|102440|989898|1|9999002440|MR|Test|E|Lead 2440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002441|102441|989898|1|9999002441|MR|Test|E|Lead 2441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002442|102442|989898|1|9999002442|MR|Test|E|Lead 2442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002443|102443|989898|1|9999002443|MR|Test|E|Lead 2443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002444|102444|989898|1|9999002444|MR|Test|E|Lead 2444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002445|102445|989898|1|9999002445|MR|Test|E|Lead 2445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002446|102446|989898|1|9999002446|MR|Test|E|Lead 2446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002447|102447|989898|1|9999002447|MR|Test|E|Lead 2447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002448|102448|989898|1|9999002448|MR|Test|E|Lead 2448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002449|102449|989898|1|9999002449|MR|Test|E|Lead 2449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002450|102450|989898|1|9999002450|MR|Test|E|Lead 2450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002451|102451|989898|1|9999002451|MR|Test|E|Lead 2451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002452|102452|989898|1|9999002452|MR|Test|E|Lead 2452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002453|102453|989898|1|9999002453|MR|Test|E|Lead 2453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002454|102454|989898|1|9999002454|MR|Test|E|Lead 2454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002455|102455|989898|1|9999002455|MR|Test|E|Lead 2455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002456|102456|989898|1|9999002456|MR|Test|E|Lead 2456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002457|102457|989898|1|9999002457|MR|Test|E|Lead 2457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002458|102458|989898|1|9999002458|MR|Test|E|Lead 2458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002459|102459|989898|1|9999002459|MR|Test|E|Lead 2459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002460|102460|989898|1|9999002460|MR|Test|E|Lead 2460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002461|102461|989898|1|9999002461|MR|Test|E|Lead 2461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002462|102462|989898|1|9999002462|MR|Test|E|Lead 2462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002463|102463|989898|1|9999002463|MR|Test|E|Lead 2463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002464|102464|989898|1|9999002464|MR|Test|E|Lead 2464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002465|102465|989898|1|9999002465|MR|Test|E|Lead 2465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002466|102466|989898|1|9999002466|MR|Test|E|Lead 2466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002467|102467|989898|1|9999002467|MR|Test|E|Lead 2467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002468|102468|989898|1|9999002468|MR|Test|E|Lead 2468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002469|102469|989898|1|9999002469|MR|Test|E|Lead 2469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002470|102470|989898|1|9999002470|MR|Test|E|Lead 2470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002471|102471|989898|1|9999002471|MR|Test|E|Lead 2471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002472|102472|989898|1|9999002472|MR|Test|E|Lead 2472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002473|102473|989898|1|9999002473|MR|Test|E|Lead 2473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002474|102474|989898|1|9999002474|MR|Test|E|Lead 2474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002475|102475|989898|1|9999002475|MR|Test|E|Lead 2475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002476|102476|989898|1|9999002476|MR|Test|E|Lead 2476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002477|102477|989898|1|9999002477|MR|Test|E|Lead 2477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002478|102478|989898|1|9999002478|MR|Test|E|Lead 2478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002479|102479|989898|1|9999002479|MR|Test|E|Lead 2479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002480|102480|989898|1|9999002480|MR|Test|E|Lead 2480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002481|102481|989898|1|9999002481|MR|Test|E|Lead 2481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002482|102482|989898|1|9999002482|MR|Test|E|Lead 2482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002483|102483|989898|1|9999002483|MR|Test|E|Lead 2483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002484|102484|989898|1|9999002484|MR|Test|E|Lead 2484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002485|102485|989898|1|9999002485|MR|Test|E|Lead 2485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002486|102486|989898|1|9999002486|MR|Test|E|Lead 2486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002487|102487|989898|1|9999002487|MR|Test|E|Lead 2487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002488|102488|989898|1|9999002488|MR|Test|E|Lead 2488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002489|102489|989898|1|9999002489|MR|Test|E|Lead 2489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002490|102490|989898|1|9999002490|MR|Test|E|Lead 2490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002491|102491|989898|1|9999002491|MR|Test|E|Lead 2491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002492|102492|989898|1|9999002492|MR|Test|E|Lead 2492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002493|102493|989898|1|9999002493|MR|Test|E|Lead 2493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002494|102494|989898|1|9999002494|MR|Test|E|Lead 2494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002495|102495|989898|1|9999002495|MR|Test|E|Lead 2495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002496|102496|989898|1|9999002496|MR|Test|E|Lead 2496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002497|102497|989898|1|9999002497|MR|Test|E|Lead 2497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002498|102498|989898|1|9999002498|MR|Test|E|Lead 2498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002499|102499|989898|1|9999002499|MR|Test|E|Lead 2499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002500|102500|989898|1|9999002500|MR|Test|E|Lead 2500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002501|102501|989898|1|9999002501|MR|Test|E|Lead 2501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002502|102502|989898|1|9999002502|MR|Test|E|Lead 2502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002503|102503|989898|1|9999002503|MR|Test|E|Lead 2503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002504|102504|989898|1|9999002504|MR|Test|E|Lead 2504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002505|102505|989898|1|9999002505|MR|Test|E|Lead 2505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002506|102506|989898|1|9999002506|MR|Test|E|Lead 2506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002507|102507|989898|1|9999002507|MR|Test|E|Lead 2507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002508|102508|989898|1|9999002508|MR|Test|E|Lead 2508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002509|102509|989898|1|9999002509|MR|Test|E|Lead 2509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002510|102510|989898|1|9999002510|MR|Test|E|Lead 2510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002511|102511|989898|1|9999002511|MR|Test|E|Lead 2511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002512|102512|989898|1|9999002512|MR|Test|E|Lead 2512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002513|102513|989898|1|9999002513|MR|Test|E|Lead 2513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002514|102514|989898|1|9999002514|MR|Test|E|Lead 2514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002515|102515|989898|1|9999002515|MR|Test|E|Lead 2515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002516|102516|989898|1|9999002516|MR|Test|E|Lead 2516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002517|102517|989898|1|9999002517|MR|Test|E|Lead 2517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002518|102518|989898|1|9999002518|MR|Test|E|Lead 2518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002519|102519|989898|1|9999002519|MR|Test|E|Lead 2519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002520|102520|989898|1|9999002520|MR|Test|E|Lead 2520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002521|102521|989898|1|9999002521|MR|Test|E|Lead 2521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002522|102522|989898|1|9999002522|MR|Test|E|Lead 2522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002523|102523|989898|1|9999002523|MR|Test|E|Lead 2523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002524|102524|989898|1|9999002524|MR|Test|E|Lead 2524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002525|102525|989898|1|9999002525|MR|Test|E|Lead 2525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002526|102526|989898|1|9999002526|MR|Test|E|Lead 2526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002527|102527|989898|1|9999002527|MR|Test|E|Lead 2527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002528|102528|989898|1|9999002528|MR|Test|E|Lead 2528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002529|102529|989898|1|9999002529|MR|Test|E|Lead 2529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002530|102530|989898|1|9999002530|MR|Test|E|Lead 2530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002531|102531|989898|1|9999002531|MR|Test|E|Lead 2531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002532|102532|989898|1|9999002532|MR|Test|E|Lead 2532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002533|102533|989898|1|9999002533|MR|Test|E|Lead 2533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002534|102534|989898|1|9999002534|MR|Test|E|Lead 2534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002535|102535|989898|1|9999002535|MR|Test|E|Lead 2535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002536|102536|989898|1|9999002536|MR|Test|E|Lead 2536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002537|102537|989898|1|9999002537|MR|Test|E|Lead 2537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002538|102538|989898|1|9999002538|MR|Test|E|Lead 2538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002539|102539|989898|1|9999002539|MR|Test|E|Lead 2539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002540|102540|989898|1|9999002540|MR|Test|E|Lead 2540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002541|102541|989898|1|9999002541|MR|Test|E|Lead 2541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002542|102542|989898|1|9999002542|MR|Test|E|Lead 2542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002543|102543|989898|1|9999002543|MR|Test|E|Lead 2543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002544|102544|989898|1|9999002544|MR|Test|E|Lead 2544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002545|102545|989898|1|9999002545|MR|Test|E|Lead 2545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002546|102546|989898|1|9999002546|MR|Test|E|Lead 2546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002547|102547|989898|1|9999002547|MR|Test|E|Lead 2547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002548|102548|989898|1|9999002548|MR|Test|E|Lead 2548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002549|102549|989898|1|9999002549|MR|Test|E|Lead 2549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002550|102550|989898|1|9999002550|MR|Test|E|Lead 2550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002551|102551|989898|1|9999002551|MR|Test|E|Lead 2551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002552|102552|989898|1|9999002552|MR|Test|E|Lead 2552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002553|102553|989898|1|9999002553|MR|Test|E|Lead 2553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002554|102554|989898|1|9999002554|MR|Test|E|Lead 2554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002555|102555|989898|1|9999002555|MR|Test|E|Lead 2555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002556|102556|989898|1|9999002556|MR|Test|E|Lead 2556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002557|102557|989898|1|9999002557|MR|Test|E|Lead 2557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002558|102558|989898|1|9999002558|MR|Test|E|Lead 2558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002559|102559|989898|1|9999002559|MR|Test|E|Lead 2559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002560|102560|989898|1|9999002560|MR|Test|E|Lead 2560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002561|102561|989898|1|9999002561|MR|Test|E|Lead 2561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002562|102562|989898|1|9999002562|MR|Test|E|Lead 2562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002563|102563|989898|1|9999002563|MR|Test|E|Lead 2563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002564|102564|989898|1|9999002564|MR|Test|E|Lead 2564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002565|102565|989898|1|9999002565|MR|Test|E|Lead 2565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002566|102566|989898|1|9999002566|MR|Test|E|Lead 2566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002567|102567|989898|1|9999002567|MR|Test|E|Lead 2567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002568|102568|989898|1|9999002568|MR|Test|E|Lead 2568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002569|102569|989898|1|9999002569|MR|Test|E|Lead 2569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002570|102570|989898|1|9999002570|MR|Test|E|Lead 2570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002571|102571|989898|1|9999002571|MR|Test|E|Lead 2571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002572|102572|989898|1|9999002572|MR|Test|E|Lead 2572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002573|102573|989898|1|9999002573|MR|Test|E|Lead 2573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002574|102574|989898|1|9999002574|MR|Test|E|Lead 2574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002575|102575|989898|1|9999002575|MR|Test|E|Lead 2575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002576|102576|989898|1|9999002576|MR|Test|E|Lead 2576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002577|102577|989898|1|9999002577|MR|Test|E|Lead 2577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002578|102578|989898|1|9999002578|MR|Test|E|Lead 2578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002579|102579|989898|1|9999002579|MR|Test|E|Lead 2579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002580|102580|989898|1|9999002580|MR|Test|E|Lead 2580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002581|102581|989898|1|9999002581|MR|Test|E|Lead 2581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002582|102582|989898|1|9999002582|MR|Test|E|Lead 2582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002583|102583|989898|1|9999002583|MR|Test|E|Lead 2583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002584|102584|989898|1|9999002584|MR|Test|E|Lead 2584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002585|102585|989898|1|9999002585|MR|Test|E|Lead 2585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002586|102586|989898|1|9999002586|MR|Test|E|Lead 2586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002587|102587|989898|1|9999002587|MR|Test|E|Lead 2587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002588|102588|989898|1|9999002588|MR|Test|E|Lead 2588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002589|102589|989898|1|9999002589|MR|Test|E|Lead 2589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002590|102590|989898|1|9999002590|MR|Test|E|Lead 2590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002591|102591|989898|1|9999002591|MR|Test|E|Lead 2591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002592|102592|989898|1|9999002592|MR|Test|E|Lead 2592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002593|102593|989898|1|9999002593|MR|Test|E|Lead 2593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002594|102594|989898|1|9999002594|MR|Test|E|Lead 2594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002595|102595|989898|1|9999002595|MR|Test|E|Lead 2595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002596|102596|989898|1|9999002596|MR|Test|E|Lead 2596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002597|102597|989898|1|9999002597|MR|Test|E|Lead 2597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002598|102598|989898|1|9999002598|MR|Test|E|Lead 2598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002599|102599|989898|1|9999002599|MR|Test|E|Lead 2599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002600|102600|989898|1|9999002600|MR|Test|E|Lead 2600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002601|102601|989898|1|9999002601|MR|Test|E|Lead 2601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002602|102602|989898|1|9999002602|MR|Test|E|Lead 2602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002603|102603|989898|1|9999002603|MR|Test|E|Lead 2603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002604|102604|989898|1|9999002604|MR|Test|E|Lead 2604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002605|102605|989898|1|9999002605|MR|Test|E|Lead 2605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002606|102606|989898|1|9999002606|MR|Test|E|Lead 2606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002607|102607|989898|1|9999002607|MR|Test|E|Lead 2607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002608|102608|989898|1|9999002608|MR|Test|E|Lead 2608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002609|102609|989898|1|9999002609|MR|Test|E|Lead 2609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002610|102610|989898|1|9999002610|MR|Test|E|Lead 2610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002611|102611|989898|1|9999002611|MR|Test|E|Lead 2611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002612|102612|989898|1|9999002612|MR|Test|E|Lead 2612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002613|102613|989898|1|9999002613|MR|Test|E|Lead 2613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002614|102614|989898|1|9999002614|MR|Test|E|Lead 2614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002615|102615|989898|1|9999002615|MR|Test|E|Lead 2615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002616|102616|989898|1|9999002616|MR|Test|E|Lead 2616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002617|102617|989898|1|9999002617|MR|Test|E|Lead 2617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002618|102618|989898|1|9999002618|MR|Test|E|Lead 2618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002619|102619|989898|1|9999002619|MR|Test|E|Lead 2619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002620|102620|989898|1|9999002620|MR|Test|E|Lead 2620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002621|102621|989898|1|9999002621|MR|Test|E|Lead 2621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002622|102622|989898|1|9999002622|MR|Test|E|Lead 2622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002623|102623|989898|1|9999002623|MR|Test|E|Lead 2623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002624|102624|989898|1|9999002624|MR|Test|E|Lead 2624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002625|102625|989898|1|9999002625|MR|Test|E|Lead 2625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002626|102626|989898|1|9999002626|MR|Test|E|Lead 2626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002627|102627|989898|1|9999002627|MR|Test|E|Lead 2627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002628|102628|989898|1|9999002628|MR|Test|E|Lead 2628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002629|102629|989898|1|9999002629|MR|Test|E|Lead 2629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002630|102630|989898|1|9999002630|MR|Test|E|Lead 2630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002631|102631|989898|1|9999002631|MR|Test|E|Lead 2631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002632|102632|989898|1|9999002632|MR|Test|E|Lead 2632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002633|102633|989898|1|9999002633|MR|Test|E|Lead 2633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002634|102634|989898|1|9999002634|MR|Test|E|Lead 2634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002635|102635|989898|1|9999002635|MR|Test|E|Lead 2635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002636|102636|989898|1|9999002636|MR|Test|E|Lead 2636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002637|102637|989898|1|9999002637|MR|Test|E|Lead 2637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002638|102638|989898|1|9999002638|MR|Test|E|Lead 2638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002639|102639|989898|1|9999002639|MR|Test|E|Lead 2639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002640|102640|989898|1|9999002640|MR|Test|E|Lead 2640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002641|102641|989898|1|9999002641|MR|Test|E|Lead 2641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002642|102642|989898|1|9999002642|MR|Test|E|Lead 2642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002643|102643|989898|1|9999002643|MR|Test|E|Lead 2643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002644|102644|989898|1|9999002644|MR|Test|E|Lead 2644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002645|102645|989898|1|9999002645|MR|Test|E|Lead 2645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002646|102646|989898|1|9999002646|MR|Test|E|Lead 2646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002647|102647|989898|1|9999002647|MR|Test|E|Lead 2647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002648|102648|989898|1|9999002648|MR|Test|E|Lead 2648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002649|102649|989898|1|9999002649|MR|Test|E|Lead 2649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002650|102650|989898|1|9999002650|MR|Test|E|Lead 2650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002651|102651|989898|1|9999002651|MR|Test|E|Lead 2651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002652|102652|989898|1|9999002652|MR|Test|E|Lead 2652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002653|102653|989898|1|9999002653|MR|Test|E|Lead 2653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002654|102654|989898|1|9999002654|MR|Test|E|Lead 2654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002655|102655|989898|1|9999002655|MR|Test|E|Lead 2655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002656|102656|989898|1|9999002656|MR|Test|E|Lead 2656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002657|102657|989898|1|9999002657|MR|Test|E|Lead 2657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002658|102658|989898|1|9999002658|MR|Test|E|Lead 2658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002659|102659|989898|1|9999002659|MR|Test|E|Lead 2659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002660|102660|989898|1|9999002660|MR|Test|E|Lead 2660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002661|102661|989898|1|9999002661|MR|Test|E|Lead 2661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002662|102662|989898|1|9999002662|MR|Test|E|Lead 2662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002663|102663|989898|1|9999002663|MR|Test|E|Lead 2663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002664|102664|989898|1|9999002664|MR|Test|E|Lead 2664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002665|102665|989898|1|9999002665|MR|Test|E|Lead 2665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002666|102666|989898|1|9999002666|MR|Test|E|Lead 2666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002667|102667|989898|1|9999002667|MR|Test|E|Lead 2667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002668|102668|989898|1|9999002668|MR|Test|E|Lead 2668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002669|102669|989898|1|9999002669|MR|Test|E|Lead 2669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002670|102670|989898|1|9999002670|MR|Test|E|Lead 2670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002671|102671|989898|1|9999002671|MR|Test|E|Lead 2671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002672|102672|989898|1|9999002672|MR|Test|E|Lead 2672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002673|102673|989898|1|9999002673|MR|Test|E|Lead 2673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002674|102674|989898|1|9999002674|MR|Test|E|Lead 2674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002675|102675|989898|1|9999002675|MR|Test|E|Lead 2675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002676|102676|989898|1|9999002676|MR|Test|E|Lead 2676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002677|102677|989898|1|9999002677|MR|Test|E|Lead 2677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002678|102678|989898|1|9999002678|MR|Test|E|Lead 2678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002679|102679|989898|1|9999002679|MR|Test|E|Lead 2679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002680|102680|989898|1|9999002680|MR|Test|E|Lead 2680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002681|102681|989898|1|9999002681|MR|Test|E|Lead 2681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002682|102682|989898|1|9999002682|MR|Test|E|Lead 2682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002683|102683|989898|1|9999002683|MR|Test|E|Lead 2683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002684|102684|989898|1|9999002684|MR|Test|E|Lead 2684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002685|102685|989898|1|9999002685|MR|Test|E|Lead 2685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002686|102686|989898|1|9999002686|MR|Test|E|Lead 2686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002687|102687|989898|1|9999002687|MR|Test|E|Lead 2687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002688|102688|989898|1|9999002688|MR|Test|E|Lead 2688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002689|102689|989898|1|9999002689|MR|Test|E|Lead 2689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002690|102690|989898|1|9999002690|MR|Test|E|Lead 2690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002691|102691|989898|1|9999002691|MR|Test|E|Lead 2691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002692|102692|989898|1|9999002692|MR|Test|E|Lead 2692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002693|102693|989898|1|9999002693|MR|Test|E|Lead 2693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002694|102694|989898|1|9999002694|MR|Test|E|Lead 2694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002695|102695|989898|1|9999002695|MR|Test|E|Lead 2695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002696|102696|989898|1|9999002696|MR|Test|E|Lead 2696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002697|102697|989898|1|9999002697|MR|Test|E|Lead 2697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002698|102698|989898|1|9999002698|MR|Test|E|Lead 2698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002699|102699|989898|1|9999002699|MR|Test|E|Lead 2699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002700|102700|989898|1|9999002700|MR|Test|E|Lead 2700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002701|102701|989898|1|9999002701|MR|Test|E|Lead 2701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002702|102702|989898|1|9999002702|MR|Test|E|Lead 2702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002703|102703|989898|1|9999002703|MR|Test|E|Lead 2703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002704|102704|989898|1|9999002704|MR|Test|E|Lead 2704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002705|102705|989898|1|9999002705|MR|Test|E|Lead 2705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002706|102706|989898|1|9999002706|MR|Test|E|Lead 2706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002707|102707|989898|1|9999002707|MR|Test|E|Lead 2707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002708|102708|989898|1|9999002708|MR|Test|E|Lead 2708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002709|102709|989898|1|9999002709|MR|Test|E|Lead 2709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002710|102710|989898|1|9999002710|MR|Test|E|Lead 2710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002711|102711|989898|1|9999002711|MR|Test|E|Lead 2711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002712|102712|989898|1|9999002712|MR|Test|E|Lead 2712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002713|102713|989898|1|9999002713|MR|Test|E|Lead 2713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002714|102714|989898|1|9999002714|MR|Test|E|Lead 2714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002715|102715|989898|1|9999002715|MR|Test|E|Lead 2715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002716|102716|989898|1|9999002716|MR|Test|E|Lead 2716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002717|102717|989898|1|9999002717|MR|Test|E|Lead 2717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002718|102718|989898|1|9999002718|MR|Test|E|Lead 2718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002719|102719|989898|1|9999002719|MR|Test|E|Lead 2719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002720|102720|989898|1|9999002720|MR|Test|E|Lead 2720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002721|102721|989898|1|9999002721|MR|Test|E|Lead 2721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002722|102722|989898|1|9999002722|MR|Test|E|Lead 2722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002723|102723|989898|1|9999002723|MR|Test|E|Lead 2723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002724|102724|989898|1|9999002724|MR|Test|E|Lead 2724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002725|102725|989898|1|9999002725|MR|Test|E|Lead 2725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002726|102726|989898|1|9999002726|MR|Test|E|Lead 2726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002727|102727|989898|1|9999002727|MR|Test|E|Lead 2727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002728|102728|989898|1|9999002728|MR|Test|E|Lead 2728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002729|102729|989898|1|9999002729|MR|Test|E|Lead 2729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002730|102730|989898|1|9999002730|MR|Test|E|Lead 2730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002731|102731|989898|1|9999002731|MR|Test|E|Lead 2731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002732|102732|989898|1|9999002732|MR|Test|E|Lead 2732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002733|102733|989898|1|9999002733|MR|Test|E|Lead 2733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002734|102734|989898|1|9999002734|MR|Test|E|Lead 2734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002735|102735|989898|1|9999002735|MR|Test|E|Lead 2735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002736|102736|989898|1|9999002736|MR|Test|E|Lead 2736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002737|102737|989898|1|9999002737|MR|Test|E|Lead 2737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002738|102738|989898|1|9999002738|MR|Test|E|Lead 2738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002739|102739|989898|1|9999002739|MR|Test|E|Lead 2739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002740|102740|989898|1|9999002740|MR|Test|E|Lead 2740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002741|102741|989898|1|9999002741|MR|Test|E|Lead 2741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002742|102742|989898|1|9999002742|MR|Test|E|Lead 2742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002743|102743|989898|1|9999002743|MR|Test|E|Lead 2743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002744|102744|989898|1|9999002744|MR|Test|E|Lead 2744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002745|102745|989898|1|9999002745|MR|Test|E|Lead 2745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002746|102746|989898|1|9999002746|MR|Test|E|Lead 2746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002747|102747|989898|1|9999002747|MR|Test|E|Lead 2747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002748|102748|989898|1|9999002748|MR|Test|E|Lead 2748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002749|102749|989898|1|9999002749|MR|Test|E|Lead 2749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002750|102750|989898|1|9999002750|MR|Test|E|Lead 2750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002751|102751|989898|1|9999002751|MR|Test|E|Lead 2751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002752|102752|989898|1|9999002752|MR|Test|E|Lead 2752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002753|102753|989898|1|9999002753|MR|Test|E|Lead 2753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002754|102754|989898|1|9999002754|MR|Test|E|Lead 2754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002755|102755|989898|1|9999002755|MR|Test|E|Lead 2755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002756|102756|989898|1|9999002756|MR|Test|E|Lead 2756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002757|102757|989898|1|9999002757|MR|Test|E|Lead 2757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002758|102758|989898|1|9999002758|MR|Test|E|Lead 2758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002759|102759|989898|1|9999002759|MR|Test|E|Lead 2759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002760|102760|989898|1|9999002760|MR|Test|E|Lead 2760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002761|102761|989898|1|9999002761|MR|Test|E|Lead 2761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002762|102762|989898|1|9999002762|MR|Test|E|Lead 2762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002763|102763|989898|1|9999002763|MR|Test|E|Lead 2763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002764|102764|989898|1|9999002764|MR|Test|E|Lead 2764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002765|102765|989898|1|9999002765|MR|Test|E|Lead 2765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002766|102766|989898|1|9999002766|MR|Test|E|Lead 2766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002767|102767|989898|1|9999002767|MR|Test|E|Lead 2767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002768|102768|989898|1|9999002768|MR|Test|E|Lead 2768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002769|102769|989898|1|9999002769|MR|Test|E|Lead 2769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002770|102770|989898|1|9999002770|MR|Test|E|Lead 2770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002771|102771|989898|1|9999002771|MR|Test|E|Lead 2771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002772|102772|989898|1|9999002772|MR|Test|E|Lead 2772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002773|102773|989898|1|9999002773|MR|Test|E|Lead 2773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002774|102774|989898|1|9999002774|MR|Test|E|Lead 2774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002775|102775|989898|1|9999002775|MR|Test|E|Lead 2775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002776|102776|989898|1|9999002776|MR|Test|E|Lead 2776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002777|102777|989898|1|9999002777|MR|Test|E|Lead 2777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002778|102778|989898|1|9999002778|MR|Test|E|Lead 2778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002779|102779|989898|1|9999002779|MR|Test|E|Lead 2779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002780|102780|989898|1|9999002780|MR|Test|E|Lead 2780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002781|102781|989898|1|9999002781|MR|Test|E|Lead 2781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002782|102782|989898|1|9999002782|MR|Test|E|Lead 2782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002783|102783|989898|1|9999002783|MR|Test|E|Lead 2783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002784|102784|989898|1|9999002784|MR|Test|E|Lead 2784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002785|102785|989898|1|9999002785|MR|Test|E|Lead 2785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002786|102786|989898|1|9999002786|MR|Test|E|Lead 2786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002787|102787|989898|1|9999002787|MR|Test|E|Lead 2787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002788|102788|989898|1|9999002788|MR|Test|E|Lead 2788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002789|102789|989898|1|9999002789|MR|Test|E|Lead 2789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002790|102790|989898|1|9999002790|MR|Test|E|Lead 2790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002791|102791|989898|1|9999002791|MR|Test|E|Lead 2791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002792|102792|989898|1|9999002792|MR|Test|E|Lead 2792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002793|102793|989898|1|9999002793|MR|Test|E|Lead 2793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002794|102794|989898|1|9999002794|MR|Test|E|Lead 2794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002795|102795|989898|1|9999002795|MR|Test|E|Lead 2795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002796|102796|989898|1|9999002796|MR|Test|E|Lead 2796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002797|102797|989898|1|9999002797|MR|Test|E|Lead 2797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002798|102798|989898|1|9999002798|MR|Test|E|Lead 2798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002799|102799|989898|1|9999002799|MR|Test|E|Lead 2799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002800|102800|989898|1|9999002800|MR|Test|E|Lead 2800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002801|102801|989898|1|9999002801|MR|Test|E|Lead 2801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002802|102802|989898|1|9999002802|MR|Test|E|Lead 2802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002803|102803|989898|1|9999002803|MR|Test|E|Lead 2803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002804|102804|989898|1|9999002804|MR|Test|E|Lead 2804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002805|102805|989898|1|9999002805|MR|Test|E|Lead 2805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002806|102806|989898|1|9999002806|MR|Test|E|Lead 2806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002807|102807|989898|1|9999002807|MR|Test|E|Lead 2807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002808|102808|989898|1|9999002808|MR|Test|E|Lead 2808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002809|102809|989898|1|9999002809|MR|Test|E|Lead 2809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002810|102810|989898|1|9999002810|MR|Test|E|Lead 2810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002811|102811|989898|1|9999002811|MR|Test|E|Lead 2811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002812|102812|989898|1|9999002812|MR|Test|E|Lead 2812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002813|102813|989898|1|9999002813|MR|Test|E|Lead 2813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002814|102814|989898|1|9999002814|MR|Test|E|Lead 2814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002815|102815|989898|1|9999002815|MR|Test|E|Lead 2815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002816|102816|989898|1|9999002816|MR|Test|E|Lead 2816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002817|102817|989898|1|9999002817|MR|Test|E|Lead 2817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002818|102818|989898|1|9999002818|MR|Test|E|Lead 2818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002819|102819|989898|1|9999002819|MR|Test|E|Lead 2819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002820|102820|989898|1|9999002820|MR|Test|E|Lead 2820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002821|102821|989898|1|9999002821|MR|Test|E|Lead 2821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002822|102822|989898|1|9999002822|MR|Test|E|Lead 2822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002823|102823|989898|1|9999002823|MR|Test|E|Lead 2823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002824|102824|989898|1|9999002824|MR|Test|E|Lead 2824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002825|102825|989898|1|9999002825|MR|Test|E|Lead 2825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002826|102826|989898|1|9999002826|MR|Test|E|Lead 2826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002827|102827|989898|1|9999002827|MR|Test|E|Lead 2827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002828|102828|989898|1|9999002828|MR|Test|E|Lead 2828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002829|102829|989898|1|9999002829|MR|Test|E|Lead 2829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002830|102830|989898|1|9999002830|MR|Test|E|Lead 2830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002831|102831|989898|1|9999002831|MR|Test|E|Lead 2831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002832|102832|989898|1|9999002832|MR|Test|E|Lead 2832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002833|102833|989898|1|9999002833|MR|Test|E|Lead 2833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002834|102834|989898|1|9999002834|MR|Test|E|Lead 2834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002835|102835|989898|1|9999002835|MR|Test|E|Lead 2835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002836|102836|989898|1|9999002836|MR|Test|E|Lead 2836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002837|102837|989898|1|9999002837|MR|Test|E|Lead 2837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002838|102838|989898|1|9999002838|MR|Test|E|Lead 2838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002839|102839|989898|1|9999002839|MR|Test|E|Lead 2839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002840|102840|989898|1|9999002840|MR|Test|E|Lead 2840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002841|102841|989898|1|9999002841|MR|Test|E|Lead 2841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002842|102842|989898|1|9999002842|MR|Test|E|Lead 2842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002843|102843|989898|1|9999002843|MR|Test|E|Lead 2843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002844|102844|989898|1|9999002844|MR|Test|E|Lead 2844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002845|102845|989898|1|9999002845|MR|Test|E|Lead 2845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002846|102846|989898|1|9999002846|MR|Test|E|Lead 2846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002847|102847|989898|1|9999002847|MR|Test|E|Lead 2847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002848|102848|989898|1|9999002848|MR|Test|E|Lead 2848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002849|102849|989898|1|9999002849|MR|Test|E|Lead 2849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002850|102850|989898|1|9999002850|MR|Test|E|Lead 2850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002851|102851|989898|1|9999002851|MR|Test|E|Lead 2851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002852|102852|989898|1|9999002852|MR|Test|E|Lead 2852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002853|102853|989898|1|9999002853|MR|Test|E|Lead 2853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002854|102854|989898|1|9999002854|MR|Test|E|Lead 2854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002855|102855|989898|1|9999002855|MR|Test|E|Lead 2855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002856|102856|989898|1|9999002856|MR|Test|E|Lead 2856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002857|102857|989898|1|9999002857|MR|Test|E|Lead 2857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002858|102858|989898|1|9999002858|MR|Test|E|Lead 2858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002859|102859|989898|1|9999002859|MR|Test|E|Lead 2859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002860|102860|989898|1|9999002860|MR|Test|E|Lead 2860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002861|102861|989898|1|9999002861|MR|Test|E|Lead 2861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002862|102862|989898|1|9999002862|MR|Test|E|Lead 2862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002863|102863|989898|1|9999002863|MR|Test|E|Lead 2863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002864|102864|989898|1|9999002864|MR|Test|E|Lead 2864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002865|102865|989898|1|9999002865|MR|Test|E|Lead 2865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002866|102866|989898|1|9999002866|MR|Test|E|Lead 2866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002867|102867|989898|1|9999002867|MR|Test|E|Lead 2867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002868|102868|989898|1|9999002868|MR|Test|E|Lead 2868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002869|102869|989898|1|9999002869|MR|Test|E|Lead 2869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002870|102870|989898|1|9999002870|MR|Test|E|Lead 2870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002871|102871|989898|1|9999002871|MR|Test|E|Lead 2871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002872|102872|989898|1|9999002872|MR|Test|E|Lead 2872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002873|102873|989898|1|9999002873|MR|Test|E|Lead 2873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002874|102874|989898|1|9999002874|MR|Test|E|Lead 2874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002875|102875|989898|1|9999002875|MR|Test|E|Lead 2875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002876|102876|989898|1|9999002876|MR|Test|E|Lead 2876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002877|102877|989898|1|9999002877|MR|Test|E|Lead 2877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002878|102878|989898|1|9999002878|MR|Test|E|Lead 2878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002879|102879|989898|1|9999002879|MR|Test|E|Lead 2879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002880|102880|989898|1|9999002880|MR|Test|E|Lead 2880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002881|102881|989898|1|9999002881|MR|Test|E|Lead 2881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002882|102882|989898|1|9999002882|MR|Test|E|Lead 2882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002883|102883|989898|1|9999002883|MR|Test|E|Lead 2883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002884|102884|989898|1|9999002884|MR|Test|E|Lead 2884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002885|102885|989898|1|9999002885|MR|Test|E|Lead 2885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002886|102886|989898|1|9999002886|MR|Test|E|Lead 2886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002887|102887|989898|1|9999002887|MR|Test|E|Lead 2887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002888|102888|989898|1|9999002888|MR|Test|E|Lead 2888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002889|102889|989898|1|9999002889|MR|Test|E|Lead 2889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002890|102890|989898|1|9999002890|MR|Test|E|Lead 2890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002891|102891|989898|1|9999002891|MR|Test|E|Lead 2891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002892|102892|989898|1|9999002892|MR|Test|E|Lead 2892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002893|102893|989898|1|9999002893|MR|Test|E|Lead 2893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002894|102894|989898|1|9999002894|MR|Test|E|Lead 2894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002895|102895|989898|1|9999002895|MR|Test|E|Lead 2895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002896|102896|989898|1|9999002896|MR|Test|E|Lead 2896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002897|102897|989898|1|9999002897|MR|Test|E|Lead 2897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002898|102898|989898|1|9999002898|MR|Test|E|Lead 2898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002899|102899|989898|1|9999002899|MR|Test|E|Lead 2899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002900|102900|989898|1|9999002900|MR|Test|E|Lead 2900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002901|102901|989898|1|9999002901|MR|Test|E|Lead 2901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002902|102902|989898|1|9999002902|MR|Test|E|Lead 2902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002903|102903|989898|1|9999002903|MR|Test|E|Lead 2903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002904|102904|989898|1|9999002904|MR|Test|E|Lead 2904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002905|102905|989898|1|9999002905|MR|Test|E|Lead 2905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002906|102906|989898|1|9999002906|MR|Test|E|Lead 2906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002907|102907|989898|1|9999002907|MR|Test|E|Lead 2907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002908|102908|989898|1|9999002908|MR|Test|E|Lead 2908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002909|102909|989898|1|9999002909|MR|Test|E|Lead 2909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002910|102910|989898|1|9999002910|MR|Test|E|Lead 2910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002911|102911|989898|1|9999002911|MR|Test|E|Lead 2911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002912|102912|989898|1|9999002912|MR|Test|E|Lead 2912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002913|102913|989898|1|9999002913|MR|Test|E|Lead 2913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002914|102914|989898|1|9999002914|MR|Test|E|Lead 2914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002915|102915|989898|1|9999002915|MR|Test|E|Lead 2915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002916|102916|989898|1|9999002916|MR|Test|E|Lead 2916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002917|102917|989898|1|9999002917|MR|Test|E|Lead 2917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002918|102918|989898|1|9999002918|MR|Test|E|Lead 2918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002919|102919|989898|1|9999002919|MR|Test|E|Lead 2919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002920|102920|989898|1|9999002920|MR|Test|E|Lead 2920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002921|102921|989898|1|9999002921|MR|Test|E|Lead 2921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002922|102922|989898|1|9999002922|MR|Test|E|Lead 2922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002923|102923|989898|1|9999002923|MR|Test|E|Lead 2923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002924|102924|989898|1|9999002924|MR|Test|E|Lead 2924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002925|102925|989898|1|9999002925|MR|Test|E|Lead 2925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002926|102926|989898|1|9999002926|MR|Test|E|Lead 2926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002927|102927|989898|1|9999002927|MR|Test|E|Lead 2927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002928|102928|989898|1|9999002928|MR|Test|E|Lead 2928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002929|102929|989898|1|9999002929|MR|Test|E|Lead 2929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002930|102930|989898|1|9999002930|MR|Test|E|Lead 2930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002931|102931|989898|1|9999002931|MR|Test|E|Lead 2931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002932|102932|989898|1|9999002932|MR|Test|E|Lead 2932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002933|102933|989898|1|9999002933|MR|Test|E|Lead 2933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002934|102934|989898|1|9999002934|MR|Test|E|Lead 2934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002935|102935|989898|1|9999002935|MR|Test|E|Lead 2935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002936|102936|989898|1|9999002936|MR|Test|E|Lead 2936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002937|102937|989898|1|9999002937|MR|Test|E|Lead 2937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002938|102938|989898|1|9999002938|MR|Test|E|Lead 2938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002939|102939|989898|1|9999002939|MR|Test|E|Lead 2939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002940|102940|989898|1|9999002940|MR|Test|E|Lead 2940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002941|102941|989898|1|9999002941|MR|Test|E|Lead 2941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002942|102942|989898|1|9999002942|MR|Test|E|Lead 2942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002943|102943|989898|1|9999002943|MR|Test|E|Lead 2943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002944|102944|989898|1|9999002944|MR|Test|E|Lead 2944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002945|102945|989898|1|9999002945|MR|Test|E|Lead 2945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002946|102946|989898|1|9999002946|MR|Test|E|Lead 2946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002947|102947|989898|1|9999002947|MR|Test|E|Lead 2947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002948|102948|989898|1|9999002948|MR|Test|E|Lead 2948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002949|102949|989898|1|9999002949|MR|Test|E|Lead 2949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002950|102950|989898|1|9999002950|MR|Test|E|Lead 2950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002951|102951|989898|1|9999002951|MR|Test|E|Lead 2951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002952|102952|989898|1|9999002952|MR|Test|E|Lead 2952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002953|102953|989898|1|9999002953|MR|Test|E|Lead 2953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002954|102954|989898|1|9999002954|MR|Test|E|Lead 2954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002955|102955|989898|1|9999002955|MR|Test|E|Lead 2955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002956|102956|989898|1|9999002956|MR|Test|E|Lead 2956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002957|102957|989898|1|9999002957|MR|Test|E|Lead 2957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002958|102958|989898|1|9999002958|MR|Test|E|Lead 2958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002959|102959|989898|1|9999002959|MR|Test|E|Lead 2959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002960|102960|989898|1|9999002960|MR|Test|E|Lead 2960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002961|102961|989898|1|9999002961|MR|Test|E|Lead 2961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002962|102962|989898|1|9999002962|MR|Test|E|Lead 2962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002963|102963|989898|1|9999002963|MR|Test|E|Lead 2963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002964|102964|989898|1|9999002964|MR|Test|E|Lead 2964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002965|102965|989898|1|9999002965|MR|Test|E|Lead 2965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002966|102966|989898|1|9999002966|MR|Test|E|Lead 2966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002967|102967|989898|1|9999002967|MR|Test|E|Lead 2967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002968|102968|989898|1|9999002968|MR|Test|E|Lead 2968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002969|102969|989898|1|9999002969|MR|Test|E|Lead 2969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002970|102970|989898|1|9999002970|MR|Test|E|Lead 2970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002971|102971|989898|1|9999002971|MR|Test|E|Lead 2971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002972|102972|989898|1|9999002972|MR|Test|E|Lead 2972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002973|102973|989898|1|9999002973|MR|Test|E|Lead 2973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002974|102974|989898|1|9999002974|MR|Test|E|Lead 2974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002975|102975|989898|1|9999002975|MR|Test|E|Lead 2975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002976|102976|989898|1|9999002976|MR|Test|E|Lead 2976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002977|102977|989898|1|9999002977|MR|Test|E|Lead 2977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002978|102978|989898|1|9999002978|MR|Test|E|Lead 2978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002979|102979|989898|1|9999002979|MR|Test|E|Lead 2979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002980|102980|989898|1|9999002980|MR|Test|E|Lead 2980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002981|102981|989898|1|9999002981|MR|Test|E|Lead 2981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002982|102982|989898|1|9999002982|MR|Test|E|Lead 2982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002983|102983|989898|1|9999002983|MR|Test|E|Lead 2983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002984|102984|989898|1|9999002984|MR|Test|E|Lead 2984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002985|102985|989898|1|9999002985|MR|Test|E|Lead 2985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002986|102986|989898|1|9999002986|MR|Test|E|Lead 2986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002987|102987|989898|1|9999002987|MR|Test|E|Lead 2987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002988|102988|989898|1|9999002988|MR|Test|E|Lead 2988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002989|102989|989898|1|9999002989|MR|Test|E|Lead 2989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002990|102990|989898|1|9999002990|MR|Test|E|Lead 2990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002991|102991|989898|1|9999002991|MR|Test|E|Lead 2991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002992|102992|989898|1|9999002992|MR|Test|E|Lead 2992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002993|102993|989898|1|9999002993|MR|Test|E|Lead 2993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002994|102994|989898|1|9999002994|MR|Test|E|Lead 2994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002995|102995|989898|1|9999002995|MR|Test|E|Lead 2995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002996|102996|989898|1|9999002996|MR|Test|E|Lead 2996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002997|102997|989898|1|9999002997|MR|Test|E|Lead 2997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002998|102998|989898|1|9999002998|MR|Test|E|Lead 2998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1002999|102999|989898|1|9999002999|MR|Test|E|Lead 2999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003000|103000|989898|1|9999003000|MR|Test|E|Lead 3000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003001|103001|989898|1|9999003001|MR|Test|E|Lead 3001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003002|103002|989898|1|9999003002|MR|Test|E|Lead 3002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003003|103003|989898|1|9999003003|MR|Test|E|Lead 3003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003004|103004|989898|1|9999003004|MR|Test|E|Lead 3004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003005|103005|989898|1|9999003005|MR|Test|E|Lead 3005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003006|103006|989898|1|9999003006|MR|Test|E|Lead 3006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003007|103007|989898|1|9999003007|MR|Test|E|Lead 3007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003008|103008|989898|1|9999003008|MR|Test|E|Lead 3008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003009|103009|989898|1|9999003009|MR|Test|E|Lead 3009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003010|103010|989898|1|9999003010|MR|Test|E|Lead 3010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003011|103011|989898|1|9999003011|MR|Test|E|Lead 3011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003012|103012|989898|1|9999003012|MR|Test|E|Lead 3012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003013|103013|989898|1|9999003013|MR|Test|E|Lead 3013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003014|103014|989898|1|9999003014|MR|Test|E|Lead 3014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003015|103015|989898|1|9999003015|MR|Test|E|Lead 3015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003016|103016|989898|1|9999003016|MR|Test|E|Lead 3016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003017|103017|989898|1|9999003017|MR|Test|E|Lead 3017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003018|103018|989898|1|9999003018|MR|Test|E|Lead 3018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003019|103019|989898|1|9999003019|MR|Test|E|Lead 3019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003020|103020|989898|1|9999003020|MR|Test|E|Lead 3020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003021|103021|989898|1|9999003021|MR|Test|E|Lead 3021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003022|103022|989898|1|9999003022|MR|Test|E|Lead 3022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003023|103023|989898|1|9999003023|MR|Test|E|Lead 3023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003024|103024|989898|1|9999003024|MR|Test|E|Lead 3024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003025|103025|989898|1|9999003025|MR|Test|E|Lead 3025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003026|103026|989898|1|9999003026|MR|Test|E|Lead 3026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003027|103027|989898|1|9999003027|MR|Test|E|Lead 3027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003028|103028|989898|1|9999003028|MR|Test|E|Lead 3028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003029|103029|989898|1|9999003029|MR|Test|E|Lead 3029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003030|103030|989898|1|9999003030|MR|Test|E|Lead 3030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003031|103031|989898|1|9999003031|MR|Test|E|Lead 3031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003032|103032|989898|1|9999003032|MR|Test|E|Lead 3032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003033|103033|989898|1|9999003033|MR|Test|E|Lead 3033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003034|103034|989898|1|9999003034|MR|Test|E|Lead 3034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003035|103035|989898|1|9999003035|MR|Test|E|Lead 3035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003036|103036|989898|1|9999003036|MR|Test|E|Lead 3036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003037|103037|989898|1|9999003037|MR|Test|E|Lead 3037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003038|103038|989898|1|9999003038|MR|Test|E|Lead 3038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003039|103039|989898|1|9999003039|MR|Test|E|Lead 3039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003040|103040|989898|1|9999003040|MR|Test|E|Lead 3040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003041|103041|989898|1|9999003041|MR|Test|E|Lead 3041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003042|103042|989898|1|9999003042|MR|Test|E|Lead 3042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003043|103043|989898|1|9999003043|MR|Test|E|Lead 3043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003044|103044|989898|1|9999003044|MR|Test|E|Lead 3044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003045|103045|989898|1|9999003045|MR|Test|E|Lead 3045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003046|103046|989898|1|9999003046|MR|Test|E|Lead 3046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003047|103047|989898|1|9999003047|MR|Test|E|Lead 3047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003048|103048|989898|1|9999003048|MR|Test|E|Lead 3048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003049|103049|989898|1|9999003049|MR|Test|E|Lead 3049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003050|103050|989898|1|9999003050|MR|Test|E|Lead 3050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003051|103051|989898|1|9999003051|MR|Test|E|Lead 3051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003052|103052|989898|1|9999003052|MR|Test|E|Lead 3052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003053|103053|989898|1|9999003053|MR|Test|E|Lead 3053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003054|103054|989898|1|9999003054|MR|Test|E|Lead 3054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003055|103055|989898|1|9999003055|MR|Test|E|Lead 3055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003056|103056|989898|1|9999003056|MR|Test|E|Lead 3056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003057|103057|989898|1|9999003057|MR|Test|E|Lead 3057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003058|103058|989898|1|9999003058|MR|Test|E|Lead 3058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003059|103059|989898|1|9999003059|MR|Test|E|Lead 3059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003060|103060|989898|1|9999003060|MR|Test|E|Lead 3060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003061|103061|989898|1|9999003061|MR|Test|E|Lead 3061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003062|103062|989898|1|9999003062|MR|Test|E|Lead 3062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003063|103063|989898|1|9999003063|MR|Test|E|Lead 3063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003064|103064|989898|1|9999003064|MR|Test|E|Lead 3064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003065|103065|989898|1|9999003065|MR|Test|E|Lead 3065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003066|103066|989898|1|9999003066|MR|Test|E|Lead 3066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003067|103067|989898|1|9999003067|MR|Test|E|Lead 3067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003068|103068|989898|1|9999003068|MR|Test|E|Lead 3068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003069|103069|989898|1|9999003069|MR|Test|E|Lead 3069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003070|103070|989898|1|9999003070|MR|Test|E|Lead 3070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003071|103071|989898|1|9999003071|MR|Test|E|Lead 3071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003072|103072|989898|1|9999003072|MR|Test|E|Lead 3072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003073|103073|989898|1|9999003073|MR|Test|E|Lead 3073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003074|103074|989898|1|9999003074|MR|Test|E|Lead 3074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003075|103075|989898|1|9999003075|MR|Test|E|Lead 3075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003076|103076|989898|1|9999003076|MR|Test|E|Lead 3076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003077|103077|989898|1|9999003077|MR|Test|E|Lead 3077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003078|103078|989898|1|9999003078|MR|Test|E|Lead 3078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003079|103079|989898|1|9999003079|MR|Test|E|Lead 3079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003080|103080|989898|1|9999003080|MR|Test|E|Lead 3080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003081|103081|989898|1|9999003081|MR|Test|E|Lead 3081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003082|103082|989898|1|9999003082|MR|Test|E|Lead 3082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003083|103083|989898|1|9999003083|MR|Test|E|Lead 3083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003084|103084|989898|1|9999003084|MR|Test|E|Lead 3084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003085|103085|989898|1|9999003085|MR|Test|E|Lead 3085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003086|103086|989898|1|9999003086|MR|Test|E|Lead 3086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003087|103087|989898|1|9999003087|MR|Test|E|Lead 3087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003088|103088|989898|1|9999003088|MR|Test|E|Lead 3088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003089|103089|989898|1|9999003089|MR|Test|E|Lead 3089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003090|103090|989898|1|9999003090|MR|Test|E|Lead 3090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003091|103091|989898|1|9999003091|MR|Test|E|Lead 3091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003092|103092|989898|1|9999003092|MR|Test|E|Lead 3092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003093|103093|989898|1|9999003093|MR|Test|E|Lead 3093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003094|103094|989898|1|9999003094|MR|Test|E|Lead 3094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003095|103095|989898|1|9999003095|MR|Test|E|Lead 3095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003096|103096|989898|1|9999003096|MR|Test|E|Lead 3096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003097|103097|989898|1|9999003097|MR|Test|E|Lead 3097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003098|103098|989898|1|9999003098|MR|Test|E|Lead 3098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003099|103099|989898|1|9999003099|MR|Test|E|Lead 3099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003100|103100|989898|1|9999003100|MR|Test|E|Lead 3100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003101|103101|989898|1|9999003101|MR|Test|E|Lead 3101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003102|103102|989898|1|9999003102|MR|Test|E|Lead 3102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003103|103103|989898|1|9999003103|MR|Test|E|Lead 3103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003104|103104|989898|1|9999003104|MR|Test|E|Lead 3104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003105|103105|989898|1|9999003105|MR|Test|E|Lead 3105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003106|103106|989898|1|9999003106|MR|Test|E|Lead 3106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003107|103107|989898|1|9999003107|MR|Test|E|Lead 3107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003108|103108|989898|1|9999003108|MR|Test|E|Lead 3108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003109|103109|989898|1|9999003109|MR|Test|E|Lead 3109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003110|103110|989898|1|9999003110|MR|Test|E|Lead 3110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003111|103111|989898|1|9999003111|MR|Test|E|Lead 3111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003112|103112|989898|1|9999003112|MR|Test|E|Lead 3112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003113|103113|989898|1|9999003113|MR|Test|E|Lead 3113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003114|103114|989898|1|9999003114|MR|Test|E|Lead 3114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003115|103115|989898|1|9999003115|MR|Test|E|Lead 3115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003116|103116|989898|1|9999003116|MR|Test|E|Lead 3116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003117|103117|989898|1|9999003117|MR|Test|E|Lead 3117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003118|103118|989898|1|9999003118|MR|Test|E|Lead 3118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003119|103119|989898|1|9999003119|MR|Test|E|Lead 3119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003120|103120|989898|1|9999003120|MR|Test|E|Lead 3120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003121|103121|989898|1|9999003121|MR|Test|E|Lead 3121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003122|103122|989898|1|9999003122|MR|Test|E|Lead 3122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003123|103123|989898|1|9999003123|MR|Test|E|Lead 3123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003124|103124|989898|1|9999003124|MR|Test|E|Lead 3124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003125|103125|989898|1|9999003125|MR|Test|E|Lead 3125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003126|103126|989898|1|9999003126|MR|Test|E|Lead 3126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003127|103127|989898|1|9999003127|MR|Test|E|Lead 3127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003128|103128|989898|1|9999003128|MR|Test|E|Lead 3128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003129|103129|989898|1|9999003129|MR|Test|E|Lead 3129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003130|103130|989898|1|9999003130|MR|Test|E|Lead 3130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003131|103131|989898|1|9999003131|MR|Test|E|Lead 3131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003132|103132|989898|1|9999003132|MR|Test|E|Lead 3132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003133|103133|989898|1|9999003133|MR|Test|E|Lead 3133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003134|103134|989898|1|9999003134|MR|Test|E|Lead 3134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003135|103135|989898|1|9999003135|MR|Test|E|Lead 3135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003136|103136|989898|1|9999003136|MR|Test|E|Lead 3136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003137|103137|989898|1|9999003137|MR|Test|E|Lead 3137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003138|103138|989898|1|9999003138|MR|Test|E|Lead 3138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003139|103139|989898|1|9999003139|MR|Test|E|Lead 3139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003140|103140|989898|1|9999003140|MR|Test|E|Lead 3140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003141|103141|989898|1|9999003141|MR|Test|E|Lead 3141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003142|103142|989898|1|9999003142|MR|Test|E|Lead 3142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003143|103143|989898|1|9999003143|MR|Test|E|Lead 3143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003144|103144|989898|1|9999003144|MR|Test|E|Lead 3144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003145|103145|989898|1|9999003145|MR|Test|E|Lead 3145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003146|103146|989898|1|9999003146|MR|Test|E|Lead 3146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003147|103147|989898|1|9999003147|MR|Test|E|Lead 3147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003148|103148|989898|1|9999003148|MR|Test|E|Lead 3148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003149|103149|989898|1|9999003149|MR|Test|E|Lead 3149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003150|103150|989898|1|9999003150|MR|Test|E|Lead 3150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003151|103151|989898|1|9999003151|MR|Test|E|Lead 3151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003152|103152|989898|1|9999003152|MR|Test|E|Lead 3152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003153|103153|989898|1|9999003153|MR|Test|E|Lead 3153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003154|103154|989898|1|9999003154|MR|Test|E|Lead 3154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003155|103155|989898|1|9999003155|MR|Test|E|Lead 3155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003156|103156|989898|1|9999003156|MR|Test|E|Lead 3156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003157|103157|989898|1|9999003157|MR|Test|E|Lead 3157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003158|103158|989898|1|9999003158|MR|Test|E|Lead 3158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003159|103159|989898|1|9999003159|MR|Test|E|Lead 3159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003160|103160|989898|1|9999003160|MR|Test|E|Lead 3160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003161|103161|989898|1|9999003161|MR|Test|E|Lead 3161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003162|103162|989898|1|9999003162|MR|Test|E|Lead 3162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003163|103163|989898|1|9999003163|MR|Test|E|Lead 3163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003164|103164|989898|1|9999003164|MR|Test|E|Lead 3164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003165|103165|989898|1|9999003165|MR|Test|E|Lead 3165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003166|103166|989898|1|9999003166|MR|Test|E|Lead 3166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003167|103167|989898|1|9999003167|MR|Test|E|Lead 3167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003168|103168|989898|1|9999003168|MR|Test|E|Lead 3168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003169|103169|989898|1|9999003169|MR|Test|E|Lead 3169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003170|103170|989898|1|9999003170|MR|Test|E|Lead 3170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003171|103171|989898|1|9999003171|MR|Test|E|Lead 3171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003172|103172|989898|1|9999003172|MR|Test|E|Lead 3172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003173|103173|989898|1|9999003173|MR|Test|E|Lead 3173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003174|103174|989898|1|9999003174|MR|Test|E|Lead 3174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003175|103175|989898|1|9999003175|MR|Test|E|Lead 3175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003176|103176|989898|1|9999003176|MR|Test|E|Lead 3176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003177|103177|989898|1|9999003177|MR|Test|E|Lead 3177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003178|103178|989898|1|9999003178|MR|Test|E|Lead 3178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003179|103179|989898|1|9999003179|MR|Test|E|Lead 3179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003180|103180|989898|1|9999003180|MR|Test|E|Lead 3180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003181|103181|989898|1|9999003181|MR|Test|E|Lead 3181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003182|103182|989898|1|9999003182|MR|Test|E|Lead 3182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003183|103183|989898|1|9999003183|MR|Test|E|Lead 3183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003184|103184|989898|1|9999003184|MR|Test|E|Lead 3184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003185|103185|989898|1|9999003185|MR|Test|E|Lead 3185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003186|103186|989898|1|9999003186|MR|Test|E|Lead 3186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003187|103187|989898|1|9999003187|MR|Test|E|Lead 3187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003188|103188|989898|1|9999003188|MR|Test|E|Lead 3188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003189|103189|989898|1|9999003189|MR|Test|E|Lead 3189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003190|103190|989898|1|9999003190|MR|Test|E|Lead 3190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003191|103191|989898|1|9999003191|MR|Test|E|Lead 3191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003192|103192|989898|1|9999003192|MR|Test|E|Lead 3192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003193|103193|989898|1|9999003193|MR|Test|E|Lead 3193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003194|103194|989898|1|9999003194|MR|Test|E|Lead 3194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003195|103195|989898|1|9999003195|MR|Test|E|Lead 3195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003196|103196|989898|1|9999003196|MR|Test|E|Lead 3196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003197|103197|989898|1|9999003197|MR|Test|E|Lead 3197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003198|103198|989898|1|9999003198|MR|Test|E|Lead 3198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003199|103199|989898|1|9999003199|MR|Test|E|Lead 3199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003200|103200|989898|1|9999003200|MR|Test|E|Lead 3200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003201|103201|989898|1|9999003201|MR|Test|E|Lead 3201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003202|103202|989898|1|9999003202|MR|Test|E|Lead 3202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003203|103203|989898|1|9999003203|MR|Test|E|Lead 3203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003204|103204|989898|1|9999003204|MR|Test|E|Lead 3204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003205|103205|989898|1|9999003205|MR|Test|E|Lead 3205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003206|103206|989898|1|9999003206|MR|Test|E|Lead 3206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003207|103207|989898|1|9999003207|MR|Test|E|Lead 3207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003208|103208|989898|1|9999003208|MR|Test|E|Lead 3208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003209|103209|989898|1|9999003209|MR|Test|E|Lead 3209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003210|103210|989898|1|9999003210|MR|Test|E|Lead 3210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003211|103211|989898|1|9999003211|MR|Test|E|Lead 3211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003212|103212|989898|1|9999003212|MR|Test|E|Lead 3212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003213|103213|989898|1|9999003213|MR|Test|E|Lead 3213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003214|103214|989898|1|9999003214|MR|Test|E|Lead 3214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003215|103215|989898|1|9999003215|MR|Test|E|Lead 3215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003216|103216|989898|1|9999003216|MR|Test|E|Lead 3216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003217|103217|989898|1|9999003217|MR|Test|E|Lead 3217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003218|103218|989898|1|9999003218|MR|Test|E|Lead 3218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003219|103219|989898|1|9999003219|MR|Test|E|Lead 3219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003220|103220|989898|1|9999003220|MR|Test|E|Lead 3220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003221|103221|989898|1|9999003221|MR|Test|E|Lead 3221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003222|103222|989898|1|9999003222|MR|Test|E|Lead 3222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003223|103223|989898|1|9999003223|MR|Test|E|Lead 3223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003224|103224|989898|1|9999003224|MR|Test|E|Lead 3224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003225|103225|989898|1|9999003225|MR|Test|E|Lead 3225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003226|103226|989898|1|9999003226|MR|Test|E|Lead 3226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003227|103227|989898|1|9999003227|MR|Test|E|Lead 3227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003228|103228|989898|1|9999003228|MR|Test|E|Lead 3228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003229|103229|989898|1|9999003229|MR|Test|E|Lead 3229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003230|103230|989898|1|9999003230|MR|Test|E|Lead 3230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003231|103231|989898|1|9999003231|MR|Test|E|Lead 3231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003232|103232|989898|1|9999003232|MR|Test|E|Lead 3232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003233|103233|989898|1|9999003233|MR|Test|E|Lead 3233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003234|103234|989898|1|9999003234|MR|Test|E|Lead 3234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003235|103235|989898|1|9999003235|MR|Test|E|Lead 3235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003236|103236|989898|1|9999003236|MR|Test|E|Lead 3236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003237|103237|989898|1|9999003237|MR|Test|E|Lead 3237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003238|103238|989898|1|9999003238|MR|Test|E|Lead 3238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003239|103239|989898|1|9999003239|MR|Test|E|Lead 3239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003240|103240|989898|1|9999003240|MR|Test|E|Lead 3240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003241|103241|989898|1|9999003241|MR|Test|E|Lead 3241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003242|103242|989898|1|9999003242|MR|Test|E|Lead 3242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003243|103243|989898|1|9999003243|MR|Test|E|Lead 3243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003244|103244|989898|1|9999003244|MR|Test|E|Lead 3244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003245|103245|989898|1|9999003245|MR|Test|E|Lead 3245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003246|103246|989898|1|9999003246|MR|Test|E|Lead 3246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003247|103247|989898|1|9999003247|MR|Test|E|Lead 3247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003248|103248|989898|1|9999003248|MR|Test|E|Lead 3248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003249|103249|989898|1|9999003249|MR|Test|E|Lead 3249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003250|103250|989898|1|9999003250|MR|Test|E|Lead 3250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003251|103251|989898|1|9999003251|MR|Test|E|Lead 3251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003252|103252|989898|1|9999003252|MR|Test|E|Lead 3252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003253|103253|989898|1|9999003253|MR|Test|E|Lead 3253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003254|103254|989898|1|9999003254|MR|Test|E|Lead 3254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003255|103255|989898|1|9999003255|MR|Test|E|Lead 3255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003256|103256|989898|1|9999003256|MR|Test|E|Lead 3256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003257|103257|989898|1|9999003257|MR|Test|E|Lead 3257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003258|103258|989898|1|9999003258|MR|Test|E|Lead 3258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003259|103259|989898|1|9999003259|MR|Test|E|Lead 3259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003260|103260|989898|1|9999003260|MR|Test|E|Lead 3260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003261|103261|989898|1|9999003261|MR|Test|E|Lead 3261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003262|103262|989898|1|9999003262|MR|Test|E|Lead 3262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003263|103263|989898|1|9999003263|MR|Test|E|Lead 3263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003264|103264|989898|1|9999003264|MR|Test|E|Lead 3264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003265|103265|989898|1|9999003265|MR|Test|E|Lead 3265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003266|103266|989898|1|9999003266|MR|Test|E|Lead 3266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003267|103267|989898|1|9999003267|MR|Test|E|Lead 3267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003268|103268|989898|1|9999003268|MR|Test|E|Lead 3268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003269|103269|989898|1|9999003269|MR|Test|E|Lead 3269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003270|103270|989898|1|9999003270|MR|Test|E|Lead 3270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003271|103271|989898|1|9999003271|MR|Test|E|Lead 3271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003272|103272|989898|1|9999003272|MR|Test|E|Lead 3272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003273|103273|989898|1|9999003273|MR|Test|E|Lead 3273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003274|103274|989898|1|9999003274|MR|Test|E|Lead 3274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003275|103275|989898|1|9999003275|MR|Test|E|Lead 3275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003276|103276|989898|1|9999003276|MR|Test|E|Lead 3276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003277|103277|989898|1|9999003277|MR|Test|E|Lead 3277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003278|103278|989898|1|9999003278|MR|Test|E|Lead 3278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003279|103279|989898|1|9999003279|MR|Test|E|Lead 3279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003280|103280|989898|1|9999003280|MR|Test|E|Lead 3280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003281|103281|989898|1|9999003281|MR|Test|E|Lead 3281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003282|103282|989898|1|9999003282|MR|Test|E|Lead 3282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003283|103283|989898|1|9999003283|MR|Test|E|Lead 3283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003284|103284|989898|1|9999003284|MR|Test|E|Lead 3284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003285|103285|989898|1|9999003285|MR|Test|E|Lead 3285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003286|103286|989898|1|9999003286|MR|Test|E|Lead 3286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003287|103287|989898|1|9999003287|MR|Test|E|Lead 3287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003288|103288|989898|1|9999003288|MR|Test|E|Lead 3288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003289|103289|989898|1|9999003289|MR|Test|E|Lead 3289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003290|103290|989898|1|9999003290|MR|Test|E|Lead 3290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003291|103291|989898|1|9999003291|MR|Test|E|Lead 3291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003292|103292|989898|1|9999003292|MR|Test|E|Lead 3292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003293|103293|989898|1|9999003293|MR|Test|E|Lead 3293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003294|103294|989898|1|9999003294|MR|Test|E|Lead 3294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003295|103295|989898|1|9999003295|MR|Test|E|Lead 3295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003296|103296|989898|1|9999003296|MR|Test|E|Lead 3296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003297|103297|989898|1|9999003297|MR|Test|E|Lead 3297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003298|103298|989898|1|9999003298|MR|Test|E|Lead 3298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003299|103299|989898|1|9999003299|MR|Test|E|Lead 3299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003300|103300|989898|1|9999003300|MR|Test|E|Lead 3300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003301|103301|989898|1|9999003301|MR|Test|E|Lead 3301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003302|103302|989898|1|9999003302|MR|Test|E|Lead 3302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003303|103303|989898|1|9999003303|MR|Test|E|Lead 3303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003304|103304|989898|1|9999003304|MR|Test|E|Lead 3304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003305|103305|989898|1|9999003305|MR|Test|E|Lead 3305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003306|103306|989898|1|9999003306|MR|Test|E|Lead 3306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003307|103307|989898|1|9999003307|MR|Test|E|Lead 3307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003308|103308|989898|1|9999003308|MR|Test|E|Lead 3308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003309|103309|989898|1|9999003309|MR|Test|E|Lead 3309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003310|103310|989898|1|9999003310|MR|Test|E|Lead 3310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003311|103311|989898|1|9999003311|MR|Test|E|Lead 3311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003312|103312|989898|1|9999003312|MR|Test|E|Lead 3312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003313|103313|989898|1|9999003313|MR|Test|E|Lead 3313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003314|103314|989898|1|9999003314|MR|Test|E|Lead 3314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003315|103315|989898|1|9999003315|MR|Test|E|Lead 3315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003316|103316|989898|1|9999003316|MR|Test|E|Lead 3316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003317|103317|989898|1|9999003317|MR|Test|E|Lead 3317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003318|103318|989898|1|9999003318|MR|Test|E|Lead 3318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003319|103319|989898|1|9999003319|MR|Test|E|Lead 3319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003320|103320|989898|1|9999003320|MR|Test|E|Lead 3320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003321|103321|989898|1|9999003321|MR|Test|E|Lead 3321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003322|103322|989898|1|9999003322|MR|Test|E|Lead 3322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003323|103323|989898|1|9999003323|MR|Test|E|Lead 3323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003324|103324|989898|1|9999003324|MR|Test|E|Lead 3324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003325|103325|989898|1|9999003325|MR|Test|E|Lead 3325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003326|103326|989898|1|9999003326|MR|Test|E|Lead 3326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003327|103327|989898|1|9999003327|MR|Test|E|Lead 3327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003328|103328|989898|1|9999003328|MR|Test|E|Lead 3328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003329|103329|989898|1|9999003329|MR|Test|E|Lead 3329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003330|103330|989898|1|9999003330|MR|Test|E|Lead 3330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003331|103331|989898|1|9999003331|MR|Test|E|Lead 3331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003332|103332|989898|1|9999003332|MR|Test|E|Lead 3332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003333|103333|989898|1|9999003333|MR|Test|E|Lead 3333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003334|103334|989898|1|9999003334|MR|Test|E|Lead 3334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003335|103335|989898|1|9999003335|MR|Test|E|Lead 3335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003336|103336|989898|1|9999003336|MR|Test|E|Lead 3336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003337|103337|989898|1|9999003337|MR|Test|E|Lead 3337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003338|103338|989898|1|9999003338|MR|Test|E|Lead 3338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003339|103339|989898|1|9999003339|MR|Test|E|Lead 3339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003340|103340|989898|1|9999003340|MR|Test|E|Lead 3340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003341|103341|989898|1|9999003341|MR|Test|E|Lead 3341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003342|103342|989898|1|9999003342|MR|Test|E|Lead 3342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003343|103343|989898|1|9999003343|MR|Test|E|Lead 3343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003344|103344|989898|1|9999003344|MR|Test|E|Lead 3344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003345|103345|989898|1|9999003345|MR|Test|E|Lead 3345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003346|103346|989898|1|9999003346|MR|Test|E|Lead 3346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003347|103347|989898|1|9999003347|MR|Test|E|Lead 3347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003348|103348|989898|1|9999003348|MR|Test|E|Lead 3348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003349|103349|989898|1|9999003349|MR|Test|E|Lead 3349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003350|103350|989898|1|9999003350|MR|Test|E|Lead 3350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003351|103351|989898|1|9999003351|MR|Test|E|Lead 3351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003352|103352|989898|1|9999003352|MR|Test|E|Lead 3352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003353|103353|989898|1|9999003353|MR|Test|E|Lead 3353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003354|103354|989898|1|9999003354|MR|Test|E|Lead 3354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003355|103355|989898|1|9999003355|MR|Test|E|Lead 3355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003356|103356|989898|1|9999003356|MR|Test|E|Lead 3356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003357|103357|989898|1|9999003357|MR|Test|E|Lead 3357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003358|103358|989898|1|9999003358|MR|Test|E|Lead 3358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003359|103359|989898|1|9999003359|MR|Test|E|Lead 3359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003360|103360|989898|1|9999003360|MR|Test|E|Lead 3360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003361|103361|989898|1|9999003361|MR|Test|E|Lead 3361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003362|103362|989898|1|9999003362|MR|Test|E|Lead 3362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003363|103363|989898|1|9999003363|MR|Test|E|Lead 3363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003364|103364|989898|1|9999003364|MR|Test|E|Lead 3364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003365|103365|989898|1|9999003365|MR|Test|E|Lead 3365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003366|103366|989898|1|9999003366|MR|Test|E|Lead 3366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003367|103367|989898|1|9999003367|MR|Test|E|Lead 3367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003368|103368|989898|1|9999003368|MR|Test|E|Lead 3368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003369|103369|989898|1|9999003369|MR|Test|E|Lead 3369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003370|103370|989898|1|9999003370|MR|Test|E|Lead 3370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003371|103371|989898|1|9999003371|MR|Test|E|Lead 3371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003372|103372|989898|1|9999003372|MR|Test|E|Lead 3372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003373|103373|989898|1|9999003373|MR|Test|E|Lead 3373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003374|103374|989898|1|9999003374|MR|Test|E|Lead 3374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003375|103375|989898|1|9999003375|MR|Test|E|Lead 3375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003376|103376|989898|1|9999003376|MR|Test|E|Lead 3376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003377|103377|989898|1|9999003377|MR|Test|E|Lead 3377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003378|103378|989898|1|9999003378|MR|Test|E|Lead 3378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003379|103379|989898|1|9999003379|MR|Test|E|Lead 3379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003380|103380|989898|1|9999003380|MR|Test|E|Lead 3380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003381|103381|989898|1|9999003381|MR|Test|E|Lead 3381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003382|103382|989898|1|9999003382|MR|Test|E|Lead 3382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003383|103383|989898|1|9999003383|MR|Test|E|Lead 3383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003384|103384|989898|1|9999003384|MR|Test|E|Lead 3384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003385|103385|989898|1|9999003385|MR|Test|E|Lead 3385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003386|103386|989898|1|9999003386|MR|Test|E|Lead 3386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003387|103387|989898|1|9999003387|MR|Test|E|Lead 3387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003388|103388|989898|1|9999003388|MR|Test|E|Lead 3388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003389|103389|989898|1|9999003389|MR|Test|E|Lead 3389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003390|103390|989898|1|9999003390|MR|Test|E|Lead 3390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003391|103391|989898|1|9999003391|MR|Test|E|Lead 3391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003392|103392|989898|1|9999003392|MR|Test|E|Lead 3392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003393|103393|989898|1|9999003393|MR|Test|E|Lead 3393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003394|103394|989898|1|9999003394|MR|Test|E|Lead 3394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003395|103395|989898|1|9999003395|MR|Test|E|Lead 3395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003396|103396|989898|1|9999003396|MR|Test|E|Lead 3396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003397|103397|989898|1|9999003397|MR|Test|E|Lead 3397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003398|103398|989898|1|9999003398|MR|Test|E|Lead 3398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003399|103399|989898|1|9999003399|MR|Test|E|Lead 3399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003400|103400|989898|1|9999003400|MR|Test|E|Lead 3400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003401|103401|989898|1|9999003401|MR|Test|E|Lead 3401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003402|103402|989898|1|9999003402|MR|Test|E|Lead 3402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003403|103403|989898|1|9999003403|MR|Test|E|Lead 3403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003404|103404|989898|1|9999003404|MR|Test|E|Lead 3404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003405|103405|989898|1|9999003405|MR|Test|E|Lead 3405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003406|103406|989898|1|9999003406|MR|Test|E|Lead 3406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003407|103407|989898|1|9999003407|MR|Test|E|Lead 3407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003408|103408|989898|1|9999003408|MR|Test|E|Lead 3408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003409|103409|989898|1|9999003409|MR|Test|E|Lead 3409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003410|103410|989898|1|9999003410|MR|Test|E|Lead 3410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003411|103411|989898|1|9999003411|MR|Test|E|Lead 3411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003412|103412|989898|1|9999003412|MR|Test|E|Lead 3412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003413|103413|989898|1|9999003413|MR|Test|E|Lead 3413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003414|103414|989898|1|9999003414|MR|Test|E|Lead 3414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003415|103415|989898|1|9999003415|MR|Test|E|Lead 3415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003416|103416|989898|1|9999003416|MR|Test|E|Lead 3416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003417|103417|989898|1|9999003417|MR|Test|E|Lead 3417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003418|103418|989898|1|9999003418|MR|Test|E|Lead 3418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003419|103419|989898|1|9999003419|MR|Test|E|Lead 3419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003420|103420|989898|1|9999003420|MR|Test|E|Lead 3420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003421|103421|989898|1|9999003421|MR|Test|E|Lead 3421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003422|103422|989898|1|9999003422|MR|Test|E|Lead 3422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003423|103423|989898|1|9999003423|MR|Test|E|Lead 3423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003424|103424|989898|1|9999003424|MR|Test|E|Lead 3424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003425|103425|989898|1|9999003425|MR|Test|E|Lead 3425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003426|103426|989898|1|9999003426|MR|Test|E|Lead 3426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003427|103427|989898|1|9999003427|MR|Test|E|Lead 3427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003428|103428|989898|1|9999003428|MR|Test|E|Lead 3428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003429|103429|989898|1|9999003429|MR|Test|E|Lead 3429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003430|103430|989898|1|9999003430|MR|Test|E|Lead 3430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003431|103431|989898|1|9999003431|MR|Test|E|Lead 3431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003432|103432|989898|1|9999003432|MR|Test|E|Lead 3432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003433|103433|989898|1|9999003433|MR|Test|E|Lead 3433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003434|103434|989898|1|9999003434|MR|Test|E|Lead 3434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003435|103435|989898|1|9999003435|MR|Test|E|Lead 3435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003436|103436|989898|1|9999003436|MR|Test|E|Lead 3436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003437|103437|989898|1|9999003437|MR|Test|E|Lead 3437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003438|103438|989898|1|9999003438|MR|Test|E|Lead 3438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003439|103439|989898|1|9999003439|MR|Test|E|Lead 3439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003440|103440|989898|1|9999003440|MR|Test|E|Lead 3440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003441|103441|989898|1|9999003441|MR|Test|E|Lead 3441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003442|103442|989898|1|9999003442|MR|Test|E|Lead 3442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003443|103443|989898|1|9999003443|MR|Test|E|Lead 3443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003444|103444|989898|1|9999003444|MR|Test|E|Lead 3444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003445|103445|989898|1|9999003445|MR|Test|E|Lead 3445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003446|103446|989898|1|9999003446|MR|Test|E|Lead 3446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003447|103447|989898|1|9999003447|MR|Test|E|Lead 3447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003448|103448|989898|1|9999003448|MR|Test|E|Lead 3448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003449|103449|989898|1|9999003449|MR|Test|E|Lead 3449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003450|103450|989898|1|9999003450|MR|Test|E|Lead 3450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003451|103451|989898|1|9999003451|MR|Test|E|Lead 3451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003452|103452|989898|1|9999003452|MR|Test|E|Lead 3452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003453|103453|989898|1|9999003453|MR|Test|E|Lead 3453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003454|103454|989898|1|9999003454|MR|Test|E|Lead 3454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003455|103455|989898|1|9999003455|MR|Test|E|Lead 3455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003456|103456|989898|1|9999003456|MR|Test|E|Lead 3456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003457|103457|989898|1|9999003457|MR|Test|E|Lead 3457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003458|103458|989898|1|9999003458|MR|Test|E|Lead 3458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003459|103459|989898|1|9999003459|MR|Test|E|Lead 3459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003460|103460|989898|1|9999003460|MR|Test|E|Lead 3460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003461|103461|989898|1|9999003461|MR|Test|E|Lead 3461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003462|103462|989898|1|9999003462|MR|Test|E|Lead 3462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003463|103463|989898|1|9999003463|MR|Test|E|Lead 3463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003464|103464|989898|1|9999003464|MR|Test|E|Lead 3464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003465|103465|989898|1|9999003465|MR|Test|E|Lead 3465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003466|103466|989898|1|9999003466|MR|Test|E|Lead 3466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003467|103467|989898|1|9999003467|MR|Test|E|Lead 3467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003468|103468|989898|1|9999003468|MR|Test|E|Lead 3468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003469|103469|989898|1|9999003469|MR|Test|E|Lead 3469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003470|103470|989898|1|9999003470|MR|Test|E|Lead 3470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003471|103471|989898|1|9999003471|MR|Test|E|Lead 3471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003472|103472|989898|1|9999003472|MR|Test|E|Lead 3472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003473|103473|989898|1|9999003473|MR|Test|E|Lead 3473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003474|103474|989898|1|9999003474|MR|Test|E|Lead 3474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003475|103475|989898|1|9999003475|MR|Test|E|Lead 3475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003476|103476|989898|1|9999003476|MR|Test|E|Lead 3476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003477|103477|989898|1|9999003477|MR|Test|E|Lead 3477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003478|103478|989898|1|9999003478|MR|Test|E|Lead 3478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003479|103479|989898|1|9999003479|MR|Test|E|Lead 3479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003480|103480|989898|1|9999003480|MR|Test|E|Lead 3480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003481|103481|989898|1|9999003481|MR|Test|E|Lead 3481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003482|103482|989898|1|9999003482|MR|Test|E|Lead 3482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003483|103483|989898|1|9999003483|MR|Test|E|Lead 3483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003484|103484|989898|1|9999003484|MR|Test|E|Lead 3484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003485|103485|989898|1|9999003485|MR|Test|E|Lead 3485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003486|103486|989898|1|9999003486|MR|Test|E|Lead 3486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003487|103487|989898|1|9999003487|MR|Test|E|Lead 3487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003488|103488|989898|1|9999003488|MR|Test|E|Lead 3488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003489|103489|989898|1|9999003489|MR|Test|E|Lead 3489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003490|103490|989898|1|9999003490|MR|Test|E|Lead 3490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003491|103491|989898|1|9999003491|MR|Test|E|Lead 3491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003492|103492|989898|1|9999003492|MR|Test|E|Lead 3492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003493|103493|989898|1|9999003493|MR|Test|E|Lead 3493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003494|103494|989898|1|9999003494|MR|Test|E|Lead 3494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003495|103495|989898|1|9999003495|MR|Test|E|Lead 3495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003496|103496|989898|1|9999003496|MR|Test|E|Lead 3496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003497|103497|989898|1|9999003497|MR|Test|E|Lead 3497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003498|103498|989898|1|9999003498|MR|Test|E|Lead 3498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003499|103499|989898|1|9999003499|MR|Test|E|Lead 3499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003500|103500|989898|1|9999003500|MR|Test|E|Lead 3500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003501|103501|989898|1|9999003501|MR|Test|E|Lead 3501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003502|103502|989898|1|9999003502|MR|Test|E|Lead 3502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003503|103503|989898|1|9999003503|MR|Test|E|Lead 3503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003504|103504|989898|1|9999003504|MR|Test|E|Lead 3504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003505|103505|989898|1|9999003505|MR|Test|E|Lead 3505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003506|103506|989898|1|9999003506|MR|Test|E|Lead 3506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003507|103507|989898|1|9999003507|MR|Test|E|Lead 3507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003508|103508|989898|1|9999003508|MR|Test|E|Lead 3508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003509|103509|989898|1|9999003509|MR|Test|E|Lead 3509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003510|103510|989898|1|9999003510|MR|Test|E|Lead 3510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003511|103511|989898|1|9999003511|MR|Test|E|Lead 3511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003512|103512|989898|1|9999003512|MR|Test|E|Lead 3512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003513|103513|989898|1|9999003513|MR|Test|E|Lead 3513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003514|103514|989898|1|9999003514|MR|Test|E|Lead 3514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003515|103515|989898|1|9999003515|MR|Test|E|Lead 3515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003516|103516|989898|1|9999003516|MR|Test|E|Lead 3516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003517|103517|989898|1|9999003517|MR|Test|E|Lead 3517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003518|103518|989898|1|9999003518|MR|Test|E|Lead 3518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003519|103519|989898|1|9999003519|MR|Test|E|Lead 3519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003520|103520|989898|1|9999003520|MR|Test|E|Lead 3520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003521|103521|989898|1|9999003521|MR|Test|E|Lead 3521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003522|103522|989898|1|9999003522|MR|Test|E|Lead 3522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003523|103523|989898|1|9999003523|MR|Test|E|Lead 3523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003524|103524|989898|1|9999003524|MR|Test|E|Lead 3524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003525|103525|989898|1|9999003525|MR|Test|E|Lead 3525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003526|103526|989898|1|9999003526|MR|Test|E|Lead 3526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003527|103527|989898|1|9999003527|MR|Test|E|Lead 3527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003528|103528|989898|1|9999003528|MR|Test|E|Lead 3528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003529|103529|989898|1|9999003529|MR|Test|E|Lead 3529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003530|103530|989898|1|9999003530|MR|Test|E|Lead 3530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003531|103531|989898|1|9999003531|MR|Test|E|Lead 3531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003532|103532|989898|1|9999003532|MR|Test|E|Lead 3532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003533|103533|989898|1|9999003533|MR|Test|E|Lead 3533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003534|103534|989898|1|9999003534|MR|Test|E|Lead 3534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003535|103535|989898|1|9999003535|MR|Test|E|Lead 3535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003536|103536|989898|1|9999003536|MR|Test|E|Lead 3536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003537|103537|989898|1|9999003537|MR|Test|E|Lead 3537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003538|103538|989898|1|9999003538|MR|Test|E|Lead 3538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003539|103539|989898|1|9999003539|MR|Test|E|Lead 3539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003540|103540|989898|1|9999003540|MR|Test|E|Lead 3540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003541|103541|989898|1|9999003541|MR|Test|E|Lead 3541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003542|103542|989898|1|9999003542|MR|Test|E|Lead 3542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003543|103543|989898|1|9999003543|MR|Test|E|Lead 3543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003544|103544|989898|1|9999003544|MR|Test|E|Lead 3544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003545|103545|989898|1|9999003545|MR|Test|E|Lead 3545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003546|103546|989898|1|9999003546|MR|Test|E|Lead 3546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003547|103547|989898|1|9999003547|MR|Test|E|Lead 3547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003548|103548|989898|1|9999003548|MR|Test|E|Lead 3548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003549|103549|989898|1|9999003549|MR|Test|E|Lead 3549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003550|103550|989898|1|9999003550|MR|Test|E|Lead 3550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003551|103551|989898|1|9999003551|MR|Test|E|Lead 3551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003552|103552|989898|1|9999003552|MR|Test|E|Lead 3552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003553|103553|989898|1|9999003553|MR|Test|E|Lead 3553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003554|103554|989898|1|9999003554|MR|Test|E|Lead 3554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003555|103555|989898|1|9999003555|MR|Test|E|Lead 3555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003556|103556|989898|1|9999003556|MR|Test|E|Lead 3556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003557|103557|989898|1|9999003557|MR|Test|E|Lead 3557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003558|103558|989898|1|9999003558|MR|Test|E|Lead 3558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003559|103559|989898|1|9999003559|MR|Test|E|Lead 3559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003560|103560|989898|1|9999003560|MR|Test|E|Lead 3560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003561|103561|989898|1|9999003561|MR|Test|E|Lead 3561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003562|103562|989898|1|9999003562|MR|Test|E|Lead 3562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003563|103563|989898|1|9999003563|MR|Test|E|Lead 3563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003564|103564|989898|1|9999003564|MR|Test|E|Lead 3564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003565|103565|989898|1|9999003565|MR|Test|E|Lead 3565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003566|103566|989898|1|9999003566|MR|Test|E|Lead 3566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003567|103567|989898|1|9999003567|MR|Test|E|Lead 3567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003568|103568|989898|1|9999003568|MR|Test|E|Lead 3568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003569|103569|989898|1|9999003569|MR|Test|E|Lead 3569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003570|103570|989898|1|9999003570|MR|Test|E|Lead 3570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003571|103571|989898|1|9999003571|MR|Test|E|Lead 3571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003572|103572|989898|1|9999003572|MR|Test|E|Lead 3572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003573|103573|989898|1|9999003573|MR|Test|E|Lead 3573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003574|103574|989898|1|9999003574|MR|Test|E|Lead 3574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003575|103575|989898|1|9999003575|MR|Test|E|Lead 3575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003576|103576|989898|1|9999003576|MR|Test|E|Lead 3576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003577|103577|989898|1|9999003577|MR|Test|E|Lead 3577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003578|103578|989898|1|9999003578|MR|Test|E|Lead 3578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003579|103579|989898|1|9999003579|MR|Test|E|Lead 3579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003580|103580|989898|1|9999003580|MR|Test|E|Lead 3580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003581|103581|989898|1|9999003581|MR|Test|E|Lead 3581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003582|103582|989898|1|9999003582|MR|Test|E|Lead 3582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003583|103583|989898|1|9999003583|MR|Test|E|Lead 3583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003584|103584|989898|1|9999003584|MR|Test|E|Lead 3584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003585|103585|989898|1|9999003585|MR|Test|E|Lead 3585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003586|103586|989898|1|9999003586|MR|Test|E|Lead 3586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003587|103587|989898|1|9999003587|MR|Test|E|Lead 3587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003588|103588|989898|1|9999003588|MR|Test|E|Lead 3588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003589|103589|989898|1|9999003589|MR|Test|E|Lead 3589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003590|103590|989898|1|9999003590|MR|Test|E|Lead 3590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003591|103591|989898|1|9999003591|MR|Test|E|Lead 3591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003592|103592|989898|1|9999003592|MR|Test|E|Lead 3592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003593|103593|989898|1|9999003593|MR|Test|E|Lead 3593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003594|103594|989898|1|9999003594|MR|Test|E|Lead 3594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003595|103595|989898|1|9999003595|MR|Test|E|Lead 3595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003596|103596|989898|1|9999003596|MR|Test|E|Lead 3596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003597|103597|989898|1|9999003597|MR|Test|E|Lead 3597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003598|103598|989898|1|9999003598|MR|Test|E|Lead 3598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003599|103599|989898|1|9999003599|MR|Test|E|Lead 3599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003600|103600|989898|1|9999003600|MR|Test|E|Lead 3600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003601|103601|989898|1|9999003601|MR|Test|E|Lead 3601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003602|103602|989898|1|9999003602|MR|Test|E|Lead 3602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003603|103603|989898|1|9999003603|MR|Test|E|Lead 3603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003604|103604|989898|1|9999003604|MR|Test|E|Lead 3604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003605|103605|989898|1|9999003605|MR|Test|E|Lead 3605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003606|103606|989898|1|9999003606|MR|Test|E|Lead 3606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003607|103607|989898|1|9999003607|MR|Test|E|Lead 3607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003608|103608|989898|1|9999003608|MR|Test|E|Lead 3608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003609|103609|989898|1|9999003609|MR|Test|E|Lead 3609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003610|103610|989898|1|9999003610|MR|Test|E|Lead 3610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003611|103611|989898|1|9999003611|MR|Test|E|Lead 3611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003612|103612|989898|1|9999003612|MR|Test|E|Lead 3612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003613|103613|989898|1|9999003613|MR|Test|E|Lead 3613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003614|103614|989898|1|9999003614|MR|Test|E|Lead 3614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003615|103615|989898|1|9999003615|MR|Test|E|Lead 3615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003616|103616|989898|1|9999003616|MR|Test|E|Lead 3616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003617|103617|989898|1|9999003617|MR|Test|E|Lead 3617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003618|103618|989898|1|9999003618|MR|Test|E|Lead 3618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003619|103619|989898|1|9999003619|MR|Test|E|Lead 3619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003620|103620|989898|1|9999003620|MR|Test|E|Lead 3620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003621|103621|989898|1|9999003621|MR|Test|E|Lead 3621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003622|103622|989898|1|9999003622|MR|Test|E|Lead 3622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003623|103623|989898|1|9999003623|MR|Test|E|Lead 3623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003624|103624|989898|1|9999003624|MR|Test|E|Lead 3624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003625|103625|989898|1|9999003625|MR|Test|E|Lead 3625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003626|103626|989898|1|9999003626|MR|Test|E|Lead 3626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003627|103627|989898|1|9999003627|MR|Test|E|Lead 3627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003628|103628|989898|1|9999003628|MR|Test|E|Lead 3628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003629|103629|989898|1|9999003629|MR|Test|E|Lead 3629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003630|103630|989898|1|9999003630|MR|Test|E|Lead 3630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003631|103631|989898|1|9999003631|MR|Test|E|Lead 3631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003632|103632|989898|1|9999003632|MR|Test|E|Lead 3632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003633|103633|989898|1|9999003633|MR|Test|E|Lead 3633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003634|103634|989898|1|9999003634|MR|Test|E|Lead 3634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003635|103635|989898|1|9999003635|MR|Test|E|Lead 3635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003636|103636|989898|1|9999003636|MR|Test|E|Lead 3636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003637|103637|989898|1|9999003637|MR|Test|E|Lead 3637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003638|103638|989898|1|9999003638|MR|Test|E|Lead 3638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003639|103639|989898|1|9999003639|MR|Test|E|Lead 3639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003640|103640|989898|1|9999003640|MR|Test|E|Lead 3640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003641|103641|989898|1|9999003641|MR|Test|E|Lead 3641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003642|103642|989898|1|9999003642|MR|Test|E|Lead 3642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003643|103643|989898|1|9999003643|MR|Test|E|Lead 3643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003644|103644|989898|1|9999003644|MR|Test|E|Lead 3644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003645|103645|989898|1|9999003645|MR|Test|E|Lead 3645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003646|103646|989898|1|9999003646|MR|Test|E|Lead 3646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003647|103647|989898|1|9999003647|MR|Test|E|Lead 3647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003648|103648|989898|1|9999003648|MR|Test|E|Lead 3648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003649|103649|989898|1|9999003649|MR|Test|E|Lead 3649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003650|103650|989898|1|9999003650|MR|Test|E|Lead 3650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003651|103651|989898|1|9999003651|MR|Test|E|Lead 3651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003652|103652|989898|1|9999003652|MR|Test|E|Lead 3652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003653|103653|989898|1|9999003653|MR|Test|E|Lead 3653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003654|103654|989898|1|9999003654|MR|Test|E|Lead 3654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003655|103655|989898|1|9999003655|MR|Test|E|Lead 3655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003656|103656|989898|1|9999003656|MR|Test|E|Lead 3656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003657|103657|989898|1|9999003657|MR|Test|E|Lead 3657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003658|103658|989898|1|9999003658|MR|Test|E|Lead 3658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003659|103659|989898|1|9999003659|MR|Test|E|Lead 3659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003660|103660|989898|1|9999003660|MR|Test|E|Lead 3660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003661|103661|989898|1|9999003661|MR|Test|E|Lead 3661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003662|103662|989898|1|9999003662|MR|Test|E|Lead 3662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003663|103663|989898|1|9999003663|MR|Test|E|Lead 3663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003664|103664|989898|1|9999003664|MR|Test|E|Lead 3664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003665|103665|989898|1|9999003665|MR|Test|E|Lead 3665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003666|103666|989898|1|9999003666|MR|Test|E|Lead 3666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003667|103667|989898|1|9999003667|MR|Test|E|Lead 3667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003668|103668|989898|1|9999003668|MR|Test|E|Lead 3668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003669|103669|989898|1|9999003669|MR|Test|E|Lead 3669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003670|103670|989898|1|9999003670|MR|Test|E|Lead 3670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003671|103671|989898|1|9999003671|MR|Test|E|Lead 3671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003672|103672|989898|1|9999003672|MR|Test|E|Lead 3672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003673|103673|989898|1|9999003673|MR|Test|E|Lead 3673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003674|103674|989898|1|9999003674|MR|Test|E|Lead 3674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003675|103675|989898|1|9999003675|MR|Test|E|Lead 3675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003676|103676|989898|1|9999003676|MR|Test|E|Lead 3676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003677|103677|989898|1|9999003677|MR|Test|E|Lead 3677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003678|103678|989898|1|9999003678|MR|Test|E|Lead 3678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003679|103679|989898|1|9999003679|MR|Test|E|Lead 3679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003680|103680|989898|1|9999003680|MR|Test|E|Lead 3680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003681|103681|989898|1|9999003681|MR|Test|E|Lead 3681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003682|103682|989898|1|9999003682|MR|Test|E|Lead 3682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003683|103683|989898|1|9999003683|MR|Test|E|Lead 3683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003684|103684|989898|1|9999003684|MR|Test|E|Lead 3684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003685|103685|989898|1|9999003685|MR|Test|E|Lead 3685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003686|103686|989898|1|9999003686|MR|Test|E|Lead 3686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003687|103687|989898|1|9999003687|MR|Test|E|Lead 3687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003688|103688|989898|1|9999003688|MR|Test|E|Lead 3688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003689|103689|989898|1|9999003689|MR|Test|E|Lead 3689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003690|103690|989898|1|9999003690|MR|Test|E|Lead 3690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003691|103691|989898|1|9999003691|MR|Test|E|Lead 3691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003692|103692|989898|1|9999003692|MR|Test|E|Lead 3692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003693|103693|989898|1|9999003693|MR|Test|E|Lead 3693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003694|103694|989898|1|9999003694|MR|Test|E|Lead 3694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003695|103695|989898|1|9999003695|MR|Test|E|Lead 3695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003696|103696|989898|1|9999003696|MR|Test|E|Lead 3696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003697|103697|989898|1|9999003697|MR|Test|E|Lead 3697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003698|103698|989898|1|9999003698|MR|Test|E|Lead 3698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003699|103699|989898|1|9999003699|MR|Test|E|Lead 3699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003700|103700|989898|1|9999003700|MR|Test|E|Lead 3700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003701|103701|989898|1|9999003701|MR|Test|E|Lead 3701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003702|103702|989898|1|9999003702|MR|Test|E|Lead 3702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003703|103703|989898|1|9999003703|MR|Test|E|Lead 3703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003704|103704|989898|1|9999003704|MR|Test|E|Lead 3704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003705|103705|989898|1|9999003705|MR|Test|E|Lead 3705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003706|103706|989898|1|9999003706|MR|Test|E|Lead 3706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003707|103707|989898|1|9999003707|MR|Test|E|Lead 3707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003708|103708|989898|1|9999003708|MR|Test|E|Lead 3708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003709|103709|989898|1|9999003709|MR|Test|E|Lead 3709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003710|103710|989898|1|9999003710|MR|Test|E|Lead 3710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003711|103711|989898|1|9999003711|MR|Test|E|Lead 3711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003712|103712|989898|1|9999003712|MR|Test|E|Lead 3712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003713|103713|989898|1|9999003713|MR|Test|E|Lead 3713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003714|103714|989898|1|9999003714|MR|Test|E|Lead 3714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003715|103715|989898|1|9999003715|MR|Test|E|Lead 3715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003716|103716|989898|1|9999003716|MR|Test|E|Lead 3716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003717|103717|989898|1|9999003717|MR|Test|E|Lead 3717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003718|103718|989898|1|9999003718|MR|Test|E|Lead 3718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003719|103719|989898|1|9999003719|MR|Test|E|Lead 3719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003720|103720|989898|1|9999003720|MR|Test|E|Lead 3720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003721|103721|989898|1|9999003721|MR|Test|E|Lead 3721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003722|103722|989898|1|9999003722|MR|Test|E|Lead 3722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003723|103723|989898|1|9999003723|MR|Test|E|Lead 3723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003724|103724|989898|1|9999003724|MR|Test|E|Lead 3724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003725|103725|989898|1|9999003725|MR|Test|E|Lead 3725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003726|103726|989898|1|9999003726|MR|Test|E|Lead 3726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003727|103727|989898|1|9999003727|MR|Test|E|Lead 3727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003728|103728|989898|1|9999003728|MR|Test|E|Lead 3728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003729|103729|989898|1|9999003729|MR|Test|E|Lead 3729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003730|103730|989898|1|9999003730|MR|Test|E|Lead 3730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003731|103731|989898|1|9999003731|MR|Test|E|Lead 3731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003732|103732|989898|1|9999003732|MR|Test|E|Lead 3732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003733|103733|989898|1|9999003733|MR|Test|E|Lead 3733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003734|103734|989898|1|9999003734|MR|Test|E|Lead 3734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003735|103735|989898|1|9999003735|MR|Test|E|Lead 3735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003736|103736|989898|1|9999003736|MR|Test|E|Lead 3736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003737|103737|989898|1|9999003737|MR|Test|E|Lead 3737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003738|103738|989898|1|9999003738|MR|Test|E|Lead 3738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003739|103739|989898|1|9999003739|MR|Test|E|Lead 3739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003740|103740|989898|1|9999003740|MR|Test|E|Lead 3740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003741|103741|989898|1|9999003741|MR|Test|E|Lead 3741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003742|103742|989898|1|9999003742|MR|Test|E|Lead 3742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003743|103743|989898|1|9999003743|MR|Test|E|Lead 3743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003744|103744|989898|1|9999003744|MR|Test|E|Lead 3744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003745|103745|989898|1|9999003745|MR|Test|E|Lead 3745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003746|103746|989898|1|9999003746|MR|Test|E|Lead 3746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003747|103747|989898|1|9999003747|MR|Test|E|Lead 3747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003748|103748|989898|1|9999003748|MR|Test|E|Lead 3748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003749|103749|989898|1|9999003749|MR|Test|E|Lead 3749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003750|103750|989898|1|9999003750|MR|Test|E|Lead 3750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003751|103751|989898|1|9999003751|MR|Test|E|Lead 3751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003752|103752|989898|1|9999003752|MR|Test|E|Lead 3752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003753|103753|989898|1|9999003753|MR|Test|E|Lead 3753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003754|103754|989898|1|9999003754|MR|Test|E|Lead 3754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003755|103755|989898|1|9999003755|MR|Test|E|Lead 3755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003756|103756|989898|1|9999003756|MR|Test|E|Lead 3756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003757|103757|989898|1|9999003757|MR|Test|E|Lead 3757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003758|103758|989898|1|9999003758|MR|Test|E|Lead 3758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003759|103759|989898|1|9999003759|MR|Test|E|Lead 3759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003760|103760|989898|1|9999003760|MR|Test|E|Lead 3760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003761|103761|989898|1|9999003761|MR|Test|E|Lead 3761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003762|103762|989898|1|9999003762|MR|Test|E|Lead 3762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003763|103763|989898|1|9999003763|MR|Test|E|Lead 3763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003764|103764|989898|1|9999003764|MR|Test|E|Lead 3764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003765|103765|989898|1|9999003765|MR|Test|E|Lead 3765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003766|103766|989898|1|9999003766|MR|Test|E|Lead 3766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003767|103767|989898|1|9999003767|MR|Test|E|Lead 3767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003768|103768|989898|1|9999003768|MR|Test|E|Lead 3768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003769|103769|989898|1|9999003769|MR|Test|E|Lead 3769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003770|103770|989898|1|9999003770|MR|Test|E|Lead 3770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003771|103771|989898|1|9999003771|MR|Test|E|Lead 3771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003772|103772|989898|1|9999003772|MR|Test|E|Lead 3772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003773|103773|989898|1|9999003773|MR|Test|E|Lead 3773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003774|103774|989898|1|9999003774|MR|Test|E|Lead 3774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003775|103775|989898|1|9999003775|MR|Test|E|Lead 3775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003776|103776|989898|1|9999003776|MR|Test|E|Lead 3776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003777|103777|989898|1|9999003777|MR|Test|E|Lead 3777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003778|103778|989898|1|9999003778|MR|Test|E|Lead 3778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003779|103779|989898|1|9999003779|MR|Test|E|Lead 3779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003780|103780|989898|1|9999003780|MR|Test|E|Lead 3780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003781|103781|989898|1|9999003781|MR|Test|E|Lead 3781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003782|103782|989898|1|9999003782|MR|Test|E|Lead 3782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003783|103783|989898|1|9999003783|MR|Test|E|Lead 3783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003784|103784|989898|1|9999003784|MR|Test|E|Lead 3784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003785|103785|989898|1|9999003785|MR|Test|E|Lead 3785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003786|103786|989898|1|9999003786|MR|Test|E|Lead 3786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003787|103787|989898|1|9999003787|MR|Test|E|Lead 3787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003788|103788|989898|1|9999003788|MR|Test|E|Lead 3788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003789|103789|989898|1|9999003789|MR|Test|E|Lead 3789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003790|103790|989898|1|9999003790|MR|Test|E|Lead 3790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003791|103791|989898|1|9999003791|MR|Test|E|Lead 3791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003792|103792|989898|1|9999003792|MR|Test|E|Lead 3792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003793|103793|989898|1|9999003793|MR|Test|E|Lead 3793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003794|103794|989898|1|9999003794|MR|Test|E|Lead 3794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003795|103795|989898|1|9999003795|MR|Test|E|Lead 3795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003796|103796|989898|1|9999003796|MR|Test|E|Lead 3796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003797|103797|989898|1|9999003797|MR|Test|E|Lead 3797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003798|103798|989898|1|9999003798|MR|Test|E|Lead 3798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003799|103799|989898|1|9999003799|MR|Test|E|Lead 3799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003800|103800|989898|1|9999003800|MR|Test|E|Lead 3800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003801|103801|989898|1|9999003801|MR|Test|E|Lead 3801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003802|103802|989898|1|9999003802|MR|Test|E|Lead 3802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003803|103803|989898|1|9999003803|MR|Test|E|Lead 3803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003804|103804|989898|1|9999003804|MR|Test|E|Lead 3804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003805|103805|989898|1|9999003805|MR|Test|E|Lead 3805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003806|103806|989898|1|9999003806|MR|Test|E|Lead 3806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003807|103807|989898|1|9999003807|MR|Test|E|Lead 3807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003808|103808|989898|1|9999003808|MR|Test|E|Lead 3808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003809|103809|989898|1|9999003809|MR|Test|E|Lead 3809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003810|103810|989898|1|9999003810|MR|Test|E|Lead 3810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003811|103811|989898|1|9999003811|MR|Test|E|Lead 3811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003812|103812|989898|1|9999003812|MR|Test|E|Lead 3812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003813|103813|989898|1|9999003813|MR|Test|E|Lead 3813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003814|103814|989898|1|9999003814|MR|Test|E|Lead 3814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003815|103815|989898|1|9999003815|MR|Test|E|Lead 3815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003816|103816|989898|1|9999003816|MR|Test|E|Lead 3816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003817|103817|989898|1|9999003817|MR|Test|E|Lead 3817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003818|103818|989898|1|9999003818|MR|Test|E|Lead 3818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003819|103819|989898|1|9999003819|MR|Test|E|Lead 3819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003820|103820|989898|1|9999003820|MR|Test|E|Lead 3820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003821|103821|989898|1|9999003821|MR|Test|E|Lead 3821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003822|103822|989898|1|9999003822|MR|Test|E|Lead 3822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003823|103823|989898|1|9999003823|MR|Test|E|Lead 3823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003824|103824|989898|1|9999003824|MR|Test|E|Lead 3824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003825|103825|989898|1|9999003825|MR|Test|E|Lead 3825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003826|103826|989898|1|9999003826|MR|Test|E|Lead 3826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003827|103827|989898|1|9999003827|MR|Test|E|Lead 3827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003828|103828|989898|1|9999003828|MR|Test|E|Lead 3828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003829|103829|989898|1|9999003829|MR|Test|E|Lead 3829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003830|103830|989898|1|9999003830|MR|Test|E|Lead 3830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003831|103831|989898|1|9999003831|MR|Test|E|Lead 3831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003832|103832|989898|1|9999003832|MR|Test|E|Lead 3832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003833|103833|989898|1|9999003833|MR|Test|E|Lead 3833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003834|103834|989898|1|9999003834|MR|Test|E|Lead 3834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003835|103835|989898|1|9999003835|MR|Test|E|Lead 3835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003836|103836|989898|1|9999003836|MR|Test|E|Lead 3836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003837|103837|989898|1|9999003837|MR|Test|E|Lead 3837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003838|103838|989898|1|9999003838|MR|Test|E|Lead 3838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003839|103839|989898|1|9999003839|MR|Test|E|Lead 3839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003840|103840|989898|1|9999003840|MR|Test|E|Lead 3840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003841|103841|989898|1|9999003841|MR|Test|E|Lead 3841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003842|103842|989898|1|9999003842|MR|Test|E|Lead 3842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003843|103843|989898|1|9999003843|MR|Test|E|Lead 3843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003844|103844|989898|1|9999003844|MR|Test|E|Lead 3844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003845|103845|989898|1|9999003845|MR|Test|E|Lead 3845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003846|103846|989898|1|9999003846|MR|Test|E|Lead 3846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003847|103847|989898|1|9999003847|MR|Test|E|Lead 3847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003848|103848|989898|1|9999003848|MR|Test|E|Lead 3848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003849|103849|989898|1|9999003849|MR|Test|E|Lead 3849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003850|103850|989898|1|9999003850|MR|Test|E|Lead 3850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003851|103851|989898|1|9999003851|MR|Test|E|Lead 3851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003852|103852|989898|1|9999003852|MR|Test|E|Lead 3852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003853|103853|989898|1|9999003853|MR|Test|E|Lead 3853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003854|103854|989898|1|9999003854|MR|Test|E|Lead 3854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003855|103855|989898|1|9999003855|MR|Test|E|Lead 3855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003856|103856|989898|1|9999003856|MR|Test|E|Lead 3856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003857|103857|989898|1|9999003857|MR|Test|E|Lead 3857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003858|103858|989898|1|9999003858|MR|Test|E|Lead 3858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003859|103859|989898|1|9999003859|MR|Test|E|Lead 3859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003860|103860|989898|1|9999003860|MR|Test|E|Lead 3860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003861|103861|989898|1|9999003861|MR|Test|E|Lead 3861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003862|103862|989898|1|9999003862|MR|Test|E|Lead 3862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003863|103863|989898|1|9999003863|MR|Test|E|Lead 3863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003864|103864|989898|1|9999003864|MR|Test|E|Lead 3864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003865|103865|989898|1|9999003865|MR|Test|E|Lead 3865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003866|103866|989898|1|9999003866|MR|Test|E|Lead 3866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003867|103867|989898|1|9999003867|MR|Test|E|Lead 3867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003868|103868|989898|1|9999003868|MR|Test|E|Lead 3868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003869|103869|989898|1|9999003869|MR|Test|E|Lead 3869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003870|103870|989898|1|9999003870|MR|Test|E|Lead 3870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003871|103871|989898|1|9999003871|MR|Test|E|Lead 3871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003872|103872|989898|1|9999003872|MR|Test|E|Lead 3872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003873|103873|989898|1|9999003873|MR|Test|E|Lead 3873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003874|103874|989898|1|9999003874|MR|Test|E|Lead 3874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003875|103875|989898|1|9999003875|MR|Test|E|Lead 3875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003876|103876|989898|1|9999003876|MR|Test|E|Lead 3876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003877|103877|989898|1|9999003877|MR|Test|E|Lead 3877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003878|103878|989898|1|9999003878|MR|Test|E|Lead 3878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003879|103879|989898|1|9999003879|MR|Test|E|Lead 3879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003880|103880|989898|1|9999003880|MR|Test|E|Lead 3880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003881|103881|989898|1|9999003881|MR|Test|E|Lead 3881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003882|103882|989898|1|9999003882|MR|Test|E|Lead 3882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003883|103883|989898|1|9999003883|MR|Test|E|Lead 3883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003884|103884|989898|1|9999003884|MR|Test|E|Lead 3884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003885|103885|989898|1|9999003885|MR|Test|E|Lead 3885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003886|103886|989898|1|9999003886|MR|Test|E|Lead 3886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003887|103887|989898|1|9999003887|MR|Test|E|Lead 3887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003888|103888|989898|1|9999003888|MR|Test|E|Lead 3888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003889|103889|989898|1|9999003889|MR|Test|E|Lead 3889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003890|103890|989898|1|9999003890|MR|Test|E|Lead 3890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003891|103891|989898|1|9999003891|MR|Test|E|Lead 3891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003892|103892|989898|1|9999003892|MR|Test|E|Lead 3892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003893|103893|989898|1|9999003893|MR|Test|E|Lead 3893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003894|103894|989898|1|9999003894|MR|Test|E|Lead 3894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003895|103895|989898|1|9999003895|MR|Test|E|Lead 3895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003896|103896|989898|1|9999003896|MR|Test|E|Lead 3896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003897|103897|989898|1|9999003897|MR|Test|E|Lead 3897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003898|103898|989898|1|9999003898|MR|Test|E|Lead 3898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003899|103899|989898|1|9999003899|MR|Test|E|Lead 3899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003900|103900|989898|1|9999003900|MR|Test|E|Lead 3900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003901|103901|989898|1|9999003901|MR|Test|E|Lead 3901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003902|103902|989898|1|9999003902|MR|Test|E|Lead 3902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003903|103903|989898|1|9999003903|MR|Test|E|Lead 3903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003904|103904|989898|1|9999003904|MR|Test|E|Lead 3904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003905|103905|989898|1|9999003905|MR|Test|E|Lead 3905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003906|103906|989898|1|9999003906|MR|Test|E|Lead 3906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003907|103907|989898|1|9999003907|MR|Test|E|Lead 3907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003908|103908|989898|1|9999003908|MR|Test|E|Lead 3908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003909|103909|989898|1|9999003909|MR|Test|E|Lead 3909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003910|103910|989898|1|9999003910|MR|Test|E|Lead 3910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003911|103911|989898|1|9999003911|MR|Test|E|Lead 3911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003912|103912|989898|1|9999003912|MR|Test|E|Lead 3912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003913|103913|989898|1|9999003913|MR|Test|E|Lead 3913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003914|103914|989898|1|9999003914|MR|Test|E|Lead 3914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003915|103915|989898|1|9999003915|MR|Test|E|Lead 3915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003916|103916|989898|1|9999003916|MR|Test|E|Lead 3916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003917|103917|989898|1|9999003917|MR|Test|E|Lead 3917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003918|103918|989898|1|9999003918|MR|Test|E|Lead 3918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003919|103919|989898|1|9999003919|MR|Test|E|Lead 3919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003920|103920|989898|1|9999003920|MR|Test|E|Lead 3920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003921|103921|989898|1|9999003921|MR|Test|E|Lead 3921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003922|103922|989898|1|9999003922|MR|Test|E|Lead 3922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003923|103923|989898|1|9999003923|MR|Test|E|Lead 3923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003924|103924|989898|1|9999003924|MR|Test|E|Lead 3924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003925|103925|989898|1|9999003925|MR|Test|E|Lead 3925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003926|103926|989898|1|9999003926|MR|Test|E|Lead 3926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003927|103927|989898|1|9999003927|MR|Test|E|Lead 3927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003928|103928|989898|1|9999003928|MR|Test|E|Lead 3928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003929|103929|989898|1|9999003929|MR|Test|E|Lead 3929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003930|103930|989898|1|9999003930|MR|Test|E|Lead 3930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003931|103931|989898|1|9999003931|MR|Test|E|Lead 3931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003932|103932|989898|1|9999003932|MR|Test|E|Lead 3932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003933|103933|989898|1|9999003933|MR|Test|E|Lead 3933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003934|103934|989898|1|9999003934|MR|Test|E|Lead 3934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003935|103935|989898|1|9999003935|MR|Test|E|Lead 3935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003936|103936|989898|1|9999003936|MR|Test|E|Lead 3936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003937|103937|989898|1|9999003937|MR|Test|E|Lead 3937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003938|103938|989898|1|9999003938|MR|Test|E|Lead 3938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003939|103939|989898|1|9999003939|MR|Test|E|Lead 3939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003940|103940|989898|1|9999003940|MR|Test|E|Lead 3940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003941|103941|989898|1|9999003941|MR|Test|E|Lead 3941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003942|103942|989898|1|9999003942|MR|Test|E|Lead 3942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003943|103943|989898|1|9999003943|MR|Test|E|Lead 3943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003944|103944|989898|1|9999003944|MR|Test|E|Lead 3944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003945|103945|989898|1|9999003945|MR|Test|E|Lead 3945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003946|103946|989898|1|9999003946|MR|Test|E|Lead 3946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003947|103947|989898|1|9999003947|MR|Test|E|Lead 3947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003948|103948|989898|1|9999003948|MR|Test|E|Lead 3948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003949|103949|989898|1|9999003949|MR|Test|E|Lead 3949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003950|103950|989898|1|9999003950|MR|Test|E|Lead 3950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003951|103951|989898|1|9999003951|MR|Test|E|Lead 3951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003952|103952|989898|1|9999003952|MR|Test|E|Lead 3952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003953|103953|989898|1|9999003953|MR|Test|E|Lead 3953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003954|103954|989898|1|9999003954|MR|Test|E|Lead 3954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003955|103955|989898|1|9999003955|MR|Test|E|Lead 3955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003956|103956|989898|1|9999003956|MR|Test|E|Lead 3956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003957|103957|989898|1|9999003957|MR|Test|E|Lead 3957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003958|103958|989898|1|9999003958|MR|Test|E|Lead 3958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003959|103959|989898|1|9999003959|MR|Test|E|Lead 3959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003960|103960|989898|1|9999003960|MR|Test|E|Lead 3960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003961|103961|989898|1|9999003961|MR|Test|E|Lead 3961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003962|103962|989898|1|9999003962|MR|Test|E|Lead 3962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003963|103963|989898|1|9999003963|MR|Test|E|Lead 3963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003964|103964|989898|1|9999003964|MR|Test|E|Lead 3964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003965|103965|989898|1|9999003965|MR|Test|E|Lead 3965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003966|103966|989898|1|9999003966|MR|Test|E|Lead 3966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003967|103967|989898|1|9999003967|MR|Test|E|Lead 3967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003968|103968|989898|1|9999003968|MR|Test|E|Lead 3968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003969|103969|989898|1|9999003969|MR|Test|E|Lead 3969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003970|103970|989898|1|9999003970|MR|Test|E|Lead 3970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003971|103971|989898|1|9999003971|MR|Test|E|Lead 3971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003972|103972|989898|1|9999003972|MR|Test|E|Lead 3972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003973|103973|989898|1|9999003973|MR|Test|E|Lead 3973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003974|103974|989898|1|9999003974|MR|Test|E|Lead 3974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003975|103975|989898|1|9999003975|MR|Test|E|Lead 3975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003976|103976|989898|1|9999003976|MR|Test|E|Lead 3976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003977|103977|989898|1|9999003977|MR|Test|E|Lead 3977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003978|103978|989898|1|9999003978|MR|Test|E|Lead 3978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003979|103979|989898|1|9999003979|MR|Test|E|Lead 3979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003980|103980|989898|1|9999003980|MR|Test|E|Lead 3980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003981|103981|989898|1|9999003981|MR|Test|E|Lead 3981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003982|103982|989898|1|9999003982|MR|Test|E|Lead 3982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003983|103983|989898|1|9999003983|MR|Test|E|Lead 3983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003984|103984|989898|1|9999003984|MR|Test|E|Lead 3984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003985|103985|989898|1|9999003985|MR|Test|E|Lead 3985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003986|103986|989898|1|9999003986|MR|Test|E|Lead 3986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003987|103987|989898|1|9999003987|MR|Test|E|Lead 3987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003988|103988|989898|1|9999003988|MR|Test|E|Lead 3988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003989|103989|989898|1|9999003989|MR|Test|E|Lead 3989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003990|103990|989898|1|9999003990|MR|Test|E|Lead 3990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003991|103991|989898|1|9999003991|MR|Test|E|Lead 3991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003992|103992|989898|1|9999003992|MR|Test|E|Lead 3992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003993|103993|989898|1|9999003993|MR|Test|E|Lead 3993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003994|103994|989898|1|9999003994|MR|Test|E|Lead 3994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003995|103995|989898|1|9999003995|MR|Test|E|Lead 3995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003996|103996|989898|1|9999003996|MR|Test|E|Lead 3996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003997|103997|989898|1|9999003997|MR|Test|E|Lead 3997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003998|103998|989898|1|9999003998|MR|Test|E|Lead 3998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1003999|103999|989898|1|9999003999|MR|Test|E|Lead 3999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004000|104000|989898|1|9999004000|MR|Test|E|Lead 4000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004001|104001|989898|1|9999004001|MR|Test|E|Lead 4001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004002|104002|989898|1|9999004002|MR|Test|E|Lead 4002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004003|104003|989898|1|9999004003|MR|Test|E|Lead 4003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004004|104004|989898|1|9999004004|MR|Test|E|Lead 4004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004005|104005|989898|1|9999004005|MR|Test|E|Lead 4005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004006|104006|989898|1|9999004006|MR|Test|E|Lead 4006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004007|104007|989898|1|9999004007|MR|Test|E|Lead 4007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004008|104008|989898|1|9999004008|MR|Test|E|Lead 4008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004009|104009|989898|1|9999004009|MR|Test|E|Lead 4009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004010|104010|989898|1|9999004010|MR|Test|E|Lead 4010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004011|104011|989898|1|9999004011|MR|Test|E|Lead 4011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004012|104012|989898|1|9999004012|MR|Test|E|Lead 4012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004013|104013|989898|1|9999004013|MR|Test|E|Lead 4013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004014|104014|989898|1|9999004014|MR|Test|E|Lead 4014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004015|104015|989898|1|9999004015|MR|Test|E|Lead 4015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004016|104016|989898|1|9999004016|MR|Test|E|Lead 4016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004017|104017|989898|1|9999004017|MR|Test|E|Lead 4017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004018|104018|989898|1|9999004018|MR|Test|E|Lead 4018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004019|104019|989898|1|9999004019|MR|Test|E|Lead 4019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004020|104020|989898|1|9999004020|MR|Test|E|Lead 4020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004021|104021|989898|1|9999004021|MR|Test|E|Lead 4021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004022|104022|989898|1|9999004022|MR|Test|E|Lead 4022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004023|104023|989898|1|9999004023|MR|Test|E|Lead 4023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004024|104024|989898|1|9999004024|MR|Test|E|Lead 4024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004025|104025|989898|1|9999004025|MR|Test|E|Lead 4025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004026|104026|989898|1|9999004026|MR|Test|E|Lead 4026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004027|104027|989898|1|9999004027|MR|Test|E|Lead 4027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004028|104028|989898|1|9999004028|MR|Test|E|Lead 4028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004029|104029|989898|1|9999004029|MR|Test|E|Lead 4029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004030|104030|989898|1|9999004030|MR|Test|E|Lead 4030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004031|104031|989898|1|9999004031|MR|Test|E|Lead 4031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004032|104032|989898|1|9999004032|MR|Test|E|Lead 4032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004033|104033|989898|1|9999004033|MR|Test|E|Lead 4033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004034|104034|989898|1|9999004034|MR|Test|E|Lead 4034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004035|104035|989898|1|9999004035|MR|Test|E|Lead 4035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004036|104036|989898|1|9999004036|MR|Test|E|Lead 4036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004037|104037|989898|1|9999004037|MR|Test|E|Lead 4037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004038|104038|989898|1|9999004038|MR|Test|E|Lead 4038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004039|104039|989898|1|9999004039|MR|Test|E|Lead 4039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004040|104040|989898|1|9999004040|MR|Test|E|Lead 4040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004041|104041|989898|1|9999004041|MR|Test|E|Lead 4041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004042|104042|989898|1|9999004042|MR|Test|E|Lead 4042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004043|104043|989898|1|9999004043|MR|Test|E|Lead 4043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004044|104044|989898|1|9999004044|MR|Test|E|Lead 4044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004045|104045|989898|1|9999004045|MR|Test|E|Lead 4045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004046|104046|989898|1|9999004046|MR|Test|E|Lead 4046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004047|104047|989898|1|9999004047|MR|Test|E|Lead 4047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004048|104048|989898|1|9999004048|MR|Test|E|Lead 4048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004049|104049|989898|1|9999004049|MR|Test|E|Lead 4049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004050|104050|989898|1|9999004050|MR|Test|E|Lead 4050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004051|104051|989898|1|9999004051|MR|Test|E|Lead 4051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004052|104052|989898|1|9999004052|MR|Test|E|Lead 4052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004053|104053|989898|1|9999004053|MR|Test|E|Lead 4053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004054|104054|989898|1|9999004054|MR|Test|E|Lead 4054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004055|104055|989898|1|9999004055|MR|Test|E|Lead 4055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004056|104056|989898|1|9999004056|MR|Test|E|Lead 4056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004057|104057|989898|1|9999004057|MR|Test|E|Lead 4057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004058|104058|989898|1|9999004058|MR|Test|E|Lead 4058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004059|104059|989898|1|9999004059|MR|Test|E|Lead 4059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004060|104060|989898|1|9999004060|MR|Test|E|Lead 4060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004061|104061|989898|1|9999004061|MR|Test|E|Lead 4061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004062|104062|989898|1|9999004062|MR|Test|E|Lead 4062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004063|104063|989898|1|9999004063|MR|Test|E|Lead 4063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004064|104064|989898|1|9999004064|MR|Test|E|Lead 4064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004065|104065|989898|1|9999004065|MR|Test|E|Lead 4065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004066|104066|989898|1|9999004066|MR|Test|E|Lead 4066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004067|104067|989898|1|9999004067|MR|Test|E|Lead 4067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004068|104068|989898|1|9999004068|MR|Test|E|Lead 4068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004069|104069|989898|1|9999004069|MR|Test|E|Lead 4069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004070|104070|989898|1|9999004070|MR|Test|E|Lead 4070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004071|104071|989898|1|9999004071|MR|Test|E|Lead 4071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004072|104072|989898|1|9999004072|MR|Test|E|Lead 4072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004073|104073|989898|1|9999004073|MR|Test|E|Lead 4073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004074|104074|989898|1|9999004074|MR|Test|E|Lead 4074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004075|104075|989898|1|9999004075|MR|Test|E|Lead 4075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004076|104076|989898|1|9999004076|MR|Test|E|Lead 4076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004077|104077|989898|1|9999004077|MR|Test|E|Lead 4077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004078|104078|989898|1|9999004078|MR|Test|E|Lead 4078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004079|104079|989898|1|9999004079|MR|Test|E|Lead 4079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004080|104080|989898|1|9999004080|MR|Test|E|Lead 4080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004081|104081|989898|1|9999004081|MR|Test|E|Lead 4081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004082|104082|989898|1|9999004082|MR|Test|E|Lead 4082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004083|104083|989898|1|9999004083|MR|Test|E|Lead 4083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004084|104084|989898|1|9999004084|MR|Test|E|Lead 4084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004085|104085|989898|1|9999004085|MR|Test|E|Lead 4085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004086|104086|989898|1|9999004086|MR|Test|E|Lead 4086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004087|104087|989898|1|9999004087|MR|Test|E|Lead 4087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004088|104088|989898|1|9999004088|MR|Test|E|Lead 4088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004089|104089|989898|1|9999004089|MR|Test|E|Lead 4089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004090|104090|989898|1|9999004090|MR|Test|E|Lead 4090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004091|104091|989898|1|9999004091|MR|Test|E|Lead 4091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004092|104092|989898|1|9999004092|MR|Test|E|Lead 4092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004093|104093|989898|1|9999004093|MR|Test|E|Lead 4093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004094|104094|989898|1|9999004094|MR|Test|E|Lead 4094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004095|104095|989898|1|9999004095|MR|Test|E|Lead 4095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004096|104096|989898|1|9999004096|MR|Test|E|Lead 4096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004097|104097|989898|1|9999004097|MR|Test|E|Lead 4097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004098|104098|989898|1|9999004098|MR|Test|E|Lead 4098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004099|104099|989898|1|9999004099|MR|Test|E|Lead 4099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004100|104100|989898|1|9999004100|MR|Test|E|Lead 4100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004101|104101|989898|1|9999004101|MR|Test|E|Lead 4101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004102|104102|989898|1|9999004102|MR|Test|E|Lead 4102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004103|104103|989898|1|9999004103|MR|Test|E|Lead 4103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004104|104104|989898|1|9999004104|MR|Test|E|Lead 4104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004105|104105|989898|1|9999004105|MR|Test|E|Lead 4105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004106|104106|989898|1|9999004106|MR|Test|E|Lead 4106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004107|104107|989898|1|9999004107|MR|Test|E|Lead 4107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004108|104108|989898|1|9999004108|MR|Test|E|Lead 4108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004109|104109|989898|1|9999004109|MR|Test|E|Lead 4109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004110|104110|989898|1|9999004110|MR|Test|E|Lead 4110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004111|104111|989898|1|9999004111|MR|Test|E|Lead 4111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004112|104112|989898|1|9999004112|MR|Test|E|Lead 4112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004113|104113|989898|1|9999004113|MR|Test|E|Lead 4113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004114|104114|989898|1|9999004114|MR|Test|E|Lead 4114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004115|104115|989898|1|9999004115|MR|Test|E|Lead 4115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004116|104116|989898|1|9999004116|MR|Test|E|Lead 4116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004117|104117|989898|1|9999004117|MR|Test|E|Lead 4117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004118|104118|989898|1|9999004118|MR|Test|E|Lead 4118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004119|104119|989898|1|9999004119|MR|Test|E|Lead 4119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004120|104120|989898|1|9999004120|MR|Test|E|Lead 4120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004121|104121|989898|1|9999004121|MR|Test|E|Lead 4121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004122|104122|989898|1|9999004122|MR|Test|E|Lead 4122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004123|104123|989898|1|9999004123|MR|Test|E|Lead 4123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004124|104124|989898|1|9999004124|MR|Test|E|Lead 4124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004125|104125|989898|1|9999004125|MR|Test|E|Lead 4125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004126|104126|989898|1|9999004126|MR|Test|E|Lead 4126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004127|104127|989898|1|9999004127|MR|Test|E|Lead 4127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004128|104128|989898|1|9999004128|MR|Test|E|Lead 4128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004129|104129|989898|1|9999004129|MR|Test|E|Lead 4129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004130|104130|989898|1|9999004130|MR|Test|E|Lead 4130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004131|104131|989898|1|9999004131|MR|Test|E|Lead 4131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004132|104132|989898|1|9999004132|MR|Test|E|Lead 4132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004133|104133|989898|1|9999004133|MR|Test|E|Lead 4133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004134|104134|989898|1|9999004134|MR|Test|E|Lead 4134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004135|104135|989898|1|9999004135|MR|Test|E|Lead 4135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004136|104136|989898|1|9999004136|MR|Test|E|Lead 4136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004137|104137|989898|1|9999004137|MR|Test|E|Lead 4137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004138|104138|989898|1|9999004138|MR|Test|E|Lead 4138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004139|104139|989898|1|9999004139|MR|Test|E|Lead 4139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004140|104140|989898|1|9999004140|MR|Test|E|Lead 4140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004141|104141|989898|1|9999004141|MR|Test|E|Lead 4141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004142|104142|989898|1|9999004142|MR|Test|E|Lead 4142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004143|104143|989898|1|9999004143|MR|Test|E|Lead 4143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004144|104144|989898|1|9999004144|MR|Test|E|Lead 4144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004145|104145|989898|1|9999004145|MR|Test|E|Lead 4145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004146|104146|989898|1|9999004146|MR|Test|E|Lead 4146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004147|104147|989898|1|9999004147|MR|Test|E|Lead 4147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004148|104148|989898|1|9999004148|MR|Test|E|Lead 4148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004149|104149|989898|1|9999004149|MR|Test|E|Lead 4149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004150|104150|989898|1|9999004150|MR|Test|E|Lead 4150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004151|104151|989898|1|9999004151|MR|Test|E|Lead 4151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004152|104152|989898|1|9999004152|MR|Test|E|Lead 4152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004153|104153|989898|1|9999004153|MR|Test|E|Lead 4153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004154|104154|989898|1|9999004154|MR|Test|E|Lead 4154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004155|104155|989898|1|9999004155|MR|Test|E|Lead 4155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004156|104156|989898|1|9999004156|MR|Test|E|Lead 4156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004157|104157|989898|1|9999004157|MR|Test|E|Lead 4157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004158|104158|989898|1|9999004158|MR|Test|E|Lead 4158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004159|104159|989898|1|9999004159|MR|Test|E|Lead 4159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004160|104160|989898|1|9999004160|MR|Test|E|Lead 4160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004161|104161|989898|1|9999004161|MR|Test|E|Lead 4161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004162|104162|989898|1|9999004162|MR|Test|E|Lead 4162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004163|104163|989898|1|9999004163|MR|Test|E|Lead 4163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004164|104164|989898|1|9999004164|MR|Test|E|Lead 4164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004165|104165|989898|1|9999004165|MR|Test|E|Lead 4165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004166|104166|989898|1|9999004166|MR|Test|E|Lead 4166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004167|104167|989898|1|9999004167|MR|Test|E|Lead 4167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004168|104168|989898|1|9999004168|MR|Test|E|Lead 4168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004169|104169|989898|1|9999004169|MR|Test|E|Lead 4169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004170|104170|989898|1|9999004170|MR|Test|E|Lead 4170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004171|104171|989898|1|9999004171|MR|Test|E|Lead 4171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004172|104172|989898|1|9999004172|MR|Test|E|Lead 4172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004173|104173|989898|1|9999004173|MR|Test|E|Lead 4173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004174|104174|989898|1|9999004174|MR|Test|E|Lead 4174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004175|104175|989898|1|9999004175|MR|Test|E|Lead 4175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004176|104176|989898|1|9999004176|MR|Test|E|Lead 4176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004177|104177|989898|1|9999004177|MR|Test|E|Lead 4177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004178|104178|989898|1|9999004178|MR|Test|E|Lead 4178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004179|104179|989898|1|9999004179|MR|Test|E|Lead 4179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004180|104180|989898|1|9999004180|MR|Test|E|Lead 4180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004181|104181|989898|1|9999004181|MR|Test|E|Lead 4181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004182|104182|989898|1|9999004182|MR|Test|E|Lead 4182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004183|104183|989898|1|9999004183|MR|Test|E|Lead 4183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004184|104184|989898|1|9999004184|MR|Test|E|Lead 4184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004185|104185|989898|1|9999004185|MR|Test|E|Lead 4185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004186|104186|989898|1|9999004186|MR|Test|E|Lead 4186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004187|104187|989898|1|9999004187|MR|Test|E|Lead 4187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004188|104188|989898|1|9999004188|MR|Test|E|Lead 4188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004189|104189|989898|1|9999004189|MR|Test|E|Lead 4189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004190|104190|989898|1|9999004190|MR|Test|E|Lead 4190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004191|104191|989898|1|9999004191|MR|Test|E|Lead 4191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004192|104192|989898|1|9999004192|MR|Test|E|Lead 4192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004193|104193|989898|1|9999004193|MR|Test|E|Lead 4193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004194|104194|989898|1|9999004194|MR|Test|E|Lead 4194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004195|104195|989898|1|9999004195|MR|Test|E|Lead 4195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004196|104196|989898|1|9999004196|MR|Test|E|Lead 4196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004197|104197|989898|1|9999004197|MR|Test|E|Lead 4197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004198|104198|989898|1|9999004198|MR|Test|E|Lead 4198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004199|104199|989898|1|9999004199|MR|Test|E|Lead 4199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004200|104200|989898|1|9999004200|MR|Test|E|Lead 4200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004201|104201|989898|1|9999004201|MR|Test|E|Lead 4201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004202|104202|989898|1|9999004202|MR|Test|E|Lead 4202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004203|104203|989898|1|9999004203|MR|Test|E|Lead 4203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004204|104204|989898|1|9999004204|MR|Test|E|Lead 4204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004205|104205|989898|1|9999004205|MR|Test|E|Lead 4205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004206|104206|989898|1|9999004206|MR|Test|E|Lead 4206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004207|104207|989898|1|9999004207|MR|Test|E|Lead 4207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004208|104208|989898|1|9999004208|MR|Test|E|Lead 4208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004209|104209|989898|1|9999004209|MR|Test|E|Lead 4209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004210|104210|989898|1|9999004210|MR|Test|E|Lead 4210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004211|104211|989898|1|9999004211|MR|Test|E|Lead 4211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004212|104212|989898|1|9999004212|MR|Test|E|Lead 4212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004213|104213|989898|1|9999004213|MR|Test|E|Lead 4213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004214|104214|989898|1|9999004214|MR|Test|E|Lead 4214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004215|104215|989898|1|9999004215|MR|Test|E|Lead 4215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004216|104216|989898|1|9999004216|MR|Test|E|Lead 4216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004217|104217|989898|1|9999004217|MR|Test|E|Lead 4217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004218|104218|989898|1|9999004218|MR|Test|E|Lead 4218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004219|104219|989898|1|9999004219|MR|Test|E|Lead 4219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004220|104220|989898|1|9999004220|MR|Test|E|Lead 4220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004221|104221|989898|1|9999004221|MR|Test|E|Lead 4221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004222|104222|989898|1|9999004222|MR|Test|E|Lead 4222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004223|104223|989898|1|9999004223|MR|Test|E|Lead 4223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004224|104224|989898|1|9999004224|MR|Test|E|Lead 4224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004225|104225|989898|1|9999004225|MR|Test|E|Lead 4225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004226|104226|989898|1|9999004226|MR|Test|E|Lead 4226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004227|104227|989898|1|9999004227|MR|Test|E|Lead 4227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004228|104228|989898|1|9999004228|MR|Test|E|Lead 4228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004229|104229|989898|1|9999004229|MR|Test|E|Lead 4229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004230|104230|989898|1|9999004230|MR|Test|E|Lead 4230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004231|104231|989898|1|9999004231|MR|Test|E|Lead 4231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004232|104232|989898|1|9999004232|MR|Test|E|Lead 4232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004233|104233|989898|1|9999004233|MR|Test|E|Lead 4233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004234|104234|989898|1|9999004234|MR|Test|E|Lead 4234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004235|104235|989898|1|9999004235|MR|Test|E|Lead 4235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004236|104236|989898|1|9999004236|MR|Test|E|Lead 4236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004237|104237|989898|1|9999004237|MR|Test|E|Lead 4237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004238|104238|989898|1|9999004238|MR|Test|E|Lead 4238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004239|104239|989898|1|9999004239|MR|Test|E|Lead 4239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004240|104240|989898|1|9999004240|MR|Test|E|Lead 4240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004241|104241|989898|1|9999004241|MR|Test|E|Lead 4241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004242|104242|989898|1|9999004242|MR|Test|E|Lead 4242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004243|104243|989898|1|9999004243|MR|Test|E|Lead 4243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004244|104244|989898|1|9999004244|MR|Test|E|Lead 4244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004245|104245|989898|1|9999004245|MR|Test|E|Lead 4245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004246|104246|989898|1|9999004246|MR|Test|E|Lead 4246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004247|104247|989898|1|9999004247|MR|Test|E|Lead 4247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004248|104248|989898|1|9999004248|MR|Test|E|Lead 4248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004249|104249|989898|1|9999004249|MR|Test|E|Lead 4249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004250|104250|989898|1|9999004250|MR|Test|E|Lead 4250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004251|104251|989898|1|9999004251|MR|Test|E|Lead 4251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004252|104252|989898|1|9999004252|MR|Test|E|Lead 4252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004253|104253|989898|1|9999004253|MR|Test|E|Lead 4253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004254|104254|989898|1|9999004254|MR|Test|E|Lead 4254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004255|104255|989898|1|9999004255|MR|Test|E|Lead 4255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004256|104256|989898|1|9999004256|MR|Test|E|Lead 4256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004257|104257|989898|1|9999004257|MR|Test|E|Lead 4257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004258|104258|989898|1|9999004258|MR|Test|E|Lead 4258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004259|104259|989898|1|9999004259|MR|Test|E|Lead 4259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004260|104260|989898|1|9999004260|MR|Test|E|Lead 4260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004261|104261|989898|1|9999004261|MR|Test|E|Lead 4261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004262|104262|989898|1|9999004262|MR|Test|E|Lead 4262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004263|104263|989898|1|9999004263|MR|Test|E|Lead 4263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004264|104264|989898|1|9999004264|MR|Test|E|Lead 4264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004265|104265|989898|1|9999004265|MR|Test|E|Lead 4265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004266|104266|989898|1|9999004266|MR|Test|E|Lead 4266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004267|104267|989898|1|9999004267|MR|Test|E|Lead 4267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004268|104268|989898|1|9999004268|MR|Test|E|Lead 4268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004269|104269|989898|1|9999004269|MR|Test|E|Lead 4269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004270|104270|989898|1|9999004270|MR|Test|E|Lead 4270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004271|104271|989898|1|9999004271|MR|Test|E|Lead 4271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004272|104272|989898|1|9999004272|MR|Test|E|Lead 4272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004273|104273|989898|1|9999004273|MR|Test|E|Lead 4273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004274|104274|989898|1|9999004274|MR|Test|E|Lead 4274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004275|104275|989898|1|9999004275|MR|Test|E|Lead 4275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004276|104276|989898|1|9999004276|MR|Test|E|Lead 4276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004277|104277|989898|1|9999004277|MR|Test|E|Lead 4277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004278|104278|989898|1|9999004278|MR|Test|E|Lead 4278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004279|104279|989898|1|9999004279|MR|Test|E|Lead 4279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004280|104280|989898|1|9999004280|MR|Test|E|Lead 4280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004281|104281|989898|1|9999004281|MR|Test|E|Lead 4281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004282|104282|989898|1|9999004282|MR|Test|E|Lead 4282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004283|104283|989898|1|9999004283|MR|Test|E|Lead 4283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004284|104284|989898|1|9999004284|MR|Test|E|Lead 4284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004285|104285|989898|1|9999004285|MR|Test|E|Lead 4285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004286|104286|989898|1|9999004286|MR|Test|E|Lead 4286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004287|104287|989898|1|9999004287|MR|Test|E|Lead 4287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004288|104288|989898|1|9999004288|MR|Test|E|Lead 4288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004289|104289|989898|1|9999004289|MR|Test|E|Lead 4289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004290|104290|989898|1|9999004290|MR|Test|E|Lead 4290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004291|104291|989898|1|9999004291|MR|Test|E|Lead 4291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004292|104292|989898|1|9999004292|MR|Test|E|Lead 4292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004293|104293|989898|1|9999004293|MR|Test|E|Lead 4293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004294|104294|989898|1|9999004294|MR|Test|E|Lead 4294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004295|104295|989898|1|9999004295|MR|Test|E|Lead 4295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004296|104296|989898|1|9999004296|MR|Test|E|Lead 4296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004297|104297|989898|1|9999004297|MR|Test|E|Lead 4297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004298|104298|989898|1|9999004298|MR|Test|E|Lead 4298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004299|104299|989898|1|9999004299|MR|Test|E|Lead 4299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004300|104300|989898|1|9999004300|MR|Test|E|Lead 4300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004301|104301|989898|1|9999004301|MR|Test|E|Lead 4301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004302|104302|989898|1|9999004302|MR|Test|E|Lead 4302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004303|104303|989898|1|9999004303|MR|Test|E|Lead 4303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004304|104304|989898|1|9999004304|MR|Test|E|Lead 4304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004305|104305|989898|1|9999004305|MR|Test|E|Lead 4305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004306|104306|989898|1|9999004306|MR|Test|E|Lead 4306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004307|104307|989898|1|9999004307|MR|Test|E|Lead 4307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004308|104308|989898|1|9999004308|MR|Test|E|Lead 4308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004309|104309|989898|1|9999004309|MR|Test|E|Lead 4309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004310|104310|989898|1|9999004310|MR|Test|E|Lead 4310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004311|104311|989898|1|9999004311|MR|Test|E|Lead 4311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004312|104312|989898|1|9999004312|MR|Test|E|Lead 4312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004313|104313|989898|1|9999004313|MR|Test|E|Lead 4313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004314|104314|989898|1|9999004314|MR|Test|E|Lead 4314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004315|104315|989898|1|9999004315|MR|Test|E|Lead 4315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004316|104316|989898|1|9999004316|MR|Test|E|Lead 4316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004317|104317|989898|1|9999004317|MR|Test|E|Lead 4317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004318|104318|989898|1|9999004318|MR|Test|E|Lead 4318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004319|104319|989898|1|9999004319|MR|Test|E|Lead 4319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004320|104320|989898|1|9999004320|MR|Test|E|Lead 4320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004321|104321|989898|1|9999004321|MR|Test|E|Lead 4321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004322|104322|989898|1|9999004322|MR|Test|E|Lead 4322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004323|104323|989898|1|9999004323|MR|Test|E|Lead 4323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004324|104324|989898|1|9999004324|MR|Test|E|Lead 4324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004325|104325|989898|1|9999004325|MR|Test|E|Lead 4325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004326|104326|989898|1|9999004326|MR|Test|E|Lead 4326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004327|104327|989898|1|9999004327|MR|Test|E|Lead 4327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004328|104328|989898|1|9999004328|MR|Test|E|Lead 4328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004329|104329|989898|1|9999004329|MR|Test|E|Lead 4329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004330|104330|989898|1|9999004330|MR|Test|E|Lead 4330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004331|104331|989898|1|9999004331|MR|Test|E|Lead 4331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004332|104332|989898|1|9999004332|MR|Test|E|Lead 4332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004333|104333|989898|1|9999004333|MR|Test|E|Lead 4333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004334|104334|989898|1|9999004334|MR|Test|E|Lead 4334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004335|104335|989898|1|9999004335|MR|Test|E|Lead 4335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004336|104336|989898|1|9999004336|MR|Test|E|Lead 4336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004337|104337|989898|1|9999004337|MR|Test|E|Lead 4337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004338|104338|989898|1|9999004338|MR|Test|E|Lead 4338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004339|104339|989898|1|9999004339|MR|Test|E|Lead 4339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004340|104340|989898|1|9999004340|MR|Test|E|Lead 4340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004341|104341|989898|1|9999004341|MR|Test|E|Lead 4341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004342|104342|989898|1|9999004342|MR|Test|E|Lead 4342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004343|104343|989898|1|9999004343|MR|Test|E|Lead 4343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004344|104344|989898|1|9999004344|MR|Test|E|Lead 4344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004345|104345|989898|1|9999004345|MR|Test|E|Lead 4345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004346|104346|989898|1|9999004346|MR|Test|E|Lead 4346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004347|104347|989898|1|9999004347|MR|Test|E|Lead 4347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004348|104348|989898|1|9999004348|MR|Test|E|Lead 4348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004349|104349|989898|1|9999004349|MR|Test|E|Lead 4349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004350|104350|989898|1|9999004350|MR|Test|E|Lead 4350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004351|104351|989898|1|9999004351|MR|Test|E|Lead 4351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004352|104352|989898|1|9999004352|MR|Test|E|Lead 4352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004353|104353|989898|1|9999004353|MR|Test|E|Lead 4353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004354|104354|989898|1|9999004354|MR|Test|E|Lead 4354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004355|104355|989898|1|9999004355|MR|Test|E|Lead 4355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004356|104356|989898|1|9999004356|MR|Test|E|Lead 4356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004357|104357|989898|1|9999004357|MR|Test|E|Lead 4357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004358|104358|989898|1|9999004358|MR|Test|E|Lead 4358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004359|104359|989898|1|9999004359|MR|Test|E|Lead 4359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004360|104360|989898|1|9999004360|MR|Test|E|Lead 4360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004361|104361|989898|1|9999004361|MR|Test|E|Lead 4361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004362|104362|989898|1|9999004362|MR|Test|E|Lead 4362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004363|104363|989898|1|9999004363|MR|Test|E|Lead 4363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004364|104364|989898|1|9999004364|MR|Test|E|Lead 4364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004365|104365|989898|1|9999004365|MR|Test|E|Lead 4365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004366|104366|989898|1|9999004366|MR|Test|E|Lead 4366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004367|104367|989898|1|9999004367|MR|Test|E|Lead 4367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004368|104368|989898|1|9999004368|MR|Test|E|Lead 4368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004369|104369|989898|1|9999004369|MR|Test|E|Lead 4369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004370|104370|989898|1|9999004370|MR|Test|E|Lead 4370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004371|104371|989898|1|9999004371|MR|Test|E|Lead 4371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004372|104372|989898|1|9999004372|MR|Test|E|Lead 4372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004373|104373|989898|1|9999004373|MR|Test|E|Lead 4373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004374|104374|989898|1|9999004374|MR|Test|E|Lead 4374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004375|104375|989898|1|9999004375|MR|Test|E|Lead 4375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004376|104376|989898|1|9999004376|MR|Test|E|Lead 4376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004377|104377|989898|1|9999004377|MR|Test|E|Lead 4377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004378|104378|989898|1|9999004378|MR|Test|E|Lead 4378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004379|104379|989898|1|9999004379|MR|Test|E|Lead 4379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004380|104380|989898|1|9999004380|MR|Test|E|Lead 4380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004381|104381|989898|1|9999004381|MR|Test|E|Lead 4381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004382|104382|989898|1|9999004382|MR|Test|E|Lead 4382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004383|104383|989898|1|9999004383|MR|Test|E|Lead 4383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004384|104384|989898|1|9999004384|MR|Test|E|Lead 4384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004385|104385|989898|1|9999004385|MR|Test|E|Lead 4385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004386|104386|989898|1|9999004386|MR|Test|E|Lead 4386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004387|104387|989898|1|9999004387|MR|Test|E|Lead 4387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004388|104388|989898|1|9999004388|MR|Test|E|Lead 4388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004389|104389|989898|1|9999004389|MR|Test|E|Lead 4389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004390|104390|989898|1|9999004390|MR|Test|E|Lead 4390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004391|104391|989898|1|9999004391|MR|Test|E|Lead 4391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004392|104392|989898|1|9999004392|MR|Test|E|Lead 4392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004393|104393|989898|1|9999004393|MR|Test|E|Lead 4393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004394|104394|989898|1|9999004394|MR|Test|E|Lead 4394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004395|104395|989898|1|9999004395|MR|Test|E|Lead 4395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004396|104396|989898|1|9999004396|MR|Test|E|Lead 4396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004397|104397|989898|1|9999004397|MR|Test|E|Lead 4397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004398|104398|989898|1|9999004398|MR|Test|E|Lead 4398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004399|104399|989898|1|9999004399|MR|Test|E|Lead 4399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004400|104400|989898|1|9999004400|MR|Test|E|Lead 4400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004401|104401|989898|1|9999004401|MR|Test|E|Lead 4401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004402|104402|989898|1|9999004402|MR|Test|E|Lead 4402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004403|104403|989898|1|9999004403|MR|Test|E|Lead 4403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004404|104404|989898|1|9999004404|MR|Test|E|Lead 4404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004405|104405|989898|1|9999004405|MR|Test|E|Lead 4405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004406|104406|989898|1|9999004406|MR|Test|E|Lead 4406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004407|104407|989898|1|9999004407|MR|Test|E|Lead 4407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004408|104408|989898|1|9999004408|MR|Test|E|Lead 4408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004409|104409|989898|1|9999004409|MR|Test|E|Lead 4409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004410|104410|989898|1|9999004410|MR|Test|E|Lead 4410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004411|104411|989898|1|9999004411|MR|Test|E|Lead 4411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004412|104412|989898|1|9999004412|MR|Test|E|Lead 4412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004413|104413|989898|1|9999004413|MR|Test|E|Lead 4413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004414|104414|989898|1|9999004414|MR|Test|E|Lead 4414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004415|104415|989898|1|9999004415|MR|Test|E|Lead 4415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004416|104416|989898|1|9999004416|MR|Test|E|Lead 4416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004417|104417|989898|1|9999004417|MR|Test|E|Lead 4417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004418|104418|989898|1|9999004418|MR|Test|E|Lead 4418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004419|104419|989898|1|9999004419|MR|Test|E|Lead 4419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004420|104420|989898|1|9999004420|MR|Test|E|Lead 4420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004421|104421|989898|1|9999004421|MR|Test|E|Lead 4421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004422|104422|989898|1|9999004422|MR|Test|E|Lead 4422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004423|104423|989898|1|9999004423|MR|Test|E|Lead 4423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004424|104424|989898|1|9999004424|MR|Test|E|Lead 4424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004425|104425|989898|1|9999004425|MR|Test|E|Lead 4425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004426|104426|989898|1|9999004426|MR|Test|E|Lead 4426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004427|104427|989898|1|9999004427|MR|Test|E|Lead 4427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004428|104428|989898|1|9999004428|MR|Test|E|Lead 4428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004429|104429|989898|1|9999004429|MR|Test|E|Lead 4429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004430|104430|989898|1|9999004430|MR|Test|E|Lead 4430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004431|104431|989898|1|9999004431|MR|Test|E|Lead 4431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004432|104432|989898|1|9999004432|MR|Test|E|Lead 4432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004433|104433|989898|1|9999004433|MR|Test|E|Lead 4433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004434|104434|989898|1|9999004434|MR|Test|E|Lead 4434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004435|104435|989898|1|9999004435|MR|Test|E|Lead 4435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004436|104436|989898|1|9999004436|MR|Test|E|Lead 4436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004437|104437|989898|1|9999004437|MR|Test|E|Lead 4437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004438|104438|989898|1|9999004438|MR|Test|E|Lead 4438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004439|104439|989898|1|9999004439|MR|Test|E|Lead 4439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004440|104440|989898|1|9999004440|MR|Test|E|Lead 4440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004441|104441|989898|1|9999004441|MR|Test|E|Lead 4441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004442|104442|989898|1|9999004442|MR|Test|E|Lead 4442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004443|104443|989898|1|9999004443|MR|Test|E|Lead 4443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004444|104444|989898|1|9999004444|MR|Test|E|Lead 4444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004445|104445|989898|1|9999004445|MR|Test|E|Lead 4445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004446|104446|989898|1|9999004446|MR|Test|E|Lead 4446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004447|104447|989898|1|9999004447|MR|Test|E|Lead 4447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004448|104448|989898|1|9999004448|MR|Test|E|Lead 4448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004449|104449|989898|1|9999004449|MR|Test|E|Lead 4449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004450|104450|989898|1|9999004450|MR|Test|E|Lead 4450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004451|104451|989898|1|9999004451|MR|Test|E|Lead 4451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004452|104452|989898|1|9999004452|MR|Test|E|Lead 4452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004453|104453|989898|1|9999004453|MR|Test|E|Lead 4453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004454|104454|989898|1|9999004454|MR|Test|E|Lead 4454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004455|104455|989898|1|9999004455|MR|Test|E|Lead 4455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004456|104456|989898|1|9999004456|MR|Test|E|Lead 4456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004457|104457|989898|1|9999004457|MR|Test|E|Lead 4457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004458|104458|989898|1|9999004458|MR|Test|E|Lead 4458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004459|104459|989898|1|9999004459|MR|Test|E|Lead 4459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004460|104460|989898|1|9999004460|MR|Test|E|Lead 4460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004461|104461|989898|1|9999004461|MR|Test|E|Lead 4461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004462|104462|989898|1|9999004462|MR|Test|E|Lead 4462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004463|104463|989898|1|9999004463|MR|Test|E|Lead 4463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004464|104464|989898|1|9999004464|MR|Test|E|Lead 4464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004465|104465|989898|1|9999004465|MR|Test|E|Lead 4465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004466|104466|989898|1|9999004466|MR|Test|E|Lead 4466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004467|104467|989898|1|9999004467|MR|Test|E|Lead 4467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004468|104468|989898|1|9999004468|MR|Test|E|Lead 4468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004469|104469|989898|1|9999004469|MR|Test|E|Lead 4469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004470|104470|989898|1|9999004470|MR|Test|E|Lead 4470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004471|104471|989898|1|9999004471|MR|Test|E|Lead 4471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004472|104472|989898|1|9999004472|MR|Test|E|Lead 4472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004473|104473|989898|1|9999004473|MR|Test|E|Lead 4473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004474|104474|989898|1|9999004474|MR|Test|E|Lead 4474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004475|104475|989898|1|9999004475|MR|Test|E|Lead 4475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004476|104476|989898|1|9999004476|MR|Test|E|Lead 4476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004477|104477|989898|1|9999004477|MR|Test|E|Lead 4477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004478|104478|989898|1|9999004478|MR|Test|E|Lead 4478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004479|104479|989898|1|9999004479|MR|Test|E|Lead 4479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004480|104480|989898|1|9999004480|MR|Test|E|Lead 4480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004481|104481|989898|1|9999004481|MR|Test|E|Lead 4481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004482|104482|989898|1|9999004482|MR|Test|E|Lead 4482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004483|104483|989898|1|9999004483|MR|Test|E|Lead 4483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004484|104484|989898|1|9999004484|MR|Test|E|Lead 4484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004485|104485|989898|1|9999004485|MR|Test|E|Lead 4485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004486|104486|989898|1|9999004486|MR|Test|E|Lead 4486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004487|104487|989898|1|9999004487|MR|Test|E|Lead 4487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004488|104488|989898|1|9999004488|MR|Test|E|Lead 4488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004489|104489|989898|1|9999004489|MR|Test|E|Lead 4489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004490|104490|989898|1|9999004490|MR|Test|E|Lead 4490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004491|104491|989898|1|9999004491|MR|Test|E|Lead 4491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004492|104492|989898|1|9999004492|MR|Test|E|Lead 4492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004493|104493|989898|1|9999004493|MR|Test|E|Lead 4493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004494|104494|989898|1|9999004494|MR|Test|E|Lead 4494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004495|104495|989898|1|9999004495|MR|Test|E|Lead 4495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004496|104496|989898|1|9999004496|MR|Test|E|Lead 4496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004497|104497|989898|1|9999004497|MR|Test|E|Lead 4497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004498|104498|989898|1|9999004498|MR|Test|E|Lead 4498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004499|104499|989898|1|9999004499|MR|Test|E|Lead 4499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004500|104500|989898|1|9999004500|MR|Test|E|Lead 4500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004501|104501|989898|1|9999004501|MR|Test|E|Lead 4501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004502|104502|989898|1|9999004502|MR|Test|E|Lead 4502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004503|104503|989898|1|9999004503|MR|Test|E|Lead 4503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004504|104504|989898|1|9999004504|MR|Test|E|Lead 4504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004505|104505|989898|1|9999004505|MR|Test|E|Lead 4505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004506|104506|989898|1|9999004506|MR|Test|E|Lead 4506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004507|104507|989898|1|9999004507|MR|Test|E|Lead 4507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004508|104508|989898|1|9999004508|MR|Test|E|Lead 4508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004509|104509|989898|1|9999004509|MR|Test|E|Lead 4509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004510|104510|989898|1|9999004510|MR|Test|E|Lead 4510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004511|104511|989898|1|9999004511|MR|Test|E|Lead 4511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004512|104512|989898|1|9999004512|MR|Test|E|Lead 4512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004513|104513|989898|1|9999004513|MR|Test|E|Lead 4513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004514|104514|989898|1|9999004514|MR|Test|E|Lead 4514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004515|104515|989898|1|9999004515|MR|Test|E|Lead 4515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004516|104516|989898|1|9999004516|MR|Test|E|Lead 4516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004517|104517|989898|1|9999004517|MR|Test|E|Lead 4517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004518|104518|989898|1|9999004518|MR|Test|E|Lead 4518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004519|104519|989898|1|9999004519|MR|Test|E|Lead 4519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004520|104520|989898|1|9999004520|MR|Test|E|Lead 4520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004521|104521|989898|1|9999004521|MR|Test|E|Lead 4521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004522|104522|989898|1|9999004522|MR|Test|E|Lead 4522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004523|104523|989898|1|9999004523|MR|Test|E|Lead 4523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004524|104524|989898|1|9999004524|MR|Test|E|Lead 4524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004525|104525|989898|1|9999004525|MR|Test|E|Lead 4525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004526|104526|989898|1|9999004526|MR|Test|E|Lead 4526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004527|104527|989898|1|9999004527|MR|Test|E|Lead 4527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004528|104528|989898|1|9999004528|MR|Test|E|Lead 4528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004529|104529|989898|1|9999004529|MR|Test|E|Lead 4529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004530|104530|989898|1|9999004530|MR|Test|E|Lead 4530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004531|104531|989898|1|9999004531|MR|Test|E|Lead 4531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004532|104532|989898|1|9999004532|MR|Test|E|Lead 4532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004533|104533|989898|1|9999004533|MR|Test|E|Lead 4533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004534|104534|989898|1|9999004534|MR|Test|E|Lead 4534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004535|104535|989898|1|9999004535|MR|Test|E|Lead 4535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004536|104536|989898|1|9999004536|MR|Test|E|Lead 4536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004537|104537|989898|1|9999004537|MR|Test|E|Lead 4537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004538|104538|989898|1|9999004538|MR|Test|E|Lead 4538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004539|104539|989898|1|9999004539|MR|Test|E|Lead 4539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004540|104540|989898|1|9999004540|MR|Test|E|Lead 4540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004541|104541|989898|1|9999004541|MR|Test|E|Lead 4541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004542|104542|989898|1|9999004542|MR|Test|E|Lead 4542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004543|104543|989898|1|9999004543|MR|Test|E|Lead 4543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004544|104544|989898|1|9999004544|MR|Test|E|Lead 4544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004545|104545|989898|1|9999004545|MR|Test|E|Lead 4545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004546|104546|989898|1|9999004546|MR|Test|E|Lead 4546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004547|104547|989898|1|9999004547|MR|Test|E|Lead 4547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004548|104548|989898|1|9999004548|MR|Test|E|Lead 4548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004549|104549|989898|1|9999004549|MR|Test|E|Lead 4549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004550|104550|989898|1|9999004550|MR|Test|E|Lead 4550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004551|104551|989898|1|9999004551|MR|Test|E|Lead 4551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004552|104552|989898|1|9999004552|MR|Test|E|Lead 4552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004553|104553|989898|1|9999004553|MR|Test|E|Lead 4553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004554|104554|989898|1|9999004554|MR|Test|E|Lead 4554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004555|104555|989898|1|9999004555|MR|Test|E|Lead 4555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004556|104556|989898|1|9999004556|MR|Test|E|Lead 4556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004557|104557|989898|1|9999004557|MR|Test|E|Lead 4557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004558|104558|989898|1|9999004558|MR|Test|E|Lead 4558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004559|104559|989898|1|9999004559|MR|Test|E|Lead 4559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004560|104560|989898|1|9999004560|MR|Test|E|Lead 4560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004561|104561|989898|1|9999004561|MR|Test|E|Lead 4561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004562|104562|989898|1|9999004562|MR|Test|E|Lead 4562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004563|104563|989898|1|9999004563|MR|Test|E|Lead 4563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004564|104564|989898|1|9999004564|MR|Test|E|Lead 4564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004565|104565|989898|1|9999004565|MR|Test|E|Lead 4565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004566|104566|989898|1|9999004566|MR|Test|E|Lead 4566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004567|104567|989898|1|9999004567|MR|Test|E|Lead 4567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004568|104568|989898|1|9999004568|MR|Test|E|Lead 4568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004569|104569|989898|1|9999004569|MR|Test|E|Lead 4569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004570|104570|989898|1|9999004570|MR|Test|E|Lead 4570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004571|104571|989898|1|9999004571|MR|Test|E|Lead 4571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004572|104572|989898|1|9999004572|MR|Test|E|Lead 4572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004573|104573|989898|1|9999004573|MR|Test|E|Lead 4573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004574|104574|989898|1|9999004574|MR|Test|E|Lead 4574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004575|104575|989898|1|9999004575|MR|Test|E|Lead 4575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004576|104576|989898|1|9999004576|MR|Test|E|Lead 4576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004577|104577|989898|1|9999004577|MR|Test|E|Lead 4577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004578|104578|989898|1|9999004578|MR|Test|E|Lead 4578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004579|104579|989898|1|9999004579|MR|Test|E|Lead 4579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004580|104580|989898|1|9999004580|MR|Test|E|Lead 4580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004581|104581|989898|1|9999004581|MR|Test|E|Lead 4581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004582|104582|989898|1|9999004582|MR|Test|E|Lead 4582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004583|104583|989898|1|9999004583|MR|Test|E|Lead 4583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004584|104584|989898|1|9999004584|MR|Test|E|Lead 4584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004585|104585|989898|1|9999004585|MR|Test|E|Lead 4585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004586|104586|989898|1|9999004586|MR|Test|E|Lead 4586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004587|104587|989898|1|9999004587|MR|Test|E|Lead 4587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004588|104588|989898|1|9999004588|MR|Test|E|Lead 4588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004589|104589|989898|1|9999004589|MR|Test|E|Lead 4589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004590|104590|989898|1|9999004590|MR|Test|E|Lead 4590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004591|104591|989898|1|9999004591|MR|Test|E|Lead 4591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004592|104592|989898|1|9999004592|MR|Test|E|Lead 4592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004593|104593|989898|1|9999004593|MR|Test|E|Lead 4593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004594|104594|989898|1|9999004594|MR|Test|E|Lead 4594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004595|104595|989898|1|9999004595|MR|Test|E|Lead 4595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004596|104596|989898|1|9999004596|MR|Test|E|Lead 4596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004597|104597|989898|1|9999004597|MR|Test|E|Lead 4597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004598|104598|989898|1|9999004598|MR|Test|E|Lead 4598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004599|104599|989898|1|9999004599|MR|Test|E|Lead 4599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004600|104600|989898|1|9999004600|MR|Test|E|Lead 4600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004601|104601|989898|1|9999004601|MR|Test|E|Lead 4601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004602|104602|989898|1|9999004602|MR|Test|E|Lead 4602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004603|104603|989898|1|9999004603|MR|Test|E|Lead 4603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004604|104604|989898|1|9999004604|MR|Test|E|Lead 4604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004605|104605|989898|1|9999004605|MR|Test|E|Lead 4605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004606|104606|989898|1|9999004606|MR|Test|E|Lead 4606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004607|104607|989898|1|9999004607|MR|Test|E|Lead 4607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004608|104608|989898|1|9999004608|MR|Test|E|Lead 4608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004609|104609|989898|1|9999004609|MR|Test|E|Lead 4609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004610|104610|989898|1|9999004610|MR|Test|E|Lead 4610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004611|104611|989898|1|9999004611|MR|Test|E|Lead 4611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004612|104612|989898|1|9999004612|MR|Test|E|Lead 4612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004613|104613|989898|1|9999004613|MR|Test|E|Lead 4613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004614|104614|989898|1|9999004614|MR|Test|E|Lead 4614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004615|104615|989898|1|9999004615|MR|Test|E|Lead 4615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004616|104616|989898|1|9999004616|MR|Test|E|Lead 4616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004617|104617|989898|1|9999004617|MR|Test|E|Lead 4617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004618|104618|989898|1|9999004618|MR|Test|E|Lead 4618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004619|104619|989898|1|9999004619|MR|Test|E|Lead 4619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004620|104620|989898|1|9999004620|MR|Test|E|Lead 4620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004621|104621|989898|1|9999004621|MR|Test|E|Lead 4621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004622|104622|989898|1|9999004622|MR|Test|E|Lead 4622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004623|104623|989898|1|9999004623|MR|Test|E|Lead 4623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004624|104624|989898|1|9999004624|MR|Test|E|Lead 4624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004625|104625|989898|1|9999004625|MR|Test|E|Lead 4625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004626|104626|989898|1|9999004626|MR|Test|E|Lead 4626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004627|104627|989898|1|9999004627|MR|Test|E|Lead 4627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004628|104628|989898|1|9999004628|MR|Test|E|Lead 4628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004629|104629|989898|1|9999004629|MR|Test|E|Lead 4629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004630|104630|989898|1|9999004630|MR|Test|E|Lead 4630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004631|104631|989898|1|9999004631|MR|Test|E|Lead 4631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004632|104632|989898|1|9999004632|MR|Test|E|Lead 4632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004633|104633|989898|1|9999004633|MR|Test|E|Lead 4633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004634|104634|989898|1|9999004634|MR|Test|E|Lead 4634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004635|104635|989898|1|9999004635|MR|Test|E|Lead 4635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004636|104636|989898|1|9999004636|MR|Test|E|Lead 4636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004637|104637|989898|1|9999004637|MR|Test|E|Lead 4637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004638|104638|989898|1|9999004638|MR|Test|E|Lead 4638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004639|104639|989898|1|9999004639|MR|Test|E|Lead 4639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004640|104640|989898|1|9999004640|MR|Test|E|Lead 4640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004641|104641|989898|1|9999004641|MR|Test|E|Lead 4641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004642|104642|989898|1|9999004642|MR|Test|E|Lead 4642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004643|104643|989898|1|9999004643|MR|Test|E|Lead 4643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004644|104644|989898|1|9999004644|MR|Test|E|Lead 4644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004645|104645|989898|1|9999004645|MR|Test|E|Lead 4645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004646|104646|989898|1|9999004646|MR|Test|E|Lead 4646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004647|104647|989898|1|9999004647|MR|Test|E|Lead 4647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004648|104648|989898|1|9999004648|MR|Test|E|Lead 4648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004649|104649|989898|1|9999004649|MR|Test|E|Lead 4649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004650|104650|989898|1|9999004650|MR|Test|E|Lead 4650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004651|104651|989898|1|9999004651|MR|Test|E|Lead 4651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004652|104652|989898|1|9999004652|MR|Test|E|Lead 4652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004653|104653|989898|1|9999004653|MR|Test|E|Lead 4653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004654|104654|989898|1|9999004654|MR|Test|E|Lead 4654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004655|104655|989898|1|9999004655|MR|Test|E|Lead 4655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004656|104656|989898|1|9999004656|MR|Test|E|Lead 4656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004657|104657|989898|1|9999004657|MR|Test|E|Lead 4657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004658|104658|989898|1|9999004658|MR|Test|E|Lead 4658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004659|104659|989898|1|9999004659|MR|Test|E|Lead 4659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004660|104660|989898|1|9999004660|MR|Test|E|Lead 4660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004661|104661|989898|1|9999004661|MR|Test|E|Lead 4661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004662|104662|989898|1|9999004662|MR|Test|E|Lead 4662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004663|104663|989898|1|9999004663|MR|Test|E|Lead 4663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004664|104664|989898|1|9999004664|MR|Test|E|Lead 4664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004665|104665|989898|1|9999004665|MR|Test|E|Lead 4665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004666|104666|989898|1|9999004666|MR|Test|E|Lead 4666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004667|104667|989898|1|9999004667|MR|Test|E|Lead 4667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004668|104668|989898|1|9999004668|MR|Test|E|Lead 4668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004669|104669|989898|1|9999004669|MR|Test|E|Lead 4669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004670|104670|989898|1|9999004670|MR|Test|E|Lead 4670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004671|104671|989898|1|9999004671|MR|Test|E|Lead 4671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004672|104672|989898|1|9999004672|MR|Test|E|Lead 4672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004673|104673|989898|1|9999004673|MR|Test|E|Lead 4673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004674|104674|989898|1|9999004674|MR|Test|E|Lead 4674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004675|104675|989898|1|9999004675|MR|Test|E|Lead 4675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004676|104676|989898|1|9999004676|MR|Test|E|Lead 4676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004677|104677|989898|1|9999004677|MR|Test|E|Lead 4677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004678|104678|989898|1|9999004678|MR|Test|E|Lead 4678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004679|104679|989898|1|9999004679|MR|Test|E|Lead 4679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004680|104680|989898|1|9999004680|MR|Test|E|Lead 4680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004681|104681|989898|1|9999004681|MR|Test|E|Lead 4681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004682|104682|989898|1|9999004682|MR|Test|E|Lead 4682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004683|104683|989898|1|9999004683|MR|Test|E|Lead 4683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004684|104684|989898|1|9999004684|MR|Test|E|Lead 4684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004685|104685|989898|1|9999004685|MR|Test|E|Lead 4685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004686|104686|989898|1|9999004686|MR|Test|E|Lead 4686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004687|104687|989898|1|9999004687|MR|Test|E|Lead 4687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004688|104688|989898|1|9999004688|MR|Test|E|Lead 4688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004689|104689|989898|1|9999004689|MR|Test|E|Lead 4689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004690|104690|989898|1|9999004690|MR|Test|E|Lead 4690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004691|104691|989898|1|9999004691|MR|Test|E|Lead 4691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004692|104692|989898|1|9999004692|MR|Test|E|Lead 4692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004693|104693|989898|1|9999004693|MR|Test|E|Lead 4693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004694|104694|989898|1|9999004694|MR|Test|E|Lead 4694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004695|104695|989898|1|9999004695|MR|Test|E|Lead 4695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004696|104696|989898|1|9999004696|MR|Test|E|Lead 4696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004697|104697|989898|1|9999004697|MR|Test|E|Lead 4697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004698|104698|989898|1|9999004698|MR|Test|E|Lead 4698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004699|104699|989898|1|9999004699|MR|Test|E|Lead 4699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004700|104700|989898|1|9999004700|MR|Test|E|Lead 4700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004701|104701|989898|1|9999004701|MR|Test|E|Lead 4701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004702|104702|989898|1|9999004702|MR|Test|E|Lead 4702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004703|104703|989898|1|9999004703|MR|Test|E|Lead 4703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004704|104704|989898|1|9999004704|MR|Test|E|Lead 4704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004705|104705|989898|1|9999004705|MR|Test|E|Lead 4705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004706|104706|989898|1|9999004706|MR|Test|E|Lead 4706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004707|104707|989898|1|9999004707|MR|Test|E|Lead 4707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004708|104708|989898|1|9999004708|MR|Test|E|Lead 4708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004709|104709|989898|1|9999004709|MR|Test|E|Lead 4709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004710|104710|989898|1|9999004710|MR|Test|E|Lead 4710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004711|104711|989898|1|9999004711|MR|Test|E|Lead 4711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004712|104712|989898|1|9999004712|MR|Test|E|Lead 4712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004713|104713|989898|1|9999004713|MR|Test|E|Lead 4713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004714|104714|989898|1|9999004714|MR|Test|E|Lead 4714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004715|104715|989898|1|9999004715|MR|Test|E|Lead 4715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004716|104716|989898|1|9999004716|MR|Test|E|Lead 4716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004717|104717|989898|1|9999004717|MR|Test|E|Lead 4717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004718|104718|989898|1|9999004718|MR|Test|E|Lead 4718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004719|104719|989898|1|9999004719|MR|Test|E|Lead 4719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004720|104720|989898|1|9999004720|MR|Test|E|Lead 4720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004721|104721|989898|1|9999004721|MR|Test|E|Lead 4721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004722|104722|989898|1|9999004722|MR|Test|E|Lead 4722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004723|104723|989898|1|9999004723|MR|Test|E|Lead 4723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004724|104724|989898|1|9999004724|MR|Test|E|Lead 4724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004725|104725|989898|1|9999004725|MR|Test|E|Lead 4725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004726|104726|989898|1|9999004726|MR|Test|E|Lead 4726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004727|104727|989898|1|9999004727|MR|Test|E|Lead 4727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004728|104728|989898|1|9999004728|MR|Test|E|Lead 4728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004729|104729|989898|1|9999004729|MR|Test|E|Lead 4729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004730|104730|989898|1|9999004730|MR|Test|E|Lead 4730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004731|104731|989898|1|9999004731|MR|Test|E|Lead 4731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004732|104732|989898|1|9999004732|MR|Test|E|Lead 4732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004733|104733|989898|1|9999004733|MR|Test|E|Lead 4733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004734|104734|989898|1|9999004734|MR|Test|E|Lead 4734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004735|104735|989898|1|9999004735|MR|Test|E|Lead 4735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004736|104736|989898|1|9999004736|MR|Test|E|Lead 4736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004737|104737|989898|1|9999004737|MR|Test|E|Lead 4737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004738|104738|989898|1|9999004738|MR|Test|E|Lead 4738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004739|104739|989898|1|9999004739|MR|Test|E|Lead 4739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004740|104740|989898|1|9999004740|MR|Test|E|Lead 4740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004741|104741|989898|1|9999004741|MR|Test|E|Lead 4741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004742|104742|989898|1|9999004742|MR|Test|E|Lead 4742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004743|104743|989898|1|9999004743|MR|Test|E|Lead 4743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004744|104744|989898|1|9999004744|MR|Test|E|Lead 4744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004745|104745|989898|1|9999004745|MR|Test|E|Lead 4745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004746|104746|989898|1|9999004746|MR|Test|E|Lead 4746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004747|104747|989898|1|9999004747|MR|Test|E|Lead 4747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004748|104748|989898|1|9999004748|MR|Test|E|Lead 4748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004749|104749|989898|1|9999004749|MR|Test|E|Lead 4749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004750|104750|989898|1|9999004750|MR|Test|E|Lead 4750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004751|104751|989898|1|9999004751|MR|Test|E|Lead 4751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004752|104752|989898|1|9999004752|MR|Test|E|Lead 4752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004753|104753|989898|1|9999004753|MR|Test|E|Lead 4753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004754|104754|989898|1|9999004754|MR|Test|E|Lead 4754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004755|104755|989898|1|9999004755|MR|Test|E|Lead 4755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004756|104756|989898|1|9999004756|MR|Test|E|Lead 4756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004757|104757|989898|1|9999004757|MR|Test|E|Lead 4757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004758|104758|989898|1|9999004758|MR|Test|E|Lead 4758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004759|104759|989898|1|9999004759|MR|Test|E|Lead 4759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004760|104760|989898|1|9999004760|MR|Test|E|Lead 4760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004761|104761|989898|1|9999004761|MR|Test|E|Lead 4761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004762|104762|989898|1|9999004762|MR|Test|E|Lead 4762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004763|104763|989898|1|9999004763|MR|Test|E|Lead 4763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004764|104764|989898|1|9999004764|MR|Test|E|Lead 4764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004765|104765|989898|1|9999004765|MR|Test|E|Lead 4765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004766|104766|989898|1|9999004766|MR|Test|E|Lead 4766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004767|104767|989898|1|9999004767|MR|Test|E|Lead 4767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004768|104768|989898|1|9999004768|MR|Test|E|Lead 4768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004769|104769|989898|1|9999004769|MR|Test|E|Lead 4769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004770|104770|989898|1|9999004770|MR|Test|E|Lead 4770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004771|104771|989898|1|9999004771|MR|Test|E|Lead 4771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004772|104772|989898|1|9999004772|MR|Test|E|Lead 4772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004773|104773|989898|1|9999004773|MR|Test|E|Lead 4773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004774|104774|989898|1|9999004774|MR|Test|E|Lead 4774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004775|104775|989898|1|9999004775|MR|Test|E|Lead 4775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004776|104776|989898|1|9999004776|MR|Test|E|Lead 4776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004777|104777|989898|1|9999004777|MR|Test|E|Lead 4777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004778|104778|989898|1|9999004778|MR|Test|E|Lead 4778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004779|104779|989898|1|9999004779|MR|Test|E|Lead 4779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004780|104780|989898|1|9999004780|MR|Test|E|Lead 4780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004781|104781|989898|1|9999004781|MR|Test|E|Lead 4781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004782|104782|989898|1|9999004782|MR|Test|E|Lead 4782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004783|104783|989898|1|9999004783|MR|Test|E|Lead 4783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004784|104784|989898|1|9999004784|MR|Test|E|Lead 4784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004785|104785|989898|1|9999004785|MR|Test|E|Lead 4785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004786|104786|989898|1|9999004786|MR|Test|E|Lead 4786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004787|104787|989898|1|9999004787|MR|Test|E|Lead 4787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004788|104788|989898|1|9999004788|MR|Test|E|Lead 4788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004789|104789|989898|1|9999004789|MR|Test|E|Lead 4789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004790|104790|989898|1|9999004790|MR|Test|E|Lead 4790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004791|104791|989898|1|9999004791|MR|Test|E|Lead 4791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004792|104792|989898|1|9999004792|MR|Test|E|Lead 4792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004793|104793|989898|1|9999004793|MR|Test|E|Lead 4793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004794|104794|989898|1|9999004794|MR|Test|E|Lead 4794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004795|104795|989898|1|9999004795|MR|Test|E|Lead 4795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004796|104796|989898|1|9999004796|MR|Test|E|Lead 4796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004797|104797|989898|1|9999004797|MR|Test|E|Lead 4797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004798|104798|989898|1|9999004798|MR|Test|E|Lead 4798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004799|104799|989898|1|9999004799|MR|Test|E|Lead 4799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004800|104800|989898|1|9999004800|MR|Test|E|Lead 4800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004801|104801|989898|1|9999004801|MR|Test|E|Lead 4801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004802|104802|989898|1|9999004802|MR|Test|E|Lead 4802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004803|104803|989898|1|9999004803|MR|Test|E|Lead 4803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004804|104804|989898|1|9999004804|MR|Test|E|Lead 4804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004805|104805|989898|1|9999004805|MR|Test|E|Lead 4805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004806|104806|989898|1|9999004806|MR|Test|E|Lead 4806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004807|104807|989898|1|9999004807|MR|Test|E|Lead 4807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004808|104808|989898|1|9999004808|MR|Test|E|Lead 4808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004809|104809|989898|1|9999004809|MR|Test|E|Lead 4809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004810|104810|989898|1|9999004810|MR|Test|E|Lead 4810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004811|104811|989898|1|9999004811|MR|Test|E|Lead 4811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004812|104812|989898|1|9999004812|MR|Test|E|Lead 4812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004813|104813|989898|1|9999004813|MR|Test|E|Lead 4813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004814|104814|989898|1|9999004814|MR|Test|E|Lead 4814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004815|104815|989898|1|9999004815|MR|Test|E|Lead 4815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004816|104816|989898|1|9999004816|MR|Test|E|Lead 4816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004817|104817|989898|1|9999004817|MR|Test|E|Lead 4817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004818|104818|989898|1|9999004818|MR|Test|E|Lead 4818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004819|104819|989898|1|9999004819|MR|Test|E|Lead 4819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004820|104820|989898|1|9999004820|MR|Test|E|Lead 4820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004821|104821|989898|1|9999004821|MR|Test|E|Lead 4821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004822|104822|989898|1|9999004822|MR|Test|E|Lead 4822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004823|104823|989898|1|9999004823|MR|Test|E|Lead 4823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004824|104824|989898|1|9999004824|MR|Test|E|Lead 4824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004825|104825|989898|1|9999004825|MR|Test|E|Lead 4825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004826|104826|989898|1|9999004826|MR|Test|E|Lead 4826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004827|104827|989898|1|9999004827|MR|Test|E|Lead 4827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004828|104828|989898|1|9999004828|MR|Test|E|Lead 4828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004829|104829|989898|1|9999004829|MR|Test|E|Lead 4829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004830|104830|989898|1|9999004830|MR|Test|E|Lead 4830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004831|104831|989898|1|9999004831|MR|Test|E|Lead 4831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004832|104832|989898|1|9999004832|MR|Test|E|Lead 4832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004833|104833|989898|1|9999004833|MR|Test|E|Lead 4833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004834|104834|989898|1|9999004834|MR|Test|E|Lead 4834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004835|104835|989898|1|9999004835|MR|Test|E|Lead 4835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004836|104836|989898|1|9999004836|MR|Test|E|Lead 4836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004837|104837|989898|1|9999004837|MR|Test|E|Lead 4837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004838|104838|989898|1|9999004838|MR|Test|E|Lead 4838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004839|104839|989898|1|9999004839|MR|Test|E|Lead 4839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004840|104840|989898|1|9999004840|MR|Test|E|Lead 4840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004841|104841|989898|1|9999004841|MR|Test|E|Lead 4841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004842|104842|989898|1|9999004842|MR|Test|E|Lead 4842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004843|104843|989898|1|9999004843|MR|Test|E|Lead 4843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004844|104844|989898|1|9999004844|MR|Test|E|Lead 4844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004845|104845|989898|1|9999004845|MR|Test|E|Lead 4845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004846|104846|989898|1|9999004846|MR|Test|E|Lead 4846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004847|104847|989898|1|9999004847|MR|Test|E|Lead 4847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004848|104848|989898|1|9999004848|MR|Test|E|Lead 4848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004849|104849|989898|1|9999004849|MR|Test|E|Lead 4849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004850|104850|989898|1|9999004850|MR|Test|E|Lead 4850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004851|104851|989898|1|9999004851|MR|Test|E|Lead 4851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004852|104852|989898|1|9999004852|MR|Test|E|Lead 4852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004853|104853|989898|1|9999004853|MR|Test|E|Lead 4853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004854|104854|989898|1|9999004854|MR|Test|E|Lead 4854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004855|104855|989898|1|9999004855|MR|Test|E|Lead 4855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004856|104856|989898|1|9999004856|MR|Test|E|Lead 4856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004857|104857|989898|1|9999004857|MR|Test|E|Lead 4857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004858|104858|989898|1|9999004858|MR|Test|E|Lead 4858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004859|104859|989898|1|9999004859|MR|Test|E|Lead 4859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004860|104860|989898|1|9999004860|MR|Test|E|Lead 4860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004861|104861|989898|1|9999004861|MR|Test|E|Lead 4861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004862|104862|989898|1|9999004862|MR|Test|E|Lead 4862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004863|104863|989898|1|9999004863|MR|Test|E|Lead 4863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004864|104864|989898|1|9999004864|MR|Test|E|Lead 4864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004865|104865|989898|1|9999004865|MR|Test|E|Lead 4865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004866|104866|989898|1|9999004866|MR|Test|E|Lead 4866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004867|104867|989898|1|9999004867|MR|Test|E|Lead 4867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004868|104868|989898|1|9999004868|MR|Test|E|Lead 4868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004869|104869|989898|1|9999004869|MR|Test|E|Lead 4869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004870|104870|989898|1|9999004870|MR|Test|E|Lead 4870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004871|104871|989898|1|9999004871|MR|Test|E|Lead 4871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004872|104872|989898|1|9999004872|MR|Test|E|Lead 4872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004873|104873|989898|1|9999004873|MR|Test|E|Lead 4873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004874|104874|989898|1|9999004874|MR|Test|E|Lead 4874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004875|104875|989898|1|9999004875|MR|Test|E|Lead 4875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004876|104876|989898|1|9999004876|MR|Test|E|Lead 4876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004877|104877|989898|1|9999004877|MR|Test|E|Lead 4877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004878|104878|989898|1|9999004878|MR|Test|E|Lead 4878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004879|104879|989898|1|9999004879|MR|Test|E|Lead 4879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004880|104880|989898|1|9999004880|MR|Test|E|Lead 4880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004881|104881|989898|1|9999004881|MR|Test|E|Lead 4881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004882|104882|989898|1|9999004882|MR|Test|E|Lead 4882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004883|104883|989898|1|9999004883|MR|Test|E|Lead 4883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004884|104884|989898|1|9999004884|MR|Test|E|Lead 4884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004885|104885|989898|1|9999004885|MR|Test|E|Lead 4885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004886|104886|989898|1|9999004886|MR|Test|E|Lead 4886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004887|104887|989898|1|9999004887|MR|Test|E|Lead 4887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004888|104888|989898|1|9999004888|MR|Test|E|Lead 4888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004889|104889|989898|1|9999004889|MR|Test|E|Lead 4889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004890|104890|989898|1|9999004890|MR|Test|E|Lead 4890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004891|104891|989898|1|9999004891|MR|Test|E|Lead 4891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004892|104892|989898|1|9999004892|MR|Test|E|Lead 4892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004893|104893|989898|1|9999004893|MR|Test|E|Lead 4893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004894|104894|989898|1|9999004894|MR|Test|E|Lead 4894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004895|104895|989898|1|9999004895|MR|Test|E|Lead 4895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004896|104896|989898|1|9999004896|MR|Test|E|Lead 4896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004897|104897|989898|1|9999004897|MR|Test|E|Lead 4897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004898|104898|989898|1|9999004898|MR|Test|E|Lead 4898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004899|104899|989898|1|9999004899|MR|Test|E|Lead 4899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004900|104900|989898|1|9999004900|MR|Test|E|Lead 4900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004901|104901|989898|1|9999004901|MR|Test|E|Lead 4901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004902|104902|989898|1|9999004902|MR|Test|E|Lead 4902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004903|104903|989898|1|9999004903|MR|Test|E|Lead 4903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004904|104904|989898|1|9999004904|MR|Test|E|Lead 4904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004905|104905|989898|1|9999004905|MR|Test|E|Lead 4905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004906|104906|989898|1|9999004906|MR|Test|E|Lead 4906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004907|104907|989898|1|9999004907|MR|Test|E|Lead 4907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004908|104908|989898|1|9999004908|MR|Test|E|Lead 4908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004909|104909|989898|1|9999004909|MR|Test|E|Lead 4909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004910|104910|989898|1|9999004910|MR|Test|E|Lead 4910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004911|104911|989898|1|9999004911|MR|Test|E|Lead 4911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004912|104912|989898|1|9999004912|MR|Test|E|Lead 4912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004913|104913|989898|1|9999004913|MR|Test|E|Lead 4913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004914|104914|989898|1|9999004914|MR|Test|E|Lead 4914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004915|104915|989898|1|9999004915|MR|Test|E|Lead 4915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004916|104916|989898|1|9999004916|MR|Test|E|Lead 4916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004917|104917|989898|1|9999004917|MR|Test|E|Lead 4917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004918|104918|989898|1|9999004918|MR|Test|E|Lead 4918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004919|104919|989898|1|9999004919|MR|Test|E|Lead 4919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004920|104920|989898|1|9999004920|MR|Test|E|Lead 4920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004921|104921|989898|1|9999004921|MR|Test|E|Lead 4921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004922|104922|989898|1|9999004922|MR|Test|E|Lead 4922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004923|104923|989898|1|9999004923|MR|Test|E|Lead 4923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004924|104924|989898|1|9999004924|MR|Test|E|Lead 4924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004925|104925|989898|1|9999004925|MR|Test|E|Lead 4925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004926|104926|989898|1|9999004926|MR|Test|E|Lead 4926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004927|104927|989898|1|9999004927|MR|Test|E|Lead 4927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004928|104928|989898|1|9999004928|MR|Test|E|Lead 4928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004929|104929|989898|1|9999004929|MR|Test|E|Lead 4929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004930|104930|989898|1|9999004930|MR|Test|E|Lead 4930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004931|104931|989898|1|9999004931|MR|Test|E|Lead 4931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004932|104932|989898|1|9999004932|MR|Test|E|Lead 4932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004933|104933|989898|1|9999004933|MR|Test|E|Lead 4933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004934|104934|989898|1|9999004934|MR|Test|E|Lead 4934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004935|104935|989898|1|9999004935|MR|Test|E|Lead 4935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004936|104936|989898|1|9999004936|MR|Test|E|Lead 4936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004937|104937|989898|1|9999004937|MR|Test|E|Lead 4937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004938|104938|989898|1|9999004938|MR|Test|E|Lead 4938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004939|104939|989898|1|9999004939|MR|Test|E|Lead 4939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004940|104940|989898|1|9999004940|MR|Test|E|Lead 4940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004941|104941|989898|1|9999004941|MR|Test|E|Lead 4941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004942|104942|989898|1|9999004942|MR|Test|E|Lead 4942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004943|104943|989898|1|9999004943|MR|Test|E|Lead 4943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004944|104944|989898|1|9999004944|MR|Test|E|Lead 4944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004945|104945|989898|1|9999004945|MR|Test|E|Lead 4945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004946|104946|989898|1|9999004946|MR|Test|E|Lead 4946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004947|104947|989898|1|9999004947|MR|Test|E|Lead 4947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004948|104948|989898|1|9999004948|MR|Test|E|Lead 4948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004949|104949|989898|1|9999004949|MR|Test|E|Lead 4949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004950|104950|989898|1|9999004950|MR|Test|E|Lead 4950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004951|104951|989898|1|9999004951|MR|Test|E|Lead 4951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004952|104952|989898|1|9999004952|MR|Test|E|Lead 4952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004953|104953|989898|1|9999004953|MR|Test|E|Lead 4953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004954|104954|989898|1|9999004954|MR|Test|E|Lead 4954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004955|104955|989898|1|9999004955|MR|Test|E|Lead 4955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004956|104956|989898|1|9999004956|MR|Test|E|Lead 4956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004957|104957|989898|1|9999004957|MR|Test|E|Lead 4957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004958|104958|989898|1|9999004958|MR|Test|E|Lead 4958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004959|104959|989898|1|9999004959|MR|Test|E|Lead 4959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004960|104960|989898|1|9999004960|MR|Test|E|Lead 4960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004961|104961|989898|1|9999004961|MR|Test|E|Lead 4961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004962|104962|989898|1|9999004962|MR|Test|E|Lead 4962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004963|104963|989898|1|9999004963|MR|Test|E|Lead 4963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004964|104964|989898|1|9999004964|MR|Test|E|Lead 4964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004965|104965|989898|1|9999004965|MR|Test|E|Lead 4965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004966|104966|989898|1|9999004966|MR|Test|E|Lead 4966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004967|104967|989898|1|9999004967|MR|Test|E|Lead 4967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004968|104968|989898|1|9999004968|MR|Test|E|Lead 4968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004969|104969|989898|1|9999004969|MR|Test|E|Lead 4969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004970|104970|989898|1|9999004970|MR|Test|E|Lead 4970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004971|104971|989898|1|9999004971|MR|Test|E|Lead 4971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004972|104972|989898|1|9999004972|MR|Test|E|Lead 4972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004973|104973|989898|1|9999004973|MR|Test|E|Lead 4973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004974|104974|989898|1|9999004974|MR|Test|E|Lead 4974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004975|104975|989898|1|9999004975|MR|Test|E|Lead 4975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004976|104976|989898|1|9999004976|MR|Test|E|Lead 4976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004977|104977|989898|1|9999004977|MR|Test|E|Lead 4977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004978|104978|989898|1|9999004978|MR|Test|E|Lead 4978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004979|104979|989898|1|9999004979|MR|Test|E|Lead 4979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004980|104980|989898|1|9999004980|MR|Test|E|Lead 4980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004981|104981|989898|1|9999004981|MR|Test|E|Lead 4981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004982|104982|989898|1|9999004982|MR|Test|E|Lead 4982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004983|104983|989898|1|9999004983|MR|Test|E|Lead 4983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004984|104984|989898|1|9999004984|MR|Test|E|Lead 4984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004985|104985|989898|1|9999004985|MR|Test|E|Lead 4985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004986|104986|989898|1|9999004986|MR|Test|E|Lead 4986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004987|104987|989898|1|9999004987|MR|Test|E|Lead 4987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004988|104988|989898|1|9999004988|MR|Test|E|Lead 4988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004989|104989|989898|1|9999004989|MR|Test|E|Lead 4989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004990|104990|989898|1|9999004990|MR|Test|E|Lead 4990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004991|104991|989898|1|9999004991|MR|Test|E|Lead 4991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004992|104992|989898|1|9999004992|MR|Test|E|Lead 4992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004993|104993|989898|1|9999004993|MR|Test|E|Lead 4993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004994|104994|989898|1|9999004994|MR|Test|E|Lead 4994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004995|104995|989898|1|9999004995|MR|Test|E|Lead 4995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004996|104996|989898|1|9999004996|MR|Test|E|Lead 4996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004997|104997|989898|1|9999004997|MR|Test|E|Lead 4997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004998|104998|989898|1|9999004998|MR|Test|E|Lead 4998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1004999|104999|989898|1|9999004999|MR|Test|E|Lead 4999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005000|105000|989898|1|9999005000|MR|Test|E|Lead 5000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005001|105001|989898|1|9999005001|MR|Test|E|Lead 5001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005002|105002|989898|1|9999005002|MR|Test|E|Lead 5002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005003|105003|989898|1|9999005003|MR|Test|E|Lead 5003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005004|105004|989898|1|9999005004|MR|Test|E|Lead 5004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005005|105005|989898|1|9999005005|MR|Test|E|Lead 5005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005006|105006|989898|1|9999005006|MR|Test|E|Lead 5006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005007|105007|989898|1|9999005007|MR|Test|E|Lead 5007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005008|105008|989898|1|9999005008|MR|Test|E|Lead 5008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005009|105009|989898|1|9999005009|MR|Test|E|Lead 5009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005010|105010|989898|1|9999005010|MR|Test|E|Lead 5010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005011|105011|989898|1|9999005011|MR|Test|E|Lead 5011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005012|105012|989898|1|9999005012|MR|Test|E|Lead 5012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005013|105013|989898|1|9999005013|MR|Test|E|Lead 5013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005014|105014|989898|1|9999005014|MR|Test|E|Lead 5014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005015|105015|989898|1|9999005015|MR|Test|E|Lead 5015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005016|105016|989898|1|9999005016|MR|Test|E|Lead 5016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005017|105017|989898|1|9999005017|MR|Test|E|Lead 5017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005018|105018|989898|1|9999005018|MR|Test|E|Lead 5018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005019|105019|989898|1|9999005019|MR|Test|E|Lead 5019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005020|105020|989898|1|9999005020|MR|Test|E|Lead 5020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005021|105021|989898|1|9999005021|MR|Test|E|Lead 5021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005022|105022|989898|1|9999005022|MR|Test|E|Lead 5022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005023|105023|989898|1|9999005023|MR|Test|E|Lead 5023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005024|105024|989898|1|9999005024|MR|Test|E|Lead 5024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005025|105025|989898|1|9999005025|MR|Test|E|Lead 5025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005026|105026|989898|1|9999005026|MR|Test|E|Lead 5026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005027|105027|989898|1|9999005027|MR|Test|E|Lead 5027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005028|105028|989898|1|9999005028|MR|Test|E|Lead 5028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005029|105029|989898|1|9999005029|MR|Test|E|Lead 5029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005030|105030|989898|1|9999005030|MR|Test|E|Lead 5030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005031|105031|989898|1|9999005031|MR|Test|E|Lead 5031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005032|105032|989898|1|9999005032|MR|Test|E|Lead 5032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005033|105033|989898|1|9999005033|MR|Test|E|Lead 5033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005034|105034|989898|1|9999005034|MR|Test|E|Lead 5034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005035|105035|989898|1|9999005035|MR|Test|E|Lead 5035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005036|105036|989898|1|9999005036|MR|Test|E|Lead 5036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005037|105037|989898|1|9999005037|MR|Test|E|Lead 5037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005038|105038|989898|1|9999005038|MR|Test|E|Lead 5038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005039|105039|989898|1|9999005039|MR|Test|E|Lead 5039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005040|105040|989898|1|9999005040|MR|Test|E|Lead 5040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005041|105041|989898|1|9999005041|MR|Test|E|Lead 5041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005042|105042|989898|1|9999005042|MR|Test|E|Lead 5042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005043|105043|989898|1|9999005043|MR|Test|E|Lead 5043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005044|105044|989898|1|9999005044|MR|Test|E|Lead 5044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005045|105045|989898|1|9999005045|MR|Test|E|Lead 5045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005046|105046|989898|1|9999005046|MR|Test|E|Lead 5046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005047|105047|989898|1|9999005047|MR|Test|E|Lead 5047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005048|105048|989898|1|9999005048|MR|Test|E|Lead 5048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005049|105049|989898|1|9999005049|MR|Test|E|Lead 5049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005050|105050|989898|1|9999005050|MR|Test|E|Lead 5050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005051|105051|989898|1|9999005051|MR|Test|E|Lead 5051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005052|105052|989898|1|9999005052|MR|Test|E|Lead 5052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005053|105053|989898|1|9999005053|MR|Test|E|Lead 5053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005054|105054|989898|1|9999005054|MR|Test|E|Lead 5054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005055|105055|989898|1|9999005055|MR|Test|E|Lead 5055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005056|105056|989898|1|9999005056|MR|Test|E|Lead 5056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005057|105057|989898|1|9999005057|MR|Test|E|Lead 5057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005058|105058|989898|1|9999005058|MR|Test|E|Lead 5058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005059|105059|989898|1|9999005059|MR|Test|E|Lead 5059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005060|105060|989898|1|9999005060|MR|Test|E|Lead 5060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005061|105061|989898|1|9999005061|MR|Test|E|Lead 5061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005062|105062|989898|1|9999005062|MR|Test|E|Lead 5062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005063|105063|989898|1|9999005063|MR|Test|E|Lead 5063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005064|105064|989898|1|9999005064|MR|Test|E|Lead 5064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005065|105065|989898|1|9999005065|MR|Test|E|Lead 5065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005066|105066|989898|1|9999005066|MR|Test|E|Lead 5066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005067|105067|989898|1|9999005067|MR|Test|E|Lead 5067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005068|105068|989898|1|9999005068|MR|Test|E|Lead 5068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005069|105069|989898|1|9999005069|MR|Test|E|Lead 5069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005070|105070|989898|1|9999005070|MR|Test|E|Lead 5070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005071|105071|989898|1|9999005071|MR|Test|E|Lead 5071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005072|105072|989898|1|9999005072|MR|Test|E|Lead 5072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005073|105073|989898|1|9999005073|MR|Test|E|Lead 5073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005074|105074|989898|1|9999005074|MR|Test|E|Lead 5074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005075|105075|989898|1|9999005075|MR|Test|E|Lead 5075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005076|105076|989898|1|9999005076|MR|Test|E|Lead 5076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005077|105077|989898|1|9999005077|MR|Test|E|Lead 5077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005078|105078|989898|1|9999005078|MR|Test|E|Lead 5078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005079|105079|989898|1|9999005079|MR|Test|E|Lead 5079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005080|105080|989898|1|9999005080|MR|Test|E|Lead 5080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005081|105081|989898|1|9999005081|MR|Test|E|Lead 5081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005082|105082|989898|1|9999005082|MR|Test|E|Lead 5082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005083|105083|989898|1|9999005083|MR|Test|E|Lead 5083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005084|105084|989898|1|9999005084|MR|Test|E|Lead 5084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005085|105085|989898|1|9999005085|MR|Test|E|Lead 5085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005086|105086|989898|1|9999005086|MR|Test|E|Lead 5086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005087|105087|989898|1|9999005087|MR|Test|E|Lead 5087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005088|105088|989898|1|9999005088|MR|Test|E|Lead 5088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005089|105089|989898|1|9999005089|MR|Test|E|Lead 5089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005090|105090|989898|1|9999005090|MR|Test|E|Lead 5090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005091|105091|989898|1|9999005091|MR|Test|E|Lead 5091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005092|105092|989898|1|9999005092|MR|Test|E|Lead 5092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005093|105093|989898|1|9999005093|MR|Test|E|Lead 5093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005094|105094|989898|1|9999005094|MR|Test|E|Lead 5094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005095|105095|989898|1|9999005095|MR|Test|E|Lead 5095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005096|105096|989898|1|9999005096|MR|Test|E|Lead 5096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005097|105097|989898|1|9999005097|MR|Test|E|Lead 5097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005098|105098|989898|1|9999005098|MR|Test|E|Lead 5098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005099|105099|989898|1|9999005099|MR|Test|E|Lead 5099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005100|105100|989898|1|9999005100|MR|Test|E|Lead 5100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005101|105101|989898|1|9999005101|MR|Test|E|Lead 5101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005102|105102|989898|1|9999005102|MR|Test|E|Lead 5102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005103|105103|989898|1|9999005103|MR|Test|E|Lead 5103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005104|105104|989898|1|9999005104|MR|Test|E|Lead 5104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005105|105105|989898|1|9999005105|MR|Test|E|Lead 5105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005106|105106|989898|1|9999005106|MR|Test|E|Lead 5106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005107|105107|989898|1|9999005107|MR|Test|E|Lead 5107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005108|105108|989898|1|9999005108|MR|Test|E|Lead 5108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005109|105109|989898|1|9999005109|MR|Test|E|Lead 5109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005110|105110|989898|1|9999005110|MR|Test|E|Lead 5110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005111|105111|989898|1|9999005111|MR|Test|E|Lead 5111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005112|105112|989898|1|9999005112|MR|Test|E|Lead 5112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005113|105113|989898|1|9999005113|MR|Test|E|Lead 5113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005114|105114|989898|1|9999005114|MR|Test|E|Lead 5114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005115|105115|989898|1|9999005115|MR|Test|E|Lead 5115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005116|105116|989898|1|9999005116|MR|Test|E|Lead 5116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005117|105117|989898|1|9999005117|MR|Test|E|Lead 5117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005118|105118|989898|1|9999005118|MR|Test|E|Lead 5118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005119|105119|989898|1|9999005119|MR|Test|E|Lead 5119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005120|105120|989898|1|9999005120|MR|Test|E|Lead 5120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005121|105121|989898|1|9999005121|MR|Test|E|Lead 5121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005122|105122|989898|1|9999005122|MR|Test|E|Lead 5122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005123|105123|989898|1|9999005123|MR|Test|E|Lead 5123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005124|105124|989898|1|9999005124|MR|Test|E|Lead 5124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005125|105125|989898|1|9999005125|MR|Test|E|Lead 5125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005126|105126|989898|1|9999005126|MR|Test|E|Lead 5126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005127|105127|989898|1|9999005127|MR|Test|E|Lead 5127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005128|105128|989898|1|9999005128|MR|Test|E|Lead 5128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005129|105129|989898|1|9999005129|MR|Test|E|Lead 5129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005130|105130|989898|1|9999005130|MR|Test|E|Lead 5130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005131|105131|989898|1|9999005131|MR|Test|E|Lead 5131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005132|105132|989898|1|9999005132|MR|Test|E|Lead 5132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005133|105133|989898|1|9999005133|MR|Test|E|Lead 5133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005134|105134|989898|1|9999005134|MR|Test|E|Lead 5134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005135|105135|989898|1|9999005135|MR|Test|E|Lead 5135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005136|105136|989898|1|9999005136|MR|Test|E|Lead 5136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005137|105137|989898|1|9999005137|MR|Test|E|Lead 5137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005138|105138|989898|1|9999005138|MR|Test|E|Lead 5138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005139|105139|989898|1|9999005139|MR|Test|E|Lead 5139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005140|105140|989898|1|9999005140|MR|Test|E|Lead 5140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005141|105141|989898|1|9999005141|MR|Test|E|Lead 5141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005142|105142|989898|1|9999005142|MR|Test|E|Lead 5142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005143|105143|989898|1|9999005143|MR|Test|E|Lead 5143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005144|105144|989898|1|9999005144|MR|Test|E|Lead 5144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005145|105145|989898|1|9999005145|MR|Test|E|Lead 5145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005146|105146|989898|1|9999005146|MR|Test|E|Lead 5146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005147|105147|989898|1|9999005147|MR|Test|E|Lead 5147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005148|105148|989898|1|9999005148|MR|Test|E|Lead 5148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005149|105149|989898|1|9999005149|MR|Test|E|Lead 5149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005150|105150|989898|1|9999005150|MR|Test|E|Lead 5150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005151|105151|989898|1|9999005151|MR|Test|E|Lead 5151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005152|105152|989898|1|9999005152|MR|Test|E|Lead 5152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005153|105153|989898|1|9999005153|MR|Test|E|Lead 5153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005154|105154|989898|1|9999005154|MR|Test|E|Lead 5154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005155|105155|989898|1|9999005155|MR|Test|E|Lead 5155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005156|105156|989898|1|9999005156|MR|Test|E|Lead 5156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005157|105157|989898|1|9999005157|MR|Test|E|Lead 5157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005158|105158|989898|1|9999005158|MR|Test|E|Lead 5158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005159|105159|989898|1|9999005159|MR|Test|E|Lead 5159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005160|105160|989898|1|9999005160|MR|Test|E|Lead 5160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005161|105161|989898|1|9999005161|MR|Test|E|Lead 5161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005162|105162|989898|1|9999005162|MR|Test|E|Lead 5162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005163|105163|989898|1|9999005163|MR|Test|E|Lead 5163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005164|105164|989898|1|9999005164|MR|Test|E|Lead 5164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005165|105165|989898|1|9999005165|MR|Test|E|Lead 5165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005166|105166|989898|1|9999005166|MR|Test|E|Lead 5166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005167|105167|989898|1|9999005167|MR|Test|E|Lead 5167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005168|105168|989898|1|9999005168|MR|Test|E|Lead 5168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005169|105169|989898|1|9999005169|MR|Test|E|Lead 5169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005170|105170|989898|1|9999005170|MR|Test|E|Lead 5170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005171|105171|989898|1|9999005171|MR|Test|E|Lead 5171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005172|105172|989898|1|9999005172|MR|Test|E|Lead 5172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005173|105173|989898|1|9999005173|MR|Test|E|Lead 5173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005174|105174|989898|1|9999005174|MR|Test|E|Lead 5174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005175|105175|989898|1|9999005175|MR|Test|E|Lead 5175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005176|105176|989898|1|9999005176|MR|Test|E|Lead 5176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005177|105177|989898|1|9999005177|MR|Test|E|Lead 5177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005178|105178|989898|1|9999005178|MR|Test|E|Lead 5178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005179|105179|989898|1|9999005179|MR|Test|E|Lead 5179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005180|105180|989898|1|9999005180|MR|Test|E|Lead 5180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005181|105181|989898|1|9999005181|MR|Test|E|Lead 5181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005182|105182|989898|1|9999005182|MR|Test|E|Lead 5182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005183|105183|989898|1|9999005183|MR|Test|E|Lead 5183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005184|105184|989898|1|9999005184|MR|Test|E|Lead 5184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005185|105185|989898|1|9999005185|MR|Test|E|Lead 5185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005186|105186|989898|1|9999005186|MR|Test|E|Lead 5186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005187|105187|989898|1|9999005187|MR|Test|E|Lead 5187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005188|105188|989898|1|9999005188|MR|Test|E|Lead 5188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005189|105189|989898|1|9999005189|MR|Test|E|Lead 5189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005190|105190|989898|1|9999005190|MR|Test|E|Lead 5190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005191|105191|989898|1|9999005191|MR|Test|E|Lead 5191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005192|105192|989898|1|9999005192|MR|Test|E|Lead 5192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005193|105193|989898|1|9999005193|MR|Test|E|Lead 5193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005194|105194|989898|1|9999005194|MR|Test|E|Lead 5194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005195|105195|989898|1|9999005195|MR|Test|E|Lead 5195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005196|105196|989898|1|9999005196|MR|Test|E|Lead 5196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005197|105197|989898|1|9999005197|MR|Test|E|Lead 5197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005198|105198|989898|1|9999005198|MR|Test|E|Lead 5198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005199|105199|989898|1|9999005199|MR|Test|E|Lead 5199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005200|105200|989898|1|9999005200|MR|Test|E|Lead 5200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005201|105201|989898|1|9999005201|MR|Test|E|Lead 5201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005202|105202|989898|1|9999005202|MR|Test|E|Lead 5202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005203|105203|989898|1|9999005203|MR|Test|E|Lead 5203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005204|105204|989898|1|9999005204|MR|Test|E|Lead 5204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005205|105205|989898|1|9999005205|MR|Test|E|Lead 5205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005206|105206|989898|1|9999005206|MR|Test|E|Lead 5206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005207|105207|989898|1|9999005207|MR|Test|E|Lead 5207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005208|105208|989898|1|9999005208|MR|Test|E|Lead 5208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005209|105209|989898|1|9999005209|MR|Test|E|Lead 5209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005210|105210|989898|1|9999005210|MR|Test|E|Lead 5210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005211|105211|989898|1|9999005211|MR|Test|E|Lead 5211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005212|105212|989898|1|9999005212|MR|Test|E|Lead 5212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005213|105213|989898|1|9999005213|MR|Test|E|Lead 5213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005214|105214|989898|1|9999005214|MR|Test|E|Lead 5214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005215|105215|989898|1|9999005215|MR|Test|E|Lead 5215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005216|105216|989898|1|9999005216|MR|Test|E|Lead 5216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005217|105217|989898|1|9999005217|MR|Test|E|Lead 5217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005218|105218|989898|1|9999005218|MR|Test|E|Lead 5218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005219|105219|989898|1|9999005219|MR|Test|E|Lead 5219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005220|105220|989898|1|9999005220|MR|Test|E|Lead 5220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005221|105221|989898|1|9999005221|MR|Test|E|Lead 5221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005222|105222|989898|1|9999005222|MR|Test|E|Lead 5222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005223|105223|989898|1|9999005223|MR|Test|E|Lead 5223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005224|105224|989898|1|9999005224|MR|Test|E|Lead 5224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005225|105225|989898|1|9999005225|MR|Test|E|Lead 5225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005226|105226|989898|1|9999005226|MR|Test|E|Lead 5226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005227|105227|989898|1|9999005227|MR|Test|E|Lead 5227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005228|105228|989898|1|9999005228|MR|Test|E|Lead 5228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005229|105229|989898|1|9999005229|MR|Test|E|Lead 5229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005230|105230|989898|1|9999005230|MR|Test|E|Lead 5230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005231|105231|989898|1|9999005231|MR|Test|E|Lead 5231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005232|105232|989898|1|9999005232|MR|Test|E|Lead 5232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005233|105233|989898|1|9999005233|MR|Test|E|Lead 5233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005234|105234|989898|1|9999005234|MR|Test|E|Lead 5234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005235|105235|989898|1|9999005235|MR|Test|E|Lead 5235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005236|105236|989898|1|9999005236|MR|Test|E|Lead 5236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005237|105237|989898|1|9999005237|MR|Test|E|Lead 5237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005238|105238|989898|1|9999005238|MR|Test|E|Lead 5238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005239|105239|989898|1|9999005239|MR|Test|E|Lead 5239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005240|105240|989898|1|9999005240|MR|Test|E|Lead 5240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005241|105241|989898|1|9999005241|MR|Test|E|Lead 5241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005242|105242|989898|1|9999005242|MR|Test|E|Lead 5242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005243|105243|989898|1|9999005243|MR|Test|E|Lead 5243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005244|105244|989898|1|9999005244|MR|Test|E|Lead 5244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005245|105245|989898|1|9999005245|MR|Test|E|Lead 5245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005246|105246|989898|1|9999005246|MR|Test|E|Lead 5246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005247|105247|989898|1|9999005247|MR|Test|E|Lead 5247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005248|105248|989898|1|9999005248|MR|Test|E|Lead 5248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005249|105249|989898|1|9999005249|MR|Test|E|Lead 5249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005250|105250|989898|1|9999005250|MR|Test|E|Lead 5250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005251|105251|989898|1|9999005251|MR|Test|E|Lead 5251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005252|105252|989898|1|9999005252|MR|Test|E|Lead 5252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005253|105253|989898|1|9999005253|MR|Test|E|Lead 5253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005254|105254|989898|1|9999005254|MR|Test|E|Lead 5254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005255|105255|989898|1|9999005255|MR|Test|E|Lead 5255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005256|105256|989898|1|9999005256|MR|Test|E|Lead 5256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005257|105257|989898|1|9999005257|MR|Test|E|Lead 5257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005258|105258|989898|1|9999005258|MR|Test|E|Lead 5258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005259|105259|989898|1|9999005259|MR|Test|E|Lead 5259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005260|105260|989898|1|9999005260|MR|Test|E|Lead 5260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005261|105261|989898|1|9999005261|MR|Test|E|Lead 5261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005262|105262|989898|1|9999005262|MR|Test|E|Lead 5262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005263|105263|989898|1|9999005263|MR|Test|E|Lead 5263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005264|105264|989898|1|9999005264|MR|Test|E|Lead 5264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005265|105265|989898|1|9999005265|MR|Test|E|Lead 5265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005266|105266|989898|1|9999005266|MR|Test|E|Lead 5266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005267|105267|989898|1|9999005267|MR|Test|E|Lead 5267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005268|105268|989898|1|9999005268|MR|Test|E|Lead 5268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005269|105269|989898|1|9999005269|MR|Test|E|Lead 5269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005270|105270|989898|1|9999005270|MR|Test|E|Lead 5270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005271|105271|989898|1|9999005271|MR|Test|E|Lead 5271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005272|105272|989898|1|9999005272|MR|Test|E|Lead 5272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005273|105273|989898|1|9999005273|MR|Test|E|Lead 5273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005274|105274|989898|1|9999005274|MR|Test|E|Lead 5274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005275|105275|989898|1|9999005275|MR|Test|E|Lead 5275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005276|105276|989898|1|9999005276|MR|Test|E|Lead 5276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005277|105277|989898|1|9999005277|MR|Test|E|Lead 5277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005278|105278|989898|1|9999005278|MR|Test|E|Lead 5278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005279|105279|989898|1|9999005279|MR|Test|E|Lead 5279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005280|105280|989898|1|9999005280|MR|Test|E|Lead 5280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005281|105281|989898|1|9999005281|MR|Test|E|Lead 5281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005282|105282|989898|1|9999005282|MR|Test|E|Lead 5282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005283|105283|989898|1|9999005283|MR|Test|E|Lead 5283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005284|105284|989898|1|9999005284|MR|Test|E|Lead 5284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005285|105285|989898|1|9999005285|MR|Test|E|Lead 5285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005286|105286|989898|1|9999005286|MR|Test|E|Lead 5286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005287|105287|989898|1|9999005287|MR|Test|E|Lead 5287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005288|105288|989898|1|9999005288|MR|Test|E|Lead 5288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005289|105289|989898|1|9999005289|MR|Test|E|Lead 5289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005290|105290|989898|1|9999005290|MR|Test|E|Lead 5290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005291|105291|989898|1|9999005291|MR|Test|E|Lead 5291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005292|105292|989898|1|9999005292|MR|Test|E|Lead 5292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005293|105293|989898|1|9999005293|MR|Test|E|Lead 5293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005294|105294|989898|1|9999005294|MR|Test|E|Lead 5294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005295|105295|989898|1|9999005295|MR|Test|E|Lead 5295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005296|105296|989898|1|9999005296|MR|Test|E|Lead 5296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005297|105297|989898|1|9999005297|MR|Test|E|Lead 5297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005298|105298|989898|1|9999005298|MR|Test|E|Lead 5298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005299|105299|989898|1|9999005299|MR|Test|E|Lead 5299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005300|105300|989898|1|9999005300|MR|Test|E|Lead 5300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005301|105301|989898|1|9999005301|MR|Test|E|Lead 5301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005302|105302|989898|1|9999005302|MR|Test|E|Lead 5302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005303|105303|989898|1|9999005303|MR|Test|E|Lead 5303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005304|105304|989898|1|9999005304|MR|Test|E|Lead 5304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005305|105305|989898|1|9999005305|MR|Test|E|Lead 5305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005306|105306|989898|1|9999005306|MR|Test|E|Lead 5306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005307|105307|989898|1|9999005307|MR|Test|E|Lead 5307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005308|105308|989898|1|9999005308|MR|Test|E|Lead 5308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005309|105309|989898|1|9999005309|MR|Test|E|Lead 5309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005310|105310|989898|1|9999005310|MR|Test|E|Lead 5310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005311|105311|989898|1|9999005311|MR|Test|E|Lead 5311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005312|105312|989898|1|9999005312|MR|Test|E|Lead 5312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005313|105313|989898|1|9999005313|MR|Test|E|Lead 5313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005314|105314|989898|1|9999005314|MR|Test|E|Lead 5314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005315|105315|989898|1|9999005315|MR|Test|E|Lead 5315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005316|105316|989898|1|9999005316|MR|Test|E|Lead 5316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005317|105317|989898|1|9999005317|MR|Test|E|Lead 5317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005318|105318|989898|1|9999005318|MR|Test|E|Lead 5318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005319|105319|989898|1|9999005319|MR|Test|E|Lead 5319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005320|105320|989898|1|9999005320|MR|Test|E|Lead 5320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005321|105321|989898|1|9999005321|MR|Test|E|Lead 5321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005322|105322|989898|1|9999005322|MR|Test|E|Lead 5322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005323|105323|989898|1|9999005323|MR|Test|E|Lead 5323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005324|105324|989898|1|9999005324|MR|Test|E|Lead 5324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005325|105325|989898|1|9999005325|MR|Test|E|Lead 5325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005326|105326|989898|1|9999005326|MR|Test|E|Lead 5326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005327|105327|989898|1|9999005327|MR|Test|E|Lead 5327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005328|105328|989898|1|9999005328|MR|Test|E|Lead 5328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005329|105329|989898|1|9999005329|MR|Test|E|Lead 5329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005330|105330|989898|1|9999005330|MR|Test|E|Lead 5330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005331|105331|989898|1|9999005331|MR|Test|E|Lead 5331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005332|105332|989898|1|9999005332|MR|Test|E|Lead 5332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005333|105333|989898|1|9999005333|MR|Test|E|Lead 5333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005334|105334|989898|1|9999005334|MR|Test|E|Lead 5334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005335|105335|989898|1|9999005335|MR|Test|E|Lead 5335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005336|105336|989898|1|9999005336|MR|Test|E|Lead 5336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005337|105337|989898|1|9999005337|MR|Test|E|Lead 5337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005338|105338|989898|1|9999005338|MR|Test|E|Lead 5338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005339|105339|989898|1|9999005339|MR|Test|E|Lead 5339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005340|105340|989898|1|9999005340|MR|Test|E|Lead 5340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005341|105341|989898|1|9999005341|MR|Test|E|Lead 5341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005342|105342|989898|1|9999005342|MR|Test|E|Lead 5342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005343|105343|989898|1|9999005343|MR|Test|E|Lead 5343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005344|105344|989898|1|9999005344|MR|Test|E|Lead 5344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005345|105345|989898|1|9999005345|MR|Test|E|Lead 5345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005346|105346|989898|1|9999005346|MR|Test|E|Lead 5346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005347|105347|989898|1|9999005347|MR|Test|E|Lead 5347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005348|105348|989898|1|9999005348|MR|Test|E|Lead 5348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005349|105349|989898|1|9999005349|MR|Test|E|Lead 5349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005350|105350|989898|1|9999005350|MR|Test|E|Lead 5350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005351|105351|989898|1|9999005351|MR|Test|E|Lead 5351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005352|105352|989898|1|9999005352|MR|Test|E|Lead 5352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005353|105353|989898|1|9999005353|MR|Test|E|Lead 5353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005354|105354|989898|1|9999005354|MR|Test|E|Lead 5354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005355|105355|989898|1|9999005355|MR|Test|E|Lead 5355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005356|105356|989898|1|9999005356|MR|Test|E|Lead 5356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005357|105357|989898|1|9999005357|MR|Test|E|Lead 5357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005358|105358|989898|1|9999005358|MR|Test|E|Lead 5358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005359|105359|989898|1|9999005359|MR|Test|E|Lead 5359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005360|105360|989898|1|9999005360|MR|Test|E|Lead 5360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005361|105361|989898|1|9999005361|MR|Test|E|Lead 5361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005362|105362|989898|1|9999005362|MR|Test|E|Lead 5362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005363|105363|989898|1|9999005363|MR|Test|E|Lead 5363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005364|105364|989898|1|9999005364|MR|Test|E|Lead 5364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005365|105365|989898|1|9999005365|MR|Test|E|Lead 5365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005366|105366|989898|1|9999005366|MR|Test|E|Lead 5366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005367|105367|989898|1|9999005367|MR|Test|E|Lead 5367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005368|105368|989898|1|9999005368|MR|Test|E|Lead 5368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005369|105369|989898|1|9999005369|MR|Test|E|Lead 5369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005370|105370|989898|1|9999005370|MR|Test|E|Lead 5370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005371|105371|989898|1|9999005371|MR|Test|E|Lead 5371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005372|105372|989898|1|9999005372|MR|Test|E|Lead 5372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005373|105373|989898|1|9999005373|MR|Test|E|Lead 5373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005374|105374|989898|1|9999005374|MR|Test|E|Lead 5374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005375|105375|989898|1|9999005375|MR|Test|E|Lead 5375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005376|105376|989898|1|9999005376|MR|Test|E|Lead 5376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005377|105377|989898|1|9999005377|MR|Test|E|Lead 5377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005378|105378|989898|1|9999005378|MR|Test|E|Lead 5378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005379|105379|989898|1|9999005379|MR|Test|E|Lead 5379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005380|105380|989898|1|9999005380|MR|Test|E|Lead 5380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005381|105381|989898|1|9999005381|MR|Test|E|Lead 5381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005382|105382|989898|1|9999005382|MR|Test|E|Lead 5382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005383|105383|989898|1|9999005383|MR|Test|E|Lead 5383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005384|105384|989898|1|9999005384|MR|Test|E|Lead 5384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005385|105385|989898|1|9999005385|MR|Test|E|Lead 5385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005386|105386|989898|1|9999005386|MR|Test|E|Lead 5386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005387|105387|989898|1|9999005387|MR|Test|E|Lead 5387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005388|105388|989898|1|9999005388|MR|Test|E|Lead 5388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005389|105389|989898|1|9999005389|MR|Test|E|Lead 5389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005390|105390|989898|1|9999005390|MR|Test|E|Lead 5390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005391|105391|989898|1|9999005391|MR|Test|E|Lead 5391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005392|105392|989898|1|9999005392|MR|Test|E|Lead 5392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005393|105393|989898|1|9999005393|MR|Test|E|Lead 5393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005394|105394|989898|1|9999005394|MR|Test|E|Lead 5394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005395|105395|989898|1|9999005395|MR|Test|E|Lead 5395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005396|105396|989898|1|9999005396|MR|Test|E|Lead 5396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005397|105397|989898|1|9999005397|MR|Test|E|Lead 5397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005398|105398|989898|1|9999005398|MR|Test|E|Lead 5398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005399|105399|989898|1|9999005399|MR|Test|E|Lead 5399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005400|105400|989898|1|9999005400|MR|Test|E|Lead 5400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005401|105401|989898|1|9999005401|MR|Test|E|Lead 5401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005402|105402|989898|1|9999005402|MR|Test|E|Lead 5402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005403|105403|989898|1|9999005403|MR|Test|E|Lead 5403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005404|105404|989898|1|9999005404|MR|Test|E|Lead 5404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005405|105405|989898|1|9999005405|MR|Test|E|Lead 5405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005406|105406|989898|1|9999005406|MR|Test|E|Lead 5406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005407|105407|989898|1|9999005407|MR|Test|E|Lead 5407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005408|105408|989898|1|9999005408|MR|Test|E|Lead 5408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005409|105409|989898|1|9999005409|MR|Test|E|Lead 5409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005410|105410|989898|1|9999005410|MR|Test|E|Lead 5410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005411|105411|989898|1|9999005411|MR|Test|E|Lead 5411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005412|105412|989898|1|9999005412|MR|Test|E|Lead 5412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005413|105413|989898|1|9999005413|MR|Test|E|Lead 5413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005414|105414|989898|1|9999005414|MR|Test|E|Lead 5414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005415|105415|989898|1|9999005415|MR|Test|E|Lead 5415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005416|105416|989898|1|9999005416|MR|Test|E|Lead 5416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005417|105417|989898|1|9999005417|MR|Test|E|Lead 5417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005418|105418|989898|1|9999005418|MR|Test|E|Lead 5418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005419|105419|989898|1|9999005419|MR|Test|E|Lead 5419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005420|105420|989898|1|9999005420|MR|Test|E|Lead 5420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005421|105421|989898|1|9999005421|MR|Test|E|Lead 5421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005422|105422|989898|1|9999005422|MR|Test|E|Lead 5422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005423|105423|989898|1|9999005423|MR|Test|E|Lead 5423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005424|105424|989898|1|9999005424|MR|Test|E|Lead 5424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005425|105425|989898|1|9999005425|MR|Test|E|Lead 5425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005426|105426|989898|1|9999005426|MR|Test|E|Lead 5426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005427|105427|989898|1|9999005427|MR|Test|E|Lead 5427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005428|105428|989898|1|9999005428|MR|Test|E|Lead 5428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005429|105429|989898|1|9999005429|MR|Test|E|Lead 5429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005430|105430|989898|1|9999005430|MR|Test|E|Lead 5430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005431|105431|989898|1|9999005431|MR|Test|E|Lead 5431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005432|105432|989898|1|9999005432|MR|Test|E|Lead 5432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005433|105433|989898|1|9999005433|MR|Test|E|Lead 5433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005434|105434|989898|1|9999005434|MR|Test|E|Lead 5434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005435|105435|989898|1|9999005435|MR|Test|E|Lead 5435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005436|105436|989898|1|9999005436|MR|Test|E|Lead 5436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005437|105437|989898|1|9999005437|MR|Test|E|Lead 5437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005438|105438|989898|1|9999005438|MR|Test|E|Lead 5438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005439|105439|989898|1|9999005439|MR|Test|E|Lead 5439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005440|105440|989898|1|9999005440|MR|Test|E|Lead 5440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005441|105441|989898|1|9999005441|MR|Test|E|Lead 5441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005442|105442|989898|1|9999005442|MR|Test|E|Lead 5442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005443|105443|989898|1|9999005443|MR|Test|E|Lead 5443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005444|105444|989898|1|9999005444|MR|Test|E|Lead 5444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005445|105445|989898|1|9999005445|MR|Test|E|Lead 5445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005446|105446|989898|1|9999005446|MR|Test|E|Lead 5446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005447|105447|989898|1|9999005447|MR|Test|E|Lead 5447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005448|105448|989898|1|9999005448|MR|Test|E|Lead 5448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005449|105449|989898|1|9999005449|MR|Test|E|Lead 5449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005450|105450|989898|1|9999005450|MR|Test|E|Lead 5450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005451|105451|989898|1|9999005451|MR|Test|E|Lead 5451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005452|105452|989898|1|9999005452|MR|Test|E|Lead 5452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005453|105453|989898|1|9999005453|MR|Test|E|Lead 5453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005454|105454|989898|1|9999005454|MR|Test|E|Lead 5454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005455|105455|989898|1|9999005455|MR|Test|E|Lead 5455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005456|105456|989898|1|9999005456|MR|Test|E|Lead 5456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005457|105457|989898|1|9999005457|MR|Test|E|Lead 5457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005458|105458|989898|1|9999005458|MR|Test|E|Lead 5458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005459|105459|989898|1|9999005459|MR|Test|E|Lead 5459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005460|105460|989898|1|9999005460|MR|Test|E|Lead 5460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005461|105461|989898|1|9999005461|MR|Test|E|Lead 5461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005462|105462|989898|1|9999005462|MR|Test|E|Lead 5462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005463|105463|989898|1|9999005463|MR|Test|E|Lead 5463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005464|105464|989898|1|9999005464|MR|Test|E|Lead 5464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005465|105465|989898|1|9999005465|MR|Test|E|Lead 5465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005466|105466|989898|1|9999005466|MR|Test|E|Lead 5466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005467|105467|989898|1|9999005467|MR|Test|E|Lead 5467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005468|105468|989898|1|9999005468|MR|Test|E|Lead 5468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005469|105469|989898|1|9999005469|MR|Test|E|Lead 5469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005470|105470|989898|1|9999005470|MR|Test|E|Lead 5470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005471|105471|989898|1|9999005471|MR|Test|E|Lead 5471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005472|105472|989898|1|9999005472|MR|Test|E|Lead 5472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005473|105473|989898|1|9999005473|MR|Test|E|Lead 5473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005474|105474|989898|1|9999005474|MR|Test|E|Lead 5474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005475|105475|989898|1|9999005475|MR|Test|E|Lead 5475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005476|105476|989898|1|9999005476|MR|Test|E|Lead 5476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005477|105477|989898|1|9999005477|MR|Test|E|Lead 5477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005478|105478|989898|1|9999005478|MR|Test|E|Lead 5478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005479|105479|989898|1|9999005479|MR|Test|E|Lead 5479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005480|105480|989898|1|9999005480|MR|Test|E|Lead 5480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005481|105481|989898|1|9999005481|MR|Test|E|Lead 5481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005482|105482|989898|1|9999005482|MR|Test|E|Lead 5482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005483|105483|989898|1|9999005483|MR|Test|E|Lead 5483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005484|105484|989898|1|9999005484|MR|Test|E|Lead 5484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005485|105485|989898|1|9999005485|MR|Test|E|Lead 5485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005486|105486|989898|1|9999005486|MR|Test|E|Lead 5486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005487|105487|989898|1|9999005487|MR|Test|E|Lead 5487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005488|105488|989898|1|9999005488|MR|Test|E|Lead 5488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005489|105489|989898|1|9999005489|MR|Test|E|Lead 5489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005490|105490|989898|1|9999005490|MR|Test|E|Lead 5490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005491|105491|989898|1|9999005491|MR|Test|E|Lead 5491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005492|105492|989898|1|9999005492|MR|Test|E|Lead 5492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005493|105493|989898|1|9999005493|MR|Test|E|Lead 5493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005494|105494|989898|1|9999005494|MR|Test|E|Lead 5494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005495|105495|989898|1|9999005495|MR|Test|E|Lead 5495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005496|105496|989898|1|9999005496|MR|Test|E|Lead 5496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005497|105497|989898|1|9999005497|MR|Test|E|Lead 5497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005498|105498|989898|1|9999005498|MR|Test|E|Lead 5498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005499|105499|989898|1|9999005499|MR|Test|E|Lead 5499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005500|105500|989898|1|9999005500|MR|Test|E|Lead 5500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005501|105501|989898|1|9999005501|MR|Test|E|Lead 5501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005502|105502|989898|1|9999005502|MR|Test|E|Lead 5502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005503|105503|989898|1|9999005503|MR|Test|E|Lead 5503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005504|105504|989898|1|9999005504|MR|Test|E|Lead 5504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005505|105505|989898|1|9999005505|MR|Test|E|Lead 5505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005506|105506|989898|1|9999005506|MR|Test|E|Lead 5506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005507|105507|989898|1|9999005507|MR|Test|E|Lead 5507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005508|105508|989898|1|9999005508|MR|Test|E|Lead 5508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005509|105509|989898|1|9999005509|MR|Test|E|Lead 5509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005510|105510|989898|1|9999005510|MR|Test|E|Lead 5510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005511|105511|989898|1|9999005511|MR|Test|E|Lead 5511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005512|105512|989898|1|9999005512|MR|Test|E|Lead 5512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005513|105513|989898|1|9999005513|MR|Test|E|Lead 5513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005514|105514|989898|1|9999005514|MR|Test|E|Lead 5514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005515|105515|989898|1|9999005515|MR|Test|E|Lead 5515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005516|105516|989898|1|9999005516|MR|Test|E|Lead 5516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005517|105517|989898|1|9999005517|MR|Test|E|Lead 5517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005518|105518|989898|1|9999005518|MR|Test|E|Lead 5518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005519|105519|989898|1|9999005519|MR|Test|E|Lead 5519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005520|105520|989898|1|9999005520|MR|Test|E|Lead 5520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005521|105521|989898|1|9999005521|MR|Test|E|Lead 5521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005522|105522|989898|1|9999005522|MR|Test|E|Lead 5522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005523|105523|989898|1|9999005523|MR|Test|E|Lead 5523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005524|105524|989898|1|9999005524|MR|Test|E|Lead 5524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005525|105525|989898|1|9999005525|MR|Test|E|Lead 5525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005526|105526|989898|1|9999005526|MR|Test|E|Lead 5526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005527|105527|989898|1|9999005527|MR|Test|E|Lead 5527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005528|105528|989898|1|9999005528|MR|Test|E|Lead 5528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005529|105529|989898|1|9999005529|MR|Test|E|Lead 5529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005530|105530|989898|1|9999005530|MR|Test|E|Lead 5530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005531|105531|989898|1|9999005531|MR|Test|E|Lead 5531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005532|105532|989898|1|9999005532|MR|Test|E|Lead 5532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005533|105533|989898|1|9999005533|MR|Test|E|Lead 5533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005534|105534|989898|1|9999005534|MR|Test|E|Lead 5534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005535|105535|989898|1|9999005535|MR|Test|E|Lead 5535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005536|105536|989898|1|9999005536|MR|Test|E|Lead 5536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005537|105537|989898|1|9999005537|MR|Test|E|Lead 5537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005538|105538|989898|1|9999005538|MR|Test|E|Lead 5538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005539|105539|989898|1|9999005539|MR|Test|E|Lead 5539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005540|105540|989898|1|9999005540|MR|Test|E|Lead 5540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005541|105541|989898|1|9999005541|MR|Test|E|Lead 5541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005542|105542|989898|1|9999005542|MR|Test|E|Lead 5542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005543|105543|989898|1|9999005543|MR|Test|E|Lead 5543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005544|105544|989898|1|9999005544|MR|Test|E|Lead 5544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005545|105545|989898|1|9999005545|MR|Test|E|Lead 5545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005546|105546|989898|1|9999005546|MR|Test|E|Lead 5546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005547|105547|989898|1|9999005547|MR|Test|E|Lead 5547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005548|105548|989898|1|9999005548|MR|Test|E|Lead 5548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005549|105549|989898|1|9999005549|MR|Test|E|Lead 5549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005550|105550|989898|1|9999005550|MR|Test|E|Lead 5550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005551|105551|989898|1|9999005551|MR|Test|E|Lead 5551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005552|105552|989898|1|9999005552|MR|Test|E|Lead 5552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005553|105553|989898|1|9999005553|MR|Test|E|Lead 5553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005554|105554|989898|1|9999005554|MR|Test|E|Lead 5554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005555|105555|989898|1|9999005555|MR|Test|E|Lead 5555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005556|105556|989898|1|9999005556|MR|Test|E|Lead 5556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005557|105557|989898|1|9999005557|MR|Test|E|Lead 5557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005558|105558|989898|1|9999005558|MR|Test|E|Lead 5558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005559|105559|989898|1|9999005559|MR|Test|E|Lead 5559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005560|105560|989898|1|9999005560|MR|Test|E|Lead 5560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005561|105561|989898|1|9999005561|MR|Test|E|Lead 5561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005562|105562|989898|1|9999005562|MR|Test|E|Lead 5562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005563|105563|989898|1|9999005563|MR|Test|E|Lead 5563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005564|105564|989898|1|9999005564|MR|Test|E|Lead 5564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005565|105565|989898|1|9999005565|MR|Test|E|Lead 5565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005566|105566|989898|1|9999005566|MR|Test|E|Lead 5566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005567|105567|989898|1|9999005567|MR|Test|E|Lead 5567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005568|105568|989898|1|9999005568|MR|Test|E|Lead 5568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005569|105569|989898|1|9999005569|MR|Test|E|Lead 5569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005570|105570|989898|1|9999005570|MR|Test|E|Lead 5570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005571|105571|989898|1|9999005571|MR|Test|E|Lead 5571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005572|105572|989898|1|9999005572|MR|Test|E|Lead 5572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005573|105573|989898|1|9999005573|MR|Test|E|Lead 5573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005574|105574|989898|1|9999005574|MR|Test|E|Lead 5574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005575|105575|989898|1|9999005575|MR|Test|E|Lead 5575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005576|105576|989898|1|9999005576|MR|Test|E|Lead 5576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005577|105577|989898|1|9999005577|MR|Test|E|Lead 5577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005578|105578|989898|1|9999005578|MR|Test|E|Lead 5578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005579|105579|989898|1|9999005579|MR|Test|E|Lead 5579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005580|105580|989898|1|9999005580|MR|Test|E|Lead 5580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005581|105581|989898|1|9999005581|MR|Test|E|Lead 5581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005582|105582|989898|1|9999005582|MR|Test|E|Lead 5582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005583|105583|989898|1|9999005583|MR|Test|E|Lead 5583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005584|105584|989898|1|9999005584|MR|Test|E|Lead 5584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005585|105585|989898|1|9999005585|MR|Test|E|Lead 5585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005586|105586|989898|1|9999005586|MR|Test|E|Lead 5586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005587|105587|989898|1|9999005587|MR|Test|E|Lead 5587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005588|105588|989898|1|9999005588|MR|Test|E|Lead 5588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005589|105589|989898|1|9999005589|MR|Test|E|Lead 5589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005590|105590|989898|1|9999005590|MR|Test|E|Lead 5590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005591|105591|989898|1|9999005591|MR|Test|E|Lead 5591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005592|105592|989898|1|9999005592|MR|Test|E|Lead 5592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005593|105593|989898|1|9999005593|MR|Test|E|Lead 5593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005594|105594|989898|1|9999005594|MR|Test|E|Lead 5594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005595|105595|989898|1|9999005595|MR|Test|E|Lead 5595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005596|105596|989898|1|9999005596|MR|Test|E|Lead 5596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005597|105597|989898|1|9999005597|MR|Test|E|Lead 5597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005598|105598|989898|1|9999005598|MR|Test|E|Lead 5598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005599|105599|989898|1|9999005599|MR|Test|E|Lead 5599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005600|105600|989898|1|9999005600|MR|Test|E|Lead 5600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005601|105601|989898|1|9999005601|MR|Test|E|Lead 5601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005602|105602|989898|1|9999005602|MR|Test|E|Lead 5602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005603|105603|989898|1|9999005603|MR|Test|E|Lead 5603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005604|105604|989898|1|9999005604|MR|Test|E|Lead 5604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005605|105605|989898|1|9999005605|MR|Test|E|Lead 5605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005606|105606|989898|1|9999005606|MR|Test|E|Lead 5606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005607|105607|989898|1|9999005607|MR|Test|E|Lead 5607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005608|105608|989898|1|9999005608|MR|Test|E|Lead 5608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005609|105609|989898|1|9999005609|MR|Test|E|Lead 5609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005610|105610|989898|1|9999005610|MR|Test|E|Lead 5610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005611|105611|989898|1|9999005611|MR|Test|E|Lead 5611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005612|105612|989898|1|9999005612|MR|Test|E|Lead 5612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005613|105613|989898|1|9999005613|MR|Test|E|Lead 5613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005614|105614|989898|1|9999005614|MR|Test|E|Lead 5614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005615|105615|989898|1|9999005615|MR|Test|E|Lead 5615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005616|105616|989898|1|9999005616|MR|Test|E|Lead 5616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005617|105617|989898|1|9999005617|MR|Test|E|Lead 5617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005618|105618|989898|1|9999005618|MR|Test|E|Lead 5618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005619|105619|989898|1|9999005619|MR|Test|E|Lead 5619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005620|105620|989898|1|9999005620|MR|Test|E|Lead 5620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005621|105621|989898|1|9999005621|MR|Test|E|Lead 5621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005622|105622|989898|1|9999005622|MR|Test|E|Lead 5622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005623|105623|989898|1|9999005623|MR|Test|E|Lead 5623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005624|105624|989898|1|9999005624|MR|Test|E|Lead 5624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005625|105625|989898|1|9999005625|MR|Test|E|Lead 5625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005626|105626|989898|1|9999005626|MR|Test|E|Lead 5626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005627|105627|989898|1|9999005627|MR|Test|E|Lead 5627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005628|105628|989898|1|9999005628|MR|Test|E|Lead 5628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005629|105629|989898|1|9999005629|MR|Test|E|Lead 5629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005630|105630|989898|1|9999005630|MR|Test|E|Lead 5630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005631|105631|989898|1|9999005631|MR|Test|E|Lead 5631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005632|105632|989898|1|9999005632|MR|Test|E|Lead 5632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005633|105633|989898|1|9999005633|MR|Test|E|Lead 5633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005634|105634|989898|1|9999005634|MR|Test|E|Lead 5634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005635|105635|989898|1|9999005635|MR|Test|E|Lead 5635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005636|105636|989898|1|9999005636|MR|Test|E|Lead 5636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005637|105637|989898|1|9999005637|MR|Test|E|Lead 5637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005638|105638|989898|1|9999005638|MR|Test|E|Lead 5638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005639|105639|989898|1|9999005639|MR|Test|E|Lead 5639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005640|105640|989898|1|9999005640|MR|Test|E|Lead 5640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005641|105641|989898|1|9999005641|MR|Test|E|Lead 5641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005642|105642|989898|1|9999005642|MR|Test|E|Lead 5642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005643|105643|989898|1|9999005643|MR|Test|E|Lead 5643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005644|105644|989898|1|9999005644|MR|Test|E|Lead 5644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005645|105645|989898|1|9999005645|MR|Test|E|Lead 5645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005646|105646|989898|1|9999005646|MR|Test|E|Lead 5646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005647|105647|989898|1|9999005647|MR|Test|E|Lead 5647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005648|105648|989898|1|9999005648|MR|Test|E|Lead 5648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005649|105649|989898|1|9999005649|MR|Test|E|Lead 5649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005650|105650|989898|1|9999005650|MR|Test|E|Lead 5650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005651|105651|989898|1|9999005651|MR|Test|E|Lead 5651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005652|105652|989898|1|9999005652|MR|Test|E|Lead 5652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005653|105653|989898|1|9999005653|MR|Test|E|Lead 5653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005654|105654|989898|1|9999005654|MR|Test|E|Lead 5654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005655|105655|989898|1|9999005655|MR|Test|E|Lead 5655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005656|105656|989898|1|9999005656|MR|Test|E|Lead 5656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005657|105657|989898|1|9999005657|MR|Test|E|Lead 5657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005658|105658|989898|1|9999005658|MR|Test|E|Lead 5658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005659|105659|989898|1|9999005659|MR|Test|E|Lead 5659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005660|105660|989898|1|9999005660|MR|Test|E|Lead 5660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005661|105661|989898|1|9999005661|MR|Test|E|Lead 5661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005662|105662|989898|1|9999005662|MR|Test|E|Lead 5662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005663|105663|989898|1|9999005663|MR|Test|E|Lead 5663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005664|105664|989898|1|9999005664|MR|Test|E|Lead 5664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005665|105665|989898|1|9999005665|MR|Test|E|Lead 5665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005666|105666|989898|1|9999005666|MR|Test|E|Lead 5666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005667|105667|989898|1|9999005667|MR|Test|E|Lead 5667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005668|105668|989898|1|9999005668|MR|Test|E|Lead 5668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005669|105669|989898|1|9999005669|MR|Test|E|Lead 5669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005670|105670|989898|1|9999005670|MR|Test|E|Lead 5670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005671|105671|989898|1|9999005671|MR|Test|E|Lead 5671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005672|105672|989898|1|9999005672|MR|Test|E|Lead 5672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005673|105673|989898|1|9999005673|MR|Test|E|Lead 5673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005674|105674|989898|1|9999005674|MR|Test|E|Lead 5674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005675|105675|989898|1|9999005675|MR|Test|E|Lead 5675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005676|105676|989898|1|9999005676|MR|Test|E|Lead 5676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005677|105677|989898|1|9999005677|MR|Test|E|Lead 5677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005678|105678|989898|1|9999005678|MR|Test|E|Lead 5678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005679|105679|989898|1|9999005679|MR|Test|E|Lead 5679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005680|105680|989898|1|9999005680|MR|Test|E|Lead 5680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005681|105681|989898|1|9999005681|MR|Test|E|Lead 5681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005682|105682|989898|1|9999005682|MR|Test|E|Lead 5682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005683|105683|989898|1|9999005683|MR|Test|E|Lead 5683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005684|105684|989898|1|9999005684|MR|Test|E|Lead 5684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005685|105685|989898|1|9999005685|MR|Test|E|Lead 5685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005686|105686|989898|1|9999005686|MR|Test|E|Lead 5686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005687|105687|989898|1|9999005687|MR|Test|E|Lead 5687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005688|105688|989898|1|9999005688|MR|Test|E|Lead 5688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005689|105689|989898|1|9999005689|MR|Test|E|Lead 5689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005690|105690|989898|1|9999005690|MR|Test|E|Lead 5690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005691|105691|989898|1|9999005691|MR|Test|E|Lead 5691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005692|105692|989898|1|9999005692|MR|Test|E|Lead 5692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005693|105693|989898|1|9999005693|MR|Test|E|Lead 5693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005694|105694|989898|1|9999005694|MR|Test|E|Lead 5694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005695|105695|989898|1|9999005695|MR|Test|E|Lead 5695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005696|105696|989898|1|9999005696|MR|Test|E|Lead 5696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005697|105697|989898|1|9999005697|MR|Test|E|Lead 5697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005698|105698|989898|1|9999005698|MR|Test|E|Lead 5698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005699|105699|989898|1|9999005699|MR|Test|E|Lead 5699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005700|105700|989898|1|9999005700|MR|Test|E|Lead 5700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005701|105701|989898|1|9999005701|MR|Test|E|Lead 5701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005702|105702|989898|1|9999005702|MR|Test|E|Lead 5702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005703|105703|989898|1|9999005703|MR|Test|E|Lead 5703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005704|105704|989898|1|9999005704|MR|Test|E|Lead 5704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005705|105705|989898|1|9999005705|MR|Test|E|Lead 5705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005706|105706|989898|1|9999005706|MR|Test|E|Lead 5706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005707|105707|989898|1|9999005707|MR|Test|E|Lead 5707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005708|105708|989898|1|9999005708|MR|Test|E|Lead 5708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005709|105709|989898|1|9999005709|MR|Test|E|Lead 5709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005710|105710|989898|1|9999005710|MR|Test|E|Lead 5710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005711|105711|989898|1|9999005711|MR|Test|E|Lead 5711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005712|105712|989898|1|9999005712|MR|Test|E|Lead 5712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005713|105713|989898|1|9999005713|MR|Test|E|Lead 5713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005714|105714|989898|1|9999005714|MR|Test|E|Lead 5714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005715|105715|989898|1|9999005715|MR|Test|E|Lead 5715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005716|105716|989898|1|9999005716|MR|Test|E|Lead 5716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005717|105717|989898|1|9999005717|MR|Test|E|Lead 5717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005718|105718|989898|1|9999005718|MR|Test|E|Lead 5718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005719|105719|989898|1|9999005719|MR|Test|E|Lead 5719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005720|105720|989898|1|9999005720|MR|Test|E|Lead 5720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005721|105721|989898|1|9999005721|MR|Test|E|Lead 5721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005722|105722|989898|1|9999005722|MR|Test|E|Lead 5722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005723|105723|989898|1|9999005723|MR|Test|E|Lead 5723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005724|105724|989898|1|9999005724|MR|Test|E|Lead 5724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005725|105725|989898|1|9999005725|MR|Test|E|Lead 5725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005726|105726|989898|1|9999005726|MR|Test|E|Lead 5726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005727|105727|989898|1|9999005727|MR|Test|E|Lead 5727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005728|105728|989898|1|9999005728|MR|Test|E|Lead 5728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005729|105729|989898|1|9999005729|MR|Test|E|Lead 5729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005730|105730|989898|1|9999005730|MR|Test|E|Lead 5730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005731|105731|989898|1|9999005731|MR|Test|E|Lead 5731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005732|105732|989898|1|9999005732|MR|Test|E|Lead 5732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005733|105733|989898|1|9999005733|MR|Test|E|Lead 5733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005734|105734|989898|1|9999005734|MR|Test|E|Lead 5734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005735|105735|989898|1|9999005735|MR|Test|E|Lead 5735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005736|105736|989898|1|9999005736|MR|Test|E|Lead 5736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005737|105737|989898|1|9999005737|MR|Test|E|Lead 5737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005738|105738|989898|1|9999005738|MR|Test|E|Lead 5738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005739|105739|989898|1|9999005739|MR|Test|E|Lead 5739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005740|105740|989898|1|9999005740|MR|Test|E|Lead 5740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005741|105741|989898|1|9999005741|MR|Test|E|Lead 5741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005742|105742|989898|1|9999005742|MR|Test|E|Lead 5742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005743|105743|989898|1|9999005743|MR|Test|E|Lead 5743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005744|105744|989898|1|9999005744|MR|Test|E|Lead 5744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005745|105745|989898|1|9999005745|MR|Test|E|Lead 5745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005746|105746|989898|1|9999005746|MR|Test|E|Lead 5746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005747|105747|989898|1|9999005747|MR|Test|E|Lead 5747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005748|105748|989898|1|9999005748|MR|Test|E|Lead 5748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005749|105749|989898|1|9999005749|MR|Test|E|Lead 5749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005750|105750|989898|1|9999005750|MR|Test|E|Lead 5750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005751|105751|989898|1|9999005751|MR|Test|E|Lead 5751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005752|105752|989898|1|9999005752|MR|Test|E|Lead 5752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005753|105753|989898|1|9999005753|MR|Test|E|Lead 5753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005754|105754|989898|1|9999005754|MR|Test|E|Lead 5754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005755|105755|989898|1|9999005755|MR|Test|E|Lead 5755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005756|105756|989898|1|9999005756|MR|Test|E|Lead 5756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005757|105757|989898|1|9999005757|MR|Test|E|Lead 5757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005758|105758|989898|1|9999005758|MR|Test|E|Lead 5758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005759|105759|989898|1|9999005759|MR|Test|E|Lead 5759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005760|105760|989898|1|9999005760|MR|Test|E|Lead 5760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005761|105761|989898|1|9999005761|MR|Test|E|Lead 5761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005762|105762|989898|1|9999005762|MR|Test|E|Lead 5762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005763|105763|989898|1|9999005763|MR|Test|E|Lead 5763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005764|105764|989898|1|9999005764|MR|Test|E|Lead 5764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005765|105765|989898|1|9999005765|MR|Test|E|Lead 5765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005766|105766|989898|1|9999005766|MR|Test|E|Lead 5766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005767|105767|989898|1|9999005767|MR|Test|E|Lead 5767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005768|105768|989898|1|9999005768|MR|Test|E|Lead 5768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005769|105769|989898|1|9999005769|MR|Test|E|Lead 5769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005770|105770|989898|1|9999005770|MR|Test|E|Lead 5770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005771|105771|989898|1|9999005771|MR|Test|E|Lead 5771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005772|105772|989898|1|9999005772|MR|Test|E|Lead 5772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005773|105773|989898|1|9999005773|MR|Test|E|Lead 5773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005774|105774|989898|1|9999005774|MR|Test|E|Lead 5774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005775|105775|989898|1|9999005775|MR|Test|E|Lead 5775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005776|105776|989898|1|9999005776|MR|Test|E|Lead 5776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005777|105777|989898|1|9999005777|MR|Test|E|Lead 5777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005778|105778|989898|1|9999005778|MR|Test|E|Lead 5778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005779|105779|989898|1|9999005779|MR|Test|E|Lead 5779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005780|105780|989898|1|9999005780|MR|Test|E|Lead 5780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005781|105781|989898|1|9999005781|MR|Test|E|Lead 5781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005782|105782|989898|1|9999005782|MR|Test|E|Lead 5782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005783|105783|989898|1|9999005783|MR|Test|E|Lead 5783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005784|105784|989898|1|9999005784|MR|Test|E|Lead 5784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005785|105785|989898|1|9999005785|MR|Test|E|Lead 5785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005786|105786|989898|1|9999005786|MR|Test|E|Lead 5786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005787|105787|989898|1|9999005787|MR|Test|E|Lead 5787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005788|105788|989898|1|9999005788|MR|Test|E|Lead 5788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005789|105789|989898|1|9999005789|MR|Test|E|Lead 5789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005790|105790|989898|1|9999005790|MR|Test|E|Lead 5790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005791|105791|989898|1|9999005791|MR|Test|E|Lead 5791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005792|105792|989898|1|9999005792|MR|Test|E|Lead 5792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005793|105793|989898|1|9999005793|MR|Test|E|Lead 5793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005794|105794|989898|1|9999005794|MR|Test|E|Lead 5794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005795|105795|989898|1|9999005795|MR|Test|E|Lead 5795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005796|105796|989898|1|9999005796|MR|Test|E|Lead 5796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005797|105797|989898|1|9999005797|MR|Test|E|Lead 5797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005798|105798|989898|1|9999005798|MR|Test|E|Lead 5798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005799|105799|989898|1|9999005799|MR|Test|E|Lead 5799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005800|105800|989898|1|9999005800|MR|Test|E|Lead 5800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005801|105801|989898|1|9999005801|MR|Test|E|Lead 5801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005802|105802|989898|1|9999005802|MR|Test|E|Lead 5802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005803|105803|989898|1|9999005803|MR|Test|E|Lead 5803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005804|105804|989898|1|9999005804|MR|Test|E|Lead 5804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005805|105805|989898|1|9999005805|MR|Test|E|Lead 5805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005806|105806|989898|1|9999005806|MR|Test|E|Lead 5806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005807|105807|989898|1|9999005807|MR|Test|E|Lead 5807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005808|105808|989898|1|9999005808|MR|Test|E|Lead 5808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005809|105809|989898|1|9999005809|MR|Test|E|Lead 5809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005810|105810|989898|1|9999005810|MR|Test|E|Lead 5810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005811|105811|989898|1|9999005811|MR|Test|E|Lead 5811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005812|105812|989898|1|9999005812|MR|Test|E|Lead 5812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005813|105813|989898|1|9999005813|MR|Test|E|Lead 5813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005814|105814|989898|1|9999005814|MR|Test|E|Lead 5814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005815|105815|989898|1|9999005815|MR|Test|E|Lead 5815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005816|105816|989898|1|9999005816|MR|Test|E|Lead 5816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005817|105817|989898|1|9999005817|MR|Test|E|Lead 5817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005818|105818|989898|1|9999005818|MR|Test|E|Lead 5818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005819|105819|989898|1|9999005819|MR|Test|E|Lead 5819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005820|105820|989898|1|9999005820|MR|Test|E|Lead 5820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005821|105821|989898|1|9999005821|MR|Test|E|Lead 5821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005822|105822|989898|1|9999005822|MR|Test|E|Lead 5822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005823|105823|989898|1|9999005823|MR|Test|E|Lead 5823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005824|105824|989898|1|9999005824|MR|Test|E|Lead 5824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005825|105825|989898|1|9999005825|MR|Test|E|Lead 5825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005826|105826|989898|1|9999005826|MR|Test|E|Lead 5826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005827|105827|989898|1|9999005827|MR|Test|E|Lead 5827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005828|105828|989898|1|9999005828|MR|Test|E|Lead 5828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005829|105829|989898|1|9999005829|MR|Test|E|Lead 5829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005830|105830|989898|1|9999005830|MR|Test|E|Lead 5830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005831|105831|989898|1|9999005831|MR|Test|E|Lead 5831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005832|105832|989898|1|9999005832|MR|Test|E|Lead 5832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005833|105833|989898|1|9999005833|MR|Test|E|Lead 5833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005834|105834|989898|1|9999005834|MR|Test|E|Lead 5834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005835|105835|989898|1|9999005835|MR|Test|E|Lead 5835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005836|105836|989898|1|9999005836|MR|Test|E|Lead 5836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005837|105837|989898|1|9999005837|MR|Test|E|Lead 5837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005838|105838|989898|1|9999005838|MR|Test|E|Lead 5838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005839|105839|989898|1|9999005839|MR|Test|E|Lead 5839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005840|105840|989898|1|9999005840|MR|Test|E|Lead 5840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005841|105841|989898|1|9999005841|MR|Test|E|Lead 5841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005842|105842|989898|1|9999005842|MR|Test|E|Lead 5842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005843|105843|989898|1|9999005843|MR|Test|E|Lead 5843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005844|105844|989898|1|9999005844|MR|Test|E|Lead 5844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005845|105845|989898|1|9999005845|MR|Test|E|Lead 5845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005846|105846|989898|1|9999005846|MR|Test|E|Lead 5846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005847|105847|989898|1|9999005847|MR|Test|E|Lead 5847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005848|105848|989898|1|9999005848|MR|Test|E|Lead 5848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005849|105849|989898|1|9999005849|MR|Test|E|Lead 5849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005850|105850|989898|1|9999005850|MR|Test|E|Lead 5850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005851|105851|989898|1|9999005851|MR|Test|E|Lead 5851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005852|105852|989898|1|9999005852|MR|Test|E|Lead 5852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005853|105853|989898|1|9999005853|MR|Test|E|Lead 5853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005854|105854|989898|1|9999005854|MR|Test|E|Lead 5854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005855|105855|989898|1|9999005855|MR|Test|E|Lead 5855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005856|105856|989898|1|9999005856|MR|Test|E|Lead 5856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005857|105857|989898|1|9999005857|MR|Test|E|Lead 5857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005858|105858|989898|1|9999005858|MR|Test|E|Lead 5858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005859|105859|989898|1|9999005859|MR|Test|E|Lead 5859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005860|105860|989898|1|9999005860|MR|Test|E|Lead 5860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005861|105861|989898|1|9999005861|MR|Test|E|Lead 5861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005862|105862|989898|1|9999005862|MR|Test|E|Lead 5862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005863|105863|989898|1|9999005863|MR|Test|E|Lead 5863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005864|105864|989898|1|9999005864|MR|Test|E|Lead 5864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005865|105865|989898|1|9999005865|MR|Test|E|Lead 5865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005866|105866|989898|1|9999005866|MR|Test|E|Lead 5866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005867|105867|989898|1|9999005867|MR|Test|E|Lead 5867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005868|105868|989898|1|9999005868|MR|Test|E|Lead 5868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005869|105869|989898|1|9999005869|MR|Test|E|Lead 5869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005870|105870|989898|1|9999005870|MR|Test|E|Lead 5870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005871|105871|989898|1|9999005871|MR|Test|E|Lead 5871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005872|105872|989898|1|9999005872|MR|Test|E|Lead 5872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005873|105873|989898|1|9999005873|MR|Test|E|Lead 5873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005874|105874|989898|1|9999005874|MR|Test|E|Lead 5874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005875|105875|989898|1|9999005875|MR|Test|E|Lead 5875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005876|105876|989898|1|9999005876|MR|Test|E|Lead 5876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005877|105877|989898|1|9999005877|MR|Test|E|Lead 5877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005878|105878|989898|1|9999005878|MR|Test|E|Lead 5878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005879|105879|989898|1|9999005879|MR|Test|E|Lead 5879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005880|105880|989898|1|9999005880|MR|Test|E|Lead 5880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005881|105881|989898|1|9999005881|MR|Test|E|Lead 5881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005882|105882|989898|1|9999005882|MR|Test|E|Lead 5882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005883|105883|989898|1|9999005883|MR|Test|E|Lead 5883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005884|105884|989898|1|9999005884|MR|Test|E|Lead 5884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005885|105885|989898|1|9999005885|MR|Test|E|Lead 5885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005886|105886|989898|1|9999005886|MR|Test|E|Lead 5886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005887|105887|989898|1|9999005887|MR|Test|E|Lead 5887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005888|105888|989898|1|9999005888|MR|Test|E|Lead 5888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005889|105889|989898|1|9999005889|MR|Test|E|Lead 5889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005890|105890|989898|1|9999005890|MR|Test|E|Lead 5890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005891|105891|989898|1|9999005891|MR|Test|E|Lead 5891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005892|105892|989898|1|9999005892|MR|Test|E|Lead 5892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005893|105893|989898|1|9999005893|MR|Test|E|Lead 5893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005894|105894|989898|1|9999005894|MR|Test|E|Lead 5894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005895|105895|989898|1|9999005895|MR|Test|E|Lead 5895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005896|105896|989898|1|9999005896|MR|Test|E|Lead 5896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005897|105897|989898|1|9999005897|MR|Test|E|Lead 5897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005898|105898|989898|1|9999005898|MR|Test|E|Lead 5898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005899|105899|989898|1|9999005899|MR|Test|E|Lead 5899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005900|105900|989898|1|9999005900|MR|Test|E|Lead 5900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005901|105901|989898|1|9999005901|MR|Test|E|Lead 5901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005902|105902|989898|1|9999005902|MR|Test|E|Lead 5902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005903|105903|989898|1|9999005903|MR|Test|E|Lead 5903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005904|105904|989898|1|9999005904|MR|Test|E|Lead 5904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005905|105905|989898|1|9999005905|MR|Test|E|Lead 5905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005906|105906|989898|1|9999005906|MR|Test|E|Lead 5906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005907|105907|989898|1|9999005907|MR|Test|E|Lead 5907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005908|105908|989898|1|9999005908|MR|Test|E|Lead 5908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005909|105909|989898|1|9999005909|MR|Test|E|Lead 5909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005910|105910|989898|1|9999005910|MR|Test|E|Lead 5910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005911|105911|989898|1|9999005911|MR|Test|E|Lead 5911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005912|105912|989898|1|9999005912|MR|Test|E|Lead 5912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005913|105913|989898|1|9999005913|MR|Test|E|Lead 5913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005914|105914|989898|1|9999005914|MR|Test|E|Lead 5914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005915|105915|989898|1|9999005915|MR|Test|E|Lead 5915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005916|105916|989898|1|9999005916|MR|Test|E|Lead 5916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005917|105917|989898|1|9999005917|MR|Test|E|Lead 5917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005918|105918|989898|1|9999005918|MR|Test|E|Lead 5918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005919|105919|989898|1|9999005919|MR|Test|E|Lead 5919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005920|105920|989898|1|9999005920|MR|Test|E|Lead 5920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005921|105921|989898|1|9999005921|MR|Test|E|Lead 5921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005922|105922|989898|1|9999005922|MR|Test|E|Lead 5922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005923|105923|989898|1|9999005923|MR|Test|E|Lead 5923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005924|105924|989898|1|9999005924|MR|Test|E|Lead 5924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005925|105925|989898|1|9999005925|MR|Test|E|Lead 5925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005926|105926|989898|1|9999005926|MR|Test|E|Lead 5926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005927|105927|989898|1|9999005927|MR|Test|E|Lead 5927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005928|105928|989898|1|9999005928|MR|Test|E|Lead 5928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005929|105929|989898|1|9999005929|MR|Test|E|Lead 5929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005930|105930|989898|1|9999005930|MR|Test|E|Lead 5930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005931|105931|989898|1|9999005931|MR|Test|E|Lead 5931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005932|105932|989898|1|9999005932|MR|Test|E|Lead 5932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005933|105933|989898|1|9999005933|MR|Test|E|Lead 5933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005934|105934|989898|1|9999005934|MR|Test|E|Lead 5934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005935|105935|989898|1|9999005935|MR|Test|E|Lead 5935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005936|105936|989898|1|9999005936|MR|Test|E|Lead 5936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005937|105937|989898|1|9999005937|MR|Test|E|Lead 5937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005938|105938|989898|1|9999005938|MR|Test|E|Lead 5938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005939|105939|989898|1|9999005939|MR|Test|E|Lead 5939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005940|105940|989898|1|9999005940|MR|Test|E|Lead 5940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005941|105941|989898|1|9999005941|MR|Test|E|Lead 5941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005942|105942|989898|1|9999005942|MR|Test|E|Lead 5942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005943|105943|989898|1|9999005943|MR|Test|E|Lead 5943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005944|105944|989898|1|9999005944|MR|Test|E|Lead 5944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005945|105945|989898|1|9999005945|MR|Test|E|Lead 5945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005946|105946|989898|1|9999005946|MR|Test|E|Lead 5946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005947|105947|989898|1|9999005947|MR|Test|E|Lead 5947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005948|105948|989898|1|9999005948|MR|Test|E|Lead 5948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005949|105949|989898|1|9999005949|MR|Test|E|Lead 5949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005950|105950|989898|1|9999005950|MR|Test|E|Lead 5950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005951|105951|989898|1|9999005951|MR|Test|E|Lead 5951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005952|105952|989898|1|9999005952|MR|Test|E|Lead 5952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005953|105953|989898|1|9999005953|MR|Test|E|Lead 5953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005954|105954|989898|1|9999005954|MR|Test|E|Lead 5954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005955|105955|989898|1|9999005955|MR|Test|E|Lead 5955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005956|105956|989898|1|9999005956|MR|Test|E|Lead 5956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005957|105957|989898|1|9999005957|MR|Test|E|Lead 5957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005958|105958|989898|1|9999005958|MR|Test|E|Lead 5958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005959|105959|989898|1|9999005959|MR|Test|E|Lead 5959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005960|105960|989898|1|9999005960|MR|Test|E|Lead 5960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005961|105961|989898|1|9999005961|MR|Test|E|Lead 5961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005962|105962|989898|1|9999005962|MR|Test|E|Lead 5962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005963|105963|989898|1|9999005963|MR|Test|E|Lead 5963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005964|105964|989898|1|9999005964|MR|Test|E|Lead 5964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005965|105965|989898|1|9999005965|MR|Test|E|Lead 5965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005966|105966|989898|1|9999005966|MR|Test|E|Lead 5966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005967|105967|989898|1|9999005967|MR|Test|E|Lead 5967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005968|105968|989898|1|9999005968|MR|Test|E|Lead 5968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005969|105969|989898|1|9999005969|MR|Test|E|Lead 5969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005970|105970|989898|1|9999005970|MR|Test|E|Lead 5970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005971|105971|989898|1|9999005971|MR|Test|E|Lead 5971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005972|105972|989898|1|9999005972|MR|Test|E|Lead 5972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005973|105973|989898|1|9999005973|MR|Test|E|Lead 5973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005974|105974|989898|1|9999005974|MR|Test|E|Lead 5974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005975|105975|989898|1|9999005975|MR|Test|E|Lead 5975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005976|105976|989898|1|9999005976|MR|Test|E|Lead 5976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005977|105977|989898|1|9999005977|MR|Test|E|Lead 5977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005978|105978|989898|1|9999005978|MR|Test|E|Lead 5978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005979|105979|989898|1|9999005979|MR|Test|E|Lead 5979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005980|105980|989898|1|9999005980|MR|Test|E|Lead 5980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005981|105981|989898|1|9999005981|MR|Test|E|Lead 5981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005982|105982|989898|1|9999005982|MR|Test|E|Lead 5982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005983|105983|989898|1|9999005983|MR|Test|E|Lead 5983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005984|105984|989898|1|9999005984|MR|Test|E|Lead 5984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005985|105985|989898|1|9999005985|MR|Test|E|Lead 5985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005986|105986|989898|1|9999005986|MR|Test|E|Lead 5986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005987|105987|989898|1|9999005987|MR|Test|E|Lead 5987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005988|105988|989898|1|9999005988|MR|Test|E|Lead 5988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005989|105989|989898|1|9999005989|MR|Test|E|Lead 5989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005990|105990|989898|1|9999005990|MR|Test|E|Lead 5990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005991|105991|989898|1|9999005991|MR|Test|E|Lead 5991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005992|105992|989898|1|9999005992|MR|Test|E|Lead 5992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005993|105993|989898|1|9999005993|MR|Test|E|Lead 5993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005994|105994|989898|1|9999005994|MR|Test|E|Lead 5994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005995|105995|989898|1|9999005995|MR|Test|E|Lead 5995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005996|105996|989898|1|9999005996|MR|Test|E|Lead 5996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005997|105997|989898|1|9999005997|MR|Test|E|Lead 5997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005998|105998|989898|1|9999005998|MR|Test|E|Lead 5998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1005999|105999|989898|1|9999005999|MR|Test|E|Lead 5999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006000|106000|989898|1|9999006000|MR|Test|E|Lead 6000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006001|106001|989898|1|9999006001|MR|Test|E|Lead 6001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006002|106002|989898|1|9999006002|MR|Test|E|Lead 6002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006003|106003|989898|1|9999006003|MR|Test|E|Lead 6003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006004|106004|989898|1|9999006004|MR|Test|E|Lead 6004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006005|106005|989898|1|9999006005|MR|Test|E|Lead 6005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006006|106006|989898|1|9999006006|MR|Test|E|Lead 6006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006007|106007|989898|1|9999006007|MR|Test|E|Lead 6007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006008|106008|989898|1|9999006008|MR|Test|E|Lead 6008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006009|106009|989898|1|9999006009|MR|Test|E|Lead 6009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006010|106010|989898|1|9999006010|MR|Test|E|Lead 6010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006011|106011|989898|1|9999006011|MR|Test|E|Lead 6011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006012|106012|989898|1|9999006012|MR|Test|E|Lead 6012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006013|106013|989898|1|9999006013|MR|Test|E|Lead 6013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006014|106014|989898|1|9999006014|MR|Test|E|Lead 6014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006015|106015|989898|1|9999006015|MR|Test|E|Lead 6015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006016|106016|989898|1|9999006016|MR|Test|E|Lead 6016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006017|106017|989898|1|9999006017|MR|Test|E|Lead 6017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006018|106018|989898|1|9999006018|MR|Test|E|Lead 6018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006019|106019|989898|1|9999006019|MR|Test|E|Lead 6019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006020|106020|989898|1|9999006020|MR|Test|E|Lead 6020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006021|106021|989898|1|9999006021|MR|Test|E|Lead 6021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006022|106022|989898|1|9999006022|MR|Test|E|Lead 6022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006023|106023|989898|1|9999006023|MR|Test|E|Lead 6023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006024|106024|989898|1|9999006024|MR|Test|E|Lead 6024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006025|106025|989898|1|9999006025|MR|Test|E|Lead 6025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006026|106026|989898|1|9999006026|MR|Test|E|Lead 6026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006027|106027|989898|1|9999006027|MR|Test|E|Lead 6027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006028|106028|989898|1|9999006028|MR|Test|E|Lead 6028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006029|106029|989898|1|9999006029|MR|Test|E|Lead 6029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006030|106030|989898|1|9999006030|MR|Test|E|Lead 6030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006031|106031|989898|1|9999006031|MR|Test|E|Lead 6031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006032|106032|989898|1|9999006032|MR|Test|E|Lead 6032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006033|106033|989898|1|9999006033|MR|Test|E|Lead 6033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006034|106034|989898|1|9999006034|MR|Test|E|Lead 6034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006035|106035|989898|1|9999006035|MR|Test|E|Lead 6035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006036|106036|989898|1|9999006036|MR|Test|E|Lead 6036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006037|106037|989898|1|9999006037|MR|Test|E|Lead 6037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006038|106038|989898|1|9999006038|MR|Test|E|Lead 6038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006039|106039|989898|1|9999006039|MR|Test|E|Lead 6039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006040|106040|989898|1|9999006040|MR|Test|E|Lead 6040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006041|106041|989898|1|9999006041|MR|Test|E|Lead 6041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006042|106042|989898|1|9999006042|MR|Test|E|Lead 6042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006043|106043|989898|1|9999006043|MR|Test|E|Lead 6043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006044|106044|989898|1|9999006044|MR|Test|E|Lead 6044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006045|106045|989898|1|9999006045|MR|Test|E|Lead 6045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006046|106046|989898|1|9999006046|MR|Test|E|Lead 6046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006047|106047|989898|1|9999006047|MR|Test|E|Lead 6047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006048|106048|989898|1|9999006048|MR|Test|E|Lead 6048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006049|106049|989898|1|9999006049|MR|Test|E|Lead 6049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006050|106050|989898|1|9999006050|MR|Test|E|Lead 6050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006051|106051|989898|1|9999006051|MR|Test|E|Lead 6051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006052|106052|989898|1|9999006052|MR|Test|E|Lead 6052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006053|106053|989898|1|9999006053|MR|Test|E|Lead 6053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006054|106054|989898|1|9999006054|MR|Test|E|Lead 6054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006055|106055|989898|1|9999006055|MR|Test|E|Lead 6055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006056|106056|989898|1|9999006056|MR|Test|E|Lead 6056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006057|106057|989898|1|9999006057|MR|Test|E|Lead 6057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006058|106058|989898|1|9999006058|MR|Test|E|Lead 6058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006059|106059|989898|1|9999006059|MR|Test|E|Lead 6059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006060|106060|989898|1|9999006060|MR|Test|E|Lead 6060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006061|106061|989898|1|9999006061|MR|Test|E|Lead 6061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006062|106062|989898|1|9999006062|MR|Test|E|Lead 6062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006063|106063|989898|1|9999006063|MR|Test|E|Lead 6063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006064|106064|989898|1|9999006064|MR|Test|E|Lead 6064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006065|106065|989898|1|9999006065|MR|Test|E|Lead 6065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006066|106066|989898|1|9999006066|MR|Test|E|Lead 6066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006067|106067|989898|1|9999006067|MR|Test|E|Lead 6067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006068|106068|989898|1|9999006068|MR|Test|E|Lead 6068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006069|106069|989898|1|9999006069|MR|Test|E|Lead 6069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006070|106070|989898|1|9999006070|MR|Test|E|Lead 6070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006071|106071|989898|1|9999006071|MR|Test|E|Lead 6071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006072|106072|989898|1|9999006072|MR|Test|E|Lead 6072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006073|106073|989898|1|9999006073|MR|Test|E|Lead 6073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006074|106074|989898|1|9999006074|MR|Test|E|Lead 6074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006075|106075|989898|1|9999006075|MR|Test|E|Lead 6075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006076|106076|989898|1|9999006076|MR|Test|E|Lead 6076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006077|106077|989898|1|9999006077|MR|Test|E|Lead 6077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006078|106078|989898|1|9999006078|MR|Test|E|Lead 6078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006079|106079|989898|1|9999006079|MR|Test|E|Lead 6079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006080|106080|989898|1|9999006080|MR|Test|E|Lead 6080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006081|106081|989898|1|9999006081|MR|Test|E|Lead 6081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006082|106082|989898|1|9999006082|MR|Test|E|Lead 6082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006083|106083|989898|1|9999006083|MR|Test|E|Lead 6083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006084|106084|989898|1|9999006084|MR|Test|E|Lead 6084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006085|106085|989898|1|9999006085|MR|Test|E|Lead 6085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006086|106086|989898|1|9999006086|MR|Test|E|Lead 6086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006087|106087|989898|1|9999006087|MR|Test|E|Lead 6087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006088|106088|989898|1|9999006088|MR|Test|E|Lead 6088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006089|106089|989898|1|9999006089|MR|Test|E|Lead 6089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006090|106090|989898|1|9999006090|MR|Test|E|Lead 6090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006091|106091|989898|1|9999006091|MR|Test|E|Lead 6091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006092|106092|989898|1|9999006092|MR|Test|E|Lead 6092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006093|106093|989898|1|9999006093|MR|Test|E|Lead 6093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006094|106094|989898|1|9999006094|MR|Test|E|Lead 6094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006095|106095|989898|1|9999006095|MR|Test|E|Lead 6095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006096|106096|989898|1|9999006096|MR|Test|E|Lead 6096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006097|106097|989898|1|9999006097|MR|Test|E|Lead 6097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006098|106098|989898|1|9999006098|MR|Test|E|Lead 6098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006099|106099|989898|1|9999006099|MR|Test|E|Lead 6099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006100|106100|989898|1|9999006100|MR|Test|E|Lead 6100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006101|106101|989898|1|9999006101|MR|Test|E|Lead 6101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006102|106102|989898|1|9999006102|MR|Test|E|Lead 6102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006103|106103|989898|1|9999006103|MR|Test|E|Lead 6103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006104|106104|989898|1|9999006104|MR|Test|E|Lead 6104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006105|106105|989898|1|9999006105|MR|Test|E|Lead 6105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006106|106106|989898|1|9999006106|MR|Test|E|Lead 6106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006107|106107|989898|1|9999006107|MR|Test|E|Lead 6107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006108|106108|989898|1|9999006108|MR|Test|E|Lead 6108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006109|106109|989898|1|9999006109|MR|Test|E|Lead 6109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006110|106110|989898|1|9999006110|MR|Test|E|Lead 6110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006111|106111|989898|1|9999006111|MR|Test|E|Lead 6111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006112|106112|989898|1|9999006112|MR|Test|E|Lead 6112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006113|106113|989898|1|9999006113|MR|Test|E|Lead 6113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006114|106114|989898|1|9999006114|MR|Test|E|Lead 6114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006115|106115|989898|1|9999006115|MR|Test|E|Lead 6115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006116|106116|989898|1|9999006116|MR|Test|E|Lead 6116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006117|106117|989898|1|9999006117|MR|Test|E|Lead 6117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006118|106118|989898|1|9999006118|MR|Test|E|Lead 6118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006119|106119|989898|1|9999006119|MR|Test|E|Lead 6119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006120|106120|989898|1|9999006120|MR|Test|E|Lead 6120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006121|106121|989898|1|9999006121|MR|Test|E|Lead 6121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006122|106122|989898|1|9999006122|MR|Test|E|Lead 6122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006123|106123|989898|1|9999006123|MR|Test|E|Lead 6123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006124|106124|989898|1|9999006124|MR|Test|E|Lead 6124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006125|106125|989898|1|9999006125|MR|Test|E|Lead 6125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006126|106126|989898|1|9999006126|MR|Test|E|Lead 6126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006127|106127|989898|1|9999006127|MR|Test|E|Lead 6127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006128|106128|989898|1|9999006128|MR|Test|E|Lead 6128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006129|106129|989898|1|9999006129|MR|Test|E|Lead 6129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006130|106130|989898|1|9999006130|MR|Test|E|Lead 6130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006131|106131|989898|1|9999006131|MR|Test|E|Lead 6131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006132|106132|989898|1|9999006132|MR|Test|E|Lead 6132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006133|106133|989898|1|9999006133|MR|Test|E|Lead 6133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006134|106134|989898|1|9999006134|MR|Test|E|Lead 6134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006135|106135|989898|1|9999006135|MR|Test|E|Lead 6135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006136|106136|989898|1|9999006136|MR|Test|E|Lead 6136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006137|106137|989898|1|9999006137|MR|Test|E|Lead 6137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006138|106138|989898|1|9999006138|MR|Test|E|Lead 6138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006139|106139|989898|1|9999006139|MR|Test|E|Lead 6139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006140|106140|989898|1|9999006140|MR|Test|E|Lead 6140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006141|106141|989898|1|9999006141|MR|Test|E|Lead 6141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006142|106142|989898|1|9999006142|MR|Test|E|Lead 6142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006143|106143|989898|1|9999006143|MR|Test|E|Lead 6143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006144|106144|989898|1|9999006144|MR|Test|E|Lead 6144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006145|106145|989898|1|9999006145|MR|Test|E|Lead 6145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006146|106146|989898|1|9999006146|MR|Test|E|Lead 6146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006147|106147|989898|1|9999006147|MR|Test|E|Lead 6147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006148|106148|989898|1|9999006148|MR|Test|E|Lead 6148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006149|106149|989898|1|9999006149|MR|Test|E|Lead 6149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006150|106150|989898|1|9999006150|MR|Test|E|Lead 6150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006151|106151|989898|1|9999006151|MR|Test|E|Lead 6151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006152|106152|989898|1|9999006152|MR|Test|E|Lead 6152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006153|106153|989898|1|9999006153|MR|Test|E|Lead 6153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006154|106154|989898|1|9999006154|MR|Test|E|Lead 6154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006155|106155|989898|1|9999006155|MR|Test|E|Lead 6155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006156|106156|989898|1|9999006156|MR|Test|E|Lead 6156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006157|106157|989898|1|9999006157|MR|Test|E|Lead 6157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006158|106158|989898|1|9999006158|MR|Test|E|Lead 6158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006159|106159|989898|1|9999006159|MR|Test|E|Lead 6159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006160|106160|989898|1|9999006160|MR|Test|E|Lead 6160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006161|106161|989898|1|9999006161|MR|Test|E|Lead 6161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006162|106162|989898|1|9999006162|MR|Test|E|Lead 6162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006163|106163|989898|1|9999006163|MR|Test|E|Lead 6163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006164|106164|989898|1|9999006164|MR|Test|E|Lead 6164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006165|106165|989898|1|9999006165|MR|Test|E|Lead 6165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006166|106166|989898|1|9999006166|MR|Test|E|Lead 6166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006167|106167|989898|1|9999006167|MR|Test|E|Lead 6167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006168|106168|989898|1|9999006168|MR|Test|E|Lead 6168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006169|106169|989898|1|9999006169|MR|Test|E|Lead 6169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006170|106170|989898|1|9999006170|MR|Test|E|Lead 6170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006171|106171|989898|1|9999006171|MR|Test|E|Lead 6171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006172|106172|989898|1|9999006172|MR|Test|E|Lead 6172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006173|106173|989898|1|9999006173|MR|Test|E|Lead 6173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006174|106174|989898|1|9999006174|MR|Test|E|Lead 6174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006175|106175|989898|1|9999006175|MR|Test|E|Lead 6175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006176|106176|989898|1|9999006176|MR|Test|E|Lead 6176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006177|106177|989898|1|9999006177|MR|Test|E|Lead 6177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006178|106178|989898|1|9999006178|MR|Test|E|Lead 6178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006179|106179|989898|1|9999006179|MR|Test|E|Lead 6179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006180|106180|989898|1|9999006180|MR|Test|E|Lead 6180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006181|106181|989898|1|9999006181|MR|Test|E|Lead 6181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006182|106182|989898|1|9999006182|MR|Test|E|Lead 6182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006183|106183|989898|1|9999006183|MR|Test|E|Lead 6183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006184|106184|989898|1|9999006184|MR|Test|E|Lead 6184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006185|106185|989898|1|9999006185|MR|Test|E|Lead 6185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006186|106186|989898|1|9999006186|MR|Test|E|Lead 6186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006187|106187|989898|1|9999006187|MR|Test|E|Lead 6187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006188|106188|989898|1|9999006188|MR|Test|E|Lead 6188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006189|106189|989898|1|9999006189|MR|Test|E|Lead 6189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006190|106190|989898|1|9999006190|MR|Test|E|Lead 6190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006191|106191|989898|1|9999006191|MR|Test|E|Lead 6191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006192|106192|989898|1|9999006192|MR|Test|E|Lead 6192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006193|106193|989898|1|9999006193|MR|Test|E|Lead 6193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006194|106194|989898|1|9999006194|MR|Test|E|Lead 6194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006195|106195|989898|1|9999006195|MR|Test|E|Lead 6195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006196|106196|989898|1|9999006196|MR|Test|E|Lead 6196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006197|106197|989898|1|9999006197|MR|Test|E|Lead 6197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006198|106198|989898|1|9999006198|MR|Test|E|Lead 6198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006199|106199|989898|1|9999006199|MR|Test|E|Lead 6199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006200|106200|989898|1|9999006200|MR|Test|E|Lead 6200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006201|106201|989898|1|9999006201|MR|Test|E|Lead 6201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006202|106202|989898|1|9999006202|MR|Test|E|Lead 6202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006203|106203|989898|1|9999006203|MR|Test|E|Lead 6203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006204|106204|989898|1|9999006204|MR|Test|E|Lead 6204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006205|106205|989898|1|9999006205|MR|Test|E|Lead 6205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006206|106206|989898|1|9999006206|MR|Test|E|Lead 6206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006207|106207|989898|1|9999006207|MR|Test|E|Lead 6207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006208|106208|989898|1|9999006208|MR|Test|E|Lead 6208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006209|106209|989898|1|9999006209|MR|Test|E|Lead 6209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006210|106210|989898|1|9999006210|MR|Test|E|Lead 6210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006211|106211|989898|1|9999006211|MR|Test|E|Lead 6211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006212|106212|989898|1|9999006212|MR|Test|E|Lead 6212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006213|106213|989898|1|9999006213|MR|Test|E|Lead 6213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006214|106214|989898|1|9999006214|MR|Test|E|Lead 6214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006215|106215|989898|1|9999006215|MR|Test|E|Lead 6215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006216|106216|989898|1|9999006216|MR|Test|E|Lead 6216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006217|106217|989898|1|9999006217|MR|Test|E|Lead 6217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006218|106218|989898|1|9999006218|MR|Test|E|Lead 6218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006219|106219|989898|1|9999006219|MR|Test|E|Lead 6219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006220|106220|989898|1|9999006220|MR|Test|E|Lead 6220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006221|106221|989898|1|9999006221|MR|Test|E|Lead 6221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006222|106222|989898|1|9999006222|MR|Test|E|Lead 6222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006223|106223|989898|1|9999006223|MR|Test|E|Lead 6223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006224|106224|989898|1|9999006224|MR|Test|E|Lead 6224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006225|106225|989898|1|9999006225|MR|Test|E|Lead 6225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006226|106226|989898|1|9999006226|MR|Test|E|Lead 6226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006227|106227|989898|1|9999006227|MR|Test|E|Lead 6227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006228|106228|989898|1|9999006228|MR|Test|E|Lead 6228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006229|106229|989898|1|9999006229|MR|Test|E|Lead 6229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006230|106230|989898|1|9999006230|MR|Test|E|Lead 6230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006231|106231|989898|1|9999006231|MR|Test|E|Lead 6231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006232|106232|989898|1|9999006232|MR|Test|E|Lead 6232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006233|106233|989898|1|9999006233|MR|Test|E|Lead 6233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006234|106234|989898|1|9999006234|MR|Test|E|Lead 6234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006235|106235|989898|1|9999006235|MR|Test|E|Lead 6235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006236|106236|989898|1|9999006236|MR|Test|E|Lead 6236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006237|106237|989898|1|9999006237|MR|Test|E|Lead 6237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006238|106238|989898|1|9999006238|MR|Test|E|Lead 6238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006239|106239|989898|1|9999006239|MR|Test|E|Lead 6239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006240|106240|989898|1|9999006240|MR|Test|E|Lead 6240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006241|106241|989898|1|9999006241|MR|Test|E|Lead 6241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006242|106242|989898|1|9999006242|MR|Test|E|Lead 6242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006243|106243|989898|1|9999006243|MR|Test|E|Lead 6243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006244|106244|989898|1|9999006244|MR|Test|E|Lead 6244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006245|106245|989898|1|9999006245|MR|Test|E|Lead 6245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006246|106246|989898|1|9999006246|MR|Test|E|Lead 6246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006247|106247|989898|1|9999006247|MR|Test|E|Lead 6247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006248|106248|989898|1|9999006248|MR|Test|E|Lead 6248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006249|106249|989898|1|9999006249|MR|Test|E|Lead 6249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006250|106250|989898|1|9999006250|MR|Test|E|Lead 6250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006251|106251|989898|1|9999006251|MR|Test|E|Lead 6251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006252|106252|989898|1|9999006252|MR|Test|E|Lead 6252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006253|106253|989898|1|9999006253|MR|Test|E|Lead 6253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006254|106254|989898|1|9999006254|MR|Test|E|Lead 6254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006255|106255|989898|1|9999006255|MR|Test|E|Lead 6255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006256|106256|989898|1|9999006256|MR|Test|E|Lead 6256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006257|106257|989898|1|9999006257|MR|Test|E|Lead 6257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006258|106258|989898|1|9999006258|MR|Test|E|Lead 6258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006259|106259|989898|1|9999006259|MR|Test|E|Lead 6259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006260|106260|989898|1|9999006260|MR|Test|E|Lead 6260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006261|106261|989898|1|9999006261|MR|Test|E|Lead 6261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006262|106262|989898|1|9999006262|MR|Test|E|Lead 6262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006263|106263|989898|1|9999006263|MR|Test|E|Lead 6263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006264|106264|989898|1|9999006264|MR|Test|E|Lead 6264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006265|106265|989898|1|9999006265|MR|Test|E|Lead 6265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006266|106266|989898|1|9999006266|MR|Test|E|Lead 6266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006267|106267|989898|1|9999006267|MR|Test|E|Lead 6267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006268|106268|989898|1|9999006268|MR|Test|E|Lead 6268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006269|106269|989898|1|9999006269|MR|Test|E|Lead 6269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006270|106270|989898|1|9999006270|MR|Test|E|Lead 6270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006271|106271|989898|1|9999006271|MR|Test|E|Lead 6271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006272|106272|989898|1|9999006272|MR|Test|E|Lead 6272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006273|106273|989898|1|9999006273|MR|Test|E|Lead 6273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006274|106274|989898|1|9999006274|MR|Test|E|Lead 6274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006275|106275|989898|1|9999006275|MR|Test|E|Lead 6275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006276|106276|989898|1|9999006276|MR|Test|E|Lead 6276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006277|106277|989898|1|9999006277|MR|Test|E|Lead 6277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006278|106278|989898|1|9999006278|MR|Test|E|Lead 6278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006279|106279|989898|1|9999006279|MR|Test|E|Lead 6279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006280|106280|989898|1|9999006280|MR|Test|E|Lead 6280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006281|106281|989898|1|9999006281|MR|Test|E|Lead 6281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006282|106282|989898|1|9999006282|MR|Test|E|Lead 6282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006283|106283|989898|1|9999006283|MR|Test|E|Lead 6283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006284|106284|989898|1|9999006284|MR|Test|E|Lead 6284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006285|106285|989898|1|9999006285|MR|Test|E|Lead 6285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006286|106286|989898|1|9999006286|MR|Test|E|Lead 6286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006287|106287|989898|1|9999006287|MR|Test|E|Lead 6287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006288|106288|989898|1|9999006288|MR|Test|E|Lead 6288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006289|106289|989898|1|9999006289|MR|Test|E|Lead 6289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006290|106290|989898|1|9999006290|MR|Test|E|Lead 6290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006291|106291|989898|1|9999006291|MR|Test|E|Lead 6291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006292|106292|989898|1|9999006292|MR|Test|E|Lead 6292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006293|106293|989898|1|9999006293|MR|Test|E|Lead 6293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006294|106294|989898|1|9999006294|MR|Test|E|Lead 6294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006295|106295|989898|1|9999006295|MR|Test|E|Lead 6295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006296|106296|989898|1|9999006296|MR|Test|E|Lead 6296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006297|106297|989898|1|9999006297|MR|Test|E|Lead 6297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006298|106298|989898|1|9999006298|MR|Test|E|Lead 6298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006299|106299|989898|1|9999006299|MR|Test|E|Lead 6299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006300|106300|989898|1|9999006300|MR|Test|E|Lead 6300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006301|106301|989898|1|9999006301|MR|Test|E|Lead 6301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006302|106302|989898|1|9999006302|MR|Test|E|Lead 6302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006303|106303|989898|1|9999006303|MR|Test|E|Lead 6303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006304|106304|989898|1|9999006304|MR|Test|E|Lead 6304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006305|106305|989898|1|9999006305|MR|Test|E|Lead 6305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006306|106306|989898|1|9999006306|MR|Test|E|Lead 6306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006307|106307|989898|1|9999006307|MR|Test|E|Lead 6307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006308|106308|989898|1|9999006308|MR|Test|E|Lead 6308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006309|106309|989898|1|9999006309|MR|Test|E|Lead 6309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006310|106310|989898|1|9999006310|MR|Test|E|Lead 6310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006311|106311|989898|1|9999006311|MR|Test|E|Lead 6311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006312|106312|989898|1|9999006312|MR|Test|E|Lead 6312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006313|106313|989898|1|9999006313|MR|Test|E|Lead 6313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006314|106314|989898|1|9999006314|MR|Test|E|Lead 6314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006315|106315|989898|1|9999006315|MR|Test|E|Lead 6315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006316|106316|989898|1|9999006316|MR|Test|E|Lead 6316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006317|106317|989898|1|9999006317|MR|Test|E|Lead 6317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006318|106318|989898|1|9999006318|MR|Test|E|Lead 6318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006319|106319|989898|1|9999006319|MR|Test|E|Lead 6319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006320|106320|989898|1|9999006320|MR|Test|E|Lead 6320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006321|106321|989898|1|9999006321|MR|Test|E|Lead 6321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006322|106322|989898|1|9999006322|MR|Test|E|Lead 6322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006323|106323|989898|1|9999006323|MR|Test|E|Lead 6323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006324|106324|989898|1|9999006324|MR|Test|E|Lead 6324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006325|106325|989898|1|9999006325|MR|Test|E|Lead 6325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006326|106326|989898|1|9999006326|MR|Test|E|Lead 6326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006327|106327|989898|1|9999006327|MR|Test|E|Lead 6327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006328|106328|989898|1|9999006328|MR|Test|E|Lead 6328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006329|106329|989898|1|9999006329|MR|Test|E|Lead 6329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006330|106330|989898|1|9999006330|MR|Test|E|Lead 6330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006331|106331|989898|1|9999006331|MR|Test|E|Lead 6331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006332|106332|989898|1|9999006332|MR|Test|E|Lead 6332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006333|106333|989898|1|9999006333|MR|Test|E|Lead 6333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006334|106334|989898|1|9999006334|MR|Test|E|Lead 6334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006335|106335|989898|1|9999006335|MR|Test|E|Lead 6335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006336|106336|989898|1|9999006336|MR|Test|E|Lead 6336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006337|106337|989898|1|9999006337|MR|Test|E|Lead 6337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006338|106338|989898|1|9999006338|MR|Test|E|Lead 6338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006339|106339|989898|1|9999006339|MR|Test|E|Lead 6339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006340|106340|989898|1|9999006340|MR|Test|E|Lead 6340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006341|106341|989898|1|9999006341|MR|Test|E|Lead 6341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006342|106342|989898|1|9999006342|MR|Test|E|Lead 6342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006343|106343|989898|1|9999006343|MR|Test|E|Lead 6343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006344|106344|989898|1|9999006344|MR|Test|E|Lead 6344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006345|106345|989898|1|9999006345|MR|Test|E|Lead 6345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006346|106346|989898|1|9999006346|MR|Test|E|Lead 6346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006347|106347|989898|1|9999006347|MR|Test|E|Lead 6347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006348|106348|989898|1|9999006348|MR|Test|E|Lead 6348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006349|106349|989898|1|9999006349|MR|Test|E|Lead 6349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006350|106350|989898|1|9999006350|MR|Test|E|Lead 6350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006351|106351|989898|1|9999006351|MR|Test|E|Lead 6351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006352|106352|989898|1|9999006352|MR|Test|E|Lead 6352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006353|106353|989898|1|9999006353|MR|Test|E|Lead 6353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006354|106354|989898|1|9999006354|MR|Test|E|Lead 6354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006355|106355|989898|1|9999006355|MR|Test|E|Lead 6355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006356|106356|989898|1|9999006356|MR|Test|E|Lead 6356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006357|106357|989898|1|9999006357|MR|Test|E|Lead 6357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006358|106358|989898|1|9999006358|MR|Test|E|Lead 6358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006359|106359|989898|1|9999006359|MR|Test|E|Lead 6359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006360|106360|989898|1|9999006360|MR|Test|E|Lead 6360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006361|106361|989898|1|9999006361|MR|Test|E|Lead 6361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006362|106362|989898|1|9999006362|MR|Test|E|Lead 6362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006363|106363|989898|1|9999006363|MR|Test|E|Lead 6363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006364|106364|989898|1|9999006364|MR|Test|E|Lead 6364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006365|106365|989898|1|9999006365|MR|Test|E|Lead 6365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006366|106366|989898|1|9999006366|MR|Test|E|Lead 6366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006367|106367|989898|1|9999006367|MR|Test|E|Lead 6367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006368|106368|989898|1|9999006368|MR|Test|E|Lead 6368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006369|106369|989898|1|9999006369|MR|Test|E|Lead 6369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006370|106370|989898|1|9999006370|MR|Test|E|Lead 6370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006371|106371|989898|1|9999006371|MR|Test|E|Lead 6371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006372|106372|989898|1|9999006372|MR|Test|E|Lead 6372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006373|106373|989898|1|9999006373|MR|Test|E|Lead 6373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006374|106374|989898|1|9999006374|MR|Test|E|Lead 6374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006375|106375|989898|1|9999006375|MR|Test|E|Lead 6375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006376|106376|989898|1|9999006376|MR|Test|E|Lead 6376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006377|106377|989898|1|9999006377|MR|Test|E|Lead 6377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006378|106378|989898|1|9999006378|MR|Test|E|Lead 6378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006379|106379|989898|1|9999006379|MR|Test|E|Lead 6379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006380|106380|989898|1|9999006380|MR|Test|E|Lead 6380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006381|106381|989898|1|9999006381|MR|Test|E|Lead 6381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006382|106382|989898|1|9999006382|MR|Test|E|Lead 6382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006383|106383|989898|1|9999006383|MR|Test|E|Lead 6383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006384|106384|989898|1|9999006384|MR|Test|E|Lead 6384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006385|106385|989898|1|9999006385|MR|Test|E|Lead 6385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006386|106386|989898|1|9999006386|MR|Test|E|Lead 6386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006387|106387|989898|1|9999006387|MR|Test|E|Lead 6387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006388|106388|989898|1|9999006388|MR|Test|E|Lead 6388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006389|106389|989898|1|9999006389|MR|Test|E|Lead 6389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006390|106390|989898|1|9999006390|MR|Test|E|Lead 6390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006391|106391|989898|1|9999006391|MR|Test|E|Lead 6391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006392|106392|989898|1|9999006392|MR|Test|E|Lead 6392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006393|106393|989898|1|9999006393|MR|Test|E|Lead 6393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006394|106394|989898|1|9999006394|MR|Test|E|Lead 6394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006395|106395|989898|1|9999006395|MR|Test|E|Lead 6395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006396|106396|989898|1|9999006396|MR|Test|E|Lead 6396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006397|106397|989898|1|9999006397|MR|Test|E|Lead 6397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006398|106398|989898|1|9999006398|MR|Test|E|Lead 6398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006399|106399|989898|1|9999006399|MR|Test|E|Lead 6399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006400|106400|989898|1|9999006400|MR|Test|E|Lead 6400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006401|106401|989898|1|9999006401|MR|Test|E|Lead 6401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006402|106402|989898|1|9999006402|MR|Test|E|Lead 6402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006403|106403|989898|1|9999006403|MR|Test|E|Lead 6403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006404|106404|989898|1|9999006404|MR|Test|E|Lead 6404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006405|106405|989898|1|9999006405|MR|Test|E|Lead 6405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006406|106406|989898|1|9999006406|MR|Test|E|Lead 6406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006407|106407|989898|1|9999006407|MR|Test|E|Lead 6407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006408|106408|989898|1|9999006408|MR|Test|E|Lead 6408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006409|106409|989898|1|9999006409|MR|Test|E|Lead 6409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006410|106410|989898|1|9999006410|MR|Test|E|Lead 6410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006411|106411|989898|1|9999006411|MR|Test|E|Lead 6411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006412|106412|989898|1|9999006412|MR|Test|E|Lead 6412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006413|106413|989898|1|9999006413|MR|Test|E|Lead 6413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006414|106414|989898|1|9999006414|MR|Test|E|Lead 6414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006415|106415|989898|1|9999006415|MR|Test|E|Lead 6415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006416|106416|989898|1|9999006416|MR|Test|E|Lead 6416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006417|106417|989898|1|9999006417|MR|Test|E|Lead 6417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006418|106418|989898|1|9999006418|MR|Test|E|Lead 6418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006419|106419|989898|1|9999006419|MR|Test|E|Lead 6419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006420|106420|989898|1|9999006420|MR|Test|E|Lead 6420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006421|106421|989898|1|9999006421|MR|Test|E|Lead 6421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006422|106422|989898|1|9999006422|MR|Test|E|Lead 6422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006423|106423|989898|1|9999006423|MR|Test|E|Lead 6423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006424|106424|989898|1|9999006424|MR|Test|E|Lead 6424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006425|106425|989898|1|9999006425|MR|Test|E|Lead 6425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006426|106426|989898|1|9999006426|MR|Test|E|Lead 6426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006427|106427|989898|1|9999006427|MR|Test|E|Lead 6427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006428|106428|989898|1|9999006428|MR|Test|E|Lead 6428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006429|106429|989898|1|9999006429|MR|Test|E|Lead 6429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006430|106430|989898|1|9999006430|MR|Test|E|Lead 6430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006431|106431|989898|1|9999006431|MR|Test|E|Lead 6431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006432|106432|989898|1|9999006432|MR|Test|E|Lead 6432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006433|106433|989898|1|9999006433|MR|Test|E|Lead 6433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006434|106434|989898|1|9999006434|MR|Test|E|Lead 6434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006435|106435|989898|1|9999006435|MR|Test|E|Lead 6435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006436|106436|989898|1|9999006436|MR|Test|E|Lead 6436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006437|106437|989898|1|9999006437|MR|Test|E|Lead 6437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006438|106438|989898|1|9999006438|MR|Test|E|Lead 6438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006439|106439|989898|1|9999006439|MR|Test|E|Lead 6439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006440|106440|989898|1|9999006440|MR|Test|E|Lead 6440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006441|106441|989898|1|9999006441|MR|Test|E|Lead 6441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006442|106442|989898|1|9999006442|MR|Test|E|Lead 6442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006443|106443|989898|1|9999006443|MR|Test|E|Lead 6443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006444|106444|989898|1|9999006444|MR|Test|E|Lead 6444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006445|106445|989898|1|9999006445|MR|Test|E|Lead 6445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006446|106446|989898|1|9999006446|MR|Test|E|Lead 6446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006447|106447|989898|1|9999006447|MR|Test|E|Lead 6447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006448|106448|989898|1|9999006448|MR|Test|E|Lead 6448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006449|106449|989898|1|9999006449|MR|Test|E|Lead 6449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006450|106450|989898|1|9999006450|MR|Test|E|Lead 6450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006451|106451|989898|1|9999006451|MR|Test|E|Lead 6451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006452|106452|989898|1|9999006452|MR|Test|E|Lead 6452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006453|106453|989898|1|9999006453|MR|Test|E|Lead 6453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006454|106454|989898|1|9999006454|MR|Test|E|Lead 6454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006455|106455|989898|1|9999006455|MR|Test|E|Lead 6455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006456|106456|989898|1|9999006456|MR|Test|E|Lead 6456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006457|106457|989898|1|9999006457|MR|Test|E|Lead 6457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006458|106458|989898|1|9999006458|MR|Test|E|Lead 6458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006459|106459|989898|1|9999006459|MR|Test|E|Lead 6459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006460|106460|989898|1|9999006460|MR|Test|E|Lead 6460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006461|106461|989898|1|9999006461|MR|Test|E|Lead 6461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006462|106462|989898|1|9999006462|MR|Test|E|Lead 6462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006463|106463|989898|1|9999006463|MR|Test|E|Lead 6463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006464|106464|989898|1|9999006464|MR|Test|E|Lead 6464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006465|106465|989898|1|9999006465|MR|Test|E|Lead 6465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006466|106466|989898|1|9999006466|MR|Test|E|Lead 6466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006467|106467|989898|1|9999006467|MR|Test|E|Lead 6467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006468|106468|989898|1|9999006468|MR|Test|E|Lead 6468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006469|106469|989898|1|9999006469|MR|Test|E|Lead 6469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006470|106470|989898|1|9999006470|MR|Test|E|Lead 6470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006471|106471|989898|1|9999006471|MR|Test|E|Lead 6471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006472|106472|989898|1|9999006472|MR|Test|E|Lead 6472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006473|106473|989898|1|9999006473|MR|Test|E|Lead 6473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006474|106474|989898|1|9999006474|MR|Test|E|Lead 6474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006475|106475|989898|1|9999006475|MR|Test|E|Lead 6475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006476|106476|989898|1|9999006476|MR|Test|E|Lead 6476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006477|106477|989898|1|9999006477|MR|Test|E|Lead 6477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006478|106478|989898|1|9999006478|MR|Test|E|Lead 6478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006479|106479|989898|1|9999006479|MR|Test|E|Lead 6479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006480|106480|989898|1|9999006480|MR|Test|E|Lead 6480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006481|106481|989898|1|9999006481|MR|Test|E|Lead 6481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006482|106482|989898|1|9999006482|MR|Test|E|Lead 6482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006483|106483|989898|1|9999006483|MR|Test|E|Lead 6483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006484|106484|989898|1|9999006484|MR|Test|E|Lead 6484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006485|106485|989898|1|9999006485|MR|Test|E|Lead 6485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006486|106486|989898|1|9999006486|MR|Test|E|Lead 6486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006487|106487|989898|1|9999006487|MR|Test|E|Lead 6487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006488|106488|989898|1|9999006488|MR|Test|E|Lead 6488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006489|106489|989898|1|9999006489|MR|Test|E|Lead 6489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006490|106490|989898|1|9999006490|MR|Test|E|Lead 6490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006491|106491|989898|1|9999006491|MR|Test|E|Lead 6491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006492|106492|989898|1|9999006492|MR|Test|E|Lead 6492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006493|106493|989898|1|9999006493|MR|Test|E|Lead 6493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006494|106494|989898|1|9999006494|MR|Test|E|Lead 6494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006495|106495|989898|1|9999006495|MR|Test|E|Lead 6495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006496|106496|989898|1|9999006496|MR|Test|E|Lead 6496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006497|106497|989898|1|9999006497|MR|Test|E|Lead 6497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006498|106498|989898|1|9999006498|MR|Test|E|Lead 6498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006499|106499|989898|1|9999006499|MR|Test|E|Lead 6499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006500|106500|989898|1|9999006500|MR|Test|E|Lead 6500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006501|106501|989898|1|9999006501|MR|Test|E|Lead 6501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006502|106502|989898|1|9999006502|MR|Test|E|Lead 6502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006503|106503|989898|1|9999006503|MR|Test|E|Lead 6503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006504|106504|989898|1|9999006504|MR|Test|E|Lead 6504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006505|106505|989898|1|9999006505|MR|Test|E|Lead 6505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006506|106506|989898|1|9999006506|MR|Test|E|Lead 6506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006507|106507|989898|1|9999006507|MR|Test|E|Lead 6507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006508|106508|989898|1|9999006508|MR|Test|E|Lead 6508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006509|106509|989898|1|9999006509|MR|Test|E|Lead 6509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006510|106510|989898|1|9999006510|MR|Test|E|Lead 6510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006511|106511|989898|1|9999006511|MR|Test|E|Lead 6511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006512|106512|989898|1|9999006512|MR|Test|E|Lead 6512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006513|106513|989898|1|9999006513|MR|Test|E|Lead 6513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006514|106514|989898|1|9999006514|MR|Test|E|Lead 6514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006515|106515|989898|1|9999006515|MR|Test|E|Lead 6515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006516|106516|989898|1|9999006516|MR|Test|E|Lead 6516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006517|106517|989898|1|9999006517|MR|Test|E|Lead 6517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006518|106518|989898|1|9999006518|MR|Test|E|Lead 6518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006519|106519|989898|1|9999006519|MR|Test|E|Lead 6519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006520|106520|989898|1|9999006520|MR|Test|E|Lead 6520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006521|106521|989898|1|9999006521|MR|Test|E|Lead 6521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006522|106522|989898|1|9999006522|MR|Test|E|Lead 6522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006523|106523|989898|1|9999006523|MR|Test|E|Lead 6523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006524|106524|989898|1|9999006524|MR|Test|E|Lead 6524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006525|106525|989898|1|9999006525|MR|Test|E|Lead 6525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006526|106526|989898|1|9999006526|MR|Test|E|Lead 6526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006527|106527|989898|1|9999006527|MR|Test|E|Lead 6527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006528|106528|989898|1|9999006528|MR|Test|E|Lead 6528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006529|106529|989898|1|9999006529|MR|Test|E|Lead 6529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006530|106530|989898|1|9999006530|MR|Test|E|Lead 6530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006531|106531|989898|1|9999006531|MR|Test|E|Lead 6531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006532|106532|989898|1|9999006532|MR|Test|E|Lead 6532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006533|106533|989898|1|9999006533|MR|Test|E|Lead 6533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006534|106534|989898|1|9999006534|MR|Test|E|Lead 6534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006535|106535|989898|1|9999006535|MR|Test|E|Lead 6535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006536|106536|989898|1|9999006536|MR|Test|E|Lead 6536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006537|106537|989898|1|9999006537|MR|Test|E|Lead 6537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006538|106538|989898|1|9999006538|MR|Test|E|Lead 6538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006539|106539|989898|1|9999006539|MR|Test|E|Lead 6539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006540|106540|989898|1|9999006540|MR|Test|E|Lead 6540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006541|106541|989898|1|9999006541|MR|Test|E|Lead 6541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006542|106542|989898|1|9999006542|MR|Test|E|Lead 6542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006543|106543|989898|1|9999006543|MR|Test|E|Lead 6543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006544|106544|989898|1|9999006544|MR|Test|E|Lead 6544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006545|106545|989898|1|9999006545|MR|Test|E|Lead 6545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006546|106546|989898|1|9999006546|MR|Test|E|Lead 6546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006547|106547|989898|1|9999006547|MR|Test|E|Lead 6547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006548|106548|989898|1|9999006548|MR|Test|E|Lead 6548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006549|106549|989898|1|9999006549|MR|Test|E|Lead 6549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006550|106550|989898|1|9999006550|MR|Test|E|Lead 6550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006551|106551|989898|1|9999006551|MR|Test|E|Lead 6551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006552|106552|989898|1|9999006552|MR|Test|E|Lead 6552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006553|106553|989898|1|9999006553|MR|Test|E|Lead 6553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006554|106554|989898|1|9999006554|MR|Test|E|Lead 6554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006555|106555|989898|1|9999006555|MR|Test|E|Lead 6555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006556|106556|989898|1|9999006556|MR|Test|E|Lead 6556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006557|106557|989898|1|9999006557|MR|Test|E|Lead 6557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006558|106558|989898|1|9999006558|MR|Test|E|Lead 6558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006559|106559|989898|1|9999006559|MR|Test|E|Lead 6559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006560|106560|989898|1|9999006560|MR|Test|E|Lead 6560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006561|106561|989898|1|9999006561|MR|Test|E|Lead 6561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006562|106562|989898|1|9999006562|MR|Test|E|Lead 6562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006563|106563|989898|1|9999006563|MR|Test|E|Lead 6563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006564|106564|989898|1|9999006564|MR|Test|E|Lead 6564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006565|106565|989898|1|9999006565|MR|Test|E|Lead 6565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006566|106566|989898|1|9999006566|MR|Test|E|Lead 6566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006567|106567|989898|1|9999006567|MR|Test|E|Lead 6567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006568|106568|989898|1|9999006568|MR|Test|E|Lead 6568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006569|106569|989898|1|9999006569|MR|Test|E|Lead 6569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006570|106570|989898|1|9999006570|MR|Test|E|Lead 6570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006571|106571|989898|1|9999006571|MR|Test|E|Lead 6571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006572|106572|989898|1|9999006572|MR|Test|E|Lead 6572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006573|106573|989898|1|9999006573|MR|Test|E|Lead 6573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006574|106574|989898|1|9999006574|MR|Test|E|Lead 6574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006575|106575|989898|1|9999006575|MR|Test|E|Lead 6575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006576|106576|989898|1|9999006576|MR|Test|E|Lead 6576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006577|106577|989898|1|9999006577|MR|Test|E|Lead 6577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006578|106578|989898|1|9999006578|MR|Test|E|Lead 6578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006579|106579|989898|1|9999006579|MR|Test|E|Lead 6579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006580|106580|989898|1|9999006580|MR|Test|E|Lead 6580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006581|106581|989898|1|9999006581|MR|Test|E|Lead 6581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006582|106582|989898|1|9999006582|MR|Test|E|Lead 6582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006583|106583|989898|1|9999006583|MR|Test|E|Lead 6583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006584|106584|989898|1|9999006584|MR|Test|E|Lead 6584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006585|106585|989898|1|9999006585|MR|Test|E|Lead 6585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006586|106586|989898|1|9999006586|MR|Test|E|Lead 6586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006587|106587|989898|1|9999006587|MR|Test|E|Lead 6587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006588|106588|989898|1|9999006588|MR|Test|E|Lead 6588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006589|106589|989898|1|9999006589|MR|Test|E|Lead 6589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006590|106590|989898|1|9999006590|MR|Test|E|Lead 6590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006591|106591|989898|1|9999006591|MR|Test|E|Lead 6591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006592|106592|989898|1|9999006592|MR|Test|E|Lead 6592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006593|106593|989898|1|9999006593|MR|Test|E|Lead 6593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006594|106594|989898|1|9999006594|MR|Test|E|Lead 6594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006595|106595|989898|1|9999006595|MR|Test|E|Lead 6595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006596|106596|989898|1|9999006596|MR|Test|E|Lead 6596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006597|106597|989898|1|9999006597|MR|Test|E|Lead 6597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006598|106598|989898|1|9999006598|MR|Test|E|Lead 6598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006599|106599|989898|1|9999006599|MR|Test|E|Lead 6599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006600|106600|989898|1|9999006600|MR|Test|E|Lead 6600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006601|106601|989898|1|9999006601|MR|Test|E|Lead 6601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006602|106602|989898|1|9999006602|MR|Test|E|Lead 6602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006603|106603|989898|1|9999006603|MR|Test|E|Lead 6603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006604|106604|989898|1|9999006604|MR|Test|E|Lead 6604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006605|106605|989898|1|9999006605|MR|Test|E|Lead 6605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006606|106606|989898|1|9999006606|MR|Test|E|Lead 6606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006607|106607|989898|1|9999006607|MR|Test|E|Lead 6607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006608|106608|989898|1|9999006608|MR|Test|E|Lead 6608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006609|106609|989898|1|9999006609|MR|Test|E|Lead 6609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006610|106610|989898|1|9999006610|MR|Test|E|Lead 6610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006611|106611|989898|1|9999006611|MR|Test|E|Lead 6611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006612|106612|989898|1|9999006612|MR|Test|E|Lead 6612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006613|106613|989898|1|9999006613|MR|Test|E|Lead 6613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006614|106614|989898|1|9999006614|MR|Test|E|Lead 6614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006615|106615|989898|1|9999006615|MR|Test|E|Lead 6615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006616|106616|989898|1|9999006616|MR|Test|E|Lead 6616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006617|106617|989898|1|9999006617|MR|Test|E|Lead 6617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006618|106618|989898|1|9999006618|MR|Test|E|Lead 6618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006619|106619|989898|1|9999006619|MR|Test|E|Lead 6619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006620|106620|989898|1|9999006620|MR|Test|E|Lead 6620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006621|106621|989898|1|9999006621|MR|Test|E|Lead 6621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006622|106622|989898|1|9999006622|MR|Test|E|Lead 6622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006623|106623|989898|1|9999006623|MR|Test|E|Lead 6623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006624|106624|989898|1|9999006624|MR|Test|E|Lead 6624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006625|106625|989898|1|9999006625|MR|Test|E|Lead 6625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006626|106626|989898|1|9999006626|MR|Test|E|Lead 6626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006627|106627|989898|1|9999006627|MR|Test|E|Lead 6627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006628|106628|989898|1|9999006628|MR|Test|E|Lead 6628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006629|106629|989898|1|9999006629|MR|Test|E|Lead 6629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006630|106630|989898|1|9999006630|MR|Test|E|Lead 6630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006631|106631|989898|1|9999006631|MR|Test|E|Lead 6631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006632|106632|989898|1|9999006632|MR|Test|E|Lead 6632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006633|106633|989898|1|9999006633|MR|Test|E|Lead 6633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006634|106634|989898|1|9999006634|MR|Test|E|Lead 6634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006635|106635|989898|1|9999006635|MR|Test|E|Lead 6635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006636|106636|989898|1|9999006636|MR|Test|E|Lead 6636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006637|106637|989898|1|9999006637|MR|Test|E|Lead 6637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006638|106638|989898|1|9999006638|MR|Test|E|Lead 6638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006639|106639|989898|1|9999006639|MR|Test|E|Lead 6639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006640|106640|989898|1|9999006640|MR|Test|E|Lead 6640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006641|106641|989898|1|9999006641|MR|Test|E|Lead 6641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006642|106642|989898|1|9999006642|MR|Test|E|Lead 6642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006643|106643|989898|1|9999006643|MR|Test|E|Lead 6643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006644|106644|989898|1|9999006644|MR|Test|E|Lead 6644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006645|106645|989898|1|9999006645|MR|Test|E|Lead 6645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006646|106646|989898|1|9999006646|MR|Test|E|Lead 6646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006647|106647|989898|1|9999006647|MR|Test|E|Lead 6647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006648|106648|989898|1|9999006648|MR|Test|E|Lead 6648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006649|106649|989898|1|9999006649|MR|Test|E|Lead 6649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006650|106650|989898|1|9999006650|MR|Test|E|Lead 6650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006651|106651|989898|1|9999006651|MR|Test|E|Lead 6651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006652|106652|989898|1|9999006652|MR|Test|E|Lead 6652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006653|106653|989898|1|9999006653|MR|Test|E|Lead 6653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006654|106654|989898|1|9999006654|MR|Test|E|Lead 6654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006655|106655|989898|1|9999006655|MR|Test|E|Lead 6655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006656|106656|989898|1|9999006656|MR|Test|E|Lead 6656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006657|106657|989898|1|9999006657|MR|Test|E|Lead 6657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006658|106658|989898|1|9999006658|MR|Test|E|Lead 6658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006659|106659|989898|1|9999006659|MR|Test|E|Lead 6659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006660|106660|989898|1|9999006660|MR|Test|E|Lead 6660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006661|106661|989898|1|9999006661|MR|Test|E|Lead 6661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006662|106662|989898|1|9999006662|MR|Test|E|Lead 6662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006663|106663|989898|1|9999006663|MR|Test|E|Lead 6663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006664|106664|989898|1|9999006664|MR|Test|E|Lead 6664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006665|106665|989898|1|9999006665|MR|Test|E|Lead 6665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006666|106666|989898|1|9999006666|MR|Test|E|Lead 6666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006667|106667|989898|1|9999006667|MR|Test|E|Lead 6667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006668|106668|989898|1|9999006668|MR|Test|E|Lead 6668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006669|106669|989898|1|9999006669|MR|Test|E|Lead 6669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006670|106670|989898|1|9999006670|MR|Test|E|Lead 6670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006671|106671|989898|1|9999006671|MR|Test|E|Lead 6671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006672|106672|989898|1|9999006672|MR|Test|E|Lead 6672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006673|106673|989898|1|9999006673|MR|Test|E|Lead 6673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006674|106674|989898|1|9999006674|MR|Test|E|Lead 6674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006675|106675|989898|1|9999006675|MR|Test|E|Lead 6675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006676|106676|989898|1|9999006676|MR|Test|E|Lead 6676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006677|106677|989898|1|9999006677|MR|Test|E|Lead 6677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006678|106678|989898|1|9999006678|MR|Test|E|Lead 6678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006679|106679|989898|1|9999006679|MR|Test|E|Lead 6679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006680|106680|989898|1|9999006680|MR|Test|E|Lead 6680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006681|106681|989898|1|9999006681|MR|Test|E|Lead 6681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006682|106682|989898|1|9999006682|MR|Test|E|Lead 6682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006683|106683|989898|1|9999006683|MR|Test|E|Lead 6683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006684|106684|989898|1|9999006684|MR|Test|E|Lead 6684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006685|106685|989898|1|9999006685|MR|Test|E|Lead 6685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006686|106686|989898|1|9999006686|MR|Test|E|Lead 6686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006687|106687|989898|1|9999006687|MR|Test|E|Lead 6687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006688|106688|989898|1|9999006688|MR|Test|E|Lead 6688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006689|106689|989898|1|9999006689|MR|Test|E|Lead 6689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006690|106690|989898|1|9999006690|MR|Test|E|Lead 6690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006691|106691|989898|1|9999006691|MR|Test|E|Lead 6691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006692|106692|989898|1|9999006692|MR|Test|E|Lead 6692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006693|106693|989898|1|9999006693|MR|Test|E|Lead 6693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006694|106694|989898|1|9999006694|MR|Test|E|Lead 6694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006695|106695|989898|1|9999006695|MR|Test|E|Lead 6695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006696|106696|989898|1|9999006696|MR|Test|E|Lead 6696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006697|106697|989898|1|9999006697|MR|Test|E|Lead 6697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006698|106698|989898|1|9999006698|MR|Test|E|Lead 6698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006699|106699|989898|1|9999006699|MR|Test|E|Lead 6699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006700|106700|989898|1|9999006700|MR|Test|E|Lead 6700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006701|106701|989898|1|9999006701|MR|Test|E|Lead 6701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006702|106702|989898|1|9999006702|MR|Test|E|Lead 6702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006703|106703|989898|1|9999006703|MR|Test|E|Lead 6703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006704|106704|989898|1|9999006704|MR|Test|E|Lead 6704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006705|106705|989898|1|9999006705|MR|Test|E|Lead 6705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006706|106706|989898|1|9999006706|MR|Test|E|Lead 6706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006707|106707|989898|1|9999006707|MR|Test|E|Lead 6707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006708|106708|989898|1|9999006708|MR|Test|E|Lead 6708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006709|106709|989898|1|9999006709|MR|Test|E|Lead 6709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006710|106710|989898|1|9999006710|MR|Test|E|Lead 6710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006711|106711|989898|1|9999006711|MR|Test|E|Lead 6711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006712|106712|989898|1|9999006712|MR|Test|E|Lead 6712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006713|106713|989898|1|9999006713|MR|Test|E|Lead 6713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006714|106714|989898|1|9999006714|MR|Test|E|Lead 6714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006715|106715|989898|1|9999006715|MR|Test|E|Lead 6715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006716|106716|989898|1|9999006716|MR|Test|E|Lead 6716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006717|106717|989898|1|9999006717|MR|Test|E|Lead 6717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006718|106718|989898|1|9999006718|MR|Test|E|Lead 6718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006719|106719|989898|1|9999006719|MR|Test|E|Lead 6719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006720|106720|989898|1|9999006720|MR|Test|E|Lead 6720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006721|106721|989898|1|9999006721|MR|Test|E|Lead 6721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006722|106722|989898|1|9999006722|MR|Test|E|Lead 6722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006723|106723|989898|1|9999006723|MR|Test|E|Lead 6723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006724|106724|989898|1|9999006724|MR|Test|E|Lead 6724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006725|106725|989898|1|9999006725|MR|Test|E|Lead 6725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006726|106726|989898|1|9999006726|MR|Test|E|Lead 6726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006727|106727|989898|1|9999006727|MR|Test|E|Lead 6727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006728|106728|989898|1|9999006728|MR|Test|E|Lead 6728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006729|106729|989898|1|9999006729|MR|Test|E|Lead 6729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006730|106730|989898|1|9999006730|MR|Test|E|Lead 6730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006731|106731|989898|1|9999006731|MR|Test|E|Lead 6731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006732|106732|989898|1|9999006732|MR|Test|E|Lead 6732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006733|106733|989898|1|9999006733|MR|Test|E|Lead 6733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006734|106734|989898|1|9999006734|MR|Test|E|Lead 6734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006735|106735|989898|1|9999006735|MR|Test|E|Lead 6735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006736|106736|989898|1|9999006736|MR|Test|E|Lead 6736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006737|106737|989898|1|9999006737|MR|Test|E|Lead 6737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006738|106738|989898|1|9999006738|MR|Test|E|Lead 6738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006739|106739|989898|1|9999006739|MR|Test|E|Lead 6739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006740|106740|989898|1|9999006740|MR|Test|E|Lead 6740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006741|106741|989898|1|9999006741|MR|Test|E|Lead 6741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006742|106742|989898|1|9999006742|MR|Test|E|Lead 6742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006743|106743|989898|1|9999006743|MR|Test|E|Lead 6743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006744|106744|989898|1|9999006744|MR|Test|E|Lead 6744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006745|106745|989898|1|9999006745|MR|Test|E|Lead 6745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006746|106746|989898|1|9999006746|MR|Test|E|Lead 6746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006747|106747|989898|1|9999006747|MR|Test|E|Lead 6747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006748|106748|989898|1|9999006748|MR|Test|E|Lead 6748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006749|106749|989898|1|9999006749|MR|Test|E|Lead 6749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006750|106750|989898|1|9999006750|MR|Test|E|Lead 6750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006751|106751|989898|1|9999006751|MR|Test|E|Lead 6751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006752|106752|989898|1|9999006752|MR|Test|E|Lead 6752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006753|106753|989898|1|9999006753|MR|Test|E|Lead 6753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006754|106754|989898|1|9999006754|MR|Test|E|Lead 6754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006755|106755|989898|1|9999006755|MR|Test|E|Lead 6755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006756|106756|989898|1|9999006756|MR|Test|E|Lead 6756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006757|106757|989898|1|9999006757|MR|Test|E|Lead 6757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006758|106758|989898|1|9999006758|MR|Test|E|Lead 6758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006759|106759|989898|1|9999006759|MR|Test|E|Lead 6759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006760|106760|989898|1|9999006760|MR|Test|E|Lead 6760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006761|106761|989898|1|9999006761|MR|Test|E|Lead 6761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006762|106762|989898|1|9999006762|MR|Test|E|Lead 6762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006763|106763|989898|1|9999006763|MR|Test|E|Lead 6763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006764|106764|989898|1|9999006764|MR|Test|E|Lead 6764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006765|106765|989898|1|9999006765|MR|Test|E|Lead 6765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006766|106766|989898|1|9999006766|MR|Test|E|Lead 6766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006767|106767|989898|1|9999006767|MR|Test|E|Lead 6767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006768|106768|989898|1|9999006768|MR|Test|E|Lead 6768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006769|106769|989898|1|9999006769|MR|Test|E|Lead 6769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006770|106770|989898|1|9999006770|MR|Test|E|Lead 6770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006771|106771|989898|1|9999006771|MR|Test|E|Lead 6771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006772|106772|989898|1|9999006772|MR|Test|E|Lead 6772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006773|106773|989898|1|9999006773|MR|Test|E|Lead 6773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006774|106774|989898|1|9999006774|MR|Test|E|Lead 6774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006775|106775|989898|1|9999006775|MR|Test|E|Lead 6775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006776|106776|989898|1|9999006776|MR|Test|E|Lead 6776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006777|106777|989898|1|9999006777|MR|Test|E|Lead 6777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006778|106778|989898|1|9999006778|MR|Test|E|Lead 6778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006779|106779|989898|1|9999006779|MR|Test|E|Lead 6779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006780|106780|989898|1|9999006780|MR|Test|E|Lead 6780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006781|106781|989898|1|9999006781|MR|Test|E|Lead 6781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006782|106782|989898|1|9999006782|MR|Test|E|Lead 6782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006783|106783|989898|1|9999006783|MR|Test|E|Lead 6783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006784|106784|989898|1|9999006784|MR|Test|E|Lead 6784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006785|106785|989898|1|9999006785|MR|Test|E|Lead 6785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006786|106786|989898|1|9999006786|MR|Test|E|Lead 6786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006787|106787|989898|1|9999006787|MR|Test|E|Lead 6787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006788|106788|989898|1|9999006788|MR|Test|E|Lead 6788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006789|106789|989898|1|9999006789|MR|Test|E|Lead 6789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006790|106790|989898|1|9999006790|MR|Test|E|Lead 6790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006791|106791|989898|1|9999006791|MR|Test|E|Lead 6791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006792|106792|989898|1|9999006792|MR|Test|E|Lead 6792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006793|106793|989898|1|9999006793|MR|Test|E|Lead 6793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006794|106794|989898|1|9999006794|MR|Test|E|Lead 6794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006795|106795|989898|1|9999006795|MR|Test|E|Lead 6795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006796|106796|989898|1|9999006796|MR|Test|E|Lead 6796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006797|106797|989898|1|9999006797|MR|Test|E|Lead 6797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006798|106798|989898|1|9999006798|MR|Test|E|Lead 6798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006799|106799|989898|1|9999006799|MR|Test|E|Lead 6799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006800|106800|989898|1|9999006800|MR|Test|E|Lead 6800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006801|106801|989898|1|9999006801|MR|Test|E|Lead 6801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006802|106802|989898|1|9999006802|MR|Test|E|Lead 6802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006803|106803|989898|1|9999006803|MR|Test|E|Lead 6803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006804|106804|989898|1|9999006804|MR|Test|E|Lead 6804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006805|106805|989898|1|9999006805|MR|Test|E|Lead 6805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006806|106806|989898|1|9999006806|MR|Test|E|Lead 6806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006807|106807|989898|1|9999006807|MR|Test|E|Lead 6807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006808|106808|989898|1|9999006808|MR|Test|E|Lead 6808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006809|106809|989898|1|9999006809|MR|Test|E|Lead 6809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006810|106810|989898|1|9999006810|MR|Test|E|Lead 6810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006811|106811|989898|1|9999006811|MR|Test|E|Lead 6811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006812|106812|989898|1|9999006812|MR|Test|E|Lead 6812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006813|106813|989898|1|9999006813|MR|Test|E|Lead 6813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006814|106814|989898|1|9999006814|MR|Test|E|Lead 6814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006815|106815|989898|1|9999006815|MR|Test|E|Lead 6815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006816|106816|989898|1|9999006816|MR|Test|E|Lead 6816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006817|106817|989898|1|9999006817|MR|Test|E|Lead 6817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006818|106818|989898|1|9999006818|MR|Test|E|Lead 6818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006819|106819|989898|1|9999006819|MR|Test|E|Lead 6819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006820|106820|989898|1|9999006820|MR|Test|E|Lead 6820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006821|106821|989898|1|9999006821|MR|Test|E|Lead 6821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006822|106822|989898|1|9999006822|MR|Test|E|Lead 6822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006823|106823|989898|1|9999006823|MR|Test|E|Lead 6823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006824|106824|989898|1|9999006824|MR|Test|E|Lead 6824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006825|106825|989898|1|9999006825|MR|Test|E|Lead 6825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006826|106826|989898|1|9999006826|MR|Test|E|Lead 6826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006827|106827|989898|1|9999006827|MR|Test|E|Lead 6827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006828|106828|989898|1|9999006828|MR|Test|E|Lead 6828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006829|106829|989898|1|9999006829|MR|Test|E|Lead 6829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006830|106830|989898|1|9999006830|MR|Test|E|Lead 6830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006831|106831|989898|1|9999006831|MR|Test|E|Lead 6831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006832|106832|989898|1|9999006832|MR|Test|E|Lead 6832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006833|106833|989898|1|9999006833|MR|Test|E|Lead 6833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006834|106834|989898|1|9999006834|MR|Test|E|Lead 6834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006835|106835|989898|1|9999006835|MR|Test|E|Lead 6835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006836|106836|989898|1|9999006836|MR|Test|E|Lead 6836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006837|106837|989898|1|9999006837|MR|Test|E|Lead 6837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006838|106838|989898|1|9999006838|MR|Test|E|Lead 6838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006839|106839|989898|1|9999006839|MR|Test|E|Lead 6839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006840|106840|989898|1|9999006840|MR|Test|E|Lead 6840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006841|106841|989898|1|9999006841|MR|Test|E|Lead 6841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006842|106842|989898|1|9999006842|MR|Test|E|Lead 6842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006843|106843|989898|1|9999006843|MR|Test|E|Lead 6843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006844|106844|989898|1|9999006844|MR|Test|E|Lead 6844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006845|106845|989898|1|9999006845|MR|Test|E|Lead 6845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006846|106846|989898|1|9999006846|MR|Test|E|Lead 6846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006847|106847|989898|1|9999006847|MR|Test|E|Lead 6847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006848|106848|989898|1|9999006848|MR|Test|E|Lead 6848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006849|106849|989898|1|9999006849|MR|Test|E|Lead 6849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006850|106850|989898|1|9999006850|MR|Test|E|Lead 6850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006851|106851|989898|1|9999006851|MR|Test|E|Lead 6851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006852|106852|989898|1|9999006852|MR|Test|E|Lead 6852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006853|106853|989898|1|9999006853|MR|Test|E|Lead 6853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006854|106854|989898|1|9999006854|MR|Test|E|Lead 6854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006855|106855|989898|1|9999006855|MR|Test|E|Lead 6855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006856|106856|989898|1|9999006856|MR|Test|E|Lead 6856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006857|106857|989898|1|9999006857|MR|Test|E|Lead 6857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006858|106858|989898|1|9999006858|MR|Test|E|Lead 6858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006859|106859|989898|1|9999006859|MR|Test|E|Lead 6859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006860|106860|989898|1|9999006860|MR|Test|E|Lead 6860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006861|106861|989898|1|9999006861|MR|Test|E|Lead 6861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006862|106862|989898|1|9999006862|MR|Test|E|Lead 6862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006863|106863|989898|1|9999006863|MR|Test|E|Lead 6863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006864|106864|989898|1|9999006864|MR|Test|E|Lead 6864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006865|106865|989898|1|9999006865|MR|Test|E|Lead 6865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006866|106866|989898|1|9999006866|MR|Test|E|Lead 6866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006867|106867|989898|1|9999006867|MR|Test|E|Lead 6867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006868|106868|989898|1|9999006868|MR|Test|E|Lead 6868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006869|106869|989898|1|9999006869|MR|Test|E|Lead 6869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006870|106870|989898|1|9999006870|MR|Test|E|Lead 6870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006871|106871|989898|1|9999006871|MR|Test|E|Lead 6871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006872|106872|989898|1|9999006872|MR|Test|E|Lead 6872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006873|106873|989898|1|9999006873|MR|Test|E|Lead 6873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006874|106874|989898|1|9999006874|MR|Test|E|Lead 6874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006875|106875|989898|1|9999006875|MR|Test|E|Lead 6875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006876|106876|989898|1|9999006876|MR|Test|E|Lead 6876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006877|106877|989898|1|9999006877|MR|Test|E|Lead 6877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006878|106878|989898|1|9999006878|MR|Test|E|Lead 6878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006879|106879|989898|1|9999006879|MR|Test|E|Lead 6879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006880|106880|989898|1|9999006880|MR|Test|E|Lead 6880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006881|106881|989898|1|9999006881|MR|Test|E|Lead 6881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006882|106882|989898|1|9999006882|MR|Test|E|Lead 6882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006883|106883|989898|1|9999006883|MR|Test|E|Lead 6883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006884|106884|989898|1|9999006884|MR|Test|E|Lead 6884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006885|106885|989898|1|9999006885|MR|Test|E|Lead 6885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006886|106886|989898|1|9999006886|MR|Test|E|Lead 6886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006887|106887|989898|1|9999006887|MR|Test|E|Lead 6887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006888|106888|989898|1|9999006888|MR|Test|E|Lead 6888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006889|106889|989898|1|9999006889|MR|Test|E|Lead 6889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006890|106890|989898|1|9999006890|MR|Test|E|Lead 6890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006891|106891|989898|1|9999006891|MR|Test|E|Lead 6891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006892|106892|989898|1|9999006892|MR|Test|E|Lead 6892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006893|106893|989898|1|9999006893|MR|Test|E|Lead 6893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006894|106894|989898|1|9999006894|MR|Test|E|Lead 6894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006895|106895|989898|1|9999006895|MR|Test|E|Lead 6895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006896|106896|989898|1|9999006896|MR|Test|E|Lead 6896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006897|106897|989898|1|9999006897|MR|Test|E|Lead 6897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006898|106898|989898|1|9999006898|MR|Test|E|Lead 6898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006899|106899|989898|1|9999006899|MR|Test|E|Lead 6899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006900|106900|989898|1|9999006900|MR|Test|E|Lead 6900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006901|106901|989898|1|9999006901|MR|Test|E|Lead 6901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006902|106902|989898|1|9999006902|MR|Test|E|Lead 6902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006903|106903|989898|1|9999006903|MR|Test|E|Lead 6903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006904|106904|989898|1|9999006904|MR|Test|E|Lead 6904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006905|106905|989898|1|9999006905|MR|Test|E|Lead 6905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006906|106906|989898|1|9999006906|MR|Test|E|Lead 6906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006907|106907|989898|1|9999006907|MR|Test|E|Lead 6907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006908|106908|989898|1|9999006908|MR|Test|E|Lead 6908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006909|106909|989898|1|9999006909|MR|Test|E|Lead 6909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006910|106910|989898|1|9999006910|MR|Test|E|Lead 6910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006911|106911|989898|1|9999006911|MR|Test|E|Lead 6911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006912|106912|989898|1|9999006912|MR|Test|E|Lead 6912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006913|106913|989898|1|9999006913|MR|Test|E|Lead 6913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006914|106914|989898|1|9999006914|MR|Test|E|Lead 6914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006915|106915|989898|1|9999006915|MR|Test|E|Lead 6915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006916|106916|989898|1|9999006916|MR|Test|E|Lead 6916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006917|106917|989898|1|9999006917|MR|Test|E|Lead 6917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006918|106918|989898|1|9999006918|MR|Test|E|Lead 6918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006919|106919|989898|1|9999006919|MR|Test|E|Lead 6919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006920|106920|989898|1|9999006920|MR|Test|E|Lead 6920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006921|106921|989898|1|9999006921|MR|Test|E|Lead 6921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006922|106922|989898|1|9999006922|MR|Test|E|Lead 6922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006923|106923|989898|1|9999006923|MR|Test|E|Lead 6923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006924|106924|989898|1|9999006924|MR|Test|E|Lead 6924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006925|106925|989898|1|9999006925|MR|Test|E|Lead 6925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006926|106926|989898|1|9999006926|MR|Test|E|Lead 6926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006927|106927|989898|1|9999006927|MR|Test|E|Lead 6927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006928|106928|989898|1|9999006928|MR|Test|E|Lead 6928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006929|106929|989898|1|9999006929|MR|Test|E|Lead 6929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006930|106930|989898|1|9999006930|MR|Test|E|Lead 6930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006931|106931|989898|1|9999006931|MR|Test|E|Lead 6931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006932|106932|989898|1|9999006932|MR|Test|E|Lead 6932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006933|106933|989898|1|9999006933|MR|Test|E|Lead 6933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006934|106934|989898|1|9999006934|MR|Test|E|Lead 6934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006935|106935|989898|1|9999006935|MR|Test|E|Lead 6935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006936|106936|989898|1|9999006936|MR|Test|E|Lead 6936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006937|106937|989898|1|9999006937|MR|Test|E|Lead 6937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006938|106938|989898|1|9999006938|MR|Test|E|Lead 6938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006939|106939|989898|1|9999006939|MR|Test|E|Lead 6939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006940|106940|989898|1|9999006940|MR|Test|E|Lead 6940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006941|106941|989898|1|9999006941|MR|Test|E|Lead 6941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006942|106942|989898|1|9999006942|MR|Test|E|Lead 6942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006943|106943|989898|1|9999006943|MR|Test|E|Lead 6943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006944|106944|989898|1|9999006944|MR|Test|E|Lead 6944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006945|106945|989898|1|9999006945|MR|Test|E|Lead 6945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006946|106946|989898|1|9999006946|MR|Test|E|Lead 6946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006947|106947|989898|1|9999006947|MR|Test|E|Lead 6947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006948|106948|989898|1|9999006948|MR|Test|E|Lead 6948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006949|106949|989898|1|9999006949|MR|Test|E|Lead 6949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006950|106950|989898|1|9999006950|MR|Test|E|Lead 6950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006951|106951|989898|1|9999006951|MR|Test|E|Lead 6951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006952|106952|989898|1|9999006952|MR|Test|E|Lead 6952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006953|106953|989898|1|9999006953|MR|Test|E|Lead 6953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006954|106954|989898|1|9999006954|MR|Test|E|Lead 6954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006955|106955|989898|1|9999006955|MR|Test|E|Lead 6955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006956|106956|989898|1|9999006956|MR|Test|E|Lead 6956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006957|106957|989898|1|9999006957|MR|Test|E|Lead 6957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006958|106958|989898|1|9999006958|MR|Test|E|Lead 6958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006959|106959|989898|1|9999006959|MR|Test|E|Lead 6959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006960|106960|989898|1|9999006960|MR|Test|E|Lead 6960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006961|106961|989898|1|9999006961|MR|Test|E|Lead 6961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006962|106962|989898|1|9999006962|MR|Test|E|Lead 6962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006963|106963|989898|1|9999006963|MR|Test|E|Lead 6963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006964|106964|989898|1|9999006964|MR|Test|E|Lead 6964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006965|106965|989898|1|9999006965|MR|Test|E|Lead 6965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006966|106966|989898|1|9999006966|MR|Test|E|Lead 6966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006967|106967|989898|1|9999006967|MR|Test|E|Lead 6967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006968|106968|989898|1|9999006968|MR|Test|E|Lead 6968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006969|106969|989898|1|9999006969|MR|Test|E|Lead 6969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006970|106970|989898|1|9999006970|MR|Test|E|Lead 6970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006971|106971|989898|1|9999006971|MR|Test|E|Lead 6971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006972|106972|989898|1|9999006972|MR|Test|E|Lead 6972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006973|106973|989898|1|9999006973|MR|Test|E|Lead 6973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006974|106974|989898|1|9999006974|MR|Test|E|Lead 6974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006975|106975|989898|1|9999006975|MR|Test|E|Lead 6975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006976|106976|989898|1|9999006976|MR|Test|E|Lead 6976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006977|106977|989898|1|9999006977|MR|Test|E|Lead 6977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006978|106978|989898|1|9999006978|MR|Test|E|Lead 6978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006979|106979|989898|1|9999006979|MR|Test|E|Lead 6979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006980|106980|989898|1|9999006980|MR|Test|E|Lead 6980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006981|106981|989898|1|9999006981|MR|Test|E|Lead 6981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006982|106982|989898|1|9999006982|MR|Test|E|Lead 6982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006983|106983|989898|1|9999006983|MR|Test|E|Lead 6983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006984|106984|989898|1|9999006984|MR|Test|E|Lead 6984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006985|106985|989898|1|9999006985|MR|Test|E|Lead 6985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006986|106986|989898|1|9999006986|MR|Test|E|Lead 6986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006987|106987|989898|1|9999006987|MR|Test|E|Lead 6987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006988|106988|989898|1|9999006988|MR|Test|E|Lead 6988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006989|106989|989898|1|9999006989|MR|Test|E|Lead 6989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006990|106990|989898|1|9999006990|MR|Test|E|Lead 6990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006991|106991|989898|1|9999006991|MR|Test|E|Lead 6991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006992|106992|989898|1|9999006992|MR|Test|E|Lead 6992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006993|106993|989898|1|9999006993|MR|Test|E|Lead 6993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006994|106994|989898|1|9999006994|MR|Test|E|Lead 6994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006995|106995|989898|1|9999006995|MR|Test|E|Lead 6995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006996|106996|989898|1|9999006996|MR|Test|E|Lead 6996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006997|106997|989898|1|9999006997|MR|Test|E|Lead 6997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006998|106998|989898|1|9999006998|MR|Test|E|Lead 6998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1006999|106999|989898|1|9999006999|MR|Test|E|Lead 6999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007000|107000|989898|1|9999007000|MR|Test|E|Lead 7000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007001|107001|989898|1|9999007001|MR|Test|E|Lead 7001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007002|107002|989898|1|9999007002|MR|Test|E|Lead 7002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007003|107003|989898|1|9999007003|MR|Test|E|Lead 7003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007004|107004|989898|1|9999007004|MR|Test|E|Lead 7004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007005|107005|989898|1|9999007005|MR|Test|E|Lead 7005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007006|107006|989898|1|9999007006|MR|Test|E|Lead 7006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007007|107007|989898|1|9999007007|MR|Test|E|Lead 7007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007008|107008|989898|1|9999007008|MR|Test|E|Lead 7008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007009|107009|989898|1|9999007009|MR|Test|E|Lead 7009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007010|107010|989898|1|9999007010|MR|Test|E|Lead 7010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007011|107011|989898|1|9999007011|MR|Test|E|Lead 7011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007012|107012|989898|1|9999007012|MR|Test|E|Lead 7012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007013|107013|989898|1|9999007013|MR|Test|E|Lead 7013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007014|107014|989898|1|9999007014|MR|Test|E|Lead 7014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007015|107015|989898|1|9999007015|MR|Test|E|Lead 7015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007016|107016|989898|1|9999007016|MR|Test|E|Lead 7016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007017|107017|989898|1|9999007017|MR|Test|E|Lead 7017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007018|107018|989898|1|9999007018|MR|Test|E|Lead 7018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007019|107019|989898|1|9999007019|MR|Test|E|Lead 7019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007020|107020|989898|1|9999007020|MR|Test|E|Lead 7020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007021|107021|989898|1|9999007021|MR|Test|E|Lead 7021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007022|107022|989898|1|9999007022|MR|Test|E|Lead 7022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007023|107023|989898|1|9999007023|MR|Test|E|Lead 7023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007024|107024|989898|1|9999007024|MR|Test|E|Lead 7024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007025|107025|989898|1|9999007025|MR|Test|E|Lead 7025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007026|107026|989898|1|9999007026|MR|Test|E|Lead 7026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007027|107027|989898|1|9999007027|MR|Test|E|Lead 7027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007028|107028|989898|1|9999007028|MR|Test|E|Lead 7028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007029|107029|989898|1|9999007029|MR|Test|E|Lead 7029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007030|107030|989898|1|9999007030|MR|Test|E|Lead 7030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007031|107031|989898|1|9999007031|MR|Test|E|Lead 7031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007032|107032|989898|1|9999007032|MR|Test|E|Lead 7032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007033|107033|989898|1|9999007033|MR|Test|E|Lead 7033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007034|107034|989898|1|9999007034|MR|Test|E|Lead 7034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007035|107035|989898|1|9999007035|MR|Test|E|Lead 7035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007036|107036|989898|1|9999007036|MR|Test|E|Lead 7036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007037|107037|989898|1|9999007037|MR|Test|E|Lead 7037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007038|107038|989898|1|9999007038|MR|Test|E|Lead 7038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007039|107039|989898|1|9999007039|MR|Test|E|Lead 7039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007040|107040|989898|1|9999007040|MR|Test|E|Lead 7040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007041|107041|989898|1|9999007041|MR|Test|E|Lead 7041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007042|107042|989898|1|9999007042|MR|Test|E|Lead 7042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007043|107043|989898|1|9999007043|MR|Test|E|Lead 7043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007044|107044|989898|1|9999007044|MR|Test|E|Lead 7044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007045|107045|989898|1|9999007045|MR|Test|E|Lead 7045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007046|107046|989898|1|9999007046|MR|Test|E|Lead 7046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007047|107047|989898|1|9999007047|MR|Test|E|Lead 7047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007048|107048|989898|1|9999007048|MR|Test|E|Lead 7048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007049|107049|989898|1|9999007049|MR|Test|E|Lead 7049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007050|107050|989898|1|9999007050|MR|Test|E|Lead 7050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007051|107051|989898|1|9999007051|MR|Test|E|Lead 7051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007052|107052|989898|1|9999007052|MR|Test|E|Lead 7052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007053|107053|989898|1|9999007053|MR|Test|E|Lead 7053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007054|107054|989898|1|9999007054|MR|Test|E|Lead 7054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007055|107055|989898|1|9999007055|MR|Test|E|Lead 7055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007056|107056|989898|1|9999007056|MR|Test|E|Lead 7056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007057|107057|989898|1|9999007057|MR|Test|E|Lead 7057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007058|107058|989898|1|9999007058|MR|Test|E|Lead 7058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007059|107059|989898|1|9999007059|MR|Test|E|Lead 7059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007060|107060|989898|1|9999007060|MR|Test|E|Lead 7060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007061|107061|989898|1|9999007061|MR|Test|E|Lead 7061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007062|107062|989898|1|9999007062|MR|Test|E|Lead 7062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007063|107063|989898|1|9999007063|MR|Test|E|Lead 7063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007064|107064|989898|1|9999007064|MR|Test|E|Lead 7064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007065|107065|989898|1|9999007065|MR|Test|E|Lead 7065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007066|107066|989898|1|9999007066|MR|Test|E|Lead 7066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007067|107067|989898|1|9999007067|MR|Test|E|Lead 7067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007068|107068|989898|1|9999007068|MR|Test|E|Lead 7068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007069|107069|989898|1|9999007069|MR|Test|E|Lead 7069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007070|107070|989898|1|9999007070|MR|Test|E|Lead 7070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007071|107071|989898|1|9999007071|MR|Test|E|Lead 7071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007072|107072|989898|1|9999007072|MR|Test|E|Lead 7072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007073|107073|989898|1|9999007073|MR|Test|E|Lead 7073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007074|107074|989898|1|9999007074|MR|Test|E|Lead 7074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007075|107075|989898|1|9999007075|MR|Test|E|Lead 7075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007076|107076|989898|1|9999007076|MR|Test|E|Lead 7076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007077|107077|989898|1|9999007077|MR|Test|E|Lead 7077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007078|107078|989898|1|9999007078|MR|Test|E|Lead 7078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007079|107079|989898|1|9999007079|MR|Test|E|Lead 7079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007080|107080|989898|1|9999007080|MR|Test|E|Lead 7080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007081|107081|989898|1|9999007081|MR|Test|E|Lead 7081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007082|107082|989898|1|9999007082|MR|Test|E|Lead 7082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007083|107083|989898|1|9999007083|MR|Test|E|Lead 7083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007084|107084|989898|1|9999007084|MR|Test|E|Lead 7084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007085|107085|989898|1|9999007085|MR|Test|E|Lead 7085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007086|107086|989898|1|9999007086|MR|Test|E|Lead 7086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007087|107087|989898|1|9999007087|MR|Test|E|Lead 7087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007088|107088|989898|1|9999007088|MR|Test|E|Lead 7088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007089|107089|989898|1|9999007089|MR|Test|E|Lead 7089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007090|107090|989898|1|9999007090|MR|Test|E|Lead 7090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007091|107091|989898|1|9999007091|MR|Test|E|Lead 7091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007092|107092|989898|1|9999007092|MR|Test|E|Lead 7092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007093|107093|989898|1|9999007093|MR|Test|E|Lead 7093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007094|107094|989898|1|9999007094|MR|Test|E|Lead 7094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007095|107095|989898|1|9999007095|MR|Test|E|Lead 7095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007096|107096|989898|1|9999007096|MR|Test|E|Lead 7096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007097|107097|989898|1|9999007097|MR|Test|E|Lead 7097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007098|107098|989898|1|9999007098|MR|Test|E|Lead 7098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007099|107099|989898|1|9999007099|MR|Test|E|Lead 7099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007100|107100|989898|1|9999007100|MR|Test|E|Lead 7100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007101|107101|989898|1|9999007101|MR|Test|E|Lead 7101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007102|107102|989898|1|9999007102|MR|Test|E|Lead 7102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007103|107103|989898|1|9999007103|MR|Test|E|Lead 7103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007104|107104|989898|1|9999007104|MR|Test|E|Lead 7104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007105|107105|989898|1|9999007105|MR|Test|E|Lead 7105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007106|107106|989898|1|9999007106|MR|Test|E|Lead 7106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007107|107107|989898|1|9999007107|MR|Test|E|Lead 7107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007108|107108|989898|1|9999007108|MR|Test|E|Lead 7108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007109|107109|989898|1|9999007109|MR|Test|E|Lead 7109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007110|107110|989898|1|9999007110|MR|Test|E|Lead 7110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007111|107111|989898|1|9999007111|MR|Test|E|Lead 7111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007112|107112|989898|1|9999007112|MR|Test|E|Lead 7112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007113|107113|989898|1|9999007113|MR|Test|E|Lead 7113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007114|107114|989898|1|9999007114|MR|Test|E|Lead 7114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007115|107115|989898|1|9999007115|MR|Test|E|Lead 7115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007116|107116|989898|1|9999007116|MR|Test|E|Lead 7116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007117|107117|989898|1|9999007117|MR|Test|E|Lead 7117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007118|107118|989898|1|9999007118|MR|Test|E|Lead 7118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007119|107119|989898|1|9999007119|MR|Test|E|Lead 7119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007120|107120|989898|1|9999007120|MR|Test|E|Lead 7120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007121|107121|989898|1|9999007121|MR|Test|E|Lead 7121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007122|107122|989898|1|9999007122|MR|Test|E|Lead 7122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007123|107123|989898|1|9999007123|MR|Test|E|Lead 7123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007124|107124|989898|1|9999007124|MR|Test|E|Lead 7124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007125|107125|989898|1|9999007125|MR|Test|E|Lead 7125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007126|107126|989898|1|9999007126|MR|Test|E|Lead 7126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007127|107127|989898|1|9999007127|MR|Test|E|Lead 7127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007128|107128|989898|1|9999007128|MR|Test|E|Lead 7128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007129|107129|989898|1|9999007129|MR|Test|E|Lead 7129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007130|107130|989898|1|9999007130|MR|Test|E|Lead 7130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007131|107131|989898|1|9999007131|MR|Test|E|Lead 7131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007132|107132|989898|1|9999007132|MR|Test|E|Lead 7132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007133|107133|989898|1|9999007133|MR|Test|E|Lead 7133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007134|107134|989898|1|9999007134|MR|Test|E|Lead 7134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007135|107135|989898|1|9999007135|MR|Test|E|Lead 7135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007136|107136|989898|1|9999007136|MR|Test|E|Lead 7136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007137|107137|989898|1|9999007137|MR|Test|E|Lead 7137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007138|107138|989898|1|9999007138|MR|Test|E|Lead 7138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007139|107139|989898|1|9999007139|MR|Test|E|Lead 7139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007140|107140|989898|1|9999007140|MR|Test|E|Lead 7140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007141|107141|989898|1|9999007141|MR|Test|E|Lead 7141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007142|107142|989898|1|9999007142|MR|Test|E|Lead 7142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007143|107143|989898|1|9999007143|MR|Test|E|Lead 7143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007144|107144|989898|1|9999007144|MR|Test|E|Lead 7144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007145|107145|989898|1|9999007145|MR|Test|E|Lead 7145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007146|107146|989898|1|9999007146|MR|Test|E|Lead 7146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007147|107147|989898|1|9999007147|MR|Test|E|Lead 7147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007148|107148|989898|1|9999007148|MR|Test|E|Lead 7148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007149|107149|989898|1|9999007149|MR|Test|E|Lead 7149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007150|107150|989898|1|9999007150|MR|Test|E|Lead 7150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007151|107151|989898|1|9999007151|MR|Test|E|Lead 7151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007152|107152|989898|1|9999007152|MR|Test|E|Lead 7152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007153|107153|989898|1|9999007153|MR|Test|E|Lead 7153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007154|107154|989898|1|9999007154|MR|Test|E|Lead 7154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007155|107155|989898|1|9999007155|MR|Test|E|Lead 7155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007156|107156|989898|1|9999007156|MR|Test|E|Lead 7156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007157|107157|989898|1|9999007157|MR|Test|E|Lead 7157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007158|107158|989898|1|9999007158|MR|Test|E|Lead 7158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007159|107159|989898|1|9999007159|MR|Test|E|Lead 7159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007160|107160|989898|1|9999007160|MR|Test|E|Lead 7160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007161|107161|989898|1|9999007161|MR|Test|E|Lead 7161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007162|107162|989898|1|9999007162|MR|Test|E|Lead 7162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007163|107163|989898|1|9999007163|MR|Test|E|Lead 7163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007164|107164|989898|1|9999007164|MR|Test|E|Lead 7164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007165|107165|989898|1|9999007165|MR|Test|E|Lead 7165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007166|107166|989898|1|9999007166|MR|Test|E|Lead 7166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007167|107167|989898|1|9999007167|MR|Test|E|Lead 7167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007168|107168|989898|1|9999007168|MR|Test|E|Lead 7168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007169|107169|989898|1|9999007169|MR|Test|E|Lead 7169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007170|107170|989898|1|9999007170|MR|Test|E|Lead 7170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007171|107171|989898|1|9999007171|MR|Test|E|Lead 7171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007172|107172|989898|1|9999007172|MR|Test|E|Lead 7172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007173|107173|989898|1|9999007173|MR|Test|E|Lead 7173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007174|107174|989898|1|9999007174|MR|Test|E|Lead 7174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007175|107175|989898|1|9999007175|MR|Test|E|Lead 7175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007176|107176|989898|1|9999007176|MR|Test|E|Lead 7176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007177|107177|989898|1|9999007177|MR|Test|E|Lead 7177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007178|107178|989898|1|9999007178|MR|Test|E|Lead 7178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007179|107179|989898|1|9999007179|MR|Test|E|Lead 7179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007180|107180|989898|1|9999007180|MR|Test|E|Lead 7180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007181|107181|989898|1|9999007181|MR|Test|E|Lead 7181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007182|107182|989898|1|9999007182|MR|Test|E|Lead 7182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007183|107183|989898|1|9999007183|MR|Test|E|Lead 7183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007184|107184|989898|1|9999007184|MR|Test|E|Lead 7184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007185|107185|989898|1|9999007185|MR|Test|E|Lead 7185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007186|107186|989898|1|9999007186|MR|Test|E|Lead 7186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007187|107187|989898|1|9999007187|MR|Test|E|Lead 7187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007188|107188|989898|1|9999007188|MR|Test|E|Lead 7188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007189|107189|989898|1|9999007189|MR|Test|E|Lead 7189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007190|107190|989898|1|9999007190|MR|Test|E|Lead 7190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007191|107191|989898|1|9999007191|MR|Test|E|Lead 7191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007192|107192|989898|1|9999007192|MR|Test|E|Lead 7192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007193|107193|989898|1|9999007193|MR|Test|E|Lead 7193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007194|107194|989898|1|9999007194|MR|Test|E|Lead 7194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007195|107195|989898|1|9999007195|MR|Test|E|Lead 7195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007196|107196|989898|1|9999007196|MR|Test|E|Lead 7196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007197|107197|989898|1|9999007197|MR|Test|E|Lead 7197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007198|107198|989898|1|9999007198|MR|Test|E|Lead 7198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007199|107199|989898|1|9999007199|MR|Test|E|Lead 7199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007200|107200|989898|1|9999007200|MR|Test|E|Lead 7200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007201|107201|989898|1|9999007201|MR|Test|E|Lead 7201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007202|107202|989898|1|9999007202|MR|Test|E|Lead 7202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007203|107203|989898|1|9999007203|MR|Test|E|Lead 7203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007204|107204|989898|1|9999007204|MR|Test|E|Lead 7204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007205|107205|989898|1|9999007205|MR|Test|E|Lead 7205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007206|107206|989898|1|9999007206|MR|Test|E|Lead 7206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007207|107207|989898|1|9999007207|MR|Test|E|Lead 7207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007208|107208|989898|1|9999007208|MR|Test|E|Lead 7208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007209|107209|989898|1|9999007209|MR|Test|E|Lead 7209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007210|107210|989898|1|9999007210|MR|Test|E|Lead 7210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007211|107211|989898|1|9999007211|MR|Test|E|Lead 7211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007212|107212|989898|1|9999007212|MR|Test|E|Lead 7212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007213|107213|989898|1|9999007213|MR|Test|E|Lead 7213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007214|107214|989898|1|9999007214|MR|Test|E|Lead 7214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007215|107215|989898|1|9999007215|MR|Test|E|Lead 7215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007216|107216|989898|1|9999007216|MR|Test|E|Lead 7216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007217|107217|989898|1|9999007217|MR|Test|E|Lead 7217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007218|107218|989898|1|9999007218|MR|Test|E|Lead 7218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007219|107219|989898|1|9999007219|MR|Test|E|Lead 7219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007220|107220|989898|1|9999007220|MR|Test|E|Lead 7220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007221|107221|989898|1|9999007221|MR|Test|E|Lead 7221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007222|107222|989898|1|9999007222|MR|Test|E|Lead 7222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007223|107223|989898|1|9999007223|MR|Test|E|Lead 7223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007224|107224|989898|1|9999007224|MR|Test|E|Lead 7224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007225|107225|989898|1|9999007225|MR|Test|E|Lead 7225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007226|107226|989898|1|9999007226|MR|Test|E|Lead 7226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007227|107227|989898|1|9999007227|MR|Test|E|Lead 7227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007228|107228|989898|1|9999007228|MR|Test|E|Lead 7228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007229|107229|989898|1|9999007229|MR|Test|E|Lead 7229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007230|107230|989898|1|9999007230|MR|Test|E|Lead 7230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007231|107231|989898|1|9999007231|MR|Test|E|Lead 7231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007232|107232|989898|1|9999007232|MR|Test|E|Lead 7232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007233|107233|989898|1|9999007233|MR|Test|E|Lead 7233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007234|107234|989898|1|9999007234|MR|Test|E|Lead 7234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007235|107235|989898|1|9999007235|MR|Test|E|Lead 7235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007236|107236|989898|1|9999007236|MR|Test|E|Lead 7236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007237|107237|989898|1|9999007237|MR|Test|E|Lead 7237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007238|107238|989898|1|9999007238|MR|Test|E|Lead 7238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007239|107239|989898|1|9999007239|MR|Test|E|Lead 7239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007240|107240|989898|1|9999007240|MR|Test|E|Lead 7240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007241|107241|989898|1|9999007241|MR|Test|E|Lead 7241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007242|107242|989898|1|9999007242|MR|Test|E|Lead 7242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007243|107243|989898|1|9999007243|MR|Test|E|Lead 7243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007244|107244|989898|1|9999007244|MR|Test|E|Lead 7244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007245|107245|989898|1|9999007245|MR|Test|E|Lead 7245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007246|107246|989898|1|9999007246|MR|Test|E|Lead 7246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007247|107247|989898|1|9999007247|MR|Test|E|Lead 7247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007248|107248|989898|1|9999007248|MR|Test|E|Lead 7248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007249|107249|989898|1|9999007249|MR|Test|E|Lead 7249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007250|107250|989898|1|9999007250|MR|Test|E|Lead 7250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007251|107251|989898|1|9999007251|MR|Test|E|Lead 7251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007252|107252|989898|1|9999007252|MR|Test|E|Lead 7252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007253|107253|989898|1|9999007253|MR|Test|E|Lead 7253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007254|107254|989898|1|9999007254|MR|Test|E|Lead 7254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007255|107255|989898|1|9999007255|MR|Test|E|Lead 7255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007256|107256|989898|1|9999007256|MR|Test|E|Lead 7256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007257|107257|989898|1|9999007257|MR|Test|E|Lead 7257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007258|107258|989898|1|9999007258|MR|Test|E|Lead 7258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007259|107259|989898|1|9999007259|MR|Test|E|Lead 7259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007260|107260|989898|1|9999007260|MR|Test|E|Lead 7260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007261|107261|989898|1|9999007261|MR|Test|E|Lead 7261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007262|107262|989898|1|9999007262|MR|Test|E|Lead 7262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007263|107263|989898|1|9999007263|MR|Test|E|Lead 7263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007264|107264|989898|1|9999007264|MR|Test|E|Lead 7264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007265|107265|989898|1|9999007265|MR|Test|E|Lead 7265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007266|107266|989898|1|9999007266|MR|Test|E|Lead 7266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007267|107267|989898|1|9999007267|MR|Test|E|Lead 7267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007268|107268|989898|1|9999007268|MR|Test|E|Lead 7268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007269|107269|989898|1|9999007269|MR|Test|E|Lead 7269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007270|107270|989898|1|9999007270|MR|Test|E|Lead 7270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007271|107271|989898|1|9999007271|MR|Test|E|Lead 7271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007272|107272|989898|1|9999007272|MR|Test|E|Lead 7272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007273|107273|989898|1|9999007273|MR|Test|E|Lead 7273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007274|107274|989898|1|9999007274|MR|Test|E|Lead 7274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007275|107275|989898|1|9999007275|MR|Test|E|Lead 7275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007276|107276|989898|1|9999007276|MR|Test|E|Lead 7276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007277|107277|989898|1|9999007277|MR|Test|E|Lead 7277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007278|107278|989898|1|9999007278|MR|Test|E|Lead 7278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007279|107279|989898|1|9999007279|MR|Test|E|Lead 7279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007280|107280|989898|1|9999007280|MR|Test|E|Lead 7280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007281|107281|989898|1|9999007281|MR|Test|E|Lead 7281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007282|107282|989898|1|9999007282|MR|Test|E|Lead 7282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007283|107283|989898|1|9999007283|MR|Test|E|Lead 7283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007284|107284|989898|1|9999007284|MR|Test|E|Lead 7284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007285|107285|989898|1|9999007285|MR|Test|E|Lead 7285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007286|107286|989898|1|9999007286|MR|Test|E|Lead 7286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007287|107287|989898|1|9999007287|MR|Test|E|Lead 7287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007288|107288|989898|1|9999007288|MR|Test|E|Lead 7288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007289|107289|989898|1|9999007289|MR|Test|E|Lead 7289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007290|107290|989898|1|9999007290|MR|Test|E|Lead 7290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007291|107291|989898|1|9999007291|MR|Test|E|Lead 7291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007292|107292|989898|1|9999007292|MR|Test|E|Lead 7292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007293|107293|989898|1|9999007293|MR|Test|E|Lead 7293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007294|107294|989898|1|9999007294|MR|Test|E|Lead 7294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007295|107295|989898|1|9999007295|MR|Test|E|Lead 7295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007296|107296|989898|1|9999007296|MR|Test|E|Lead 7296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007297|107297|989898|1|9999007297|MR|Test|E|Lead 7297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007298|107298|989898|1|9999007298|MR|Test|E|Lead 7298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007299|107299|989898|1|9999007299|MR|Test|E|Lead 7299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007300|107300|989898|1|9999007300|MR|Test|E|Lead 7300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007301|107301|989898|1|9999007301|MR|Test|E|Lead 7301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007302|107302|989898|1|9999007302|MR|Test|E|Lead 7302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007303|107303|989898|1|9999007303|MR|Test|E|Lead 7303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007304|107304|989898|1|9999007304|MR|Test|E|Lead 7304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007305|107305|989898|1|9999007305|MR|Test|E|Lead 7305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007306|107306|989898|1|9999007306|MR|Test|E|Lead 7306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007307|107307|989898|1|9999007307|MR|Test|E|Lead 7307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007308|107308|989898|1|9999007308|MR|Test|E|Lead 7308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007309|107309|989898|1|9999007309|MR|Test|E|Lead 7309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007310|107310|989898|1|9999007310|MR|Test|E|Lead 7310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007311|107311|989898|1|9999007311|MR|Test|E|Lead 7311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007312|107312|989898|1|9999007312|MR|Test|E|Lead 7312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007313|107313|989898|1|9999007313|MR|Test|E|Lead 7313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007314|107314|989898|1|9999007314|MR|Test|E|Lead 7314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007315|107315|989898|1|9999007315|MR|Test|E|Lead 7315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007316|107316|989898|1|9999007316|MR|Test|E|Lead 7316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007317|107317|989898|1|9999007317|MR|Test|E|Lead 7317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007318|107318|989898|1|9999007318|MR|Test|E|Lead 7318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007319|107319|989898|1|9999007319|MR|Test|E|Lead 7319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007320|107320|989898|1|9999007320|MR|Test|E|Lead 7320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007321|107321|989898|1|9999007321|MR|Test|E|Lead 7321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007322|107322|989898|1|9999007322|MR|Test|E|Lead 7322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007323|107323|989898|1|9999007323|MR|Test|E|Lead 7323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007324|107324|989898|1|9999007324|MR|Test|E|Lead 7324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007325|107325|989898|1|9999007325|MR|Test|E|Lead 7325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007326|107326|989898|1|9999007326|MR|Test|E|Lead 7326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007327|107327|989898|1|9999007327|MR|Test|E|Lead 7327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007328|107328|989898|1|9999007328|MR|Test|E|Lead 7328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007329|107329|989898|1|9999007329|MR|Test|E|Lead 7329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007330|107330|989898|1|9999007330|MR|Test|E|Lead 7330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007331|107331|989898|1|9999007331|MR|Test|E|Lead 7331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007332|107332|989898|1|9999007332|MR|Test|E|Lead 7332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007333|107333|989898|1|9999007333|MR|Test|E|Lead 7333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007334|107334|989898|1|9999007334|MR|Test|E|Lead 7334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007335|107335|989898|1|9999007335|MR|Test|E|Lead 7335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007336|107336|989898|1|9999007336|MR|Test|E|Lead 7336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007337|107337|989898|1|9999007337|MR|Test|E|Lead 7337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007338|107338|989898|1|9999007338|MR|Test|E|Lead 7338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007339|107339|989898|1|9999007339|MR|Test|E|Lead 7339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007340|107340|989898|1|9999007340|MR|Test|E|Lead 7340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007341|107341|989898|1|9999007341|MR|Test|E|Lead 7341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007342|107342|989898|1|9999007342|MR|Test|E|Lead 7342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007343|107343|989898|1|9999007343|MR|Test|E|Lead 7343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007344|107344|989898|1|9999007344|MR|Test|E|Lead 7344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007345|107345|989898|1|9999007345|MR|Test|E|Lead 7345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007346|107346|989898|1|9999007346|MR|Test|E|Lead 7346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007347|107347|989898|1|9999007347|MR|Test|E|Lead 7347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007348|107348|989898|1|9999007348|MR|Test|E|Lead 7348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007349|107349|989898|1|9999007349|MR|Test|E|Lead 7349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007350|107350|989898|1|9999007350|MR|Test|E|Lead 7350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007351|107351|989898|1|9999007351|MR|Test|E|Lead 7351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007352|107352|989898|1|9999007352|MR|Test|E|Lead 7352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007353|107353|989898|1|9999007353|MR|Test|E|Lead 7353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007354|107354|989898|1|9999007354|MR|Test|E|Lead 7354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007355|107355|989898|1|9999007355|MR|Test|E|Lead 7355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007356|107356|989898|1|9999007356|MR|Test|E|Lead 7356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007357|107357|989898|1|9999007357|MR|Test|E|Lead 7357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007358|107358|989898|1|9999007358|MR|Test|E|Lead 7358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007359|107359|989898|1|9999007359|MR|Test|E|Lead 7359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007360|107360|989898|1|9999007360|MR|Test|E|Lead 7360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007361|107361|989898|1|9999007361|MR|Test|E|Lead 7361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007362|107362|989898|1|9999007362|MR|Test|E|Lead 7362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007363|107363|989898|1|9999007363|MR|Test|E|Lead 7363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007364|107364|989898|1|9999007364|MR|Test|E|Lead 7364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007365|107365|989898|1|9999007365|MR|Test|E|Lead 7365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007366|107366|989898|1|9999007366|MR|Test|E|Lead 7366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007367|107367|989898|1|9999007367|MR|Test|E|Lead 7367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007368|107368|989898|1|9999007368|MR|Test|E|Lead 7368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007369|107369|989898|1|9999007369|MR|Test|E|Lead 7369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007370|107370|989898|1|9999007370|MR|Test|E|Lead 7370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007371|107371|989898|1|9999007371|MR|Test|E|Lead 7371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007372|107372|989898|1|9999007372|MR|Test|E|Lead 7372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007373|107373|989898|1|9999007373|MR|Test|E|Lead 7373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007374|107374|989898|1|9999007374|MR|Test|E|Lead 7374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007375|107375|989898|1|9999007375|MR|Test|E|Lead 7375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007376|107376|989898|1|9999007376|MR|Test|E|Lead 7376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007377|107377|989898|1|9999007377|MR|Test|E|Lead 7377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007378|107378|989898|1|9999007378|MR|Test|E|Lead 7378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007379|107379|989898|1|9999007379|MR|Test|E|Lead 7379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007380|107380|989898|1|9999007380|MR|Test|E|Lead 7380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007381|107381|989898|1|9999007381|MR|Test|E|Lead 7381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007382|107382|989898|1|9999007382|MR|Test|E|Lead 7382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007383|107383|989898|1|9999007383|MR|Test|E|Lead 7383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007384|107384|989898|1|9999007384|MR|Test|E|Lead 7384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007385|107385|989898|1|9999007385|MR|Test|E|Lead 7385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007386|107386|989898|1|9999007386|MR|Test|E|Lead 7386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007387|107387|989898|1|9999007387|MR|Test|E|Lead 7387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007388|107388|989898|1|9999007388|MR|Test|E|Lead 7388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007389|107389|989898|1|9999007389|MR|Test|E|Lead 7389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007390|107390|989898|1|9999007390|MR|Test|E|Lead 7390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007391|107391|989898|1|9999007391|MR|Test|E|Lead 7391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007392|107392|989898|1|9999007392|MR|Test|E|Lead 7392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007393|107393|989898|1|9999007393|MR|Test|E|Lead 7393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007394|107394|989898|1|9999007394|MR|Test|E|Lead 7394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007395|107395|989898|1|9999007395|MR|Test|E|Lead 7395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007396|107396|989898|1|9999007396|MR|Test|E|Lead 7396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007397|107397|989898|1|9999007397|MR|Test|E|Lead 7397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007398|107398|989898|1|9999007398|MR|Test|E|Lead 7398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007399|107399|989898|1|9999007399|MR|Test|E|Lead 7399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007400|107400|989898|1|9999007400|MR|Test|E|Lead 7400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007401|107401|989898|1|9999007401|MR|Test|E|Lead 7401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007402|107402|989898|1|9999007402|MR|Test|E|Lead 7402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007403|107403|989898|1|9999007403|MR|Test|E|Lead 7403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007404|107404|989898|1|9999007404|MR|Test|E|Lead 7404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007405|107405|989898|1|9999007405|MR|Test|E|Lead 7405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007406|107406|989898|1|9999007406|MR|Test|E|Lead 7406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007407|107407|989898|1|9999007407|MR|Test|E|Lead 7407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007408|107408|989898|1|9999007408|MR|Test|E|Lead 7408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007409|107409|989898|1|9999007409|MR|Test|E|Lead 7409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007410|107410|989898|1|9999007410|MR|Test|E|Lead 7410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007411|107411|989898|1|9999007411|MR|Test|E|Lead 7411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007412|107412|989898|1|9999007412|MR|Test|E|Lead 7412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007413|107413|989898|1|9999007413|MR|Test|E|Lead 7413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007414|107414|989898|1|9999007414|MR|Test|E|Lead 7414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007415|107415|989898|1|9999007415|MR|Test|E|Lead 7415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007416|107416|989898|1|9999007416|MR|Test|E|Lead 7416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007417|107417|989898|1|9999007417|MR|Test|E|Lead 7417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007418|107418|989898|1|9999007418|MR|Test|E|Lead 7418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007419|107419|989898|1|9999007419|MR|Test|E|Lead 7419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007420|107420|989898|1|9999007420|MR|Test|E|Lead 7420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007421|107421|989898|1|9999007421|MR|Test|E|Lead 7421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007422|107422|989898|1|9999007422|MR|Test|E|Lead 7422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007423|107423|989898|1|9999007423|MR|Test|E|Lead 7423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007424|107424|989898|1|9999007424|MR|Test|E|Lead 7424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007425|107425|989898|1|9999007425|MR|Test|E|Lead 7425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007426|107426|989898|1|9999007426|MR|Test|E|Lead 7426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007427|107427|989898|1|9999007427|MR|Test|E|Lead 7427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007428|107428|989898|1|9999007428|MR|Test|E|Lead 7428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007429|107429|989898|1|9999007429|MR|Test|E|Lead 7429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007430|107430|989898|1|9999007430|MR|Test|E|Lead 7430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007431|107431|989898|1|9999007431|MR|Test|E|Lead 7431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007432|107432|989898|1|9999007432|MR|Test|E|Lead 7432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007433|107433|989898|1|9999007433|MR|Test|E|Lead 7433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007434|107434|989898|1|9999007434|MR|Test|E|Lead 7434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007435|107435|989898|1|9999007435|MR|Test|E|Lead 7435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007436|107436|989898|1|9999007436|MR|Test|E|Lead 7436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007437|107437|989898|1|9999007437|MR|Test|E|Lead 7437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007438|107438|989898|1|9999007438|MR|Test|E|Lead 7438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007439|107439|989898|1|9999007439|MR|Test|E|Lead 7439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007440|107440|989898|1|9999007440|MR|Test|E|Lead 7440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007441|107441|989898|1|9999007441|MR|Test|E|Lead 7441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007442|107442|989898|1|9999007442|MR|Test|E|Lead 7442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007443|107443|989898|1|9999007443|MR|Test|E|Lead 7443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007444|107444|989898|1|9999007444|MR|Test|E|Lead 7444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007445|107445|989898|1|9999007445|MR|Test|E|Lead 7445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007446|107446|989898|1|9999007446|MR|Test|E|Lead 7446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007447|107447|989898|1|9999007447|MR|Test|E|Lead 7447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007448|107448|989898|1|9999007448|MR|Test|E|Lead 7448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007449|107449|989898|1|9999007449|MR|Test|E|Lead 7449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007450|107450|989898|1|9999007450|MR|Test|E|Lead 7450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007451|107451|989898|1|9999007451|MR|Test|E|Lead 7451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007452|107452|989898|1|9999007452|MR|Test|E|Lead 7452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007453|107453|989898|1|9999007453|MR|Test|E|Lead 7453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007454|107454|989898|1|9999007454|MR|Test|E|Lead 7454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007455|107455|989898|1|9999007455|MR|Test|E|Lead 7455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007456|107456|989898|1|9999007456|MR|Test|E|Lead 7456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007457|107457|989898|1|9999007457|MR|Test|E|Lead 7457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007458|107458|989898|1|9999007458|MR|Test|E|Lead 7458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007459|107459|989898|1|9999007459|MR|Test|E|Lead 7459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007460|107460|989898|1|9999007460|MR|Test|E|Lead 7460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007461|107461|989898|1|9999007461|MR|Test|E|Lead 7461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007462|107462|989898|1|9999007462|MR|Test|E|Lead 7462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007463|107463|989898|1|9999007463|MR|Test|E|Lead 7463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007464|107464|989898|1|9999007464|MR|Test|E|Lead 7464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007465|107465|989898|1|9999007465|MR|Test|E|Lead 7465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007466|107466|989898|1|9999007466|MR|Test|E|Lead 7466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007467|107467|989898|1|9999007467|MR|Test|E|Lead 7467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007468|107468|989898|1|9999007468|MR|Test|E|Lead 7468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007469|107469|989898|1|9999007469|MR|Test|E|Lead 7469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007470|107470|989898|1|9999007470|MR|Test|E|Lead 7470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007471|107471|989898|1|9999007471|MR|Test|E|Lead 7471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007472|107472|989898|1|9999007472|MR|Test|E|Lead 7472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007473|107473|989898|1|9999007473|MR|Test|E|Lead 7473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007474|107474|989898|1|9999007474|MR|Test|E|Lead 7474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007475|107475|989898|1|9999007475|MR|Test|E|Lead 7475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007476|107476|989898|1|9999007476|MR|Test|E|Lead 7476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007477|107477|989898|1|9999007477|MR|Test|E|Lead 7477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007478|107478|989898|1|9999007478|MR|Test|E|Lead 7478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007479|107479|989898|1|9999007479|MR|Test|E|Lead 7479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007480|107480|989898|1|9999007480|MR|Test|E|Lead 7480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007481|107481|989898|1|9999007481|MR|Test|E|Lead 7481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007482|107482|989898|1|9999007482|MR|Test|E|Lead 7482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007483|107483|989898|1|9999007483|MR|Test|E|Lead 7483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007484|107484|989898|1|9999007484|MR|Test|E|Lead 7484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007485|107485|989898|1|9999007485|MR|Test|E|Lead 7485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007486|107486|989898|1|9999007486|MR|Test|E|Lead 7486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007487|107487|989898|1|9999007487|MR|Test|E|Lead 7487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007488|107488|989898|1|9999007488|MR|Test|E|Lead 7488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007489|107489|989898|1|9999007489|MR|Test|E|Lead 7489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007490|107490|989898|1|9999007490|MR|Test|E|Lead 7490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007491|107491|989898|1|9999007491|MR|Test|E|Lead 7491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007492|107492|989898|1|9999007492|MR|Test|E|Lead 7492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007493|107493|989898|1|9999007493|MR|Test|E|Lead 7493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007494|107494|989898|1|9999007494|MR|Test|E|Lead 7494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007495|107495|989898|1|9999007495|MR|Test|E|Lead 7495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007496|107496|989898|1|9999007496|MR|Test|E|Lead 7496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007497|107497|989898|1|9999007497|MR|Test|E|Lead 7497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007498|107498|989898|1|9999007498|MR|Test|E|Lead 7498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007499|107499|989898|1|9999007499|MR|Test|E|Lead 7499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007500|107500|989898|1|9999007500|MR|Test|E|Lead 7500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007501|107501|989898|1|9999007501|MR|Test|E|Lead 7501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007502|107502|989898|1|9999007502|MR|Test|E|Lead 7502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007503|107503|989898|1|9999007503|MR|Test|E|Lead 7503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007504|107504|989898|1|9999007504|MR|Test|E|Lead 7504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007505|107505|989898|1|9999007505|MR|Test|E|Lead 7505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007506|107506|989898|1|9999007506|MR|Test|E|Lead 7506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007507|107507|989898|1|9999007507|MR|Test|E|Lead 7507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007508|107508|989898|1|9999007508|MR|Test|E|Lead 7508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007509|107509|989898|1|9999007509|MR|Test|E|Lead 7509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007510|107510|989898|1|9999007510|MR|Test|E|Lead 7510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007511|107511|989898|1|9999007511|MR|Test|E|Lead 7511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007512|107512|989898|1|9999007512|MR|Test|E|Lead 7512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007513|107513|989898|1|9999007513|MR|Test|E|Lead 7513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007514|107514|989898|1|9999007514|MR|Test|E|Lead 7514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007515|107515|989898|1|9999007515|MR|Test|E|Lead 7515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007516|107516|989898|1|9999007516|MR|Test|E|Lead 7516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007517|107517|989898|1|9999007517|MR|Test|E|Lead 7517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007518|107518|989898|1|9999007518|MR|Test|E|Lead 7518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007519|107519|989898|1|9999007519|MR|Test|E|Lead 7519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007520|107520|989898|1|9999007520|MR|Test|E|Lead 7520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007521|107521|989898|1|9999007521|MR|Test|E|Lead 7521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007522|107522|989898|1|9999007522|MR|Test|E|Lead 7522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007523|107523|989898|1|9999007523|MR|Test|E|Lead 7523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007524|107524|989898|1|9999007524|MR|Test|E|Lead 7524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007525|107525|989898|1|9999007525|MR|Test|E|Lead 7525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007526|107526|989898|1|9999007526|MR|Test|E|Lead 7526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007527|107527|989898|1|9999007527|MR|Test|E|Lead 7527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007528|107528|989898|1|9999007528|MR|Test|E|Lead 7528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007529|107529|989898|1|9999007529|MR|Test|E|Lead 7529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007530|107530|989898|1|9999007530|MR|Test|E|Lead 7530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007531|107531|989898|1|9999007531|MR|Test|E|Lead 7531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007532|107532|989898|1|9999007532|MR|Test|E|Lead 7532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007533|107533|989898|1|9999007533|MR|Test|E|Lead 7533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007534|107534|989898|1|9999007534|MR|Test|E|Lead 7534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007535|107535|989898|1|9999007535|MR|Test|E|Lead 7535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007536|107536|989898|1|9999007536|MR|Test|E|Lead 7536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007537|107537|989898|1|9999007537|MR|Test|E|Lead 7537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007538|107538|989898|1|9999007538|MR|Test|E|Lead 7538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007539|107539|989898|1|9999007539|MR|Test|E|Lead 7539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007540|107540|989898|1|9999007540|MR|Test|E|Lead 7540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007541|107541|989898|1|9999007541|MR|Test|E|Lead 7541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007542|107542|989898|1|9999007542|MR|Test|E|Lead 7542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007543|107543|989898|1|9999007543|MR|Test|E|Lead 7543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007544|107544|989898|1|9999007544|MR|Test|E|Lead 7544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007545|107545|989898|1|9999007545|MR|Test|E|Lead 7545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007546|107546|989898|1|9999007546|MR|Test|E|Lead 7546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007547|107547|989898|1|9999007547|MR|Test|E|Lead 7547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007548|107548|989898|1|9999007548|MR|Test|E|Lead 7548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007549|107549|989898|1|9999007549|MR|Test|E|Lead 7549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007550|107550|989898|1|9999007550|MR|Test|E|Lead 7550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007551|107551|989898|1|9999007551|MR|Test|E|Lead 7551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007552|107552|989898|1|9999007552|MR|Test|E|Lead 7552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007553|107553|989898|1|9999007553|MR|Test|E|Lead 7553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007554|107554|989898|1|9999007554|MR|Test|E|Lead 7554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007555|107555|989898|1|9999007555|MR|Test|E|Lead 7555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007556|107556|989898|1|9999007556|MR|Test|E|Lead 7556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007557|107557|989898|1|9999007557|MR|Test|E|Lead 7557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007558|107558|989898|1|9999007558|MR|Test|E|Lead 7558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007559|107559|989898|1|9999007559|MR|Test|E|Lead 7559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007560|107560|989898|1|9999007560|MR|Test|E|Lead 7560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007561|107561|989898|1|9999007561|MR|Test|E|Lead 7561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007562|107562|989898|1|9999007562|MR|Test|E|Lead 7562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007563|107563|989898|1|9999007563|MR|Test|E|Lead 7563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007564|107564|989898|1|9999007564|MR|Test|E|Lead 7564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007565|107565|989898|1|9999007565|MR|Test|E|Lead 7565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007566|107566|989898|1|9999007566|MR|Test|E|Lead 7566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007567|107567|989898|1|9999007567|MR|Test|E|Lead 7567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007568|107568|989898|1|9999007568|MR|Test|E|Lead 7568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007569|107569|989898|1|9999007569|MR|Test|E|Lead 7569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007570|107570|989898|1|9999007570|MR|Test|E|Lead 7570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007571|107571|989898|1|9999007571|MR|Test|E|Lead 7571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007572|107572|989898|1|9999007572|MR|Test|E|Lead 7572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007573|107573|989898|1|9999007573|MR|Test|E|Lead 7573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007574|107574|989898|1|9999007574|MR|Test|E|Lead 7574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007575|107575|989898|1|9999007575|MR|Test|E|Lead 7575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007576|107576|989898|1|9999007576|MR|Test|E|Lead 7576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007577|107577|989898|1|9999007577|MR|Test|E|Lead 7577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007578|107578|989898|1|9999007578|MR|Test|E|Lead 7578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007579|107579|989898|1|9999007579|MR|Test|E|Lead 7579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007580|107580|989898|1|9999007580|MR|Test|E|Lead 7580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007581|107581|989898|1|9999007581|MR|Test|E|Lead 7581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007582|107582|989898|1|9999007582|MR|Test|E|Lead 7582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007583|107583|989898|1|9999007583|MR|Test|E|Lead 7583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007584|107584|989898|1|9999007584|MR|Test|E|Lead 7584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007585|107585|989898|1|9999007585|MR|Test|E|Lead 7585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007586|107586|989898|1|9999007586|MR|Test|E|Lead 7586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007587|107587|989898|1|9999007587|MR|Test|E|Lead 7587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007588|107588|989898|1|9999007588|MR|Test|E|Lead 7588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007589|107589|989898|1|9999007589|MR|Test|E|Lead 7589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007590|107590|989898|1|9999007590|MR|Test|E|Lead 7590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007591|107591|989898|1|9999007591|MR|Test|E|Lead 7591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007592|107592|989898|1|9999007592|MR|Test|E|Lead 7592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007593|107593|989898|1|9999007593|MR|Test|E|Lead 7593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007594|107594|989898|1|9999007594|MR|Test|E|Lead 7594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007595|107595|989898|1|9999007595|MR|Test|E|Lead 7595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007596|107596|989898|1|9999007596|MR|Test|E|Lead 7596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007597|107597|989898|1|9999007597|MR|Test|E|Lead 7597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007598|107598|989898|1|9999007598|MR|Test|E|Lead 7598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007599|107599|989898|1|9999007599|MR|Test|E|Lead 7599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007600|107600|989898|1|9999007600|MR|Test|E|Lead 7600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007601|107601|989898|1|9999007601|MR|Test|E|Lead 7601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007602|107602|989898|1|9999007602|MR|Test|E|Lead 7602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007603|107603|989898|1|9999007603|MR|Test|E|Lead 7603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007604|107604|989898|1|9999007604|MR|Test|E|Lead 7604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007605|107605|989898|1|9999007605|MR|Test|E|Lead 7605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007606|107606|989898|1|9999007606|MR|Test|E|Lead 7606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007607|107607|989898|1|9999007607|MR|Test|E|Lead 7607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007608|107608|989898|1|9999007608|MR|Test|E|Lead 7608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007609|107609|989898|1|9999007609|MR|Test|E|Lead 7609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007610|107610|989898|1|9999007610|MR|Test|E|Lead 7610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007611|107611|989898|1|9999007611|MR|Test|E|Lead 7611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007612|107612|989898|1|9999007612|MR|Test|E|Lead 7612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007613|107613|989898|1|9999007613|MR|Test|E|Lead 7613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007614|107614|989898|1|9999007614|MR|Test|E|Lead 7614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007615|107615|989898|1|9999007615|MR|Test|E|Lead 7615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007616|107616|989898|1|9999007616|MR|Test|E|Lead 7616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007617|107617|989898|1|9999007617|MR|Test|E|Lead 7617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007618|107618|989898|1|9999007618|MR|Test|E|Lead 7618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007619|107619|989898|1|9999007619|MR|Test|E|Lead 7619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007620|107620|989898|1|9999007620|MR|Test|E|Lead 7620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007621|107621|989898|1|9999007621|MR|Test|E|Lead 7621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007622|107622|989898|1|9999007622|MR|Test|E|Lead 7622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007623|107623|989898|1|9999007623|MR|Test|E|Lead 7623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007624|107624|989898|1|9999007624|MR|Test|E|Lead 7624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007625|107625|989898|1|9999007625|MR|Test|E|Lead 7625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007626|107626|989898|1|9999007626|MR|Test|E|Lead 7626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007627|107627|989898|1|9999007627|MR|Test|E|Lead 7627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007628|107628|989898|1|9999007628|MR|Test|E|Lead 7628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007629|107629|989898|1|9999007629|MR|Test|E|Lead 7629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007630|107630|989898|1|9999007630|MR|Test|E|Lead 7630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007631|107631|989898|1|9999007631|MR|Test|E|Lead 7631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007632|107632|989898|1|9999007632|MR|Test|E|Lead 7632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007633|107633|989898|1|9999007633|MR|Test|E|Lead 7633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007634|107634|989898|1|9999007634|MR|Test|E|Lead 7634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007635|107635|989898|1|9999007635|MR|Test|E|Lead 7635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007636|107636|989898|1|9999007636|MR|Test|E|Lead 7636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007637|107637|989898|1|9999007637|MR|Test|E|Lead 7637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007638|107638|989898|1|9999007638|MR|Test|E|Lead 7638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007639|107639|989898|1|9999007639|MR|Test|E|Lead 7639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007640|107640|989898|1|9999007640|MR|Test|E|Lead 7640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007641|107641|989898|1|9999007641|MR|Test|E|Lead 7641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007642|107642|989898|1|9999007642|MR|Test|E|Lead 7642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007643|107643|989898|1|9999007643|MR|Test|E|Lead 7643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007644|107644|989898|1|9999007644|MR|Test|E|Lead 7644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007645|107645|989898|1|9999007645|MR|Test|E|Lead 7645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007646|107646|989898|1|9999007646|MR|Test|E|Lead 7646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007647|107647|989898|1|9999007647|MR|Test|E|Lead 7647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007648|107648|989898|1|9999007648|MR|Test|E|Lead 7648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007649|107649|989898|1|9999007649|MR|Test|E|Lead 7649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007650|107650|989898|1|9999007650|MR|Test|E|Lead 7650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007651|107651|989898|1|9999007651|MR|Test|E|Lead 7651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007652|107652|989898|1|9999007652|MR|Test|E|Lead 7652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007653|107653|989898|1|9999007653|MR|Test|E|Lead 7653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007654|107654|989898|1|9999007654|MR|Test|E|Lead 7654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007655|107655|989898|1|9999007655|MR|Test|E|Lead 7655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007656|107656|989898|1|9999007656|MR|Test|E|Lead 7656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007657|107657|989898|1|9999007657|MR|Test|E|Lead 7657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007658|107658|989898|1|9999007658|MR|Test|E|Lead 7658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007659|107659|989898|1|9999007659|MR|Test|E|Lead 7659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007660|107660|989898|1|9999007660|MR|Test|E|Lead 7660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007661|107661|989898|1|9999007661|MR|Test|E|Lead 7661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007662|107662|989898|1|9999007662|MR|Test|E|Lead 7662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007663|107663|989898|1|9999007663|MR|Test|E|Lead 7663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007664|107664|989898|1|9999007664|MR|Test|E|Lead 7664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007665|107665|989898|1|9999007665|MR|Test|E|Lead 7665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007666|107666|989898|1|9999007666|MR|Test|E|Lead 7666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007667|107667|989898|1|9999007667|MR|Test|E|Lead 7667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007668|107668|989898|1|9999007668|MR|Test|E|Lead 7668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007669|107669|989898|1|9999007669|MR|Test|E|Lead 7669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007670|107670|989898|1|9999007670|MR|Test|E|Lead 7670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007671|107671|989898|1|9999007671|MR|Test|E|Lead 7671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007672|107672|989898|1|9999007672|MR|Test|E|Lead 7672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007673|107673|989898|1|9999007673|MR|Test|E|Lead 7673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007674|107674|989898|1|9999007674|MR|Test|E|Lead 7674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007675|107675|989898|1|9999007675|MR|Test|E|Lead 7675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007676|107676|989898|1|9999007676|MR|Test|E|Lead 7676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007677|107677|989898|1|9999007677|MR|Test|E|Lead 7677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007678|107678|989898|1|9999007678|MR|Test|E|Lead 7678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007679|107679|989898|1|9999007679|MR|Test|E|Lead 7679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007680|107680|989898|1|9999007680|MR|Test|E|Lead 7680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007681|107681|989898|1|9999007681|MR|Test|E|Lead 7681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007682|107682|989898|1|9999007682|MR|Test|E|Lead 7682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007683|107683|989898|1|9999007683|MR|Test|E|Lead 7683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007684|107684|989898|1|9999007684|MR|Test|E|Lead 7684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007685|107685|989898|1|9999007685|MR|Test|E|Lead 7685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007686|107686|989898|1|9999007686|MR|Test|E|Lead 7686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007687|107687|989898|1|9999007687|MR|Test|E|Lead 7687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007688|107688|989898|1|9999007688|MR|Test|E|Lead 7688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007689|107689|989898|1|9999007689|MR|Test|E|Lead 7689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007690|107690|989898|1|9999007690|MR|Test|E|Lead 7690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007691|107691|989898|1|9999007691|MR|Test|E|Lead 7691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007692|107692|989898|1|9999007692|MR|Test|E|Lead 7692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007693|107693|989898|1|9999007693|MR|Test|E|Lead 7693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007694|107694|989898|1|9999007694|MR|Test|E|Lead 7694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007695|107695|989898|1|9999007695|MR|Test|E|Lead 7695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007696|107696|989898|1|9999007696|MR|Test|E|Lead 7696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007697|107697|989898|1|9999007697|MR|Test|E|Lead 7697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007698|107698|989898|1|9999007698|MR|Test|E|Lead 7698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007699|107699|989898|1|9999007699|MR|Test|E|Lead 7699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007700|107700|989898|1|9999007700|MR|Test|E|Lead 7700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007701|107701|989898|1|9999007701|MR|Test|E|Lead 7701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007702|107702|989898|1|9999007702|MR|Test|E|Lead 7702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007703|107703|989898|1|9999007703|MR|Test|E|Lead 7703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007704|107704|989898|1|9999007704|MR|Test|E|Lead 7704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007705|107705|989898|1|9999007705|MR|Test|E|Lead 7705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007706|107706|989898|1|9999007706|MR|Test|E|Lead 7706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007707|107707|989898|1|9999007707|MR|Test|E|Lead 7707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007708|107708|989898|1|9999007708|MR|Test|E|Lead 7708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007709|107709|989898|1|9999007709|MR|Test|E|Lead 7709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007710|107710|989898|1|9999007710|MR|Test|E|Lead 7710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007711|107711|989898|1|9999007711|MR|Test|E|Lead 7711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007712|107712|989898|1|9999007712|MR|Test|E|Lead 7712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007713|107713|989898|1|9999007713|MR|Test|E|Lead 7713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007714|107714|989898|1|9999007714|MR|Test|E|Lead 7714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007715|107715|989898|1|9999007715|MR|Test|E|Lead 7715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007716|107716|989898|1|9999007716|MR|Test|E|Lead 7716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007717|107717|989898|1|9999007717|MR|Test|E|Lead 7717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007718|107718|989898|1|9999007718|MR|Test|E|Lead 7718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007719|107719|989898|1|9999007719|MR|Test|E|Lead 7719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007720|107720|989898|1|9999007720|MR|Test|E|Lead 7720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007721|107721|989898|1|9999007721|MR|Test|E|Lead 7721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007722|107722|989898|1|9999007722|MR|Test|E|Lead 7722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007723|107723|989898|1|9999007723|MR|Test|E|Lead 7723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007724|107724|989898|1|9999007724|MR|Test|E|Lead 7724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007725|107725|989898|1|9999007725|MR|Test|E|Lead 7725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007726|107726|989898|1|9999007726|MR|Test|E|Lead 7726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007727|107727|989898|1|9999007727|MR|Test|E|Lead 7727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007728|107728|989898|1|9999007728|MR|Test|E|Lead 7728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007729|107729|989898|1|9999007729|MR|Test|E|Lead 7729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007730|107730|989898|1|9999007730|MR|Test|E|Lead 7730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007731|107731|989898|1|9999007731|MR|Test|E|Lead 7731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007732|107732|989898|1|9999007732|MR|Test|E|Lead 7732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007733|107733|989898|1|9999007733|MR|Test|E|Lead 7733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007734|107734|989898|1|9999007734|MR|Test|E|Lead 7734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007735|107735|989898|1|9999007735|MR|Test|E|Lead 7735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007736|107736|989898|1|9999007736|MR|Test|E|Lead 7736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007737|107737|989898|1|9999007737|MR|Test|E|Lead 7737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007738|107738|989898|1|9999007738|MR|Test|E|Lead 7738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007739|107739|989898|1|9999007739|MR|Test|E|Lead 7739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007740|107740|989898|1|9999007740|MR|Test|E|Lead 7740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007741|107741|989898|1|9999007741|MR|Test|E|Lead 7741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007742|107742|989898|1|9999007742|MR|Test|E|Lead 7742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007743|107743|989898|1|9999007743|MR|Test|E|Lead 7743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007744|107744|989898|1|9999007744|MR|Test|E|Lead 7744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007745|107745|989898|1|9999007745|MR|Test|E|Lead 7745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007746|107746|989898|1|9999007746|MR|Test|E|Lead 7746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007747|107747|989898|1|9999007747|MR|Test|E|Lead 7747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007748|107748|989898|1|9999007748|MR|Test|E|Lead 7748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007749|107749|989898|1|9999007749|MR|Test|E|Lead 7749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007750|107750|989898|1|9999007750|MR|Test|E|Lead 7750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007751|107751|989898|1|9999007751|MR|Test|E|Lead 7751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007752|107752|989898|1|9999007752|MR|Test|E|Lead 7752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007753|107753|989898|1|9999007753|MR|Test|E|Lead 7753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007754|107754|989898|1|9999007754|MR|Test|E|Lead 7754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007755|107755|989898|1|9999007755|MR|Test|E|Lead 7755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007756|107756|989898|1|9999007756|MR|Test|E|Lead 7756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007757|107757|989898|1|9999007757|MR|Test|E|Lead 7757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007758|107758|989898|1|9999007758|MR|Test|E|Lead 7758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007759|107759|989898|1|9999007759|MR|Test|E|Lead 7759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007760|107760|989898|1|9999007760|MR|Test|E|Lead 7760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007761|107761|989898|1|9999007761|MR|Test|E|Lead 7761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007762|107762|989898|1|9999007762|MR|Test|E|Lead 7762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007763|107763|989898|1|9999007763|MR|Test|E|Lead 7763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007764|107764|989898|1|9999007764|MR|Test|E|Lead 7764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007765|107765|989898|1|9999007765|MR|Test|E|Lead 7765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007766|107766|989898|1|9999007766|MR|Test|E|Lead 7766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007767|107767|989898|1|9999007767|MR|Test|E|Lead 7767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007768|107768|989898|1|9999007768|MR|Test|E|Lead 7768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007769|107769|989898|1|9999007769|MR|Test|E|Lead 7769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007770|107770|989898|1|9999007770|MR|Test|E|Lead 7770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007771|107771|989898|1|9999007771|MR|Test|E|Lead 7771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007772|107772|989898|1|9999007772|MR|Test|E|Lead 7772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007773|107773|989898|1|9999007773|MR|Test|E|Lead 7773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007774|107774|989898|1|9999007774|MR|Test|E|Lead 7774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007775|107775|989898|1|9999007775|MR|Test|E|Lead 7775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007776|107776|989898|1|9999007776|MR|Test|E|Lead 7776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007777|107777|989898|1|9999007777|MR|Test|E|Lead 7777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007778|107778|989898|1|9999007778|MR|Test|E|Lead 7778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007779|107779|989898|1|9999007779|MR|Test|E|Lead 7779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007780|107780|989898|1|9999007780|MR|Test|E|Lead 7780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007781|107781|989898|1|9999007781|MR|Test|E|Lead 7781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007782|107782|989898|1|9999007782|MR|Test|E|Lead 7782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007783|107783|989898|1|9999007783|MR|Test|E|Lead 7783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007784|107784|989898|1|9999007784|MR|Test|E|Lead 7784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007785|107785|989898|1|9999007785|MR|Test|E|Lead 7785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007786|107786|989898|1|9999007786|MR|Test|E|Lead 7786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007787|107787|989898|1|9999007787|MR|Test|E|Lead 7787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007788|107788|989898|1|9999007788|MR|Test|E|Lead 7788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007789|107789|989898|1|9999007789|MR|Test|E|Lead 7789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007790|107790|989898|1|9999007790|MR|Test|E|Lead 7790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007791|107791|989898|1|9999007791|MR|Test|E|Lead 7791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007792|107792|989898|1|9999007792|MR|Test|E|Lead 7792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007793|107793|989898|1|9999007793|MR|Test|E|Lead 7793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007794|107794|989898|1|9999007794|MR|Test|E|Lead 7794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007795|107795|989898|1|9999007795|MR|Test|E|Lead 7795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007796|107796|989898|1|9999007796|MR|Test|E|Lead 7796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007797|107797|989898|1|9999007797|MR|Test|E|Lead 7797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007798|107798|989898|1|9999007798|MR|Test|E|Lead 7798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007799|107799|989898|1|9999007799|MR|Test|E|Lead 7799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007800|107800|989898|1|9999007800|MR|Test|E|Lead 7800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007801|107801|989898|1|9999007801|MR|Test|E|Lead 7801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007802|107802|989898|1|9999007802|MR|Test|E|Lead 7802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007803|107803|989898|1|9999007803|MR|Test|E|Lead 7803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007804|107804|989898|1|9999007804|MR|Test|E|Lead 7804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007805|107805|989898|1|9999007805|MR|Test|E|Lead 7805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007806|107806|989898|1|9999007806|MR|Test|E|Lead 7806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007807|107807|989898|1|9999007807|MR|Test|E|Lead 7807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007808|107808|989898|1|9999007808|MR|Test|E|Lead 7808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007809|107809|989898|1|9999007809|MR|Test|E|Lead 7809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007810|107810|989898|1|9999007810|MR|Test|E|Lead 7810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007811|107811|989898|1|9999007811|MR|Test|E|Lead 7811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007812|107812|989898|1|9999007812|MR|Test|E|Lead 7812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007813|107813|989898|1|9999007813|MR|Test|E|Lead 7813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007814|107814|989898|1|9999007814|MR|Test|E|Lead 7814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007815|107815|989898|1|9999007815|MR|Test|E|Lead 7815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007816|107816|989898|1|9999007816|MR|Test|E|Lead 7816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007817|107817|989898|1|9999007817|MR|Test|E|Lead 7817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007818|107818|989898|1|9999007818|MR|Test|E|Lead 7818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007819|107819|989898|1|9999007819|MR|Test|E|Lead 7819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007820|107820|989898|1|9999007820|MR|Test|E|Lead 7820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007821|107821|989898|1|9999007821|MR|Test|E|Lead 7821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007822|107822|989898|1|9999007822|MR|Test|E|Lead 7822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007823|107823|989898|1|9999007823|MR|Test|E|Lead 7823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007824|107824|989898|1|9999007824|MR|Test|E|Lead 7824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007825|107825|989898|1|9999007825|MR|Test|E|Lead 7825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007826|107826|989898|1|9999007826|MR|Test|E|Lead 7826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007827|107827|989898|1|9999007827|MR|Test|E|Lead 7827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007828|107828|989898|1|9999007828|MR|Test|E|Lead 7828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007829|107829|989898|1|9999007829|MR|Test|E|Lead 7829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007830|107830|989898|1|9999007830|MR|Test|E|Lead 7830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007831|107831|989898|1|9999007831|MR|Test|E|Lead 7831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007832|107832|989898|1|9999007832|MR|Test|E|Lead 7832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007833|107833|989898|1|9999007833|MR|Test|E|Lead 7833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007834|107834|989898|1|9999007834|MR|Test|E|Lead 7834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007835|107835|989898|1|9999007835|MR|Test|E|Lead 7835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007836|107836|989898|1|9999007836|MR|Test|E|Lead 7836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007837|107837|989898|1|9999007837|MR|Test|E|Lead 7837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007838|107838|989898|1|9999007838|MR|Test|E|Lead 7838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007839|107839|989898|1|9999007839|MR|Test|E|Lead 7839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007840|107840|989898|1|9999007840|MR|Test|E|Lead 7840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007841|107841|989898|1|9999007841|MR|Test|E|Lead 7841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007842|107842|989898|1|9999007842|MR|Test|E|Lead 7842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007843|107843|989898|1|9999007843|MR|Test|E|Lead 7843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007844|107844|989898|1|9999007844|MR|Test|E|Lead 7844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007845|107845|989898|1|9999007845|MR|Test|E|Lead 7845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007846|107846|989898|1|9999007846|MR|Test|E|Lead 7846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007847|107847|989898|1|9999007847|MR|Test|E|Lead 7847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007848|107848|989898|1|9999007848|MR|Test|E|Lead 7848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007849|107849|989898|1|9999007849|MR|Test|E|Lead 7849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007850|107850|989898|1|9999007850|MR|Test|E|Lead 7850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007851|107851|989898|1|9999007851|MR|Test|E|Lead 7851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007852|107852|989898|1|9999007852|MR|Test|E|Lead 7852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007853|107853|989898|1|9999007853|MR|Test|E|Lead 7853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007854|107854|989898|1|9999007854|MR|Test|E|Lead 7854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007855|107855|989898|1|9999007855|MR|Test|E|Lead 7855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007856|107856|989898|1|9999007856|MR|Test|E|Lead 7856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007857|107857|989898|1|9999007857|MR|Test|E|Lead 7857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007858|107858|989898|1|9999007858|MR|Test|E|Lead 7858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007859|107859|989898|1|9999007859|MR|Test|E|Lead 7859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007860|107860|989898|1|9999007860|MR|Test|E|Lead 7860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007861|107861|989898|1|9999007861|MR|Test|E|Lead 7861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007862|107862|989898|1|9999007862|MR|Test|E|Lead 7862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007863|107863|989898|1|9999007863|MR|Test|E|Lead 7863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007864|107864|989898|1|9999007864|MR|Test|E|Lead 7864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007865|107865|989898|1|9999007865|MR|Test|E|Lead 7865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007866|107866|989898|1|9999007866|MR|Test|E|Lead 7866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007867|107867|989898|1|9999007867|MR|Test|E|Lead 7867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007868|107868|989898|1|9999007868|MR|Test|E|Lead 7868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007869|107869|989898|1|9999007869|MR|Test|E|Lead 7869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007870|107870|989898|1|9999007870|MR|Test|E|Lead 7870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007871|107871|989898|1|9999007871|MR|Test|E|Lead 7871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007872|107872|989898|1|9999007872|MR|Test|E|Lead 7872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007873|107873|989898|1|9999007873|MR|Test|E|Lead 7873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007874|107874|989898|1|9999007874|MR|Test|E|Lead 7874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007875|107875|989898|1|9999007875|MR|Test|E|Lead 7875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007876|107876|989898|1|9999007876|MR|Test|E|Lead 7876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007877|107877|989898|1|9999007877|MR|Test|E|Lead 7877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007878|107878|989898|1|9999007878|MR|Test|E|Lead 7878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007879|107879|989898|1|9999007879|MR|Test|E|Lead 7879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007880|107880|989898|1|9999007880|MR|Test|E|Lead 7880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007881|107881|989898|1|9999007881|MR|Test|E|Lead 7881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007882|107882|989898|1|9999007882|MR|Test|E|Lead 7882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007883|107883|989898|1|9999007883|MR|Test|E|Lead 7883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007884|107884|989898|1|9999007884|MR|Test|E|Lead 7884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007885|107885|989898|1|9999007885|MR|Test|E|Lead 7885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007886|107886|989898|1|9999007886|MR|Test|E|Lead 7886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007887|107887|989898|1|9999007887|MR|Test|E|Lead 7887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007888|107888|989898|1|9999007888|MR|Test|E|Lead 7888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007889|107889|989898|1|9999007889|MR|Test|E|Lead 7889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007890|107890|989898|1|9999007890|MR|Test|E|Lead 7890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007891|107891|989898|1|9999007891|MR|Test|E|Lead 7891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007892|107892|989898|1|9999007892|MR|Test|E|Lead 7892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007893|107893|989898|1|9999007893|MR|Test|E|Lead 7893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007894|107894|989898|1|9999007894|MR|Test|E|Lead 7894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007895|107895|989898|1|9999007895|MR|Test|E|Lead 7895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007896|107896|989898|1|9999007896|MR|Test|E|Lead 7896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007897|107897|989898|1|9999007897|MR|Test|E|Lead 7897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007898|107898|989898|1|9999007898|MR|Test|E|Lead 7898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007899|107899|989898|1|9999007899|MR|Test|E|Lead 7899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007900|107900|989898|1|9999007900|MR|Test|E|Lead 7900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007901|107901|989898|1|9999007901|MR|Test|E|Lead 7901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007902|107902|989898|1|9999007902|MR|Test|E|Lead 7902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007903|107903|989898|1|9999007903|MR|Test|E|Lead 7903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007904|107904|989898|1|9999007904|MR|Test|E|Lead 7904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007905|107905|989898|1|9999007905|MR|Test|E|Lead 7905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007906|107906|989898|1|9999007906|MR|Test|E|Lead 7906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007907|107907|989898|1|9999007907|MR|Test|E|Lead 7907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007908|107908|989898|1|9999007908|MR|Test|E|Lead 7908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007909|107909|989898|1|9999007909|MR|Test|E|Lead 7909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007910|107910|989898|1|9999007910|MR|Test|E|Lead 7910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007911|107911|989898|1|9999007911|MR|Test|E|Lead 7911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007912|107912|989898|1|9999007912|MR|Test|E|Lead 7912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007913|107913|989898|1|9999007913|MR|Test|E|Lead 7913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007914|107914|989898|1|9999007914|MR|Test|E|Lead 7914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007915|107915|989898|1|9999007915|MR|Test|E|Lead 7915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007916|107916|989898|1|9999007916|MR|Test|E|Lead 7916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007917|107917|989898|1|9999007917|MR|Test|E|Lead 7917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007918|107918|989898|1|9999007918|MR|Test|E|Lead 7918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007919|107919|989898|1|9999007919|MR|Test|E|Lead 7919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007920|107920|989898|1|9999007920|MR|Test|E|Lead 7920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007921|107921|989898|1|9999007921|MR|Test|E|Lead 7921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007922|107922|989898|1|9999007922|MR|Test|E|Lead 7922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007923|107923|989898|1|9999007923|MR|Test|E|Lead 7923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007924|107924|989898|1|9999007924|MR|Test|E|Lead 7924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007925|107925|989898|1|9999007925|MR|Test|E|Lead 7925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007926|107926|989898|1|9999007926|MR|Test|E|Lead 7926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007927|107927|989898|1|9999007927|MR|Test|E|Lead 7927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007928|107928|989898|1|9999007928|MR|Test|E|Lead 7928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007929|107929|989898|1|9999007929|MR|Test|E|Lead 7929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007930|107930|989898|1|9999007930|MR|Test|E|Lead 7930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007931|107931|989898|1|9999007931|MR|Test|E|Lead 7931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007932|107932|989898|1|9999007932|MR|Test|E|Lead 7932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007933|107933|989898|1|9999007933|MR|Test|E|Lead 7933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007934|107934|989898|1|9999007934|MR|Test|E|Lead 7934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007935|107935|989898|1|9999007935|MR|Test|E|Lead 7935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007936|107936|989898|1|9999007936|MR|Test|E|Lead 7936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007937|107937|989898|1|9999007937|MR|Test|E|Lead 7937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007938|107938|989898|1|9999007938|MR|Test|E|Lead 7938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007939|107939|989898|1|9999007939|MR|Test|E|Lead 7939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007940|107940|989898|1|9999007940|MR|Test|E|Lead 7940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007941|107941|989898|1|9999007941|MR|Test|E|Lead 7941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007942|107942|989898|1|9999007942|MR|Test|E|Lead 7942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007943|107943|989898|1|9999007943|MR|Test|E|Lead 7943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007944|107944|989898|1|9999007944|MR|Test|E|Lead 7944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007945|107945|989898|1|9999007945|MR|Test|E|Lead 7945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007946|107946|989898|1|9999007946|MR|Test|E|Lead 7946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007947|107947|989898|1|9999007947|MR|Test|E|Lead 7947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007948|107948|989898|1|9999007948|MR|Test|E|Lead 7948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007949|107949|989898|1|9999007949|MR|Test|E|Lead 7949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007950|107950|989898|1|9999007950|MR|Test|E|Lead 7950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007951|107951|989898|1|9999007951|MR|Test|E|Lead 7951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007952|107952|989898|1|9999007952|MR|Test|E|Lead 7952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007953|107953|989898|1|9999007953|MR|Test|E|Lead 7953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007954|107954|989898|1|9999007954|MR|Test|E|Lead 7954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007955|107955|989898|1|9999007955|MR|Test|E|Lead 7955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007956|107956|989898|1|9999007956|MR|Test|E|Lead 7956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007957|107957|989898|1|9999007957|MR|Test|E|Lead 7957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007958|107958|989898|1|9999007958|MR|Test|E|Lead 7958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007959|107959|989898|1|9999007959|MR|Test|E|Lead 7959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007960|107960|989898|1|9999007960|MR|Test|E|Lead 7960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007961|107961|989898|1|9999007961|MR|Test|E|Lead 7961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007962|107962|989898|1|9999007962|MR|Test|E|Lead 7962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007963|107963|989898|1|9999007963|MR|Test|E|Lead 7963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007964|107964|989898|1|9999007964|MR|Test|E|Lead 7964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007965|107965|989898|1|9999007965|MR|Test|E|Lead 7965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007966|107966|989898|1|9999007966|MR|Test|E|Lead 7966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007967|107967|989898|1|9999007967|MR|Test|E|Lead 7967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007968|107968|989898|1|9999007968|MR|Test|E|Lead 7968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007969|107969|989898|1|9999007969|MR|Test|E|Lead 7969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007970|107970|989898|1|9999007970|MR|Test|E|Lead 7970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007971|107971|989898|1|9999007971|MR|Test|E|Lead 7971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007972|107972|989898|1|9999007972|MR|Test|E|Lead 7972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007973|107973|989898|1|9999007973|MR|Test|E|Lead 7973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007974|107974|989898|1|9999007974|MR|Test|E|Lead 7974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007975|107975|989898|1|9999007975|MR|Test|E|Lead 7975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007976|107976|989898|1|9999007976|MR|Test|E|Lead 7976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007977|107977|989898|1|9999007977|MR|Test|E|Lead 7977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007978|107978|989898|1|9999007978|MR|Test|E|Lead 7978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007979|107979|989898|1|9999007979|MR|Test|E|Lead 7979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007980|107980|989898|1|9999007980|MR|Test|E|Lead 7980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007981|107981|989898|1|9999007981|MR|Test|E|Lead 7981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007982|107982|989898|1|9999007982|MR|Test|E|Lead 7982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007983|107983|989898|1|9999007983|MR|Test|E|Lead 7983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007984|107984|989898|1|9999007984|MR|Test|E|Lead 7984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007985|107985|989898|1|9999007985|MR|Test|E|Lead 7985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007986|107986|989898|1|9999007986|MR|Test|E|Lead 7986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007987|107987|989898|1|9999007987|MR|Test|E|Lead 7987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007988|107988|989898|1|9999007988|MR|Test|E|Lead 7988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007989|107989|989898|1|9999007989|MR|Test|E|Lead 7989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007990|107990|989898|1|9999007990|MR|Test|E|Lead 7990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007991|107991|989898|1|9999007991|MR|Test|E|Lead 7991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007992|107992|989898|1|9999007992|MR|Test|E|Lead 7992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007993|107993|989898|1|9999007993|MR|Test|E|Lead 7993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007994|107994|989898|1|9999007994|MR|Test|E|Lead 7994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007995|107995|989898|1|9999007995|MR|Test|E|Lead 7995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007996|107996|989898|1|9999007996|MR|Test|E|Lead 7996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007997|107997|989898|1|9999007997|MR|Test|E|Lead 7997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007998|107998|989898|1|9999007998|MR|Test|E|Lead 7998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1007999|107999|989898|1|9999007999|MR|Test|E|Lead 7999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008000|108000|989898|1|9999008000|MR|Test|E|Lead 8000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008001|108001|989898|1|9999008001|MR|Test|E|Lead 8001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008002|108002|989898|1|9999008002|MR|Test|E|Lead 8002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008003|108003|989898|1|9999008003|MR|Test|E|Lead 8003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008004|108004|989898|1|9999008004|MR|Test|E|Lead 8004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008005|108005|989898|1|9999008005|MR|Test|E|Lead 8005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008006|108006|989898|1|9999008006|MR|Test|E|Lead 8006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008007|108007|989898|1|9999008007|MR|Test|E|Lead 8007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008008|108008|989898|1|9999008008|MR|Test|E|Lead 8008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008009|108009|989898|1|9999008009|MR|Test|E|Lead 8009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008010|108010|989898|1|9999008010|MR|Test|E|Lead 8010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008011|108011|989898|1|9999008011|MR|Test|E|Lead 8011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008012|108012|989898|1|9999008012|MR|Test|E|Lead 8012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008013|108013|989898|1|9999008013|MR|Test|E|Lead 8013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008014|108014|989898|1|9999008014|MR|Test|E|Lead 8014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008015|108015|989898|1|9999008015|MR|Test|E|Lead 8015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008016|108016|989898|1|9999008016|MR|Test|E|Lead 8016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008017|108017|989898|1|9999008017|MR|Test|E|Lead 8017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008018|108018|989898|1|9999008018|MR|Test|E|Lead 8018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008019|108019|989898|1|9999008019|MR|Test|E|Lead 8019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008020|108020|989898|1|9999008020|MR|Test|E|Lead 8020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008021|108021|989898|1|9999008021|MR|Test|E|Lead 8021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008022|108022|989898|1|9999008022|MR|Test|E|Lead 8022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008023|108023|989898|1|9999008023|MR|Test|E|Lead 8023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008024|108024|989898|1|9999008024|MR|Test|E|Lead 8024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008025|108025|989898|1|9999008025|MR|Test|E|Lead 8025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008026|108026|989898|1|9999008026|MR|Test|E|Lead 8026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008027|108027|989898|1|9999008027|MR|Test|E|Lead 8027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008028|108028|989898|1|9999008028|MR|Test|E|Lead 8028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008029|108029|989898|1|9999008029|MR|Test|E|Lead 8029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008030|108030|989898|1|9999008030|MR|Test|E|Lead 8030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008031|108031|989898|1|9999008031|MR|Test|E|Lead 8031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008032|108032|989898|1|9999008032|MR|Test|E|Lead 8032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008033|108033|989898|1|9999008033|MR|Test|E|Lead 8033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008034|108034|989898|1|9999008034|MR|Test|E|Lead 8034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008035|108035|989898|1|9999008035|MR|Test|E|Lead 8035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008036|108036|989898|1|9999008036|MR|Test|E|Lead 8036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008037|108037|989898|1|9999008037|MR|Test|E|Lead 8037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008038|108038|989898|1|9999008038|MR|Test|E|Lead 8038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008039|108039|989898|1|9999008039|MR|Test|E|Lead 8039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008040|108040|989898|1|9999008040|MR|Test|E|Lead 8040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008041|108041|989898|1|9999008041|MR|Test|E|Lead 8041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008042|108042|989898|1|9999008042|MR|Test|E|Lead 8042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008043|108043|989898|1|9999008043|MR|Test|E|Lead 8043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008044|108044|989898|1|9999008044|MR|Test|E|Lead 8044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008045|108045|989898|1|9999008045|MR|Test|E|Lead 8045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008046|108046|989898|1|9999008046|MR|Test|E|Lead 8046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008047|108047|989898|1|9999008047|MR|Test|E|Lead 8047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008048|108048|989898|1|9999008048|MR|Test|E|Lead 8048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008049|108049|989898|1|9999008049|MR|Test|E|Lead 8049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008050|108050|989898|1|9999008050|MR|Test|E|Lead 8050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008051|108051|989898|1|9999008051|MR|Test|E|Lead 8051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008052|108052|989898|1|9999008052|MR|Test|E|Lead 8052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008053|108053|989898|1|9999008053|MR|Test|E|Lead 8053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008054|108054|989898|1|9999008054|MR|Test|E|Lead 8054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008055|108055|989898|1|9999008055|MR|Test|E|Lead 8055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008056|108056|989898|1|9999008056|MR|Test|E|Lead 8056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008057|108057|989898|1|9999008057|MR|Test|E|Lead 8057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008058|108058|989898|1|9999008058|MR|Test|E|Lead 8058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008059|108059|989898|1|9999008059|MR|Test|E|Lead 8059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008060|108060|989898|1|9999008060|MR|Test|E|Lead 8060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008061|108061|989898|1|9999008061|MR|Test|E|Lead 8061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008062|108062|989898|1|9999008062|MR|Test|E|Lead 8062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008063|108063|989898|1|9999008063|MR|Test|E|Lead 8063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008064|108064|989898|1|9999008064|MR|Test|E|Lead 8064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008065|108065|989898|1|9999008065|MR|Test|E|Lead 8065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008066|108066|989898|1|9999008066|MR|Test|E|Lead 8066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008067|108067|989898|1|9999008067|MR|Test|E|Lead 8067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008068|108068|989898|1|9999008068|MR|Test|E|Lead 8068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008069|108069|989898|1|9999008069|MR|Test|E|Lead 8069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008070|108070|989898|1|9999008070|MR|Test|E|Lead 8070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008071|108071|989898|1|9999008071|MR|Test|E|Lead 8071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008072|108072|989898|1|9999008072|MR|Test|E|Lead 8072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008073|108073|989898|1|9999008073|MR|Test|E|Lead 8073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008074|108074|989898|1|9999008074|MR|Test|E|Lead 8074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008075|108075|989898|1|9999008075|MR|Test|E|Lead 8075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008076|108076|989898|1|9999008076|MR|Test|E|Lead 8076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008077|108077|989898|1|9999008077|MR|Test|E|Lead 8077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008078|108078|989898|1|9999008078|MR|Test|E|Lead 8078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008079|108079|989898|1|9999008079|MR|Test|E|Lead 8079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008080|108080|989898|1|9999008080|MR|Test|E|Lead 8080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008081|108081|989898|1|9999008081|MR|Test|E|Lead 8081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008082|108082|989898|1|9999008082|MR|Test|E|Lead 8082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008083|108083|989898|1|9999008083|MR|Test|E|Lead 8083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008084|108084|989898|1|9999008084|MR|Test|E|Lead 8084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008085|108085|989898|1|9999008085|MR|Test|E|Lead 8085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008086|108086|989898|1|9999008086|MR|Test|E|Lead 8086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008087|108087|989898|1|9999008087|MR|Test|E|Lead 8087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008088|108088|989898|1|9999008088|MR|Test|E|Lead 8088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008089|108089|989898|1|9999008089|MR|Test|E|Lead 8089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008090|108090|989898|1|9999008090|MR|Test|E|Lead 8090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008091|108091|989898|1|9999008091|MR|Test|E|Lead 8091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008092|108092|989898|1|9999008092|MR|Test|E|Lead 8092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008093|108093|989898|1|9999008093|MR|Test|E|Lead 8093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008094|108094|989898|1|9999008094|MR|Test|E|Lead 8094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008095|108095|989898|1|9999008095|MR|Test|E|Lead 8095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008096|108096|989898|1|9999008096|MR|Test|E|Lead 8096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008097|108097|989898|1|9999008097|MR|Test|E|Lead 8097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008098|108098|989898|1|9999008098|MR|Test|E|Lead 8098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008099|108099|989898|1|9999008099|MR|Test|E|Lead 8099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008100|108100|989898|1|9999008100|MR|Test|E|Lead 8100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008101|108101|989898|1|9999008101|MR|Test|E|Lead 8101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008102|108102|989898|1|9999008102|MR|Test|E|Lead 8102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008103|108103|989898|1|9999008103|MR|Test|E|Lead 8103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008104|108104|989898|1|9999008104|MR|Test|E|Lead 8104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008105|108105|989898|1|9999008105|MR|Test|E|Lead 8105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008106|108106|989898|1|9999008106|MR|Test|E|Lead 8106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008107|108107|989898|1|9999008107|MR|Test|E|Lead 8107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008108|108108|989898|1|9999008108|MR|Test|E|Lead 8108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008109|108109|989898|1|9999008109|MR|Test|E|Lead 8109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008110|108110|989898|1|9999008110|MR|Test|E|Lead 8110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008111|108111|989898|1|9999008111|MR|Test|E|Lead 8111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008112|108112|989898|1|9999008112|MR|Test|E|Lead 8112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008113|108113|989898|1|9999008113|MR|Test|E|Lead 8113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008114|108114|989898|1|9999008114|MR|Test|E|Lead 8114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008115|108115|989898|1|9999008115|MR|Test|E|Lead 8115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008116|108116|989898|1|9999008116|MR|Test|E|Lead 8116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008117|108117|989898|1|9999008117|MR|Test|E|Lead 8117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008118|108118|989898|1|9999008118|MR|Test|E|Lead 8118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008119|108119|989898|1|9999008119|MR|Test|E|Lead 8119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008120|108120|989898|1|9999008120|MR|Test|E|Lead 8120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008121|108121|989898|1|9999008121|MR|Test|E|Lead 8121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008122|108122|989898|1|9999008122|MR|Test|E|Lead 8122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008123|108123|989898|1|9999008123|MR|Test|E|Lead 8123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008124|108124|989898|1|9999008124|MR|Test|E|Lead 8124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008125|108125|989898|1|9999008125|MR|Test|E|Lead 8125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008126|108126|989898|1|9999008126|MR|Test|E|Lead 8126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008127|108127|989898|1|9999008127|MR|Test|E|Lead 8127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008128|108128|989898|1|9999008128|MR|Test|E|Lead 8128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008129|108129|989898|1|9999008129|MR|Test|E|Lead 8129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008130|108130|989898|1|9999008130|MR|Test|E|Lead 8130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008131|108131|989898|1|9999008131|MR|Test|E|Lead 8131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008132|108132|989898|1|9999008132|MR|Test|E|Lead 8132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008133|108133|989898|1|9999008133|MR|Test|E|Lead 8133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008134|108134|989898|1|9999008134|MR|Test|E|Lead 8134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008135|108135|989898|1|9999008135|MR|Test|E|Lead 8135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008136|108136|989898|1|9999008136|MR|Test|E|Lead 8136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008137|108137|989898|1|9999008137|MR|Test|E|Lead 8137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008138|108138|989898|1|9999008138|MR|Test|E|Lead 8138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008139|108139|989898|1|9999008139|MR|Test|E|Lead 8139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008140|108140|989898|1|9999008140|MR|Test|E|Lead 8140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008141|108141|989898|1|9999008141|MR|Test|E|Lead 8141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008142|108142|989898|1|9999008142|MR|Test|E|Lead 8142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008143|108143|989898|1|9999008143|MR|Test|E|Lead 8143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008144|108144|989898|1|9999008144|MR|Test|E|Lead 8144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008145|108145|989898|1|9999008145|MR|Test|E|Lead 8145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008146|108146|989898|1|9999008146|MR|Test|E|Lead 8146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008147|108147|989898|1|9999008147|MR|Test|E|Lead 8147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008148|108148|989898|1|9999008148|MR|Test|E|Lead 8148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008149|108149|989898|1|9999008149|MR|Test|E|Lead 8149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008150|108150|989898|1|9999008150|MR|Test|E|Lead 8150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008151|108151|989898|1|9999008151|MR|Test|E|Lead 8151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008152|108152|989898|1|9999008152|MR|Test|E|Lead 8152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008153|108153|989898|1|9999008153|MR|Test|E|Lead 8153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008154|108154|989898|1|9999008154|MR|Test|E|Lead 8154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008155|108155|989898|1|9999008155|MR|Test|E|Lead 8155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008156|108156|989898|1|9999008156|MR|Test|E|Lead 8156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008157|108157|989898|1|9999008157|MR|Test|E|Lead 8157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008158|108158|989898|1|9999008158|MR|Test|E|Lead 8158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008159|108159|989898|1|9999008159|MR|Test|E|Lead 8159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008160|108160|989898|1|9999008160|MR|Test|E|Lead 8160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008161|108161|989898|1|9999008161|MR|Test|E|Lead 8161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008162|108162|989898|1|9999008162|MR|Test|E|Lead 8162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008163|108163|989898|1|9999008163|MR|Test|E|Lead 8163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008164|108164|989898|1|9999008164|MR|Test|E|Lead 8164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008165|108165|989898|1|9999008165|MR|Test|E|Lead 8165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008166|108166|989898|1|9999008166|MR|Test|E|Lead 8166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008167|108167|989898|1|9999008167|MR|Test|E|Lead 8167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008168|108168|989898|1|9999008168|MR|Test|E|Lead 8168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008169|108169|989898|1|9999008169|MR|Test|E|Lead 8169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008170|108170|989898|1|9999008170|MR|Test|E|Lead 8170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008171|108171|989898|1|9999008171|MR|Test|E|Lead 8171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008172|108172|989898|1|9999008172|MR|Test|E|Lead 8172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008173|108173|989898|1|9999008173|MR|Test|E|Lead 8173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008174|108174|989898|1|9999008174|MR|Test|E|Lead 8174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008175|108175|989898|1|9999008175|MR|Test|E|Lead 8175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008176|108176|989898|1|9999008176|MR|Test|E|Lead 8176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008177|108177|989898|1|9999008177|MR|Test|E|Lead 8177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008178|108178|989898|1|9999008178|MR|Test|E|Lead 8178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008179|108179|989898|1|9999008179|MR|Test|E|Lead 8179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008180|108180|989898|1|9999008180|MR|Test|E|Lead 8180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008181|108181|989898|1|9999008181|MR|Test|E|Lead 8181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008182|108182|989898|1|9999008182|MR|Test|E|Lead 8182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008183|108183|989898|1|9999008183|MR|Test|E|Lead 8183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008184|108184|989898|1|9999008184|MR|Test|E|Lead 8184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008185|108185|989898|1|9999008185|MR|Test|E|Lead 8185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008186|108186|989898|1|9999008186|MR|Test|E|Lead 8186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008187|108187|989898|1|9999008187|MR|Test|E|Lead 8187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008188|108188|989898|1|9999008188|MR|Test|E|Lead 8188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008189|108189|989898|1|9999008189|MR|Test|E|Lead 8189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008190|108190|989898|1|9999008190|MR|Test|E|Lead 8190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008191|108191|989898|1|9999008191|MR|Test|E|Lead 8191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008192|108192|989898|1|9999008192|MR|Test|E|Lead 8192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008193|108193|989898|1|9999008193|MR|Test|E|Lead 8193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008194|108194|989898|1|9999008194|MR|Test|E|Lead 8194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008195|108195|989898|1|9999008195|MR|Test|E|Lead 8195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008196|108196|989898|1|9999008196|MR|Test|E|Lead 8196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008197|108197|989898|1|9999008197|MR|Test|E|Lead 8197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008198|108198|989898|1|9999008198|MR|Test|E|Lead 8198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008199|108199|989898|1|9999008199|MR|Test|E|Lead 8199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008200|108200|989898|1|9999008200|MR|Test|E|Lead 8200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008201|108201|989898|1|9999008201|MR|Test|E|Lead 8201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008202|108202|989898|1|9999008202|MR|Test|E|Lead 8202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008203|108203|989898|1|9999008203|MR|Test|E|Lead 8203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008204|108204|989898|1|9999008204|MR|Test|E|Lead 8204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008205|108205|989898|1|9999008205|MR|Test|E|Lead 8205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008206|108206|989898|1|9999008206|MR|Test|E|Lead 8206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008207|108207|989898|1|9999008207|MR|Test|E|Lead 8207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008208|108208|989898|1|9999008208|MR|Test|E|Lead 8208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008209|108209|989898|1|9999008209|MR|Test|E|Lead 8209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008210|108210|989898|1|9999008210|MR|Test|E|Lead 8210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008211|108211|989898|1|9999008211|MR|Test|E|Lead 8211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008212|108212|989898|1|9999008212|MR|Test|E|Lead 8212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008213|108213|989898|1|9999008213|MR|Test|E|Lead 8213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008214|108214|989898|1|9999008214|MR|Test|E|Lead 8214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008215|108215|989898|1|9999008215|MR|Test|E|Lead 8215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008216|108216|989898|1|9999008216|MR|Test|E|Lead 8216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008217|108217|989898|1|9999008217|MR|Test|E|Lead 8217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008218|108218|989898|1|9999008218|MR|Test|E|Lead 8218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008219|108219|989898|1|9999008219|MR|Test|E|Lead 8219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008220|108220|989898|1|9999008220|MR|Test|E|Lead 8220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008221|108221|989898|1|9999008221|MR|Test|E|Lead 8221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008222|108222|989898|1|9999008222|MR|Test|E|Lead 8222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008223|108223|989898|1|9999008223|MR|Test|E|Lead 8223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008224|108224|989898|1|9999008224|MR|Test|E|Lead 8224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008225|108225|989898|1|9999008225|MR|Test|E|Lead 8225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008226|108226|989898|1|9999008226|MR|Test|E|Lead 8226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008227|108227|989898|1|9999008227|MR|Test|E|Lead 8227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008228|108228|989898|1|9999008228|MR|Test|E|Lead 8228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008229|108229|989898|1|9999008229|MR|Test|E|Lead 8229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008230|108230|989898|1|9999008230|MR|Test|E|Lead 8230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008231|108231|989898|1|9999008231|MR|Test|E|Lead 8231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008232|108232|989898|1|9999008232|MR|Test|E|Lead 8232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008233|108233|989898|1|9999008233|MR|Test|E|Lead 8233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008234|108234|989898|1|9999008234|MR|Test|E|Lead 8234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008235|108235|989898|1|9999008235|MR|Test|E|Lead 8235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008236|108236|989898|1|9999008236|MR|Test|E|Lead 8236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008237|108237|989898|1|9999008237|MR|Test|E|Lead 8237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008238|108238|989898|1|9999008238|MR|Test|E|Lead 8238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008239|108239|989898|1|9999008239|MR|Test|E|Lead 8239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008240|108240|989898|1|9999008240|MR|Test|E|Lead 8240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008241|108241|989898|1|9999008241|MR|Test|E|Lead 8241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008242|108242|989898|1|9999008242|MR|Test|E|Lead 8242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008243|108243|989898|1|9999008243|MR|Test|E|Lead 8243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008244|108244|989898|1|9999008244|MR|Test|E|Lead 8244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008245|108245|989898|1|9999008245|MR|Test|E|Lead 8245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008246|108246|989898|1|9999008246|MR|Test|E|Lead 8246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008247|108247|989898|1|9999008247|MR|Test|E|Lead 8247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008248|108248|989898|1|9999008248|MR|Test|E|Lead 8248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008249|108249|989898|1|9999008249|MR|Test|E|Lead 8249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008250|108250|989898|1|9999008250|MR|Test|E|Lead 8250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008251|108251|989898|1|9999008251|MR|Test|E|Lead 8251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008252|108252|989898|1|9999008252|MR|Test|E|Lead 8252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008253|108253|989898|1|9999008253|MR|Test|E|Lead 8253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008254|108254|989898|1|9999008254|MR|Test|E|Lead 8254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008255|108255|989898|1|9999008255|MR|Test|E|Lead 8255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008256|108256|989898|1|9999008256|MR|Test|E|Lead 8256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008257|108257|989898|1|9999008257|MR|Test|E|Lead 8257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008258|108258|989898|1|9999008258|MR|Test|E|Lead 8258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008259|108259|989898|1|9999008259|MR|Test|E|Lead 8259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008260|108260|989898|1|9999008260|MR|Test|E|Lead 8260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008261|108261|989898|1|9999008261|MR|Test|E|Lead 8261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008262|108262|989898|1|9999008262|MR|Test|E|Lead 8262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008263|108263|989898|1|9999008263|MR|Test|E|Lead 8263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008264|108264|989898|1|9999008264|MR|Test|E|Lead 8264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008265|108265|989898|1|9999008265|MR|Test|E|Lead 8265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008266|108266|989898|1|9999008266|MR|Test|E|Lead 8266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008267|108267|989898|1|9999008267|MR|Test|E|Lead 8267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008268|108268|989898|1|9999008268|MR|Test|E|Lead 8268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008269|108269|989898|1|9999008269|MR|Test|E|Lead 8269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008270|108270|989898|1|9999008270|MR|Test|E|Lead 8270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008271|108271|989898|1|9999008271|MR|Test|E|Lead 8271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008272|108272|989898|1|9999008272|MR|Test|E|Lead 8272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008273|108273|989898|1|9999008273|MR|Test|E|Lead 8273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008274|108274|989898|1|9999008274|MR|Test|E|Lead 8274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008275|108275|989898|1|9999008275|MR|Test|E|Lead 8275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008276|108276|989898|1|9999008276|MR|Test|E|Lead 8276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008277|108277|989898|1|9999008277|MR|Test|E|Lead 8277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008278|108278|989898|1|9999008278|MR|Test|E|Lead 8278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008279|108279|989898|1|9999008279|MR|Test|E|Lead 8279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008280|108280|989898|1|9999008280|MR|Test|E|Lead 8280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008281|108281|989898|1|9999008281|MR|Test|E|Lead 8281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008282|108282|989898|1|9999008282|MR|Test|E|Lead 8282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008283|108283|989898|1|9999008283|MR|Test|E|Lead 8283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008284|108284|989898|1|9999008284|MR|Test|E|Lead 8284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008285|108285|989898|1|9999008285|MR|Test|E|Lead 8285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008286|108286|989898|1|9999008286|MR|Test|E|Lead 8286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008287|108287|989898|1|9999008287|MR|Test|E|Lead 8287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008288|108288|989898|1|9999008288|MR|Test|E|Lead 8288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008289|108289|989898|1|9999008289|MR|Test|E|Lead 8289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008290|108290|989898|1|9999008290|MR|Test|E|Lead 8290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008291|108291|989898|1|9999008291|MR|Test|E|Lead 8291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008292|108292|989898|1|9999008292|MR|Test|E|Lead 8292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008293|108293|989898|1|9999008293|MR|Test|E|Lead 8293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008294|108294|989898|1|9999008294|MR|Test|E|Lead 8294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008295|108295|989898|1|9999008295|MR|Test|E|Lead 8295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008296|108296|989898|1|9999008296|MR|Test|E|Lead 8296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008297|108297|989898|1|9999008297|MR|Test|E|Lead 8297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008298|108298|989898|1|9999008298|MR|Test|E|Lead 8298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008299|108299|989898|1|9999008299|MR|Test|E|Lead 8299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008300|108300|989898|1|9999008300|MR|Test|E|Lead 8300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008301|108301|989898|1|9999008301|MR|Test|E|Lead 8301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008302|108302|989898|1|9999008302|MR|Test|E|Lead 8302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008303|108303|989898|1|9999008303|MR|Test|E|Lead 8303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008304|108304|989898|1|9999008304|MR|Test|E|Lead 8304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008305|108305|989898|1|9999008305|MR|Test|E|Lead 8305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008306|108306|989898|1|9999008306|MR|Test|E|Lead 8306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008307|108307|989898|1|9999008307|MR|Test|E|Lead 8307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008308|108308|989898|1|9999008308|MR|Test|E|Lead 8308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008309|108309|989898|1|9999008309|MR|Test|E|Lead 8309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008310|108310|989898|1|9999008310|MR|Test|E|Lead 8310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008311|108311|989898|1|9999008311|MR|Test|E|Lead 8311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008312|108312|989898|1|9999008312|MR|Test|E|Lead 8312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008313|108313|989898|1|9999008313|MR|Test|E|Lead 8313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008314|108314|989898|1|9999008314|MR|Test|E|Lead 8314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008315|108315|989898|1|9999008315|MR|Test|E|Lead 8315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008316|108316|989898|1|9999008316|MR|Test|E|Lead 8316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008317|108317|989898|1|9999008317|MR|Test|E|Lead 8317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008318|108318|989898|1|9999008318|MR|Test|E|Lead 8318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008319|108319|989898|1|9999008319|MR|Test|E|Lead 8319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008320|108320|989898|1|9999008320|MR|Test|E|Lead 8320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008321|108321|989898|1|9999008321|MR|Test|E|Lead 8321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008322|108322|989898|1|9999008322|MR|Test|E|Lead 8322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008323|108323|989898|1|9999008323|MR|Test|E|Lead 8323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008324|108324|989898|1|9999008324|MR|Test|E|Lead 8324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008325|108325|989898|1|9999008325|MR|Test|E|Lead 8325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008326|108326|989898|1|9999008326|MR|Test|E|Lead 8326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008327|108327|989898|1|9999008327|MR|Test|E|Lead 8327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008328|108328|989898|1|9999008328|MR|Test|E|Lead 8328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008329|108329|989898|1|9999008329|MR|Test|E|Lead 8329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008330|108330|989898|1|9999008330|MR|Test|E|Lead 8330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008331|108331|989898|1|9999008331|MR|Test|E|Lead 8331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008332|108332|989898|1|9999008332|MR|Test|E|Lead 8332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008333|108333|989898|1|9999008333|MR|Test|E|Lead 8333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008334|108334|989898|1|9999008334|MR|Test|E|Lead 8334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008335|108335|989898|1|9999008335|MR|Test|E|Lead 8335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008336|108336|989898|1|9999008336|MR|Test|E|Lead 8336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008337|108337|989898|1|9999008337|MR|Test|E|Lead 8337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008338|108338|989898|1|9999008338|MR|Test|E|Lead 8338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008339|108339|989898|1|9999008339|MR|Test|E|Lead 8339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008340|108340|989898|1|9999008340|MR|Test|E|Lead 8340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008341|108341|989898|1|9999008341|MR|Test|E|Lead 8341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008342|108342|989898|1|9999008342|MR|Test|E|Lead 8342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008343|108343|989898|1|9999008343|MR|Test|E|Lead 8343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008344|108344|989898|1|9999008344|MR|Test|E|Lead 8344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008345|108345|989898|1|9999008345|MR|Test|E|Lead 8345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008346|108346|989898|1|9999008346|MR|Test|E|Lead 8346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008347|108347|989898|1|9999008347|MR|Test|E|Lead 8347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008348|108348|989898|1|9999008348|MR|Test|E|Lead 8348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008349|108349|989898|1|9999008349|MR|Test|E|Lead 8349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008350|108350|989898|1|9999008350|MR|Test|E|Lead 8350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008351|108351|989898|1|9999008351|MR|Test|E|Lead 8351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008352|108352|989898|1|9999008352|MR|Test|E|Lead 8352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008353|108353|989898|1|9999008353|MR|Test|E|Lead 8353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008354|108354|989898|1|9999008354|MR|Test|E|Lead 8354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008355|108355|989898|1|9999008355|MR|Test|E|Lead 8355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008356|108356|989898|1|9999008356|MR|Test|E|Lead 8356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008357|108357|989898|1|9999008357|MR|Test|E|Lead 8357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008358|108358|989898|1|9999008358|MR|Test|E|Lead 8358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008359|108359|989898|1|9999008359|MR|Test|E|Lead 8359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008360|108360|989898|1|9999008360|MR|Test|E|Lead 8360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008361|108361|989898|1|9999008361|MR|Test|E|Lead 8361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008362|108362|989898|1|9999008362|MR|Test|E|Lead 8362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008363|108363|989898|1|9999008363|MR|Test|E|Lead 8363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008364|108364|989898|1|9999008364|MR|Test|E|Lead 8364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008365|108365|989898|1|9999008365|MR|Test|E|Lead 8365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008366|108366|989898|1|9999008366|MR|Test|E|Lead 8366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008367|108367|989898|1|9999008367|MR|Test|E|Lead 8367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008368|108368|989898|1|9999008368|MR|Test|E|Lead 8368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008369|108369|989898|1|9999008369|MR|Test|E|Lead 8369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008370|108370|989898|1|9999008370|MR|Test|E|Lead 8370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008371|108371|989898|1|9999008371|MR|Test|E|Lead 8371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008372|108372|989898|1|9999008372|MR|Test|E|Lead 8372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008373|108373|989898|1|9999008373|MR|Test|E|Lead 8373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008374|108374|989898|1|9999008374|MR|Test|E|Lead 8374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008375|108375|989898|1|9999008375|MR|Test|E|Lead 8375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008376|108376|989898|1|9999008376|MR|Test|E|Lead 8376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008377|108377|989898|1|9999008377|MR|Test|E|Lead 8377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008378|108378|989898|1|9999008378|MR|Test|E|Lead 8378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008379|108379|989898|1|9999008379|MR|Test|E|Lead 8379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008380|108380|989898|1|9999008380|MR|Test|E|Lead 8380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008381|108381|989898|1|9999008381|MR|Test|E|Lead 8381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008382|108382|989898|1|9999008382|MR|Test|E|Lead 8382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008383|108383|989898|1|9999008383|MR|Test|E|Lead 8383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008384|108384|989898|1|9999008384|MR|Test|E|Lead 8384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008385|108385|989898|1|9999008385|MR|Test|E|Lead 8385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008386|108386|989898|1|9999008386|MR|Test|E|Lead 8386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008387|108387|989898|1|9999008387|MR|Test|E|Lead 8387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008388|108388|989898|1|9999008388|MR|Test|E|Lead 8388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008389|108389|989898|1|9999008389|MR|Test|E|Lead 8389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008390|108390|989898|1|9999008390|MR|Test|E|Lead 8390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008391|108391|989898|1|9999008391|MR|Test|E|Lead 8391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008392|108392|989898|1|9999008392|MR|Test|E|Lead 8392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008393|108393|989898|1|9999008393|MR|Test|E|Lead 8393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008394|108394|989898|1|9999008394|MR|Test|E|Lead 8394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008395|108395|989898|1|9999008395|MR|Test|E|Lead 8395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008396|108396|989898|1|9999008396|MR|Test|E|Lead 8396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008397|108397|989898|1|9999008397|MR|Test|E|Lead 8397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008398|108398|989898|1|9999008398|MR|Test|E|Lead 8398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008399|108399|989898|1|9999008399|MR|Test|E|Lead 8399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008400|108400|989898|1|9999008400|MR|Test|E|Lead 8400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008401|108401|989898|1|9999008401|MR|Test|E|Lead 8401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008402|108402|989898|1|9999008402|MR|Test|E|Lead 8402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008403|108403|989898|1|9999008403|MR|Test|E|Lead 8403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008404|108404|989898|1|9999008404|MR|Test|E|Lead 8404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008405|108405|989898|1|9999008405|MR|Test|E|Lead 8405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008406|108406|989898|1|9999008406|MR|Test|E|Lead 8406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008407|108407|989898|1|9999008407|MR|Test|E|Lead 8407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008408|108408|989898|1|9999008408|MR|Test|E|Lead 8408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008409|108409|989898|1|9999008409|MR|Test|E|Lead 8409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008410|108410|989898|1|9999008410|MR|Test|E|Lead 8410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008411|108411|989898|1|9999008411|MR|Test|E|Lead 8411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008412|108412|989898|1|9999008412|MR|Test|E|Lead 8412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008413|108413|989898|1|9999008413|MR|Test|E|Lead 8413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008414|108414|989898|1|9999008414|MR|Test|E|Lead 8414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008415|108415|989898|1|9999008415|MR|Test|E|Lead 8415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008416|108416|989898|1|9999008416|MR|Test|E|Lead 8416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008417|108417|989898|1|9999008417|MR|Test|E|Lead 8417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008418|108418|989898|1|9999008418|MR|Test|E|Lead 8418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008419|108419|989898|1|9999008419|MR|Test|E|Lead 8419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008420|108420|989898|1|9999008420|MR|Test|E|Lead 8420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008421|108421|989898|1|9999008421|MR|Test|E|Lead 8421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008422|108422|989898|1|9999008422|MR|Test|E|Lead 8422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008423|108423|989898|1|9999008423|MR|Test|E|Lead 8423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008424|108424|989898|1|9999008424|MR|Test|E|Lead 8424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008425|108425|989898|1|9999008425|MR|Test|E|Lead 8425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008426|108426|989898|1|9999008426|MR|Test|E|Lead 8426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008427|108427|989898|1|9999008427|MR|Test|E|Lead 8427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008428|108428|989898|1|9999008428|MR|Test|E|Lead 8428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008429|108429|989898|1|9999008429|MR|Test|E|Lead 8429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008430|108430|989898|1|9999008430|MR|Test|E|Lead 8430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008431|108431|989898|1|9999008431|MR|Test|E|Lead 8431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008432|108432|989898|1|9999008432|MR|Test|E|Lead 8432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008433|108433|989898|1|9999008433|MR|Test|E|Lead 8433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008434|108434|989898|1|9999008434|MR|Test|E|Lead 8434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008435|108435|989898|1|9999008435|MR|Test|E|Lead 8435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008436|108436|989898|1|9999008436|MR|Test|E|Lead 8436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008437|108437|989898|1|9999008437|MR|Test|E|Lead 8437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008438|108438|989898|1|9999008438|MR|Test|E|Lead 8438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008439|108439|989898|1|9999008439|MR|Test|E|Lead 8439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008440|108440|989898|1|9999008440|MR|Test|E|Lead 8440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008441|108441|989898|1|9999008441|MR|Test|E|Lead 8441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008442|108442|989898|1|9999008442|MR|Test|E|Lead 8442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008443|108443|989898|1|9999008443|MR|Test|E|Lead 8443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008444|108444|989898|1|9999008444|MR|Test|E|Lead 8444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008445|108445|989898|1|9999008445|MR|Test|E|Lead 8445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008446|108446|989898|1|9999008446|MR|Test|E|Lead 8446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008447|108447|989898|1|9999008447|MR|Test|E|Lead 8447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008448|108448|989898|1|9999008448|MR|Test|E|Lead 8448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008449|108449|989898|1|9999008449|MR|Test|E|Lead 8449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008450|108450|989898|1|9999008450|MR|Test|E|Lead 8450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008451|108451|989898|1|9999008451|MR|Test|E|Lead 8451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008452|108452|989898|1|9999008452|MR|Test|E|Lead 8452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008453|108453|989898|1|9999008453|MR|Test|E|Lead 8453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008454|108454|989898|1|9999008454|MR|Test|E|Lead 8454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008455|108455|989898|1|9999008455|MR|Test|E|Lead 8455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008456|108456|989898|1|9999008456|MR|Test|E|Lead 8456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008457|108457|989898|1|9999008457|MR|Test|E|Lead 8457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008458|108458|989898|1|9999008458|MR|Test|E|Lead 8458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008459|108459|989898|1|9999008459|MR|Test|E|Lead 8459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008460|108460|989898|1|9999008460|MR|Test|E|Lead 8460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008461|108461|989898|1|9999008461|MR|Test|E|Lead 8461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008462|108462|989898|1|9999008462|MR|Test|E|Lead 8462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008463|108463|989898|1|9999008463|MR|Test|E|Lead 8463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008464|108464|989898|1|9999008464|MR|Test|E|Lead 8464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008465|108465|989898|1|9999008465|MR|Test|E|Lead 8465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008466|108466|989898|1|9999008466|MR|Test|E|Lead 8466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008467|108467|989898|1|9999008467|MR|Test|E|Lead 8467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008468|108468|989898|1|9999008468|MR|Test|E|Lead 8468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008469|108469|989898|1|9999008469|MR|Test|E|Lead 8469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008470|108470|989898|1|9999008470|MR|Test|E|Lead 8470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008471|108471|989898|1|9999008471|MR|Test|E|Lead 8471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008472|108472|989898|1|9999008472|MR|Test|E|Lead 8472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008473|108473|989898|1|9999008473|MR|Test|E|Lead 8473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008474|108474|989898|1|9999008474|MR|Test|E|Lead 8474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008475|108475|989898|1|9999008475|MR|Test|E|Lead 8475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008476|108476|989898|1|9999008476|MR|Test|E|Lead 8476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008477|108477|989898|1|9999008477|MR|Test|E|Lead 8477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008478|108478|989898|1|9999008478|MR|Test|E|Lead 8478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008479|108479|989898|1|9999008479|MR|Test|E|Lead 8479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008480|108480|989898|1|9999008480|MR|Test|E|Lead 8480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008481|108481|989898|1|9999008481|MR|Test|E|Lead 8481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008482|108482|989898|1|9999008482|MR|Test|E|Lead 8482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008483|108483|989898|1|9999008483|MR|Test|E|Lead 8483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008484|108484|989898|1|9999008484|MR|Test|E|Lead 8484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008485|108485|989898|1|9999008485|MR|Test|E|Lead 8485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008486|108486|989898|1|9999008486|MR|Test|E|Lead 8486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008487|108487|989898|1|9999008487|MR|Test|E|Lead 8487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008488|108488|989898|1|9999008488|MR|Test|E|Lead 8488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008489|108489|989898|1|9999008489|MR|Test|E|Lead 8489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008490|108490|989898|1|9999008490|MR|Test|E|Lead 8490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008491|108491|989898|1|9999008491|MR|Test|E|Lead 8491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008492|108492|989898|1|9999008492|MR|Test|E|Lead 8492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008493|108493|989898|1|9999008493|MR|Test|E|Lead 8493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008494|108494|989898|1|9999008494|MR|Test|E|Lead 8494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008495|108495|989898|1|9999008495|MR|Test|E|Lead 8495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008496|108496|989898|1|9999008496|MR|Test|E|Lead 8496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008497|108497|989898|1|9999008497|MR|Test|E|Lead 8497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008498|108498|989898|1|9999008498|MR|Test|E|Lead 8498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008499|108499|989898|1|9999008499|MR|Test|E|Lead 8499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008500|108500|989898|1|9999008500|MR|Test|E|Lead 8500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008501|108501|989898|1|9999008501|MR|Test|E|Lead 8501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008502|108502|989898|1|9999008502|MR|Test|E|Lead 8502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008503|108503|989898|1|9999008503|MR|Test|E|Lead 8503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008504|108504|989898|1|9999008504|MR|Test|E|Lead 8504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008505|108505|989898|1|9999008505|MR|Test|E|Lead 8505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008506|108506|989898|1|9999008506|MR|Test|E|Lead 8506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008507|108507|989898|1|9999008507|MR|Test|E|Lead 8507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008508|108508|989898|1|9999008508|MR|Test|E|Lead 8508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008509|108509|989898|1|9999008509|MR|Test|E|Lead 8509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008510|108510|989898|1|9999008510|MR|Test|E|Lead 8510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008511|108511|989898|1|9999008511|MR|Test|E|Lead 8511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008512|108512|989898|1|9999008512|MR|Test|E|Lead 8512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008513|108513|989898|1|9999008513|MR|Test|E|Lead 8513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008514|108514|989898|1|9999008514|MR|Test|E|Lead 8514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008515|108515|989898|1|9999008515|MR|Test|E|Lead 8515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008516|108516|989898|1|9999008516|MR|Test|E|Lead 8516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008517|108517|989898|1|9999008517|MR|Test|E|Lead 8517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008518|108518|989898|1|9999008518|MR|Test|E|Lead 8518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008519|108519|989898|1|9999008519|MR|Test|E|Lead 8519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008520|108520|989898|1|9999008520|MR|Test|E|Lead 8520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008521|108521|989898|1|9999008521|MR|Test|E|Lead 8521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008522|108522|989898|1|9999008522|MR|Test|E|Lead 8522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008523|108523|989898|1|9999008523|MR|Test|E|Lead 8523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008524|108524|989898|1|9999008524|MR|Test|E|Lead 8524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008525|108525|989898|1|9999008525|MR|Test|E|Lead 8525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008526|108526|989898|1|9999008526|MR|Test|E|Lead 8526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008527|108527|989898|1|9999008527|MR|Test|E|Lead 8527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008528|108528|989898|1|9999008528|MR|Test|E|Lead 8528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008529|108529|989898|1|9999008529|MR|Test|E|Lead 8529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008530|108530|989898|1|9999008530|MR|Test|E|Lead 8530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008531|108531|989898|1|9999008531|MR|Test|E|Lead 8531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008532|108532|989898|1|9999008532|MR|Test|E|Lead 8532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008533|108533|989898|1|9999008533|MR|Test|E|Lead 8533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008534|108534|989898|1|9999008534|MR|Test|E|Lead 8534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008535|108535|989898|1|9999008535|MR|Test|E|Lead 8535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008536|108536|989898|1|9999008536|MR|Test|E|Lead 8536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008537|108537|989898|1|9999008537|MR|Test|E|Lead 8537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008538|108538|989898|1|9999008538|MR|Test|E|Lead 8538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008539|108539|989898|1|9999008539|MR|Test|E|Lead 8539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008540|108540|989898|1|9999008540|MR|Test|E|Lead 8540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008541|108541|989898|1|9999008541|MR|Test|E|Lead 8541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008542|108542|989898|1|9999008542|MR|Test|E|Lead 8542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008543|108543|989898|1|9999008543|MR|Test|E|Lead 8543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008544|108544|989898|1|9999008544|MR|Test|E|Lead 8544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008545|108545|989898|1|9999008545|MR|Test|E|Lead 8545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008546|108546|989898|1|9999008546|MR|Test|E|Lead 8546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008547|108547|989898|1|9999008547|MR|Test|E|Lead 8547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008548|108548|989898|1|9999008548|MR|Test|E|Lead 8548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008549|108549|989898|1|9999008549|MR|Test|E|Lead 8549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008550|108550|989898|1|9999008550|MR|Test|E|Lead 8550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008551|108551|989898|1|9999008551|MR|Test|E|Lead 8551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008552|108552|989898|1|9999008552|MR|Test|E|Lead 8552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008553|108553|989898|1|9999008553|MR|Test|E|Lead 8553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008554|108554|989898|1|9999008554|MR|Test|E|Lead 8554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008555|108555|989898|1|9999008555|MR|Test|E|Lead 8555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008556|108556|989898|1|9999008556|MR|Test|E|Lead 8556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008557|108557|989898|1|9999008557|MR|Test|E|Lead 8557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008558|108558|989898|1|9999008558|MR|Test|E|Lead 8558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008559|108559|989898|1|9999008559|MR|Test|E|Lead 8559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008560|108560|989898|1|9999008560|MR|Test|E|Lead 8560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008561|108561|989898|1|9999008561|MR|Test|E|Lead 8561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008562|108562|989898|1|9999008562|MR|Test|E|Lead 8562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008563|108563|989898|1|9999008563|MR|Test|E|Lead 8563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008564|108564|989898|1|9999008564|MR|Test|E|Lead 8564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008565|108565|989898|1|9999008565|MR|Test|E|Lead 8565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008566|108566|989898|1|9999008566|MR|Test|E|Lead 8566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008567|108567|989898|1|9999008567|MR|Test|E|Lead 8567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008568|108568|989898|1|9999008568|MR|Test|E|Lead 8568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008569|108569|989898|1|9999008569|MR|Test|E|Lead 8569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008570|108570|989898|1|9999008570|MR|Test|E|Lead 8570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008571|108571|989898|1|9999008571|MR|Test|E|Lead 8571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008572|108572|989898|1|9999008572|MR|Test|E|Lead 8572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008573|108573|989898|1|9999008573|MR|Test|E|Lead 8573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008574|108574|989898|1|9999008574|MR|Test|E|Lead 8574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008575|108575|989898|1|9999008575|MR|Test|E|Lead 8575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008576|108576|989898|1|9999008576|MR|Test|E|Lead 8576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008577|108577|989898|1|9999008577|MR|Test|E|Lead 8577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008578|108578|989898|1|9999008578|MR|Test|E|Lead 8578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008579|108579|989898|1|9999008579|MR|Test|E|Lead 8579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008580|108580|989898|1|9999008580|MR|Test|E|Lead 8580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008581|108581|989898|1|9999008581|MR|Test|E|Lead 8581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008582|108582|989898|1|9999008582|MR|Test|E|Lead 8582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008583|108583|989898|1|9999008583|MR|Test|E|Lead 8583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008584|108584|989898|1|9999008584|MR|Test|E|Lead 8584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008585|108585|989898|1|9999008585|MR|Test|E|Lead 8585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008586|108586|989898|1|9999008586|MR|Test|E|Lead 8586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008587|108587|989898|1|9999008587|MR|Test|E|Lead 8587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008588|108588|989898|1|9999008588|MR|Test|E|Lead 8588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008589|108589|989898|1|9999008589|MR|Test|E|Lead 8589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008590|108590|989898|1|9999008590|MR|Test|E|Lead 8590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008591|108591|989898|1|9999008591|MR|Test|E|Lead 8591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008592|108592|989898|1|9999008592|MR|Test|E|Lead 8592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008593|108593|989898|1|9999008593|MR|Test|E|Lead 8593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008594|108594|989898|1|9999008594|MR|Test|E|Lead 8594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008595|108595|989898|1|9999008595|MR|Test|E|Lead 8595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008596|108596|989898|1|9999008596|MR|Test|E|Lead 8596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008597|108597|989898|1|9999008597|MR|Test|E|Lead 8597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008598|108598|989898|1|9999008598|MR|Test|E|Lead 8598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008599|108599|989898|1|9999008599|MR|Test|E|Lead 8599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008600|108600|989898|1|9999008600|MR|Test|E|Lead 8600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008601|108601|989898|1|9999008601|MR|Test|E|Lead 8601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008602|108602|989898|1|9999008602|MR|Test|E|Lead 8602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008603|108603|989898|1|9999008603|MR|Test|E|Lead 8603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008604|108604|989898|1|9999008604|MR|Test|E|Lead 8604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008605|108605|989898|1|9999008605|MR|Test|E|Lead 8605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008606|108606|989898|1|9999008606|MR|Test|E|Lead 8606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008607|108607|989898|1|9999008607|MR|Test|E|Lead 8607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008608|108608|989898|1|9999008608|MR|Test|E|Lead 8608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008609|108609|989898|1|9999008609|MR|Test|E|Lead 8609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008610|108610|989898|1|9999008610|MR|Test|E|Lead 8610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008611|108611|989898|1|9999008611|MR|Test|E|Lead 8611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008612|108612|989898|1|9999008612|MR|Test|E|Lead 8612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008613|108613|989898|1|9999008613|MR|Test|E|Lead 8613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008614|108614|989898|1|9999008614|MR|Test|E|Lead 8614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008615|108615|989898|1|9999008615|MR|Test|E|Lead 8615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008616|108616|989898|1|9999008616|MR|Test|E|Lead 8616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008617|108617|989898|1|9999008617|MR|Test|E|Lead 8617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008618|108618|989898|1|9999008618|MR|Test|E|Lead 8618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008619|108619|989898|1|9999008619|MR|Test|E|Lead 8619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008620|108620|989898|1|9999008620|MR|Test|E|Lead 8620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008621|108621|989898|1|9999008621|MR|Test|E|Lead 8621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008622|108622|989898|1|9999008622|MR|Test|E|Lead 8622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008623|108623|989898|1|9999008623|MR|Test|E|Lead 8623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008624|108624|989898|1|9999008624|MR|Test|E|Lead 8624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008625|108625|989898|1|9999008625|MR|Test|E|Lead 8625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008626|108626|989898|1|9999008626|MR|Test|E|Lead 8626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008627|108627|989898|1|9999008627|MR|Test|E|Lead 8627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008628|108628|989898|1|9999008628|MR|Test|E|Lead 8628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008629|108629|989898|1|9999008629|MR|Test|E|Lead 8629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008630|108630|989898|1|9999008630|MR|Test|E|Lead 8630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008631|108631|989898|1|9999008631|MR|Test|E|Lead 8631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008632|108632|989898|1|9999008632|MR|Test|E|Lead 8632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008633|108633|989898|1|9999008633|MR|Test|E|Lead 8633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008634|108634|989898|1|9999008634|MR|Test|E|Lead 8634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008635|108635|989898|1|9999008635|MR|Test|E|Lead 8635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008636|108636|989898|1|9999008636|MR|Test|E|Lead 8636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008637|108637|989898|1|9999008637|MR|Test|E|Lead 8637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008638|108638|989898|1|9999008638|MR|Test|E|Lead 8638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008639|108639|989898|1|9999008639|MR|Test|E|Lead 8639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008640|108640|989898|1|9999008640|MR|Test|E|Lead 8640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008641|108641|989898|1|9999008641|MR|Test|E|Lead 8641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008642|108642|989898|1|9999008642|MR|Test|E|Lead 8642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008643|108643|989898|1|9999008643|MR|Test|E|Lead 8643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008644|108644|989898|1|9999008644|MR|Test|E|Lead 8644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008645|108645|989898|1|9999008645|MR|Test|E|Lead 8645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008646|108646|989898|1|9999008646|MR|Test|E|Lead 8646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008647|108647|989898|1|9999008647|MR|Test|E|Lead 8647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008648|108648|989898|1|9999008648|MR|Test|E|Lead 8648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008649|108649|989898|1|9999008649|MR|Test|E|Lead 8649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008650|108650|989898|1|9999008650|MR|Test|E|Lead 8650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008651|108651|989898|1|9999008651|MR|Test|E|Lead 8651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008652|108652|989898|1|9999008652|MR|Test|E|Lead 8652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008653|108653|989898|1|9999008653|MR|Test|E|Lead 8653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008654|108654|989898|1|9999008654|MR|Test|E|Lead 8654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008655|108655|989898|1|9999008655|MR|Test|E|Lead 8655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008656|108656|989898|1|9999008656|MR|Test|E|Lead 8656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008657|108657|989898|1|9999008657|MR|Test|E|Lead 8657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008658|108658|989898|1|9999008658|MR|Test|E|Lead 8658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008659|108659|989898|1|9999008659|MR|Test|E|Lead 8659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008660|108660|989898|1|9999008660|MR|Test|E|Lead 8660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008661|108661|989898|1|9999008661|MR|Test|E|Lead 8661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008662|108662|989898|1|9999008662|MR|Test|E|Lead 8662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008663|108663|989898|1|9999008663|MR|Test|E|Lead 8663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008664|108664|989898|1|9999008664|MR|Test|E|Lead 8664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008665|108665|989898|1|9999008665|MR|Test|E|Lead 8665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008666|108666|989898|1|9999008666|MR|Test|E|Lead 8666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008667|108667|989898|1|9999008667|MR|Test|E|Lead 8667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008668|108668|989898|1|9999008668|MR|Test|E|Lead 8668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008669|108669|989898|1|9999008669|MR|Test|E|Lead 8669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008670|108670|989898|1|9999008670|MR|Test|E|Lead 8670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008671|108671|989898|1|9999008671|MR|Test|E|Lead 8671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008672|108672|989898|1|9999008672|MR|Test|E|Lead 8672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008673|108673|989898|1|9999008673|MR|Test|E|Lead 8673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008674|108674|989898|1|9999008674|MR|Test|E|Lead 8674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008675|108675|989898|1|9999008675|MR|Test|E|Lead 8675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008676|108676|989898|1|9999008676|MR|Test|E|Lead 8676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008677|108677|989898|1|9999008677|MR|Test|E|Lead 8677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008678|108678|989898|1|9999008678|MR|Test|E|Lead 8678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008679|108679|989898|1|9999008679|MR|Test|E|Lead 8679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008680|108680|989898|1|9999008680|MR|Test|E|Lead 8680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008681|108681|989898|1|9999008681|MR|Test|E|Lead 8681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008682|108682|989898|1|9999008682|MR|Test|E|Lead 8682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008683|108683|989898|1|9999008683|MR|Test|E|Lead 8683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008684|108684|989898|1|9999008684|MR|Test|E|Lead 8684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008685|108685|989898|1|9999008685|MR|Test|E|Lead 8685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008686|108686|989898|1|9999008686|MR|Test|E|Lead 8686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008687|108687|989898|1|9999008687|MR|Test|E|Lead 8687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008688|108688|989898|1|9999008688|MR|Test|E|Lead 8688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008689|108689|989898|1|9999008689|MR|Test|E|Lead 8689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008690|108690|989898|1|9999008690|MR|Test|E|Lead 8690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008691|108691|989898|1|9999008691|MR|Test|E|Lead 8691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008692|108692|989898|1|9999008692|MR|Test|E|Lead 8692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008693|108693|989898|1|9999008693|MR|Test|E|Lead 8693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008694|108694|989898|1|9999008694|MR|Test|E|Lead 8694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008695|108695|989898|1|9999008695|MR|Test|E|Lead 8695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008696|108696|989898|1|9999008696|MR|Test|E|Lead 8696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008697|108697|989898|1|9999008697|MR|Test|E|Lead 8697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008698|108698|989898|1|9999008698|MR|Test|E|Lead 8698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008699|108699|989898|1|9999008699|MR|Test|E|Lead 8699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008700|108700|989898|1|9999008700|MR|Test|E|Lead 8700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008701|108701|989898|1|9999008701|MR|Test|E|Lead 8701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008702|108702|989898|1|9999008702|MR|Test|E|Lead 8702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008703|108703|989898|1|9999008703|MR|Test|E|Lead 8703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008704|108704|989898|1|9999008704|MR|Test|E|Lead 8704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008705|108705|989898|1|9999008705|MR|Test|E|Lead 8705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008706|108706|989898|1|9999008706|MR|Test|E|Lead 8706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008707|108707|989898|1|9999008707|MR|Test|E|Lead 8707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008708|108708|989898|1|9999008708|MR|Test|E|Lead 8708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008709|108709|989898|1|9999008709|MR|Test|E|Lead 8709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008710|108710|989898|1|9999008710|MR|Test|E|Lead 8710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008711|108711|989898|1|9999008711|MR|Test|E|Lead 8711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008712|108712|989898|1|9999008712|MR|Test|E|Lead 8712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008713|108713|989898|1|9999008713|MR|Test|E|Lead 8713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008714|108714|989898|1|9999008714|MR|Test|E|Lead 8714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008715|108715|989898|1|9999008715|MR|Test|E|Lead 8715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008716|108716|989898|1|9999008716|MR|Test|E|Lead 8716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008717|108717|989898|1|9999008717|MR|Test|E|Lead 8717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008718|108718|989898|1|9999008718|MR|Test|E|Lead 8718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008719|108719|989898|1|9999008719|MR|Test|E|Lead 8719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008720|108720|989898|1|9999008720|MR|Test|E|Lead 8720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008721|108721|989898|1|9999008721|MR|Test|E|Lead 8721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008722|108722|989898|1|9999008722|MR|Test|E|Lead 8722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008723|108723|989898|1|9999008723|MR|Test|E|Lead 8723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008724|108724|989898|1|9999008724|MR|Test|E|Lead 8724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008725|108725|989898|1|9999008725|MR|Test|E|Lead 8725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008726|108726|989898|1|9999008726|MR|Test|E|Lead 8726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008727|108727|989898|1|9999008727|MR|Test|E|Lead 8727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008728|108728|989898|1|9999008728|MR|Test|E|Lead 8728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008729|108729|989898|1|9999008729|MR|Test|E|Lead 8729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008730|108730|989898|1|9999008730|MR|Test|E|Lead 8730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008731|108731|989898|1|9999008731|MR|Test|E|Lead 8731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008732|108732|989898|1|9999008732|MR|Test|E|Lead 8732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008733|108733|989898|1|9999008733|MR|Test|E|Lead 8733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008734|108734|989898|1|9999008734|MR|Test|E|Lead 8734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008735|108735|989898|1|9999008735|MR|Test|E|Lead 8735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008736|108736|989898|1|9999008736|MR|Test|E|Lead 8736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008737|108737|989898|1|9999008737|MR|Test|E|Lead 8737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008738|108738|989898|1|9999008738|MR|Test|E|Lead 8738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008739|108739|989898|1|9999008739|MR|Test|E|Lead 8739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008740|108740|989898|1|9999008740|MR|Test|E|Lead 8740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008741|108741|989898|1|9999008741|MR|Test|E|Lead 8741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008742|108742|989898|1|9999008742|MR|Test|E|Lead 8742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008743|108743|989898|1|9999008743|MR|Test|E|Lead 8743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008744|108744|989898|1|9999008744|MR|Test|E|Lead 8744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008745|108745|989898|1|9999008745|MR|Test|E|Lead 8745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008746|108746|989898|1|9999008746|MR|Test|E|Lead 8746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008747|108747|989898|1|9999008747|MR|Test|E|Lead 8747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008748|108748|989898|1|9999008748|MR|Test|E|Lead 8748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008749|108749|989898|1|9999008749|MR|Test|E|Lead 8749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008750|108750|989898|1|9999008750|MR|Test|E|Lead 8750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008751|108751|989898|1|9999008751|MR|Test|E|Lead 8751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008752|108752|989898|1|9999008752|MR|Test|E|Lead 8752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008753|108753|989898|1|9999008753|MR|Test|E|Lead 8753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008754|108754|989898|1|9999008754|MR|Test|E|Lead 8754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008755|108755|989898|1|9999008755|MR|Test|E|Lead 8755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008756|108756|989898|1|9999008756|MR|Test|E|Lead 8756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008757|108757|989898|1|9999008757|MR|Test|E|Lead 8757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008758|108758|989898|1|9999008758|MR|Test|E|Lead 8758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008759|108759|989898|1|9999008759|MR|Test|E|Lead 8759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008760|108760|989898|1|9999008760|MR|Test|E|Lead 8760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008761|108761|989898|1|9999008761|MR|Test|E|Lead 8761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008762|108762|989898|1|9999008762|MR|Test|E|Lead 8762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008763|108763|989898|1|9999008763|MR|Test|E|Lead 8763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008764|108764|989898|1|9999008764|MR|Test|E|Lead 8764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008765|108765|989898|1|9999008765|MR|Test|E|Lead 8765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008766|108766|989898|1|9999008766|MR|Test|E|Lead 8766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008767|108767|989898|1|9999008767|MR|Test|E|Lead 8767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008768|108768|989898|1|9999008768|MR|Test|E|Lead 8768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008769|108769|989898|1|9999008769|MR|Test|E|Lead 8769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008770|108770|989898|1|9999008770|MR|Test|E|Lead 8770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008771|108771|989898|1|9999008771|MR|Test|E|Lead 8771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008772|108772|989898|1|9999008772|MR|Test|E|Lead 8772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008773|108773|989898|1|9999008773|MR|Test|E|Lead 8773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008774|108774|989898|1|9999008774|MR|Test|E|Lead 8774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008775|108775|989898|1|9999008775|MR|Test|E|Lead 8775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008776|108776|989898|1|9999008776|MR|Test|E|Lead 8776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008777|108777|989898|1|9999008777|MR|Test|E|Lead 8777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008778|108778|989898|1|9999008778|MR|Test|E|Lead 8778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008779|108779|989898|1|9999008779|MR|Test|E|Lead 8779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008780|108780|989898|1|9999008780|MR|Test|E|Lead 8780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008781|108781|989898|1|9999008781|MR|Test|E|Lead 8781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008782|108782|989898|1|9999008782|MR|Test|E|Lead 8782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008783|108783|989898|1|9999008783|MR|Test|E|Lead 8783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008784|108784|989898|1|9999008784|MR|Test|E|Lead 8784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008785|108785|989898|1|9999008785|MR|Test|E|Lead 8785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008786|108786|989898|1|9999008786|MR|Test|E|Lead 8786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008787|108787|989898|1|9999008787|MR|Test|E|Lead 8787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008788|108788|989898|1|9999008788|MR|Test|E|Lead 8788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008789|108789|989898|1|9999008789|MR|Test|E|Lead 8789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008790|108790|989898|1|9999008790|MR|Test|E|Lead 8790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008791|108791|989898|1|9999008791|MR|Test|E|Lead 8791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008792|108792|989898|1|9999008792|MR|Test|E|Lead 8792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008793|108793|989898|1|9999008793|MR|Test|E|Lead 8793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008794|108794|989898|1|9999008794|MR|Test|E|Lead 8794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008795|108795|989898|1|9999008795|MR|Test|E|Lead 8795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008796|108796|989898|1|9999008796|MR|Test|E|Lead 8796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008797|108797|989898|1|9999008797|MR|Test|E|Lead 8797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008798|108798|989898|1|9999008798|MR|Test|E|Lead 8798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008799|108799|989898|1|9999008799|MR|Test|E|Lead 8799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008800|108800|989898|1|9999008800|MR|Test|E|Lead 8800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008801|108801|989898|1|9999008801|MR|Test|E|Lead 8801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008802|108802|989898|1|9999008802|MR|Test|E|Lead 8802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008803|108803|989898|1|9999008803|MR|Test|E|Lead 8803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008804|108804|989898|1|9999008804|MR|Test|E|Lead 8804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008805|108805|989898|1|9999008805|MR|Test|E|Lead 8805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008806|108806|989898|1|9999008806|MR|Test|E|Lead 8806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008807|108807|989898|1|9999008807|MR|Test|E|Lead 8807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008808|108808|989898|1|9999008808|MR|Test|E|Lead 8808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008809|108809|989898|1|9999008809|MR|Test|E|Lead 8809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008810|108810|989898|1|9999008810|MR|Test|E|Lead 8810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008811|108811|989898|1|9999008811|MR|Test|E|Lead 8811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008812|108812|989898|1|9999008812|MR|Test|E|Lead 8812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008813|108813|989898|1|9999008813|MR|Test|E|Lead 8813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008814|108814|989898|1|9999008814|MR|Test|E|Lead 8814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008815|108815|989898|1|9999008815|MR|Test|E|Lead 8815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008816|108816|989898|1|9999008816|MR|Test|E|Lead 8816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008817|108817|989898|1|9999008817|MR|Test|E|Lead 8817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008818|108818|989898|1|9999008818|MR|Test|E|Lead 8818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008819|108819|989898|1|9999008819|MR|Test|E|Lead 8819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008820|108820|989898|1|9999008820|MR|Test|E|Lead 8820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008821|108821|989898|1|9999008821|MR|Test|E|Lead 8821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008822|108822|989898|1|9999008822|MR|Test|E|Lead 8822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008823|108823|989898|1|9999008823|MR|Test|E|Lead 8823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008824|108824|989898|1|9999008824|MR|Test|E|Lead 8824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008825|108825|989898|1|9999008825|MR|Test|E|Lead 8825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008826|108826|989898|1|9999008826|MR|Test|E|Lead 8826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008827|108827|989898|1|9999008827|MR|Test|E|Lead 8827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008828|108828|989898|1|9999008828|MR|Test|E|Lead 8828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008829|108829|989898|1|9999008829|MR|Test|E|Lead 8829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008830|108830|989898|1|9999008830|MR|Test|E|Lead 8830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008831|108831|989898|1|9999008831|MR|Test|E|Lead 8831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008832|108832|989898|1|9999008832|MR|Test|E|Lead 8832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008833|108833|989898|1|9999008833|MR|Test|E|Lead 8833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008834|108834|989898|1|9999008834|MR|Test|E|Lead 8834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008835|108835|989898|1|9999008835|MR|Test|E|Lead 8835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008836|108836|989898|1|9999008836|MR|Test|E|Lead 8836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008837|108837|989898|1|9999008837|MR|Test|E|Lead 8837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008838|108838|989898|1|9999008838|MR|Test|E|Lead 8838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008839|108839|989898|1|9999008839|MR|Test|E|Lead 8839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008840|108840|989898|1|9999008840|MR|Test|E|Lead 8840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008841|108841|989898|1|9999008841|MR|Test|E|Lead 8841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008842|108842|989898|1|9999008842|MR|Test|E|Lead 8842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008843|108843|989898|1|9999008843|MR|Test|E|Lead 8843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008844|108844|989898|1|9999008844|MR|Test|E|Lead 8844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008845|108845|989898|1|9999008845|MR|Test|E|Lead 8845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008846|108846|989898|1|9999008846|MR|Test|E|Lead 8846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008847|108847|989898|1|9999008847|MR|Test|E|Lead 8847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008848|108848|989898|1|9999008848|MR|Test|E|Lead 8848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008849|108849|989898|1|9999008849|MR|Test|E|Lead 8849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008850|108850|989898|1|9999008850|MR|Test|E|Lead 8850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008851|108851|989898|1|9999008851|MR|Test|E|Lead 8851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008852|108852|989898|1|9999008852|MR|Test|E|Lead 8852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008853|108853|989898|1|9999008853|MR|Test|E|Lead 8853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008854|108854|989898|1|9999008854|MR|Test|E|Lead 8854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008855|108855|989898|1|9999008855|MR|Test|E|Lead 8855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008856|108856|989898|1|9999008856|MR|Test|E|Lead 8856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008857|108857|989898|1|9999008857|MR|Test|E|Lead 8857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008858|108858|989898|1|9999008858|MR|Test|E|Lead 8858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008859|108859|989898|1|9999008859|MR|Test|E|Lead 8859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008860|108860|989898|1|9999008860|MR|Test|E|Lead 8860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008861|108861|989898|1|9999008861|MR|Test|E|Lead 8861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008862|108862|989898|1|9999008862|MR|Test|E|Lead 8862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008863|108863|989898|1|9999008863|MR|Test|E|Lead 8863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008864|108864|989898|1|9999008864|MR|Test|E|Lead 8864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008865|108865|989898|1|9999008865|MR|Test|E|Lead 8865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008866|108866|989898|1|9999008866|MR|Test|E|Lead 8866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008867|108867|989898|1|9999008867|MR|Test|E|Lead 8867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008868|108868|989898|1|9999008868|MR|Test|E|Lead 8868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008869|108869|989898|1|9999008869|MR|Test|E|Lead 8869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008870|108870|989898|1|9999008870|MR|Test|E|Lead 8870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008871|108871|989898|1|9999008871|MR|Test|E|Lead 8871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008872|108872|989898|1|9999008872|MR|Test|E|Lead 8872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008873|108873|989898|1|9999008873|MR|Test|E|Lead 8873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008874|108874|989898|1|9999008874|MR|Test|E|Lead 8874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008875|108875|989898|1|9999008875|MR|Test|E|Lead 8875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008876|108876|989898|1|9999008876|MR|Test|E|Lead 8876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008877|108877|989898|1|9999008877|MR|Test|E|Lead 8877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008878|108878|989898|1|9999008878|MR|Test|E|Lead 8878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008879|108879|989898|1|9999008879|MR|Test|E|Lead 8879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008880|108880|989898|1|9999008880|MR|Test|E|Lead 8880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008881|108881|989898|1|9999008881|MR|Test|E|Lead 8881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008882|108882|989898|1|9999008882|MR|Test|E|Lead 8882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008883|108883|989898|1|9999008883|MR|Test|E|Lead 8883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008884|108884|989898|1|9999008884|MR|Test|E|Lead 8884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008885|108885|989898|1|9999008885|MR|Test|E|Lead 8885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008886|108886|989898|1|9999008886|MR|Test|E|Lead 8886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008887|108887|989898|1|9999008887|MR|Test|E|Lead 8887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008888|108888|989898|1|9999008888|MR|Test|E|Lead 8888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008889|108889|989898|1|9999008889|MR|Test|E|Lead 8889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008890|108890|989898|1|9999008890|MR|Test|E|Lead 8890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008891|108891|989898|1|9999008891|MR|Test|E|Lead 8891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008892|108892|989898|1|9999008892|MR|Test|E|Lead 8892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008893|108893|989898|1|9999008893|MR|Test|E|Lead 8893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008894|108894|989898|1|9999008894|MR|Test|E|Lead 8894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008895|108895|989898|1|9999008895|MR|Test|E|Lead 8895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008896|108896|989898|1|9999008896|MR|Test|E|Lead 8896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008897|108897|989898|1|9999008897|MR|Test|E|Lead 8897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008898|108898|989898|1|9999008898|MR|Test|E|Lead 8898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008899|108899|989898|1|9999008899|MR|Test|E|Lead 8899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008900|108900|989898|1|9999008900|MR|Test|E|Lead 8900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008901|108901|989898|1|9999008901|MR|Test|E|Lead 8901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008902|108902|989898|1|9999008902|MR|Test|E|Lead 8902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008903|108903|989898|1|9999008903|MR|Test|E|Lead 8903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008904|108904|989898|1|9999008904|MR|Test|E|Lead 8904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008905|108905|989898|1|9999008905|MR|Test|E|Lead 8905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008906|108906|989898|1|9999008906|MR|Test|E|Lead 8906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008907|108907|989898|1|9999008907|MR|Test|E|Lead 8907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008908|108908|989898|1|9999008908|MR|Test|E|Lead 8908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008909|108909|989898|1|9999008909|MR|Test|E|Lead 8909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008910|108910|989898|1|9999008910|MR|Test|E|Lead 8910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008911|108911|989898|1|9999008911|MR|Test|E|Lead 8911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008912|108912|989898|1|9999008912|MR|Test|E|Lead 8912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008913|108913|989898|1|9999008913|MR|Test|E|Lead 8913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008914|108914|989898|1|9999008914|MR|Test|E|Lead 8914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008915|108915|989898|1|9999008915|MR|Test|E|Lead 8915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008916|108916|989898|1|9999008916|MR|Test|E|Lead 8916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008917|108917|989898|1|9999008917|MR|Test|E|Lead 8917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008918|108918|989898|1|9999008918|MR|Test|E|Lead 8918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008919|108919|989898|1|9999008919|MR|Test|E|Lead 8919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008920|108920|989898|1|9999008920|MR|Test|E|Lead 8920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008921|108921|989898|1|9999008921|MR|Test|E|Lead 8921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008922|108922|989898|1|9999008922|MR|Test|E|Lead 8922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008923|108923|989898|1|9999008923|MR|Test|E|Lead 8923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008924|108924|989898|1|9999008924|MR|Test|E|Lead 8924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008925|108925|989898|1|9999008925|MR|Test|E|Lead 8925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008926|108926|989898|1|9999008926|MR|Test|E|Lead 8926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008927|108927|989898|1|9999008927|MR|Test|E|Lead 8927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008928|108928|989898|1|9999008928|MR|Test|E|Lead 8928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008929|108929|989898|1|9999008929|MR|Test|E|Lead 8929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008930|108930|989898|1|9999008930|MR|Test|E|Lead 8930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008931|108931|989898|1|9999008931|MR|Test|E|Lead 8931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008932|108932|989898|1|9999008932|MR|Test|E|Lead 8932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008933|108933|989898|1|9999008933|MR|Test|E|Lead 8933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008934|108934|989898|1|9999008934|MR|Test|E|Lead 8934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008935|108935|989898|1|9999008935|MR|Test|E|Lead 8935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008936|108936|989898|1|9999008936|MR|Test|E|Lead 8936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008937|108937|989898|1|9999008937|MR|Test|E|Lead 8937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008938|108938|989898|1|9999008938|MR|Test|E|Lead 8938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008939|108939|989898|1|9999008939|MR|Test|E|Lead 8939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008940|108940|989898|1|9999008940|MR|Test|E|Lead 8940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008941|108941|989898|1|9999008941|MR|Test|E|Lead 8941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008942|108942|989898|1|9999008942|MR|Test|E|Lead 8942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008943|108943|989898|1|9999008943|MR|Test|E|Lead 8943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008944|108944|989898|1|9999008944|MR|Test|E|Lead 8944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008945|108945|989898|1|9999008945|MR|Test|E|Lead 8945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008946|108946|989898|1|9999008946|MR|Test|E|Lead 8946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008947|108947|989898|1|9999008947|MR|Test|E|Lead 8947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008948|108948|989898|1|9999008948|MR|Test|E|Lead 8948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008949|108949|989898|1|9999008949|MR|Test|E|Lead 8949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008950|108950|989898|1|9999008950|MR|Test|E|Lead 8950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008951|108951|989898|1|9999008951|MR|Test|E|Lead 8951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008952|108952|989898|1|9999008952|MR|Test|E|Lead 8952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008953|108953|989898|1|9999008953|MR|Test|E|Lead 8953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008954|108954|989898|1|9999008954|MR|Test|E|Lead 8954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008955|108955|989898|1|9999008955|MR|Test|E|Lead 8955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008956|108956|989898|1|9999008956|MR|Test|E|Lead 8956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008957|108957|989898|1|9999008957|MR|Test|E|Lead 8957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008958|108958|989898|1|9999008958|MR|Test|E|Lead 8958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008959|108959|989898|1|9999008959|MR|Test|E|Lead 8959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008960|108960|989898|1|9999008960|MR|Test|E|Lead 8960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008961|108961|989898|1|9999008961|MR|Test|E|Lead 8961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008962|108962|989898|1|9999008962|MR|Test|E|Lead 8962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008963|108963|989898|1|9999008963|MR|Test|E|Lead 8963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008964|108964|989898|1|9999008964|MR|Test|E|Lead 8964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008965|108965|989898|1|9999008965|MR|Test|E|Lead 8965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008966|108966|989898|1|9999008966|MR|Test|E|Lead 8966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008967|108967|989898|1|9999008967|MR|Test|E|Lead 8967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008968|108968|989898|1|9999008968|MR|Test|E|Lead 8968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008969|108969|989898|1|9999008969|MR|Test|E|Lead 8969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008970|108970|989898|1|9999008970|MR|Test|E|Lead 8970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008971|108971|989898|1|9999008971|MR|Test|E|Lead 8971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008972|108972|989898|1|9999008972|MR|Test|E|Lead 8972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008973|108973|989898|1|9999008973|MR|Test|E|Lead 8973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008974|108974|989898|1|9999008974|MR|Test|E|Lead 8974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008975|108975|989898|1|9999008975|MR|Test|E|Lead 8975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008976|108976|989898|1|9999008976|MR|Test|E|Lead 8976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008977|108977|989898|1|9999008977|MR|Test|E|Lead 8977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008978|108978|989898|1|9999008978|MR|Test|E|Lead 8978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008979|108979|989898|1|9999008979|MR|Test|E|Lead 8979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008980|108980|989898|1|9999008980|MR|Test|E|Lead 8980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008981|108981|989898|1|9999008981|MR|Test|E|Lead 8981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008982|108982|989898|1|9999008982|MR|Test|E|Lead 8982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008983|108983|989898|1|9999008983|MR|Test|E|Lead 8983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008984|108984|989898|1|9999008984|MR|Test|E|Lead 8984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008985|108985|989898|1|9999008985|MR|Test|E|Lead 8985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008986|108986|989898|1|9999008986|MR|Test|E|Lead 8986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008987|108987|989898|1|9999008987|MR|Test|E|Lead 8987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008988|108988|989898|1|9999008988|MR|Test|E|Lead 8988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008989|108989|989898|1|9999008989|MR|Test|E|Lead 8989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008990|108990|989898|1|9999008990|MR|Test|E|Lead 8990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008991|108991|989898|1|9999008991|MR|Test|E|Lead 8991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008992|108992|989898|1|9999008992|MR|Test|E|Lead 8992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008993|108993|989898|1|9999008993|MR|Test|E|Lead 8993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008994|108994|989898|1|9999008994|MR|Test|E|Lead 8994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008995|108995|989898|1|9999008995|MR|Test|E|Lead 8995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008996|108996|989898|1|9999008996|MR|Test|E|Lead 8996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008997|108997|989898|1|9999008997|MR|Test|E|Lead 8997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008998|108998|989898|1|9999008998|MR|Test|E|Lead 8998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1008999|108999|989898|1|9999008999|MR|Test|E|Lead 8999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009000|109000|989898|1|9999009000|MR|Test|E|Lead 9000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009001|109001|989898|1|9999009001|MR|Test|E|Lead 9001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009002|109002|989898|1|9999009002|MR|Test|E|Lead 9002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009003|109003|989898|1|9999009003|MR|Test|E|Lead 9003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009004|109004|989898|1|9999009004|MR|Test|E|Lead 9004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009005|109005|989898|1|9999009005|MR|Test|E|Lead 9005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009006|109006|989898|1|9999009006|MR|Test|E|Lead 9006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009007|109007|989898|1|9999009007|MR|Test|E|Lead 9007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009008|109008|989898|1|9999009008|MR|Test|E|Lead 9008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009009|109009|989898|1|9999009009|MR|Test|E|Lead 9009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009010|109010|989898|1|9999009010|MR|Test|E|Lead 9010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009011|109011|989898|1|9999009011|MR|Test|E|Lead 9011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009012|109012|989898|1|9999009012|MR|Test|E|Lead 9012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009013|109013|989898|1|9999009013|MR|Test|E|Lead 9013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009014|109014|989898|1|9999009014|MR|Test|E|Lead 9014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009015|109015|989898|1|9999009015|MR|Test|E|Lead 9015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009016|109016|989898|1|9999009016|MR|Test|E|Lead 9016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009017|109017|989898|1|9999009017|MR|Test|E|Lead 9017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009018|109018|989898|1|9999009018|MR|Test|E|Lead 9018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009019|109019|989898|1|9999009019|MR|Test|E|Lead 9019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009020|109020|989898|1|9999009020|MR|Test|E|Lead 9020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009021|109021|989898|1|9999009021|MR|Test|E|Lead 9021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009022|109022|989898|1|9999009022|MR|Test|E|Lead 9022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009023|109023|989898|1|9999009023|MR|Test|E|Lead 9023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009024|109024|989898|1|9999009024|MR|Test|E|Lead 9024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009025|109025|989898|1|9999009025|MR|Test|E|Lead 9025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009026|109026|989898|1|9999009026|MR|Test|E|Lead 9026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009027|109027|989898|1|9999009027|MR|Test|E|Lead 9027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009028|109028|989898|1|9999009028|MR|Test|E|Lead 9028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009029|109029|989898|1|9999009029|MR|Test|E|Lead 9029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009030|109030|989898|1|9999009030|MR|Test|E|Lead 9030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009031|109031|989898|1|9999009031|MR|Test|E|Lead 9031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009032|109032|989898|1|9999009032|MR|Test|E|Lead 9032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009033|109033|989898|1|9999009033|MR|Test|E|Lead 9033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009034|109034|989898|1|9999009034|MR|Test|E|Lead 9034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009035|109035|989898|1|9999009035|MR|Test|E|Lead 9035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009036|109036|989898|1|9999009036|MR|Test|E|Lead 9036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009037|109037|989898|1|9999009037|MR|Test|E|Lead 9037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009038|109038|989898|1|9999009038|MR|Test|E|Lead 9038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009039|109039|989898|1|9999009039|MR|Test|E|Lead 9039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009040|109040|989898|1|9999009040|MR|Test|E|Lead 9040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009041|109041|989898|1|9999009041|MR|Test|E|Lead 9041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009042|109042|989898|1|9999009042|MR|Test|E|Lead 9042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009043|109043|989898|1|9999009043|MR|Test|E|Lead 9043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009044|109044|989898|1|9999009044|MR|Test|E|Lead 9044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009045|109045|989898|1|9999009045|MR|Test|E|Lead 9045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009046|109046|989898|1|9999009046|MR|Test|E|Lead 9046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009047|109047|989898|1|9999009047|MR|Test|E|Lead 9047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009048|109048|989898|1|9999009048|MR|Test|E|Lead 9048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009049|109049|989898|1|9999009049|MR|Test|E|Lead 9049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009050|109050|989898|1|9999009050|MR|Test|E|Lead 9050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009051|109051|989898|1|9999009051|MR|Test|E|Lead 9051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009052|109052|989898|1|9999009052|MR|Test|E|Lead 9052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009053|109053|989898|1|9999009053|MR|Test|E|Lead 9053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009054|109054|989898|1|9999009054|MR|Test|E|Lead 9054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009055|109055|989898|1|9999009055|MR|Test|E|Lead 9055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009056|109056|989898|1|9999009056|MR|Test|E|Lead 9056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009057|109057|989898|1|9999009057|MR|Test|E|Lead 9057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009058|109058|989898|1|9999009058|MR|Test|E|Lead 9058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009059|109059|989898|1|9999009059|MR|Test|E|Lead 9059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009060|109060|989898|1|9999009060|MR|Test|E|Lead 9060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009061|109061|989898|1|9999009061|MR|Test|E|Lead 9061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009062|109062|989898|1|9999009062|MR|Test|E|Lead 9062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009063|109063|989898|1|9999009063|MR|Test|E|Lead 9063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009064|109064|989898|1|9999009064|MR|Test|E|Lead 9064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009065|109065|989898|1|9999009065|MR|Test|E|Lead 9065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009066|109066|989898|1|9999009066|MR|Test|E|Lead 9066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009067|109067|989898|1|9999009067|MR|Test|E|Lead 9067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009068|109068|989898|1|9999009068|MR|Test|E|Lead 9068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009069|109069|989898|1|9999009069|MR|Test|E|Lead 9069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009070|109070|989898|1|9999009070|MR|Test|E|Lead 9070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009071|109071|989898|1|9999009071|MR|Test|E|Lead 9071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009072|109072|989898|1|9999009072|MR|Test|E|Lead 9072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009073|109073|989898|1|9999009073|MR|Test|E|Lead 9073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009074|109074|989898|1|9999009074|MR|Test|E|Lead 9074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009075|109075|989898|1|9999009075|MR|Test|E|Lead 9075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009076|109076|989898|1|9999009076|MR|Test|E|Lead 9076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009077|109077|989898|1|9999009077|MR|Test|E|Lead 9077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009078|109078|989898|1|9999009078|MR|Test|E|Lead 9078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009079|109079|989898|1|9999009079|MR|Test|E|Lead 9079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009080|109080|989898|1|9999009080|MR|Test|E|Lead 9080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009081|109081|989898|1|9999009081|MR|Test|E|Lead 9081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009082|109082|989898|1|9999009082|MR|Test|E|Lead 9082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009083|109083|989898|1|9999009083|MR|Test|E|Lead 9083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009084|109084|989898|1|9999009084|MR|Test|E|Lead 9084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009085|109085|989898|1|9999009085|MR|Test|E|Lead 9085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009086|109086|989898|1|9999009086|MR|Test|E|Lead 9086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009087|109087|989898|1|9999009087|MR|Test|E|Lead 9087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009088|109088|989898|1|9999009088|MR|Test|E|Lead 9088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009089|109089|989898|1|9999009089|MR|Test|E|Lead 9089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009090|109090|989898|1|9999009090|MR|Test|E|Lead 9090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009091|109091|989898|1|9999009091|MR|Test|E|Lead 9091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009092|109092|989898|1|9999009092|MR|Test|E|Lead 9092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009093|109093|989898|1|9999009093|MR|Test|E|Lead 9093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009094|109094|989898|1|9999009094|MR|Test|E|Lead 9094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009095|109095|989898|1|9999009095|MR|Test|E|Lead 9095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009096|109096|989898|1|9999009096|MR|Test|E|Lead 9096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009097|109097|989898|1|9999009097|MR|Test|E|Lead 9097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009098|109098|989898|1|9999009098|MR|Test|E|Lead 9098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009099|109099|989898|1|9999009099|MR|Test|E|Lead 9099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009100|109100|989898|1|9999009100|MR|Test|E|Lead 9100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009101|109101|989898|1|9999009101|MR|Test|E|Lead 9101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009102|109102|989898|1|9999009102|MR|Test|E|Lead 9102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009103|109103|989898|1|9999009103|MR|Test|E|Lead 9103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009104|109104|989898|1|9999009104|MR|Test|E|Lead 9104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009105|109105|989898|1|9999009105|MR|Test|E|Lead 9105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009106|109106|989898|1|9999009106|MR|Test|E|Lead 9106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009107|109107|989898|1|9999009107|MR|Test|E|Lead 9107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009108|109108|989898|1|9999009108|MR|Test|E|Lead 9108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009109|109109|989898|1|9999009109|MR|Test|E|Lead 9109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009110|109110|989898|1|9999009110|MR|Test|E|Lead 9110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009111|109111|989898|1|9999009111|MR|Test|E|Lead 9111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009112|109112|989898|1|9999009112|MR|Test|E|Lead 9112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009113|109113|989898|1|9999009113|MR|Test|E|Lead 9113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009114|109114|989898|1|9999009114|MR|Test|E|Lead 9114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009115|109115|989898|1|9999009115|MR|Test|E|Lead 9115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009116|109116|989898|1|9999009116|MR|Test|E|Lead 9116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009117|109117|989898|1|9999009117|MR|Test|E|Lead 9117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009118|109118|989898|1|9999009118|MR|Test|E|Lead 9118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009119|109119|989898|1|9999009119|MR|Test|E|Lead 9119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009120|109120|989898|1|9999009120|MR|Test|E|Lead 9120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009121|109121|989898|1|9999009121|MR|Test|E|Lead 9121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009122|109122|989898|1|9999009122|MR|Test|E|Lead 9122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009123|109123|989898|1|9999009123|MR|Test|E|Lead 9123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009124|109124|989898|1|9999009124|MR|Test|E|Lead 9124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009125|109125|989898|1|9999009125|MR|Test|E|Lead 9125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009126|109126|989898|1|9999009126|MR|Test|E|Lead 9126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009127|109127|989898|1|9999009127|MR|Test|E|Lead 9127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009128|109128|989898|1|9999009128|MR|Test|E|Lead 9128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009129|109129|989898|1|9999009129|MR|Test|E|Lead 9129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009130|109130|989898|1|9999009130|MR|Test|E|Lead 9130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009131|109131|989898|1|9999009131|MR|Test|E|Lead 9131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009132|109132|989898|1|9999009132|MR|Test|E|Lead 9132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009133|109133|989898|1|9999009133|MR|Test|E|Lead 9133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009134|109134|989898|1|9999009134|MR|Test|E|Lead 9134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009135|109135|989898|1|9999009135|MR|Test|E|Lead 9135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009136|109136|989898|1|9999009136|MR|Test|E|Lead 9136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009137|109137|989898|1|9999009137|MR|Test|E|Lead 9137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009138|109138|989898|1|9999009138|MR|Test|E|Lead 9138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009139|109139|989898|1|9999009139|MR|Test|E|Lead 9139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009140|109140|989898|1|9999009140|MR|Test|E|Lead 9140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009141|109141|989898|1|9999009141|MR|Test|E|Lead 9141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009142|109142|989898|1|9999009142|MR|Test|E|Lead 9142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009143|109143|989898|1|9999009143|MR|Test|E|Lead 9143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009144|109144|989898|1|9999009144|MR|Test|E|Lead 9144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009145|109145|989898|1|9999009145|MR|Test|E|Lead 9145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009146|109146|989898|1|9999009146|MR|Test|E|Lead 9146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009147|109147|989898|1|9999009147|MR|Test|E|Lead 9147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009148|109148|989898|1|9999009148|MR|Test|E|Lead 9148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009149|109149|989898|1|9999009149|MR|Test|E|Lead 9149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009150|109150|989898|1|9999009150|MR|Test|E|Lead 9150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009151|109151|989898|1|9999009151|MR|Test|E|Lead 9151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009152|109152|989898|1|9999009152|MR|Test|E|Lead 9152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009153|109153|989898|1|9999009153|MR|Test|E|Lead 9153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009154|109154|989898|1|9999009154|MR|Test|E|Lead 9154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009155|109155|989898|1|9999009155|MR|Test|E|Lead 9155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009156|109156|989898|1|9999009156|MR|Test|E|Lead 9156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009157|109157|989898|1|9999009157|MR|Test|E|Lead 9157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009158|109158|989898|1|9999009158|MR|Test|E|Lead 9158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009159|109159|989898|1|9999009159|MR|Test|E|Lead 9159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009160|109160|989898|1|9999009160|MR|Test|E|Lead 9160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009161|109161|989898|1|9999009161|MR|Test|E|Lead 9161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009162|109162|989898|1|9999009162|MR|Test|E|Lead 9162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009163|109163|989898|1|9999009163|MR|Test|E|Lead 9163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009164|109164|989898|1|9999009164|MR|Test|E|Lead 9164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009165|109165|989898|1|9999009165|MR|Test|E|Lead 9165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009166|109166|989898|1|9999009166|MR|Test|E|Lead 9166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009167|109167|989898|1|9999009167|MR|Test|E|Lead 9167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009168|109168|989898|1|9999009168|MR|Test|E|Lead 9168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009169|109169|989898|1|9999009169|MR|Test|E|Lead 9169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009170|109170|989898|1|9999009170|MR|Test|E|Lead 9170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009171|109171|989898|1|9999009171|MR|Test|E|Lead 9171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009172|109172|989898|1|9999009172|MR|Test|E|Lead 9172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009173|109173|989898|1|9999009173|MR|Test|E|Lead 9173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009174|109174|989898|1|9999009174|MR|Test|E|Lead 9174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009175|109175|989898|1|9999009175|MR|Test|E|Lead 9175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009176|109176|989898|1|9999009176|MR|Test|E|Lead 9176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009177|109177|989898|1|9999009177|MR|Test|E|Lead 9177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009178|109178|989898|1|9999009178|MR|Test|E|Lead 9178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009179|109179|989898|1|9999009179|MR|Test|E|Lead 9179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009180|109180|989898|1|9999009180|MR|Test|E|Lead 9180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009181|109181|989898|1|9999009181|MR|Test|E|Lead 9181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009182|109182|989898|1|9999009182|MR|Test|E|Lead 9182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009183|109183|989898|1|9999009183|MR|Test|E|Lead 9183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009184|109184|989898|1|9999009184|MR|Test|E|Lead 9184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009185|109185|989898|1|9999009185|MR|Test|E|Lead 9185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009186|109186|989898|1|9999009186|MR|Test|E|Lead 9186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009187|109187|989898|1|9999009187|MR|Test|E|Lead 9187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009188|109188|989898|1|9999009188|MR|Test|E|Lead 9188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009189|109189|989898|1|9999009189|MR|Test|E|Lead 9189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009190|109190|989898|1|9999009190|MR|Test|E|Lead 9190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009191|109191|989898|1|9999009191|MR|Test|E|Lead 9191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009192|109192|989898|1|9999009192|MR|Test|E|Lead 9192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009193|109193|989898|1|9999009193|MR|Test|E|Lead 9193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009194|109194|989898|1|9999009194|MR|Test|E|Lead 9194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009195|109195|989898|1|9999009195|MR|Test|E|Lead 9195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009196|109196|989898|1|9999009196|MR|Test|E|Lead 9196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009197|109197|989898|1|9999009197|MR|Test|E|Lead 9197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009198|109198|989898|1|9999009198|MR|Test|E|Lead 9198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009199|109199|989898|1|9999009199|MR|Test|E|Lead 9199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009200|109200|989898|1|9999009200|MR|Test|E|Lead 9200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009201|109201|989898|1|9999009201|MR|Test|E|Lead 9201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009202|109202|989898|1|9999009202|MR|Test|E|Lead 9202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009203|109203|989898|1|9999009203|MR|Test|E|Lead 9203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009204|109204|989898|1|9999009204|MR|Test|E|Lead 9204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009205|109205|989898|1|9999009205|MR|Test|E|Lead 9205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009206|109206|989898|1|9999009206|MR|Test|E|Lead 9206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009207|109207|989898|1|9999009207|MR|Test|E|Lead 9207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009208|109208|989898|1|9999009208|MR|Test|E|Lead 9208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009209|109209|989898|1|9999009209|MR|Test|E|Lead 9209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009210|109210|989898|1|9999009210|MR|Test|E|Lead 9210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009211|109211|989898|1|9999009211|MR|Test|E|Lead 9211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009212|109212|989898|1|9999009212|MR|Test|E|Lead 9212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009213|109213|989898|1|9999009213|MR|Test|E|Lead 9213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009214|109214|989898|1|9999009214|MR|Test|E|Lead 9214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009215|109215|989898|1|9999009215|MR|Test|E|Lead 9215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009216|109216|989898|1|9999009216|MR|Test|E|Lead 9216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009217|109217|989898|1|9999009217|MR|Test|E|Lead 9217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009218|109218|989898|1|9999009218|MR|Test|E|Lead 9218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009219|109219|989898|1|9999009219|MR|Test|E|Lead 9219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009220|109220|989898|1|9999009220|MR|Test|E|Lead 9220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009221|109221|989898|1|9999009221|MR|Test|E|Lead 9221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009222|109222|989898|1|9999009222|MR|Test|E|Lead 9222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009223|109223|989898|1|9999009223|MR|Test|E|Lead 9223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009224|109224|989898|1|9999009224|MR|Test|E|Lead 9224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009225|109225|989898|1|9999009225|MR|Test|E|Lead 9225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009226|109226|989898|1|9999009226|MR|Test|E|Lead 9226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009227|109227|989898|1|9999009227|MR|Test|E|Lead 9227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009228|109228|989898|1|9999009228|MR|Test|E|Lead 9228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009229|109229|989898|1|9999009229|MR|Test|E|Lead 9229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009230|109230|989898|1|9999009230|MR|Test|E|Lead 9230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009231|109231|989898|1|9999009231|MR|Test|E|Lead 9231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009232|109232|989898|1|9999009232|MR|Test|E|Lead 9232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009233|109233|989898|1|9999009233|MR|Test|E|Lead 9233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009234|109234|989898|1|9999009234|MR|Test|E|Lead 9234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009235|109235|989898|1|9999009235|MR|Test|E|Lead 9235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009236|109236|989898|1|9999009236|MR|Test|E|Lead 9236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009237|109237|989898|1|9999009237|MR|Test|E|Lead 9237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009238|109238|989898|1|9999009238|MR|Test|E|Lead 9238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009239|109239|989898|1|9999009239|MR|Test|E|Lead 9239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009240|109240|989898|1|9999009240|MR|Test|E|Lead 9240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009241|109241|989898|1|9999009241|MR|Test|E|Lead 9241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009242|109242|989898|1|9999009242|MR|Test|E|Lead 9242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009243|109243|989898|1|9999009243|MR|Test|E|Lead 9243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009244|109244|989898|1|9999009244|MR|Test|E|Lead 9244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009245|109245|989898|1|9999009245|MR|Test|E|Lead 9245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009246|109246|989898|1|9999009246|MR|Test|E|Lead 9246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009247|109247|989898|1|9999009247|MR|Test|E|Lead 9247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009248|109248|989898|1|9999009248|MR|Test|E|Lead 9248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009249|109249|989898|1|9999009249|MR|Test|E|Lead 9249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009250|109250|989898|1|9999009250|MR|Test|E|Lead 9250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009251|109251|989898|1|9999009251|MR|Test|E|Lead 9251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009252|109252|989898|1|9999009252|MR|Test|E|Lead 9252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009253|109253|989898|1|9999009253|MR|Test|E|Lead 9253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009254|109254|989898|1|9999009254|MR|Test|E|Lead 9254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009255|109255|989898|1|9999009255|MR|Test|E|Lead 9255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009256|109256|989898|1|9999009256|MR|Test|E|Lead 9256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009257|109257|989898|1|9999009257|MR|Test|E|Lead 9257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009258|109258|989898|1|9999009258|MR|Test|E|Lead 9258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009259|109259|989898|1|9999009259|MR|Test|E|Lead 9259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009260|109260|989898|1|9999009260|MR|Test|E|Lead 9260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009261|109261|989898|1|9999009261|MR|Test|E|Lead 9261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009262|109262|989898|1|9999009262|MR|Test|E|Lead 9262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009263|109263|989898|1|9999009263|MR|Test|E|Lead 9263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009264|109264|989898|1|9999009264|MR|Test|E|Lead 9264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009265|109265|989898|1|9999009265|MR|Test|E|Lead 9265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009266|109266|989898|1|9999009266|MR|Test|E|Lead 9266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009267|109267|989898|1|9999009267|MR|Test|E|Lead 9267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009268|109268|989898|1|9999009268|MR|Test|E|Lead 9268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009269|109269|989898|1|9999009269|MR|Test|E|Lead 9269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009270|109270|989898|1|9999009270|MR|Test|E|Lead 9270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009271|109271|989898|1|9999009271|MR|Test|E|Lead 9271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009272|109272|989898|1|9999009272|MR|Test|E|Lead 9272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009273|109273|989898|1|9999009273|MR|Test|E|Lead 9273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009274|109274|989898|1|9999009274|MR|Test|E|Lead 9274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009275|109275|989898|1|9999009275|MR|Test|E|Lead 9275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009276|109276|989898|1|9999009276|MR|Test|E|Lead 9276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009277|109277|989898|1|9999009277|MR|Test|E|Lead 9277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009278|109278|989898|1|9999009278|MR|Test|E|Lead 9278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009279|109279|989898|1|9999009279|MR|Test|E|Lead 9279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009280|109280|989898|1|9999009280|MR|Test|E|Lead 9280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009281|109281|989898|1|9999009281|MR|Test|E|Lead 9281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009282|109282|989898|1|9999009282|MR|Test|E|Lead 9282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009283|109283|989898|1|9999009283|MR|Test|E|Lead 9283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009284|109284|989898|1|9999009284|MR|Test|E|Lead 9284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009285|109285|989898|1|9999009285|MR|Test|E|Lead 9285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009286|109286|989898|1|9999009286|MR|Test|E|Lead 9286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009287|109287|989898|1|9999009287|MR|Test|E|Lead 9287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009288|109288|989898|1|9999009288|MR|Test|E|Lead 9288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009289|109289|989898|1|9999009289|MR|Test|E|Lead 9289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009290|109290|989898|1|9999009290|MR|Test|E|Lead 9290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009291|109291|989898|1|9999009291|MR|Test|E|Lead 9291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009292|109292|989898|1|9999009292|MR|Test|E|Lead 9292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009293|109293|989898|1|9999009293|MR|Test|E|Lead 9293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009294|109294|989898|1|9999009294|MR|Test|E|Lead 9294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009295|109295|989898|1|9999009295|MR|Test|E|Lead 9295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009296|109296|989898|1|9999009296|MR|Test|E|Lead 9296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009297|109297|989898|1|9999009297|MR|Test|E|Lead 9297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009298|109298|989898|1|9999009298|MR|Test|E|Lead 9298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009299|109299|989898|1|9999009299|MR|Test|E|Lead 9299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009300|109300|989898|1|9999009300|MR|Test|E|Lead 9300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009301|109301|989898|1|9999009301|MR|Test|E|Lead 9301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009302|109302|989898|1|9999009302|MR|Test|E|Lead 9302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009303|109303|989898|1|9999009303|MR|Test|E|Lead 9303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009304|109304|989898|1|9999009304|MR|Test|E|Lead 9304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009305|109305|989898|1|9999009305|MR|Test|E|Lead 9305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009306|109306|989898|1|9999009306|MR|Test|E|Lead 9306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009307|109307|989898|1|9999009307|MR|Test|E|Lead 9307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009308|109308|989898|1|9999009308|MR|Test|E|Lead 9308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009309|109309|989898|1|9999009309|MR|Test|E|Lead 9309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009310|109310|989898|1|9999009310|MR|Test|E|Lead 9310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009311|109311|989898|1|9999009311|MR|Test|E|Lead 9311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009312|109312|989898|1|9999009312|MR|Test|E|Lead 9312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009313|109313|989898|1|9999009313|MR|Test|E|Lead 9313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009314|109314|989898|1|9999009314|MR|Test|E|Lead 9314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009315|109315|989898|1|9999009315|MR|Test|E|Lead 9315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009316|109316|989898|1|9999009316|MR|Test|E|Lead 9316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009317|109317|989898|1|9999009317|MR|Test|E|Lead 9317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009318|109318|989898|1|9999009318|MR|Test|E|Lead 9318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009319|109319|989898|1|9999009319|MR|Test|E|Lead 9319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009320|109320|989898|1|9999009320|MR|Test|E|Lead 9320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009321|109321|989898|1|9999009321|MR|Test|E|Lead 9321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009322|109322|989898|1|9999009322|MR|Test|E|Lead 9322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009323|109323|989898|1|9999009323|MR|Test|E|Lead 9323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009324|109324|989898|1|9999009324|MR|Test|E|Lead 9324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009325|109325|989898|1|9999009325|MR|Test|E|Lead 9325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009326|109326|989898|1|9999009326|MR|Test|E|Lead 9326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009327|109327|989898|1|9999009327|MR|Test|E|Lead 9327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009328|109328|989898|1|9999009328|MR|Test|E|Lead 9328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009329|109329|989898|1|9999009329|MR|Test|E|Lead 9329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009330|109330|989898|1|9999009330|MR|Test|E|Lead 9330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009331|109331|989898|1|9999009331|MR|Test|E|Lead 9331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009332|109332|989898|1|9999009332|MR|Test|E|Lead 9332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009333|109333|989898|1|9999009333|MR|Test|E|Lead 9333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009334|109334|989898|1|9999009334|MR|Test|E|Lead 9334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009335|109335|989898|1|9999009335|MR|Test|E|Lead 9335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009336|109336|989898|1|9999009336|MR|Test|E|Lead 9336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009337|109337|989898|1|9999009337|MR|Test|E|Lead 9337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009338|109338|989898|1|9999009338|MR|Test|E|Lead 9338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009339|109339|989898|1|9999009339|MR|Test|E|Lead 9339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009340|109340|989898|1|9999009340|MR|Test|E|Lead 9340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009341|109341|989898|1|9999009341|MR|Test|E|Lead 9341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009342|109342|989898|1|9999009342|MR|Test|E|Lead 9342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009343|109343|989898|1|9999009343|MR|Test|E|Lead 9343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009344|109344|989898|1|9999009344|MR|Test|E|Lead 9344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009345|109345|989898|1|9999009345|MR|Test|E|Lead 9345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009346|109346|989898|1|9999009346|MR|Test|E|Lead 9346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009347|109347|989898|1|9999009347|MR|Test|E|Lead 9347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009348|109348|989898|1|9999009348|MR|Test|E|Lead 9348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009349|109349|989898|1|9999009349|MR|Test|E|Lead 9349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009350|109350|989898|1|9999009350|MR|Test|E|Lead 9350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009351|109351|989898|1|9999009351|MR|Test|E|Lead 9351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009352|109352|989898|1|9999009352|MR|Test|E|Lead 9352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009353|109353|989898|1|9999009353|MR|Test|E|Lead 9353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009354|109354|989898|1|9999009354|MR|Test|E|Lead 9354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009355|109355|989898|1|9999009355|MR|Test|E|Lead 9355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009356|109356|989898|1|9999009356|MR|Test|E|Lead 9356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009357|109357|989898|1|9999009357|MR|Test|E|Lead 9357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009358|109358|989898|1|9999009358|MR|Test|E|Lead 9358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009359|109359|989898|1|9999009359|MR|Test|E|Lead 9359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009360|109360|989898|1|9999009360|MR|Test|E|Lead 9360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009361|109361|989898|1|9999009361|MR|Test|E|Lead 9361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009362|109362|989898|1|9999009362|MR|Test|E|Lead 9362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009363|109363|989898|1|9999009363|MR|Test|E|Lead 9363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009364|109364|989898|1|9999009364|MR|Test|E|Lead 9364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009365|109365|989898|1|9999009365|MR|Test|E|Lead 9365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009366|109366|989898|1|9999009366|MR|Test|E|Lead 9366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009367|109367|989898|1|9999009367|MR|Test|E|Lead 9367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009368|109368|989898|1|9999009368|MR|Test|E|Lead 9368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009369|109369|989898|1|9999009369|MR|Test|E|Lead 9369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009370|109370|989898|1|9999009370|MR|Test|E|Lead 9370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009371|109371|989898|1|9999009371|MR|Test|E|Lead 9371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009372|109372|989898|1|9999009372|MR|Test|E|Lead 9372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009373|109373|989898|1|9999009373|MR|Test|E|Lead 9373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009374|109374|989898|1|9999009374|MR|Test|E|Lead 9374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009375|109375|989898|1|9999009375|MR|Test|E|Lead 9375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009376|109376|989898|1|9999009376|MR|Test|E|Lead 9376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009377|109377|989898|1|9999009377|MR|Test|E|Lead 9377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009378|109378|989898|1|9999009378|MR|Test|E|Lead 9378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009379|109379|989898|1|9999009379|MR|Test|E|Lead 9379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009380|109380|989898|1|9999009380|MR|Test|E|Lead 9380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009381|109381|989898|1|9999009381|MR|Test|E|Lead 9381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009382|109382|989898|1|9999009382|MR|Test|E|Lead 9382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009383|109383|989898|1|9999009383|MR|Test|E|Lead 9383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009384|109384|989898|1|9999009384|MR|Test|E|Lead 9384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009385|109385|989898|1|9999009385|MR|Test|E|Lead 9385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009386|109386|989898|1|9999009386|MR|Test|E|Lead 9386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009387|109387|989898|1|9999009387|MR|Test|E|Lead 9387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009388|109388|989898|1|9999009388|MR|Test|E|Lead 9388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009389|109389|989898|1|9999009389|MR|Test|E|Lead 9389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009390|109390|989898|1|9999009390|MR|Test|E|Lead 9390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009391|109391|989898|1|9999009391|MR|Test|E|Lead 9391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009392|109392|989898|1|9999009392|MR|Test|E|Lead 9392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009393|109393|989898|1|9999009393|MR|Test|E|Lead 9393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009394|109394|989898|1|9999009394|MR|Test|E|Lead 9394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009395|109395|989898|1|9999009395|MR|Test|E|Lead 9395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009396|109396|989898|1|9999009396|MR|Test|E|Lead 9396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009397|109397|989898|1|9999009397|MR|Test|E|Lead 9397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009398|109398|989898|1|9999009398|MR|Test|E|Lead 9398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009399|109399|989898|1|9999009399|MR|Test|E|Lead 9399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009400|109400|989898|1|9999009400|MR|Test|E|Lead 9400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009401|109401|989898|1|9999009401|MR|Test|E|Lead 9401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009402|109402|989898|1|9999009402|MR|Test|E|Lead 9402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009403|109403|989898|1|9999009403|MR|Test|E|Lead 9403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009404|109404|989898|1|9999009404|MR|Test|E|Lead 9404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009405|109405|989898|1|9999009405|MR|Test|E|Lead 9405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009406|109406|989898|1|9999009406|MR|Test|E|Lead 9406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009407|109407|989898|1|9999009407|MR|Test|E|Lead 9407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009408|109408|989898|1|9999009408|MR|Test|E|Lead 9408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009409|109409|989898|1|9999009409|MR|Test|E|Lead 9409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009410|109410|989898|1|9999009410|MR|Test|E|Lead 9410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009411|109411|989898|1|9999009411|MR|Test|E|Lead 9411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009412|109412|989898|1|9999009412|MR|Test|E|Lead 9412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009413|109413|989898|1|9999009413|MR|Test|E|Lead 9413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009414|109414|989898|1|9999009414|MR|Test|E|Lead 9414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009415|109415|989898|1|9999009415|MR|Test|E|Lead 9415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009416|109416|989898|1|9999009416|MR|Test|E|Lead 9416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009417|109417|989898|1|9999009417|MR|Test|E|Lead 9417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009418|109418|989898|1|9999009418|MR|Test|E|Lead 9418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009419|109419|989898|1|9999009419|MR|Test|E|Lead 9419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009420|109420|989898|1|9999009420|MR|Test|E|Lead 9420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009421|109421|989898|1|9999009421|MR|Test|E|Lead 9421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009422|109422|989898|1|9999009422|MR|Test|E|Lead 9422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009423|109423|989898|1|9999009423|MR|Test|E|Lead 9423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009424|109424|989898|1|9999009424|MR|Test|E|Lead 9424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009425|109425|989898|1|9999009425|MR|Test|E|Lead 9425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009426|109426|989898|1|9999009426|MR|Test|E|Lead 9426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009427|109427|989898|1|9999009427|MR|Test|E|Lead 9427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009428|109428|989898|1|9999009428|MR|Test|E|Lead 9428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009429|109429|989898|1|9999009429|MR|Test|E|Lead 9429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009430|109430|989898|1|9999009430|MR|Test|E|Lead 9430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009431|109431|989898|1|9999009431|MR|Test|E|Lead 9431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009432|109432|989898|1|9999009432|MR|Test|E|Lead 9432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009433|109433|989898|1|9999009433|MR|Test|E|Lead 9433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009434|109434|989898|1|9999009434|MR|Test|E|Lead 9434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009435|109435|989898|1|9999009435|MR|Test|E|Lead 9435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009436|109436|989898|1|9999009436|MR|Test|E|Lead 9436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009437|109437|989898|1|9999009437|MR|Test|E|Lead 9437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009438|109438|989898|1|9999009438|MR|Test|E|Lead 9438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009439|109439|989898|1|9999009439|MR|Test|E|Lead 9439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009440|109440|989898|1|9999009440|MR|Test|E|Lead 9440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009441|109441|989898|1|9999009441|MR|Test|E|Lead 9441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009442|109442|989898|1|9999009442|MR|Test|E|Lead 9442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009443|109443|989898|1|9999009443|MR|Test|E|Lead 9443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009444|109444|989898|1|9999009444|MR|Test|E|Lead 9444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009445|109445|989898|1|9999009445|MR|Test|E|Lead 9445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009446|109446|989898|1|9999009446|MR|Test|E|Lead 9446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009447|109447|989898|1|9999009447|MR|Test|E|Lead 9447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009448|109448|989898|1|9999009448|MR|Test|E|Lead 9448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009449|109449|989898|1|9999009449|MR|Test|E|Lead 9449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009450|109450|989898|1|9999009450|MR|Test|E|Lead 9450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009451|109451|989898|1|9999009451|MR|Test|E|Lead 9451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009452|109452|989898|1|9999009452|MR|Test|E|Lead 9452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009453|109453|989898|1|9999009453|MR|Test|E|Lead 9453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009454|109454|989898|1|9999009454|MR|Test|E|Lead 9454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009455|109455|989898|1|9999009455|MR|Test|E|Lead 9455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009456|109456|989898|1|9999009456|MR|Test|E|Lead 9456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009457|109457|989898|1|9999009457|MR|Test|E|Lead 9457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009458|109458|989898|1|9999009458|MR|Test|E|Lead 9458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009459|109459|989898|1|9999009459|MR|Test|E|Lead 9459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009460|109460|989898|1|9999009460|MR|Test|E|Lead 9460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009461|109461|989898|1|9999009461|MR|Test|E|Lead 9461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009462|109462|989898|1|9999009462|MR|Test|E|Lead 9462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009463|109463|989898|1|9999009463|MR|Test|E|Lead 9463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009464|109464|989898|1|9999009464|MR|Test|E|Lead 9464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009465|109465|989898|1|9999009465|MR|Test|E|Lead 9465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009466|109466|989898|1|9999009466|MR|Test|E|Lead 9466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009467|109467|989898|1|9999009467|MR|Test|E|Lead 9467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009468|109468|989898|1|9999009468|MR|Test|E|Lead 9468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009469|109469|989898|1|9999009469|MR|Test|E|Lead 9469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009470|109470|989898|1|9999009470|MR|Test|E|Lead 9470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009471|109471|989898|1|9999009471|MR|Test|E|Lead 9471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009472|109472|989898|1|9999009472|MR|Test|E|Lead 9472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009473|109473|989898|1|9999009473|MR|Test|E|Lead 9473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009474|109474|989898|1|9999009474|MR|Test|E|Lead 9474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009475|109475|989898|1|9999009475|MR|Test|E|Lead 9475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009476|109476|989898|1|9999009476|MR|Test|E|Lead 9476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009477|109477|989898|1|9999009477|MR|Test|E|Lead 9477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009478|109478|989898|1|9999009478|MR|Test|E|Lead 9478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009479|109479|989898|1|9999009479|MR|Test|E|Lead 9479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009480|109480|989898|1|9999009480|MR|Test|E|Lead 9480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009481|109481|989898|1|9999009481|MR|Test|E|Lead 9481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009482|109482|989898|1|9999009482|MR|Test|E|Lead 9482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009483|109483|989898|1|9999009483|MR|Test|E|Lead 9483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009484|109484|989898|1|9999009484|MR|Test|E|Lead 9484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009485|109485|989898|1|9999009485|MR|Test|E|Lead 9485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009486|109486|989898|1|9999009486|MR|Test|E|Lead 9486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009487|109487|989898|1|9999009487|MR|Test|E|Lead 9487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009488|109488|989898|1|9999009488|MR|Test|E|Lead 9488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009489|109489|989898|1|9999009489|MR|Test|E|Lead 9489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009490|109490|989898|1|9999009490|MR|Test|E|Lead 9490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009491|109491|989898|1|9999009491|MR|Test|E|Lead 9491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009492|109492|989898|1|9999009492|MR|Test|E|Lead 9492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009493|109493|989898|1|9999009493|MR|Test|E|Lead 9493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009494|109494|989898|1|9999009494|MR|Test|E|Lead 9494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009495|109495|989898|1|9999009495|MR|Test|E|Lead 9495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009496|109496|989898|1|9999009496|MR|Test|E|Lead 9496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009497|109497|989898|1|9999009497|MR|Test|E|Lead 9497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009498|109498|989898|1|9999009498|MR|Test|E|Lead 9498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009499|109499|989898|1|9999009499|MR|Test|E|Lead 9499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009500|109500|989898|1|9999009500|MR|Test|E|Lead 9500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009501|109501|989898|1|9999009501|MR|Test|E|Lead 9501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009502|109502|989898|1|9999009502|MR|Test|E|Lead 9502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009503|109503|989898|1|9999009503|MR|Test|E|Lead 9503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009504|109504|989898|1|9999009504|MR|Test|E|Lead 9504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009505|109505|989898|1|9999009505|MR|Test|E|Lead 9505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009506|109506|989898|1|9999009506|MR|Test|E|Lead 9506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009507|109507|989898|1|9999009507|MR|Test|E|Lead 9507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009508|109508|989898|1|9999009508|MR|Test|E|Lead 9508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009509|109509|989898|1|9999009509|MR|Test|E|Lead 9509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009510|109510|989898|1|9999009510|MR|Test|E|Lead 9510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009511|109511|989898|1|9999009511|MR|Test|E|Lead 9511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009512|109512|989898|1|9999009512|MR|Test|E|Lead 9512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009513|109513|989898|1|9999009513|MR|Test|E|Lead 9513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009514|109514|989898|1|9999009514|MR|Test|E|Lead 9514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009515|109515|989898|1|9999009515|MR|Test|E|Lead 9515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009516|109516|989898|1|9999009516|MR|Test|E|Lead 9516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009517|109517|989898|1|9999009517|MR|Test|E|Lead 9517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009518|109518|989898|1|9999009518|MR|Test|E|Lead 9518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009519|109519|989898|1|9999009519|MR|Test|E|Lead 9519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009520|109520|989898|1|9999009520|MR|Test|E|Lead 9520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009521|109521|989898|1|9999009521|MR|Test|E|Lead 9521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009522|109522|989898|1|9999009522|MR|Test|E|Lead 9522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009523|109523|989898|1|9999009523|MR|Test|E|Lead 9523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009524|109524|989898|1|9999009524|MR|Test|E|Lead 9524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009525|109525|989898|1|9999009525|MR|Test|E|Lead 9525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009526|109526|989898|1|9999009526|MR|Test|E|Lead 9526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009527|109527|989898|1|9999009527|MR|Test|E|Lead 9527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009528|109528|989898|1|9999009528|MR|Test|E|Lead 9528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009529|109529|989898|1|9999009529|MR|Test|E|Lead 9529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009530|109530|989898|1|9999009530|MR|Test|E|Lead 9530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009531|109531|989898|1|9999009531|MR|Test|E|Lead 9531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009532|109532|989898|1|9999009532|MR|Test|E|Lead 9532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009533|109533|989898|1|9999009533|MR|Test|E|Lead 9533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009534|109534|989898|1|9999009534|MR|Test|E|Lead 9534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009535|109535|989898|1|9999009535|MR|Test|E|Lead 9535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009536|109536|989898|1|9999009536|MR|Test|E|Lead 9536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009537|109537|989898|1|9999009537|MR|Test|E|Lead 9537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009538|109538|989898|1|9999009538|MR|Test|E|Lead 9538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009539|109539|989898|1|9999009539|MR|Test|E|Lead 9539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009540|109540|989898|1|9999009540|MR|Test|E|Lead 9540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009541|109541|989898|1|9999009541|MR|Test|E|Lead 9541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009542|109542|989898|1|9999009542|MR|Test|E|Lead 9542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009543|109543|989898|1|9999009543|MR|Test|E|Lead 9543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009544|109544|989898|1|9999009544|MR|Test|E|Lead 9544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009545|109545|989898|1|9999009545|MR|Test|E|Lead 9545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009546|109546|989898|1|9999009546|MR|Test|E|Lead 9546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009547|109547|989898|1|9999009547|MR|Test|E|Lead 9547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009548|109548|989898|1|9999009548|MR|Test|E|Lead 9548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009549|109549|989898|1|9999009549|MR|Test|E|Lead 9549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009550|109550|989898|1|9999009550|MR|Test|E|Lead 9550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009551|109551|989898|1|9999009551|MR|Test|E|Lead 9551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009552|109552|989898|1|9999009552|MR|Test|E|Lead 9552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009553|109553|989898|1|9999009553|MR|Test|E|Lead 9553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009554|109554|989898|1|9999009554|MR|Test|E|Lead 9554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009555|109555|989898|1|9999009555|MR|Test|E|Lead 9555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009556|109556|989898|1|9999009556|MR|Test|E|Lead 9556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009557|109557|989898|1|9999009557|MR|Test|E|Lead 9557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009558|109558|989898|1|9999009558|MR|Test|E|Lead 9558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009559|109559|989898|1|9999009559|MR|Test|E|Lead 9559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009560|109560|989898|1|9999009560|MR|Test|E|Lead 9560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009561|109561|989898|1|9999009561|MR|Test|E|Lead 9561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009562|109562|989898|1|9999009562|MR|Test|E|Lead 9562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009563|109563|989898|1|9999009563|MR|Test|E|Lead 9563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009564|109564|989898|1|9999009564|MR|Test|E|Lead 9564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009565|109565|989898|1|9999009565|MR|Test|E|Lead 9565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009566|109566|989898|1|9999009566|MR|Test|E|Lead 9566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009567|109567|989898|1|9999009567|MR|Test|E|Lead 9567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009568|109568|989898|1|9999009568|MR|Test|E|Lead 9568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009569|109569|989898|1|9999009569|MR|Test|E|Lead 9569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009570|109570|989898|1|9999009570|MR|Test|E|Lead 9570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009571|109571|989898|1|9999009571|MR|Test|E|Lead 9571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009572|109572|989898|1|9999009572|MR|Test|E|Lead 9572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009573|109573|989898|1|9999009573|MR|Test|E|Lead 9573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009574|109574|989898|1|9999009574|MR|Test|E|Lead 9574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009575|109575|989898|1|9999009575|MR|Test|E|Lead 9575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009576|109576|989898|1|9999009576|MR|Test|E|Lead 9576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009577|109577|989898|1|9999009577|MR|Test|E|Lead 9577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009578|109578|989898|1|9999009578|MR|Test|E|Lead 9578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009579|109579|989898|1|9999009579|MR|Test|E|Lead 9579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009580|109580|989898|1|9999009580|MR|Test|E|Lead 9580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009581|109581|989898|1|9999009581|MR|Test|E|Lead 9581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009582|109582|989898|1|9999009582|MR|Test|E|Lead 9582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009583|109583|989898|1|9999009583|MR|Test|E|Lead 9583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009584|109584|989898|1|9999009584|MR|Test|E|Lead 9584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009585|109585|989898|1|9999009585|MR|Test|E|Lead 9585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009586|109586|989898|1|9999009586|MR|Test|E|Lead 9586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009587|109587|989898|1|9999009587|MR|Test|E|Lead 9587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009588|109588|989898|1|9999009588|MR|Test|E|Lead 9588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009589|109589|989898|1|9999009589|MR|Test|E|Lead 9589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009590|109590|989898|1|9999009590|MR|Test|E|Lead 9590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009591|109591|989898|1|9999009591|MR|Test|E|Lead 9591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009592|109592|989898|1|9999009592|MR|Test|E|Lead 9592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009593|109593|989898|1|9999009593|MR|Test|E|Lead 9593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009594|109594|989898|1|9999009594|MR|Test|E|Lead 9594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009595|109595|989898|1|9999009595|MR|Test|E|Lead 9595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009596|109596|989898|1|9999009596|MR|Test|E|Lead 9596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009597|109597|989898|1|9999009597|MR|Test|E|Lead 9597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009598|109598|989898|1|9999009598|MR|Test|E|Lead 9598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009599|109599|989898|1|9999009599|MR|Test|E|Lead 9599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009600|109600|989898|1|9999009600|MR|Test|E|Lead 9600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009601|109601|989898|1|9999009601|MR|Test|E|Lead 9601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009602|109602|989898|1|9999009602|MR|Test|E|Lead 9602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009603|109603|989898|1|9999009603|MR|Test|E|Lead 9603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009604|109604|989898|1|9999009604|MR|Test|E|Lead 9604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009605|109605|989898|1|9999009605|MR|Test|E|Lead 9605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009606|109606|989898|1|9999009606|MR|Test|E|Lead 9606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009607|109607|989898|1|9999009607|MR|Test|E|Lead 9607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009608|109608|989898|1|9999009608|MR|Test|E|Lead 9608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009609|109609|989898|1|9999009609|MR|Test|E|Lead 9609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009610|109610|989898|1|9999009610|MR|Test|E|Lead 9610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009611|109611|989898|1|9999009611|MR|Test|E|Lead 9611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009612|109612|989898|1|9999009612|MR|Test|E|Lead 9612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009613|109613|989898|1|9999009613|MR|Test|E|Lead 9613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009614|109614|989898|1|9999009614|MR|Test|E|Lead 9614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009615|109615|989898|1|9999009615|MR|Test|E|Lead 9615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009616|109616|989898|1|9999009616|MR|Test|E|Lead 9616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009617|109617|989898|1|9999009617|MR|Test|E|Lead 9617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009618|109618|989898|1|9999009618|MR|Test|E|Lead 9618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009619|109619|989898|1|9999009619|MR|Test|E|Lead 9619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009620|109620|989898|1|9999009620|MR|Test|E|Lead 9620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009621|109621|989898|1|9999009621|MR|Test|E|Lead 9621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009622|109622|989898|1|9999009622|MR|Test|E|Lead 9622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009623|109623|989898|1|9999009623|MR|Test|E|Lead 9623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009624|109624|989898|1|9999009624|MR|Test|E|Lead 9624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009625|109625|989898|1|9999009625|MR|Test|E|Lead 9625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009626|109626|989898|1|9999009626|MR|Test|E|Lead 9626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009627|109627|989898|1|9999009627|MR|Test|E|Lead 9627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009628|109628|989898|1|9999009628|MR|Test|E|Lead 9628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009629|109629|989898|1|9999009629|MR|Test|E|Lead 9629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009630|109630|989898|1|9999009630|MR|Test|E|Lead 9630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009631|109631|989898|1|9999009631|MR|Test|E|Lead 9631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009632|109632|989898|1|9999009632|MR|Test|E|Lead 9632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009633|109633|989898|1|9999009633|MR|Test|E|Lead 9633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009634|109634|989898|1|9999009634|MR|Test|E|Lead 9634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009635|109635|989898|1|9999009635|MR|Test|E|Lead 9635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009636|109636|989898|1|9999009636|MR|Test|E|Lead 9636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009637|109637|989898|1|9999009637|MR|Test|E|Lead 9637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009638|109638|989898|1|9999009638|MR|Test|E|Lead 9638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009639|109639|989898|1|9999009639|MR|Test|E|Lead 9639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009640|109640|989898|1|9999009640|MR|Test|E|Lead 9640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009641|109641|989898|1|9999009641|MR|Test|E|Lead 9641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009642|109642|989898|1|9999009642|MR|Test|E|Lead 9642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009643|109643|989898|1|9999009643|MR|Test|E|Lead 9643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009644|109644|989898|1|9999009644|MR|Test|E|Lead 9644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009645|109645|989898|1|9999009645|MR|Test|E|Lead 9645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009646|109646|989898|1|9999009646|MR|Test|E|Lead 9646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009647|109647|989898|1|9999009647|MR|Test|E|Lead 9647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009648|109648|989898|1|9999009648|MR|Test|E|Lead 9648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009649|109649|989898|1|9999009649|MR|Test|E|Lead 9649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009650|109650|989898|1|9999009650|MR|Test|E|Lead 9650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009651|109651|989898|1|9999009651|MR|Test|E|Lead 9651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009652|109652|989898|1|9999009652|MR|Test|E|Lead 9652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009653|109653|989898|1|9999009653|MR|Test|E|Lead 9653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009654|109654|989898|1|9999009654|MR|Test|E|Lead 9654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009655|109655|989898|1|9999009655|MR|Test|E|Lead 9655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009656|109656|989898|1|9999009656|MR|Test|E|Lead 9656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009657|109657|989898|1|9999009657|MR|Test|E|Lead 9657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009658|109658|989898|1|9999009658|MR|Test|E|Lead 9658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009659|109659|989898|1|9999009659|MR|Test|E|Lead 9659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009660|109660|989898|1|9999009660|MR|Test|E|Lead 9660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009661|109661|989898|1|9999009661|MR|Test|E|Lead 9661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009662|109662|989898|1|9999009662|MR|Test|E|Lead 9662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009663|109663|989898|1|9999009663|MR|Test|E|Lead 9663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009664|109664|989898|1|9999009664|MR|Test|E|Lead 9664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009665|109665|989898|1|9999009665|MR|Test|E|Lead 9665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009666|109666|989898|1|9999009666|MR|Test|E|Lead 9666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009667|109667|989898|1|9999009667|MR|Test|E|Lead 9667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009668|109668|989898|1|9999009668|MR|Test|E|Lead 9668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009669|109669|989898|1|9999009669|MR|Test|E|Lead 9669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009670|109670|989898|1|9999009670|MR|Test|E|Lead 9670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009671|109671|989898|1|9999009671|MR|Test|E|Lead 9671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009672|109672|989898|1|9999009672|MR|Test|E|Lead 9672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009673|109673|989898|1|9999009673|MR|Test|E|Lead 9673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009674|109674|989898|1|9999009674|MR|Test|E|Lead 9674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009675|109675|989898|1|9999009675|MR|Test|E|Lead 9675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009676|109676|989898|1|9999009676|MR|Test|E|Lead 9676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009677|109677|989898|1|9999009677|MR|Test|E|Lead 9677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009678|109678|989898|1|9999009678|MR|Test|E|Lead 9678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009679|109679|989898|1|9999009679|MR|Test|E|Lead 9679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009680|109680|989898|1|9999009680|MR|Test|E|Lead 9680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009681|109681|989898|1|9999009681|MR|Test|E|Lead 9681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009682|109682|989898|1|9999009682|MR|Test|E|Lead 9682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009683|109683|989898|1|9999009683|MR|Test|E|Lead 9683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009684|109684|989898|1|9999009684|MR|Test|E|Lead 9684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009685|109685|989898|1|9999009685|MR|Test|E|Lead 9685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009686|109686|989898|1|9999009686|MR|Test|E|Lead 9686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009687|109687|989898|1|9999009687|MR|Test|E|Lead 9687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009688|109688|989898|1|9999009688|MR|Test|E|Lead 9688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009689|109689|989898|1|9999009689|MR|Test|E|Lead 9689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009690|109690|989898|1|9999009690|MR|Test|E|Lead 9690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009691|109691|989898|1|9999009691|MR|Test|E|Lead 9691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009692|109692|989898|1|9999009692|MR|Test|E|Lead 9692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009693|109693|989898|1|9999009693|MR|Test|E|Lead 9693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009694|109694|989898|1|9999009694|MR|Test|E|Lead 9694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009695|109695|989898|1|9999009695|MR|Test|E|Lead 9695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009696|109696|989898|1|9999009696|MR|Test|E|Lead 9696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009697|109697|989898|1|9999009697|MR|Test|E|Lead 9697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009698|109698|989898|1|9999009698|MR|Test|E|Lead 9698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009699|109699|989898|1|9999009699|MR|Test|E|Lead 9699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009700|109700|989898|1|9999009700|MR|Test|E|Lead 9700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009701|109701|989898|1|9999009701|MR|Test|E|Lead 9701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009702|109702|989898|1|9999009702|MR|Test|E|Lead 9702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009703|109703|989898|1|9999009703|MR|Test|E|Lead 9703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009704|109704|989898|1|9999009704|MR|Test|E|Lead 9704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009705|109705|989898|1|9999009705|MR|Test|E|Lead 9705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009706|109706|989898|1|9999009706|MR|Test|E|Lead 9706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009707|109707|989898|1|9999009707|MR|Test|E|Lead 9707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009708|109708|989898|1|9999009708|MR|Test|E|Lead 9708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009709|109709|989898|1|9999009709|MR|Test|E|Lead 9709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009710|109710|989898|1|9999009710|MR|Test|E|Lead 9710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009711|109711|989898|1|9999009711|MR|Test|E|Lead 9711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009712|109712|989898|1|9999009712|MR|Test|E|Lead 9712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009713|109713|989898|1|9999009713|MR|Test|E|Lead 9713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009714|109714|989898|1|9999009714|MR|Test|E|Lead 9714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009715|109715|989898|1|9999009715|MR|Test|E|Lead 9715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009716|109716|989898|1|9999009716|MR|Test|E|Lead 9716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009717|109717|989898|1|9999009717|MR|Test|E|Lead 9717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009718|109718|989898|1|9999009718|MR|Test|E|Lead 9718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009719|109719|989898|1|9999009719|MR|Test|E|Lead 9719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009720|109720|989898|1|9999009720|MR|Test|E|Lead 9720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009721|109721|989898|1|9999009721|MR|Test|E|Lead 9721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009722|109722|989898|1|9999009722|MR|Test|E|Lead 9722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009723|109723|989898|1|9999009723|MR|Test|E|Lead 9723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009724|109724|989898|1|9999009724|MR|Test|E|Lead 9724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009725|109725|989898|1|9999009725|MR|Test|E|Lead 9725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009726|109726|989898|1|9999009726|MR|Test|E|Lead 9726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009727|109727|989898|1|9999009727|MR|Test|E|Lead 9727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009728|109728|989898|1|9999009728|MR|Test|E|Lead 9728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009729|109729|989898|1|9999009729|MR|Test|E|Lead 9729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009730|109730|989898|1|9999009730|MR|Test|E|Lead 9730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009731|109731|989898|1|9999009731|MR|Test|E|Lead 9731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009732|109732|989898|1|9999009732|MR|Test|E|Lead 9732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009733|109733|989898|1|9999009733|MR|Test|E|Lead 9733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009734|109734|989898|1|9999009734|MR|Test|E|Lead 9734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009735|109735|989898|1|9999009735|MR|Test|E|Lead 9735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009736|109736|989898|1|9999009736|MR|Test|E|Lead 9736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009737|109737|989898|1|9999009737|MR|Test|E|Lead 9737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009738|109738|989898|1|9999009738|MR|Test|E|Lead 9738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009739|109739|989898|1|9999009739|MR|Test|E|Lead 9739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009740|109740|989898|1|9999009740|MR|Test|E|Lead 9740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009741|109741|989898|1|9999009741|MR|Test|E|Lead 9741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009742|109742|989898|1|9999009742|MR|Test|E|Lead 9742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009743|109743|989898|1|9999009743|MR|Test|E|Lead 9743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009744|109744|989898|1|9999009744|MR|Test|E|Lead 9744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009745|109745|989898|1|9999009745|MR|Test|E|Lead 9745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009746|109746|989898|1|9999009746|MR|Test|E|Lead 9746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009747|109747|989898|1|9999009747|MR|Test|E|Lead 9747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009748|109748|989898|1|9999009748|MR|Test|E|Lead 9748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009749|109749|989898|1|9999009749|MR|Test|E|Lead 9749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009750|109750|989898|1|9999009750|MR|Test|E|Lead 9750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009751|109751|989898|1|9999009751|MR|Test|E|Lead 9751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009752|109752|989898|1|9999009752|MR|Test|E|Lead 9752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009753|109753|989898|1|9999009753|MR|Test|E|Lead 9753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009754|109754|989898|1|9999009754|MR|Test|E|Lead 9754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009755|109755|989898|1|9999009755|MR|Test|E|Lead 9755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009756|109756|989898|1|9999009756|MR|Test|E|Lead 9756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009757|109757|989898|1|9999009757|MR|Test|E|Lead 9757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009758|109758|989898|1|9999009758|MR|Test|E|Lead 9758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009759|109759|989898|1|9999009759|MR|Test|E|Lead 9759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009760|109760|989898|1|9999009760|MR|Test|E|Lead 9760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009761|109761|989898|1|9999009761|MR|Test|E|Lead 9761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009762|109762|989898|1|9999009762|MR|Test|E|Lead 9762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009763|109763|989898|1|9999009763|MR|Test|E|Lead 9763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009764|109764|989898|1|9999009764|MR|Test|E|Lead 9764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009765|109765|989898|1|9999009765|MR|Test|E|Lead 9765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009766|109766|989898|1|9999009766|MR|Test|E|Lead 9766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009767|109767|989898|1|9999009767|MR|Test|E|Lead 9767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009768|109768|989898|1|9999009768|MR|Test|E|Lead 9768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009769|109769|989898|1|9999009769|MR|Test|E|Lead 9769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009770|109770|989898|1|9999009770|MR|Test|E|Lead 9770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009771|109771|989898|1|9999009771|MR|Test|E|Lead 9771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009772|109772|989898|1|9999009772|MR|Test|E|Lead 9772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009773|109773|989898|1|9999009773|MR|Test|E|Lead 9773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009774|109774|989898|1|9999009774|MR|Test|E|Lead 9774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009775|109775|989898|1|9999009775|MR|Test|E|Lead 9775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009776|109776|989898|1|9999009776|MR|Test|E|Lead 9776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009777|109777|989898|1|9999009777|MR|Test|E|Lead 9777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009778|109778|989898|1|9999009778|MR|Test|E|Lead 9778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009779|109779|989898|1|9999009779|MR|Test|E|Lead 9779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009780|109780|989898|1|9999009780|MR|Test|E|Lead 9780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009781|109781|989898|1|9999009781|MR|Test|E|Lead 9781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009782|109782|989898|1|9999009782|MR|Test|E|Lead 9782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009783|109783|989898|1|9999009783|MR|Test|E|Lead 9783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009784|109784|989898|1|9999009784|MR|Test|E|Lead 9784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009785|109785|989898|1|9999009785|MR|Test|E|Lead 9785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009786|109786|989898|1|9999009786|MR|Test|E|Lead 9786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009787|109787|989898|1|9999009787|MR|Test|E|Lead 9787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009788|109788|989898|1|9999009788|MR|Test|E|Lead 9788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009789|109789|989898|1|9999009789|MR|Test|E|Lead 9789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009790|109790|989898|1|9999009790|MR|Test|E|Lead 9790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009791|109791|989898|1|9999009791|MR|Test|E|Lead 9791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009792|109792|989898|1|9999009792|MR|Test|E|Lead 9792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009793|109793|989898|1|9999009793|MR|Test|E|Lead 9793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009794|109794|989898|1|9999009794|MR|Test|E|Lead 9794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009795|109795|989898|1|9999009795|MR|Test|E|Lead 9795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009796|109796|989898|1|9999009796|MR|Test|E|Lead 9796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009797|109797|989898|1|9999009797|MR|Test|E|Lead 9797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009798|109798|989898|1|9999009798|MR|Test|E|Lead 9798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009799|109799|989898|1|9999009799|MR|Test|E|Lead 9799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009800|109800|989898|1|9999009800|MR|Test|E|Lead 9800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009801|109801|989898|1|9999009801|MR|Test|E|Lead 9801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009802|109802|989898|1|9999009802|MR|Test|E|Lead 9802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009803|109803|989898|1|9999009803|MR|Test|E|Lead 9803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009804|109804|989898|1|9999009804|MR|Test|E|Lead 9804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009805|109805|989898|1|9999009805|MR|Test|E|Lead 9805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009806|109806|989898|1|9999009806|MR|Test|E|Lead 9806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009807|109807|989898|1|9999009807|MR|Test|E|Lead 9807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009808|109808|989898|1|9999009808|MR|Test|E|Lead 9808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009809|109809|989898|1|9999009809|MR|Test|E|Lead 9809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009810|109810|989898|1|9999009810|MR|Test|E|Lead 9810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009811|109811|989898|1|9999009811|MR|Test|E|Lead 9811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009812|109812|989898|1|9999009812|MR|Test|E|Lead 9812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009813|109813|989898|1|9999009813|MR|Test|E|Lead 9813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009814|109814|989898|1|9999009814|MR|Test|E|Lead 9814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009815|109815|989898|1|9999009815|MR|Test|E|Lead 9815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009816|109816|989898|1|9999009816|MR|Test|E|Lead 9816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009817|109817|989898|1|9999009817|MR|Test|E|Lead 9817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009818|109818|989898|1|9999009818|MR|Test|E|Lead 9818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009819|109819|989898|1|9999009819|MR|Test|E|Lead 9819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009820|109820|989898|1|9999009820|MR|Test|E|Lead 9820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009821|109821|989898|1|9999009821|MR|Test|E|Lead 9821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009822|109822|989898|1|9999009822|MR|Test|E|Lead 9822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009823|109823|989898|1|9999009823|MR|Test|E|Lead 9823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009824|109824|989898|1|9999009824|MR|Test|E|Lead 9824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009825|109825|989898|1|9999009825|MR|Test|E|Lead 9825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009826|109826|989898|1|9999009826|MR|Test|E|Lead 9826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009827|109827|989898|1|9999009827|MR|Test|E|Lead 9827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009828|109828|989898|1|9999009828|MR|Test|E|Lead 9828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009829|109829|989898|1|9999009829|MR|Test|E|Lead 9829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009830|109830|989898|1|9999009830|MR|Test|E|Lead 9830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009831|109831|989898|1|9999009831|MR|Test|E|Lead 9831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009832|109832|989898|1|9999009832|MR|Test|E|Lead 9832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009833|109833|989898|1|9999009833|MR|Test|E|Lead 9833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009834|109834|989898|1|9999009834|MR|Test|E|Lead 9834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009835|109835|989898|1|9999009835|MR|Test|E|Lead 9835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009836|109836|989898|1|9999009836|MR|Test|E|Lead 9836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009837|109837|989898|1|9999009837|MR|Test|E|Lead 9837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009838|109838|989898|1|9999009838|MR|Test|E|Lead 9838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009839|109839|989898|1|9999009839|MR|Test|E|Lead 9839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009840|109840|989898|1|9999009840|MR|Test|E|Lead 9840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009841|109841|989898|1|9999009841|MR|Test|E|Lead 9841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009842|109842|989898|1|9999009842|MR|Test|E|Lead 9842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009843|109843|989898|1|9999009843|MR|Test|E|Lead 9843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009844|109844|989898|1|9999009844|MR|Test|E|Lead 9844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009845|109845|989898|1|9999009845|MR|Test|E|Lead 9845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009846|109846|989898|1|9999009846|MR|Test|E|Lead 9846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009847|109847|989898|1|9999009847|MR|Test|E|Lead 9847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009848|109848|989898|1|9999009848|MR|Test|E|Lead 9848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009849|109849|989898|1|9999009849|MR|Test|E|Lead 9849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009850|109850|989898|1|9999009850|MR|Test|E|Lead 9850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009851|109851|989898|1|9999009851|MR|Test|E|Lead 9851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009852|109852|989898|1|9999009852|MR|Test|E|Lead 9852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009853|109853|989898|1|9999009853|MR|Test|E|Lead 9853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009854|109854|989898|1|9999009854|MR|Test|E|Lead 9854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009855|109855|989898|1|9999009855|MR|Test|E|Lead 9855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009856|109856|989898|1|9999009856|MR|Test|E|Lead 9856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009857|109857|989898|1|9999009857|MR|Test|E|Lead 9857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009858|109858|989898|1|9999009858|MR|Test|E|Lead 9858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009859|109859|989898|1|9999009859|MR|Test|E|Lead 9859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009860|109860|989898|1|9999009860|MR|Test|E|Lead 9860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009861|109861|989898|1|9999009861|MR|Test|E|Lead 9861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009862|109862|989898|1|9999009862|MR|Test|E|Lead 9862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009863|109863|989898|1|9999009863|MR|Test|E|Lead 9863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009864|109864|989898|1|9999009864|MR|Test|E|Lead 9864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009865|109865|989898|1|9999009865|MR|Test|E|Lead 9865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009866|109866|989898|1|9999009866|MR|Test|E|Lead 9866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009867|109867|989898|1|9999009867|MR|Test|E|Lead 9867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009868|109868|989898|1|9999009868|MR|Test|E|Lead 9868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009869|109869|989898|1|9999009869|MR|Test|E|Lead 9869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009870|109870|989898|1|9999009870|MR|Test|E|Lead 9870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009871|109871|989898|1|9999009871|MR|Test|E|Lead 9871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009872|109872|989898|1|9999009872|MR|Test|E|Lead 9872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009873|109873|989898|1|9999009873|MR|Test|E|Lead 9873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009874|109874|989898|1|9999009874|MR|Test|E|Lead 9874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009875|109875|989898|1|9999009875|MR|Test|E|Lead 9875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009876|109876|989898|1|9999009876|MR|Test|E|Lead 9876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009877|109877|989898|1|9999009877|MR|Test|E|Lead 9877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009878|109878|989898|1|9999009878|MR|Test|E|Lead 9878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009879|109879|989898|1|9999009879|MR|Test|E|Lead 9879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009880|109880|989898|1|9999009880|MR|Test|E|Lead 9880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009881|109881|989898|1|9999009881|MR|Test|E|Lead 9881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009882|109882|989898|1|9999009882|MR|Test|E|Lead 9882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009883|109883|989898|1|9999009883|MR|Test|E|Lead 9883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009884|109884|989898|1|9999009884|MR|Test|E|Lead 9884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009885|109885|989898|1|9999009885|MR|Test|E|Lead 9885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009886|109886|989898|1|9999009886|MR|Test|E|Lead 9886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009887|109887|989898|1|9999009887|MR|Test|E|Lead 9887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009888|109888|989898|1|9999009888|MR|Test|E|Lead 9888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009889|109889|989898|1|9999009889|MR|Test|E|Lead 9889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009890|109890|989898|1|9999009890|MR|Test|E|Lead 9890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009891|109891|989898|1|9999009891|MR|Test|E|Lead 9891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009892|109892|989898|1|9999009892|MR|Test|E|Lead 9892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009893|109893|989898|1|9999009893|MR|Test|E|Lead 9893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009894|109894|989898|1|9999009894|MR|Test|E|Lead 9894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009895|109895|989898|1|9999009895|MR|Test|E|Lead 9895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009896|109896|989898|1|9999009896|MR|Test|E|Lead 9896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009897|109897|989898|1|9999009897|MR|Test|E|Lead 9897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009898|109898|989898|1|9999009898|MR|Test|E|Lead 9898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009899|109899|989898|1|9999009899|MR|Test|E|Lead 9899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009900|109900|989898|1|9999009900|MR|Test|E|Lead 9900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009901|109901|989898|1|9999009901|MR|Test|E|Lead 9901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009902|109902|989898|1|9999009902|MR|Test|E|Lead 9902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009903|109903|989898|1|9999009903|MR|Test|E|Lead 9903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009904|109904|989898|1|9999009904|MR|Test|E|Lead 9904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009905|109905|989898|1|9999009905|MR|Test|E|Lead 9905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009906|109906|989898|1|9999009906|MR|Test|E|Lead 9906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009907|109907|989898|1|9999009907|MR|Test|E|Lead 9907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009908|109908|989898|1|9999009908|MR|Test|E|Lead 9908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009909|109909|989898|1|9999009909|MR|Test|E|Lead 9909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009910|109910|989898|1|9999009910|MR|Test|E|Lead 9910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009911|109911|989898|1|9999009911|MR|Test|E|Lead 9911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009912|109912|989898|1|9999009912|MR|Test|E|Lead 9912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009913|109913|989898|1|9999009913|MR|Test|E|Lead 9913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009914|109914|989898|1|9999009914|MR|Test|E|Lead 9914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009915|109915|989898|1|9999009915|MR|Test|E|Lead 9915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009916|109916|989898|1|9999009916|MR|Test|E|Lead 9916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009917|109917|989898|1|9999009917|MR|Test|E|Lead 9917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009918|109918|989898|1|9999009918|MR|Test|E|Lead 9918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009919|109919|989898|1|9999009919|MR|Test|E|Lead 9919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009920|109920|989898|1|9999009920|MR|Test|E|Lead 9920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009921|109921|989898|1|9999009921|MR|Test|E|Lead 9921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009922|109922|989898|1|9999009922|MR|Test|E|Lead 9922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009923|109923|989898|1|9999009923|MR|Test|E|Lead 9923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009924|109924|989898|1|9999009924|MR|Test|E|Lead 9924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009925|109925|989898|1|9999009925|MR|Test|E|Lead 9925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009926|109926|989898|1|9999009926|MR|Test|E|Lead 9926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009927|109927|989898|1|9999009927|MR|Test|E|Lead 9927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009928|109928|989898|1|9999009928|MR|Test|E|Lead 9928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009929|109929|989898|1|9999009929|MR|Test|E|Lead 9929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009930|109930|989898|1|9999009930|MR|Test|E|Lead 9930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009931|109931|989898|1|9999009931|MR|Test|E|Lead 9931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009932|109932|989898|1|9999009932|MR|Test|E|Lead 9932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009933|109933|989898|1|9999009933|MR|Test|E|Lead 9933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009934|109934|989898|1|9999009934|MR|Test|E|Lead 9934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009935|109935|989898|1|9999009935|MR|Test|E|Lead 9935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009936|109936|989898|1|9999009936|MR|Test|E|Lead 9936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009937|109937|989898|1|9999009937|MR|Test|E|Lead 9937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009938|109938|989898|1|9999009938|MR|Test|E|Lead 9938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009939|109939|989898|1|9999009939|MR|Test|E|Lead 9939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009940|109940|989898|1|9999009940|MR|Test|E|Lead 9940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009941|109941|989898|1|9999009941|MR|Test|E|Lead 9941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009942|109942|989898|1|9999009942|MR|Test|E|Lead 9942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009943|109943|989898|1|9999009943|MR|Test|E|Lead 9943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009944|109944|989898|1|9999009944|MR|Test|E|Lead 9944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009945|109945|989898|1|9999009945|MR|Test|E|Lead 9945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009946|109946|989898|1|9999009946|MR|Test|E|Lead 9946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009947|109947|989898|1|9999009947|MR|Test|E|Lead 9947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009948|109948|989898|1|9999009948|MR|Test|E|Lead 9948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009949|109949|989898|1|9999009949|MR|Test|E|Lead 9949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009950|109950|989898|1|9999009950|MR|Test|E|Lead 9950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009951|109951|989898|1|9999009951|MR|Test|E|Lead 9951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009952|109952|989898|1|9999009952|MR|Test|E|Lead 9952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009953|109953|989898|1|9999009953|MR|Test|E|Lead 9953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009954|109954|989898|1|9999009954|MR|Test|E|Lead 9954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009955|109955|989898|1|9999009955|MR|Test|E|Lead 9955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009956|109956|989898|1|9999009956|MR|Test|E|Lead 9956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009957|109957|989898|1|9999009957|MR|Test|E|Lead 9957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009958|109958|989898|1|9999009958|MR|Test|E|Lead 9958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009959|109959|989898|1|9999009959|MR|Test|E|Lead 9959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009960|109960|989898|1|9999009960|MR|Test|E|Lead 9960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009961|109961|989898|1|9999009961|MR|Test|E|Lead 9961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009962|109962|989898|1|9999009962|MR|Test|E|Lead 9962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009963|109963|989898|1|9999009963|MR|Test|E|Lead 9963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009964|109964|989898|1|9999009964|MR|Test|E|Lead 9964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009965|109965|989898|1|9999009965|MR|Test|E|Lead 9965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009966|109966|989898|1|9999009966|MR|Test|E|Lead 9966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009967|109967|989898|1|9999009967|MR|Test|E|Lead 9967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009968|109968|989898|1|9999009968|MR|Test|E|Lead 9968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009969|109969|989898|1|9999009969|MR|Test|E|Lead 9969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009970|109970|989898|1|9999009970|MR|Test|E|Lead 9970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009971|109971|989898|1|9999009971|MR|Test|E|Lead 9971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009972|109972|989898|1|9999009972|MR|Test|E|Lead 9972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009973|109973|989898|1|9999009973|MR|Test|E|Lead 9973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009974|109974|989898|1|9999009974|MR|Test|E|Lead 9974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009975|109975|989898|1|9999009975|MR|Test|E|Lead 9975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009976|109976|989898|1|9999009976|MR|Test|E|Lead 9976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009977|109977|989898|1|9999009977|MR|Test|E|Lead 9977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009978|109978|989898|1|9999009978|MR|Test|E|Lead 9978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009979|109979|989898|1|9999009979|MR|Test|E|Lead 9979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009980|109980|989898|1|9999009980|MR|Test|E|Lead 9980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009981|109981|989898|1|9999009981|MR|Test|E|Lead 9981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009982|109982|989898|1|9999009982|MR|Test|E|Lead 9982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009983|109983|989898|1|9999009983|MR|Test|E|Lead 9983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009984|109984|989898|1|9999009984|MR|Test|E|Lead 9984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009985|109985|989898|1|9999009985|MR|Test|E|Lead 9985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009986|109986|989898|1|9999009986|MR|Test|E|Lead 9986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009987|109987|989898|1|9999009987|MR|Test|E|Lead 9987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009988|109988|989898|1|9999009988|MR|Test|E|Lead 9988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009989|109989|989898|1|9999009989|MR|Test|E|Lead 9989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009990|109990|989898|1|9999009990|MR|Test|E|Lead 9990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009991|109991|989898|1|9999009991|MR|Test|E|Lead 9991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009992|109992|989898|1|9999009992|MR|Test|E|Lead 9992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009993|109993|989898|1|9999009993|MR|Test|E|Lead 9993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009994|109994|989898|1|9999009994|MR|Test|E|Lead 9994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009995|109995|989898|1|9999009995|MR|Test|E|Lead 9995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009996|109996|989898|1|9999009996|MR|Test|E|Lead 9996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009997|109997|989898|1|9999009997|MR|Test|E|Lead 9997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009998|109998|989898|1|9999009998|MR|Test|E|Lead 9998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1009999|109999|989898|1|9999009999|MR|Test|E|Lead 9999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010000|110000|989898|1|9999010000|MR|Test|E|Lead 10000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010001|110001|989898|1|9999010001|MR|Test|E|Lead 10001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010002|110002|989898|1|9999010002|MR|Test|E|Lead 10002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010003|110003|989898|1|9999010003|MR|Test|E|Lead 10003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010004|110004|989898|1|9999010004|MR|Test|E|Lead 10004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010005|110005|989898|1|9999010005|MR|Test|E|Lead 10005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010006|110006|989898|1|9999010006|MR|Test|E|Lead 10006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010007|110007|989898|1|9999010007|MR|Test|E|Lead 10007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010008|110008|989898|1|9999010008|MR|Test|E|Lead 10008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010009|110009|989898|1|9999010009|MR|Test|E|Lead 10009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010010|110010|989898|1|9999010010|MR|Test|E|Lead 10010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010011|110011|989898|1|9999010011|MR|Test|E|Lead 10011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010012|110012|989898|1|9999010012|MR|Test|E|Lead 10012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010013|110013|989898|1|9999010013|MR|Test|E|Lead 10013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010014|110014|989898|1|9999010014|MR|Test|E|Lead 10014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010015|110015|989898|1|9999010015|MR|Test|E|Lead 10015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010016|110016|989898|1|9999010016|MR|Test|E|Lead 10016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010017|110017|989898|1|9999010017|MR|Test|E|Lead 10017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010018|110018|989898|1|9999010018|MR|Test|E|Lead 10018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010019|110019|989898|1|9999010019|MR|Test|E|Lead 10019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010020|110020|989898|1|9999010020|MR|Test|E|Lead 10020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010021|110021|989898|1|9999010021|MR|Test|E|Lead 10021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010022|110022|989898|1|9999010022|MR|Test|E|Lead 10022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010023|110023|989898|1|9999010023|MR|Test|E|Lead 10023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010024|110024|989898|1|9999010024|MR|Test|E|Lead 10024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010025|110025|989898|1|9999010025|MR|Test|E|Lead 10025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010026|110026|989898|1|9999010026|MR|Test|E|Lead 10026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010027|110027|989898|1|9999010027|MR|Test|E|Lead 10027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010028|110028|989898|1|9999010028|MR|Test|E|Lead 10028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010029|110029|989898|1|9999010029|MR|Test|E|Lead 10029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010030|110030|989898|1|9999010030|MR|Test|E|Lead 10030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010031|110031|989898|1|9999010031|MR|Test|E|Lead 10031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010032|110032|989898|1|9999010032|MR|Test|E|Lead 10032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010033|110033|989898|1|9999010033|MR|Test|E|Lead 10033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010034|110034|989898|1|9999010034|MR|Test|E|Lead 10034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010035|110035|989898|1|9999010035|MR|Test|E|Lead 10035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010036|110036|989898|1|9999010036|MR|Test|E|Lead 10036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010037|110037|989898|1|9999010037|MR|Test|E|Lead 10037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010038|110038|989898|1|9999010038|MR|Test|E|Lead 10038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010039|110039|989898|1|9999010039|MR|Test|E|Lead 10039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010040|110040|989898|1|9999010040|MR|Test|E|Lead 10040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010041|110041|989898|1|9999010041|MR|Test|E|Lead 10041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010042|110042|989898|1|9999010042|MR|Test|E|Lead 10042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010043|110043|989898|1|9999010043|MR|Test|E|Lead 10043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010044|110044|989898|1|9999010044|MR|Test|E|Lead 10044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010045|110045|989898|1|9999010045|MR|Test|E|Lead 10045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010046|110046|989898|1|9999010046|MR|Test|E|Lead 10046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010047|110047|989898|1|9999010047|MR|Test|E|Lead 10047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010048|110048|989898|1|9999010048|MR|Test|E|Lead 10048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010049|110049|989898|1|9999010049|MR|Test|E|Lead 10049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010050|110050|989898|1|9999010050|MR|Test|E|Lead 10050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010051|110051|989898|1|9999010051|MR|Test|E|Lead 10051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010052|110052|989898|1|9999010052|MR|Test|E|Lead 10052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010053|110053|989898|1|9999010053|MR|Test|E|Lead 10053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010054|110054|989898|1|9999010054|MR|Test|E|Lead 10054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010055|110055|989898|1|9999010055|MR|Test|E|Lead 10055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010056|110056|989898|1|9999010056|MR|Test|E|Lead 10056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010057|110057|989898|1|9999010057|MR|Test|E|Lead 10057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010058|110058|989898|1|9999010058|MR|Test|E|Lead 10058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010059|110059|989898|1|9999010059|MR|Test|E|Lead 10059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010060|110060|989898|1|9999010060|MR|Test|E|Lead 10060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010061|110061|989898|1|9999010061|MR|Test|E|Lead 10061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010062|110062|989898|1|9999010062|MR|Test|E|Lead 10062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010063|110063|989898|1|9999010063|MR|Test|E|Lead 10063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010064|110064|989898|1|9999010064|MR|Test|E|Lead 10064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010065|110065|989898|1|9999010065|MR|Test|E|Lead 10065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010066|110066|989898|1|9999010066|MR|Test|E|Lead 10066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010067|110067|989898|1|9999010067|MR|Test|E|Lead 10067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010068|110068|989898|1|9999010068|MR|Test|E|Lead 10068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010069|110069|989898|1|9999010069|MR|Test|E|Lead 10069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010070|110070|989898|1|9999010070|MR|Test|E|Lead 10070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010071|110071|989898|1|9999010071|MR|Test|E|Lead 10071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010072|110072|989898|1|9999010072|MR|Test|E|Lead 10072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010073|110073|989898|1|9999010073|MR|Test|E|Lead 10073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010074|110074|989898|1|9999010074|MR|Test|E|Lead 10074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010075|110075|989898|1|9999010075|MR|Test|E|Lead 10075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010076|110076|989898|1|9999010076|MR|Test|E|Lead 10076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010077|110077|989898|1|9999010077|MR|Test|E|Lead 10077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010078|110078|989898|1|9999010078|MR|Test|E|Lead 10078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010079|110079|989898|1|9999010079|MR|Test|E|Lead 10079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010080|110080|989898|1|9999010080|MR|Test|E|Lead 10080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010081|110081|989898|1|9999010081|MR|Test|E|Lead 10081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010082|110082|989898|1|9999010082|MR|Test|E|Lead 10082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010083|110083|989898|1|9999010083|MR|Test|E|Lead 10083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010084|110084|989898|1|9999010084|MR|Test|E|Lead 10084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010085|110085|989898|1|9999010085|MR|Test|E|Lead 10085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010086|110086|989898|1|9999010086|MR|Test|E|Lead 10086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010087|110087|989898|1|9999010087|MR|Test|E|Lead 10087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010088|110088|989898|1|9999010088|MR|Test|E|Lead 10088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010089|110089|989898|1|9999010089|MR|Test|E|Lead 10089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010090|110090|989898|1|9999010090|MR|Test|E|Lead 10090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010091|110091|989898|1|9999010091|MR|Test|E|Lead 10091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010092|110092|989898|1|9999010092|MR|Test|E|Lead 10092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010093|110093|989898|1|9999010093|MR|Test|E|Lead 10093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010094|110094|989898|1|9999010094|MR|Test|E|Lead 10094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010095|110095|989898|1|9999010095|MR|Test|E|Lead 10095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010096|110096|989898|1|9999010096|MR|Test|E|Lead 10096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010097|110097|989898|1|9999010097|MR|Test|E|Lead 10097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010098|110098|989898|1|9999010098|MR|Test|E|Lead 10098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010099|110099|989898|1|9999010099|MR|Test|E|Lead 10099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010100|110100|989898|1|9999010100|MR|Test|E|Lead 10100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010101|110101|989898|1|9999010101|MR|Test|E|Lead 10101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010102|110102|989898|1|9999010102|MR|Test|E|Lead 10102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010103|110103|989898|1|9999010103|MR|Test|E|Lead 10103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010104|110104|989898|1|9999010104|MR|Test|E|Lead 10104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010105|110105|989898|1|9999010105|MR|Test|E|Lead 10105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010106|110106|989898|1|9999010106|MR|Test|E|Lead 10106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010107|110107|989898|1|9999010107|MR|Test|E|Lead 10107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010108|110108|989898|1|9999010108|MR|Test|E|Lead 10108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010109|110109|989898|1|9999010109|MR|Test|E|Lead 10109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010110|110110|989898|1|9999010110|MR|Test|E|Lead 10110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010111|110111|989898|1|9999010111|MR|Test|E|Lead 10111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010112|110112|989898|1|9999010112|MR|Test|E|Lead 10112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010113|110113|989898|1|9999010113|MR|Test|E|Lead 10113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010114|110114|989898|1|9999010114|MR|Test|E|Lead 10114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010115|110115|989898|1|9999010115|MR|Test|E|Lead 10115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010116|110116|989898|1|9999010116|MR|Test|E|Lead 10116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010117|110117|989898|1|9999010117|MR|Test|E|Lead 10117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010118|110118|989898|1|9999010118|MR|Test|E|Lead 10118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010119|110119|989898|1|9999010119|MR|Test|E|Lead 10119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010120|110120|989898|1|9999010120|MR|Test|E|Lead 10120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010121|110121|989898|1|9999010121|MR|Test|E|Lead 10121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010122|110122|989898|1|9999010122|MR|Test|E|Lead 10122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010123|110123|989898|1|9999010123|MR|Test|E|Lead 10123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010124|110124|989898|1|9999010124|MR|Test|E|Lead 10124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010125|110125|989898|1|9999010125|MR|Test|E|Lead 10125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010126|110126|989898|1|9999010126|MR|Test|E|Lead 10126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010127|110127|989898|1|9999010127|MR|Test|E|Lead 10127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010128|110128|989898|1|9999010128|MR|Test|E|Lead 10128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010129|110129|989898|1|9999010129|MR|Test|E|Lead 10129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010130|110130|989898|1|9999010130|MR|Test|E|Lead 10130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010131|110131|989898|1|9999010131|MR|Test|E|Lead 10131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010132|110132|989898|1|9999010132|MR|Test|E|Lead 10132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010133|110133|989898|1|9999010133|MR|Test|E|Lead 10133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010134|110134|989898|1|9999010134|MR|Test|E|Lead 10134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010135|110135|989898|1|9999010135|MR|Test|E|Lead 10135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010136|110136|989898|1|9999010136|MR|Test|E|Lead 10136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010137|110137|989898|1|9999010137|MR|Test|E|Lead 10137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010138|110138|989898|1|9999010138|MR|Test|E|Lead 10138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010139|110139|989898|1|9999010139|MR|Test|E|Lead 10139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010140|110140|989898|1|9999010140|MR|Test|E|Lead 10140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010141|110141|989898|1|9999010141|MR|Test|E|Lead 10141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010142|110142|989898|1|9999010142|MR|Test|E|Lead 10142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010143|110143|989898|1|9999010143|MR|Test|E|Lead 10143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010144|110144|989898|1|9999010144|MR|Test|E|Lead 10144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010145|110145|989898|1|9999010145|MR|Test|E|Lead 10145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010146|110146|989898|1|9999010146|MR|Test|E|Lead 10146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010147|110147|989898|1|9999010147|MR|Test|E|Lead 10147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010148|110148|989898|1|9999010148|MR|Test|E|Lead 10148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010149|110149|989898|1|9999010149|MR|Test|E|Lead 10149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010150|110150|989898|1|9999010150|MR|Test|E|Lead 10150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010151|110151|989898|1|9999010151|MR|Test|E|Lead 10151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010152|110152|989898|1|9999010152|MR|Test|E|Lead 10152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010153|110153|989898|1|9999010153|MR|Test|E|Lead 10153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010154|110154|989898|1|9999010154|MR|Test|E|Lead 10154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010155|110155|989898|1|9999010155|MR|Test|E|Lead 10155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010156|110156|989898|1|9999010156|MR|Test|E|Lead 10156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010157|110157|989898|1|9999010157|MR|Test|E|Lead 10157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010158|110158|989898|1|9999010158|MR|Test|E|Lead 10158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010159|110159|989898|1|9999010159|MR|Test|E|Lead 10159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010160|110160|989898|1|9999010160|MR|Test|E|Lead 10160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010161|110161|989898|1|9999010161|MR|Test|E|Lead 10161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010162|110162|989898|1|9999010162|MR|Test|E|Lead 10162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010163|110163|989898|1|9999010163|MR|Test|E|Lead 10163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010164|110164|989898|1|9999010164|MR|Test|E|Lead 10164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010165|110165|989898|1|9999010165|MR|Test|E|Lead 10165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010166|110166|989898|1|9999010166|MR|Test|E|Lead 10166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010167|110167|989898|1|9999010167|MR|Test|E|Lead 10167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010168|110168|989898|1|9999010168|MR|Test|E|Lead 10168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010169|110169|989898|1|9999010169|MR|Test|E|Lead 10169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010170|110170|989898|1|9999010170|MR|Test|E|Lead 10170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010171|110171|989898|1|9999010171|MR|Test|E|Lead 10171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010172|110172|989898|1|9999010172|MR|Test|E|Lead 10172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010173|110173|989898|1|9999010173|MR|Test|E|Lead 10173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010174|110174|989898|1|9999010174|MR|Test|E|Lead 10174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010175|110175|989898|1|9999010175|MR|Test|E|Lead 10175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010176|110176|989898|1|9999010176|MR|Test|E|Lead 10176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010177|110177|989898|1|9999010177|MR|Test|E|Lead 10177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010178|110178|989898|1|9999010178|MR|Test|E|Lead 10178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010179|110179|989898|1|9999010179|MR|Test|E|Lead 10179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010180|110180|989898|1|9999010180|MR|Test|E|Lead 10180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010181|110181|989898|1|9999010181|MR|Test|E|Lead 10181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010182|110182|989898|1|9999010182|MR|Test|E|Lead 10182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010183|110183|989898|1|9999010183|MR|Test|E|Lead 10183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010184|110184|989898|1|9999010184|MR|Test|E|Lead 10184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010185|110185|989898|1|9999010185|MR|Test|E|Lead 10185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010186|110186|989898|1|9999010186|MR|Test|E|Lead 10186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010187|110187|989898|1|9999010187|MR|Test|E|Lead 10187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010188|110188|989898|1|9999010188|MR|Test|E|Lead 10188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010189|110189|989898|1|9999010189|MR|Test|E|Lead 10189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010190|110190|989898|1|9999010190|MR|Test|E|Lead 10190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010191|110191|989898|1|9999010191|MR|Test|E|Lead 10191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010192|110192|989898|1|9999010192|MR|Test|E|Lead 10192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010193|110193|989898|1|9999010193|MR|Test|E|Lead 10193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010194|110194|989898|1|9999010194|MR|Test|E|Lead 10194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010195|110195|989898|1|9999010195|MR|Test|E|Lead 10195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010196|110196|989898|1|9999010196|MR|Test|E|Lead 10196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010197|110197|989898|1|9999010197|MR|Test|E|Lead 10197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010198|110198|989898|1|9999010198|MR|Test|E|Lead 10198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010199|110199|989898|1|9999010199|MR|Test|E|Lead 10199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010200|110200|989898|1|9999010200|MR|Test|E|Lead 10200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010201|110201|989898|1|9999010201|MR|Test|E|Lead 10201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010202|110202|989898|1|9999010202|MR|Test|E|Lead 10202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010203|110203|989898|1|9999010203|MR|Test|E|Lead 10203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010204|110204|989898|1|9999010204|MR|Test|E|Lead 10204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010205|110205|989898|1|9999010205|MR|Test|E|Lead 10205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010206|110206|989898|1|9999010206|MR|Test|E|Lead 10206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010207|110207|989898|1|9999010207|MR|Test|E|Lead 10207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010208|110208|989898|1|9999010208|MR|Test|E|Lead 10208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010209|110209|989898|1|9999010209|MR|Test|E|Lead 10209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010210|110210|989898|1|9999010210|MR|Test|E|Lead 10210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010211|110211|989898|1|9999010211|MR|Test|E|Lead 10211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010212|110212|989898|1|9999010212|MR|Test|E|Lead 10212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010213|110213|989898|1|9999010213|MR|Test|E|Lead 10213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010214|110214|989898|1|9999010214|MR|Test|E|Lead 10214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010215|110215|989898|1|9999010215|MR|Test|E|Lead 10215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010216|110216|989898|1|9999010216|MR|Test|E|Lead 10216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010217|110217|989898|1|9999010217|MR|Test|E|Lead 10217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010218|110218|989898|1|9999010218|MR|Test|E|Lead 10218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010219|110219|989898|1|9999010219|MR|Test|E|Lead 10219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010220|110220|989898|1|9999010220|MR|Test|E|Lead 10220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010221|110221|989898|1|9999010221|MR|Test|E|Lead 10221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010222|110222|989898|1|9999010222|MR|Test|E|Lead 10222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010223|110223|989898|1|9999010223|MR|Test|E|Lead 10223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010224|110224|989898|1|9999010224|MR|Test|E|Lead 10224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010225|110225|989898|1|9999010225|MR|Test|E|Lead 10225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010226|110226|989898|1|9999010226|MR|Test|E|Lead 10226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010227|110227|989898|1|9999010227|MR|Test|E|Lead 10227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010228|110228|989898|1|9999010228|MR|Test|E|Lead 10228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010229|110229|989898|1|9999010229|MR|Test|E|Lead 10229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010230|110230|989898|1|9999010230|MR|Test|E|Lead 10230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010231|110231|989898|1|9999010231|MR|Test|E|Lead 10231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010232|110232|989898|1|9999010232|MR|Test|E|Lead 10232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010233|110233|989898|1|9999010233|MR|Test|E|Lead 10233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010234|110234|989898|1|9999010234|MR|Test|E|Lead 10234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010235|110235|989898|1|9999010235|MR|Test|E|Lead 10235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010236|110236|989898|1|9999010236|MR|Test|E|Lead 10236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010237|110237|989898|1|9999010237|MR|Test|E|Lead 10237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010238|110238|989898|1|9999010238|MR|Test|E|Lead 10238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010239|110239|989898|1|9999010239|MR|Test|E|Lead 10239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010240|110240|989898|1|9999010240|MR|Test|E|Lead 10240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010241|110241|989898|1|9999010241|MR|Test|E|Lead 10241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010242|110242|989898|1|9999010242|MR|Test|E|Lead 10242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010243|110243|989898|1|9999010243|MR|Test|E|Lead 10243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010244|110244|989898|1|9999010244|MR|Test|E|Lead 10244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010245|110245|989898|1|9999010245|MR|Test|E|Lead 10245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010246|110246|989898|1|9999010246|MR|Test|E|Lead 10246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010247|110247|989898|1|9999010247|MR|Test|E|Lead 10247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010248|110248|989898|1|9999010248|MR|Test|E|Lead 10248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010249|110249|989898|1|9999010249|MR|Test|E|Lead 10249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010250|110250|989898|1|9999010250|MR|Test|E|Lead 10250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010251|110251|989898|1|9999010251|MR|Test|E|Lead 10251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010252|110252|989898|1|9999010252|MR|Test|E|Lead 10252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010253|110253|989898|1|9999010253|MR|Test|E|Lead 10253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010254|110254|989898|1|9999010254|MR|Test|E|Lead 10254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010255|110255|989898|1|9999010255|MR|Test|E|Lead 10255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010256|110256|989898|1|9999010256|MR|Test|E|Lead 10256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010257|110257|989898|1|9999010257|MR|Test|E|Lead 10257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010258|110258|989898|1|9999010258|MR|Test|E|Lead 10258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010259|110259|989898|1|9999010259|MR|Test|E|Lead 10259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010260|110260|989898|1|9999010260|MR|Test|E|Lead 10260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010261|110261|989898|1|9999010261|MR|Test|E|Lead 10261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010262|110262|989898|1|9999010262|MR|Test|E|Lead 10262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010263|110263|989898|1|9999010263|MR|Test|E|Lead 10263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010264|110264|989898|1|9999010264|MR|Test|E|Lead 10264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010265|110265|989898|1|9999010265|MR|Test|E|Lead 10265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010266|110266|989898|1|9999010266|MR|Test|E|Lead 10266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010267|110267|989898|1|9999010267|MR|Test|E|Lead 10267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010268|110268|989898|1|9999010268|MR|Test|E|Lead 10268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010269|110269|989898|1|9999010269|MR|Test|E|Lead 10269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010270|110270|989898|1|9999010270|MR|Test|E|Lead 10270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010271|110271|989898|1|9999010271|MR|Test|E|Lead 10271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010272|110272|989898|1|9999010272|MR|Test|E|Lead 10272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010273|110273|989898|1|9999010273|MR|Test|E|Lead 10273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010274|110274|989898|1|9999010274|MR|Test|E|Lead 10274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010275|110275|989898|1|9999010275|MR|Test|E|Lead 10275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010276|110276|989898|1|9999010276|MR|Test|E|Lead 10276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010277|110277|989898|1|9999010277|MR|Test|E|Lead 10277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010278|110278|989898|1|9999010278|MR|Test|E|Lead 10278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010279|110279|989898|1|9999010279|MR|Test|E|Lead 10279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010280|110280|989898|1|9999010280|MR|Test|E|Lead 10280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010281|110281|989898|1|9999010281|MR|Test|E|Lead 10281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010282|110282|989898|1|9999010282|MR|Test|E|Lead 10282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010283|110283|989898|1|9999010283|MR|Test|E|Lead 10283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010284|110284|989898|1|9999010284|MR|Test|E|Lead 10284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010285|110285|989898|1|9999010285|MR|Test|E|Lead 10285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010286|110286|989898|1|9999010286|MR|Test|E|Lead 10286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010287|110287|989898|1|9999010287|MR|Test|E|Lead 10287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010288|110288|989898|1|9999010288|MR|Test|E|Lead 10288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010289|110289|989898|1|9999010289|MR|Test|E|Lead 10289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010290|110290|989898|1|9999010290|MR|Test|E|Lead 10290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010291|110291|989898|1|9999010291|MR|Test|E|Lead 10291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010292|110292|989898|1|9999010292|MR|Test|E|Lead 10292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010293|110293|989898|1|9999010293|MR|Test|E|Lead 10293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010294|110294|989898|1|9999010294|MR|Test|E|Lead 10294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010295|110295|989898|1|9999010295|MR|Test|E|Lead 10295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010296|110296|989898|1|9999010296|MR|Test|E|Lead 10296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010297|110297|989898|1|9999010297|MR|Test|E|Lead 10297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010298|110298|989898|1|9999010298|MR|Test|E|Lead 10298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010299|110299|989898|1|9999010299|MR|Test|E|Lead 10299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010300|110300|989898|1|9999010300|MR|Test|E|Lead 10300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010301|110301|989898|1|9999010301|MR|Test|E|Lead 10301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010302|110302|989898|1|9999010302|MR|Test|E|Lead 10302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010303|110303|989898|1|9999010303|MR|Test|E|Lead 10303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010304|110304|989898|1|9999010304|MR|Test|E|Lead 10304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010305|110305|989898|1|9999010305|MR|Test|E|Lead 10305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010306|110306|989898|1|9999010306|MR|Test|E|Lead 10306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010307|110307|989898|1|9999010307|MR|Test|E|Lead 10307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010308|110308|989898|1|9999010308|MR|Test|E|Lead 10308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010309|110309|989898|1|9999010309|MR|Test|E|Lead 10309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010310|110310|989898|1|9999010310|MR|Test|E|Lead 10310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010311|110311|989898|1|9999010311|MR|Test|E|Lead 10311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010312|110312|989898|1|9999010312|MR|Test|E|Lead 10312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010313|110313|989898|1|9999010313|MR|Test|E|Lead 10313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010314|110314|989898|1|9999010314|MR|Test|E|Lead 10314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010315|110315|989898|1|9999010315|MR|Test|E|Lead 10315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010316|110316|989898|1|9999010316|MR|Test|E|Lead 10316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010317|110317|989898|1|9999010317|MR|Test|E|Lead 10317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010318|110318|989898|1|9999010318|MR|Test|E|Lead 10318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010319|110319|989898|1|9999010319|MR|Test|E|Lead 10319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010320|110320|989898|1|9999010320|MR|Test|E|Lead 10320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010321|110321|989898|1|9999010321|MR|Test|E|Lead 10321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010322|110322|989898|1|9999010322|MR|Test|E|Lead 10322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010323|110323|989898|1|9999010323|MR|Test|E|Lead 10323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010324|110324|989898|1|9999010324|MR|Test|E|Lead 10324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010325|110325|989898|1|9999010325|MR|Test|E|Lead 10325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010326|110326|989898|1|9999010326|MR|Test|E|Lead 10326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010327|110327|989898|1|9999010327|MR|Test|E|Lead 10327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010328|110328|989898|1|9999010328|MR|Test|E|Lead 10328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010329|110329|989898|1|9999010329|MR|Test|E|Lead 10329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010330|110330|989898|1|9999010330|MR|Test|E|Lead 10330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010331|110331|989898|1|9999010331|MR|Test|E|Lead 10331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010332|110332|989898|1|9999010332|MR|Test|E|Lead 10332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010333|110333|989898|1|9999010333|MR|Test|E|Lead 10333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010334|110334|989898|1|9999010334|MR|Test|E|Lead 10334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010335|110335|989898|1|9999010335|MR|Test|E|Lead 10335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010336|110336|989898|1|9999010336|MR|Test|E|Lead 10336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010337|110337|989898|1|9999010337|MR|Test|E|Lead 10337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010338|110338|989898|1|9999010338|MR|Test|E|Lead 10338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010339|110339|989898|1|9999010339|MR|Test|E|Lead 10339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010340|110340|989898|1|9999010340|MR|Test|E|Lead 10340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010341|110341|989898|1|9999010341|MR|Test|E|Lead 10341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010342|110342|989898|1|9999010342|MR|Test|E|Lead 10342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010343|110343|989898|1|9999010343|MR|Test|E|Lead 10343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010344|110344|989898|1|9999010344|MR|Test|E|Lead 10344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010345|110345|989898|1|9999010345|MR|Test|E|Lead 10345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010346|110346|989898|1|9999010346|MR|Test|E|Lead 10346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010347|110347|989898|1|9999010347|MR|Test|E|Lead 10347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010348|110348|989898|1|9999010348|MR|Test|E|Lead 10348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010349|110349|989898|1|9999010349|MR|Test|E|Lead 10349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010350|110350|989898|1|9999010350|MR|Test|E|Lead 10350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010351|110351|989898|1|9999010351|MR|Test|E|Lead 10351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010352|110352|989898|1|9999010352|MR|Test|E|Lead 10352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010353|110353|989898|1|9999010353|MR|Test|E|Lead 10353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010354|110354|989898|1|9999010354|MR|Test|E|Lead 10354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010355|110355|989898|1|9999010355|MR|Test|E|Lead 10355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010356|110356|989898|1|9999010356|MR|Test|E|Lead 10356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010357|110357|989898|1|9999010357|MR|Test|E|Lead 10357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010358|110358|989898|1|9999010358|MR|Test|E|Lead 10358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010359|110359|989898|1|9999010359|MR|Test|E|Lead 10359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010360|110360|989898|1|9999010360|MR|Test|E|Lead 10360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010361|110361|989898|1|9999010361|MR|Test|E|Lead 10361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010362|110362|989898|1|9999010362|MR|Test|E|Lead 10362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010363|110363|989898|1|9999010363|MR|Test|E|Lead 10363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010364|110364|989898|1|9999010364|MR|Test|E|Lead 10364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010365|110365|989898|1|9999010365|MR|Test|E|Lead 10365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010366|110366|989898|1|9999010366|MR|Test|E|Lead 10366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010367|110367|989898|1|9999010367|MR|Test|E|Lead 10367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010368|110368|989898|1|9999010368|MR|Test|E|Lead 10368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010369|110369|989898|1|9999010369|MR|Test|E|Lead 10369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010370|110370|989898|1|9999010370|MR|Test|E|Lead 10370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010371|110371|989898|1|9999010371|MR|Test|E|Lead 10371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010372|110372|989898|1|9999010372|MR|Test|E|Lead 10372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010373|110373|989898|1|9999010373|MR|Test|E|Lead 10373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010374|110374|989898|1|9999010374|MR|Test|E|Lead 10374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010375|110375|989898|1|9999010375|MR|Test|E|Lead 10375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010376|110376|989898|1|9999010376|MR|Test|E|Lead 10376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010377|110377|989898|1|9999010377|MR|Test|E|Lead 10377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010378|110378|989898|1|9999010378|MR|Test|E|Lead 10378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010379|110379|989898|1|9999010379|MR|Test|E|Lead 10379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010380|110380|989898|1|9999010380|MR|Test|E|Lead 10380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010381|110381|989898|1|9999010381|MR|Test|E|Lead 10381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010382|110382|989898|1|9999010382|MR|Test|E|Lead 10382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010383|110383|989898|1|9999010383|MR|Test|E|Lead 10383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010384|110384|989898|1|9999010384|MR|Test|E|Lead 10384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010385|110385|989898|1|9999010385|MR|Test|E|Lead 10385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010386|110386|989898|1|9999010386|MR|Test|E|Lead 10386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010387|110387|989898|1|9999010387|MR|Test|E|Lead 10387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010388|110388|989898|1|9999010388|MR|Test|E|Lead 10388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010389|110389|989898|1|9999010389|MR|Test|E|Lead 10389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010390|110390|989898|1|9999010390|MR|Test|E|Lead 10390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010391|110391|989898|1|9999010391|MR|Test|E|Lead 10391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010392|110392|989898|1|9999010392|MR|Test|E|Lead 10392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010393|110393|989898|1|9999010393|MR|Test|E|Lead 10393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010394|110394|989898|1|9999010394|MR|Test|E|Lead 10394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010395|110395|989898|1|9999010395|MR|Test|E|Lead 10395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010396|110396|989898|1|9999010396|MR|Test|E|Lead 10396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010397|110397|989898|1|9999010397|MR|Test|E|Lead 10397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010398|110398|989898|1|9999010398|MR|Test|E|Lead 10398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010399|110399|989898|1|9999010399|MR|Test|E|Lead 10399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010400|110400|989898|1|9999010400|MR|Test|E|Lead 10400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010401|110401|989898|1|9999010401|MR|Test|E|Lead 10401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010402|110402|989898|1|9999010402|MR|Test|E|Lead 10402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010403|110403|989898|1|9999010403|MR|Test|E|Lead 10403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010404|110404|989898|1|9999010404|MR|Test|E|Lead 10404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010405|110405|989898|1|9999010405|MR|Test|E|Lead 10405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010406|110406|989898|1|9999010406|MR|Test|E|Lead 10406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010407|110407|989898|1|9999010407|MR|Test|E|Lead 10407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010408|110408|989898|1|9999010408|MR|Test|E|Lead 10408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010409|110409|989898|1|9999010409|MR|Test|E|Lead 10409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010410|110410|989898|1|9999010410|MR|Test|E|Lead 10410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010411|110411|989898|1|9999010411|MR|Test|E|Lead 10411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010412|110412|989898|1|9999010412|MR|Test|E|Lead 10412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010413|110413|989898|1|9999010413|MR|Test|E|Lead 10413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010414|110414|989898|1|9999010414|MR|Test|E|Lead 10414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010415|110415|989898|1|9999010415|MR|Test|E|Lead 10415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010416|110416|989898|1|9999010416|MR|Test|E|Lead 10416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010417|110417|989898|1|9999010417|MR|Test|E|Lead 10417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010418|110418|989898|1|9999010418|MR|Test|E|Lead 10418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010419|110419|989898|1|9999010419|MR|Test|E|Lead 10419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010420|110420|989898|1|9999010420|MR|Test|E|Lead 10420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010421|110421|989898|1|9999010421|MR|Test|E|Lead 10421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010422|110422|989898|1|9999010422|MR|Test|E|Lead 10422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010423|110423|989898|1|9999010423|MR|Test|E|Lead 10423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010424|110424|989898|1|9999010424|MR|Test|E|Lead 10424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010425|110425|989898|1|9999010425|MR|Test|E|Lead 10425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010426|110426|989898|1|9999010426|MR|Test|E|Lead 10426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010427|110427|989898|1|9999010427|MR|Test|E|Lead 10427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010428|110428|989898|1|9999010428|MR|Test|E|Lead 10428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010429|110429|989898|1|9999010429|MR|Test|E|Lead 10429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010430|110430|989898|1|9999010430|MR|Test|E|Lead 10430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010431|110431|989898|1|9999010431|MR|Test|E|Lead 10431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010432|110432|989898|1|9999010432|MR|Test|E|Lead 10432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010433|110433|989898|1|9999010433|MR|Test|E|Lead 10433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010434|110434|989898|1|9999010434|MR|Test|E|Lead 10434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010435|110435|989898|1|9999010435|MR|Test|E|Lead 10435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010436|110436|989898|1|9999010436|MR|Test|E|Lead 10436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010437|110437|989898|1|9999010437|MR|Test|E|Lead 10437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010438|110438|989898|1|9999010438|MR|Test|E|Lead 10438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010439|110439|989898|1|9999010439|MR|Test|E|Lead 10439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010440|110440|989898|1|9999010440|MR|Test|E|Lead 10440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010441|110441|989898|1|9999010441|MR|Test|E|Lead 10441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010442|110442|989898|1|9999010442|MR|Test|E|Lead 10442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010443|110443|989898|1|9999010443|MR|Test|E|Lead 10443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010444|110444|989898|1|9999010444|MR|Test|E|Lead 10444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010445|110445|989898|1|9999010445|MR|Test|E|Lead 10445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010446|110446|989898|1|9999010446|MR|Test|E|Lead 10446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010447|110447|989898|1|9999010447|MR|Test|E|Lead 10447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010448|110448|989898|1|9999010448|MR|Test|E|Lead 10448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010449|110449|989898|1|9999010449|MR|Test|E|Lead 10449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010450|110450|989898|1|9999010450|MR|Test|E|Lead 10450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010451|110451|989898|1|9999010451|MR|Test|E|Lead 10451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010452|110452|989898|1|9999010452|MR|Test|E|Lead 10452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010453|110453|989898|1|9999010453|MR|Test|E|Lead 10453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010454|110454|989898|1|9999010454|MR|Test|E|Lead 10454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010455|110455|989898|1|9999010455|MR|Test|E|Lead 10455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010456|110456|989898|1|9999010456|MR|Test|E|Lead 10456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010457|110457|989898|1|9999010457|MR|Test|E|Lead 10457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010458|110458|989898|1|9999010458|MR|Test|E|Lead 10458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010459|110459|989898|1|9999010459|MR|Test|E|Lead 10459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010460|110460|989898|1|9999010460|MR|Test|E|Lead 10460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010461|110461|989898|1|9999010461|MR|Test|E|Lead 10461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010462|110462|989898|1|9999010462|MR|Test|E|Lead 10462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010463|110463|989898|1|9999010463|MR|Test|E|Lead 10463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010464|110464|989898|1|9999010464|MR|Test|E|Lead 10464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010465|110465|989898|1|9999010465|MR|Test|E|Lead 10465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010466|110466|989898|1|9999010466|MR|Test|E|Lead 10466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010467|110467|989898|1|9999010467|MR|Test|E|Lead 10467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010468|110468|989898|1|9999010468|MR|Test|E|Lead 10468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010469|110469|989898|1|9999010469|MR|Test|E|Lead 10469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010470|110470|989898|1|9999010470|MR|Test|E|Lead 10470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010471|110471|989898|1|9999010471|MR|Test|E|Lead 10471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010472|110472|989898|1|9999010472|MR|Test|E|Lead 10472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010473|110473|989898|1|9999010473|MR|Test|E|Lead 10473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010474|110474|989898|1|9999010474|MR|Test|E|Lead 10474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010475|110475|989898|1|9999010475|MR|Test|E|Lead 10475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010476|110476|989898|1|9999010476|MR|Test|E|Lead 10476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010477|110477|989898|1|9999010477|MR|Test|E|Lead 10477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010478|110478|989898|1|9999010478|MR|Test|E|Lead 10478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010479|110479|989898|1|9999010479|MR|Test|E|Lead 10479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010480|110480|989898|1|9999010480|MR|Test|E|Lead 10480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010481|110481|989898|1|9999010481|MR|Test|E|Lead 10481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010482|110482|989898|1|9999010482|MR|Test|E|Lead 10482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010483|110483|989898|1|9999010483|MR|Test|E|Lead 10483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010484|110484|989898|1|9999010484|MR|Test|E|Lead 10484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010485|110485|989898|1|9999010485|MR|Test|E|Lead 10485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010486|110486|989898|1|9999010486|MR|Test|E|Lead 10486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010487|110487|989898|1|9999010487|MR|Test|E|Lead 10487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010488|110488|989898|1|9999010488|MR|Test|E|Lead 10488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010489|110489|989898|1|9999010489|MR|Test|E|Lead 10489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010490|110490|989898|1|9999010490|MR|Test|E|Lead 10490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010491|110491|989898|1|9999010491|MR|Test|E|Lead 10491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010492|110492|989898|1|9999010492|MR|Test|E|Lead 10492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010493|110493|989898|1|9999010493|MR|Test|E|Lead 10493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010494|110494|989898|1|9999010494|MR|Test|E|Lead 10494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010495|110495|989898|1|9999010495|MR|Test|E|Lead 10495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010496|110496|989898|1|9999010496|MR|Test|E|Lead 10496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010497|110497|989898|1|9999010497|MR|Test|E|Lead 10497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010498|110498|989898|1|9999010498|MR|Test|E|Lead 10498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010499|110499|989898|1|9999010499|MR|Test|E|Lead 10499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010500|110500|989898|1|9999010500|MR|Test|E|Lead 10500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010501|110501|989898|1|9999010501|MR|Test|E|Lead 10501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010502|110502|989898|1|9999010502|MR|Test|E|Lead 10502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010503|110503|989898|1|9999010503|MR|Test|E|Lead 10503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010504|110504|989898|1|9999010504|MR|Test|E|Lead 10504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010505|110505|989898|1|9999010505|MR|Test|E|Lead 10505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010506|110506|989898|1|9999010506|MR|Test|E|Lead 10506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010507|110507|989898|1|9999010507|MR|Test|E|Lead 10507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010508|110508|989898|1|9999010508|MR|Test|E|Lead 10508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010509|110509|989898|1|9999010509|MR|Test|E|Lead 10509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010510|110510|989898|1|9999010510|MR|Test|E|Lead 10510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010511|110511|989898|1|9999010511|MR|Test|E|Lead 10511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010512|110512|989898|1|9999010512|MR|Test|E|Lead 10512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010513|110513|989898|1|9999010513|MR|Test|E|Lead 10513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010514|110514|989898|1|9999010514|MR|Test|E|Lead 10514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010515|110515|989898|1|9999010515|MR|Test|E|Lead 10515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010516|110516|989898|1|9999010516|MR|Test|E|Lead 10516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010517|110517|989898|1|9999010517|MR|Test|E|Lead 10517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010518|110518|989898|1|9999010518|MR|Test|E|Lead 10518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010519|110519|989898|1|9999010519|MR|Test|E|Lead 10519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010520|110520|989898|1|9999010520|MR|Test|E|Lead 10520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010521|110521|989898|1|9999010521|MR|Test|E|Lead 10521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010522|110522|989898|1|9999010522|MR|Test|E|Lead 10522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010523|110523|989898|1|9999010523|MR|Test|E|Lead 10523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010524|110524|989898|1|9999010524|MR|Test|E|Lead 10524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010525|110525|989898|1|9999010525|MR|Test|E|Lead 10525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010526|110526|989898|1|9999010526|MR|Test|E|Lead 10526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010527|110527|989898|1|9999010527|MR|Test|E|Lead 10527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010528|110528|989898|1|9999010528|MR|Test|E|Lead 10528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010529|110529|989898|1|9999010529|MR|Test|E|Lead 10529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010530|110530|989898|1|9999010530|MR|Test|E|Lead 10530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010531|110531|989898|1|9999010531|MR|Test|E|Lead 10531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010532|110532|989898|1|9999010532|MR|Test|E|Lead 10532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010533|110533|989898|1|9999010533|MR|Test|E|Lead 10533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010534|110534|989898|1|9999010534|MR|Test|E|Lead 10534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010535|110535|989898|1|9999010535|MR|Test|E|Lead 10535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010536|110536|989898|1|9999010536|MR|Test|E|Lead 10536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010537|110537|989898|1|9999010537|MR|Test|E|Lead 10537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010538|110538|989898|1|9999010538|MR|Test|E|Lead 10538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010539|110539|989898|1|9999010539|MR|Test|E|Lead 10539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010540|110540|989898|1|9999010540|MR|Test|E|Lead 10540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010541|110541|989898|1|9999010541|MR|Test|E|Lead 10541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010542|110542|989898|1|9999010542|MR|Test|E|Lead 10542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010543|110543|989898|1|9999010543|MR|Test|E|Lead 10543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010544|110544|989898|1|9999010544|MR|Test|E|Lead 10544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010545|110545|989898|1|9999010545|MR|Test|E|Lead 10545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010546|110546|989898|1|9999010546|MR|Test|E|Lead 10546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010547|110547|989898|1|9999010547|MR|Test|E|Lead 10547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010548|110548|989898|1|9999010548|MR|Test|E|Lead 10548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010549|110549|989898|1|9999010549|MR|Test|E|Lead 10549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010550|110550|989898|1|9999010550|MR|Test|E|Lead 10550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010551|110551|989898|1|9999010551|MR|Test|E|Lead 10551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010552|110552|989898|1|9999010552|MR|Test|E|Lead 10552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010553|110553|989898|1|9999010553|MR|Test|E|Lead 10553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010554|110554|989898|1|9999010554|MR|Test|E|Lead 10554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010555|110555|989898|1|9999010555|MR|Test|E|Lead 10555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010556|110556|989898|1|9999010556|MR|Test|E|Lead 10556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010557|110557|989898|1|9999010557|MR|Test|E|Lead 10557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010558|110558|989898|1|9999010558|MR|Test|E|Lead 10558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010559|110559|989898|1|9999010559|MR|Test|E|Lead 10559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010560|110560|989898|1|9999010560|MR|Test|E|Lead 10560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010561|110561|989898|1|9999010561|MR|Test|E|Lead 10561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010562|110562|989898|1|9999010562|MR|Test|E|Lead 10562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010563|110563|989898|1|9999010563|MR|Test|E|Lead 10563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010564|110564|989898|1|9999010564|MR|Test|E|Lead 10564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010565|110565|989898|1|9999010565|MR|Test|E|Lead 10565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010566|110566|989898|1|9999010566|MR|Test|E|Lead 10566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010567|110567|989898|1|9999010567|MR|Test|E|Lead 10567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010568|110568|989898|1|9999010568|MR|Test|E|Lead 10568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010569|110569|989898|1|9999010569|MR|Test|E|Lead 10569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010570|110570|989898|1|9999010570|MR|Test|E|Lead 10570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010571|110571|989898|1|9999010571|MR|Test|E|Lead 10571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010572|110572|989898|1|9999010572|MR|Test|E|Lead 10572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010573|110573|989898|1|9999010573|MR|Test|E|Lead 10573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010574|110574|989898|1|9999010574|MR|Test|E|Lead 10574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010575|110575|989898|1|9999010575|MR|Test|E|Lead 10575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010576|110576|989898|1|9999010576|MR|Test|E|Lead 10576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010577|110577|989898|1|9999010577|MR|Test|E|Lead 10577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010578|110578|989898|1|9999010578|MR|Test|E|Lead 10578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010579|110579|989898|1|9999010579|MR|Test|E|Lead 10579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010580|110580|989898|1|9999010580|MR|Test|E|Lead 10580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010581|110581|989898|1|9999010581|MR|Test|E|Lead 10581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010582|110582|989898|1|9999010582|MR|Test|E|Lead 10582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010583|110583|989898|1|9999010583|MR|Test|E|Lead 10583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010584|110584|989898|1|9999010584|MR|Test|E|Lead 10584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010585|110585|989898|1|9999010585|MR|Test|E|Lead 10585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010586|110586|989898|1|9999010586|MR|Test|E|Lead 10586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010587|110587|989898|1|9999010587|MR|Test|E|Lead 10587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010588|110588|989898|1|9999010588|MR|Test|E|Lead 10588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010589|110589|989898|1|9999010589|MR|Test|E|Lead 10589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010590|110590|989898|1|9999010590|MR|Test|E|Lead 10590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010591|110591|989898|1|9999010591|MR|Test|E|Lead 10591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010592|110592|989898|1|9999010592|MR|Test|E|Lead 10592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010593|110593|989898|1|9999010593|MR|Test|E|Lead 10593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010594|110594|989898|1|9999010594|MR|Test|E|Lead 10594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010595|110595|989898|1|9999010595|MR|Test|E|Lead 10595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010596|110596|989898|1|9999010596|MR|Test|E|Lead 10596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010597|110597|989898|1|9999010597|MR|Test|E|Lead 10597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010598|110598|989898|1|9999010598|MR|Test|E|Lead 10598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010599|110599|989898|1|9999010599|MR|Test|E|Lead 10599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010600|110600|989898|1|9999010600|MR|Test|E|Lead 10600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010601|110601|989898|1|9999010601|MR|Test|E|Lead 10601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010602|110602|989898|1|9999010602|MR|Test|E|Lead 10602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010603|110603|989898|1|9999010603|MR|Test|E|Lead 10603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010604|110604|989898|1|9999010604|MR|Test|E|Lead 10604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010605|110605|989898|1|9999010605|MR|Test|E|Lead 10605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010606|110606|989898|1|9999010606|MR|Test|E|Lead 10606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010607|110607|989898|1|9999010607|MR|Test|E|Lead 10607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010608|110608|989898|1|9999010608|MR|Test|E|Lead 10608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010609|110609|989898|1|9999010609|MR|Test|E|Lead 10609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010610|110610|989898|1|9999010610|MR|Test|E|Lead 10610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010611|110611|989898|1|9999010611|MR|Test|E|Lead 10611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010612|110612|989898|1|9999010612|MR|Test|E|Lead 10612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010613|110613|989898|1|9999010613|MR|Test|E|Lead 10613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010614|110614|989898|1|9999010614|MR|Test|E|Lead 10614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010615|110615|989898|1|9999010615|MR|Test|E|Lead 10615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010616|110616|989898|1|9999010616|MR|Test|E|Lead 10616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010617|110617|989898|1|9999010617|MR|Test|E|Lead 10617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010618|110618|989898|1|9999010618|MR|Test|E|Lead 10618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010619|110619|989898|1|9999010619|MR|Test|E|Lead 10619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010620|110620|989898|1|9999010620|MR|Test|E|Lead 10620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010621|110621|989898|1|9999010621|MR|Test|E|Lead 10621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010622|110622|989898|1|9999010622|MR|Test|E|Lead 10622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010623|110623|989898|1|9999010623|MR|Test|E|Lead 10623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010624|110624|989898|1|9999010624|MR|Test|E|Lead 10624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010625|110625|989898|1|9999010625|MR|Test|E|Lead 10625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010626|110626|989898|1|9999010626|MR|Test|E|Lead 10626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010627|110627|989898|1|9999010627|MR|Test|E|Lead 10627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010628|110628|989898|1|9999010628|MR|Test|E|Lead 10628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010629|110629|989898|1|9999010629|MR|Test|E|Lead 10629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010630|110630|989898|1|9999010630|MR|Test|E|Lead 10630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010631|110631|989898|1|9999010631|MR|Test|E|Lead 10631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010632|110632|989898|1|9999010632|MR|Test|E|Lead 10632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010633|110633|989898|1|9999010633|MR|Test|E|Lead 10633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010634|110634|989898|1|9999010634|MR|Test|E|Lead 10634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010635|110635|989898|1|9999010635|MR|Test|E|Lead 10635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010636|110636|989898|1|9999010636|MR|Test|E|Lead 10636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010637|110637|989898|1|9999010637|MR|Test|E|Lead 10637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010638|110638|989898|1|9999010638|MR|Test|E|Lead 10638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010639|110639|989898|1|9999010639|MR|Test|E|Lead 10639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010640|110640|989898|1|9999010640|MR|Test|E|Lead 10640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010641|110641|989898|1|9999010641|MR|Test|E|Lead 10641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010642|110642|989898|1|9999010642|MR|Test|E|Lead 10642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010643|110643|989898|1|9999010643|MR|Test|E|Lead 10643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010644|110644|989898|1|9999010644|MR|Test|E|Lead 10644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010645|110645|989898|1|9999010645|MR|Test|E|Lead 10645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010646|110646|989898|1|9999010646|MR|Test|E|Lead 10646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010647|110647|989898|1|9999010647|MR|Test|E|Lead 10647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010648|110648|989898|1|9999010648|MR|Test|E|Lead 10648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010649|110649|989898|1|9999010649|MR|Test|E|Lead 10649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010650|110650|989898|1|9999010650|MR|Test|E|Lead 10650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010651|110651|989898|1|9999010651|MR|Test|E|Lead 10651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010652|110652|989898|1|9999010652|MR|Test|E|Lead 10652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010653|110653|989898|1|9999010653|MR|Test|E|Lead 10653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010654|110654|989898|1|9999010654|MR|Test|E|Lead 10654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010655|110655|989898|1|9999010655|MR|Test|E|Lead 10655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010656|110656|989898|1|9999010656|MR|Test|E|Lead 10656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010657|110657|989898|1|9999010657|MR|Test|E|Lead 10657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010658|110658|989898|1|9999010658|MR|Test|E|Lead 10658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010659|110659|989898|1|9999010659|MR|Test|E|Lead 10659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010660|110660|989898|1|9999010660|MR|Test|E|Lead 10660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010661|110661|989898|1|9999010661|MR|Test|E|Lead 10661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010662|110662|989898|1|9999010662|MR|Test|E|Lead 10662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010663|110663|989898|1|9999010663|MR|Test|E|Lead 10663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010664|110664|989898|1|9999010664|MR|Test|E|Lead 10664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010665|110665|989898|1|9999010665|MR|Test|E|Lead 10665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010666|110666|989898|1|9999010666|MR|Test|E|Lead 10666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010667|110667|989898|1|9999010667|MR|Test|E|Lead 10667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010668|110668|989898|1|9999010668|MR|Test|E|Lead 10668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010669|110669|989898|1|9999010669|MR|Test|E|Lead 10669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010670|110670|989898|1|9999010670|MR|Test|E|Lead 10670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010671|110671|989898|1|9999010671|MR|Test|E|Lead 10671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010672|110672|989898|1|9999010672|MR|Test|E|Lead 10672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010673|110673|989898|1|9999010673|MR|Test|E|Lead 10673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010674|110674|989898|1|9999010674|MR|Test|E|Lead 10674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010675|110675|989898|1|9999010675|MR|Test|E|Lead 10675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010676|110676|989898|1|9999010676|MR|Test|E|Lead 10676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010677|110677|989898|1|9999010677|MR|Test|E|Lead 10677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010678|110678|989898|1|9999010678|MR|Test|E|Lead 10678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010679|110679|989898|1|9999010679|MR|Test|E|Lead 10679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010680|110680|989898|1|9999010680|MR|Test|E|Lead 10680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010681|110681|989898|1|9999010681|MR|Test|E|Lead 10681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010682|110682|989898|1|9999010682|MR|Test|E|Lead 10682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010683|110683|989898|1|9999010683|MR|Test|E|Lead 10683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010684|110684|989898|1|9999010684|MR|Test|E|Lead 10684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010685|110685|989898|1|9999010685|MR|Test|E|Lead 10685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010686|110686|989898|1|9999010686|MR|Test|E|Lead 10686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010687|110687|989898|1|9999010687|MR|Test|E|Lead 10687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010688|110688|989898|1|9999010688|MR|Test|E|Lead 10688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010689|110689|989898|1|9999010689|MR|Test|E|Lead 10689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010690|110690|989898|1|9999010690|MR|Test|E|Lead 10690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010691|110691|989898|1|9999010691|MR|Test|E|Lead 10691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010692|110692|989898|1|9999010692|MR|Test|E|Lead 10692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010693|110693|989898|1|9999010693|MR|Test|E|Lead 10693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010694|110694|989898|1|9999010694|MR|Test|E|Lead 10694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010695|110695|989898|1|9999010695|MR|Test|E|Lead 10695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010696|110696|989898|1|9999010696|MR|Test|E|Lead 10696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010697|110697|989898|1|9999010697|MR|Test|E|Lead 10697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010698|110698|989898|1|9999010698|MR|Test|E|Lead 10698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010699|110699|989898|1|9999010699|MR|Test|E|Lead 10699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010700|110700|989898|1|9999010700|MR|Test|E|Lead 10700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010701|110701|989898|1|9999010701|MR|Test|E|Lead 10701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010702|110702|989898|1|9999010702|MR|Test|E|Lead 10702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010703|110703|989898|1|9999010703|MR|Test|E|Lead 10703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010704|110704|989898|1|9999010704|MR|Test|E|Lead 10704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010705|110705|989898|1|9999010705|MR|Test|E|Lead 10705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010706|110706|989898|1|9999010706|MR|Test|E|Lead 10706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010707|110707|989898|1|9999010707|MR|Test|E|Lead 10707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010708|110708|989898|1|9999010708|MR|Test|E|Lead 10708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010709|110709|989898|1|9999010709|MR|Test|E|Lead 10709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010710|110710|989898|1|9999010710|MR|Test|E|Lead 10710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010711|110711|989898|1|9999010711|MR|Test|E|Lead 10711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010712|110712|989898|1|9999010712|MR|Test|E|Lead 10712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010713|110713|989898|1|9999010713|MR|Test|E|Lead 10713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010714|110714|989898|1|9999010714|MR|Test|E|Lead 10714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010715|110715|989898|1|9999010715|MR|Test|E|Lead 10715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010716|110716|989898|1|9999010716|MR|Test|E|Lead 10716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010717|110717|989898|1|9999010717|MR|Test|E|Lead 10717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010718|110718|989898|1|9999010718|MR|Test|E|Lead 10718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010719|110719|989898|1|9999010719|MR|Test|E|Lead 10719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010720|110720|989898|1|9999010720|MR|Test|E|Lead 10720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010721|110721|989898|1|9999010721|MR|Test|E|Lead 10721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010722|110722|989898|1|9999010722|MR|Test|E|Lead 10722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010723|110723|989898|1|9999010723|MR|Test|E|Lead 10723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010724|110724|989898|1|9999010724|MR|Test|E|Lead 10724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010725|110725|989898|1|9999010725|MR|Test|E|Lead 10725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010726|110726|989898|1|9999010726|MR|Test|E|Lead 10726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010727|110727|989898|1|9999010727|MR|Test|E|Lead 10727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010728|110728|989898|1|9999010728|MR|Test|E|Lead 10728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010729|110729|989898|1|9999010729|MR|Test|E|Lead 10729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010730|110730|989898|1|9999010730|MR|Test|E|Lead 10730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010731|110731|989898|1|9999010731|MR|Test|E|Lead 10731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010732|110732|989898|1|9999010732|MR|Test|E|Lead 10732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010733|110733|989898|1|9999010733|MR|Test|E|Lead 10733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010734|110734|989898|1|9999010734|MR|Test|E|Lead 10734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010735|110735|989898|1|9999010735|MR|Test|E|Lead 10735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010736|110736|989898|1|9999010736|MR|Test|E|Lead 10736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010737|110737|989898|1|9999010737|MR|Test|E|Lead 10737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010738|110738|989898|1|9999010738|MR|Test|E|Lead 10738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010739|110739|989898|1|9999010739|MR|Test|E|Lead 10739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010740|110740|989898|1|9999010740|MR|Test|E|Lead 10740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010741|110741|989898|1|9999010741|MR|Test|E|Lead 10741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010742|110742|989898|1|9999010742|MR|Test|E|Lead 10742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010743|110743|989898|1|9999010743|MR|Test|E|Lead 10743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010744|110744|989898|1|9999010744|MR|Test|E|Lead 10744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010745|110745|989898|1|9999010745|MR|Test|E|Lead 10745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010746|110746|989898|1|9999010746|MR|Test|E|Lead 10746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010747|110747|989898|1|9999010747|MR|Test|E|Lead 10747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010748|110748|989898|1|9999010748|MR|Test|E|Lead 10748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010749|110749|989898|1|9999010749|MR|Test|E|Lead 10749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010750|110750|989898|1|9999010750|MR|Test|E|Lead 10750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010751|110751|989898|1|9999010751|MR|Test|E|Lead 10751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010752|110752|989898|1|9999010752|MR|Test|E|Lead 10752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010753|110753|989898|1|9999010753|MR|Test|E|Lead 10753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010754|110754|989898|1|9999010754|MR|Test|E|Lead 10754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010755|110755|989898|1|9999010755|MR|Test|E|Lead 10755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010756|110756|989898|1|9999010756|MR|Test|E|Lead 10756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010757|110757|989898|1|9999010757|MR|Test|E|Lead 10757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010758|110758|989898|1|9999010758|MR|Test|E|Lead 10758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010759|110759|989898|1|9999010759|MR|Test|E|Lead 10759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010760|110760|989898|1|9999010760|MR|Test|E|Lead 10760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010761|110761|989898|1|9999010761|MR|Test|E|Lead 10761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010762|110762|989898|1|9999010762|MR|Test|E|Lead 10762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010763|110763|989898|1|9999010763|MR|Test|E|Lead 10763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010764|110764|989898|1|9999010764|MR|Test|E|Lead 10764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010765|110765|989898|1|9999010765|MR|Test|E|Lead 10765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010766|110766|989898|1|9999010766|MR|Test|E|Lead 10766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010767|110767|989898|1|9999010767|MR|Test|E|Lead 10767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010768|110768|989898|1|9999010768|MR|Test|E|Lead 10768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010769|110769|989898|1|9999010769|MR|Test|E|Lead 10769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010770|110770|989898|1|9999010770|MR|Test|E|Lead 10770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010771|110771|989898|1|9999010771|MR|Test|E|Lead 10771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010772|110772|989898|1|9999010772|MR|Test|E|Lead 10772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010773|110773|989898|1|9999010773|MR|Test|E|Lead 10773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010774|110774|989898|1|9999010774|MR|Test|E|Lead 10774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010775|110775|989898|1|9999010775|MR|Test|E|Lead 10775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010776|110776|989898|1|9999010776|MR|Test|E|Lead 10776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010777|110777|989898|1|9999010777|MR|Test|E|Lead 10777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010778|110778|989898|1|9999010778|MR|Test|E|Lead 10778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010779|110779|989898|1|9999010779|MR|Test|E|Lead 10779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010780|110780|989898|1|9999010780|MR|Test|E|Lead 10780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010781|110781|989898|1|9999010781|MR|Test|E|Lead 10781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010782|110782|989898|1|9999010782|MR|Test|E|Lead 10782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010783|110783|989898|1|9999010783|MR|Test|E|Lead 10783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010784|110784|989898|1|9999010784|MR|Test|E|Lead 10784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010785|110785|989898|1|9999010785|MR|Test|E|Lead 10785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010786|110786|989898|1|9999010786|MR|Test|E|Lead 10786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010787|110787|989898|1|9999010787|MR|Test|E|Lead 10787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010788|110788|989898|1|9999010788|MR|Test|E|Lead 10788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010789|110789|989898|1|9999010789|MR|Test|E|Lead 10789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010790|110790|989898|1|9999010790|MR|Test|E|Lead 10790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010791|110791|989898|1|9999010791|MR|Test|E|Lead 10791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010792|110792|989898|1|9999010792|MR|Test|E|Lead 10792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010793|110793|989898|1|9999010793|MR|Test|E|Lead 10793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010794|110794|989898|1|9999010794|MR|Test|E|Lead 10794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010795|110795|989898|1|9999010795|MR|Test|E|Lead 10795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010796|110796|989898|1|9999010796|MR|Test|E|Lead 10796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010797|110797|989898|1|9999010797|MR|Test|E|Lead 10797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010798|110798|989898|1|9999010798|MR|Test|E|Lead 10798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010799|110799|989898|1|9999010799|MR|Test|E|Lead 10799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010800|110800|989898|1|9999010800|MR|Test|E|Lead 10800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010801|110801|989898|1|9999010801|MR|Test|E|Lead 10801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010802|110802|989898|1|9999010802|MR|Test|E|Lead 10802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010803|110803|989898|1|9999010803|MR|Test|E|Lead 10803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010804|110804|989898|1|9999010804|MR|Test|E|Lead 10804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010805|110805|989898|1|9999010805|MR|Test|E|Lead 10805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010806|110806|989898|1|9999010806|MR|Test|E|Lead 10806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010807|110807|989898|1|9999010807|MR|Test|E|Lead 10807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010808|110808|989898|1|9999010808|MR|Test|E|Lead 10808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010809|110809|989898|1|9999010809|MR|Test|E|Lead 10809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010810|110810|989898|1|9999010810|MR|Test|E|Lead 10810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010811|110811|989898|1|9999010811|MR|Test|E|Lead 10811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010812|110812|989898|1|9999010812|MR|Test|E|Lead 10812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010813|110813|989898|1|9999010813|MR|Test|E|Lead 10813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010814|110814|989898|1|9999010814|MR|Test|E|Lead 10814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010815|110815|989898|1|9999010815|MR|Test|E|Lead 10815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010816|110816|989898|1|9999010816|MR|Test|E|Lead 10816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010817|110817|989898|1|9999010817|MR|Test|E|Lead 10817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010818|110818|989898|1|9999010818|MR|Test|E|Lead 10818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010819|110819|989898|1|9999010819|MR|Test|E|Lead 10819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010820|110820|989898|1|9999010820|MR|Test|E|Lead 10820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010821|110821|989898|1|9999010821|MR|Test|E|Lead 10821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010822|110822|989898|1|9999010822|MR|Test|E|Lead 10822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010823|110823|989898|1|9999010823|MR|Test|E|Lead 10823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010824|110824|989898|1|9999010824|MR|Test|E|Lead 10824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010825|110825|989898|1|9999010825|MR|Test|E|Lead 10825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010826|110826|989898|1|9999010826|MR|Test|E|Lead 10826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010827|110827|989898|1|9999010827|MR|Test|E|Lead 10827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010828|110828|989898|1|9999010828|MR|Test|E|Lead 10828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010829|110829|989898|1|9999010829|MR|Test|E|Lead 10829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010830|110830|989898|1|9999010830|MR|Test|E|Lead 10830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010831|110831|989898|1|9999010831|MR|Test|E|Lead 10831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010832|110832|989898|1|9999010832|MR|Test|E|Lead 10832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010833|110833|989898|1|9999010833|MR|Test|E|Lead 10833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010834|110834|989898|1|9999010834|MR|Test|E|Lead 10834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010835|110835|989898|1|9999010835|MR|Test|E|Lead 10835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010836|110836|989898|1|9999010836|MR|Test|E|Lead 10836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010837|110837|989898|1|9999010837|MR|Test|E|Lead 10837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010838|110838|989898|1|9999010838|MR|Test|E|Lead 10838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010839|110839|989898|1|9999010839|MR|Test|E|Lead 10839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010840|110840|989898|1|9999010840|MR|Test|E|Lead 10840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010841|110841|989898|1|9999010841|MR|Test|E|Lead 10841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010842|110842|989898|1|9999010842|MR|Test|E|Lead 10842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010843|110843|989898|1|9999010843|MR|Test|E|Lead 10843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010844|110844|989898|1|9999010844|MR|Test|E|Lead 10844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010845|110845|989898|1|9999010845|MR|Test|E|Lead 10845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010846|110846|989898|1|9999010846|MR|Test|E|Lead 10846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010847|110847|989898|1|9999010847|MR|Test|E|Lead 10847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010848|110848|989898|1|9999010848|MR|Test|E|Lead 10848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010849|110849|989898|1|9999010849|MR|Test|E|Lead 10849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010850|110850|989898|1|9999010850|MR|Test|E|Lead 10850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010851|110851|989898|1|9999010851|MR|Test|E|Lead 10851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010852|110852|989898|1|9999010852|MR|Test|E|Lead 10852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010853|110853|989898|1|9999010853|MR|Test|E|Lead 10853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010854|110854|989898|1|9999010854|MR|Test|E|Lead 10854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010855|110855|989898|1|9999010855|MR|Test|E|Lead 10855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010856|110856|989898|1|9999010856|MR|Test|E|Lead 10856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010857|110857|989898|1|9999010857|MR|Test|E|Lead 10857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010858|110858|989898|1|9999010858|MR|Test|E|Lead 10858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010859|110859|989898|1|9999010859|MR|Test|E|Lead 10859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010860|110860|989898|1|9999010860|MR|Test|E|Lead 10860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010861|110861|989898|1|9999010861|MR|Test|E|Lead 10861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010862|110862|989898|1|9999010862|MR|Test|E|Lead 10862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010863|110863|989898|1|9999010863|MR|Test|E|Lead 10863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010864|110864|989898|1|9999010864|MR|Test|E|Lead 10864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010865|110865|989898|1|9999010865|MR|Test|E|Lead 10865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010866|110866|989898|1|9999010866|MR|Test|E|Lead 10866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010867|110867|989898|1|9999010867|MR|Test|E|Lead 10867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010868|110868|989898|1|9999010868|MR|Test|E|Lead 10868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010869|110869|989898|1|9999010869|MR|Test|E|Lead 10869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010870|110870|989898|1|9999010870|MR|Test|E|Lead 10870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010871|110871|989898|1|9999010871|MR|Test|E|Lead 10871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010872|110872|989898|1|9999010872|MR|Test|E|Lead 10872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010873|110873|989898|1|9999010873|MR|Test|E|Lead 10873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010874|110874|989898|1|9999010874|MR|Test|E|Lead 10874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010875|110875|989898|1|9999010875|MR|Test|E|Lead 10875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010876|110876|989898|1|9999010876|MR|Test|E|Lead 10876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010877|110877|989898|1|9999010877|MR|Test|E|Lead 10877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010878|110878|989898|1|9999010878|MR|Test|E|Lead 10878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010879|110879|989898|1|9999010879|MR|Test|E|Lead 10879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010880|110880|989898|1|9999010880|MR|Test|E|Lead 10880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010881|110881|989898|1|9999010881|MR|Test|E|Lead 10881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010882|110882|989898|1|9999010882|MR|Test|E|Lead 10882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010883|110883|989898|1|9999010883|MR|Test|E|Lead 10883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010884|110884|989898|1|9999010884|MR|Test|E|Lead 10884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010885|110885|989898|1|9999010885|MR|Test|E|Lead 10885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010886|110886|989898|1|9999010886|MR|Test|E|Lead 10886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010887|110887|989898|1|9999010887|MR|Test|E|Lead 10887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010888|110888|989898|1|9999010888|MR|Test|E|Lead 10888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010889|110889|989898|1|9999010889|MR|Test|E|Lead 10889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010890|110890|989898|1|9999010890|MR|Test|E|Lead 10890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010891|110891|989898|1|9999010891|MR|Test|E|Lead 10891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010892|110892|989898|1|9999010892|MR|Test|E|Lead 10892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010893|110893|989898|1|9999010893|MR|Test|E|Lead 10893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010894|110894|989898|1|9999010894|MR|Test|E|Lead 10894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010895|110895|989898|1|9999010895|MR|Test|E|Lead 10895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010896|110896|989898|1|9999010896|MR|Test|E|Lead 10896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010897|110897|989898|1|9999010897|MR|Test|E|Lead 10897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010898|110898|989898|1|9999010898|MR|Test|E|Lead 10898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010899|110899|989898|1|9999010899|MR|Test|E|Lead 10899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010900|110900|989898|1|9999010900|MR|Test|E|Lead 10900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010901|110901|989898|1|9999010901|MR|Test|E|Lead 10901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010902|110902|989898|1|9999010902|MR|Test|E|Lead 10902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010903|110903|989898|1|9999010903|MR|Test|E|Lead 10903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010904|110904|989898|1|9999010904|MR|Test|E|Lead 10904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010905|110905|989898|1|9999010905|MR|Test|E|Lead 10905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010906|110906|989898|1|9999010906|MR|Test|E|Lead 10906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010907|110907|989898|1|9999010907|MR|Test|E|Lead 10907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010908|110908|989898|1|9999010908|MR|Test|E|Lead 10908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010909|110909|989898|1|9999010909|MR|Test|E|Lead 10909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010910|110910|989898|1|9999010910|MR|Test|E|Lead 10910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010911|110911|989898|1|9999010911|MR|Test|E|Lead 10911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010912|110912|989898|1|9999010912|MR|Test|E|Lead 10912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010913|110913|989898|1|9999010913|MR|Test|E|Lead 10913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010914|110914|989898|1|9999010914|MR|Test|E|Lead 10914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010915|110915|989898|1|9999010915|MR|Test|E|Lead 10915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010916|110916|989898|1|9999010916|MR|Test|E|Lead 10916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010917|110917|989898|1|9999010917|MR|Test|E|Lead 10917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010918|110918|989898|1|9999010918|MR|Test|E|Lead 10918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010919|110919|989898|1|9999010919|MR|Test|E|Lead 10919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010920|110920|989898|1|9999010920|MR|Test|E|Lead 10920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010921|110921|989898|1|9999010921|MR|Test|E|Lead 10921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010922|110922|989898|1|9999010922|MR|Test|E|Lead 10922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010923|110923|989898|1|9999010923|MR|Test|E|Lead 10923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010924|110924|989898|1|9999010924|MR|Test|E|Lead 10924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010925|110925|989898|1|9999010925|MR|Test|E|Lead 10925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010926|110926|989898|1|9999010926|MR|Test|E|Lead 10926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010927|110927|989898|1|9999010927|MR|Test|E|Lead 10927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010928|110928|989898|1|9999010928|MR|Test|E|Lead 10928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010929|110929|989898|1|9999010929|MR|Test|E|Lead 10929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010930|110930|989898|1|9999010930|MR|Test|E|Lead 10930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010931|110931|989898|1|9999010931|MR|Test|E|Lead 10931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010932|110932|989898|1|9999010932|MR|Test|E|Lead 10932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010933|110933|989898|1|9999010933|MR|Test|E|Lead 10933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010934|110934|989898|1|9999010934|MR|Test|E|Lead 10934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010935|110935|989898|1|9999010935|MR|Test|E|Lead 10935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010936|110936|989898|1|9999010936|MR|Test|E|Lead 10936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010937|110937|989898|1|9999010937|MR|Test|E|Lead 10937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010938|110938|989898|1|9999010938|MR|Test|E|Lead 10938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010939|110939|989898|1|9999010939|MR|Test|E|Lead 10939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010940|110940|989898|1|9999010940|MR|Test|E|Lead 10940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010941|110941|989898|1|9999010941|MR|Test|E|Lead 10941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010942|110942|989898|1|9999010942|MR|Test|E|Lead 10942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010943|110943|989898|1|9999010943|MR|Test|E|Lead 10943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010944|110944|989898|1|9999010944|MR|Test|E|Lead 10944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010945|110945|989898|1|9999010945|MR|Test|E|Lead 10945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010946|110946|989898|1|9999010946|MR|Test|E|Lead 10946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010947|110947|989898|1|9999010947|MR|Test|E|Lead 10947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010948|110948|989898|1|9999010948|MR|Test|E|Lead 10948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010949|110949|989898|1|9999010949|MR|Test|E|Lead 10949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010950|110950|989898|1|9999010950|MR|Test|E|Lead 10950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010951|110951|989898|1|9999010951|MR|Test|E|Lead 10951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010952|110952|989898|1|9999010952|MR|Test|E|Lead 10952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010953|110953|989898|1|9999010953|MR|Test|E|Lead 10953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010954|110954|989898|1|9999010954|MR|Test|E|Lead 10954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010955|110955|989898|1|9999010955|MR|Test|E|Lead 10955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010956|110956|989898|1|9999010956|MR|Test|E|Lead 10956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010957|110957|989898|1|9999010957|MR|Test|E|Lead 10957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010958|110958|989898|1|9999010958|MR|Test|E|Lead 10958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010959|110959|989898|1|9999010959|MR|Test|E|Lead 10959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010960|110960|989898|1|9999010960|MR|Test|E|Lead 10960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010961|110961|989898|1|9999010961|MR|Test|E|Lead 10961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010962|110962|989898|1|9999010962|MR|Test|E|Lead 10962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010963|110963|989898|1|9999010963|MR|Test|E|Lead 10963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010964|110964|989898|1|9999010964|MR|Test|E|Lead 10964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010965|110965|989898|1|9999010965|MR|Test|E|Lead 10965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010966|110966|989898|1|9999010966|MR|Test|E|Lead 10966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010967|110967|989898|1|9999010967|MR|Test|E|Lead 10967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010968|110968|989898|1|9999010968|MR|Test|E|Lead 10968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010969|110969|989898|1|9999010969|MR|Test|E|Lead 10969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010970|110970|989898|1|9999010970|MR|Test|E|Lead 10970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010971|110971|989898|1|9999010971|MR|Test|E|Lead 10971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010972|110972|989898|1|9999010972|MR|Test|E|Lead 10972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010973|110973|989898|1|9999010973|MR|Test|E|Lead 10973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010974|110974|989898|1|9999010974|MR|Test|E|Lead 10974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010975|110975|989898|1|9999010975|MR|Test|E|Lead 10975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010976|110976|989898|1|9999010976|MR|Test|E|Lead 10976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010977|110977|989898|1|9999010977|MR|Test|E|Lead 10977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010978|110978|989898|1|9999010978|MR|Test|E|Lead 10978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010979|110979|989898|1|9999010979|MR|Test|E|Lead 10979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010980|110980|989898|1|9999010980|MR|Test|E|Lead 10980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010981|110981|989898|1|9999010981|MR|Test|E|Lead 10981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010982|110982|989898|1|9999010982|MR|Test|E|Lead 10982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010983|110983|989898|1|9999010983|MR|Test|E|Lead 10983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010984|110984|989898|1|9999010984|MR|Test|E|Lead 10984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010985|110985|989898|1|9999010985|MR|Test|E|Lead 10985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010986|110986|989898|1|9999010986|MR|Test|E|Lead 10986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010987|110987|989898|1|9999010987|MR|Test|E|Lead 10987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010988|110988|989898|1|9999010988|MR|Test|E|Lead 10988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010989|110989|989898|1|9999010989|MR|Test|E|Lead 10989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010990|110990|989898|1|9999010990|MR|Test|E|Lead 10990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010991|110991|989898|1|9999010991|MR|Test|E|Lead 10991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010992|110992|989898|1|9999010992|MR|Test|E|Lead 10992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010993|110993|989898|1|9999010993|MR|Test|E|Lead 10993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010994|110994|989898|1|9999010994|MR|Test|E|Lead 10994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010995|110995|989898|1|9999010995|MR|Test|E|Lead 10995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010996|110996|989898|1|9999010996|MR|Test|E|Lead 10996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010997|110997|989898|1|9999010997|MR|Test|E|Lead 10997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010998|110998|989898|1|9999010998|MR|Test|E|Lead 10998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1010999|110999|989898|1|9999010999|MR|Test|E|Lead 10999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011000|111000|989898|1|9999011000|MR|Test|E|Lead 11000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011001|111001|989898|1|9999011001|MR|Test|E|Lead 11001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011002|111002|989898|1|9999011002|MR|Test|E|Lead 11002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011003|111003|989898|1|9999011003|MR|Test|E|Lead 11003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011004|111004|989898|1|9999011004|MR|Test|E|Lead 11004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011005|111005|989898|1|9999011005|MR|Test|E|Lead 11005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011006|111006|989898|1|9999011006|MR|Test|E|Lead 11006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011007|111007|989898|1|9999011007|MR|Test|E|Lead 11007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011008|111008|989898|1|9999011008|MR|Test|E|Lead 11008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011009|111009|989898|1|9999011009|MR|Test|E|Lead 11009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011010|111010|989898|1|9999011010|MR|Test|E|Lead 11010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011011|111011|989898|1|9999011011|MR|Test|E|Lead 11011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011012|111012|989898|1|9999011012|MR|Test|E|Lead 11012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011013|111013|989898|1|9999011013|MR|Test|E|Lead 11013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011014|111014|989898|1|9999011014|MR|Test|E|Lead 11014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011015|111015|989898|1|9999011015|MR|Test|E|Lead 11015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011016|111016|989898|1|9999011016|MR|Test|E|Lead 11016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011017|111017|989898|1|9999011017|MR|Test|E|Lead 11017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011018|111018|989898|1|9999011018|MR|Test|E|Lead 11018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011019|111019|989898|1|9999011019|MR|Test|E|Lead 11019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011020|111020|989898|1|9999011020|MR|Test|E|Lead 11020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011021|111021|989898|1|9999011021|MR|Test|E|Lead 11021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011022|111022|989898|1|9999011022|MR|Test|E|Lead 11022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011023|111023|989898|1|9999011023|MR|Test|E|Lead 11023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011024|111024|989898|1|9999011024|MR|Test|E|Lead 11024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011025|111025|989898|1|9999011025|MR|Test|E|Lead 11025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011026|111026|989898|1|9999011026|MR|Test|E|Lead 11026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011027|111027|989898|1|9999011027|MR|Test|E|Lead 11027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011028|111028|989898|1|9999011028|MR|Test|E|Lead 11028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011029|111029|989898|1|9999011029|MR|Test|E|Lead 11029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011030|111030|989898|1|9999011030|MR|Test|E|Lead 11030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011031|111031|989898|1|9999011031|MR|Test|E|Lead 11031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011032|111032|989898|1|9999011032|MR|Test|E|Lead 11032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011033|111033|989898|1|9999011033|MR|Test|E|Lead 11033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011034|111034|989898|1|9999011034|MR|Test|E|Lead 11034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011035|111035|989898|1|9999011035|MR|Test|E|Lead 11035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011036|111036|989898|1|9999011036|MR|Test|E|Lead 11036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011037|111037|989898|1|9999011037|MR|Test|E|Lead 11037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011038|111038|989898|1|9999011038|MR|Test|E|Lead 11038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011039|111039|989898|1|9999011039|MR|Test|E|Lead 11039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011040|111040|989898|1|9999011040|MR|Test|E|Lead 11040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011041|111041|989898|1|9999011041|MR|Test|E|Lead 11041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011042|111042|989898|1|9999011042|MR|Test|E|Lead 11042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011043|111043|989898|1|9999011043|MR|Test|E|Lead 11043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011044|111044|989898|1|9999011044|MR|Test|E|Lead 11044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011045|111045|989898|1|9999011045|MR|Test|E|Lead 11045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011046|111046|989898|1|9999011046|MR|Test|E|Lead 11046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011047|111047|989898|1|9999011047|MR|Test|E|Lead 11047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011048|111048|989898|1|9999011048|MR|Test|E|Lead 11048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011049|111049|989898|1|9999011049|MR|Test|E|Lead 11049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011050|111050|989898|1|9999011050|MR|Test|E|Lead 11050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011051|111051|989898|1|9999011051|MR|Test|E|Lead 11051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011052|111052|989898|1|9999011052|MR|Test|E|Lead 11052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011053|111053|989898|1|9999011053|MR|Test|E|Lead 11053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011054|111054|989898|1|9999011054|MR|Test|E|Lead 11054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011055|111055|989898|1|9999011055|MR|Test|E|Lead 11055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011056|111056|989898|1|9999011056|MR|Test|E|Lead 11056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011057|111057|989898|1|9999011057|MR|Test|E|Lead 11057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011058|111058|989898|1|9999011058|MR|Test|E|Lead 11058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011059|111059|989898|1|9999011059|MR|Test|E|Lead 11059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011060|111060|989898|1|9999011060|MR|Test|E|Lead 11060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011061|111061|989898|1|9999011061|MR|Test|E|Lead 11061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011062|111062|989898|1|9999011062|MR|Test|E|Lead 11062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011063|111063|989898|1|9999011063|MR|Test|E|Lead 11063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011064|111064|989898|1|9999011064|MR|Test|E|Lead 11064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011065|111065|989898|1|9999011065|MR|Test|E|Lead 11065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011066|111066|989898|1|9999011066|MR|Test|E|Lead 11066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011067|111067|989898|1|9999011067|MR|Test|E|Lead 11067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011068|111068|989898|1|9999011068|MR|Test|E|Lead 11068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011069|111069|989898|1|9999011069|MR|Test|E|Lead 11069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011070|111070|989898|1|9999011070|MR|Test|E|Lead 11070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011071|111071|989898|1|9999011071|MR|Test|E|Lead 11071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011072|111072|989898|1|9999011072|MR|Test|E|Lead 11072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011073|111073|989898|1|9999011073|MR|Test|E|Lead 11073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011074|111074|989898|1|9999011074|MR|Test|E|Lead 11074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011075|111075|989898|1|9999011075|MR|Test|E|Lead 11075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011076|111076|989898|1|9999011076|MR|Test|E|Lead 11076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011077|111077|989898|1|9999011077|MR|Test|E|Lead 11077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011078|111078|989898|1|9999011078|MR|Test|E|Lead 11078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011079|111079|989898|1|9999011079|MR|Test|E|Lead 11079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011080|111080|989898|1|9999011080|MR|Test|E|Lead 11080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011081|111081|989898|1|9999011081|MR|Test|E|Lead 11081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011082|111082|989898|1|9999011082|MR|Test|E|Lead 11082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011083|111083|989898|1|9999011083|MR|Test|E|Lead 11083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011084|111084|989898|1|9999011084|MR|Test|E|Lead 11084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011085|111085|989898|1|9999011085|MR|Test|E|Lead 11085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011086|111086|989898|1|9999011086|MR|Test|E|Lead 11086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011087|111087|989898|1|9999011087|MR|Test|E|Lead 11087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011088|111088|989898|1|9999011088|MR|Test|E|Lead 11088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011089|111089|989898|1|9999011089|MR|Test|E|Lead 11089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011090|111090|989898|1|9999011090|MR|Test|E|Lead 11090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011091|111091|989898|1|9999011091|MR|Test|E|Lead 11091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011092|111092|989898|1|9999011092|MR|Test|E|Lead 11092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011093|111093|989898|1|9999011093|MR|Test|E|Lead 11093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011094|111094|989898|1|9999011094|MR|Test|E|Lead 11094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011095|111095|989898|1|9999011095|MR|Test|E|Lead 11095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011096|111096|989898|1|9999011096|MR|Test|E|Lead 11096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011097|111097|989898|1|9999011097|MR|Test|E|Lead 11097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011098|111098|989898|1|9999011098|MR|Test|E|Lead 11098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011099|111099|989898|1|9999011099|MR|Test|E|Lead 11099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011100|111100|989898|1|9999011100|MR|Test|E|Lead 11100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011101|111101|989898|1|9999011101|MR|Test|E|Lead 11101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011102|111102|989898|1|9999011102|MR|Test|E|Lead 11102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011103|111103|989898|1|9999011103|MR|Test|E|Lead 11103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011104|111104|989898|1|9999011104|MR|Test|E|Lead 11104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011105|111105|989898|1|9999011105|MR|Test|E|Lead 11105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011106|111106|989898|1|9999011106|MR|Test|E|Lead 11106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011107|111107|989898|1|9999011107|MR|Test|E|Lead 11107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011108|111108|989898|1|9999011108|MR|Test|E|Lead 11108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011109|111109|989898|1|9999011109|MR|Test|E|Lead 11109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011110|111110|989898|1|9999011110|MR|Test|E|Lead 11110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011111|111111|989898|1|9999011111|MR|Test|E|Lead 11111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011112|111112|989898|1|9999011112|MR|Test|E|Lead 11112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011113|111113|989898|1|9999011113|MR|Test|E|Lead 11113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011114|111114|989898|1|9999011114|MR|Test|E|Lead 11114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011115|111115|989898|1|9999011115|MR|Test|E|Lead 11115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011116|111116|989898|1|9999011116|MR|Test|E|Lead 11116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011117|111117|989898|1|9999011117|MR|Test|E|Lead 11117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011118|111118|989898|1|9999011118|MR|Test|E|Lead 11118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011119|111119|989898|1|9999011119|MR|Test|E|Lead 11119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011120|111120|989898|1|9999011120|MR|Test|E|Lead 11120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011121|111121|989898|1|9999011121|MR|Test|E|Lead 11121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011122|111122|989898|1|9999011122|MR|Test|E|Lead 11122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011123|111123|989898|1|9999011123|MR|Test|E|Lead 11123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011124|111124|989898|1|9999011124|MR|Test|E|Lead 11124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011125|111125|989898|1|9999011125|MR|Test|E|Lead 11125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011126|111126|989898|1|9999011126|MR|Test|E|Lead 11126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011127|111127|989898|1|9999011127|MR|Test|E|Lead 11127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011128|111128|989898|1|9999011128|MR|Test|E|Lead 11128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011129|111129|989898|1|9999011129|MR|Test|E|Lead 11129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011130|111130|989898|1|9999011130|MR|Test|E|Lead 11130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011131|111131|989898|1|9999011131|MR|Test|E|Lead 11131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011132|111132|989898|1|9999011132|MR|Test|E|Lead 11132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011133|111133|989898|1|9999011133|MR|Test|E|Lead 11133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011134|111134|989898|1|9999011134|MR|Test|E|Lead 11134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011135|111135|989898|1|9999011135|MR|Test|E|Lead 11135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011136|111136|989898|1|9999011136|MR|Test|E|Lead 11136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011137|111137|989898|1|9999011137|MR|Test|E|Lead 11137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011138|111138|989898|1|9999011138|MR|Test|E|Lead 11138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011139|111139|989898|1|9999011139|MR|Test|E|Lead 11139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011140|111140|989898|1|9999011140|MR|Test|E|Lead 11140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011141|111141|989898|1|9999011141|MR|Test|E|Lead 11141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011142|111142|989898|1|9999011142|MR|Test|E|Lead 11142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011143|111143|989898|1|9999011143|MR|Test|E|Lead 11143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011144|111144|989898|1|9999011144|MR|Test|E|Lead 11144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011145|111145|989898|1|9999011145|MR|Test|E|Lead 11145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011146|111146|989898|1|9999011146|MR|Test|E|Lead 11146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011147|111147|989898|1|9999011147|MR|Test|E|Lead 11147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011148|111148|989898|1|9999011148|MR|Test|E|Lead 11148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011149|111149|989898|1|9999011149|MR|Test|E|Lead 11149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011150|111150|989898|1|9999011150|MR|Test|E|Lead 11150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011151|111151|989898|1|9999011151|MR|Test|E|Lead 11151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011152|111152|989898|1|9999011152|MR|Test|E|Lead 11152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011153|111153|989898|1|9999011153|MR|Test|E|Lead 11153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011154|111154|989898|1|9999011154|MR|Test|E|Lead 11154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011155|111155|989898|1|9999011155|MR|Test|E|Lead 11155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011156|111156|989898|1|9999011156|MR|Test|E|Lead 11156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011157|111157|989898|1|9999011157|MR|Test|E|Lead 11157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011158|111158|989898|1|9999011158|MR|Test|E|Lead 11158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011159|111159|989898|1|9999011159|MR|Test|E|Lead 11159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011160|111160|989898|1|9999011160|MR|Test|E|Lead 11160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011161|111161|989898|1|9999011161|MR|Test|E|Lead 11161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011162|111162|989898|1|9999011162|MR|Test|E|Lead 11162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011163|111163|989898|1|9999011163|MR|Test|E|Lead 11163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011164|111164|989898|1|9999011164|MR|Test|E|Lead 11164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011165|111165|989898|1|9999011165|MR|Test|E|Lead 11165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011166|111166|989898|1|9999011166|MR|Test|E|Lead 11166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011167|111167|989898|1|9999011167|MR|Test|E|Lead 11167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011168|111168|989898|1|9999011168|MR|Test|E|Lead 11168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011169|111169|989898|1|9999011169|MR|Test|E|Lead 11169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011170|111170|989898|1|9999011170|MR|Test|E|Lead 11170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011171|111171|989898|1|9999011171|MR|Test|E|Lead 11171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011172|111172|989898|1|9999011172|MR|Test|E|Lead 11172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011173|111173|989898|1|9999011173|MR|Test|E|Lead 11173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011174|111174|989898|1|9999011174|MR|Test|E|Lead 11174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011175|111175|989898|1|9999011175|MR|Test|E|Lead 11175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011176|111176|989898|1|9999011176|MR|Test|E|Lead 11176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011177|111177|989898|1|9999011177|MR|Test|E|Lead 11177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011178|111178|989898|1|9999011178|MR|Test|E|Lead 11178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011179|111179|989898|1|9999011179|MR|Test|E|Lead 11179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011180|111180|989898|1|9999011180|MR|Test|E|Lead 11180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011181|111181|989898|1|9999011181|MR|Test|E|Lead 11181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011182|111182|989898|1|9999011182|MR|Test|E|Lead 11182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011183|111183|989898|1|9999011183|MR|Test|E|Lead 11183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011184|111184|989898|1|9999011184|MR|Test|E|Lead 11184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011185|111185|989898|1|9999011185|MR|Test|E|Lead 11185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011186|111186|989898|1|9999011186|MR|Test|E|Lead 11186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011187|111187|989898|1|9999011187|MR|Test|E|Lead 11187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011188|111188|989898|1|9999011188|MR|Test|E|Lead 11188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011189|111189|989898|1|9999011189|MR|Test|E|Lead 11189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011190|111190|989898|1|9999011190|MR|Test|E|Lead 11190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011191|111191|989898|1|9999011191|MR|Test|E|Lead 11191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011192|111192|989898|1|9999011192|MR|Test|E|Lead 11192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011193|111193|989898|1|9999011193|MR|Test|E|Lead 11193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011194|111194|989898|1|9999011194|MR|Test|E|Lead 11194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011195|111195|989898|1|9999011195|MR|Test|E|Lead 11195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011196|111196|989898|1|9999011196|MR|Test|E|Lead 11196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011197|111197|989898|1|9999011197|MR|Test|E|Lead 11197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011198|111198|989898|1|9999011198|MR|Test|E|Lead 11198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011199|111199|989898|1|9999011199|MR|Test|E|Lead 11199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011200|111200|989898|1|9999011200|MR|Test|E|Lead 11200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011201|111201|989898|1|9999011201|MR|Test|E|Lead 11201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011202|111202|989898|1|9999011202|MR|Test|E|Lead 11202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011203|111203|989898|1|9999011203|MR|Test|E|Lead 11203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011204|111204|989898|1|9999011204|MR|Test|E|Lead 11204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011205|111205|989898|1|9999011205|MR|Test|E|Lead 11205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011206|111206|989898|1|9999011206|MR|Test|E|Lead 11206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011207|111207|989898|1|9999011207|MR|Test|E|Lead 11207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011208|111208|989898|1|9999011208|MR|Test|E|Lead 11208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011209|111209|989898|1|9999011209|MR|Test|E|Lead 11209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011210|111210|989898|1|9999011210|MR|Test|E|Lead 11210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011211|111211|989898|1|9999011211|MR|Test|E|Lead 11211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011212|111212|989898|1|9999011212|MR|Test|E|Lead 11212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011213|111213|989898|1|9999011213|MR|Test|E|Lead 11213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011214|111214|989898|1|9999011214|MR|Test|E|Lead 11214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011215|111215|989898|1|9999011215|MR|Test|E|Lead 11215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011216|111216|989898|1|9999011216|MR|Test|E|Lead 11216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011217|111217|989898|1|9999011217|MR|Test|E|Lead 11217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011218|111218|989898|1|9999011218|MR|Test|E|Lead 11218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011219|111219|989898|1|9999011219|MR|Test|E|Lead 11219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011220|111220|989898|1|9999011220|MR|Test|E|Lead 11220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011221|111221|989898|1|9999011221|MR|Test|E|Lead 11221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011222|111222|989898|1|9999011222|MR|Test|E|Lead 11222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011223|111223|989898|1|9999011223|MR|Test|E|Lead 11223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011224|111224|989898|1|9999011224|MR|Test|E|Lead 11224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011225|111225|989898|1|9999011225|MR|Test|E|Lead 11225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011226|111226|989898|1|9999011226|MR|Test|E|Lead 11226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011227|111227|989898|1|9999011227|MR|Test|E|Lead 11227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011228|111228|989898|1|9999011228|MR|Test|E|Lead 11228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011229|111229|989898|1|9999011229|MR|Test|E|Lead 11229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011230|111230|989898|1|9999011230|MR|Test|E|Lead 11230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011231|111231|989898|1|9999011231|MR|Test|E|Lead 11231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011232|111232|989898|1|9999011232|MR|Test|E|Lead 11232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011233|111233|989898|1|9999011233|MR|Test|E|Lead 11233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011234|111234|989898|1|9999011234|MR|Test|E|Lead 11234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011235|111235|989898|1|9999011235|MR|Test|E|Lead 11235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011236|111236|989898|1|9999011236|MR|Test|E|Lead 11236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011237|111237|989898|1|9999011237|MR|Test|E|Lead 11237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011238|111238|989898|1|9999011238|MR|Test|E|Lead 11238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011239|111239|989898|1|9999011239|MR|Test|E|Lead 11239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011240|111240|989898|1|9999011240|MR|Test|E|Lead 11240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011241|111241|989898|1|9999011241|MR|Test|E|Lead 11241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011242|111242|989898|1|9999011242|MR|Test|E|Lead 11242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011243|111243|989898|1|9999011243|MR|Test|E|Lead 11243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011244|111244|989898|1|9999011244|MR|Test|E|Lead 11244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011245|111245|989898|1|9999011245|MR|Test|E|Lead 11245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011246|111246|989898|1|9999011246|MR|Test|E|Lead 11246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011247|111247|989898|1|9999011247|MR|Test|E|Lead 11247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011248|111248|989898|1|9999011248|MR|Test|E|Lead 11248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011249|111249|989898|1|9999011249|MR|Test|E|Lead 11249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011250|111250|989898|1|9999011250|MR|Test|E|Lead 11250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011251|111251|989898|1|9999011251|MR|Test|E|Lead 11251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011252|111252|989898|1|9999011252|MR|Test|E|Lead 11252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011253|111253|989898|1|9999011253|MR|Test|E|Lead 11253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011254|111254|989898|1|9999011254|MR|Test|E|Lead 11254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011255|111255|989898|1|9999011255|MR|Test|E|Lead 11255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011256|111256|989898|1|9999011256|MR|Test|E|Lead 11256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011257|111257|989898|1|9999011257|MR|Test|E|Lead 11257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011258|111258|989898|1|9999011258|MR|Test|E|Lead 11258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011259|111259|989898|1|9999011259|MR|Test|E|Lead 11259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011260|111260|989898|1|9999011260|MR|Test|E|Lead 11260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011261|111261|989898|1|9999011261|MR|Test|E|Lead 11261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011262|111262|989898|1|9999011262|MR|Test|E|Lead 11262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011263|111263|989898|1|9999011263|MR|Test|E|Lead 11263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011264|111264|989898|1|9999011264|MR|Test|E|Lead 11264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011265|111265|989898|1|9999011265|MR|Test|E|Lead 11265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011266|111266|989898|1|9999011266|MR|Test|E|Lead 11266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011267|111267|989898|1|9999011267|MR|Test|E|Lead 11267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011268|111268|989898|1|9999011268|MR|Test|E|Lead 11268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011269|111269|989898|1|9999011269|MR|Test|E|Lead 11269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011270|111270|989898|1|9999011270|MR|Test|E|Lead 11270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011271|111271|989898|1|9999011271|MR|Test|E|Lead 11271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011272|111272|989898|1|9999011272|MR|Test|E|Lead 11272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011273|111273|989898|1|9999011273|MR|Test|E|Lead 11273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011274|111274|989898|1|9999011274|MR|Test|E|Lead 11274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011275|111275|989898|1|9999011275|MR|Test|E|Lead 11275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011276|111276|989898|1|9999011276|MR|Test|E|Lead 11276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011277|111277|989898|1|9999011277|MR|Test|E|Lead 11277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011278|111278|989898|1|9999011278|MR|Test|E|Lead 11278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011279|111279|989898|1|9999011279|MR|Test|E|Lead 11279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011280|111280|989898|1|9999011280|MR|Test|E|Lead 11280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011281|111281|989898|1|9999011281|MR|Test|E|Lead 11281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011282|111282|989898|1|9999011282|MR|Test|E|Lead 11282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011283|111283|989898|1|9999011283|MR|Test|E|Lead 11283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011284|111284|989898|1|9999011284|MR|Test|E|Lead 11284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011285|111285|989898|1|9999011285|MR|Test|E|Lead 11285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011286|111286|989898|1|9999011286|MR|Test|E|Lead 11286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011287|111287|989898|1|9999011287|MR|Test|E|Lead 11287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011288|111288|989898|1|9999011288|MR|Test|E|Lead 11288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011289|111289|989898|1|9999011289|MR|Test|E|Lead 11289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011290|111290|989898|1|9999011290|MR|Test|E|Lead 11290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011291|111291|989898|1|9999011291|MR|Test|E|Lead 11291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011292|111292|989898|1|9999011292|MR|Test|E|Lead 11292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011293|111293|989898|1|9999011293|MR|Test|E|Lead 11293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011294|111294|989898|1|9999011294|MR|Test|E|Lead 11294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011295|111295|989898|1|9999011295|MR|Test|E|Lead 11295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011296|111296|989898|1|9999011296|MR|Test|E|Lead 11296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011297|111297|989898|1|9999011297|MR|Test|E|Lead 11297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011298|111298|989898|1|9999011298|MR|Test|E|Lead 11298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011299|111299|989898|1|9999011299|MR|Test|E|Lead 11299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011300|111300|989898|1|9999011300|MR|Test|E|Lead 11300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011301|111301|989898|1|9999011301|MR|Test|E|Lead 11301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011302|111302|989898|1|9999011302|MR|Test|E|Lead 11302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011303|111303|989898|1|9999011303|MR|Test|E|Lead 11303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011304|111304|989898|1|9999011304|MR|Test|E|Lead 11304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011305|111305|989898|1|9999011305|MR|Test|E|Lead 11305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011306|111306|989898|1|9999011306|MR|Test|E|Lead 11306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011307|111307|989898|1|9999011307|MR|Test|E|Lead 11307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011308|111308|989898|1|9999011308|MR|Test|E|Lead 11308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011309|111309|989898|1|9999011309|MR|Test|E|Lead 11309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011310|111310|989898|1|9999011310|MR|Test|E|Lead 11310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011311|111311|989898|1|9999011311|MR|Test|E|Lead 11311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011312|111312|989898|1|9999011312|MR|Test|E|Lead 11312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011313|111313|989898|1|9999011313|MR|Test|E|Lead 11313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011314|111314|989898|1|9999011314|MR|Test|E|Lead 11314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011315|111315|989898|1|9999011315|MR|Test|E|Lead 11315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011316|111316|989898|1|9999011316|MR|Test|E|Lead 11316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011317|111317|989898|1|9999011317|MR|Test|E|Lead 11317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011318|111318|989898|1|9999011318|MR|Test|E|Lead 11318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011319|111319|989898|1|9999011319|MR|Test|E|Lead 11319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011320|111320|989898|1|9999011320|MR|Test|E|Lead 11320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011321|111321|989898|1|9999011321|MR|Test|E|Lead 11321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011322|111322|989898|1|9999011322|MR|Test|E|Lead 11322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011323|111323|989898|1|9999011323|MR|Test|E|Lead 11323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011324|111324|989898|1|9999011324|MR|Test|E|Lead 11324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011325|111325|989898|1|9999011325|MR|Test|E|Lead 11325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011326|111326|989898|1|9999011326|MR|Test|E|Lead 11326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011327|111327|989898|1|9999011327|MR|Test|E|Lead 11327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011328|111328|989898|1|9999011328|MR|Test|E|Lead 11328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011329|111329|989898|1|9999011329|MR|Test|E|Lead 11329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011330|111330|989898|1|9999011330|MR|Test|E|Lead 11330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011331|111331|989898|1|9999011331|MR|Test|E|Lead 11331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011332|111332|989898|1|9999011332|MR|Test|E|Lead 11332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011333|111333|989898|1|9999011333|MR|Test|E|Lead 11333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011334|111334|989898|1|9999011334|MR|Test|E|Lead 11334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011335|111335|989898|1|9999011335|MR|Test|E|Lead 11335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011336|111336|989898|1|9999011336|MR|Test|E|Lead 11336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011337|111337|989898|1|9999011337|MR|Test|E|Lead 11337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011338|111338|989898|1|9999011338|MR|Test|E|Lead 11338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011339|111339|989898|1|9999011339|MR|Test|E|Lead 11339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011340|111340|989898|1|9999011340|MR|Test|E|Lead 11340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011341|111341|989898|1|9999011341|MR|Test|E|Lead 11341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011342|111342|989898|1|9999011342|MR|Test|E|Lead 11342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011343|111343|989898|1|9999011343|MR|Test|E|Lead 11343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011344|111344|989898|1|9999011344|MR|Test|E|Lead 11344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011345|111345|989898|1|9999011345|MR|Test|E|Lead 11345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011346|111346|989898|1|9999011346|MR|Test|E|Lead 11346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011347|111347|989898|1|9999011347|MR|Test|E|Lead 11347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011348|111348|989898|1|9999011348|MR|Test|E|Lead 11348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011349|111349|989898|1|9999011349|MR|Test|E|Lead 11349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011350|111350|989898|1|9999011350|MR|Test|E|Lead 11350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011351|111351|989898|1|9999011351|MR|Test|E|Lead 11351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011352|111352|989898|1|9999011352|MR|Test|E|Lead 11352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011353|111353|989898|1|9999011353|MR|Test|E|Lead 11353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011354|111354|989898|1|9999011354|MR|Test|E|Lead 11354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011355|111355|989898|1|9999011355|MR|Test|E|Lead 11355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011356|111356|989898|1|9999011356|MR|Test|E|Lead 11356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011357|111357|989898|1|9999011357|MR|Test|E|Lead 11357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011358|111358|989898|1|9999011358|MR|Test|E|Lead 11358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011359|111359|989898|1|9999011359|MR|Test|E|Lead 11359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011360|111360|989898|1|9999011360|MR|Test|E|Lead 11360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011361|111361|989898|1|9999011361|MR|Test|E|Lead 11361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011362|111362|989898|1|9999011362|MR|Test|E|Lead 11362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011363|111363|989898|1|9999011363|MR|Test|E|Lead 11363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011364|111364|989898|1|9999011364|MR|Test|E|Lead 11364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011365|111365|989898|1|9999011365|MR|Test|E|Lead 11365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011366|111366|989898|1|9999011366|MR|Test|E|Lead 11366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011367|111367|989898|1|9999011367|MR|Test|E|Lead 11367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011368|111368|989898|1|9999011368|MR|Test|E|Lead 11368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011369|111369|989898|1|9999011369|MR|Test|E|Lead 11369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011370|111370|989898|1|9999011370|MR|Test|E|Lead 11370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011371|111371|989898|1|9999011371|MR|Test|E|Lead 11371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011372|111372|989898|1|9999011372|MR|Test|E|Lead 11372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011373|111373|989898|1|9999011373|MR|Test|E|Lead 11373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011374|111374|989898|1|9999011374|MR|Test|E|Lead 11374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011375|111375|989898|1|9999011375|MR|Test|E|Lead 11375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011376|111376|989898|1|9999011376|MR|Test|E|Lead 11376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011377|111377|989898|1|9999011377|MR|Test|E|Lead 11377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011378|111378|989898|1|9999011378|MR|Test|E|Lead 11378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011379|111379|989898|1|9999011379|MR|Test|E|Lead 11379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011380|111380|989898|1|9999011380|MR|Test|E|Lead 11380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011381|111381|989898|1|9999011381|MR|Test|E|Lead 11381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011382|111382|989898|1|9999011382|MR|Test|E|Lead 11382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011383|111383|989898|1|9999011383|MR|Test|E|Lead 11383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011384|111384|989898|1|9999011384|MR|Test|E|Lead 11384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011385|111385|989898|1|9999011385|MR|Test|E|Lead 11385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011386|111386|989898|1|9999011386|MR|Test|E|Lead 11386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011387|111387|989898|1|9999011387|MR|Test|E|Lead 11387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011388|111388|989898|1|9999011388|MR|Test|E|Lead 11388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011389|111389|989898|1|9999011389|MR|Test|E|Lead 11389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011390|111390|989898|1|9999011390|MR|Test|E|Lead 11390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011391|111391|989898|1|9999011391|MR|Test|E|Lead 11391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011392|111392|989898|1|9999011392|MR|Test|E|Lead 11392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011393|111393|989898|1|9999011393|MR|Test|E|Lead 11393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011394|111394|989898|1|9999011394|MR|Test|E|Lead 11394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011395|111395|989898|1|9999011395|MR|Test|E|Lead 11395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011396|111396|989898|1|9999011396|MR|Test|E|Lead 11396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011397|111397|989898|1|9999011397|MR|Test|E|Lead 11397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011398|111398|989898|1|9999011398|MR|Test|E|Lead 11398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011399|111399|989898|1|9999011399|MR|Test|E|Lead 11399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011400|111400|989898|1|9999011400|MR|Test|E|Lead 11400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011401|111401|989898|1|9999011401|MR|Test|E|Lead 11401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011402|111402|989898|1|9999011402|MR|Test|E|Lead 11402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011403|111403|989898|1|9999011403|MR|Test|E|Lead 11403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011404|111404|989898|1|9999011404|MR|Test|E|Lead 11404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011405|111405|989898|1|9999011405|MR|Test|E|Lead 11405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011406|111406|989898|1|9999011406|MR|Test|E|Lead 11406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011407|111407|989898|1|9999011407|MR|Test|E|Lead 11407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011408|111408|989898|1|9999011408|MR|Test|E|Lead 11408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011409|111409|989898|1|9999011409|MR|Test|E|Lead 11409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011410|111410|989898|1|9999011410|MR|Test|E|Lead 11410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011411|111411|989898|1|9999011411|MR|Test|E|Lead 11411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011412|111412|989898|1|9999011412|MR|Test|E|Lead 11412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011413|111413|989898|1|9999011413|MR|Test|E|Lead 11413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011414|111414|989898|1|9999011414|MR|Test|E|Lead 11414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011415|111415|989898|1|9999011415|MR|Test|E|Lead 11415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011416|111416|989898|1|9999011416|MR|Test|E|Lead 11416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011417|111417|989898|1|9999011417|MR|Test|E|Lead 11417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011418|111418|989898|1|9999011418|MR|Test|E|Lead 11418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011419|111419|989898|1|9999011419|MR|Test|E|Lead 11419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011420|111420|989898|1|9999011420|MR|Test|E|Lead 11420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011421|111421|989898|1|9999011421|MR|Test|E|Lead 11421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011422|111422|989898|1|9999011422|MR|Test|E|Lead 11422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011423|111423|989898|1|9999011423|MR|Test|E|Lead 11423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011424|111424|989898|1|9999011424|MR|Test|E|Lead 11424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011425|111425|989898|1|9999011425|MR|Test|E|Lead 11425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011426|111426|989898|1|9999011426|MR|Test|E|Lead 11426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011427|111427|989898|1|9999011427|MR|Test|E|Lead 11427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011428|111428|989898|1|9999011428|MR|Test|E|Lead 11428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011429|111429|989898|1|9999011429|MR|Test|E|Lead 11429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011430|111430|989898|1|9999011430|MR|Test|E|Lead 11430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011431|111431|989898|1|9999011431|MR|Test|E|Lead 11431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011432|111432|989898|1|9999011432|MR|Test|E|Lead 11432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011433|111433|989898|1|9999011433|MR|Test|E|Lead 11433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011434|111434|989898|1|9999011434|MR|Test|E|Lead 11434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011435|111435|989898|1|9999011435|MR|Test|E|Lead 11435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011436|111436|989898|1|9999011436|MR|Test|E|Lead 11436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011437|111437|989898|1|9999011437|MR|Test|E|Lead 11437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011438|111438|989898|1|9999011438|MR|Test|E|Lead 11438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011439|111439|989898|1|9999011439|MR|Test|E|Lead 11439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011440|111440|989898|1|9999011440|MR|Test|E|Lead 11440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011441|111441|989898|1|9999011441|MR|Test|E|Lead 11441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011442|111442|989898|1|9999011442|MR|Test|E|Lead 11442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011443|111443|989898|1|9999011443|MR|Test|E|Lead 11443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011444|111444|989898|1|9999011444|MR|Test|E|Lead 11444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011445|111445|989898|1|9999011445|MR|Test|E|Lead 11445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011446|111446|989898|1|9999011446|MR|Test|E|Lead 11446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011447|111447|989898|1|9999011447|MR|Test|E|Lead 11447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011448|111448|989898|1|9999011448|MR|Test|E|Lead 11448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011449|111449|989898|1|9999011449|MR|Test|E|Lead 11449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011450|111450|989898|1|9999011450|MR|Test|E|Lead 11450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011451|111451|989898|1|9999011451|MR|Test|E|Lead 11451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011452|111452|989898|1|9999011452|MR|Test|E|Lead 11452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011453|111453|989898|1|9999011453|MR|Test|E|Lead 11453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011454|111454|989898|1|9999011454|MR|Test|E|Lead 11454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011455|111455|989898|1|9999011455|MR|Test|E|Lead 11455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011456|111456|989898|1|9999011456|MR|Test|E|Lead 11456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011457|111457|989898|1|9999011457|MR|Test|E|Lead 11457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011458|111458|989898|1|9999011458|MR|Test|E|Lead 11458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011459|111459|989898|1|9999011459|MR|Test|E|Lead 11459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011460|111460|989898|1|9999011460|MR|Test|E|Lead 11460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011461|111461|989898|1|9999011461|MR|Test|E|Lead 11461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011462|111462|989898|1|9999011462|MR|Test|E|Lead 11462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011463|111463|989898|1|9999011463|MR|Test|E|Lead 11463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011464|111464|989898|1|9999011464|MR|Test|E|Lead 11464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011465|111465|989898|1|9999011465|MR|Test|E|Lead 11465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011466|111466|989898|1|9999011466|MR|Test|E|Lead 11466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011467|111467|989898|1|9999011467|MR|Test|E|Lead 11467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011468|111468|989898|1|9999011468|MR|Test|E|Lead 11468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011469|111469|989898|1|9999011469|MR|Test|E|Lead 11469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011470|111470|989898|1|9999011470|MR|Test|E|Lead 11470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011471|111471|989898|1|9999011471|MR|Test|E|Lead 11471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011472|111472|989898|1|9999011472|MR|Test|E|Lead 11472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011473|111473|989898|1|9999011473|MR|Test|E|Lead 11473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011474|111474|989898|1|9999011474|MR|Test|E|Lead 11474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011475|111475|989898|1|9999011475|MR|Test|E|Lead 11475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011476|111476|989898|1|9999011476|MR|Test|E|Lead 11476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011477|111477|989898|1|9999011477|MR|Test|E|Lead 11477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011478|111478|989898|1|9999011478|MR|Test|E|Lead 11478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011479|111479|989898|1|9999011479|MR|Test|E|Lead 11479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011480|111480|989898|1|9999011480|MR|Test|E|Lead 11480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011481|111481|989898|1|9999011481|MR|Test|E|Lead 11481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011482|111482|989898|1|9999011482|MR|Test|E|Lead 11482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011483|111483|989898|1|9999011483|MR|Test|E|Lead 11483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011484|111484|989898|1|9999011484|MR|Test|E|Lead 11484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011485|111485|989898|1|9999011485|MR|Test|E|Lead 11485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011486|111486|989898|1|9999011486|MR|Test|E|Lead 11486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011487|111487|989898|1|9999011487|MR|Test|E|Lead 11487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011488|111488|989898|1|9999011488|MR|Test|E|Lead 11488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011489|111489|989898|1|9999011489|MR|Test|E|Lead 11489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011490|111490|989898|1|9999011490|MR|Test|E|Lead 11490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011491|111491|989898|1|9999011491|MR|Test|E|Lead 11491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011492|111492|989898|1|9999011492|MR|Test|E|Lead 11492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011493|111493|989898|1|9999011493|MR|Test|E|Lead 11493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011494|111494|989898|1|9999011494|MR|Test|E|Lead 11494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011495|111495|989898|1|9999011495|MR|Test|E|Lead 11495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011496|111496|989898|1|9999011496|MR|Test|E|Lead 11496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011497|111497|989898|1|9999011497|MR|Test|E|Lead 11497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011498|111498|989898|1|9999011498|MR|Test|E|Lead 11498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011499|111499|989898|1|9999011499|MR|Test|E|Lead 11499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011500|111500|989898|1|9999011500|MR|Test|E|Lead 11500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011501|111501|989898|1|9999011501|MR|Test|E|Lead 11501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011502|111502|989898|1|9999011502|MR|Test|E|Lead 11502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011503|111503|989898|1|9999011503|MR|Test|E|Lead 11503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011504|111504|989898|1|9999011504|MR|Test|E|Lead 11504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011505|111505|989898|1|9999011505|MR|Test|E|Lead 11505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011506|111506|989898|1|9999011506|MR|Test|E|Lead 11506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011507|111507|989898|1|9999011507|MR|Test|E|Lead 11507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011508|111508|989898|1|9999011508|MR|Test|E|Lead 11508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011509|111509|989898|1|9999011509|MR|Test|E|Lead 11509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011510|111510|989898|1|9999011510|MR|Test|E|Lead 11510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011511|111511|989898|1|9999011511|MR|Test|E|Lead 11511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011512|111512|989898|1|9999011512|MR|Test|E|Lead 11512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011513|111513|989898|1|9999011513|MR|Test|E|Lead 11513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011514|111514|989898|1|9999011514|MR|Test|E|Lead 11514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011515|111515|989898|1|9999011515|MR|Test|E|Lead 11515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011516|111516|989898|1|9999011516|MR|Test|E|Lead 11516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011517|111517|989898|1|9999011517|MR|Test|E|Lead 11517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011518|111518|989898|1|9999011518|MR|Test|E|Lead 11518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011519|111519|989898|1|9999011519|MR|Test|E|Lead 11519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011520|111520|989898|1|9999011520|MR|Test|E|Lead 11520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011521|111521|989898|1|9999011521|MR|Test|E|Lead 11521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011522|111522|989898|1|9999011522|MR|Test|E|Lead 11522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011523|111523|989898|1|9999011523|MR|Test|E|Lead 11523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011524|111524|989898|1|9999011524|MR|Test|E|Lead 11524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011525|111525|989898|1|9999011525|MR|Test|E|Lead 11525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011526|111526|989898|1|9999011526|MR|Test|E|Lead 11526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011527|111527|989898|1|9999011527|MR|Test|E|Lead 11527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011528|111528|989898|1|9999011528|MR|Test|E|Lead 11528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011529|111529|989898|1|9999011529|MR|Test|E|Lead 11529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011530|111530|989898|1|9999011530|MR|Test|E|Lead 11530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011531|111531|989898|1|9999011531|MR|Test|E|Lead 11531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011532|111532|989898|1|9999011532|MR|Test|E|Lead 11532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011533|111533|989898|1|9999011533|MR|Test|E|Lead 11533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011534|111534|989898|1|9999011534|MR|Test|E|Lead 11534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011535|111535|989898|1|9999011535|MR|Test|E|Lead 11535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011536|111536|989898|1|9999011536|MR|Test|E|Lead 11536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011537|111537|989898|1|9999011537|MR|Test|E|Lead 11537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011538|111538|989898|1|9999011538|MR|Test|E|Lead 11538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011539|111539|989898|1|9999011539|MR|Test|E|Lead 11539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011540|111540|989898|1|9999011540|MR|Test|E|Lead 11540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011541|111541|989898|1|9999011541|MR|Test|E|Lead 11541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011542|111542|989898|1|9999011542|MR|Test|E|Lead 11542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011543|111543|989898|1|9999011543|MR|Test|E|Lead 11543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011544|111544|989898|1|9999011544|MR|Test|E|Lead 11544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011545|111545|989898|1|9999011545|MR|Test|E|Lead 11545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011546|111546|989898|1|9999011546|MR|Test|E|Lead 11546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011547|111547|989898|1|9999011547|MR|Test|E|Lead 11547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011548|111548|989898|1|9999011548|MR|Test|E|Lead 11548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011549|111549|989898|1|9999011549|MR|Test|E|Lead 11549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011550|111550|989898|1|9999011550|MR|Test|E|Lead 11550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011551|111551|989898|1|9999011551|MR|Test|E|Lead 11551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011552|111552|989898|1|9999011552|MR|Test|E|Lead 11552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011553|111553|989898|1|9999011553|MR|Test|E|Lead 11553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011554|111554|989898|1|9999011554|MR|Test|E|Lead 11554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011555|111555|989898|1|9999011555|MR|Test|E|Lead 11555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011556|111556|989898|1|9999011556|MR|Test|E|Lead 11556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011557|111557|989898|1|9999011557|MR|Test|E|Lead 11557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011558|111558|989898|1|9999011558|MR|Test|E|Lead 11558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011559|111559|989898|1|9999011559|MR|Test|E|Lead 11559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011560|111560|989898|1|9999011560|MR|Test|E|Lead 11560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011561|111561|989898|1|9999011561|MR|Test|E|Lead 11561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011562|111562|989898|1|9999011562|MR|Test|E|Lead 11562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011563|111563|989898|1|9999011563|MR|Test|E|Lead 11563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011564|111564|989898|1|9999011564|MR|Test|E|Lead 11564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011565|111565|989898|1|9999011565|MR|Test|E|Lead 11565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011566|111566|989898|1|9999011566|MR|Test|E|Lead 11566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011567|111567|989898|1|9999011567|MR|Test|E|Lead 11567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011568|111568|989898|1|9999011568|MR|Test|E|Lead 11568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011569|111569|989898|1|9999011569|MR|Test|E|Lead 11569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011570|111570|989898|1|9999011570|MR|Test|E|Lead 11570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011571|111571|989898|1|9999011571|MR|Test|E|Lead 11571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011572|111572|989898|1|9999011572|MR|Test|E|Lead 11572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011573|111573|989898|1|9999011573|MR|Test|E|Lead 11573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011574|111574|989898|1|9999011574|MR|Test|E|Lead 11574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011575|111575|989898|1|9999011575|MR|Test|E|Lead 11575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011576|111576|989898|1|9999011576|MR|Test|E|Lead 11576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011577|111577|989898|1|9999011577|MR|Test|E|Lead 11577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011578|111578|989898|1|9999011578|MR|Test|E|Lead 11578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011579|111579|989898|1|9999011579|MR|Test|E|Lead 11579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011580|111580|989898|1|9999011580|MR|Test|E|Lead 11580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011581|111581|989898|1|9999011581|MR|Test|E|Lead 11581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011582|111582|989898|1|9999011582|MR|Test|E|Lead 11582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011583|111583|989898|1|9999011583|MR|Test|E|Lead 11583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011584|111584|989898|1|9999011584|MR|Test|E|Lead 11584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011585|111585|989898|1|9999011585|MR|Test|E|Lead 11585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011586|111586|989898|1|9999011586|MR|Test|E|Lead 11586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011587|111587|989898|1|9999011587|MR|Test|E|Lead 11587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011588|111588|989898|1|9999011588|MR|Test|E|Lead 11588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011589|111589|989898|1|9999011589|MR|Test|E|Lead 11589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011590|111590|989898|1|9999011590|MR|Test|E|Lead 11590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011591|111591|989898|1|9999011591|MR|Test|E|Lead 11591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011592|111592|989898|1|9999011592|MR|Test|E|Lead 11592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011593|111593|989898|1|9999011593|MR|Test|E|Lead 11593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011594|111594|989898|1|9999011594|MR|Test|E|Lead 11594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011595|111595|989898|1|9999011595|MR|Test|E|Lead 11595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011596|111596|989898|1|9999011596|MR|Test|E|Lead 11596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011597|111597|989898|1|9999011597|MR|Test|E|Lead 11597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011598|111598|989898|1|9999011598|MR|Test|E|Lead 11598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011599|111599|989898|1|9999011599|MR|Test|E|Lead 11599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011600|111600|989898|1|9999011600|MR|Test|E|Lead 11600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011601|111601|989898|1|9999011601|MR|Test|E|Lead 11601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011602|111602|989898|1|9999011602|MR|Test|E|Lead 11602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011603|111603|989898|1|9999011603|MR|Test|E|Lead 11603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011604|111604|989898|1|9999011604|MR|Test|E|Lead 11604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011605|111605|989898|1|9999011605|MR|Test|E|Lead 11605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011606|111606|989898|1|9999011606|MR|Test|E|Lead 11606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011607|111607|989898|1|9999011607|MR|Test|E|Lead 11607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011608|111608|989898|1|9999011608|MR|Test|E|Lead 11608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011609|111609|989898|1|9999011609|MR|Test|E|Lead 11609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011610|111610|989898|1|9999011610|MR|Test|E|Lead 11610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011611|111611|989898|1|9999011611|MR|Test|E|Lead 11611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011612|111612|989898|1|9999011612|MR|Test|E|Lead 11612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011613|111613|989898|1|9999011613|MR|Test|E|Lead 11613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011614|111614|989898|1|9999011614|MR|Test|E|Lead 11614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011615|111615|989898|1|9999011615|MR|Test|E|Lead 11615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011616|111616|989898|1|9999011616|MR|Test|E|Lead 11616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011617|111617|989898|1|9999011617|MR|Test|E|Lead 11617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011618|111618|989898|1|9999011618|MR|Test|E|Lead 11618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011619|111619|989898|1|9999011619|MR|Test|E|Lead 11619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011620|111620|989898|1|9999011620|MR|Test|E|Lead 11620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011621|111621|989898|1|9999011621|MR|Test|E|Lead 11621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011622|111622|989898|1|9999011622|MR|Test|E|Lead 11622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011623|111623|989898|1|9999011623|MR|Test|E|Lead 11623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011624|111624|989898|1|9999011624|MR|Test|E|Lead 11624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011625|111625|989898|1|9999011625|MR|Test|E|Lead 11625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011626|111626|989898|1|9999011626|MR|Test|E|Lead 11626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011627|111627|989898|1|9999011627|MR|Test|E|Lead 11627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011628|111628|989898|1|9999011628|MR|Test|E|Lead 11628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011629|111629|989898|1|9999011629|MR|Test|E|Lead 11629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011630|111630|989898|1|9999011630|MR|Test|E|Lead 11630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011631|111631|989898|1|9999011631|MR|Test|E|Lead 11631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011632|111632|989898|1|9999011632|MR|Test|E|Lead 11632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011633|111633|989898|1|9999011633|MR|Test|E|Lead 11633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011634|111634|989898|1|9999011634|MR|Test|E|Lead 11634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011635|111635|989898|1|9999011635|MR|Test|E|Lead 11635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011636|111636|989898|1|9999011636|MR|Test|E|Lead 11636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011637|111637|989898|1|9999011637|MR|Test|E|Lead 11637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011638|111638|989898|1|9999011638|MR|Test|E|Lead 11638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011639|111639|989898|1|9999011639|MR|Test|E|Lead 11639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011640|111640|989898|1|9999011640|MR|Test|E|Lead 11640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011641|111641|989898|1|9999011641|MR|Test|E|Lead 11641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011642|111642|989898|1|9999011642|MR|Test|E|Lead 11642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011643|111643|989898|1|9999011643|MR|Test|E|Lead 11643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011644|111644|989898|1|9999011644|MR|Test|E|Lead 11644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011645|111645|989898|1|9999011645|MR|Test|E|Lead 11645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011646|111646|989898|1|9999011646|MR|Test|E|Lead 11646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011647|111647|989898|1|9999011647|MR|Test|E|Lead 11647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011648|111648|989898|1|9999011648|MR|Test|E|Lead 11648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011649|111649|989898|1|9999011649|MR|Test|E|Lead 11649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011650|111650|989898|1|9999011650|MR|Test|E|Lead 11650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011651|111651|989898|1|9999011651|MR|Test|E|Lead 11651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011652|111652|989898|1|9999011652|MR|Test|E|Lead 11652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011653|111653|989898|1|9999011653|MR|Test|E|Lead 11653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011654|111654|989898|1|9999011654|MR|Test|E|Lead 11654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011655|111655|989898|1|9999011655|MR|Test|E|Lead 11655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011656|111656|989898|1|9999011656|MR|Test|E|Lead 11656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011657|111657|989898|1|9999011657|MR|Test|E|Lead 11657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011658|111658|989898|1|9999011658|MR|Test|E|Lead 11658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011659|111659|989898|1|9999011659|MR|Test|E|Lead 11659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011660|111660|989898|1|9999011660|MR|Test|E|Lead 11660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011661|111661|989898|1|9999011661|MR|Test|E|Lead 11661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011662|111662|989898|1|9999011662|MR|Test|E|Lead 11662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011663|111663|989898|1|9999011663|MR|Test|E|Lead 11663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011664|111664|989898|1|9999011664|MR|Test|E|Lead 11664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011665|111665|989898|1|9999011665|MR|Test|E|Lead 11665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011666|111666|989898|1|9999011666|MR|Test|E|Lead 11666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011667|111667|989898|1|9999011667|MR|Test|E|Lead 11667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011668|111668|989898|1|9999011668|MR|Test|E|Lead 11668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011669|111669|989898|1|9999011669|MR|Test|E|Lead 11669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011670|111670|989898|1|9999011670|MR|Test|E|Lead 11670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011671|111671|989898|1|9999011671|MR|Test|E|Lead 11671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011672|111672|989898|1|9999011672|MR|Test|E|Lead 11672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011673|111673|989898|1|9999011673|MR|Test|E|Lead 11673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011674|111674|989898|1|9999011674|MR|Test|E|Lead 11674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011675|111675|989898|1|9999011675|MR|Test|E|Lead 11675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011676|111676|989898|1|9999011676|MR|Test|E|Lead 11676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011677|111677|989898|1|9999011677|MR|Test|E|Lead 11677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011678|111678|989898|1|9999011678|MR|Test|E|Lead 11678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011679|111679|989898|1|9999011679|MR|Test|E|Lead 11679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011680|111680|989898|1|9999011680|MR|Test|E|Lead 11680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011681|111681|989898|1|9999011681|MR|Test|E|Lead 11681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011682|111682|989898|1|9999011682|MR|Test|E|Lead 11682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011683|111683|989898|1|9999011683|MR|Test|E|Lead 11683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011684|111684|989898|1|9999011684|MR|Test|E|Lead 11684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011685|111685|989898|1|9999011685|MR|Test|E|Lead 11685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011686|111686|989898|1|9999011686|MR|Test|E|Lead 11686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011687|111687|989898|1|9999011687|MR|Test|E|Lead 11687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011688|111688|989898|1|9999011688|MR|Test|E|Lead 11688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011689|111689|989898|1|9999011689|MR|Test|E|Lead 11689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011690|111690|989898|1|9999011690|MR|Test|E|Lead 11690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011691|111691|989898|1|9999011691|MR|Test|E|Lead 11691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011692|111692|989898|1|9999011692|MR|Test|E|Lead 11692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011693|111693|989898|1|9999011693|MR|Test|E|Lead 11693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011694|111694|989898|1|9999011694|MR|Test|E|Lead 11694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011695|111695|989898|1|9999011695|MR|Test|E|Lead 11695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011696|111696|989898|1|9999011696|MR|Test|E|Lead 11696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011697|111697|989898|1|9999011697|MR|Test|E|Lead 11697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011698|111698|989898|1|9999011698|MR|Test|E|Lead 11698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011699|111699|989898|1|9999011699|MR|Test|E|Lead 11699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011700|111700|989898|1|9999011700|MR|Test|E|Lead 11700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011701|111701|989898|1|9999011701|MR|Test|E|Lead 11701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011702|111702|989898|1|9999011702|MR|Test|E|Lead 11702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011703|111703|989898|1|9999011703|MR|Test|E|Lead 11703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011704|111704|989898|1|9999011704|MR|Test|E|Lead 11704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011705|111705|989898|1|9999011705|MR|Test|E|Lead 11705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011706|111706|989898|1|9999011706|MR|Test|E|Lead 11706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011707|111707|989898|1|9999011707|MR|Test|E|Lead 11707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011708|111708|989898|1|9999011708|MR|Test|E|Lead 11708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011709|111709|989898|1|9999011709|MR|Test|E|Lead 11709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011710|111710|989898|1|9999011710|MR|Test|E|Lead 11710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011711|111711|989898|1|9999011711|MR|Test|E|Lead 11711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011712|111712|989898|1|9999011712|MR|Test|E|Lead 11712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011713|111713|989898|1|9999011713|MR|Test|E|Lead 11713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011714|111714|989898|1|9999011714|MR|Test|E|Lead 11714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011715|111715|989898|1|9999011715|MR|Test|E|Lead 11715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011716|111716|989898|1|9999011716|MR|Test|E|Lead 11716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011717|111717|989898|1|9999011717|MR|Test|E|Lead 11717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011718|111718|989898|1|9999011718|MR|Test|E|Lead 11718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011719|111719|989898|1|9999011719|MR|Test|E|Lead 11719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011720|111720|989898|1|9999011720|MR|Test|E|Lead 11720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011721|111721|989898|1|9999011721|MR|Test|E|Lead 11721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011722|111722|989898|1|9999011722|MR|Test|E|Lead 11722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011723|111723|989898|1|9999011723|MR|Test|E|Lead 11723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011724|111724|989898|1|9999011724|MR|Test|E|Lead 11724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011725|111725|989898|1|9999011725|MR|Test|E|Lead 11725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011726|111726|989898|1|9999011726|MR|Test|E|Lead 11726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011727|111727|989898|1|9999011727|MR|Test|E|Lead 11727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011728|111728|989898|1|9999011728|MR|Test|E|Lead 11728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011729|111729|989898|1|9999011729|MR|Test|E|Lead 11729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011730|111730|989898|1|9999011730|MR|Test|E|Lead 11730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011731|111731|989898|1|9999011731|MR|Test|E|Lead 11731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011732|111732|989898|1|9999011732|MR|Test|E|Lead 11732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011733|111733|989898|1|9999011733|MR|Test|E|Lead 11733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011734|111734|989898|1|9999011734|MR|Test|E|Lead 11734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011735|111735|989898|1|9999011735|MR|Test|E|Lead 11735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011736|111736|989898|1|9999011736|MR|Test|E|Lead 11736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011737|111737|989898|1|9999011737|MR|Test|E|Lead 11737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011738|111738|989898|1|9999011738|MR|Test|E|Lead 11738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011739|111739|989898|1|9999011739|MR|Test|E|Lead 11739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011740|111740|989898|1|9999011740|MR|Test|E|Lead 11740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011741|111741|989898|1|9999011741|MR|Test|E|Lead 11741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011742|111742|989898|1|9999011742|MR|Test|E|Lead 11742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011743|111743|989898|1|9999011743|MR|Test|E|Lead 11743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011744|111744|989898|1|9999011744|MR|Test|E|Lead 11744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011745|111745|989898|1|9999011745|MR|Test|E|Lead 11745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011746|111746|989898|1|9999011746|MR|Test|E|Lead 11746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011747|111747|989898|1|9999011747|MR|Test|E|Lead 11747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011748|111748|989898|1|9999011748|MR|Test|E|Lead 11748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011749|111749|989898|1|9999011749|MR|Test|E|Lead 11749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011750|111750|989898|1|9999011750|MR|Test|E|Lead 11750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011751|111751|989898|1|9999011751|MR|Test|E|Lead 11751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011752|111752|989898|1|9999011752|MR|Test|E|Lead 11752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011753|111753|989898|1|9999011753|MR|Test|E|Lead 11753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011754|111754|989898|1|9999011754|MR|Test|E|Lead 11754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011755|111755|989898|1|9999011755|MR|Test|E|Lead 11755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011756|111756|989898|1|9999011756|MR|Test|E|Lead 11756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011757|111757|989898|1|9999011757|MR|Test|E|Lead 11757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011758|111758|989898|1|9999011758|MR|Test|E|Lead 11758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011759|111759|989898|1|9999011759|MR|Test|E|Lead 11759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011760|111760|989898|1|9999011760|MR|Test|E|Lead 11760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011761|111761|989898|1|9999011761|MR|Test|E|Lead 11761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011762|111762|989898|1|9999011762|MR|Test|E|Lead 11762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011763|111763|989898|1|9999011763|MR|Test|E|Lead 11763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011764|111764|989898|1|9999011764|MR|Test|E|Lead 11764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011765|111765|989898|1|9999011765|MR|Test|E|Lead 11765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011766|111766|989898|1|9999011766|MR|Test|E|Lead 11766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011767|111767|989898|1|9999011767|MR|Test|E|Lead 11767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011768|111768|989898|1|9999011768|MR|Test|E|Lead 11768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011769|111769|989898|1|9999011769|MR|Test|E|Lead 11769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011770|111770|989898|1|9999011770|MR|Test|E|Lead 11770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011771|111771|989898|1|9999011771|MR|Test|E|Lead 11771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011772|111772|989898|1|9999011772|MR|Test|E|Lead 11772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011773|111773|989898|1|9999011773|MR|Test|E|Lead 11773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011774|111774|989898|1|9999011774|MR|Test|E|Lead 11774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011775|111775|989898|1|9999011775|MR|Test|E|Lead 11775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011776|111776|989898|1|9999011776|MR|Test|E|Lead 11776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011777|111777|989898|1|9999011777|MR|Test|E|Lead 11777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011778|111778|989898|1|9999011778|MR|Test|E|Lead 11778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011779|111779|989898|1|9999011779|MR|Test|E|Lead 11779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011780|111780|989898|1|9999011780|MR|Test|E|Lead 11780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011781|111781|989898|1|9999011781|MR|Test|E|Lead 11781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011782|111782|989898|1|9999011782|MR|Test|E|Lead 11782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011783|111783|989898|1|9999011783|MR|Test|E|Lead 11783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011784|111784|989898|1|9999011784|MR|Test|E|Lead 11784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011785|111785|989898|1|9999011785|MR|Test|E|Lead 11785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011786|111786|989898|1|9999011786|MR|Test|E|Lead 11786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011787|111787|989898|1|9999011787|MR|Test|E|Lead 11787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011788|111788|989898|1|9999011788|MR|Test|E|Lead 11788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011789|111789|989898|1|9999011789|MR|Test|E|Lead 11789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011790|111790|989898|1|9999011790|MR|Test|E|Lead 11790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011791|111791|989898|1|9999011791|MR|Test|E|Lead 11791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011792|111792|989898|1|9999011792|MR|Test|E|Lead 11792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011793|111793|989898|1|9999011793|MR|Test|E|Lead 11793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011794|111794|989898|1|9999011794|MR|Test|E|Lead 11794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011795|111795|989898|1|9999011795|MR|Test|E|Lead 11795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011796|111796|989898|1|9999011796|MR|Test|E|Lead 11796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011797|111797|989898|1|9999011797|MR|Test|E|Lead 11797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011798|111798|989898|1|9999011798|MR|Test|E|Lead 11798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011799|111799|989898|1|9999011799|MR|Test|E|Lead 11799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011800|111800|989898|1|9999011800|MR|Test|E|Lead 11800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011801|111801|989898|1|9999011801|MR|Test|E|Lead 11801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011802|111802|989898|1|9999011802|MR|Test|E|Lead 11802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011803|111803|989898|1|9999011803|MR|Test|E|Lead 11803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011804|111804|989898|1|9999011804|MR|Test|E|Lead 11804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011805|111805|989898|1|9999011805|MR|Test|E|Lead 11805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011806|111806|989898|1|9999011806|MR|Test|E|Lead 11806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011807|111807|989898|1|9999011807|MR|Test|E|Lead 11807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011808|111808|989898|1|9999011808|MR|Test|E|Lead 11808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011809|111809|989898|1|9999011809|MR|Test|E|Lead 11809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011810|111810|989898|1|9999011810|MR|Test|E|Lead 11810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011811|111811|989898|1|9999011811|MR|Test|E|Lead 11811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011812|111812|989898|1|9999011812|MR|Test|E|Lead 11812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011813|111813|989898|1|9999011813|MR|Test|E|Lead 11813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011814|111814|989898|1|9999011814|MR|Test|E|Lead 11814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011815|111815|989898|1|9999011815|MR|Test|E|Lead 11815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011816|111816|989898|1|9999011816|MR|Test|E|Lead 11816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011817|111817|989898|1|9999011817|MR|Test|E|Lead 11817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011818|111818|989898|1|9999011818|MR|Test|E|Lead 11818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011819|111819|989898|1|9999011819|MR|Test|E|Lead 11819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011820|111820|989898|1|9999011820|MR|Test|E|Lead 11820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011821|111821|989898|1|9999011821|MR|Test|E|Lead 11821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011822|111822|989898|1|9999011822|MR|Test|E|Lead 11822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011823|111823|989898|1|9999011823|MR|Test|E|Lead 11823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011824|111824|989898|1|9999011824|MR|Test|E|Lead 11824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011825|111825|989898|1|9999011825|MR|Test|E|Lead 11825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011826|111826|989898|1|9999011826|MR|Test|E|Lead 11826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011827|111827|989898|1|9999011827|MR|Test|E|Lead 11827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011828|111828|989898|1|9999011828|MR|Test|E|Lead 11828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011829|111829|989898|1|9999011829|MR|Test|E|Lead 11829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011830|111830|989898|1|9999011830|MR|Test|E|Lead 11830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011831|111831|989898|1|9999011831|MR|Test|E|Lead 11831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011832|111832|989898|1|9999011832|MR|Test|E|Lead 11832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011833|111833|989898|1|9999011833|MR|Test|E|Lead 11833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011834|111834|989898|1|9999011834|MR|Test|E|Lead 11834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011835|111835|989898|1|9999011835|MR|Test|E|Lead 11835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011836|111836|989898|1|9999011836|MR|Test|E|Lead 11836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011837|111837|989898|1|9999011837|MR|Test|E|Lead 11837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011838|111838|989898|1|9999011838|MR|Test|E|Lead 11838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011839|111839|989898|1|9999011839|MR|Test|E|Lead 11839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011840|111840|989898|1|9999011840|MR|Test|E|Lead 11840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011841|111841|989898|1|9999011841|MR|Test|E|Lead 11841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011842|111842|989898|1|9999011842|MR|Test|E|Lead 11842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011843|111843|989898|1|9999011843|MR|Test|E|Lead 11843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011844|111844|989898|1|9999011844|MR|Test|E|Lead 11844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011845|111845|989898|1|9999011845|MR|Test|E|Lead 11845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011846|111846|989898|1|9999011846|MR|Test|E|Lead 11846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011847|111847|989898|1|9999011847|MR|Test|E|Lead 11847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011848|111848|989898|1|9999011848|MR|Test|E|Lead 11848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011849|111849|989898|1|9999011849|MR|Test|E|Lead 11849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011850|111850|989898|1|9999011850|MR|Test|E|Lead 11850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011851|111851|989898|1|9999011851|MR|Test|E|Lead 11851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011852|111852|989898|1|9999011852|MR|Test|E|Lead 11852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011853|111853|989898|1|9999011853|MR|Test|E|Lead 11853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011854|111854|989898|1|9999011854|MR|Test|E|Lead 11854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011855|111855|989898|1|9999011855|MR|Test|E|Lead 11855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011856|111856|989898|1|9999011856|MR|Test|E|Lead 11856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011857|111857|989898|1|9999011857|MR|Test|E|Lead 11857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011858|111858|989898|1|9999011858|MR|Test|E|Lead 11858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011859|111859|989898|1|9999011859|MR|Test|E|Lead 11859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011860|111860|989898|1|9999011860|MR|Test|E|Lead 11860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011861|111861|989898|1|9999011861|MR|Test|E|Lead 11861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011862|111862|989898|1|9999011862|MR|Test|E|Lead 11862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011863|111863|989898|1|9999011863|MR|Test|E|Lead 11863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011864|111864|989898|1|9999011864|MR|Test|E|Lead 11864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011865|111865|989898|1|9999011865|MR|Test|E|Lead 11865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011866|111866|989898|1|9999011866|MR|Test|E|Lead 11866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011867|111867|989898|1|9999011867|MR|Test|E|Lead 11867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011868|111868|989898|1|9999011868|MR|Test|E|Lead 11868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011869|111869|989898|1|9999011869|MR|Test|E|Lead 11869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011870|111870|989898|1|9999011870|MR|Test|E|Lead 11870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011871|111871|989898|1|9999011871|MR|Test|E|Lead 11871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011872|111872|989898|1|9999011872|MR|Test|E|Lead 11872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011873|111873|989898|1|9999011873|MR|Test|E|Lead 11873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011874|111874|989898|1|9999011874|MR|Test|E|Lead 11874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011875|111875|989898|1|9999011875|MR|Test|E|Lead 11875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011876|111876|989898|1|9999011876|MR|Test|E|Lead 11876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011877|111877|989898|1|9999011877|MR|Test|E|Lead 11877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011878|111878|989898|1|9999011878|MR|Test|E|Lead 11878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011879|111879|989898|1|9999011879|MR|Test|E|Lead 11879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011880|111880|989898|1|9999011880|MR|Test|E|Lead 11880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011881|111881|989898|1|9999011881|MR|Test|E|Lead 11881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011882|111882|989898|1|9999011882|MR|Test|E|Lead 11882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011883|111883|989898|1|9999011883|MR|Test|E|Lead 11883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011884|111884|989898|1|9999011884|MR|Test|E|Lead 11884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011885|111885|989898|1|9999011885|MR|Test|E|Lead 11885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011886|111886|989898|1|9999011886|MR|Test|E|Lead 11886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011887|111887|989898|1|9999011887|MR|Test|E|Lead 11887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011888|111888|989898|1|9999011888|MR|Test|E|Lead 11888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011889|111889|989898|1|9999011889|MR|Test|E|Lead 11889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011890|111890|989898|1|9999011890|MR|Test|E|Lead 11890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011891|111891|989898|1|9999011891|MR|Test|E|Lead 11891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011892|111892|989898|1|9999011892|MR|Test|E|Lead 11892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011893|111893|989898|1|9999011893|MR|Test|E|Lead 11893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011894|111894|989898|1|9999011894|MR|Test|E|Lead 11894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011895|111895|989898|1|9999011895|MR|Test|E|Lead 11895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011896|111896|989898|1|9999011896|MR|Test|E|Lead 11896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011897|111897|989898|1|9999011897|MR|Test|E|Lead 11897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011898|111898|989898|1|9999011898|MR|Test|E|Lead 11898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011899|111899|989898|1|9999011899|MR|Test|E|Lead 11899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011900|111900|989898|1|9999011900|MR|Test|E|Lead 11900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011901|111901|989898|1|9999011901|MR|Test|E|Lead 11901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011902|111902|989898|1|9999011902|MR|Test|E|Lead 11902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011903|111903|989898|1|9999011903|MR|Test|E|Lead 11903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011904|111904|989898|1|9999011904|MR|Test|E|Lead 11904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011905|111905|989898|1|9999011905|MR|Test|E|Lead 11905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011906|111906|989898|1|9999011906|MR|Test|E|Lead 11906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011907|111907|989898|1|9999011907|MR|Test|E|Lead 11907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011908|111908|989898|1|9999011908|MR|Test|E|Lead 11908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011909|111909|989898|1|9999011909|MR|Test|E|Lead 11909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011910|111910|989898|1|9999011910|MR|Test|E|Lead 11910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011911|111911|989898|1|9999011911|MR|Test|E|Lead 11911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011912|111912|989898|1|9999011912|MR|Test|E|Lead 11912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011913|111913|989898|1|9999011913|MR|Test|E|Lead 11913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011914|111914|989898|1|9999011914|MR|Test|E|Lead 11914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011915|111915|989898|1|9999011915|MR|Test|E|Lead 11915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011916|111916|989898|1|9999011916|MR|Test|E|Lead 11916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011917|111917|989898|1|9999011917|MR|Test|E|Lead 11917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011918|111918|989898|1|9999011918|MR|Test|E|Lead 11918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011919|111919|989898|1|9999011919|MR|Test|E|Lead 11919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011920|111920|989898|1|9999011920|MR|Test|E|Lead 11920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011921|111921|989898|1|9999011921|MR|Test|E|Lead 11921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011922|111922|989898|1|9999011922|MR|Test|E|Lead 11922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011923|111923|989898|1|9999011923|MR|Test|E|Lead 11923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011924|111924|989898|1|9999011924|MR|Test|E|Lead 11924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011925|111925|989898|1|9999011925|MR|Test|E|Lead 11925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011926|111926|989898|1|9999011926|MR|Test|E|Lead 11926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011927|111927|989898|1|9999011927|MR|Test|E|Lead 11927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011928|111928|989898|1|9999011928|MR|Test|E|Lead 11928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011929|111929|989898|1|9999011929|MR|Test|E|Lead 11929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011930|111930|989898|1|9999011930|MR|Test|E|Lead 11930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011931|111931|989898|1|9999011931|MR|Test|E|Lead 11931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011932|111932|989898|1|9999011932|MR|Test|E|Lead 11932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011933|111933|989898|1|9999011933|MR|Test|E|Lead 11933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011934|111934|989898|1|9999011934|MR|Test|E|Lead 11934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011935|111935|989898|1|9999011935|MR|Test|E|Lead 11935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011936|111936|989898|1|9999011936|MR|Test|E|Lead 11936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011937|111937|989898|1|9999011937|MR|Test|E|Lead 11937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011938|111938|989898|1|9999011938|MR|Test|E|Lead 11938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011939|111939|989898|1|9999011939|MR|Test|E|Lead 11939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011940|111940|989898|1|9999011940|MR|Test|E|Lead 11940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011941|111941|989898|1|9999011941|MR|Test|E|Lead 11941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011942|111942|989898|1|9999011942|MR|Test|E|Lead 11942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011943|111943|989898|1|9999011943|MR|Test|E|Lead 11943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011944|111944|989898|1|9999011944|MR|Test|E|Lead 11944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011945|111945|989898|1|9999011945|MR|Test|E|Lead 11945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011946|111946|989898|1|9999011946|MR|Test|E|Lead 11946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011947|111947|989898|1|9999011947|MR|Test|E|Lead 11947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011948|111948|989898|1|9999011948|MR|Test|E|Lead 11948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011949|111949|989898|1|9999011949|MR|Test|E|Lead 11949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011950|111950|989898|1|9999011950|MR|Test|E|Lead 11950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011951|111951|989898|1|9999011951|MR|Test|E|Lead 11951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011952|111952|989898|1|9999011952|MR|Test|E|Lead 11952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011953|111953|989898|1|9999011953|MR|Test|E|Lead 11953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011954|111954|989898|1|9999011954|MR|Test|E|Lead 11954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011955|111955|989898|1|9999011955|MR|Test|E|Lead 11955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011956|111956|989898|1|9999011956|MR|Test|E|Lead 11956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011957|111957|989898|1|9999011957|MR|Test|E|Lead 11957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011958|111958|989898|1|9999011958|MR|Test|E|Lead 11958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011959|111959|989898|1|9999011959|MR|Test|E|Lead 11959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011960|111960|989898|1|9999011960|MR|Test|E|Lead 11960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011961|111961|989898|1|9999011961|MR|Test|E|Lead 11961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011962|111962|989898|1|9999011962|MR|Test|E|Lead 11962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011963|111963|989898|1|9999011963|MR|Test|E|Lead 11963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011964|111964|989898|1|9999011964|MR|Test|E|Lead 11964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011965|111965|989898|1|9999011965|MR|Test|E|Lead 11965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011966|111966|989898|1|9999011966|MR|Test|E|Lead 11966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011967|111967|989898|1|9999011967|MR|Test|E|Lead 11967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011968|111968|989898|1|9999011968|MR|Test|E|Lead 11968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011969|111969|989898|1|9999011969|MR|Test|E|Lead 11969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011970|111970|989898|1|9999011970|MR|Test|E|Lead 11970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011971|111971|989898|1|9999011971|MR|Test|E|Lead 11971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011972|111972|989898|1|9999011972|MR|Test|E|Lead 11972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011973|111973|989898|1|9999011973|MR|Test|E|Lead 11973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011974|111974|989898|1|9999011974|MR|Test|E|Lead 11974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011975|111975|989898|1|9999011975|MR|Test|E|Lead 11975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011976|111976|989898|1|9999011976|MR|Test|E|Lead 11976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011977|111977|989898|1|9999011977|MR|Test|E|Lead 11977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011978|111978|989898|1|9999011978|MR|Test|E|Lead 11978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011979|111979|989898|1|9999011979|MR|Test|E|Lead 11979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011980|111980|989898|1|9999011980|MR|Test|E|Lead 11980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011981|111981|989898|1|9999011981|MR|Test|E|Lead 11981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011982|111982|989898|1|9999011982|MR|Test|E|Lead 11982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011983|111983|989898|1|9999011983|MR|Test|E|Lead 11983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011984|111984|989898|1|9999011984|MR|Test|E|Lead 11984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011985|111985|989898|1|9999011985|MR|Test|E|Lead 11985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011986|111986|989898|1|9999011986|MR|Test|E|Lead 11986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011987|111987|989898|1|9999011987|MR|Test|E|Lead 11987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011988|111988|989898|1|9999011988|MR|Test|E|Lead 11988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011989|111989|989898|1|9999011989|MR|Test|E|Lead 11989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011990|111990|989898|1|9999011990|MR|Test|E|Lead 11990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011991|111991|989898|1|9999011991|MR|Test|E|Lead 11991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011992|111992|989898|1|9999011992|MR|Test|E|Lead 11992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011993|111993|989898|1|9999011993|MR|Test|E|Lead 11993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011994|111994|989898|1|9999011994|MR|Test|E|Lead 11994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011995|111995|989898|1|9999011995|MR|Test|E|Lead 11995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011996|111996|989898|1|9999011996|MR|Test|E|Lead 11996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011997|111997|989898|1|9999011997|MR|Test|E|Lead 11997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011998|111998|989898|1|9999011998|MR|Test|E|Lead 11998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1011999|111999|989898|1|9999011999|MR|Test|E|Lead 11999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012000|112000|989898|1|9999012000|MR|Test|E|Lead 12000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012001|112001|989898|1|9999012001|MR|Test|E|Lead 12001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012002|112002|989898|1|9999012002|MR|Test|E|Lead 12002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012003|112003|989898|1|9999012003|MR|Test|E|Lead 12003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012004|112004|989898|1|9999012004|MR|Test|E|Lead 12004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012005|112005|989898|1|9999012005|MR|Test|E|Lead 12005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012006|112006|989898|1|9999012006|MR|Test|E|Lead 12006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012007|112007|989898|1|9999012007|MR|Test|E|Lead 12007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012008|112008|989898|1|9999012008|MR|Test|E|Lead 12008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012009|112009|989898|1|9999012009|MR|Test|E|Lead 12009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012010|112010|989898|1|9999012010|MR|Test|E|Lead 12010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012011|112011|989898|1|9999012011|MR|Test|E|Lead 12011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012012|112012|989898|1|9999012012|MR|Test|E|Lead 12012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012013|112013|989898|1|9999012013|MR|Test|E|Lead 12013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012014|112014|989898|1|9999012014|MR|Test|E|Lead 12014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012015|112015|989898|1|9999012015|MR|Test|E|Lead 12015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012016|112016|989898|1|9999012016|MR|Test|E|Lead 12016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012017|112017|989898|1|9999012017|MR|Test|E|Lead 12017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012018|112018|989898|1|9999012018|MR|Test|E|Lead 12018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012019|112019|989898|1|9999012019|MR|Test|E|Lead 12019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012020|112020|989898|1|9999012020|MR|Test|E|Lead 12020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012021|112021|989898|1|9999012021|MR|Test|E|Lead 12021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012022|112022|989898|1|9999012022|MR|Test|E|Lead 12022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012023|112023|989898|1|9999012023|MR|Test|E|Lead 12023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012024|112024|989898|1|9999012024|MR|Test|E|Lead 12024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012025|112025|989898|1|9999012025|MR|Test|E|Lead 12025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012026|112026|989898|1|9999012026|MR|Test|E|Lead 12026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012027|112027|989898|1|9999012027|MR|Test|E|Lead 12027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012028|112028|989898|1|9999012028|MR|Test|E|Lead 12028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012029|112029|989898|1|9999012029|MR|Test|E|Lead 12029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012030|112030|989898|1|9999012030|MR|Test|E|Lead 12030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012031|112031|989898|1|9999012031|MR|Test|E|Lead 12031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012032|112032|989898|1|9999012032|MR|Test|E|Lead 12032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012033|112033|989898|1|9999012033|MR|Test|E|Lead 12033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012034|112034|989898|1|9999012034|MR|Test|E|Lead 12034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012035|112035|989898|1|9999012035|MR|Test|E|Lead 12035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012036|112036|989898|1|9999012036|MR|Test|E|Lead 12036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012037|112037|989898|1|9999012037|MR|Test|E|Lead 12037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012038|112038|989898|1|9999012038|MR|Test|E|Lead 12038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012039|112039|989898|1|9999012039|MR|Test|E|Lead 12039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012040|112040|989898|1|9999012040|MR|Test|E|Lead 12040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012041|112041|989898|1|9999012041|MR|Test|E|Lead 12041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012042|112042|989898|1|9999012042|MR|Test|E|Lead 12042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012043|112043|989898|1|9999012043|MR|Test|E|Lead 12043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012044|112044|989898|1|9999012044|MR|Test|E|Lead 12044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012045|112045|989898|1|9999012045|MR|Test|E|Lead 12045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012046|112046|989898|1|9999012046|MR|Test|E|Lead 12046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012047|112047|989898|1|9999012047|MR|Test|E|Lead 12047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012048|112048|989898|1|9999012048|MR|Test|E|Lead 12048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012049|112049|989898|1|9999012049|MR|Test|E|Lead 12049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012050|112050|989898|1|9999012050|MR|Test|E|Lead 12050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012051|112051|989898|1|9999012051|MR|Test|E|Lead 12051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012052|112052|989898|1|9999012052|MR|Test|E|Lead 12052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012053|112053|989898|1|9999012053|MR|Test|E|Lead 12053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012054|112054|989898|1|9999012054|MR|Test|E|Lead 12054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012055|112055|989898|1|9999012055|MR|Test|E|Lead 12055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012056|112056|989898|1|9999012056|MR|Test|E|Lead 12056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012057|112057|989898|1|9999012057|MR|Test|E|Lead 12057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012058|112058|989898|1|9999012058|MR|Test|E|Lead 12058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012059|112059|989898|1|9999012059|MR|Test|E|Lead 12059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012060|112060|989898|1|9999012060|MR|Test|E|Lead 12060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012061|112061|989898|1|9999012061|MR|Test|E|Lead 12061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012062|112062|989898|1|9999012062|MR|Test|E|Lead 12062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012063|112063|989898|1|9999012063|MR|Test|E|Lead 12063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012064|112064|989898|1|9999012064|MR|Test|E|Lead 12064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012065|112065|989898|1|9999012065|MR|Test|E|Lead 12065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012066|112066|989898|1|9999012066|MR|Test|E|Lead 12066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012067|112067|989898|1|9999012067|MR|Test|E|Lead 12067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012068|112068|989898|1|9999012068|MR|Test|E|Lead 12068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012069|112069|989898|1|9999012069|MR|Test|E|Lead 12069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012070|112070|989898|1|9999012070|MR|Test|E|Lead 12070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012071|112071|989898|1|9999012071|MR|Test|E|Lead 12071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012072|112072|989898|1|9999012072|MR|Test|E|Lead 12072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012073|112073|989898|1|9999012073|MR|Test|E|Lead 12073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012074|112074|989898|1|9999012074|MR|Test|E|Lead 12074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012075|112075|989898|1|9999012075|MR|Test|E|Lead 12075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012076|112076|989898|1|9999012076|MR|Test|E|Lead 12076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012077|112077|989898|1|9999012077|MR|Test|E|Lead 12077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012078|112078|989898|1|9999012078|MR|Test|E|Lead 12078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012079|112079|989898|1|9999012079|MR|Test|E|Lead 12079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012080|112080|989898|1|9999012080|MR|Test|E|Lead 12080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012081|112081|989898|1|9999012081|MR|Test|E|Lead 12081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012082|112082|989898|1|9999012082|MR|Test|E|Lead 12082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012083|112083|989898|1|9999012083|MR|Test|E|Lead 12083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012084|112084|989898|1|9999012084|MR|Test|E|Lead 12084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012085|112085|989898|1|9999012085|MR|Test|E|Lead 12085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012086|112086|989898|1|9999012086|MR|Test|E|Lead 12086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012087|112087|989898|1|9999012087|MR|Test|E|Lead 12087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012088|112088|989898|1|9999012088|MR|Test|E|Lead 12088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012089|112089|989898|1|9999012089|MR|Test|E|Lead 12089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012090|112090|989898|1|9999012090|MR|Test|E|Lead 12090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012091|112091|989898|1|9999012091|MR|Test|E|Lead 12091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012092|112092|989898|1|9999012092|MR|Test|E|Lead 12092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012093|112093|989898|1|9999012093|MR|Test|E|Lead 12093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012094|112094|989898|1|9999012094|MR|Test|E|Lead 12094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012095|112095|989898|1|9999012095|MR|Test|E|Lead 12095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012096|112096|989898|1|9999012096|MR|Test|E|Lead 12096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012097|112097|989898|1|9999012097|MR|Test|E|Lead 12097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012098|112098|989898|1|9999012098|MR|Test|E|Lead 12098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012099|112099|989898|1|9999012099|MR|Test|E|Lead 12099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012100|112100|989898|1|9999012100|MR|Test|E|Lead 12100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012101|112101|989898|1|9999012101|MR|Test|E|Lead 12101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012102|112102|989898|1|9999012102|MR|Test|E|Lead 12102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012103|112103|989898|1|9999012103|MR|Test|E|Lead 12103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012104|112104|989898|1|9999012104|MR|Test|E|Lead 12104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012105|112105|989898|1|9999012105|MR|Test|E|Lead 12105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012106|112106|989898|1|9999012106|MR|Test|E|Lead 12106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012107|112107|989898|1|9999012107|MR|Test|E|Lead 12107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012108|112108|989898|1|9999012108|MR|Test|E|Lead 12108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012109|112109|989898|1|9999012109|MR|Test|E|Lead 12109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012110|112110|989898|1|9999012110|MR|Test|E|Lead 12110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012111|112111|989898|1|9999012111|MR|Test|E|Lead 12111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012112|112112|989898|1|9999012112|MR|Test|E|Lead 12112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012113|112113|989898|1|9999012113|MR|Test|E|Lead 12113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012114|112114|989898|1|9999012114|MR|Test|E|Lead 12114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012115|112115|989898|1|9999012115|MR|Test|E|Lead 12115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012116|112116|989898|1|9999012116|MR|Test|E|Lead 12116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012117|112117|989898|1|9999012117|MR|Test|E|Lead 12117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012118|112118|989898|1|9999012118|MR|Test|E|Lead 12118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012119|112119|989898|1|9999012119|MR|Test|E|Lead 12119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012120|112120|989898|1|9999012120|MR|Test|E|Lead 12120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012121|112121|989898|1|9999012121|MR|Test|E|Lead 12121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012122|112122|989898|1|9999012122|MR|Test|E|Lead 12122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012123|112123|989898|1|9999012123|MR|Test|E|Lead 12123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012124|112124|989898|1|9999012124|MR|Test|E|Lead 12124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012125|112125|989898|1|9999012125|MR|Test|E|Lead 12125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012126|112126|989898|1|9999012126|MR|Test|E|Lead 12126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012127|112127|989898|1|9999012127|MR|Test|E|Lead 12127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012128|112128|989898|1|9999012128|MR|Test|E|Lead 12128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012129|112129|989898|1|9999012129|MR|Test|E|Lead 12129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012130|112130|989898|1|9999012130|MR|Test|E|Lead 12130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012131|112131|989898|1|9999012131|MR|Test|E|Lead 12131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012132|112132|989898|1|9999012132|MR|Test|E|Lead 12132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012133|112133|989898|1|9999012133|MR|Test|E|Lead 12133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012134|112134|989898|1|9999012134|MR|Test|E|Lead 12134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012135|112135|989898|1|9999012135|MR|Test|E|Lead 12135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012136|112136|989898|1|9999012136|MR|Test|E|Lead 12136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012137|112137|989898|1|9999012137|MR|Test|E|Lead 12137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012138|112138|989898|1|9999012138|MR|Test|E|Lead 12138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012139|112139|989898|1|9999012139|MR|Test|E|Lead 12139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012140|112140|989898|1|9999012140|MR|Test|E|Lead 12140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012141|112141|989898|1|9999012141|MR|Test|E|Lead 12141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012142|112142|989898|1|9999012142|MR|Test|E|Lead 12142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012143|112143|989898|1|9999012143|MR|Test|E|Lead 12143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012144|112144|989898|1|9999012144|MR|Test|E|Lead 12144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012145|112145|989898|1|9999012145|MR|Test|E|Lead 12145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012146|112146|989898|1|9999012146|MR|Test|E|Lead 12146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012147|112147|989898|1|9999012147|MR|Test|E|Lead 12147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012148|112148|989898|1|9999012148|MR|Test|E|Lead 12148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012149|112149|989898|1|9999012149|MR|Test|E|Lead 12149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012150|112150|989898|1|9999012150|MR|Test|E|Lead 12150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012151|112151|989898|1|9999012151|MR|Test|E|Lead 12151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012152|112152|989898|1|9999012152|MR|Test|E|Lead 12152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012153|112153|989898|1|9999012153|MR|Test|E|Lead 12153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012154|112154|989898|1|9999012154|MR|Test|E|Lead 12154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012155|112155|989898|1|9999012155|MR|Test|E|Lead 12155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012156|112156|989898|1|9999012156|MR|Test|E|Lead 12156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012157|112157|989898|1|9999012157|MR|Test|E|Lead 12157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012158|112158|989898|1|9999012158|MR|Test|E|Lead 12158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012159|112159|989898|1|9999012159|MR|Test|E|Lead 12159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012160|112160|989898|1|9999012160|MR|Test|E|Lead 12160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012161|112161|989898|1|9999012161|MR|Test|E|Lead 12161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012162|112162|989898|1|9999012162|MR|Test|E|Lead 12162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012163|112163|989898|1|9999012163|MR|Test|E|Lead 12163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012164|112164|989898|1|9999012164|MR|Test|E|Lead 12164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012165|112165|989898|1|9999012165|MR|Test|E|Lead 12165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012166|112166|989898|1|9999012166|MR|Test|E|Lead 12166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012167|112167|989898|1|9999012167|MR|Test|E|Lead 12167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012168|112168|989898|1|9999012168|MR|Test|E|Lead 12168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012169|112169|989898|1|9999012169|MR|Test|E|Lead 12169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012170|112170|989898|1|9999012170|MR|Test|E|Lead 12170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012171|112171|989898|1|9999012171|MR|Test|E|Lead 12171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012172|112172|989898|1|9999012172|MR|Test|E|Lead 12172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012173|112173|989898|1|9999012173|MR|Test|E|Lead 12173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012174|112174|989898|1|9999012174|MR|Test|E|Lead 12174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012175|112175|989898|1|9999012175|MR|Test|E|Lead 12175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012176|112176|989898|1|9999012176|MR|Test|E|Lead 12176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012177|112177|989898|1|9999012177|MR|Test|E|Lead 12177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012178|112178|989898|1|9999012178|MR|Test|E|Lead 12178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012179|112179|989898|1|9999012179|MR|Test|E|Lead 12179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012180|112180|989898|1|9999012180|MR|Test|E|Lead 12180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012181|112181|989898|1|9999012181|MR|Test|E|Lead 12181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012182|112182|989898|1|9999012182|MR|Test|E|Lead 12182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012183|112183|989898|1|9999012183|MR|Test|E|Lead 12183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012184|112184|989898|1|9999012184|MR|Test|E|Lead 12184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012185|112185|989898|1|9999012185|MR|Test|E|Lead 12185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012186|112186|989898|1|9999012186|MR|Test|E|Lead 12186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012187|112187|989898|1|9999012187|MR|Test|E|Lead 12187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012188|112188|989898|1|9999012188|MR|Test|E|Lead 12188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012189|112189|989898|1|9999012189|MR|Test|E|Lead 12189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012190|112190|989898|1|9999012190|MR|Test|E|Lead 12190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012191|112191|989898|1|9999012191|MR|Test|E|Lead 12191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012192|112192|989898|1|9999012192|MR|Test|E|Lead 12192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012193|112193|989898|1|9999012193|MR|Test|E|Lead 12193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012194|112194|989898|1|9999012194|MR|Test|E|Lead 12194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012195|112195|989898|1|9999012195|MR|Test|E|Lead 12195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012196|112196|989898|1|9999012196|MR|Test|E|Lead 12196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012197|112197|989898|1|9999012197|MR|Test|E|Lead 12197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012198|112198|989898|1|9999012198|MR|Test|E|Lead 12198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012199|112199|989898|1|9999012199|MR|Test|E|Lead 12199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012200|112200|989898|1|9999012200|MR|Test|E|Lead 12200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012201|112201|989898|1|9999012201|MR|Test|E|Lead 12201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012202|112202|989898|1|9999012202|MR|Test|E|Lead 12202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012203|112203|989898|1|9999012203|MR|Test|E|Lead 12203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012204|112204|989898|1|9999012204|MR|Test|E|Lead 12204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012205|112205|989898|1|9999012205|MR|Test|E|Lead 12205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012206|112206|989898|1|9999012206|MR|Test|E|Lead 12206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012207|112207|989898|1|9999012207|MR|Test|E|Lead 12207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012208|112208|989898|1|9999012208|MR|Test|E|Lead 12208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012209|112209|989898|1|9999012209|MR|Test|E|Lead 12209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012210|112210|989898|1|9999012210|MR|Test|E|Lead 12210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012211|112211|989898|1|9999012211|MR|Test|E|Lead 12211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012212|112212|989898|1|9999012212|MR|Test|E|Lead 12212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012213|112213|989898|1|9999012213|MR|Test|E|Lead 12213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012214|112214|989898|1|9999012214|MR|Test|E|Lead 12214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012215|112215|989898|1|9999012215|MR|Test|E|Lead 12215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012216|112216|989898|1|9999012216|MR|Test|E|Lead 12216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012217|112217|989898|1|9999012217|MR|Test|E|Lead 12217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012218|112218|989898|1|9999012218|MR|Test|E|Lead 12218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012219|112219|989898|1|9999012219|MR|Test|E|Lead 12219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012220|112220|989898|1|9999012220|MR|Test|E|Lead 12220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012221|112221|989898|1|9999012221|MR|Test|E|Lead 12221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012222|112222|989898|1|9999012222|MR|Test|E|Lead 12222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012223|112223|989898|1|9999012223|MR|Test|E|Lead 12223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012224|112224|989898|1|9999012224|MR|Test|E|Lead 12224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012225|112225|989898|1|9999012225|MR|Test|E|Lead 12225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012226|112226|989898|1|9999012226|MR|Test|E|Lead 12226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012227|112227|989898|1|9999012227|MR|Test|E|Lead 12227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012228|112228|989898|1|9999012228|MR|Test|E|Lead 12228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012229|112229|989898|1|9999012229|MR|Test|E|Lead 12229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012230|112230|989898|1|9999012230|MR|Test|E|Lead 12230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012231|112231|989898|1|9999012231|MR|Test|E|Lead 12231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012232|112232|989898|1|9999012232|MR|Test|E|Lead 12232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012233|112233|989898|1|9999012233|MR|Test|E|Lead 12233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012234|112234|989898|1|9999012234|MR|Test|E|Lead 12234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012235|112235|989898|1|9999012235|MR|Test|E|Lead 12235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012236|112236|989898|1|9999012236|MR|Test|E|Lead 12236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012237|112237|989898|1|9999012237|MR|Test|E|Lead 12237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012238|112238|989898|1|9999012238|MR|Test|E|Lead 12238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012239|112239|989898|1|9999012239|MR|Test|E|Lead 12239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012240|112240|989898|1|9999012240|MR|Test|E|Lead 12240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012241|112241|989898|1|9999012241|MR|Test|E|Lead 12241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012242|112242|989898|1|9999012242|MR|Test|E|Lead 12242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012243|112243|989898|1|9999012243|MR|Test|E|Lead 12243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012244|112244|989898|1|9999012244|MR|Test|E|Lead 12244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012245|112245|989898|1|9999012245|MR|Test|E|Lead 12245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012246|112246|989898|1|9999012246|MR|Test|E|Lead 12246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012247|112247|989898|1|9999012247|MR|Test|E|Lead 12247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012248|112248|989898|1|9999012248|MR|Test|E|Lead 12248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012249|112249|989898|1|9999012249|MR|Test|E|Lead 12249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012250|112250|989898|1|9999012250|MR|Test|E|Lead 12250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012251|112251|989898|1|9999012251|MR|Test|E|Lead 12251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012252|112252|989898|1|9999012252|MR|Test|E|Lead 12252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012253|112253|989898|1|9999012253|MR|Test|E|Lead 12253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012254|112254|989898|1|9999012254|MR|Test|E|Lead 12254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012255|112255|989898|1|9999012255|MR|Test|E|Lead 12255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012256|112256|989898|1|9999012256|MR|Test|E|Lead 12256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012257|112257|989898|1|9999012257|MR|Test|E|Lead 12257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012258|112258|989898|1|9999012258|MR|Test|E|Lead 12258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012259|112259|989898|1|9999012259|MR|Test|E|Lead 12259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012260|112260|989898|1|9999012260|MR|Test|E|Lead 12260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012261|112261|989898|1|9999012261|MR|Test|E|Lead 12261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012262|112262|989898|1|9999012262|MR|Test|E|Lead 12262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012263|112263|989898|1|9999012263|MR|Test|E|Lead 12263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012264|112264|989898|1|9999012264|MR|Test|E|Lead 12264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012265|112265|989898|1|9999012265|MR|Test|E|Lead 12265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012266|112266|989898|1|9999012266|MR|Test|E|Lead 12266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012267|112267|989898|1|9999012267|MR|Test|E|Lead 12267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012268|112268|989898|1|9999012268|MR|Test|E|Lead 12268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012269|112269|989898|1|9999012269|MR|Test|E|Lead 12269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012270|112270|989898|1|9999012270|MR|Test|E|Lead 12270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012271|112271|989898|1|9999012271|MR|Test|E|Lead 12271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012272|112272|989898|1|9999012272|MR|Test|E|Lead 12272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012273|112273|989898|1|9999012273|MR|Test|E|Lead 12273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012274|112274|989898|1|9999012274|MR|Test|E|Lead 12274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012275|112275|989898|1|9999012275|MR|Test|E|Lead 12275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012276|112276|989898|1|9999012276|MR|Test|E|Lead 12276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012277|112277|989898|1|9999012277|MR|Test|E|Lead 12277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012278|112278|989898|1|9999012278|MR|Test|E|Lead 12278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012279|112279|989898|1|9999012279|MR|Test|E|Lead 12279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012280|112280|989898|1|9999012280|MR|Test|E|Lead 12280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012281|112281|989898|1|9999012281|MR|Test|E|Lead 12281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012282|112282|989898|1|9999012282|MR|Test|E|Lead 12282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012283|112283|989898|1|9999012283|MR|Test|E|Lead 12283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012284|112284|989898|1|9999012284|MR|Test|E|Lead 12284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012285|112285|989898|1|9999012285|MR|Test|E|Lead 12285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012286|112286|989898|1|9999012286|MR|Test|E|Lead 12286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012287|112287|989898|1|9999012287|MR|Test|E|Lead 12287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012288|112288|989898|1|9999012288|MR|Test|E|Lead 12288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012289|112289|989898|1|9999012289|MR|Test|E|Lead 12289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012290|112290|989898|1|9999012290|MR|Test|E|Lead 12290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012291|112291|989898|1|9999012291|MR|Test|E|Lead 12291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012292|112292|989898|1|9999012292|MR|Test|E|Lead 12292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012293|112293|989898|1|9999012293|MR|Test|E|Lead 12293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012294|112294|989898|1|9999012294|MR|Test|E|Lead 12294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012295|112295|989898|1|9999012295|MR|Test|E|Lead 12295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012296|112296|989898|1|9999012296|MR|Test|E|Lead 12296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012297|112297|989898|1|9999012297|MR|Test|E|Lead 12297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012298|112298|989898|1|9999012298|MR|Test|E|Lead 12298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012299|112299|989898|1|9999012299|MR|Test|E|Lead 12299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012300|112300|989898|1|9999012300|MR|Test|E|Lead 12300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012301|112301|989898|1|9999012301|MR|Test|E|Lead 12301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012302|112302|989898|1|9999012302|MR|Test|E|Lead 12302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012303|112303|989898|1|9999012303|MR|Test|E|Lead 12303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012304|112304|989898|1|9999012304|MR|Test|E|Lead 12304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012305|112305|989898|1|9999012305|MR|Test|E|Lead 12305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012306|112306|989898|1|9999012306|MR|Test|E|Lead 12306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012307|112307|989898|1|9999012307|MR|Test|E|Lead 12307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012308|112308|989898|1|9999012308|MR|Test|E|Lead 12308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012309|112309|989898|1|9999012309|MR|Test|E|Lead 12309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012310|112310|989898|1|9999012310|MR|Test|E|Lead 12310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012311|112311|989898|1|9999012311|MR|Test|E|Lead 12311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012312|112312|989898|1|9999012312|MR|Test|E|Lead 12312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012313|112313|989898|1|9999012313|MR|Test|E|Lead 12313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012314|112314|989898|1|9999012314|MR|Test|E|Lead 12314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012315|112315|989898|1|9999012315|MR|Test|E|Lead 12315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012316|112316|989898|1|9999012316|MR|Test|E|Lead 12316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012317|112317|989898|1|9999012317|MR|Test|E|Lead 12317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012318|112318|989898|1|9999012318|MR|Test|E|Lead 12318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012319|112319|989898|1|9999012319|MR|Test|E|Lead 12319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012320|112320|989898|1|9999012320|MR|Test|E|Lead 12320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012321|112321|989898|1|9999012321|MR|Test|E|Lead 12321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012322|112322|989898|1|9999012322|MR|Test|E|Lead 12322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012323|112323|989898|1|9999012323|MR|Test|E|Lead 12323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012324|112324|989898|1|9999012324|MR|Test|E|Lead 12324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012325|112325|989898|1|9999012325|MR|Test|E|Lead 12325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012326|112326|989898|1|9999012326|MR|Test|E|Lead 12326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012327|112327|989898|1|9999012327|MR|Test|E|Lead 12327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012328|112328|989898|1|9999012328|MR|Test|E|Lead 12328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012329|112329|989898|1|9999012329|MR|Test|E|Lead 12329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012330|112330|989898|1|9999012330|MR|Test|E|Lead 12330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012331|112331|989898|1|9999012331|MR|Test|E|Lead 12331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012332|112332|989898|1|9999012332|MR|Test|E|Lead 12332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012333|112333|989898|1|9999012333|MR|Test|E|Lead 12333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012334|112334|989898|1|9999012334|MR|Test|E|Lead 12334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012335|112335|989898|1|9999012335|MR|Test|E|Lead 12335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012336|112336|989898|1|9999012336|MR|Test|E|Lead 12336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012337|112337|989898|1|9999012337|MR|Test|E|Lead 12337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012338|112338|989898|1|9999012338|MR|Test|E|Lead 12338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012339|112339|989898|1|9999012339|MR|Test|E|Lead 12339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012340|112340|989898|1|9999012340|MR|Test|E|Lead 12340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012341|112341|989898|1|9999012341|MR|Test|E|Lead 12341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012342|112342|989898|1|9999012342|MR|Test|E|Lead 12342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012343|112343|989898|1|9999012343|MR|Test|E|Lead 12343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012344|112344|989898|1|9999012344|MR|Test|E|Lead 12344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012345|112345|989898|1|9999012345|MR|Test|E|Lead 12345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012346|112346|989898|1|9999012346|MR|Test|E|Lead 12346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012347|112347|989898|1|9999012347|MR|Test|E|Lead 12347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012348|112348|989898|1|9999012348|MR|Test|E|Lead 12348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012349|112349|989898|1|9999012349|MR|Test|E|Lead 12349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012350|112350|989898|1|9999012350|MR|Test|E|Lead 12350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012351|112351|989898|1|9999012351|MR|Test|E|Lead 12351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012352|112352|989898|1|9999012352|MR|Test|E|Lead 12352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012353|112353|989898|1|9999012353|MR|Test|E|Lead 12353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012354|112354|989898|1|9999012354|MR|Test|E|Lead 12354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012355|112355|989898|1|9999012355|MR|Test|E|Lead 12355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012356|112356|989898|1|9999012356|MR|Test|E|Lead 12356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012357|112357|989898|1|9999012357|MR|Test|E|Lead 12357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012358|112358|989898|1|9999012358|MR|Test|E|Lead 12358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012359|112359|989898|1|9999012359|MR|Test|E|Lead 12359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012360|112360|989898|1|9999012360|MR|Test|E|Lead 12360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012361|112361|989898|1|9999012361|MR|Test|E|Lead 12361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012362|112362|989898|1|9999012362|MR|Test|E|Lead 12362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012363|112363|989898|1|9999012363|MR|Test|E|Lead 12363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012364|112364|989898|1|9999012364|MR|Test|E|Lead 12364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012365|112365|989898|1|9999012365|MR|Test|E|Lead 12365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012366|112366|989898|1|9999012366|MR|Test|E|Lead 12366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012367|112367|989898|1|9999012367|MR|Test|E|Lead 12367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012368|112368|989898|1|9999012368|MR|Test|E|Lead 12368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012369|112369|989898|1|9999012369|MR|Test|E|Lead 12369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012370|112370|989898|1|9999012370|MR|Test|E|Lead 12370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012371|112371|989898|1|9999012371|MR|Test|E|Lead 12371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012372|112372|989898|1|9999012372|MR|Test|E|Lead 12372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012373|112373|989898|1|9999012373|MR|Test|E|Lead 12373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012374|112374|989898|1|9999012374|MR|Test|E|Lead 12374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012375|112375|989898|1|9999012375|MR|Test|E|Lead 12375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012376|112376|989898|1|9999012376|MR|Test|E|Lead 12376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012377|112377|989898|1|9999012377|MR|Test|E|Lead 12377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012378|112378|989898|1|9999012378|MR|Test|E|Lead 12378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012379|112379|989898|1|9999012379|MR|Test|E|Lead 12379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012380|112380|989898|1|9999012380|MR|Test|E|Lead 12380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012381|112381|989898|1|9999012381|MR|Test|E|Lead 12381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012382|112382|989898|1|9999012382|MR|Test|E|Lead 12382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012383|112383|989898|1|9999012383|MR|Test|E|Lead 12383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012384|112384|989898|1|9999012384|MR|Test|E|Lead 12384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012385|112385|989898|1|9999012385|MR|Test|E|Lead 12385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012386|112386|989898|1|9999012386|MR|Test|E|Lead 12386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012387|112387|989898|1|9999012387|MR|Test|E|Lead 12387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012388|112388|989898|1|9999012388|MR|Test|E|Lead 12388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012389|112389|989898|1|9999012389|MR|Test|E|Lead 12389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012390|112390|989898|1|9999012390|MR|Test|E|Lead 12390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012391|112391|989898|1|9999012391|MR|Test|E|Lead 12391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012392|112392|989898|1|9999012392|MR|Test|E|Lead 12392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012393|112393|989898|1|9999012393|MR|Test|E|Lead 12393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012394|112394|989898|1|9999012394|MR|Test|E|Lead 12394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012395|112395|989898|1|9999012395|MR|Test|E|Lead 12395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012396|112396|989898|1|9999012396|MR|Test|E|Lead 12396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012397|112397|989898|1|9999012397|MR|Test|E|Lead 12397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012398|112398|989898|1|9999012398|MR|Test|E|Lead 12398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012399|112399|989898|1|9999012399|MR|Test|E|Lead 12399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012400|112400|989898|1|9999012400|MR|Test|E|Lead 12400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012401|112401|989898|1|9999012401|MR|Test|E|Lead 12401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012402|112402|989898|1|9999012402|MR|Test|E|Lead 12402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012403|112403|989898|1|9999012403|MR|Test|E|Lead 12403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012404|112404|989898|1|9999012404|MR|Test|E|Lead 12404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012405|112405|989898|1|9999012405|MR|Test|E|Lead 12405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012406|112406|989898|1|9999012406|MR|Test|E|Lead 12406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012407|112407|989898|1|9999012407|MR|Test|E|Lead 12407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012408|112408|989898|1|9999012408|MR|Test|E|Lead 12408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012409|112409|989898|1|9999012409|MR|Test|E|Lead 12409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012410|112410|989898|1|9999012410|MR|Test|E|Lead 12410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012411|112411|989898|1|9999012411|MR|Test|E|Lead 12411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012412|112412|989898|1|9999012412|MR|Test|E|Lead 12412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012413|112413|989898|1|9999012413|MR|Test|E|Lead 12413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012414|112414|989898|1|9999012414|MR|Test|E|Lead 12414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012415|112415|989898|1|9999012415|MR|Test|E|Lead 12415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012416|112416|989898|1|9999012416|MR|Test|E|Lead 12416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012417|112417|989898|1|9999012417|MR|Test|E|Lead 12417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012418|112418|989898|1|9999012418|MR|Test|E|Lead 12418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012419|112419|989898|1|9999012419|MR|Test|E|Lead 12419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012420|112420|989898|1|9999012420|MR|Test|E|Lead 12420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012421|112421|989898|1|9999012421|MR|Test|E|Lead 12421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012422|112422|989898|1|9999012422|MR|Test|E|Lead 12422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012423|112423|989898|1|9999012423|MR|Test|E|Lead 12423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012424|112424|989898|1|9999012424|MR|Test|E|Lead 12424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012425|112425|989898|1|9999012425|MR|Test|E|Lead 12425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012426|112426|989898|1|9999012426|MR|Test|E|Lead 12426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012427|112427|989898|1|9999012427|MR|Test|E|Lead 12427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012428|112428|989898|1|9999012428|MR|Test|E|Lead 12428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012429|112429|989898|1|9999012429|MR|Test|E|Lead 12429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012430|112430|989898|1|9999012430|MR|Test|E|Lead 12430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012431|112431|989898|1|9999012431|MR|Test|E|Lead 12431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012432|112432|989898|1|9999012432|MR|Test|E|Lead 12432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012433|112433|989898|1|9999012433|MR|Test|E|Lead 12433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012434|112434|989898|1|9999012434|MR|Test|E|Lead 12434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012435|112435|989898|1|9999012435|MR|Test|E|Lead 12435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012436|112436|989898|1|9999012436|MR|Test|E|Lead 12436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012437|112437|989898|1|9999012437|MR|Test|E|Lead 12437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012438|112438|989898|1|9999012438|MR|Test|E|Lead 12438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012439|112439|989898|1|9999012439|MR|Test|E|Lead 12439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012440|112440|989898|1|9999012440|MR|Test|E|Lead 12440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012441|112441|989898|1|9999012441|MR|Test|E|Lead 12441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012442|112442|989898|1|9999012442|MR|Test|E|Lead 12442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012443|112443|989898|1|9999012443|MR|Test|E|Lead 12443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012444|112444|989898|1|9999012444|MR|Test|E|Lead 12444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012445|112445|989898|1|9999012445|MR|Test|E|Lead 12445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012446|112446|989898|1|9999012446|MR|Test|E|Lead 12446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012447|112447|989898|1|9999012447|MR|Test|E|Lead 12447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012448|112448|989898|1|9999012448|MR|Test|E|Lead 12448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012449|112449|989898|1|9999012449|MR|Test|E|Lead 12449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012450|112450|989898|1|9999012450|MR|Test|E|Lead 12450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012451|112451|989898|1|9999012451|MR|Test|E|Lead 12451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012452|112452|989898|1|9999012452|MR|Test|E|Lead 12452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012453|112453|989898|1|9999012453|MR|Test|E|Lead 12453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012454|112454|989898|1|9999012454|MR|Test|E|Lead 12454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012455|112455|989898|1|9999012455|MR|Test|E|Lead 12455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012456|112456|989898|1|9999012456|MR|Test|E|Lead 12456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012457|112457|989898|1|9999012457|MR|Test|E|Lead 12457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012458|112458|989898|1|9999012458|MR|Test|E|Lead 12458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012459|112459|989898|1|9999012459|MR|Test|E|Lead 12459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012460|112460|989898|1|9999012460|MR|Test|E|Lead 12460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012461|112461|989898|1|9999012461|MR|Test|E|Lead 12461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012462|112462|989898|1|9999012462|MR|Test|E|Lead 12462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012463|112463|989898|1|9999012463|MR|Test|E|Lead 12463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012464|112464|989898|1|9999012464|MR|Test|E|Lead 12464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012465|112465|989898|1|9999012465|MR|Test|E|Lead 12465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012466|112466|989898|1|9999012466|MR|Test|E|Lead 12466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012467|112467|989898|1|9999012467|MR|Test|E|Lead 12467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012468|112468|989898|1|9999012468|MR|Test|E|Lead 12468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012469|112469|989898|1|9999012469|MR|Test|E|Lead 12469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012470|112470|989898|1|9999012470|MR|Test|E|Lead 12470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012471|112471|989898|1|9999012471|MR|Test|E|Lead 12471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012472|112472|989898|1|9999012472|MR|Test|E|Lead 12472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012473|112473|989898|1|9999012473|MR|Test|E|Lead 12473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012474|112474|989898|1|9999012474|MR|Test|E|Lead 12474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012475|112475|989898|1|9999012475|MR|Test|E|Lead 12475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012476|112476|989898|1|9999012476|MR|Test|E|Lead 12476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012477|112477|989898|1|9999012477|MR|Test|E|Lead 12477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012478|112478|989898|1|9999012478|MR|Test|E|Lead 12478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012479|112479|989898|1|9999012479|MR|Test|E|Lead 12479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012480|112480|989898|1|9999012480|MR|Test|E|Lead 12480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012481|112481|989898|1|9999012481|MR|Test|E|Lead 12481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012482|112482|989898|1|9999012482|MR|Test|E|Lead 12482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012483|112483|989898|1|9999012483|MR|Test|E|Lead 12483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012484|112484|989898|1|9999012484|MR|Test|E|Lead 12484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012485|112485|989898|1|9999012485|MR|Test|E|Lead 12485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012486|112486|989898|1|9999012486|MR|Test|E|Lead 12486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012487|112487|989898|1|9999012487|MR|Test|E|Lead 12487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012488|112488|989898|1|9999012488|MR|Test|E|Lead 12488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012489|112489|989898|1|9999012489|MR|Test|E|Lead 12489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012490|112490|989898|1|9999012490|MR|Test|E|Lead 12490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012491|112491|989898|1|9999012491|MR|Test|E|Lead 12491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012492|112492|989898|1|9999012492|MR|Test|E|Lead 12492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012493|112493|989898|1|9999012493|MR|Test|E|Lead 12493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012494|112494|989898|1|9999012494|MR|Test|E|Lead 12494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012495|112495|989898|1|9999012495|MR|Test|E|Lead 12495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012496|112496|989898|1|9999012496|MR|Test|E|Lead 12496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012497|112497|989898|1|9999012497|MR|Test|E|Lead 12497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012498|112498|989898|1|9999012498|MR|Test|E|Lead 12498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012499|112499|989898|1|9999012499|MR|Test|E|Lead 12499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012500|112500|989898|1|9999012500|MR|Test|E|Lead 12500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012501|112501|989898|1|9999012501|MR|Test|E|Lead 12501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012502|112502|989898|1|9999012502|MR|Test|E|Lead 12502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012503|112503|989898|1|9999012503|MR|Test|E|Lead 12503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012504|112504|989898|1|9999012504|MR|Test|E|Lead 12504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012505|112505|989898|1|9999012505|MR|Test|E|Lead 12505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012506|112506|989898|1|9999012506|MR|Test|E|Lead 12506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012507|112507|989898|1|9999012507|MR|Test|E|Lead 12507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012508|112508|989898|1|9999012508|MR|Test|E|Lead 12508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012509|112509|989898|1|9999012509|MR|Test|E|Lead 12509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012510|112510|989898|1|9999012510|MR|Test|E|Lead 12510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012511|112511|989898|1|9999012511|MR|Test|E|Lead 12511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012512|112512|989898|1|9999012512|MR|Test|E|Lead 12512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012513|112513|989898|1|9999012513|MR|Test|E|Lead 12513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012514|112514|989898|1|9999012514|MR|Test|E|Lead 12514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012515|112515|989898|1|9999012515|MR|Test|E|Lead 12515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012516|112516|989898|1|9999012516|MR|Test|E|Lead 12516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012517|112517|989898|1|9999012517|MR|Test|E|Lead 12517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012518|112518|989898|1|9999012518|MR|Test|E|Lead 12518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012519|112519|989898|1|9999012519|MR|Test|E|Lead 12519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012520|112520|989898|1|9999012520|MR|Test|E|Lead 12520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012521|112521|989898|1|9999012521|MR|Test|E|Lead 12521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012522|112522|989898|1|9999012522|MR|Test|E|Lead 12522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012523|112523|989898|1|9999012523|MR|Test|E|Lead 12523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012524|112524|989898|1|9999012524|MR|Test|E|Lead 12524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012525|112525|989898|1|9999012525|MR|Test|E|Lead 12525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012526|112526|989898|1|9999012526|MR|Test|E|Lead 12526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012527|112527|989898|1|9999012527|MR|Test|E|Lead 12527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012528|112528|989898|1|9999012528|MR|Test|E|Lead 12528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012529|112529|989898|1|9999012529|MR|Test|E|Lead 12529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012530|112530|989898|1|9999012530|MR|Test|E|Lead 12530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012531|112531|989898|1|9999012531|MR|Test|E|Lead 12531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012532|112532|989898|1|9999012532|MR|Test|E|Lead 12532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012533|112533|989898|1|9999012533|MR|Test|E|Lead 12533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012534|112534|989898|1|9999012534|MR|Test|E|Lead 12534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012535|112535|989898|1|9999012535|MR|Test|E|Lead 12535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012536|112536|989898|1|9999012536|MR|Test|E|Lead 12536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012537|112537|989898|1|9999012537|MR|Test|E|Lead 12537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012538|112538|989898|1|9999012538|MR|Test|E|Lead 12538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012539|112539|989898|1|9999012539|MR|Test|E|Lead 12539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012540|112540|989898|1|9999012540|MR|Test|E|Lead 12540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012541|112541|989898|1|9999012541|MR|Test|E|Lead 12541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012542|112542|989898|1|9999012542|MR|Test|E|Lead 12542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012543|112543|989898|1|9999012543|MR|Test|E|Lead 12543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012544|112544|989898|1|9999012544|MR|Test|E|Lead 12544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012545|112545|989898|1|9999012545|MR|Test|E|Lead 12545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012546|112546|989898|1|9999012546|MR|Test|E|Lead 12546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012547|112547|989898|1|9999012547|MR|Test|E|Lead 12547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012548|112548|989898|1|9999012548|MR|Test|E|Lead 12548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012549|112549|989898|1|9999012549|MR|Test|E|Lead 12549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012550|112550|989898|1|9999012550|MR|Test|E|Lead 12550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012551|112551|989898|1|9999012551|MR|Test|E|Lead 12551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012552|112552|989898|1|9999012552|MR|Test|E|Lead 12552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012553|112553|989898|1|9999012553|MR|Test|E|Lead 12553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012554|112554|989898|1|9999012554|MR|Test|E|Lead 12554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012555|112555|989898|1|9999012555|MR|Test|E|Lead 12555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012556|112556|989898|1|9999012556|MR|Test|E|Lead 12556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012557|112557|989898|1|9999012557|MR|Test|E|Lead 12557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012558|112558|989898|1|9999012558|MR|Test|E|Lead 12558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012559|112559|989898|1|9999012559|MR|Test|E|Lead 12559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012560|112560|989898|1|9999012560|MR|Test|E|Lead 12560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012561|112561|989898|1|9999012561|MR|Test|E|Lead 12561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012562|112562|989898|1|9999012562|MR|Test|E|Lead 12562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012563|112563|989898|1|9999012563|MR|Test|E|Lead 12563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012564|112564|989898|1|9999012564|MR|Test|E|Lead 12564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012565|112565|989898|1|9999012565|MR|Test|E|Lead 12565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012566|112566|989898|1|9999012566|MR|Test|E|Lead 12566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012567|112567|989898|1|9999012567|MR|Test|E|Lead 12567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012568|112568|989898|1|9999012568|MR|Test|E|Lead 12568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012569|112569|989898|1|9999012569|MR|Test|E|Lead 12569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012570|112570|989898|1|9999012570|MR|Test|E|Lead 12570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012571|112571|989898|1|9999012571|MR|Test|E|Lead 12571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012572|112572|989898|1|9999012572|MR|Test|E|Lead 12572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012573|112573|989898|1|9999012573|MR|Test|E|Lead 12573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012574|112574|989898|1|9999012574|MR|Test|E|Lead 12574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012575|112575|989898|1|9999012575|MR|Test|E|Lead 12575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012576|112576|989898|1|9999012576|MR|Test|E|Lead 12576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012577|112577|989898|1|9999012577|MR|Test|E|Lead 12577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012578|112578|989898|1|9999012578|MR|Test|E|Lead 12578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012579|112579|989898|1|9999012579|MR|Test|E|Lead 12579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012580|112580|989898|1|9999012580|MR|Test|E|Lead 12580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012581|112581|989898|1|9999012581|MR|Test|E|Lead 12581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012582|112582|989898|1|9999012582|MR|Test|E|Lead 12582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012583|112583|989898|1|9999012583|MR|Test|E|Lead 12583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012584|112584|989898|1|9999012584|MR|Test|E|Lead 12584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012585|112585|989898|1|9999012585|MR|Test|E|Lead 12585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012586|112586|989898|1|9999012586|MR|Test|E|Lead 12586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012587|112587|989898|1|9999012587|MR|Test|E|Lead 12587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012588|112588|989898|1|9999012588|MR|Test|E|Lead 12588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012589|112589|989898|1|9999012589|MR|Test|E|Lead 12589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012590|112590|989898|1|9999012590|MR|Test|E|Lead 12590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012591|112591|989898|1|9999012591|MR|Test|E|Lead 12591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012592|112592|989898|1|9999012592|MR|Test|E|Lead 12592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012593|112593|989898|1|9999012593|MR|Test|E|Lead 12593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012594|112594|989898|1|9999012594|MR|Test|E|Lead 12594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012595|112595|989898|1|9999012595|MR|Test|E|Lead 12595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012596|112596|989898|1|9999012596|MR|Test|E|Lead 12596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012597|112597|989898|1|9999012597|MR|Test|E|Lead 12597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012598|112598|989898|1|9999012598|MR|Test|E|Lead 12598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012599|112599|989898|1|9999012599|MR|Test|E|Lead 12599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012600|112600|989898|1|9999012600|MR|Test|E|Lead 12600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012601|112601|989898|1|9999012601|MR|Test|E|Lead 12601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012602|112602|989898|1|9999012602|MR|Test|E|Lead 12602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012603|112603|989898|1|9999012603|MR|Test|E|Lead 12603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012604|112604|989898|1|9999012604|MR|Test|E|Lead 12604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012605|112605|989898|1|9999012605|MR|Test|E|Lead 12605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012606|112606|989898|1|9999012606|MR|Test|E|Lead 12606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012607|112607|989898|1|9999012607|MR|Test|E|Lead 12607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012608|112608|989898|1|9999012608|MR|Test|E|Lead 12608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012609|112609|989898|1|9999012609|MR|Test|E|Lead 12609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012610|112610|989898|1|9999012610|MR|Test|E|Lead 12610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012611|112611|989898|1|9999012611|MR|Test|E|Lead 12611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012612|112612|989898|1|9999012612|MR|Test|E|Lead 12612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012613|112613|989898|1|9999012613|MR|Test|E|Lead 12613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012614|112614|989898|1|9999012614|MR|Test|E|Lead 12614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012615|112615|989898|1|9999012615|MR|Test|E|Lead 12615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012616|112616|989898|1|9999012616|MR|Test|E|Lead 12616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012617|112617|989898|1|9999012617|MR|Test|E|Lead 12617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012618|112618|989898|1|9999012618|MR|Test|E|Lead 12618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012619|112619|989898|1|9999012619|MR|Test|E|Lead 12619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012620|112620|989898|1|9999012620|MR|Test|E|Lead 12620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012621|112621|989898|1|9999012621|MR|Test|E|Lead 12621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012622|112622|989898|1|9999012622|MR|Test|E|Lead 12622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012623|112623|989898|1|9999012623|MR|Test|E|Lead 12623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012624|112624|989898|1|9999012624|MR|Test|E|Lead 12624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012625|112625|989898|1|9999012625|MR|Test|E|Lead 12625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012626|112626|989898|1|9999012626|MR|Test|E|Lead 12626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012627|112627|989898|1|9999012627|MR|Test|E|Lead 12627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012628|112628|989898|1|9999012628|MR|Test|E|Lead 12628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012629|112629|989898|1|9999012629|MR|Test|E|Lead 12629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012630|112630|989898|1|9999012630|MR|Test|E|Lead 12630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012631|112631|989898|1|9999012631|MR|Test|E|Lead 12631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012632|112632|989898|1|9999012632|MR|Test|E|Lead 12632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012633|112633|989898|1|9999012633|MR|Test|E|Lead 12633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012634|112634|989898|1|9999012634|MR|Test|E|Lead 12634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012635|112635|989898|1|9999012635|MR|Test|E|Lead 12635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012636|112636|989898|1|9999012636|MR|Test|E|Lead 12636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012637|112637|989898|1|9999012637|MR|Test|E|Lead 12637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012638|112638|989898|1|9999012638|MR|Test|E|Lead 12638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012639|112639|989898|1|9999012639|MR|Test|E|Lead 12639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012640|112640|989898|1|9999012640|MR|Test|E|Lead 12640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012641|112641|989898|1|9999012641|MR|Test|E|Lead 12641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012642|112642|989898|1|9999012642|MR|Test|E|Lead 12642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012643|112643|989898|1|9999012643|MR|Test|E|Lead 12643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012644|112644|989898|1|9999012644|MR|Test|E|Lead 12644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012645|112645|989898|1|9999012645|MR|Test|E|Lead 12645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012646|112646|989898|1|9999012646|MR|Test|E|Lead 12646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012647|112647|989898|1|9999012647|MR|Test|E|Lead 12647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012648|112648|989898|1|9999012648|MR|Test|E|Lead 12648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012649|112649|989898|1|9999012649|MR|Test|E|Lead 12649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012650|112650|989898|1|9999012650|MR|Test|E|Lead 12650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012651|112651|989898|1|9999012651|MR|Test|E|Lead 12651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012652|112652|989898|1|9999012652|MR|Test|E|Lead 12652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012653|112653|989898|1|9999012653|MR|Test|E|Lead 12653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012654|112654|989898|1|9999012654|MR|Test|E|Lead 12654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012655|112655|989898|1|9999012655|MR|Test|E|Lead 12655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012656|112656|989898|1|9999012656|MR|Test|E|Lead 12656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012657|112657|989898|1|9999012657|MR|Test|E|Lead 12657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012658|112658|989898|1|9999012658|MR|Test|E|Lead 12658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012659|112659|989898|1|9999012659|MR|Test|E|Lead 12659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012660|112660|989898|1|9999012660|MR|Test|E|Lead 12660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012661|112661|989898|1|9999012661|MR|Test|E|Lead 12661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012662|112662|989898|1|9999012662|MR|Test|E|Lead 12662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012663|112663|989898|1|9999012663|MR|Test|E|Lead 12663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012664|112664|989898|1|9999012664|MR|Test|E|Lead 12664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012665|112665|989898|1|9999012665|MR|Test|E|Lead 12665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012666|112666|989898|1|9999012666|MR|Test|E|Lead 12666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012667|112667|989898|1|9999012667|MR|Test|E|Lead 12667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012668|112668|989898|1|9999012668|MR|Test|E|Lead 12668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012669|112669|989898|1|9999012669|MR|Test|E|Lead 12669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012670|112670|989898|1|9999012670|MR|Test|E|Lead 12670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012671|112671|989898|1|9999012671|MR|Test|E|Lead 12671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012672|112672|989898|1|9999012672|MR|Test|E|Lead 12672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012673|112673|989898|1|9999012673|MR|Test|E|Lead 12673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012674|112674|989898|1|9999012674|MR|Test|E|Lead 12674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012675|112675|989898|1|9999012675|MR|Test|E|Lead 12675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012676|112676|989898|1|9999012676|MR|Test|E|Lead 12676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012677|112677|989898|1|9999012677|MR|Test|E|Lead 12677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012678|112678|989898|1|9999012678|MR|Test|E|Lead 12678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012679|112679|989898|1|9999012679|MR|Test|E|Lead 12679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012680|112680|989898|1|9999012680|MR|Test|E|Lead 12680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012681|112681|989898|1|9999012681|MR|Test|E|Lead 12681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012682|112682|989898|1|9999012682|MR|Test|E|Lead 12682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012683|112683|989898|1|9999012683|MR|Test|E|Lead 12683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012684|112684|989898|1|9999012684|MR|Test|E|Lead 12684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012685|112685|989898|1|9999012685|MR|Test|E|Lead 12685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012686|112686|989898|1|9999012686|MR|Test|E|Lead 12686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012687|112687|989898|1|9999012687|MR|Test|E|Lead 12687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012688|112688|989898|1|9999012688|MR|Test|E|Lead 12688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012689|112689|989898|1|9999012689|MR|Test|E|Lead 12689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012690|112690|989898|1|9999012690|MR|Test|E|Lead 12690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012691|112691|989898|1|9999012691|MR|Test|E|Lead 12691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012692|112692|989898|1|9999012692|MR|Test|E|Lead 12692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012693|112693|989898|1|9999012693|MR|Test|E|Lead 12693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012694|112694|989898|1|9999012694|MR|Test|E|Lead 12694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012695|112695|989898|1|9999012695|MR|Test|E|Lead 12695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012696|112696|989898|1|9999012696|MR|Test|E|Lead 12696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012697|112697|989898|1|9999012697|MR|Test|E|Lead 12697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012698|112698|989898|1|9999012698|MR|Test|E|Lead 12698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012699|112699|989898|1|9999012699|MR|Test|E|Lead 12699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012700|112700|989898|1|9999012700|MR|Test|E|Lead 12700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012701|112701|989898|1|9999012701|MR|Test|E|Lead 12701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012702|112702|989898|1|9999012702|MR|Test|E|Lead 12702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012703|112703|989898|1|9999012703|MR|Test|E|Lead 12703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012704|112704|989898|1|9999012704|MR|Test|E|Lead 12704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012705|112705|989898|1|9999012705|MR|Test|E|Lead 12705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012706|112706|989898|1|9999012706|MR|Test|E|Lead 12706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012707|112707|989898|1|9999012707|MR|Test|E|Lead 12707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012708|112708|989898|1|9999012708|MR|Test|E|Lead 12708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012709|112709|989898|1|9999012709|MR|Test|E|Lead 12709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012710|112710|989898|1|9999012710|MR|Test|E|Lead 12710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012711|112711|989898|1|9999012711|MR|Test|E|Lead 12711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012712|112712|989898|1|9999012712|MR|Test|E|Lead 12712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012713|112713|989898|1|9999012713|MR|Test|E|Lead 12713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012714|112714|989898|1|9999012714|MR|Test|E|Lead 12714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012715|112715|989898|1|9999012715|MR|Test|E|Lead 12715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012716|112716|989898|1|9999012716|MR|Test|E|Lead 12716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012717|112717|989898|1|9999012717|MR|Test|E|Lead 12717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012718|112718|989898|1|9999012718|MR|Test|E|Lead 12718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012719|112719|989898|1|9999012719|MR|Test|E|Lead 12719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012720|112720|989898|1|9999012720|MR|Test|E|Lead 12720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012721|112721|989898|1|9999012721|MR|Test|E|Lead 12721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012722|112722|989898|1|9999012722|MR|Test|E|Lead 12722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012723|112723|989898|1|9999012723|MR|Test|E|Lead 12723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012724|112724|989898|1|9999012724|MR|Test|E|Lead 12724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012725|112725|989898|1|9999012725|MR|Test|E|Lead 12725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012726|112726|989898|1|9999012726|MR|Test|E|Lead 12726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012727|112727|989898|1|9999012727|MR|Test|E|Lead 12727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012728|112728|989898|1|9999012728|MR|Test|E|Lead 12728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012729|112729|989898|1|9999012729|MR|Test|E|Lead 12729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012730|112730|989898|1|9999012730|MR|Test|E|Lead 12730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012731|112731|989898|1|9999012731|MR|Test|E|Lead 12731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012732|112732|989898|1|9999012732|MR|Test|E|Lead 12732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012733|112733|989898|1|9999012733|MR|Test|E|Lead 12733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012734|112734|989898|1|9999012734|MR|Test|E|Lead 12734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012735|112735|989898|1|9999012735|MR|Test|E|Lead 12735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012736|112736|989898|1|9999012736|MR|Test|E|Lead 12736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012737|112737|989898|1|9999012737|MR|Test|E|Lead 12737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012738|112738|989898|1|9999012738|MR|Test|E|Lead 12738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012739|112739|989898|1|9999012739|MR|Test|E|Lead 12739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012740|112740|989898|1|9999012740|MR|Test|E|Lead 12740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012741|112741|989898|1|9999012741|MR|Test|E|Lead 12741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012742|112742|989898|1|9999012742|MR|Test|E|Lead 12742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012743|112743|989898|1|9999012743|MR|Test|E|Lead 12743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012744|112744|989898|1|9999012744|MR|Test|E|Lead 12744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012745|112745|989898|1|9999012745|MR|Test|E|Lead 12745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012746|112746|989898|1|9999012746|MR|Test|E|Lead 12746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012747|112747|989898|1|9999012747|MR|Test|E|Lead 12747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012748|112748|989898|1|9999012748|MR|Test|E|Lead 12748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012749|112749|989898|1|9999012749|MR|Test|E|Lead 12749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012750|112750|989898|1|9999012750|MR|Test|E|Lead 12750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012751|112751|989898|1|9999012751|MR|Test|E|Lead 12751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012752|112752|989898|1|9999012752|MR|Test|E|Lead 12752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012753|112753|989898|1|9999012753|MR|Test|E|Lead 12753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012754|112754|989898|1|9999012754|MR|Test|E|Lead 12754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012755|112755|989898|1|9999012755|MR|Test|E|Lead 12755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012756|112756|989898|1|9999012756|MR|Test|E|Lead 12756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012757|112757|989898|1|9999012757|MR|Test|E|Lead 12757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012758|112758|989898|1|9999012758|MR|Test|E|Lead 12758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012759|112759|989898|1|9999012759|MR|Test|E|Lead 12759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012760|112760|989898|1|9999012760|MR|Test|E|Lead 12760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012761|112761|989898|1|9999012761|MR|Test|E|Lead 12761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012762|112762|989898|1|9999012762|MR|Test|E|Lead 12762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012763|112763|989898|1|9999012763|MR|Test|E|Lead 12763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012764|112764|989898|1|9999012764|MR|Test|E|Lead 12764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012765|112765|989898|1|9999012765|MR|Test|E|Lead 12765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012766|112766|989898|1|9999012766|MR|Test|E|Lead 12766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012767|112767|989898|1|9999012767|MR|Test|E|Lead 12767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012768|112768|989898|1|9999012768|MR|Test|E|Lead 12768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012769|112769|989898|1|9999012769|MR|Test|E|Lead 12769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012770|112770|989898|1|9999012770|MR|Test|E|Lead 12770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012771|112771|989898|1|9999012771|MR|Test|E|Lead 12771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012772|112772|989898|1|9999012772|MR|Test|E|Lead 12772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012773|112773|989898|1|9999012773|MR|Test|E|Lead 12773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012774|112774|989898|1|9999012774|MR|Test|E|Lead 12774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012775|112775|989898|1|9999012775|MR|Test|E|Lead 12775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012776|112776|989898|1|9999012776|MR|Test|E|Lead 12776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012777|112777|989898|1|9999012777|MR|Test|E|Lead 12777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012778|112778|989898|1|9999012778|MR|Test|E|Lead 12778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012779|112779|989898|1|9999012779|MR|Test|E|Lead 12779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012780|112780|989898|1|9999012780|MR|Test|E|Lead 12780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012781|112781|989898|1|9999012781|MR|Test|E|Lead 12781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012782|112782|989898|1|9999012782|MR|Test|E|Lead 12782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012783|112783|989898|1|9999012783|MR|Test|E|Lead 12783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012784|112784|989898|1|9999012784|MR|Test|E|Lead 12784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012785|112785|989898|1|9999012785|MR|Test|E|Lead 12785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012786|112786|989898|1|9999012786|MR|Test|E|Lead 12786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012787|112787|989898|1|9999012787|MR|Test|E|Lead 12787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012788|112788|989898|1|9999012788|MR|Test|E|Lead 12788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012789|112789|989898|1|9999012789|MR|Test|E|Lead 12789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012790|112790|989898|1|9999012790|MR|Test|E|Lead 12790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012791|112791|989898|1|9999012791|MR|Test|E|Lead 12791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012792|112792|989898|1|9999012792|MR|Test|E|Lead 12792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012793|112793|989898|1|9999012793|MR|Test|E|Lead 12793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012794|112794|989898|1|9999012794|MR|Test|E|Lead 12794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012795|112795|989898|1|9999012795|MR|Test|E|Lead 12795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012796|112796|989898|1|9999012796|MR|Test|E|Lead 12796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012797|112797|989898|1|9999012797|MR|Test|E|Lead 12797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012798|112798|989898|1|9999012798|MR|Test|E|Lead 12798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012799|112799|989898|1|9999012799|MR|Test|E|Lead 12799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012800|112800|989898|1|9999012800|MR|Test|E|Lead 12800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012801|112801|989898|1|9999012801|MR|Test|E|Lead 12801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012802|112802|989898|1|9999012802|MR|Test|E|Lead 12802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012803|112803|989898|1|9999012803|MR|Test|E|Lead 12803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012804|112804|989898|1|9999012804|MR|Test|E|Lead 12804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012805|112805|989898|1|9999012805|MR|Test|E|Lead 12805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012806|112806|989898|1|9999012806|MR|Test|E|Lead 12806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012807|112807|989898|1|9999012807|MR|Test|E|Lead 12807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012808|112808|989898|1|9999012808|MR|Test|E|Lead 12808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012809|112809|989898|1|9999012809|MR|Test|E|Lead 12809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012810|112810|989898|1|9999012810|MR|Test|E|Lead 12810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012811|112811|989898|1|9999012811|MR|Test|E|Lead 12811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012812|112812|989898|1|9999012812|MR|Test|E|Lead 12812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012813|112813|989898|1|9999012813|MR|Test|E|Lead 12813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012814|112814|989898|1|9999012814|MR|Test|E|Lead 12814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012815|112815|989898|1|9999012815|MR|Test|E|Lead 12815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012816|112816|989898|1|9999012816|MR|Test|E|Lead 12816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012817|112817|989898|1|9999012817|MR|Test|E|Lead 12817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012818|112818|989898|1|9999012818|MR|Test|E|Lead 12818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012819|112819|989898|1|9999012819|MR|Test|E|Lead 12819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012820|112820|989898|1|9999012820|MR|Test|E|Lead 12820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012821|112821|989898|1|9999012821|MR|Test|E|Lead 12821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012822|112822|989898|1|9999012822|MR|Test|E|Lead 12822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012823|112823|989898|1|9999012823|MR|Test|E|Lead 12823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012824|112824|989898|1|9999012824|MR|Test|E|Lead 12824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012825|112825|989898|1|9999012825|MR|Test|E|Lead 12825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012826|112826|989898|1|9999012826|MR|Test|E|Lead 12826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012827|112827|989898|1|9999012827|MR|Test|E|Lead 12827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012828|112828|989898|1|9999012828|MR|Test|E|Lead 12828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012829|112829|989898|1|9999012829|MR|Test|E|Lead 12829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012830|112830|989898|1|9999012830|MR|Test|E|Lead 12830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012831|112831|989898|1|9999012831|MR|Test|E|Lead 12831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012832|112832|989898|1|9999012832|MR|Test|E|Lead 12832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012833|112833|989898|1|9999012833|MR|Test|E|Lead 12833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012834|112834|989898|1|9999012834|MR|Test|E|Lead 12834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012835|112835|989898|1|9999012835|MR|Test|E|Lead 12835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012836|112836|989898|1|9999012836|MR|Test|E|Lead 12836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012837|112837|989898|1|9999012837|MR|Test|E|Lead 12837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012838|112838|989898|1|9999012838|MR|Test|E|Lead 12838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012839|112839|989898|1|9999012839|MR|Test|E|Lead 12839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012840|112840|989898|1|9999012840|MR|Test|E|Lead 12840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012841|112841|989898|1|9999012841|MR|Test|E|Lead 12841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012842|112842|989898|1|9999012842|MR|Test|E|Lead 12842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012843|112843|989898|1|9999012843|MR|Test|E|Lead 12843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012844|112844|989898|1|9999012844|MR|Test|E|Lead 12844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012845|112845|989898|1|9999012845|MR|Test|E|Lead 12845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012846|112846|989898|1|9999012846|MR|Test|E|Lead 12846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012847|112847|989898|1|9999012847|MR|Test|E|Lead 12847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012848|112848|989898|1|9999012848|MR|Test|E|Lead 12848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012849|112849|989898|1|9999012849|MR|Test|E|Lead 12849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012850|112850|989898|1|9999012850|MR|Test|E|Lead 12850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012851|112851|989898|1|9999012851|MR|Test|E|Lead 12851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012852|112852|989898|1|9999012852|MR|Test|E|Lead 12852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012853|112853|989898|1|9999012853|MR|Test|E|Lead 12853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012854|112854|989898|1|9999012854|MR|Test|E|Lead 12854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012855|112855|989898|1|9999012855|MR|Test|E|Lead 12855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012856|112856|989898|1|9999012856|MR|Test|E|Lead 12856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012857|112857|989898|1|9999012857|MR|Test|E|Lead 12857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012858|112858|989898|1|9999012858|MR|Test|E|Lead 12858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012859|112859|989898|1|9999012859|MR|Test|E|Lead 12859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012860|112860|989898|1|9999012860|MR|Test|E|Lead 12860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012861|112861|989898|1|9999012861|MR|Test|E|Lead 12861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012862|112862|989898|1|9999012862|MR|Test|E|Lead 12862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012863|112863|989898|1|9999012863|MR|Test|E|Lead 12863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012864|112864|989898|1|9999012864|MR|Test|E|Lead 12864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012865|112865|989898|1|9999012865|MR|Test|E|Lead 12865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012866|112866|989898|1|9999012866|MR|Test|E|Lead 12866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012867|112867|989898|1|9999012867|MR|Test|E|Lead 12867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012868|112868|989898|1|9999012868|MR|Test|E|Lead 12868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012869|112869|989898|1|9999012869|MR|Test|E|Lead 12869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012870|112870|989898|1|9999012870|MR|Test|E|Lead 12870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012871|112871|989898|1|9999012871|MR|Test|E|Lead 12871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012872|112872|989898|1|9999012872|MR|Test|E|Lead 12872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012873|112873|989898|1|9999012873|MR|Test|E|Lead 12873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012874|112874|989898|1|9999012874|MR|Test|E|Lead 12874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012875|112875|989898|1|9999012875|MR|Test|E|Lead 12875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012876|112876|989898|1|9999012876|MR|Test|E|Lead 12876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012877|112877|989898|1|9999012877|MR|Test|E|Lead 12877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012878|112878|989898|1|9999012878|MR|Test|E|Lead 12878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012879|112879|989898|1|9999012879|MR|Test|E|Lead 12879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012880|112880|989898|1|9999012880|MR|Test|E|Lead 12880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012881|112881|989898|1|9999012881|MR|Test|E|Lead 12881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012882|112882|989898|1|9999012882|MR|Test|E|Lead 12882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012883|112883|989898|1|9999012883|MR|Test|E|Lead 12883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012884|112884|989898|1|9999012884|MR|Test|E|Lead 12884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012885|112885|989898|1|9999012885|MR|Test|E|Lead 12885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012886|112886|989898|1|9999012886|MR|Test|E|Lead 12886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012887|112887|989898|1|9999012887|MR|Test|E|Lead 12887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012888|112888|989898|1|9999012888|MR|Test|E|Lead 12888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012889|112889|989898|1|9999012889|MR|Test|E|Lead 12889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012890|112890|989898|1|9999012890|MR|Test|E|Lead 12890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012891|112891|989898|1|9999012891|MR|Test|E|Lead 12891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012892|112892|989898|1|9999012892|MR|Test|E|Lead 12892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012893|112893|989898|1|9999012893|MR|Test|E|Lead 12893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012894|112894|989898|1|9999012894|MR|Test|E|Lead 12894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012895|112895|989898|1|9999012895|MR|Test|E|Lead 12895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012896|112896|989898|1|9999012896|MR|Test|E|Lead 12896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012897|112897|989898|1|9999012897|MR|Test|E|Lead 12897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012898|112898|989898|1|9999012898|MR|Test|E|Lead 12898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012899|112899|989898|1|9999012899|MR|Test|E|Lead 12899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012900|112900|989898|1|9999012900|MR|Test|E|Lead 12900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012901|112901|989898|1|9999012901|MR|Test|E|Lead 12901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012902|112902|989898|1|9999012902|MR|Test|E|Lead 12902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012903|112903|989898|1|9999012903|MR|Test|E|Lead 12903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012904|112904|989898|1|9999012904|MR|Test|E|Lead 12904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012905|112905|989898|1|9999012905|MR|Test|E|Lead 12905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012906|112906|989898|1|9999012906|MR|Test|E|Lead 12906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012907|112907|989898|1|9999012907|MR|Test|E|Lead 12907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012908|112908|989898|1|9999012908|MR|Test|E|Lead 12908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012909|112909|989898|1|9999012909|MR|Test|E|Lead 12909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012910|112910|989898|1|9999012910|MR|Test|E|Lead 12910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012911|112911|989898|1|9999012911|MR|Test|E|Lead 12911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012912|112912|989898|1|9999012912|MR|Test|E|Lead 12912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012913|112913|989898|1|9999012913|MR|Test|E|Lead 12913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012914|112914|989898|1|9999012914|MR|Test|E|Lead 12914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012915|112915|989898|1|9999012915|MR|Test|E|Lead 12915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012916|112916|989898|1|9999012916|MR|Test|E|Lead 12916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012917|112917|989898|1|9999012917|MR|Test|E|Lead 12917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012918|112918|989898|1|9999012918|MR|Test|E|Lead 12918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012919|112919|989898|1|9999012919|MR|Test|E|Lead 12919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012920|112920|989898|1|9999012920|MR|Test|E|Lead 12920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012921|112921|989898|1|9999012921|MR|Test|E|Lead 12921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012922|112922|989898|1|9999012922|MR|Test|E|Lead 12922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012923|112923|989898|1|9999012923|MR|Test|E|Lead 12923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012924|112924|989898|1|9999012924|MR|Test|E|Lead 12924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012925|112925|989898|1|9999012925|MR|Test|E|Lead 12925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012926|112926|989898|1|9999012926|MR|Test|E|Lead 12926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012927|112927|989898|1|9999012927|MR|Test|E|Lead 12927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012928|112928|989898|1|9999012928|MR|Test|E|Lead 12928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012929|112929|989898|1|9999012929|MR|Test|E|Lead 12929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012930|112930|989898|1|9999012930|MR|Test|E|Lead 12930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012931|112931|989898|1|9999012931|MR|Test|E|Lead 12931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012932|112932|989898|1|9999012932|MR|Test|E|Lead 12932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012933|112933|989898|1|9999012933|MR|Test|E|Lead 12933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012934|112934|989898|1|9999012934|MR|Test|E|Lead 12934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012935|112935|989898|1|9999012935|MR|Test|E|Lead 12935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012936|112936|989898|1|9999012936|MR|Test|E|Lead 12936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012937|112937|989898|1|9999012937|MR|Test|E|Lead 12937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012938|112938|989898|1|9999012938|MR|Test|E|Lead 12938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012939|112939|989898|1|9999012939|MR|Test|E|Lead 12939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012940|112940|989898|1|9999012940|MR|Test|E|Lead 12940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012941|112941|989898|1|9999012941|MR|Test|E|Lead 12941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012942|112942|989898|1|9999012942|MR|Test|E|Lead 12942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012943|112943|989898|1|9999012943|MR|Test|E|Lead 12943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012944|112944|989898|1|9999012944|MR|Test|E|Lead 12944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012945|112945|989898|1|9999012945|MR|Test|E|Lead 12945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012946|112946|989898|1|9999012946|MR|Test|E|Lead 12946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012947|112947|989898|1|9999012947|MR|Test|E|Lead 12947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012948|112948|989898|1|9999012948|MR|Test|E|Lead 12948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012949|112949|989898|1|9999012949|MR|Test|E|Lead 12949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012950|112950|989898|1|9999012950|MR|Test|E|Lead 12950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012951|112951|989898|1|9999012951|MR|Test|E|Lead 12951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012952|112952|989898|1|9999012952|MR|Test|E|Lead 12952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012953|112953|989898|1|9999012953|MR|Test|E|Lead 12953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012954|112954|989898|1|9999012954|MR|Test|E|Lead 12954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012955|112955|989898|1|9999012955|MR|Test|E|Lead 12955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012956|112956|989898|1|9999012956|MR|Test|E|Lead 12956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012957|112957|989898|1|9999012957|MR|Test|E|Lead 12957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012958|112958|989898|1|9999012958|MR|Test|E|Lead 12958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012959|112959|989898|1|9999012959|MR|Test|E|Lead 12959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012960|112960|989898|1|9999012960|MR|Test|E|Lead 12960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012961|112961|989898|1|9999012961|MR|Test|E|Lead 12961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012962|112962|989898|1|9999012962|MR|Test|E|Lead 12962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012963|112963|989898|1|9999012963|MR|Test|E|Lead 12963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012964|112964|989898|1|9999012964|MR|Test|E|Lead 12964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012965|112965|989898|1|9999012965|MR|Test|E|Lead 12965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012966|112966|989898|1|9999012966|MR|Test|E|Lead 12966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012967|112967|989898|1|9999012967|MR|Test|E|Lead 12967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012968|112968|989898|1|9999012968|MR|Test|E|Lead 12968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012969|112969|989898|1|9999012969|MR|Test|E|Lead 12969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012970|112970|989898|1|9999012970|MR|Test|E|Lead 12970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012971|112971|989898|1|9999012971|MR|Test|E|Lead 12971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012972|112972|989898|1|9999012972|MR|Test|E|Lead 12972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012973|112973|989898|1|9999012973|MR|Test|E|Lead 12973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012974|112974|989898|1|9999012974|MR|Test|E|Lead 12974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012975|112975|989898|1|9999012975|MR|Test|E|Lead 12975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012976|112976|989898|1|9999012976|MR|Test|E|Lead 12976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012977|112977|989898|1|9999012977|MR|Test|E|Lead 12977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012978|112978|989898|1|9999012978|MR|Test|E|Lead 12978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012979|112979|989898|1|9999012979|MR|Test|E|Lead 12979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012980|112980|989898|1|9999012980|MR|Test|E|Lead 12980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012981|112981|989898|1|9999012981|MR|Test|E|Lead 12981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012982|112982|989898|1|9999012982|MR|Test|E|Lead 12982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012983|112983|989898|1|9999012983|MR|Test|E|Lead 12983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012984|112984|989898|1|9999012984|MR|Test|E|Lead 12984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012985|112985|989898|1|9999012985|MR|Test|E|Lead 12985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012986|112986|989898|1|9999012986|MR|Test|E|Lead 12986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012987|112987|989898|1|9999012987|MR|Test|E|Lead 12987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012988|112988|989898|1|9999012988|MR|Test|E|Lead 12988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012989|112989|989898|1|9999012989|MR|Test|E|Lead 12989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012990|112990|989898|1|9999012990|MR|Test|E|Lead 12990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012991|112991|989898|1|9999012991|MR|Test|E|Lead 12991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012992|112992|989898|1|9999012992|MR|Test|E|Lead 12992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012993|112993|989898|1|9999012993|MR|Test|E|Lead 12993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012994|112994|989898|1|9999012994|MR|Test|E|Lead 12994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012995|112995|989898|1|9999012995|MR|Test|E|Lead 12995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012996|112996|989898|1|9999012996|MR|Test|E|Lead 12996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012997|112997|989898|1|9999012997|MR|Test|E|Lead 12997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012998|112998|989898|1|9999012998|MR|Test|E|Lead 12998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1012999|112999|989898|1|9999012999|MR|Test|E|Lead 12999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013000|113000|989898|1|9999013000|MR|Test|E|Lead 13000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013001|113001|989898|1|9999013001|MR|Test|E|Lead 13001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013002|113002|989898|1|9999013002|MR|Test|E|Lead 13002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013003|113003|989898|1|9999013003|MR|Test|E|Lead 13003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013004|113004|989898|1|9999013004|MR|Test|E|Lead 13004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013005|113005|989898|1|9999013005|MR|Test|E|Lead 13005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013006|113006|989898|1|9999013006|MR|Test|E|Lead 13006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013007|113007|989898|1|9999013007|MR|Test|E|Lead 13007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013008|113008|989898|1|9999013008|MR|Test|E|Lead 13008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013009|113009|989898|1|9999013009|MR|Test|E|Lead 13009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013010|113010|989898|1|9999013010|MR|Test|E|Lead 13010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013011|113011|989898|1|9999013011|MR|Test|E|Lead 13011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013012|113012|989898|1|9999013012|MR|Test|E|Lead 13012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013013|113013|989898|1|9999013013|MR|Test|E|Lead 13013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013014|113014|989898|1|9999013014|MR|Test|E|Lead 13014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013015|113015|989898|1|9999013015|MR|Test|E|Lead 13015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013016|113016|989898|1|9999013016|MR|Test|E|Lead 13016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013017|113017|989898|1|9999013017|MR|Test|E|Lead 13017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013018|113018|989898|1|9999013018|MR|Test|E|Lead 13018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013019|113019|989898|1|9999013019|MR|Test|E|Lead 13019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013020|113020|989898|1|9999013020|MR|Test|E|Lead 13020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013021|113021|989898|1|9999013021|MR|Test|E|Lead 13021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013022|113022|989898|1|9999013022|MR|Test|E|Lead 13022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013023|113023|989898|1|9999013023|MR|Test|E|Lead 13023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013024|113024|989898|1|9999013024|MR|Test|E|Lead 13024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013025|113025|989898|1|9999013025|MR|Test|E|Lead 13025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013026|113026|989898|1|9999013026|MR|Test|E|Lead 13026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013027|113027|989898|1|9999013027|MR|Test|E|Lead 13027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013028|113028|989898|1|9999013028|MR|Test|E|Lead 13028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013029|113029|989898|1|9999013029|MR|Test|E|Lead 13029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013030|113030|989898|1|9999013030|MR|Test|E|Lead 13030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013031|113031|989898|1|9999013031|MR|Test|E|Lead 13031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013032|113032|989898|1|9999013032|MR|Test|E|Lead 13032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013033|113033|989898|1|9999013033|MR|Test|E|Lead 13033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013034|113034|989898|1|9999013034|MR|Test|E|Lead 13034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013035|113035|989898|1|9999013035|MR|Test|E|Lead 13035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013036|113036|989898|1|9999013036|MR|Test|E|Lead 13036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013037|113037|989898|1|9999013037|MR|Test|E|Lead 13037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013038|113038|989898|1|9999013038|MR|Test|E|Lead 13038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013039|113039|989898|1|9999013039|MR|Test|E|Lead 13039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013040|113040|989898|1|9999013040|MR|Test|E|Lead 13040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013041|113041|989898|1|9999013041|MR|Test|E|Lead 13041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013042|113042|989898|1|9999013042|MR|Test|E|Lead 13042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013043|113043|989898|1|9999013043|MR|Test|E|Lead 13043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013044|113044|989898|1|9999013044|MR|Test|E|Lead 13044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013045|113045|989898|1|9999013045|MR|Test|E|Lead 13045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013046|113046|989898|1|9999013046|MR|Test|E|Lead 13046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013047|113047|989898|1|9999013047|MR|Test|E|Lead 13047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013048|113048|989898|1|9999013048|MR|Test|E|Lead 13048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013049|113049|989898|1|9999013049|MR|Test|E|Lead 13049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013050|113050|989898|1|9999013050|MR|Test|E|Lead 13050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013051|113051|989898|1|9999013051|MR|Test|E|Lead 13051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013052|113052|989898|1|9999013052|MR|Test|E|Lead 13052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013053|113053|989898|1|9999013053|MR|Test|E|Lead 13053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013054|113054|989898|1|9999013054|MR|Test|E|Lead 13054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013055|113055|989898|1|9999013055|MR|Test|E|Lead 13055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013056|113056|989898|1|9999013056|MR|Test|E|Lead 13056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013057|113057|989898|1|9999013057|MR|Test|E|Lead 13057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013058|113058|989898|1|9999013058|MR|Test|E|Lead 13058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013059|113059|989898|1|9999013059|MR|Test|E|Lead 13059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013060|113060|989898|1|9999013060|MR|Test|E|Lead 13060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013061|113061|989898|1|9999013061|MR|Test|E|Lead 13061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013062|113062|989898|1|9999013062|MR|Test|E|Lead 13062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013063|113063|989898|1|9999013063|MR|Test|E|Lead 13063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013064|113064|989898|1|9999013064|MR|Test|E|Lead 13064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013065|113065|989898|1|9999013065|MR|Test|E|Lead 13065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013066|113066|989898|1|9999013066|MR|Test|E|Lead 13066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013067|113067|989898|1|9999013067|MR|Test|E|Lead 13067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013068|113068|989898|1|9999013068|MR|Test|E|Lead 13068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013069|113069|989898|1|9999013069|MR|Test|E|Lead 13069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013070|113070|989898|1|9999013070|MR|Test|E|Lead 13070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013071|113071|989898|1|9999013071|MR|Test|E|Lead 13071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013072|113072|989898|1|9999013072|MR|Test|E|Lead 13072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013073|113073|989898|1|9999013073|MR|Test|E|Lead 13073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013074|113074|989898|1|9999013074|MR|Test|E|Lead 13074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013075|113075|989898|1|9999013075|MR|Test|E|Lead 13075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013076|113076|989898|1|9999013076|MR|Test|E|Lead 13076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013077|113077|989898|1|9999013077|MR|Test|E|Lead 13077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013078|113078|989898|1|9999013078|MR|Test|E|Lead 13078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013079|113079|989898|1|9999013079|MR|Test|E|Lead 13079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013080|113080|989898|1|9999013080|MR|Test|E|Lead 13080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013081|113081|989898|1|9999013081|MR|Test|E|Lead 13081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013082|113082|989898|1|9999013082|MR|Test|E|Lead 13082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013083|113083|989898|1|9999013083|MR|Test|E|Lead 13083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013084|113084|989898|1|9999013084|MR|Test|E|Lead 13084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013085|113085|989898|1|9999013085|MR|Test|E|Lead 13085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013086|113086|989898|1|9999013086|MR|Test|E|Lead 13086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013087|113087|989898|1|9999013087|MR|Test|E|Lead 13087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013088|113088|989898|1|9999013088|MR|Test|E|Lead 13088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013089|113089|989898|1|9999013089|MR|Test|E|Lead 13089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013090|113090|989898|1|9999013090|MR|Test|E|Lead 13090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013091|113091|989898|1|9999013091|MR|Test|E|Lead 13091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013092|113092|989898|1|9999013092|MR|Test|E|Lead 13092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013093|113093|989898|1|9999013093|MR|Test|E|Lead 13093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013094|113094|989898|1|9999013094|MR|Test|E|Lead 13094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013095|113095|989898|1|9999013095|MR|Test|E|Lead 13095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013096|113096|989898|1|9999013096|MR|Test|E|Lead 13096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013097|113097|989898|1|9999013097|MR|Test|E|Lead 13097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013098|113098|989898|1|9999013098|MR|Test|E|Lead 13098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013099|113099|989898|1|9999013099|MR|Test|E|Lead 13099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013100|113100|989898|1|9999013100|MR|Test|E|Lead 13100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013101|113101|989898|1|9999013101|MR|Test|E|Lead 13101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013102|113102|989898|1|9999013102|MR|Test|E|Lead 13102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013103|113103|989898|1|9999013103|MR|Test|E|Lead 13103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013104|113104|989898|1|9999013104|MR|Test|E|Lead 13104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013105|113105|989898|1|9999013105|MR|Test|E|Lead 13105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013106|113106|989898|1|9999013106|MR|Test|E|Lead 13106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013107|113107|989898|1|9999013107|MR|Test|E|Lead 13107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013108|113108|989898|1|9999013108|MR|Test|E|Lead 13108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013109|113109|989898|1|9999013109|MR|Test|E|Lead 13109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013110|113110|989898|1|9999013110|MR|Test|E|Lead 13110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013111|113111|989898|1|9999013111|MR|Test|E|Lead 13111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013112|113112|989898|1|9999013112|MR|Test|E|Lead 13112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013113|113113|989898|1|9999013113|MR|Test|E|Lead 13113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013114|113114|989898|1|9999013114|MR|Test|E|Lead 13114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013115|113115|989898|1|9999013115|MR|Test|E|Lead 13115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013116|113116|989898|1|9999013116|MR|Test|E|Lead 13116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013117|113117|989898|1|9999013117|MR|Test|E|Lead 13117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013118|113118|989898|1|9999013118|MR|Test|E|Lead 13118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013119|113119|989898|1|9999013119|MR|Test|E|Lead 13119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013120|113120|989898|1|9999013120|MR|Test|E|Lead 13120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013121|113121|989898|1|9999013121|MR|Test|E|Lead 13121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013122|113122|989898|1|9999013122|MR|Test|E|Lead 13122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013123|113123|989898|1|9999013123|MR|Test|E|Lead 13123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013124|113124|989898|1|9999013124|MR|Test|E|Lead 13124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013125|113125|989898|1|9999013125|MR|Test|E|Lead 13125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013126|113126|989898|1|9999013126|MR|Test|E|Lead 13126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013127|113127|989898|1|9999013127|MR|Test|E|Lead 13127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013128|113128|989898|1|9999013128|MR|Test|E|Lead 13128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013129|113129|989898|1|9999013129|MR|Test|E|Lead 13129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013130|113130|989898|1|9999013130|MR|Test|E|Lead 13130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013131|113131|989898|1|9999013131|MR|Test|E|Lead 13131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013132|113132|989898|1|9999013132|MR|Test|E|Lead 13132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013133|113133|989898|1|9999013133|MR|Test|E|Lead 13133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013134|113134|989898|1|9999013134|MR|Test|E|Lead 13134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013135|113135|989898|1|9999013135|MR|Test|E|Lead 13135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013136|113136|989898|1|9999013136|MR|Test|E|Lead 13136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013137|113137|989898|1|9999013137|MR|Test|E|Lead 13137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013138|113138|989898|1|9999013138|MR|Test|E|Lead 13138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013139|113139|989898|1|9999013139|MR|Test|E|Lead 13139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013140|113140|989898|1|9999013140|MR|Test|E|Lead 13140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013141|113141|989898|1|9999013141|MR|Test|E|Lead 13141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013142|113142|989898|1|9999013142|MR|Test|E|Lead 13142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013143|113143|989898|1|9999013143|MR|Test|E|Lead 13143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013144|113144|989898|1|9999013144|MR|Test|E|Lead 13144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013145|113145|989898|1|9999013145|MR|Test|E|Lead 13145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013146|113146|989898|1|9999013146|MR|Test|E|Lead 13146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013147|113147|989898|1|9999013147|MR|Test|E|Lead 13147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013148|113148|989898|1|9999013148|MR|Test|E|Lead 13148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013149|113149|989898|1|9999013149|MR|Test|E|Lead 13149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013150|113150|989898|1|9999013150|MR|Test|E|Lead 13150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013151|113151|989898|1|9999013151|MR|Test|E|Lead 13151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013152|113152|989898|1|9999013152|MR|Test|E|Lead 13152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013153|113153|989898|1|9999013153|MR|Test|E|Lead 13153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013154|113154|989898|1|9999013154|MR|Test|E|Lead 13154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013155|113155|989898|1|9999013155|MR|Test|E|Lead 13155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013156|113156|989898|1|9999013156|MR|Test|E|Lead 13156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013157|113157|989898|1|9999013157|MR|Test|E|Lead 13157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013158|113158|989898|1|9999013158|MR|Test|E|Lead 13158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013159|113159|989898|1|9999013159|MR|Test|E|Lead 13159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013160|113160|989898|1|9999013160|MR|Test|E|Lead 13160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013161|113161|989898|1|9999013161|MR|Test|E|Lead 13161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013162|113162|989898|1|9999013162|MR|Test|E|Lead 13162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013163|113163|989898|1|9999013163|MR|Test|E|Lead 13163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013164|113164|989898|1|9999013164|MR|Test|E|Lead 13164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013165|113165|989898|1|9999013165|MR|Test|E|Lead 13165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013166|113166|989898|1|9999013166|MR|Test|E|Lead 13166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013167|113167|989898|1|9999013167|MR|Test|E|Lead 13167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013168|113168|989898|1|9999013168|MR|Test|E|Lead 13168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013169|113169|989898|1|9999013169|MR|Test|E|Lead 13169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013170|113170|989898|1|9999013170|MR|Test|E|Lead 13170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013171|113171|989898|1|9999013171|MR|Test|E|Lead 13171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013172|113172|989898|1|9999013172|MR|Test|E|Lead 13172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013173|113173|989898|1|9999013173|MR|Test|E|Lead 13173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013174|113174|989898|1|9999013174|MR|Test|E|Lead 13174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013175|113175|989898|1|9999013175|MR|Test|E|Lead 13175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013176|113176|989898|1|9999013176|MR|Test|E|Lead 13176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013177|113177|989898|1|9999013177|MR|Test|E|Lead 13177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013178|113178|989898|1|9999013178|MR|Test|E|Lead 13178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013179|113179|989898|1|9999013179|MR|Test|E|Lead 13179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013180|113180|989898|1|9999013180|MR|Test|E|Lead 13180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013181|113181|989898|1|9999013181|MR|Test|E|Lead 13181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013182|113182|989898|1|9999013182|MR|Test|E|Lead 13182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013183|113183|989898|1|9999013183|MR|Test|E|Lead 13183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013184|113184|989898|1|9999013184|MR|Test|E|Lead 13184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013185|113185|989898|1|9999013185|MR|Test|E|Lead 13185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013186|113186|989898|1|9999013186|MR|Test|E|Lead 13186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013187|113187|989898|1|9999013187|MR|Test|E|Lead 13187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013188|113188|989898|1|9999013188|MR|Test|E|Lead 13188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013189|113189|989898|1|9999013189|MR|Test|E|Lead 13189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013190|113190|989898|1|9999013190|MR|Test|E|Lead 13190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013191|113191|989898|1|9999013191|MR|Test|E|Lead 13191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013192|113192|989898|1|9999013192|MR|Test|E|Lead 13192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013193|113193|989898|1|9999013193|MR|Test|E|Lead 13193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013194|113194|989898|1|9999013194|MR|Test|E|Lead 13194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013195|113195|989898|1|9999013195|MR|Test|E|Lead 13195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013196|113196|989898|1|9999013196|MR|Test|E|Lead 13196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013197|113197|989898|1|9999013197|MR|Test|E|Lead 13197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013198|113198|989898|1|9999013198|MR|Test|E|Lead 13198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013199|113199|989898|1|9999013199|MR|Test|E|Lead 13199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013200|113200|989898|1|9999013200|MR|Test|E|Lead 13200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013201|113201|989898|1|9999013201|MR|Test|E|Lead 13201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013202|113202|989898|1|9999013202|MR|Test|E|Lead 13202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013203|113203|989898|1|9999013203|MR|Test|E|Lead 13203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013204|113204|989898|1|9999013204|MR|Test|E|Lead 13204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013205|113205|989898|1|9999013205|MR|Test|E|Lead 13205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013206|113206|989898|1|9999013206|MR|Test|E|Lead 13206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013207|113207|989898|1|9999013207|MR|Test|E|Lead 13207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013208|113208|989898|1|9999013208|MR|Test|E|Lead 13208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013209|113209|989898|1|9999013209|MR|Test|E|Lead 13209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013210|113210|989898|1|9999013210|MR|Test|E|Lead 13210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013211|113211|989898|1|9999013211|MR|Test|E|Lead 13211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013212|113212|989898|1|9999013212|MR|Test|E|Lead 13212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013213|113213|989898|1|9999013213|MR|Test|E|Lead 13213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013214|113214|989898|1|9999013214|MR|Test|E|Lead 13214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013215|113215|989898|1|9999013215|MR|Test|E|Lead 13215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013216|113216|989898|1|9999013216|MR|Test|E|Lead 13216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013217|113217|989898|1|9999013217|MR|Test|E|Lead 13217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013218|113218|989898|1|9999013218|MR|Test|E|Lead 13218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013219|113219|989898|1|9999013219|MR|Test|E|Lead 13219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013220|113220|989898|1|9999013220|MR|Test|E|Lead 13220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013221|113221|989898|1|9999013221|MR|Test|E|Lead 13221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013222|113222|989898|1|9999013222|MR|Test|E|Lead 13222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013223|113223|989898|1|9999013223|MR|Test|E|Lead 13223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013224|113224|989898|1|9999013224|MR|Test|E|Lead 13224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013225|113225|989898|1|9999013225|MR|Test|E|Lead 13225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013226|113226|989898|1|9999013226|MR|Test|E|Lead 13226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013227|113227|989898|1|9999013227|MR|Test|E|Lead 13227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013228|113228|989898|1|9999013228|MR|Test|E|Lead 13228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013229|113229|989898|1|9999013229|MR|Test|E|Lead 13229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013230|113230|989898|1|9999013230|MR|Test|E|Lead 13230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013231|113231|989898|1|9999013231|MR|Test|E|Lead 13231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013232|113232|989898|1|9999013232|MR|Test|E|Lead 13232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013233|113233|989898|1|9999013233|MR|Test|E|Lead 13233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013234|113234|989898|1|9999013234|MR|Test|E|Lead 13234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013235|113235|989898|1|9999013235|MR|Test|E|Lead 13235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013236|113236|989898|1|9999013236|MR|Test|E|Lead 13236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013237|113237|989898|1|9999013237|MR|Test|E|Lead 13237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013238|113238|989898|1|9999013238|MR|Test|E|Lead 13238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013239|113239|989898|1|9999013239|MR|Test|E|Lead 13239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013240|113240|989898|1|9999013240|MR|Test|E|Lead 13240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013241|113241|989898|1|9999013241|MR|Test|E|Lead 13241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013242|113242|989898|1|9999013242|MR|Test|E|Lead 13242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013243|113243|989898|1|9999013243|MR|Test|E|Lead 13243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013244|113244|989898|1|9999013244|MR|Test|E|Lead 13244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013245|113245|989898|1|9999013245|MR|Test|E|Lead 13245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013246|113246|989898|1|9999013246|MR|Test|E|Lead 13246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013247|113247|989898|1|9999013247|MR|Test|E|Lead 13247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013248|113248|989898|1|9999013248|MR|Test|E|Lead 13248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013249|113249|989898|1|9999013249|MR|Test|E|Lead 13249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013250|113250|989898|1|9999013250|MR|Test|E|Lead 13250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013251|113251|989898|1|9999013251|MR|Test|E|Lead 13251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013252|113252|989898|1|9999013252|MR|Test|E|Lead 13252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013253|113253|989898|1|9999013253|MR|Test|E|Lead 13253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013254|113254|989898|1|9999013254|MR|Test|E|Lead 13254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013255|113255|989898|1|9999013255|MR|Test|E|Lead 13255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013256|113256|989898|1|9999013256|MR|Test|E|Lead 13256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013257|113257|989898|1|9999013257|MR|Test|E|Lead 13257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013258|113258|989898|1|9999013258|MR|Test|E|Lead 13258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013259|113259|989898|1|9999013259|MR|Test|E|Lead 13259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013260|113260|989898|1|9999013260|MR|Test|E|Lead 13260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013261|113261|989898|1|9999013261|MR|Test|E|Lead 13261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013262|113262|989898|1|9999013262|MR|Test|E|Lead 13262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013263|113263|989898|1|9999013263|MR|Test|E|Lead 13263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013264|113264|989898|1|9999013264|MR|Test|E|Lead 13264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013265|113265|989898|1|9999013265|MR|Test|E|Lead 13265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013266|113266|989898|1|9999013266|MR|Test|E|Lead 13266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013267|113267|989898|1|9999013267|MR|Test|E|Lead 13267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013268|113268|989898|1|9999013268|MR|Test|E|Lead 13268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013269|113269|989898|1|9999013269|MR|Test|E|Lead 13269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013270|113270|989898|1|9999013270|MR|Test|E|Lead 13270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013271|113271|989898|1|9999013271|MR|Test|E|Lead 13271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013272|113272|989898|1|9999013272|MR|Test|E|Lead 13272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013273|113273|989898|1|9999013273|MR|Test|E|Lead 13273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013274|113274|989898|1|9999013274|MR|Test|E|Lead 13274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013275|113275|989898|1|9999013275|MR|Test|E|Lead 13275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013276|113276|989898|1|9999013276|MR|Test|E|Lead 13276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013277|113277|989898|1|9999013277|MR|Test|E|Lead 13277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013278|113278|989898|1|9999013278|MR|Test|E|Lead 13278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013279|113279|989898|1|9999013279|MR|Test|E|Lead 13279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013280|113280|989898|1|9999013280|MR|Test|E|Lead 13280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013281|113281|989898|1|9999013281|MR|Test|E|Lead 13281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013282|113282|989898|1|9999013282|MR|Test|E|Lead 13282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013283|113283|989898|1|9999013283|MR|Test|E|Lead 13283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013284|113284|989898|1|9999013284|MR|Test|E|Lead 13284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013285|113285|989898|1|9999013285|MR|Test|E|Lead 13285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013286|113286|989898|1|9999013286|MR|Test|E|Lead 13286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013287|113287|989898|1|9999013287|MR|Test|E|Lead 13287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013288|113288|989898|1|9999013288|MR|Test|E|Lead 13288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013289|113289|989898|1|9999013289|MR|Test|E|Lead 13289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013290|113290|989898|1|9999013290|MR|Test|E|Lead 13290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013291|113291|989898|1|9999013291|MR|Test|E|Lead 13291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013292|113292|989898|1|9999013292|MR|Test|E|Lead 13292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013293|113293|989898|1|9999013293|MR|Test|E|Lead 13293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013294|113294|989898|1|9999013294|MR|Test|E|Lead 13294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013295|113295|989898|1|9999013295|MR|Test|E|Lead 13295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013296|113296|989898|1|9999013296|MR|Test|E|Lead 13296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013297|113297|989898|1|9999013297|MR|Test|E|Lead 13297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013298|113298|989898|1|9999013298|MR|Test|E|Lead 13298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013299|113299|989898|1|9999013299|MR|Test|E|Lead 13299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013300|113300|989898|1|9999013300|MR|Test|E|Lead 13300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013301|113301|989898|1|9999013301|MR|Test|E|Lead 13301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013302|113302|989898|1|9999013302|MR|Test|E|Lead 13302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013303|113303|989898|1|9999013303|MR|Test|E|Lead 13303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013304|113304|989898|1|9999013304|MR|Test|E|Lead 13304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013305|113305|989898|1|9999013305|MR|Test|E|Lead 13305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013306|113306|989898|1|9999013306|MR|Test|E|Lead 13306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013307|113307|989898|1|9999013307|MR|Test|E|Lead 13307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013308|113308|989898|1|9999013308|MR|Test|E|Lead 13308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013309|113309|989898|1|9999013309|MR|Test|E|Lead 13309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013310|113310|989898|1|9999013310|MR|Test|E|Lead 13310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013311|113311|989898|1|9999013311|MR|Test|E|Lead 13311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013312|113312|989898|1|9999013312|MR|Test|E|Lead 13312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013313|113313|989898|1|9999013313|MR|Test|E|Lead 13313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013314|113314|989898|1|9999013314|MR|Test|E|Lead 13314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013315|113315|989898|1|9999013315|MR|Test|E|Lead 13315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013316|113316|989898|1|9999013316|MR|Test|E|Lead 13316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013317|113317|989898|1|9999013317|MR|Test|E|Lead 13317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013318|113318|989898|1|9999013318|MR|Test|E|Lead 13318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013319|113319|989898|1|9999013319|MR|Test|E|Lead 13319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013320|113320|989898|1|9999013320|MR|Test|E|Lead 13320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013321|113321|989898|1|9999013321|MR|Test|E|Lead 13321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013322|113322|989898|1|9999013322|MR|Test|E|Lead 13322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013323|113323|989898|1|9999013323|MR|Test|E|Lead 13323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013324|113324|989898|1|9999013324|MR|Test|E|Lead 13324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013325|113325|989898|1|9999013325|MR|Test|E|Lead 13325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013326|113326|989898|1|9999013326|MR|Test|E|Lead 13326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013327|113327|989898|1|9999013327|MR|Test|E|Lead 13327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013328|113328|989898|1|9999013328|MR|Test|E|Lead 13328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013329|113329|989898|1|9999013329|MR|Test|E|Lead 13329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013330|113330|989898|1|9999013330|MR|Test|E|Lead 13330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013331|113331|989898|1|9999013331|MR|Test|E|Lead 13331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013332|113332|989898|1|9999013332|MR|Test|E|Lead 13332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013333|113333|989898|1|9999013333|MR|Test|E|Lead 13333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013334|113334|989898|1|9999013334|MR|Test|E|Lead 13334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013335|113335|989898|1|9999013335|MR|Test|E|Lead 13335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013336|113336|989898|1|9999013336|MR|Test|E|Lead 13336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013337|113337|989898|1|9999013337|MR|Test|E|Lead 13337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013338|113338|989898|1|9999013338|MR|Test|E|Lead 13338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013339|113339|989898|1|9999013339|MR|Test|E|Lead 13339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013340|113340|989898|1|9999013340|MR|Test|E|Lead 13340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013341|113341|989898|1|9999013341|MR|Test|E|Lead 13341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013342|113342|989898|1|9999013342|MR|Test|E|Lead 13342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013343|113343|989898|1|9999013343|MR|Test|E|Lead 13343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013344|113344|989898|1|9999013344|MR|Test|E|Lead 13344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013345|113345|989898|1|9999013345|MR|Test|E|Lead 13345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013346|113346|989898|1|9999013346|MR|Test|E|Lead 13346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013347|113347|989898|1|9999013347|MR|Test|E|Lead 13347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013348|113348|989898|1|9999013348|MR|Test|E|Lead 13348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013349|113349|989898|1|9999013349|MR|Test|E|Lead 13349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013350|113350|989898|1|9999013350|MR|Test|E|Lead 13350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013351|113351|989898|1|9999013351|MR|Test|E|Lead 13351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013352|113352|989898|1|9999013352|MR|Test|E|Lead 13352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013353|113353|989898|1|9999013353|MR|Test|E|Lead 13353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013354|113354|989898|1|9999013354|MR|Test|E|Lead 13354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013355|113355|989898|1|9999013355|MR|Test|E|Lead 13355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013356|113356|989898|1|9999013356|MR|Test|E|Lead 13356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013357|113357|989898|1|9999013357|MR|Test|E|Lead 13357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013358|113358|989898|1|9999013358|MR|Test|E|Lead 13358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013359|113359|989898|1|9999013359|MR|Test|E|Lead 13359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013360|113360|989898|1|9999013360|MR|Test|E|Lead 13360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013361|113361|989898|1|9999013361|MR|Test|E|Lead 13361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013362|113362|989898|1|9999013362|MR|Test|E|Lead 13362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013363|113363|989898|1|9999013363|MR|Test|E|Lead 13363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013364|113364|989898|1|9999013364|MR|Test|E|Lead 13364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013365|113365|989898|1|9999013365|MR|Test|E|Lead 13365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013366|113366|989898|1|9999013366|MR|Test|E|Lead 13366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013367|113367|989898|1|9999013367|MR|Test|E|Lead 13367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013368|113368|989898|1|9999013368|MR|Test|E|Lead 13368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013369|113369|989898|1|9999013369|MR|Test|E|Lead 13369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013370|113370|989898|1|9999013370|MR|Test|E|Lead 13370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013371|113371|989898|1|9999013371|MR|Test|E|Lead 13371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013372|113372|989898|1|9999013372|MR|Test|E|Lead 13372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013373|113373|989898|1|9999013373|MR|Test|E|Lead 13373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013374|113374|989898|1|9999013374|MR|Test|E|Lead 13374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013375|113375|989898|1|9999013375|MR|Test|E|Lead 13375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013376|113376|989898|1|9999013376|MR|Test|E|Lead 13376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013377|113377|989898|1|9999013377|MR|Test|E|Lead 13377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013378|113378|989898|1|9999013378|MR|Test|E|Lead 13378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013379|113379|989898|1|9999013379|MR|Test|E|Lead 13379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013380|113380|989898|1|9999013380|MR|Test|E|Lead 13380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013381|113381|989898|1|9999013381|MR|Test|E|Lead 13381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013382|113382|989898|1|9999013382|MR|Test|E|Lead 13382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013383|113383|989898|1|9999013383|MR|Test|E|Lead 13383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013384|113384|989898|1|9999013384|MR|Test|E|Lead 13384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013385|113385|989898|1|9999013385|MR|Test|E|Lead 13385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013386|113386|989898|1|9999013386|MR|Test|E|Lead 13386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013387|113387|989898|1|9999013387|MR|Test|E|Lead 13387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013388|113388|989898|1|9999013388|MR|Test|E|Lead 13388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013389|113389|989898|1|9999013389|MR|Test|E|Lead 13389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013390|113390|989898|1|9999013390|MR|Test|E|Lead 13390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013391|113391|989898|1|9999013391|MR|Test|E|Lead 13391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013392|113392|989898|1|9999013392|MR|Test|E|Lead 13392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013393|113393|989898|1|9999013393|MR|Test|E|Lead 13393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013394|113394|989898|1|9999013394|MR|Test|E|Lead 13394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013395|113395|989898|1|9999013395|MR|Test|E|Lead 13395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013396|113396|989898|1|9999013396|MR|Test|E|Lead 13396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013397|113397|989898|1|9999013397|MR|Test|E|Lead 13397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013398|113398|989898|1|9999013398|MR|Test|E|Lead 13398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013399|113399|989898|1|9999013399|MR|Test|E|Lead 13399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013400|113400|989898|1|9999013400|MR|Test|E|Lead 13400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013401|113401|989898|1|9999013401|MR|Test|E|Lead 13401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013402|113402|989898|1|9999013402|MR|Test|E|Lead 13402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013403|113403|989898|1|9999013403|MR|Test|E|Lead 13403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013404|113404|989898|1|9999013404|MR|Test|E|Lead 13404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013405|113405|989898|1|9999013405|MR|Test|E|Lead 13405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013406|113406|989898|1|9999013406|MR|Test|E|Lead 13406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013407|113407|989898|1|9999013407|MR|Test|E|Lead 13407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013408|113408|989898|1|9999013408|MR|Test|E|Lead 13408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013409|113409|989898|1|9999013409|MR|Test|E|Lead 13409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013410|113410|989898|1|9999013410|MR|Test|E|Lead 13410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013411|113411|989898|1|9999013411|MR|Test|E|Lead 13411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013412|113412|989898|1|9999013412|MR|Test|E|Lead 13412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013413|113413|989898|1|9999013413|MR|Test|E|Lead 13413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013414|113414|989898|1|9999013414|MR|Test|E|Lead 13414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013415|113415|989898|1|9999013415|MR|Test|E|Lead 13415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013416|113416|989898|1|9999013416|MR|Test|E|Lead 13416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013417|113417|989898|1|9999013417|MR|Test|E|Lead 13417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013418|113418|989898|1|9999013418|MR|Test|E|Lead 13418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013419|113419|989898|1|9999013419|MR|Test|E|Lead 13419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013420|113420|989898|1|9999013420|MR|Test|E|Lead 13420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013421|113421|989898|1|9999013421|MR|Test|E|Lead 13421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013422|113422|989898|1|9999013422|MR|Test|E|Lead 13422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013423|113423|989898|1|9999013423|MR|Test|E|Lead 13423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013424|113424|989898|1|9999013424|MR|Test|E|Lead 13424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013425|113425|989898|1|9999013425|MR|Test|E|Lead 13425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013426|113426|989898|1|9999013426|MR|Test|E|Lead 13426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013427|113427|989898|1|9999013427|MR|Test|E|Lead 13427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013428|113428|989898|1|9999013428|MR|Test|E|Lead 13428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013429|113429|989898|1|9999013429|MR|Test|E|Lead 13429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013430|113430|989898|1|9999013430|MR|Test|E|Lead 13430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013431|113431|989898|1|9999013431|MR|Test|E|Lead 13431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013432|113432|989898|1|9999013432|MR|Test|E|Lead 13432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013433|113433|989898|1|9999013433|MR|Test|E|Lead 13433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013434|113434|989898|1|9999013434|MR|Test|E|Lead 13434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013435|113435|989898|1|9999013435|MR|Test|E|Lead 13435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013436|113436|989898|1|9999013436|MR|Test|E|Lead 13436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013437|113437|989898|1|9999013437|MR|Test|E|Lead 13437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013438|113438|989898|1|9999013438|MR|Test|E|Lead 13438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013439|113439|989898|1|9999013439|MR|Test|E|Lead 13439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013440|113440|989898|1|9999013440|MR|Test|E|Lead 13440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013441|113441|989898|1|9999013441|MR|Test|E|Lead 13441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013442|113442|989898|1|9999013442|MR|Test|E|Lead 13442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013443|113443|989898|1|9999013443|MR|Test|E|Lead 13443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013444|113444|989898|1|9999013444|MR|Test|E|Lead 13444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013445|113445|989898|1|9999013445|MR|Test|E|Lead 13445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013446|113446|989898|1|9999013446|MR|Test|E|Lead 13446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013447|113447|989898|1|9999013447|MR|Test|E|Lead 13447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013448|113448|989898|1|9999013448|MR|Test|E|Lead 13448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013449|113449|989898|1|9999013449|MR|Test|E|Lead 13449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013450|113450|989898|1|9999013450|MR|Test|E|Lead 13450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013451|113451|989898|1|9999013451|MR|Test|E|Lead 13451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013452|113452|989898|1|9999013452|MR|Test|E|Lead 13452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013453|113453|989898|1|9999013453|MR|Test|E|Lead 13453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013454|113454|989898|1|9999013454|MR|Test|E|Lead 13454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013455|113455|989898|1|9999013455|MR|Test|E|Lead 13455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013456|113456|989898|1|9999013456|MR|Test|E|Lead 13456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013457|113457|989898|1|9999013457|MR|Test|E|Lead 13457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013458|113458|989898|1|9999013458|MR|Test|E|Lead 13458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013459|113459|989898|1|9999013459|MR|Test|E|Lead 13459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013460|113460|989898|1|9999013460|MR|Test|E|Lead 13460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013461|113461|989898|1|9999013461|MR|Test|E|Lead 13461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013462|113462|989898|1|9999013462|MR|Test|E|Lead 13462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013463|113463|989898|1|9999013463|MR|Test|E|Lead 13463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013464|113464|989898|1|9999013464|MR|Test|E|Lead 13464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013465|113465|989898|1|9999013465|MR|Test|E|Lead 13465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013466|113466|989898|1|9999013466|MR|Test|E|Lead 13466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013467|113467|989898|1|9999013467|MR|Test|E|Lead 13467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013468|113468|989898|1|9999013468|MR|Test|E|Lead 13468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013469|113469|989898|1|9999013469|MR|Test|E|Lead 13469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013470|113470|989898|1|9999013470|MR|Test|E|Lead 13470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013471|113471|989898|1|9999013471|MR|Test|E|Lead 13471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013472|113472|989898|1|9999013472|MR|Test|E|Lead 13472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013473|113473|989898|1|9999013473|MR|Test|E|Lead 13473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013474|113474|989898|1|9999013474|MR|Test|E|Lead 13474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013475|113475|989898|1|9999013475|MR|Test|E|Lead 13475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013476|113476|989898|1|9999013476|MR|Test|E|Lead 13476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013477|113477|989898|1|9999013477|MR|Test|E|Lead 13477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013478|113478|989898|1|9999013478|MR|Test|E|Lead 13478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013479|113479|989898|1|9999013479|MR|Test|E|Lead 13479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013480|113480|989898|1|9999013480|MR|Test|E|Lead 13480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013481|113481|989898|1|9999013481|MR|Test|E|Lead 13481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013482|113482|989898|1|9999013482|MR|Test|E|Lead 13482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013483|113483|989898|1|9999013483|MR|Test|E|Lead 13483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013484|113484|989898|1|9999013484|MR|Test|E|Lead 13484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013485|113485|989898|1|9999013485|MR|Test|E|Lead 13485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013486|113486|989898|1|9999013486|MR|Test|E|Lead 13486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013487|113487|989898|1|9999013487|MR|Test|E|Lead 13487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013488|113488|989898|1|9999013488|MR|Test|E|Lead 13488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013489|113489|989898|1|9999013489|MR|Test|E|Lead 13489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013490|113490|989898|1|9999013490|MR|Test|E|Lead 13490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013491|113491|989898|1|9999013491|MR|Test|E|Lead 13491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013492|113492|989898|1|9999013492|MR|Test|E|Lead 13492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013493|113493|989898|1|9999013493|MR|Test|E|Lead 13493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013494|113494|989898|1|9999013494|MR|Test|E|Lead 13494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013495|113495|989898|1|9999013495|MR|Test|E|Lead 13495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013496|113496|989898|1|9999013496|MR|Test|E|Lead 13496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013497|113497|989898|1|9999013497|MR|Test|E|Lead 13497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013498|113498|989898|1|9999013498|MR|Test|E|Lead 13498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013499|113499|989898|1|9999013499|MR|Test|E|Lead 13499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013500|113500|989898|1|9999013500|MR|Test|E|Lead 13500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013501|113501|989898|1|9999013501|MR|Test|E|Lead 13501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013502|113502|989898|1|9999013502|MR|Test|E|Lead 13502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013503|113503|989898|1|9999013503|MR|Test|E|Lead 13503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013504|113504|989898|1|9999013504|MR|Test|E|Lead 13504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013505|113505|989898|1|9999013505|MR|Test|E|Lead 13505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013506|113506|989898|1|9999013506|MR|Test|E|Lead 13506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013507|113507|989898|1|9999013507|MR|Test|E|Lead 13507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013508|113508|989898|1|9999013508|MR|Test|E|Lead 13508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013509|113509|989898|1|9999013509|MR|Test|E|Lead 13509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013510|113510|989898|1|9999013510|MR|Test|E|Lead 13510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013511|113511|989898|1|9999013511|MR|Test|E|Lead 13511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013512|113512|989898|1|9999013512|MR|Test|E|Lead 13512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013513|113513|989898|1|9999013513|MR|Test|E|Lead 13513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013514|113514|989898|1|9999013514|MR|Test|E|Lead 13514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013515|113515|989898|1|9999013515|MR|Test|E|Lead 13515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013516|113516|989898|1|9999013516|MR|Test|E|Lead 13516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013517|113517|989898|1|9999013517|MR|Test|E|Lead 13517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013518|113518|989898|1|9999013518|MR|Test|E|Lead 13518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013519|113519|989898|1|9999013519|MR|Test|E|Lead 13519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013520|113520|989898|1|9999013520|MR|Test|E|Lead 13520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013521|113521|989898|1|9999013521|MR|Test|E|Lead 13521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013522|113522|989898|1|9999013522|MR|Test|E|Lead 13522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013523|113523|989898|1|9999013523|MR|Test|E|Lead 13523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013524|113524|989898|1|9999013524|MR|Test|E|Lead 13524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013525|113525|989898|1|9999013525|MR|Test|E|Lead 13525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013526|113526|989898|1|9999013526|MR|Test|E|Lead 13526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013527|113527|989898|1|9999013527|MR|Test|E|Lead 13527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013528|113528|989898|1|9999013528|MR|Test|E|Lead 13528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013529|113529|989898|1|9999013529|MR|Test|E|Lead 13529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013530|113530|989898|1|9999013530|MR|Test|E|Lead 13530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013531|113531|989898|1|9999013531|MR|Test|E|Lead 13531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013532|113532|989898|1|9999013532|MR|Test|E|Lead 13532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013533|113533|989898|1|9999013533|MR|Test|E|Lead 13533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013534|113534|989898|1|9999013534|MR|Test|E|Lead 13534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013535|113535|989898|1|9999013535|MR|Test|E|Lead 13535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013536|113536|989898|1|9999013536|MR|Test|E|Lead 13536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013537|113537|989898|1|9999013537|MR|Test|E|Lead 13537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013538|113538|989898|1|9999013538|MR|Test|E|Lead 13538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013539|113539|989898|1|9999013539|MR|Test|E|Lead 13539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013540|113540|989898|1|9999013540|MR|Test|E|Lead 13540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013541|113541|989898|1|9999013541|MR|Test|E|Lead 13541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013542|113542|989898|1|9999013542|MR|Test|E|Lead 13542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013543|113543|989898|1|9999013543|MR|Test|E|Lead 13543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013544|113544|989898|1|9999013544|MR|Test|E|Lead 13544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013545|113545|989898|1|9999013545|MR|Test|E|Lead 13545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013546|113546|989898|1|9999013546|MR|Test|E|Lead 13546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013547|113547|989898|1|9999013547|MR|Test|E|Lead 13547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013548|113548|989898|1|9999013548|MR|Test|E|Lead 13548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013549|113549|989898|1|9999013549|MR|Test|E|Lead 13549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013550|113550|989898|1|9999013550|MR|Test|E|Lead 13550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013551|113551|989898|1|9999013551|MR|Test|E|Lead 13551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013552|113552|989898|1|9999013552|MR|Test|E|Lead 13552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013553|113553|989898|1|9999013553|MR|Test|E|Lead 13553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013554|113554|989898|1|9999013554|MR|Test|E|Lead 13554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013555|113555|989898|1|9999013555|MR|Test|E|Lead 13555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013556|113556|989898|1|9999013556|MR|Test|E|Lead 13556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013557|113557|989898|1|9999013557|MR|Test|E|Lead 13557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013558|113558|989898|1|9999013558|MR|Test|E|Lead 13558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013559|113559|989898|1|9999013559|MR|Test|E|Lead 13559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013560|113560|989898|1|9999013560|MR|Test|E|Lead 13560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013561|113561|989898|1|9999013561|MR|Test|E|Lead 13561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013562|113562|989898|1|9999013562|MR|Test|E|Lead 13562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013563|113563|989898|1|9999013563|MR|Test|E|Lead 13563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013564|113564|989898|1|9999013564|MR|Test|E|Lead 13564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013565|113565|989898|1|9999013565|MR|Test|E|Lead 13565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013566|113566|989898|1|9999013566|MR|Test|E|Lead 13566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013567|113567|989898|1|9999013567|MR|Test|E|Lead 13567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013568|113568|989898|1|9999013568|MR|Test|E|Lead 13568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013569|113569|989898|1|9999013569|MR|Test|E|Lead 13569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013570|113570|989898|1|9999013570|MR|Test|E|Lead 13570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013571|113571|989898|1|9999013571|MR|Test|E|Lead 13571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013572|113572|989898|1|9999013572|MR|Test|E|Lead 13572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013573|113573|989898|1|9999013573|MR|Test|E|Lead 13573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013574|113574|989898|1|9999013574|MR|Test|E|Lead 13574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013575|113575|989898|1|9999013575|MR|Test|E|Lead 13575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013576|113576|989898|1|9999013576|MR|Test|E|Lead 13576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013577|113577|989898|1|9999013577|MR|Test|E|Lead 13577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013578|113578|989898|1|9999013578|MR|Test|E|Lead 13578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013579|113579|989898|1|9999013579|MR|Test|E|Lead 13579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013580|113580|989898|1|9999013580|MR|Test|E|Lead 13580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013581|113581|989898|1|9999013581|MR|Test|E|Lead 13581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013582|113582|989898|1|9999013582|MR|Test|E|Lead 13582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013583|113583|989898|1|9999013583|MR|Test|E|Lead 13583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013584|113584|989898|1|9999013584|MR|Test|E|Lead 13584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013585|113585|989898|1|9999013585|MR|Test|E|Lead 13585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013586|113586|989898|1|9999013586|MR|Test|E|Lead 13586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013587|113587|989898|1|9999013587|MR|Test|E|Lead 13587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013588|113588|989898|1|9999013588|MR|Test|E|Lead 13588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013589|113589|989898|1|9999013589|MR|Test|E|Lead 13589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013590|113590|989898|1|9999013590|MR|Test|E|Lead 13590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013591|113591|989898|1|9999013591|MR|Test|E|Lead 13591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013592|113592|989898|1|9999013592|MR|Test|E|Lead 13592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013593|113593|989898|1|9999013593|MR|Test|E|Lead 13593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013594|113594|989898|1|9999013594|MR|Test|E|Lead 13594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013595|113595|989898|1|9999013595|MR|Test|E|Lead 13595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013596|113596|989898|1|9999013596|MR|Test|E|Lead 13596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013597|113597|989898|1|9999013597|MR|Test|E|Lead 13597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013598|113598|989898|1|9999013598|MR|Test|E|Lead 13598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013599|113599|989898|1|9999013599|MR|Test|E|Lead 13599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013600|113600|989898|1|9999013600|MR|Test|E|Lead 13600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013601|113601|989898|1|9999013601|MR|Test|E|Lead 13601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013602|113602|989898|1|9999013602|MR|Test|E|Lead 13602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013603|113603|989898|1|9999013603|MR|Test|E|Lead 13603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013604|113604|989898|1|9999013604|MR|Test|E|Lead 13604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013605|113605|989898|1|9999013605|MR|Test|E|Lead 13605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013606|113606|989898|1|9999013606|MR|Test|E|Lead 13606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013607|113607|989898|1|9999013607|MR|Test|E|Lead 13607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013608|113608|989898|1|9999013608|MR|Test|E|Lead 13608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013609|113609|989898|1|9999013609|MR|Test|E|Lead 13609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013610|113610|989898|1|9999013610|MR|Test|E|Lead 13610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013611|113611|989898|1|9999013611|MR|Test|E|Lead 13611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013612|113612|989898|1|9999013612|MR|Test|E|Lead 13612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013613|113613|989898|1|9999013613|MR|Test|E|Lead 13613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013614|113614|989898|1|9999013614|MR|Test|E|Lead 13614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013615|113615|989898|1|9999013615|MR|Test|E|Lead 13615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013616|113616|989898|1|9999013616|MR|Test|E|Lead 13616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013617|113617|989898|1|9999013617|MR|Test|E|Lead 13617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013618|113618|989898|1|9999013618|MR|Test|E|Lead 13618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013619|113619|989898|1|9999013619|MR|Test|E|Lead 13619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013620|113620|989898|1|9999013620|MR|Test|E|Lead 13620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013621|113621|989898|1|9999013621|MR|Test|E|Lead 13621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013622|113622|989898|1|9999013622|MR|Test|E|Lead 13622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013623|113623|989898|1|9999013623|MR|Test|E|Lead 13623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013624|113624|989898|1|9999013624|MR|Test|E|Lead 13624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013625|113625|989898|1|9999013625|MR|Test|E|Lead 13625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013626|113626|989898|1|9999013626|MR|Test|E|Lead 13626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013627|113627|989898|1|9999013627|MR|Test|E|Lead 13627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013628|113628|989898|1|9999013628|MR|Test|E|Lead 13628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013629|113629|989898|1|9999013629|MR|Test|E|Lead 13629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013630|113630|989898|1|9999013630|MR|Test|E|Lead 13630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013631|113631|989898|1|9999013631|MR|Test|E|Lead 13631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013632|113632|989898|1|9999013632|MR|Test|E|Lead 13632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013633|113633|989898|1|9999013633|MR|Test|E|Lead 13633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013634|113634|989898|1|9999013634|MR|Test|E|Lead 13634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013635|113635|989898|1|9999013635|MR|Test|E|Lead 13635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013636|113636|989898|1|9999013636|MR|Test|E|Lead 13636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013637|113637|989898|1|9999013637|MR|Test|E|Lead 13637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013638|113638|989898|1|9999013638|MR|Test|E|Lead 13638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013639|113639|989898|1|9999013639|MR|Test|E|Lead 13639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013640|113640|989898|1|9999013640|MR|Test|E|Lead 13640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013641|113641|989898|1|9999013641|MR|Test|E|Lead 13641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013642|113642|989898|1|9999013642|MR|Test|E|Lead 13642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013643|113643|989898|1|9999013643|MR|Test|E|Lead 13643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013644|113644|989898|1|9999013644|MR|Test|E|Lead 13644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013645|113645|989898|1|9999013645|MR|Test|E|Lead 13645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013646|113646|989898|1|9999013646|MR|Test|E|Lead 13646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013647|113647|989898|1|9999013647|MR|Test|E|Lead 13647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013648|113648|989898|1|9999013648|MR|Test|E|Lead 13648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013649|113649|989898|1|9999013649|MR|Test|E|Lead 13649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013650|113650|989898|1|9999013650|MR|Test|E|Lead 13650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013651|113651|989898|1|9999013651|MR|Test|E|Lead 13651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013652|113652|989898|1|9999013652|MR|Test|E|Lead 13652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013653|113653|989898|1|9999013653|MR|Test|E|Lead 13653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013654|113654|989898|1|9999013654|MR|Test|E|Lead 13654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013655|113655|989898|1|9999013655|MR|Test|E|Lead 13655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013656|113656|989898|1|9999013656|MR|Test|E|Lead 13656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013657|113657|989898|1|9999013657|MR|Test|E|Lead 13657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013658|113658|989898|1|9999013658|MR|Test|E|Lead 13658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013659|113659|989898|1|9999013659|MR|Test|E|Lead 13659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013660|113660|989898|1|9999013660|MR|Test|E|Lead 13660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013661|113661|989898|1|9999013661|MR|Test|E|Lead 13661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013662|113662|989898|1|9999013662|MR|Test|E|Lead 13662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013663|113663|989898|1|9999013663|MR|Test|E|Lead 13663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013664|113664|989898|1|9999013664|MR|Test|E|Lead 13664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013665|113665|989898|1|9999013665|MR|Test|E|Lead 13665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013666|113666|989898|1|9999013666|MR|Test|E|Lead 13666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013667|113667|989898|1|9999013667|MR|Test|E|Lead 13667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013668|113668|989898|1|9999013668|MR|Test|E|Lead 13668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013669|113669|989898|1|9999013669|MR|Test|E|Lead 13669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013670|113670|989898|1|9999013670|MR|Test|E|Lead 13670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013671|113671|989898|1|9999013671|MR|Test|E|Lead 13671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013672|113672|989898|1|9999013672|MR|Test|E|Lead 13672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013673|113673|989898|1|9999013673|MR|Test|E|Lead 13673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013674|113674|989898|1|9999013674|MR|Test|E|Lead 13674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013675|113675|989898|1|9999013675|MR|Test|E|Lead 13675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013676|113676|989898|1|9999013676|MR|Test|E|Lead 13676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013677|113677|989898|1|9999013677|MR|Test|E|Lead 13677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013678|113678|989898|1|9999013678|MR|Test|E|Lead 13678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013679|113679|989898|1|9999013679|MR|Test|E|Lead 13679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013680|113680|989898|1|9999013680|MR|Test|E|Lead 13680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013681|113681|989898|1|9999013681|MR|Test|E|Lead 13681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013682|113682|989898|1|9999013682|MR|Test|E|Lead 13682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013683|113683|989898|1|9999013683|MR|Test|E|Lead 13683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013684|113684|989898|1|9999013684|MR|Test|E|Lead 13684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013685|113685|989898|1|9999013685|MR|Test|E|Lead 13685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013686|113686|989898|1|9999013686|MR|Test|E|Lead 13686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013687|113687|989898|1|9999013687|MR|Test|E|Lead 13687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013688|113688|989898|1|9999013688|MR|Test|E|Lead 13688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013689|113689|989898|1|9999013689|MR|Test|E|Lead 13689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013690|113690|989898|1|9999013690|MR|Test|E|Lead 13690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013691|113691|989898|1|9999013691|MR|Test|E|Lead 13691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013692|113692|989898|1|9999013692|MR|Test|E|Lead 13692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013693|113693|989898|1|9999013693|MR|Test|E|Lead 13693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013694|113694|989898|1|9999013694|MR|Test|E|Lead 13694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013695|113695|989898|1|9999013695|MR|Test|E|Lead 13695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013696|113696|989898|1|9999013696|MR|Test|E|Lead 13696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013697|113697|989898|1|9999013697|MR|Test|E|Lead 13697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013698|113698|989898|1|9999013698|MR|Test|E|Lead 13698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013699|113699|989898|1|9999013699|MR|Test|E|Lead 13699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013700|113700|989898|1|9999013700|MR|Test|E|Lead 13700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013701|113701|989898|1|9999013701|MR|Test|E|Lead 13701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013702|113702|989898|1|9999013702|MR|Test|E|Lead 13702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013703|113703|989898|1|9999013703|MR|Test|E|Lead 13703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013704|113704|989898|1|9999013704|MR|Test|E|Lead 13704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013705|113705|989898|1|9999013705|MR|Test|E|Lead 13705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013706|113706|989898|1|9999013706|MR|Test|E|Lead 13706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013707|113707|989898|1|9999013707|MR|Test|E|Lead 13707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013708|113708|989898|1|9999013708|MR|Test|E|Lead 13708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013709|113709|989898|1|9999013709|MR|Test|E|Lead 13709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013710|113710|989898|1|9999013710|MR|Test|E|Lead 13710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013711|113711|989898|1|9999013711|MR|Test|E|Lead 13711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013712|113712|989898|1|9999013712|MR|Test|E|Lead 13712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013713|113713|989898|1|9999013713|MR|Test|E|Lead 13713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013714|113714|989898|1|9999013714|MR|Test|E|Lead 13714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013715|113715|989898|1|9999013715|MR|Test|E|Lead 13715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013716|113716|989898|1|9999013716|MR|Test|E|Lead 13716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013717|113717|989898|1|9999013717|MR|Test|E|Lead 13717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013718|113718|989898|1|9999013718|MR|Test|E|Lead 13718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013719|113719|989898|1|9999013719|MR|Test|E|Lead 13719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013720|113720|989898|1|9999013720|MR|Test|E|Lead 13720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013721|113721|989898|1|9999013721|MR|Test|E|Lead 13721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013722|113722|989898|1|9999013722|MR|Test|E|Lead 13722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013723|113723|989898|1|9999013723|MR|Test|E|Lead 13723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013724|113724|989898|1|9999013724|MR|Test|E|Lead 13724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013725|113725|989898|1|9999013725|MR|Test|E|Lead 13725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013726|113726|989898|1|9999013726|MR|Test|E|Lead 13726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013727|113727|989898|1|9999013727|MR|Test|E|Lead 13727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013728|113728|989898|1|9999013728|MR|Test|E|Lead 13728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013729|113729|989898|1|9999013729|MR|Test|E|Lead 13729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013730|113730|989898|1|9999013730|MR|Test|E|Lead 13730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013731|113731|989898|1|9999013731|MR|Test|E|Lead 13731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013732|113732|989898|1|9999013732|MR|Test|E|Lead 13732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013733|113733|989898|1|9999013733|MR|Test|E|Lead 13733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013734|113734|989898|1|9999013734|MR|Test|E|Lead 13734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013735|113735|989898|1|9999013735|MR|Test|E|Lead 13735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013736|113736|989898|1|9999013736|MR|Test|E|Lead 13736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013737|113737|989898|1|9999013737|MR|Test|E|Lead 13737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013738|113738|989898|1|9999013738|MR|Test|E|Lead 13738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013739|113739|989898|1|9999013739|MR|Test|E|Lead 13739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013740|113740|989898|1|9999013740|MR|Test|E|Lead 13740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013741|113741|989898|1|9999013741|MR|Test|E|Lead 13741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013742|113742|989898|1|9999013742|MR|Test|E|Lead 13742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013743|113743|989898|1|9999013743|MR|Test|E|Lead 13743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013744|113744|989898|1|9999013744|MR|Test|E|Lead 13744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013745|113745|989898|1|9999013745|MR|Test|E|Lead 13745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013746|113746|989898|1|9999013746|MR|Test|E|Lead 13746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013747|113747|989898|1|9999013747|MR|Test|E|Lead 13747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013748|113748|989898|1|9999013748|MR|Test|E|Lead 13748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013749|113749|989898|1|9999013749|MR|Test|E|Lead 13749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013750|113750|989898|1|9999013750|MR|Test|E|Lead 13750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013751|113751|989898|1|9999013751|MR|Test|E|Lead 13751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013752|113752|989898|1|9999013752|MR|Test|E|Lead 13752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013753|113753|989898|1|9999013753|MR|Test|E|Lead 13753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013754|113754|989898|1|9999013754|MR|Test|E|Lead 13754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013755|113755|989898|1|9999013755|MR|Test|E|Lead 13755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013756|113756|989898|1|9999013756|MR|Test|E|Lead 13756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013757|113757|989898|1|9999013757|MR|Test|E|Lead 13757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013758|113758|989898|1|9999013758|MR|Test|E|Lead 13758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013759|113759|989898|1|9999013759|MR|Test|E|Lead 13759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013760|113760|989898|1|9999013760|MR|Test|E|Lead 13760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013761|113761|989898|1|9999013761|MR|Test|E|Lead 13761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013762|113762|989898|1|9999013762|MR|Test|E|Lead 13762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013763|113763|989898|1|9999013763|MR|Test|E|Lead 13763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013764|113764|989898|1|9999013764|MR|Test|E|Lead 13764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013765|113765|989898|1|9999013765|MR|Test|E|Lead 13765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013766|113766|989898|1|9999013766|MR|Test|E|Lead 13766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013767|113767|989898|1|9999013767|MR|Test|E|Lead 13767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013768|113768|989898|1|9999013768|MR|Test|E|Lead 13768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013769|113769|989898|1|9999013769|MR|Test|E|Lead 13769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013770|113770|989898|1|9999013770|MR|Test|E|Lead 13770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013771|113771|989898|1|9999013771|MR|Test|E|Lead 13771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013772|113772|989898|1|9999013772|MR|Test|E|Lead 13772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013773|113773|989898|1|9999013773|MR|Test|E|Lead 13773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013774|113774|989898|1|9999013774|MR|Test|E|Lead 13774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013775|113775|989898|1|9999013775|MR|Test|E|Lead 13775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013776|113776|989898|1|9999013776|MR|Test|E|Lead 13776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013777|113777|989898|1|9999013777|MR|Test|E|Lead 13777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013778|113778|989898|1|9999013778|MR|Test|E|Lead 13778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013779|113779|989898|1|9999013779|MR|Test|E|Lead 13779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013780|113780|989898|1|9999013780|MR|Test|E|Lead 13780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013781|113781|989898|1|9999013781|MR|Test|E|Lead 13781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013782|113782|989898|1|9999013782|MR|Test|E|Lead 13782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013783|113783|989898|1|9999013783|MR|Test|E|Lead 13783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013784|113784|989898|1|9999013784|MR|Test|E|Lead 13784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013785|113785|989898|1|9999013785|MR|Test|E|Lead 13785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013786|113786|989898|1|9999013786|MR|Test|E|Lead 13786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013787|113787|989898|1|9999013787|MR|Test|E|Lead 13787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013788|113788|989898|1|9999013788|MR|Test|E|Lead 13788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013789|113789|989898|1|9999013789|MR|Test|E|Lead 13789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013790|113790|989898|1|9999013790|MR|Test|E|Lead 13790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013791|113791|989898|1|9999013791|MR|Test|E|Lead 13791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013792|113792|989898|1|9999013792|MR|Test|E|Lead 13792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013793|113793|989898|1|9999013793|MR|Test|E|Lead 13793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013794|113794|989898|1|9999013794|MR|Test|E|Lead 13794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013795|113795|989898|1|9999013795|MR|Test|E|Lead 13795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013796|113796|989898|1|9999013796|MR|Test|E|Lead 13796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013797|113797|989898|1|9999013797|MR|Test|E|Lead 13797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013798|113798|989898|1|9999013798|MR|Test|E|Lead 13798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013799|113799|989898|1|9999013799|MR|Test|E|Lead 13799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013800|113800|989898|1|9999013800|MR|Test|E|Lead 13800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013801|113801|989898|1|9999013801|MR|Test|E|Lead 13801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013802|113802|989898|1|9999013802|MR|Test|E|Lead 13802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013803|113803|989898|1|9999013803|MR|Test|E|Lead 13803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013804|113804|989898|1|9999013804|MR|Test|E|Lead 13804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013805|113805|989898|1|9999013805|MR|Test|E|Lead 13805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013806|113806|989898|1|9999013806|MR|Test|E|Lead 13806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013807|113807|989898|1|9999013807|MR|Test|E|Lead 13807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013808|113808|989898|1|9999013808|MR|Test|E|Lead 13808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013809|113809|989898|1|9999013809|MR|Test|E|Lead 13809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013810|113810|989898|1|9999013810|MR|Test|E|Lead 13810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013811|113811|989898|1|9999013811|MR|Test|E|Lead 13811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013812|113812|989898|1|9999013812|MR|Test|E|Lead 13812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013813|113813|989898|1|9999013813|MR|Test|E|Lead 13813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013814|113814|989898|1|9999013814|MR|Test|E|Lead 13814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013815|113815|989898|1|9999013815|MR|Test|E|Lead 13815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013816|113816|989898|1|9999013816|MR|Test|E|Lead 13816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013817|113817|989898|1|9999013817|MR|Test|E|Lead 13817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013818|113818|989898|1|9999013818|MR|Test|E|Lead 13818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013819|113819|989898|1|9999013819|MR|Test|E|Lead 13819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013820|113820|989898|1|9999013820|MR|Test|E|Lead 13820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013821|113821|989898|1|9999013821|MR|Test|E|Lead 13821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013822|113822|989898|1|9999013822|MR|Test|E|Lead 13822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013823|113823|989898|1|9999013823|MR|Test|E|Lead 13823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013824|113824|989898|1|9999013824|MR|Test|E|Lead 13824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013825|113825|989898|1|9999013825|MR|Test|E|Lead 13825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013826|113826|989898|1|9999013826|MR|Test|E|Lead 13826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013827|113827|989898|1|9999013827|MR|Test|E|Lead 13827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013828|113828|989898|1|9999013828|MR|Test|E|Lead 13828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013829|113829|989898|1|9999013829|MR|Test|E|Lead 13829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013830|113830|989898|1|9999013830|MR|Test|E|Lead 13830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013831|113831|989898|1|9999013831|MR|Test|E|Lead 13831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013832|113832|989898|1|9999013832|MR|Test|E|Lead 13832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013833|113833|989898|1|9999013833|MR|Test|E|Lead 13833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013834|113834|989898|1|9999013834|MR|Test|E|Lead 13834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013835|113835|989898|1|9999013835|MR|Test|E|Lead 13835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013836|113836|989898|1|9999013836|MR|Test|E|Lead 13836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013837|113837|989898|1|9999013837|MR|Test|E|Lead 13837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013838|113838|989898|1|9999013838|MR|Test|E|Lead 13838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013839|113839|989898|1|9999013839|MR|Test|E|Lead 13839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013840|113840|989898|1|9999013840|MR|Test|E|Lead 13840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013841|113841|989898|1|9999013841|MR|Test|E|Lead 13841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013842|113842|989898|1|9999013842|MR|Test|E|Lead 13842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013843|113843|989898|1|9999013843|MR|Test|E|Lead 13843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013844|113844|989898|1|9999013844|MR|Test|E|Lead 13844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013845|113845|989898|1|9999013845|MR|Test|E|Lead 13845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013846|113846|989898|1|9999013846|MR|Test|E|Lead 13846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013847|113847|989898|1|9999013847|MR|Test|E|Lead 13847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013848|113848|989898|1|9999013848|MR|Test|E|Lead 13848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013849|113849|989898|1|9999013849|MR|Test|E|Lead 13849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013850|113850|989898|1|9999013850|MR|Test|E|Lead 13850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013851|113851|989898|1|9999013851|MR|Test|E|Lead 13851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013852|113852|989898|1|9999013852|MR|Test|E|Lead 13852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013853|113853|989898|1|9999013853|MR|Test|E|Lead 13853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013854|113854|989898|1|9999013854|MR|Test|E|Lead 13854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013855|113855|989898|1|9999013855|MR|Test|E|Lead 13855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013856|113856|989898|1|9999013856|MR|Test|E|Lead 13856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013857|113857|989898|1|9999013857|MR|Test|E|Lead 13857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013858|113858|989898|1|9999013858|MR|Test|E|Lead 13858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013859|113859|989898|1|9999013859|MR|Test|E|Lead 13859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013860|113860|989898|1|9999013860|MR|Test|E|Lead 13860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013861|113861|989898|1|9999013861|MR|Test|E|Lead 13861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013862|113862|989898|1|9999013862|MR|Test|E|Lead 13862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013863|113863|989898|1|9999013863|MR|Test|E|Lead 13863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013864|113864|989898|1|9999013864|MR|Test|E|Lead 13864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013865|113865|989898|1|9999013865|MR|Test|E|Lead 13865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013866|113866|989898|1|9999013866|MR|Test|E|Lead 13866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013867|113867|989898|1|9999013867|MR|Test|E|Lead 13867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013868|113868|989898|1|9999013868|MR|Test|E|Lead 13868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013869|113869|989898|1|9999013869|MR|Test|E|Lead 13869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013870|113870|989898|1|9999013870|MR|Test|E|Lead 13870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013871|113871|989898|1|9999013871|MR|Test|E|Lead 13871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013872|113872|989898|1|9999013872|MR|Test|E|Lead 13872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013873|113873|989898|1|9999013873|MR|Test|E|Lead 13873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013874|113874|989898|1|9999013874|MR|Test|E|Lead 13874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013875|113875|989898|1|9999013875|MR|Test|E|Lead 13875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013876|113876|989898|1|9999013876|MR|Test|E|Lead 13876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013877|113877|989898|1|9999013877|MR|Test|E|Lead 13877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013878|113878|989898|1|9999013878|MR|Test|E|Lead 13878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013879|113879|989898|1|9999013879|MR|Test|E|Lead 13879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013880|113880|989898|1|9999013880|MR|Test|E|Lead 13880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013881|113881|989898|1|9999013881|MR|Test|E|Lead 13881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013882|113882|989898|1|9999013882|MR|Test|E|Lead 13882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013883|113883|989898|1|9999013883|MR|Test|E|Lead 13883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013884|113884|989898|1|9999013884|MR|Test|E|Lead 13884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013885|113885|989898|1|9999013885|MR|Test|E|Lead 13885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013886|113886|989898|1|9999013886|MR|Test|E|Lead 13886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013887|113887|989898|1|9999013887|MR|Test|E|Lead 13887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013888|113888|989898|1|9999013888|MR|Test|E|Lead 13888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013889|113889|989898|1|9999013889|MR|Test|E|Lead 13889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013890|113890|989898|1|9999013890|MR|Test|E|Lead 13890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013891|113891|989898|1|9999013891|MR|Test|E|Lead 13891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013892|113892|989898|1|9999013892|MR|Test|E|Lead 13892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013893|113893|989898|1|9999013893|MR|Test|E|Lead 13893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013894|113894|989898|1|9999013894|MR|Test|E|Lead 13894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013895|113895|989898|1|9999013895|MR|Test|E|Lead 13895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013896|113896|989898|1|9999013896|MR|Test|E|Lead 13896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013897|113897|989898|1|9999013897|MR|Test|E|Lead 13897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013898|113898|989898|1|9999013898|MR|Test|E|Lead 13898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013899|113899|989898|1|9999013899|MR|Test|E|Lead 13899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013900|113900|989898|1|9999013900|MR|Test|E|Lead 13900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013901|113901|989898|1|9999013901|MR|Test|E|Lead 13901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013902|113902|989898|1|9999013902|MR|Test|E|Lead 13902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013903|113903|989898|1|9999013903|MR|Test|E|Lead 13903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013904|113904|989898|1|9999013904|MR|Test|E|Lead 13904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013905|113905|989898|1|9999013905|MR|Test|E|Lead 13905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013906|113906|989898|1|9999013906|MR|Test|E|Lead 13906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013907|113907|989898|1|9999013907|MR|Test|E|Lead 13907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013908|113908|989898|1|9999013908|MR|Test|E|Lead 13908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013909|113909|989898|1|9999013909|MR|Test|E|Lead 13909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013910|113910|989898|1|9999013910|MR|Test|E|Lead 13910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013911|113911|989898|1|9999013911|MR|Test|E|Lead 13911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013912|113912|989898|1|9999013912|MR|Test|E|Lead 13912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013913|113913|989898|1|9999013913|MR|Test|E|Lead 13913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013914|113914|989898|1|9999013914|MR|Test|E|Lead 13914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013915|113915|989898|1|9999013915|MR|Test|E|Lead 13915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013916|113916|989898|1|9999013916|MR|Test|E|Lead 13916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013917|113917|989898|1|9999013917|MR|Test|E|Lead 13917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013918|113918|989898|1|9999013918|MR|Test|E|Lead 13918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013919|113919|989898|1|9999013919|MR|Test|E|Lead 13919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013920|113920|989898|1|9999013920|MR|Test|E|Lead 13920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013921|113921|989898|1|9999013921|MR|Test|E|Lead 13921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013922|113922|989898|1|9999013922|MR|Test|E|Lead 13922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013923|113923|989898|1|9999013923|MR|Test|E|Lead 13923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013924|113924|989898|1|9999013924|MR|Test|E|Lead 13924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013925|113925|989898|1|9999013925|MR|Test|E|Lead 13925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013926|113926|989898|1|9999013926|MR|Test|E|Lead 13926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013927|113927|989898|1|9999013927|MR|Test|E|Lead 13927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013928|113928|989898|1|9999013928|MR|Test|E|Lead 13928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013929|113929|989898|1|9999013929|MR|Test|E|Lead 13929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013930|113930|989898|1|9999013930|MR|Test|E|Lead 13930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013931|113931|989898|1|9999013931|MR|Test|E|Lead 13931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013932|113932|989898|1|9999013932|MR|Test|E|Lead 13932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013933|113933|989898|1|9999013933|MR|Test|E|Lead 13933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013934|113934|989898|1|9999013934|MR|Test|E|Lead 13934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013935|113935|989898|1|9999013935|MR|Test|E|Lead 13935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013936|113936|989898|1|9999013936|MR|Test|E|Lead 13936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013937|113937|989898|1|9999013937|MR|Test|E|Lead 13937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013938|113938|989898|1|9999013938|MR|Test|E|Lead 13938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013939|113939|989898|1|9999013939|MR|Test|E|Lead 13939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013940|113940|989898|1|9999013940|MR|Test|E|Lead 13940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013941|113941|989898|1|9999013941|MR|Test|E|Lead 13941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013942|113942|989898|1|9999013942|MR|Test|E|Lead 13942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013943|113943|989898|1|9999013943|MR|Test|E|Lead 13943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013944|113944|989898|1|9999013944|MR|Test|E|Lead 13944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013945|113945|989898|1|9999013945|MR|Test|E|Lead 13945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013946|113946|989898|1|9999013946|MR|Test|E|Lead 13946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013947|113947|989898|1|9999013947|MR|Test|E|Lead 13947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013948|113948|989898|1|9999013948|MR|Test|E|Lead 13948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013949|113949|989898|1|9999013949|MR|Test|E|Lead 13949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013950|113950|989898|1|9999013950|MR|Test|E|Lead 13950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013951|113951|989898|1|9999013951|MR|Test|E|Lead 13951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013952|113952|989898|1|9999013952|MR|Test|E|Lead 13952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013953|113953|989898|1|9999013953|MR|Test|E|Lead 13953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013954|113954|989898|1|9999013954|MR|Test|E|Lead 13954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013955|113955|989898|1|9999013955|MR|Test|E|Lead 13955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013956|113956|989898|1|9999013956|MR|Test|E|Lead 13956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013957|113957|989898|1|9999013957|MR|Test|E|Lead 13957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013958|113958|989898|1|9999013958|MR|Test|E|Lead 13958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013959|113959|989898|1|9999013959|MR|Test|E|Lead 13959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013960|113960|989898|1|9999013960|MR|Test|E|Lead 13960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013961|113961|989898|1|9999013961|MR|Test|E|Lead 13961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013962|113962|989898|1|9999013962|MR|Test|E|Lead 13962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013963|113963|989898|1|9999013963|MR|Test|E|Lead 13963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013964|113964|989898|1|9999013964|MR|Test|E|Lead 13964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013965|113965|989898|1|9999013965|MR|Test|E|Lead 13965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013966|113966|989898|1|9999013966|MR|Test|E|Lead 13966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013967|113967|989898|1|9999013967|MR|Test|E|Lead 13967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013968|113968|989898|1|9999013968|MR|Test|E|Lead 13968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013969|113969|989898|1|9999013969|MR|Test|E|Lead 13969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013970|113970|989898|1|9999013970|MR|Test|E|Lead 13970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013971|113971|989898|1|9999013971|MR|Test|E|Lead 13971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013972|113972|989898|1|9999013972|MR|Test|E|Lead 13972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013973|113973|989898|1|9999013973|MR|Test|E|Lead 13973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013974|113974|989898|1|9999013974|MR|Test|E|Lead 13974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013975|113975|989898|1|9999013975|MR|Test|E|Lead 13975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013976|113976|989898|1|9999013976|MR|Test|E|Lead 13976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013977|113977|989898|1|9999013977|MR|Test|E|Lead 13977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013978|113978|989898|1|9999013978|MR|Test|E|Lead 13978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013979|113979|989898|1|9999013979|MR|Test|E|Lead 13979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013980|113980|989898|1|9999013980|MR|Test|E|Lead 13980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013981|113981|989898|1|9999013981|MR|Test|E|Lead 13981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013982|113982|989898|1|9999013982|MR|Test|E|Lead 13982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013983|113983|989898|1|9999013983|MR|Test|E|Lead 13983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013984|113984|989898|1|9999013984|MR|Test|E|Lead 13984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013985|113985|989898|1|9999013985|MR|Test|E|Lead 13985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013986|113986|989898|1|9999013986|MR|Test|E|Lead 13986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013987|113987|989898|1|9999013987|MR|Test|E|Lead 13987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013988|113988|989898|1|9999013988|MR|Test|E|Lead 13988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013989|113989|989898|1|9999013989|MR|Test|E|Lead 13989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013990|113990|989898|1|9999013990|MR|Test|E|Lead 13990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013991|113991|989898|1|9999013991|MR|Test|E|Lead 13991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013992|113992|989898|1|9999013992|MR|Test|E|Lead 13992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013993|113993|989898|1|9999013993|MR|Test|E|Lead 13993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013994|113994|989898|1|9999013994|MR|Test|E|Lead 13994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013995|113995|989898|1|9999013995|MR|Test|E|Lead 13995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013996|113996|989898|1|9999013996|MR|Test|E|Lead 13996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013997|113997|989898|1|9999013997|MR|Test|E|Lead 13997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013998|113998|989898|1|9999013998|MR|Test|E|Lead 13998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1013999|113999|989898|1|9999013999|MR|Test|E|Lead 13999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014000|114000|989898|1|9999014000|MR|Test|E|Lead 14000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014001|114001|989898|1|9999014001|MR|Test|E|Lead 14001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014002|114002|989898|1|9999014002|MR|Test|E|Lead 14002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014003|114003|989898|1|9999014003|MR|Test|E|Lead 14003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014004|114004|989898|1|9999014004|MR|Test|E|Lead 14004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014005|114005|989898|1|9999014005|MR|Test|E|Lead 14005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014006|114006|989898|1|9999014006|MR|Test|E|Lead 14006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014007|114007|989898|1|9999014007|MR|Test|E|Lead 14007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014008|114008|989898|1|9999014008|MR|Test|E|Lead 14008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014009|114009|989898|1|9999014009|MR|Test|E|Lead 14009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014010|114010|989898|1|9999014010|MR|Test|E|Lead 14010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014011|114011|989898|1|9999014011|MR|Test|E|Lead 14011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014012|114012|989898|1|9999014012|MR|Test|E|Lead 14012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014013|114013|989898|1|9999014013|MR|Test|E|Lead 14013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014014|114014|989898|1|9999014014|MR|Test|E|Lead 14014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014015|114015|989898|1|9999014015|MR|Test|E|Lead 14015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014016|114016|989898|1|9999014016|MR|Test|E|Lead 14016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014017|114017|989898|1|9999014017|MR|Test|E|Lead 14017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014018|114018|989898|1|9999014018|MR|Test|E|Lead 14018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014019|114019|989898|1|9999014019|MR|Test|E|Lead 14019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014020|114020|989898|1|9999014020|MR|Test|E|Lead 14020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014021|114021|989898|1|9999014021|MR|Test|E|Lead 14021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014022|114022|989898|1|9999014022|MR|Test|E|Lead 14022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014023|114023|989898|1|9999014023|MR|Test|E|Lead 14023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014024|114024|989898|1|9999014024|MR|Test|E|Lead 14024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014025|114025|989898|1|9999014025|MR|Test|E|Lead 14025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014026|114026|989898|1|9999014026|MR|Test|E|Lead 14026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014027|114027|989898|1|9999014027|MR|Test|E|Lead 14027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014028|114028|989898|1|9999014028|MR|Test|E|Lead 14028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014029|114029|989898|1|9999014029|MR|Test|E|Lead 14029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014030|114030|989898|1|9999014030|MR|Test|E|Lead 14030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014031|114031|989898|1|9999014031|MR|Test|E|Lead 14031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014032|114032|989898|1|9999014032|MR|Test|E|Lead 14032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014033|114033|989898|1|9999014033|MR|Test|E|Lead 14033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014034|114034|989898|1|9999014034|MR|Test|E|Lead 14034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014035|114035|989898|1|9999014035|MR|Test|E|Lead 14035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014036|114036|989898|1|9999014036|MR|Test|E|Lead 14036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014037|114037|989898|1|9999014037|MR|Test|E|Lead 14037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014038|114038|989898|1|9999014038|MR|Test|E|Lead 14038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014039|114039|989898|1|9999014039|MR|Test|E|Lead 14039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014040|114040|989898|1|9999014040|MR|Test|E|Lead 14040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014041|114041|989898|1|9999014041|MR|Test|E|Lead 14041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014042|114042|989898|1|9999014042|MR|Test|E|Lead 14042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014043|114043|989898|1|9999014043|MR|Test|E|Lead 14043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014044|114044|989898|1|9999014044|MR|Test|E|Lead 14044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014045|114045|989898|1|9999014045|MR|Test|E|Lead 14045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014046|114046|989898|1|9999014046|MR|Test|E|Lead 14046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014047|114047|989898|1|9999014047|MR|Test|E|Lead 14047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014048|114048|989898|1|9999014048|MR|Test|E|Lead 14048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014049|114049|989898|1|9999014049|MR|Test|E|Lead 14049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014050|114050|989898|1|9999014050|MR|Test|E|Lead 14050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014051|114051|989898|1|9999014051|MR|Test|E|Lead 14051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014052|114052|989898|1|9999014052|MR|Test|E|Lead 14052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014053|114053|989898|1|9999014053|MR|Test|E|Lead 14053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014054|114054|989898|1|9999014054|MR|Test|E|Lead 14054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014055|114055|989898|1|9999014055|MR|Test|E|Lead 14055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014056|114056|989898|1|9999014056|MR|Test|E|Lead 14056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014057|114057|989898|1|9999014057|MR|Test|E|Lead 14057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014058|114058|989898|1|9999014058|MR|Test|E|Lead 14058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014059|114059|989898|1|9999014059|MR|Test|E|Lead 14059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014060|114060|989898|1|9999014060|MR|Test|E|Lead 14060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014061|114061|989898|1|9999014061|MR|Test|E|Lead 14061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014062|114062|989898|1|9999014062|MR|Test|E|Lead 14062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014063|114063|989898|1|9999014063|MR|Test|E|Lead 14063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014064|114064|989898|1|9999014064|MR|Test|E|Lead 14064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014065|114065|989898|1|9999014065|MR|Test|E|Lead 14065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014066|114066|989898|1|9999014066|MR|Test|E|Lead 14066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014067|114067|989898|1|9999014067|MR|Test|E|Lead 14067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014068|114068|989898|1|9999014068|MR|Test|E|Lead 14068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014069|114069|989898|1|9999014069|MR|Test|E|Lead 14069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014070|114070|989898|1|9999014070|MR|Test|E|Lead 14070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014071|114071|989898|1|9999014071|MR|Test|E|Lead 14071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014072|114072|989898|1|9999014072|MR|Test|E|Lead 14072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014073|114073|989898|1|9999014073|MR|Test|E|Lead 14073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014074|114074|989898|1|9999014074|MR|Test|E|Lead 14074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014075|114075|989898|1|9999014075|MR|Test|E|Lead 14075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014076|114076|989898|1|9999014076|MR|Test|E|Lead 14076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014077|114077|989898|1|9999014077|MR|Test|E|Lead 14077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014078|114078|989898|1|9999014078|MR|Test|E|Lead 14078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014079|114079|989898|1|9999014079|MR|Test|E|Lead 14079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014080|114080|989898|1|9999014080|MR|Test|E|Lead 14080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014081|114081|989898|1|9999014081|MR|Test|E|Lead 14081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014082|114082|989898|1|9999014082|MR|Test|E|Lead 14082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014083|114083|989898|1|9999014083|MR|Test|E|Lead 14083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014084|114084|989898|1|9999014084|MR|Test|E|Lead 14084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014085|114085|989898|1|9999014085|MR|Test|E|Lead 14085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014086|114086|989898|1|9999014086|MR|Test|E|Lead 14086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014087|114087|989898|1|9999014087|MR|Test|E|Lead 14087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014088|114088|989898|1|9999014088|MR|Test|E|Lead 14088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014089|114089|989898|1|9999014089|MR|Test|E|Lead 14089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014090|114090|989898|1|9999014090|MR|Test|E|Lead 14090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014091|114091|989898|1|9999014091|MR|Test|E|Lead 14091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014092|114092|989898|1|9999014092|MR|Test|E|Lead 14092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014093|114093|989898|1|9999014093|MR|Test|E|Lead 14093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014094|114094|989898|1|9999014094|MR|Test|E|Lead 14094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014095|114095|989898|1|9999014095|MR|Test|E|Lead 14095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014096|114096|989898|1|9999014096|MR|Test|E|Lead 14096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014097|114097|989898|1|9999014097|MR|Test|E|Lead 14097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014098|114098|989898|1|9999014098|MR|Test|E|Lead 14098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014099|114099|989898|1|9999014099|MR|Test|E|Lead 14099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014100|114100|989898|1|9999014100|MR|Test|E|Lead 14100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014101|114101|989898|1|9999014101|MR|Test|E|Lead 14101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014102|114102|989898|1|9999014102|MR|Test|E|Lead 14102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014103|114103|989898|1|9999014103|MR|Test|E|Lead 14103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014104|114104|989898|1|9999014104|MR|Test|E|Lead 14104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014105|114105|989898|1|9999014105|MR|Test|E|Lead 14105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014106|114106|989898|1|9999014106|MR|Test|E|Lead 14106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014107|114107|989898|1|9999014107|MR|Test|E|Lead 14107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014108|114108|989898|1|9999014108|MR|Test|E|Lead 14108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014109|114109|989898|1|9999014109|MR|Test|E|Lead 14109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014110|114110|989898|1|9999014110|MR|Test|E|Lead 14110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014111|114111|989898|1|9999014111|MR|Test|E|Lead 14111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014112|114112|989898|1|9999014112|MR|Test|E|Lead 14112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014113|114113|989898|1|9999014113|MR|Test|E|Lead 14113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014114|114114|989898|1|9999014114|MR|Test|E|Lead 14114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014115|114115|989898|1|9999014115|MR|Test|E|Lead 14115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014116|114116|989898|1|9999014116|MR|Test|E|Lead 14116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014117|114117|989898|1|9999014117|MR|Test|E|Lead 14117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014118|114118|989898|1|9999014118|MR|Test|E|Lead 14118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014119|114119|989898|1|9999014119|MR|Test|E|Lead 14119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014120|114120|989898|1|9999014120|MR|Test|E|Lead 14120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014121|114121|989898|1|9999014121|MR|Test|E|Lead 14121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014122|114122|989898|1|9999014122|MR|Test|E|Lead 14122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014123|114123|989898|1|9999014123|MR|Test|E|Lead 14123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014124|114124|989898|1|9999014124|MR|Test|E|Lead 14124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014125|114125|989898|1|9999014125|MR|Test|E|Lead 14125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014126|114126|989898|1|9999014126|MR|Test|E|Lead 14126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014127|114127|989898|1|9999014127|MR|Test|E|Lead 14127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014128|114128|989898|1|9999014128|MR|Test|E|Lead 14128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014129|114129|989898|1|9999014129|MR|Test|E|Lead 14129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014130|114130|989898|1|9999014130|MR|Test|E|Lead 14130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014131|114131|989898|1|9999014131|MR|Test|E|Lead 14131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014132|114132|989898|1|9999014132|MR|Test|E|Lead 14132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014133|114133|989898|1|9999014133|MR|Test|E|Lead 14133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014134|114134|989898|1|9999014134|MR|Test|E|Lead 14134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014135|114135|989898|1|9999014135|MR|Test|E|Lead 14135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014136|114136|989898|1|9999014136|MR|Test|E|Lead 14136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014137|114137|989898|1|9999014137|MR|Test|E|Lead 14137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014138|114138|989898|1|9999014138|MR|Test|E|Lead 14138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014139|114139|989898|1|9999014139|MR|Test|E|Lead 14139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014140|114140|989898|1|9999014140|MR|Test|E|Lead 14140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014141|114141|989898|1|9999014141|MR|Test|E|Lead 14141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014142|114142|989898|1|9999014142|MR|Test|E|Lead 14142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014143|114143|989898|1|9999014143|MR|Test|E|Lead 14143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014144|114144|989898|1|9999014144|MR|Test|E|Lead 14144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014145|114145|989898|1|9999014145|MR|Test|E|Lead 14145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014146|114146|989898|1|9999014146|MR|Test|E|Lead 14146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014147|114147|989898|1|9999014147|MR|Test|E|Lead 14147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014148|114148|989898|1|9999014148|MR|Test|E|Lead 14148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014149|114149|989898|1|9999014149|MR|Test|E|Lead 14149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014150|114150|989898|1|9999014150|MR|Test|E|Lead 14150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014151|114151|989898|1|9999014151|MR|Test|E|Lead 14151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014152|114152|989898|1|9999014152|MR|Test|E|Lead 14152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014153|114153|989898|1|9999014153|MR|Test|E|Lead 14153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014154|114154|989898|1|9999014154|MR|Test|E|Lead 14154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014155|114155|989898|1|9999014155|MR|Test|E|Lead 14155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014156|114156|989898|1|9999014156|MR|Test|E|Lead 14156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014157|114157|989898|1|9999014157|MR|Test|E|Lead 14157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014158|114158|989898|1|9999014158|MR|Test|E|Lead 14158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014159|114159|989898|1|9999014159|MR|Test|E|Lead 14159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014160|114160|989898|1|9999014160|MR|Test|E|Lead 14160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014161|114161|989898|1|9999014161|MR|Test|E|Lead 14161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014162|114162|989898|1|9999014162|MR|Test|E|Lead 14162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014163|114163|989898|1|9999014163|MR|Test|E|Lead 14163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014164|114164|989898|1|9999014164|MR|Test|E|Lead 14164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014165|114165|989898|1|9999014165|MR|Test|E|Lead 14165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014166|114166|989898|1|9999014166|MR|Test|E|Lead 14166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014167|114167|989898|1|9999014167|MR|Test|E|Lead 14167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014168|114168|989898|1|9999014168|MR|Test|E|Lead 14168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014169|114169|989898|1|9999014169|MR|Test|E|Lead 14169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014170|114170|989898|1|9999014170|MR|Test|E|Lead 14170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014171|114171|989898|1|9999014171|MR|Test|E|Lead 14171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014172|114172|989898|1|9999014172|MR|Test|E|Lead 14172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014173|114173|989898|1|9999014173|MR|Test|E|Lead 14173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014174|114174|989898|1|9999014174|MR|Test|E|Lead 14174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014175|114175|989898|1|9999014175|MR|Test|E|Lead 14175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014176|114176|989898|1|9999014176|MR|Test|E|Lead 14176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014177|114177|989898|1|9999014177|MR|Test|E|Lead 14177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014178|114178|989898|1|9999014178|MR|Test|E|Lead 14178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014179|114179|989898|1|9999014179|MR|Test|E|Lead 14179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014180|114180|989898|1|9999014180|MR|Test|E|Lead 14180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014181|114181|989898|1|9999014181|MR|Test|E|Lead 14181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014182|114182|989898|1|9999014182|MR|Test|E|Lead 14182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014183|114183|989898|1|9999014183|MR|Test|E|Lead 14183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014184|114184|989898|1|9999014184|MR|Test|E|Lead 14184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014185|114185|989898|1|9999014185|MR|Test|E|Lead 14185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014186|114186|989898|1|9999014186|MR|Test|E|Lead 14186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014187|114187|989898|1|9999014187|MR|Test|E|Lead 14187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014188|114188|989898|1|9999014188|MR|Test|E|Lead 14188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014189|114189|989898|1|9999014189|MR|Test|E|Lead 14189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014190|114190|989898|1|9999014190|MR|Test|E|Lead 14190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014191|114191|989898|1|9999014191|MR|Test|E|Lead 14191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014192|114192|989898|1|9999014192|MR|Test|E|Lead 14192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014193|114193|989898|1|9999014193|MR|Test|E|Lead 14193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014194|114194|989898|1|9999014194|MR|Test|E|Lead 14194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014195|114195|989898|1|9999014195|MR|Test|E|Lead 14195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014196|114196|989898|1|9999014196|MR|Test|E|Lead 14196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014197|114197|989898|1|9999014197|MR|Test|E|Lead 14197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014198|114198|989898|1|9999014198|MR|Test|E|Lead 14198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014199|114199|989898|1|9999014199|MR|Test|E|Lead 14199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014200|114200|989898|1|9999014200|MR|Test|E|Lead 14200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014201|114201|989898|1|9999014201|MR|Test|E|Lead 14201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014202|114202|989898|1|9999014202|MR|Test|E|Lead 14202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014203|114203|989898|1|9999014203|MR|Test|E|Lead 14203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014204|114204|989898|1|9999014204|MR|Test|E|Lead 14204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014205|114205|989898|1|9999014205|MR|Test|E|Lead 14205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014206|114206|989898|1|9999014206|MR|Test|E|Lead 14206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014207|114207|989898|1|9999014207|MR|Test|E|Lead 14207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014208|114208|989898|1|9999014208|MR|Test|E|Lead 14208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014209|114209|989898|1|9999014209|MR|Test|E|Lead 14209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014210|114210|989898|1|9999014210|MR|Test|E|Lead 14210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014211|114211|989898|1|9999014211|MR|Test|E|Lead 14211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014212|114212|989898|1|9999014212|MR|Test|E|Lead 14212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014213|114213|989898|1|9999014213|MR|Test|E|Lead 14213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014214|114214|989898|1|9999014214|MR|Test|E|Lead 14214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014215|114215|989898|1|9999014215|MR|Test|E|Lead 14215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014216|114216|989898|1|9999014216|MR|Test|E|Lead 14216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014217|114217|989898|1|9999014217|MR|Test|E|Lead 14217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014218|114218|989898|1|9999014218|MR|Test|E|Lead 14218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014219|114219|989898|1|9999014219|MR|Test|E|Lead 14219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014220|114220|989898|1|9999014220|MR|Test|E|Lead 14220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014221|114221|989898|1|9999014221|MR|Test|E|Lead 14221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014222|114222|989898|1|9999014222|MR|Test|E|Lead 14222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014223|114223|989898|1|9999014223|MR|Test|E|Lead 14223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014224|114224|989898|1|9999014224|MR|Test|E|Lead 14224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014225|114225|989898|1|9999014225|MR|Test|E|Lead 14225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014226|114226|989898|1|9999014226|MR|Test|E|Lead 14226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014227|114227|989898|1|9999014227|MR|Test|E|Lead 14227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014228|114228|989898|1|9999014228|MR|Test|E|Lead 14228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014229|114229|989898|1|9999014229|MR|Test|E|Lead 14229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014230|114230|989898|1|9999014230|MR|Test|E|Lead 14230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014231|114231|989898|1|9999014231|MR|Test|E|Lead 14231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014232|114232|989898|1|9999014232|MR|Test|E|Lead 14232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014233|114233|989898|1|9999014233|MR|Test|E|Lead 14233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014234|114234|989898|1|9999014234|MR|Test|E|Lead 14234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014235|114235|989898|1|9999014235|MR|Test|E|Lead 14235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014236|114236|989898|1|9999014236|MR|Test|E|Lead 14236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014237|114237|989898|1|9999014237|MR|Test|E|Lead 14237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014238|114238|989898|1|9999014238|MR|Test|E|Lead 14238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014239|114239|989898|1|9999014239|MR|Test|E|Lead 14239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014240|114240|989898|1|9999014240|MR|Test|E|Lead 14240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014241|114241|989898|1|9999014241|MR|Test|E|Lead 14241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014242|114242|989898|1|9999014242|MR|Test|E|Lead 14242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014243|114243|989898|1|9999014243|MR|Test|E|Lead 14243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014244|114244|989898|1|9999014244|MR|Test|E|Lead 14244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014245|114245|989898|1|9999014245|MR|Test|E|Lead 14245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014246|114246|989898|1|9999014246|MR|Test|E|Lead 14246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014247|114247|989898|1|9999014247|MR|Test|E|Lead 14247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014248|114248|989898|1|9999014248|MR|Test|E|Lead 14248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014249|114249|989898|1|9999014249|MR|Test|E|Lead 14249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014250|114250|989898|1|9999014250|MR|Test|E|Lead 14250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014251|114251|989898|1|9999014251|MR|Test|E|Lead 14251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014252|114252|989898|1|9999014252|MR|Test|E|Lead 14252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014253|114253|989898|1|9999014253|MR|Test|E|Lead 14253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014254|114254|989898|1|9999014254|MR|Test|E|Lead 14254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014255|114255|989898|1|9999014255|MR|Test|E|Lead 14255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014256|114256|989898|1|9999014256|MR|Test|E|Lead 14256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014257|114257|989898|1|9999014257|MR|Test|E|Lead 14257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014258|114258|989898|1|9999014258|MR|Test|E|Lead 14258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014259|114259|989898|1|9999014259|MR|Test|E|Lead 14259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014260|114260|989898|1|9999014260|MR|Test|E|Lead 14260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014261|114261|989898|1|9999014261|MR|Test|E|Lead 14261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014262|114262|989898|1|9999014262|MR|Test|E|Lead 14262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014263|114263|989898|1|9999014263|MR|Test|E|Lead 14263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014264|114264|989898|1|9999014264|MR|Test|E|Lead 14264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014265|114265|989898|1|9999014265|MR|Test|E|Lead 14265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014266|114266|989898|1|9999014266|MR|Test|E|Lead 14266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014267|114267|989898|1|9999014267|MR|Test|E|Lead 14267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014268|114268|989898|1|9999014268|MR|Test|E|Lead 14268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014269|114269|989898|1|9999014269|MR|Test|E|Lead 14269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014270|114270|989898|1|9999014270|MR|Test|E|Lead 14270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014271|114271|989898|1|9999014271|MR|Test|E|Lead 14271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014272|114272|989898|1|9999014272|MR|Test|E|Lead 14272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014273|114273|989898|1|9999014273|MR|Test|E|Lead 14273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014274|114274|989898|1|9999014274|MR|Test|E|Lead 14274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014275|114275|989898|1|9999014275|MR|Test|E|Lead 14275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014276|114276|989898|1|9999014276|MR|Test|E|Lead 14276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014277|114277|989898|1|9999014277|MR|Test|E|Lead 14277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014278|114278|989898|1|9999014278|MR|Test|E|Lead 14278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014279|114279|989898|1|9999014279|MR|Test|E|Lead 14279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014280|114280|989898|1|9999014280|MR|Test|E|Lead 14280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014281|114281|989898|1|9999014281|MR|Test|E|Lead 14281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014282|114282|989898|1|9999014282|MR|Test|E|Lead 14282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014283|114283|989898|1|9999014283|MR|Test|E|Lead 14283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014284|114284|989898|1|9999014284|MR|Test|E|Lead 14284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014285|114285|989898|1|9999014285|MR|Test|E|Lead 14285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014286|114286|989898|1|9999014286|MR|Test|E|Lead 14286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014287|114287|989898|1|9999014287|MR|Test|E|Lead 14287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014288|114288|989898|1|9999014288|MR|Test|E|Lead 14288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014289|114289|989898|1|9999014289|MR|Test|E|Lead 14289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014290|114290|989898|1|9999014290|MR|Test|E|Lead 14290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014291|114291|989898|1|9999014291|MR|Test|E|Lead 14291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014292|114292|989898|1|9999014292|MR|Test|E|Lead 14292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014293|114293|989898|1|9999014293|MR|Test|E|Lead 14293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014294|114294|989898|1|9999014294|MR|Test|E|Lead 14294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014295|114295|989898|1|9999014295|MR|Test|E|Lead 14295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014296|114296|989898|1|9999014296|MR|Test|E|Lead 14296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014297|114297|989898|1|9999014297|MR|Test|E|Lead 14297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014298|114298|989898|1|9999014298|MR|Test|E|Lead 14298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014299|114299|989898|1|9999014299|MR|Test|E|Lead 14299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014300|114300|989898|1|9999014300|MR|Test|E|Lead 14300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014301|114301|989898|1|9999014301|MR|Test|E|Lead 14301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014302|114302|989898|1|9999014302|MR|Test|E|Lead 14302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014303|114303|989898|1|9999014303|MR|Test|E|Lead 14303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014304|114304|989898|1|9999014304|MR|Test|E|Lead 14304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014305|114305|989898|1|9999014305|MR|Test|E|Lead 14305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014306|114306|989898|1|9999014306|MR|Test|E|Lead 14306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014307|114307|989898|1|9999014307|MR|Test|E|Lead 14307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014308|114308|989898|1|9999014308|MR|Test|E|Lead 14308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014309|114309|989898|1|9999014309|MR|Test|E|Lead 14309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014310|114310|989898|1|9999014310|MR|Test|E|Lead 14310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014311|114311|989898|1|9999014311|MR|Test|E|Lead 14311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014312|114312|989898|1|9999014312|MR|Test|E|Lead 14312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014313|114313|989898|1|9999014313|MR|Test|E|Lead 14313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014314|114314|989898|1|9999014314|MR|Test|E|Lead 14314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014315|114315|989898|1|9999014315|MR|Test|E|Lead 14315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014316|114316|989898|1|9999014316|MR|Test|E|Lead 14316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014317|114317|989898|1|9999014317|MR|Test|E|Lead 14317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014318|114318|989898|1|9999014318|MR|Test|E|Lead 14318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014319|114319|989898|1|9999014319|MR|Test|E|Lead 14319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014320|114320|989898|1|9999014320|MR|Test|E|Lead 14320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014321|114321|989898|1|9999014321|MR|Test|E|Lead 14321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014322|114322|989898|1|9999014322|MR|Test|E|Lead 14322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014323|114323|989898|1|9999014323|MR|Test|E|Lead 14323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014324|114324|989898|1|9999014324|MR|Test|E|Lead 14324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014325|114325|989898|1|9999014325|MR|Test|E|Lead 14325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014326|114326|989898|1|9999014326|MR|Test|E|Lead 14326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014327|114327|989898|1|9999014327|MR|Test|E|Lead 14327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014328|114328|989898|1|9999014328|MR|Test|E|Lead 14328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014329|114329|989898|1|9999014329|MR|Test|E|Lead 14329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014330|114330|989898|1|9999014330|MR|Test|E|Lead 14330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014331|114331|989898|1|9999014331|MR|Test|E|Lead 14331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014332|114332|989898|1|9999014332|MR|Test|E|Lead 14332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014333|114333|989898|1|9999014333|MR|Test|E|Lead 14333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014334|114334|989898|1|9999014334|MR|Test|E|Lead 14334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014335|114335|989898|1|9999014335|MR|Test|E|Lead 14335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014336|114336|989898|1|9999014336|MR|Test|E|Lead 14336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014337|114337|989898|1|9999014337|MR|Test|E|Lead 14337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014338|114338|989898|1|9999014338|MR|Test|E|Lead 14338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014339|114339|989898|1|9999014339|MR|Test|E|Lead 14339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014340|114340|989898|1|9999014340|MR|Test|E|Lead 14340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014341|114341|989898|1|9999014341|MR|Test|E|Lead 14341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014342|114342|989898|1|9999014342|MR|Test|E|Lead 14342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014343|114343|989898|1|9999014343|MR|Test|E|Lead 14343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014344|114344|989898|1|9999014344|MR|Test|E|Lead 14344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014345|114345|989898|1|9999014345|MR|Test|E|Lead 14345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014346|114346|989898|1|9999014346|MR|Test|E|Lead 14346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014347|114347|989898|1|9999014347|MR|Test|E|Lead 14347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014348|114348|989898|1|9999014348|MR|Test|E|Lead 14348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014349|114349|989898|1|9999014349|MR|Test|E|Lead 14349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014350|114350|989898|1|9999014350|MR|Test|E|Lead 14350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014351|114351|989898|1|9999014351|MR|Test|E|Lead 14351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014352|114352|989898|1|9999014352|MR|Test|E|Lead 14352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014353|114353|989898|1|9999014353|MR|Test|E|Lead 14353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014354|114354|989898|1|9999014354|MR|Test|E|Lead 14354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014355|114355|989898|1|9999014355|MR|Test|E|Lead 14355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014356|114356|989898|1|9999014356|MR|Test|E|Lead 14356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014357|114357|989898|1|9999014357|MR|Test|E|Lead 14357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014358|114358|989898|1|9999014358|MR|Test|E|Lead 14358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014359|114359|989898|1|9999014359|MR|Test|E|Lead 14359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014360|114360|989898|1|9999014360|MR|Test|E|Lead 14360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014361|114361|989898|1|9999014361|MR|Test|E|Lead 14361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014362|114362|989898|1|9999014362|MR|Test|E|Lead 14362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014363|114363|989898|1|9999014363|MR|Test|E|Lead 14363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014364|114364|989898|1|9999014364|MR|Test|E|Lead 14364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014365|114365|989898|1|9999014365|MR|Test|E|Lead 14365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014366|114366|989898|1|9999014366|MR|Test|E|Lead 14366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014367|114367|989898|1|9999014367|MR|Test|E|Lead 14367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014368|114368|989898|1|9999014368|MR|Test|E|Lead 14368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014369|114369|989898|1|9999014369|MR|Test|E|Lead 14369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014370|114370|989898|1|9999014370|MR|Test|E|Lead 14370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014371|114371|989898|1|9999014371|MR|Test|E|Lead 14371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014372|114372|989898|1|9999014372|MR|Test|E|Lead 14372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014373|114373|989898|1|9999014373|MR|Test|E|Lead 14373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014374|114374|989898|1|9999014374|MR|Test|E|Lead 14374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014375|114375|989898|1|9999014375|MR|Test|E|Lead 14375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014376|114376|989898|1|9999014376|MR|Test|E|Lead 14376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014377|114377|989898|1|9999014377|MR|Test|E|Lead 14377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014378|114378|989898|1|9999014378|MR|Test|E|Lead 14378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014379|114379|989898|1|9999014379|MR|Test|E|Lead 14379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014380|114380|989898|1|9999014380|MR|Test|E|Lead 14380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014381|114381|989898|1|9999014381|MR|Test|E|Lead 14381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014382|114382|989898|1|9999014382|MR|Test|E|Lead 14382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014383|114383|989898|1|9999014383|MR|Test|E|Lead 14383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014384|114384|989898|1|9999014384|MR|Test|E|Lead 14384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014385|114385|989898|1|9999014385|MR|Test|E|Lead 14385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014386|114386|989898|1|9999014386|MR|Test|E|Lead 14386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014387|114387|989898|1|9999014387|MR|Test|E|Lead 14387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014388|114388|989898|1|9999014388|MR|Test|E|Lead 14388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014389|114389|989898|1|9999014389|MR|Test|E|Lead 14389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014390|114390|989898|1|9999014390|MR|Test|E|Lead 14390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014391|114391|989898|1|9999014391|MR|Test|E|Lead 14391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014392|114392|989898|1|9999014392|MR|Test|E|Lead 14392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014393|114393|989898|1|9999014393|MR|Test|E|Lead 14393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014394|114394|989898|1|9999014394|MR|Test|E|Lead 14394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014395|114395|989898|1|9999014395|MR|Test|E|Lead 14395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014396|114396|989898|1|9999014396|MR|Test|E|Lead 14396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014397|114397|989898|1|9999014397|MR|Test|E|Lead 14397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014398|114398|989898|1|9999014398|MR|Test|E|Lead 14398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014399|114399|989898|1|9999014399|MR|Test|E|Lead 14399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014400|114400|989898|1|9999014400|MR|Test|E|Lead 14400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014401|114401|989898|1|9999014401|MR|Test|E|Lead 14401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014402|114402|989898|1|9999014402|MR|Test|E|Lead 14402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014403|114403|989898|1|9999014403|MR|Test|E|Lead 14403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014404|114404|989898|1|9999014404|MR|Test|E|Lead 14404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014405|114405|989898|1|9999014405|MR|Test|E|Lead 14405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014406|114406|989898|1|9999014406|MR|Test|E|Lead 14406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014407|114407|989898|1|9999014407|MR|Test|E|Lead 14407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014408|114408|989898|1|9999014408|MR|Test|E|Lead 14408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014409|114409|989898|1|9999014409|MR|Test|E|Lead 14409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014410|114410|989898|1|9999014410|MR|Test|E|Lead 14410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014411|114411|989898|1|9999014411|MR|Test|E|Lead 14411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014412|114412|989898|1|9999014412|MR|Test|E|Lead 14412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014413|114413|989898|1|9999014413|MR|Test|E|Lead 14413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014414|114414|989898|1|9999014414|MR|Test|E|Lead 14414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014415|114415|989898|1|9999014415|MR|Test|E|Lead 14415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014416|114416|989898|1|9999014416|MR|Test|E|Lead 14416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014417|114417|989898|1|9999014417|MR|Test|E|Lead 14417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014418|114418|989898|1|9999014418|MR|Test|E|Lead 14418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014419|114419|989898|1|9999014419|MR|Test|E|Lead 14419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014420|114420|989898|1|9999014420|MR|Test|E|Lead 14420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014421|114421|989898|1|9999014421|MR|Test|E|Lead 14421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014422|114422|989898|1|9999014422|MR|Test|E|Lead 14422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014423|114423|989898|1|9999014423|MR|Test|E|Lead 14423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014424|114424|989898|1|9999014424|MR|Test|E|Lead 14424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014425|114425|989898|1|9999014425|MR|Test|E|Lead 14425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014426|114426|989898|1|9999014426|MR|Test|E|Lead 14426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014427|114427|989898|1|9999014427|MR|Test|E|Lead 14427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014428|114428|989898|1|9999014428|MR|Test|E|Lead 14428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014429|114429|989898|1|9999014429|MR|Test|E|Lead 14429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014430|114430|989898|1|9999014430|MR|Test|E|Lead 14430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014431|114431|989898|1|9999014431|MR|Test|E|Lead 14431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014432|114432|989898|1|9999014432|MR|Test|E|Lead 14432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014433|114433|989898|1|9999014433|MR|Test|E|Lead 14433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014434|114434|989898|1|9999014434|MR|Test|E|Lead 14434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014435|114435|989898|1|9999014435|MR|Test|E|Lead 14435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014436|114436|989898|1|9999014436|MR|Test|E|Lead 14436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014437|114437|989898|1|9999014437|MR|Test|E|Lead 14437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014438|114438|989898|1|9999014438|MR|Test|E|Lead 14438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014439|114439|989898|1|9999014439|MR|Test|E|Lead 14439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014440|114440|989898|1|9999014440|MR|Test|E|Lead 14440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014441|114441|989898|1|9999014441|MR|Test|E|Lead 14441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014442|114442|989898|1|9999014442|MR|Test|E|Lead 14442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014443|114443|989898|1|9999014443|MR|Test|E|Lead 14443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014444|114444|989898|1|9999014444|MR|Test|E|Lead 14444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014445|114445|989898|1|9999014445|MR|Test|E|Lead 14445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014446|114446|989898|1|9999014446|MR|Test|E|Lead 14446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014447|114447|989898|1|9999014447|MR|Test|E|Lead 14447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014448|114448|989898|1|9999014448|MR|Test|E|Lead 14448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014449|114449|989898|1|9999014449|MR|Test|E|Lead 14449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014450|114450|989898|1|9999014450|MR|Test|E|Lead 14450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014451|114451|989898|1|9999014451|MR|Test|E|Lead 14451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014452|114452|989898|1|9999014452|MR|Test|E|Lead 14452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014453|114453|989898|1|9999014453|MR|Test|E|Lead 14453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014454|114454|989898|1|9999014454|MR|Test|E|Lead 14454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014455|114455|989898|1|9999014455|MR|Test|E|Lead 14455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014456|114456|989898|1|9999014456|MR|Test|E|Lead 14456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014457|114457|989898|1|9999014457|MR|Test|E|Lead 14457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014458|114458|989898|1|9999014458|MR|Test|E|Lead 14458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014459|114459|989898|1|9999014459|MR|Test|E|Lead 14459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014460|114460|989898|1|9999014460|MR|Test|E|Lead 14460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014461|114461|989898|1|9999014461|MR|Test|E|Lead 14461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014462|114462|989898|1|9999014462|MR|Test|E|Lead 14462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014463|114463|989898|1|9999014463|MR|Test|E|Lead 14463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014464|114464|989898|1|9999014464|MR|Test|E|Lead 14464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014465|114465|989898|1|9999014465|MR|Test|E|Lead 14465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014466|114466|989898|1|9999014466|MR|Test|E|Lead 14466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014467|114467|989898|1|9999014467|MR|Test|E|Lead 14467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014468|114468|989898|1|9999014468|MR|Test|E|Lead 14468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014469|114469|989898|1|9999014469|MR|Test|E|Lead 14469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014470|114470|989898|1|9999014470|MR|Test|E|Lead 14470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014471|114471|989898|1|9999014471|MR|Test|E|Lead 14471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014472|114472|989898|1|9999014472|MR|Test|E|Lead 14472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014473|114473|989898|1|9999014473|MR|Test|E|Lead 14473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014474|114474|989898|1|9999014474|MR|Test|E|Lead 14474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014475|114475|989898|1|9999014475|MR|Test|E|Lead 14475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014476|114476|989898|1|9999014476|MR|Test|E|Lead 14476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014477|114477|989898|1|9999014477|MR|Test|E|Lead 14477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014478|114478|989898|1|9999014478|MR|Test|E|Lead 14478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014479|114479|989898|1|9999014479|MR|Test|E|Lead 14479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014480|114480|989898|1|9999014480|MR|Test|E|Lead 14480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014481|114481|989898|1|9999014481|MR|Test|E|Lead 14481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014482|114482|989898|1|9999014482|MR|Test|E|Lead 14482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014483|114483|989898|1|9999014483|MR|Test|E|Lead 14483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014484|114484|989898|1|9999014484|MR|Test|E|Lead 14484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014485|114485|989898|1|9999014485|MR|Test|E|Lead 14485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014486|114486|989898|1|9999014486|MR|Test|E|Lead 14486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014487|114487|989898|1|9999014487|MR|Test|E|Lead 14487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014488|114488|989898|1|9999014488|MR|Test|E|Lead 14488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014489|114489|989898|1|9999014489|MR|Test|E|Lead 14489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014490|114490|989898|1|9999014490|MR|Test|E|Lead 14490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014491|114491|989898|1|9999014491|MR|Test|E|Lead 14491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014492|114492|989898|1|9999014492|MR|Test|E|Lead 14492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014493|114493|989898|1|9999014493|MR|Test|E|Lead 14493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014494|114494|989898|1|9999014494|MR|Test|E|Lead 14494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014495|114495|989898|1|9999014495|MR|Test|E|Lead 14495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014496|114496|989898|1|9999014496|MR|Test|E|Lead 14496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014497|114497|989898|1|9999014497|MR|Test|E|Lead 14497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014498|114498|989898|1|9999014498|MR|Test|E|Lead 14498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014499|114499|989898|1|9999014499|MR|Test|E|Lead 14499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014500|114500|989898|1|9999014500|MR|Test|E|Lead 14500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014501|114501|989898|1|9999014501|MR|Test|E|Lead 14501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014502|114502|989898|1|9999014502|MR|Test|E|Lead 14502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014503|114503|989898|1|9999014503|MR|Test|E|Lead 14503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014504|114504|989898|1|9999014504|MR|Test|E|Lead 14504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014505|114505|989898|1|9999014505|MR|Test|E|Lead 14505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014506|114506|989898|1|9999014506|MR|Test|E|Lead 14506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014507|114507|989898|1|9999014507|MR|Test|E|Lead 14507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014508|114508|989898|1|9999014508|MR|Test|E|Lead 14508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014509|114509|989898|1|9999014509|MR|Test|E|Lead 14509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014510|114510|989898|1|9999014510|MR|Test|E|Lead 14510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014511|114511|989898|1|9999014511|MR|Test|E|Lead 14511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014512|114512|989898|1|9999014512|MR|Test|E|Lead 14512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014513|114513|989898|1|9999014513|MR|Test|E|Lead 14513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014514|114514|989898|1|9999014514|MR|Test|E|Lead 14514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014515|114515|989898|1|9999014515|MR|Test|E|Lead 14515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014516|114516|989898|1|9999014516|MR|Test|E|Lead 14516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014517|114517|989898|1|9999014517|MR|Test|E|Lead 14517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014518|114518|989898|1|9999014518|MR|Test|E|Lead 14518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014519|114519|989898|1|9999014519|MR|Test|E|Lead 14519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014520|114520|989898|1|9999014520|MR|Test|E|Lead 14520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014521|114521|989898|1|9999014521|MR|Test|E|Lead 14521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014522|114522|989898|1|9999014522|MR|Test|E|Lead 14522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014523|114523|989898|1|9999014523|MR|Test|E|Lead 14523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014524|114524|989898|1|9999014524|MR|Test|E|Lead 14524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014525|114525|989898|1|9999014525|MR|Test|E|Lead 14525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014526|114526|989898|1|9999014526|MR|Test|E|Lead 14526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014527|114527|989898|1|9999014527|MR|Test|E|Lead 14527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014528|114528|989898|1|9999014528|MR|Test|E|Lead 14528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014529|114529|989898|1|9999014529|MR|Test|E|Lead 14529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014530|114530|989898|1|9999014530|MR|Test|E|Lead 14530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014531|114531|989898|1|9999014531|MR|Test|E|Lead 14531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014532|114532|989898|1|9999014532|MR|Test|E|Lead 14532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014533|114533|989898|1|9999014533|MR|Test|E|Lead 14533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014534|114534|989898|1|9999014534|MR|Test|E|Lead 14534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014535|114535|989898|1|9999014535|MR|Test|E|Lead 14535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014536|114536|989898|1|9999014536|MR|Test|E|Lead 14536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014537|114537|989898|1|9999014537|MR|Test|E|Lead 14537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014538|114538|989898|1|9999014538|MR|Test|E|Lead 14538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014539|114539|989898|1|9999014539|MR|Test|E|Lead 14539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014540|114540|989898|1|9999014540|MR|Test|E|Lead 14540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014541|114541|989898|1|9999014541|MR|Test|E|Lead 14541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014542|114542|989898|1|9999014542|MR|Test|E|Lead 14542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014543|114543|989898|1|9999014543|MR|Test|E|Lead 14543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014544|114544|989898|1|9999014544|MR|Test|E|Lead 14544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014545|114545|989898|1|9999014545|MR|Test|E|Lead 14545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014546|114546|989898|1|9999014546|MR|Test|E|Lead 14546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014547|114547|989898|1|9999014547|MR|Test|E|Lead 14547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014548|114548|989898|1|9999014548|MR|Test|E|Lead 14548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014549|114549|989898|1|9999014549|MR|Test|E|Lead 14549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014550|114550|989898|1|9999014550|MR|Test|E|Lead 14550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014551|114551|989898|1|9999014551|MR|Test|E|Lead 14551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014552|114552|989898|1|9999014552|MR|Test|E|Lead 14552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014553|114553|989898|1|9999014553|MR|Test|E|Lead 14553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014554|114554|989898|1|9999014554|MR|Test|E|Lead 14554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014555|114555|989898|1|9999014555|MR|Test|E|Lead 14555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014556|114556|989898|1|9999014556|MR|Test|E|Lead 14556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014557|114557|989898|1|9999014557|MR|Test|E|Lead 14557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014558|114558|989898|1|9999014558|MR|Test|E|Lead 14558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014559|114559|989898|1|9999014559|MR|Test|E|Lead 14559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014560|114560|989898|1|9999014560|MR|Test|E|Lead 14560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014561|114561|989898|1|9999014561|MR|Test|E|Lead 14561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014562|114562|989898|1|9999014562|MR|Test|E|Lead 14562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014563|114563|989898|1|9999014563|MR|Test|E|Lead 14563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014564|114564|989898|1|9999014564|MR|Test|E|Lead 14564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014565|114565|989898|1|9999014565|MR|Test|E|Lead 14565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014566|114566|989898|1|9999014566|MR|Test|E|Lead 14566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014567|114567|989898|1|9999014567|MR|Test|E|Lead 14567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014568|114568|989898|1|9999014568|MR|Test|E|Lead 14568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014569|114569|989898|1|9999014569|MR|Test|E|Lead 14569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014570|114570|989898|1|9999014570|MR|Test|E|Lead 14570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014571|114571|989898|1|9999014571|MR|Test|E|Lead 14571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014572|114572|989898|1|9999014572|MR|Test|E|Lead 14572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014573|114573|989898|1|9999014573|MR|Test|E|Lead 14573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014574|114574|989898|1|9999014574|MR|Test|E|Lead 14574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014575|114575|989898|1|9999014575|MR|Test|E|Lead 14575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014576|114576|989898|1|9999014576|MR|Test|E|Lead 14576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014577|114577|989898|1|9999014577|MR|Test|E|Lead 14577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014578|114578|989898|1|9999014578|MR|Test|E|Lead 14578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014579|114579|989898|1|9999014579|MR|Test|E|Lead 14579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014580|114580|989898|1|9999014580|MR|Test|E|Lead 14580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014581|114581|989898|1|9999014581|MR|Test|E|Lead 14581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014582|114582|989898|1|9999014582|MR|Test|E|Lead 14582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014583|114583|989898|1|9999014583|MR|Test|E|Lead 14583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014584|114584|989898|1|9999014584|MR|Test|E|Lead 14584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014585|114585|989898|1|9999014585|MR|Test|E|Lead 14585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014586|114586|989898|1|9999014586|MR|Test|E|Lead 14586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014587|114587|989898|1|9999014587|MR|Test|E|Lead 14587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014588|114588|989898|1|9999014588|MR|Test|E|Lead 14588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014589|114589|989898|1|9999014589|MR|Test|E|Lead 14589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014590|114590|989898|1|9999014590|MR|Test|E|Lead 14590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014591|114591|989898|1|9999014591|MR|Test|E|Lead 14591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014592|114592|989898|1|9999014592|MR|Test|E|Lead 14592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014593|114593|989898|1|9999014593|MR|Test|E|Lead 14593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014594|114594|989898|1|9999014594|MR|Test|E|Lead 14594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014595|114595|989898|1|9999014595|MR|Test|E|Lead 14595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014596|114596|989898|1|9999014596|MR|Test|E|Lead 14596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014597|114597|989898|1|9999014597|MR|Test|E|Lead 14597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014598|114598|989898|1|9999014598|MR|Test|E|Lead 14598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014599|114599|989898|1|9999014599|MR|Test|E|Lead 14599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014600|114600|989898|1|9999014600|MR|Test|E|Lead 14600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014601|114601|989898|1|9999014601|MR|Test|E|Lead 14601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014602|114602|989898|1|9999014602|MR|Test|E|Lead 14602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014603|114603|989898|1|9999014603|MR|Test|E|Lead 14603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014604|114604|989898|1|9999014604|MR|Test|E|Lead 14604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014605|114605|989898|1|9999014605|MR|Test|E|Lead 14605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014606|114606|989898|1|9999014606|MR|Test|E|Lead 14606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014607|114607|989898|1|9999014607|MR|Test|E|Lead 14607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014608|114608|989898|1|9999014608|MR|Test|E|Lead 14608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014609|114609|989898|1|9999014609|MR|Test|E|Lead 14609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014610|114610|989898|1|9999014610|MR|Test|E|Lead 14610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014611|114611|989898|1|9999014611|MR|Test|E|Lead 14611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014612|114612|989898|1|9999014612|MR|Test|E|Lead 14612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014613|114613|989898|1|9999014613|MR|Test|E|Lead 14613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014614|114614|989898|1|9999014614|MR|Test|E|Lead 14614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014615|114615|989898|1|9999014615|MR|Test|E|Lead 14615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014616|114616|989898|1|9999014616|MR|Test|E|Lead 14616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014617|114617|989898|1|9999014617|MR|Test|E|Lead 14617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014618|114618|989898|1|9999014618|MR|Test|E|Lead 14618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014619|114619|989898|1|9999014619|MR|Test|E|Lead 14619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014620|114620|989898|1|9999014620|MR|Test|E|Lead 14620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014621|114621|989898|1|9999014621|MR|Test|E|Lead 14621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014622|114622|989898|1|9999014622|MR|Test|E|Lead 14622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014623|114623|989898|1|9999014623|MR|Test|E|Lead 14623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014624|114624|989898|1|9999014624|MR|Test|E|Lead 14624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014625|114625|989898|1|9999014625|MR|Test|E|Lead 14625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014626|114626|989898|1|9999014626|MR|Test|E|Lead 14626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014627|114627|989898|1|9999014627|MR|Test|E|Lead 14627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014628|114628|989898|1|9999014628|MR|Test|E|Lead 14628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014629|114629|989898|1|9999014629|MR|Test|E|Lead 14629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014630|114630|989898|1|9999014630|MR|Test|E|Lead 14630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014631|114631|989898|1|9999014631|MR|Test|E|Lead 14631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014632|114632|989898|1|9999014632|MR|Test|E|Lead 14632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014633|114633|989898|1|9999014633|MR|Test|E|Lead 14633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014634|114634|989898|1|9999014634|MR|Test|E|Lead 14634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014635|114635|989898|1|9999014635|MR|Test|E|Lead 14635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014636|114636|989898|1|9999014636|MR|Test|E|Lead 14636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014637|114637|989898|1|9999014637|MR|Test|E|Lead 14637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014638|114638|989898|1|9999014638|MR|Test|E|Lead 14638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014639|114639|989898|1|9999014639|MR|Test|E|Lead 14639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014640|114640|989898|1|9999014640|MR|Test|E|Lead 14640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014641|114641|989898|1|9999014641|MR|Test|E|Lead 14641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014642|114642|989898|1|9999014642|MR|Test|E|Lead 14642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014643|114643|989898|1|9999014643|MR|Test|E|Lead 14643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014644|114644|989898|1|9999014644|MR|Test|E|Lead 14644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014645|114645|989898|1|9999014645|MR|Test|E|Lead 14645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014646|114646|989898|1|9999014646|MR|Test|E|Lead 14646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014647|114647|989898|1|9999014647|MR|Test|E|Lead 14647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014648|114648|989898|1|9999014648|MR|Test|E|Lead 14648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014649|114649|989898|1|9999014649|MR|Test|E|Lead 14649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014650|114650|989898|1|9999014650|MR|Test|E|Lead 14650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014651|114651|989898|1|9999014651|MR|Test|E|Lead 14651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014652|114652|989898|1|9999014652|MR|Test|E|Lead 14652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014653|114653|989898|1|9999014653|MR|Test|E|Lead 14653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014654|114654|989898|1|9999014654|MR|Test|E|Lead 14654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014655|114655|989898|1|9999014655|MR|Test|E|Lead 14655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014656|114656|989898|1|9999014656|MR|Test|E|Lead 14656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014657|114657|989898|1|9999014657|MR|Test|E|Lead 14657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014658|114658|989898|1|9999014658|MR|Test|E|Lead 14658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014659|114659|989898|1|9999014659|MR|Test|E|Lead 14659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014660|114660|989898|1|9999014660|MR|Test|E|Lead 14660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014661|114661|989898|1|9999014661|MR|Test|E|Lead 14661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014662|114662|989898|1|9999014662|MR|Test|E|Lead 14662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014663|114663|989898|1|9999014663|MR|Test|E|Lead 14663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014664|114664|989898|1|9999014664|MR|Test|E|Lead 14664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014665|114665|989898|1|9999014665|MR|Test|E|Lead 14665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014666|114666|989898|1|9999014666|MR|Test|E|Lead 14666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014667|114667|989898|1|9999014667|MR|Test|E|Lead 14667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014668|114668|989898|1|9999014668|MR|Test|E|Lead 14668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014669|114669|989898|1|9999014669|MR|Test|E|Lead 14669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014670|114670|989898|1|9999014670|MR|Test|E|Lead 14670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014671|114671|989898|1|9999014671|MR|Test|E|Lead 14671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014672|114672|989898|1|9999014672|MR|Test|E|Lead 14672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014673|114673|989898|1|9999014673|MR|Test|E|Lead 14673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014674|114674|989898|1|9999014674|MR|Test|E|Lead 14674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014675|114675|989898|1|9999014675|MR|Test|E|Lead 14675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014676|114676|989898|1|9999014676|MR|Test|E|Lead 14676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014677|114677|989898|1|9999014677|MR|Test|E|Lead 14677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014678|114678|989898|1|9999014678|MR|Test|E|Lead 14678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014679|114679|989898|1|9999014679|MR|Test|E|Lead 14679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014680|114680|989898|1|9999014680|MR|Test|E|Lead 14680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014681|114681|989898|1|9999014681|MR|Test|E|Lead 14681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014682|114682|989898|1|9999014682|MR|Test|E|Lead 14682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014683|114683|989898|1|9999014683|MR|Test|E|Lead 14683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014684|114684|989898|1|9999014684|MR|Test|E|Lead 14684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014685|114685|989898|1|9999014685|MR|Test|E|Lead 14685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014686|114686|989898|1|9999014686|MR|Test|E|Lead 14686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014687|114687|989898|1|9999014687|MR|Test|E|Lead 14687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014688|114688|989898|1|9999014688|MR|Test|E|Lead 14688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014689|114689|989898|1|9999014689|MR|Test|E|Lead 14689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014690|114690|989898|1|9999014690|MR|Test|E|Lead 14690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014691|114691|989898|1|9999014691|MR|Test|E|Lead 14691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014692|114692|989898|1|9999014692|MR|Test|E|Lead 14692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014693|114693|989898|1|9999014693|MR|Test|E|Lead 14693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014694|114694|989898|1|9999014694|MR|Test|E|Lead 14694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014695|114695|989898|1|9999014695|MR|Test|E|Lead 14695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014696|114696|989898|1|9999014696|MR|Test|E|Lead 14696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014697|114697|989898|1|9999014697|MR|Test|E|Lead 14697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014698|114698|989898|1|9999014698|MR|Test|E|Lead 14698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014699|114699|989898|1|9999014699|MR|Test|E|Lead 14699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014700|114700|989898|1|9999014700|MR|Test|E|Lead 14700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014701|114701|989898|1|9999014701|MR|Test|E|Lead 14701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014702|114702|989898|1|9999014702|MR|Test|E|Lead 14702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014703|114703|989898|1|9999014703|MR|Test|E|Lead 14703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014704|114704|989898|1|9999014704|MR|Test|E|Lead 14704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014705|114705|989898|1|9999014705|MR|Test|E|Lead 14705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014706|114706|989898|1|9999014706|MR|Test|E|Lead 14706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014707|114707|989898|1|9999014707|MR|Test|E|Lead 14707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014708|114708|989898|1|9999014708|MR|Test|E|Lead 14708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014709|114709|989898|1|9999014709|MR|Test|E|Lead 14709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014710|114710|989898|1|9999014710|MR|Test|E|Lead 14710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014711|114711|989898|1|9999014711|MR|Test|E|Lead 14711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014712|114712|989898|1|9999014712|MR|Test|E|Lead 14712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014713|114713|989898|1|9999014713|MR|Test|E|Lead 14713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014714|114714|989898|1|9999014714|MR|Test|E|Lead 14714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014715|114715|989898|1|9999014715|MR|Test|E|Lead 14715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014716|114716|989898|1|9999014716|MR|Test|E|Lead 14716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014717|114717|989898|1|9999014717|MR|Test|E|Lead 14717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014718|114718|989898|1|9999014718|MR|Test|E|Lead 14718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014719|114719|989898|1|9999014719|MR|Test|E|Lead 14719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014720|114720|989898|1|9999014720|MR|Test|E|Lead 14720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014721|114721|989898|1|9999014721|MR|Test|E|Lead 14721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014722|114722|989898|1|9999014722|MR|Test|E|Lead 14722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014723|114723|989898|1|9999014723|MR|Test|E|Lead 14723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014724|114724|989898|1|9999014724|MR|Test|E|Lead 14724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014725|114725|989898|1|9999014725|MR|Test|E|Lead 14725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014726|114726|989898|1|9999014726|MR|Test|E|Lead 14726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014727|114727|989898|1|9999014727|MR|Test|E|Lead 14727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014728|114728|989898|1|9999014728|MR|Test|E|Lead 14728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014729|114729|989898|1|9999014729|MR|Test|E|Lead 14729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014730|114730|989898|1|9999014730|MR|Test|E|Lead 14730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014731|114731|989898|1|9999014731|MR|Test|E|Lead 14731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014732|114732|989898|1|9999014732|MR|Test|E|Lead 14732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014733|114733|989898|1|9999014733|MR|Test|E|Lead 14733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014734|114734|989898|1|9999014734|MR|Test|E|Lead 14734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014735|114735|989898|1|9999014735|MR|Test|E|Lead 14735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014736|114736|989898|1|9999014736|MR|Test|E|Lead 14736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014737|114737|989898|1|9999014737|MR|Test|E|Lead 14737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014738|114738|989898|1|9999014738|MR|Test|E|Lead 14738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014739|114739|989898|1|9999014739|MR|Test|E|Lead 14739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014740|114740|989898|1|9999014740|MR|Test|E|Lead 14740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014741|114741|989898|1|9999014741|MR|Test|E|Lead 14741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014742|114742|989898|1|9999014742|MR|Test|E|Lead 14742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014743|114743|989898|1|9999014743|MR|Test|E|Lead 14743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014744|114744|989898|1|9999014744|MR|Test|E|Lead 14744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014745|114745|989898|1|9999014745|MR|Test|E|Lead 14745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014746|114746|989898|1|9999014746|MR|Test|E|Lead 14746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014747|114747|989898|1|9999014747|MR|Test|E|Lead 14747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014748|114748|989898|1|9999014748|MR|Test|E|Lead 14748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014749|114749|989898|1|9999014749|MR|Test|E|Lead 14749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014750|114750|989898|1|9999014750|MR|Test|E|Lead 14750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014751|114751|989898|1|9999014751|MR|Test|E|Lead 14751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014752|114752|989898|1|9999014752|MR|Test|E|Lead 14752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014753|114753|989898|1|9999014753|MR|Test|E|Lead 14753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014754|114754|989898|1|9999014754|MR|Test|E|Lead 14754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014755|114755|989898|1|9999014755|MR|Test|E|Lead 14755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014756|114756|989898|1|9999014756|MR|Test|E|Lead 14756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014757|114757|989898|1|9999014757|MR|Test|E|Lead 14757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014758|114758|989898|1|9999014758|MR|Test|E|Lead 14758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014759|114759|989898|1|9999014759|MR|Test|E|Lead 14759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014760|114760|989898|1|9999014760|MR|Test|E|Lead 14760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014761|114761|989898|1|9999014761|MR|Test|E|Lead 14761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014762|114762|989898|1|9999014762|MR|Test|E|Lead 14762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014763|114763|989898|1|9999014763|MR|Test|E|Lead 14763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014764|114764|989898|1|9999014764|MR|Test|E|Lead 14764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014765|114765|989898|1|9999014765|MR|Test|E|Lead 14765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014766|114766|989898|1|9999014766|MR|Test|E|Lead 14766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014767|114767|989898|1|9999014767|MR|Test|E|Lead 14767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014768|114768|989898|1|9999014768|MR|Test|E|Lead 14768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014769|114769|989898|1|9999014769|MR|Test|E|Lead 14769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014770|114770|989898|1|9999014770|MR|Test|E|Lead 14770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014771|114771|989898|1|9999014771|MR|Test|E|Lead 14771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014772|114772|989898|1|9999014772|MR|Test|E|Lead 14772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014773|114773|989898|1|9999014773|MR|Test|E|Lead 14773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014774|114774|989898|1|9999014774|MR|Test|E|Lead 14774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014775|114775|989898|1|9999014775|MR|Test|E|Lead 14775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014776|114776|989898|1|9999014776|MR|Test|E|Lead 14776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014777|114777|989898|1|9999014777|MR|Test|E|Lead 14777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014778|114778|989898|1|9999014778|MR|Test|E|Lead 14778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014779|114779|989898|1|9999014779|MR|Test|E|Lead 14779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014780|114780|989898|1|9999014780|MR|Test|E|Lead 14780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014781|114781|989898|1|9999014781|MR|Test|E|Lead 14781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014782|114782|989898|1|9999014782|MR|Test|E|Lead 14782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014783|114783|989898|1|9999014783|MR|Test|E|Lead 14783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014784|114784|989898|1|9999014784|MR|Test|E|Lead 14784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014785|114785|989898|1|9999014785|MR|Test|E|Lead 14785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014786|114786|989898|1|9999014786|MR|Test|E|Lead 14786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014787|114787|989898|1|9999014787|MR|Test|E|Lead 14787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014788|114788|989898|1|9999014788|MR|Test|E|Lead 14788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014789|114789|989898|1|9999014789|MR|Test|E|Lead 14789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014790|114790|989898|1|9999014790|MR|Test|E|Lead 14790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014791|114791|989898|1|9999014791|MR|Test|E|Lead 14791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014792|114792|989898|1|9999014792|MR|Test|E|Lead 14792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014793|114793|989898|1|9999014793|MR|Test|E|Lead 14793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014794|114794|989898|1|9999014794|MR|Test|E|Lead 14794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014795|114795|989898|1|9999014795|MR|Test|E|Lead 14795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014796|114796|989898|1|9999014796|MR|Test|E|Lead 14796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014797|114797|989898|1|9999014797|MR|Test|E|Lead 14797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014798|114798|989898|1|9999014798|MR|Test|E|Lead 14798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014799|114799|989898|1|9999014799|MR|Test|E|Lead 14799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014800|114800|989898|1|9999014800|MR|Test|E|Lead 14800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014801|114801|989898|1|9999014801|MR|Test|E|Lead 14801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014802|114802|989898|1|9999014802|MR|Test|E|Lead 14802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014803|114803|989898|1|9999014803|MR|Test|E|Lead 14803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014804|114804|989898|1|9999014804|MR|Test|E|Lead 14804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014805|114805|989898|1|9999014805|MR|Test|E|Lead 14805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014806|114806|989898|1|9999014806|MR|Test|E|Lead 14806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014807|114807|989898|1|9999014807|MR|Test|E|Lead 14807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014808|114808|989898|1|9999014808|MR|Test|E|Lead 14808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014809|114809|989898|1|9999014809|MR|Test|E|Lead 14809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014810|114810|989898|1|9999014810|MR|Test|E|Lead 14810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014811|114811|989898|1|9999014811|MR|Test|E|Lead 14811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014812|114812|989898|1|9999014812|MR|Test|E|Lead 14812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014813|114813|989898|1|9999014813|MR|Test|E|Lead 14813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014814|114814|989898|1|9999014814|MR|Test|E|Lead 14814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014815|114815|989898|1|9999014815|MR|Test|E|Lead 14815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014816|114816|989898|1|9999014816|MR|Test|E|Lead 14816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014817|114817|989898|1|9999014817|MR|Test|E|Lead 14817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014818|114818|989898|1|9999014818|MR|Test|E|Lead 14818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014819|114819|989898|1|9999014819|MR|Test|E|Lead 14819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014820|114820|989898|1|9999014820|MR|Test|E|Lead 14820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014821|114821|989898|1|9999014821|MR|Test|E|Lead 14821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014822|114822|989898|1|9999014822|MR|Test|E|Lead 14822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014823|114823|989898|1|9999014823|MR|Test|E|Lead 14823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014824|114824|989898|1|9999014824|MR|Test|E|Lead 14824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014825|114825|989898|1|9999014825|MR|Test|E|Lead 14825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014826|114826|989898|1|9999014826|MR|Test|E|Lead 14826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014827|114827|989898|1|9999014827|MR|Test|E|Lead 14827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014828|114828|989898|1|9999014828|MR|Test|E|Lead 14828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014829|114829|989898|1|9999014829|MR|Test|E|Lead 14829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014830|114830|989898|1|9999014830|MR|Test|E|Lead 14830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014831|114831|989898|1|9999014831|MR|Test|E|Lead 14831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014832|114832|989898|1|9999014832|MR|Test|E|Lead 14832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014833|114833|989898|1|9999014833|MR|Test|E|Lead 14833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014834|114834|989898|1|9999014834|MR|Test|E|Lead 14834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014835|114835|989898|1|9999014835|MR|Test|E|Lead 14835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014836|114836|989898|1|9999014836|MR|Test|E|Lead 14836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014837|114837|989898|1|9999014837|MR|Test|E|Lead 14837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014838|114838|989898|1|9999014838|MR|Test|E|Lead 14838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014839|114839|989898|1|9999014839|MR|Test|E|Lead 14839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014840|114840|989898|1|9999014840|MR|Test|E|Lead 14840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014841|114841|989898|1|9999014841|MR|Test|E|Lead 14841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014842|114842|989898|1|9999014842|MR|Test|E|Lead 14842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014843|114843|989898|1|9999014843|MR|Test|E|Lead 14843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014844|114844|989898|1|9999014844|MR|Test|E|Lead 14844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014845|114845|989898|1|9999014845|MR|Test|E|Lead 14845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014846|114846|989898|1|9999014846|MR|Test|E|Lead 14846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014847|114847|989898|1|9999014847|MR|Test|E|Lead 14847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014848|114848|989898|1|9999014848|MR|Test|E|Lead 14848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014849|114849|989898|1|9999014849|MR|Test|E|Lead 14849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014850|114850|989898|1|9999014850|MR|Test|E|Lead 14850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014851|114851|989898|1|9999014851|MR|Test|E|Lead 14851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014852|114852|989898|1|9999014852|MR|Test|E|Lead 14852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014853|114853|989898|1|9999014853|MR|Test|E|Lead 14853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014854|114854|989898|1|9999014854|MR|Test|E|Lead 14854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014855|114855|989898|1|9999014855|MR|Test|E|Lead 14855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014856|114856|989898|1|9999014856|MR|Test|E|Lead 14856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014857|114857|989898|1|9999014857|MR|Test|E|Lead 14857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014858|114858|989898|1|9999014858|MR|Test|E|Lead 14858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014859|114859|989898|1|9999014859|MR|Test|E|Lead 14859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014860|114860|989898|1|9999014860|MR|Test|E|Lead 14860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014861|114861|989898|1|9999014861|MR|Test|E|Lead 14861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014862|114862|989898|1|9999014862|MR|Test|E|Lead 14862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014863|114863|989898|1|9999014863|MR|Test|E|Lead 14863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014864|114864|989898|1|9999014864|MR|Test|E|Lead 14864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014865|114865|989898|1|9999014865|MR|Test|E|Lead 14865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014866|114866|989898|1|9999014866|MR|Test|E|Lead 14866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014867|114867|989898|1|9999014867|MR|Test|E|Lead 14867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014868|114868|989898|1|9999014868|MR|Test|E|Lead 14868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014869|114869|989898|1|9999014869|MR|Test|E|Lead 14869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014870|114870|989898|1|9999014870|MR|Test|E|Lead 14870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014871|114871|989898|1|9999014871|MR|Test|E|Lead 14871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014872|114872|989898|1|9999014872|MR|Test|E|Lead 14872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014873|114873|989898|1|9999014873|MR|Test|E|Lead 14873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014874|114874|989898|1|9999014874|MR|Test|E|Lead 14874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014875|114875|989898|1|9999014875|MR|Test|E|Lead 14875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014876|114876|989898|1|9999014876|MR|Test|E|Lead 14876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014877|114877|989898|1|9999014877|MR|Test|E|Lead 14877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014878|114878|989898|1|9999014878|MR|Test|E|Lead 14878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014879|114879|989898|1|9999014879|MR|Test|E|Lead 14879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014880|114880|989898|1|9999014880|MR|Test|E|Lead 14880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014881|114881|989898|1|9999014881|MR|Test|E|Lead 14881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014882|114882|989898|1|9999014882|MR|Test|E|Lead 14882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014883|114883|989898|1|9999014883|MR|Test|E|Lead 14883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014884|114884|989898|1|9999014884|MR|Test|E|Lead 14884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014885|114885|989898|1|9999014885|MR|Test|E|Lead 14885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014886|114886|989898|1|9999014886|MR|Test|E|Lead 14886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014887|114887|989898|1|9999014887|MR|Test|E|Lead 14887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014888|114888|989898|1|9999014888|MR|Test|E|Lead 14888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014889|114889|989898|1|9999014889|MR|Test|E|Lead 14889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014890|114890|989898|1|9999014890|MR|Test|E|Lead 14890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014891|114891|989898|1|9999014891|MR|Test|E|Lead 14891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014892|114892|989898|1|9999014892|MR|Test|E|Lead 14892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014893|114893|989898|1|9999014893|MR|Test|E|Lead 14893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014894|114894|989898|1|9999014894|MR|Test|E|Lead 14894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014895|114895|989898|1|9999014895|MR|Test|E|Lead 14895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014896|114896|989898|1|9999014896|MR|Test|E|Lead 14896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014897|114897|989898|1|9999014897|MR|Test|E|Lead 14897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014898|114898|989898|1|9999014898|MR|Test|E|Lead 14898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014899|114899|989898|1|9999014899|MR|Test|E|Lead 14899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014900|114900|989898|1|9999014900|MR|Test|E|Lead 14900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014901|114901|989898|1|9999014901|MR|Test|E|Lead 14901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014902|114902|989898|1|9999014902|MR|Test|E|Lead 14902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014903|114903|989898|1|9999014903|MR|Test|E|Lead 14903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014904|114904|989898|1|9999014904|MR|Test|E|Lead 14904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014905|114905|989898|1|9999014905|MR|Test|E|Lead 14905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014906|114906|989898|1|9999014906|MR|Test|E|Lead 14906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014907|114907|989898|1|9999014907|MR|Test|E|Lead 14907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014908|114908|989898|1|9999014908|MR|Test|E|Lead 14908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014909|114909|989898|1|9999014909|MR|Test|E|Lead 14909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014910|114910|989898|1|9999014910|MR|Test|E|Lead 14910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014911|114911|989898|1|9999014911|MR|Test|E|Lead 14911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014912|114912|989898|1|9999014912|MR|Test|E|Lead 14912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014913|114913|989898|1|9999014913|MR|Test|E|Lead 14913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014914|114914|989898|1|9999014914|MR|Test|E|Lead 14914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014915|114915|989898|1|9999014915|MR|Test|E|Lead 14915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014916|114916|989898|1|9999014916|MR|Test|E|Lead 14916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014917|114917|989898|1|9999014917|MR|Test|E|Lead 14917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014918|114918|989898|1|9999014918|MR|Test|E|Lead 14918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014919|114919|989898|1|9999014919|MR|Test|E|Lead 14919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014920|114920|989898|1|9999014920|MR|Test|E|Lead 14920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014921|114921|989898|1|9999014921|MR|Test|E|Lead 14921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014922|114922|989898|1|9999014922|MR|Test|E|Lead 14922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014923|114923|989898|1|9999014923|MR|Test|E|Lead 14923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014924|114924|989898|1|9999014924|MR|Test|E|Lead 14924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014925|114925|989898|1|9999014925|MR|Test|E|Lead 14925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014926|114926|989898|1|9999014926|MR|Test|E|Lead 14926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014927|114927|989898|1|9999014927|MR|Test|E|Lead 14927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014928|114928|989898|1|9999014928|MR|Test|E|Lead 14928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014929|114929|989898|1|9999014929|MR|Test|E|Lead 14929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014930|114930|989898|1|9999014930|MR|Test|E|Lead 14930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014931|114931|989898|1|9999014931|MR|Test|E|Lead 14931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014932|114932|989898|1|9999014932|MR|Test|E|Lead 14932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014933|114933|989898|1|9999014933|MR|Test|E|Lead 14933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014934|114934|989898|1|9999014934|MR|Test|E|Lead 14934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014935|114935|989898|1|9999014935|MR|Test|E|Lead 14935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014936|114936|989898|1|9999014936|MR|Test|E|Lead 14936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014937|114937|989898|1|9999014937|MR|Test|E|Lead 14937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014938|114938|989898|1|9999014938|MR|Test|E|Lead 14938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014939|114939|989898|1|9999014939|MR|Test|E|Lead 14939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014940|114940|989898|1|9999014940|MR|Test|E|Lead 14940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014941|114941|989898|1|9999014941|MR|Test|E|Lead 14941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014942|114942|989898|1|9999014942|MR|Test|E|Lead 14942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014943|114943|989898|1|9999014943|MR|Test|E|Lead 14943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014944|114944|989898|1|9999014944|MR|Test|E|Lead 14944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014945|114945|989898|1|9999014945|MR|Test|E|Lead 14945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014946|114946|989898|1|9999014946|MR|Test|E|Lead 14946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014947|114947|989898|1|9999014947|MR|Test|E|Lead 14947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014948|114948|989898|1|9999014948|MR|Test|E|Lead 14948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014949|114949|989898|1|9999014949|MR|Test|E|Lead 14949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014950|114950|989898|1|9999014950|MR|Test|E|Lead 14950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014951|114951|989898|1|9999014951|MR|Test|E|Lead 14951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014952|114952|989898|1|9999014952|MR|Test|E|Lead 14952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014953|114953|989898|1|9999014953|MR|Test|E|Lead 14953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014954|114954|989898|1|9999014954|MR|Test|E|Lead 14954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014955|114955|989898|1|9999014955|MR|Test|E|Lead 14955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014956|114956|989898|1|9999014956|MR|Test|E|Lead 14956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014957|114957|989898|1|9999014957|MR|Test|E|Lead 14957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014958|114958|989898|1|9999014958|MR|Test|E|Lead 14958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014959|114959|989898|1|9999014959|MR|Test|E|Lead 14959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014960|114960|989898|1|9999014960|MR|Test|E|Lead 14960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014961|114961|989898|1|9999014961|MR|Test|E|Lead 14961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014962|114962|989898|1|9999014962|MR|Test|E|Lead 14962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014963|114963|989898|1|9999014963|MR|Test|E|Lead 14963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014964|114964|989898|1|9999014964|MR|Test|E|Lead 14964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014965|114965|989898|1|9999014965|MR|Test|E|Lead 14965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014966|114966|989898|1|9999014966|MR|Test|E|Lead 14966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014967|114967|989898|1|9999014967|MR|Test|E|Lead 14967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014968|114968|989898|1|9999014968|MR|Test|E|Lead 14968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014969|114969|989898|1|9999014969|MR|Test|E|Lead 14969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014970|114970|989898|1|9999014970|MR|Test|E|Lead 14970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014971|114971|989898|1|9999014971|MR|Test|E|Lead 14971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014972|114972|989898|1|9999014972|MR|Test|E|Lead 14972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014973|114973|989898|1|9999014973|MR|Test|E|Lead 14973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014974|114974|989898|1|9999014974|MR|Test|E|Lead 14974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014975|114975|989898|1|9999014975|MR|Test|E|Lead 14975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014976|114976|989898|1|9999014976|MR|Test|E|Lead 14976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014977|114977|989898|1|9999014977|MR|Test|E|Lead 14977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014978|114978|989898|1|9999014978|MR|Test|E|Lead 14978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014979|114979|989898|1|9999014979|MR|Test|E|Lead 14979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014980|114980|989898|1|9999014980|MR|Test|E|Lead 14980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014981|114981|989898|1|9999014981|MR|Test|E|Lead 14981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014982|114982|989898|1|9999014982|MR|Test|E|Lead 14982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014983|114983|989898|1|9999014983|MR|Test|E|Lead 14983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014984|114984|989898|1|9999014984|MR|Test|E|Lead 14984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014985|114985|989898|1|9999014985|MR|Test|E|Lead 14985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014986|114986|989898|1|9999014986|MR|Test|E|Lead 14986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014987|114987|989898|1|9999014987|MR|Test|E|Lead 14987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014988|114988|989898|1|9999014988|MR|Test|E|Lead 14988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014989|114989|989898|1|9999014989|MR|Test|E|Lead 14989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014990|114990|989898|1|9999014990|MR|Test|E|Lead 14990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014991|114991|989898|1|9999014991|MR|Test|E|Lead 14991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014992|114992|989898|1|9999014992|MR|Test|E|Lead 14992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014993|114993|989898|1|9999014993|MR|Test|E|Lead 14993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014994|114994|989898|1|9999014994|MR|Test|E|Lead 14994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014995|114995|989898|1|9999014995|MR|Test|E|Lead 14995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014996|114996|989898|1|9999014996|MR|Test|E|Lead 14996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014997|114997|989898|1|9999014997|MR|Test|E|Lead 14997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014998|114998|989898|1|9999014998|MR|Test|E|Lead 14998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1014999|114999|989898|1|9999014999|MR|Test|E|Lead 14999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015000|115000|989898|1|9999015000|MR|Test|E|Lead 15000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015001|115001|989898|1|9999015001|MR|Test|E|Lead 15001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015002|115002|989898|1|9999015002|MR|Test|E|Lead 15002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015003|115003|989898|1|9999015003|MR|Test|E|Lead 15003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015004|115004|989898|1|9999015004|MR|Test|E|Lead 15004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015005|115005|989898|1|9999015005|MR|Test|E|Lead 15005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015006|115006|989898|1|9999015006|MR|Test|E|Lead 15006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015007|115007|989898|1|9999015007|MR|Test|E|Lead 15007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015008|115008|989898|1|9999015008|MR|Test|E|Lead 15008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015009|115009|989898|1|9999015009|MR|Test|E|Lead 15009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015010|115010|989898|1|9999015010|MR|Test|E|Lead 15010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015011|115011|989898|1|9999015011|MR|Test|E|Lead 15011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015012|115012|989898|1|9999015012|MR|Test|E|Lead 15012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015013|115013|989898|1|9999015013|MR|Test|E|Lead 15013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015014|115014|989898|1|9999015014|MR|Test|E|Lead 15014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015015|115015|989898|1|9999015015|MR|Test|E|Lead 15015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015016|115016|989898|1|9999015016|MR|Test|E|Lead 15016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015017|115017|989898|1|9999015017|MR|Test|E|Lead 15017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015018|115018|989898|1|9999015018|MR|Test|E|Lead 15018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015019|115019|989898|1|9999015019|MR|Test|E|Lead 15019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015020|115020|989898|1|9999015020|MR|Test|E|Lead 15020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015021|115021|989898|1|9999015021|MR|Test|E|Lead 15021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015022|115022|989898|1|9999015022|MR|Test|E|Lead 15022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015023|115023|989898|1|9999015023|MR|Test|E|Lead 15023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015024|115024|989898|1|9999015024|MR|Test|E|Lead 15024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015025|115025|989898|1|9999015025|MR|Test|E|Lead 15025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015026|115026|989898|1|9999015026|MR|Test|E|Lead 15026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015027|115027|989898|1|9999015027|MR|Test|E|Lead 15027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015028|115028|989898|1|9999015028|MR|Test|E|Lead 15028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015029|115029|989898|1|9999015029|MR|Test|E|Lead 15029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015030|115030|989898|1|9999015030|MR|Test|E|Lead 15030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015031|115031|989898|1|9999015031|MR|Test|E|Lead 15031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015032|115032|989898|1|9999015032|MR|Test|E|Lead 15032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015033|115033|989898|1|9999015033|MR|Test|E|Lead 15033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015034|115034|989898|1|9999015034|MR|Test|E|Lead 15034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015035|115035|989898|1|9999015035|MR|Test|E|Lead 15035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015036|115036|989898|1|9999015036|MR|Test|E|Lead 15036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015037|115037|989898|1|9999015037|MR|Test|E|Lead 15037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015038|115038|989898|1|9999015038|MR|Test|E|Lead 15038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015039|115039|989898|1|9999015039|MR|Test|E|Lead 15039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015040|115040|989898|1|9999015040|MR|Test|E|Lead 15040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015041|115041|989898|1|9999015041|MR|Test|E|Lead 15041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015042|115042|989898|1|9999015042|MR|Test|E|Lead 15042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015043|115043|989898|1|9999015043|MR|Test|E|Lead 15043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015044|115044|989898|1|9999015044|MR|Test|E|Lead 15044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015045|115045|989898|1|9999015045|MR|Test|E|Lead 15045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015046|115046|989898|1|9999015046|MR|Test|E|Lead 15046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015047|115047|989898|1|9999015047|MR|Test|E|Lead 15047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015048|115048|989898|1|9999015048|MR|Test|E|Lead 15048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015049|115049|989898|1|9999015049|MR|Test|E|Lead 15049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015050|115050|989898|1|9999015050|MR|Test|E|Lead 15050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015051|115051|989898|1|9999015051|MR|Test|E|Lead 15051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015052|115052|989898|1|9999015052|MR|Test|E|Lead 15052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015053|115053|989898|1|9999015053|MR|Test|E|Lead 15053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015054|115054|989898|1|9999015054|MR|Test|E|Lead 15054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015055|115055|989898|1|9999015055|MR|Test|E|Lead 15055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015056|115056|989898|1|9999015056|MR|Test|E|Lead 15056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015057|115057|989898|1|9999015057|MR|Test|E|Lead 15057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015058|115058|989898|1|9999015058|MR|Test|E|Lead 15058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015059|115059|989898|1|9999015059|MR|Test|E|Lead 15059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015060|115060|989898|1|9999015060|MR|Test|E|Lead 15060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015061|115061|989898|1|9999015061|MR|Test|E|Lead 15061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015062|115062|989898|1|9999015062|MR|Test|E|Lead 15062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015063|115063|989898|1|9999015063|MR|Test|E|Lead 15063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015064|115064|989898|1|9999015064|MR|Test|E|Lead 15064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015065|115065|989898|1|9999015065|MR|Test|E|Lead 15065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015066|115066|989898|1|9999015066|MR|Test|E|Lead 15066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015067|115067|989898|1|9999015067|MR|Test|E|Lead 15067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015068|115068|989898|1|9999015068|MR|Test|E|Lead 15068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015069|115069|989898|1|9999015069|MR|Test|E|Lead 15069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015070|115070|989898|1|9999015070|MR|Test|E|Lead 15070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015071|115071|989898|1|9999015071|MR|Test|E|Lead 15071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015072|115072|989898|1|9999015072|MR|Test|E|Lead 15072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015073|115073|989898|1|9999015073|MR|Test|E|Lead 15073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015074|115074|989898|1|9999015074|MR|Test|E|Lead 15074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015075|115075|989898|1|9999015075|MR|Test|E|Lead 15075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015076|115076|989898|1|9999015076|MR|Test|E|Lead 15076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015077|115077|989898|1|9999015077|MR|Test|E|Lead 15077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015078|115078|989898|1|9999015078|MR|Test|E|Lead 15078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015079|115079|989898|1|9999015079|MR|Test|E|Lead 15079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015080|115080|989898|1|9999015080|MR|Test|E|Lead 15080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015081|115081|989898|1|9999015081|MR|Test|E|Lead 15081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015082|115082|989898|1|9999015082|MR|Test|E|Lead 15082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015083|115083|989898|1|9999015083|MR|Test|E|Lead 15083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015084|115084|989898|1|9999015084|MR|Test|E|Lead 15084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015085|115085|989898|1|9999015085|MR|Test|E|Lead 15085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015086|115086|989898|1|9999015086|MR|Test|E|Lead 15086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015087|115087|989898|1|9999015087|MR|Test|E|Lead 15087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015088|115088|989898|1|9999015088|MR|Test|E|Lead 15088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015089|115089|989898|1|9999015089|MR|Test|E|Lead 15089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015090|115090|989898|1|9999015090|MR|Test|E|Lead 15090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015091|115091|989898|1|9999015091|MR|Test|E|Lead 15091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015092|115092|989898|1|9999015092|MR|Test|E|Lead 15092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015093|115093|989898|1|9999015093|MR|Test|E|Lead 15093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015094|115094|989898|1|9999015094|MR|Test|E|Lead 15094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015095|115095|989898|1|9999015095|MR|Test|E|Lead 15095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015096|115096|989898|1|9999015096|MR|Test|E|Lead 15096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015097|115097|989898|1|9999015097|MR|Test|E|Lead 15097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015098|115098|989898|1|9999015098|MR|Test|E|Lead 15098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015099|115099|989898|1|9999015099|MR|Test|E|Lead 15099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015100|115100|989898|1|9999015100|MR|Test|E|Lead 15100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015101|115101|989898|1|9999015101|MR|Test|E|Lead 15101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015102|115102|989898|1|9999015102|MR|Test|E|Lead 15102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015103|115103|989898|1|9999015103|MR|Test|E|Lead 15103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015104|115104|989898|1|9999015104|MR|Test|E|Lead 15104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015105|115105|989898|1|9999015105|MR|Test|E|Lead 15105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015106|115106|989898|1|9999015106|MR|Test|E|Lead 15106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015107|115107|989898|1|9999015107|MR|Test|E|Lead 15107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015108|115108|989898|1|9999015108|MR|Test|E|Lead 15108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015109|115109|989898|1|9999015109|MR|Test|E|Lead 15109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015110|115110|989898|1|9999015110|MR|Test|E|Lead 15110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015111|115111|989898|1|9999015111|MR|Test|E|Lead 15111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015112|115112|989898|1|9999015112|MR|Test|E|Lead 15112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015113|115113|989898|1|9999015113|MR|Test|E|Lead 15113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015114|115114|989898|1|9999015114|MR|Test|E|Lead 15114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015115|115115|989898|1|9999015115|MR|Test|E|Lead 15115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015116|115116|989898|1|9999015116|MR|Test|E|Lead 15116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015117|115117|989898|1|9999015117|MR|Test|E|Lead 15117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015118|115118|989898|1|9999015118|MR|Test|E|Lead 15118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015119|115119|989898|1|9999015119|MR|Test|E|Lead 15119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015120|115120|989898|1|9999015120|MR|Test|E|Lead 15120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015121|115121|989898|1|9999015121|MR|Test|E|Lead 15121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015122|115122|989898|1|9999015122|MR|Test|E|Lead 15122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015123|115123|989898|1|9999015123|MR|Test|E|Lead 15123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015124|115124|989898|1|9999015124|MR|Test|E|Lead 15124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015125|115125|989898|1|9999015125|MR|Test|E|Lead 15125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015126|115126|989898|1|9999015126|MR|Test|E|Lead 15126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015127|115127|989898|1|9999015127|MR|Test|E|Lead 15127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015128|115128|989898|1|9999015128|MR|Test|E|Lead 15128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015129|115129|989898|1|9999015129|MR|Test|E|Lead 15129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015130|115130|989898|1|9999015130|MR|Test|E|Lead 15130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015131|115131|989898|1|9999015131|MR|Test|E|Lead 15131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015132|115132|989898|1|9999015132|MR|Test|E|Lead 15132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015133|115133|989898|1|9999015133|MR|Test|E|Lead 15133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015134|115134|989898|1|9999015134|MR|Test|E|Lead 15134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015135|115135|989898|1|9999015135|MR|Test|E|Lead 15135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015136|115136|989898|1|9999015136|MR|Test|E|Lead 15136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015137|115137|989898|1|9999015137|MR|Test|E|Lead 15137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015138|115138|989898|1|9999015138|MR|Test|E|Lead 15138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015139|115139|989898|1|9999015139|MR|Test|E|Lead 15139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015140|115140|989898|1|9999015140|MR|Test|E|Lead 15140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015141|115141|989898|1|9999015141|MR|Test|E|Lead 15141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015142|115142|989898|1|9999015142|MR|Test|E|Lead 15142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015143|115143|989898|1|9999015143|MR|Test|E|Lead 15143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015144|115144|989898|1|9999015144|MR|Test|E|Lead 15144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015145|115145|989898|1|9999015145|MR|Test|E|Lead 15145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015146|115146|989898|1|9999015146|MR|Test|E|Lead 15146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015147|115147|989898|1|9999015147|MR|Test|E|Lead 15147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015148|115148|989898|1|9999015148|MR|Test|E|Lead 15148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015149|115149|989898|1|9999015149|MR|Test|E|Lead 15149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015150|115150|989898|1|9999015150|MR|Test|E|Lead 15150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015151|115151|989898|1|9999015151|MR|Test|E|Lead 15151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015152|115152|989898|1|9999015152|MR|Test|E|Lead 15152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015153|115153|989898|1|9999015153|MR|Test|E|Lead 15153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015154|115154|989898|1|9999015154|MR|Test|E|Lead 15154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015155|115155|989898|1|9999015155|MR|Test|E|Lead 15155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015156|115156|989898|1|9999015156|MR|Test|E|Lead 15156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015157|115157|989898|1|9999015157|MR|Test|E|Lead 15157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015158|115158|989898|1|9999015158|MR|Test|E|Lead 15158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015159|115159|989898|1|9999015159|MR|Test|E|Lead 15159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015160|115160|989898|1|9999015160|MR|Test|E|Lead 15160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015161|115161|989898|1|9999015161|MR|Test|E|Lead 15161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015162|115162|989898|1|9999015162|MR|Test|E|Lead 15162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015163|115163|989898|1|9999015163|MR|Test|E|Lead 15163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015164|115164|989898|1|9999015164|MR|Test|E|Lead 15164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015165|115165|989898|1|9999015165|MR|Test|E|Lead 15165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015166|115166|989898|1|9999015166|MR|Test|E|Lead 15166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015167|115167|989898|1|9999015167|MR|Test|E|Lead 15167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015168|115168|989898|1|9999015168|MR|Test|E|Lead 15168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015169|115169|989898|1|9999015169|MR|Test|E|Lead 15169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015170|115170|989898|1|9999015170|MR|Test|E|Lead 15170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015171|115171|989898|1|9999015171|MR|Test|E|Lead 15171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015172|115172|989898|1|9999015172|MR|Test|E|Lead 15172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015173|115173|989898|1|9999015173|MR|Test|E|Lead 15173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015174|115174|989898|1|9999015174|MR|Test|E|Lead 15174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015175|115175|989898|1|9999015175|MR|Test|E|Lead 15175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015176|115176|989898|1|9999015176|MR|Test|E|Lead 15176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015177|115177|989898|1|9999015177|MR|Test|E|Lead 15177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015178|115178|989898|1|9999015178|MR|Test|E|Lead 15178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015179|115179|989898|1|9999015179|MR|Test|E|Lead 15179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015180|115180|989898|1|9999015180|MR|Test|E|Lead 15180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015181|115181|989898|1|9999015181|MR|Test|E|Lead 15181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015182|115182|989898|1|9999015182|MR|Test|E|Lead 15182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015183|115183|989898|1|9999015183|MR|Test|E|Lead 15183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015184|115184|989898|1|9999015184|MR|Test|E|Lead 15184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015185|115185|989898|1|9999015185|MR|Test|E|Lead 15185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015186|115186|989898|1|9999015186|MR|Test|E|Lead 15186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015187|115187|989898|1|9999015187|MR|Test|E|Lead 15187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015188|115188|989898|1|9999015188|MR|Test|E|Lead 15188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015189|115189|989898|1|9999015189|MR|Test|E|Lead 15189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015190|115190|989898|1|9999015190|MR|Test|E|Lead 15190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015191|115191|989898|1|9999015191|MR|Test|E|Lead 15191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015192|115192|989898|1|9999015192|MR|Test|E|Lead 15192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015193|115193|989898|1|9999015193|MR|Test|E|Lead 15193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015194|115194|989898|1|9999015194|MR|Test|E|Lead 15194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015195|115195|989898|1|9999015195|MR|Test|E|Lead 15195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015196|115196|989898|1|9999015196|MR|Test|E|Lead 15196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015197|115197|989898|1|9999015197|MR|Test|E|Lead 15197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015198|115198|989898|1|9999015198|MR|Test|E|Lead 15198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015199|115199|989898|1|9999015199|MR|Test|E|Lead 15199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015200|115200|989898|1|9999015200|MR|Test|E|Lead 15200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015201|115201|989898|1|9999015201|MR|Test|E|Lead 15201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015202|115202|989898|1|9999015202|MR|Test|E|Lead 15202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015203|115203|989898|1|9999015203|MR|Test|E|Lead 15203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015204|115204|989898|1|9999015204|MR|Test|E|Lead 15204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015205|115205|989898|1|9999015205|MR|Test|E|Lead 15205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015206|115206|989898|1|9999015206|MR|Test|E|Lead 15206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015207|115207|989898|1|9999015207|MR|Test|E|Lead 15207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015208|115208|989898|1|9999015208|MR|Test|E|Lead 15208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015209|115209|989898|1|9999015209|MR|Test|E|Lead 15209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015210|115210|989898|1|9999015210|MR|Test|E|Lead 15210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015211|115211|989898|1|9999015211|MR|Test|E|Lead 15211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015212|115212|989898|1|9999015212|MR|Test|E|Lead 15212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015213|115213|989898|1|9999015213|MR|Test|E|Lead 15213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015214|115214|989898|1|9999015214|MR|Test|E|Lead 15214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015215|115215|989898|1|9999015215|MR|Test|E|Lead 15215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015216|115216|989898|1|9999015216|MR|Test|E|Lead 15216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015217|115217|989898|1|9999015217|MR|Test|E|Lead 15217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015218|115218|989898|1|9999015218|MR|Test|E|Lead 15218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015219|115219|989898|1|9999015219|MR|Test|E|Lead 15219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015220|115220|989898|1|9999015220|MR|Test|E|Lead 15220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015221|115221|989898|1|9999015221|MR|Test|E|Lead 15221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015222|115222|989898|1|9999015222|MR|Test|E|Lead 15222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015223|115223|989898|1|9999015223|MR|Test|E|Lead 15223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015224|115224|989898|1|9999015224|MR|Test|E|Lead 15224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015225|115225|989898|1|9999015225|MR|Test|E|Lead 15225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015226|115226|989898|1|9999015226|MR|Test|E|Lead 15226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015227|115227|989898|1|9999015227|MR|Test|E|Lead 15227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015228|115228|989898|1|9999015228|MR|Test|E|Lead 15228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015229|115229|989898|1|9999015229|MR|Test|E|Lead 15229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015230|115230|989898|1|9999015230|MR|Test|E|Lead 15230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015231|115231|989898|1|9999015231|MR|Test|E|Lead 15231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015232|115232|989898|1|9999015232|MR|Test|E|Lead 15232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015233|115233|989898|1|9999015233|MR|Test|E|Lead 15233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015234|115234|989898|1|9999015234|MR|Test|E|Lead 15234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015235|115235|989898|1|9999015235|MR|Test|E|Lead 15235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015236|115236|989898|1|9999015236|MR|Test|E|Lead 15236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015237|115237|989898|1|9999015237|MR|Test|E|Lead 15237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015238|115238|989898|1|9999015238|MR|Test|E|Lead 15238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015239|115239|989898|1|9999015239|MR|Test|E|Lead 15239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015240|115240|989898|1|9999015240|MR|Test|E|Lead 15240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015241|115241|989898|1|9999015241|MR|Test|E|Lead 15241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015242|115242|989898|1|9999015242|MR|Test|E|Lead 15242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015243|115243|989898|1|9999015243|MR|Test|E|Lead 15243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015244|115244|989898|1|9999015244|MR|Test|E|Lead 15244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015245|115245|989898|1|9999015245|MR|Test|E|Lead 15245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015246|115246|989898|1|9999015246|MR|Test|E|Lead 15246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015247|115247|989898|1|9999015247|MR|Test|E|Lead 15247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015248|115248|989898|1|9999015248|MR|Test|E|Lead 15248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015249|115249|989898|1|9999015249|MR|Test|E|Lead 15249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015250|115250|989898|1|9999015250|MR|Test|E|Lead 15250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015251|115251|989898|1|9999015251|MR|Test|E|Lead 15251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015252|115252|989898|1|9999015252|MR|Test|E|Lead 15252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015253|115253|989898|1|9999015253|MR|Test|E|Lead 15253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015254|115254|989898|1|9999015254|MR|Test|E|Lead 15254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015255|115255|989898|1|9999015255|MR|Test|E|Lead 15255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015256|115256|989898|1|9999015256|MR|Test|E|Lead 15256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015257|115257|989898|1|9999015257|MR|Test|E|Lead 15257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015258|115258|989898|1|9999015258|MR|Test|E|Lead 15258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015259|115259|989898|1|9999015259|MR|Test|E|Lead 15259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015260|115260|989898|1|9999015260|MR|Test|E|Lead 15260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015261|115261|989898|1|9999015261|MR|Test|E|Lead 15261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015262|115262|989898|1|9999015262|MR|Test|E|Lead 15262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015263|115263|989898|1|9999015263|MR|Test|E|Lead 15263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015264|115264|989898|1|9999015264|MR|Test|E|Lead 15264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015265|115265|989898|1|9999015265|MR|Test|E|Lead 15265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015266|115266|989898|1|9999015266|MR|Test|E|Lead 15266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015267|115267|989898|1|9999015267|MR|Test|E|Lead 15267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015268|115268|989898|1|9999015268|MR|Test|E|Lead 15268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015269|115269|989898|1|9999015269|MR|Test|E|Lead 15269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015270|115270|989898|1|9999015270|MR|Test|E|Lead 15270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015271|115271|989898|1|9999015271|MR|Test|E|Lead 15271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015272|115272|989898|1|9999015272|MR|Test|E|Lead 15272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015273|115273|989898|1|9999015273|MR|Test|E|Lead 15273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015274|115274|989898|1|9999015274|MR|Test|E|Lead 15274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015275|115275|989898|1|9999015275|MR|Test|E|Lead 15275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015276|115276|989898|1|9999015276|MR|Test|E|Lead 15276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015277|115277|989898|1|9999015277|MR|Test|E|Lead 15277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015278|115278|989898|1|9999015278|MR|Test|E|Lead 15278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015279|115279|989898|1|9999015279|MR|Test|E|Lead 15279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015280|115280|989898|1|9999015280|MR|Test|E|Lead 15280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015281|115281|989898|1|9999015281|MR|Test|E|Lead 15281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015282|115282|989898|1|9999015282|MR|Test|E|Lead 15282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015283|115283|989898|1|9999015283|MR|Test|E|Lead 15283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015284|115284|989898|1|9999015284|MR|Test|E|Lead 15284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015285|115285|989898|1|9999015285|MR|Test|E|Lead 15285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015286|115286|989898|1|9999015286|MR|Test|E|Lead 15286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015287|115287|989898|1|9999015287|MR|Test|E|Lead 15287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015288|115288|989898|1|9999015288|MR|Test|E|Lead 15288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015289|115289|989898|1|9999015289|MR|Test|E|Lead 15289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015290|115290|989898|1|9999015290|MR|Test|E|Lead 15290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015291|115291|989898|1|9999015291|MR|Test|E|Lead 15291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015292|115292|989898|1|9999015292|MR|Test|E|Lead 15292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015293|115293|989898|1|9999015293|MR|Test|E|Lead 15293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015294|115294|989898|1|9999015294|MR|Test|E|Lead 15294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015295|115295|989898|1|9999015295|MR|Test|E|Lead 15295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015296|115296|989898|1|9999015296|MR|Test|E|Lead 15296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015297|115297|989898|1|9999015297|MR|Test|E|Lead 15297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015298|115298|989898|1|9999015298|MR|Test|E|Lead 15298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015299|115299|989898|1|9999015299|MR|Test|E|Lead 15299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015300|115300|989898|1|9999015300|MR|Test|E|Lead 15300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015301|115301|989898|1|9999015301|MR|Test|E|Lead 15301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015302|115302|989898|1|9999015302|MR|Test|E|Lead 15302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015303|115303|989898|1|9999015303|MR|Test|E|Lead 15303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015304|115304|989898|1|9999015304|MR|Test|E|Lead 15304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015305|115305|989898|1|9999015305|MR|Test|E|Lead 15305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015306|115306|989898|1|9999015306|MR|Test|E|Lead 15306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015307|115307|989898|1|9999015307|MR|Test|E|Lead 15307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015308|115308|989898|1|9999015308|MR|Test|E|Lead 15308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015309|115309|989898|1|9999015309|MR|Test|E|Lead 15309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015310|115310|989898|1|9999015310|MR|Test|E|Lead 15310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015311|115311|989898|1|9999015311|MR|Test|E|Lead 15311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015312|115312|989898|1|9999015312|MR|Test|E|Lead 15312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015313|115313|989898|1|9999015313|MR|Test|E|Lead 15313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015314|115314|989898|1|9999015314|MR|Test|E|Lead 15314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015315|115315|989898|1|9999015315|MR|Test|E|Lead 15315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015316|115316|989898|1|9999015316|MR|Test|E|Lead 15316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015317|115317|989898|1|9999015317|MR|Test|E|Lead 15317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015318|115318|989898|1|9999015318|MR|Test|E|Lead 15318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015319|115319|989898|1|9999015319|MR|Test|E|Lead 15319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015320|115320|989898|1|9999015320|MR|Test|E|Lead 15320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015321|115321|989898|1|9999015321|MR|Test|E|Lead 15321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015322|115322|989898|1|9999015322|MR|Test|E|Lead 15322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015323|115323|989898|1|9999015323|MR|Test|E|Lead 15323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015324|115324|989898|1|9999015324|MR|Test|E|Lead 15324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015325|115325|989898|1|9999015325|MR|Test|E|Lead 15325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015326|115326|989898|1|9999015326|MR|Test|E|Lead 15326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015327|115327|989898|1|9999015327|MR|Test|E|Lead 15327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015328|115328|989898|1|9999015328|MR|Test|E|Lead 15328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015329|115329|989898|1|9999015329|MR|Test|E|Lead 15329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015330|115330|989898|1|9999015330|MR|Test|E|Lead 15330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015331|115331|989898|1|9999015331|MR|Test|E|Lead 15331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015332|115332|989898|1|9999015332|MR|Test|E|Lead 15332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015333|115333|989898|1|9999015333|MR|Test|E|Lead 15333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015334|115334|989898|1|9999015334|MR|Test|E|Lead 15334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015335|115335|989898|1|9999015335|MR|Test|E|Lead 15335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015336|115336|989898|1|9999015336|MR|Test|E|Lead 15336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015337|115337|989898|1|9999015337|MR|Test|E|Lead 15337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015338|115338|989898|1|9999015338|MR|Test|E|Lead 15338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015339|115339|989898|1|9999015339|MR|Test|E|Lead 15339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015340|115340|989898|1|9999015340|MR|Test|E|Lead 15340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015341|115341|989898|1|9999015341|MR|Test|E|Lead 15341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015342|115342|989898|1|9999015342|MR|Test|E|Lead 15342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015343|115343|989898|1|9999015343|MR|Test|E|Lead 15343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015344|115344|989898|1|9999015344|MR|Test|E|Lead 15344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015345|115345|989898|1|9999015345|MR|Test|E|Lead 15345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015346|115346|989898|1|9999015346|MR|Test|E|Lead 15346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015347|115347|989898|1|9999015347|MR|Test|E|Lead 15347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015348|115348|989898|1|9999015348|MR|Test|E|Lead 15348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015349|115349|989898|1|9999015349|MR|Test|E|Lead 15349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015350|115350|989898|1|9999015350|MR|Test|E|Lead 15350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015351|115351|989898|1|9999015351|MR|Test|E|Lead 15351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015352|115352|989898|1|9999015352|MR|Test|E|Lead 15352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015353|115353|989898|1|9999015353|MR|Test|E|Lead 15353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015354|115354|989898|1|9999015354|MR|Test|E|Lead 15354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015355|115355|989898|1|9999015355|MR|Test|E|Lead 15355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015356|115356|989898|1|9999015356|MR|Test|E|Lead 15356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015357|115357|989898|1|9999015357|MR|Test|E|Lead 15357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015358|115358|989898|1|9999015358|MR|Test|E|Lead 15358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015359|115359|989898|1|9999015359|MR|Test|E|Lead 15359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015360|115360|989898|1|9999015360|MR|Test|E|Lead 15360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015361|115361|989898|1|9999015361|MR|Test|E|Lead 15361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015362|115362|989898|1|9999015362|MR|Test|E|Lead 15362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015363|115363|989898|1|9999015363|MR|Test|E|Lead 15363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015364|115364|989898|1|9999015364|MR|Test|E|Lead 15364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015365|115365|989898|1|9999015365|MR|Test|E|Lead 15365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015366|115366|989898|1|9999015366|MR|Test|E|Lead 15366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015367|115367|989898|1|9999015367|MR|Test|E|Lead 15367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015368|115368|989898|1|9999015368|MR|Test|E|Lead 15368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015369|115369|989898|1|9999015369|MR|Test|E|Lead 15369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015370|115370|989898|1|9999015370|MR|Test|E|Lead 15370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015371|115371|989898|1|9999015371|MR|Test|E|Lead 15371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015372|115372|989898|1|9999015372|MR|Test|E|Lead 15372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015373|115373|989898|1|9999015373|MR|Test|E|Lead 15373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015374|115374|989898|1|9999015374|MR|Test|E|Lead 15374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015375|115375|989898|1|9999015375|MR|Test|E|Lead 15375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015376|115376|989898|1|9999015376|MR|Test|E|Lead 15376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015377|115377|989898|1|9999015377|MR|Test|E|Lead 15377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015378|115378|989898|1|9999015378|MR|Test|E|Lead 15378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015379|115379|989898|1|9999015379|MR|Test|E|Lead 15379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015380|115380|989898|1|9999015380|MR|Test|E|Lead 15380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015381|115381|989898|1|9999015381|MR|Test|E|Lead 15381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015382|115382|989898|1|9999015382|MR|Test|E|Lead 15382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015383|115383|989898|1|9999015383|MR|Test|E|Lead 15383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015384|115384|989898|1|9999015384|MR|Test|E|Lead 15384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015385|115385|989898|1|9999015385|MR|Test|E|Lead 15385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015386|115386|989898|1|9999015386|MR|Test|E|Lead 15386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015387|115387|989898|1|9999015387|MR|Test|E|Lead 15387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015388|115388|989898|1|9999015388|MR|Test|E|Lead 15388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015389|115389|989898|1|9999015389|MR|Test|E|Lead 15389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015390|115390|989898|1|9999015390|MR|Test|E|Lead 15390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015391|115391|989898|1|9999015391|MR|Test|E|Lead 15391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015392|115392|989898|1|9999015392|MR|Test|E|Lead 15392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015393|115393|989898|1|9999015393|MR|Test|E|Lead 15393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015394|115394|989898|1|9999015394|MR|Test|E|Lead 15394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015395|115395|989898|1|9999015395|MR|Test|E|Lead 15395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015396|115396|989898|1|9999015396|MR|Test|E|Lead 15396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015397|115397|989898|1|9999015397|MR|Test|E|Lead 15397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015398|115398|989898|1|9999015398|MR|Test|E|Lead 15398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015399|115399|989898|1|9999015399|MR|Test|E|Lead 15399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015400|115400|989898|1|9999015400|MR|Test|E|Lead 15400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015401|115401|989898|1|9999015401|MR|Test|E|Lead 15401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015402|115402|989898|1|9999015402|MR|Test|E|Lead 15402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015403|115403|989898|1|9999015403|MR|Test|E|Lead 15403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015404|115404|989898|1|9999015404|MR|Test|E|Lead 15404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015405|115405|989898|1|9999015405|MR|Test|E|Lead 15405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015406|115406|989898|1|9999015406|MR|Test|E|Lead 15406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015407|115407|989898|1|9999015407|MR|Test|E|Lead 15407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015408|115408|989898|1|9999015408|MR|Test|E|Lead 15408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015409|115409|989898|1|9999015409|MR|Test|E|Lead 15409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015410|115410|989898|1|9999015410|MR|Test|E|Lead 15410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015411|115411|989898|1|9999015411|MR|Test|E|Lead 15411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015412|115412|989898|1|9999015412|MR|Test|E|Lead 15412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015413|115413|989898|1|9999015413|MR|Test|E|Lead 15413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015414|115414|989898|1|9999015414|MR|Test|E|Lead 15414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015415|115415|989898|1|9999015415|MR|Test|E|Lead 15415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015416|115416|989898|1|9999015416|MR|Test|E|Lead 15416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015417|115417|989898|1|9999015417|MR|Test|E|Lead 15417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015418|115418|989898|1|9999015418|MR|Test|E|Lead 15418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015419|115419|989898|1|9999015419|MR|Test|E|Lead 15419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015420|115420|989898|1|9999015420|MR|Test|E|Lead 15420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015421|115421|989898|1|9999015421|MR|Test|E|Lead 15421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015422|115422|989898|1|9999015422|MR|Test|E|Lead 15422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015423|115423|989898|1|9999015423|MR|Test|E|Lead 15423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015424|115424|989898|1|9999015424|MR|Test|E|Lead 15424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015425|115425|989898|1|9999015425|MR|Test|E|Lead 15425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015426|115426|989898|1|9999015426|MR|Test|E|Lead 15426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015427|115427|989898|1|9999015427|MR|Test|E|Lead 15427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015428|115428|989898|1|9999015428|MR|Test|E|Lead 15428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015429|115429|989898|1|9999015429|MR|Test|E|Lead 15429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015430|115430|989898|1|9999015430|MR|Test|E|Lead 15430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015431|115431|989898|1|9999015431|MR|Test|E|Lead 15431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015432|115432|989898|1|9999015432|MR|Test|E|Lead 15432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015433|115433|989898|1|9999015433|MR|Test|E|Lead 15433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015434|115434|989898|1|9999015434|MR|Test|E|Lead 15434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015435|115435|989898|1|9999015435|MR|Test|E|Lead 15435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015436|115436|989898|1|9999015436|MR|Test|E|Lead 15436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015437|115437|989898|1|9999015437|MR|Test|E|Lead 15437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015438|115438|989898|1|9999015438|MR|Test|E|Lead 15438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015439|115439|989898|1|9999015439|MR|Test|E|Lead 15439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015440|115440|989898|1|9999015440|MR|Test|E|Lead 15440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015441|115441|989898|1|9999015441|MR|Test|E|Lead 15441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015442|115442|989898|1|9999015442|MR|Test|E|Lead 15442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015443|115443|989898|1|9999015443|MR|Test|E|Lead 15443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015444|115444|989898|1|9999015444|MR|Test|E|Lead 15444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015445|115445|989898|1|9999015445|MR|Test|E|Lead 15445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015446|115446|989898|1|9999015446|MR|Test|E|Lead 15446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015447|115447|989898|1|9999015447|MR|Test|E|Lead 15447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015448|115448|989898|1|9999015448|MR|Test|E|Lead 15448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015449|115449|989898|1|9999015449|MR|Test|E|Lead 15449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015450|115450|989898|1|9999015450|MR|Test|E|Lead 15450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015451|115451|989898|1|9999015451|MR|Test|E|Lead 15451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015452|115452|989898|1|9999015452|MR|Test|E|Lead 15452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015453|115453|989898|1|9999015453|MR|Test|E|Lead 15453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015454|115454|989898|1|9999015454|MR|Test|E|Lead 15454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015455|115455|989898|1|9999015455|MR|Test|E|Lead 15455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015456|115456|989898|1|9999015456|MR|Test|E|Lead 15456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015457|115457|989898|1|9999015457|MR|Test|E|Lead 15457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015458|115458|989898|1|9999015458|MR|Test|E|Lead 15458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015459|115459|989898|1|9999015459|MR|Test|E|Lead 15459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015460|115460|989898|1|9999015460|MR|Test|E|Lead 15460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015461|115461|989898|1|9999015461|MR|Test|E|Lead 15461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015462|115462|989898|1|9999015462|MR|Test|E|Lead 15462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015463|115463|989898|1|9999015463|MR|Test|E|Lead 15463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015464|115464|989898|1|9999015464|MR|Test|E|Lead 15464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015465|115465|989898|1|9999015465|MR|Test|E|Lead 15465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015466|115466|989898|1|9999015466|MR|Test|E|Lead 15466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015467|115467|989898|1|9999015467|MR|Test|E|Lead 15467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015468|115468|989898|1|9999015468|MR|Test|E|Lead 15468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015469|115469|989898|1|9999015469|MR|Test|E|Lead 15469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015470|115470|989898|1|9999015470|MR|Test|E|Lead 15470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015471|115471|989898|1|9999015471|MR|Test|E|Lead 15471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015472|115472|989898|1|9999015472|MR|Test|E|Lead 15472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015473|115473|989898|1|9999015473|MR|Test|E|Lead 15473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015474|115474|989898|1|9999015474|MR|Test|E|Lead 15474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015475|115475|989898|1|9999015475|MR|Test|E|Lead 15475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015476|115476|989898|1|9999015476|MR|Test|E|Lead 15476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015477|115477|989898|1|9999015477|MR|Test|E|Lead 15477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015478|115478|989898|1|9999015478|MR|Test|E|Lead 15478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015479|115479|989898|1|9999015479|MR|Test|E|Lead 15479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015480|115480|989898|1|9999015480|MR|Test|E|Lead 15480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015481|115481|989898|1|9999015481|MR|Test|E|Lead 15481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015482|115482|989898|1|9999015482|MR|Test|E|Lead 15482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015483|115483|989898|1|9999015483|MR|Test|E|Lead 15483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015484|115484|989898|1|9999015484|MR|Test|E|Lead 15484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015485|115485|989898|1|9999015485|MR|Test|E|Lead 15485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015486|115486|989898|1|9999015486|MR|Test|E|Lead 15486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015487|115487|989898|1|9999015487|MR|Test|E|Lead 15487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015488|115488|989898|1|9999015488|MR|Test|E|Lead 15488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015489|115489|989898|1|9999015489|MR|Test|E|Lead 15489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015490|115490|989898|1|9999015490|MR|Test|E|Lead 15490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015491|115491|989898|1|9999015491|MR|Test|E|Lead 15491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015492|115492|989898|1|9999015492|MR|Test|E|Lead 15492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015493|115493|989898|1|9999015493|MR|Test|E|Lead 15493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015494|115494|989898|1|9999015494|MR|Test|E|Lead 15494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015495|115495|989898|1|9999015495|MR|Test|E|Lead 15495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015496|115496|989898|1|9999015496|MR|Test|E|Lead 15496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015497|115497|989898|1|9999015497|MR|Test|E|Lead 15497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015498|115498|989898|1|9999015498|MR|Test|E|Lead 15498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015499|115499|989898|1|9999015499|MR|Test|E|Lead 15499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015500|115500|989898|1|9999015500|MR|Test|E|Lead 15500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015501|115501|989898|1|9999015501|MR|Test|E|Lead 15501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015502|115502|989898|1|9999015502|MR|Test|E|Lead 15502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015503|115503|989898|1|9999015503|MR|Test|E|Lead 15503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015504|115504|989898|1|9999015504|MR|Test|E|Lead 15504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015505|115505|989898|1|9999015505|MR|Test|E|Lead 15505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015506|115506|989898|1|9999015506|MR|Test|E|Lead 15506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015507|115507|989898|1|9999015507|MR|Test|E|Lead 15507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015508|115508|989898|1|9999015508|MR|Test|E|Lead 15508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015509|115509|989898|1|9999015509|MR|Test|E|Lead 15509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015510|115510|989898|1|9999015510|MR|Test|E|Lead 15510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015511|115511|989898|1|9999015511|MR|Test|E|Lead 15511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015512|115512|989898|1|9999015512|MR|Test|E|Lead 15512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015513|115513|989898|1|9999015513|MR|Test|E|Lead 15513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015514|115514|989898|1|9999015514|MR|Test|E|Lead 15514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015515|115515|989898|1|9999015515|MR|Test|E|Lead 15515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015516|115516|989898|1|9999015516|MR|Test|E|Lead 15516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015517|115517|989898|1|9999015517|MR|Test|E|Lead 15517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015518|115518|989898|1|9999015518|MR|Test|E|Lead 15518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015519|115519|989898|1|9999015519|MR|Test|E|Lead 15519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015520|115520|989898|1|9999015520|MR|Test|E|Lead 15520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015521|115521|989898|1|9999015521|MR|Test|E|Lead 15521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015522|115522|989898|1|9999015522|MR|Test|E|Lead 15522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015523|115523|989898|1|9999015523|MR|Test|E|Lead 15523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015524|115524|989898|1|9999015524|MR|Test|E|Lead 15524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015525|115525|989898|1|9999015525|MR|Test|E|Lead 15525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015526|115526|989898|1|9999015526|MR|Test|E|Lead 15526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015527|115527|989898|1|9999015527|MR|Test|E|Lead 15527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015528|115528|989898|1|9999015528|MR|Test|E|Lead 15528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015529|115529|989898|1|9999015529|MR|Test|E|Lead 15529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015530|115530|989898|1|9999015530|MR|Test|E|Lead 15530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015531|115531|989898|1|9999015531|MR|Test|E|Lead 15531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015532|115532|989898|1|9999015532|MR|Test|E|Lead 15532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015533|115533|989898|1|9999015533|MR|Test|E|Lead 15533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015534|115534|989898|1|9999015534|MR|Test|E|Lead 15534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015535|115535|989898|1|9999015535|MR|Test|E|Lead 15535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015536|115536|989898|1|9999015536|MR|Test|E|Lead 15536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015537|115537|989898|1|9999015537|MR|Test|E|Lead 15537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015538|115538|989898|1|9999015538|MR|Test|E|Lead 15538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015539|115539|989898|1|9999015539|MR|Test|E|Lead 15539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015540|115540|989898|1|9999015540|MR|Test|E|Lead 15540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015541|115541|989898|1|9999015541|MR|Test|E|Lead 15541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015542|115542|989898|1|9999015542|MR|Test|E|Lead 15542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015543|115543|989898|1|9999015543|MR|Test|E|Lead 15543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015544|115544|989898|1|9999015544|MR|Test|E|Lead 15544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015545|115545|989898|1|9999015545|MR|Test|E|Lead 15545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015546|115546|989898|1|9999015546|MR|Test|E|Lead 15546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015547|115547|989898|1|9999015547|MR|Test|E|Lead 15547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015548|115548|989898|1|9999015548|MR|Test|E|Lead 15548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015549|115549|989898|1|9999015549|MR|Test|E|Lead 15549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015550|115550|989898|1|9999015550|MR|Test|E|Lead 15550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015551|115551|989898|1|9999015551|MR|Test|E|Lead 15551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015552|115552|989898|1|9999015552|MR|Test|E|Lead 15552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015553|115553|989898|1|9999015553|MR|Test|E|Lead 15553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015554|115554|989898|1|9999015554|MR|Test|E|Lead 15554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015555|115555|989898|1|9999015555|MR|Test|E|Lead 15555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015556|115556|989898|1|9999015556|MR|Test|E|Lead 15556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015557|115557|989898|1|9999015557|MR|Test|E|Lead 15557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015558|115558|989898|1|9999015558|MR|Test|E|Lead 15558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015559|115559|989898|1|9999015559|MR|Test|E|Lead 15559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015560|115560|989898|1|9999015560|MR|Test|E|Lead 15560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015561|115561|989898|1|9999015561|MR|Test|E|Lead 15561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015562|115562|989898|1|9999015562|MR|Test|E|Lead 15562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015563|115563|989898|1|9999015563|MR|Test|E|Lead 15563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015564|115564|989898|1|9999015564|MR|Test|E|Lead 15564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015565|115565|989898|1|9999015565|MR|Test|E|Lead 15565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015566|115566|989898|1|9999015566|MR|Test|E|Lead 15566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015567|115567|989898|1|9999015567|MR|Test|E|Lead 15567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015568|115568|989898|1|9999015568|MR|Test|E|Lead 15568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015569|115569|989898|1|9999015569|MR|Test|E|Lead 15569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015570|115570|989898|1|9999015570|MR|Test|E|Lead 15570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015571|115571|989898|1|9999015571|MR|Test|E|Lead 15571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015572|115572|989898|1|9999015572|MR|Test|E|Lead 15572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015573|115573|989898|1|9999015573|MR|Test|E|Lead 15573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015574|115574|989898|1|9999015574|MR|Test|E|Lead 15574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015575|115575|989898|1|9999015575|MR|Test|E|Lead 15575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015576|115576|989898|1|9999015576|MR|Test|E|Lead 15576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015577|115577|989898|1|9999015577|MR|Test|E|Lead 15577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015578|115578|989898|1|9999015578|MR|Test|E|Lead 15578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015579|115579|989898|1|9999015579|MR|Test|E|Lead 15579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015580|115580|989898|1|9999015580|MR|Test|E|Lead 15580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015581|115581|989898|1|9999015581|MR|Test|E|Lead 15581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015582|115582|989898|1|9999015582|MR|Test|E|Lead 15582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015583|115583|989898|1|9999015583|MR|Test|E|Lead 15583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015584|115584|989898|1|9999015584|MR|Test|E|Lead 15584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015585|115585|989898|1|9999015585|MR|Test|E|Lead 15585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015586|115586|989898|1|9999015586|MR|Test|E|Lead 15586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015587|115587|989898|1|9999015587|MR|Test|E|Lead 15587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015588|115588|989898|1|9999015588|MR|Test|E|Lead 15588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015589|115589|989898|1|9999015589|MR|Test|E|Lead 15589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015590|115590|989898|1|9999015590|MR|Test|E|Lead 15590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015591|115591|989898|1|9999015591|MR|Test|E|Lead 15591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015592|115592|989898|1|9999015592|MR|Test|E|Lead 15592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015593|115593|989898|1|9999015593|MR|Test|E|Lead 15593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015594|115594|989898|1|9999015594|MR|Test|E|Lead 15594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015595|115595|989898|1|9999015595|MR|Test|E|Lead 15595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015596|115596|989898|1|9999015596|MR|Test|E|Lead 15596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015597|115597|989898|1|9999015597|MR|Test|E|Lead 15597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015598|115598|989898|1|9999015598|MR|Test|E|Lead 15598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015599|115599|989898|1|9999015599|MR|Test|E|Lead 15599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015600|115600|989898|1|9999015600|MR|Test|E|Lead 15600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015601|115601|989898|1|9999015601|MR|Test|E|Lead 15601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015602|115602|989898|1|9999015602|MR|Test|E|Lead 15602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015603|115603|989898|1|9999015603|MR|Test|E|Lead 15603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015604|115604|989898|1|9999015604|MR|Test|E|Lead 15604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015605|115605|989898|1|9999015605|MR|Test|E|Lead 15605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015606|115606|989898|1|9999015606|MR|Test|E|Lead 15606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015607|115607|989898|1|9999015607|MR|Test|E|Lead 15607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015608|115608|989898|1|9999015608|MR|Test|E|Lead 15608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015609|115609|989898|1|9999015609|MR|Test|E|Lead 15609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015610|115610|989898|1|9999015610|MR|Test|E|Lead 15610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015611|115611|989898|1|9999015611|MR|Test|E|Lead 15611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015612|115612|989898|1|9999015612|MR|Test|E|Lead 15612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015613|115613|989898|1|9999015613|MR|Test|E|Lead 15613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015614|115614|989898|1|9999015614|MR|Test|E|Lead 15614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015615|115615|989898|1|9999015615|MR|Test|E|Lead 15615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015616|115616|989898|1|9999015616|MR|Test|E|Lead 15616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015617|115617|989898|1|9999015617|MR|Test|E|Lead 15617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015618|115618|989898|1|9999015618|MR|Test|E|Lead 15618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015619|115619|989898|1|9999015619|MR|Test|E|Lead 15619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015620|115620|989898|1|9999015620|MR|Test|E|Lead 15620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015621|115621|989898|1|9999015621|MR|Test|E|Lead 15621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015622|115622|989898|1|9999015622|MR|Test|E|Lead 15622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015623|115623|989898|1|9999015623|MR|Test|E|Lead 15623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015624|115624|989898|1|9999015624|MR|Test|E|Lead 15624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015625|115625|989898|1|9999015625|MR|Test|E|Lead 15625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015626|115626|989898|1|9999015626|MR|Test|E|Lead 15626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015627|115627|989898|1|9999015627|MR|Test|E|Lead 15627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015628|115628|989898|1|9999015628|MR|Test|E|Lead 15628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015629|115629|989898|1|9999015629|MR|Test|E|Lead 15629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015630|115630|989898|1|9999015630|MR|Test|E|Lead 15630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015631|115631|989898|1|9999015631|MR|Test|E|Lead 15631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015632|115632|989898|1|9999015632|MR|Test|E|Lead 15632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015633|115633|989898|1|9999015633|MR|Test|E|Lead 15633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015634|115634|989898|1|9999015634|MR|Test|E|Lead 15634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015635|115635|989898|1|9999015635|MR|Test|E|Lead 15635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015636|115636|989898|1|9999015636|MR|Test|E|Lead 15636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015637|115637|989898|1|9999015637|MR|Test|E|Lead 15637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015638|115638|989898|1|9999015638|MR|Test|E|Lead 15638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015639|115639|989898|1|9999015639|MR|Test|E|Lead 15639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015640|115640|989898|1|9999015640|MR|Test|E|Lead 15640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015641|115641|989898|1|9999015641|MR|Test|E|Lead 15641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015642|115642|989898|1|9999015642|MR|Test|E|Lead 15642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015643|115643|989898|1|9999015643|MR|Test|E|Lead 15643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015644|115644|989898|1|9999015644|MR|Test|E|Lead 15644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015645|115645|989898|1|9999015645|MR|Test|E|Lead 15645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015646|115646|989898|1|9999015646|MR|Test|E|Lead 15646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015647|115647|989898|1|9999015647|MR|Test|E|Lead 15647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015648|115648|989898|1|9999015648|MR|Test|E|Lead 15648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015649|115649|989898|1|9999015649|MR|Test|E|Lead 15649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015650|115650|989898|1|9999015650|MR|Test|E|Lead 15650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015651|115651|989898|1|9999015651|MR|Test|E|Lead 15651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015652|115652|989898|1|9999015652|MR|Test|E|Lead 15652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015653|115653|989898|1|9999015653|MR|Test|E|Lead 15653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015654|115654|989898|1|9999015654|MR|Test|E|Lead 15654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015655|115655|989898|1|9999015655|MR|Test|E|Lead 15655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015656|115656|989898|1|9999015656|MR|Test|E|Lead 15656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015657|115657|989898|1|9999015657|MR|Test|E|Lead 15657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015658|115658|989898|1|9999015658|MR|Test|E|Lead 15658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015659|115659|989898|1|9999015659|MR|Test|E|Lead 15659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015660|115660|989898|1|9999015660|MR|Test|E|Lead 15660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015661|115661|989898|1|9999015661|MR|Test|E|Lead 15661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015662|115662|989898|1|9999015662|MR|Test|E|Lead 15662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015663|115663|989898|1|9999015663|MR|Test|E|Lead 15663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015664|115664|989898|1|9999015664|MR|Test|E|Lead 15664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015665|115665|989898|1|9999015665|MR|Test|E|Lead 15665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015666|115666|989898|1|9999015666|MR|Test|E|Lead 15666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015667|115667|989898|1|9999015667|MR|Test|E|Lead 15667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015668|115668|989898|1|9999015668|MR|Test|E|Lead 15668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015669|115669|989898|1|9999015669|MR|Test|E|Lead 15669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015670|115670|989898|1|9999015670|MR|Test|E|Lead 15670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015671|115671|989898|1|9999015671|MR|Test|E|Lead 15671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015672|115672|989898|1|9999015672|MR|Test|E|Lead 15672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015673|115673|989898|1|9999015673|MR|Test|E|Lead 15673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015674|115674|989898|1|9999015674|MR|Test|E|Lead 15674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015675|115675|989898|1|9999015675|MR|Test|E|Lead 15675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015676|115676|989898|1|9999015676|MR|Test|E|Lead 15676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015677|115677|989898|1|9999015677|MR|Test|E|Lead 15677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015678|115678|989898|1|9999015678|MR|Test|E|Lead 15678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015679|115679|989898|1|9999015679|MR|Test|E|Lead 15679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015680|115680|989898|1|9999015680|MR|Test|E|Lead 15680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015681|115681|989898|1|9999015681|MR|Test|E|Lead 15681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015682|115682|989898|1|9999015682|MR|Test|E|Lead 15682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015683|115683|989898|1|9999015683|MR|Test|E|Lead 15683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015684|115684|989898|1|9999015684|MR|Test|E|Lead 15684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015685|115685|989898|1|9999015685|MR|Test|E|Lead 15685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015686|115686|989898|1|9999015686|MR|Test|E|Lead 15686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015687|115687|989898|1|9999015687|MR|Test|E|Lead 15687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015688|115688|989898|1|9999015688|MR|Test|E|Lead 15688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015689|115689|989898|1|9999015689|MR|Test|E|Lead 15689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015690|115690|989898|1|9999015690|MR|Test|E|Lead 15690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015691|115691|989898|1|9999015691|MR|Test|E|Lead 15691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015692|115692|989898|1|9999015692|MR|Test|E|Lead 15692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015693|115693|989898|1|9999015693|MR|Test|E|Lead 15693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015694|115694|989898|1|9999015694|MR|Test|E|Lead 15694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015695|115695|989898|1|9999015695|MR|Test|E|Lead 15695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015696|115696|989898|1|9999015696|MR|Test|E|Lead 15696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015697|115697|989898|1|9999015697|MR|Test|E|Lead 15697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015698|115698|989898|1|9999015698|MR|Test|E|Lead 15698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015699|115699|989898|1|9999015699|MR|Test|E|Lead 15699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015700|115700|989898|1|9999015700|MR|Test|E|Lead 15700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015701|115701|989898|1|9999015701|MR|Test|E|Lead 15701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015702|115702|989898|1|9999015702|MR|Test|E|Lead 15702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015703|115703|989898|1|9999015703|MR|Test|E|Lead 15703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015704|115704|989898|1|9999015704|MR|Test|E|Lead 15704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015705|115705|989898|1|9999015705|MR|Test|E|Lead 15705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015706|115706|989898|1|9999015706|MR|Test|E|Lead 15706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015707|115707|989898|1|9999015707|MR|Test|E|Lead 15707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015708|115708|989898|1|9999015708|MR|Test|E|Lead 15708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015709|115709|989898|1|9999015709|MR|Test|E|Lead 15709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015710|115710|989898|1|9999015710|MR|Test|E|Lead 15710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015711|115711|989898|1|9999015711|MR|Test|E|Lead 15711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015712|115712|989898|1|9999015712|MR|Test|E|Lead 15712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015713|115713|989898|1|9999015713|MR|Test|E|Lead 15713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015714|115714|989898|1|9999015714|MR|Test|E|Lead 15714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015715|115715|989898|1|9999015715|MR|Test|E|Lead 15715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015716|115716|989898|1|9999015716|MR|Test|E|Lead 15716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015717|115717|989898|1|9999015717|MR|Test|E|Lead 15717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015718|115718|989898|1|9999015718|MR|Test|E|Lead 15718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015719|115719|989898|1|9999015719|MR|Test|E|Lead 15719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015720|115720|989898|1|9999015720|MR|Test|E|Lead 15720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015721|115721|989898|1|9999015721|MR|Test|E|Lead 15721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015722|115722|989898|1|9999015722|MR|Test|E|Lead 15722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015723|115723|989898|1|9999015723|MR|Test|E|Lead 15723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015724|115724|989898|1|9999015724|MR|Test|E|Lead 15724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015725|115725|989898|1|9999015725|MR|Test|E|Lead 15725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015726|115726|989898|1|9999015726|MR|Test|E|Lead 15726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015727|115727|989898|1|9999015727|MR|Test|E|Lead 15727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015728|115728|989898|1|9999015728|MR|Test|E|Lead 15728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015729|115729|989898|1|9999015729|MR|Test|E|Lead 15729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015730|115730|989898|1|9999015730|MR|Test|E|Lead 15730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015731|115731|989898|1|9999015731|MR|Test|E|Lead 15731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015732|115732|989898|1|9999015732|MR|Test|E|Lead 15732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015733|115733|989898|1|9999015733|MR|Test|E|Lead 15733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015734|115734|989898|1|9999015734|MR|Test|E|Lead 15734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015735|115735|989898|1|9999015735|MR|Test|E|Lead 15735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015736|115736|989898|1|9999015736|MR|Test|E|Lead 15736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015737|115737|989898|1|9999015737|MR|Test|E|Lead 15737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015738|115738|989898|1|9999015738|MR|Test|E|Lead 15738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015739|115739|989898|1|9999015739|MR|Test|E|Lead 15739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015740|115740|989898|1|9999015740|MR|Test|E|Lead 15740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015741|115741|989898|1|9999015741|MR|Test|E|Lead 15741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015742|115742|989898|1|9999015742|MR|Test|E|Lead 15742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015743|115743|989898|1|9999015743|MR|Test|E|Lead 15743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015744|115744|989898|1|9999015744|MR|Test|E|Lead 15744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015745|115745|989898|1|9999015745|MR|Test|E|Lead 15745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015746|115746|989898|1|9999015746|MR|Test|E|Lead 15746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015747|115747|989898|1|9999015747|MR|Test|E|Lead 15747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015748|115748|989898|1|9999015748|MR|Test|E|Lead 15748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015749|115749|989898|1|9999015749|MR|Test|E|Lead 15749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015750|115750|989898|1|9999015750|MR|Test|E|Lead 15750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015751|115751|989898|1|9999015751|MR|Test|E|Lead 15751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015752|115752|989898|1|9999015752|MR|Test|E|Lead 15752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015753|115753|989898|1|9999015753|MR|Test|E|Lead 15753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015754|115754|989898|1|9999015754|MR|Test|E|Lead 15754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015755|115755|989898|1|9999015755|MR|Test|E|Lead 15755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015756|115756|989898|1|9999015756|MR|Test|E|Lead 15756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015757|115757|989898|1|9999015757|MR|Test|E|Lead 15757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015758|115758|989898|1|9999015758|MR|Test|E|Lead 15758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015759|115759|989898|1|9999015759|MR|Test|E|Lead 15759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015760|115760|989898|1|9999015760|MR|Test|E|Lead 15760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015761|115761|989898|1|9999015761|MR|Test|E|Lead 15761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015762|115762|989898|1|9999015762|MR|Test|E|Lead 15762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015763|115763|989898|1|9999015763|MR|Test|E|Lead 15763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015764|115764|989898|1|9999015764|MR|Test|E|Lead 15764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015765|115765|989898|1|9999015765|MR|Test|E|Lead 15765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015766|115766|989898|1|9999015766|MR|Test|E|Lead 15766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015767|115767|989898|1|9999015767|MR|Test|E|Lead 15767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015768|115768|989898|1|9999015768|MR|Test|E|Lead 15768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015769|115769|989898|1|9999015769|MR|Test|E|Lead 15769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015770|115770|989898|1|9999015770|MR|Test|E|Lead 15770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015771|115771|989898|1|9999015771|MR|Test|E|Lead 15771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015772|115772|989898|1|9999015772|MR|Test|E|Lead 15772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015773|115773|989898|1|9999015773|MR|Test|E|Lead 15773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015774|115774|989898|1|9999015774|MR|Test|E|Lead 15774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015775|115775|989898|1|9999015775|MR|Test|E|Lead 15775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015776|115776|989898|1|9999015776|MR|Test|E|Lead 15776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015777|115777|989898|1|9999015777|MR|Test|E|Lead 15777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015778|115778|989898|1|9999015778|MR|Test|E|Lead 15778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015779|115779|989898|1|9999015779|MR|Test|E|Lead 15779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015780|115780|989898|1|9999015780|MR|Test|E|Lead 15780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015781|115781|989898|1|9999015781|MR|Test|E|Lead 15781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015782|115782|989898|1|9999015782|MR|Test|E|Lead 15782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015783|115783|989898|1|9999015783|MR|Test|E|Lead 15783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015784|115784|989898|1|9999015784|MR|Test|E|Lead 15784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015785|115785|989898|1|9999015785|MR|Test|E|Lead 15785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015786|115786|989898|1|9999015786|MR|Test|E|Lead 15786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015787|115787|989898|1|9999015787|MR|Test|E|Lead 15787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015788|115788|989898|1|9999015788|MR|Test|E|Lead 15788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015789|115789|989898|1|9999015789|MR|Test|E|Lead 15789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015790|115790|989898|1|9999015790|MR|Test|E|Lead 15790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015791|115791|989898|1|9999015791|MR|Test|E|Lead 15791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015792|115792|989898|1|9999015792|MR|Test|E|Lead 15792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015793|115793|989898|1|9999015793|MR|Test|E|Lead 15793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015794|115794|989898|1|9999015794|MR|Test|E|Lead 15794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015795|115795|989898|1|9999015795|MR|Test|E|Lead 15795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015796|115796|989898|1|9999015796|MR|Test|E|Lead 15796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015797|115797|989898|1|9999015797|MR|Test|E|Lead 15797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015798|115798|989898|1|9999015798|MR|Test|E|Lead 15798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015799|115799|989898|1|9999015799|MR|Test|E|Lead 15799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015800|115800|989898|1|9999015800|MR|Test|E|Lead 15800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015801|115801|989898|1|9999015801|MR|Test|E|Lead 15801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015802|115802|989898|1|9999015802|MR|Test|E|Lead 15802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015803|115803|989898|1|9999015803|MR|Test|E|Lead 15803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015804|115804|989898|1|9999015804|MR|Test|E|Lead 15804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015805|115805|989898|1|9999015805|MR|Test|E|Lead 15805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015806|115806|989898|1|9999015806|MR|Test|E|Lead 15806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015807|115807|989898|1|9999015807|MR|Test|E|Lead 15807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015808|115808|989898|1|9999015808|MR|Test|E|Lead 15808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015809|115809|989898|1|9999015809|MR|Test|E|Lead 15809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015810|115810|989898|1|9999015810|MR|Test|E|Lead 15810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015811|115811|989898|1|9999015811|MR|Test|E|Lead 15811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015812|115812|989898|1|9999015812|MR|Test|E|Lead 15812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015813|115813|989898|1|9999015813|MR|Test|E|Lead 15813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015814|115814|989898|1|9999015814|MR|Test|E|Lead 15814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015815|115815|989898|1|9999015815|MR|Test|E|Lead 15815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015816|115816|989898|1|9999015816|MR|Test|E|Lead 15816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015817|115817|989898|1|9999015817|MR|Test|E|Lead 15817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015818|115818|989898|1|9999015818|MR|Test|E|Lead 15818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015819|115819|989898|1|9999015819|MR|Test|E|Lead 15819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015820|115820|989898|1|9999015820|MR|Test|E|Lead 15820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015821|115821|989898|1|9999015821|MR|Test|E|Lead 15821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015822|115822|989898|1|9999015822|MR|Test|E|Lead 15822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015823|115823|989898|1|9999015823|MR|Test|E|Lead 15823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015824|115824|989898|1|9999015824|MR|Test|E|Lead 15824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015825|115825|989898|1|9999015825|MR|Test|E|Lead 15825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015826|115826|989898|1|9999015826|MR|Test|E|Lead 15826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015827|115827|989898|1|9999015827|MR|Test|E|Lead 15827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015828|115828|989898|1|9999015828|MR|Test|E|Lead 15828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015829|115829|989898|1|9999015829|MR|Test|E|Lead 15829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015830|115830|989898|1|9999015830|MR|Test|E|Lead 15830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015831|115831|989898|1|9999015831|MR|Test|E|Lead 15831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015832|115832|989898|1|9999015832|MR|Test|E|Lead 15832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015833|115833|989898|1|9999015833|MR|Test|E|Lead 15833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015834|115834|989898|1|9999015834|MR|Test|E|Lead 15834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015835|115835|989898|1|9999015835|MR|Test|E|Lead 15835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015836|115836|989898|1|9999015836|MR|Test|E|Lead 15836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015837|115837|989898|1|9999015837|MR|Test|E|Lead 15837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015838|115838|989898|1|9999015838|MR|Test|E|Lead 15838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015839|115839|989898|1|9999015839|MR|Test|E|Lead 15839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015840|115840|989898|1|9999015840|MR|Test|E|Lead 15840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015841|115841|989898|1|9999015841|MR|Test|E|Lead 15841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015842|115842|989898|1|9999015842|MR|Test|E|Lead 15842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015843|115843|989898|1|9999015843|MR|Test|E|Lead 15843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015844|115844|989898|1|9999015844|MR|Test|E|Lead 15844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015845|115845|989898|1|9999015845|MR|Test|E|Lead 15845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015846|115846|989898|1|9999015846|MR|Test|E|Lead 15846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015847|115847|989898|1|9999015847|MR|Test|E|Lead 15847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015848|115848|989898|1|9999015848|MR|Test|E|Lead 15848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015849|115849|989898|1|9999015849|MR|Test|E|Lead 15849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015850|115850|989898|1|9999015850|MR|Test|E|Lead 15850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015851|115851|989898|1|9999015851|MR|Test|E|Lead 15851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015852|115852|989898|1|9999015852|MR|Test|E|Lead 15852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015853|115853|989898|1|9999015853|MR|Test|E|Lead 15853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015854|115854|989898|1|9999015854|MR|Test|E|Lead 15854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015855|115855|989898|1|9999015855|MR|Test|E|Lead 15855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015856|115856|989898|1|9999015856|MR|Test|E|Lead 15856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015857|115857|989898|1|9999015857|MR|Test|E|Lead 15857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015858|115858|989898|1|9999015858|MR|Test|E|Lead 15858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015859|115859|989898|1|9999015859|MR|Test|E|Lead 15859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015860|115860|989898|1|9999015860|MR|Test|E|Lead 15860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015861|115861|989898|1|9999015861|MR|Test|E|Lead 15861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015862|115862|989898|1|9999015862|MR|Test|E|Lead 15862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015863|115863|989898|1|9999015863|MR|Test|E|Lead 15863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015864|115864|989898|1|9999015864|MR|Test|E|Lead 15864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015865|115865|989898|1|9999015865|MR|Test|E|Lead 15865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015866|115866|989898|1|9999015866|MR|Test|E|Lead 15866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015867|115867|989898|1|9999015867|MR|Test|E|Lead 15867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015868|115868|989898|1|9999015868|MR|Test|E|Lead 15868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015869|115869|989898|1|9999015869|MR|Test|E|Lead 15869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015870|115870|989898|1|9999015870|MR|Test|E|Lead 15870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015871|115871|989898|1|9999015871|MR|Test|E|Lead 15871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015872|115872|989898|1|9999015872|MR|Test|E|Lead 15872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015873|115873|989898|1|9999015873|MR|Test|E|Lead 15873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015874|115874|989898|1|9999015874|MR|Test|E|Lead 15874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015875|115875|989898|1|9999015875|MR|Test|E|Lead 15875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015876|115876|989898|1|9999015876|MR|Test|E|Lead 15876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015877|115877|989898|1|9999015877|MR|Test|E|Lead 15877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015878|115878|989898|1|9999015878|MR|Test|E|Lead 15878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015879|115879|989898|1|9999015879|MR|Test|E|Lead 15879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015880|115880|989898|1|9999015880|MR|Test|E|Lead 15880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015881|115881|989898|1|9999015881|MR|Test|E|Lead 15881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015882|115882|989898|1|9999015882|MR|Test|E|Lead 15882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015883|115883|989898|1|9999015883|MR|Test|E|Lead 15883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015884|115884|989898|1|9999015884|MR|Test|E|Lead 15884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015885|115885|989898|1|9999015885|MR|Test|E|Lead 15885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015886|115886|989898|1|9999015886|MR|Test|E|Lead 15886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015887|115887|989898|1|9999015887|MR|Test|E|Lead 15887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015888|115888|989898|1|9999015888|MR|Test|E|Lead 15888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015889|115889|989898|1|9999015889|MR|Test|E|Lead 15889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015890|115890|989898|1|9999015890|MR|Test|E|Lead 15890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015891|115891|989898|1|9999015891|MR|Test|E|Lead 15891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015892|115892|989898|1|9999015892|MR|Test|E|Lead 15892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015893|115893|989898|1|9999015893|MR|Test|E|Lead 15893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015894|115894|989898|1|9999015894|MR|Test|E|Lead 15894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015895|115895|989898|1|9999015895|MR|Test|E|Lead 15895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015896|115896|989898|1|9999015896|MR|Test|E|Lead 15896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015897|115897|989898|1|9999015897|MR|Test|E|Lead 15897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015898|115898|989898|1|9999015898|MR|Test|E|Lead 15898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015899|115899|989898|1|9999015899|MR|Test|E|Lead 15899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015900|115900|989898|1|9999015900|MR|Test|E|Lead 15900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015901|115901|989898|1|9999015901|MR|Test|E|Lead 15901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015902|115902|989898|1|9999015902|MR|Test|E|Lead 15902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015903|115903|989898|1|9999015903|MR|Test|E|Lead 15903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015904|115904|989898|1|9999015904|MR|Test|E|Lead 15904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015905|115905|989898|1|9999015905|MR|Test|E|Lead 15905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015906|115906|989898|1|9999015906|MR|Test|E|Lead 15906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015907|115907|989898|1|9999015907|MR|Test|E|Lead 15907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015908|115908|989898|1|9999015908|MR|Test|E|Lead 15908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015909|115909|989898|1|9999015909|MR|Test|E|Lead 15909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015910|115910|989898|1|9999015910|MR|Test|E|Lead 15910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015911|115911|989898|1|9999015911|MR|Test|E|Lead 15911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015912|115912|989898|1|9999015912|MR|Test|E|Lead 15912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015913|115913|989898|1|9999015913|MR|Test|E|Lead 15913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015914|115914|989898|1|9999015914|MR|Test|E|Lead 15914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015915|115915|989898|1|9999015915|MR|Test|E|Lead 15915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015916|115916|989898|1|9999015916|MR|Test|E|Lead 15916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015917|115917|989898|1|9999015917|MR|Test|E|Lead 15917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015918|115918|989898|1|9999015918|MR|Test|E|Lead 15918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015919|115919|989898|1|9999015919|MR|Test|E|Lead 15919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015920|115920|989898|1|9999015920|MR|Test|E|Lead 15920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015921|115921|989898|1|9999015921|MR|Test|E|Lead 15921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015922|115922|989898|1|9999015922|MR|Test|E|Lead 15922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015923|115923|989898|1|9999015923|MR|Test|E|Lead 15923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015924|115924|989898|1|9999015924|MR|Test|E|Lead 15924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015925|115925|989898|1|9999015925|MR|Test|E|Lead 15925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015926|115926|989898|1|9999015926|MR|Test|E|Lead 15926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015927|115927|989898|1|9999015927|MR|Test|E|Lead 15927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015928|115928|989898|1|9999015928|MR|Test|E|Lead 15928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015929|115929|989898|1|9999015929|MR|Test|E|Lead 15929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015930|115930|989898|1|9999015930|MR|Test|E|Lead 15930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015931|115931|989898|1|9999015931|MR|Test|E|Lead 15931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015932|115932|989898|1|9999015932|MR|Test|E|Lead 15932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015933|115933|989898|1|9999015933|MR|Test|E|Lead 15933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015934|115934|989898|1|9999015934|MR|Test|E|Lead 15934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015935|115935|989898|1|9999015935|MR|Test|E|Lead 15935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015936|115936|989898|1|9999015936|MR|Test|E|Lead 15936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015937|115937|989898|1|9999015937|MR|Test|E|Lead 15937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015938|115938|989898|1|9999015938|MR|Test|E|Lead 15938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015939|115939|989898|1|9999015939|MR|Test|E|Lead 15939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015940|115940|989898|1|9999015940|MR|Test|E|Lead 15940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015941|115941|989898|1|9999015941|MR|Test|E|Lead 15941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015942|115942|989898|1|9999015942|MR|Test|E|Lead 15942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015943|115943|989898|1|9999015943|MR|Test|E|Lead 15943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015944|115944|989898|1|9999015944|MR|Test|E|Lead 15944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015945|115945|989898|1|9999015945|MR|Test|E|Lead 15945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015946|115946|989898|1|9999015946|MR|Test|E|Lead 15946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015947|115947|989898|1|9999015947|MR|Test|E|Lead 15947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015948|115948|989898|1|9999015948|MR|Test|E|Lead 15948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015949|115949|989898|1|9999015949|MR|Test|E|Lead 15949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015950|115950|989898|1|9999015950|MR|Test|E|Lead 15950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015951|115951|989898|1|9999015951|MR|Test|E|Lead 15951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015952|115952|989898|1|9999015952|MR|Test|E|Lead 15952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015953|115953|989898|1|9999015953|MR|Test|E|Lead 15953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015954|115954|989898|1|9999015954|MR|Test|E|Lead 15954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015955|115955|989898|1|9999015955|MR|Test|E|Lead 15955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015956|115956|989898|1|9999015956|MR|Test|E|Lead 15956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015957|115957|989898|1|9999015957|MR|Test|E|Lead 15957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015958|115958|989898|1|9999015958|MR|Test|E|Lead 15958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015959|115959|989898|1|9999015959|MR|Test|E|Lead 15959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015960|115960|989898|1|9999015960|MR|Test|E|Lead 15960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015961|115961|989898|1|9999015961|MR|Test|E|Lead 15961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015962|115962|989898|1|9999015962|MR|Test|E|Lead 15962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015963|115963|989898|1|9999015963|MR|Test|E|Lead 15963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015964|115964|989898|1|9999015964|MR|Test|E|Lead 15964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015965|115965|989898|1|9999015965|MR|Test|E|Lead 15965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015966|115966|989898|1|9999015966|MR|Test|E|Lead 15966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015967|115967|989898|1|9999015967|MR|Test|E|Lead 15967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015968|115968|989898|1|9999015968|MR|Test|E|Lead 15968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015969|115969|989898|1|9999015969|MR|Test|E|Lead 15969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015970|115970|989898|1|9999015970|MR|Test|E|Lead 15970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015971|115971|989898|1|9999015971|MR|Test|E|Lead 15971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015972|115972|989898|1|9999015972|MR|Test|E|Lead 15972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015973|115973|989898|1|9999015973|MR|Test|E|Lead 15973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015974|115974|989898|1|9999015974|MR|Test|E|Lead 15974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015975|115975|989898|1|9999015975|MR|Test|E|Lead 15975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015976|115976|989898|1|9999015976|MR|Test|E|Lead 15976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015977|115977|989898|1|9999015977|MR|Test|E|Lead 15977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015978|115978|989898|1|9999015978|MR|Test|E|Lead 15978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015979|115979|989898|1|9999015979|MR|Test|E|Lead 15979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015980|115980|989898|1|9999015980|MR|Test|E|Lead 15980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015981|115981|989898|1|9999015981|MR|Test|E|Lead 15981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015982|115982|989898|1|9999015982|MR|Test|E|Lead 15982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015983|115983|989898|1|9999015983|MR|Test|E|Lead 15983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015984|115984|989898|1|9999015984|MR|Test|E|Lead 15984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015985|115985|989898|1|9999015985|MR|Test|E|Lead 15985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015986|115986|989898|1|9999015986|MR|Test|E|Lead 15986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015987|115987|989898|1|9999015987|MR|Test|E|Lead 15987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015988|115988|989898|1|9999015988|MR|Test|E|Lead 15988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015989|115989|989898|1|9999015989|MR|Test|E|Lead 15989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015990|115990|989898|1|9999015990|MR|Test|E|Lead 15990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015991|115991|989898|1|9999015991|MR|Test|E|Lead 15991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015992|115992|989898|1|9999015992|MR|Test|E|Lead 15992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015993|115993|989898|1|9999015993|MR|Test|E|Lead 15993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015994|115994|989898|1|9999015994|MR|Test|E|Lead 15994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015995|115995|989898|1|9999015995|MR|Test|E|Lead 15995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015996|115996|989898|1|9999015996|MR|Test|E|Lead 15996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015997|115997|989898|1|9999015997|MR|Test|E|Lead 15997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015998|115998|989898|1|9999015998|MR|Test|E|Lead 15998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1015999|115999|989898|1|9999015999|MR|Test|E|Lead 15999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016000|116000|989898|1|9999016000|MR|Test|E|Lead 16000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016001|116001|989898|1|9999016001|MR|Test|E|Lead 16001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016002|116002|989898|1|9999016002|MR|Test|E|Lead 16002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016003|116003|989898|1|9999016003|MR|Test|E|Lead 16003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016004|116004|989898|1|9999016004|MR|Test|E|Lead 16004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016005|116005|989898|1|9999016005|MR|Test|E|Lead 16005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016006|116006|989898|1|9999016006|MR|Test|E|Lead 16006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016007|116007|989898|1|9999016007|MR|Test|E|Lead 16007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016008|116008|989898|1|9999016008|MR|Test|E|Lead 16008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016009|116009|989898|1|9999016009|MR|Test|E|Lead 16009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016010|116010|989898|1|9999016010|MR|Test|E|Lead 16010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016011|116011|989898|1|9999016011|MR|Test|E|Lead 16011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016012|116012|989898|1|9999016012|MR|Test|E|Lead 16012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016013|116013|989898|1|9999016013|MR|Test|E|Lead 16013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016014|116014|989898|1|9999016014|MR|Test|E|Lead 16014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016015|116015|989898|1|9999016015|MR|Test|E|Lead 16015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016016|116016|989898|1|9999016016|MR|Test|E|Lead 16016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016017|116017|989898|1|9999016017|MR|Test|E|Lead 16017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016018|116018|989898|1|9999016018|MR|Test|E|Lead 16018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016019|116019|989898|1|9999016019|MR|Test|E|Lead 16019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016020|116020|989898|1|9999016020|MR|Test|E|Lead 16020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016021|116021|989898|1|9999016021|MR|Test|E|Lead 16021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016022|116022|989898|1|9999016022|MR|Test|E|Lead 16022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016023|116023|989898|1|9999016023|MR|Test|E|Lead 16023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016024|116024|989898|1|9999016024|MR|Test|E|Lead 16024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016025|116025|989898|1|9999016025|MR|Test|E|Lead 16025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016026|116026|989898|1|9999016026|MR|Test|E|Lead 16026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016027|116027|989898|1|9999016027|MR|Test|E|Lead 16027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016028|116028|989898|1|9999016028|MR|Test|E|Lead 16028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016029|116029|989898|1|9999016029|MR|Test|E|Lead 16029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016030|116030|989898|1|9999016030|MR|Test|E|Lead 16030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016031|116031|989898|1|9999016031|MR|Test|E|Lead 16031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016032|116032|989898|1|9999016032|MR|Test|E|Lead 16032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016033|116033|989898|1|9999016033|MR|Test|E|Lead 16033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016034|116034|989898|1|9999016034|MR|Test|E|Lead 16034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016035|116035|989898|1|9999016035|MR|Test|E|Lead 16035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016036|116036|989898|1|9999016036|MR|Test|E|Lead 16036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016037|116037|989898|1|9999016037|MR|Test|E|Lead 16037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016038|116038|989898|1|9999016038|MR|Test|E|Lead 16038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016039|116039|989898|1|9999016039|MR|Test|E|Lead 16039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016040|116040|989898|1|9999016040|MR|Test|E|Lead 16040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016041|116041|989898|1|9999016041|MR|Test|E|Lead 16041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016042|116042|989898|1|9999016042|MR|Test|E|Lead 16042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016043|116043|989898|1|9999016043|MR|Test|E|Lead 16043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016044|116044|989898|1|9999016044|MR|Test|E|Lead 16044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016045|116045|989898|1|9999016045|MR|Test|E|Lead 16045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016046|116046|989898|1|9999016046|MR|Test|E|Lead 16046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016047|116047|989898|1|9999016047|MR|Test|E|Lead 16047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016048|116048|989898|1|9999016048|MR|Test|E|Lead 16048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016049|116049|989898|1|9999016049|MR|Test|E|Lead 16049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016050|116050|989898|1|9999016050|MR|Test|E|Lead 16050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016051|116051|989898|1|9999016051|MR|Test|E|Lead 16051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016052|116052|989898|1|9999016052|MR|Test|E|Lead 16052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016053|116053|989898|1|9999016053|MR|Test|E|Lead 16053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016054|116054|989898|1|9999016054|MR|Test|E|Lead 16054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016055|116055|989898|1|9999016055|MR|Test|E|Lead 16055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016056|116056|989898|1|9999016056|MR|Test|E|Lead 16056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016057|116057|989898|1|9999016057|MR|Test|E|Lead 16057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016058|116058|989898|1|9999016058|MR|Test|E|Lead 16058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016059|116059|989898|1|9999016059|MR|Test|E|Lead 16059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016060|116060|989898|1|9999016060|MR|Test|E|Lead 16060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016061|116061|989898|1|9999016061|MR|Test|E|Lead 16061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016062|116062|989898|1|9999016062|MR|Test|E|Lead 16062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016063|116063|989898|1|9999016063|MR|Test|E|Lead 16063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016064|116064|989898|1|9999016064|MR|Test|E|Lead 16064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016065|116065|989898|1|9999016065|MR|Test|E|Lead 16065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016066|116066|989898|1|9999016066|MR|Test|E|Lead 16066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016067|116067|989898|1|9999016067|MR|Test|E|Lead 16067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016068|116068|989898|1|9999016068|MR|Test|E|Lead 16068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016069|116069|989898|1|9999016069|MR|Test|E|Lead 16069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016070|116070|989898|1|9999016070|MR|Test|E|Lead 16070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016071|116071|989898|1|9999016071|MR|Test|E|Lead 16071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016072|116072|989898|1|9999016072|MR|Test|E|Lead 16072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016073|116073|989898|1|9999016073|MR|Test|E|Lead 16073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016074|116074|989898|1|9999016074|MR|Test|E|Lead 16074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016075|116075|989898|1|9999016075|MR|Test|E|Lead 16075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016076|116076|989898|1|9999016076|MR|Test|E|Lead 16076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016077|116077|989898|1|9999016077|MR|Test|E|Lead 16077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016078|116078|989898|1|9999016078|MR|Test|E|Lead 16078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016079|116079|989898|1|9999016079|MR|Test|E|Lead 16079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016080|116080|989898|1|9999016080|MR|Test|E|Lead 16080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016081|116081|989898|1|9999016081|MR|Test|E|Lead 16081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016082|116082|989898|1|9999016082|MR|Test|E|Lead 16082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016083|116083|989898|1|9999016083|MR|Test|E|Lead 16083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016084|116084|989898|1|9999016084|MR|Test|E|Lead 16084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016085|116085|989898|1|9999016085|MR|Test|E|Lead 16085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016086|116086|989898|1|9999016086|MR|Test|E|Lead 16086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016087|116087|989898|1|9999016087|MR|Test|E|Lead 16087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016088|116088|989898|1|9999016088|MR|Test|E|Lead 16088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016089|116089|989898|1|9999016089|MR|Test|E|Lead 16089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016090|116090|989898|1|9999016090|MR|Test|E|Lead 16090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016091|116091|989898|1|9999016091|MR|Test|E|Lead 16091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016092|116092|989898|1|9999016092|MR|Test|E|Lead 16092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016093|116093|989898|1|9999016093|MR|Test|E|Lead 16093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016094|116094|989898|1|9999016094|MR|Test|E|Lead 16094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016095|116095|989898|1|9999016095|MR|Test|E|Lead 16095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016096|116096|989898|1|9999016096|MR|Test|E|Lead 16096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016097|116097|989898|1|9999016097|MR|Test|E|Lead 16097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016098|116098|989898|1|9999016098|MR|Test|E|Lead 16098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016099|116099|989898|1|9999016099|MR|Test|E|Lead 16099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016100|116100|989898|1|9999016100|MR|Test|E|Lead 16100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016101|116101|989898|1|9999016101|MR|Test|E|Lead 16101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016102|116102|989898|1|9999016102|MR|Test|E|Lead 16102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016103|116103|989898|1|9999016103|MR|Test|E|Lead 16103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016104|116104|989898|1|9999016104|MR|Test|E|Lead 16104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016105|116105|989898|1|9999016105|MR|Test|E|Lead 16105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016106|116106|989898|1|9999016106|MR|Test|E|Lead 16106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016107|116107|989898|1|9999016107|MR|Test|E|Lead 16107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016108|116108|989898|1|9999016108|MR|Test|E|Lead 16108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016109|116109|989898|1|9999016109|MR|Test|E|Lead 16109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016110|116110|989898|1|9999016110|MR|Test|E|Lead 16110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016111|116111|989898|1|9999016111|MR|Test|E|Lead 16111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016112|116112|989898|1|9999016112|MR|Test|E|Lead 16112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016113|116113|989898|1|9999016113|MR|Test|E|Lead 16113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016114|116114|989898|1|9999016114|MR|Test|E|Lead 16114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016115|116115|989898|1|9999016115|MR|Test|E|Lead 16115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016116|116116|989898|1|9999016116|MR|Test|E|Lead 16116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016117|116117|989898|1|9999016117|MR|Test|E|Lead 16117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016118|116118|989898|1|9999016118|MR|Test|E|Lead 16118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016119|116119|989898|1|9999016119|MR|Test|E|Lead 16119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016120|116120|989898|1|9999016120|MR|Test|E|Lead 16120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016121|116121|989898|1|9999016121|MR|Test|E|Lead 16121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016122|116122|989898|1|9999016122|MR|Test|E|Lead 16122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016123|116123|989898|1|9999016123|MR|Test|E|Lead 16123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016124|116124|989898|1|9999016124|MR|Test|E|Lead 16124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016125|116125|989898|1|9999016125|MR|Test|E|Lead 16125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016126|116126|989898|1|9999016126|MR|Test|E|Lead 16126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016127|116127|989898|1|9999016127|MR|Test|E|Lead 16127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016128|116128|989898|1|9999016128|MR|Test|E|Lead 16128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016129|116129|989898|1|9999016129|MR|Test|E|Lead 16129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016130|116130|989898|1|9999016130|MR|Test|E|Lead 16130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016131|116131|989898|1|9999016131|MR|Test|E|Lead 16131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016132|116132|989898|1|9999016132|MR|Test|E|Lead 16132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016133|116133|989898|1|9999016133|MR|Test|E|Lead 16133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016134|116134|989898|1|9999016134|MR|Test|E|Lead 16134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016135|116135|989898|1|9999016135|MR|Test|E|Lead 16135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016136|116136|989898|1|9999016136|MR|Test|E|Lead 16136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016137|116137|989898|1|9999016137|MR|Test|E|Lead 16137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016138|116138|989898|1|9999016138|MR|Test|E|Lead 16138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016139|116139|989898|1|9999016139|MR|Test|E|Lead 16139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016140|116140|989898|1|9999016140|MR|Test|E|Lead 16140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016141|116141|989898|1|9999016141|MR|Test|E|Lead 16141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016142|116142|989898|1|9999016142|MR|Test|E|Lead 16142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016143|116143|989898|1|9999016143|MR|Test|E|Lead 16143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016144|116144|989898|1|9999016144|MR|Test|E|Lead 16144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016145|116145|989898|1|9999016145|MR|Test|E|Lead 16145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016146|116146|989898|1|9999016146|MR|Test|E|Lead 16146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016147|116147|989898|1|9999016147|MR|Test|E|Lead 16147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016148|116148|989898|1|9999016148|MR|Test|E|Lead 16148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016149|116149|989898|1|9999016149|MR|Test|E|Lead 16149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016150|116150|989898|1|9999016150|MR|Test|E|Lead 16150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016151|116151|989898|1|9999016151|MR|Test|E|Lead 16151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016152|116152|989898|1|9999016152|MR|Test|E|Lead 16152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016153|116153|989898|1|9999016153|MR|Test|E|Lead 16153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016154|116154|989898|1|9999016154|MR|Test|E|Lead 16154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016155|116155|989898|1|9999016155|MR|Test|E|Lead 16155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016156|116156|989898|1|9999016156|MR|Test|E|Lead 16156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016157|116157|989898|1|9999016157|MR|Test|E|Lead 16157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016158|116158|989898|1|9999016158|MR|Test|E|Lead 16158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016159|116159|989898|1|9999016159|MR|Test|E|Lead 16159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016160|116160|989898|1|9999016160|MR|Test|E|Lead 16160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016161|116161|989898|1|9999016161|MR|Test|E|Lead 16161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016162|116162|989898|1|9999016162|MR|Test|E|Lead 16162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016163|116163|989898|1|9999016163|MR|Test|E|Lead 16163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016164|116164|989898|1|9999016164|MR|Test|E|Lead 16164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016165|116165|989898|1|9999016165|MR|Test|E|Lead 16165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016166|116166|989898|1|9999016166|MR|Test|E|Lead 16166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016167|116167|989898|1|9999016167|MR|Test|E|Lead 16167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016168|116168|989898|1|9999016168|MR|Test|E|Lead 16168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016169|116169|989898|1|9999016169|MR|Test|E|Lead 16169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016170|116170|989898|1|9999016170|MR|Test|E|Lead 16170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016171|116171|989898|1|9999016171|MR|Test|E|Lead 16171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016172|116172|989898|1|9999016172|MR|Test|E|Lead 16172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016173|116173|989898|1|9999016173|MR|Test|E|Lead 16173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016174|116174|989898|1|9999016174|MR|Test|E|Lead 16174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016175|116175|989898|1|9999016175|MR|Test|E|Lead 16175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016176|116176|989898|1|9999016176|MR|Test|E|Lead 16176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016177|116177|989898|1|9999016177|MR|Test|E|Lead 16177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016178|116178|989898|1|9999016178|MR|Test|E|Lead 16178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016179|116179|989898|1|9999016179|MR|Test|E|Lead 16179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016180|116180|989898|1|9999016180|MR|Test|E|Lead 16180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016181|116181|989898|1|9999016181|MR|Test|E|Lead 16181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016182|116182|989898|1|9999016182|MR|Test|E|Lead 16182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016183|116183|989898|1|9999016183|MR|Test|E|Lead 16183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016184|116184|989898|1|9999016184|MR|Test|E|Lead 16184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016185|116185|989898|1|9999016185|MR|Test|E|Lead 16185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016186|116186|989898|1|9999016186|MR|Test|E|Lead 16186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016187|116187|989898|1|9999016187|MR|Test|E|Lead 16187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016188|116188|989898|1|9999016188|MR|Test|E|Lead 16188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016189|116189|989898|1|9999016189|MR|Test|E|Lead 16189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016190|116190|989898|1|9999016190|MR|Test|E|Lead 16190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016191|116191|989898|1|9999016191|MR|Test|E|Lead 16191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016192|116192|989898|1|9999016192|MR|Test|E|Lead 16192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016193|116193|989898|1|9999016193|MR|Test|E|Lead 16193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016194|116194|989898|1|9999016194|MR|Test|E|Lead 16194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016195|116195|989898|1|9999016195|MR|Test|E|Lead 16195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016196|116196|989898|1|9999016196|MR|Test|E|Lead 16196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016197|116197|989898|1|9999016197|MR|Test|E|Lead 16197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016198|116198|989898|1|9999016198|MR|Test|E|Lead 16198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016199|116199|989898|1|9999016199|MR|Test|E|Lead 16199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016200|116200|989898|1|9999016200|MR|Test|E|Lead 16200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016201|116201|989898|1|9999016201|MR|Test|E|Lead 16201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016202|116202|989898|1|9999016202|MR|Test|E|Lead 16202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016203|116203|989898|1|9999016203|MR|Test|E|Lead 16203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016204|116204|989898|1|9999016204|MR|Test|E|Lead 16204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016205|116205|989898|1|9999016205|MR|Test|E|Lead 16205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016206|116206|989898|1|9999016206|MR|Test|E|Lead 16206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016207|116207|989898|1|9999016207|MR|Test|E|Lead 16207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016208|116208|989898|1|9999016208|MR|Test|E|Lead 16208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016209|116209|989898|1|9999016209|MR|Test|E|Lead 16209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016210|116210|989898|1|9999016210|MR|Test|E|Lead 16210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016211|116211|989898|1|9999016211|MR|Test|E|Lead 16211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016212|116212|989898|1|9999016212|MR|Test|E|Lead 16212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016213|116213|989898|1|9999016213|MR|Test|E|Lead 16213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016214|116214|989898|1|9999016214|MR|Test|E|Lead 16214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016215|116215|989898|1|9999016215|MR|Test|E|Lead 16215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016216|116216|989898|1|9999016216|MR|Test|E|Lead 16216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016217|116217|989898|1|9999016217|MR|Test|E|Lead 16217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016218|116218|989898|1|9999016218|MR|Test|E|Lead 16218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016219|116219|989898|1|9999016219|MR|Test|E|Lead 16219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016220|116220|989898|1|9999016220|MR|Test|E|Lead 16220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016221|116221|989898|1|9999016221|MR|Test|E|Lead 16221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016222|116222|989898|1|9999016222|MR|Test|E|Lead 16222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016223|116223|989898|1|9999016223|MR|Test|E|Lead 16223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016224|116224|989898|1|9999016224|MR|Test|E|Lead 16224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016225|116225|989898|1|9999016225|MR|Test|E|Lead 16225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016226|116226|989898|1|9999016226|MR|Test|E|Lead 16226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016227|116227|989898|1|9999016227|MR|Test|E|Lead 16227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016228|116228|989898|1|9999016228|MR|Test|E|Lead 16228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016229|116229|989898|1|9999016229|MR|Test|E|Lead 16229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016230|116230|989898|1|9999016230|MR|Test|E|Lead 16230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016231|116231|989898|1|9999016231|MR|Test|E|Lead 16231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016232|116232|989898|1|9999016232|MR|Test|E|Lead 16232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016233|116233|989898|1|9999016233|MR|Test|E|Lead 16233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016234|116234|989898|1|9999016234|MR|Test|E|Lead 16234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016235|116235|989898|1|9999016235|MR|Test|E|Lead 16235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016236|116236|989898|1|9999016236|MR|Test|E|Lead 16236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016237|116237|989898|1|9999016237|MR|Test|E|Lead 16237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016238|116238|989898|1|9999016238|MR|Test|E|Lead 16238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016239|116239|989898|1|9999016239|MR|Test|E|Lead 16239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016240|116240|989898|1|9999016240|MR|Test|E|Lead 16240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016241|116241|989898|1|9999016241|MR|Test|E|Lead 16241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016242|116242|989898|1|9999016242|MR|Test|E|Lead 16242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016243|116243|989898|1|9999016243|MR|Test|E|Lead 16243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016244|116244|989898|1|9999016244|MR|Test|E|Lead 16244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016245|116245|989898|1|9999016245|MR|Test|E|Lead 16245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016246|116246|989898|1|9999016246|MR|Test|E|Lead 16246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016247|116247|989898|1|9999016247|MR|Test|E|Lead 16247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016248|116248|989898|1|9999016248|MR|Test|E|Lead 16248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016249|116249|989898|1|9999016249|MR|Test|E|Lead 16249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016250|116250|989898|1|9999016250|MR|Test|E|Lead 16250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016251|116251|989898|1|9999016251|MR|Test|E|Lead 16251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016252|116252|989898|1|9999016252|MR|Test|E|Lead 16252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016253|116253|989898|1|9999016253|MR|Test|E|Lead 16253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016254|116254|989898|1|9999016254|MR|Test|E|Lead 16254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016255|116255|989898|1|9999016255|MR|Test|E|Lead 16255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016256|116256|989898|1|9999016256|MR|Test|E|Lead 16256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016257|116257|989898|1|9999016257|MR|Test|E|Lead 16257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016258|116258|989898|1|9999016258|MR|Test|E|Lead 16258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016259|116259|989898|1|9999016259|MR|Test|E|Lead 16259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016260|116260|989898|1|9999016260|MR|Test|E|Lead 16260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016261|116261|989898|1|9999016261|MR|Test|E|Lead 16261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016262|116262|989898|1|9999016262|MR|Test|E|Lead 16262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016263|116263|989898|1|9999016263|MR|Test|E|Lead 16263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016264|116264|989898|1|9999016264|MR|Test|E|Lead 16264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016265|116265|989898|1|9999016265|MR|Test|E|Lead 16265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016266|116266|989898|1|9999016266|MR|Test|E|Lead 16266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016267|116267|989898|1|9999016267|MR|Test|E|Lead 16267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016268|116268|989898|1|9999016268|MR|Test|E|Lead 16268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016269|116269|989898|1|9999016269|MR|Test|E|Lead 16269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016270|116270|989898|1|9999016270|MR|Test|E|Lead 16270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016271|116271|989898|1|9999016271|MR|Test|E|Lead 16271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016272|116272|989898|1|9999016272|MR|Test|E|Lead 16272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016273|116273|989898|1|9999016273|MR|Test|E|Lead 16273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016274|116274|989898|1|9999016274|MR|Test|E|Lead 16274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016275|116275|989898|1|9999016275|MR|Test|E|Lead 16275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016276|116276|989898|1|9999016276|MR|Test|E|Lead 16276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016277|116277|989898|1|9999016277|MR|Test|E|Lead 16277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016278|116278|989898|1|9999016278|MR|Test|E|Lead 16278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016279|116279|989898|1|9999016279|MR|Test|E|Lead 16279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016280|116280|989898|1|9999016280|MR|Test|E|Lead 16280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016281|116281|989898|1|9999016281|MR|Test|E|Lead 16281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016282|116282|989898|1|9999016282|MR|Test|E|Lead 16282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016283|116283|989898|1|9999016283|MR|Test|E|Lead 16283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016284|116284|989898|1|9999016284|MR|Test|E|Lead 16284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016285|116285|989898|1|9999016285|MR|Test|E|Lead 16285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016286|116286|989898|1|9999016286|MR|Test|E|Lead 16286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016287|116287|989898|1|9999016287|MR|Test|E|Lead 16287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016288|116288|989898|1|9999016288|MR|Test|E|Lead 16288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016289|116289|989898|1|9999016289|MR|Test|E|Lead 16289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016290|116290|989898|1|9999016290|MR|Test|E|Lead 16290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016291|116291|989898|1|9999016291|MR|Test|E|Lead 16291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016292|116292|989898|1|9999016292|MR|Test|E|Lead 16292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016293|116293|989898|1|9999016293|MR|Test|E|Lead 16293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016294|116294|989898|1|9999016294|MR|Test|E|Lead 16294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016295|116295|989898|1|9999016295|MR|Test|E|Lead 16295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016296|116296|989898|1|9999016296|MR|Test|E|Lead 16296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016297|116297|989898|1|9999016297|MR|Test|E|Lead 16297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016298|116298|989898|1|9999016298|MR|Test|E|Lead 16298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016299|116299|989898|1|9999016299|MR|Test|E|Lead 16299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016300|116300|989898|1|9999016300|MR|Test|E|Lead 16300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016301|116301|989898|1|9999016301|MR|Test|E|Lead 16301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016302|116302|989898|1|9999016302|MR|Test|E|Lead 16302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016303|116303|989898|1|9999016303|MR|Test|E|Lead 16303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016304|116304|989898|1|9999016304|MR|Test|E|Lead 16304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016305|116305|989898|1|9999016305|MR|Test|E|Lead 16305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016306|116306|989898|1|9999016306|MR|Test|E|Lead 16306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016307|116307|989898|1|9999016307|MR|Test|E|Lead 16307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016308|116308|989898|1|9999016308|MR|Test|E|Lead 16308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016309|116309|989898|1|9999016309|MR|Test|E|Lead 16309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016310|116310|989898|1|9999016310|MR|Test|E|Lead 16310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016311|116311|989898|1|9999016311|MR|Test|E|Lead 16311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016312|116312|989898|1|9999016312|MR|Test|E|Lead 16312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016313|116313|989898|1|9999016313|MR|Test|E|Lead 16313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016314|116314|989898|1|9999016314|MR|Test|E|Lead 16314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016315|116315|989898|1|9999016315|MR|Test|E|Lead 16315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016316|116316|989898|1|9999016316|MR|Test|E|Lead 16316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016317|116317|989898|1|9999016317|MR|Test|E|Lead 16317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016318|116318|989898|1|9999016318|MR|Test|E|Lead 16318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016319|116319|989898|1|9999016319|MR|Test|E|Lead 16319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016320|116320|989898|1|9999016320|MR|Test|E|Lead 16320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016321|116321|989898|1|9999016321|MR|Test|E|Lead 16321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016322|116322|989898|1|9999016322|MR|Test|E|Lead 16322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016323|116323|989898|1|9999016323|MR|Test|E|Lead 16323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016324|116324|989898|1|9999016324|MR|Test|E|Lead 16324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016325|116325|989898|1|9999016325|MR|Test|E|Lead 16325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016326|116326|989898|1|9999016326|MR|Test|E|Lead 16326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016327|116327|989898|1|9999016327|MR|Test|E|Lead 16327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016328|116328|989898|1|9999016328|MR|Test|E|Lead 16328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016329|116329|989898|1|9999016329|MR|Test|E|Lead 16329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016330|116330|989898|1|9999016330|MR|Test|E|Lead 16330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016331|116331|989898|1|9999016331|MR|Test|E|Lead 16331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016332|116332|989898|1|9999016332|MR|Test|E|Lead 16332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016333|116333|989898|1|9999016333|MR|Test|E|Lead 16333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016334|116334|989898|1|9999016334|MR|Test|E|Lead 16334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016335|116335|989898|1|9999016335|MR|Test|E|Lead 16335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016336|116336|989898|1|9999016336|MR|Test|E|Lead 16336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016337|116337|989898|1|9999016337|MR|Test|E|Lead 16337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016338|116338|989898|1|9999016338|MR|Test|E|Lead 16338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016339|116339|989898|1|9999016339|MR|Test|E|Lead 16339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016340|116340|989898|1|9999016340|MR|Test|E|Lead 16340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016341|116341|989898|1|9999016341|MR|Test|E|Lead 16341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016342|116342|989898|1|9999016342|MR|Test|E|Lead 16342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016343|116343|989898|1|9999016343|MR|Test|E|Lead 16343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016344|116344|989898|1|9999016344|MR|Test|E|Lead 16344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016345|116345|989898|1|9999016345|MR|Test|E|Lead 16345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016346|116346|989898|1|9999016346|MR|Test|E|Lead 16346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016347|116347|989898|1|9999016347|MR|Test|E|Lead 16347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016348|116348|989898|1|9999016348|MR|Test|E|Lead 16348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016349|116349|989898|1|9999016349|MR|Test|E|Lead 16349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016350|116350|989898|1|9999016350|MR|Test|E|Lead 16350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016351|116351|989898|1|9999016351|MR|Test|E|Lead 16351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016352|116352|989898|1|9999016352|MR|Test|E|Lead 16352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016353|116353|989898|1|9999016353|MR|Test|E|Lead 16353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016354|116354|989898|1|9999016354|MR|Test|E|Lead 16354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016355|116355|989898|1|9999016355|MR|Test|E|Lead 16355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016356|116356|989898|1|9999016356|MR|Test|E|Lead 16356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016357|116357|989898|1|9999016357|MR|Test|E|Lead 16357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016358|116358|989898|1|9999016358|MR|Test|E|Lead 16358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016359|116359|989898|1|9999016359|MR|Test|E|Lead 16359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016360|116360|989898|1|9999016360|MR|Test|E|Lead 16360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016361|116361|989898|1|9999016361|MR|Test|E|Lead 16361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016362|116362|989898|1|9999016362|MR|Test|E|Lead 16362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016363|116363|989898|1|9999016363|MR|Test|E|Lead 16363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016364|116364|989898|1|9999016364|MR|Test|E|Lead 16364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016365|116365|989898|1|9999016365|MR|Test|E|Lead 16365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016366|116366|989898|1|9999016366|MR|Test|E|Lead 16366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016367|116367|989898|1|9999016367|MR|Test|E|Lead 16367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016368|116368|989898|1|9999016368|MR|Test|E|Lead 16368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016369|116369|989898|1|9999016369|MR|Test|E|Lead 16369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016370|116370|989898|1|9999016370|MR|Test|E|Lead 16370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016371|116371|989898|1|9999016371|MR|Test|E|Lead 16371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016372|116372|989898|1|9999016372|MR|Test|E|Lead 16372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016373|116373|989898|1|9999016373|MR|Test|E|Lead 16373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016374|116374|989898|1|9999016374|MR|Test|E|Lead 16374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016375|116375|989898|1|9999016375|MR|Test|E|Lead 16375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016376|116376|989898|1|9999016376|MR|Test|E|Lead 16376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016377|116377|989898|1|9999016377|MR|Test|E|Lead 16377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016378|116378|989898|1|9999016378|MR|Test|E|Lead 16378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016379|116379|989898|1|9999016379|MR|Test|E|Lead 16379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016380|116380|989898|1|9999016380|MR|Test|E|Lead 16380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016381|116381|989898|1|9999016381|MR|Test|E|Lead 16381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016382|116382|989898|1|9999016382|MR|Test|E|Lead 16382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016383|116383|989898|1|9999016383|MR|Test|E|Lead 16383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016384|116384|989898|1|9999016384|MR|Test|E|Lead 16384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016385|116385|989898|1|9999016385|MR|Test|E|Lead 16385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016386|116386|989898|1|9999016386|MR|Test|E|Lead 16386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016387|116387|989898|1|9999016387|MR|Test|E|Lead 16387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016388|116388|989898|1|9999016388|MR|Test|E|Lead 16388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016389|116389|989898|1|9999016389|MR|Test|E|Lead 16389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016390|116390|989898|1|9999016390|MR|Test|E|Lead 16390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016391|116391|989898|1|9999016391|MR|Test|E|Lead 16391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016392|116392|989898|1|9999016392|MR|Test|E|Lead 16392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016393|116393|989898|1|9999016393|MR|Test|E|Lead 16393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016394|116394|989898|1|9999016394|MR|Test|E|Lead 16394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016395|116395|989898|1|9999016395|MR|Test|E|Lead 16395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016396|116396|989898|1|9999016396|MR|Test|E|Lead 16396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016397|116397|989898|1|9999016397|MR|Test|E|Lead 16397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016398|116398|989898|1|9999016398|MR|Test|E|Lead 16398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016399|116399|989898|1|9999016399|MR|Test|E|Lead 16399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016400|116400|989898|1|9999016400|MR|Test|E|Lead 16400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016401|116401|989898|1|9999016401|MR|Test|E|Lead 16401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016402|116402|989898|1|9999016402|MR|Test|E|Lead 16402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016403|116403|989898|1|9999016403|MR|Test|E|Lead 16403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016404|116404|989898|1|9999016404|MR|Test|E|Lead 16404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016405|116405|989898|1|9999016405|MR|Test|E|Lead 16405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016406|116406|989898|1|9999016406|MR|Test|E|Lead 16406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016407|116407|989898|1|9999016407|MR|Test|E|Lead 16407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016408|116408|989898|1|9999016408|MR|Test|E|Lead 16408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016409|116409|989898|1|9999016409|MR|Test|E|Lead 16409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016410|116410|989898|1|9999016410|MR|Test|E|Lead 16410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016411|116411|989898|1|9999016411|MR|Test|E|Lead 16411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016412|116412|989898|1|9999016412|MR|Test|E|Lead 16412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016413|116413|989898|1|9999016413|MR|Test|E|Lead 16413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016414|116414|989898|1|9999016414|MR|Test|E|Lead 16414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016415|116415|989898|1|9999016415|MR|Test|E|Lead 16415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016416|116416|989898|1|9999016416|MR|Test|E|Lead 16416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016417|116417|989898|1|9999016417|MR|Test|E|Lead 16417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016418|116418|989898|1|9999016418|MR|Test|E|Lead 16418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016419|116419|989898|1|9999016419|MR|Test|E|Lead 16419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016420|116420|989898|1|9999016420|MR|Test|E|Lead 16420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016421|116421|989898|1|9999016421|MR|Test|E|Lead 16421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016422|116422|989898|1|9999016422|MR|Test|E|Lead 16422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016423|116423|989898|1|9999016423|MR|Test|E|Lead 16423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016424|116424|989898|1|9999016424|MR|Test|E|Lead 16424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016425|116425|989898|1|9999016425|MR|Test|E|Lead 16425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016426|116426|989898|1|9999016426|MR|Test|E|Lead 16426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016427|116427|989898|1|9999016427|MR|Test|E|Lead 16427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016428|116428|989898|1|9999016428|MR|Test|E|Lead 16428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016429|116429|989898|1|9999016429|MR|Test|E|Lead 16429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016430|116430|989898|1|9999016430|MR|Test|E|Lead 16430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016431|116431|989898|1|9999016431|MR|Test|E|Lead 16431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016432|116432|989898|1|9999016432|MR|Test|E|Lead 16432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016433|116433|989898|1|9999016433|MR|Test|E|Lead 16433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016434|116434|989898|1|9999016434|MR|Test|E|Lead 16434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016435|116435|989898|1|9999016435|MR|Test|E|Lead 16435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016436|116436|989898|1|9999016436|MR|Test|E|Lead 16436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016437|116437|989898|1|9999016437|MR|Test|E|Lead 16437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016438|116438|989898|1|9999016438|MR|Test|E|Lead 16438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016439|116439|989898|1|9999016439|MR|Test|E|Lead 16439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016440|116440|989898|1|9999016440|MR|Test|E|Lead 16440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016441|116441|989898|1|9999016441|MR|Test|E|Lead 16441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016442|116442|989898|1|9999016442|MR|Test|E|Lead 16442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016443|116443|989898|1|9999016443|MR|Test|E|Lead 16443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016444|116444|989898|1|9999016444|MR|Test|E|Lead 16444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016445|116445|989898|1|9999016445|MR|Test|E|Lead 16445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016446|116446|989898|1|9999016446|MR|Test|E|Lead 16446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016447|116447|989898|1|9999016447|MR|Test|E|Lead 16447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016448|116448|989898|1|9999016448|MR|Test|E|Lead 16448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016449|116449|989898|1|9999016449|MR|Test|E|Lead 16449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016450|116450|989898|1|9999016450|MR|Test|E|Lead 16450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016451|116451|989898|1|9999016451|MR|Test|E|Lead 16451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016452|116452|989898|1|9999016452|MR|Test|E|Lead 16452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016453|116453|989898|1|9999016453|MR|Test|E|Lead 16453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016454|116454|989898|1|9999016454|MR|Test|E|Lead 16454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016455|116455|989898|1|9999016455|MR|Test|E|Lead 16455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016456|116456|989898|1|9999016456|MR|Test|E|Lead 16456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016457|116457|989898|1|9999016457|MR|Test|E|Lead 16457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016458|116458|989898|1|9999016458|MR|Test|E|Lead 16458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016459|116459|989898|1|9999016459|MR|Test|E|Lead 16459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016460|116460|989898|1|9999016460|MR|Test|E|Lead 16460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016461|116461|989898|1|9999016461|MR|Test|E|Lead 16461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016462|116462|989898|1|9999016462|MR|Test|E|Lead 16462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016463|116463|989898|1|9999016463|MR|Test|E|Lead 16463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016464|116464|989898|1|9999016464|MR|Test|E|Lead 16464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016465|116465|989898|1|9999016465|MR|Test|E|Lead 16465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016466|116466|989898|1|9999016466|MR|Test|E|Lead 16466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016467|116467|989898|1|9999016467|MR|Test|E|Lead 16467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016468|116468|989898|1|9999016468|MR|Test|E|Lead 16468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016469|116469|989898|1|9999016469|MR|Test|E|Lead 16469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016470|116470|989898|1|9999016470|MR|Test|E|Lead 16470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016471|116471|989898|1|9999016471|MR|Test|E|Lead 16471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016472|116472|989898|1|9999016472|MR|Test|E|Lead 16472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016473|116473|989898|1|9999016473|MR|Test|E|Lead 16473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016474|116474|989898|1|9999016474|MR|Test|E|Lead 16474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016475|116475|989898|1|9999016475|MR|Test|E|Lead 16475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016476|116476|989898|1|9999016476|MR|Test|E|Lead 16476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016477|116477|989898|1|9999016477|MR|Test|E|Lead 16477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016478|116478|989898|1|9999016478|MR|Test|E|Lead 16478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016479|116479|989898|1|9999016479|MR|Test|E|Lead 16479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016480|116480|989898|1|9999016480|MR|Test|E|Lead 16480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016481|116481|989898|1|9999016481|MR|Test|E|Lead 16481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016482|116482|989898|1|9999016482|MR|Test|E|Lead 16482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016483|116483|989898|1|9999016483|MR|Test|E|Lead 16483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016484|116484|989898|1|9999016484|MR|Test|E|Lead 16484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016485|116485|989898|1|9999016485|MR|Test|E|Lead 16485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016486|116486|989898|1|9999016486|MR|Test|E|Lead 16486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016487|116487|989898|1|9999016487|MR|Test|E|Lead 16487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016488|116488|989898|1|9999016488|MR|Test|E|Lead 16488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016489|116489|989898|1|9999016489|MR|Test|E|Lead 16489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016490|116490|989898|1|9999016490|MR|Test|E|Lead 16490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016491|116491|989898|1|9999016491|MR|Test|E|Lead 16491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016492|116492|989898|1|9999016492|MR|Test|E|Lead 16492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016493|116493|989898|1|9999016493|MR|Test|E|Lead 16493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016494|116494|989898|1|9999016494|MR|Test|E|Lead 16494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016495|116495|989898|1|9999016495|MR|Test|E|Lead 16495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016496|116496|989898|1|9999016496|MR|Test|E|Lead 16496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016497|116497|989898|1|9999016497|MR|Test|E|Lead 16497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016498|116498|989898|1|9999016498|MR|Test|E|Lead 16498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016499|116499|989898|1|9999016499|MR|Test|E|Lead 16499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016500|116500|989898|1|9999016500|MR|Test|E|Lead 16500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016501|116501|989898|1|9999016501|MR|Test|E|Lead 16501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016502|116502|989898|1|9999016502|MR|Test|E|Lead 16502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016503|116503|989898|1|9999016503|MR|Test|E|Lead 16503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016504|116504|989898|1|9999016504|MR|Test|E|Lead 16504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016505|116505|989898|1|9999016505|MR|Test|E|Lead 16505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016506|116506|989898|1|9999016506|MR|Test|E|Lead 16506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016507|116507|989898|1|9999016507|MR|Test|E|Lead 16507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016508|116508|989898|1|9999016508|MR|Test|E|Lead 16508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016509|116509|989898|1|9999016509|MR|Test|E|Lead 16509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016510|116510|989898|1|9999016510|MR|Test|E|Lead 16510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016511|116511|989898|1|9999016511|MR|Test|E|Lead 16511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016512|116512|989898|1|9999016512|MR|Test|E|Lead 16512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016513|116513|989898|1|9999016513|MR|Test|E|Lead 16513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016514|116514|989898|1|9999016514|MR|Test|E|Lead 16514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016515|116515|989898|1|9999016515|MR|Test|E|Lead 16515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016516|116516|989898|1|9999016516|MR|Test|E|Lead 16516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016517|116517|989898|1|9999016517|MR|Test|E|Lead 16517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016518|116518|989898|1|9999016518|MR|Test|E|Lead 16518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016519|116519|989898|1|9999016519|MR|Test|E|Lead 16519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016520|116520|989898|1|9999016520|MR|Test|E|Lead 16520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016521|116521|989898|1|9999016521|MR|Test|E|Lead 16521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016522|116522|989898|1|9999016522|MR|Test|E|Lead 16522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016523|116523|989898|1|9999016523|MR|Test|E|Lead 16523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016524|116524|989898|1|9999016524|MR|Test|E|Lead 16524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016525|116525|989898|1|9999016525|MR|Test|E|Lead 16525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016526|116526|989898|1|9999016526|MR|Test|E|Lead 16526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016527|116527|989898|1|9999016527|MR|Test|E|Lead 16527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016528|116528|989898|1|9999016528|MR|Test|E|Lead 16528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016529|116529|989898|1|9999016529|MR|Test|E|Lead 16529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016530|116530|989898|1|9999016530|MR|Test|E|Lead 16530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016531|116531|989898|1|9999016531|MR|Test|E|Lead 16531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016532|116532|989898|1|9999016532|MR|Test|E|Lead 16532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016533|116533|989898|1|9999016533|MR|Test|E|Lead 16533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016534|116534|989898|1|9999016534|MR|Test|E|Lead 16534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016535|116535|989898|1|9999016535|MR|Test|E|Lead 16535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016536|116536|989898|1|9999016536|MR|Test|E|Lead 16536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016537|116537|989898|1|9999016537|MR|Test|E|Lead 16537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016538|116538|989898|1|9999016538|MR|Test|E|Lead 16538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016539|116539|989898|1|9999016539|MR|Test|E|Lead 16539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016540|116540|989898|1|9999016540|MR|Test|E|Lead 16540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016541|116541|989898|1|9999016541|MR|Test|E|Lead 16541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016542|116542|989898|1|9999016542|MR|Test|E|Lead 16542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016543|116543|989898|1|9999016543|MR|Test|E|Lead 16543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016544|116544|989898|1|9999016544|MR|Test|E|Lead 16544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016545|116545|989898|1|9999016545|MR|Test|E|Lead 16545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016546|116546|989898|1|9999016546|MR|Test|E|Lead 16546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016547|116547|989898|1|9999016547|MR|Test|E|Lead 16547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016548|116548|989898|1|9999016548|MR|Test|E|Lead 16548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016549|116549|989898|1|9999016549|MR|Test|E|Lead 16549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016550|116550|989898|1|9999016550|MR|Test|E|Lead 16550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016551|116551|989898|1|9999016551|MR|Test|E|Lead 16551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016552|116552|989898|1|9999016552|MR|Test|E|Lead 16552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016553|116553|989898|1|9999016553|MR|Test|E|Lead 16553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016554|116554|989898|1|9999016554|MR|Test|E|Lead 16554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016555|116555|989898|1|9999016555|MR|Test|E|Lead 16555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016556|116556|989898|1|9999016556|MR|Test|E|Lead 16556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016557|116557|989898|1|9999016557|MR|Test|E|Lead 16557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016558|116558|989898|1|9999016558|MR|Test|E|Lead 16558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016559|116559|989898|1|9999016559|MR|Test|E|Lead 16559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016560|116560|989898|1|9999016560|MR|Test|E|Lead 16560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016561|116561|989898|1|9999016561|MR|Test|E|Lead 16561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016562|116562|989898|1|9999016562|MR|Test|E|Lead 16562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016563|116563|989898|1|9999016563|MR|Test|E|Lead 16563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016564|116564|989898|1|9999016564|MR|Test|E|Lead 16564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016565|116565|989898|1|9999016565|MR|Test|E|Lead 16565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016566|116566|989898|1|9999016566|MR|Test|E|Lead 16566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016567|116567|989898|1|9999016567|MR|Test|E|Lead 16567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016568|116568|989898|1|9999016568|MR|Test|E|Lead 16568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016569|116569|989898|1|9999016569|MR|Test|E|Lead 16569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016570|116570|989898|1|9999016570|MR|Test|E|Lead 16570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016571|116571|989898|1|9999016571|MR|Test|E|Lead 16571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016572|116572|989898|1|9999016572|MR|Test|E|Lead 16572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016573|116573|989898|1|9999016573|MR|Test|E|Lead 16573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016574|116574|989898|1|9999016574|MR|Test|E|Lead 16574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016575|116575|989898|1|9999016575|MR|Test|E|Lead 16575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016576|116576|989898|1|9999016576|MR|Test|E|Lead 16576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016577|116577|989898|1|9999016577|MR|Test|E|Lead 16577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016578|116578|989898|1|9999016578|MR|Test|E|Lead 16578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016579|116579|989898|1|9999016579|MR|Test|E|Lead 16579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016580|116580|989898|1|9999016580|MR|Test|E|Lead 16580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016581|116581|989898|1|9999016581|MR|Test|E|Lead 16581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016582|116582|989898|1|9999016582|MR|Test|E|Lead 16582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016583|116583|989898|1|9999016583|MR|Test|E|Lead 16583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016584|116584|989898|1|9999016584|MR|Test|E|Lead 16584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016585|116585|989898|1|9999016585|MR|Test|E|Lead 16585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016586|116586|989898|1|9999016586|MR|Test|E|Lead 16586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016587|116587|989898|1|9999016587|MR|Test|E|Lead 16587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016588|116588|989898|1|9999016588|MR|Test|E|Lead 16588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016589|116589|989898|1|9999016589|MR|Test|E|Lead 16589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016590|116590|989898|1|9999016590|MR|Test|E|Lead 16590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016591|116591|989898|1|9999016591|MR|Test|E|Lead 16591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016592|116592|989898|1|9999016592|MR|Test|E|Lead 16592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016593|116593|989898|1|9999016593|MR|Test|E|Lead 16593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016594|116594|989898|1|9999016594|MR|Test|E|Lead 16594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016595|116595|989898|1|9999016595|MR|Test|E|Lead 16595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016596|116596|989898|1|9999016596|MR|Test|E|Lead 16596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016597|116597|989898|1|9999016597|MR|Test|E|Lead 16597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016598|116598|989898|1|9999016598|MR|Test|E|Lead 16598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016599|116599|989898|1|9999016599|MR|Test|E|Lead 16599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016600|116600|989898|1|9999016600|MR|Test|E|Lead 16600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016601|116601|989898|1|9999016601|MR|Test|E|Lead 16601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016602|116602|989898|1|9999016602|MR|Test|E|Lead 16602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016603|116603|989898|1|9999016603|MR|Test|E|Lead 16603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016604|116604|989898|1|9999016604|MR|Test|E|Lead 16604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016605|116605|989898|1|9999016605|MR|Test|E|Lead 16605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016606|116606|989898|1|9999016606|MR|Test|E|Lead 16606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016607|116607|989898|1|9999016607|MR|Test|E|Lead 16607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016608|116608|989898|1|9999016608|MR|Test|E|Lead 16608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016609|116609|989898|1|9999016609|MR|Test|E|Lead 16609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016610|116610|989898|1|9999016610|MR|Test|E|Lead 16610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016611|116611|989898|1|9999016611|MR|Test|E|Lead 16611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016612|116612|989898|1|9999016612|MR|Test|E|Lead 16612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016613|116613|989898|1|9999016613|MR|Test|E|Lead 16613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016614|116614|989898|1|9999016614|MR|Test|E|Lead 16614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016615|116615|989898|1|9999016615|MR|Test|E|Lead 16615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016616|116616|989898|1|9999016616|MR|Test|E|Lead 16616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016617|116617|989898|1|9999016617|MR|Test|E|Lead 16617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016618|116618|989898|1|9999016618|MR|Test|E|Lead 16618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016619|116619|989898|1|9999016619|MR|Test|E|Lead 16619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016620|116620|989898|1|9999016620|MR|Test|E|Lead 16620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016621|116621|989898|1|9999016621|MR|Test|E|Lead 16621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016622|116622|989898|1|9999016622|MR|Test|E|Lead 16622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016623|116623|989898|1|9999016623|MR|Test|E|Lead 16623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016624|116624|989898|1|9999016624|MR|Test|E|Lead 16624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016625|116625|989898|1|9999016625|MR|Test|E|Lead 16625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016626|116626|989898|1|9999016626|MR|Test|E|Lead 16626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016627|116627|989898|1|9999016627|MR|Test|E|Lead 16627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016628|116628|989898|1|9999016628|MR|Test|E|Lead 16628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016629|116629|989898|1|9999016629|MR|Test|E|Lead 16629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016630|116630|989898|1|9999016630|MR|Test|E|Lead 16630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016631|116631|989898|1|9999016631|MR|Test|E|Lead 16631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016632|116632|989898|1|9999016632|MR|Test|E|Lead 16632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016633|116633|989898|1|9999016633|MR|Test|E|Lead 16633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016634|116634|989898|1|9999016634|MR|Test|E|Lead 16634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016635|116635|989898|1|9999016635|MR|Test|E|Lead 16635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016636|116636|989898|1|9999016636|MR|Test|E|Lead 16636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016637|116637|989898|1|9999016637|MR|Test|E|Lead 16637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016638|116638|989898|1|9999016638|MR|Test|E|Lead 16638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016639|116639|989898|1|9999016639|MR|Test|E|Lead 16639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016640|116640|989898|1|9999016640|MR|Test|E|Lead 16640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016641|116641|989898|1|9999016641|MR|Test|E|Lead 16641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016642|116642|989898|1|9999016642|MR|Test|E|Lead 16642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016643|116643|989898|1|9999016643|MR|Test|E|Lead 16643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016644|116644|989898|1|9999016644|MR|Test|E|Lead 16644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016645|116645|989898|1|9999016645|MR|Test|E|Lead 16645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016646|116646|989898|1|9999016646|MR|Test|E|Lead 16646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016647|116647|989898|1|9999016647|MR|Test|E|Lead 16647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016648|116648|989898|1|9999016648|MR|Test|E|Lead 16648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016649|116649|989898|1|9999016649|MR|Test|E|Lead 16649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016650|116650|989898|1|9999016650|MR|Test|E|Lead 16650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016651|116651|989898|1|9999016651|MR|Test|E|Lead 16651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016652|116652|989898|1|9999016652|MR|Test|E|Lead 16652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016653|116653|989898|1|9999016653|MR|Test|E|Lead 16653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016654|116654|989898|1|9999016654|MR|Test|E|Lead 16654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016655|116655|989898|1|9999016655|MR|Test|E|Lead 16655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016656|116656|989898|1|9999016656|MR|Test|E|Lead 16656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016657|116657|989898|1|9999016657|MR|Test|E|Lead 16657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016658|116658|989898|1|9999016658|MR|Test|E|Lead 16658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016659|116659|989898|1|9999016659|MR|Test|E|Lead 16659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016660|116660|989898|1|9999016660|MR|Test|E|Lead 16660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016661|116661|989898|1|9999016661|MR|Test|E|Lead 16661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016662|116662|989898|1|9999016662|MR|Test|E|Lead 16662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016663|116663|989898|1|9999016663|MR|Test|E|Lead 16663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016664|116664|989898|1|9999016664|MR|Test|E|Lead 16664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016665|116665|989898|1|9999016665|MR|Test|E|Lead 16665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016666|116666|989898|1|9999016666|MR|Test|E|Lead 16666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016667|116667|989898|1|9999016667|MR|Test|E|Lead 16667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016668|116668|989898|1|9999016668|MR|Test|E|Lead 16668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016669|116669|989898|1|9999016669|MR|Test|E|Lead 16669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016670|116670|989898|1|9999016670|MR|Test|E|Lead 16670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016671|116671|989898|1|9999016671|MR|Test|E|Lead 16671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016672|116672|989898|1|9999016672|MR|Test|E|Lead 16672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016673|116673|989898|1|9999016673|MR|Test|E|Lead 16673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016674|116674|989898|1|9999016674|MR|Test|E|Lead 16674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016675|116675|989898|1|9999016675|MR|Test|E|Lead 16675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016676|116676|989898|1|9999016676|MR|Test|E|Lead 16676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016677|116677|989898|1|9999016677|MR|Test|E|Lead 16677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016678|116678|989898|1|9999016678|MR|Test|E|Lead 16678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016679|116679|989898|1|9999016679|MR|Test|E|Lead 16679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016680|116680|989898|1|9999016680|MR|Test|E|Lead 16680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016681|116681|989898|1|9999016681|MR|Test|E|Lead 16681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016682|116682|989898|1|9999016682|MR|Test|E|Lead 16682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016683|116683|989898|1|9999016683|MR|Test|E|Lead 16683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016684|116684|989898|1|9999016684|MR|Test|E|Lead 16684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016685|116685|989898|1|9999016685|MR|Test|E|Lead 16685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016686|116686|989898|1|9999016686|MR|Test|E|Lead 16686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016687|116687|989898|1|9999016687|MR|Test|E|Lead 16687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016688|116688|989898|1|9999016688|MR|Test|E|Lead 16688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016689|116689|989898|1|9999016689|MR|Test|E|Lead 16689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016690|116690|989898|1|9999016690|MR|Test|E|Lead 16690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016691|116691|989898|1|9999016691|MR|Test|E|Lead 16691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016692|116692|989898|1|9999016692|MR|Test|E|Lead 16692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016693|116693|989898|1|9999016693|MR|Test|E|Lead 16693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016694|116694|989898|1|9999016694|MR|Test|E|Lead 16694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016695|116695|989898|1|9999016695|MR|Test|E|Lead 16695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016696|116696|989898|1|9999016696|MR|Test|E|Lead 16696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016697|116697|989898|1|9999016697|MR|Test|E|Lead 16697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016698|116698|989898|1|9999016698|MR|Test|E|Lead 16698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016699|116699|989898|1|9999016699|MR|Test|E|Lead 16699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016700|116700|989898|1|9999016700|MR|Test|E|Lead 16700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016701|116701|989898|1|9999016701|MR|Test|E|Lead 16701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016702|116702|989898|1|9999016702|MR|Test|E|Lead 16702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016703|116703|989898|1|9999016703|MR|Test|E|Lead 16703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016704|116704|989898|1|9999016704|MR|Test|E|Lead 16704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016705|116705|989898|1|9999016705|MR|Test|E|Lead 16705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016706|116706|989898|1|9999016706|MR|Test|E|Lead 16706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016707|116707|989898|1|9999016707|MR|Test|E|Lead 16707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016708|116708|989898|1|9999016708|MR|Test|E|Lead 16708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016709|116709|989898|1|9999016709|MR|Test|E|Lead 16709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016710|116710|989898|1|9999016710|MR|Test|E|Lead 16710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016711|116711|989898|1|9999016711|MR|Test|E|Lead 16711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016712|116712|989898|1|9999016712|MR|Test|E|Lead 16712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016713|116713|989898|1|9999016713|MR|Test|E|Lead 16713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016714|116714|989898|1|9999016714|MR|Test|E|Lead 16714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016715|116715|989898|1|9999016715|MR|Test|E|Lead 16715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016716|116716|989898|1|9999016716|MR|Test|E|Lead 16716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016717|116717|989898|1|9999016717|MR|Test|E|Lead 16717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016718|116718|989898|1|9999016718|MR|Test|E|Lead 16718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016719|116719|989898|1|9999016719|MR|Test|E|Lead 16719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016720|116720|989898|1|9999016720|MR|Test|E|Lead 16720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016721|116721|989898|1|9999016721|MR|Test|E|Lead 16721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016722|116722|989898|1|9999016722|MR|Test|E|Lead 16722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016723|116723|989898|1|9999016723|MR|Test|E|Lead 16723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016724|116724|989898|1|9999016724|MR|Test|E|Lead 16724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016725|116725|989898|1|9999016725|MR|Test|E|Lead 16725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016726|116726|989898|1|9999016726|MR|Test|E|Lead 16726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016727|116727|989898|1|9999016727|MR|Test|E|Lead 16727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016728|116728|989898|1|9999016728|MR|Test|E|Lead 16728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016729|116729|989898|1|9999016729|MR|Test|E|Lead 16729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016730|116730|989898|1|9999016730|MR|Test|E|Lead 16730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016731|116731|989898|1|9999016731|MR|Test|E|Lead 16731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016732|116732|989898|1|9999016732|MR|Test|E|Lead 16732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016733|116733|989898|1|9999016733|MR|Test|E|Lead 16733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016734|116734|989898|1|9999016734|MR|Test|E|Lead 16734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016735|116735|989898|1|9999016735|MR|Test|E|Lead 16735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016736|116736|989898|1|9999016736|MR|Test|E|Lead 16736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016737|116737|989898|1|9999016737|MR|Test|E|Lead 16737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016738|116738|989898|1|9999016738|MR|Test|E|Lead 16738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016739|116739|989898|1|9999016739|MR|Test|E|Lead 16739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016740|116740|989898|1|9999016740|MR|Test|E|Lead 16740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016741|116741|989898|1|9999016741|MR|Test|E|Lead 16741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016742|116742|989898|1|9999016742|MR|Test|E|Lead 16742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016743|116743|989898|1|9999016743|MR|Test|E|Lead 16743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016744|116744|989898|1|9999016744|MR|Test|E|Lead 16744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016745|116745|989898|1|9999016745|MR|Test|E|Lead 16745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016746|116746|989898|1|9999016746|MR|Test|E|Lead 16746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016747|116747|989898|1|9999016747|MR|Test|E|Lead 16747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016748|116748|989898|1|9999016748|MR|Test|E|Lead 16748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016749|116749|989898|1|9999016749|MR|Test|E|Lead 16749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016750|116750|989898|1|9999016750|MR|Test|E|Lead 16750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016751|116751|989898|1|9999016751|MR|Test|E|Lead 16751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016752|116752|989898|1|9999016752|MR|Test|E|Lead 16752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016753|116753|989898|1|9999016753|MR|Test|E|Lead 16753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016754|116754|989898|1|9999016754|MR|Test|E|Lead 16754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016755|116755|989898|1|9999016755|MR|Test|E|Lead 16755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016756|116756|989898|1|9999016756|MR|Test|E|Lead 16756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016757|116757|989898|1|9999016757|MR|Test|E|Lead 16757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016758|116758|989898|1|9999016758|MR|Test|E|Lead 16758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016759|116759|989898|1|9999016759|MR|Test|E|Lead 16759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016760|116760|989898|1|9999016760|MR|Test|E|Lead 16760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016761|116761|989898|1|9999016761|MR|Test|E|Lead 16761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016762|116762|989898|1|9999016762|MR|Test|E|Lead 16762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016763|116763|989898|1|9999016763|MR|Test|E|Lead 16763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016764|116764|989898|1|9999016764|MR|Test|E|Lead 16764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016765|116765|989898|1|9999016765|MR|Test|E|Lead 16765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016766|116766|989898|1|9999016766|MR|Test|E|Lead 16766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016767|116767|989898|1|9999016767|MR|Test|E|Lead 16767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016768|116768|989898|1|9999016768|MR|Test|E|Lead 16768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016769|116769|989898|1|9999016769|MR|Test|E|Lead 16769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016770|116770|989898|1|9999016770|MR|Test|E|Lead 16770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016771|116771|989898|1|9999016771|MR|Test|E|Lead 16771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016772|116772|989898|1|9999016772|MR|Test|E|Lead 16772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016773|116773|989898|1|9999016773|MR|Test|E|Lead 16773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016774|116774|989898|1|9999016774|MR|Test|E|Lead 16774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016775|116775|989898|1|9999016775|MR|Test|E|Lead 16775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016776|116776|989898|1|9999016776|MR|Test|E|Lead 16776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016777|116777|989898|1|9999016777|MR|Test|E|Lead 16777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016778|116778|989898|1|9999016778|MR|Test|E|Lead 16778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016779|116779|989898|1|9999016779|MR|Test|E|Lead 16779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016780|116780|989898|1|9999016780|MR|Test|E|Lead 16780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016781|116781|989898|1|9999016781|MR|Test|E|Lead 16781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016782|116782|989898|1|9999016782|MR|Test|E|Lead 16782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016783|116783|989898|1|9999016783|MR|Test|E|Lead 16783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016784|116784|989898|1|9999016784|MR|Test|E|Lead 16784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016785|116785|989898|1|9999016785|MR|Test|E|Lead 16785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016786|116786|989898|1|9999016786|MR|Test|E|Lead 16786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016787|116787|989898|1|9999016787|MR|Test|E|Lead 16787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016788|116788|989898|1|9999016788|MR|Test|E|Lead 16788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016789|116789|989898|1|9999016789|MR|Test|E|Lead 16789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016790|116790|989898|1|9999016790|MR|Test|E|Lead 16790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016791|116791|989898|1|9999016791|MR|Test|E|Lead 16791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016792|116792|989898|1|9999016792|MR|Test|E|Lead 16792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016793|116793|989898|1|9999016793|MR|Test|E|Lead 16793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016794|116794|989898|1|9999016794|MR|Test|E|Lead 16794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016795|116795|989898|1|9999016795|MR|Test|E|Lead 16795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016796|116796|989898|1|9999016796|MR|Test|E|Lead 16796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016797|116797|989898|1|9999016797|MR|Test|E|Lead 16797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016798|116798|989898|1|9999016798|MR|Test|E|Lead 16798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016799|116799|989898|1|9999016799|MR|Test|E|Lead 16799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016800|116800|989898|1|9999016800|MR|Test|E|Lead 16800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016801|116801|989898|1|9999016801|MR|Test|E|Lead 16801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016802|116802|989898|1|9999016802|MR|Test|E|Lead 16802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016803|116803|989898|1|9999016803|MR|Test|E|Lead 16803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016804|116804|989898|1|9999016804|MR|Test|E|Lead 16804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016805|116805|989898|1|9999016805|MR|Test|E|Lead 16805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016806|116806|989898|1|9999016806|MR|Test|E|Lead 16806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016807|116807|989898|1|9999016807|MR|Test|E|Lead 16807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016808|116808|989898|1|9999016808|MR|Test|E|Lead 16808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016809|116809|989898|1|9999016809|MR|Test|E|Lead 16809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016810|116810|989898|1|9999016810|MR|Test|E|Lead 16810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016811|116811|989898|1|9999016811|MR|Test|E|Lead 16811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016812|116812|989898|1|9999016812|MR|Test|E|Lead 16812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016813|116813|989898|1|9999016813|MR|Test|E|Lead 16813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016814|116814|989898|1|9999016814|MR|Test|E|Lead 16814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016815|116815|989898|1|9999016815|MR|Test|E|Lead 16815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016816|116816|989898|1|9999016816|MR|Test|E|Lead 16816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016817|116817|989898|1|9999016817|MR|Test|E|Lead 16817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016818|116818|989898|1|9999016818|MR|Test|E|Lead 16818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016819|116819|989898|1|9999016819|MR|Test|E|Lead 16819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016820|116820|989898|1|9999016820|MR|Test|E|Lead 16820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016821|116821|989898|1|9999016821|MR|Test|E|Lead 16821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016822|116822|989898|1|9999016822|MR|Test|E|Lead 16822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016823|116823|989898|1|9999016823|MR|Test|E|Lead 16823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016824|116824|989898|1|9999016824|MR|Test|E|Lead 16824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016825|116825|989898|1|9999016825|MR|Test|E|Lead 16825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016826|116826|989898|1|9999016826|MR|Test|E|Lead 16826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016827|116827|989898|1|9999016827|MR|Test|E|Lead 16827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016828|116828|989898|1|9999016828|MR|Test|E|Lead 16828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016829|116829|989898|1|9999016829|MR|Test|E|Lead 16829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016830|116830|989898|1|9999016830|MR|Test|E|Lead 16830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016831|116831|989898|1|9999016831|MR|Test|E|Lead 16831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016832|116832|989898|1|9999016832|MR|Test|E|Lead 16832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016833|116833|989898|1|9999016833|MR|Test|E|Lead 16833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016834|116834|989898|1|9999016834|MR|Test|E|Lead 16834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016835|116835|989898|1|9999016835|MR|Test|E|Lead 16835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016836|116836|989898|1|9999016836|MR|Test|E|Lead 16836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016837|116837|989898|1|9999016837|MR|Test|E|Lead 16837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016838|116838|989898|1|9999016838|MR|Test|E|Lead 16838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016839|116839|989898|1|9999016839|MR|Test|E|Lead 16839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016840|116840|989898|1|9999016840|MR|Test|E|Lead 16840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016841|116841|989898|1|9999016841|MR|Test|E|Lead 16841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016842|116842|989898|1|9999016842|MR|Test|E|Lead 16842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016843|116843|989898|1|9999016843|MR|Test|E|Lead 16843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016844|116844|989898|1|9999016844|MR|Test|E|Lead 16844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016845|116845|989898|1|9999016845|MR|Test|E|Lead 16845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016846|116846|989898|1|9999016846|MR|Test|E|Lead 16846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016847|116847|989898|1|9999016847|MR|Test|E|Lead 16847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016848|116848|989898|1|9999016848|MR|Test|E|Lead 16848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016849|116849|989898|1|9999016849|MR|Test|E|Lead 16849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016850|116850|989898|1|9999016850|MR|Test|E|Lead 16850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016851|116851|989898|1|9999016851|MR|Test|E|Lead 16851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016852|116852|989898|1|9999016852|MR|Test|E|Lead 16852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016853|116853|989898|1|9999016853|MR|Test|E|Lead 16853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016854|116854|989898|1|9999016854|MR|Test|E|Lead 16854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016855|116855|989898|1|9999016855|MR|Test|E|Lead 16855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016856|116856|989898|1|9999016856|MR|Test|E|Lead 16856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016857|116857|989898|1|9999016857|MR|Test|E|Lead 16857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016858|116858|989898|1|9999016858|MR|Test|E|Lead 16858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016859|116859|989898|1|9999016859|MR|Test|E|Lead 16859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016860|116860|989898|1|9999016860|MR|Test|E|Lead 16860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016861|116861|989898|1|9999016861|MR|Test|E|Lead 16861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016862|116862|989898|1|9999016862|MR|Test|E|Lead 16862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016863|116863|989898|1|9999016863|MR|Test|E|Lead 16863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016864|116864|989898|1|9999016864|MR|Test|E|Lead 16864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016865|116865|989898|1|9999016865|MR|Test|E|Lead 16865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016866|116866|989898|1|9999016866|MR|Test|E|Lead 16866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016867|116867|989898|1|9999016867|MR|Test|E|Lead 16867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016868|116868|989898|1|9999016868|MR|Test|E|Lead 16868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016869|116869|989898|1|9999016869|MR|Test|E|Lead 16869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016870|116870|989898|1|9999016870|MR|Test|E|Lead 16870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016871|116871|989898|1|9999016871|MR|Test|E|Lead 16871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016872|116872|989898|1|9999016872|MR|Test|E|Lead 16872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016873|116873|989898|1|9999016873|MR|Test|E|Lead 16873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016874|116874|989898|1|9999016874|MR|Test|E|Lead 16874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016875|116875|989898|1|9999016875|MR|Test|E|Lead 16875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016876|116876|989898|1|9999016876|MR|Test|E|Lead 16876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016877|116877|989898|1|9999016877|MR|Test|E|Lead 16877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016878|116878|989898|1|9999016878|MR|Test|E|Lead 16878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016879|116879|989898|1|9999016879|MR|Test|E|Lead 16879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016880|116880|989898|1|9999016880|MR|Test|E|Lead 16880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016881|116881|989898|1|9999016881|MR|Test|E|Lead 16881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016882|116882|989898|1|9999016882|MR|Test|E|Lead 16882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016883|116883|989898|1|9999016883|MR|Test|E|Lead 16883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016884|116884|989898|1|9999016884|MR|Test|E|Lead 16884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016885|116885|989898|1|9999016885|MR|Test|E|Lead 16885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016886|116886|989898|1|9999016886|MR|Test|E|Lead 16886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016887|116887|989898|1|9999016887|MR|Test|E|Lead 16887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016888|116888|989898|1|9999016888|MR|Test|E|Lead 16888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016889|116889|989898|1|9999016889|MR|Test|E|Lead 16889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016890|116890|989898|1|9999016890|MR|Test|E|Lead 16890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016891|116891|989898|1|9999016891|MR|Test|E|Lead 16891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016892|116892|989898|1|9999016892|MR|Test|E|Lead 16892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016893|116893|989898|1|9999016893|MR|Test|E|Lead 16893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016894|116894|989898|1|9999016894|MR|Test|E|Lead 16894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016895|116895|989898|1|9999016895|MR|Test|E|Lead 16895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016896|116896|989898|1|9999016896|MR|Test|E|Lead 16896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016897|116897|989898|1|9999016897|MR|Test|E|Lead 16897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016898|116898|989898|1|9999016898|MR|Test|E|Lead 16898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016899|116899|989898|1|9999016899|MR|Test|E|Lead 16899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016900|116900|989898|1|9999016900|MR|Test|E|Lead 16900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016901|116901|989898|1|9999016901|MR|Test|E|Lead 16901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016902|116902|989898|1|9999016902|MR|Test|E|Lead 16902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016903|116903|989898|1|9999016903|MR|Test|E|Lead 16903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016904|116904|989898|1|9999016904|MR|Test|E|Lead 16904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016905|116905|989898|1|9999016905|MR|Test|E|Lead 16905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016906|116906|989898|1|9999016906|MR|Test|E|Lead 16906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016907|116907|989898|1|9999016907|MR|Test|E|Lead 16907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016908|116908|989898|1|9999016908|MR|Test|E|Lead 16908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016909|116909|989898|1|9999016909|MR|Test|E|Lead 16909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016910|116910|989898|1|9999016910|MR|Test|E|Lead 16910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016911|116911|989898|1|9999016911|MR|Test|E|Lead 16911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016912|116912|989898|1|9999016912|MR|Test|E|Lead 16912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016913|116913|989898|1|9999016913|MR|Test|E|Lead 16913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016914|116914|989898|1|9999016914|MR|Test|E|Lead 16914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016915|116915|989898|1|9999016915|MR|Test|E|Lead 16915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016916|116916|989898|1|9999016916|MR|Test|E|Lead 16916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016917|116917|989898|1|9999016917|MR|Test|E|Lead 16917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016918|116918|989898|1|9999016918|MR|Test|E|Lead 16918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016919|116919|989898|1|9999016919|MR|Test|E|Lead 16919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016920|116920|989898|1|9999016920|MR|Test|E|Lead 16920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016921|116921|989898|1|9999016921|MR|Test|E|Lead 16921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016922|116922|989898|1|9999016922|MR|Test|E|Lead 16922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016923|116923|989898|1|9999016923|MR|Test|E|Lead 16923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016924|116924|989898|1|9999016924|MR|Test|E|Lead 16924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016925|116925|989898|1|9999016925|MR|Test|E|Lead 16925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016926|116926|989898|1|9999016926|MR|Test|E|Lead 16926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016927|116927|989898|1|9999016927|MR|Test|E|Lead 16927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016928|116928|989898|1|9999016928|MR|Test|E|Lead 16928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016929|116929|989898|1|9999016929|MR|Test|E|Lead 16929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016930|116930|989898|1|9999016930|MR|Test|E|Lead 16930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016931|116931|989898|1|9999016931|MR|Test|E|Lead 16931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016932|116932|989898|1|9999016932|MR|Test|E|Lead 16932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016933|116933|989898|1|9999016933|MR|Test|E|Lead 16933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016934|116934|989898|1|9999016934|MR|Test|E|Lead 16934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016935|116935|989898|1|9999016935|MR|Test|E|Lead 16935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016936|116936|989898|1|9999016936|MR|Test|E|Lead 16936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016937|116937|989898|1|9999016937|MR|Test|E|Lead 16937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016938|116938|989898|1|9999016938|MR|Test|E|Lead 16938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016939|116939|989898|1|9999016939|MR|Test|E|Lead 16939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016940|116940|989898|1|9999016940|MR|Test|E|Lead 16940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016941|116941|989898|1|9999016941|MR|Test|E|Lead 16941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016942|116942|989898|1|9999016942|MR|Test|E|Lead 16942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016943|116943|989898|1|9999016943|MR|Test|E|Lead 16943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016944|116944|989898|1|9999016944|MR|Test|E|Lead 16944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016945|116945|989898|1|9999016945|MR|Test|E|Lead 16945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016946|116946|989898|1|9999016946|MR|Test|E|Lead 16946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016947|116947|989898|1|9999016947|MR|Test|E|Lead 16947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016948|116948|989898|1|9999016948|MR|Test|E|Lead 16948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016949|116949|989898|1|9999016949|MR|Test|E|Lead 16949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016950|116950|989898|1|9999016950|MR|Test|E|Lead 16950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016951|116951|989898|1|9999016951|MR|Test|E|Lead 16951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016952|116952|989898|1|9999016952|MR|Test|E|Lead 16952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016953|116953|989898|1|9999016953|MR|Test|E|Lead 16953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016954|116954|989898|1|9999016954|MR|Test|E|Lead 16954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016955|116955|989898|1|9999016955|MR|Test|E|Lead 16955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016956|116956|989898|1|9999016956|MR|Test|E|Lead 16956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016957|116957|989898|1|9999016957|MR|Test|E|Lead 16957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016958|116958|989898|1|9999016958|MR|Test|E|Lead 16958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016959|116959|989898|1|9999016959|MR|Test|E|Lead 16959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016960|116960|989898|1|9999016960|MR|Test|E|Lead 16960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016961|116961|989898|1|9999016961|MR|Test|E|Lead 16961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016962|116962|989898|1|9999016962|MR|Test|E|Lead 16962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016963|116963|989898|1|9999016963|MR|Test|E|Lead 16963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016964|116964|989898|1|9999016964|MR|Test|E|Lead 16964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016965|116965|989898|1|9999016965|MR|Test|E|Lead 16965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016966|116966|989898|1|9999016966|MR|Test|E|Lead 16966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016967|116967|989898|1|9999016967|MR|Test|E|Lead 16967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016968|116968|989898|1|9999016968|MR|Test|E|Lead 16968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016969|116969|989898|1|9999016969|MR|Test|E|Lead 16969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016970|116970|989898|1|9999016970|MR|Test|E|Lead 16970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016971|116971|989898|1|9999016971|MR|Test|E|Lead 16971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016972|116972|989898|1|9999016972|MR|Test|E|Lead 16972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016973|116973|989898|1|9999016973|MR|Test|E|Lead 16973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016974|116974|989898|1|9999016974|MR|Test|E|Lead 16974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016975|116975|989898|1|9999016975|MR|Test|E|Lead 16975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016976|116976|989898|1|9999016976|MR|Test|E|Lead 16976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016977|116977|989898|1|9999016977|MR|Test|E|Lead 16977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016978|116978|989898|1|9999016978|MR|Test|E|Lead 16978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016979|116979|989898|1|9999016979|MR|Test|E|Lead 16979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016980|116980|989898|1|9999016980|MR|Test|E|Lead 16980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016981|116981|989898|1|9999016981|MR|Test|E|Lead 16981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016982|116982|989898|1|9999016982|MR|Test|E|Lead 16982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016983|116983|989898|1|9999016983|MR|Test|E|Lead 16983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016984|116984|989898|1|9999016984|MR|Test|E|Lead 16984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016985|116985|989898|1|9999016985|MR|Test|E|Lead 16985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016986|116986|989898|1|9999016986|MR|Test|E|Lead 16986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016987|116987|989898|1|9999016987|MR|Test|E|Lead 16987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016988|116988|989898|1|9999016988|MR|Test|E|Lead 16988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016989|116989|989898|1|9999016989|MR|Test|E|Lead 16989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016990|116990|989898|1|9999016990|MR|Test|E|Lead 16990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016991|116991|989898|1|9999016991|MR|Test|E|Lead 16991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016992|116992|989898|1|9999016992|MR|Test|E|Lead 16992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016993|116993|989898|1|9999016993|MR|Test|E|Lead 16993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016994|116994|989898|1|9999016994|MR|Test|E|Lead 16994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016995|116995|989898|1|9999016995|MR|Test|E|Lead 16995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016996|116996|989898|1|9999016996|MR|Test|E|Lead 16996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016997|116997|989898|1|9999016997|MR|Test|E|Lead 16997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016998|116998|989898|1|9999016998|MR|Test|E|Lead 16998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1016999|116999|989898|1|9999016999|MR|Test|E|Lead 16999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017000|117000|989898|1|9999017000|MR|Test|E|Lead 17000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017001|117001|989898|1|9999017001|MR|Test|E|Lead 17001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017002|117002|989898|1|9999017002|MR|Test|E|Lead 17002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017003|117003|989898|1|9999017003|MR|Test|E|Lead 17003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017004|117004|989898|1|9999017004|MR|Test|E|Lead 17004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017005|117005|989898|1|9999017005|MR|Test|E|Lead 17005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017006|117006|989898|1|9999017006|MR|Test|E|Lead 17006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017007|117007|989898|1|9999017007|MR|Test|E|Lead 17007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017008|117008|989898|1|9999017008|MR|Test|E|Lead 17008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017009|117009|989898|1|9999017009|MR|Test|E|Lead 17009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017010|117010|989898|1|9999017010|MR|Test|E|Lead 17010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017011|117011|989898|1|9999017011|MR|Test|E|Lead 17011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017012|117012|989898|1|9999017012|MR|Test|E|Lead 17012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017013|117013|989898|1|9999017013|MR|Test|E|Lead 17013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017014|117014|989898|1|9999017014|MR|Test|E|Lead 17014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017015|117015|989898|1|9999017015|MR|Test|E|Lead 17015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017016|117016|989898|1|9999017016|MR|Test|E|Lead 17016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017017|117017|989898|1|9999017017|MR|Test|E|Lead 17017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017018|117018|989898|1|9999017018|MR|Test|E|Lead 17018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017019|117019|989898|1|9999017019|MR|Test|E|Lead 17019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017020|117020|989898|1|9999017020|MR|Test|E|Lead 17020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017021|117021|989898|1|9999017021|MR|Test|E|Lead 17021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017022|117022|989898|1|9999017022|MR|Test|E|Lead 17022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017023|117023|989898|1|9999017023|MR|Test|E|Lead 17023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017024|117024|989898|1|9999017024|MR|Test|E|Lead 17024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017025|117025|989898|1|9999017025|MR|Test|E|Lead 17025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017026|117026|989898|1|9999017026|MR|Test|E|Lead 17026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017027|117027|989898|1|9999017027|MR|Test|E|Lead 17027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017028|117028|989898|1|9999017028|MR|Test|E|Lead 17028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017029|117029|989898|1|9999017029|MR|Test|E|Lead 17029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017030|117030|989898|1|9999017030|MR|Test|E|Lead 17030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017031|117031|989898|1|9999017031|MR|Test|E|Lead 17031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017032|117032|989898|1|9999017032|MR|Test|E|Lead 17032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017033|117033|989898|1|9999017033|MR|Test|E|Lead 17033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017034|117034|989898|1|9999017034|MR|Test|E|Lead 17034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017035|117035|989898|1|9999017035|MR|Test|E|Lead 17035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017036|117036|989898|1|9999017036|MR|Test|E|Lead 17036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017037|117037|989898|1|9999017037|MR|Test|E|Lead 17037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017038|117038|989898|1|9999017038|MR|Test|E|Lead 17038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017039|117039|989898|1|9999017039|MR|Test|E|Lead 17039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017040|117040|989898|1|9999017040|MR|Test|E|Lead 17040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017041|117041|989898|1|9999017041|MR|Test|E|Lead 17041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017042|117042|989898|1|9999017042|MR|Test|E|Lead 17042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017043|117043|989898|1|9999017043|MR|Test|E|Lead 17043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017044|117044|989898|1|9999017044|MR|Test|E|Lead 17044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017045|117045|989898|1|9999017045|MR|Test|E|Lead 17045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017046|117046|989898|1|9999017046|MR|Test|E|Lead 17046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017047|117047|989898|1|9999017047|MR|Test|E|Lead 17047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017048|117048|989898|1|9999017048|MR|Test|E|Lead 17048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017049|117049|989898|1|9999017049|MR|Test|E|Lead 17049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017050|117050|989898|1|9999017050|MR|Test|E|Lead 17050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017051|117051|989898|1|9999017051|MR|Test|E|Lead 17051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017052|117052|989898|1|9999017052|MR|Test|E|Lead 17052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017053|117053|989898|1|9999017053|MR|Test|E|Lead 17053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017054|117054|989898|1|9999017054|MR|Test|E|Lead 17054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017055|117055|989898|1|9999017055|MR|Test|E|Lead 17055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017056|117056|989898|1|9999017056|MR|Test|E|Lead 17056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017057|117057|989898|1|9999017057|MR|Test|E|Lead 17057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017058|117058|989898|1|9999017058|MR|Test|E|Lead 17058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017059|117059|989898|1|9999017059|MR|Test|E|Lead 17059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017060|117060|989898|1|9999017060|MR|Test|E|Lead 17060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017061|117061|989898|1|9999017061|MR|Test|E|Lead 17061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017062|117062|989898|1|9999017062|MR|Test|E|Lead 17062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017063|117063|989898|1|9999017063|MR|Test|E|Lead 17063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017064|117064|989898|1|9999017064|MR|Test|E|Lead 17064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017065|117065|989898|1|9999017065|MR|Test|E|Lead 17065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017066|117066|989898|1|9999017066|MR|Test|E|Lead 17066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017067|117067|989898|1|9999017067|MR|Test|E|Lead 17067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017068|117068|989898|1|9999017068|MR|Test|E|Lead 17068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017069|117069|989898|1|9999017069|MR|Test|E|Lead 17069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017070|117070|989898|1|9999017070|MR|Test|E|Lead 17070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017071|117071|989898|1|9999017071|MR|Test|E|Lead 17071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017072|117072|989898|1|9999017072|MR|Test|E|Lead 17072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017073|117073|989898|1|9999017073|MR|Test|E|Lead 17073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017074|117074|989898|1|9999017074|MR|Test|E|Lead 17074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017075|117075|989898|1|9999017075|MR|Test|E|Lead 17075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017076|117076|989898|1|9999017076|MR|Test|E|Lead 17076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017077|117077|989898|1|9999017077|MR|Test|E|Lead 17077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017078|117078|989898|1|9999017078|MR|Test|E|Lead 17078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017079|117079|989898|1|9999017079|MR|Test|E|Lead 17079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017080|117080|989898|1|9999017080|MR|Test|E|Lead 17080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017081|117081|989898|1|9999017081|MR|Test|E|Lead 17081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017082|117082|989898|1|9999017082|MR|Test|E|Lead 17082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017083|117083|989898|1|9999017083|MR|Test|E|Lead 17083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017084|117084|989898|1|9999017084|MR|Test|E|Lead 17084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017085|117085|989898|1|9999017085|MR|Test|E|Lead 17085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017086|117086|989898|1|9999017086|MR|Test|E|Lead 17086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017087|117087|989898|1|9999017087|MR|Test|E|Lead 17087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017088|117088|989898|1|9999017088|MR|Test|E|Lead 17088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017089|117089|989898|1|9999017089|MR|Test|E|Lead 17089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017090|117090|989898|1|9999017090|MR|Test|E|Lead 17090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017091|117091|989898|1|9999017091|MR|Test|E|Lead 17091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017092|117092|989898|1|9999017092|MR|Test|E|Lead 17092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017093|117093|989898|1|9999017093|MR|Test|E|Lead 17093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017094|117094|989898|1|9999017094|MR|Test|E|Lead 17094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017095|117095|989898|1|9999017095|MR|Test|E|Lead 17095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017096|117096|989898|1|9999017096|MR|Test|E|Lead 17096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017097|117097|989898|1|9999017097|MR|Test|E|Lead 17097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017098|117098|989898|1|9999017098|MR|Test|E|Lead 17098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017099|117099|989898|1|9999017099|MR|Test|E|Lead 17099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017100|117100|989898|1|9999017100|MR|Test|E|Lead 17100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017101|117101|989898|1|9999017101|MR|Test|E|Lead 17101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017102|117102|989898|1|9999017102|MR|Test|E|Lead 17102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017103|117103|989898|1|9999017103|MR|Test|E|Lead 17103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017104|117104|989898|1|9999017104|MR|Test|E|Lead 17104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017105|117105|989898|1|9999017105|MR|Test|E|Lead 17105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017106|117106|989898|1|9999017106|MR|Test|E|Lead 17106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017107|117107|989898|1|9999017107|MR|Test|E|Lead 17107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017108|117108|989898|1|9999017108|MR|Test|E|Lead 17108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017109|117109|989898|1|9999017109|MR|Test|E|Lead 17109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017110|117110|989898|1|9999017110|MR|Test|E|Lead 17110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017111|117111|989898|1|9999017111|MR|Test|E|Lead 17111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017112|117112|989898|1|9999017112|MR|Test|E|Lead 17112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017113|117113|989898|1|9999017113|MR|Test|E|Lead 17113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017114|117114|989898|1|9999017114|MR|Test|E|Lead 17114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017115|117115|989898|1|9999017115|MR|Test|E|Lead 17115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017116|117116|989898|1|9999017116|MR|Test|E|Lead 17116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017117|117117|989898|1|9999017117|MR|Test|E|Lead 17117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017118|117118|989898|1|9999017118|MR|Test|E|Lead 17118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017119|117119|989898|1|9999017119|MR|Test|E|Lead 17119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017120|117120|989898|1|9999017120|MR|Test|E|Lead 17120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017121|117121|989898|1|9999017121|MR|Test|E|Lead 17121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017122|117122|989898|1|9999017122|MR|Test|E|Lead 17122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017123|117123|989898|1|9999017123|MR|Test|E|Lead 17123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017124|117124|989898|1|9999017124|MR|Test|E|Lead 17124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017125|117125|989898|1|9999017125|MR|Test|E|Lead 17125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017126|117126|989898|1|9999017126|MR|Test|E|Lead 17126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017127|117127|989898|1|9999017127|MR|Test|E|Lead 17127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017128|117128|989898|1|9999017128|MR|Test|E|Lead 17128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017129|117129|989898|1|9999017129|MR|Test|E|Lead 17129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017130|117130|989898|1|9999017130|MR|Test|E|Lead 17130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017131|117131|989898|1|9999017131|MR|Test|E|Lead 17131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017132|117132|989898|1|9999017132|MR|Test|E|Lead 17132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017133|117133|989898|1|9999017133|MR|Test|E|Lead 17133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017134|117134|989898|1|9999017134|MR|Test|E|Lead 17134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017135|117135|989898|1|9999017135|MR|Test|E|Lead 17135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017136|117136|989898|1|9999017136|MR|Test|E|Lead 17136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017137|117137|989898|1|9999017137|MR|Test|E|Lead 17137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017138|117138|989898|1|9999017138|MR|Test|E|Lead 17138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017139|117139|989898|1|9999017139|MR|Test|E|Lead 17139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017140|117140|989898|1|9999017140|MR|Test|E|Lead 17140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017141|117141|989898|1|9999017141|MR|Test|E|Lead 17141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017142|117142|989898|1|9999017142|MR|Test|E|Lead 17142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017143|117143|989898|1|9999017143|MR|Test|E|Lead 17143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017144|117144|989898|1|9999017144|MR|Test|E|Lead 17144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017145|117145|989898|1|9999017145|MR|Test|E|Lead 17145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017146|117146|989898|1|9999017146|MR|Test|E|Lead 17146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017147|117147|989898|1|9999017147|MR|Test|E|Lead 17147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017148|117148|989898|1|9999017148|MR|Test|E|Lead 17148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017149|117149|989898|1|9999017149|MR|Test|E|Lead 17149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017150|117150|989898|1|9999017150|MR|Test|E|Lead 17150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017151|117151|989898|1|9999017151|MR|Test|E|Lead 17151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017152|117152|989898|1|9999017152|MR|Test|E|Lead 17152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017153|117153|989898|1|9999017153|MR|Test|E|Lead 17153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017154|117154|989898|1|9999017154|MR|Test|E|Lead 17154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017155|117155|989898|1|9999017155|MR|Test|E|Lead 17155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017156|117156|989898|1|9999017156|MR|Test|E|Lead 17156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017157|117157|989898|1|9999017157|MR|Test|E|Lead 17157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017158|117158|989898|1|9999017158|MR|Test|E|Lead 17158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017159|117159|989898|1|9999017159|MR|Test|E|Lead 17159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017160|117160|989898|1|9999017160|MR|Test|E|Lead 17160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017161|117161|989898|1|9999017161|MR|Test|E|Lead 17161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017162|117162|989898|1|9999017162|MR|Test|E|Lead 17162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017163|117163|989898|1|9999017163|MR|Test|E|Lead 17163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017164|117164|989898|1|9999017164|MR|Test|E|Lead 17164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017165|117165|989898|1|9999017165|MR|Test|E|Lead 17165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017166|117166|989898|1|9999017166|MR|Test|E|Lead 17166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017167|117167|989898|1|9999017167|MR|Test|E|Lead 17167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017168|117168|989898|1|9999017168|MR|Test|E|Lead 17168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017169|117169|989898|1|9999017169|MR|Test|E|Lead 17169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017170|117170|989898|1|9999017170|MR|Test|E|Lead 17170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017171|117171|989898|1|9999017171|MR|Test|E|Lead 17171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017172|117172|989898|1|9999017172|MR|Test|E|Lead 17172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017173|117173|989898|1|9999017173|MR|Test|E|Lead 17173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017174|117174|989898|1|9999017174|MR|Test|E|Lead 17174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017175|117175|989898|1|9999017175|MR|Test|E|Lead 17175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017176|117176|989898|1|9999017176|MR|Test|E|Lead 17176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017177|117177|989898|1|9999017177|MR|Test|E|Lead 17177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017178|117178|989898|1|9999017178|MR|Test|E|Lead 17178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017179|117179|989898|1|9999017179|MR|Test|E|Lead 17179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017180|117180|989898|1|9999017180|MR|Test|E|Lead 17180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017181|117181|989898|1|9999017181|MR|Test|E|Lead 17181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017182|117182|989898|1|9999017182|MR|Test|E|Lead 17182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017183|117183|989898|1|9999017183|MR|Test|E|Lead 17183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017184|117184|989898|1|9999017184|MR|Test|E|Lead 17184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017185|117185|989898|1|9999017185|MR|Test|E|Lead 17185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017186|117186|989898|1|9999017186|MR|Test|E|Lead 17186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017187|117187|989898|1|9999017187|MR|Test|E|Lead 17187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017188|117188|989898|1|9999017188|MR|Test|E|Lead 17188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017189|117189|989898|1|9999017189|MR|Test|E|Lead 17189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017190|117190|989898|1|9999017190|MR|Test|E|Lead 17190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017191|117191|989898|1|9999017191|MR|Test|E|Lead 17191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017192|117192|989898|1|9999017192|MR|Test|E|Lead 17192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017193|117193|989898|1|9999017193|MR|Test|E|Lead 17193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017194|117194|989898|1|9999017194|MR|Test|E|Lead 17194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017195|117195|989898|1|9999017195|MR|Test|E|Lead 17195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017196|117196|989898|1|9999017196|MR|Test|E|Lead 17196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017197|117197|989898|1|9999017197|MR|Test|E|Lead 17197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017198|117198|989898|1|9999017198|MR|Test|E|Lead 17198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017199|117199|989898|1|9999017199|MR|Test|E|Lead 17199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017200|117200|989898|1|9999017200|MR|Test|E|Lead 17200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017201|117201|989898|1|9999017201|MR|Test|E|Lead 17201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017202|117202|989898|1|9999017202|MR|Test|E|Lead 17202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017203|117203|989898|1|9999017203|MR|Test|E|Lead 17203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017204|117204|989898|1|9999017204|MR|Test|E|Lead 17204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017205|117205|989898|1|9999017205|MR|Test|E|Lead 17205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017206|117206|989898|1|9999017206|MR|Test|E|Lead 17206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017207|117207|989898|1|9999017207|MR|Test|E|Lead 17207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017208|117208|989898|1|9999017208|MR|Test|E|Lead 17208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017209|117209|989898|1|9999017209|MR|Test|E|Lead 17209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017210|117210|989898|1|9999017210|MR|Test|E|Lead 17210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017211|117211|989898|1|9999017211|MR|Test|E|Lead 17211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017212|117212|989898|1|9999017212|MR|Test|E|Lead 17212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017213|117213|989898|1|9999017213|MR|Test|E|Lead 17213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017214|117214|989898|1|9999017214|MR|Test|E|Lead 17214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017215|117215|989898|1|9999017215|MR|Test|E|Lead 17215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017216|117216|989898|1|9999017216|MR|Test|E|Lead 17216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017217|117217|989898|1|9999017217|MR|Test|E|Lead 17217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017218|117218|989898|1|9999017218|MR|Test|E|Lead 17218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017219|117219|989898|1|9999017219|MR|Test|E|Lead 17219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017220|117220|989898|1|9999017220|MR|Test|E|Lead 17220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017221|117221|989898|1|9999017221|MR|Test|E|Lead 17221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017222|117222|989898|1|9999017222|MR|Test|E|Lead 17222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017223|117223|989898|1|9999017223|MR|Test|E|Lead 17223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017224|117224|989898|1|9999017224|MR|Test|E|Lead 17224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017225|117225|989898|1|9999017225|MR|Test|E|Lead 17225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017226|117226|989898|1|9999017226|MR|Test|E|Lead 17226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017227|117227|989898|1|9999017227|MR|Test|E|Lead 17227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017228|117228|989898|1|9999017228|MR|Test|E|Lead 17228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017229|117229|989898|1|9999017229|MR|Test|E|Lead 17229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017230|117230|989898|1|9999017230|MR|Test|E|Lead 17230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017231|117231|989898|1|9999017231|MR|Test|E|Lead 17231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017232|117232|989898|1|9999017232|MR|Test|E|Lead 17232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017233|117233|989898|1|9999017233|MR|Test|E|Lead 17233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017234|117234|989898|1|9999017234|MR|Test|E|Lead 17234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017235|117235|989898|1|9999017235|MR|Test|E|Lead 17235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017236|117236|989898|1|9999017236|MR|Test|E|Lead 17236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017237|117237|989898|1|9999017237|MR|Test|E|Lead 17237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017238|117238|989898|1|9999017238|MR|Test|E|Lead 17238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017239|117239|989898|1|9999017239|MR|Test|E|Lead 17239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017240|117240|989898|1|9999017240|MR|Test|E|Lead 17240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017241|117241|989898|1|9999017241|MR|Test|E|Lead 17241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017242|117242|989898|1|9999017242|MR|Test|E|Lead 17242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017243|117243|989898|1|9999017243|MR|Test|E|Lead 17243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017244|117244|989898|1|9999017244|MR|Test|E|Lead 17244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017245|117245|989898|1|9999017245|MR|Test|E|Lead 17245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017246|117246|989898|1|9999017246|MR|Test|E|Lead 17246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017247|117247|989898|1|9999017247|MR|Test|E|Lead 17247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017248|117248|989898|1|9999017248|MR|Test|E|Lead 17248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017249|117249|989898|1|9999017249|MR|Test|E|Lead 17249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017250|117250|989898|1|9999017250|MR|Test|E|Lead 17250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017251|117251|989898|1|9999017251|MR|Test|E|Lead 17251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017252|117252|989898|1|9999017252|MR|Test|E|Lead 17252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017253|117253|989898|1|9999017253|MR|Test|E|Lead 17253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017254|117254|989898|1|9999017254|MR|Test|E|Lead 17254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017255|117255|989898|1|9999017255|MR|Test|E|Lead 17255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017256|117256|989898|1|9999017256|MR|Test|E|Lead 17256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017257|117257|989898|1|9999017257|MR|Test|E|Lead 17257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017258|117258|989898|1|9999017258|MR|Test|E|Lead 17258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017259|117259|989898|1|9999017259|MR|Test|E|Lead 17259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017260|117260|989898|1|9999017260|MR|Test|E|Lead 17260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017261|117261|989898|1|9999017261|MR|Test|E|Lead 17261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017262|117262|989898|1|9999017262|MR|Test|E|Lead 17262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017263|117263|989898|1|9999017263|MR|Test|E|Lead 17263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017264|117264|989898|1|9999017264|MR|Test|E|Lead 17264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017265|117265|989898|1|9999017265|MR|Test|E|Lead 17265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017266|117266|989898|1|9999017266|MR|Test|E|Lead 17266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017267|117267|989898|1|9999017267|MR|Test|E|Lead 17267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017268|117268|989898|1|9999017268|MR|Test|E|Lead 17268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017269|117269|989898|1|9999017269|MR|Test|E|Lead 17269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017270|117270|989898|1|9999017270|MR|Test|E|Lead 17270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017271|117271|989898|1|9999017271|MR|Test|E|Lead 17271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017272|117272|989898|1|9999017272|MR|Test|E|Lead 17272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017273|117273|989898|1|9999017273|MR|Test|E|Lead 17273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017274|117274|989898|1|9999017274|MR|Test|E|Lead 17274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017275|117275|989898|1|9999017275|MR|Test|E|Lead 17275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017276|117276|989898|1|9999017276|MR|Test|E|Lead 17276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017277|117277|989898|1|9999017277|MR|Test|E|Lead 17277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017278|117278|989898|1|9999017278|MR|Test|E|Lead 17278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017279|117279|989898|1|9999017279|MR|Test|E|Lead 17279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017280|117280|989898|1|9999017280|MR|Test|E|Lead 17280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017281|117281|989898|1|9999017281|MR|Test|E|Lead 17281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017282|117282|989898|1|9999017282|MR|Test|E|Lead 17282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017283|117283|989898|1|9999017283|MR|Test|E|Lead 17283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017284|117284|989898|1|9999017284|MR|Test|E|Lead 17284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017285|117285|989898|1|9999017285|MR|Test|E|Lead 17285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017286|117286|989898|1|9999017286|MR|Test|E|Lead 17286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017287|117287|989898|1|9999017287|MR|Test|E|Lead 17287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017288|117288|989898|1|9999017288|MR|Test|E|Lead 17288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017289|117289|989898|1|9999017289|MR|Test|E|Lead 17289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017290|117290|989898|1|9999017290|MR|Test|E|Lead 17290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017291|117291|989898|1|9999017291|MR|Test|E|Lead 17291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017292|117292|989898|1|9999017292|MR|Test|E|Lead 17292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017293|117293|989898|1|9999017293|MR|Test|E|Lead 17293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017294|117294|989898|1|9999017294|MR|Test|E|Lead 17294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017295|117295|989898|1|9999017295|MR|Test|E|Lead 17295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017296|117296|989898|1|9999017296|MR|Test|E|Lead 17296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017297|117297|989898|1|9999017297|MR|Test|E|Lead 17297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017298|117298|989898|1|9999017298|MR|Test|E|Lead 17298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017299|117299|989898|1|9999017299|MR|Test|E|Lead 17299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017300|117300|989898|1|9999017300|MR|Test|E|Lead 17300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017301|117301|989898|1|9999017301|MR|Test|E|Lead 17301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017302|117302|989898|1|9999017302|MR|Test|E|Lead 17302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017303|117303|989898|1|9999017303|MR|Test|E|Lead 17303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017304|117304|989898|1|9999017304|MR|Test|E|Lead 17304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017305|117305|989898|1|9999017305|MR|Test|E|Lead 17305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017306|117306|989898|1|9999017306|MR|Test|E|Lead 17306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017307|117307|989898|1|9999017307|MR|Test|E|Lead 17307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017308|117308|989898|1|9999017308|MR|Test|E|Lead 17308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017309|117309|989898|1|9999017309|MR|Test|E|Lead 17309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017310|117310|989898|1|9999017310|MR|Test|E|Lead 17310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017311|117311|989898|1|9999017311|MR|Test|E|Lead 17311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017312|117312|989898|1|9999017312|MR|Test|E|Lead 17312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017313|117313|989898|1|9999017313|MR|Test|E|Lead 17313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017314|117314|989898|1|9999017314|MR|Test|E|Lead 17314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017315|117315|989898|1|9999017315|MR|Test|E|Lead 17315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017316|117316|989898|1|9999017316|MR|Test|E|Lead 17316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017317|117317|989898|1|9999017317|MR|Test|E|Lead 17317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017318|117318|989898|1|9999017318|MR|Test|E|Lead 17318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017319|117319|989898|1|9999017319|MR|Test|E|Lead 17319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017320|117320|989898|1|9999017320|MR|Test|E|Lead 17320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017321|117321|989898|1|9999017321|MR|Test|E|Lead 17321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017322|117322|989898|1|9999017322|MR|Test|E|Lead 17322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017323|117323|989898|1|9999017323|MR|Test|E|Lead 17323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017324|117324|989898|1|9999017324|MR|Test|E|Lead 17324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017325|117325|989898|1|9999017325|MR|Test|E|Lead 17325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017326|117326|989898|1|9999017326|MR|Test|E|Lead 17326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017327|117327|989898|1|9999017327|MR|Test|E|Lead 17327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017328|117328|989898|1|9999017328|MR|Test|E|Lead 17328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017329|117329|989898|1|9999017329|MR|Test|E|Lead 17329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017330|117330|989898|1|9999017330|MR|Test|E|Lead 17330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017331|117331|989898|1|9999017331|MR|Test|E|Lead 17331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017332|117332|989898|1|9999017332|MR|Test|E|Lead 17332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017333|117333|989898|1|9999017333|MR|Test|E|Lead 17333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017334|117334|989898|1|9999017334|MR|Test|E|Lead 17334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017335|117335|989898|1|9999017335|MR|Test|E|Lead 17335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017336|117336|989898|1|9999017336|MR|Test|E|Lead 17336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017337|117337|989898|1|9999017337|MR|Test|E|Lead 17337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017338|117338|989898|1|9999017338|MR|Test|E|Lead 17338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017339|117339|989898|1|9999017339|MR|Test|E|Lead 17339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017340|117340|989898|1|9999017340|MR|Test|E|Lead 17340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017341|117341|989898|1|9999017341|MR|Test|E|Lead 17341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017342|117342|989898|1|9999017342|MR|Test|E|Lead 17342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017343|117343|989898|1|9999017343|MR|Test|E|Lead 17343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017344|117344|989898|1|9999017344|MR|Test|E|Lead 17344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017345|117345|989898|1|9999017345|MR|Test|E|Lead 17345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017346|117346|989898|1|9999017346|MR|Test|E|Lead 17346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017347|117347|989898|1|9999017347|MR|Test|E|Lead 17347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017348|117348|989898|1|9999017348|MR|Test|E|Lead 17348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017349|117349|989898|1|9999017349|MR|Test|E|Lead 17349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017350|117350|989898|1|9999017350|MR|Test|E|Lead 17350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017351|117351|989898|1|9999017351|MR|Test|E|Lead 17351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017352|117352|989898|1|9999017352|MR|Test|E|Lead 17352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017353|117353|989898|1|9999017353|MR|Test|E|Lead 17353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017354|117354|989898|1|9999017354|MR|Test|E|Lead 17354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017355|117355|989898|1|9999017355|MR|Test|E|Lead 17355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017356|117356|989898|1|9999017356|MR|Test|E|Lead 17356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017357|117357|989898|1|9999017357|MR|Test|E|Lead 17357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017358|117358|989898|1|9999017358|MR|Test|E|Lead 17358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017359|117359|989898|1|9999017359|MR|Test|E|Lead 17359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017360|117360|989898|1|9999017360|MR|Test|E|Lead 17360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017361|117361|989898|1|9999017361|MR|Test|E|Lead 17361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017362|117362|989898|1|9999017362|MR|Test|E|Lead 17362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017363|117363|989898|1|9999017363|MR|Test|E|Lead 17363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017364|117364|989898|1|9999017364|MR|Test|E|Lead 17364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017365|117365|989898|1|9999017365|MR|Test|E|Lead 17365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017366|117366|989898|1|9999017366|MR|Test|E|Lead 17366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017367|117367|989898|1|9999017367|MR|Test|E|Lead 17367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017368|117368|989898|1|9999017368|MR|Test|E|Lead 17368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017369|117369|989898|1|9999017369|MR|Test|E|Lead 17369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017370|117370|989898|1|9999017370|MR|Test|E|Lead 17370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017371|117371|989898|1|9999017371|MR|Test|E|Lead 17371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017372|117372|989898|1|9999017372|MR|Test|E|Lead 17372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017373|117373|989898|1|9999017373|MR|Test|E|Lead 17373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017374|117374|989898|1|9999017374|MR|Test|E|Lead 17374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017375|117375|989898|1|9999017375|MR|Test|E|Lead 17375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017376|117376|989898|1|9999017376|MR|Test|E|Lead 17376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017377|117377|989898|1|9999017377|MR|Test|E|Lead 17377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017378|117378|989898|1|9999017378|MR|Test|E|Lead 17378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017379|117379|989898|1|9999017379|MR|Test|E|Lead 17379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017380|117380|989898|1|9999017380|MR|Test|E|Lead 17380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017381|117381|989898|1|9999017381|MR|Test|E|Lead 17381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017382|117382|989898|1|9999017382|MR|Test|E|Lead 17382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017383|117383|989898|1|9999017383|MR|Test|E|Lead 17383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017384|117384|989898|1|9999017384|MR|Test|E|Lead 17384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017385|117385|989898|1|9999017385|MR|Test|E|Lead 17385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017386|117386|989898|1|9999017386|MR|Test|E|Lead 17386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017387|117387|989898|1|9999017387|MR|Test|E|Lead 17387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017388|117388|989898|1|9999017388|MR|Test|E|Lead 17388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017389|117389|989898|1|9999017389|MR|Test|E|Lead 17389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017390|117390|989898|1|9999017390|MR|Test|E|Lead 17390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017391|117391|989898|1|9999017391|MR|Test|E|Lead 17391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017392|117392|989898|1|9999017392|MR|Test|E|Lead 17392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017393|117393|989898|1|9999017393|MR|Test|E|Lead 17393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017394|117394|989898|1|9999017394|MR|Test|E|Lead 17394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017395|117395|989898|1|9999017395|MR|Test|E|Lead 17395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017396|117396|989898|1|9999017396|MR|Test|E|Lead 17396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017397|117397|989898|1|9999017397|MR|Test|E|Lead 17397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017398|117398|989898|1|9999017398|MR|Test|E|Lead 17398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017399|117399|989898|1|9999017399|MR|Test|E|Lead 17399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017400|117400|989898|1|9999017400|MR|Test|E|Lead 17400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017401|117401|989898|1|9999017401|MR|Test|E|Lead 17401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017402|117402|989898|1|9999017402|MR|Test|E|Lead 17402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017403|117403|989898|1|9999017403|MR|Test|E|Lead 17403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017404|117404|989898|1|9999017404|MR|Test|E|Lead 17404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017405|117405|989898|1|9999017405|MR|Test|E|Lead 17405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017406|117406|989898|1|9999017406|MR|Test|E|Lead 17406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017407|117407|989898|1|9999017407|MR|Test|E|Lead 17407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017408|117408|989898|1|9999017408|MR|Test|E|Lead 17408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017409|117409|989898|1|9999017409|MR|Test|E|Lead 17409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017410|117410|989898|1|9999017410|MR|Test|E|Lead 17410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017411|117411|989898|1|9999017411|MR|Test|E|Lead 17411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017412|117412|989898|1|9999017412|MR|Test|E|Lead 17412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017413|117413|989898|1|9999017413|MR|Test|E|Lead 17413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017414|117414|989898|1|9999017414|MR|Test|E|Lead 17414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017415|117415|989898|1|9999017415|MR|Test|E|Lead 17415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017416|117416|989898|1|9999017416|MR|Test|E|Lead 17416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017417|117417|989898|1|9999017417|MR|Test|E|Lead 17417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017418|117418|989898|1|9999017418|MR|Test|E|Lead 17418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017419|117419|989898|1|9999017419|MR|Test|E|Lead 17419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017420|117420|989898|1|9999017420|MR|Test|E|Lead 17420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017421|117421|989898|1|9999017421|MR|Test|E|Lead 17421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017422|117422|989898|1|9999017422|MR|Test|E|Lead 17422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017423|117423|989898|1|9999017423|MR|Test|E|Lead 17423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017424|117424|989898|1|9999017424|MR|Test|E|Lead 17424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017425|117425|989898|1|9999017425|MR|Test|E|Lead 17425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017426|117426|989898|1|9999017426|MR|Test|E|Lead 17426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017427|117427|989898|1|9999017427|MR|Test|E|Lead 17427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017428|117428|989898|1|9999017428|MR|Test|E|Lead 17428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017429|117429|989898|1|9999017429|MR|Test|E|Lead 17429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017430|117430|989898|1|9999017430|MR|Test|E|Lead 17430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017431|117431|989898|1|9999017431|MR|Test|E|Lead 17431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017432|117432|989898|1|9999017432|MR|Test|E|Lead 17432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017433|117433|989898|1|9999017433|MR|Test|E|Lead 17433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017434|117434|989898|1|9999017434|MR|Test|E|Lead 17434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017435|117435|989898|1|9999017435|MR|Test|E|Lead 17435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017436|117436|989898|1|9999017436|MR|Test|E|Lead 17436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017437|117437|989898|1|9999017437|MR|Test|E|Lead 17437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017438|117438|989898|1|9999017438|MR|Test|E|Lead 17438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017439|117439|989898|1|9999017439|MR|Test|E|Lead 17439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017440|117440|989898|1|9999017440|MR|Test|E|Lead 17440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017441|117441|989898|1|9999017441|MR|Test|E|Lead 17441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017442|117442|989898|1|9999017442|MR|Test|E|Lead 17442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017443|117443|989898|1|9999017443|MR|Test|E|Lead 17443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017444|117444|989898|1|9999017444|MR|Test|E|Lead 17444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017445|117445|989898|1|9999017445|MR|Test|E|Lead 17445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017446|117446|989898|1|9999017446|MR|Test|E|Lead 17446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017447|117447|989898|1|9999017447|MR|Test|E|Lead 17447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017448|117448|989898|1|9999017448|MR|Test|E|Lead 17448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017449|117449|989898|1|9999017449|MR|Test|E|Lead 17449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017450|117450|989898|1|9999017450|MR|Test|E|Lead 17450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017451|117451|989898|1|9999017451|MR|Test|E|Lead 17451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017452|117452|989898|1|9999017452|MR|Test|E|Lead 17452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017453|117453|989898|1|9999017453|MR|Test|E|Lead 17453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017454|117454|989898|1|9999017454|MR|Test|E|Lead 17454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017455|117455|989898|1|9999017455|MR|Test|E|Lead 17455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017456|117456|989898|1|9999017456|MR|Test|E|Lead 17456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017457|117457|989898|1|9999017457|MR|Test|E|Lead 17457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017458|117458|989898|1|9999017458|MR|Test|E|Lead 17458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017459|117459|989898|1|9999017459|MR|Test|E|Lead 17459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017460|117460|989898|1|9999017460|MR|Test|E|Lead 17460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017461|117461|989898|1|9999017461|MR|Test|E|Lead 17461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017462|117462|989898|1|9999017462|MR|Test|E|Lead 17462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017463|117463|989898|1|9999017463|MR|Test|E|Lead 17463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017464|117464|989898|1|9999017464|MR|Test|E|Lead 17464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017465|117465|989898|1|9999017465|MR|Test|E|Lead 17465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017466|117466|989898|1|9999017466|MR|Test|E|Lead 17466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017467|117467|989898|1|9999017467|MR|Test|E|Lead 17467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017468|117468|989898|1|9999017468|MR|Test|E|Lead 17468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017469|117469|989898|1|9999017469|MR|Test|E|Lead 17469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017470|117470|989898|1|9999017470|MR|Test|E|Lead 17470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017471|117471|989898|1|9999017471|MR|Test|E|Lead 17471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017472|117472|989898|1|9999017472|MR|Test|E|Lead 17472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017473|117473|989898|1|9999017473|MR|Test|E|Lead 17473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017474|117474|989898|1|9999017474|MR|Test|E|Lead 17474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017475|117475|989898|1|9999017475|MR|Test|E|Lead 17475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017476|117476|989898|1|9999017476|MR|Test|E|Lead 17476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017477|117477|989898|1|9999017477|MR|Test|E|Lead 17477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017478|117478|989898|1|9999017478|MR|Test|E|Lead 17478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017479|117479|989898|1|9999017479|MR|Test|E|Lead 17479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017480|117480|989898|1|9999017480|MR|Test|E|Lead 17480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017481|117481|989898|1|9999017481|MR|Test|E|Lead 17481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017482|117482|989898|1|9999017482|MR|Test|E|Lead 17482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017483|117483|989898|1|9999017483|MR|Test|E|Lead 17483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017484|117484|989898|1|9999017484|MR|Test|E|Lead 17484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017485|117485|989898|1|9999017485|MR|Test|E|Lead 17485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017486|117486|989898|1|9999017486|MR|Test|E|Lead 17486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017487|117487|989898|1|9999017487|MR|Test|E|Lead 17487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017488|117488|989898|1|9999017488|MR|Test|E|Lead 17488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017489|117489|989898|1|9999017489|MR|Test|E|Lead 17489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017490|117490|989898|1|9999017490|MR|Test|E|Lead 17490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017491|117491|989898|1|9999017491|MR|Test|E|Lead 17491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017492|117492|989898|1|9999017492|MR|Test|E|Lead 17492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017493|117493|989898|1|9999017493|MR|Test|E|Lead 17493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017494|117494|989898|1|9999017494|MR|Test|E|Lead 17494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017495|117495|989898|1|9999017495|MR|Test|E|Lead 17495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017496|117496|989898|1|9999017496|MR|Test|E|Lead 17496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017497|117497|989898|1|9999017497|MR|Test|E|Lead 17497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017498|117498|989898|1|9999017498|MR|Test|E|Lead 17498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017499|117499|989898|1|9999017499|MR|Test|E|Lead 17499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017500|117500|989898|1|9999017500|MR|Test|E|Lead 17500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017501|117501|989898|1|9999017501|MR|Test|E|Lead 17501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017502|117502|989898|1|9999017502|MR|Test|E|Lead 17502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017503|117503|989898|1|9999017503|MR|Test|E|Lead 17503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017504|117504|989898|1|9999017504|MR|Test|E|Lead 17504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017505|117505|989898|1|9999017505|MR|Test|E|Lead 17505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017506|117506|989898|1|9999017506|MR|Test|E|Lead 17506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017507|117507|989898|1|9999017507|MR|Test|E|Lead 17507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017508|117508|989898|1|9999017508|MR|Test|E|Lead 17508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017509|117509|989898|1|9999017509|MR|Test|E|Lead 17509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017510|117510|989898|1|9999017510|MR|Test|E|Lead 17510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017511|117511|989898|1|9999017511|MR|Test|E|Lead 17511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017512|117512|989898|1|9999017512|MR|Test|E|Lead 17512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017513|117513|989898|1|9999017513|MR|Test|E|Lead 17513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017514|117514|989898|1|9999017514|MR|Test|E|Lead 17514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017515|117515|989898|1|9999017515|MR|Test|E|Lead 17515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017516|117516|989898|1|9999017516|MR|Test|E|Lead 17516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017517|117517|989898|1|9999017517|MR|Test|E|Lead 17517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017518|117518|989898|1|9999017518|MR|Test|E|Lead 17518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017519|117519|989898|1|9999017519|MR|Test|E|Lead 17519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017520|117520|989898|1|9999017520|MR|Test|E|Lead 17520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017521|117521|989898|1|9999017521|MR|Test|E|Lead 17521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017522|117522|989898|1|9999017522|MR|Test|E|Lead 17522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017523|117523|989898|1|9999017523|MR|Test|E|Lead 17523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017524|117524|989898|1|9999017524|MR|Test|E|Lead 17524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017525|117525|989898|1|9999017525|MR|Test|E|Lead 17525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017526|117526|989898|1|9999017526|MR|Test|E|Lead 17526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017527|117527|989898|1|9999017527|MR|Test|E|Lead 17527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017528|117528|989898|1|9999017528|MR|Test|E|Lead 17528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017529|117529|989898|1|9999017529|MR|Test|E|Lead 17529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017530|117530|989898|1|9999017530|MR|Test|E|Lead 17530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017531|117531|989898|1|9999017531|MR|Test|E|Lead 17531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017532|117532|989898|1|9999017532|MR|Test|E|Lead 17532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017533|117533|989898|1|9999017533|MR|Test|E|Lead 17533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017534|117534|989898|1|9999017534|MR|Test|E|Lead 17534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017535|117535|989898|1|9999017535|MR|Test|E|Lead 17535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017536|117536|989898|1|9999017536|MR|Test|E|Lead 17536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017537|117537|989898|1|9999017537|MR|Test|E|Lead 17537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017538|117538|989898|1|9999017538|MR|Test|E|Lead 17538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017539|117539|989898|1|9999017539|MR|Test|E|Lead 17539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017540|117540|989898|1|9999017540|MR|Test|E|Lead 17540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017541|117541|989898|1|9999017541|MR|Test|E|Lead 17541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017542|117542|989898|1|9999017542|MR|Test|E|Lead 17542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017543|117543|989898|1|9999017543|MR|Test|E|Lead 17543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017544|117544|989898|1|9999017544|MR|Test|E|Lead 17544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017545|117545|989898|1|9999017545|MR|Test|E|Lead 17545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017546|117546|989898|1|9999017546|MR|Test|E|Lead 17546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017547|117547|989898|1|9999017547|MR|Test|E|Lead 17547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017548|117548|989898|1|9999017548|MR|Test|E|Lead 17548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017549|117549|989898|1|9999017549|MR|Test|E|Lead 17549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017550|117550|989898|1|9999017550|MR|Test|E|Lead 17550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017551|117551|989898|1|9999017551|MR|Test|E|Lead 17551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017552|117552|989898|1|9999017552|MR|Test|E|Lead 17552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017553|117553|989898|1|9999017553|MR|Test|E|Lead 17553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017554|117554|989898|1|9999017554|MR|Test|E|Lead 17554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017555|117555|989898|1|9999017555|MR|Test|E|Lead 17555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017556|117556|989898|1|9999017556|MR|Test|E|Lead 17556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017557|117557|989898|1|9999017557|MR|Test|E|Lead 17557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017558|117558|989898|1|9999017558|MR|Test|E|Lead 17558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017559|117559|989898|1|9999017559|MR|Test|E|Lead 17559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017560|117560|989898|1|9999017560|MR|Test|E|Lead 17560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017561|117561|989898|1|9999017561|MR|Test|E|Lead 17561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017562|117562|989898|1|9999017562|MR|Test|E|Lead 17562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017563|117563|989898|1|9999017563|MR|Test|E|Lead 17563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017564|117564|989898|1|9999017564|MR|Test|E|Lead 17564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017565|117565|989898|1|9999017565|MR|Test|E|Lead 17565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017566|117566|989898|1|9999017566|MR|Test|E|Lead 17566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017567|117567|989898|1|9999017567|MR|Test|E|Lead 17567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017568|117568|989898|1|9999017568|MR|Test|E|Lead 17568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017569|117569|989898|1|9999017569|MR|Test|E|Lead 17569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017570|117570|989898|1|9999017570|MR|Test|E|Lead 17570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017571|117571|989898|1|9999017571|MR|Test|E|Lead 17571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017572|117572|989898|1|9999017572|MR|Test|E|Lead 17572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017573|117573|989898|1|9999017573|MR|Test|E|Lead 17573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017574|117574|989898|1|9999017574|MR|Test|E|Lead 17574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017575|117575|989898|1|9999017575|MR|Test|E|Lead 17575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017576|117576|989898|1|9999017576|MR|Test|E|Lead 17576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017577|117577|989898|1|9999017577|MR|Test|E|Lead 17577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017578|117578|989898|1|9999017578|MR|Test|E|Lead 17578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017579|117579|989898|1|9999017579|MR|Test|E|Lead 17579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017580|117580|989898|1|9999017580|MR|Test|E|Lead 17580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017581|117581|989898|1|9999017581|MR|Test|E|Lead 17581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017582|117582|989898|1|9999017582|MR|Test|E|Lead 17582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017583|117583|989898|1|9999017583|MR|Test|E|Lead 17583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017584|117584|989898|1|9999017584|MR|Test|E|Lead 17584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017585|117585|989898|1|9999017585|MR|Test|E|Lead 17585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017586|117586|989898|1|9999017586|MR|Test|E|Lead 17586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017587|117587|989898|1|9999017587|MR|Test|E|Lead 17587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017588|117588|989898|1|9999017588|MR|Test|E|Lead 17588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017589|117589|989898|1|9999017589|MR|Test|E|Lead 17589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017590|117590|989898|1|9999017590|MR|Test|E|Lead 17590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017591|117591|989898|1|9999017591|MR|Test|E|Lead 17591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017592|117592|989898|1|9999017592|MR|Test|E|Lead 17592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017593|117593|989898|1|9999017593|MR|Test|E|Lead 17593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017594|117594|989898|1|9999017594|MR|Test|E|Lead 17594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017595|117595|989898|1|9999017595|MR|Test|E|Lead 17595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017596|117596|989898|1|9999017596|MR|Test|E|Lead 17596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017597|117597|989898|1|9999017597|MR|Test|E|Lead 17597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017598|117598|989898|1|9999017598|MR|Test|E|Lead 17598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017599|117599|989898|1|9999017599|MR|Test|E|Lead 17599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017600|117600|989898|1|9999017600|MR|Test|E|Lead 17600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017601|117601|989898|1|9999017601|MR|Test|E|Lead 17601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017602|117602|989898|1|9999017602|MR|Test|E|Lead 17602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017603|117603|989898|1|9999017603|MR|Test|E|Lead 17603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017604|117604|989898|1|9999017604|MR|Test|E|Lead 17604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017605|117605|989898|1|9999017605|MR|Test|E|Lead 17605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017606|117606|989898|1|9999017606|MR|Test|E|Lead 17606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017607|117607|989898|1|9999017607|MR|Test|E|Lead 17607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017608|117608|989898|1|9999017608|MR|Test|E|Lead 17608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017609|117609|989898|1|9999017609|MR|Test|E|Lead 17609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017610|117610|989898|1|9999017610|MR|Test|E|Lead 17610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017611|117611|989898|1|9999017611|MR|Test|E|Lead 17611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017612|117612|989898|1|9999017612|MR|Test|E|Lead 17612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017613|117613|989898|1|9999017613|MR|Test|E|Lead 17613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017614|117614|989898|1|9999017614|MR|Test|E|Lead 17614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017615|117615|989898|1|9999017615|MR|Test|E|Lead 17615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017616|117616|989898|1|9999017616|MR|Test|E|Lead 17616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017617|117617|989898|1|9999017617|MR|Test|E|Lead 17617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017618|117618|989898|1|9999017618|MR|Test|E|Lead 17618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017619|117619|989898|1|9999017619|MR|Test|E|Lead 17619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017620|117620|989898|1|9999017620|MR|Test|E|Lead 17620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017621|117621|989898|1|9999017621|MR|Test|E|Lead 17621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017622|117622|989898|1|9999017622|MR|Test|E|Lead 17622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017623|117623|989898|1|9999017623|MR|Test|E|Lead 17623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017624|117624|989898|1|9999017624|MR|Test|E|Lead 17624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017625|117625|989898|1|9999017625|MR|Test|E|Lead 17625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017626|117626|989898|1|9999017626|MR|Test|E|Lead 17626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017627|117627|989898|1|9999017627|MR|Test|E|Lead 17627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017628|117628|989898|1|9999017628|MR|Test|E|Lead 17628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017629|117629|989898|1|9999017629|MR|Test|E|Lead 17629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017630|117630|989898|1|9999017630|MR|Test|E|Lead 17630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017631|117631|989898|1|9999017631|MR|Test|E|Lead 17631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017632|117632|989898|1|9999017632|MR|Test|E|Lead 17632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017633|117633|989898|1|9999017633|MR|Test|E|Lead 17633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017634|117634|989898|1|9999017634|MR|Test|E|Lead 17634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017635|117635|989898|1|9999017635|MR|Test|E|Lead 17635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017636|117636|989898|1|9999017636|MR|Test|E|Lead 17636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017637|117637|989898|1|9999017637|MR|Test|E|Lead 17637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017638|117638|989898|1|9999017638|MR|Test|E|Lead 17638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017639|117639|989898|1|9999017639|MR|Test|E|Lead 17639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017640|117640|989898|1|9999017640|MR|Test|E|Lead 17640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017641|117641|989898|1|9999017641|MR|Test|E|Lead 17641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017642|117642|989898|1|9999017642|MR|Test|E|Lead 17642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017643|117643|989898|1|9999017643|MR|Test|E|Lead 17643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017644|117644|989898|1|9999017644|MR|Test|E|Lead 17644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017645|117645|989898|1|9999017645|MR|Test|E|Lead 17645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017646|117646|989898|1|9999017646|MR|Test|E|Lead 17646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017647|117647|989898|1|9999017647|MR|Test|E|Lead 17647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017648|117648|989898|1|9999017648|MR|Test|E|Lead 17648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017649|117649|989898|1|9999017649|MR|Test|E|Lead 17649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017650|117650|989898|1|9999017650|MR|Test|E|Lead 17650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017651|117651|989898|1|9999017651|MR|Test|E|Lead 17651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017652|117652|989898|1|9999017652|MR|Test|E|Lead 17652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017653|117653|989898|1|9999017653|MR|Test|E|Lead 17653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017654|117654|989898|1|9999017654|MR|Test|E|Lead 17654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017655|117655|989898|1|9999017655|MR|Test|E|Lead 17655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017656|117656|989898|1|9999017656|MR|Test|E|Lead 17656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017657|117657|989898|1|9999017657|MR|Test|E|Lead 17657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017658|117658|989898|1|9999017658|MR|Test|E|Lead 17658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017659|117659|989898|1|9999017659|MR|Test|E|Lead 17659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017660|117660|989898|1|9999017660|MR|Test|E|Lead 17660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017661|117661|989898|1|9999017661|MR|Test|E|Lead 17661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017662|117662|989898|1|9999017662|MR|Test|E|Lead 17662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017663|117663|989898|1|9999017663|MR|Test|E|Lead 17663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017664|117664|989898|1|9999017664|MR|Test|E|Lead 17664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017665|117665|989898|1|9999017665|MR|Test|E|Lead 17665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017666|117666|989898|1|9999017666|MR|Test|E|Lead 17666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017667|117667|989898|1|9999017667|MR|Test|E|Lead 17667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017668|117668|989898|1|9999017668|MR|Test|E|Lead 17668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017669|117669|989898|1|9999017669|MR|Test|E|Lead 17669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017670|117670|989898|1|9999017670|MR|Test|E|Lead 17670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017671|117671|989898|1|9999017671|MR|Test|E|Lead 17671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017672|117672|989898|1|9999017672|MR|Test|E|Lead 17672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017673|117673|989898|1|9999017673|MR|Test|E|Lead 17673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017674|117674|989898|1|9999017674|MR|Test|E|Lead 17674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017675|117675|989898|1|9999017675|MR|Test|E|Lead 17675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017676|117676|989898|1|9999017676|MR|Test|E|Lead 17676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017677|117677|989898|1|9999017677|MR|Test|E|Lead 17677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017678|117678|989898|1|9999017678|MR|Test|E|Lead 17678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017679|117679|989898|1|9999017679|MR|Test|E|Lead 17679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017680|117680|989898|1|9999017680|MR|Test|E|Lead 17680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017681|117681|989898|1|9999017681|MR|Test|E|Lead 17681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017682|117682|989898|1|9999017682|MR|Test|E|Lead 17682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017683|117683|989898|1|9999017683|MR|Test|E|Lead 17683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017684|117684|989898|1|9999017684|MR|Test|E|Lead 17684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017685|117685|989898|1|9999017685|MR|Test|E|Lead 17685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017686|117686|989898|1|9999017686|MR|Test|E|Lead 17686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017687|117687|989898|1|9999017687|MR|Test|E|Lead 17687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017688|117688|989898|1|9999017688|MR|Test|E|Lead 17688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017689|117689|989898|1|9999017689|MR|Test|E|Lead 17689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017690|117690|989898|1|9999017690|MR|Test|E|Lead 17690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017691|117691|989898|1|9999017691|MR|Test|E|Lead 17691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017692|117692|989898|1|9999017692|MR|Test|E|Lead 17692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017693|117693|989898|1|9999017693|MR|Test|E|Lead 17693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017694|117694|989898|1|9999017694|MR|Test|E|Lead 17694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017695|117695|989898|1|9999017695|MR|Test|E|Lead 17695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017696|117696|989898|1|9999017696|MR|Test|E|Lead 17696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017697|117697|989898|1|9999017697|MR|Test|E|Lead 17697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017698|117698|989898|1|9999017698|MR|Test|E|Lead 17698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017699|117699|989898|1|9999017699|MR|Test|E|Lead 17699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017700|117700|989898|1|9999017700|MR|Test|E|Lead 17700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017701|117701|989898|1|9999017701|MR|Test|E|Lead 17701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017702|117702|989898|1|9999017702|MR|Test|E|Lead 17702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017703|117703|989898|1|9999017703|MR|Test|E|Lead 17703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017704|117704|989898|1|9999017704|MR|Test|E|Lead 17704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017705|117705|989898|1|9999017705|MR|Test|E|Lead 17705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017706|117706|989898|1|9999017706|MR|Test|E|Lead 17706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017707|117707|989898|1|9999017707|MR|Test|E|Lead 17707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017708|117708|989898|1|9999017708|MR|Test|E|Lead 17708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017709|117709|989898|1|9999017709|MR|Test|E|Lead 17709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017710|117710|989898|1|9999017710|MR|Test|E|Lead 17710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017711|117711|989898|1|9999017711|MR|Test|E|Lead 17711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017712|117712|989898|1|9999017712|MR|Test|E|Lead 17712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017713|117713|989898|1|9999017713|MR|Test|E|Lead 17713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017714|117714|989898|1|9999017714|MR|Test|E|Lead 17714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017715|117715|989898|1|9999017715|MR|Test|E|Lead 17715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017716|117716|989898|1|9999017716|MR|Test|E|Lead 17716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017717|117717|989898|1|9999017717|MR|Test|E|Lead 17717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017718|117718|989898|1|9999017718|MR|Test|E|Lead 17718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017719|117719|989898|1|9999017719|MR|Test|E|Lead 17719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017720|117720|989898|1|9999017720|MR|Test|E|Lead 17720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017721|117721|989898|1|9999017721|MR|Test|E|Lead 17721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017722|117722|989898|1|9999017722|MR|Test|E|Lead 17722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017723|117723|989898|1|9999017723|MR|Test|E|Lead 17723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017724|117724|989898|1|9999017724|MR|Test|E|Lead 17724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017725|117725|989898|1|9999017725|MR|Test|E|Lead 17725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017726|117726|989898|1|9999017726|MR|Test|E|Lead 17726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017727|117727|989898|1|9999017727|MR|Test|E|Lead 17727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017728|117728|989898|1|9999017728|MR|Test|E|Lead 17728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017729|117729|989898|1|9999017729|MR|Test|E|Lead 17729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017730|117730|989898|1|9999017730|MR|Test|E|Lead 17730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017731|117731|989898|1|9999017731|MR|Test|E|Lead 17731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017732|117732|989898|1|9999017732|MR|Test|E|Lead 17732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017733|117733|989898|1|9999017733|MR|Test|E|Lead 17733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017734|117734|989898|1|9999017734|MR|Test|E|Lead 17734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017735|117735|989898|1|9999017735|MR|Test|E|Lead 17735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017736|117736|989898|1|9999017736|MR|Test|E|Lead 17736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017737|117737|989898|1|9999017737|MR|Test|E|Lead 17737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017738|117738|989898|1|9999017738|MR|Test|E|Lead 17738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017739|117739|989898|1|9999017739|MR|Test|E|Lead 17739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017740|117740|989898|1|9999017740|MR|Test|E|Lead 17740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017741|117741|989898|1|9999017741|MR|Test|E|Lead 17741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017742|117742|989898|1|9999017742|MR|Test|E|Lead 17742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017743|117743|989898|1|9999017743|MR|Test|E|Lead 17743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017744|117744|989898|1|9999017744|MR|Test|E|Lead 17744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017745|117745|989898|1|9999017745|MR|Test|E|Lead 17745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017746|117746|989898|1|9999017746|MR|Test|E|Lead 17746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017747|117747|989898|1|9999017747|MR|Test|E|Lead 17747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017748|117748|989898|1|9999017748|MR|Test|E|Lead 17748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017749|117749|989898|1|9999017749|MR|Test|E|Lead 17749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017750|117750|989898|1|9999017750|MR|Test|E|Lead 17750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017751|117751|989898|1|9999017751|MR|Test|E|Lead 17751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017752|117752|989898|1|9999017752|MR|Test|E|Lead 17752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017753|117753|989898|1|9999017753|MR|Test|E|Lead 17753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017754|117754|989898|1|9999017754|MR|Test|E|Lead 17754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017755|117755|989898|1|9999017755|MR|Test|E|Lead 17755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017756|117756|989898|1|9999017756|MR|Test|E|Lead 17756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017757|117757|989898|1|9999017757|MR|Test|E|Lead 17757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017758|117758|989898|1|9999017758|MR|Test|E|Lead 17758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017759|117759|989898|1|9999017759|MR|Test|E|Lead 17759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017760|117760|989898|1|9999017760|MR|Test|E|Lead 17760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017761|117761|989898|1|9999017761|MR|Test|E|Lead 17761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017762|117762|989898|1|9999017762|MR|Test|E|Lead 17762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017763|117763|989898|1|9999017763|MR|Test|E|Lead 17763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017764|117764|989898|1|9999017764|MR|Test|E|Lead 17764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017765|117765|989898|1|9999017765|MR|Test|E|Lead 17765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017766|117766|989898|1|9999017766|MR|Test|E|Lead 17766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017767|117767|989898|1|9999017767|MR|Test|E|Lead 17767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017768|117768|989898|1|9999017768|MR|Test|E|Lead 17768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017769|117769|989898|1|9999017769|MR|Test|E|Lead 17769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017770|117770|989898|1|9999017770|MR|Test|E|Lead 17770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017771|117771|989898|1|9999017771|MR|Test|E|Lead 17771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017772|117772|989898|1|9999017772|MR|Test|E|Lead 17772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017773|117773|989898|1|9999017773|MR|Test|E|Lead 17773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017774|117774|989898|1|9999017774|MR|Test|E|Lead 17774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017775|117775|989898|1|9999017775|MR|Test|E|Lead 17775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017776|117776|989898|1|9999017776|MR|Test|E|Lead 17776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017777|117777|989898|1|9999017777|MR|Test|E|Lead 17777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017778|117778|989898|1|9999017778|MR|Test|E|Lead 17778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017779|117779|989898|1|9999017779|MR|Test|E|Lead 17779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017780|117780|989898|1|9999017780|MR|Test|E|Lead 17780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017781|117781|989898|1|9999017781|MR|Test|E|Lead 17781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017782|117782|989898|1|9999017782|MR|Test|E|Lead 17782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017783|117783|989898|1|9999017783|MR|Test|E|Lead 17783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017784|117784|989898|1|9999017784|MR|Test|E|Lead 17784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017785|117785|989898|1|9999017785|MR|Test|E|Lead 17785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017786|117786|989898|1|9999017786|MR|Test|E|Lead 17786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017787|117787|989898|1|9999017787|MR|Test|E|Lead 17787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017788|117788|989898|1|9999017788|MR|Test|E|Lead 17788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017789|117789|989898|1|9999017789|MR|Test|E|Lead 17789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017790|117790|989898|1|9999017790|MR|Test|E|Lead 17790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017791|117791|989898|1|9999017791|MR|Test|E|Lead 17791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017792|117792|989898|1|9999017792|MR|Test|E|Lead 17792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017793|117793|989898|1|9999017793|MR|Test|E|Lead 17793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017794|117794|989898|1|9999017794|MR|Test|E|Lead 17794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017795|117795|989898|1|9999017795|MR|Test|E|Lead 17795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017796|117796|989898|1|9999017796|MR|Test|E|Lead 17796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017797|117797|989898|1|9999017797|MR|Test|E|Lead 17797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017798|117798|989898|1|9999017798|MR|Test|E|Lead 17798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017799|117799|989898|1|9999017799|MR|Test|E|Lead 17799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017800|117800|989898|1|9999017800|MR|Test|E|Lead 17800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017801|117801|989898|1|9999017801|MR|Test|E|Lead 17801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017802|117802|989898|1|9999017802|MR|Test|E|Lead 17802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017803|117803|989898|1|9999017803|MR|Test|E|Lead 17803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017804|117804|989898|1|9999017804|MR|Test|E|Lead 17804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017805|117805|989898|1|9999017805|MR|Test|E|Lead 17805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017806|117806|989898|1|9999017806|MR|Test|E|Lead 17806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017807|117807|989898|1|9999017807|MR|Test|E|Lead 17807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017808|117808|989898|1|9999017808|MR|Test|E|Lead 17808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017809|117809|989898|1|9999017809|MR|Test|E|Lead 17809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017810|117810|989898|1|9999017810|MR|Test|E|Lead 17810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017811|117811|989898|1|9999017811|MR|Test|E|Lead 17811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017812|117812|989898|1|9999017812|MR|Test|E|Lead 17812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017813|117813|989898|1|9999017813|MR|Test|E|Lead 17813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017814|117814|989898|1|9999017814|MR|Test|E|Lead 17814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017815|117815|989898|1|9999017815|MR|Test|E|Lead 17815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017816|117816|989898|1|9999017816|MR|Test|E|Lead 17816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017817|117817|989898|1|9999017817|MR|Test|E|Lead 17817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017818|117818|989898|1|9999017818|MR|Test|E|Lead 17818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017819|117819|989898|1|9999017819|MR|Test|E|Lead 17819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017820|117820|989898|1|9999017820|MR|Test|E|Lead 17820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017821|117821|989898|1|9999017821|MR|Test|E|Lead 17821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017822|117822|989898|1|9999017822|MR|Test|E|Lead 17822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017823|117823|989898|1|9999017823|MR|Test|E|Lead 17823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017824|117824|989898|1|9999017824|MR|Test|E|Lead 17824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017825|117825|989898|1|9999017825|MR|Test|E|Lead 17825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017826|117826|989898|1|9999017826|MR|Test|E|Lead 17826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017827|117827|989898|1|9999017827|MR|Test|E|Lead 17827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017828|117828|989898|1|9999017828|MR|Test|E|Lead 17828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017829|117829|989898|1|9999017829|MR|Test|E|Lead 17829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017830|117830|989898|1|9999017830|MR|Test|E|Lead 17830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017831|117831|989898|1|9999017831|MR|Test|E|Lead 17831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017832|117832|989898|1|9999017832|MR|Test|E|Lead 17832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017833|117833|989898|1|9999017833|MR|Test|E|Lead 17833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017834|117834|989898|1|9999017834|MR|Test|E|Lead 17834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017835|117835|989898|1|9999017835|MR|Test|E|Lead 17835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017836|117836|989898|1|9999017836|MR|Test|E|Lead 17836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017837|117837|989898|1|9999017837|MR|Test|E|Lead 17837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017838|117838|989898|1|9999017838|MR|Test|E|Lead 17838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017839|117839|989898|1|9999017839|MR|Test|E|Lead 17839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017840|117840|989898|1|9999017840|MR|Test|E|Lead 17840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017841|117841|989898|1|9999017841|MR|Test|E|Lead 17841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017842|117842|989898|1|9999017842|MR|Test|E|Lead 17842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017843|117843|989898|1|9999017843|MR|Test|E|Lead 17843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017844|117844|989898|1|9999017844|MR|Test|E|Lead 17844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017845|117845|989898|1|9999017845|MR|Test|E|Lead 17845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017846|117846|989898|1|9999017846|MR|Test|E|Lead 17846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017847|117847|989898|1|9999017847|MR|Test|E|Lead 17847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017848|117848|989898|1|9999017848|MR|Test|E|Lead 17848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017849|117849|989898|1|9999017849|MR|Test|E|Lead 17849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017850|117850|989898|1|9999017850|MR|Test|E|Lead 17850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017851|117851|989898|1|9999017851|MR|Test|E|Lead 17851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017852|117852|989898|1|9999017852|MR|Test|E|Lead 17852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017853|117853|989898|1|9999017853|MR|Test|E|Lead 17853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017854|117854|989898|1|9999017854|MR|Test|E|Lead 17854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017855|117855|989898|1|9999017855|MR|Test|E|Lead 17855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017856|117856|989898|1|9999017856|MR|Test|E|Lead 17856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017857|117857|989898|1|9999017857|MR|Test|E|Lead 17857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017858|117858|989898|1|9999017858|MR|Test|E|Lead 17858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017859|117859|989898|1|9999017859|MR|Test|E|Lead 17859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017860|117860|989898|1|9999017860|MR|Test|E|Lead 17860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017861|117861|989898|1|9999017861|MR|Test|E|Lead 17861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017862|117862|989898|1|9999017862|MR|Test|E|Lead 17862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017863|117863|989898|1|9999017863|MR|Test|E|Lead 17863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017864|117864|989898|1|9999017864|MR|Test|E|Lead 17864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017865|117865|989898|1|9999017865|MR|Test|E|Lead 17865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017866|117866|989898|1|9999017866|MR|Test|E|Lead 17866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017867|117867|989898|1|9999017867|MR|Test|E|Lead 17867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017868|117868|989898|1|9999017868|MR|Test|E|Lead 17868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017869|117869|989898|1|9999017869|MR|Test|E|Lead 17869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017870|117870|989898|1|9999017870|MR|Test|E|Lead 17870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017871|117871|989898|1|9999017871|MR|Test|E|Lead 17871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017872|117872|989898|1|9999017872|MR|Test|E|Lead 17872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017873|117873|989898|1|9999017873|MR|Test|E|Lead 17873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017874|117874|989898|1|9999017874|MR|Test|E|Lead 17874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017875|117875|989898|1|9999017875|MR|Test|E|Lead 17875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017876|117876|989898|1|9999017876|MR|Test|E|Lead 17876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017877|117877|989898|1|9999017877|MR|Test|E|Lead 17877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017878|117878|989898|1|9999017878|MR|Test|E|Lead 17878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017879|117879|989898|1|9999017879|MR|Test|E|Lead 17879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017880|117880|989898|1|9999017880|MR|Test|E|Lead 17880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017881|117881|989898|1|9999017881|MR|Test|E|Lead 17881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017882|117882|989898|1|9999017882|MR|Test|E|Lead 17882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017883|117883|989898|1|9999017883|MR|Test|E|Lead 17883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017884|117884|989898|1|9999017884|MR|Test|E|Lead 17884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017885|117885|989898|1|9999017885|MR|Test|E|Lead 17885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017886|117886|989898|1|9999017886|MR|Test|E|Lead 17886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017887|117887|989898|1|9999017887|MR|Test|E|Lead 17887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017888|117888|989898|1|9999017888|MR|Test|E|Lead 17888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017889|117889|989898|1|9999017889|MR|Test|E|Lead 17889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017890|117890|989898|1|9999017890|MR|Test|E|Lead 17890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017891|117891|989898|1|9999017891|MR|Test|E|Lead 17891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017892|117892|989898|1|9999017892|MR|Test|E|Lead 17892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017893|117893|989898|1|9999017893|MR|Test|E|Lead 17893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017894|117894|989898|1|9999017894|MR|Test|E|Lead 17894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017895|117895|989898|1|9999017895|MR|Test|E|Lead 17895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017896|117896|989898|1|9999017896|MR|Test|E|Lead 17896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017897|117897|989898|1|9999017897|MR|Test|E|Lead 17897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017898|117898|989898|1|9999017898|MR|Test|E|Lead 17898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017899|117899|989898|1|9999017899|MR|Test|E|Lead 17899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017900|117900|989898|1|9999017900|MR|Test|E|Lead 17900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017901|117901|989898|1|9999017901|MR|Test|E|Lead 17901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017902|117902|989898|1|9999017902|MR|Test|E|Lead 17902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017903|117903|989898|1|9999017903|MR|Test|E|Lead 17903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017904|117904|989898|1|9999017904|MR|Test|E|Lead 17904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017905|117905|989898|1|9999017905|MR|Test|E|Lead 17905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017906|117906|989898|1|9999017906|MR|Test|E|Lead 17906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017907|117907|989898|1|9999017907|MR|Test|E|Lead 17907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017908|117908|989898|1|9999017908|MR|Test|E|Lead 17908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017909|117909|989898|1|9999017909|MR|Test|E|Lead 17909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017910|117910|989898|1|9999017910|MR|Test|E|Lead 17910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017911|117911|989898|1|9999017911|MR|Test|E|Lead 17911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017912|117912|989898|1|9999017912|MR|Test|E|Lead 17912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017913|117913|989898|1|9999017913|MR|Test|E|Lead 17913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017914|117914|989898|1|9999017914|MR|Test|E|Lead 17914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017915|117915|989898|1|9999017915|MR|Test|E|Lead 17915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017916|117916|989898|1|9999017916|MR|Test|E|Lead 17916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017917|117917|989898|1|9999017917|MR|Test|E|Lead 17917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017918|117918|989898|1|9999017918|MR|Test|E|Lead 17918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017919|117919|989898|1|9999017919|MR|Test|E|Lead 17919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017920|117920|989898|1|9999017920|MR|Test|E|Lead 17920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017921|117921|989898|1|9999017921|MR|Test|E|Lead 17921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017922|117922|989898|1|9999017922|MR|Test|E|Lead 17922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017923|117923|989898|1|9999017923|MR|Test|E|Lead 17923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017924|117924|989898|1|9999017924|MR|Test|E|Lead 17924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017925|117925|989898|1|9999017925|MR|Test|E|Lead 17925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017926|117926|989898|1|9999017926|MR|Test|E|Lead 17926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017927|117927|989898|1|9999017927|MR|Test|E|Lead 17927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017928|117928|989898|1|9999017928|MR|Test|E|Lead 17928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017929|117929|989898|1|9999017929|MR|Test|E|Lead 17929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017930|117930|989898|1|9999017930|MR|Test|E|Lead 17930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017931|117931|989898|1|9999017931|MR|Test|E|Lead 17931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017932|117932|989898|1|9999017932|MR|Test|E|Lead 17932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017933|117933|989898|1|9999017933|MR|Test|E|Lead 17933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017934|117934|989898|1|9999017934|MR|Test|E|Lead 17934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017935|117935|989898|1|9999017935|MR|Test|E|Lead 17935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017936|117936|989898|1|9999017936|MR|Test|E|Lead 17936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017937|117937|989898|1|9999017937|MR|Test|E|Lead 17937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017938|117938|989898|1|9999017938|MR|Test|E|Lead 17938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017939|117939|989898|1|9999017939|MR|Test|E|Lead 17939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017940|117940|989898|1|9999017940|MR|Test|E|Lead 17940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017941|117941|989898|1|9999017941|MR|Test|E|Lead 17941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017942|117942|989898|1|9999017942|MR|Test|E|Lead 17942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017943|117943|989898|1|9999017943|MR|Test|E|Lead 17943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017944|117944|989898|1|9999017944|MR|Test|E|Lead 17944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017945|117945|989898|1|9999017945|MR|Test|E|Lead 17945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017946|117946|989898|1|9999017946|MR|Test|E|Lead 17946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017947|117947|989898|1|9999017947|MR|Test|E|Lead 17947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017948|117948|989898|1|9999017948|MR|Test|E|Lead 17948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017949|117949|989898|1|9999017949|MR|Test|E|Lead 17949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017950|117950|989898|1|9999017950|MR|Test|E|Lead 17950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017951|117951|989898|1|9999017951|MR|Test|E|Lead 17951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017952|117952|989898|1|9999017952|MR|Test|E|Lead 17952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017953|117953|989898|1|9999017953|MR|Test|E|Lead 17953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017954|117954|989898|1|9999017954|MR|Test|E|Lead 17954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017955|117955|989898|1|9999017955|MR|Test|E|Lead 17955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017956|117956|989898|1|9999017956|MR|Test|E|Lead 17956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017957|117957|989898|1|9999017957|MR|Test|E|Lead 17957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017958|117958|989898|1|9999017958|MR|Test|E|Lead 17958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017959|117959|989898|1|9999017959|MR|Test|E|Lead 17959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017960|117960|989898|1|9999017960|MR|Test|E|Lead 17960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017961|117961|989898|1|9999017961|MR|Test|E|Lead 17961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017962|117962|989898|1|9999017962|MR|Test|E|Lead 17962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017963|117963|989898|1|9999017963|MR|Test|E|Lead 17963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017964|117964|989898|1|9999017964|MR|Test|E|Lead 17964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017965|117965|989898|1|9999017965|MR|Test|E|Lead 17965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017966|117966|989898|1|9999017966|MR|Test|E|Lead 17966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017967|117967|989898|1|9999017967|MR|Test|E|Lead 17967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017968|117968|989898|1|9999017968|MR|Test|E|Lead 17968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017969|117969|989898|1|9999017969|MR|Test|E|Lead 17969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017970|117970|989898|1|9999017970|MR|Test|E|Lead 17970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017971|117971|989898|1|9999017971|MR|Test|E|Lead 17971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017972|117972|989898|1|9999017972|MR|Test|E|Lead 17972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017973|117973|989898|1|9999017973|MR|Test|E|Lead 17973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017974|117974|989898|1|9999017974|MR|Test|E|Lead 17974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017975|117975|989898|1|9999017975|MR|Test|E|Lead 17975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017976|117976|989898|1|9999017976|MR|Test|E|Lead 17976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017977|117977|989898|1|9999017977|MR|Test|E|Lead 17977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017978|117978|989898|1|9999017978|MR|Test|E|Lead 17978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017979|117979|989898|1|9999017979|MR|Test|E|Lead 17979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017980|117980|989898|1|9999017980|MR|Test|E|Lead 17980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017981|117981|989898|1|9999017981|MR|Test|E|Lead 17981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017982|117982|989898|1|9999017982|MR|Test|E|Lead 17982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017983|117983|989898|1|9999017983|MR|Test|E|Lead 17983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017984|117984|989898|1|9999017984|MR|Test|E|Lead 17984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017985|117985|989898|1|9999017985|MR|Test|E|Lead 17985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017986|117986|989898|1|9999017986|MR|Test|E|Lead 17986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017987|117987|989898|1|9999017987|MR|Test|E|Lead 17987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017988|117988|989898|1|9999017988|MR|Test|E|Lead 17988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017989|117989|989898|1|9999017989|MR|Test|E|Lead 17989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017990|117990|989898|1|9999017990|MR|Test|E|Lead 17990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017991|117991|989898|1|9999017991|MR|Test|E|Lead 17991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017992|117992|989898|1|9999017992|MR|Test|E|Lead 17992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017993|117993|989898|1|9999017993|MR|Test|E|Lead 17993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017994|117994|989898|1|9999017994|MR|Test|E|Lead 17994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017995|117995|989898|1|9999017995|MR|Test|E|Lead 17995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017996|117996|989898|1|9999017996|MR|Test|E|Lead 17996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017997|117997|989898|1|9999017997|MR|Test|E|Lead 17997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017998|117998|989898|1|9999017998|MR|Test|E|Lead 17998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1017999|117999|989898|1|9999017999|MR|Test|E|Lead 17999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018000|118000|989898|1|9999018000|MR|Test|E|Lead 18000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018001|118001|989898|1|9999018001|MR|Test|E|Lead 18001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018002|118002|989898|1|9999018002|MR|Test|E|Lead 18002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018003|118003|989898|1|9999018003|MR|Test|E|Lead 18003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018004|118004|989898|1|9999018004|MR|Test|E|Lead 18004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018005|118005|989898|1|9999018005|MR|Test|E|Lead 18005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018006|118006|989898|1|9999018006|MR|Test|E|Lead 18006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018007|118007|989898|1|9999018007|MR|Test|E|Lead 18007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018008|118008|989898|1|9999018008|MR|Test|E|Lead 18008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018009|118009|989898|1|9999018009|MR|Test|E|Lead 18009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018010|118010|989898|1|9999018010|MR|Test|E|Lead 18010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018011|118011|989898|1|9999018011|MR|Test|E|Lead 18011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018012|118012|989898|1|9999018012|MR|Test|E|Lead 18012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018013|118013|989898|1|9999018013|MR|Test|E|Lead 18013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018014|118014|989898|1|9999018014|MR|Test|E|Lead 18014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018015|118015|989898|1|9999018015|MR|Test|E|Lead 18015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018016|118016|989898|1|9999018016|MR|Test|E|Lead 18016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018017|118017|989898|1|9999018017|MR|Test|E|Lead 18017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018018|118018|989898|1|9999018018|MR|Test|E|Lead 18018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018019|118019|989898|1|9999018019|MR|Test|E|Lead 18019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018020|118020|989898|1|9999018020|MR|Test|E|Lead 18020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018021|118021|989898|1|9999018021|MR|Test|E|Lead 18021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018022|118022|989898|1|9999018022|MR|Test|E|Lead 18022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018023|118023|989898|1|9999018023|MR|Test|E|Lead 18023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018024|118024|989898|1|9999018024|MR|Test|E|Lead 18024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018025|118025|989898|1|9999018025|MR|Test|E|Lead 18025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018026|118026|989898|1|9999018026|MR|Test|E|Lead 18026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018027|118027|989898|1|9999018027|MR|Test|E|Lead 18027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018028|118028|989898|1|9999018028|MR|Test|E|Lead 18028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018029|118029|989898|1|9999018029|MR|Test|E|Lead 18029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018030|118030|989898|1|9999018030|MR|Test|E|Lead 18030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018031|118031|989898|1|9999018031|MR|Test|E|Lead 18031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018032|118032|989898|1|9999018032|MR|Test|E|Lead 18032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018033|118033|989898|1|9999018033|MR|Test|E|Lead 18033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018034|118034|989898|1|9999018034|MR|Test|E|Lead 18034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018035|118035|989898|1|9999018035|MR|Test|E|Lead 18035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018036|118036|989898|1|9999018036|MR|Test|E|Lead 18036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018037|118037|989898|1|9999018037|MR|Test|E|Lead 18037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018038|118038|989898|1|9999018038|MR|Test|E|Lead 18038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018039|118039|989898|1|9999018039|MR|Test|E|Lead 18039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018040|118040|989898|1|9999018040|MR|Test|E|Lead 18040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018041|118041|989898|1|9999018041|MR|Test|E|Lead 18041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018042|118042|989898|1|9999018042|MR|Test|E|Lead 18042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018043|118043|989898|1|9999018043|MR|Test|E|Lead 18043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018044|118044|989898|1|9999018044|MR|Test|E|Lead 18044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018045|118045|989898|1|9999018045|MR|Test|E|Lead 18045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018046|118046|989898|1|9999018046|MR|Test|E|Lead 18046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018047|118047|989898|1|9999018047|MR|Test|E|Lead 18047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018048|118048|989898|1|9999018048|MR|Test|E|Lead 18048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018049|118049|989898|1|9999018049|MR|Test|E|Lead 18049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018050|118050|989898|1|9999018050|MR|Test|E|Lead 18050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018051|118051|989898|1|9999018051|MR|Test|E|Lead 18051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018052|118052|989898|1|9999018052|MR|Test|E|Lead 18052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018053|118053|989898|1|9999018053|MR|Test|E|Lead 18053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018054|118054|989898|1|9999018054|MR|Test|E|Lead 18054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018055|118055|989898|1|9999018055|MR|Test|E|Lead 18055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018056|118056|989898|1|9999018056|MR|Test|E|Lead 18056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018057|118057|989898|1|9999018057|MR|Test|E|Lead 18057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018058|118058|989898|1|9999018058|MR|Test|E|Lead 18058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018059|118059|989898|1|9999018059|MR|Test|E|Lead 18059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018060|118060|989898|1|9999018060|MR|Test|E|Lead 18060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018061|118061|989898|1|9999018061|MR|Test|E|Lead 18061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018062|118062|989898|1|9999018062|MR|Test|E|Lead 18062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018063|118063|989898|1|9999018063|MR|Test|E|Lead 18063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018064|118064|989898|1|9999018064|MR|Test|E|Lead 18064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018065|118065|989898|1|9999018065|MR|Test|E|Lead 18065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018066|118066|989898|1|9999018066|MR|Test|E|Lead 18066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018067|118067|989898|1|9999018067|MR|Test|E|Lead 18067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018068|118068|989898|1|9999018068|MR|Test|E|Lead 18068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018069|118069|989898|1|9999018069|MR|Test|E|Lead 18069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018070|118070|989898|1|9999018070|MR|Test|E|Lead 18070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018071|118071|989898|1|9999018071|MR|Test|E|Lead 18071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018072|118072|989898|1|9999018072|MR|Test|E|Lead 18072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018073|118073|989898|1|9999018073|MR|Test|E|Lead 18073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018074|118074|989898|1|9999018074|MR|Test|E|Lead 18074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018075|118075|989898|1|9999018075|MR|Test|E|Lead 18075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018076|118076|989898|1|9999018076|MR|Test|E|Lead 18076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018077|118077|989898|1|9999018077|MR|Test|E|Lead 18077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018078|118078|989898|1|9999018078|MR|Test|E|Lead 18078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018079|118079|989898|1|9999018079|MR|Test|E|Lead 18079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018080|118080|989898|1|9999018080|MR|Test|E|Lead 18080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018081|118081|989898|1|9999018081|MR|Test|E|Lead 18081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018082|118082|989898|1|9999018082|MR|Test|E|Lead 18082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018083|118083|989898|1|9999018083|MR|Test|E|Lead 18083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018084|118084|989898|1|9999018084|MR|Test|E|Lead 18084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018085|118085|989898|1|9999018085|MR|Test|E|Lead 18085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018086|118086|989898|1|9999018086|MR|Test|E|Lead 18086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018087|118087|989898|1|9999018087|MR|Test|E|Lead 18087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018088|118088|989898|1|9999018088|MR|Test|E|Lead 18088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018089|118089|989898|1|9999018089|MR|Test|E|Lead 18089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018090|118090|989898|1|9999018090|MR|Test|E|Lead 18090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018091|118091|989898|1|9999018091|MR|Test|E|Lead 18091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018092|118092|989898|1|9999018092|MR|Test|E|Lead 18092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018093|118093|989898|1|9999018093|MR|Test|E|Lead 18093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018094|118094|989898|1|9999018094|MR|Test|E|Lead 18094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018095|118095|989898|1|9999018095|MR|Test|E|Lead 18095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018096|118096|989898|1|9999018096|MR|Test|E|Lead 18096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018097|118097|989898|1|9999018097|MR|Test|E|Lead 18097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018098|118098|989898|1|9999018098|MR|Test|E|Lead 18098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018099|118099|989898|1|9999018099|MR|Test|E|Lead 18099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018100|118100|989898|1|9999018100|MR|Test|E|Lead 18100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018101|118101|989898|1|9999018101|MR|Test|E|Lead 18101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018102|118102|989898|1|9999018102|MR|Test|E|Lead 18102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018103|118103|989898|1|9999018103|MR|Test|E|Lead 18103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018104|118104|989898|1|9999018104|MR|Test|E|Lead 18104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018105|118105|989898|1|9999018105|MR|Test|E|Lead 18105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018106|118106|989898|1|9999018106|MR|Test|E|Lead 18106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018107|118107|989898|1|9999018107|MR|Test|E|Lead 18107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018108|118108|989898|1|9999018108|MR|Test|E|Lead 18108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018109|118109|989898|1|9999018109|MR|Test|E|Lead 18109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018110|118110|989898|1|9999018110|MR|Test|E|Lead 18110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018111|118111|989898|1|9999018111|MR|Test|E|Lead 18111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018112|118112|989898|1|9999018112|MR|Test|E|Lead 18112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018113|118113|989898|1|9999018113|MR|Test|E|Lead 18113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018114|118114|989898|1|9999018114|MR|Test|E|Lead 18114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018115|118115|989898|1|9999018115|MR|Test|E|Lead 18115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018116|118116|989898|1|9999018116|MR|Test|E|Lead 18116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018117|118117|989898|1|9999018117|MR|Test|E|Lead 18117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018118|118118|989898|1|9999018118|MR|Test|E|Lead 18118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018119|118119|989898|1|9999018119|MR|Test|E|Lead 18119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018120|118120|989898|1|9999018120|MR|Test|E|Lead 18120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018121|118121|989898|1|9999018121|MR|Test|E|Lead 18121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018122|118122|989898|1|9999018122|MR|Test|E|Lead 18122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018123|118123|989898|1|9999018123|MR|Test|E|Lead 18123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018124|118124|989898|1|9999018124|MR|Test|E|Lead 18124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018125|118125|989898|1|9999018125|MR|Test|E|Lead 18125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018126|118126|989898|1|9999018126|MR|Test|E|Lead 18126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018127|118127|989898|1|9999018127|MR|Test|E|Lead 18127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018128|118128|989898|1|9999018128|MR|Test|E|Lead 18128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018129|118129|989898|1|9999018129|MR|Test|E|Lead 18129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018130|118130|989898|1|9999018130|MR|Test|E|Lead 18130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018131|118131|989898|1|9999018131|MR|Test|E|Lead 18131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018132|118132|989898|1|9999018132|MR|Test|E|Lead 18132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018133|118133|989898|1|9999018133|MR|Test|E|Lead 18133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018134|118134|989898|1|9999018134|MR|Test|E|Lead 18134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018135|118135|989898|1|9999018135|MR|Test|E|Lead 18135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018136|118136|989898|1|9999018136|MR|Test|E|Lead 18136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018137|118137|989898|1|9999018137|MR|Test|E|Lead 18137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018138|118138|989898|1|9999018138|MR|Test|E|Lead 18138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018139|118139|989898|1|9999018139|MR|Test|E|Lead 18139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018140|118140|989898|1|9999018140|MR|Test|E|Lead 18140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018141|118141|989898|1|9999018141|MR|Test|E|Lead 18141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018142|118142|989898|1|9999018142|MR|Test|E|Lead 18142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018143|118143|989898|1|9999018143|MR|Test|E|Lead 18143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018144|118144|989898|1|9999018144|MR|Test|E|Lead 18144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018145|118145|989898|1|9999018145|MR|Test|E|Lead 18145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018146|118146|989898|1|9999018146|MR|Test|E|Lead 18146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018147|118147|989898|1|9999018147|MR|Test|E|Lead 18147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018148|118148|989898|1|9999018148|MR|Test|E|Lead 18148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018149|118149|989898|1|9999018149|MR|Test|E|Lead 18149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018150|118150|989898|1|9999018150|MR|Test|E|Lead 18150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018151|118151|989898|1|9999018151|MR|Test|E|Lead 18151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018152|118152|989898|1|9999018152|MR|Test|E|Lead 18152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018153|118153|989898|1|9999018153|MR|Test|E|Lead 18153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018154|118154|989898|1|9999018154|MR|Test|E|Lead 18154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018155|118155|989898|1|9999018155|MR|Test|E|Lead 18155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018156|118156|989898|1|9999018156|MR|Test|E|Lead 18156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018157|118157|989898|1|9999018157|MR|Test|E|Lead 18157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018158|118158|989898|1|9999018158|MR|Test|E|Lead 18158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018159|118159|989898|1|9999018159|MR|Test|E|Lead 18159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018160|118160|989898|1|9999018160|MR|Test|E|Lead 18160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018161|118161|989898|1|9999018161|MR|Test|E|Lead 18161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018162|118162|989898|1|9999018162|MR|Test|E|Lead 18162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018163|118163|989898|1|9999018163|MR|Test|E|Lead 18163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018164|118164|989898|1|9999018164|MR|Test|E|Lead 18164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018165|118165|989898|1|9999018165|MR|Test|E|Lead 18165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018166|118166|989898|1|9999018166|MR|Test|E|Lead 18166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018167|118167|989898|1|9999018167|MR|Test|E|Lead 18167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018168|118168|989898|1|9999018168|MR|Test|E|Lead 18168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018169|118169|989898|1|9999018169|MR|Test|E|Lead 18169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018170|118170|989898|1|9999018170|MR|Test|E|Lead 18170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018171|118171|989898|1|9999018171|MR|Test|E|Lead 18171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018172|118172|989898|1|9999018172|MR|Test|E|Lead 18172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018173|118173|989898|1|9999018173|MR|Test|E|Lead 18173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018174|118174|989898|1|9999018174|MR|Test|E|Lead 18174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018175|118175|989898|1|9999018175|MR|Test|E|Lead 18175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018176|118176|989898|1|9999018176|MR|Test|E|Lead 18176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018177|118177|989898|1|9999018177|MR|Test|E|Lead 18177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018178|118178|989898|1|9999018178|MR|Test|E|Lead 18178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018179|118179|989898|1|9999018179|MR|Test|E|Lead 18179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018180|118180|989898|1|9999018180|MR|Test|E|Lead 18180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018181|118181|989898|1|9999018181|MR|Test|E|Lead 18181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018182|118182|989898|1|9999018182|MR|Test|E|Lead 18182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018183|118183|989898|1|9999018183|MR|Test|E|Lead 18183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018184|118184|989898|1|9999018184|MR|Test|E|Lead 18184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018185|118185|989898|1|9999018185|MR|Test|E|Lead 18185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018186|118186|989898|1|9999018186|MR|Test|E|Lead 18186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018187|118187|989898|1|9999018187|MR|Test|E|Lead 18187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018188|118188|989898|1|9999018188|MR|Test|E|Lead 18188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018189|118189|989898|1|9999018189|MR|Test|E|Lead 18189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018190|118190|989898|1|9999018190|MR|Test|E|Lead 18190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018191|118191|989898|1|9999018191|MR|Test|E|Lead 18191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018192|118192|989898|1|9999018192|MR|Test|E|Lead 18192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018193|118193|989898|1|9999018193|MR|Test|E|Lead 18193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018194|118194|989898|1|9999018194|MR|Test|E|Lead 18194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018195|118195|989898|1|9999018195|MR|Test|E|Lead 18195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018196|118196|989898|1|9999018196|MR|Test|E|Lead 18196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018197|118197|989898|1|9999018197|MR|Test|E|Lead 18197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018198|118198|989898|1|9999018198|MR|Test|E|Lead 18198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018199|118199|989898|1|9999018199|MR|Test|E|Lead 18199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018200|118200|989898|1|9999018200|MR|Test|E|Lead 18200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018201|118201|989898|1|9999018201|MR|Test|E|Lead 18201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018202|118202|989898|1|9999018202|MR|Test|E|Lead 18202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018203|118203|989898|1|9999018203|MR|Test|E|Lead 18203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018204|118204|989898|1|9999018204|MR|Test|E|Lead 18204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018205|118205|989898|1|9999018205|MR|Test|E|Lead 18205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018206|118206|989898|1|9999018206|MR|Test|E|Lead 18206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018207|118207|989898|1|9999018207|MR|Test|E|Lead 18207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018208|118208|989898|1|9999018208|MR|Test|E|Lead 18208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018209|118209|989898|1|9999018209|MR|Test|E|Lead 18209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018210|118210|989898|1|9999018210|MR|Test|E|Lead 18210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018211|118211|989898|1|9999018211|MR|Test|E|Lead 18211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018212|118212|989898|1|9999018212|MR|Test|E|Lead 18212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018213|118213|989898|1|9999018213|MR|Test|E|Lead 18213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018214|118214|989898|1|9999018214|MR|Test|E|Lead 18214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018215|118215|989898|1|9999018215|MR|Test|E|Lead 18215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018216|118216|989898|1|9999018216|MR|Test|E|Lead 18216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018217|118217|989898|1|9999018217|MR|Test|E|Lead 18217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018218|118218|989898|1|9999018218|MR|Test|E|Lead 18218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018219|118219|989898|1|9999018219|MR|Test|E|Lead 18219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018220|118220|989898|1|9999018220|MR|Test|E|Lead 18220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018221|118221|989898|1|9999018221|MR|Test|E|Lead 18221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018222|118222|989898|1|9999018222|MR|Test|E|Lead 18222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018223|118223|989898|1|9999018223|MR|Test|E|Lead 18223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018224|118224|989898|1|9999018224|MR|Test|E|Lead 18224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018225|118225|989898|1|9999018225|MR|Test|E|Lead 18225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018226|118226|989898|1|9999018226|MR|Test|E|Lead 18226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018227|118227|989898|1|9999018227|MR|Test|E|Lead 18227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018228|118228|989898|1|9999018228|MR|Test|E|Lead 18228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018229|118229|989898|1|9999018229|MR|Test|E|Lead 18229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018230|118230|989898|1|9999018230|MR|Test|E|Lead 18230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018231|118231|989898|1|9999018231|MR|Test|E|Lead 18231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018232|118232|989898|1|9999018232|MR|Test|E|Lead 18232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018233|118233|989898|1|9999018233|MR|Test|E|Lead 18233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018234|118234|989898|1|9999018234|MR|Test|E|Lead 18234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018235|118235|989898|1|9999018235|MR|Test|E|Lead 18235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018236|118236|989898|1|9999018236|MR|Test|E|Lead 18236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018237|118237|989898|1|9999018237|MR|Test|E|Lead 18237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018238|118238|989898|1|9999018238|MR|Test|E|Lead 18238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018239|118239|989898|1|9999018239|MR|Test|E|Lead 18239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018240|118240|989898|1|9999018240|MR|Test|E|Lead 18240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018241|118241|989898|1|9999018241|MR|Test|E|Lead 18241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018242|118242|989898|1|9999018242|MR|Test|E|Lead 18242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018243|118243|989898|1|9999018243|MR|Test|E|Lead 18243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018244|118244|989898|1|9999018244|MR|Test|E|Lead 18244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018245|118245|989898|1|9999018245|MR|Test|E|Lead 18245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018246|118246|989898|1|9999018246|MR|Test|E|Lead 18246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018247|118247|989898|1|9999018247|MR|Test|E|Lead 18247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018248|118248|989898|1|9999018248|MR|Test|E|Lead 18248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018249|118249|989898|1|9999018249|MR|Test|E|Lead 18249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018250|118250|989898|1|9999018250|MR|Test|E|Lead 18250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018251|118251|989898|1|9999018251|MR|Test|E|Lead 18251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018252|118252|989898|1|9999018252|MR|Test|E|Lead 18252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018253|118253|989898|1|9999018253|MR|Test|E|Lead 18253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018254|118254|989898|1|9999018254|MR|Test|E|Lead 18254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018255|118255|989898|1|9999018255|MR|Test|E|Lead 18255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018256|118256|989898|1|9999018256|MR|Test|E|Lead 18256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018257|118257|989898|1|9999018257|MR|Test|E|Lead 18257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018258|118258|989898|1|9999018258|MR|Test|E|Lead 18258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018259|118259|989898|1|9999018259|MR|Test|E|Lead 18259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018260|118260|989898|1|9999018260|MR|Test|E|Lead 18260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018261|118261|989898|1|9999018261|MR|Test|E|Lead 18261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018262|118262|989898|1|9999018262|MR|Test|E|Lead 18262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018263|118263|989898|1|9999018263|MR|Test|E|Lead 18263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018264|118264|989898|1|9999018264|MR|Test|E|Lead 18264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018265|118265|989898|1|9999018265|MR|Test|E|Lead 18265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018266|118266|989898|1|9999018266|MR|Test|E|Lead 18266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018267|118267|989898|1|9999018267|MR|Test|E|Lead 18267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018268|118268|989898|1|9999018268|MR|Test|E|Lead 18268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018269|118269|989898|1|9999018269|MR|Test|E|Lead 18269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018270|118270|989898|1|9999018270|MR|Test|E|Lead 18270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018271|118271|989898|1|9999018271|MR|Test|E|Lead 18271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018272|118272|989898|1|9999018272|MR|Test|E|Lead 18272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018273|118273|989898|1|9999018273|MR|Test|E|Lead 18273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018274|118274|989898|1|9999018274|MR|Test|E|Lead 18274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018275|118275|989898|1|9999018275|MR|Test|E|Lead 18275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018276|118276|989898|1|9999018276|MR|Test|E|Lead 18276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018277|118277|989898|1|9999018277|MR|Test|E|Lead 18277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018278|118278|989898|1|9999018278|MR|Test|E|Lead 18278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018279|118279|989898|1|9999018279|MR|Test|E|Lead 18279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018280|118280|989898|1|9999018280|MR|Test|E|Lead 18280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018281|118281|989898|1|9999018281|MR|Test|E|Lead 18281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018282|118282|989898|1|9999018282|MR|Test|E|Lead 18282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018283|118283|989898|1|9999018283|MR|Test|E|Lead 18283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018284|118284|989898|1|9999018284|MR|Test|E|Lead 18284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018285|118285|989898|1|9999018285|MR|Test|E|Lead 18285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018286|118286|989898|1|9999018286|MR|Test|E|Lead 18286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018287|118287|989898|1|9999018287|MR|Test|E|Lead 18287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018288|118288|989898|1|9999018288|MR|Test|E|Lead 18288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018289|118289|989898|1|9999018289|MR|Test|E|Lead 18289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018290|118290|989898|1|9999018290|MR|Test|E|Lead 18290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018291|118291|989898|1|9999018291|MR|Test|E|Lead 18291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018292|118292|989898|1|9999018292|MR|Test|E|Lead 18292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018293|118293|989898|1|9999018293|MR|Test|E|Lead 18293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018294|118294|989898|1|9999018294|MR|Test|E|Lead 18294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018295|118295|989898|1|9999018295|MR|Test|E|Lead 18295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018296|118296|989898|1|9999018296|MR|Test|E|Lead 18296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018297|118297|989898|1|9999018297|MR|Test|E|Lead 18297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018298|118298|989898|1|9999018298|MR|Test|E|Lead 18298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018299|118299|989898|1|9999018299|MR|Test|E|Lead 18299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018300|118300|989898|1|9999018300|MR|Test|E|Lead 18300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018301|118301|989898|1|9999018301|MR|Test|E|Lead 18301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018302|118302|989898|1|9999018302|MR|Test|E|Lead 18302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018303|118303|989898|1|9999018303|MR|Test|E|Lead 18303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018304|118304|989898|1|9999018304|MR|Test|E|Lead 18304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018305|118305|989898|1|9999018305|MR|Test|E|Lead 18305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018306|118306|989898|1|9999018306|MR|Test|E|Lead 18306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018307|118307|989898|1|9999018307|MR|Test|E|Lead 18307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018308|118308|989898|1|9999018308|MR|Test|E|Lead 18308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018309|118309|989898|1|9999018309|MR|Test|E|Lead 18309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018310|118310|989898|1|9999018310|MR|Test|E|Lead 18310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018311|118311|989898|1|9999018311|MR|Test|E|Lead 18311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018312|118312|989898|1|9999018312|MR|Test|E|Lead 18312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018313|118313|989898|1|9999018313|MR|Test|E|Lead 18313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018314|118314|989898|1|9999018314|MR|Test|E|Lead 18314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018315|118315|989898|1|9999018315|MR|Test|E|Lead 18315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018316|118316|989898|1|9999018316|MR|Test|E|Lead 18316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018317|118317|989898|1|9999018317|MR|Test|E|Lead 18317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018318|118318|989898|1|9999018318|MR|Test|E|Lead 18318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018319|118319|989898|1|9999018319|MR|Test|E|Lead 18319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018320|118320|989898|1|9999018320|MR|Test|E|Lead 18320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018321|118321|989898|1|9999018321|MR|Test|E|Lead 18321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018322|118322|989898|1|9999018322|MR|Test|E|Lead 18322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018323|118323|989898|1|9999018323|MR|Test|E|Lead 18323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018324|118324|989898|1|9999018324|MR|Test|E|Lead 18324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018325|118325|989898|1|9999018325|MR|Test|E|Lead 18325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018326|118326|989898|1|9999018326|MR|Test|E|Lead 18326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018327|118327|989898|1|9999018327|MR|Test|E|Lead 18327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018328|118328|989898|1|9999018328|MR|Test|E|Lead 18328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018329|118329|989898|1|9999018329|MR|Test|E|Lead 18329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018330|118330|989898|1|9999018330|MR|Test|E|Lead 18330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018331|118331|989898|1|9999018331|MR|Test|E|Lead 18331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018332|118332|989898|1|9999018332|MR|Test|E|Lead 18332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018333|118333|989898|1|9999018333|MR|Test|E|Lead 18333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018334|118334|989898|1|9999018334|MR|Test|E|Lead 18334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018335|118335|989898|1|9999018335|MR|Test|E|Lead 18335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018336|118336|989898|1|9999018336|MR|Test|E|Lead 18336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018337|118337|989898|1|9999018337|MR|Test|E|Lead 18337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018338|118338|989898|1|9999018338|MR|Test|E|Lead 18338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018339|118339|989898|1|9999018339|MR|Test|E|Lead 18339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018340|118340|989898|1|9999018340|MR|Test|E|Lead 18340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018341|118341|989898|1|9999018341|MR|Test|E|Lead 18341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018342|118342|989898|1|9999018342|MR|Test|E|Lead 18342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018343|118343|989898|1|9999018343|MR|Test|E|Lead 18343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018344|118344|989898|1|9999018344|MR|Test|E|Lead 18344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018345|118345|989898|1|9999018345|MR|Test|E|Lead 18345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018346|118346|989898|1|9999018346|MR|Test|E|Lead 18346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018347|118347|989898|1|9999018347|MR|Test|E|Lead 18347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018348|118348|989898|1|9999018348|MR|Test|E|Lead 18348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018349|118349|989898|1|9999018349|MR|Test|E|Lead 18349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018350|118350|989898|1|9999018350|MR|Test|E|Lead 18350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018351|118351|989898|1|9999018351|MR|Test|E|Lead 18351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018352|118352|989898|1|9999018352|MR|Test|E|Lead 18352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018353|118353|989898|1|9999018353|MR|Test|E|Lead 18353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018354|118354|989898|1|9999018354|MR|Test|E|Lead 18354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018355|118355|989898|1|9999018355|MR|Test|E|Lead 18355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018356|118356|989898|1|9999018356|MR|Test|E|Lead 18356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018357|118357|989898|1|9999018357|MR|Test|E|Lead 18357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018358|118358|989898|1|9999018358|MR|Test|E|Lead 18358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018359|118359|989898|1|9999018359|MR|Test|E|Lead 18359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018360|118360|989898|1|9999018360|MR|Test|E|Lead 18360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018361|118361|989898|1|9999018361|MR|Test|E|Lead 18361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018362|118362|989898|1|9999018362|MR|Test|E|Lead 18362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018363|118363|989898|1|9999018363|MR|Test|E|Lead 18363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018364|118364|989898|1|9999018364|MR|Test|E|Lead 18364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018365|118365|989898|1|9999018365|MR|Test|E|Lead 18365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018366|118366|989898|1|9999018366|MR|Test|E|Lead 18366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018367|118367|989898|1|9999018367|MR|Test|E|Lead 18367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018368|118368|989898|1|9999018368|MR|Test|E|Lead 18368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018369|118369|989898|1|9999018369|MR|Test|E|Lead 18369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018370|118370|989898|1|9999018370|MR|Test|E|Lead 18370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018371|118371|989898|1|9999018371|MR|Test|E|Lead 18371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018372|118372|989898|1|9999018372|MR|Test|E|Lead 18372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018373|118373|989898|1|9999018373|MR|Test|E|Lead 18373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018374|118374|989898|1|9999018374|MR|Test|E|Lead 18374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018375|118375|989898|1|9999018375|MR|Test|E|Lead 18375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018376|118376|989898|1|9999018376|MR|Test|E|Lead 18376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018377|118377|989898|1|9999018377|MR|Test|E|Lead 18377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018378|118378|989898|1|9999018378|MR|Test|E|Lead 18378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018379|118379|989898|1|9999018379|MR|Test|E|Lead 18379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018380|118380|989898|1|9999018380|MR|Test|E|Lead 18380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018381|118381|989898|1|9999018381|MR|Test|E|Lead 18381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018382|118382|989898|1|9999018382|MR|Test|E|Lead 18382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018383|118383|989898|1|9999018383|MR|Test|E|Lead 18383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018384|118384|989898|1|9999018384|MR|Test|E|Lead 18384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018385|118385|989898|1|9999018385|MR|Test|E|Lead 18385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018386|118386|989898|1|9999018386|MR|Test|E|Lead 18386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018387|118387|989898|1|9999018387|MR|Test|E|Lead 18387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018388|118388|989898|1|9999018388|MR|Test|E|Lead 18388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018389|118389|989898|1|9999018389|MR|Test|E|Lead 18389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018390|118390|989898|1|9999018390|MR|Test|E|Lead 18390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018391|118391|989898|1|9999018391|MR|Test|E|Lead 18391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018392|118392|989898|1|9999018392|MR|Test|E|Lead 18392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018393|118393|989898|1|9999018393|MR|Test|E|Lead 18393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018394|118394|989898|1|9999018394|MR|Test|E|Lead 18394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018395|118395|989898|1|9999018395|MR|Test|E|Lead 18395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018396|118396|989898|1|9999018396|MR|Test|E|Lead 18396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018397|118397|989898|1|9999018397|MR|Test|E|Lead 18397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018398|118398|989898|1|9999018398|MR|Test|E|Lead 18398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018399|118399|989898|1|9999018399|MR|Test|E|Lead 18399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018400|118400|989898|1|9999018400|MR|Test|E|Lead 18400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018401|118401|989898|1|9999018401|MR|Test|E|Lead 18401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018402|118402|989898|1|9999018402|MR|Test|E|Lead 18402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018403|118403|989898|1|9999018403|MR|Test|E|Lead 18403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018404|118404|989898|1|9999018404|MR|Test|E|Lead 18404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018405|118405|989898|1|9999018405|MR|Test|E|Lead 18405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018406|118406|989898|1|9999018406|MR|Test|E|Lead 18406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018407|118407|989898|1|9999018407|MR|Test|E|Lead 18407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018408|118408|989898|1|9999018408|MR|Test|E|Lead 18408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018409|118409|989898|1|9999018409|MR|Test|E|Lead 18409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018410|118410|989898|1|9999018410|MR|Test|E|Lead 18410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018411|118411|989898|1|9999018411|MR|Test|E|Lead 18411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018412|118412|989898|1|9999018412|MR|Test|E|Lead 18412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018413|118413|989898|1|9999018413|MR|Test|E|Lead 18413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018414|118414|989898|1|9999018414|MR|Test|E|Lead 18414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018415|118415|989898|1|9999018415|MR|Test|E|Lead 18415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018416|118416|989898|1|9999018416|MR|Test|E|Lead 18416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018417|118417|989898|1|9999018417|MR|Test|E|Lead 18417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018418|118418|989898|1|9999018418|MR|Test|E|Lead 18418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018419|118419|989898|1|9999018419|MR|Test|E|Lead 18419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018420|118420|989898|1|9999018420|MR|Test|E|Lead 18420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018421|118421|989898|1|9999018421|MR|Test|E|Lead 18421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018422|118422|989898|1|9999018422|MR|Test|E|Lead 18422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018423|118423|989898|1|9999018423|MR|Test|E|Lead 18423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018424|118424|989898|1|9999018424|MR|Test|E|Lead 18424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018425|118425|989898|1|9999018425|MR|Test|E|Lead 18425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018426|118426|989898|1|9999018426|MR|Test|E|Lead 18426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018427|118427|989898|1|9999018427|MR|Test|E|Lead 18427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018428|118428|989898|1|9999018428|MR|Test|E|Lead 18428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018429|118429|989898|1|9999018429|MR|Test|E|Lead 18429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018430|118430|989898|1|9999018430|MR|Test|E|Lead 18430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018431|118431|989898|1|9999018431|MR|Test|E|Lead 18431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018432|118432|989898|1|9999018432|MR|Test|E|Lead 18432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018433|118433|989898|1|9999018433|MR|Test|E|Lead 18433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018434|118434|989898|1|9999018434|MR|Test|E|Lead 18434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018435|118435|989898|1|9999018435|MR|Test|E|Lead 18435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018436|118436|989898|1|9999018436|MR|Test|E|Lead 18436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018437|118437|989898|1|9999018437|MR|Test|E|Lead 18437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018438|118438|989898|1|9999018438|MR|Test|E|Lead 18438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018439|118439|989898|1|9999018439|MR|Test|E|Lead 18439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018440|118440|989898|1|9999018440|MR|Test|E|Lead 18440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018441|118441|989898|1|9999018441|MR|Test|E|Lead 18441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018442|118442|989898|1|9999018442|MR|Test|E|Lead 18442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018443|118443|989898|1|9999018443|MR|Test|E|Lead 18443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018444|118444|989898|1|9999018444|MR|Test|E|Lead 18444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018445|118445|989898|1|9999018445|MR|Test|E|Lead 18445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018446|118446|989898|1|9999018446|MR|Test|E|Lead 18446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018447|118447|989898|1|9999018447|MR|Test|E|Lead 18447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018448|118448|989898|1|9999018448|MR|Test|E|Lead 18448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018449|118449|989898|1|9999018449|MR|Test|E|Lead 18449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018450|118450|989898|1|9999018450|MR|Test|E|Lead 18450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018451|118451|989898|1|9999018451|MR|Test|E|Lead 18451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018452|118452|989898|1|9999018452|MR|Test|E|Lead 18452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018453|118453|989898|1|9999018453|MR|Test|E|Lead 18453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018454|118454|989898|1|9999018454|MR|Test|E|Lead 18454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018455|118455|989898|1|9999018455|MR|Test|E|Lead 18455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018456|118456|989898|1|9999018456|MR|Test|E|Lead 18456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018457|118457|989898|1|9999018457|MR|Test|E|Lead 18457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018458|118458|989898|1|9999018458|MR|Test|E|Lead 18458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018459|118459|989898|1|9999018459|MR|Test|E|Lead 18459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018460|118460|989898|1|9999018460|MR|Test|E|Lead 18460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018461|118461|989898|1|9999018461|MR|Test|E|Lead 18461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018462|118462|989898|1|9999018462|MR|Test|E|Lead 18462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018463|118463|989898|1|9999018463|MR|Test|E|Lead 18463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018464|118464|989898|1|9999018464|MR|Test|E|Lead 18464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018465|118465|989898|1|9999018465|MR|Test|E|Lead 18465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018466|118466|989898|1|9999018466|MR|Test|E|Lead 18466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018467|118467|989898|1|9999018467|MR|Test|E|Lead 18467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018468|118468|989898|1|9999018468|MR|Test|E|Lead 18468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018469|118469|989898|1|9999018469|MR|Test|E|Lead 18469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018470|118470|989898|1|9999018470|MR|Test|E|Lead 18470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018471|118471|989898|1|9999018471|MR|Test|E|Lead 18471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018472|118472|989898|1|9999018472|MR|Test|E|Lead 18472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018473|118473|989898|1|9999018473|MR|Test|E|Lead 18473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018474|118474|989898|1|9999018474|MR|Test|E|Lead 18474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018475|118475|989898|1|9999018475|MR|Test|E|Lead 18475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018476|118476|989898|1|9999018476|MR|Test|E|Lead 18476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018477|118477|989898|1|9999018477|MR|Test|E|Lead 18477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018478|118478|989898|1|9999018478|MR|Test|E|Lead 18478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018479|118479|989898|1|9999018479|MR|Test|E|Lead 18479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018480|118480|989898|1|9999018480|MR|Test|E|Lead 18480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018481|118481|989898|1|9999018481|MR|Test|E|Lead 18481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018482|118482|989898|1|9999018482|MR|Test|E|Lead 18482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018483|118483|989898|1|9999018483|MR|Test|E|Lead 18483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018484|118484|989898|1|9999018484|MR|Test|E|Lead 18484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018485|118485|989898|1|9999018485|MR|Test|E|Lead 18485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018486|118486|989898|1|9999018486|MR|Test|E|Lead 18486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018487|118487|989898|1|9999018487|MR|Test|E|Lead 18487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018488|118488|989898|1|9999018488|MR|Test|E|Lead 18488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018489|118489|989898|1|9999018489|MR|Test|E|Lead 18489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018490|118490|989898|1|9999018490|MR|Test|E|Lead 18490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018491|118491|989898|1|9999018491|MR|Test|E|Lead 18491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018492|118492|989898|1|9999018492|MR|Test|E|Lead 18492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018493|118493|989898|1|9999018493|MR|Test|E|Lead 18493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018494|118494|989898|1|9999018494|MR|Test|E|Lead 18494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018495|118495|989898|1|9999018495|MR|Test|E|Lead 18495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018496|118496|989898|1|9999018496|MR|Test|E|Lead 18496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018497|118497|989898|1|9999018497|MR|Test|E|Lead 18497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018498|118498|989898|1|9999018498|MR|Test|E|Lead 18498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018499|118499|989898|1|9999018499|MR|Test|E|Lead 18499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018500|118500|989898|1|9999018500|MR|Test|E|Lead 18500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018501|118501|989898|1|9999018501|MR|Test|E|Lead 18501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018502|118502|989898|1|9999018502|MR|Test|E|Lead 18502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018503|118503|989898|1|9999018503|MR|Test|E|Lead 18503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018504|118504|989898|1|9999018504|MR|Test|E|Lead 18504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018505|118505|989898|1|9999018505|MR|Test|E|Lead 18505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018506|118506|989898|1|9999018506|MR|Test|E|Lead 18506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018507|118507|989898|1|9999018507|MR|Test|E|Lead 18507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018508|118508|989898|1|9999018508|MR|Test|E|Lead 18508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018509|118509|989898|1|9999018509|MR|Test|E|Lead 18509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018510|118510|989898|1|9999018510|MR|Test|E|Lead 18510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018511|118511|989898|1|9999018511|MR|Test|E|Lead 18511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018512|118512|989898|1|9999018512|MR|Test|E|Lead 18512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018513|118513|989898|1|9999018513|MR|Test|E|Lead 18513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018514|118514|989898|1|9999018514|MR|Test|E|Lead 18514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018515|118515|989898|1|9999018515|MR|Test|E|Lead 18515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018516|118516|989898|1|9999018516|MR|Test|E|Lead 18516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018517|118517|989898|1|9999018517|MR|Test|E|Lead 18517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018518|118518|989898|1|9999018518|MR|Test|E|Lead 18518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018519|118519|989898|1|9999018519|MR|Test|E|Lead 18519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018520|118520|989898|1|9999018520|MR|Test|E|Lead 18520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018521|118521|989898|1|9999018521|MR|Test|E|Lead 18521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018522|118522|989898|1|9999018522|MR|Test|E|Lead 18522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018523|118523|989898|1|9999018523|MR|Test|E|Lead 18523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018524|118524|989898|1|9999018524|MR|Test|E|Lead 18524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018525|118525|989898|1|9999018525|MR|Test|E|Lead 18525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018526|118526|989898|1|9999018526|MR|Test|E|Lead 18526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018527|118527|989898|1|9999018527|MR|Test|E|Lead 18527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018528|118528|989898|1|9999018528|MR|Test|E|Lead 18528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018529|118529|989898|1|9999018529|MR|Test|E|Lead 18529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018530|118530|989898|1|9999018530|MR|Test|E|Lead 18530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018531|118531|989898|1|9999018531|MR|Test|E|Lead 18531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018532|118532|989898|1|9999018532|MR|Test|E|Lead 18532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018533|118533|989898|1|9999018533|MR|Test|E|Lead 18533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018534|118534|989898|1|9999018534|MR|Test|E|Lead 18534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018535|118535|989898|1|9999018535|MR|Test|E|Lead 18535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018536|118536|989898|1|9999018536|MR|Test|E|Lead 18536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018537|118537|989898|1|9999018537|MR|Test|E|Lead 18537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018538|118538|989898|1|9999018538|MR|Test|E|Lead 18538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018539|118539|989898|1|9999018539|MR|Test|E|Lead 18539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018540|118540|989898|1|9999018540|MR|Test|E|Lead 18540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018541|118541|989898|1|9999018541|MR|Test|E|Lead 18541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018542|118542|989898|1|9999018542|MR|Test|E|Lead 18542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018543|118543|989898|1|9999018543|MR|Test|E|Lead 18543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018544|118544|989898|1|9999018544|MR|Test|E|Lead 18544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018545|118545|989898|1|9999018545|MR|Test|E|Lead 18545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018546|118546|989898|1|9999018546|MR|Test|E|Lead 18546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018547|118547|989898|1|9999018547|MR|Test|E|Lead 18547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018548|118548|989898|1|9999018548|MR|Test|E|Lead 18548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018549|118549|989898|1|9999018549|MR|Test|E|Lead 18549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018550|118550|989898|1|9999018550|MR|Test|E|Lead 18550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018551|118551|989898|1|9999018551|MR|Test|E|Lead 18551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018552|118552|989898|1|9999018552|MR|Test|E|Lead 18552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018553|118553|989898|1|9999018553|MR|Test|E|Lead 18553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018554|118554|989898|1|9999018554|MR|Test|E|Lead 18554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018555|118555|989898|1|9999018555|MR|Test|E|Lead 18555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018556|118556|989898|1|9999018556|MR|Test|E|Lead 18556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018557|118557|989898|1|9999018557|MR|Test|E|Lead 18557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018558|118558|989898|1|9999018558|MR|Test|E|Lead 18558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018559|118559|989898|1|9999018559|MR|Test|E|Lead 18559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018560|118560|989898|1|9999018560|MR|Test|E|Lead 18560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018561|118561|989898|1|9999018561|MR|Test|E|Lead 18561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018562|118562|989898|1|9999018562|MR|Test|E|Lead 18562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018563|118563|989898|1|9999018563|MR|Test|E|Lead 18563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018564|118564|989898|1|9999018564|MR|Test|E|Lead 18564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018565|118565|989898|1|9999018565|MR|Test|E|Lead 18565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018566|118566|989898|1|9999018566|MR|Test|E|Lead 18566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018567|118567|989898|1|9999018567|MR|Test|E|Lead 18567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018568|118568|989898|1|9999018568|MR|Test|E|Lead 18568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018569|118569|989898|1|9999018569|MR|Test|E|Lead 18569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018570|118570|989898|1|9999018570|MR|Test|E|Lead 18570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018571|118571|989898|1|9999018571|MR|Test|E|Lead 18571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018572|118572|989898|1|9999018572|MR|Test|E|Lead 18572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018573|118573|989898|1|9999018573|MR|Test|E|Lead 18573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018574|118574|989898|1|9999018574|MR|Test|E|Lead 18574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018575|118575|989898|1|9999018575|MR|Test|E|Lead 18575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018576|118576|989898|1|9999018576|MR|Test|E|Lead 18576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018577|118577|989898|1|9999018577|MR|Test|E|Lead 18577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018578|118578|989898|1|9999018578|MR|Test|E|Lead 18578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018579|118579|989898|1|9999018579|MR|Test|E|Lead 18579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018580|118580|989898|1|9999018580|MR|Test|E|Lead 18580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018581|118581|989898|1|9999018581|MR|Test|E|Lead 18581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018582|118582|989898|1|9999018582|MR|Test|E|Lead 18582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018583|118583|989898|1|9999018583|MR|Test|E|Lead 18583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018584|118584|989898|1|9999018584|MR|Test|E|Lead 18584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018585|118585|989898|1|9999018585|MR|Test|E|Lead 18585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018586|118586|989898|1|9999018586|MR|Test|E|Lead 18586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018587|118587|989898|1|9999018587|MR|Test|E|Lead 18587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018588|118588|989898|1|9999018588|MR|Test|E|Lead 18588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018589|118589|989898|1|9999018589|MR|Test|E|Lead 18589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018590|118590|989898|1|9999018590|MR|Test|E|Lead 18590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018591|118591|989898|1|9999018591|MR|Test|E|Lead 18591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018592|118592|989898|1|9999018592|MR|Test|E|Lead 18592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018593|118593|989898|1|9999018593|MR|Test|E|Lead 18593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018594|118594|989898|1|9999018594|MR|Test|E|Lead 18594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018595|118595|989898|1|9999018595|MR|Test|E|Lead 18595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018596|118596|989898|1|9999018596|MR|Test|E|Lead 18596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018597|118597|989898|1|9999018597|MR|Test|E|Lead 18597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018598|118598|989898|1|9999018598|MR|Test|E|Lead 18598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018599|118599|989898|1|9999018599|MR|Test|E|Lead 18599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018600|118600|989898|1|9999018600|MR|Test|E|Lead 18600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018601|118601|989898|1|9999018601|MR|Test|E|Lead 18601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018602|118602|989898|1|9999018602|MR|Test|E|Lead 18602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018603|118603|989898|1|9999018603|MR|Test|E|Lead 18603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018604|118604|989898|1|9999018604|MR|Test|E|Lead 18604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018605|118605|989898|1|9999018605|MR|Test|E|Lead 18605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018606|118606|989898|1|9999018606|MR|Test|E|Lead 18606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018607|118607|989898|1|9999018607|MR|Test|E|Lead 18607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018608|118608|989898|1|9999018608|MR|Test|E|Lead 18608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018609|118609|989898|1|9999018609|MR|Test|E|Lead 18609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018610|118610|989898|1|9999018610|MR|Test|E|Lead 18610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018611|118611|989898|1|9999018611|MR|Test|E|Lead 18611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018612|118612|989898|1|9999018612|MR|Test|E|Lead 18612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018613|118613|989898|1|9999018613|MR|Test|E|Lead 18613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018614|118614|989898|1|9999018614|MR|Test|E|Lead 18614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018615|118615|989898|1|9999018615|MR|Test|E|Lead 18615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018616|118616|989898|1|9999018616|MR|Test|E|Lead 18616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018617|118617|989898|1|9999018617|MR|Test|E|Lead 18617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018618|118618|989898|1|9999018618|MR|Test|E|Lead 18618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018619|118619|989898|1|9999018619|MR|Test|E|Lead 18619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018620|118620|989898|1|9999018620|MR|Test|E|Lead 18620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018621|118621|989898|1|9999018621|MR|Test|E|Lead 18621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018622|118622|989898|1|9999018622|MR|Test|E|Lead 18622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018623|118623|989898|1|9999018623|MR|Test|E|Lead 18623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018624|118624|989898|1|9999018624|MR|Test|E|Lead 18624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018625|118625|989898|1|9999018625|MR|Test|E|Lead 18625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018626|118626|989898|1|9999018626|MR|Test|E|Lead 18626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018627|118627|989898|1|9999018627|MR|Test|E|Lead 18627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018628|118628|989898|1|9999018628|MR|Test|E|Lead 18628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018629|118629|989898|1|9999018629|MR|Test|E|Lead 18629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018630|118630|989898|1|9999018630|MR|Test|E|Lead 18630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018631|118631|989898|1|9999018631|MR|Test|E|Lead 18631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018632|118632|989898|1|9999018632|MR|Test|E|Lead 18632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018633|118633|989898|1|9999018633|MR|Test|E|Lead 18633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018634|118634|989898|1|9999018634|MR|Test|E|Lead 18634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018635|118635|989898|1|9999018635|MR|Test|E|Lead 18635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018636|118636|989898|1|9999018636|MR|Test|E|Lead 18636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018637|118637|989898|1|9999018637|MR|Test|E|Lead 18637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018638|118638|989898|1|9999018638|MR|Test|E|Lead 18638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018639|118639|989898|1|9999018639|MR|Test|E|Lead 18639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018640|118640|989898|1|9999018640|MR|Test|E|Lead 18640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018641|118641|989898|1|9999018641|MR|Test|E|Lead 18641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018642|118642|989898|1|9999018642|MR|Test|E|Lead 18642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018643|118643|989898|1|9999018643|MR|Test|E|Lead 18643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018644|118644|989898|1|9999018644|MR|Test|E|Lead 18644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018645|118645|989898|1|9999018645|MR|Test|E|Lead 18645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018646|118646|989898|1|9999018646|MR|Test|E|Lead 18646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018647|118647|989898|1|9999018647|MR|Test|E|Lead 18647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018648|118648|989898|1|9999018648|MR|Test|E|Lead 18648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018649|118649|989898|1|9999018649|MR|Test|E|Lead 18649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018650|118650|989898|1|9999018650|MR|Test|E|Lead 18650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018651|118651|989898|1|9999018651|MR|Test|E|Lead 18651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018652|118652|989898|1|9999018652|MR|Test|E|Lead 18652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018653|118653|989898|1|9999018653|MR|Test|E|Lead 18653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018654|118654|989898|1|9999018654|MR|Test|E|Lead 18654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018655|118655|989898|1|9999018655|MR|Test|E|Lead 18655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018656|118656|989898|1|9999018656|MR|Test|E|Lead 18656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018657|118657|989898|1|9999018657|MR|Test|E|Lead 18657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018658|118658|989898|1|9999018658|MR|Test|E|Lead 18658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018659|118659|989898|1|9999018659|MR|Test|E|Lead 18659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018660|118660|989898|1|9999018660|MR|Test|E|Lead 18660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018661|118661|989898|1|9999018661|MR|Test|E|Lead 18661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018662|118662|989898|1|9999018662|MR|Test|E|Lead 18662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018663|118663|989898|1|9999018663|MR|Test|E|Lead 18663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018664|118664|989898|1|9999018664|MR|Test|E|Lead 18664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018665|118665|989898|1|9999018665|MR|Test|E|Lead 18665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018666|118666|989898|1|9999018666|MR|Test|E|Lead 18666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018667|118667|989898|1|9999018667|MR|Test|E|Lead 18667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018668|118668|989898|1|9999018668|MR|Test|E|Lead 18668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018669|118669|989898|1|9999018669|MR|Test|E|Lead 18669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018670|118670|989898|1|9999018670|MR|Test|E|Lead 18670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018671|118671|989898|1|9999018671|MR|Test|E|Lead 18671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018672|118672|989898|1|9999018672|MR|Test|E|Lead 18672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018673|118673|989898|1|9999018673|MR|Test|E|Lead 18673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018674|118674|989898|1|9999018674|MR|Test|E|Lead 18674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018675|118675|989898|1|9999018675|MR|Test|E|Lead 18675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018676|118676|989898|1|9999018676|MR|Test|E|Lead 18676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018677|118677|989898|1|9999018677|MR|Test|E|Lead 18677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018678|118678|989898|1|9999018678|MR|Test|E|Lead 18678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018679|118679|989898|1|9999018679|MR|Test|E|Lead 18679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018680|118680|989898|1|9999018680|MR|Test|E|Lead 18680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018681|118681|989898|1|9999018681|MR|Test|E|Lead 18681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018682|118682|989898|1|9999018682|MR|Test|E|Lead 18682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018683|118683|989898|1|9999018683|MR|Test|E|Lead 18683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018684|118684|989898|1|9999018684|MR|Test|E|Lead 18684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018685|118685|989898|1|9999018685|MR|Test|E|Lead 18685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018686|118686|989898|1|9999018686|MR|Test|E|Lead 18686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018687|118687|989898|1|9999018687|MR|Test|E|Lead 18687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018688|118688|989898|1|9999018688|MR|Test|E|Lead 18688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018689|118689|989898|1|9999018689|MR|Test|E|Lead 18689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018690|118690|989898|1|9999018690|MR|Test|E|Lead 18690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018691|118691|989898|1|9999018691|MR|Test|E|Lead 18691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018692|118692|989898|1|9999018692|MR|Test|E|Lead 18692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018693|118693|989898|1|9999018693|MR|Test|E|Lead 18693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018694|118694|989898|1|9999018694|MR|Test|E|Lead 18694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018695|118695|989898|1|9999018695|MR|Test|E|Lead 18695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018696|118696|989898|1|9999018696|MR|Test|E|Lead 18696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018697|118697|989898|1|9999018697|MR|Test|E|Lead 18697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018698|118698|989898|1|9999018698|MR|Test|E|Lead 18698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018699|118699|989898|1|9999018699|MR|Test|E|Lead 18699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018700|118700|989898|1|9999018700|MR|Test|E|Lead 18700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018701|118701|989898|1|9999018701|MR|Test|E|Lead 18701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018702|118702|989898|1|9999018702|MR|Test|E|Lead 18702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018703|118703|989898|1|9999018703|MR|Test|E|Lead 18703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018704|118704|989898|1|9999018704|MR|Test|E|Lead 18704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018705|118705|989898|1|9999018705|MR|Test|E|Lead 18705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018706|118706|989898|1|9999018706|MR|Test|E|Lead 18706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018707|118707|989898|1|9999018707|MR|Test|E|Lead 18707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018708|118708|989898|1|9999018708|MR|Test|E|Lead 18708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018709|118709|989898|1|9999018709|MR|Test|E|Lead 18709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018710|118710|989898|1|9999018710|MR|Test|E|Lead 18710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018711|118711|989898|1|9999018711|MR|Test|E|Lead 18711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018712|118712|989898|1|9999018712|MR|Test|E|Lead 18712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018713|118713|989898|1|9999018713|MR|Test|E|Lead 18713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018714|118714|989898|1|9999018714|MR|Test|E|Lead 18714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018715|118715|989898|1|9999018715|MR|Test|E|Lead 18715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018716|118716|989898|1|9999018716|MR|Test|E|Lead 18716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018717|118717|989898|1|9999018717|MR|Test|E|Lead 18717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018718|118718|989898|1|9999018718|MR|Test|E|Lead 18718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018719|118719|989898|1|9999018719|MR|Test|E|Lead 18719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018720|118720|989898|1|9999018720|MR|Test|E|Lead 18720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018721|118721|989898|1|9999018721|MR|Test|E|Lead 18721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018722|118722|989898|1|9999018722|MR|Test|E|Lead 18722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018723|118723|989898|1|9999018723|MR|Test|E|Lead 18723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018724|118724|989898|1|9999018724|MR|Test|E|Lead 18724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018725|118725|989898|1|9999018725|MR|Test|E|Lead 18725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018726|118726|989898|1|9999018726|MR|Test|E|Lead 18726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018727|118727|989898|1|9999018727|MR|Test|E|Lead 18727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018728|118728|989898|1|9999018728|MR|Test|E|Lead 18728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018729|118729|989898|1|9999018729|MR|Test|E|Lead 18729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018730|118730|989898|1|9999018730|MR|Test|E|Lead 18730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018731|118731|989898|1|9999018731|MR|Test|E|Lead 18731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018732|118732|989898|1|9999018732|MR|Test|E|Lead 18732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018733|118733|989898|1|9999018733|MR|Test|E|Lead 18733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018734|118734|989898|1|9999018734|MR|Test|E|Lead 18734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018735|118735|989898|1|9999018735|MR|Test|E|Lead 18735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018736|118736|989898|1|9999018736|MR|Test|E|Lead 18736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018737|118737|989898|1|9999018737|MR|Test|E|Lead 18737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018738|118738|989898|1|9999018738|MR|Test|E|Lead 18738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018739|118739|989898|1|9999018739|MR|Test|E|Lead 18739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018740|118740|989898|1|9999018740|MR|Test|E|Lead 18740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018741|118741|989898|1|9999018741|MR|Test|E|Lead 18741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018742|118742|989898|1|9999018742|MR|Test|E|Lead 18742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018743|118743|989898|1|9999018743|MR|Test|E|Lead 18743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018744|118744|989898|1|9999018744|MR|Test|E|Lead 18744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018745|118745|989898|1|9999018745|MR|Test|E|Lead 18745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018746|118746|989898|1|9999018746|MR|Test|E|Lead 18746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018747|118747|989898|1|9999018747|MR|Test|E|Lead 18747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018748|118748|989898|1|9999018748|MR|Test|E|Lead 18748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018749|118749|989898|1|9999018749|MR|Test|E|Lead 18749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018750|118750|989898|1|9999018750|MR|Test|E|Lead 18750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018751|118751|989898|1|9999018751|MR|Test|E|Lead 18751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018752|118752|989898|1|9999018752|MR|Test|E|Lead 18752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018753|118753|989898|1|9999018753|MR|Test|E|Lead 18753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018754|118754|989898|1|9999018754|MR|Test|E|Lead 18754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018755|118755|989898|1|9999018755|MR|Test|E|Lead 18755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018756|118756|989898|1|9999018756|MR|Test|E|Lead 18756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018757|118757|989898|1|9999018757|MR|Test|E|Lead 18757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018758|118758|989898|1|9999018758|MR|Test|E|Lead 18758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018759|118759|989898|1|9999018759|MR|Test|E|Lead 18759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018760|118760|989898|1|9999018760|MR|Test|E|Lead 18760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018761|118761|989898|1|9999018761|MR|Test|E|Lead 18761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018762|118762|989898|1|9999018762|MR|Test|E|Lead 18762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018763|118763|989898|1|9999018763|MR|Test|E|Lead 18763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018764|118764|989898|1|9999018764|MR|Test|E|Lead 18764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018765|118765|989898|1|9999018765|MR|Test|E|Lead 18765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018766|118766|989898|1|9999018766|MR|Test|E|Lead 18766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018767|118767|989898|1|9999018767|MR|Test|E|Lead 18767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018768|118768|989898|1|9999018768|MR|Test|E|Lead 18768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018769|118769|989898|1|9999018769|MR|Test|E|Lead 18769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018770|118770|989898|1|9999018770|MR|Test|E|Lead 18770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018771|118771|989898|1|9999018771|MR|Test|E|Lead 18771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018772|118772|989898|1|9999018772|MR|Test|E|Lead 18772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018773|118773|989898|1|9999018773|MR|Test|E|Lead 18773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018774|118774|989898|1|9999018774|MR|Test|E|Lead 18774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018775|118775|989898|1|9999018775|MR|Test|E|Lead 18775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018776|118776|989898|1|9999018776|MR|Test|E|Lead 18776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018777|118777|989898|1|9999018777|MR|Test|E|Lead 18777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018778|118778|989898|1|9999018778|MR|Test|E|Lead 18778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018779|118779|989898|1|9999018779|MR|Test|E|Lead 18779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018780|118780|989898|1|9999018780|MR|Test|E|Lead 18780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018781|118781|989898|1|9999018781|MR|Test|E|Lead 18781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018782|118782|989898|1|9999018782|MR|Test|E|Lead 18782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018783|118783|989898|1|9999018783|MR|Test|E|Lead 18783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018784|118784|989898|1|9999018784|MR|Test|E|Lead 18784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018785|118785|989898|1|9999018785|MR|Test|E|Lead 18785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018786|118786|989898|1|9999018786|MR|Test|E|Lead 18786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018787|118787|989898|1|9999018787|MR|Test|E|Lead 18787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018788|118788|989898|1|9999018788|MR|Test|E|Lead 18788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018789|118789|989898|1|9999018789|MR|Test|E|Lead 18789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018790|118790|989898|1|9999018790|MR|Test|E|Lead 18790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018791|118791|989898|1|9999018791|MR|Test|E|Lead 18791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018792|118792|989898|1|9999018792|MR|Test|E|Lead 18792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018793|118793|989898|1|9999018793|MR|Test|E|Lead 18793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018794|118794|989898|1|9999018794|MR|Test|E|Lead 18794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018795|118795|989898|1|9999018795|MR|Test|E|Lead 18795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018796|118796|989898|1|9999018796|MR|Test|E|Lead 18796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018797|118797|989898|1|9999018797|MR|Test|E|Lead 18797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018798|118798|989898|1|9999018798|MR|Test|E|Lead 18798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018799|118799|989898|1|9999018799|MR|Test|E|Lead 18799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018800|118800|989898|1|9999018800|MR|Test|E|Lead 18800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018801|118801|989898|1|9999018801|MR|Test|E|Lead 18801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018802|118802|989898|1|9999018802|MR|Test|E|Lead 18802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018803|118803|989898|1|9999018803|MR|Test|E|Lead 18803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018804|118804|989898|1|9999018804|MR|Test|E|Lead 18804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018805|118805|989898|1|9999018805|MR|Test|E|Lead 18805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018806|118806|989898|1|9999018806|MR|Test|E|Lead 18806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018807|118807|989898|1|9999018807|MR|Test|E|Lead 18807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018808|118808|989898|1|9999018808|MR|Test|E|Lead 18808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018809|118809|989898|1|9999018809|MR|Test|E|Lead 18809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018810|118810|989898|1|9999018810|MR|Test|E|Lead 18810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018811|118811|989898|1|9999018811|MR|Test|E|Lead 18811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018812|118812|989898|1|9999018812|MR|Test|E|Lead 18812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018813|118813|989898|1|9999018813|MR|Test|E|Lead 18813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018814|118814|989898|1|9999018814|MR|Test|E|Lead 18814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018815|118815|989898|1|9999018815|MR|Test|E|Lead 18815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018816|118816|989898|1|9999018816|MR|Test|E|Lead 18816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018817|118817|989898|1|9999018817|MR|Test|E|Lead 18817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018818|118818|989898|1|9999018818|MR|Test|E|Lead 18818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018819|118819|989898|1|9999018819|MR|Test|E|Lead 18819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018820|118820|989898|1|9999018820|MR|Test|E|Lead 18820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018821|118821|989898|1|9999018821|MR|Test|E|Lead 18821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018822|118822|989898|1|9999018822|MR|Test|E|Lead 18822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018823|118823|989898|1|9999018823|MR|Test|E|Lead 18823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018824|118824|989898|1|9999018824|MR|Test|E|Lead 18824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018825|118825|989898|1|9999018825|MR|Test|E|Lead 18825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018826|118826|989898|1|9999018826|MR|Test|E|Lead 18826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018827|118827|989898|1|9999018827|MR|Test|E|Lead 18827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018828|118828|989898|1|9999018828|MR|Test|E|Lead 18828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018829|118829|989898|1|9999018829|MR|Test|E|Lead 18829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018830|118830|989898|1|9999018830|MR|Test|E|Lead 18830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018831|118831|989898|1|9999018831|MR|Test|E|Lead 18831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018832|118832|989898|1|9999018832|MR|Test|E|Lead 18832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018833|118833|989898|1|9999018833|MR|Test|E|Lead 18833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018834|118834|989898|1|9999018834|MR|Test|E|Lead 18834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018835|118835|989898|1|9999018835|MR|Test|E|Lead 18835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018836|118836|989898|1|9999018836|MR|Test|E|Lead 18836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018837|118837|989898|1|9999018837|MR|Test|E|Lead 18837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018838|118838|989898|1|9999018838|MR|Test|E|Lead 18838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018839|118839|989898|1|9999018839|MR|Test|E|Lead 18839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018840|118840|989898|1|9999018840|MR|Test|E|Lead 18840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018841|118841|989898|1|9999018841|MR|Test|E|Lead 18841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018842|118842|989898|1|9999018842|MR|Test|E|Lead 18842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018843|118843|989898|1|9999018843|MR|Test|E|Lead 18843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018844|118844|989898|1|9999018844|MR|Test|E|Lead 18844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018845|118845|989898|1|9999018845|MR|Test|E|Lead 18845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018846|118846|989898|1|9999018846|MR|Test|E|Lead 18846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018847|118847|989898|1|9999018847|MR|Test|E|Lead 18847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018848|118848|989898|1|9999018848|MR|Test|E|Lead 18848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018849|118849|989898|1|9999018849|MR|Test|E|Lead 18849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018850|118850|989898|1|9999018850|MR|Test|E|Lead 18850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018851|118851|989898|1|9999018851|MR|Test|E|Lead 18851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018852|118852|989898|1|9999018852|MR|Test|E|Lead 18852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018853|118853|989898|1|9999018853|MR|Test|E|Lead 18853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018854|118854|989898|1|9999018854|MR|Test|E|Lead 18854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018855|118855|989898|1|9999018855|MR|Test|E|Lead 18855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018856|118856|989898|1|9999018856|MR|Test|E|Lead 18856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018857|118857|989898|1|9999018857|MR|Test|E|Lead 18857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018858|118858|989898|1|9999018858|MR|Test|E|Lead 18858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018859|118859|989898|1|9999018859|MR|Test|E|Lead 18859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018860|118860|989898|1|9999018860|MR|Test|E|Lead 18860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018861|118861|989898|1|9999018861|MR|Test|E|Lead 18861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018862|118862|989898|1|9999018862|MR|Test|E|Lead 18862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018863|118863|989898|1|9999018863|MR|Test|E|Lead 18863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018864|118864|989898|1|9999018864|MR|Test|E|Lead 18864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018865|118865|989898|1|9999018865|MR|Test|E|Lead 18865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018866|118866|989898|1|9999018866|MR|Test|E|Lead 18866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018867|118867|989898|1|9999018867|MR|Test|E|Lead 18867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018868|118868|989898|1|9999018868|MR|Test|E|Lead 18868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018869|118869|989898|1|9999018869|MR|Test|E|Lead 18869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018870|118870|989898|1|9999018870|MR|Test|E|Lead 18870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018871|118871|989898|1|9999018871|MR|Test|E|Lead 18871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018872|118872|989898|1|9999018872|MR|Test|E|Lead 18872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018873|118873|989898|1|9999018873|MR|Test|E|Lead 18873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018874|118874|989898|1|9999018874|MR|Test|E|Lead 18874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018875|118875|989898|1|9999018875|MR|Test|E|Lead 18875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018876|118876|989898|1|9999018876|MR|Test|E|Lead 18876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018877|118877|989898|1|9999018877|MR|Test|E|Lead 18877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018878|118878|989898|1|9999018878|MR|Test|E|Lead 18878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018879|118879|989898|1|9999018879|MR|Test|E|Lead 18879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018880|118880|989898|1|9999018880|MR|Test|E|Lead 18880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018881|118881|989898|1|9999018881|MR|Test|E|Lead 18881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018882|118882|989898|1|9999018882|MR|Test|E|Lead 18882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018883|118883|989898|1|9999018883|MR|Test|E|Lead 18883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018884|118884|989898|1|9999018884|MR|Test|E|Lead 18884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018885|118885|989898|1|9999018885|MR|Test|E|Lead 18885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018886|118886|989898|1|9999018886|MR|Test|E|Lead 18886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018887|118887|989898|1|9999018887|MR|Test|E|Lead 18887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018888|118888|989898|1|9999018888|MR|Test|E|Lead 18888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018889|118889|989898|1|9999018889|MR|Test|E|Lead 18889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018890|118890|989898|1|9999018890|MR|Test|E|Lead 18890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018891|118891|989898|1|9999018891|MR|Test|E|Lead 18891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018892|118892|989898|1|9999018892|MR|Test|E|Lead 18892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018893|118893|989898|1|9999018893|MR|Test|E|Lead 18893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018894|118894|989898|1|9999018894|MR|Test|E|Lead 18894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018895|118895|989898|1|9999018895|MR|Test|E|Lead 18895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018896|118896|989898|1|9999018896|MR|Test|E|Lead 18896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018897|118897|989898|1|9999018897|MR|Test|E|Lead 18897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018898|118898|989898|1|9999018898|MR|Test|E|Lead 18898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018899|118899|989898|1|9999018899|MR|Test|E|Lead 18899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018900|118900|989898|1|9999018900|MR|Test|E|Lead 18900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018901|118901|989898|1|9999018901|MR|Test|E|Lead 18901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018902|118902|989898|1|9999018902|MR|Test|E|Lead 18902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018903|118903|989898|1|9999018903|MR|Test|E|Lead 18903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018904|118904|989898|1|9999018904|MR|Test|E|Lead 18904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018905|118905|989898|1|9999018905|MR|Test|E|Lead 18905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018906|118906|989898|1|9999018906|MR|Test|E|Lead 18906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018907|118907|989898|1|9999018907|MR|Test|E|Lead 18907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018908|118908|989898|1|9999018908|MR|Test|E|Lead 18908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018909|118909|989898|1|9999018909|MR|Test|E|Lead 18909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018910|118910|989898|1|9999018910|MR|Test|E|Lead 18910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018911|118911|989898|1|9999018911|MR|Test|E|Lead 18911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018912|118912|989898|1|9999018912|MR|Test|E|Lead 18912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018913|118913|989898|1|9999018913|MR|Test|E|Lead 18913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018914|118914|989898|1|9999018914|MR|Test|E|Lead 18914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018915|118915|989898|1|9999018915|MR|Test|E|Lead 18915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018916|118916|989898|1|9999018916|MR|Test|E|Lead 18916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018917|118917|989898|1|9999018917|MR|Test|E|Lead 18917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018918|118918|989898|1|9999018918|MR|Test|E|Lead 18918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018919|118919|989898|1|9999018919|MR|Test|E|Lead 18919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018920|118920|989898|1|9999018920|MR|Test|E|Lead 18920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018921|118921|989898|1|9999018921|MR|Test|E|Lead 18921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018922|118922|989898|1|9999018922|MR|Test|E|Lead 18922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018923|118923|989898|1|9999018923|MR|Test|E|Lead 18923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018924|118924|989898|1|9999018924|MR|Test|E|Lead 18924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018925|118925|989898|1|9999018925|MR|Test|E|Lead 18925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018926|118926|989898|1|9999018926|MR|Test|E|Lead 18926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018927|118927|989898|1|9999018927|MR|Test|E|Lead 18927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018928|118928|989898|1|9999018928|MR|Test|E|Lead 18928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018929|118929|989898|1|9999018929|MR|Test|E|Lead 18929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018930|118930|989898|1|9999018930|MR|Test|E|Lead 18930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018931|118931|989898|1|9999018931|MR|Test|E|Lead 18931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018932|118932|989898|1|9999018932|MR|Test|E|Lead 18932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018933|118933|989898|1|9999018933|MR|Test|E|Lead 18933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018934|118934|989898|1|9999018934|MR|Test|E|Lead 18934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018935|118935|989898|1|9999018935|MR|Test|E|Lead 18935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018936|118936|989898|1|9999018936|MR|Test|E|Lead 18936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018937|118937|989898|1|9999018937|MR|Test|E|Lead 18937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018938|118938|989898|1|9999018938|MR|Test|E|Lead 18938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018939|118939|989898|1|9999018939|MR|Test|E|Lead 18939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018940|118940|989898|1|9999018940|MR|Test|E|Lead 18940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018941|118941|989898|1|9999018941|MR|Test|E|Lead 18941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018942|118942|989898|1|9999018942|MR|Test|E|Lead 18942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018943|118943|989898|1|9999018943|MR|Test|E|Lead 18943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018944|118944|989898|1|9999018944|MR|Test|E|Lead 18944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018945|118945|989898|1|9999018945|MR|Test|E|Lead 18945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018946|118946|989898|1|9999018946|MR|Test|E|Lead 18946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018947|118947|989898|1|9999018947|MR|Test|E|Lead 18947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018948|118948|989898|1|9999018948|MR|Test|E|Lead 18948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018949|118949|989898|1|9999018949|MR|Test|E|Lead 18949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018950|118950|989898|1|9999018950|MR|Test|E|Lead 18950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018951|118951|989898|1|9999018951|MR|Test|E|Lead 18951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018952|118952|989898|1|9999018952|MR|Test|E|Lead 18952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018953|118953|989898|1|9999018953|MR|Test|E|Lead 18953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018954|118954|989898|1|9999018954|MR|Test|E|Lead 18954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018955|118955|989898|1|9999018955|MR|Test|E|Lead 18955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018956|118956|989898|1|9999018956|MR|Test|E|Lead 18956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018957|118957|989898|1|9999018957|MR|Test|E|Lead 18957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018958|118958|989898|1|9999018958|MR|Test|E|Lead 18958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018959|118959|989898|1|9999018959|MR|Test|E|Lead 18959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018960|118960|989898|1|9999018960|MR|Test|E|Lead 18960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018961|118961|989898|1|9999018961|MR|Test|E|Lead 18961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018962|118962|989898|1|9999018962|MR|Test|E|Lead 18962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018963|118963|989898|1|9999018963|MR|Test|E|Lead 18963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018964|118964|989898|1|9999018964|MR|Test|E|Lead 18964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018965|118965|989898|1|9999018965|MR|Test|E|Lead 18965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018966|118966|989898|1|9999018966|MR|Test|E|Lead 18966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018967|118967|989898|1|9999018967|MR|Test|E|Lead 18967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018968|118968|989898|1|9999018968|MR|Test|E|Lead 18968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018969|118969|989898|1|9999018969|MR|Test|E|Lead 18969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018970|118970|989898|1|9999018970|MR|Test|E|Lead 18970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018971|118971|989898|1|9999018971|MR|Test|E|Lead 18971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018972|118972|989898|1|9999018972|MR|Test|E|Lead 18972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018973|118973|989898|1|9999018973|MR|Test|E|Lead 18973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018974|118974|989898|1|9999018974|MR|Test|E|Lead 18974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018975|118975|989898|1|9999018975|MR|Test|E|Lead 18975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018976|118976|989898|1|9999018976|MR|Test|E|Lead 18976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018977|118977|989898|1|9999018977|MR|Test|E|Lead 18977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018978|118978|989898|1|9999018978|MR|Test|E|Lead 18978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018979|118979|989898|1|9999018979|MR|Test|E|Lead 18979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018980|118980|989898|1|9999018980|MR|Test|E|Lead 18980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018981|118981|989898|1|9999018981|MR|Test|E|Lead 18981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018982|118982|989898|1|9999018982|MR|Test|E|Lead 18982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018983|118983|989898|1|9999018983|MR|Test|E|Lead 18983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018984|118984|989898|1|9999018984|MR|Test|E|Lead 18984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018985|118985|989898|1|9999018985|MR|Test|E|Lead 18985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018986|118986|989898|1|9999018986|MR|Test|E|Lead 18986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018987|118987|989898|1|9999018987|MR|Test|E|Lead 18987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018988|118988|989898|1|9999018988|MR|Test|E|Lead 18988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018989|118989|989898|1|9999018989|MR|Test|E|Lead 18989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018990|118990|989898|1|9999018990|MR|Test|E|Lead 18990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018991|118991|989898|1|9999018991|MR|Test|E|Lead 18991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018992|118992|989898|1|9999018992|MR|Test|E|Lead 18992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018993|118993|989898|1|9999018993|MR|Test|E|Lead 18993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018994|118994|989898|1|9999018994|MR|Test|E|Lead 18994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018995|118995|989898|1|9999018995|MR|Test|E|Lead 18995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018996|118996|989898|1|9999018996|MR|Test|E|Lead 18996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018997|118997|989898|1|9999018997|MR|Test|E|Lead 18997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018998|118998|989898|1|9999018998|MR|Test|E|Lead 18998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1018999|118999|989898|1|9999018999|MR|Test|E|Lead 18999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019000|119000|989898|1|9999019000|MR|Test|E|Lead 19000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019001|119001|989898|1|9999019001|MR|Test|E|Lead 19001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019002|119002|989898|1|9999019002|MR|Test|E|Lead 19002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019003|119003|989898|1|9999019003|MR|Test|E|Lead 19003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019004|119004|989898|1|9999019004|MR|Test|E|Lead 19004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019005|119005|989898|1|9999019005|MR|Test|E|Lead 19005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019006|119006|989898|1|9999019006|MR|Test|E|Lead 19006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019007|119007|989898|1|9999019007|MR|Test|E|Lead 19007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019008|119008|989898|1|9999019008|MR|Test|E|Lead 19008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019009|119009|989898|1|9999019009|MR|Test|E|Lead 19009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019010|119010|989898|1|9999019010|MR|Test|E|Lead 19010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019011|119011|989898|1|9999019011|MR|Test|E|Lead 19011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019012|119012|989898|1|9999019012|MR|Test|E|Lead 19012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019013|119013|989898|1|9999019013|MR|Test|E|Lead 19013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019014|119014|989898|1|9999019014|MR|Test|E|Lead 19014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019015|119015|989898|1|9999019015|MR|Test|E|Lead 19015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019016|119016|989898|1|9999019016|MR|Test|E|Lead 19016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019017|119017|989898|1|9999019017|MR|Test|E|Lead 19017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019018|119018|989898|1|9999019018|MR|Test|E|Lead 19018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019019|119019|989898|1|9999019019|MR|Test|E|Lead 19019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019020|119020|989898|1|9999019020|MR|Test|E|Lead 19020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019021|119021|989898|1|9999019021|MR|Test|E|Lead 19021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019022|119022|989898|1|9999019022|MR|Test|E|Lead 19022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019023|119023|989898|1|9999019023|MR|Test|E|Lead 19023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019024|119024|989898|1|9999019024|MR|Test|E|Lead 19024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019025|119025|989898|1|9999019025|MR|Test|E|Lead 19025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019026|119026|989898|1|9999019026|MR|Test|E|Lead 19026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019027|119027|989898|1|9999019027|MR|Test|E|Lead 19027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019028|119028|989898|1|9999019028|MR|Test|E|Lead 19028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019029|119029|989898|1|9999019029|MR|Test|E|Lead 19029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019030|119030|989898|1|9999019030|MR|Test|E|Lead 19030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019031|119031|989898|1|9999019031|MR|Test|E|Lead 19031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019032|119032|989898|1|9999019032|MR|Test|E|Lead 19032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019033|119033|989898|1|9999019033|MR|Test|E|Lead 19033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019034|119034|989898|1|9999019034|MR|Test|E|Lead 19034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019035|119035|989898|1|9999019035|MR|Test|E|Lead 19035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019036|119036|989898|1|9999019036|MR|Test|E|Lead 19036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019037|119037|989898|1|9999019037|MR|Test|E|Lead 19037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019038|119038|989898|1|9999019038|MR|Test|E|Lead 19038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019039|119039|989898|1|9999019039|MR|Test|E|Lead 19039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019040|119040|989898|1|9999019040|MR|Test|E|Lead 19040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019041|119041|989898|1|9999019041|MR|Test|E|Lead 19041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019042|119042|989898|1|9999019042|MR|Test|E|Lead 19042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019043|119043|989898|1|9999019043|MR|Test|E|Lead 19043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019044|119044|989898|1|9999019044|MR|Test|E|Lead 19044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019045|119045|989898|1|9999019045|MR|Test|E|Lead 19045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019046|119046|989898|1|9999019046|MR|Test|E|Lead 19046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019047|119047|989898|1|9999019047|MR|Test|E|Lead 19047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019048|119048|989898|1|9999019048|MR|Test|E|Lead 19048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019049|119049|989898|1|9999019049|MR|Test|E|Lead 19049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019050|119050|989898|1|9999019050|MR|Test|E|Lead 19050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019051|119051|989898|1|9999019051|MR|Test|E|Lead 19051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019052|119052|989898|1|9999019052|MR|Test|E|Lead 19052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019053|119053|989898|1|9999019053|MR|Test|E|Lead 19053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019054|119054|989898|1|9999019054|MR|Test|E|Lead 19054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019055|119055|989898|1|9999019055|MR|Test|E|Lead 19055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019056|119056|989898|1|9999019056|MR|Test|E|Lead 19056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019057|119057|989898|1|9999019057|MR|Test|E|Lead 19057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019058|119058|989898|1|9999019058|MR|Test|E|Lead 19058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019059|119059|989898|1|9999019059|MR|Test|E|Lead 19059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019060|119060|989898|1|9999019060|MR|Test|E|Lead 19060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019061|119061|989898|1|9999019061|MR|Test|E|Lead 19061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019062|119062|989898|1|9999019062|MR|Test|E|Lead 19062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019063|119063|989898|1|9999019063|MR|Test|E|Lead 19063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019064|119064|989898|1|9999019064|MR|Test|E|Lead 19064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019065|119065|989898|1|9999019065|MR|Test|E|Lead 19065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019066|119066|989898|1|9999019066|MR|Test|E|Lead 19066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019067|119067|989898|1|9999019067|MR|Test|E|Lead 19067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019068|119068|989898|1|9999019068|MR|Test|E|Lead 19068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019069|119069|989898|1|9999019069|MR|Test|E|Lead 19069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019070|119070|989898|1|9999019070|MR|Test|E|Lead 19070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019071|119071|989898|1|9999019071|MR|Test|E|Lead 19071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019072|119072|989898|1|9999019072|MR|Test|E|Lead 19072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019073|119073|989898|1|9999019073|MR|Test|E|Lead 19073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019074|119074|989898|1|9999019074|MR|Test|E|Lead 19074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019075|119075|989898|1|9999019075|MR|Test|E|Lead 19075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019076|119076|989898|1|9999019076|MR|Test|E|Lead 19076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019077|119077|989898|1|9999019077|MR|Test|E|Lead 19077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019078|119078|989898|1|9999019078|MR|Test|E|Lead 19078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019079|119079|989898|1|9999019079|MR|Test|E|Lead 19079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019080|119080|989898|1|9999019080|MR|Test|E|Lead 19080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019081|119081|989898|1|9999019081|MR|Test|E|Lead 19081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019082|119082|989898|1|9999019082|MR|Test|E|Lead 19082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019083|119083|989898|1|9999019083|MR|Test|E|Lead 19083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019084|119084|989898|1|9999019084|MR|Test|E|Lead 19084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019085|119085|989898|1|9999019085|MR|Test|E|Lead 19085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019086|119086|989898|1|9999019086|MR|Test|E|Lead 19086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019087|119087|989898|1|9999019087|MR|Test|E|Lead 19087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019088|119088|989898|1|9999019088|MR|Test|E|Lead 19088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019089|119089|989898|1|9999019089|MR|Test|E|Lead 19089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019090|119090|989898|1|9999019090|MR|Test|E|Lead 19090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019091|119091|989898|1|9999019091|MR|Test|E|Lead 19091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019092|119092|989898|1|9999019092|MR|Test|E|Lead 19092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019093|119093|989898|1|9999019093|MR|Test|E|Lead 19093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019094|119094|989898|1|9999019094|MR|Test|E|Lead 19094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019095|119095|989898|1|9999019095|MR|Test|E|Lead 19095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019096|119096|989898|1|9999019096|MR|Test|E|Lead 19096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019097|119097|989898|1|9999019097|MR|Test|E|Lead 19097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019098|119098|989898|1|9999019098|MR|Test|E|Lead 19098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019099|119099|989898|1|9999019099|MR|Test|E|Lead 19099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019100|119100|989898|1|9999019100|MR|Test|E|Lead 19100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019101|119101|989898|1|9999019101|MR|Test|E|Lead 19101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019102|119102|989898|1|9999019102|MR|Test|E|Lead 19102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019103|119103|989898|1|9999019103|MR|Test|E|Lead 19103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019104|119104|989898|1|9999019104|MR|Test|E|Lead 19104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019105|119105|989898|1|9999019105|MR|Test|E|Lead 19105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019106|119106|989898|1|9999019106|MR|Test|E|Lead 19106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019107|119107|989898|1|9999019107|MR|Test|E|Lead 19107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019108|119108|989898|1|9999019108|MR|Test|E|Lead 19108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019109|119109|989898|1|9999019109|MR|Test|E|Lead 19109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019110|119110|989898|1|9999019110|MR|Test|E|Lead 19110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019111|119111|989898|1|9999019111|MR|Test|E|Lead 19111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019112|119112|989898|1|9999019112|MR|Test|E|Lead 19112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019113|119113|989898|1|9999019113|MR|Test|E|Lead 19113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019114|119114|989898|1|9999019114|MR|Test|E|Lead 19114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019115|119115|989898|1|9999019115|MR|Test|E|Lead 19115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019116|119116|989898|1|9999019116|MR|Test|E|Lead 19116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019117|119117|989898|1|9999019117|MR|Test|E|Lead 19117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019118|119118|989898|1|9999019118|MR|Test|E|Lead 19118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019119|119119|989898|1|9999019119|MR|Test|E|Lead 19119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019120|119120|989898|1|9999019120|MR|Test|E|Lead 19120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019121|119121|989898|1|9999019121|MR|Test|E|Lead 19121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019122|119122|989898|1|9999019122|MR|Test|E|Lead 19122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019123|119123|989898|1|9999019123|MR|Test|E|Lead 19123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019124|119124|989898|1|9999019124|MR|Test|E|Lead 19124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019125|119125|989898|1|9999019125|MR|Test|E|Lead 19125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019126|119126|989898|1|9999019126|MR|Test|E|Lead 19126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019127|119127|989898|1|9999019127|MR|Test|E|Lead 19127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019128|119128|989898|1|9999019128|MR|Test|E|Lead 19128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019129|119129|989898|1|9999019129|MR|Test|E|Lead 19129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019130|119130|989898|1|9999019130|MR|Test|E|Lead 19130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019131|119131|989898|1|9999019131|MR|Test|E|Lead 19131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019132|119132|989898|1|9999019132|MR|Test|E|Lead 19132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019133|119133|989898|1|9999019133|MR|Test|E|Lead 19133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019134|119134|989898|1|9999019134|MR|Test|E|Lead 19134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019135|119135|989898|1|9999019135|MR|Test|E|Lead 19135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019136|119136|989898|1|9999019136|MR|Test|E|Lead 19136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019137|119137|989898|1|9999019137|MR|Test|E|Lead 19137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019138|119138|989898|1|9999019138|MR|Test|E|Lead 19138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019139|119139|989898|1|9999019139|MR|Test|E|Lead 19139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019140|119140|989898|1|9999019140|MR|Test|E|Lead 19140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019141|119141|989898|1|9999019141|MR|Test|E|Lead 19141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019142|119142|989898|1|9999019142|MR|Test|E|Lead 19142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019143|119143|989898|1|9999019143|MR|Test|E|Lead 19143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019144|119144|989898|1|9999019144|MR|Test|E|Lead 19144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019145|119145|989898|1|9999019145|MR|Test|E|Lead 19145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019146|119146|989898|1|9999019146|MR|Test|E|Lead 19146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019147|119147|989898|1|9999019147|MR|Test|E|Lead 19147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019148|119148|989898|1|9999019148|MR|Test|E|Lead 19148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019149|119149|989898|1|9999019149|MR|Test|E|Lead 19149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019150|119150|989898|1|9999019150|MR|Test|E|Lead 19150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019151|119151|989898|1|9999019151|MR|Test|E|Lead 19151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019152|119152|989898|1|9999019152|MR|Test|E|Lead 19152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019153|119153|989898|1|9999019153|MR|Test|E|Lead 19153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019154|119154|989898|1|9999019154|MR|Test|E|Lead 19154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019155|119155|989898|1|9999019155|MR|Test|E|Lead 19155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019156|119156|989898|1|9999019156|MR|Test|E|Lead 19156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019157|119157|989898|1|9999019157|MR|Test|E|Lead 19157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019158|119158|989898|1|9999019158|MR|Test|E|Lead 19158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019159|119159|989898|1|9999019159|MR|Test|E|Lead 19159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019160|119160|989898|1|9999019160|MR|Test|E|Lead 19160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019161|119161|989898|1|9999019161|MR|Test|E|Lead 19161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019162|119162|989898|1|9999019162|MR|Test|E|Lead 19162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019163|119163|989898|1|9999019163|MR|Test|E|Lead 19163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019164|119164|989898|1|9999019164|MR|Test|E|Lead 19164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019165|119165|989898|1|9999019165|MR|Test|E|Lead 19165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019166|119166|989898|1|9999019166|MR|Test|E|Lead 19166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019167|119167|989898|1|9999019167|MR|Test|E|Lead 19167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019168|119168|989898|1|9999019168|MR|Test|E|Lead 19168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019169|119169|989898|1|9999019169|MR|Test|E|Lead 19169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019170|119170|989898|1|9999019170|MR|Test|E|Lead 19170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019171|119171|989898|1|9999019171|MR|Test|E|Lead 19171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019172|119172|989898|1|9999019172|MR|Test|E|Lead 19172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019173|119173|989898|1|9999019173|MR|Test|E|Lead 19173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019174|119174|989898|1|9999019174|MR|Test|E|Lead 19174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019175|119175|989898|1|9999019175|MR|Test|E|Lead 19175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019176|119176|989898|1|9999019176|MR|Test|E|Lead 19176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019177|119177|989898|1|9999019177|MR|Test|E|Lead 19177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019178|119178|989898|1|9999019178|MR|Test|E|Lead 19178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019179|119179|989898|1|9999019179|MR|Test|E|Lead 19179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019180|119180|989898|1|9999019180|MR|Test|E|Lead 19180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019181|119181|989898|1|9999019181|MR|Test|E|Lead 19181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019182|119182|989898|1|9999019182|MR|Test|E|Lead 19182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019183|119183|989898|1|9999019183|MR|Test|E|Lead 19183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019184|119184|989898|1|9999019184|MR|Test|E|Lead 19184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019185|119185|989898|1|9999019185|MR|Test|E|Lead 19185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019186|119186|989898|1|9999019186|MR|Test|E|Lead 19186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019187|119187|989898|1|9999019187|MR|Test|E|Lead 19187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019188|119188|989898|1|9999019188|MR|Test|E|Lead 19188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019189|119189|989898|1|9999019189|MR|Test|E|Lead 19189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019190|119190|989898|1|9999019190|MR|Test|E|Lead 19190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019191|119191|989898|1|9999019191|MR|Test|E|Lead 19191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019192|119192|989898|1|9999019192|MR|Test|E|Lead 19192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019193|119193|989898|1|9999019193|MR|Test|E|Lead 19193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019194|119194|989898|1|9999019194|MR|Test|E|Lead 19194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019195|119195|989898|1|9999019195|MR|Test|E|Lead 19195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019196|119196|989898|1|9999019196|MR|Test|E|Lead 19196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019197|119197|989898|1|9999019197|MR|Test|E|Lead 19197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019198|119198|989898|1|9999019198|MR|Test|E|Lead 19198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019199|119199|989898|1|9999019199|MR|Test|E|Lead 19199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019200|119200|989898|1|9999019200|MR|Test|E|Lead 19200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019201|119201|989898|1|9999019201|MR|Test|E|Lead 19201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019202|119202|989898|1|9999019202|MR|Test|E|Lead 19202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019203|119203|989898|1|9999019203|MR|Test|E|Lead 19203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019204|119204|989898|1|9999019204|MR|Test|E|Lead 19204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019205|119205|989898|1|9999019205|MR|Test|E|Lead 19205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019206|119206|989898|1|9999019206|MR|Test|E|Lead 19206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019207|119207|989898|1|9999019207|MR|Test|E|Lead 19207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019208|119208|989898|1|9999019208|MR|Test|E|Lead 19208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019209|119209|989898|1|9999019209|MR|Test|E|Lead 19209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019210|119210|989898|1|9999019210|MR|Test|E|Lead 19210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019211|119211|989898|1|9999019211|MR|Test|E|Lead 19211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019212|119212|989898|1|9999019212|MR|Test|E|Lead 19212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019213|119213|989898|1|9999019213|MR|Test|E|Lead 19213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019214|119214|989898|1|9999019214|MR|Test|E|Lead 19214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019215|119215|989898|1|9999019215|MR|Test|E|Lead 19215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019216|119216|989898|1|9999019216|MR|Test|E|Lead 19216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019217|119217|989898|1|9999019217|MR|Test|E|Lead 19217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019218|119218|989898|1|9999019218|MR|Test|E|Lead 19218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019219|119219|989898|1|9999019219|MR|Test|E|Lead 19219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019220|119220|989898|1|9999019220|MR|Test|E|Lead 19220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019221|119221|989898|1|9999019221|MR|Test|E|Lead 19221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019222|119222|989898|1|9999019222|MR|Test|E|Lead 19222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019223|119223|989898|1|9999019223|MR|Test|E|Lead 19223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019224|119224|989898|1|9999019224|MR|Test|E|Lead 19224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019225|119225|989898|1|9999019225|MR|Test|E|Lead 19225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019226|119226|989898|1|9999019226|MR|Test|E|Lead 19226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019227|119227|989898|1|9999019227|MR|Test|E|Lead 19227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019228|119228|989898|1|9999019228|MR|Test|E|Lead 19228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019229|119229|989898|1|9999019229|MR|Test|E|Lead 19229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019230|119230|989898|1|9999019230|MR|Test|E|Lead 19230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019231|119231|989898|1|9999019231|MR|Test|E|Lead 19231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019232|119232|989898|1|9999019232|MR|Test|E|Lead 19232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019233|119233|989898|1|9999019233|MR|Test|E|Lead 19233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019234|119234|989898|1|9999019234|MR|Test|E|Lead 19234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019235|119235|989898|1|9999019235|MR|Test|E|Lead 19235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019236|119236|989898|1|9999019236|MR|Test|E|Lead 19236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019237|119237|989898|1|9999019237|MR|Test|E|Lead 19237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019238|119238|989898|1|9999019238|MR|Test|E|Lead 19238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019239|119239|989898|1|9999019239|MR|Test|E|Lead 19239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019240|119240|989898|1|9999019240|MR|Test|E|Lead 19240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019241|119241|989898|1|9999019241|MR|Test|E|Lead 19241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019242|119242|989898|1|9999019242|MR|Test|E|Lead 19242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019243|119243|989898|1|9999019243|MR|Test|E|Lead 19243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019244|119244|989898|1|9999019244|MR|Test|E|Lead 19244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019245|119245|989898|1|9999019245|MR|Test|E|Lead 19245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019246|119246|989898|1|9999019246|MR|Test|E|Lead 19246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019247|119247|989898|1|9999019247|MR|Test|E|Lead 19247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019248|119248|989898|1|9999019248|MR|Test|E|Lead 19248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019249|119249|989898|1|9999019249|MR|Test|E|Lead 19249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019250|119250|989898|1|9999019250|MR|Test|E|Lead 19250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019251|119251|989898|1|9999019251|MR|Test|E|Lead 19251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019252|119252|989898|1|9999019252|MR|Test|E|Lead 19252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019253|119253|989898|1|9999019253|MR|Test|E|Lead 19253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019254|119254|989898|1|9999019254|MR|Test|E|Lead 19254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019255|119255|989898|1|9999019255|MR|Test|E|Lead 19255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019256|119256|989898|1|9999019256|MR|Test|E|Lead 19256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019257|119257|989898|1|9999019257|MR|Test|E|Lead 19257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019258|119258|989898|1|9999019258|MR|Test|E|Lead 19258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019259|119259|989898|1|9999019259|MR|Test|E|Lead 19259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019260|119260|989898|1|9999019260|MR|Test|E|Lead 19260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019261|119261|989898|1|9999019261|MR|Test|E|Lead 19261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019262|119262|989898|1|9999019262|MR|Test|E|Lead 19262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019263|119263|989898|1|9999019263|MR|Test|E|Lead 19263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019264|119264|989898|1|9999019264|MR|Test|E|Lead 19264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019265|119265|989898|1|9999019265|MR|Test|E|Lead 19265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019266|119266|989898|1|9999019266|MR|Test|E|Lead 19266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019267|119267|989898|1|9999019267|MR|Test|E|Lead 19267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019268|119268|989898|1|9999019268|MR|Test|E|Lead 19268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019269|119269|989898|1|9999019269|MR|Test|E|Lead 19269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019270|119270|989898|1|9999019270|MR|Test|E|Lead 19270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019271|119271|989898|1|9999019271|MR|Test|E|Lead 19271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019272|119272|989898|1|9999019272|MR|Test|E|Lead 19272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019273|119273|989898|1|9999019273|MR|Test|E|Lead 19273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019274|119274|989898|1|9999019274|MR|Test|E|Lead 19274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019275|119275|989898|1|9999019275|MR|Test|E|Lead 19275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019276|119276|989898|1|9999019276|MR|Test|E|Lead 19276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019277|119277|989898|1|9999019277|MR|Test|E|Lead 19277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019278|119278|989898|1|9999019278|MR|Test|E|Lead 19278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019279|119279|989898|1|9999019279|MR|Test|E|Lead 19279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019280|119280|989898|1|9999019280|MR|Test|E|Lead 19280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019281|119281|989898|1|9999019281|MR|Test|E|Lead 19281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019282|119282|989898|1|9999019282|MR|Test|E|Lead 19282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019283|119283|989898|1|9999019283|MR|Test|E|Lead 19283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019284|119284|989898|1|9999019284|MR|Test|E|Lead 19284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019285|119285|989898|1|9999019285|MR|Test|E|Lead 19285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019286|119286|989898|1|9999019286|MR|Test|E|Lead 19286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019287|119287|989898|1|9999019287|MR|Test|E|Lead 19287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019288|119288|989898|1|9999019288|MR|Test|E|Lead 19288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019289|119289|989898|1|9999019289|MR|Test|E|Lead 19289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019290|119290|989898|1|9999019290|MR|Test|E|Lead 19290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019291|119291|989898|1|9999019291|MR|Test|E|Lead 19291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019292|119292|989898|1|9999019292|MR|Test|E|Lead 19292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019293|119293|989898|1|9999019293|MR|Test|E|Lead 19293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019294|119294|989898|1|9999019294|MR|Test|E|Lead 19294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019295|119295|989898|1|9999019295|MR|Test|E|Lead 19295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019296|119296|989898|1|9999019296|MR|Test|E|Lead 19296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019297|119297|989898|1|9999019297|MR|Test|E|Lead 19297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019298|119298|989898|1|9999019298|MR|Test|E|Lead 19298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019299|119299|989898|1|9999019299|MR|Test|E|Lead 19299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019300|119300|989898|1|9999019300|MR|Test|E|Lead 19300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019301|119301|989898|1|9999019301|MR|Test|E|Lead 19301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019302|119302|989898|1|9999019302|MR|Test|E|Lead 19302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019303|119303|989898|1|9999019303|MR|Test|E|Lead 19303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019304|119304|989898|1|9999019304|MR|Test|E|Lead 19304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019305|119305|989898|1|9999019305|MR|Test|E|Lead 19305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019306|119306|989898|1|9999019306|MR|Test|E|Lead 19306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019307|119307|989898|1|9999019307|MR|Test|E|Lead 19307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019308|119308|989898|1|9999019308|MR|Test|E|Lead 19308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019309|119309|989898|1|9999019309|MR|Test|E|Lead 19309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019310|119310|989898|1|9999019310|MR|Test|E|Lead 19310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019311|119311|989898|1|9999019311|MR|Test|E|Lead 19311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019312|119312|989898|1|9999019312|MR|Test|E|Lead 19312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019313|119313|989898|1|9999019313|MR|Test|E|Lead 19313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019314|119314|989898|1|9999019314|MR|Test|E|Lead 19314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019315|119315|989898|1|9999019315|MR|Test|E|Lead 19315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019316|119316|989898|1|9999019316|MR|Test|E|Lead 19316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019317|119317|989898|1|9999019317|MR|Test|E|Lead 19317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019318|119318|989898|1|9999019318|MR|Test|E|Lead 19318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019319|119319|989898|1|9999019319|MR|Test|E|Lead 19319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019320|119320|989898|1|9999019320|MR|Test|E|Lead 19320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019321|119321|989898|1|9999019321|MR|Test|E|Lead 19321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019322|119322|989898|1|9999019322|MR|Test|E|Lead 19322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019323|119323|989898|1|9999019323|MR|Test|E|Lead 19323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019324|119324|989898|1|9999019324|MR|Test|E|Lead 19324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019325|119325|989898|1|9999019325|MR|Test|E|Lead 19325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019326|119326|989898|1|9999019326|MR|Test|E|Lead 19326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019327|119327|989898|1|9999019327|MR|Test|E|Lead 19327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019328|119328|989898|1|9999019328|MR|Test|E|Lead 19328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019329|119329|989898|1|9999019329|MR|Test|E|Lead 19329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019330|119330|989898|1|9999019330|MR|Test|E|Lead 19330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019331|119331|989898|1|9999019331|MR|Test|E|Lead 19331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019332|119332|989898|1|9999019332|MR|Test|E|Lead 19332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019333|119333|989898|1|9999019333|MR|Test|E|Lead 19333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019334|119334|989898|1|9999019334|MR|Test|E|Lead 19334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019335|119335|989898|1|9999019335|MR|Test|E|Lead 19335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019336|119336|989898|1|9999019336|MR|Test|E|Lead 19336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019337|119337|989898|1|9999019337|MR|Test|E|Lead 19337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019338|119338|989898|1|9999019338|MR|Test|E|Lead 19338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019339|119339|989898|1|9999019339|MR|Test|E|Lead 19339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019340|119340|989898|1|9999019340|MR|Test|E|Lead 19340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019341|119341|989898|1|9999019341|MR|Test|E|Lead 19341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019342|119342|989898|1|9999019342|MR|Test|E|Lead 19342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019343|119343|989898|1|9999019343|MR|Test|E|Lead 19343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019344|119344|989898|1|9999019344|MR|Test|E|Lead 19344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019345|119345|989898|1|9999019345|MR|Test|E|Lead 19345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019346|119346|989898|1|9999019346|MR|Test|E|Lead 19346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019347|119347|989898|1|9999019347|MR|Test|E|Lead 19347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019348|119348|989898|1|9999019348|MR|Test|E|Lead 19348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019349|119349|989898|1|9999019349|MR|Test|E|Lead 19349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019350|119350|989898|1|9999019350|MR|Test|E|Lead 19350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019351|119351|989898|1|9999019351|MR|Test|E|Lead 19351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019352|119352|989898|1|9999019352|MR|Test|E|Lead 19352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019353|119353|989898|1|9999019353|MR|Test|E|Lead 19353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019354|119354|989898|1|9999019354|MR|Test|E|Lead 19354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019355|119355|989898|1|9999019355|MR|Test|E|Lead 19355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019356|119356|989898|1|9999019356|MR|Test|E|Lead 19356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019357|119357|989898|1|9999019357|MR|Test|E|Lead 19357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019358|119358|989898|1|9999019358|MR|Test|E|Lead 19358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019359|119359|989898|1|9999019359|MR|Test|E|Lead 19359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019360|119360|989898|1|9999019360|MR|Test|E|Lead 19360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019361|119361|989898|1|9999019361|MR|Test|E|Lead 19361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019362|119362|989898|1|9999019362|MR|Test|E|Lead 19362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019363|119363|989898|1|9999019363|MR|Test|E|Lead 19363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019364|119364|989898|1|9999019364|MR|Test|E|Lead 19364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019365|119365|989898|1|9999019365|MR|Test|E|Lead 19365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019366|119366|989898|1|9999019366|MR|Test|E|Lead 19366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019367|119367|989898|1|9999019367|MR|Test|E|Lead 19367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019368|119368|989898|1|9999019368|MR|Test|E|Lead 19368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019369|119369|989898|1|9999019369|MR|Test|E|Lead 19369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019370|119370|989898|1|9999019370|MR|Test|E|Lead 19370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019371|119371|989898|1|9999019371|MR|Test|E|Lead 19371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019372|119372|989898|1|9999019372|MR|Test|E|Lead 19372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019373|119373|989898|1|9999019373|MR|Test|E|Lead 19373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019374|119374|989898|1|9999019374|MR|Test|E|Lead 19374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019375|119375|989898|1|9999019375|MR|Test|E|Lead 19375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019376|119376|989898|1|9999019376|MR|Test|E|Lead 19376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019377|119377|989898|1|9999019377|MR|Test|E|Lead 19377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019378|119378|989898|1|9999019378|MR|Test|E|Lead 19378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019379|119379|989898|1|9999019379|MR|Test|E|Lead 19379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019380|119380|989898|1|9999019380|MR|Test|E|Lead 19380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019381|119381|989898|1|9999019381|MR|Test|E|Lead 19381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019382|119382|989898|1|9999019382|MR|Test|E|Lead 19382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019383|119383|989898|1|9999019383|MR|Test|E|Lead 19383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019384|119384|989898|1|9999019384|MR|Test|E|Lead 19384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019385|119385|989898|1|9999019385|MR|Test|E|Lead 19385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019386|119386|989898|1|9999019386|MR|Test|E|Lead 19386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019387|119387|989898|1|9999019387|MR|Test|E|Lead 19387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019388|119388|989898|1|9999019388|MR|Test|E|Lead 19388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019389|119389|989898|1|9999019389|MR|Test|E|Lead 19389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019390|119390|989898|1|9999019390|MR|Test|E|Lead 19390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019391|119391|989898|1|9999019391|MR|Test|E|Lead 19391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019392|119392|989898|1|9999019392|MR|Test|E|Lead 19392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019393|119393|989898|1|9999019393|MR|Test|E|Lead 19393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019394|119394|989898|1|9999019394|MR|Test|E|Lead 19394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019395|119395|989898|1|9999019395|MR|Test|E|Lead 19395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019396|119396|989898|1|9999019396|MR|Test|E|Lead 19396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019397|119397|989898|1|9999019397|MR|Test|E|Lead 19397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019398|119398|989898|1|9999019398|MR|Test|E|Lead 19398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019399|119399|989898|1|9999019399|MR|Test|E|Lead 19399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019400|119400|989898|1|9999019400|MR|Test|E|Lead 19400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019401|119401|989898|1|9999019401|MR|Test|E|Lead 19401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019402|119402|989898|1|9999019402|MR|Test|E|Lead 19402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019403|119403|989898|1|9999019403|MR|Test|E|Lead 19403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019404|119404|989898|1|9999019404|MR|Test|E|Lead 19404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019405|119405|989898|1|9999019405|MR|Test|E|Lead 19405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019406|119406|989898|1|9999019406|MR|Test|E|Lead 19406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019407|119407|989898|1|9999019407|MR|Test|E|Lead 19407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019408|119408|989898|1|9999019408|MR|Test|E|Lead 19408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019409|119409|989898|1|9999019409|MR|Test|E|Lead 19409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019410|119410|989898|1|9999019410|MR|Test|E|Lead 19410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019411|119411|989898|1|9999019411|MR|Test|E|Lead 19411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019412|119412|989898|1|9999019412|MR|Test|E|Lead 19412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019413|119413|989898|1|9999019413|MR|Test|E|Lead 19413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019414|119414|989898|1|9999019414|MR|Test|E|Lead 19414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019415|119415|989898|1|9999019415|MR|Test|E|Lead 19415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019416|119416|989898|1|9999019416|MR|Test|E|Lead 19416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019417|119417|989898|1|9999019417|MR|Test|E|Lead 19417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019418|119418|989898|1|9999019418|MR|Test|E|Lead 19418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019419|119419|989898|1|9999019419|MR|Test|E|Lead 19419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019420|119420|989898|1|9999019420|MR|Test|E|Lead 19420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019421|119421|989898|1|9999019421|MR|Test|E|Lead 19421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019422|119422|989898|1|9999019422|MR|Test|E|Lead 19422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019423|119423|989898|1|9999019423|MR|Test|E|Lead 19423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019424|119424|989898|1|9999019424|MR|Test|E|Lead 19424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019425|119425|989898|1|9999019425|MR|Test|E|Lead 19425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019426|119426|989898|1|9999019426|MR|Test|E|Lead 19426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019427|119427|989898|1|9999019427|MR|Test|E|Lead 19427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019428|119428|989898|1|9999019428|MR|Test|E|Lead 19428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019429|119429|989898|1|9999019429|MR|Test|E|Lead 19429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019430|119430|989898|1|9999019430|MR|Test|E|Lead 19430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019431|119431|989898|1|9999019431|MR|Test|E|Lead 19431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019432|119432|989898|1|9999019432|MR|Test|E|Lead 19432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019433|119433|989898|1|9999019433|MR|Test|E|Lead 19433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019434|119434|989898|1|9999019434|MR|Test|E|Lead 19434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019435|119435|989898|1|9999019435|MR|Test|E|Lead 19435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019436|119436|989898|1|9999019436|MR|Test|E|Lead 19436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019437|119437|989898|1|9999019437|MR|Test|E|Lead 19437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019438|119438|989898|1|9999019438|MR|Test|E|Lead 19438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019439|119439|989898|1|9999019439|MR|Test|E|Lead 19439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019440|119440|989898|1|9999019440|MR|Test|E|Lead 19440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019441|119441|989898|1|9999019441|MR|Test|E|Lead 19441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019442|119442|989898|1|9999019442|MR|Test|E|Lead 19442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019443|119443|989898|1|9999019443|MR|Test|E|Lead 19443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019444|119444|989898|1|9999019444|MR|Test|E|Lead 19444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019445|119445|989898|1|9999019445|MR|Test|E|Lead 19445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019446|119446|989898|1|9999019446|MR|Test|E|Lead 19446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019447|119447|989898|1|9999019447|MR|Test|E|Lead 19447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019448|119448|989898|1|9999019448|MR|Test|E|Lead 19448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019449|119449|989898|1|9999019449|MR|Test|E|Lead 19449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019450|119450|989898|1|9999019450|MR|Test|E|Lead 19450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019451|119451|989898|1|9999019451|MR|Test|E|Lead 19451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019452|119452|989898|1|9999019452|MR|Test|E|Lead 19452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019453|119453|989898|1|9999019453|MR|Test|E|Lead 19453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019454|119454|989898|1|9999019454|MR|Test|E|Lead 19454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019455|119455|989898|1|9999019455|MR|Test|E|Lead 19455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019456|119456|989898|1|9999019456|MR|Test|E|Lead 19456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019457|119457|989898|1|9999019457|MR|Test|E|Lead 19457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019458|119458|989898|1|9999019458|MR|Test|E|Lead 19458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019459|119459|989898|1|9999019459|MR|Test|E|Lead 19459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019460|119460|989898|1|9999019460|MR|Test|E|Lead 19460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019461|119461|989898|1|9999019461|MR|Test|E|Lead 19461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019462|119462|989898|1|9999019462|MR|Test|E|Lead 19462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019463|119463|989898|1|9999019463|MR|Test|E|Lead 19463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019464|119464|989898|1|9999019464|MR|Test|E|Lead 19464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019465|119465|989898|1|9999019465|MR|Test|E|Lead 19465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019466|119466|989898|1|9999019466|MR|Test|E|Lead 19466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019467|119467|989898|1|9999019467|MR|Test|E|Lead 19467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019468|119468|989898|1|9999019468|MR|Test|E|Lead 19468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019469|119469|989898|1|9999019469|MR|Test|E|Lead 19469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019470|119470|989898|1|9999019470|MR|Test|E|Lead 19470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019471|119471|989898|1|9999019471|MR|Test|E|Lead 19471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019472|119472|989898|1|9999019472|MR|Test|E|Lead 19472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019473|119473|989898|1|9999019473|MR|Test|E|Lead 19473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019474|119474|989898|1|9999019474|MR|Test|E|Lead 19474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019475|119475|989898|1|9999019475|MR|Test|E|Lead 19475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019476|119476|989898|1|9999019476|MR|Test|E|Lead 19476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019477|119477|989898|1|9999019477|MR|Test|E|Lead 19477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019478|119478|989898|1|9999019478|MR|Test|E|Lead 19478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019479|119479|989898|1|9999019479|MR|Test|E|Lead 19479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019480|119480|989898|1|9999019480|MR|Test|E|Lead 19480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019481|119481|989898|1|9999019481|MR|Test|E|Lead 19481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019482|119482|989898|1|9999019482|MR|Test|E|Lead 19482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019483|119483|989898|1|9999019483|MR|Test|E|Lead 19483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019484|119484|989898|1|9999019484|MR|Test|E|Lead 19484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019485|119485|989898|1|9999019485|MR|Test|E|Lead 19485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019486|119486|989898|1|9999019486|MR|Test|E|Lead 19486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019487|119487|989898|1|9999019487|MR|Test|E|Lead 19487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019488|119488|989898|1|9999019488|MR|Test|E|Lead 19488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019489|119489|989898|1|9999019489|MR|Test|E|Lead 19489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019490|119490|989898|1|9999019490|MR|Test|E|Lead 19490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019491|119491|989898|1|9999019491|MR|Test|E|Lead 19491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019492|119492|989898|1|9999019492|MR|Test|E|Lead 19492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019493|119493|989898|1|9999019493|MR|Test|E|Lead 19493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019494|119494|989898|1|9999019494|MR|Test|E|Lead 19494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019495|119495|989898|1|9999019495|MR|Test|E|Lead 19495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019496|119496|989898|1|9999019496|MR|Test|E|Lead 19496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019497|119497|989898|1|9999019497|MR|Test|E|Lead 19497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019498|119498|989898|1|9999019498|MR|Test|E|Lead 19498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019499|119499|989898|1|9999019499|MR|Test|E|Lead 19499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019500|119500|989898|1|9999019500|MR|Test|E|Lead 19500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019501|119501|989898|1|9999019501|MR|Test|E|Lead 19501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019502|119502|989898|1|9999019502|MR|Test|E|Lead 19502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019503|119503|989898|1|9999019503|MR|Test|E|Lead 19503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019504|119504|989898|1|9999019504|MR|Test|E|Lead 19504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019505|119505|989898|1|9999019505|MR|Test|E|Lead 19505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019506|119506|989898|1|9999019506|MR|Test|E|Lead 19506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019507|119507|989898|1|9999019507|MR|Test|E|Lead 19507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019508|119508|989898|1|9999019508|MR|Test|E|Lead 19508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019509|119509|989898|1|9999019509|MR|Test|E|Lead 19509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019510|119510|989898|1|9999019510|MR|Test|E|Lead 19510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019511|119511|989898|1|9999019511|MR|Test|E|Lead 19511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019512|119512|989898|1|9999019512|MR|Test|E|Lead 19512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019513|119513|989898|1|9999019513|MR|Test|E|Lead 19513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019514|119514|989898|1|9999019514|MR|Test|E|Lead 19514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019515|119515|989898|1|9999019515|MR|Test|E|Lead 19515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019516|119516|989898|1|9999019516|MR|Test|E|Lead 19516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019517|119517|989898|1|9999019517|MR|Test|E|Lead 19517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019518|119518|989898|1|9999019518|MR|Test|E|Lead 19518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019519|119519|989898|1|9999019519|MR|Test|E|Lead 19519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019520|119520|989898|1|9999019520|MR|Test|E|Lead 19520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019521|119521|989898|1|9999019521|MR|Test|E|Lead 19521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019522|119522|989898|1|9999019522|MR|Test|E|Lead 19522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019523|119523|989898|1|9999019523|MR|Test|E|Lead 19523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019524|119524|989898|1|9999019524|MR|Test|E|Lead 19524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019525|119525|989898|1|9999019525|MR|Test|E|Lead 19525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019526|119526|989898|1|9999019526|MR|Test|E|Lead 19526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019527|119527|989898|1|9999019527|MR|Test|E|Lead 19527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019528|119528|989898|1|9999019528|MR|Test|E|Lead 19528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019529|119529|989898|1|9999019529|MR|Test|E|Lead 19529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019530|119530|989898|1|9999019530|MR|Test|E|Lead 19530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019531|119531|989898|1|9999019531|MR|Test|E|Lead 19531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019532|119532|989898|1|9999019532|MR|Test|E|Lead 19532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019533|119533|989898|1|9999019533|MR|Test|E|Lead 19533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019534|119534|989898|1|9999019534|MR|Test|E|Lead 19534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019535|119535|989898|1|9999019535|MR|Test|E|Lead 19535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019536|119536|989898|1|9999019536|MR|Test|E|Lead 19536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019537|119537|989898|1|9999019537|MR|Test|E|Lead 19537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019538|119538|989898|1|9999019538|MR|Test|E|Lead 19538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019539|119539|989898|1|9999019539|MR|Test|E|Lead 19539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019540|119540|989898|1|9999019540|MR|Test|E|Lead 19540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019541|119541|989898|1|9999019541|MR|Test|E|Lead 19541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019542|119542|989898|1|9999019542|MR|Test|E|Lead 19542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019543|119543|989898|1|9999019543|MR|Test|E|Lead 19543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019544|119544|989898|1|9999019544|MR|Test|E|Lead 19544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019545|119545|989898|1|9999019545|MR|Test|E|Lead 19545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019546|119546|989898|1|9999019546|MR|Test|E|Lead 19546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019547|119547|989898|1|9999019547|MR|Test|E|Lead 19547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019548|119548|989898|1|9999019548|MR|Test|E|Lead 19548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019549|119549|989898|1|9999019549|MR|Test|E|Lead 19549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019550|119550|989898|1|9999019550|MR|Test|E|Lead 19550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019551|119551|989898|1|9999019551|MR|Test|E|Lead 19551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019552|119552|989898|1|9999019552|MR|Test|E|Lead 19552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019553|119553|989898|1|9999019553|MR|Test|E|Lead 19553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019554|119554|989898|1|9999019554|MR|Test|E|Lead 19554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019555|119555|989898|1|9999019555|MR|Test|E|Lead 19555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019556|119556|989898|1|9999019556|MR|Test|E|Lead 19556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019557|119557|989898|1|9999019557|MR|Test|E|Lead 19557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019558|119558|989898|1|9999019558|MR|Test|E|Lead 19558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019559|119559|989898|1|9999019559|MR|Test|E|Lead 19559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019560|119560|989898|1|9999019560|MR|Test|E|Lead 19560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019561|119561|989898|1|9999019561|MR|Test|E|Lead 19561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019562|119562|989898|1|9999019562|MR|Test|E|Lead 19562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019563|119563|989898|1|9999019563|MR|Test|E|Lead 19563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019564|119564|989898|1|9999019564|MR|Test|E|Lead 19564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019565|119565|989898|1|9999019565|MR|Test|E|Lead 19565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019566|119566|989898|1|9999019566|MR|Test|E|Lead 19566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019567|119567|989898|1|9999019567|MR|Test|E|Lead 19567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019568|119568|989898|1|9999019568|MR|Test|E|Lead 19568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019569|119569|989898|1|9999019569|MR|Test|E|Lead 19569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019570|119570|989898|1|9999019570|MR|Test|E|Lead 19570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019571|119571|989898|1|9999019571|MR|Test|E|Lead 19571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019572|119572|989898|1|9999019572|MR|Test|E|Lead 19572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019573|119573|989898|1|9999019573|MR|Test|E|Lead 19573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019574|119574|989898|1|9999019574|MR|Test|E|Lead 19574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019575|119575|989898|1|9999019575|MR|Test|E|Lead 19575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019576|119576|989898|1|9999019576|MR|Test|E|Lead 19576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019577|119577|989898|1|9999019577|MR|Test|E|Lead 19577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019578|119578|989898|1|9999019578|MR|Test|E|Lead 19578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019579|119579|989898|1|9999019579|MR|Test|E|Lead 19579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019580|119580|989898|1|9999019580|MR|Test|E|Lead 19580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019581|119581|989898|1|9999019581|MR|Test|E|Lead 19581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019582|119582|989898|1|9999019582|MR|Test|E|Lead 19582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019583|119583|989898|1|9999019583|MR|Test|E|Lead 19583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019584|119584|989898|1|9999019584|MR|Test|E|Lead 19584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019585|119585|989898|1|9999019585|MR|Test|E|Lead 19585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019586|119586|989898|1|9999019586|MR|Test|E|Lead 19586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019587|119587|989898|1|9999019587|MR|Test|E|Lead 19587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019588|119588|989898|1|9999019588|MR|Test|E|Lead 19588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019589|119589|989898|1|9999019589|MR|Test|E|Lead 19589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019590|119590|989898|1|9999019590|MR|Test|E|Lead 19590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019591|119591|989898|1|9999019591|MR|Test|E|Lead 19591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019592|119592|989898|1|9999019592|MR|Test|E|Lead 19592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019593|119593|989898|1|9999019593|MR|Test|E|Lead 19593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019594|119594|989898|1|9999019594|MR|Test|E|Lead 19594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019595|119595|989898|1|9999019595|MR|Test|E|Lead 19595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019596|119596|989898|1|9999019596|MR|Test|E|Lead 19596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019597|119597|989898|1|9999019597|MR|Test|E|Lead 19597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019598|119598|989898|1|9999019598|MR|Test|E|Lead 19598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019599|119599|989898|1|9999019599|MR|Test|E|Lead 19599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019600|119600|989898|1|9999019600|MR|Test|E|Lead 19600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019601|119601|989898|1|9999019601|MR|Test|E|Lead 19601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019602|119602|989898|1|9999019602|MR|Test|E|Lead 19602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019603|119603|989898|1|9999019603|MR|Test|E|Lead 19603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019604|119604|989898|1|9999019604|MR|Test|E|Lead 19604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019605|119605|989898|1|9999019605|MR|Test|E|Lead 19605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019606|119606|989898|1|9999019606|MR|Test|E|Lead 19606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019607|119607|989898|1|9999019607|MR|Test|E|Lead 19607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019608|119608|989898|1|9999019608|MR|Test|E|Lead 19608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019609|119609|989898|1|9999019609|MR|Test|E|Lead 19609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019610|119610|989898|1|9999019610|MR|Test|E|Lead 19610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019611|119611|989898|1|9999019611|MR|Test|E|Lead 19611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019612|119612|989898|1|9999019612|MR|Test|E|Lead 19612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019613|119613|989898|1|9999019613|MR|Test|E|Lead 19613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019614|119614|989898|1|9999019614|MR|Test|E|Lead 19614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019615|119615|989898|1|9999019615|MR|Test|E|Lead 19615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019616|119616|989898|1|9999019616|MR|Test|E|Lead 19616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019617|119617|989898|1|9999019617|MR|Test|E|Lead 19617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019618|119618|989898|1|9999019618|MR|Test|E|Lead 19618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019619|119619|989898|1|9999019619|MR|Test|E|Lead 19619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019620|119620|989898|1|9999019620|MR|Test|E|Lead 19620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019621|119621|989898|1|9999019621|MR|Test|E|Lead 19621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019622|119622|989898|1|9999019622|MR|Test|E|Lead 19622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019623|119623|989898|1|9999019623|MR|Test|E|Lead 19623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019624|119624|989898|1|9999019624|MR|Test|E|Lead 19624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019625|119625|989898|1|9999019625|MR|Test|E|Lead 19625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019626|119626|989898|1|9999019626|MR|Test|E|Lead 19626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019627|119627|989898|1|9999019627|MR|Test|E|Lead 19627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019628|119628|989898|1|9999019628|MR|Test|E|Lead 19628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019629|119629|989898|1|9999019629|MR|Test|E|Lead 19629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019630|119630|989898|1|9999019630|MR|Test|E|Lead 19630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019631|119631|989898|1|9999019631|MR|Test|E|Lead 19631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019632|119632|989898|1|9999019632|MR|Test|E|Lead 19632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019633|119633|989898|1|9999019633|MR|Test|E|Lead 19633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019634|119634|989898|1|9999019634|MR|Test|E|Lead 19634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019635|119635|989898|1|9999019635|MR|Test|E|Lead 19635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019636|119636|989898|1|9999019636|MR|Test|E|Lead 19636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019637|119637|989898|1|9999019637|MR|Test|E|Lead 19637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019638|119638|989898|1|9999019638|MR|Test|E|Lead 19638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019639|119639|989898|1|9999019639|MR|Test|E|Lead 19639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019640|119640|989898|1|9999019640|MR|Test|E|Lead 19640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019641|119641|989898|1|9999019641|MR|Test|E|Lead 19641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019642|119642|989898|1|9999019642|MR|Test|E|Lead 19642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019643|119643|989898|1|9999019643|MR|Test|E|Lead 19643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019644|119644|989898|1|9999019644|MR|Test|E|Lead 19644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019645|119645|989898|1|9999019645|MR|Test|E|Lead 19645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019646|119646|989898|1|9999019646|MR|Test|E|Lead 19646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019647|119647|989898|1|9999019647|MR|Test|E|Lead 19647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019648|119648|989898|1|9999019648|MR|Test|E|Lead 19648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019649|119649|989898|1|9999019649|MR|Test|E|Lead 19649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019650|119650|989898|1|9999019650|MR|Test|E|Lead 19650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019651|119651|989898|1|9999019651|MR|Test|E|Lead 19651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019652|119652|989898|1|9999019652|MR|Test|E|Lead 19652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019653|119653|989898|1|9999019653|MR|Test|E|Lead 19653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019654|119654|989898|1|9999019654|MR|Test|E|Lead 19654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019655|119655|989898|1|9999019655|MR|Test|E|Lead 19655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019656|119656|989898|1|9999019656|MR|Test|E|Lead 19656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019657|119657|989898|1|9999019657|MR|Test|E|Lead 19657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019658|119658|989898|1|9999019658|MR|Test|E|Lead 19658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019659|119659|989898|1|9999019659|MR|Test|E|Lead 19659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019660|119660|989898|1|9999019660|MR|Test|E|Lead 19660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019661|119661|989898|1|9999019661|MR|Test|E|Lead 19661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019662|119662|989898|1|9999019662|MR|Test|E|Lead 19662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019663|119663|989898|1|9999019663|MR|Test|E|Lead 19663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019664|119664|989898|1|9999019664|MR|Test|E|Lead 19664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019665|119665|989898|1|9999019665|MR|Test|E|Lead 19665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019666|119666|989898|1|9999019666|MR|Test|E|Lead 19666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019667|119667|989898|1|9999019667|MR|Test|E|Lead 19667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019668|119668|989898|1|9999019668|MR|Test|E|Lead 19668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019669|119669|989898|1|9999019669|MR|Test|E|Lead 19669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019670|119670|989898|1|9999019670|MR|Test|E|Lead 19670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019671|119671|989898|1|9999019671|MR|Test|E|Lead 19671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019672|119672|989898|1|9999019672|MR|Test|E|Lead 19672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019673|119673|989898|1|9999019673|MR|Test|E|Lead 19673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019674|119674|989898|1|9999019674|MR|Test|E|Lead 19674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019675|119675|989898|1|9999019675|MR|Test|E|Lead 19675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019676|119676|989898|1|9999019676|MR|Test|E|Lead 19676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019677|119677|989898|1|9999019677|MR|Test|E|Lead 19677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019678|119678|989898|1|9999019678|MR|Test|E|Lead 19678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019679|119679|989898|1|9999019679|MR|Test|E|Lead 19679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019680|119680|989898|1|9999019680|MR|Test|E|Lead 19680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019681|119681|989898|1|9999019681|MR|Test|E|Lead 19681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019682|119682|989898|1|9999019682|MR|Test|E|Lead 19682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019683|119683|989898|1|9999019683|MR|Test|E|Lead 19683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019684|119684|989898|1|9999019684|MR|Test|E|Lead 19684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019685|119685|989898|1|9999019685|MR|Test|E|Lead 19685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019686|119686|989898|1|9999019686|MR|Test|E|Lead 19686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019687|119687|989898|1|9999019687|MR|Test|E|Lead 19687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019688|119688|989898|1|9999019688|MR|Test|E|Lead 19688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019689|119689|989898|1|9999019689|MR|Test|E|Lead 19689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019690|119690|989898|1|9999019690|MR|Test|E|Lead 19690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019691|119691|989898|1|9999019691|MR|Test|E|Lead 19691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019692|119692|989898|1|9999019692|MR|Test|E|Lead 19692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019693|119693|989898|1|9999019693|MR|Test|E|Lead 19693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019694|119694|989898|1|9999019694|MR|Test|E|Lead 19694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019695|119695|989898|1|9999019695|MR|Test|E|Lead 19695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019696|119696|989898|1|9999019696|MR|Test|E|Lead 19696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019697|119697|989898|1|9999019697|MR|Test|E|Lead 19697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019698|119698|989898|1|9999019698|MR|Test|E|Lead 19698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019699|119699|989898|1|9999019699|MR|Test|E|Lead 19699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019700|119700|989898|1|9999019700|MR|Test|E|Lead 19700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019701|119701|989898|1|9999019701|MR|Test|E|Lead 19701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019702|119702|989898|1|9999019702|MR|Test|E|Lead 19702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019703|119703|989898|1|9999019703|MR|Test|E|Lead 19703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019704|119704|989898|1|9999019704|MR|Test|E|Lead 19704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019705|119705|989898|1|9999019705|MR|Test|E|Lead 19705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019706|119706|989898|1|9999019706|MR|Test|E|Lead 19706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019707|119707|989898|1|9999019707|MR|Test|E|Lead 19707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019708|119708|989898|1|9999019708|MR|Test|E|Lead 19708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019709|119709|989898|1|9999019709|MR|Test|E|Lead 19709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019710|119710|989898|1|9999019710|MR|Test|E|Lead 19710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019711|119711|989898|1|9999019711|MR|Test|E|Lead 19711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019712|119712|989898|1|9999019712|MR|Test|E|Lead 19712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019713|119713|989898|1|9999019713|MR|Test|E|Lead 19713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019714|119714|989898|1|9999019714|MR|Test|E|Lead 19714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019715|119715|989898|1|9999019715|MR|Test|E|Lead 19715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019716|119716|989898|1|9999019716|MR|Test|E|Lead 19716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019717|119717|989898|1|9999019717|MR|Test|E|Lead 19717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019718|119718|989898|1|9999019718|MR|Test|E|Lead 19718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019719|119719|989898|1|9999019719|MR|Test|E|Lead 19719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019720|119720|989898|1|9999019720|MR|Test|E|Lead 19720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019721|119721|989898|1|9999019721|MR|Test|E|Lead 19721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019722|119722|989898|1|9999019722|MR|Test|E|Lead 19722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019723|119723|989898|1|9999019723|MR|Test|E|Lead 19723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019724|119724|989898|1|9999019724|MR|Test|E|Lead 19724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019725|119725|989898|1|9999019725|MR|Test|E|Lead 19725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019726|119726|989898|1|9999019726|MR|Test|E|Lead 19726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019727|119727|989898|1|9999019727|MR|Test|E|Lead 19727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019728|119728|989898|1|9999019728|MR|Test|E|Lead 19728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019729|119729|989898|1|9999019729|MR|Test|E|Lead 19729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019730|119730|989898|1|9999019730|MR|Test|E|Lead 19730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019731|119731|989898|1|9999019731|MR|Test|E|Lead 19731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019732|119732|989898|1|9999019732|MR|Test|E|Lead 19732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019733|119733|989898|1|9999019733|MR|Test|E|Lead 19733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019734|119734|989898|1|9999019734|MR|Test|E|Lead 19734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019735|119735|989898|1|9999019735|MR|Test|E|Lead 19735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019736|119736|989898|1|9999019736|MR|Test|E|Lead 19736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019737|119737|989898|1|9999019737|MR|Test|E|Lead 19737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019738|119738|989898|1|9999019738|MR|Test|E|Lead 19738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019739|119739|989898|1|9999019739|MR|Test|E|Lead 19739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019740|119740|989898|1|9999019740|MR|Test|E|Lead 19740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019741|119741|989898|1|9999019741|MR|Test|E|Lead 19741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019742|119742|989898|1|9999019742|MR|Test|E|Lead 19742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019743|119743|989898|1|9999019743|MR|Test|E|Lead 19743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019744|119744|989898|1|9999019744|MR|Test|E|Lead 19744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019745|119745|989898|1|9999019745|MR|Test|E|Lead 19745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019746|119746|989898|1|9999019746|MR|Test|E|Lead 19746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019747|119747|989898|1|9999019747|MR|Test|E|Lead 19747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019748|119748|989898|1|9999019748|MR|Test|E|Lead 19748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019749|119749|989898|1|9999019749|MR|Test|E|Lead 19749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019750|119750|989898|1|9999019750|MR|Test|E|Lead 19750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019751|119751|989898|1|9999019751|MR|Test|E|Lead 19751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019752|119752|989898|1|9999019752|MR|Test|E|Lead 19752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019753|119753|989898|1|9999019753|MR|Test|E|Lead 19753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019754|119754|989898|1|9999019754|MR|Test|E|Lead 19754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019755|119755|989898|1|9999019755|MR|Test|E|Lead 19755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019756|119756|989898|1|9999019756|MR|Test|E|Lead 19756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019757|119757|989898|1|9999019757|MR|Test|E|Lead 19757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019758|119758|989898|1|9999019758|MR|Test|E|Lead 19758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019759|119759|989898|1|9999019759|MR|Test|E|Lead 19759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019760|119760|989898|1|9999019760|MR|Test|E|Lead 19760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019761|119761|989898|1|9999019761|MR|Test|E|Lead 19761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019762|119762|989898|1|9999019762|MR|Test|E|Lead 19762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019763|119763|989898|1|9999019763|MR|Test|E|Lead 19763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019764|119764|989898|1|9999019764|MR|Test|E|Lead 19764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019765|119765|989898|1|9999019765|MR|Test|E|Lead 19765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019766|119766|989898|1|9999019766|MR|Test|E|Lead 19766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019767|119767|989898|1|9999019767|MR|Test|E|Lead 19767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019768|119768|989898|1|9999019768|MR|Test|E|Lead 19768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019769|119769|989898|1|9999019769|MR|Test|E|Lead 19769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019770|119770|989898|1|9999019770|MR|Test|E|Lead 19770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019771|119771|989898|1|9999019771|MR|Test|E|Lead 19771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019772|119772|989898|1|9999019772|MR|Test|E|Lead 19772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019773|119773|989898|1|9999019773|MR|Test|E|Lead 19773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019774|119774|989898|1|9999019774|MR|Test|E|Lead 19774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019775|119775|989898|1|9999019775|MR|Test|E|Lead 19775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019776|119776|989898|1|9999019776|MR|Test|E|Lead 19776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019777|119777|989898|1|9999019777|MR|Test|E|Lead 19777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019778|119778|989898|1|9999019778|MR|Test|E|Lead 19778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019779|119779|989898|1|9999019779|MR|Test|E|Lead 19779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019780|119780|989898|1|9999019780|MR|Test|E|Lead 19780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019781|119781|989898|1|9999019781|MR|Test|E|Lead 19781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019782|119782|989898|1|9999019782|MR|Test|E|Lead 19782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019783|119783|989898|1|9999019783|MR|Test|E|Lead 19783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019784|119784|989898|1|9999019784|MR|Test|E|Lead 19784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019785|119785|989898|1|9999019785|MR|Test|E|Lead 19785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019786|119786|989898|1|9999019786|MR|Test|E|Lead 19786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019787|119787|989898|1|9999019787|MR|Test|E|Lead 19787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019788|119788|989898|1|9999019788|MR|Test|E|Lead 19788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019789|119789|989898|1|9999019789|MR|Test|E|Lead 19789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019790|119790|989898|1|9999019790|MR|Test|E|Lead 19790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019791|119791|989898|1|9999019791|MR|Test|E|Lead 19791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019792|119792|989898|1|9999019792|MR|Test|E|Lead 19792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019793|119793|989898|1|9999019793|MR|Test|E|Lead 19793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019794|119794|989898|1|9999019794|MR|Test|E|Lead 19794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019795|119795|989898|1|9999019795|MR|Test|E|Lead 19795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019796|119796|989898|1|9999019796|MR|Test|E|Lead 19796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019797|119797|989898|1|9999019797|MR|Test|E|Lead 19797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019798|119798|989898|1|9999019798|MR|Test|E|Lead 19798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019799|119799|989898|1|9999019799|MR|Test|E|Lead 19799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019800|119800|989898|1|9999019800|MR|Test|E|Lead 19800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019801|119801|989898|1|9999019801|MR|Test|E|Lead 19801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019802|119802|989898|1|9999019802|MR|Test|E|Lead 19802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019803|119803|989898|1|9999019803|MR|Test|E|Lead 19803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019804|119804|989898|1|9999019804|MR|Test|E|Lead 19804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019805|119805|989898|1|9999019805|MR|Test|E|Lead 19805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019806|119806|989898|1|9999019806|MR|Test|E|Lead 19806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019807|119807|989898|1|9999019807|MR|Test|E|Lead 19807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019808|119808|989898|1|9999019808|MR|Test|E|Lead 19808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019809|119809|989898|1|9999019809|MR|Test|E|Lead 19809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019810|119810|989898|1|9999019810|MR|Test|E|Lead 19810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019811|119811|989898|1|9999019811|MR|Test|E|Lead 19811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019812|119812|989898|1|9999019812|MR|Test|E|Lead 19812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019813|119813|989898|1|9999019813|MR|Test|E|Lead 19813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019814|119814|989898|1|9999019814|MR|Test|E|Lead 19814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019815|119815|989898|1|9999019815|MR|Test|E|Lead 19815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019816|119816|989898|1|9999019816|MR|Test|E|Lead 19816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019817|119817|989898|1|9999019817|MR|Test|E|Lead 19817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019818|119818|989898|1|9999019818|MR|Test|E|Lead 19818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019819|119819|989898|1|9999019819|MR|Test|E|Lead 19819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019820|119820|989898|1|9999019820|MR|Test|E|Lead 19820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019821|119821|989898|1|9999019821|MR|Test|E|Lead 19821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019822|119822|989898|1|9999019822|MR|Test|E|Lead 19822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019823|119823|989898|1|9999019823|MR|Test|E|Lead 19823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019824|119824|989898|1|9999019824|MR|Test|E|Lead 19824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019825|119825|989898|1|9999019825|MR|Test|E|Lead 19825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019826|119826|989898|1|9999019826|MR|Test|E|Lead 19826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019827|119827|989898|1|9999019827|MR|Test|E|Lead 19827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019828|119828|989898|1|9999019828|MR|Test|E|Lead 19828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019829|119829|989898|1|9999019829|MR|Test|E|Lead 19829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019830|119830|989898|1|9999019830|MR|Test|E|Lead 19830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019831|119831|989898|1|9999019831|MR|Test|E|Lead 19831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019832|119832|989898|1|9999019832|MR|Test|E|Lead 19832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019833|119833|989898|1|9999019833|MR|Test|E|Lead 19833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019834|119834|989898|1|9999019834|MR|Test|E|Lead 19834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019835|119835|989898|1|9999019835|MR|Test|E|Lead 19835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019836|119836|989898|1|9999019836|MR|Test|E|Lead 19836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019837|119837|989898|1|9999019837|MR|Test|E|Lead 19837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019838|119838|989898|1|9999019838|MR|Test|E|Lead 19838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019839|119839|989898|1|9999019839|MR|Test|E|Lead 19839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019840|119840|989898|1|9999019840|MR|Test|E|Lead 19840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019841|119841|989898|1|9999019841|MR|Test|E|Lead 19841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019842|119842|989898|1|9999019842|MR|Test|E|Lead 19842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019843|119843|989898|1|9999019843|MR|Test|E|Lead 19843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019844|119844|989898|1|9999019844|MR|Test|E|Lead 19844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019845|119845|989898|1|9999019845|MR|Test|E|Lead 19845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019846|119846|989898|1|9999019846|MR|Test|E|Lead 19846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019847|119847|989898|1|9999019847|MR|Test|E|Lead 19847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019848|119848|989898|1|9999019848|MR|Test|E|Lead 19848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019849|119849|989898|1|9999019849|MR|Test|E|Lead 19849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019850|119850|989898|1|9999019850|MR|Test|E|Lead 19850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019851|119851|989898|1|9999019851|MR|Test|E|Lead 19851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019852|119852|989898|1|9999019852|MR|Test|E|Lead 19852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019853|119853|989898|1|9999019853|MR|Test|E|Lead 19853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019854|119854|989898|1|9999019854|MR|Test|E|Lead 19854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019855|119855|989898|1|9999019855|MR|Test|E|Lead 19855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019856|119856|989898|1|9999019856|MR|Test|E|Lead 19856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019857|119857|989898|1|9999019857|MR|Test|E|Lead 19857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019858|119858|989898|1|9999019858|MR|Test|E|Lead 19858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019859|119859|989898|1|9999019859|MR|Test|E|Lead 19859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019860|119860|989898|1|9999019860|MR|Test|E|Lead 19860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019861|119861|989898|1|9999019861|MR|Test|E|Lead 19861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019862|119862|989898|1|9999019862|MR|Test|E|Lead 19862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019863|119863|989898|1|9999019863|MR|Test|E|Lead 19863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019864|119864|989898|1|9999019864|MR|Test|E|Lead 19864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019865|119865|989898|1|9999019865|MR|Test|E|Lead 19865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019866|119866|989898|1|9999019866|MR|Test|E|Lead 19866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019867|119867|989898|1|9999019867|MR|Test|E|Lead 19867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019868|119868|989898|1|9999019868|MR|Test|E|Lead 19868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019869|119869|989898|1|9999019869|MR|Test|E|Lead 19869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019870|119870|989898|1|9999019870|MR|Test|E|Lead 19870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019871|119871|989898|1|9999019871|MR|Test|E|Lead 19871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019872|119872|989898|1|9999019872|MR|Test|E|Lead 19872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019873|119873|989898|1|9999019873|MR|Test|E|Lead 19873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019874|119874|989898|1|9999019874|MR|Test|E|Lead 19874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019875|119875|989898|1|9999019875|MR|Test|E|Lead 19875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019876|119876|989898|1|9999019876|MR|Test|E|Lead 19876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019877|119877|989898|1|9999019877|MR|Test|E|Lead 19877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019878|119878|989898|1|9999019878|MR|Test|E|Lead 19878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019879|119879|989898|1|9999019879|MR|Test|E|Lead 19879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019880|119880|989898|1|9999019880|MR|Test|E|Lead 19880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019881|119881|989898|1|9999019881|MR|Test|E|Lead 19881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019882|119882|989898|1|9999019882|MR|Test|E|Lead 19882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019883|119883|989898|1|9999019883|MR|Test|E|Lead 19883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019884|119884|989898|1|9999019884|MR|Test|E|Lead 19884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019885|119885|989898|1|9999019885|MR|Test|E|Lead 19885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019886|119886|989898|1|9999019886|MR|Test|E|Lead 19886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019887|119887|989898|1|9999019887|MR|Test|E|Lead 19887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019888|119888|989898|1|9999019888|MR|Test|E|Lead 19888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019889|119889|989898|1|9999019889|MR|Test|E|Lead 19889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019890|119890|989898|1|9999019890|MR|Test|E|Lead 19890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019891|119891|989898|1|9999019891|MR|Test|E|Lead 19891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019892|119892|989898|1|9999019892|MR|Test|E|Lead 19892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019893|119893|989898|1|9999019893|MR|Test|E|Lead 19893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019894|119894|989898|1|9999019894|MR|Test|E|Lead 19894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019895|119895|989898|1|9999019895|MR|Test|E|Lead 19895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019896|119896|989898|1|9999019896|MR|Test|E|Lead 19896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019897|119897|989898|1|9999019897|MR|Test|E|Lead 19897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019898|119898|989898|1|9999019898|MR|Test|E|Lead 19898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019899|119899|989898|1|9999019899|MR|Test|E|Lead 19899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019900|119900|989898|1|9999019900|MR|Test|E|Lead 19900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019901|119901|989898|1|9999019901|MR|Test|E|Lead 19901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019902|119902|989898|1|9999019902|MR|Test|E|Lead 19902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019903|119903|989898|1|9999019903|MR|Test|E|Lead 19903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019904|119904|989898|1|9999019904|MR|Test|E|Lead 19904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019905|119905|989898|1|9999019905|MR|Test|E|Lead 19905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019906|119906|989898|1|9999019906|MR|Test|E|Lead 19906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019907|119907|989898|1|9999019907|MR|Test|E|Lead 19907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019908|119908|989898|1|9999019908|MR|Test|E|Lead 19908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019909|119909|989898|1|9999019909|MR|Test|E|Lead 19909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019910|119910|989898|1|9999019910|MR|Test|E|Lead 19910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019911|119911|989898|1|9999019911|MR|Test|E|Lead 19911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019912|119912|989898|1|9999019912|MR|Test|E|Lead 19912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019913|119913|989898|1|9999019913|MR|Test|E|Lead 19913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019914|119914|989898|1|9999019914|MR|Test|E|Lead 19914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019915|119915|989898|1|9999019915|MR|Test|E|Lead 19915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019916|119916|989898|1|9999019916|MR|Test|E|Lead 19916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019917|119917|989898|1|9999019917|MR|Test|E|Lead 19917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019918|119918|989898|1|9999019918|MR|Test|E|Lead 19918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019919|119919|989898|1|9999019919|MR|Test|E|Lead 19919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019920|119920|989898|1|9999019920|MR|Test|E|Lead 19920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019921|119921|989898|1|9999019921|MR|Test|E|Lead 19921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019922|119922|989898|1|9999019922|MR|Test|E|Lead 19922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019923|119923|989898|1|9999019923|MR|Test|E|Lead 19923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019924|119924|989898|1|9999019924|MR|Test|E|Lead 19924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019925|119925|989898|1|9999019925|MR|Test|E|Lead 19925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019926|119926|989898|1|9999019926|MR|Test|E|Lead 19926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019927|119927|989898|1|9999019927|MR|Test|E|Lead 19927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019928|119928|989898|1|9999019928|MR|Test|E|Lead 19928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019929|119929|989898|1|9999019929|MR|Test|E|Lead 19929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019930|119930|989898|1|9999019930|MR|Test|E|Lead 19930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019931|119931|989898|1|9999019931|MR|Test|E|Lead 19931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019932|119932|989898|1|9999019932|MR|Test|E|Lead 19932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019933|119933|989898|1|9999019933|MR|Test|E|Lead 19933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019934|119934|989898|1|9999019934|MR|Test|E|Lead 19934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019935|119935|989898|1|9999019935|MR|Test|E|Lead 19935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019936|119936|989898|1|9999019936|MR|Test|E|Lead 19936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019937|119937|989898|1|9999019937|MR|Test|E|Lead 19937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019938|119938|989898|1|9999019938|MR|Test|E|Lead 19938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019939|119939|989898|1|9999019939|MR|Test|E|Lead 19939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019940|119940|989898|1|9999019940|MR|Test|E|Lead 19940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019941|119941|989898|1|9999019941|MR|Test|E|Lead 19941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019942|119942|989898|1|9999019942|MR|Test|E|Lead 19942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019943|119943|989898|1|9999019943|MR|Test|E|Lead 19943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019944|119944|989898|1|9999019944|MR|Test|E|Lead 19944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019945|119945|989898|1|9999019945|MR|Test|E|Lead 19945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019946|119946|989898|1|9999019946|MR|Test|E|Lead 19946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019947|119947|989898|1|9999019947|MR|Test|E|Lead 19947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019948|119948|989898|1|9999019948|MR|Test|E|Lead 19948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019949|119949|989898|1|9999019949|MR|Test|E|Lead 19949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019950|119950|989898|1|9999019950|MR|Test|E|Lead 19950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019951|119951|989898|1|9999019951|MR|Test|E|Lead 19951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019952|119952|989898|1|9999019952|MR|Test|E|Lead 19952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019953|119953|989898|1|9999019953|MR|Test|E|Lead 19953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019954|119954|989898|1|9999019954|MR|Test|E|Lead 19954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019955|119955|989898|1|9999019955|MR|Test|E|Lead 19955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019956|119956|989898|1|9999019956|MR|Test|E|Lead 19956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019957|119957|989898|1|9999019957|MR|Test|E|Lead 19957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019958|119958|989898|1|9999019958|MR|Test|E|Lead 19958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019959|119959|989898|1|9999019959|MR|Test|E|Lead 19959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019960|119960|989898|1|9999019960|MR|Test|E|Lead 19960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019961|119961|989898|1|9999019961|MR|Test|E|Lead 19961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019962|119962|989898|1|9999019962|MR|Test|E|Lead 19962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019963|119963|989898|1|9999019963|MR|Test|E|Lead 19963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019964|119964|989898|1|9999019964|MR|Test|E|Lead 19964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019965|119965|989898|1|9999019965|MR|Test|E|Lead 19965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019966|119966|989898|1|9999019966|MR|Test|E|Lead 19966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019967|119967|989898|1|9999019967|MR|Test|E|Lead 19967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019968|119968|989898|1|9999019968|MR|Test|E|Lead 19968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019969|119969|989898|1|9999019969|MR|Test|E|Lead 19969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019970|119970|989898|1|9999019970|MR|Test|E|Lead 19970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019971|119971|989898|1|9999019971|MR|Test|E|Lead 19971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019972|119972|989898|1|9999019972|MR|Test|E|Lead 19972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019973|119973|989898|1|9999019973|MR|Test|E|Lead 19973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019974|119974|989898|1|9999019974|MR|Test|E|Lead 19974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019975|119975|989898|1|9999019975|MR|Test|E|Lead 19975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019976|119976|989898|1|9999019976|MR|Test|E|Lead 19976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019977|119977|989898|1|9999019977|MR|Test|E|Lead 19977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019978|119978|989898|1|9999019978|MR|Test|E|Lead 19978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019979|119979|989898|1|9999019979|MR|Test|E|Lead 19979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019980|119980|989898|1|9999019980|MR|Test|E|Lead 19980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019981|119981|989898|1|9999019981|MR|Test|E|Lead 19981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019982|119982|989898|1|9999019982|MR|Test|E|Lead 19982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019983|119983|989898|1|9999019983|MR|Test|E|Lead 19983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019984|119984|989898|1|9999019984|MR|Test|E|Lead 19984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019985|119985|989898|1|9999019985|MR|Test|E|Lead 19985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019986|119986|989898|1|9999019986|MR|Test|E|Lead 19986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019987|119987|989898|1|9999019987|MR|Test|E|Lead 19987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019988|119988|989898|1|9999019988|MR|Test|E|Lead 19988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019989|119989|989898|1|9999019989|MR|Test|E|Lead 19989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019990|119990|989898|1|9999019990|MR|Test|E|Lead 19990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019991|119991|989898|1|9999019991|MR|Test|E|Lead 19991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019992|119992|989898|1|9999019992|MR|Test|E|Lead 19992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019993|119993|989898|1|9999019993|MR|Test|E|Lead 19993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019994|119994|989898|1|9999019994|MR|Test|E|Lead 19994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019995|119995|989898|1|9999019995|MR|Test|E|Lead 19995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019996|119996|989898|1|9999019996|MR|Test|E|Lead 19996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019997|119997|989898|1|9999019997|MR|Test|E|Lead 19997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019998|119998|989898|1|9999019998|MR|Test|E|Lead 19998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1019999|119999|989898|1|9999019999|MR|Test|E|Lead 19999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020000|120000|989898|1|9999020000|MR|Test|E|Lead 20000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020001|120001|989898|1|9999020001|MR|Test|E|Lead 20001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020002|120002|989898|1|9999020002|MR|Test|E|Lead 20002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020003|120003|989898|1|9999020003|MR|Test|E|Lead 20003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020004|120004|989898|1|9999020004|MR|Test|E|Lead 20004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020005|120005|989898|1|9999020005|MR|Test|E|Lead 20005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020006|120006|989898|1|9999020006|MR|Test|E|Lead 20006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020007|120007|989898|1|9999020007|MR|Test|E|Lead 20007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020008|120008|989898|1|9999020008|MR|Test|E|Lead 20008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020009|120009|989898|1|9999020009|MR|Test|E|Lead 20009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020010|120010|989898|1|9999020010|MR|Test|E|Lead 20010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020011|120011|989898|1|9999020011|MR|Test|E|Lead 20011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020012|120012|989898|1|9999020012|MR|Test|E|Lead 20012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020013|120013|989898|1|9999020013|MR|Test|E|Lead 20013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020014|120014|989898|1|9999020014|MR|Test|E|Lead 20014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020015|120015|989898|1|9999020015|MR|Test|E|Lead 20015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020016|120016|989898|1|9999020016|MR|Test|E|Lead 20016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020017|120017|989898|1|9999020017|MR|Test|E|Lead 20017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020018|120018|989898|1|9999020018|MR|Test|E|Lead 20018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020019|120019|989898|1|9999020019|MR|Test|E|Lead 20019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020020|120020|989898|1|9999020020|MR|Test|E|Lead 20020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020021|120021|989898|1|9999020021|MR|Test|E|Lead 20021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020022|120022|989898|1|9999020022|MR|Test|E|Lead 20022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020023|120023|989898|1|9999020023|MR|Test|E|Lead 20023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020024|120024|989898|1|9999020024|MR|Test|E|Lead 20024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020025|120025|989898|1|9999020025|MR|Test|E|Lead 20025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020026|120026|989898|1|9999020026|MR|Test|E|Lead 20026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020027|120027|989898|1|9999020027|MR|Test|E|Lead 20027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020028|120028|989898|1|9999020028|MR|Test|E|Lead 20028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020029|120029|989898|1|9999020029|MR|Test|E|Lead 20029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020030|120030|989898|1|9999020030|MR|Test|E|Lead 20030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020031|120031|989898|1|9999020031|MR|Test|E|Lead 20031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020032|120032|989898|1|9999020032|MR|Test|E|Lead 20032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020033|120033|989898|1|9999020033|MR|Test|E|Lead 20033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020034|120034|989898|1|9999020034|MR|Test|E|Lead 20034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020035|120035|989898|1|9999020035|MR|Test|E|Lead 20035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020036|120036|989898|1|9999020036|MR|Test|E|Lead 20036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020037|120037|989898|1|9999020037|MR|Test|E|Lead 20037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020038|120038|989898|1|9999020038|MR|Test|E|Lead 20038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020039|120039|989898|1|9999020039|MR|Test|E|Lead 20039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020040|120040|989898|1|9999020040|MR|Test|E|Lead 20040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020041|120041|989898|1|9999020041|MR|Test|E|Lead 20041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020042|120042|989898|1|9999020042|MR|Test|E|Lead 20042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020043|120043|989898|1|9999020043|MR|Test|E|Lead 20043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020044|120044|989898|1|9999020044|MR|Test|E|Lead 20044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020045|120045|989898|1|9999020045|MR|Test|E|Lead 20045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020046|120046|989898|1|9999020046|MR|Test|E|Lead 20046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020047|120047|989898|1|9999020047|MR|Test|E|Lead 20047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020048|120048|989898|1|9999020048|MR|Test|E|Lead 20048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020049|120049|989898|1|9999020049|MR|Test|E|Lead 20049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020050|120050|989898|1|9999020050|MR|Test|E|Lead 20050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020051|120051|989898|1|9999020051|MR|Test|E|Lead 20051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020052|120052|989898|1|9999020052|MR|Test|E|Lead 20052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020053|120053|989898|1|9999020053|MR|Test|E|Lead 20053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020054|120054|989898|1|9999020054|MR|Test|E|Lead 20054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020055|120055|989898|1|9999020055|MR|Test|E|Lead 20055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020056|120056|989898|1|9999020056|MR|Test|E|Lead 20056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020057|120057|989898|1|9999020057|MR|Test|E|Lead 20057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020058|120058|989898|1|9999020058|MR|Test|E|Lead 20058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020059|120059|989898|1|9999020059|MR|Test|E|Lead 20059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020060|120060|989898|1|9999020060|MR|Test|E|Lead 20060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020061|120061|989898|1|9999020061|MR|Test|E|Lead 20061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020062|120062|989898|1|9999020062|MR|Test|E|Lead 20062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020063|120063|989898|1|9999020063|MR|Test|E|Lead 20063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020064|120064|989898|1|9999020064|MR|Test|E|Lead 20064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020065|120065|989898|1|9999020065|MR|Test|E|Lead 20065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020066|120066|989898|1|9999020066|MR|Test|E|Lead 20066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020067|120067|989898|1|9999020067|MR|Test|E|Lead 20067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020068|120068|989898|1|9999020068|MR|Test|E|Lead 20068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020069|120069|989898|1|9999020069|MR|Test|E|Lead 20069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020070|120070|989898|1|9999020070|MR|Test|E|Lead 20070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020071|120071|989898|1|9999020071|MR|Test|E|Lead 20071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020072|120072|989898|1|9999020072|MR|Test|E|Lead 20072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020073|120073|989898|1|9999020073|MR|Test|E|Lead 20073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020074|120074|989898|1|9999020074|MR|Test|E|Lead 20074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020075|120075|989898|1|9999020075|MR|Test|E|Lead 20075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020076|120076|989898|1|9999020076|MR|Test|E|Lead 20076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020077|120077|989898|1|9999020077|MR|Test|E|Lead 20077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020078|120078|989898|1|9999020078|MR|Test|E|Lead 20078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020079|120079|989898|1|9999020079|MR|Test|E|Lead 20079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020080|120080|989898|1|9999020080|MR|Test|E|Lead 20080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020081|120081|989898|1|9999020081|MR|Test|E|Lead 20081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020082|120082|989898|1|9999020082|MR|Test|E|Lead 20082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020083|120083|989898|1|9999020083|MR|Test|E|Lead 20083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020084|120084|989898|1|9999020084|MR|Test|E|Lead 20084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020085|120085|989898|1|9999020085|MR|Test|E|Lead 20085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020086|120086|989898|1|9999020086|MR|Test|E|Lead 20086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020087|120087|989898|1|9999020087|MR|Test|E|Lead 20087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020088|120088|989898|1|9999020088|MR|Test|E|Lead 20088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020089|120089|989898|1|9999020089|MR|Test|E|Lead 20089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020090|120090|989898|1|9999020090|MR|Test|E|Lead 20090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020091|120091|989898|1|9999020091|MR|Test|E|Lead 20091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020092|120092|989898|1|9999020092|MR|Test|E|Lead 20092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020093|120093|989898|1|9999020093|MR|Test|E|Lead 20093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020094|120094|989898|1|9999020094|MR|Test|E|Lead 20094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020095|120095|989898|1|9999020095|MR|Test|E|Lead 20095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020096|120096|989898|1|9999020096|MR|Test|E|Lead 20096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020097|120097|989898|1|9999020097|MR|Test|E|Lead 20097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020098|120098|989898|1|9999020098|MR|Test|E|Lead 20098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020099|120099|989898|1|9999020099|MR|Test|E|Lead 20099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020100|120100|989898|1|9999020100|MR|Test|E|Lead 20100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020101|120101|989898|1|9999020101|MR|Test|E|Lead 20101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020102|120102|989898|1|9999020102|MR|Test|E|Lead 20102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020103|120103|989898|1|9999020103|MR|Test|E|Lead 20103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020104|120104|989898|1|9999020104|MR|Test|E|Lead 20104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020105|120105|989898|1|9999020105|MR|Test|E|Lead 20105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020106|120106|989898|1|9999020106|MR|Test|E|Lead 20106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020107|120107|989898|1|9999020107|MR|Test|E|Lead 20107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020108|120108|989898|1|9999020108|MR|Test|E|Lead 20108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020109|120109|989898|1|9999020109|MR|Test|E|Lead 20109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020110|120110|989898|1|9999020110|MR|Test|E|Lead 20110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020111|120111|989898|1|9999020111|MR|Test|E|Lead 20111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020112|120112|989898|1|9999020112|MR|Test|E|Lead 20112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020113|120113|989898|1|9999020113|MR|Test|E|Lead 20113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020114|120114|989898|1|9999020114|MR|Test|E|Lead 20114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020115|120115|989898|1|9999020115|MR|Test|E|Lead 20115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020116|120116|989898|1|9999020116|MR|Test|E|Lead 20116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020117|120117|989898|1|9999020117|MR|Test|E|Lead 20117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020118|120118|989898|1|9999020118|MR|Test|E|Lead 20118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020119|120119|989898|1|9999020119|MR|Test|E|Lead 20119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020120|120120|989898|1|9999020120|MR|Test|E|Lead 20120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020121|120121|989898|1|9999020121|MR|Test|E|Lead 20121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020122|120122|989898|1|9999020122|MR|Test|E|Lead 20122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020123|120123|989898|1|9999020123|MR|Test|E|Lead 20123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020124|120124|989898|1|9999020124|MR|Test|E|Lead 20124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020125|120125|989898|1|9999020125|MR|Test|E|Lead 20125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020126|120126|989898|1|9999020126|MR|Test|E|Lead 20126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020127|120127|989898|1|9999020127|MR|Test|E|Lead 20127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020128|120128|989898|1|9999020128|MR|Test|E|Lead 20128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020129|120129|989898|1|9999020129|MR|Test|E|Lead 20129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020130|120130|989898|1|9999020130|MR|Test|E|Lead 20130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020131|120131|989898|1|9999020131|MR|Test|E|Lead 20131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020132|120132|989898|1|9999020132|MR|Test|E|Lead 20132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020133|120133|989898|1|9999020133|MR|Test|E|Lead 20133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020134|120134|989898|1|9999020134|MR|Test|E|Lead 20134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020135|120135|989898|1|9999020135|MR|Test|E|Lead 20135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020136|120136|989898|1|9999020136|MR|Test|E|Lead 20136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020137|120137|989898|1|9999020137|MR|Test|E|Lead 20137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020138|120138|989898|1|9999020138|MR|Test|E|Lead 20138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020139|120139|989898|1|9999020139|MR|Test|E|Lead 20139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020140|120140|989898|1|9999020140|MR|Test|E|Lead 20140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020141|120141|989898|1|9999020141|MR|Test|E|Lead 20141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020142|120142|989898|1|9999020142|MR|Test|E|Lead 20142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020143|120143|989898|1|9999020143|MR|Test|E|Lead 20143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020144|120144|989898|1|9999020144|MR|Test|E|Lead 20144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020145|120145|989898|1|9999020145|MR|Test|E|Lead 20145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020146|120146|989898|1|9999020146|MR|Test|E|Lead 20146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020147|120147|989898|1|9999020147|MR|Test|E|Lead 20147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020148|120148|989898|1|9999020148|MR|Test|E|Lead 20148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020149|120149|989898|1|9999020149|MR|Test|E|Lead 20149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020150|120150|989898|1|9999020150|MR|Test|E|Lead 20150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020151|120151|989898|1|9999020151|MR|Test|E|Lead 20151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020152|120152|989898|1|9999020152|MR|Test|E|Lead 20152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020153|120153|989898|1|9999020153|MR|Test|E|Lead 20153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020154|120154|989898|1|9999020154|MR|Test|E|Lead 20154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020155|120155|989898|1|9999020155|MR|Test|E|Lead 20155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020156|120156|989898|1|9999020156|MR|Test|E|Lead 20156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020157|120157|989898|1|9999020157|MR|Test|E|Lead 20157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020158|120158|989898|1|9999020158|MR|Test|E|Lead 20158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020159|120159|989898|1|9999020159|MR|Test|E|Lead 20159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020160|120160|989898|1|9999020160|MR|Test|E|Lead 20160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020161|120161|989898|1|9999020161|MR|Test|E|Lead 20161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020162|120162|989898|1|9999020162|MR|Test|E|Lead 20162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020163|120163|989898|1|9999020163|MR|Test|E|Lead 20163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020164|120164|989898|1|9999020164|MR|Test|E|Lead 20164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020165|120165|989898|1|9999020165|MR|Test|E|Lead 20165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020166|120166|989898|1|9999020166|MR|Test|E|Lead 20166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020167|120167|989898|1|9999020167|MR|Test|E|Lead 20167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020168|120168|989898|1|9999020168|MR|Test|E|Lead 20168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020169|120169|989898|1|9999020169|MR|Test|E|Lead 20169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020170|120170|989898|1|9999020170|MR|Test|E|Lead 20170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020171|120171|989898|1|9999020171|MR|Test|E|Lead 20171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020172|120172|989898|1|9999020172|MR|Test|E|Lead 20172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020173|120173|989898|1|9999020173|MR|Test|E|Lead 20173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020174|120174|989898|1|9999020174|MR|Test|E|Lead 20174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020175|120175|989898|1|9999020175|MR|Test|E|Lead 20175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020176|120176|989898|1|9999020176|MR|Test|E|Lead 20176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020177|120177|989898|1|9999020177|MR|Test|E|Lead 20177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020178|120178|989898|1|9999020178|MR|Test|E|Lead 20178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020179|120179|989898|1|9999020179|MR|Test|E|Lead 20179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020180|120180|989898|1|9999020180|MR|Test|E|Lead 20180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020181|120181|989898|1|9999020181|MR|Test|E|Lead 20181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020182|120182|989898|1|9999020182|MR|Test|E|Lead 20182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020183|120183|989898|1|9999020183|MR|Test|E|Lead 20183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020184|120184|989898|1|9999020184|MR|Test|E|Lead 20184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020185|120185|989898|1|9999020185|MR|Test|E|Lead 20185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020186|120186|989898|1|9999020186|MR|Test|E|Lead 20186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020187|120187|989898|1|9999020187|MR|Test|E|Lead 20187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020188|120188|989898|1|9999020188|MR|Test|E|Lead 20188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020189|120189|989898|1|9999020189|MR|Test|E|Lead 20189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020190|120190|989898|1|9999020190|MR|Test|E|Lead 20190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020191|120191|989898|1|9999020191|MR|Test|E|Lead 20191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020192|120192|989898|1|9999020192|MR|Test|E|Lead 20192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020193|120193|989898|1|9999020193|MR|Test|E|Lead 20193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020194|120194|989898|1|9999020194|MR|Test|E|Lead 20194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020195|120195|989898|1|9999020195|MR|Test|E|Lead 20195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020196|120196|989898|1|9999020196|MR|Test|E|Lead 20196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020197|120197|989898|1|9999020197|MR|Test|E|Lead 20197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020198|120198|989898|1|9999020198|MR|Test|E|Lead 20198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020199|120199|989898|1|9999020199|MR|Test|E|Lead 20199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020200|120200|989898|1|9999020200|MR|Test|E|Lead 20200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020201|120201|989898|1|9999020201|MR|Test|E|Lead 20201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020202|120202|989898|1|9999020202|MR|Test|E|Lead 20202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020203|120203|989898|1|9999020203|MR|Test|E|Lead 20203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020204|120204|989898|1|9999020204|MR|Test|E|Lead 20204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020205|120205|989898|1|9999020205|MR|Test|E|Lead 20205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020206|120206|989898|1|9999020206|MR|Test|E|Lead 20206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020207|120207|989898|1|9999020207|MR|Test|E|Lead 20207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020208|120208|989898|1|9999020208|MR|Test|E|Lead 20208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020209|120209|989898|1|9999020209|MR|Test|E|Lead 20209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020210|120210|989898|1|9999020210|MR|Test|E|Lead 20210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020211|120211|989898|1|9999020211|MR|Test|E|Lead 20211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020212|120212|989898|1|9999020212|MR|Test|E|Lead 20212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020213|120213|989898|1|9999020213|MR|Test|E|Lead 20213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020214|120214|989898|1|9999020214|MR|Test|E|Lead 20214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020215|120215|989898|1|9999020215|MR|Test|E|Lead 20215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020216|120216|989898|1|9999020216|MR|Test|E|Lead 20216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020217|120217|989898|1|9999020217|MR|Test|E|Lead 20217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020218|120218|989898|1|9999020218|MR|Test|E|Lead 20218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020219|120219|989898|1|9999020219|MR|Test|E|Lead 20219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020220|120220|989898|1|9999020220|MR|Test|E|Lead 20220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020221|120221|989898|1|9999020221|MR|Test|E|Lead 20221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020222|120222|989898|1|9999020222|MR|Test|E|Lead 20222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020223|120223|989898|1|9999020223|MR|Test|E|Lead 20223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020224|120224|989898|1|9999020224|MR|Test|E|Lead 20224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020225|120225|989898|1|9999020225|MR|Test|E|Lead 20225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020226|120226|989898|1|9999020226|MR|Test|E|Lead 20226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020227|120227|989898|1|9999020227|MR|Test|E|Lead 20227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020228|120228|989898|1|9999020228|MR|Test|E|Lead 20228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020229|120229|989898|1|9999020229|MR|Test|E|Lead 20229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020230|120230|989898|1|9999020230|MR|Test|E|Lead 20230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020231|120231|989898|1|9999020231|MR|Test|E|Lead 20231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020232|120232|989898|1|9999020232|MR|Test|E|Lead 20232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020233|120233|989898|1|9999020233|MR|Test|E|Lead 20233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020234|120234|989898|1|9999020234|MR|Test|E|Lead 20234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020235|120235|989898|1|9999020235|MR|Test|E|Lead 20235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020236|120236|989898|1|9999020236|MR|Test|E|Lead 20236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020237|120237|989898|1|9999020237|MR|Test|E|Lead 20237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020238|120238|989898|1|9999020238|MR|Test|E|Lead 20238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020239|120239|989898|1|9999020239|MR|Test|E|Lead 20239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020240|120240|989898|1|9999020240|MR|Test|E|Lead 20240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020241|120241|989898|1|9999020241|MR|Test|E|Lead 20241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020242|120242|989898|1|9999020242|MR|Test|E|Lead 20242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020243|120243|989898|1|9999020243|MR|Test|E|Lead 20243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020244|120244|989898|1|9999020244|MR|Test|E|Lead 20244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020245|120245|989898|1|9999020245|MR|Test|E|Lead 20245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020246|120246|989898|1|9999020246|MR|Test|E|Lead 20246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020247|120247|989898|1|9999020247|MR|Test|E|Lead 20247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020248|120248|989898|1|9999020248|MR|Test|E|Lead 20248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020249|120249|989898|1|9999020249|MR|Test|E|Lead 20249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020250|120250|989898|1|9999020250|MR|Test|E|Lead 20250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020251|120251|989898|1|9999020251|MR|Test|E|Lead 20251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020252|120252|989898|1|9999020252|MR|Test|E|Lead 20252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020253|120253|989898|1|9999020253|MR|Test|E|Lead 20253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020254|120254|989898|1|9999020254|MR|Test|E|Lead 20254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020255|120255|989898|1|9999020255|MR|Test|E|Lead 20255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020256|120256|989898|1|9999020256|MR|Test|E|Lead 20256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020257|120257|989898|1|9999020257|MR|Test|E|Lead 20257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020258|120258|989898|1|9999020258|MR|Test|E|Lead 20258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020259|120259|989898|1|9999020259|MR|Test|E|Lead 20259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020260|120260|989898|1|9999020260|MR|Test|E|Lead 20260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020261|120261|989898|1|9999020261|MR|Test|E|Lead 20261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020262|120262|989898|1|9999020262|MR|Test|E|Lead 20262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020263|120263|989898|1|9999020263|MR|Test|E|Lead 20263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020264|120264|989898|1|9999020264|MR|Test|E|Lead 20264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020265|120265|989898|1|9999020265|MR|Test|E|Lead 20265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020266|120266|989898|1|9999020266|MR|Test|E|Lead 20266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020267|120267|989898|1|9999020267|MR|Test|E|Lead 20267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020268|120268|989898|1|9999020268|MR|Test|E|Lead 20268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020269|120269|989898|1|9999020269|MR|Test|E|Lead 20269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020270|120270|989898|1|9999020270|MR|Test|E|Lead 20270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020271|120271|989898|1|9999020271|MR|Test|E|Lead 20271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020272|120272|989898|1|9999020272|MR|Test|E|Lead 20272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020273|120273|989898|1|9999020273|MR|Test|E|Lead 20273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020274|120274|989898|1|9999020274|MR|Test|E|Lead 20274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020275|120275|989898|1|9999020275|MR|Test|E|Lead 20275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020276|120276|989898|1|9999020276|MR|Test|E|Lead 20276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020277|120277|989898|1|9999020277|MR|Test|E|Lead 20277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020278|120278|989898|1|9999020278|MR|Test|E|Lead 20278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020279|120279|989898|1|9999020279|MR|Test|E|Lead 20279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020280|120280|989898|1|9999020280|MR|Test|E|Lead 20280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020281|120281|989898|1|9999020281|MR|Test|E|Lead 20281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020282|120282|989898|1|9999020282|MR|Test|E|Lead 20282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020283|120283|989898|1|9999020283|MR|Test|E|Lead 20283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020284|120284|989898|1|9999020284|MR|Test|E|Lead 20284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020285|120285|989898|1|9999020285|MR|Test|E|Lead 20285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020286|120286|989898|1|9999020286|MR|Test|E|Lead 20286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020287|120287|989898|1|9999020287|MR|Test|E|Lead 20287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020288|120288|989898|1|9999020288|MR|Test|E|Lead 20288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020289|120289|989898|1|9999020289|MR|Test|E|Lead 20289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020290|120290|989898|1|9999020290|MR|Test|E|Lead 20290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020291|120291|989898|1|9999020291|MR|Test|E|Lead 20291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020292|120292|989898|1|9999020292|MR|Test|E|Lead 20292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020293|120293|989898|1|9999020293|MR|Test|E|Lead 20293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020294|120294|989898|1|9999020294|MR|Test|E|Lead 20294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020295|120295|989898|1|9999020295|MR|Test|E|Lead 20295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020296|120296|989898|1|9999020296|MR|Test|E|Lead 20296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020297|120297|989898|1|9999020297|MR|Test|E|Lead 20297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020298|120298|989898|1|9999020298|MR|Test|E|Lead 20298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020299|120299|989898|1|9999020299|MR|Test|E|Lead 20299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020300|120300|989898|1|9999020300|MR|Test|E|Lead 20300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020301|120301|989898|1|9999020301|MR|Test|E|Lead 20301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020302|120302|989898|1|9999020302|MR|Test|E|Lead 20302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020303|120303|989898|1|9999020303|MR|Test|E|Lead 20303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020304|120304|989898|1|9999020304|MR|Test|E|Lead 20304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020305|120305|989898|1|9999020305|MR|Test|E|Lead 20305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020306|120306|989898|1|9999020306|MR|Test|E|Lead 20306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020307|120307|989898|1|9999020307|MR|Test|E|Lead 20307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020308|120308|989898|1|9999020308|MR|Test|E|Lead 20308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020309|120309|989898|1|9999020309|MR|Test|E|Lead 20309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020310|120310|989898|1|9999020310|MR|Test|E|Lead 20310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020311|120311|989898|1|9999020311|MR|Test|E|Lead 20311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020312|120312|989898|1|9999020312|MR|Test|E|Lead 20312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020313|120313|989898|1|9999020313|MR|Test|E|Lead 20313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020314|120314|989898|1|9999020314|MR|Test|E|Lead 20314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020315|120315|989898|1|9999020315|MR|Test|E|Lead 20315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020316|120316|989898|1|9999020316|MR|Test|E|Lead 20316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020317|120317|989898|1|9999020317|MR|Test|E|Lead 20317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020318|120318|989898|1|9999020318|MR|Test|E|Lead 20318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020319|120319|989898|1|9999020319|MR|Test|E|Lead 20319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020320|120320|989898|1|9999020320|MR|Test|E|Lead 20320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020321|120321|989898|1|9999020321|MR|Test|E|Lead 20321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020322|120322|989898|1|9999020322|MR|Test|E|Lead 20322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020323|120323|989898|1|9999020323|MR|Test|E|Lead 20323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020324|120324|989898|1|9999020324|MR|Test|E|Lead 20324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020325|120325|989898|1|9999020325|MR|Test|E|Lead 20325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020326|120326|989898|1|9999020326|MR|Test|E|Lead 20326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020327|120327|989898|1|9999020327|MR|Test|E|Lead 20327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020328|120328|989898|1|9999020328|MR|Test|E|Lead 20328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020329|120329|989898|1|9999020329|MR|Test|E|Lead 20329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020330|120330|989898|1|9999020330|MR|Test|E|Lead 20330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020331|120331|989898|1|9999020331|MR|Test|E|Lead 20331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020332|120332|989898|1|9999020332|MR|Test|E|Lead 20332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020333|120333|989898|1|9999020333|MR|Test|E|Lead 20333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020334|120334|989898|1|9999020334|MR|Test|E|Lead 20334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020335|120335|989898|1|9999020335|MR|Test|E|Lead 20335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020336|120336|989898|1|9999020336|MR|Test|E|Lead 20336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020337|120337|989898|1|9999020337|MR|Test|E|Lead 20337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020338|120338|989898|1|9999020338|MR|Test|E|Lead 20338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020339|120339|989898|1|9999020339|MR|Test|E|Lead 20339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020340|120340|989898|1|9999020340|MR|Test|E|Lead 20340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020341|120341|989898|1|9999020341|MR|Test|E|Lead 20341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020342|120342|989898|1|9999020342|MR|Test|E|Lead 20342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020343|120343|989898|1|9999020343|MR|Test|E|Lead 20343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020344|120344|989898|1|9999020344|MR|Test|E|Lead 20344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020345|120345|989898|1|9999020345|MR|Test|E|Lead 20345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020346|120346|989898|1|9999020346|MR|Test|E|Lead 20346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020347|120347|989898|1|9999020347|MR|Test|E|Lead 20347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020348|120348|989898|1|9999020348|MR|Test|E|Lead 20348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020349|120349|989898|1|9999020349|MR|Test|E|Lead 20349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020350|120350|989898|1|9999020350|MR|Test|E|Lead 20350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020351|120351|989898|1|9999020351|MR|Test|E|Lead 20351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020352|120352|989898|1|9999020352|MR|Test|E|Lead 20352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020353|120353|989898|1|9999020353|MR|Test|E|Lead 20353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020354|120354|989898|1|9999020354|MR|Test|E|Lead 20354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020355|120355|989898|1|9999020355|MR|Test|E|Lead 20355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020356|120356|989898|1|9999020356|MR|Test|E|Lead 20356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020357|120357|989898|1|9999020357|MR|Test|E|Lead 20357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020358|120358|989898|1|9999020358|MR|Test|E|Lead 20358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020359|120359|989898|1|9999020359|MR|Test|E|Lead 20359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020360|120360|989898|1|9999020360|MR|Test|E|Lead 20360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020361|120361|989898|1|9999020361|MR|Test|E|Lead 20361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020362|120362|989898|1|9999020362|MR|Test|E|Lead 20362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020363|120363|989898|1|9999020363|MR|Test|E|Lead 20363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020364|120364|989898|1|9999020364|MR|Test|E|Lead 20364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020365|120365|989898|1|9999020365|MR|Test|E|Lead 20365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020366|120366|989898|1|9999020366|MR|Test|E|Lead 20366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020367|120367|989898|1|9999020367|MR|Test|E|Lead 20367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020368|120368|989898|1|9999020368|MR|Test|E|Lead 20368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020369|120369|989898|1|9999020369|MR|Test|E|Lead 20369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020370|120370|989898|1|9999020370|MR|Test|E|Lead 20370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020371|120371|989898|1|9999020371|MR|Test|E|Lead 20371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020372|120372|989898|1|9999020372|MR|Test|E|Lead 20372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020373|120373|989898|1|9999020373|MR|Test|E|Lead 20373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020374|120374|989898|1|9999020374|MR|Test|E|Lead 20374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020375|120375|989898|1|9999020375|MR|Test|E|Lead 20375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020376|120376|989898|1|9999020376|MR|Test|E|Lead 20376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020377|120377|989898|1|9999020377|MR|Test|E|Lead 20377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020378|120378|989898|1|9999020378|MR|Test|E|Lead 20378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020379|120379|989898|1|9999020379|MR|Test|E|Lead 20379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020380|120380|989898|1|9999020380|MR|Test|E|Lead 20380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020381|120381|989898|1|9999020381|MR|Test|E|Lead 20381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020382|120382|989898|1|9999020382|MR|Test|E|Lead 20382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020383|120383|989898|1|9999020383|MR|Test|E|Lead 20383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020384|120384|989898|1|9999020384|MR|Test|E|Lead 20384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020385|120385|989898|1|9999020385|MR|Test|E|Lead 20385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020386|120386|989898|1|9999020386|MR|Test|E|Lead 20386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020387|120387|989898|1|9999020387|MR|Test|E|Lead 20387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020388|120388|989898|1|9999020388|MR|Test|E|Lead 20388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020389|120389|989898|1|9999020389|MR|Test|E|Lead 20389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020390|120390|989898|1|9999020390|MR|Test|E|Lead 20390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020391|120391|989898|1|9999020391|MR|Test|E|Lead 20391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020392|120392|989898|1|9999020392|MR|Test|E|Lead 20392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020393|120393|989898|1|9999020393|MR|Test|E|Lead 20393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020394|120394|989898|1|9999020394|MR|Test|E|Lead 20394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020395|120395|989898|1|9999020395|MR|Test|E|Lead 20395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020396|120396|989898|1|9999020396|MR|Test|E|Lead 20396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020397|120397|989898|1|9999020397|MR|Test|E|Lead 20397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020398|120398|989898|1|9999020398|MR|Test|E|Lead 20398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020399|120399|989898|1|9999020399|MR|Test|E|Lead 20399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020400|120400|989898|1|9999020400|MR|Test|E|Lead 20400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020401|120401|989898|1|9999020401|MR|Test|E|Lead 20401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020402|120402|989898|1|9999020402|MR|Test|E|Lead 20402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020403|120403|989898|1|9999020403|MR|Test|E|Lead 20403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020404|120404|989898|1|9999020404|MR|Test|E|Lead 20404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020405|120405|989898|1|9999020405|MR|Test|E|Lead 20405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020406|120406|989898|1|9999020406|MR|Test|E|Lead 20406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020407|120407|989898|1|9999020407|MR|Test|E|Lead 20407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020408|120408|989898|1|9999020408|MR|Test|E|Lead 20408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020409|120409|989898|1|9999020409|MR|Test|E|Lead 20409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020410|120410|989898|1|9999020410|MR|Test|E|Lead 20410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020411|120411|989898|1|9999020411|MR|Test|E|Lead 20411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020412|120412|989898|1|9999020412|MR|Test|E|Lead 20412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020413|120413|989898|1|9999020413|MR|Test|E|Lead 20413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020414|120414|989898|1|9999020414|MR|Test|E|Lead 20414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020415|120415|989898|1|9999020415|MR|Test|E|Lead 20415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020416|120416|989898|1|9999020416|MR|Test|E|Lead 20416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020417|120417|989898|1|9999020417|MR|Test|E|Lead 20417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020418|120418|989898|1|9999020418|MR|Test|E|Lead 20418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020419|120419|989898|1|9999020419|MR|Test|E|Lead 20419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020420|120420|989898|1|9999020420|MR|Test|E|Lead 20420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020421|120421|989898|1|9999020421|MR|Test|E|Lead 20421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020422|120422|989898|1|9999020422|MR|Test|E|Lead 20422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020423|120423|989898|1|9999020423|MR|Test|E|Lead 20423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020424|120424|989898|1|9999020424|MR|Test|E|Lead 20424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020425|120425|989898|1|9999020425|MR|Test|E|Lead 20425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020426|120426|989898|1|9999020426|MR|Test|E|Lead 20426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020427|120427|989898|1|9999020427|MR|Test|E|Lead 20427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020428|120428|989898|1|9999020428|MR|Test|E|Lead 20428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020429|120429|989898|1|9999020429|MR|Test|E|Lead 20429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020430|120430|989898|1|9999020430|MR|Test|E|Lead 20430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020431|120431|989898|1|9999020431|MR|Test|E|Lead 20431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020432|120432|989898|1|9999020432|MR|Test|E|Lead 20432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020433|120433|989898|1|9999020433|MR|Test|E|Lead 20433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020434|120434|989898|1|9999020434|MR|Test|E|Lead 20434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020435|120435|989898|1|9999020435|MR|Test|E|Lead 20435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020436|120436|989898|1|9999020436|MR|Test|E|Lead 20436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020437|120437|989898|1|9999020437|MR|Test|E|Lead 20437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020438|120438|989898|1|9999020438|MR|Test|E|Lead 20438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020439|120439|989898|1|9999020439|MR|Test|E|Lead 20439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020440|120440|989898|1|9999020440|MR|Test|E|Lead 20440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020441|120441|989898|1|9999020441|MR|Test|E|Lead 20441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020442|120442|989898|1|9999020442|MR|Test|E|Lead 20442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020443|120443|989898|1|9999020443|MR|Test|E|Lead 20443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020444|120444|989898|1|9999020444|MR|Test|E|Lead 20444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020445|120445|989898|1|9999020445|MR|Test|E|Lead 20445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020446|120446|989898|1|9999020446|MR|Test|E|Lead 20446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020447|120447|989898|1|9999020447|MR|Test|E|Lead 20447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020448|120448|989898|1|9999020448|MR|Test|E|Lead 20448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020449|120449|989898|1|9999020449|MR|Test|E|Lead 20449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020450|120450|989898|1|9999020450|MR|Test|E|Lead 20450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020451|120451|989898|1|9999020451|MR|Test|E|Lead 20451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020452|120452|989898|1|9999020452|MR|Test|E|Lead 20452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020453|120453|989898|1|9999020453|MR|Test|E|Lead 20453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020454|120454|989898|1|9999020454|MR|Test|E|Lead 20454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020455|120455|989898|1|9999020455|MR|Test|E|Lead 20455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020456|120456|989898|1|9999020456|MR|Test|E|Lead 20456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020457|120457|989898|1|9999020457|MR|Test|E|Lead 20457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020458|120458|989898|1|9999020458|MR|Test|E|Lead 20458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020459|120459|989898|1|9999020459|MR|Test|E|Lead 20459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020460|120460|989898|1|9999020460|MR|Test|E|Lead 20460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020461|120461|989898|1|9999020461|MR|Test|E|Lead 20461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020462|120462|989898|1|9999020462|MR|Test|E|Lead 20462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020463|120463|989898|1|9999020463|MR|Test|E|Lead 20463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020464|120464|989898|1|9999020464|MR|Test|E|Lead 20464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020465|120465|989898|1|9999020465|MR|Test|E|Lead 20465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020466|120466|989898|1|9999020466|MR|Test|E|Lead 20466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020467|120467|989898|1|9999020467|MR|Test|E|Lead 20467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020468|120468|989898|1|9999020468|MR|Test|E|Lead 20468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020469|120469|989898|1|9999020469|MR|Test|E|Lead 20469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020470|120470|989898|1|9999020470|MR|Test|E|Lead 20470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020471|120471|989898|1|9999020471|MR|Test|E|Lead 20471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020472|120472|989898|1|9999020472|MR|Test|E|Lead 20472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020473|120473|989898|1|9999020473|MR|Test|E|Lead 20473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020474|120474|989898|1|9999020474|MR|Test|E|Lead 20474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020475|120475|989898|1|9999020475|MR|Test|E|Lead 20475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020476|120476|989898|1|9999020476|MR|Test|E|Lead 20476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020477|120477|989898|1|9999020477|MR|Test|E|Lead 20477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020478|120478|989898|1|9999020478|MR|Test|E|Lead 20478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020479|120479|989898|1|9999020479|MR|Test|E|Lead 20479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020480|120480|989898|1|9999020480|MR|Test|E|Lead 20480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020481|120481|989898|1|9999020481|MR|Test|E|Lead 20481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020482|120482|989898|1|9999020482|MR|Test|E|Lead 20482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020483|120483|989898|1|9999020483|MR|Test|E|Lead 20483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020484|120484|989898|1|9999020484|MR|Test|E|Lead 20484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020485|120485|989898|1|9999020485|MR|Test|E|Lead 20485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020486|120486|989898|1|9999020486|MR|Test|E|Lead 20486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020487|120487|989898|1|9999020487|MR|Test|E|Lead 20487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020488|120488|989898|1|9999020488|MR|Test|E|Lead 20488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020489|120489|989898|1|9999020489|MR|Test|E|Lead 20489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020490|120490|989898|1|9999020490|MR|Test|E|Lead 20490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020491|120491|989898|1|9999020491|MR|Test|E|Lead 20491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020492|120492|989898|1|9999020492|MR|Test|E|Lead 20492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020493|120493|989898|1|9999020493|MR|Test|E|Lead 20493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020494|120494|989898|1|9999020494|MR|Test|E|Lead 20494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020495|120495|989898|1|9999020495|MR|Test|E|Lead 20495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020496|120496|989898|1|9999020496|MR|Test|E|Lead 20496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020497|120497|989898|1|9999020497|MR|Test|E|Lead 20497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020498|120498|989898|1|9999020498|MR|Test|E|Lead 20498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020499|120499|989898|1|9999020499|MR|Test|E|Lead 20499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020500|120500|989898|1|9999020500|MR|Test|E|Lead 20500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020501|120501|989898|1|9999020501|MR|Test|E|Lead 20501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020502|120502|989898|1|9999020502|MR|Test|E|Lead 20502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020503|120503|989898|1|9999020503|MR|Test|E|Lead 20503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020504|120504|989898|1|9999020504|MR|Test|E|Lead 20504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020505|120505|989898|1|9999020505|MR|Test|E|Lead 20505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020506|120506|989898|1|9999020506|MR|Test|E|Lead 20506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020507|120507|989898|1|9999020507|MR|Test|E|Lead 20507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020508|120508|989898|1|9999020508|MR|Test|E|Lead 20508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020509|120509|989898|1|9999020509|MR|Test|E|Lead 20509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020510|120510|989898|1|9999020510|MR|Test|E|Lead 20510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020511|120511|989898|1|9999020511|MR|Test|E|Lead 20511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020512|120512|989898|1|9999020512|MR|Test|E|Lead 20512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020513|120513|989898|1|9999020513|MR|Test|E|Lead 20513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020514|120514|989898|1|9999020514|MR|Test|E|Lead 20514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020515|120515|989898|1|9999020515|MR|Test|E|Lead 20515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020516|120516|989898|1|9999020516|MR|Test|E|Lead 20516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020517|120517|989898|1|9999020517|MR|Test|E|Lead 20517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020518|120518|989898|1|9999020518|MR|Test|E|Lead 20518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020519|120519|989898|1|9999020519|MR|Test|E|Lead 20519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020520|120520|989898|1|9999020520|MR|Test|E|Lead 20520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020521|120521|989898|1|9999020521|MR|Test|E|Lead 20521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020522|120522|989898|1|9999020522|MR|Test|E|Lead 20522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020523|120523|989898|1|9999020523|MR|Test|E|Lead 20523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020524|120524|989898|1|9999020524|MR|Test|E|Lead 20524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020525|120525|989898|1|9999020525|MR|Test|E|Lead 20525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020526|120526|989898|1|9999020526|MR|Test|E|Lead 20526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020527|120527|989898|1|9999020527|MR|Test|E|Lead 20527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020528|120528|989898|1|9999020528|MR|Test|E|Lead 20528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020529|120529|989898|1|9999020529|MR|Test|E|Lead 20529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020530|120530|989898|1|9999020530|MR|Test|E|Lead 20530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020531|120531|989898|1|9999020531|MR|Test|E|Lead 20531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020532|120532|989898|1|9999020532|MR|Test|E|Lead 20532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020533|120533|989898|1|9999020533|MR|Test|E|Lead 20533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020534|120534|989898|1|9999020534|MR|Test|E|Lead 20534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020535|120535|989898|1|9999020535|MR|Test|E|Lead 20535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020536|120536|989898|1|9999020536|MR|Test|E|Lead 20536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020537|120537|989898|1|9999020537|MR|Test|E|Lead 20537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020538|120538|989898|1|9999020538|MR|Test|E|Lead 20538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020539|120539|989898|1|9999020539|MR|Test|E|Lead 20539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020540|120540|989898|1|9999020540|MR|Test|E|Lead 20540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020541|120541|989898|1|9999020541|MR|Test|E|Lead 20541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020542|120542|989898|1|9999020542|MR|Test|E|Lead 20542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020543|120543|989898|1|9999020543|MR|Test|E|Lead 20543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020544|120544|989898|1|9999020544|MR|Test|E|Lead 20544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020545|120545|989898|1|9999020545|MR|Test|E|Lead 20545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020546|120546|989898|1|9999020546|MR|Test|E|Lead 20546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020547|120547|989898|1|9999020547|MR|Test|E|Lead 20547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020548|120548|989898|1|9999020548|MR|Test|E|Lead 20548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020549|120549|989898|1|9999020549|MR|Test|E|Lead 20549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020550|120550|989898|1|9999020550|MR|Test|E|Lead 20550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020551|120551|989898|1|9999020551|MR|Test|E|Lead 20551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020552|120552|989898|1|9999020552|MR|Test|E|Lead 20552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020553|120553|989898|1|9999020553|MR|Test|E|Lead 20553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020554|120554|989898|1|9999020554|MR|Test|E|Lead 20554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020555|120555|989898|1|9999020555|MR|Test|E|Lead 20555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020556|120556|989898|1|9999020556|MR|Test|E|Lead 20556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020557|120557|989898|1|9999020557|MR|Test|E|Lead 20557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020558|120558|989898|1|9999020558|MR|Test|E|Lead 20558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020559|120559|989898|1|9999020559|MR|Test|E|Lead 20559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020560|120560|989898|1|9999020560|MR|Test|E|Lead 20560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020561|120561|989898|1|9999020561|MR|Test|E|Lead 20561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020562|120562|989898|1|9999020562|MR|Test|E|Lead 20562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020563|120563|989898|1|9999020563|MR|Test|E|Lead 20563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020564|120564|989898|1|9999020564|MR|Test|E|Lead 20564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020565|120565|989898|1|9999020565|MR|Test|E|Lead 20565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020566|120566|989898|1|9999020566|MR|Test|E|Lead 20566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020567|120567|989898|1|9999020567|MR|Test|E|Lead 20567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020568|120568|989898|1|9999020568|MR|Test|E|Lead 20568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020569|120569|989898|1|9999020569|MR|Test|E|Lead 20569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020570|120570|989898|1|9999020570|MR|Test|E|Lead 20570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020571|120571|989898|1|9999020571|MR|Test|E|Lead 20571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020572|120572|989898|1|9999020572|MR|Test|E|Lead 20572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020573|120573|989898|1|9999020573|MR|Test|E|Lead 20573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020574|120574|989898|1|9999020574|MR|Test|E|Lead 20574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020575|120575|989898|1|9999020575|MR|Test|E|Lead 20575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020576|120576|989898|1|9999020576|MR|Test|E|Lead 20576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020577|120577|989898|1|9999020577|MR|Test|E|Lead 20577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020578|120578|989898|1|9999020578|MR|Test|E|Lead 20578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020579|120579|989898|1|9999020579|MR|Test|E|Lead 20579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020580|120580|989898|1|9999020580|MR|Test|E|Lead 20580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020581|120581|989898|1|9999020581|MR|Test|E|Lead 20581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020582|120582|989898|1|9999020582|MR|Test|E|Lead 20582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020583|120583|989898|1|9999020583|MR|Test|E|Lead 20583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020584|120584|989898|1|9999020584|MR|Test|E|Lead 20584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020585|120585|989898|1|9999020585|MR|Test|E|Lead 20585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020586|120586|989898|1|9999020586|MR|Test|E|Lead 20586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020587|120587|989898|1|9999020587|MR|Test|E|Lead 20587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020588|120588|989898|1|9999020588|MR|Test|E|Lead 20588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020589|120589|989898|1|9999020589|MR|Test|E|Lead 20589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020590|120590|989898|1|9999020590|MR|Test|E|Lead 20590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020591|120591|989898|1|9999020591|MR|Test|E|Lead 20591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020592|120592|989898|1|9999020592|MR|Test|E|Lead 20592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020593|120593|989898|1|9999020593|MR|Test|E|Lead 20593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020594|120594|989898|1|9999020594|MR|Test|E|Lead 20594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020595|120595|989898|1|9999020595|MR|Test|E|Lead 20595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020596|120596|989898|1|9999020596|MR|Test|E|Lead 20596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020597|120597|989898|1|9999020597|MR|Test|E|Lead 20597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020598|120598|989898|1|9999020598|MR|Test|E|Lead 20598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020599|120599|989898|1|9999020599|MR|Test|E|Lead 20599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020600|120600|989898|1|9999020600|MR|Test|E|Lead 20600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020601|120601|989898|1|9999020601|MR|Test|E|Lead 20601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020602|120602|989898|1|9999020602|MR|Test|E|Lead 20602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020603|120603|989898|1|9999020603|MR|Test|E|Lead 20603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020604|120604|989898|1|9999020604|MR|Test|E|Lead 20604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020605|120605|989898|1|9999020605|MR|Test|E|Lead 20605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020606|120606|989898|1|9999020606|MR|Test|E|Lead 20606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020607|120607|989898|1|9999020607|MR|Test|E|Lead 20607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020608|120608|989898|1|9999020608|MR|Test|E|Lead 20608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020609|120609|989898|1|9999020609|MR|Test|E|Lead 20609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020610|120610|989898|1|9999020610|MR|Test|E|Lead 20610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020611|120611|989898|1|9999020611|MR|Test|E|Lead 20611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020612|120612|989898|1|9999020612|MR|Test|E|Lead 20612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020613|120613|989898|1|9999020613|MR|Test|E|Lead 20613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020614|120614|989898|1|9999020614|MR|Test|E|Lead 20614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020615|120615|989898|1|9999020615|MR|Test|E|Lead 20615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020616|120616|989898|1|9999020616|MR|Test|E|Lead 20616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020617|120617|989898|1|9999020617|MR|Test|E|Lead 20617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020618|120618|989898|1|9999020618|MR|Test|E|Lead 20618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020619|120619|989898|1|9999020619|MR|Test|E|Lead 20619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020620|120620|989898|1|9999020620|MR|Test|E|Lead 20620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020621|120621|989898|1|9999020621|MR|Test|E|Lead 20621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020622|120622|989898|1|9999020622|MR|Test|E|Lead 20622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020623|120623|989898|1|9999020623|MR|Test|E|Lead 20623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020624|120624|989898|1|9999020624|MR|Test|E|Lead 20624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020625|120625|989898|1|9999020625|MR|Test|E|Lead 20625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020626|120626|989898|1|9999020626|MR|Test|E|Lead 20626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020627|120627|989898|1|9999020627|MR|Test|E|Lead 20627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020628|120628|989898|1|9999020628|MR|Test|E|Lead 20628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020629|120629|989898|1|9999020629|MR|Test|E|Lead 20629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020630|120630|989898|1|9999020630|MR|Test|E|Lead 20630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020631|120631|989898|1|9999020631|MR|Test|E|Lead 20631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020632|120632|989898|1|9999020632|MR|Test|E|Lead 20632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020633|120633|989898|1|9999020633|MR|Test|E|Lead 20633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020634|120634|989898|1|9999020634|MR|Test|E|Lead 20634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020635|120635|989898|1|9999020635|MR|Test|E|Lead 20635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020636|120636|989898|1|9999020636|MR|Test|E|Lead 20636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020637|120637|989898|1|9999020637|MR|Test|E|Lead 20637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020638|120638|989898|1|9999020638|MR|Test|E|Lead 20638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020639|120639|989898|1|9999020639|MR|Test|E|Lead 20639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020640|120640|989898|1|9999020640|MR|Test|E|Lead 20640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020641|120641|989898|1|9999020641|MR|Test|E|Lead 20641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020642|120642|989898|1|9999020642|MR|Test|E|Lead 20642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020643|120643|989898|1|9999020643|MR|Test|E|Lead 20643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020644|120644|989898|1|9999020644|MR|Test|E|Lead 20644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020645|120645|989898|1|9999020645|MR|Test|E|Lead 20645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020646|120646|989898|1|9999020646|MR|Test|E|Lead 20646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020647|120647|989898|1|9999020647|MR|Test|E|Lead 20647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020648|120648|989898|1|9999020648|MR|Test|E|Lead 20648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020649|120649|989898|1|9999020649|MR|Test|E|Lead 20649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020650|120650|989898|1|9999020650|MR|Test|E|Lead 20650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020651|120651|989898|1|9999020651|MR|Test|E|Lead 20651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020652|120652|989898|1|9999020652|MR|Test|E|Lead 20652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020653|120653|989898|1|9999020653|MR|Test|E|Lead 20653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020654|120654|989898|1|9999020654|MR|Test|E|Lead 20654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020655|120655|989898|1|9999020655|MR|Test|E|Lead 20655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020656|120656|989898|1|9999020656|MR|Test|E|Lead 20656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020657|120657|989898|1|9999020657|MR|Test|E|Lead 20657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020658|120658|989898|1|9999020658|MR|Test|E|Lead 20658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020659|120659|989898|1|9999020659|MR|Test|E|Lead 20659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020660|120660|989898|1|9999020660|MR|Test|E|Lead 20660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020661|120661|989898|1|9999020661|MR|Test|E|Lead 20661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020662|120662|989898|1|9999020662|MR|Test|E|Lead 20662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020663|120663|989898|1|9999020663|MR|Test|E|Lead 20663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020664|120664|989898|1|9999020664|MR|Test|E|Lead 20664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020665|120665|989898|1|9999020665|MR|Test|E|Lead 20665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020666|120666|989898|1|9999020666|MR|Test|E|Lead 20666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020667|120667|989898|1|9999020667|MR|Test|E|Lead 20667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020668|120668|989898|1|9999020668|MR|Test|E|Lead 20668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020669|120669|989898|1|9999020669|MR|Test|E|Lead 20669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020670|120670|989898|1|9999020670|MR|Test|E|Lead 20670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020671|120671|989898|1|9999020671|MR|Test|E|Lead 20671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020672|120672|989898|1|9999020672|MR|Test|E|Lead 20672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020673|120673|989898|1|9999020673|MR|Test|E|Lead 20673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020674|120674|989898|1|9999020674|MR|Test|E|Lead 20674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020675|120675|989898|1|9999020675|MR|Test|E|Lead 20675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020676|120676|989898|1|9999020676|MR|Test|E|Lead 20676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020677|120677|989898|1|9999020677|MR|Test|E|Lead 20677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020678|120678|989898|1|9999020678|MR|Test|E|Lead 20678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020679|120679|989898|1|9999020679|MR|Test|E|Lead 20679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020680|120680|989898|1|9999020680|MR|Test|E|Lead 20680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020681|120681|989898|1|9999020681|MR|Test|E|Lead 20681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020682|120682|989898|1|9999020682|MR|Test|E|Lead 20682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020683|120683|989898|1|9999020683|MR|Test|E|Lead 20683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020684|120684|989898|1|9999020684|MR|Test|E|Lead 20684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020685|120685|989898|1|9999020685|MR|Test|E|Lead 20685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020686|120686|989898|1|9999020686|MR|Test|E|Lead 20686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020687|120687|989898|1|9999020687|MR|Test|E|Lead 20687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020688|120688|989898|1|9999020688|MR|Test|E|Lead 20688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020689|120689|989898|1|9999020689|MR|Test|E|Lead 20689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020690|120690|989898|1|9999020690|MR|Test|E|Lead 20690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020691|120691|989898|1|9999020691|MR|Test|E|Lead 20691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020692|120692|989898|1|9999020692|MR|Test|E|Lead 20692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020693|120693|989898|1|9999020693|MR|Test|E|Lead 20693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020694|120694|989898|1|9999020694|MR|Test|E|Lead 20694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020695|120695|989898|1|9999020695|MR|Test|E|Lead 20695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020696|120696|989898|1|9999020696|MR|Test|E|Lead 20696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020697|120697|989898|1|9999020697|MR|Test|E|Lead 20697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020698|120698|989898|1|9999020698|MR|Test|E|Lead 20698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020699|120699|989898|1|9999020699|MR|Test|E|Lead 20699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020700|120700|989898|1|9999020700|MR|Test|E|Lead 20700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020701|120701|989898|1|9999020701|MR|Test|E|Lead 20701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020702|120702|989898|1|9999020702|MR|Test|E|Lead 20702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020703|120703|989898|1|9999020703|MR|Test|E|Lead 20703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020704|120704|989898|1|9999020704|MR|Test|E|Lead 20704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020705|120705|989898|1|9999020705|MR|Test|E|Lead 20705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020706|120706|989898|1|9999020706|MR|Test|E|Lead 20706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020707|120707|989898|1|9999020707|MR|Test|E|Lead 20707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020708|120708|989898|1|9999020708|MR|Test|E|Lead 20708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020709|120709|989898|1|9999020709|MR|Test|E|Lead 20709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020710|120710|989898|1|9999020710|MR|Test|E|Lead 20710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020711|120711|989898|1|9999020711|MR|Test|E|Lead 20711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020712|120712|989898|1|9999020712|MR|Test|E|Lead 20712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020713|120713|989898|1|9999020713|MR|Test|E|Lead 20713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020714|120714|989898|1|9999020714|MR|Test|E|Lead 20714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020715|120715|989898|1|9999020715|MR|Test|E|Lead 20715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020716|120716|989898|1|9999020716|MR|Test|E|Lead 20716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020717|120717|989898|1|9999020717|MR|Test|E|Lead 20717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020718|120718|989898|1|9999020718|MR|Test|E|Lead 20718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020719|120719|989898|1|9999020719|MR|Test|E|Lead 20719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020720|120720|989898|1|9999020720|MR|Test|E|Lead 20720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020721|120721|989898|1|9999020721|MR|Test|E|Lead 20721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020722|120722|989898|1|9999020722|MR|Test|E|Lead 20722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020723|120723|989898|1|9999020723|MR|Test|E|Lead 20723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020724|120724|989898|1|9999020724|MR|Test|E|Lead 20724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020725|120725|989898|1|9999020725|MR|Test|E|Lead 20725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020726|120726|989898|1|9999020726|MR|Test|E|Lead 20726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020727|120727|989898|1|9999020727|MR|Test|E|Lead 20727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020728|120728|989898|1|9999020728|MR|Test|E|Lead 20728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020729|120729|989898|1|9999020729|MR|Test|E|Lead 20729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020730|120730|989898|1|9999020730|MR|Test|E|Lead 20730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020731|120731|989898|1|9999020731|MR|Test|E|Lead 20731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020732|120732|989898|1|9999020732|MR|Test|E|Lead 20732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020733|120733|989898|1|9999020733|MR|Test|E|Lead 20733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020734|120734|989898|1|9999020734|MR|Test|E|Lead 20734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020735|120735|989898|1|9999020735|MR|Test|E|Lead 20735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020736|120736|989898|1|9999020736|MR|Test|E|Lead 20736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020737|120737|989898|1|9999020737|MR|Test|E|Lead 20737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020738|120738|989898|1|9999020738|MR|Test|E|Lead 20738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020739|120739|989898|1|9999020739|MR|Test|E|Lead 20739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020740|120740|989898|1|9999020740|MR|Test|E|Lead 20740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020741|120741|989898|1|9999020741|MR|Test|E|Lead 20741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020742|120742|989898|1|9999020742|MR|Test|E|Lead 20742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020743|120743|989898|1|9999020743|MR|Test|E|Lead 20743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020744|120744|989898|1|9999020744|MR|Test|E|Lead 20744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020745|120745|989898|1|9999020745|MR|Test|E|Lead 20745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020746|120746|989898|1|9999020746|MR|Test|E|Lead 20746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020747|120747|989898|1|9999020747|MR|Test|E|Lead 20747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020748|120748|989898|1|9999020748|MR|Test|E|Lead 20748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020749|120749|989898|1|9999020749|MR|Test|E|Lead 20749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020750|120750|989898|1|9999020750|MR|Test|E|Lead 20750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020751|120751|989898|1|9999020751|MR|Test|E|Lead 20751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020752|120752|989898|1|9999020752|MR|Test|E|Lead 20752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020753|120753|989898|1|9999020753|MR|Test|E|Lead 20753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020754|120754|989898|1|9999020754|MR|Test|E|Lead 20754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020755|120755|989898|1|9999020755|MR|Test|E|Lead 20755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020756|120756|989898|1|9999020756|MR|Test|E|Lead 20756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020757|120757|989898|1|9999020757|MR|Test|E|Lead 20757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020758|120758|989898|1|9999020758|MR|Test|E|Lead 20758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020759|120759|989898|1|9999020759|MR|Test|E|Lead 20759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020760|120760|989898|1|9999020760|MR|Test|E|Lead 20760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020761|120761|989898|1|9999020761|MR|Test|E|Lead 20761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020762|120762|989898|1|9999020762|MR|Test|E|Lead 20762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020763|120763|989898|1|9999020763|MR|Test|E|Lead 20763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020764|120764|989898|1|9999020764|MR|Test|E|Lead 20764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020765|120765|989898|1|9999020765|MR|Test|E|Lead 20765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020766|120766|989898|1|9999020766|MR|Test|E|Lead 20766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020767|120767|989898|1|9999020767|MR|Test|E|Lead 20767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020768|120768|989898|1|9999020768|MR|Test|E|Lead 20768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020769|120769|989898|1|9999020769|MR|Test|E|Lead 20769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020770|120770|989898|1|9999020770|MR|Test|E|Lead 20770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020771|120771|989898|1|9999020771|MR|Test|E|Lead 20771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020772|120772|989898|1|9999020772|MR|Test|E|Lead 20772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020773|120773|989898|1|9999020773|MR|Test|E|Lead 20773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020774|120774|989898|1|9999020774|MR|Test|E|Lead 20774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020775|120775|989898|1|9999020775|MR|Test|E|Lead 20775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020776|120776|989898|1|9999020776|MR|Test|E|Lead 20776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020777|120777|989898|1|9999020777|MR|Test|E|Lead 20777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020778|120778|989898|1|9999020778|MR|Test|E|Lead 20778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020779|120779|989898|1|9999020779|MR|Test|E|Lead 20779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020780|120780|989898|1|9999020780|MR|Test|E|Lead 20780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020781|120781|989898|1|9999020781|MR|Test|E|Lead 20781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020782|120782|989898|1|9999020782|MR|Test|E|Lead 20782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020783|120783|989898|1|9999020783|MR|Test|E|Lead 20783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020784|120784|989898|1|9999020784|MR|Test|E|Lead 20784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020785|120785|989898|1|9999020785|MR|Test|E|Lead 20785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020786|120786|989898|1|9999020786|MR|Test|E|Lead 20786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020787|120787|989898|1|9999020787|MR|Test|E|Lead 20787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020788|120788|989898|1|9999020788|MR|Test|E|Lead 20788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020789|120789|989898|1|9999020789|MR|Test|E|Lead 20789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020790|120790|989898|1|9999020790|MR|Test|E|Lead 20790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020791|120791|989898|1|9999020791|MR|Test|E|Lead 20791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020792|120792|989898|1|9999020792|MR|Test|E|Lead 20792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020793|120793|989898|1|9999020793|MR|Test|E|Lead 20793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020794|120794|989898|1|9999020794|MR|Test|E|Lead 20794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020795|120795|989898|1|9999020795|MR|Test|E|Lead 20795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020796|120796|989898|1|9999020796|MR|Test|E|Lead 20796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020797|120797|989898|1|9999020797|MR|Test|E|Lead 20797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020798|120798|989898|1|9999020798|MR|Test|E|Lead 20798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020799|120799|989898|1|9999020799|MR|Test|E|Lead 20799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020800|120800|989898|1|9999020800|MR|Test|E|Lead 20800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020801|120801|989898|1|9999020801|MR|Test|E|Lead 20801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020802|120802|989898|1|9999020802|MR|Test|E|Lead 20802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020803|120803|989898|1|9999020803|MR|Test|E|Lead 20803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020804|120804|989898|1|9999020804|MR|Test|E|Lead 20804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020805|120805|989898|1|9999020805|MR|Test|E|Lead 20805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020806|120806|989898|1|9999020806|MR|Test|E|Lead 20806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020807|120807|989898|1|9999020807|MR|Test|E|Lead 20807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020808|120808|989898|1|9999020808|MR|Test|E|Lead 20808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020809|120809|989898|1|9999020809|MR|Test|E|Lead 20809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020810|120810|989898|1|9999020810|MR|Test|E|Lead 20810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020811|120811|989898|1|9999020811|MR|Test|E|Lead 20811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020812|120812|989898|1|9999020812|MR|Test|E|Lead 20812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020813|120813|989898|1|9999020813|MR|Test|E|Lead 20813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020814|120814|989898|1|9999020814|MR|Test|E|Lead 20814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020815|120815|989898|1|9999020815|MR|Test|E|Lead 20815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020816|120816|989898|1|9999020816|MR|Test|E|Lead 20816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020817|120817|989898|1|9999020817|MR|Test|E|Lead 20817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020818|120818|989898|1|9999020818|MR|Test|E|Lead 20818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020819|120819|989898|1|9999020819|MR|Test|E|Lead 20819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020820|120820|989898|1|9999020820|MR|Test|E|Lead 20820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020821|120821|989898|1|9999020821|MR|Test|E|Lead 20821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020822|120822|989898|1|9999020822|MR|Test|E|Lead 20822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020823|120823|989898|1|9999020823|MR|Test|E|Lead 20823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020824|120824|989898|1|9999020824|MR|Test|E|Lead 20824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020825|120825|989898|1|9999020825|MR|Test|E|Lead 20825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020826|120826|989898|1|9999020826|MR|Test|E|Lead 20826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020827|120827|989898|1|9999020827|MR|Test|E|Lead 20827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020828|120828|989898|1|9999020828|MR|Test|E|Lead 20828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020829|120829|989898|1|9999020829|MR|Test|E|Lead 20829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020830|120830|989898|1|9999020830|MR|Test|E|Lead 20830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020831|120831|989898|1|9999020831|MR|Test|E|Lead 20831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020832|120832|989898|1|9999020832|MR|Test|E|Lead 20832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020833|120833|989898|1|9999020833|MR|Test|E|Lead 20833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020834|120834|989898|1|9999020834|MR|Test|E|Lead 20834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020835|120835|989898|1|9999020835|MR|Test|E|Lead 20835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020836|120836|989898|1|9999020836|MR|Test|E|Lead 20836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020837|120837|989898|1|9999020837|MR|Test|E|Lead 20837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020838|120838|989898|1|9999020838|MR|Test|E|Lead 20838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020839|120839|989898|1|9999020839|MR|Test|E|Lead 20839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020840|120840|989898|1|9999020840|MR|Test|E|Lead 20840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020841|120841|989898|1|9999020841|MR|Test|E|Lead 20841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020842|120842|989898|1|9999020842|MR|Test|E|Lead 20842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020843|120843|989898|1|9999020843|MR|Test|E|Lead 20843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020844|120844|989898|1|9999020844|MR|Test|E|Lead 20844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020845|120845|989898|1|9999020845|MR|Test|E|Lead 20845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020846|120846|989898|1|9999020846|MR|Test|E|Lead 20846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020847|120847|989898|1|9999020847|MR|Test|E|Lead 20847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020848|120848|989898|1|9999020848|MR|Test|E|Lead 20848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020849|120849|989898|1|9999020849|MR|Test|E|Lead 20849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020850|120850|989898|1|9999020850|MR|Test|E|Lead 20850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020851|120851|989898|1|9999020851|MR|Test|E|Lead 20851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020852|120852|989898|1|9999020852|MR|Test|E|Lead 20852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020853|120853|989898|1|9999020853|MR|Test|E|Lead 20853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020854|120854|989898|1|9999020854|MR|Test|E|Lead 20854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020855|120855|989898|1|9999020855|MR|Test|E|Lead 20855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020856|120856|989898|1|9999020856|MR|Test|E|Lead 20856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020857|120857|989898|1|9999020857|MR|Test|E|Lead 20857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020858|120858|989898|1|9999020858|MR|Test|E|Lead 20858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020859|120859|989898|1|9999020859|MR|Test|E|Lead 20859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020860|120860|989898|1|9999020860|MR|Test|E|Lead 20860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020861|120861|989898|1|9999020861|MR|Test|E|Lead 20861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020862|120862|989898|1|9999020862|MR|Test|E|Lead 20862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020863|120863|989898|1|9999020863|MR|Test|E|Lead 20863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020864|120864|989898|1|9999020864|MR|Test|E|Lead 20864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020865|120865|989898|1|9999020865|MR|Test|E|Lead 20865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020866|120866|989898|1|9999020866|MR|Test|E|Lead 20866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020867|120867|989898|1|9999020867|MR|Test|E|Lead 20867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020868|120868|989898|1|9999020868|MR|Test|E|Lead 20868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020869|120869|989898|1|9999020869|MR|Test|E|Lead 20869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020870|120870|989898|1|9999020870|MR|Test|E|Lead 20870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020871|120871|989898|1|9999020871|MR|Test|E|Lead 20871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020872|120872|989898|1|9999020872|MR|Test|E|Lead 20872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020873|120873|989898|1|9999020873|MR|Test|E|Lead 20873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020874|120874|989898|1|9999020874|MR|Test|E|Lead 20874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020875|120875|989898|1|9999020875|MR|Test|E|Lead 20875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020876|120876|989898|1|9999020876|MR|Test|E|Lead 20876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020877|120877|989898|1|9999020877|MR|Test|E|Lead 20877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020878|120878|989898|1|9999020878|MR|Test|E|Lead 20878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020879|120879|989898|1|9999020879|MR|Test|E|Lead 20879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020880|120880|989898|1|9999020880|MR|Test|E|Lead 20880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020881|120881|989898|1|9999020881|MR|Test|E|Lead 20881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020882|120882|989898|1|9999020882|MR|Test|E|Lead 20882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020883|120883|989898|1|9999020883|MR|Test|E|Lead 20883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020884|120884|989898|1|9999020884|MR|Test|E|Lead 20884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020885|120885|989898|1|9999020885|MR|Test|E|Lead 20885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020886|120886|989898|1|9999020886|MR|Test|E|Lead 20886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020887|120887|989898|1|9999020887|MR|Test|E|Lead 20887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020888|120888|989898|1|9999020888|MR|Test|E|Lead 20888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020889|120889|989898|1|9999020889|MR|Test|E|Lead 20889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020890|120890|989898|1|9999020890|MR|Test|E|Lead 20890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020891|120891|989898|1|9999020891|MR|Test|E|Lead 20891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020892|120892|989898|1|9999020892|MR|Test|E|Lead 20892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020893|120893|989898|1|9999020893|MR|Test|E|Lead 20893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020894|120894|989898|1|9999020894|MR|Test|E|Lead 20894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020895|120895|989898|1|9999020895|MR|Test|E|Lead 20895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020896|120896|989898|1|9999020896|MR|Test|E|Lead 20896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020897|120897|989898|1|9999020897|MR|Test|E|Lead 20897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020898|120898|989898|1|9999020898|MR|Test|E|Lead 20898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020899|120899|989898|1|9999020899|MR|Test|E|Lead 20899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020900|120900|989898|1|9999020900|MR|Test|E|Lead 20900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020901|120901|989898|1|9999020901|MR|Test|E|Lead 20901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020902|120902|989898|1|9999020902|MR|Test|E|Lead 20902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020903|120903|989898|1|9999020903|MR|Test|E|Lead 20903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020904|120904|989898|1|9999020904|MR|Test|E|Lead 20904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020905|120905|989898|1|9999020905|MR|Test|E|Lead 20905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020906|120906|989898|1|9999020906|MR|Test|E|Lead 20906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020907|120907|989898|1|9999020907|MR|Test|E|Lead 20907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020908|120908|989898|1|9999020908|MR|Test|E|Lead 20908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020909|120909|989898|1|9999020909|MR|Test|E|Lead 20909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020910|120910|989898|1|9999020910|MR|Test|E|Lead 20910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020911|120911|989898|1|9999020911|MR|Test|E|Lead 20911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020912|120912|989898|1|9999020912|MR|Test|E|Lead 20912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020913|120913|989898|1|9999020913|MR|Test|E|Lead 20913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020914|120914|989898|1|9999020914|MR|Test|E|Lead 20914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020915|120915|989898|1|9999020915|MR|Test|E|Lead 20915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020916|120916|989898|1|9999020916|MR|Test|E|Lead 20916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020917|120917|989898|1|9999020917|MR|Test|E|Lead 20917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020918|120918|989898|1|9999020918|MR|Test|E|Lead 20918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020919|120919|989898|1|9999020919|MR|Test|E|Lead 20919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020920|120920|989898|1|9999020920|MR|Test|E|Lead 20920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020921|120921|989898|1|9999020921|MR|Test|E|Lead 20921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020922|120922|989898|1|9999020922|MR|Test|E|Lead 20922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020923|120923|989898|1|9999020923|MR|Test|E|Lead 20923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020924|120924|989898|1|9999020924|MR|Test|E|Lead 20924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020925|120925|989898|1|9999020925|MR|Test|E|Lead 20925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020926|120926|989898|1|9999020926|MR|Test|E|Lead 20926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020927|120927|989898|1|9999020927|MR|Test|E|Lead 20927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020928|120928|989898|1|9999020928|MR|Test|E|Lead 20928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020929|120929|989898|1|9999020929|MR|Test|E|Lead 20929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020930|120930|989898|1|9999020930|MR|Test|E|Lead 20930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020931|120931|989898|1|9999020931|MR|Test|E|Lead 20931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020932|120932|989898|1|9999020932|MR|Test|E|Lead 20932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020933|120933|989898|1|9999020933|MR|Test|E|Lead 20933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020934|120934|989898|1|9999020934|MR|Test|E|Lead 20934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020935|120935|989898|1|9999020935|MR|Test|E|Lead 20935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020936|120936|989898|1|9999020936|MR|Test|E|Lead 20936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020937|120937|989898|1|9999020937|MR|Test|E|Lead 20937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020938|120938|989898|1|9999020938|MR|Test|E|Lead 20938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020939|120939|989898|1|9999020939|MR|Test|E|Lead 20939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020940|120940|989898|1|9999020940|MR|Test|E|Lead 20940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020941|120941|989898|1|9999020941|MR|Test|E|Lead 20941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020942|120942|989898|1|9999020942|MR|Test|E|Lead 20942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020943|120943|989898|1|9999020943|MR|Test|E|Lead 20943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020944|120944|989898|1|9999020944|MR|Test|E|Lead 20944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020945|120945|989898|1|9999020945|MR|Test|E|Lead 20945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020946|120946|989898|1|9999020946|MR|Test|E|Lead 20946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020947|120947|989898|1|9999020947|MR|Test|E|Lead 20947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020948|120948|989898|1|9999020948|MR|Test|E|Lead 20948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020949|120949|989898|1|9999020949|MR|Test|E|Lead 20949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020950|120950|989898|1|9999020950|MR|Test|E|Lead 20950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020951|120951|989898|1|9999020951|MR|Test|E|Lead 20951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020952|120952|989898|1|9999020952|MR|Test|E|Lead 20952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020953|120953|989898|1|9999020953|MR|Test|E|Lead 20953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020954|120954|989898|1|9999020954|MR|Test|E|Lead 20954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020955|120955|989898|1|9999020955|MR|Test|E|Lead 20955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020956|120956|989898|1|9999020956|MR|Test|E|Lead 20956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020957|120957|989898|1|9999020957|MR|Test|E|Lead 20957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020958|120958|989898|1|9999020958|MR|Test|E|Lead 20958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020959|120959|989898|1|9999020959|MR|Test|E|Lead 20959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020960|120960|989898|1|9999020960|MR|Test|E|Lead 20960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020961|120961|989898|1|9999020961|MR|Test|E|Lead 20961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020962|120962|989898|1|9999020962|MR|Test|E|Lead 20962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020963|120963|989898|1|9999020963|MR|Test|E|Lead 20963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020964|120964|989898|1|9999020964|MR|Test|E|Lead 20964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020965|120965|989898|1|9999020965|MR|Test|E|Lead 20965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020966|120966|989898|1|9999020966|MR|Test|E|Lead 20966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020967|120967|989898|1|9999020967|MR|Test|E|Lead 20967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020968|120968|989898|1|9999020968|MR|Test|E|Lead 20968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020969|120969|989898|1|9999020969|MR|Test|E|Lead 20969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020970|120970|989898|1|9999020970|MR|Test|E|Lead 20970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020971|120971|989898|1|9999020971|MR|Test|E|Lead 20971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020972|120972|989898|1|9999020972|MR|Test|E|Lead 20972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020973|120973|989898|1|9999020973|MR|Test|E|Lead 20973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020974|120974|989898|1|9999020974|MR|Test|E|Lead 20974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020975|120975|989898|1|9999020975|MR|Test|E|Lead 20975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020976|120976|989898|1|9999020976|MR|Test|E|Lead 20976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020977|120977|989898|1|9999020977|MR|Test|E|Lead 20977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020978|120978|989898|1|9999020978|MR|Test|E|Lead 20978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020979|120979|989898|1|9999020979|MR|Test|E|Lead 20979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020980|120980|989898|1|9999020980|MR|Test|E|Lead 20980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020981|120981|989898|1|9999020981|MR|Test|E|Lead 20981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020982|120982|989898|1|9999020982|MR|Test|E|Lead 20982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020983|120983|989898|1|9999020983|MR|Test|E|Lead 20983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020984|120984|989898|1|9999020984|MR|Test|E|Lead 20984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020985|120985|989898|1|9999020985|MR|Test|E|Lead 20985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020986|120986|989898|1|9999020986|MR|Test|E|Lead 20986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020987|120987|989898|1|9999020987|MR|Test|E|Lead 20987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020988|120988|989898|1|9999020988|MR|Test|E|Lead 20988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020989|120989|989898|1|9999020989|MR|Test|E|Lead 20989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020990|120990|989898|1|9999020990|MR|Test|E|Lead 20990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020991|120991|989898|1|9999020991|MR|Test|E|Lead 20991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020992|120992|989898|1|9999020992|MR|Test|E|Lead 20992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020993|120993|989898|1|9999020993|MR|Test|E|Lead 20993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020994|120994|989898|1|9999020994|MR|Test|E|Lead 20994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020995|120995|989898|1|9999020995|MR|Test|E|Lead 20995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020996|120996|989898|1|9999020996|MR|Test|E|Lead 20996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020997|120997|989898|1|9999020997|MR|Test|E|Lead 20997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020998|120998|989898|1|9999020998|MR|Test|E|Lead 20998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1020999|120999|989898|1|9999020999|MR|Test|E|Lead 20999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021000|121000|989898|1|9999021000|MR|Test|E|Lead 21000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021001|121001|989898|1|9999021001|MR|Test|E|Lead 21001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021002|121002|989898|1|9999021002|MR|Test|E|Lead 21002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021003|121003|989898|1|9999021003|MR|Test|E|Lead 21003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021004|121004|989898|1|9999021004|MR|Test|E|Lead 21004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021005|121005|989898|1|9999021005|MR|Test|E|Lead 21005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021006|121006|989898|1|9999021006|MR|Test|E|Lead 21006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021007|121007|989898|1|9999021007|MR|Test|E|Lead 21007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021008|121008|989898|1|9999021008|MR|Test|E|Lead 21008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021009|121009|989898|1|9999021009|MR|Test|E|Lead 21009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021010|121010|989898|1|9999021010|MR|Test|E|Lead 21010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021011|121011|989898|1|9999021011|MR|Test|E|Lead 21011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021012|121012|989898|1|9999021012|MR|Test|E|Lead 21012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021013|121013|989898|1|9999021013|MR|Test|E|Lead 21013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021014|121014|989898|1|9999021014|MR|Test|E|Lead 21014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021015|121015|989898|1|9999021015|MR|Test|E|Lead 21015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021016|121016|989898|1|9999021016|MR|Test|E|Lead 21016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021017|121017|989898|1|9999021017|MR|Test|E|Lead 21017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021018|121018|989898|1|9999021018|MR|Test|E|Lead 21018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021019|121019|989898|1|9999021019|MR|Test|E|Lead 21019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021020|121020|989898|1|9999021020|MR|Test|E|Lead 21020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021021|121021|989898|1|9999021021|MR|Test|E|Lead 21021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021022|121022|989898|1|9999021022|MR|Test|E|Lead 21022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021023|121023|989898|1|9999021023|MR|Test|E|Lead 21023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021024|121024|989898|1|9999021024|MR|Test|E|Lead 21024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021025|121025|989898|1|9999021025|MR|Test|E|Lead 21025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021026|121026|989898|1|9999021026|MR|Test|E|Lead 21026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021027|121027|989898|1|9999021027|MR|Test|E|Lead 21027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021028|121028|989898|1|9999021028|MR|Test|E|Lead 21028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021029|121029|989898|1|9999021029|MR|Test|E|Lead 21029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021030|121030|989898|1|9999021030|MR|Test|E|Lead 21030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021031|121031|989898|1|9999021031|MR|Test|E|Lead 21031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021032|121032|989898|1|9999021032|MR|Test|E|Lead 21032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021033|121033|989898|1|9999021033|MR|Test|E|Lead 21033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021034|121034|989898|1|9999021034|MR|Test|E|Lead 21034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021035|121035|989898|1|9999021035|MR|Test|E|Lead 21035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021036|121036|989898|1|9999021036|MR|Test|E|Lead 21036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021037|121037|989898|1|9999021037|MR|Test|E|Lead 21037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021038|121038|989898|1|9999021038|MR|Test|E|Lead 21038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021039|121039|989898|1|9999021039|MR|Test|E|Lead 21039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021040|121040|989898|1|9999021040|MR|Test|E|Lead 21040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021041|121041|989898|1|9999021041|MR|Test|E|Lead 21041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021042|121042|989898|1|9999021042|MR|Test|E|Lead 21042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021043|121043|989898|1|9999021043|MR|Test|E|Lead 21043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021044|121044|989898|1|9999021044|MR|Test|E|Lead 21044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021045|121045|989898|1|9999021045|MR|Test|E|Lead 21045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021046|121046|989898|1|9999021046|MR|Test|E|Lead 21046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021047|121047|989898|1|9999021047|MR|Test|E|Lead 21047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021048|121048|989898|1|9999021048|MR|Test|E|Lead 21048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021049|121049|989898|1|9999021049|MR|Test|E|Lead 21049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021050|121050|989898|1|9999021050|MR|Test|E|Lead 21050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021051|121051|989898|1|9999021051|MR|Test|E|Lead 21051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021052|121052|989898|1|9999021052|MR|Test|E|Lead 21052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021053|121053|989898|1|9999021053|MR|Test|E|Lead 21053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021054|121054|989898|1|9999021054|MR|Test|E|Lead 21054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021055|121055|989898|1|9999021055|MR|Test|E|Lead 21055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021056|121056|989898|1|9999021056|MR|Test|E|Lead 21056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021057|121057|989898|1|9999021057|MR|Test|E|Lead 21057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021058|121058|989898|1|9999021058|MR|Test|E|Lead 21058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021059|121059|989898|1|9999021059|MR|Test|E|Lead 21059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021060|121060|989898|1|9999021060|MR|Test|E|Lead 21060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021061|121061|989898|1|9999021061|MR|Test|E|Lead 21061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021062|121062|989898|1|9999021062|MR|Test|E|Lead 21062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021063|121063|989898|1|9999021063|MR|Test|E|Lead 21063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021064|121064|989898|1|9999021064|MR|Test|E|Lead 21064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021065|121065|989898|1|9999021065|MR|Test|E|Lead 21065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021066|121066|989898|1|9999021066|MR|Test|E|Lead 21066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021067|121067|989898|1|9999021067|MR|Test|E|Lead 21067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021068|121068|989898|1|9999021068|MR|Test|E|Lead 21068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021069|121069|989898|1|9999021069|MR|Test|E|Lead 21069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021070|121070|989898|1|9999021070|MR|Test|E|Lead 21070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021071|121071|989898|1|9999021071|MR|Test|E|Lead 21071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021072|121072|989898|1|9999021072|MR|Test|E|Lead 21072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021073|121073|989898|1|9999021073|MR|Test|E|Lead 21073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021074|121074|989898|1|9999021074|MR|Test|E|Lead 21074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021075|121075|989898|1|9999021075|MR|Test|E|Lead 21075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021076|121076|989898|1|9999021076|MR|Test|E|Lead 21076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021077|121077|989898|1|9999021077|MR|Test|E|Lead 21077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021078|121078|989898|1|9999021078|MR|Test|E|Lead 21078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021079|121079|989898|1|9999021079|MR|Test|E|Lead 21079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021080|121080|989898|1|9999021080|MR|Test|E|Lead 21080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021081|121081|989898|1|9999021081|MR|Test|E|Lead 21081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021082|121082|989898|1|9999021082|MR|Test|E|Lead 21082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021083|121083|989898|1|9999021083|MR|Test|E|Lead 21083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021084|121084|989898|1|9999021084|MR|Test|E|Lead 21084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021085|121085|989898|1|9999021085|MR|Test|E|Lead 21085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021086|121086|989898|1|9999021086|MR|Test|E|Lead 21086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021087|121087|989898|1|9999021087|MR|Test|E|Lead 21087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021088|121088|989898|1|9999021088|MR|Test|E|Lead 21088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021089|121089|989898|1|9999021089|MR|Test|E|Lead 21089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021090|121090|989898|1|9999021090|MR|Test|E|Lead 21090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021091|121091|989898|1|9999021091|MR|Test|E|Lead 21091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021092|121092|989898|1|9999021092|MR|Test|E|Lead 21092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021093|121093|989898|1|9999021093|MR|Test|E|Lead 21093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021094|121094|989898|1|9999021094|MR|Test|E|Lead 21094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021095|121095|989898|1|9999021095|MR|Test|E|Lead 21095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021096|121096|989898|1|9999021096|MR|Test|E|Lead 21096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021097|121097|989898|1|9999021097|MR|Test|E|Lead 21097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021098|121098|989898|1|9999021098|MR|Test|E|Lead 21098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021099|121099|989898|1|9999021099|MR|Test|E|Lead 21099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021100|121100|989898|1|9999021100|MR|Test|E|Lead 21100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021101|121101|989898|1|9999021101|MR|Test|E|Lead 21101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021102|121102|989898|1|9999021102|MR|Test|E|Lead 21102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021103|121103|989898|1|9999021103|MR|Test|E|Lead 21103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021104|121104|989898|1|9999021104|MR|Test|E|Lead 21104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021105|121105|989898|1|9999021105|MR|Test|E|Lead 21105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021106|121106|989898|1|9999021106|MR|Test|E|Lead 21106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021107|121107|989898|1|9999021107|MR|Test|E|Lead 21107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021108|121108|989898|1|9999021108|MR|Test|E|Lead 21108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021109|121109|989898|1|9999021109|MR|Test|E|Lead 21109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021110|121110|989898|1|9999021110|MR|Test|E|Lead 21110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021111|121111|989898|1|9999021111|MR|Test|E|Lead 21111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021112|121112|989898|1|9999021112|MR|Test|E|Lead 21112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021113|121113|989898|1|9999021113|MR|Test|E|Lead 21113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021114|121114|989898|1|9999021114|MR|Test|E|Lead 21114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021115|121115|989898|1|9999021115|MR|Test|E|Lead 21115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021116|121116|989898|1|9999021116|MR|Test|E|Lead 21116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021117|121117|989898|1|9999021117|MR|Test|E|Lead 21117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021118|121118|989898|1|9999021118|MR|Test|E|Lead 21118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021119|121119|989898|1|9999021119|MR|Test|E|Lead 21119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021120|121120|989898|1|9999021120|MR|Test|E|Lead 21120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021121|121121|989898|1|9999021121|MR|Test|E|Lead 21121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021122|121122|989898|1|9999021122|MR|Test|E|Lead 21122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021123|121123|989898|1|9999021123|MR|Test|E|Lead 21123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021124|121124|989898|1|9999021124|MR|Test|E|Lead 21124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021125|121125|989898|1|9999021125|MR|Test|E|Lead 21125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021126|121126|989898|1|9999021126|MR|Test|E|Lead 21126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021127|121127|989898|1|9999021127|MR|Test|E|Lead 21127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021128|121128|989898|1|9999021128|MR|Test|E|Lead 21128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021129|121129|989898|1|9999021129|MR|Test|E|Lead 21129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021130|121130|989898|1|9999021130|MR|Test|E|Lead 21130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021131|121131|989898|1|9999021131|MR|Test|E|Lead 21131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021132|121132|989898|1|9999021132|MR|Test|E|Lead 21132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021133|121133|989898|1|9999021133|MR|Test|E|Lead 21133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021134|121134|989898|1|9999021134|MR|Test|E|Lead 21134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021135|121135|989898|1|9999021135|MR|Test|E|Lead 21135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021136|121136|989898|1|9999021136|MR|Test|E|Lead 21136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021137|121137|989898|1|9999021137|MR|Test|E|Lead 21137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021138|121138|989898|1|9999021138|MR|Test|E|Lead 21138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021139|121139|989898|1|9999021139|MR|Test|E|Lead 21139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021140|121140|989898|1|9999021140|MR|Test|E|Lead 21140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021141|121141|989898|1|9999021141|MR|Test|E|Lead 21141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021142|121142|989898|1|9999021142|MR|Test|E|Lead 21142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021143|121143|989898|1|9999021143|MR|Test|E|Lead 21143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021144|121144|989898|1|9999021144|MR|Test|E|Lead 21144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021145|121145|989898|1|9999021145|MR|Test|E|Lead 21145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021146|121146|989898|1|9999021146|MR|Test|E|Lead 21146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021147|121147|989898|1|9999021147|MR|Test|E|Lead 21147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021148|121148|989898|1|9999021148|MR|Test|E|Lead 21148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021149|121149|989898|1|9999021149|MR|Test|E|Lead 21149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021150|121150|989898|1|9999021150|MR|Test|E|Lead 21150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021151|121151|989898|1|9999021151|MR|Test|E|Lead 21151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021152|121152|989898|1|9999021152|MR|Test|E|Lead 21152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021153|121153|989898|1|9999021153|MR|Test|E|Lead 21153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021154|121154|989898|1|9999021154|MR|Test|E|Lead 21154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021155|121155|989898|1|9999021155|MR|Test|E|Lead 21155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021156|121156|989898|1|9999021156|MR|Test|E|Lead 21156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021157|121157|989898|1|9999021157|MR|Test|E|Lead 21157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021158|121158|989898|1|9999021158|MR|Test|E|Lead 21158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021159|121159|989898|1|9999021159|MR|Test|E|Lead 21159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021160|121160|989898|1|9999021160|MR|Test|E|Lead 21160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021161|121161|989898|1|9999021161|MR|Test|E|Lead 21161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021162|121162|989898|1|9999021162|MR|Test|E|Lead 21162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021163|121163|989898|1|9999021163|MR|Test|E|Lead 21163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021164|121164|989898|1|9999021164|MR|Test|E|Lead 21164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021165|121165|989898|1|9999021165|MR|Test|E|Lead 21165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021166|121166|989898|1|9999021166|MR|Test|E|Lead 21166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021167|121167|989898|1|9999021167|MR|Test|E|Lead 21167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021168|121168|989898|1|9999021168|MR|Test|E|Lead 21168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021169|121169|989898|1|9999021169|MR|Test|E|Lead 21169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021170|121170|989898|1|9999021170|MR|Test|E|Lead 21170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021171|121171|989898|1|9999021171|MR|Test|E|Lead 21171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021172|121172|989898|1|9999021172|MR|Test|E|Lead 21172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021173|121173|989898|1|9999021173|MR|Test|E|Lead 21173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021174|121174|989898|1|9999021174|MR|Test|E|Lead 21174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021175|121175|989898|1|9999021175|MR|Test|E|Lead 21175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021176|121176|989898|1|9999021176|MR|Test|E|Lead 21176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021177|121177|989898|1|9999021177|MR|Test|E|Lead 21177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021178|121178|989898|1|9999021178|MR|Test|E|Lead 21178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021179|121179|989898|1|9999021179|MR|Test|E|Lead 21179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021180|121180|989898|1|9999021180|MR|Test|E|Lead 21180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021181|121181|989898|1|9999021181|MR|Test|E|Lead 21181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021182|121182|989898|1|9999021182|MR|Test|E|Lead 21182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021183|121183|989898|1|9999021183|MR|Test|E|Lead 21183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021184|121184|989898|1|9999021184|MR|Test|E|Lead 21184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021185|121185|989898|1|9999021185|MR|Test|E|Lead 21185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021186|121186|989898|1|9999021186|MR|Test|E|Lead 21186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021187|121187|989898|1|9999021187|MR|Test|E|Lead 21187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021188|121188|989898|1|9999021188|MR|Test|E|Lead 21188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021189|121189|989898|1|9999021189|MR|Test|E|Lead 21189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021190|121190|989898|1|9999021190|MR|Test|E|Lead 21190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021191|121191|989898|1|9999021191|MR|Test|E|Lead 21191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021192|121192|989898|1|9999021192|MR|Test|E|Lead 21192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021193|121193|989898|1|9999021193|MR|Test|E|Lead 21193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021194|121194|989898|1|9999021194|MR|Test|E|Lead 21194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021195|121195|989898|1|9999021195|MR|Test|E|Lead 21195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021196|121196|989898|1|9999021196|MR|Test|E|Lead 21196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021197|121197|989898|1|9999021197|MR|Test|E|Lead 21197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021198|121198|989898|1|9999021198|MR|Test|E|Lead 21198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021199|121199|989898|1|9999021199|MR|Test|E|Lead 21199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021200|121200|989898|1|9999021200|MR|Test|E|Lead 21200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021201|121201|989898|1|9999021201|MR|Test|E|Lead 21201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021202|121202|989898|1|9999021202|MR|Test|E|Lead 21202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021203|121203|989898|1|9999021203|MR|Test|E|Lead 21203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021204|121204|989898|1|9999021204|MR|Test|E|Lead 21204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021205|121205|989898|1|9999021205|MR|Test|E|Lead 21205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021206|121206|989898|1|9999021206|MR|Test|E|Lead 21206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021207|121207|989898|1|9999021207|MR|Test|E|Lead 21207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021208|121208|989898|1|9999021208|MR|Test|E|Lead 21208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021209|121209|989898|1|9999021209|MR|Test|E|Lead 21209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021210|121210|989898|1|9999021210|MR|Test|E|Lead 21210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021211|121211|989898|1|9999021211|MR|Test|E|Lead 21211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021212|121212|989898|1|9999021212|MR|Test|E|Lead 21212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021213|121213|989898|1|9999021213|MR|Test|E|Lead 21213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021214|121214|989898|1|9999021214|MR|Test|E|Lead 21214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021215|121215|989898|1|9999021215|MR|Test|E|Lead 21215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021216|121216|989898|1|9999021216|MR|Test|E|Lead 21216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021217|121217|989898|1|9999021217|MR|Test|E|Lead 21217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021218|121218|989898|1|9999021218|MR|Test|E|Lead 21218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021219|121219|989898|1|9999021219|MR|Test|E|Lead 21219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021220|121220|989898|1|9999021220|MR|Test|E|Lead 21220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021221|121221|989898|1|9999021221|MR|Test|E|Lead 21221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021222|121222|989898|1|9999021222|MR|Test|E|Lead 21222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021223|121223|989898|1|9999021223|MR|Test|E|Lead 21223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021224|121224|989898|1|9999021224|MR|Test|E|Lead 21224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021225|121225|989898|1|9999021225|MR|Test|E|Lead 21225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021226|121226|989898|1|9999021226|MR|Test|E|Lead 21226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021227|121227|989898|1|9999021227|MR|Test|E|Lead 21227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021228|121228|989898|1|9999021228|MR|Test|E|Lead 21228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021229|121229|989898|1|9999021229|MR|Test|E|Lead 21229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021230|121230|989898|1|9999021230|MR|Test|E|Lead 21230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021231|121231|989898|1|9999021231|MR|Test|E|Lead 21231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021232|121232|989898|1|9999021232|MR|Test|E|Lead 21232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021233|121233|989898|1|9999021233|MR|Test|E|Lead 21233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021234|121234|989898|1|9999021234|MR|Test|E|Lead 21234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021235|121235|989898|1|9999021235|MR|Test|E|Lead 21235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021236|121236|989898|1|9999021236|MR|Test|E|Lead 21236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021237|121237|989898|1|9999021237|MR|Test|E|Lead 21237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021238|121238|989898|1|9999021238|MR|Test|E|Lead 21238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021239|121239|989898|1|9999021239|MR|Test|E|Lead 21239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021240|121240|989898|1|9999021240|MR|Test|E|Lead 21240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021241|121241|989898|1|9999021241|MR|Test|E|Lead 21241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021242|121242|989898|1|9999021242|MR|Test|E|Lead 21242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021243|121243|989898|1|9999021243|MR|Test|E|Lead 21243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021244|121244|989898|1|9999021244|MR|Test|E|Lead 21244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021245|121245|989898|1|9999021245|MR|Test|E|Lead 21245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021246|121246|989898|1|9999021246|MR|Test|E|Lead 21246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021247|121247|989898|1|9999021247|MR|Test|E|Lead 21247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021248|121248|989898|1|9999021248|MR|Test|E|Lead 21248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021249|121249|989898|1|9999021249|MR|Test|E|Lead 21249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021250|121250|989898|1|9999021250|MR|Test|E|Lead 21250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021251|121251|989898|1|9999021251|MR|Test|E|Lead 21251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021252|121252|989898|1|9999021252|MR|Test|E|Lead 21252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021253|121253|989898|1|9999021253|MR|Test|E|Lead 21253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021254|121254|989898|1|9999021254|MR|Test|E|Lead 21254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021255|121255|989898|1|9999021255|MR|Test|E|Lead 21255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021256|121256|989898|1|9999021256|MR|Test|E|Lead 21256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021257|121257|989898|1|9999021257|MR|Test|E|Lead 21257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021258|121258|989898|1|9999021258|MR|Test|E|Lead 21258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021259|121259|989898|1|9999021259|MR|Test|E|Lead 21259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021260|121260|989898|1|9999021260|MR|Test|E|Lead 21260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021261|121261|989898|1|9999021261|MR|Test|E|Lead 21261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021262|121262|989898|1|9999021262|MR|Test|E|Lead 21262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021263|121263|989898|1|9999021263|MR|Test|E|Lead 21263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021264|121264|989898|1|9999021264|MR|Test|E|Lead 21264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021265|121265|989898|1|9999021265|MR|Test|E|Lead 21265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021266|121266|989898|1|9999021266|MR|Test|E|Lead 21266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021267|121267|989898|1|9999021267|MR|Test|E|Lead 21267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021268|121268|989898|1|9999021268|MR|Test|E|Lead 21268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021269|121269|989898|1|9999021269|MR|Test|E|Lead 21269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021270|121270|989898|1|9999021270|MR|Test|E|Lead 21270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021271|121271|989898|1|9999021271|MR|Test|E|Lead 21271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021272|121272|989898|1|9999021272|MR|Test|E|Lead 21272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021273|121273|989898|1|9999021273|MR|Test|E|Lead 21273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021274|121274|989898|1|9999021274|MR|Test|E|Lead 21274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021275|121275|989898|1|9999021275|MR|Test|E|Lead 21275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021276|121276|989898|1|9999021276|MR|Test|E|Lead 21276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021277|121277|989898|1|9999021277|MR|Test|E|Lead 21277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021278|121278|989898|1|9999021278|MR|Test|E|Lead 21278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021279|121279|989898|1|9999021279|MR|Test|E|Lead 21279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021280|121280|989898|1|9999021280|MR|Test|E|Lead 21280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021281|121281|989898|1|9999021281|MR|Test|E|Lead 21281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021282|121282|989898|1|9999021282|MR|Test|E|Lead 21282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021283|121283|989898|1|9999021283|MR|Test|E|Lead 21283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021284|121284|989898|1|9999021284|MR|Test|E|Lead 21284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021285|121285|989898|1|9999021285|MR|Test|E|Lead 21285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021286|121286|989898|1|9999021286|MR|Test|E|Lead 21286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021287|121287|989898|1|9999021287|MR|Test|E|Lead 21287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021288|121288|989898|1|9999021288|MR|Test|E|Lead 21288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021289|121289|989898|1|9999021289|MR|Test|E|Lead 21289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021290|121290|989898|1|9999021290|MR|Test|E|Lead 21290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021291|121291|989898|1|9999021291|MR|Test|E|Lead 21291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021292|121292|989898|1|9999021292|MR|Test|E|Lead 21292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021293|121293|989898|1|9999021293|MR|Test|E|Lead 21293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021294|121294|989898|1|9999021294|MR|Test|E|Lead 21294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021295|121295|989898|1|9999021295|MR|Test|E|Lead 21295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021296|121296|989898|1|9999021296|MR|Test|E|Lead 21296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021297|121297|989898|1|9999021297|MR|Test|E|Lead 21297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021298|121298|989898|1|9999021298|MR|Test|E|Lead 21298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021299|121299|989898|1|9999021299|MR|Test|E|Lead 21299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021300|121300|989898|1|9999021300|MR|Test|E|Lead 21300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021301|121301|989898|1|9999021301|MR|Test|E|Lead 21301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021302|121302|989898|1|9999021302|MR|Test|E|Lead 21302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021303|121303|989898|1|9999021303|MR|Test|E|Lead 21303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021304|121304|989898|1|9999021304|MR|Test|E|Lead 21304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021305|121305|989898|1|9999021305|MR|Test|E|Lead 21305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021306|121306|989898|1|9999021306|MR|Test|E|Lead 21306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021307|121307|989898|1|9999021307|MR|Test|E|Lead 21307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021308|121308|989898|1|9999021308|MR|Test|E|Lead 21308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021309|121309|989898|1|9999021309|MR|Test|E|Lead 21309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021310|121310|989898|1|9999021310|MR|Test|E|Lead 21310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021311|121311|989898|1|9999021311|MR|Test|E|Lead 21311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021312|121312|989898|1|9999021312|MR|Test|E|Lead 21312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021313|121313|989898|1|9999021313|MR|Test|E|Lead 21313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021314|121314|989898|1|9999021314|MR|Test|E|Lead 21314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021315|121315|989898|1|9999021315|MR|Test|E|Lead 21315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021316|121316|989898|1|9999021316|MR|Test|E|Lead 21316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021317|121317|989898|1|9999021317|MR|Test|E|Lead 21317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021318|121318|989898|1|9999021318|MR|Test|E|Lead 21318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021319|121319|989898|1|9999021319|MR|Test|E|Lead 21319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021320|121320|989898|1|9999021320|MR|Test|E|Lead 21320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021321|121321|989898|1|9999021321|MR|Test|E|Lead 21321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021322|121322|989898|1|9999021322|MR|Test|E|Lead 21322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021323|121323|989898|1|9999021323|MR|Test|E|Lead 21323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021324|121324|989898|1|9999021324|MR|Test|E|Lead 21324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021325|121325|989898|1|9999021325|MR|Test|E|Lead 21325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021326|121326|989898|1|9999021326|MR|Test|E|Lead 21326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021327|121327|989898|1|9999021327|MR|Test|E|Lead 21327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021328|121328|989898|1|9999021328|MR|Test|E|Lead 21328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021329|121329|989898|1|9999021329|MR|Test|E|Lead 21329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021330|121330|989898|1|9999021330|MR|Test|E|Lead 21330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021331|121331|989898|1|9999021331|MR|Test|E|Lead 21331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021332|121332|989898|1|9999021332|MR|Test|E|Lead 21332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021333|121333|989898|1|9999021333|MR|Test|E|Lead 21333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021334|121334|989898|1|9999021334|MR|Test|E|Lead 21334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021335|121335|989898|1|9999021335|MR|Test|E|Lead 21335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021336|121336|989898|1|9999021336|MR|Test|E|Lead 21336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021337|121337|989898|1|9999021337|MR|Test|E|Lead 21337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021338|121338|989898|1|9999021338|MR|Test|E|Lead 21338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021339|121339|989898|1|9999021339|MR|Test|E|Lead 21339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021340|121340|989898|1|9999021340|MR|Test|E|Lead 21340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021341|121341|989898|1|9999021341|MR|Test|E|Lead 21341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021342|121342|989898|1|9999021342|MR|Test|E|Lead 21342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021343|121343|989898|1|9999021343|MR|Test|E|Lead 21343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021344|121344|989898|1|9999021344|MR|Test|E|Lead 21344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021345|121345|989898|1|9999021345|MR|Test|E|Lead 21345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021346|121346|989898|1|9999021346|MR|Test|E|Lead 21346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021347|121347|989898|1|9999021347|MR|Test|E|Lead 21347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021348|121348|989898|1|9999021348|MR|Test|E|Lead 21348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021349|121349|989898|1|9999021349|MR|Test|E|Lead 21349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021350|121350|989898|1|9999021350|MR|Test|E|Lead 21350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021351|121351|989898|1|9999021351|MR|Test|E|Lead 21351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021352|121352|989898|1|9999021352|MR|Test|E|Lead 21352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021353|121353|989898|1|9999021353|MR|Test|E|Lead 21353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021354|121354|989898|1|9999021354|MR|Test|E|Lead 21354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021355|121355|989898|1|9999021355|MR|Test|E|Lead 21355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021356|121356|989898|1|9999021356|MR|Test|E|Lead 21356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021357|121357|989898|1|9999021357|MR|Test|E|Lead 21357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021358|121358|989898|1|9999021358|MR|Test|E|Lead 21358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021359|121359|989898|1|9999021359|MR|Test|E|Lead 21359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021360|121360|989898|1|9999021360|MR|Test|E|Lead 21360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021361|121361|989898|1|9999021361|MR|Test|E|Lead 21361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021362|121362|989898|1|9999021362|MR|Test|E|Lead 21362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021363|121363|989898|1|9999021363|MR|Test|E|Lead 21363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021364|121364|989898|1|9999021364|MR|Test|E|Lead 21364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021365|121365|989898|1|9999021365|MR|Test|E|Lead 21365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021366|121366|989898|1|9999021366|MR|Test|E|Lead 21366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021367|121367|989898|1|9999021367|MR|Test|E|Lead 21367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021368|121368|989898|1|9999021368|MR|Test|E|Lead 21368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021369|121369|989898|1|9999021369|MR|Test|E|Lead 21369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021370|121370|989898|1|9999021370|MR|Test|E|Lead 21370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021371|121371|989898|1|9999021371|MR|Test|E|Lead 21371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021372|121372|989898|1|9999021372|MR|Test|E|Lead 21372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021373|121373|989898|1|9999021373|MR|Test|E|Lead 21373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021374|121374|989898|1|9999021374|MR|Test|E|Lead 21374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021375|121375|989898|1|9999021375|MR|Test|E|Lead 21375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021376|121376|989898|1|9999021376|MR|Test|E|Lead 21376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021377|121377|989898|1|9999021377|MR|Test|E|Lead 21377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021378|121378|989898|1|9999021378|MR|Test|E|Lead 21378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021379|121379|989898|1|9999021379|MR|Test|E|Lead 21379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021380|121380|989898|1|9999021380|MR|Test|E|Lead 21380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021381|121381|989898|1|9999021381|MR|Test|E|Lead 21381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021382|121382|989898|1|9999021382|MR|Test|E|Lead 21382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021383|121383|989898|1|9999021383|MR|Test|E|Lead 21383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021384|121384|989898|1|9999021384|MR|Test|E|Lead 21384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021385|121385|989898|1|9999021385|MR|Test|E|Lead 21385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021386|121386|989898|1|9999021386|MR|Test|E|Lead 21386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021387|121387|989898|1|9999021387|MR|Test|E|Lead 21387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021388|121388|989898|1|9999021388|MR|Test|E|Lead 21388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021389|121389|989898|1|9999021389|MR|Test|E|Lead 21389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021390|121390|989898|1|9999021390|MR|Test|E|Lead 21390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021391|121391|989898|1|9999021391|MR|Test|E|Lead 21391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021392|121392|989898|1|9999021392|MR|Test|E|Lead 21392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021393|121393|989898|1|9999021393|MR|Test|E|Lead 21393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021394|121394|989898|1|9999021394|MR|Test|E|Lead 21394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021395|121395|989898|1|9999021395|MR|Test|E|Lead 21395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021396|121396|989898|1|9999021396|MR|Test|E|Lead 21396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021397|121397|989898|1|9999021397|MR|Test|E|Lead 21397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021398|121398|989898|1|9999021398|MR|Test|E|Lead 21398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021399|121399|989898|1|9999021399|MR|Test|E|Lead 21399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021400|121400|989898|1|9999021400|MR|Test|E|Lead 21400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021401|121401|989898|1|9999021401|MR|Test|E|Lead 21401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021402|121402|989898|1|9999021402|MR|Test|E|Lead 21402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021403|121403|989898|1|9999021403|MR|Test|E|Lead 21403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021404|121404|989898|1|9999021404|MR|Test|E|Lead 21404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021405|121405|989898|1|9999021405|MR|Test|E|Lead 21405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021406|121406|989898|1|9999021406|MR|Test|E|Lead 21406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021407|121407|989898|1|9999021407|MR|Test|E|Lead 21407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021408|121408|989898|1|9999021408|MR|Test|E|Lead 21408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021409|121409|989898|1|9999021409|MR|Test|E|Lead 21409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021410|121410|989898|1|9999021410|MR|Test|E|Lead 21410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021411|121411|989898|1|9999021411|MR|Test|E|Lead 21411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021412|121412|989898|1|9999021412|MR|Test|E|Lead 21412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021413|121413|989898|1|9999021413|MR|Test|E|Lead 21413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021414|121414|989898|1|9999021414|MR|Test|E|Lead 21414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021415|121415|989898|1|9999021415|MR|Test|E|Lead 21415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021416|121416|989898|1|9999021416|MR|Test|E|Lead 21416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021417|121417|989898|1|9999021417|MR|Test|E|Lead 21417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021418|121418|989898|1|9999021418|MR|Test|E|Lead 21418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021419|121419|989898|1|9999021419|MR|Test|E|Lead 21419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021420|121420|989898|1|9999021420|MR|Test|E|Lead 21420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021421|121421|989898|1|9999021421|MR|Test|E|Lead 21421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021422|121422|989898|1|9999021422|MR|Test|E|Lead 21422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021423|121423|989898|1|9999021423|MR|Test|E|Lead 21423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021424|121424|989898|1|9999021424|MR|Test|E|Lead 21424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021425|121425|989898|1|9999021425|MR|Test|E|Lead 21425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021426|121426|989898|1|9999021426|MR|Test|E|Lead 21426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021427|121427|989898|1|9999021427|MR|Test|E|Lead 21427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021428|121428|989898|1|9999021428|MR|Test|E|Lead 21428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021429|121429|989898|1|9999021429|MR|Test|E|Lead 21429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021430|121430|989898|1|9999021430|MR|Test|E|Lead 21430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021431|121431|989898|1|9999021431|MR|Test|E|Lead 21431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021432|121432|989898|1|9999021432|MR|Test|E|Lead 21432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021433|121433|989898|1|9999021433|MR|Test|E|Lead 21433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021434|121434|989898|1|9999021434|MR|Test|E|Lead 21434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021435|121435|989898|1|9999021435|MR|Test|E|Lead 21435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021436|121436|989898|1|9999021436|MR|Test|E|Lead 21436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021437|121437|989898|1|9999021437|MR|Test|E|Lead 21437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021438|121438|989898|1|9999021438|MR|Test|E|Lead 21438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021439|121439|989898|1|9999021439|MR|Test|E|Lead 21439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021440|121440|989898|1|9999021440|MR|Test|E|Lead 21440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021441|121441|989898|1|9999021441|MR|Test|E|Lead 21441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021442|121442|989898|1|9999021442|MR|Test|E|Lead 21442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021443|121443|989898|1|9999021443|MR|Test|E|Lead 21443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021444|121444|989898|1|9999021444|MR|Test|E|Lead 21444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021445|121445|989898|1|9999021445|MR|Test|E|Lead 21445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021446|121446|989898|1|9999021446|MR|Test|E|Lead 21446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021447|121447|989898|1|9999021447|MR|Test|E|Lead 21447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021448|121448|989898|1|9999021448|MR|Test|E|Lead 21448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021449|121449|989898|1|9999021449|MR|Test|E|Lead 21449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021450|121450|989898|1|9999021450|MR|Test|E|Lead 21450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021451|121451|989898|1|9999021451|MR|Test|E|Lead 21451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021452|121452|989898|1|9999021452|MR|Test|E|Lead 21452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021453|121453|989898|1|9999021453|MR|Test|E|Lead 21453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021454|121454|989898|1|9999021454|MR|Test|E|Lead 21454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021455|121455|989898|1|9999021455|MR|Test|E|Lead 21455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021456|121456|989898|1|9999021456|MR|Test|E|Lead 21456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021457|121457|989898|1|9999021457|MR|Test|E|Lead 21457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021458|121458|989898|1|9999021458|MR|Test|E|Lead 21458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021459|121459|989898|1|9999021459|MR|Test|E|Lead 21459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021460|121460|989898|1|9999021460|MR|Test|E|Lead 21460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021461|121461|989898|1|9999021461|MR|Test|E|Lead 21461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021462|121462|989898|1|9999021462|MR|Test|E|Lead 21462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021463|121463|989898|1|9999021463|MR|Test|E|Lead 21463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021464|121464|989898|1|9999021464|MR|Test|E|Lead 21464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021465|121465|989898|1|9999021465|MR|Test|E|Lead 21465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021466|121466|989898|1|9999021466|MR|Test|E|Lead 21466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021467|121467|989898|1|9999021467|MR|Test|E|Lead 21467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021468|121468|989898|1|9999021468|MR|Test|E|Lead 21468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021469|121469|989898|1|9999021469|MR|Test|E|Lead 21469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021470|121470|989898|1|9999021470|MR|Test|E|Lead 21470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021471|121471|989898|1|9999021471|MR|Test|E|Lead 21471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021472|121472|989898|1|9999021472|MR|Test|E|Lead 21472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021473|121473|989898|1|9999021473|MR|Test|E|Lead 21473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021474|121474|989898|1|9999021474|MR|Test|E|Lead 21474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021475|121475|989898|1|9999021475|MR|Test|E|Lead 21475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021476|121476|989898|1|9999021476|MR|Test|E|Lead 21476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021477|121477|989898|1|9999021477|MR|Test|E|Lead 21477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021478|121478|989898|1|9999021478|MR|Test|E|Lead 21478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021479|121479|989898|1|9999021479|MR|Test|E|Lead 21479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021480|121480|989898|1|9999021480|MR|Test|E|Lead 21480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021481|121481|989898|1|9999021481|MR|Test|E|Lead 21481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021482|121482|989898|1|9999021482|MR|Test|E|Lead 21482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021483|121483|989898|1|9999021483|MR|Test|E|Lead 21483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021484|121484|989898|1|9999021484|MR|Test|E|Lead 21484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021485|121485|989898|1|9999021485|MR|Test|E|Lead 21485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021486|121486|989898|1|9999021486|MR|Test|E|Lead 21486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021487|121487|989898|1|9999021487|MR|Test|E|Lead 21487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021488|121488|989898|1|9999021488|MR|Test|E|Lead 21488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021489|121489|989898|1|9999021489|MR|Test|E|Lead 21489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021490|121490|989898|1|9999021490|MR|Test|E|Lead 21490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021491|121491|989898|1|9999021491|MR|Test|E|Lead 21491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021492|121492|989898|1|9999021492|MR|Test|E|Lead 21492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021493|121493|989898|1|9999021493|MR|Test|E|Lead 21493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021494|121494|989898|1|9999021494|MR|Test|E|Lead 21494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021495|121495|989898|1|9999021495|MR|Test|E|Lead 21495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021496|121496|989898|1|9999021496|MR|Test|E|Lead 21496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021497|121497|989898|1|9999021497|MR|Test|E|Lead 21497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021498|121498|989898|1|9999021498|MR|Test|E|Lead 21498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021499|121499|989898|1|9999021499|MR|Test|E|Lead 21499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021500|121500|989898|1|9999021500|MR|Test|E|Lead 21500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021501|121501|989898|1|9999021501|MR|Test|E|Lead 21501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021502|121502|989898|1|9999021502|MR|Test|E|Lead 21502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021503|121503|989898|1|9999021503|MR|Test|E|Lead 21503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021504|121504|989898|1|9999021504|MR|Test|E|Lead 21504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021505|121505|989898|1|9999021505|MR|Test|E|Lead 21505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021506|121506|989898|1|9999021506|MR|Test|E|Lead 21506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021507|121507|989898|1|9999021507|MR|Test|E|Lead 21507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021508|121508|989898|1|9999021508|MR|Test|E|Lead 21508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021509|121509|989898|1|9999021509|MR|Test|E|Lead 21509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021510|121510|989898|1|9999021510|MR|Test|E|Lead 21510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021511|121511|989898|1|9999021511|MR|Test|E|Lead 21511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021512|121512|989898|1|9999021512|MR|Test|E|Lead 21512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021513|121513|989898|1|9999021513|MR|Test|E|Lead 21513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021514|121514|989898|1|9999021514|MR|Test|E|Lead 21514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021515|121515|989898|1|9999021515|MR|Test|E|Lead 21515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021516|121516|989898|1|9999021516|MR|Test|E|Lead 21516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021517|121517|989898|1|9999021517|MR|Test|E|Lead 21517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021518|121518|989898|1|9999021518|MR|Test|E|Lead 21518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021519|121519|989898|1|9999021519|MR|Test|E|Lead 21519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021520|121520|989898|1|9999021520|MR|Test|E|Lead 21520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021521|121521|989898|1|9999021521|MR|Test|E|Lead 21521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021522|121522|989898|1|9999021522|MR|Test|E|Lead 21522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021523|121523|989898|1|9999021523|MR|Test|E|Lead 21523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021524|121524|989898|1|9999021524|MR|Test|E|Lead 21524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021525|121525|989898|1|9999021525|MR|Test|E|Lead 21525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021526|121526|989898|1|9999021526|MR|Test|E|Lead 21526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021527|121527|989898|1|9999021527|MR|Test|E|Lead 21527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021528|121528|989898|1|9999021528|MR|Test|E|Lead 21528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021529|121529|989898|1|9999021529|MR|Test|E|Lead 21529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021530|121530|989898|1|9999021530|MR|Test|E|Lead 21530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021531|121531|989898|1|9999021531|MR|Test|E|Lead 21531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021532|121532|989898|1|9999021532|MR|Test|E|Lead 21532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021533|121533|989898|1|9999021533|MR|Test|E|Lead 21533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021534|121534|989898|1|9999021534|MR|Test|E|Lead 21534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021535|121535|989898|1|9999021535|MR|Test|E|Lead 21535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021536|121536|989898|1|9999021536|MR|Test|E|Lead 21536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021537|121537|989898|1|9999021537|MR|Test|E|Lead 21537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021538|121538|989898|1|9999021538|MR|Test|E|Lead 21538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021539|121539|989898|1|9999021539|MR|Test|E|Lead 21539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021540|121540|989898|1|9999021540|MR|Test|E|Lead 21540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021541|121541|989898|1|9999021541|MR|Test|E|Lead 21541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021542|121542|989898|1|9999021542|MR|Test|E|Lead 21542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021543|121543|989898|1|9999021543|MR|Test|E|Lead 21543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021544|121544|989898|1|9999021544|MR|Test|E|Lead 21544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021545|121545|989898|1|9999021545|MR|Test|E|Lead 21545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021546|121546|989898|1|9999021546|MR|Test|E|Lead 21546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021547|121547|989898|1|9999021547|MR|Test|E|Lead 21547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021548|121548|989898|1|9999021548|MR|Test|E|Lead 21548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021549|121549|989898|1|9999021549|MR|Test|E|Lead 21549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021550|121550|989898|1|9999021550|MR|Test|E|Lead 21550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021551|121551|989898|1|9999021551|MR|Test|E|Lead 21551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021552|121552|989898|1|9999021552|MR|Test|E|Lead 21552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021553|121553|989898|1|9999021553|MR|Test|E|Lead 21553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021554|121554|989898|1|9999021554|MR|Test|E|Lead 21554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021555|121555|989898|1|9999021555|MR|Test|E|Lead 21555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021556|121556|989898|1|9999021556|MR|Test|E|Lead 21556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021557|121557|989898|1|9999021557|MR|Test|E|Lead 21557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021558|121558|989898|1|9999021558|MR|Test|E|Lead 21558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021559|121559|989898|1|9999021559|MR|Test|E|Lead 21559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021560|121560|989898|1|9999021560|MR|Test|E|Lead 21560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021561|121561|989898|1|9999021561|MR|Test|E|Lead 21561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021562|121562|989898|1|9999021562|MR|Test|E|Lead 21562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021563|121563|989898|1|9999021563|MR|Test|E|Lead 21563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021564|121564|989898|1|9999021564|MR|Test|E|Lead 21564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021565|121565|989898|1|9999021565|MR|Test|E|Lead 21565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021566|121566|989898|1|9999021566|MR|Test|E|Lead 21566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021567|121567|989898|1|9999021567|MR|Test|E|Lead 21567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021568|121568|989898|1|9999021568|MR|Test|E|Lead 21568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021569|121569|989898|1|9999021569|MR|Test|E|Lead 21569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021570|121570|989898|1|9999021570|MR|Test|E|Lead 21570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021571|121571|989898|1|9999021571|MR|Test|E|Lead 21571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021572|121572|989898|1|9999021572|MR|Test|E|Lead 21572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021573|121573|989898|1|9999021573|MR|Test|E|Lead 21573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021574|121574|989898|1|9999021574|MR|Test|E|Lead 21574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021575|121575|989898|1|9999021575|MR|Test|E|Lead 21575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021576|121576|989898|1|9999021576|MR|Test|E|Lead 21576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021577|121577|989898|1|9999021577|MR|Test|E|Lead 21577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021578|121578|989898|1|9999021578|MR|Test|E|Lead 21578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021579|121579|989898|1|9999021579|MR|Test|E|Lead 21579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021580|121580|989898|1|9999021580|MR|Test|E|Lead 21580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021581|121581|989898|1|9999021581|MR|Test|E|Lead 21581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021582|121582|989898|1|9999021582|MR|Test|E|Lead 21582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021583|121583|989898|1|9999021583|MR|Test|E|Lead 21583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021584|121584|989898|1|9999021584|MR|Test|E|Lead 21584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021585|121585|989898|1|9999021585|MR|Test|E|Lead 21585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021586|121586|989898|1|9999021586|MR|Test|E|Lead 21586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021587|121587|989898|1|9999021587|MR|Test|E|Lead 21587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021588|121588|989898|1|9999021588|MR|Test|E|Lead 21588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021589|121589|989898|1|9999021589|MR|Test|E|Lead 21589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021590|121590|989898|1|9999021590|MR|Test|E|Lead 21590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021591|121591|989898|1|9999021591|MR|Test|E|Lead 21591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021592|121592|989898|1|9999021592|MR|Test|E|Lead 21592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021593|121593|989898|1|9999021593|MR|Test|E|Lead 21593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021594|121594|989898|1|9999021594|MR|Test|E|Lead 21594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021595|121595|989898|1|9999021595|MR|Test|E|Lead 21595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021596|121596|989898|1|9999021596|MR|Test|E|Lead 21596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021597|121597|989898|1|9999021597|MR|Test|E|Lead 21597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021598|121598|989898|1|9999021598|MR|Test|E|Lead 21598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021599|121599|989898|1|9999021599|MR|Test|E|Lead 21599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021600|121600|989898|1|9999021600|MR|Test|E|Lead 21600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021601|121601|989898|1|9999021601|MR|Test|E|Lead 21601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021602|121602|989898|1|9999021602|MR|Test|E|Lead 21602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021603|121603|989898|1|9999021603|MR|Test|E|Lead 21603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021604|121604|989898|1|9999021604|MR|Test|E|Lead 21604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021605|121605|989898|1|9999021605|MR|Test|E|Lead 21605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021606|121606|989898|1|9999021606|MR|Test|E|Lead 21606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021607|121607|989898|1|9999021607|MR|Test|E|Lead 21607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021608|121608|989898|1|9999021608|MR|Test|E|Lead 21608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021609|121609|989898|1|9999021609|MR|Test|E|Lead 21609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021610|121610|989898|1|9999021610|MR|Test|E|Lead 21610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021611|121611|989898|1|9999021611|MR|Test|E|Lead 21611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021612|121612|989898|1|9999021612|MR|Test|E|Lead 21612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021613|121613|989898|1|9999021613|MR|Test|E|Lead 21613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021614|121614|989898|1|9999021614|MR|Test|E|Lead 21614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021615|121615|989898|1|9999021615|MR|Test|E|Lead 21615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021616|121616|989898|1|9999021616|MR|Test|E|Lead 21616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021617|121617|989898|1|9999021617|MR|Test|E|Lead 21617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021618|121618|989898|1|9999021618|MR|Test|E|Lead 21618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021619|121619|989898|1|9999021619|MR|Test|E|Lead 21619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021620|121620|989898|1|9999021620|MR|Test|E|Lead 21620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021621|121621|989898|1|9999021621|MR|Test|E|Lead 21621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021622|121622|989898|1|9999021622|MR|Test|E|Lead 21622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021623|121623|989898|1|9999021623|MR|Test|E|Lead 21623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021624|121624|989898|1|9999021624|MR|Test|E|Lead 21624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021625|121625|989898|1|9999021625|MR|Test|E|Lead 21625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021626|121626|989898|1|9999021626|MR|Test|E|Lead 21626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021627|121627|989898|1|9999021627|MR|Test|E|Lead 21627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021628|121628|989898|1|9999021628|MR|Test|E|Lead 21628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021629|121629|989898|1|9999021629|MR|Test|E|Lead 21629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021630|121630|989898|1|9999021630|MR|Test|E|Lead 21630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021631|121631|989898|1|9999021631|MR|Test|E|Lead 21631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021632|121632|989898|1|9999021632|MR|Test|E|Lead 21632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021633|121633|989898|1|9999021633|MR|Test|E|Lead 21633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021634|121634|989898|1|9999021634|MR|Test|E|Lead 21634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021635|121635|989898|1|9999021635|MR|Test|E|Lead 21635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021636|121636|989898|1|9999021636|MR|Test|E|Lead 21636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021637|121637|989898|1|9999021637|MR|Test|E|Lead 21637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021638|121638|989898|1|9999021638|MR|Test|E|Lead 21638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021639|121639|989898|1|9999021639|MR|Test|E|Lead 21639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021640|121640|989898|1|9999021640|MR|Test|E|Lead 21640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021641|121641|989898|1|9999021641|MR|Test|E|Lead 21641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021642|121642|989898|1|9999021642|MR|Test|E|Lead 21642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021643|121643|989898|1|9999021643|MR|Test|E|Lead 21643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021644|121644|989898|1|9999021644|MR|Test|E|Lead 21644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021645|121645|989898|1|9999021645|MR|Test|E|Lead 21645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021646|121646|989898|1|9999021646|MR|Test|E|Lead 21646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021647|121647|989898|1|9999021647|MR|Test|E|Lead 21647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021648|121648|989898|1|9999021648|MR|Test|E|Lead 21648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021649|121649|989898|1|9999021649|MR|Test|E|Lead 21649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021650|121650|989898|1|9999021650|MR|Test|E|Lead 21650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021651|121651|989898|1|9999021651|MR|Test|E|Lead 21651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021652|121652|989898|1|9999021652|MR|Test|E|Lead 21652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021653|121653|989898|1|9999021653|MR|Test|E|Lead 21653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021654|121654|989898|1|9999021654|MR|Test|E|Lead 21654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021655|121655|989898|1|9999021655|MR|Test|E|Lead 21655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021656|121656|989898|1|9999021656|MR|Test|E|Lead 21656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021657|121657|989898|1|9999021657|MR|Test|E|Lead 21657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021658|121658|989898|1|9999021658|MR|Test|E|Lead 21658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021659|121659|989898|1|9999021659|MR|Test|E|Lead 21659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021660|121660|989898|1|9999021660|MR|Test|E|Lead 21660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021661|121661|989898|1|9999021661|MR|Test|E|Lead 21661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021662|121662|989898|1|9999021662|MR|Test|E|Lead 21662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021663|121663|989898|1|9999021663|MR|Test|E|Lead 21663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021664|121664|989898|1|9999021664|MR|Test|E|Lead 21664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021665|121665|989898|1|9999021665|MR|Test|E|Lead 21665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021666|121666|989898|1|9999021666|MR|Test|E|Lead 21666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021667|121667|989898|1|9999021667|MR|Test|E|Lead 21667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021668|121668|989898|1|9999021668|MR|Test|E|Lead 21668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021669|121669|989898|1|9999021669|MR|Test|E|Lead 21669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021670|121670|989898|1|9999021670|MR|Test|E|Lead 21670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021671|121671|989898|1|9999021671|MR|Test|E|Lead 21671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021672|121672|989898|1|9999021672|MR|Test|E|Lead 21672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021673|121673|989898|1|9999021673|MR|Test|E|Lead 21673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021674|121674|989898|1|9999021674|MR|Test|E|Lead 21674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021675|121675|989898|1|9999021675|MR|Test|E|Lead 21675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021676|121676|989898|1|9999021676|MR|Test|E|Lead 21676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021677|121677|989898|1|9999021677|MR|Test|E|Lead 21677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021678|121678|989898|1|9999021678|MR|Test|E|Lead 21678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021679|121679|989898|1|9999021679|MR|Test|E|Lead 21679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021680|121680|989898|1|9999021680|MR|Test|E|Lead 21680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021681|121681|989898|1|9999021681|MR|Test|E|Lead 21681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021682|121682|989898|1|9999021682|MR|Test|E|Lead 21682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021683|121683|989898|1|9999021683|MR|Test|E|Lead 21683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021684|121684|989898|1|9999021684|MR|Test|E|Lead 21684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021685|121685|989898|1|9999021685|MR|Test|E|Lead 21685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021686|121686|989898|1|9999021686|MR|Test|E|Lead 21686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021687|121687|989898|1|9999021687|MR|Test|E|Lead 21687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021688|121688|989898|1|9999021688|MR|Test|E|Lead 21688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021689|121689|989898|1|9999021689|MR|Test|E|Lead 21689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021690|121690|989898|1|9999021690|MR|Test|E|Lead 21690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021691|121691|989898|1|9999021691|MR|Test|E|Lead 21691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021692|121692|989898|1|9999021692|MR|Test|E|Lead 21692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021693|121693|989898|1|9999021693|MR|Test|E|Lead 21693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021694|121694|989898|1|9999021694|MR|Test|E|Lead 21694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021695|121695|989898|1|9999021695|MR|Test|E|Lead 21695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021696|121696|989898|1|9999021696|MR|Test|E|Lead 21696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021697|121697|989898|1|9999021697|MR|Test|E|Lead 21697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021698|121698|989898|1|9999021698|MR|Test|E|Lead 21698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021699|121699|989898|1|9999021699|MR|Test|E|Lead 21699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021700|121700|989898|1|9999021700|MR|Test|E|Lead 21700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021701|121701|989898|1|9999021701|MR|Test|E|Lead 21701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021702|121702|989898|1|9999021702|MR|Test|E|Lead 21702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021703|121703|989898|1|9999021703|MR|Test|E|Lead 21703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021704|121704|989898|1|9999021704|MR|Test|E|Lead 21704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021705|121705|989898|1|9999021705|MR|Test|E|Lead 21705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021706|121706|989898|1|9999021706|MR|Test|E|Lead 21706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021707|121707|989898|1|9999021707|MR|Test|E|Lead 21707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021708|121708|989898|1|9999021708|MR|Test|E|Lead 21708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021709|121709|989898|1|9999021709|MR|Test|E|Lead 21709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021710|121710|989898|1|9999021710|MR|Test|E|Lead 21710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021711|121711|989898|1|9999021711|MR|Test|E|Lead 21711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021712|121712|989898|1|9999021712|MR|Test|E|Lead 21712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021713|121713|989898|1|9999021713|MR|Test|E|Lead 21713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021714|121714|989898|1|9999021714|MR|Test|E|Lead 21714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021715|121715|989898|1|9999021715|MR|Test|E|Lead 21715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021716|121716|989898|1|9999021716|MR|Test|E|Lead 21716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021717|121717|989898|1|9999021717|MR|Test|E|Lead 21717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021718|121718|989898|1|9999021718|MR|Test|E|Lead 21718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021719|121719|989898|1|9999021719|MR|Test|E|Lead 21719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021720|121720|989898|1|9999021720|MR|Test|E|Lead 21720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021721|121721|989898|1|9999021721|MR|Test|E|Lead 21721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021722|121722|989898|1|9999021722|MR|Test|E|Lead 21722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021723|121723|989898|1|9999021723|MR|Test|E|Lead 21723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021724|121724|989898|1|9999021724|MR|Test|E|Lead 21724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021725|121725|989898|1|9999021725|MR|Test|E|Lead 21725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021726|121726|989898|1|9999021726|MR|Test|E|Lead 21726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021727|121727|989898|1|9999021727|MR|Test|E|Lead 21727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021728|121728|989898|1|9999021728|MR|Test|E|Lead 21728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021729|121729|989898|1|9999021729|MR|Test|E|Lead 21729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021730|121730|989898|1|9999021730|MR|Test|E|Lead 21730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021731|121731|989898|1|9999021731|MR|Test|E|Lead 21731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021732|121732|989898|1|9999021732|MR|Test|E|Lead 21732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021733|121733|989898|1|9999021733|MR|Test|E|Lead 21733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021734|121734|989898|1|9999021734|MR|Test|E|Lead 21734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021735|121735|989898|1|9999021735|MR|Test|E|Lead 21735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021736|121736|989898|1|9999021736|MR|Test|E|Lead 21736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021737|121737|989898|1|9999021737|MR|Test|E|Lead 21737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021738|121738|989898|1|9999021738|MR|Test|E|Lead 21738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021739|121739|989898|1|9999021739|MR|Test|E|Lead 21739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021740|121740|989898|1|9999021740|MR|Test|E|Lead 21740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021741|121741|989898|1|9999021741|MR|Test|E|Lead 21741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021742|121742|989898|1|9999021742|MR|Test|E|Lead 21742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021743|121743|989898|1|9999021743|MR|Test|E|Lead 21743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021744|121744|989898|1|9999021744|MR|Test|E|Lead 21744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021745|121745|989898|1|9999021745|MR|Test|E|Lead 21745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021746|121746|989898|1|9999021746|MR|Test|E|Lead 21746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021747|121747|989898|1|9999021747|MR|Test|E|Lead 21747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021748|121748|989898|1|9999021748|MR|Test|E|Lead 21748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021749|121749|989898|1|9999021749|MR|Test|E|Lead 21749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021750|121750|989898|1|9999021750|MR|Test|E|Lead 21750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021751|121751|989898|1|9999021751|MR|Test|E|Lead 21751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021752|121752|989898|1|9999021752|MR|Test|E|Lead 21752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021753|121753|989898|1|9999021753|MR|Test|E|Lead 21753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021754|121754|989898|1|9999021754|MR|Test|E|Lead 21754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021755|121755|989898|1|9999021755|MR|Test|E|Lead 21755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021756|121756|989898|1|9999021756|MR|Test|E|Lead 21756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021757|121757|989898|1|9999021757|MR|Test|E|Lead 21757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021758|121758|989898|1|9999021758|MR|Test|E|Lead 21758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021759|121759|989898|1|9999021759|MR|Test|E|Lead 21759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021760|121760|989898|1|9999021760|MR|Test|E|Lead 21760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021761|121761|989898|1|9999021761|MR|Test|E|Lead 21761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021762|121762|989898|1|9999021762|MR|Test|E|Lead 21762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021763|121763|989898|1|9999021763|MR|Test|E|Lead 21763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021764|121764|989898|1|9999021764|MR|Test|E|Lead 21764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021765|121765|989898|1|9999021765|MR|Test|E|Lead 21765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021766|121766|989898|1|9999021766|MR|Test|E|Lead 21766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021767|121767|989898|1|9999021767|MR|Test|E|Lead 21767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021768|121768|989898|1|9999021768|MR|Test|E|Lead 21768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021769|121769|989898|1|9999021769|MR|Test|E|Lead 21769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021770|121770|989898|1|9999021770|MR|Test|E|Lead 21770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021771|121771|989898|1|9999021771|MR|Test|E|Lead 21771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021772|121772|989898|1|9999021772|MR|Test|E|Lead 21772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021773|121773|989898|1|9999021773|MR|Test|E|Lead 21773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021774|121774|989898|1|9999021774|MR|Test|E|Lead 21774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021775|121775|989898|1|9999021775|MR|Test|E|Lead 21775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021776|121776|989898|1|9999021776|MR|Test|E|Lead 21776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021777|121777|989898|1|9999021777|MR|Test|E|Lead 21777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021778|121778|989898|1|9999021778|MR|Test|E|Lead 21778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021779|121779|989898|1|9999021779|MR|Test|E|Lead 21779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021780|121780|989898|1|9999021780|MR|Test|E|Lead 21780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021781|121781|989898|1|9999021781|MR|Test|E|Lead 21781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021782|121782|989898|1|9999021782|MR|Test|E|Lead 21782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021783|121783|989898|1|9999021783|MR|Test|E|Lead 21783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021784|121784|989898|1|9999021784|MR|Test|E|Lead 21784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021785|121785|989898|1|9999021785|MR|Test|E|Lead 21785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021786|121786|989898|1|9999021786|MR|Test|E|Lead 21786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021787|121787|989898|1|9999021787|MR|Test|E|Lead 21787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021788|121788|989898|1|9999021788|MR|Test|E|Lead 21788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021789|121789|989898|1|9999021789|MR|Test|E|Lead 21789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021790|121790|989898|1|9999021790|MR|Test|E|Lead 21790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021791|121791|989898|1|9999021791|MR|Test|E|Lead 21791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021792|121792|989898|1|9999021792|MR|Test|E|Lead 21792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021793|121793|989898|1|9999021793|MR|Test|E|Lead 21793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021794|121794|989898|1|9999021794|MR|Test|E|Lead 21794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021795|121795|989898|1|9999021795|MR|Test|E|Lead 21795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021796|121796|989898|1|9999021796|MR|Test|E|Lead 21796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021797|121797|989898|1|9999021797|MR|Test|E|Lead 21797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021798|121798|989898|1|9999021798|MR|Test|E|Lead 21798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021799|121799|989898|1|9999021799|MR|Test|E|Lead 21799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021800|121800|989898|1|9999021800|MR|Test|E|Lead 21800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021801|121801|989898|1|9999021801|MR|Test|E|Lead 21801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021802|121802|989898|1|9999021802|MR|Test|E|Lead 21802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021803|121803|989898|1|9999021803|MR|Test|E|Lead 21803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021804|121804|989898|1|9999021804|MR|Test|E|Lead 21804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021805|121805|989898|1|9999021805|MR|Test|E|Lead 21805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021806|121806|989898|1|9999021806|MR|Test|E|Lead 21806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021807|121807|989898|1|9999021807|MR|Test|E|Lead 21807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021808|121808|989898|1|9999021808|MR|Test|E|Lead 21808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021809|121809|989898|1|9999021809|MR|Test|E|Lead 21809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021810|121810|989898|1|9999021810|MR|Test|E|Lead 21810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021811|121811|989898|1|9999021811|MR|Test|E|Lead 21811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021812|121812|989898|1|9999021812|MR|Test|E|Lead 21812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021813|121813|989898|1|9999021813|MR|Test|E|Lead 21813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021814|121814|989898|1|9999021814|MR|Test|E|Lead 21814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021815|121815|989898|1|9999021815|MR|Test|E|Lead 21815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021816|121816|989898|1|9999021816|MR|Test|E|Lead 21816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021817|121817|989898|1|9999021817|MR|Test|E|Lead 21817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021818|121818|989898|1|9999021818|MR|Test|E|Lead 21818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021819|121819|989898|1|9999021819|MR|Test|E|Lead 21819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021820|121820|989898|1|9999021820|MR|Test|E|Lead 21820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021821|121821|989898|1|9999021821|MR|Test|E|Lead 21821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021822|121822|989898|1|9999021822|MR|Test|E|Lead 21822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021823|121823|989898|1|9999021823|MR|Test|E|Lead 21823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021824|121824|989898|1|9999021824|MR|Test|E|Lead 21824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021825|121825|989898|1|9999021825|MR|Test|E|Lead 21825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021826|121826|989898|1|9999021826|MR|Test|E|Lead 21826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021827|121827|989898|1|9999021827|MR|Test|E|Lead 21827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021828|121828|989898|1|9999021828|MR|Test|E|Lead 21828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021829|121829|989898|1|9999021829|MR|Test|E|Lead 21829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021830|121830|989898|1|9999021830|MR|Test|E|Lead 21830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021831|121831|989898|1|9999021831|MR|Test|E|Lead 21831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021832|121832|989898|1|9999021832|MR|Test|E|Lead 21832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021833|121833|989898|1|9999021833|MR|Test|E|Lead 21833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021834|121834|989898|1|9999021834|MR|Test|E|Lead 21834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021835|121835|989898|1|9999021835|MR|Test|E|Lead 21835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021836|121836|989898|1|9999021836|MR|Test|E|Lead 21836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021837|121837|989898|1|9999021837|MR|Test|E|Lead 21837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021838|121838|989898|1|9999021838|MR|Test|E|Lead 21838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021839|121839|989898|1|9999021839|MR|Test|E|Lead 21839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021840|121840|989898|1|9999021840|MR|Test|E|Lead 21840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021841|121841|989898|1|9999021841|MR|Test|E|Lead 21841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021842|121842|989898|1|9999021842|MR|Test|E|Lead 21842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021843|121843|989898|1|9999021843|MR|Test|E|Lead 21843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021844|121844|989898|1|9999021844|MR|Test|E|Lead 21844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021845|121845|989898|1|9999021845|MR|Test|E|Lead 21845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021846|121846|989898|1|9999021846|MR|Test|E|Lead 21846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021847|121847|989898|1|9999021847|MR|Test|E|Lead 21847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021848|121848|989898|1|9999021848|MR|Test|E|Lead 21848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021849|121849|989898|1|9999021849|MR|Test|E|Lead 21849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021850|121850|989898|1|9999021850|MR|Test|E|Lead 21850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021851|121851|989898|1|9999021851|MR|Test|E|Lead 21851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021852|121852|989898|1|9999021852|MR|Test|E|Lead 21852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021853|121853|989898|1|9999021853|MR|Test|E|Lead 21853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021854|121854|989898|1|9999021854|MR|Test|E|Lead 21854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021855|121855|989898|1|9999021855|MR|Test|E|Lead 21855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021856|121856|989898|1|9999021856|MR|Test|E|Lead 21856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021857|121857|989898|1|9999021857|MR|Test|E|Lead 21857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021858|121858|989898|1|9999021858|MR|Test|E|Lead 21858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021859|121859|989898|1|9999021859|MR|Test|E|Lead 21859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021860|121860|989898|1|9999021860|MR|Test|E|Lead 21860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021861|121861|989898|1|9999021861|MR|Test|E|Lead 21861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021862|121862|989898|1|9999021862|MR|Test|E|Lead 21862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021863|121863|989898|1|9999021863|MR|Test|E|Lead 21863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021864|121864|989898|1|9999021864|MR|Test|E|Lead 21864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021865|121865|989898|1|9999021865|MR|Test|E|Lead 21865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021866|121866|989898|1|9999021866|MR|Test|E|Lead 21866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021867|121867|989898|1|9999021867|MR|Test|E|Lead 21867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021868|121868|989898|1|9999021868|MR|Test|E|Lead 21868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021869|121869|989898|1|9999021869|MR|Test|E|Lead 21869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021870|121870|989898|1|9999021870|MR|Test|E|Lead 21870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021871|121871|989898|1|9999021871|MR|Test|E|Lead 21871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021872|121872|989898|1|9999021872|MR|Test|E|Lead 21872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021873|121873|989898|1|9999021873|MR|Test|E|Lead 21873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021874|121874|989898|1|9999021874|MR|Test|E|Lead 21874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021875|121875|989898|1|9999021875|MR|Test|E|Lead 21875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021876|121876|989898|1|9999021876|MR|Test|E|Lead 21876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021877|121877|989898|1|9999021877|MR|Test|E|Lead 21877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021878|121878|989898|1|9999021878|MR|Test|E|Lead 21878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021879|121879|989898|1|9999021879|MR|Test|E|Lead 21879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021880|121880|989898|1|9999021880|MR|Test|E|Lead 21880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021881|121881|989898|1|9999021881|MR|Test|E|Lead 21881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021882|121882|989898|1|9999021882|MR|Test|E|Lead 21882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021883|121883|989898|1|9999021883|MR|Test|E|Lead 21883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021884|121884|989898|1|9999021884|MR|Test|E|Lead 21884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021885|121885|989898|1|9999021885|MR|Test|E|Lead 21885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021886|121886|989898|1|9999021886|MR|Test|E|Lead 21886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021887|121887|989898|1|9999021887|MR|Test|E|Lead 21887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021888|121888|989898|1|9999021888|MR|Test|E|Lead 21888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021889|121889|989898|1|9999021889|MR|Test|E|Lead 21889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021890|121890|989898|1|9999021890|MR|Test|E|Lead 21890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021891|121891|989898|1|9999021891|MR|Test|E|Lead 21891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021892|121892|989898|1|9999021892|MR|Test|E|Lead 21892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021893|121893|989898|1|9999021893|MR|Test|E|Lead 21893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021894|121894|989898|1|9999021894|MR|Test|E|Lead 21894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021895|121895|989898|1|9999021895|MR|Test|E|Lead 21895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021896|121896|989898|1|9999021896|MR|Test|E|Lead 21896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021897|121897|989898|1|9999021897|MR|Test|E|Lead 21897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021898|121898|989898|1|9999021898|MR|Test|E|Lead 21898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021899|121899|989898|1|9999021899|MR|Test|E|Lead 21899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021900|121900|989898|1|9999021900|MR|Test|E|Lead 21900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021901|121901|989898|1|9999021901|MR|Test|E|Lead 21901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021902|121902|989898|1|9999021902|MR|Test|E|Lead 21902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021903|121903|989898|1|9999021903|MR|Test|E|Lead 21903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021904|121904|989898|1|9999021904|MR|Test|E|Lead 21904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021905|121905|989898|1|9999021905|MR|Test|E|Lead 21905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021906|121906|989898|1|9999021906|MR|Test|E|Lead 21906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021907|121907|989898|1|9999021907|MR|Test|E|Lead 21907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021908|121908|989898|1|9999021908|MR|Test|E|Lead 21908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021909|121909|989898|1|9999021909|MR|Test|E|Lead 21909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021910|121910|989898|1|9999021910|MR|Test|E|Lead 21910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021911|121911|989898|1|9999021911|MR|Test|E|Lead 21911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021912|121912|989898|1|9999021912|MR|Test|E|Lead 21912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021913|121913|989898|1|9999021913|MR|Test|E|Lead 21913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021914|121914|989898|1|9999021914|MR|Test|E|Lead 21914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021915|121915|989898|1|9999021915|MR|Test|E|Lead 21915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021916|121916|989898|1|9999021916|MR|Test|E|Lead 21916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021917|121917|989898|1|9999021917|MR|Test|E|Lead 21917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021918|121918|989898|1|9999021918|MR|Test|E|Lead 21918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021919|121919|989898|1|9999021919|MR|Test|E|Lead 21919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021920|121920|989898|1|9999021920|MR|Test|E|Lead 21920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021921|121921|989898|1|9999021921|MR|Test|E|Lead 21921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021922|121922|989898|1|9999021922|MR|Test|E|Lead 21922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021923|121923|989898|1|9999021923|MR|Test|E|Lead 21923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021924|121924|989898|1|9999021924|MR|Test|E|Lead 21924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021925|121925|989898|1|9999021925|MR|Test|E|Lead 21925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021926|121926|989898|1|9999021926|MR|Test|E|Lead 21926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021927|121927|989898|1|9999021927|MR|Test|E|Lead 21927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021928|121928|989898|1|9999021928|MR|Test|E|Lead 21928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021929|121929|989898|1|9999021929|MR|Test|E|Lead 21929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021930|121930|989898|1|9999021930|MR|Test|E|Lead 21930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021931|121931|989898|1|9999021931|MR|Test|E|Lead 21931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021932|121932|989898|1|9999021932|MR|Test|E|Lead 21932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021933|121933|989898|1|9999021933|MR|Test|E|Lead 21933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021934|121934|989898|1|9999021934|MR|Test|E|Lead 21934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021935|121935|989898|1|9999021935|MR|Test|E|Lead 21935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021936|121936|989898|1|9999021936|MR|Test|E|Lead 21936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021937|121937|989898|1|9999021937|MR|Test|E|Lead 21937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021938|121938|989898|1|9999021938|MR|Test|E|Lead 21938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021939|121939|989898|1|9999021939|MR|Test|E|Lead 21939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021940|121940|989898|1|9999021940|MR|Test|E|Lead 21940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021941|121941|989898|1|9999021941|MR|Test|E|Lead 21941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021942|121942|989898|1|9999021942|MR|Test|E|Lead 21942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021943|121943|989898|1|9999021943|MR|Test|E|Lead 21943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021944|121944|989898|1|9999021944|MR|Test|E|Lead 21944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021945|121945|989898|1|9999021945|MR|Test|E|Lead 21945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021946|121946|989898|1|9999021946|MR|Test|E|Lead 21946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021947|121947|989898|1|9999021947|MR|Test|E|Lead 21947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021948|121948|989898|1|9999021948|MR|Test|E|Lead 21948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021949|121949|989898|1|9999021949|MR|Test|E|Lead 21949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021950|121950|989898|1|9999021950|MR|Test|E|Lead 21950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021951|121951|989898|1|9999021951|MR|Test|E|Lead 21951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021952|121952|989898|1|9999021952|MR|Test|E|Lead 21952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021953|121953|989898|1|9999021953|MR|Test|E|Lead 21953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021954|121954|989898|1|9999021954|MR|Test|E|Lead 21954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021955|121955|989898|1|9999021955|MR|Test|E|Lead 21955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021956|121956|989898|1|9999021956|MR|Test|E|Lead 21956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021957|121957|989898|1|9999021957|MR|Test|E|Lead 21957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021958|121958|989898|1|9999021958|MR|Test|E|Lead 21958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021959|121959|989898|1|9999021959|MR|Test|E|Lead 21959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021960|121960|989898|1|9999021960|MR|Test|E|Lead 21960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021961|121961|989898|1|9999021961|MR|Test|E|Lead 21961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021962|121962|989898|1|9999021962|MR|Test|E|Lead 21962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021963|121963|989898|1|9999021963|MR|Test|E|Lead 21963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021964|121964|989898|1|9999021964|MR|Test|E|Lead 21964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021965|121965|989898|1|9999021965|MR|Test|E|Lead 21965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021966|121966|989898|1|9999021966|MR|Test|E|Lead 21966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021967|121967|989898|1|9999021967|MR|Test|E|Lead 21967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021968|121968|989898|1|9999021968|MR|Test|E|Lead 21968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021969|121969|989898|1|9999021969|MR|Test|E|Lead 21969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021970|121970|989898|1|9999021970|MR|Test|E|Lead 21970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021971|121971|989898|1|9999021971|MR|Test|E|Lead 21971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021972|121972|989898|1|9999021972|MR|Test|E|Lead 21972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021973|121973|989898|1|9999021973|MR|Test|E|Lead 21973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021974|121974|989898|1|9999021974|MR|Test|E|Lead 21974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021975|121975|989898|1|9999021975|MR|Test|E|Lead 21975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021976|121976|989898|1|9999021976|MR|Test|E|Lead 21976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021977|121977|989898|1|9999021977|MR|Test|E|Lead 21977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021978|121978|989898|1|9999021978|MR|Test|E|Lead 21978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021979|121979|989898|1|9999021979|MR|Test|E|Lead 21979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021980|121980|989898|1|9999021980|MR|Test|E|Lead 21980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021981|121981|989898|1|9999021981|MR|Test|E|Lead 21981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021982|121982|989898|1|9999021982|MR|Test|E|Lead 21982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021983|121983|989898|1|9999021983|MR|Test|E|Lead 21983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021984|121984|989898|1|9999021984|MR|Test|E|Lead 21984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021985|121985|989898|1|9999021985|MR|Test|E|Lead 21985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021986|121986|989898|1|9999021986|MR|Test|E|Lead 21986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021987|121987|989898|1|9999021987|MR|Test|E|Lead 21987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021988|121988|989898|1|9999021988|MR|Test|E|Lead 21988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021989|121989|989898|1|9999021989|MR|Test|E|Lead 21989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021990|121990|989898|1|9999021990|MR|Test|E|Lead 21990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021991|121991|989898|1|9999021991|MR|Test|E|Lead 21991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021992|121992|989898|1|9999021992|MR|Test|E|Lead 21992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021993|121993|989898|1|9999021993|MR|Test|E|Lead 21993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021994|121994|989898|1|9999021994|MR|Test|E|Lead 21994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021995|121995|989898|1|9999021995|MR|Test|E|Lead 21995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021996|121996|989898|1|9999021996|MR|Test|E|Lead 21996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021997|121997|989898|1|9999021997|MR|Test|E|Lead 21997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021998|121998|989898|1|9999021998|MR|Test|E|Lead 21998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1021999|121999|989898|1|9999021999|MR|Test|E|Lead 21999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022000|122000|989898|1|9999022000|MR|Test|E|Lead 22000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022001|122001|989898|1|9999022001|MR|Test|E|Lead 22001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022002|122002|989898|1|9999022002|MR|Test|E|Lead 22002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022003|122003|989898|1|9999022003|MR|Test|E|Lead 22003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022004|122004|989898|1|9999022004|MR|Test|E|Lead 22004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022005|122005|989898|1|9999022005|MR|Test|E|Lead 22005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022006|122006|989898|1|9999022006|MR|Test|E|Lead 22006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022007|122007|989898|1|9999022007|MR|Test|E|Lead 22007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022008|122008|989898|1|9999022008|MR|Test|E|Lead 22008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022009|122009|989898|1|9999022009|MR|Test|E|Lead 22009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022010|122010|989898|1|9999022010|MR|Test|E|Lead 22010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022011|122011|989898|1|9999022011|MR|Test|E|Lead 22011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022012|122012|989898|1|9999022012|MR|Test|E|Lead 22012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022013|122013|989898|1|9999022013|MR|Test|E|Lead 22013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022014|122014|989898|1|9999022014|MR|Test|E|Lead 22014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022015|122015|989898|1|9999022015|MR|Test|E|Lead 22015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022016|122016|989898|1|9999022016|MR|Test|E|Lead 22016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022017|122017|989898|1|9999022017|MR|Test|E|Lead 22017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022018|122018|989898|1|9999022018|MR|Test|E|Lead 22018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022019|122019|989898|1|9999022019|MR|Test|E|Lead 22019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022020|122020|989898|1|9999022020|MR|Test|E|Lead 22020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022021|122021|989898|1|9999022021|MR|Test|E|Lead 22021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022022|122022|989898|1|9999022022|MR|Test|E|Lead 22022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022023|122023|989898|1|9999022023|MR|Test|E|Lead 22023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022024|122024|989898|1|9999022024|MR|Test|E|Lead 22024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022025|122025|989898|1|9999022025|MR|Test|E|Lead 22025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022026|122026|989898|1|9999022026|MR|Test|E|Lead 22026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022027|122027|989898|1|9999022027|MR|Test|E|Lead 22027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022028|122028|989898|1|9999022028|MR|Test|E|Lead 22028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022029|122029|989898|1|9999022029|MR|Test|E|Lead 22029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022030|122030|989898|1|9999022030|MR|Test|E|Lead 22030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022031|122031|989898|1|9999022031|MR|Test|E|Lead 22031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022032|122032|989898|1|9999022032|MR|Test|E|Lead 22032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022033|122033|989898|1|9999022033|MR|Test|E|Lead 22033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022034|122034|989898|1|9999022034|MR|Test|E|Lead 22034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022035|122035|989898|1|9999022035|MR|Test|E|Lead 22035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022036|122036|989898|1|9999022036|MR|Test|E|Lead 22036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022037|122037|989898|1|9999022037|MR|Test|E|Lead 22037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022038|122038|989898|1|9999022038|MR|Test|E|Lead 22038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022039|122039|989898|1|9999022039|MR|Test|E|Lead 22039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022040|122040|989898|1|9999022040|MR|Test|E|Lead 22040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022041|122041|989898|1|9999022041|MR|Test|E|Lead 22041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022042|122042|989898|1|9999022042|MR|Test|E|Lead 22042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022043|122043|989898|1|9999022043|MR|Test|E|Lead 22043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022044|122044|989898|1|9999022044|MR|Test|E|Lead 22044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022045|122045|989898|1|9999022045|MR|Test|E|Lead 22045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022046|122046|989898|1|9999022046|MR|Test|E|Lead 22046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022047|122047|989898|1|9999022047|MR|Test|E|Lead 22047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022048|122048|989898|1|9999022048|MR|Test|E|Lead 22048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022049|122049|989898|1|9999022049|MR|Test|E|Lead 22049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022050|122050|989898|1|9999022050|MR|Test|E|Lead 22050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022051|122051|989898|1|9999022051|MR|Test|E|Lead 22051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022052|122052|989898|1|9999022052|MR|Test|E|Lead 22052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022053|122053|989898|1|9999022053|MR|Test|E|Lead 22053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022054|122054|989898|1|9999022054|MR|Test|E|Lead 22054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022055|122055|989898|1|9999022055|MR|Test|E|Lead 22055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022056|122056|989898|1|9999022056|MR|Test|E|Lead 22056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022057|122057|989898|1|9999022057|MR|Test|E|Lead 22057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022058|122058|989898|1|9999022058|MR|Test|E|Lead 22058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022059|122059|989898|1|9999022059|MR|Test|E|Lead 22059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022060|122060|989898|1|9999022060|MR|Test|E|Lead 22060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022061|122061|989898|1|9999022061|MR|Test|E|Lead 22061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022062|122062|989898|1|9999022062|MR|Test|E|Lead 22062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022063|122063|989898|1|9999022063|MR|Test|E|Lead 22063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022064|122064|989898|1|9999022064|MR|Test|E|Lead 22064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022065|122065|989898|1|9999022065|MR|Test|E|Lead 22065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022066|122066|989898|1|9999022066|MR|Test|E|Lead 22066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022067|122067|989898|1|9999022067|MR|Test|E|Lead 22067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022068|122068|989898|1|9999022068|MR|Test|E|Lead 22068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022069|122069|989898|1|9999022069|MR|Test|E|Lead 22069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022070|122070|989898|1|9999022070|MR|Test|E|Lead 22070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022071|122071|989898|1|9999022071|MR|Test|E|Lead 22071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022072|122072|989898|1|9999022072|MR|Test|E|Lead 22072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022073|122073|989898|1|9999022073|MR|Test|E|Lead 22073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022074|122074|989898|1|9999022074|MR|Test|E|Lead 22074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022075|122075|989898|1|9999022075|MR|Test|E|Lead 22075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022076|122076|989898|1|9999022076|MR|Test|E|Lead 22076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022077|122077|989898|1|9999022077|MR|Test|E|Lead 22077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022078|122078|989898|1|9999022078|MR|Test|E|Lead 22078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022079|122079|989898|1|9999022079|MR|Test|E|Lead 22079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022080|122080|989898|1|9999022080|MR|Test|E|Lead 22080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022081|122081|989898|1|9999022081|MR|Test|E|Lead 22081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022082|122082|989898|1|9999022082|MR|Test|E|Lead 22082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022083|122083|989898|1|9999022083|MR|Test|E|Lead 22083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022084|122084|989898|1|9999022084|MR|Test|E|Lead 22084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022085|122085|989898|1|9999022085|MR|Test|E|Lead 22085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022086|122086|989898|1|9999022086|MR|Test|E|Lead 22086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022087|122087|989898|1|9999022087|MR|Test|E|Lead 22087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022088|122088|989898|1|9999022088|MR|Test|E|Lead 22088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022089|122089|989898|1|9999022089|MR|Test|E|Lead 22089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022090|122090|989898|1|9999022090|MR|Test|E|Lead 22090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022091|122091|989898|1|9999022091|MR|Test|E|Lead 22091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022092|122092|989898|1|9999022092|MR|Test|E|Lead 22092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022093|122093|989898|1|9999022093|MR|Test|E|Lead 22093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022094|122094|989898|1|9999022094|MR|Test|E|Lead 22094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022095|122095|989898|1|9999022095|MR|Test|E|Lead 22095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022096|122096|989898|1|9999022096|MR|Test|E|Lead 22096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022097|122097|989898|1|9999022097|MR|Test|E|Lead 22097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022098|122098|989898|1|9999022098|MR|Test|E|Lead 22098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022099|122099|989898|1|9999022099|MR|Test|E|Lead 22099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022100|122100|989898|1|9999022100|MR|Test|E|Lead 22100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022101|122101|989898|1|9999022101|MR|Test|E|Lead 22101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022102|122102|989898|1|9999022102|MR|Test|E|Lead 22102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022103|122103|989898|1|9999022103|MR|Test|E|Lead 22103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022104|122104|989898|1|9999022104|MR|Test|E|Lead 22104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022105|122105|989898|1|9999022105|MR|Test|E|Lead 22105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022106|122106|989898|1|9999022106|MR|Test|E|Lead 22106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022107|122107|989898|1|9999022107|MR|Test|E|Lead 22107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022108|122108|989898|1|9999022108|MR|Test|E|Lead 22108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022109|122109|989898|1|9999022109|MR|Test|E|Lead 22109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022110|122110|989898|1|9999022110|MR|Test|E|Lead 22110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022111|122111|989898|1|9999022111|MR|Test|E|Lead 22111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022112|122112|989898|1|9999022112|MR|Test|E|Lead 22112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022113|122113|989898|1|9999022113|MR|Test|E|Lead 22113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022114|122114|989898|1|9999022114|MR|Test|E|Lead 22114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022115|122115|989898|1|9999022115|MR|Test|E|Lead 22115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022116|122116|989898|1|9999022116|MR|Test|E|Lead 22116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022117|122117|989898|1|9999022117|MR|Test|E|Lead 22117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022118|122118|989898|1|9999022118|MR|Test|E|Lead 22118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022119|122119|989898|1|9999022119|MR|Test|E|Lead 22119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022120|122120|989898|1|9999022120|MR|Test|E|Lead 22120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022121|122121|989898|1|9999022121|MR|Test|E|Lead 22121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022122|122122|989898|1|9999022122|MR|Test|E|Lead 22122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022123|122123|989898|1|9999022123|MR|Test|E|Lead 22123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022124|122124|989898|1|9999022124|MR|Test|E|Lead 22124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022125|122125|989898|1|9999022125|MR|Test|E|Lead 22125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022126|122126|989898|1|9999022126|MR|Test|E|Lead 22126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022127|122127|989898|1|9999022127|MR|Test|E|Lead 22127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022128|122128|989898|1|9999022128|MR|Test|E|Lead 22128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022129|122129|989898|1|9999022129|MR|Test|E|Lead 22129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022130|122130|989898|1|9999022130|MR|Test|E|Lead 22130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022131|122131|989898|1|9999022131|MR|Test|E|Lead 22131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022132|122132|989898|1|9999022132|MR|Test|E|Lead 22132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022133|122133|989898|1|9999022133|MR|Test|E|Lead 22133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022134|122134|989898|1|9999022134|MR|Test|E|Lead 22134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022135|122135|989898|1|9999022135|MR|Test|E|Lead 22135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022136|122136|989898|1|9999022136|MR|Test|E|Lead 22136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022137|122137|989898|1|9999022137|MR|Test|E|Lead 22137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022138|122138|989898|1|9999022138|MR|Test|E|Lead 22138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022139|122139|989898|1|9999022139|MR|Test|E|Lead 22139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022140|122140|989898|1|9999022140|MR|Test|E|Lead 22140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022141|122141|989898|1|9999022141|MR|Test|E|Lead 22141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022142|122142|989898|1|9999022142|MR|Test|E|Lead 22142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022143|122143|989898|1|9999022143|MR|Test|E|Lead 22143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022144|122144|989898|1|9999022144|MR|Test|E|Lead 22144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022145|122145|989898|1|9999022145|MR|Test|E|Lead 22145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022146|122146|989898|1|9999022146|MR|Test|E|Lead 22146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022147|122147|989898|1|9999022147|MR|Test|E|Lead 22147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022148|122148|989898|1|9999022148|MR|Test|E|Lead 22148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022149|122149|989898|1|9999022149|MR|Test|E|Lead 22149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022150|122150|989898|1|9999022150|MR|Test|E|Lead 22150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022151|122151|989898|1|9999022151|MR|Test|E|Lead 22151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022152|122152|989898|1|9999022152|MR|Test|E|Lead 22152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022153|122153|989898|1|9999022153|MR|Test|E|Lead 22153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022154|122154|989898|1|9999022154|MR|Test|E|Lead 22154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022155|122155|989898|1|9999022155|MR|Test|E|Lead 22155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022156|122156|989898|1|9999022156|MR|Test|E|Lead 22156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022157|122157|989898|1|9999022157|MR|Test|E|Lead 22157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022158|122158|989898|1|9999022158|MR|Test|E|Lead 22158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022159|122159|989898|1|9999022159|MR|Test|E|Lead 22159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022160|122160|989898|1|9999022160|MR|Test|E|Lead 22160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022161|122161|989898|1|9999022161|MR|Test|E|Lead 22161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022162|122162|989898|1|9999022162|MR|Test|E|Lead 22162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022163|122163|989898|1|9999022163|MR|Test|E|Lead 22163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022164|122164|989898|1|9999022164|MR|Test|E|Lead 22164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022165|122165|989898|1|9999022165|MR|Test|E|Lead 22165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022166|122166|989898|1|9999022166|MR|Test|E|Lead 22166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022167|122167|989898|1|9999022167|MR|Test|E|Lead 22167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022168|122168|989898|1|9999022168|MR|Test|E|Lead 22168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022169|122169|989898|1|9999022169|MR|Test|E|Lead 22169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022170|122170|989898|1|9999022170|MR|Test|E|Lead 22170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022171|122171|989898|1|9999022171|MR|Test|E|Lead 22171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022172|122172|989898|1|9999022172|MR|Test|E|Lead 22172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022173|122173|989898|1|9999022173|MR|Test|E|Lead 22173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022174|122174|989898|1|9999022174|MR|Test|E|Lead 22174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022175|122175|989898|1|9999022175|MR|Test|E|Lead 22175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022176|122176|989898|1|9999022176|MR|Test|E|Lead 22176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022177|122177|989898|1|9999022177|MR|Test|E|Lead 22177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022178|122178|989898|1|9999022178|MR|Test|E|Lead 22178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022179|122179|989898|1|9999022179|MR|Test|E|Lead 22179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022180|122180|989898|1|9999022180|MR|Test|E|Lead 22180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022181|122181|989898|1|9999022181|MR|Test|E|Lead 22181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022182|122182|989898|1|9999022182|MR|Test|E|Lead 22182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022183|122183|989898|1|9999022183|MR|Test|E|Lead 22183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022184|122184|989898|1|9999022184|MR|Test|E|Lead 22184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022185|122185|989898|1|9999022185|MR|Test|E|Lead 22185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022186|122186|989898|1|9999022186|MR|Test|E|Lead 22186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022187|122187|989898|1|9999022187|MR|Test|E|Lead 22187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022188|122188|989898|1|9999022188|MR|Test|E|Lead 22188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022189|122189|989898|1|9999022189|MR|Test|E|Lead 22189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022190|122190|989898|1|9999022190|MR|Test|E|Lead 22190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022191|122191|989898|1|9999022191|MR|Test|E|Lead 22191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022192|122192|989898|1|9999022192|MR|Test|E|Lead 22192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022193|122193|989898|1|9999022193|MR|Test|E|Lead 22193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022194|122194|989898|1|9999022194|MR|Test|E|Lead 22194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022195|122195|989898|1|9999022195|MR|Test|E|Lead 22195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022196|122196|989898|1|9999022196|MR|Test|E|Lead 22196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022197|122197|989898|1|9999022197|MR|Test|E|Lead 22197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022198|122198|989898|1|9999022198|MR|Test|E|Lead 22198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022199|122199|989898|1|9999022199|MR|Test|E|Lead 22199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022200|122200|989898|1|9999022200|MR|Test|E|Lead 22200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022201|122201|989898|1|9999022201|MR|Test|E|Lead 22201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022202|122202|989898|1|9999022202|MR|Test|E|Lead 22202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022203|122203|989898|1|9999022203|MR|Test|E|Lead 22203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022204|122204|989898|1|9999022204|MR|Test|E|Lead 22204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022205|122205|989898|1|9999022205|MR|Test|E|Lead 22205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022206|122206|989898|1|9999022206|MR|Test|E|Lead 22206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022207|122207|989898|1|9999022207|MR|Test|E|Lead 22207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022208|122208|989898|1|9999022208|MR|Test|E|Lead 22208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022209|122209|989898|1|9999022209|MR|Test|E|Lead 22209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022210|122210|989898|1|9999022210|MR|Test|E|Lead 22210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022211|122211|989898|1|9999022211|MR|Test|E|Lead 22211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022212|122212|989898|1|9999022212|MR|Test|E|Lead 22212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022213|122213|989898|1|9999022213|MR|Test|E|Lead 22213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022214|122214|989898|1|9999022214|MR|Test|E|Lead 22214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022215|122215|989898|1|9999022215|MR|Test|E|Lead 22215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022216|122216|989898|1|9999022216|MR|Test|E|Lead 22216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022217|122217|989898|1|9999022217|MR|Test|E|Lead 22217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022218|122218|989898|1|9999022218|MR|Test|E|Lead 22218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022219|122219|989898|1|9999022219|MR|Test|E|Lead 22219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022220|122220|989898|1|9999022220|MR|Test|E|Lead 22220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022221|122221|989898|1|9999022221|MR|Test|E|Lead 22221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022222|122222|989898|1|9999022222|MR|Test|E|Lead 22222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022223|122223|989898|1|9999022223|MR|Test|E|Lead 22223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022224|122224|989898|1|9999022224|MR|Test|E|Lead 22224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022225|122225|989898|1|9999022225|MR|Test|E|Lead 22225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022226|122226|989898|1|9999022226|MR|Test|E|Lead 22226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022227|122227|989898|1|9999022227|MR|Test|E|Lead 22227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022228|122228|989898|1|9999022228|MR|Test|E|Lead 22228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022229|122229|989898|1|9999022229|MR|Test|E|Lead 22229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022230|122230|989898|1|9999022230|MR|Test|E|Lead 22230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022231|122231|989898|1|9999022231|MR|Test|E|Lead 22231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022232|122232|989898|1|9999022232|MR|Test|E|Lead 22232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022233|122233|989898|1|9999022233|MR|Test|E|Lead 22233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022234|122234|989898|1|9999022234|MR|Test|E|Lead 22234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022235|122235|989898|1|9999022235|MR|Test|E|Lead 22235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022236|122236|989898|1|9999022236|MR|Test|E|Lead 22236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022237|122237|989898|1|9999022237|MR|Test|E|Lead 22237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022238|122238|989898|1|9999022238|MR|Test|E|Lead 22238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022239|122239|989898|1|9999022239|MR|Test|E|Lead 22239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022240|122240|989898|1|9999022240|MR|Test|E|Lead 22240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022241|122241|989898|1|9999022241|MR|Test|E|Lead 22241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022242|122242|989898|1|9999022242|MR|Test|E|Lead 22242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022243|122243|989898|1|9999022243|MR|Test|E|Lead 22243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022244|122244|989898|1|9999022244|MR|Test|E|Lead 22244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022245|122245|989898|1|9999022245|MR|Test|E|Lead 22245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022246|122246|989898|1|9999022246|MR|Test|E|Lead 22246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022247|122247|989898|1|9999022247|MR|Test|E|Lead 22247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022248|122248|989898|1|9999022248|MR|Test|E|Lead 22248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022249|122249|989898|1|9999022249|MR|Test|E|Lead 22249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022250|122250|989898|1|9999022250|MR|Test|E|Lead 22250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022251|122251|989898|1|9999022251|MR|Test|E|Lead 22251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022252|122252|989898|1|9999022252|MR|Test|E|Lead 22252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022253|122253|989898|1|9999022253|MR|Test|E|Lead 22253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022254|122254|989898|1|9999022254|MR|Test|E|Lead 22254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022255|122255|989898|1|9999022255|MR|Test|E|Lead 22255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022256|122256|989898|1|9999022256|MR|Test|E|Lead 22256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022257|122257|989898|1|9999022257|MR|Test|E|Lead 22257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022258|122258|989898|1|9999022258|MR|Test|E|Lead 22258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022259|122259|989898|1|9999022259|MR|Test|E|Lead 22259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022260|122260|989898|1|9999022260|MR|Test|E|Lead 22260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022261|122261|989898|1|9999022261|MR|Test|E|Lead 22261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022262|122262|989898|1|9999022262|MR|Test|E|Lead 22262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022263|122263|989898|1|9999022263|MR|Test|E|Lead 22263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022264|122264|989898|1|9999022264|MR|Test|E|Lead 22264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022265|122265|989898|1|9999022265|MR|Test|E|Lead 22265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022266|122266|989898|1|9999022266|MR|Test|E|Lead 22266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022267|122267|989898|1|9999022267|MR|Test|E|Lead 22267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022268|122268|989898|1|9999022268|MR|Test|E|Lead 22268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022269|122269|989898|1|9999022269|MR|Test|E|Lead 22269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022270|122270|989898|1|9999022270|MR|Test|E|Lead 22270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022271|122271|989898|1|9999022271|MR|Test|E|Lead 22271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022272|122272|989898|1|9999022272|MR|Test|E|Lead 22272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022273|122273|989898|1|9999022273|MR|Test|E|Lead 22273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022274|122274|989898|1|9999022274|MR|Test|E|Lead 22274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022275|122275|989898|1|9999022275|MR|Test|E|Lead 22275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022276|122276|989898|1|9999022276|MR|Test|E|Lead 22276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022277|122277|989898|1|9999022277|MR|Test|E|Lead 22277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022278|122278|989898|1|9999022278|MR|Test|E|Lead 22278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022279|122279|989898|1|9999022279|MR|Test|E|Lead 22279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022280|122280|989898|1|9999022280|MR|Test|E|Lead 22280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022281|122281|989898|1|9999022281|MR|Test|E|Lead 22281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022282|122282|989898|1|9999022282|MR|Test|E|Lead 22282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022283|122283|989898|1|9999022283|MR|Test|E|Lead 22283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022284|122284|989898|1|9999022284|MR|Test|E|Lead 22284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022285|122285|989898|1|9999022285|MR|Test|E|Lead 22285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022286|122286|989898|1|9999022286|MR|Test|E|Lead 22286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022287|122287|989898|1|9999022287|MR|Test|E|Lead 22287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022288|122288|989898|1|9999022288|MR|Test|E|Lead 22288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022289|122289|989898|1|9999022289|MR|Test|E|Lead 22289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022290|122290|989898|1|9999022290|MR|Test|E|Lead 22290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022291|122291|989898|1|9999022291|MR|Test|E|Lead 22291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022292|122292|989898|1|9999022292|MR|Test|E|Lead 22292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022293|122293|989898|1|9999022293|MR|Test|E|Lead 22293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022294|122294|989898|1|9999022294|MR|Test|E|Lead 22294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022295|122295|989898|1|9999022295|MR|Test|E|Lead 22295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022296|122296|989898|1|9999022296|MR|Test|E|Lead 22296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022297|122297|989898|1|9999022297|MR|Test|E|Lead 22297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022298|122298|989898|1|9999022298|MR|Test|E|Lead 22298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022299|122299|989898|1|9999022299|MR|Test|E|Lead 22299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022300|122300|989898|1|9999022300|MR|Test|E|Lead 22300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022301|122301|989898|1|9999022301|MR|Test|E|Lead 22301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022302|122302|989898|1|9999022302|MR|Test|E|Lead 22302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022303|122303|989898|1|9999022303|MR|Test|E|Lead 22303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022304|122304|989898|1|9999022304|MR|Test|E|Lead 22304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022305|122305|989898|1|9999022305|MR|Test|E|Lead 22305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022306|122306|989898|1|9999022306|MR|Test|E|Lead 22306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022307|122307|989898|1|9999022307|MR|Test|E|Lead 22307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022308|122308|989898|1|9999022308|MR|Test|E|Lead 22308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022309|122309|989898|1|9999022309|MR|Test|E|Lead 22309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022310|122310|989898|1|9999022310|MR|Test|E|Lead 22310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022311|122311|989898|1|9999022311|MR|Test|E|Lead 22311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022312|122312|989898|1|9999022312|MR|Test|E|Lead 22312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022313|122313|989898|1|9999022313|MR|Test|E|Lead 22313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022314|122314|989898|1|9999022314|MR|Test|E|Lead 22314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022315|122315|989898|1|9999022315|MR|Test|E|Lead 22315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022316|122316|989898|1|9999022316|MR|Test|E|Lead 22316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022317|122317|989898|1|9999022317|MR|Test|E|Lead 22317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022318|122318|989898|1|9999022318|MR|Test|E|Lead 22318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022319|122319|989898|1|9999022319|MR|Test|E|Lead 22319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022320|122320|989898|1|9999022320|MR|Test|E|Lead 22320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022321|122321|989898|1|9999022321|MR|Test|E|Lead 22321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022322|122322|989898|1|9999022322|MR|Test|E|Lead 22322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022323|122323|989898|1|9999022323|MR|Test|E|Lead 22323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022324|122324|989898|1|9999022324|MR|Test|E|Lead 22324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022325|122325|989898|1|9999022325|MR|Test|E|Lead 22325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022326|122326|989898|1|9999022326|MR|Test|E|Lead 22326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022327|122327|989898|1|9999022327|MR|Test|E|Lead 22327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022328|122328|989898|1|9999022328|MR|Test|E|Lead 22328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022329|122329|989898|1|9999022329|MR|Test|E|Lead 22329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022330|122330|989898|1|9999022330|MR|Test|E|Lead 22330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022331|122331|989898|1|9999022331|MR|Test|E|Lead 22331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022332|122332|989898|1|9999022332|MR|Test|E|Lead 22332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022333|122333|989898|1|9999022333|MR|Test|E|Lead 22333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022334|122334|989898|1|9999022334|MR|Test|E|Lead 22334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022335|122335|989898|1|9999022335|MR|Test|E|Lead 22335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022336|122336|989898|1|9999022336|MR|Test|E|Lead 22336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022337|122337|989898|1|9999022337|MR|Test|E|Lead 22337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022338|122338|989898|1|9999022338|MR|Test|E|Lead 22338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022339|122339|989898|1|9999022339|MR|Test|E|Lead 22339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022340|122340|989898|1|9999022340|MR|Test|E|Lead 22340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022341|122341|989898|1|9999022341|MR|Test|E|Lead 22341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022342|122342|989898|1|9999022342|MR|Test|E|Lead 22342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022343|122343|989898|1|9999022343|MR|Test|E|Lead 22343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022344|122344|989898|1|9999022344|MR|Test|E|Lead 22344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022345|122345|989898|1|9999022345|MR|Test|E|Lead 22345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022346|122346|989898|1|9999022346|MR|Test|E|Lead 22346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022347|122347|989898|1|9999022347|MR|Test|E|Lead 22347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022348|122348|989898|1|9999022348|MR|Test|E|Lead 22348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022349|122349|989898|1|9999022349|MR|Test|E|Lead 22349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022350|122350|989898|1|9999022350|MR|Test|E|Lead 22350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022351|122351|989898|1|9999022351|MR|Test|E|Lead 22351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022352|122352|989898|1|9999022352|MR|Test|E|Lead 22352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022353|122353|989898|1|9999022353|MR|Test|E|Lead 22353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022354|122354|989898|1|9999022354|MR|Test|E|Lead 22354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022355|122355|989898|1|9999022355|MR|Test|E|Lead 22355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022356|122356|989898|1|9999022356|MR|Test|E|Lead 22356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022357|122357|989898|1|9999022357|MR|Test|E|Lead 22357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022358|122358|989898|1|9999022358|MR|Test|E|Lead 22358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022359|122359|989898|1|9999022359|MR|Test|E|Lead 22359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022360|122360|989898|1|9999022360|MR|Test|E|Lead 22360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022361|122361|989898|1|9999022361|MR|Test|E|Lead 22361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022362|122362|989898|1|9999022362|MR|Test|E|Lead 22362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022363|122363|989898|1|9999022363|MR|Test|E|Lead 22363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022364|122364|989898|1|9999022364|MR|Test|E|Lead 22364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022365|122365|989898|1|9999022365|MR|Test|E|Lead 22365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022366|122366|989898|1|9999022366|MR|Test|E|Lead 22366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022367|122367|989898|1|9999022367|MR|Test|E|Lead 22367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022368|122368|989898|1|9999022368|MR|Test|E|Lead 22368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022369|122369|989898|1|9999022369|MR|Test|E|Lead 22369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022370|122370|989898|1|9999022370|MR|Test|E|Lead 22370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022371|122371|989898|1|9999022371|MR|Test|E|Lead 22371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022372|122372|989898|1|9999022372|MR|Test|E|Lead 22372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022373|122373|989898|1|9999022373|MR|Test|E|Lead 22373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022374|122374|989898|1|9999022374|MR|Test|E|Lead 22374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022375|122375|989898|1|9999022375|MR|Test|E|Lead 22375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022376|122376|989898|1|9999022376|MR|Test|E|Lead 22376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022377|122377|989898|1|9999022377|MR|Test|E|Lead 22377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022378|122378|989898|1|9999022378|MR|Test|E|Lead 22378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022379|122379|989898|1|9999022379|MR|Test|E|Lead 22379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022380|122380|989898|1|9999022380|MR|Test|E|Lead 22380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022381|122381|989898|1|9999022381|MR|Test|E|Lead 22381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022382|122382|989898|1|9999022382|MR|Test|E|Lead 22382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022383|122383|989898|1|9999022383|MR|Test|E|Lead 22383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022384|122384|989898|1|9999022384|MR|Test|E|Lead 22384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022385|122385|989898|1|9999022385|MR|Test|E|Lead 22385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022386|122386|989898|1|9999022386|MR|Test|E|Lead 22386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022387|122387|989898|1|9999022387|MR|Test|E|Lead 22387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022388|122388|989898|1|9999022388|MR|Test|E|Lead 22388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022389|122389|989898|1|9999022389|MR|Test|E|Lead 22389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022390|122390|989898|1|9999022390|MR|Test|E|Lead 22390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022391|122391|989898|1|9999022391|MR|Test|E|Lead 22391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022392|122392|989898|1|9999022392|MR|Test|E|Lead 22392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022393|122393|989898|1|9999022393|MR|Test|E|Lead 22393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022394|122394|989898|1|9999022394|MR|Test|E|Lead 22394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022395|122395|989898|1|9999022395|MR|Test|E|Lead 22395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022396|122396|989898|1|9999022396|MR|Test|E|Lead 22396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022397|122397|989898|1|9999022397|MR|Test|E|Lead 22397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022398|122398|989898|1|9999022398|MR|Test|E|Lead 22398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022399|122399|989898|1|9999022399|MR|Test|E|Lead 22399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022400|122400|989898|1|9999022400|MR|Test|E|Lead 22400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022401|122401|989898|1|9999022401|MR|Test|E|Lead 22401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022402|122402|989898|1|9999022402|MR|Test|E|Lead 22402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022403|122403|989898|1|9999022403|MR|Test|E|Lead 22403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022404|122404|989898|1|9999022404|MR|Test|E|Lead 22404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022405|122405|989898|1|9999022405|MR|Test|E|Lead 22405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022406|122406|989898|1|9999022406|MR|Test|E|Lead 22406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022407|122407|989898|1|9999022407|MR|Test|E|Lead 22407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022408|122408|989898|1|9999022408|MR|Test|E|Lead 22408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022409|122409|989898|1|9999022409|MR|Test|E|Lead 22409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022410|122410|989898|1|9999022410|MR|Test|E|Lead 22410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022411|122411|989898|1|9999022411|MR|Test|E|Lead 22411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022412|122412|989898|1|9999022412|MR|Test|E|Lead 22412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022413|122413|989898|1|9999022413|MR|Test|E|Lead 22413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022414|122414|989898|1|9999022414|MR|Test|E|Lead 22414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022415|122415|989898|1|9999022415|MR|Test|E|Lead 22415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022416|122416|989898|1|9999022416|MR|Test|E|Lead 22416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022417|122417|989898|1|9999022417|MR|Test|E|Lead 22417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022418|122418|989898|1|9999022418|MR|Test|E|Lead 22418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022419|122419|989898|1|9999022419|MR|Test|E|Lead 22419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022420|122420|989898|1|9999022420|MR|Test|E|Lead 22420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022421|122421|989898|1|9999022421|MR|Test|E|Lead 22421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022422|122422|989898|1|9999022422|MR|Test|E|Lead 22422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022423|122423|989898|1|9999022423|MR|Test|E|Lead 22423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022424|122424|989898|1|9999022424|MR|Test|E|Lead 22424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022425|122425|989898|1|9999022425|MR|Test|E|Lead 22425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022426|122426|989898|1|9999022426|MR|Test|E|Lead 22426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022427|122427|989898|1|9999022427|MR|Test|E|Lead 22427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022428|122428|989898|1|9999022428|MR|Test|E|Lead 22428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022429|122429|989898|1|9999022429|MR|Test|E|Lead 22429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022430|122430|989898|1|9999022430|MR|Test|E|Lead 22430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022431|122431|989898|1|9999022431|MR|Test|E|Lead 22431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022432|122432|989898|1|9999022432|MR|Test|E|Lead 22432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022433|122433|989898|1|9999022433|MR|Test|E|Lead 22433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022434|122434|989898|1|9999022434|MR|Test|E|Lead 22434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022435|122435|989898|1|9999022435|MR|Test|E|Lead 22435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022436|122436|989898|1|9999022436|MR|Test|E|Lead 22436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022437|122437|989898|1|9999022437|MR|Test|E|Lead 22437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022438|122438|989898|1|9999022438|MR|Test|E|Lead 22438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022439|122439|989898|1|9999022439|MR|Test|E|Lead 22439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022440|122440|989898|1|9999022440|MR|Test|E|Lead 22440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022441|122441|989898|1|9999022441|MR|Test|E|Lead 22441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022442|122442|989898|1|9999022442|MR|Test|E|Lead 22442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022443|122443|989898|1|9999022443|MR|Test|E|Lead 22443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022444|122444|989898|1|9999022444|MR|Test|E|Lead 22444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022445|122445|989898|1|9999022445|MR|Test|E|Lead 22445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022446|122446|989898|1|9999022446|MR|Test|E|Lead 22446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022447|122447|989898|1|9999022447|MR|Test|E|Lead 22447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022448|122448|989898|1|9999022448|MR|Test|E|Lead 22448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022449|122449|989898|1|9999022449|MR|Test|E|Lead 22449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022450|122450|989898|1|9999022450|MR|Test|E|Lead 22450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022451|122451|989898|1|9999022451|MR|Test|E|Lead 22451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022452|122452|989898|1|9999022452|MR|Test|E|Lead 22452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022453|122453|989898|1|9999022453|MR|Test|E|Lead 22453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022454|122454|989898|1|9999022454|MR|Test|E|Lead 22454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022455|122455|989898|1|9999022455|MR|Test|E|Lead 22455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022456|122456|989898|1|9999022456|MR|Test|E|Lead 22456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022457|122457|989898|1|9999022457|MR|Test|E|Lead 22457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022458|122458|989898|1|9999022458|MR|Test|E|Lead 22458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022459|122459|989898|1|9999022459|MR|Test|E|Lead 22459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022460|122460|989898|1|9999022460|MR|Test|E|Lead 22460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022461|122461|989898|1|9999022461|MR|Test|E|Lead 22461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022462|122462|989898|1|9999022462|MR|Test|E|Lead 22462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022463|122463|989898|1|9999022463|MR|Test|E|Lead 22463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022464|122464|989898|1|9999022464|MR|Test|E|Lead 22464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022465|122465|989898|1|9999022465|MR|Test|E|Lead 22465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022466|122466|989898|1|9999022466|MR|Test|E|Lead 22466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022467|122467|989898|1|9999022467|MR|Test|E|Lead 22467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022468|122468|989898|1|9999022468|MR|Test|E|Lead 22468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022469|122469|989898|1|9999022469|MR|Test|E|Lead 22469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022470|122470|989898|1|9999022470|MR|Test|E|Lead 22470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022471|122471|989898|1|9999022471|MR|Test|E|Lead 22471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022472|122472|989898|1|9999022472|MR|Test|E|Lead 22472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022473|122473|989898|1|9999022473|MR|Test|E|Lead 22473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022474|122474|989898|1|9999022474|MR|Test|E|Lead 22474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022475|122475|989898|1|9999022475|MR|Test|E|Lead 22475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022476|122476|989898|1|9999022476|MR|Test|E|Lead 22476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022477|122477|989898|1|9999022477|MR|Test|E|Lead 22477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022478|122478|989898|1|9999022478|MR|Test|E|Lead 22478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022479|122479|989898|1|9999022479|MR|Test|E|Lead 22479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022480|122480|989898|1|9999022480|MR|Test|E|Lead 22480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022481|122481|989898|1|9999022481|MR|Test|E|Lead 22481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022482|122482|989898|1|9999022482|MR|Test|E|Lead 22482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022483|122483|989898|1|9999022483|MR|Test|E|Lead 22483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022484|122484|989898|1|9999022484|MR|Test|E|Lead 22484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022485|122485|989898|1|9999022485|MR|Test|E|Lead 22485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022486|122486|989898|1|9999022486|MR|Test|E|Lead 22486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022487|122487|989898|1|9999022487|MR|Test|E|Lead 22487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022488|122488|989898|1|9999022488|MR|Test|E|Lead 22488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022489|122489|989898|1|9999022489|MR|Test|E|Lead 22489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022490|122490|989898|1|9999022490|MR|Test|E|Lead 22490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022491|122491|989898|1|9999022491|MR|Test|E|Lead 22491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022492|122492|989898|1|9999022492|MR|Test|E|Lead 22492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022493|122493|989898|1|9999022493|MR|Test|E|Lead 22493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022494|122494|989898|1|9999022494|MR|Test|E|Lead 22494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022495|122495|989898|1|9999022495|MR|Test|E|Lead 22495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022496|122496|989898|1|9999022496|MR|Test|E|Lead 22496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022497|122497|989898|1|9999022497|MR|Test|E|Lead 22497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022498|122498|989898|1|9999022498|MR|Test|E|Lead 22498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022499|122499|989898|1|9999022499|MR|Test|E|Lead 22499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022500|122500|989898|1|9999022500|MR|Test|E|Lead 22500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022501|122501|989898|1|9999022501|MR|Test|E|Lead 22501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022502|122502|989898|1|9999022502|MR|Test|E|Lead 22502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022503|122503|989898|1|9999022503|MR|Test|E|Lead 22503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022504|122504|989898|1|9999022504|MR|Test|E|Lead 22504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022505|122505|989898|1|9999022505|MR|Test|E|Lead 22505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022506|122506|989898|1|9999022506|MR|Test|E|Lead 22506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022507|122507|989898|1|9999022507|MR|Test|E|Lead 22507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022508|122508|989898|1|9999022508|MR|Test|E|Lead 22508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022509|122509|989898|1|9999022509|MR|Test|E|Lead 22509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022510|122510|989898|1|9999022510|MR|Test|E|Lead 22510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022511|122511|989898|1|9999022511|MR|Test|E|Lead 22511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022512|122512|989898|1|9999022512|MR|Test|E|Lead 22512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022513|122513|989898|1|9999022513|MR|Test|E|Lead 22513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022514|122514|989898|1|9999022514|MR|Test|E|Lead 22514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022515|122515|989898|1|9999022515|MR|Test|E|Lead 22515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022516|122516|989898|1|9999022516|MR|Test|E|Lead 22516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022517|122517|989898|1|9999022517|MR|Test|E|Lead 22517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022518|122518|989898|1|9999022518|MR|Test|E|Lead 22518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022519|122519|989898|1|9999022519|MR|Test|E|Lead 22519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022520|122520|989898|1|9999022520|MR|Test|E|Lead 22520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022521|122521|989898|1|9999022521|MR|Test|E|Lead 22521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022522|122522|989898|1|9999022522|MR|Test|E|Lead 22522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022523|122523|989898|1|9999022523|MR|Test|E|Lead 22523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022524|122524|989898|1|9999022524|MR|Test|E|Lead 22524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022525|122525|989898|1|9999022525|MR|Test|E|Lead 22525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022526|122526|989898|1|9999022526|MR|Test|E|Lead 22526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022527|122527|989898|1|9999022527|MR|Test|E|Lead 22527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022528|122528|989898|1|9999022528|MR|Test|E|Lead 22528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022529|122529|989898|1|9999022529|MR|Test|E|Lead 22529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022530|122530|989898|1|9999022530|MR|Test|E|Lead 22530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022531|122531|989898|1|9999022531|MR|Test|E|Lead 22531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022532|122532|989898|1|9999022532|MR|Test|E|Lead 22532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022533|122533|989898|1|9999022533|MR|Test|E|Lead 22533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022534|122534|989898|1|9999022534|MR|Test|E|Lead 22534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022535|122535|989898|1|9999022535|MR|Test|E|Lead 22535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022536|122536|989898|1|9999022536|MR|Test|E|Lead 22536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022537|122537|989898|1|9999022537|MR|Test|E|Lead 22537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022538|122538|989898|1|9999022538|MR|Test|E|Lead 22538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022539|122539|989898|1|9999022539|MR|Test|E|Lead 22539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022540|122540|989898|1|9999022540|MR|Test|E|Lead 22540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022541|122541|989898|1|9999022541|MR|Test|E|Lead 22541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022542|122542|989898|1|9999022542|MR|Test|E|Lead 22542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022543|122543|989898|1|9999022543|MR|Test|E|Lead 22543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022544|122544|989898|1|9999022544|MR|Test|E|Lead 22544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022545|122545|989898|1|9999022545|MR|Test|E|Lead 22545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022546|122546|989898|1|9999022546|MR|Test|E|Lead 22546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022547|122547|989898|1|9999022547|MR|Test|E|Lead 22547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022548|122548|989898|1|9999022548|MR|Test|E|Lead 22548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022549|122549|989898|1|9999022549|MR|Test|E|Lead 22549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022550|122550|989898|1|9999022550|MR|Test|E|Lead 22550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022551|122551|989898|1|9999022551|MR|Test|E|Lead 22551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022552|122552|989898|1|9999022552|MR|Test|E|Lead 22552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022553|122553|989898|1|9999022553|MR|Test|E|Lead 22553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022554|122554|989898|1|9999022554|MR|Test|E|Lead 22554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022555|122555|989898|1|9999022555|MR|Test|E|Lead 22555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022556|122556|989898|1|9999022556|MR|Test|E|Lead 22556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022557|122557|989898|1|9999022557|MR|Test|E|Lead 22557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022558|122558|989898|1|9999022558|MR|Test|E|Lead 22558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022559|122559|989898|1|9999022559|MR|Test|E|Lead 22559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022560|122560|989898|1|9999022560|MR|Test|E|Lead 22560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022561|122561|989898|1|9999022561|MR|Test|E|Lead 22561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022562|122562|989898|1|9999022562|MR|Test|E|Lead 22562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022563|122563|989898|1|9999022563|MR|Test|E|Lead 22563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022564|122564|989898|1|9999022564|MR|Test|E|Lead 22564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022565|122565|989898|1|9999022565|MR|Test|E|Lead 22565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022566|122566|989898|1|9999022566|MR|Test|E|Lead 22566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022567|122567|989898|1|9999022567|MR|Test|E|Lead 22567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022568|122568|989898|1|9999022568|MR|Test|E|Lead 22568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022569|122569|989898|1|9999022569|MR|Test|E|Lead 22569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022570|122570|989898|1|9999022570|MR|Test|E|Lead 22570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022571|122571|989898|1|9999022571|MR|Test|E|Lead 22571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022572|122572|989898|1|9999022572|MR|Test|E|Lead 22572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022573|122573|989898|1|9999022573|MR|Test|E|Lead 22573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022574|122574|989898|1|9999022574|MR|Test|E|Lead 22574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022575|122575|989898|1|9999022575|MR|Test|E|Lead 22575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022576|122576|989898|1|9999022576|MR|Test|E|Lead 22576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022577|122577|989898|1|9999022577|MR|Test|E|Lead 22577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022578|122578|989898|1|9999022578|MR|Test|E|Lead 22578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022579|122579|989898|1|9999022579|MR|Test|E|Lead 22579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022580|122580|989898|1|9999022580|MR|Test|E|Lead 22580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022581|122581|989898|1|9999022581|MR|Test|E|Lead 22581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022582|122582|989898|1|9999022582|MR|Test|E|Lead 22582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022583|122583|989898|1|9999022583|MR|Test|E|Lead 22583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022584|122584|989898|1|9999022584|MR|Test|E|Lead 22584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022585|122585|989898|1|9999022585|MR|Test|E|Lead 22585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022586|122586|989898|1|9999022586|MR|Test|E|Lead 22586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022587|122587|989898|1|9999022587|MR|Test|E|Lead 22587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022588|122588|989898|1|9999022588|MR|Test|E|Lead 22588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022589|122589|989898|1|9999022589|MR|Test|E|Lead 22589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022590|122590|989898|1|9999022590|MR|Test|E|Lead 22590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022591|122591|989898|1|9999022591|MR|Test|E|Lead 22591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022592|122592|989898|1|9999022592|MR|Test|E|Lead 22592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022593|122593|989898|1|9999022593|MR|Test|E|Lead 22593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022594|122594|989898|1|9999022594|MR|Test|E|Lead 22594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022595|122595|989898|1|9999022595|MR|Test|E|Lead 22595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022596|122596|989898|1|9999022596|MR|Test|E|Lead 22596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022597|122597|989898|1|9999022597|MR|Test|E|Lead 22597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022598|122598|989898|1|9999022598|MR|Test|E|Lead 22598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022599|122599|989898|1|9999022599|MR|Test|E|Lead 22599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022600|122600|989898|1|9999022600|MR|Test|E|Lead 22600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022601|122601|989898|1|9999022601|MR|Test|E|Lead 22601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022602|122602|989898|1|9999022602|MR|Test|E|Lead 22602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022603|122603|989898|1|9999022603|MR|Test|E|Lead 22603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022604|122604|989898|1|9999022604|MR|Test|E|Lead 22604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022605|122605|989898|1|9999022605|MR|Test|E|Lead 22605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022606|122606|989898|1|9999022606|MR|Test|E|Lead 22606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022607|122607|989898|1|9999022607|MR|Test|E|Lead 22607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022608|122608|989898|1|9999022608|MR|Test|E|Lead 22608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022609|122609|989898|1|9999022609|MR|Test|E|Lead 22609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022610|122610|989898|1|9999022610|MR|Test|E|Lead 22610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022611|122611|989898|1|9999022611|MR|Test|E|Lead 22611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022612|122612|989898|1|9999022612|MR|Test|E|Lead 22612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022613|122613|989898|1|9999022613|MR|Test|E|Lead 22613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022614|122614|989898|1|9999022614|MR|Test|E|Lead 22614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022615|122615|989898|1|9999022615|MR|Test|E|Lead 22615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022616|122616|989898|1|9999022616|MR|Test|E|Lead 22616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022617|122617|989898|1|9999022617|MR|Test|E|Lead 22617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022618|122618|989898|1|9999022618|MR|Test|E|Lead 22618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022619|122619|989898|1|9999022619|MR|Test|E|Lead 22619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022620|122620|989898|1|9999022620|MR|Test|E|Lead 22620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022621|122621|989898|1|9999022621|MR|Test|E|Lead 22621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022622|122622|989898|1|9999022622|MR|Test|E|Lead 22622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022623|122623|989898|1|9999022623|MR|Test|E|Lead 22623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022624|122624|989898|1|9999022624|MR|Test|E|Lead 22624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022625|122625|989898|1|9999022625|MR|Test|E|Lead 22625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022626|122626|989898|1|9999022626|MR|Test|E|Lead 22626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022627|122627|989898|1|9999022627|MR|Test|E|Lead 22627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022628|122628|989898|1|9999022628|MR|Test|E|Lead 22628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022629|122629|989898|1|9999022629|MR|Test|E|Lead 22629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022630|122630|989898|1|9999022630|MR|Test|E|Lead 22630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022631|122631|989898|1|9999022631|MR|Test|E|Lead 22631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022632|122632|989898|1|9999022632|MR|Test|E|Lead 22632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022633|122633|989898|1|9999022633|MR|Test|E|Lead 22633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022634|122634|989898|1|9999022634|MR|Test|E|Lead 22634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022635|122635|989898|1|9999022635|MR|Test|E|Lead 22635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022636|122636|989898|1|9999022636|MR|Test|E|Lead 22636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022637|122637|989898|1|9999022637|MR|Test|E|Lead 22637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022638|122638|989898|1|9999022638|MR|Test|E|Lead 22638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022639|122639|989898|1|9999022639|MR|Test|E|Lead 22639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022640|122640|989898|1|9999022640|MR|Test|E|Lead 22640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022641|122641|989898|1|9999022641|MR|Test|E|Lead 22641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022642|122642|989898|1|9999022642|MR|Test|E|Lead 22642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022643|122643|989898|1|9999022643|MR|Test|E|Lead 22643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022644|122644|989898|1|9999022644|MR|Test|E|Lead 22644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022645|122645|989898|1|9999022645|MR|Test|E|Lead 22645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022646|122646|989898|1|9999022646|MR|Test|E|Lead 22646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022647|122647|989898|1|9999022647|MR|Test|E|Lead 22647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022648|122648|989898|1|9999022648|MR|Test|E|Lead 22648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022649|122649|989898|1|9999022649|MR|Test|E|Lead 22649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022650|122650|989898|1|9999022650|MR|Test|E|Lead 22650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022651|122651|989898|1|9999022651|MR|Test|E|Lead 22651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022652|122652|989898|1|9999022652|MR|Test|E|Lead 22652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022653|122653|989898|1|9999022653|MR|Test|E|Lead 22653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022654|122654|989898|1|9999022654|MR|Test|E|Lead 22654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022655|122655|989898|1|9999022655|MR|Test|E|Lead 22655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022656|122656|989898|1|9999022656|MR|Test|E|Lead 22656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022657|122657|989898|1|9999022657|MR|Test|E|Lead 22657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022658|122658|989898|1|9999022658|MR|Test|E|Lead 22658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022659|122659|989898|1|9999022659|MR|Test|E|Lead 22659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022660|122660|989898|1|9999022660|MR|Test|E|Lead 22660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022661|122661|989898|1|9999022661|MR|Test|E|Lead 22661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022662|122662|989898|1|9999022662|MR|Test|E|Lead 22662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022663|122663|989898|1|9999022663|MR|Test|E|Lead 22663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022664|122664|989898|1|9999022664|MR|Test|E|Lead 22664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022665|122665|989898|1|9999022665|MR|Test|E|Lead 22665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022666|122666|989898|1|9999022666|MR|Test|E|Lead 22666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022667|122667|989898|1|9999022667|MR|Test|E|Lead 22667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022668|122668|989898|1|9999022668|MR|Test|E|Lead 22668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022669|122669|989898|1|9999022669|MR|Test|E|Lead 22669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022670|122670|989898|1|9999022670|MR|Test|E|Lead 22670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022671|122671|989898|1|9999022671|MR|Test|E|Lead 22671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022672|122672|989898|1|9999022672|MR|Test|E|Lead 22672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022673|122673|989898|1|9999022673|MR|Test|E|Lead 22673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022674|122674|989898|1|9999022674|MR|Test|E|Lead 22674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022675|122675|989898|1|9999022675|MR|Test|E|Lead 22675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022676|122676|989898|1|9999022676|MR|Test|E|Lead 22676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022677|122677|989898|1|9999022677|MR|Test|E|Lead 22677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022678|122678|989898|1|9999022678|MR|Test|E|Lead 22678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022679|122679|989898|1|9999022679|MR|Test|E|Lead 22679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022680|122680|989898|1|9999022680|MR|Test|E|Lead 22680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022681|122681|989898|1|9999022681|MR|Test|E|Lead 22681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022682|122682|989898|1|9999022682|MR|Test|E|Lead 22682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022683|122683|989898|1|9999022683|MR|Test|E|Lead 22683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022684|122684|989898|1|9999022684|MR|Test|E|Lead 22684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022685|122685|989898|1|9999022685|MR|Test|E|Lead 22685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022686|122686|989898|1|9999022686|MR|Test|E|Lead 22686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022687|122687|989898|1|9999022687|MR|Test|E|Lead 22687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022688|122688|989898|1|9999022688|MR|Test|E|Lead 22688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022689|122689|989898|1|9999022689|MR|Test|E|Lead 22689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022690|122690|989898|1|9999022690|MR|Test|E|Lead 22690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022691|122691|989898|1|9999022691|MR|Test|E|Lead 22691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022692|122692|989898|1|9999022692|MR|Test|E|Lead 22692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022693|122693|989898|1|9999022693|MR|Test|E|Lead 22693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022694|122694|989898|1|9999022694|MR|Test|E|Lead 22694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022695|122695|989898|1|9999022695|MR|Test|E|Lead 22695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022696|122696|989898|1|9999022696|MR|Test|E|Lead 22696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022697|122697|989898|1|9999022697|MR|Test|E|Lead 22697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022698|122698|989898|1|9999022698|MR|Test|E|Lead 22698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022699|122699|989898|1|9999022699|MR|Test|E|Lead 22699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022700|122700|989898|1|9999022700|MR|Test|E|Lead 22700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022701|122701|989898|1|9999022701|MR|Test|E|Lead 22701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022702|122702|989898|1|9999022702|MR|Test|E|Lead 22702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022703|122703|989898|1|9999022703|MR|Test|E|Lead 22703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022704|122704|989898|1|9999022704|MR|Test|E|Lead 22704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022705|122705|989898|1|9999022705|MR|Test|E|Lead 22705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022706|122706|989898|1|9999022706|MR|Test|E|Lead 22706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022707|122707|989898|1|9999022707|MR|Test|E|Lead 22707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022708|122708|989898|1|9999022708|MR|Test|E|Lead 22708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022709|122709|989898|1|9999022709|MR|Test|E|Lead 22709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022710|122710|989898|1|9999022710|MR|Test|E|Lead 22710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022711|122711|989898|1|9999022711|MR|Test|E|Lead 22711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022712|122712|989898|1|9999022712|MR|Test|E|Lead 22712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022713|122713|989898|1|9999022713|MR|Test|E|Lead 22713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022714|122714|989898|1|9999022714|MR|Test|E|Lead 22714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022715|122715|989898|1|9999022715|MR|Test|E|Lead 22715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022716|122716|989898|1|9999022716|MR|Test|E|Lead 22716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022717|122717|989898|1|9999022717|MR|Test|E|Lead 22717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022718|122718|989898|1|9999022718|MR|Test|E|Lead 22718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022719|122719|989898|1|9999022719|MR|Test|E|Lead 22719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022720|122720|989898|1|9999022720|MR|Test|E|Lead 22720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022721|122721|989898|1|9999022721|MR|Test|E|Lead 22721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022722|122722|989898|1|9999022722|MR|Test|E|Lead 22722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022723|122723|989898|1|9999022723|MR|Test|E|Lead 22723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022724|122724|989898|1|9999022724|MR|Test|E|Lead 22724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022725|122725|989898|1|9999022725|MR|Test|E|Lead 22725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022726|122726|989898|1|9999022726|MR|Test|E|Lead 22726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022727|122727|989898|1|9999022727|MR|Test|E|Lead 22727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022728|122728|989898|1|9999022728|MR|Test|E|Lead 22728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022729|122729|989898|1|9999022729|MR|Test|E|Lead 22729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022730|122730|989898|1|9999022730|MR|Test|E|Lead 22730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022731|122731|989898|1|9999022731|MR|Test|E|Lead 22731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022732|122732|989898|1|9999022732|MR|Test|E|Lead 22732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022733|122733|989898|1|9999022733|MR|Test|E|Lead 22733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022734|122734|989898|1|9999022734|MR|Test|E|Lead 22734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022735|122735|989898|1|9999022735|MR|Test|E|Lead 22735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022736|122736|989898|1|9999022736|MR|Test|E|Lead 22736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022737|122737|989898|1|9999022737|MR|Test|E|Lead 22737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022738|122738|989898|1|9999022738|MR|Test|E|Lead 22738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022739|122739|989898|1|9999022739|MR|Test|E|Lead 22739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022740|122740|989898|1|9999022740|MR|Test|E|Lead 22740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022741|122741|989898|1|9999022741|MR|Test|E|Lead 22741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022742|122742|989898|1|9999022742|MR|Test|E|Lead 22742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022743|122743|989898|1|9999022743|MR|Test|E|Lead 22743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022744|122744|989898|1|9999022744|MR|Test|E|Lead 22744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022745|122745|989898|1|9999022745|MR|Test|E|Lead 22745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022746|122746|989898|1|9999022746|MR|Test|E|Lead 22746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022747|122747|989898|1|9999022747|MR|Test|E|Lead 22747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022748|122748|989898|1|9999022748|MR|Test|E|Lead 22748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022749|122749|989898|1|9999022749|MR|Test|E|Lead 22749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022750|122750|989898|1|9999022750|MR|Test|E|Lead 22750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022751|122751|989898|1|9999022751|MR|Test|E|Lead 22751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022752|122752|989898|1|9999022752|MR|Test|E|Lead 22752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022753|122753|989898|1|9999022753|MR|Test|E|Lead 22753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022754|122754|989898|1|9999022754|MR|Test|E|Lead 22754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022755|122755|989898|1|9999022755|MR|Test|E|Lead 22755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022756|122756|989898|1|9999022756|MR|Test|E|Lead 22756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022757|122757|989898|1|9999022757|MR|Test|E|Lead 22757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022758|122758|989898|1|9999022758|MR|Test|E|Lead 22758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022759|122759|989898|1|9999022759|MR|Test|E|Lead 22759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022760|122760|989898|1|9999022760|MR|Test|E|Lead 22760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022761|122761|989898|1|9999022761|MR|Test|E|Lead 22761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022762|122762|989898|1|9999022762|MR|Test|E|Lead 22762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022763|122763|989898|1|9999022763|MR|Test|E|Lead 22763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022764|122764|989898|1|9999022764|MR|Test|E|Lead 22764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022765|122765|989898|1|9999022765|MR|Test|E|Lead 22765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022766|122766|989898|1|9999022766|MR|Test|E|Lead 22766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022767|122767|989898|1|9999022767|MR|Test|E|Lead 22767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022768|122768|989898|1|9999022768|MR|Test|E|Lead 22768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022769|122769|989898|1|9999022769|MR|Test|E|Lead 22769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022770|122770|989898|1|9999022770|MR|Test|E|Lead 22770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022771|122771|989898|1|9999022771|MR|Test|E|Lead 22771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022772|122772|989898|1|9999022772|MR|Test|E|Lead 22772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022773|122773|989898|1|9999022773|MR|Test|E|Lead 22773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022774|122774|989898|1|9999022774|MR|Test|E|Lead 22774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022775|122775|989898|1|9999022775|MR|Test|E|Lead 22775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022776|122776|989898|1|9999022776|MR|Test|E|Lead 22776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022777|122777|989898|1|9999022777|MR|Test|E|Lead 22777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022778|122778|989898|1|9999022778|MR|Test|E|Lead 22778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022779|122779|989898|1|9999022779|MR|Test|E|Lead 22779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022780|122780|989898|1|9999022780|MR|Test|E|Lead 22780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022781|122781|989898|1|9999022781|MR|Test|E|Lead 22781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022782|122782|989898|1|9999022782|MR|Test|E|Lead 22782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022783|122783|989898|1|9999022783|MR|Test|E|Lead 22783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022784|122784|989898|1|9999022784|MR|Test|E|Lead 22784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022785|122785|989898|1|9999022785|MR|Test|E|Lead 22785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022786|122786|989898|1|9999022786|MR|Test|E|Lead 22786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022787|122787|989898|1|9999022787|MR|Test|E|Lead 22787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022788|122788|989898|1|9999022788|MR|Test|E|Lead 22788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022789|122789|989898|1|9999022789|MR|Test|E|Lead 22789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022790|122790|989898|1|9999022790|MR|Test|E|Lead 22790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022791|122791|989898|1|9999022791|MR|Test|E|Lead 22791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022792|122792|989898|1|9999022792|MR|Test|E|Lead 22792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022793|122793|989898|1|9999022793|MR|Test|E|Lead 22793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022794|122794|989898|1|9999022794|MR|Test|E|Lead 22794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022795|122795|989898|1|9999022795|MR|Test|E|Lead 22795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022796|122796|989898|1|9999022796|MR|Test|E|Lead 22796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022797|122797|989898|1|9999022797|MR|Test|E|Lead 22797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022798|122798|989898|1|9999022798|MR|Test|E|Lead 22798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022799|122799|989898|1|9999022799|MR|Test|E|Lead 22799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022800|122800|989898|1|9999022800|MR|Test|E|Lead 22800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022801|122801|989898|1|9999022801|MR|Test|E|Lead 22801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022802|122802|989898|1|9999022802|MR|Test|E|Lead 22802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022803|122803|989898|1|9999022803|MR|Test|E|Lead 22803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022804|122804|989898|1|9999022804|MR|Test|E|Lead 22804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022805|122805|989898|1|9999022805|MR|Test|E|Lead 22805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022806|122806|989898|1|9999022806|MR|Test|E|Lead 22806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022807|122807|989898|1|9999022807|MR|Test|E|Lead 22807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022808|122808|989898|1|9999022808|MR|Test|E|Lead 22808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022809|122809|989898|1|9999022809|MR|Test|E|Lead 22809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022810|122810|989898|1|9999022810|MR|Test|E|Lead 22810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022811|122811|989898|1|9999022811|MR|Test|E|Lead 22811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022812|122812|989898|1|9999022812|MR|Test|E|Lead 22812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022813|122813|989898|1|9999022813|MR|Test|E|Lead 22813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022814|122814|989898|1|9999022814|MR|Test|E|Lead 22814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022815|122815|989898|1|9999022815|MR|Test|E|Lead 22815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022816|122816|989898|1|9999022816|MR|Test|E|Lead 22816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022817|122817|989898|1|9999022817|MR|Test|E|Lead 22817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022818|122818|989898|1|9999022818|MR|Test|E|Lead 22818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022819|122819|989898|1|9999022819|MR|Test|E|Lead 22819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022820|122820|989898|1|9999022820|MR|Test|E|Lead 22820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022821|122821|989898|1|9999022821|MR|Test|E|Lead 22821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022822|122822|989898|1|9999022822|MR|Test|E|Lead 22822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022823|122823|989898|1|9999022823|MR|Test|E|Lead 22823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022824|122824|989898|1|9999022824|MR|Test|E|Lead 22824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022825|122825|989898|1|9999022825|MR|Test|E|Lead 22825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022826|122826|989898|1|9999022826|MR|Test|E|Lead 22826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022827|122827|989898|1|9999022827|MR|Test|E|Lead 22827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022828|122828|989898|1|9999022828|MR|Test|E|Lead 22828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022829|122829|989898|1|9999022829|MR|Test|E|Lead 22829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022830|122830|989898|1|9999022830|MR|Test|E|Lead 22830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022831|122831|989898|1|9999022831|MR|Test|E|Lead 22831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022832|122832|989898|1|9999022832|MR|Test|E|Lead 22832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022833|122833|989898|1|9999022833|MR|Test|E|Lead 22833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022834|122834|989898|1|9999022834|MR|Test|E|Lead 22834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022835|122835|989898|1|9999022835|MR|Test|E|Lead 22835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022836|122836|989898|1|9999022836|MR|Test|E|Lead 22836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022837|122837|989898|1|9999022837|MR|Test|E|Lead 22837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022838|122838|989898|1|9999022838|MR|Test|E|Lead 22838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022839|122839|989898|1|9999022839|MR|Test|E|Lead 22839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022840|122840|989898|1|9999022840|MR|Test|E|Lead 22840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022841|122841|989898|1|9999022841|MR|Test|E|Lead 22841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022842|122842|989898|1|9999022842|MR|Test|E|Lead 22842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022843|122843|989898|1|9999022843|MR|Test|E|Lead 22843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022844|122844|989898|1|9999022844|MR|Test|E|Lead 22844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022845|122845|989898|1|9999022845|MR|Test|E|Lead 22845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022846|122846|989898|1|9999022846|MR|Test|E|Lead 22846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022847|122847|989898|1|9999022847|MR|Test|E|Lead 22847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022848|122848|989898|1|9999022848|MR|Test|E|Lead 22848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022849|122849|989898|1|9999022849|MR|Test|E|Lead 22849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022850|122850|989898|1|9999022850|MR|Test|E|Lead 22850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022851|122851|989898|1|9999022851|MR|Test|E|Lead 22851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022852|122852|989898|1|9999022852|MR|Test|E|Lead 22852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022853|122853|989898|1|9999022853|MR|Test|E|Lead 22853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022854|122854|989898|1|9999022854|MR|Test|E|Lead 22854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022855|122855|989898|1|9999022855|MR|Test|E|Lead 22855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022856|122856|989898|1|9999022856|MR|Test|E|Lead 22856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022857|122857|989898|1|9999022857|MR|Test|E|Lead 22857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022858|122858|989898|1|9999022858|MR|Test|E|Lead 22858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022859|122859|989898|1|9999022859|MR|Test|E|Lead 22859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022860|122860|989898|1|9999022860|MR|Test|E|Lead 22860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022861|122861|989898|1|9999022861|MR|Test|E|Lead 22861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022862|122862|989898|1|9999022862|MR|Test|E|Lead 22862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022863|122863|989898|1|9999022863|MR|Test|E|Lead 22863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022864|122864|989898|1|9999022864|MR|Test|E|Lead 22864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022865|122865|989898|1|9999022865|MR|Test|E|Lead 22865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022866|122866|989898|1|9999022866|MR|Test|E|Lead 22866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022867|122867|989898|1|9999022867|MR|Test|E|Lead 22867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022868|122868|989898|1|9999022868|MR|Test|E|Lead 22868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022869|122869|989898|1|9999022869|MR|Test|E|Lead 22869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022870|122870|989898|1|9999022870|MR|Test|E|Lead 22870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022871|122871|989898|1|9999022871|MR|Test|E|Lead 22871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022872|122872|989898|1|9999022872|MR|Test|E|Lead 22872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022873|122873|989898|1|9999022873|MR|Test|E|Lead 22873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022874|122874|989898|1|9999022874|MR|Test|E|Lead 22874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022875|122875|989898|1|9999022875|MR|Test|E|Lead 22875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022876|122876|989898|1|9999022876|MR|Test|E|Lead 22876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022877|122877|989898|1|9999022877|MR|Test|E|Lead 22877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022878|122878|989898|1|9999022878|MR|Test|E|Lead 22878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022879|122879|989898|1|9999022879|MR|Test|E|Lead 22879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022880|122880|989898|1|9999022880|MR|Test|E|Lead 22880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022881|122881|989898|1|9999022881|MR|Test|E|Lead 22881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022882|122882|989898|1|9999022882|MR|Test|E|Lead 22882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022883|122883|989898|1|9999022883|MR|Test|E|Lead 22883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022884|122884|989898|1|9999022884|MR|Test|E|Lead 22884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022885|122885|989898|1|9999022885|MR|Test|E|Lead 22885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022886|122886|989898|1|9999022886|MR|Test|E|Lead 22886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022887|122887|989898|1|9999022887|MR|Test|E|Lead 22887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022888|122888|989898|1|9999022888|MR|Test|E|Lead 22888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022889|122889|989898|1|9999022889|MR|Test|E|Lead 22889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022890|122890|989898|1|9999022890|MR|Test|E|Lead 22890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022891|122891|989898|1|9999022891|MR|Test|E|Lead 22891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022892|122892|989898|1|9999022892|MR|Test|E|Lead 22892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022893|122893|989898|1|9999022893|MR|Test|E|Lead 22893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022894|122894|989898|1|9999022894|MR|Test|E|Lead 22894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022895|122895|989898|1|9999022895|MR|Test|E|Lead 22895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022896|122896|989898|1|9999022896|MR|Test|E|Lead 22896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022897|122897|989898|1|9999022897|MR|Test|E|Lead 22897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022898|122898|989898|1|9999022898|MR|Test|E|Lead 22898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022899|122899|989898|1|9999022899|MR|Test|E|Lead 22899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022900|122900|989898|1|9999022900|MR|Test|E|Lead 22900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022901|122901|989898|1|9999022901|MR|Test|E|Lead 22901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022902|122902|989898|1|9999022902|MR|Test|E|Lead 22902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022903|122903|989898|1|9999022903|MR|Test|E|Lead 22903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022904|122904|989898|1|9999022904|MR|Test|E|Lead 22904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022905|122905|989898|1|9999022905|MR|Test|E|Lead 22905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022906|122906|989898|1|9999022906|MR|Test|E|Lead 22906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022907|122907|989898|1|9999022907|MR|Test|E|Lead 22907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022908|122908|989898|1|9999022908|MR|Test|E|Lead 22908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022909|122909|989898|1|9999022909|MR|Test|E|Lead 22909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022910|122910|989898|1|9999022910|MR|Test|E|Lead 22910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022911|122911|989898|1|9999022911|MR|Test|E|Lead 22911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022912|122912|989898|1|9999022912|MR|Test|E|Lead 22912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022913|122913|989898|1|9999022913|MR|Test|E|Lead 22913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022914|122914|989898|1|9999022914|MR|Test|E|Lead 22914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022915|122915|989898|1|9999022915|MR|Test|E|Lead 22915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022916|122916|989898|1|9999022916|MR|Test|E|Lead 22916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022917|122917|989898|1|9999022917|MR|Test|E|Lead 22917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022918|122918|989898|1|9999022918|MR|Test|E|Lead 22918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022919|122919|989898|1|9999022919|MR|Test|E|Lead 22919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022920|122920|989898|1|9999022920|MR|Test|E|Lead 22920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022921|122921|989898|1|9999022921|MR|Test|E|Lead 22921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022922|122922|989898|1|9999022922|MR|Test|E|Lead 22922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022923|122923|989898|1|9999022923|MR|Test|E|Lead 22923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022924|122924|989898|1|9999022924|MR|Test|E|Lead 22924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022925|122925|989898|1|9999022925|MR|Test|E|Lead 22925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022926|122926|989898|1|9999022926|MR|Test|E|Lead 22926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022927|122927|989898|1|9999022927|MR|Test|E|Lead 22927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022928|122928|989898|1|9999022928|MR|Test|E|Lead 22928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022929|122929|989898|1|9999022929|MR|Test|E|Lead 22929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022930|122930|989898|1|9999022930|MR|Test|E|Lead 22930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022931|122931|989898|1|9999022931|MR|Test|E|Lead 22931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022932|122932|989898|1|9999022932|MR|Test|E|Lead 22932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022933|122933|989898|1|9999022933|MR|Test|E|Lead 22933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022934|122934|989898|1|9999022934|MR|Test|E|Lead 22934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022935|122935|989898|1|9999022935|MR|Test|E|Lead 22935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022936|122936|989898|1|9999022936|MR|Test|E|Lead 22936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022937|122937|989898|1|9999022937|MR|Test|E|Lead 22937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022938|122938|989898|1|9999022938|MR|Test|E|Lead 22938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022939|122939|989898|1|9999022939|MR|Test|E|Lead 22939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022940|122940|989898|1|9999022940|MR|Test|E|Lead 22940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022941|122941|989898|1|9999022941|MR|Test|E|Lead 22941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022942|122942|989898|1|9999022942|MR|Test|E|Lead 22942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022943|122943|989898|1|9999022943|MR|Test|E|Lead 22943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022944|122944|989898|1|9999022944|MR|Test|E|Lead 22944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022945|122945|989898|1|9999022945|MR|Test|E|Lead 22945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022946|122946|989898|1|9999022946|MR|Test|E|Lead 22946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022947|122947|989898|1|9999022947|MR|Test|E|Lead 22947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022948|122948|989898|1|9999022948|MR|Test|E|Lead 22948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022949|122949|989898|1|9999022949|MR|Test|E|Lead 22949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022950|122950|989898|1|9999022950|MR|Test|E|Lead 22950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022951|122951|989898|1|9999022951|MR|Test|E|Lead 22951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022952|122952|989898|1|9999022952|MR|Test|E|Lead 22952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022953|122953|989898|1|9999022953|MR|Test|E|Lead 22953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022954|122954|989898|1|9999022954|MR|Test|E|Lead 22954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022955|122955|989898|1|9999022955|MR|Test|E|Lead 22955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022956|122956|989898|1|9999022956|MR|Test|E|Lead 22956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022957|122957|989898|1|9999022957|MR|Test|E|Lead 22957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022958|122958|989898|1|9999022958|MR|Test|E|Lead 22958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022959|122959|989898|1|9999022959|MR|Test|E|Lead 22959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022960|122960|989898|1|9999022960|MR|Test|E|Lead 22960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022961|122961|989898|1|9999022961|MR|Test|E|Lead 22961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022962|122962|989898|1|9999022962|MR|Test|E|Lead 22962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022963|122963|989898|1|9999022963|MR|Test|E|Lead 22963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022964|122964|989898|1|9999022964|MR|Test|E|Lead 22964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022965|122965|989898|1|9999022965|MR|Test|E|Lead 22965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022966|122966|989898|1|9999022966|MR|Test|E|Lead 22966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022967|122967|989898|1|9999022967|MR|Test|E|Lead 22967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022968|122968|989898|1|9999022968|MR|Test|E|Lead 22968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022969|122969|989898|1|9999022969|MR|Test|E|Lead 22969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022970|122970|989898|1|9999022970|MR|Test|E|Lead 22970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022971|122971|989898|1|9999022971|MR|Test|E|Lead 22971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022972|122972|989898|1|9999022972|MR|Test|E|Lead 22972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022973|122973|989898|1|9999022973|MR|Test|E|Lead 22973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022974|122974|989898|1|9999022974|MR|Test|E|Lead 22974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022975|122975|989898|1|9999022975|MR|Test|E|Lead 22975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022976|122976|989898|1|9999022976|MR|Test|E|Lead 22976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022977|122977|989898|1|9999022977|MR|Test|E|Lead 22977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022978|122978|989898|1|9999022978|MR|Test|E|Lead 22978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022979|122979|989898|1|9999022979|MR|Test|E|Lead 22979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022980|122980|989898|1|9999022980|MR|Test|E|Lead 22980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022981|122981|989898|1|9999022981|MR|Test|E|Lead 22981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022982|122982|989898|1|9999022982|MR|Test|E|Lead 22982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022983|122983|989898|1|9999022983|MR|Test|E|Lead 22983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022984|122984|989898|1|9999022984|MR|Test|E|Lead 22984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022985|122985|989898|1|9999022985|MR|Test|E|Lead 22985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022986|122986|989898|1|9999022986|MR|Test|E|Lead 22986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022987|122987|989898|1|9999022987|MR|Test|E|Lead 22987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022988|122988|989898|1|9999022988|MR|Test|E|Lead 22988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022989|122989|989898|1|9999022989|MR|Test|E|Lead 22989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022990|122990|989898|1|9999022990|MR|Test|E|Lead 22990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022991|122991|989898|1|9999022991|MR|Test|E|Lead 22991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022992|122992|989898|1|9999022992|MR|Test|E|Lead 22992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022993|122993|989898|1|9999022993|MR|Test|E|Lead 22993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022994|122994|989898|1|9999022994|MR|Test|E|Lead 22994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022995|122995|989898|1|9999022995|MR|Test|E|Lead 22995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022996|122996|989898|1|9999022996|MR|Test|E|Lead 22996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022997|122997|989898|1|9999022997|MR|Test|E|Lead 22997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022998|122998|989898|1|9999022998|MR|Test|E|Lead 22998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1022999|122999|989898|1|9999022999|MR|Test|E|Lead 22999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023000|123000|989898|1|9999023000|MR|Test|E|Lead 23000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023001|123001|989898|1|9999023001|MR|Test|E|Lead 23001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023002|123002|989898|1|9999023002|MR|Test|E|Lead 23002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023003|123003|989898|1|9999023003|MR|Test|E|Lead 23003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023004|123004|989898|1|9999023004|MR|Test|E|Lead 23004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023005|123005|989898|1|9999023005|MR|Test|E|Lead 23005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023006|123006|989898|1|9999023006|MR|Test|E|Lead 23006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023007|123007|989898|1|9999023007|MR|Test|E|Lead 23007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023008|123008|989898|1|9999023008|MR|Test|E|Lead 23008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023009|123009|989898|1|9999023009|MR|Test|E|Lead 23009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023010|123010|989898|1|9999023010|MR|Test|E|Lead 23010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023011|123011|989898|1|9999023011|MR|Test|E|Lead 23011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023012|123012|989898|1|9999023012|MR|Test|E|Lead 23012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023013|123013|989898|1|9999023013|MR|Test|E|Lead 23013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023014|123014|989898|1|9999023014|MR|Test|E|Lead 23014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023015|123015|989898|1|9999023015|MR|Test|E|Lead 23015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023016|123016|989898|1|9999023016|MR|Test|E|Lead 23016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023017|123017|989898|1|9999023017|MR|Test|E|Lead 23017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023018|123018|989898|1|9999023018|MR|Test|E|Lead 23018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023019|123019|989898|1|9999023019|MR|Test|E|Lead 23019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023020|123020|989898|1|9999023020|MR|Test|E|Lead 23020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023021|123021|989898|1|9999023021|MR|Test|E|Lead 23021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023022|123022|989898|1|9999023022|MR|Test|E|Lead 23022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023023|123023|989898|1|9999023023|MR|Test|E|Lead 23023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023024|123024|989898|1|9999023024|MR|Test|E|Lead 23024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023025|123025|989898|1|9999023025|MR|Test|E|Lead 23025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023026|123026|989898|1|9999023026|MR|Test|E|Lead 23026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023027|123027|989898|1|9999023027|MR|Test|E|Lead 23027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023028|123028|989898|1|9999023028|MR|Test|E|Lead 23028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023029|123029|989898|1|9999023029|MR|Test|E|Lead 23029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023030|123030|989898|1|9999023030|MR|Test|E|Lead 23030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023031|123031|989898|1|9999023031|MR|Test|E|Lead 23031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023032|123032|989898|1|9999023032|MR|Test|E|Lead 23032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023033|123033|989898|1|9999023033|MR|Test|E|Lead 23033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023034|123034|989898|1|9999023034|MR|Test|E|Lead 23034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023035|123035|989898|1|9999023035|MR|Test|E|Lead 23035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023036|123036|989898|1|9999023036|MR|Test|E|Lead 23036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023037|123037|989898|1|9999023037|MR|Test|E|Lead 23037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023038|123038|989898|1|9999023038|MR|Test|E|Lead 23038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023039|123039|989898|1|9999023039|MR|Test|E|Lead 23039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023040|123040|989898|1|9999023040|MR|Test|E|Lead 23040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023041|123041|989898|1|9999023041|MR|Test|E|Lead 23041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023042|123042|989898|1|9999023042|MR|Test|E|Lead 23042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023043|123043|989898|1|9999023043|MR|Test|E|Lead 23043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023044|123044|989898|1|9999023044|MR|Test|E|Lead 23044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023045|123045|989898|1|9999023045|MR|Test|E|Lead 23045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023046|123046|989898|1|9999023046|MR|Test|E|Lead 23046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023047|123047|989898|1|9999023047|MR|Test|E|Lead 23047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023048|123048|989898|1|9999023048|MR|Test|E|Lead 23048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023049|123049|989898|1|9999023049|MR|Test|E|Lead 23049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023050|123050|989898|1|9999023050|MR|Test|E|Lead 23050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023051|123051|989898|1|9999023051|MR|Test|E|Lead 23051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023052|123052|989898|1|9999023052|MR|Test|E|Lead 23052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023053|123053|989898|1|9999023053|MR|Test|E|Lead 23053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023054|123054|989898|1|9999023054|MR|Test|E|Lead 23054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023055|123055|989898|1|9999023055|MR|Test|E|Lead 23055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023056|123056|989898|1|9999023056|MR|Test|E|Lead 23056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023057|123057|989898|1|9999023057|MR|Test|E|Lead 23057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023058|123058|989898|1|9999023058|MR|Test|E|Lead 23058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023059|123059|989898|1|9999023059|MR|Test|E|Lead 23059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023060|123060|989898|1|9999023060|MR|Test|E|Lead 23060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023061|123061|989898|1|9999023061|MR|Test|E|Lead 23061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023062|123062|989898|1|9999023062|MR|Test|E|Lead 23062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023063|123063|989898|1|9999023063|MR|Test|E|Lead 23063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023064|123064|989898|1|9999023064|MR|Test|E|Lead 23064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023065|123065|989898|1|9999023065|MR|Test|E|Lead 23065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023066|123066|989898|1|9999023066|MR|Test|E|Lead 23066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023067|123067|989898|1|9999023067|MR|Test|E|Lead 23067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023068|123068|989898|1|9999023068|MR|Test|E|Lead 23068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023069|123069|989898|1|9999023069|MR|Test|E|Lead 23069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023070|123070|989898|1|9999023070|MR|Test|E|Lead 23070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023071|123071|989898|1|9999023071|MR|Test|E|Lead 23071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023072|123072|989898|1|9999023072|MR|Test|E|Lead 23072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023073|123073|989898|1|9999023073|MR|Test|E|Lead 23073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023074|123074|989898|1|9999023074|MR|Test|E|Lead 23074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023075|123075|989898|1|9999023075|MR|Test|E|Lead 23075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023076|123076|989898|1|9999023076|MR|Test|E|Lead 23076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023077|123077|989898|1|9999023077|MR|Test|E|Lead 23077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023078|123078|989898|1|9999023078|MR|Test|E|Lead 23078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023079|123079|989898|1|9999023079|MR|Test|E|Lead 23079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023080|123080|989898|1|9999023080|MR|Test|E|Lead 23080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023081|123081|989898|1|9999023081|MR|Test|E|Lead 23081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023082|123082|989898|1|9999023082|MR|Test|E|Lead 23082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023083|123083|989898|1|9999023083|MR|Test|E|Lead 23083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023084|123084|989898|1|9999023084|MR|Test|E|Lead 23084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023085|123085|989898|1|9999023085|MR|Test|E|Lead 23085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023086|123086|989898|1|9999023086|MR|Test|E|Lead 23086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023087|123087|989898|1|9999023087|MR|Test|E|Lead 23087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023088|123088|989898|1|9999023088|MR|Test|E|Lead 23088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023089|123089|989898|1|9999023089|MR|Test|E|Lead 23089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023090|123090|989898|1|9999023090|MR|Test|E|Lead 23090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023091|123091|989898|1|9999023091|MR|Test|E|Lead 23091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023092|123092|989898|1|9999023092|MR|Test|E|Lead 23092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023093|123093|989898|1|9999023093|MR|Test|E|Lead 23093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023094|123094|989898|1|9999023094|MR|Test|E|Lead 23094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023095|123095|989898|1|9999023095|MR|Test|E|Lead 23095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023096|123096|989898|1|9999023096|MR|Test|E|Lead 23096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023097|123097|989898|1|9999023097|MR|Test|E|Lead 23097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023098|123098|989898|1|9999023098|MR|Test|E|Lead 23098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023099|123099|989898|1|9999023099|MR|Test|E|Lead 23099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023100|123100|989898|1|9999023100|MR|Test|E|Lead 23100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023101|123101|989898|1|9999023101|MR|Test|E|Lead 23101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023102|123102|989898|1|9999023102|MR|Test|E|Lead 23102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023103|123103|989898|1|9999023103|MR|Test|E|Lead 23103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023104|123104|989898|1|9999023104|MR|Test|E|Lead 23104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023105|123105|989898|1|9999023105|MR|Test|E|Lead 23105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023106|123106|989898|1|9999023106|MR|Test|E|Lead 23106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023107|123107|989898|1|9999023107|MR|Test|E|Lead 23107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023108|123108|989898|1|9999023108|MR|Test|E|Lead 23108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023109|123109|989898|1|9999023109|MR|Test|E|Lead 23109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023110|123110|989898|1|9999023110|MR|Test|E|Lead 23110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023111|123111|989898|1|9999023111|MR|Test|E|Lead 23111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023112|123112|989898|1|9999023112|MR|Test|E|Lead 23112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023113|123113|989898|1|9999023113|MR|Test|E|Lead 23113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023114|123114|989898|1|9999023114|MR|Test|E|Lead 23114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023115|123115|989898|1|9999023115|MR|Test|E|Lead 23115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023116|123116|989898|1|9999023116|MR|Test|E|Lead 23116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023117|123117|989898|1|9999023117|MR|Test|E|Lead 23117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023118|123118|989898|1|9999023118|MR|Test|E|Lead 23118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023119|123119|989898|1|9999023119|MR|Test|E|Lead 23119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023120|123120|989898|1|9999023120|MR|Test|E|Lead 23120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023121|123121|989898|1|9999023121|MR|Test|E|Lead 23121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023122|123122|989898|1|9999023122|MR|Test|E|Lead 23122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023123|123123|989898|1|9999023123|MR|Test|E|Lead 23123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023124|123124|989898|1|9999023124|MR|Test|E|Lead 23124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023125|123125|989898|1|9999023125|MR|Test|E|Lead 23125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023126|123126|989898|1|9999023126|MR|Test|E|Lead 23126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023127|123127|989898|1|9999023127|MR|Test|E|Lead 23127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023128|123128|989898|1|9999023128|MR|Test|E|Lead 23128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023129|123129|989898|1|9999023129|MR|Test|E|Lead 23129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023130|123130|989898|1|9999023130|MR|Test|E|Lead 23130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023131|123131|989898|1|9999023131|MR|Test|E|Lead 23131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023132|123132|989898|1|9999023132|MR|Test|E|Lead 23132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023133|123133|989898|1|9999023133|MR|Test|E|Lead 23133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023134|123134|989898|1|9999023134|MR|Test|E|Lead 23134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023135|123135|989898|1|9999023135|MR|Test|E|Lead 23135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023136|123136|989898|1|9999023136|MR|Test|E|Lead 23136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023137|123137|989898|1|9999023137|MR|Test|E|Lead 23137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023138|123138|989898|1|9999023138|MR|Test|E|Lead 23138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023139|123139|989898|1|9999023139|MR|Test|E|Lead 23139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023140|123140|989898|1|9999023140|MR|Test|E|Lead 23140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023141|123141|989898|1|9999023141|MR|Test|E|Lead 23141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023142|123142|989898|1|9999023142|MR|Test|E|Lead 23142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023143|123143|989898|1|9999023143|MR|Test|E|Lead 23143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023144|123144|989898|1|9999023144|MR|Test|E|Lead 23144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023145|123145|989898|1|9999023145|MR|Test|E|Lead 23145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023146|123146|989898|1|9999023146|MR|Test|E|Lead 23146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023147|123147|989898|1|9999023147|MR|Test|E|Lead 23147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023148|123148|989898|1|9999023148|MR|Test|E|Lead 23148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023149|123149|989898|1|9999023149|MR|Test|E|Lead 23149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023150|123150|989898|1|9999023150|MR|Test|E|Lead 23150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023151|123151|989898|1|9999023151|MR|Test|E|Lead 23151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023152|123152|989898|1|9999023152|MR|Test|E|Lead 23152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023153|123153|989898|1|9999023153|MR|Test|E|Lead 23153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023154|123154|989898|1|9999023154|MR|Test|E|Lead 23154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023155|123155|989898|1|9999023155|MR|Test|E|Lead 23155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023156|123156|989898|1|9999023156|MR|Test|E|Lead 23156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023157|123157|989898|1|9999023157|MR|Test|E|Lead 23157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023158|123158|989898|1|9999023158|MR|Test|E|Lead 23158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023159|123159|989898|1|9999023159|MR|Test|E|Lead 23159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023160|123160|989898|1|9999023160|MR|Test|E|Lead 23160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023161|123161|989898|1|9999023161|MR|Test|E|Lead 23161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023162|123162|989898|1|9999023162|MR|Test|E|Lead 23162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023163|123163|989898|1|9999023163|MR|Test|E|Lead 23163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023164|123164|989898|1|9999023164|MR|Test|E|Lead 23164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023165|123165|989898|1|9999023165|MR|Test|E|Lead 23165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023166|123166|989898|1|9999023166|MR|Test|E|Lead 23166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023167|123167|989898|1|9999023167|MR|Test|E|Lead 23167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023168|123168|989898|1|9999023168|MR|Test|E|Lead 23168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023169|123169|989898|1|9999023169|MR|Test|E|Lead 23169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023170|123170|989898|1|9999023170|MR|Test|E|Lead 23170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023171|123171|989898|1|9999023171|MR|Test|E|Lead 23171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023172|123172|989898|1|9999023172|MR|Test|E|Lead 23172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023173|123173|989898|1|9999023173|MR|Test|E|Lead 23173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023174|123174|989898|1|9999023174|MR|Test|E|Lead 23174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023175|123175|989898|1|9999023175|MR|Test|E|Lead 23175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023176|123176|989898|1|9999023176|MR|Test|E|Lead 23176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023177|123177|989898|1|9999023177|MR|Test|E|Lead 23177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023178|123178|989898|1|9999023178|MR|Test|E|Lead 23178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023179|123179|989898|1|9999023179|MR|Test|E|Lead 23179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023180|123180|989898|1|9999023180|MR|Test|E|Lead 23180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023181|123181|989898|1|9999023181|MR|Test|E|Lead 23181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023182|123182|989898|1|9999023182|MR|Test|E|Lead 23182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023183|123183|989898|1|9999023183|MR|Test|E|Lead 23183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023184|123184|989898|1|9999023184|MR|Test|E|Lead 23184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023185|123185|989898|1|9999023185|MR|Test|E|Lead 23185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023186|123186|989898|1|9999023186|MR|Test|E|Lead 23186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023187|123187|989898|1|9999023187|MR|Test|E|Lead 23187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023188|123188|989898|1|9999023188|MR|Test|E|Lead 23188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023189|123189|989898|1|9999023189|MR|Test|E|Lead 23189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023190|123190|989898|1|9999023190|MR|Test|E|Lead 23190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023191|123191|989898|1|9999023191|MR|Test|E|Lead 23191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023192|123192|989898|1|9999023192|MR|Test|E|Lead 23192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023193|123193|989898|1|9999023193|MR|Test|E|Lead 23193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023194|123194|989898|1|9999023194|MR|Test|E|Lead 23194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023195|123195|989898|1|9999023195|MR|Test|E|Lead 23195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023196|123196|989898|1|9999023196|MR|Test|E|Lead 23196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023197|123197|989898|1|9999023197|MR|Test|E|Lead 23197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023198|123198|989898|1|9999023198|MR|Test|E|Lead 23198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023199|123199|989898|1|9999023199|MR|Test|E|Lead 23199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023200|123200|989898|1|9999023200|MR|Test|E|Lead 23200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023201|123201|989898|1|9999023201|MR|Test|E|Lead 23201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023202|123202|989898|1|9999023202|MR|Test|E|Lead 23202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023203|123203|989898|1|9999023203|MR|Test|E|Lead 23203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023204|123204|989898|1|9999023204|MR|Test|E|Lead 23204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023205|123205|989898|1|9999023205|MR|Test|E|Lead 23205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023206|123206|989898|1|9999023206|MR|Test|E|Lead 23206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023207|123207|989898|1|9999023207|MR|Test|E|Lead 23207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023208|123208|989898|1|9999023208|MR|Test|E|Lead 23208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023209|123209|989898|1|9999023209|MR|Test|E|Lead 23209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023210|123210|989898|1|9999023210|MR|Test|E|Lead 23210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023211|123211|989898|1|9999023211|MR|Test|E|Lead 23211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023212|123212|989898|1|9999023212|MR|Test|E|Lead 23212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023213|123213|989898|1|9999023213|MR|Test|E|Lead 23213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023214|123214|989898|1|9999023214|MR|Test|E|Lead 23214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023215|123215|989898|1|9999023215|MR|Test|E|Lead 23215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023216|123216|989898|1|9999023216|MR|Test|E|Lead 23216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023217|123217|989898|1|9999023217|MR|Test|E|Lead 23217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023218|123218|989898|1|9999023218|MR|Test|E|Lead 23218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023219|123219|989898|1|9999023219|MR|Test|E|Lead 23219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023220|123220|989898|1|9999023220|MR|Test|E|Lead 23220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023221|123221|989898|1|9999023221|MR|Test|E|Lead 23221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023222|123222|989898|1|9999023222|MR|Test|E|Lead 23222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023223|123223|989898|1|9999023223|MR|Test|E|Lead 23223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023224|123224|989898|1|9999023224|MR|Test|E|Lead 23224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023225|123225|989898|1|9999023225|MR|Test|E|Lead 23225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023226|123226|989898|1|9999023226|MR|Test|E|Lead 23226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023227|123227|989898|1|9999023227|MR|Test|E|Lead 23227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023228|123228|989898|1|9999023228|MR|Test|E|Lead 23228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023229|123229|989898|1|9999023229|MR|Test|E|Lead 23229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023230|123230|989898|1|9999023230|MR|Test|E|Lead 23230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023231|123231|989898|1|9999023231|MR|Test|E|Lead 23231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023232|123232|989898|1|9999023232|MR|Test|E|Lead 23232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023233|123233|989898|1|9999023233|MR|Test|E|Lead 23233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023234|123234|989898|1|9999023234|MR|Test|E|Lead 23234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023235|123235|989898|1|9999023235|MR|Test|E|Lead 23235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023236|123236|989898|1|9999023236|MR|Test|E|Lead 23236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023237|123237|989898|1|9999023237|MR|Test|E|Lead 23237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023238|123238|989898|1|9999023238|MR|Test|E|Lead 23238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023239|123239|989898|1|9999023239|MR|Test|E|Lead 23239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023240|123240|989898|1|9999023240|MR|Test|E|Lead 23240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023241|123241|989898|1|9999023241|MR|Test|E|Lead 23241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023242|123242|989898|1|9999023242|MR|Test|E|Lead 23242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023243|123243|989898|1|9999023243|MR|Test|E|Lead 23243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023244|123244|989898|1|9999023244|MR|Test|E|Lead 23244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023245|123245|989898|1|9999023245|MR|Test|E|Lead 23245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023246|123246|989898|1|9999023246|MR|Test|E|Lead 23246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023247|123247|989898|1|9999023247|MR|Test|E|Lead 23247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023248|123248|989898|1|9999023248|MR|Test|E|Lead 23248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023249|123249|989898|1|9999023249|MR|Test|E|Lead 23249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023250|123250|989898|1|9999023250|MR|Test|E|Lead 23250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023251|123251|989898|1|9999023251|MR|Test|E|Lead 23251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023252|123252|989898|1|9999023252|MR|Test|E|Lead 23252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023253|123253|989898|1|9999023253|MR|Test|E|Lead 23253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023254|123254|989898|1|9999023254|MR|Test|E|Lead 23254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023255|123255|989898|1|9999023255|MR|Test|E|Lead 23255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023256|123256|989898|1|9999023256|MR|Test|E|Lead 23256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023257|123257|989898|1|9999023257|MR|Test|E|Lead 23257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023258|123258|989898|1|9999023258|MR|Test|E|Lead 23258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023259|123259|989898|1|9999023259|MR|Test|E|Lead 23259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023260|123260|989898|1|9999023260|MR|Test|E|Lead 23260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023261|123261|989898|1|9999023261|MR|Test|E|Lead 23261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023262|123262|989898|1|9999023262|MR|Test|E|Lead 23262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023263|123263|989898|1|9999023263|MR|Test|E|Lead 23263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023264|123264|989898|1|9999023264|MR|Test|E|Lead 23264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023265|123265|989898|1|9999023265|MR|Test|E|Lead 23265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023266|123266|989898|1|9999023266|MR|Test|E|Lead 23266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023267|123267|989898|1|9999023267|MR|Test|E|Lead 23267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023268|123268|989898|1|9999023268|MR|Test|E|Lead 23268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023269|123269|989898|1|9999023269|MR|Test|E|Lead 23269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023270|123270|989898|1|9999023270|MR|Test|E|Lead 23270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023271|123271|989898|1|9999023271|MR|Test|E|Lead 23271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023272|123272|989898|1|9999023272|MR|Test|E|Lead 23272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023273|123273|989898|1|9999023273|MR|Test|E|Lead 23273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023274|123274|989898|1|9999023274|MR|Test|E|Lead 23274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023275|123275|989898|1|9999023275|MR|Test|E|Lead 23275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023276|123276|989898|1|9999023276|MR|Test|E|Lead 23276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023277|123277|989898|1|9999023277|MR|Test|E|Lead 23277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023278|123278|989898|1|9999023278|MR|Test|E|Lead 23278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023279|123279|989898|1|9999023279|MR|Test|E|Lead 23279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023280|123280|989898|1|9999023280|MR|Test|E|Lead 23280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023281|123281|989898|1|9999023281|MR|Test|E|Lead 23281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023282|123282|989898|1|9999023282|MR|Test|E|Lead 23282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023283|123283|989898|1|9999023283|MR|Test|E|Lead 23283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023284|123284|989898|1|9999023284|MR|Test|E|Lead 23284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023285|123285|989898|1|9999023285|MR|Test|E|Lead 23285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023286|123286|989898|1|9999023286|MR|Test|E|Lead 23286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023287|123287|989898|1|9999023287|MR|Test|E|Lead 23287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023288|123288|989898|1|9999023288|MR|Test|E|Lead 23288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023289|123289|989898|1|9999023289|MR|Test|E|Lead 23289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023290|123290|989898|1|9999023290|MR|Test|E|Lead 23290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023291|123291|989898|1|9999023291|MR|Test|E|Lead 23291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023292|123292|989898|1|9999023292|MR|Test|E|Lead 23292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023293|123293|989898|1|9999023293|MR|Test|E|Lead 23293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023294|123294|989898|1|9999023294|MR|Test|E|Lead 23294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023295|123295|989898|1|9999023295|MR|Test|E|Lead 23295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023296|123296|989898|1|9999023296|MR|Test|E|Lead 23296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023297|123297|989898|1|9999023297|MR|Test|E|Lead 23297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023298|123298|989898|1|9999023298|MR|Test|E|Lead 23298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023299|123299|989898|1|9999023299|MR|Test|E|Lead 23299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023300|123300|989898|1|9999023300|MR|Test|E|Lead 23300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023301|123301|989898|1|9999023301|MR|Test|E|Lead 23301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023302|123302|989898|1|9999023302|MR|Test|E|Lead 23302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023303|123303|989898|1|9999023303|MR|Test|E|Lead 23303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023304|123304|989898|1|9999023304|MR|Test|E|Lead 23304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023305|123305|989898|1|9999023305|MR|Test|E|Lead 23305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023306|123306|989898|1|9999023306|MR|Test|E|Lead 23306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023307|123307|989898|1|9999023307|MR|Test|E|Lead 23307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023308|123308|989898|1|9999023308|MR|Test|E|Lead 23308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023309|123309|989898|1|9999023309|MR|Test|E|Lead 23309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023310|123310|989898|1|9999023310|MR|Test|E|Lead 23310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023311|123311|989898|1|9999023311|MR|Test|E|Lead 23311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023312|123312|989898|1|9999023312|MR|Test|E|Lead 23312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023313|123313|989898|1|9999023313|MR|Test|E|Lead 23313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023314|123314|989898|1|9999023314|MR|Test|E|Lead 23314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023315|123315|989898|1|9999023315|MR|Test|E|Lead 23315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023316|123316|989898|1|9999023316|MR|Test|E|Lead 23316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023317|123317|989898|1|9999023317|MR|Test|E|Lead 23317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023318|123318|989898|1|9999023318|MR|Test|E|Lead 23318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023319|123319|989898|1|9999023319|MR|Test|E|Lead 23319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023320|123320|989898|1|9999023320|MR|Test|E|Lead 23320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023321|123321|989898|1|9999023321|MR|Test|E|Lead 23321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023322|123322|989898|1|9999023322|MR|Test|E|Lead 23322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023323|123323|989898|1|9999023323|MR|Test|E|Lead 23323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023324|123324|989898|1|9999023324|MR|Test|E|Lead 23324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023325|123325|989898|1|9999023325|MR|Test|E|Lead 23325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023326|123326|989898|1|9999023326|MR|Test|E|Lead 23326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023327|123327|989898|1|9999023327|MR|Test|E|Lead 23327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023328|123328|989898|1|9999023328|MR|Test|E|Lead 23328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023329|123329|989898|1|9999023329|MR|Test|E|Lead 23329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023330|123330|989898|1|9999023330|MR|Test|E|Lead 23330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023331|123331|989898|1|9999023331|MR|Test|E|Lead 23331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023332|123332|989898|1|9999023332|MR|Test|E|Lead 23332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023333|123333|989898|1|9999023333|MR|Test|E|Lead 23333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023334|123334|989898|1|9999023334|MR|Test|E|Lead 23334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023335|123335|989898|1|9999023335|MR|Test|E|Lead 23335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023336|123336|989898|1|9999023336|MR|Test|E|Lead 23336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023337|123337|989898|1|9999023337|MR|Test|E|Lead 23337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023338|123338|989898|1|9999023338|MR|Test|E|Lead 23338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023339|123339|989898|1|9999023339|MR|Test|E|Lead 23339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023340|123340|989898|1|9999023340|MR|Test|E|Lead 23340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023341|123341|989898|1|9999023341|MR|Test|E|Lead 23341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023342|123342|989898|1|9999023342|MR|Test|E|Lead 23342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023343|123343|989898|1|9999023343|MR|Test|E|Lead 23343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023344|123344|989898|1|9999023344|MR|Test|E|Lead 23344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023345|123345|989898|1|9999023345|MR|Test|E|Lead 23345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023346|123346|989898|1|9999023346|MR|Test|E|Lead 23346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023347|123347|989898|1|9999023347|MR|Test|E|Lead 23347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023348|123348|989898|1|9999023348|MR|Test|E|Lead 23348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023349|123349|989898|1|9999023349|MR|Test|E|Lead 23349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023350|123350|989898|1|9999023350|MR|Test|E|Lead 23350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023351|123351|989898|1|9999023351|MR|Test|E|Lead 23351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023352|123352|989898|1|9999023352|MR|Test|E|Lead 23352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023353|123353|989898|1|9999023353|MR|Test|E|Lead 23353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023354|123354|989898|1|9999023354|MR|Test|E|Lead 23354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023355|123355|989898|1|9999023355|MR|Test|E|Lead 23355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023356|123356|989898|1|9999023356|MR|Test|E|Lead 23356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023357|123357|989898|1|9999023357|MR|Test|E|Lead 23357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023358|123358|989898|1|9999023358|MR|Test|E|Lead 23358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023359|123359|989898|1|9999023359|MR|Test|E|Lead 23359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023360|123360|989898|1|9999023360|MR|Test|E|Lead 23360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023361|123361|989898|1|9999023361|MR|Test|E|Lead 23361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023362|123362|989898|1|9999023362|MR|Test|E|Lead 23362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023363|123363|989898|1|9999023363|MR|Test|E|Lead 23363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023364|123364|989898|1|9999023364|MR|Test|E|Lead 23364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023365|123365|989898|1|9999023365|MR|Test|E|Lead 23365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023366|123366|989898|1|9999023366|MR|Test|E|Lead 23366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023367|123367|989898|1|9999023367|MR|Test|E|Lead 23367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023368|123368|989898|1|9999023368|MR|Test|E|Lead 23368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023369|123369|989898|1|9999023369|MR|Test|E|Lead 23369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023370|123370|989898|1|9999023370|MR|Test|E|Lead 23370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023371|123371|989898|1|9999023371|MR|Test|E|Lead 23371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023372|123372|989898|1|9999023372|MR|Test|E|Lead 23372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023373|123373|989898|1|9999023373|MR|Test|E|Lead 23373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023374|123374|989898|1|9999023374|MR|Test|E|Lead 23374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023375|123375|989898|1|9999023375|MR|Test|E|Lead 23375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023376|123376|989898|1|9999023376|MR|Test|E|Lead 23376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023377|123377|989898|1|9999023377|MR|Test|E|Lead 23377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023378|123378|989898|1|9999023378|MR|Test|E|Lead 23378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023379|123379|989898|1|9999023379|MR|Test|E|Lead 23379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023380|123380|989898|1|9999023380|MR|Test|E|Lead 23380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023381|123381|989898|1|9999023381|MR|Test|E|Lead 23381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023382|123382|989898|1|9999023382|MR|Test|E|Lead 23382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023383|123383|989898|1|9999023383|MR|Test|E|Lead 23383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023384|123384|989898|1|9999023384|MR|Test|E|Lead 23384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023385|123385|989898|1|9999023385|MR|Test|E|Lead 23385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023386|123386|989898|1|9999023386|MR|Test|E|Lead 23386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023387|123387|989898|1|9999023387|MR|Test|E|Lead 23387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023388|123388|989898|1|9999023388|MR|Test|E|Lead 23388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023389|123389|989898|1|9999023389|MR|Test|E|Lead 23389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023390|123390|989898|1|9999023390|MR|Test|E|Lead 23390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023391|123391|989898|1|9999023391|MR|Test|E|Lead 23391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023392|123392|989898|1|9999023392|MR|Test|E|Lead 23392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023393|123393|989898|1|9999023393|MR|Test|E|Lead 23393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023394|123394|989898|1|9999023394|MR|Test|E|Lead 23394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023395|123395|989898|1|9999023395|MR|Test|E|Lead 23395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023396|123396|989898|1|9999023396|MR|Test|E|Lead 23396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023397|123397|989898|1|9999023397|MR|Test|E|Lead 23397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023398|123398|989898|1|9999023398|MR|Test|E|Lead 23398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023399|123399|989898|1|9999023399|MR|Test|E|Lead 23399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023400|123400|989898|1|9999023400|MR|Test|E|Lead 23400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023401|123401|989898|1|9999023401|MR|Test|E|Lead 23401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023402|123402|989898|1|9999023402|MR|Test|E|Lead 23402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023403|123403|989898|1|9999023403|MR|Test|E|Lead 23403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023404|123404|989898|1|9999023404|MR|Test|E|Lead 23404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023405|123405|989898|1|9999023405|MR|Test|E|Lead 23405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023406|123406|989898|1|9999023406|MR|Test|E|Lead 23406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023407|123407|989898|1|9999023407|MR|Test|E|Lead 23407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023408|123408|989898|1|9999023408|MR|Test|E|Lead 23408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023409|123409|989898|1|9999023409|MR|Test|E|Lead 23409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023410|123410|989898|1|9999023410|MR|Test|E|Lead 23410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023411|123411|989898|1|9999023411|MR|Test|E|Lead 23411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023412|123412|989898|1|9999023412|MR|Test|E|Lead 23412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023413|123413|989898|1|9999023413|MR|Test|E|Lead 23413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023414|123414|989898|1|9999023414|MR|Test|E|Lead 23414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023415|123415|989898|1|9999023415|MR|Test|E|Lead 23415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023416|123416|989898|1|9999023416|MR|Test|E|Lead 23416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023417|123417|989898|1|9999023417|MR|Test|E|Lead 23417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023418|123418|989898|1|9999023418|MR|Test|E|Lead 23418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023419|123419|989898|1|9999023419|MR|Test|E|Lead 23419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023420|123420|989898|1|9999023420|MR|Test|E|Lead 23420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023421|123421|989898|1|9999023421|MR|Test|E|Lead 23421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023422|123422|989898|1|9999023422|MR|Test|E|Lead 23422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023423|123423|989898|1|9999023423|MR|Test|E|Lead 23423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023424|123424|989898|1|9999023424|MR|Test|E|Lead 23424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023425|123425|989898|1|9999023425|MR|Test|E|Lead 23425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023426|123426|989898|1|9999023426|MR|Test|E|Lead 23426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023427|123427|989898|1|9999023427|MR|Test|E|Lead 23427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023428|123428|989898|1|9999023428|MR|Test|E|Lead 23428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023429|123429|989898|1|9999023429|MR|Test|E|Lead 23429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023430|123430|989898|1|9999023430|MR|Test|E|Lead 23430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023431|123431|989898|1|9999023431|MR|Test|E|Lead 23431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023432|123432|989898|1|9999023432|MR|Test|E|Lead 23432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023433|123433|989898|1|9999023433|MR|Test|E|Lead 23433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023434|123434|989898|1|9999023434|MR|Test|E|Lead 23434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023435|123435|989898|1|9999023435|MR|Test|E|Lead 23435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023436|123436|989898|1|9999023436|MR|Test|E|Lead 23436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023437|123437|989898|1|9999023437|MR|Test|E|Lead 23437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023438|123438|989898|1|9999023438|MR|Test|E|Lead 23438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023439|123439|989898|1|9999023439|MR|Test|E|Lead 23439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023440|123440|989898|1|9999023440|MR|Test|E|Lead 23440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023441|123441|989898|1|9999023441|MR|Test|E|Lead 23441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023442|123442|989898|1|9999023442|MR|Test|E|Lead 23442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023443|123443|989898|1|9999023443|MR|Test|E|Lead 23443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023444|123444|989898|1|9999023444|MR|Test|E|Lead 23444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023445|123445|989898|1|9999023445|MR|Test|E|Lead 23445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023446|123446|989898|1|9999023446|MR|Test|E|Lead 23446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023447|123447|989898|1|9999023447|MR|Test|E|Lead 23447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023448|123448|989898|1|9999023448|MR|Test|E|Lead 23448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023449|123449|989898|1|9999023449|MR|Test|E|Lead 23449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023450|123450|989898|1|9999023450|MR|Test|E|Lead 23450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023451|123451|989898|1|9999023451|MR|Test|E|Lead 23451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023452|123452|989898|1|9999023452|MR|Test|E|Lead 23452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023453|123453|989898|1|9999023453|MR|Test|E|Lead 23453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023454|123454|989898|1|9999023454|MR|Test|E|Lead 23454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023455|123455|989898|1|9999023455|MR|Test|E|Lead 23455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023456|123456|989898|1|9999023456|MR|Test|E|Lead 23456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023457|123457|989898|1|9999023457|MR|Test|E|Lead 23457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023458|123458|989898|1|9999023458|MR|Test|E|Lead 23458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023459|123459|989898|1|9999023459|MR|Test|E|Lead 23459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023460|123460|989898|1|9999023460|MR|Test|E|Lead 23460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023461|123461|989898|1|9999023461|MR|Test|E|Lead 23461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023462|123462|989898|1|9999023462|MR|Test|E|Lead 23462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023463|123463|989898|1|9999023463|MR|Test|E|Lead 23463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023464|123464|989898|1|9999023464|MR|Test|E|Lead 23464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023465|123465|989898|1|9999023465|MR|Test|E|Lead 23465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023466|123466|989898|1|9999023466|MR|Test|E|Lead 23466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023467|123467|989898|1|9999023467|MR|Test|E|Lead 23467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023468|123468|989898|1|9999023468|MR|Test|E|Lead 23468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023469|123469|989898|1|9999023469|MR|Test|E|Lead 23469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023470|123470|989898|1|9999023470|MR|Test|E|Lead 23470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023471|123471|989898|1|9999023471|MR|Test|E|Lead 23471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023472|123472|989898|1|9999023472|MR|Test|E|Lead 23472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023473|123473|989898|1|9999023473|MR|Test|E|Lead 23473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023474|123474|989898|1|9999023474|MR|Test|E|Lead 23474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023475|123475|989898|1|9999023475|MR|Test|E|Lead 23475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023476|123476|989898|1|9999023476|MR|Test|E|Lead 23476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023477|123477|989898|1|9999023477|MR|Test|E|Lead 23477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023478|123478|989898|1|9999023478|MR|Test|E|Lead 23478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023479|123479|989898|1|9999023479|MR|Test|E|Lead 23479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023480|123480|989898|1|9999023480|MR|Test|E|Lead 23480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023481|123481|989898|1|9999023481|MR|Test|E|Lead 23481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023482|123482|989898|1|9999023482|MR|Test|E|Lead 23482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023483|123483|989898|1|9999023483|MR|Test|E|Lead 23483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023484|123484|989898|1|9999023484|MR|Test|E|Lead 23484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023485|123485|989898|1|9999023485|MR|Test|E|Lead 23485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023486|123486|989898|1|9999023486|MR|Test|E|Lead 23486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023487|123487|989898|1|9999023487|MR|Test|E|Lead 23487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023488|123488|989898|1|9999023488|MR|Test|E|Lead 23488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023489|123489|989898|1|9999023489|MR|Test|E|Lead 23489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023490|123490|989898|1|9999023490|MR|Test|E|Lead 23490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023491|123491|989898|1|9999023491|MR|Test|E|Lead 23491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023492|123492|989898|1|9999023492|MR|Test|E|Lead 23492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023493|123493|989898|1|9999023493|MR|Test|E|Lead 23493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023494|123494|989898|1|9999023494|MR|Test|E|Lead 23494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023495|123495|989898|1|9999023495|MR|Test|E|Lead 23495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023496|123496|989898|1|9999023496|MR|Test|E|Lead 23496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023497|123497|989898|1|9999023497|MR|Test|E|Lead 23497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023498|123498|989898|1|9999023498|MR|Test|E|Lead 23498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023499|123499|989898|1|9999023499|MR|Test|E|Lead 23499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023500|123500|989898|1|9999023500|MR|Test|E|Lead 23500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023501|123501|989898|1|9999023501|MR|Test|E|Lead 23501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023502|123502|989898|1|9999023502|MR|Test|E|Lead 23502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023503|123503|989898|1|9999023503|MR|Test|E|Lead 23503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023504|123504|989898|1|9999023504|MR|Test|E|Lead 23504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023505|123505|989898|1|9999023505|MR|Test|E|Lead 23505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023506|123506|989898|1|9999023506|MR|Test|E|Lead 23506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023507|123507|989898|1|9999023507|MR|Test|E|Lead 23507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023508|123508|989898|1|9999023508|MR|Test|E|Lead 23508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023509|123509|989898|1|9999023509|MR|Test|E|Lead 23509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023510|123510|989898|1|9999023510|MR|Test|E|Lead 23510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023511|123511|989898|1|9999023511|MR|Test|E|Lead 23511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023512|123512|989898|1|9999023512|MR|Test|E|Lead 23512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023513|123513|989898|1|9999023513|MR|Test|E|Lead 23513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023514|123514|989898|1|9999023514|MR|Test|E|Lead 23514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023515|123515|989898|1|9999023515|MR|Test|E|Lead 23515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023516|123516|989898|1|9999023516|MR|Test|E|Lead 23516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023517|123517|989898|1|9999023517|MR|Test|E|Lead 23517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023518|123518|989898|1|9999023518|MR|Test|E|Lead 23518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023519|123519|989898|1|9999023519|MR|Test|E|Lead 23519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023520|123520|989898|1|9999023520|MR|Test|E|Lead 23520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023521|123521|989898|1|9999023521|MR|Test|E|Lead 23521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023522|123522|989898|1|9999023522|MR|Test|E|Lead 23522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023523|123523|989898|1|9999023523|MR|Test|E|Lead 23523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023524|123524|989898|1|9999023524|MR|Test|E|Lead 23524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023525|123525|989898|1|9999023525|MR|Test|E|Lead 23525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023526|123526|989898|1|9999023526|MR|Test|E|Lead 23526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023527|123527|989898|1|9999023527|MR|Test|E|Lead 23527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023528|123528|989898|1|9999023528|MR|Test|E|Lead 23528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023529|123529|989898|1|9999023529|MR|Test|E|Lead 23529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023530|123530|989898|1|9999023530|MR|Test|E|Lead 23530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023531|123531|989898|1|9999023531|MR|Test|E|Lead 23531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023532|123532|989898|1|9999023532|MR|Test|E|Lead 23532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023533|123533|989898|1|9999023533|MR|Test|E|Lead 23533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023534|123534|989898|1|9999023534|MR|Test|E|Lead 23534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023535|123535|989898|1|9999023535|MR|Test|E|Lead 23535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023536|123536|989898|1|9999023536|MR|Test|E|Lead 23536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023537|123537|989898|1|9999023537|MR|Test|E|Lead 23537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023538|123538|989898|1|9999023538|MR|Test|E|Lead 23538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023539|123539|989898|1|9999023539|MR|Test|E|Lead 23539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023540|123540|989898|1|9999023540|MR|Test|E|Lead 23540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023541|123541|989898|1|9999023541|MR|Test|E|Lead 23541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023542|123542|989898|1|9999023542|MR|Test|E|Lead 23542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023543|123543|989898|1|9999023543|MR|Test|E|Lead 23543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023544|123544|989898|1|9999023544|MR|Test|E|Lead 23544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023545|123545|989898|1|9999023545|MR|Test|E|Lead 23545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023546|123546|989898|1|9999023546|MR|Test|E|Lead 23546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023547|123547|989898|1|9999023547|MR|Test|E|Lead 23547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023548|123548|989898|1|9999023548|MR|Test|E|Lead 23548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023549|123549|989898|1|9999023549|MR|Test|E|Lead 23549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023550|123550|989898|1|9999023550|MR|Test|E|Lead 23550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023551|123551|989898|1|9999023551|MR|Test|E|Lead 23551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023552|123552|989898|1|9999023552|MR|Test|E|Lead 23552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023553|123553|989898|1|9999023553|MR|Test|E|Lead 23553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023554|123554|989898|1|9999023554|MR|Test|E|Lead 23554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023555|123555|989898|1|9999023555|MR|Test|E|Lead 23555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023556|123556|989898|1|9999023556|MR|Test|E|Lead 23556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023557|123557|989898|1|9999023557|MR|Test|E|Lead 23557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023558|123558|989898|1|9999023558|MR|Test|E|Lead 23558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023559|123559|989898|1|9999023559|MR|Test|E|Lead 23559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023560|123560|989898|1|9999023560|MR|Test|E|Lead 23560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023561|123561|989898|1|9999023561|MR|Test|E|Lead 23561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023562|123562|989898|1|9999023562|MR|Test|E|Lead 23562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023563|123563|989898|1|9999023563|MR|Test|E|Lead 23563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023564|123564|989898|1|9999023564|MR|Test|E|Lead 23564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023565|123565|989898|1|9999023565|MR|Test|E|Lead 23565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023566|123566|989898|1|9999023566|MR|Test|E|Lead 23566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023567|123567|989898|1|9999023567|MR|Test|E|Lead 23567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023568|123568|989898|1|9999023568|MR|Test|E|Lead 23568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023569|123569|989898|1|9999023569|MR|Test|E|Lead 23569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023570|123570|989898|1|9999023570|MR|Test|E|Lead 23570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023571|123571|989898|1|9999023571|MR|Test|E|Lead 23571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023572|123572|989898|1|9999023572|MR|Test|E|Lead 23572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023573|123573|989898|1|9999023573|MR|Test|E|Lead 23573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023574|123574|989898|1|9999023574|MR|Test|E|Lead 23574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023575|123575|989898|1|9999023575|MR|Test|E|Lead 23575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023576|123576|989898|1|9999023576|MR|Test|E|Lead 23576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023577|123577|989898|1|9999023577|MR|Test|E|Lead 23577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023578|123578|989898|1|9999023578|MR|Test|E|Lead 23578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023579|123579|989898|1|9999023579|MR|Test|E|Lead 23579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023580|123580|989898|1|9999023580|MR|Test|E|Lead 23580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023581|123581|989898|1|9999023581|MR|Test|E|Lead 23581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023582|123582|989898|1|9999023582|MR|Test|E|Lead 23582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023583|123583|989898|1|9999023583|MR|Test|E|Lead 23583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023584|123584|989898|1|9999023584|MR|Test|E|Lead 23584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023585|123585|989898|1|9999023585|MR|Test|E|Lead 23585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023586|123586|989898|1|9999023586|MR|Test|E|Lead 23586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023587|123587|989898|1|9999023587|MR|Test|E|Lead 23587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023588|123588|989898|1|9999023588|MR|Test|E|Lead 23588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023589|123589|989898|1|9999023589|MR|Test|E|Lead 23589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023590|123590|989898|1|9999023590|MR|Test|E|Lead 23590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023591|123591|989898|1|9999023591|MR|Test|E|Lead 23591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023592|123592|989898|1|9999023592|MR|Test|E|Lead 23592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023593|123593|989898|1|9999023593|MR|Test|E|Lead 23593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023594|123594|989898|1|9999023594|MR|Test|E|Lead 23594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023595|123595|989898|1|9999023595|MR|Test|E|Lead 23595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023596|123596|989898|1|9999023596|MR|Test|E|Lead 23596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023597|123597|989898|1|9999023597|MR|Test|E|Lead 23597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023598|123598|989898|1|9999023598|MR|Test|E|Lead 23598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023599|123599|989898|1|9999023599|MR|Test|E|Lead 23599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023600|123600|989898|1|9999023600|MR|Test|E|Lead 23600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023601|123601|989898|1|9999023601|MR|Test|E|Lead 23601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023602|123602|989898|1|9999023602|MR|Test|E|Lead 23602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023603|123603|989898|1|9999023603|MR|Test|E|Lead 23603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023604|123604|989898|1|9999023604|MR|Test|E|Lead 23604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023605|123605|989898|1|9999023605|MR|Test|E|Lead 23605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023606|123606|989898|1|9999023606|MR|Test|E|Lead 23606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023607|123607|989898|1|9999023607|MR|Test|E|Lead 23607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023608|123608|989898|1|9999023608|MR|Test|E|Lead 23608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023609|123609|989898|1|9999023609|MR|Test|E|Lead 23609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023610|123610|989898|1|9999023610|MR|Test|E|Lead 23610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023611|123611|989898|1|9999023611|MR|Test|E|Lead 23611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023612|123612|989898|1|9999023612|MR|Test|E|Lead 23612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023613|123613|989898|1|9999023613|MR|Test|E|Lead 23613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023614|123614|989898|1|9999023614|MR|Test|E|Lead 23614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023615|123615|989898|1|9999023615|MR|Test|E|Lead 23615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023616|123616|989898|1|9999023616|MR|Test|E|Lead 23616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023617|123617|989898|1|9999023617|MR|Test|E|Lead 23617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023618|123618|989898|1|9999023618|MR|Test|E|Lead 23618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023619|123619|989898|1|9999023619|MR|Test|E|Lead 23619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023620|123620|989898|1|9999023620|MR|Test|E|Lead 23620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023621|123621|989898|1|9999023621|MR|Test|E|Lead 23621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023622|123622|989898|1|9999023622|MR|Test|E|Lead 23622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023623|123623|989898|1|9999023623|MR|Test|E|Lead 23623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023624|123624|989898|1|9999023624|MR|Test|E|Lead 23624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023625|123625|989898|1|9999023625|MR|Test|E|Lead 23625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023626|123626|989898|1|9999023626|MR|Test|E|Lead 23626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023627|123627|989898|1|9999023627|MR|Test|E|Lead 23627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023628|123628|989898|1|9999023628|MR|Test|E|Lead 23628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023629|123629|989898|1|9999023629|MR|Test|E|Lead 23629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023630|123630|989898|1|9999023630|MR|Test|E|Lead 23630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023631|123631|989898|1|9999023631|MR|Test|E|Lead 23631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023632|123632|989898|1|9999023632|MR|Test|E|Lead 23632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023633|123633|989898|1|9999023633|MR|Test|E|Lead 23633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023634|123634|989898|1|9999023634|MR|Test|E|Lead 23634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023635|123635|989898|1|9999023635|MR|Test|E|Lead 23635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023636|123636|989898|1|9999023636|MR|Test|E|Lead 23636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023637|123637|989898|1|9999023637|MR|Test|E|Lead 23637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023638|123638|989898|1|9999023638|MR|Test|E|Lead 23638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023639|123639|989898|1|9999023639|MR|Test|E|Lead 23639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023640|123640|989898|1|9999023640|MR|Test|E|Lead 23640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023641|123641|989898|1|9999023641|MR|Test|E|Lead 23641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023642|123642|989898|1|9999023642|MR|Test|E|Lead 23642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023643|123643|989898|1|9999023643|MR|Test|E|Lead 23643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023644|123644|989898|1|9999023644|MR|Test|E|Lead 23644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023645|123645|989898|1|9999023645|MR|Test|E|Lead 23645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023646|123646|989898|1|9999023646|MR|Test|E|Lead 23646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023647|123647|989898|1|9999023647|MR|Test|E|Lead 23647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023648|123648|989898|1|9999023648|MR|Test|E|Lead 23648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023649|123649|989898|1|9999023649|MR|Test|E|Lead 23649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023650|123650|989898|1|9999023650|MR|Test|E|Lead 23650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023651|123651|989898|1|9999023651|MR|Test|E|Lead 23651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023652|123652|989898|1|9999023652|MR|Test|E|Lead 23652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023653|123653|989898|1|9999023653|MR|Test|E|Lead 23653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023654|123654|989898|1|9999023654|MR|Test|E|Lead 23654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023655|123655|989898|1|9999023655|MR|Test|E|Lead 23655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023656|123656|989898|1|9999023656|MR|Test|E|Lead 23656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023657|123657|989898|1|9999023657|MR|Test|E|Lead 23657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023658|123658|989898|1|9999023658|MR|Test|E|Lead 23658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023659|123659|989898|1|9999023659|MR|Test|E|Lead 23659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023660|123660|989898|1|9999023660|MR|Test|E|Lead 23660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023661|123661|989898|1|9999023661|MR|Test|E|Lead 23661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023662|123662|989898|1|9999023662|MR|Test|E|Lead 23662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023663|123663|989898|1|9999023663|MR|Test|E|Lead 23663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023664|123664|989898|1|9999023664|MR|Test|E|Lead 23664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023665|123665|989898|1|9999023665|MR|Test|E|Lead 23665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023666|123666|989898|1|9999023666|MR|Test|E|Lead 23666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023667|123667|989898|1|9999023667|MR|Test|E|Lead 23667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023668|123668|989898|1|9999023668|MR|Test|E|Lead 23668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023669|123669|989898|1|9999023669|MR|Test|E|Lead 23669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023670|123670|989898|1|9999023670|MR|Test|E|Lead 23670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023671|123671|989898|1|9999023671|MR|Test|E|Lead 23671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023672|123672|989898|1|9999023672|MR|Test|E|Lead 23672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023673|123673|989898|1|9999023673|MR|Test|E|Lead 23673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023674|123674|989898|1|9999023674|MR|Test|E|Lead 23674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023675|123675|989898|1|9999023675|MR|Test|E|Lead 23675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023676|123676|989898|1|9999023676|MR|Test|E|Lead 23676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023677|123677|989898|1|9999023677|MR|Test|E|Lead 23677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023678|123678|989898|1|9999023678|MR|Test|E|Lead 23678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023679|123679|989898|1|9999023679|MR|Test|E|Lead 23679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023680|123680|989898|1|9999023680|MR|Test|E|Lead 23680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023681|123681|989898|1|9999023681|MR|Test|E|Lead 23681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023682|123682|989898|1|9999023682|MR|Test|E|Lead 23682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023683|123683|989898|1|9999023683|MR|Test|E|Lead 23683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023684|123684|989898|1|9999023684|MR|Test|E|Lead 23684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023685|123685|989898|1|9999023685|MR|Test|E|Lead 23685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023686|123686|989898|1|9999023686|MR|Test|E|Lead 23686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023687|123687|989898|1|9999023687|MR|Test|E|Lead 23687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023688|123688|989898|1|9999023688|MR|Test|E|Lead 23688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023689|123689|989898|1|9999023689|MR|Test|E|Lead 23689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023690|123690|989898|1|9999023690|MR|Test|E|Lead 23690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023691|123691|989898|1|9999023691|MR|Test|E|Lead 23691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023692|123692|989898|1|9999023692|MR|Test|E|Lead 23692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023693|123693|989898|1|9999023693|MR|Test|E|Lead 23693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023694|123694|989898|1|9999023694|MR|Test|E|Lead 23694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023695|123695|989898|1|9999023695|MR|Test|E|Lead 23695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023696|123696|989898|1|9999023696|MR|Test|E|Lead 23696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023697|123697|989898|1|9999023697|MR|Test|E|Lead 23697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023698|123698|989898|1|9999023698|MR|Test|E|Lead 23698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023699|123699|989898|1|9999023699|MR|Test|E|Lead 23699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023700|123700|989898|1|9999023700|MR|Test|E|Lead 23700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023701|123701|989898|1|9999023701|MR|Test|E|Lead 23701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023702|123702|989898|1|9999023702|MR|Test|E|Lead 23702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023703|123703|989898|1|9999023703|MR|Test|E|Lead 23703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023704|123704|989898|1|9999023704|MR|Test|E|Lead 23704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023705|123705|989898|1|9999023705|MR|Test|E|Lead 23705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023706|123706|989898|1|9999023706|MR|Test|E|Lead 23706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023707|123707|989898|1|9999023707|MR|Test|E|Lead 23707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023708|123708|989898|1|9999023708|MR|Test|E|Lead 23708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023709|123709|989898|1|9999023709|MR|Test|E|Lead 23709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023710|123710|989898|1|9999023710|MR|Test|E|Lead 23710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023711|123711|989898|1|9999023711|MR|Test|E|Lead 23711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023712|123712|989898|1|9999023712|MR|Test|E|Lead 23712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023713|123713|989898|1|9999023713|MR|Test|E|Lead 23713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023714|123714|989898|1|9999023714|MR|Test|E|Lead 23714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023715|123715|989898|1|9999023715|MR|Test|E|Lead 23715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023716|123716|989898|1|9999023716|MR|Test|E|Lead 23716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023717|123717|989898|1|9999023717|MR|Test|E|Lead 23717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023718|123718|989898|1|9999023718|MR|Test|E|Lead 23718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023719|123719|989898|1|9999023719|MR|Test|E|Lead 23719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023720|123720|989898|1|9999023720|MR|Test|E|Lead 23720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023721|123721|989898|1|9999023721|MR|Test|E|Lead 23721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023722|123722|989898|1|9999023722|MR|Test|E|Lead 23722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023723|123723|989898|1|9999023723|MR|Test|E|Lead 23723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023724|123724|989898|1|9999023724|MR|Test|E|Lead 23724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023725|123725|989898|1|9999023725|MR|Test|E|Lead 23725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023726|123726|989898|1|9999023726|MR|Test|E|Lead 23726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023727|123727|989898|1|9999023727|MR|Test|E|Lead 23727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023728|123728|989898|1|9999023728|MR|Test|E|Lead 23728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023729|123729|989898|1|9999023729|MR|Test|E|Lead 23729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023730|123730|989898|1|9999023730|MR|Test|E|Lead 23730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023731|123731|989898|1|9999023731|MR|Test|E|Lead 23731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023732|123732|989898|1|9999023732|MR|Test|E|Lead 23732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023733|123733|989898|1|9999023733|MR|Test|E|Lead 23733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023734|123734|989898|1|9999023734|MR|Test|E|Lead 23734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023735|123735|989898|1|9999023735|MR|Test|E|Lead 23735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023736|123736|989898|1|9999023736|MR|Test|E|Lead 23736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023737|123737|989898|1|9999023737|MR|Test|E|Lead 23737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023738|123738|989898|1|9999023738|MR|Test|E|Lead 23738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023739|123739|989898|1|9999023739|MR|Test|E|Lead 23739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023740|123740|989898|1|9999023740|MR|Test|E|Lead 23740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023741|123741|989898|1|9999023741|MR|Test|E|Lead 23741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023742|123742|989898|1|9999023742|MR|Test|E|Lead 23742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023743|123743|989898|1|9999023743|MR|Test|E|Lead 23743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023744|123744|989898|1|9999023744|MR|Test|E|Lead 23744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023745|123745|989898|1|9999023745|MR|Test|E|Lead 23745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023746|123746|989898|1|9999023746|MR|Test|E|Lead 23746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023747|123747|989898|1|9999023747|MR|Test|E|Lead 23747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023748|123748|989898|1|9999023748|MR|Test|E|Lead 23748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023749|123749|989898|1|9999023749|MR|Test|E|Lead 23749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023750|123750|989898|1|9999023750|MR|Test|E|Lead 23750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023751|123751|989898|1|9999023751|MR|Test|E|Lead 23751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023752|123752|989898|1|9999023752|MR|Test|E|Lead 23752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023753|123753|989898|1|9999023753|MR|Test|E|Lead 23753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023754|123754|989898|1|9999023754|MR|Test|E|Lead 23754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023755|123755|989898|1|9999023755|MR|Test|E|Lead 23755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023756|123756|989898|1|9999023756|MR|Test|E|Lead 23756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023757|123757|989898|1|9999023757|MR|Test|E|Lead 23757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023758|123758|989898|1|9999023758|MR|Test|E|Lead 23758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023759|123759|989898|1|9999023759|MR|Test|E|Lead 23759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023760|123760|989898|1|9999023760|MR|Test|E|Lead 23760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023761|123761|989898|1|9999023761|MR|Test|E|Lead 23761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023762|123762|989898|1|9999023762|MR|Test|E|Lead 23762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023763|123763|989898|1|9999023763|MR|Test|E|Lead 23763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023764|123764|989898|1|9999023764|MR|Test|E|Lead 23764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023765|123765|989898|1|9999023765|MR|Test|E|Lead 23765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023766|123766|989898|1|9999023766|MR|Test|E|Lead 23766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023767|123767|989898|1|9999023767|MR|Test|E|Lead 23767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023768|123768|989898|1|9999023768|MR|Test|E|Lead 23768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023769|123769|989898|1|9999023769|MR|Test|E|Lead 23769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023770|123770|989898|1|9999023770|MR|Test|E|Lead 23770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023771|123771|989898|1|9999023771|MR|Test|E|Lead 23771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023772|123772|989898|1|9999023772|MR|Test|E|Lead 23772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023773|123773|989898|1|9999023773|MR|Test|E|Lead 23773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023774|123774|989898|1|9999023774|MR|Test|E|Lead 23774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023775|123775|989898|1|9999023775|MR|Test|E|Lead 23775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023776|123776|989898|1|9999023776|MR|Test|E|Lead 23776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023777|123777|989898|1|9999023777|MR|Test|E|Lead 23777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023778|123778|989898|1|9999023778|MR|Test|E|Lead 23778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023779|123779|989898|1|9999023779|MR|Test|E|Lead 23779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023780|123780|989898|1|9999023780|MR|Test|E|Lead 23780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023781|123781|989898|1|9999023781|MR|Test|E|Lead 23781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023782|123782|989898|1|9999023782|MR|Test|E|Lead 23782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023783|123783|989898|1|9999023783|MR|Test|E|Lead 23783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023784|123784|989898|1|9999023784|MR|Test|E|Lead 23784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023785|123785|989898|1|9999023785|MR|Test|E|Lead 23785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023786|123786|989898|1|9999023786|MR|Test|E|Lead 23786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023787|123787|989898|1|9999023787|MR|Test|E|Lead 23787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023788|123788|989898|1|9999023788|MR|Test|E|Lead 23788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023789|123789|989898|1|9999023789|MR|Test|E|Lead 23789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023790|123790|989898|1|9999023790|MR|Test|E|Lead 23790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023791|123791|989898|1|9999023791|MR|Test|E|Lead 23791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023792|123792|989898|1|9999023792|MR|Test|E|Lead 23792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023793|123793|989898|1|9999023793|MR|Test|E|Lead 23793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023794|123794|989898|1|9999023794|MR|Test|E|Lead 23794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023795|123795|989898|1|9999023795|MR|Test|E|Lead 23795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023796|123796|989898|1|9999023796|MR|Test|E|Lead 23796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023797|123797|989898|1|9999023797|MR|Test|E|Lead 23797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023798|123798|989898|1|9999023798|MR|Test|E|Lead 23798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023799|123799|989898|1|9999023799|MR|Test|E|Lead 23799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023800|123800|989898|1|9999023800|MR|Test|E|Lead 23800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023801|123801|989898|1|9999023801|MR|Test|E|Lead 23801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023802|123802|989898|1|9999023802|MR|Test|E|Lead 23802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023803|123803|989898|1|9999023803|MR|Test|E|Lead 23803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023804|123804|989898|1|9999023804|MR|Test|E|Lead 23804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023805|123805|989898|1|9999023805|MR|Test|E|Lead 23805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023806|123806|989898|1|9999023806|MR|Test|E|Lead 23806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023807|123807|989898|1|9999023807|MR|Test|E|Lead 23807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023808|123808|989898|1|9999023808|MR|Test|E|Lead 23808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023809|123809|989898|1|9999023809|MR|Test|E|Lead 23809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023810|123810|989898|1|9999023810|MR|Test|E|Lead 23810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023811|123811|989898|1|9999023811|MR|Test|E|Lead 23811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023812|123812|989898|1|9999023812|MR|Test|E|Lead 23812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023813|123813|989898|1|9999023813|MR|Test|E|Lead 23813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023814|123814|989898|1|9999023814|MR|Test|E|Lead 23814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023815|123815|989898|1|9999023815|MR|Test|E|Lead 23815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023816|123816|989898|1|9999023816|MR|Test|E|Lead 23816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023817|123817|989898|1|9999023817|MR|Test|E|Lead 23817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023818|123818|989898|1|9999023818|MR|Test|E|Lead 23818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023819|123819|989898|1|9999023819|MR|Test|E|Lead 23819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023820|123820|989898|1|9999023820|MR|Test|E|Lead 23820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023821|123821|989898|1|9999023821|MR|Test|E|Lead 23821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023822|123822|989898|1|9999023822|MR|Test|E|Lead 23822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023823|123823|989898|1|9999023823|MR|Test|E|Lead 23823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023824|123824|989898|1|9999023824|MR|Test|E|Lead 23824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023825|123825|989898|1|9999023825|MR|Test|E|Lead 23825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023826|123826|989898|1|9999023826|MR|Test|E|Lead 23826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023827|123827|989898|1|9999023827|MR|Test|E|Lead 23827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023828|123828|989898|1|9999023828|MR|Test|E|Lead 23828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023829|123829|989898|1|9999023829|MR|Test|E|Lead 23829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023830|123830|989898|1|9999023830|MR|Test|E|Lead 23830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023831|123831|989898|1|9999023831|MR|Test|E|Lead 23831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023832|123832|989898|1|9999023832|MR|Test|E|Lead 23832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023833|123833|989898|1|9999023833|MR|Test|E|Lead 23833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023834|123834|989898|1|9999023834|MR|Test|E|Lead 23834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023835|123835|989898|1|9999023835|MR|Test|E|Lead 23835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023836|123836|989898|1|9999023836|MR|Test|E|Lead 23836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023837|123837|989898|1|9999023837|MR|Test|E|Lead 23837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023838|123838|989898|1|9999023838|MR|Test|E|Lead 23838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023839|123839|989898|1|9999023839|MR|Test|E|Lead 23839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023840|123840|989898|1|9999023840|MR|Test|E|Lead 23840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023841|123841|989898|1|9999023841|MR|Test|E|Lead 23841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023842|123842|989898|1|9999023842|MR|Test|E|Lead 23842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023843|123843|989898|1|9999023843|MR|Test|E|Lead 23843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023844|123844|989898|1|9999023844|MR|Test|E|Lead 23844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023845|123845|989898|1|9999023845|MR|Test|E|Lead 23845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023846|123846|989898|1|9999023846|MR|Test|E|Lead 23846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023847|123847|989898|1|9999023847|MR|Test|E|Lead 23847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023848|123848|989898|1|9999023848|MR|Test|E|Lead 23848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023849|123849|989898|1|9999023849|MR|Test|E|Lead 23849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023850|123850|989898|1|9999023850|MR|Test|E|Lead 23850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023851|123851|989898|1|9999023851|MR|Test|E|Lead 23851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023852|123852|989898|1|9999023852|MR|Test|E|Lead 23852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023853|123853|989898|1|9999023853|MR|Test|E|Lead 23853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023854|123854|989898|1|9999023854|MR|Test|E|Lead 23854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023855|123855|989898|1|9999023855|MR|Test|E|Lead 23855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023856|123856|989898|1|9999023856|MR|Test|E|Lead 23856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023857|123857|989898|1|9999023857|MR|Test|E|Lead 23857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023858|123858|989898|1|9999023858|MR|Test|E|Lead 23858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023859|123859|989898|1|9999023859|MR|Test|E|Lead 23859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023860|123860|989898|1|9999023860|MR|Test|E|Lead 23860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023861|123861|989898|1|9999023861|MR|Test|E|Lead 23861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023862|123862|989898|1|9999023862|MR|Test|E|Lead 23862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023863|123863|989898|1|9999023863|MR|Test|E|Lead 23863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023864|123864|989898|1|9999023864|MR|Test|E|Lead 23864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023865|123865|989898|1|9999023865|MR|Test|E|Lead 23865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023866|123866|989898|1|9999023866|MR|Test|E|Lead 23866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023867|123867|989898|1|9999023867|MR|Test|E|Lead 23867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023868|123868|989898|1|9999023868|MR|Test|E|Lead 23868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023869|123869|989898|1|9999023869|MR|Test|E|Lead 23869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023870|123870|989898|1|9999023870|MR|Test|E|Lead 23870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023871|123871|989898|1|9999023871|MR|Test|E|Lead 23871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023872|123872|989898|1|9999023872|MR|Test|E|Lead 23872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023873|123873|989898|1|9999023873|MR|Test|E|Lead 23873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023874|123874|989898|1|9999023874|MR|Test|E|Lead 23874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023875|123875|989898|1|9999023875|MR|Test|E|Lead 23875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023876|123876|989898|1|9999023876|MR|Test|E|Lead 23876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023877|123877|989898|1|9999023877|MR|Test|E|Lead 23877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023878|123878|989898|1|9999023878|MR|Test|E|Lead 23878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023879|123879|989898|1|9999023879|MR|Test|E|Lead 23879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023880|123880|989898|1|9999023880|MR|Test|E|Lead 23880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023881|123881|989898|1|9999023881|MR|Test|E|Lead 23881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023882|123882|989898|1|9999023882|MR|Test|E|Lead 23882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023883|123883|989898|1|9999023883|MR|Test|E|Lead 23883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023884|123884|989898|1|9999023884|MR|Test|E|Lead 23884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023885|123885|989898|1|9999023885|MR|Test|E|Lead 23885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023886|123886|989898|1|9999023886|MR|Test|E|Lead 23886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023887|123887|989898|1|9999023887|MR|Test|E|Lead 23887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023888|123888|989898|1|9999023888|MR|Test|E|Lead 23888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023889|123889|989898|1|9999023889|MR|Test|E|Lead 23889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023890|123890|989898|1|9999023890|MR|Test|E|Lead 23890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023891|123891|989898|1|9999023891|MR|Test|E|Lead 23891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023892|123892|989898|1|9999023892|MR|Test|E|Lead 23892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023893|123893|989898|1|9999023893|MR|Test|E|Lead 23893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023894|123894|989898|1|9999023894|MR|Test|E|Lead 23894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023895|123895|989898|1|9999023895|MR|Test|E|Lead 23895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023896|123896|989898|1|9999023896|MR|Test|E|Lead 23896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023897|123897|989898|1|9999023897|MR|Test|E|Lead 23897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023898|123898|989898|1|9999023898|MR|Test|E|Lead 23898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023899|123899|989898|1|9999023899|MR|Test|E|Lead 23899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023900|123900|989898|1|9999023900|MR|Test|E|Lead 23900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023901|123901|989898|1|9999023901|MR|Test|E|Lead 23901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023902|123902|989898|1|9999023902|MR|Test|E|Lead 23902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023903|123903|989898|1|9999023903|MR|Test|E|Lead 23903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023904|123904|989898|1|9999023904|MR|Test|E|Lead 23904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023905|123905|989898|1|9999023905|MR|Test|E|Lead 23905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023906|123906|989898|1|9999023906|MR|Test|E|Lead 23906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023907|123907|989898|1|9999023907|MR|Test|E|Lead 23907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023908|123908|989898|1|9999023908|MR|Test|E|Lead 23908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023909|123909|989898|1|9999023909|MR|Test|E|Lead 23909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023910|123910|989898|1|9999023910|MR|Test|E|Lead 23910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023911|123911|989898|1|9999023911|MR|Test|E|Lead 23911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023912|123912|989898|1|9999023912|MR|Test|E|Lead 23912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023913|123913|989898|1|9999023913|MR|Test|E|Lead 23913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023914|123914|989898|1|9999023914|MR|Test|E|Lead 23914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023915|123915|989898|1|9999023915|MR|Test|E|Lead 23915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023916|123916|989898|1|9999023916|MR|Test|E|Lead 23916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023917|123917|989898|1|9999023917|MR|Test|E|Lead 23917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023918|123918|989898|1|9999023918|MR|Test|E|Lead 23918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023919|123919|989898|1|9999023919|MR|Test|E|Lead 23919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023920|123920|989898|1|9999023920|MR|Test|E|Lead 23920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023921|123921|989898|1|9999023921|MR|Test|E|Lead 23921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023922|123922|989898|1|9999023922|MR|Test|E|Lead 23922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023923|123923|989898|1|9999023923|MR|Test|E|Lead 23923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023924|123924|989898|1|9999023924|MR|Test|E|Lead 23924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023925|123925|989898|1|9999023925|MR|Test|E|Lead 23925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023926|123926|989898|1|9999023926|MR|Test|E|Lead 23926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023927|123927|989898|1|9999023927|MR|Test|E|Lead 23927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023928|123928|989898|1|9999023928|MR|Test|E|Lead 23928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023929|123929|989898|1|9999023929|MR|Test|E|Lead 23929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023930|123930|989898|1|9999023930|MR|Test|E|Lead 23930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023931|123931|989898|1|9999023931|MR|Test|E|Lead 23931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023932|123932|989898|1|9999023932|MR|Test|E|Lead 23932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023933|123933|989898|1|9999023933|MR|Test|E|Lead 23933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023934|123934|989898|1|9999023934|MR|Test|E|Lead 23934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023935|123935|989898|1|9999023935|MR|Test|E|Lead 23935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023936|123936|989898|1|9999023936|MR|Test|E|Lead 23936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023937|123937|989898|1|9999023937|MR|Test|E|Lead 23937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023938|123938|989898|1|9999023938|MR|Test|E|Lead 23938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023939|123939|989898|1|9999023939|MR|Test|E|Lead 23939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023940|123940|989898|1|9999023940|MR|Test|E|Lead 23940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023941|123941|989898|1|9999023941|MR|Test|E|Lead 23941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023942|123942|989898|1|9999023942|MR|Test|E|Lead 23942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023943|123943|989898|1|9999023943|MR|Test|E|Lead 23943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023944|123944|989898|1|9999023944|MR|Test|E|Lead 23944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023945|123945|989898|1|9999023945|MR|Test|E|Lead 23945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023946|123946|989898|1|9999023946|MR|Test|E|Lead 23946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023947|123947|989898|1|9999023947|MR|Test|E|Lead 23947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023948|123948|989898|1|9999023948|MR|Test|E|Lead 23948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023949|123949|989898|1|9999023949|MR|Test|E|Lead 23949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023950|123950|989898|1|9999023950|MR|Test|E|Lead 23950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023951|123951|989898|1|9999023951|MR|Test|E|Lead 23951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023952|123952|989898|1|9999023952|MR|Test|E|Lead 23952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023953|123953|989898|1|9999023953|MR|Test|E|Lead 23953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023954|123954|989898|1|9999023954|MR|Test|E|Lead 23954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023955|123955|989898|1|9999023955|MR|Test|E|Lead 23955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023956|123956|989898|1|9999023956|MR|Test|E|Lead 23956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023957|123957|989898|1|9999023957|MR|Test|E|Lead 23957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023958|123958|989898|1|9999023958|MR|Test|E|Lead 23958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023959|123959|989898|1|9999023959|MR|Test|E|Lead 23959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023960|123960|989898|1|9999023960|MR|Test|E|Lead 23960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023961|123961|989898|1|9999023961|MR|Test|E|Lead 23961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023962|123962|989898|1|9999023962|MR|Test|E|Lead 23962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023963|123963|989898|1|9999023963|MR|Test|E|Lead 23963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023964|123964|989898|1|9999023964|MR|Test|E|Lead 23964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023965|123965|989898|1|9999023965|MR|Test|E|Lead 23965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023966|123966|989898|1|9999023966|MR|Test|E|Lead 23966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023967|123967|989898|1|9999023967|MR|Test|E|Lead 23967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023968|123968|989898|1|9999023968|MR|Test|E|Lead 23968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023969|123969|989898|1|9999023969|MR|Test|E|Lead 23969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023970|123970|989898|1|9999023970|MR|Test|E|Lead 23970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023971|123971|989898|1|9999023971|MR|Test|E|Lead 23971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023972|123972|989898|1|9999023972|MR|Test|E|Lead 23972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023973|123973|989898|1|9999023973|MR|Test|E|Lead 23973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023974|123974|989898|1|9999023974|MR|Test|E|Lead 23974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023975|123975|989898|1|9999023975|MR|Test|E|Lead 23975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023976|123976|989898|1|9999023976|MR|Test|E|Lead 23976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023977|123977|989898|1|9999023977|MR|Test|E|Lead 23977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023978|123978|989898|1|9999023978|MR|Test|E|Lead 23978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023979|123979|989898|1|9999023979|MR|Test|E|Lead 23979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023980|123980|989898|1|9999023980|MR|Test|E|Lead 23980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023981|123981|989898|1|9999023981|MR|Test|E|Lead 23981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023982|123982|989898|1|9999023982|MR|Test|E|Lead 23982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023983|123983|989898|1|9999023983|MR|Test|E|Lead 23983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023984|123984|989898|1|9999023984|MR|Test|E|Lead 23984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023985|123985|989898|1|9999023985|MR|Test|E|Lead 23985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023986|123986|989898|1|9999023986|MR|Test|E|Lead 23986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023987|123987|989898|1|9999023987|MR|Test|E|Lead 23987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023988|123988|989898|1|9999023988|MR|Test|E|Lead 23988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023989|123989|989898|1|9999023989|MR|Test|E|Lead 23989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023990|123990|989898|1|9999023990|MR|Test|E|Lead 23990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023991|123991|989898|1|9999023991|MR|Test|E|Lead 23991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023992|123992|989898|1|9999023992|MR|Test|E|Lead 23992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023993|123993|989898|1|9999023993|MR|Test|E|Lead 23993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023994|123994|989898|1|9999023994|MR|Test|E|Lead 23994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023995|123995|989898|1|9999023995|MR|Test|E|Lead 23995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023996|123996|989898|1|9999023996|MR|Test|E|Lead 23996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023997|123997|989898|1|9999023997|MR|Test|E|Lead 23997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023998|123998|989898|1|9999023998|MR|Test|E|Lead 23998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1023999|123999|989898|1|9999023999|MR|Test|E|Lead 23999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024000|124000|989898|1|9999024000|MR|Test|E|Lead 24000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024001|124001|989898|1|9999024001|MR|Test|E|Lead 24001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024002|124002|989898|1|9999024002|MR|Test|E|Lead 24002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024003|124003|989898|1|9999024003|MR|Test|E|Lead 24003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024004|124004|989898|1|9999024004|MR|Test|E|Lead 24004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024005|124005|989898|1|9999024005|MR|Test|E|Lead 24005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024006|124006|989898|1|9999024006|MR|Test|E|Lead 24006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024007|124007|989898|1|9999024007|MR|Test|E|Lead 24007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024008|124008|989898|1|9999024008|MR|Test|E|Lead 24008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024009|124009|989898|1|9999024009|MR|Test|E|Lead 24009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024010|124010|989898|1|9999024010|MR|Test|E|Lead 24010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024011|124011|989898|1|9999024011|MR|Test|E|Lead 24011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024012|124012|989898|1|9999024012|MR|Test|E|Lead 24012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024013|124013|989898|1|9999024013|MR|Test|E|Lead 24013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024014|124014|989898|1|9999024014|MR|Test|E|Lead 24014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024015|124015|989898|1|9999024015|MR|Test|E|Lead 24015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024016|124016|989898|1|9999024016|MR|Test|E|Lead 24016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024017|124017|989898|1|9999024017|MR|Test|E|Lead 24017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024018|124018|989898|1|9999024018|MR|Test|E|Lead 24018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024019|124019|989898|1|9999024019|MR|Test|E|Lead 24019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024020|124020|989898|1|9999024020|MR|Test|E|Lead 24020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024021|124021|989898|1|9999024021|MR|Test|E|Lead 24021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024022|124022|989898|1|9999024022|MR|Test|E|Lead 24022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024023|124023|989898|1|9999024023|MR|Test|E|Lead 24023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024024|124024|989898|1|9999024024|MR|Test|E|Lead 24024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024025|124025|989898|1|9999024025|MR|Test|E|Lead 24025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024026|124026|989898|1|9999024026|MR|Test|E|Lead 24026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024027|124027|989898|1|9999024027|MR|Test|E|Lead 24027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024028|124028|989898|1|9999024028|MR|Test|E|Lead 24028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024029|124029|989898|1|9999024029|MR|Test|E|Lead 24029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024030|124030|989898|1|9999024030|MR|Test|E|Lead 24030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024031|124031|989898|1|9999024031|MR|Test|E|Lead 24031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024032|124032|989898|1|9999024032|MR|Test|E|Lead 24032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024033|124033|989898|1|9999024033|MR|Test|E|Lead 24033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024034|124034|989898|1|9999024034|MR|Test|E|Lead 24034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024035|124035|989898|1|9999024035|MR|Test|E|Lead 24035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024036|124036|989898|1|9999024036|MR|Test|E|Lead 24036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024037|124037|989898|1|9999024037|MR|Test|E|Lead 24037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024038|124038|989898|1|9999024038|MR|Test|E|Lead 24038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024039|124039|989898|1|9999024039|MR|Test|E|Lead 24039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024040|124040|989898|1|9999024040|MR|Test|E|Lead 24040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024041|124041|989898|1|9999024041|MR|Test|E|Lead 24041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024042|124042|989898|1|9999024042|MR|Test|E|Lead 24042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024043|124043|989898|1|9999024043|MR|Test|E|Lead 24043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024044|124044|989898|1|9999024044|MR|Test|E|Lead 24044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024045|124045|989898|1|9999024045|MR|Test|E|Lead 24045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024046|124046|989898|1|9999024046|MR|Test|E|Lead 24046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024047|124047|989898|1|9999024047|MR|Test|E|Lead 24047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024048|124048|989898|1|9999024048|MR|Test|E|Lead 24048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024049|124049|989898|1|9999024049|MR|Test|E|Lead 24049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024050|124050|989898|1|9999024050|MR|Test|E|Lead 24050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024051|124051|989898|1|9999024051|MR|Test|E|Lead 24051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024052|124052|989898|1|9999024052|MR|Test|E|Lead 24052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024053|124053|989898|1|9999024053|MR|Test|E|Lead 24053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024054|124054|989898|1|9999024054|MR|Test|E|Lead 24054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024055|124055|989898|1|9999024055|MR|Test|E|Lead 24055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024056|124056|989898|1|9999024056|MR|Test|E|Lead 24056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024057|124057|989898|1|9999024057|MR|Test|E|Lead 24057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024058|124058|989898|1|9999024058|MR|Test|E|Lead 24058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024059|124059|989898|1|9999024059|MR|Test|E|Lead 24059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024060|124060|989898|1|9999024060|MR|Test|E|Lead 24060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024061|124061|989898|1|9999024061|MR|Test|E|Lead 24061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024062|124062|989898|1|9999024062|MR|Test|E|Lead 24062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024063|124063|989898|1|9999024063|MR|Test|E|Lead 24063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024064|124064|989898|1|9999024064|MR|Test|E|Lead 24064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024065|124065|989898|1|9999024065|MR|Test|E|Lead 24065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024066|124066|989898|1|9999024066|MR|Test|E|Lead 24066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024067|124067|989898|1|9999024067|MR|Test|E|Lead 24067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024068|124068|989898|1|9999024068|MR|Test|E|Lead 24068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024069|124069|989898|1|9999024069|MR|Test|E|Lead 24069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024070|124070|989898|1|9999024070|MR|Test|E|Lead 24070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024071|124071|989898|1|9999024071|MR|Test|E|Lead 24071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024072|124072|989898|1|9999024072|MR|Test|E|Lead 24072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024073|124073|989898|1|9999024073|MR|Test|E|Lead 24073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024074|124074|989898|1|9999024074|MR|Test|E|Lead 24074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024075|124075|989898|1|9999024075|MR|Test|E|Lead 24075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024076|124076|989898|1|9999024076|MR|Test|E|Lead 24076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024077|124077|989898|1|9999024077|MR|Test|E|Lead 24077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024078|124078|989898|1|9999024078|MR|Test|E|Lead 24078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024079|124079|989898|1|9999024079|MR|Test|E|Lead 24079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024080|124080|989898|1|9999024080|MR|Test|E|Lead 24080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024081|124081|989898|1|9999024081|MR|Test|E|Lead 24081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024082|124082|989898|1|9999024082|MR|Test|E|Lead 24082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024083|124083|989898|1|9999024083|MR|Test|E|Lead 24083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024084|124084|989898|1|9999024084|MR|Test|E|Lead 24084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024085|124085|989898|1|9999024085|MR|Test|E|Lead 24085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024086|124086|989898|1|9999024086|MR|Test|E|Lead 24086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024087|124087|989898|1|9999024087|MR|Test|E|Lead 24087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024088|124088|989898|1|9999024088|MR|Test|E|Lead 24088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024089|124089|989898|1|9999024089|MR|Test|E|Lead 24089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024090|124090|989898|1|9999024090|MR|Test|E|Lead 24090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024091|124091|989898|1|9999024091|MR|Test|E|Lead 24091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024092|124092|989898|1|9999024092|MR|Test|E|Lead 24092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024093|124093|989898|1|9999024093|MR|Test|E|Lead 24093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024094|124094|989898|1|9999024094|MR|Test|E|Lead 24094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024095|124095|989898|1|9999024095|MR|Test|E|Lead 24095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024096|124096|989898|1|9999024096|MR|Test|E|Lead 24096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024097|124097|989898|1|9999024097|MR|Test|E|Lead 24097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024098|124098|989898|1|9999024098|MR|Test|E|Lead 24098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024099|124099|989898|1|9999024099|MR|Test|E|Lead 24099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024100|124100|989898|1|9999024100|MR|Test|E|Lead 24100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024101|124101|989898|1|9999024101|MR|Test|E|Lead 24101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024102|124102|989898|1|9999024102|MR|Test|E|Lead 24102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024103|124103|989898|1|9999024103|MR|Test|E|Lead 24103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024104|124104|989898|1|9999024104|MR|Test|E|Lead 24104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024105|124105|989898|1|9999024105|MR|Test|E|Lead 24105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024106|124106|989898|1|9999024106|MR|Test|E|Lead 24106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024107|124107|989898|1|9999024107|MR|Test|E|Lead 24107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024108|124108|989898|1|9999024108|MR|Test|E|Lead 24108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024109|124109|989898|1|9999024109|MR|Test|E|Lead 24109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024110|124110|989898|1|9999024110|MR|Test|E|Lead 24110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024111|124111|989898|1|9999024111|MR|Test|E|Lead 24111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024112|124112|989898|1|9999024112|MR|Test|E|Lead 24112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024113|124113|989898|1|9999024113|MR|Test|E|Lead 24113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024114|124114|989898|1|9999024114|MR|Test|E|Lead 24114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024115|124115|989898|1|9999024115|MR|Test|E|Lead 24115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024116|124116|989898|1|9999024116|MR|Test|E|Lead 24116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024117|124117|989898|1|9999024117|MR|Test|E|Lead 24117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024118|124118|989898|1|9999024118|MR|Test|E|Lead 24118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024119|124119|989898|1|9999024119|MR|Test|E|Lead 24119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024120|124120|989898|1|9999024120|MR|Test|E|Lead 24120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024121|124121|989898|1|9999024121|MR|Test|E|Lead 24121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024122|124122|989898|1|9999024122|MR|Test|E|Lead 24122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024123|124123|989898|1|9999024123|MR|Test|E|Lead 24123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024124|124124|989898|1|9999024124|MR|Test|E|Lead 24124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024125|124125|989898|1|9999024125|MR|Test|E|Lead 24125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024126|124126|989898|1|9999024126|MR|Test|E|Lead 24126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024127|124127|989898|1|9999024127|MR|Test|E|Lead 24127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024128|124128|989898|1|9999024128|MR|Test|E|Lead 24128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024129|124129|989898|1|9999024129|MR|Test|E|Lead 24129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024130|124130|989898|1|9999024130|MR|Test|E|Lead 24130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024131|124131|989898|1|9999024131|MR|Test|E|Lead 24131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024132|124132|989898|1|9999024132|MR|Test|E|Lead 24132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024133|124133|989898|1|9999024133|MR|Test|E|Lead 24133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024134|124134|989898|1|9999024134|MR|Test|E|Lead 24134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024135|124135|989898|1|9999024135|MR|Test|E|Lead 24135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024136|124136|989898|1|9999024136|MR|Test|E|Lead 24136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024137|124137|989898|1|9999024137|MR|Test|E|Lead 24137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024138|124138|989898|1|9999024138|MR|Test|E|Lead 24138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024139|124139|989898|1|9999024139|MR|Test|E|Lead 24139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024140|124140|989898|1|9999024140|MR|Test|E|Lead 24140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024141|124141|989898|1|9999024141|MR|Test|E|Lead 24141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024142|124142|989898|1|9999024142|MR|Test|E|Lead 24142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024143|124143|989898|1|9999024143|MR|Test|E|Lead 24143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024144|124144|989898|1|9999024144|MR|Test|E|Lead 24144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024145|124145|989898|1|9999024145|MR|Test|E|Lead 24145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024146|124146|989898|1|9999024146|MR|Test|E|Lead 24146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024147|124147|989898|1|9999024147|MR|Test|E|Lead 24147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024148|124148|989898|1|9999024148|MR|Test|E|Lead 24148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024149|124149|989898|1|9999024149|MR|Test|E|Lead 24149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024150|124150|989898|1|9999024150|MR|Test|E|Lead 24150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024151|124151|989898|1|9999024151|MR|Test|E|Lead 24151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024152|124152|989898|1|9999024152|MR|Test|E|Lead 24152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024153|124153|989898|1|9999024153|MR|Test|E|Lead 24153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024154|124154|989898|1|9999024154|MR|Test|E|Lead 24154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024155|124155|989898|1|9999024155|MR|Test|E|Lead 24155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024156|124156|989898|1|9999024156|MR|Test|E|Lead 24156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024157|124157|989898|1|9999024157|MR|Test|E|Lead 24157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024158|124158|989898|1|9999024158|MR|Test|E|Lead 24158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024159|124159|989898|1|9999024159|MR|Test|E|Lead 24159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024160|124160|989898|1|9999024160|MR|Test|E|Lead 24160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024161|124161|989898|1|9999024161|MR|Test|E|Lead 24161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024162|124162|989898|1|9999024162|MR|Test|E|Lead 24162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024163|124163|989898|1|9999024163|MR|Test|E|Lead 24163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024164|124164|989898|1|9999024164|MR|Test|E|Lead 24164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024165|124165|989898|1|9999024165|MR|Test|E|Lead 24165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024166|124166|989898|1|9999024166|MR|Test|E|Lead 24166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024167|124167|989898|1|9999024167|MR|Test|E|Lead 24167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024168|124168|989898|1|9999024168|MR|Test|E|Lead 24168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024169|124169|989898|1|9999024169|MR|Test|E|Lead 24169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024170|124170|989898|1|9999024170|MR|Test|E|Lead 24170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024171|124171|989898|1|9999024171|MR|Test|E|Lead 24171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024172|124172|989898|1|9999024172|MR|Test|E|Lead 24172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024173|124173|989898|1|9999024173|MR|Test|E|Lead 24173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024174|124174|989898|1|9999024174|MR|Test|E|Lead 24174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024175|124175|989898|1|9999024175|MR|Test|E|Lead 24175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024176|124176|989898|1|9999024176|MR|Test|E|Lead 24176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024177|124177|989898|1|9999024177|MR|Test|E|Lead 24177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024178|124178|989898|1|9999024178|MR|Test|E|Lead 24178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024179|124179|989898|1|9999024179|MR|Test|E|Lead 24179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024180|124180|989898|1|9999024180|MR|Test|E|Lead 24180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024181|124181|989898|1|9999024181|MR|Test|E|Lead 24181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024182|124182|989898|1|9999024182|MR|Test|E|Lead 24182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024183|124183|989898|1|9999024183|MR|Test|E|Lead 24183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024184|124184|989898|1|9999024184|MR|Test|E|Lead 24184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024185|124185|989898|1|9999024185|MR|Test|E|Lead 24185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024186|124186|989898|1|9999024186|MR|Test|E|Lead 24186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024187|124187|989898|1|9999024187|MR|Test|E|Lead 24187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024188|124188|989898|1|9999024188|MR|Test|E|Lead 24188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024189|124189|989898|1|9999024189|MR|Test|E|Lead 24189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024190|124190|989898|1|9999024190|MR|Test|E|Lead 24190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024191|124191|989898|1|9999024191|MR|Test|E|Lead 24191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024192|124192|989898|1|9999024192|MR|Test|E|Lead 24192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024193|124193|989898|1|9999024193|MR|Test|E|Lead 24193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024194|124194|989898|1|9999024194|MR|Test|E|Lead 24194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024195|124195|989898|1|9999024195|MR|Test|E|Lead 24195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024196|124196|989898|1|9999024196|MR|Test|E|Lead 24196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024197|124197|989898|1|9999024197|MR|Test|E|Lead 24197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024198|124198|989898|1|9999024198|MR|Test|E|Lead 24198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024199|124199|989898|1|9999024199|MR|Test|E|Lead 24199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024200|124200|989898|1|9999024200|MR|Test|E|Lead 24200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024201|124201|989898|1|9999024201|MR|Test|E|Lead 24201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024202|124202|989898|1|9999024202|MR|Test|E|Lead 24202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024203|124203|989898|1|9999024203|MR|Test|E|Lead 24203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024204|124204|989898|1|9999024204|MR|Test|E|Lead 24204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024205|124205|989898|1|9999024205|MR|Test|E|Lead 24205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024206|124206|989898|1|9999024206|MR|Test|E|Lead 24206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024207|124207|989898|1|9999024207|MR|Test|E|Lead 24207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024208|124208|989898|1|9999024208|MR|Test|E|Lead 24208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024209|124209|989898|1|9999024209|MR|Test|E|Lead 24209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024210|124210|989898|1|9999024210|MR|Test|E|Lead 24210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024211|124211|989898|1|9999024211|MR|Test|E|Lead 24211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024212|124212|989898|1|9999024212|MR|Test|E|Lead 24212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024213|124213|989898|1|9999024213|MR|Test|E|Lead 24213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024214|124214|989898|1|9999024214|MR|Test|E|Lead 24214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024215|124215|989898|1|9999024215|MR|Test|E|Lead 24215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024216|124216|989898|1|9999024216|MR|Test|E|Lead 24216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024217|124217|989898|1|9999024217|MR|Test|E|Lead 24217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024218|124218|989898|1|9999024218|MR|Test|E|Lead 24218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024219|124219|989898|1|9999024219|MR|Test|E|Lead 24219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024220|124220|989898|1|9999024220|MR|Test|E|Lead 24220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024221|124221|989898|1|9999024221|MR|Test|E|Lead 24221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024222|124222|989898|1|9999024222|MR|Test|E|Lead 24222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024223|124223|989898|1|9999024223|MR|Test|E|Lead 24223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024224|124224|989898|1|9999024224|MR|Test|E|Lead 24224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024225|124225|989898|1|9999024225|MR|Test|E|Lead 24225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024226|124226|989898|1|9999024226|MR|Test|E|Lead 24226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024227|124227|989898|1|9999024227|MR|Test|E|Lead 24227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024228|124228|989898|1|9999024228|MR|Test|E|Lead 24228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024229|124229|989898|1|9999024229|MR|Test|E|Lead 24229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024230|124230|989898|1|9999024230|MR|Test|E|Lead 24230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024231|124231|989898|1|9999024231|MR|Test|E|Lead 24231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024232|124232|989898|1|9999024232|MR|Test|E|Lead 24232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024233|124233|989898|1|9999024233|MR|Test|E|Lead 24233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024234|124234|989898|1|9999024234|MR|Test|E|Lead 24234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024235|124235|989898|1|9999024235|MR|Test|E|Lead 24235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024236|124236|989898|1|9999024236|MR|Test|E|Lead 24236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024237|124237|989898|1|9999024237|MR|Test|E|Lead 24237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024238|124238|989898|1|9999024238|MR|Test|E|Lead 24238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024239|124239|989898|1|9999024239|MR|Test|E|Lead 24239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024240|124240|989898|1|9999024240|MR|Test|E|Lead 24240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024241|124241|989898|1|9999024241|MR|Test|E|Lead 24241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024242|124242|989898|1|9999024242|MR|Test|E|Lead 24242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024243|124243|989898|1|9999024243|MR|Test|E|Lead 24243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024244|124244|989898|1|9999024244|MR|Test|E|Lead 24244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024245|124245|989898|1|9999024245|MR|Test|E|Lead 24245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024246|124246|989898|1|9999024246|MR|Test|E|Lead 24246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024247|124247|989898|1|9999024247|MR|Test|E|Lead 24247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024248|124248|989898|1|9999024248|MR|Test|E|Lead 24248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024249|124249|989898|1|9999024249|MR|Test|E|Lead 24249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024250|124250|989898|1|9999024250|MR|Test|E|Lead 24250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024251|124251|989898|1|9999024251|MR|Test|E|Lead 24251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024252|124252|989898|1|9999024252|MR|Test|E|Lead 24252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024253|124253|989898|1|9999024253|MR|Test|E|Lead 24253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024254|124254|989898|1|9999024254|MR|Test|E|Lead 24254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024255|124255|989898|1|9999024255|MR|Test|E|Lead 24255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024256|124256|989898|1|9999024256|MR|Test|E|Lead 24256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024257|124257|989898|1|9999024257|MR|Test|E|Lead 24257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024258|124258|989898|1|9999024258|MR|Test|E|Lead 24258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024259|124259|989898|1|9999024259|MR|Test|E|Lead 24259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024260|124260|989898|1|9999024260|MR|Test|E|Lead 24260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024261|124261|989898|1|9999024261|MR|Test|E|Lead 24261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024262|124262|989898|1|9999024262|MR|Test|E|Lead 24262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024263|124263|989898|1|9999024263|MR|Test|E|Lead 24263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024264|124264|989898|1|9999024264|MR|Test|E|Lead 24264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024265|124265|989898|1|9999024265|MR|Test|E|Lead 24265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024266|124266|989898|1|9999024266|MR|Test|E|Lead 24266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024267|124267|989898|1|9999024267|MR|Test|E|Lead 24267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024268|124268|989898|1|9999024268|MR|Test|E|Lead 24268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024269|124269|989898|1|9999024269|MR|Test|E|Lead 24269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024270|124270|989898|1|9999024270|MR|Test|E|Lead 24270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024271|124271|989898|1|9999024271|MR|Test|E|Lead 24271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024272|124272|989898|1|9999024272|MR|Test|E|Lead 24272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024273|124273|989898|1|9999024273|MR|Test|E|Lead 24273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024274|124274|989898|1|9999024274|MR|Test|E|Lead 24274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024275|124275|989898|1|9999024275|MR|Test|E|Lead 24275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024276|124276|989898|1|9999024276|MR|Test|E|Lead 24276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024277|124277|989898|1|9999024277|MR|Test|E|Lead 24277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024278|124278|989898|1|9999024278|MR|Test|E|Lead 24278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024279|124279|989898|1|9999024279|MR|Test|E|Lead 24279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024280|124280|989898|1|9999024280|MR|Test|E|Lead 24280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024281|124281|989898|1|9999024281|MR|Test|E|Lead 24281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024282|124282|989898|1|9999024282|MR|Test|E|Lead 24282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024283|124283|989898|1|9999024283|MR|Test|E|Lead 24283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024284|124284|989898|1|9999024284|MR|Test|E|Lead 24284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024285|124285|989898|1|9999024285|MR|Test|E|Lead 24285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024286|124286|989898|1|9999024286|MR|Test|E|Lead 24286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024287|124287|989898|1|9999024287|MR|Test|E|Lead 24287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024288|124288|989898|1|9999024288|MR|Test|E|Lead 24288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024289|124289|989898|1|9999024289|MR|Test|E|Lead 24289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024290|124290|989898|1|9999024290|MR|Test|E|Lead 24290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024291|124291|989898|1|9999024291|MR|Test|E|Lead 24291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024292|124292|989898|1|9999024292|MR|Test|E|Lead 24292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024293|124293|989898|1|9999024293|MR|Test|E|Lead 24293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024294|124294|989898|1|9999024294|MR|Test|E|Lead 24294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024295|124295|989898|1|9999024295|MR|Test|E|Lead 24295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024296|124296|989898|1|9999024296|MR|Test|E|Lead 24296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024297|124297|989898|1|9999024297|MR|Test|E|Lead 24297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024298|124298|989898|1|9999024298|MR|Test|E|Lead 24298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024299|124299|989898|1|9999024299|MR|Test|E|Lead 24299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024300|124300|989898|1|9999024300|MR|Test|E|Lead 24300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024301|124301|989898|1|9999024301|MR|Test|E|Lead 24301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024302|124302|989898|1|9999024302|MR|Test|E|Lead 24302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024303|124303|989898|1|9999024303|MR|Test|E|Lead 24303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024304|124304|989898|1|9999024304|MR|Test|E|Lead 24304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024305|124305|989898|1|9999024305|MR|Test|E|Lead 24305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024306|124306|989898|1|9999024306|MR|Test|E|Lead 24306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024307|124307|989898|1|9999024307|MR|Test|E|Lead 24307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024308|124308|989898|1|9999024308|MR|Test|E|Lead 24308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024309|124309|989898|1|9999024309|MR|Test|E|Lead 24309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024310|124310|989898|1|9999024310|MR|Test|E|Lead 24310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024311|124311|989898|1|9999024311|MR|Test|E|Lead 24311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024312|124312|989898|1|9999024312|MR|Test|E|Lead 24312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024313|124313|989898|1|9999024313|MR|Test|E|Lead 24313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024314|124314|989898|1|9999024314|MR|Test|E|Lead 24314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024315|124315|989898|1|9999024315|MR|Test|E|Lead 24315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024316|124316|989898|1|9999024316|MR|Test|E|Lead 24316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024317|124317|989898|1|9999024317|MR|Test|E|Lead 24317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024318|124318|989898|1|9999024318|MR|Test|E|Lead 24318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024319|124319|989898|1|9999024319|MR|Test|E|Lead 24319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024320|124320|989898|1|9999024320|MR|Test|E|Lead 24320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024321|124321|989898|1|9999024321|MR|Test|E|Lead 24321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024322|124322|989898|1|9999024322|MR|Test|E|Lead 24322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024323|124323|989898|1|9999024323|MR|Test|E|Lead 24323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024324|124324|989898|1|9999024324|MR|Test|E|Lead 24324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024325|124325|989898|1|9999024325|MR|Test|E|Lead 24325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024326|124326|989898|1|9999024326|MR|Test|E|Lead 24326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024327|124327|989898|1|9999024327|MR|Test|E|Lead 24327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024328|124328|989898|1|9999024328|MR|Test|E|Lead 24328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024329|124329|989898|1|9999024329|MR|Test|E|Lead 24329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024330|124330|989898|1|9999024330|MR|Test|E|Lead 24330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024331|124331|989898|1|9999024331|MR|Test|E|Lead 24331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024332|124332|989898|1|9999024332|MR|Test|E|Lead 24332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024333|124333|989898|1|9999024333|MR|Test|E|Lead 24333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024334|124334|989898|1|9999024334|MR|Test|E|Lead 24334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024335|124335|989898|1|9999024335|MR|Test|E|Lead 24335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024336|124336|989898|1|9999024336|MR|Test|E|Lead 24336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024337|124337|989898|1|9999024337|MR|Test|E|Lead 24337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024338|124338|989898|1|9999024338|MR|Test|E|Lead 24338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024339|124339|989898|1|9999024339|MR|Test|E|Lead 24339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024340|124340|989898|1|9999024340|MR|Test|E|Lead 24340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024341|124341|989898|1|9999024341|MR|Test|E|Lead 24341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024342|124342|989898|1|9999024342|MR|Test|E|Lead 24342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024343|124343|989898|1|9999024343|MR|Test|E|Lead 24343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024344|124344|989898|1|9999024344|MR|Test|E|Lead 24344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024345|124345|989898|1|9999024345|MR|Test|E|Lead 24345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024346|124346|989898|1|9999024346|MR|Test|E|Lead 24346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024347|124347|989898|1|9999024347|MR|Test|E|Lead 24347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024348|124348|989898|1|9999024348|MR|Test|E|Lead 24348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024349|124349|989898|1|9999024349|MR|Test|E|Lead 24349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024350|124350|989898|1|9999024350|MR|Test|E|Lead 24350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024351|124351|989898|1|9999024351|MR|Test|E|Lead 24351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024352|124352|989898|1|9999024352|MR|Test|E|Lead 24352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024353|124353|989898|1|9999024353|MR|Test|E|Lead 24353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024354|124354|989898|1|9999024354|MR|Test|E|Lead 24354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024355|124355|989898|1|9999024355|MR|Test|E|Lead 24355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024356|124356|989898|1|9999024356|MR|Test|E|Lead 24356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024357|124357|989898|1|9999024357|MR|Test|E|Lead 24357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024358|124358|989898|1|9999024358|MR|Test|E|Lead 24358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024359|124359|989898|1|9999024359|MR|Test|E|Lead 24359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024360|124360|989898|1|9999024360|MR|Test|E|Lead 24360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024361|124361|989898|1|9999024361|MR|Test|E|Lead 24361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024362|124362|989898|1|9999024362|MR|Test|E|Lead 24362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024363|124363|989898|1|9999024363|MR|Test|E|Lead 24363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024364|124364|989898|1|9999024364|MR|Test|E|Lead 24364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024365|124365|989898|1|9999024365|MR|Test|E|Lead 24365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024366|124366|989898|1|9999024366|MR|Test|E|Lead 24366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024367|124367|989898|1|9999024367|MR|Test|E|Lead 24367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024368|124368|989898|1|9999024368|MR|Test|E|Lead 24368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024369|124369|989898|1|9999024369|MR|Test|E|Lead 24369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024370|124370|989898|1|9999024370|MR|Test|E|Lead 24370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024371|124371|989898|1|9999024371|MR|Test|E|Lead 24371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024372|124372|989898|1|9999024372|MR|Test|E|Lead 24372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024373|124373|989898|1|9999024373|MR|Test|E|Lead 24373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024374|124374|989898|1|9999024374|MR|Test|E|Lead 24374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024375|124375|989898|1|9999024375|MR|Test|E|Lead 24375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024376|124376|989898|1|9999024376|MR|Test|E|Lead 24376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024377|124377|989898|1|9999024377|MR|Test|E|Lead 24377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024378|124378|989898|1|9999024378|MR|Test|E|Lead 24378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024379|124379|989898|1|9999024379|MR|Test|E|Lead 24379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024380|124380|989898|1|9999024380|MR|Test|E|Lead 24380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024381|124381|989898|1|9999024381|MR|Test|E|Lead 24381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024382|124382|989898|1|9999024382|MR|Test|E|Lead 24382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024383|124383|989898|1|9999024383|MR|Test|E|Lead 24383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024384|124384|989898|1|9999024384|MR|Test|E|Lead 24384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024385|124385|989898|1|9999024385|MR|Test|E|Lead 24385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024386|124386|989898|1|9999024386|MR|Test|E|Lead 24386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024387|124387|989898|1|9999024387|MR|Test|E|Lead 24387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024388|124388|989898|1|9999024388|MR|Test|E|Lead 24388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024389|124389|989898|1|9999024389|MR|Test|E|Lead 24389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024390|124390|989898|1|9999024390|MR|Test|E|Lead 24390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024391|124391|989898|1|9999024391|MR|Test|E|Lead 24391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024392|124392|989898|1|9999024392|MR|Test|E|Lead 24392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024393|124393|989898|1|9999024393|MR|Test|E|Lead 24393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024394|124394|989898|1|9999024394|MR|Test|E|Lead 24394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024395|124395|989898|1|9999024395|MR|Test|E|Lead 24395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024396|124396|989898|1|9999024396|MR|Test|E|Lead 24396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024397|124397|989898|1|9999024397|MR|Test|E|Lead 24397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024398|124398|989898|1|9999024398|MR|Test|E|Lead 24398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024399|124399|989898|1|9999024399|MR|Test|E|Lead 24399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024400|124400|989898|1|9999024400|MR|Test|E|Lead 24400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024401|124401|989898|1|9999024401|MR|Test|E|Lead 24401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024402|124402|989898|1|9999024402|MR|Test|E|Lead 24402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024403|124403|989898|1|9999024403|MR|Test|E|Lead 24403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024404|124404|989898|1|9999024404|MR|Test|E|Lead 24404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024405|124405|989898|1|9999024405|MR|Test|E|Lead 24405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024406|124406|989898|1|9999024406|MR|Test|E|Lead 24406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024407|124407|989898|1|9999024407|MR|Test|E|Lead 24407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024408|124408|989898|1|9999024408|MR|Test|E|Lead 24408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024409|124409|989898|1|9999024409|MR|Test|E|Lead 24409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024410|124410|989898|1|9999024410|MR|Test|E|Lead 24410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024411|124411|989898|1|9999024411|MR|Test|E|Lead 24411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024412|124412|989898|1|9999024412|MR|Test|E|Lead 24412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024413|124413|989898|1|9999024413|MR|Test|E|Lead 24413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024414|124414|989898|1|9999024414|MR|Test|E|Lead 24414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024415|124415|989898|1|9999024415|MR|Test|E|Lead 24415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024416|124416|989898|1|9999024416|MR|Test|E|Lead 24416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024417|124417|989898|1|9999024417|MR|Test|E|Lead 24417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024418|124418|989898|1|9999024418|MR|Test|E|Lead 24418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024419|124419|989898|1|9999024419|MR|Test|E|Lead 24419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024420|124420|989898|1|9999024420|MR|Test|E|Lead 24420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024421|124421|989898|1|9999024421|MR|Test|E|Lead 24421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024422|124422|989898|1|9999024422|MR|Test|E|Lead 24422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024423|124423|989898|1|9999024423|MR|Test|E|Lead 24423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024424|124424|989898|1|9999024424|MR|Test|E|Lead 24424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024425|124425|989898|1|9999024425|MR|Test|E|Lead 24425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024426|124426|989898|1|9999024426|MR|Test|E|Lead 24426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024427|124427|989898|1|9999024427|MR|Test|E|Lead 24427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024428|124428|989898|1|9999024428|MR|Test|E|Lead 24428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024429|124429|989898|1|9999024429|MR|Test|E|Lead 24429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024430|124430|989898|1|9999024430|MR|Test|E|Lead 24430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024431|124431|989898|1|9999024431|MR|Test|E|Lead 24431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024432|124432|989898|1|9999024432|MR|Test|E|Lead 24432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024433|124433|989898|1|9999024433|MR|Test|E|Lead 24433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024434|124434|989898|1|9999024434|MR|Test|E|Lead 24434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024435|124435|989898|1|9999024435|MR|Test|E|Lead 24435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024436|124436|989898|1|9999024436|MR|Test|E|Lead 24436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024437|124437|989898|1|9999024437|MR|Test|E|Lead 24437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024438|124438|989898|1|9999024438|MR|Test|E|Lead 24438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024439|124439|989898|1|9999024439|MR|Test|E|Lead 24439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024440|124440|989898|1|9999024440|MR|Test|E|Lead 24440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024441|124441|989898|1|9999024441|MR|Test|E|Lead 24441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024442|124442|989898|1|9999024442|MR|Test|E|Lead 24442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024443|124443|989898|1|9999024443|MR|Test|E|Lead 24443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024444|124444|989898|1|9999024444|MR|Test|E|Lead 24444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024445|124445|989898|1|9999024445|MR|Test|E|Lead 24445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024446|124446|989898|1|9999024446|MR|Test|E|Lead 24446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024447|124447|989898|1|9999024447|MR|Test|E|Lead 24447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024448|124448|989898|1|9999024448|MR|Test|E|Lead 24448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024449|124449|989898|1|9999024449|MR|Test|E|Lead 24449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024450|124450|989898|1|9999024450|MR|Test|E|Lead 24450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024451|124451|989898|1|9999024451|MR|Test|E|Lead 24451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024452|124452|989898|1|9999024452|MR|Test|E|Lead 24452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024453|124453|989898|1|9999024453|MR|Test|E|Lead 24453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024454|124454|989898|1|9999024454|MR|Test|E|Lead 24454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024455|124455|989898|1|9999024455|MR|Test|E|Lead 24455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024456|124456|989898|1|9999024456|MR|Test|E|Lead 24456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024457|124457|989898|1|9999024457|MR|Test|E|Lead 24457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024458|124458|989898|1|9999024458|MR|Test|E|Lead 24458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024459|124459|989898|1|9999024459|MR|Test|E|Lead 24459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024460|124460|989898|1|9999024460|MR|Test|E|Lead 24460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024461|124461|989898|1|9999024461|MR|Test|E|Lead 24461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024462|124462|989898|1|9999024462|MR|Test|E|Lead 24462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024463|124463|989898|1|9999024463|MR|Test|E|Lead 24463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024464|124464|989898|1|9999024464|MR|Test|E|Lead 24464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024465|124465|989898|1|9999024465|MR|Test|E|Lead 24465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024466|124466|989898|1|9999024466|MR|Test|E|Lead 24466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024467|124467|989898|1|9999024467|MR|Test|E|Lead 24467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024468|124468|989898|1|9999024468|MR|Test|E|Lead 24468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024469|124469|989898|1|9999024469|MR|Test|E|Lead 24469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024470|124470|989898|1|9999024470|MR|Test|E|Lead 24470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024471|124471|989898|1|9999024471|MR|Test|E|Lead 24471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024472|124472|989898|1|9999024472|MR|Test|E|Lead 24472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024473|124473|989898|1|9999024473|MR|Test|E|Lead 24473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024474|124474|989898|1|9999024474|MR|Test|E|Lead 24474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024475|124475|989898|1|9999024475|MR|Test|E|Lead 24475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024476|124476|989898|1|9999024476|MR|Test|E|Lead 24476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024477|124477|989898|1|9999024477|MR|Test|E|Lead 24477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024478|124478|989898|1|9999024478|MR|Test|E|Lead 24478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024479|124479|989898|1|9999024479|MR|Test|E|Lead 24479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024480|124480|989898|1|9999024480|MR|Test|E|Lead 24480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024481|124481|989898|1|9999024481|MR|Test|E|Lead 24481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024482|124482|989898|1|9999024482|MR|Test|E|Lead 24482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024483|124483|989898|1|9999024483|MR|Test|E|Lead 24483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024484|124484|989898|1|9999024484|MR|Test|E|Lead 24484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024485|124485|989898|1|9999024485|MR|Test|E|Lead 24485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024486|124486|989898|1|9999024486|MR|Test|E|Lead 24486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024487|124487|989898|1|9999024487|MR|Test|E|Lead 24487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024488|124488|989898|1|9999024488|MR|Test|E|Lead 24488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024489|124489|989898|1|9999024489|MR|Test|E|Lead 24489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024490|124490|989898|1|9999024490|MR|Test|E|Lead 24490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024491|124491|989898|1|9999024491|MR|Test|E|Lead 24491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024492|124492|989898|1|9999024492|MR|Test|E|Lead 24492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024493|124493|989898|1|9999024493|MR|Test|E|Lead 24493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024494|124494|989898|1|9999024494|MR|Test|E|Lead 24494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024495|124495|989898|1|9999024495|MR|Test|E|Lead 24495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024496|124496|989898|1|9999024496|MR|Test|E|Lead 24496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024497|124497|989898|1|9999024497|MR|Test|E|Lead 24497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024498|124498|989898|1|9999024498|MR|Test|E|Lead 24498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024499|124499|989898|1|9999024499|MR|Test|E|Lead 24499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024500|124500|989898|1|9999024500|MR|Test|E|Lead 24500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024501|124501|989898|1|9999024501|MR|Test|E|Lead 24501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024502|124502|989898|1|9999024502|MR|Test|E|Lead 24502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024503|124503|989898|1|9999024503|MR|Test|E|Lead 24503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024504|124504|989898|1|9999024504|MR|Test|E|Lead 24504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024505|124505|989898|1|9999024505|MR|Test|E|Lead 24505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024506|124506|989898|1|9999024506|MR|Test|E|Lead 24506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024507|124507|989898|1|9999024507|MR|Test|E|Lead 24507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024508|124508|989898|1|9999024508|MR|Test|E|Lead 24508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024509|124509|989898|1|9999024509|MR|Test|E|Lead 24509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024510|124510|989898|1|9999024510|MR|Test|E|Lead 24510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024511|124511|989898|1|9999024511|MR|Test|E|Lead 24511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024512|124512|989898|1|9999024512|MR|Test|E|Lead 24512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024513|124513|989898|1|9999024513|MR|Test|E|Lead 24513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024514|124514|989898|1|9999024514|MR|Test|E|Lead 24514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024515|124515|989898|1|9999024515|MR|Test|E|Lead 24515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024516|124516|989898|1|9999024516|MR|Test|E|Lead 24516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024517|124517|989898|1|9999024517|MR|Test|E|Lead 24517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024518|124518|989898|1|9999024518|MR|Test|E|Lead 24518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024519|124519|989898|1|9999024519|MR|Test|E|Lead 24519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024520|124520|989898|1|9999024520|MR|Test|E|Lead 24520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024521|124521|989898|1|9999024521|MR|Test|E|Lead 24521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024522|124522|989898|1|9999024522|MR|Test|E|Lead 24522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024523|124523|989898|1|9999024523|MR|Test|E|Lead 24523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024524|124524|989898|1|9999024524|MR|Test|E|Lead 24524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024525|124525|989898|1|9999024525|MR|Test|E|Lead 24525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024526|124526|989898|1|9999024526|MR|Test|E|Lead 24526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024527|124527|989898|1|9999024527|MR|Test|E|Lead 24527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024528|124528|989898|1|9999024528|MR|Test|E|Lead 24528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024529|124529|989898|1|9999024529|MR|Test|E|Lead 24529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024530|124530|989898|1|9999024530|MR|Test|E|Lead 24530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024531|124531|989898|1|9999024531|MR|Test|E|Lead 24531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024532|124532|989898|1|9999024532|MR|Test|E|Lead 24532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024533|124533|989898|1|9999024533|MR|Test|E|Lead 24533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024534|124534|989898|1|9999024534|MR|Test|E|Lead 24534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024535|124535|989898|1|9999024535|MR|Test|E|Lead 24535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024536|124536|989898|1|9999024536|MR|Test|E|Lead 24536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024537|124537|989898|1|9999024537|MR|Test|E|Lead 24537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024538|124538|989898|1|9999024538|MR|Test|E|Lead 24538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024539|124539|989898|1|9999024539|MR|Test|E|Lead 24539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024540|124540|989898|1|9999024540|MR|Test|E|Lead 24540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024541|124541|989898|1|9999024541|MR|Test|E|Lead 24541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024542|124542|989898|1|9999024542|MR|Test|E|Lead 24542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024543|124543|989898|1|9999024543|MR|Test|E|Lead 24543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024544|124544|989898|1|9999024544|MR|Test|E|Lead 24544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024545|124545|989898|1|9999024545|MR|Test|E|Lead 24545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024546|124546|989898|1|9999024546|MR|Test|E|Lead 24546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024547|124547|989898|1|9999024547|MR|Test|E|Lead 24547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024548|124548|989898|1|9999024548|MR|Test|E|Lead 24548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024549|124549|989898|1|9999024549|MR|Test|E|Lead 24549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024550|124550|989898|1|9999024550|MR|Test|E|Lead 24550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024551|124551|989898|1|9999024551|MR|Test|E|Lead 24551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024552|124552|989898|1|9999024552|MR|Test|E|Lead 24552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024553|124553|989898|1|9999024553|MR|Test|E|Lead 24553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024554|124554|989898|1|9999024554|MR|Test|E|Lead 24554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024555|124555|989898|1|9999024555|MR|Test|E|Lead 24555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024556|124556|989898|1|9999024556|MR|Test|E|Lead 24556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024557|124557|989898|1|9999024557|MR|Test|E|Lead 24557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024558|124558|989898|1|9999024558|MR|Test|E|Lead 24558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024559|124559|989898|1|9999024559|MR|Test|E|Lead 24559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024560|124560|989898|1|9999024560|MR|Test|E|Lead 24560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024561|124561|989898|1|9999024561|MR|Test|E|Lead 24561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024562|124562|989898|1|9999024562|MR|Test|E|Lead 24562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024563|124563|989898|1|9999024563|MR|Test|E|Lead 24563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024564|124564|989898|1|9999024564|MR|Test|E|Lead 24564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024565|124565|989898|1|9999024565|MR|Test|E|Lead 24565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024566|124566|989898|1|9999024566|MR|Test|E|Lead 24566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024567|124567|989898|1|9999024567|MR|Test|E|Lead 24567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024568|124568|989898|1|9999024568|MR|Test|E|Lead 24568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024569|124569|989898|1|9999024569|MR|Test|E|Lead 24569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024570|124570|989898|1|9999024570|MR|Test|E|Lead 24570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024571|124571|989898|1|9999024571|MR|Test|E|Lead 24571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024572|124572|989898|1|9999024572|MR|Test|E|Lead 24572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024573|124573|989898|1|9999024573|MR|Test|E|Lead 24573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024574|124574|989898|1|9999024574|MR|Test|E|Lead 24574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024575|124575|989898|1|9999024575|MR|Test|E|Lead 24575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024576|124576|989898|1|9999024576|MR|Test|E|Lead 24576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024577|124577|989898|1|9999024577|MR|Test|E|Lead 24577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024578|124578|989898|1|9999024578|MR|Test|E|Lead 24578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024579|124579|989898|1|9999024579|MR|Test|E|Lead 24579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024580|124580|989898|1|9999024580|MR|Test|E|Lead 24580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024581|124581|989898|1|9999024581|MR|Test|E|Lead 24581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024582|124582|989898|1|9999024582|MR|Test|E|Lead 24582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024583|124583|989898|1|9999024583|MR|Test|E|Lead 24583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024584|124584|989898|1|9999024584|MR|Test|E|Lead 24584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024585|124585|989898|1|9999024585|MR|Test|E|Lead 24585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024586|124586|989898|1|9999024586|MR|Test|E|Lead 24586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024587|124587|989898|1|9999024587|MR|Test|E|Lead 24587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024588|124588|989898|1|9999024588|MR|Test|E|Lead 24588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024589|124589|989898|1|9999024589|MR|Test|E|Lead 24589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024590|124590|989898|1|9999024590|MR|Test|E|Lead 24590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024591|124591|989898|1|9999024591|MR|Test|E|Lead 24591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024592|124592|989898|1|9999024592|MR|Test|E|Lead 24592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024593|124593|989898|1|9999024593|MR|Test|E|Lead 24593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024594|124594|989898|1|9999024594|MR|Test|E|Lead 24594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024595|124595|989898|1|9999024595|MR|Test|E|Lead 24595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024596|124596|989898|1|9999024596|MR|Test|E|Lead 24596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024597|124597|989898|1|9999024597|MR|Test|E|Lead 24597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024598|124598|989898|1|9999024598|MR|Test|E|Lead 24598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024599|124599|989898|1|9999024599|MR|Test|E|Lead 24599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024600|124600|989898|1|9999024600|MR|Test|E|Lead 24600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024601|124601|989898|1|9999024601|MR|Test|E|Lead 24601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024602|124602|989898|1|9999024602|MR|Test|E|Lead 24602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024603|124603|989898|1|9999024603|MR|Test|E|Lead 24603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024604|124604|989898|1|9999024604|MR|Test|E|Lead 24604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024605|124605|989898|1|9999024605|MR|Test|E|Lead 24605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024606|124606|989898|1|9999024606|MR|Test|E|Lead 24606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024607|124607|989898|1|9999024607|MR|Test|E|Lead 24607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024608|124608|989898|1|9999024608|MR|Test|E|Lead 24608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024609|124609|989898|1|9999024609|MR|Test|E|Lead 24609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024610|124610|989898|1|9999024610|MR|Test|E|Lead 24610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024611|124611|989898|1|9999024611|MR|Test|E|Lead 24611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024612|124612|989898|1|9999024612|MR|Test|E|Lead 24612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024613|124613|989898|1|9999024613|MR|Test|E|Lead 24613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024614|124614|989898|1|9999024614|MR|Test|E|Lead 24614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024615|124615|989898|1|9999024615|MR|Test|E|Lead 24615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024616|124616|989898|1|9999024616|MR|Test|E|Lead 24616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024617|124617|989898|1|9999024617|MR|Test|E|Lead 24617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024618|124618|989898|1|9999024618|MR|Test|E|Lead 24618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024619|124619|989898|1|9999024619|MR|Test|E|Lead 24619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024620|124620|989898|1|9999024620|MR|Test|E|Lead 24620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024621|124621|989898|1|9999024621|MR|Test|E|Lead 24621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024622|124622|989898|1|9999024622|MR|Test|E|Lead 24622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024623|124623|989898|1|9999024623|MR|Test|E|Lead 24623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024624|124624|989898|1|9999024624|MR|Test|E|Lead 24624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024625|124625|989898|1|9999024625|MR|Test|E|Lead 24625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024626|124626|989898|1|9999024626|MR|Test|E|Lead 24626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024627|124627|989898|1|9999024627|MR|Test|E|Lead 24627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024628|124628|989898|1|9999024628|MR|Test|E|Lead 24628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024629|124629|989898|1|9999024629|MR|Test|E|Lead 24629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024630|124630|989898|1|9999024630|MR|Test|E|Lead 24630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024631|124631|989898|1|9999024631|MR|Test|E|Lead 24631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024632|124632|989898|1|9999024632|MR|Test|E|Lead 24632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024633|124633|989898|1|9999024633|MR|Test|E|Lead 24633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024634|124634|989898|1|9999024634|MR|Test|E|Lead 24634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024635|124635|989898|1|9999024635|MR|Test|E|Lead 24635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024636|124636|989898|1|9999024636|MR|Test|E|Lead 24636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024637|124637|989898|1|9999024637|MR|Test|E|Lead 24637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024638|124638|989898|1|9999024638|MR|Test|E|Lead 24638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024639|124639|989898|1|9999024639|MR|Test|E|Lead 24639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024640|124640|989898|1|9999024640|MR|Test|E|Lead 24640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024641|124641|989898|1|9999024641|MR|Test|E|Lead 24641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024642|124642|989898|1|9999024642|MR|Test|E|Lead 24642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024643|124643|989898|1|9999024643|MR|Test|E|Lead 24643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024644|124644|989898|1|9999024644|MR|Test|E|Lead 24644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024645|124645|989898|1|9999024645|MR|Test|E|Lead 24645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024646|124646|989898|1|9999024646|MR|Test|E|Lead 24646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024647|124647|989898|1|9999024647|MR|Test|E|Lead 24647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024648|124648|989898|1|9999024648|MR|Test|E|Lead 24648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024649|124649|989898|1|9999024649|MR|Test|E|Lead 24649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024650|124650|989898|1|9999024650|MR|Test|E|Lead 24650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024651|124651|989898|1|9999024651|MR|Test|E|Lead 24651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024652|124652|989898|1|9999024652|MR|Test|E|Lead 24652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024653|124653|989898|1|9999024653|MR|Test|E|Lead 24653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024654|124654|989898|1|9999024654|MR|Test|E|Lead 24654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024655|124655|989898|1|9999024655|MR|Test|E|Lead 24655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024656|124656|989898|1|9999024656|MR|Test|E|Lead 24656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024657|124657|989898|1|9999024657|MR|Test|E|Lead 24657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024658|124658|989898|1|9999024658|MR|Test|E|Lead 24658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024659|124659|989898|1|9999024659|MR|Test|E|Lead 24659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024660|124660|989898|1|9999024660|MR|Test|E|Lead 24660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024661|124661|989898|1|9999024661|MR|Test|E|Lead 24661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024662|124662|989898|1|9999024662|MR|Test|E|Lead 24662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024663|124663|989898|1|9999024663|MR|Test|E|Lead 24663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024664|124664|989898|1|9999024664|MR|Test|E|Lead 24664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024665|124665|989898|1|9999024665|MR|Test|E|Lead 24665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024666|124666|989898|1|9999024666|MR|Test|E|Lead 24666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024667|124667|989898|1|9999024667|MR|Test|E|Lead 24667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024668|124668|989898|1|9999024668|MR|Test|E|Lead 24668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024669|124669|989898|1|9999024669|MR|Test|E|Lead 24669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024670|124670|989898|1|9999024670|MR|Test|E|Lead 24670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024671|124671|989898|1|9999024671|MR|Test|E|Lead 24671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024672|124672|989898|1|9999024672|MR|Test|E|Lead 24672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024673|124673|989898|1|9999024673|MR|Test|E|Lead 24673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024674|124674|989898|1|9999024674|MR|Test|E|Lead 24674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024675|124675|989898|1|9999024675|MR|Test|E|Lead 24675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024676|124676|989898|1|9999024676|MR|Test|E|Lead 24676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024677|124677|989898|1|9999024677|MR|Test|E|Lead 24677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024678|124678|989898|1|9999024678|MR|Test|E|Lead 24678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024679|124679|989898|1|9999024679|MR|Test|E|Lead 24679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024680|124680|989898|1|9999024680|MR|Test|E|Lead 24680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024681|124681|989898|1|9999024681|MR|Test|E|Lead 24681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024682|124682|989898|1|9999024682|MR|Test|E|Lead 24682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024683|124683|989898|1|9999024683|MR|Test|E|Lead 24683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024684|124684|989898|1|9999024684|MR|Test|E|Lead 24684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024685|124685|989898|1|9999024685|MR|Test|E|Lead 24685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024686|124686|989898|1|9999024686|MR|Test|E|Lead 24686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024687|124687|989898|1|9999024687|MR|Test|E|Lead 24687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024688|124688|989898|1|9999024688|MR|Test|E|Lead 24688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024689|124689|989898|1|9999024689|MR|Test|E|Lead 24689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024690|124690|989898|1|9999024690|MR|Test|E|Lead 24690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024691|124691|989898|1|9999024691|MR|Test|E|Lead 24691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024692|124692|989898|1|9999024692|MR|Test|E|Lead 24692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024693|124693|989898|1|9999024693|MR|Test|E|Lead 24693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024694|124694|989898|1|9999024694|MR|Test|E|Lead 24694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024695|124695|989898|1|9999024695|MR|Test|E|Lead 24695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024696|124696|989898|1|9999024696|MR|Test|E|Lead 24696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024697|124697|989898|1|9999024697|MR|Test|E|Lead 24697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024698|124698|989898|1|9999024698|MR|Test|E|Lead 24698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024699|124699|989898|1|9999024699|MR|Test|E|Lead 24699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024700|124700|989898|1|9999024700|MR|Test|E|Lead 24700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024701|124701|989898|1|9999024701|MR|Test|E|Lead 24701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024702|124702|989898|1|9999024702|MR|Test|E|Lead 24702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024703|124703|989898|1|9999024703|MR|Test|E|Lead 24703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024704|124704|989898|1|9999024704|MR|Test|E|Lead 24704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024705|124705|989898|1|9999024705|MR|Test|E|Lead 24705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024706|124706|989898|1|9999024706|MR|Test|E|Lead 24706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024707|124707|989898|1|9999024707|MR|Test|E|Lead 24707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024708|124708|989898|1|9999024708|MR|Test|E|Lead 24708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024709|124709|989898|1|9999024709|MR|Test|E|Lead 24709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024710|124710|989898|1|9999024710|MR|Test|E|Lead 24710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024711|124711|989898|1|9999024711|MR|Test|E|Lead 24711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024712|124712|989898|1|9999024712|MR|Test|E|Lead 24712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024713|124713|989898|1|9999024713|MR|Test|E|Lead 24713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024714|124714|989898|1|9999024714|MR|Test|E|Lead 24714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024715|124715|989898|1|9999024715|MR|Test|E|Lead 24715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024716|124716|989898|1|9999024716|MR|Test|E|Lead 24716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024717|124717|989898|1|9999024717|MR|Test|E|Lead 24717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024718|124718|989898|1|9999024718|MR|Test|E|Lead 24718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024719|124719|989898|1|9999024719|MR|Test|E|Lead 24719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024720|124720|989898|1|9999024720|MR|Test|E|Lead 24720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024721|124721|989898|1|9999024721|MR|Test|E|Lead 24721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024722|124722|989898|1|9999024722|MR|Test|E|Lead 24722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024723|124723|989898|1|9999024723|MR|Test|E|Lead 24723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024724|124724|989898|1|9999024724|MR|Test|E|Lead 24724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024725|124725|989898|1|9999024725|MR|Test|E|Lead 24725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024726|124726|989898|1|9999024726|MR|Test|E|Lead 24726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024727|124727|989898|1|9999024727|MR|Test|E|Lead 24727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024728|124728|989898|1|9999024728|MR|Test|E|Lead 24728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024729|124729|989898|1|9999024729|MR|Test|E|Lead 24729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024730|124730|989898|1|9999024730|MR|Test|E|Lead 24730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024731|124731|989898|1|9999024731|MR|Test|E|Lead 24731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024732|124732|989898|1|9999024732|MR|Test|E|Lead 24732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024733|124733|989898|1|9999024733|MR|Test|E|Lead 24733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024734|124734|989898|1|9999024734|MR|Test|E|Lead 24734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024735|124735|989898|1|9999024735|MR|Test|E|Lead 24735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024736|124736|989898|1|9999024736|MR|Test|E|Lead 24736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024737|124737|989898|1|9999024737|MR|Test|E|Lead 24737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024738|124738|989898|1|9999024738|MR|Test|E|Lead 24738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024739|124739|989898|1|9999024739|MR|Test|E|Lead 24739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024740|124740|989898|1|9999024740|MR|Test|E|Lead 24740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024741|124741|989898|1|9999024741|MR|Test|E|Lead 24741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024742|124742|989898|1|9999024742|MR|Test|E|Lead 24742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024743|124743|989898|1|9999024743|MR|Test|E|Lead 24743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024744|124744|989898|1|9999024744|MR|Test|E|Lead 24744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024745|124745|989898|1|9999024745|MR|Test|E|Lead 24745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024746|124746|989898|1|9999024746|MR|Test|E|Lead 24746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024747|124747|989898|1|9999024747|MR|Test|E|Lead 24747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024748|124748|989898|1|9999024748|MR|Test|E|Lead 24748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024749|124749|989898|1|9999024749|MR|Test|E|Lead 24749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024750|124750|989898|1|9999024750|MR|Test|E|Lead 24750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024751|124751|989898|1|9999024751|MR|Test|E|Lead 24751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024752|124752|989898|1|9999024752|MR|Test|E|Lead 24752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024753|124753|989898|1|9999024753|MR|Test|E|Lead 24753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024754|124754|989898|1|9999024754|MR|Test|E|Lead 24754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024755|124755|989898|1|9999024755|MR|Test|E|Lead 24755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024756|124756|989898|1|9999024756|MR|Test|E|Lead 24756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024757|124757|989898|1|9999024757|MR|Test|E|Lead 24757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024758|124758|989898|1|9999024758|MR|Test|E|Lead 24758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024759|124759|989898|1|9999024759|MR|Test|E|Lead 24759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024760|124760|989898|1|9999024760|MR|Test|E|Lead 24760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024761|124761|989898|1|9999024761|MR|Test|E|Lead 24761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024762|124762|989898|1|9999024762|MR|Test|E|Lead 24762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024763|124763|989898|1|9999024763|MR|Test|E|Lead 24763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024764|124764|989898|1|9999024764|MR|Test|E|Lead 24764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024765|124765|989898|1|9999024765|MR|Test|E|Lead 24765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024766|124766|989898|1|9999024766|MR|Test|E|Lead 24766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024767|124767|989898|1|9999024767|MR|Test|E|Lead 24767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024768|124768|989898|1|9999024768|MR|Test|E|Lead 24768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024769|124769|989898|1|9999024769|MR|Test|E|Lead 24769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024770|124770|989898|1|9999024770|MR|Test|E|Lead 24770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024771|124771|989898|1|9999024771|MR|Test|E|Lead 24771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024772|124772|989898|1|9999024772|MR|Test|E|Lead 24772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024773|124773|989898|1|9999024773|MR|Test|E|Lead 24773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024774|124774|989898|1|9999024774|MR|Test|E|Lead 24774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024775|124775|989898|1|9999024775|MR|Test|E|Lead 24775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024776|124776|989898|1|9999024776|MR|Test|E|Lead 24776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024777|124777|989898|1|9999024777|MR|Test|E|Lead 24777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024778|124778|989898|1|9999024778|MR|Test|E|Lead 24778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024779|124779|989898|1|9999024779|MR|Test|E|Lead 24779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024780|124780|989898|1|9999024780|MR|Test|E|Lead 24780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024781|124781|989898|1|9999024781|MR|Test|E|Lead 24781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024782|124782|989898|1|9999024782|MR|Test|E|Lead 24782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024783|124783|989898|1|9999024783|MR|Test|E|Lead 24783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024784|124784|989898|1|9999024784|MR|Test|E|Lead 24784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024785|124785|989898|1|9999024785|MR|Test|E|Lead 24785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024786|124786|989898|1|9999024786|MR|Test|E|Lead 24786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024787|124787|989898|1|9999024787|MR|Test|E|Lead 24787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024788|124788|989898|1|9999024788|MR|Test|E|Lead 24788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024789|124789|989898|1|9999024789|MR|Test|E|Lead 24789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024790|124790|989898|1|9999024790|MR|Test|E|Lead 24790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024791|124791|989898|1|9999024791|MR|Test|E|Lead 24791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024792|124792|989898|1|9999024792|MR|Test|E|Lead 24792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024793|124793|989898|1|9999024793|MR|Test|E|Lead 24793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024794|124794|989898|1|9999024794|MR|Test|E|Lead 24794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024795|124795|989898|1|9999024795|MR|Test|E|Lead 24795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024796|124796|989898|1|9999024796|MR|Test|E|Lead 24796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024797|124797|989898|1|9999024797|MR|Test|E|Lead 24797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024798|124798|989898|1|9999024798|MR|Test|E|Lead 24798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024799|124799|989898|1|9999024799|MR|Test|E|Lead 24799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024800|124800|989898|1|9999024800|MR|Test|E|Lead 24800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024801|124801|989898|1|9999024801|MR|Test|E|Lead 24801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024802|124802|989898|1|9999024802|MR|Test|E|Lead 24802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024803|124803|989898|1|9999024803|MR|Test|E|Lead 24803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024804|124804|989898|1|9999024804|MR|Test|E|Lead 24804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024805|124805|989898|1|9999024805|MR|Test|E|Lead 24805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024806|124806|989898|1|9999024806|MR|Test|E|Lead 24806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024807|124807|989898|1|9999024807|MR|Test|E|Lead 24807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024808|124808|989898|1|9999024808|MR|Test|E|Lead 24808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024809|124809|989898|1|9999024809|MR|Test|E|Lead 24809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024810|124810|989898|1|9999024810|MR|Test|E|Lead 24810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024811|124811|989898|1|9999024811|MR|Test|E|Lead 24811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024812|124812|989898|1|9999024812|MR|Test|E|Lead 24812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024813|124813|989898|1|9999024813|MR|Test|E|Lead 24813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024814|124814|989898|1|9999024814|MR|Test|E|Lead 24814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024815|124815|989898|1|9999024815|MR|Test|E|Lead 24815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024816|124816|989898|1|9999024816|MR|Test|E|Lead 24816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024817|124817|989898|1|9999024817|MR|Test|E|Lead 24817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024818|124818|989898|1|9999024818|MR|Test|E|Lead 24818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024819|124819|989898|1|9999024819|MR|Test|E|Lead 24819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024820|124820|989898|1|9999024820|MR|Test|E|Lead 24820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024821|124821|989898|1|9999024821|MR|Test|E|Lead 24821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024822|124822|989898|1|9999024822|MR|Test|E|Lead 24822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024823|124823|989898|1|9999024823|MR|Test|E|Lead 24823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024824|124824|989898|1|9999024824|MR|Test|E|Lead 24824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024825|124825|989898|1|9999024825|MR|Test|E|Lead 24825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024826|124826|989898|1|9999024826|MR|Test|E|Lead 24826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024827|124827|989898|1|9999024827|MR|Test|E|Lead 24827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024828|124828|989898|1|9999024828|MR|Test|E|Lead 24828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024829|124829|989898|1|9999024829|MR|Test|E|Lead 24829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024830|124830|989898|1|9999024830|MR|Test|E|Lead 24830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024831|124831|989898|1|9999024831|MR|Test|E|Lead 24831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024832|124832|989898|1|9999024832|MR|Test|E|Lead 24832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024833|124833|989898|1|9999024833|MR|Test|E|Lead 24833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024834|124834|989898|1|9999024834|MR|Test|E|Lead 24834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024835|124835|989898|1|9999024835|MR|Test|E|Lead 24835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024836|124836|989898|1|9999024836|MR|Test|E|Lead 24836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024837|124837|989898|1|9999024837|MR|Test|E|Lead 24837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024838|124838|989898|1|9999024838|MR|Test|E|Lead 24838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024839|124839|989898|1|9999024839|MR|Test|E|Lead 24839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024840|124840|989898|1|9999024840|MR|Test|E|Lead 24840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024841|124841|989898|1|9999024841|MR|Test|E|Lead 24841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024842|124842|989898|1|9999024842|MR|Test|E|Lead 24842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024843|124843|989898|1|9999024843|MR|Test|E|Lead 24843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024844|124844|989898|1|9999024844|MR|Test|E|Lead 24844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024845|124845|989898|1|9999024845|MR|Test|E|Lead 24845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024846|124846|989898|1|9999024846|MR|Test|E|Lead 24846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024847|124847|989898|1|9999024847|MR|Test|E|Lead 24847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024848|124848|989898|1|9999024848|MR|Test|E|Lead 24848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024849|124849|989898|1|9999024849|MR|Test|E|Lead 24849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024850|124850|989898|1|9999024850|MR|Test|E|Lead 24850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024851|124851|989898|1|9999024851|MR|Test|E|Lead 24851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024852|124852|989898|1|9999024852|MR|Test|E|Lead 24852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024853|124853|989898|1|9999024853|MR|Test|E|Lead 24853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024854|124854|989898|1|9999024854|MR|Test|E|Lead 24854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024855|124855|989898|1|9999024855|MR|Test|E|Lead 24855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024856|124856|989898|1|9999024856|MR|Test|E|Lead 24856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024857|124857|989898|1|9999024857|MR|Test|E|Lead 24857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024858|124858|989898|1|9999024858|MR|Test|E|Lead 24858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024859|124859|989898|1|9999024859|MR|Test|E|Lead 24859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024860|124860|989898|1|9999024860|MR|Test|E|Lead 24860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024861|124861|989898|1|9999024861|MR|Test|E|Lead 24861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024862|124862|989898|1|9999024862|MR|Test|E|Lead 24862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024863|124863|989898|1|9999024863|MR|Test|E|Lead 24863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024864|124864|989898|1|9999024864|MR|Test|E|Lead 24864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024865|124865|989898|1|9999024865|MR|Test|E|Lead 24865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024866|124866|989898|1|9999024866|MR|Test|E|Lead 24866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024867|124867|989898|1|9999024867|MR|Test|E|Lead 24867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024868|124868|989898|1|9999024868|MR|Test|E|Lead 24868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024869|124869|989898|1|9999024869|MR|Test|E|Lead 24869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024870|124870|989898|1|9999024870|MR|Test|E|Lead 24870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024871|124871|989898|1|9999024871|MR|Test|E|Lead 24871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024872|124872|989898|1|9999024872|MR|Test|E|Lead 24872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024873|124873|989898|1|9999024873|MR|Test|E|Lead 24873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024874|124874|989898|1|9999024874|MR|Test|E|Lead 24874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024875|124875|989898|1|9999024875|MR|Test|E|Lead 24875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024876|124876|989898|1|9999024876|MR|Test|E|Lead 24876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024877|124877|989898|1|9999024877|MR|Test|E|Lead 24877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024878|124878|989898|1|9999024878|MR|Test|E|Lead 24878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024879|124879|989898|1|9999024879|MR|Test|E|Lead 24879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024880|124880|989898|1|9999024880|MR|Test|E|Lead 24880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024881|124881|989898|1|9999024881|MR|Test|E|Lead 24881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024882|124882|989898|1|9999024882|MR|Test|E|Lead 24882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024883|124883|989898|1|9999024883|MR|Test|E|Lead 24883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024884|124884|989898|1|9999024884|MR|Test|E|Lead 24884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024885|124885|989898|1|9999024885|MR|Test|E|Lead 24885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024886|124886|989898|1|9999024886|MR|Test|E|Lead 24886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024887|124887|989898|1|9999024887|MR|Test|E|Lead 24887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024888|124888|989898|1|9999024888|MR|Test|E|Lead 24888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024889|124889|989898|1|9999024889|MR|Test|E|Lead 24889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024890|124890|989898|1|9999024890|MR|Test|E|Lead 24890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024891|124891|989898|1|9999024891|MR|Test|E|Lead 24891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024892|124892|989898|1|9999024892|MR|Test|E|Lead 24892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024893|124893|989898|1|9999024893|MR|Test|E|Lead 24893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024894|124894|989898|1|9999024894|MR|Test|E|Lead 24894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024895|124895|989898|1|9999024895|MR|Test|E|Lead 24895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024896|124896|989898|1|9999024896|MR|Test|E|Lead 24896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024897|124897|989898|1|9999024897|MR|Test|E|Lead 24897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024898|124898|989898|1|9999024898|MR|Test|E|Lead 24898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024899|124899|989898|1|9999024899|MR|Test|E|Lead 24899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024900|124900|989898|1|9999024900|MR|Test|E|Lead 24900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024901|124901|989898|1|9999024901|MR|Test|E|Lead 24901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024902|124902|989898|1|9999024902|MR|Test|E|Lead 24902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024903|124903|989898|1|9999024903|MR|Test|E|Lead 24903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024904|124904|989898|1|9999024904|MR|Test|E|Lead 24904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024905|124905|989898|1|9999024905|MR|Test|E|Lead 24905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024906|124906|989898|1|9999024906|MR|Test|E|Lead 24906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024907|124907|989898|1|9999024907|MR|Test|E|Lead 24907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024908|124908|989898|1|9999024908|MR|Test|E|Lead 24908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024909|124909|989898|1|9999024909|MR|Test|E|Lead 24909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024910|124910|989898|1|9999024910|MR|Test|E|Lead 24910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024911|124911|989898|1|9999024911|MR|Test|E|Lead 24911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024912|124912|989898|1|9999024912|MR|Test|E|Lead 24912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024913|124913|989898|1|9999024913|MR|Test|E|Lead 24913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024914|124914|989898|1|9999024914|MR|Test|E|Lead 24914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024915|124915|989898|1|9999024915|MR|Test|E|Lead 24915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024916|124916|989898|1|9999024916|MR|Test|E|Lead 24916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024917|124917|989898|1|9999024917|MR|Test|E|Lead 24917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024918|124918|989898|1|9999024918|MR|Test|E|Lead 24918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024919|124919|989898|1|9999024919|MR|Test|E|Lead 24919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024920|124920|989898|1|9999024920|MR|Test|E|Lead 24920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024921|124921|989898|1|9999024921|MR|Test|E|Lead 24921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024922|124922|989898|1|9999024922|MR|Test|E|Lead 24922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024923|124923|989898|1|9999024923|MR|Test|E|Lead 24923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024924|124924|989898|1|9999024924|MR|Test|E|Lead 24924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024925|124925|989898|1|9999024925|MR|Test|E|Lead 24925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024926|124926|989898|1|9999024926|MR|Test|E|Lead 24926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024927|124927|989898|1|9999024927|MR|Test|E|Lead 24927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024928|124928|989898|1|9999024928|MR|Test|E|Lead 24928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024929|124929|989898|1|9999024929|MR|Test|E|Lead 24929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024930|124930|989898|1|9999024930|MR|Test|E|Lead 24930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024931|124931|989898|1|9999024931|MR|Test|E|Lead 24931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024932|124932|989898|1|9999024932|MR|Test|E|Lead 24932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024933|124933|989898|1|9999024933|MR|Test|E|Lead 24933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024934|124934|989898|1|9999024934|MR|Test|E|Lead 24934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024935|124935|989898|1|9999024935|MR|Test|E|Lead 24935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024936|124936|989898|1|9999024936|MR|Test|E|Lead 24936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024937|124937|989898|1|9999024937|MR|Test|E|Lead 24937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024938|124938|989898|1|9999024938|MR|Test|E|Lead 24938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024939|124939|989898|1|9999024939|MR|Test|E|Lead 24939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024940|124940|989898|1|9999024940|MR|Test|E|Lead 24940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024941|124941|989898|1|9999024941|MR|Test|E|Lead 24941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024942|124942|989898|1|9999024942|MR|Test|E|Lead 24942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024943|124943|989898|1|9999024943|MR|Test|E|Lead 24943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024944|124944|989898|1|9999024944|MR|Test|E|Lead 24944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024945|124945|989898|1|9999024945|MR|Test|E|Lead 24945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024946|124946|989898|1|9999024946|MR|Test|E|Lead 24946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024947|124947|989898|1|9999024947|MR|Test|E|Lead 24947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024948|124948|989898|1|9999024948|MR|Test|E|Lead 24948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024949|124949|989898|1|9999024949|MR|Test|E|Lead 24949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024950|124950|989898|1|9999024950|MR|Test|E|Lead 24950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024951|124951|989898|1|9999024951|MR|Test|E|Lead 24951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024952|124952|989898|1|9999024952|MR|Test|E|Lead 24952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024953|124953|989898|1|9999024953|MR|Test|E|Lead 24953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024954|124954|989898|1|9999024954|MR|Test|E|Lead 24954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024955|124955|989898|1|9999024955|MR|Test|E|Lead 24955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024956|124956|989898|1|9999024956|MR|Test|E|Lead 24956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024957|124957|989898|1|9999024957|MR|Test|E|Lead 24957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024958|124958|989898|1|9999024958|MR|Test|E|Lead 24958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024959|124959|989898|1|9999024959|MR|Test|E|Lead 24959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024960|124960|989898|1|9999024960|MR|Test|E|Lead 24960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024961|124961|989898|1|9999024961|MR|Test|E|Lead 24961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024962|124962|989898|1|9999024962|MR|Test|E|Lead 24962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024963|124963|989898|1|9999024963|MR|Test|E|Lead 24963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024964|124964|989898|1|9999024964|MR|Test|E|Lead 24964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024965|124965|989898|1|9999024965|MR|Test|E|Lead 24965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024966|124966|989898|1|9999024966|MR|Test|E|Lead 24966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024967|124967|989898|1|9999024967|MR|Test|E|Lead 24967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024968|124968|989898|1|9999024968|MR|Test|E|Lead 24968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024969|124969|989898|1|9999024969|MR|Test|E|Lead 24969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024970|124970|989898|1|9999024970|MR|Test|E|Lead 24970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024971|124971|989898|1|9999024971|MR|Test|E|Lead 24971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024972|124972|989898|1|9999024972|MR|Test|E|Lead 24972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024973|124973|989898|1|9999024973|MR|Test|E|Lead 24973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024974|124974|989898|1|9999024974|MR|Test|E|Lead 24974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024975|124975|989898|1|9999024975|MR|Test|E|Lead 24975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024976|124976|989898|1|9999024976|MR|Test|E|Lead 24976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024977|124977|989898|1|9999024977|MR|Test|E|Lead 24977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024978|124978|989898|1|9999024978|MR|Test|E|Lead 24978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024979|124979|989898|1|9999024979|MR|Test|E|Lead 24979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024980|124980|989898|1|9999024980|MR|Test|E|Lead 24980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024981|124981|989898|1|9999024981|MR|Test|E|Lead 24981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024982|124982|989898|1|9999024982|MR|Test|E|Lead 24982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024983|124983|989898|1|9999024983|MR|Test|E|Lead 24983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024984|124984|989898|1|9999024984|MR|Test|E|Lead 24984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024985|124985|989898|1|9999024985|MR|Test|E|Lead 24985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024986|124986|989898|1|9999024986|MR|Test|E|Lead 24986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024987|124987|989898|1|9999024987|MR|Test|E|Lead 24987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024988|124988|989898|1|9999024988|MR|Test|E|Lead 24988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024989|124989|989898|1|9999024989|MR|Test|E|Lead 24989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024990|124990|989898|1|9999024990|MR|Test|E|Lead 24990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024991|124991|989898|1|9999024991|MR|Test|E|Lead 24991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024992|124992|989898|1|9999024992|MR|Test|E|Lead 24992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024993|124993|989898|1|9999024993|MR|Test|E|Lead 24993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024994|124994|989898|1|9999024994|MR|Test|E|Lead 24994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024995|124995|989898|1|9999024995|MR|Test|E|Lead 24995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024996|124996|989898|1|9999024996|MR|Test|E|Lead 24996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024997|124997|989898|1|9999024997|MR|Test|E|Lead 24997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024998|124998|989898|1|9999024998|MR|Test|E|Lead 24998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1024999|124999|989898|1|9999024999|MR|Test|E|Lead 24999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025000|125000|989898|1|9999025000|MR|Test|E|Lead 25000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025001|125001|989898|1|9999025001|MR|Test|E|Lead 25001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025002|125002|989898|1|9999025002|MR|Test|E|Lead 25002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025003|125003|989898|1|9999025003|MR|Test|E|Lead 25003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025004|125004|989898|1|9999025004|MR|Test|E|Lead 25004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025005|125005|989898|1|9999025005|MR|Test|E|Lead 25005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025006|125006|989898|1|9999025006|MR|Test|E|Lead 25006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025007|125007|989898|1|9999025007|MR|Test|E|Lead 25007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025008|125008|989898|1|9999025008|MR|Test|E|Lead 25008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025009|125009|989898|1|9999025009|MR|Test|E|Lead 25009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025010|125010|989898|1|9999025010|MR|Test|E|Lead 25010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025011|125011|989898|1|9999025011|MR|Test|E|Lead 25011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025012|125012|989898|1|9999025012|MR|Test|E|Lead 25012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025013|125013|989898|1|9999025013|MR|Test|E|Lead 25013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025014|125014|989898|1|9999025014|MR|Test|E|Lead 25014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025015|125015|989898|1|9999025015|MR|Test|E|Lead 25015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025016|125016|989898|1|9999025016|MR|Test|E|Lead 25016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025017|125017|989898|1|9999025017|MR|Test|E|Lead 25017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025018|125018|989898|1|9999025018|MR|Test|E|Lead 25018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025019|125019|989898|1|9999025019|MR|Test|E|Lead 25019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025020|125020|989898|1|9999025020|MR|Test|E|Lead 25020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025021|125021|989898|1|9999025021|MR|Test|E|Lead 25021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025022|125022|989898|1|9999025022|MR|Test|E|Lead 25022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025023|125023|989898|1|9999025023|MR|Test|E|Lead 25023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025024|125024|989898|1|9999025024|MR|Test|E|Lead 25024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025025|125025|989898|1|9999025025|MR|Test|E|Lead 25025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025026|125026|989898|1|9999025026|MR|Test|E|Lead 25026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025027|125027|989898|1|9999025027|MR|Test|E|Lead 25027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025028|125028|989898|1|9999025028|MR|Test|E|Lead 25028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025029|125029|989898|1|9999025029|MR|Test|E|Lead 25029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025030|125030|989898|1|9999025030|MR|Test|E|Lead 25030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025031|125031|989898|1|9999025031|MR|Test|E|Lead 25031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025032|125032|989898|1|9999025032|MR|Test|E|Lead 25032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025033|125033|989898|1|9999025033|MR|Test|E|Lead 25033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025034|125034|989898|1|9999025034|MR|Test|E|Lead 25034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025035|125035|989898|1|9999025035|MR|Test|E|Lead 25035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025036|125036|989898|1|9999025036|MR|Test|E|Lead 25036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025037|125037|989898|1|9999025037|MR|Test|E|Lead 25037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025038|125038|989898|1|9999025038|MR|Test|E|Lead 25038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025039|125039|989898|1|9999025039|MR|Test|E|Lead 25039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025040|125040|989898|1|9999025040|MR|Test|E|Lead 25040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025041|125041|989898|1|9999025041|MR|Test|E|Lead 25041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025042|125042|989898|1|9999025042|MR|Test|E|Lead 25042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025043|125043|989898|1|9999025043|MR|Test|E|Lead 25043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025044|125044|989898|1|9999025044|MR|Test|E|Lead 25044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025045|125045|989898|1|9999025045|MR|Test|E|Lead 25045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025046|125046|989898|1|9999025046|MR|Test|E|Lead 25046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025047|125047|989898|1|9999025047|MR|Test|E|Lead 25047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025048|125048|989898|1|9999025048|MR|Test|E|Lead 25048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025049|125049|989898|1|9999025049|MR|Test|E|Lead 25049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025050|125050|989898|1|9999025050|MR|Test|E|Lead 25050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025051|125051|989898|1|9999025051|MR|Test|E|Lead 25051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025052|125052|989898|1|9999025052|MR|Test|E|Lead 25052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025053|125053|989898|1|9999025053|MR|Test|E|Lead 25053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025054|125054|989898|1|9999025054|MR|Test|E|Lead 25054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025055|125055|989898|1|9999025055|MR|Test|E|Lead 25055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025056|125056|989898|1|9999025056|MR|Test|E|Lead 25056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025057|125057|989898|1|9999025057|MR|Test|E|Lead 25057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025058|125058|989898|1|9999025058|MR|Test|E|Lead 25058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025059|125059|989898|1|9999025059|MR|Test|E|Lead 25059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025060|125060|989898|1|9999025060|MR|Test|E|Lead 25060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025061|125061|989898|1|9999025061|MR|Test|E|Lead 25061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025062|125062|989898|1|9999025062|MR|Test|E|Lead 25062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025063|125063|989898|1|9999025063|MR|Test|E|Lead 25063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025064|125064|989898|1|9999025064|MR|Test|E|Lead 25064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025065|125065|989898|1|9999025065|MR|Test|E|Lead 25065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025066|125066|989898|1|9999025066|MR|Test|E|Lead 25066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025067|125067|989898|1|9999025067|MR|Test|E|Lead 25067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025068|125068|989898|1|9999025068|MR|Test|E|Lead 25068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025069|125069|989898|1|9999025069|MR|Test|E|Lead 25069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025070|125070|989898|1|9999025070|MR|Test|E|Lead 25070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025071|125071|989898|1|9999025071|MR|Test|E|Lead 25071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025072|125072|989898|1|9999025072|MR|Test|E|Lead 25072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025073|125073|989898|1|9999025073|MR|Test|E|Lead 25073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025074|125074|989898|1|9999025074|MR|Test|E|Lead 25074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025075|125075|989898|1|9999025075|MR|Test|E|Lead 25075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025076|125076|989898|1|9999025076|MR|Test|E|Lead 25076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025077|125077|989898|1|9999025077|MR|Test|E|Lead 25077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025078|125078|989898|1|9999025078|MR|Test|E|Lead 25078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025079|125079|989898|1|9999025079|MR|Test|E|Lead 25079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025080|125080|989898|1|9999025080|MR|Test|E|Lead 25080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025081|125081|989898|1|9999025081|MR|Test|E|Lead 25081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025082|125082|989898|1|9999025082|MR|Test|E|Lead 25082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025083|125083|989898|1|9999025083|MR|Test|E|Lead 25083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025084|125084|989898|1|9999025084|MR|Test|E|Lead 25084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025085|125085|989898|1|9999025085|MR|Test|E|Lead 25085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025086|125086|989898|1|9999025086|MR|Test|E|Lead 25086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025087|125087|989898|1|9999025087|MR|Test|E|Lead 25087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025088|125088|989898|1|9999025088|MR|Test|E|Lead 25088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025089|125089|989898|1|9999025089|MR|Test|E|Lead 25089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025090|125090|989898|1|9999025090|MR|Test|E|Lead 25090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025091|125091|989898|1|9999025091|MR|Test|E|Lead 25091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025092|125092|989898|1|9999025092|MR|Test|E|Lead 25092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025093|125093|989898|1|9999025093|MR|Test|E|Lead 25093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025094|125094|989898|1|9999025094|MR|Test|E|Lead 25094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025095|125095|989898|1|9999025095|MR|Test|E|Lead 25095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025096|125096|989898|1|9999025096|MR|Test|E|Lead 25096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025097|125097|989898|1|9999025097|MR|Test|E|Lead 25097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025098|125098|989898|1|9999025098|MR|Test|E|Lead 25098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025099|125099|989898|1|9999025099|MR|Test|E|Lead 25099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025100|125100|989898|1|9999025100|MR|Test|E|Lead 25100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025101|125101|989898|1|9999025101|MR|Test|E|Lead 25101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025102|125102|989898|1|9999025102|MR|Test|E|Lead 25102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025103|125103|989898|1|9999025103|MR|Test|E|Lead 25103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025104|125104|989898|1|9999025104|MR|Test|E|Lead 25104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025105|125105|989898|1|9999025105|MR|Test|E|Lead 25105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025106|125106|989898|1|9999025106|MR|Test|E|Lead 25106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025107|125107|989898|1|9999025107|MR|Test|E|Lead 25107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025108|125108|989898|1|9999025108|MR|Test|E|Lead 25108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025109|125109|989898|1|9999025109|MR|Test|E|Lead 25109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025110|125110|989898|1|9999025110|MR|Test|E|Lead 25110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025111|125111|989898|1|9999025111|MR|Test|E|Lead 25111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025112|125112|989898|1|9999025112|MR|Test|E|Lead 25112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025113|125113|989898|1|9999025113|MR|Test|E|Lead 25113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025114|125114|989898|1|9999025114|MR|Test|E|Lead 25114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025115|125115|989898|1|9999025115|MR|Test|E|Lead 25115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025116|125116|989898|1|9999025116|MR|Test|E|Lead 25116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025117|125117|989898|1|9999025117|MR|Test|E|Lead 25117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025118|125118|989898|1|9999025118|MR|Test|E|Lead 25118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025119|125119|989898|1|9999025119|MR|Test|E|Lead 25119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025120|125120|989898|1|9999025120|MR|Test|E|Lead 25120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025121|125121|989898|1|9999025121|MR|Test|E|Lead 25121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025122|125122|989898|1|9999025122|MR|Test|E|Lead 25122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025123|125123|989898|1|9999025123|MR|Test|E|Lead 25123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025124|125124|989898|1|9999025124|MR|Test|E|Lead 25124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025125|125125|989898|1|9999025125|MR|Test|E|Lead 25125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025126|125126|989898|1|9999025126|MR|Test|E|Lead 25126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025127|125127|989898|1|9999025127|MR|Test|E|Lead 25127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025128|125128|989898|1|9999025128|MR|Test|E|Lead 25128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025129|125129|989898|1|9999025129|MR|Test|E|Lead 25129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025130|125130|989898|1|9999025130|MR|Test|E|Lead 25130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025131|125131|989898|1|9999025131|MR|Test|E|Lead 25131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025132|125132|989898|1|9999025132|MR|Test|E|Lead 25132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025133|125133|989898|1|9999025133|MR|Test|E|Lead 25133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025134|125134|989898|1|9999025134|MR|Test|E|Lead 25134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025135|125135|989898|1|9999025135|MR|Test|E|Lead 25135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025136|125136|989898|1|9999025136|MR|Test|E|Lead 25136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025137|125137|989898|1|9999025137|MR|Test|E|Lead 25137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025138|125138|989898|1|9999025138|MR|Test|E|Lead 25138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025139|125139|989898|1|9999025139|MR|Test|E|Lead 25139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025140|125140|989898|1|9999025140|MR|Test|E|Lead 25140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025141|125141|989898|1|9999025141|MR|Test|E|Lead 25141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025142|125142|989898|1|9999025142|MR|Test|E|Lead 25142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025143|125143|989898|1|9999025143|MR|Test|E|Lead 25143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025144|125144|989898|1|9999025144|MR|Test|E|Lead 25144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025145|125145|989898|1|9999025145|MR|Test|E|Lead 25145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025146|125146|989898|1|9999025146|MR|Test|E|Lead 25146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025147|125147|989898|1|9999025147|MR|Test|E|Lead 25147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025148|125148|989898|1|9999025148|MR|Test|E|Lead 25148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025149|125149|989898|1|9999025149|MR|Test|E|Lead 25149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025150|125150|989898|1|9999025150|MR|Test|E|Lead 25150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025151|125151|989898|1|9999025151|MR|Test|E|Lead 25151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025152|125152|989898|1|9999025152|MR|Test|E|Lead 25152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025153|125153|989898|1|9999025153|MR|Test|E|Lead 25153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025154|125154|989898|1|9999025154|MR|Test|E|Lead 25154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025155|125155|989898|1|9999025155|MR|Test|E|Lead 25155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025156|125156|989898|1|9999025156|MR|Test|E|Lead 25156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025157|125157|989898|1|9999025157|MR|Test|E|Lead 25157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025158|125158|989898|1|9999025158|MR|Test|E|Lead 25158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025159|125159|989898|1|9999025159|MR|Test|E|Lead 25159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025160|125160|989898|1|9999025160|MR|Test|E|Lead 25160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025161|125161|989898|1|9999025161|MR|Test|E|Lead 25161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025162|125162|989898|1|9999025162|MR|Test|E|Lead 25162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025163|125163|989898|1|9999025163|MR|Test|E|Lead 25163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025164|125164|989898|1|9999025164|MR|Test|E|Lead 25164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025165|125165|989898|1|9999025165|MR|Test|E|Lead 25165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025166|125166|989898|1|9999025166|MR|Test|E|Lead 25166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025167|125167|989898|1|9999025167|MR|Test|E|Lead 25167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025168|125168|989898|1|9999025168|MR|Test|E|Lead 25168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025169|125169|989898|1|9999025169|MR|Test|E|Lead 25169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025170|125170|989898|1|9999025170|MR|Test|E|Lead 25170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025171|125171|989898|1|9999025171|MR|Test|E|Lead 25171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025172|125172|989898|1|9999025172|MR|Test|E|Lead 25172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025173|125173|989898|1|9999025173|MR|Test|E|Lead 25173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025174|125174|989898|1|9999025174|MR|Test|E|Lead 25174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025175|125175|989898|1|9999025175|MR|Test|E|Lead 25175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025176|125176|989898|1|9999025176|MR|Test|E|Lead 25176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025177|125177|989898|1|9999025177|MR|Test|E|Lead 25177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025178|125178|989898|1|9999025178|MR|Test|E|Lead 25178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025179|125179|989898|1|9999025179|MR|Test|E|Lead 25179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025180|125180|989898|1|9999025180|MR|Test|E|Lead 25180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025181|125181|989898|1|9999025181|MR|Test|E|Lead 25181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025182|125182|989898|1|9999025182|MR|Test|E|Lead 25182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025183|125183|989898|1|9999025183|MR|Test|E|Lead 25183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025184|125184|989898|1|9999025184|MR|Test|E|Lead 25184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025185|125185|989898|1|9999025185|MR|Test|E|Lead 25185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025186|125186|989898|1|9999025186|MR|Test|E|Lead 25186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025187|125187|989898|1|9999025187|MR|Test|E|Lead 25187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025188|125188|989898|1|9999025188|MR|Test|E|Lead 25188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025189|125189|989898|1|9999025189|MR|Test|E|Lead 25189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025190|125190|989898|1|9999025190|MR|Test|E|Lead 25190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025191|125191|989898|1|9999025191|MR|Test|E|Lead 25191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025192|125192|989898|1|9999025192|MR|Test|E|Lead 25192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025193|125193|989898|1|9999025193|MR|Test|E|Lead 25193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025194|125194|989898|1|9999025194|MR|Test|E|Lead 25194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025195|125195|989898|1|9999025195|MR|Test|E|Lead 25195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025196|125196|989898|1|9999025196|MR|Test|E|Lead 25196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025197|125197|989898|1|9999025197|MR|Test|E|Lead 25197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025198|125198|989898|1|9999025198|MR|Test|E|Lead 25198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025199|125199|989898|1|9999025199|MR|Test|E|Lead 25199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025200|125200|989898|1|9999025200|MR|Test|E|Lead 25200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025201|125201|989898|1|9999025201|MR|Test|E|Lead 25201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025202|125202|989898|1|9999025202|MR|Test|E|Lead 25202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025203|125203|989898|1|9999025203|MR|Test|E|Lead 25203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025204|125204|989898|1|9999025204|MR|Test|E|Lead 25204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025205|125205|989898|1|9999025205|MR|Test|E|Lead 25205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025206|125206|989898|1|9999025206|MR|Test|E|Lead 25206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025207|125207|989898|1|9999025207|MR|Test|E|Lead 25207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025208|125208|989898|1|9999025208|MR|Test|E|Lead 25208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025209|125209|989898|1|9999025209|MR|Test|E|Lead 25209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025210|125210|989898|1|9999025210|MR|Test|E|Lead 25210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025211|125211|989898|1|9999025211|MR|Test|E|Lead 25211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025212|125212|989898|1|9999025212|MR|Test|E|Lead 25212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025213|125213|989898|1|9999025213|MR|Test|E|Lead 25213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025214|125214|989898|1|9999025214|MR|Test|E|Lead 25214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025215|125215|989898|1|9999025215|MR|Test|E|Lead 25215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025216|125216|989898|1|9999025216|MR|Test|E|Lead 25216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025217|125217|989898|1|9999025217|MR|Test|E|Lead 25217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025218|125218|989898|1|9999025218|MR|Test|E|Lead 25218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025219|125219|989898|1|9999025219|MR|Test|E|Lead 25219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025220|125220|989898|1|9999025220|MR|Test|E|Lead 25220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025221|125221|989898|1|9999025221|MR|Test|E|Lead 25221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025222|125222|989898|1|9999025222|MR|Test|E|Lead 25222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025223|125223|989898|1|9999025223|MR|Test|E|Lead 25223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025224|125224|989898|1|9999025224|MR|Test|E|Lead 25224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025225|125225|989898|1|9999025225|MR|Test|E|Lead 25225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025226|125226|989898|1|9999025226|MR|Test|E|Lead 25226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025227|125227|989898|1|9999025227|MR|Test|E|Lead 25227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025228|125228|989898|1|9999025228|MR|Test|E|Lead 25228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025229|125229|989898|1|9999025229|MR|Test|E|Lead 25229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025230|125230|989898|1|9999025230|MR|Test|E|Lead 25230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025231|125231|989898|1|9999025231|MR|Test|E|Lead 25231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025232|125232|989898|1|9999025232|MR|Test|E|Lead 25232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025233|125233|989898|1|9999025233|MR|Test|E|Lead 25233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025234|125234|989898|1|9999025234|MR|Test|E|Lead 25234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025235|125235|989898|1|9999025235|MR|Test|E|Lead 25235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025236|125236|989898|1|9999025236|MR|Test|E|Lead 25236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025237|125237|989898|1|9999025237|MR|Test|E|Lead 25237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025238|125238|989898|1|9999025238|MR|Test|E|Lead 25238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025239|125239|989898|1|9999025239|MR|Test|E|Lead 25239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025240|125240|989898|1|9999025240|MR|Test|E|Lead 25240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025241|125241|989898|1|9999025241|MR|Test|E|Lead 25241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025242|125242|989898|1|9999025242|MR|Test|E|Lead 25242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025243|125243|989898|1|9999025243|MR|Test|E|Lead 25243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025244|125244|989898|1|9999025244|MR|Test|E|Lead 25244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025245|125245|989898|1|9999025245|MR|Test|E|Lead 25245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025246|125246|989898|1|9999025246|MR|Test|E|Lead 25246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025247|125247|989898|1|9999025247|MR|Test|E|Lead 25247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025248|125248|989898|1|9999025248|MR|Test|E|Lead 25248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025249|125249|989898|1|9999025249|MR|Test|E|Lead 25249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025250|125250|989898|1|9999025250|MR|Test|E|Lead 25250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025251|125251|989898|1|9999025251|MR|Test|E|Lead 25251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025252|125252|989898|1|9999025252|MR|Test|E|Lead 25252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025253|125253|989898|1|9999025253|MR|Test|E|Lead 25253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025254|125254|989898|1|9999025254|MR|Test|E|Lead 25254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025255|125255|989898|1|9999025255|MR|Test|E|Lead 25255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025256|125256|989898|1|9999025256|MR|Test|E|Lead 25256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025257|125257|989898|1|9999025257|MR|Test|E|Lead 25257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025258|125258|989898|1|9999025258|MR|Test|E|Lead 25258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025259|125259|989898|1|9999025259|MR|Test|E|Lead 25259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025260|125260|989898|1|9999025260|MR|Test|E|Lead 25260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025261|125261|989898|1|9999025261|MR|Test|E|Lead 25261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025262|125262|989898|1|9999025262|MR|Test|E|Lead 25262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025263|125263|989898|1|9999025263|MR|Test|E|Lead 25263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025264|125264|989898|1|9999025264|MR|Test|E|Lead 25264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025265|125265|989898|1|9999025265|MR|Test|E|Lead 25265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025266|125266|989898|1|9999025266|MR|Test|E|Lead 25266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025267|125267|989898|1|9999025267|MR|Test|E|Lead 25267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025268|125268|989898|1|9999025268|MR|Test|E|Lead 25268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025269|125269|989898|1|9999025269|MR|Test|E|Lead 25269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025270|125270|989898|1|9999025270|MR|Test|E|Lead 25270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025271|125271|989898|1|9999025271|MR|Test|E|Lead 25271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025272|125272|989898|1|9999025272|MR|Test|E|Lead 25272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025273|125273|989898|1|9999025273|MR|Test|E|Lead 25273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025274|125274|989898|1|9999025274|MR|Test|E|Lead 25274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025275|125275|989898|1|9999025275|MR|Test|E|Lead 25275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025276|125276|989898|1|9999025276|MR|Test|E|Lead 25276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025277|125277|989898|1|9999025277|MR|Test|E|Lead 25277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025278|125278|989898|1|9999025278|MR|Test|E|Lead 25278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025279|125279|989898|1|9999025279|MR|Test|E|Lead 25279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025280|125280|989898|1|9999025280|MR|Test|E|Lead 25280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025281|125281|989898|1|9999025281|MR|Test|E|Lead 25281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025282|125282|989898|1|9999025282|MR|Test|E|Lead 25282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025283|125283|989898|1|9999025283|MR|Test|E|Lead 25283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025284|125284|989898|1|9999025284|MR|Test|E|Lead 25284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025285|125285|989898|1|9999025285|MR|Test|E|Lead 25285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025286|125286|989898|1|9999025286|MR|Test|E|Lead 25286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025287|125287|989898|1|9999025287|MR|Test|E|Lead 25287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025288|125288|989898|1|9999025288|MR|Test|E|Lead 25288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025289|125289|989898|1|9999025289|MR|Test|E|Lead 25289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025290|125290|989898|1|9999025290|MR|Test|E|Lead 25290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025291|125291|989898|1|9999025291|MR|Test|E|Lead 25291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025292|125292|989898|1|9999025292|MR|Test|E|Lead 25292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025293|125293|989898|1|9999025293|MR|Test|E|Lead 25293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025294|125294|989898|1|9999025294|MR|Test|E|Lead 25294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025295|125295|989898|1|9999025295|MR|Test|E|Lead 25295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025296|125296|989898|1|9999025296|MR|Test|E|Lead 25296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025297|125297|989898|1|9999025297|MR|Test|E|Lead 25297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025298|125298|989898|1|9999025298|MR|Test|E|Lead 25298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025299|125299|989898|1|9999025299|MR|Test|E|Lead 25299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025300|125300|989898|1|9999025300|MR|Test|E|Lead 25300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025301|125301|989898|1|9999025301|MR|Test|E|Lead 25301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025302|125302|989898|1|9999025302|MR|Test|E|Lead 25302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025303|125303|989898|1|9999025303|MR|Test|E|Lead 25303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025304|125304|989898|1|9999025304|MR|Test|E|Lead 25304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025305|125305|989898|1|9999025305|MR|Test|E|Lead 25305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025306|125306|989898|1|9999025306|MR|Test|E|Lead 25306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025307|125307|989898|1|9999025307|MR|Test|E|Lead 25307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025308|125308|989898|1|9999025308|MR|Test|E|Lead 25308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025309|125309|989898|1|9999025309|MR|Test|E|Lead 25309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025310|125310|989898|1|9999025310|MR|Test|E|Lead 25310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025311|125311|989898|1|9999025311|MR|Test|E|Lead 25311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025312|125312|989898|1|9999025312|MR|Test|E|Lead 25312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025313|125313|989898|1|9999025313|MR|Test|E|Lead 25313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025314|125314|989898|1|9999025314|MR|Test|E|Lead 25314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025315|125315|989898|1|9999025315|MR|Test|E|Lead 25315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025316|125316|989898|1|9999025316|MR|Test|E|Lead 25316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025317|125317|989898|1|9999025317|MR|Test|E|Lead 25317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025318|125318|989898|1|9999025318|MR|Test|E|Lead 25318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025319|125319|989898|1|9999025319|MR|Test|E|Lead 25319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025320|125320|989898|1|9999025320|MR|Test|E|Lead 25320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025321|125321|989898|1|9999025321|MR|Test|E|Lead 25321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025322|125322|989898|1|9999025322|MR|Test|E|Lead 25322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025323|125323|989898|1|9999025323|MR|Test|E|Lead 25323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025324|125324|989898|1|9999025324|MR|Test|E|Lead 25324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025325|125325|989898|1|9999025325|MR|Test|E|Lead 25325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025326|125326|989898|1|9999025326|MR|Test|E|Lead 25326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025327|125327|989898|1|9999025327|MR|Test|E|Lead 25327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025328|125328|989898|1|9999025328|MR|Test|E|Lead 25328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025329|125329|989898|1|9999025329|MR|Test|E|Lead 25329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025330|125330|989898|1|9999025330|MR|Test|E|Lead 25330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025331|125331|989898|1|9999025331|MR|Test|E|Lead 25331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025332|125332|989898|1|9999025332|MR|Test|E|Lead 25332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025333|125333|989898|1|9999025333|MR|Test|E|Lead 25333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025334|125334|989898|1|9999025334|MR|Test|E|Lead 25334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025335|125335|989898|1|9999025335|MR|Test|E|Lead 25335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025336|125336|989898|1|9999025336|MR|Test|E|Lead 25336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025337|125337|989898|1|9999025337|MR|Test|E|Lead 25337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025338|125338|989898|1|9999025338|MR|Test|E|Lead 25338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025339|125339|989898|1|9999025339|MR|Test|E|Lead 25339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025340|125340|989898|1|9999025340|MR|Test|E|Lead 25340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025341|125341|989898|1|9999025341|MR|Test|E|Lead 25341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025342|125342|989898|1|9999025342|MR|Test|E|Lead 25342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025343|125343|989898|1|9999025343|MR|Test|E|Lead 25343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025344|125344|989898|1|9999025344|MR|Test|E|Lead 25344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025345|125345|989898|1|9999025345|MR|Test|E|Lead 25345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025346|125346|989898|1|9999025346|MR|Test|E|Lead 25346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025347|125347|989898|1|9999025347|MR|Test|E|Lead 25347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025348|125348|989898|1|9999025348|MR|Test|E|Lead 25348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025349|125349|989898|1|9999025349|MR|Test|E|Lead 25349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025350|125350|989898|1|9999025350|MR|Test|E|Lead 25350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025351|125351|989898|1|9999025351|MR|Test|E|Lead 25351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025352|125352|989898|1|9999025352|MR|Test|E|Lead 25352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025353|125353|989898|1|9999025353|MR|Test|E|Lead 25353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025354|125354|989898|1|9999025354|MR|Test|E|Lead 25354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025355|125355|989898|1|9999025355|MR|Test|E|Lead 25355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025356|125356|989898|1|9999025356|MR|Test|E|Lead 25356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025357|125357|989898|1|9999025357|MR|Test|E|Lead 25357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025358|125358|989898|1|9999025358|MR|Test|E|Lead 25358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025359|125359|989898|1|9999025359|MR|Test|E|Lead 25359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025360|125360|989898|1|9999025360|MR|Test|E|Lead 25360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025361|125361|989898|1|9999025361|MR|Test|E|Lead 25361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025362|125362|989898|1|9999025362|MR|Test|E|Lead 25362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025363|125363|989898|1|9999025363|MR|Test|E|Lead 25363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025364|125364|989898|1|9999025364|MR|Test|E|Lead 25364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025365|125365|989898|1|9999025365|MR|Test|E|Lead 25365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025366|125366|989898|1|9999025366|MR|Test|E|Lead 25366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025367|125367|989898|1|9999025367|MR|Test|E|Lead 25367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025368|125368|989898|1|9999025368|MR|Test|E|Lead 25368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025369|125369|989898|1|9999025369|MR|Test|E|Lead 25369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025370|125370|989898|1|9999025370|MR|Test|E|Lead 25370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025371|125371|989898|1|9999025371|MR|Test|E|Lead 25371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025372|125372|989898|1|9999025372|MR|Test|E|Lead 25372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025373|125373|989898|1|9999025373|MR|Test|E|Lead 25373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025374|125374|989898|1|9999025374|MR|Test|E|Lead 25374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025375|125375|989898|1|9999025375|MR|Test|E|Lead 25375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025376|125376|989898|1|9999025376|MR|Test|E|Lead 25376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025377|125377|989898|1|9999025377|MR|Test|E|Lead 25377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025378|125378|989898|1|9999025378|MR|Test|E|Lead 25378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025379|125379|989898|1|9999025379|MR|Test|E|Lead 25379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025380|125380|989898|1|9999025380|MR|Test|E|Lead 25380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025381|125381|989898|1|9999025381|MR|Test|E|Lead 25381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025382|125382|989898|1|9999025382|MR|Test|E|Lead 25382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025383|125383|989898|1|9999025383|MR|Test|E|Lead 25383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025384|125384|989898|1|9999025384|MR|Test|E|Lead 25384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025385|125385|989898|1|9999025385|MR|Test|E|Lead 25385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025386|125386|989898|1|9999025386|MR|Test|E|Lead 25386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025387|125387|989898|1|9999025387|MR|Test|E|Lead 25387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025388|125388|989898|1|9999025388|MR|Test|E|Lead 25388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025389|125389|989898|1|9999025389|MR|Test|E|Lead 25389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025390|125390|989898|1|9999025390|MR|Test|E|Lead 25390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025391|125391|989898|1|9999025391|MR|Test|E|Lead 25391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025392|125392|989898|1|9999025392|MR|Test|E|Lead 25392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025393|125393|989898|1|9999025393|MR|Test|E|Lead 25393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025394|125394|989898|1|9999025394|MR|Test|E|Lead 25394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025395|125395|989898|1|9999025395|MR|Test|E|Lead 25395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025396|125396|989898|1|9999025396|MR|Test|E|Lead 25396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025397|125397|989898|1|9999025397|MR|Test|E|Lead 25397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025398|125398|989898|1|9999025398|MR|Test|E|Lead 25398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025399|125399|989898|1|9999025399|MR|Test|E|Lead 25399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025400|125400|989898|1|9999025400|MR|Test|E|Lead 25400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025401|125401|989898|1|9999025401|MR|Test|E|Lead 25401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025402|125402|989898|1|9999025402|MR|Test|E|Lead 25402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025403|125403|989898|1|9999025403|MR|Test|E|Lead 25403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025404|125404|989898|1|9999025404|MR|Test|E|Lead 25404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025405|125405|989898|1|9999025405|MR|Test|E|Lead 25405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025406|125406|989898|1|9999025406|MR|Test|E|Lead 25406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025407|125407|989898|1|9999025407|MR|Test|E|Lead 25407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025408|125408|989898|1|9999025408|MR|Test|E|Lead 25408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025409|125409|989898|1|9999025409|MR|Test|E|Lead 25409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025410|125410|989898|1|9999025410|MR|Test|E|Lead 25410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025411|125411|989898|1|9999025411|MR|Test|E|Lead 25411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025412|125412|989898|1|9999025412|MR|Test|E|Lead 25412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025413|125413|989898|1|9999025413|MR|Test|E|Lead 25413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025414|125414|989898|1|9999025414|MR|Test|E|Lead 25414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025415|125415|989898|1|9999025415|MR|Test|E|Lead 25415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025416|125416|989898|1|9999025416|MR|Test|E|Lead 25416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025417|125417|989898|1|9999025417|MR|Test|E|Lead 25417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025418|125418|989898|1|9999025418|MR|Test|E|Lead 25418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025419|125419|989898|1|9999025419|MR|Test|E|Lead 25419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025420|125420|989898|1|9999025420|MR|Test|E|Lead 25420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025421|125421|989898|1|9999025421|MR|Test|E|Lead 25421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025422|125422|989898|1|9999025422|MR|Test|E|Lead 25422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025423|125423|989898|1|9999025423|MR|Test|E|Lead 25423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025424|125424|989898|1|9999025424|MR|Test|E|Lead 25424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025425|125425|989898|1|9999025425|MR|Test|E|Lead 25425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025426|125426|989898|1|9999025426|MR|Test|E|Lead 25426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025427|125427|989898|1|9999025427|MR|Test|E|Lead 25427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025428|125428|989898|1|9999025428|MR|Test|E|Lead 25428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025429|125429|989898|1|9999025429|MR|Test|E|Lead 25429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025430|125430|989898|1|9999025430|MR|Test|E|Lead 25430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025431|125431|989898|1|9999025431|MR|Test|E|Lead 25431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025432|125432|989898|1|9999025432|MR|Test|E|Lead 25432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025433|125433|989898|1|9999025433|MR|Test|E|Lead 25433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025434|125434|989898|1|9999025434|MR|Test|E|Lead 25434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025435|125435|989898|1|9999025435|MR|Test|E|Lead 25435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025436|125436|989898|1|9999025436|MR|Test|E|Lead 25436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025437|125437|989898|1|9999025437|MR|Test|E|Lead 25437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025438|125438|989898|1|9999025438|MR|Test|E|Lead 25438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025439|125439|989898|1|9999025439|MR|Test|E|Lead 25439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025440|125440|989898|1|9999025440|MR|Test|E|Lead 25440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025441|125441|989898|1|9999025441|MR|Test|E|Lead 25441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025442|125442|989898|1|9999025442|MR|Test|E|Lead 25442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025443|125443|989898|1|9999025443|MR|Test|E|Lead 25443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025444|125444|989898|1|9999025444|MR|Test|E|Lead 25444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025445|125445|989898|1|9999025445|MR|Test|E|Lead 25445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025446|125446|989898|1|9999025446|MR|Test|E|Lead 25446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025447|125447|989898|1|9999025447|MR|Test|E|Lead 25447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025448|125448|989898|1|9999025448|MR|Test|E|Lead 25448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025449|125449|989898|1|9999025449|MR|Test|E|Lead 25449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025450|125450|989898|1|9999025450|MR|Test|E|Lead 25450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025451|125451|989898|1|9999025451|MR|Test|E|Lead 25451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025452|125452|989898|1|9999025452|MR|Test|E|Lead 25452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025453|125453|989898|1|9999025453|MR|Test|E|Lead 25453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025454|125454|989898|1|9999025454|MR|Test|E|Lead 25454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025455|125455|989898|1|9999025455|MR|Test|E|Lead 25455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025456|125456|989898|1|9999025456|MR|Test|E|Lead 25456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025457|125457|989898|1|9999025457|MR|Test|E|Lead 25457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025458|125458|989898|1|9999025458|MR|Test|E|Lead 25458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025459|125459|989898|1|9999025459|MR|Test|E|Lead 25459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025460|125460|989898|1|9999025460|MR|Test|E|Lead 25460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025461|125461|989898|1|9999025461|MR|Test|E|Lead 25461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025462|125462|989898|1|9999025462|MR|Test|E|Lead 25462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025463|125463|989898|1|9999025463|MR|Test|E|Lead 25463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025464|125464|989898|1|9999025464|MR|Test|E|Lead 25464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025465|125465|989898|1|9999025465|MR|Test|E|Lead 25465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025466|125466|989898|1|9999025466|MR|Test|E|Lead 25466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025467|125467|989898|1|9999025467|MR|Test|E|Lead 25467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025468|125468|989898|1|9999025468|MR|Test|E|Lead 25468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025469|125469|989898|1|9999025469|MR|Test|E|Lead 25469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025470|125470|989898|1|9999025470|MR|Test|E|Lead 25470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025471|125471|989898|1|9999025471|MR|Test|E|Lead 25471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025472|125472|989898|1|9999025472|MR|Test|E|Lead 25472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025473|125473|989898|1|9999025473|MR|Test|E|Lead 25473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025474|125474|989898|1|9999025474|MR|Test|E|Lead 25474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025475|125475|989898|1|9999025475|MR|Test|E|Lead 25475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025476|125476|989898|1|9999025476|MR|Test|E|Lead 25476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025477|125477|989898|1|9999025477|MR|Test|E|Lead 25477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025478|125478|989898|1|9999025478|MR|Test|E|Lead 25478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025479|125479|989898|1|9999025479|MR|Test|E|Lead 25479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025480|125480|989898|1|9999025480|MR|Test|E|Lead 25480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025481|125481|989898|1|9999025481|MR|Test|E|Lead 25481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025482|125482|989898|1|9999025482|MR|Test|E|Lead 25482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025483|125483|989898|1|9999025483|MR|Test|E|Lead 25483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025484|125484|989898|1|9999025484|MR|Test|E|Lead 25484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025485|125485|989898|1|9999025485|MR|Test|E|Lead 25485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025486|125486|989898|1|9999025486|MR|Test|E|Lead 25486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025487|125487|989898|1|9999025487|MR|Test|E|Lead 25487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025488|125488|989898|1|9999025488|MR|Test|E|Lead 25488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025489|125489|989898|1|9999025489|MR|Test|E|Lead 25489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025490|125490|989898|1|9999025490|MR|Test|E|Lead 25490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025491|125491|989898|1|9999025491|MR|Test|E|Lead 25491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025492|125492|989898|1|9999025492|MR|Test|E|Lead 25492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025493|125493|989898|1|9999025493|MR|Test|E|Lead 25493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025494|125494|989898|1|9999025494|MR|Test|E|Lead 25494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025495|125495|989898|1|9999025495|MR|Test|E|Lead 25495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025496|125496|989898|1|9999025496|MR|Test|E|Lead 25496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025497|125497|989898|1|9999025497|MR|Test|E|Lead 25497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025498|125498|989898|1|9999025498|MR|Test|E|Lead 25498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025499|125499|989898|1|9999025499|MR|Test|E|Lead 25499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025500|125500|989898|1|9999025500|MR|Test|E|Lead 25500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025501|125501|989898|1|9999025501|MR|Test|E|Lead 25501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025502|125502|989898|1|9999025502|MR|Test|E|Lead 25502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025503|125503|989898|1|9999025503|MR|Test|E|Lead 25503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025504|125504|989898|1|9999025504|MR|Test|E|Lead 25504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025505|125505|989898|1|9999025505|MR|Test|E|Lead 25505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025506|125506|989898|1|9999025506|MR|Test|E|Lead 25506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025507|125507|989898|1|9999025507|MR|Test|E|Lead 25507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025508|125508|989898|1|9999025508|MR|Test|E|Lead 25508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025509|125509|989898|1|9999025509|MR|Test|E|Lead 25509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025510|125510|989898|1|9999025510|MR|Test|E|Lead 25510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025511|125511|989898|1|9999025511|MR|Test|E|Lead 25511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025512|125512|989898|1|9999025512|MR|Test|E|Lead 25512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025513|125513|989898|1|9999025513|MR|Test|E|Lead 25513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025514|125514|989898|1|9999025514|MR|Test|E|Lead 25514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025515|125515|989898|1|9999025515|MR|Test|E|Lead 25515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025516|125516|989898|1|9999025516|MR|Test|E|Lead 25516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025517|125517|989898|1|9999025517|MR|Test|E|Lead 25517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025518|125518|989898|1|9999025518|MR|Test|E|Lead 25518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025519|125519|989898|1|9999025519|MR|Test|E|Lead 25519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025520|125520|989898|1|9999025520|MR|Test|E|Lead 25520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025521|125521|989898|1|9999025521|MR|Test|E|Lead 25521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025522|125522|989898|1|9999025522|MR|Test|E|Lead 25522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025523|125523|989898|1|9999025523|MR|Test|E|Lead 25523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025524|125524|989898|1|9999025524|MR|Test|E|Lead 25524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025525|125525|989898|1|9999025525|MR|Test|E|Lead 25525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025526|125526|989898|1|9999025526|MR|Test|E|Lead 25526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025527|125527|989898|1|9999025527|MR|Test|E|Lead 25527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025528|125528|989898|1|9999025528|MR|Test|E|Lead 25528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025529|125529|989898|1|9999025529|MR|Test|E|Lead 25529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025530|125530|989898|1|9999025530|MR|Test|E|Lead 25530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025531|125531|989898|1|9999025531|MR|Test|E|Lead 25531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025532|125532|989898|1|9999025532|MR|Test|E|Lead 25532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025533|125533|989898|1|9999025533|MR|Test|E|Lead 25533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025534|125534|989898|1|9999025534|MR|Test|E|Lead 25534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025535|125535|989898|1|9999025535|MR|Test|E|Lead 25535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025536|125536|989898|1|9999025536|MR|Test|E|Lead 25536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025537|125537|989898|1|9999025537|MR|Test|E|Lead 25537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025538|125538|989898|1|9999025538|MR|Test|E|Lead 25538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025539|125539|989898|1|9999025539|MR|Test|E|Lead 25539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025540|125540|989898|1|9999025540|MR|Test|E|Lead 25540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025541|125541|989898|1|9999025541|MR|Test|E|Lead 25541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025542|125542|989898|1|9999025542|MR|Test|E|Lead 25542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025543|125543|989898|1|9999025543|MR|Test|E|Lead 25543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025544|125544|989898|1|9999025544|MR|Test|E|Lead 25544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025545|125545|989898|1|9999025545|MR|Test|E|Lead 25545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025546|125546|989898|1|9999025546|MR|Test|E|Lead 25546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025547|125547|989898|1|9999025547|MR|Test|E|Lead 25547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025548|125548|989898|1|9999025548|MR|Test|E|Lead 25548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025549|125549|989898|1|9999025549|MR|Test|E|Lead 25549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025550|125550|989898|1|9999025550|MR|Test|E|Lead 25550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025551|125551|989898|1|9999025551|MR|Test|E|Lead 25551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025552|125552|989898|1|9999025552|MR|Test|E|Lead 25552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025553|125553|989898|1|9999025553|MR|Test|E|Lead 25553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025554|125554|989898|1|9999025554|MR|Test|E|Lead 25554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025555|125555|989898|1|9999025555|MR|Test|E|Lead 25555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025556|125556|989898|1|9999025556|MR|Test|E|Lead 25556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025557|125557|989898|1|9999025557|MR|Test|E|Lead 25557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025558|125558|989898|1|9999025558|MR|Test|E|Lead 25558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025559|125559|989898|1|9999025559|MR|Test|E|Lead 25559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025560|125560|989898|1|9999025560|MR|Test|E|Lead 25560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025561|125561|989898|1|9999025561|MR|Test|E|Lead 25561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025562|125562|989898|1|9999025562|MR|Test|E|Lead 25562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025563|125563|989898|1|9999025563|MR|Test|E|Lead 25563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025564|125564|989898|1|9999025564|MR|Test|E|Lead 25564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025565|125565|989898|1|9999025565|MR|Test|E|Lead 25565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025566|125566|989898|1|9999025566|MR|Test|E|Lead 25566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025567|125567|989898|1|9999025567|MR|Test|E|Lead 25567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025568|125568|989898|1|9999025568|MR|Test|E|Lead 25568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025569|125569|989898|1|9999025569|MR|Test|E|Lead 25569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025570|125570|989898|1|9999025570|MR|Test|E|Lead 25570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025571|125571|989898|1|9999025571|MR|Test|E|Lead 25571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025572|125572|989898|1|9999025572|MR|Test|E|Lead 25572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025573|125573|989898|1|9999025573|MR|Test|E|Lead 25573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025574|125574|989898|1|9999025574|MR|Test|E|Lead 25574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025575|125575|989898|1|9999025575|MR|Test|E|Lead 25575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025576|125576|989898|1|9999025576|MR|Test|E|Lead 25576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025577|125577|989898|1|9999025577|MR|Test|E|Lead 25577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025578|125578|989898|1|9999025578|MR|Test|E|Lead 25578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025579|125579|989898|1|9999025579|MR|Test|E|Lead 25579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025580|125580|989898|1|9999025580|MR|Test|E|Lead 25580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025581|125581|989898|1|9999025581|MR|Test|E|Lead 25581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025582|125582|989898|1|9999025582|MR|Test|E|Lead 25582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025583|125583|989898|1|9999025583|MR|Test|E|Lead 25583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025584|125584|989898|1|9999025584|MR|Test|E|Lead 25584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025585|125585|989898|1|9999025585|MR|Test|E|Lead 25585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025586|125586|989898|1|9999025586|MR|Test|E|Lead 25586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025587|125587|989898|1|9999025587|MR|Test|E|Lead 25587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025588|125588|989898|1|9999025588|MR|Test|E|Lead 25588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025589|125589|989898|1|9999025589|MR|Test|E|Lead 25589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025590|125590|989898|1|9999025590|MR|Test|E|Lead 25590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025591|125591|989898|1|9999025591|MR|Test|E|Lead 25591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025592|125592|989898|1|9999025592|MR|Test|E|Lead 25592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025593|125593|989898|1|9999025593|MR|Test|E|Lead 25593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025594|125594|989898|1|9999025594|MR|Test|E|Lead 25594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025595|125595|989898|1|9999025595|MR|Test|E|Lead 25595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025596|125596|989898|1|9999025596|MR|Test|E|Lead 25596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025597|125597|989898|1|9999025597|MR|Test|E|Lead 25597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025598|125598|989898|1|9999025598|MR|Test|E|Lead 25598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025599|125599|989898|1|9999025599|MR|Test|E|Lead 25599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025600|125600|989898|1|9999025600|MR|Test|E|Lead 25600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025601|125601|989898|1|9999025601|MR|Test|E|Lead 25601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025602|125602|989898|1|9999025602|MR|Test|E|Lead 25602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025603|125603|989898|1|9999025603|MR|Test|E|Lead 25603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025604|125604|989898|1|9999025604|MR|Test|E|Lead 25604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025605|125605|989898|1|9999025605|MR|Test|E|Lead 25605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025606|125606|989898|1|9999025606|MR|Test|E|Lead 25606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025607|125607|989898|1|9999025607|MR|Test|E|Lead 25607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025608|125608|989898|1|9999025608|MR|Test|E|Lead 25608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025609|125609|989898|1|9999025609|MR|Test|E|Lead 25609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025610|125610|989898|1|9999025610|MR|Test|E|Lead 25610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025611|125611|989898|1|9999025611|MR|Test|E|Lead 25611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025612|125612|989898|1|9999025612|MR|Test|E|Lead 25612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025613|125613|989898|1|9999025613|MR|Test|E|Lead 25613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025614|125614|989898|1|9999025614|MR|Test|E|Lead 25614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025615|125615|989898|1|9999025615|MR|Test|E|Lead 25615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025616|125616|989898|1|9999025616|MR|Test|E|Lead 25616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025617|125617|989898|1|9999025617|MR|Test|E|Lead 25617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025618|125618|989898|1|9999025618|MR|Test|E|Lead 25618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025619|125619|989898|1|9999025619|MR|Test|E|Lead 25619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025620|125620|989898|1|9999025620|MR|Test|E|Lead 25620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025621|125621|989898|1|9999025621|MR|Test|E|Lead 25621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025622|125622|989898|1|9999025622|MR|Test|E|Lead 25622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025623|125623|989898|1|9999025623|MR|Test|E|Lead 25623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025624|125624|989898|1|9999025624|MR|Test|E|Lead 25624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025625|125625|989898|1|9999025625|MR|Test|E|Lead 25625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025626|125626|989898|1|9999025626|MR|Test|E|Lead 25626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025627|125627|989898|1|9999025627|MR|Test|E|Lead 25627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025628|125628|989898|1|9999025628|MR|Test|E|Lead 25628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025629|125629|989898|1|9999025629|MR|Test|E|Lead 25629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025630|125630|989898|1|9999025630|MR|Test|E|Lead 25630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025631|125631|989898|1|9999025631|MR|Test|E|Lead 25631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025632|125632|989898|1|9999025632|MR|Test|E|Lead 25632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025633|125633|989898|1|9999025633|MR|Test|E|Lead 25633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025634|125634|989898|1|9999025634|MR|Test|E|Lead 25634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025635|125635|989898|1|9999025635|MR|Test|E|Lead 25635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025636|125636|989898|1|9999025636|MR|Test|E|Lead 25636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025637|125637|989898|1|9999025637|MR|Test|E|Lead 25637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025638|125638|989898|1|9999025638|MR|Test|E|Lead 25638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025639|125639|989898|1|9999025639|MR|Test|E|Lead 25639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025640|125640|989898|1|9999025640|MR|Test|E|Lead 25640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025641|125641|989898|1|9999025641|MR|Test|E|Lead 25641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025642|125642|989898|1|9999025642|MR|Test|E|Lead 25642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025643|125643|989898|1|9999025643|MR|Test|E|Lead 25643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025644|125644|989898|1|9999025644|MR|Test|E|Lead 25644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025645|125645|989898|1|9999025645|MR|Test|E|Lead 25645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025646|125646|989898|1|9999025646|MR|Test|E|Lead 25646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025647|125647|989898|1|9999025647|MR|Test|E|Lead 25647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025648|125648|989898|1|9999025648|MR|Test|E|Lead 25648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025649|125649|989898|1|9999025649|MR|Test|E|Lead 25649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025650|125650|989898|1|9999025650|MR|Test|E|Lead 25650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025651|125651|989898|1|9999025651|MR|Test|E|Lead 25651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025652|125652|989898|1|9999025652|MR|Test|E|Lead 25652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025653|125653|989898|1|9999025653|MR|Test|E|Lead 25653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025654|125654|989898|1|9999025654|MR|Test|E|Lead 25654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025655|125655|989898|1|9999025655|MR|Test|E|Lead 25655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025656|125656|989898|1|9999025656|MR|Test|E|Lead 25656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025657|125657|989898|1|9999025657|MR|Test|E|Lead 25657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025658|125658|989898|1|9999025658|MR|Test|E|Lead 25658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025659|125659|989898|1|9999025659|MR|Test|E|Lead 25659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025660|125660|989898|1|9999025660|MR|Test|E|Lead 25660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025661|125661|989898|1|9999025661|MR|Test|E|Lead 25661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025662|125662|989898|1|9999025662|MR|Test|E|Lead 25662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025663|125663|989898|1|9999025663|MR|Test|E|Lead 25663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025664|125664|989898|1|9999025664|MR|Test|E|Lead 25664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025665|125665|989898|1|9999025665|MR|Test|E|Lead 25665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025666|125666|989898|1|9999025666|MR|Test|E|Lead 25666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025667|125667|989898|1|9999025667|MR|Test|E|Lead 25667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025668|125668|989898|1|9999025668|MR|Test|E|Lead 25668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025669|125669|989898|1|9999025669|MR|Test|E|Lead 25669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025670|125670|989898|1|9999025670|MR|Test|E|Lead 25670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025671|125671|989898|1|9999025671|MR|Test|E|Lead 25671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025672|125672|989898|1|9999025672|MR|Test|E|Lead 25672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025673|125673|989898|1|9999025673|MR|Test|E|Lead 25673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025674|125674|989898|1|9999025674|MR|Test|E|Lead 25674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025675|125675|989898|1|9999025675|MR|Test|E|Lead 25675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025676|125676|989898|1|9999025676|MR|Test|E|Lead 25676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025677|125677|989898|1|9999025677|MR|Test|E|Lead 25677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025678|125678|989898|1|9999025678|MR|Test|E|Lead 25678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025679|125679|989898|1|9999025679|MR|Test|E|Lead 25679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025680|125680|989898|1|9999025680|MR|Test|E|Lead 25680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025681|125681|989898|1|9999025681|MR|Test|E|Lead 25681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025682|125682|989898|1|9999025682|MR|Test|E|Lead 25682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025683|125683|989898|1|9999025683|MR|Test|E|Lead 25683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025684|125684|989898|1|9999025684|MR|Test|E|Lead 25684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025685|125685|989898|1|9999025685|MR|Test|E|Lead 25685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025686|125686|989898|1|9999025686|MR|Test|E|Lead 25686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025687|125687|989898|1|9999025687|MR|Test|E|Lead 25687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025688|125688|989898|1|9999025688|MR|Test|E|Lead 25688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025689|125689|989898|1|9999025689|MR|Test|E|Lead 25689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025690|125690|989898|1|9999025690|MR|Test|E|Lead 25690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025691|125691|989898|1|9999025691|MR|Test|E|Lead 25691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025692|125692|989898|1|9999025692|MR|Test|E|Lead 25692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025693|125693|989898|1|9999025693|MR|Test|E|Lead 25693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025694|125694|989898|1|9999025694|MR|Test|E|Lead 25694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025695|125695|989898|1|9999025695|MR|Test|E|Lead 25695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025696|125696|989898|1|9999025696|MR|Test|E|Lead 25696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025697|125697|989898|1|9999025697|MR|Test|E|Lead 25697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025698|125698|989898|1|9999025698|MR|Test|E|Lead 25698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025699|125699|989898|1|9999025699|MR|Test|E|Lead 25699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025700|125700|989898|1|9999025700|MR|Test|E|Lead 25700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025701|125701|989898|1|9999025701|MR|Test|E|Lead 25701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025702|125702|989898|1|9999025702|MR|Test|E|Lead 25702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025703|125703|989898|1|9999025703|MR|Test|E|Lead 25703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025704|125704|989898|1|9999025704|MR|Test|E|Lead 25704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025705|125705|989898|1|9999025705|MR|Test|E|Lead 25705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025706|125706|989898|1|9999025706|MR|Test|E|Lead 25706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025707|125707|989898|1|9999025707|MR|Test|E|Lead 25707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025708|125708|989898|1|9999025708|MR|Test|E|Lead 25708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025709|125709|989898|1|9999025709|MR|Test|E|Lead 25709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025710|125710|989898|1|9999025710|MR|Test|E|Lead 25710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025711|125711|989898|1|9999025711|MR|Test|E|Lead 25711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025712|125712|989898|1|9999025712|MR|Test|E|Lead 25712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025713|125713|989898|1|9999025713|MR|Test|E|Lead 25713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025714|125714|989898|1|9999025714|MR|Test|E|Lead 25714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025715|125715|989898|1|9999025715|MR|Test|E|Lead 25715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025716|125716|989898|1|9999025716|MR|Test|E|Lead 25716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025717|125717|989898|1|9999025717|MR|Test|E|Lead 25717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025718|125718|989898|1|9999025718|MR|Test|E|Lead 25718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025719|125719|989898|1|9999025719|MR|Test|E|Lead 25719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025720|125720|989898|1|9999025720|MR|Test|E|Lead 25720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025721|125721|989898|1|9999025721|MR|Test|E|Lead 25721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025722|125722|989898|1|9999025722|MR|Test|E|Lead 25722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025723|125723|989898|1|9999025723|MR|Test|E|Lead 25723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025724|125724|989898|1|9999025724|MR|Test|E|Lead 25724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025725|125725|989898|1|9999025725|MR|Test|E|Lead 25725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025726|125726|989898|1|9999025726|MR|Test|E|Lead 25726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025727|125727|989898|1|9999025727|MR|Test|E|Lead 25727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025728|125728|989898|1|9999025728|MR|Test|E|Lead 25728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025729|125729|989898|1|9999025729|MR|Test|E|Lead 25729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025730|125730|989898|1|9999025730|MR|Test|E|Lead 25730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025731|125731|989898|1|9999025731|MR|Test|E|Lead 25731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025732|125732|989898|1|9999025732|MR|Test|E|Lead 25732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025733|125733|989898|1|9999025733|MR|Test|E|Lead 25733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025734|125734|989898|1|9999025734|MR|Test|E|Lead 25734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025735|125735|989898|1|9999025735|MR|Test|E|Lead 25735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025736|125736|989898|1|9999025736|MR|Test|E|Lead 25736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025737|125737|989898|1|9999025737|MR|Test|E|Lead 25737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025738|125738|989898|1|9999025738|MR|Test|E|Lead 25738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025739|125739|989898|1|9999025739|MR|Test|E|Lead 25739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025740|125740|989898|1|9999025740|MR|Test|E|Lead 25740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025741|125741|989898|1|9999025741|MR|Test|E|Lead 25741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025742|125742|989898|1|9999025742|MR|Test|E|Lead 25742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025743|125743|989898|1|9999025743|MR|Test|E|Lead 25743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025744|125744|989898|1|9999025744|MR|Test|E|Lead 25744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025745|125745|989898|1|9999025745|MR|Test|E|Lead 25745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025746|125746|989898|1|9999025746|MR|Test|E|Lead 25746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025747|125747|989898|1|9999025747|MR|Test|E|Lead 25747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025748|125748|989898|1|9999025748|MR|Test|E|Lead 25748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025749|125749|989898|1|9999025749|MR|Test|E|Lead 25749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025750|125750|989898|1|9999025750|MR|Test|E|Lead 25750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025751|125751|989898|1|9999025751|MR|Test|E|Lead 25751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025752|125752|989898|1|9999025752|MR|Test|E|Lead 25752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025753|125753|989898|1|9999025753|MR|Test|E|Lead 25753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025754|125754|989898|1|9999025754|MR|Test|E|Lead 25754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025755|125755|989898|1|9999025755|MR|Test|E|Lead 25755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025756|125756|989898|1|9999025756|MR|Test|E|Lead 25756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025757|125757|989898|1|9999025757|MR|Test|E|Lead 25757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025758|125758|989898|1|9999025758|MR|Test|E|Lead 25758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025759|125759|989898|1|9999025759|MR|Test|E|Lead 25759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025760|125760|989898|1|9999025760|MR|Test|E|Lead 25760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025761|125761|989898|1|9999025761|MR|Test|E|Lead 25761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025762|125762|989898|1|9999025762|MR|Test|E|Lead 25762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025763|125763|989898|1|9999025763|MR|Test|E|Lead 25763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025764|125764|989898|1|9999025764|MR|Test|E|Lead 25764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025765|125765|989898|1|9999025765|MR|Test|E|Lead 25765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025766|125766|989898|1|9999025766|MR|Test|E|Lead 25766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025767|125767|989898|1|9999025767|MR|Test|E|Lead 25767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025768|125768|989898|1|9999025768|MR|Test|E|Lead 25768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025769|125769|989898|1|9999025769|MR|Test|E|Lead 25769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025770|125770|989898|1|9999025770|MR|Test|E|Lead 25770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025771|125771|989898|1|9999025771|MR|Test|E|Lead 25771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025772|125772|989898|1|9999025772|MR|Test|E|Lead 25772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025773|125773|989898|1|9999025773|MR|Test|E|Lead 25773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025774|125774|989898|1|9999025774|MR|Test|E|Lead 25774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025775|125775|989898|1|9999025775|MR|Test|E|Lead 25775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025776|125776|989898|1|9999025776|MR|Test|E|Lead 25776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025777|125777|989898|1|9999025777|MR|Test|E|Lead 25777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025778|125778|989898|1|9999025778|MR|Test|E|Lead 25778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025779|125779|989898|1|9999025779|MR|Test|E|Lead 25779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025780|125780|989898|1|9999025780|MR|Test|E|Lead 25780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025781|125781|989898|1|9999025781|MR|Test|E|Lead 25781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025782|125782|989898|1|9999025782|MR|Test|E|Lead 25782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025783|125783|989898|1|9999025783|MR|Test|E|Lead 25783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025784|125784|989898|1|9999025784|MR|Test|E|Lead 25784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025785|125785|989898|1|9999025785|MR|Test|E|Lead 25785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025786|125786|989898|1|9999025786|MR|Test|E|Lead 25786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025787|125787|989898|1|9999025787|MR|Test|E|Lead 25787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025788|125788|989898|1|9999025788|MR|Test|E|Lead 25788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025789|125789|989898|1|9999025789|MR|Test|E|Lead 25789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025790|125790|989898|1|9999025790|MR|Test|E|Lead 25790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025791|125791|989898|1|9999025791|MR|Test|E|Lead 25791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025792|125792|989898|1|9999025792|MR|Test|E|Lead 25792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025793|125793|989898|1|9999025793|MR|Test|E|Lead 25793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025794|125794|989898|1|9999025794|MR|Test|E|Lead 25794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025795|125795|989898|1|9999025795|MR|Test|E|Lead 25795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025796|125796|989898|1|9999025796|MR|Test|E|Lead 25796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025797|125797|989898|1|9999025797|MR|Test|E|Lead 25797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025798|125798|989898|1|9999025798|MR|Test|E|Lead 25798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025799|125799|989898|1|9999025799|MR|Test|E|Lead 25799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025800|125800|989898|1|9999025800|MR|Test|E|Lead 25800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025801|125801|989898|1|9999025801|MR|Test|E|Lead 25801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025802|125802|989898|1|9999025802|MR|Test|E|Lead 25802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025803|125803|989898|1|9999025803|MR|Test|E|Lead 25803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025804|125804|989898|1|9999025804|MR|Test|E|Lead 25804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025805|125805|989898|1|9999025805|MR|Test|E|Lead 25805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025806|125806|989898|1|9999025806|MR|Test|E|Lead 25806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025807|125807|989898|1|9999025807|MR|Test|E|Lead 25807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025808|125808|989898|1|9999025808|MR|Test|E|Lead 25808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025809|125809|989898|1|9999025809|MR|Test|E|Lead 25809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025810|125810|989898|1|9999025810|MR|Test|E|Lead 25810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025811|125811|989898|1|9999025811|MR|Test|E|Lead 25811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025812|125812|989898|1|9999025812|MR|Test|E|Lead 25812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025813|125813|989898|1|9999025813|MR|Test|E|Lead 25813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025814|125814|989898|1|9999025814|MR|Test|E|Lead 25814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025815|125815|989898|1|9999025815|MR|Test|E|Lead 25815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025816|125816|989898|1|9999025816|MR|Test|E|Lead 25816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025817|125817|989898|1|9999025817|MR|Test|E|Lead 25817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025818|125818|989898|1|9999025818|MR|Test|E|Lead 25818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025819|125819|989898|1|9999025819|MR|Test|E|Lead 25819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025820|125820|989898|1|9999025820|MR|Test|E|Lead 25820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025821|125821|989898|1|9999025821|MR|Test|E|Lead 25821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025822|125822|989898|1|9999025822|MR|Test|E|Lead 25822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025823|125823|989898|1|9999025823|MR|Test|E|Lead 25823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025824|125824|989898|1|9999025824|MR|Test|E|Lead 25824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025825|125825|989898|1|9999025825|MR|Test|E|Lead 25825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025826|125826|989898|1|9999025826|MR|Test|E|Lead 25826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025827|125827|989898|1|9999025827|MR|Test|E|Lead 25827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025828|125828|989898|1|9999025828|MR|Test|E|Lead 25828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025829|125829|989898|1|9999025829|MR|Test|E|Lead 25829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025830|125830|989898|1|9999025830|MR|Test|E|Lead 25830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025831|125831|989898|1|9999025831|MR|Test|E|Lead 25831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025832|125832|989898|1|9999025832|MR|Test|E|Lead 25832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025833|125833|989898|1|9999025833|MR|Test|E|Lead 25833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025834|125834|989898|1|9999025834|MR|Test|E|Lead 25834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025835|125835|989898|1|9999025835|MR|Test|E|Lead 25835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025836|125836|989898|1|9999025836|MR|Test|E|Lead 25836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025837|125837|989898|1|9999025837|MR|Test|E|Lead 25837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025838|125838|989898|1|9999025838|MR|Test|E|Lead 25838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025839|125839|989898|1|9999025839|MR|Test|E|Lead 25839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025840|125840|989898|1|9999025840|MR|Test|E|Lead 25840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025841|125841|989898|1|9999025841|MR|Test|E|Lead 25841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025842|125842|989898|1|9999025842|MR|Test|E|Lead 25842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025843|125843|989898|1|9999025843|MR|Test|E|Lead 25843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025844|125844|989898|1|9999025844|MR|Test|E|Lead 25844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025845|125845|989898|1|9999025845|MR|Test|E|Lead 25845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025846|125846|989898|1|9999025846|MR|Test|E|Lead 25846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025847|125847|989898|1|9999025847|MR|Test|E|Lead 25847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025848|125848|989898|1|9999025848|MR|Test|E|Lead 25848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025849|125849|989898|1|9999025849|MR|Test|E|Lead 25849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025850|125850|989898|1|9999025850|MR|Test|E|Lead 25850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025851|125851|989898|1|9999025851|MR|Test|E|Lead 25851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025852|125852|989898|1|9999025852|MR|Test|E|Lead 25852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025853|125853|989898|1|9999025853|MR|Test|E|Lead 25853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025854|125854|989898|1|9999025854|MR|Test|E|Lead 25854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025855|125855|989898|1|9999025855|MR|Test|E|Lead 25855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025856|125856|989898|1|9999025856|MR|Test|E|Lead 25856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025857|125857|989898|1|9999025857|MR|Test|E|Lead 25857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025858|125858|989898|1|9999025858|MR|Test|E|Lead 25858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025859|125859|989898|1|9999025859|MR|Test|E|Lead 25859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025860|125860|989898|1|9999025860|MR|Test|E|Lead 25860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025861|125861|989898|1|9999025861|MR|Test|E|Lead 25861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025862|125862|989898|1|9999025862|MR|Test|E|Lead 25862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025863|125863|989898|1|9999025863|MR|Test|E|Lead 25863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025864|125864|989898|1|9999025864|MR|Test|E|Lead 25864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025865|125865|989898|1|9999025865|MR|Test|E|Lead 25865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025866|125866|989898|1|9999025866|MR|Test|E|Lead 25866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025867|125867|989898|1|9999025867|MR|Test|E|Lead 25867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025868|125868|989898|1|9999025868|MR|Test|E|Lead 25868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025869|125869|989898|1|9999025869|MR|Test|E|Lead 25869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025870|125870|989898|1|9999025870|MR|Test|E|Lead 25870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025871|125871|989898|1|9999025871|MR|Test|E|Lead 25871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025872|125872|989898|1|9999025872|MR|Test|E|Lead 25872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025873|125873|989898|1|9999025873|MR|Test|E|Lead 25873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025874|125874|989898|1|9999025874|MR|Test|E|Lead 25874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025875|125875|989898|1|9999025875|MR|Test|E|Lead 25875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025876|125876|989898|1|9999025876|MR|Test|E|Lead 25876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025877|125877|989898|1|9999025877|MR|Test|E|Lead 25877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025878|125878|989898|1|9999025878|MR|Test|E|Lead 25878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025879|125879|989898|1|9999025879|MR|Test|E|Lead 25879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025880|125880|989898|1|9999025880|MR|Test|E|Lead 25880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025881|125881|989898|1|9999025881|MR|Test|E|Lead 25881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025882|125882|989898|1|9999025882|MR|Test|E|Lead 25882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025883|125883|989898|1|9999025883|MR|Test|E|Lead 25883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025884|125884|989898|1|9999025884|MR|Test|E|Lead 25884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025885|125885|989898|1|9999025885|MR|Test|E|Lead 25885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025886|125886|989898|1|9999025886|MR|Test|E|Lead 25886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025887|125887|989898|1|9999025887|MR|Test|E|Lead 25887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025888|125888|989898|1|9999025888|MR|Test|E|Lead 25888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025889|125889|989898|1|9999025889|MR|Test|E|Lead 25889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025890|125890|989898|1|9999025890|MR|Test|E|Lead 25890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025891|125891|989898|1|9999025891|MR|Test|E|Lead 25891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025892|125892|989898|1|9999025892|MR|Test|E|Lead 25892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025893|125893|989898|1|9999025893|MR|Test|E|Lead 25893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025894|125894|989898|1|9999025894|MR|Test|E|Lead 25894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025895|125895|989898|1|9999025895|MR|Test|E|Lead 25895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025896|125896|989898|1|9999025896|MR|Test|E|Lead 25896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025897|125897|989898|1|9999025897|MR|Test|E|Lead 25897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025898|125898|989898|1|9999025898|MR|Test|E|Lead 25898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025899|125899|989898|1|9999025899|MR|Test|E|Lead 25899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025900|125900|989898|1|9999025900|MR|Test|E|Lead 25900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025901|125901|989898|1|9999025901|MR|Test|E|Lead 25901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025902|125902|989898|1|9999025902|MR|Test|E|Lead 25902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025903|125903|989898|1|9999025903|MR|Test|E|Lead 25903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025904|125904|989898|1|9999025904|MR|Test|E|Lead 25904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025905|125905|989898|1|9999025905|MR|Test|E|Lead 25905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025906|125906|989898|1|9999025906|MR|Test|E|Lead 25906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025907|125907|989898|1|9999025907|MR|Test|E|Lead 25907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025908|125908|989898|1|9999025908|MR|Test|E|Lead 25908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025909|125909|989898|1|9999025909|MR|Test|E|Lead 25909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025910|125910|989898|1|9999025910|MR|Test|E|Lead 25910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025911|125911|989898|1|9999025911|MR|Test|E|Lead 25911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025912|125912|989898|1|9999025912|MR|Test|E|Lead 25912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025913|125913|989898|1|9999025913|MR|Test|E|Lead 25913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025914|125914|989898|1|9999025914|MR|Test|E|Lead 25914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025915|125915|989898|1|9999025915|MR|Test|E|Lead 25915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025916|125916|989898|1|9999025916|MR|Test|E|Lead 25916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025917|125917|989898|1|9999025917|MR|Test|E|Lead 25917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025918|125918|989898|1|9999025918|MR|Test|E|Lead 25918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025919|125919|989898|1|9999025919|MR|Test|E|Lead 25919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025920|125920|989898|1|9999025920|MR|Test|E|Lead 25920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025921|125921|989898|1|9999025921|MR|Test|E|Lead 25921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025922|125922|989898|1|9999025922|MR|Test|E|Lead 25922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025923|125923|989898|1|9999025923|MR|Test|E|Lead 25923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025924|125924|989898|1|9999025924|MR|Test|E|Lead 25924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025925|125925|989898|1|9999025925|MR|Test|E|Lead 25925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025926|125926|989898|1|9999025926|MR|Test|E|Lead 25926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025927|125927|989898|1|9999025927|MR|Test|E|Lead 25927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025928|125928|989898|1|9999025928|MR|Test|E|Lead 25928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025929|125929|989898|1|9999025929|MR|Test|E|Lead 25929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025930|125930|989898|1|9999025930|MR|Test|E|Lead 25930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025931|125931|989898|1|9999025931|MR|Test|E|Lead 25931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025932|125932|989898|1|9999025932|MR|Test|E|Lead 25932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025933|125933|989898|1|9999025933|MR|Test|E|Lead 25933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025934|125934|989898|1|9999025934|MR|Test|E|Lead 25934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025935|125935|989898|1|9999025935|MR|Test|E|Lead 25935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025936|125936|989898|1|9999025936|MR|Test|E|Lead 25936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025937|125937|989898|1|9999025937|MR|Test|E|Lead 25937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025938|125938|989898|1|9999025938|MR|Test|E|Lead 25938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025939|125939|989898|1|9999025939|MR|Test|E|Lead 25939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025940|125940|989898|1|9999025940|MR|Test|E|Lead 25940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025941|125941|989898|1|9999025941|MR|Test|E|Lead 25941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025942|125942|989898|1|9999025942|MR|Test|E|Lead 25942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025943|125943|989898|1|9999025943|MR|Test|E|Lead 25943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025944|125944|989898|1|9999025944|MR|Test|E|Lead 25944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025945|125945|989898|1|9999025945|MR|Test|E|Lead 25945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025946|125946|989898|1|9999025946|MR|Test|E|Lead 25946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025947|125947|989898|1|9999025947|MR|Test|E|Lead 25947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025948|125948|989898|1|9999025948|MR|Test|E|Lead 25948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025949|125949|989898|1|9999025949|MR|Test|E|Lead 25949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025950|125950|989898|1|9999025950|MR|Test|E|Lead 25950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025951|125951|989898|1|9999025951|MR|Test|E|Lead 25951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025952|125952|989898|1|9999025952|MR|Test|E|Lead 25952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025953|125953|989898|1|9999025953|MR|Test|E|Lead 25953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025954|125954|989898|1|9999025954|MR|Test|E|Lead 25954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025955|125955|989898|1|9999025955|MR|Test|E|Lead 25955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025956|125956|989898|1|9999025956|MR|Test|E|Lead 25956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025957|125957|989898|1|9999025957|MR|Test|E|Lead 25957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025958|125958|989898|1|9999025958|MR|Test|E|Lead 25958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025959|125959|989898|1|9999025959|MR|Test|E|Lead 25959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025960|125960|989898|1|9999025960|MR|Test|E|Lead 25960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025961|125961|989898|1|9999025961|MR|Test|E|Lead 25961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025962|125962|989898|1|9999025962|MR|Test|E|Lead 25962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025963|125963|989898|1|9999025963|MR|Test|E|Lead 25963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025964|125964|989898|1|9999025964|MR|Test|E|Lead 25964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025965|125965|989898|1|9999025965|MR|Test|E|Lead 25965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025966|125966|989898|1|9999025966|MR|Test|E|Lead 25966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025967|125967|989898|1|9999025967|MR|Test|E|Lead 25967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025968|125968|989898|1|9999025968|MR|Test|E|Lead 25968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025969|125969|989898|1|9999025969|MR|Test|E|Lead 25969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025970|125970|989898|1|9999025970|MR|Test|E|Lead 25970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025971|125971|989898|1|9999025971|MR|Test|E|Lead 25971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025972|125972|989898|1|9999025972|MR|Test|E|Lead 25972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025973|125973|989898|1|9999025973|MR|Test|E|Lead 25973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025974|125974|989898|1|9999025974|MR|Test|E|Lead 25974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025975|125975|989898|1|9999025975|MR|Test|E|Lead 25975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025976|125976|989898|1|9999025976|MR|Test|E|Lead 25976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025977|125977|989898|1|9999025977|MR|Test|E|Lead 25977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025978|125978|989898|1|9999025978|MR|Test|E|Lead 25978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025979|125979|989898|1|9999025979|MR|Test|E|Lead 25979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025980|125980|989898|1|9999025980|MR|Test|E|Lead 25980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025981|125981|989898|1|9999025981|MR|Test|E|Lead 25981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025982|125982|989898|1|9999025982|MR|Test|E|Lead 25982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025983|125983|989898|1|9999025983|MR|Test|E|Lead 25983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025984|125984|989898|1|9999025984|MR|Test|E|Lead 25984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025985|125985|989898|1|9999025985|MR|Test|E|Lead 25985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025986|125986|989898|1|9999025986|MR|Test|E|Lead 25986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025987|125987|989898|1|9999025987|MR|Test|E|Lead 25987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025988|125988|989898|1|9999025988|MR|Test|E|Lead 25988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025989|125989|989898|1|9999025989|MR|Test|E|Lead 25989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025990|125990|989898|1|9999025990|MR|Test|E|Lead 25990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025991|125991|989898|1|9999025991|MR|Test|E|Lead 25991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025992|125992|989898|1|9999025992|MR|Test|E|Lead 25992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025993|125993|989898|1|9999025993|MR|Test|E|Lead 25993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025994|125994|989898|1|9999025994|MR|Test|E|Lead 25994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025995|125995|989898|1|9999025995|MR|Test|E|Lead 25995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025996|125996|989898|1|9999025996|MR|Test|E|Lead 25996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025997|125997|989898|1|9999025997|MR|Test|E|Lead 25997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025998|125998|989898|1|9999025998|MR|Test|E|Lead 25998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1025999|125999|989898|1|9999025999|MR|Test|E|Lead 25999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026000|126000|989898|1|9999026000|MR|Test|E|Lead 26000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026001|126001|989898|1|9999026001|MR|Test|E|Lead 26001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026002|126002|989898|1|9999026002|MR|Test|E|Lead 26002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026003|126003|989898|1|9999026003|MR|Test|E|Lead 26003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026004|126004|989898|1|9999026004|MR|Test|E|Lead 26004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026005|126005|989898|1|9999026005|MR|Test|E|Lead 26005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026006|126006|989898|1|9999026006|MR|Test|E|Lead 26006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026007|126007|989898|1|9999026007|MR|Test|E|Lead 26007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026008|126008|989898|1|9999026008|MR|Test|E|Lead 26008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026009|126009|989898|1|9999026009|MR|Test|E|Lead 26009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026010|126010|989898|1|9999026010|MR|Test|E|Lead 26010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026011|126011|989898|1|9999026011|MR|Test|E|Lead 26011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026012|126012|989898|1|9999026012|MR|Test|E|Lead 26012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026013|126013|989898|1|9999026013|MR|Test|E|Lead 26013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026014|126014|989898|1|9999026014|MR|Test|E|Lead 26014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026015|126015|989898|1|9999026015|MR|Test|E|Lead 26015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026016|126016|989898|1|9999026016|MR|Test|E|Lead 26016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026017|126017|989898|1|9999026017|MR|Test|E|Lead 26017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026018|126018|989898|1|9999026018|MR|Test|E|Lead 26018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026019|126019|989898|1|9999026019|MR|Test|E|Lead 26019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026020|126020|989898|1|9999026020|MR|Test|E|Lead 26020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026021|126021|989898|1|9999026021|MR|Test|E|Lead 26021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026022|126022|989898|1|9999026022|MR|Test|E|Lead 26022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026023|126023|989898|1|9999026023|MR|Test|E|Lead 26023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026024|126024|989898|1|9999026024|MR|Test|E|Lead 26024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026025|126025|989898|1|9999026025|MR|Test|E|Lead 26025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026026|126026|989898|1|9999026026|MR|Test|E|Lead 26026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026027|126027|989898|1|9999026027|MR|Test|E|Lead 26027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026028|126028|989898|1|9999026028|MR|Test|E|Lead 26028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026029|126029|989898|1|9999026029|MR|Test|E|Lead 26029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026030|126030|989898|1|9999026030|MR|Test|E|Lead 26030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026031|126031|989898|1|9999026031|MR|Test|E|Lead 26031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026032|126032|989898|1|9999026032|MR|Test|E|Lead 26032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026033|126033|989898|1|9999026033|MR|Test|E|Lead 26033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026034|126034|989898|1|9999026034|MR|Test|E|Lead 26034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026035|126035|989898|1|9999026035|MR|Test|E|Lead 26035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026036|126036|989898|1|9999026036|MR|Test|E|Lead 26036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026037|126037|989898|1|9999026037|MR|Test|E|Lead 26037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026038|126038|989898|1|9999026038|MR|Test|E|Lead 26038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026039|126039|989898|1|9999026039|MR|Test|E|Lead 26039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026040|126040|989898|1|9999026040|MR|Test|E|Lead 26040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026041|126041|989898|1|9999026041|MR|Test|E|Lead 26041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026042|126042|989898|1|9999026042|MR|Test|E|Lead 26042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026043|126043|989898|1|9999026043|MR|Test|E|Lead 26043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026044|126044|989898|1|9999026044|MR|Test|E|Lead 26044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026045|126045|989898|1|9999026045|MR|Test|E|Lead 26045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026046|126046|989898|1|9999026046|MR|Test|E|Lead 26046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026047|126047|989898|1|9999026047|MR|Test|E|Lead 26047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026048|126048|989898|1|9999026048|MR|Test|E|Lead 26048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026049|126049|989898|1|9999026049|MR|Test|E|Lead 26049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026050|126050|989898|1|9999026050|MR|Test|E|Lead 26050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026051|126051|989898|1|9999026051|MR|Test|E|Lead 26051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026052|126052|989898|1|9999026052|MR|Test|E|Lead 26052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026053|126053|989898|1|9999026053|MR|Test|E|Lead 26053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026054|126054|989898|1|9999026054|MR|Test|E|Lead 26054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026055|126055|989898|1|9999026055|MR|Test|E|Lead 26055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026056|126056|989898|1|9999026056|MR|Test|E|Lead 26056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026057|126057|989898|1|9999026057|MR|Test|E|Lead 26057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026058|126058|989898|1|9999026058|MR|Test|E|Lead 26058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026059|126059|989898|1|9999026059|MR|Test|E|Lead 26059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026060|126060|989898|1|9999026060|MR|Test|E|Lead 26060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026061|126061|989898|1|9999026061|MR|Test|E|Lead 26061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026062|126062|989898|1|9999026062|MR|Test|E|Lead 26062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026063|126063|989898|1|9999026063|MR|Test|E|Lead 26063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026064|126064|989898|1|9999026064|MR|Test|E|Lead 26064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026065|126065|989898|1|9999026065|MR|Test|E|Lead 26065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026066|126066|989898|1|9999026066|MR|Test|E|Lead 26066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026067|126067|989898|1|9999026067|MR|Test|E|Lead 26067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026068|126068|989898|1|9999026068|MR|Test|E|Lead 26068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026069|126069|989898|1|9999026069|MR|Test|E|Lead 26069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026070|126070|989898|1|9999026070|MR|Test|E|Lead 26070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026071|126071|989898|1|9999026071|MR|Test|E|Lead 26071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026072|126072|989898|1|9999026072|MR|Test|E|Lead 26072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026073|126073|989898|1|9999026073|MR|Test|E|Lead 26073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026074|126074|989898|1|9999026074|MR|Test|E|Lead 26074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026075|126075|989898|1|9999026075|MR|Test|E|Lead 26075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026076|126076|989898|1|9999026076|MR|Test|E|Lead 26076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026077|126077|989898|1|9999026077|MR|Test|E|Lead 26077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026078|126078|989898|1|9999026078|MR|Test|E|Lead 26078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026079|126079|989898|1|9999026079|MR|Test|E|Lead 26079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026080|126080|989898|1|9999026080|MR|Test|E|Lead 26080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026081|126081|989898|1|9999026081|MR|Test|E|Lead 26081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026082|126082|989898|1|9999026082|MR|Test|E|Lead 26082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026083|126083|989898|1|9999026083|MR|Test|E|Lead 26083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026084|126084|989898|1|9999026084|MR|Test|E|Lead 26084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026085|126085|989898|1|9999026085|MR|Test|E|Lead 26085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026086|126086|989898|1|9999026086|MR|Test|E|Lead 26086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026087|126087|989898|1|9999026087|MR|Test|E|Lead 26087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026088|126088|989898|1|9999026088|MR|Test|E|Lead 26088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026089|126089|989898|1|9999026089|MR|Test|E|Lead 26089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026090|126090|989898|1|9999026090|MR|Test|E|Lead 26090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026091|126091|989898|1|9999026091|MR|Test|E|Lead 26091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026092|126092|989898|1|9999026092|MR|Test|E|Lead 26092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026093|126093|989898|1|9999026093|MR|Test|E|Lead 26093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026094|126094|989898|1|9999026094|MR|Test|E|Lead 26094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026095|126095|989898|1|9999026095|MR|Test|E|Lead 26095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026096|126096|989898|1|9999026096|MR|Test|E|Lead 26096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026097|126097|989898|1|9999026097|MR|Test|E|Lead 26097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026098|126098|989898|1|9999026098|MR|Test|E|Lead 26098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026099|126099|989898|1|9999026099|MR|Test|E|Lead 26099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026100|126100|989898|1|9999026100|MR|Test|E|Lead 26100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026101|126101|989898|1|9999026101|MR|Test|E|Lead 26101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026102|126102|989898|1|9999026102|MR|Test|E|Lead 26102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026103|126103|989898|1|9999026103|MR|Test|E|Lead 26103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026104|126104|989898|1|9999026104|MR|Test|E|Lead 26104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026105|126105|989898|1|9999026105|MR|Test|E|Lead 26105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026106|126106|989898|1|9999026106|MR|Test|E|Lead 26106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026107|126107|989898|1|9999026107|MR|Test|E|Lead 26107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026108|126108|989898|1|9999026108|MR|Test|E|Lead 26108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026109|126109|989898|1|9999026109|MR|Test|E|Lead 26109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026110|126110|989898|1|9999026110|MR|Test|E|Lead 26110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026111|126111|989898|1|9999026111|MR|Test|E|Lead 26111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026112|126112|989898|1|9999026112|MR|Test|E|Lead 26112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026113|126113|989898|1|9999026113|MR|Test|E|Lead 26113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026114|126114|989898|1|9999026114|MR|Test|E|Lead 26114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026115|126115|989898|1|9999026115|MR|Test|E|Lead 26115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026116|126116|989898|1|9999026116|MR|Test|E|Lead 26116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026117|126117|989898|1|9999026117|MR|Test|E|Lead 26117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026118|126118|989898|1|9999026118|MR|Test|E|Lead 26118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026119|126119|989898|1|9999026119|MR|Test|E|Lead 26119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026120|126120|989898|1|9999026120|MR|Test|E|Lead 26120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026121|126121|989898|1|9999026121|MR|Test|E|Lead 26121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026122|126122|989898|1|9999026122|MR|Test|E|Lead 26122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026123|126123|989898|1|9999026123|MR|Test|E|Lead 26123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026124|126124|989898|1|9999026124|MR|Test|E|Lead 26124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026125|126125|989898|1|9999026125|MR|Test|E|Lead 26125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026126|126126|989898|1|9999026126|MR|Test|E|Lead 26126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026127|126127|989898|1|9999026127|MR|Test|E|Lead 26127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026128|126128|989898|1|9999026128|MR|Test|E|Lead 26128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026129|126129|989898|1|9999026129|MR|Test|E|Lead 26129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026130|126130|989898|1|9999026130|MR|Test|E|Lead 26130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026131|126131|989898|1|9999026131|MR|Test|E|Lead 26131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026132|126132|989898|1|9999026132|MR|Test|E|Lead 26132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026133|126133|989898|1|9999026133|MR|Test|E|Lead 26133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026134|126134|989898|1|9999026134|MR|Test|E|Lead 26134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026135|126135|989898|1|9999026135|MR|Test|E|Lead 26135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026136|126136|989898|1|9999026136|MR|Test|E|Lead 26136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026137|126137|989898|1|9999026137|MR|Test|E|Lead 26137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026138|126138|989898|1|9999026138|MR|Test|E|Lead 26138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026139|126139|989898|1|9999026139|MR|Test|E|Lead 26139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026140|126140|989898|1|9999026140|MR|Test|E|Lead 26140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026141|126141|989898|1|9999026141|MR|Test|E|Lead 26141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026142|126142|989898|1|9999026142|MR|Test|E|Lead 26142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026143|126143|989898|1|9999026143|MR|Test|E|Lead 26143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026144|126144|989898|1|9999026144|MR|Test|E|Lead 26144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026145|126145|989898|1|9999026145|MR|Test|E|Lead 26145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026146|126146|989898|1|9999026146|MR|Test|E|Lead 26146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026147|126147|989898|1|9999026147|MR|Test|E|Lead 26147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026148|126148|989898|1|9999026148|MR|Test|E|Lead 26148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026149|126149|989898|1|9999026149|MR|Test|E|Lead 26149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026150|126150|989898|1|9999026150|MR|Test|E|Lead 26150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026151|126151|989898|1|9999026151|MR|Test|E|Lead 26151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026152|126152|989898|1|9999026152|MR|Test|E|Lead 26152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026153|126153|989898|1|9999026153|MR|Test|E|Lead 26153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026154|126154|989898|1|9999026154|MR|Test|E|Lead 26154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026155|126155|989898|1|9999026155|MR|Test|E|Lead 26155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026156|126156|989898|1|9999026156|MR|Test|E|Lead 26156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026157|126157|989898|1|9999026157|MR|Test|E|Lead 26157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026158|126158|989898|1|9999026158|MR|Test|E|Lead 26158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026159|126159|989898|1|9999026159|MR|Test|E|Lead 26159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026160|126160|989898|1|9999026160|MR|Test|E|Lead 26160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026161|126161|989898|1|9999026161|MR|Test|E|Lead 26161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026162|126162|989898|1|9999026162|MR|Test|E|Lead 26162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026163|126163|989898|1|9999026163|MR|Test|E|Lead 26163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026164|126164|989898|1|9999026164|MR|Test|E|Lead 26164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026165|126165|989898|1|9999026165|MR|Test|E|Lead 26165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026166|126166|989898|1|9999026166|MR|Test|E|Lead 26166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026167|126167|989898|1|9999026167|MR|Test|E|Lead 26167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026168|126168|989898|1|9999026168|MR|Test|E|Lead 26168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026169|126169|989898|1|9999026169|MR|Test|E|Lead 26169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026170|126170|989898|1|9999026170|MR|Test|E|Lead 26170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026171|126171|989898|1|9999026171|MR|Test|E|Lead 26171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026172|126172|989898|1|9999026172|MR|Test|E|Lead 26172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026173|126173|989898|1|9999026173|MR|Test|E|Lead 26173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026174|126174|989898|1|9999026174|MR|Test|E|Lead 26174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026175|126175|989898|1|9999026175|MR|Test|E|Lead 26175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026176|126176|989898|1|9999026176|MR|Test|E|Lead 26176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026177|126177|989898|1|9999026177|MR|Test|E|Lead 26177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026178|126178|989898|1|9999026178|MR|Test|E|Lead 26178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026179|126179|989898|1|9999026179|MR|Test|E|Lead 26179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026180|126180|989898|1|9999026180|MR|Test|E|Lead 26180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026181|126181|989898|1|9999026181|MR|Test|E|Lead 26181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026182|126182|989898|1|9999026182|MR|Test|E|Lead 26182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026183|126183|989898|1|9999026183|MR|Test|E|Lead 26183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026184|126184|989898|1|9999026184|MR|Test|E|Lead 26184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026185|126185|989898|1|9999026185|MR|Test|E|Lead 26185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026186|126186|989898|1|9999026186|MR|Test|E|Lead 26186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026187|126187|989898|1|9999026187|MR|Test|E|Lead 26187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026188|126188|989898|1|9999026188|MR|Test|E|Lead 26188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026189|126189|989898|1|9999026189|MR|Test|E|Lead 26189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026190|126190|989898|1|9999026190|MR|Test|E|Lead 26190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026191|126191|989898|1|9999026191|MR|Test|E|Lead 26191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026192|126192|989898|1|9999026192|MR|Test|E|Lead 26192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026193|126193|989898|1|9999026193|MR|Test|E|Lead 26193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026194|126194|989898|1|9999026194|MR|Test|E|Lead 26194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026195|126195|989898|1|9999026195|MR|Test|E|Lead 26195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026196|126196|989898|1|9999026196|MR|Test|E|Lead 26196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026197|126197|989898|1|9999026197|MR|Test|E|Lead 26197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026198|126198|989898|1|9999026198|MR|Test|E|Lead 26198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026199|126199|989898|1|9999026199|MR|Test|E|Lead 26199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026200|126200|989898|1|9999026200|MR|Test|E|Lead 26200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026201|126201|989898|1|9999026201|MR|Test|E|Lead 26201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026202|126202|989898|1|9999026202|MR|Test|E|Lead 26202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026203|126203|989898|1|9999026203|MR|Test|E|Lead 26203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026204|126204|989898|1|9999026204|MR|Test|E|Lead 26204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026205|126205|989898|1|9999026205|MR|Test|E|Lead 26205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026206|126206|989898|1|9999026206|MR|Test|E|Lead 26206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026207|126207|989898|1|9999026207|MR|Test|E|Lead 26207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026208|126208|989898|1|9999026208|MR|Test|E|Lead 26208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026209|126209|989898|1|9999026209|MR|Test|E|Lead 26209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026210|126210|989898|1|9999026210|MR|Test|E|Lead 26210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026211|126211|989898|1|9999026211|MR|Test|E|Lead 26211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026212|126212|989898|1|9999026212|MR|Test|E|Lead 26212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026213|126213|989898|1|9999026213|MR|Test|E|Lead 26213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026214|126214|989898|1|9999026214|MR|Test|E|Lead 26214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026215|126215|989898|1|9999026215|MR|Test|E|Lead 26215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026216|126216|989898|1|9999026216|MR|Test|E|Lead 26216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026217|126217|989898|1|9999026217|MR|Test|E|Lead 26217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026218|126218|989898|1|9999026218|MR|Test|E|Lead 26218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026219|126219|989898|1|9999026219|MR|Test|E|Lead 26219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026220|126220|989898|1|9999026220|MR|Test|E|Lead 26220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026221|126221|989898|1|9999026221|MR|Test|E|Lead 26221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026222|126222|989898|1|9999026222|MR|Test|E|Lead 26222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026223|126223|989898|1|9999026223|MR|Test|E|Lead 26223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026224|126224|989898|1|9999026224|MR|Test|E|Lead 26224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026225|126225|989898|1|9999026225|MR|Test|E|Lead 26225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026226|126226|989898|1|9999026226|MR|Test|E|Lead 26226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026227|126227|989898|1|9999026227|MR|Test|E|Lead 26227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026228|126228|989898|1|9999026228|MR|Test|E|Lead 26228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026229|126229|989898|1|9999026229|MR|Test|E|Lead 26229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026230|126230|989898|1|9999026230|MR|Test|E|Lead 26230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026231|126231|989898|1|9999026231|MR|Test|E|Lead 26231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026232|126232|989898|1|9999026232|MR|Test|E|Lead 26232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026233|126233|989898|1|9999026233|MR|Test|E|Lead 26233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026234|126234|989898|1|9999026234|MR|Test|E|Lead 26234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026235|126235|989898|1|9999026235|MR|Test|E|Lead 26235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026236|126236|989898|1|9999026236|MR|Test|E|Lead 26236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026237|126237|989898|1|9999026237|MR|Test|E|Lead 26237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026238|126238|989898|1|9999026238|MR|Test|E|Lead 26238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026239|126239|989898|1|9999026239|MR|Test|E|Lead 26239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026240|126240|989898|1|9999026240|MR|Test|E|Lead 26240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026241|126241|989898|1|9999026241|MR|Test|E|Lead 26241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026242|126242|989898|1|9999026242|MR|Test|E|Lead 26242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026243|126243|989898|1|9999026243|MR|Test|E|Lead 26243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026244|126244|989898|1|9999026244|MR|Test|E|Lead 26244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026245|126245|989898|1|9999026245|MR|Test|E|Lead 26245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026246|126246|989898|1|9999026246|MR|Test|E|Lead 26246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026247|126247|989898|1|9999026247|MR|Test|E|Lead 26247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026248|126248|989898|1|9999026248|MR|Test|E|Lead 26248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026249|126249|989898|1|9999026249|MR|Test|E|Lead 26249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026250|126250|989898|1|9999026250|MR|Test|E|Lead 26250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026251|126251|989898|1|9999026251|MR|Test|E|Lead 26251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026252|126252|989898|1|9999026252|MR|Test|E|Lead 26252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026253|126253|989898|1|9999026253|MR|Test|E|Lead 26253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026254|126254|989898|1|9999026254|MR|Test|E|Lead 26254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026255|126255|989898|1|9999026255|MR|Test|E|Lead 26255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026256|126256|989898|1|9999026256|MR|Test|E|Lead 26256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026257|126257|989898|1|9999026257|MR|Test|E|Lead 26257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026258|126258|989898|1|9999026258|MR|Test|E|Lead 26258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026259|126259|989898|1|9999026259|MR|Test|E|Lead 26259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026260|126260|989898|1|9999026260|MR|Test|E|Lead 26260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026261|126261|989898|1|9999026261|MR|Test|E|Lead 26261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026262|126262|989898|1|9999026262|MR|Test|E|Lead 26262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026263|126263|989898|1|9999026263|MR|Test|E|Lead 26263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026264|126264|989898|1|9999026264|MR|Test|E|Lead 26264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026265|126265|989898|1|9999026265|MR|Test|E|Lead 26265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026266|126266|989898|1|9999026266|MR|Test|E|Lead 26266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026267|126267|989898|1|9999026267|MR|Test|E|Lead 26267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026268|126268|989898|1|9999026268|MR|Test|E|Lead 26268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026269|126269|989898|1|9999026269|MR|Test|E|Lead 26269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026270|126270|989898|1|9999026270|MR|Test|E|Lead 26270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026271|126271|989898|1|9999026271|MR|Test|E|Lead 26271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026272|126272|989898|1|9999026272|MR|Test|E|Lead 26272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026273|126273|989898|1|9999026273|MR|Test|E|Lead 26273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026274|126274|989898|1|9999026274|MR|Test|E|Lead 26274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026275|126275|989898|1|9999026275|MR|Test|E|Lead 26275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026276|126276|989898|1|9999026276|MR|Test|E|Lead 26276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026277|126277|989898|1|9999026277|MR|Test|E|Lead 26277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026278|126278|989898|1|9999026278|MR|Test|E|Lead 26278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026279|126279|989898|1|9999026279|MR|Test|E|Lead 26279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026280|126280|989898|1|9999026280|MR|Test|E|Lead 26280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026281|126281|989898|1|9999026281|MR|Test|E|Lead 26281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026282|126282|989898|1|9999026282|MR|Test|E|Lead 26282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026283|126283|989898|1|9999026283|MR|Test|E|Lead 26283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026284|126284|989898|1|9999026284|MR|Test|E|Lead 26284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026285|126285|989898|1|9999026285|MR|Test|E|Lead 26285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026286|126286|989898|1|9999026286|MR|Test|E|Lead 26286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026287|126287|989898|1|9999026287|MR|Test|E|Lead 26287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026288|126288|989898|1|9999026288|MR|Test|E|Lead 26288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026289|126289|989898|1|9999026289|MR|Test|E|Lead 26289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026290|126290|989898|1|9999026290|MR|Test|E|Lead 26290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026291|126291|989898|1|9999026291|MR|Test|E|Lead 26291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026292|126292|989898|1|9999026292|MR|Test|E|Lead 26292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026293|126293|989898|1|9999026293|MR|Test|E|Lead 26293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026294|126294|989898|1|9999026294|MR|Test|E|Lead 26294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026295|126295|989898|1|9999026295|MR|Test|E|Lead 26295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026296|126296|989898|1|9999026296|MR|Test|E|Lead 26296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026297|126297|989898|1|9999026297|MR|Test|E|Lead 26297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026298|126298|989898|1|9999026298|MR|Test|E|Lead 26298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026299|126299|989898|1|9999026299|MR|Test|E|Lead 26299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026300|126300|989898|1|9999026300|MR|Test|E|Lead 26300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026301|126301|989898|1|9999026301|MR|Test|E|Lead 26301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026302|126302|989898|1|9999026302|MR|Test|E|Lead 26302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026303|126303|989898|1|9999026303|MR|Test|E|Lead 26303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026304|126304|989898|1|9999026304|MR|Test|E|Lead 26304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026305|126305|989898|1|9999026305|MR|Test|E|Lead 26305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026306|126306|989898|1|9999026306|MR|Test|E|Lead 26306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026307|126307|989898|1|9999026307|MR|Test|E|Lead 26307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026308|126308|989898|1|9999026308|MR|Test|E|Lead 26308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026309|126309|989898|1|9999026309|MR|Test|E|Lead 26309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026310|126310|989898|1|9999026310|MR|Test|E|Lead 26310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026311|126311|989898|1|9999026311|MR|Test|E|Lead 26311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026312|126312|989898|1|9999026312|MR|Test|E|Lead 26312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026313|126313|989898|1|9999026313|MR|Test|E|Lead 26313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026314|126314|989898|1|9999026314|MR|Test|E|Lead 26314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026315|126315|989898|1|9999026315|MR|Test|E|Lead 26315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026316|126316|989898|1|9999026316|MR|Test|E|Lead 26316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026317|126317|989898|1|9999026317|MR|Test|E|Lead 26317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026318|126318|989898|1|9999026318|MR|Test|E|Lead 26318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026319|126319|989898|1|9999026319|MR|Test|E|Lead 26319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026320|126320|989898|1|9999026320|MR|Test|E|Lead 26320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026321|126321|989898|1|9999026321|MR|Test|E|Lead 26321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026322|126322|989898|1|9999026322|MR|Test|E|Lead 26322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026323|126323|989898|1|9999026323|MR|Test|E|Lead 26323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026324|126324|989898|1|9999026324|MR|Test|E|Lead 26324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026325|126325|989898|1|9999026325|MR|Test|E|Lead 26325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026326|126326|989898|1|9999026326|MR|Test|E|Lead 26326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026327|126327|989898|1|9999026327|MR|Test|E|Lead 26327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026328|126328|989898|1|9999026328|MR|Test|E|Lead 26328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026329|126329|989898|1|9999026329|MR|Test|E|Lead 26329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026330|126330|989898|1|9999026330|MR|Test|E|Lead 26330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026331|126331|989898|1|9999026331|MR|Test|E|Lead 26331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026332|126332|989898|1|9999026332|MR|Test|E|Lead 26332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026333|126333|989898|1|9999026333|MR|Test|E|Lead 26333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026334|126334|989898|1|9999026334|MR|Test|E|Lead 26334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026335|126335|989898|1|9999026335|MR|Test|E|Lead 26335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026336|126336|989898|1|9999026336|MR|Test|E|Lead 26336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026337|126337|989898|1|9999026337|MR|Test|E|Lead 26337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026338|126338|989898|1|9999026338|MR|Test|E|Lead 26338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026339|126339|989898|1|9999026339|MR|Test|E|Lead 26339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026340|126340|989898|1|9999026340|MR|Test|E|Lead 26340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026341|126341|989898|1|9999026341|MR|Test|E|Lead 26341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026342|126342|989898|1|9999026342|MR|Test|E|Lead 26342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026343|126343|989898|1|9999026343|MR|Test|E|Lead 26343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026344|126344|989898|1|9999026344|MR|Test|E|Lead 26344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026345|126345|989898|1|9999026345|MR|Test|E|Lead 26345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026346|126346|989898|1|9999026346|MR|Test|E|Lead 26346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026347|126347|989898|1|9999026347|MR|Test|E|Lead 26347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026348|126348|989898|1|9999026348|MR|Test|E|Lead 26348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026349|126349|989898|1|9999026349|MR|Test|E|Lead 26349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026350|126350|989898|1|9999026350|MR|Test|E|Lead 26350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026351|126351|989898|1|9999026351|MR|Test|E|Lead 26351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026352|126352|989898|1|9999026352|MR|Test|E|Lead 26352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026353|126353|989898|1|9999026353|MR|Test|E|Lead 26353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026354|126354|989898|1|9999026354|MR|Test|E|Lead 26354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026355|126355|989898|1|9999026355|MR|Test|E|Lead 26355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026356|126356|989898|1|9999026356|MR|Test|E|Lead 26356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026357|126357|989898|1|9999026357|MR|Test|E|Lead 26357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026358|126358|989898|1|9999026358|MR|Test|E|Lead 26358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026359|126359|989898|1|9999026359|MR|Test|E|Lead 26359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026360|126360|989898|1|9999026360|MR|Test|E|Lead 26360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026361|126361|989898|1|9999026361|MR|Test|E|Lead 26361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026362|126362|989898|1|9999026362|MR|Test|E|Lead 26362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026363|126363|989898|1|9999026363|MR|Test|E|Lead 26363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026364|126364|989898|1|9999026364|MR|Test|E|Lead 26364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026365|126365|989898|1|9999026365|MR|Test|E|Lead 26365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026366|126366|989898|1|9999026366|MR|Test|E|Lead 26366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026367|126367|989898|1|9999026367|MR|Test|E|Lead 26367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026368|126368|989898|1|9999026368|MR|Test|E|Lead 26368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026369|126369|989898|1|9999026369|MR|Test|E|Lead 26369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026370|126370|989898|1|9999026370|MR|Test|E|Lead 26370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026371|126371|989898|1|9999026371|MR|Test|E|Lead 26371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026372|126372|989898|1|9999026372|MR|Test|E|Lead 26372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026373|126373|989898|1|9999026373|MR|Test|E|Lead 26373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026374|126374|989898|1|9999026374|MR|Test|E|Lead 26374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026375|126375|989898|1|9999026375|MR|Test|E|Lead 26375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026376|126376|989898|1|9999026376|MR|Test|E|Lead 26376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026377|126377|989898|1|9999026377|MR|Test|E|Lead 26377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026378|126378|989898|1|9999026378|MR|Test|E|Lead 26378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026379|126379|989898|1|9999026379|MR|Test|E|Lead 26379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026380|126380|989898|1|9999026380|MR|Test|E|Lead 26380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026381|126381|989898|1|9999026381|MR|Test|E|Lead 26381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026382|126382|989898|1|9999026382|MR|Test|E|Lead 26382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026383|126383|989898|1|9999026383|MR|Test|E|Lead 26383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026384|126384|989898|1|9999026384|MR|Test|E|Lead 26384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026385|126385|989898|1|9999026385|MR|Test|E|Lead 26385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026386|126386|989898|1|9999026386|MR|Test|E|Lead 26386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026387|126387|989898|1|9999026387|MR|Test|E|Lead 26387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026388|126388|989898|1|9999026388|MR|Test|E|Lead 26388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026389|126389|989898|1|9999026389|MR|Test|E|Lead 26389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026390|126390|989898|1|9999026390|MR|Test|E|Lead 26390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026391|126391|989898|1|9999026391|MR|Test|E|Lead 26391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026392|126392|989898|1|9999026392|MR|Test|E|Lead 26392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026393|126393|989898|1|9999026393|MR|Test|E|Lead 26393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026394|126394|989898|1|9999026394|MR|Test|E|Lead 26394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026395|126395|989898|1|9999026395|MR|Test|E|Lead 26395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026396|126396|989898|1|9999026396|MR|Test|E|Lead 26396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026397|126397|989898|1|9999026397|MR|Test|E|Lead 26397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026398|126398|989898|1|9999026398|MR|Test|E|Lead 26398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026399|126399|989898|1|9999026399|MR|Test|E|Lead 26399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026400|126400|989898|1|9999026400|MR|Test|E|Lead 26400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026401|126401|989898|1|9999026401|MR|Test|E|Lead 26401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026402|126402|989898|1|9999026402|MR|Test|E|Lead 26402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026403|126403|989898|1|9999026403|MR|Test|E|Lead 26403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026404|126404|989898|1|9999026404|MR|Test|E|Lead 26404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026405|126405|989898|1|9999026405|MR|Test|E|Lead 26405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026406|126406|989898|1|9999026406|MR|Test|E|Lead 26406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026407|126407|989898|1|9999026407|MR|Test|E|Lead 26407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026408|126408|989898|1|9999026408|MR|Test|E|Lead 26408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026409|126409|989898|1|9999026409|MR|Test|E|Lead 26409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026410|126410|989898|1|9999026410|MR|Test|E|Lead 26410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026411|126411|989898|1|9999026411|MR|Test|E|Lead 26411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026412|126412|989898|1|9999026412|MR|Test|E|Lead 26412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026413|126413|989898|1|9999026413|MR|Test|E|Lead 26413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026414|126414|989898|1|9999026414|MR|Test|E|Lead 26414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026415|126415|989898|1|9999026415|MR|Test|E|Lead 26415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026416|126416|989898|1|9999026416|MR|Test|E|Lead 26416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026417|126417|989898|1|9999026417|MR|Test|E|Lead 26417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026418|126418|989898|1|9999026418|MR|Test|E|Lead 26418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026419|126419|989898|1|9999026419|MR|Test|E|Lead 26419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026420|126420|989898|1|9999026420|MR|Test|E|Lead 26420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026421|126421|989898|1|9999026421|MR|Test|E|Lead 26421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026422|126422|989898|1|9999026422|MR|Test|E|Lead 26422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026423|126423|989898|1|9999026423|MR|Test|E|Lead 26423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026424|126424|989898|1|9999026424|MR|Test|E|Lead 26424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026425|126425|989898|1|9999026425|MR|Test|E|Lead 26425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026426|126426|989898|1|9999026426|MR|Test|E|Lead 26426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026427|126427|989898|1|9999026427|MR|Test|E|Lead 26427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026428|126428|989898|1|9999026428|MR|Test|E|Lead 26428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026429|126429|989898|1|9999026429|MR|Test|E|Lead 26429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026430|126430|989898|1|9999026430|MR|Test|E|Lead 26430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026431|126431|989898|1|9999026431|MR|Test|E|Lead 26431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026432|126432|989898|1|9999026432|MR|Test|E|Lead 26432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026433|126433|989898|1|9999026433|MR|Test|E|Lead 26433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026434|126434|989898|1|9999026434|MR|Test|E|Lead 26434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026435|126435|989898|1|9999026435|MR|Test|E|Lead 26435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026436|126436|989898|1|9999026436|MR|Test|E|Lead 26436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026437|126437|989898|1|9999026437|MR|Test|E|Lead 26437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026438|126438|989898|1|9999026438|MR|Test|E|Lead 26438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026439|126439|989898|1|9999026439|MR|Test|E|Lead 26439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026440|126440|989898|1|9999026440|MR|Test|E|Lead 26440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026441|126441|989898|1|9999026441|MR|Test|E|Lead 26441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026442|126442|989898|1|9999026442|MR|Test|E|Lead 26442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026443|126443|989898|1|9999026443|MR|Test|E|Lead 26443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026444|126444|989898|1|9999026444|MR|Test|E|Lead 26444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026445|126445|989898|1|9999026445|MR|Test|E|Lead 26445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026446|126446|989898|1|9999026446|MR|Test|E|Lead 26446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026447|126447|989898|1|9999026447|MR|Test|E|Lead 26447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026448|126448|989898|1|9999026448|MR|Test|E|Lead 26448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026449|126449|989898|1|9999026449|MR|Test|E|Lead 26449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026450|126450|989898|1|9999026450|MR|Test|E|Lead 26450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026451|126451|989898|1|9999026451|MR|Test|E|Lead 26451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026452|126452|989898|1|9999026452|MR|Test|E|Lead 26452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026453|126453|989898|1|9999026453|MR|Test|E|Lead 26453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026454|126454|989898|1|9999026454|MR|Test|E|Lead 26454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026455|126455|989898|1|9999026455|MR|Test|E|Lead 26455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026456|126456|989898|1|9999026456|MR|Test|E|Lead 26456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026457|126457|989898|1|9999026457|MR|Test|E|Lead 26457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026458|126458|989898|1|9999026458|MR|Test|E|Lead 26458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026459|126459|989898|1|9999026459|MR|Test|E|Lead 26459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026460|126460|989898|1|9999026460|MR|Test|E|Lead 26460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026461|126461|989898|1|9999026461|MR|Test|E|Lead 26461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026462|126462|989898|1|9999026462|MR|Test|E|Lead 26462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026463|126463|989898|1|9999026463|MR|Test|E|Lead 26463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026464|126464|989898|1|9999026464|MR|Test|E|Lead 26464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026465|126465|989898|1|9999026465|MR|Test|E|Lead 26465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026466|126466|989898|1|9999026466|MR|Test|E|Lead 26466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026467|126467|989898|1|9999026467|MR|Test|E|Lead 26467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026468|126468|989898|1|9999026468|MR|Test|E|Lead 26468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026469|126469|989898|1|9999026469|MR|Test|E|Lead 26469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026470|126470|989898|1|9999026470|MR|Test|E|Lead 26470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026471|126471|989898|1|9999026471|MR|Test|E|Lead 26471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026472|126472|989898|1|9999026472|MR|Test|E|Lead 26472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026473|126473|989898|1|9999026473|MR|Test|E|Lead 26473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026474|126474|989898|1|9999026474|MR|Test|E|Lead 26474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026475|126475|989898|1|9999026475|MR|Test|E|Lead 26475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026476|126476|989898|1|9999026476|MR|Test|E|Lead 26476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026477|126477|989898|1|9999026477|MR|Test|E|Lead 26477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026478|126478|989898|1|9999026478|MR|Test|E|Lead 26478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026479|126479|989898|1|9999026479|MR|Test|E|Lead 26479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026480|126480|989898|1|9999026480|MR|Test|E|Lead 26480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026481|126481|989898|1|9999026481|MR|Test|E|Lead 26481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026482|126482|989898|1|9999026482|MR|Test|E|Lead 26482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026483|126483|989898|1|9999026483|MR|Test|E|Lead 26483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026484|126484|989898|1|9999026484|MR|Test|E|Lead 26484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026485|126485|989898|1|9999026485|MR|Test|E|Lead 26485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026486|126486|989898|1|9999026486|MR|Test|E|Lead 26486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026487|126487|989898|1|9999026487|MR|Test|E|Lead 26487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026488|126488|989898|1|9999026488|MR|Test|E|Lead 26488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026489|126489|989898|1|9999026489|MR|Test|E|Lead 26489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026490|126490|989898|1|9999026490|MR|Test|E|Lead 26490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026491|126491|989898|1|9999026491|MR|Test|E|Lead 26491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026492|126492|989898|1|9999026492|MR|Test|E|Lead 26492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026493|126493|989898|1|9999026493|MR|Test|E|Lead 26493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026494|126494|989898|1|9999026494|MR|Test|E|Lead 26494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026495|126495|989898|1|9999026495|MR|Test|E|Lead 26495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026496|126496|989898|1|9999026496|MR|Test|E|Lead 26496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026497|126497|989898|1|9999026497|MR|Test|E|Lead 26497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026498|126498|989898|1|9999026498|MR|Test|E|Lead 26498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026499|126499|989898|1|9999026499|MR|Test|E|Lead 26499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026500|126500|989898|1|9999026500|MR|Test|E|Lead 26500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026501|126501|989898|1|9999026501|MR|Test|E|Lead 26501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026502|126502|989898|1|9999026502|MR|Test|E|Lead 26502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026503|126503|989898|1|9999026503|MR|Test|E|Lead 26503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026504|126504|989898|1|9999026504|MR|Test|E|Lead 26504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026505|126505|989898|1|9999026505|MR|Test|E|Lead 26505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026506|126506|989898|1|9999026506|MR|Test|E|Lead 26506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026507|126507|989898|1|9999026507|MR|Test|E|Lead 26507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026508|126508|989898|1|9999026508|MR|Test|E|Lead 26508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026509|126509|989898|1|9999026509|MR|Test|E|Lead 26509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026510|126510|989898|1|9999026510|MR|Test|E|Lead 26510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026511|126511|989898|1|9999026511|MR|Test|E|Lead 26511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026512|126512|989898|1|9999026512|MR|Test|E|Lead 26512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026513|126513|989898|1|9999026513|MR|Test|E|Lead 26513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026514|126514|989898|1|9999026514|MR|Test|E|Lead 26514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026515|126515|989898|1|9999026515|MR|Test|E|Lead 26515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026516|126516|989898|1|9999026516|MR|Test|E|Lead 26516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026517|126517|989898|1|9999026517|MR|Test|E|Lead 26517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026518|126518|989898|1|9999026518|MR|Test|E|Lead 26518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026519|126519|989898|1|9999026519|MR|Test|E|Lead 26519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026520|126520|989898|1|9999026520|MR|Test|E|Lead 26520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026521|126521|989898|1|9999026521|MR|Test|E|Lead 26521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026522|126522|989898|1|9999026522|MR|Test|E|Lead 26522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026523|126523|989898|1|9999026523|MR|Test|E|Lead 26523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026524|126524|989898|1|9999026524|MR|Test|E|Lead 26524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026525|126525|989898|1|9999026525|MR|Test|E|Lead 26525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026526|126526|989898|1|9999026526|MR|Test|E|Lead 26526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026527|126527|989898|1|9999026527|MR|Test|E|Lead 26527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026528|126528|989898|1|9999026528|MR|Test|E|Lead 26528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026529|126529|989898|1|9999026529|MR|Test|E|Lead 26529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026530|126530|989898|1|9999026530|MR|Test|E|Lead 26530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026531|126531|989898|1|9999026531|MR|Test|E|Lead 26531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026532|126532|989898|1|9999026532|MR|Test|E|Lead 26532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026533|126533|989898|1|9999026533|MR|Test|E|Lead 26533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026534|126534|989898|1|9999026534|MR|Test|E|Lead 26534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026535|126535|989898|1|9999026535|MR|Test|E|Lead 26535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026536|126536|989898|1|9999026536|MR|Test|E|Lead 26536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026537|126537|989898|1|9999026537|MR|Test|E|Lead 26537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026538|126538|989898|1|9999026538|MR|Test|E|Lead 26538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026539|126539|989898|1|9999026539|MR|Test|E|Lead 26539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026540|126540|989898|1|9999026540|MR|Test|E|Lead 26540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026541|126541|989898|1|9999026541|MR|Test|E|Lead 26541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026542|126542|989898|1|9999026542|MR|Test|E|Lead 26542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026543|126543|989898|1|9999026543|MR|Test|E|Lead 26543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026544|126544|989898|1|9999026544|MR|Test|E|Lead 26544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026545|126545|989898|1|9999026545|MR|Test|E|Lead 26545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026546|126546|989898|1|9999026546|MR|Test|E|Lead 26546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026547|126547|989898|1|9999026547|MR|Test|E|Lead 26547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026548|126548|989898|1|9999026548|MR|Test|E|Lead 26548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026549|126549|989898|1|9999026549|MR|Test|E|Lead 26549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026550|126550|989898|1|9999026550|MR|Test|E|Lead 26550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026551|126551|989898|1|9999026551|MR|Test|E|Lead 26551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026552|126552|989898|1|9999026552|MR|Test|E|Lead 26552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026553|126553|989898|1|9999026553|MR|Test|E|Lead 26553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026554|126554|989898|1|9999026554|MR|Test|E|Lead 26554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026555|126555|989898|1|9999026555|MR|Test|E|Lead 26555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026556|126556|989898|1|9999026556|MR|Test|E|Lead 26556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026557|126557|989898|1|9999026557|MR|Test|E|Lead 26557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026558|126558|989898|1|9999026558|MR|Test|E|Lead 26558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026559|126559|989898|1|9999026559|MR|Test|E|Lead 26559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026560|126560|989898|1|9999026560|MR|Test|E|Lead 26560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026561|126561|989898|1|9999026561|MR|Test|E|Lead 26561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026562|126562|989898|1|9999026562|MR|Test|E|Lead 26562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026563|126563|989898|1|9999026563|MR|Test|E|Lead 26563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026564|126564|989898|1|9999026564|MR|Test|E|Lead 26564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026565|126565|989898|1|9999026565|MR|Test|E|Lead 26565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026566|126566|989898|1|9999026566|MR|Test|E|Lead 26566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026567|126567|989898|1|9999026567|MR|Test|E|Lead 26567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026568|126568|989898|1|9999026568|MR|Test|E|Lead 26568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026569|126569|989898|1|9999026569|MR|Test|E|Lead 26569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026570|126570|989898|1|9999026570|MR|Test|E|Lead 26570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026571|126571|989898|1|9999026571|MR|Test|E|Lead 26571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026572|126572|989898|1|9999026572|MR|Test|E|Lead 26572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026573|126573|989898|1|9999026573|MR|Test|E|Lead 26573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026574|126574|989898|1|9999026574|MR|Test|E|Lead 26574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026575|126575|989898|1|9999026575|MR|Test|E|Lead 26575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026576|126576|989898|1|9999026576|MR|Test|E|Lead 26576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026577|126577|989898|1|9999026577|MR|Test|E|Lead 26577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026578|126578|989898|1|9999026578|MR|Test|E|Lead 26578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026579|126579|989898|1|9999026579|MR|Test|E|Lead 26579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026580|126580|989898|1|9999026580|MR|Test|E|Lead 26580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026581|126581|989898|1|9999026581|MR|Test|E|Lead 26581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026582|126582|989898|1|9999026582|MR|Test|E|Lead 26582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026583|126583|989898|1|9999026583|MR|Test|E|Lead 26583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026584|126584|989898|1|9999026584|MR|Test|E|Lead 26584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026585|126585|989898|1|9999026585|MR|Test|E|Lead 26585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026586|126586|989898|1|9999026586|MR|Test|E|Lead 26586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026587|126587|989898|1|9999026587|MR|Test|E|Lead 26587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026588|126588|989898|1|9999026588|MR|Test|E|Lead 26588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026589|126589|989898|1|9999026589|MR|Test|E|Lead 26589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026590|126590|989898|1|9999026590|MR|Test|E|Lead 26590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026591|126591|989898|1|9999026591|MR|Test|E|Lead 26591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026592|126592|989898|1|9999026592|MR|Test|E|Lead 26592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026593|126593|989898|1|9999026593|MR|Test|E|Lead 26593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026594|126594|989898|1|9999026594|MR|Test|E|Lead 26594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026595|126595|989898|1|9999026595|MR|Test|E|Lead 26595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026596|126596|989898|1|9999026596|MR|Test|E|Lead 26596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026597|126597|989898|1|9999026597|MR|Test|E|Lead 26597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026598|126598|989898|1|9999026598|MR|Test|E|Lead 26598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026599|126599|989898|1|9999026599|MR|Test|E|Lead 26599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026600|126600|989898|1|9999026600|MR|Test|E|Lead 26600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026601|126601|989898|1|9999026601|MR|Test|E|Lead 26601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026602|126602|989898|1|9999026602|MR|Test|E|Lead 26602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026603|126603|989898|1|9999026603|MR|Test|E|Lead 26603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026604|126604|989898|1|9999026604|MR|Test|E|Lead 26604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026605|126605|989898|1|9999026605|MR|Test|E|Lead 26605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026606|126606|989898|1|9999026606|MR|Test|E|Lead 26606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026607|126607|989898|1|9999026607|MR|Test|E|Lead 26607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026608|126608|989898|1|9999026608|MR|Test|E|Lead 26608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026609|126609|989898|1|9999026609|MR|Test|E|Lead 26609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026610|126610|989898|1|9999026610|MR|Test|E|Lead 26610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026611|126611|989898|1|9999026611|MR|Test|E|Lead 26611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026612|126612|989898|1|9999026612|MR|Test|E|Lead 26612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026613|126613|989898|1|9999026613|MR|Test|E|Lead 26613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026614|126614|989898|1|9999026614|MR|Test|E|Lead 26614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026615|126615|989898|1|9999026615|MR|Test|E|Lead 26615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026616|126616|989898|1|9999026616|MR|Test|E|Lead 26616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026617|126617|989898|1|9999026617|MR|Test|E|Lead 26617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026618|126618|989898|1|9999026618|MR|Test|E|Lead 26618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026619|126619|989898|1|9999026619|MR|Test|E|Lead 26619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026620|126620|989898|1|9999026620|MR|Test|E|Lead 26620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026621|126621|989898|1|9999026621|MR|Test|E|Lead 26621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026622|126622|989898|1|9999026622|MR|Test|E|Lead 26622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026623|126623|989898|1|9999026623|MR|Test|E|Lead 26623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026624|126624|989898|1|9999026624|MR|Test|E|Lead 26624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026625|126625|989898|1|9999026625|MR|Test|E|Lead 26625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026626|126626|989898|1|9999026626|MR|Test|E|Lead 26626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026627|126627|989898|1|9999026627|MR|Test|E|Lead 26627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026628|126628|989898|1|9999026628|MR|Test|E|Lead 26628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026629|126629|989898|1|9999026629|MR|Test|E|Lead 26629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026630|126630|989898|1|9999026630|MR|Test|E|Lead 26630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026631|126631|989898|1|9999026631|MR|Test|E|Lead 26631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026632|126632|989898|1|9999026632|MR|Test|E|Lead 26632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026633|126633|989898|1|9999026633|MR|Test|E|Lead 26633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026634|126634|989898|1|9999026634|MR|Test|E|Lead 26634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026635|126635|989898|1|9999026635|MR|Test|E|Lead 26635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026636|126636|989898|1|9999026636|MR|Test|E|Lead 26636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026637|126637|989898|1|9999026637|MR|Test|E|Lead 26637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026638|126638|989898|1|9999026638|MR|Test|E|Lead 26638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026639|126639|989898|1|9999026639|MR|Test|E|Lead 26639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026640|126640|989898|1|9999026640|MR|Test|E|Lead 26640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026641|126641|989898|1|9999026641|MR|Test|E|Lead 26641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026642|126642|989898|1|9999026642|MR|Test|E|Lead 26642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026643|126643|989898|1|9999026643|MR|Test|E|Lead 26643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026644|126644|989898|1|9999026644|MR|Test|E|Lead 26644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026645|126645|989898|1|9999026645|MR|Test|E|Lead 26645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026646|126646|989898|1|9999026646|MR|Test|E|Lead 26646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026647|126647|989898|1|9999026647|MR|Test|E|Lead 26647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026648|126648|989898|1|9999026648|MR|Test|E|Lead 26648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026649|126649|989898|1|9999026649|MR|Test|E|Lead 26649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026650|126650|989898|1|9999026650|MR|Test|E|Lead 26650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026651|126651|989898|1|9999026651|MR|Test|E|Lead 26651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026652|126652|989898|1|9999026652|MR|Test|E|Lead 26652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026653|126653|989898|1|9999026653|MR|Test|E|Lead 26653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026654|126654|989898|1|9999026654|MR|Test|E|Lead 26654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026655|126655|989898|1|9999026655|MR|Test|E|Lead 26655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026656|126656|989898|1|9999026656|MR|Test|E|Lead 26656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026657|126657|989898|1|9999026657|MR|Test|E|Lead 26657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026658|126658|989898|1|9999026658|MR|Test|E|Lead 26658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026659|126659|989898|1|9999026659|MR|Test|E|Lead 26659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026660|126660|989898|1|9999026660|MR|Test|E|Lead 26660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026661|126661|989898|1|9999026661|MR|Test|E|Lead 26661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026662|126662|989898|1|9999026662|MR|Test|E|Lead 26662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026663|126663|989898|1|9999026663|MR|Test|E|Lead 26663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026664|126664|989898|1|9999026664|MR|Test|E|Lead 26664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026665|126665|989898|1|9999026665|MR|Test|E|Lead 26665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026666|126666|989898|1|9999026666|MR|Test|E|Lead 26666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026667|126667|989898|1|9999026667|MR|Test|E|Lead 26667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026668|126668|989898|1|9999026668|MR|Test|E|Lead 26668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026669|126669|989898|1|9999026669|MR|Test|E|Lead 26669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026670|126670|989898|1|9999026670|MR|Test|E|Lead 26670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026671|126671|989898|1|9999026671|MR|Test|E|Lead 26671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026672|126672|989898|1|9999026672|MR|Test|E|Lead 26672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026673|126673|989898|1|9999026673|MR|Test|E|Lead 26673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026674|126674|989898|1|9999026674|MR|Test|E|Lead 26674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026675|126675|989898|1|9999026675|MR|Test|E|Lead 26675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026676|126676|989898|1|9999026676|MR|Test|E|Lead 26676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026677|126677|989898|1|9999026677|MR|Test|E|Lead 26677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026678|126678|989898|1|9999026678|MR|Test|E|Lead 26678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026679|126679|989898|1|9999026679|MR|Test|E|Lead 26679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026680|126680|989898|1|9999026680|MR|Test|E|Lead 26680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026681|126681|989898|1|9999026681|MR|Test|E|Lead 26681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026682|126682|989898|1|9999026682|MR|Test|E|Lead 26682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026683|126683|989898|1|9999026683|MR|Test|E|Lead 26683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026684|126684|989898|1|9999026684|MR|Test|E|Lead 26684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026685|126685|989898|1|9999026685|MR|Test|E|Lead 26685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026686|126686|989898|1|9999026686|MR|Test|E|Lead 26686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026687|126687|989898|1|9999026687|MR|Test|E|Lead 26687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026688|126688|989898|1|9999026688|MR|Test|E|Lead 26688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026689|126689|989898|1|9999026689|MR|Test|E|Lead 26689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026690|126690|989898|1|9999026690|MR|Test|E|Lead 26690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026691|126691|989898|1|9999026691|MR|Test|E|Lead 26691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026692|126692|989898|1|9999026692|MR|Test|E|Lead 26692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026693|126693|989898|1|9999026693|MR|Test|E|Lead 26693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026694|126694|989898|1|9999026694|MR|Test|E|Lead 26694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026695|126695|989898|1|9999026695|MR|Test|E|Lead 26695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026696|126696|989898|1|9999026696|MR|Test|E|Lead 26696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026697|126697|989898|1|9999026697|MR|Test|E|Lead 26697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026698|126698|989898|1|9999026698|MR|Test|E|Lead 26698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026699|126699|989898|1|9999026699|MR|Test|E|Lead 26699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026700|126700|989898|1|9999026700|MR|Test|E|Lead 26700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026701|126701|989898|1|9999026701|MR|Test|E|Lead 26701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026702|126702|989898|1|9999026702|MR|Test|E|Lead 26702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026703|126703|989898|1|9999026703|MR|Test|E|Lead 26703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026704|126704|989898|1|9999026704|MR|Test|E|Lead 26704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026705|126705|989898|1|9999026705|MR|Test|E|Lead 26705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026706|126706|989898|1|9999026706|MR|Test|E|Lead 26706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026707|126707|989898|1|9999026707|MR|Test|E|Lead 26707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026708|126708|989898|1|9999026708|MR|Test|E|Lead 26708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026709|126709|989898|1|9999026709|MR|Test|E|Lead 26709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026710|126710|989898|1|9999026710|MR|Test|E|Lead 26710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026711|126711|989898|1|9999026711|MR|Test|E|Lead 26711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026712|126712|989898|1|9999026712|MR|Test|E|Lead 26712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026713|126713|989898|1|9999026713|MR|Test|E|Lead 26713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026714|126714|989898|1|9999026714|MR|Test|E|Lead 26714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026715|126715|989898|1|9999026715|MR|Test|E|Lead 26715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026716|126716|989898|1|9999026716|MR|Test|E|Lead 26716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026717|126717|989898|1|9999026717|MR|Test|E|Lead 26717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026718|126718|989898|1|9999026718|MR|Test|E|Lead 26718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026719|126719|989898|1|9999026719|MR|Test|E|Lead 26719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026720|126720|989898|1|9999026720|MR|Test|E|Lead 26720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026721|126721|989898|1|9999026721|MR|Test|E|Lead 26721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026722|126722|989898|1|9999026722|MR|Test|E|Lead 26722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026723|126723|989898|1|9999026723|MR|Test|E|Lead 26723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026724|126724|989898|1|9999026724|MR|Test|E|Lead 26724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026725|126725|989898|1|9999026725|MR|Test|E|Lead 26725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026726|126726|989898|1|9999026726|MR|Test|E|Lead 26726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026727|126727|989898|1|9999026727|MR|Test|E|Lead 26727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026728|126728|989898|1|9999026728|MR|Test|E|Lead 26728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026729|126729|989898|1|9999026729|MR|Test|E|Lead 26729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026730|126730|989898|1|9999026730|MR|Test|E|Lead 26730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026731|126731|989898|1|9999026731|MR|Test|E|Lead 26731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026732|126732|989898|1|9999026732|MR|Test|E|Lead 26732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026733|126733|989898|1|9999026733|MR|Test|E|Lead 26733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026734|126734|989898|1|9999026734|MR|Test|E|Lead 26734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026735|126735|989898|1|9999026735|MR|Test|E|Lead 26735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026736|126736|989898|1|9999026736|MR|Test|E|Lead 26736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026737|126737|989898|1|9999026737|MR|Test|E|Lead 26737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026738|126738|989898|1|9999026738|MR|Test|E|Lead 26738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026739|126739|989898|1|9999026739|MR|Test|E|Lead 26739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026740|126740|989898|1|9999026740|MR|Test|E|Lead 26740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026741|126741|989898|1|9999026741|MR|Test|E|Lead 26741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026742|126742|989898|1|9999026742|MR|Test|E|Lead 26742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026743|126743|989898|1|9999026743|MR|Test|E|Lead 26743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026744|126744|989898|1|9999026744|MR|Test|E|Lead 26744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026745|126745|989898|1|9999026745|MR|Test|E|Lead 26745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026746|126746|989898|1|9999026746|MR|Test|E|Lead 26746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026747|126747|989898|1|9999026747|MR|Test|E|Lead 26747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026748|126748|989898|1|9999026748|MR|Test|E|Lead 26748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026749|126749|989898|1|9999026749|MR|Test|E|Lead 26749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026750|126750|989898|1|9999026750|MR|Test|E|Lead 26750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026751|126751|989898|1|9999026751|MR|Test|E|Lead 26751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026752|126752|989898|1|9999026752|MR|Test|E|Lead 26752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026753|126753|989898|1|9999026753|MR|Test|E|Lead 26753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026754|126754|989898|1|9999026754|MR|Test|E|Lead 26754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026755|126755|989898|1|9999026755|MR|Test|E|Lead 26755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026756|126756|989898|1|9999026756|MR|Test|E|Lead 26756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026757|126757|989898|1|9999026757|MR|Test|E|Lead 26757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026758|126758|989898|1|9999026758|MR|Test|E|Lead 26758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026759|126759|989898|1|9999026759|MR|Test|E|Lead 26759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026760|126760|989898|1|9999026760|MR|Test|E|Lead 26760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026761|126761|989898|1|9999026761|MR|Test|E|Lead 26761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026762|126762|989898|1|9999026762|MR|Test|E|Lead 26762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026763|126763|989898|1|9999026763|MR|Test|E|Lead 26763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026764|126764|989898|1|9999026764|MR|Test|E|Lead 26764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026765|126765|989898|1|9999026765|MR|Test|E|Lead 26765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026766|126766|989898|1|9999026766|MR|Test|E|Lead 26766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026767|126767|989898|1|9999026767|MR|Test|E|Lead 26767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026768|126768|989898|1|9999026768|MR|Test|E|Lead 26768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026769|126769|989898|1|9999026769|MR|Test|E|Lead 26769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026770|126770|989898|1|9999026770|MR|Test|E|Lead 26770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026771|126771|989898|1|9999026771|MR|Test|E|Lead 26771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026772|126772|989898|1|9999026772|MR|Test|E|Lead 26772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026773|126773|989898|1|9999026773|MR|Test|E|Lead 26773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026774|126774|989898|1|9999026774|MR|Test|E|Lead 26774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026775|126775|989898|1|9999026775|MR|Test|E|Lead 26775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026776|126776|989898|1|9999026776|MR|Test|E|Lead 26776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026777|126777|989898|1|9999026777|MR|Test|E|Lead 26777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026778|126778|989898|1|9999026778|MR|Test|E|Lead 26778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026779|126779|989898|1|9999026779|MR|Test|E|Lead 26779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026780|126780|989898|1|9999026780|MR|Test|E|Lead 26780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026781|126781|989898|1|9999026781|MR|Test|E|Lead 26781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026782|126782|989898|1|9999026782|MR|Test|E|Lead 26782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026783|126783|989898|1|9999026783|MR|Test|E|Lead 26783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026784|126784|989898|1|9999026784|MR|Test|E|Lead 26784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026785|126785|989898|1|9999026785|MR|Test|E|Lead 26785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026786|126786|989898|1|9999026786|MR|Test|E|Lead 26786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026787|126787|989898|1|9999026787|MR|Test|E|Lead 26787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026788|126788|989898|1|9999026788|MR|Test|E|Lead 26788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026789|126789|989898|1|9999026789|MR|Test|E|Lead 26789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026790|126790|989898|1|9999026790|MR|Test|E|Lead 26790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026791|126791|989898|1|9999026791|MR|Test|E|Lead 26791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026792|126792|989898|1|9999026792|MR|Test|E|Lead 26792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026793|126793|989898|1|9999026793|MR|Test|E|Lead 26793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026794|126794|989898|1|9999026794|MR|Test|E|Lead 26794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026795|126795|989898|1|9999026795|MR|Test|E|Lead 26795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026796|126796|989898|1|9999026796|MR|Test|E|Lead 26796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026797|126797|989898|1|9999026797|MR|Test|E|Lead 26797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026798|126798|989898|1|9999026798|MR|Test|E|Lead 26798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026799|126799|989898|1|9999026799|MR|Test|E|Lead 26799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026800|126800|989898|1|9999026800|MR|Test|E|Lead 26800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026801|126801|989898|1|9999026801|MR|Test|E|Lead 26801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026802|126802|989898|1|9999026802|MR|Test|E|Lead 26802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026803|126803|989898|1|9999026803|MR|Test|E|Lead 26803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026804|126804|989898|1|9999026804|MR|Test|E|Lead 26804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026805|126805|989898|1|9999026805|MR|Test|E|Lead 26805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026806|126806|989898|1|9999026806|MR|Test|E|Lead 26806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026807|126807|989898|1|9999026807|MR|Test|E|Lead 26807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026808|126808|989898|1|9999026808|MR|Test|E|Lead 26808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026809|126809|989898|1|9999026809|MR|Test|E|Lead 26809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026810|126810|989898|1|9999026810|MR|Test|E|Lead 26810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026811|126811|989898|1|9999026811|MR|Test|E|Lead 26811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026812|126812|989898|1|9999026812|MR|Test|E|Lead 26812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026813|126813|989898|1|9999026813|MR|Test|E|Lead 26813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026814|126814|989898|1|9999026814|MR|Test|E|Lead 26814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026815|126815|989898|1|9999026815|MR|Test|E|Lead 26815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026816|126816|989898|1|9999026816|MR|Test|E|Lead 26816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026817|126817|989898|1|9999026817|MR|Test|E|Lead 26817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026818|126818|989898|1|9999026818|MR|Test|E|Lead 26818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026819|126819|989898|1|9999026819|MR|Test|E|Lead 26819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026820|126820|989898|1|9999026820|MR|Test|E|Lead 26820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026821|126821|989898|1|9999026821|MR|Test|E|Lead 26821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026822|126822|989898|1|9999026822|MR|Test|E|Lead 26822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026823|126823|989898|1|9999026823|MR|Test|E|Lead 26823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026824|126824|989898|1|9999026824|MR|Test|E|Lead 26824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026825|126825|989898|1|9999026825|MR|Test|E|Lead 26825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026826|126826|989898|1|9999026826|MR|Test|E|Lead 26826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026827|126827|989898|1|9999026827|MR|Test|E|Lead 26827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026828|126828|989898|1|9999026828|MR|Test|E|Lead 26828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026829|126829|989898|1|9999026829|MR|Test|E|Lead 26829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026830|126830|989898|1|9999026830|MR|Test|E|Lead 26830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026831|126831|989898|1|9999026831|MR|Test|E|Lead 26831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026832|126832|989898|1|9999026832|MR|Test|E|Lead 26832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026833|126833|989898|1|9999026833|MR|Test|E|Lead 26833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026834|126834|989898|1|9999026834|MR|Test|E|Lead 26834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026835|126835|989898|1|9999026835|MR|Test|E|Lead 26835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026836|126836|989898|1|9999026836|MR|Test|E|Lead 26836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026837|126837|989898|1|9999026837|MR|Test|E|Lead 26837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026838|126838|989898|1|9999026838|MR|Test|E|Lead 26838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026839|126839|989898|1|9999026839|MR|Test|E|Lead 26839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026840|126840|989898|1|9999026840|MR|Test|E|Lead 26840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026841|126841|989898|1|9999026841|MR|Test|E|Lead 26841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026842|126842|989898|1|9999026842|MR|Test|E|Lead 26842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026843|126843|989898|1|9999026843|MR|Test|E|Lead 26843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026844|126844|989898|1|9999026844|MR|Test|E|Lead 26844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026845|126845|989898|1|9999026845|MR|Test|E|Lead 26845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026846|126846|989898|1|9999026846|MR|Test|E|Lead 26846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026847|126847|989898|1|9999026847|MR|Test|E|Lead 26847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026848|126848|989898|1|9999026848|MR|Test|E|Lead 26848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026849|126849|989898|1|9999026849|MR|Test|E|Lead 26849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026850|126850|989898|1|9999026850|MR|Test|E|Lead 26850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026851|126851|989898|1|9999026851|MR|Test|E|Lead 26851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026852|126852|989898|1|9999026852|MR|Test|E|Lead 26852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026853|126853|989898|1|9999026853|MR|Test|E|Lead 26853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026854|126854|989898|1|9999026854|MR|Test|E|Lead 26854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026855|126855|989898|1|9999026855|MR|Test|E|Lead 26855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026856|126856|989898|1|9999026856|MR|Test|E|Lead 26856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026857|126857|989898|1|9999026857|MR|Test|E|Lead 26857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026858|126858|989898|1|9999026858|MR|Test|E|Lead 26858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026859|126859|989898|1|9999026859|MR|Test|E|Lead 26859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026860|126860|989898|1|9999026860|MR|Test|E|Lead 26860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026861|126861|989898|1|9999026861|MR|Test|E|Lead 26861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026862|126862|989898|1|9999026862|MR|Test|E|Lead 26862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026863|126863|989898|1|9999026863|MR|Test|E|Lead 26863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026864|126864|989898|1|9999026864|MR|Test|E|Lead 26864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026865|126865|989898|1|9999026865|MR|Test|E|Lead 26865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026866|126866|989898|1|9999026866|MR|Test|E|Lead 26866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026867|126867|989898|1|9999026867|MR|Test|E|Lead 26867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026868|126868|989898|1|9999026868|MR|Test|E|Lead 26868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026869|126869|989898|1|9999026869|MR|Test|E|Lead 26869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026870|126870|989898|1|9999026870|MR|Test|E|Lead 26870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026871|126871|989898|1|9999026871|MR|Test|E|Lead 26871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026872|126872|989898|1|9999026872|MR|Test|E|Lead 26872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026873|126873|989898|1|9999026873|MR|Test|E|Lead 26873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026874|126874|989898|1|9999026874|MR|Test|E|Lead 26874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026875|126875|989898|1|9999026875|MR|Test|E|Lead 26875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026876|126876|989898|1|9999026876|MR|Test|E|Lead 26876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026877|126877|989898|1|9999026877|MR|Test|E|Lead 26877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026878|126878|989898|1|9999026878|MR|Test|E|Lead 26878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026879|126879|989898|1|9999026879|MR|Test|E|Lead 26879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026880|126880|989898|1|9999026880|MR|Test|E|Lead 26880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026881|126881|989898|1|9999026881|MR|Test|E|Lead 26881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026882|126882|989898|1|9999026882|MR|Test|E|Lead 26882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026883|126883|989898|1|9999026883|MR|Test|E|Lead 26883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026884|126884|989898|1|9999026884|MR|Test|E|Lead 26884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026885|126885|989898|1|9999026885|MR|Test|E|Lead 26885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026886|126886|989898|1|9999026886|MR|Test|E|Lead 26886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026887|126887|989898|1|9999026887|MR|Test|E|Lead 26887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026888|126888|989898|1|9999026888|MR|Test|E|Lead 26888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026889|126889|989898|1|9999026889|MR|Test|E|Lead 26889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026890|126890|989898|1|9999026890|MR|Test|E|Lead 26890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026891|126891|989898|1|9999026891|MR|Test|E|Lead 26891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026892|126892|989898|1|9999026892|MR|Test|E|Lead 26892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026893|126893|989898|1|9999026893|MR|Test|E|Lead 26893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026894|126894|989898|1|9999026894|MR|Test|E|Lead 26894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026895|126895|989898|1|9999026895|MR|Test|E|Lead 26895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026896|126896|989898|1|9999026896|MR|Test|E|Lead 26896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026897|126897|989898|1|9999026897|MR|Test|E|Lead 26897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026898|126898|989898|1|9999026898|MR|Test|E|Lead 26898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026899|126899|989898|1|9999026899|MR|Test|E|Lead 26899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026900|126900|989898|1|9999026900|MR|Test|E|Lead 26900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026901|126901|989898|1|9999026901|MR|Test|E|Lead 26901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026902|126902|989898|1|9999026902|MR|Test|E|Lead 26902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026903|126903|989898|1|9999026903|MR|Test|E|Lead 26903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026904|126904|989898|1|9999026904|MR|Test|E|Lead 26904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026905|126905|989898|1|9999026905|MR|Test|E|Lead 26905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026906|126906|989898|1|9999026906|MR|Test|E|Lead 26906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026907|126907|989898|1|9999026907|MR|Test|E|Lead 26907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026908|126908|989898|1|9999026908|MR|Test|E|Lead 26908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026909|126909|989898|1|9999026909|MR|Test|E|Lead 26909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026910|126910|989898|1|9999026910|MR|Test|E|Lead 26910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026911|126911|989898|1|9999026911|MR|Test|E|Lead 26911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026912|126912|989898|1|9999026912|MR|Test|E|Lead 26912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026913|126913|989898|1|9999026913|MR|Test|E|Lead 26913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026914|126914|989898|1|9999026914|MR|Test|E|Lead 26914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026915|126915|989898|1|9999026915|MR|Test|E|Lead 26915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026916|126916|989898|1|9999026916|MR|Test|E|Lead 26916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026917|126917|989898|1|9999026917|MR|Test|E|Lead 26917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026918|126918|989898|1|9999026918|MR|Test|E|Lead 26918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026919|126919|989898|1|9999026919|MR|Test|E|Lead 26919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026920|126920|989898|1|9999026920|MR|Test|E|Lead 26920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026921|126921|989898|1|9999026921|MR|Test|E|Lead 26921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026922|126922|989898|1|9999026922|MR|Test|E|Lead 26922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026923|126923|989898|1|9999026923|MR|Test|E|Lead 26923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026924|126924|989898|1|9999026924|MR|Test|E|Lead 26924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026925|126925|989898|1|9999026925|MR|Test|E|Lead 26925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026926|126926|989898|1|9999026926|MR|Test|E|Lead 26926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026927|126927|989898|1|9999026927|MR|Test|E|Lead 26927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026928|126928|989898|1|9999026928|MR|Test|E|Lead 26928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026929|126929|989898|1|9999026929|MR|Test|E|Lead 26929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026930|126930|989898|1|9999026930|MR|Test|E|Lead 26930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026931|126931|989898|1|9999026931|MR|Test|E|Lead 26931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026932|126932|989898|1|9999026932|MR|Test|E|Lead 26932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026933|126933|989898|1|9999026933|MR|Test|E|Lead 26933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026934|126934|989898|1|9999026934|MR|Test|E|Lead 26934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026935|126935|989898|1|9999026935|MR|Test|E|Lead 26935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026936|126936|989898|1|9999026936|MR|Test|E|Lead 26936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026937|126937|989898|1|9999026937|MR|Test|E|Lead 26937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026938|126938|989898|1|9999026938|MR|Test|E|Lead 26938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026939|126939|989898|1|9999026939|MR|Test|E|Lead 26939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026940|126940|989898|1|9999026940|MR|Test|E|Lead 26940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026941|126941|989898|1|9999026941|MR|Test|E|Lead 26941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026942|126942|989898|1|9999026942|MR|Test|E|Lead 26942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026943|126943|989898|1|9999026943|MR|Test|E|Lead 26943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026944|126944|989898|1|9999026944|MR|Test|E|Lead 26944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026945|126945|989898|1|9999026945|MR|Test|E|Lead 26945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026946|126946|989898|1|9999026946|MR|Test|E|Lead 26946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026947|126947|989898|1|9999026947|MR|Test|E|Lead 26947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026948|126948|989898|1|9999026948|MR|Test|E|Lead 26948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026949|126949|989898|1|9999026949|MR|Test|E|Lead 26949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026950|126950|989898|1|9999026950|MR|Test|E|Lead 26950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026951|126951|989898|1|9999026951|MR|Test|E|Lead 26951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026952|126952|989898|1|9999026952|MR|Test|E|Lead 26952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026953|126953|989898|1|9999026953|MR|Test|E|Lead 26953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026954|126954|989898|1|9999026954|MR|Test|E|Lead 26954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026955|126955|989898|1|9999026955|MR|Test|E|Lead 26955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026956|126956|989898|1|9999026956|MR|Test|E|Lead 26956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026957|126957|989898|1|9999026957|MR|Test|E|Lead 26957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026958|126958|989898|1|9999026958|MR|Test|E|Lead 26958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026959|126959|989898|1|9999026959|MR|Test|E|Lead 26959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026960|126960|989898|1|9999026960|MR|Test|E|Lead 26960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026961|126961|989898|1|9999026961|MR|Test|E|Lead 26961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026962|126962|989898|1|9999026962|MR|Test|E|Lead 26962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026963|126963|989898|1|9999026963|MR|Test|E|Lead 26963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026964|126964|989898|1|9999026964|MR|Test|E|Lead 26964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026965|126965|989898|1|9999026965|MR|Test|E|Lead 26965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026966|126966|989898|1|9999026966|MR|Test|E|Lead 26966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026967|126967|989898|1|9999026967|MR|Test|E|Lead 26967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026968|126968|989898|1|9999026968|MR|Test|E|Lead 26968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026969|126969|989898|1|9999026969|MR|Test|E|Lead 26969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026970|126970|989898|1|9999026970|MR|Test|E|Lead 26970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026971|126971|989898|1|9999026971|MR|Test|E|Lead 26971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026972|126972|989898|1|9999026972|MR|Test|E|Lead 26972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026973|126973|989898|1|9999026973|MR|Test|E|Lead 26973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026974|126974|989898|1|9999026974|MR|Test|E|Lead 26974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026975|126975|989898|1|9999026975|MR|Test|E|Lead 26975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026976|126976|989898|1|9999026976|MR|Test|E|Lead 26976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026977|126977|989898|1|9999026977|MR|Test|E|Lead 26977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026978|126978|989898|1|9999026978|MR|Test|E|Lead 26978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026979|126979|989898|1|9999026979|MR|Test|E|Lead 26979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026980|126980|989898|1|9999026980|MR|Test|E|Lead 26980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026981|126981|989898|1|9999026981|MR|Test|E|Lead 26981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026982|126982|989898|1|9999026982|MR|Test|E|Lead 26982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026983|126983|989898|1|9999026983|MR|Test|E|Lead 26983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026984|126984|989898|1|9999026984|MR|Test|E|Lead 26984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026985|126985|989898|1|9999026985|MR|Test|E|Lead 26985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026986|126986|989898|1|9999026986|MR|Test|E|Lead 26986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026987|126987|989898|1|9999026987|MR|Test|E|Lead 26987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026988|126988|989898|1|9999026988|MR|Test|E|Lead 26988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026989|126989|989898|1|9999026989|MR|Test|E|Lead 26989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026990|126990|989898|1|9999026990|MR|Test|E|Lead 26990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026991|126991|989898|1|9999026991|MR|Test|E|Lead 26991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026992|126992|989898|1|9999026992|MR|Test|E|Lead 26992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026993|126993|989898|1|9999026993|MR|Test|E|Lead 26993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026994|126994|989898|1|9999026994|MR|Test|E|Lead 26994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026995|126995|989898|1|9999026995|MR|Test|E|Lead 26995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026996|126996|989898|1|9999026996|MR|Test|E|Lead 26996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026997|126997|989898|1|9999026997|MR|Test|E|Lead 26997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026998|126998|989898|1|9999026998|MR|Test|E|Lead 26998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1026999|126999|989898|1|9999026999|MR|Test|E|Lead 26999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027000|127000|989898|1|9999027000|MR|Test|E|Lead 27000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027001|127001|989898|1|9999027001|MR|Test|E|Lead 27001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027002|127002|989898|1|9999027002|MR|Test|E|Lead 27002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027003|127003|989898|1|9999027003|MR|Test|E|Lead 27003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027004|127004|989898|1|9999027004|MR|Test|E|Lead 27004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027005|127005|989898|1|9999027005|MR|Test|E|Lead 27005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027006|127006|989898|1|9999027006|MR|Test|E|Lead 27006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027007|127007|989898|1|9999027007|MR|Test|E|Lead 27007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027008|127008|989898|1|9999027008|MR|Test|E|Lead 27008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027009|127009|989898|1|9999027009|MR|Test|E|Lead 27009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027010|127010|989898|1|9999027010|MR|Test|E|Lead 27010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027011|127011|989898|1|9999027011|MR|Test|E|Lead 27011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027012|127012|989898|1|9999027012|MR|Test|E|Lead 27012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027013|127013|989898|1|9999027013|MR|Test|E|Lead 27013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027014|127014|989898|1|9999027014|MR|Test|E|Lead 27014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027015|127015|989898|1|9999027015|MR|Test|E|Lead 27015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027016|127016|989898|1|9999027016|MR|Test|E|Lead 27016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027017|127017|989898|1|9999027017|MR|Test|E|Lead 27017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027018|127018|989898|1|9999027018|MR|Test|E|Lead 27018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027019|127019|989898|1|9999027019|MR|Test|E|Lead 27019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027020|127020|989898|1|9999027020|MR|Test|E|Lead 27020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027021|127021|989898|1|9999027021|MR|Test|E|Lead 27021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027022|127022|989898|1|9999027022|MR|Test|E|Lead 27022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027023|127023|989898|1|9999027023|MR|Test|E|Lead 27023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027024|127024|989898|1|9999027024|MR|Test|E|Lead 27024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027025|127025|989898|1|9999027025|MR|Test|E|Lead 27025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027026|127026|989898|1|9999027026|MR|Test|E|Lead 27026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027027|127027|989898|1|9999027027|MR|Test|E|Lead 27027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027028|127028|989898|1|9999027028|MR|Test|E|Lead 27028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027029|127029|989898|1|9999027029|MR|Test|E|Lead 27029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027030|127030|989898|1|9999027030|MR|Test|E|Lead 27030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027031|127031|989898|1|9999027031|MR|Test|E|Lead 27031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027032|127032|989898|1|9999027032|MR|Test|E|Lead 27032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027033|127033|989898|1|9999027033|MR|Test|E|Lead 27033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027034|127034|989898|1|9999027034|MR|Test|E|Lead 27034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027035|127035|989898|1|9999027035|MR|Test|E|Lead 27035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027036|127036|989898|1|9999027036|MR|Test|E|Lead 27036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027037|127037|989898|1|9999027037|MR|Test|E|Lead 27037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027038|127038|989898|1|9999027038|MR|Test|E|Lead 27038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027039|127039|989898|1|9999027039|MR|Test|E|Lead 27039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027040|127040|989898|1|9999027040|MR|Test|E|Lead 27040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027041|127041|989898|1|9999027041|MR|Test|E|Lead 27041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027042|127042|989898|1|9999027042|MR|Test|E|Lead 27042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027043|127043|989898|1|9999027043|MR|Test|E|Lead 27043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027044|127044|989898|1|9999027044|MR|Test|E|Lead 27044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027045|127045|989898|1|9999027045|MR|Test|E|Lead 27045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027046|127046|989898|1|9999027046|MR|Test|E|Lead 27046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027047|127047|989898|1|9999027047|MR|Test|E|Lead 27047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027048|127048|989898|1|9999027048|MR|Test|E|Lead 27048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027049|127049|989898|1|9999027049|MR|Test|E|Lead 27049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027050|127050|989898|1|9999027050|MR|Test|E|Lead 27050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027051|127051|989898|1|9999027051|MR|Test|E|Lead 27051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027052|127052|989898|1|9999027052|MR|Test|E|Lead 27052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027053|127053|989898|1|9999027053|MR|Test|E|Lead 27053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027054|127054|989898|1|9999027054|MR|Test|E|Lead 27054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027055|127055|989898|1|9999027055|MR|Test|E|Lead 27055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027056|127056|989898|1|9999027056|MR|Test|E|Lead 27056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027057|127057|989898|1|9999027057|MR|Test|E|Lead 27057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027058|127058|989898|1|9999027058|MR|Test|E|Lead 27058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027059|127059|989898|1|9999027059|MR|Test|E|Lead 27059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027060|127060|989898|1|9999027060|MR|Test|E|Lead 27060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027061|127061|989898|1|9999027061|MR|Test|E|Lead 27061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027062|127062|989898|1|9999027062|MR|Test|E|Lead 27062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027063|127063|989898|1|9999027063|MR|Test|E|Lead 27063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027064|127064|989898|1|9999027064|MR|Test|E|Lead 27064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027065|127065|989898|1|9999027065|MR|Test|E|Lead 27065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027066|127066|989898|1|9999027066|MR|Test|E|Lead 27066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027067|127067|989898|1|9999027067|MR|Test|E|Lead 27067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027068|127068|989898|1|9999027068|MR|Test|E|Lead 27068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027069|127069|989898|1|9999027069|MR|Test|E|Lead 27069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027070|127070|989898|1|9999027070|MR|Test|E|Lead 27070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027071|127071|989898|1|9999027071|MR|Test|E|Lead 27071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027072|127072|989898|1|9999027072|MR|Test|E|Lead 27072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027073|127073|989898|1|9999027073|MR|Test|E|Lead 27073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027074|127074|989898|1|9999027074|MR|Test|E|Lead 27074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027075|127075|989898|1|9999027075|MR|Test|E|Lead 27075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027076|127076|989898|1|9999027076|MR|Test|E|Lead 27076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027077|127077|989898|1|9999027077|MR|Test|E|Lead 27077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027078|127078|989898|1|9999027078|MR|Test|E|Lead 27078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027079|127079|989898|1|9999027079|MR|Test|E|Lead 27079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027080|127080|989898|1|9999027080|MR|Test|E|Lead 27080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027081|127081|989898|1|9999027081|MR|Test|E|Lead 27081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027082|127082|989898|1|9999027082|MR|Test|E|Lead 27082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027083|127083|989898|1|9999027083|MR|Test|E|Lead 27083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027084|127084|989898|1|9999027084|MR|Test|E|Lead 27084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027085|127085|989898|1|9999027085|MR|Test|E|Lead 27085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027086|127086|989898|1|9999027086|MR|Test|E|Lead 27086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027087|127087|989898|1|9999027087|MR|Test|E|Lead 27087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027088|127088|989898|1|9999027088|MR|Test|E|Lead 27088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027089|127089|989898|1|9999027089|MR|Test|E|Lead 27089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027090|127090|989898|1|9999027090|MR|Test|E|Lead 27090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027091|127091|989898|1|9999027091|MR|Test|E|Lead 27091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027092|127092|989898|1|9999027092|MR|Test|E|Lead 27092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027093|127093|989898|1|9999027093|MR|Test|E|Lead 27093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027094|127094|989898|1|9999027094|MR|Test|E|Lead 27094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027095|127095|989898|1|9999027095|MR|Test|E|Lead 27095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027096|127096|989898|1|9999027096|MR|Test|E|Lead 27096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027097|127097|989898|1|9999027097|MR|Test|E|Lead 27097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027098|127098|989898|1|9999027098|MR|Test|E|Lead 27098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027099|127099|989898|1|9999027099|MR|Test|E|Lead 27099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027100|127100|989898|1|9999027100|MR|Test|E|Lead 27100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027101|127101|989898|1|9999027101|MR|Test|E|Lead 27101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027102|127102|989898|1|9999027102|MR|Test|E|Lead 27102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027103|127103|989898|1|9999027103|MR|Test|E|Lead 27103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027104|127104|989898|1|9999027104|MR|Test|E|Lead 27104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027105|127105|989898|1|9999027105|MR|Test|E|Lead 27105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027106|127106|989898|1|9999027106|MR|Test|E|Lead 27106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027107|127107|989898|1|9999027107|MR|Test|E|Lead 27107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027108|127108|989898|1|9999027108|MR|Test|E|Lead 27108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027109|127109|989898|1|9999027109|MR|Test|E|Lead 27109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027110|127110|989898|1|9999027110|MR|Test|E|Lead 27110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027111|127111|989898|1|9999027111|MR|Test|E|Lead 27111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027112|127112|989898|1|9999027112|MR|Test|E|Lead 27112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027113|127113|989898|1|9999027113|MR|Test|E|Lead 27113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027114|127114|989898|1|9999027114|MR|Test|E|Lead 27114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027115|127115|989898|1|9999027115|MR|Test|E|Lead 27115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027116|127116|989898|1|9999027116|MR|Test|E|Lead 27116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027117|127117|989898|1|9999027117|MR|Test|E|Lead 27117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027118|127118|989898|1|9999027118|MR|Test|E|Lead 27118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027119|127119|989898|1|9999027119|MR|Test|E|Lead 27119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027120|127120|989898|1|9999027120|MR|Test|E|Lead 27120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027121|127121|989898|1|9999027121|MR|Test|E|Lead 27121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027122|127122|989898|1|9999027122|MR|Test|E|Lead 27122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027123|127123|989898|1|9999027123|MR|Test|E|Lead 27123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027124|127124|989898|1|9999027124|MR|Test|E|Lead 27124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027125|127125|989898|1|9999027125|MR|Test|E|Lead 27125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027126|127126|989898|1|9999027126|MR|Test|E|Lead 27126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027127|127127|989898|1|9999027127|MR|Test|E|Lead 27127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027128|127128|989898|1|9999027128|MR|Test|E|Lead 27128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027129|127129|989898|1|9999027129|MR|Test|E|Lead 27129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027130|127130|989898|1|9999027130|MR|Test|E|Lead 27130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027131|127131|989898|1|9999027131|MR|Test|E|Lead 27131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027132|127132|989898|1|9999027132|MR|Test|E|Lead 27132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027133|127133|989898|1|9999027133|MR|Test|E|Lead 27133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027134|127134|989898|1|9999027134|MR|Test|E|Lead 27134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027135|127135|989898|1|9999027135|MR|Test|E|Lead 27135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027136|127136|989898|1|9999027136|MR|Test|E|Lead 27136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027137|127137|989898|1|9999027137|MR|Test|E|Lead 27137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027138|127138|989898|1|9999027138|MR|Test|E|Lead 27138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027139|127139|989898|1|9999027139|MR|Test|E|Lead 27139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027140|127140|989898|1|9999027140|MR|Test|E|Lead 27140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027141|127141|989898|1|9999027141|MR|Test|E|Lead 27141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027142|127142|989898|1|9999027142|MR|Test|E|Lead 27142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027143|127143|989898|1|9999027143|MR|Test|E|Lead 27143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027144|127144|989898|1|9999027144|MR|Test|E|Lead 27144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027145|127145|989898|1|9999027145|MR|Test|E|Lead 27145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027146|127146|989898|1|9999027146|MR|Test|E|Lead 27146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027147|127147|989898|1|9999027147|MR|Test|E|Lead 27147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027148|127148|989898|1|9999027148|MR|Test|E|Lead 27148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027149|127149|989898|1|9999027149|MR|Test|E|Lead 27149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027150|127150|989898|1|9999027150|MR|Test|E|Lead 27150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027151|127151|989898|1|9999027151|MR|Test|E|Lead 27151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027152|127152|989898|1|9999027152|MR|Test|E|Lead 27152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027153|127153|989898|1|9999027153|MR|Test|E|Lead 27153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027154|127154|989898|1|9999027154|MR|Test|E|Lead 27154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027155|127155|989898|1|9999027155|MR|Test|E|Lead 27155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027156|127156|989898|1|9999027156|MR|Test|E|Lead 27156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027157|127157|989898|1|9999027157|MR|Test|E|Lead 27157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027158|127158|989898|1|9999027158|MR|Test|E|Lead 27158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027159|127159|989898|1|9999027159|MR|Test|E|Lead 27159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027160|127160|989898|1|9999027160|MR|Test|E|Lead 27160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027161|127161|989898|1|9999027161|MR|Test|E|Lead 27161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027162|127162|989898|1|9999027162|MR|Test|E|Lead 27162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027163|127163|989898|1|9999027163|MR|Test|E|Lead 27163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027164|127164|989898|1|9999027164|MR|Test|E|Lead 27164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027165|127165|989898|1|9999027165|MR|Test|E|Lead 27165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027166|127166|989898|1|9999027166|MR|Test|E|Lead 27166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027167|127167|989898|1|9999027167|MR|Test|E|Lead 27167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027168|127168|989898|1|9999027168|MR|Test|E|Lead 27168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027169|127169|989898|1|9999027169|MR|Test|E|Lead 27169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027170|127170|989898|1|9999027170|MR|Test|E|Lead 27170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027171|127171|989898|1|9999027171|MR|Test|E|Lead 27171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027172|127172|989898|1|9999027172|MR|Test|E|Lead 27172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027173|127173|989898|1|9999027173|MR|Test|E|Lead 27173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027174|127174|989898|1|9999027174|MR|Test|E|Lead 27174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027175|127175|989898|1|9999027175|MR|Test|E|Lead 27175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027176|127176|989898|1|9999027176|MR|Test|E|Lead 27176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027177|127177|989898|1|9999027177|MR|Test|E|Lead 27177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027178|127178|989898|1|9999027178|MR|Test|E|Lead 27178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027179|127179|989898|1|9999027179|MR|Test|E|Lead 27179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027180|127180|989898|1|9999027180|MR|Test|E|Lead 27180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027181|127181|989898|1|9999027181|MR|Test|E|Lead 27181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027182|127182|989898|1|9999027182|MR|Test|E|Lead 27182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027183|127183|989898|1|9999027183|MR|Test|E|Lead 27183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027184|127184|989898|1|9999027184|MR|Test|E|Lead 27184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027185|127185|989898|1|9999027185|MR|Test|E|Lead 27185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027186|127186|989898|1|9999027186|MR|Test|E|Lead 27186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027187|127187|989898|1|9999027187|MR|Test|E|Lead 27187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027188|127188|989898|1|9999027188|MR|Test|E|Lead 27188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027189|127189|989898|1|9999027189|MR|Test|E|Lead 27189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027190|127190|989898|1|9999027190|MR|Test|E|Lead 27190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027191|127191|989898|1|9999027191|MR|Test|E|Lead 27191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027192|127192|989898|1|9999027192|MR|Test|E|Lead 27192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027193|127193|989898|1|9999027193|MR|Test|E|Lead 27193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027194|127194|989898|1|9999027194|MR|Test|E|Lead 27194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027195|127195|989898|1|9999027195|MR|Test|E|Lead 27195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027196|127196|989898|1|9999027196|MR|Test|E|Lead 27196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027197|127197|989898|1|9999027197|MR|Test|E|Lead 27197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027198|127198|989898|1|9999027198|MR|Test|E|Lead 27198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027199|127199|989898|1|9999027199|MR|Test|E|Lead 27199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027200|127200|989898|1|9999027200|MR|Test|E|Lead 27200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027201|127201|989898|1|9999027201|MR|Test|E|Lead 27201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027202|127202|989898|1|9999027202|MR|Test|E|Lead 27202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027203|127203|989898|1|9999027203|MR|Test|E|Lead 27203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027204|127204|989898|1|9999027204|MR|Test|E|Lead 27204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027205|127205|989898|1|9999027205|MR|Test|E|Lead 27205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027206|127206|989898|1|9999027206|MR|Test|E|Lead 27206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027207|127207|989898|1|9999027207|MR|Test|E|Lead 27207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027208|127208|989898|1|9999027208|MR|Test|E|Lead 27208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027209|127209|989898|1|9999027209|MR|Test|E|Lead 27209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027210|127210|989898|1|9999027210|MR|Test|E|Lead 27210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027211|127211|989898|1|9999027211|MR|Test|E|Lead 27211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027212|127212|989898|1|9999027212|MR|Test|E|Lead 27212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027213|127213|989898|1|9999027213|MR|Test|E|Lead 27213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027214|127214|989898|1|9999027214|MR|Test|E|Lead 27214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027215|127215|989898|1|9999027215|MR|Test|E|Lead 27215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027216|127216|989898|1|9999027216|MR|Test|E|Lead 27216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027217|127217|989898|1|9999027217|MR|Test|E|Lead 27217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027218|127218|989898|1|9999027218|MR|Test|E|Lead 27218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027219|127219|989898|1|9999027219|MR|Test|E|Lead 27219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027220|127220|989898|1|9999027220|MR|Test|E|Lead 27220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027221|127221|989898|1|9999027221|MR|Test|E|Lead 27221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027222|127222|989898|1|9999027222|MR|Test|E|Lead 27222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027223|127223|989898|1|9999027223|MR|Test|E|Lead 27223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027224|127224|989898|1|9999027224|MR|Test|E|Lead 27224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027225|127225|989898|1|9999027225|MR|Test|E|Lead 27225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027226|127226|989898|1|9999027226|MR|Test|E|Lead 27226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027227|127227|989898|1|9999027227|MR|Test|E|Lead 27227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027228|127228|989898|1|9999027228|MR|Test|E|Lead 27228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027229|127229|989898|1|9999027229|MR|Test|E|Lead 27229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027230|127230|989898|1|9999027230|MR|Test|E|Lead 27230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027231|127231|989898|1|9999027231|MR|Test|E|Lead 27231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027232|127232|989898|1|9999027232|MR|Test|E|Lead 27232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027233|127233|989898|1|9999027233|MR|Test|E|Lead 27233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027234|127234|989898|1|9999027234|MR|Test|E|Lead 27234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027235|127235|989898|1|9999027235|MR|Test|E|Lead 27235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027236|127236|989898|1|9999027236|MR|Test|E|Lead 27236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027237|127237|989898|1|9999027237|MR|Test|E|Lead 27237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027238|127238|989898|1|9999027238|MR|Test|E|Lead 27238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027239|127239|989898|1|9999027239|MR|Test|E|Lead 27239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027240|127240|989898|1|9999027240|MR|Test|E|Lead 27240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027241|127241|989898|1|9999027241|MR|Test|E|Lead 27241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027242|127242|989898|1|9999027242|MR|Test|E|Lead 27242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027243|127243|989898|1|9999027243|MR|Test|E|Lead 27243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027244|127244|989898|1|9999027244|MR|Test|E|Lead 27244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027245|127245|989898|1|9999027245|MR|Test|E|Lead 27245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027246|127246|989898|1|9999027246|MR|Test|E|Lead 27246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027247|127247|989898|1|9999027247|MR|Test|E|Lead 27247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027248|127248|989898|1|9999027248|MR|Test|E|Lead 27248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027249|127249|989898|1|9999027249|MR|Test|E|Lead 27249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027250|127250|989898|1|9999027250|MR|Test|E|Lead 27250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027251|127251|989898|1|9999027251|MR|Test|E|Lead 27251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027252|127252|989898|1|9999027252|MR|Test|E|Lead 27252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027253|127253|989898|1|9999027253|MR|Test|E|Lead 27253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027254|127254|989898|1|9999027254|MR|Test|E|Lead 27254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027255|127255|989898|1|9999027255|MR|Test|E|Lead 27255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027256|127256|989898|1|9999027256|MR|Test|E|Lead 27256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027257|127257|989898|1|9999027257|MR|Test|E|Lead 27257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027258|127258|989898|1|9999027258|MR|Test|E|Lead 27258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027259|127259|989898|1|9999027259|MR|Test|E|Lead 27259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027260|127260|989898|1|9999027260|MR|Test|E|Lead 27260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027261|127261|989898|1|9999027261|MR|Test|E|Lead 27261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027262|127262|989898|1|9999027262|MR|Test|E|Lead 27262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027263|127263|989898|1|9999027263|MR|Test|E|Lead 27263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027264|127264|989898|1|9999027264|MR|Test|E|Lead 27264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027265|127265|989898|1|9999027265|MR|Test|E|Lead 27265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027266|127266|989898|1|9999027266|MR|Test|E|Lead 27266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027267|127267|989898|1|9999027267|MR|Test|E|Lead 27267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027268|127268|989898|1|9999027268|MR|Test|E|Lead 27268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027269|127269|989898|1|9999027269|MR|Test|E|Lead 27269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027270|127270|989898|1|9999027270|MR|Test|E|Lead 27270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027271|127271|989898|1|9999027271|MR|Test|E|Lead 27271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027272|127272|989898|1|9999027272|MR|Test|E|Lead 27272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027273|127273|989898|1|9999027273|MR|Test|E|Lead 27273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027274|127274|989898|1|9999027274|MR|Test|E|Lead 27274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027275|127275|989898|1|9999027275|MR|Test|E|Lead 27275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027276|127276|989898|1|9999027276|MR|Test|E|Lead 27276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027277|127277|989898|1|9999027277|MR|Test|E|Lead 27277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027278|127278|989898|1|9999027278|MR|Test|E|Lead 27278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027279|127279|989898|1|9999027279|MR|Test|E|Lead 27279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027280|127280|989898|1|9999027280|MR|Test|E|Lead 27280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027281|127281|989898|1|9999027281|MR|Test|E|Lead 27281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027282|127282|989898|1|9999027282|MR|Test|E|Lead 27282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027283|127283|989898|1|9999027283|MR|Test|E|Lead 27283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027284|127284|989898|1|9999027284|MR|Test|E|Lead 27284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027285|127285|989898|1|9999027285|MR|Test|E|Lead 27285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027286|127286|989898|1|9999027286|MR|Test|E|Lead 27286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027287|127287|989898|1|9999027287|MR|Test|E|Lead 27287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027288|127288|989898|1|9999027288|MR|Test|E|Lead 27288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027289|127289|989898|1|9999027289|MR|Test|E|Lead 27289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027290|127290|989898|1|9999027290|MR|Test|E|Lead 27290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027291|127291|989898|1|9999027291|MR|Test|E|Lead 27291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027292|127292|989898|1|9999027292|MR|Test|E|Lead 27292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027293|127293|989898|1|9999027293|MR|Test|E|Lead 27293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027294|127294|989898|1|9999027294|MR|Test|E|Lead 27294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027295|127295|989898|1|9999027295|MR|Test|E|Lead 27295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027296|127296|989898|1|9999027296|MR|Test|E|Lead 27296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027297|127297|989898|1|9999027297|MR|Test|E|Lead 27297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027298|127298|989898|1|9999027298|MR|Test|E|Lead 27298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027299|127299|989898|1|9999027299|MR|Test|E|Lead 27299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027300|127300|989898|1|9999027300|MR|Test|E|Lead 27300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027301|127301|989898|1|9999027301|MR|Test|E|Lead 27301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027302|127302|989898|1|9999027302|MR|Test|E|Lead 27302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027303|127303|989898|1|9999027303|MR|Test|E|Lead 27303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027304|127304|989898|1|9999027304|MR|Test|E|Lead 27304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027305|127305|989898|1|9999027305|MR|Test|E|Lead 27305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027306|127306|989898|1|9999027306|MR|Test|E|Lead 27306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027307|127307|989898|1|9999027307|MR|Test|E|Lead 27307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027308|127308|989898|1|9999027308|MR|Test|E|Lead 27308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027309|127309|989898|1|9999027309|MR|Test|E|Lead 27309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027310|127310|989898|1|9999027310|MR|Test|E|Lead 27310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027311|127311|989898|1|9999027311|MR|Test|E|Lead 27311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027312|127312|989898|1|9999027312|MR|Test|E|Lead 27312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027313|127313|989898|1|9999027313|MR|Test|E|Lead 27313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027314|127314|989898|1|9999027314|MR|Test|E|Lead 27314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027315|127315|989898|1|9999027315|MR|Test|E|Lead 27315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027316|127316|989898|1|9999027316|MR|Test|E|Lead 27316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027317|127317|989898|1|9999027317|MR|Test|E|Lead 27317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027318|127318|989898|1|9999027318|MR|Test|E|Lead 27318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027319|127319|989898|1|9999027319|MR|Test|E|Lead 27319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027320|127320|989898|1|9999027320|MR|Test|E|Lead 27320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027321|127321|989898|1|9999027321|MR|Test|E|Lead 27321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027322|127322|989898|1|9999027322|MR|Test|E|Lead 27322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027323|127323|989898|1|9999027323|MR|Test|E|Lead 27323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027324|127324|989898|1|9999027324|MR|Test|E|Lead 27324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027325|127325|989898|1|9999027325|MR|Test|E|Lead 27325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027326|127326|989898|1|9999027326|MR|Test|E|Lead 27326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027327|127327|989898|1|9999027327|MR|Test|E|Lead 27327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027328|127328|989898|1|9999027328|MR|Test|E|Lead 27328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027329|127329|989898|1|9999027329|MR|Test|E|Lead 27329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027330|127330|989898|1|9999027330|MR|Test|E|Lead 27330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027331|127331|989898|1|9999027331|MR|Test|E|Lead 27331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027332|127332|989898|1|9999027332|MR|Test|E|Lead 27332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027333|127333|989898|1|9999027333|MR|Test|E|Lead 27333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027334|127334|989898|1|9999027334|MR|Test|E|Lead 27334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027335|127335|989898|1|9999027335|MR|Test|E|Lead 27335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027336|127336|989898|1|9999027336|MR|Test|E|Lead 27336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027337|127337|989898|1|9999027337|MR|Test|E|Lead 27337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027338|127338|989898|1|9999027338|MR|Test|E|Lead 27338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027339|127339|989898|1|9999027339|MR|Test|E|Lead 27339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027340|127340|989898|1|9999027340|MR|Test|E|Lead 27340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027341|127341|989898|1|9999027341|MR|Test|E|Lead 27341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027342|127342|989898|1|9999027342|MR|Test|E|Lead 27342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027343|127343|989898|1|9999027343|MR|Test|E|Lead 27343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027344|127344|989898|1|9999027344|MR|Test|E|Lead 27344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027345|127345|989898|1|9999027345|MR|Test|E|Lead 27345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027346|127346|989898|1|9999027346|MR|Test|E|Lead 27346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027347|127347|989898|1|9999027347|MR|Test|E|Lead 27347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027348|127348|989898|1|9999027348|MR|Test|E|Lead 27348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027349|127349|989898|1|9999027349|MR|Test|E|Lead 27349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027350|127350|989898|1|9999027350|MR|Test|E|Lead 27350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027351|127351|989898|1|9999027351|MR|Test|E|Lead 27351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027352|127352|989898|1|9999027352|MR|Test|E|Lead 27352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027353|127353|989898|1|9999027353|MR|Test|E|Lead 27353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027354|127354|989898|1|9999027354|MR|Test|E|Lead 27354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027355|127355|989898|1|9999027355|MR|Test|E|Lead 27355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027356|127356|989898|1|9999027356|MR|Test|E|Lead 27356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027357|127357|989898|1|9999027357|MR|Test|E|Lead 27357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027358|127358|989898|1|9999027358|MR|Test|E|Lead 27358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027359|127359|989898|1|9999027359|MR|Test|E|Lead 27359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027360|127360|989898|1|9999027360|MR|Test|E|Lead 27360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027361|127361|989898|1|9999027361|MR|Test|E|Lead 27361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027362|127362|989898|1|9999027362|MR|Test|E|Lead 27362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027363|127363|989898|1|9999027363|MR|Test|E|Lead 27363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027364|127364|989898|1|9999027364|MR|Test|E|Lead 27364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027365|127365|989898|1|9999027365|MR|Test|E|Lead 27365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027366|127366|989898|1|9999027366|MR|Test|E|Lead 27366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027367|127367|989898|1|9999027367|MR|Test|E|Lead 27367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027368|127368|989898|1|9999027368|MR|Test|E|Lead 27368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027369|127369|989898|1|9999027369|MR|Test|E|Lead 27369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027370|127370|989898|1|9999027370|MR|Test|E|Lead 27370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027371|127371|989898|1|9999027371|MR|Test|E|Lead 27371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027372|127372|989898|1|9999027372|MR|Test|E|Lead 27372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027373|127373|989898|1|9999027373|MR|Test|E|Lead 27373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027374|127374|989898|1|9999027374|MR|Test|E|Lead 27374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027375|127375|989898|1|9999027375|MR|Test|E|Lead 27375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027376|127376|989898|1|9999027376|MR|Test|E|Lead 27376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027377|127377|989898|1|9999027377|MR|Test|E|Lead 27377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027378|127378|989898|1|9999027378|MR|Test|E|Lead 27378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027379|127379|989898|1|9999027379|MR|Test|E|Lead 27379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027380|127380|989898|1|9999027380|MR|Test|E|Lead 27380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027381|127381|989898|1|9999027381|MR|Test|E|Lead 27381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027382|127382|989898|1|9999027382|MR|Test|E|Lead 27382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027383|127383|989898|1|9999027383|MR|Test|E|Lead 27383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027384|127384|989898|1|9999027384|MR|Test|E|Lead 27384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027385|127385|989898|1|9999027385|MR|Test|E|Lead 27385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027386|127386|989898|1|9999027386|MR|Test|E|Lead 27386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027387|127387|989898|1|9999027387|MR|Test|E|Lead 27387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027388|127388|989898|1|9999027388|MR|Test|E|Lead 27388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027389|127389|989898|1|9999027389|MR|Test|E|Lead 27389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027390|127390|989898|1|9999027390|MR|Test|E|Lead 27390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027391|127391|989898|1|9999027391|MR|Test|E|Lead 27391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027392|127392|989898|1|9999027392|MR|Test|E|Lead 27392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027393|127393|989898|1|9999027393|MR|Test|E|Lead 27393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027394|127394|989898|1|9999027394|MR|Test|E|Lead 27394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027395|127395|989898|1|9999027395|MR|Test|E|Lead 27395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027396|127396|989898|1|9999027396|MR|Test|E|Lead 27396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027397|127397|989898|1|9999027397|MR|Test|E|Lead 27397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027398|127398|989898|1|9999027398|MR|Test|E|Lead 27398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027399|127399|989898|1|9999027399|MR|Test|E|Lead 27399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027400|127400|989898|1|9999027400|MR|Test|E|Lead 27400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027401|127401|989898|1|9999027401|MR|Test|E|Lead 27401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027402|127402|989898|1|9999027402|MR|Test|E|Lead 27402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027403|127403|989898|1|9999027403|MR|Test|E|Lead 27403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027404|127404|989898|1|9999027404|MR|Test|E|Lead 27404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027405|127405|989898|1|9999027405|MR|Test|E|Lead 27405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027406|127406|989898|1|9999027406|MR|Test|E|Lead 27406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027407|127407|989898|1|9999027407|MR|Test|E|Lead 27407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027408|127408|989898|1|9999027408|MR|Test|E|Lead 27408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027409|127409|989898|1|9999027409|MR|Test|E|Lead 27409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027410|127410|989898|1|9999027410|MR|Test|E|Lead 27410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027411|127411|989898|1|9999027411|MR|Test|E|Lead 27411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027412|127412|989898|1|9999027412|MR|Test|E|Lead 27412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027413|127413|989898|1|9999027413|MR|Test|E|Lead 27413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027414|127414|989898|1|9999027414|MR|Test|E|Lead 27414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027415|127415|989898|1|9999027415|MR|Test|E|Lead 27415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027416|127416|989898|1|9999027416|MR|Test|E|Lead 27416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027417|127417|989898|1|9999027417|MR|Test|E|Lead 27417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027418|127418|989898|1|9999027418|MR|Test|E|Lead 27418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027419|127419|989898|1|9999027419|MR|Test|E|Lead 27419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027420|127420|989898|1|9999027420|MR|Test|E|Lead 27420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027421|127421|989898|1|9999027421|MR|Test|E|Lead 27421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027422|127422|989898|1|9999027422|MR|Test|E|Lead 27422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027423|127423|989898|1|9999027423|MR|Test|E|Lead 27423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027424|127424|989898|1|9999027424|MR|Test|E|Lead 27424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027425|127425|989898|1|9999027425|MR|Test|E|Lead 27425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027426|127426|989898|1|9999027426|MR|Test|E|Lead 27426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027427|127427|989898|1|9999027427|MR|Test|E|Lead 27427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027428|127428|989898|1|9999027428|MR|Test|E|Lead 27428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027429|127429|989898|1|9999027429|MR|Test|E|Lead 27429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027430|127430|989898|1|9999027430|MR|Test|E|Lead 27430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027431|127431|989898|1|9999027431|MR|Test|E|Lead 27431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027432|127432|989898|1|9999027432|MR|Test|E|Lead 27432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027433|127433|989898|1|9999027433|MR|Test|E|Lead 27433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027434|127434|989898|1|9999027434|MR|Test|E|Lead 27434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027435|127435|989898|1|9999027435|MR|Test|E|Lead 27435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027436|127436|989898|1|9999027436|MR|Test|E|Lead 27436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027437|127437|989898|1|9999027437|MR|Test|E|Lead 27437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027438|127438|989898|1|9999027438|MR|Test|E|Lead 27438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027439|127439|989898|1|9999027439|MR|Test|E|Lead 27439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027440|127440|989898|1|9999027440|MR|Test|E|Lead 27440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027441|127441|989898|1|9999027441|MR|Test|E|Lead 27441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027442|127442|989898|1|9999027442|MR|Test|E|Lead 27442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027443|127443|989898|1|9999027443|MR|Test|E|Lead 27443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027444|127444|989898|1|9999027444|MR|Test|E|Lead 27444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027445|127445|989898|1|9999027445|MR|Test|E|Lead 27445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027446|127446|989898|1|9999027446|MR|Test|E|Lead 27446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027447|127447|989898|1|9999027447|MR|Test|E|Lead 27447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027448|127448|989898|1|9999027448|MR|Test|E|Lead 27448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027449|127449|989898|1|9999027449|MR|Test|E|Lead 27449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027450|127450|989898|1|9999027450|MR|Test|E|Lead 27450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027451|127451|989898|1|9999027451|MR|Test|E|Lead 27451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027452|127452|989898|1|9999027452|MR|Test|E|Lead 27452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027453|127453|989898|1|9999027453|MR|Test|E|Lead 27453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027454|127454|989898|1|9999027454|MR|Test|E|Lead 27454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027455|127455|989898|1|9999027455|MR|Test|E|Lead 27455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027456|127456|989898|1|9999027456|MR|Test|E|Lead 27456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027457|127457|989898|1|9999027457|MR|Test|E|Lead 27457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027458|127458|989898|1|9999027458|MR|Test|E|Lead 27458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027459|127459|989898|1|9999027459|MR|Test|E|Lead 27459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027460|127460|989898|1|9999027460|MR|Test|E|Lead 27460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027461|127461|989898|1|9999027461|MR|Test|E|Lead 27461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027462|127462|989898|1|9999027462|MR|Test|E|Lead 27462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027463|127463|989898|1|9999027463|MR|Test|E|Lead 27463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027464|127464|989898|1|9999027464|MR|Test|E|Lead 27464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027465|127465|989898|1|9999027465|MR|Test|E|Lead 27465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027466|127466|989898|1|9999027466|MR|Test|E|Lead 27466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027467|127467|989898|1|9999027467|MR|Test|E|Lead 27467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027468|127468|989898|1|9999027468|MR|Test|E|Lead 27468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027469|127469|989898|1|9999027469|MR|Test|E|Lead 27469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027470|127470|989898|1|9999027470|MR|Test|E|Lead 27470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027471|127471|989898|1|9999027471|MR|Test|E|Lead 27471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027472|127472|989898|1|9999027472|MR|Test|E|Lead 27472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027473|127473|989898|1|9999027473|MR|Test|E|Lead 27473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027474|127474|989898|1|9999027474|MR|Test|E|Lead 27474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027475|127475|989898|1|9999027475|MR|Test|E|Lead 27475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027476|127476|989898|1|9999027476|MR|Test|E|Lead 27476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027477|127477|989898|1|9999027477|MR|Test|E|Lead 27477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027478|127478|989898|1|9999027478|MR|Test|E|Lead 27478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027479|127479|989898|1|9999027479|MR|Test|E|Lead 27479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027480|127480|989898|1|9999027480|MR|Test|E|Lead 27480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027481|127481|989898|1|9999027481|MR|Test|E|Lead 27481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027482|127482|989898|1|9999027482|MR|Test|E|Lead 27482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027483|127483|989898|1|9999027483|MR|Test|E|Lead 27483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027484|127484|989898|1|9999027484|MR|Test|E|Lead 27484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027485|127485|989898|1|9999027485|MR|Test|E|Lead 27485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027486|127486|989898|1|9999027486|MR|Test|E|Lead 27486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027487|127487|989898|1|9999027487|MR|Test|E|Lead 27487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027488|127488|989898|1|9999027488|MR|Test|E|Lead 27488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027489|127489|989898|1|9999027489|MR|Test|E|Lead 27489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027490|127490|989898|1|9999027490|MR|Test|E|Lead 27490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027491|127491|989898|1|9999027491|MR|Test|E|Lead 27491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027492|127492|989898|1|9999027492|MR|Test|E|Lead 27492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027493|127493|989898|1|9999027493|MR|Test|E|Lead 27493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027494|127494|989898|1|9999027494|MR|Test|E|Lead 27494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027495|127495|989898|1|9999027495|MR|Test|E|Lead 27495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027496|127496|989898|1|9999027496|MR|Test|E|Lead 27496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027497|127497|989898|1|9999027497|MR|Test|E|Lead 27497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027498|127498|989898|1|9999027498|MR|Test|E|Lead 27498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027499|127499|989898|1|9999027499|MR|Test|E|Lead 27499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027500|127500|989898|1|9999027500|MR|Test|E|Lead 27500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027501|127501|989898|1|9999027501|MR|Test|E|Lead 27501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027502|127502|989898|1|9999027502|MR|Test|E|Lead 27502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027503|127503|989898|1|9999027503|MR|Test|E|Lead 27503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027504|127504|989898|1|9999027504|MR|Test|E|Lead 27504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027505|127505|989898|1|9999027505|MR|Test|E|Lead 27505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027506|127506|989898|1|9999027506|MR|Test|E|Lead 27506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027507|127507|989898|1|9999027507|MR|Test|E|Lead 27507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027508|127508|989898|1|9999027508|MR|Test|E|Lead 27508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027509|127509|989898|1|9999027509|MR|Test|E|Lead 27509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027510|127510|989898|1|9999027510|MR|Test|E|Lead 27510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027511|127511|989898|1|9999027511|MR|Test|E|Lead 27511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027512|127512|989898|1|9999027512|MR|Test|E|Lead 27512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027513|127513|989898|1|9999027513|MR|Test|E|Lead 27513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027514|127514|989898|1|9999027514|MR|Test|E|Lead 27514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027515|127515|989898|1|9999027515|MR|Test|E|Lead 27515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027516|127516|989898|1|9999027516|MR|Test|E|Lead 27516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027517|127517|989898|1|9999027517|MR|Test|E|Lead 27517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027518|127518|989898|1|9999027518|MR|Test|E|Lead 27518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027519|127519|989898|1|9999027519|MR|Test|E|Lead 27519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027520|127520|989898|1|9999027520|MR|Test|E|Lead 27520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027521|127521|989898|1|9999027521|MR|Test|E|Lead 27521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027522|127522|989898|1|9999027522|MR|Test|E|Lead 27522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027523|127523|989898|1|9999027523|MR|Test|E|Lead 27523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027524|127524|989898|1|9999027524|MR|Test|E|Lead 27524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027525|127525|989898|1|9999027525|MR|Test|E|Lead 27525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027526|127526|989898|1|9999027526|MR|Test|E|Lead 27526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027527|127527|989898|1|9999027527|MR|Test|E|Lead 27527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027528|127528|989898|1|9999027528|MR|Test|E|Lead 27528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027529|127529|989898|1|9999027529|MR|Test|E|Lead 27529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027530|127530|989898|1|9999027530|MR|Test|E|Lead 27530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027531|127531|989898|1|9999027531|MR|Test|E|Lead 27531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027532|127532|989898|1|9999027532|MR|Test|E|Lead 27532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027533|127533|989898|1|9999027533|MR|Test|E|Lead 27533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027534|127534|989898|1|9999027534|MR|Test|E|Lead 27534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027535|127535|989898|1|9999027535|MR|Test|E|Lead 27535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027536|127536|989898|1|9999027536|MR|Test|E|Lead 27536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027537|127537|989898|1|9999027537|MR|Test|E|Lead 27537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027538|127538|989898|1|9999027538|MR|Test|E|Lead 27538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027539|127539|989898|1|9999027539|MR|Test|E|Lead 27539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027540|127540|989898|1|9999027540|MR|Test|E|Lead 27540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027541|127541|989898|1|9999027541|MR|Test|E|Lead 27541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027542|127542|989898|1|9999027542|MR|Test|E|Lead 27542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027543|127543|989898|1|9999027543|MR|Test|E|Lead 27543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027544|127544|989898|1|9999027544|MR|Test|E|Lead 27544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027545|127545|989898|1|9999027545|MR|Test|E|Lead 27545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027546|127546|989898|1|9999027546|MR|Test|E|Lead 27546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027547|127547|989898|1|9999027547|MR|Test|E|Lead 27547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027548|127548|989898|1|9999027548|MR|Test|E|Lead 27548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027549|127549|989898|1|9999027549|MR|Test|E|Lead 27549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027550|127550|989898|1|9999027550|MR|Test|E|Lead 27550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027551|127551|989898|1|9999027551|MR|Test|E|Lead 27551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027552|127552|989898|1|9999027552|MR|Test|E|Lead 27552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027553|127553|989898|1|9999027553|MR|Test|E|Lead 27553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027554|127554|989898|1|9999027554|MR|Test|E|Lead 27554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027555|127555|989898|1|9999027555|MR|Test|E|Lead 27555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027556|127556|989898|1|9999027556|MR|Test|E|Lead 27556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027557|127557|989898|1|9999027557|MR|Test|E|Lead 27557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027558|127558|989898|1|9999027558|MR|Test|E|Lead 27558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027559|127559|989898|1|9999027559|MR|Test|E|Lead 27559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027560|127560|989898|1|9999027560|MR|Test|E|Lead 27560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027561|127561|989898|1|9999027561|MR|Test|E|Lead 27561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027562|127562|989898|1|9999027562|MR|Test|E|Lead 27562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027563|127563|989898|1|9999027563|MR|Test|E|Lead 27563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027564|127564|989898|1|9999027564|MR|Test|E|Lead 27564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027565|127565|989898|1|9999027565|MR|Test|E|Lead 27565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027566|127566|989898|1|9999027566|MR|Test|E|Lead 27566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027567|127567|989898|1|9999027567|MR|Test|E|Lead 27567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027568|127568|989898|1|9999027568|MR|Test|E|Lead 27568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027569|127569|989898|1|9999027569|MR|Test|E|Lead 27569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027570|127570|989898|1|9999027570|MR|Test|E|Lead 27570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027571|127571|989898|1|9999027571|MR|Test|E|Lead 27571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027572|127572|989898|1|9999027572|MR|Test|E|Lead 27572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027573|127573|989898|1|9999027573|MR|Test|E|Lead 27573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027574|127574|989898|1|9999027574|MR|Test|E|Lead 27574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027575|127575|989898|1|9999027575|MR|Test|E|Lead 27575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027576|127576|989898|1|9999027576|MR|Test|E|Lead 27576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027577|127577|989898|1|9999027577|MR|Test|E|Lead 27577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027578|127578|989898|1|9999027578|MR|Test|E|Lead 27578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027579|127579|989898|1|9999027579|MR|Test|E|Lead 27579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027580|127580|989898|1|9999027580|MR|Test|E|Lead 27580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027581|127581|989898|1|9999027581|MR|Test|E|Lead 27581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027582|127582|989898|1|9999027582|MR|Test|E|Lead 27582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027583|127583|989898|1|9999027583|MR|Test|E|Lead 27583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027584|127584|989898|1|9999027584|MR|Test|E|Lead 27584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027585|127585|989898|1|9999027585|MR|Test|E|Lead 27585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027586|127586|989898|1|9999027586|MR|Test|E|Lead 27586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027587|127587|989898|1|9999027587|MR|Test|E|Lead 27587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027588|127588|989898|1|9999027588|MR|Test|E|Lead 27588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027589|127589|989898|1|9999027589|MR|Test|E|Lead 27589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027590|127590|989898|1|9999027590|MR|Test|E|Lead 27590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027591|127591|989898|1|9999027591|MR|Test|E|Lead 27591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027592|127592|989898|1|9999027592|MR|Test|E|Lead 27592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027593|127593|989898|1|9999027593|MR|Test|E|Lead 27593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027594|127594|989898|1|9999027594|MR|Test|E|Lead 27594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027595|127595|989898|1|9999027595|MR|Test|E|Lead 27595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027596|127596|989898|1|9999027596|MR|Test|E|Lead 27596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027597|127597|989898|1|9999027597|MR|Test|E|Lead 27597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027598|127598|989898|1|9999027598|MR|Test|E|Lead 27598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027599|127599|989898|1|9999027599|MR|Test|E|Lead 27599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027600|127600|989898|1|9999027600|MR|Test|E|Lead 27600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027601|127601|989898|1|9999027601|MR|Test|E|Lead 27601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027602|127602|989898|1|9999027602|MR|Test|E|Lead 27602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027603|127603|989898|1|9999027603|MR|Test|E|Lead 27603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027604|127604|989898|1|9999027604|MR|Test|E|Lead 27604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027605|127605|989898|1|9999027605|MR|Test|E|Lead 27605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027606|127606|989898|1|9999027606|MR|Test|E|Lead 27606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027607|127607|989898|1|9999027607|MR|Test|E|Lead 27607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027608|127608|989898|1|9999027608|MR|Test|E|Lead 27608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027609|127609|989898|1|9999027609|MR|Test|E|Lead 27609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027610|127610|989898|1|9999027610|MR|Test|E|Lead 27610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027611|127611|989898|1|9999027611|MR|Test|E|Lead 27611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027612|127612|989898|1|9999027612|MR|Test|E|Lead 27612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027613|127613|989898|1|9999027613|MR|Test|E|Lead 27613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027614|127614|989898|1|9999027614|MR|Test|E|Lead 27614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027615|127615|989898|1|9999027615|MR|Test|E|Lead 27615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027616|127616|989898|1|9999027616|MR|Test|E|Lead 27616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027617|127617|989898|1|9999027617|MR|Test|E|Lead 27617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027618|127618|989898|1|9999027618|MR|Test|E|Lead 27618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027619|127619|989898|1|9999027619|MR|Test|E|Lead 27619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027620|127620|989898|1|9999027620|MR|Test|E|Lead 27620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027621|127621|989898|1|9999027621|MR|Test|E|Lead 27621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027622|127622|989898|1|9999027622|MR|Test|E|Lead 27622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027623|127623|989898|1|9999027623|MR|Test|E|Lead 27623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027624|127624|989898|1|9999027624|MR|Test|E|Lead 27624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027625|127625|989898|1|9999027625|MR|Test|E|Lead 27625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027626|127626|989898|1|9999027626|MR|Test|E|Lead 27626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027627|127627|989898|1|9999027627|MR|Test|E|Lead 27627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027628|127628|989898|1|9999027628|MR|Test|E|Lead 27628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027629|127629|989898|1|9999027629|MR|Test|E|Lead 27629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027630|127630|989898|1|9999027630|MR|Test|E|Lead 27630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027631|127631|989898|1|9999027631|MR|Test|E|Lead 27631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027632|127632|989898|1|9999027632|MR|Test|E|Lead 27632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027633|127633|989898|1|9999027633|MR|Test|E|Lead 27633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027634|127634|989898|1|9999027634|MR|Test|E|Lead 27634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027635|127635|989898|1|9999027635|MR|Test|E|Lead 27635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027636|127636|989898|1|9999027636|MR|Test|E|Lead 27636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027637|127637|989898|1|9999027637|MR|Test|E|Lead 27637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027638|127638|989898|1|9999027638|MR|Test|E|Lead 27638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027639|127639|989898|1|9999027639|MR|Test|E|Lead 27639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027640|127640|989898|1|9999027640|MR|Test|E|Lead 27640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027641|127641|989898|1|9999027641|MR|Test|E|Lead 27641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027642|127642|989898|1|9999027642|MR|Test|E|Lead 27642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027643|127643|989898|1|9999027643|MR|Test|E|Lead 27643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027644|127644|989898|1|9999027644|MR|Test|E|Lead 27644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027645|127645|989898|1|9999027645|MR|Test|E|Lead 27645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027646|127646|989898|1|9999027646|MR|Test|E|Lead 27646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027647|127647|989898|1|9999027647|MR|Test|E|Lead 27647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027648|127648|989898|1|9999027648|MR|Test|E|Lead 27648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027649|127649|989898|1|9999027649|MR|Test|E|Lead 27649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027650|127650|989898|1|9999027650|MR|Test|E|Lead 27650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027651|127651|989898|1|9999027651|MR|Test|E|Lead 27651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027652|127652|989898|1|9999027652|MR|Test|E|Lead 27652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027653|127653|989898|1|9999027653|MR|Test|E|Lead 27653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027654|127654|989898|1|9999027654|MR|Test|E|Lead 27654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027655|127655|989898|1|9999027655|MR|Test|E|Lead 27655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027656|127656|989898|1|9999027656|MR|Test|E|Lead 27656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027657|127657|989898|1|9999027657|MR|Test|E|Lead 27657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027658|127658|989898|1|9999027658|MR|Test|E|Lead 27658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027659|127659|989898|1|9999027659|MR|Test|E|Lead 27659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027660|127660|989898|1|9999027660|MR|Test|E|Lead 27660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027661|127661|989898|1|9999027661|MR|Test|E|Lead 27661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027662|127662|989898|1|9999027662|MR|Test|E|Lead 27662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027663|127663|989898|1|9999027663|MR|Test|E|Lead 27663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027664|127664|989898|1|9999027664|MR|Test|E|Lead 27664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027665|127665|989898|1|9999027665|MR|Test|E|Lead 27665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027666|127666|989898|1|9999027666|MR|Test|E|Lead 27666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027667|127667|989898|1|9999027667|MR|Test|E|Lead 27667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027668|127668|989898|1|9999027668|MR|Test|E|Lead 27668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027669|127669|989898|1|9999027669|MR|Test|E|Lead 27669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027670|127670|989898|1|9999027670|MR|Test|E|Lead 27670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027671|127671|989898|1|9999027671|MR|Test|E|Lead 27671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027672|127672|989898|1|9999027672|MR|Test|E|Lead 27672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027673|127673|989898|1|9999027673|MR|Test|E|Lead 27673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027674|127674|989898|1|9999027674|MR|Test|E|Lead 27674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027675|127675|989898|1|9999027675|MR|Test|E|Lead 27675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027676|127676|989898|1|9999027676|MR|Test|E|Lead 27676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027677|127677|989898|1|9999027677|MR|Test|E|Lead 27677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027678|127678|989898|1|9999027678|MR|Test|E|Lead 27678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027679|127679|989898|1|9999027679|MR|Test|E|Lead 27679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027680|127680|989898|1|9999027680|MR|Test|E|Lead 27680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027681|127681|989898|1|9999027681|MR|Test|E|Lead 27681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027682|127682|989898|1|9999027682|MR|Test|E|Lead 27682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027683|127683|989898|1|9999027683|MR|Test|E|Lead 27683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027684|127684|989898|1|9999027684|MR|Test|E|Lead 27684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027685|127685|989898|1|9999027685|MR|Test|E|Lead 27685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027686|127686|989898|1|9999027686|MR|Test|E|Lead 27686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027687|127687|989898|1|9999027687|MR|Test|E|Lead 27687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027688|127688|989898|1|9999027688|MR|Test|E|Lead 27688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027689|127689|989898|1|9999027689|MR|Test|E|Lead 27689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027690|127690|989898|1|9999027690|MR|Test|E|Lead 27690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027691|127691|989898|1|9999027691|MR|Test|E|Lead 27691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027692|127692|989898|1|9999027692|MR|Test|E|Lead 27692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027693|127693|989898|1|9999027693|MR|Test|E|Lead 27693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027694|127694|989898|1|9999027694|MR|Test|E|Lead 27694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027695|127695|989898|1|9999027695|MR|Test|E|Lead 27695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027696|127696|989898|1|9999027696|MR|Test|E|Lead 27696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027697|127697|989898|1|9999027697|MR|Test|E|Lead 27697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027698|127698|989898|1|9999027698|MR|Test|E|Lead 27698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027699|127699|989898|1|9999027699|MR|Test|E|Lead 27699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027700|127700|989898|1|9999027700|MR|Test|E|Lead 27700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027701|127701|989898|1|9999027701|MR|Test|E|Lead 27701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027702|127702|989898|1|9999027702|MR|Test|E|Lead 27702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027703|127703|989898|1|9999027703|MR|Test|E|Lead 27703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027704|127704|989898|1|9999027704|MR|Test|E|Lead 27704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027705|127705|989898|1|9999027705|MR|Test|E|Lead 27705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027706|127706|989898|1|9999027706|MR|Test|E|Lead 27706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027707|127707|989898|1|9999027707|MR|Test|E|Lead 27707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027708|127708|989898|1|9999027708|MR|Test|E|Lead 27708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027709|127709|989898|1|9999027709|MR|Test|E|Lead 27709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027710|127710|989898|1|9999027710|MR|Test|E|Lead 27710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027711|127711|989898|1|9999027711|MR|Test|E|Lead 27711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027712|127712|989898|1|9999027712|MR|Test|E|Lead 27712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027713|127713|989898|1|9999027713|MR|Test|E|Lead 27713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027714|127714|989898|1|9999027714|MR|Test|E|Lead 27714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027715|127715|989898|1|9999027715|MR|Test|E|Lead 27715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027716|127716|989898|1|9999027716|MR|Test|E|Lead 27716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027717|127717|989898|1|9999027717|MR|Test|E|Lead 27717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027718|127718|989898|1|9999027718|MR|Test|E|Lead 27718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027719|127719|989898|1|9999027719|MR|Test|E|Lead 27719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027720|127720|989898|1|9999027720|MR|Test|E|Lead 27720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027721|127721|989898|1|9999027721|MR|Test|E|Lead 27721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027722|127722|989898|1|9999027722|MR|Test|E|Lead 27722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027723|127723|989898|1|9999027723|MR|Test|E|Lead 27723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027724|127724|989898|1|9999027724|MR|Test|E|Lead 27724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027725|127725|989898|1|9999027725|MR|Test|E|Lead 27725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027726|127726|989898|1|9999027726|MR|Test|E|Lead 27726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027727|127727|989898|1|9999027727|MR|Test|E|Lead 27727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027728|127728|989898|1|9999027728|MR|Test|E|Lead 27728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027729|127729|989898|1|9999027729|MR|Test|E|Lead 27729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027730|127730|989898|1|9999027730|MR|Test|E|Lead 27730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027731|127731|989898|1|9999027731|MR|Test|E|Lead 27731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027732|127732|989898|1|9999027732|MR|Test|E|Lead 27732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027733|127733|989898|1|9999027733|MR|Test|E|Lead 27733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027734|127734|989898|1|9999027734|MR|Test|E|Lead 27734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027735|127735|989898|1|9999027735|MR|Test|E|Lead 27735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027736|127736|989898|1|9999027736|MR|Test|E|Lead 27736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027737|127737|989898|1|9999027737|MR|Test|E|Lead 27737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027738|127738|989898|1|9999027738|MR|Test|E|Lead 27738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027739|127739|989898|1|9999027739|MR|Test|E|Lead 27739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027740|127740|989898|1|9999027740|MR|Test|E|Lead 27740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027741|127741|989898|1|9999027741|MR|Test|E|Lead 27741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027742|127742|989898|1|9999027742|MR|Test|E|Lead 27742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027743|127743|989898|1|9999027743|MR|Test|E|Lead 27743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027744|127744|989898|1|9999027744|MR|Test|E|Lead 27744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027745|127745|989898|1|9999027745|MR|Test|E|Lead 27745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027746|127746|989898|1|9999027746|MR|Test|E|Lead 27746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027747|127747|989898|1|9999027747|MR|Test|E|Lead 27747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027748|127748|989898|1|9999027748|MR|Test|E|Lead 27748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027749|127749|989898|1|9999027749|MR|Test|E|Lead 27749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027750|127750|989898|1|9999027750|MR|Test|E|Lead 27750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027751|127751|989898|1|9999027751|MR|Test|E|Lead 27751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027752|127752|989898|1|9999027752|MR|Test|E|Lead 27752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027753|127753|989898|1|9999027753|MR|Test|E|Lead 27753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027754|127754|989898|1|9999027754|MR|Test|E|Lead 27754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027755|127755|989898|1|9999027755|MR|Test|E|Lead 27755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027756|127756|989898|1|9999027756|MR|Test|E|Lead 27756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027757|127757|989898|1|9999027757|MR|Test|E|Lead 27757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027758|127758|989898|1|9999027758|MR|Test|E|Lead 27758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027759|127759|989898|1|9999027759|MR|Test|E|Lead 27759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027760|127760|989898|1|9999027760|MR|Test|E|Lead 27760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027761|127761|989898|1|9999027761|MR|Test|E|Lead 27761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027762|127762|989898|1|9999027762|MR|Test|E|Lead 27762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027763|127763|989898|1|9999027763|MR|Test|E|Lead 27763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027764|127764|989898|1|9999027764|MR|Test|E|Lead 27764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027765|127765|989898|1|9999027765|MR|Test|E|Lead 27765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027766|127766|989898|1|9999027766|MR|Test|E|Lead 27766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027767|127767|989898|1|9999027767|MR|Test|E|Lead 27767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027768|127768|989898|1|9999027768|MR|Test|E|Lead 27768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027769|127769|989898|1|9999027769|MR|Test|E|Lead 27769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027770|127770|989898|1|9999027770|MR|Test|E|Lead 27770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027771|127771|989898|1|9999027771|MR|Test|E|Lead 27771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027772|127772|989898|1|9999027772|MR|Test|E|Lead 27772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027773|127773|989898|1|9999027773|MR|Test|E|Lead 27773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027774|127774|989898|1|9999027774|MR|Test|E|Lead 27774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027775|127775|989898|1|9999027775|MR|Test|E|Lead 27775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027776|127776|989898|1|9999027776|MR|Test|E|Lead 27776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027777|127777|989898|1|9999027777|MR|Test|E|Lead 27777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027778|127778|989898|1|9999027778|MR|Test|E|Lead 27778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027779|127779|989898|1|9999027779|MR|Test|E|Lead 27779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027780|127780|989898|1|9999027780|MR|Test|E|Lead 27780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027781|127781|989898|1|9999027781|MR|Test|E|Lead 27781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027782|127782|989898|1|9999027782|MR|Test|E|Lead 27782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027783|127783|989898|1|9999027783|MR|Test|E|Lead 27783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027784|127784|989898|1|9999027784|MR|Test|E|Lead 27784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027785|127785|989898|1|9999027785|MR|Test|E|Lead 27785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027786|127786|989898|1|9999027786|MR|Test|E|Lead 27786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027787|127787|989898|1|9999027787|MR|Test|E|Lead 27787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027788|127788|989898|1|9999027788|MR|Test|E|Lead 27788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027789|127789|989898|1|9999027789|MR|Test|E|Lead 27789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027790|127790|989898|1|9999027790|MR|Test|E|Lead 27790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027791|127791|989898|1|9999027791|MR|Test|E|Lead 27791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027792|127792|989898|1|9999027792|MR|Test|E|Lead 27792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027793|127793|989898|1|9999027793|MR|Test|E|Lead 27793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027794|127794|989898|1|9999027794|MR|Test|E|Lead 27794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027795|127795|989898|1|9999027795|MR|Test|E|Lead 27795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027796|127796|989898|1|9999027796|MR|Test|E|Lead 27796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027797|127797|989898|1|9999027797|MR|Test|E|Lead 27797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027798|127798|989898|1|9999027798|MR|Test|E|Lead 27798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027799|127799|989898|1|9999027799|MR|Test|E|Lead 27799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027800|127800|989898|1|9999027800|MR|Test|E|Lead 27800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027801|127801|989898|1|9999027801|MR|Test|E|Lead 27801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027802|127802|989898|1|9999027802|MR|Test|E|Lead 27802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027803|127803|989898|1|9999027803|MR|Test|E|Lead 27803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027804|127804|989898|1|9999027804|MR|Test|E|Lead 27804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027805|127805|989898|1|9999027805|MR|Test|E|Lead 27805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027806|127806|989898|1|9999027806|MR|Test|E|Lead 27806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027807|127807|989898|1|9999027807|MR|Test|E|Lead 27807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027808|127808|989898|1|9999027808|MR|Test|E|Lead 27808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027809|127809|989898|1|9999027809|MR|Test|E|Lead 27809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027810|127810|989898|1|9999027810|MR|Test|E|Lead 27810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027811|127811|989898|1|9999027811|MR|Test|E|Lead 27811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027812|127812|989898|1|9999027812|MR|Test|E|Lead 27812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027813|127813|989898|1|9999027813|MR|Test|E|Lead 27813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027814|127814|989898|1|9999027814|MR|Test|E|Lead 27814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027815|127815|989898|1|9999027815|MR|Test|E|Lead 27815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027816|127816|989898|1|9999027816|MR|Test|E|Lead 27816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027817|127817|989898|1|9999027817|MR|Test|E|Lead 27817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027818|127818|989898|1|9999027818|MR|Test|E|Lead 27818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027819|127819|989898|1|9999027819|MR|Test|E|Lead 27819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027820|127820|989898|1|9999027820|MR|Test|E|Lead 27820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027821|127821|989898|1|9999027821|MR|Test|E|Lead 27821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027822|127822|989898|1|9999027822|MR|Test|E|Lead 27822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027823|127823|989898|1|9999027823|MR|Test|E|Lead 27823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027824|127824|989898|1|9999027824|MR|Test|E|Lead 27824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027825|127825|989898|1|9999027825|MR|Test|E|Lead 27825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027826|127826|989898|1|9999027826|MR|Test|E|Lead 27826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027827|127827|989898|1|9999027827|MR|Test|E|Lead 27827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027828|127828|989898|1|9999027828|MR|Test|E|Lead 27828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027829|127829|989898|1|9999027829|MR|Test|E|Lead 27829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027830|127830|989898|1|9999027830|MR|Test|E|Lead 27830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027831|127831|989898|1|9999027831|MR|Test|E|Lead 27831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027832|127832|989898|1|9999027832|MR|Test|E|Lead 27832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027833|127833|989898|1|9999027833|MR|Test|E|Lead 27833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027834|127834|989898|1|9999027834|MR|Test|E|Lead 27834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027835|127835|989898|1|9999027835|MR|Test|E|Lead 27835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027836|127836|989898|1|9999027836|MR|Test|E|Lead 27836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027837|127837|989898|1|9999027837|MR|Test|E|Lead 27837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027838|127838|989898|1|9999027838|MR|Test|E|Lead 27838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027839|127839|989898|1|9999027839|MR|Test|E|Lead 27839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027840|127840|989898|1|9999027840|MR|Test|E|Lead 27840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027841|127841|989898|1|9999027841|MR|Test|E|Lead 27841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027842|127842|989898|1|9999027842|MR|Test|E|Lead 27842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027843|127843|989898|1|9999027843|MR|Test|E|Lead 27843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027844|127844|989898|1|9999027844|MR|Test|E|Lead 27844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027845|127845|989898|1|9999027845|MR|Test|E|Lead 27845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027846|127846|989898|1|9999027846|MR|Test|E|Lead 27846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027847|127847|989898|1|9999027847|MR|Test|E|Lead 27847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027848|127848|989898|1|9999027848|MR|Test|E|Lead 27848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027849|127849|989898|1|9999027849|MR|Test|E|Lead 27849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027850|127850|989898|1|9999027850|MR|Test|E|Lead 27850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027851|127851|989898|1|9999027851|MR|Test|E|Lead 27851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027852|127852|989898|1|9999027852|MR|Test|E|Lead 27852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027853|127853|989898|1|9999027853|MR|Test|E|Lead 27853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027854|127854|989898|1|9999027854|MR|Test|E|Lead 27854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027855|127855|989898|1|9999027855|MR|Test|E|Lead 27855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027856|127856|989898|1|9999027856|MR|Test|E|Lead 27856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027857|127857|989898|1|9999027857|MR|Test|E|Lead 27857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027858|127858|989898|1|9999027858|MR|Test|E|Lead 27858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027859|127859|989898|1|9999027859|MR|Test|E|Lead 27859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027860|127860|989898|1|9999027860|MR|Test|E|Lead 27860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027861|127861|989898|1|9999027861|MR|Test|E|Lead 27861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027862|127862|989898|1|9999027862|MR|Test|E|Lead 27862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027863|127863|989898|1|9999027863|MR|Test|E|Lead 27863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027864|127864|989898|1|9999027864|MR|Test|E|Lead 27864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027865|127865|989898|1|9999027865|MR|Test|E|Lead 27865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027866|127866|989898|1|9999027866|MR|Test|E|Lead 27866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027867|127867|989898|1|9999027867|MR|Test|E|Lead 27867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027868|127868|989898|1|9999027868|MR|Test|E|Lead 27868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027869|127869|989898|1|9999027869|MR|Test|E|Lead 27869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027870|127870|989898|1|9999027870|MR|Test|E|Lead 27870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027871|127871|989898|1|9999027871|MR|Test|E|Lead 27871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027872|127872|989898|1|9999027872|MR|Test|E|Lead 27872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027873|127873|989898|1|9999027873|MR|Test|E|Lead 27873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027874|127874|989898|1|9999027874|MR|Test|E|Lead 27874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027875|127875|989898|1|9999027875|MR|Test|E|Lead 27875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027876|127876|989898|1|9999027876|MR|Test|E|Lead 27876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027877|127877|989898|1|9999027877|MR|Test|E|Lead 27877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027878|127878|989898|1|9999027878|MR|Test|E|Lead 27878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027879|127879|989898|1|9999027879|MR|Test|E|Lead 27879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027880|127880|989898|1|9999027880|MR|Test|E|Lead 27880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027881|127881|989898|1|9999027881|MR|Test|E|Lead 27881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027882|127882|989898|1|9999027882|MR|Test|E|Lead 27882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027883|127883|989898|1|9999027883|MR|Test|E|Lead 27883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027884|127884|989898|1|9999027884|MR|Test|E|Lead 27884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027885|127885|989898|1|9999027885|MR|Test|E|Lead 27885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027886|127886|989898|1|9999027886|MR|Test|E|Lead 27886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027887|127887|989898|1|9999027887|MR|Test|E|Lead 27887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027888|127888|989898|1|9999027888|MR|Test|E|Lead 27888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027889|127889|989898|1|9999027889|MR|Test|E|Lead 27889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027890|127890|989898|1|9999027890|MR|Test|E|Lead 27890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027891|127891|989898|1|9999027891|MR|Test|E|Lead 27891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027892|127892|989898|1|9999027892|MR|Test|E|Lead 27892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027893|127893|989898|1|9999027893|MR|Test|E|Lead 27893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027894|127894|989898|1|9999027894|MR|Test|E|Lead 27894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027895|127895|989898|1|9999027895|MR|Test|E|Lead 27895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027896|127896|989898|1|9999027896|MR|Test|E|Lead 27896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027897|127897|989898|1|9999027897|MR|Test|E|Lead 27897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027898|127898|989898|1|9999027898|MR|Test|E|Lead 27898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027899|127899|989898|1|9999027899|MR|Test|E|Lead 27899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027900|127900|989898|1|9999027900|MR|Test|E|Lead 27900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027901|127901|989898|1|9999027901|MR|Test|E|Lead 27901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027902|127902|989898|1|9999027902|MR|Test|E|Lead 27902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027903|127903|989898|1|9999027903|MR|Test|E|Lead 27903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027904|127904|989898|1|9999027904|MR|Test|E|Lead 27904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027905|127905|989898|1|9999027905|MR|Test|E|Lead 27905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027906|127906|989898|1|9999027906|MR|Test|E|Lead 27906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027907|127907|989898|1|9999027907|MR|Test|E|Lead 27907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027908|127908|989898|1|9999027908|MR|Test|E|Lead 27908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027909|127909|989898|1|9999027909|MR|Test|E|Lead 27909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027910|127910|989898|1|9999027910|MR|Test|E|Lead 27910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027911|127911|989898|1|9999027911|MR|Test|E|Lead 27911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027912|127912|989898|1|9999027912|MR|Test|E|Lead 27912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027913|127913|989898|1|9999027913|MR|Test|E|Lead 27913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027914|127914|989898|1|9999027914|MR|Test|E|Lead 27914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027915|127915|989898|1|9999027915|MR|Test|E|Lead 27915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027916|127916|989898|1|9999027916|MR|Test|E|Lead 27916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027917|127917|989898|1|9999027917|MR|Test|E|Lead 27917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027918|127918|989898|1|9999027918|MR|Test|E|Lead 27918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027919|127919|989898|1|9999027919|MR|Test|E|Lead 27919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027920|127920|989898|1|9999027920|MR|Test|E|Lead 27920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027921|127921|989898|1|9999027921|MR|Test|E|Lead 27921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027922|127922|989898|1|9999027922|MR|Test|E|Lead 27922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027923|127923|989898|1|9999027923|MR|Test|E|Lead 27923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027924|127924|989898|1|9999027924|MR|Test|E|Lead 27924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027925|127925|989898|1|9999027925|MR|Test|E|Lead 27925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027926|127926|989898|1|9999027926|MR|Test|E|Lead 27926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027927|127927|989898|1|9999027927|MR|Test|E|Lead 27927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027928|127928|989898|1|9999027928|MR|Test|E|Lead 27928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027929|127929|989898|1|9999027929|MR|Test|E|Lead 27929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027930|127930|989898|1|9999027930|MR|Test|E|Lead 27930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027931|127931|989898|1|9999027931|MR|Test|E|Lead 27931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027932|127932|989898|1|9999027932|MR|Test|E|Lead 27932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027933|127933|989898|1|9999027933|MR|Test|E|Lead 27933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027934|127934|989898|1|9999027934|MR|Test|E|Lead 27934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027935|127935|989898|1|9999027935|MR|Test|E|Lead 27935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027936|127936|989898|1|9999027936|MR|Test|E|Lead 27936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027937|127937|989898|1|9999027937|MR|Test|E|Lead 27937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027938|127938|989898|1|9999027938|MR|Test|E|Lead 27938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027939|127939|989898|1|9999027939|MR|Test|E|Lead 27939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027940|127940|989898|1|9999027940|MR|Test|E|Lead 27940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027941|127941|989898|1|9999027941|MR|Test|E|Lead 27941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027942|127942|989898|1|9999027942|MR|Test|E|Lead 27942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027943|127943|989898|1|9999027943|MR|Test|E|Lead 27943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027944|127944|989898|1|9999027944|MR|Test|E|Lead 27944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027945|127945|989898|1|9999027945|MR|Test|E|Lead 27945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027946|127946|989898|1|9999027946|MR|Test|E|Lead 27946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027947|127947|989898|1|9999027947|MR|Test|E|Lead 27947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027948|127948|989898|1|9999027948|MR|Test|E|Lead 27948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027949|127949|989898|1|9999027949|MR|Test|E|Lead 27949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027950|127950|989898|1|9999027950|MR|Test|E|Lead 27950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027951|127951|989898|1|9999027951|MR|Test|E|Lead 27951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027952|127952|989898|1|9999027952|MR|Test|E|Lead 27952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027953|127953|989898|1|9999027953|MR|Test|E|Lead 27953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027954|127954|989898|1|9999027954|MR|Test|E|Lead 27954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027955|127955|989898|1|9999027955|MR|Test|E|Lead 27955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027956|127956|989898|1|9999027956|MR|Test|E|Lead 27956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027957|127957|989898|1|9999027957|MR|Test|E|Lead 27957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027958|127958|989898|1|9999027958|MR|Test|E|Lead 27958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027959|127959|989898|1|9999027959|MR|Test|E|Lead 27959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027960|127960|989898|1|9999027960|MR|Test|E|Lead 27960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027961|127961|989898|1|9999027961|MR|Test|E|Lead 27961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027962|127962|989898|1|9999027962|MR|Test|E|Lead 27962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027963|127963|989898|1|9999027963|MR|Test|E|Lead 27963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027964|127964|989898|1|9999027964|MR|Test|E|Lead 27964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027965|127965|989898|1|9999027965|MR|Test|E|Lead 27965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027966|127966|989898|1|9999027966|MR|Test|E|Lead 27966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027967|127967|989898|1|9999027967|MR|Test|E|Lead 27967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027968|127968|989898|1|9999027968|MR|Test|E|Lead 27968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027969|127969|989898|1|9999027969|MR|Test|E|Lead 27969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027970|127970|989898|1|9999027970|MR|Test|E|Lead 27970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027971|127971|989898|1|9999027971|MR|Test|E|Lead 27971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027972|127972|989898|1|9999027972|MR|Test|E|Lead 27972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027973|127973|989898|1|9999027973|MR|Test|E|Lead 27973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027974|127974|989898|1|9999027974|MR|Test|E|Lead 27974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027975|127975|989898|1|9999027975|MR|Test|E|Lead 27975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027976|127976|989898|1|9999027976|MR|Test|E|Lead 27976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027977|127977|989898|1|9999027977|MR|Test|E|Lead 27977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027978|127978|989898|1|9999027978|MR|Test|E|Lead 27978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027979|127979|989898|1|9999027979|MR|Test|E|Lead 27979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027980|127980|989898|1|9999027980|MR|Test|E|Lead 27980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027981|127981|989898|1|9999027981|MR|Test|E|Lead 27981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027982|127982|989898|1|9999027982|MR|Test|E|Lead 27982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027983|127983|989898|1|9999027983|MR|Test|E|Lead 27983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027984|127984|989898|1|9999027984|MR|Test|E|Lead 27984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027985|127985|989898|1|9999027985|MR|Test|E|Lead 27985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027986|127986|989898|1|9999027986|MR|Test|E|Lead 27986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027987|127987|989898|1|9999027987|MR|Test|E|Lead 27987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027988|127988|989898|1|9999027988|MR|Test|E|Lead 27988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027989|127989|989898|1|9999027989|MR|Test|E|Lead 27989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027990|127990|989898|1|9999027990|MR|Test|E|Lead 27990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027991|127991|989898|1|9999027991|MR|Test|E|Lead 27991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027992|127992|989898|1|9999027992|MR|Test|E|Lead 27992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027993|127993|989898|1|9999027993|MR|Test|E|Lead 27993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027994|127994|989898|1|9999027994|MR|Test|E|Lead 27994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027995|127995|989898|1|9999027995|MR|Test|E|Lead 27995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027996|127996|989898|1|9999027996|MR|Test|E|Lead 27996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027997|127997|989898|1|9999027997|MR|Test|E|Lead 27997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027998|127998|989898|1|9999027998|MR|Test|E|Lead 27998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1027999|127999|989898|1|9999027999|MR|Test|E|Lead 27999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028000|128000|989898|1|9999028000|MR|Test|E|Lead 28000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028001|128001|989898|1|9999028001|MR|Test|E|Lead 28001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028002|128002|989898|1|9999028002|MR|Test|E|Lead 28002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028003|128003|989898|1|9999028003|MR|Test|E|Lead 28003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028004|128004|989898|1|9999028004|MR|Test|E|Lead 28004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028005|128005|989898|1|9999028005|MR|Test|E|Lead 28005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028006|128006|989898|1|9999028006|MR|Test|E|Lead 28006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028007|128007|989898|1|9999028007|MR|Test|E|Lead 28007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028008|128008|989898|1|9999028008|MR|Test|E|Lead 28008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028009|128009|989898|1|9999028009|MR|Test|E|Lead 28009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028010|128010|989898|1|9999028010|MR|Test|E|Lead 28010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028011|128011|989898|1|9999028011|MR|Test|E|Lead 28011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028012|128012|989898|1|9999028012|MR|Test|E|Lead 28012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028013|128013|989898|1|9999028013|MR|Test|E|Lead 28013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028014|128014|989898|1|9999028014|MR|Test|E|Lead 28014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028015|128015|989898|1|9999028015|MR|Test|E|Lead 28015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028016|128016|989898|1|9999028016|MR|Test|E|Lead 28016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028017|128017|989898|1|9999028017|MR|Test|E|Lead 28017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028018|128018|989898|1|9999028018|MR|Test|E|Lead 28018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028019|128019|989898|1|9999028019|MR|Test|E|Lead 28019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028020|128020|989898|1|9999028020|MR|Test|E|Lead 28020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028021|128021|989898|1|9999028021|MR|Test|E|Lead 28021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028022|128022|989898|1|9999028022|MR|Test|E|Lead 28022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028023|128023|989898|1|9999028023|MR|Test|E|Lead 28023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028024|128024|989898|1|9999028024|MR|Test|E|Lead 28024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028025|128025|989898|1|9999028025|MR|Test|E|Lead 28025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028026|128026|989898|1|9999028026|MR|Test|E|Lead 28026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028027|128027|989898|1|9999028027|MR|Test|E|Lead 28027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028028|128028|989898|1|9999028028|MR|Test|E|Lead 28028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028029|128029|989898|1|9999028029|MR|Test|E|Lead 28029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028030|128030|989898|1|9999028030|MR|Test|E|Lead 28030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028031|128031|989898|1|9999028031|MR|Test|E|Lead 28031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028032|128032|989898|1|9999028032|MR|Test|E|Lead 28032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028033|128033|989898|1|9999028033|MR|Test|E|Lead 28033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028034|128034|989898|1|9999028034|MR|Test|E|Lead 28034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028035|128035|989898|1|9999028035|MR|Test|E|Lead 28035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028036|128036|989898|1|9999028036|MR|Test|E|Lead 28036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028037|128037|989898|1|9999028037|MR|Test|E|Lead 28037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028038|128038|989898|1|9999028038|MR|Test|E|Lead 28038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028039|128039|989898|1|9999028039|MR|Test|E|Lead 28039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028040|128040|989898|1|9999028040|MR|Test|E|Lead 28040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028041|128041|989898|1|9999028041|MR|Test|E|Lead 28041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028042|128042|989898|1|9999028042|MR|Test|E|Lead 28042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028043|128043|989898|1|9999028043|MR|Test|E|Lead 28043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028044|128044|989898|1|9999028044|MR|Test|E|Lead 28044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028045|128045|989898|1|9999028045|MR|Test|E|Lead 28045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028046|128046|989898|1|9999028046|MR|Test|E|Lead 28046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028047|128047|989898|1|9999028047|MR|Test|E|Lead 28047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028048|128048|989898|1|9999028048|MR|Test|E|Lead 28048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028049|128049|989898|1|9999028049|MR|Test|E|Lead 28049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028050|128050|989898|1|9999028050|MR|Test|E|Lead 28050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028051|128051|989898|1|9999028051|MR|Test|E|Lead 28051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028052|128052|989898|1|9999028052|MR|Test|E|Lead 28052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028053|128053|989898|1|9999028053|MR|Test|E|Lead 28053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028054|128054|989898|1|9999028054|MR|Test|E|Lead 28054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028055|128055|989898|1|9999028055|MR|Test|E|Lead 28055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028056|128056|989898|1|9999028056|MR|Test|E|Lead 28056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028057|128057|989898|1|9999028057|MR|Test|E|Lead 28057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028058|128058|989898|1|9999028058|MR|Test|E|Lead 28058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028059|128059|989898|1|9999028059|MR|Test|E|Lead 28059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028060|128060|989898|1|9999028060|MR|Test|E|Lead 28060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028061|128061|989898|1|9999028061|MR|Test|E|Lead 28061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028062|128062|989898|1|9999028062|MR|Test|E|Lead 28062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028063|128063|989898|1|9999028063|MR|Test|E|Lead 28063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028064|128064|989898|1|9999028064|MR|Test|E|Lead 28064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028065|128065|989898|1|9999028065|MR|Test|E|Lead 28065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028066|128066|989898|1|9999028066|MR|Test|E|Lead 28066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028067|128067|989898|1|9999028067|MR|Test|E|Lead 28067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028068|128068|989898|1|9999028068|MR|Test|E|Lead 28068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028069|128069|989898|1|9999028069|MR|Test|E|Lead 28069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028070|128070|989898|1|9999028070|MR|Test|E|Lead 28070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028071|128071|989898|1|9999028071|MR|Test|E|Lead 28071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028072|128072|989898|1|9999028072|MR|Test|E|Lead 28072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028073|128073|989898|1|9999028073|MR|Test|E|Lead 28073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028074|128074|989898|1|9999028074|MR|Test|E|Lead 28074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028075|128075|989898|1|9999028075|MR|Test|E|Lead 28075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028076|128076|989898|1|9999028076|MR|Test|E|Lead 28076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028077|128077|989898|1|9999028077|MR|Test|E|Lead 28077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028078|128078|989898|1|9999028078|MR|Test|E|Lead 28078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028079|128079|989898|1|9999028079|MR|Test|E|Lead 28079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028080|128080|989898|1|9999028080|MR|Test|E|Lead 28080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028081|128081|989898|1|9999028081|MR|Test|E|Lead 28081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028082|128082|989898|1|9999028082|MR|Test|E|Lead 28082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028083|128083|989898|1|9999028083|MR|Test|E|Lead 28083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028084|128084|989898|1|9999028084|MR|Test|E|Lead 28084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028085|128085|989898|1|9999028085|MR|Test|E|Lead 28085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028086|128086|989898|1|9999028086|MR|Test|E|Lead 28086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028087|128087|989898|1|9999028087|MR|Test|E|Lead 28087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028088|128088|989898|1|9999028088|MR|Test|E|Lead 28088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028089|128089|989898|1|9999028089|MR|Test|E|Lead 28089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028090|128090|989898|1|9999028090|MR|Test|E|Lead 28090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028091|128091|989898|1|9999028091|MR|Test|E|Lead 28091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028092|128092|989898|1|9999028092|MR|Test|E|Lead 28092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028093|128093|989898|1|9999028093|MR|Test|E|Lead 28093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028094|128094|989898|1|9999028094|MR|Test|E|Lead 28094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028095|128095|989898|1|9999028095|MR|Test|E|Lead 28095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028096|128096|989898|1|9999028096|MR|Test|E|Lead 28096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028097|128097|989898|1|9999028097|MR|Test|E|Lead 28097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028098|128098|989898|1|9999028098|MR|Test|E|Lead 28098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028099|128099|989898|1|9999028099|MR|Test|E|Lead 28099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028100|128100|989898|1|9999028100|MR|Test|E|Lead 28100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028101|128101|989898|1|9999028101|MR|Test|E|Lead 28101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028102|128102|989898|1|9999028102|MR|Test|E|Lead 28102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028103|128103|989898|1|9999028103|MR|Test|E|Lead 28103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028104|128104|989898|1|9999028104|MR|Test|E|Lead 28104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028105|128105|989898|1|9999028105|MR|Test|E|Lead 28105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028106|128106|989898|1|9999028106|MR|Test|E|Lead 28106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028107|128107|989898|1|9999028107|MR|Test|E|Lead 28107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028108|128108|989898|1|9999028108|MR|Test|E|Lead 28108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028109|128109|989898|1|9999028109|MR|Test|E|Lead 28109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028110|128110|989898|1|9999028110|MR|Test|E|Lead 28110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028111|128111|989898|1|9999028111|MR|Test|E|Lead 28111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028112|128112|989898|1|9999028112|MR|Test|E|Lead 28112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028113|128113|989898|1|9999028113|MR|Test|E|Lead 28113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028114|128114|989898|1|9999028114|MR|Test|E|Lead 28114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028115|128115|989898|1|9999028115|MR|Test|E|Lead 28115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028116|128116|989898|1|9999028116|MR|Test|E|Lead 28116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028117|128117|989898|1|9999028117|MR|Test|E|Lead 28117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028118|128118|989898|1|9999028118|MR|Test|E|Lead 28118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028119|128119|989898|1|9999028119|MR|Test|E|Lead 28119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028120|128120|989898|1|9999028120|MR|Test|E|Lead 28120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028121|128121|989898|1|9999028121|MR|Test|E|Lead 28121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028122|128122|989898|1|9999028122|MR|Test|E|Lead 28122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028123|128123|989898|1|9999028123|MR|Test|E|Lead 28123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028124|128124|989898|1|9999028124|MR|Test|E|Lead 28124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028125|128125|989898|1|9999028125|MR|Test|E|Lead 28125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028126|128126|989898|1|9999028126|MR|Test|E|Lead 28126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028127|128127|989898|1|9999028127|MR|Test|E|Lead 28127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028128|128128|989898|1|9999028128|MR|Test|E|Lead 28128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028129|128129|989898|1|9999028129|MR|Test|E|Lead 28129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028130|128130|989898|1|9999028130|MR|Test|E|Lead 28130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028131|128131|989898|1|9999028131|MR|Test|E|Lead 28131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028132|128132|989898|1|9999028132|MR|Test|E|Lead 28132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028133|128133|989898|1|9999028133|MR|Test|E|Lead 28133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028134|128134|989898|1|9999028134|MR|Test|E|Lead 28134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028135|128135|989898|1|9999028135|MR|Test|E|Lead 28135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028136|128136|989898|1|9999028136|MR|Test|E|Lead 28136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028137|128137|989898|1|9999028137|MR|Test|E|Lead 28137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028138|128138|989898|1|9999028138|MR|Test|E|Lead 28138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028139|128139|989898|1|9999028139|MR|Test|E|Lead 28139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028140|128140|989898|1|9999028140|MR|Test|E|Lead 28140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028141|128141|989898|1|9999028141|MR|Test|E|Lead 28141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028142|128142|989898|1|9999028142|MR|Test|E|Lead 28142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028143|128143|989898|1|9999028143|MR|Test|E|Lead 28143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028144|128144|989898|1|9999028144|MR|Test|E|Lead 28144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028145|128145|989898|1|9999028145|MR|Test|E|Lead 28145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028146|128146|989898|1|9999028146|MR|Test|E|Lead 28146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028147|128147|989898|1|9999028147|MR|Test|E|Lead 28147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028148|128148|989898|1|9999028148|MR|Test|E|Lead 28148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028149|128149|989898|1|9999028149|MR|Test|E|Lead 28149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028150|128150|989898|1|9999028150|MR|Test|E|Lead 28150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028151|128151|989898|1|9999028151|MR|Test|E|Lead 28151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028152|128152|989898|1|9999028152|MR|Test|E|Lead 28152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028153|128153|989898|1|9999028153|MR|Test|E|Lead 28153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028154|128154|989898|1|9999028154|MR|Test|E|Lead 28154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028155|128155|989898|1|9999028155|MR|Test|E|Lead 28155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028156|128156|989898|1|9999028156|MR|Test|E|Lead 28156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028157|128157|989898|1|9999028157|MR|Test|E|Lead 28157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028158|128158|989898|1|9999028158|MR|Test|E|Lead 28158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028159|128159|989898|1|9999028159|MR|Test|E|Lead 28159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028160|128160|989898|1|9999028160|MR|Test|E|Lead 28160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028161|128161|989898|1|9999028161|MR|Test|E|Lead 28161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028162|128162|989898|1|9999028162|MR|Test|E|Lead 28162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028163|128163|989898|1|9999028163|MR|Test|E|Lead 28163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028164|128164|989898|1|9999028164|MR|Test|E|Lead 28164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028165|128165|989898|1|9999028165|MR|Test|E|Lead 28165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028166|128166|989898|1|9999028166|MR|Test|E|Lead 28166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028167|128167|989898|1|9999028167|MR|Test|E|Lead 28167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028168|128168|989898|1|9999028168|MR|Test|E|Lead 28168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028169|128169|989898|1|9999028169|MR|Test|E|Lead 28169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028170|128170|989898|1|9999028170|MR|Test|E|Lead 28170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028171|128171|989898|1|9999028171|MR|Test|E|Lead 28171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028172|128172|989898|1|9999028172|MR|Test|E|Lead 28172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028173|128173|989898|1|9999028173|MR|Test|E|Lead 28173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028174|128174|989898|1|9999028174|MR|Test|E|Lead 28174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028175|128175|989898|1|9999028175|MR|Test|E|Lead 28175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028176|128176|989898|1|9999028176|MR|Test|E|Lead 28176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028177|128177|989898|1|9999028177|MR|Test|E|Lead 28177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028178|128178|989898|1|9999028178|MR|Test|E|Lead 28178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028179|128179|989898|1|9999028179|MR|Test|E|Lead 28179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028180|128180|989898|1|9999028180|MR|Test|E|Lead 28180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028181|128181|989898|1|9999028181|MR|Test|E|Lead 28181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028182|128182|989898|1|9999028182|MR|Test|E|Lead 28182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028183|128183|989898|1|9999028183|MR|Test|E|Lead 28183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028184|128184|989898|1|9999028184|MR|Test|E|Lead 28184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028185|128185|989898|1|9999028185|MR|Test|E|Lead 28185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028186|128186|989898|1|9999028186|MR|Test|E|Lead 28186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028187|128187|989898|1|9999028187|MR|Test|E|Lead 28187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028188|128188|989898|1|9999028188|MR|Test|E|Lead 28188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028189|128189|989898|1|9999028189|MR|Test|E|Lead 28189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028190|128190|989898|1|9999028190|MR|Test|E|Lead 28190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028191|128191|989898|1|9999028191|MR|Test|E|Lead 28191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028192|128192|989898|1|9999028192|MR|Test|E|Lead 28192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028193|128193|989898|1|9999028193|MR|Test|E|Lead 28193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028194|128194|989898|1|9999028194|MR|Test|E|Lead 28194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028195|128195|989898|1|9999028195|MR|Test|E|Lead 28195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028196|128196|989898|1|9999028196|MR|Test|E|Lead 28196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028197|128197|989898|1|9999028197|MR|Test|E|Lead 28197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028198|128198|989898|1|9999028198|MR|Test|E|Lead 28198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028199|128199|989898|1|9999028199|MR|Test|E|Lead 28199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028200|128200|989898|1|9999028200|MR|Test|E|Lead 28200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028201|128201|989898|1|9999028201|MR|Test|E|Lead 28201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028202|128202|989898|1|9999028202|MR|Test|E|Lead 28202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028203|128203|989898|1|9999028203|MR|Test|E|Lead 28203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028204|128204|989898|1|9999028204|MR|Test|E|Lead 28204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028205|128205|989898|1|9999028205|MR|Test|E|Lead 28205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028206|128206|989898|1|9999028206|MR|Test|E|Lead 28206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028207|128207|989898|1|9999028207|MR|Test|E|Lead 28207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028208|128208|989898|1|9999028208|MR|Test|E|Lead 28208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028209|128209|989898|1|9999028209|MR|Test|E|Lead 28209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028210|128210|989898|1|9999028210|MR|Test|E|Lead 28210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028211|128211|989898|1|9999028211|MR|Test|E|Lead 28211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028212|128212|989898|1|9999028212|MR|Test|E|Lead 28212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028213|128213|989898|1|9999028213|MR|Test|E|Lead 28213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028214|128214|989898|1|9999028214|MR|Test|E|Lead 28214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028215|128215|989898|1|9999028215|MR|Test|E|Lead 28215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028216|128216|989898|1|9999028216|MR|Test|E|Lead 28216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028217|128217|989898|1|9999028217|MR|Test|E|Lead 28217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028218|128218|989898|1|9999028218|MR|Test|E|Lead 28218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028219|128219|989898|1|9999028219|MR|Test|E|Lead 28219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028220|128220|989898|1|9999028220|MR|Test|E|Lead 28220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028221|128221|989898|1|9999028221|MR|Test|E|Lead 28221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028222|128222|989898|1|9999028222|MR|Test|E|Lead 28222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028223|128223|989898|1|9999028223|MR|Test|E|Lead 28223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028224|128224|989898|1|9999028224|MR|Test|E|Lead 28224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028225|128225|989898|1|9999028225|MR|Test|E|Lead 28225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028226|128226|989898|1|9999028226|MR|Test|E|Lead 28226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028227|128227|989898|1|9999028227|MR|Test|E|Lead 28227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028228|128228|989898|1|9999028228|MR|Test|E|Lead 28228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028229|128229|989898|1|9999028229|MR|Test|E|Lead 28229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028230|128230|989898|1|9999028230|MR|Test|E|Lead 28230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028231|128231|989898|1|9999028231|MR|Test|E|Lead 28231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028232|128232|989898|1|9999028232|MR|Test|E|Lead 28232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028233|128233|989898|1|9999028233|MR|Test|E|Lead 28233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028234|128234|989898|1|9999028234|MR|Test|E|Lead 28234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028235|128235|989898|1|9999028235|MR|Test|E|Lead 28235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028236|128236|989898|1|9999028236|MR|Test|E|Lead 28236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028237|128237|989898|1|9999028237|MR|Test|E|Lead 28237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028238|128238|989898|1|9999028238|MR|Test|E|Lead 28238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028239|128239|989898|1|9999028239|MR|Test|E|Lead 28239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028240|128240|989898|1|9999028240|MR|Test|E|Lead 28240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028241|128241|989898|1|9999028241|MR|Test|E|Lead 28241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028242|128242|989898|1|9999028242|MR|Test|E|Lead 28242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028243|128243|989898|1|9999028243|MR|Test|E|Lead 28243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028244|128244|989898|1|9999028244|MR|Test|E|Lead 28244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028245|128245|989898|1|9999028245|MR|Test|E|Lead 28245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028246|128246|989898|1|9999028246|MR|Test|E|Lead 28246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028247|128247|989898|1|9999028247|MR|Test|E|Lead 28247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028248|128248|989898|1|9999028248|MR|Test|E|Lead 28248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028249|128249|989898|1|9999028249|MR|Test|E|Lead 28249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028250|128250|989898|1|9999028250|MR|Test|E|Lead 28250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028251|128251|989898|1|9999028251|MR|Test|E|Lead 28251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028252|128252|989898|1|9999028252|MR|Test|E|Lead 28252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028253|128253|989898|1|9999028253|MR|Test|E|Lead 28253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028254|128254|989898|1|9999028254|MR|Test|E|Lead 28254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028255|128255|989898|1|9999028255|MR|Test|E|Lead 28255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028256|128256|989898|1|9999028256|MR|Test|E|Lead 28256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028257|128257|989898|1|9999028257|MR|Test|E|Lead 28257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028258|128258|989898|1|9999028258|MR|Test|E|Lead 28258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028259|128259|989898|1|9999028259|MR|Test|E|Lead 28259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028260|128260|989898|1|9999028260|MR|Test|E|Lead 28260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028261|128261|989898|1|9999028261|MR|Test|E|Lead 28261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028262|128262|989898|1|9999028262|MR|Test|E|Lead 28262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028263|128263|989898|1|9999028263|MR|Test|E|Lead 28263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028264|128264|989898|1|9999028264|MR|Test|E|Lead 28264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028265|128265|989898|1|9999028265|MR|Test|E|Lead 28265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028266|128266|989898|1|9999028266|MR|Test|E|Lead 28266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028267|128267|989898|1|9999028267|MR|Test|E|Lead 28267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028268|128268|989898|1|9999028268|MR|Test|E|Lead 28268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028269|128269|989898|1|9999028269|MR|Test|E|Lead 28269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028270|128270|989898|1|9999028270|MR|Test|E|Lead 28270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028271|128271|989898|1|9999028271|MR|Test|E|Lead 28271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028272|128272|989898|1|9999028272|MR|Test|E|Lead 28272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028273|128273|989898|1|9999028273|MR|Test|E|Lead 28273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028274|128274|989898|1|9999028274|MR|Test|E|Lead 28274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028275|128275|989898|1|9999028275|MR|Test|E|Lead 28275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028276|128276|989898|1|9999028276|MR|Test|E|Lead 28276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028277|128277|989898|1|9999028277|MR|Test|E|Lead 28277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028278|128278|989898|1|9999028278|MR|Test|E|Lead 28278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028279|128279|989898|1|9999028279|MR|Test|E|Lead 28279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028280|128280|989898|1|9999028280|MR|Test|E|Lead 28280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028281|128281|989898|1|9999028281|MR|Test|E|Lead 28281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028282|128282|989898|1|9999028282|MR|Test|E|Lead 28282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028283|128283|989898|1|9999028283|MR|Test|E|Lead 28283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028284|128284|989898|1|9999028284|MR|Test|E|Lead 28284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028285|128285|989898|1|9999028285|MR|Test|E|Lead 28285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028286|128286|989898|1|9999028286|MR|Test|E|Lead 28286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028287|128287|989898|1|9999028287|MR|Test|E|Lead 28287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028288|128288|989898|1|9999028288|MR|Test|E|Lead 28288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028289|128289|989898|1|9999028289|MR|Test|E|Lead 28289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028290|128290|989898|1|9999028290|MR|Test|E|Lead 28290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028291|128291|989898|1|9999028291|MR|Test|E|Lead 28291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028292|128292|989898|1|9999028292|MR|Test|E|Lead 28292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028293|128293|989898|1|9999028293|MR|Test|E|Lead 28293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028294|128294|989898|1|9999028294|MR|Test|E|Lead 28294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028295|128295|989898|1|9999028295|MR|Test|E|Lead 28295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028296|128296|989898|1|9999028296|MR|Test|E|Lead 28296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028297|128297|989898|1|9999028297|MR|Test|E|Lead 28297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028298|128298|989898|1|9999028298|MR|Test|E|Lead 28298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028299|128299|989898|1|9999028299|MR|Test|E|Lead 28299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028300|128300|989898|1|9999028300|MR|Test|E|Lead 28300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028301|128301|989898|1|9999028301|MR|Test|E|Lead 28301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028302|128302|989898|1|9999028302|MR|Test|E|Lead 28302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028303|128303|989898|1|9999028303|MR|Test|E|Lead 28303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028304|128304|989898|1|9999028304|MR|Test|E|Lead 28304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028305|128305|989898|1|9999028305|MR|Test|E|Lead 28305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028306|128306|989898|1|9999028306|MR|Test|E|Lead 28306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028307|128307|989898|1|9999028307|MR|Test|E|Lead 28307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028308|128308|989898|1|9999028308|MR|Test|E|Lead 28308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028309|128309|989898|1|9999028309|MR|Test|E|Lead 28309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028310|128310|989898|1|9999028310|MR|Test|E|Lead 28310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028311|128311|989898|1|9999028311|MR|Test|E|Lead 28311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028312|128312|989898|1|9999028312|MR|Test|E|Lead 28312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028313|128313|989898|1|9999028313|MR|Test|E|Lead 28313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028314|128314|989898|1|9999028314|MR|Test|E|Lead 28314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028315|128315|989898|1|9999028315|MR|Test|E|Lead 28315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028316|128316|989898|1|9999028316|MR|Test|E|Lead 28316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028317|128317|989898|1|9999028317|MR|Test|E|Lead 28317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028318|128318|989898|1|9999028318|MR|Test|E|Lead 28318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028319|128319|989898|1|9999028319|MR|Test|E|Lead 28319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028320|128320|989898|1|9999028320|MR|Test|E|Lead 28320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028321|128321|989898|1|9999028321|MR|Test|E|Lead 28321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028322|128322|989898|1|9999028322|MR|Test|E|Lead 28322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028323|128323|989898|1|9999028323|MR|Test|E|Lead 28323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028324|128324|989898|1|9999028324|MR|Test|E|Lead 28324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028325|128325|989898|1|9999028325|MR|Test|E|Lead 28325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028326|128326|989898|1|9999028326|MR|Test|E|Lead 28326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028327|128327|989898|1|9999028327|MR|Test|E|Lead 28327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028328|128328|989898|1|9999028328|MR|Test|E|Lead 28328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028329|128329|989898|1|9999028329|MR|Test|E|Lead 28329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028330|128330|989898|1|9999028330|MR|Test|E|Lead 28330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028331|128331|989898|1|9999028331|MR|Test|E|Lead 28331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028332|128332|989898|1|9999028332|MR|Test|E|Lead 28332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028333|128333|989898|1|9999028333|MR|Test|E|Lead 28333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028334|128334|989898|1|9999028334|MR|Test|E|Lead 28334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028335|128335|989898|1|9999028335|MR|Test|E|Lead 28335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028336|128336|989898|1|9999028336|MR|Test|E|Lead 28336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028337|128337|989898|1|9999028337|MR|Test|E|Lead 28337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028338|128338|989898|1|9999028338|MR|Test|E|Lead 28338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028339|128339|989898|1|9999028339|MR|Test|E|Lead 28339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028340|128340|989898|1|9999028340|MR|Test|E|Lead 28340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028341|128341|989898|1|9999028341|MR|Test|E|Lead 28341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028342|128342|989898|1|9999028342|MR|Test|E|Lead 28342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028343|128343|989898|1|9999028343|MR|Test|E|Lead 28343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028344|128344|989898|1|9999028344|MR|Test|E|Lead 28344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028345|128345|989898|1|9999028345|MR|Test|E|Lead 28345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028346|128346|989898|1|9999028346|MR|Test|E|Lead 28346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028347|128347|989898|1|9999028347|MR|Test|E|Lead 28347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028348|128348|989898|1|9999028348|MR|Test|E|Lead 28348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028349|128349|989898|1|9999028349|MR|Test|E|Lead 28349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028350|128350|989898|1|9999028350|MR|Test|E|Lead 28350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028351|128351|989898|1|9999028351|MR|Test|E|Lead 28351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028352|128352|989898|1|9999028352|MR|Test|E|Lead 28352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028353|128353|989898|1|9999028353|MR|Test|E|Lead 28353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028354|128354|989898|1|9999028354|MR|Test|E|Lead 28354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028355|128355|989898|1|9999028355|MR|Test|E|Lead 28355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028356|128356|989898|1|9999028356|MR|Test|E|Lead 28356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028357|128357|989898|1|9999028357|MR|Test|E|Lead 28357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028358|128358|989898|1|9999028358|MR|Test|E|Lead 28358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028359|128359|989898|1|9999028359|MR|Test|E|Lead 28359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028360|128360|989898|1|9999028360|MR|Test|E|Lead 28360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028361|128361|989898|1|9999028361|MR|Test|E|Lead 28361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028362|128362|989898|1|9999028362|MR|Test|E|Lead 28362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028363|128363|989898|1|9999028363|MR|Test|E|Lead 28363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028364|128364|989898|1|9999028364|MR|Test|E|Lead 28364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028365|128365|989898|1|9999028365|MR|Test|E|Lead 28365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028366|128366|989898|1|9999028366|MR|Test|E|Lead 28366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028367|128367|989898|1|9999028367|MR|Test|E|Lead 28367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028368|128368|989898|1|9999028368|MR|Test|E|Lead 28368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028369|128369|989898|1|9999028369|MR|Test|E|Lead 28369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028370|128370|989898|1|9999028370|MR|Test|E|Lead 28370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028371|128371|989898|1|9999028371|MR|Test|E|Lead 28371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028372|128372|989898|1|9999028372|MR|Test|E|Lead 28372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028373|128373|989898|1|9999028373|MR|Test|E|Lead 28373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028374|128374|989898|1|9999028374|MR|Test|E|Lead 28374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028375|128375|989898|1|9999028375|MR|Test|E|Lead 28375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028376|128376|989898|1|9999028376|MR|Test|E|Lead 28376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028377|128377|989898|1|9999028377|MR|Test|E|Lead 28377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028378|128378|989898|1|9999028378|MR|Test|E|Lead 28378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028379|128379|989898|1|9999028379|MR|Test|E|Lead 28379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028380|128380|989898|1|9999028380|MR|Test|E|Lead 28380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028381|128381|989898|1|9999028381|MR|Test|E|Lead 28381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028382|128382|989898|1|9999028382|MR|Test|E|Lead 28382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028383|128383|989898|1|9999028383|MR|Test|E|Lead 28383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028384|128384|989898|1|9999028384|MR|Test|E|Lead 28384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028385|128385|989898|1|9999028385|MR|Test|E|Lead 28385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028386|128386|989898|1|9999028386|MR|Test|E|Lead 28386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028387|128387|989898|1|9999028387|MR|Test|E|Lead 28387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028388|128388|989898|1|9999028388|MR|Test|E|Lead 28388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028389|128389|989898|1|9999028389|MR|Test|E|Lead 28389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028390|128390|989898|1|9999028390|MR|Test|E|Lead 28390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028391|128391|989898|1|9999028391|MR|Test|E|Lead 28391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028392|128392|989898|1|9999028392|MR|Test|E|Lead 28392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028393|128393|989898|1|9999028393|MR|Test|E|Lead 28393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028394|128394|989898|1|9999028394|MR|Test|E|Lead 28394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028395|128395|989898|1|9999028395|MR|Test|E|Lead 28395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028396|128396|989898|1|9999028396|MR|Test|E|Lead 28396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028397|128397|989898|1|9999028397|MR|Test|E|Lead 28397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028398|128398|989898|1|9999028398|MR|Test|E|Lead 28398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028399|128399|989898|1|9999028399|MR|Test|E|Lead 28399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028400|128400|989898|1|9999028400|MR|Test|E|Lead 28400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028401|128401|989898|1|9999028401|MR|Test|E|Lead 28401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028402|128402|989898|1|9999028402|MR|Test|E|Lead 28402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028403|128403|989898|1|9999028403|MR|Test|E|Lead 28403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028404|128404|989898|1|9999028404|MR|Test|E|Lead 28404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028405|128405|989898|1|9999028405|MR|Test|E|Lead 28405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028406|128406|989898|1|9999028406|MR|Test|E|Lead 28406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028407|128407|989898|1|9999028407|MR|Test|E|Lead 28407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028408|128408|989898|1|9999028408|MR|Test|E|Lead 28408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028409|128409|989898|1|9999028409|MR|Test|E|Lead 28409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028410|128410|989898|1|9999028410|MR|Test|E|Lead 28410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028411|128411|989898|1|9999028411|MR|Test|E|Lead 28411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028412|128412|989898|1|9999028412|MR|Test|E|Lead 28412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028413|128413|989898|1|9999028413|MR|Test|E|Lead 28413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028414|128414|989898|1|9999028414|MR|Test|E|Lead 28414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028415|128415|989898|1|9999028415|MR|Test|E|Lead 28415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028416|128416|989898|1|9999028416|MR|Test|E|Lead 28416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028417|128417|989898|1|9999028417|MR|Test|E|Lead 28417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028418|128418|989898|1|9999028418|MR|Test|E|Lead 28418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028419|128419|989898|1|9999028419|MR|Test|E|Lead 28419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028420|128420|989898|1|9999028420|MR|Test|E|Lead 28420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028421|128421|989898|1|9999028421|MR|Test|E|Lead 28421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028422|128422|989898|1|9999028422|MR|Test|E|Lead 28422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028423|128423|989898|1|9999028423|MR|Test|E|Lead 28423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028424|128424|989898|1|9999028424|MR|Test|E|Lead 28424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028425|128425|989898|1|9999028425|MR|Test|E|Lead 28425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028426|128426|989898|1|9999028426|MR|Test|E|Lead 28426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028427|128427|989898|1|9999028427|MR|Test|E|Lead 28427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028428|128428|989898|1|9999028428|MR|Test|E|Lead 28428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028429|128429|989898|1|9999028429|MR|Test|E|Lead 28429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028430|128430|989898|1|9999028430|MR|Test|E|Lead 28430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028431|128431|989898|1|9999028431|MR|Test|E|Lead 28431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028432|128432|989898|1|9999028432|MR|Test|E|Lead 28432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028433|128433|989898|1|9999028433|MR|Test|E|Lead 28433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028434|128434|989898|1|9999028434|MR|Test|E|Lead 28434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028435|128435|989898|1|9999028435|MR|Test|E|Lead 28435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028436|128436|989898|1|9999028436|MR|Test|E|Lead 28436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028437|128437|989898|1|9999028437|MR|Test|E|Lead 28437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028438|128438|989898|1|9999028438|MR|Test|E|Lead 28438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028439|128439|989898|1|9999028439|MR|Test|E|Lead 28439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028440|128440|989898|1|9999028440|MR|Test|E|Lead 28440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028441|128441|989898|1|9999028441|MR|Test|E|Lead 28441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028442|128442|989898|1|9999028442|MR|Test|E|Lead 28442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028443|128443|989898|1|9999028443|MR|Test|E|Lead 28443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028444|128444|989898|1|9999028444|MR|Test|E|Lead 28444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028445|128445|989898|1|9999028445|MR|Test|E|Lead 28445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028446|128446|989898|1|9999028446|MR|Test|E|Lead 28446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028447|128447|989898|1|9999028447|MR|Test|E|Lead 28447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028448|128448|989898|1|9999028448|MR|Test|E|Lead 28448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028449|128449|989898|1|9999028449|MR|Test|E|Lead 28449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028450|128450|989898|1|9999028450|MR|Test|E|Lead 28450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028451|128451|989898|1|9999028451|MR|Test|E|Lead 28451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028452|128452|989898|1|9999028452|MR|Test|E|Lead 28452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028453|128453|989898|1|9999028453|MR|Test|E|Lead 28453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028454|128454|989898|1|9999028454|MR|Test|E|Lead 28454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028455|128455|989898|1|9999028455|MR|Test|E|Lead 28455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028456|128456|989898|1|9999028456|MR|Test|E|Lead 28456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028457|128457|989898|1|9999028457|MR|Test|E|Lead 28457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028458|128458|989898|1|9999028458|MR|Test|E|Lead 28458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028459|128459|989898|1|9999028459|MR|Test|E|Lead 28459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028460|128460|989898|1|9999028460|MR|Test|E|Lead 28460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028461|128461|989898|1|9999028461|MR|Test|E|Lead 28461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028462|128462|989898|1|9999028462|MR|Test|E|Lead 28462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028463|128463|989898|1|9999028463|MR|Test|E|Lead 28463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028464|128464|989898|1|9999028464|MR|Test|E|Lead 28464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028465|128465|989898|1|9999028465|MR|Test|E|Lead 28465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028466|128466|989898|1|9999028466|MR|Test|E|Lead 28466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028467|128467|989898|1|9999028467|MR|Test|E|Lead 28467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028468|128468|989898|1|9999028468|MR|Test|E|Lead 28468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028469|128469|989898|1|9999028469|MR|Test|E|Lead 28469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028470|128470|989898|1|9999028470|MR|Test|E|Lead 28470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028471|128471|989898|1|9999028471|MR|Test|E|Lead 28471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028472|128472|989898|1|9999028472|MR|Test|E|Lead 28472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028473|128473|989898|1|9999028473|MR|Test|E|Lead 28473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028474|128474|989898|1|9999028474|MR|Test|E|Lead 28474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028475|128475|989898|1|9999028475|MR|Test|E|Lead 28475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028476|128476|989898|1|9999028476|MR|Test|E|Lead 28476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028477|128477|989898|1|9999028477|MR|Test|E|Lead 28477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028478|128478|989898|1|9999028478|MR|Test|E|Lead 28478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028479|128479|989898|1|9999028479|MR|Test|E|Lead 28479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028480|128480|989898|1|9999028480|MR|Test|E|Lead 28480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028481|128481|989898|1|9999028481|MR|Test|E|Lead 28481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028482|128482|989898|1|9999028482|MR|Test|E|Lead 28482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028483|128483|989898|1|9999028483|MR|Test|E|Lead 28483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028484|128484|989898|1|9999028484|MR|Test|E|Lead 28484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028485|128485|989898|1|9999028485|MR|Test|E|Lead 28485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028486|128486|989898|1|9999028486|MR|Test|E|Lead 28486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028487|128487|989898|1|9999028487|MR|Test|E|Lead 28487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028488|128488|989898|1|9999028488|MR|Test|E|Lead 28488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028489|128489|989898|1|9999028489|MR|Test|E|Lead 28489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028490|128490|989898|1|9999028490|MR|Test|E|Lead 28490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028491|128491|989898|1|9999028491|MR|Test|E|Lead 28491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028492|128492|989898|1|9999028492|MR|Test|E|Lead 28492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028493|128493|989898|1|9999028493|MR|Test|E|Lead 28493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028494|128494|989898|1|9999028494|MR|Test|E|Lead 28494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028495|128495|989898|1|9999028495|MR|Test|E|Lead 28495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028496|128496|989898|1|9999028496|MR|Test|E|Lead 28496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028497|128497|989898|1|9999028497|MR|Test|E|Lead 28497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028498|128498|989898|1|9999028498|MR|Test|E|Lead 28498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028499|128499|989898|1|9999028499|MR|Test|E|Lead 28499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028500|128500|989898|1|9999028500|MR|Test|E|Lead 28500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028501|128501|989898|1|9999028501|MR|Test|E|Lead 28501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028502|128502|989898|1|9999028502|MR|Test|E|Lead 28502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028503|128503|989898|1|9999028503|MR|Test|E|Lead 28503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028504|128504|989898|1|9999028504|MR|Test|E|Lead 28504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028505|128505|989898|1|9999028505|MR|Test|E|Lead 28505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028506|128506|989898|1|9999028506|MR|Test|E|Lead 28506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028507|128507|989898|1|9999028507|MR|Test|E|Lead 28507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028508|128508|989898|1|9999028508|MR|Test|E|Lead 28508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028509|128509|989898|1|9999028509|MR|Test|E|Lead 28509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028510|128510|989898|1|9999028510|MR|Test|E|Lead 28510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028511|128511|989898|1|9999028511|MR|Test|E|Lead 28511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028512|128512|989898|1|9999028512|MR|Test|E|Lead 28512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028513|128513|989898|1|9999028513|MR|Test|E|Lead 28513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028514|128514|989898|1|9999028514|MR|Test|E|Lead 28514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028515|128515|989898|1|9999028515|MR|Test|E|Lead 28515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028516|128516|989898|1|9999028516|MR|Test|E|Lead 28516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028517|128517|989898|1|9999028517|MR|Test|E|Lead 28517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028518|128518|989898|1|9999028518|MR|Test|E|Lead 28518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028519|128519|989898|1|9999028519|MR|Test|E|Lead 28519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028520|128520|989898|1|9999028520|MR|Test|E|Lead 28520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028521|128521|989898|1|9999028521|MR|Test|E|Lead 28521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028522|128522|989898|1|9999028522|MR|Test|E|Lead 28522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028523|128523|989898|1|9999028523|MR|Test|E|Lead 28523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028524|128524|989898|1|9999028524|MR|Test|E|Lead 28524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028525|128525|989898|1|9999028525|MR|Test|E|Lead 28525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028526|128526|989898|1|9999028526|MR|Test|E|Lead 28526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028527|128527|989898|1|9999028527|MR|Test|E|Lead 28527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028528|128528|989898|1|9999028528|MR|Test|E|Lead 28528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028529|128529|989898|1|9999028529|MR|Test|E|Lead 28529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028530|128530|989898|1|9999028530|MR|Test|E|Lead 28530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028531|128531|989898|1|9999028531|MR|Test|E|Lead 28531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028532|128532|989898|1|9999028532|MR|Test|E|Lead 28532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028533|128533|989898|1|9999028533|MR|Test|E|Lead 28533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028534|128534|989898|1|9999028534|MR|Test|E|Lead 28534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028535|128535|989898|1|9999028535|MR|Test|E|Lead 28535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028536|128536|989898|1|9999028536|MR|Test|E|Lead 28536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028537|128537|989898|1|9999028537|MR|Test|E|Lead 28537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028538|128538|989898|1|9999028538|MR|Test|E|Lead 28538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028539|128539|989898|1|9999028539|MR|Test|E|Lead 28539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028540|128540|989898|1|9999028540|MR|Test|E|Lead 28540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028541|128541|989898|1|9999028541|MR|Test|E|Lead 28541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028542|128542|989898|1|9999028542|MR|Test|E|Lead 28542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028543|128543|989898|1|9999028543|MR|Test|E|Lead 28543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028544|128544|989898|1|9999028544|MR|Test|E|Lead 28544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028545|128545|989898|1|9999028545|MR|Test|E|Lead 28545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028546|128546|989898|1|9999028546|MR|Test|E|Lead 28546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028547|128547|989898|1|9999028547|MR|Test|E|Lead 28547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028548|128548|989898|1|9999028548|MR|Test|E|Lead 28548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028549|128549|989898|1|9999028549|MR|Test|E|Lead 28549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028550|128550|989898|1|9999028550|MR|Test|E|Lead 28550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028551|128551|989898|1|9999028551|MR|Test|E|Lead 28551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028552|128552|989898|1|9999028552|MR|Test|E|Lead 28552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028553|128553|989898|1|9999028553|MR|Test|E|Lead 28553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028554|128554|989898|1|9999028554|MR|Test|E|Lead 28554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028555|128555|989898|1|9999028555|MR|Test|E|Lead 28555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028556|128556|989898|1|9999028556|MR|Test|E|Lead 28556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028557|128557|989898|1|9999028557|MR|Test|E|Lead 28557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028558|128558|989898|1|9999028558|MR|Test|E|Lead 28558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028559|128559|989898|1|9999028559|MR|Test|E|Lead 28559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028560|128560|989898|1|9999028560|MR|Test|E|Lead 28560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028561|128561|989898|1|9999028561|MR|Test|E|Lead 28561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028562|128562|989898|1|9999028562|MR|Test|E|Lead 28562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028563|128563|989898|1|9999028563|MR|Test|E|Lead 28563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028564|128564|989898|1|9999028564|MR|Test|E|Lead 28564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028565|128565|989898|1|9999028565|MR|Test|E|Lead 28565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028566|128566|989898|1|9999028566|MR|Test|E|Lead 28566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028567|128567|989898|1|9999028567|MR|Test|E|Lead 28567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028568|128568|989898|1|9999028568|MR|Test|E|Lead 28568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028569|128569|989898|1|9999028569|MR|Test|E|Lead 28569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028570|128570|989898|1|9999028570|MR|Test|E|Lead 28570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028571|128571|989898|1|9999028571|MR|Test|E|Lead 28571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028572|128572|989898|1|9999028572|MR|Test|E|Lead 28572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028573|128573|989898|1|9999028573|MR|Test|E|Lead 28573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028574|128574|989898|1|9999028574|MR|Test|E|Lead 28574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028575|128575|989898|1|9999028575|MR|Test|E|Lead 28575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028576|128576|989898|1|9999028576|MR|Test|E|Lead 28576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028577|128577|989898|1|9999028577|MR|Test|E|Lead 28577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028578|128578|989898|1|9999028578|MR|Test|E|Lead 28578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028579|128579|989898|1|9999028579|MR|Test|E|Lead 28579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028580|128580|989898|1|9999028580|MR|Test|E|Lead 28580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028581|128581|989898|1|9999028581|MR|Test|E|Lead 28581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028582|128582|989898|1|9999028582|MR|Test|E|Lead 28582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028583|128583|989898|1|9999028583|MR|Test|E|Lead 28583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028584|128584|989898|1|9999028584|MR|Test|E|Lead 28584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028585|128585|989898|1|9999028585|MR|Test|E|Lead 28585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028586|128586|989898|1|9999028586|MR|Test|E|Lead 28586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028587|128587|989898|1|9999028587|MR|Test|E|Lead 28587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028588|128588|989898|1|9999028588|MR|Test|E|Lead 28588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028589|128589|989898|1|9999028589|MR|Test|E|Lead 28589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028590|128590|989898|1|9999028590|MR|Test|E|Lead 28590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028591|128591|989898|1|9999028591|MR|Test|E|Lead 28591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028592|128592|989898|1|9999028592|MR|Test|E|Lead 28592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028593|128593|989898|1|9999028593|MR|Test|E|Lead 28593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028594|128594|989898|1|9999028594|MR|Test|E|Lead 28594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028595|128595|989898|1|9999028595|MR|Test|E|Lead 28595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028596|128596|989898|1|9999028596|MR|Test|E|Lead 28596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028597|128597|989898|1|9999028597|MR|Test|E|Lead 28597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028598|128598|989898|1|9999028598|MR|Test|E|Lead 28598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028599|128599|989898|1|9999028599|MR|Test|E|Lead 28599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028600|128600|989898|1|9999028600|MR|Test|E|Lead 28600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028601|128601|989898|1|9999028601|MR|Test|E|Lead 28601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028602|128602|989898|1|9999028602|MR|Test|E|Lead 28602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028603|128603|989898|1|9999028603|MR|Test|E|Lead 28603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028604|128604|989898|1|9999028604|MR|Test|E|Lead 28604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028605|128605|989898|1|9999028605|MR|Test|E|Lead 28605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028606|128606|989898|1|9999028606|MR|Test|E|Lead 28606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028607|128607|989898|1|9999028607|MR|Test|E|Lead 28607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028608|128608|989898|1|9999028608|MR|Test|E|Lead 28608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028609|128609|989898|1|9999028609|MR|Test|E|Lead 28609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028610|128610|989898|1|9999028610|MR|Test|E|Lead 28610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028611|128611|989898|1|9999028611|MR|Test|E|Lead 28611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028612|128612|989898|1|9999028612|MR|Test|E|Lead 28612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028613|128613|989898|1|9999028613|MR|Test|E|Lead 28613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028614|128614|989898|1|9999028614|MR|Test|E|Lead 28614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028615|128615|989898|1|9999028615|MR|Test|E|Lead 28615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028616|128616|989898|1|9999028616|MR|Test|E|Lead 28616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028617|128617|989898|1|9999028617|MR|Test|E|Lead 28617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028618|128618|989898|1|9999028618|MR|Test|E|Lead 28618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028619|128619|989898|1|9999028619|MR|Test|E|Lead 28619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028620|128620|989898|1|9999028620|MR|Test|E|Lead 28620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028621|128621|989898|1|9999028621|MR|Test|E|Lead 28621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028622|128622|989898|1|9999028622|MR|Test|E|Lead 28622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028623|128623|989898|1|9999028623|MR|Test|E|Lead 28623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028624|128624|989898|1|9999028624|MR|Test|E|Lead 28624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028625|128625|989898|1|9999028625|MR|Test|E|Lead 28625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028626|128626|989898|1|9999028626|MR|Test|E|Lead 28626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028627|128627|989898|1|9999028627|MR|Test|E|Lead 28627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028628|128628|989898|1|9999028628|MR|Test|E|Lead 28628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028629|128629|989898|1|9999028629|MR|Test|E|Lead 28629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028630|128630|989898|1|9999028630|MR|Test|E|Lead 28630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028631|128631|989898|1|9999028631|MR|Test|E|Lead 28631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028632|128632|989898|1|9999028632|MR|Test|E|Lead 28632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028633|128633|989898|1|9999028633|MR|Test|E|Lead 28633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028634|128634|989898|1|9999028634|MR|Test|E|Lead 28634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028635|128635|989898|1|9999028635|MR|Test|E|Lead 28635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028636|128636|989898|1|9999028636|MR|Test|E|Lead 28636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028637|128637|989898|1|9999028637|MR|Test|E|Lead 28637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028638|128638|989898|1|9999028638|MR|Test|E|Lead 28638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028639|128639|989898|1|9999028639|MR|Test|E|Lead 28639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028640|128640|989898|1|9999028640|MR|Test|E|Lead 28640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028641|128641|989898|1|9999028641|MR|Test|E|Lead 28641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028642|128642|989898|1|9999028642|MR|Test|E|Lead 28642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028643|128643|989898|1|9999028643|MR|Test|E|Lead 28643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028644|128644|989898|1|9999028644|MR|Test|E|Lead 28644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028645|128645|989898|1|9999028645|MR|Test|E|Lead 28645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028646|128646|989898|1|9999028646|MR|Test|E|Lead 28646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028647|128647|989898|1|9999028647|MR|Test|E|Lead 28647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028648|128648|989898|1|9999028648|MR|Test|E|Lead 28648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028649|128649|989898|1|9999028649|MR|Test|E|Lead 28649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028650|128650|989898|1|9999028650|MR|Test|E|Lead 28650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028651|128651|989898|1|9999028651|MR|Test|E|Lead 28651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028652|128652|989898|1|9999028652|MR|Test|E|Lead 28652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028653|128653|989898|1|9999028653|MR|Test|E|Lead 28653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028654|128654|989898|1|9999028654|MR|Test|E|Lead 28654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028655|128655|989898|1|9999028655|MR|Test|E|Lead 28655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028656|128656|989898|1|9999028656|MR|Test|E|Lead 28656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028657|128657|989898|1|9999028657|MR|Test|E|Lead 28657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028658|128658|989898|1|9999028658|MR|Test|E|Lead 28658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028659|128659|989898|1|9999028659|MR|Test|E|Lead 28659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028660|128660|989898|1|9999028660|MR|Test|E|Lead 28660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028661|128661|989898|1|9999028661|MR|Test|E|Lead 28661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028662|128662|989898|1|9999028662|MR|Test|E|Lead 28662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028663|128663|989898|1|9999028663|MR|Test|E|Lead 28663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028664|128664|989898|1|9999028664|MR|Test|E|Lead 28664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028665|128665|989898|1|9999028665|MR|Test|E|Lead 28665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028666|128666|989898|1|9999028666|MR|Test|E|Lead 28666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028667|128667|989898|1|9999028667|MR|Test|E|Lead 28667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028668|128668|989898|1|9999028668|MR|Test|E|Lead 28668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028669|128669|989898|1|9999028669|MR|Test|E|Lead 28669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028670|128670|989898|1|9999028670|MR|Test|E|Lead 28670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028671|128671|989898|1|9999028671|MR|Test|E|Lead 28671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028672|128672|989898|1|9999028672|MR|Test|E|Lead 28672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028673|128673|989898|1|9999028673|MR|Test|E|Lead 28673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028674|128674|989898|1|9999028674|MR|Test|E|Lead 28674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028675|128675|989898|1|9999028675|MR|Test|E|Lead 28675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028676|128676|989898|1|9999028676|MR|Test|E|Lead 28676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028677|128677|989898|1|9999028677|MR|Test|E|Lead 28677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028678|128678|989898|1|9999028678|MR|Test|E|Lead 28678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028679|128679|989898|1|9999028679|MR|Test|E|Lead 28679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028680|128680|989898|1|9999028680|MR|Test|E|Lead 28680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028681|128681|989898|1|9999028681|MR|Test|E|Lead 28681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028682|128682|989898|1|9999028682|MR|Test|E|Lead 28682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028683|128683|989898|1|9999028683|MR|Test|E|Lead 28683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028684|128684|989898|1|9999028684|MR|Test|E|Lead 28684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028685|128685|989898|1|9999028685|MR|Test|E|Lead 28685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028686|128686|989898|1|9999028686|MR|Test|E|Lead 28686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028687|128687|989898|1|9999028687|MR|Test|E|Lead 28687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028688|128688|989898|1|9999028688|MR|Test|E|Lead 28688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028689|128689|989898|1|9999028689|MR|Test|E|Lead 28689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028690|128690|989898|1|9999028690|MR|Test|E|Lead 28690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028691|128691|989898|1|9999028691|MR|Test|E|Lead 28691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028692|128692|989898|1|9999028692|MR|Test|E|Lead 28692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028693|128693|989898|1|9999028693|MR|Test|E|Lead 28693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028694|128694|989898|1|9999028694|MR|Test|E|Lead 28694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028695|128695|989898|1|9999028695|MR|Test|E|Lead 28695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028696|128696|989898|1|9999028696|MR|Test|E|Lead 28696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028697|128697|989898|1|9999028697|MR|Test|E|Lead 28697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028698|128698|989898|1|9999028698|MR|Test|E|Lead 28698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028699|128699|989898|1|9999028699|MR|Test|E|Lead 28699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028700|128700|989898|1|9999028700|MR|Test|E|Lead 28700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028701|128701|989898|1|9999028701|MR|Test|E|Lead 28701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028702|128702|989898|1|9999028702|MR|Test|E|Lead 28702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028703|128703|989898|1|9999028703|MR|Test|E|Lead 28703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028704|128704|989898|1|9999028704|MR|Test|E|Lead 28704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028705|128705|989898|1|9999028705|MR|Test|E|Lead 28705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028706|128706|989898|1|9999028706|MR|Test|E|Lead 28706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028707|128707|989898|1|9999028707|MR|Test|E|Lead 28707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028708|128708|989898|1|9999028708|MR|Test|E|Lead 28708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028709|128709|989898|1|9999028709|MR|Test|E|Lead 28709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028710|128710|989898|1|9999028710|MR|Test|E|Lead 28710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028711|128711|989898|1|9999028711|MR|Test|E|Lead 28711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028712|128712|989898|1|9999028712|MR|Test|E|Lead 28712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028713|128713|989898|1|9999028713|MR|Test|E|Lead 28713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028714|128714|989898|1|9999028714|MR|Test|E|Lead 28714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028715|128715|989898|1|9999028715|MR|Test|E|Lead 28715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028716|128716|989898|1|9999028716|MR|Test|E|Lead 28716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028717|128717|989898|1|9999028717|MR|Test|E|Lead 28717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028718|128718|989898|1|9999028718|MR|Test|E|Lead 28718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028719|128719|989898|1|9999028719|MR|Test|E|Lead 28719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028720|128720|989898|1|9999028720|MR|Test|E|Lead 28720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028721|128721|989898|1|9999028721|MR|Test|E|Lead 28721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028722|128722|989898|1|9999028722|MR|Test|E|Lead 28722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028723|128723|989898|1|9999028723|MR|Test|E|Lead 28723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028724|128724|989898|1|9999028724|MR|Test|E|Lead 28724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028725|128725|989898|1|9999028725|MR|Test|E|Lead 28725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028726|128726|989898|1|9999028726|MR|Test|E|Lead 28726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028727|128727|989898|1|9999028727|MR|Test|E|Lead 28727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028728|128728|989898|1|9999028728|MR|Test|E|Lead 28728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028729|128729|989898|1|9999028729|MR|Test|E|Lead 28729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028730|128730|989898|1|9999028730|MR|Test|E|Lead 28730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028731|128731|989898|1|9999028731|MR|Test|E|Lead 28731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028732|128732|989898|1|9999028732|MR|Test|E|Lead 28732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028733|128733|989898|1|9999028733|MR|Test|E|Lead 28733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028734|128734|989898|1|9999028734|MR|Test|E|Lead 28734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028735|128735|989898|1|9999028735|MR|Test|E|Lead 28735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028736|128736|989898|1|9999028736|MR|Test|E|Lead 28736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028737|128737|989898|1|9999028737|MR|Test|E|Lead 28737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028738|128738|989898|1|9999028738|MR|Test|E|Lead 28738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028739|128739|989898|1|9999028739|MR|Test|E|Lead 28739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028740|128740|989898|1|9999028740|MR|Test|E|Lead 28740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028741|128741|989898|1|9999028741|MR|Test|E|Lead 28741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028742|128742|989898|1|9999028742|MR|Test|E|Lead 28742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028743|128743|989898|1|9999028743|MR|Test|E|Lead 28743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028744|128744|989898|1|9999028744|MR|Test|E|Lead 28744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028745|128745|989898|1|9999028745|MR|Test|E|Lead 28745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028746|128746|989898|1|9999028746|MR|Test|E|Lead 28746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028747|128747|989898|1|9999028747|MR|Test|E|Lead 28747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028748|128748|989898|1|9999028748|MR|Test|E|Lead 28748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028749|128749|989898|1|9999028749|MR|Test|E|Lead 28749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028750|128750|989898|1|9999028750|MR|Test|E|Lead 28750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028751|128751|989898|1|9999028751|MR|Test|E|Lead 28751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028752|128752|989898|1|9999028752|MR|Test|E|Lead 28752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028753|128753|989898|1|9999028753|MR|Test|E|Lead 28753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028754|128754|989898|1|9999028754|MR|Test|E|Lead 28754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028755|128755|989898|1|9999028755|MR|Test|E|Lead 28755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028756|128756|989898|1|9999028756|MR|Test|E|Lead 28756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028757|128757|989898|1|9999028757|MR|Test|E|Lead 28757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028758|128758|989898|1|9999028758|MR|Test|E|Lead 28758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028759|128759|989898|1|9999028759|MR|Test|E|Lead 28759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028760|128760|989898|1|9999028760|MR|Test|E|Lead 28760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028761|128761|989898|1|9999028761|MR|Test|E|Lead 28761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028762|128762|989898|1|9999028762|MR|Test|E|Lead 28762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028763|128763|989898|1|9999028763|MR|Test|E|Lead 28763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028764|128764|989898|1|9999028764|MR|Test|E|Lead 28764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028765|128765|989898|1|9999028765|MR|Test|E|Lead 28765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028766|128766|989898|1|9999028766|MR|Test|E|Lead 28766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028767|128767|989898|1|9999028767|MR|Test|E|Lead 28767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028768|128768|989898|1|9999028768|MR|Test|E|Lead 28768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028769|128769|989898|1|9999028769|MR|Test|E|Lead 28769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028770|128770|989898|1|9999028770|MR|Test|E|Lead 28770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028771|128771|989898|1|9999028771|MR|Test|E|Lead 28771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028772|128772|989898|1|9999028772|MR|Test|E|Lead 28772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028773|128773|989898|1|9999028773|MR|Test|E|Lead 28773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028774|128774|989898|1|9999028774|MR|Test|E|Lead 28774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028775|128775|989898|1|9999028775|MR|Test|E|Lead 28775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028776|128776|989898|1|9999028776|MR|Test|E|Lead 28776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028777|128777|989898|1|9999028777|MR|Test|E|Lead 28777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028778|128778|989898|1|9999028778|MR|Test|E|Lead 28778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028779|128779|989898|1|9999028779|MR|Test|E|Lead 28779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028780|128780|989898|1|9999028780|MR|Test|E|Lead 28780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028781|128781|989898|1|9999028781|MR|Test|E|Lead 28781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028782|128782|989898|1|9999028782|MR|Test|E|Lead 28782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028783|128783|989898|1|9999028783|MR|Test|E|Lead 28783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028784|128784|989898|1|9999028784|MR|Test|E|Lead 28784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028785|128785|989898|1|9999028785|MR|Test|E|Lead 28785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028786|128786|989898|1|9999028786|MR|Test|E|Lead 28786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028787|128787|989898|1|9999028787|MR|Test|E|Lead 28787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028788|128788|989898|1|9999028788|MR|Test|E|Lead 28788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028789|128789|989898|1|9999028789|MR|Test|E|Lead 28789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028790|128790|989898|1|9999028790|MR|Test|E|Lead 28790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028791|128791|989898|1|9999028791|MR|Test|E|Lead 28791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028792|128792|989898|1|9999028792|MR|Test|E|Lead 28792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028793|128793|989898|1|9999028793|MR|Test|E|Lead 28793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028794|128794|989898|1|9999028794|MR|Test|E|Lead 28794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028795|128795|989898|1|9999028795|MR|Test|E|Lead 28795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028796|128796|989898|1|9999028796|MR|Test|E|Lead 28796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028797|128797|989898|1|9999028797|MR|Test|E|Lead 28797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028798|128798|989898|1|9999028798|MR|Test|E|Lead 28798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028799|128799|989898|1|9999028799|MR|Test|E|Lead 28799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028800|128800|989898|1|9999028800|MR|Test|E|Lead 28800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028801|128801|989898|1|9999028801|MR|Test|E|Lead 28801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028802|128802|989898|1|9999028802|MR|Test|E|Lead 28802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028803|128803|989898|1|9999028803|MR|Test|E|Lead 28803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028804|128804|989898|1|9999028804|MR|Test|E|Lead 28804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028805|128805|989898|1|9999028805|MR|Test|E|Lead 28805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028806|128806|989898|1|9999028806|MR|Test|E|Lead 28806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028807|128807|989898|1|9999028807|MR|Test|E|Lead 28807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028808|128808|989898|1|9999028808|MR|Test|E|Lead 28808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028809|128809|989898|1|9999028809|MR|Test|E|Lead 28809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028810|128810|989898|1|9999028810|MR|Test|E|Lead 28810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028811|128811|989898|1|9999028811|MR|Test|E|Lead 28811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028812|128812|989898|1|9999028812|MR|Test|E|Lead 28812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028813|128813|989898|1|9999028813|MR|Test|E|Lead 28813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028814|128814|989898|1|9999028814|MR|Test|E|Lead 28814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028815|128815|989898|1|9999028815|MR|Test|E|Lead 28815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028816|128816|989898|1|9999028816|MR|Test|E|Lead 28816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028817|128817|989898|1|9999028817|MR|Test|E|Lead 28817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028818|128818|989898|1|9999028818|MR|Test|E|Lead 28818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028819|128819|989898|1|9999028819|MR|Test|E|Lead 28819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028820|128820|989898|1|9999028820|MR|Test|E|Lead 28820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028821|128821|989898|1|9999028821|MR|Test|E|Lead 28821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028822|128822|989898|1|9999028822|MR|Test|E|Lead 28822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028823|128823|989898|1|9999028823|MR|Test|E|Lead 28823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028824|128824|989898|1|9999028824|MR|Test|E|Lead 28824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028825|128825|989898|1|9999028825|MR|Test|E|Lead 28825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028826|128826|989898|1|9999028826|MR|Test|E|Lead 28826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028827|128827|989898|1|9999028827|MR|Test|E|Lead 28827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028828|128828|989898|1|9999028828|MR|Test|E|Lead 28828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028829|128829|989898|1|9999028829|MR|Test|E|Lead 28829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028830|128830|989898|1|9999028830|MR|Test|E|Lead 28830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028831|128831|989898|1|9999028831|MR|Test|E|Lead 28831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028832|128832|989898|1|9999028832|MR|Test|E|Lead 28832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028833|128833|989898|1|9999028833|MR|Test|E|Lead 28833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028834|128834|989898|1|9999028834|MR|Test|E|Lead 28834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028835|128835|989898|1|9999028835|MR|Test|E|Lead 28835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028836|128836|989898|1|9999028836|MR|Test|E|Lead 28836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028837|128837|989898|1|9999028837|MR|Test|E|Lead 28837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028838|128838|989898|1|9999028838|MR|Test|E|Lead 28838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028839|128839|989898|1|9999028839|MR|Test|E|Lead 28839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028840|128840|989898|1|9999028840|MR|Test|E|Lead 28840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028841|128841|989898|1|9999028841|MR|Test|E|Lead 28841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028842|128842|989898|1|9999028842|MR|Test|E|Lead 28842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028843|128843|989898|1|9999028843|MR|Test|E|Lead 28843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028844|128844|989898|1|9999028844|MR|Test|E|Lead 28844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028845|128845|989898|1|9999028845|MR|Test|E|Lead 28845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028846|128846|989898|1|9999028846|MR|Test|E|Lead 28846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028847|128847|989898|1|9999028847|MR|Test|E|Lead 28847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028848|128848|989898|1|9999028848|MR|Test|E|Lead 28848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028849|128849|989898|1|9999028849|MR|Test|E|Lead 28849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028850|128850|989898|1|9999028850|MR|Test|E|Lead 28850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028851|128851|989898|1|9999028851|MR|Test|E|Lead 28851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028852|128852|989898|1|9999028852|MR|Test|E|Lead 28852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028853|128853|989898|1|9999028853|MR|Test|E|Lead 28853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028854|128854|989898|1|9999028854|MR|Test|E|Lead 28854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028855|128855|989898|1|9999028855|MR|Test|E|Lead 28855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028856|128856|989898|1|9999028856|MR|Test|E|Lead 28856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028857|128857|989898|1|9999028857|MR|Test|E|Lead 28857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028858|128858|989898|1|9999028858|MR|Test|E|Lead 28858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028859|128859|989898|1|9999028859|MR|Test|E|Lead 28859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028860|128860|989898|1|9999028860|MR|Test|E|Lead 28860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028861|128861|989898|1|9999028861|MR|Test|E|Lead 28861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028862|128862|989898|1|9999028862|MR|Test|E|Lead 28862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028863|128863|989898|1|9999028863|MR|Test|E|Lead 28863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028864|128864|989898|1|9999028864|MR|Test|E|Lead 28864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028865|128865|989898|1|9999028865|MR|Test|E|Lead 28865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028866|128866|989898|1|9999028866|MR|Test|E|Lead 28866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028867|128867|989898|1|9999028867|MR|Test|E|Lead 28867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028868|128868|989898|1|9999028868|MR|Test|E|Lead 28868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028869|128869|989898|1|9999028869|MR|Test|E|Lead 28869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028870|128870|989898|1|9999028870|MR|Test|E|Lead 28870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028871|128871|989898|1|9999028871|MR|Test|E|Lead 28871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028872|128872|989898|1|9999028872|MR|Test|E|Lead 28872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028873|128873|989898|1|9999028873|MR|Test|E|Lead 28873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028874|128874|989898|1|9999028874|MR|Test|E|Lead 28874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028875|128875|989898|1|9999028875|MR|Test|E|Lead 28875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028876|128876|989898|1|9999028876|MR|Test|E|Lead 28876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028877|128877|989898|1|9999028877|MR|Test|E|Lead 28877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028878|128878|989898|1|9999028878|MR|Test|E|Lead 28878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028879|128879|989898|1|9999028879|MR|Test|E|Lead 28879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028880|128880|989898|1|9999028880|MR|Test|E|Lead 28880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028881|128881|989898|1|9999028881|MR|Test|E|Lead 28881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028882|128882|989898|1|9999028882|MR|Test|E|Lead 28882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028883|128883|989898|1|9999028883|MR|Test|E|Lead 28883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028884|128884|989898|1|9999028884|MR|Test|E|Lead 28884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028885|128885|989898|1|9999028885|MR|Test|E|Lead 28885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028886|128886|989898|1|9999028886|MR|Test|E|Lead 28886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028887|128887|989898|1|9999028887|MR|Test|E|Lead 28887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028888|128888|989898|1|9999028888|MR|Test|E|Lead 28888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028889|128889|989898|1|9999028889|MR|Test|E|Lead 28889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028890|128890|989898|1|9999028890|MR|Test|E|Lead 28890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028891|128891|989898|1|9999028891|MR|Test|E|Lead 28891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028892|128892|989898|1|9999028892|MR|Test|E|Lead 28892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028893|128893|989898|1|9999028893|MR|Test|E|Lead 28893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028894|128894|989898|1|9999028894|MR|Test|E|Lead 28894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028895|128895|989898|1|9999028895|MR|Test|E|Lead 28895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028896|128896|989898|1|9999028896|MR|Test|E|Lead 28896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028897|128897|989898|1|9999028897|MR|Test|E|Lead 28897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028898|128898|989898|1|9999028898|MR|Test|E|Lead 28898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028899|128899|989898|1|9999028899|MR|Test|E|Lead 28899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028900|128900|989898|1|9999028900|MR|Test|E|Lead 28900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028901|128901|989898|1|9999028901|MR|Test|E|Lead 28901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028902|128902|989898|1|9999028902|MR|Test|E|Lead 28902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028903|128903|989898|1|9999028903|MR|Test|E|Lead 28903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028904|128904|989898|1|9999028904|MR|Test|E|Lead 28904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028905|128905|989898|1|9999028905|MR|Test|E|Lead 28905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028906|128906|989898|1|9999028906|MR|Test|E|Lead 28906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028907|128907|989898|1|9999028907|MR|Test|E|Lead 28907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028908|128908|989898|1|9999028908|MR|Test|E|Lead 28908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028909|128909|989898|1|9999028909|MR|Test|E|Lead 28909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028910|128910|989898|1|9999028910|MR|Test|E|Lead 28910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028911|128911|989898|1|9999028911|MR|Test|E|Lead 28911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028912|128912|989898|1|9999028912|MR|Test|E|Lead 28912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028913|128913|989898|1|9999028913|MR|Test|E|Lead 28913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028914|128914|989898|1|9999028914|MR|Test|E|Lead 28914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028915|128915|989898|1|9999028915|MR|Test|E|Lead 28915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028916|128916|989898|1|9999028916|MR|Test|E|Lead 28916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028917|128917|989898|1|9999028917|MR|Test|E|Lead 28917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028918|128918|989898|1|9999028918|MR|Test|E|Lead 28918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028919|128919|989898|1|9999028919|MR|Test|E|Lead 28919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028920|128920|989898|1|9999028920|MR|Test|E|Lead 28920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028921|128921|989898|1|9999028921|MR|Test|E|Lead 28921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028922|128922|989898|1|9999028922|MR|Test|E|Lead 28922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028923|128923|989898|1|9999028923|MR|Test|E|Lead 28923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028924|128924|989898|1|9999028924|MR|Test|E|Lead 28924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028925|128925|989898|1|9999028925|MR|Test|E|Lead 28925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028926|128926|989898|1|9999028926|MR|Test|E|Lead 28926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028927|128927|989898|1|9999028927|MR|Test|E|Lead 28927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028928|128928|989898|1|9999028928|MR|Test|E|Lead 28928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028929|128929|989898|1|9999028929|MR|Test|E|Lead 28929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028930|128930|989898|1|9999028930|MR|Test|E|Lead 28930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028931|128931|989898|1|9999028931|MR|Test|E|Lead 28931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028932|128932|989898|1|9999028932|MR|Test|E|Lead 28932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028933|128933|989898|1|9999028933|MR|Test|E|Lead 28933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028934|128934|989898|1|9999028934|MR|Test|E|Lead 28934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028935|128935|989898|1|9999028935|MR|Test|E|Lead 28935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028936|128936|989898|1|9999028936|MR|Test|E|Lead 28936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028937|128937|989898|1|9999028937|MR|Test|E|Lead 28937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028938|128938|989898|1|9999028938|MR|Test|E|Lead 28938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028939|128939|989898|1|9999028939|MR|Test|E|Lead 28939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028940|128940|989898|1|9999028940|MR|Test|E|Lead 28940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028941|128941|989898|1|9999028941|MR|Test|E|Lead 28941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028942|128942|989898|1|9999028942|MR|Test|E|Lead 28942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028943|128943|989898|1|9999028943|MR|Test|E|Lead 28943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028944|128944|989898|1|9999028944|MR|Test|E|Lead 28944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028945|128945|989898|1|9999028945|MR|Test|E|Lead 28945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028946|128946|989898|1|9999028946|MR|Test|E|Lead 28946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028947|128947|989898|1|9999028947|MR|Test|E|Lead 28947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028948|128948|989898|1|9999028948|MR|Test|E|Lead 28948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028949|128949|989898|1|9999028949|MR|Test|E|Lead 28949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028950|128950|989898|1|9999028950|MR|Test|E|Lead 28950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028951|128951|989898|1|9999028951|MR|Test|E|Lead 28951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028952|128952|989898|1|9999028952|MR|Test|E|Lead 28952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028953|128953|989898|1|9999028953|MR|Test|E|Lead 28953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028954|128954|989898|1|9999028954|MR|Test|E|Lead 28954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028955|128955|989898|1|9999028955|MR|Test|E|Lead 28955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028956|128956|989898|1|9999028956|MR|Test|E|Lead 28956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028957|128957|989898|1|9999028957|MR|Test|E|Lead 28957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028958|128958|989898|1|9999028958|MR|Test|E|Lead 28958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028959|128959|989898|1|9999028959|MR|Test|E|Lead 28959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028960|128960|989898|1|9999028960|MR|Test|E|Lead 28960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028961|128961|989898|1|9999028961|MR|Test|E|Lead 28961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028962|128962|989898|1|9999028962|MR|Test|E|Lead 28962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028963|128963|989898|1|9999028963|MR|Test|E|Lead 28963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028964|128964|989898|1|9999028964|MR|Test|E|Lead 28964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028965|128965|989898|1|9999028965|MR|Test|E|Lead 28965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028966|128966|989898|1|9999028966|MR|Test|E|Lead 28966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028967|128967|989898|1|9999028967|MR|Test|E|Lead 28967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028968|128968|989898|1|9999028968|MR|Test|E|Lead 28968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028969|128969|989898|1|9999028969|MR|Test|E|Lead 28969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028970|128970|989898|1|9999028970|MR|Test|E|Lead 28970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028971|128971|989898|1|9999028971|MR|Test|E|Lead 28971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028972|128972|989898|1|9999028972|MR|Test|E|Lead 28972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028973|128973|989898|1|9999028973|MR|Test|E|Lead 28973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028974|128974|989898|1|9999028974|MR|Test|E|Lead 28974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028975|128975|989898|1|9999028975|MR|Test|E|Lead 28975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028976|128976|989898|1|9999028976|MR|Test|E|Lead 28976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028977|128977|989898|1|9999028977|MR|Test|E|Lead 28977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028978|128978|989898|1|9999028978|MR|Test|E|Lead 28978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028979|128979|989898|1|9999028979|MR|Test|E|Lead 28979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028980|128980|989898|1|9999028980|MR|Test|E|Lead 28980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028981|128981|989898|1|9999028981|MR|Test|E|Lead 28981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028982|128982|989898|1|9999028982|MR|Test|E|Lead 28982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028983|128983|989898|1|9999028983|MR|Test|E|Lead 28983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028984|128984|989898|1|9999028984|MR|Test|E|Lead 28984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028985|128985|989898|1|9999028985|MR|Test|E|Lead 28985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028986|128986|989898|1|9999028986|MR|Test|E|Lead 28986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028987|128987|989898|1|9999028987|MR|Test|E|Lead 28987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028988|128988|989898|1|9999028988|MR|Test|E|Lead 28988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028989|128989|989898|1|9999028989|MR|Test|E|Lead 28989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028990|128990|989898|1|9999028990|MR|Test|E|Lead 28990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028991|128991|989898|1|9999028991|MR|Test|E|Lead 28991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028992|128992|989898|1|9999028992|MR|Test|E|Lead 28992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028993|128993|989898|1|9999028993|MR|Test|E|Lead 28993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028994|128994|989898|1|9999028994|MR|Test|E|Lead 28994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028995|128995|989898|1|9999028995|MR|Test|E|Lead 28995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028996|128996|989898|1|9999028996|MR|Test|E|Lead 28996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028997|128997|989898|1|9999028997|MR|Test|E|Lead 28997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028998|128998|989898|1|9999028998|MR|Test|E|Lead 28998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1028999|128999|989898|1|9999028999|MR|Test|E|Lead 28999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029000|129000|989898|1|9999029000|MR|Test|E|Lead 29000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029001|129001|989898|1|9999029001|MR|Test|E|Lead 29001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029002|129002|989898|1|9999029002|MR|Test|E|Lead 29002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029003|129003|989898|1|9999029003|MR|Test|E|Lead 29003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029004|129004|989898|1|9999029004|MR|Test|E|Lead 29004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029005|129005|989898|1|9999029005|MR|Test|E|Lead 29005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029006|129006|989898|1|9999029006|MR|Test|E|Lead 29006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029007|129007|989898|1|9999029007|MR|Test|E|Lead 29007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029008|129008|989898|1|9999029008|MR|Test|E|Lead 29008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029009|129009|989898|1|9999029009|MR|Test|E|Lead 29009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029010|129010|989898|1|9999029010|MR|Test|E|Lead 29010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029011|129011|989898|1|9999029011|MR|Test|E|Lead 29011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029012|129012|989898|1|9999029012|MR|Test|E|Lead 29012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029013|129013|989898|1|9999029013|MR|Test|E|Lead 29013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029014|129014|989898|1|9999029014|MR|Test|E|Lead 29014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029015|129015|989898|1|9999029015|MR|Test|E|Lead 29015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029016|129016|989898|1|9999029016|MR|Test|E|Lead 29016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029017|129017|989898|1|9999029017|MR|Test|E|Lead 29017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029018|129018|989898|1|9999029018|MR|Test|E|Lead 29018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029019|129019|989898|1|9999029019|MR|Test|E|Lead 29019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029020|129020|989898|1|9999029020|MR|Test|E|Lead 29020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029021|129021|989898|1|9999029021|MR|Test|E|Lead 29021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029022|129022|989898|1|9999029022|MR|Test|E|Lead 29022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029023|129023|989898|1|9999029023|MR|Test|E|Lead 29023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029024|129024|989898|1|9999029024|MR|Test|E|Lead 29024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029025|129025|989898|1|9999029025|MR|Test|E|Lead 29025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029026|129026|989898|1|9999029026|MR|Test|E|Lead 29026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029027|129027|989898|1|9999029027|MR|Test|E|Lead 29027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029028|129028|989898|1|9999029028|MR|Test|E|Lead 29028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029029|129029|989898|1|9999029029|MR|Test|E|Lead 29029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029030|129030|989898|1|9999029030|MR|Test|E|Lead 29030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029031|129031|989898|1|9999029031|MR|Test|E|Lead 29031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029032|129032|989898|1|9999029032|MR|Test|E|Lead 29032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029033|129033|989898|1|9999029033|MR|Test|E|Lead 29033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029034|129034|989898|1|9999029034|MR|Test|E|Lead 29034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029035|129035|989898|1|9999029035|MR|Test|E|Lead 29035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029036|129036|989898|1|9999029036|MR|Test|E|Lead 29036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029037|129037|989898|1|9999029037|MR|Test|E|Lead 29037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029038|129038|989898|1|9999029038|MR|Test|E|Lead 29038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029039|129039|989898|1|9999029039|MR|Test|E|Lead 29039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029040|129040|989898|1|9999029040|MR|Test|E|Lead 29040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029041|129041|989898|1|9999029041|MR|Test|E|Lead 29041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029042|129042|989898|1|9999029042|MR|Test|E|Lead 29042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029043|129043|989898|1|9999029043|MR|Test|E|Lead 29043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029044|129044|989898|1|9999029044|MR|Test|E|Lead 29044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029045|129045|989898|1|9999029045|MR|Test|E|Lead 29045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029046|129046|989898|1|9999029046|MR|Test|E|Lead 29046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029047|129047|989898|1|9999029047|MR|Test|E|Lead 29047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029048|129048|989898|1|9999029048|MR|Test|E|Lead 29048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029049|129049|989898|1|9999029049|MR|Test|E|Lead 29049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029050|129050|989898|1|9999029050|MR|Test|E|Lead 29050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029051|129051|989898|1|9999029051|MR|Test|E|Lead 29051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029052|129052|989898|1|9999029052|MR|Test|E|Lead 29052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029053|129053|989898|1|9999029053|MR|Test|E|Lead 29053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029054|129054|989898|1|9999029054|MR|Test|E|Lead 29054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029055|129055|989898|1|9999029055|MR|Test|E|Lead 29055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029056|129056|989898|1|9999029056|MR|Test|E|Lead 29056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029057|129057|989898|1|9999029057|MR|Test|E|Lead 29057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029058|129058|989898|1|9999029058|MR|Test|E|Lead 29058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029059|129059|989898|1|9999029059|MR|Test|E|Lead 29059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029060|129060|989898|1|9999029060|MR|Test|E|Lead 29060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029061|129061|989898|1|9999029061|MR|Test|E|Lead 29061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029062|129062|989898|1|9999029062|MR|Test|E|Lead 29062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029063|129063|989898|1|9999029063|MR|Test|E|Lead 29063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029064|129064|989898|1|9999029064|MR|Test|E|Lead 29064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029065|129065|989898|1|9999029065|MR|Test|E|Lead 29065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029066|129066|989898|1|9999029066|MR|Test|E|Lead 29066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029067|129067|989898|1|9999029067|MR|Test|E|Lead 29067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029068|129068|989898|1|9999029068|MR|Test|E|Lead 29068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029069|129069|989898|1|9999029069|MR|Test|E|Lead 29069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029070|129070|989898|1|9999029070|MR|Test|E|Lead 29070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029071|129071|989898|1|9999029071|MR|Test|E|Lead 29071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029072|129072|989898|1|9999029072|MR|Test|E|Lead 29072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029073|129073|989898|1|9999029073|MR|Test|E|Lead 29073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029074|129074|989898|1|9999029074|MR|Test|E|Lead 29074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029075|129075|989898|1|9999029075|MR|Test|E|Lead 29075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029076|129076|989898|1|9999029076|MR|Test|E|Lead 29076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029077|129077|989898|1|9999029077|MR|Test|E|Lead 29077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029078|129078|989898|1|9999029078|MR|Test|E|Lead 29078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029079|129079|989898|1|9999029079|MR|Test|E|Lead 29079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029080|129080|989898|1|9999029080|MR|Test|E|Lead 29080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029081|129081|989898|1|9999029081|MR|Test|E|Lead 29081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029082|129082|989898|1|9999029082|MR|Test|E|Lead 29082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029083|129083|989898|1|9999029083|MR|Test|E|Lead 29083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029084|129084|989898|1|9999029084|MR|Test|E|Lead 29084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029085|129085|989898|1|9999029085|MR|Test|E|Lead 29085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029086|129086|989898|1|9999029086|MR|Test|E|Lead 29086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029087|129087|989898|1|9999029087|MR|Test|E|Lead 29087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029088|129088|989898|1|9999029088|MR|Test|E|Lead 29088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029089|129089|989898|1|9999029089|MR|Test|E|Lead 29089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029090|129090|989898|1|9999029090|MR|Test|E|Lead 29090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029091|129091|989898|1|9999029091|MR|Test|E|Lead 29091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029092|129092|989898|1|9999029092|MR|Test|E|Lead 29092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029093|129093|989898|1|9999029093|MR|Test|E|Lead 29093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029094|129094|989898|1|9999029094|MR|Test|E|Lead 29094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029095|129095|989898|1|9999029095|MR|Test|E|Lead 29095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029096|129096|989898|1|9999029096|MR|Test|E|Lead 29096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029097|129097|989898|1|9999029097|MR|Test|E|Lead 29097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029098|129098|989898|1|9999029098|MR|Test|E|Lead 29098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029099|129099|989898|1|9999029099|MR|Test|E|Lead 29099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029100|129100|989898|1|9999029100|MR|Test|E|Lead 29100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029101|129101|989898|1|9999029101|MR|Test|E|Lead 29101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029102|129102|989898|1|9999029102|MR|Test|E|Lead 29102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029103|129103|989898|1|9999029103|MR|Test|E|Lead 29103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029104|129104|989898|1|9999029104|MR|Test|E|Lead 29104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029105|129105|989898|1|9999029105|MR|Test|E|Lead 29105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029106|129106|989898|1|9999029106|MR|Test|E|Lead 29106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029107|129107|989898|1|9999029107|MR|Test|E|Lead 29107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029108|129108|989898|1|9999029108|MR|Test|E|Lead 29108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029109|129109|989898|1|9999029109|MR|Test|E|Lead 29109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029110|129110|989898|1|9999029110|MR|Test|E|Lead 29110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029111|129111|989898|1|9999029111|MR|Test|E|Lead 29111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029112|129112|989898|1|9999029112|MR|Test|E|Lead 29112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029113|129113|989898|1|9999029113|MR|Test|E|Lead 29113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029114|129114|989898|1|9999029114|MR|Test|E|Lead 29114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029115|129115|989898|1|9999029115|MR|Test|E|Lead 29115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029116|129116|989898|1|9999029116|MR|Test|E|Lead 29116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029117|129117|989898|1|9999029117|MR|Test|E|Lead 29117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029118|129118|989898|1|9999029118|MR|Test|E|Lead 29118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029119|129119|989898|1|9999029119|MR|Test|E|Lead 29119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029120|129120|989898|1|9999029120|MR|Test|E|Lead 29120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029121|129121|989898|1|9999029121|MR|Test|E|Lead 29121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029122|129122|989898|1|9999029122|MR|Test|E|Lead 29122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029123|129123|989898|1|9999029123|MR|Test|E|Lead 29123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029124|129124|989898|1|9999029124|MR|Test|E|Lead 29124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029125|129125|989898|1|9999029125|MR|Test|E|Lead 29125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029126|129126|989898|1|9999029126|MR|Test|E|Lead 29126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029127|129127|989898|1|9999029127|MR|Test|E|Lead 29127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029128|129128|989898|1|9999029128|MR|Test|E|Lead 29128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029129|129129|989898|1|9999029129|MR|Test|E|Lead 29129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029130|129130|989898|1|9999029130|MR|Test|E|Lead 29130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029131|129131|989898|1|9999029131|MR|Test|E|Lead 29131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029132|129132|989898|1|9999029132|MR|Test|E|Lead 29132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029133|129133|989898|1|9999029133|MR|Test|E|Lead 29133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029134|129134|989898|1|9999029134|MR|Test|E|Lead 29134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029135|129135|989898|1|9999029135|MR|Test|E|Lead 29135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029136|129136|989898|1|9999029136|MR|Test|E|Lead 29136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029137|129137|989898|1|9999029137|MR|Test|E|Lead 29137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029138|129138|989898|1|9999029138|MR|Test|E|Lead 29138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029139|129139|989898|1|9999029139|MR|Test|E|Lead 29139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029140|129140|989898|1|9999029140|MR|Test|E|Lead 29140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029141|129141|989898|1|9999029141|MR|Test|E|Lead 29141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029142|129142|989898|1|9999029142|MR|Test|E|Lead 29142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029143|129143|989898|1|9999029143|MR|Test|E|Lead 29143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029144|129144|989898|1|9999029144|MR|Test|E|Lead 29144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029145|129145|989898|1|9999029145|MR|Test|E|Lead 29145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029146|129146|989898|1|9999029146|MR|Test|E|Lead 29146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029147|129147|989898|1|9999029147|MR|Test|E|Lead 29147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029148|129148|989898|1|9999029148|MR|Test|E|Lead 29148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029149|129149|989898|1|9999029149|MR|Test|E|Lead 29149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029150|129150|989898|1|9999029150|MR|Test|E|Lead 29150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029151|129151|989898|1|9999029151|MR|Test|E|Lead 29151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029152|129152|989898|1|9999029152|MR|Test|E|Lead 29152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029153|129153|989898|1|9999029153|MR|Test|E|Lead 29153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029154|129154|989898|1|9999029154|MR|Test|E|Lead 29154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029155|129155|989898|1|9999029155|MR|Test|E|Lead 29155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029156|129156|989898|1|9999029156|MR|Test|E|Lead 29156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029157|129157|989898|1|9999029157|MR|Test|E|Lead 29157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029158|129158|989898|1|9999029158|MR|Test|E|Lead 29158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029159|129159|989898|1|9999029159|MR|Test|E|Lead 29159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029160|129160|989898|1|9999029160|MR|Test|E|Lead 29160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029161|129161|989898|1|9999029161|MR|Test|E|Lead 29161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029162|129162|989898|1|9999029162|MR|Test|E|Lead 29162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029163|129163|989898|1|9999029163|MR|Test|E|Lead 29163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029164|129164|989898|1|9999029164|MR|Test|E|Lead 29164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029165|129165|989898|1|9999029165|MR|Test|E|Lead 29165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029166|129166|989898|1|9999029166|MR|Test|E|Lead 29166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029167|129167|989898|1|9999029167|MR|Test|E|Lead 29167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029168|129168|989898|1|9999029168|MR|Test|E|Lead 29168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029169|129169|989898|1|9999029169|MR|Test|E|Lead 29169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029170|129170|989898|1|9999029170|MR|Test|E|Lead 29170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029171|129171|989898|1|9999029171|MR|Test|E|Lead 29171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029172|129172|989898|1|9999029172|MR|Test|E|Lead 29172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029173|129173|989898|1|9999029173|MR|Test|E|Lead 29173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029174|129174|989898|1|9999029174|MR|Test|E|Lead 29174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029175|129175|989898|1|9999029175|MR|Test|E|Lead 29175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029176|129176|989898|1|9999029176|MR|Test|E|Lead 29176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029177|129177|989898|1|9999029177|MR|Test|E|Lead 29177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029178|129178|989898|1|9999029178|MR|Test|E|Lead 29178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029179|129179|989898|1|9999029179|MR|Test|E|Lead 29179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029180|129180|989898|1|9999029180|MR|Test|E|Lead 29180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029181|129181|989898|1|9999029181|MR|Test|E|Lead 29181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029182|129182|989898|1|9999029182|MR|Test|E|Lead 29182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029183|129183|989898|1|9999029183|MR|Test|E|Lead 29183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029184|129184|989898|1|9999029184|MR|Test|E|Lead 29184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029185|129185|989898|1|9999029185|MR|Test|E|Lead 29185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029186|129186|989898|1|9999029186|MR|Test|E|Lead 29186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029187|129187|989898|1|9999029187|MR|Test|E|Lead 29187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029188|129188|989898|1|9999029188|MR|Test|E|Lead 29188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029189|129189|989898|1|9999029189|MR|Test|E|Lead 29189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029190|129190|989898|1|9999029190|MR|Test|E|Lead 29190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029191|129191|989898|1|9999029191|MR|Test|E|Lead 29191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029192|129192|989898|1|9999029192|MR|Test|E|Lead 29192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029193|129193|989898|1|9999029193|MR|Test|E|Lead 29193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029194|129194|989898|1|9999029194|MR|Test|E|Lead 29194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029195|129195|989898|1|9999029195|MR|Test|E|Lead 29195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029196|129196|989898|1|9999029196|MR|Test|E|Lead 29196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029197|129197|989898|1|9999029197|MR|Test|E|Lead 29197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029198|129198|989898|1|9999029198|MR|Test|E|Lead 29198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029199|129199|989898|1|9999029199|MR|Test|E|Lead 29199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029200|129200|989898|1|9999029200|MR|Test|E|Lead 29200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029201|129201|989898|1|9999029201|MR|Test|E|Lead 29201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029202|129202|989898|1|9999029202|MR|Test|E|Lead 29202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029203|129203|989898|1|9999029203|MR|Test|E|Lead 29203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029204|129204|989898|1|9999029204|MR|Test|E|Lead 29204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029205|129205|989898|1|9999029205|MR|Test|E|Lead 29205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029206|129206|989898|1|9999029206|MR|Test|E|Lead 29206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029207|129207|989898|1|9999029207|MR|Test|E|Lead 29207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029208|129208|989898|1|9999029208|MR|Test|E|Lead 29208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029209|129209|989898|1|9999029209|MR|Test|E|Lead 29209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029210|129210|989898|1|9999029210|MR|Test|E|Lead 29210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029211|129211|989898|1|9999029211|MR|Test|E|Lead 29211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029212|129212|989898|1|9999029212|MR|Test|E|Lead 29212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029213|129213|989898|1|9999029213|MR|Test|E|Lead 29213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029214|129214|989898|1|9999029214|MR|Test|E|Lead 29214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029215|129215|989898|1|9999029215|MR|Test|E|Lead 29215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029216|129216|989898|1|9999029216|MR|Test|E|Lead 29216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029217|129217|989898|1|9999029217|MR|Test|E|Lead 29217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029218|129218|989898|1|9999029218|MR|Test|E|Lead 29218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029219|129219|989898|1|9999029219|MR|Test|E|Lead 29219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029220|129220|989898|1|9999029220|MR|Test|E|Lead 29220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029221|129221|989898|1|9999029221|MR|Test|E|Lead 29221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029222|129222|989898|1|9999029222|MR|Test|E|Lead 29222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029223|129223|989898|1|9999029223|MR|Test|E|Lead 29223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029224|129224|989898|1|9999029224|MR|Test|E|Lead 29224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029225|129225|989898|1|9999029225|MR|Test|E|Lead 29225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029226|129226|989898|1|9999029226|MR|Test|E|Lead 29226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029227|129227|989898|1|9999029227|MR|Test|E|Lead 29227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029228|129228|989898|1|9999029228|MR|Test|E|Lead 29228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029229|129229|989898|1|9999029229|MR|Test|E|Lead 29229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029230|129230|989898|1|9999029230|MR|Test|E|Lead 29230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029231|129231|989898|1|9999029231|MR|Test|E|Lead 29231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029232|129232|989898|1|9999029232|MR|Test|E|Lead 29232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029233|129233|989898|1|9999029233|MR|Test|E|Lead 29233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029234|129234|989898|1|9999029234|MR|Test|E|Lead 29234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029235|129235|989898|1|9999029235|MR|Test|E|Lead 29235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029236|129236|989898|1|9999029236|MR|Test|E|Lead 29236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029237|129237|989898|1|9999029237|MR|Test|E|Lead 29237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029238|129238|989898|1|9999029238|MR|Test|E|Lead 29238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029239|129239|989898|1|9999029239|MR|Test|E|Lead 29239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029240|129240|989898|1|9999029240|MR|Test|E|Lead 29240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029241|129241|989898|1|9999029241|MR|Test|E|Lead 29241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029242|129242|989898|1|9999029242|MR|Test|E|Lead 29242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029243|129243|989898|1|9999029243|MR|Test|E|Lead 29243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029244|129244|989898|1|9999029244|MR|Test|E|Lead 29244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029245|129245|989898|1|9999029245|MR|Test|E|Lead 29245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029246|129246|989898|1|9999029246|MR|Test|E|Lead 29246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029247|129247|989898|1|9999029247|MR|Test|E|Lead 29247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029248|129248|989898|1|9999029248|MR|Test|E|Lead 29248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029249|129249|989898|1|9999029249|MR|Test|E|Lead 29249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029250|129250|989898|1|9999029250|MR|Test|E|Lead 29250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029251|129251|989898|1|9999029251|MR|Test|E|Lead 29251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029252|129252|989898|1|9999029252|MR|Test|E|Lead 29252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029253|129253|989898|1|9999029253|MR|Test|E|Lead 29253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029254|129254|989898|1|9999029254|MR|Test|E|Lead 29254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029255|129255|989898|1|9999029255|MR|Test|E|Lead 29255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029256|129256|989898|1|9999029256|MR|Test|E|Lead 29256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029257|129257|989898|1|9999029257|MR|Test|E|Lead 29257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029258|129258|989898|1|9999029258|MR|Test|E|Lead 29258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029259|129259|989898|1|9999029259|MR|Test|E|Lead 29259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029260|129260|989898|1|9999029260|MR|Test|E|Lead 29260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029261|129261|989898|1|9999029261|MR|Test|E|Lead 29261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029262|129262|989898|1|9999029262|MR|Test|E|Lead 29262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029263|129263|989898|1|9999029263|MR|Test|E|Lead 29263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029264|129264|989898|1|9999029264|MR|Test|E|Lead 29264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029265|129265|989898|1|9999029265|MR|Test|E|Lead 29265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029266|129266|989898|1|9999029266|MR|Test|E|Lead 29266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029267|129267|989898|1|9999029267|MR|Test|E|Lead 29267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029268|129268|989898|1|9999029268|MR|Test|E|Lead 29268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029269|129269|989898|1|9999029269|MR|Test|E|Lead 29269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029270|129270|989898|1|9999029270|MR|Test|E|Lead 29270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029271|129271|989898|1|9999029271|MR|Test|E|Lead 29271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029272|129272|989898|1|9999029272|MR|Test|E|Lead 29272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029273|129273|989898|1|9999029273|MR|Test|E|Lead 29273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029274|129274|989898|1|9999029274|MR|Test|E|Lead 29274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029275|129275|989898|1|9999029275|MR|Test|E|Lead 29275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029276|129276|989898|1|9999029276|MR|Test|E|Lead 29276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029277|129277|989898|1|9999029277|MR|Test|E|Lead 29277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029278|129278|989898|1|9999029278|MR|Test|E|Lead 29278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029279|129279|989898|1|9999029279|MR|Test|E|Lead 29279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029280|129280|989898|1|9999029280|MR|Test|E|Lead 29280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029281|129281|989898|1|9999029281|MR|Test|E|Lead 29281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029282|129282|989898|1|9999029282|MR|Test|E|Lead 29282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029283|129283|989898|1|9999029283|MR|Test|E|Lead 29283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029284|129284|989898|1|9999029284|MR|Test|E|Lead 29284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029285|129285|989898|1|9999029285|MR|Test|E|Lead 29285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029286|129286|989898|1|9999029286|MR|Test|E|Lead 29286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029287|129287|989898|1|9999029287|MR|Test|E|Lead 29287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029288|129288|989898|1|9999029288|MR|Test|E|Lead 29288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029289|129289|989898|1|9999029289|MR|Test|E|Lead 29289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029290|129290|989898|1|9999029290|MR|Test|E|Lead 29290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029291|129291|989898|1|9999029291|MR|Test|E|Lead 29291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029292|129292|989898|1|9999029292|MR|Test|E|Lead 29292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029293|129293|989898|1|9999029293|MR|Test|E|Lead 29293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029294|129294|989898|1|9999029294|MR|Test|E|Lead 29294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029295|129295|989898|1|9999029295|MR|Test|E|Lead 29295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029296|129296|989898|1|9999029296|MR|Test|E|Lead 29296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029297|129297|989898|1|9999029297|MR|Test|E|Lead 29297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029298|129298|989898|1|9999029298|MR|Test|E|Lead 29298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029299|129299|989898|1|9999029299|MR|Test|E|Lead 29299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029300|129300|989898|1|9999029300|MR|Test|E|Lead 29300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029301|129301|989898|1|9999029301|MR|Test|E|Lead 29301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029302|129302|989898|1|9999029302|MR|Test|E|Lead 29302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029303|129303|989898|1|9999029303|MR|Test|E|Lead 29303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029304|129304|989898|1|9999029304|MR|Test|E|Lead 29304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029305|129305|989898|1|9999029305|MR|Test|E|Lead 29305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029306|129306|989898|1|9999029306|MR|Test|E|Lead 29306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029307|129307|989898|1|9999029307|MR|Test|E|Lead 29307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029308|129308|989898|1|9999029308|MR|Test|E|Lead 29308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029309|129309|989898|1|9999029309|MR|Test|E|Lead 29309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029310|129310|989898|1|9999029310|MR|Test|E|Lead 29310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029311|129311|989898|1|9999029311|MR|Test|E|Lead 29311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029312|129312|989898|1|9999029312|MR|Test|E|Lead 29312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029313|129313|989898|1|9999029313|MR|Test|E|Lead 29313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029314|129314|989898|1|9999029314|MR|Test|E|Lead 29314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029315|129315|989898|1|9999029315|MR|Test|E|Lead 29315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029316|129316|989898|1|9999029316|MR|Test|E|Lead 29316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029317|129317|989898|1|9999029317|MR|Test|E|Lead 29317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029318|129318|989898|1|9999029318|MR|Test|E|Lead 29318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029319|129319|989898|1|9999029319|MR|Test|E|Lead 29319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029320|129320|989898|1|9999029320|MR|Test|E|Lead 29320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029321|129321|989898|1|9999029321|MR|Test|E|Lead 29321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029322|129322|989898|1|9999029322|MR|Test|E|Lead 29322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029323|129323|989898|1|9999029323|MR|Test|E|Lead 29323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029324|129324|989898|1|9999029324|MR|Test|E|Lead 29324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029325|129325|989898|1|9999029325|MR|Test|E|Lead 29325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029326|129326|989898|1|9999029326|MR|Test|E|Lead 29326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029327|129327|989898|1|9999029327|MR|Test|E|Lead 29327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029328|129328|989898|1|9999029328|MR|Test|E|Lead 29328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029329|129329|989898|1|9999029329|MR|Test|E|Lead 29329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029330|129330|989898|1|9999029330|MR|Test|E|Lead 29330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029331|129331|989898|1|9999029331|MR|Test|E|Lead 29331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029332|129332|989898|1|9999029332|MR|Test|E|Lead 29332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029333|129333|989898|1|9999029333|MR|Test|E|Lead 29333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029334|129334|989898|1|9999029334|MR|Test|E|Lead 29334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029335|129335|989898|1|9999029335|MR|Test|E|Lead 29335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029336|129336|989898|1|9999029336|MR|Test|E|Lead 29336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029337|129337|989898|1|9999029337|MR|Test|E|Lead 29337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029338|129338|989898|1|9999029338|MR|Test|E|Lead 29338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029339|129339|989898|1|9999029339|MR|Test|E|Lead 29339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029340|129340|989898|1|9999029340|MR|Test|E|Lead 29340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029341|129341|989898|1|9999029341|MR|Test|E|Lead 29341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029342|129342|989898|1|9999029342|MR|Test|E|Lead 29342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029343|129343|989898|1|9999029343|MR|Test|E|Lead 29343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029344|129344|989898|1|9999029344|MR|Test|E|Lead 29344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029345|129345|989898|1|9999029345|MR|Test|E|Lead 29345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029346|129346|989898|1|9999029346|MR|Test|E|Lead 29346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029347|129347|989898|1|9999029347|MR|Test|E|Lead 29347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029348|129348|989898|1|9999029348|MR|Test|E|Lead 29348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029349|129349|989898|1|9999029349|MR|Test|E|Lead 29349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029350|129350|989898|1|9999029350|MR|Test|E|Lead 29350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029351|129351|989898|1|9999029351|MR|Test|E|Lead 29351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029352|129352|989898|1|9999029352|MR|Test|E|Lead 29352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029353|129353|989898|1|9999029353|MR|Test|E|Lead 29353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029354|129354|989898|1|9999029354|MR|Test|E|Lead 29354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029355|129355|989898|1|9999029355|MR|Test|E|Lead 29355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029356|129356|989898|1|9999029356|MR|Test|E|Lead 29356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029357|129357|989898|1|9999029357|MR|Test|E|Lead 29357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029358|129358|989898|1|9999029358|MR|Test|E|Lead 29358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029359|129359|989898|1|9999029359|MR|Test|E|Lead 29359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029360|129360|989898|1|9999029360|MR|Test|E|Lead 29360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029361|129361|989898|1|9999029361|MR|Test|E|Lead 29361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029362|129362|989898|1|9999029362|MR|Test|E|Lead 29362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029363|129363|989898|1|9999029363|MR|Test|E|Lead 29363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029364|129364|989898|1|9999029364|MR|Test|E|Lead 29364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029365|129365|989898|1|9999029365|MR|Test|E|Lead 29365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029366|129366|989898|1|9999029366|MR|Test|E|Lead 29366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029367|129367|989898|1|9999029367|MR|Test|E|Lead 29367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029368|129368|989898|1|9999029368|MR|Test|E|Lead 29368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029369|129369|989898|1|9999029369|MR|Test|E|Lead 29369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029370|129370|989898|1|9999029370|MR|Test|E|Lead 29370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029371|129371|989898|1|9999029371|MR|Test|E|Lead 29371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029372|129372|989898|1|9999029372|MR|Test|E|Lead 29372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029373|129373|989898|1|9999029373|MR|Test|E|Lead 29373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029374|129374|989898|1|9999029374|MR|Test|E|Lead 29374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029375|129375|989898|1|9999029375|MR|Test|E|Lead 29375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029376|129376|989898|1|9999029376|MR|Test|E|Lead 29376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029377|129377|989898|1|9999029377|MR|Test|E|Lead 29377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029378|129378|989898|1|9999029378|MR|Test|E|Lead 29378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029379|129379|989898|1|9999029379|MR|Test|E|Lead 29379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029380|129380|989898|1|9999029380|MR|Test|E|Lead 29380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029381|129381|989898|1|9999029381|MR|Test|E|Lead 29381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029382|129382|989898|1|9999029382|MR|Test|E|Lead 29382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029383|129383|989898|1|9999029383|MR|Test|E|Lead 29383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029384|129384|989898|1|9999029384|MR|Test|E|Lead 29384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029385|129385|989898|1|9999029385|MR|Test|E|Lead 29385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029386|129386|989898|1|9999029386|MR|Test|E|Lead 29386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029387|129387|989898|1|9999029387|MR|Test|E|Lead 29387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029388|129388|989898|1|9999029388|MR|Test|E|Lead 29388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029389|129389|989898|1|9999029389|MR|Test|E|Lead 29389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029390|129390|989898|1|9999029390|MR|Test|E|Lead 29390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029391|129391|989898|1|9999029391|MR|Test|E|Lead 29391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029392|129392|989898|1|9999029392|MR|Test|E|Lead 29392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029393|129393|989898|1|9999029393|MR|Test|E|Lead 29393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029394|129394|989898|1|9999029394|MR|Test|E|Lead 29394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029395|129395|989898|1|9999029395|MR|Test|E|Lead 29395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029396|129396|989898|1|9999029396|MR|Test|E|Lead 29396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029397|129397|989898|1|9999029397|MR|Test|E|Lead 29397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029398|129398|989898|1|9999029398|MR|Test|E|Lead 29398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029399|129399|989898|1|9999029399|MR|Test|E|Lead 29399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029400|129400|989898|1|9999029400|MR|Test|E|Lead 29400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029401|129401|989898|1|9999029401|MR|Test|E|Lead 29401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029402|129402|989898|1|9999029402|MR|Test|E|Lead 29402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029403|129403|989898|1|9999029403|MR|Test|E|Lead 29403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029404|129404|989898|1|9999029404|MR|Test|E|Lead 29404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029405|129405|989898|1|9999029405|MR|Test|E|Lead 29405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029406|129406|989898|1|9999029406|MR|Test|E|Lead 29406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029407|129407|989898|1|9999029407|MR|Test|E|Lead 29407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029408|129408|989898|1|9999029408|MR|Test|E|Lead 29408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029409|129409|989898|1|9999029409|MR|Test|E|Lead 29409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029410|129410|989898|1|9999029410|MR|Test|E|Lead 29410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029411|129411|989898|1|9999029411|MR|Test|E|Lead 29411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029412|129412|989898|1|9999029412|MR|Test|E|Lead 29412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029413|129413|989898|1|9999029413|MR|Test|E|Lead 29413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029414|129414|989898|1|9999029414|MR|Test|E|Lead 29414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029415|129415|989898|1|9999029415|MR|Test|E|Lead 29415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029416|129416|989898|1|9999029416|MR|Test|E|Lead 29416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029417|129417|989898|1|9999029417|MR|Test|E|Lead 29417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029418|129418|989898|1|9999029418|MR|Test|E|Lead 29418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029419|129419|989898|1|9999029419|MR|Test|E|Lead 29419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029420|129420|989898|1|9999029420|MR|Test|E|Lead 29420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029421|129421|989898|1|9999029421|MR|Test|E|Lead 29421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029422|129422|989898|1|9999029422|MR|Test|E|Lead 29422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029423|129423|989898|1|9999029423|MR|Test|E|Lead 29423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029424|129424|989898|1|9999029424|MR|Test|E|Lead 29424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029425|129425|989898|1|9999029425|MR|Test|E|Lead 29425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029426|129426|989898|1|9999029426|MR|Test|E|Lead 29426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029427|129427|989898|1|9999029427|MR|Test|E|Lead 29427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029428|129428|989898|1|9999029428|MR|Test|E|Lead 29428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029429|129429|989898|1|9999029429|MR|Test|E|Lead 29429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029430|129430|989898|1|9999029430|MR|Test|E|Lead 29430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029431|129431|989898|1|9999029431|MR|Test|E|Lead 29431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029432|129432|989898|1|9999029432|MR|Test|E|Lead 29432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029433|129433|989898|1|9999029433|MR|Test|E|Lead 29433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029434|129434|989898|1|9999029434|MR|Test|E|Lead 29434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029435|129435|989898|1|9999029435|MR|Test|E|Lead 29435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029436|129436|989898|1|9999029436|MR|Test|E|Lead 29436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029437|129437|989898|1|9999029437|MR|Test|E|Lead 29437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029438|129438|989898|1|9999029438|MR|Test|E|Lead 29438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029439|129439|989898|1|9999029439|MR|Test|E|Lead 29439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029440|129440|989898|1|9999029440|MR|Test|E|Lead 29440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029441|129441|989898|1|9999029441|MR|Test|E|Lead 29441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029442|129442|989898|1|9999029442|MR|Test|E|Lead 29442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029443|129443|989898|1|9999029443|MR|Test|E|Lead 29443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029444|129444|989898|1|9999029444|MR|Test|E|Lead 29444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029445|129445|989898|1|9999029445|MR|Test|E|Lead 29445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029446|129446|989898|1|9999029446|MR|Test|E|Lead 29446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029447|129447|989898|1|9999029447|MR|Test|E|Lead 29447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029448|129448|989898|1|9999029448|MR|Test|E|Lead 29448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029449|129449|989898|1|9999029449|MR|Test|E|Lead 29449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029450|129450|989898|1|9999029450|MR|Test|E|Lead 29450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029451|129451|989898|1|9999029451|MR|Test|E|Lead 29451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029452|129452|989898|1|9999029452|MR|Test|E|Lead 29452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029453|129453|989898|1|9999029453|MR|Test|E|Lead 29453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029454|129454|989898|1|9999029454|MR|Test|E|Lead 29454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029455|129455|989898|1|9999029455|MR|Test|E|Lead 29455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029456|129456|989898|1|9999029456|MR|Test|E|Lead 29456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029457|129457|989898|1|9999029457|MR|Test|E|Lead 29457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029458|129458|989898|1|9999029458|MR|Test|E|Lead 29458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029459|129459|989898|1|9999029459|MR|Test|E|Lead 29459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029460|129460|989898|1|9999029460|MR|Test|E|Lead 29460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029461|129461|989898|1|9999029461|MR|Test|E|Lead 29461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029462|129462|989898|1|9999029462|MR|Test|E|Lead 29462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029463|129463|989898|1|9999029463|MR|Test|E|Lead 29463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029464|129464|989898|1|9999029464|MR|Test|E|Lead 29464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029465|129465|989898|1|9999029465|MR|Test|E|Lead 29465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029466|129466|989898|1|9999029466|MR|Test|E|Lead 29466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029467|129467|989898|1|9999029467|MR|Test|E|Lead 29467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029468|129468|989898|1|9999029468|MR|Test|E|Lead 29468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029469|129469|989898|1|9999029469|MR|Test|E|Lead 29469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029470|129470|989898|1|9999029470|MR|Test|E|Lead 29470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029471|129471|989898|1|9999029471|MR|Test|E|Lead 29471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029472|129472|989898|1|9999029472|MR|Test|E|Lead 29472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029473|129473|989898|1|9999029473|MR|Test|E|Lead 29473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029474|129474|989898|1|9999029474|MR|Test|E|Lead 29474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029475|129475|989898|1|9999029475|MR|Test|E|Lead 29475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029476|129476|989898|1|9999029476|MR|Test|E|Lead 29476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029477|129477|989898|1|9999029477|MR|Test|E|Lead 29477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029478|129478|989898|1|9999029478|MR|Test|E|Lead 29478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029479|129479|989898|1|9999029479|MR|Test|E|Lead 29479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029480|129480|989898|1|9999029480|MR|Test|E|Lead 29480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029481|129481|989898|1|9999029481|MR|Test|E|Lead 29481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029482|129482|989898|1|9999029482|MR|Test|E|Lead 29482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029483|129483|989898|1|9999029483|MR|Test|E|Lead 29483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029484|129484|989898|1|9999029484|MR|Test|E|Lead 29484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029485|129485|989898|1|9999029485|MR|Test|E|Lead 29485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029486|129486|989898|1|9999029486|MR|Test|E|Lead 29486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029487|129487|989898|1|9999029487|MR|Test|E|Lead 29487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029488|129488|989898|1|9999029488|MR|Test|E|Lead 29488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029489|129489|989898|1|9999029489|MR|Test|E|Lead 29489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029490|129490|989898|1|9999029490|MR|Test|E|Lead 29490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029491|129491|989898|1|9999029491|MR|Test|E|Lead 29491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029492|129492|989898|1|9999029492|MR|Test|E|Lead 29492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029493|129493|989898|1|9999029493|MR|Test|E|Lead 29493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029494|129494|989898|1|9999029494|MR|Test|E|Lead 29494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029495|129495|989898|1|9999029495|MR|Test|E|Lead 29495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029496|129496|989898|1|9999029496|MR|Test|E|Lead 29496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029497|129497|989898|1|9999029497|MR|Test|E|Lead 29497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029498|129498|989898|1|9999029498|MR|Test|E|Lead 29498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029499|129499|989898|1|9999029499|MR|Test|E|Lead 29499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029500|129500|989898|1|9999029500|MR|Test|E|Lead 29500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029501|129501|989898|1|9999029501|MR|Test|E|Lead 29501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029502|129502|989898|1|9999029502|MR|Test|E|Lead 29502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029503|129503|989898|1|9999029503|MR|Test|E|Lead 29503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029504|129504|989898|1|9999029504|MR|Test|E|Lead 29504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029505|129505|989898|1|9999029505|MR|Test|E|Lead 29505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029506|129506|989898|1|9999029506|MR|Test|E|Lead 29506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029507|129507|989898|1|9999029507|MR|Test|E|Lead 29507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029508|129508|989898|1|9999029508|MR|Test|E|Lead 29508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029509|129509|989898|1|9999029509|MR|Test|E|Lead 29509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029510|129510|989898|1|9999029510|MR|Test|E|Lead 29510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029511|129511|989898|1|9999029511|MR|Test|E|Lead 29511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029512|129512|989898|1|9999029512|MR|Test|E|Lead 29512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029513|129513|989898|1|9999029513|MR|Test|E|Lead 29513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029514|129514|989898|1|9999029514|MR|Test|E|Lead 29514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029515|129515|989898|1|9999029515|MR|Test|E|Lead 29515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029516|129516|989898|1|9999029516|MR|Test|E|Lead 29516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029517|129517|989898|1|9999029517|MR|Test|E|Lead 29517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029518|129518|989898|1|9999029518|MR|Test|E|Lead 29518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029519|129519|989898|1|9999029519|MR|Test|E|Lead 29519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029520|129520|989898|1|9999029520|MR|Test|E|Lead 29520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029521|129521|989898|1|9999029521|MR|Test|E|Lead 29521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029522|129522|989898|1|9999029522|MR|Test|E|Lead 29522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029523|129523|989898|1|9999029523|MR|Test|E|Lead 29523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029524|129524|989898|1|9999029524|MR|Test|E|Lead 29524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029525|129525|989898|1|9999029525|MR|Test|E|Lead 29525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029526|129526|989898|1|9999029526|MR|Test|E|Lead 29526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029527|129527|989898|1|9999029527|MR|Test|E|Lead 29527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029528|129528|989898|1|9999029528|MR|Test|E|Lead 29528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029529|129529|989898|1|9999029529|MR|Test|E|Lead 29529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029530|129530|989898|1|9999029530|MR|Test|E|Lead 29530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029531|129531|989898|1|9999029531|MR|Test|E|Lead 29531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029532|129532|989898|1|9999029532|MR|Test|E|Lead 29532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029533|129533|989898|1|9999029533|MR|Test|E|Lead 29533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029534|129534|989898|1|9999029534|MR|Test|E|Lead 29534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029535|129535|989898|1|9999029535|MR|Test|E|Lead 29535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029536|129536|989898|1|9999029536|MR|Test|E|Lead 29536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029537|129537|989898|1|9999029537|MR|Test|E|Lead 29537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029538|129538|989898|1|9999029538|MR|Test|E|Lead 29538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029539|129539|989898|1|9999029539|MR|Test|E|Lead 29539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029540|129540|989898|1|9999029540|MR|Test|E|Lead 29540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029541|129541|989898|1|9999029541|MR|Test|E|Lead 29541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029542|129542|989898|1|9999029542|MR|Test|E|Lead 29542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029543|129543|989898|1|9999029543|MR|Test|E|Lead 29543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029544|129544|989898|1|9999029544|MR|Test|E|Lead 29544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029545|129545|989898|1|9999029545|MR|Test|E|Lead 29545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029546|129546|989898|1|9999029546|MR|Test|E|Lead 29546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029547|129547|989898|1|9999029547|MR|Test|E|Lead 29547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029548|129548|989898|1|9999029548|MR|Test|E|Lead 29548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029549|129549|989898|1|9999029549|MR|Test|E|Lead 29549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029550|129550|989898|1|9999029550|MR|Test|E|Lead 29550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029551|129551|989898|1|9999029551|MR|Test|E|Lead 29551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029552|129552|989898|1|9999029552|MR|Test|E|Lead 29552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029553|129553|989898|1|9999029553|MR|Test|E|Lead 29553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029554|129554|989898|1|9999029554|MR|Test|E|Lead 29554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029555|129555|989898|1|9999029555|MR|Test|E|Lead 29555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029556|129556|989898|1|9999029556|MR|Test|E|Lead 29556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029557|129557|989898|1|9999029557|MR|Test|E|Lead 29557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029558|129558|989898|1|9999029558|MR|Test|E|Lead 29558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029559|129559|989898|1|9999029559|MR|Test|E|Lead 29559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029560|129560|989898|1|9999029560|MR|Test|E|Lead 29560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029561|129561|989898|1|9999029561|MR|Test|E|Lead 29561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029562|129562|989898|1|9999029562|MR|Test|E|Lead 29562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029563|129563|989898|1|9999029563|MR|Test|E|Lead 29563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029564|129564|989898|1|9999029564|MR|Test|E|Lead 29564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029565|129565|989898|1|9999029565|MR|Test|E|Lead 29565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029566|129566|989898|1|9999029566|MR|Test|E|Lead 29566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029567|129567|989898|1|9999029567|MR|Test|E|Lead 29567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029568|129568|989898|1|9999029568|MR|Test|E|Lead 29568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029569|129569|989898|1|9999029569|MR|Test|E|Lead 29569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029570|129570|989898|1|9999029570|MR|Test|E|Lead 29570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029571|129571|989898|1|9999029571|MR|Test|E|Lead 29571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029572|129572|989898|1|9999029572|MR|Test|E|Lead 29572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029573|129573|989898|1|9999029573|MR|Test|E|Lead 29573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029574|129574|989898|1|9999029574|MR|Test|E|Lead 29574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029575|129575|989898|1|9999029575|MR|Test|E|Lead 29575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029576|129576|989898|1|9999029576|MR|Test|E|Lead 29576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029577|129577|989898|1|9999029577|MR|Test|E|Lead 29577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029578|129578|989898|1|9999029578|MR|Test|E|Lead 29578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029579|129579|989898|1|9999029579|MR|Test|E|Lead 29579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029580|129580|989898|1|9999029580|MR|Test|E|Lead 29580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029581|129581|989898|1|9999029581|MR|Test|E|Lead 29581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029582|129582|989898|1|9999029582|MR|Test|E|Lead 29582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029583|129583|989898|1|9999029583|MR|Test|E|Lead 29583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029584|129584|989898|1|9999029584|MR|Test|E|Lead 29584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029585|129585|989898|1|9999029585|MR|Test|E|Lead 29585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029586|129586|989898|1|9999029586|MR|Test|E|Lead 29586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029587|129587|989898|1|9999029587|MR|Test|E|Lead 29587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029588|129588|989898|1|9999029588|MR|Test|E|Lead 29588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029589|129589|989898|1|9999029589|MR|Test|E|Lead 29589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029590|129590|989898|1|9999029590|MR|Test|E|Lead 29590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029591|129591|989898|1|9999029591|MR|Test|E|Lead 29591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029592|129592|989898|1|9999029592|MR|Test|E|Lead 29592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029593|129593|989898|1|9999029593|MR|Test|E|Lead 29593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029594|129594|989898|1|9999029594|MR|Test|E|Lead 29594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029595|129595|989898|1|9999029595|MR|Test|E|Lead 29595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029596|129596|989898|1|9999029596|MR|Test|E|Lead 29596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029597|129597|989898|1|9999029597|MR|Test|E|Lead 29597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029598|129598|989898|1|9999029598|MR|Test|E|Lead 29598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029599|129599|989898|1|9999029599|MR|Test|E|Lead 29599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029600|129600|989898|1|9999029600|MR|Test|E|Lead 29600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029601|129601|989898|1|9999029601|MR|Test|E|Lead 29601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029602|129602|989898|1|9999029602|MR|Test|E|Lead 29602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029603|129603|989898|1|9999029603|MR|Test|E|Lead 29603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029604|129604|989898|1|9999029604|MR|Test|E|Lead 29604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029605|129605|989898|1|9999029605|MR|Test|E|Lead 29605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029606|129606|989898|1|9999029606|MR|Test|E|Lead 29606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029607|129607|989898|1|9999029607|MR|Test|E|Lead 29607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029608|129608|989898|1|9999029608|MR|Test|E|Lead 29608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029609|129609|989898|1|9999029609|MR|Test|E|Lead 29609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029610|129610|989898|1|9999029610|MR|Test|E|Lead 29610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029611|129611|989898|1|9999029611|MR|Test|E|Lead 29611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029612|129612|989898|1|9999029612|MR|Test|E|Lead 29612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029613|129613|989898|1|9999029613|MR|Test|E|Lead 29613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029614|129614|989898|1|9999029614|MR|Test|E|Lead 29614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029615|129615|989898|1|9999029615|MR|Test|E|Lead 29615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029616|129616|989898|1|9999029616|MR|Test|E|Lead 29616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029617|129617|989898|1|9999029617|MR|Test|E|Lead 29617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029618|129618|989898|1|9999029618|MR|Test|E|Lead 29618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029619|129619|989898|1|9999029619|MR|Test|E|Lead 29619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029620|129620|989898|1|9999029620|MR|Test|E|Lead 29620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029621|129621|989898|1|9999029621|MR|Test|E|Lead 29621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029622|129622|989898|1|9999029622|MR|Test|E|Lead 29622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029623|129623|989898|1|9999029623|MR|Test|E|Lead 29623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029624|129624|989898|1|9999029624|MR|Test|E|Lead 29624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029625|129625|989898|1|9999029625|MR|Test|E|Lead 29625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029626|129626|989898|1|9999029626|MR|Test|E|Lead 29626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029627|129627|989898|1|9999029627|MR|Test|E|Lead 29627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029628|129628|989898|1|9999029628|MR|Test|E|Lead 29628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029629|129629|989898|1|9999029629|MR|Test|E|Lead 29629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029630|129630|989898|1|9999029630|MR|Test|E|Lead 29630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029631|129631|989898|1|9999029631|MR|Test|E|Lead 29631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029632|129632|989898|1|9999029632|MR|Test|E|Lead 29632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029633|129633|989898|1|9999029633|MR|Test|E|Lead 29633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029634|129634|989898|1|9999029634|MR|Test|E|Lead 29634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029635|129635|989898|1|9999029635|MR|Test|E|Lead 29635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029636|129636|989898|1|9999029636|MR|Test|E|Lead 29636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029637|129637|989898|1|9999029637|MR|Test|E|Lead 29637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029638|129638|989898|1|9999029638|MR|Test|E|Lead 29638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029639|129639|989898|1|9999029639|MR|Test|E|Lead 29639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029640|129640|989898|1|9999029640|MR|Test|E|Lead 29640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029641|129641|989898|1|9999029641|MR|Test|E|Lead 29641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029642|129642|989898|1|9999029642|MR|Test|E|Lead 29642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029643|129643|989898|1|9999029643|MR|Test|E|Lead 29643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029644|129644|989898|1|9999029644|MR|Test|E|Lead 29644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029645|129645|989898|1|9999029645|MR|Test|E|Lead 29645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029646|129646|989898|1|9999029646|MR|Test|E|Lead 29646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029647|129647|989898|1|9999029647|MR|Test|E|Lead 29647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029648|129648|989898|1|9999029648|MR|Test|E|Lead 29648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029649|129649|989898|1|9999029649|MR|Test|E|Lead 29649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029650|129650|989898|1|9999029650|MR|Test|E|Lead 29650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029651|129651|989898|1|9999029651|MR|Test|E|Lead 29651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029652|129652|989898|1|9999029652|MR|Test|E|Lead 29652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029653|129653|989898|1|9999029653|MR|Test|E|Lead 29653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029654|129654|989898|1|9999029654|MR|Test|E|Lead 29654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029655|129655|989898|1|9999029655|MR|Test|E|Lead 29655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029656|129656|989898|1|9999029656|MR|Test|E|Lead 29656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029657|129657|989898|1|9999029657|MR|Test|E|Lead 29657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029658|129658|989898|1|9999029658|MR|Test|E|Lead 29658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029659|129659|989898|1|9999029659|MR|Test|E|Lead 29659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029660|129660|989898|1|9999029660|MR|Test|E|Lead 29660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029661|129661|989898|1|9999029661|MR|Test|E|Lead 29661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029662|129662|989898|1|9999029662|MR|Test|E|Lead 29662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029663|129663|989898|1|9999029663|MR|Test|E|Lead 29663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029664|129664|989898|1|9999029664|MR|Test|E|Lead 29664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029665|129665|989898|1|9999029665|MR|Test|E|Lead 29665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029666|129666|989898|1|9999029666|MR|Test|E|Lead 29666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029667|129667|989898|1|9999029667|MR|Test|E|Lead 29667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029668|129668|989898|1|9999029668|MR|Test|E|Lead 29668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029669|129669|989898|1|9999029669|MR|Test|E|Lead 29669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029670|129670|989898|1|9999029670|MR|Test|E|Lead 29670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029671|129671|989898|1|9999029671|MR|Test|E|Lead 29671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029672|129672|989898|1|9999029672|MR|Test|E|Lead 29672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029673|129673|989898|1|9999029673|MR|Test|E|Lead 29673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029674|129674|989898|1|9999029674|MR|Test|E|Lead 29674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029675|129675|989898|1|9999029675|MR|Test|E|Lead 29675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029676|129676|989898|1|9999029676|MR|Test|E|Lead 29676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029677|129677|989898|1|9999029677|MR|Test|E|Lead 29677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029678|129678|989898|1|9999029678|MR|Test|E|Lead 29678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029679|129679|989898|1|9999029679|MR|Test|E|Lead 29679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029680|129680|989898|1|9999029680|MR|Test|E|Lead 29680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029681|129681|989898|1|9999029681|MR|Test|E|Lead 29681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029682|129682|989898|1|9999029682|MR|Test|E|Lead 29682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029683|129683|989898|1|9999029683|MR|Test|E|Lead 29683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029684|129684|989898|1|9999029684|MR|Test|E|Lead 29684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029685|129685|989898|1|9999029685|MR|Test|E|Lead 29685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029686|129686|989898|1|9999029686|MR|Test|E|Lead 29686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029687|129687|989898|1|9999029687|MR|Test|E|Lead 29687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029688|129688|989898|1|9999029688|MR|Test|E|Lead 29688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029689|129689|989898|1|9999029689|MR|Test|E|Lead 29689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029690|129690|989898|1|9999029690|MR|Test|E|Lead 29690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029691|129691|989898|1|9999029691|MR|Test|E|Lead 29691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029692|129692|989898|1|9999029692|MR|Test|E|Lead 29692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029693|129693|989898|1|9999029693|MR|Test|E|Lead 29693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029694|129694|989898|1|9999029694|MR|Test|E|Lead 29694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029695|129695|989898|1|9999029695|MR|Test|E|Lead 29695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029696|129696|989898|1|9999029696|MR|Test|E|Lead 29696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029697|129697|989898|1|9999029697|MR|Test|E|Lead 29697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029698|129698|989898|1|9999029698|MR|Test|E|Lead 29698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029699|129699|989898|1|9999029699|MR|Test|E|Lead 29699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029700|129700|989898|1|9999029700|MR|Test|E|Lead 29700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029701|129701|989898|1|9999029701|MR|Test|E|Lead 29701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029702|129702|989898|1|9999029702|MR|Test|E|Lead 29702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029703|129703|989898|1|9999029703|MR|Test|E|Lead 29703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029704|129704|989898|1|9999029704|MR|Test|E|Lead 29704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029705|129705|989898|1|9999029705|MR|Test|E|Lead 29705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029706|129706|989898|1|9999029706|MR|Test|E|Lead 29706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029707|129707|989898|1|9999029707|MR|Test|E|Lead 29707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029708|129708|989898|1|9999029708|MR|Test|E|Lead 29708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029709|129709|989898|1|9999029709|MR|Test|E|Lead 29709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029710|129710|989898|1|9999029710|MR|Test|E|Lead 29710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029711|129711|989898|1|9999029711|MR|Test|E|Lead 29711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029712|129712|989898|1|9999029712|MR|Test|E|Lead 29712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029713|129713|989898|1|9999029713|MR|Test|E|Lead 29713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029714|129714|989898|1|9999029714|MR|Test|E|Lead 29714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029715|129715|989898|1|9999029715|MR|Test|E|Lead 29715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029716|129716|989898|1|9999029716|MR|Test|E|Lead 29716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029717|129717|989898|1|9999029717|MR|Test|E|Lead 29717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029718|129718|989898|1|9999029718|MR|Test|E|Lead 29718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029719|129719|989898|1|9999029719|MR|Test|E|Lead 29719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029720|129720|989898|1|9999029720|MR|Test|E|Lead 29720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029721|129721|989898|1|9999029721|MR|Test|E|Lead 29721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029722|129722|989898|1|9999029722|MR|Test|E|Lead 29722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029723|129723|989898|1|9999029723|MR|Test|E|Lead 29723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029724|129724|989898|1|9999029724|MR|Test|E|Lead 29724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029725|129725|989898|1|9999029725|MR|Test|E|Lead 29725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029726|129726|989898|1|9999029726|MR|Test|E|Lead 29726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029727|129727|989898|1|9999029727|MR|Test|E|Lead 29727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029728|129728|989898|1|9999029728|MR|Test|E|Lead 29728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029729|129729|989898|1|9999029729|MR|Test|E|Lead 29729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029730|129730|989898|1|9999029730|MR|Test|E|Lead 29730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029731|129731|989898|1|9999029731|MR|Test|E|Lead 29731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029732|129732|989898|1|9999029732|MR|Test|E|Lead 29732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029733|129733|989898|1|9999029733|MR|Test|E|Lead 29733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029734|129734|989898|1|9999029734|MR|Test|E|Lead 29734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029735|129735|989898|1|9999029735|MR|Test|E|Lead 29735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029736|129736|989898|1|9999029736|MR|Test|E|Lead 29736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029737|129737|989898|1|9999029737|MR|Test|E|Lead 29737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029738|129738|989898|1|9999029738|MR|Test|E|Lead 29738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029739|129739|989898|1|9999029739|MR|Test|E|Lead 29739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029740|129740|989898|1|9999029740|MR|Test|E|Lead 29740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029741|129741|989898|1|9999029741|MR|Test|E|Lead 29741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029742|129742|989898|1|9999029742|MR|Test|E|Lead 29742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029743|129743|989898|1|9999029743|MR|Test|E|Lead 29743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029744|129744|989898|1|9999029744|MR|Test|E|Lead 29744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029745|129745|989898|1|9999029745|MR|Test|E|Lead 29745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029746|129746|989898|1|9999029746|MR|Test|E|Lead 29746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029747|129747|989898|1|9999029747|MR|Test|E|Lead 29747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029748|129748|989898|1|9999029748|MR|Test|E|Lead 29748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029749|129749|989898|1|9999029749|MR|Test|E|Lead 29749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029750|129750|989898|1|9999029750|MR|Test|E|Lead 29750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029751|129751|989898|1|9999029751|MR|Test|E|Lead 29751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029752|129752|989898|1|9999029752|MR|Test|E|Lead 29752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029753|129753|989898|1|9999029753|MR|Test|E|Lead 29753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029754|129754|989898|1|9999029754|MR|Test|E|Lead 29754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029755|129755|989898|1|9999029755|MR|Test|E|Lead 29755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029756|129756|989898|1|9999029756|MR|Test|E|Lead 29756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029757|129757|989898|1|9999029757|MR|Test|E|Lead 29757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029758|129758|989898|1|9999029758|MR|Test|E|Lead 29758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029759|129759|989898|1|9999029759|MR|Test|E|Lead 29759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029760|129760|989898|1|9999029760|MR|Test|E|Lead 29760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029761|129761|989898|1|9999029761|MR|Test|E|Lead 29761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029762|129762|989898|1|9999029762|MR|Test|E|Lead 29762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029763|129763|989898|1|9999029763|MR|Test|E|Lead 29763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029764|129764|989898|1|9999029764|MR|Test|E|Lead 29764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029765|129765|989898|1|9999029765|MR|Test|E|Lead 29765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029766|129766|989898|1|9999029766|MR|Test|E|Lead 29766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029767|129767|989898|1|9999029767|MR|Test|E|Lead 29767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029768|129768|989898|1|9999029768|MR|Test|E|Lead 29768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029769|129769|989898|1|9999029769|MR|Test|E|Lead 29769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029770|129770|989898|1|9999029770|MR|Test|E|Lead 29770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029771|129771|989898|1|9999029771|MR|Test|E|Lead 29771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029772|129772|989898|1|9999029772|MR|Test|E|Lead 29772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029773|129773|989898|1|9999029773|MR|Test|E|Lead 29773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029774|129774|989898|1|9999029774|MR|Test|E|Lead 29774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029775|129775|989898|1|9999029775|MR|Test|E|Lead 29775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029776|129776|989898|1|9999029776|MR|Test|E|Lead 29776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029777|129777|989898|1|9999029777|MR|Test|E|Lead 29777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029778|129778|989898|1|9999029778|MR|Test|E|Lead 29778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029779|129779|989898|1|9999029779|MR|Test|E|Lead 29779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029780|129780|989898|1|9999029780|MR|Test|E|Lead 29780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029781|129781|989898|1|9999029781|MR|Test|E|Lead 29781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029782|129782|989898|1|9999029782|MR|Test|E|Lead 29782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029783|129783|989898|1|9999029783|MR|Test|E|Lead 29783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029784|129784|989898|1|9999029784|MR|Test|E|Lead 29784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029785|129785|989898|1|9999029785|MR|Test|E|Lead 29785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029786|129786|989898|1|9999029786|MR|Test|E|Lead 29786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029787|129787|989898|1|9999029787|MR|Test|E|Lead 29787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029788|129788|989898|1|9999029788|MR|Test|E|Lead 29788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029789|129789|989898|1|9999029789|MR|Test|E|Lead 29789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029790|129790|989898|1|9999029790|MR|Test|E|Lead 29790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029791|129791|989898|1|9999029791|MR|Test|E|Lead 29791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029792|129792|989898|1|9999029792|MR|Test|E|Lead 29792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029793|129793|989898|1|9999029793|MR|Test|E|Lead 29793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029794|129794|989898|1|9999029794|MR|Test|E|Lead 29794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029795|129795|989898|1|9999029795|MR|Test|E|Lead 29795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029796|129796|989898|1|9999029796|MR|Test|E|Lead 29796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029797|129797|989898|1|9999029797|MR|Test|E|Lead 29797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029798|129798|989898|1|9999029798|MR|Test|E|Lead 29798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029799|129799|989898|1|9999029799|MR|Test|E|Lead 29799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029800|129800|989898|1|9999029800|MR|Test|E|Lead 29800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029801|129801|989898|1|9999029801|MR|Test|E|Lead 29801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029802|129802|989898|1|9999029802|MR|Test|E|Lead 29802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029803|129803|989898|1|9999029803|MR|Test|E|Lead 29803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029804|129804|989898|1|9999029804|MR|Test|E|Lead 29804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029805|129805|989898|1|9999029805|MR|Test|E|Lead 29805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029806|129806|989898|1|9999029806|MR|Test|E|Lead 29806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029807|129807|989898|1|9999029807|MR|Test|E|Lead 29807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029808|129808|989898|1|9999029808|MR|Test|E|Lead 29808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029809|129809|989898|1|9999029809|MR|Test|E|Lead 29809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029810|129810|989898|1|9999029810|MR|Test|E|Lead 29810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029811|129811|989898|1|9999029811|MR|Test|E|Lead 29811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029812|129812|989898|1|9999029812|MR|Test|E|Lead 29812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029813|129813|989898|1|9999029813|MR|Test|E|Lead 29813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029814|129814|989898|1|9999029814|MR|Test|E|Lead 29814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029815|129815|989898|1|9999029815|MR|Test|E|Lead 29815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029816|129816|989898|1|9999029816|MR|Test|E|Lead 29816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029817|129817|989898|1|9999029817|MR|Test|E|Lead 29817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029818|129818|989898|1|9999029818|MR|Test|E|Lead 29818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029819|129819|989898|1|9999029819|MR|Test|E|Lead 29819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029820|129820|989898|1|9999029820|MR|Test|E|Lead 29820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029821|129821|989898|1|9999029821|MR|Test|E|Lead 29821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029822|129822|989898|1|9999029822|MR|Test|E|Lead 29822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029823|129823|989898|1|9999029823|MR|Test|E|Lead 29823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029824|129824|989898|1|9999029824|MR|Test|E|Lead 29824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029825|129825|989898|1|9999029825|MR|Test|E|Lead 29825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029826|129826|989898|1|9999029826|MR|Test|E|Lead 29826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029827|129827|989898|1|9999029827|MR|Test|E|Lead 29827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029828|129828|989898|1|9999029828|MR|Test|E|Lead 29828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029829|129829|989898|1|9999029829|MR|Test|E|Lead 29829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029830|129830|989898|1|9999029830|MR|Test|E|Lead 29830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029831|129831|989898|1|9999029831|MR|Test|E|Lead 29831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029832|129832|989898|1|9999029832|MR|Test|E|Lead 29832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029833|129833|989898|1|9999029833|MR|Test|E|Lead 29833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029834|129834|989898|1|9999029834|MR|Test|E|Lead 29834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029835|129835|989898|1|9999029835|MR|Test|E|Lead 29835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029836|129836|989898|1|9999029836|MR|Test|E|Lead 29836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029837|129837|989898|1|9999029837|MR|Test|E|Lead 29837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029838|129838|989898|1|9999029838|MR|Test|E|Lead 29838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029839|129839|989898|1|9999029839|MR|Test|E|Lead 29839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029840|129840|989898|1|9999029840|MR|Test|E|Lead 29840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029841|129841|989898|1|9999029841|MR|Test|E|Lead 29841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029842|129842|989898|1|9999029842|MR|Test|E|Lead 29842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029843|129843|989898|1|9999029843|MR|Test|E|Lead 29843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029844|129844|989898|1|9999029844|MR|Test|E|Lead 29844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029845|129845|989898|1|9999029845|MR|Test|E|Lead 29845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029846|129846|989898|1|9999029846|MR|Test|E|Lead 29846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029847|129847|989898|1|9999029847|MR|Test|E|Lead 29847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029848|129848|989898|1|9999029848|MR|Test|E|Lead 29848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029849|129849|989898|1|9999029849|MR|Test|E|Lead 29849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029850|129850|989898|1|9999029850|MR|Test|E|Lead 29850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029851|129851|989898|1|9999029851|MR|Test|E|Lead 29851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029852|129852|989898|1|9999029852|MR|Test|E|Lead 29852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029853|129853|989898|1|9999029853|MR|Test|E|Lead 29853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029854|129854|989898|1|9999029854|MR|Test|E|Lead 29854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029855|129855|989898|1|9999029855|MR|Test|E|Lead 29855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029856|129856|989898|1|9999029856|MR|Test|E|Lead 29856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029857|129857|989898|1|9999029857|MR|Test|E|Lead 29857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029858|129858|989898|1|9999029858|MR|Test|E|Lead 29858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029859|129859|989898|1|9999029859|MR|Test|E|Lead 29859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029860|129860|989898|1|9999029860|MR|Test|E|Lead 29860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029861|129861|989898|1|9999029861|MR|Test|E|Lead 29861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029862|129862|989898|1|9999029862|MR|Test|E|Lead 29862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029863|129863|989898|1|9999029863|MR|Test|E|Lead 29863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029864|129864|989898|1|9999029864|MR|Test|E|Lead 29864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029865|129865|989898|1|9999029865|MR|Test|E|Lead 29865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029866|129866|989898|1|9999029866|MR|Test|E|Lead 29866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029867|129867|989898|1|9999029867|MR|Test|E|Lead 29867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029868|129868|989898|1|9999029868|MR|Test|E|Lead 29868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029869|129869|989898|1|9999029869|MR|Test|E|Lead 29869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029870|129870|989898|1|9999029870|MR|Test|E|Lead 29870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029871|129871|989898|1|9999029871|MR|Test|E|Lead 29871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029872|129872|989898|1|9999029872|MR|Test|E|Lead 29872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029873|129873|989898|1|9999029873|MR|Test|E|Lead 29873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029874|129874|989898|1|9999029874|MR|Test|E|Lead 29874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029875|129875|989898|1|9999029875|MR|Test|E|Lead 29875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029876|129876|989898|1|9999029876|MR|Test|E|Lead 29876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029877|129877|989898|1|9999029877|MR|Test|E|Lead 29877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029878|129878|989898|1|9999029878|MR|Test|E|Lead 29878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029879|129879|989898|1|9999029879|MR|Test|E|Lead 29879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029880|129880|989898|1|9999029880|MR|Test|E|Lead 29880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029881|129881|989898|1|9999029881|MR|Test|E|Lead 29881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029882|129882|989898|1|9999029882|MR|Test|E|Lead 29882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029883|129883|989898|1|9999029883|MR|Test|E|Lead 29883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029884|129884|989898|1|9999029884|MR|Test|E|Lead 29884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029885|129885|989898|1|9999029885|MR|Test|E|Lead 29885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029886|129886|989898|1|9999029886|MR|Test|E|Lead 29886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029887|129887|989898|1|9999029887|MR|Test|E|Lead 29887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029888|129888|989898|1|9999029888|MR|Test|E|Lead 29888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029889|129889|989898|1|9999029889|MR|Test|E|Lead 29889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029890|129890|989898|1|9999029890|MR|Test|E|Lead 29890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029891|129891|989898|1|9999029891|MR|Test|E|Lead 29891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029892|129892|989898|1|9999029892|MR|Test|E|Lead 29892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029893|129893|989898|1|9999029893|MR|Test|E|Lead 29893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029894|129894|989898|1|9999029894|MR|Test|E|Lead 29894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029895|129895|989898|1|9999029895|MR|Test|E|Lead 29895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029896|129896|989898|1|9999029896|MR|Test|E|Lead 29896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029897|129897|989898|1|9999029897|MR|Test|E|Lead 29897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029898|129898|989898|1|9999029898|MR|Test|E|Lead 29898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029899|129899|989898|1|9999029899|MR|Test|E|Lead 29899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029900|129900|989898|1|9999029900|MR|Test|E|Lead 29900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029901|129901|989898|1|9999029901|MR|Test|E|Lead 29901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029902|129902|989898|1|9999029902|MR|Test|E|Lead 29902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029903|129903|989898|1|9999029903|MR|Test|E|Lead 29903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029904|129904|989898|1|9999029904|MR|Test|E|Lead 29904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029905|129905|989898|1|9999029905|MR|Test|E|Lead 29905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029906|129906|989898|1|9999029906|MR|Test|E|Lead 29906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029907|129907|989898|1|9999029907|MR|Test|E|Lead 29907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029908|129908|989898|1|9999029908|MR|Test|E|Lead 29908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029909|129909|989898|1|9999029909|MR|Test|E|Lead 29909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029910|129910|989898|1|9999029910|MR|Test|E|Lead 29910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029911|129911|989898|1|9999029911|MR|Test|E|Lead 29911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029912|129912|989898|1|9999029912|MR|Test|E|Lead 29912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029913|129913|989898|1|9999029913|MR|Test|E|Lead 29913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029914|129914|989898|1|9999029914|MR|Test|E|Lead 29914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029915|129915|989898|1|9999029915|MR|Test|E|Lead 29915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029916|129916|989898|1|9999029916|MR|Test|E|Lead 29916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029917|129917|989898|1|9999029917|MR|Test|E|Lead 29917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029918|129918|989898|1|9999029918|MR|Test|E|Lead 29918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029919|129919|989898|1|9999029919|MR|Test|E|Lead 29919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029920|129920|989898|1|9999029920|MR|Test|E|Lead 29920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029921|129921|989898|1|9999029921|MR|Test|E|Lead 29921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029922|129922|989898|1|9999029922|MR|Test|E|Lead 29922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029923|129923|989898|1|9999029923|MR|Test|E|Lead 29923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029924|129924|989898|1|9999029924|MR|Test|E|Lead 29924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029925|129925|989898|1|9999029925|MR|Test|E|Lead 29925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029926|129926|989898|1|9999029926|MR|Test|E|Lead 29926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029927|129927|989898|1|9999029927|MR|Test|E|Lead 29927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029928|129928|989898|1|9999029928|MR|Test|E|Lead 29928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029929|129929|989898|1|9999029929|MR|Test|E|Lead 29929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029930|129930|989898|1|9999029930|MR|Test|E|Lead 29930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029931|129931|989898|1|9999029931|MR|Test|E|Lead 29931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029932|129932|989898|1|9999029932|MR|Test|E|Lead 29932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029933|129933|989898|1|9999029933|MR|Test|E|Lead 29933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029934|129934|989898|1|9999029934|MR|Test|E|Lead 29934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029935|129935|989898|1|9999029935|MR|Test|E|Lead 29935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029936|129936|989898|1|9999029936|MR|Test|E|Lead 29936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029937|129937|989898|1|9999029937|MR|Test|E|Lead 29937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029938|129938|989898|1|9999029938|MR|Test|E|Lead 29938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029939|129939|989898|1|9999029939|MR|Test|E|Lead 29939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029940|129940|989898|1|9999029940|MR|Test|E|Lead 29940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029941|129941|989898|1|9999029941|MR|Test|E|Lead 29941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029942|129942|989898|1|9999029942|MR|Test|E|Lead 29942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029943|129943|989898|1|9999029943|MR|Test|E|Lead 29943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029944|129944|989898|1|9999029944|MR|Test|E|Lead 29944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029945|129945|989898|1|9999029945|MR|Test|E|Lead 29945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029946|129946|989898|1|9999029946|MR|Test|E|Lead 29946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029947|129947|989898|1|9999029947|MR|Test|E|Lead 29947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029948|129948|989898|1|9999029948|MR|Test|E|Lead 29948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029949|129949|989898|1|9999029949|MR|Test|E|Lead 29949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029950|129950|989898|1|9999029950|MR|Test|E|Lead 29950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029951|129951|989898|1|9999029951|MR|Test|E|Lead 29951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029952|129952|989898|1|9999029952|MR|Test|E|Lead 29952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029953|129953|989898|1|9999029953|MR|Test|E|Lead 29953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029954|129954|989898|1|9999029954|MR|Test|E|Lead 29954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029955|129955|989898|1|9999029955|MR|Test|E|Lead 29955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029956|129956|989898|1|9999029956|MR|Test|E|Lead 29956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029957|129957|989898|1|9999029957|MR|Test|E|Lead 29957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029958|129958|989898|1|9999029958|MR|Test|E|Lead 29958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029959|129959|989898|1|9999029959|MR|Test|E|Lead 29959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029960|129960|989898|1|9999029960|MR|Test|E|Lead 29960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029961|129961|989898|1|9999029961|MR|Test|E|Lead 29961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029962|129962|989898|1|9999029962|MR|Test|E|Lead 29962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029963|129963|989898|1|9999029963|MR|Test|E|Lead 29963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029964|129964|989898|1|9999029964|MR|Test|E|Lead 29964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029965|129965|989898|1|9999029965|MR|Test|E|Lead 29965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029966|129966|989898|1|9999029966|MR|Test|E|Lead 29966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029967|129967|989898|1|9999029967|MR|Test|E|Lead 29967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029968|129968|989898|1|9999029968|MR|Test|E|Lead 29968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029969|129969|989898|1|9999029969|MR|Test|E|Lead 29969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029970|129970|989898|1|9999029970|MR|Test|E|Lead 29970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029971|129971|989898|1|9999029971|MR|Test|E|Lead 29971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029972|129972|989898|1|9999029972|MR|Test|E|Lead 29972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029973|129973|989898|1|9999029973|MR|Test|E|Lead 29973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029974|129974|989898|1|9999029974|MR|Test|E|Lead 29974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029975|129975|989898|1|9999029975|MR|Test|E|Lead 29975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029976|129976|989898|1|9999029976|MR|Test|E|Lead 29976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029977|129977|989898|1|9999029977|MR|Test|E|Lead 29977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029978|129978|989898|1|9999029978|MR|Test|E|Lead 29978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029979|129979|989898|1|9999029979|MR|Test|E|Lead 29979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029980|129980|989898|1|9999029980|MR|Test|E|Lead 29980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029981|129981|989898|1|9999029981|MR|Test|E|Lead 29981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029982|129982|989898|1|9999029982|MR|Test|E|Lead 29982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029983|129983|989898|1|9999029983|MR|Test|E|Lead 29983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029984|129984|989898|1|9999029984|MR|Test|E|Lead 29984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029985|129985|989898|1|9999029985|MR|Test|E|Lead 29985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029986|129986|989898|1|9999029986|MR|Test|E|Lead 29986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029987|129987|989898|1|9999029987|MR|Test|E|Lead 29987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029988|129988|989898|1|9999029988|MR|Test|E|Lead 29988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029989|129989|989898|1|9999029989|MR|Test|E|Lead 29989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029990|129990|989898|1|9999029990|MR|Test|E|Lead 29990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029991|129991|989898|1|9999029991|MR|Test|E|Lead 29991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029992|129992|989898|1|9999029992|MR|Test|E|Lead 29992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029993|129993|989898|1|9999029993|MR|Test|E|Lead 29993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029994|129994|989898|1|9999029994|MR|Test|E|Lead 29994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029995|129995|989898|1|9999029995|MR|Test|E|Lead 29995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029996|129996|989898|1|9999029996|MR|Test|E|Lead 29996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029997|129997|989898|1|9999029997|MR|Test|E|Lead 29997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029998|129998|989898|1|9999029998|MR|Test|E|Lead 29998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1029999|129999|989898|1|9999029999|MR|Test|E|Lead 29999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030000|130000|989898|1|9999030000|MR|Test|E|Lead 30000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030001|130001|989898|1|9999030001|MR|Test|E|Lead 30001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030002|130002|989898|1|9999030002|MR|Test|E|Lead 30002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030003|130003|989898|1|9999030003|MR|Test|E|Lead 30003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030004|130004|989898|1|9999030004|MR|Test|E|Lead 30004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030005|130005|989898|1|9999030005|MR|Test|E|Lead 30005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030006|130006|989898|1|9999030006|MR|Test|E|Lead 30006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030007|130007|989898|1|9999030007|MR|Test|E|Lead 30007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030008|130008|989898|1|9999030008|MR|Test|E|Lead 30008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030009|130009|989898|1|9999030009|MR|Test|E|Lead 30009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030010|130010|989898|1|9999030010|MR|Test|E|Lead 30010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030011|130011|989898|1|9999030011|MR|Test|E|Lead 30011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030012|130012|989898|1|9999030012|MR|Test|E|Lead 30012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030013|130013|989898|1|9999030013|MR|Test|E|Lead 30013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030014|130014|989898|1|9999030014|MR|Test|E|Lead 30014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030015|130015|989898|1|9999030015|MR|Test|E|Lead 30015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030016|130016|989898|1|9999030016|MR|Test|E|Lead 30016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030017|130017|989898|1|9999030017|MR|Test|E|Lead 30017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030018|130018|989898|1|9999030018|MR|Test|E|Lead 30018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030019|130019|989898|1|9999030019|MR|Test|E|Lead 30019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030020|130020|989898|1|9999030020|MR|Test|E|Lead 30020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030021|130021|989898|1|9999030021|MR|Test|E|Lead 30021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030022|130022|989898|1|9999030022|MR|Test|E|Lead 30022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030023|130023|989898|1|9999030023|MR|Test|E|Lead 30023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030024|130024|989898|1|9999030024|MR|Test|E|Lead 30024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030025|130025|989898|1|9999030025|MR|Test|E|Lead 30025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030026|130026|989898|1|9999030026|MR|Test|E|Lead 30026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030027|130027|989898|1|9999030027|MR|Test|E|Lead 30027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030028|130028|989898|1|9999030028|MR|Test|E|Lead 30028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030029|130029|989898|1|9999030029|MR|Test|E|Lead 30029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030030|130030|989898|1|9999030030|MR|Test|E|Lead 30030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030031|130031|989898|1|9999030031|MR|Test|E|Lead 30031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030032|130032|989898|1|9999030032|MR|Test|E|Lead 30032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030033|130033|989898|1|9999030033|MR|Test|E|Lead 30033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030034|130034|989898|1|9999030034|MR|Test|E|Lead 30034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030035|130035|989898|1|9999030035|MR|Test|E|Lead 30035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030036|130036|989898|1|9999030036|MR|Test|E|Lead 30036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030037|130037|989898|1|9999030037|MR|Test|E|Lead 30037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030038|130038|989898|1|9999030038|MR|Test|E|Lead 30038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030039|130039|989898|1|9999030039|MR|Test|E|Lead 30039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030040|130040|989898|1|9999030040|MR|Test|E|Lead 30040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030041|130041|989898|1|9999030041|MR|Test|E|Lead 30041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030042|130042|989898|1|9999030042|MR|Test|E|Lead 30042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030043|130043|989898|1|9999030043|MR|Test|E|Lead 30043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030044|130044|989898|1|9999030044|MR|Test|E|Lead 30044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030045|130045|989898|1|9999030045|MR|Test|E|Lead 30045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030046|130046|989898|1|9999030046|MR|Test|E|Lead 30046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030047|130047|989898|1|9999030047|MR|Test|E|Lead 30047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030048|130048|989898|1|9999030048|MR|Test|E|Lead 30048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030049|130049|989898|1|9999030049|MR|Test|E|Lead 30049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030050|130050|989898|1|9999030050|MR|Test|E|Lead 30050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030051|130051|989898|1|9999030051|MR|Test|E|Lead 30051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030052|130052|989898|1|9999030052|MR|Test|E|Lead 30052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030053|130053|989898|1|9999030053|MR|Test|E|Lead 30053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030054|130054|989898|1|9999030054|MR|Test|E|Lead 30054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030055|130055|989898|1|9999030055|MR|Test|E|Lead 30055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030056|130056|989898|1|9999030056|MR|Test|E|Lead 30056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030057|130057|989898|1|9999030057|MR|Test|E|Lead 30057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030058|130058|989898|1|9999030058|MR|Test|E|Lead 30058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030059|130059|989898|1|9999030059|MR|Test|E|Lead 30059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030060|130060|989898|1|9999030060|MR|Test|E|Lead 30060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030061|130061|989898|1|9999030061|MR|Test|E|Lead 30061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030062|130062|989898|1|9999030062|MR|Test|E|Lead 30062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030063|130063|989898|1|9999030063|MR|Test|E|Lead 30063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030064|130064|989898|1|9999030064|MR|Test|E|Lead 30064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030065|130065|989898|1|9999030065|MR|Test|E|Lead 30065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030066|130066|989898|1|9999030066|MR|Test|E|Lead 30066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030067|130067|989898|1|9999030067|MR|Test|E|Lead 30067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030068|130068|989898|1|9999030068|MR|Test|E|Lead 30068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030069|130069|989898|1|9999030069|MR|Test|E|Lead 30069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030070|130070|989898|1|9999030070|MR|Test|E|Lead 30070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030071|130071|989898|1|9999030071|MR|Test|E|Lead 30071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030072|130072|989898|1|9999030072|MR|Test|E|Lead 30072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030073|130073|989898|1|9999030073|MR|Test|E|Lead 30073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030074|130074|989898|1|9999030074|MR|Test|E|Lead 30074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030075|130075|989898|1|9999030075|MR|Test|E|Lead 30075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030076|130076|989898|1|9999030076|MR|Test|E|Lead 30076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030077|130077|989898|1|9999030077|MR|Test|E|Lead 30077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030078|130078|989898|1|9999030078|MR|Test|E|Lead 30078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030079|130079|989898|1|9999030079|MR|Test|E|Lead 30079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030080|130080|989898|1|9999030080|MR|Test|E|Lead 30080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030081|130081|989898|1|9999030081|MR|Test|E|Lead 30081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030082|130082|989898|1|9999030082|MR|Test|E|Lead 30082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030083|130083|989898|1|9999030083|MR|Test|E|Lead 30083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030084|130084|989898|1|9999030084|MR|Test|E|Lead 30084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030085|130085|989898|1|9999030085|MR|Test|E|Lead 30085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030086|130086|989898|1|9999030086|MR|Test|E|Lead 30086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030087|130087|989898|1|9999030087|MR|Test|E|Lead 30087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030088|130088|989898|1|9999030088|MR|Test|E|Lead 30088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030089|130089|989898|1|9999030089|MR|Test|E|Lead 30089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030090|130090|989898|1|9999030090|MR|Test|E|Lead 30090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030091|130091|989898|1|9999030091|MR|Test|E|Lead 30091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030092|130092|989898|1|9999030092|MR|Test|E|Lead 30092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030093|130093|989898|1|9999030093|MR|Test|E|Lead 30093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030094|130094|989898|1|9999030094|MR|Test|E|Lead 30094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030095|130095|989898|1|9999030095|MR|Test|E|Lead 30095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030096|130096|989898|1|9999030096|MR|Test|E|Lead 30096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030097|130097|989898|1|9999030097|MR|Test|E|Lead 30097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030098|130098|989898|1|9999030098|MR|Test|E|Lead 30098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030099|130099|989898|1|9999030099|MR|Test|E|Lead 30099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030100|130100|989898|1|9999030100|MR|Test|E|Lead 30100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030101|130101|989898|1|9999030101|MR|Test|E|Lead 30101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030102|130102|989898|1|9999030102|MR|Test|E|Lead 30102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030103|130103|989898|1|9999030103|MR|Test|E|Lead 30103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030104|130104|989898|1|9999030104|MR|Test|E|Lead 30104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030105|130105|989898|1|9999030105|MR|Test|E|Lead 30105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030106|130106|989898|1|9999030106|MR|Test|E|Lead 30106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030107|130107|989898|1|9999030107|MR|Test|E|Lead 30107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030108|130108|989898|1|9999030108|MR|Test|E|Lead 30108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030109|130109|989898|1|9999030109|MR|Test|E|Lead 30109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030110|130110|989898|1|9999030110|MR|Test|E|Lead 30110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030111|130111|989898|1|9999030111|MR|Test|E|Lead 30111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030112|130112|989898|1|9999030112|MR|Test|E|Lead 30112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030113|130113|989898|1|9999030113|MR|Test|E|Lead 30113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030114|130114|989898|1|9999030114|MR|Test|E|Lead 30114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030115|130115|989898|1|9999030115|MR|Test|E|Lead 30115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030116|130116|989898|1|9999030116|MR|Test|E|Lead 30116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030117|130117|989898|1|9999030117|MR|Test|E|Lead 30117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030118|130118|989898|1|9999030118|MR|Test|E|Lead 30118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030119|130119|989898|1|9999030119|MR|Test|E|Lead 30119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030120|130120|989898|1|9999030120|MR|Test|E|Lead 30120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030121|130121|989898|1|9999030121|MR|Test|E|Lead 30121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030122|130122|989898|1|9999030122|MR|Test|E|Lead 30122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030123|130123|989898|1|9999030123|MR|Test|E|Lead 30123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030124|130124|989898|1|9999030124|MR|Test|E|Lead 30124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030125|130125|989898|1|9999030125|MR|Test|E|Lead 30125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030126|130126|989898|1|9999030126|MR|Test|E|Lead 30126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030127|130127|989898|1|9999030127|MR|Test|E|Lead 30127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030128|130128|989898|1|9999030128|MR|Test|E|Lead 30128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030129|130129|989898|1|9999030129|MR|Test|E|Lead 30129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030130|130130|989898|1|9999030130|MR|Test|E|Lead 30130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030131|130131|989898|1|9999030131|MR|Test|E|Lead 30131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030132|130132|989898|1|9999030132|MR|Test|E|Lead 30132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030133|130133|989898|1|9999030133|MR|Test|E|Lead 30133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030134|130134|989898|1|9999030134|MR|Test|E|Lead 30134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030135|130135|989898|1|9999030135|MR|Test|E|Lead 30135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030136|130136|989898|1|9999030136|MR|Test|E|Lead 30136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030137|130137|989898|1|9999030137|MR|Test|E|Lead 30137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030138|130138|989898|1|9999030138|MR|Test|E|Lead 30138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030139|130139|989898|1|9999030139|MR|Test|E|Lead 30139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030140|130140|989898|1|9999030140|MR|Test|E|Lead 30140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030141|130141|989898|1|9999030141|MR|Test|E|Lead 30141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030142|130142|989898|1|9999030142|MR|Test|E|Lead 30142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030143|130143|989898|1|9999030143|MR|Test|E|Lead 30143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030144|130144|989898|1|9999030144|MR|Test|E|Lead 30144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030145|130145|989898|1|9999030145|MR|Test|E|Lead 30145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030146|130146|989898|1|9999030146|MR|Test|E|Lead 30146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030147|130147|989898|1|9999030147|MR|Test|E|Lead 30147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030148|130148|989898|1|9999030148|MR|Test|E|Lead 30148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030149|130149|989898|1|9999030149|MR|Test|E|Lead 30149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030150|130150|989898|1|9999030150|MR|Test|E|Lead 30150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030151|130151|989898|1|9999030151|MR|Test|E|Lead 30151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030152|130152|989898|1|9999030152|MR|Test|E|Lead 30152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030153|130153|989898|1|9999030153|MR|Test|E|Lead 30153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030154|130154|989898|1|9999030154|MR|Test|E|Lead 30154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030155|130155|989898|1|9999030155|MR|Test|E|Lead 30155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030156|130156|989898|1|9999030156|MR|Test|E|Lead 30156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030157|130157|989898|1|9999030157|MR|Test|E|Lead 30157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030158|130158|989898|1|9999030158|MR|Test|E|Lead 30158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030159|130159|989898|1|9999030159|MR|Test|E|Lead 30159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030160|130160|989898|1|9999030160|MR|Test|E|Lead 30160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030161|130161|989898|1|9999030161|MR|Test|E|Lead 30161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030162|130162|989898|1|9999030162|MR|Test|E|Lead 30162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030163|130163|989898|1|9999030163|MR|Test|E|Lead 30163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030164|130164|989898|1|9999030164|MR|Test|E|Lead 30164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030165|130165|989898|1|9999030165|MR|Test|E|Lead 30165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030166|130166|989898|1|9999030166|MR|Test|E|Lead 30166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030167|130167|989898|1|9999030167|MR|Test|E|Lead 30167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030168|130168|989898|1|9999030168|MR|Test|E|Lead 30168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030169|130169|989898|1|9999030169|MR|Test|E|Lead 30169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030170|130170|989898|1|9999030170|MR|Test|E|Lead 30170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030171|130171|989898|1|9999030171|MR|Test|E|Lead 30171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030172|130172|989898|1|9999030172|MR|Test|E|Lead 30172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030173|130173|989898|1|9999030173|MR|Test|E|Lead 30173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030174|130174|989898|1|9999030174|MR|Test|E|Lead 30174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030175|130175|989898|1|9999030175|MR|Test|E|Lead 30175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030176|130176|989898|1|9999030176|MR|Test|E|Lead 30176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030177|130177|989898|1|9999030177|MR|Test|E|Lead 30177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030178|130178|989898|1|9999030178|MR|Test|E|Lead 30178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030179|130179|989898|1|9999030179|MR|Test|E|Lead 30179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030180|130180|989898|1|9999030180|MR|Test|E|Lead 30180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030181|130181|989898|1|9999030181|MR|Test|E|Lead 30181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030182|130182|989898|1|9999030182|MR|Test|E|Lead 30182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030183|130183|989898|1|9999030183|MR|Test|E|Lead 30183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030184|130184|989898|1|9999030184|MR|Test|E|Lead 30184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030185|130185|989898|1|9999030185|MR|Test|E|Lead 30185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030186|130186|989898|1|9999030186|MR|Test|E|Lead 30186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030187|130187|989898|1|9999030187|MR|Test|E|Lead 30187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030188|130188|989898|1|9999030188|MR|Test|E|Lead 30188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030189|130189|989898|1|9999030189|MR|Test|E|Lead 30189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030190|130190|989898|1|9999030190|MR|Test|E|Lead 30190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030191|130191|989898|1|9999030191|MR|Test|E|Lead 30191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030192|130192|989898|1|9999030192|MR|Test|E|Lead 30192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030193|130193|989898|1|9999030193|MR|Test|E|Lead 30193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030194|130194|989898|1|9999030194|MR|Test|E|Lead 30194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030195|130195|989898|1|9999030195|MR|Test|E|Lead 30195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030196|130196|989898|1|9999030196|MR|Test|E|Lead 30196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030197|130197|989898|1|9999030197|MR|Test|E|Lead 30197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030198|130198|989898|1|9999030198|MR|Test|E|Lead 30198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030199|130199|989898|1|9999030199|MR|Test|E|Lead 30199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030200|130200|989898|1|9999030200|MR|Test|E|Lead 30200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030201|130201|989898|1|9999030201|MR|Test|E|Lead 30201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030202|130202|989898|1|9999030202|MR|Test|E|Lead 30202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030203|130203|989898|1|9999030203|MR|Test|E|Lead 30203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030204|130204|989898|1|9999030204|MR|Test|E|Lead 30204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030205|130205|989898|1|9999030205|MR|Test|E|Lead 30205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030206|130206|989898|1|9999030206|MR|Test|E|Lead 30206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030207|130207|989898|1|9999030207|MR|Test|E|Lead 30207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030208|130208|989898|1|9999030208|MR|Test|E|Lead 30208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030209|130209|989898|1|9999030209|MR|Test|E|Lead 30209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030210|130210|989898|1|9999030210|MR|Test|E|Lead 30210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030211|130211|989898|1|9999030211|MR|Test|E|Lead 30211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030212|130212|989898|1|9999030212|MR|Test|E|Lead 30212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030213|130213|989898|1|9999030213|MR|Test|E|Lead 30213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030214|130214|989898|1|9999030214|MR|Test|E|Lead 30214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030215|130215|989898|1|9999030215|MR|Test|E|Lead 30215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030216|130216|989898|1|9999030216|MR|Test|E|Lead 30216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030217|130217|989898|1|9999030217|MR|Test|E|Lead 30217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030218|130218|989898|1|9999030218|MR|Test|E|Lead 30218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030219|130219|989898|1|9999030219|MR|Test|E|Lead 30219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030220|130220|989898|1|9999030220|MR|Test|E|Lead 30220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030221|130221|989898|1|9999030221|MR|Test|E|Lead 30221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030222|130222|989898|1|9999030222|MR|Test|E|Lead 30222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030223|130223|989898|1|9999030223|MR|Test|E|Lead 30223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030224|130224|989898|1|9999030224|MR|Test|E|Lead 30224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030225|130225|989898|1|9999030225|MR|Test|E|Lead 30225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030226|130226|989898|1|9999030226|MR|Test|E|Lead 30226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030227|130227|989898|1|9999030227|MR|Test|E|Lead 30227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030228|130228|989898|1|9999030228|MR|Test|E|Lead 30228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030229|130229|989898|1|9999030229|MR|Test|E|Lead 30229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030230|130230|989898|1|9999030230|MR|Test|E|Lead 30230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030231|130231|989898|1|9999030231|MR|Test|E|Lead 30231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030232|130232|989898|1|9999030232|MR|Test|E|Lead 30232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030233|130233|989898|1|9999030233|MR|Test|E|Lead 30233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030234|130234|989898|1|9999030234|MR|Test|E|Lead 30234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030235|130235|989898|1|9999030235|MR|Test|E|Lead 30235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030236|130236|989898|1|9999030236|MR|Test|E|Lead 30236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030237|130237|989898|1|9999030237|MR|Test|E|Lead 30237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030238|130238|989898|1|9999030238|MR|Test|E|Lead 30238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030239|130239|989898|1|9999030239|MR|Test|E|Lead 30239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030240|130240|989898|1|9999030240|MR|Test|E|Lead 30240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030241|130241|989898|1|9999030241|MR|Test|E|Lead 30241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030242|130242|989898|1|9999030242|MR|Test|E|Lead 30242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030243|130243|989898|1|9999030243|MR|Test|E|Lead 30243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030244|130244|989898|1|9999030244|MR|Test|E|Lead 30244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030245|130245|989898|1|9999030245|MR|Test|E|Lead 30245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030246|130246|989898|1|9999030246|MR|Test|E|Lead 30246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030247|130247|989898|1|9999030247|MR|Test|E|Lead 30247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030248|130248|989898|1|9999030248|MR|Test|E|Lead 30248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030249|130249|989898|1|9999030249|MR|Test|E|Lead 30249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030250|130250|989898|1|9999030250|MR|Test|E|Lead 30250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030251|130251|989898|1|9999030251|MR|Test|E|Lead 30251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030252|130252|989898|1|9999030252|MR|Test|E|Lead 30252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030253|130253|989898|1|9999030253|MR|Test|E|Lead 30253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030254|130254|989898|1|9999030254|MR|Test|E|Lead 30254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030255|130255|989898|1|9999030255|MR|Test|E|Lead 30255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030256|130256|989898|1|9999030256|MR|Test|E|Lead 30256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030257|130257|989898|1|9999030257|MR|Test|E|Lead 30257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030258|130258|989898|1|9999030258|MR|Test|E|Lead 30258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030259|130259|989898|1|9999030259|MR|Test|E|Lead 30259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030260|130260|989898|1|9999030260|MR|Test|E|Lead 30260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030261|130261|989898|1|9999030261|MR|Test|E|Lead 30261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030262|130262|989898|1|9999030262|MR|Test|E|Lead 30262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030263|130263|989898|1|9999030263|MR|Test|E|Lead 30263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030264|130264|989898|1|9999030264|MR|Test|E|Lead 30264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030265|130265|989898|1|9999030265|MR|Test|E|Lead 30265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030266|130266|989898|1|9999030266|MR|Test|E|Lead 30266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030267|130267|989898|1|9999030267|MR|Test|E|Lead 30267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030268|130268|989898|1|9999030268|MR|Test|E|Lead 30268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030269|130269|989898|1|9999030269|MR|Test|E|Lead 30269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030270|130270|989898|1|9999030270|MR|Test|E|Lead 30270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030271|130271|989898|1|9999030271|MR|Test|E|Lead 30271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030272|130272|989898|1|9999030272|MR|Test|E|Lead 30272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030273|130273|989898|1|9999030273|MR|Test|E|Lead 30273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030274|130274|989898|1|9999030274|MR|Test|E|Lead 30274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030275|130275|989898|1|9999030275|MR|Test|E|Lead 30275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030276|130276|989898|1|9999030276|MR|Test|E|Lead 30276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030277|130277|989898|1|9999030277|MR|Test|E|Lead 30277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030278|130278|989898|1|9999030278|MR|Test|E|Lead 30278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030279|130279|989898|1|9999030279|MR|Test|E|Lead 30279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030280|130280|989898|1|9999030280|MR|Test|E|Lead 30280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030281|130281|989898|1|9999030281|MR|Test|E|Lead 30281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030282|130282|989898|1|9999030282|MR|Test|E|Lead 30282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030283|130283|989898|1|9999030283|MR|Test|E|Lead 30283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030284|130284|989898|1|9999030284|MR|Test|E|Lead 30284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030285|130285|989898|1|9999030285|MR|Test|E|Lead 30285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030286|130286|989898|1|9999030286|MR|Test|E|Lead 30286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030287|130287|989898|1|9999030287|MR|Test|E|Lead 30287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030288|130288|989898|1|9999030288|MR|Test|E|Lead 30288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030289|130289|989898|1|9999030289|MR|Test|E|Lead 30289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030290|130290|989898|1|9999030290|MR|Test|E|Lead 30290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030291|130291|989898|1|9999030291|MR|Test|E|Lead 30291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030292|130292|989898|1|9999030292|MR|Test|E|Lead 30292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030293|130293|989898|1|9999030293|MR|Test|E|Lead 30293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030294|130294|989898|1|9999030294|MR|Test|E|Lead 30294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030295|130295|989898|1|9999030295|MR|Test|E|Lead 30295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030296|130296|989898|1|9999030296|MR|Test|E|Lead 30296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030297|130297|989898|1|9999030297|MR|Test|E|Lead 30297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030298|130298|989898|1|9999030298|MR|Test|E|Lead 30298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030299|130299|989898|1|9999030299|MR|Test|E|Lead 30299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030300|130300|989898|1|9999030300|MR|Test|E|Lead 30300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030301|130301|989898|1|9999030301|MR|Test|E|Lead 30301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030302|130302|989898|1|9999030302|MR|Test|E|Lead 30302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030303|130303|989898|1|9999030303|MR|Test|E|Lead 30303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030304|130304|989898|1|9999030304|MR|Test|E|Lead 30304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030305|130305|989898|1|9999030305|MR|Test|E|Lead 30305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030306|130306|989898|1|9999030306|MR|Test|E|Lead 30306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030307|130307|989898|1|9999030307|MR|Test|E|Lead 30307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030308|130308|989898|1|9999030308|MR|Test|E|Lead 30308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030309|130309|989898|1|9999030309|MR|Test|E|Lead 30309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030310|130310|989898|1|9999030310|MR|Test|E|Lead 30310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030311|130311|989898|1|9999030311|MR|Test|E|Lead 30311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030312|130312|989898|1|9999030312|MR|Test|E|Lead 30312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030313|130313|989898|1|9999030313|MR|Test|E|Lead 30313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030314|130314|989898|1|9999030314|MR|Test|E|Lead 30314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030315|130315|989898|1|9999030315|MR|Test|E|Lead 30315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030316|130316|989898|1|9999030316|MR|Test|E|Lead 30316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030317|130317|989898|1|9999030317|MR|Test|E|Lead 30317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030318|130318|989898|1|9999030318|MR|Test|E|Lead 30318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030319|130319|989898|1|9999030319|MR|Test|E|Lead 30319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030320|130320|989898|1|9999030320|MR|Test|E|Lead 30320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030321|130321|989898|1|9999030321|MR|Test|E|Lead 30321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030322|130322|989898|1|9999030322|MR|Test|E|Lead 30322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030323|130323|989898|1|9999030323|MR|Test|E|Lead 30323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030324|130324|989898|1|9999030324|MR|Test|E|Lead 30324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030325|130325|989898|1|9999030325|MR|Test|E|Lead 30325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030326|130326|989898|1|9999030326|MR|Test|E|Lead 30326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030327|130327|989898|1|9999030327|MR|Test|E|Lead 30327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030328|130328|989898|1|9999030328|MR|Test|E|Lead 30328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030329|130329|989898|1|9999030329|MR|Test|E|Lead 30329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030330|130330|989898|1|9999030330|MR|Test|E|Lead 30330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030331|130331|989898|1|9999030331|MR|Test|E|Lead 30331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030332|130332|989898|1|9999030332|MR|Test|E|Lead 30332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030333|130333|989898|1|9999030333|MR|Test|E|Lead 30333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030334|130334|989898|1|9999030334|MR|Test|E|Lead 30334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030335|130335|989898|1|9999030335|MR|Test|E|Lead 30335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030336|130336|989898|1|9999030336|MR|Test|E|Lead 30336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030337|130337|989898|1|9999030337|MR|Test|E|Lead 30337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030338|130338|989898|1|9999030338|MR|Test|E|Lead 30338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030339|130339|989898|1|9999030339|MR|Test|E|Lead 30339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030340|130340|989898|1|9999030340|MR|Test|E|Lead 30340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030341|130341|989898|1|9999030341|MR|Test|E|Lead 30341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030342|130342|989898|1|9999030342|MR|Test|E|Lead 30342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030343|130343|989898|1|9999030343|MR|Test|E|Lead 30343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030344|130344|989898|1|9999030344|MR|Test|E|Lead 30344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030345|130345|989898|1|9999030345|MR|Test|E|Lead 30345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030346|130346|989898|1|9999030346|MR|Test|E|Lead 30346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030347|130347|989898|1|9999030347|MR|Test|E|Lead 30347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030348|130348|989898|1|9999030348|MR|Test|E|Lead 30348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030349|130349|989898|1|9999030349|MR|Test|E|Lead 30349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030350|130350|989898|1|9999030350|MR|Test|E|Lead 30350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030351|130351|989898|1|9999030351|MR|Test|E|Lead 30351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030352|130352|989898|1|9999030352|MR|Test|E|Lead 30352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030353|130353|989898|1|9999030353|MR|Test|E|Lead 30353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030354|130354|989898|1|9999030354|MR|Test|E|Lead 30354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030355|130355|989898|1|9999030355|MR|Test|E|Lead 30355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030356|130356|989898|1|9999030356|MR|Test|E|Lead 30356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030357|130357|989898|1|9999030357|MR|Test|E|Lead 30357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030358|130358|989898|1|9999030358|MR|Test|E|Lead 30358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030359|130359|989898|1|9999030359|MR|Test|E|Lead 30359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030360|130360|989898|1|9999030360|MR|Test|E|Lead 30360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030361|130361|989898|1|9999030361|MR|Test|E|Lead 30361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030362|130362|989898|1|9999030362|MR|Test|E|Lead 30362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030363|130363|989898|1|9999030363|MR|Test|E|Lead 30363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030364|130364|989898|1|9999030364|MR|Test|E|Lead 30364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030365|130365|989898|1|9999030365|MR|Test|E|Lead 30365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030366|130366|989898|1|9999030366|MR|Test|E|Lead 30366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030367|130367|989898|1|9999030367|MR|Test|E|Lead 30367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030368|130368|989898|1|9999030368|MR|Test|E|Lead 30368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030369|130369|989898|1|9999030369|MR|Test|E|Lead 30369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030370|130370|989898|1|9999030370|MR|Test|E|Lead 30370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030371|130371|989898|1|9999030371|MR|Test|E|Lead 30371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030372|130372|989898|1|9999030372|MR|Test|E|Lead 30372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030373|130373|989898|1|9999030373|MR|Test|E|Lead 30373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030374|130374|989898|1|9999030374|MR|Test|E|Lead 30374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030375|130375|989898|1|9999030375|MR|Test|E|Lead 30375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030376|130376|989898|1|9999030376|MR|Test|E|Lead 30376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030377|130377|989898|1|9999030377|MR|Test|E|Lead 30377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030378|130378|989898|1|9999030378|MR|Test|E|Lead 30378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030379|130379|989898|1|9999030379|MR|Test|E|Lead 30379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030380|130380|989898|1|9999030380|MR|Test|E|Lead 30380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030381|130381|989898|1|9999030381|MR|Test|E|Lead 30381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030382|130382|989898|1|9999030382|MR|Test|E|Lead 30382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030383|130383|989898|1|9999030383|MR|Test|E|Lead 30383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030384|130384|989898|1|9999030384|MR|Test|E|Lead 30384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030385|130385|989898|1|9999030385|MR|Test|E|Lead 30385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030386|130386|989898|1|9999030386|MR|Test|E|Lead 30386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030387|130387|989898|1|9999030387|MR|Test|E|Lead 30387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030388|130388|989898|1|9999030388|MR|Test|E|Lead 30388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030389|130389|989898|1|9999030389|MR|Test|E|Lead 30389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030390|130390|989898|1|9999030390|MR|Test|E|Lead 30390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030391|130391|989898|1|9999030391|MR|Test|E|Lead 30391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030392|130392|989898|1|9999030392|MR|Test|E|Lead 30392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030393|130393|989898|1|9999030393|MR|Test|E|Lead 30393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030394|130394|989898|1|9999030394|MR|Test|E|Lead 30394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030395|130395|989898|1|9999030395|MR|Test|E|Lead 30395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030396|130396|989898|1|9999030396|MR|Test|E|Lead 30396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030397|130397|989898|1|9999030397|MR|Test|E|Lead 30397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030398|130398|989898|1|9999030398|MR|Test|E|Lead 30398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030399|130399|989898|1|9999030399|MR|Test|E|Lead 30399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030400|130400|989898|1|9999030400|MR|Test|E|Lead 30400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030401|130401|989898|1|9999030401|MR|Test|E|Lead 30401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030402|130402|989898|1|9999030402|MR|Test|E|Lead 30402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030403|130403|989898|1|9999030403|MR|Test|E|Lead 30403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030404|130404|989898|1|9999030404|MR|Test|E|Lead 30404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030405|130405|989898|1|9999030405|MR|Test|E|Lead 30405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030406|130406|989898|1|9999030406|MR|Test|E|Lead 30406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030407|130407|989898|1|9999030407|MR|Test|E|Lead 30407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030408|130408|989898|1|9999030408|MR|Test|E|Lead 30408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030409|130409|989898|1|9999030409|MR|Test|E|Lead 30409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030410|130410|989898|1|9999030410|MR|Test|E|Lead 30410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030411|130411|989898|1|9999030411|MR|Test|E|Lead 30411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030412|130412|989898|1|9999030412|MR|Test|E|Lead 30412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030413|130413|989898|1|9999030413|MR|Test|E|Lead 30413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030414|130414|989898|1|9999030414|MR|Test|E|Lead 30414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030415|130415|989898|1|9999030415|MR|Test|E|Lead 30415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030416|130416|989898|1|9999030416|MR|Test|E|Lead 30416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030417|130417|989898|1|9999030417|MR|Test|E|Lead 30417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030418|130418|989898|1|9999030418|MR|Test|E|Lead 30418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030419|130419|989898|1|9999030419|MR|Test|E|Lead 30419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030420|130420|989898|1|9999030420|MR|Test|E|Lead 30420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030421|130421|989898|1|9999030421|MR|Test|E|Lead 30421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030422|130422|989898|1|9999030422|MR|Test|E|Lead 30422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030423|130423|989898|1|9999030423|MR|Test|E|Lead 30423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030424|130424|989898|1|9999030424|MR|Test|E|Lead 30424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030425|130425|989898|1|9999030425|MR|Test|E|Lead 30425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030426|130426|989898|1|9999030426|MR|Test|E|Lead 30426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030427|130427|989898|1|9999030427|MR|Test|E|Lead 30427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030428|130428|989898|1|9999030428|MR|Test|E|Lead 30428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030429|130429|989898|1|9999030429|MR|Test|E|Lead 30429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030430|130430|989898|1|9999030430|MR|Test|E|Lead 30430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030431|130431|989898|1|9999030431|MR|Test|E|Lead 30431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030432|130432|989898|1|9999030432|MR|Test|E|Lead 30432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030433|130433|989898|1|9999030433|MR|Test|E|Lead 30433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030434|130434|989898|1|9999030434|MR|Test|E|Lead 30434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030435|130435|989898|1|9999030435|MR|Test|E|Lead 30435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030436|130436|989898|1|9999030436|MR|Test|E|Lead 30436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030437|130437|989898|1|9999030437|MR|Test|E|Lead 30437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030438|130438|989898|1|9999030438|MR|Test|E|Lead 30438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030439|130439|989898|1|9999030439|MR|Test|E|Lead 30439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030440|130440|989898|1|9999030440|MR|Test|E|Lead 30440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030441|130441|989898|1|9999030441|MR|Test|E|Lead 30441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030442|130442|989898|1|9999030442|MR|Test|E|Lead 30442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030443|130443|989898|1|9999030443|MR|Test|E|Lead 30443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030444|130444|989898|1|9999030444|MR|Test|E|Lead 30444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030445|130445|989898|1|9999030445|MR|Test|E|Lead 30445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030446|130446|989898|1|9999030446|MR|Test|E|Lead 30446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030447|130447|989898|1|9999030447|MR|Test|E|Lead 30447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030448|130448|989898|1|9999030448|MR|Test|E|Lead 30448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030449|130449|989898|1|9999030449|MR|Test|E|Lead 30449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030450|130450|989898|1|9999030450|MR|Test|E|Lead 30450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030451|130451|989898|1|9999030451|MR|Test|E|Lead 30451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030452|130452|989898|1|9999030452|MR|Test|E|Lead 30452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030453|130453|989898|1|9999030453|MR|Test|E|Lead 30453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030454|130454|989898|1|9999030454|MR|Test|E|Lead 30454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030455|130455|989898|1|9999030455|MR|Test|E|Lead 30455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030456|130456|989898|1|9999030456|MR|Test|E|Lead 30456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030457|130457|989898|1|9999030457|MR|Test|E|Lead 30457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030458|130458|989898|1|9999030458|MR|Test|E|Lead 30458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030459|130459|989898|1|9999030459|MR|Test|E|Lead 30459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030460|130460|989898|1|9999030460|MR|Test|E|Lead 30460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030461|130461|989898|1|9999030461|MR|Test|E|Lead 30461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030462|130462|989898|1|9999030462|MR|Test|E|Lead 30462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030463|130463|989898|1|9999030463|MR|Test|E|Lead 30463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030464|130464|989898|1|9999030464|MR|Test|E|Lead 30464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030465|130465|989898|1|9999030465|MR|Test|E|Lead 30465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030466|130466|989898|1|9999030466|MR|Test|E|Lead 30466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030467|130467|989898|1|9999030467|MR|Test|E|Lead 30467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030468|130468|989898|1|9999030468|MR|Test|E|Lead 30468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030469|130469|989898|1|9999030469|MR|Test|E|Lead 30469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030470|130470|989898|1|9999030470|MR|Test|E|Lead 30470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030471|130471|989898|1|9999030471|MR|Test|E|Lead 30471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030472|130472|989898|1|9999030472|MR|Test|E|Lead 30472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030473|130473|989898|1|9999030473|MR|Test|E|Lead 30473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030474|130474|989898|1|9999030474|MR|Test|E|Lead 30474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030475|130475|989898|1|9999030475|MR|Test|E|Lead 30475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030476|130476|989898|1|9999030476|MR|Test|E|Lead 30476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030477|130477|989898|1|9999030477|MR|Test|E|Lead 30477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030478|130478|989898|1|9999030478|MR|Test|E|Lead 30478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030479|130479|989898|1|9999030479|MR|Test|E|Lead 30479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030480|130480|989898|1|9999030480|MR|Test|E|Lead 30480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030481|130481|989898|1|9999030481|MR|Test|E|Lead 30481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030482|130482|989898|1|9999030482|MR|Test|E|Lead 30482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030483|130483|989898|1|9999030483|MR|Test|E|Lead 30483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030484|130484|989898|1|9999030484|MR|Test|E|Lead 30484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030485|130485|989898|1|9999030485|MR|Test|E|Lead 30485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030486|130486|989898|1|9999030486|MR|Test|E|Lead 30486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030487|130487|989898|1|9999030487|MR|Test|E|Lead 30487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030488|130488|989898|1|9999030488|MR|Test|E|Lead 30488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030489|130489|989898|1|9999030489|MR|Test|E|Lead 30489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030490|130490|989898|1|9999030490|MR|Test|E|Lead 30490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030491|130491|989898|1|9999030491|MR|Test|E|Lead 30491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030492|130492|989898|1|9999030492|MR|Test|E|Lead 30492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030493|130493|989898|1|9999030493|MR|Test|E|Lead 30493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030494|130494|989898|1|9999030494|MR|Test|E|Lead 30494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030495|130495|989898|1|9999030495|MR|Test|E|Lead 30495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030496|130496|989898|1|9999030496|MR|Test|E|Lead 30496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030497|130497|989898|1|9999030497|MR|Test|E|Lead 30497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030498|130498|989898|1|9999030498|MR|Test|E|Lead 30498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030499|130499|989898|1|9999030499|MR|Test|E|Lead 30499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030500|130500|989898|1|9999030500|MR|Test|E|Lead 30500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030501|130501|989898|1|9999030501|MR|Test|E|Lead 30501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030502|130502|989898|1|9999030502|MR|Test|E|Lead 30502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030503|130503|989898|1|9999030503|MR|Test|E|Lead 30503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030504|130504|989898|1|9999030504|MR|Test|E|Lead 30504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030505|130505|989898|1|9999030505|MR|Test|E|Lead 30505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030506|130506|989898|1|9999030506|MR|Test|E|Lead 30506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030507|130507|989898|1|9999030507|MR|Test|E|Lead 30507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030508|130508|989898|1|9999030508|MR|Test|E|Lead 30508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030509|130509|989898|1|9999030509|MR|Test|E|Lead 30509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030510|130510|989898|1|9999030510|MR|Test|E|Lead 30510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030511|130511|989898|1|9999030511|MR|Test|E|Lead 30511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030512|130512|989898|1|9999030512|MR|Test|E|Lead 30512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030513|130513|989898|1|9999030513|MR|Test|E|Lead 30513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030514|130514|989898|1|9999030514|MR|Test|E|Lead 30514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030515|130515|989898|1|9999030515|MR|Test|E|Lead 30515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030516|130516|989898|1|9999030516|MR|Test|E|Lead 30516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030517|130517|989898|1|9999030517|MR|Test|E|Lead 30517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030518|130518|989898|1|9999030518|MR|Test|E|Lead 30518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030519|130519|989898|1|9999030519|MR|Test|E|Lead 30519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030520|130520|989898|1|9999030520|MR|Test|E|Lead 30520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030521|130521|989898|1|9999030521|MR|Test|E|Lead 30521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030522|130522|989898|1|9999030522|MR|Test|E|Lead 30522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030523|130523|989898|1|9999030523|MR|Test|E|Lead 30523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030524|130524|989898|1|9999030524|MR|Test|E|Lead 30524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030525|130525|989898|1|9999030525|MR|Test|E|Lead 30525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030526|130526|989898|1|9999030526|MR|Test|E|Lead 30526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030527|130527|989898|1|9999030527|MR|Test|E|Lead 30527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030528|130528|989898|1|9999030528|MR|Test|E|Lead 30528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030529|130529|989898|1|9999030529|MR|Test|E|Lead 30529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030530|130530|989898|1|9999030530|MR|Test|E|Lead 30530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030531|130531|989898|1|9999030531|MR|Test|E|Lead 30531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030532|130532|989898|1|9999030532|MR|Test|E|Lead 30532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030533|130533|989898|1|9999030533|MR|Test|E|Lead 30533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030534|130534|989898|1|9999030534|MR|Test|E|Lead 30534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030535|130535|989898|1|9999030535|MR|Test|E|Lead 30535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030536|130536|989898|1|9999030536|MR|Test|E|Lead 30536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030537|130537|989898|1|9999030537|MR|Test|E|Lead 30537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030538|130538|989898|1|9999030538|MR|Test|E|Lead 30538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030539|130539|989898|1|9999030539|MR|Test|E|Lead 30539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030540|130540|989898|1|9999030540|MR|Test|E|Lead 30540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030541|130541|989898|1|9999030541|MR|Test|E|Lead 30541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030542|130542|989898|1|9999030542|MR|Test|E|Lead 30542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030543|130543|989898|1|9999030543|MR|Test|E|Lead 30543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030544|130544|989898|1|9999030544|MR|Test|E|Lead 30544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030545|130545|989898|1|9999030545|MR|Test|E|Lead 30545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030546|130546|989898|1|9999030546|MR|Test|E|Lead 30546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030547|130547|989898|1|9999030547|MR|Test|E|Lead 30547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030548|130548|989898|1|9999030548|MR|Test|E|Lead 30548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030549|130549|989898|1|9999030549|MR|Test|E|Lead 30549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030550|130550|989898|1|9999030550|MR|Test|E|Lead 30550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030551|130551|989898|1|9999030551|MR|Test|E|Lead 30551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030552|130552|989898|1|9999030552|MR|Test|E|Lead 30552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030553|130553|989898|1|9999030553|MR|Test|E|Lead 30553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030554|130554|989898|1|9999030554|MR|Test|E|Lead 30554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030555|130555|989898|1|9999030555|MR|Test|E|Lead 30555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030556|130556|989898|1|9999030556|MR|Test|E|Lead 30556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030557|130557|989898|1|9999030557|MR|Test|E|Lead 30557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030558|130558|989898|1|9999030558|MR|Test|E|Lead 30558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030559|130559|989898|1|9999030559|MR|Test|E|Lead 30559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030560|130560|989898|1|9999030560|MR|Test|E|Lead 30560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030561|130561|989898|1|9999030561|MR|Test|E|Lead 30561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030562|130562|989898|1|9999030562|MR|Test|E|Lead 30562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030563|130563|989898|1|9999030563|MR|Test|E|Lead 30563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030564|130564|989898|1|9999030564|MR|Test|E|Lead 30564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030565|130565|989898|1|9999030565|MR|Test|E|Lead 30565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030566|130566|989898|1|9999030566|MR|Test|E|Lead 30566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030567|130567|989898|1|9999030567|MR|Test|E|Lead 30567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030568|130568|989898|1|9999030568|MR|Test|E|Lead 30568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030569|130569|989898|1|9999030569|MR|Test|E|Lead 30569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030570|130570|989898|1|9999030570|MR|Test|E|Lead 30570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030571|130571|989898|1|9999030571|MR|Test|E|Lead 30571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030572|130572|989898|1|9999030572|MR|Test|E|Lead 30572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030573|130573|989898|1|9999030573|MR|Test|E|Lead 30573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030574|130574|989898|1|9999030574|MR|Test|E|Lead 30574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030575|130575|989898|1|9999030575|MR|Test|E|Lead 30575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030576|130576|989898|1|9999030576|MR|Test|E|Lead 30576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030577|130577|989898|1|9999030577|MR|Test|E|Lead 30577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030578|130578|989898|1|9999030578|MR|Test|E|Lead 30578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030579|130579|989898|1|9999030579|MR|Test|E|Lead 30579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030580|130580|989898|1|9999030580|MR|Test|E|Lead 30580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030581|130581|989898|1|9999030581|MR|Test|E|Lead 30581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030582|130582|989898|1|9999030582|MR|Test|E|Lead 30582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030583|130583|989898|1|9999030583|MR|Test|E|Lead 30583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030584|130584|989898|1|9999030584|MR|Test|E|Lead 30584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030585|130585|989898|1|9999030585|MR|Test|E|Lead 30585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030586|130586|989898|1|9999030586|MR|Test|E|Lead 30586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030587|130587|989898|1|9999030587|MR|Test|E|Lead 30587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030588|130588|989898|1|9999030588|MR|Test|E|Lead 30588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030589|130589|989898|1|9999030589|MR|Test|E|Lead 30589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030590|130590|989898|1|9999030590|MR|Test|E|Lead 30590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030591|130591|989898|1|9999030591|MR|Test|E|Lead 30591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030592|130592|989898|1|9999030592|MR|Test|E|Lead 30592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030593|130593|989898|1|9999030593|MR|Test|E|Lead 30593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030594|130594|989898|1|9999030594|MR|Test|E|Lead 30594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030595|130595|989898|1|9999030595|MR|Test|E|Lead 30595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030596|130596|989898|1|9999030596|MR|Test|E|Lead 30596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030597|130597|989898|1|9999030597|MR|Test|E|Lead 30597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030598|130598|989898|1|9999030598|MR|Test|E|Lead 30598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030599|130599|989898|1|9999030599|MR|Test|E|Lead 30599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030600|130600|989898|1|9999030600|MR|Test|E|Lead 30600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030601|130601|989898|1|9999030601|MR|Test|E|Lead 30601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030602|130602|989898|1|9999030602|MR|Test|E|Lead 30602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030603|130603|989898|1|9999030603|MR|Test|E|Lead 30603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030604|130604|989898|1|9999030604|MR|Test|E|Lead 30604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030605|130605|989898|1|9999030605|MR|Test|E|Lead 30605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030606|130606|989898|1|9999030606|MR|Test|E|Lead 30606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030607|130607|989898|1|9999030607|MR|Test|E|Lead 30607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030608|130608|989898|1|9999030608|MR|Test|E|Lead 30608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030609|130609|989898|1|9999030609|MR|Test|E|Lead 30609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030610|130610|989898|1|9999030610|MR|Test|E|Lead 30610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030611|130611|989898|1|9999030611|MR|Test|E|Lead 30611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030612|130612|989898|1|9999030612|MR|Test|E|Lead 30612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030613|130613|989898|1|9999030613|MR|Test|E|Lead 30613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030614|130614|989898|1|9999030614|MR|Test|E|Lead 30614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030615|130615|989898|1|9999030615|MR|Test|E|Lead 30615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030616|130616|989898|1|9999030616|MR|Test|E|Lead 30616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030617|130617|989898|1|9999030617|MR|Test|E|Lead 30617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030618|130618|989898|1|9999030618|MR|Test|E|Lead 30618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030619|130619|989898|1|9999030619|MR|Test|E|Lead 30619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030620|130620|989898|1|9999030620|MR|Test|E|Lead 30620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030621|130621|989898|1|9999030621|MR|Test|E|Lead 30621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030622|130622|989898|1|9999030622|MR|Test|E|Lead 30622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030623|130623|989898|1|9999030623|MR|Test|E|Lead 30623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030624|130624|989898|1|9999030624|MR|Test|E|Lead 30624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030625|130625|989898|1|9999030625|MR|Test|E|Lead 30625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030626|130626|989898|1|9999030626|MR|Test|E|Lead 30626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030627|130627|989898|1|9999030627|MR|Test|E|Lead 30627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030628|130628|989898|1|9999030628|MR|Test|E|Lead 30628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030629|130629|989898|1|9999030629|MR|Test|E|Lead 30629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030630|130630|989898|1|9999030630|MR|Test|E|Lead 30630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030631|130631|989898|1|9999030631|MR|Test|E|Lead 30631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030632|130632|989898|1|9999030632|MR|Test|E|Lead 30632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030633|130633|989898|1|9999030633|MR|Test|E|Lead 30633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030634|130634|989898|1|9999030634|MR|Test|E|Lead 30634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030635|130635|989898|1|9999030635|MR|Test|E|Lead 30635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030636|130636|989898|1|9999030636|MR|Test|E|Lead 30636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030637|130637|989898|1|9999030637|MR|Test|E|Lead 30637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030638|130638|989898|1|9999030638|MR|Test|E|Lead 30638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030639|130639|989898|1|9999030639|MR|Test|E|Lead 30639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030640|130640|989898|1|9999030640|MR|Test|E|Lead 30640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030641|130641|989898|1|9999030641|MR|Test|E|Lead 30641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030642|130642|989898|1|9999030642|MR|Test|E|Lead 30642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030643|130643|989898|1|9999030643|MR|Test|E|Lead 30643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030644|130644|989898|1|9999030644|MR|Test|E|Lead 30644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030645|130645|989898|1|9999030645|MR|Test|E|Lead 30645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030646|130646|989898|1|9999030646|MR|Test|E|Lead 30646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030647|130647|989898|1|9999030647|MR|Test|E|Lead 30647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030648|130648|989898|1|9999030648|MR|Test|E|Lead 30648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030649|130649|989898|1|9999030649|MR|Test|E|Lead 30649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030650|130650|989898|1|9999030650|MR|Test|E|Lead 30650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030651|130651|989898|1|9999030651|MR|Test|E|Lead 30651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030652|130652|989898|1|9999030652|MR|Test|E|Lead 30652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030653|130653|989898|1|9999030653|MR|Test|E|Lead 30653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030654|130654|989898|1|9999030654|MR|Test|E|Lead 30654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030655|130655|989898|1|9999030655|MR|Test|E|Lead 30655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030656|130656|989898|1|9999030656|MR|Test|E|Lead 30656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030657|130657|989898|1|9999030657|MR|Test|E|Lead 30657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030658|130658|989898|1|9999030658|MR|Test|E|Lead 30658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030659|130659|989898|1|9999030659|MR|Test|E|Lead 30659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030660|130660|989898|1|9999030660|MR|Test|E|Lead 30660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030661|130661|989898|1|9999030661|MR|Test|E|Lead 30661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030662|130662|989898|1|9999030662|MR|Test|E|Lead 30662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030663|130663|989898|1|9999030663|MR|Test|E|Lead 30663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030664|130664|989898|1|9999030664|MR|Test|E|Lead 30664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030665|130665|989898|1|9999030665|MR|Test|E|Lead 30665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030666|130666|989898|1|9999030666|MR|Test|E|Lead 30666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030667|130667|989898|1|9999030667|MR|Test|E|Lead 30667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030668|130668|989898|1|9999030668|MR|Test|E|Lead 30668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030669|130669|989898|1|9999030669|MR|Test|E|Lead 30669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030670|130670|989898|1|9999030670|MR|Test|E|Lead 30670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030671|130671|989898|1|9999030671|MR|Test|E|Lead 30671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030672|130672|989898|1|9999030672|MR|Test|E|Lead 30672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030673|130673|989898|1|9999030673|MR|Test|E|Lead 30673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030674|130674|989898|1|9999030674|MR|Test|E|Lead 30674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030675|130675|989898|1|9999030675|MR|Test|E|Lead 30675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030676|130676|989898|1|9999030676|MR|Test|E|Lead 30676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030677|130677|989898|1|9999030677|MR|Test|E|Lead 30677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030678|130678|989898|1|9999030678|MR|Test|E|Lead 30678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030679|130679|989898|1|9999030679|MR|Test|E|Lead 30679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030680|130680|989898|1|9999030680|MR|Test|E|Lead 30680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030681|130681|989898|1|9999030681|MR|Test|E|Lead 30681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030682|130682|989898|1|9999030682|MR|Test|E|Lead 30682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030683|130683|989898|1|9999030683|MR|Test|E|Lead 30683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030684|130684|989898|1|9999030684|MR|Test|E|Lead 30684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030685|130685|989898|1|9999030685|MR|Test|E|Lead 30685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030686|130686|989898|1|9999030686|MR|Test|E|Lead 30686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030687|130687|989898|1|9999030687|MR|Test|E|Lead 30687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030688|130688|989898|1|9999030688|MR|Test|E|Lead 30688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030689|130689|989898|1|9999030689|MR|Test|E|Lead 30689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030690|130690|989898|1|9999030690|MR|Test|E|Lead 30690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030691|130691|989898|1|9999030691|MR|Test|E|Lead 30691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030692|130692|989898|1|9999030692|MR|Test|E|Lead 30692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030693|130693|989898|1|9999030693|MR|Test|E|Lead 30693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030694|130694|989898|1|9999030694|MR|Test|E|Lead 30694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030695|130695|989898|1|9999030695|MR|Test|E|Lead 30695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030696|130696|989898|1|9999030696|MR|Test|E|Lead 30696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030697|130697|989898|1|9999030697|MR|Test|E|Lead 30697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030698|130698|989898|1|9999030698|MR|Test|E|Lead 30698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030699|130699|989898|1|9999030699|MR|Test|E|Lead 30699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030700|130700|989898|1|9999030700|MR|Test|E|Lead 30700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030701|130701|989898|1|9999030701|MR|Test|E|Lead 30701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030702|130702|989898|1|9999030702|MR|Test|E|Lead 30702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030703|130703|989898|1|9999030703|MR|Test|E|Lead 30703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030704|130704|989898|1|9999030704|MR|Test|E|Lead 30704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030705|130705|989898|1|9999030705|MR|Test|E|Lead 30705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030706|130706|989898|1|9999030706|MR|Test|E|Lead 30706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030707|130707|989898|1|9999030707|MR|Test|E|Lead 30707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030708|130708|989898|1|9999030708|MR|Test|E|Lead 30708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030709|130709|989898|1|9999030709|MR|Test|E|Lead 30709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030710|130710|989898|1|9999030710|MR|Test|E|Lead 30710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030711|130711|989898|1|9999030711|MR|Test|E|Lead 30711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030712|130712|989898|1|9999030712|MR|Test|E|Lead 30712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030713|130713|989898|1|9999030713|MR|Test|E|Lead 30713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030714|130714|989898|1|9999030714|MR|Test|E|Lead 30714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030715|130715|989898|1|9999030715|MR|Test|E|Lead 30715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030716|130716|989898|1|9999030716|MR|Test|E|Lead 30716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030717|130717|989898|1|9999030717|MR|Test|E|Lead 30717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030718|130718|989898|1|9999030718|MR|Test|E|Lead 30718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030719|130719|989898|1|9999030719|MR|Test|E|Lead 30719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030720|130720|989898|1|9999030720|MR|Test|E|Lead 30720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030721|130721|989898|1|9999030721|MR|Test|E|Lead 30721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030722|130722|989898|1|9999030722|MR|Test|E|Lead 30722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030723|130723|989898|1|9999030723|MR|Test|E|Lead 30723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030724|130724|989898|1|9999030724|MR|Test|E|Lead 30724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030725|130725|989898|1|9999030725|MR|Test|E|Lead 30725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030726|130726|989898|1|9999030726|MR|Test|E|Lead 30726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030727|130727|989898|1|9999030727|MR|Test|E|Lead 30727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030728|130728|989898|1|9999030728|MR|Test|E|Lead 30728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030729|130729|989898|1|9999030729|MR|Test|E|Lead 30729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030730|130730|989898|1|9999030730|MR|Test|E|Lead 30730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030731|130731|989898|1|9999030731|MR|Test|E|Lead 30731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030732|130732|989898|1|9999030732|MR|Test|E|Lead 30732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030733|130733|989898|1|9999030733|MR|Test|E|Lead 30733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030734|130734|989898|1|9999030734|MR|Test|E|Lead 30734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030735|130735|989898|1|9999030735|MR|Test|E|Lead 30735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030736|130736|989898|1|9999030736|MR|Test|E|Lead 30736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030737|130737|989898|1|9999030737|MR|Test|E|Lead 30737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030738|130738|989898|1|9999030738|MR|Test|E|Lead 30738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030739|130739|989898|1|9999030739|MR|Test|E|Lead 30739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030740|130740|989898|1|9999030740|MR|Test|E|Lead 30740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030741|130741|989898|1|9999030741|MR|Test|E|Lead 30741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030742|130742|989898|1|9999030742|MR|Test|E|Lead 30742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030743|130743|989898|1|9999030743|MR|Test|E|Lead 30743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030744|130744|989898|1|9999030744|MR|Test|E|Lead 30744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030745|130745|989898|1|9999030745|MR|Test|E|Lead 30745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030746|130746|989898|1|9999030746|MR|Test|E|Lead 30746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030747|130747|989898|1|9999030747|MR|Test|E|Lead 30747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030748|130748|989898|1|9999030748|MR|Test|E|Lead 30748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030749|130749|989898|1|9999030749|MR|Test|E|Lead 30749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030750|130750|989898|1|9999030750|MR|Test|E|Lead 30750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030751|130751|989898|1|9999030751|MR|Test|E|Lead 30751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030752|130752|989898|1|9999030752|MR|Test|E|Lead 30752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030753|130753|989898|1|9999030753|MR|Test|E|Lead 30753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030754|130754|989898|1|9999030754|MR|Test|E|Lead 30754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030755|130755|989898|1|9999030755|MR|Test|E|Lead 30755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030756|130756|989898|1|9999030756|MR|Test|E|Lead 30756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030757|130757|989898|1|9999030757|MR|Test|E|Lead 30757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030758|130758|989898|1|9999030758|MR|Test|E|Lead 30758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030759|130759|989898|1|9999030759|MR|Test|E|Lead 30759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030760|130760|989898|1|9999030760|MR|Test|E|Lead 30760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030761|130761|989898|1|9999030761|MR|Test|E|Lead 30761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030762|130762|989898|1|9999030762|MR|Test|E|Lead 30762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030763|130763|989898|1|9999030763|MR|Test|E|Lead 30763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030764|130764|989898|1|9999030764|MR|Test|E|Lead 30764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030765|130765|989898|1|9999030765|MR|Test|E|Lead 30765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030766|130766|989898|1|9999030766|MR|Test|E|Lead 30766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030767|130767|989898|1|9999030767|MR|Test|E|Lead 30767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030768|130768|989898|1|9999030768|MR|Test|E|Lead 30768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030769|130769|989898|1|9999030769|MR|Test|E|Lead 30769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030770|130770|989898|1|9999030770|MR|Test|E|Lead 30770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030771|130771|989898|1|9999030771|MR|Test|E|Lead 30771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030772|130772|989898|1|9999030772|MR|Test|E|Lead 30772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030773|130773|989898|1|9999030773|MR|Test|E|Lead 30773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030774|130774|989898|1|9999030774|MR|Test|E|Lead 30774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030775|130775|989898|1|9999030775|MR|Test|E|Lead 30775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030776|130776|989898|1|9999030776|MR|Test|E|Lead 30776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030777|130777|989898|1|9999030777|MR|Test|E|Lead 30777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030778|130778|989898|1|9999030778|MR|Test|E|Lead 30778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030779|130779|989898|1|9999030779|MR|Test|E|Lead 30779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030780|130780|989898|1|9999030780|MR|Test|E|Lead 30780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030781|130781|989898|1|9999030781|MR|Test|E|Lead 30781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030782|130782|989898|1|9999030782|MR|Test|E|Lead 30782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030783|130783|989898|1|9999030783|MR|Test|E|Lead 30783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030784|130784|989898|1|9999030784|MR|Test|E|Lead 30784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030785|130785|989898|1|9999030785|MR|Test|E|Lead 30785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030786|130786|989898|1|9999030786|MR|Test|E|Lead 30786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030787|130787|989898|1|9999030787|MR|Test|E|Lead 30787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030788|130788|989898|1|9999030788|MR|Test|E|Lead 30788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030789|130789|989898|1|9999030789|MR|Test|E|Lead 30789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030790|130790|989898|1|9999030790|MR|Test|E|Lead 30790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030791|130791|989898|1|9999030791|MR|Test|E|Lead 30791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030792|130792|989898|1|9999030792|MR|Test|E|Lead 30792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030793|130793|989898|1|9999030793|MR|Test|E|Lead 30793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030794|130794|989898|1|9999030794|MR|Test|E|Lead 30794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030795|130795|989898|1|9999030795|MR|Test|E|Lead 30795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030796|130796|989898|1|9999030796|MR|Test|E|Lead 30796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030797|130797|989898|1|9999030797|MR|Test|E|Lead 30797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030798|130798|989898|1|9999030798|MR|Test|E|Lead 30798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030799|130799|989898|1|9999030799|MR|Test|E|Lead 30799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030800|130800|989898|1|9999030800|MR|Test|E|Lead 30800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030801|130801|989898|1|9999030801|MR|Test|E|Lead 30801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030802|130802|989898|1|9999030802|MR|Test|E|Lead 30802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030803|130803|989898|1|9999030803|MR|Test|E|Lead 30803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030804|130804|989898|1|9999030804|MR|Test|E|Lead 30804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030805|130805|989898|1|9999030805|MR|Test|E|Lead 30805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030806|130806|989898|1|9999030806|MR|Test|E|Lead 30806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030807|130807|989898|1|9999030807|MR|Test|E|Lead 30807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030808|130808|989898|1|9999030808|MR|Test|E|Lead 30808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030809|130809|989898|1|9999030809|MR|Test|E|Lead 30809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030810|130810|989898|1|9999030810|MR|Test|E|Lead 30810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030811|130811|989898|1|9999030811|MR|Test|E|Lead 30811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030812|130812|989898|1|9999030812|MR|Test|E|Lead 30812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030813|130813|989898|1|9999030813|MR|Test|E|Lead 30813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030814|130814|989898|1|9999030814|MR|Test|E|Lead 30814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030815|130815|989898|1|9999030815|MR|Test|E|Lead 30815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030816|130816|989898|1|9999030816|MR|Test|E|Lead 30816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030817|130817|989898|1|9999030817|MR|Test|E|Lead 30817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030818|130818|989898|1|9999030818|MR|Test|E|Lead 30818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030819|130819|989898|1|9999030819|MR|Test|E|Lead 30819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030820|130820|989898|1|9999030820|MR|Test|E|Lead 30820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030821|130821|989898|1|9999030821|MR|Test|E|Lead 30821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030822|130822|989898|1|9999030822|MR|Test|E|Lead 30822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030823|130823|989898|1|9999030823|MR|Test|E|Lead 30823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030824|130824|989898|1|9999030824|MR|Test|E|Lead 30824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030825|130825|989898|1|9999030825|MR|Test|E|Lead 30825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030826|130826|989898|1|9999030826|MR|Test|E|Lead 30826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030827|130827|989898|1|9999030827|MR|Test|E|Lead 30827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030828|130828|989898|1|9999030828|MR|Test|E|Lead 30828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030829|130829|989898|1|9999030829|MR|Test|E|Lead 30829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030830|130830|989898|1|9999030830|MR|Test|E|Lead 30830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030831|130831|989898|1|9999030831|MR|Test|E|Lead 30831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030832|130832|989898|1|9999030832|MR|Test|E|Lead 30832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030833|130833|989898|1|9999030833|MR|Test|E|Lead 30833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030834|130834|989898|1|9999030834|MR|Test|E|Lead 30834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030835|130835|989898|1|9999030835|MR|Test|E|Lead 30835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030836|130836|989898|1|9999030836|MR|Test|E|Lead 30836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030837|130837|989898|1|9999030837|MR|Test|E|Lead 30837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030838|130838|989898|1|9999030838|MR|Test|E|Lead 30838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030839|130839|989898|1|9999030839|MR|Test|E|Lead 30839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030840|130840|989898|1|9999030840|MR|Test|E|Lead 30840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030841|130841|989898|1|9999030841|MR|Test|E|Lead 30841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030842|130842|989898|1|9999030842|MR|Test|E|Lead 30842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030843|130843|989898|1|9999030843|MR|Test|E|Lead 30843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030844|130844|989898|1|9999030844|MR|Test|E|Lead 30844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030845|130845|989898|1|9999030845|MR|Test|E|Lead 30845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030846|130846|989898|1|9999030846|MR|Test|E|Lead 30846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030847|130847|989898|1|9999030847|MR|Test|E|Lead 30847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030848|130848|989898|1|9999030848|MR|Test|E|Lead 30848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030849|130849|989898|1|9999030849|MR|Test|E|Lead 30849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030850|130850|989898|1|9999030850|MR|Test|E|Lead 30850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030851|130851|989898|1|9999030851|MR|Test|E|Lead 30851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030852|130852|989898|1|9999030852|MR|Test|E|Lead 30852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030853|130853|989898|1|9999030853|MR|Test|E|Lead 30853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030854|130854|989898|1|9999030854|MR|Test|E|Lead 30854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030855|130855|989898|1|9999030855|MR|Test|E|Lead 30855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030856|130856|989898|1|9999030856|MR|Test|E|Lead 30856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030857|130857|989898|1|9999030857|MR|Test|E|Lead 30857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030858|130858|989898|1|9999030858|MR|Test|E|Lead 30858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030859|130859|989898|1|9999030859|MR|Test|E|Lead 30859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030860|130860|989898|1|9999030860|MR|Test|E|Lead 30860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030861|130861|989898|1|9999030861|MR|Test|E|Lead 30861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030862|130862|989898|1|9999030862|MR|Test|E|Lead 30862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030863|130863|989898|1|9999030863|MR|Test|E|Lead 30863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030864|130864|989898|1|9999030864|MR|Test|E|Lead 30864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030865|130865|989898|1|9999030865|MR|Test|E|Lead 30865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030866|130866|989898|1|9999030866|MR|Test|E|Lead 30866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030867|130867|989898|1|9999030867|MR|Test|E|Lead 30867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030868|130868|989898|1|9999030868|MR|Test|E|Lead 30868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030869|130869|989898|1|9999030869|MR|Test|E|Lead 30869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030870|130870|989898|1|9999030870|MR|Test|E|Lead 30870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030871|130871|989898|1|9999030871|MR|Test|E|Lead 30871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030872|130872|989898|1|9999030872|MR|Test|E|Lead 30872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030873|130873|989898|1|9999030873|MR|Test|E|Lead 30873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030874|130874|989898|1|9999030874|MR|Test|E|Lead 30874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030875|130875|989898|1|9999030875|MR|Test|E|Lead 30875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030876|130876|989898|1|9999030876|MR|Test|E|Lead 30876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030877|130877|989898|1|9999030877|MR|Test|E|Lead 30877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030878|130878|989898|1|9999030878|MR|Test|E|Lead 30878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030879|130879|989898|1|9999030879|MR|Test|E|Lead 30879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030880|130880|989898|1|9999030880|MR|Test|E|Lead 30880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030881|130881|989898|1|9999030881|MR|Test|E|Lead 30881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030882|130882|989898|1|9999030882|MR|Test|E|Lead 30882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030883|130883|989898|1|9999030883|MR|Test|E|Lead 30883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030884|130884|989898|1|9999030884|MR|Test|E|Lead 30884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030885|130885|989898|1|9999030885|MR|Test|E|Lead 30885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030886|130886|989898|1|9999030886|MR|Test|E|Lead 30886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030887|130887|989898|1|9999030887|MR|Test|E|Lead 30887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030888|130888|989898|1|9999030888|MR|Test|E|Lead 30888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030889|130889|989898|1|9999030889|MR|Test|E|Lead 30889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030890|130890|989898|1|9999030890|MR|Test|E|Lead 30890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030891|130891|989898|1|9999030891|MR|Test|E|Lead 30891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030892|130892|989898|1|9999030892|MR|Test|E|Lead 30892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030893|130893|989898|1|9999030893|MR|Test|E|Lead 30893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030894|130894|989898|1|9999030894|MR|Test|E|Lead 30894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030895|130895|989898|1|9999030895|MR|Test|E|Lead 30895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030896|130896|989898|1|9999030896|MR|Test|E|Lead 30896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030897|130897|989898|1|9999030897|MR|Test|E|Lead 30897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030898|130898|989898|1|9999030898|MR|Test|E|Lead 30898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030899|130899|989898|1|9999030899|MR|Test|E|Lead 30899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030900|130900|989898|1|9999030900|MR|Test|E|Lead 30900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030901|130901|989898|1|9999030901|MR|Test|E|Lead 30901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030902|130902|989898|1|9999030902|MR|Test|E|Lead 30902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030903|130903|989898|1|9999030903|MR|Test|E|Lead 30903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030904|130904|989898|1|9999030904|MR|Test|E|Lead 30904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030905|130905|989898|1|9999030905|MR|Test|E|Lead 30905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030906|130906|989898|1|9999030906|MR|Test|E|Lead 30906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030907|130907|989898|1|9999030907|MR|Test|E|Lead 30907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030908|130908|989898|1|9999030908|MR|Test|E|Lead 30908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030909|130909|989898|1|9999030909|MR|Test|E|Lead 30909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030910|130910|989898|1|9999030910|MR|Test|E|Lead 30910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030911|130911|989898|1|9999030911|MR|Test|E|Lead 30911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030912|130912|989898|1|9999030912|MR|Test|E|Lead 30912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030913|130913|989898|1|9999030913|MR|Test|E|Lead 30913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030914|130914|989898|1|9999030914|MR|Test|E|Lead 30914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030915|130915|989898|1|9999030915|MR|Test|E|Lead 30915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030916|130916|989898|1|9999030916|MR|Test|E|Lead 30916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030917|130917|989898|1|9999030917|MR|Test|E|Lead 30917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030918|130918|989898|1|9999030918|MR|Test|E|Lead 30918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030919|130919|989898|1|9999030919|MR|Test|E|Lead 30919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030920|130920|989898|1|9999030920|MR|Test|E|Lead 30920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030921|130921|989898|1|9999030921|MR|Test|E|Lead 30921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030922|130922|989898|1|9999030922|MR|Test|E|Lead 30922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030923|130923|989898|1|9999030923|MR|Test|E|Lead 30923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030924|130924|989898|1|9999030924|MR|Test|E|Lead 30924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030925|130925|989898|1|9999030925|MR|Test|E|Lead 30925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030926|130926|989898|1|9999030926|MR|Test|E|Lead 30926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030927|130927|989898|1|9999030927|MR|Test|E|Lead 30927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030928|130928|989898|1|9999030928|MR|Test|E|Lead 30928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030929|130929|989898|1|9999030929|MR|Test|E|Lead 30929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030930|130930|989898|1|9999030930|MR|Test|E|Lead 30930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030931|130931|989898|1|9999030931|MR|Test|E|Lead 30931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030932|130932|989898|1|9999030932|MR|Test|E|Lead 30932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030933|130933|989898|1|9999030933|MR|Test|E|Lead 30933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030934|130934|989898|1|9999030934|MR|Test|E|Lead 30934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030935|130935|989898|1|9999030935|MR|Test|E|Lead 30935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030936|130936|989898|1|9999030936|MR|Test|E|Lead 30936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030937|130937|989898|1|9999030937|MR|Test|E|Lead 30937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030938|130938|989898|1|9999030938|MR|Test|E|Lead 30938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030939|130939|989898|1|9999030939|MR|Test|E|Lead 30939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030940|130940|989898|1|9999030940|MR|Test|E|Lead 30940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030941|130941|989898|1|9999030941|MR|Test|E|Lead 30941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030942|130942|989898|1|9999030942|MR|Test|E|Lead 30942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030943|130943|989898|1|9999030943|MR|Test|E|Lead 30943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030944|130944|989898|1|9999030944|MR|Test|E|Lead 30944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030945|130945|989898|1|9999030945|MR|Test|E|Lead 30945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030946|130946|989898|1|9999030946|MR|Test|E|Lead 30946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030947|130947|989898|1|9999030947|MR|Test|E|Lead 30947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030948|130948|989898|1|9999030948|MR|Test|E|Lead 30948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030949|130949|989898|1|9999030949|MR|Test|E|Lead 30949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030950|130950|989898|1|9999030950|MR|Test|E|Lead 30950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030951|130951|989898|1|9999030951|MR|Test|E|Lead 30951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030952|130952|989898|1|9999030952|MR|Test|E|Lead 30952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030953|130953|989898|1|9999030953|MR|Test|E|Lead 30953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030954|130954|989898|1|9999030954|MR|Test|E|Lead 30954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030955|130955|989898|1|9999030955|MR|Test|E|Lead 30955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030956|130956|989898|1|9999030956|MR|Test|E|Lead 30956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030957|130957|989898|1|9999030957|MR|Test|E|Lead 30957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030958|130958|989898|1|9999030958|MR|Test|E|Lead 30958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030959|130959|989898|1|9999030959|MR|Test|E|Lead 30959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030960|130960|989898|1|9999030960|MR|Test|E|Lead 30960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030961|130961|989898|1|9999030961|MR|Test|E|Lead 30961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030962|130962|989898|1|9999030962|MR|Test|E|Lead 30962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030963|130963|989898|1|9999030963|MR|Test|E|Lead 30963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030964|130964|989898|1|9999030964|MR|Test|E|Lead 30964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030965|130965|989898|1|9999030965|MR|Test|E|Lead 30965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030966|130966|989898|1|9999030966|MR|Test|E|Lead 30966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030967|130967|989898|1|9999030967|MR|Test|E|Lead 30967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030968|130968|989898|1|9999030968|MR|Test|E|Lead 30968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030969|130969|989898|1|9999030969|MR|Test|E|Lead 30969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030970|130970|989898|1|9999030970|MR|Test|E|Lead 30970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030971|130971|989898|1|9999030971|MR|Test|E|Lead 30971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030972|130972|989898|1|9999030972|MR|Test|E|Lead 30972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030973|130973|989898|1|9999030973|MR|Test|E|Lead 30973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030974|130974|989898|1|9999030974|MR|Test|E|Lead 30974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030975|130975|989898|1|9999030975|MR|Test|E|Lead 30975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030976|130976|989898|1|9999030976|MR|Test|E|Lead 30976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030977|130977|989898|1|9999030977|MR|Test|E|Lead 30977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030978|130978|989898|1|9999030978|MR|Test|E|Lead 30978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030979|130979|989898|1|9999030979|MR|Test|E|Lead 30979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030980|130980|989898|1|9999030980|MR|Test|E|Lead 30980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030981|130981|989898|1|9999030981|MR|Test|E|Lead 30981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030982|130982|989898|1|9999030982|MR|Test|E|Lead 30982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030983|130983|989898|1|9999030983|MR|Test|E|Lead 30983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030984|130984|989898|1|9999030984|MR|Test|E|Lead 30984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030985|130985|989898|1|9999030985|MR|Test|E|Lead 30985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030986|130986|989898|1|9999030986|MR|Test|E|Lead 30986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030987|130987|989898|1|9999030987|MR|Test|E|Lead 30987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030988|130988|989898|1|9999030988|MR|Test|E|Lead 30988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030989|130989|989898|1|9999030989|MR|Test|E|Lead 30989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030990|130990|989898|1|9999030990|MR|Test|E|Lead 30990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030991|130991|989898|1|9999030991|MR|Test|E|Lead 30991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030992|130992|989898|1|9999030992|MR|Test|E|Lead 30992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030993|130993|989898|1|9999030993|MR|Test|E|Lead 30993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030994|130994|989898|1|9999030994|MR|Test|E|Lead 30994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030995|130995|989898|1|9999030995|MR|Test|E|Lead 30995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030996|130996|989898|1|9999030996|MR|Test|E|Lead 30996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030997|130997|989898|1|9999030997|MR|Test|E|Lead 30997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030998|130998|989898|1|9999030998|MR|Test|E|Lead 30998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1030999|130999|989898|1|9999030999|MR|Test|E|Lead 30999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031000|131000|989898|1|9999031000|MR|Test|E|Lead 31000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031001|131001|989898|1|9999031001|MR|Test|E|Lead 31001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031002|131002|989898|1|9999031002|MR|Test|E|Lead 31002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031003|131003|989898|1|9999031003|MR|Test|E|Lead 31003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031004|131004|989898|1|9999031004|MR|Test|E|Lead 31004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031005|131005|989898|1|9999031005|MR|Test|E|Lead 31005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031006|131006|989898|1|9999031006|MR|Test|E|Lead 31006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031007|131007|989898|1|9999031007|MR|Test|E|Lead 31007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031008|131008|989898|1|9999031008|MR|Test|E|Lead 31008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031009|131009|989898|1|9999031009|MR|Test|E|Lead 31009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031010|131010|989898|1|9999031010|MR|Test|E|Lead 31010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031011|131011|989898|1|9999031011|MR|Test|E|Lead 31011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031012|131012|989898|1|9999031012|MR|Test|E|Lead 31012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031013|131013|989898|1|9999031013|MR|Test|E|Lead 31013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031014|131014|989898|1|9999031014|MR|Test|E|Lead 31014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031015|131015|989898|1|9999031015|MR|Test|E|Lead 31015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031016|131016|989898|1|9999031016|MR|Test|E|Lead 31016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031017|131017|989898|1|9999031017|MR|Test|E|Lead 31017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031018|131018|989898|1|9999031018|MR|Test|E|Lead 31018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031019|131019|989898|1|9999031019|MR|Test|E|Lead 31019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031020|131020|989898|1|9999031020|MR|Test|E|Lead 31020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031021|131021|989898|1|9999031021|MR|Test|E|Lead 31021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031022|131022|989898|1|9999031022|MR|Test|E|Lead 31022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031023|131023|989898|1|9999031023|MR|Test|E|Lead 31023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031024|131024|989898|1|9999031024|MR|Test|E|Lead 31024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031025|131025|989898|1|9999031025|MR|Test|E|Lead 31025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031026|131026|989898|1|9999031026|MR|Test|E|Lead 31026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031027|131027|989898|1|9999031027|MR|Test|E|Lead 31027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031028|131028|989898|1|9999031028|MR|Test|E|Lead 31028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031029|131029|989898|1|9999031029|MR|Test|E|Lead 31029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031030|131030|989898|1|9999031030|MR|Test|E|Lead 31030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031031|131031|989898|1|9999031031|MR|Test|E|Lead 31031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031032|131032|989898|1|9999031032|MR|Test|E|Lead 31032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031033|131033|989898|1|9999031033|MR|Test|E|Lead 31033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031034|131034|989898|1|9999031034|MR|Test|E|Lead 31034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031035|131035|989898|1|9999031035|MR|Test|E|Lead 31035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031036|131036|989898|1|9999031036|MR|Test|E|Lead 31036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031037|131037|989898|1|9999031037|MR|Test|E|Lead 31037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031038|131038|989898|1|9999031038|MR|Test|E|Lead 31038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031039|131039|989898|1|9999031039|MR|Test|E|Lead 31039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031040|131040|989898|1|9999031040|MR|Test|E|Lead 31040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031041|131041|989898|1|9999031041|MR|Test|E|Lead 31041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031042|131042|989898|1|9999031042|MR|Test|E|Lead 31042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031043|131043|989898|1|9999031043|MR|Test|E|Lead 31043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031044|131044|989898|1|9999031044|MR|Test|E|Lead 31044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031045|131045|989898|1|9999031045|MR|Test|E|Lead 31045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031046|131046|989898|1|9999031046|MR|Test|E|Lead 31046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031047|131047|989898|1|9999031047|MR|Test|E|Lead 31047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031048|131048|989898|1|9999031048|MR|Test|E|Lead 31048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031049|131049|989898|1|9999031049|MR|Test|E|Lead 31049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031050|131050|989898|1|9999031050|MR|Test|E|Lead 31050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031051|131051|989898|1|9999031051|MR|Test|E|Lead 31051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031052|131052|989898|1|9999031052|MR|Test|E|Lead 31052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031053|131053|989898|1|9999031053|MR|Test|E|Lead 31053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031054|131054|989898|1|9999031054|MR|Test|E|Lead 31054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031055|131055|989898|1|9999031055|MR|Test|E|Lead 31055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031056|131056|989898|1|9999031056|MR|Test|E|Lead 31056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031057|131057|989898|1|9999031057|MR|Test|E|Lead 31057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031058|131058|989898|1|9999031058|MR|Test|E|Lead 31058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031059|131059|989898|1|9999031059|MR|Test|E|Lead 31059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031060|131060|989898|1|9999031060|MR|Test|E|Lead 31060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031061|131061|989898|1|9999031061|MR|Test|E|Lead 31061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031062|131062|989898|1|9999031062|MR|Test|E|Lead 31062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031063|131063|989898|1|9999031063|MR|Test|E|Lead 31063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031064|131064|989898|1|9999031064|MR|Test|E|Lead 31064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031065|131065|989898|1|9999031065|MR|Test|E|Lead 31065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031066|131066|989898|1|9999031066|MR|Test|E|Lead 31066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031067|131067|989898|1|9999031067|MR|Test|E|Lead 31067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031068|131068|989898|1|9999031068|MR|Test|E|Lead 31068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031069|131069|989898|1|9999031069|MR|Test|E|Lead 31069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031070|131070|989898|1|9999031070|MR|Test|E|Lead 31070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031071|131071|989898|1|9999031071|MR|Test|E|Lead 31071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031072|131072|989898|1|9999031072|MR|Test|E|Lead 31072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031073|131073|989898|1|9999031073|MR|Test|E|Lead 31073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031074|131074|989898|1|9999031074|MR|Test|E|Lead 31074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031075|131075|989898|1|9999031075|MR|Test|E|Lead 31075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031076|131076|989898|1|9999031076|MR|Test|E|Lead 31076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031077|131077|989898|1|9999031077|MR|Test|E|Lead 31077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031078|131078|989898|1|9999031078|MR|Test|E|Lead 31078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031079|131079|989898|1|9999031079|MR|Test|E|Lead 31079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031080|131080|989898|1|9999031080|MR|Test|E|Lead 31080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031081|131081|989898|1|9999031081|MR|Test|E|Lead 31081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031082|131082|989898|1|9999031082|MR|Test|E|Lead 31082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031083|131083|989898|1|9999031083|MR|Test|E|Lead 31083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031084|131084|989898|1|9999031084|MR|Test|E|Lead 31084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031085|131085|989898|1|9999031085|MR|Test|E|Lead 31085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031086|131086|989898|1|9999031086|MR|Test|E|Lead 31086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031087|131087|989898|1|9999031087|MR|Test|E|Lead 31087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031088|131088|989898|1|9999031088|MR|Test|E|Lead 31088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031089|131089|989898|1|9999031089|MR|Test|E|Lead 31089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031090|131090|989898|1|9999031090|MR|Test|E|Lead 31090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031091|131091|989898|1|9999031091|MR|Test|E|Lead 31091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031092|131092|989898|1|9999031092|MR|Test|E|Lead 31092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031093|131093|989898|1|9999031093|MR|Test|E|Lead 31093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031094|131094|989898|1|9999031094|MR|Test|E|Lead 31094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031095|131095|989898|1|9999031095|MR|Test|E|Lead 31095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031096|131096|989898|1|9999031096|MR|Test|E|Lead 31096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031097|131097|989898|1|9999031097|MR|Test|E|Lead 31097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031098|131098|989898|1|9999031098|MR|Test|E|Lead 31098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031099|131099|989898|1|9999031099|MR|Test|E|Lead 31099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031100|131100|989898|1|9999031100|MR|Test|E|Lead 31100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031101|131101|989898|1|9999031101|MR|Test|E|Lead 31101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031102|131102|989898|1|9999031102|MR|Test|E|Lead 31102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031103|131103|989898|1|9999031103|MR|Test|E|Lead 31103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031104|131104|989898|1|9999031104|MR|Test|E|Lead 31104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031105|131105|989898|1|9999031105|MR|Test|E|Lead 31105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031106|131106|989898|1|9999031106|MR|Test|E|Lead 31106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031107|131107|989898|1|9999031107|MR|Test|E|Lead 31107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031108|131108|989898|1|9999031108|MR|Test|E|Lead 31108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031109|131109|989898|1|9999031109|MR|Test|E|Lead 31109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031110|131110|989898|1|9999031110|MR|Test|E|Lead 31110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031111|131111|989898|1|9999031111|MR|Test|E|Lead 31111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031112|131112|989898|1|9999031112|MR|Test|E|Lead 31112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031113|131113|989898|1|9999031113|MR|Test|E|Lead 31113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031114|131114|989898|1|9999031114|MR|Test|E|Lead 31114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031115|131115|989898|1|9999031115|MR|Test|E|Lead 31115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031116|131116|989898|1|9999031116|MR|Test|E|Lead 31116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031117|131117|989898|1|9999031117|MR|Test|E|Lead 31117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031118|131118|989898|1|9999031118|MR|Test|E|Lead 31118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031119|131119|989898|1|9999031119|MR|Test|E|Lead 31119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031120|131120|989898|1|9999031120|MR|Test|E|Lead 31120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031121|131121|989898|1|9999031121|MR|Test|E|Lead 31121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031122|131122|989898|1|9999031122|MR|Test|E|Lead 31122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031123|131123|989898|1|9999031123|MR|Test|E|Lead 31123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031124|131124|989898|1|9999031124|MR|Test|E|Lead 31124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031125|131125|989898|1|9999031125|MR|Test|E|Lead 31125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031126|131126|989898|1|9999031126|MR|Test|E|Lead 31126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031127|131127|989898|1|9999031127|MR|Test|E|Lead 31127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031128|131128|989898|1|9999031128|MR|Test|E|Lead 31128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031129|131129|989898|1|9999031129|MR|Test|E|Lead 31129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031130|131130|989898|1|9999031130|MR|Test|E|Lead 31130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031131|131131|989898|1|9999031131|MR|Test|E|Lead 31131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031132|131132|989898|1|9999031132|MR|Test|E|Lead 31132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031133|131133|989898|1|9999031133|MR|Test|E|Lead 31133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031134|131134|989898|1|9999031134|MR|Test|E|Lead 31134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031135|131135|989898|1|9999031135|MR|Test|E|Lead 31135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031136|131136|989898|1|9999031136|MR|Test|E|Lead 31136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031137|131137|989898|1|9999031137|MR|Test|E|Lead 31137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031138|131138|989898|1|9999031138|MR|Test|E|Lead 31138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031139|131139|989898|1|9999031139|MR|Test|E|Lead 31139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031140|131140|989898|1|9999031140|MR|Test|E|Lead 31140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031141|131141|989898|1|9999031141|MR|Test|E|Lead 31141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031142|131142|989898|1|9999031142|MR|Test|E|Lead 31142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031143|131143|989898|1|9999031143|MR|Test|E|Lead 31143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031144|131144|989898|1|9999031144|MR|Test|E|Lead 31144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031145|131145|989898|1|9999031145|MR|Test|E|Lead 31145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031146|131146|989898|1|9999031146|MR|Test|E|Lead 31146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031147|131147|989898|1|9999031147|MR|Test|E|Lead 31147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031148|131148|989898|1|9999031148|MR|Test|E|Lead 31148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031149|131149|989898|1|9999031149|MR|Test|E|Lead 31149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031150|131150|989898|1|9999031150|MR|Test|E|Lead 31150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031151|131151|989898|1|9999031151|MR|Test|E|Lead 31151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031152|131152|989898|1|9999031152|MR|Test|E|Lead 31152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031153|131153|989898|1|9999031153|MR|Test|E|Lead 31153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031154|131154|989898|1|9999031154|MR|Test|E|Lead 31154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031155|131155|989898|1|9999031155|MR|Test|E|Lead 31155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031156|131156|989898|1|9999031156|MR|Test|E|Lead 31156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031157|131157|989898|1|9999031157|MR|Test|E|Lead 31157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031158|131158|989898|1|9999031158|MR|Test|E|Lead 31158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031159|131159|989898|1|9999031159|MR|Test|E|Lead 31159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031160|131160|989898|1|9999031160|MR|Test|E|Lead 31160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031161|131161|989898|1|9999031161|MR|Test|E|Lead 31161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031162|131162|989898|1|9999031162|MR|Test|E|Lead 31162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031163|131163|989898|1|9999031163|MR|Test|E|Lead 31163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031164|131164|989898|1|9999031164|MR|Test|E|Lead 31164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031165|131165|989898|1|9999031165|MR|Test|E|Lead 31165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031166|131166|989898|1|9999031166|MR|Test|E|Lead 31166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031167|131167|989898|1|9999031167|MR|Test|E|Lead 31167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031168|131168|989898|1|9999031168|MR|Test|E|Lead 31168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031169|131169|989898|1|9999031169|MR|Test|E|Lead 31169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031170|131170|989898|1|9999031170|MR|Test|E|Lead 31170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031171|131171|989898|1|9999031171|MR|Test|E|Lead 31171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031172|131172|989898|1|9999031172|MR|Test|E|Lead 31172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031173|131173|989898|1|9999031173|MR|Test|E|Lead 31173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031174|131174|989898|1|9999031174|MR|Test|E|Lead 31174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031175|131175|989898|1|9999031175|MR|Test|E|Lead 31175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031176|131176|989898|1|9999031176|MR|Test|E|Lead 31176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031177|131177|989898|1|9999031177|MR|Test|E|Lead 31177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031178|131178|989898|1|9999031178|MR|Test|E|Lead 31178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031179|131179|989898|1|9999031179|MR|Test|E|Lead 31179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031180|131180|989898|1|9999031180|MR|Test|E|Lead 31180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031181|131181|989898|1|9999031181|MR|Test|E|Lead 31181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031182|131182|989898|1|9999031182|MR|Test|E|Lead 31182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031183|131183|989898|1|9999031183|MR|Test|E|Lead 31183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031184|131184|989898|1|9999031184|MR|Test|E|Lead 31184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031185|131185|989898|1|9999031185|MR|Test|E|Lead 31185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031186|131186|989898|1|9999031186|MR|Test|E|Lead 31186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031187|131187|989898|1|9999031187|MR|Test|E|Lead 31187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031188|131188|989898|1|9999031188|MR|Test|E|Lead 31188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031189|131189|989898|1|9999031189|MR|Test|E|Lead 31189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031190|131190|989898|1|9999031190|MR|Test|E|Lead 31190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031191|131191|989898|1|9999031191|MR|Test|E|Lead 31191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031192|131192|989898|1|9999031192|MR|Test|E|Lead 31192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031193|131193|989898|1|9999031193|MR|Test|E|Lead 31193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031194|131194|989898|1|9999031194|MR|Test|E|Lead 31194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031195|131195|989898|1|9999031195|MR|Test|E|Lead 31195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031196|131196|989898|1|9999031196|MR|Test|E|Lead 31196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031197|131197|989898|1|9999031197|MR|Test|E|Lead 31197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031198|131198|989898|1|9999031198|MR|Test|E|Lead 31198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031199|131199|989898|1|9999031199|MR|Test|E|Lead 31199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031200|131200|989898|1|9999031200|MR|Test|E|Lead 31200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031201|131201|989898|1|9999031201|MR|Test|E|Lead 31201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031202|131202|989898|1|9999031202|MR|Test|E|Lead 31202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031203|131203|989898|1|9999031203|MR|Test|E|Lead 31203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031204|131204|989898|1|9999031204|MR|Test|E|Lead 31204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031205|131205|989898|1|9999031205|MR|Test|E|Lead 31205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031206|131206|989898|1|9999031206|MR|Test|E|Lead 31206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031207|131207|989898|1|9999031207|MR|Test|E|Lead 31207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031208|131208|989898|1|9999031208|MR|Test|E|Lead 31208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031209|131209|989898|1|9999031209|MR|Test|E|Lead 31209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031210|131210|989898|1|9999031210|MR|Test|E|Lead 31210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031211|131211|989898|1|9999031211|MR|Test|E|Lead 31211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031212|131212|989898|1|9999031212|MR|Test|E|Lead 31212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031213|131213|989898|1|9999031213|MR|Test|E|Lead 31213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031214|131214|989898|1|9999031214|MR|Test|E|Lead 31214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031215|131215|989898|1|9999031215|MR|Test|E|Lead 31215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031216|131216|989898|1|9999031216|MR|Test|E|Lead 31216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031217|131217|989898|1|9999031217|MR|Test|E|Lead 31217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031218|131218|989898|1|9999031218|MR|Test|E|Lead 31218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031219|131219|989898|1|9999031219|MR|Test|E|Lead 31219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031220|131220|989898|1|9999031220|MR|Test|E|Lead 31220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031221|131221|989898|1|9999031221|MR|Test|E|Lead 31221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031222|131222|989898|1|9999031222|MR|Test|E|Lead 31222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031223|131223|989898|1|9999031223|MR|Test|E|Lead 31223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031224|131224|989898|1|9999031224|MR|Test|E|Lead 31224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031225|131225|989898|1|9999031225|MR|Test|E|Lead 31225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031226|131226|989898|1|9999031226|MR|Test|E|Lead 31226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031227|131227|989898|1|9999031227|MR|Test|E|Lead 31227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031228|131228|989898|1|9999031228|MR|Test|E|Lead 31228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031229|131229|989898|1|9999031229|MR|Test|E|Lead 31229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031230|131230|989898|1|9999031230|MR|Test|E|Lead 31230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031231|131231|989898|1|9999031231|MR|Test|E|Lead 31231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031232|131232|989898|1|9999031232|MR|Test|E|Lead 31232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031233|131233|989898|1|9999031233|MR|Test|E|Lead 31233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031234|131234|989898|1|9999031234|MR|Test|E|Lead 31234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031235|131235|989898|1|9999031235|MR|Test|E|Lead 31235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031236|131236|989898|1|9999031236|MR|Test|E|Lead 31236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031237|131237|989898|1|9999031237|MR|Test|E|Lead 31237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031238|131238|989898|1|9999031238|MR|Test|E|Lead 31238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031239|131239|989898|1|9999031239|MR|Test|E|Lead 31239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031240|131240|989898|1|9999031240|MR|Test|E|Lead 31240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031241|131241|989898|1|9999031241|MR|Test|E|Lead 31241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031242|131242|989898|1|9999031242|MR|Test|E|Lead 31242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031243|131243|989898|1|9999031243|MR|Test|E|Lead 31243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031244|131244|989898|1|9999031244|MR|Test|E|Lead 31244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031245|131245|989898|1|9999031245|MR|Test|E|Lead 31245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031246|131246|989898|1|9999031246|MR|Test|E|Lead 31246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031247|131247|989898|1|9999031247|MR|Test|E|Lead 31247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031248|131248|989898|1|9999031248|MR|Test|E|Lead 31248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031249|131249|989898|1|9999031249|MR|Test|E|Lead 31249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031250|131250|989898|1|9999031250|MR|Test|E|Lead 31250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031251|131251|989898|1|9999031251|MR|Test|E|Lead 31251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031252|131252|989898|1|9999031252|MR|Test|E|Lead 31252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031253|131253|989898|1|9999031253|MR|Test|E|Lead 31253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031254|131254|989898|1|9999031254|MR|Test|E|Lead 31254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031255|131255|989898|1|9999031255|MR|Test|E|Lead 31255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031256|131256|989898|1|9999031256|MR|Test|E|Lead 31256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031257|131257|989898|1|9999031257|MR|Test|E|Lead 31257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031258|131258|989898|1|9999031258|MR|Test|E|Lead 31258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031259|131259|989898|1|9999031259|MR|Test|E|Lead 31259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031260|131260|989898|1|9999031260|MR|Test|E|Lead 31260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031261|131261|989898|1|9999031261|MR|Test|E|Lead 31261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031262|131262|989898|1|9999031262|MR|Test|E|Lead 31262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031263|131263|989898|1|9999031263|MR|Test|E|Lead 31263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031264|131264|989898|1|9999031264|MR|Test|E|Lead 31264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031265|131265|989898|1|9999031265|MR|Test|E|Lead 31265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031266|131266|989898|1|9999031266|MR|Test|E|Lead 31266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031267|131267|989898|1|9999031267|MR|Test|E|Lead 31267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031268|131268|989898|1|9999031268|MR|Test|E|Lead 31268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031269|131269|989898|1|9999031269|MR|Test|E|Lead 31269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031270|131270|989898|1|9999031270|MR|Test|E|Lead 31270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031271|131271|989898|1|9999031271|MR|Test|E|Lead 31271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031272|131272|989898|1|9999031272|MR|Test|E|Lead 31272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031273|131273|989898|1|9999031273|MR|Test|E|Lead 31273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031274|131274|989898|1|9999031274|MR|Test|E|Lead 31274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031275|131275|989898|1|9999031275|MR|Test|E|Lead 31275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031276|131276|989898|1|9999031276|MR|Test|E|Lead 31276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031277|131277|989898|1|9999031277|MR|Test|E|Lead 31277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031278|131278|989898|1|9999031278|MR|Test|E|Lead 31278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031279|131279|989898|1|9999031279|MR|Test|E|Lead 31279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031280|131280|989898|1|9999031280|MR|Test|E|Lead 31280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031281|131281|989898|1|9999031281|MR|Test|E|Lead 31281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031282|131282|989898|1|9999031282|MR|Test|E|Lead 31282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031283|131283|989898|1|9999031283|MR|Test|E|Lead 31283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031284|131284|989898|1|9999031284|MR|Test|E|Lead 31284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031285|131285|989898|1|9999031285|MR|Test|E|Lead 31285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031286|131286|989898|1|9999031286|MR|Test|E|Lead 31286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031287|131287|989898|1|9999031287|MR|Test|E|Lead 31287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031288|131288|989898|1|9999031288|MR|Test|E|Lead 31288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031289|131289|989898|1|9999031289|MR|Test|E|Lead 31289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031290|131290|989898|1|9999031290|MR|Test|E|Lead 31290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031291|131291|989898|1|9999031291|MR|Test|E|Lead 31291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031292|131292|989898|1|9999031292|MR|Test|E|Lead 31292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031293|131293|989898|1|9999031293|MR|Test|E|Lead 31293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031294|131294|989898|1|9999031294|MR|Test|E|Lead 31294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031295|131295|989898|1|9999031295|MR|Test|E|Lead 31295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031296|131296|989898|1|9999031296|MR|Test|E|Lead 31296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031297|131297|989898|1|9999031297|MR|Test|E|Lead 31297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031298|131298|989898|1|9999031298|MR|Test|E|Lead 31298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031299|131299|989898|1|9999031299|MR|Test|E|Lead 31299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031300|131300|989898|1|9999031300|MR|Test|E|Lead 31300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031301|131301|989898|1|9999031301|MR|Test|E|Lead 31301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031302|131302|989898|1|9999031302|MR|Test|E|Lead 31302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031303|131303|989898|1|9999031303|MR|Test|E|Lead 31303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031304|131304|989898|1|9999031304|MR|Test|E|Lead 31304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031305|131305|989898|1|9999031305|MR|Test|E|Lead 31305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031306|131306|989898|1|9999031306|MR|Test|E|Lead 31306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031307|131307|989898|1|9999031307|MR|Test|E|Lead 31307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031308|131308|989898|1|9999031308|MR|Test|E|Lead 31308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031309|131309|989898|1|9999031309|MR|Test|E|Lead 31309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031310|131310|989898|1|9999031310|MR|Test|E|Lead 31310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031311|131311|989898|1|9999031311|MR|Test|E|Lead 31311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031312|131312|989898|1|9999031312|MR|Test|E|Lead 31312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031313|131313|989898|1|9999031313|MR|Test|E|Lead 31313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031314|131314|989898|1|9999031314|MR|Test|E|Lead 31314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031315|131315|989898|1|9999031315|MR|Test|E|Lead 31315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031316|131316|989898|1|9999031316|MR|Test|E|Lead 31316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031317|131317|989898|1|9999031317|MR|Test|E|Lead 31317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031318|131318|989898|1|9999031318|MR|Test|E|Lead 31318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031319|131319|989898|1|9999031319|MR|Test|E|Lead 31319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031320|131320|989898|1|9999031320|MR|Test|E|Lead 31320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031321|131321|989898|1|9999031321|MR|Test|E|Lead 31321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031322|131322|989898|1|9999031322|MR|Test|E|Lead 31322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031323|131323|989898|1|9999031323|MR|Test|E|Lead 31323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031324|131324|989898|1|9999031324|MR|Test|E|Lead 31324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031325|131325|989898|1|9999031325|MR|Test|E|Lead 31325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031326|131326|989898|1|9999031326|MR|Test|E|Lead 31326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031327|131327|989898|1|9999031327|MR|Test|E|Lead 31327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031328|131328|989898|1|9999031328|MR|Test|E|Lead 31328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031329|131329|989898|1|9999031329|MR|Test|E|Lead 31329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031330|131330|989898|1|9999031330|MR|Test|E|Lead 31330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031331|131331|989898|1|9999031331|MR|Test|E|Lead 31331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031332|131332|989898|1|9999031332|MR|Test|E|Lead 31332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031333|131333|989898|1|9999031333|MR|Test|E|Lead 31333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031334|131334|989898|1|9999031334|MR|Test|E|Lead 31334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031335|131335|989898|1|9999031335|MR|Test|E|Lead 31335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031336|131336|989898|1|9999031336|MR|Test|E|Lead 31336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031337|131337|989898|1|9999031337|MR|Test|E|Lead 31337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031338|131338|989898|1|9999031338|MR|Test|E|Lead 31338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031339|131339|989898|1|9999031339|MR|Test|E|Lead 31339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031340|131340|989898|1|9999031340|MR|Test|E|Lead 31340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031341|131341|989898|1|9999031341|MR|Test|E|Lead 31341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031342|131342|989898|1|9999031342|MR|Test|E|Lead 31342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031343|131343|989898|1|9999031343|MR|Test|E|Lead 31343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031344|131344|989898|1|9999031344|MR|Test|E|Lead 31344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031345|131345|989898|1|9999031345|MR|Test|E|Lead 31345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031346|131346|989898|1|9999031346|MR|Test|E|Lead 31346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031347|131347|989898|1|9999031347|MR|Test|E|Lead 31347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031348|131348|989898|1|9999031348|MR|Test|E|Lead 31348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031349|131349|989898|1|9999031349|MR|Test|E|Lead 31349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031350|131350|989898|1|9999031350|MR|Test|E|Lead 31350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031351|131351|989898|1|9999031351|MR|Test|E|Lead 31351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031352|131352|989898|1|9999031352|MR|Test|E|Lead 31352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031353|131353|989898|1|9999031353|MR|Test|E|Lead 31353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031354|131354|989898|1|9999031354|MR|Test|E|Lead 31354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031355|131355|989898|1|9999031355|MR|Test|E|Lead 31355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031356|131356|989898|1|9999031356|MR|Test|E|Lead 31356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031357|131357|989898|1|9999031357|MR|Test|E|Lead 31357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031358|131358|989898|1|9999031358|MR|Test|E|Lead 31358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031359|131359|989898|1|9999031359|MR|Test|E|Lead 31359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031360|131360|989898|1|9999031360|MR|Test|E|Lead 31360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031361|131361|989898|1|9999031361|MR|Test|E|Lead 31361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031362|131362|989898|1|9999031362|MR|Test|E|Lead 31362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031363|131363|989898|1|9999031363|MR|Test|E|Lead 31363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031364|131364|989898|1|9999031364|MR|Test|E|Lead 31364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031365|131365|989898|1|9999031365|MR|Test|E|Lead 31365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031366|131366|989898|1|9999031366|MR|Test|E|Lead 31366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031367|131367|989898|1|9999031367|MR|Test|E|Lead 31367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031368|131368|989898|1|9999031368|MR|Test|E|Lead 31368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031369|131369|989898|1|9999031369|MR|Test|E|Lead 31369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031370|131370|989898|1|9999031370|MR|Test|E|Lead 31370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031371|131371|989898|1|9999031371|MR|Test|E|Lead 31371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031372|131372|989898|1|9999031372|MR|Test|E|Lead 31372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031373|131373|989898|1|9999031373|MR|Test|E|Lead 31373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031374|131374|989898|1|9999031374|MR|Test|E|Lead 31374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031375|131375|989898|1|9999031375|MR|Test|E|Lead 31375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031376|131376|989898|1|9999031376|MR|Test|E|Lead 31376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031377|131377|989898|1|9999031377|MR|Test|E|Lead 31377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031378|131378|989898|1|9999031378|MR|Test|E|Lead 31378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031379|131379|989898|1|9999031379|MR|Test|E|Lead 31379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031380|131380|989898|1|9999031380|MR|Test|E|Lead 31380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031381|131381|989898|1|9999031381|MR|Test|E|Lead 31381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031382|131382|989898|1|9999031382|MR|Test|E|Lead 31382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031383|131383|989898|1|9999031383|MR|Test|E|Lead 31383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031384|131384|989898|1|9999031384|MR|Test|E|Lead 31384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031385|131385|989898|1|9999031385|MR|Test|E|Lead 31385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031386|131386|989898|1|9999031386|MR|Test|E|Lead 31386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031387|131387|989898|1|9999031387|MR|Test|E|Lead 31387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031388|131388|989898|1|9999031388|MR|Test|E|Lead 31388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031389|131389|989898|1|9999031389|MR|Test|E|Lead 31389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031390|131390|989898|1|9999031390|MR|Test|E|Lead 31390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031391|131391|989898|1|9999031391|MR|Test|E|Lead 31391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031392|131392|989898|1|9999031392|MR|Test|E|Lead 31392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031393|131393|989898|1|9999031393|MR|Test|E|Lead 31393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031394|131394|989898|1|9999031394|MR|Test|E|Lead 31394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031395|131395|989898|1|9999031395|MR|Test|E|Lead 31395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031396|131396|989898|1|9999031396|MR|Test|E|Lead 31396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031397|131397|989898|1|9999031397|MR|Test|E|Lead 31397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031398|131398|989898|1|9999031398|MR|Test|E|Lead 31398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031399|131399|989898|1|9999031399|MR|Test|E|Lead 31399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031400|131400|989898|1|9999031400|MR|Test|E|Lead 31400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031401|131401|989898|1|9999031401|MR|Test|E|Lead 31401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031402|131402|989898|1|9999031402|MR|Test|E|Lead 31402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031403|131403|989898|1|9999031403|MR|Test|E|Lead 31403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031404|131404|989898|1|9999031404|MR|Test|E|Lead 31404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031405|131405|989898|1|9999031405|MR|Test|E|Lead 31405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031406|131406|989898|1|9999031406|MR|Test|E|Lead 31406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031407|131407|989898|1|9999031407|MR|Test|E|Lead 31407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031408|131408|989898|1|9999031408|MR|Test|E|Lead 31408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031409|131409|989898|1|9999031409|MR|Test|E|Lead 31409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031410|131410|989898|1|9999031410|MR|Test|E|Lead 31410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031411|131411|989898|1|9999031411|MR|Test|E|Lead 31411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031412|131412|989898|1|9999031412|MR|Test|E|Lead 31412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031413|131413|989898|1|9999031413|MR|Test|E|Lead 31413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031414|131414|989898|1|9999031414|MR|Test|E|Lead 31414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031415|131415|989898|1|9999031415|MR|Test|E|Lead 31415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031416|131416|989898|1|9999031416|MR|Test|E|Lead 31416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031417|131417|989898|1|9999031417|MR|Test|E|Lead 31417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031418|131418|989898|1|9999031418|MR|Test|E|Lead 31418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031419|131419|989898|1|9999031419|MR|Test|E|Lead 31419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031420|131420|989898|1|9999031420|MR|Test|E|Lead 31420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031421|131421|989898|1|9999031421|MR|Test|E|Lead 31421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031422|131422|989898|1|9999031422|MR|Test|E|Lead 31422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031423|131423|989898|1|9999031423|MR|Test|E|Lead 31423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031424|131424|989898|1|9999031424|MR|Test|E|Lead 31424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031425|131425|989898|1|9999031425|MR|Test|E|Lead 31425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031426|131426|989898|1|9999031426|MR|Test|E|Lead 31426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031427|131427|989898|1|9999031427|MR|Test|E|Lead 31427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031428|131428|989898|1|9999031428|MR|Test|E|Lead 31428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031429|131429|989898|1|9999031429|MR|Test|E|Lead 31429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031430|131430|989898|1|9999031430|MR|Test|E|Lead 31430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031431|131431|989898|1|9999031431|MR|Test|E|Lead 31431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031432|131432|989898|1|9999031432|MR|Test|E|Lead 31432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031433|131433|989898|1|9999031433|MR|Test|E|Lead 31433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031434|131434|989898|1|9999031434|MR|Test|E|Lead 31434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031435|131435|989898|1|9999031435|MR|Test|E|Lead 31435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031436|131436|989898|1|9999031436|MR|Test|E|Lead 31436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031437|131437|989898|1|9999031437|MR|Test|E|Lead 31437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031438|131438|989898|1|9999031438|MR|Test|E|Lead 31438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031439|131439|989898|1|9999031439|MR|Test|E|Lead 31439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031440|131440|989898|1|9999031440|MR|Test|E|Lead 31440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031441|131441|989898|1|9999031441|MR|Test|E|Lead 31441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031442|131442|989898|1|9999031442|MR|Test|E|Lead 31442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031443|131443|989898|1|9999031443|MR|Test|E|Lead 31443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031444|131444|989898|1|9999031444|MR|Test|E|Lead 31444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031445|131445|989898|1|9999031445|MR|Test|E|Lead 31445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031446|131446|989898|1|9999031446|MR|Test|E|Lead 31446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031447|131447|989898|1|9999031447|MR|Test|E|Lead 31447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031448|131448|989898|1|9999031448|MR|Test|E|Lead 31448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031449|131449|989898|1|9999031449|MR|Test|E|Lead 31449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031450|131450|989898|1|9999031450|MR|Test|E|Lead 31450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031451|131451|989898|1|9999031451|MR|Test|E|Lead 31451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031452|131452|989898|1|9999031452|MR|Test|E|Lead 31452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031453|131453|989898|1|9999031453|MR|Test|E|Lead 31453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031454|131454|989898|1|9999031454|MR|Test|E|Lead 31454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031455|131455|989898|1|9999031455|MR|Test|E|Lead 31455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031456|131456|989898|1|9999031456|MR|Test|E|Lead 31456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031457|131457|989898|1|9999031457|MR|Test|E|Lead 31457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031458|131458|989898|1|9999031458|MR|Test|E|Lead 31458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031459|131459|989898|1|9999031459|MR|Test|E|Lead 31459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031460|131460|989898|1|9999031460|MR|Test|E|Lead 31460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031461|131461|989898|1|9999031461|MR|Test|E|Lead 31461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031462|131462|989898|1|9999031462|MR|Test|E|Lead 31462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031463|131463|989898|1|9999031463|MR|Test|E|Lead 31463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031464|131464|989898|1|9999031464|MR|Test|E|Lead 31464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031465|131465|989898|1|9999031465|MR|Test|E|Lead 31465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031466|131466|989898|1|9999031466|MR|Test|E|Lead 31466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031467|131467|989898|1|9999031467|MR|Test|E|Lead 31467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031468|131468|989898|1|9999031468|MR|Test|E|Lead 31468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031469|131469|989898|1|9999031469|MR|Test|E|Lead 31469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031470|131470|989898|1|9999031470|MR|Test|E|Lead 31470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031471|131471|989898|1|9999031471|MR|Test|E|Lead 31471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031472|131472|989898|1|9999031472|MR|Test|E|Lead 31472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031473|131473|989898|1|9999031473|MR|Test|E|Lead 31473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031474|131474|989898|1|9999031474|MR|Test|E|Lead 31474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031475|131475|989898|1|9999031475|MR|Test|E|Lead 31475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031476|131476|989898|1|9999031476|MR|Test|E|Lead 31476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031477|131477|989898|1|9999031477|MR|Test|E|Lead 31477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031478|131478|989898|1|9999031478|MR|Test|E|Lead 31478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031479|131479|989898|1|9999031479|MR|Test|E|Lead 31479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031480|131480|989898|1|9999031480|MR|Test|E|Lead 31480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031481|131481|989898|1|9999031481|MR|Test|E|Lead 31481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031482|131482|989898|1|9999031482|MR|Test|E|Lead 31482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031483|131483|989898|1|9999031483|MR|Test|E|Lead 31483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031484|131484|989898|1|9999031484|MR|Test|E|Lead 31484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031485|131485|989898|1|9999031485|MR|Test|E|Lead 31485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031486|131486|989898|1|9999031486|MR|Test|E|Lead 31486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031487|131487|989898|1|9999031487|MR|Test|E|Lead 31487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031488|131488|989898|1|9999031488|MR|Test|E|Lead 31488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031489|131489|989898|1|9999031489|MR|Test|E|Lead 31489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031490|131490|989898|1|9999031490|MR|Test|E|Lead 31490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031491|131491|989898|1|9999031491|MR|Test|E|Lead 31491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031492|131492|989898|1|9999031492|MR|Test|E|Lead 31492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031493|131493|989898|1|9999031493|MR|Test|E|Lead 31493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031494|131494|989898|1|9999031494|MR|Test|E|Lead 31494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031495|131495|989898|1|9999031495|MR|Test|E|Lead 31495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031496|131496|989898|1|9999031496|MR|Test|E|Lead 31496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031497|131497|989898|1|9999031497|MR|Test|E|Lead 31497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031498|131498|989898|1|9999031498|MR|Test|E|Lead 31498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031499|131499|989898|1|9999031499|MR|Test|E|Lead 31499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031500|131500|989898|1|9999031500|MR|Test|E|Lead 31500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031501|131501|989898|1|9999031501|MR|Test|E|Lead 31501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031502|131502|989898|1|9999031502|MR|Test|E|Lead 31502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031503|131503|989898|1|9999031503|MR|Test|E|Lead 31503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031504|131504|989898|1|9999031504|MR|Test|E|Lead 31504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031505|131505|989898|1|9999031505|MR|Test|E|Lead 31505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031506|131506|989898|1|9999031506|MR|Test|E|Lead 31506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031507|131507|989898|1|9999031507|MR|Test|E|Lead 31507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031508|131508|989898|1|9999031508|MR|Test|E|Lead 31508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031509|131509|989898|1|9999031509|MR|Test|E|Lead 31509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031510|131510|989898|1|9999031510|MR|Test|E|Lead 31510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031511|131511|989898|1|9999031511|MR|Test|E|Lead 31511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031512|131512|989898|1|9999031512|MR|Test|E|Lead 31512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031513|131513|989898|1|9999031513|MR|Test|E|Lead 31513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031514|131514|989898|1|9999031514|MR|Test|E|Lead 31514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031515|131515|989898|1|9999031515|MR|Test|E|Lead 31515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031516|131516|989898|1|9999031516|MR|Test|E|Lead 31516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031517|131517|989898|1|9999031517|MR|Test|E|Lead 31517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031518|131518|989898|1|9999031518|MR|Test|E|Lead 31518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031519|131519|989898|1|9999031519|MR|Test|E|Lead 31519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031520|131520|989898|1|9999031520|MR|Test|E|Lead 31520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031521|131521|989898|1|9999031521|MR|Test|E|Lead 31521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031522|131522|989898|1|9999031522|MR|Test|E|Lead 31522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031523|131523|989898|1|9999031523|MR|Test|E|Lead 31523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031524|131524|989898|1|9999031524|MR|Test|E|Lead 31524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031525|131525|989898|1|9999031525|MR|Test|E|Lead 31525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031526|131526|989898|1|9999031526|MR|Test|E|Lead 31526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031527|131527|989898|1|9999031527|MR|Test|E|Lead 31527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031528|131528|989898|1|9999031528|MR|Test|E|Lead 31528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031529|131529|989898|1|9999031529|MR|Test|E|Lead 31529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031530|131530|989898|1|9999031530|MR|Test|E|Lead 31530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031531|131531|989898|1|9999031531|MR|Test|E|Lead 31531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031532|131532|989898|1|9999031532|MR|Test|E|Lead 31532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031533|131533|989898|1|9999031533|MR|Test|E|Lead 31533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031534|131534|989898|1|9999031534|MR|Test|E|Lead 31534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031535|131535|989898|1|9999031535|MR|Test|E|Lead 31535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031536|131536|989898|1|9999031536|MR|Test|E|Lead 31536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031537|131537|989898|1|9999031537|MR|Test|E|Lead 31537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031538|131538|989898|1|9999031538|MR|Test|E|Lead 31538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031539|131539|989898|1|9999031539|MR|Test|E|Lead 31539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031540|131540|989898|1|9999031540|MR|Test|E|Lead 31540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031541|131541|989898|1|9999031541|MR|Test|E|Lead 31541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031542|131542|989898|1|9999031542|MR|Test|E|Lead 31542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031543|131543|989898|1|9999031543|MR|Test|E|Lead 31543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031544|131544|989898|1|9999031544|MR|Test|E|Lead 31544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031545|131545|989898|1|9999031545|MR|Test|E|Lead 31545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031546|131546|989898|1|9999031546|MR|Test|E|Lead 31546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031547|131547|989898|1|9999031547|MR|Test|E|Lead 31547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031548|131548|989898|1|9999031548|MR|Test|E|Lead 31548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031549|131549|989898|1|9999031549|MR|Test|E|Lead 31549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031550|131550|989898|1|9999031550|MR|Test|E|Lead 31550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031551|131551|989898|1|9999031551|MR|Test|E|Lead 31551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031552|131552|989898|1|9999031552|MR|Test|E|Lead 31552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031553|131553|989898|1|9999031553|MR|Test|E|Lead 31553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031554|131554|989898|1|9999031554|MR|Test|E|Lead 31554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031555|131555|989898|1|9999031555|MR|Test|E|Lead 31555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031556|131556|989898|1|9999031556|MR|Test|E|Lead 31556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031557|131557|989898|1|9999031557|MR|Test|E|Lead 31557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031558|131558|989898|1|9999031558|MR|Test|E|Lead 31558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031559|131559|989898|1|9999031559|MR|Test|E|Lead 31559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031560|131560|989898|1|9999031560|MR|Test|E|Lead 31560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031561|131561|989898|1|9999031561|MR|Test|E|Lead 31561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031562|131562|989898|1|9999031562|MR|Test|E|Lead 31562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031563|131563|989898|1|9999031563|MR|Test|E|Lead 31563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031564|131564|989898|1|9999031564|MR|Test|E|Lead 31564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031565|131565|989898|1|9999031565|MR|Test|E|Lead 31565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031566|131566|989898|1|9999031566|MR|Test|E|Lead 31566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031567|131567|989898|1|9999031567|MR|Test|E|Lead 31567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031568|131568|989898|1|9999031568|MR|Test|E|Lead 31568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031569|131569|989898|1|9999031569|MR|Test|E|Lead 31569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031570|131570|989898|1|9999031570|MR|Test|E|Lead 31570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031571|131571|989898|1|9999031571|MR|Test|E|Lead 31571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031572|131572|989898|1|9999031572|MR|Test|E|Lead 31572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031573|131573|989898|1|9999031573|MR|Test|E|Lead 31573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031574|131574|989898|1|9999031574|MR|Test|E|Lead 31574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031575|131575|989898|1|9999031575|MR|Test|E|Lead 31575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031576|131576|989898|1|9999031576|MR|Test|E|Lead 31576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031577|131577|989898|1|9999031577|MR|Test|E|Lead 31577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031578|131578|989898|1|9999031578|MR|Test|E|Lead 31578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031579|131579|989898|1|9999031579|MR|Test|E|Lead 31579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031580|131580|989898|1|9999031580|MR|Test|E|Lead 31580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031581|131581|989898|1|9999031581|MR|Test|E|Lead 31581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031582|131582|989898|1|9999031582|MR|Test|E|Lead 31582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031583|131583|989898|1|9999031583|MR|Test|E|Lead 31583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031584|131584|989898|1|9999031584|MR|Test|E|Lead 31584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031585|131585|989898|1|9999031585|MR|Test|E|Lead 31585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031586|131586|989898|1|9999031586|MR|Test|E|Lead 31586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031587|131587|989898|1|9999031587|MR|Test|E|Lead 31587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031588|131588|989898|1|9999031588|MR|Test|E|Lead 31588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031589|131589|989898|1|9999031589|MR|Test|E|Lead 31589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031590|131590|989898|1|9999031590|MR|Test|E|Lead 31590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031591|131591|989898|1|9999031591|MR|Test|E|Lead 31591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031592|131592|989898|1|9999031592|MR|Test|E|Lead 31592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031593|131593|989898|1|9999031593|MR|Test|E|Lead 31593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031594|131594|989898|1|9999031594|MR|Test|E|Lead 31594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031595|131595|989898|1|9999031595|MR|Test|E|Lead 31595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031596|131596|989898|1|9999031596|MR|Test|E|Lead 31596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031597|131597|989898|1|9999031597|MR|Test|E|Lead 31597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031598|131598|989898|1|9999031598|MR|Test|E|Lead 31598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031599|131599|989898|1|9999031599|MR|Test|E|Lead 31599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031600|131600|989898|1|9999031600|MR|Test|E|Lead 31600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031601|131601|989898|1|9999031601|MR|Test|E|Lead 31601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031602|131602|989898|1|9999031602|MR|Test|E|Lead 31602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031603|131603|989898|1|9999031603|MR|Test|E|Lead 31603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031604|131604|989898|1|9999031604|MR|Test|E|Lead 31604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031605|131605|989898|1|9999031605|MR|Test|E|Lead 31605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031606|131606|989898|1|9999031606|MR|Test|E|Lead 31606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031607|131607|989898|1|9999031607|MR|Test|E|Lead 31607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031608|131608|989898|1|9999031608|MR|Test|E|Lead 31608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031609|131609|989898|1|9999031609|MR|Test|E|Lead 31609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031610|131610|989898|1|9999031610|MR|Test|E|Lead 31610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031611|131611|989898|1|9999031611|MR|Test|E|Lead 31611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031612|131612|989898|1|9999031612|MR|Test|E|Lead 31612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031613|131613|989898|1|9999031613|MR|Test|E|Lead 31613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031614|131614|989898|1|9999031614|MR|Test|E|Lead 31614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031615|131615|989898|1|9999031615|MR|Test|E|Lead 31615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031616|131616|989898|1|9999031616|MR|Test|E|Lead 31616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031617|131617|989898|1|9999031617|MR|Test|E|Lead 31617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031618|131618|989898|1|9999031618|MR|Test|E|Lead 31618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031619|131619|989898|1|9999031619|MR|Test|E|Lead 31619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031620|131620|989898|1|9999031620|MR|Test|E|Lead 31620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031621|131621|989898|1|9999031621|MR|Test|E|Lead 31621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031622|131622|989898|1|9999031622|MR|Test|E|Lead 31622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031623|131623|989898|1|9999031623|MR|Test|E|Lead 31623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031624|131624|989898|1|9999031624|MR|Test|E|Lead 31624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031625|131625|989898|1|9999031625|MR|Test|E|Lead 31625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031626|131626|989898|1|9999031626|MR|Test|E|Lead 31626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031627|131627|989898|1|9999031627|MR|Test|E|Lead 31627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031628|131628|989898|1|9999031628|MR|Test|E|Lead 31628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031629|131629|989898|1|9999031629|MR|Test|E|Lead 31629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031630|131630|989898|1|9999031630|MR|Test|E|Lead 31630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031631|131631|989898|1|9999031631|MR|Test|E|Lead 31631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031632|131632|989898|1|9999031632|MR|Test|E|Lead 31632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031633|131633|989898|1|9999031633|MR|Test|E|Lead 31633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031634|131634|989898|1|9999031634|MR|Test|E|Lead 31634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031635|131635|989898|1|9999031635|MR|Test|E|Lead 31635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031636|131636|989898|1|9999031636|MR|Test|E|Lead 31636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031637|131637|989898|1|9999031637|MR|Test|E|Lead 31637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031638|131638|989898|1|9999031638|MR|Test|E|Lead 31638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031639|131639|989898|1|9999031639|MR|Test|E|Lead 31639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031640|131640|989898|1|9999031640|MR|Test|E|Lead 31640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031641|131641|989898|1|9999031641|MR|Test|E|Lead 31641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031642|131642|989898|1|9999031642|MR|Test|E|Lead 31642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031643|131643|989898|1|9999031643|MR|Test|E|Lead 31643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031644|131644|989898|1|9999031644|MR|Test|E|Lead 31644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031645|131645|989898|1|9999031645|MR|Test|E|Lead 31645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031646|131646|989898|1|9999031646|MR|Test|E|Lead 31646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031647|131647|989898|1|9999031647|MR|Test|E|Lead 31647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031648|131648|989898|1|9999031648|MR|Test|E|Lead 31648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031649|131649|989898|1|9999031649|MR|Test|E|Lead 31649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031650|131650|989898|1|9999031650|MR|Test|E|Lead 31650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031651|131651|989898|1|9999031651|MR|Test|E|Lead 31651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031652|131652|989898|1|9999031652|MR|Test|E|Lead 31652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031653|131653|989898|1|9999031653|MR|Test|E|Lead 31653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031654|131654|989898|1|9999031654|MR|Test|E|Lead 31654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031655|131655|989898|1|9999031655|MR|Test|E|Lead 31655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031656|131656|989898|1|9999031656|MR|Test|E|Lead 31656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031657|131657|989898|1|9999031657|MR|Test|E|Lead 31657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031658|131658|989898|1|9999031658|MR|Test|E|Lead 31658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031659|131659|989898|1|9999031659|MR|Test|E|Lead 31659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031660|131660|989898|1|9999031660|MR|Test|E|Lead 31660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031661|131661|989898|1|9999031661|MR|Test|E|Lead 31661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031662|131662|989898|1|9999031662|MR|Test|E|Lead 31662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031663|131663|989898|1|9999031663|MR|Test|E|Lead 31663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031664|131664|989898|1|9999031664|MR|Test|E|Lead 31664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031665|131665|989898|1|9999031665|MR|Test|E|Lead 31665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031666|131666|989898|1|9999031666|MR|Test|E|Lead 31666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031667|131667|989898|1|9999031667|MR|Test|E|Lead 31667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031668|131668|989898|1|9999031668|MR|Test|E|Lead 31668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031669|131669|989898|1|9999031669|MR|Test|E|Lead 31669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031670|131670|989898|1|9999031670|MR|Test|E|Lead 31670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031671|131671|989898|1|9999031671|MR|Test|E|Lead 31671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031672|131672|989898|1|9999031672|MR|Test|E|Lead 31672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031673|131673|989898|1|9999031673|MR|Test|E|Lead 31673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031674|131674|989898|1|9999031674|MR|Test|E|Lead 31674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031675|131675|989898|1|9999031675|MR|Test|E|Lead 31675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031676|131676|989898|1|9999031676|MR|Test|E|Lead 31676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031677|131677|989898|1|9999031677|MR|Test|E|Lead 31677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031678|131678|989898|1|9999031678|MR|Test|E|Lead 31678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031679|131679|989898|1|9999031679|MR|Test|E|Lead 31679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031680|131680|989898|1|9999031680|MR|Test|E|Lead 31680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031681|131681|989898|1|9999031681|MR|Test|E|Lead 31681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031682|131682|989898|1|9999031682|MR|Test|E|Lead 31682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031683|131683|989898|1|9999031683|MR|Test|E|Lead 31683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031684|131684|989898|1|9999031684|MR|Test|E|Lead 31684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031685|131685|989898|1|9999031685|MR|Test|E|Lead 31685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031686|131686|989898|1|9999031686|MR|Test|E|Lead 31686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031687|131687|989898|1|9999031687|MR|Test|E|Lead 31687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031688|131688|989898|1|9999031688|MR|Test|E|Lead 31688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031689|131689|989898|1|9999031689|MR|Test|E|Lead 31689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031690|131690|989898|1|9999031690|MR|Test|E|Lead 31690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031691|131691|989898|1|9999031691|MR|Test|E|Lead 31691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031692|131692|989898|1|9999031692|MR|Test|E|Lead 31692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031693|131693|989898|1|9999031693|MR|Test|E|Lead 31693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031694|131694|989898|1|9999031694|MR|Test|E|Lead 31694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031695|131695|989898|1|9999031695|MR|Test|E|Lead 31695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031696|131696|989898|1|9999031696|MR|Test|E|Lead 31696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031697|131697|989898|1|9999031697|MR|Test|E|Lead 31697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031698|131698|989898|1|9999031698|MR|Test|E|Lead 31698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031699|131699|989898|1|9999031699|MR|Test|E|Lead 31699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031700|131700|989898|1|9999031700|MR|Test|E|Lead 31700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031701|131701|989898|1|9999031701|MR|Test|E|Lead 31701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031702|131702|989898|1|9999031702|MR|Test|E|Lead 31702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031703|131703|989898|1|9999031703|MR|Test|E|Lead 31703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031704|131704|989898|1|9999031704|MR|Test|E|Lead 31704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031705|131705|989898|1|9999031705|MR|Test|E|Lead 31705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031706|131706|989898|1|9999031706|MR|Test|E|Lead 31706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031707|131707|989898|1|9999031707|MR|Test|E|Lead 31707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031708|131708|989898|1|9999031708|MR|Test|E|Lead 31708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031709|131709|989898|1|9999031709|MR|Test|E|Lead 31709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031710|131710|989898|1|9999031710|MR|Test|E|Lead 31710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031711|131711|989898|1|9999031711|MR|Test|E|Lead 31711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031712|131712|989898|1|9999031712|MR|Test|E|Lead 31712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031713|131713|989898|1|9999031713|MR|Test|E|Lead 31713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031714|131714|989898|1|9999031714|MR|Test|E|Lead 31714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031715|131715|989898|1|9999031715|MR|Test|E|Lead 31715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031716|131716|989898|1|9999031716|MR|Test|E|Lead 31716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031717|131717|989898|1|9999031717|MR|Test|E|Lead 31717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031718|131718|989898|1|9999031718|MR|Test|E|Lead 31718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031719|131719|989898|1|9999031719|MR|Test|E|Lead 31719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031720|131720|989898|1|9999031720|MR|Test|E|Lead 31720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031721|131721|989898|1|9999031721|MR|Test|E|Lead 31721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031722|131722|989898|1|9999031722|MR|Test|E|Lead 31722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031723|131723|989898|1|9999031723|MR|Test|E|Lead 31723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031724|131724|989898|1|9999031724|MR|Test|E|Lead 31724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031725|131725|989898|1|9999031725|MR|Test|E|Lead 31725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031726|131726|989898|1|9999031726|MR|Test|E|Lead 31726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031727|131727|989898|1|9999031727|MR|Test|E|Lead 31727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031728|131728|989898|1|9999031728|MR|Test|E|Lead 31728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031729|131729|989898|1|9999031729|MR|Test|E|Lead 31729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031730|131730|989898|1|9999031730|MR|Test|E|Lead 31730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031731|131731|989898|1|9999031731|MR|Test|E|Lead 31731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031732|131732|989898|1|9999031732|MR|Test|E|Lead 31732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031733|131733|989898|1|9999031733|MR|Test|E|Lead 31733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031734|131734|989898|1|9999031734|MR|Test|E|Lead 31734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031735|131735|989898|1|9999031735|MR|Test|E|Lead 31735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031736|131736|989898|1|9999031736|MR|Test|E|Lead 31736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031737|131737|989898|1|9999031737|MR|Test|E|Lead 31737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031738|131738|989898|1|9999031738|MR|Test|E|Lead 31738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031739|131739|989898|1|9999031739|MR|Test|E|Lead 31739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031740|131740|989898|1|9999031740|MR|Test|E|Lead 31740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031741|131741|989898|1|9999031741|MR|Test|E|Lead 31741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031742|131742|989898|1|9999031742|MR|Test|E|Lead 31742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031743|131743|989898|1|9999031743|MR|Test|E|Lead 31743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031744|131744|989898|1|9999031744|MR|Test|E|Lead 31744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031745|131745|989898|1|9999031745|MR|Test|E|Lead 31745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031746|131746|989898|1|9999031746|MR|Test|E|Lead 31746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031747|131747|989898|1|9999031747|MR|Test|E|Lead 31747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031748|131748|989898|1|9999031748|MR|Test|E|Lead 31748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031749|131749|989898|1|9999031749|MR|Test|E|Lead 31749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031750|131750|989898|1|9999031750|MR|Test|E|Lead 31750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031751|131751|989898|1|9999031751|MR|Test|E|Lead 31751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031752|131752|989898|1|9999031752|MR|Test|E|Lead 31752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031753|131753|989898|1|9999031753|MR|Test|E|Lead 31753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031754|131754|989898|1|9999031754|MR|Test|E|Lead 31754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031755|131755|989898|1|9999031755|MR|Test|E|Lead 31755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031756|131756|989898|1|9999031756|MR|Test|E|Lead 31756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031757|131757|989898|1|9999031757|MR|Test|E|Lead 31757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031758|131758|989898|1|9999031758|MR|Test|E|Lead 31758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031759|131759|989898|1|9999031759|MR|Test|E|Lead 31759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031760|131760|989898|1|9999031760|MR|Test|E|Lead 31760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031761|131761|989898|1|9999031761|MR|Test|E|Lead 31761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031762|131762|989898|1|9999031762|MR|Test|E|Lead 31762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031763|131763|989898|1|9999031763|MR|Test|E|Lead 31763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031764|131764|989898|1|9999031764|MR|Test|E|Lead 31764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031765|131765|989898|1|9999031765|MR|Test|E|Lead 31765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031766|131766|989898|1|9999031766|MR|Test|E|Lead 31766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031767|131767|989898|1|9999031767|MR|Test|E|Lead 31767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031768|131768|989898|1|9999031768|MR|Test|E|Lead 31768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031769|131769|989898|1|9999031769|MR|Test|E|Lead 31769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031770|131770|989898|1|9999031770|MR|Test|E|Lead 31770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031771|131771|989898|1|9999031771|MR|Test|E|Lead 31771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031772|131772|989898|1|9999031772|MR|Test|E|Lead 31772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031773|131773|989898|1|9999031773|MR|Test|E|Lead 31773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031774|131774|989898|1|9999031774|MR|Test|E|Lead 31774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031775|131775|989898|1|9999031775|MR|Test|E|Lead 31775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031776|131776|989898|1|9999031776|MR|Test|E|Lead 31776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031777|131777|989898|1|9999031777|MR|Test|E|Lead 31777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031778|131778|989898|1|9999031778|MR|Test|E|Lead 31778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031779|131779|989898|1|9999031779|MR|Test|E|Lead 31779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031780|131780|989898|1|9999031780|MR|Test|E|Lead 31780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031781|131781|989898|1|9999031781|MR|Test|E|Lead 31781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031782|131782|989898|1|9999031782|MR|Test|E|Lead 31782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031783|131783|989898|1|9999031783|MR|Test|E|Lead 31783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031784|131784|989898|1|9999031784|MR|Test|E|Lead 31784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031785|131785|989898|1|9999031785|MR|Test|E|Lead 31785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031786|131786|989898|1|9999031786|MR|Test|E|Lead 31786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031787|131787|989898|1|9999031787|MR|Test|E|Lead 31787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031788|131788|989898|1|9999031788|MR|Test|E|Lead 31788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031789|131789|989898|1|9999031789|MR|Test|E|Lead 31789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031790|131790|989898|1|9999031790|MR|Test|E|Lead 31790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031791|131791|989898|1|9999031791|MR|Test|E|Lead 31791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031792|131792|989898|1|9999031792|MR|Test|E|Lead 31792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031793|131793|989898|1|9999031793|MR|Test|E|Lead 31793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031794|131794|989898|1|9999031794|MR|Test|E|Lead 31794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031795|131795|989898|1|9999031795|MR|Test|E|Lead 31795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031796|131796|989898|1|9999031796|MR|Test|E|Lead 31796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031797|131797|989898|1|9999031797|MR|Test|E|Lead 31797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031798|131798|989898|1|9999031798|MR|Test|E|Lead 31798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031799|131799|989898|1|9999031799|MR|Test|E|Lead 31799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031800|131800|989898|1|9999031800|MR|Test|E|Lead 31800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031801|131801|989898|1|9999031801|MR|Test|E|Lead 31801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031802|131802|989898|1|9999031802|MR|Test|E|Lead 31802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031803|131803|989898|1|9999031803|MR|Test|E|Lead 31803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031804|131804|989898|1|9999031804|MR|Test|E|Lead 31804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031805|131805|989898|1|9999031805|MR|Test|E|Lead 31805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031806|131806|989898|1|9999031806|MR|Test|E|Lead 31806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031807|131807|989898|1|9999031807|MR|Test|E|Lead 31807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031808|131808|989898|1|9999031808|MR|Test|E|Lead 31808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031809|131809|989898|1|9999031809|MR|Test|E|Lead 31809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031810|131810|989898|1|9999031810|MR|Test|E|Lead 31810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031811|131811|989898|1|9999031811|MR|Test|E|Lead 31811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031812|131812|989898|1|9999031812|MR|Test|E|Lead 31812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031813|131813|989898|1|9999031813|MR|Test|E|Lead 31813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031814|131814|989898|1|9999031814|MR|Test|E|Lead 31814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031815|131815|989898|1|9999031815|MR|Test|E|Lead 31815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031816|131816|989898|1|9999031816|MR|Test|E|Lead 31816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031817|131817|989898|1|9999031817|MR|Test|E|Lead 31817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031818|131818|989898|1|9999031818|MR|Test|E|Lead 31818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031819|131819|989898|1|9999031819|MR|Test|E|Lead 31819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031820|131820|989898|1|9999031820|MR|Test|E|Lead 31820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031821|131821|989898|1|9999031821|MR|Test|E|Lead 31821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031822|131822|989898|1|9999031822|MR|Test|E|Lead 31822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031823|131823|989898|1|9999031823|MR|Test|E|Lead 31823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031824|131824|989898|1|9999031824|MR|Test|E|Lead 31824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031825|131825|989898|1|9999031825|MR|Test|E|Lead 31825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031826|131826|989898|1|9999031826|MR|Test|E|Lead 31826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031827|131827|989898|1|9999031827|MR|Test|E|Lead 31827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031828|131828|989898|1|9999031828|MR|Test|E|Lead 31828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031829|131829|989898|1|9999031829|MR|Test|E|Lead 31829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031830|131830|989898|1|9999031830|MR|Test|E|Lead 31830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031831|131831|989898|1|9999031831|MR|Test|E|Lead 31831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031832|131832|989898|1|9999031832|MR|Test|E|Lead 31832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031833|131833|989898|1|9999031833|MR|Test|E|Lead 31833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031834|131834|989898|1|9999031834|MR|Test|E|Lead 31834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031835|131835|989898|1|9999031835|MR|Test|E|Lead 31835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031836|131836|989898|1|9999031836|MR|Test|E|Lead 31836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031837|131837|989898|1|9999031837|MR|Test|E|Lead 31837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031838|131838|989898|1|9999031838|MR|Test|E|Lead 31838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031839|131839|989898|1|9999031839|MR|Test|E|Lead 31839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031840|131840|989898|1|9999031840|MR|Test|E|Lead 31840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031841|131841|989898|1|9999031841|MR|Test|E|Lead 31841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031842|131842|989898|1|9999031842|MR|Test|E|Lead 31842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031843|131843|989898|1|9999031843|MR|Test|E|Lead 31843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031844|131844|989898|1|9999031844|MR|Test|E|Lead 31844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031845|131845|989898|1|9999031845|MR|Test|E|Lead 31845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031846|131846|989898|1|9999031846|MR|Test|E|Lead 31846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031847|131847|989898|1|9999031847|MR|Test|E|Lead 31847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031848|131848|989898|1|9999031848|MR|Test|E|Lead 31848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031849|131849|989898|1|9999031849|MR|Test|E|Lead 31849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031850|131850|989898|1|9999031850|MR|Test|E|Lead 31850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031851|131851|989898|1|9999031851|MR|Test|E|Lead 31851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031852|131852|989898|1|9999031852|MR|Test|E|Lead 31852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031853|131853|989898|1|9999031853|MR|Test|E|Lead 31853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031854|131854|989898|1|9999031854|MR|Test|E|Lead 31854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031855|131855|989898|1|9999031855|MR|Test|E|Lead 31855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031856|131856|989898|1|9999031856|MR|Test|E|Lead 31856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031857|131857|989898|1|9999031857|MR|Test|E|Lead 31857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031858|131858|989898|1|9999031858|MR|Test|E|Lead 31858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031859|131859|989898|1|9999031859|MR|Test|E|Lead 31859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031860|131860|989898|1|9999031860|MR|Test|E|Lead 31860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031861|131861|989898|1|9999031861|MR|Test|E|Lead 31861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031862|131862|989898|1|9999031862|MR|Test|E|Lead 31862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031863|131863|989898|1|9999031863|MR|Test|E|Lead 31863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031864|131864|989898|1|9999031864|MR|Test|E|Lead 31864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031865|131865|989898|1|9999031865|MR|Test|E|Lead 31865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031866|131866|989898|1|9999031866|MR|Test|E|Lead 31866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031867|131867|989898|1|9999031867|MR|Test|E|Lead 31867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031868|131868|989898|1|9999031868|MR|Test|E|Lead 31868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031869|131869|989898|1|9999031869|MR|Test|E|Lead 31869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031870|131870|989898|1|9999031870|MR|Test|E|Lead 31870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031871|131871|989898|1|9999031871|MR|Test|E|Lead 31871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031872|131872|989898|1|9999031872|MR|Test|E|Lead 31872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031873|131873|989898|1|9999031873|MR|Test|E|Lead 31873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031874|131874|989898|1|9999031874|MR|Test|E|Lead 31874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031875|131875|989898|1|9999031875|MR|Test|E|Lead 31875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031876|131876|989898|1|9999031876|MR|Test|E|Lead 31876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031877|131877|989898|1|9999031877|MR|Test|E|Lead 31877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031878|131878|989898|1|9999031878|MR|Test|E|Lead 31878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031879|131879|989898|1|9999031879|MR|Test|E|Lead 31879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031880|131880|989898|1|9999031880|MR|Test|E|Lead 31880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031881|131881|989898|1|9999031881|MR|Test|E|Lead 31881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031882|131882|989898|1|9999031882|MR|Test|E|Lead 31882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031883|131883|989898|1|9999031883|MR|Test|E|Lead 31883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031884|131884|989898|1|9999031884|MR|Test|E|Lead 31884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031885|131885|989898|1|9999031885|MR|Test|E|Lead 31885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031886|131886|989898|1|9999031886|MR|Test|E|Lead 31886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031887|131887|989898|1|9999031887|MR|Test|E|Lead 31887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031888|131888|989898|1|9999031888|MR|Test|E|Lead 31888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031889|131889|989898|1|9999031889|MR|Test|E|Lead 31889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031890|131890|989898|1|9999031890|MR|Test|E|Lead 31890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031891|131891|989898|1|9999031891|MR|Test|E|Lead 31891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031892|131892|989898|1|9999031892|MR|Test|E|Lead 31892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031893|131893|989898|1|9999031893|MR|Test|E|Lead 31893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031894|131894|989898|1|9999031894|MR|Test|E|Lead 31894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031895|131895|989898|1|9999031895|MR|Test|E|Lead 31895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031896|131896|989898|1|9999031896|MR|Test|E|Lead 31896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031897|131897|989898|1|9999031897|MR|Test|E|Lead 31897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031898|131898|989898|1|9999031898|MR|Test|E|Lead 31898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031899|131899|989898|1|9999031899|MR|Test|E|Lead 31899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031900|131900|989898|1|9999031900|MR|Test|E|Lead 31900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031901|131901|989898|1|9999031901|MR|Test|E|Lead 31901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031902|131902|989898|1|9999031902|MR|Test|E|Lead 31902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031903|131903|989898|1|9999031903|MR|Test|E|Lead 31903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031904|131904|989898|1|9999031904|MR|Test|E|Lead 31904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031905|131905|989898|1|9999031905|MR|Test|E|Lead 31905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031906|131906|989898|1|9999031906|MR|Test|E|Lead 31906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031907|131907|989898|1|9999031907|MR|Test|E|Lead 31907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031908|131908|989898|1|9999031908|MR|Test|E|Lead 31908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031909|131909|989898|1|9999031909|MR|Test|E|Lead 31909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031910|131910|989898|1|9999031910|MR|Test|E|Lead 31910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031911|131911|989898|1|9999031911|MR|Test|E|Lead 31911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031912|131912|989898|1|9999031912|MR|Test|E|Lead 31912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031913|131913|989898|1|9999031913|MR|Test|E|Lead 31913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031914|131914|989898|1|9999031914|MR|Test|E|Lead 31914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031915|131915|989898|1|9999031915|MR|Test|E|Lead 31915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031916|131916|989898|1|9999031916|MR|Test|E|Lead 31916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031917|131917|989898|1|9999031917|MR|Test|E|Lead 31917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031918|131918|989898|1|9999031918|MR|Test|E|Lead 31918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031919|131919|989898|1|9999031919|MR|Test|E|Lead 31919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031920|131920|989898|1|9999031920|MR|Test|E|Lead 31920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031921|131921|989898|1|9999031921|MR|Test|E|Lead 31921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031922|131922|989898|1|9999031922|MR|Test|E|Lead 31922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031923|131923|989898|1|9999031923|MR|Test|E|Lead 31923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031924|131924|989898|1|9999031924|MR|Test|E|Lead 31924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031925|131925|989898|1|9999031925|MR|Test|E|Lead 31925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031926|131926|989898|1|9999031926|MR|Test|E|Lead 31926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031927|131927|989898|1|9999031927|MR|Test|E|Lead 31927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031928|131928|989898|1|9999031928|MR|Test|E|Lead 31928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031929|131929|989898|1|9999031929|MR|Test|E|Lead 31929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031930|131930|989898|1|9999031930|MR|Test|E|Lead 31930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031931|131931|989898|1|9999031931|MR|Test|E|Lead 31931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031932|131932|989898|1|9999031932|MR|Test|E|Lead 31932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031933|131933|989898|1|9999031933|MR|Test|E|Lead 31933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031934|131934|989898|1|9999031934|MR|Test|E|Lead 31934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031935|131935|989898|1|9999031935|MR|Test|E|Lead 31935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031936|131936|989898|1|9999031936|MR|Test|E|Lead 31936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031937|131937|989898|1|9999031937|MR|Test|E|Lead 31937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031938|131938|989898|1|9999031938|MR|Test|E|Lead 31938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031939|131939|989898|1|9999031939|MR|Test|E|Lead 31939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031940|131940|989898|1|9999031940|MR|Test|E|Lead 31940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031941|131941|989898|1|9999031941|MR|Test|E|Lead 31941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031942|131942|989898|1|9999031942|MR|Test|E|Lead 31942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031943|131943|989898|1|9999031943|MR|Test|E|Lead 31943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031944|131944|989898|1|9999031944|MR|Test|E|Lead 31944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031945|131945|989898|1|9999031945|MR|Test|E|Lead 31945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031946|131946|989898|1|9999031946|MR|Test|E|Lead 31946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031947|131947|989898|1|9999031947|MR|Test|E|Lead 31947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031948|131948|989898|1|9999031948|MR|Test|E|Lead 31948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031949|131949|989898|1|9999031949|MR|Test|E|Lead 31949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031950|131950|989898|1|9999031950|MR|Test|E|Lead 31950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031951|131951|989898|1|9999031951|MR|Test|E|Lead 31951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031952|131952|989898|1|9999031952|MR|Test|E|Lead 31952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031953|131953|989898|1|9999031953|MR|Test|E|Lead 31953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031954|131954|989898|1|9999031954|MR|Test|E|Lead 31954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031955|131955|989898|1|9999031955|MR|Test|E|Lead 31955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031956|131956|989898|1|9999031956|MR|Test|E|Lead 31956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031957|131957|989898|1|9999031957|MR|Test|E|Lead 31957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031958|131958|989898|1|9999031958|MR|Test|E|Lead 31958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031959|131959|989898|1|9999031959|MR|Test|E|Lead 31959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031960|131960|989898|1|9999031960|MR|Test|E|Lead 31960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031961|131961|989898|1|9999031961|MR|Test|E|Lead 31961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031962|131962|989898|1|9999031962|MR|Test|E|Lead 31962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031963|131963|989898|1|9999031963|MR|Test|E|Lead 31963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031964|131964|989898|1|9999031964|MR|Test|E|Lead 31964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031965|131965|989898|1|9999031965|MR|Test|E|Lead 31965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031966|131966|989898|1|9999031966|MR|Test|E|Lead 31966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031967|131967|989898|1|9999031967|MR|Test|E|Lead 31967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031968|131968|989898|1|9999031968|MR|Test|E|Lead 31968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031969|131969|989898|1|9999031969|MR|Test|E|Lead 31969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031970|131970|989898|1|9999031970|MR|Test|E|Lead 31970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031971|131971|989898|1|9999031971|MR|Test|E|Lead 31971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031972|131972|989898|1|9999031972|MR|Test|E|Lead 31972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031973|131973|989898|1|9999031973|MR|Test|E|Lead 31973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031974|131974|989898|1|9999031974|MR|Test|E|Lead 31974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031975|131975|989898|1|9999031975|MR|Test|E|Lead 31975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031976|131976|989898|1|9999031976|MR|Test|E|Lead 31976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031977|131977|989898|1|9999031977|MR|Test|E|Lead 31977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031978|131978|989898|1|9999031978|MR|Test|E|Lead 31978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031979|131979|989898|1|9999031979|MR|Test|E|Lead 31979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031980|131980|989898|1|9999031980|MR|Test|E|Lead 31980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031981|131981|989898|1|9999031981|MR|Test|E|Lead 31981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031982|131982|989898|1|9999031982|MR|Test|E|Lead 31982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031983|131983|989898|1|9999031983|MR|Test|E|Lead 31983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031984|131984|989898|1|9999031984|MR|Test|E|Lead 31984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031985|131985|989898|1|9999031985|MR|Test|E|Lead 31985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031986|131986|989898|1|9999031986|MR|Test|E|Lead 31986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031987|131987|989898|1|9999031987|MR|Test|E|Lead 31987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031988|131988|989898|1|9999031988|MR|Test|E|Lead 31988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031989|131989|989898|1|9999031989|MR|Test|E|Lead 31989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031990|131990|989898|1|9999031990|MR|Test|E|Lead 31990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031991|131991|989898|1|9999031991|MR|Test|E|Lead 31991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031992|131992|989898|1|9999031992|MR|Test|E|Lead 31992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031993|131993|989898|1|9999031993|MR|Test|E|Lead 31993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031994|131994|989898|1|9999031994|MR|Test|E|Lead 31994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031995|131995|989898|1|9999031995|MR|Test|E|Lead 31995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031996|131996|989898|1|9999031996|MR|Test|E|Lead 31996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031997|131997|989898|1|9999031997|MR|Test|E|Lead 31997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031998|131998|989898|1|9999031998|MR|Test|E|Lead 31998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1031999|131999|989898|1|9999031999|MR|Test|E|Lead 31999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032000|132000|989898|1|9999032000|MR|Test|E|Lead 32000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032001|132001|989898|1|9999032001|MR|Test|E|Lead 32001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032002|132002|989898|1|9999032002|MR|Test|E|Lead 32002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032003|132003|989898|1|9999032003|MR|Test|E|Lead 32003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032004|132004|989898|1|9999032004|MR|Test|E|Lead 32004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032005|132005|989898|1|9999032005|MR|Test|E|Lead 32005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032006|132006|989898|1|9999032006|MR|Test|E|Lead 32006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032007|132007|989898|1|9999032007|MR|Test|E|Lead 32007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032008|132008|989898|1|9999032008|MR|Test|E|Lead 32008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032009|132009|989898|1|9999032009|MR|Test|E|Lead 32009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032010|132010|989898|1|9999032010|MR|Test|E|Lead 32010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032011|132011|989898|1|9999032011|MR|Test|E|Lead 32011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032012|132012|989898|1|9999032012|MR|Test|E|Lead 32012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032013|132013|989898|1|9999032013|MR|Test|E|Lead 32013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032014|132014|989898|1|9999032014|MR|Test|E|Lead 32014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032015|132015|989898|1|9999032015|MR|Test|E|Lead 32015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032016|132016|989898|1|9999032016|MR|Test|E|Lead 32016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032017|132017|989898|1|9999032017|MR|Test|E|Lead 32017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032018|132018|989898|1|9999032018|MR|Test|E|Lead 32018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032019|132019|989898|1|9999032019|MR|Test|E|Lead 32019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032020|132020|989898|1|9999032020|MR|Test|E|Lead 32020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032021|132021|989898|1|9999032021|MR|Test|E|Lead 32021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032022|132022|989898|1|9999032022|MR|Test|E|Lead 32022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032023|132023|989898|1|9999032023|MR|Test|E|Lead 32023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032024|132024|989898|1|9999032024|MR|Test|E|Lead 32024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032025|132025|989898|1|9999032025|MR|Test|E|Lead 32025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032026|132026|989898|1|9999032026|MR|Test|E|Lead 32026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032027|132027|989898|1|9999032027|MR|Test|E|Lead 32027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032028|132028|989898|1|9999032028|MR|Test|E|Lead 32028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032029|132029|989898|1|9999032029|MR|Test|E|Lead 32029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032030|132030|989898|1|9999032030|MR|Test|E|Lead 32030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032031|132031|989898|1|9999032031|MR|Test|E|Lead 32031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032032|132032|989898|1|9999032032|MR|Test|E|Lead 32032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032033|132033|989898|1|9999032033|MR|Test|E|Lead 32033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032034|132034|989898|1|9999032034|MR|Test|E|Lead 32034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032035|132035|989898|1|9999032035|MR|Test|E|Lead 32035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032036|132036|989898|1|9999032036|MR|Test|E|Lead 32036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032037|132037|989898|1|9999032037|MR|Test|E|Lead 32037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032038|132038|989898|1|9999032038|MR|Test|E|Lead 32038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032039|132039|989898|1|9999032039|MR|Test|E|Lead 32039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032040|132040|989898|1|9999032040|MR|Test|E|Lead 32040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032041|132041|989898|1|9999032041|MR|Test|E|Lead 32041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032042|132042|989898|1|9999032042|MR|Test|E|Lead 32042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032043|132043|989898|1|9999032043|MR|Test|E|Lead 32043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032044|132044|989898|1|9999032044|MR|Test|E|Lead 32044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032045|132045|989898|1|9999032045|MR|Test|E|Lead 32045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032046|132046|989898|1|9999032046|MR|Test|E|Lead 32046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032047|132047|989898|1|9999032047|MR|Test|E|Lead 32047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032048|132048|989898|1|9999032048|MR|Test|E|Lead 32048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032049|132049|989898|1|9999032049|MR|Test|E|Lead 32049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032050|132050|989898|1|9999032050|MR|Test|E|Lead 32050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032051|132051|989898|1|9999032051|MR|Test|E|Lead 32051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032052|132052|989898|1|9999032052|MR|Test|E|Lead 32052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032053|132053|989898|1|9999032053|MR|Test|E|Lead 32053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032054|132054|989898|1|9999032054|MR|Test|E|Lead 32054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032055|132055|989898|1|9999032055|MR|Test|E|Lead 32055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032056|132056|989898|1|9999032056|MR|Test|E|Lead 32056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032057|132057|989898|1|9999032057|MR|Test|E|Lead 32057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032058|132058|989898|1|9999032058|MR|Test|E|Lead 32058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032059|132059|989898|1|9999032059|MR|Test|E|Lead 32059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032060|132060|989898|1|9999032060|MR|Test|E|Lead 32060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032061|132061|989898|1|9999032061|MR|Test|E|Lead 32061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032062|132062|989898|1|9999032062|MR|Test|E|Lead 32062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032063|132063|989898|1|9999032063|MR|Test|E|Lead 32063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032064|132064|989898|1|9999032064|MR|Test|E|Lead 32064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032065|132065|989898|1|9999032065|MR|Test|E|Lead 32065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032066|132066|989898|1|9999032066|MR|Test|E|Lead 32066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032067|132067|989898|1|9999032067|MR|Test|E|Lead 32067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032068|132068|989898|1|9999032068|MR|Test|E|Lead 32068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032069|132069|989898|1|9999032069|MR|Test|E|Lead 32069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032070|132070|989898|1|9999032070|MR|Test|E|Lead 32070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032071|132071|989898|1|9999032071|MR|Test|E|Lead 32071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032072|132072|989898|1|9999032072|MR|Test|E|Lead 32072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032073|132073|989898|1|9999032073|MR|Test|E|Lead 32073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032074|132074|989898|1|9999032074|MR|Test|E|Lead 32074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032075|132075|989898|1|9999032075|MR|Test|E|Lead 32075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032076|132076|989898|1|9999032076|MR|Test|E|Lead 32076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032077|132077|989898|1|9999032077|MR|Test|E|Lead 32077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032078|132078|989898|1|9999032078|MR|Test|E|Lead 32078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032079|132079|989898|1|9999032079|MR|Test|E|Lead 32079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032080|132080|989898|1|9999032080|MR|Test|E|Lead 32080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032081|132081|989898|1|9999032081|MR|Test|E|Lead 32081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032082|132082|989898|1|9999032082|MR|Test|E|Lead 32082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032083|132083|989898|1|9999032083|MR|Test|E|Lead 32083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032084|132084|989898|1|9999032084|MR|Test|E|Lead 32084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032085|132085|989898|1|9999032085|MR|Test|E|Lead 32085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032086|132086|989898|1|9999032086|MR|Test|E|Lead 32086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032087|132087|989898|1|9999032087|MR|Test|E|Lead 32087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032088|132088|989898|1|9999032088|MR|Test|E|Lead 32088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032089|132089|989898|1|9999032089|MR|Test|E|Lead 32089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032090|132090|989898|1|9999032090|MR|Test|E|Lead 32090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032091|132091|989898|1|9999032091|MR|Test|E|Lead 32091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032092|132092|989898|1|9999032092|MR|Test|E|Lead 32092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032093|132093|989898|1|9999032093|MR|Test|E|Lead 32093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032094|132094|989898|1|9999032094|MR|Test|E|Lead 32094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032095|132095|989898|1|9999032095|MR|Test|E|Lead 32095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032096|132096|989898|1|9999032096|MR|Test|E|Lead 32096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032097|132097|989898|1|9999032097|MR|Test|E|Lead 32097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032098|132098|989898|1|9999032098|MR|Test|E|Lead 32098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032099|132099|989898|1|9999032099|MR|Test|E|Lead 32099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032100|132100|989898|1|9999032100|MR|Test|E|Lead 32100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032101|132101|989898|1|9999032101|MR|Test|E|Lead 32101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032102|132102|989898|1|9999032102|MR|Test|E|Lead 32102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032103|132103|989898|1|9999032103|MR|Test|E|Lead 32103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032104|132104|989898|1|9999032104|MR|Test|E|Lead 32104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032105|132105|989898|1|9999032105|MR|Test|E|Lead 32105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032106|132106|989898|1|9999032106|MR|Test|E|Lead 32106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032107|132107|989898|1|9999032107|MR|Test|E|Lead 32107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032108|132108|989898|1|9999032108|MR|Test|E|Lead 32108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032109|132109|989898|1|9999032109|MR|Test|E|Lead 32109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032110|132110|989898|1|9999032110|MR|Test|E|Lead 32110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032111|132111|989898|1|9999032111|MR|Test|E|Lead 32111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032112|132112|989898|1|9999032112|MR|Test|E|Lead 32112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032113|132113|989898|1|9999032113|MR|Test|E|Lead 32113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032114|132114|989898|1|9999032114|MR|Test|E|Lead 32114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032115|132115|989898|1|9999032115|MR|Test|E|Lead 32115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032116|132116|989898|1|9999032116|MR|Test|E|Lead 32116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032117|132117|989898|1|9999032117|MR|Test|E|Lead 32117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032118|132118|989898|1|9999032118|MR|Test|E|Lead 32118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032119|132119|989898|1|9999032119|MR|Test|E|Lead 32119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032120|132120|989898|1|9999032120|MR|Test|E|Lead 32120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032121|132121|989898|1|9999032121|MR|Test|E|Lead 32121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032122|132122|989898|1|9999032122|MR|Test|E|Lead 32122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032123|132123|989898|1|9999032123|MR|Test|E|Lead 32123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032124|132124|989898|1|9999032124|MR|Test|E|Lead 32124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032125|132125|989898|1|9999032125|MR|Test|E|Lead 32125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032126|132126|989898|1|9999032126|MR|Test|E|Lead 32126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032127|132127|989898|1|9999032127|MR|Test|E|Lead 32127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032128|132128|989898|1|9999032128|MR|Test|E|Lead 32128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032129|132129|989898|1|9999032129|MR|Test|E|Lead 32129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032130|132130|989898|1|9999032130|MR|Test|E|Lead 32130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032131|132131|989898|1|9999032131|MR|Test|E|Lead 32131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032132|132132|989898|1|9999032132|MR|Test|E|Lead 32132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032133|132133|989898|1|9999032133|MR|Test|E|Lead 32133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032134|132134|989898|1|9999032134|MR|Test|E|Lead 32134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032135|132135|989898|1|9999032135|MR|Test|E|Lead 32135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032136|132136|989898|1|9999032136|MR|Test|E|Lead 32136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032137|132137|989898|1|9999032137|MR|Test|E|Lead 32137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032138|132138|989898|1|9999032138|MR|Test|E|Lead 32138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032139|132139|989898|1|9999032139|MR|Test|E|Lead 32139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032140|132140|989898|1|9999032140|MR|Test|E|Lead 32140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032141|132141|989898|1|9999032141|MR|Test|E|Lead 32141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032142|132142|989898|1|9999032142|MR|Test|E|Lead 32142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032143|132143|989898|1|9999032143|MR|Test|E|Lead 32143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032144|132144|989898|1|9999032144|MR|Test|E|Lead 32144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032145|132145|989898|1|9999032145|MR|Test|E|Lead 32145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032146|132146|989898|1|9999032146|MR|Test|E|Lead 32146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032147|132147|989898|1|9999032147|MR|Test|E|Lead 32147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032148|132148|989898|1|9999032148|MR|Test|E|Lead 32148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032149|132149|989898|1|9999032149|MR|Test|E|Lead 32149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032150|132150|989898|1|9999032150|MR|Test|E|Lead 32150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032151|132151|989898|1|9999032151|MR|Test|E|Lead 32151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032152|132152|989898|1|9999032152|MR|Test|E|Lead 32152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032153|132153|989898|1|9999032153|MR|Test|E|Lead 32153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032154|132154|989898|1|9999032154|MR|Test|E|Lead 32154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032155|132155|989898|1|9999032155|MR|Test|E|Lead 32155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032156|132156|989898|1|9999032156|MR|Test|E|Lead 32156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032157|132157|989898|1|9999032157|MR|Test|E|Lead 32157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032158|132158|989898|1|9999032158|MR|Test|E|Lead 32158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032159|132159|989898|1|9999032159|MR|Test|E|Lead 32159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032160|132160|989898|1|9999032160|MR|Test|E|Lead 32160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032161|132161|989898|1|9999032161|MR|Test|E|Lead 32161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032162|132162|989898|1|9999032162|MR|Test|E|Lead 32162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032163|132163|989898|1|9999032163|MR|Test|E|Lead 32163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032164|132164|989898|1|9999032164|MR|Test|E|Lead 32164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032165|132165|989898|1|9999032165|MR|Test|E|Lead 32165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032166|132166|989898|1|9999032166|MR|Test|E|Lead 32166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032167|132167|989898|1|9999032167|MR|Test|E|Lead 32167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032168|132168|989898|1|9999032168|MR|Test|E|Lead 32168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032169|132169|989898|1|9999032169|MR|Test|E|Lead 32169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032170|132170|989898|1|9999032170|MR|Test|E|Lead 32170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032171|132171|989898|1|9999032171|MR|Test|E|Lead 32171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032172|132172|989898|1|9999032172|MR|Test|E|Lead 32172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032173|132173|989898|1|9999032173|MR|Test|E|Lead 32173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032174|132174|989898|1|9999032174|MR|Test|E|Lead 32174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032175|132175|989898|1|9999032175|MR|Test|E|Lead 32175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032176|132176|989898|1|9999032176|MR|Test|E|Lead 32176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032177|132177|989898|1|9999032177|MR|Test|E|Lead 32177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032178|132178|989898|1|9999032178|MR|Test|E|Lead 32178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032179|132179|989898|1|9999032179|MR|Test|E|Lead 32179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032180|132180|989898|1|9999032180|MR|Test|E|Lead 32180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032181|132181|989898|1|9999032181|MR|Test|E|Lead 32181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032182|132182|989898|1|9999032182|MR|Test|E|Lead 32182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032183|132183|989898|1|9999032183|MR|Test|E|Lead 32183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032184|132184|989898|1|9999032184|MR|Test|E|Lead 32184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032185|132185|989898|1|9999032185|MR|Test|E|Lead 32185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032186|132186|989898|1|9999032186|MR|Test|E|Lead 32186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032187|132187|989898|1|9999032187|MR|Test|E|Lead 32187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032188|132188|989898|1|9999032188|MR|Test|E|Lead 32188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032189|132189|989898|1|9999032189|MR|Test|E|Lead 32189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032190|132190|989898|1|9999032190|MR|Test|E|Lead 32190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032191|132191|989898|1|9999032191|MR|Test|E|Lead 32191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032192|132192|989898|1|9999032192|MR|Test|E|Lead 32192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032193|132193|989898|1|9999032193|MR|Test|E|Lead 32193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032194|132194|989898|1|9999032194|MR|Test|E|Lead 32194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032195|132195|989898|1|9999032195|MR|Test|E|Lead 32195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032196|132196|989898|1|9999032196|MR|Test|E|Lead 32196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032197|132197|989898|1|9999032197|MR|Test|E|Lead 32197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032198|132198|989898|1|9999032198|MR|Test|E|Lead 32198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032199|132199|989898|1|9999032199|MR|Test|E|Lead 32199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032200|132200|989898|1|9999032200|MR|Test|E|Lead 32200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032201|132201|989898|1|9999032201|MR|Test|E|Lead 32201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032202|132202|989898|1|9999032202|MR|Test|E|Lead 32202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032203|132203|989898|1|9999032203|MR|Test|E|Lead 32203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032204|132204|989898|1|9999032204|MR|Test|E|Lead 32204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032205|132205|989898|1|9999032205|MR|Test|E|Lead 32205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032206|132206|989898|1|9999032206|MR|Test|E|Lead 32206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032207|132207|989898|1|9999032207|MR|Test|E|Lead 32207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032208|132208|989898|1|9999032208|MR|Test|E|Lead 32208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032209|132209|989898|1|9999032209|MR|Test|E|Lead 32209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032210|132210|989898|1|9999032210|MR|Test|E|Lead 32210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032211|132211|989898|1|9999032211|MR|Test|E|Lead 32211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032212|132212|989898|1|9999032212|MR|Test|E|Lead 32212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032213|132213|989898|1|9999032213|MR|Test|E|Lead 32213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032214|132214|989898|1|9999032214|MR|Test|E|Lead 32214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032215|132215|989898|1|9999032215|MR|Test|E|Lead 32215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032216|132216|989898|1|9999032216|MR|Test|E|Lead 32216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032217|132217|989898|1|9999032217|MR|Test|E|Lead 32217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032218|132218|989898|1|9999032218|MR|Test|E|Lead 32218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032219|132219|989898|1|9999032219|MR|Test|E|Lead 32219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032220|132220|989898|1|9999032220|MR|Test|E|Lead 32220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032221|132221|989898|1|9999032221|MR|Test|E|Lead 32221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032222|132222|989898|1|9999032222|MR|Test|E|Lead 32222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032223|132223|989898|1|9999032223|MR|Test|E|Lead 32223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032224|132224|989898|1|9999032224|MR|Test|E|Lead 32224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032225|132225|989898|1|9999032225|MR|Test|E|Lead 32225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032226|132226|989898|1|9999032226|MR|Test|E|Lead 32226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032227|132227|989898|1|9999032227|MR|Test|E|Lead 32227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032228|132228|989898|1|9999032228|MR|Test|E|Lead 32228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032229|132229|989898|1|9999032229|MR|Test|E|Lead 32229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032230|132230|989898|1|9999032230|MR|Test|E|Lead 32230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032231|132231|989898|1|9999032231|MR|Test|E|Lead 32231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032232|132232|989898|1|9999032232|MR|Test|E|Lead 32232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032233|132233|989898|1|9999032233|MR|Test|E|Lead 32233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032234|132234|989898|1|9999032234|MR|Test|E|Lead 32234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032235|132235|989898|1|9999032235|MR|Test|E|Lead 32235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032236|132236|989898|1|9999032236|MR|Test|E|Lead 32236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032237|132237|989898|1|9999032237|MR|Test|E|Lead 32237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032238|132238|989898|1|9999032238|MR|Test|E|Lead 32238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032239|132239|989898|1|9999032239|MR|Test|E|Lead 32239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032240|132240|989898|1|9999032240|MR|Test|E|Lead 32240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032241|132241|989898|1|9999032241|MR|Test|E|Lead 32241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032242|132242|989898|1|9999032242|MR|Test|E|Lead 32242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032243|132243|989898|1|9999032243|MR|Test|E|Lead 32243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032244|132244|989898|1|9999032244|MR|Test|E|Lead 32244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032245|132245|989898|1|9999032245|MR|Test|E|Lead 32245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032246|132246|989898|1|9999032246|MR|Test|E|Lead 32246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032247|132247|989898|1|9999032247|MR|Test|E|Lead 32247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032248|132248|989898|1|9999032248|MR|Test|E|Lead 32248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032249|132249|989898|1|9999032249|MR|Test|E|Lead 32249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032250|132250|989898|1|9999032250|MR|Test|E|Lead 32250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032251|132251|989898|1|9999032251|MR|Test|E|Lead 32251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032252|132252|989898|1|9999032252|MR|Test|E|Lead 32252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032253|132253|989898|1|9999032253|MR|Test|E|Lead 32253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032254|132254|989898|1|9999032254|MR|Test|E|Lead 32254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032255|132255|989898|1|9999032255|MR|Test|E|Lead 32255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032256|132256|989898|1|9999032256|MR|Test|E|Lead 32256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032257|132257|989898|1|9999032257|MR|Test|E|Lead 32257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032258|132258|989898|1|9999032258|MR|Test|E|Lead 32258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032259|132259|989898|1|9999032259|MR|Test|E|Lead 32259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032260|132260|989898|1|9999032260|MR|Test|E|Lead 32260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032261|132261|989898|1|9999032261|MR|Test|E|Lead 32261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032262|132262|989898|1|9999032262|MR|Test|E|Lead 32262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032263|132263|989898|1|9999032263|MR|Test|E|Lead 32263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032264|132264|989898|1|9999032264|MR|Test|E|Lead 32264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032265|132265|989898|1|9999032265|MR|Test|E|Lead 32265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032266|132266|989898|1|9999032266|MR|Test|E|Lead 32266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032267|132267|989898|1|9999032267|MR|Test|E|Lead 32267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032268|132268|989898|1|9999032268|MR|Test|E|Lead 32268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032269|132269|989898|1|9999032269|MR|Test|E|Lead 32269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032270|132270|989898|1|9999032270|MR|Test|E|Lead 32270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032271|132271|989898|1|9999032271|MR|Test|E|Lead 32271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032272|132272|989898|1|9999032272|MR|Test|E|Lead 32272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032273|132273|989898|1|9999032273|MR|Test|E|Lead 32273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032274|132274|989898|1|9999032274|MR|Test|E|Lead 32274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032275|132275|989898|1|9999032275|MR|Test|E|Lead 32275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032276|132276|989898|1|9999032276|MR|Test|E|Lead 32276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032277|132277|989898|1|9999032277|MR|Test|E|Lead 32277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032278|132278|989898|1|9999032278|MR|Test|E|Lead 32278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032279|132279|989898|1|9999032279|MR|Test|E|Lead 32279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032280|132280|989898|1|9999032280|MR|Test|E|Lead 32280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032281|132281|989898|1|9999032281|MR|Test|E|Lead 32281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032282|132282|989898|1|9999032282|MR|Test|E|Lead 32282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032283|132283|989898|1|9999032283|MR|Test|E|Lead 32283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032284|132284|989898|1|9999032284|MR|Test|E|Lead 32284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032285|132285|989898|1|9999032285|MR|Test|E|Lead 32285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032286|132286|989898|1|9999032286|MR|Test|E|Lead 32286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032287|132287|989898|1|9999032287|MR|Test|E|Lead 32287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032288|132288|989898|1|9999032288|MR|Test|E|Lead 32288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032289|132289|989898|1|9999032289|MR|Test|E|Lead 32289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032290|132290|989898|1|9999032290|MR|Test|E|Lead 32290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032291|132291|989898|1|9999032291|MR|Test|E|Lead 32291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032292|132292|989898|1|9999032292|MR|Test|E|Lead 32292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032293|132293|989898|1|9999032293|MR|Test|E|Lead 32293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032294|132294|989898|1|9999032294|MR|Test|E|Lead 32294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032295|132295|989898|1|9999032295|MR|Test|E|Lead 32295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032296|132296|989898|1|9999032296|MR|Test|E|Lead 32296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032297|132297|989898|1|9999032297|MR|Test|E|Lead 32297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032298|132298|989898|1|9999032298|MR|Test|E|Lead 32298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032299|132299|989898|1|9999032299|MR|Test|E|Lead 32299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032300|132300|989898|1|9999032300|MR|Test|E|Lead 32300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032301|132301|989898|1|9999032301|MR|Test|E|Lead 32301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032302|132302|989898|1|9999032302|MR|Test|E|Lead 32302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032303|132303|989898|1|9999032303|MR|Test|E|Lead 32303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032304|132304|989898|1|9999032304|MR|Test|E|Lead 32304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032305|132305|989898|1|9999032305|MR|Test|E|Lead 32305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032306|132306|989898|1|9999032306|MR|Test|E|Lead 32306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032307|132307|989898|1|9999032307|MR|Test|E|Lead 32307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032308|132308|989898|1|9999032308|MR|Test|E|Lead 32308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032309|132309|989898|1|9999032309|MR|Test|E|Lead 32309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032310|132310|989898|1|9999032310|MR|Test|E|Lead 32310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032311|132311|989898|1|9999032311|MR|Test|E|Lead 32311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032312|132312|989898|1|9999032312|MR|Test|E|Lead 32312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032313|132313|989898|1|9999032313|MR|Test|E|Lead 32313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032314|132314|989898|1|9999032314|MR|Test|E|Lead 32314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032315|132315|989898|1|9999032315|MR|Test|E|Lead 32315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032316|132316|989898|1|9999032316|MR|Test|E|Lead 32316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032317|132317|989898|1|9999032317|MR|Test|E|Lead 32317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032318|132318|989898|1|9999032318|MR|Test|E|Lead 32318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032319|132319|989898|1|9999032319|MR|Test|E|Lead 32319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032320|132320|989898|1|9999032320|MR|Test|E|Lead 32320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032321|132321|989898|1|9999032321|MR|Test|E|Lead 32321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032322|132322|989898|1|9999032322|MR|Test|E|Lead 32322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032323|132323|989898|1|9999032323|MR|Test|E|Lead 32323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032324|132324|989898|1|9999032324|MR|Test|E|Lead 32324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032325|132325|989898|1|9999032325|MR|Test|E|Lead 32325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032326|132326|989898|1|9999032326|MR|Test|E|Lead 32326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032327|132327|989898|1|9999032327|MR|Test|E|Lead 32327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032328|132328|989898|1|9999032328|MR|Test|E|Lead 32328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032329|132329|989898|1|9999032329|MR|Test|E|Lead 32329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032330|132330|989898|1|9999032330|MR|Test|E|Lead 32330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032331|132331|989898|1|9999032331|MR|Test|E|Lead 32331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032332|132332|989898|1|9999032332|MR|Test|E|Lead 32332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032333|132333|989898|1|9999032333|MR|Test|E|Lead 32333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032334|132334|989898|1|9999032334|MR|Test|E|Lead 32334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032335|132335|989898|1|9999032335|MR|Test|E|Lead 32335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032336|132336|989898|1|9999032336|MR|Test|E|Lead 32336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032337|132337|989898|1|9999032337|MR|Test|E|Lead 32337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032338|132338|989898|1|9999032338|MR|Test|E|Lead 32338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032339|132339|989898|1|9999032339|MR|Test|E|Lead 32339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032340|132340|989898|1|9999032340|MR|Test|E|Lead 32340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032341|132341|989898|1|9999032341|MR|Test|E|Lead 32341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032342|132342|989898|1|9999032342|MR|Test|E|Lead 32342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032343|132343|989898|1|9999032343|MR|Test|E|Lead 32343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032344|132344|989898|1|9999032344|MR|Test|E|Lead 32344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032345|132345|989898|1|9999032345|MR|Test|E|Lead 32345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032346|132346|989898|1|9999032346|MR|Test|E|Lead 32346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032347|132347|989898|1|9999032347|MR|Test|E|Lead 32347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032348|132348|989898|1|9999032348|MR|Test|E|Lead 32348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032349|132349|989898|1|9999032349|MR|Test|E|Lead 32349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032350|132350|989898|1|9999032350|MR|Test|E|Lead 32350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032351|132351|989898|1|9999032351|MR|Test|E|Lead 32351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032352|132352|989898|1|9999032352|MR|Test|E|Lead 32352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032353|132353|989898|1|9999032353|MR|Test|E|Lead 32353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032354|132354|989898|1|9999032354|MR|Test|E|Lead 32354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032355|132355|989898|1|9999032355|MR|Test|E|Lead 32355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032356|132356|989898|1|9999032356|MR|Test|E|Lead 32356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032357|132357|989898|1|9999032357|MR|Test|E|Lead 32357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032358|132358|989898|1|9999032358|MR|Test|E|Lead 32358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032359|132359|989898|1|9999032359|MR|Test|E|Lead 32359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032360|132360|989898|1|9999032360|MR|Test|E|Lead 32360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032361|132361|989898|1|9999032361|MR|Test|E|Lead 32361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032362|132362|989898|1|9999032362|MR|Test|E|Lead 32362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032363|132363|989898|1|9999032363|MR|Test|E|Lead 32363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032364|132364|989898|1|9999032364|MR|Test|E|Lead 32364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032365|132365|989898|1|9999032365|MR|Test|E|Lead 32365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032366|132366|989898|1|9999032366|MR|Test|E|Lead 32366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032367|132367|989898|1|9999032367|MR|Test|E|Lead 32367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032368|132368|989898|1|9999032368|MR|Test|E|Lead 32368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032369|132369|989898|1|9999032369|MR|Test|E|Lead 32369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032370|132370|989898|1|9999032370|MR|Test|E|Lead 32370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032371|132371|989898|1|9999032371|MR|Test|E|Lead 32371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032372|132372|989898|1|9999032372|MR|Test|E|Lead 32372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032373|132373|989898|1|9999032373|MR|Test|E|Lead 32373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032374|132374|989898|1|9999032374|MR|Test|E|Lead 32374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032375|132375|989898|1|9999032375|MR|Test|E|Lead 32375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032376|132376|989898|1|9999032376|MR|Test|E|Lead 32376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032377|132377|989898|1|9999032377|MR|Test|E|Lead 32377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032378|132378|989898|1|9999032378|MR|Test|E|Lead 32378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032379|132379|989898|1|9999032379|MR|Test|E|Lead 32379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032380|132380|989898|1|9999032380|MR|Test|E|Lead 32380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032381|132381|989898|1|9999032381|MR|Test|E|Lead 32381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032382|132382|989898|1|9999032382|MR|Test|E|Lead 32382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032383|132383|989898|1|9999032383|MR|Test|E|Lead 32383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032384|132384|989898|1|9999032384|MR|Test|E|Lead 32384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032385|132385|989898|1|9999032385|MR|Test|E|Lead 32385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032386|132386|989898|1|9999032386|MR|Test|E|Lead 32386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032387|132387|989898|1|9999032387|MR|Test|E|Lead 32387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032388|132388|989898|1|9999032388|MR|Test|E|Lead 32388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032389|132389|989898|1|9999032389|MR|Test|E|Lead 32389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032390|132390|989898|1|9999032390|MR|Test|E|Lead 32390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032391|132391|989898|1|9999032391|MR|Test|E|Lead 32391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032392|132392|989898|1|9999032392|MR|Test|E|Lead 32392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032393|132393|989898|1|9999032393|MR|Test|E|Lead 32393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032394|132394|989898|1|9999032394|MR|Test|E|Lead 32394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032395|132395|989898|1|9999032395|MR|Test|E|Lead 32395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032396|132396|989898|1|9999032396|MR|Test|E|Lead 32396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032397|132397|989898|1|9999032397|MR|Test|E|Lead 32397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032398|132398|989898|1|9999032398|MR|Test|E|Lead 32398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032399|132399|989898|1|9999032399|MR|Test|E|Lead 32399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032400|132400|989898|1|9999032400|MR|Test|E|Lead 32400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032401|132401|989898|1|9999032401|MR|Test|E|Lead 32401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032402|132402|989898|1|9999032402|MR|Test|E|Lead 32402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032403|132403|989898|1|9999032403|MR|Test|E|Lead 32403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032404|132404|989898|1|9999032404|MR|Test|E|Lead 32404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032405|132405|989898|1|9999032405|MR|Test|E|Lead 32405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032406|132406|989898|1|9999032406|MR|Test|E|Lead 32406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032407|132407|989898|1|9999032407|MR|Test|E|Lead 32407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032408|132408|989898|1|9999032408|MR|Test|E|Lead 32408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032409|132409|989898|1|9999032409|MR|Test|E|Lead 32409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032410|132410|989898|1|9999032410|MR|Test|E|Lead 32410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032411|132411|989898|1|9999032411|MR|Test|E|Lead 32411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032412|132412|989898|1|9999032412|MR|Test|E|Lead 32412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032413|132413|989898|1|9999032413|MR|Test|E|Lead 32413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032414|132414|989898|1|9999032414|MR|Test|E|Lead 32414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032415|132415|989898|1|9999032415|MR|Test|E|Lead 32415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032416|132416|989898|1|9999032416|MR|Test|E|Lead 32416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032417|132417|989898|1|9999032417|MR|Test|E|Lead 32417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032418|132418|989898|1|9999032418|MR|Test|E|Lead 32418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032419|132419|989898|1|9999032419|MR|Test|E|Lead 32419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032420|132420|989898|1|9999032420|MR|Test|E|Lead 32420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032421|132421|989898|1|9999032421|MR|Test|E|Lead 32421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032422|132422|989898|1|9999032422|MR|Test|E|Lead 32422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032423|132423|989898|1|9999032423|MR|Test|E|Lead 32423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032424|132424|989898|1|9999032424|MR|Test|E|Lead 32424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032425|132425|989898|1|9999032425|MR|Test|E|Lead 32425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032426|132426|989898|1|9999032426|MR|Test|E|Lead 32426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032427|132427|989898|1|9999032427|MR|Test|E|Lead 32427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032428|132428|989898|1|9999032428|MR|Test|E|Lead 32428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032429|132429|989898|1|9999032429|MR|Test|E|Lead 32429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032430|132430|989898|1|9999032430|MR|Test|E|Lead 32430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032431|132431|989898|1|9999032431|MR|Test|E|Lead 32431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032432|132432|989898|1|9999032432|MR|Test|E|Lead 32432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032433|132433|989898|1|9999032433|MR|Test|E|Lead 32433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032434|132434|989898|1|9999032434|MR|Test|E|Lead 32434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032435|132435|989898|1|9999032435|MR|Test|E|Lead 32435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032436|132436|989898|1|9999032436|MR|Test|E|Lead 32436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032437|132437|989898|1|9999032437|MR|Test|E|Lead 32437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032438|132438|989898|1|9999032438|MR|Test|E|Lead 32438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032439|132439|989898|1|9999032439|MR|Test|E|Lead 32439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032440|132440|989898|1|9999032440|MR|Test|E|Lead 32440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032441|132441|989898|1|9999032441|MR|Test|E|Lead 32441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032442|132442|989898|1|9999032442|MR|Test|E|Lead 32442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032443|132443|989898|1|9999032443|MR|Test|E|Lead 32443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032444|132444|989898|1|9999032444|MR|Test|E|Lead 32444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032445|132445|989898|1|9999032445|MR|Test|E|Lead 32445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032446|132446|989898|1|9999032446|MR|Test|E|Lead 32446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032447|132447|989898|1|9999032447|MR|Test|E|Lead 32447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032448|132448|989898|1|9999032448|MR|Test|E|Lead 32448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032449|132449|989898|1|9999032449|MR|Test|E|Lead 32449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032450|132450|989898|1|9999032450|MR|Test|E|Lead 32450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032451|132451|989898|1|9999032451|MR|Test|E|Lead 32451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032452|132452|989898|1|9999032452|MR|Test|E|Lead 32452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032453|132453|989898|1|9999032453|MR|Test|E|Lead 32453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032454|132454|989898|1|9999032454|MR|Test|E|Lead 32454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032455|132455|989898|1|9999032455|MR|Test|E|Lead 32455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032456|132456|989898|1|9999032456|MR|Test|E|Lead 32456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032457|132457|989898|1|9999032457|MR|Test|E|Lead 32457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032458|132458|989898|1|9999032458|MR|Test|E|Lead 32458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032459|132459|989898|1|9999032459|MR|Test|E|Lead 32459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032460|132460|989898|1|9999032460|MR|Test|E|Lead 32460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032461|132461|989898|1|9999032461|MR|Test|E|Lead 32461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032462|132462|989898|1|9999032462|MR|Test|E|Lead 32462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032463|132463|989898|1|9999032463|MR|Test|E|Lead 32463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032464|132464|989898|1|9999032464|MR|Test|E|Lead 32464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032465|132465|989898|1|9999032465|MR|Test|E|Lead 32465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032466|132466|989898|1|9999032466|MR|Test|E|Lead 32466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032467|132467|989898|1|9999032467|MR|Test|E|Lead 32467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032468|132468|989898|1|9999032468|MR|Test|E|Lead 32468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032469|132469|989898|1|9999032469|MR|Test|E|Lead 32469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032470|132470|989898|1|9999032470|MR|Test|E|Lead 32470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032471|132471|989898|1|9999032471|MR|Test|E|Lead 32471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032472|132472|989898|1|9999032472|MR|Test|E|Lead 32472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032473|132473|989898|1|9999032473|MR|Test|E|Lead 32473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032474|132474|989898|1|9999032474|MR|Test|E|Lead 32474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032475|132475|989898|1|9999032475|MR|Test|E|Lead 32475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032476|132476|989898|1|9999032476|MR|Test|E|Lead 32476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032477|132477|989898|1|9999032477|MR|Test|E|Lead 32477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032478|132478|989898|1|9999032478|MR|Test|E|Lead 32478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032479|132479|989898|1|9999032479|MR|Test|E|Lead 32479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032480|132480|989898|1|9999032480|MR|Test|E|Lead 32480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032481|132481|989898|1|9999032481|MR|Test|E|Lead 32481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032482|132482|989898|1|9999032482|MR|Test|E|Lead 32482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032483|132483|989898|1|9999032483|MR|Test|E|Lead 32483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032484|132484|989898|1|9999032484|MR|Test|E|Lead 32484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032485|132485|989898|1|9999032485|MR|Test|E|Lead 32485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032486|132486|989898|1|9999032486|MR|Test|E|Lead 32486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032487|132487|989898|1|9999032487|MR|Test|E|Lead 32487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032488|132488|989898|1|9999032488|MR|Test|E|Lead 32488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032489|132489|989898|1|9999032489|MR|Test|E|Lead 32489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032490|132490|989898|1|9999032490|MR|Test|E|Lead 32490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032491|132491|989898|1|9999032491|MR|Test|E|Lead 32491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032492|132492|989898|1|9999032492|MR|Test|E|Lead 32492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032493|132493|989898|1|9999032493|MR|Test|E|Lead 32493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032494|132494|989898|1|9999032494|MR|Test|E|Lead 32494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032495|132495|989898|1|9999032495|MR|Test|E|Lead 32495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032496|132496|989898|1|9999032496|MR|Test|E|Lead 32496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032497|132497|989898|1|9999032497|MR|Test|E|Lead 32497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032498|132498|989898|1|9999032498|MR|Test|E|Lead 32498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032499|132499|989898|1|9999032499|MR|Test|E|Lead 32499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032500|132500|989898|1|9999032500|MR|Test|E|Lead 32500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032501|132501|989898|1|9999032501|MR|Test|E|Lead 32501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032502|132502|989898|1|9999032502|MR|Test|E|Lead 32502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032503|132503|989898|1|9999032503|MR|Test|E|Lead 32503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032504|132504|989898|1|9999032504|MR|Test|E|Lead 32504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032505|132505|989898|1|9999032505|MR|Test|E|Lead 32505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032506|132506|989898|1|9999032506|MR|Test|E|Lead 32506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032507|132507|989898|1|9999032507|MR|Test|E|Lead 32507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032508|132508|989898|1|9999032508|MR|Test|E|Lead 32508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032509|132509|989898|1|9999032509|MR|Test|E|Lead 32509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032510|132510|989898|1|9999032510|MR|Test|E|Lead 32510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032511|132511|989898|1|9999032511|MR|Test|E|Lead 32511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032512|132512|989898|1|9999032512|MR|Test|E|Lead 32512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032513|132513|989898|1|9999032513|MR|Test|E|Lead 32513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032514|132514|989898|1|9999032514|MR|Test|E|Lead 32514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032515|132515|989898|1|9999032515|MR|Test|E|Lead 32515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032516|132516|989898|1|9999032516|MR|Test|E|Lead 32516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032517|132517|989898|1|9999032517|MR|Test|E|Lead 32517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032518|132518|989898|1|9999032518|MR|Test|E|Lead 32518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032519|132519|989898|1|9999032519|MR|Test|E|Lead 32519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032520|132520|989898|1|9999032520|MR|Test|E|Lead 32520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032521|132521|989898|1|9999032521|MR|Test|E|Lead 32521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032522|132522|989898|1|9999032522|MR|Test|E|Lead 32522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032523|132523|989898|1|9999032523|MR|Test|E|Lead 32523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032524|132524|989898|1|9999032524|MR|Test|E|Lead 32524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032525|132525|989898|1|9999032525|MR|Test|E|Lead 32525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032526|132526|989898|1|9999032526|MR|Test|E|Lead 32526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032527|132527|989898|1|9999032527|MR|Test|E|Lead 32527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032528|132528|989898|1|9999032528|MR|Test|E|Lead 32528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032529|132529|989898|1|9999032529|MR|Test|E|Lead 32529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032530|132530|989898|1|9999032530|MR|Test|E|Lead 32530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032531|132531|989898|1|9999032531|MR|Test|E|Lead 32531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032532|132532|989898|1|9999032532|MR|Test|E|Lead 32532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032533|132533|989898|1|9999032533|MR|Test|E|Lead 32533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032534|132534|989898|1|9999032534|MR|Test|E|Lead 32534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032535|132535|989898|1|9999032535|MR|Test|E|Lead 32535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032536|132536|989898|1|9999032536|MR|Test|E|Lead 32536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032537|132537|989898|1|9999032537|MR|Test|E|Lead 32537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032538|132538|989898|1|9999032538|MR|Test|E|Lead 32538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032539|132539|989898|1|9999032539|MR|Test|E|Lead 32539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032540|132540|989898|1|9999032540|MR|Test|E|Lead 32540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032541|132541|989898|1|9999032541|MR|Test|E|Lead 32541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032542|132542|989898|1|9999032542|MR|Test|E|Lead 32542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032543|132543|989898|1|9999032543|MR|Test|E|Lead 32543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032544|132544|989898|1|9999032544|MR|Test|E|Lead 32544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032545|132545|989898|1|9999032545|MR|Test|E|Lead 32545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032546|132546|989898|1|9999032546|MR|Test|E|Lead 32546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032547|132547|989898|1|9999032547|MR|Test|E|Lead 32547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032548|132548|989898|1|9999032548|MR|Test|E|Lead 32548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032549|132549|989898|1|9999032549|MR|Test|E|Lead 32549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032550|132550|989898|1|9999032550|MR|Test|E|Lead 32550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032551|132551|989898|1|9999032551|MR|Test|E|Lead 32551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032552|132552|989898|1|9999032552|MR|Test|E|Lead 32552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032553|132553|989898|1|9999032553|MR|Test|E|Lead 32553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032554|132554|989898|1|9999032554|MR|Test|E|Lead 32554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032555|132555|989898|1|9999032555|MR|Test|E|Lead 32555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032556|132556|989898|1|9999032556|MR|Test|E|Lead 32556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032557|132557|989898|1|9999032557|MR|Test|E|Lead 32557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032558|132558|989898|1|9999032558|MR|Test|E|Lead 32558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032559|132559|989898|1|9999032559|MR|Test|E|Lead 32559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032560|132560|989898|1|9999032560|MR|Test|E|Lead 32560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032561|132561|989898|1|9999032561|MR|Test|E|Lead 32561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032562|132562|989898|1|9999032562|MR|Test|E|Lead 32562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032563|132563|989898|1|9999032563|MR|Test|E|Lead 32563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032564|132564|989898|1|9999032564|MR|Test|E|Lead 32564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032565|132565|989898|1|9999032565|MR|Test|E|Lead 32565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032566|132566|989898|1|9999032566|MR|Test|E|Lead 32566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032567|132567|989898|1|9999032567|MR|Test|E|Lead 32567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032568|132568|989898|1|9999032568|MR|Test|E|Lead 32568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032569|132569|989898|1|9999032569|MR|Test|E|Lead 32569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032570|132570|989898|1|9999032570|MR|Test|E|Lead 32570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032571|132571|989898|1|9999032571|MR|Test|E|Lead 32571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032572|132572|989898|1|9999032572|MR|Test|E|Lead 32572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032573|132573|989898|1|9999032573|MR|Test|E|Lead 32573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032574|132574|989898|1|9999032574|MR|Test|E|Lead 32574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032575|132575|989898|1|9999032575|MR|Test|E|Lead 32575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032576|132576|989898|1|9999032576|MR|Test|E|Lead 32576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032577|132577|989898|1|9999032577|MR|Test|E|Lead 32577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032578|132578|989898|1|9999032578|MR|Test|E|Lead 32578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032579|132579|989898|1|9999032579|MR|Test|E|Lead 32579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032580|132580|989898|1|9999032580|MR|Test|E|Lead 32580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032581|132581|989898|1|9999032581|MR|Test|E|Lead 32581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032582|132582|989898|1|9999032582|MR|Test|E|Lead 32582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032583|132583|989898|1|9999032583|MR|Test|E|Lead 32583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032584|132584|989898|1|9999032584|MR|Test|E|Lead 32584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032585|132585|989898|1|9999032585|MR|Test|E|Lead 32585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032586|132586|989898|1|9999032586|MR|Test|E|Lead 32586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032587|132587|989898|1|9999032587|MR|Test|E|Lead 32587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032588|132588|989898|1|9999032588|MR|Test|E|Lead 32588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032589|132589|989898|1|9999032589|MR|Test|E|Lead 32589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032590|132590|989898|1|9999032590|MR|Test|E|Lead 32590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032591|132591|989898|1|9999032591|MR|Test|E|Lead 32591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032592|132592|989898|1|9999032592|MR|Test|E|Lead 32592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032593|132593|989898|1|9999032593|MR|Test|E|Lead 32593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032594|132594|989898|1|9999032594|MR|Test|E|Lead 32594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032595|132595|989898|1|9999032595|MR|Test|E|Lead 32595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032596|132596|989898|1|9999032596|MR|Test|E|Lead 32596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032597|132597|989898|1|9999032597|MR|Test|E|Lead 32597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032598|132598|989898|1|9999032598|MR|Test|E|Lead 32598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032599|132599|989898|1|9999032599|MR|Test|E|Lead 32599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032600|132600|989898|1|9999032600|MR|Test|E|Lead 32600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032601|132601|989898|1|9999032601|MR|Test|E|Lead 32601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032602|132602|989898|1|9999032602|MR|Test|E|Lead 32602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032603|132603|989898|1|9999032603|MR|Test|E|Lead 32603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032604|132604|989898|1|9999032604|MR|Test|E|Lead 32604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032605|132605|989898|1|9999032605|MR|Test|E|Lead 32605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032606|132606|989898|1|9999032606|MR|Test|E|Lead 32606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032607|132607|989898|1|9999032607|MR|Test|E|Lead 32607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032608|132608|989898|1|9999032608|MR|Test|E|Lead 32608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032609|132609|989898|1|9999032609|MR|Test|E|Lead 32609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032610|132610|989898|1|9999032610|MR|Test|E|Lead 32610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032611|132611|989898|1|9999032611|MR|Test|E|Lead 32611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032612|132612|989898|1|9999032612|MR|Test|E|Lead 32612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032613|132613|989898|1|9999032613|MR|Test|E|Lead 32613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032614|132614|989898|1|9999032614|MR|Test|E|Lead 32614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032615|132615|989898|1|9999032615|MR|Test|E|Lead 32615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032616|132616|989898|1|9999032616|MR|Test|E|Lead 32616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032617|132617|989898|1|9999032617|MR|Test|E|Lead 32617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032618|132618|989898|1|9999032618|MR|Test|E|Lead 32618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032619|132619|989898|1|9999032619|MR|Test|E|Lead 32619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032620|132620|989898|1|9999032620|MR|Test|E|Lead 32620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032621|132621|989898|1|9999032621|MR|Test|E|Lead 32621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032622|132622|989898|1|9999032622|MR|Test|E|Lead 32622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032623|132623|989898|1|9999032623|MR|Test|E|Lead 32623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032624|132624|989898|1|9999032624|MR|Test|E|Lead 32624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032625|132625|989898|1|9999032625|MR|Test|E|Lead 32625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032626|132626|989898|1|9999032626|MR|Test|E|Lead 32626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032627|132627|989898|1|9999032627|MR|Test|E|Lead 32627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032628|132628|989898|1|9999032628|MR|Test|E|Lead 32628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032629|132629|989898|1|9999032629|MR|Test|E|Lead 32629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032630|132630|989898|1|9999032630|MR|Test|E|Lead 32630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032631|132631|989898|1|9999032631|MR|Test|E|Lead 32631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032632|132632|989898|1|9999032632|MR|Test|E|Lead 32632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032633|132633|989898|1|9999032633|MR|Test|E|Lead 32633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032634|132634|989898|1|9999032634|MR|Test|E|Lead 32634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032635|132635|989898|1|9999032635|MR|Test|E|Lead 32635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032636|132636|989898|1|9999032636|MR|Test|E|Lead 32636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032637|132637|989898|1|9999032637|MR|Test|E|Lead 32637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032638|132638|989898|1|9999032638|MR|Test|E|Lead 32638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032639|132639|989898|1|9999032639|MR|Test|E|Lead 32639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032640|132640|989898|1|9999032640|MR|Test|E|Lead 32640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032641|132641|989898|1|9999032641|MR|Test|E|Lead 32641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032642|132642|989898|1|9999032642|MR|Test|E|Lead 32642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032643|132643|989898|1|9999032643|MR|Test|E|Lead 32643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032644|132644|989898|1|9999032644|MR|Test|E|Lead 32644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032645|132645|989898|1|9999032645|MR|Test|E|Lead 32645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032646|132646|989898|1|9999032646|MR|Test|E|Lead 32646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032647|132647|989898|1|9999032647|MR|Test|E|Lead 32647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032648|132648|989898|1|9999032648|MR|Test|E|Lead 32648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032649|132649|989898|1|9999032649|MR|Test|E|Lead 32649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032650|132650|989898|1|9999032650|MR|Test|E|Lead 32650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032651|132651|989898|1|9999032651|MR|Test|E|Lead 32651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032652|132652|989898|1|9999032652|MR|Test|E|Lead 32652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032653|132653|989898|1|9999032653|MR|Test|E|Lead 32653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032654|132654|989898|1|9999032654|MR|Test|E|Lead 32654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032655|132655|989898|1|9999032655|MR|Test|E|Lead 32655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032656|132656|989898|1|9999032656|MR|Test|E|Lead 32656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032657|132657|989898|1|9999032657|MR|Test|E|Lead 32657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032658|132658|989898|1|9999032658|MR|Test|E|Lead 32658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032659|132659|989898|1|9999032659|MR|Test|E|Lead 32659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032660|132660|989898|1|9999032660|MR|Test|E|Lead 32660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032661|132661|989898|1|9999032661|MR|Test|E|Lead 32661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032662|132662|989898|1|9999032662|MR|Test|E|Lead 32662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032663|132663|989898|1|9999032663|MR|Test|E|Lead 32663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032664|132664|989898|1|9999032664|MR|Test|E|Lead 32664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032665|132665|989898|1|9999032665|MR|Test|E|Lead 32665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032666|132666|989898|1|9999032666|MR|Test|E|Lead 32666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032667|132667|989898|1|9999032667|MR|Test|E|Lead 32667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032668|132668|989898|1|9999032668|MR|Test|E|Lead 32668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032669|132669|989898|1|9999032669|MR|Test|E|Lead 32669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032670|132670|989898|1|9999032670|MR|Test|E|Lead 32670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032671|132671|989898|1|9999032671|MR|Test|E|Lead 32671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032672|132672|989898|1|9999032672|MR|Test|E|Lead 32672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032673|132673|989898|1|9999032673|MR|Test|E|Lead 32673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032674|132674|989898|1|9999032674|MR|Test|E|Lead 32674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032675|132675|989898|1|9999032675|MR|Test|E|Lead 32675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032676|132676|989898|1|9999032676|MR|Test|E|Lead 32676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032677|132677|989898|1|9999032677|MR|Test|E|Lead 32677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032678|132678|989898|1|9999032678|MR|Test|E|Lead 32678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032679|132679|989898|1|9999032679|MR|Test|E|Lead 32679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032680|132680|989898|1|9999032680|MR|Test|E|Lead 32680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032681|132681|989898|1|9999032681|MR|Test|E|Lead 32681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032682|132682|989898|1|9999032682|MR|Test|E|Lead 32682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032683|132683|989898|1|9999032683|MR|Test|E|Lead 32683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032684|132684|989898|1|9999032684|MR|Test|E|Lead 32684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032685|132685|989898|1|9999032685|MR|Test|E|Lead 32685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032686|132686|989898|1|9999032686|MR|Test|E|Lead 32686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032687|132687|989898|1|9999032687|MR|Test|E|Lead 32687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032688|132688|989898|1|9999032688|MR|Test|E|Lead 32688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032689|132689|989898|1|9999032689|MR|Test|E|Lead 32689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032690|132690|989898|1|9999032690|MR|Test|E|Lead 32690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032691|132691|989898|1|9999032691|MR|Test|E|Lead 32691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032692|132692|989898|1|9999032692|MR|Test|E|Lead 32692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032693|132693|989898|1|9999032693|MR|Test|E|Lead 32693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032694|132694|989898|1|9999032694|MR|Test|E|Lead 32694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032695|132695|989898|1|9999032695|MR|Test|E|Lead 32695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032696|132696|989898|1|9999032696|MR|Test|E|Lead 32696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032697|132697|989898|1|9999032697|MR|Test|E|Lead 32697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032698|132698|989898|1|9999032698|MR|Test|E|Lead 32698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032699|132699|989898|1|9999032699|MR|Test|E|Lead 32699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032700|132700|989898|1|9999032700|MR|Test|E|Lead 32700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032701|132701|989898|1|9999032701|MR|Test|E|Lead 32701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032702|132702|989898|1|9999032702|MR|Test|E|Lead 32702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032703|132703|989898|1|9999032703|MR|Test|E|Lead 32703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032704|132704|989898|1|9999032704|MR|Test|E|Lead 32704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032705|132705|989898|1|9999032705|MR|Test|E|Lead 32705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032706|132706|989898|1|9999032706|MR|Test|E|Lead 32706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032707|132707|989898|1|9999032707|MR|Test|E|Lead 32707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032708|132708|989898|1|9999032708|MR|Test|E|Lead 32708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032709|132709|989898|1|9999032709|MR|Test|E|Lead 32709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032710|132710|989898|1|9999032710|MR|Test|E|Lead 32710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032711|132711|989898|1|9999032711|MR|Test|E|Lead 32711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032712|132712|989898|1|9999032712|MR|Test|E|Lead 32712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032713|132713|989898|1|9999032713|MR|Test|E|Lead 32713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032714|132714|989898|1|9999032714|MR|Test|E|Lead 32714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032715|132715|989898|1|9999032715|MR|Test|E|Lead 32715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032716|132716|989898|1|9999032716|MR|Test|E|Lead 32716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032717|132717|989898|1|9999032717|MR|Test|E|Lead 32717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032718|132718|989898|1|9999032718|MR|Test|E|Lead 32718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032719|132719|989898|1|9999032719|MR|Test|E|Lead 32719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032720|132720|989898|1|9999032720|MR|Test|E|Lead 32720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032721|132721|989898|1|9999032721|MR|Test|E|Lead 32721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032722|132722|989898|1|9999032722|MR|Test|E|Lead 32722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032723|132723|989898|1|9999032723|MR|Test|E|Lead 32723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032724|132724|989898|1|9999032724|MR|Test|E|Lead 32724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032725|132725|989898|1|9999032725|MR|Test|E|Lead 32725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032726|132726|989898|1|9999032726|MR|Test|E|Lead 32726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032727|132727|989898|1|9999032727|MR|Test|E|Lead 32727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032728|132728|989898|1|9999032728|MR|Test|E|Lead 32728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032729|132729|989898|1|9999032729|MR|Test|E|Lead 32729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032730|132730|989898|1|9999032730|MR|Test|E|Lead 32730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032731|132731|989898|1|9999032731|MR|Test|E|Lead 32731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032732|132732|989898|1|9999032732|MR|Test|E|Lead 32732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032733|132733|989898|1|9999032733|MR|Test|E|Lead 32733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032734|132734|989898|1|9999032734|MR|Test|E|Lead 32734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032735|132735|989898|1|9999032735|MR|Test|E|Lead 32735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032736|132736|989898|1|9999032736|MR|Test|E|Lead 32736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032737|132737|989898|1|9999032737|MR|Test|E|Lead 32737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032738|132738|989898|1|9999032738|MR|Test|E|Lead 32738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032739|132739|989898|1|9999032739|MR|Test|E|Lead 32739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032740|132740|989898|1|9999032740|MR|Test|E|Lead 32740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032741|132741|989898|1|9999032741|MR|Test|E|Lead 32741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032742|132742|989898|1|9999032742|MR|Test|E|Lead 32742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032743|132743|989898|1|9999032743|MR|Test|E|Lead 32743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032744|132744|989898|1|9999032744|MR|Test|E|Lead 32744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032745|132745|989898|1|9999032745|MR|Test|E|Lead 32745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032746|132746|989898|1|9999032746|MR|Test|E|Lead 32746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032747|132747|989898|1|9999032747|MR|Test|E|Lead 32747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032748|132748|989898|1|9999032748|MR|Test|E|Lead 32748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032749|132749|989898|1|9999032749|MR|Test|E|Lead 32749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032750|132750|989898|1|9999032750|MR|Test|E|Lead 32750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032751|132751|989898|1|9999032751|MR|Test|E|Lead 32751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032752|132752|989898|1|9999032752|MR|Test|E|Lead 32752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032753|132753|989898|1|9999032753|MR|Test|E|Lead 32753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032754|132754|989898|1|9999032754|MR|Test|E|Lead 32754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032755|132755|989898|1|9999032755|MR|Test|E|Lead 32755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032756|132756|989898|1|9999032756|MR|Test|E|Lead 32756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032757|132757|989898|1|9999032757|MR|Test|E|Lead 32757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032758|132758|989898|1|9999032758|MR|Test|E|Lead 32758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032759|132759|989898|1|9999032759|MR|Test|E|Lead 32759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032760|132760|989898|1|9999032760|MR|Test|E|Lead 32760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032761|132761|989898|1|9999032761|MR|Test|E|Lead 32761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032762|132762|989898|1|9999032762|MR|Test|E|Lead 32762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032763|132763|989898|1|9999032763|MR|Test|E|Lead 32763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032764|132764|989898|1|9999032764|MR|Test|E|Lead 32764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032765|132765|989898|1|9999032765|MR|Test|E|Lead 32765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032766|132766|989898|1|9999032766|MR|Test|E|Lead 32766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032767|132767|989898|1|9999032767|MR|Test|E|Lead 32767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032768|132768|989898|1|9999032768|MR|Test|E|Lead 32768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032769|132769|989898|1|9999032769|MR|Test|E|Lead 32769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032770|132770|989898|1|9999032770|MR|Test|E|Lead 32770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032771|132771|989898|1|9999032771|MR|Test|E|Lead 32771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032772|132772|989898|1|9999032772|MR|Test|E|Lead 32772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032773|132773|989898|1|9999032773|MR|Test|E|Lead 32773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032774|132774|989898|1|9999032774|MR|Test|E|Lead 32774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032775|132775|989898|1|9999032775|MR|Test|E|Lead 32775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032776|132776|989898|1|9999032776|MR|Test|E|Lead 32776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032777|132777|989898|1|9999032777|MR|Test|E|Lead 32777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032778|132778|989898|1|9999032778|MR|Test|E|Lead 32778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032779|132779|989898|1|9999032779|MR|Test|E|Lead 32779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032780|132780|989898|1|9999032780|MR|Test|E|Lead 32780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032781|132781|989898|1|9999032781|MR|Test|E|Lead 32781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032782|132782|989898|1|9999032782|MR|Test|E|Lead 32782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032783|132783|989898|1|9999032783|MR|Test|E|Lead 32783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032784|132784|989898|1|9999032784|MR|Test|E|Lead 32784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032785|132785|989898|1|9999032785|MR|Test|E|Lead 32785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032786|132786|989898|1|9999032786|MR|Test|E|Lead 32786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032787|132787|989898|1|9999032787|MR|Test|E|Lead 32787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032788|132788|989898|1|9999032788|MR|Test|E|Lead 32788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032789|132789|989898|1|9999032789|MR|Test|E|Lead 32789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032790|132790|989898|1|9999032790|MR|Test|E|Lead 32790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032791|132791|989898|1|9999032791|MR|Test|E|Lead 32791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032792|132792|989898|1|9999032792|MR|Test|E|Lead 32792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032793|132793|989898|1|9999032793|MR|Test|E|Lead 32793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032794|132794|989898|1|9999032794|MR|Test|E|Lead 32794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032795|132795|989898|1|9999032795|MR|Test|E|Lead 32795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032796|132796|989898|1|9999032796|MR|Test|E|Lead 32796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032797|132797|989898|1|9999032797|MR|Test|E|Lead 32797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032798|132798|989898|1|9999032798|MR|Test|E|Lead 32798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032799|132799|989898|1|9999032799|MR|Test|E|Lead 32799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032800|132800|989898|1|9999032800|MR|Test|E|Lead 32800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032801|132801|989898|1|9999032801|MR|Test|E|Lead 32801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032802|132802|989898|1|9999032802|MR|Test|E|Lead 32802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032803|132803|989898|1|9999032803|MR|Test|E|Lead 32803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032804|132804|989898|1|9999032804|MR|Test|E|Lead 32804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032805|132805|989898|1|9999032805|MR|Test|E|Lead 32805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032806|132806|989898|1|9999032806|MR|Test|E|Lead 32806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032807|132807|989898|1|9999032807|MR|Test|E|Lead 32807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032808|132808|989898|1|9999032808|MR|Test|E|Lead 32808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032809|132809|989898|1|9999032809|MR|Test|E|Lead 32809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032810|132810|989898|1|9999032810|MR|Test|E|Lead 32810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032811|132811|989898|1|9999032811|MR|Test|E|Lead 32811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032812|132812|989898|1|9999032812|MR|Test|E|Lead 32812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032813|132813|989898|1|9999032813|MR|Test|E|Lead 32813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032814|132814|989898|1|9999032814|MR|Test|E|Lead 32814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032815|132815|989898|1|9999032815|MR|Test|E|Lead 32815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032816|132816|989898|1|9999032816|MR|Test|E|Lead 32816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032817|132817|989898|1|9999032817|MR|Test|E|Lead 32817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032818|132818|989898|1|9999032818|MR|Test|E|Lead 32818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032819|132819|989898|1|9999032819|MR|Test|E|Lead 32819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032820|132820|989898|1|9999032820|MR|Test|E|Lead 32820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032821|132821|989898|1|9999032821|MR|Test|E|Lead 32821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032822|132822|989898|1|9999032822|MR|Test|E|Lead 32822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032823|132823|989898|1|9999032823|MR|Test|E|Lead 32823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032824|132824|989898|1|9999032824|MR|Test|E|Lead 32824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032825|132825|989898|1|9999032825|MR|Test|E|Lead 32825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032826|132826|989898|1|9999032826|MR|Test|E|Lead 32826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032827|132827|989898|1|9999032827|MR|Test|E|Lead 32827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032828|132828|989898|1|9999032828|MR|Test|E|Lead 32828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032829|132829|989898|1|9999032829|MR|Test|E|Lead 32829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032830|132830|989898|1|9999032830|MR|Test|E|Lead 32830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032831|132831|989898|1|9999032831|MR|Test|E|Lead 32831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032832|132832|989898|1|9999032832|MR|Test|E|Lead 32832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032833|132833|989898|1|9999032833|MR|Test|E|Lead 32833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032834|132834|989898|1|9999032834|MR|Test|E|Lead 32834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032835|132835|989898|1|9999032835|MR|Test|E|Lead 32835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032836|132836|989898|1|9999032836|MR|Test|E|Lead 32836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032837|132837|989898|1|9999032837|MR|Test|E|Lead 32837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032838|132838|989898|1|9999032838|MR|Test|E|Lead 32838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032839|132839|989898|1|9999032839|MR|Test|E|Lead 32839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032840|132840|989898|1|9999032840|MR|Test|E|Lead 32840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032841|132841|989898|1|9999032841|MR|Test|E|Lead 32841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032842|132842|989898|1|9999032842|MR|Test|E|Lead 32842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032843|132843|989898|1|9999032843|MR|Test|E|Lead 32843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032844|132844|989898|1|9999032844|MR|Test|E|Lead 32844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032845|132845|989898|1|9999032845|MR|Test|E|Lead 32845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032846|132846|989898|1|9999032846|MR|Test|E|Lead 32846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032847|132847|989898|1|9999032847|MR|Test|E|Lead 32847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032848|132848|989898|1|9999032848|MR|Test|E|Lead 32848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032849|132849|989898|1|9999032849|MR|Test|E|Lead 32849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032850|132850|989898|1|9999032850|MR|Test|E|Lead 32850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032851|132851|989898|1|9999032851|MR|Test|E|Lead 32851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032852|132852|989898|1|9999032852|MR|Test|E|Lead 32852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032853|132853|989898|1|9999032853|MR|Test|E|Lead 32853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032854|132854|989898|1|9999032854|MR|Test|E|Lead 32854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032855|132855|989898|1|9999032855|MR|Test|E|Lead 32855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032856|132856|989898|1|9999032856|MR|Test|E|Lead 32856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032857|132857|989898|1|9999032857|MR|Test|E|Lead 32857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032858|132858|989898|1|9999032858|MR|Test|E|Lead 32858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032859|132859|989898|1|9999032859|MR|Test|E|Lead 32859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032860|132860|989898|1|9999032860|MR|Test|E|Lead 32860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032861|132861|989898|1|9999032861|MR|Test|E|Lead 32861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032862|132862|989898|1|9999032862|MR|Test|E|Lead 32862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032863|132863|989898|1|9999032863|MR|Test|E|Lead 32863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032864|132864|989898|1|9999032864|MR|Test|E|Lead 32864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032865|132865|989898|1|9999032865|MR|Test|E|Lead 32865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032866|132866|989898|1|9999032866|MR|Test|E|Lead 32866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032867|132867|989898|1|9999032867|MR|Test|E|Lead 32867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032868|132868|989898|1|9999032868|MR|Test|E|Lead 32868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032869|132869|989898|1|9999032869|MR|Test|E|Lead 32869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032870|132870|989898|1|9999032870|MR|Test|E|Lead 32870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032871|132871|989898|1|9999032871|MR|Test|E|Lead 32871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032872|132872|989898|1|9999032872|MR|Test|E|Lead 32872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032873|132873|989898|1|9999032873|MR|Test|E|Lead 32873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032874|132874|989898|1|9999032874|MR|Test|E|Lead 32874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032875|132875|989898|1|9999032875|MR|Test|E|Lead 32875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032876|132876|989898|1|9999032876|MR|Test|E|Lead 32876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032877|132877|989898|1|9999032877|MR|Test|E|Lead 32877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032878|132878|989898|1|9999032878|MR|Test|E|Lead 32878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032879|132879|989898|1|9999032879|MR|Test|E|Lead 32879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032880|132880|989898|1|9999032880|MR|Test|E|Lead 32880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032881|132881|989898|1|9999032881|MR|Test|E|Lead 32881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032882|132882|989898|1|9999032882|MR|Test|E|Lead 32882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032883|132883|989898|1|9999032883|MR|Test|E|Lead 32883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032884|132884|989898|1|9999032884|MR|Test|E|Lead 32884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032885|132885|989898|1|9999032885|MR|Test|E|Lead 32885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032886|132886|989898|1|9999032886|MR|Test|E|Lead 32886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032887|132887|989898|1|9999032887|MR|Test|E|Lead 32887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032888|132888|989898|1|9999032888|MR|Test|E|Lead 32888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032889|132889|989898|1|9999032889|MR|Test|E|Lead 32889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032890|132890|989898|1|9999032890|MR|Test|E|Lead 32890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032891|132891|989898|1|9999032891|MR|Test|E|Lead 32891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032892|132892|989898|1|9999032892|MR|Test|E|Lead 32892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032893|132893|989898|1|9999032893|MR|Test|E|Lead 32893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032894|132894|989898|1|9999032894|MR|Test|E|Lead 32894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032895|132895|989898|1|9999032895|MR|Test|E|Lead 32895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032896|132896|989898|1|9999032896|MR|Test|E|Lead 32896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032897|132897|989898|1|9999032897|MR|Test|E|Lead 32897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032898|132898|989898|1|9999032898|MR|Test|E|Lead 32898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032899|132899|989898|1|9999032899|MR|Test|E|Lead 32899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032900|132900|989898|1|9999032900|MR|Test|E|Lead 32900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032901|132901|989898|1|9999032901|MR|Test|E|Lead 32901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032902|132902|989898|1|9999032902|MR|Test|E|Lead 32902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032903|132903|989898|1|9999032903|MR|Test|E|Lead 32903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032904|132904|989898|1|9999032904|MR|Test|E|Lead 32904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032905|132905|989898|1|9999032905|MR|Test|E|Lead 32905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032906|132906|989898|1|9999032906|MR|Test|E|Lead 32906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032907|132907|989898|1|9999032907|MR|Test|E|Lead 32907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032908|132908|989898|1|9999032908|MR|Test|E|Lead 32908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032909|132909|989898|1|9999032909|MR|Test|E|Lead 32909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032910|132910|989898|1|9999032910|MR|Test|E|Lead 32910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032911|132911|989898|1|9999032911|MR|Test|E|Lead 32911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032912|132912|989898|1|9999032912|MR|Test|E|Lead 32912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032913|132913|989898|1|9999032913|MR|Test|E|Lead 32913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032914|132914|989898|1|9999032914|MR|Test|E|Lead 32914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032915|132915|989898|1|9999032915|MR|Test|E|Lead 32915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032916|132916|989898|1|9999032916|MR|Test|E|Lead 32916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032917|132917|989898|1|9999032917|MR|Test|E|Lead 32917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032918|132918|989898|1|9999032918|MR|Test|E|Lead 32918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032919|132919|989898|1|9999032919|MR|Test|E|Lead 32919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032920|132920|989898|1|9999032920|MR|Test|E|Lead 32920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032921|132921|989898|1|9999032921|MR|Test|E|Lead 32921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032922|132922|989898|1|9999032922|MR|Test|E|Lead 32922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032923|132923|989898|1|9999032923|MR|Test|E|Lead 32923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032924|132924|989898|1|9999032924|MR|Test|E|Lead 32924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032925|132925|989898|1|9999032925|MR|Test|E|Lead 32925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032926|132926|989898|1|9999032926|MR|Test|E|Lead 32926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032927|132927|989898|1|9999032927|MR|Test|E|Lead 32927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032928|132928|989898|1|9999032928|MR|Test|E|Lead 32928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032929|132929|989898|1|9999032929|MR|Test|E|Lead 32929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032930|132930|989898|1|9999032930|MR|Test|E|Lead 32930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032931|132931|989898|1|9999032931|MR|Test|E|Lead 32931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032932|132932|989898|1|9999032932|MR|Test|E|Lead 32932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032933|132933|989898|1|9999032933|MR|Test|E|Lead 32933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032934|132934|989898|1|9999032934|MR|Test|E|Lead 32934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032935|132935|989898|1|9999032935|MR|Test|E|Lead 32935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032936|132936|989898|1|9999032936|MR|Test|E|Lead 32936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032937|132937|989898|1|9999032937|MR|Test|E|Lead 32937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032938|132938|989898|1|9999032938|MR|Test|E|Lead 32938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032939|132939|989898|1|9999032939|MR|Test|E|Lead 32939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032940|132940|989898|1|9999032940|MR|Test|E|Lead 32940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032941|132941|989898|1|9999032941|MR|Test|E|Lead 32941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032942|132942|989898|1|9999032942|MR|Test|E|Lead 32942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032943|132943|989898|1|9999032943|MR|Test|E|Lead 32943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032944|132944|989898|1|9999032944|MR|Test|E|Lead 32944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032945|132945|989898|1|9999032945|MR|Test|E|Lead 32945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032946|132946|989898|1|9999032946|MR|Test|E|Lead 32946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032947|132947|989898|1|9999032947|MR|Test|E|Lead 32947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032948|132948|989898|1|9999032948|MR|Test|E|Lead 32948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032949|132949|989898|1|9999032949|MR|Test|E|Lead 32949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032950|132950|989898|1|9999032950|MR|Test|E|Lead 32950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032951|132951|989898|1|9999032951|MR|Test|E|Lead 32951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032952|132952|989898|1|9999032952|MR|Test|E|Lead 32952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032953|132953|989898|1|9999032953|MR|Test|E|Lead 32953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032954|132954|989898|1|9999032954|MR|Test|E|Lead 32954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032955|132955|989898|1|9999032955|MR|Test|E|Lead 32955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032956|132956|989898|1|9999032956|MR|Test|E|Lead 32956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032957|132957|989898|1|9999032957|MR|Test|E|Lead 32957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032958|132958|989898|1|9999032958|MR|Test|E|Lead 32958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032959|132959|989898|1|9999032959|MR|Test|E|Lead 32959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032960|132960|989898|1|9999032960|MR|Test|E|Lead 32960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032961|132961|989898|1|9999032961|MR|Test|E|Lead 32961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032962|132962|989898|1|9999032962|MR|Test|E|Lead 32962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032963|132963|989898|1|9999032963|MR|Test|E|Lead 32963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032964|132964|989898|1|9999032964|MR|Test|E|Lead 32964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032965|132965|989898|1|9999032965|MR|Test|E|Lead 32965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032966|132966|989898|1|9999032966|MR|Test|E|Lead 32966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032967|132967|989898|1|9999032967|MR|Test|E|Lead 32967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032968|132968|989898|1|9999032968|MR|Test|E|Lead 32968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032969|132969|989898|1|9999032969|MR|Test|E|Lead 32969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032970|132970|989898|1|9999032970|MR|Test|E|Lead 32970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032971|132971|989898|1|9999032971|MR|Test|E|Lead 32971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032972|132972|989898|1|9999032972|MR|Test|E|Lead 32972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032973|132973|989898|1|9999032973|MR|Test|E|Lead 32973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032974|132974|989898|1|9999032974|MR|Test|E|Lead 32974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032975|132975|989898|1|9999032975|MR|Test|E|Lead 32975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032976|132976|989898|1|9999032976|MR|Test|E|Lead 32976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032977|132977|989898|1|9999032977|MR|Test|E|Lead 32977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032978|132978|989898|1|9999032978|MR|Test|E|Lead 32978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032979|132979|989898|1|9999032979|MR|Test|E|Lead 32979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032980|132980|989898|1|9999032980|MR|Test|E|Lead 32980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032981|132981|989898|1|9999032981|MR|Test|E|Lead 32981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032982|132982|989898|1|9999032982|MR|Test|E|Lead 32982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032983|132983|989898|1|9999032983|MR|Test|E|Lead 32983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032984|132984|989898|1|9999032984|MR|Test|E|Lead 32984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032985|132985|989898|1|9999032985|MR|Test|E|Lead 32985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032986|132986|989898|1|9999032986|MR|Test|E|Lead 32986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032987|132987|989898|1|9999032987|MR|Test|E|Lead 32987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032988|132988|989898|1|9999032988|MR|Test|E|Lead 32988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032989|132989|989898|1|9999032989|MR|Test|E|Lead 32989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032990|132990|989898|1|9999032990|MR|Test|E|Lead 32990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032991|132991|989898|1|9999032991|MR|Test|E|Lead 32991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032992|132992|989898|1|9999032992|MR|Test|E|Lead 32992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032993|132993|989898|1|9999032993|MR|Test|E|Lead 32993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032994|132994|989898|1|9999032994|MR|Test|E|Lead 32994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032995|132995|989898|1|9999032995|MR|Test|E|Lead 32995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032996|132996|989898|1|9999032996|MR|Test|E|Lead 32996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032997|132997|989898|1|9999032997|MR|Test|E|Lead 32997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032998|132998|989898|1|9999032998|MR|Test|E|Lead 32998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1032999|132999|989898|1|9999032999|MR|Test|E|Lead 32999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033000|133000|989898|1|9999033000|MR|Test|E|Lead 33000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033001|133001|989898|1|9999033001|MR|Test|E|Lead 33001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033002|133002|989898|1|9999033002|MR|Test|E|Lead 33002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033003|133003|989898|1|9999033003|MR|Test|E|Lead 33003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033004|133004|989898|1|9999033004|MR|Test|E|Lead 33004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033005|133005|989898|1|9999033005|MR|Test|E|Lead 33005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033006|133006|989898|1|9999033006|MR|Test|E|Lead 33006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033007|133007|989898|1|9999033007|MR|Test|E|Lead 33007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033008|133008|989898|1|9999033008|MR|Test|E|Lead 33008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033009|133009|989898|1|9999033009|MR|Test|E|Lead 33009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033010|133010|989898|1|9999033010|MR|Test|E|Lead 33010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033011|133011|989898|1|9999033011|MR|Test|E|Lead 33011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033012|133012|989898|1|9999033012|MR|Test|E|Lead 33012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033013|133013|989898|1|9999033013|MR|Test|E|Lead 33013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033014|133014|989898|1|9999033014|MR|Test|E|Lead 33014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033015|133015|989898|1|9999033015|MR|Test|E|Lead 33015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033016|133016|989898|1|9999033016|MR|Test|E|Lead 33016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033017|133017|989898|1|9999033017|MR|Test|E|Lead 33017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033018|133018|989898|1|9999033018|MR|Test|E|Lead 33018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033019|133019|989898|1|9999033019|MR|Test|E|Lead 33019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033020|133020|989898|1|9999033020|MR|Test|E|Lead 33020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033021|133021|989898|1|9999033021|MR|Test|E|Lead 33021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033022|133022|989898|1|9999033022|MR|Test|E|Lead 33022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033023|133023|989898|1|9999033023|MR|Test|E|Lead 33023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033024|133024|989898|1|9999033024|MR|Test|E|Lead 33024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033025|133025|989898|1|9999033025|MR|Test|E|Lead 33025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033026|133026|989898|1|9999033026|MR|Test|E|Lead 33026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033027|133027|989898|1|9999033027|MR|Test|E|Lead 33027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033028|133028|989898|1|9999033028|MR|Test|E|Lead 33028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033029|133029|989898|1|9999033029|MR|Test|E|Lead 33029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033030|133030|989898|1|9999033030|MR|Test|E|Lead 33030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033031|133031|989898|1|9999033031|MR|Test|E|Lead 33031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033032|133032|989898|1|9999033032|MR|Test|E|Lead 33032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033033|133033|989898|1|9999033033|MR|Test|E|Lead 33033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033034|133034|989898|1|9999033034|MR|Test|E|Lead 33034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033035|133035|989898|1|9999033035|MR|Test|E|Lead 33035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033036|133036|989898|1|9999033036|MR|Test|E|Lead 33036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033037|133037|989898|1|9999033037|MR|Test|E|Lead 33037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033038|133038|989898|1|9999033038|MR|Test|E|Lead 33038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033039|133039|989898|1|9999033039|MR|Test|E|Lead 33039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033040|133040|989898|1|9999033040|MR|Test|E|Lead 33040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033041|133041|989898|1|9999033041|MR|Test|E|Lead 33041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033042|133042|989898|1|9999033042|MR|Test|E|Lead 33042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033043|133043|989898|1|9999033043|MR|Test|E|Lead 33043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033044|133044|989898|1|9999033044|MR|Test|E|Lead 33044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033045|133045|989898|1|9999033045|MR|Test|E|Lead 33045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033046|133046|989898|1|9999033046|MR|Test|E|Lead 33046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033047|133047|989898|1|9999033047|MR|Test|E|Lead 33047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033048|133048|989898|1|9999033048|MR|Test|E|Lead 33048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033049|133049|989898|1|9999033049|MR|Test|E|Lead 33049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033050|133050|989898|1|9999033050|MR|Test|E|Lead 33050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033051|133051|989898|1|9999033051|MR|Test|E|Lead 33051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033052|133052|989898|1|9999033052|MR|Test|E|Lead 33052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033053|133053|989898|1|9999033053|MR|Test|E|Lead 33053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033054|133054|989898|1|9999033054|MR|Test|E|Lead 33054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033055|133055|989898|1|9999033055|MR|Test|E|Lead 33055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033056|133056|989898|1|9999033056|MR|Test|E|Lead 33056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033057|133057|989898|1|9999033057|MR|Test|E|Lead 33057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033058|133058|989898|1|9999033058|MR|Test|E|Lead 33058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033059|133059|989898|1|9999033059|MR|Test|E|Lead 33059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033060|133060|989898|1|9999033060|MR|Test|E|Lead 33060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033061|133061|989898|1|9999033061|MR|Test|E|Lead 33061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033062|133062|989898|1|9999033062|MR|Test|E|Lead 33062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033063|133063|989898|1|9999033063|MR|Test|E|Lead 33063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033064|133064|989898|1|9999033064|MR|Test|E|Lead 33064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033065|133065|989898|1|9999033065|MR|Test|E|Lead 33065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033066|133066|989898|1|9999033066|MR|Test|E|Lead 33066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033067|133067|989898|1|9999033067|MR|Test|E|Lead 33067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033068|133068|989898|1|9999033068|MR|Test|E|Lead 33068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033069|133069|989898|1|9999033069|MR|Test|E|Lead 33069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033070|133070|989898|1|9999033070|MR|Test|E|Lead 33070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033071|133071|989898|1|9999033071|MR|Test|E|Lead 33071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033072|133072|989898|1|9999033072|MR|Test|E|Lead 33072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033073|133073|989898|1|9999033073|MR|Test|E|Lead 33073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033074|133074|989898|1|9999033074|MR|Test|E|Lead 33074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033075|133075|989898|1|9999033075|MR|Test|E|Lead 33075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033076|133076|989898|1|9999033076|MR|Test|E|Lead 33076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033077|133077|989898|1|9999033077|MR|Test|E|Lead 33077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033078|133078|989898|1|9999033078|MR|Test|E|Lead 33078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033079|133079|989898|1|9999033079|MR|Test|E|Lead 33079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033080|133080|989898|1|9999033080|MR|Test|E|Lead 33080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033081|133081|989898|1|9999033081|MR|Test|E|Lead 33081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033082|133082|989898|1|9999033082|MR|Test|E|Lead 33082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033083|133083|989898|1|9999033083|MR|Test|E|Lead 33083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033084|133084|989898|1|9999033084|MR|Test|E|Lead 33084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033085|133085|989898|1|9999033085|MR|Test|E|Lead 33085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033086|133086|989898|1|9999033086|MR|Test|E|Lead 33086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033087|133087|989898|1|9999033087|MR|Test|E|Lead 33087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033088|133088|989898|1|9999033088|MR|Test|E|Lead 33088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033089|133089|989898|1|9999033089|MR|Test|E|Lead 33089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033090|133090|989898|1|9999033090|MR|Test|E|Lead 33090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033091|133091|989898|1|9999033091|MR|Test|E|Lead 33091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033092|133092|989898|1|9999033092|MR|Test|E|Lead 33092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033093|133093|989898|1|9999033093|MR|Test|E|Lead 33093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033094|133094|989898|1|9999033094|MR|Test|E|Lead 33094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033095|133095|989898|1|9999033095|MR|Test|E|Lead 33095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033096|133096|989898|1|9999033096|MR|Test|E|Lead 33096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033097|133097|989898|1|9999033097|MR|Test|E|Lead 33097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033098|133098|989898|1|9999033098|MR|Test|E|Lead 33098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033099|133099|989898|1|9999033099|MR|Test|E|Lead 33099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033100|133100|989898|1|9999033100|MR|Test|E|Lead 33100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033101|133101|989898|1|9999033101|MR|Test|E|Lead 33101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033102|133102|989898|1|9999033102|MR|Test|E|Lead 33102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033103|133103|989898|1|9999033103|MR|Test|E|Lead 33103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033104|133104|989898|1|9999033104|MR|Test|E|Lead 33104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033105|133105|989898|1|9999033105|MR|Test|E|Lead 33105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033106|133106|989898|1|9999033106|MR|Test|E|Lead 33106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033107|133107|989898|1|9999033107|MR|Test|E|Lead 33107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033108|133108|989898|1|9999033108|MR|Test|E|Lead 33108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033109|133109|989898|1|9999033109|MR|Test|E|Lead 33109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033110|133110|989898|1|9999033110|MR|Test|E|Lead 33110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033111|133111|989898|1|9999033111|MR|Test|E|Lead 33111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033112|133112|989898|1|9999033112|MR|Test|E|Lead 33112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033113|133113|989898|1|9999033113|MR|Test|E|Lead 33113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033114|133114|989898|1|9999033114|MR|Test|E|Lead 33114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033115|133115|989898|1|9999033115|MR|Test|E|Lead 33115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033116|133116|989898|1|9999033116|MR|Test|E|Lead 33116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033117|133117|989898|1|9999033117|MR|Test|E|Lead 33117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033118|133118|989898|1|9999033118|MR|Test|E|Lead 33118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033119|133119|989898|1|9999033119|MR|Test|E|Lead 33119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033120|133120|989898|1|9999033120|MR|Test|E|Lead 33120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033121|133121|989898|1|9999033121|MR|Test|E|Lead 33121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033122|133122|989898|1|9999033122|MR|Test|E|Lead 33122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033123|133123|989898|1|9999033123|MR|Test|E|Lead 33123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033124|133124|989898|1|9999033124|MR|Test|E|Lead 33124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033125|133125|989898|1|9999033125|MR|Test|E|Lead 33125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033126|133126|989898|1|9999033126|MR|Test|E|Lead 33126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033127|133127|989898|1|9999033127|MR|Test|E|Lead 33127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033128|133128|989898|1|9999033128|MR|Test|E|Lead 33128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033129|133129|989898|1|9999033129|MR|Test|E|Lead 33129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033130|133130|989898|1|9999033130|MR|Test|E|Lead 33130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033131|133131|989898|1|9999033131|MR|Test|E|Lead 33131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033132|133132|989898|1|9999033132|MR|Test|E|Lead 33132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033133|133133|989898|1|9999033133|MR|Test|E|Lead 33133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033134|133134|989898|1|9999033134|MR|Test|E|Lead 33134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033135|133135|989898|1|9999033135|MR|Test|E|Lead 33135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033136|133136|989898|1|9999033136|MR|Test|E|Lead 33136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033137|133137|989898|1|9999033137|MR|Test|E|Lead 33137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033138|133138|989898|1|9999033138|MR|Test|E|Lead 33138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033139|133139|989898|1|9999033139|MR|Test|E|Lead 33139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033140|133140|989898|1|9999033140|MR|Test|E|Lead 33140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033141|133141|989898|1|9999033141|MR|Test|E|Lead 33141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033142|133142|989898|1|9999033142|MR|Test|E|Lead 33142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033143|133143|989898|1|9999033143|MR|Test|E|Lead 33143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033144|133144|989898|1|9999033144|MR|Test|E|Lead 33144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033145|133145|989898|1|9999033145|MR|Test|E|Lead 33145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033146|133146|989898|1|9999033146|MR|Test|E|Lead 33146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033147|133147|989898|1|9999033147|MR|Test|E|Lead 33147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033148|133148|989898|1|9999033148|MR|Test|E|Lead 33148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033149|133149|989898|1|9999033149|MR|Test|E|Lead 33149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033150|133150|989898|1|9999033150|MR|Test|E|Lead 33150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033151|133151|989898|1|9999033151|MR|Test|E|Lead 33151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033152|133152|989898|1|9999033152|MR|Test|E|Lead 33152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033153|133153|989898|1|9999033153|MR|Test|E|Lead 33153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033154|133154|989898|1|9999033154|MR|Test|E|Lead 33154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033155|133155|989898|1|9999033155|MR|Test|E|Lead 33155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033156|133156|989898|1|9999033156|MR|Test|E|Lead 33156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033157|133157|989898|1|9999033157|MR|Test|E|Lead 33157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033158|133158|989898|1|9999033158|MR|Test|E|Lead 33158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033159|133159|989898|1|9999033159|MR|Test|E|Lead 33159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033160|133160|989898|1|9999033160|MR|Test|E|Lead 33160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033161|133161|989898|1|9999033161|MR|Test|E|Lead 33161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033162|133162|989898|1|9999033162|MR|Test|E|Lead 33162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033163|133163|989898|1|9999033163|MR|Test|E|Lead 33163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033164|133164|989898|1|9999033164|MR|Test|E|Lead 33164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033165|133165|989898|1|9999033165|MR|Test|E|Lead 33165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033166|133166|989898|1|9999033166|MR|Test|E|Lead 33166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033167|133167|989898|1|9999033167|MR|Test|E|Lead 33167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033168|133168|989898|1|9999033168|MR|Test|E|Lead 33168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033169|133169|989898|1|9999033169|MR|Test|E|Lead 33169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033170|133170|989898|1|9999033170|MR|Test|E|Lead 33170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033171|133171|989898|1|9999033171|MR|Test|E|Lead 33171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033172|133172|989898|1|9999033172|MR|Test|E|Lead 33172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033173|133173|989898|1|9999033173|MR|Test|E|Lead 33173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033174|133174|989898|1|9999033174|MR|Test|E|Lead 33174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033175|133175|989898|1|9999033175|MR|Test|E|Lead 33175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033176|133176|989898|1|9999033176|MR|Test|E|Lead 33176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033177|133177|989898|1|9999033177|MR|Test|E|Lead 33177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033178|133178|989898|1|9999033178|MR|Test|E|Lead 33178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033179|133179|989898|1|9999033179|MR|Test|E|Lead 33179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033180|133180|989898|1|9999033180|MR|Test|E|Lead 33180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033181|133181|989898|1|9999033181|MR|Test|E|Lead 33181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033182|133182|989898|1|9999033182|MR|Test|E|Lead 33182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033183|133183|989898|1|9999033183|MR|Test|E|Lead 33183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033184|133184|989898|1|9999033184|MR|Test|E|Lead 33184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033185|133185|989898|1|9999033185|MR|Test|E|Lead 33185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033186|133186|989898|1|9999033186|MR|Test|E|Lead 33186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033187|133187|989898|1|9999033187|MR|Test|E|Lead 33187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033188|133188|989898|1|9999033188|MR|Test|E|Lead 33188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033189|133189|989898|1|9999033189|MR|Test|E|Lead 33189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033190|133190|989898|1|9999033190|MR|Test|E|Lead 33190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033191|133191|989898|1|9999033191|MR|Test|E|Lead 33191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033192|133192|989898|1|9999033192|MR|Test|E|Lead 33192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033193|133193|989898|1|9999033193|MR|Test|E|Lead 33193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033194|133194|989898|1|9999033194|MR|Test|E|Lead 33194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033195|133195|989898|1|9999033195|MR|Test|E|Lead 33195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033196|133196|989898|1|9999033196|MR|Test|E|Lead 33196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033197|133197|989898|1|9999033197|MR|Test|E|Lead 33197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033198|133198|989898|1|9999033198|MR|Test|E|Lead 33198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033199|133199|989898|1|9999033199|MR|Test|E|Lead 33199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033200|133200|989898|1|9999033200|MR|Test|E|Lead 33200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033201|133201|989898|1|9999033201|MR|Test|E|Lead 33201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033202|133202|989898|1|9999033202|MR|Test|E|Lead 33202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033203|133203|989898|1|9999033203|MR|Test|E|Lead 33203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033204|133204|989898|1|9999033204|MR|Test|E|Lead 33204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033205|133205|989898|1|9999033205|MR|Test|E|Lead 33205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033206|133206|989898|1|9999033206|MR|Test|E|Lead 33206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033207|133207|989898|1|9999033207|MR|Test|E|Lead 33207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033208|133208|989898|1|9999033208|MR|Test|E|Lead 33208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033209|133209|989898|1|9999033209|MR|Test|E|Lead 33209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033210|133210|989898|1|9999033210|MR|Test|E|Lead 33210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033211|133211|989898|1|9999033211|MR|Test|E|Lead 33211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033212|133212|989898|1|9999033212|MR|Test|E|Lead 33212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033213|133213|989898|1|9999033213|MR|Test|E|Lead 33213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033214|133214|989898|1|9999033214|MR|Test|E|Lead 33214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033215|133215|989898|1|9999033215|MR|Test|E|Lead 33215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033216|133216|989898|1|9999033216|MR|Test|E|Lead 33216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033217|133217|989898|1|9999033217|MR|Test|E|Lead 33217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033218|133218|989898|1|9999033218|MR|Test|E|Lead 33218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033219|133219|989898|1|9999033219|MR|Test|E|Lead 33219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033220|133220|989898|1|9999033220|MR|Test|E|Lead 33220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033221|133221|989898|1|9999033221|MR|Test|E|Lead 33221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033222|133222|989898|1|9999033222|MR|Test|E|Lead 33222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033223|133223|989898|1|9999033223|MR|Test|E|Lead 33223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033224|133224|989898|1|9999033224|MR|Test|E|Lead 33224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033225|133225|989898|1|9999033225|MR|Test|E|Lead 33225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033226|133226|989898|1|9999033226|MR|Test|E|Lead 33226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033227|133227|989898|1|9999033227|MR|Test|E|Lead 33227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033228|133228|989898|1|9999033228|MR|Test|E|Lead 33228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033229|133229|989898|1|9999033229|MR|Test|E|Lead 33229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033230|133230|989898|1|9999033230|MR|Test|E|Lead 33230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033231|133231|989898|1|9999033231|MR|Test|E|Lead 33231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033232|133232|989898|1|9999033232|MR|Test|E|Lead 33232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033233|133233|989898|1|9999033233|MR|Test|E|Lead 33233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033234|133234|989898|1|9999033234|MR|Test|E|Lead 33234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033235|133235|989898|1|9999033235|MR|Test|E|Lead 33235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033236|133236|989898|1|9999033236|MR|Test|E|Lead 33236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033237|133237|989898|1|9999033237|MR|Test|E|Lead 33237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033238|133238|989898|1|9999033238|MR|Test|E|Lead 33238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033239|133239|989898|1|9999033239|MR|Test|E|Lead 33239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033240|133240|989898|1|9999033240|MR|Test|E|Lead 33240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033241|133241|989898|1|9999033241|MR|Test|E|Lead 33241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033242|133242|989898|1|9999033242|MR|Test|E|Lead 33242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033243|133243|989898|1|9999033243|MR|Test|E|Lead 33243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033244|133244|989898|1|9999033244|MR|Test|E|Lead 33244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033245|133245|989898|1|9999033245|MR|Test|E|Lead 33245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033246|133246|989898|1|9999033246|MR|Test|E|Lead 33246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033247|133247|989898|1|9999033247|MR|Test|E|Lead 33247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033248|133248|989898|1|9999033248|MR|Test|E|Lead 33248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033249|133249|989898|1|9999033249|MR|Test|E|Lead 33249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033250|133250|989898|1|9999033250|MR|Test|E|Lead 33250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033251|133251|989898|1|9999033251|MR|Test|E|Lead 33251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033252|133252|989898|1|9999033252|MR|Test|E|Lead 33252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033253|133253|989898|1|9999033253|MR|Test|E|Lead 33253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033254|133254|989898|1|9999033254|MR|Test|E|Lead 33254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033255|133255|989898|1|9999033255|MR|Test|E|Lead 33255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033256|133256|989898|1|9999033256|MR|Test|E|Lead 33256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033257|133257|989898|1|9999033257|MR|Test|E|Lead 33257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033258|133258|989898|1|9999033258|MR|Test|E|Lead 33258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033259|133259|989898|1|9999033259|MR|Test|E|Lead 33259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033260|133260|989898|1|9999033260|MR|Test|E|Lead 33260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033261|133261|989898|1|9999033261|MR|Test|E|Lead 33261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033262|133262|989898|1|9999033262|MR|Test|E|Lead 33262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033263|133263|989898|1|9999033263|MR|Test|E|Lead 33263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033264|133264|989898|1|9999033264|MR|Test|E|Lead 33264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033265|133265|989898|1|9999033265|MR|Test|E|Lead 33265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033266|133266|989898|1|9999033266|MR|Test|E|Lead 33266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033267|133267|989898|1|9999033267|MR|Test|E|Lead 33267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033268|133268|989898|1|9999033268|MR|Test|E|Lead 33268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033269|133269|989898|1|9999033269|MR|Test|E|Lead 33269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033270|133270|989898|1|9999033270|MR|Test|E|Lead 33270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033271|133271|989898|1|9999033271|MR|Test|E|Lead 33271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033272|133272|989898|1|9999033272|MR|Test|E|Lead 33272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033273|133273|989898|1|9999033273|MR|Test|E|Lead 33273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033274|133274|989898|1|9999033274|MR|Test|E|Lead 33274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033275|133275|989898|1|9999033275|MR|Test|E|Lead 33275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033276|133276|989898|1|9999033276|MR|Test|E|Lead 33276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033277|133277|989898|1|9999033277|MR|Test|E|Lead 33277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033278|133278|989898|1|9999033278|MR|Test|E|Lead 33278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033279|133279|989898|1|9999033279|MR|Test|E|Lead 33279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033280|133280|989898|1|9999033280|MR|Test|E|Lead 33280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033281|133281|989898|1|9999033281|MR|Test|E|Lead 33281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033282|133282|989898|1|9999033282|MR|Test|E|Lead 33282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033283|133283|989898|1|9999033283|MR|Test|E|Lead 33283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033284|133284|989898|1|9999033284|MR|Test|E|Lead 33284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033285|133285|989898|1|9999033285|MR|Test|E|Lead 33285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033286|133286|989898|1|9999033286|MR|Test|E|Lead 33286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033287|133287|989898|1|9999033287|MR|Test|E|Lead 33287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033288|133288|989898|1|9999033288|MR|Test|E|Lead 33288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033289|133289|989898|1|9999033289|MR|Test|E|Lead 33289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033290|133290|989898|1|9999033290|MR|Test|E|Lead 33290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033291|133291|989898|1|9999033291|MR|Test|E|Lead 33291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033292|133292|989898|1|9999033292|MR|Test|E|Lead 33292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033293|133293|989898|1|9999033293|MR|Test|E|Lead 33293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033294|133294|989898|1|9999033294|MR|Test|E|Lead 33294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033295|133295|989898|1|9999033295|MR|Test|E|Lead 33295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033296|133296|989898|1|9999033296|MR|Test|E|Lead 33296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033297|133297|989898|1|9999033297|MR|Test|E|Lead 33297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033298|133298|989898|1|9999033298|MR|Test|E|Lead 33298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033299|133299|989898|1|9999033299|MR|Test|E|Lead 33299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033300|133300|989898|1|9999033300|MR|Test|E|Lead 33300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033301|133301|989898|1|9999033301|MR|Test|E|Lead 33301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033302|133302|989898|1|9999033302|MR|Test|E|Lead 33302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033303|133303|989898|1|9999033303|MR|Test|E|Lead 33303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033304|133304|989898|1|9999033304|MR|Test|E|Lead 33304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033305|133305|989898|1|9999033305|MR|Test|E|Lead 33305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033306|133306|989898|1|9999033306|MR|Test|E|Lead 33306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033307|133307|989898|1|9999033307|MR|Test|E|Lead 33307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033308|133308|989898|1|9999033308|MR|Test|E|Lead 33308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033309|133309|989898|1|9999033309|MR|Test|E|Lead 33309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033310|133310|989898|1|9999033310|MR|Test|E|Lead 33310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033311|133311|989898|1|9999033311|MR|Test|E|Lead 33311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033312|133312|989898|1|9999033312|MR|Test|E|Lead 33312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033313|133313|989898|1|9999033313|MR|Test|E|Lead 33313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033314|133314|989898|1|9999033314|MR|Test|E|Lead 33314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033315|133315|989898|1|9999033315|MR|Test|E|Lead 33315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033316|133316|989898|1|9999033316|MR|Test|E|Lead 33316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033317|133317|989898|1|9999033317|MR|Test|E|Lead 33317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033318|133318|989898|1|9999033318|MR|Test|E|Lead 33318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033319|133319|989898|1|9999033319|MR|Test|E|Lead 33319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033320|133320|989898|1|9999033320|MR|Test|E|Lead 33320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033321|133321|989898|1|9999033321|MR|Test|E|Lead 33321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033322|133322|989898|1|9999033322|MR|Test|E|Lead 33322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033323|133323|989898|1|9999033323|MR|Test|E|Lead 33323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033324|133324|989898|1|9999033324|MR|Test|E|Lead 33324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033325|133325|989898|1|9999033325|MR|Test|E|Lead 33325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033326|133326|989898|1|9999033326|MR|Test|E|Lead 33326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033327|133327|989898|1|9999033327|MR|Test|E|Lead 33327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033328|133328|989898|1|9999033328|MR|Test|E|Lead 33328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033329|133329|989898|1|9999033329|MR|Test|E|Lead 33329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033330|133330|989898|1|9999033330|MR|Test|E|Lead 33330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033331|133331|989898|1|9999033331|MR|Test|E|Lead 33331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033332|133332|989898|1|9999033332|MR|Test|E|Lead 33332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033333|133333|989898|1|9999033333|MR|Test|E|Lead 33333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033334|133334|989898|1|9999033334|MR|Test|E|Lead 33334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033335|133335|989898|1|9999033335|MR|Test|E|Lead 33335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033336|133336|989898|1|9999033336|MR|Test|E|Lead 33336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033337|133337|989898|1|9999033337|MR|Test|E|Lead 33337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033338|133338|989898|1|9999033338|MR|Test|E|Lead 33338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033339|133339|989898|1|9999033339|MR|Test|E|Lead 33339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033340|133340|989898|1|9999033340|MR|Test|E|Lead 33340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033341|133341|989898|1|9999033341|MR|Test|E|Lead 33341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033342|133342|989898|1|9999033342|MR|Test|E|Lead 33342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033343|133343|989898|1|9999033343|MR|Test|E|Lead 33343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033344|133344|989898|1|9999033344|MR|Test|E|Lead 33344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033345|133345|989898|1|9999033345|MR|Test|E|Lead 33345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033346|133346|989898|1|9999033346|MR|Test|E|Lead 33346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033347|133347|989898|1|9999033347|MR|Test|E|Lead 33347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033348|133348|989898|1|9999033348|MR|Test|E|Lead 33348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033349|133349|989898|1|9999033349|MR|Test|E|Lead 33349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033350|133350|989898|1|9999033350|MR|Test|E|Lead 33350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033351|133351|989898|1|9999033351|MR|Test|E|Lead 33351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033352|133352|989898|1|9999033352|MR|Test|E|Lead 33352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033353|133353|989898|1|9999033353|MR|Test|E|Lead 33353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033354|133354|989898|1|9999033354|MR|Test|E|Lead 33354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033355|133355|989898|1|9999033355|MR|Test|E|Lead 33355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033356|133356|989898|1|9999033356|MR|Test|E|Lead 33356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033357|133357|989898|1|9999033357|MR|Test|E|Lead 33357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033358|133358|989898|1|9999033358|MR|Test|E|Lead 33358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033359|133359|989898|1|9999033359|MR|Test|E|Lead 33359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033360|133360|989898|1|9999033360|MR|Test|E|Lead 33360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033361|133361|989898|1|9999033361|MR|Test|E|Lead 33361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033362|133362|989898|1|9999033362|MR|Test|E|Lead 33362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033363|133363|989898|1|9999033363|MR|Test|E|Lead 33363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033364|133364|989898|1|9999033364|MR|Test|E|Lead 33364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033365|133365|989898|1|9999033365|MR|Test|E|Lead 33365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033366|133366|989898|1|9999033366|MR|Test|E|Lead 33366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033367|133367|989898|1|9999033367|MR|Test|E|Lead 33367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033368|133368|989898|1|9999033368|MR|Test|E|Lead 33368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033369|133369|989898|1|9999033369|MR|Test|E|Lead 33369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033370|133370|989898|1|9999033370|MR|Test|E|Lead 33370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033371|133371|989898|1|9999033371|MR|Test|E|Lead 33371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033372|133372|989898|1|9999033372|MR|Test|E|Lead 33372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033373|133373|989898|1|9999033373|MR|Test|E|Lead 33373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033374|133374|989898|1|9999033374|MR|Test|E|Lead 33374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033375|133375|989898|1|9999033375|MR|Test|E|Lead 33375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033376|133376|989898|1|9999033376|MR|Test|E|Lead 33376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033377|133377|989898|1|9999033377|MR|Test|E|Lead 33377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033378|133378|989898|1|9999033378|MR|Test|E|Lead 33378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033379|133379|989898|1|9999033379|MR|Test|E|Lead 33379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033380|133380|989898|1|9999033380|MR|Test|E|Lead 33380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033381|133381|989898|1|9999033381|MR|Test|E|Lead 33381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033382|133382|989898|1|9999033382|MR|Test|E|Lead 33382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033383|133383|989898|1|9999033383|MR|Test|E|Lead 33383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033384|133384|989898|1|9999033384|MR|Test|E|Lead 33384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033385|133385|989898|1|9999033385|MR|Test|E|Lead 33385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033386|133386|989898|1|9999033386|MR|Test|E|Lead 33386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033387|133387|989898|1|9999033387|MR|Test|E|Lead 33387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033388|133388|989898|1|9999033388|MR|Test|E|Lead 33388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033389|133389|989898|1|9999033389|MR|Test|E|Lead 33389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033390|133390|989898|1|9999033390|MR|Test|E|Lead 33390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033391|133391|989898|1|9999033391|MR|Test|E|Lead 33391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033392|133392|989898|1|9999033392|MR|Test|E|Lead 33392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033393|133393|989898|1|9999033393|MR|Test|E|Lead 33393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033394|133394|989898|1|9999033394|MR|Test|E|Lead 33394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033395|133395|989898|1|9999033395|MR|Test|E|Lead 33395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033396|133396|989898|1|9999033396|MR|Test|E|Lead 33396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033397|133397|989898|1|9999033397|MR|Test|E|Lead 33397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033398|133398|989898|1|9999033398|MR|Test|E|Lead 33398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033399|133399|989898|1|9999033399|MR|Test|E|Lead 33399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033400|133400|989898|1|9999033400|MR|Test|E|Lead 33400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033401|133401|989898|1|9999033401|MR|Test|E|Lead 33401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033402|133402|989898|1|9999033402|MR|Test|E|Lead 33402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033403|133403|989898|1|9999033403|MR|Test|E|Lead 33403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033404|133404|989898|1|9999033404|MR|Test|E|Lead 33404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033405|133405|989898|1|9999033405|MR|Test|E|Lead 33405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033406|133406|989898|1|9999033406|MR|Test|E|Lead 33406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033407|133407|989898|1|9999033407|MR|Test|E|Lead 33407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033408|133408|989898|1|9999033408|MR|Test|E|Lead 33408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033409|133409|989898|1|9999033409|MR|Test|E|Lead 33409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033410|133410|989898|1|9999033410|MR|Test|E|Lead 33410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033411|133411|989898|1|9999033411|MR|Test|E|Lead 33411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033412|133412|989898|1|9999033412|MR|Test|E|Lead 33412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033413|133413|989898|1|9999033413|MR|Test|E|Lead 33413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033414|133414|989898|1|9999033414|MR|Test|E|Lead 33414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033415|133415|989898|1|9999033415|MR|Test|E|Lead 33415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033416|133416|989898|1|9999033416|MR|Test|E|Lead 33416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033417|133417|989898|1|9999033417|MR|Test|E|Lead 33417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033418|133418|989898|1|9999033418|MR|Test|E|Lead 33418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033419|133419|989898|1|9999033419|MR|Test|E|Lead 33419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033420|133420|989898|1|9999033420|MR|Test|E|Lead 33420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033421|133421|989898|1|9999033421|MR|Test|E|Lead 33421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033422|133422|989898|1|9999033422|MR|Test|E|Lead 33422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033423|133423|989898|1|9999033423|MR|Test|E|Lead 33423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033424|133424|989898|1|9999033424|MR|Test|E|Lead 33424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033425|133425|989898|1|9999033425|MR|Test|E|Lead 33425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033426|133426|989898|1|9999033426|MR|Test|E|Lead 33426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033427|133427|989898|1|9999033427|MR|Test|E|Lead 33427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033428|133428|989898|1|9999033428|MR|Test|E|Lead 33428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033429|133429|989898|1|9999033429|MR|Test|E|Lead 33429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033430|133430|989898|1|9999033430|MR|Test|E|Lead 33430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033431|133431|989898|1|9999033431|MR|Test|E|Lead 33431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033432|133432|989898|1|9999033432|MR|Test|E|Lead 33432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033433|133433|989898|1|9999033433|MR|Test|E|Lead 33433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033434|133434|989898|1|9999033434|MR|Test|E|Lead 33434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033435|133435|989898|1|9999033435|MR|Test|E|Lead 33435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033436|133436|989898|1|9999033436|MR|Test|E|Lead 33436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033437|133437|989898|1|9999033437|MR|Test|E|Lead 33437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033438|133438|989898|1|9999033438|MR|Test|E|Lead 33438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033439|133439|989898|1|9999033439|MR|Test|E|Lead 33439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033440|133440|989898|1|9999033440|MR|Test|E|Lead 33440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033441|133441|989898|1|9999033441|MR|Test|E|Lead 33441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033442|133442|989898|1|9999033442|MR|Test|E|Lead 33442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033443|133443|989898|1|9999033443|MR|Test|E|Lead 33443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033444|133444|989898|1|9999033444|MR|Test|E|Lead 33444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033445|133445|989898|1|9999033445|MR|Test|E|Lead 33445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033446|133446|989898|1|9999033446|MR|Test|E|Lead 33446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033447|133447|989898|1|9999033447|MR|Test|E|Lead 33447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033448|133448|989898|1|9999033448|MR|Test|E|Lead 33448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033449|133449|989898|1|9999033449|MR|Test|E|Lead 33449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033450|133450|989898|1|9999033450|MR|Test|E|Lead 33450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033451|133451|989898|1|9999033451|MR|Test|E|Lead 33451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033452|133452|989898|1|9999033452|MR|Test|E|Lead 33452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033453|133453|989898|1|9999033453|MR|Test|E|Lead 33453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033454|133454|989898|1|9999033454|MR|Test|E|Lead 33454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033455|133455|989898|1|9999033455|MR|Test|E|Lead 33455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033456|133456|989898|1|9999033456|MR|Test|E|Lead 33456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033457|133457|989898|1|9999033457|MR|Test|E|Lead 33457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033458|133458|989898|1|9999033458|MR|Test|E|Lead 33458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033459|133459|989898|1|9999033459|MR|Test|E|Lead 33459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033460|133460|989898|1|9999033460|MR|Test|E|Lead 33460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033461|133461|989898|1|9999033461|MR|Test|E|Lead 33461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033462|133462|989898|1|9999033462|MR|Test|E|Lead 33462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033463|133463|989898|1|9999033463|MR|Test|E|Lead 33463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033464|133464|989898|1|9999033464|MR|Test|E|Lead 33464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033465|133465|989898|1|9999033465|MR|Test|E|Lead 33465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033466|133466|989898|1|9999033466|MR|Test|E|Lead 33466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033467|133467|989898|1|9999033467|MR|Test|E|Lead 33467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033468|133468|989898|1|9999033468|MR|Test|E|Lead 33468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033469|133469|989898|1|9999033469|MR|Test|E|Lead 33469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033470|133470|989898|1|9999033470|MR|Test|E|Lead 33470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033471|133471|989898|1|9999033471|MR|Test|E|Lead 33471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033472|133472|989898|1|9999033472|MR|Test|E|Lead 33472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033473|133473|989898|1|9999033473|MR|Test|E|Lead 33473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033474|133474|989898|1|9999033474|MR|Test|E|Lead 33474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033475|133475|989898|1|9999033475|MR|Test|E|Lead 33475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033476|133476|989898|1|9999033476|MR|Test|E|Lead 33476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033477|133477|989898|1|9999033477|MR|Test|E|Lead 33477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033478|133478|989898|1|9999033478|MR|Test|E|Lead 33478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033479|133479|989898|1|9999033479|MR|Test|E|Lead 33479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033480|133480|989898|1|9999033480|MR|Test|E|Lead 33480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033481|133481|989898|1|9999033481|MR|Test|E|Lead 33481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033482|133482|989898|1|9999033482|MR|Test|E|Lead 33482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033483|133483|989898|1|9999033483|MR|Test|E|Lead 33483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033484|133484|989898|1|9999033484|MR|Test|E|Lead 33484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033485|133485|989898|1|9999033485|MR|Test|E|Lead 33485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033486|133486|989898|1|9999033486|MR|Test|E|Lead 33486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033487|133487|989898|1|9999033487|MR|Test|E|Lead 33487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033488|133488|989898|1|9999033488|MR|Test|E|Lead 33488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033489|133489|989898|1|9999033489|MR|Test|E|Lead 33489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033490|133490|989898|1|9999033490|MR|Test|E|Lead 33490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033491|133491|989898|1|9999033491|MR|Test|E|Lead 33491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033492|133492|989898|1|9999033492|MR|Test|E|Lead 33492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033493|133493|989898|1|9999033493|MR|Test|E|Lead 33493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033494|133494|989898|1|9999033494|MR|Test|E|Lead 33494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033495|133495|989898|1|9999033495|MR|Test|E|Lead 33495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033496|133496|989898|1|9999033496|MR|Test|E|Lead 33496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033497|133497|989898|1|9999033497|MR|Test|E|Lead 33497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033498|133498|989898|1|9999033498|MR|Test|E|Lead 33498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033499|133499|989898|1|9999033499|MR|Test|E|Lead 33499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033500|133500|989898|1|9999033500|MR|Test|E|Lead 33500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033501|133501|989898|1|9999033501|MR|Test|E|Lead 33501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033502|133502|989898|1|9999033502|MR|Test|E|Lead 33502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033503|133503|989898|1|9999033503|MR|Test|E|Lead 33503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033504|133504|989898|1|9999033504|MR|Test|E|Lead 33504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033505|133505|989898|1|9999033505|MR|Test|E|Lead 33505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033506|133506|989898|1|9999033506|MR|Test|E|Lead 33506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033507|133507|989898|1|9999033507|MR|Test|E|Lead 33507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033508|133508|989898|1|9999033508|MR|Test|E|Lead 33508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033509|133509|989898|1|9999033509|MR|Test|E|Lead 33509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033510|133510|989898|1|9999033510|MR|Test|E|Lead 33510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033511|133511|989898|1|9999033511|MR|Test|E|Lead 33511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033512|133512|989898|1|9999033512|MR|Test|E|Lead 33512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033513|133513|989898|1|9999033513|MR|Test|E|Lead 33513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033514|133514|989898|1|9999033514|MR|Test|E|Lead 33514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033515|133515|989898|1|9999033515|MR|Test|E|Lead 33515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033516|133516|989898|1|9999033516|MR|Test|E|Lead 33516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033517|133517|989898|1|9999033517|MR|Test|E|Lead 33517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033518|133518|989898|1|9999033518|MR|Test|E|Lead 33518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033519|133519|989898|1|9999033519|MR|Test|E|Lead 33519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033520|133520|989898|1|9999033520|MR|Test|E|Lead 33520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033521|133521|989898|1|9999033521|MR|Test|E|Lead 33521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033522|133522|989898|1|9999033522|MR|Test|E|Lead 33522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033523|133523|989898|1|9999033523|MR|Test|E|Lead 33523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033524|133524|989898|1|9999033524|MR|Test|E|Lead 33524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033525|133525|989898|1|9999033525|MR|Test|E|Lead 33525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033526|133526|989898|1|9999033526|MR|Test|E|Lead 33526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033527|133527|989898|1|9999033527|MR|Test|E|Lead 33527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033528|133528|989898|1|9999033528|MR|Test|E|Lead 33528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033529|133529|989898|1|9999033529|MR|Test|E|Lead 33529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033530|133530|989898|1|9999033530|MR|Test|E|Lead 33530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033531|133531|989898|1|9999033531|MR|Test|E|Lead 33531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033532|133532|989898|1|9999033532|MR|Test|E|Lead 33532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033533|133533|989898|1|9999033533|MR|Test|E|Lead 33533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033534|133534|989898|1|9999033534|MR|Test|E|Lead 33534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033535|133535|989898|1|9999033535|MR|Test|E|Lead 33535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033536|133536|989898|1|9999033536|MR|Test|E|Lead 33536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033537|133537|989898|1|9999033537|MR|Test|E|Lead 33537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033538|133538|989898|1|9999033538|MR|Test|E|Lead 33538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033539|133539|989898|1|9999033539|MR|Test|E|Lead 33539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033540|133540|989898|1|9999033540|MR|Test|E|Lead 33540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033541|133541|989898|1|9999033541|MR|Test|E|Lead 33541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033542|133542|989898|1|9999033542|MR|Test|E|Lead 33542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033543|133543|989898|1|9999033543|MR|Test|E|Lead 33543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033544|133544|989898|1|9999033544|MR|Test|E|Lead 33544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033545|133545|989898|1|9999033545|MR|Test|E|Lead 33545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033546|133546|989898|1|9999033546|MR|Test|E|Lead 33546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033547|133547|989898|1|9999033547|MR|Test|E|Lead 33547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033548|133548|989898|1|9999033548|MR|Test|E|Lead 33548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033549|133549|989898|1|9999033549|MR|Test|E|Lead 33549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033550|133550|989898|1|9999033550|MR|Test|E|Lead 33550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033551|133551|989898|1|9999033551|MR|Test|E|Lead 33551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033552|133552|989898|1|9999033552|MR|Test|E|Lead 33552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033553|133553|989898|1|9999033553|MR|Test|E|Lead 33553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033554|133554|989898|1|9999033554|MR|Test|E|Lead 33554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033555|133555|989898|1|9999033555|MR|Test|E|Lead 33555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033556|133556|989898|1|9999033556|MR|Test|E|Lead 33556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033557|133557|989898|1|9999033557|MR|Test|E|Lead 33557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033558|133558|989898|1|9999033558|MR|Test|E|Lead 33558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033559|133559|989898|1|9999033559|MR|Test|E|Lead 33559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033560|133560|989898|1|9999033560|MR|Test|E|Lead 33560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033561|133561|989898|1|9999033561|MR|Test|E|Lead 33561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033562|133562|989898|1|9999033562|MR|Test|E|Lead 33562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033563|133563|989898|1|9999033563|MR|Test|E|Lead 33563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033564|133564|989898|1|9999033564|MR|Test|E|Lead 33564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033565|133565|989898|1|9999033565|MR|Test|E|Lead 33565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033566|133566|989898|1|9999033566|MR|Test|E|Lead 33566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033567|133567|989898|1|9999033567|MR|Test|E|Lead 33567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033568|133568|989898|1|9999033568|MR|Test|E|Lead 33568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033569|133569|989898|1|9999033569|MR|Test|E|Lead 33569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033570|133570|989898|1|9999033570|MR|Test|E|Lead 33570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033571|133571|989898|1|9999033571|MR|Test|E|Lead 33571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033572|133572|989898|1|9999033572|MR|Test|E|Lead 33572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033573|133573|989898|1|9999033573|MR|Test|E|Lead 33573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033574|133574|989898|1|9999033574|MR|Test|E|Lead 33574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033575|133575|989898|1|9999033575|MR|Test|E|Lead 33575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033576|133576|989898|1|9999033576|MR|Test|E|Lead 33576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033577|133577|989898|1|9999033577|MR|Test|E|Lead 33577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033578|133578|989898|1|9999033578|MR|Test|E|Lead 33578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033579|133579|989898|1|9999033579|MR|Test|E|Lead 33579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033580|133580|989898|1|9999033580|MR|Test|E|Lead 33580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033581|133581|989898|1|9999033581|MR|Test|E|Lead 33581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033582|133582|989898|1|9999033582|MR|Test|E|Lead 33582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033583|133583|989898|1|9999033583|MR|Test|E|Lead 33583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033584|133584|989898|1|9999033584|MR|Test|E|Lead 33584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033585|133585|989898|1|9999033585|MR|Test|E|Lead 33585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033586|133586|989898|1|9999033586|MR|Test|E|Lead 33586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033587|133587|989898|1|9999033587|MR|Test|E|Lead 33587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033588|133588|989898|1|9999033588|MR|Test|E|Lead 33588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033589|133589|989898|1|9999033589|MR|Test|E|Lead 33589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033590|133590|989898|1|9999033590|MR|Test|E|Lead 33590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033591|133591|989898|1|9999033591|MR|Test|E|Lead 33591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033592|133592|989898|1|9999033592|MR|Test|E|Lead 33592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033593|133593|989898|1|9999033593|MR|Test|E|Lead 33593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033594|133594|989898|1|9999033594|MR|Test|E|Lead 33594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033595|133595|989898|1|9999033595|MR|Test|E|Lead 33595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033596|133596|989898|1|9999033596|MR|Test|E|Lead 33596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033597|133597|989898|1|9999033597|MR|Test|E|Lead 33597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033598|133598|989898|1|9999033598|MR|Test|E|Lead 33598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033599|133599|989898|1|9999033599|MR|Test|E|Lead 33599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033600|133600|989898|1|9999033600|MR|Test|E|Lead 33600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033601|133601|989898|1|9999033601|MR|Test|E|Lead 33601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033602|133602|989898|1|9999033602|MR|Test|E|Lead 33602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033603|133603|989898|1|9999033603|MR|Test|E|Lead 33603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033604|133604|989898|1|9999033604|MR|Test|E|Lead 33604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033605|133605|989898|1|9999033605|MR|Test|E|Lead 33605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033606|133606|989898|1|9999033606|MR|Test|E|Lead 33606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033607|133607|989898|1|9999033607|MR|Test|E|Lead 33607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033608|133608|989898|1|9999033608|MR|Test|E|Lead 33608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033609|133609|989898|1|9999033609|MR|Test|E|Lead 33609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033610|133610|989898|1|9999033610|MR|Test|E|Lead 33610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033611|133611|989898|1|9999033611|MR|Test|E|Lead 33611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033612|133612|989898|1|9999033612|MR|Test|E|Lead 33612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033613|133613|989898|1|9999033613|MR|Test|E|Lead 33613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033614|133614|989898|1|9999033614|MR|Test|E|Lead 33614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033615|133615|989898|1|9999033615|MR|Test|E|Lead 33615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033616|133616|989898|1|9999033616|MR|Test|E|Lead 33616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033617|133617|989898|1|9999033617|MR|Test|E|Lead 33617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033618|133618|989898|1|9999033618|MR|Test|E|Lead 33618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033619|133619|989898|1|9999033619|MR|Test|E|Lead 33619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033620|133620|989898|1|9999033620|MR|Test|E|Lead 33620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033621|133621|989898|1|9999033621|MR|Test|E|Lead 33621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033622|133622|989898|1|9999033622|MR|Test|E|Lead 33622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033623|133623|989898|1|9999033623|MR|Test|E|Lead 33623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033624|133624|989898|1|9999033624|MR|Test|E|Lead 33624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033625|133625|989898|1|9999033625|MR|Test|E|Lead 33625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033626|133626|989898|1|9999033626|MR|Test|E|Lead 33626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033627|133627|989898|1|9999033627|MR|Test|E|Lead 33627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033628|133628|989898|1|9999033628|MR|Test|E|Lead 33628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033629|133629|989898|1|9999033629|MR|Test|E|Lead 33629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033630|133630|989898|1|9999033630|MR|Test|E|Lead 33630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033631|133631|989898|1|9999033631|MR|Test|E|Lead 33631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033632|133632|989898|1|9999033632|MR|Test|E|Lead 33632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033633|133633|989898|1|9999033633|MR|Test|E|Lead 33633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033634|133634|989898|1|9999033634|MR|Test|E|Lead 33634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033635|133635|989898|1|9999033635|MR|Test|E|Lead 33635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033636|133636|989898|1|9999033636|MR|Test|E|Lead 33636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033637|133637|989898|1|9999033637|MR|Test|E|Lead 33637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033638|133638|989898|1|9999033638|MR|Test|E|Lead 33638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033639|133639|989898|1|9999033639|MR|Test|E|Lead 33639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033640|133640|989898|1|9999033640|MR|Test|E|Lead 33640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033641|133641|989898|1|9999033641|MR|Test|E|Lead 33641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033642|133642|989898|1|9999033642|MR|Test|E|Lead 33642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033643|133643|989898|1|9999033643|MR|Test|E|Lead 33643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033644|133644|989898|1|9999033644|MR|Test|E|Lead 33644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033645|133645|989898|1|9999033645|MR|Test|E|Lead 33645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033646|133646|989898|1|9999033646|MR|Test|E|Lead 33646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033647|133647|989898|1|9999033647|MR|Test|E|Lead 33647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033648|133648|989898|1|9999033648|MR|Test|E|Lead 33648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033649|133649|989898|1|9999033649|MR|Test|E|Lead 33649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033650|133650|989898|1|9999033650|MR|Test|E|Lead 33650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033651|133651|989898|1|9999033651|MR|Test|E|Lead 33651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033652|133652|989898|1|9999033652|MR|Test|E|Lead 33652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033653|133653|989898|1|9999033653|MR|Test|E|Lead 33653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033654|133654|989898|1|9999033654|MR|Test|E|Lead 33654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033655|133655|989898|1|9999033655|MR|Test|E|Lead 33655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033656|133656|989898|1|9999033656|MR|Test|E|Lead 33656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033657|133657|989898|1|9999033657|MR|Test|E|Lead 33657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033658|133658|989898|1|9999033658|MR|Test|E|Lead 33658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033659|133659|989898|1|9999033659|MR|Test|E|Lead 33659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033660|133660|989898|1|9999033660|MR|Test|E|Lead 33660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033661|133661|989898|1|9999033661|MR|Test|E|Lead 33661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033662|133662|989898|1|9999033662|MR|Test|E|Lead 33662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033663|133663|989898|1|9999033663|MR|Test|E|Lead 33663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033664|133664|989898|1|9999033664|MR|Test|E|Lead 33664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033665|133665|989898|1|9999033665|MR|Test|E|Lead 33665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033666|133666|989898|1|9999033666|MR|Test|E|Lead 33666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033667|133667|989898|1|9999033667|MR|Test|E|Lead 33667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033668|133668|989898|1|9999033668|MR|Test|E|Lead 33668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033669|133669|989898|1|9999033669|MR|Test|E|Lead 33669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033670|133670|989898|1|9999033670|MR|Test|E|Lead 33670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033671|133671|989898|1|9999033671|MR|Test|E|Lead 33671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033672|133672|989898|1|9999033672|MR|Test|E|Lead 33672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033673|133673|989898|1|9999033673|MR|Test|E|Lead 33673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033674|133674|989898|1|9999033674|MR|Test|E|Lead 33674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033675|133675|989898|1|9999033675|MR|Test|E|Lead 33675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033676|133676|989898|1|9999033676|MR|Test|E|Lead 33676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033677|133677|989898|1|9999033677|MR|Test|E|Lead 33677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033678|133678|989898|1|9999033678|MR|Test|E|Lead 33678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033679|133679|989898|1|9999033679|MR|Test|E|Lead 33679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033680|133680|989898|1|9999033680|MR|Test|E|Lead 33680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033681|133681|989898|1|9999033681|MR|Test|E|Lead 33681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033682|133682|989898|1|9999033682|MR|Test|E|Lead 33682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033683|133683|989898|1|9999033683|MR|Test|E|Lead 33683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033684|133684|989898|1|9999033684|MR|Test|E|Lead 33684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033685|133685|989898|1|9999033685|MR|Test|E|Lead 33685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033686|133686|989898|1|9999033686|MR|Test|E|Lead 33686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033687|133687|989898|1|9999033687|MR|Test|E|Lead 33687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033688|133688|989898|1|9999033688|MR|Test|E|Lead 33688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033689|133689|989898|1|9999033689|MR|Test|E|Lead 33689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033690|133690|989898|1|9999033690|MR|Test|E|Lead 33690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033691|133691|989898|1|9999033691|MR|Test|E|Lead 33691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033692|133692|989898|1|9999033692|MR|Test|E|Lead 33692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033693|133693|989898|1|9999033693|MR|Test|E|Lead 33693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033694|133694|989898|1|9999033694|MR|Test|E|Lead 33694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033695|133695|989898|1|9999033695|MR|Test|E|Lead 33695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033696|133696|989898|1|9999033696|MR|Test|E|Lead 33696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033697|133697|989898|1|9999033697|MR|Test|E|Lead 33697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033698|133698|989898|1|9999033698|MR|Test|E|Lead 33698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033699|133699|989898|1|9999033699|MR|Test|E|Lead 33699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033700|133700|989898|1|9999033700|MR|Test|E|Lead 33700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033701|133701|989898|1|9999033701|MR|Test|E|Lead 33701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033702|133702|989898|1|9999033702|MR|Test|E|Lead 33702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033703|133703|989898|1|9999033703|MR|Test|E|Lead 33703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033704|133704|989898|1|9999033704|MR|Test|E|Lead 33704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033705|133705|989898|1|9999033705|MR|Test|E|Lead 33705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033706|133706|989898|1|9999033706|MR|Test|E|Lead 33706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033707|133707|989898|1|9999033707|MR|Test|E|Lead 33707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033708|133708|989898|1|9999033708|MR|Test|E|Lead 33708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033709|133709|989898|1|9999033709|MR|Test|E|Lead 33709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033710|133710|989898|1|9999033710|MR|Test|E|Lead 33710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033711|133711|989898|1|9999033711|MR|Test|E|Lead 33711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033712|133712|989898|1|9999033712|MR|Test|E|Lead 33712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033713|133713|989898|1|9999033713|MR|Test|E|Lead 33713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033714|133714|989898|1|9999033714|MR|Test|E|Lead 33714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033715|133715|989898|1|9999033715|MR|Test|E|Lead 33715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033716|133716|989898|1|9999033716|MR|Test|E|Lead 33716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033717|133717|989898|1|9999033717|MR|Test|E|Lead 33717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033718|133718|989898|1|9999033718|MR|Test|E|Lead 33718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033719|133719|989898|1|9999033719|MR|Test|E|Lead 33719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033720|133720|989898|1|9999033720|MR|Test|E|Lead 33720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033721|133721|989898|1|9999033721|MR|Test|E|Lead 33721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033722|133722|989898|1|9999033722|MR|Test|E|Lead 33722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033723|133723|989898|1|9999033723|MR|Test|E|Lead 33723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033724|133724|989898|1|9999033724|MR|Test|E|Lead 33724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033725|133725|989898|1|9999033725|MR|Test|E|Lead 33725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033726|133726|989898|1|9999033726|MR|Test|E|Lead 33726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033727|133727|989898|1|9999033727|MR|Test|E|Lead 33727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033728|133728|989898|1|9999033728|MR|Test|E|Lead 33728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033729|133729|989898|1|9999033729|MR|Test|E|Lead 33729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033730|133730|989898|1|9999033730|MR|Test|E|Lead 33730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033731|133731|989898|1|9999033731|MR|Test|E|Lead 33731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033732|133732|989898|1|9999033732|MR|Test|E|Lead 33732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033733|133733|989898|1|9999033733|MR|Test|E|Lead 33733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033734|133734|989898|1|9999033734|MR|Test|E|Lead 33734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033735|133735|989898|1|9999033735|MR|Test|E|Lead 33735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033736|133736|989898|1|9999033736|MR|Test|E|Lead 33736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033737|133737|989898|1|9999033737|MR|Test|E|Lead 33737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033738|133738|989898|1|9999033738|MR|Test|E|Lead 33738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033739|133739|989898|1|9999033739|MR|Test|E|Lead 33739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033740|133740|989898|1|9999033740|MR|Test|E|Lead 33740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033741|133741|989898|1|9999033741|MR|Test|E|Lead 33741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033742|133742|989898|1|9999033742|MR|Test|E|Lead 33742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033743|133743|989898|1|9999033743|MR|Test|E|Lead 33743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033744|133744|989898|1|9999033744|MR|Test|E|Lead 33744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033745|133745|989898|1|9999033745|MR|Test|E|Lead 33745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033746|133746|989898|1|9999033746|MR|Test|E|Lead 33746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033747|133747|989898|1|9999033747|MR|Test|E|Lead 33747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033748|133748|989898|1|9999033748|MR|Test|E|Lead 33748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033749|133749|989898|1|9999033749|MR|Test|E|Lead 33749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033750|133750|989898|1|9999033750|MR|Test|E|Lead 33750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033751|133751|989898|1|9999033751|MR|Test|E|Lead 33751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033752|133752|989898|1|9999033752|MR|Test|E|Lead 33752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033753|133753|989898|1|9999033753|MR|Test|E|Lead 33753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033754|133754|989898|1|9999033754|MR|Test|E|Lead 33754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033755|133755|989898|1|9999033755|MR|Test|E|Lead 33755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033756|133756|989898|1|9999033756|MR|Test|E|Lead 33756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033757|133757|989898|1|9999033757|MR|Test|E|Lead 33757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033758|133758|989898|1|9999033758|MR|Test|E|Lead 33758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033759|133759|989898|1|9999033759|MR|Test|E|Lead 33759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033760|133760|989898|1|9999033760|MR|Test|E|Lead 33760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033761|133761|989898|1|9999033761|MR|Test|E|Lead 33761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033762|133762|989898|1|9999033762|MR|Test|E|Lead 33762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033763|133763|989898|1|9999033763|MR|Test|E|Lead 33763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033764|133764|989898|1|9999033764|MR|Test|E|Lead 33764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033765|133765|989898|1|9999033765|MR|Test|E|Lead 33765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033766|133766|989898|1|9999033766|MR|Test|E|Lead 33766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033767|133767|989898|1|9999033767|MR|Test|E|Lead 33767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033768|133768|989898|1|9999033768|MR|Test|E|Lead 33768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033769|133769|989898|1|9999033769|MR|Test|E|Lead 33769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033770|133770|989898|1|9999033770|MR|Test|E|Lead 33770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033771|133771|989898|1|9999033771|MR|Test|E|Lead 33771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033772|133772|989898|1|9999033772|MR|Test|E|Lead 33772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033773|133773|989898|1|9999033773|MR|Test|E|Lead 33773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033774|133774|989898|1|9999033774|MR|Test|E|Lead 33774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033775|133775|989898|1|9999033775|MR|Test|E|Lead 33775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033776|133776|989898|1|9999033776|MR|Test|E|Lead 33776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033777|133777|989898|1|9999033777|MR|Test|E|Lead 33777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033778|133778|989898|1|9999033778|MR|Test|E|Lead 33778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033779|133779|989898|1|9999033779|MR|Test|E|Lead 33779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033780|133780|989898|1|9999033780|MR|Test|E|Lead 33780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033781|133781|989898|1|9999033781|MR|Test|E|Lead 33781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033782|133782|989898|1|9999033782|MR|Test|E|Lead 33782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033783|133783|989898|1|9999033783|MR|Test|E|Lead 33783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033784|133784|989898|1|9999033784|MR|Test|E|Lead 33784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033785|133785|989898|1|9999033785|MR|Test|E|Lead 33785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033786|133786|989898|1|9999033786|MR|Test|E|Lead 33786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033787|133787|989898|1|9999033787|MR|Test|E|Lead 33787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033788|133788|989898|1|9999033788|MR|Test|E|Lead 33788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033789|133789|989898|1|9999033789|MR|Test|E|Lead 33789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033790|133790|989898|1|9999033790|MR|Test|E|Lead 33790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033791|133791|989898|1|9999033791|MR|Test|E|Lead 33791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033792|133792|989898|1|9999033792|MR|Test|E|Lead 33792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033793|133793|989898|1|9999033793|MR|Test|E|Lead 33793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033794|133794|989898|1|9999033794|MR|Test|E|Lead 33794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033795|133795|989898|1|9999033795|MR|Test|E|Lead 33795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033796|133796|989898|1|9999033796|MR|Test|E|Lead 33796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033797|133797|989898|1|9999033797|MR|Test|E|Lead 33797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033798|133798|989898|1|9999033798|MR|Test|E|Lead 33798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033799|133799|989898|1|9999033799|MR|Test|E|Lead 33799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033800|133800|989898|1|9999033800|MR|Test|E|Lead 33800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033801|133801|989898|1|9999033801|MR|Test|E|Lead 33801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033802|133802|989898|1|9999033802|MR|Test|E|Lead 33802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033803|133803|989898|1|9999033803|MR|Test|E|Lead 33803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033804|133804|989898|1|9999033804|MR|Test|E|Lead 33804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033805|133805|989898|1|9999033805|MR|Test|E|Lead 33805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033806|133806|989898|1|9999033806|MR|Test|E|Lead 33806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033807|133807|989898|1|9999033807|MR|Test|E|Lead 33807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033808|133808|989898|1|9999033808|MR|Test|E|Lead 33808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033809|133809|989898|1|9999033809|MR|Test|E|Lead 33809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033810|133810|989898|1|9999033810|MR|Test|E|Lead 33810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033811|133811|989898|1|9999033811|MR|Test|E|Lead 33811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033812|133812|989898|1|9999033812|MR|Test|E|Lead 33812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033813|133813|989898|1|9999033813|MR|Test|E|Lead 33813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033814|133814|989898|1|9999033814|MR|Test|E|Lead 33814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033815|133815|989898|1|9999033815|MR|Test|E|Lead 33815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033816|133816|989898|1|9999033816|MR|Test|E|Lead 33816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033817|133817|989898|1|9999033817|MR|Test|E|Lead 33817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033818|133818|989898|1|9999033818|MR|Test|E|Lead 33818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033819|133819|989898|1|9999033819|MR|Test|E|Lead 33819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033820|133820|989898|1|9999033820|MR|Test|E|Lead 33820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033821|133821|989898|1|9999033821|MR|Test|E|Lead 33821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033822|133822|989898|1|9999033822|MR|Test|E|Lead 33822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033823|133823|989898|1|9999033823|MR|Test|E|Lead 33823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033824|133824|989898|1|9999033824|MR|Test|E|Lead 33824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033825|133825|989898|1|9999033825|MR|Test|E|Lead 33825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033826|133826|989898|1|9999033826|MR|Test|E|Lead 33826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033827|133827|989898|1|9999033827|MR|Test|E|Lead 33827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033828|133828|989898|1|9999033828|MR|Test|E|Lead 33828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033829|133829|989898|1|9999033829|MR|Test|E|Lead 33829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033830|133830|989898|1|9999033830|MR|Test|E|Lead 33830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033831|133831|989898|1|9999033831|MR|Test|E|Lead 33831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033832|133832|989898|1|9999033832|MR|Test|E|Lead 33832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033833|133833|989898|1|9999033833|MR|Test|E|Lead 33833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033834|133834|989898|1|9999033834|MR|Test|E|Lead 33834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033835|133835|989898|1|9999033835|MR|Test|E|Lead 33835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033836|133836|989898|1|9999033836|MR|Test|E|Lead 33836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033837|133837|989898|1|9999033837|MR|Test|E|Lead 33837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033838|133838|989898|1|9999033838|MR|Test|E|Lead 33838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033839|133839|989898|1|9999033839|MR|Test|E|Lead 33839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033840|133840|989898|1|9999033840|MR|Test|E|Lead 33840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033841|133841|989898|1|9999033841|MR|Test|E|Lead 33841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033842|133842|989898|1|9999033842|MR|Test|E|Lead 33842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033843|133843|989898|1|9999033843|MR|Test|E|Lead 33843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033844|133844|989898|1|9999033844|MR|Test|E|Lead 33844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033845|133845|989898|1|9999033845|MR|Test|E|Lead 33845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033846|133846|989898|1|9999033846|MR|Test|E|Lead 33846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033847|133847|989898|1|9999033847|MR|Test|E|Lead 33847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033848|133848|989898|1|9999033848|MR|Test|E|Lead 33848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033849|133849|989898|1|9999033849|MR|Test|E|Lead 33849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033850|133850|989898|1|9999033850|MR|Test|E|Lead 33850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033851|133851|989898|1|9999033851|MR|Test|E|Lead 33851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033852|133852|989898|1|9999033852|MR|Test|E|Lead 33852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033853|133853|989898|1|9999033853|MR|Test|E|Lead 33853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033854|133854|989898|1|9999033854|MR|Test|E|Lead 33854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033855|133855|989898|1|9999033855|MR|Test|E|Lead 33855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033856|133856|989898|1|9999033856|MR|Test|E|Lead 33856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033857|133857|989898|1|9999033857|MR|Test|E|Lead 33857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033858|133858|989898|1|9999033858|MR|Test|E|Lead 33858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033859|133859|989898|1|9999033859|MR|Test|E|Lead 33859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033860|133860|989898|1|9999033860|MR|Test|E|Lead 33860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033861|133861|989898|1|9999033861|MR|Test|E|Lead 33861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033862|133862|989898|1|9999033862|MR|Test|E|Lead 33862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033863|133863|989898|1|9999033863|MR|Test|E|Lead 33863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033864|133864|989898|1|9999033864|MR|Test|E|Lead 33864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033865|133865|989898|1|9999033865|MR|Test|E|Lead 33865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033866|133866|989898|1|9999033866|MR|Test|E|Lead 33866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033867|133867|989898|1|9999033867|MR|Test|E|Lead 33867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033868|133868|989898|1|9999033868|MR|Test|E|Lead 33868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033869|133869|989898|1|9999033869|MR|Test|E|Lead 33869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033870|133870|989898|1|9999033870|MR|Test|E|Lead 33870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033871|133871|989898|1|9999033871|MR|Test|E|Lead 33871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033872|133872|989898|1|9999033872|MR|Test|E|Lead 33872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033873|133873|989898|1|9999033873|MR|Test|E|Lead 33873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033874|133874|989898|1|9999033874|MR|Test|E|Lead 33874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033875|133875|989898|1|9999033875|MR|Test|E|Lead 33875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033876|133876|989898|1|9999033876|MR|Test|E|Lead 33876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033877|133877|989898|1|9999033877|MR|Test|E|Lead 33877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033878|133878|989898|1|9999033878|MR|Test|E|Lead 33878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033879|133879|989898|1|9999033879|MR|Test|E|Lead 33879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033880|133880|989898|1|9999033880|MR|Test|E|Lead 33880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033881|133881|989898|1|9999033881|MR|Test|E|Lead 33881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033882|133882|989898|1|9999033882|MR|Test|E|Lead 33882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033883|133883|989898|1|9999033883|MR|Test|E|Lead 33883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033884|133884|989898|1|9999033884|MR|Test|E|Lead 33884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033885|133885|989898|1|9999033885|MR|Test|E|Lead 33885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033886|133886|989898|1|9999033886|MR|Test|E|Lead 33886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033887|133887|989898|1|9999033887|MR|Test|E|Lead 33887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033888|133888|989898|1|9999033888|MR|Test|E|Lead 33888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033889|133889|989898|1|9999033889|MR|Test|E|Lead 33889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033890|133890|989898|1|9999033890|MR|Test|E|Lead 33890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033891|133891|989898|1|9999033891|MR|Test|E|Lead 33891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033892|133892|989898|1|9999033892|MR|Test|E|Lead 33892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033893|133893|989898|1|9999033893|MR|Test|E|Lead 33893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033894|133894|989898|1|9999033894|MR|Test|E|Lead 33894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033895|133895|989898|1|9999033895|MR|Test|E|Lead 33895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033896|133896|989898|1|9999033896|MR|Test|E|Lead 33896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033897|133897|989898|1|9999033897|MR|Test|E|Lead 33897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033898|133898|989898|1|9999033898|MR|Test|E|Lead 33898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033899|133899|989898|1|9999033899|MR|Test|E|Lead 33899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033900|133900|989898|1|9999033900|MR|Test|E|Lead 33900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033901|133901|989898|1|9999033901|MR|Test|E|Lead 33901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033902|133902|989898|1|9999033902|MR|Test|E|Lead 33902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033903|133903|989898|1|9999033903|MR|Test|E|Lead 33903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033904|133904|989898|1|9999033904|MR|Test|E|Lead 33904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033905|133905|989898|1|9999033905|MR|Test|E|Lead 33905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033906|133906|989898|1|9999033906|MR|Test|E|Lead 33906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033907|133907|989898|1|9999033907|MR|Test|E|Lead 33907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033908|133908|989898|1|9999033908|MR|Test|E|Lead 33908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033909|133909|989898|1|9999033909|MR|Test|E|Lead 33909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033910|133910|989898|1|9999033910|MR|Test|E|Lead 33910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033911|133911|989898|1|9999033911|MR|Test|E|Lead 33911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033912|133912|989898|1|9999033912|MR|Test|E|Lead 33912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033913|133913|989898|1|9999033913|MR|Test|E|Lead 33913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033914|133914|989898|1|9999033914|MR|Test|E|Lead 33914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033915|133915|989898|1|9999033915|MR|Test|E|Lead 33915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033916|133916|989898|1|9999033916|MR|Test|E|Lead 33916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033917|133917|989898|1|9999033917|MR|Test|E|Lead 33917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033918|133918|989898|1|9999033918|MR|Test|E|Lead 33918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033919|133919|989898|1|9999033919|MR|Test|E|Lead 33919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033920|133920|989898|1|9999033920|MR|Test|E|Lead 33920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033921|133921|989898|1|9999033921|MR|Test|E|Lead 33921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033922|133922|989898|1|9999033922|MR|Test|E|Lead 33922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033923|133923|989898|1|9999033923|MR|Test|E|Lead 33923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033924|133924|989898|1|9999033924|MR|Test|E|Lead 33924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033925|133925|989898|1|9999033925|MR|Test|E|Lead 33925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033926|133926|989898|1|9999033926|MR|Test|E|Lead 33926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033927|133927|989898|1|9999033927|MR|Test|E|Lead 33927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033928|133928|989898|1|9999033928|MR|Test|E|Lead 33928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033929|133929|989898|1|9999033929|MR|Test|E|Lead 33929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033930|133930|989898|1|9999033930|MR|Test|E|Lead 33930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033931|133931|989898|1|9999033931|MR|Test|E|Lead 33931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033932|133932|989898|1|9999033932|MR|Test|E|Lead 33932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033933|133933|989898|1|9999033933|MR|Test|E|Lead 33933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033934|133934|989898|1|9999033934|MR|Test|E|Lead 33934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033935|133935|989898|1|9999033935|MR|Test|E|Lead 33935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033936|133936|989898|1|9999033936|MR|Test|E|Lead 33936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033937|133937|989898|1|9999033937|MR|Test|E|Lead 33937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033938|133938|989898|1|9999033938|MR|Test|E|Lead 33938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033939|133939|989898|1|9999033939|MR|Test|E|Lead 33939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033940|133940|989898|1|9999033940|MR|Test|E|Lead 33940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033941|133941|989898|1|9999033941|MR|Test|E|Lead 33941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033942|133942|989898|1|9999033942|MR|Test|E|Lead 33942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033943|133943|989898|1|9999033943|MR|Test|E|Lead 33943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033944|133944|989898|1|9999033944|MR|Test|E|Lead 33944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033945|133945|989898|1|9999033945|MR|Test|E|Lead 33945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033946|133946|989898|1|9999033946|MR|Test|E|Lead 33946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033947|133947|989898|1|9999033947|MR|Test|E|Lead 33947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033948|133948|989898|1|9999033948|MR|Test|E|Lead 33948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033949|133949|989898|1|9999033949|MR|Test|E|Lead 33949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033950|133950|989898|1|9999033950|MR|Test|E|Lead 33950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033951|133951|989898|1|9999033951|MR|Test|E|Lead 33951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033952|133952|989898|1|9999033952|MR|Test|E|Lead 33952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033953|133953|989898|1|9999033953|MR|Test|E|Lead 33953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033954|133954|989898|1|9999033954|MR|Test|E|Lead 33954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033955|133955|989898|1|9999033955|MR|Test|E|Lead 33955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033956|133956|989898|1|9999033956|MR|Test|E|Lead 33956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033957|133957|989898|1|9999033957|MR|Test|E|Lead 33957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033958|133958|989898|1|9999033958|MR|Test|E|Lead 33958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033959|133959|989898|1|9999033959|MR|Test|E|Lead 33959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033960|133960|989898|1|9999033960|MR|Test|E|Lead 33960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033961|133961|989898|1|9999033961|MR|Test|E|Lead 33961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033962|133962|989898|1|9999033962|MR|Test|E|Lead 33962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033963|133963|989898|1|9999033963|MR|Test|E|Lead 33963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033964|133964|989898|1|9999033964|MR|Test|E|Lead 33964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033965|133965|989898|1|9999033965|MR|Test|E|Lead 33965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033966|133966|989898|1|9999033966|MR|Test|E|Lead 33966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033967|133967|989898|1|9999033967|MR|Test|E|Lead 33967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033968|133968|989898|1|9999033968|MR|Test|E|Lead 33968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033969|133969|989898|1|9999033969|MR|Test|E|Lead 33969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033970|133970|989898|1|9999033970|MR|Test|E|Lead 33970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033971|133971|989898|1|9999033971|MR|Test|E|Lead 33971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033972|133972|989898|1|9999033972|MR|Test|E|Lead 33972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033973|133973|989898|1|9999033973|MR|Test|E|Lead 33973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033974|133974|989898|1|9999033974|MR|Test|E|Lead 33974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033975|133975|989898|1|9999033975|MR|Test|E|Lead 33975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033976|133976|989898|1|9999033976|MR|Test|E|Lead 33976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033977|133977|989898|1|9999033977|MR|Test|E|Lead 33977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033978|133978|989898|1|9999033978|MR|Test|E|Lead 33978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033979|133979|989898|1|9999033979|MR|Test|E|Lead 33979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033980|133980|989898|1|9999033980|MR|Test|E|Lead 33980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033981|133981|989898|1|9999033981|MR|Test|E|Lead 33981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033982|133982|989898|1|9999033982|MR|Test|E|Lead 33982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033983|133983|989898|1|9999033983|MR|Test|E|Lead 33983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033984|133984|989898|1|9999033984|MR|Test|E|Lead 33984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033985|133985|989898|1|9999033985|MR|Test|E|Lead 33985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033986|133986|989898|1|9999033986|MR|Test|E|Lead 33986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033987|133987|989898|1|9999033987|MR|Test|E|Lead 33987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033988|133988|989898|1|9999033988|MR|Test|E|Lead 33988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033989|133989|989898|1|9999033989|MR|Test|E|Lead 33989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033990|133990|989898|1|9999033990|MR|Test|E|Lead 33990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033991|133991|989898|1|9999033991|MR|Test|E|Lead 33991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033992|133992|989898|1|9999033992|MR|Test|E|Lead 33992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033993|133993|989898|1|9999033993|MR|Test|E|Lead 33993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033994|133994|989898|1|9999033994|MR|Test|E|Lead 33994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033995|133995|989898|1|9999033995|MR|Test|E|Lead 33995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033996|133996|989898|1|9999033996|MR|Test|E|Lead 33996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033997|133997|989898|1|9999033997|MR|Test|E|Lead 33997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033998|133998|989898|1|9999033998|MR|Test|E|Lead 33998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1033999|133999|989898|1|9999033999|MR|Test|E|Lead 33999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034000|134000|989898|1|9999034000|MR|Test|E|Lead 34000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034001|134001|989898|1|9999034001|MR|Test|E|Lead 34001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034002|134002|989898|1|9999034002|MR|Test|E|Lead 34002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034003|134003|989898|1|9999034003|MR|Test|E|Lead 34003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034004|134004|989898|1|9999034004|MR|Test|E|Lead 34004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034005|134005|989898|1|9999034005|MR|Test|E|Lead 34005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034006|134006|989898|1|9999034006|MR|Test|E|Lead 34006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034007|134007|989898|1|9999034007|MR|Test|E|Lead 34007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034008|134008|989898|1|9999034008|MR|Test|E|Lead 34008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034009|134009|989898|1|9999034009|MR|Test|E|Lead 34009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034010|134010|989898|1|9999034010|MR|Test|E|Lead 34010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034011|134011|989898|1|9999034011|MR|Test|E|Lead 34011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034012|134012|989898|1|9999034012|MR|Test|E|Lead 34012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034013|134013|989898|1|9999034013|MR|Test|E|Lead 34013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034014|134014|989898|1|9999034014|MR|Test|E|Lead 34014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034015|134015|989898|1|9999034015|MR|Test|E|Lead 34015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034016|134016|989898|1|9999034016|MR|Test|E|Lead 34016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034017|134017|989898|1|9999034017|MR|Test|E|Lead 34017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034018|134018|989898|1|9999034018|MR|Test|E|Lead 34018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034019|134019|989898|1|9999034019|MR|Test|E|Lead 34019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034020|134020|989898|1|9999034020|MR|Test|E|Lead 34020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034021|134021|989898|1|9999034021|MR|Test|E|Lead 34021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034022|134022|989898|1|9999034022|MR|Test|E|Lead 34022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034023|134023|989898|1|9999034023|MR|Test|E|Lead 34023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034024|134024|989898|1|9999034024|MR|Test|E|Lead 34024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034025|134025|989898|1|9999034025|MR|Test|E|Lead 34025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034026|134026|989898|1|9999034026|MR|Test|E|Lead 34026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034027|134027|989898|1|9999034027|MR|Test|E|Lead 34027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034028|134028|989898|1|9999034028|MR|Test|E|Lead 34028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034029|134029|989898|1|9999034029|MR|Test|E|Lead 34029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034030|134030|989898|1|9999034030|MR|Test|E|Lead 34030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034031|134031|989898|1|9999034031|MR|Test|E|Lead 34031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034032|134032|989898|1|9999034032|MR|Test|E|Lead 34032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034033|134033|989898|1|9999034033|MR|Test|E|Lead 34033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034034|134034|989898|1|9999034034|MR|Test|E|Lead 34034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034035|134035|989898|1|9999034035|MR|Test|E|Lead 34035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034036|134036|989898|1|9999034036|MR|Test|E|Lead 34036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034037|134037|989898|1|9999034037|MR|Test|E|Lead 34037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034038|134038|989898|1|9999034038|MR|Test|E|Lead 34038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034039|134039|989898|1|9999034039|MR|Test|E|Lead 34039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034040|134040|989898|1|9999034040|MR|Test|E|Lead 34040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034041|134041|989898|1|9999034041|MR|Test|E|Lead 34041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034042|134042|989898|1|9999034042|MR|Test|E|Lead 34042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034043|134043|989898|1|9999034043|MR|Test|E|Lead 34043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034044|134044|989898|1|9999034044|MR|Test|E|Lead 34044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034045|134045|989898|1|9999034045|MR|Test|E|Lead 34045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034046|134046|989898|1|9999034046|MR|Test|E|Lead 34046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034047|134047|989898|1|9999034047|MR|Test|E|Lead 34047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034048|134048|989898|1|9999034048|MR|Test|E|Lead 34048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034049|134049|989898|1|9999034049|MR|Test|E|Lead 34049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034050|134050|989898|1|9999034050|MR|Test|E|Lead 34050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034051|134051|989898|1|9999034051|MR|Test|E|Lead 34051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034052|134052|989898|1|9999034052|MR|Test|E|Lead 34052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034053|134053|989898|1|9999034053|MR|Test|E|Lead 34053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034054|134054|989898|1|9999034054|MR|Test|E|Lead 34054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034055|134055|989898|1|9999034055|MR|Test|E|Lead 34055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034056|134056|989898|1|9999034056|MR|Test|E|Lead 34056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034057|134057|989898|1|9999034057|MR|Test|E|Lead 34057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034058|134058|989898|1|9999034058|MR|Test|E|Lead 34058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034059|134059|989898|1|9999034059|MR|Test|E|Lead 34059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034060|134060|989898|1|9999034060|MR|Test|E|Lead 34060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034061|134061|989898|1|9999034061|MR|Test|E|Lead 34061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034062|134062|989898|1|9999034062|MR|Test|E|Lead 34062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034063|134063|989898|1|9999034063|MR|Test|E|Lead 34063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034064|134064|989898|1|9999034064|MR|Test|E|Lead 34064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034065|134065|989898|1|9999034065|MR|Test|E|Lead 34065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034066|134066|989898|1|9999034066|MR|Test|E|Lead 34066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034067|134067|989898|1|9999034067|MR|Test|E|Lead 34067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034068|134068|989898|1|9999034068|MR|Test|E|Lead 34068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034069|134069|989898|1|9999034069|MR|Test|E|Lead 34069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034070|134070|989898|1|9999034070|MR|Test|E|Lead 34070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034071|134071|989898|1|9999034071|MR|Test|E|Lead 34071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034072|134072|989898|1|9999034072|MR|Test|E|Lead 34072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034073|134073|989898|1|9999034073|MR|Test|E|Lead 34073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034074|134074|989898|1|9999034074|MR|Test|E|Lead 34074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034075|134075|989898|1|9999034075|MR|Test|E|Lead 34075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034076|134076|989898|1|9999034076|MR|Test|E|Lead 34076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034077|134077|989898|1|9999034077|MR|Test|E|Lead 34077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034078|134078|989898|1|9999034078|MR|Test|E|Lead 34078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034079|134079|989898|1|9999034079|MR|Test|E|Lead 34079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034080|134080|989898|1|9999034080|MR|Test|E|Lead 34080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034081|134081|989898|1|9999034081|MR|Test|E|Lead 34081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034082|134082|989898|1|9999034082|MR|Test|E|Lead 34082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034083|134083|989898|1|9999034083|MR|Test|E|Lead 34083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034084|134084|989898|1|9999034084|MR|Test|E|Lead 34084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034085|134085|989898|1|9999034085|MR|Test|E|Lead 34085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034086|134086|989898|1|9999034086|MR|Test|E|Lead 34086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034087|134087|989898|1|9999034087|MR|Test|E|Lead 34087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034088|134088|989898|1|9999034088|MR|Test|E|Lead 34088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034089|134089|989898|1|9999034089|MR|Test|E|Lead 34089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034090|134090|989898|1|9999034090|MR|Test|E|Lead 34090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034091|134091|989898|1|9999034091|MR|Test|E|Lead 34091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034092|134092|989898|1|9999034092|MR|Test|E|Lead 34092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034093|134093|989898|1|9999034093|MR|Test|E|Lead 34093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034094|134094|989898|1|9999034094|MR|Test|E|Lead 34094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034095|134095|989898|1|9999034095|MR|Test|E|Lead 34095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034096|134096|989898|1|9999034096|MR|Test|E|Lead 34096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034097|134097|989898|1|9999034097|MR|Test|E|Lead 34097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034098|134098|989898|1|9999034098|MR|Test|E|Lead 34098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034099|134099|989898|1|9999034099|MR|Test|E|Lead 34099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034100|134100|989898|1|9999034100|MR|Test|E|Lead 34100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034101|134101|989898|1|9999034101|MR|Test|E|Lead 34101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034102|134102|989898|1|9999034102|MR|Test|E|Lead 34102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034103|134103|989898|1|9999034103|MR|Test|E|Lead 34103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034104|134104|989898|1|9999034104|MR|Test|E|Lead 34104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034105|134105|989898|1|9999034105|MR|Test|E|Lead 34105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034106|134106|989898|1|9999034106|MR|Test|E|Lead 34106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034107|134107|989898|1|9999034107|MR|Test|E|Lead 34107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034108|134108|989898|1|9999034108|MR|Test|E|Lead 34108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034109|134109|989898|1|9999034109|MR|Test|E|Lead 34109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034110|134110|989898|1|9999034110|MR|Test|E|Lead 34110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034111|134111|989898|1|9999034111|MR|Test|E|Lead 34111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034112|134112|989898|1|9999034112|MR|Test|E|Lead 34112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034113|134113|989898|1|9999034113|MR|Test|E|Lead 34113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034114|134114|989898|1|9999034114|MR|Test|E|Lead 34114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034115|134115|989898|1|9999034115|MR|Test|E|Lead 34115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034116|134116|989898|1|9999034116|MR|Test|E|Lead 34116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034117|134117|989898|1|9999034117|MR|Test|E|Lead 34117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034118|134118|989898|1|9999034118|MR|Test|E|Lead 34118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034119|134119|989898|1|9999034119|MR|Test|E|Lead 34119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034120|134120|989898|1|9999034120|MR|Test|E|Lead 34120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034121|134121|989898|1|9999034121|MR|Test|E|Lead 34121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034122|134122|989898|1|9999034122|MR|Test|E|Lead 34122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034123|134123|989898|1|9999034123|MR|Test|E|Lead 34123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034124|134124|989898|1|9999034124|MR|Test|E|Lead 34124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034125|134125|989898|1|9999034125|MR|Test|E|Lead 34125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034126|134126|989898|1|9999034126|MR|Test|E|Lead 34126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034127|134127|989898|1|9999034127|MR|Test|E|Lead 34127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034128|134128|989898|1|9999034128|MR|Test|E|Lead 34128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034129|134129|989898|1|9999034129|MR|Test|E|Lead 34129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034130|134130|989898|1|9999034130|MR|Test|E|Lead 34130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034131|134131|989898|1|9999034131|MR|Test|E|Lead 34131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034132|134132|989898|1|9999034132|MR|Test|E|Lead 34132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034133|134133|989898|1|9999034133|MR|Test|E|Lead 34133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034134|134134|989898|1|9999034134|MR|Test|E|Lead 34134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034135|134135|989898|1|9999034135|MR|Test|E|Lead 34135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034136|134136|989898|1|9999034136|MR|Test|E|Lead 34136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034137|134137|989898|1|9999034137|MR|Test|E|Lead 34137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034138|134138|989898|1|9999034138|MR|Test|E|Lead 34138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034139|134139|989898|1|9999034139|MR|Test|E|Lead 34139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034140|134140|989898|1|9999034140|MR|Test|E|Lead 34140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034141|134141|989898|1|9999034141|MR|Test|E|Lead 34141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034142|134142|989898|1|9999034142|MR|Test|E|Lead 34142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034143|134143|989898|1|9999034143|MR|Test|E|Lead 34143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034144|134144|989898|1|9999034144|MR|Test|E|Lead 34144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034145|134145|989898|1|9999034145|MR|Test|E|Lead 34145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034146|134146|989898|1|9999034146|MR|Test|E|Lead 34146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034147|134147|989898|1|9999034147|MR|Test|E|Lead 34147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034148|134148|989898|1|9999034148|MR|Test|E|Lead 34148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034149|134149|989898|1|9999034149|MR|Test|E|Lead 34149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034150|134150|989898|1|9999034150|MR|Test|E|Lead 34150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034151|134151|989898|1|9999034151|MR|Test|E|Lead 34151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034152|134152|989898|1|9999034152|MR|Test|E|Lead 34152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034153|134153|989898|1|9999034153|MR|Test|E|Lead 34153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034154|134154|989898|1|9999034154|MR|Test|E|Lead 34154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034155|134155|989898|1|9999034155|MR|Test|E|Lead 34155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034156|134156|989898|1|9999034156|MR|Test|E|Lead 34156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034157|134157|989898|1|9999034157|MR|Test|E|Lead 34157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034158|134158|989898|1|9999034158|MR|Test|E|Lead 34158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034159|134159|989898|1|9999034159|MR|Test|E|Lead 34159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034160|134160|989898|1|9999034160|MR|Test|E|Lead 34160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034161|134161|989898|1|9999034161|MR|Test|E|Lead 34161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034162|134162|989898|1|9999034162|MR|Test|E|Lead 34162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034163|134163|989898|1|9999034163|MR|Test|E|Lead 34163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034164|134164|989898|1|9999034164|MR|Test|E|Lead 34164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034165|134165|989898|1|9999034165|MR|Test|E|Lead 34165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034166|134166|989898|1|9999034166|MR|Test|E|Lead 34166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034167|134167|989898|1|9999034167|MR|Test|E|Lead 34167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034168|134168|989898|1|9999034168|MR|Test|E|Lead 34168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034169|134169|989898|1|9999034169|MR|Test|E|Lead 34169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034170|134170|989898|1|9999034170|MR|Test|E|Lead 34170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034171|134171|989898|1|9999034171|MR|Test|E|Lead 34171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034172|134172|989898|1|9999034172|MR|Test|E|Lead 34172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034173|134173|989898|1|9999034173|MR|Test|E|Lead 34173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034174|134174|989898|1|9999034174|MR|Test|E|Lead 34174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034175|134175|989898|1|9999034175|MR|Test|E|Lead 34175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034176|134176|989898|1|9999034176|MR|Test|E|Lead 34176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034177|134177|989898|1|9999034177|MR|Test|E|Lead 34177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034178|134178|989898|1|9999034178|MR|Test|E|Lead 34178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034179|134179|989898|1|9999034179|MR|Test|E|Lead 34179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034180|134180|989898|1|9999034180|MR|Test|E|Lead 34180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034181|134181|989898|1|9999034181|MR|Test|E|Lead 34181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034182|134182|989898|1|9999034182|MR|Test|E|Lead 34182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034183|134183|989898|1|9999034183|MR|Test|E|Lead 34183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034184|134184|989898|1|9999034184|MR|Test|E|Lead 34184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034185|134185|989898|1|9999034185|MR|Test|E|Lead 34185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034186|134186|989898|1|9999034186|MR|Test|E|Lead 34186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034187|134187|989898|1|9999034187|MR|Test|E|Lead 34187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034188|134188|989898|1|9999034188|MR|Test|E|Lead 34188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034189|134189|989898|1|9999034189|MR|Test|E|Lead 34189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034190|134190|989898|1|9999034190|MR|Test|E|Lead 34190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034191|134191|989898|1|9999034191|MR|Test|E|Lead 34191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034192|134192|989898|1|9999034192|MR|Test|E|Lead 34192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034193|134193|989898|1|9999034193|MR|Test|E|Lead 34193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034194|134194|989898|1|9999034194|MR|Test|E|Lead 34194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034195|134195|989898|1|9999034195|MR|Test|E|Lead 34195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034196|134196|989898|1|9999034196|MR|Test|E|Lead 34196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034197|134197|989898|1|9999034197|MR|Test|E|Lead 34197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034198|134198|989898|1|9999034198|MR|Test|E|Lead 34198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034199|134199|989898|1|9999034199|MR|Test|E|Lead 34199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034200|134200|989898|1|9999034200|MR|Test|E|Lead 34200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034201|134201|989898|1|9999034201|MR|Test|E|Lead 34201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034202|134202|989898|1|9999034202|MR|Test|E|Lead 34202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034203|134203|989898|1|9999034203|MR|Test|E|Lead 34203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034204|134204|989898|1|9999034204|MR|Test|E|Lead 34204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034205|134205|989898|1|9999034205|MR|Test|E|Lead 34205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034206|134206|989898|1|9999034206|MR|Test|E|Lead 34206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034207|134207|989898|1|9999034207|MR|Test|E|Lead 34207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034208|134208|989898|1|9999034208|MR|Test|E|Lead 34208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034209|134209|989898|1|9999034209|MR|Test|E|Lead 34209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034210|134210|989898|1|9999034210|MR|Test|E|Lead 34210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034211|134211|989898|1|9999034211|MR|Test|E|Lead 34211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034212|134212|989898|1|9999034212|MR|Test|E|Lead 34212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034213|134213|989898|1|9999034213|MR|Test|E|Lead 34213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034214|134214|989898|1|9999034214|MR|Test|E|Lead 34214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034215|134215|989898|1|9999034215|MR|Test|E|Lead 34215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034216|134216|989898|1|9999034216|MR|Test|E|Lead 34216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034217|134217|989898|1|9999034217|MR|Test|E|Lead 34217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034218|134218|989898|1|9999034218|MR|Test|E|Lead 34218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034219|134219|989898|1|9999034219|MR|Test|E|Lead 34219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034220|134220|989898|1|9999034220|MR|Test|E|Lead 34220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034221|134221|989898|1|9999034221|MR|Test|E|Lead 34221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034222|134222|989898|1|9999034222|MR|Test|E|Lead 34222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034223|134223|989898|1|9999034223|MR|Test|E|Lead 34223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034224|134224|989898|1|9999034224|MR|Test|E|Lead 34224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034225|134225|989898|1|9999034225|MR|Test|E|Lead 34225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034226|134226|989898|1|9999034226|MR|Test|E|Lead 34226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034227|134227|989898|1|9999034227|MR|Test|E|Lead 34227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034228|134228|989898|1|9999034228|MR|Test|E|Lead 34228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034229|134229|989898|1|9999034229|MR|Test|E|Lead 34229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034230|134230|989898|1|9999034230|MR|Test|E|Lead 34230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034231|134231|989898|1|9999034231|MR|Test|E|Lead 34231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034232|134232|989898|1|9999034232|MR|Test|E|Lead 34232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034233|134233|989898|1|9999034233|MR|Test|E|Lead 34233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034234|134234|989898|1|9999034234|MR|Test|E|Lead 34234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034235|134235|989898|1|9999034235|MR|Test|E|Lead 34235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034236|134236|989898|1|9999034236|MR|Test|E|Lead 34236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034237|134237|989898|1|9999034237|MR|Test|E|Lead 34237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034238|134238|989898|1|9999034238|MR|Test|E|Lead 34238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034239|134239|989898|1|9999034239|MR|Test|E|Lead 34239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034240|134240|989898|1|9999034240|MR|Test|E|Lead 34240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034241|134241|989898|1|9999034241|MR|Test|E|Lead 34241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034242|134242|989898|1|9999034242|MR|Test|E|Lead 34242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034243|134243|989898|1|9999034243|MR|Test|E|Lead 34243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034244|134244|989898|1|9999034244|MR|Test|E|Lead 34244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034245|134245|989898|1|9999034245|MR|Test|E|Lead 34245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034246|134246|989898|1|9999034246|MR|Test|E|Lead 34246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034247|134247|989898|1|9999034247|MR|Test|E|Lead 34247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034248|134248|989898|1|9999034248|MR|Test|E|Lead 34248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034249|134249|989898|1|9999034249|MR|Test|E|Lead 34249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034250|134250|989898|1|9999034250|MR|Test|E|Lead 34250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034251|134251|989898|1|9999034251|MR|Test|E|Lead 34251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034252|134252|989898|1|9999034252|MR|Test|E|Lead 34252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034253|134253|989898|1|9999034253|MR|Test|E|Lead 34253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034254|134254|989898|1|9999034254|MR|Test|E|Lead 34254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034255|134255|989898|1|9999034255|MR|Test|E|Lead 34255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034256|134256|989898|1|9999034256|MR|Test|E|Lead 34256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034257|134257|989898|1|9999034257|MR|Test|E|Lead 34257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034258|134258|989898|1|9999034258|MR|Test|E|Lead 34258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034259|134259|989898|1|9999034259|MR|Test|E|Lead 34259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034260|134260|989898|1|9999034260|MR|Test|E|Lead 34260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034261|134261|989898|1|9999034261|MR|Test|E|Lead 34261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034262|134262|989898|1|9999034262|MR|Test|E|Lead 34262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034263|134263|989898|1|9999034263|MR|Test|E|Lead 34263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034264|134264|989898|1|9999034264|MR|Test|E|Lead 34264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034265|134265|989898|1|9999034265|MR|Test|E|Lead 34265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034266|134266|989898|1|9999034266|MR|Test|E|Lead 34266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034267|134267|989898|1|9999034267|MR|Test|E|Lead 34267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034268|134268|989898|1|9999034268|MR|Test|E|Lead 34268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034269|134269|989898|1|9999034269|MR|Test|E|Lead 34269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034270|134270|989898|1|9999034270|MR|Test|E|Lead 34270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034271|134271|989898|1|9999034271|MR|Test|E|Lead 34271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034272|134272|989898|1|9999034272|MR|Test|E|Lead 34272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034273|134273|989898|1|9999034273|MR|Test|E|Lead 34273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034274|134274|989898|1|9999034274|MR|Test|E|Lead 34274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034275|134275|989898|1|9999034275|MR|Test|E|Lead 34275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034276|134276|989898|1|9999034276|MR|Test|E|Lead 34276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034277|134277|989898|1|9999034277|MR|Test|E|Lead 34277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034278|134278|989898|1|9999034278|MR|Test|E|Lead 34278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034279|134279|989898|1|9999034279|MR|Test|E|Lead 34279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034280|134280|989898|1|9999034280|MR|Test|E|Lead 34280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034281|134281|989898|1|9999034281|MR|Test|E|Lead 34281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034282|134282|989898|1|9999034282|MR|Test|E|Lead 34282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034283|134283|989898|1|9999034283|MR|Test|E|Lead 34283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034284|134284|989898|1|9999034284|MR|Test|E|Lead 34284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034285|134285|989898|1|9999034285|MR|Test|E|Lead 34285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034286|134286|989898|1|9999034286|MR|Test|E|Lead 34286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034287|134287|989898|1|9999034287|MR|Test|E|Lead 34287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034288|134288|989898|1|9999034288|MR|Test|E|Lead 34288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034289|134289|989898|1|9999034289|MR|Test|E|Lead 34289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034290|134290|989898|1|9999034290|MR|Test|E|Lead 34290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034291|134291|989898|1|9999034291|MR|Test|E|Lead 34291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034292|134292|989898|1|9999034292|MR|Test|E|Lead 34292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034293|134293|989898|1|9999034293|MR|Test|E|Lead 34293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034294|134294|989898|1|9999034294|MR|Test|E|Lead 34294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034295|134295|989898|1|9999034295|MR|Test|E|Lead 34295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034296|134296|989898|1|9999034296|MR|Test|E|Lead 34296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034297|134297|989898|1|9999034297|MR|Test|E|Lead 34297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034298|134298|989898|1|9999034298|MR|Test|E|Lead 34298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034299|134299|989898|1|9999034299|MR|Test|E|Lead 34299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034300|134300|989898|1|9999034300|MR|Test|E|Lead 34300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034301|134301|989898|1|9999034301|MR|Test|E|Lead 34301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034302|134302|989898|1|9999034302|MR|Test|E|Lead 34302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034303|134303|989898|1|9999034303|MR|Test|E|Lead 34303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034304|134304|989898|1|9999034304|MR|Test|E|Lead 34304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034305|134305|989898|1|9999034305|MR|Test|E|Lead 34305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034306|134306|989898|1|9999034306|MR|Test|E|Lead 34306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034307|134307|989898|1|9999034307|MR|Test|E|Lead 34307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034308|134308|989898|1|9999034308|MR|Test|E|Lead 34308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034309|134309|989898|1|9999034309|MR|Test|E|Lead 34309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034310|134310|989898|1|9999034310|MR|Test|E|Lead 34310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034311|134311|989898|1|9999034311|MR|Test|E|Lead 34311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034312|134312|989898|1|9999034312|MR|Test|E|Lead 34312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034313|134313|989898|1|9999034313|MR|Test|E|Lead 34313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034314|134314|989898|1|9999034314|MR|Test|E|Lead 34314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034315|134315|989898|1|9999034315|MR|Test|E|Lead 34315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034316|134316|989898|1|9999034316|MR|Test|E|Lead 34316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034317|134317|989898|1|9999034317|MR|Test|E|Lead 34317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034318|134318|989898|1|9999034318|MR|Test|E|Lead 34318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034319|134319|989898|1|9999034319|MR|Test|E|Lead 34319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034320|134320|989898|1|9999034320|MR|Test|E|Lead 34320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034321|134321|989898|1|9999034321|MR|Test|E|Lead 34321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034322|134322|989898|1|9999034322|MR|Test|E|Lead 34322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034323|134323|989898|1|9999034323|MR|Test|E|Lead 34323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034324|134324|989898|1|9999034324|MR|Test|E|Lead 34324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034325|134325|989898|1|9999034325|MR|Test|E|Lead 34325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034326|134326|989898|1|9999034326|MR|Test|E|Lead 34326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034327|134327|989898|1|9999034327|MR|Test|E|Lead 34327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034328|134328|989898|1|9999034328|MR|Test|E|Lead 34328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034329|134329|989898|1|9999034329|MR|Test|E|Lead 34329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034330|134330|989898|1|9999034330|MR|Test|E|Lead 34330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034331|134331|989898|1|9999034331|MR|Test|E|Lead 34331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034332|134332|989898|1|9999034332|MR|Test|E|Lead 34332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034333|134333|989898|1|9999034333|MR|Test|E|Lead 34333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034334|134334|989898|1|9999034334|MR|Test|E|Lead 34334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034335|134335|989898|1|9999034335|MR|Test|E|Lead 34335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034336|134336|989898|1|9999034336|MR|Test|E|Lead 34336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034337|134337|989898|1|9999034337|MR|Test|E|Lead 34337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034338|134338|989898|1|9999034338|MR|Test|E|Lead 34338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034339|134339|989898|1|9999034339|MR|Test|E|Lead 34339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034340|134340|989898|1|9999034340|MR|Test|E|Lead 34340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034341|134341|989898|1|9999034341|MR|Test|E|Lead 34341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034342|134342|989898|1|9999034342|MR|Test|E|Lead 34342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034343|134343|989898|1|9999034343|MR|Test|E|Lead 34343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034344|134344|989898|1|9999034344|MR|Test|E|Lead 34344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034345|134345|989898|1|9999034345|MR|Test|E|Lead 34345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034346|134346|989898|1|9999034346|MR|Test|E|Lead 34346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034347|134347|989898|1|9999034347|MR|Test|E|Lead 34347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034348|134348|989898|1|9999034348|MR|Test|E|Lead 34348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034349|134349|989898|1|9999034349|MR|Test|E|Lead 34349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034350|134350|989898|1|9999034350|MR|Test|E|Lead 34350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034351|134351|989898|1|9999034351|MR|Test|E|Lead 34351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034352|134352|989898|1|9999034352|MR|Test|E|Lead 34352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034353|134353|989898|1|9999034353|MR|Test|E|Lead 34353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034354|134354|989898|1|9999034354|MR|Test|E|Lead 34354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034355|134355|989898|1|9999034355|MR|Test|E|Lead 34355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034356|134356|989898|1|9999034356|MR|Test|E|Lead 34356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034357|134357|989898|1|9999034357|MR|Test|E|Lead 34357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034358|134358|989898|1|9999034358|MR|Test|E|Lead 34358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034359|134359|989898|1|9999034359|MR|Test|E|Lead 34359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034360|134360|989898|1|9999034360|MR|Test|E|Lead 34360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034361|134361|989898|1|9999034361|MR|Test|E|Lead 34361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034362|134362|989898|1|9999034362|MR|Test|E|Lead 34362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034363|134363|989898|1|9999034363|MR|Test|E|Lead 34363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034364|134364|989898|1|9999034364|MR|Test|E|Lead 34364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034365|134365|989898|1|9999034365|MR|Test|E|Lead 34365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034366|134366|989898|1|9999034366|MR|Test|E|Lead 34366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034367|134367|989898|1|9999034367|MR|Test|E|Lead 34367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034368|134368|989898|1|9999034368|MR|Test|E|Lead 34368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034369|134369|989898|1|9999034369|MR|Test|E|Lead 34369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034370|134370|989898|1|9999034370|MR|Test|E|Lead 34370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034371|134371|989898|1|9999034371|MR|Test|E|Lead 34371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034372|134372|989898|1|9999034372|MR|Test|E|Lead 34372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034373|134373|989898|1|9999034373|MR|Test|E|Lead 34373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034374|134374|989898|1|9999034374|MR|Test|E|Lead 34374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034375|134375|989898|1|9999034375|MR|Test|E|Lead 34375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034376|134376|989898|1|9999034376|MR|Test|E|Lead 34376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034377|134377|989898|1|9999034377|MR|Test|E|Lead 34377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034378|134378|989898|1|9999034378|MR|Test|E|Lead 34378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034379|134379|989898|1|9999034379|MR|Test|E|Lead 34379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034380|134380|989898|1|9999034380|MR|Test|E|Lead 34380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034381|134381|989898|1|9999034381|MR|Test|E|Lead 34381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034382|134382|989898|1|9999034382|MR|Test|E|Lead 34382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034383|134383|989898|1|9999034383|MR|Test|E|Lead 34383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034384|134384|989898|1|9999034384|MR|Test|E|Lead 34384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034385|134385|989898|1|9999034385|MR|Test|E|Lead 34385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034386|134386|989898|1|9999034386|MR|Test|E|Lead 34386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034387|134387|989898|1|9999034387|MR|Test|E|Lead 34387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034388|134388|989898|1|9999034388|MR|Test|E|Lead 34388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034389|134389|989898|1|9999034389|MR|Test|E|Lead 34389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034390|134390|989898|1|9999034390|MR|Test|E|Lead 34390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034391|134391|989898|1|9999034391|MR|Test|E|Lead 34391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034392|134392|989898|1|9999034392|MR|Test|E|Lead 34392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034393|134393|989898|1|9999034393|MR|Test|E|Lead 34393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034394|134394|989898|1|9999034394|MR|Test|E|Lead 34394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034395|134395|989898|1|9999034395|MR|Test|E|Lead 34395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034396|134396|989898|1|9999034396|MR|Test|E|Lead 34396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034397|134397|989898|1|9999034397|MR|Test|E|Lead 34397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034398|134398|989898|1|9999034398|MR|Test|E|Lead 34398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034399|134399|989898|1|9999034399|MR|Test|E|Lead 34399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034400|134400|989898|1|9999034400|MR|Test|E|Lead 34400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034401|134401|989898|1|9999034401|MR|Test|E|Lead 34401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034402|134402|989898|1|9999034402|MR|Test|E|Lead 34402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034403|134403|989898|1|9999034403|MR|Test|E|Lead 34403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034404|134404|989898|1|9999034404|MR|Test|E|Lead 34404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034405|134405|989898|1|9999034405|MR|Test|E|Lead 34405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034406|134406|989898|1|9999034406|MR|Test|E|Lead 34406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034407|134407|989898|1|9999034407|MR|Test|E|Lead 34407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034408|134408|989898|1|9999034408|MR|Test|E|Lead 34408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034409|134409|989898|1|9999034409|MR|Test|E|Lead 34409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034410|134410|989898|1|9999034410|MR|Test|E|Lead 34410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034411|134411|989898|1|9999034411|MR|Test|E|Lead 34411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034412|134412|989898|1|9999034412|MR|Test|E|Lead 34412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034413|134413|989898|1|9999034413|MR|Test|E|Lead 34413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034414|134414|989898|1|9999034414|MR|Test|E|Lead 34414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034415|134415|989898|1|9999034415|MR|Test|E|Lead 34415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034416|134416|989898|1|9999034416|MR|Test|E|Lead 34416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034417|134417|989898|1|9999034417|MR|Test|E|Lead 34417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034418|134418|989898|1|9999034418|MR|Test|E|Lead 34418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034419|134419|989898|1|9999034419|MR|Test|E|Lead 34419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034420|134420|989898|1|9999034420|MR|Test|E|Lead 34420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034421|134421|989898|1|9999034421|MR|Test|E|Lead 34421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034422|134422|989898|1|9999034422|MR|Test|E|Lead 34422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034423|134423|989898|1|9999034423|MR|Test|E|Lead 34423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034424|134424|989898|1|9999034424|MR|Test|E|Lead 34424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034425|134425|989898|1|9999034425|MR|Test|E|Lead 34425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034426|134426|989898|1|9999034426|MR|Test|E|Lead 34426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034427|134427|989898|1|9999034427|MR|Test|E|Lead 34427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034428|134428|989898|1|9999034428|MR|Test|E|Lead 34428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034429|134429|989898|1|9999034429|MR|Test|E|Lead 34429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034430|134430|989898|1|9999034430|MR|Test|E|Lead 34430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034431|134431|989898|1|9999034431|MR|Test|E|Lead 34431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034432|134432|989898|1|9999034432|MR|Test|E|Lead 34432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034433|134433|989898|1|9999034433|MR|Test|E|Lead 34433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034434|134434|989898|1|9999034434|MR|Test|E|Lead 34434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034435|134435|989898|1|9999034435|MR|Test|E|Lead 34435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034436|134436|989898|1|9999034436|MR|Test|E|Lead 34436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034437|134437|989898|1|9999034437|MR|Test|E|Lead 34437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034438|134438|989898|1|9999034438|MR|Test|E|Lead 34438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034439|134439|989898|1|9999034439|MR|Test|E|Lead 34439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034440|134440|989898|1|9999034440|MR|Test|E|Lead 34440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034441|134441|989898|1|9999034441|MR|Test|E|Lead 34441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034442|134442|989898|1|9999034442|MR|Test|E|Lead 34442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034443|134443|989898|1|9999034443|MR|Test|E|Lead 34443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034444|134444|989898|1|9999034444|MR|Test|E|Lead 34444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034445|134445|989898|1|9999034445|MR|Test|E|Lead 34445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034446|134446|989898|1|9999034446|MR|Test|E|Lead 34446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034447|134447|989898|1|9999034447|MR|Test|E|Lead 34447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034448|134448|989898|1|9999034448|MR|Test|E|Lead 34448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034449|134449|989898|1|9999034449|MR|Test|E|Lead 34449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034450|134450|989898|1|9999034450|MR|Test|E|Lead 34450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034451|134451|989898|1|9999034451|MR|Test|E|Lead 34451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034452|134452|989898|1|9999034452|MR|Test|E|Lead 34452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034453|134453|989898|1|9999034453|MR|Test|E|Lead 34453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034454|134454|989898|1|9999034454|MR|Test|E|Lead 34454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034455|134455|989898|1|9999034455|MR|Test|E|Lead 34455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034456|134456|989898|1|9999034456|MR|Test|E|Lead 34456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034457|134457|989898|1|9999034457|MR|Test|E|Lead 34457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034458|134458|989898|1|9999034458|MR|Test|E|Lead 34458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034459|134459|989898|1|9999034459|MR|Test|E|Lead 34459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034460|134460|989898|1|9999034460|MR|Test|E|Lead 34460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034461|134461|989898|1|9999034461|MR|Test|E|Lead 34461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034462|134462|989898|1|9999034462|MR|Test|E|Lead 34462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034463|134463|989898|1|9999034463|MR|Test|E|Lead 34463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034464|134464|989898|1|9999034464|MR|Test|E|Lead 34464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034465|134465|989898|1|9999034465|MR|Test|E|Lead 34465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034466|134466|989898|1|9999034466|MR|Test|E|Lead 34466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034467|134467|989898|1|9999034467|MR|Test|E|Lead 34467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034468|134468|989898|1|9999034468|MR|Test|E|Lead 34468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034469|134469|989898|1|9999034469|MR|Test|E|Lead 34469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034470|134470|989898|1|9999034470|MR|Test|E|Lead 34470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034471|134471|989898|1|9999034471|MR|Test|E|Lead 34471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034472|134472|989898|1|9999034472|MR|Test|E|Lead 34472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034473|134473|989898|1|9999034473|MR|Test|E|Lead 34473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034474|134474|989898|1|9999034474|MR|Test|E|Lead 34474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034475|134475|989898|1|9999034475|MR|Test|E|Lead 34475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034476|134476|989898|1|9999034476|MR|Test|E|Lead 34476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034477|134477|989898|1|9999034477|MR|Test|E|Lead 34477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034478|134478|989898|1|9999034478|MR|Test|E|Lead 34478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034479|134479|989898|1|9999034479|MR|Test|E|Lead 34479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034480|134480|989898|1|9999034480|MR|Test|E|Lead 34480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034481|134481|989898|1|9999034481|MR|Test|E|Lead 34481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034482|134482|989898|1|9999034482|MR|Test|E|Lead 34482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034483|134483|989898|1|9999034483|MR|Test|E|Lead 34483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034484|134484|989898|1|9999034484|MR|Test|E|Lead 34484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034485|134485|989898|1|9999034485|MR|Test|E|Lead 34485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034486|134486|989898|1|9999034486|MR|Test|E|Lead 34486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034487|134487|989898|1|9999034487|MR|Test|E|Lead 34487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034488|134488|989898|1|9999034488|MR|Test|E|Lead 34488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034489|134489|989898|1|9999034489|MR|Test|E|Lead 34489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034490|134490|989898|1|9999034490|MR|Test|E|Lead 34490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034491|134491|989898|1|9999034491|MR|Test|E|Lead 34491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034492|134492|989898|1|9999034492|MR|Test|E|Lead 34492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034493|134493|989898|1|9999034493|MR|Test|E|Lead 34493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034494|134494|989898|1|9999034494|MR|Test|E|Lead 34494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034495|134495|989898|1|9999034495|MR|Test|E|Lead 34495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034496|134496|989898|1|9999034496|MR|Test|E|Lead 34496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034497|134497|989898|1|9999034497|MR|Test|E|Lead 34497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034498|134498|989898|1|9999034498|MR|Test|E|Lead 34498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034499|134499|989898|1|9999034499|MR|Test|E|Lead 34499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034500|134500|989898|1|9999034500|MR|Test|E|Lead 34500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034501|134501|989898|1|9999034501|MR|Test|E|Lead 34501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034502|134502|989898|1|9999034502|MR|Test|E|Lead 34502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034503|134503|989898|1|9999034503|MR|Test|E|Lead 34503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034504|134504|989898|1|9999034504|MR|Test|E|Lead 34504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034505|134505|989898|1|9999034505|MR|Test|E|Lead 34505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034506|134506|989898|1|9999034506|MR|Test|E|Lead 34506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034507|134507|989898|1|9999034507|MR|Test|E|Lead 34507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034508|134508|989898|1|9999034508|MR|Test|E|Lead 34508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034509|134509|989898|1|9999034509|MR|Test|E|Lead 34509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034510|134510|989898|1|9999034510|MR|Test|E|Lead 34510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034511|134511|989898|1|9999034511|MR|Test|E|Lead 34511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034512|134512|989898|1|9999034512|MR|Test|E|Lead 34512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034513|134513|989898|1|9999034513|MR|Test|E|Lead 34513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034514|134514|989898|1|9999034514|MR|Test|E|Lead 34514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034515|134515|989898|1|9999034515|MR|Test|E|Lead 34515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034516|134516|989898|1|9999034516|MR|Test|E|Lead 34516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034517|134517|989898|1|9999034517|MR|Test|E|Lead 34517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034518|134518|989898|1|9999034518|MR|Test|E|Lead 34518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034519|134519|989898|1|9999034519|MR|Test|E|Lead 34519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034520|134520|989898|1|9999034520|MR|Test|E|Lead 34520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034521|134521|989898|1|9999034521|MR|Test|E|Lead 34521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034522|134522|989898|1|9999034522|MR|Test|E|Lead 34522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034523|134523|989898|1|9999034523|MR|Test|E|Lead 34523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034524|134524|989898|1|9999034524|MR|Test|E|Lead 34524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034525|134525|989898|1|9999034525|MR|Test|E|Lead 34525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034526|134526|989898|1|9999034526|MR|Test|E|Lead 34526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034527|134527|989898|1|9999034527|MR|Test|E|Lead 34527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034528|134528|989898|1|9999034528|MR|Test|E|Lead 34528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034529|134529|989898|1|9999034529|MR|Test|E|Lead 34529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034530|134530|989898|1|9999034530|MR|Test|E|Lead 34530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034531|134531|989898|1|9999034531|MR|Test|E|Lead 34531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034532|134532|989898|1|9999034532|MR|Test|E|Lead 34532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034533|134533|989898|1|9999034533|MR|Test|E|Lead 34533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034534|134534|989898|1|9999034534|MR|Test|E|Lead 34534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034535|134535|989898|1|9999034535|MR|Test|E|Lead 34535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034536|134536|989898|1|9999034536|MR|Test|E|Lead 34536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034537|134537|989898|1|9999034537|MR|Test|E|Lead 34537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034538|134538|989898|1|9999034538|MR|Test|E|Lead 34538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034539|134539|989898|1|9999034539|MR|Test|E|Lead 34539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034540|134540|989898|1|9999034540|MR|Test|E|Lead 34540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034541|134541|989898|1|9999034541|MR|Test|E|Lead 34541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034542|134542|989898|1|9999034542|MR|Test|E|Lead 34542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034543|134543|989898|1|9999034543|MR|Test|E|Lead 34543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034544|134544|989898|1|9999034544|MR|Test|E|Lead 34544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034545|134545|989898|1|9999034545|MR|Test|E|Lead 34545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034546|134546|989898|1|9999034546|MR|Test|E|Lead 34546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034547|134547|989898|1|9999034547|MR|Test|E|Lead 34547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034548|134548|989898|1|9999034548|MR|Test|E|Lead 34548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034549|134549|989898|1|9999034549|MR|Test|E|Lead 34549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034550|134550|989898|1|9999034550|MR|Test|E|Lead 34550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034551|134551|989898|1|9999034551|MR|Test|E|Lead 34551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034552|134552|989898|1|9999034552|MR|Test|E|Lead 34552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034553|134553|989898|1|9999034553|MR|Test|E|Lead 34553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034554|134554|989898|1|9999034554|MR|Test|E|Lead 34554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034555|134555|989898|1|9999034555|MR|Test|E|Lead 34555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034556|134556|989898|1|9999034556|MR|Test|E|Lead 34556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034557|134557|989898|1|9999034557|MR|Test|E|Lead 34557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034558|134558|989898|1|9999034558|MR|Test|E|Lead 34558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034559|134559|989898|1|9999034559|MR|Test|E|Lead 34559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034560|134560|989898|1|9999034560|MR|Test|E|Lead 34560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034561|134561|989898|1|9999034561|MR|Test|E|Lead 34561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034562|134562|989898|1|9999034562|MR|Test|E|Lead 34562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034563|134563|989898|1|9999034563|MR|Test|E|Lead 34563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034564|134564|989898|1|9999034564|MR|Test|E|Lead 34564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034565|134565|989898|1|9999034565|MR|Test|E|Lead 34565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034566|134566|989898|1|9999034566|MR|Test|E|Lead 34566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034567|134567|989898|1|9999034567|MR|Test|E|Lead 34567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034568|134568|989898|1|9999034568|MR|Test|E|Lead 34568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034569|134569|989898|1|9999034569|MR|Test|E|Lead 34569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034570|134570|989898|1|9999034570|MR|Test|E|Lead 34570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034571|134571|989898|1|9999034571|MR|Test|E|Lead 34571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034572|134572|989898|1|9999034572|MR|Test|E|Lead 34572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034573|134573|989898|1|9999034573|MR|Test|E|Lead 34573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034574|134574|989898|1|9999034574|MR|Test|E|Lead 34574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034575|134575|989898|1|9999034575|MR|Test|E|Lead 34575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034576|134576|989898|1|9999034576|MR|Test|E|Lead 34576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034577|134577|989898|1|9999034577|MR|Test|E|Lead 34577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034578|134578|989898|1|9999034578|MR|Test|E|Lead 34578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034579|134579|989898|1|9999034579|MR|Test|E|Lead 34579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034580|134580|989898|1|9999034580|MR|Test|E|Lead 34580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034581|134581|989898|1|9999034581|MR|Test|E|Lead 34581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034582|134582|989898|1|9999034582|MR|Test|E|Lead 34582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034583|134583|989898|1|9999034583|MR|Test|E|Lead 34583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034584|134584|989898|1|9999034584|MR|Test|E|Lead 34584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034585|134585|989898|1|9999034585|MR|Test|E|Lead 34585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034586|134586|989898|1|9999034586|MR|Test|E|Lead 34586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034587|134587|989898|1|9999034587|MR|Test|E|Lead 34587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034588|134588|989898|1|9999034588|MR|Test|E|Lead 34588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034589|134589|989898|1|9999034589|MR|Test|E|Lead 34589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034590|134590|989898|1|9999034590|MR|Test|E|Lead 34590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034591|134591|989898|1|9999034591|MR|Test|E|Lead 34591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034592|134592|989898|1|9999034592|MR|Test|E|Lead 34592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034593|134593|989898|1|9999034593|MR|Test|E|Lead 34593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034594|134594|989898|1|9999034594|MR|Test|E|Lead 34594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034595|134595|989898|1|9999034595|MR|Test|E|Lead 34595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034596|134596|989898|1|9999034596|MR|Test|E|Lead 34596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034597|134597|989898|1|9999034597|MR|Test|E|Lead 34597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034598|134598|989898|1|9999034598|MR|Test|E|Lead 34598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034599|134599|989898|1|9999034599|MR|Test|E|Lead 34599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034600|134600|989898|1|9999034600|MR|Test|E|Lead 34600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034601|134601|989898|1|9999034601|MR|Test|E|Lead 34601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034602|134602|989898|1|9999034602|MR|Test|E|Lead 34602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034603|134603|989898|1|9999034603|MR|Test|E|Lead 34603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034604|134604|989898|1|9999034604|MR|Test|E|Lead 34604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034605|134605|989898|1|9999034605|MR|Test|E|Lead 34605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034606|134606|989898|1|9999034606|MR|Test|E|Lead 34606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034607|134607|989898|1|9999034607|MR|Test|E|Lead 34607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034608|134608|989898|1|9999034608|MR|Test|E|Lead 34608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034609|134609|989898|1|9999034609|MR|Test|E|Lead 34609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034610|134610|989898|1|9999034610|MR|Test|E|Lead 34610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034611|134611|989898|1|9999034611|MR|Test|E|Lead 34611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034612|134612|989898|1|9999034612|MR|Test|E|Lead 34612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034613|134613|989898|1|9999034613|MR|Test|E|Lead 34613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034614|134614|989898|1|9999034614|MR|Test|E|Lead 34614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034615|134615|989898|1|9999034615|MR|Test|E|Lead 34615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034616|134616|989898|1|9999034616|MR|Test|E|Lead 34616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034617|134617|989898|1|9999034617|MR|Test|E|Lead 34617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034618|134618|989898|1|9999034618|MR|Test|E|Lead 34618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034619|134619|989898|1|9999034619|MR|Test|E|Lead 34619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034620|134620|989898|1|9999034620|MR|Test|E|Lead 34620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034621|134621|989898|1|9999034621|MR|Test|E|Lead 34621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034622|134622|989898|1|9999034622|MR|Test|E|Lead 34622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034623|134623|989898|1|9999034623|MR|Test|E|Lead 34623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034624|134624|989898|1|9999034624|MR|Test|E|Lead 34624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034625|134625|989898|1|9999034625|MR|Test|E|Lead 34625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034626|134626|989898|1|9999034626|MR|Test|E|Lead 34626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034627|134627|989898|1|9999034627|MR|Test|E|Lead 34627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034628|134628|989898|1|9999034628|MR|Test|E|Lead 34628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034629|134629|989898|1|9999034629|MR|Test|E|Lead 34629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034630|134630|989898|1|9999034630|MR|Test|E|Lead 34630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034631|134631|989898|1|9999034631|MR|Test|E|Lead 34631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034632|134632|989898|1|9999034632|MR|Test|E|Lead 34632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034633|134633|989898|1|9999034633|MR|Test|E|Lead 34633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034634|134634|989898|1|9999034634|MR|Test|E|Lead 34634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034635|134635|989898|1|9999034635|MR|Test|E|Lead 34635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034636|134636|989898|1|9999034636|MR|Test|E|Lead 34636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034637|134637|989898|1|9999034637|MR|Test|E|Lead 34637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034638|134638|989898|1|9999034638|MR|Test|E|Lead 34638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034639|134639|989898|1|9999034639|MR|Test|E|Lead 34639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034640|134640|989898|1|9999034640|MR|Test|E|Lead 34640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034641|134641|989898|1|9999034641|MR|Test|E|Lead 34641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034642|134642|989898|1|9999034642|MR|Test|E|Lead 34642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034643|134643|989898|1|9999034643|MR|Test|E|Lead 34643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034644|134644|989898|1|9999034644|MR|Test|E|Lead 34644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034645|134645|989898|1|9999034645|MR|Test|E|Lead 34645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034646|134646|989898|1|9999034646|MR|Test|E|Lead 34646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034647|134647|989898|1|9999034647|MR|Test|E|Lead 34647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034648|134648|989898|1|9999034648|MR|Test|E|Lead 34648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034649|134649|989898|1|9999034649|MR|Test|E|Lead 34649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034650|134650|989898|1|9999034650|MR|Test|E|Lead 34650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034651|134651|989898|1|9999034651|MR|Test|E|Lead 34651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034652|134652|989898|1|9999034652|MR|Test|E|Lead 34652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034653|134653|989898|1|9999034653|MR|Test|E|Lead 34653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034654|134654|989898|1|9999034654|MR|Test|E|Lead 34654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034655|134655|989898|1|9999034655|MR|Test|E|Lead 34655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034656|134656|989898|1|9999034656|MR|Test|E|Lead 34656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034657|134657|989898|1|9999034657|MR|Test|E|Lead 34657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034658|134658|989898|1|9999034658|MR|Test|E|Lead 34658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034659|134659|989898|1|9999034659|MR|Test|E|Lead 34659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034660|134660|989898|1|9999034660|MR|Test|E|Lead 34660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034661|134661|989898|1|9999034661|MR|Test|E|Lead 34661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034662|134662|989898|1|9999034662|MR|Test|E|Lead 34662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034663|134663|989898|1|9999034663|MR|Test|E|Lead 34663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034664|134664|989898|1|9999034664|MR|Test|E|Lead 34664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034665|134665|989898|1|9999034665|MR|Test|E|Lead 34665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034666|134666|989898|1|9999034666|MR|Test|E|Lead 34666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034667|134667|989898|1|9999034667|MR|Test|E|Lead 34667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034668|134668|989898|1|9999034668|MR|Test|E|Lead 34668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034669|134669|989898|1|9999034669|MR|Test|E|Lead 34669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034670|134670|989898|1|9999034670|MR|Test|E|Lead 34670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034671|134671|989898|1|9999034671|MR|Test|E|Lead 34671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034672|134672|989898|1|9999034672|MR|Test|E|Lead 34672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034673|134673|989898|1|9999034673|MR|Test|E|Lead 34673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034674|134674|989898|1|9999034674|MR|Test|E|Lead 34674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034675|134675|989898|1|9999034675|MR|Test|E|Lead 34675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034676|134676|989898|1|9999034676|MR|Test|E|Lead 34676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034677|134677|989898|1|9999034677|MR|Test|E|Lead 34677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034678|134678|989898|1|9999034678|MR|Test|E|Lead 34678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034679|134679|989898|1|9999034679|MR|Test|E|Lead 34679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034680|134680|989898|1|9999034680|MR|Test|E|Lead 34680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034681|134681|989898|1|9999034681|MR|Test|E|Lead 34681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034682|134682|989898|1|9999034682|MR|Test|E|Lead 34682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034683|134683|989898|1|9999034683|MR|Test|E|Lead 34683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034684|134684|989898|1|9999034684|MR|Test|E|Lead 34684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034685|134685|989898|1|9999034685|MR|Test|E|Lead 34685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034686|134686|989898|1|9999034686|MR|Test|E|Lead 34686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034687|134687|989898|1|9999034687|MR|Test|E|Lead 34687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034688|134688|989898|1|9999034688|MR|Test|E|Lead 34688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034689|134689|989898|1|9999034689|MR|Test|E|Lead 34689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034690|134690|989898|1|9999034690|MR|Test|E|Lead 34690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034691|134691|989898|1|9999034691|MR|Test|E|Lead 34691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034692|134692|989898|1|9999034692|MR|Test|E|Lead 34692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034693|134693|989898|1|9999034693|MR|Test|E|Lead 34693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034694|134694|989898|1|9999034694|MR|Test|E|Lead 34694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034695|134695|989898|1|9999034695|MR|Test|E|Lead 34695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034696|134696|989898|1|9999034696|MR|Test|E|Lead 34696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034697|134697|989898|1|9999034697|MR|Test|E|Lead 34697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034698|134698|989898|1|9999034698|MR|Test|E|Lead 34698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034699|134699|989898|1|9999034699|MR|Test|E|Lead 34699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034700|134700|989898|1|9999034700|MR|Test|E|Lead 34700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034701|134701|989898|1|9999034701|MR|Test|E|Lead 34701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034702|134702|989898|1|9999034702|MR|Test|E|Lead 34702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034703|134703|989898|1|9999034703|MR|Test|E|Lead 34703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034704|134704|989898|1|9999034704|MR|Test|E|Lead 34704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034705|134705|989898|1|9999034705|MR|Test|E|Lead 34705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034706|134706|989898|1|9999034706|MR|Test|E|Lead 34706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034707|134707|989898|1|9999034707|MR|Test|E|Lead 34707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034708|134708|989898|1|9999034708|MR|Test|E|Lead 34708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034709|134709|989898|1|9999034709|MR|Test|E|Lead 34709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034710|134710|989898|1|9999034710|MR|Test|E|Lead 34710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034711|134711|989898|1|9999034711|MR|Test|E|Lead 34711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034712|134712|989898|1|9999034712|MR|Test|E|Lead 34712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034713|134713|989898|1|9999034713|MR|Test|E|Lead 34713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034714|134714|989898|1|9999034714|MR|Test|E|Lead 34714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034715|134715|989898|1|9999034715|MR|Test|E|Lead 34715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034716|134716|989898|1|9999034716|MR|Test|E|Lead 34716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034717|134717|989898|1|9999034717|MR|Test|E|Lead 34717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034718|134718|989898|1|9999034718|MR|Test|E|Lead 34718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034719|134719|989898|1|9999034719|MR|Test|E|Lead 34719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034720|134720|989898|1|9999034720|MR|Test|E|Lead 34720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034721|134721|989898|1|9999034721|MR|Test|E|Lead 34721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034722|134722|989898|1|9999034722|MR|Test|E|Lead 34722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034723|134723|989898|1|9999034723|MR|Test|E|Lead 34723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034724|134724|989898|1|9999034724|MR|Test|E|Lead 34724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034725|134725|989898|1|9999034725|MR|Test|E|Lead 34725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034726|134726|989898|1|9999034726|MR|Test|E|Lead 34726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034727|134727|989898|1|9999034727|MR|Test|E|Lead 34727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034728|134728|989898|1|9999034728|MR|Test|E|Lead 34728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034729|134729|989898|1|9999034729|MR|Test|E|Lead 34729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034730|134730|989898|1|9999034730|MR|Test|E|Lead 34730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034731|134731|989898|1|9999034731|MR|Test|E|Lead 34731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034732|134732|989898|1|9999034732|MR|Test|E|Lead 34732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034733|134733|989898|1|9999034733|MR|Test|E|Lead 34733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034734|134734|989898|1|9999034734|MR|Test|E|Lead 34734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034735|134735|989898|1|9999034735|MR|Test|E|Lead 34735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034736|134736|989898|1|9999034736|MR|Test|E|Lead 34736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034737|134737|989898|1|9999034737|MR|Test|E|Lead 34737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034738|134738|989898|1|9999034738|MR|Test|E|Lead 34738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034739|134739|989898|1|9999034739|MR|Test|E|Lead 34739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034740|134740|989898|1|9999034740|MR|Test|E|Lead 34740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034741|134741|989898|1|9999034741|MR|Test|E|Lead 34741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034742|134742|989898|1|9999034742|MR|Test|E|Lead 34742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034743|134743|989898|1|9999034743|MR|Test|E|Lead 34743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034744|134744|989898|1|9999034744|MR|Test|E|Lead 34744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034745|134745|989898|1|9999034745|MR|Test|E|Lead 34745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034746|134746|989898|1|9999034746|MR|Test|E|Lead 34746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034747|134747|989898|1|9999034747|MR|Test|E|Lead 34747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034748|134748|989898|1|9999034748|MR|Test|E|Lead 34748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034749|134749|989898|1|9999034749|MR|Test|E|Lead 34749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034750|134750|989898|1|9999034750|MR|Test|E|Lead 34750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034751|134751|989898|1|9999034751|MR|Test|E|Lead 34751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034752|134752|989898|1|9999034752|MR|Test|E|Lead 34752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034753|134753|989898|1|9999034753|MR|Test|E|Lead 34753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034754|134754|989898|1|9999034754|MR|Test|E|Lead 34754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034755|134755|989898|1|9999034755|MR|Test|E|Lead 34755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034756|134756|989898|1|9999034756|MR|Test|E|Lead 34756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034757|134757|989898|1|9999034757|MR|Test|E|Lead 34757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034758|134758|989898|1|9999034758|MR|Test|E|Lead 34758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034759|134759|989898|1|9999034759|MR|Test|E|Lead 34759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034760|134760|989898|1|9999034760|MR|Test|E|Lead 34760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034761|134761|989898|1|9999034761|MR|Test|E|Lead 34761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034762|134762|989898|1|9999034762|MR|Test|E|Lead 34762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034763|134763|989898|1|9999034763|MR|Test|E|Lead 34763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034764|134764|989898|1|9999034764|MR|Test|E|Lead 34764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034765|134765|989898|1|9999034765|MR|Test|E|Lead 34765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034766|134766|989898|1|9999034766|MR|Test|E|Lead 34766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034767|134767|989898|1|9999034767|MR|Test|E|Lead 34767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034768|134768|989898|1|9999034768|MR|Test|E|Lead 34768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034769|134769|989898|1|9999034769|MR|Test|E|Lead 34769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034770|134770|989898|1|9999034770|MR|Test|E|Lead 34770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034771|134771|989898|1|9999034771|MR|Test|E|Lead 34771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034772|134772|989898|1|9999034772|MR|Test|E|Lead 34772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034773|134773|989898|1|9999034773|MR|Test|E|Lead 34773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034774|134774|989898|1|9999034774|MR|Test|E|Lead 34774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034775|134775|989898|1|9999034775|MR|Test|E|Lead 34775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034776|134776|989898|1|9999034776|MR|Test|E|Lead 34776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034777|134777|989898|1|9999034777|MR|Test|E|Lead 34777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034778|134778|989898|1|9999034778|MR|Test|E|Lead 34778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034779|134779|989898|1|9999034779|MR|Test|E|Lead 34779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034780|134780|989898|1|9999034780|MR|Test|E|Lead 34780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034781|134781|989898|1|9999034781|MR|Test|E|Lead 34781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034782|134782|989898|1|9999034782|MR|Test|E|Lead 34782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034783|134783|989898|1|9999034783|MR|Test|E|Lead 34783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034784|134784|989898|1|9999034784|MR|Test|E|Lead 34784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034785|134785|989898|1|9999034785|MR|Test|E|Lead 34785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034786|134786|989898|1|9999034786|MR|Test|E|Lead 34786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034787|134787|989898|1|9999034787|MR|Test|E|Lead 34787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034788|134788|989898|1|9999034788|MR|Test|E|Lead 34788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034789|134789|989898|1|9999034789|MR|Test|E|Lead 34789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034790|134790|989898|1|9999034790|MR|Test|E|Lead 34790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034791|134791|989898|1|9999034791|MR|Test|E|Lead 34791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034792|134792|989898|1|9999034792|MR|Test|E|Lead 34792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034793|134793|989898|1|9999034793|MR|Test|E|Lead 34793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034794|134794|989898|1|9999034794|MR|Test|E|Lead 34794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034795|134795|989898|1|9999034795|MR|Test|E|Lead 34795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034796|134796|989898|1|9999034796|MR|Test|E|Lead 34796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034797|134797|989898|1|9999034797|MR|Test|E|Lead 34797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034798|134798|989898|1|9999034798|MR|Test|E|Lead 34798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034799|134799|989898|1|9999034799|MR|Test|E|Lead 34799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034800|134800|989898|1|9999034800|MR|Test|E|Lead 34800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034801|134801|989898|1|9999034801|MR|Test|E|Lead 34801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034802|134802|989898|1|9999034802|MR|Test|E|Lead 34802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034803|134803|989898|1|9999034803|MR|Test|E|Lead 34803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034804|134804|989898|1|9999034804|MR|Test|E|Lead 34804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034805|134805|989898|1|9999034805|MR|Test|E|Lead 34805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034806|134806|989898|1|9999034806|MR|Test|E|Lead 34806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034807|134807|989898|1|9999034807|MR|Test|E|Lead 34807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034808|134808|989898|1|9999034808|MR|Test|E|Lead 34808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034809|134809|989898|1|9999034809|MR|Test|E|Lead 34809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034810|134810|989898|1|9999034810|MR|Test|E|Lead 34810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034811|134811|989898|1|9999034811|MR|Test|E|Lead 34811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034812|134812|989898|1|9999034812|MR|Test|E|Lead 34812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034813|134813|989898|1|9999034813|MR|Test|E|Lead 34813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034814|134814|989898|1|9999034814|MR|Test|E|Lead 34814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034815|134815|989898|1|9999034815|MR|Test|E|Lead 34815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034816|134816|989898|1|9999034816|MR|Test|E|Lead 34816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034817|134817|989898|1|9999034817|MR|Test|E|Lead 34817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034818|134818|989898|1|9999034818|MR|Test|E|Lead 34818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034819|134819|989898|1|9999034819|MR|Test|E|Lead 34819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034820|134820|989898|1|9999034820|MR|Test|E|Lead 34820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034821|134821|989898|1|9999034821|MR|Test|E|Lead 34821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034822|134822|989898|1|9999034822|MR|Test|E|Lead 34822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034823|134823|989898|1|9999034823|MR|Test|E|Lead 34823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034824|134824|989898|1|9999034824|MR|Test|E|Lead 34824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034825|134825|989898|1|9999034825|MR|Test|E|Lead 34825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034826|134826|989898|1|9999034826|MR|Test|E|Lead 34826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034827|134827|989898|1|9999034827|MR|Test|E|Lead 34827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034828|134828|989898|1|9999034828|MR|Test|E|Lead 34828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034829|134829|989898|1|9999034829|MR|Test|E|Lead 34829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034830|134830|989898|1|9999034830|MR|Test|E|Lead 34830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034831|134831|989898|1|9999034831|MR|Test|E|Lead 34831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034832|134832|989898|1|9999034832|MR|Test|E|Lead 34832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034833|134833|989898|1|9999034833|MR|Test|E|Lead 34833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034834|134834|989898|1|9999034834|MR|Test|E|Lead 34834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034835|134835|989898|1|9999034835|MR|Test|E|Lead 34835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034836|134836|989898|1|9999034836|MR|Test|E|Lead 34836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034837|134837|989898|1|9999034837|MR|Test|E|Lead 34837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034838|134838|989898|1|9999034838|MR|Test|E|Lead 34838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034839|134839|989898|1|9999034839|MR|Test|E|Lead 34839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034840|134840|989898|1|9999034840|MR|Test|E|Lead 34840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034841|134841|989898|1|9999034841|MR|Test|E|Lead 34841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034842|134842|989898|1|9999034842|MR|Test|E|Lead 34842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034843|134843|989898|1|9999034843|MR|Test|E|Lead 34843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034844|134844|989898|1|9999034844|MR|Test|E|Lead 34844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034845|134845|989898|1|9999034845|MR|Test|E|Lead 34845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034846|134846|989898|1|9999034846|MR|Test|E|Lead 34846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034847|134847|989898|1|9999034847|MR|Test|E|Lead 34847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034848|134848|989898|1|9999034848|MR|Test|E|Lead 34848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034849|134849|989898|1|9999034849|MR|Test|E|Lead 34849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034850|134850|989898|1|9999034850|MR|Test|E|Lead 34850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034851|134851|989898|1|9999034851|MR|Test|E|Lead 34851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034852|134852|989898|1|9999034852|MR|Test|E|Lead 34852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034853|134853|989898|1|9999034853|MR|Test|E|Lead 34853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034854|134854|989898|1|9999034854|MR|Test|E|Lead 34854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034855|134855|989898|1|9999034855|MR|Test|E|Lead 34855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034856|134856|989898|1|9999034856|MR|Test|E|Lead 34856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034857|134857|989898|1|9999034857|MR|Test|E|Lead 34857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034858|134858|989898|1|9999034858|MR|Test|E|Lead 34858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034859|134859|989898|1|9999034859|MR|Test|E|Lead 34859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034860|134860|989898|1|9999034860|MR|Test|E|Lead 34860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034861|134861|989898|1|9999034861|MR|Test|E|Lead 34861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034862|134862|989898|1|9999034862|MR|Test|E|Lead 34862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034863|134863|989898|1|9999034863|MR|Test|E|Lead 34863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034864|134864|989898|1|9999034864|MR|Test|E|Lead 34864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034865|134865|989898|1|9999034865|MR|Test|E|Lead 34865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034866|134866|989898|1|9999034866|MR|Test|E|Lead 34866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034867|134867|989898|1|9999034867|MR|Test|E|Lead 34867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034868|134868|989898|1|9999034868|MR|Test|E|Lead 34868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034869|134869|989898|1|9999034869|MR|Test|E|Lead 34869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034870|134870|989898|1|9999034870|MR|Test|E|Lead 34870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034871|134871|989898|1|9999034871|MR|Test|E|Lead 34871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034872|134872|989898|1|9999034872|MR|Test|E|Lead 34872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034873|134873|989898|1|9999034873|MR|Test|E|Lead 34873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034874|134874|989898|1|9999034874|MR|Test|E|Lead 34874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034875|134875|989898|1|9999034875|MR|Test|E|Lead 34875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034876|134876|989898|1|9999034876|MR|Test|E|Lead 34876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034877|134877|989898|1|9999034877|MR|Test|E|Lead 34877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034878|134878|989898|1|9999034878|MR|Test|E|Lead 34878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034879|134879|989898|1|9999034879|MR|Test|E|Lead 34879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034880|134880|989898|1|9999034880|MR|Test|E|Lead 34880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034881|134881|989898|1|9999034881|MR|Test|E|Lead 34881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034882|134882|989898|1|9999034882|MR|Test|E|Lead 34882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034883|134883|989898|1|9999034883|MR|Test|E|Lead 34883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034884|134884|989898|1|9999034884|MR|Test|E|Lead 34884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034885|134885|989898|1|9999034885|MR|Test|E|Lead 34885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034886|134886|989898|1|9999034886|MR|Test|E|Lead 34886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034887|134887|989898|1|9999034887|MR|Test|E|Lead 34887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034888|134888|989898|1|9999034888|MR|Test|E|Lead 34888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034889|134889|989898|1|9999034889|MR|Test|E|Lead 34889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034890|134890|989898|1|9999034890|MR|Test|E|Lead 34890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034891|134891|989898|1|9999034891|MR|Test|E|Lead 34891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034892|134892|989898|1|9999034892|MR|Test|E|Lead 34892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034893|134893|989898|1|9999034893|MR|Test|E|Lead 34893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034894|134894|989898|1|9999034894|MR|Test|E|Lead 34894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034895|134895|989898|1|9999034895|MR|Test|E|Lead 34895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034896|134896|989898|1|9999034896|MR|Test|E|Lead 34896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034897|134897|989898|1|9999034897|MR|Test|E|Lead 34897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034898|134898|989898|1|9999034898|MR|Test|E|Lead 34898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034899|134899|989898|1|9999034899|MR|Test|E|Lead 34899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034900|134900|989898|1|9999034900|MR|Test|E|Lead 34900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034901|134901|989898|1|9999034901|MR|Test|E|Lead 34901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034902|134902|989898|1|9999034902|MR|Test|E|Lead 34902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034903|134903|989898|1|9999034903|MR|Test|E|Lead 34903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034904|134904|989898|1|9999034904|MR|Test|E|Lead 34904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034905|134905|989898|1|9999034905|MR|Test|E|Lead 34905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034906|134906|989898|1|9999034906|MR|Test|E|Lead 34906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034907|134907|989898|1|9999034907|MR|Test|E|Lead 34907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034908|134908|989898|1|9999034908|MR|Test|E|Lead 34908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034909|134909|989898|1|9999034909|MR|Test|E|Lead 34909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034910|134910|989898|1|9999034910|MR|Test|E|Lead 34910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034911|134911|989898|1|9999034911|MR|Test|E|Lead 34911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034912|134912|989898|1|9999034912|MR|Test|E|Lead 34912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034913|134913|989898|1|9999034913|MR|Test|E|Lead 34913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034914|134914|989898|1|9999034914|MR|Test|E|Lead 34914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034915|134915|989898|1|9999034915|MR|Test|E|Lead 34915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034916|134916|989898|1|9999034916|MR|Test|E|Lead 34916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034917|134917|989898|1|9999034917|MR|Test|E|Lead 34917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034918|134918|989898|1|9999034918|MR|Test|E|Lead 34918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034919|134919|989898|1|9999034919|MR|Test|E|Lead 34919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034920|134920|989898|1|9999034920|MR|Test|E|Lead 34920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034921|134921|989898|1|9999034921|MR|Test|E|Lead 34921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034922|134922|989898|1|9999034922|MR|Test|E|Lead 34922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034923|134923|989898|1|9999034923|MR|Test|E|Lead 34923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034924|134924|989898|1|9999034924|MR|Test|E|Lead 34924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034925|134925|989898|1|9999034925|MR|Test|E|Lead 34925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034926|134926|989898|1|9999034926|MR|Test|E|Lead 34926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034927|134927|989898|1|9999034927|MR|Test|E|Lead 34927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034928|134928|989898|1|9999034928|MR|Test|E|Lead 34928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034929|134929|989898|1|9999034929|MR|Test|E|Lead 34929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034930|134930|989898|1|9999034930|MR|Test|E|Lead 34930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034931|134931|989898|1|9999034931|MR|Test|E|Lead 34931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034932|134932|989898|1|9999034932|MR|Test|E|Lead 34932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034933|134933|989898|1|9999034933|MR|Test|E|Lead 34933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034934|134934|989898|1|9999034934|MR|Test|E|Lead 34934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034935|134935|989898|1|9999034935|MR|Test|E|Lead 34935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034936|134936|989898|1|9999034936|MR|Test|E|Lead 34936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034937|134937|989898|1|9999034937|MR|Test|E|Lead 34937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034938|134938|989898|1|9999034938|MR|Test|E|Lead 34938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034939|134939|989898|1|9999034939|MR|Test|E|Lead 34939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034940|134940|989898|1|9999034940|MR|Test|E|Lead 34940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034941|134941|989898|1|9999034941|MR|Test|E|Lead 34941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034942|134942|989898|1|9999034942|MR|Test|E|Lead 34942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034943|134943|989898|1|9999034943|MR|Test|E|Lead 34943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034944|134944|989898|1|9999034944|MR|Test|E|Lead 34944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034945|134945|989898|1|9999034945|MR|Test|E|Lead 34945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034946|134946|989898|1|9999034946|MR|Test|E|Lead 34946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034947|134947|989898|1|9999034947|MR|Test|E|Lead 34947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034948|134948|989898|1|9999034948|MR|Test|E|Lead 34948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034949|134949|989898|1|9999034949|MR|Test|E|Lead 34949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034950|134950|989898|1|9999034950|MR|Test|E|Lead 34950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034951|134951|989898|1|9999034951|MR|Test|E|Lead 34951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034952|134952|989898|1|9999034952|MR|Test|E|Lead 34952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034953|134953|989898|1|9999034953|MR|Test|E|Lead 34953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034954|134954|989898|1|9999034954|MR|Test|E|Lead 34954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034955|134955|989898|1|9999034955|MR|Test|E|Lead 34955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034956|134956|989898|1|9999034956|MR|Test|E|Lead 34956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034957|134957|989898|1|9999034957|MR|Test|E|Lead 34957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034958|134958|989898|1|9999034958|MR|Test|E|Lead 34958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034959|134959|989898|1|9999034959|MR|Test|E|Lead 34959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034960|134960|989898|1|9999034960|MR|Test|E|Lead 34960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034961|134961|989898|1|9999034961|MR|Test|E|Lead 34961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034962|134962|989898|1|9999034962|MR|Test|E|Lead 34962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034963|134963|989898|1|9999034963|MR|Test|E|Lead 34963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034964|134964|989898|1|9999034964|MR|Test|E|Lead 34964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034965|134965|989898|1|9999034965|MR|Test|E|Lead 34965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034966|134966|989898|1|9999034966|MR|Test|E|Lead 34966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034967|134967|989898|1|9999034967|MR|Test|E|Lead 34967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034968|134968|989898|1|9999034968|MR|Test|E|Lead 34968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034969|134969|989898|1|9999034969|MR|Test|E|Lead 34969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034970|134970|989898|1|9999034970|MR|Test|E|Lead 34970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034971|134971|989898|1|9999034971|MR|Test|E|Lead 34971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034972|134972|989898|1|9999034972|MR|Test|E|Lead 34972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034973|134973|989898|1|9999034973|MR|Test|E|Lead 34973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034974|134974|989898|1|9999034974|MR|Test|E|Lead 34974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034975|134975|989898|1|9999034975|MR|Test|E|Lead 34975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034976|134976|989898|1|9999034976|MR|Test|E|Lead 34976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034977|134977|989898|1|9999034977|MR|Test|E|Lead 34977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034978|134978|989898|1|9999034978|MR|Test|E|Lead 34978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034979|134979|989898|1|9999034979|MR|Test|E|Lead 34979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034980|134980|989898|1|9999034980|MR|Test|E|Lead 34980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034981|134981|989898|1|9999034981|MR|Test|E|Lead 34981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034982|134982|989898|1|9999034982|MR|Test|E|Lead 34982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034983|134983|989898|1|9999034983|MR|Test|E|Lead 34983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034984|134984|989898|1|9999034984|MR|Test|E|Lead 34984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034985|134985|989898|1|9999034985|MR|Test|E|Lead 34985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034986|134986|989898|1|9999034986|MR|Test|E|Lead 34986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034987|134987|989898|1|9999034987|MR|Test|E|Lead 34987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034988|134988|989898|1|9999034988|MR|Test|E|Lead 34988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034989|134989|989898|1|9999034989|MR|Test|E|Lead 34989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034990|134990|989898|1|9999034990|MR|Test|E|Lead 34990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034991|134991|989898|1|9999034991|MR|Test|E|Lead 34991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034992|134992|989898|1|9999034992|MR|Test|E|Lead 34992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034993|134993|989898|1|9999034993|MR|Test|E|Lead 34993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034994|134994|989898|1|9999034994|MR|Test|E|Lead 34994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034995|134995|989898|1|9999034995|MR|Test|E|Lead 34995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034996|134996|989898|1|9999034996|MR|Test|E|Lead 34996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034997|134997|989898|1|9999034997|MR|Test|E|Lead 34997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034998|134998|989898|1|9999034998|MR|Test|E|Lead 34998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1034999|134999|989898|1|9999034999|MR|Test|E|Lead 34999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035000|135000|989898|1|9999035000|MR|Test|E|Lead 35000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035001|135001|989898|1|9999035001|MR|Test|E|Lead 35001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035002|135002|989898|1|9999035002|MR|Test|E|Lead 35002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035003|135003|989898|1|9999035003|MR|Test|E|Lead 35003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035004|135004|989898|1|9999035004|MR|Test|E|Lead 35004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035005|135005|989898|1|9999035005|MR|Test|E|Lead 35005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035006|135006|989898|1|9999035006|MR|Test|E|Lead 35006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035007|135007|989898|1|9999035007|MR|Test|E|Lead 35007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035008|135008|989898|1|9999035008|MR|Test|E|Lead 35008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035009|135009|989898|1|9999035009|MR|Test|E|Lead 35009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035010|135010|989898|1|9999035010|MR|Test|E|Lead 35010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035011|135011|989898|1|9999035011|MR|Test|E|Lead 35011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035012|135012|989898|1|9999035012|MR|Test|E|Lead 35012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035013|135013|989898|1|9999035013|MR|Test|E|Lead 35013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035014|135014|989898|1|9999035014|MR|Test|E|Lead 35014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035015|135015|989898|1|9999035015|MR|Test|E|Lead 35015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035016|135016|989898|1|9999035016|MR|Test|E|Lead 35016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035017|135017|989898|1|9999035017|MR|Test|E|Lead 35017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035018|135018|989898|1|9999035018|MR|Test|E|Lead 35018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035019|135019|989898|1|9999035019|MR|Test|E|Lead 35019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035020|135020|989898|1|9999035020|MR|Test|E|Lead 35020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035021|135021|989898|1|9999035021|MR|Test|E|Lead 35021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035022|135022|989898|1|9999035022|MR|Test|E|Lead 35022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035023|135023|989898|1|9999035023|MR|Test|E|Lead 35023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035024|135024|989898|1|9999035024|MR|Test|E|Lead 35024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035025|135025|989898|1|9999035025|MR|Test|E|Lead 35025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035026|135026|989898|1|9999035026|MR|Test|E|Lead 35026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035027|135027|989898|1|9999035027|MR|Test|E|Lead 35027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035028|135028|989898|1|9999035028|MR|Test|E|Lead 35028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035029|135029|989898|1|9999035029|MR|Test|E|Lead 35029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035030|135030|989898|1|9999035030|MR|Test|E|Lead 35030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035031|135031|989898|1|9999035031|MR|Test|E|Lead 35031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035032|135032|989898|1|9999035032|MR|Test|E|Lead 35032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035033|135033|989898|1|9999035033|MR|Test|E|Lead 35033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035034|135034|989898|1|9999035034|MR|Test|E|Lead 35034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035035|135035|989898|1|9999035035|MR|Test|E|Lead 35035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035036|135036|989898|1|9999035036|MR|Test|E|Lead 35036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035037|135037|989898|1|9999035037|MR|Test|E|Lead 35037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035038|135038|989898|1|9999035038|MR|Test|E|Lead 35038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035039|135039|989898|1|9999035039|MR|Test|E|Lead 35039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035040|135040|989898|1|9999035040|MR|Test|E|Lead 35040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035041|135041|989898|1|9999035041|MR|Test|E|Lead 35041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035042|135042|989898|1|9999035042|MR|Test|E|Lead 35042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035043|135043|989898|1|9999035043|MR|Test|E|Lead 35043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035044|135044|989898|1|9999035044|MR|Test|E|Lead 35044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035045|135045|989898|1|9999035045|MR|Test|E|Lead 35045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035046|135046|989898|1|9999035046|MR|Test|E|Lead 35046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035047|135047|989898|1|9999035047|MR|Test|E|Lead 35047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035048|135048|989898|1|9999035048|MR|Test|E|Lead 35048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035049|135049|989898|1|9999035049|MR|Test|E|Lead 35049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035050|135050|989898|1|9999035050|MR|Test|E|Lead 35050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035051|135051|989898|1|9999035051|MR|Test|E|Lead 35051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035052|135052|989898|1|9999035052|MR|Test|E|Lead 35052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035053|135053|989898|1|9999035053|MR|Test|E|Lead 35053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035054|135054|989898|1|9999035054|MR|Test|E|Lead 35054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035055|135055|989898|1|9999035055|MR|Test|E|Lead 35055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035056|135056|989898|1|9999035056|MR|Test|E|Lead 35056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035057|135057|989898|1|9999035057|MR|Test|E|Lead 35057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035058|135058|989898|1|9999035058|MR|Test|E|Lead 35058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035059|135059|989898|1|9999035059|MR|Test|E|Lead 35059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035060|135060|989898|1|9999035060|MR|Test|E|Lead 35060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035061|135061|989898|1|9999035061|MR|Test|E|Lead 35061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035062|135062|989898|1|9999035062|MR|Test|E|Lead 35062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035063|135063|989898|1|9999035063|MR|Test|E|Lead 35063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035064|135064|989898|1|9999035064|MR|Test|E|Lead 35064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035065|135065|989898|1|9999035065|MR|Test|E|Lead 35065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035066|135066|989898|1|9999035066|MR|Test|E|Lead 35066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035067|135067|989898|1|9999035067|MR|Test|E|Lead 35067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035068|135068|989898|1|9999035068|MR|Test|E|Lead 35068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035069|135069|989898|1|9999035069|MR|Test|E|Lead 35069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035070|135070|989898|1|9999035070|MR|Test|E|Lead 35070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035071|135071|989898|1|9999035071|MR|Test|E|Lead 35071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035072|135072|989898|1|9999035072|MR|Test|E|Lead 35072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035073|135073|989898|1|9999035073|MR|Test|E|Lead 35073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035074|135074|989898|1|9999035074|MR|Test|E|Lead 35074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035075|135075|989898|1|9999035075|MR|Test|E|Lead 35075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035076|135076|989898|1|9999035076|MR|Test|E|Lead 35076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035077|135077|989898|1|9999035077|MR|Test|E|Lead 35077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035078|135078|989898|1|9999035078|MR|Test|E|Lead 35078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035079|135079|989898|1|9999035079|MR|Test|E|Lead 35079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035080|135080|989898|1|9999035080|MR|Test|E|Lead 35080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035081|135081|989898|1|9999035081|MR|Test|E|Lead 35081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035082|135082|989898|1|9999035082|MR|Test|E|Lead 35082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035083|135083|989898|1|9999035083|MR|Test|E|Lead 35083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035084|135084|989898|1|9999035084|MR|Test|E|Lead 35084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035085|135085|989898|1|9999035085|MR|Test|E|Lead 35085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035086|135086|989898|1|9999035086|MR|Test|E|Lead 35086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035087|135087|989898|1|9999035087|MR|Test|E|Lead 35087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035088|135088|989898|1|9999035088|MR|Test|E|Lead 35088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035089|135089|989898|1|9999035089|MR|Test|E|Lead 35089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035090|135090|989898|1|9999035090|MR|Test|E|Lead 35090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035091|135091|989898|1|9999035091|MR|Test|E|Lead 35091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035092|135092|989898|1|9999035092|MR|Test|E|Lead 35092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035093|135093|989898|1|9999035093|MR|Test|E|Lead 35093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035094|135094|989898|1|9999035094|MR|Test|E|Lead 35094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035095|135095|989898|1|9999035095|MR|Test|E|Lead 35095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035096|135096|989898|1|9999035096|MR|Test|E|Lead 35096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035097|135097|989898|1|9999035097|MR|Test|E|Lead 35097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035098|135098|989898|1|9999035098|MR|Test|E|Lead 35098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035099|135099|989898|1|9999035099|MR|Test|E|Lead 35099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035100|135100|989898|1|9999035100|MR|Test|E|Lead 35100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035101|135101|989898|1|9999035101|MR|Test|E|Lead 35101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035102|135102|989898|1|9999035102|MR|Test|E|Lead 35102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035103|135103|989898|1|9999035103|MR|Test|E|Lead 35103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035104|135104|989898|1|9999035104|MR|Test|E|Lead 35104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035105|135105|989898|1|9999035105|MR|Test|E|Lead 35105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035106|135106|989898|1|9999035106|MR|Test|E|Lead 35106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035107|135107|989898|1|9999035107|MR|Test|E|Lead 35107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035108|135108|989898|1|9999035108|MR|Test|E|Lead 35108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035109|135109|989898|1|9999035109|MR|Test|E|Lead 35109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035110|135110|989898|1|9999035110|MR|Test|E|Lead 35110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035111|135111|989898|1|9999035111|MR|Test|E|Lead 35111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035112|135112|989898|1|9999035112|MR|Test|E|Lead 35112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035113|135113|989898|1|9999035113|MR|Test|E|Lead 35113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035114|135114|989898|1|9999035114|MR|Test|E|Lead 35114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035115|135115|989898|1|9999035115|MR|Test|E|Lead 35115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035116|135116|989898|1|9999035116|MR|Test|E|Lead 35116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035117|135117|989898|1|9999035117|MR|Test|E|Lead 35117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035118|135118|989898|1|9999035118|MR|Test|E|Lead 35118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035119|135119|989898|1|9999035119|MR|Test|E|Lead 35119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035120|135120|989898|1|9999035120|MR|Test|E|Lead 35120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035121|135121|989898|1|9999035121|MR|Test|E|Lead 35121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035122|135122|989898|1|9999035122|MR|Test|E|Lead 35122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035123|135123|989898|1|9999035123|MR|Test|E|Lead 35123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035124|135124|989898|1|9999035124|MR|Test|E|Lead 35124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035125|135125|989898|1|9999035125|MR|Test|E|Lead 35125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035126|135126|989898|1|9999035126|MR|Test|E|Lead 35126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035127|135127|989898|1|9999035127|MR|Test|E|Lead 35127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035128|135128|989898|1|9999035128|MR|Test|E|Lead 35128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035129|135129|989898|1|9999035129|MR|Test|E|Lead 35129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035130|135130|989898|1|9999035130|MR|Test|E|Lead 35130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035131|135131|989898|1|9999035131|MR|Test|E|Lead 35131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035132|135132|989898|1|9999035132|MR|Test|E|Lead 35132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035133|135133|989898|1|9999035133|MR|Test|E|Lead 35133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035134|135134|989898|1|9999035134|MR|Test|E|Lead 35134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035135|135135|989898|1|9999035135|MR|Test|E|Lead 35135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035136|135136|989898|1|9999035136|MR|Test|E|Lead 35136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035137|135137|989898|1|9999035137|MR|Test|E|Lead 35137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035138|135138|989898|1|9999035138|MR|Test|E|Lead 35138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035139|135139|989898|1|9999035139|MR|Test|E|Lead 35139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035140|135140|989898|1|9999035140|MR|Test|E|Lead 35140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035141|135141|989898|1|9999035141|MR|Test|E|Lead 35141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035142|135142|989898|1|9999035142|MR|Test|E|Lead 35142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035143|135143|989898|1|9999035143|MR|Test|E|Lead 35143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035144|135144|989898|1|9999035144|MR|Test|E|Lead 35144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035145|135145|989898|1|9999035145|MR|Test|E|Lead 35145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035146|135146|989898|1|9999035146|MR|Test|E|Lead 35146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035147|135147|989898|1|9999035147|MR|Test|E|Lead 35147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035148|135148|989898|1|9999035148|MR|Test|E|Lead 35148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035149|135149|989898|1|9999035149|MR|Test|E|Lead 35149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035150|135150|989898|1|9999035150|MR|Test|E|Lead 35150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035151|135151|989898|1|9999035151|MR|Test|E|Lead 35151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035152|135152|989898|1|9999035152|MR|Test|E|Lead 35152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035153|135153|989898|1|9999035153|MR|Test|E|Lead 35153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035154|135154|989898|1|9999035154|MR|Test|E|Lead 35154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035155|135155|989898|1|9999035155|MR|Test|E|Lead 35155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035156|135156|989898|1|9999035156|MR|Test|E|Lead 35156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035157|135157|989898|1|9999035157|MR|Test|E|Lead 35157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035158|135158|989898|1|9999035158|MR|Test|E|Lead 35158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035159|135159|989898|1|9999035159|MR|Test|E|Lead 35159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035160|135160|989898|1|9999035160|MR|Test|E|Lead 35160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035161|135161|989898|1|9999035161|MR|Test|E|Lead 35161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035162|135162|989898|1|9999035162|MR|Test|E|Lead 35162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035163|135163|989898|1|9999035163|MR|Test|E|Lead 35163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035164|135164|989898|1|9999035164|MR|Test|E|Lead 35164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035165|135165|989898|1|9999035165|MR|Test|E|Lead 35165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035166|135166|989898|1|9999035166|MR|Test|E|Lead 35166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035167|135167|989898|1|9999035167|MR|Test|E|Lead 35167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035168|135168|989898|1|9999035168|MR|Test|E|Lead 35168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035169|135169|989898|1|9999035169|MR|Test|E|Lead 35169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035170|135170|989898|1|9999035170|MR|Test|E|Lead 35170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035171|135171|989898|1|9999035171|MR|Test|E|Lead 35171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035172|135172|989898|1|9999035172|MR|Test|E|Lead 35172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035173|135173|989898|1|9999035173|MR|Test|E|Lead 35173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035174|135174|989898|1|9999035174|MR|Test|E|Lead 35174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035175|135175|989898|1|9999035175|MR|Test|E|Lead 35175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035176|135176|989898|1|9999035176|MR|Test|E|Lead 35176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035177|135177|989898|1|9999035177|MR|Test|E|Lead 35177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035178|135178|989898|1|9999035178|MR|Test|E|Lead 35178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035179|135179|989898|1|9999035179|MR|Test|E|Lead 35179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035180|135180|989898|1|9999035180|MR|Test|E|Lead 35180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035181|135181|989898|1|9999035181|MR|Test|E|Lead 35181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035182|135182|989898|1|9999035182|MR|Test|E|Lead 35182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035183|135183|989898|1|9999035183|MR|Test|E|Lead 35183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035184|135184|989898|1|9999035184|MR|Test|E|Lead 35184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035185|135185|989898|1|9999035185|MR|Test|E|Lead 35185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035186|135186|989898|1|9999035186|MR|Test|E|Lead 35186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035187|135187|989898|1|9999035187|MR|Test|E|Lead 35187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035188|135188|989898|1|9999035188|MR|Test|E|Lead 35188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035189|135189|989898|1|9999035189|MR|Test|E|Lead 35189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035190|135190|989898|1|9999035190|MR|Test|E|Lead 35190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035191|135191|989898|1|9999035191|MR|Test|E|Lead 35191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035192|135192|989898|1|9999035192|MR|Test|E|Lead 35192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035193|135193|989898|1|9999035193|MR|Test|E|Lead 35193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035194|135194|989898|1|9999035194|MR|Test|E|Lead 35194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035195|135195|989898|1|9999035195|MR|Test|E|Lead 35195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035196|135196|989898|1|9999035196|MR|Test|E|Lead 35196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035197|135197|989898|1|9999035197|MR|Test|E|Lead 35197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035198|135198|989898|1|9999035198|MR|Test|E|Lead 35198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035199|135199|989898|1|9999035199|MR|Test|E|Lead 35199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035200|135200|989898|1|9999035200|MR|Test|E|Lead 35200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035201|135201|989898|1|9999035201|MR|Test|E|Lead 35201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035202|135202|989898|1|9999035202|MR|Test|E|Lead 35202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035203|135203|989898|1|9999035203|MR|Test|E|Lead 35203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035204|135204|989898|1|9999035204|MR|Test|E|Lead 35204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035205|135205|989898|1|9999035205|MR|Test|E|Lead 35205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035206|135206|989898|1|9999035206|MR|Test|E|Lead 35206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035207|135207|989898|1|9999035207|MR|Test|E|Lead 35207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035208|135208|989898|1|9999035208|MR|Test|E|Lead 35208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035209|135209|989898|1|9999035209|MR|Test|E|Lead 35209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035210|135210|989898|1|9999035210|MR|Test|E|Lead 35210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035211|135211|989898|1|9999035211|MR|Test|E|Lead 35211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035212|135212|989898|1|9999035212|MR|Test|E|Lead 35212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035213|135213|989898|1|9999035213|MR|Test|E|Lead 35213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035214|135214|989898|1|9999035214|MR|Test|E|Lead 35214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035215|135215|989898|1|9999035215|MR|Test|E|Lead 35215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035216|135216|989898|1|9999035216|MR|Test|E|Lead 35216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035217|135217|989898|1|9999035217|MR|Test|E|Lead 35217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035218|135218|989898|1|9999035218|MR|Test|E|Lead 35218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035219|135219|989898|1|9999035219|MR|Test|E|Lead 35219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035220|135220|989898|1|9999035220|MR|Test|E|Lead 35220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035221|135221|989898|1|9999035221|MR|Test|E|Lead 35221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035222|135222|989898|1|9999035222|MR|Test|E|Lead 35222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035223|135223|989898|1|9999035223|MR|Test|E|Lead 35223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035224|135224|989898|1|9999035224|MR|Test|E|Lead 35224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035225|135225|989898|1|9999035225|MR|Test|E|Lead 35225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035226|135226|989898|1|9999035226|MR|Test|E|Lead 35226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035227|135227|989898|1|9999035227|MR|Test|E|Lead 35227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035228|135228|989898|1|9999035228|MR|Test|E|Lead 35228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035229|135229|989898|1|9999035229|MR|Test|E|Lead 35229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035230|135230|989898|1|9999035230|MR|Test|E|Lead 35230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035231|135231|989898|1|9999035231|MR|Test|E|Lead 35231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035232|135232|989898|1|9999035232|MR|Test|E|Lead 35232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035233|135233|989898|1|9999035233|MR|Test|E|Lead 35233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035234|135234|989898|1|9999035234|MR|Test|E|Lead 35234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035235|135235|989898|1|9999035235|MR|Test|E|Lead 35235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035236|135236|989898|1|9999035236|MR|Test|E|Lead 35236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035237|135237|989898|1|9999035237|MR|Test|E|Lead 35237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035238|135238|989898|1|9999035238|MR|Test|E|Lead 35238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035239|135239|989898|1|9999035239|MR|Test|E|Lead 35239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035240|135240|989898|1|9999035240|MR|Test|E|Lead 35240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035241|135241|989898|1|9999035241|MR|Test|E|Lead 35241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035242|135242|989898|1|9999035242|MR|Test|E|Lead 35242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035243|135243|989898|1|9999035243|MR|Test|E|Lead 35243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035244|135244|989898|1|9999035244|MR|Test|E|Lead 35244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035245|135245|989898|1|9999035245|MR|Test|E|Lead 35245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035246|135246|989898|1|9999035246|MR|Test|E|Lead 35246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035247|135247|989898|1|9999035247|MR|Test|E|Lead 35247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035248|135248|989898|1|9999035248|MR|Test|E|Lead 35248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035249|135249|989898|1|9999035249|MR|Test|E|Lead 35249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035250|135250|989898|1|9999035250|MR|Test|E|Lead 35250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035251|135251|989898|1|9999035251|MR|Test|E|Lead 35251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035252|135252|989898|1|9999035252|MR|Test|E|Lead 35252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035253|135253|989898|1|9999035253|MR|Test|E|Lead 35253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035254|135254|989898|1|9999035254|MR|Test|E|Lead 35254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035255|135255|989898|1|9999035255|MR|Test|E|Lead 35255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035256|135256|989898|1|9999035256|MR|Test|E|Lead 35256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035257|135257|989898|1|9999035257|MR|Test|E|Lead 35257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035258|135258|989898|1|9999035258|MR|Test|E|Lead 35258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035259|135259|989898|1|9999035259|MR|Test|E|Lead 35259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035260|135260|989898|1|9999035260|MR|Test|E|Lead 35260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035261|135261|989898|1|9999035261|MR|Test|E|Lead 35261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035262|135262|989898|1|9999035262|MR|Test|E|Lead 35262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035263|135263|989898|1|9999035263|MR|Test|E|Lead 35263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035264|135264|989898|1|9999035264|MR|Test|E|Lead 35264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035265|135265|989898|1|9999035265|MR|Test|E|Lead 35265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035266|135266|989898|1|9999035266|MR|Test|E|Lead 35266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035267|135267|989898|1|9999035267|MR|Test|E|Lead 35267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035268|135268|989898|1|9999035268|MR|Test|E|Lead 35268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035269|135269|989898|1|9999035269|MR|Test|E|Lead 35269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035270|135270|989898|1|9999035270|MR|Test|E|Lead 35270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035271|135271|989898|1|9999035271|MR|Test|E|Lead 35271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035272|135272|989898|1|9999035272|MR|Test|E|Lead 35272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035273|135273|989898|1|9999035273|MR|Test|E|Lead 35273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035274|135274|989898|1|9999035274|MR|Test|E|Lead 35274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035275|135275|989898|1|9999035275|MR|Test|E|Lead 35275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035276|135276|989898|1|9999035276|MR|Test|E|Lead 35276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035277|135277|989898|1|9999035277|MR|Test|E|Lead 35277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035278|135278|989898|1|9999035278|MR|Test|E|Lead 35278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035279|135279|989898|1|9999035279|MR|Test|E|Lead 35279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035280|135280|989898|1|9999035280|MR|Test|E|Lead 35280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035281|135281|989898|1|9999035281|MR|Test|E|Lead 35281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035282|135282|989898|1|9999035282|MR|Test|E|Lead 35282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035283|135283|989898|1|9999035283|MR|Test|E|Lead 35283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035284|135284|989898|1|9999035284|MR|Test|E|Lead 35284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035285|135285|989898|1|9999035285|MR|Test|E|Lead 35285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035286|135286|989898|1|9999035286|MR|Test|E|Lead 35286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035287|135287|989898|1|9999035287|MR|Test|E|Lead 35287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035288|135288|989898|1|9999035288|MR|Test|E|Lead 35288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035289|135289|989898|1|9999035289|MR|Test|E|Lead 35289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035290|135290|989898|1|9999035290|MR|Test|E|Lead 35290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035291|135291|989898|1|9999035291|MR|Test|E|Lead 35291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035292|135292|989898|1|9999035292|MR|Test|E|Lead 35292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035293|135293|989898|1|9999035293|MR|Test|E|Lead 35293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035294|135294|989898|1|9999035294|MR|Test|E|Lead 35294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035295|135295|989898|1|9999035295|MR|Test|E|Lead 35295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035296|135296|989898|1|9999035296|MR|Test|E|Lead 35296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035297|135297|989898|1|9999035297|MR|Test|E|Lead 35297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035298|135298|989898|1|9999035298|MR|Test|E|Lead 35298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035299|135299|989898|1|9999035299|MR|Test|E|Lead 35299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035300|135300|989898|1|9999035300|MR|Test|E|Lead 35300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035301|135301|989898|1|9999035301|MR|Test|E|Lead 35301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035302|135302|989898|1|9999035302|MR|Test|E|Lead 35302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035303|135303|989898|1|9999035303|MR|Test|E|Lead 35303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035304|135304|989898|1|9999035304|MR|Test|E|Lead 35304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035305|135305|989898|1|9999035305|MR|Test|E|Lead 35305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035306|135306|989898|1|9999035306|MR|Test|E|Lead 35306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035307|135307|989898|1|9999035307|MR|Test|E|Lead 35307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035308|135308|989898|1|9999035308|MR|Test|E|Lead 35308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035309|135309|989898|1|9999035309|MR|Test|E|Lead 35309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035310|135310|989898|1|9999035310|MR|Test|E|Lead 35310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035311|135311|989898|1|9999035311|MR|Test|E|Lead 35311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035312|135312|989898|1|9999035312|MR|Test|E|Lead 35312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035313|135313|989898|1|9999035313|MR|Test|E|Lead 35313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035314|135314|989898|1|9999035314|MR|Test|E|Lead 35314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035315|135315|989898|1|9999035315|MR|Test|E|Lead 35315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035316|135316|989898|1|9999035316|MR|Test|E|Lead 35316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035317|135317|989898|1|9999035317|MR|Test|E|Lead 35317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035318|135318|989898|1|9999035318|MR|Test|E|Lead 35318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035319|135319|989898|1|9999035319|MR|Test|E|Lead 35319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035320|135320|989898|1|9999035320|MR|Test|E|Lead 35320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035321|135321|989898|1|9999035321|MR|Test|E|Lead 35321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035322|135322|989898|1|9999035322|MR|Test|E|Lead 35322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035323|135323|989898|1|9999035323|MR|Test|E|Lead 35323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035324|135324|989898|1|9999035324|MR|Test|E|Lead 35324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035325|135325|989898|1|9999035325|MR|Test|E|Lead 35325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035326|135326|989898|1|9999035326|MR|Test|E|Lead 35326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035327|135327|989898|1|9999035327|MR|Test|E|Lead 35327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035328|135328|989898|1|9999035328|MR|Test|E|Lead 35328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035329|135329|989898|1|9999035329|MR|Test|E|Lead 35329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035330|135330|989898|1|9999035330|MR|Test|E|Lead 35330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035331|135331|989898|1|9999035331|MR|Test|E|Lead 35331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035332|135332|989898|1|9999035332|MR|Test|E|Lead 35332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035333|135333|989898|1|9999035333|MR|Test|E|Lead 35333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035334|135334|989898|1|9999035334|MR|Test|E|Lead 35334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035335|135335|989898|1|9999035335|MR|Test|E|Lead 35335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035336|135336|989898|1|9999035336|MR|Test|E|Lead 35336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035337|135337|989898|1|9999035337|MR|Test|E|Lead 35337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035338|135338|989898|1|9999035338|MR|Test|E|Lead 35338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035339|135339|989898|1|9999035339|MR|Test|E|Lead 35339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035340|135340|989898|1|9999035340|MR|Test|E|Lead 35340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035341|135341|989898|1|9999035341|MR|Test|E|Lead 35341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035342|135342|989898|1|9999035342|MR|Test|E|Lead 35342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035343|135343|989898|1|9999035343|MR|Test|E|Lead 35343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035344|135344|989898|1|9999035344|MR|Test|E|Lead 35344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035345|135345|989898|1|9999035345|MR|Test|E|Lead 35345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035346|135346|989898|1|9999035346|MR|Test|E|Lead 35346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035347|135347|989898|1|9999035347|MR|Test|E|Lead 35347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035348|135348|989898|1|9999035348|MR|Test|E|Lead 35348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035349|135349|989898|1|9999035349|MR|Test|E|Lead 35349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035350|135350|989898|1|9999035350|MR|Test|E|Lead 35350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035351|135351|989898|1|9999035351|MR|Test|E|Lead 35351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035352|135352|989898|1|9999035352|MR|Test|E|Lead 35352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035353|135353|989898|1|9999035353|MR|Test|E|Lead 35353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035354|135354|989898|1|9999035354|MR|Test|E|Lead 35354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035355|135355|989898|1|9999035355|MR|Test|E|Lead 35355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035356|135356|989898|1|9999035356|MR|Test|E|Lead 35356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035357|135357|989898|1|9999035357|MR|Test|E|Lead 35357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035358|135358|989898|1|9999035358|MR|Test|E|Lead 35358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035359|135359|989898|1|9999035359|MR|Test|E|Lead 35359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035360|135360|989898|1|9999035360|MR|Test|E|Lead 35360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035361|135361|989898|1|9999035361|MR|Test|E|Lead 35361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035362|135362|989898|1|9999035362|MR|Test|E|Lead 35362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035363|135363|989898|1|9999035363|MR|Test|E|Lead 35363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035364|135364|989898|1|9999035364|MR|Test|E|Lead 35364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035365|135365|989898|1|9999035365|MR|Test|E|Lead 35365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035366|135366|989898|1|9999035366|MR|Test|E|Lead 35366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035367|135367|989898|1|9999035367|MR|Test|E|Lead 35367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035368|135368|989898|1|9999035368|MR|Test|E|Lead 35368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035369|135369|989898|1|9999035369|MR|Test|E|Lead 35369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035370|135370|989898|1|9999035370|MR|Test|E|Lead 35370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035371|135371|989898|1|9999035371|MR|Test|E|Lead 35371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035372|135372|989898|1|9999035372|MR|Test|E|Lead 35372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035373|135373|989898|1|9999035373|MR|Test|E|Lead 35373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035374|135374|989898|1|9999035374|MR|Test|E|Lead 35374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035375|135375|989898|1|9999035375|MR|Test|E|Lead 35375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035376|135376|989898|1|9999035376|MR|Test|E|Lead 35376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035377|135377|989898|1|9999035377|MR|Test|E|Lead 35377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035378|135378|989898|1|9999035378|MR|Test|E|Lead 35378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035379|135379|989898|1|9999035379|MR|Test|E|Lead 35379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035380|135380|989898|1|9999035380|MR|Test|E|Lead 35380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035381|135381|989898|1|9999035381|MR|Test|E|Lead 35381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035382|135382|989898|1|9999035382|MR|Test|E|Lead 35382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035383|135383|989898|1|9999035383|MR|Test|E|Lead 35383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035384|135384|989898|1|9999035384|MR|Test|E|Lead 35384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035385|135385|989898|1|9999035385|MR|Test|E|Lead 35385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035386|135386|989898|1|9999035386|MR|Test|E|Lead 35386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035387|135387|989898|1|9999035387|MR|Test|E|Lead 35387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035388|135388|989898|1|9999035388|MR|Test|E|Lead 35388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035389|135389|989898|1|9999035389|MR|Test|E|Lead 35389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035390|135390|989898|1|9999035390|MR|Test|E|Lead 35390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035391|135391|989898|1|9999035391|MR|Test|E|Lead 35391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035392|135392|989898|1|9999035392|MR|Test|E|Lead 35392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035393|135393|989898|1|9999035393|MR|Test|E|Lead 35393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035394|135394|989898|1|9999035394|MR|Test|E|Lead 35394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035395|135395|989898|1|9999035395|MR|Test|E|Lead 35395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035396|135396|989898|1|9999035396|MR|Test|E|Lead 35396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035397|135397|989898|1|9999035397|MR|Test|E|Lead 35397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035398|135398|989898|1|9999035398|MR|Test|E|Lead 35398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035399|135399|989898|1|9999035399|MR|Test|E|Lead 35399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035400|135400|989898|1|9999035400|MR|Test|E|Lead 35400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035401|135401|989898|1|9999035401|MR|Test|E|Lead 35401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035402|135402|989898|1|9999035402|MR|Test|E|Lead 35402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035403|135403|989898|1|9999035403|MR|Test|E|Lead 35403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035404|135404|989898|1|9999035404|MR|Test|E|Lead 35404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035405|135405|989898|1|9999035405|MR|Test|E|Lead 35405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035406|135406|989898|1|9999035406|MR|Test|E|Lead 35406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035407|135407|989898|1|9999035407|MR|Test|E|Lead 35407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035408|135408|989898|1|9999035408|MR|Test|E|Lead 35408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035409|135409|989898|1|9999035409|MR|Test|E|Lead 35409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035410|135410|989898|1|9999035410|MR|Test|E|Lead 35410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035411|135411|989898|1|9999035411|MR|Test|E|Lead 35411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035412|135412|989898|1|9999035412|MR|Test|E|Lead 35412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035413|135413|989898|1|9999035413|MR|Test|E|Lead 35413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035414|135414|989898|1|9999035414|MR|Test|E|Lead 35414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035415|135415|989898|1|9999035415|MR|Test|E|Lead 35415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035416|135416|989898|1|9999035416|MR|Test|E|Lead 35416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035417|135417|989898|1|9999035417|MR|Test|E|Lead 35417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035418|135418|989898|1|9999035418|MR|Test|E|Lead 35418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035419|135419|989898|1|9999035419|MR|Test|E|Lead 35419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035420|135420|989898|1|9999035420|MR|Test|E|Lead 35420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035421|135421|989898|1|9999035421|MR|Test|E|Lead 35421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035422|135422|989898|1|9999035422|MR|Test|E|Lead 35422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035423|135423|989898|1|9999035423|MR|Test|E|Lead 35423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035424|135424|989898|1|9999035424|MR|Test|E|Lead 35424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035425|135425|989898|1|9999035425|MR|Test|E|Lead 35425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035426|135426|989898|1|9999035426|MR|Test|E|Lead 35426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035427|135427|989898|1|9999035427|MR|Test|E|Lead 35427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035428|135428|989898|1|9999035428|MR|Test|E|Lead 35428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035429|135429|989898|1|9999035429|MR|Test|E|Lead 35429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035430|135430|989898|1|9999035430|MR|Test|E|Lead 35430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035431|135431|989898|1|9999035431|MR|Test|E|Lead 35431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035432|135432|989898|1|9999035432|MR|Test|E|Lead 35432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035433|135433|989898|1|9999035433|MR|Test|E|Lead 35433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035434|135434|989898|1|9999035434|MR|Test|E|Lead 35434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035435|135435|989898|1|9999035435|MR|Test|E|Lead 35435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035436|135436|989898|1|9999035436|MR|Test|E|Lead 35436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035437|135437|989898|1|9999035437|MR|Test|E|Lead 35437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035438|135438|989898|1|9999035438|MR|Test|E|Lead 35438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035439|135439|989898|1|9999035439|MR|Test|E|Lead 35439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035440|135440|989898|1|9999035440|MR|Test|E|Lead 35440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035441|135441|989898|1|9999035441|MR|Test|E|Lead 35441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035442|135442|989898|1|9999035442|MR|Test|E|Lead 35442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035443|135443|989898|1|9999035443|MR|Test|E|Lead 35443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035444|135444|989898|1|9999035444|MR|Test|E|Lead 35444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035445|135445|989898|1|9999035445|MR|Test|E|Lead 35445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035446|135446|989898|1|9999035446|MR|Test|E|Lead 35446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035447|135447|989898|1|9999035447|MR|Test|E|Lead 35447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035448|135448|989898|1|9999035448|MR|Test|E|Lead 35448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035449|135449|989898|1|9999035449|MR|Test|E|Lead 35449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035450|135450|989898|1|9999035450|MR|Test|E|Lead 35450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035451|135451|989898|1|9999035451|MR|Test|E|Lead 35451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035452|135452|989898|1|9999035452|MR|Test|E|Lead 35452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035453|135453|989898|1|9999035453|MR|Test|E|Lead 35453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035454|135454|989898|1|9999035454|MR|Test|E|Lead 35454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035455|135455|989898|1|9999035455|MR|Test|E|Lead 35455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035456|135456|989898|1|9999035456|MR|Test|E|Lead 35456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035457|135457|989898|1|9999035457|MR|Test|E|Lead 35457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035458|135458|989898|1|9999035458|MR|Test|E|Lead 35458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035459|135459|989898|1|9999035459|MR|Test|E|Lead 35459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035460|135460|989898|1|9999035460|MR|Test|E|Lead 35460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035461|135461|989898|1|9999035461|MR|Test|E|Lead 35461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035462|135462|989898|1|9999035462|MR|Test|E|Lead 35462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035463|135463|989898|1|9999035463|MR|Test|E|Lead 35463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035464|135464|989898|1|9999035464|MR|Test|E|Lead 35464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035465|135465|989898|1|9999035465|MR|Test|E|Lead 35465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035466|135466|989898|1|9999035466|MR|Test|E|Lead 35466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035467|135467|989898|1|9999035467|MR|Test|E|Lead 35467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035468|135468|989898|1|9999035468|MR|Test|E|Lead 35468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035469|135469|989898|1|9999035469|MR|Test|E|Lead 35469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035470|135470|989898|1|9999035470|MR|Test|E|Lead 35470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035471|135471|989898|1|9999035471|MR|Test|E|Lead 35471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035472|135472|989898|1|9999035472|MR|Test|E|Lead 35472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035473|135473|989898|1|9999035473|MR|Test|E|Lead 35473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035474|135474|989898|1|9999035474|MR|Test|E|Lead 35474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035475|135475|989898|1|9999035475|MR|Test|E|Lead 35475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035476|135476|989898|1|9999035476|MR|Test|E|Lead 35476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035477|135477|989898|1|9999035477|MR|Test|E|Lead 35477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035478|135478|989898|1|9999035478|MR|Test|E|Lead 35478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035479|135479|989898|1|9999035479|MR|Test|E|Lead 35479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035480|135480|989898|1|9999035480|MR|Test|E|Lead 35480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035481|135481|989898|1|9999035481|MR|Test|E|Lead 35481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035482|135482|989898|1|9999035482|MR|Test|E|Lead 35482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035483|135483|989898|1|9999035483|MR|Test|E|Lead 35483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035484|135484|989898|1|9999035484|MR|Test|E|Lead 35484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035485|135485|989898|1|9999035485|MR|Test|E|Lead 35485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035486|135486|989898|1|9999035486|MR|Test|E|Lead 35486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035487|135487|989898|1|9999035487|MR|Test|E|Lead 35487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035488|135488|989898|1|9999035488|MR|Test|E|Lead 35488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035489|135489|989898|1|9999035489|MR|Test|E|Lead 35489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035490|135490|989898|1|9999035490|MR|Test|E|Lead 35490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035491|135491|989898|1|9999035491|MR|Test|E|Lead 35491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035492|135492|989898|1|9999035492|MR|Test|E|Lead 35492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035493|135493|989898|1|9999035493|MR|Test|E|Lead 35493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035494|135494|989898|1|9999035494|MR|Test|E|Lead 35494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035495|135495|989898|1|9999035495|MR|Test|E|Lead 35495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035496|135496|989898|1|9999035496|MR|Test|E|Lead 35496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035497|135497|989898|1|9999035497|MR|Test|E|Lead 35497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035498|135498|989898|1|9999035498|MR|Test|E|Lead 35498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035499|135499|989898|1|9999035499|MR|Test|E|Lead 35499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035500|135500|989898|1|9999035500|MR|Test|E|Lead 35500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035501|135501|989898|1|9999035501|MR|Test|E|Lead 35501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035502|135502|989898|1|9999035502|MR|Test|E|Lead 35502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035503|135503|989898|1|9999035503|MR|Test|E|Lead 35503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035504|135504|989898|1|9999035504|MR|Test|E|Lead 35504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035505|135505|989898|1|9999035505|MR|Test|E|Lead 35505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035506|135506|989898|1|9999035506|MR|Test|E|Lead 35506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035507|135507|989898|1|9999035507|MR|Test|E|Lead 35507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035508|135508|989898|1|9999035508|MR|Test|E|Lead 35508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035509|135509|989898|1|9999035509|MR|Test|E|Lead 35509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035510|135510|989898|1|9999035510|MR|Test|E|Lead 35510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035511|135511|989898|1|9999035511|MR|Test|E|Lead 35511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035512|135512|989898|1|9999035512|MR|Test|E|Lead 35512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035513|135513|989898|1|9999035513|MR|Test|E|Lead 35513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035514|135514|989898|1|9999035514|MR|Test|E|Lead 35514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035515|135515|989898|1|9999035515|MR|Test|E|Lead 35515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035516|135516|989898|1|9999035516|MR|Test|E|Lead 35516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035517|135517|989898|1|9999035517|MR|Test|E|Lead 35517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035518|135518|989898|1|9999035518|MR|Test|E|Lead 35518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035519|135519|989898|1|9999035519|MR|Test|E|Lead 35519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035520|135520|989898|1|9999035520|MR|Test|E|Lead 35520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035521|135521|989898|1|9999035521|MR|Test|E|Lead 35521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035522|135522|989898|1|9999035522|MR|Test|E|Lead 35522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035523|135523|989898|1|9999035523|MR|Test|E|Lead 35523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035524|135524|989898|1|9999035524|MR|Test|E|Lead 35524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035525|135525|989898|1|9999035525|MR|Test|E|Lead 35525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035526|135526|989898|1|9999035526|MR|Test|E|Lead 35526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035527|135527|989898|1|9999035527|MR|Test|E|Lead 35527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035528|135528|989898|1|9999035528|MR|Test|E|Lead 35528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035529|135529|989898|1|9999035529|MR|Test|E|Lead 35529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035530|135530|989898|1|9999035530|MR|Test|E|Lead 35530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035531|135531|989898|1|9999035531|MR|Test|E|Lead 35531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035532|135532|989898|1|9999035532|MR|Test|E|Lead 35532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035533|135533|989898|1|9999035533|MR|Test|E|Lead 35533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035534|135534|989898|1|9999035534|MR|Test|E|Lead 35534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035535|135535|989898|1|9999035535|MR|Test|E|Lead 35535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035536|135536|989898|1|9999035536|MR|Test|E|Lead 35536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035537|135537|989898|1|9999035537|MR|Test|E|Lead 35537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035538|135538|989898|1|9999035538|MR|Test|E|Lead 35538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035539|135539|989898|1|9999035539|MR|Test|E|Lead 35539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035540|135540|989898|1|9999035540|MR|Test|E|Lead 35540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035541|135541|989898|1|9999035541|MR|Test|E|Lead 35541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035542|135542|989898|1|9999035542|MR|Test|E|Lead 35542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035543|135543|989898|1|9999035543|MR|Test|E|Lead 35543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035544|135544|989898|1|9999035544|MR|Test|E|Lead 35544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035545|135545|989898|1|9999035545|MR|Test|E|Lead 35545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035546|135546|989898|1|9999035546|MR|Test|E|Lead 35546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035547|135547|989898|1|9999035547|MR|Test|E|Lead 35547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035548|135548|989898|1|9999035548|MR|Test|E|Lead 35548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035549|135549|989898|1|9999035549|MR|Test|E|Lead 35549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035550|135550|989898|1|9999035550|MR|Test|E|Lead 35550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035551|135551|989898|1|9999035551|MR|Test|E|Lead 35551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035552|135552|989898|1|9999035552|MR|Test|E|Lead 35552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035553|135553|989898|1|9999035553|MR|Test|E|Lead 35553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035554|135554|989898|1|9999035554|MR|Test|E|Lead 35554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035555|135555|989898|1|9999035555|MR|Test|E|Lead 35555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035556|135556|989898|1|9999035556|MR|Test|E|Lead 35556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035557|135557|989898|1|9999035557|MR|Test|E|Lead 35557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035558|135558|989898|1|9999035558|MR|Test|E|Lead 35558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035559|135559|989898|1|9999035559|MR|Test|E|Lead 35559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035560|135560|989898|1|9999035560|MR|Test|E|Lead 35560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035561|135561|989898|1|9999035561|MR|Test|E|Lead 35561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035562|135562|989898|1|9999035562|MR|Test|E|Lead 35562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035563|135563|989898|1|9999035563|MR|Test|E|Lead 35563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035564|135564|989898|1|9999035564|MR|Test|E|Lead 35564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035565|135565|989898|1|9999035565|MR|Test|E|Lead 35565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035566|135566|989898|1|9999035566|MR|Test|E|Lead 35566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035567|135567|989898|1|9999035567|MR|Test|E|Lead 35567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035568|135568|989898|1|9999035568|MR|Test|E|Lead 35568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035569|135569|989898|1|9999035569|MR|Test|E|Lead 35569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035570|135570|989898|1|9999035570|MR|Test|E|Lead 35570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035571|135571|989898|1|9999035571|MR|Test|E|Lead 35571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035572|135572|989898|1|9999035572|MR|Test|E|Lead 35572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035573|135573|989898|1|9999035573|MR|Test|E|Lead 35573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035574|135574|989898|1|9999035574|MR|Test|E|Lead 35574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035575|135575|989898|1|9999035575|MR|Test|E|Lead 35575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035576|135576|989898|1|9999035576|MR|Test|E|Lead 35576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035577|135577|989898|1|9999035577|MR|Test|E|Lead 35577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035578|135578|989898|1|9999035578|MR|Test|E|Lead 35578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035579|135579|989898|1|9999035579|MR|Test|E|Lead 35579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035580|135580|989898|1|9999035580|MR|Test|E|Lead 35580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035581|135581|989898|1|9999035581|MR|Test|E|Lead 35581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035582|135582|989898|1|9999035582|MR|Test|E|Lead 35582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035583|135583|989898|1|9999035583|MR|Test|E|Lead 35583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035584|135584|989898|1|9999035584|MR|Test|E|Lead 35584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035585|135585|989898|1|9999035585|MR|Test|E|Lead 35585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035586|135586|989898|1|9999035586|MR|Test|E|Lead 35586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035587|135587|989898|1|9999035587|MR|Test|E|Lead 35587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035588|135588|989898|1|9999035588|MR|Test|E|Lead 35588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035589|135589|989898|1|9999035589|MR|Test|E|Lead 35589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035590|135590|989898|1|9999035590|MR|Test|E|Lead 35590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035591|135591|989898|1|9999035591|MR|Test|E|Lead 35591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035592|135592|989898|1|9999035592|MR|Test|E|Lead 35592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035593|135593|989898|1|9999035593|MR|Test|E|Lead 35593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035594|135594|989898|1|9999035594|MR|Test|E|Lead 35594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035595|135595|989898|1|9999035595|MR|Test|E|Lead 35595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035596|135596|989898|1|9999035596|MR|Test|E|Lead 35596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035597|135597|989898|1|9999035597|MR|Test|E|Lead 35597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035598|135598|989898|1|9999035598|MR|Test|E|Lead 35598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035599|135599|989898|1|9999035599|MR|Test|E|Lead 35599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035600|135600|989898|1|9999035600|MR|Test|E|Lead 35600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035601|135601|989898|1|9999035601|MR|Test|E|Lead 35601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035602|135602|989898|1|9999035602|MR|Test|E|Lead 35602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035603|135603|989898|1|9999035603|MR|Test|E|Lead 35603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035604|135604|989898|1|9999035604|MR|Test|E|Lead 35604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035605|135605|989898|1|9999035605|MR|Test|E|Lead 35605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035606|135606|989898|1|9999035606|MR|Test|E|Lead 35606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035607|135607|989898|1|9999035607|MR|Test|E|Lead 35607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035608|135608|989898|1|9999035608|MR|Test|E|Lead 35608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035609|135609|989898|1|9999035609|MR|Test|E|Lead 35609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035610|135610|989898|1|9999035610|MR|Test|E|Lead 35610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035611|135611|989898|1|9999035611|MR|Test|E|Lead 35611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035612|135612|989898|1|9999035612|MR|Test|E|Lead 35612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035613|135613|989898|1|9999035613|MR|Test|E|Lead 35613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035614|135614|989898|1|9999035614|MR|Test|E|Lead 35614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035615|135615|989898|1|9999035615|MR|Test|E|Lead 35615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035616|135616|989898|1|9999035616|MR|Test|E|Lead 35616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035617|135617|989898|1|9999035617|MR|Test|E|Lead 35617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035618|135618|989898|1|9999035618|MR|Test|E|Lead 35618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035619|135619|989898|1|9999035619|MR|Test|E|Lead 35619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035620|135620|989898|1|9999035620|MR|Test|E|Lead 35620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035621|135621|989898|1|9999035621|MR|Test|E|Lead 35621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035622|135622|989898|1|9999035622|MR|Test|E|Lead 35622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035623|135623|989898|1|9999035623|MR|Test|E|Lead 35623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035624|135624|989898|1|9999035624|MR|Test|E|Lead 35624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035625|135625|989898|1|9999035625|MR|Test|E|Lead 35625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035626|135626|989898|1|9999035626|MR|Test|E|Lead 35626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035627|135627|989898|1|9999035627|MR|Test|E|Lead 35627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035628|135628|989898|1|9999035628|MR|Test|E|Lead 35628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035629|135629|989898|1|9999035629|MR|Test|E|Lead 35629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035630|135630|989898|1|9999035630|MR|Test|E|Lead 35630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035631|135631|989898|1|9999035631|MR|Test|E|Lead 35631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035632|135632|989898|1|9999035632|MR|Test|E|Lead 35632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035633|135633|989898|1|9999035633|MR|Test|E|Lead 35633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035634|135634|989898|1|9999035634|MR|Test|E|Lead 35634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035635|135635|989898|1|9999035635|MR|Test|E|Lead 35635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035636|135636|989898|1|9999035636|MR|Test|E|Lead 35636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035637|135637|989898|1|9999035637|MR|Test|E|Lead 35637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035638|135638|989898|1|9999035638|MR|Test|E|Lead 35638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035639|135639|989898|1|9999035639|MR|Test|E|Lead 35639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035640|135640|989898|1|9999035640|MR|Test|E|Lead 35640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035641|135641|989898|1|9999035641|MR|Test|E|Lead 35641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035642|135642|989898|1|9999035642|MR|Test|E|Lead 35642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035643|135643|989898|1|9999035643|MR|Test|E|Lead 35643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035644|135644|989898|1|9999035644|MR|Test|E|Lead 35644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035645|135645|989898|1|9999035645|MR|Test|E|Lead 35645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035646|135646|989898|1|9999035646|MR|Test|E|Lead 35646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035647|135647|989898|1|9999035647|MR|Test|E|Lead 35647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035648|135648|989898|1|9999035648|MR|Test|E|Lead 35648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035649|135649|989898|1|9999035649|MR|Test|E|Lead 35649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035650|135650|989898|1|9999035650|MR|Test|E|Lead 35650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035651|135651|989898|1|9999035651|MR|Test|E|Lead 35651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035652|135652|989898|1|9999035652|MR|Test|E|Lead 35652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035653|135653|989898|1|9999035653|MR|Test|E|Lead 35653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035654|135654|989898|1|9999035654|MR|Test|E|Lead 35654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035655|135655|989898|1|9999035655|MR|Test|E|Lead 35655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035656|135656|989898|1|9999035656|MR|Test|E|Lead 35656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035657|135657|989898|1|9999035657|MR|Test|E|Lead 35657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035658|135658|989898|1|9999035658|MR|Test|E|Lead 35658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035659|135659|989898|1|9999035659|MR|Test|E|Lead 35659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035660|135660|989898|1|9999035660|MR|Test|E|Lead 35660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035661|135661|989898|1|9999035661|MR|Test|E|Lead 35661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035662|135662|989898|1|9999035662|MR|Test|E|Lead 35662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035663|135663|989898|1|9999035663|MR|Test|E|Lead 35663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035664|135664|989898|1|9999035664|MR|Test|E|Lead 35664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035665|135665|989898|1|9999035665|MR|Test|E|Lead 35665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035666|135666|989898|1|9999035666|MR|Test|E|Lead 35666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035667|135667|989898|1|9999035667|MR|Test|E|Lead 35667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035668|135668|989898|1|9999035668|MR|Test|E|Lead 35668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035669|135669|989898|1|9999035669|MR|Test|E|Lead 35669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035670|135670|989898|1|9999035670|MR|Test|E|Lead 35670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035671|135671|989898|1|9999035671|MR|Test|E|Lead 35671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035672|135672|989898|1|9999035672|MR|Test|E|Lead 35672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035673|135673|989898|1|9999035673|MR|Test|E|Lead 35673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035674|135674|989898|1|9999035674|MR|Test|E|Lead 35674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035675|135675|989898|1|9999035675|MR|Test|E|Lead 35675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035676|135676|989898|1|9999035676|MR|Test|E|Lead 35676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035677|135677|989898|1|9999035677|MR|Test|E|Lead 35677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035678|135678|989898|1|9999035678|MR|Test|E|Lead 35678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035679|135679|989898|1|9999035679|MR|Test|E|Lead 35679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035680|135680|989898|1|9999035680|MR|Test|E|Lead 35680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035681|135681|989898|1|9999035681|MR|Test|E|Lead 35681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035682|135682|989898|1|9999035682|MR|Test|E|Lead 35682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035683|135683|989898|1|9999035683|MR|Test|E|Lead 35683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035684|135684|989898|1|9999035684|MR|Test|E|Lead 35684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035685|135685|989898|1|9999035685|MR|Test|E|Lead 35685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035686|135686|989898|1|9999035686|MR|Test|E|Lead 35686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035687|135687|989898|1|9999035687|MR|Test|E|Lead 35687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035688|135688|989898|1|9999035688|MR|Test|E|Lead 35688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035689|135689|989898|1|9999035689|MR|Test|E|Lead 35689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035690|135690|989898|1|9999035690|MR|Test|E|Lead 35690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035691|135691|989898|1|9999035691|MR|Test|E|Lead 35691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035692|135692|989898|1|9999035692|MR|Test|E|Lead 35692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035693|135693|989898|1|9999035693|MR|Test|E|Lead 35693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035694|135694|989898|1|9999035694|MR|Test|E|Lead 35694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035695|135695|989898|1|9999035695|MR|Test|E|Lead 35695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035696|135696|989898|1|9999035696|MR|Test|E|Lead 35696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035697|135697|989898|1|9999035697|MR|Test|E|Lead 35697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035698|135698|989898|1|9999035698|MR|Test|E|Lead 35698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035699|135699|989898|1|9999035699|MR|Test|E|Lead 35699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035700|135700|989898|1|9999035700|MR|Test|E|Lead 35700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035701|135701|989898|1|9999035701|MR|Test|E|Lead 35701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035702|135702|989898|1|9999035702|MR|Test|E|Lead 35702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035703|135703|989898|1|9999035703|MR|Test|E|Lead 35703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035704|135704|989898|1|9999035704|MR|Test|E|Lead 35704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035705|135705|989898|1|9999035705|MR|Test|E|Lead 35705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035706|135706|989898|1|9999035706|MR|Test|E|Lead 35706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035707|135707|989898|1|9999035707|MR|Test|E|Lead 35707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035708|135708|989898|1|9999035708|MR|Test|E|Lead 35708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035709|135709|989898|1|9999035709|MR|Test|E|Lead 35709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035710|135710|989898|1|9999035710|MR|Test|E|Lead 35710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035711|135711|989898|1|9999035711|MR|Test|E|Lead 35711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035712|135712|989898|1|9999035712|MR|Test|E|Lead 35712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035713|135713|989898|1|9999035713|MR|Test|E|Lead 35713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035714|135714|989898|1|9999035714|MR|Test|E|Lead 35714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035715|135715|989898|1|9999035715|MR|Test|E|Lead 35715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035716|135716|989898|1|9999035716|MR|Test|E|Lead 35716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035717|135717|989898|1|9999035717|MR|Test|E|Lead 35717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035718|135718|989898|1|9999035718|MR|Test|E|Lead 35718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035719|135719|989898|1|9999035719|MR|Test|E|Lead 35719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035720|135720|989898|1|9999035720|MR|Test|E|Lead 35720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035721|135721|989898|1|9999035721|MR|Test|E|Lead 35721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035722|135722|989898|1|9999035722|MR|Test|E|Lead 35722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035723|135723|989898|1|9999035723|MR|Test|E|Lead 35723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035724|135724|989898|1|9999035724|MR|Test|E|Lead 35724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035725|135725|989898|1|9999035725|MR|Test|E|Lead 35725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035726|135726|989898|1|9999035726|MR|Test|E|Lead 35726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035727|135727|989898|1|9999035727|MR|Test|E|Lead 35727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035728|135728|989898|1|9999035728|MR|Test|E|Lead 35728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035729|135729|989898|1|9999035729|MR|Test|E|Lead 35729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035730|135730|989898|1|9999035730|MR|Test|E|Lead 35730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035731|135731|989898|1|9999035731|MR|Test|E|Lead 35731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035732|135732|989898|1|9999035732|MR|Test|E|Lead 35732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035733|135733|989898|1|9999035733|MR|Test|E|Lead 35733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035734|135734|989898|1|9999035734|MR|Test|E|Lead 35734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035735|135735|989898|1|9999035735|MR|Test|E|Lead 35735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035736|135736|989898|1|9999035736|MR|Test|E|Lead 35736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035737|135737|989898|1|9999035737|MR|Test|E|Lead 35737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035738|135738|989898|1|9999035738|MR|Test|E|Lead 35738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035739|135739|989898|1|9999035739|MR|Test|E|Lead 35739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035740|135740|989898|1|9999035740|MR|Test|E|Lead 35740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035741|135741|989898|1|9999035741|MR|Test|E|Lead 35741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035742|135742|989898|1|9999035742|MR|Test|E|Lead 35742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035743|135743|989898|1|9999035743|MR|Test|E|Lead 35743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035744|135744|989898|1|9999035744|MR|Test|E|Lead 35744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035745|135745|989898|1|9999035745|MR|Test|E|Lead 35745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035746|135746|989898|1|9999035746|MR|Test|E|Lead 35746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035747|135747|989898|1|9999035747|MR|Test|E|Lead 35747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035748|135748|989898|1|9999035748|MR|Test|E|Lead 35748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035749|135749|989898|1|9999035749|MR|Test|E|Lead 35749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035750|135750|989898|1|9999035750|MR|Test|E|Lead 35750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035751|135751|989898|1|9999035751|MR|Test|E|Lead 35751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035752|135752|989898|1|9999035752|MR|Test|E|Lead 35752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035753|135753|989898|1|9999035753|MR|Test|E|Lead 35753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035754|135754|989898|1|9999035754|MR|Test|E|Lead 35754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035755|135755|989898|1|9999035755|MR|Test|E|Lead 35755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035756|135756|989898|1|9999035756|MR|Test|E|Lead 35756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035757|135757|989898|1|9999035757|MR|Test|E|Lead 35757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035758|135758|989898|1|9999035758|MR|Test|E|Lead 35758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035759|135759|989898|1|9999035759|MR|Test|E|Lead 35759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035760|135760|989898|1|9999035760|MR|Test|E|Lead 35760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035761|135761|989898|1|9999035761|MR|Test|E|Lead 35761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035762|135762|989898|1|9999035762|MR|Test|E|Lead 35762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035763|135763|989898|1|9999035763|MR|Test|E|Lead 35763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035764|135764|989898|1|9999035764|MR|Test|E|Lead 35764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035765|135765|989898|1|9999035765|MR|Test|E|Lead 35765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035766|135766|989898|1|9999035766|MR|Test|E|Lead 35766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035767|135767|989898|1|9999035767|MR|Test|E|Lead 35767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035768|135768|989898|1|9999035768|MR|Test|E|Lead 35768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035769|135769|989898|1|9999035769|MR|Test|E|Lead 35769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035770|135770|989898|1|9999035770|MR|Test|E|Lead 35770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035771|135771|989898|1|9999035771|MR|Test|E|Lead 35771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035772|135772|989898|1|9999035772|MR|Test|E|Lead 35772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035773|135773|989898|1|9999035773|MR|Test|E|Lead 35773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035774|135774|989898|1|9999035774|MR|Test|E|Lead 35774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035775|135775|989898|1|9999035775|MR|Test|E|Lead 35775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035776|135776|989898|1|9999035776|MR|Test|E|Lead 35776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035777|135777|989898|1|9999035777|MR|Test|E|Lead 35777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035778|135778|989898|1|9999035778|MR|Test|E|Lead 35778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035779|135779|989898|1|9999035779|MR|Test|E|Lead 35779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035780|135780|989898|1|9999035780|MR|Test|E|Lead 35780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035781|135781|989898|1|9999035781|MR|Test|E|Lead 35781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035782|135782|989898|1|9999035782|MR|Test|E|Lead 35782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035783|135783|989898|1|9999035783|MR|Test|E|Lead 35783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035784|135784|989898|1|9999035784|MR|Test|E|Lead 35784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035785|135785|989898|1|9999035785|MR|Test|E|Lead 35785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035786|135786|989898|1|9999035786|MR|Test|E|Lead 35786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035787|135787|989898|1|9999035787|MR|Test|E|Lead 35787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035788|135788|989898|1|9999035788|MR|Test|E|Lead 35788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035789|135789|989898|1|9999035789|MR|Test|E|Lead 35789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035790|135790|989898|1|9999035790|MR|Test|E|Lead 35790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035791|135791|989898|1|9999035791|MR|Test|E|Lead 35791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035792|135792|989898|1|9999035792|MR|Test|E|Lead 35792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035793|135793|989898|1|9999035793|MR|Test|E|Lead 35793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035794|135794|989898|1|9999035794|MR|Test|E|Lead 35794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035795|135795|989898|1|9999035795|MR|Test|E|Lead 35795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035796|135796|989898|1|9999035796|MR|Test|E|Lead 35796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035797|135797|989898|1|9999035797|MR|Test|E|Lead 35797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035798|135798|989898|1|9999035798|MR|Test|E|Lead 35798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035799|135799|989898|1|9999035799|MR|Test|E|Lead 35799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035800|135800|989898|1|9999035800|MR|Test|E|Lead 35800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035801|135801|989898|1|9999035801|MR|Test|E|Lead 35801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035802|135802|989898|1|9999035802|MR|Test|E|Lead 35802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035803|135803|989898|1|9999035803|MR|Test|E|Lead 35803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035804|135804|989898|1|9999035804|MR|Test|E|Lead 35804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035805|135805|989898|1|9999035805|MR|Test|E|Lead 35805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035806|135806|989898|1|9999035806|MR|Test|E|Lead 35806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035807|135807|989898|1|9999035807|MR|Test|E|Lead 35807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035808|135808|989898|1|9999035808|MR|Test|E|Lead 35808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035809|135809|989898|1|9999035809|MR|Test|E|Lead 35809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035810|135810|989898|1|9999035810|MR|Test|E|Lead 35810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035811|135811|989898|1|9999035811|MR|Test|E|Lead 35811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035812|135812|989898|1|9999035812|MR|Test|E|Lead 35812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035813|135813|989898|1|9999035813|MR|Test|E|Lead 35813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035814|135814|989898|1|9999035814|MR|Test|E|Lead 35814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035815|135815|989898|1|9999035815|MR|Test|E|Lead 35815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035816|135816|989898|1|9999035816|MR|Test|E|Lead 35816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035817|135817|989898|1|9999035817|MR|Test|E|Lead 35817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035818|135818|989898|1|9999035818|MR|Test|E|Lead 35818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035819|135819|989898|1|9999035819|MR|Test|E|Lead 35819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035820|135820|989898|1|9999035820|MR|Test|E|Lead 35820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035821|135821|989898|1|9999035821|MR|Test|E|Lead 35821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035822|135822|989898|1|9999035822|MR|Test|E|Lead 35822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035823|135823|989898|1|9999035823|MR|Test|E|Lead 35823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035824|135824|989898|1|9999035824|MR|Test|E|Lead 35824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035825|135825|989898|1|9999035825|MR|Test|E|Lead 35825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035826|135826|989898|1|9999035826|MR|Test|E|Lead 35826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035827|135827|989898|1|9999035827|MR|Test|E|Lead 35827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035828|135828|989898|1|9999035828|MR|Test|E|Lead 35828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035829|135829|989898|1|9999035829|MR|Test|E|Lead 35829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035830|135830|989898|1|9999035830|MR|Test|E|Lead 35830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035831|135831|989898|1|9999035831|MR|Test|E|Lead 35831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035832|135832|989898|1|9999035832|MR|Test|E|Lead 35832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035833|135833|989898|1|9999035833|MR|Test|E|Lead 35833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035834|135834|989898|1|9999035834|MR|Test|E|Lead 35834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035835|135835|989898|1|9999035835|MR|Test|E|Lead 35835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035836|135836|989898|1|9999035836|MR|Test|E|Lead 35836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035837|135837|989898|1|9999035837|MR|Test|E|Lead 35837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035838|135838|989898|1|9999035838|MR|Test|E|Lead 35838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035839|135839|989898|1|9999035839|MR|Test|E|Lead 35839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035840|135840|989898|1|9999035840|MR|Test|E|Lead 35840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035841|135841|989898|1|9999035841|MR|Test|E|Lead 35841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035842|135842|989898|1|9999035842|MR|Test|E|Lead 35842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035843|135843|989898|1|9999035843|MR|Test|E|Lead 35843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035844|135844|989898|1|9999035844|MR|Test|E|Lead 35844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035845|135845|989898|1|9999035845|MR|Test|E|Lead 35845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035846|135846|989898|1|9999035846|MR|Test|E|Lead 35846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035847|135847|989898|1|9999035847|MR|Test|E|Lead 35847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035848|135848|989898|1|9999035848|MR|Test|E|Lead 35848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035849|135849|989898|1|9999035849|MR|Test|E|Lead 35849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035850|135850|989898|1|9999035850|MR|Test|E|Lead 35850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035851|135851|989898|1|9999035851|MR|Test|E|Lead 35851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035852|135852|989898|1|9999035852|MR|Test|E|Lead 35852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035853|135853|989898|1|9999035853|MR|Test|E|Lead 35853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035854|135854|989898|1|9999035854|MR|Test|E|Lead 35854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035855|135855|989898|1|9999035855|MR|Test|E|Lead 35855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035856|135856|989898|1|9999035856|MR|Test|E|Lead 35856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035857|135857|989898|1|9999035857|MR|Test|E|Lead 35857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035858|135858|989898|1|9999035858|MR|Test|E|Lead 35858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035859|135859|989898|1|9999035859|MR|Test|E|Lead 35859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035860|135860|989898|1|9999035860|MR|Test|E|Lead 35860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035861|135861|989898|1|9999035861|MR|Test|E|Lead 35861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035862|135862|989898|1|9999035862|MR|Test|E|Lead 35862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035863|135863|989898|1|9999035863|MR|Test|E|Lead 35863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035864|135864|989898|1|9999035864|MR|Test|E|Lead 35864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035865|135865|989898|1|9999035865|MR|Test|E|Lead 35865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035866|135866|989898|1|9999035866|MR|Test|E|Lead 35866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035867|135867|989898|1|9999035867|MR|Test|E|Lead 35867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035868|135868|989898|1|9999035868|MR|Test|E|Lead 35868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035869|135869|989898|1|9999035869|MR|Test|E|Lead 35869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035870|135870|989898|1|9999035870|MR|Test|E|Lead 35870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035871|135871|989898|1|9999035871|MR|Test|E|Lead 35871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035872|135872|989898|1|9999035872|MR|Test|E|Lead 35872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035873|135873|989898|1|9999035873|MR|Test|E|Lead 35873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035874|135874|989898|1|9999035874|MR|Test|E|Lead 35874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035875|135875|989898|1|9999035875|MR|Test|E|Lead 35875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035876|135876|989898|1|9999035876|MR|Test|E|Lead 35876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035877|135877|989898|1|9999035877|MR|Test|E|Lead 35877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035878|135878|989898|1|9999035878|MR|Test|E|Lead 35878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035879|135879|989898|1|9999035879|MR|Test|E|Lead 35879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035880|135880|989898|1|9999035880|MR|Test|E|Lead 35880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035881|135881|989898|1|9999035881|MR|Test|E|Lead 35881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035882|135882|989898|1|9999035882|MR|Test|E|Lead 35882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035883|135883|989898|1|9999035883|MR|Test|E|Lead 35883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035884|135884|989898|1|9999035884|MR|Test|E|Lead 35884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035885|135885|989898|1|9999035885|MR|Test|E|Lead 35885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035886|135886|989898|1|9999035886|MR|Test|E|Lead 35886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035887|135887|989898|1|9999035887|MR|Test|E|Lead 35887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035888|135888|989898|1|9999035888|MR|Test|E|Lead 35888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035889|135889|989898|1|9999035889|MR|Test|E|Lead 35889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035890|135890|989898|1|9999035890|MR|Test|E|Lead 35890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035891|135891|989898|1|9999035891|MR|Test|E|Lead 35891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035892|135892|989898|1|9999035892|MR|Test|E|Lead 35892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035893|135893|989898|1|9999035893|MR|Test|E|Lead 35893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035894|135894|989898|1|9999035894|MR|Test|E|Lead 35894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035895|135895|989898|1|9999035895|MR|Test|E|Lead 35895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035896|135896|989898|1|9999035896|MR|Test|E|Lead 35896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035897|135897|989898|1|9999035897|MR|Test|E|Lead 35897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035898|135898|989898|1|9999035898|MR|Test|E|Lead 35898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035899|135899|989898|1|9999035899|MR|Test|E|Lead 35899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035900|135900|989898|1|9999035900|MR|Test|E|Lead 35900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035901|135901|989898|1|9999035901|MR|Test|E|Lead 35901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035902|135902|989898|1|9999035902|MR|Test|E|Lead 35902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035903|135903|989898|1|9999035903|MR|Test|E|Lead 35903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035904|135904|989898|1|9999035904|MR|Test|E|Lead 35904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035905|135905|989898|1|9999035905|MR|Test|E|Lead 35905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035906|135906|989898|1|9999035906|MR|Test|E|Lead 35906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035907|135907|989898|1|9999035907|MR|Test|E|Lead 35907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035908|135908|989898|1|9999035908|MR|Test|E|Lead 35908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035909|135909|989898|1|9999035909|MR|Test|E|Lead 35909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035910|135910|989898|1|9999035910|MR|Test|E|Lead 35910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035911|135911|989898|1|9999035911|MR|Test|E|Lead 35911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035912|135912|989898|1|9999035912|MR|Test|E|Lead 35912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035913|135913|989898|1|9999035913|MR|Test|E|Lead 35913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035914|135914|989898|1|9999035914|MR|Test|E|Lead 35914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035915|135915|989898|1|9999035915|MR|Test|E|Lead 35915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035916|135916|989898|1|9999035916|MR|Test|E|Lead 35916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035917|135917|989898|1|9999035917|MR|Test|E|Lead 35917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035918|135918|989898|1|9999035918|MR|Test|E|Lead 35918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035919|135919|989898|1|9999035919|MR|Test|E|Lead 35919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035920|135920|989898|1|9999035920|MR|Test|E|Lead 35920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035921|135921|989898|1|9999035921|MR|Test|E|Lead 35921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035922|135922|989898|1|9999035922|MR|Test|E|Lead 35922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035923|135923|989898|1|9999035923|MR|Test|E|Lead 35923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035924|135924|989898|1|9999035924|MR|Test|E|Lead 35924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035925|135925|989898|1|9999035925|MR|Test|E|Lead 35925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035926|135926|989898|1|9999035926|MR|Test|E|Lead 35926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035927|135927|989898|1|9999035927|MR|Test|E|Lead 35927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035928|135928|989898|1|9999035928|MR|Test|E|Lead 35928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035929|135929|989898|1|9999035929|MR|Test|E|Lead 35929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035930|135930|989898|1|9999035930|MR|Test|E|Lead 35930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035931|135931|989898|1|9999035931|MR|Test|E|Lead 35931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035932|135932|989898|1|9999035932|MR|Test|E|Lead 35932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035933|135933|989898|1|9999035933|MR|Test|E|Lead 35933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035934|135934|989898|1|9999035934|MR|Test|E|Lead 35934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035935|135935|989898|1|9999035935|MR|Test|E|Lead 35935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035936|135936|989898|1|9999035936|MR|Test|E|Lead 35936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035937|135937|989898|1|9999035937|MR|Test|E|Lead 35937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035938|135938|989898|1|9999035938|MR|Test|E|Lead 35938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035939|135939|989898|1|9999035939|MR|Test|E|Lead 35939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035940|135940|989898|1|9999035940|MR|Test|E|Lead 35940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035941|135941|989898|1|9999035941|MR|Test|E|Lead 35941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035942|135942|989898|1|9999035942|MR|Test|E|Lead 35942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035943|135943|989898|1|9999035943|MR|Test|E|Lead 35943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035944|135944|989898|1|9999035944|MR|Test|E|Lead 35944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035945|135945|989898|1|9999035945|MR|Test|E|Lead 35945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035946|135946|989898|1|9999035946|MR|Test|E|Lead 35946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035947|135947|989898|1|9999035947|MR|Test|E|Lead 35947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035948|135948|989898|1|9999035948|MR|Test|E|Lead 35948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035949|135949|989898|1|9999035949|MR|Test|E|Lead 35949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035950|135950|989898|1|9999035950|MR|Test|E|Lead 35950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035951|135951|989898|1|9999035951|MR|Test|E|Lead 35951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035952|135952|989898|1|9999035952|MR|Test|E|Lead 35952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035953|135953|989898|1|9999035953|MR|Test|E|Lead 35953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035954|135954|989898|1|9999035954|MR|Test|E|Lead 35954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035955|135955|989898|1|9999035955|MR|Test|E|Lead 35955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035956|135956|989898|1|9999035956|MR|Test|E|Lead 35956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035957|135957|989898|1|9999035957|MR|Test|E|Lead 35957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035958|135958|989898|1|9999035958|MR|Test|E|Lead 35958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035959|135959|989898|1|9999035959|MR|Test|E|Lead 35959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035960|135960|989898|1|9999035960|MR|Test|E|Lead 35960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035961|135961|989898|1|9999035961|MR|Test|E|Lead 35961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035962|135962|989898|1|9999035962|MR|Test|E|Lead 35962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035963|135963|989898|1|9999035963|MR|Test|E|Lead 35963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035964|135964|989898|1|9999035964|MR|Test|E|Lead 35964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035965|135965|989898|1|9999035965|MR|Test|E|Lead 35965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035966|135966|989898|1|9999035966|MR|Test|E|Lead 35966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035967|135967|989898|1|9999035967|MR|Test|E|Lead 35967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035968|135968|989898|1|9999035968|MR|Test|E|Lead 35968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035969|135969|989898|1|9999035969|MR|Test|E|Lead 35969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035970|135970|989898|1|9999035970|MR|Test|E|Lead 35970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035971|135971|989898|1|9999035971|MR|Test|E|Lead 35971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035972|135972|989898|1|9999035972|MR|Test|E|Lead 35972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035973|135973|989898|1|9999035973|MR|Test|E|Lead 35973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035974|135974|989898|1|9999035974|MR|Test|E|Lead 35974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035975|135975|989898|1|9999035975|MR|Test|E|Lead 35975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035976|135976|989898|1|9999035976|MR|Test|E|Lead 35976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035977|135977|989898|1|9999035977|MR|Test|E|Lead 35977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035978|135978|989898|1|9999035978|MR|Test|E|Lead 35978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035979|135979|989898|1|9999035979|MR|Test|E|Lead 35979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035980|135980|989898|1|9999035980|MR|Test|E|Lead 35980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035981|135981|989898|1|9999035981|MR|Test|E|Lead 35981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035982|135982|989898|1|9999035982|MR|Test|E|Lead 35982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035983|135983|989898|1|9999035983|MR|Test|E|Lead 35983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035984|135984|989898|1|9999035984|MR|Test|E|Lead 35984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035985|135985|989898|1|9999035985|MR|Test|E|Lead 35985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035986|135986|989898|1|9999035986|MR|Test|E|Lead 35986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035987|135987|989898|1|9999035987|MR|Test|E|Lead 35987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035988|135988|989898|1|9999035988|MR|Test|E|Lead 35988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035989|135989|989898|1|9999035989|MR|Test|E|Lead 35989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035990|135990|989898|1|9999035990|MR|Test|E|Lead 35990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035991|135991|989898|1|9999035991|MR|Test|E|Lead 35991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035992|135992|989898|1|9999035992|MR|Test|E|Lead 35992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035993|135993|989898|1|9999035993|MR|Test|E|Lead 35993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035994|135994|989898|1|9999035994|MR|Test|E|Lead 35994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035995|135995|989898|1|9999035995|MR|Test|E|Lead 35995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035996|135996|989898|1|9999035996|MR|Test|E|Lead 35996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035997|135997|989898|1|9999035997|MR|Test|E|Lead 35997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035998|135998|989898|1|9999035998|MR|Test|E|Lead 35998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1035999|135999|989898|1|9999035999|MR|Test|E|Lead 35999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036000|136000|989898|1|9999036000|MR|Test|E|Lead 36000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036001|136001|989898|1|9999036001|MR|Test|E|Lead 36001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036002|136002|989898|1|9999036002|MR|Test|E|Lead 36002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036003|136003|989898|1|9999036003|MR|Test|E|Lead 36003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036004|136004|989898|1|9999036004|MR|Test|E|Lead 36004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036005|136005|989898|1|9999036005|MR|Test|E|Lead 36005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036006|136006|989898|1|9999036006|MR|Test|E|Lead 36006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036007|136007|989898|1|9999036007|MR|Test|E|Lead 36007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036008|136008|989898|1|9999036008|MR|Test|E|Lead 36008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036009|136009|989898|1|9999036009|MR|Test|E|Lead 36009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036010|136010|989898|1|9999036010|MR|Test|E|Lead 36010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036011|136011|989898|1|9999036011|MR|Test|E|Lead 36011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036012|136012|989898|1|9999036012|MR|Test|E|Lead 36012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036013|136013|989898|1|9999036013|MR|Test|E|Lead 36013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036014|136014|989898|1|9999036014|MR|Test|E|Lead 36014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036015|136015|989898|1|9999036015|MR|Test|E|Lead 36015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036016|136016|989898|1|9999036016|MR|Test|E|Lead 36016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036017|136017|989898|1|9999036017|MR|Test|E|Lead 36017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036018|136018|989898|1|9999036018|MR|Test|E|Lead 36018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036019|136019|989898|1|9999036019|MR|Test|E|Lead 36019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036020|136020|989898|1|9999036020|MR|Test|E|Lead 36020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036021|136021|989898|1|9999036021|MR|Test|E|Lead 36021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036022|136022|989898|1|9999036022|MR|Test|E|Lead 36022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036023|136023|989898|1|9999036023|MR|Test|E|Lead 36023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036024|136024|989898|1|9999036024|MR|Test|E|Lead 36024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036025|136025|989898|1|9999036025|MR|Test|E|Lead 36025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036026|136026|989898|1|9999036026|MR|Test|E|Lead 36026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036027|136027|989898|1|9999036027|MR|Test|E|Lead 36027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036028|136028|989898|1|9999036028|MR|Test|E|Lead 36028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036029|136029|989898|1|9999036029|MR|Test|E|Lead 36029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036030|136030|989898|1|9999036030|MR|Test|E|Lead 36030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036031|136031|989898|1|9999036031|MR|Test|E|Lead 36031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036032|136032|989898|1|9999036032|MR|Test|E|Lead 36032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036033|136033|989898|1|9999036033|MR|Test|E|Lead 36033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036034|136034|989898|1|9999036034|MR|Test|E|Lead 36034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036035|136035|989898|1|9999036035|MR|Test|E|Lead 36035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036036|136036|989898|1|9999036036|MR|Test|E|Lead 36036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036037|136037|989898|1|9999036037|MR|Test|E|Lead 36037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036038|136038|989898|1|9999036038|MR|Test|E|Lead 36038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036039|136039|989898|1|9999036039|MR|Test|E|Lead 36039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036040|136040|989898|1|9999036040|MR|Test|E|Lead 36040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036041|136041|989898|1|9999036041|MR|Test|E|Lead 36041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036042|136042|989898|1|9999036042|MR|Test|E|Lead 36042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036043|136043|989898|1|9999036043|MR|Test|E|Lead 36043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036044|136044|989898|1|9999036044|MR|Test|E|Lead 36044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036045|136045|989898|1|9999036045|MR|Test|E|Lead 36045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036046|136046|989898|1|9999036046|MR|Test|E|Lead 36046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036047|136047|989898|1|9999036047|MR|Test|E|Lead 36047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036048|136048|989898|1|9999036048|MR|Test|E|Lead 36048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036049|136049|989898|1|9999036049|MR|Test|E|Lead 36049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036050|136050|989898|1|9999036050|MR|Test|E|Lead 36050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036051|136051|989898|1|9999036051|MR|Test|E|Lead 36051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036052|136052|989898|1|9999036052|MR|Test|E|Lead 36052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036053|136053|989898|1|9999036053|MR|Test|E|Lead 36053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036054|136054|989898|1|9999036054|MR|Test|E|Lead 36054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036055|136055|989898|1|9999036055|MR|Test|E|Lead 36055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036056|136056|989898|1|9999036056|MR|Test|E|Lead 36056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036057|136057|989898|1|9999036057|MR|Test|E|Lead 36057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036058|136058|989898|1|9999036058|MR|Test|E|Lead 36058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036059|136059|989898|1|9999036059|MR|Test|E|Lead 36059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036060|136060|989898|1|9999036060|MR|Test|E|Lead 36060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036061|136061|989898|1|9999036061|MR|Test|E|Lead 36061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036062|136062|989898|1|9999036062|MR|Test|E|Lead 36062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036063|136063|989898|1|9999036063|MR|Test|E|Lead 36063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036064|136064|989898|1|9999036064|MR|Test|E|Lead 36064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036065|136065|989898|1|9999036065|MR|Test|E|Lead 36065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036066|136066|989898|1|9999036066|MR|Test|E|Lead 36066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036067|136067|989898|1|9999036067|MR|Test|E|Lead 36067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036068|136068|989898|1|9999036068|MR|Test|E|Lead 36068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036069|136069|989898|1|9999036069|MR|Test|E|Lead 36069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036070|136070|989898|1|9999036070|MR|Test|E|Lead 36070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036071|136071|989898|1|9999036071|MR|Test|E|Lead 36071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036072|136072|989898|1|9999036072|MR|Test|E|Lead 36072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036073|136073|989898|1|9999036073|MR|Test|E|Lead 36073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036074|136074|989898|1|9999036074|MR|Test|E|Lead 36074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036075|136075|989898|1|9999036075|MR|Test|E|Lead 36075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036076|136076|989898|1|9999036076|MR|Test|E|Lead 36076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036077|136077|989898|1|9999036077|MR|Test|E|Lead 36077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036078|136078|989898|1|9999036078|MR|Test|E|Lead 36078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036079|136079|989898|1|9999036079|MR|Test|E|Lead 36079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036080|136080|989898|1|9999036080|MR|Test|E|Lead 36080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036081|136081|989898|1|9999036081|MR|Test|E|Lead 36081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036082|136082|989898|1|9999036082|MR|Test|E|Lead 36082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036083|136083|989898|1|9999036083|MR|Test|E|Lead 36083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036084|136084|989898|1|9999036084|MR|Test|E|Lead 36084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036085|136085|989898|1|9999036085|MR|Test|E|Lead 36085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036086|136086|989898|1|9999036086|MR|Test|E|Lead 36086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036087|136087|989898|1|9999036087|MR|Test|E|Lead 36087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036088|136088|989898|1|9999036088|MR|Test|E|Lead 36088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036089|136089|989898|1|9999036089|MR|Test|E|Lead 36089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036090|136090|989898|1|9999036090|MR|Test|E|Lead 36090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036091|136091|989898|1|9999036091|MR|Test|E|Lead 36091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036092|136092|989898|1|9999036092|MR|Test|E|Lead 36092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036093|136093|989898|1|9999036093|MR|Test|E|Lead 36093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036094|136094|989898|1|9999036094|MR|Test|E|Lead 36094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036095|136095|989898|1|9999036095|MR|Test|E|Lead 36095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036096|136096|989898|1|9999036096|MR|Test|E|Lead 36096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036097|136097|989898|1|9999036097|MR|Test|E|Lead 36097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036098|136098|989898|1|9999036098|MR|Test|E|Lead 36098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036099|136099|989898|1|9999036099|MR|Test|E|Lead 36099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036100|136100|989898|1|9999036100|MR|Test|E|Lead 36100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036101|136101|989898|1|9999036101|MR|Test|E|Lead 36101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036102|136102|989898|1|9999036102|MR|Test|E|Lead 36102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036103|136103|989898|1|9999036103|MR|Test|E|Lead 36103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036104|136104|989898|1|9999036104|MR|Test|E|Lead 36104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036105|136105|989898|1|9999036105|MR|Test|E|Lead 36105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036106|136106|989898|1|9999036106|MR|Test|E|Lead 36106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036107|136107|989898|1|9999036107|MR|Test|E|Lead 36107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036108|136108|989898|1|9999036108|MR|Test|E|Lead 36108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036109|136109|989898|1|9999036109|MR|Test|E|Lead 36109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036110|136110|989898|1|9999036110|MR|Test|E|Lead 36110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036111|136111|989898|1|9999036111|MR|Test|E|Lead 36111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036112|136112|989898|1|9999036112|MR|Test|E|Lead 36112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036113|136113|989898|1|9999036113|MR|Test|E|Lead 36113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036114|136114|989898|1|9999036114|MR|Test|E|Lead 36114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036115|136115|989898|1|9999036115|MR|Test|E|Lead 36115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036116|136116|989898|1|9999036116|MR|Test|E|Lead 36116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036117|136117|989898|1|9999036117|MR|Test|E|Lead 36117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036118|136118|989898|1|9999036118|MR|Test|E|Lead 36118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036119|136119|989898|1|9999036119|MR|Test|E|Lead 36119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036120|136120|989898|1|9999036120|MR|Test|E|Lead 36120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036121|136121|989898|1|9999036121|MR|Test|E|Lead 36121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036122|136122|989898|1|9999036122|MR|Test|E|Lead 36122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036123|136123|989898|1|9999036123|MR|Test|E|Lead 36123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036124|136124|989898|1|9999036124|MR|Test|E|Lead 36124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036125|136125|989898|1|9999036125|MR|Test|E|Lead 36125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036126|136126|989898|1|9999036126|MR|Test|E|Lead 36126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036127|136127|989898|1|9999036127|MR|Test|E|Lead 36127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036128|136128|989898|1|9999036128|MR|Test|E|Lead 36128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036129|136129|989898|1|9999036129|MR|Test|E|Lead 36129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036130|136130|989898|1|9999036130|MR|Test|E|Lead 36130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036131|136131|989898|1|9999036131|MR|Test|E|Lead 36131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036132|136132|989898|1|9999036132|MR|Test|E|Lead 36132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036133|136133|989898|1|9999036133|MR|Test|E|Lead 36133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036134|136134|989898|1|9999036134|MR|Test|E|Lead 36134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036135|136135|989898|1|9999036135|MR|Test|E|Lead 36135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036136|136136|989898|1|9999036136|MR|Test|E|Lead 36136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036137|136137|989898|1|9999036137|MR|Test|E|Lead 36137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036138|136138|989898|1|9999036138|MR|Test|E|Lead 36138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036139|136139|989898|1|9999036139|MR|Test|E|Lead 36139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036140|136140|989898|1|9999036140|MR|Test|E|Lead 36140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036141|136141|989898|1|9999036141|MR|Test|E|Lead 36141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036142|136142|989898|1|9999036142|MR|Test|E|Lead 36142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036143|136143|989898|1|9999036143|MR|Test|E|Lead 36143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036144|136144|989898|1|9999036144|MR|Test|E|Lead 36144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036145|136145|989898|1|9999036145|MR|Test|E|Lead 36145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036146|136146|989898|1|9999036146|MR|Test|E|Lead 36146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036147|136147|989898|1|9999036147|MR|Test|E|Lead 36147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036148|136148|989898|1|9999036148|MR|Test|E|Lead 36148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036149|136149|989898|1|9999036149|MR|Test|E|Lead 36149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036150|136150|989898|1|9999036150|MR|Test|E|Lead 36150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036151|136151|989898|1|9999036151|MR|Test|E|Lead 36151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036152|136152|989898|1|9999036152|MR|Test|E|Lead 36152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036153|136153|989898|1|9999036153|MR|Test|E|Lead 36153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036154|136154|989898|1|9999036154|MR|Test|E|Lead 36154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036155|136155|989898|1|9999036155|MR|Test|E|Lead 36155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036156|136156|989898|1|9999036156|MR|Test|E|Lead 36156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036157|136157|989898|1|9999036157|MR|Test|E|Lead 36157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036158|136158|989898|1|9999036158|MR|Test|E|Lead 36158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036159|136159|989898|1|9999036159|MR|Test|E|Lead 36159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036160|136160|989898|1|9999036160|MR|Test|E|Lead 36160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036161|136161|989898|1|9999036161|MR|Test|E|Lead 36161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036162|136162|989898|1|9999036162|MR|Test|E|Lead 36162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036163|136163|989898|1|9999036163|MR|Test|E|Lead 36163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036164|136164|989898|1|9999036164|MR|Test|E|Lead 36164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036165|136165|989898|1|9999036165|MR|Test|E|Lead 36165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036166|136166|989898|1|9999036166|MR|Test|E|Lead 36166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036167|136167|989898|1|9999036167|MR|Test|E|Lead 36167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036168|136168|989898|1|9999036168|MR|Test|E|Lead 36168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036169|136169|989898|1|9999036169|MR|Test|E|Lead 36169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036170|136170|989898|1|9999036170|MR|Test|E|Lead 36170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036171|136171|989898|1|9999036171|MR|Test|E|Lead 36171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036172|136172|989898|1|9999036172|MR|Test|E|Lead 36172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036173|136173|989898|1|9999036173|MR|Test|E|Lead 36173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036174|136174|989898|1|9999036174|MR|Test|E|Lead 36174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036175|136175|989898|1|9999036175|MR|Test|E|Lead 36175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036176|136176|989898|1|9999036176|MR|Test|E|Lead 36176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036177|136177|989898|1|9999036177|MR|Test|E|Lead 36177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036178|136178|989898|1|9999036178|MR|Test|E|Lead 36178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036179|136179|989898|1|9999036179|MR|Test|E|Lead 36179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036180|136180|989898|1|9999036180|MR|Test|E|Lead 36180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036181|136181|989898|1|9999036181|MR|Test|E|Lead 36181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036182|136182|989898|1|9999036182|MR|Test|E|Lead 36182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036183|136183|989898|1|9999036183|MR|Test|E|Lead 36183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036184|136184|989898|1|9999036184|MR|Test|E|Lead 36184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036185|136185|989898|1|9999036185|MR|Test|E|Lead 36185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036186|136186|989898|1|9999036186|MR|Test|E|Lead 36186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036187|136187|989898|1|9999036187|MR|Test|E|Lead 36187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036188|136188|989898|1|9999036188|MR|Test|E|Lead 36188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036189|136189|989898|1|9999036189|MR|Test|E|Lead 36189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036190|136190|989898|1|9999036190|MR|Test|E|Lead 36190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036191|136191|989898|1|9999036191|MR|Test|E|Lead 36191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036192|136192|989898|1|9999036192|MR|Test|E|Lead 36192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036193|136193|989898|1|9999036193|MR|Test|E|Lead 36193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036194|136194|989898|1|9999036194|MR|Test|E|Lead 36194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036195|136195|989898|1|9999036195|MR|Test|E|Lead 36195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036196|136196|989898|1|9999036196|MR|Test|E|Lead 36196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036197|136197|989898|1|9999036197|MR|Test|E|Lead 36197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036198|136198|989898|1|9999036198|MR|Test|E|Lead 36198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036199|136199|989898|1|9999036199|MR|Test|E|Lead 36199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036200|136200|989898|1|9999036200|MR|Test|E|Lead 36200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036201|136201|989898|1|9999036201|MR|Test|E|Lead 36201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036202|136202|989898|1|9999036202|MR|Test|E|Lead 36202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036203|136203|989898|1|9999036203|MR|Test|E|Lead 36203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036204|136204|989898|1|9999036204|MR|Test|E|Lead 36204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036205|136205|989898|1|9999036205|MR|Test|E|Lead 36205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036206|136206|989898|1|9999036206|MR|Test|E|Lead 36206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036207|136207|989898|1|9999036207|MR|Test|E|Lead 36207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036208|136208|989898|1|9999036208|MR|Test|E|Lead 36208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036209|136209|989898|1|9999036209|MR|Test|E|Lead 36209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036210|136210|989898|1|9999036210|MR|Test|E|Lead 36210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036211|136211|989898|1|9999036211|MR|Test|E|Lead 36211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036212|136212|989898|1|9999036212|MR|Test|E|Lead 36212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036213|136213|989898|1|9999036213|MR|Test|E|Lead 36213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036214|136214|989898|1|9999036214|MR|Test|E|Lead 36214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036215|136215|989898|1|9999036215|MR|Test|E|Lead 36215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036216|136216|989898|1|9999036216|MR|Test|E|Lead 36216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036217|136217|989898|1|9999036217|MR|Test|E|Lead 36217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036218|136218|989898|1|9999036218|MR|Test|E|Lead 36218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036219|136219|989898|1|9999036219|MR|Test|E|Lead 36219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036220|136220|989898|1|9999036220|MR|Test|E|Lead 36220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036221|136221|989898|1|9999036221|MR|Test|E|Lead 36221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036222|136222|989898|1|9999036222|MR|Test|E|Lead 36222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036223|136223|989898|1|9999036223|MR|Test|E|Lead 36223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036224|136224|989898|1|9999036224|MR|Test|E|Lead 36224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036225|136225|989898|1|9999036225|MR|Test|E|Lead 36225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036226|136226|989898|1|9999036226|MR|Test|E|Lead 36226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036227|136227|989898|1|9999036227|MR|Test|E|Lead 36227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036228|136228|989898|1|9999036228|MR|Test|E|Lead 36228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036229|136229|989898|1|9999036229|MR|Test|E|Lead 36229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036230|136230|989898|1|9999036230|MR|Test|E|Lead 36230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036231|136231|989898|1|9999036231|MR|Test|E|Lead 36231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036232|136232|989898|1|9999036232|MR|Test|E|Lead 36232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036233|136233|989898|1|9999036233|MR|Test|E|Lead 36233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036234|136234|989898|1|9999036234|MR|Test|E|Lead 36234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036235|136235|989898|1|9999036235|MR|Test|E|Lead 36235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036236|136236|989898|1|9999036236|MR|Test|E|Lead 36236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036237|136237|989898|1|9999036237|MR|Test|E|Lead 36237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036238|136238|989898|1|9999036238|MR|Test|E|Lead 36238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036239|136239|989898|1|9999036239|MR|Test|E|Lead 36239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036240|136240|989898|1|9999036240|MR|Test|E|Lead 36240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036241|136241|989898|1|9999036241|MR|Test|E|Lead 36241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036242|136242|989898|1|9999036242|MR|Test|E|Lead 36242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036243|136243|989898|1|9999036243|MR|Test|E|Lead 36243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036244|136244|989898|1|9999036244|MR|Test|E|Lead 36244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036245|136245|989898|1|9999036245|MR|Test|E|Lead 36245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036246|136246|989898|1|9999036246|MR|Test|E|Lead 36246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036247|136247|989898|1|9999036247|MR|Test|E|Lead 36247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036248|136248|989898|1|9999036248|MR|Test|E|Lead 36248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036249|136249|989898|1|9999036249|MR|Test|E|Lead 36249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036250|136250|989898|1|9999036250|MR|Test|E|Lead 36250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036251|136251|989898|1|9999036251|MR|Test|E|Lead 36251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036252|136252|989898|1|9999036252|MR|Test|E|Lead 36252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036253|136253|989898|1|9999036253|MR|Test|E|Lead 36253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036254|136254|989898|1|9999036254|MR|Test|E|Lead 36254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036255|136255|989898|1|9999036255|MR|Test|E|Lead 36255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036256|136256|989898|1|9999036256|MR|Test|E|Lead 36256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036257|136257|989898|1|9999036257|MR|Test|E|Lead 36257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036258|136258|989898|1|9999036258|MR|Test|E|Lead 36258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036259|136259|989898|1|9999036259|MR|Test|E|Lead 36259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036260|136260|989898|1|9999036260|MR|Test|E|Lead 36260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036261|136261|989898|1|9999036261|MR|Test|E|Lead 36261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036262|136262|989898|1|9999036262|MR|Test|E|Lead 36262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036263|136263|989898|1|9999036263|MR|Test|E|Lead 36263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036264|136264|989898|1|9999036264|MR|Test|E|Lead 36264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036265|136265|989898|1|9999036265|MR|Test|E|Lead 36265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036266|136266|989898|1|9999036266|MR|Test|E|Lead 36266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036267|136267|989898|1|9999036267|MR|Test|E|Lead 36267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036268|136268|989898|1|9999036268|MR|Test|E|Lead 36268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036269|136269|989898|1|9999036269|MR|Test|E|Lead 36269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036270|136270|989898|1|9999036270|MR|Test|E|Lead 36270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036271|136271|989898|1|9999036271|MR|Test|E|Lead 36271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036272|136272|989898|1|9999036272|MR|Test|E|Lead 36272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036273|136273|989898|1|9999036273|MR|Test|E|Lead 36273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036274|136274|989898|1|9999036274|MR|Test|E|Lead 36274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036275|136275|989898|1|9999036275|MR|Test|E|Lead 36275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036276|136276|989898|1|9999036276|MR|Test|E|Lead 36276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036277|136277|989898|1|9999036277|MR|Test|E|Lead 36277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036278|136278|989898|1|9999036278|MR|Test|E|Lead 36278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036279|136279|989898|1|9999036279|MR|Test|E|Lead 36279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036280|136280|989898|1|9999036280|MR|Test|E|Lead 36280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036281|136281|989898|1|9999036281|MR|Test|E|Lead 36281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036282|136282|989898|1|9999036282|MR|Test|E|Lead 36282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036283|136283|989898|1|9999036283|MR|Test|E|Lead 36283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036284|136284|989898|1|9999036284|MR|Test|E|Lead 36284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036285|136285|989898|1|9999036285|MR|Test|E|Lead 36285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036286|136286|989898|1|9999036286|MR|Test|E|Lead 36286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036287|136287|989898|1|9999036287|MR|Test|E|Lead 36287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036288|136288|989898|1|9999036288|MR|Test|E|Lead 36288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036289|136289|989898|1|9999036289|MR|Test|E|Lead 36289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036290|136290|989898|1|9999036290|MR|Test|E|Lead 36290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036291|136291|989898|1|9999036291|MR|Test|E|Lead 36291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036292|136292|989898|1|9999036292|MR|Test|E|Lead 36292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036293|136293|989898|1|9999036293|MR|Test|E|Lead 36293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036294|136294|989898|1|9999036294|MR|Test|E|Lead 36294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036295|136295|989898|1|9999036295|MR|Test|E|Lead 36295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036296|136296|989898|1|9999036296|MR|Test|E|Lead 36296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036297|136297|989898|1|9999036297|MR|Test|E|Lead 36297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036298|136298|989898|1|9999036298|MR|Test|E|Lead 36298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036299|136299|989898|1|9999036299|MR|Test|E|Lead 36299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036300|136300|989898|1|9999036300|MR|Test|E|Lead 36300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036301|136301|989898|1|9999036301|MR|Test|E|Lead 36301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036302|136302|989898|1|9999036302|MR|Test|E|Lead 36302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036303|136303|989898|1|9999036303|MR|Test|E|Lead 36303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036304|136304|989898|1|9999036304|MR|Test|E|Lead 36304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036305|136305|989898|1|9999036305|MR|Test|E|Lead 36305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036306|136306|989898|1|9999036306|MR|Test|E|Lead 36306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036307|136307|989898|1|9999036307|MR|Test|E|Lead 36307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036308|136308|989898|1|9999036308|MR|Test|E|Lead 36308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036309|136309|989898|1|9999036309|MR|Test|E|Lead 36309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036310|136310|989898|1|9999036310|MR|Test|E|Lead 36310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036311|136311|989898|1|9999036311|MR|Test|E|Lead 36311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036312|136312|989898|1|9999036312|MR|Test|E|Lead 36312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036313|136313|989898|1|9999036313|MR|Test|E|Lead 36313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036314|136314|989898|1|9999036314|MR|Test|E|Lead 36314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036315|136315|989898|1|9999036315|MR|Test|E|Lead 36315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036316|136316|989898|1|9999036316|MR|Test|E|Lead 36316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036317|136317|989898|1|9999036317|MR|Test|E|Lead 36317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036318|136318|989898|1|9999036318|MR|Test|E|Lead 36318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036319|136319|989898|1|9999036319|MR|Test|E|Lead 36319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036320|136320|989898|1|9999036320|MR|Test|E|Lead 36320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036321|136321|989898|1|9999036321|MR|Test|E|Lead 36321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036322|136322|989898|1|9999036322|MR|Test|E|Lead 36322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036323|136323|989898|1|9999036323|MR|Test|E|Lead 36323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036324|136324|989898|1|9999036324|MR|Test|E|Lead 36324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036325|136325|989898|1|9999036325|MR|Test|E|Lead 36325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036326|136326|989898|1|9999036326|MR|Test|E|Lead 36326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036327|136327|989898|1|9999036327|MR|Test|E|Lead 36327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036328|136328|989898|1|9999036328|MR|Test|E|Lead 36328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036329|136329|989898|1|9999036329|MR|Test|E|Lead 36329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036330|136330|989898|1|9999036330|MR|Test|E|Lead 36330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036331|136331|989898|1|9999036331|MR|Test|E|Lead 36331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036332|136332|989898|1|9999036332|MR|Test|E|Lead 36332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036333|136333|989898|1|9999036333|MR|Test|E|Lead 36333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036334|136334|989898|1|9999036334|MR|Test|E|Lead 36334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036335|136335|989898|1|9999036335|MR|Test|E|Lead 36335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036336|136336|989898|1|9999036336|MR|Test|E|Lead 36336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036337|136337|989898|1|9999036337|MR|Test|E|Lead 36337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036338|136338|989898|1|9999036338|MR|Test|E|Lead 36338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036339|136339|989898|1|9999036339|MR|Test|E|Lead 36339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036340|136340|989898|1|9999036340|MR|Test|E|Lead 36340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036341|136341|989898|1|9999036341|MR|Test|E|Lead 36341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036342|136342|989898|1|9999036342|MR|Test|E|Lead 36342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036343|136343|989898|1|9999036343|MR|Test|E|Lead 36343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036344|136344|989898|1|9999036344|MR|Test|E|Lead 36344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036345|136345|989898|1|9999036345|MR|Test|E|Lead 36345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036346|136346|989898|1|9999036346|MR|Test|E|Lead 36346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036347|136347|989898|1|9999036347|MR|Test|E|Lead 36347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036348|136348|989898|1|9999036348|MR|Test|E|Lead 36348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036349|136349|989898|1|9999036349|MR|Test|E|Lead 36349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036350|136350|989898|1|9999036350|MR|Test|E|Lead 36350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036351|136351|989898|1|9999036351|MR|Test|E|Lead 36351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036352|136352|989898|1|9999036352|MR|Test|E|Lead 36352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036353|136353|989898|1|9999036353|MR|Test|E|Lead 36353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036354|136354|989898|1|9999036354|MR|Test|E|Lead 36354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036355|136355|989898|1|9999036355|MR|Test|E|Lead 36355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036356|136356|989898|1|9999036356|MR|Test|E|Lead 36356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036357|136357|989898|1|9999036357|MR|Test|E|Lead 36357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036358|136358|989898|1|9999036358|MR|Test|E|Lead 36358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036359|136359|989898|1|9999036359|MR|Test|E|Lead 36359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036360|136360|989898|1|9999036360|MR|Test|E|Lead 36360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036361|136361|989898|1|9999036361|MR|Test|E|Lead 36361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036362|136362|989898|1|9999036362|MR|Test|E|Lead 36362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036363|136363|989898|1|9999036363|MR|Test|E|Lead 36363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036364|136364|989898|1|9999036364|MR|Test|E|Lead 36364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036365|136365|989898|1|9999036365|MR|Test|E|Lead 36365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036366|136366|989898|1|9999036366|MR|Test|E|Lead 36366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036367|136367|989898|1|9999036367|MR|Test|E|Lead 36367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036368|136368|989898|1|9999036368|MR|Test|E|Lead 36368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036369|136369|989898|1|9999036369|MR|Test|E|Lead 36369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036370|136370|989898|1|9999036370|MR|Test|E|Lead 36370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036371|136371|989898|1|9999036371|MR|Test|E|Lead 36371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036372|136372|989898|1|9999036372|MR|Test|E|Lead 36372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036373|136373|989898|1|9999036373|MR|Test|E|Lead 36373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036374|136374|989898|1|9999036374|MR|Test|E|Lead 36374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036375|136375|989898|1|9999036375|MR|Test|E|Lead 36375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036376|136376|989898|1|9999036376|MR|Test|E|Lead 36376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036377|136377|989898|1|9999036377|MR|Test|E|Lead 36377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036378|136378|989898|1|9999036378|MR|Test|E|Lead 36378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036379|136379|989898|1|9999036379|MR|Test|E|Lead 36379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036380|136380|989898|1|9999036380|MR|Test|E|Lead 36380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036381|136381|989898|1|9999036381|MR|Test|E|Lead 36381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036382|136382|989898|1|9999036382|MR|Test|E|Lead 36382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036383|136383|989898|1|9999036383|MR|Test|E|Lead 36383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036384|136384|989898|1|9999036384|MR|Test|E|Lead 36384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036385|136385|989898|1|9999036385|MR|Test|E|Lead 36385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036386|136386|989898|1|9999036386|MR|Test|E|Lead 36386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036387|136387|989898|1|9999036387|MR|Test|E|Lead 36387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036388|136388|989898|1|9999036388|MR|Test|E|Lead 36388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036389|136389|989898|1|9999036389|MR|Test|E|Lead 36389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036390|136390|989898|1|9999036390|MR|Test|E|Lead 36390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036391|136391|989898|1|9999036391|MR|Test|E|Lead 36391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036392|136392|989898|1|9999036392|MR|Test|E|Lead 36392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036393|136393|989898|1|9999036393|MR|Test|E|Lead 36393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036394|136394|989898|1|9999036394|MR|Test|E|Lead 36394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036395|136395|989898|1|9999036395|MR|Test|E|Lead 36395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036396|136396|989898|1|9999036396|MR|Test|E|Lead 36396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036397|136397|989898|1|9999036397|MR|Test|E|Lead 36397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036398|136398|989898|1|9999036398|MR|Test|E|Lead 36398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036399|136399|989898|1|9999036399|MR|Test|E|Lead 36399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036400|136400|989898|1|9999036400|MR|Test|E|Lead 36400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036401|136401|989898|1|9999036401|MR|Test|E|Lead 36401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036402|136402|989898|1|9999036402|MR|Test|E|Lead 36402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036403|136403|989898|1|9999036403|MR|Test|E|Lead 36403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036404|136404|989898|1|9999036404|MR|Test|E|Lead 36404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036405|136405|989898|1|9999036405|MR|Test|E|Lead 36405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036406|136406|989898|1|9999036406|MR|Test|E|Lead 36406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036407|136407|989898|1|9999036407|MR|Test|E|Lead 36407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036408|136408|989898|1|9999036408|MR|Test|E|Lead 36408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036409|136409|989898|1|9999036409|MR|Test|E|Lead 36409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036410|136410|989898|1|9999036410|MR|Test|E|Lead 36410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036411|136411|989898|1|9999036411|MR|Test|E|Lead 36411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036412|136412|989898|1|9999036412|MR|Test|E|Lead 36412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036413|136413|989898|1|9999036413|MR|Test|E|Lead 36413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036414|136414|989898|1|9999036414|MR|Test|E|Lead 36414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036415|136415|989898|1|9999036415|MR|Test|E|Lead 36415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036416|136416|989898|1|9999036416|MR|Test|E|Lead 36416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036417|136417|989898|1|9999036417|MR|Test|E|Lead 36417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036418|136418|989898|1|9999036418|MR|Test|E|Lead 36418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036419|136419|989898|1|9999036419|MR|Test|E|Lead 36419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036420|136420|989898|1|9999036420|MR|Test|E|Lead 36420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036421|136421|989898|1|9999036421|MR|Test|E|Lead 36421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036422|136422|989898|1|9999036422|MR|Test|E|Lead 36422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036423|136423|989898|1|9999036423|MR|Test|E|Lead 36423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036424|136424|989898|1|9999036424|MR|Test|E|Lead 36424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036425|136425|989898|1|9999036425|MR|Test|E|Lead 36425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036426|136426|989898|1|9999036426|MR|Test|E|Lead 36426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036427|136427|989898|1|9999036427|MR|Test|E|Lead 36427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036428|136428|989898|1|9999036428|MR|Test|E|Lead 36428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036429|136429|989898|1|9999036429|MR|Test|E|Lead 36429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036430|136430|989898|1|9999036430|MR|Test|E|Lead 36430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036431|136431|989898|1|9999036431|MR|Test|E|Lead 36431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036432|136432|989898|1|9999036432|MR|Test|E|Lead 36432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036433|136433|989898|1|9999036433|MR|Test|E|Lead 36433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036434|136434|989898|1|9999036434|MR|Test|E|Lead 36434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036435|136435|989898|1|9999036435|MR|Test|E|Lead 36435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036436|136436|989898|1|9999036436|MR|Test|E|Lead 36436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036437|136437|989898|1|9999036437|MR|Test|E|Lead 36437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036438|136438|989898|1|9999036438|MR|Test|E|Lead 36438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036439|136439|989898|1|9999036439|MR|Test|E|Lead 36439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036440|136440|989898|1|9999036440|MR|Test|E|Lead 36440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036441|136441|989898|1|9999036441|MR|Test|E|Lead 36441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036442|136442|989898|1|9999036442|MR|Test|E|Lead 36442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036443|136443|989898|1|9999036443|MR|Test|E|Lead 36443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036444|136444|989898|1|9999036444|MR|Test|E|Lead 36444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036445|136445|989898|1|9999036445|MR|Test|E|Lead 36445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036446|136446|989898|1|9999036446|MR|Test|E|Lead 36446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036447|136447|989898|1|9999036447|MR|Test|E|Lead 36447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036448|136448|989898|1|9999036448|MR|Test|E|Lead 36448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036449|136449|989898|1|9999036449|MR|Test|E|Lead 36449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036450|136450|989898|1|9999036450|MR|Test|E|Lead 36450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036451|136451|989898|1|9999036451|MR|Test|E|Lead 36451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036452|136452|989898|1|9999036452|MR|Test|E|Lead 36452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036453|136453|989898|1|9999036453|MR|Test|E|Lead 36453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036454|136454|989898|1|9999036454|MR|Test|E|Lead 36454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036455|136455|989898|1|9999036455|MR|Test|E|Lead 36455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036456|136456|989898|1|9999036456|MR|Test|E|Lead 36456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036457|136457|989898|1|9999036457|MR|Test|E|Lead 36457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036458|136458|989898|1|9999036458|MR|Test|E|Lead 36458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036459|136459|989898|1|9999036459|MR|Test|E|Lead 36459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036460|136460|989898|1|9999036460|MR|Test|E|Lead 36460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036461|136461|989898|1|9999036461|MR|Test|E|Lead 36461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036462|136462|989898|1|9999036462|MR|Test|E|Lead 36462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036463|136463|989898|1|9999036463|MR|Test|E|Lead 36463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036464|136464|989898|1|9999036464|MR|Test|E|Lead 36464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036465|136465|989898|1|9999036465|MR|Test|E|Lead 36465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036466|136466|989898|1|9999036466|MR|Test|E|Lead 36466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036467|136467|989898|1|9999036467|MR|Test|E|Lead 36467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036468|136468|989898|1|9999036468|MR|Test|E|Lead 36468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036469|136469|989898|1|9999036469|MR|Test|E|Lead 36469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036470|136470|989898|1|9999036470|MR|Test|E|Lead 36470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036471|136471|989898|1|9999036471|MR|Test|E|Lead 36471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036472|136472|989898|1|9999036472|MR|Test|E|Lead 36472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036473|136473|989898|1|9999036473|MR|Test|E|Lead 36473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036474|136474|989898|1|9999036474|MR|Test|E|Lead 36474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036475|136475|989898|1|9999036475|MR|Test|E|Lead 36475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036476|136476|989898|1|9999036476|MR|Test|E|Lead 36476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036477|136477|989898|1|9999036477|MR|Test|E|Lead 36477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036478|136478|989898|1|9999036478|MR|Test|E|Lead 36478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036479|136479|989898|1|9999036479|MR|Test|E|Lead 36479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036480|136480|989898|1|9999036480|MR|Test|E|Lead 36480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036481|136481|989898|1|9999036481|MR|Test|E|Lead 36481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036482|136482|989898|1|9999036482|MR|Test|E|Lead 36482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036483|136483|989898|1|9999036483|MR|Test|E|Lead 36483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036484|136484|989898|1|9999036484|MR|Test|E|Lead 36484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036485|136485|989898|1|9999036485|MR|Test|E|Lead 36485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036486|136486|989898|1|9999036486|MR|Test|E|Lead 36486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036487|136487|989898|1|9999036487|MR|Test|E|Lead 36487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036488|136488|989898|1|9999036488|MR|Test|E|Lead 36488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036489|136489|989898|1|9999036489|MR|Test|E|Lead 36489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036490|136490|989898|1|9999036490|MR|Test|E|Lead 36490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036491|136491|989898|1|9999036491|MR|Test|E|Lead 36491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036492|136492|989898|1|9999036492|MR|Test|E|Lead 36492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036493|136493|989898|1|9999036493|MR|Test|E|Lead 36493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036494|136494|989898|1|9999036494|MR|Test|E|Lead 36494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036495|136495|989898|1|9999036495|MR|Test|E|Lead 36495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036496|136496|989898|1|9999036496|MR|Test|E|Lead 36496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036497|136497|989898|1|9999036497|MR|Test|E|Lead 36497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036498|136498|989898|1|9999036498|MR|Test|E|Lead 36498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036499|136499|989898|1|9999036499|MR|Test|E|Lead 36499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036500|136500|989898|1|9999036500|MR|Test|E|Lead 36500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036501|136501|989898|1|9999036501|MR|Test|E|Lead 36501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036502|136502|989898|1|9999036502|MR|Test|E|Lead 36502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036503|136503|989898|1|9999036503|MR|Test|E|Lead 36503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036504|136504|989898|1|9999036504|MR|Test|E|Lead 36504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036505|136505|989898|1|9999036505|MR|Test|E|Lead 36505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036506|136506|989898|1|9999036506|MR|Test|E|Lead 36506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036507|136507|989898|1|9999036507|MR|Test|E|Lead 36507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036508|136508|989898|1|9999036508|MR|Test|E|Lead 36508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036509|136509|989898|1|9999036509|MR|Test|E|Lead 36509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036510|136510|989898|1|9999036510|MR|Test|E|Lead 36510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036511|136511|989898|1|9999036511|MR|Test|E|Lead 36511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036512|136512|989898|1|9999036512|MR|Test|E|Lead 36512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036513|136513|989898|1|9999036513|MR|Test|E|Lead 36513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036514|136514|989898|1|9999036514|MR|Test|E|Lead 36514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036515|136515|989898|1|9999036515|MR|Test|E|Lead 36515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036516|136516|989898|1|9999036516|MR|Test|E|Lead 36516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036517|136517|989898|1|9999036517|MR|Test|E|Lead 36517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036518|136518|989898|1|9999036518|MR|Test|E|Lead 36518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036519|136519|989898|1|9999036519|MR|Test|E|Lead 36519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036520|136520|989898|1|9999036520|MR|Test|E|Lead 36520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036521|136521|989898|1|9999036521|MR|Test|E|Lead 36521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036522|136522|989898|1|9999036522|MR|Test|E|Lead 36522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036523|136523|989898|1|9999036523|MR|Test|E|Lead 36523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036524|136524|989898|1|9999036524|MR|Test|E|Lead 36524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036525|136525|989898|1|9999036525|MR|Test|E|Lead 36525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036526|136526|989898|1|9999036526|MR|Test|E|Lead 36526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036527|136527|989898|1|9999036527|MR|Test|E|Lead 36527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036528|136528|989898|1|9999036528|MR|Test|E|Lead 36528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036529|136529|989898|1|9999036529|MR|Test|E|Lead 36529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036530|136530|989898|1|9999036530|MR|Test|E|Lead 36530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036531|136531|989898|1|9999036531|MR|Test|E|Lead 36531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036532|136532|989898|1|9999036532|MR|Test|E|Lead 36532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036533|136533|989898|1|9999036533|MR|Test|E|Lead 36533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036534|136534|989898|1|9999036534|MR|Test|E|Lead 36534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036535|136535|989898|1|9999036535|MR|Test|E|Lead 36535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036536|136536|989898|1|9999036536|MR|Test|E|Lead 36536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036537|136537|989898|1|9999036537|MR|Test|E|Lead 36537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036538|136538|989898|1|9999036538|MR|Test|E|Lead 36538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036539|136539|989898|1|9999036539|MR|Test|E|Lead 36539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036540|136540|989898|1|9999036540|MR|Test|E|Lead 36540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036541|136541|989898|1|9999036541|MR|Test|E|Lead 36541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036542|136542|989898|1|9999036542|MR|Test|E|Lead 36542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036543|136543|989898|1|9999036543|MR|Test|E|Lead 36543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036544|136544|989898|1|9999036544|MR|Test|E|Lead 36544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036545|136545|989898|1|9999036545|MR|Test|E|Lead 36545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036546|136546|989898|1|9999036546|MR|Test|E|Lead 36546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036547|136547|989898|1|9999036547|MR|Test|E|Lead 36547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036548|136548|989898|1|9999036548|MR|Test|E|Lead 36548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036549|136549|989898|1|9999036549|MR|Test|E|Lead 36549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036550|136550|989898|1|9999036550|MR|Test|E|Lead 36550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036551|136551|989898|1|9999036551|MR|Test|E|Lead 36551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036552|136552|989898|1|9999036552|MR|Test|E|Lead 36552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036553|136553|989898|1|9999036553|MR|Test|E|Lead 36553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036554|136554|989898|1|9999036554|MR|Test|E|Lead 36554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036555|136555|989898|1|9999036555|MR|Test|E|Lead 36555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036556|136556|989898|1|9999036556|MR|Test|E|Lead 36556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036557|136557|989898|1|9999036557|MR|Test|E|Lead 36557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036558|136558|989898|1|9999036558|MR|Test|E|Lead 36558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036559|136559|989898|1|9999036559|MR|Test|E|Lead 36559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036560|136560|989898|1|9999036560|MR|Test|E|Lead 36560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036561|136561|989898|1|9999036561|MR|Test|E|Lead 36561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036562|136562|989898|1|9999036562|MR|Test|E|Lead 36562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036563|136563|989898|1|9999036563|MR|Test|E|Lead 36563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036564|136564|989898|1|9999036564|MR|Test|E|Lead 36564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036565|136565|989898|1|9999036565|MR|Test|E|Lead 36565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036566|136566|989898|1|9999036566|MR|Test|E|Lead 36566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036567|136567|989898|1|9999036567|MR|Test|E|Lead 36567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036568|136568|989898|1|9999036568|MR|Test|E|Lead 36568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036569|136569|989898|1|9999036569|MR|Test|E|Lead 36569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036570|136570|989898|1|9999036570|MR|Test|E|Lead 36570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036571|136571|989898|1|9999036571|MR|Test|E|Lead 36571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036572|136572|989898|1|9999036572|MR|Test|E|Lead 36572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036573|136573|989898|1|9999036573|MR|Test|E|Lead 36573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036574|136574|989898|1|9999036574|MR|Test|E|Lead 36574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036575|136575|989898|1|9999036575|MR|Test|E|Lead 36575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036576|136576|989898|1|9999036576|MR|Test|E|Lead 36576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036577|136577|989898|1|9999036577|MR|Test|E|Lead 36577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036578|136578|989898|1|9999036578|MR|Test|E|Lead 36578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036579|136579|989898|1|9999036579|MR|Test|E|Lead 36579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036580|136580|989898|1|9999036580|MR|Test|E|Lead 36580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036581|136581|989898|1|9999036581|MR|Test|E|Lead 36581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036582|136582|989898|1|9999036582|MR|Test|E|Lead 36582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036583|136583|989898|1|9999036583|MR|Test|E|Lead 36583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036584|136584|989898|1|9999036584|MR|Test|E|Lead 36584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036585|136585|989898|1|9999036585|MR|Test|E|Lead 36585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036586|136586|989898|1|9999036586|MR|Test|E|Lead 36586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036587|136587|989898|1|9999036587|MR|Test|E|Lead 36587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036588|136588|989898|1|9999036588|MR|Test|E|Lead 36588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036589|136589|989898|1|9999036589|MR|Test|E|Lead 36589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036590|136590|989898|1|9999036590|MR|Test|E|Lead 36590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036591|136591|989898|1|9999036591|MR|Test|E|Lead 36591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036592|136592|989898|1|9999036592|MR|Test|E|Lead 36592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036593|136593|989898|1|9999036593|MR|Test|E|Lead 36593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036594|136594|989898|1|9999036594|MR|Test|E|Lead 36594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036595|136595|989898|1|9999036595|MR|Test|E|Lead 36595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036596|136596|989898|1|9999036596|MR|Test|E|Lead 36596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036597|136597|989898|1|9999036597|MR|Test|E|Lead 36597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036598|136598|989898|1|9999036598|MR|Test|E|Lead 36598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036599|136599|989898|1|9999036599|MR|Test|E|Lead 36599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036600|136600|989898|1|9999036600|MR|Test|E|Lead 36600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036601|136601|989898|1|9999036601|MR|Test|E|Lead 36601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036602|136602|989898|1|9999036602|MR|Test|E|Lead 36602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036603|136603|989898|1|9999036603|MR|Test|E|Lead 36603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036604|136604|989898|1|9999036604|MR|Test|E|Lead 36604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036605|136605|989898|1|9999036605|MR|Test|E|Lead 36605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036606|136606|989898|1|9999036606|MR|Test|E|Lead 36606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036607|136607|989898|1|9999036607|MR|Test|E|Lead 36607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036608|136608|989898|1|9999036608|MR|Test|E|Lead 36608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036609|136609|989898|1|9999036609|MR|Test|E|Lead 36609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036610|136610|989898|1|9999036610|MR|Test|E|Lead 36610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036611|136611|989898|1|9999036611|MR|Test|E|Lead 36611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036612|136612|989898|1|9999036612|MR|Test|E|Lead 36612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036613|136613|989898|1|9999036613|MR|Test|E|Lead 36613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036614|136614|989898|1|9999036614|MR|Test|E|Lead 36614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036615|136615|989898|1|9999036615|MR|Test|E|Lead 36615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036616|136616|989898|1|9999036616|MR|Test|E|Lead 36616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036617|136617|989898|1|9999036617|MR|Test|E|Lead 36617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036618|136618|989898|1|9999036618|MR|Test|E|Lead 36618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036619|136619|989898|1|9999036619|MR|Test|E|Lead 36619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036620|136620|989898|1|9999036620|MR|Test|E|Lead 36620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036621|136621|989898|1|9999036621|MR|Test|E|Lead 36621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036622|136622|989898|1|9999036622|MR|Test|E|Lead 36622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036623|136623|989898|1|9999036623|MR|Test|E|Lead 36623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036624|136624|989898|1|9999036624|MR|Test|E|Lead 36624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036625|136625|989898|1|9999036625|MR|Test|E|Lead 36625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036626|136626|989898|1|9999036626|MR|Test|E|Lead 36626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036627|136627|989898|1|9999036627|MR|Test|E|Lead 36627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036628|136628|989898|1|9999036628|MR|Test|E|Lead 36628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036629|136629|989898|1|9999036629|MR|Test|E|Lead 36629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036630|136630|989898|1|9999036630|MR|Test|E|Lead 36630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036631|136631|989898|1|9999036631|MR|Test|E|Lead 36631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036632|136632|989898|1|9999036632|MR|Test|E|Lead 36632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036633|136633|989898|1|9999036633|MR|Test|E|Lead 36633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036634|136634|989898|1|9999036634|MR|Test|E|Lead 36634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036635|136635|989898|1|9999036635|MR|Test|E|Lead 36635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036636|136636|989898|1|9999036636|MR|Test|E|Lead 36636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036637|136637|989898|1|9999036637|MR|Test|E|Lead 36637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036638|136638|989898|1|9999036638|MR|Test|E|Lead 36638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036639|136639|989898|1|9999036639|MR|Test|E|Lead 36639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036640|136640|989898|1|9999036640|MR|Test|E|Lead 36640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036641|136641|989898|1|9999036641|MR|Test|E|Lead 36641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036642|136642|989898|1|9999036642|MR|Test|E|Lead 36642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036643|136643|989898|1|9999036643|MR|Test|E|Lead 36643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036644|136644|989898|1|9999036644|MR|Test|E|Lead 36644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036645|136645|989898|1|9999036645|MR|Test|E|Lead 36645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036646|136646|989898|1|9999036646|MR|Test|E|Lead 36646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036647|136647|989898|1|9999036647|MR|Test|E|Lead 36647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036648|136648|989898|1|9999036648|MR|Test|E|Lead 36648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036649|136649|989898|1|9999036649|MR|Test|E|Lead 36649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036650|136650|989898|1|9999036650|MR|Test|E|Lead 36650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036651|136651|989898|1|9999036651|MR|Test|E|Lead 36651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036652|136652|989898|1|9999036652|MR|Test|E|Lead 36652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036653|136653|989898|1|9999036653|MR|Test|E|Lead 36653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036654|136654|989898|1|9999036654|MR|Test|E|Lead 36654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036655|136655|989898|1|9999036655|MR|Test|E|Lead 36655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036656|136656|989898|1|9999036656|MR|Test|E|Lead 36656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036657|136657|989898|1|9999036657|MR|Test|E|Lead 36657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036658|136658|989898|1|9999036658|MR|Test|E|Lead 36658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036659|136659|989898|1|9999036659|MR|Test|E|Lead 36659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036660|136660|989898|1|9999036660|MR|Test|E|Lead 36660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036661|136661|989898|1|9999036661|MR|Test|E|Lead 36661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036662|136662|989898|1|9999036662|MR|Test|E|Lead 36662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036663|136663|989898|1|9999036663|MR|Test|E|Lead 36663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036664|136664|989898|1|9999036664|MR|Test|E|Lead 36664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036665|136665|989898|1|9999036665|MR|Test|E|Lead 36665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036666|136666|989898|1|9999036666|MR|Test|E|Lead 36666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036667|136667|989898|1|9999036667|MR|Test|E|Lead 36667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036668|136668|989898|1|9999036668|MR|Test|E|Lead 36668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036669|136669|989898|1|9999036669|MR|Test|E|Lead 36669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036670|136670|989898|1|9999036670|MR|Test|E|Lead 36670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036671|136671|989898|1|9999036671|MR|Test|E|Lead 36671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036672|136672|989898|1|9999036672|MR|Test|E|Lead 36672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036673|136673|989898|1|9999036673|MR|Test|E|Lead 36673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036674|136674|989898|1|9999036674|MR|Test|E|Lead 36674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036675|136675|989898|1|9999036675|MR|Test|E|Lead 36675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036676|136676|989898|1|9999036676|MR|Test|E|Lead 36676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036677|136677|989898|1|9999036677|MR|Test|E|Lead 36677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036678|136678|989898|1|9999036678|MR|Test|E|Lead 36678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036679|136679|989898|1|9999036679|MR|Test|E|Lead 36679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036680|136680|989898|1|9999036680|MR|Test|E|Lead 36680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036681|136681|989898|1|9999036681|MR|Test|E|Lead 36681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036682|136682|989898|1|9999036682|MR|Test|E|Lead 36682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036683|136683|989898|1|9999036683|MR|Test|E|Lead 36683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036684|136684|989898|1|9999036684|MR|Test|E|Lead 36684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036685|136685|989898|1|9999036685|MR|Test|E|Lead 36685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036686|136686|989898|1|9999036686|MR|Test|E|Lead 36686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036687|136687|989898|1|9999036687|MR|Test|E|Lead 36687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036688|136688|989898|1|9999036688|MR|Test|E|Lead 36688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036689|136689|989898|1|9999036689|MR|Test|E|Lead 36689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036690|136690|989898|1|9999036690|MR|Test|E|Lead 36690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036691|136691|989898|1|9999036691|MR|Test|E|Lead 36691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036692|136692|989898|1|9999036692|MR|Test|E|Lead 36692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036693|136693|989898|1|9999036693|MR|Test|E|Lead 36693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036694|136694|989898|1|9999036694|MR|Test|E|Lead 36694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036695|136695|989898|1|9999036695|MR|Test|E|Lead 36695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036696|136696|989898|1|9999036696|MR|Test|E|Lead 36696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036697|136697|989898|1|9999036697|MR|Test|E|Lead 36697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036698|136698|989898|1|9999036698|MR|Test|E|Lead 36698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036699|136699|989898|1|9999036699|MR|Test|E|Lead 36699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036700|136700|989898|1|9999036700|MR|Test|E|Lead 36700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036701|136701|989898|1|9999036701|MR|Test|E|Lead 36701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036702|136702|989898|1|9999036702|MR|Test|E|Lead 36702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036703|136703|989898|1|9999036703|MR|Test|E|Lead 36703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036704|136704|989898|1|9999036704|MR|Test|E|Lead 36704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036705|136705|989898|1|9999036705|MR|Test|E|Lead 36705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036706|136706|989898|1|9999036706|MR|Test|E|Lead 36706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036707|136707|989898|1|9999036707|MR|Test|E|Lead 36707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036708|136708|989898|1|9999036708|MR|Test|E|Lead 36708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036709|136709|989898|1|9999036709|MR|Test|E|Lead 36709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036710|136710|989898|1|9999036710|MR|Test|E|Lead 36710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036711|136711|989898|1|9999036711|MR|Test|E|Lead 36711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036712|136712|989898|1|9999036712|MR|Test|E|Lead 36712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036713|136713|989898|1|9999036713|MR|Test|E|Lead 36713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036714|136714|989898|1|9999036714|MR|Test|E|Lead 36714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036715|136715|989898|1|9999036715|MR|Test|E|Lead 36715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036716|136716|989898|1|9999036716|MR|Test|E|Lead 36716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036717|136717|989898|1|9999036717|MR|Test|E|Lead 36717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036718|136718|989898|1|9999036718|MR|Test|E|Lead 36718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036719|136719|989898|1|9999036719|MR|Test|E|Lead 36719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036720|136720|989898|1|9999036720|MR|Test|E|Lead 36720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036721|136721|989898|1|9999036721|MR|Test|E|Lead 36721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036722|136722|989898|1|9999036722|MR|Test|E|Lead 36722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036723|136723|989898|1|9999036723|MR|Test|E|Lead 36723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036724|136724|989898|1|9999036724|MR|Test|E|Lead 36724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036725|136725|989898|1|9999036725|MR|Test|E|Lead 36725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036726|136726|989898|1|9999036726|MR|Test|E|Lead 36726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036727|136727|989898|1|9999036727|MR|Test|E|Lead 36727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036728|136728|989898|1|9999036728|MR|Test|E|Lead 36728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036729|136729|989898|1|9999036729|MR|Test|E|Lead 36729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036730|136730|989898|1|9999036730|MR|Test|E|Lead 36730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036731|136731|989898|1|9999036731|MR|Test|E|Lead 36731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036732|136732|989898|1|9999036732|MR|Test|E|Lead 36732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036733|136733|989898|1|9999036733|MR|Test|E|Lead 36733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036734|136734|989898|1|9999036734|MR|Test|E|Lead 36734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036735|136735|989898|1|9999036735|MR|Test|E|Lead 36735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036736|136736|989898|1|9999036736|MR|Test|E|Lead 36736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036737|136737|989898|1|9999036737|MR|Test|E|Lead 36737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036738|136738|989898|1|9999036738|MR|Test|E|Lead 36738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036739|136739|989898|1|9999036739|MR|Test|E|Lead 36739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036740|136740|989898|1|9999036740|MR|Test|E|Lead 36740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036741|136741|989898|1|9999036741|MR|Test|E|Lead 36741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036742|136742|989898|1|9999036742|MR|Test|E|Lead 36742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036743|136743|989898|1|9999036743|MR|Test|E|Lead 36743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036744|136744|989898|1|9999036744|MR|Test|E|Lead 36744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036745|136745|989898|1|9999036745|MR|Test|E|Lead 36745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036746|136746|989898|1|9999036746|MR|Test|E|Lead 36746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036747|136747|989898|1|9999036747|MR|Test|E|Lead 36747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036748|136748|989898|1|9999036748|MR|Test|E|Lead 36748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036749|136749|989898|1|9999036749|MR|Test|E|Lead 36749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036750|136750|989898|1|9999036750|MR|Test|E|Lead 36750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036751|136751|989898|1|9999036751|MR|Test|E|Lead 36751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036752|136752|989898|1|9999036752|MR|Test|E|Lead 36752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036753|136753|989898|1|9999036753|MR|Test|E|Lead 36753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036754|136754|989898|1|9999036754|MR|Test|E|Lead 36754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036755|136755|989898|1|9999036755|MR|Test|E|Lead 36755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036756|136756|989898|1|9999036756|MR|Test|E|Lead 36756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036757|136757|989898|1|9999036757|MR|Test|E|Lead 36757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036758|136758|989898|1|9999036758|MR|Test|E|Lead 36758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036759|136759|989898|1|9999036759|MR|Test|E|Lead 36759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036760|136760|989898|1|9999036760|MR|Test|E|Lead 36760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036761|136761|989898|1|9999036761|MR|Test|E|Lead 36761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036762|136762|989898|1|9999036762|MR|Test|E|Lead 36762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036763|136763|989898|1|9999036763|MR|Test|E|Lead 36763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036764|136764|989898|1|9999036764|MR|Test|E|Lead 36764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036765|136765|989898|1|9999036765|MR|Test|E|Lead 36765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036766|136766|989898|1|9999036766|MR|Test|E|Lead 36766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036767|136767|989898|1|9999036767|MR|Test|E|Lead 36767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036768|136768|989898|1|9999036768|MR|Test|E|Lead 36768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036769|136769|989898|1|9999036769|MR|Test|E|Lead 36769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036770|136770|989898|1|9999036770|MR|Test|E|Lead 36770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036771|136771|989898|1|9999036771|MR|Test|E|Lead 36771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036772|136772|989898|1|9999036772|MR|Test|E|Lead 36772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036773|136773|989898|1|9999036773|MR|Test|E|Lead 36773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036774|136774|989898|1|9999036774|MR|Test|E|Lead 36774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036775|136775|989898|1|9999036775|MR|Test|E|Lead 36775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036776|136776|989898|1|9999036776|MR|Test|E|Lead 36776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036777|136777|989898|1|9999036777|MR|Test|E|Lead 36777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036778|136778|989898|1|9999036778|MR|Test|E|Lead 36778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036779|136779|989898|1|9999036779|MR|Test|E|Lead 36779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036780|136780|989898|1|9999036780|MR|Test|E|Lead 36780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036781|136781|989898|1|9999036781|MR|Test|E|Lead 36781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036782|136782|989898|1|9999036782|MR|Test|E|Lead 36782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036783|136783|989898|1|9999036783|MR|Test|E|Lead 36783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036784|136784|989898|1|9999036784|MR|Test|E|Lead 36784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036785|136785|989898|1|9999036785|MR|Test|E|Lead 36785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036786|136786|989898|1|9999036786|MR|Test|E|Lead 36786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036787|136787|989898|1|9999036787|MR|Test|E|Lead 36787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036788|136788|989898|1|9999036788|MR|Test|E|Lead 36788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036789|136789|989898|1|9999036789|MR|Test|E|Lead 36789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036790|136790|989898|1|9999036790|MR|Test|E|Lead 36790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036791|136791|989898|1|9999036791|MR|Test|E|Lead 36791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036792|136792|989898|1|9999036792|MR|Test|E|Lead 36792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036793|136793|989898|1|9999036793|MR|Test|E|Lead 36793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036794|136794|989898|1|9999036794|MR|Test|E|Lead 36794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036795|136795|989898|1|9999036795|MR|Test|E|Lead 36795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036796|136796|989898|1|9999036796|MR|Test|E|Lead 36796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036797|136797|989898|1|9999036797|MR|Test|E|Lead 36797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036798|136798|989898|1|9999036798|MR|Test|E|Lead 36798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036799|136799|989898|1|9999036799|MR|Test|E|Lead 36799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036800|136800|989898|1|9999036800|MR|Test|E|Lead 36800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036801|136801|989898|1|9999036801|MR|Test|E|Lead 36801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036802|136802|989898|1|9999036802|MR|Test|E|Lead 36802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036803|136803|989898|1|9999036803|MR|Test|E|Lead 36803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036804|136804|989898|1|9999036804|MR|Test|E|Lead 36804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036805|136805|989898|1|9999036805|MR|Test|E|Lead 36805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036806|136806|989898|1|9999036806|MR|Test|E|Lead 36806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036807|136807|989898|1|9999036807|MR|Test|E|Lead 36807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036808|136808|989898|1|9999036808|MR|Test|E|Lead 36808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036809|136809|989898|1|9999036809|MR|Test|E|Lead 36809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036810|136810|989898|1|9999036810|MR|Test|E|Lead 36810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036811|136811|989898|1|9999036811|MR|Test|E|Lead 36811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036812|136812|989898|1|9999036812|MR|Test|E|Lead 36812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036813|136813|989898|1|9999036813|MR|Test|E|Lead 36813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036814|136814|989898|1|9999036814|MR|Test|E|Lead 36814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036815|136815|989898|1|9999036815|MR|Test|E|Lead 36815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036816|136816|989898|1|9999036816|MR|Test|E|Lead 36816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036817|136817|989898|1|9999036817|MR|Test|E|Lead 36817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036818|136818|989898|1|9999036818|MR|Test|E|Lead 36818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036819|136819|989898|1|9999036819|MR|Test|E|Lead 36819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036820|136820|989898|1|9999036820|MR|Test|E|Lead 36820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036821|136821|989898|1|9999036821|MR|Test|E|Lead 36821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036822|136822|989898|1|9999036822|MR|Test|E|Lead 36822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036823|136823|989898|1|9999036823|MR|Test|E|Lead 36823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036824|136824|989898|1|9999036824|MR|Test|E|Lead 36824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036825|136825|989898|1|9999036825|MR|Test|E|Lead 36825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036826|136826|989898|1|9999036826|MR|Test|E|Lead 36826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036827|136827|989898|1|9999036827|MR|Test|E|Lead 36827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036828|136828|989898|1|9999036828|MR|Test|E|Lead 36828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036829|136829|989898|1|9999036829|MR|Test|E|Lead 36829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036830|136830|989898|1|9999036830|MR|Test|E|Lead 36830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036831|136831|989898|1|9999036831|MR|Test|E|Lead 36831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036832|136832|989898|1|9999036832|MR|Test|E|Lead 36832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036833|136833|989898|1|9999036833|MR|Test|E|Lead 36833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036834|136834|989898|1|9999036834|MR|Test|E|Lead 36834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036835|136835|989898|1|9999036835|MR|Test|E|Lead 36835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036836|136836|989898|1|9999036836|MR|Test|E|Lead 36836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036837|136837|989898|1|9999036837|MR|Test|E|Lead 36837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036838|136838|989898|1|9999036838|MR|Test|E|Lead 36838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036839|136839|989898|1|9999036839|MR|Test|E|Lead 36839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036840|136840|989898|1|9999036840|MR|Test|E|Lead 36840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036841|136841|989898|1|9999036841|MR|Test|E|Lead 36841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036842|136842|989898|1|9999036842|MR|Test|E|Lead 36842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036843|136843|989898|1|9999036843|MR|Test|E|Lead 36843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036844|136844|989898|1|9999036844|MR|Test|E|Lead 36844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036845|136845|989898|1|9999036845|MR|Test|E|Lead 36845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036846|136846|989898|1|9999036846|MR|Test|E|Lead 36846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036847|136847|989898|1|9999036847|MR|Test|E|Lead 36847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036848|136848|989898|1|9999036848|MR|Test|E|Lead 36848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036849|136849|989898|1|9999036849|MR|Test|E|Lead 36849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036850|136850|989898|1|9999036850|MR|Test|E|Lead 36850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036851|136851|989898|1|9999036851|MR|Test|E|Lead 36851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036852|136852|989898|1|9999036852|MR|Test|E|Lead 36852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036853|136853|989898|1|9999036853|MR|Test|E|Lead 36853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036854|136854|989898|1|9999036854|MR|Test|E|Lead 36854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036855|136855|989898|1|9999036855|MR|Test|E|Lead 36855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036856|136856|989898|1|9999036856|MR|Test|E|Lead 36856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036857|136857|989898|1|9999036857|MR|Test|E|Lead 36857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036858|136858|989898|1|9999036858|MR|Test|E|Lead 36858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036859|136859|989898|1|9999036859|MR|Test|E|Lead 36859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036860|136860|989898|1|9999036860|MR|Test|E|Lead 36860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036861|136861|989898|1|9999036861|MR|Test|E|Lead 36861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036862|136862|989898|1|9999036862|MR|Test|E|Lead 36862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036863|136863|989898|1|9999036863|MR|Test|E|Lead 36863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036864|136864|989898|1|9999036864|MR|Test|E|Lead 36864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036865|136865|989898|1|9999036865|MR|Test|E|Lead 36865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036866|136866|989898|1|9999036866|MR|Test|E|Lead 36866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036867|136867|989898|1|9999036867|MR|Test|E|Lead 36867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036868|136868|989898|1|9999036868|MR|Test|E|Lead 36868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036869|136869|989898|1|9999036869|MR|Test|E|Lead 36869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036870|136870|989898|1|9999036870|MR|Test|E|Lead 36870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036871|136871|989898|1|9999036871|MR|Test|E|Lead 36871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036872|136872|989898|1|9999036872|MR|Test|E|Lead 36872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036873|136873|989898|1|9999036873|MR|Test|E|Lead 36873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036874|136874|989898|1|9999036874|MR|Test|E|Lead 36874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036875|136875|989898|1|9999036875|MR|Test|E|Lead 36875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036876|136876|989898|1|9999036876|MR|Test|E|Lead 36876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036877|136877|989898|1|9999036877|MR|Test|E|Lead 36877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036878|136878|989898|1|9999036878|MR|Test|E|Lead 36878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036879|136879|989898|1|9999036879|MR|Test|E|Lead 36879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036880|136880|989898|1|9999036880|MR|Test|E|Lead 36880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036881|136881|989898|1|9999036881|MR|Test|E|Lead 36881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036882|136882|989898|1|9999036882|MR|Test|E|Lead 36882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036883|136883|989898|1|9999036883|MR|Test|E|Lead 36883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036884|136884|989898|1|9999036884|MR|Test|E|Lead 36884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036885|136885|989898|1|9999036885|MR|Test|E|Lead 36885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036886|136886|989898|1|9999036886|MR|Test|E|Lead 36886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036887|136887|989898|1|9999036887|MR|Test|E|Lead 36887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036888|136888|989898|1|9999036888|MR|Test|E|Lead 36888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036889|136889|989898|1|9999036889|MR|Test|E|Lead 36889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036890|136890|989898|1|9999036890|MR|Test|E|Lead 36890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036891|136891|989898|1|9999036891|MR|Test|E|Lead 36891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036892|136892|989898|1|9999036892|MR|Test|E|Lead 36892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036893|136893|989898|1|9999036893|MR|Test|E|Lead 36893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036894|136894|989898|1|9999036894|MR|Test|E|Lead 36894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036895|136895|989898|1|9999036895|MR|Test|E|Lead 36895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036896|136896|989898|1|9999036896|MR|Test|E|Lead 36896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036897|136897|989898|1|9999036897|MR|Test|E|Lead 36897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036898|136898|989898|1|9999036898|MR|Test|E|Lead 36898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036899|136899|989898|1|9999036899|MR|Test|E|Lead 36899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036900|136900|989898|1|9999036900|MR|Test|E|Lead 36900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036901|136901|989898|1|9999036901|MR|Test|E|Lead 36901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036902|136902|989898|1|9999036902|MR|Test|E|Lead 36902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036903|136903|989898|1|9999036903|MR|Test|E|Lead 36903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036904|136904|989898|1|9999036904|MR|Test|E|Lead 36904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036905|136905|989898|1|9999036905|MR|Test|E|Lead 36905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036906|136906|989898|1|9999036906|MR|Test|E|Lead 36906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036907|136907|989898|1|9999036907|MR|Test|E|Lead 36907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036908|136908|989898|1|9999036908|MR|Test|E|Lead 36908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036909|136909|989898|1|9999036909|MR|Test|E|Lead 36909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036910|136910|989898|1|9999036910|MR|Test|E|Lead 36910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036911|136911|989898|1|9999036911|MR|Test|E|Lead 36911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036912|136912|989898|1|9999036912|MR|Test|E|Lead 36912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036913|136913|989898|1|9999036913|MR|Test|E|Lead 36913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036914|136914|989898|1|9999036914|MR|Test|E|Lead 36914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036915|136915|989898|1|9999036915|MR|Test|E|Lead 36915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036916|136916|989898|1|9999036916|MR|Test|E|Lead 36916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036917|136917|989898|1|9999036917|MR|Test|E|Lead 36917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036918|136918|989898|1|9999036918|MR|Test|E|Lead 36918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036919|136919|989898|1|9999036919|MR|Test|E|Lead 36919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036920|136920|989898|1|9999036920|MR|Test|E|Lead 36920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036921|136921|989898|1|9999036921|MR|Test|E|Lead 36921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036922|136922|989898|1|9999036922|MR|Test|E|Lead 36922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036923|136923|989898|1|9999036923|MR|Test|E|Lead 36923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036924|136924|989898|1|9999036924|MR|Test|E|Lead 36924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036925|136925|989898|1|9999036925|MR|Test|E|Lead 36925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036926|136926|989898|1|9999036926|MR|Test|E|Lead 36926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036927|136927|989898|1|9999036927|MR|Test|E|Lead 36927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036928|136928|989898|1|9999036928|MR|Test|E|Lead 36928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036929|136929|989898|1|9999036929|MR|Test|E|Lead 36929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036930|136930|989898|1|9999036930|MR|Test|E|Lead 36930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036931|136931|989898|1|9999036931|MR|Test|E|Lead 36931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036932|136932|989898|1|9999036932|MR|Test|E|Lead 36932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036933|136933|989898|1|9999036933|MR|Test|E|Lead 36933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036934|136934|989898|1|9999036934|MR|Test|E|Lead 36934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036935|136935|989898|1|9999036935|MR|Test|E|Lead 36935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036936|136936|989898|1|9999036936|MR|Test|E|Lead 36936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036937|136937|989898|1|9999036937|MR|Test|E|Lead 36937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036938|136938|989898|1|9999036938|MR|Test|E|Lead 36938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036939|136939|989898|1|9999036939|MR|Test|E|Lead 36939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036940|136940|989898|1|9999036940|MR|Test|E|Lead 36940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036941|136941|989898|1|9999036941|MR|Test|E|Lead 36941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036942|136942|989898|1|9999036942|MR|Test|E|Lead 36942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036943|136943|989898|1|9999036943|MR|Test|E|Lead 36943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036944|136944|989898|1|9999036944|MR|Test|E|Lead 36944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036945|136945|989898|1|9999036945|MR|Test|E|Lead 36945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036946|136946|989898|1|9999036946|MR|Test|E|Lead 36946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036947|136947|989898|1|9999036947|MR|Test|E|Lead 36947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036948|136948|989898|1|9999036948|MR|Test|E|Lead 36948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036949|136949|989898|1|9999036949|MR|Test|E|Lead 36949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036950|136950|989898|1|9999036950|MR|Test|E|Lead 36950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036951|136951|989898|1|9999036951|MR|Test|E|Lead 36951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036952|136952|989898|1|9999036952|MR|Test|E|Lead 36952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036953|136953|989898|1|9999036953|MR|Test|E|Lead 36953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036954|136954|989898|1|9999036954|MR|Test|E|Lead 36954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036955|136955|989898|1|9999036955|MR|Test|E|Lead 36955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036956|136956|989898|1|9999036956|MR|Test|E|Lead 36956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036957|136957|989898|1|9999036957|MR|Test|E|Lead 36957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036958|136958|989898|1|9999036958|MR|Test|E|Lead 36958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036959|136959|989898|1|9999036959|MR|Test|E|Lead 36959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036960|136960|989898|1|9999036960|MR|Test|E|Lead 36960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036961|136961|989898|1|9999036961|MR|Test|E|Lead 36961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036962|136962|989898|1|9999036962|MR|Test|E|Lead 36962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036963|136963|989898|1|9999036963|MR|Test|E|Lead 36963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036964|136964|989898|1|9999036964|MR|Test|E|Lead 36964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036965|136965|989898|1|9999036965|MR|Test|E|Lead 36965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036966|136966|989898|1|9999036966|MR|Test|E|Lead 36966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036967|136967|989898|1|9999036967|MR|Test|E|Lead 36967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036968|136968|989898|1|9999036968|MR|Test|E|Lead 36968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036969|136969|989898|1|9999036969|MR|Test|E|Lead 36969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036970|136970|989898|1|9999036970|MR|Test|E|Lead 36970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036971|136971|989898|1|9999036971|MR|Test|E|Lead 36971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036972|136972|989898|1|9999036972|MR|Test|E|Lead 36972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036973|136973|989898|1|9999036973|MR|Test|E|Lead 36973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036974|136974|989898|1|9999036974|MR|Test|E|Lead 36974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036975|136975|989898|1|9999036975|MR|Test|E|Lead 36975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036976|136976|989898|1|9999036976|MR|Test|E|Lead 36976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036977|136977|989898|1|9999036977|MR|Test|E|Lead 36977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036978|136978|989898|1|9999036978|MR|Test|E|Lead 36978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036979|136979|989898|1|9999036979|MR|Test|E|Lead 36979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036980|136980|989898|1|9999036980|MR|Test|E|Lead 36980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036981|136981|989898|1|9999036981|MR|Test|E|Lead 36981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036982|136982|989898|1|9999036982|MR|Test|E|Lead 36982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036983|136983|989898|1|9999036983|MR|Test|E|Lead 36983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036984|136984|989898|1|9999036984|MR|Test|E|Lead 36984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036985|136985|989898|1|9999036985|MR|Test|E|Lead 36985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036986|136986|989898|1|9999036986|MR|Test|E|Lead 36986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036987|136987|989898|1|9999036987|MR|Test|E|Lead 36987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036988|136988|989898|1|9999036988|MR|Test|E|Lead 36988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036989|136989|989898|1|9999036989|MR|Test|E|Lead 36989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036990|136990|989898|1|9999036990|MR|Test|E|Lead 36990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036991|136991|989898|1|9999036991|MR|Test|E|Lead 36991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036992|136992|989898|1|9999036992|MR|Test|E|Lead 36992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036993|136993|989898|1|9999036993|MR|Test|E|Lead 36993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036994|136994|989898|1|9999036994|MR|Test|E|Lead 36994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036995|136995|989898|1|9999036995|MR|Test|E|Lead 36995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036996|136996|989898|1|9999036996|MR|Test|E|Lead 36996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036997|136997|989898|1|9999036997|MR|Test|E|Lead 36997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036998|136998|989898|1|9999036998|MR|Test|E|Lead 36998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1036999|136999|989898|1|9999036999|MR|Test|E|Lead 36999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037000|137000|989898|1|9999037000|MR|Test|E|Lead 37000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037001|137001|989898|1|9999037001|MR|Test|E|Lead 37001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037002|137002|989898|1|9999037002|MR|Test|E|Lead 37002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037003|137003|989898|1|9999037003|MR|Test|E|Lead 37003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037004|137004|989898|1|9999037004|MR|Test|E|Lead 37004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037005|137005|989898|1|9999037005|MR|Test|E|Lead 37005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037006|137006|989898|1|9999037006|MR|Test|E|Lead 37006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037007|137007|989898|1|9999037007|MR|Test|E|Lead 37007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037008|137008|989898|1|9999037008|MR|Test|E|Lead 37008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037009|137009|989898|1|9999037009|MR|Test|E|Lead 37009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037010|137010|989898|1|9999037010|MR|Test|E|Lead 37010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037011|137011|989898|1|9999037011|MR|Test|E|Lead 37011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037012|137012|989898|1|9999037012|MR|Test|E|Lead 37012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037013|137013|989898|1|9999037013|MR|Test|E|Lead 37013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037014|137014|989898|1|9999037014|MR|Test|E|Lead 37014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037015|137015|989898|1|9999037015|MR|Test|E|Lead 37015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037016|137016|989898|1|9999037016|MR|Test|E|Lead 37016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037017|137017|989898|1|9999037017|MR|Test|E|Lead 37017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037018|137018|989898|1|9999037018|MR|Test|E|Lead 37018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037019|137019|989898|1|9999037019|MR|Test|E|Lead 37019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037020|137020|989898|1|9999037020|MR|Test|E|Lead 37020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037021|137021|989898|1|9999037021|MR|Test|E|Lead 37021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037022|137022|989898|1|9999037022|MR|Test|E|Lead 37022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037023|137023|989898|1|9999037023|MR|Test|E|Lead 37023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037024|137024|989898|1|9999037024|MR|Test|E|Lead 37024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037025|137025|989898|1|9999037025|MR|Test|E|Lead 37025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037026|137026|989898|1|9999037026|MR|Test|E|Lead 37026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037027|137027|989898|1|9999037027|MR|Test|E|Lead 37027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037028|137028|989898|1|9999037028|MR|Test|E|Lead 37028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037029|137029|989898|1|9999037029|MR|Test|E|Lead 37029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037030|137030|989898|1|9999037030|MR|Test|E|Lead 37030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037031|137031|989898|1|9999037031|MR|Test|E|Lead 37031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037032|137032|989898|1|9999037032|MR|Test|E|Lead 37032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037033|137033|989898|1|9999037033|MR|Test|E|Lead 37033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037034|137034|989898|1|9999037034|MR|Test|E|Lead 37034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037035|137035|989898|1|9999037035|MR|Test|E|Lead 37035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037036|137036|989898|1|9999037036|MR|Test|E|Lead 37036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037037|137037|989898|1|9999037037|MR|Test|E|Lead 37037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037038|137038|989898|1|9999037038|MR|Test|E|Lead 37038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037039|137039|989898|1|9999037039|MR|Test|E|Lead 37039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037040|137040|989898|1|9999037040|MR|Test|E|Lead 37040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037041|137041|989898|1|9999037041|MR|Test|E|Lead 37041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037042|137042|989898|1|9999037042|MR|Test|E|Lead 37042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037043|137043|989898|1|9999037043|MR|Test|E|Lead 37043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037044|137044|989898|1|9999037044|MR|Test|E|Lead 37044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037045|137045|989898|1|9999037045|MR|Test|E|Lead 37045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037046|137046|989898|1|9999037046|MR|Test|E|Lead 37046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037047|137047|989898|1|9999037047|MR|Test|E|Lead 37047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037048|137048|989898|1|9999037048|MR|Test|E|Lead 37048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037049|137049|989898|1|9999037049|MR|Test|E|Lead 37049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037050|137050|989898|1|9999037050|MR|Test|E|Lead 37050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037051|137051|989898|1|9999037051|MR|Test|E|Lead 37051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037052|137052|989898|1|9999037052|MR|Test|E|Lead 37052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037053|137053|989898|1|9999037053|MR|Test|E|Lead 37053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037054|137054|989898|1|9999037054|MR|Test|E|Lead 37054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037055|137055|989898|1|9999037055|MR|Test|E|Lead 37055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037056|137056|989898|1|9999037056|MR|Test|E|Lead 37056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037057|137057|989898|1|9999037057|MR|Test|E|Lead 37057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037058|137058|989898|1|9999037058|MR|Test|E|Lead 37058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037059|137059|989898|1|9999037059|MR|Test|E|Lead 37059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037060|137060|989898|1|9999037060|MR|Test|E|Lead 37060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037061|137061|989898|1|9999037061|MR|Test|E|Lead 37061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037062|137062|989898|1|9999037062|MR|Test|E|Lead 37062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037063|137063|989898|1|9999037063|MR|Test|E|Lead 37063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037064|137064|989898|1|9999037064|MR|Test|E|Lead 37064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037065|137065|989898|1|9999037065|MR|Test|E|Lead 37065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037066|137066|989898|1|9999037066|MR|Test|E|Lead 37066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037067|137067|989898|1|9999037067|MR|Test|E|Lead 37067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037068|137068|989898|1|9999037068|MR|Test|E|Lead 37068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037069|137069|989898|1|9999037069|MR|Test|E|Lead 37069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037070|137070|989898|1|9999037070|MR|Test|E|Lead 37070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037071|137071|989898|1|9999037071|MR|Test|E|Lead 37071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037072|137072|989898|1|9999037072|MR|Test|E|Lead 37072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037073|137073|989898|1|9999037073|MR|Test|E|Lead 37073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037074|137074|989898|1|9999037074|MR|Test|E|Lead 37074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037075|137075|989898|1|9999037075|MR|Test|E|Lead 37075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037076|137076|989898|1|9999037076|MR|Test|E|Lead 37076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037077|137077|989898|1|9999037077|MR|Test|E|Lead 37077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037078|137078|989898|1|9999037078|MR|Test|E|Lead 37078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037079|137079|989898|1|9999037079|MR|Test|E|Lead 37079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037080|137080|989898|1|9999037080|MR|Test|E|Lead 37080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037081|137081|989898|1|9999037081|MR|Test|E|Lead 37081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037082|137082|989898|1|9999037082|MR|Test|E|Lead 37082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037083|137083|989898|1|9999037083|MR|Test|E|Lead 37083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037084|137084|989898|1|9999037084|MR|Test|E|Lead 37084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037085|137085|989898|1|9999037085|MR|Test|E|Lead 37085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037086|137086|989898|1|9999037086|MR|Test|E|Lead 37086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037087|137087|989898|1|9999037087|MR|Test|E|Lead 37087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037088|137088|989898|1|9999037088|MR|Test|E|Lead 37088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037089|137089|989898|1|9999037089|MR|Test|E|Lead 37089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037090|137090|989898|1|9999037090|MR|Test|E|Lead 37090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037091|137091|989898|1|9999037091|MR|Test|E|Lead 37091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037092|137092|989898|1|9999037092|MR|Test|E|Lead 37092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037093|137093|989898|1|9999037093|MR|Test|E|Lead 37093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037094|137094|989898|1|9999037094|MR|Test|E|Lead 37094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037095|137095|989898|1|9999037095|MR|Test|E|Lead 37095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037096|137096|989898|1|9999037096|MR|Test|E|Lead 37096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037097|137097|989898|1|9999037097|MR|Test|E|Lead 37097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037098|137098|989898|1|9999037098|MR|Test|E|Lead 37098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037099|137099|989898|1|9999037099|MR|Test|E|Lead 37099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037100|137100|989898|1|9999037100|MR|Test|E|Lead 37100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037101|137101|989898|1|9999037101|MR|Test|E|Lead 37101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037102|137102|989898|1|9999037102|MR|Test|E|Lead 37102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037103|137103|989898|1|9999037103|MR|Test|E|Lead 37103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037104|137104|989898|1|9999037104|MR|Test|E|Lead 37104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037105|137105|989898|1|9999037105|MR|Test|E|Lead 37105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037106|137106|989898|1|9999037106|MR|Test|E|Lead 37106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037107|137107|989898|1|9999037107|MR|Test|E|Lead 37107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037108|137108|989898|1|9999037108|MR|Test|E|Lead 37108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037109|137109|989898|1|9999037109|MR|Test|E|Lead 37109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037110|137110|989898|1|9999037110|MR|Test|E|Lead 37110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037111|137111|989898|1|9999037111|MR|Test|E|Lead 37111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037112|137112|989898|1|9999037112|MR|Test|E|Lead 37112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037113|137113|989898|1|9999037113|MR|Test|E|Lead 37113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037114|137114|989898|1|9999037114|MR|Test|E|Lead 37114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037115|137115|989898|1|9999037115|MR|Test|E|Lead 37115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037116|137116|989898|1|9999037116|MR|Test|E|Lead 37116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037117|137117|989898|1|9999037117|MR|Test|E|Lead 37117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037118|137118|989898|1|9999037118|MR|Test|E|Lead 37118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037119|137119|989898|1|9999037119|MR|Test|E|Lead 37119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037120|137120|989898|1|9999037120|MR|Test|E|Lead 37120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037121|137121|989898|1|9999037121|MR|Test|E|Lead 37121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037122|137122|989898|1|9999037122|MR|Test|E|Lead 37122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037123|137123|989898|1|9999037123|MR|Test|E|Lead 37123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037124|137124|989898|1|9999037124|MR|Test|E|Lead 37124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037125|137125|989898|1|9999037125|MR|Test|E|Lead 37125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037126|137126|989898|1|9999037126|MR|Test|E|Lead 37126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037127|137127|989898|1|9999037127|MR|Test|E|Lead 37127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037128|137128|989898|1|9999037128|MR|Test|E|Lead 37128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037129|137129|989898|1|9999037129|MR|Test|E|Lead 37129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037130|137130|989898|1|9999037130|MR|Test|E|Lead 37130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037131|137131|989898|1|9999037131|MR|Test|E|Lead 37131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037132|137132|989898|1|9999037132|MR|Test|E|Lead 37132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037133|137133|989898|1|9999037133|MR|Test|E|Lead 37133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037134|137134|989898|1|9999037134|MR|Test|E|Lead 37134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037135|137135|989898|1|9999037135|MR|Test|E|Lead 37135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037136|137136|989898|1|9999037136|MR|Test|E|Lead 37136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037137|137137|989898|1|9999037137|MR|Test|E|Lead 37137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037138|137138|989898|1|9999037138|MR|Test|E|Lead 37138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037139|137139|989898|1|9999037139|MR|Test|E|Lead 37139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037140|137140|989898|1|9999037140|MR|Test|E|Lead 37140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037141|137141|989898|1|9999037141|MR|Test|E|Lead 37141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037142|137142|989898|1|9999037142|MR|Test|E|Lead 37142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037143|137143|989898|1|9999037143|MR|Test|E|Lead 37143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037144|137144|989898|1|9999037144|MR|Test|E|Lead 37144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037145|137145|989898|1|9999037145|MR|Test|E|Lead 37145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037146|137146|989898|1|9999037146|MR|Test|E|Lead 37146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037147|137147|989898|1|9999037147|MR|Test|E|Lead 37147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037148|137148|989898|1|9999037148|MR|Test|E|Lead 37148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037149|137149|989898|1|9999037149|MR|Test|E|Lead 37149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037150|137150|989898|1|9999037150|MR|Test|E|Lead 37150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037151|137151|989898|1|9999037151|MR|Test|E|Lead 37151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037152|137152|989898|1|9999037152|MR|Test|E|Lead 37152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037153|137153|989898|1|9999037153|MR|Test|E|Lead 37153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037154|137154|989898|1|9999037154|MR|Test|E|Lead 37154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037155|137155|989898|1|9999037155|MR|Test|E|Lead 37155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037156|137156|989898|1|9999037156|MR|Test|E|Lead 37156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037157|137157|989898|1|9999037157|MR|Test|E|Lead 37157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037158|137158|989898|1|9999037158|MR|Test|E|Lead 37158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037159|137159|989898|1|9999037159|MR|Test|E|Lead 37159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037160|137160|989898|1|9999037160|MR|Test|E|Lead 37160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037161|137161|989898|1|9999037161|MR|Test|E|Lead 37161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037162|137162|989898|1|9999037162|MR|Test|E|Lead 37162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037163|137163|989898|1|9999037163|MR|Test|E|Lead 37163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037164|137164|989898|1|9999037164|MR|Test|E|Lead 37164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037165|137165|989898|1|9999037165|MR|Test|E|Lead 37165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037166|137166|989898|1|9999037166|MR|Test|E|Lead 37166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037167|137167|989898|1|9999037167|MR|Test|E|Lead 37167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037168|137168|989898|1|9999037168|MR|Test|E|Lead 37168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037169|137169|989898|1|9999037169|MR|Test|E|Lead 37169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037170|137170|989898|1|9999037170|MR|Test|E|Lead 37170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037171|137171|989898|1|9999037171|MR|Test|E|Lead 37171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037172|137172|989898|1|9999037172|MR|Test|E|Lead 37172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037173|137173|989898|1|9999037173|MR|Test|E|Lead 37173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037174|137174|989898|1|9999037174|MR|Test|E|Lead 37174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037175|137175|989898|1|9999037175|MR|Test|E|Lead 37175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037176|137176|989898|1|9999037176|MR|Test|E|Lead 37176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037177|137177|989898|1|9999037177|MR|Test|E|Lead 37177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037178|137178|989898|1|9999037178|MR|Test|E|Lead 37178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037179|137179|989898|1|9999037179|MR|Test|E|Lead 37179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037180|137180|989898|1|9999037180|MR|Test|E|Lead 37180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037181|137181|989898|1|9999037181|MR|Test|E|Lead 37181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037182|137182|989898|1|9999037182|MR|Test|E|Lead 37182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037183|137183|989898|1|9999037183|MR|Test|E|Lead 37183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037184|137184|989898|1|9999037184|MR|Test|E|Lead 37184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037185|137185|989898|1|9999037185|MR|Test|E|Lead 37185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037186|137186|989898|1|9999037186|MR|Test|E|Lead 37186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037187|137187|989898|1|9999037187|MR|Test|E|Lead 37187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037188|137188|989898|1|9999037188|MR|Test|E|Lead 37188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037189|137189|989898|1|9999037189|MR|Test|E|Lead 37189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037190|137190|989898|1|9999037190|MR|Test|E|Lead 37190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037191|137191|989898|1|9999037191|MR|Test|E|Lead 37191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037192|137192|989898|1|9999037192|MR|Test|E|Lead 37192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037193|137193|989898|1|9999037193|MR|Test|E|Lead 37193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037194|137194|989898|1|9999037194|MR|Test|E|Lead 37194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037195|137195|989898|1|9999037195|MR|Test|E|Lead 37195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037196|137196|989898|1|9999037196|MR|Test|E|Lead 37196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037197|137197|989898|1|9999037197|MR|Test|E|Lead 37197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037198|137198|989898|1|9999037198|MR|Test|E|Lead 37198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037199|137199|989898|1|9999037199|MR|Test|E|Lead 37199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037200|137200|989898|1|9999037200|MR|Test|E|Lead 37200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037201|137201|989898|1|9999037201|MR|Test|E|Lead 37201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037202|137202|989898|1|9999037202|MR|Test|E|Lead 37202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037203|137203|989898|1|9999037203|MR|Test|E|Lead 37203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037204|137204|989898|1|9999037204|MR|Test|E|Lead 37204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037205|137205|989898|1|9999037205|MR|Test|E|Lead 37205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037206|137206|989898|1|9999037206|MR|Test|E|Lead 37206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037207|137207|989898|1|9999037207|MR|Test|E|Lead 37207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037208|137208|989898|1|9999037208|MR|Test|E|Lead 37208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037209|137209|989898|1|9999037209|MR|Test|E|Lead 37209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037210|137210|989898|1|9999037210|MR|Test|E|Lead 37210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037211|137211|989898|1|9999037211|MR|Test|E|Lead 37211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037212|137212|989898|1|9999037212|MR|Test|E|Lead 37212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037213|137213|989898|1|9999037213|MR|Test|E|Lead 37213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037214|137214|989898|1|9999037214|MR|Test|E|Lead 37214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037215|137215|989898|1|9999037215|MR|Test|E|Lead 37215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037216|137216|989898|1|9999037216|MR|Test|E|Lead 37216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037217|137217|989898|1|9999037217|MR|Test|E|Lead 37217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037218|137218|989898|1|9999037218|MR|Test|E|Lead 37218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037219|137219|989898|1|9999037219|MR|Test|E|Lead 37219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037220|137220|989898|1|9999037220|MR|Test|E|Lead 37220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037221|137221|989898|1|9999037221|MR|Test|E|Lead 37221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037222|137222|989898|1|9999037222|MR|Test|E|Lead 37222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037223|137223|989898|1|9999037223|MR|Test|E|Lead 37223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037224|137224|989898|1|9999037224|MR|Test|E|Lead 37224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037225|137225|989898|1|9999037225|MR|Test|E|Lead 37225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037226|137226|989898|1|9999037226|MR|Test|E|Lead 37226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037227|137227|989898|1|9999037227|MR|Test|E|Lead 37227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037228|137228|989898|1|9999037228|MR|Test|E|Lead 37228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037229|137229|989898|1|9999037229|MR|Test|E|Lead 37229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037230|137230|989898|1|9999037230|MR|Test|E|Lead 37230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037231|137231|989898|1|9999037231|MR|Test|E|Lead 37231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037232|137232|989898|1|9999037232|MR|Test|E|Lead 37232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037233|137233|989898|1|9999037233|MR|Test|E|Lead 37233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037234|137234|989898|1|9999037234|MR|Test|E|Lead 37234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037235|137235|989898|1|9999037235|MR|Test|E|Lead 37235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037236|137236|989898|1|9999037236|MR|Test|E|Lead 37236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037237|137237|989898|1|9999037237|MR|Test|E|Lead 37237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037238|137238|989898|1|9999037238|MR|Test|E|Lead 37238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037239|137239|989898|1|9999037239|MR|Test|E|Lead 37239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037240|137240|989898|1|9999037240|MR|Test|E|Lead 37240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037241|137241|989898|1|9999037241|MR|Test|E|Lead 37241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037242|137242|989898|1|9999037242|MR|Test|E|Lead 37242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037243|137243|989898|1|9999037243|MR|Test|E|Lead 37243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037244|137244|989898|1|9999037244|MR|Test|E|Lead 37244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037245|137245|989898|1|9999037245|MR|Test|E|Lead 37245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037246|137246|989898|1|9999037246|MR|Test|E|Lead 37246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037247|137247|989898|1|9999037247|MR|Test|E|Lead 37247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037248|137248|989898|1|9999037248|MR|Test|E|Lead 37248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037249|137249|989898|1|9999037249|MR|Test|E|Lead 37249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037250|137250|989898|1|9999037250|MR|Test|E|Lead 37250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037251|137251|989898|1|9999037251|MR|Test|E|Lead 37251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037252|137252|989898|1|9999037252|MR|Test|E|Lead 37252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037253|137253|989898|1|9999037253|MR|Test|E|Lead 37253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037254|137254|989898|1|9999037254|MR|Test|E|Lead 37254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037255|137255|989898|1|9999037255|MR|Test|E|Lead 37255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037256|137256|989898|1|9999037256|MR|Test|E|Lead 37256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037257|137257|989898|1|9999037257|MR|Test|E|Lead 37257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037258|137258|989898|1|9999037258|MR|Test|E|Lead 37258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037259|137259|989898|1|9999037259|MR|Test|E|Lead 37259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037260|137260|989898|1|9999037260|MR|Test|E|Lead 37260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037261|137261|989898|1|9999037261|MR|Test|E|Lead 37261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037262|137262|989898|1|9999037262|MR|Test|E|Lead 37262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037263|137263|989898|1|9999037263|MR|Test|E|Lead 37263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037264|137264|989898|1|9999037264|MR|Test|E|Lead 37264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037265|137265|989898|1|9999037265|MR|Test|E|Lead 37265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037266|137266|989898|1|9999037266|MR|Test|E|Lead 37266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037267|137267|989898|1|9999037267|MR|Test|E|Lead 37267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037268|137268|989898|1|9999037268|MR|Test|E|Lead 37268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037269|137269|989898|1|9999037269|MR|Test|E|Lead 37269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037270|137270|989898|1|9999037270|MR|Test|E|Lead 37270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037271|137271|989898|1|9999037271|MR|Test|E|Lead 37271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037272|137272|989898|1|9999037272|MR|Test|E|Lead 37272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037273|137273|989898|1|9999037273|MR|Test|E|Lead 37273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037274|137274|989898|1|9999037274|MR|Test|E|Lead 37274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037275|137275|989898|1|9999037275|MR|Test|E|Lead 37275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037276|137276|989898|1|9999037276|MR|Test|E|Lead 37276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037277|137277|989898|1|9999037277|MR|Test|E|Lead 37277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037278|137278|989898|1|9999037278|MR|Test|E|Lead 37278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037279|137279|989898|1|9999037279|MR|Test|E|Lead 37279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037280|137280|989898|1|9999037280|MR|Test|E|Lead 37280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037281|137281|989898|1|9999037281|MR|Test|E|Lead 37281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037282|137282|989898|1|9999037282|MR|Test|E|Lead 37282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037283|137283|989898|1|9999037283|MR|Test|E|Lead 37283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037284|137284|989898|1|9999037284|MR|Test|E|Lead 37284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037285|137285|989898|1|9999037285|MR|Test|E|Lead 37285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037286|137286|989898|1|9999037286|MR|Test|E|Lead 37286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037287|137287|989898|1|9999037287|MR|Test|E|Lead 37287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037288|137288|989898|1|9999037288|MR|Test|E|Lead 37288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037289|137289|989898|1|9999037289|MR|Test|E|Lead 37289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037290|137290|989898|1|9999037290|MR|Test|E|Lead 37290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037291|137291|989898|1|9999037291|MR|Test|E|Lead 37291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037292|137292|989898|1|9999037292|MR|Test|E|Lead 37292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037293|137293|989898|1|9999037293|MR|Test|E|Lead 37293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037294|137294|989898|1|9999037294|MR|Test|E|Lead 37294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037295|137295|989898|1|9999037295|MR|Test|E|Lead 37295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037296|137296|989898|1|9999037296|MR|Test|E|Lead 37296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037297|137297|989898|1|9999037297|MR|Test|E|Lead 37297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037298|137298|989898|1|9999037298|MR|Test|E|Lead 37298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037299|137299|989898|1|9999037299|MR|Test|E|Lead 37299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037300|137300|989898|1|9999037300|MR|Test|E|Lead 37300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037301|137301|989898|1|9999037301|MR|Test|E|Lead 37301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037302|137302|989898|1|9999037302|MR|Test|E|Lead 37302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037303|137303|989898|1|9999037303|MR|Test|E|Lead 37303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037304|137304|989898|1|9999037304|MR|Test|E|Lead 37304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037305|137305|989898|1|9999037305|MR|Test|E|Lead 37305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037306|137306|989898|1|9999037306|MR|Test|E|Lead 37306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037307|137307|989898|1|9999037307|MR|Test|E|Lead 37307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037308|137308|989898|1|9999037308|MR|Test|E|Lead 37308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037309|137309|989898|1|9999037309|MR|Test|E|Lead 37309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037310|137310|989898|1|9999037310|MR|Test|E|Lead 37310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037311|137311|989898|1|9999037311|MR|Test|E|Lead 37311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037312|137312|989898|1|9999037312|MR|Test|E|Lead 37312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037313|137313|989898|1|9999037313|MR|Test|E|Lead 37313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037314|137314|989898|1|9999037314|MR|Test|E|Lead 37314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037315|137315|989898|1|9999037315|MR|Test|E|Lead 37315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037316|137316|989898|1|9999037316|MR|Test|E|Lead 37316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037317|137317|989898|1|9999037317|MR|Test|E|Lead 37317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037318|137318|989898|1|9999037318|MR|Test|E|Lead 37318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037319|137319|989898|1|9999037319|MR|Test|E|Lead 37319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037320|137320|989898|1|9999037320|MR|Test|E|Lead 37320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037321|137321|989898|1|9999037321|MR|Test|E|Lead 37321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037322|137322|989898|1|9999037322|MR|Test|E|Lead 37322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037323|137323|989898|1|9999037323|MR|Test|E|Lead 37323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037324|137324|989898|1|9999037324|MR|Test|E|Lead 37324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037325|137325|989898|1|9999037325|MR|Test|E|Lead 37325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037326|137326|989898|1|9999037326|MR|Test|E|Lead 37326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037327|137327|989898|1|9999037327|MR|Test|E|Lead 37327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037328|137328|989898|1|9999037328|MR|Test|E|Lead 37328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037329|137329|989898|1|9999037329|MR|Test|E|Lead 37329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037330|137330|989898|1|9999037330|MR|Test|E|Lead 37330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037331|137331|989898|1|9999037331|MR|Test|E|Lead 37331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037332|137332|989898|1|9999037332|MR|Test|E|Lead 37332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037333|137333|989898|1|9999037333|MR|Test|E|Lead 37333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037334|137334|989898|1|9999037334|MR|Test|E|Lead 37334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037335|137335|989898|1|9999037335|MR|Test|E|Lead 37335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037336|137336|989898|1|9999037336|MR|Test|E|Lead 37336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037337|137337|989898|1|9999037337|MR|Test|E|Lead 37337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037338|137338|989898|1|9999037338|MR|Test|E|Lead 37338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037339|137339|989898|1|9999037339|MR|Test|E|Lead 37339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037340|137340|989898|1|9999037340|MR|Test|E|Lead 37340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037341|137341|989898|1|9999037341|MR|Test|E|Lead 37341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037342|137342|989898|1|9999037342|MR|Test|E|Lead 37342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037343|137343|989898|1|9999037343|MR|Test|E|Lead 37343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037344|137344|989898|1|9999037344|MR|Test|E|Lead 37344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037345|137345|989898|1|9999037345|MR|Test|E|Lead 37345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037346|137346|989898|1|9999037346|MR|Test|E|Lead 37346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037347|137347|989898|1|9999037347|MR|Test|E|Lead 37347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037348|137348|989898|1|9999037348|MR|Test|E|Lead 37348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037349|137349|989898|1|9999037349|MR|Test|E|Lead 37349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037350|137350|989898|1|9999037350|MR|Test|E|Lead 37350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037351|137351|989898|1|9999037351|MR|Test|E|Lead 37351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037352|137352|989898|1|9999037352|MR|Test|E|Lead 37352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037353|137353|989898|1|9999037353|MR|Test|E|Lead 37353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037354|137354|989898|1|9999037354|MR|Test|E|Lead 37354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037355|137355|989898|1|9999037355|MR|Test|E|Lead 37355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037356|137356|989898|1|9999037356|MR|Test|E|Lead 37356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037357|137357|989898|1|9999037357|MR|Test|E|Lead 37357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037358|137358|989898|1|9999037358|MR|Test|E|Lead 37358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037359|137359|989898|1|9999037359|MR|Test|E|Lead 37359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037360|137360|989898|1|9999037360|MR|Test|E|Lead 37360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037361|137361|989898|1|9999037361|MR|Test|E|Lead 37361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037362|137362|989898|1|9999037362|MR|Test|E|Lead 37362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037363|137363|989898|1|9999037363|MR|Test|E|Lead 37363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037364|137364|989898|1|9999037364|MR|Test|E|Lead 37364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037365|137365|989898|1|9999037365|MR|Test|E|Lead 37365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037366|137366|989898|1|9999037366|MR|Test|E|Lead 37366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037367|137367|989898|1|9999037367|MR|Test|E|Lead 37367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037368|137368|989898|1|9999037368|MR|Test|E|Lead 37368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037369|137369|989898|1|9999037369|MR|Test|E|Lead 37369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037370|137370|989898|1|9999037370|MR|Test|E|Lead 37370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037371|137371|989898|1|9999037371|MR|Test|E|Lead 37371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037372|137372|989898|1|9999037372|MR|Test|E|Lead 37372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037373|137373|989898|1|9999037373|MR|Test|E|Lead 37373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037374|137374|989898|1|9999037374|MR|Test|E|Lead 37374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037375|137375|989898|1|9999037375|MR|Test|E|Lead 37375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037376|137376|989898|1|9999037376|MR|Test|E|Lead 37376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037377|137377|989898|1|9999037377|MR|Test|E|Lead 37377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037378|137378|989898|1|9999037378|MR|Test|E|Lead 37378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037379|137379|989898|1|9999037379|MR|Test|E|Lead 37379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037380|137380|989898|1|9999037380|MR|Test|E|Lead 37380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037381|137381|989898|1|9999037381|MR|Test|E|Lead 37381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037382|137382|989898|1|9999037382|MR|Test|E|Lead 37382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037383|137383|989898|1|9999037383|MR|Test|E|Lead 37383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037384|137384|989898|1|9999037384|MR|Test|E|Lead 37384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037385|137385|989898|1|9999037385|MR|Test|E|Lead 37385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037386|137386|989898|1|9999037386|MR|Test|E|Lead 37386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037387|137387|989898|1|9999037387|MR|Test|E|Lead 37387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037388|137388|989898|1|9999037388|MR|Test|E|Lead 37388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037389|137389|989898|1|9999037389|MR|Test|E|Lead 37389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037390|137390|989898|1|9999037390|MR|Test|E|Lead 37390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037391|137391|989898|1|9999037391|MR|Test|E|Lead 37391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037392|137392|989898|1|9999037392|MR|Test|E|Lead 37392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037393|137393|989898|1|9999037393|MR|Test|E|Lead 37393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037394|137394|989898|1|9999037394|MR|Test|E|Lead 37394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037395|137395|989898|1|9999037395|MR|Test|E|Lead 37395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037396|137396|989898|1|9999037396|MR|Test|E|Lead 37396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037397|137397|989898|1|9999037397|MR|Test|E|Lead 37397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037398|137398|989898|1|9999037398|MR|Test|E|Lead 37398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037399|137399|989898|1|9999037399|MR|Test|E|Lead 37399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037400|137400|989898|1|9999037400|MR|Test|E|Lead 37400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037401|137401|989898|1|9999037401|MR|Test|E|Lead 37401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037402|137402|989898|1|9999037402|MR|Test|E|Lead 37402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037403|137403|989898|1|9999037403|MR|Test|E|Lead 37403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037404|137404|989898|1|9999037404|MR|Test|E|Lead 37404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037405|137405|989898|1|9999037405|MR|Test|E|Lead 37405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037406|137406|989898|1|9999037406|MR|Test|E|Lead 37406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037407|137407|989898|1|9999037407|MR|Test|E|Lead 37407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037408|137408|989898|1|9999037408|MR|Test|E|Lead 37408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037409|137409|989898|1|9999037409|MR|Test|E|Lead 37409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037410|137410|989898|1|9999037410|MR|Test|E|Lead 37410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037411|137411|989898|1|9999037411|MR|Test|E|Lead 37411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037412|137412|989898|1|9999037412|MR|Test|E|Lead 37412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037413|137413|989898|1|9999037413|MR|Test|E|Lead 37413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037414|137414|989898|1|9999037414|MR|Test|E|Lead 37414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037415|137415|989898|1|9999037415|MR|Test|E|Lead 37415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037416|137416|989898|1|9999037416|MR|Test|E|Lead 37416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037417|137417|989898|1|9999037417|MR|Test|E|Lead 37417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037418|137418|989898|1|9999037418|MR|Test|E|Lead 37418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037419|137419|989898|1|9999037419|MR|Test|E|Lead 37419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037420|137420|989898|1|9999037420|MR|Test|E|Lead 37420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037421|137421|989898|1|9999037421|MR|Test|E|Lead 37421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037422|137422|989898|1|9999037422|MR|Test|E|Lead 37422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037423|137423|989898|1|9999037423|MR|Test|E|Lead 37423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037424|137424|989898|1|9999037424|MR|Test|E|Lead 37424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037425|137425|989898|1|9999037425|MR|Test|E|Lead 37425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037426|137426|989898|1|9999037426|MR|Test|E|Lead 37426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037427|137427|989898|1|9999037427|MR|Test|E|Lead 37427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037428|137428|989898|1|9999037428|MR|Test|E|Lead 37428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037429|137429|989898|1|9999037429|MR|Test|E|Lead 37429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037430|137430|989898|1|9999037430|MR|Test|E|Lead 37430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037431|137431|989898|1|9999037431|MR|Test|E|Lead 37431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037432|137432|989898|1|9999037432|MR|Test|E|Lead 37432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037433|137433|989898|1|9999037433|MR|Test|E|Lead 37433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037434|137434|989898|1|9999037434|MR|Test|E|Lead 37434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037435|137435|989898|1|9999037435|MR|Test|E|Lead 37435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037436|137436|989898|1|9999037436|MR|Test|E|Lead 37436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037437|137437|989898|1|9999037437|MR|Test|E|Lead 37437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037438|137438|989898|1|9999037438|MR|Test|E|Lead 37438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037439|137439|989898|1|9999037439|MR|Test|E|Lead 37439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037440|137440|989898|1|9999037440|MR|Test|E|Lead 37440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037441|137441|989898|1|9999037441|MR|Test|E|Lead 37441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037442|137442|989898|1|9999037442|MR|Test|E|Lead 37442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037443|137443|989898|1|9999037443|MR|Test|E|Lead 37443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037444|137444|989898|1|9999037444|MR|Test|E|Lead 37444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037445|137445|989898|1|9999037445|MR|Test|E|Lead 37445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037446|137446|989898|1|9999037446|MR|Test|E|Lead 37446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037447|137447|989898|1|9999037447|MR|Test|E|Lead 37447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037448|137448|989898|1|9999037448|MR|Test|E|Lead 37448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037449|137449|989898|1|9999037449|MR|Test|E|Lead 37449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037450|137450|989898|1|9999037450|MR|Test|E|Lead 37450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037451|137451|989898|1|9999037451|MR|Test|E|Lead 37451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037452|137452|989898|1|9999037452|MR|Test|E|Lead 37452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037453|137453|989898|1|9999037453|MR|Test|E|Lead 37453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037454|137454|989898|1|9999037454|MR|Test|E|Lead 37454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037455|137455|989898|1|9999037455|MR|Test|E|Lead 37455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037456|137456|989898|1|9999037456|MR|Test|E|Lead 37456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037457|137457|989898|1|9999037457|MR|Test|E|Lead 37457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037458|137458|989898|1|9999037458|MR|Test|E|Lead 37458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037459|137459|989898|1|9999037459|MR|Test|E|Lead 37459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037460|137460|989898|1|9999037460|MR|Test|E|Lead 37460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037461|137461|989898|1|9999037461|MR|Test|E|Lead 37461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037462|137462|989898|1|9999037462|MR|Test|E|Lead 37462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037463|137463|989898|1|9999037463|MR|Test|E|Lead 37463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037464|137464|989898|1|9999037464|MR|Test|E|Lead 37464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037465|137465|989898|1|9999037465|MR|Test|E|Lead 37465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037466|137466|989898|1|9999037466|MR|Test|E|Lead 37466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037467|137467|989898|1|9999037467|MR|Test|E|Lead 37467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037468|137468|989898|1|9999037468|MR|Test|E|Lead 37468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037469|137469|989898|1|9999037469|MR|Test|E|Lead 37469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037470|137470|989898|1|9999037470|MR|Test|E|Lead 37470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037471|137471|989898|1|9999037471|MR|Test|E|Lead 37471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037472|137472|989898|1|9999037472|MR|Test|E|Lead 37472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037473|137473|989898|1|9999037473|MR|Test|E|Lead 37473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037474|137474|989898|1|9999037474|MR|Test|E|Lead 37474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037475|137475|989898|1|9999037475|MR|Test|E|Lead 37475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037476|137476|989898|1|9999037476|MR|Test|E|Lead 37476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037477|137477|989898|1|9999037477|MR|Test|E|Lead 37477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037478|137478|989898|1|9999037478|MR|Test|E|Lead 37478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037479|137479|989898|1|9999037479|MR|Test|E|Lead 37479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037480|137480|989898|1|9999037480|MR|Test|E|Lead 37480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037481|137481|989898|1|9999037481|MR|Test|E|Lead 37481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037482|137482|989898|1|9999037482|MR|Test|E|Lead 37482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037483|137483|989898|1|9999037483|MR|Test|E|Lead 37483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037484|137484|989898|1|9999037484|MR|Test|E|Lead 37484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037485|137485|989898|1|9999037485|MR|Test|E|Lead 37485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037486|137486|989898|1|9999037486|MR|Test|E|Lead 37486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037487|137487|989898|1|9999037487|MR|Test|E|Lead 37487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037488|137488|989898|1|9999037488|MR|Test|E|Lead 37488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037489|137489|989898|1|9999037489|MR|Test|E|Lead 37489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037490|137490|989898|1|9999037490|MR|Test|E|Lead 37490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037491|137491|989898|1|9999037491|MR|Test|E|Lead 37491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037492|137492|989898|1|9999037492|MR|Test|E|Lead 37492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037493|137493|989898|1|9999037493|MR|Test|E|Lead 37493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037494|137494|989898|1|9999037494|MR|Test|E|Lead 37494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037495|137495|989898|1|9999037495|MR|Test|E|Lead 37495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037496|137496|989898|1|9999037496|MR|Test|E|Lead 37496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037497|137497|989898|1|9999037497|MR|Test|E|Lead 37497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037498|137498|989898|1|9999037498|MR|Test|E|Lead 37498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037499|137499|989898|1|9999037499|MR|Test|E|Lead 37499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037500|137500|989898|1|9999037500|MR|Test|E|Lead 37500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037501|137501|989898|1|9999037501|MR|Test|E|Lead 37501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037502|137502|989898|1|9999037502|MR|Test|E|Lead 37502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037503|137503|989898|1|9999037503|MR|Test|E|Lead 37503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037504|137504|989898|1|9999037504|MR|Test|E|Lead 37504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037505|137505|989898|1|9999037505|MR|Test|E|Lead 37505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037506|137506|989898|1|9999037506|MR|Test|E|Lead 37506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037507|137507|989898|1|9999037507|MR|Test|E|Lead 37507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037508|137508|989898|1|9999037508|MR|Test|E|Lead 37508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037509|137509|989898|1|9999037509|MR|Test|E|Lead 37509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037510|137510|989898|1|9999037510|MR|Test|E|Lead 37510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037511|137511|989898|1|9999037511|MR|Test|E|Lead 37511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037512|137512|989898|1|9999037512|MR|Test|E|Lead 37512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037513|137513|989898|1|9999037513|MR|Test|E|Lead 37513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037514|137514|989898|1|9999037514|MR|Test|E|Lead 37514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037515|137515|989898|1|9999037515|MR|Test|E|Lead 37515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037516|137516|989898|1|9999037516|MR|Test|E|Lead 37516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037517|137517|989898|1|9999037517|MR|Test|E|Lead 37517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037518|137518|989898|1|9999037518|MR|Test|E|Lead 37518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037519|137519|989898|1|9999037519|MR|Test|E|Lead 37519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037520|137520|989898|1|9999037520|MR|Test|E|Lead 37520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037521|137521|989898|1|9999037521|MR|Test|E|Lead 37521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037522|137522|989898|1|9999037522|MR|Test|E|Lead 37522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037523|137523|989898|1|9999037523|MR|Test|E|Lead 37523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037524|137524|989898|1|9999037524|MR|Test|E|Lead 37524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037525|137525|989898|1|9999037525|MR|Test|E|Lead 37525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037526|137526|989898|1|9999037526|MR|Test|E|Lead 37526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037527|137527|989898|1|9999037527|MR|Test|E|Lead 37527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037528|137528|989898|1|9999037528|MR|Test|E|Lead 37528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037529|137529|989898|1|9999037529|MR|Test|E|Lead 37529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037530|137530|989898|1|9999037530|MR|Test|E|Lead 37530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037531|137531|989898|1|9999037531|MR|Test|E|Lead 37531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037532|137532|989898|1|9999037532|MR|Test|E|Lead 37532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037533|137533|989898|1|9999037533|MR|Test|E|Lead 37533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037534|137534|989898|1|9999037534|MR|Test|E|Lead 37534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037535|137535|989898|1|9999037535|MR|Test|E|Lead 37535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037536|137536|989898|1|9999037536|MR|Test|E|Lead 37536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037537|137537|989898|1|9999037537|MR|Test|E|Lead 37537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037538|137538|989898|1|9999037538|MR|Test|E|Lead 37538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037539|137539|989898|1|9999037539|MR|Test|E|Lead 37539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037540|137540|989898|1|9999037540|MR|Test|E|Lead 37540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037541|137541|989898|1|9999037541|MR|Test|E|Lead 37541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037542|137542|989898|1|9999037542|MR|Test|E|Lead 37542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037543|137543|989898|1|9999037543|MR|Test|E|Lead 37543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037544|137544|989898|1|9999037544|MR|Test|E|Lead 37544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037545|137545|989898|1|9999037545|MR|Test|E|Lead 37545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037546|137546|989898|1|9999037546|MR|Test|E|Lead 37546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037547|137547|989898|1|9999037547|MR|Test|E|Lead 37547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037548|137548|989898|1|9999037548|MR|Test|E|Lead 37548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037549|137549|989898|1|9999037549|MR|Test|E|Lead 37549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037550|137550|989898|1|9999037550|MR|Test|E|Lead 37550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037551|137551|989898|1|9999037551|MR|Test|E|Lead 37551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037552|137552|989898|1|9999037552|MR|Test|E|Lead 37552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037553|137553|989898|1|9999037553|MR|Test|E|Lead 37553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037554|137554|989898|1|9999037554|MR|Test|E|Lead 37554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037555|137555|989898|1|9999037555|MR|Test|E|Lead 37555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037556|137556|989898|1|9999037556|MR|Test|E|Lead 37556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037557|137557|989898|1|9999037557|MR|Test|E|Lead 37557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037558|137558|989898|1|9999037558|MR|Test|E|Lead 37558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037559|137559|989898|1|9999037559|MR|Test|E|Lead 37559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037560|137560|989898|1|9999037560|MR|Test|E|Lead 37560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037561|137561|989898|1|9999037561|MR|Test|E|Lead 37561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037562|137562|989898|1|9999037562|MR|Test|E|Lead 37562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037563|137563|989898|1|9999037563|MR|Test|E|Lead 37563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037564|137564|989898|1|9999037564|MR|Test|E|Lead 37564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037565|137565|989898|1|9999037565|MR|Test|E|Lead 37565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037566|137566|989898|1|9999037566|MR|Test|E|Lead 37566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037567|137567|989898|1|9999037567|MR|Test|E|Lead 37567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037568|137568|989898|1|9999037568|MR|Test|E|Lead 37568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037569|137569|989898|1|9999037569|MR|Test|E|Lead 37569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037570|137570|989898|1|9999037570|MR|Test|E|Lead 37570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037571|137571|989898|1|9999037571|MR|Test|E|Lead 37571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037572|137572|989898|1|9999037572|MR|Test|E|Lead 37572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037573|137573|989898|1|9999037573|MR|Test|E|Lead 37573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037574|137574|989898|1|9999037574|MR|Test|E|Lead 37574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037575|137575|989898|1|9999037575|MR|Test|E|Lead 37575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037576|137576|989898|1|9999037576|MR|Test|E|Lead 37576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037577|137577|989898|1|9999037577|MR|Test|E|Lead 37577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037578|137578|989898|1|9999037578|MR|Test|E|Lead 37578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037579|137579|989898|1|9999037579|MR|Test|E|Lead 37579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037580|137580|989898|1|9999037580|MR|Test|E|Lead 37580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037581|137581|989898|1|9999037581|MR|Test|E|Lead 37581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037582|137582|989898|1|9999037582|MR|Test|E|Lead 37582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037583|137583|989898|1|9999037583|MR|Test|E|Lead 37583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037584|137584|989898|1|9999037584|MR|Test|E|Lead 37584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037585|137585|989898|1|9999037585|MR|Test|E|Lead 37585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037586|137586|989898|1|9999037586|MR|Test|E|Lead 37586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037587|137587|989898|1|9999037587|MR|Test|E|Lead 37587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037588|137588|989898|1|9999037588|MR|Test|E|Lead 37588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037589|137589|989898|1|9999037589|MR|Test|E|Lead 37589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037590|137590|989898|1|9999037590|MR|Test|E|Lead 37590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037591|137591|989898|1|9999037591|MR|Test|E|Lead 37591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037592|137592|989898|1|9999037592|MR|Test|E|Lead 37592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037593|137593|989898|1|9999037593|MR|Test|E|Lead 37593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037594|137594|989898|1|9999037594|MR|Test|E|Lead 37594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037595|137595|989898|1|9999037595|MR|Test|E|Lead 37595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037596|137596|989898|1|9999037596|MR|Test|E|Lead 37596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037597|137597|989898|1|9999037597|MR|Test|E|Lead 37597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037598|137598|989898|1|9999037598|MR|Test|E|Lead 37598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037599|137599|989898|1|9999037599|MR|Test|E|Lead 37599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037600|137600|989898|1|9999037600|MR|Test|E|Lead 37600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037601|137601|989898|1|9999037601|MR|Test|E|Lead 37601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037602|137602|989898|1|9999037602|MR|Test|E|Lead 37602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037603|137603|989898|1|9999037603|MR|Test|E|Lead 37603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037604|137604|989898|1|9999037604|MR|Test|E|Lead 37604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037605|137605|989898|1|9999037605|MR|Test|E|Lead 37605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037606|137606|989898|1|9999037606|MR|Test|E|Lead 37606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037607|137607|989898|1|9999037607|MR|Test|E|Lead 37607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037608|137608|989898|1|9999037608|MR|Test|E|Lead 37608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037609|137609|989898|1|9999037609|MR|Test|E|Lead 37609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037610|137610|989898|1|9999037610|MR|Test|E|Lead 37610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037611|137611|989898|1|9999037611|MR|Test|E|Lead 37611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037612|137612|989898|1|9999037612|MR|Test|E|Lead 37612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037613|137613|989898|1|9999037613|MR|Test|E|Lead 37613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037614|137614|989898|1|9999037614|MR|Test|E|Lead 37614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037615|137615|989898|1|9999037615|MR|Test|E|Lead 37615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037616|137616|989898|1|9999037616|MR|Test|E|Lead 37616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037617|137617|989898|1|9999037617|MR|Test|E|Lead 37617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037618|137618|989898|1|9999037618|MR|Test|E|Lead 37618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037619|137619|989898|1|9999037619|MR|Test|E|Lead 37619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037620|137620|989898|1|9999037620|MR|Test|E|Lead 37620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037621|137621|989898|1|9999037621|MR|Test|E|Lead 37621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037622|137622|989898|1|9999037622|MR|Test|E|Lead 37622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037623|137623|989898|1|9999037623|MR|Test|E|Lead 37623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037624|137624|989898|1|9999037624|MR|Test|E|Lead 37624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037625|137625|989898|1|9999037625|MR|Test|E|Lead 37625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037626|137626|989898|1|9999037626|MR|Test|E|Lead 37626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037627|137627|989898|1|9999037627|MR|Test|E|Lead 37627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037628|137628|989898|1|9999037628|MR|Test|E|Lead 37628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037629|137629|989898|1|9999037629|MR|Test|E|Lead 37629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037630|137630|989898|1|9999037630|MR|Test|E|Lead 37630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037631|137631|989898|1|9999037631|MR|Test|E|Lead 37631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037632|137632|989898|1|9999037632|MR|Test|E|Lead 37632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037633|137633|989898|1|9999037633|MR|Test|E|Lead 37633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037634|137634|989898|1|9999037634|MR|Test|E|Lead 37634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037635|137635|989898|1|9999037635|MR|Test|E|Lead 37635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037636|137636|989898|1|9999037636|MR|Test|E|Lead 37636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037637|137637|989898|1|9999037637|MR|Test|E|Lead 37637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037638|137638|989898|1|9999037638|MR|Test|E|Lead 37638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037639|137639|989898|1|9999037639|MR|Test|E|Lead 37639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037640|137640|989898|1|9999037640|MR|Test|E|Lead 37640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037641|137641|989898|1|9999037641|MR|Test|E|Lead 37641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037642|137642|989898|1|9999037642|MR|Test|E|Lead 37642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037643|137643|989898|1|9999037643|MR|Test|E|Lead 37643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037644|137644|989898|1|9999037644|MR|Test|E|Lead 37644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037645|137645|989898|1|9999037645|MR|Test|E|Lead 37645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037646|137646|989898|1|9999037646|MR|Test|E|Lead 37646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037647|137647|989898|1|9999037647|MR|Test|E|Lead 37647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037648|137648|989898|1|9999037648|MR|Test|E|Lead 37648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037649|137649|989898|1|9999037649|MR|Test|E|Lead 37649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037650|137650|989898|1|9999037650|MR|Test|E|Lead 37650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037651|137651|989898|1|9999037651|MR|Test|E|Lead 37651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037652|137652|989898|1|9999037652|MR|Test|E|Lead 37652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037653|137653|989898|1|9999037653|MR|Test|E|Lead 37653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037654|137654|989898|1|9999037654|MR|Test|E|Lead 37654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037655|137655|989898|1|9999037655|MR|Test|E|Lead 37655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037656|137656|989898|1|9999037656|MR|Test|E|Lead 37656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037657|137657|989898|1|9999037657|MR|Test|E|Lead 37657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037658|137658|989898|1|9999037658|MR|Test|E|Lead 37658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037659|137659|989898|1|9999037659|MR|Test|E|Lead 37659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037660|137660|989898|1|9999037660|MR|Test|E|Lead 37660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037661|137661|989898|1|9999037661|MR|Test|E|Lead 37661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037662|137662|989898|1|9999037662|MR|Test|E|Lead 37662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037663|137663|989898|1|9999037663|MR|Test|E|Lead 37663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037664|137664|989898|1|9999037664|MR|Test|E|Lead 37664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037665|137665|989898|1|9999037665|MR|Test|E|Lead 37665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037666|137666|989898|1|9999037666|MR|Test|E|Lead 37666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037667|137667|989898|1|9999037667|MR|Test|E|Lead 37667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037668|137668|989898|1|9999037668|MR|Test|E|Lead 37668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037669|137669|989898|1|9999037669|MR|Test|E|Lead 37669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037670|137670|989898|1|9999037670|MR|Test|E|Lead 37670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037671|137671|989898|1|9999037671|MR|Test|E|Lead 37671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037672|137672|989898|1|9999037672|MR|Test|E|Lead 37672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037673|137673|989898|1|9999037673|MR|Test|E|Lead 37673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037674|137674|989898|1|9999037674|MR|Test|E|Lead 37674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037675|137675|989898|1|9999037675|MR|Test|E|Lead 37675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037676|137676|989898|1|9999037676|MR|Test|E|Lead 37676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037677|137677|989898|1|9999037677|MR|Test|E|Lead 37677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037678|137678|989898|1|9999037678|MR|Test|E|Lead 37678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037679|137679|989898|1|9999037679|MR|Test|E|Lead 37679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037680|137680|989898|1|9999037680|MR|Test|E|Lead 37680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037681|137681|989898|1|9999037681|MR|Test|E|Lead 37681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037682|137682|989898|1|9999037682|MR|Test|E|Lead 37682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037683|137683|989898|1|9999037683|MR|Test|E|Lead 37683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037684|137684|989898|1|9999037684|MR|Test|E|Lead 37684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037685|137685|989898|1|9999037685|MR|Test|E|Lead 37685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037686|137686|989898|1|9999037686|MR|Test|E|Lead 37686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037687|137687|989898|1|9999037687|MR|Test|E|Lead 37687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037688|137688|989898|1|9999037688|MR|Test|E|Lead 37688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037689|137689|989898|1|9999037689|MR|Test|E|Lead 37689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037690|137690|989898|1|9999037690|MR|Test|E|Lead 37690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037691|137691|989898|1|9999037691|MR|Test|E|Lead 37691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037692|137692|989898|1|9999037692|MR|Test|E|Lead 37692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037693|137693|989898|1|9999037693|MR|Test|E|Lead 37693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037694|137694|989898|1|9999037694|MR|Test|E|Lead 37694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037695|137695|989898|1|9999037695|MR|Test|E|Lead 37695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037696|137696|989898|1|9999037696|MR|Test|E|Lead 37696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037697|137697|989898|1|9999037697|MR|Test|E|Lead 37697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037698|137698|989898|1|9999037698|MR|Test|E|Lead 37698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037699|137699|989898|1|9999037699|MR|Test|E|Lead 37699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037700|137700|989898|1|9999037700|MR|Test|E|Lead 37700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037701|137701|989898|1|9999037701|MR|Test|E|Lead 37701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037702|137702|989898|1|9999037702|MR|Test|E|Lead 37702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037703|137703|989898|1|9999037703|MR|Test|E|Lead 37703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037704|137704|989898|1|9999037704|MR|Test|E|Lead 37704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037705|137705|989898|1|9999037705|MR|Test|E|Lead 37705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037706|137706|989898|1|9999037706|MR|Test|E|Lead 37706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037707|137707|989898|1|9999037707|MR|Test|E|Lead 37707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037708|137708|989898|1|9999037708|MR|Test|E|Lead 37708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037709|137709|989898|1|9999037709|MR|Test|E|Lead 37709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037710|137710|989898|1|9999037710|MR|Test|E|Lead 37710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037711|137711|989898|1|9999037711|MR|Test|E|Lead 37711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037712|137712|989898|1|9999037712|MR|Test|E|Lead 37712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037713|137713|989898|1|9999037713|MR|Test|E|Lead 37713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037714|137714|989898|1|9999037714|MR|Test|E|Lead 37714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037715|137715|989898|1|9999037715|MR|Test|E|Lead 37715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037716|137716|989898|1|9999037716|MR|Test|E|Lead 37716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037717|137717|989898|1|9999037717|MR|Test|E|Lead 37717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037718|137718|989898|1|9999037718|MR|Test|E|Lead 37718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037719|137719|989898|1|9999037719|MR|Test|E|Lead 37719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037720|137720|989898|1|9999037720|MR|Test|E|Lead 37720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037721|137721|989898|1|9999037721|MR|Test|E|Lead 37721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037722|137722|989898|1|9999037722|MR|Test|E|Lead 37722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037723|137723|989898|1|9999037723|MR|Test|E|Lead 37723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037724|137724|989898|1|9999037724|MR|Test|E|Lead 37724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037725|137725|989898|1|9999037725|MR|Test|E|Lead 37725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037726|137726|989898|1|9999037726|MR|Test|E|Lead 37726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037727|137727|989898|1|9999037727|MR|Test|E|Lead 37727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037728|137728|989898|1|9999037728|MR|Test|E|Lead 37728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037729|137729|989898|1|9999037729|MR|Test|E|Lead 37729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037730|137730|989898|1|9999037730|MR|Test|E|Lead 37730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037731|137731|989898|1|9999037731|MR|Test|E|Lead 37731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037732|137732|989898|1|9999037732|MR|Test|E|Lead 37732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037733|137733|989898|1|9999037733|MR|Test|E|Lead 37733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037734|137734|989898|1|9999037734|MR|Test|E|Lead 37734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037735|137735|989898|1|9999037735|MR|Test|E|Lead 37735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037736|137736|989898|1|9999037736|MR|Test|E|Lead 37736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037737|137737|989898|1|9999037737|MR|Test|E|Lead 37737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037738|137738|989898|1|9999037738|MR|Test|E|Lead 37738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037739|137739|989898|1|9999037739|MR|Test|E|Lead 37739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037740|137740|989898|1|9999037740|MR|Test|E|Lead 37740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037741|137741|989898|1|9999037741|MR|Test|E|Lead 37741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037742|137742|989898|1|9999037742|MR|Test|E|Lead 37742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037743|137743|989898|1|9999037743|MR|Test|E|Lead 37743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037744|137744|989898|1|9999037744|MR|Test|E|Lead 37744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037745|137745|989898|1|9999037745|MR|Test|E|Lead 37745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037746|137746|989898|1|9999037746|MR|Test|E|Lead 37746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037747|137747|989898|1|9999037747|MR|Test|E|Lead 37747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037748|137748|989898|1|9999037748|MR|Test|E|Lead 37748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037749|137749|989898|1|9999037749|MR|Test|E|Lead 37749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037750|137750|989898|1|9999037750|MR|Test|E|Lead 37750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037751|137751|989898|1|9999037751|MR|Test|E|Lead 37751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037752|137752|989898|1|9999037752|MR|Test|E|Lead 37752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037753|137753|989898|1|9999037753|MR|Test|E|Lead 37753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037754|137754|989898|1|9999037754|MR|Test|E|Lead 37754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037755|137755|989898|1|9999037755|MR|Test|E|Lead 37755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037756|137756|989898|1|9999037756|MR|Test|E|Lead 37756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037757|137757|989898|1|9999037757|MR|Test|E|Lead 37757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037758|137758|989898|1|9999037758|MR|Test|E|Lead 37758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037759|137759|989898|1|9999037759|MR|Test|E|Lead 37759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037760|137760|989898|1|9999037760|MR|Test|E|Lead 37760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037761|137761|989898|1|9999037761|MR|Test|E|Lead 37761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037762|137762|989898|1|9999037762|MR|Test|E|Lead 37762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037763|137763|989898|1|9999037763|MR|Test|E|Lead 37763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037764|137764|989898|1|9999037764|MR|Test|E|Lead 37764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037765|137765|989898|1|9999037765|MR|Test|E|Lead 37765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037766|137766|989898|1|9999037766|MR|Test|E|Lead 37766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037767|137767|989898|1|9999037767|MR|Test|E|Lead 37767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037768|137768|989898|1|9999037768|MR|Test|E|Lead 37768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037769|137769|989898|1|9999037769|MR|Test|E|Lead 37769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037770|137770|989898|1|9999037770|MR|Test|E|Lead 37770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037771|137771|989898|1|9999037771|MR|Test|E|Lead 37771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037772|137772|989898|1|9999037772|MR|Test|E|Lead 37772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037773|137773|989898|1|9999037773|MR|Test|E|Lead 37773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037774|137774|989898|1|9999037774|MR|Test|E|Lead 37774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037775|137775|989898|1|9999037775|MR|Test|E|Lead 37775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037776|137776|989898|1|9999037776|MR|Test|E|Lead 37776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037777|137777|989898|1|9999037777|MR|Test|E|Lead 37777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037778|137778|989898|1|9999037778|MR|Test|E|Lead 37778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037779|137779|989898|1|9999037779|MR|Test|E|Lead 37779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037780|137780|989898|1|9999037780|MR|Test|E|Lead 37780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037781|137781|989898|1|9999037781|MR|Test|E|Lead 37781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037782|137782|989898|1|9999037782|MR|Test|E|Lead 37782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037783|137783|989898|1|9999037783|MR|Test|E|Lead 37783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037784|137784|989898|1|9999037784|MR|Test|E|Lead 37784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037785|137785|989898|1|9999037785|MR|Test|E|Lead 37785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037786|137786|989898|1|9999037786|MR|Test|E|Lead 37786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037787|137787|989898|1|9999037787|MR|Test|E|Lead 37787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037788|137788|989898|1|9999037788|MR|Test|E|Lead 37788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037789|137789|989898|1|9999037789|MR|Test|E|Lead 37789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037790|137790|989898|1|9999037790|MR|Test|E|Lead 37790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037791|137791|989898|1|9999037791|MR|Test|E|Lead 37791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037792|137792|989898|1|9999037792|MR|Test|E|Lead 37792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037793|137793|989898|1|9999037793|MR|Test|E|Lead 37793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037794|137794|989898|1|9999037794|MR|Test|E|Lead 37794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037795|137795|989898|1|9999037795|MR|Test|E|Lead 37795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037796|137796|989898|1|9999037796|MR|Test|E|Lead 37796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037797|137797|989898|1|9999037797|MR|Test|E|Lead 37797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037798|137798|989898|1|9999037798|MR|Test|E|Lead 37798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037799|137799|989898|1|9999037799|MR|Test|E|Lead 37799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037800|137800|989898|1|9999037800|MR|Test|E|Lead 37800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037801|137801|989898|1|9999037801|MR|Test|E|Lead 37801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037802|137802|989898|1|9999037802|MR|Test|E|Lead 37802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037803|137803|989898|1|9999037803|MR|Test|E|Lead 37803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037804|137804|989898|1|9999037804|MR|Test|E|Lead 37804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037805|137805|989898|1|9999037805|MR|Test|E|Lead 37805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037806|137806|989898|1|9999037806|MR|Test|E|Lead 37806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037807|137807|989898|1|9999037807|MR|Test|E|Lead 37807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037808|137808|989898|1|9999037808|MR|Test|E|Lead 37808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037809|137809|989898|1|9999037809|MR|Test|E|Lead 37809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037810|137810|989898|1|9999037810|MR|Test|E|Lead 37810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037811|137811|989898|1|9999037811|MR|Test|E|Lead 37811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037812|137812|989898|1|9999037812|MR|Test|E|Lead 37812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037813|137813|989898|1|9999037813|MR|Test|E|Lead 37813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037814|137814|989898|1|9999037814|MR|Test|E|Lead 37814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037815|137815|989898|1|9999037815|MR|Test|E|Lead 37815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037816|137816|989898|1|9999037816|MR|Test|E|Lead 37816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037817|137817|989898|1|9999037817|MR|Test|E|Lead 37817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037818|137818|989898|1|9999037818|MR|Test|E|Lead 37818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037819|137819|989898|1|9999037819|MR|Test|E|Lead 37819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037820|137820|989898|1|9999037820|MR|Test|E|Lead 37820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037821|137821|989898|1|9999037821|MR|Test|E|Lead 37821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037822|137822|989898|1|9999037822|MR|Test|E|Lead 37822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037823|137823|989898|1|9999037823|MR|Test|E|Lead 37823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037824|137824|989898|1|9999037824|MR|Test|E|Lead 37824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037825|137825|989898|1|9999037825|MR|Test|E|Lead 37825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037826|137826|989898|1|9999037826|MR|Test|E|Lead 37826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037827|137827|989898|1|9999037827|MR|Test|E|Lead 37827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037828|137828|989898|1|9999037828|MR|Test|E|Lead 37828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037829|137829|989898|1|9999037829|MR|Test|E|Lead 37829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037830|137830|989898|1|9999037830|MR|Test|E|Lead 37830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037831|137831|989898|1|9999037831|MR|Test|E|Lead 37831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037832|137832|989898|1|9999037832|MR|Test|E|Lead 37832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037833|137833|989898|1|9999037833|MR|Test|E|Lead 37833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037834|137834|989898|1|9999037834|MR|Test|E|Lead 37834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037835|137835|989898|1|9999037835|MR|Test|E|Lead 37835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037836|137836|989898|1|9999037836|MR|Test|E|Lead 37836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037837|137837|989898|1|9999037837|MR|Test|E|Lead 37837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037838|137838|989898|1|9999037838|MR|Test|E|Lead 37838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037839|137839|989898|1|9999037839|MR|Test|E|Lead 37839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037840|137840|989898|1|9999037840|MR|Test|E|Lead 37840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037841|137841|989898|1|9999037841|MR|Test|E|Lead 37841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037842|137842|989898|1|9999037842|MR|Test|E|Lead 37842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037843|137843|989898|1|9999037843|MR|Test|E|Lead 37843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037844|137844|989898|1|9999037844|MR|Test|E|Lead 37844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037845|137845|989898|1|9999037845|MR|Test|E|Lead 37845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037846|137846|989898|1|9999037846|MR|Test|E|Lead 37846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037847|137847|989898|1|9999037847|MR|Test|E|Lead 37847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037848|137848|989898|1|9999037848|MR|Test|E|Lead 37848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037849|137849|989898|1|9999037849|MR|Test|E|Lead 37849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037850|137850|989898|1|9999037850|MR|Test|E|Lead 37850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037851|137851|989898|1|9999037851|MR|Test|E|Lead 37851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037852|137852|989898|1|9999037852|MR|Test|E|Lead 37852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037853|137853|989898|1|9999037853|MR|Test|E|Lead 37853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037854|137854|989898|1|9999037854|MR|Test|E|Lead 37854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037855|137855|989898|1|9999037855|MR|Test|E|Lead 37855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037856|137856|989898|1|9999037856|MR|Test|E|Lead 37856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037857|137857|989898|1|9999037857|MR|Test|E|Lead 37857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037858|137858|989898|1|9999037858|MR|Test|E|Lead 37858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037859|137859|989898|1|9999037859|MR|Test|E|Lead 37859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037860|137860|989898|1|9999037860|MR|Test|E|Lead 37860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037861|137861|989898|1|9999037861|MR|Test|E|Lead 37861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037862|137862|989898|1|9999037862|MR|Test|E|Lead 37862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037863|137863|989898|1|9999037863|MR|Test|E|Lead 37863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037864|137864|989898|1|9999037864|MR|Test|E|Lead 37864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037865|137865|989898|1|9999037865|MR|Test|E|Lead 37865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037866|137866|989898|1|9999037866|MR|Test|E|Lead 37866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037867|137867|989898|1|9999037867|MR|Test|E|Lead 37867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037868|137868|989898|1|9999037868|MR|Test|E|Lead 37868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037869|137869|989898|1|9999037869|MR|Test|E|Lead 37869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037870|137870|989898|1|9999037870|MR|Test|E|Lead 37870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037871|137871|989898|1|9999037871|MR|Test|E|Lead 37871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037872|137872|989898|1|9999037872|MR|Test|E|Lead 37872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037873|137873|989898|1|9999037873|MR|Test|E|Lead 37873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037874|137874|989898|1|9999037874|MR|Test|E|Lead 37874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037875|137875|989898|1|9999037875|MR|Test|E|Lead 37875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037876|137876|989898|1|9999037876|MR|Test|E|Lead 37876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037877|137877|989898|1|9999037877|MR|Test|E|Lead 37877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037878|137878|989898|1|9999037878|MR|Test|E|Lead 37878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037879|137879|989898|1|9999037879|MR|Test|E|Lead 37879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037880|137880|989898|1|9999037880|MR|Test|E|Lead 37880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037881|137881|989898|1|9999037881|MR|Test|E|Lead 37881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037882|137882|989898|1|9999037882|MR|Test|E|Lead 37882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037883|137883|989898|1|9999037883|MR|Test|E|Lead 37883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037884|137884|989898|1|9999037884|MR|Test|E|Lead 37884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037885|137885|989898|1|9999037885|MR|Test|E|Lead 37885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037886|137886|989898|1|9999037886|MR|Test|E|Lead 37886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037887|137887|989898|1|9999037887|MR|Test|E|Lead 37887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037888|137888|989898|1|9999037888|MR|Test|E|Lead 37888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037889|137889|989898|1|9999037889|MR|Test|E|Lead 37889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037890|137890|989898|1|9999037890|MR|Test|E|Lead 37890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037891|137891|989898|1|9999037891|MR|Test|E|Lead 37891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037892|137892|989898|1|9999037892|MR|Test|E|Lead 37892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037893|137893|989898|1|9999037893|MR|Test|E|Lead 37893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037894|137894|989898|1|9999037894|MR|Test|E|Lead 37894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037895|137895|989898|1|9999037895|MR|Test|E|Lead 37895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037896|137896|989898|1|9999037896|MR|Test|E|Lead 37896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037897|137897|989898|1|9999037897|MR|Test|E|Lead 37897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037898|137898|989898|1|9999037898|MR|Test|E|Lead 37898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037899|137899|989898|1|9999037899|MR|Test|E|Lead 37899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037900|137900|989898|1|9999037900|MR|Test|E|Lead 37900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037901|137901|989898|1|9999037901|MR|Test|E|Lead 37901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037902|137902|989898|1|9999037902|MR|Test|E|Lead 37902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037903|137903|989898|1|9999037903|MR|Test|E|Lead 37903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037904|137904|989898|1|9999037904|MR|Test|E|Lead 37904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037905|137905|989898|1|9999037905|MR|Test|E|Lead 37905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037906|137906|989898|1|9999037906|MR|Test|E|Lead 37906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037907|137907|989898|1|9999037907|MR|Test|E|Lead 37907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037908|137908|989898|1|9999037908|MR|Test|E|Lead 37908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037909|137909|989898|1|9999037909|MR|Test|E|Lead 37909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037910|137910|989898|1|9999037910|MR|Test|E|Lead 37910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037911|137911|989898|1|9999037911|MR|Test|E|Lead 37911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037912|137912|989898|1|9999037912|MR|Test|E|Lead 37912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037913|137913|989898|1|9999037913|MR|Test|E|Lead 37913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037914|137914|989898|1|9999037914|MR|Test|E|Lead 37914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037915|137915|989898|1|9999037915|MR|Test|E|Lead 37915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037916|137916|989898|1|9999037916|MR|Test|E|Lead 37916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037917|137917|989898|1|9999037917|MR|Test|E|Lead 37917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037918|137918|989898|1|9999037918|MR|Test|E|Lead 37918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037919|137919|989898|1|9999037919|MR|Test|E|Lead 37919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037920|137920|989898|1|9999037920|MR|Test|E|Lead 37920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037921|137921|989898|1|9999037921|MR|Test|E|Lead 37921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037922|137922|989898|1|9999037922|MR|Test|E|Lead 37922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037923|137923|989898|1|9999037923|MR|Test|E|Lead 37923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037924|137924|989898|1|9999037924|MR|Test|E|Lead 37924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037925|137925|989898|1|9999037925|MR|Test|E|Lead 37925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037926|137926|989898|1|9999037926|MR|Test|E|Lead 37926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037927|137927|989898|1|9999037927|MR|Test|E|Lead 37927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037928|137928|989898|1|9999037928|MR|Test|E|Lead 37928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037929|137929|989898|1|9999037929|MR|Test|E|Lead 37929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037930|137930|989898|1|9999037930|MR|Test|E|Lead 37930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037931|137931|989898|1|9999037931|MR|Test|E|Lead 37931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037932|137932|989898|1|9999037932|MR|Test|E|Lead 37932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037933|137933|989898|1|9999037933|MR|Test|E|Lead 37933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037934|137934|989898|1|9999037934|MR|Test|E|Lead 37934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037935|137935|989898|1|9999037935|MR|Test|E|Lead 37935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037936|137936|989898|1|9999037936|MR|Test|E|Lead 37936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037937|137937|989898|1|9999037937|MR|Test|E|Lead 37937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037938|137938|989898|1|9999037938|MR|Test|E|Lead 37938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037939|137939|989898|1|9999037939|MR|Test|E|Lead 37939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037940|137940|989898|1|9999037940|MR|Test|E|Lead 37940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037941|137941|989898|1|9999037941|MR|Test|E|Lead 37941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037942|137942|989898|1|9999037942|MR|Test|E|Lead 37942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037943|137943|989898|1|9999037943|MR|Test|E|Lead 37943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037944|137944|989898|1|9999037944|MR|Test|E|Lead 37944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037945|137945|989898|1|9999037945|MR|Test|E|Lead 37945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037946|137946|989898|1|9999037946|MR|Test|E|Lead 37946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037947|137947|989898|1|9999037947|MR|Test|E|Lead 37947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037948|137948|989898|1|9999037948|MR|Test|E|Lead 37948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037949|137949|989898|1|9999037949|MR|Test|E|Lead 37949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037950|137950|989898|1|9999037950|MR|Test|E|Lead 37950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037951|137951|989898|1|9999037951|MR|Test|E|Lead 37951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037952|137952|989898|1|9999037952|MR|Test|E|Lead 37952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037953|137953|989898|1|9999037953|MR|Test|E|Lead 37953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037954|137954|989898|1|9999037954|MR|Test|E|Lead 37954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037955|137955|989898|1|9999037955|MR|Test|E|Lead 37955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037956|137956|989898|1|9999037956|MR|Test|E|Lead 37956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037957|137957|989898|1|9999037957|MR|Test|E|Lead 37957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037958|137958|989898|1|9999037958|MR|Test|E|Lead 37958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037959|137959|989898|1|9999037959|MR|Test|E|Lead 37959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037960|137960|989898|1|9999037960|MR|Test|E|Lead 37960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037961|137961|989898|1|9999037961|MR|Test|E|Lead 37961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037962|137962|989898|1|9999037962|MR|Test|E|Lead 37962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037963|137963|989898|1|9999037963|MR|Test|E|Lead 37963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037964|137964|989898|1|9999037964|MR|Test|E|Lead 37964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037965|137965|989898|1|9999037965|MR|Test|E|Lead 37965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037966|137966|989898|1|9999037966|MR|Test|E|Lead 37966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037967|137967|989898|1|9999037967|MR|Test|E|Lead 37967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037968|137968|989898|1|9999037968|MR|Test|E|Lead 37968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037969|137969|989898|1|9999037969|MR|Test|E|Lead 37969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037970|137970|989898|1|9999037970|MR|Test|E|Lead 37970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037971|137971|989898|1|9999037971|MR|Test|E|Lead 37971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037972|137972|989898|1|9999037972|MR|Test|E|Lead 37972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037973|137973|989898|1|9999037973|MR|Test|E|Lead 37973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037974|137974|989898|1|9999037974|MR|Test|E|Lead 37974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037975|137975|989898|1|9999037975|MR|Test|E|Lead 37975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037976|137976|989898|1|9999037976|MR|Test|E|Lead 37976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037977|137977|989898|1|9999037977|MR|Test|E|Lead 37977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037978|137978|989898|1|9999037978|MR|Test|E|Lead 37978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037979|137979|989898|1|9999037979|MR|Test|E|Lead 37979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037980|137980|989898|1|9999037980|MR|Test|E|Lead 37980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037981|137981|989898|1|9999037981|MR|Test|E|Lead 37981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037982|137982|989898|1|9999037982|MR|Test|E|Lead 37982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037983|137983|989898|1|9999037983|MR|Test|E|Lead 37983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037984|137984|989898|1|9999037984|MR|Test|E|Lead 37984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037985|137985|989898|1|9999037985|MR|Test|E|Lead 37985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037986|137986|989898|1|9999037986|MR|Test|E|Lead 37986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037987|137987|989898|1|9999037987|MR|Test|E|Lead 37987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037988|137988|989898|1|9999037988|MR|Test|E|Lead 37988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037989|137989|989898|1|9999037989|MR|Test|E|Lead 37989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037990|137990|989898|1|9999037990|MR|Test|E|Lead 37990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037991|137991|989898|1|9999037991|MR|Test|E|Lead 37991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037992|137992|989898|1|9999037992|MR|Test|E|Lead 37992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037993|137993|989898|1|9999037993|MR|Test|E|Lead 37993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037994|137994|989898|1|9999037994|MR|Test|E|Lead 37994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037995|137995|989898|1|9999037995|MR|Test|E|Lead 37995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037996|137996|989898|1|9999037996|MR|Test|E|Lead 37996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037997|137997|989898|1|9999037997|MR|Test|E|Lead 37997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037998|137998|989898|1|9999037998|MR|Test|E|Lead 37998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1037999|137999|989898|1|9999037999|MR|Test|E|Lead 37999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038000|138000|989898|1|9999038000|MR|Test|E|Lead 38000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038001|138001|989898|1|9999038001|MR|Test|E|Lead 38001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038002|138002|989898|1|9999038002|MR|Test|E|Lead 38002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038003|138003|989898|1|9999038003|MR|Test|E|Lead 38003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038004|138004|989898|1|9999038004|MR|Test|E|Lead 38004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038005|138005|989898|1|9999038005|MR|Test|E|Lead 38005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038006|138006|989898|1|9999038006|MR|Test|E|Lead 38006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038007|138007|989898|1|9999038007|MR|Test|E|Lead 38007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038008|138008|989898|1|9999038008|MR|Test|E|Lead 38008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038009|138009|989898|1|9999038009|MR|Test|E|Lead 38009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038010|138010|989898|1|9999038010|MR|Test|E|Lead 38010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038011|138011|989898|1|9999038011|MR|Test|E|Lead 38011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038012|138012|989898|1|9999038012|MR|Test|E|Lead 38012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038013|138013|989898|1|9999038013|MR|Test|E|Lead 38013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038014|138014|989898|1|9999038014|MR|Test|E|Lead 38014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038015|138015|989898|1|9999038015|MR|Test|E|Lead 38015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038016|138016|989898|1|9999038016|MR|Test|E|Lead 38016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038017|138017|989898|1|9999038017|MR|Test|E|Lead 38017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038018|138018|989898|1|9999038018|MR|Test|E|Lead 38018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038019|138019|989898|1|9999038019|MR|Test|E|Lead 38019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038020|138020|989898|1|9999038020|MR|Test|E|Lead 38020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038021|138021|989898|1|9999038021|MR|Test|E|Lead 38021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038022|138022|989898|1|9999038022|MR|Test|E|Lead 38022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038023|138023|989898|1|9999038023|MR|Test|E|Lead 38023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038024|138024|989898|1|9999038024|MR|Test|E|Lead 38024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038025|138025|989898|1|9999038025|MR|Test|E|Lead 38025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038026|138026|989898|1|9999038026|MR|Test|E|Lead 38026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038027|138027|989898|1|9999038027|MR|Test|E|Lead 38027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038028|138028|989898|1|9999038028|MR|Test|E|Lead 38028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038029|138029|989898|1|9999038029|MR|Test|E|Lead 38029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038030|138030|989898|1|9999038030|MR|Test|E|Lead 38030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038031|138031|989898|1|9999038031|MR|Test|E|Lead 38031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038032|138032|989898|1|9999038032|MR|Test|E|Lead 38032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038033|138033|989898|1|9999038033|MR|Test|E|Lead 38033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038034|138034|989898|1|9999038034|MR|Test|E|Lead 38034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038035|138035|989898|1|9999038035|MR|Test|E|Lead 38035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038036|138036|989898|1|9999038036|MR|Test|E|Lead 38036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038037|138037|989898|1|9999038037|MR|Test|E|Lead 38037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038038|138038|989898|1|9999038038|MR|Test|E|Lead 38038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038039|138039|989898|1|9999038039|MR|Test|E|Lead 38039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038040|138040|989898|1|9999038040|MR|Test|E|Lead 38040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038041|138041|989898|1|9999038041|MR|Test|E|Lead 38041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038042|138042|989898|1|9999038042|MR|Test|E|Lead 38042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038043|138043|989898|1|9999038043|MR|Test|E|Lead 38043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038044|138044|989898|1|9999038044|MR|Test|E|Lead 38044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038045|138045|989898|1|9999038045|MR|Test|E|Lead 38045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038046|138046|989898|1|9999038046|MR|Test|E|Lead 38046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038047|138047|989898|1|9999038047|MR|Test|E|Lead 38047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038048|138048|989898|1|9999038048|MR|Test|E|Lead 38048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038049|138049|989898|1|9999038049|MR|Test|E|Lead 38049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038050|138050|989898|1|9999038050|MR|Test|E|Lead 38050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038051|138051|989898|1|9999038051|MR|Test|E|Lead 38051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038052|138052|989898|1|9999038052|MR|Test|E|Lead 38052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038053|138053|989898|1|9999038053|MR|Test|E|Lead 38053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038054|138054|989898|1|9999038054|MR|Test|E|Lead 38054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038055|138055|989898|1|9999038055|MR|Test|E|Lead 38055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038056|138056|989898|1|9999038056|MR|Test|E|Lead 38056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038057|138057|989898|1|9999038057|MR|Test|E|Lead 38057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038058|138058|989898|1|9999038058|MR|Test|E|Lead 38058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038059|138059|989898|1|9999038059|MR|Test|E|Lead 38059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038060|138060|989898|1|9999038060|MR|Test|E|Lead 38060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038061|138061|989898|1|9999038061|MR|Test|E|Lead 38061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038062|138062|989898|1|9999038062|MR|Test|E|Lead 38062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038063|138063|989898|1|9999038063|MR|Test|E|Lead 38063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038064|138064|989898|1|9999038064|MR|Test|E|Lead 38064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038065|138065|989898|1|9999038065|MR|Test|E|Lead 38065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038066|138066|989898|1|9999038066|MR|Test|E|Lead 38066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038067|138067|989898|1|9999038067|MR|Test|E|Lead 38067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038068|138068|989898|1|9999038068|MR|Test|E|Lead 38068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038069|138069|989898|1|9999038069|MR|Test|E|Lead 38069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038070|138070|989898|1|9999038070|MR|Test|E|Lead 38070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038071|138071|989898|1|9999038071|MR|Test|E|Lead 38071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038072|138072|989898|1|9999038072|MR|Test|E|Lead 38072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038073|138073|989898|1|9999038073|MR|Test|E|Lead 38073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038074|138074|989898|1|9999038074|MR|Test|E|Lead 38074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038075|138075|989898|1|9999038075|MR|Test|E|Lead 38075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038076|138076|989898|1|9999038076|MR|Test|E|Lead 38076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038077|138077|989898|1|9999038077|MR|Test|E|Lead 38077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038078|138078|989898|1|9999038078|MR|Test|E|Lead 38078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038079|138079|989898|1|9999038079|MR|Test|E|Lead 38079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038080|138080|989898|1|9999038080|MR|Test|E|Lead 38080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038081|138081|989898|1|9999038081|MR|Test|E|Lead 38081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038082|138082|989898|1|9999038082|MR|Test|E|Lead 38082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038083|138083|989898|1|9999038083|MR|Test|E|Lead 38083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038084|138084|989898|1|9999038084|MR|Test|E|Lead 38084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038085|138085|989898|1|9999038085|MR|Test|E|Lead 38085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038086|138086|989898|1|9999038086|MR|Test|E|Lead 38086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038087|138087|989898|1|9999038087|MR|Test|E|Lead 38087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038088|138088|989898|1|9999038088|MR|Test|E|Lead 38088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038089|138089|989898|1|9999038089|MR|Test|E|Lead 38089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038090|138090|989898|1|9999038090|MR|Test|E|Lead 38090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038091|138091|989898|1|9999038091|MR|Test|E|Lead 38091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038092|138092|989898|1|9999038092|MR|Test|E|Lead 38092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038093|138093|989898|1|9999038093|MR|Test|E|Lead 38093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038094|138094|989898|1|9999038094|MR|Test|E|Lead 38094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038095|138095|989898|1|9999038095|MR|Test|E|Lead 38095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038096|138096|989898|1|9999038096|MR|Test|E|Lead 38096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038097|138097|989898|1|9999038097|MR|Test|E|Lead 38097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038098|138098|989898|1|9999038098|MR|Test|E|Lead 38098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038099|138099|989898|1|9999038099|MR|Test|E|Lead 38099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038100|138100|989898|1|9999038100|MR|Test|E|Lead 38100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038101|138101|989898|1|9999038101|MR|Test|E|Lead 38101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038102|138102|989898|1|9999038102|MR|Test|E|Lead 38102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038103|138103|989898|1|9999038103|MR|Test|E|Lead 38103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038104|138104|989898|1|9999038104|MR|Test|E|Lead 38104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038105|138105|989898|1|9999038105|MR|Test|E|Lead 38105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038106|138106|989898|1|9999038106|MR|Test|E|Lead 38106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038107|138107|989898|1|9999038107|MR|Test|E|Lead 38107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038108|138108|989898|1|9999038108|MR|Test|E|Lead 38108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038109|138109|989898|1|9999038109|MR|Test|E|Lead 38109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038110|138110|989898|1|9999038110|MR|Test|E|Lead 38110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038111|138111|989898|1|9999038111|MR|Test|E|Lead 38111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038112|138112|989898|1|9999038112|MR|Test|E|Lead 38112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038113|138113|989898|1|9999038113|MR|Test|E|Lead 38113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038114|138114|989898|1|9999038114|MR|Test|E|Lead 38114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038115|138115|989898|1|9999038115|MR|Test|E|Lead 38115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038116|138116|989898|1|9999038116|MR|Test|E|Lead 38116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038117|138117|989898|1|9999038117|MR|Test|E|Lead 38117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038118|138118|989898|1|9999038118|MR|Test|E|Lead 38118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038119|138119|989898|1|9999038119|MR|Test|E|Lead 38119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038120|138120|989898|1|9999038120|MR|Test|E|Lead 38120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038121|138121|989898|1|9999038121|MR|Test|E|Lead 38121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038122|138122|989898|1|9999038122|MR|Test|E|Lead 38122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038123|138123|989898|1|9999038123|MR|Test|E|Lead 38123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038124|138124|989898|1|9999038124|MR|Test|E|Lead 38124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038125|138125|989898|1|9999038125|MR|Test|E|Lead 38125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038126|138126|989898|1|9999038126|MR|Test|E|Lead 38126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038127|138127|989898|1|9999038127|MR|Test|E|Lead 38127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038128|138128|989898|1|9999038128|MR|Test|E|Lead 38128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038129|138129|989898|1|9999038129|MR|Test|E|Lead 38129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038130|138130|989898|1|9999038130|MR|Test|E|Lead 38130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038131|138131|989898|1|9999038131|MR|Test|E|Lead 38131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038132|138132|989898|1|9999038132|MR|Test|E|Lead 38132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038133|138133|989898|1|9999038133|MR|Test|E|Lead 38133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038134|138134|989898|1|9999038134|MR|Test|E|Lead 38134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038135|138135|989898|1|9999038135|MR|Test|E|Lead 38135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038136|138136|989898|1|9999038136|MR|Test|E|Lead 38136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038137|138137|989898|1|9999038137|MR|Test|E|Lead 38137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038138|138138|989898|1|9999038138|MR|Test|E|Lead 38138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038139|138139|989898|1|9999038139|MR|Test|E|Lead 38139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038140|138140|989898|1|9999038140|MR|Test|E|Lead 38140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038141|138141|989898|1|9999038141|MR|Test|E|Lead 38141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038142|138142|989898|1|9999038142|MR|Test|E|Lead 38142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038143|138143|989898|1|9999038143|MR|Test|E|Lead 38143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038144|138144|989898|1|9999038144|MR|Test|E|Lead 38144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038145|138145|989898|1|9999038145|MR|Test|E|Lead 38145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038146|138146|989898|1|9999038146|MR|Test|E|Lead 38146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038147|138147|989898|1|9999038147|MR|Test|E|Lead 38147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038148|138148|989898|1|9999038148|MR|Test|E|Lead 38148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038149|138149|989898|1|9999038149|MR|Test|E|Lead 38149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038150|138150|989898|1|9999038150|MR|Test|E|Lead 38150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038151|138151|989898|1|9999038151|MR|Test|E|Lead 38151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038152|138152|989898|1|9999038152|MR|Test|E|Lead 38152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038153|138153|989898|1|9999038153|MR|Test|E|Lead 38153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038154|138154|989898|1|9999038154|MR|Test|E|Lead 38154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038155|138155|989898|1|9999038155|MR|Test|E|Lead 38155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038156|138156|989898|1|9999038156|MR|Test|E|Lead 38156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038157|138157|989898|1|9999038157|MR|Test|E|Lead 38157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038158|138158|989898|1|9999038158|MR|Test|E|Lead 38158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038159|138159|989898|1|9999038159|MR|Test|E|Lead 38159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038160|138160|989898|1|9999038160|MR|Test|E|Lead 38160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038161|138161|989898|1|9999038161|MR|Test|E|Lead 38161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038162|138162|989898|1|9999038162|MR|Test|E|Lead 38162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038163|138163|989898|1|9999038163|MR|Test|E|Lead 38163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038164|138164|989898|1|9999038164|MR|Test|E|Lead 38164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038165|138165|989898|1|9999038165|MR|Test|E|Lead 38165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038166|138166|989898|1|9999038166|MR|Test|E|Lead 38166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038167|138167|989898|1|9999038167|MR|Test|E|Lead 38167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038168|138168|989898|1|9999038168|MR|Test|E|Lead 38168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038169|138169|989898|1|9999038169|MR|Test|E|Lead 38169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038170|138170|989898|1|9999038170|MR|Test|E|Lead 38170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038171|138171|989898|1|9999038171|MR|Test|E|Lead 38171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038172|138172|989898|1|9999038172|MR|Test|E|Lead 38172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038173|138173|989898|1|9999038173|MR|Test|E|Lead 38173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038174|138174|989898|1|9999038174|MR|Test|E|Lead 38174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038175|138175|989898|1|9999038175|MR|Test|E|Lead 38175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038176|138176|989898|1|9999038176|MR|Test|E|Lead 38176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038177|138177|989898|1|9999038177|MR|Test|E|Lead 38177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038178|138178|989898|1|9999038178|MR|Test|E|Lead 38178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038179|138179|989898|1|9999038179|MR|Test|E|Lead 38179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038180|138180|989898|1|9999038180|MR|Test|E|Lead 38180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038181|138181|989898|1|9999038181|MR|Test|E|Lead 38181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038182|138182|989898|1|9999038182|MR|Test|E|Lead 38182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038183|138183|989898|1|9999038183|MR|Test|E|Lead 38183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038184|138184|989898|1|9999038184|MR|Test|E|Lead 38184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038185|138185|989898|1|9999038185|MR|Test|E|Lead 38185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038186|138186|989898|1|9999038186|MR|Test|E|Lead 38186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038187|138187|989898|1|9999038187|MR|Test|E|Lead 38187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038188|138188|989898|1|9999038188|MR|Test|E|Lead 38188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038189|138189|989898|1|9999038189|MR|Test|E|Lead 38189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038190|138190|989898|1|9999038190|MR|Test|E|Lead 38190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038191|138191|989898|1|9999038191|MR|Test|E|Lead 38191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038192|138192|989898|1|9999038192|MR|Test|E|Lead 38192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038193|138193|989898|1|9999038193|MR|Test|E|Lead 38193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038194|138194|989898|1|9999038194|MR|Test|E|Lead 38194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038195|138195|989898|1|9999038195|MR|Test|E|Lead 38195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038196|138196|989898|1|9999038196|MR|Test|E|Lead 38196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038197|138197|989898|1|9999038197|MR|Test|E|Lead 38197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038198|138198|989898|1|9999038198|MR|Test|E|Lead 38198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038199|138199|989898|1|9999038199|MR|Test|E|Lead 38199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038200|138200|989898|1|9999038200|MR|Test|E|Lead 38200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038201|138201|989898|1|9999038201|MR|Test|E|Lead 38201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038202|138202|989898|1|9999038202|MR|Test|E|Lead 38202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038203|138203|989898|1|9999038203|MR|Test|E|Lead 38203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038204|138204|989898|1|9999038204|MR|Test|E|Lead 38204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038205|138205|989898|1|9999038205|MR|Test|E|Lead 38205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038206|138206|989898|1|9999038206|MR|Test|E|Lead 38206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038207|138207|989898|1|9999038207|MR|Test|E|Lead 38207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038208|138208|989898|1|9999038208|MR|Test|E|Lead 38208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038209|138209|989898|1|9999038209|MR|Test|E|Lead 38209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038210|138210|989898|1|9999038210|MR|Test|E|Lead 38210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038211|138211|989898|1|9999038211|MR|Test|E|Lead 38211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038212|138212|989898|1|9999038212|MR|Test|E|Lead 38212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038213|138213|989898|1|9999038213|MR|Test|E|Lead 38213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038214|138214|989898|1|9999038214|MR|Test|E|Lead 38214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038215|138215|989898|1|9999038215|MR|Test|E|Lead 38215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038216|138216|989898|1|9999038216|MR|Test|E|Lead 38216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038217|138217|989898|1|9999038217|MR|Test|E|Lead 38217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038218|138218|989898|1|9999038218|MR|Test|E|Lead 38218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038219|138219|989898|1|9999038219|MR|Test|E|Lead 38219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038220|138220|989898|1|9999038220|MR|Test|E|Lead 38220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038221|138221|989898|1|9999038221|MR|Test|E|Lead 38221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038222|138222|989898|1|9999038222|MR|Test|E|Lead 38222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038223|138223|989898|1|9999038223|MR|Test|E|Lead 38223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038224|138224|989898|1|9999038224|MR|Test|E|Lead 38224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038225|138225|989898|1|9999038225|MR|Test|E|Lead 38225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038226|138226|989898|1|9999038226|MR|Test|E|Lead 38226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038227|138227|989898|1|9999038227|MR|Test|E|Lead 38227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038228|138228|989898|1|9999038228|MR|Test|E|Lead 38228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038229|138229|989898|1|9999038229|MR|Test|E|Lead 38229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038230|138230|989898|1|9999038230|MR|Test|E|Lead 38230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038231|138231|989898|1|9999038231|MR|Test|E|Lead 38231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038232|138232|989898|1|9999038232|MR|Test|E|Lead 38232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038233|138233|989898|1|9999038233|MR|Test|E|Lead 38233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038234|138234|989898|1|9999038234|MR|Test|E|Lead 38234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038235|138235|989898|1|9999038235|MR|Test|E|Lead 38235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038236|138236|989898|1|9999038236|MR|Test|E|Lead 38236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038237|138237|989898|1|9999038237|MR|Test|E|Lead 38237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038238|138238|989898|1|9999038238|MR|Test|E|Lead 38238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038239|138239|989898|1|9999038239|MR|Test|E|Lead 38239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038240|138240|989898|1|9999038240|MR|Test|E|Lead 38240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038241|138241|989898|1|9999038241|MR|Test|E|Lead 38241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038242|138242|989898|1|9999038242|MR|Test|E|Lead 38242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038243|138243|989898|1|9999038243|MR|Test|E|Lead 38243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038244|138244|989898|1|9999038244|MR|Test|E|Lead 38244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038245|138245|989898|1|9999038245|MR|Test|E|Lead 38245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038246|138246|989898|1|9999038246|MR|Test|E|Lead 38246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038247|138247|989898|1|9999038247|MR|Test|E|Lead 38247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038248|138248|989898|1|9999038248|MR|Test|E|Lead 38248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038249|138249|989898|1|9999038249|MR|Test|E|Lead 38249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038250|138250|989898|1|9999038250|MR|Test|E|Lead 38250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038251|138251|989898|1|9999038251|MR|Test|E|Lead 38251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038252|138252|989898|1|9999038252|MR|Test|E|Lead 38252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038253|138253|989898|1|9999038253|MR|Test|E|Lead 38253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038254|138254|989898|1|9999038254|MR|Test|E|Lead 38254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038255|138255|989898|1|9999038255|MR|Test|E|Lead 38255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038256|138256|989898|1|9999038256|MR|Test|E|Lead 38256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038257|138257|989898|1|9999038257|MR|Test|E|Lead 38257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038258|138258|989898|1|9999038258|MR|Test|E|Lead 38258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038259|138259|989898|1|9999038259|MR|Test|E|Lead 38259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038260|138260|989898|1|9999038260|MR|Test|E|Lead 38260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038261|138261|989898|1|9999038261|MR|Test|E|Lead 38261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038262|138262|989898|1|9999038262|MR|Test|E|Lead 38262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038263|138263|989898|1|9999038263|MR|Test|E|Lead 38263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038264|138264|989898|1|9999038264|MR|Test|E|Lead 38264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038265|138265|989898|1|9999038265|MR|Test|E|Lead 38265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038266|138266|989898|1|9999038266|MR|Test|E|Lead 38266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038267|138267|989898|1|9999038267|MR|Test|E|Lead 38267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038268|138268|989898|1|9999038268|MR|Test|E|Lead 38268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038269|138269|989898|1|9999038269|MR|Test|E|Lead 38269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038270|138270|989898|1|9999038270|MR|Test|E|Lead 38270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038271|138271|989898|1|9999038271|MR|Test|E|Lead 38271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038272|138272|989898|1|9999038272|MR|Test|E|Lead 38272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038273|138273|989898|1|9999038273|MR|Test|E|Lead 38273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038274|138274|989898|1|9999038274|MR|Test|E|Lead 38274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038275|138275|989898|1|9999038275|MR|Test|E|Lead 38275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038276|138276|989898|1|9999038276|MR|Test|E|Lead 38276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038277|138277|989898|1|9999038277|MR|Test|E|Lead 38277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038278|138278|989898|1|9999038278|MR|Test|E|Lead 38278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038279|138279|989898|1|9999038279|MR|Test|E|Lead 38279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038280|138280|989898|1|9999038280|MR|Test|E|Lead 38280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038281|138281|989898|1|9999038281|MR|Test|E|Lead 38281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038282|138282|989898|1|9999038282|MR|Test|E|Lead 38282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038283|138283|989898|1|9999038283|MR|Test|E|Lead 38283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038284|138284|989898|1|9999038284|MR|Test|E|Lead 38284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038285|138285|989898|1|9999038285|MR|Test|E|Lead 38285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038286|138286|989898|1|9999038286|MR|Test|E|Lead 38286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038287|138287|989898|1|9999038287|MR|Test|E|Lead 38287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038288|138288|989898|1|9999038288|MR|Test|E|Lead 38288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038289|138289|989898|1|9999038289|MR|Test|E|Lead 38289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038290|138290|989898|1|9999038290|MR|Test|E|Lead 38290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038291|138291|989898|1|9999038291|MR|Test|E|Lead 38291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038292|138292|989898|1|9999038292|MR|Test|E|Lead 38292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038293|138293|989898|1|9999038293|MR|Test|E|Lead 38293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038294|138294|989898|1|9999038294|MR|Test|E|Lead 38294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038295|138295|989898|1|9999038295|MR|Test|E|Lead 38295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038296|138296|989898|1|9999038296|MR|Test|E|Lead 38296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038297|138297|989898|1|9999038297|MR|Test|E|Lead 38297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038298|138298|989898|1|9999038298|MR|Test|E|Lead 38298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038299|138299|989898|1|9999038299|MR|Test|E|Lead 38299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038300|138300|989898|1|9999038300|MR|Test|E|Lead 38300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038301|138301|989898|1|9999038301|MR|Test|E|Lead 38301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038302|138302|989898|1|9999038302|MR|Test|E|Lead 38302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038303|138303|989898|1|9999038303|MR|Test|E|Lead 38303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038304|138304|989898|1|9999038304|MR|Test|E|Lead 38304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038305|138305|989898|1|9999038305|MR|Test|E|Lead 38305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038306|138306|989898|1|9999038306|MR|Test|E|Lead 38306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038307|138307|989898|1|9999038307|MR|Test|E|Lead 38307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038308|138308|989898|1|9999038308|MR|Test|E|Lead 38308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038309|138309|989898|1|9999038309|MR|Test|E|Lead 38309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038310|138310|989898|1|9999038310|MR|Test|E|Lead 38310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038311|138311|989898|1|9999038311|MR|Test|E|Lead 38311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038312|138312|989898|1|9999038312|MR|Test|E|Lead 38312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038313|138313|989898|1|9999038313|MR|Test|E|Lead 38313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038314|138314|989898|1|9999038314|MR|Test|E|Lead 38314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038315|138315|989898|1|9999038315|MR|Test|E|Lead 38315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038316|138316|989898|1|9999038316|MR|Test|E|Lead 38316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038317|138317|989898|1|9999038317|MR|Test|E|Lead 38317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038318|138318|989898|1|9999038318|MR|Test|E|Lead 38318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038319|138319|989898|1|9999038319|MR|Test|E|Lead 38319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038320|138320|989898|1|9999038320|MR|Test|E|Lead 38320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038321|138321|989898|1|9999038321|MR|Test|E|Lead 38321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038322|138322|989898|1|9999038322|MR|Test|E|Lead 38322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038323|138323|989898|1|9999038323|MR|Test|E|Lead 38323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038324|138324|989898|1|9999038324|MR|Test|E|Lead 38324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038325|138325|989898|1|9999038325|MR|Test|E|Lead 38325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038326|138326|989898|1|9999038326|MR|Test|E|Lead 38326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038327|138327|989898|1|9999038327|MR|Test|E|Lead 38327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038328|138328|989898|1|9999038328|MR|Test|E|Lead 38328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038329|138329|989898|1|9999038329|MR|Test|E|Lead 38329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038330|138330|989898|1|9999038330|MR|Test|E|Lead 38330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038331|138331|989898|1|9999038331|MR|Test|E|Lead 38331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038332|138332|989898|1|9999038332|MR|Test|E|Lead 38332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038333|138333|989898|1|9999038333|MR|Test|E|Lead 38333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038334|138334|989898|1|9999038334|MR|Test|E|Lead 38334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038335|138335|989898|1|9999038335|MR|Test|E|Lead 38335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038336|138336|989898|1|9999038336|MR|Test|E|Lead 38336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038337|138337|989898|1|9999038337|MR|Test|E|Lead 38337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038338|138338|989898|1|9999038338|MR|Test|E|Lead 38338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038339|138339|989898|1|9999038339|MR|Test|E|Lead 38339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038340|138340|989898|1|9999038340|MR|Test|E|Lead 38340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038341|138341|989898|1|9999038341|MR|Test|E|Lead 38341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038342|138342|989898|1|9999038342|MR|Test|E|Lead 38342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038343|138343|989898|1|9999038343|MR|Test|E|Lead 38343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038344|138344|989898|1|9999038344|MR|Test|E|Lead 38344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038345|138345|989898|1|9999038345|MR|Test|E|Lead 38345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038346|138346|989898|1|9999038346|MR|Test|E|Lead 38346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038347|138347|989898|1|9999038347|MR|Test|E|Lead 38347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038348|138348|989898|1|9999038348|MR|Test|E|Lead 38348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038349|138349|989898|1|9999038349|MR|Test|E|Lead 38349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038350|138350|989898|1|9999038350|MR|Test|E|Lead 38350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038351|138351|989898|1|9999038351|MR|Test|E|Lead 38351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038352|138352|989898|1|9999038352|MR|Test|E|Lead 38352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038353|138353|989898|1|9999038353|MR|Test|E|Lead 38353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038354|138354|989898|1|9999038354|MR|Test|E|Lead 38354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038355|138355|989898|1|9999038355|MR|Test|E|Lead 38355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038356|138356|989898|1|9999038356|MR|Test|E|Lead 38356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038357|138357|989898|1|9999038357|MR|Test|E|Lead 38357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038358|138358|989898|1|9999038358|MR|Test|E|Lead 38358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038359|138359|989898|1|9999038359|MR|Test|E|Lead 38359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038360|138360|989898|1|9999038360|MR|Test|E|Lead 38360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038361|138361|989898|1|9999038361|MR|Test|E|Lead 38361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038362|138362|989898|1|9999038362|MR|Test|E|Lead 38362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038363|138363|989898|1|9999038363|MR|Test|E|Lead 38363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038364|138364|989898|1|9999038364|MR|Test|E|Lead 38364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038365|138365|989898|1|9999038365|MR|Test|E|Lead 38365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038366|138366|989898|1|9999038366|MR|Test|E|Lead 38366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038367|138367|989898|1|9999038367|MR|Test|E|Lead 38367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038368|138368|989898|1|9999038368|MR|Test|E|Lead 38368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038369|138369|989898|1|9999038369|MR|Test|E|Lead 38369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038370|138370|989898|1|9999038370|MR|Test|E|Lead 38370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038371|138371|989898|1|9999038371|MR|Test|E|Lead 38371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038372|138372|989898|1|9999038372|MR|Test|E|Lead 38372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038373|138373|989898|1|9999038373|MR|Test|E|Lead 38373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038374|138374|989898|1|9999038374|MR|Test|E|Lead 38374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038375|138375|989898|1|9999038375|MR|Test|E|Lead 38375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038376|138376|989898|1|9999038376|MR|Test|E|Lead 38376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038377|138377|989898|1|9999038377|MR|Test|E|Lead 38377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038378|138378|989898|1|9999038378|MR|Test|E|Lead 38378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038379|138379|989898|1|9999038379|MR|Test|E|Lead 38379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038380|138380|989898|1|9999038380|MR|Test|E|Lead 38380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038381|138381|989898|1|9999038381|MR|Test|E|Lead 38381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038382|138382|989898|1|9999038382|MR|Test|E|Lead 38382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038383|138383|989898|1|9999038383|MR|Test|E|Lead 38383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038384|138384|989898|1|9999038384|MR|Test|E|Lead 38384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038385|138385|989898|1|9999038385|MR|Test|E|Lead 38385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038386|138386|989898|1|9999038386|MR|Test|E|Lead 38386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038387|138387|989898|1|9999038387|MR|Test|E|Lead 38387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038388|138388|989898|1|9999038388|MR|Test|E|Lead 38388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038389|138389|989898|1|9999038389|MR|Test|E|Lead 38389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038390|138390|989898|1|9999038390|MR|Test|E|Lead 38390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038391|138391|989898|1|9999038391|MR|Test|E|Lead 38391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038392|138392|989898|1|9999038392|MR|Test|E|Lead 38392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038393|138393|989898|1|9999038393|MR|Test|E|Lead 38393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038394|138394|989898|1|9999038394|MR|Test|E|Lead 38394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038395|138395|989898|1|9999038395|MR|Test|E|Lead 38395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038396|138396|989898|1|9999038396|MR|Test|E|Lead 38396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038397|138397|989898|1|9999038397|MR|Test|E|Lead 38397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038398|138398|989898|1|9999038398|MR|Test|E|Lead 38398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038399|138399|989898|1|9999038399|MR|Test|E|Lead 38399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038400|138400|989898|1|9999038400|MR|Test|E|Lead 38400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038401|138401|989898|1|9999038401|MR|Test|E|Lead 38401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038402|138402|989898|1|9999038402|MR|Test|E|Lead 38402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038403|138403|989898|1|9999038403|MR|Test|E|Lead 38403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038404|138404|989898|1|9999038404|MR|Test|E|Lead 38404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038405|138405|989898|1|9999038405|MR|Test|E|Lead 38405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038406|138406|989898|1|9999038406|MR|Test|E|Lead 38406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038407|138407|989898|1|9999038407|MR|Test|E|Lead 38407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038408|138408|989898|1|9999038408|MR|Test|E|Lead 38408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038409|138409|989898|1|9999038409|MR|Test|E|Lead 38409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038410|138410|989898|1|9999038410|MR|Test|E|Lead 38410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038411|138411|989898|1|9999038411|MR|Test|E|Lead 38411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038412|138412|989898|1|9999038412|MR|Test|E|Lead 38412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038413|138413|989898|1|9999038413|MR|Test|E|Lead 38413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038414|138414|989898|1|9999038414|MR|Test|E|Lead 38414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038415|138415|989898|1|9999038415|MR|Test|E|Lead 38415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038416|138416|989898|1|9999038416|MR|Test|E|Lead 38416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038417|138417|989898|1|9999038417|MR|Test|E|Lead 38417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038418|138418|989898|1|9999038418|MR|Test|E|Lead 38418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038419|138419|989898|1|9999038419|MR|Test|E|Lead 38419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038420|138420|989898|1|9999038420|MR|Test|E|Lead 38420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038421|138421|989898|1|9999038421|MR|Test|E|Lead 38421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038422|138422|989898|1|9999038422|MR|Test|E|Lead 38422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038423|138423|989898|1|9999038423|MR|Test|E|Lead 38423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038424|138424|989898|1|9999038424|MR|Test|E|Lead 38424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038425|138425|989898|1|9999038425|MR|Test|E|Lead 38425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038426|138426|989898|1|9999038426|MR|Test|E|Lead 38426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038427|138427|989898|1|9999038427|MR|Test|E|Lead 38427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038428|138428|989898|1|9999038428|MR|Test|E|Lead 38428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038429|138429|989898|1|9999038429|MR|Test|E|Lead 38429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038430|138430|989898|1|9999038430|MR|Test|E|Lead 38430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038431|138431|989898|1|9999038431|MR|Test|E|Lead 38431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038432|138432|989898|1|9999038432|MR|Test|E|Lead 38432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038433|138433|989898|1|9999038433|MR|Test|E|Lead 38433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038434|138434|989898|1|9999038434|MR|Test|E|Lead 38434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038435|138435|989898|1|9999038435|MR|Test|E|Lead 38435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038436|138436|989898|1|9999038436|MR|Test|E|Lead 38436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038437|138437|989898|1|9999038437|MR|Test|E|Lead 38437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038438|138438|989898|1|9999038438|MR|Test|E|Lead 38438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038439|138439|989898|1|9999038439|MR|Test|E|Lead 38439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038440|138440|989898|1|9999038440|MR|Test|E|Lead 38440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038441|138441|989898|1|9999038441|MR|Test|E|Lead 38441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038442|138442|989898|1|9999038442|MR|Test|E|Lead 38442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038443|138443|989898|1|9999038443|MR|Test|E|Lead 38443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038444|138444|989898|1|9999038444|MR|Test|E|Lead 38444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038445|138445|989898|1|9999038445|MR|Test|E|Lead 38445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038446|138446|989898|1|9999038446|MR|Test|E|Lead 38446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038447|138447|989898|1|9999038447|MR|Test|E|Lead 38447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038448|138448|989898|1|9999038448|MR|Test|E|Lead 38448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038449|138449|989898|1|9999038449|MR|Test|E|Lead 38449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038450|138450|989898|1|9999038450|MR|Test|E|Lead 38450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038451|138451|989898|1|9999038451|MR|Test|E|Lead 38451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038452|138452|989898|1|9999038452|MR|Test|E|Lead 38452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038453|138453|989898|1|9999038453|MR|Test|E|Lead 38453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038454|138454|989898|1|9999038454|MR|Test|E|Lead 38454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038455|138455|989898|1|9999038455|MR|Test|E|Lead 38455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038456|138456|989898|1|9999038456|MR|Test|E|Lead 38456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038457|138457|989898|1|9999038457|MR|Test|E|Lead 38457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038458|138458|989898|1|9999038458|MR|Test|E|Lead 38458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038459|138459|989898|1|9999038459|MR|Test|E|Lead 38459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038460|138460|989898|1|9999038460|MR|Test|E|Lead 38460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038461|138461|989898|1|9999038461|MR|Test|E|Lead 38461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038462|138462|989898|1|9999038462|MR|Test|E|Lead 38462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038463|138463|989898|1|9999038463|MR|Test|E|Lead 38463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038464|138464|989898|1|9999038464|MR|Test|E|Lead 38464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038465|138465|989898|1|9999038465|MR|Test|E|Lead 38465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038466|138466|989898|1|9999038466|MR|Test|E|Lead 38466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038467|138467|989898|1|9999038467|MR|Test|E|Lead 38467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038468|138468|989898|1|9999038468|MR|Test|E|Lead 38468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038469|138469|989898|1|9999038469|MR|Test|E|Lead 38469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038470|138470|989898|1|9999038470|MR|Test|E|Lead 38470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038471|138471|989898|1|9999038471|MR|Test|E|Lead 38471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038472|138472|989898|1|9999038472|MR|Test|E|Lead 38472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038473|138473|989898|1|9999038473|MR|Test|E|Lead 38473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038474|138474|989898|1|9999038474|MR|Test|E|Lead 38474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038475|138475|989898|1|9999038475|MR|Test|E|Lead 38475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038476|138476|989898|1|9999038476|MR|Test|E|Lead 38476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038477|138477|989898|1|9999038477|MR|Test|E|Lead 38477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038478|138478|989898|1|9999038478|MR|Test|E|Lead 38478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038479|138479|989898|1|9999038479|MR|Test|E|Lead 38479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038480|138480|989898|1|9999038480|MR|Test|E|Lead 38480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038481|138481|989898|1|9999038481|MR|Test|E|Lead 38481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038482|138482|989898|1|9999038482|MR|Test|E|Lead 38482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038483|138483|989898|1|9999038483|MR|Test|E|Lead 38483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038484|138484|989898|1|9999038484|MR|Test|E|Lead 38484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038485|138485|989898|1|9999038485|MR|Test|E|Lead 38485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038486|138486|989898|1|9999038486|MR|Test|E|Lead 38486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038487|138487|989898|1|9999038487|MR|Test|E|Lead 38487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038488|138488|989898|1|9999038488|MR|Test|E|Lead 38488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038489|138489|989898|1|9999038489|MR|Test|E|Lead 38489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038490|138490|989898|1|9999038490|MR|Test|E|Lead 38490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038491|138491|989898|1|9999038491|MR|Test|E|Lead 38491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038492|138492|989898|1|9999038492|MR|Test|E|Lead 38492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038493|138493|989898|1|9999038493|MR|Test|E|Lead 38493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038494|138494|989898|1|9999038494|MR|Test|E|Lead 38494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038495|138495|989898|1|9999038495|MR|Test|E|Lead 38495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038496|138496|989898|1|9999038496|MR|Test|E|Lead 38496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038497|138497|989898|1|9999038497|MR|Test|E|Lead 38497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038498|138498|989898|1|9999038498|MR|Test|E|Lead 38498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038499|138499|989898|1|9999038499|MR|Test|E|Lead 38499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038500|138500|989898|1|9999038500|MR|Test|E|Lead 38500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038501|138501|989898|1|9999038501|MR|Test|E|Lead 38501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038502|138502|989898|1|9999038502|MR|Test|E|Lead 38502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038503|138503|989898|1|9999038503|MR|Test|E|Lead 38503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038504|138504|989898|1|9999038504|MR|Test|E|Lead 38504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038505|138505|989898|1|9999038505|MR|Test|E|Lead 38505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038506|138506|989898|1|9999038506|MR|Test|E|Lead 38506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038507|138507|989898|1|9999038507|MR|Test|E|Lead 38507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038508|138508|989898|1|9999038508|MR|Test|E|Lead 38508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038509|138509|989898|1|9999038509|MR|Test|E|Lead 38509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038510|138510|989898|1|9999038510|MR|Test|E|Lead 38510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038511|138511|989898|1|9999038511|MR|Test|E|Lead 38511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038512|138512|989898|1|9999038512|MR|Test|E|Lead 38512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038513|138513|989898|1|9999038513|MR|Test|E|Lead 38513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038514|138514|989898|1|9999038514|MR|Test|E|Lead 38514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038515|138515|989898|1|9999038515|MR|Test|E|Lead 38515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038516|138516|989898|1|9999038516|MR|Test|E|Lead 38516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038517|138517|989898|1|9999038517|MR|Test|E|Lead 38517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038518|138518|989898|1|9999038518|MR|Test|E|Lead 38518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038519|138519|989898|1|9999038519|MR|Test|E|Lead 38519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038520|138520|989898|1|9999038520|MR|Test|E|Lead 38520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038521|138521|989898|1|9999038521|MR|Test|E|Lead 38521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038522|138522|989898|1|9999038522|MR|Test|E|Lead 38522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038523|138523|989898|1|9999038523|MR|Test|E|Lead 38523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038524|138524|989898|1|9999038524|MR|Test|E|Lead 38524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038525|138525|989898|1|9999038525|MR|Test|E|Lead 38525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038526|138526|989898|1|9999038526|MR|Test|E|Lead 38526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038527|138527|989898|1|9999038527|MR|Test|E|Lead 38527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038528|138528|989898|1|9999038528|MR|Test|E|Lead 38528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038529|138529|989898|1|9999038529|MR|Test|E|Lead 38529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038530|138530|989898|1|9999038530|MR|Test|E|Lead 38530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038531|138531|989898|1|9999038531|MR|Test|E|Lead 38531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038532|138532|989898|1|9999038532|MR|Test|E|Lead 38532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038533|138533|989898|1|9999038533|MR|Test|E|Lead 38533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038534|138534|989898|1|9999038534|MR|Test|E|Lead 38534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038535|138535|989898|1|9999038535|MR|Test|E|Lead 38535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038536|138536|989898|1|9999038536|MR|Test|E|Lead 38536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038537|138537|989898|1|9999038537|MR|Test|E|Lead 38537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038538|138538|989898|1|9999038538|MR|Test|E|Lead 38538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038539|138539|989898|1|9999038539|MR|Test|E|Lead 38539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038540|138540|989898|1|9999038540|MR|Test|E|Lead 38540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038541|138541|989898|1|9999038541|MR|Test|E|Lead 38541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038542|138542|989898|1|9999038542|MR|Test|E|Lead 38542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038543|138543|989898|1|9999038543|MR|Test|E|Lead 38543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038544|138544|989898|1|9999038544|MR|Test|E|Lead 38544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038545|138545|989898|1|9999038545|MR|Test|E|Lead 38545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038546|138546|989898|1|9999038546|MR|Test|E|Lead 38546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038547|138547|989898|1|9999038547|MR|Test|E|Lead 38547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038548|138548|989898|1|9999038548|MR|Test|E|Lead 38548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038549|138549|989898|1|9999038549|MR|Test|E|Lead 38549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038550|138550|989898|1|9999038550|MR|Test|E|Lead 38550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038551|138551|989898|1|9999038551|MR|Test|E|Lead 38551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038552|138552|989898|1|9999038552|MR|Test|E|Lead 38552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038553|138553|989898|1|9999038553|MR|Test|E|Lead 38553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038554|138554|989898|1|9999038554|MR|Test|E|Lead 38554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038555|138555|989898|1|9999038555|MR|Test|E|Lead 38555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038556|138556|989898|1|9999038556|MR|Test|E|Lead 38556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038557|138557|989898|1|9999038557|MR|Test|E|Lead 38557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038558|138558|989898|1|9999038558|MR|Test|E|Lead 38558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038559|138559|989898|1|9999038559|MR|Test|E|Lead 38559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038560|138560|989898|1|9999038560|MR|Test|E|Lead 38560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038561|138561|989898|1|9999038561|MR|Test|E|Lead 38561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038562|138562|989898|1|9999038562|MR|Test|E|Lead 38562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038563|138563|989898|1|9999038563|MR|Test|E|Lead 38563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038564|138564|989898|1|9999038564|MR|Test|E|Lead 38564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038565|138565|989898|1|9999038565|MR|Test|E|Lead 38565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038566|138566|989898|1|9999038566|MR|Test|E|Lead 38566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038567|138567|989898|1|9999038567|MR|Test|E|Lead 38567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038568|138568|989898|1|9999038568|MR|Test|E|Lead 38568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038569|138569|989898|1|9999038569|MR|Test|E|Lead 38569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038570|138570|989898|1|9999038570|MR|Test|E|Lead 38570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038571|138571|989898|1|9999038571|MR|Test|E|Lead 38571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038572|138572|989898|1|9999038572|MR|Test|E|Lead 38572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038573|138573|989898|1|9999038573|MR|Test|E|Lead 38573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038574|138574|989898|1|9999038574|MR|Test|E|Lead 38574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038575|138575|989898|1|9999038575|MR|Test|E|Lead 38575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038576|138576|989898|1|9999038576|MR|Test|E|Lead 38576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038577|138577|989898|1|9999038577|MR|Test|E|Lead 38577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038578|138578|989898|1|9999038578|MR|Test|E|Lead 38578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038579|138579|989898|1|9999038579|MR|Test|E|Lead 38579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038580|138580|989898|1|9999038580|MR|Test|E|Lead 38580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038581|138581|989898|1|9999038581|MR|Test|E|Lead 38581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038582|138582|989898|1|9999038582|MR|Test|E|Lead 38582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038583|138583|989898|1|9999038583|MR|Test|E|Lead 38583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038584|138584|989898|1|9999038584|MR|Test|E|Lead 38584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038585|138585|989898|1|9999038585|MR|Test|E|Lead 38585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038586|138586|989898|1|9999038586|MR|Test|E|Lead 38586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038587|138587|989898|1|9999038587|MR|Test|E|Lead 38587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038588|138588|989898|1|9999038588|MR|Test|E|Lead 38588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038589|138589|989898|1|9999038589|MR|Test|E|Lead 38589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038590|138590|989898|1|9999038590|MR|Test|E|Lead 38590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038591|138591|989898|1|9999038591|MR|Test|E|Lead 38591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038592|138592|989898|1|9999038592|MR|Test|E|Lead 38592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038593|138593|989898|1|9999038593|MR|Test|E|Lead 38593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038594|138594|989898|1|9999038594|MR|Test|E|Lead 38594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038595|138595|989898|1|9999038595|MR|Test|E|Lead 38595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038596|138596|989898|1|9999038596|MR|Test|E|Lead 38596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038597|138597|989898|1|9999038597|MR|Test|E|Lead 38597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038598|138598|989898|1|9999038598|MR|Test|E|Lead 38598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038599|138599|989898|1|9999038599|MR|Test|E|Lead 38599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038600|138600|989898|1|9999038600|MR|Test|E|Lead 38600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038601|138601|989898|1|9999038601|MR|Test|E|Lead 38601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038602|138602|989898|1|9999038602|MR|Test|E|Lead 38602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038603|138603|989898|1|9999038603|MR|Test|E|Lead 38603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038604|138604|989898|1|9999038604|MR|Test|E|Lead 38604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038605|138605|989898|1|9999038605|MR|Test|E|Lead 38605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038606|138606|989898|1|9999038606|MR|Test|E|Lead 38606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038607|138607|989898|1|9999038607|MR|Test|E|Lead 38607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038608|138608|989898|1|9999038608|MR|Test|E|Lead 38608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038609|138609|989898|1|9999038609|MR|Test|E|Lead 38609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038610|138610|989898|1|9999038610|MR|Test|E|Lead 38610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038611|138611|989898|1|9999038611|MR|Test|E|Lead 38611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038612|138612|989898|1|9999038612|MR|Test|E|Lead 38612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038613|138613|989898|1|9999038613|MR|Test|E|Lead 38613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038614|138614|989898|1|9999038614|MR|Test|E|Lead 38614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038615|138615|989898|1|9999038615|MR|Test|E|Lead 38615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038616|138616|989898|1|9999038616|MR|Test|E|Lead 38616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038617|138617|989898|1|9999038617|MR|Test|E|Lead 38617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038618|138618|989898|1|9999038618|MR|Test|E|Lead 38618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038619|138619|989898|1|9999038619|MR|Test|E|Lead 38619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038620|138620|989898|1|9999038620|MR|Test|E|Lead 38620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038621|138621|989898|1|9999038621|MR|Test|E|Lead 38621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038622|138622|989898|1|9999038622|MR|Test|E|Lead 38622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038623|138623|989898|1|9999038623|MR|Test|E|Lead 38623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038624|138624|989898|1|9999038624|MR|Test|E|Lead 38624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038625|138625|989898|1|9999038625|MR|Test|E|Lead 38625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038626|138626|989898|1|9999038626|MR|Test|E|Lead 38626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038627|138627|989898|1|9999038627|MR|Test|E|Lead 38627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038628|138628|989898|1|9999038628|MR|Test|E|Lead 38628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038629|138629|989898|1|9999038629|MR|Test|E|Lead 38629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038630|138630|989898|1|9999038630|MR|Test|E|Lead 38630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038631|138631|989898|1|9999038631|MR|Test|E|Lead 38631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038632|138632|989898|1|9999038632|MR|Test|E|Lead 38632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038633|138633|989898|1|9999038633|MR|Test|E|Lead 38633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038634|138634|989898|1|9999038634|MR|Test|E|Lead 38634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038635|138635|989898|1|9999038635|MR|Test|E|Lead 38635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038636|138636|989898|1|9999038636|MR|Test|E|Lead 38636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038637|138637|989898|1|9999038637|MR|Test|E|Lead 38637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038638|138638|989898|1|9999038638|MR|Test|E|Lead 38638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038639|138639|989898|1|9999038639|MR|Test|E|Lead 38639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038640|138640|989898|1|9999038640|MR|Test|E|Lead 38640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038641|138641|989898|1|9999038641|MR|Test|E|Lead 38641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038642|138642|989898|1|9999038642|MR|Test|E|Lead 38642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038643|138643|989898|1|9999038643|MR|Test|E|Lead 38643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038644|138644|989898|1|9999038644|MR|Test|E|Lead 38644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038645|138645|989898|1|9999038645|MR|Test|E|Lead 38645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038646|138646|989898|1|9999038646|MR|Test|E|Lead 38646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038647|138647|989898|1|9999038647|MR|Test|E|Lead 38647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038648|138648|989898|1|9999038648|MR|Test|E|Lead 38648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038649|138649|989898|1|9999038649|MR|Test|E|Lead 38649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038650|138650|989898|1|9999038650|MR|Test|E|Lead 38650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038651|138651|989898|1|9999038651|MR|Test|E|Lead 38651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038652|138652|989898|1|9999038652|MR|Test|E|Lead 38652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038653|138653|989898|1|9999038653|MR|Test|E|Lead 38653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038654|138654|989898|1|9999038654|MR|Test|E|Lead 38654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038655|138655|989898|1|9999038655|MR|Test|E|Lead 38655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038656|138656|989898|1|9999038656|MR|Test|E|Lead 38656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038657|138657|989898|1|9999038657|MR|Test|E|Lead 38657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038658|138658|989898|1|9999038658|MR|Test|E|Lead 38658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038659|138659|989898|1|9999038659|MR|Test|E|Lead 38659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038660|138660|989898|1|9999038660|MR|Test|E|Lead 38660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038661|138661|989898|1|9999038661|MR|Test|E|Lead 38661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038662|138662|989898|1|9999038662|MR|Test|E|Lead 38662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038663|138663|989898|1|9999038663|MR|Test|E|Lead 38663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038664|138664|989898|1|9999038664|MR|Test|E|Lead 38664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038665|138665|989898|1|9999038665|MR|Test|E|Lead 38665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038666|138666|989898|1|9999038666|MR|Test|E|Lead 38666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038667|138667|989898|1|9999038667|MR|Test|E|Lead 38667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038668|138668|989898|1|9999038668|MR|Test|E|Lead 38668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038669|138669|989898|1|9999038669|MR|Test|E|Lead 38669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038670|138670|989898|1|9999038670|MR|Test|E|Lead 38670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038671|138671|989898|1|9999038671|MR|Test|E|Lead 38671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038672|138672|989898|1|9999038672|MR|Test|E|Lead 38672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038673|138673|989898|1|9999038673|MR|Test|E|Lead 38673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038674|138674|989898|1|9999038674|MR|Test|E|Lead 38674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038675|138675|989898|1|9999038675|MR|Test|E|Lead 38675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038676|138676|989898|1|9999038676|MR|Test|E|Lead 38676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038677|138677|989898|1|9999038677|MR|Test|E|Lead 38677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038678|138678|989898|1|9999038678|MR|Test|E|Lead 38678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038679|138679|989898|1|9999038679|MR|Test|E|Lead 38679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038680|138680|989898|1|9999038680|MR|Test|E|Lead 38680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038681|138681|989898|1|9999038681|MR|Test|E|Lead 38681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038682|138682|989898|1|9999038682|MR|Test|E|Lead 38682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038683|138683|989898|1|9999038683|MR|Test|E|Lead 38683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038684|138684|989898|1|9999038684|MR|Test|E|Lead 38684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038685|138685|989898|1|9999038685|MR|Test|E|Lead 38685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038686|138686|989898|1|9999038686|MR|Test|E|Lead 38686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038687|138687|989898|1|9999038687|MR|Test|E|Lead 38687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038688|138688|989898|1|9999038688|MR|Test|E|Lead 38688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038689|138689|989898|1|9999038689|MR|Test|E|Lead 38689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038690|138690|989898|1|9999038690|MR|Test|E|Lead 38690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038691|138691|989898|1|9999038691|MR|Test|E|Lead 38691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038692|138692|989898|1|9999038692|MR|Test|E|Lead 38692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038693|138693|989898|1|9999038693|MR|Test|E|Lead 38693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038694|138694|989898|1|9999038694|MR|Test|E|Lead 38694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038695|138695|989898|1|9999038695|MR|Test|E|Lead 38695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038696|138696|989898|1|9999038696|MR|Test|E|Lead 38696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038697|138697|989898|1|9999038697|MR|Test|E|Lead 38697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038698|138698|989898|1|9999038698|MR|Test|E|Lead 38698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038699|138699|989898|1|9999038699|MR|Test|E|Lead 38699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038700|138700|989898|1|9999038700|MR|Test|E|Lead 38700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038701|138701|989898|1|9999038701|MR|Test|E|Lead 38701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038702|138702|989898|1|9999038702|MR|Test|E|Lead 38702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038703|138703|989898|1|9999038703|MR|Test|E|Lead 38703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038704|138704|989898|1|9999038704|MR|Test|E|Lead 38704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038705|138705|989898|1|9999038705|MR|Test|E|Lead 38705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038706|138706|989898|1|9999038706|MR|Test|E|Lead 38706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038707|138707|989898|1|9999038707|MR|Test|E|Lead 38707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038708|138708|989898|1|9999038708|MR|Test|E|Lead 38708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038709|138709|989898|1|9999038709|MR|Test|E|Lead 38709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038710|138710|989898|1|9999038710|MR|Test|E|Lead 38710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038711|138711|989898|1|9999038711|MR|Test|E|Lead 38711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038712|138712|989898|1|9999038712|MR|Test|E|Lead 38712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038713|138713|989898|1|9999038713|MR|Test|E|Lead 38713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038714|138714|989898|1|9999038714|MR|Test|E|Lead 38714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038715|138715|989898|1|9999038715|MR|Test|E|Lead 38715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038716|138716|989898|1|9999038716|MR|Test|E|Lead 38716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038717|138717|989898|1|9999038717|MR|Test|E|Lead 38717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038718|138718|989898|1|9999038718|MR|Test|E|Lead 38718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038719|138719|989898|1|9999038719|MR|Test|E|Lead 38719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038720|138720|989898|1|9999038720|MR|Test|E|Lead 38720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038721|138721|989898|1|9999038721|MR|Test|E|Lead 38721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038722|138722|989898|1|9999038722|MR|Test|E|Lead 38722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038723|138723|989898|1|9999038723|MR|Test|E|Lead 38723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038724|138724|989898|1|9999038724|MR|Test|E|Lead 38724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038725|138725|989898|1|9999038725|MR|Test|E|Lead 38725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038726|138726|989898|1|9999038726|MR|Test|E|Lead 38726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038727|138727|989898|1|9999038727|MR|Test|E|Lead 38727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038728|138728|989898|1|9999038728|MR|Test|E|Lead 38728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038729|138729|989898|1|9999038729|MR|Test|E|Lead 38729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038730|138730|989898|1|9999038730|MR|Test|E|Lead 38730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038731|138731|989898|1|9999038731|MR|Test|E|Lead 38731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038732|138732|989898|1|9999038732|MR|Test|E|Lead 38732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038733|138733|989898|1|9999038733|MR|Test|E|Lead 38733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038734|138734|989898|1|9999038734|MR|Test|E|Lead 38734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038735|138735|989898|1|9999038735|MR|Test|E|Lead 38735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038736|138736|989898|1|9999038736|MR|Test|E|Lead 38736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038737|138737|989898|1|9999038737|MR|Test|E|Lead 38737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038738|138738|989898|1|9999038738|MR|Test|E|Lead 38738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038739|138739|989898|1|9999038739|MR|Test|E|Lead 38739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038740|138740|989898|1|9999038740|MR|Test|E|Lead 38740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038741|138741|989898|1|9999038741|MR|Test|E|Lead 38741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038742|138742|989898|1|9999038742|MR|Test|E|Lead 38742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038743|138743|989898|1|9999038743|MR|Test|E|Lead 38743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038744|138744|989898|1|9999038744|MR|Test|E|Lead 38744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038745|138745|989898|1|9999038745|MR|Test|E|Lead 38745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038746|138746|989898|1|9999038746|MR|Test|E|Lead 38746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038747|138747|989898|1|9999038747|MR|Test|E|Lead 38747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038748|138748|989898|1|9999038748|MR|Test|E|Lead 38748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038749|138749|989898|1|9999038749|MR|Test|E|Lead 38749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038750|138750|989898|1|9999038750|MR|Test|E|Lead 38750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038751|138751|989898|1|9999038751|MR|Test|E|Lead 38751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038752|138752|989898|1|9999038752|MR|Test|E|Lead 38752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038753|138753|989898|1|9999038753|MR|Test|E|Lead 38753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038754|138754|989898|1|9999038754|MR|Test|E|Lead 38754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038755|138755|989898|1|9999038755|MR|Test|E|Lead 38755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038756|138756|989898|1|9999038756|MR|Test|E|Lead 38756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038757|138757|989898|1|9999038757|MR|Test|E|Lead 38757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038758|138758|989898|1|9999038758|MR|Test|E|Lead 38758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038759|138759|989898|1|9999038759|MR|Test|E|Lead 38759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038760|138760|989898|1|9999038760|MR|Test|E|Lead 38760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038761|138761|989898|1|9999038761|MR|Test|E|Lead 38761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038762|138762|989898|1|9999038762|MR|Test|E|Lead 38762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038763|138763|989898|1|9999038763|MR|Test|E|Lead 38763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038764|138764|989898|1|9999038764|MR|Test|E|Lead 38764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038765|138765|989898|1|9999038765|MR|Test|E|Lead 38765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038766|138766|989898|1|9999038766|MR|Test|E|Lead 38766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038767|138767|989898|1|9999038767|MR|Test|E|Lead 38767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038768|138768|989898|1|9999038768|MR|Test|E|Lead 38768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038769|138769|989898|1|9999038769|MR|Test|E|Lead 38769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038770|138770|989898|1|9999038770|MR|Test|E|Lead 38770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038771|138771|989898|1|9999038771|MR|Test|E|Lead 38771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038772|138772|989898|1|9999038772|MR|Test|E|Lead 38772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038773|138773|989898|1|9999038773|MR|Test|E|Lead 38773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038774|138774|989898|1|9999038774|MR|Test|E|Lead 38774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038775|138775|989898|1|9999038775|MR|Test|E|Lead 38775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038776|138776|989898|1|9999038776|MR|Test|E|Lead 38776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038777|138777|989898|1|9999038777|MR|Test|E|Lead 38777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038778|138778|989898|1|9999038778|MR|Test|E|Lead 38778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038779|138779|989898|1|9999038779|MR|Test|E|Lead 38779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038780|138780|989898|1|9999038780|MR|Test|E|Lead 38780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038781|138781|989898|1|9999038781|MR|Test|E|Lead 38781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038782|138782|989898|1|9999038782|MR|Test|E|Lead 38782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038783|138783|989898|1|9999038783|MR|Test|E|Lead 38783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038784|138784|989898|1|9999038784|MR|Test|E|Lead 38784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038785|138785|989898|1|9999038785|MR|Test|E|Lead 38785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038786|138786|989898|1|9999038786|MR|Test|E|Lead 38786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038787|138787|989898|1|9999038787|MR|Test|E|Lead 38787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038788|138788|989898|1|9999038788|MR|Test|E|Lead 38788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038789|138789|989898|1|9999038789|MR|Test|E|Lead 38789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038790|138790|989898|1|9999038790|MR|Test|E|Lead 38790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038791|138791|989898|1|9999038791|MR|Test|E|Lead 38791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038792|138792|989898|1|9999038792|MR|Test|E|Lead 38792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038793|138793|989898|1|9999038793|MR|Test|E|Lead 38793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038794|138794|989898|1|9999038794|MR|Test|E|Lead 38794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038795|138795|989898|1|9999038795|MR|Test|E|Lead 38795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038796|138796|989898|1|9999038796|MR|Test|E|Lead 38796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038797|138797|989898|1|9999038797|MR|Test|E|Lead 38797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038798|138798|989898|1|9999038798|MR|Test|E|Lead 38798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038799|138799|989898|1|9999038799|MR|Test|E|Lead 38799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038800|138800|989898|1|9999038800|MR|Test|E|Lead 38800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038801|138801|989898|1|9999038801|MR|Test|E|Lead 38801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038802|138802|989898|1|9999038802|MR|Test|E|Lead 38802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038803|138803|989898|1|9999038803|MR|Test|E|Lead 38803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038804|138804|989898|1|9999038804|MR|Test|E|Lead 38804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038805|138805|989898|1|9999038805|MR|Test|E|Lead 38805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038806|138806|989898|1|9999038806|MR|Test|E|Lead 38806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038807|138807|989898|1|9999038807|MR|Test|E|Lead 38807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038808|138808|989898|1|9999038808|MR|Test|E|Lead 38808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038809|138809|989898|1|9999038809|MR|Test|E|Lead 38809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038810|138810|989898|1|9999038810|MR|Test|E|Lead 38810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038811|138811|989898|1|9999038811|MR|Test|E|Lead 38811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038812|138812|989898|1|9999038812|MR|Test|E|Lead 38812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038813|138813|989898|1|9999038813|MR|Test|E|Lead 38813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038814|138814|989898|1|9999038814|MR|Test|E|Lead 38814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038815|138815|989898|1|9999038815|MR|Test|E|Lead 38815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038816|138816|989898|1|9999038816|MR|Test|E|Lead 38816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038817|138817|989898|1|9999038817|MR|Test|E|Lead 38817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038818|138818|989898|1|9999038818|MR|Test|E|Lead 38818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038819|138819|989898|1|9999038819|MR|Test|E|Lead 38819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038820|138820|989898|1|9999038820|MR|Test|E|Lead 38820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038821|138821|989898|1|9999038821|MR|Test|E|Lead 38821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038822|138822|989898|1|9999038822|MR|Test|E|Lead 38822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038823|138823|989898|1|9999038823|MR|Test|E|Lead 38823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038824|138824|989898|1|9999038824|MR|Test|E|Lead 38824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038825|138825|989898|1|9999038825|MR|Test|E|Lead 38825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038826|138826|989898|1|9999038826|MR|Test|E|Lead 38826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038827|138827|989898|1|9999038827|MR|Test|E|Lead 38827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038828|138828|989898|1|9999038828|MR|Test|E|Lead 38828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038829|138829|989898|1|9999038829|MR|Test|E|Lead 38829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038830|138830|989898|1|9999038830|MR|Test|E|Lead 38830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038831|138831|989898|1|9999038831|MR|Test|E|Lead 38831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038832|138832|989898|1|9999038832|MR|Test|E|Lead 38832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038833|138833|989898|1|9999038833|MR|Test|E|Lead 38833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038834|138834|989898|1|9999038834|MR|Test|E|Lead 38834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038835|138835|989898|1|9999038835|MR|Test|E|Lead 38835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038836|138836|989898|1|9999038836|MR|Test|E|Lead 38836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038837|138837|989898|1|9999038837|MR|Test|E|Lead 38837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038838|138838|989898|1|9999038838|MR|Test|E|Lead 38838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038839|138839|989898|1|9999038839|MR|Test|E|Lead 38839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038840|138840|989898|1|9999038840|MR|Test|E|Lead 38840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038841|138841|989898|1|9999038841|MR|Test|E|Lead 38841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038842|138842|989898|1|9999038842|MR|Test|E|Lead 38842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038843|138843|989898|1|9999038843|MR|Test|E|Lead 38843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038844|138844|989898|1|9999038844|MR|Test|E|Lead 38844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038845|138845|989898|1|9999038845|MR|Test|E|Lead 38845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038846|138846|989898|1|9999038846|MR|Test|E|Lead 38846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038847|138847|989898|1|9999038847|MR|Test|E|Lead 38847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038848|138848|989898|1|9999038848|MR|Test|E|Lead 38848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038849|138849|989898|1|9999038849|MR|Test|E|Lead 38849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038850|138850|989898|1|9999038850|MR|Test|E|Lead 38850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038851|138851|989898|1|9999038851|MR|Test|E|Lead 38851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038852|138852|989898|1|9999038852|MR|Test|E|Lead 38852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038853|138853|989898|1|9999038853|MR|Test|E|Lead 38853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038854|138854|989898|1|9999038854|MR|Test|E|Lead 38854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038855|138855|989898|1|9999038855|MR|Test|E|Lead 38855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038856|138856|989898|1|9999038856|MR|Test|E|Lead 38856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038857|138857|989898|1|9999038857|MR|Test|E|Lead 38857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038858|138858|989898|1|9999038858|MR|Test|E|Lead 38858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038859|138859|989898|1|9999038859|MR|Test|E|Lead 38859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038860|138860|989898|1|9999038860|MR|Test|E|Lead 38860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038861|138861|989898|1|9999038861|MR|Test|E|Lead 38861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038862|138862|989898|1|9999038862|MR|Test|E|Lead 38862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038863|138863|989898|1|9999038863|MR|Test|E|Lead 38863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038864|138864|989898|1|9999038864|MR|Test|E|Lead 38864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038865|138865|989898|1|9999038865|MR|Test|E|Lead 38865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038866|138866|989898|1|9999038866|MR|Test|E|Lead 38866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038867|138867|989898|1|9999038867|MR|Test|E|Lead 38867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038868|138868|989898|1|9999038868|MR|Test|E|Lead 38868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038869|138869|989898|1|9999038869|MR|Test|E|Lead 38869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038870|138870|989898|1|9999038870|MR|Test|E|Lead 38870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038871|138871|989898|1|9999038871|MR|Test|E|Lead 38871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038872|138872|989898|1|9999038872|MR|Test|E|Lead 38872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038873|138873|989898|1|9999038873|MR|Test|E|Lead 38873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038874|138874|989898|1|9999038874|MR|Test|E|Lead 38874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038875|138875|989898|1|9999038875|MR|Test|E|Lead 38875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038876|138876|989898|1|9999038876|MR|Test|E|Lead 38876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038877|138877|989898|1|9999038877|MR|Test|E|Lead 38877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038878|138878|989898|1|9999038878|MR|Test|E|Lead 38878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038879|138879|989898|1|9999038879|MR|Test|E|Lead 38879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038880|138880|989898|1|9999038880|MR|Test|E|Lead 38880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038881|138881|989898|1|9999038881|MR|Test|E|Lead 38881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038882|138882|989898|1|9999038882|MR|Test|E|Lead 38882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038883|138883|989898|1|9999038883|MR|Test|E|Lead 38883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038884|138884|989898|1|9999038884|MR|Test|E|Lead 38884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038885|138885|989898|1|9999038885|MR|Test|E|Lead 38885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038886|138886|989898|1|9999038886|MR|Test|E|Lead 38886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038887|138887|989898|1|9999038887|MR|Test|E|Lead 38887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038888|138888|989898|1|9999038888|MR|Test|E|Lead 38888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038889|138889|989898|1|9999038889|MR|Test|E|Lead 38889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038890|138890|989898|1|9999038890|MR|Test|E|Lead 38890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038891|138891|989898|1|9999038891|MR|Test|E|Lead 38891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038892|138892|989898|1|9999038892|MR|Test|E|Lead 38892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038893|138893|989898|1|9999038893|MR|Test|E|Lead 38893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038894|138894|989898|1|9999038894|MR|Test|E|Lead 38894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038895|138895|989898|1|9999038895|MR|Test|E|Lead 38895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038896|138896|989898|1|9999038896|MR|Test|E|Lead 38896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038897|138897|989898|1|9999038897|MR|Test|E|Lead 38897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038898|138898|989898|1|9999038898|MR|Test|E|Lead 38898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038899|138899|989898|1|9999038899|MR|Test|E|Lead 38899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038900|138900|989898|1|9999038900|MR|Test|E|Lead 38900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038901|138901|989898|1|9999038901|MR|Test|E|Lead 38901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038902|138902|989898|1|9999038902|MR|Test|E|Lead 38902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038903|138903|989898|1|9999038903|MR|Test|E|Lead 38903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038904|138904|989898|1|9999038904|MR|Test|E|Lead 38904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038905|138905|989898|1|9999038905|MR|Test|E|Lead 38905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038906|138906|989898|1|9999038906|MR|Test|E|Lead 38906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038907|138907|989898|1|9999038907|MR|Test|E|Lead 38907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038908|138908|989898|1|9999038908|MR|Test|E|Lead 38908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038909|138909|989898|1|9999038909|MR|Test|E|Lead 38909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038910|138910|989898|1|9999038910|MR|Test|E|Lead 38910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038911|138911|989898|1|9999038911|MR|Test|E|Lead 38911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038912|138912|989898|1|9999038912|MR|Test|E|Lead 38912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038913|138913|989898|1|9999038913|MR|Test|E|Lead 38913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038914|138914|989898|1|9999038914|MR|Test|E|Lead 38914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038915|138915|989898|1|9999038915|MR|Test|E|Lead 38915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038916|138916|989898|1|9999038916|MR|Test|E|Lead 38916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038917|138917|989898|1|9999038917|MR|Test|E|Lead 38917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038918|138918|989898|1|9999038918|MR|Test|E|Lead 38918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038919|138919|989898|1|9999038919|MR|Test|E|Lead 38919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038920|138920|989898|1|9999038920|MR|Test|E|Lead 38920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038921|138921|989898|1|9999038921|MR|Test|E|Lead 38921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038922|138922|989898|1|9999038922|MR|Test|E|Lead 38922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038923|138923|989898|1|9999038923|MR|Test|E|Lead 38923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038924|138924|989898|1|9999038924|MR|Test|E|Lead 38924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038925|138925|989898|1|9999038925|MR|Test|E|Lead 38925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038926|138926|989898|1|9999038926|MR|Test|E|Lead 38926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038927|138927|989898|1|9999038927|MR|Test|E|Lead 38927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038928|138928|989898|1|9999038928|MR|Test|E|Lead 38928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038929|138929|989898|1|9999038929|MR|Test|E|Lead 38929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038930|138930|989898|1|9999038930|MR|Test|E|Lead 38930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038931|138931|989898|1|9999038931|MR|Test|E|Lead 38931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038932|138932|989898|1|9999038932|MR|Test|E|Lead 38932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038933|138933|989898|1|9999038933|MR|Test|E|Lead 38933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038934|138934|989898|1|9999038934|MR|Test|E|Lead 38934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038935|138935|989898|1|9999038935|MR|Test|E|Lead 38935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038936|138936|989898|1|9999038936|MR|Test|E|Lead 38936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038937|138937|989898|1|9999038937|MR|Test|E|Lead 38937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038938|138938|989898|1|9999038938|MR|Test|E|Lead 38938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038939|138939|989898|1|9999038939|MR|Test|E|Lead 38939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038940|138940|989898|1|9999038940|MR|Test|E|Lead 38940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038941|138941|989898|1|9999038941|MR|Test|E|Lead 38941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038942|138942|989898|1|9999038942|MR|Test|E|Lead 38942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038943|138943|989898|1|9999038943|MR|Test|E|Lead 38943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038944|138944|989898|1|9999038944|MR|Test|E|Lead 38944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038945|138945|989898|1|9999038945|MR|Test|E|Lead 38945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038946|138946|989898|1|9999038946|MR|Test|E|Lead 38946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038947|138947|989898|1|9999038947|MR|Test|E|Lead 38947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038948|138948|989898|1|9999038948|MR|Test|E|Lead 38948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038949|138949|989898|1|9999038949|MR|Test|E|Lead 38949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038950|138950|989898|1|9999038950|MR|Test|E|Lead 38950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038951|138951|989898|1|9999038951|MR|Test|E|Lead 38951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038952|138952|989898|1|9999038952|MR|Test|E|Lead 38952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038953|138953|989898|1|9999038953|MR|Test|E|Lead 38953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038954|138954|989898|1|9999038954|MR|Test|E|Lead 38954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038955|138955|989898|1|9999038955|MR|Test|E|Lead 38955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038956|138956|989898|1|9999038956|MR|Test|E|Lead 38956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038957|138957|989898|1|9999038957|MR|Test|E|Lead 38957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038958|138958|989898|1|9999038958|MR|Test|E|Lead 38958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038959|138959|989898|1|9999038959|MR|Test|E|Lead 38959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038960|138960|989898|1|9999038960|MR|Test|E|Lead 38960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038961|138961|989898|1|9999038961|MR|Test|E|Lead 38961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038962|138962|989898|1|9999038962|MR|Test|E|Lead 38962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038963|138963|989898|1|9999038963|MR|Test|E|Lead 38963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038964|138964|989898|1|9999038964|MR|Test|E|Lead 38964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038965|138965|989898|1|9999038965|MR|Test|E|Lead 38965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038966|138966|989898|1|9999038966|MR|Test|E|Lead 38966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038967|138967|989898|1|9999038967|MR|Test|E|Lead 38967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038968|138968|989898|1|9999038968|MR|Test|E|Lead 38968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038969|138969|989898|1|9999038969|MR|Test|E|Lead 38969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038970|138970|989898|1|9999038970|MR|Test|E|Lead 38970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038971|138971|989898|1|9999038971|MR|Test|E|Lead 38971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038972|138972|989898|1|9999038972|MR|Test|E|Lead 38972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038973|138973|989898|1|9999038973|MR|Test|E|Lead 38973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038974|138974|989898|1|9999038974|MR|Test|E|Lead 38974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038975|138975|989898|1|9999038975|MR|Test|E|Lead 38975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038976|138976|989898|1|9999038976|MR|Test|E|Lead 38976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038977|138977|989898|1|9999038977|MR|Test|E|Lead 38977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038978|138978|989898|1|9999038978|MR|Test|E|Lead 38978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038979|138979|989898|1|9999038979|MR|Test|E|Lead 38979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038980|138980|989898|1|9999038980|MR|Test|E|Lead 38980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038981|138981|989898|1|9999038981|MR|Test|E|Lead 38981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038982|138982|989898|1|9999038982|MR|Test|E|Lead 38982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038983|138983|989898|1|9999038983|MR|Test|E|Lead 38983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038984|138984|989898|1|9999038984|MR|Test|E|Lead 38984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038985|138985|989898|1|9999038985|MR|Test|E|Lead 38985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038986|138986|989898|1|9999038986|MR|Test|E|Lead 38986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038987|138987|989898|1|9999038987|MR|Test|E|Lead 38987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038988|138988|989898|1|9999038988|MR|Test|E|Lead 38988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038989|138989|989898|1|9999038989|MR|Test|E|Lead 38989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038990|138990|989898|1|9999038990|MR|Test|E|Lead 38990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038991|138991|989898|1|9999038991|MR|Test|E|Lead 38991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038992|138992|989898|1|9999038992|MR|Test|E|Lead 38992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038993|138993|989898|1|9999038993|MR|Test|E|Lead 38993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038994|138994|989898|1|9999038994|MR|Test|E|Lead 38994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038995|138995|989898|1|9999038995|MR|Test|E|Lead 38995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038996|138996|989898|1|9999038996|MR|Test|E|Lead 38996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038997|138997|989898|1|9999038997|MR|Test|E|Lead 38997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038998|138998|989898|1|9999038998|MR|Test|E|Lead 38998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1038999|138999|989898|1|9999038999|MR|Test|E|Lead 38999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039000|139000|989898|1|9999039000|MR|Test|E|Lead 39000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039001|139001|989898|1|9999039001|MR|Test|E|Lead 39001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039002|139002|989898|1|9999039002|MR|Test|E|Lead 39002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039003|139003|989898|1|9999039003|MR|Test|E|Lead 39003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039004|139004|989898|1|9999039004|MR|Test|E|Lead 39004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039005|139005|989898|1|9999039005|MR|Test|E|Lead 39005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039006|139006|989898|1|9999039006|MR|Test|E|Lead 39006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039007|139007|989898|1|9999039007|MR|Test|E|Lead 39007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039008|139008|989898|1|9999039008|MR|Test|E|Lead 39008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039009|139009|989898|1|9999039009|MR|Test|E|Lead 39009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039010|139010|989898|1|9999039010|MR|Test|E|Lead 39010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039011|139011|989898|1|9999039011|MR|Test|E|Lead 39011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039012|139012|989898|1|9999039012|MR|Test|E|Lead 39012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039013|139013|989898|1|9999039013|MR|Test|E|Lead 39013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039014|139014|989898|1|9999039014|MR|Test|E|Lead 39014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039015|139015|989898|1|9999039015|MR|Test|E|Lead 39015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039016|139016|989898|1|9999039016|MR|Test|E|Lead 39016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039017|139017|989898|1|9999039017|MR|Test|E|Lead 39017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039018|139018|989898|1|9999039018|MR|Test|E|Lead 39018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039019|139019|989898|1|9999039019|MR|Test|E|Lead 39019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039020|139020|989898|1|9999039020|MR|Test|E|Lead 39020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039021|139021|989898|1|9999039021|MR|Test|E|Lead 39021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039022|139022|989898|1|9999039022|MR|Test|E|Lead 39022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039023|139023|989898|1|9999039023|MR|Test|E|Lead 39023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039024|139024|989898|1|9999039024|MR|Test|E|Lead 39024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039025|139025|989898|1|9999039025|MR|Test|E|Lead 39025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039026|139026|989898|1|9999039026|MR|Test|E|Lead 39026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039027|139027|989898|1|9999039027|MR|Test|E|Lead 39027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039028|139028|989898|1|9999039028|MR|Test|E|Lead 39028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039029|139029|989898|1|9999039029|MR|Test|E|Lead 39029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039030|139030|989898|1|9999039030|MR|Test|E|Lead 39030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039031|139031|989898|1|9999039031|MR|Test|E|Lead 39031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039032|139032|989898|1|9999039032|MR|Test|E|Lead 39032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039033|139033|989898|1|9999039033|MR|Test|E|Lead 39033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039034|139034|989898|1|9999039034|MR|Test|E|Lead 39034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039035|139035|989898|1|9999039035|MR|Test|E|Lead 39035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039036|139036|989898|1|9999039036|MR|Test|E|Lead 39036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039037|139037|989898|1|9999039037|MR|Test|E|Lead 39037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039038|139038|989898|1|9999039038|MR|Test|E|Lead 39038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039039|139039|989898|1|9999039039|MR|Test|E|Lead 39039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039040|139040|989898|1|9999039040|MR|Test|E|Lead 39040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039041|139041|989898|1|9999039041|MR|Test|E|Lead 39041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039042|139042|989898|1|9999039042|MR|Test|E|Lead 39042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039043|139043|989898|1|9999039043|MR|Test|E|Lead 39043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039044|139044|989898|1|9999039044|MR|Test|E|Lead 39044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039045|139045|989898|1|9999039045|MR|Test|E|Lead 39045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039046|139046|989898|1|9999039046|MR|Test|E|Lead 39046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039047|139047|989898|1|9999039047|MR|Test|E|Lead 39047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039048|139048|989898|1|9999039048|MR|Test|E|Lead 39048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039049|139049|989898|1|9999039049|MR|Test|E|Lead 39049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039050|139050|989898|1|9999039050|MR|Test|E|Lead 39050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039051|139051|989898|1|9999039051|MR|Test|E|Lead 39051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039052|139052|989898|1|9999039052|MR|Test|E|Lead 39052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039053|139053|989898|1|9999039053|MR|Test|E|Lead 39053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039054|139054|989898|1|9999039054|MR|Test|E|Lead 39054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039055|139055|989898|1|9999039055|MR|Test|E|Lead 39055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039056|139056|989898|1|9999039056|MR|Test|E|Lead 39056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039057|139057|989898|1|9999039057|MR|Test|E|Lead 39057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039058|139058|989898|1|9999039058|MR|Test|E|Lead 39058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039059|139059|989898|1|9999039059|MR|Test|E|Lead 39059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039060|139060|989898|1|9999039060|MR|Test|E|Lead 39060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039061|139061|989898|1|9999039061|MR|Test|E|Lead 39061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039062|139062|989898|1|9999039062|MR|Test|E|Lead 39062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039063|139063|989898|1|9999039063|MR|Test|E|Lead 39063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039064|139064|989898|1|9999039064|MR|Test|E|Lead 39064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039065|139065|989898|1|9999039065|MR|Test|E|Lead 39065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039066|139066|989898|1|9999039066|MR|Test|E|Lead 39066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039067|139067|989898|1|9999039067|MR|Test|E|Lead 39067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039068|139068|989898|1|9999039068|MR|Test|E|Lead 39068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039069|139069|989898|1|9999039069|MR|Test|E|Lead 39069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039070|139070|989898|1|9999039070|MR|Test|E|Lead 39070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039071|139071|989898|1|9999039071|MR|Test|E|Lead 39071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039072|139072|989898|1|9999039072|MR|Test|E|Lead 39072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039073|139073|989898|1|9999039073|MR|Test|E|Lead 39073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039074|139074|989898|1|9999039074|MR|Test|E|Lead 39074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039075|139075|989898|1|9999039075|MR|Test|E|Lead 39075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039076|139076|989898|1|9999039076|MR|Test|E|Lead 39076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039077|139077|989898|1|9999039077|MR|Test|E|Lead 39077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039078|139078|989898|1|9999039078|MR|Test|E|Lead 39078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039079|139079|989898|1|9999039079|MR|Test|E|Lead 39079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039080|139080|989898|1|9999039080|MR|Test|E|Lead 39080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039081|139081|989898|1|9999039081|MR|Test|E|Lead 39081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039082|139082|989898|1|9999039082|MR|Test|E|Lead 39082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039083|139083|989898|1|9999039083|MR|Test|E|Lead 39083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039084|139084|989898|1|9999039084|MR|Test|E|Lead 39084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039085|139085|989898|1|9999039085|MR|Test|E|Lead 39085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039086|139086|989898|1|9999039086|MR|Test|E|Lead 39086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039087|139087|989898|1|9999039087|MR|Test|E|Lead 39087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039088|139088|989898|1|9999039088|MR|Test|E|Lead 39088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039089|139089|989898|1|9999039089|MR|Test|E|Lead 39089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039090|139090|989898|1|9999039090|MR|Test|E|Lead 39090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039091|139091|989898|1|9999039091|MR|Test|E|Lead 39091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039092|139092|989898|1|9999039092|MR|Test|E|Lead 39092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039093|139093|989898|1|9999039093|MR|Test|E|Lead 39093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039094|139094|989898|1|9999039094|MR|Test|E|Lead 39094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039095|139095|989898|1|9999039095|MR|Test|E|Lead 39095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039096|139096|989898|1|9999039096|MR|Test|E|Lead 39096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039097|139097|989898|1|9999039097|MR|Test|E|Lead 39097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039098|139098|989898|1|9999039098|MR|Test|E|Lead 39098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039099|139099|989898|1|9999039099|MR|Test|E|Lead 39099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039100|139100|989898|1|9999039100|MR|Test|E|Lead 39100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039101|139101|989898|1|9999039101|MR|Test|E|Lead 39101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039102|139102|989898|1|9999039102|MR|Test|E|Lead 39102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039103|139103|989898|1|9999039103|MR|Test|E|Lead 39103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039104|139104|989898|1|9999039104|MR|Test|E|Lead 39104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039105|139105|989898|1|9999039105|MR|Test|E|Lead 39105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039106|139106|989898|1|9999039106|MR|Test|E|Lead 39106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039107|139107|989898|1|9999039107|MR|Test|E|Lead 39107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039108|139108|989898|1|9999039108|MR|Test|E|Lead 39108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039109|139109|989898|1|9999039109|MR|Test|E|Lead 39109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039110|139110|989898|1|9999039110|MR|Test|E|Lead 39110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039111|139111|989898|1|9999039111|MR|Test|E|Lead 39111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039112|139112|989898|1|9999039112|MR|Test|E|Lead 39112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039113|139113|989898|1|9999039113|MR|Test|E|Lead 39113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039114|139114|989898|1|9999039114|MR|Test|E|Lead 39114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039115|139115|989898|1|9999039115|MR|Test|E|Lead 39115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039116|139116|989898|1|9999039116|MR|Test|E|Lead 39116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039117|139117|989898|1|9999039117|MR|Test|E|Lead 39117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039118|139118|989898|1|9999039118|MR|Test|E|Lead 39118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039119|139119|989898|1|9999039119|MR|Test|E|Lead 39119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039120|139120|989898|1|9999039120|MR|Test|E|Lead 39120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039121|139121|989898|1|9999039121|MR|Test|E|Lead 39121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039122|139122|989898|1|9999039122|MR|Test|E|Lead 39122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039123|139123|989898|1|9999039123|MR|Test|E|Lead 39123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039124|139124|989898|1|9999039124|MR|Test|E|Lead 39124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039125|139125|989898|1|9999039125|MR|Test|E|Lead 39125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039126|139126|989898|1|9999039126|MR|Test|E|Lead 39126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039127|139127|989898|1|9999039127|MR|Test|E|Lead 39127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039128|139128|989898|1|9999039128|MR|Test|E|Lead 39128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039129|139129|989898|1|9999039129|MR|Test|E|Lead 39129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039130|139130|989898|1|9999039130|MR|Test|E|Lead 39130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039131|139131|989898|1|9999039131|MR|Test|E|Lead 39131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039132|139132|989898|1|9999039132|MR|Test|E|Lead 39132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039133|139133|989898|1|9999039133|MR|Test|E|Lead 39133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039134|139134|989898|1|9999039134|MR|Test|E|Lead 39134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039135|139135|989898|1|9999039135|MR|Test|E|Lead 39135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039136|139136|989898|1|9999039136|MR|Test|E|Lead 39136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039137|139137|989898|1|9999039137|MR|Test|E|Lead 39137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039138|139138|989898|1|9999039138|MR|Test|E|Lead 39138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039139|139139|989898|1|9999039139|MR|Test|E|Lead 39139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039140|139140|989898|1|9999039140|MR|Test|E|Lead 39140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039141|139141|989898|1|9999039141|MR|Test|E|Lead 39141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039142|139142|989898|1|9999039142|MR|Test|E|Lead 39142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039143|139143|989898|1|9999039143|MR|Test|E|Lead 39143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039144|139144|989898|1|9999039144|MR|Test|E|Lead 39144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039145|139145|989898|1|9999039145|MR|Test|E|Lead 39145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039146|139146|989898|1|9999039146|MR|Test|E|Lead 39146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039147|139147|989898|1|9999039147|MR|Test|E|Lead 39147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039148|139148|989898|1|9999039148|MR|Test|E|Lead 39148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039149|139149|989898|1|9999039149|MR|Test|E|Lead 39149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039150|139150|989898|1|9999039150|MR|Test|E|Lead 39150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039151|139151|989898|1|9999039151|MR|Test|E|Lead 39151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039152|139152|989898|1|9999039152|MR|Test|E|Lead 39152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039153|139153|989898|1|9999039153|MR|Test|E|Lead 39153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039154|139154|989898|1|9999039154|MR|Test|E|Lead 39154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039155|139155|989898|1|9999039155|MR|Test|E|Lead 39155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039156|139156|989898|1|9999039156|MR|Test|E|Lead 39156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039157|139157|989898|1|9999039157|MR|Test|E|Lead 39157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039158|139158|989898|1|9999039158|MR|Test|E|Lead 39158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039159|139159|989898|1|9999039159|MR|Test|E|Lead 39159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039160|139160|989898|1|9999039160|MR|Test|E|Lead 39160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039161|139161|989898|1|9999039161|MR|Test|E|Lead 39161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039162|139162|989898|1|9999039162|MR|Test|E|Lead 39162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039163|139163|989898|1|9999039163|MR|Test|E|Lead 39163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039164|139164|989898|1|9999039164|MR|Test|E|Lead 39164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039165|139165|989898|1|9999039165|MR|Test|E|Lead 39165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039166|139166|989898|1|9999039166|MR|Test|E|Lead 39166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039167|139167|989898|1|9999039167|MR|Test|E|Lead 39167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039168|139168|989898|1|9999039168|MR|Test|E|Lead 39168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039169|139169|989898|1|9999039169|MR|Test|E|Lead 39169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039170|139170|989898|1|9999039170|MR|Test|E|Lead 39170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039171|139171|989898|1|9999039171|MR|Test|E|Lead 39171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039172|139172|989898|1|9999039172|MR|Test|E|Lead 39172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039173|139173|989898|1|9999039173|MR|Test|E|Lead 39173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039174|139174|989898|1|9999039174|MR|Test|E|Lead 39174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039175|139175|989898|1|9999039175|MR|Test|E|Lead 39175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039176|139176|989898|1|9999039176|MR|Test|E|Lead 39176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039177|139177|989898|1|9999039177|MR|Test|E|Lead 39177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039178|139178|989898|1|9999039178|MR|Test|E|Lead 39178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039179|139179|989898|1|9999039179|MR|Test|E|Lead 39179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039180|139180|989898|1|9999039180|MR|Test|E|Lead 39180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039181|139181|989898|1|9999039181|MR|Test|E|Lead 39181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039182|139182|989898|1|9999039182|MR|Test|E|Lead 39182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039183|139183|989898|1|9999039183|MR|Test|E|Lead 39183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039184|139184|989898|1|9999039184|MR|Test|E|Lead 39184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039185|139185|989898|1|9999039185|MR|Test|E|Lead 39185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039186|139186|989898|1|9999039186|MR|Test|E|Lead 39186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039187|139187|989898|1|9999039187|MR|Test|E|Lead 39187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039188|139188|989898|1|9999039188|MR|Test|E|Lead 39188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039189|139189|989898|1|9999039189|MR|Test|E|Lead 39189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039190|139190|989898|1|9999039190|MR|Test|E|Lead 39190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039191|139191|989898|1|9999039191|MR|Test|E|Lead 39191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039192|139192|989898|1|9999039192|MR|Test|E|Lead 39192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039193|139193|989898|1|9999039193|MR|Test|E|Lead 39193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039194|139194|989898|1|9999039194|MR|Test|E|Lead 39194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039195|139195|989898|1|9999039195|MR|Test|E|Lead 39195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039196|139196|989898|1|9999039196|MR|Test|E|Lead 39196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039197|139197|989898|1|9999039197|MR|Test|E|Lead 39197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039198|139198|989898|1|9999039198|MR|Test|E|Lead 39198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039199|139199|989898|1|9999039199|MR|Test|E|Lead 39199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039200|139200|989898|1|9999039200|MR|Test|E|Lead 39200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039201|139201|989898|1|9999039201|MR|Test|E|Lead 39201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039202|139202|989898|1|9999039202|MR|Test|E|Lead 39202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039203|139203|989898|1|9999039203|MR|Test|E|Lead 39203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039204|139204|989898|1|9999039204|MR|Test|E|Lead 39204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039205|139205|989898|1|9999039205|MR|Test|E|Lead 39205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039206|139206|989898|1|9999039206|MR|Test|E|Lead 39206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039207|139207|989898|1|9999039207|MR|Test|E|Lead 39207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039208|139208|989898|1|9999039208|MR|Test|E|Lead 39208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039209|139209|989898|1|9999039209|MR|Test|E|Lead 39209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039210|139210|989898|1|9999039210|MR|Test|E|Lead 39210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039211|139211|989898|1|9999039211|MR|Test|E|Lead 39211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039212|139212|989898|1|9999039212|MR|Test|E|Lead 39212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039213|139213|989898|1|9999039213|MR|Test|E|Lead 39213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039214|139214|989898|1|9999039214|MR|Test|E|Lead 39214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039215|139215|989898|1|9999039215|MR|Test|E|Lead 39215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039216|139216|989898|1|9999039216|MR|Test|E|Lead 39216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039217|139217|989898|1|9999039217|MR|Test|E|Lead 39217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039218|139218|989898|1|9999039218|MR|Test|E|Lead 39218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039219|139219|989898|1|9999039219|MR|Test|E|Lead 39219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039220|139220|989898|1|9999039220|MR|Test|E|Lead 39220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039221|139221|989898|1|9999039221|MR|Test|E|Lead 39221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039222|139222|989898|1|9999039222|MR|Test|E|Lead 39222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039223|139223|989898|1|9999039223|MR|Test|E|Lead 39223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039224|139224|989898|1|9999039224|MR|Test|E|Lead 39224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039225|139225|989898|1|9999039225|MR|Test|E|Lead 39225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039226|139226|989898|1|9999039226|MR|Test|E|Lead 39226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039227|139227|989898|1|9999039227|MR|Test|E|Lead 39227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039228|139228|989898|1|9999039228|MR|Test|E|Lead 39228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039229|139229|989898|1|9999039229|MR|Test|E|Lead 39229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039230|139230|989898|1|9999039230|MR|Test|E|Lead 39230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039231|139231|989898|1|9999039231|MR|Test|E|Lead 39231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039232|139232|989898|1|9999039232|MR|Test|E|Lead 39232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039233|139233|989898|1|9999039233|MR|Test|E|Lead 39233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039234|139234|989898|1|9999039234|MR|Test|E|Lead 39234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039235|139235|989898|1|9999039235|MR|Test|E|Lead 39235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039236|139236|989898|1|9999039236|MR|Test|E|Lead 39236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039237|139237|989898|1|9999039237|MR|Test|E|Lead 39237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039238|139238|989898|1|9999039238|MR|Test|E|Lead 39238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039239|139239|989898|1|9999039239|MR|Test|E|Lead 39239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039240|139240|989898|1|9999039240|MR|Test|E|Lead 39240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039241|139241|989898|1|9999039241|MR|Test|E|Lead 39241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039242|139242|989898|1|9999039242|MR|Test|E|Lead 39242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039243|139243|989898|1|9999039243|MR|Test|E|Lead 39243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039244|139244|989898|1|9999039244|MR|Test|E|Lead 39244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039245|139245|989898|1|9999039245|MR|Test|E|Lead 39245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039246|139246|989898|1|9999039246|MR|Test|E|Lead 39246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039247|139247|989898|1|9999039247|MR|Test|E|Lead 39247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039248|139248|989898|1|9999039248|MR|Test|E|Lead 39248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039249|139249|989898|1|9999039249|MR|Test|E|Lead 39249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039250|139250|989898|1|9999039250|MR|Test|E|Lead 39250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039251|139251|989898|1|9999039251|MR|Test|E|Lead 39251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039252|139252|989898|1|9999039252|MR|Test|E|Lead 39252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039253|139253|989898|1|9999039253|MR|Test|E|Lead 39253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039254|139254|989898|1|9999039254|MR|Test|E|Lead 39254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039255|139255|989898|1|9999039255|MR|Test|E|Lead 39255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039256|139256|989898|1|9999039256|MR|Test|E|Lead 39256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039257|139257|989898|1|9999039257|MR|Test|E|Lead 39257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039258|139258|989898|1|9999039258|MR|Test|E|Lead 39258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039259|139259|989898|1|9999039259|MR|Test|E|Lead 39259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039260|139260|989898|1|9999039260|MR|Test|E|Lead 39260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039261|139261|989898|1|9999039261|MR|Test|E|Lead 39261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039262|139262|989898|1|9999039262|MR|Test|E|Lead 39262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039263|139263|989898|1|9999039263|MR|Test|E|Lead 39263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039264|139264|989898|1|9999039264|MR|Test|E|Lead 39264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039265|139265|989898|1|9999039265|MR|Test|E|Lead 39265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039266|139266|989898|1|9999039266|MR|Test|E|Lead 39266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039267|139267|989898|1|9999039267|MR|Test|E|Lead 39267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039268|139268|989898|1|9999039268|MR|Test|E|Lead 39268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039269|139269|989898|1|9999039269|MR|Test|E|Lead 39269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039270|139270|989898|1|9999039270|MR|Test|E|Lead 39270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039271|139271|989898|1|9999039271|MR|Test|E|Lead 39271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039272|139272|989898|1|9999039272|MR|Test|E|Lead 39272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039273|139273|989898|1|9999039273|MR|Test|E|Lead 39273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039274|139274|989898|1|9999039274|MR|Test|E|Lead 39274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039275|139275|989898|1|9999039275|MR|Test|E|Lead 39275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039276|139276|989898|1|9999039276|MR|Test|E|Lead 39276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039277|139277|989898|1|9999039277|MR|Test|E|Lead 39277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039278|139278|989898|1|9999039278|MR|Test|E|Lead 39278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039279|139279|989898|1|9999039279|MR|Test|E|Lead 39279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039280|139280|989898|1|9999039280|MR|Test|E|Lead 39280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039281|139281|989898|1|9999039281|MR|Test|E|Lead 39281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039282|139282|989898|1|9999039282|MR|Test|E|Lead 39282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039283|139283|989898|1|9999039283|MR|Test|E|Lead 39283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039284|139284|989898|1|9999039284|MR|Test|E|Lead 39284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039285|139285|989898|1|9999039285|MR|Test|E|Lead 39285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039286|139286|989898|1|9999039286|MR|Test|E|Lead 39286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039287|139287|989898|1|9999039287|MR|Test|E|Lead 39287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039288|139288|989898|1|9999039288|MR|Test|E|Lead 39288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039289|139289|989898|1|9999039289|MR|Test|E|Lead 39289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039290|139290|989898|1|9999039290|MR|Test|E|Lead 39290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039291|139291|989898|1|9999039291|MR|Test|E|Lead 39291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039292|139292|989898|1|9999039292|MR|Test|E|Lead 39292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039293|139293|989898|1|9999039293|MR|Test|E|Lead 39293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039294|139294|989898|1|9999039294|MR|Test|E|Lead 39294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039295|139295|989898|1|9999039295|MR|Test|E|Lead 39295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039296|139296|989898|1|9999039296|MR|Test|E|Lead 39296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039297|139297|989898|1|9999039297|MR|Test|E|Lead 39297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039298|139298|989898|1|9999039298|MR|Test|E|Lead 39298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039299|139299|989898|1|9999039299|MR|Test|E|Lead 39299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039300|139300|989898|1|9999039300|MR|Test|E|Lead 39300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039301|139301|989898|1|9999039301|MR|Test|E|Lead 39301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039302|139302|989898|1|9999039302|MR|Test|E|Lead 39302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039303|139303|989898|1|9999039303|MR|Test|E|Lead 39303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039304|139304|989898|1|9999039304|MR|Test|E|Lead 39304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039305|139305|989898|1|9999039305|MR|Test|E|Lead 39305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039306|139306|989898|1|9999039306|MR|Test|E|Lead 39306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039307|139307|989898|1|9999039307|MR|Test|E|Lead 39307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039308|139308|989898|1|9999039308|MR|Test|E|Lead 39308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039309|139309|989898|1|9999039309|MR|Test|E|Lead 39309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039310|139310|989898|1|9999039310|MR|Test|E|Lead 39310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039311|139311|989898|1|9999039311|MR|Test|E|Lead 39311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039312|139312|989898|1|9999039312|MR|Test|E|Lead 39312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039313|139313|989898|1|9999039313|MR|Test|E|Lead 39313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039314|139314|989898|1|9999039314|MR|Test|E|Lead 39314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039315|139315|989898|1|9999039315|MR|Test|E|Lead 39315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039316|139316|989898|1|9999039316|MR|Test|E|Lead 39316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039317|139317|989898|1|9999039317|MR|Test|E|Lead 39317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039318|139318|989898|1|9999039318|MR|Test|E|Lead 39318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039319|139319|989898|1|9999039319|MR|Test|E|Lead 39319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039320|139320|989898|1|9999039320|MR|Test|E|Lead 39320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039321|139321|989898|1|9999039321|MR|Test|E|Lead 39321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039322|139322|989898|1|9999039322|MR|Test|E|Lead 39322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039323|139323|989898|1|9999039323|MR|Test|E|Lead 39323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039324|139324|989898|1|9999039324|MR|Test|E|Lead 39324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039325|139325|989898|1|9999039325|MR|Test|E|Lead 39325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039326|139326|989898|1|9999039326|MR|Test|E|Lead 39326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039327|139327|989898|1|9999039327|MR|Test|E|Lead 39327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039328|139328|989898|1|9999039328|MR|Test|E|Lead 39328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039329|139329|989898|1|9999039329|MR|Test|E|Lead 39329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039330|139330|989898|1|9999039330|MR|Test|E|Lead 39330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039331|139331|989898|1|9999039331|MR|Test|E|Lead 39331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039332|139332|989898|1|9999039332|MR|Test|E|Lead 39332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039333|139333|989898|1|9999039333|MR|Test|E|Lead 39333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039334|139334|989898|1|9999039334|MR|Test|E|Lead 39334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039335|139335|989898|1|9999039335|MR|Test|E|Lead 39335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039336|139336|989898|1|9999039336|MR|Test|E|Lead 39336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039337|139337|989898|1|9999039337|MR|Test|E|Lead 39337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039338|139338|989898|1|9999039338|MR|Test|E|Lead 39338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039339|139339|989898|1|9999039339|MR|Test|E|Lead 39339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039340|139340|989898|1|9999039340|MR|Test|E|Lead 39340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039341|139341|989898|1|9999039341|MR|Test|E|Lead 39341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039342|139342|989898|1|9999039342|MR|Test|E|Lead 39342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039343|139343|989898|1|9999039343|MR|Test|E|Lead 39343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039344|139344|989898|1|9999039344|MR|Test|E|Lead 39344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039345|139345|989898|1|9999039345|MR|Test|E|Lead 39345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039346|139346|989898|1|9999039346|MR|Test|E|Lead 39346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039347|139347|989898|1|9999039347|MR|Test|E|Lead 39347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039348|139348|989898|1|9999039348|MR|Test|E|Lead 39348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039349|139349|989898|1|9999039349|MR|Test|E|Lead 39349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039350|139350|989898|1|9999039350|MR|Test|E|Lead 39350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039351|139351|989898|1|9999039351|MR|Test|E|Lead 39351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039352|139352|989898|1|9999039352|MR|Test|E|Lead 39352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039353|139353|989898|1|9999039353|MR|Test|E|Lead 39353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039354|139354|989898|1|9999039354|MR|Test|E|Lead 39354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039355|139355|989898|1|9999039355|MR|Test|E|Lead 39355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039356|139356|989898|1|9999039356|MR|Test|E|Lead 39356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039357|139357|989898|1|9999039357|MR|Test|E|Lead 39357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039358|139358|989898|1|9999039358|MR|Test|E|Lead 39358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039359|139359|989898|1|9999039359|MR|Test|E|Lead 39359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039360|139360|989898|1|9999039360|MR|Test|E|Lead 39360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039361|139361|989898|1|9999039361|MR|Test|E|Lead 39361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039362|139362|989898|1|9999039362|MR|Test|E|Lead 39362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039363|139363|989898|1|9999039363|MR|Test|E|Lead 39363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039364|139364|989898|1|9999039364|MR|Test|E|Lead 39364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039365|139365|989898|1|9999039365|MR|Test|E|Lead 39365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039366|139366|989898|1|9999039366|MR|Test|E|Lead 39366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039367|139367|989898|1|9999039367|MR|Test|E|Lead 39367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039368|139368|989898|1|9999039368|MR|Test|E|Lead 39368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039369|139369|989898|1|9999039369|MR|Test|E|Lead 39369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039370|139370|989898|1|9999039370|MR|Test|E|Lead 39370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039371|139371|989898|1|9999039371|MR|Test|E|Lead 39371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039372|139372|989898|1|9999039372|MR|Test|E|Lead 39372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039373|139373|989898|1|9999039373|MR|Test|E|Lead 39373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039374|139374|989898|1|9999039374|MR|Test|E|Lead 39374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039375|139375|989898|1|9999039375|MR|Test|E|Lead 39375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039376|139376|989898|1|9999039376|MR|Test|E|Lead 39376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039377|139377|989898|1|9999039377|MR|Test|E|Lead 39377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039378|139378|989898|1|9999039378|MR|Test|E|Lead 39378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039379|139379|989898|1|9999039379|MR|Test|E|Lead 39379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039380|139380|989898|1|9999039380|MR|Test|E|Lead 39380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039381|139381|989898|1|9999039381|MR|Test|E|Lead 39381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039382|139382|989898|1|9999039382|MR|Test|E|Lead 39382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039383|139383|989898|1|9999039383|MR|Test|E|Lead 39383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039384|139384|989898|1|9999039384|MR|Test|E|Lead 39384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039385|139385|989898|1|9999039385|MR|Test|E|Lead 39385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039386|139386|989898|1|9999039386|MR|Test|E|Lead 39386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039387|139387|989898|1|9999039387|MR|Test|E|Lead 39387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039388|139388|989898|1|9999039388|MR|Test|E|Lead 39388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039389|139389|989898|1|9999039389|MR|Test|E|Lead 39389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039390|139390|989898|1|9999039390|MR|Test|E|Lead 39390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039391|139391|989898|1|9999039391|MR|Test|E|Lead 39391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039392|139392|989898|1|9999039392|MR|Test|E|Lead 39392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039393|139393|989898|1|9999039393|MR|Test|E|Lead 39393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039394|139394|989898|1|9999039394|MR|Test|E|Lead 39394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039395|139395|989898|1|9999039395|MR|Test|E|Lead 39395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039396|139396|989898|1|9999039396|MR|Test|E|Lead 39396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039397|139397|989898|1|9999039397|MR|Test|E|Lead 39397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039398|139398|989898|1|9999039398|MR|Test|E|Lead 39398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039399|139399|989898|1|9999039399|MR|Test|E|Lead 39399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039400|139400|989898|1|9999039400|MR|Test|E|Lead 39400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039401|139401|989898|1|9999039401|MR|Test|E|Lead 39401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039402|139402|989898|1|9999039402|MR|Test|E|Lead 39402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039403|139403|989898|1|9999039403|MR|Test|E|Lead 39403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039404|139404|989898|1|9999039404|MR|Test|E|Lead 39404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039405|139405|989898|1|9999039405|MR|Test|E|Lead 39405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039406|139406|989898|1|9999039406|MR|Test|E|Lead 39406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039407|139407|989898|1|9999039407|MR|Test|E|Lead 39407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039408|139408|989898|1|9999039408|MR|Test|E|Lead 39408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039409|139409|989898|1|9999039409|MR|Test|E|Lead 39409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039410|139410|989898|1|9999039410|MR|Test|E|Lead 39410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039411|139411|989898|1|9999039411|MR|Test|E|Lead 39411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039412|139412|989898|1|9999039412|MR|Test|E|Lead 39412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039413|139413|989898|1|9999039413|MR|Test|E|Lead 39413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039414|139414|989898|1|9999039414|MR|Test|E|Lead 39414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039415|139415|989898|1|9999039415|MR|Test|E|Lead 39415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039416|139416|989898|1|9999039416|MR|Test|E|Lead 39416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039417|139417|989898|1|9999039417|MR|Test|E|Lead 39417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039418|139418|989898|1|9999039418|MR|Test|E|Lead 39418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039419|139419|989898|1|9999039419|MR|Test|E|Lead 39419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039420|139420|989898|1|9999039420|MR|Test|E|Lead 39420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039421|139421|989898|1|9999039421|MR|Test|E|Lead 39421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039422|139422|989898|1|9999039422|MR|Test|E|Lead 39422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039423|139423|989898|1|9999039423|MR|Test|E|Lead 39423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039424|139424|989898|1|9999039424|MR|Test|E|Lead 39424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039425|139425|989898|1|9999039425|MR|Test|E|Lead 39425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039426|139426|989898|1|9999039426|MR|Test|E|Lead 39426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039427|139427|989898|1|9999039427|MR|Test|E|Lead 39427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039428|139428|989898|1|9999039428|MR|Test|E|Lead 39428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039429|139429|989898|1|9999039429|MR|Test|E|Lead 39429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039430|139430|989898|1|9999039430|MR|Test|E|Lead 39430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039431|139431|989898|1|9999039431|MR|Test|E|Lead 39431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039432|139432|989898|1|9999039432|MR|Test|E|Lead 39432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039433|139433|989898|1|9999039433|MR|Test|E|Lead 39433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039434|139434|989898|1|9999039434|MR|Test|E|Lead 39434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039435|139435|989898|1|9999039435|MR|Test|E|Lead 39435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039436|139436|989898|1|9999039436|MR|Test|E|Lead 39436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039437|139437|989898|1|9999039437|MR|Test|E|Lead 39437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039438|139438|989898|1|9999039438|MR|Test|E|Lead 39438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039439|139439|989898|1|9999039439|MR|Test|E|Lead 39439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039440|139440|989898|1|9999039440|MR|Test|E|Lead 39440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039441|139441|989898|1|9999039441|MR|Test|E|Lead 39441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039442|139442|989898|1|9999039442|MR|Test|E|Lead 39442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039443|139443|989898|1|9999039443|MR|Test|E|Lead 39443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039444|139444|989898|1|9999039444|MR|Test|E|Lead 39444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039445|139445|989898|1|9999039445|MR|Test|E|Lead 39445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039446|139446|989898|1|9999039446|MR|Test|E|Lead 39446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039447|139447|989898|1|9999039447|MR|Test|E|Lead 39447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039448|139448|989898|1|9999039448|MR|Test|E|Lead 39448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039449|139449|989898|1|9999039449|MR|Test|E|Lead 39449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039450|139450|989898|1|9999039450|MR|Test|E|Lead 39450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039451|139451|989898|1|9999039451|MR|Test|E|Lead 39451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039452|139452|989898|1|9999039452|MR|Test|E|Lead 39452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039453|139453|989898|1|9999039453|MR|Test|E|Lead 39453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039454|139454|989898|1|9999039454|MR|Test|E|Lead 39454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039455|139455|989898|1|9999039455|MR|Test|E|Lead 39455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039456|139456|989898|1|9999039456|MR|Test|E|Lead 39456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039457|139457|989898|1|9999039457|MR|Test|E|Lead 39457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039458|139458|989898|1|9999039458|MR|Test|E|Lead 39458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039459|139459|989898|1|9999039459|MR|Test|E|Lead 39459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039460|139460|989898|1|9999039460|MR|Test|E|Lead 39460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039461|139461|989898|1|9999039461|MR|Test|E|Lead 39461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039462|139462|989898|1|9999039462|MR|Test|E|Lead 39462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039463|139463|989898|1|9999039463|MR|Test|E|Lead 39463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039464|139464|989898|1|9999039464|MR|Test|E|Lead 39464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039465|139465|989898|1|9999039465|MR|Test|E|Lead 39465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039466|139466|989898|1|9999039466|MR|Test|E|Lead 39466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039467|139467|989898|1|9999039467|MR|Test|E|Lead 39467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039468|139468|989898|1|9999039468|MR|Test|E|Lead 39468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039469|139469|989898|1|9999039469|MR|Test|E|Lead 39469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039470|139470|989898|1|9999039470|MR|Test|E|Lead 39470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039471|139471|989898|1|9999039471|MR|Test|E|Lead 39471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039472|139472|989898|1|9999039472|MR|Test|E|Lead 39472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039473|139473|989898|1|9999039473|MR|Test|E|Lead 39473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039474|139474|989898|1|9999039474|MR|Test|E|Lead 39474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039475|139475|989898|1|9999039475|MR|Test|E|Lead 39475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039476|139476|989898|1|9999039476|MR|Test|E|Lead 39476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039477|139477|989898|1|9999039477|MR|Test|E|Lead 39477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039478|139478|989898|1|9999039478|MR|Test|E|Lead 39478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039479|139479|989898|1|9999039479|MR|Test|E|Lead 39479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039480|139480|989898|1|9999039480|MR|Test|E|Lead 39480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039481|139481|989898|1|9999039481|MR|Test|E|Lead 39481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039482|139482|989898|1|9999039482|MR|Test|E|Lead 39482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039483|139483|989898|1|9999039483|MR|Test|E|Lead 39483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039484|139484|989898|1|9999039484|MR|Test|E|Lead 39484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039485|139485|989898|1|9999039485|MR|Test|E|Lead 39485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039486|139486|989898|1|9999039486|MR|Test|E|Lead 39486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039487|139487|989898|1|9999039487|MR|Test|E|Lead 39487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039488|139488|989898|1|9999039488|MR|Test|E|Lead 39488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039489|139489|989898|1|9999039489|MR|Test|E|Lead 39489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039490|139490|989898|1|9999039490|MR|Test|E|Lead 39490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039491|139491|989898|1|9999039491|MR|Test|E|Lead 39491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039492|139492|989898|1|9999039492|MR|Test|E|Lead 39492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039493|139493|989898|1|9999039493|MR|Test|E|Lead 39493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039494|139494|989898|1|9999039494|MR|Test|E|Lead 39494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039495|139495|989898|1|9999039495|MR|Test|E|Lead 39495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039496|139496|989898|1|9999039496|MR|Test|E|Lead 39496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039497|139497|989898|1|9999039497|MR|Test|E|Lead 39497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039498|139498|989898|1|9999039498|MR|Test|E|Lead 39498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039499|139499|989898|1|9999039499|MR|Test|E|Lead 39499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039500|139500|989898|1|9999039500|MR|Test|E|Lead 39500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039501|139501|989898|1|9999039501|MR|Test|E|Lead 39501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039502|139502|989898|1|9999039502|MR|Test|E|Lead 39502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039503|139503|989898|1|9999039503|MR|Test|E|Lead 39503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039504|139504|989898|1|9999039504|MR|Test|E|Lead 39504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039505|139505|989898|1|9999039505|MR|Test|E|Lead 39505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039506|139506|989898|1|9999039506|MR|Test|E|Lead 39506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039507|139507|989898|1|9999039507|MR|Test|E|Lead 39507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039508|139508|989898|1|9999039508|MR|Test|E|Lead 39508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039509|139509|989898|1|9999039509|MR|Test|E|Lead 39509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039510|139510|989898|1|9999039510|MR|Test|E|Lead 39510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039511|139511|989898|1|9999039511|MR|Test|E|Lead 39511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039512|139512|989898|1|9999039512|MR|Test|E|Lead 39512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039513|139513|989898|1|9999039513|MR|Test|E|Lead 39513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039514|139514|989898|1|9999039514|MR|Test|E|Lead 39514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039515|139515|989898|1|9999039515|MR|Test|E|Lead 39515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039516|139516|989898|1|9999039516|MR|Test|E|Lead 39516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039517|139517|989898|1|9999039517|MR|Test|E|Lead 39517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039518|139518|989898|1|9999039518|MR|Test|E|Lead 39518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039519|139519|989898|1|9999039519|MR|Test|E|Lead 39519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039520|139520|989898|1|9999039520|MR|Test|E|Lead 39520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039521|139521|989898|1|9999039521|MR|Test|E|Lead 39521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039522|139522|989898|1|9999039522|MR|Test|E|Lead 39522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039523|139523|989898|1|9999039523|MR|Test|E|Lead 39523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039524|139524|989898|1|9999039524|MR|Test|E|Lead 39524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039525|139525|989898|1|9999039525|MR|Test|E|Lead 39525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039526|139526|989898|1|9999039526|MR|Test|E|Lead 39526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039527|139527|989898|1|9999039527|MR|Test|E|Lead 39527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039528|139528|989898|1|9999039528|MR|Test|E|Lead 39528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039529|139529|989898|1|9999039529|MR|Test|E|Lead 39529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039530|139530|989898|1|9999039530|MR|Test|E|Lead 39530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039531|139531|989898|1|9999039531|MR|Test|E|Lead 39531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039532|139532|989898|1|9999039532|MR|Test|E|Lead 39532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039533|139533|989898|1|9999039533|MR|Test|E|Lead 39533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039534|139534|989898|1|9999039534|MR|Test|E|Lead 39534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039535|139535|989898|1|9999039535|MR|Test|E|Lead 39535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039536|139536|989898|1|9999039536|MR|Test|E|Lead 39536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039537|139537|989898|1|9999039537|MR|Test|E|Lead 39537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039538|139538|989898|1|9999039538|MR|Test|E|Lead 39538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039539|139539|989898|1|9999039539|MR|Test|E|Lead 39539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039540|139540|989898|1|9999039540|MR|Test|E|Lead 39540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039541|139541|989898|1|9999039541|MR|Test|E|Lead 39541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039542|139542|989898|1|9999039542|MR|Test|E|Lead 39542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039543|139543|989898|1|9999039543|MR|Test|E|Lead 39543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039544|139544|989898|1|9999039544|MR|Test|E|Lead 39544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039545|139545|989898|1|9999039545|MR|Test|E|Lead 39545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039546|139546|989898|1|9999039546|MR|Test|E|Lead 39546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039547|139547|989898|1|9999039547|MR|Test|E|Lead 39547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039548|139548|989898|1|9999039548|MR|Test|E|Lead 39548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039549|139549|989898|1|9999039549|MR|Test|E|Lead 39549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039550|139550|989898|1|9999039550|MR|Test|E|Lead 39550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039551|139551|989898|1|9999039551|MR|Test|E|Lead 39551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039552|139552|989898|1|9999039552|MR|Test|E|Lead 39552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039553|139553|989898|1|9999039553|MR|Test|E|Lead 39553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039554|139554|989898|1|9999039554|MR|Test|E|Lead 39554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039555|139555|989898|1|9999039555|MR|Test|E|Lead 39555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039556|139556|989898|1|9999039556|MR|Test|E|Lead 39556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039557|139557|989898|1|9999039557|MR|Test|E|Lead 39557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039558|139558|989898|1|9999039558|MR|Test|E|Lead 39558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039559|139559|989898|1|9999039559|MR|Test|E|Lead 39559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039560|139560|989898|1|9999039560|MR|Test|E|Lead 39560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039561|139561|989898|1|9999039561|MR|Test|E|Lead 39561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039562|139562|989898|1|9999039562|MR|Test|E|Lead 39562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039563|139563|989898|1|9999039563|MR|Test|E|Lead 39563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039564|139564|989898|1|9999039564|MR|Test|E|Lead 39564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039565|139565|989898|1|9999039565|MR|Test|E|Lead 39565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039566|139566|989898|1|9999039566|MR|Test|E|Lead 39566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039567|139567|989898|1|9999039567|MR|Test|E|Lead 39567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039568|139568|989898|1|9999039568|MR|Test|E|Lead 39568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039569|139569|989898|1|9999039569|MR|Test|E|Lead 39569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039570|139570|989898|1|9999039570|MR|Test|E|Lead 39570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039571|139571|989898|1|9999039571|MR|Test|E|Lead 39571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039572|139572|989898|1|9999039572|MR|Test|E|Lead 39572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039573|139573|989898|1|9999039573|MR|Test|E|Lead 39573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039574|139574|989898|1|9999039574|MR|Test|E|Lead 39574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039575|139575|989898|1|9999039575|MR|Test|E|Lead 39575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039576|139576|989898|1|9999039576|MR|Test|E|Lead 39576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039577|139577|989898|1|9999039577|MR|Test|E|Lead 39577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039578|139578|989898|1|9999039578|MR|Test|E|Lead 39578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039579|139579|989898|1|9999039579|MR|Test|E|Lead 39579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039580|139580|989898|1|9999039580|MR|Test|E|Lead 39580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039581|139581|989898|1|9999039581|MR|Test|E|Lead 39581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039582|139582|989898|1|9999039582|MR|Test|E|Lead 39582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039583|139583|989898|1|9999039583|MR|Test|E|Lead 39583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039584|139584|989898|1|9999039584|MR|Test|E|Lead 39584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039585|139585|989898|1|9999039585|MR|Test|E|Lead 39585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039586|139586|989898|1|9999039586|MR|Test|E|Lead 39586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039587|139587|989898|1|9999039587|MR|Test|E|Lead 39587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039588|139588|989898|1|9999039588|MR|Test|E|Lead 39588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039589|139589|989898|1|9999039589|MR|Test|E|Lead 39589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039590|139590|989898|1|9999039590|MR|Test|E|Lead 39590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039591|139591|989898|1|9999039591|MR|Test|E|Lead 39591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039592|139592|989898|1|9999039592|MR|Test|E|Lead 39592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039593|139593|989898|1|9999039593|MR|Test|E|Lead 39593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039594|139594|989898|1|9999039594|MR|Test|E|Lead 39594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039595|139595|989898|1|9999039595|MR|Test|E|Lead 39595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039596|139596|989898|1|9999039596|MR|Test|E|Lead 39596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039597|139597|989898|1|9999039597|MR|Test|E|Lead 39597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039598|139598|989898|1|9999039598|MR|Test|E|Lead 39598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039599|139599|989898|1|9999039599|MR|Test|E|Lead 39599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039600|139600|989898|1|9999039600|MR|Test|E|Lead 39600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039601|139601|989898|1|9999039601|MR|Test|E|Lead 39601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039602|139602|989898|1|9999039602|MR|Test|E|Lead 39602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039603|139603|989898|1|9999039603|MR|Test|E|Lead 39603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039604|139604|989898|1|9999039604|MR|Test|E|Lead 39604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039605|139605|989898|1|9999039605|MR|Test|E|Lead 39605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039606|139606|989898|1|9999039606|MR|Test|E|Lead 39606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039607|139607|989898|1|9999039607|MR|Test|E|Lead 39607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039608|139608|989898|1|9999039608|MR|Test|E|Lead 39608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039609|139609|989898|1|9999039609|MR|Test|E|Lead 39609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039610|139610|989898|1|9999039610|MR|Test|E|Lead 39610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039611|139611|989898|1|9999039611|MR|Test|E|Lead 39611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039612|139612|989898|1|9999039612|MR|Test|E|Lead 39612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039613|139613|989898|1|9999039613|MR|Test|E|Lead 39613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039614|139614|989898|1|9999039614|MR|Test|E|Lead 39614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039615|139615|989898|1|9999039615|MR|Test|E|Lead 39615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039616|139616|989898|1|9999039616|MR|Test|E|Lead 39616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039617|139617|989898|1|9999039617|MR|Test|E|Lead 39617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039618|139618|989898|1|9999039618|MR|Test|E|Lead 39618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039619|139619|989898|1|9999039619|MR|Test|E|Lead 39619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039620|139620|989898|1|9999039620|MR|Test|E|Lead 39620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039621|139621|989898|1|9999039621|MR|Test|E|Lead 39621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039622|139622|989898|1|9999039622|MR|Test|E|Lead 39622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039623|139623|989898|1|9999039623|MR|Test|E|Lead 39623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039624|139624|989898|1|9999039624|MR|Test|E|Lead 39624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039625|139625|989898|1|9999039625|MR|Test|E|Lead 39625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039626|139626|989898|1|9999039626|MR|Test|E|Lead 39626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039627|139627|989898|1|9999039627|MR|Test|E|Lead 39627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039628|139628|989898|1|9999039628|MR|Test|E|Lead 39628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039629|139629|989898|1|9999039629|MR|Test|E|Lead 39629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039630|139630|989898|1|9999039630|MR|Test|E|Lead 39630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039631|139631|989898|1|9999039631|MR|Test|E|Lead 39631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039632|139632|989898|1|9999039632|MR|Test|E|Lead 39632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039633|139633|989898|1|9999039633|MR|Test|E|Lead 39633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039634|139634|989898|1|9999039634|MR|Test|E|Lead 39634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039635|139635|989898|1|9999039635|MR|Test|E|Lead 39635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039636|139636|989898|1|9999039636|MR|Test|E|Lead 39636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039637|139637|989898|1|9999039637|MR|Test|E|Lead 39637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039638|139638|989898|1|9999039638|MR|Test|E|Lead 39638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039639|139639|989898|1|9999039639|MR|Test|E|Lead 39639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039640|139640|989898|1|9999039640|MR|Test|E|Lead 39640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039641|139641|989898|1|9999039641|MR|Test|E|Lead 39641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039642|139642|989898|1|9999039642|MR|Test|E|Lead 39642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039643|139643|989898|1|9999039643|MR|Test|E|Lead 39643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039644|139644|989898|1|9999039644|MR|Test|E|Lead 39644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039645|139645|989898|1|9999039645|MR|Test|E|Lead 39645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039646|139646|989898|1|9999039646|MR|Test|E|Lead 39646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039647|139647|989898|1|9999039647|MR|Test|E|Lead 39647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039648|139648|989898|1|9999039648|MR|Test|E|Lead 39648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039649|139649|989898|1|9999039649|MR|Test|E|Lead 39649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039650|139650|989898|1|9999039650|MR|Test|E|Lead 39650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039651|139651|989898|1|9999039651|MR|Test|E|Lead 39651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039652|139652|989898|1|9999039652|MR|Test|E|Lead 39652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039653|139653|989898|1|9999039653|MR|Test|E|Lead 39653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039654|139654|989898|1|9999039654|MR|Test|E|Lead 39654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039655|139655|989898|1|9999039655|MR|Test|E|Lead 39655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039656|139656|989898|1|9999039656|MR|Test|E|Lead 39656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039657|139657|989898|1|9999039657|MR|Test|E|Lead 39657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039658|139658|989898|1|9999039658|MR|Test|E|Lead 39658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039659|139659|989898|1|9999039659|MR|Test|E|Lead 39659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039660|139660|989898|1|9999039660|MR|Test|E|Lead 39660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039661|139661|989898|1|9999039661|MR|Test|E|Lead 39661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039662|139662|989898|1|9999039662|MR|Test|E|Lead 39662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039663|139663|989898|1|9999039663|MR|Test|E|Lead 39663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039664|139664|989898|1|9999039664|MR|Test|E|Lead 39664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039665|139665|989898|1|9999039665|MR|Test|E|Lead 39665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039666|139666|989898|1|9999039666|MR|Test|E|Lead 39666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039667|139667|989898|1|9999039667|MR|Test|E|Lead 39667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039668|139668|989898|1|9999039668|MR|Test|E|Lead 39668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039669|139669|989898|1|9999039669|MR|Test|E|Lead 39669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039670|139670|989898|1|9999039670|MR|Test|E|Lead 39670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039671|139671|989898|1|9999039671|MR|Test|E|Lead 39671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039672|139672|989898|1|9999039672|MR|Test|E|Lead 39672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039673|139673|989898|1|9999039673|MR|Test|E|Lead 39673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039674|139674|989898|1|9999039674|MR|Test|E|Lead 39674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039675|139675|989898|1|9999039675|MR|Test|E|Lead 39675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039676|139676|989898|1|9999039676|MR|Test|E|Lead 39676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039677|139677|989898|1|9999039677|MR|Test|E|Lead 39677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039678|139678|989898|1|9999039678|MR|Test|E|Lead 39678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039679|139679|989898|1|9999039679|MR|Test|E|Lead 39679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039680|139680|989898|1|9999039680|MR|Test|E|Lead 39680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039681|139681|989898|1|9999039681|MR|Test|E|Lead 39681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039682|139682|989898|1|9999039682|MR|Test|E|Lead 39682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039683|139683|989898|1|9999039683|MR|Test|E|Lead 39683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039684|139684|989898|1|9999039684|MR|Test|E|Lead 39684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039685|139685|989898|1|9999039685|MR|Test|E|Lead 39685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039686|139686|989898|1|9999039686|MR|Test|E|Lead 39686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039687|139687|989898|1|9999039687|MR|Test|E|Lead 39687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039688|139688|989898|1|9999039688|MR|Test|E|Lead 39688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039689|139689|989898|1|9999039689|MR|Test|E|Lead 39689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039690|139690|989898|1|9999039690|MR|Test|E|Lead 39690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039691|139691|989898|1|9999039691|MR|Test|E|Lead 39691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039692|139692|989898|1|9999039692|MR|Test|E|Lead 39692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039693|139693|989898|1|9999039693|MR|Test|E|Lead 39693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039694|139694|989898|1|9999039694|MR|Test|E|Lead 39694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039695|139695|989898|1|9999039695|MR|Test|E|Lead 39695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039696|139696|989898|1|9999039696|MR|Test|E|Lead 39696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039697|139697|989898|1|9999039697|MR|Test|E|Lead 39697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039698|139698|989898|1|9999039698|MR|Test|E|Lead 39698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039699|139699|989898|1|9999039699|MR|Test|E|Lead 39699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039700|139700|989898|1|9999039700|MR|Test|E|Lead 39700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039701|139701|989898|1|9999039701|MR|Test|E|Lead 39701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039702|139702|989898|1|9999039702|MR|Test|E|Lead 39702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039703|139703|989898|1|9999039703|MR|Test|E|Lead 39703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039704|139704|989898|1|9999039704|MR|Test|E|Lead 39704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039705|139705|989898|1|9999039705|MR|Test|E|Lead 39705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039706|139706|989898|1|9999039706|MR|Test|E|Lead 39706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039707|139707|989898|1|9999039707|MR|Test|E|Lead 39707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039708|139708|989898|1|9999039708|MR|Test|E|Lead 39708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039709|139709|989898|1|9999039709|MR|Test|E|Lead 39709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039710|139710|989898|1|9999039710|MR|Test|E|Lead 39710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039711|139711|989898|1|9999039711|MR|Test|E|Lead 39711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039712|139712|989898|1|9999039712|MR|Test|E|Lead 39712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039713|139713|989898|1|9999039713|MR|Test|E|Lead 39713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039714|139714|989898|1|9999039714|MR|Test|E|Lead 39714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039715|139715|989898|1|9999039715|MR|Test|E|Lead 39715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039716|139716|989898|1|9999039716|MR|Test|E|Lead 39716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039717|139717|989898|1|9999039717|MR|Test|E|Lead 39717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039718|139718|989898|1|9999039718|MR|Test|E|Lead 39718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039719|139719|989898|1|9999039719|MR|Test|E|Lead 39719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039720|139720|989898|1|9999039720|MR|Test|E|Lead 39720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039721|139721|989898|1|9999039721|MR|Test|E|Lead 39721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039722|139722|989898|1|9999039722|MR|Test|E|Lead 39722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039723|139723|989898|1|9999039723|MR|Test|E|Lead 39723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039724|139724|989898|1|9999039724|MR|Test|E|Lead 39724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039725|139725|989898|1|9999039725|MR|Test|E|Lead 39725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039726|139726|989898|1|9999039726|MR|Test|E|Lead 39726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039727|139727|989898|1|9999039727|MR|Test|E|Lead 39727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039728|139728|989898|1|9999039728|MR|Test|E|Lead 39728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039729|139729|989898|1|9999039729|MR|Test|E|Lead 39729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039730|139730|989898|1|9999039730|MR|Test|E|Lead 39730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039731|139731|989898|1|9999039731|MR|Test|E|Lead 39731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039732|139732|989898|1|9999039732|MR|Test|E|Lead 39732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039733|139733|989898|1|9999039733|MR|Test|E|Lead 39733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039734|139734|989898|1|9999039734|MR|Test|E|Lead 39734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039735|139735|989898|1|9999039735|MR|Test|E|Lead 39735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039736|139736|989898|1|9999039736|MR|Test|E|Lead 39736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039737|139737|989898|1|9999039737|MR|Test|E|Lead 39737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039738|139738|989898|1|9999039738|MR|Test|E|Lead 39738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039739|139739|989898|1|9999039739|MR|Test|E|Lead 39739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039740|139740|989898|1|9999039740|MR|Test|E|Lead 39740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039741|139741|989898|1|9999039741|MR|Test|E|Lead 39741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039742|139742|989898|1|9999039742|MR|Test|E|Lead 39742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039743|139743|989898|1|9999039743|MR|Test|E|Lead 39743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039744|139744|989898|1|9999039744|MR|Test|E|Lead 39744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039745|139745|989898|1|9999039745|MR|Test|E|Lead 39745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039746|139746|989898|1|9999039746|MR|Test|E|Lead 39746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039747|139747|989898|1|9999039747|MR|Test|E|Lead 39747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039748|139748|989898|1|9999039748|MR|Test|E|Lead 39748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039749|139749|989898|1|9999039749|MR|Test|E|Lead 39749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039750|139750|989898|1|9999039750|MR|Test|E|Lead 39750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039751|139751|989898|1|9999039751|MR|Test|E|Lead 39751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039752|139752|989898|1|9999039752|MR|Test|E|Lead 39752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039753|139753|989898|1|9999039753|MR|Test|E|Lead 39753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039754|139754|989898|1|9999039754|MR|Test|E|Lead 39754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039755|139755|989898|1|9999039755|MR|Test|E|Lead 39755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039756|139756|989898|1|9999039756|MR|Test|E|Lead 39756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039757|139757|989898|1|9999039757|MR|Test|E|Lead 39757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039758|139758|989898|1|9999039758|MR|Test|E|Lead 39758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039759|139759|989898|1|9999039759|MR|Test|E|Lead 39759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039760|139760|989898|1|9999039760|MR|Test|E|Lead 39760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039761|139761|989898|1|9999039761|MR|Test|E|Lead 39761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039762|139762|989898|1|9999039762|MR|Test|E|Lead 39762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039763|139763|989898|1|9999039763|MR|Test|E|Lead 39763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039764|139764|989898|1|9999039764|MR|Test|E|Lead 39764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039765|139765|989898|1|9999039765|MR|Test|E|Lead 39765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039766|139766|989898|1|9999039766|MR|Test|E|Lead 39766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039767|139767|989898|1|9999039767|MR|Test|E|Lead 39767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039768|139768|989898|1|9999039768|MR|Test|E|Lead 39768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039769|139769|989898|1|9999039769|MR|Test|E|Lead 39769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039770|139770|989898|1|9999039770|MR|Test|E|Lead 39770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039771|139771|989898|1|9999039771|MR|Test|E|Lead 39771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039772|139772|989898|1|9999039772|MR|Test|E|Lead 39772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039773|139773|989898|1|9999039773|MR|Test|E|Lead 39773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039774|139774|989898|1|9999039774|MR|Test|E|Lead 39774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039775|139775|989898|1|9999039775|MR|Test|E|Lead 39775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039776|139776|989898|1|9999039776|MR|Test|E|Lead 39776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039777|139777|989898|1|9999039777|MR|Test|E|Lead 39777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039778|139778|989898|1|9999039778|MR|Test|E|Lead 39778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039779|139779|989898|1|9999039779|MR|Test|E|Lead 39779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039780|139780|989898|1|9999039780|MR|Test|E|Lead 39780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039781|139781|989898|1|9999039781|MR|Test|E|Lead 39781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039782|139782|989898|1|9999039782|MR|Test|E|Lead 39782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039783|139783|989898|1|9999039783|MR|Test|E|Lead 39783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039784|139784|989898|1|9999039784|MR|Test|E|Lead 39784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039785|139785|989898|1|9999039785|MR|Test|E|Lead 39785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039786|139786|989898|1|9999039786|MR|Test|E|Lead 39786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039787|139787|989898|1|9999039787|MR|Test|E|Lead 39787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039788|139788|989898|1|9999039788|MR|Test|E|Lead 39788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039789|139789|989898|1|9999039789|MR|Test|E|Lead 39789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039790|139790|989898|1|9999039790|MR|Test|E|Lead 39790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039791|139791|989898|1|9999039791|MR|Test|E|Lead 39791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039792|139792|989898|1|9999039792|MR|Test|E|Lead 39792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039793|139793|989898|1|9999039793|MR|Test|E|Lead 39793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039794|139794|989898|1|9999039794|MR|Test|E|Lead 39794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039795|139795|989898|1|9999039795|MR|Test|E|Lead 39795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039796|139796|989898|1|9999039796|MR|Test|E|Lead 39796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039797|139797|989898|1|9999039797|MR|Test|E|Lead 39797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039798|139798|989898|1|9999039798|MR|Test|E|Lead 39798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039799|139799|989898|1|9999039799|MR|Test|E|Lead 39799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039800|139800|989898|1|9999039800|MR|Test|E|Lead 39800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039801|139801|989898|1|9999039801|MR|Test|E|Lead 39801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039802|139802|989898|1|9999039802|MR|Test|E|Lead 39802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039803|139803|989898|1|9999039803|MR|Test|E|Lead 39803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039804|139804|989898|1|9999039804|MR|Test|E|Lead 39804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039805|139805|989898|1|9999039805|MR|Test|E|Lead 39805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039806|139806|989898|1|9999039806|MR|Test|E|Lead 39806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039807|139807|989898|1|9999039807|MR|Test|E|Lead 39807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039808|139808|989898|1|9999039808|MR|Test|E|Lead 39808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039809|139809|989898|1|9999039809|MR|Test|E|Lead 39809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039810|139810|989898|1|9999039810|MR|Test|E|Lead 39810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039811|139811|989898|1|9999039811|MR|Test|E|Lead 39811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039812|139812|989898|1|9999039812|MR|Test|E|Lead 39812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039813|139813|989898|1|9999039813|MR|Test|E|Lead 39813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039814|139814|989898|1|9999039814|MR|Test|E|Lead 39814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039815|139815|989898|1|9999039815|MR|Test|E|Lead 39815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039816|139816|989898|1|9999039816|MR|Test|E|Lead 39816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039817|139817|989898|1|9999039817|MR|Test|E|Lead 39817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039818|139818|989898|1|9999039818|MR|Test|E|Lead 39818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039819|139819|989898|1|9999039819|MR|Test|E|Lead 39819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039820|139820|989898|1|9999039820|MR|Test|E|Lead 39820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039821|139821|989898|1|9999039821|MR|Test|E|Lead 39821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039822|139822|989898|1|9999039822|MR|Test|E|Lead 39822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039823|139823|989898|1|9999039823|MR|Test|E|Lead 39823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039824|139824|989898|1|9999039824|MR|Test|E|Lead 39824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039825|139825|989898|1|9999039825|MR|Test|E|Lead 39825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039826|139826|989898|1|9999039826|MR|Test|E|Lead 39826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039827|139827|989898|1|9999039827|MR|Test|E|Lead 39827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039828|139828|989898|1|9999039828|MR|Test|E|Lead 39828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039829|139829|989898|1|9999039829|MR|Test|E|Lead 39829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039830|139830|989898|1|9999039830|MR|Test|E|Lead 39830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039831|139831|989898|1|9999039831|MR|Test|E|Lead 39831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039832|139832|989898|1|9999039832|MR|Test|E|Lead 39832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039833|139833|989898|1|9999039833|MR|Test|E|Lead 39833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039834|139834|989898|1|9999039834|MR|Test|E|Lead 39834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039835|139835|989898|1|9999039835|MR|Test|E|Lead 39835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039836|139836|989898|1|9999039836|MR|Test|E|Lead 39836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039837|139837|989898|1|9999039837|MR|Test|E|Lead 39837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039838|139838|989898|1|9999039838|MR|Test|E|Lead 39838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039839|139839|989898|1|9999039839|MR|Test|E|Lead 39839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039840|139840|989898|1|9999039840|MR|Test|E|Lead 39840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039841|139841|989898|1|9999039841|MR|Test|E|Lead 39841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039842|139842|989898|1|9999039842|MR|Test|E|Lead 39842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039843|139843|989898|1|9999039843|MR|Test|E|Lead 39843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039844|139844|989898|1|9999039844|MR|Test|E|Lead 39844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039845|139845|989898|1|9999039845|MR|Test|E|Lead 39845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039846|139846|989898|1|9999039846|MR|Test|E|Lead 39846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039847|139847|989898|1|9999039847|MR|Test|E|Lead 39847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039848|139848|989898|1|9999039848|MR|Test|E|Lead 39848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039849|139849|989898|1|9999039849|MR|Test|E|Lead 39849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039850|139850|989898|1|9999039850|MR|Test|E|Lead 39850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039851|139851|989898|1|9999039851|MR|Test|E|Lead 39851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039852|139852|989898|1|9999039852|MR|Test|E|Lead 39852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039853|139853|989898|1|9999039853|MR|Test|E|Lead 39853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039854|139854|989898|1|9999039854|MR|Test|E|Lead 39854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039855|139855|989898|1|9999039855|MR|Test|E|Lead 39855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039856|139856|989898|1|9999039856|MR|Test|E|Lead 39856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039857|139857|989898|1|9999039857|MR|Test|E|Lead 39857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039858|139858|989898|1|9999039858|MR|Test|E|Lead 39858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039859|139859|989898|1|9999039859|MR|Test|E|Lead 39859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039860|139860|989898|1|9999039860|MR|Test|E|Lead 39860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039861|139861|989898|1|9999039861|MR|Test|E|Lead 39861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039862|139862|989898|1|9999039862|MR|Test|E|Lead 39862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039863|139863|989898|1|9999039863|MR|Test|E|Lead 39863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039864|139864|989898|1|9999039864|MR|Test|E|Lead 39864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039865|139865|989898|1|9999039865|MR|Test|E|Lead 39865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039866|139866|989898|1|9999039866|MR|Test|E|Lead 39866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039867|139867|989898|1|9999039867|MR|Test|E|Lead 39867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039868|139868|989898|1|9999039868|MR|Test|E|Lead 39868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039869|139869|989898|1|9999039869|MR|Test|E|Lead 39869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039870|139870|989898|1|9999039870|MR|Test|E|Lead 39870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039871|139871|989898|1|9999039871|MR|Test|E|Lead 39871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039872|139872|989898|1|9999039872|MR|Test|E|Lead 39872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039873|139873|989898|1|9999039873|MR|Test|E|Lead 39873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039874|139874|989898|1|9999039874|MR|Test|E|Lead 39874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039875|139875|989898|1|9999039875|MR|Test|E|Lead 39875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039876|139876|989898|1|9999039876|MR|Test|E|Lead 39876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039877|139877|989898|1|9999039877|MR|Test|E|Lead 39877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039878|139878|989898|1|9999039878|MR|Test|E|Lead 39878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039879|139879|989898|1|9999039879|MR|Test|E|Lead 39879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039880|139880|989898|1|9999039880|MR|Test|E|Lead 39880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039881|139881|989898|1|9999039881|MR|Test|E|Lead 39881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039882|139882|989898|1|9999039882|MR|Test|E|Lead 39882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039883|139883|989898|1|9999039883|MR|Test|E|Lead 39883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039884|139884|989898|1|9999039884|MR|Test|E|Lead 39884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039885|139885|989898|1|9999039885|MR|Test|E|Lead 39885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039886|139886|989898|1|9999039886|MR|Test|E|Lead 39886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039887|139887|989898|1|9999039887|MR|Test|E|Lead 39887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039888|139888|989898|1|9999039888|MR|Test|E|Lead 39888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039889|139889|989898|1|9999039889|MR|Test|E|Lead 39889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039890|139890|989898|1|9999039890|MR|Test|E|Lead 39890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039891|139891|989898|1|9999039891|MR|Test|E|Lead 39891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039892|139892|989898|1|9999039892|MR|Test|E|Lead 39892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039893|139893|989898|1|9999039893|MR|Test|E|Lead 39893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039894|139894|989898|1|9999039894|MR|Test|E|Lead 39894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039895|139895|989898|1|9999039895|MR|Test|E|Lead 39895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039896|139896|989898|1|9999039896|MR|Test|E|Lead 39896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039897|139897|989898|1|9999039897|MR|Test|E|Lead 39897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039898|139898|989898|1|9999039898|MR|Test|E|Lead 39898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039899|139899|989898|1|9999039899|MR|Test|E|Lead 39899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039900|139900|989898|1|9999039900|MR|Test|E|Lead 39900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039901|139901|989898|1|9999039901|MR|Test|E|Lead 39901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039902|139902|989898|1|9999039902|MR|Test|E|Lead 39902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039903|139903|989898|1|9999039903|MR|Test|E|Lead 39903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039904|139904|989898|1|9999039904|MR|Test|E|Lead 39904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039905|139905|989898|1|9999039905|MR|Test|E|Lead 39905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039906|139906|989898|1|9999039906|MR|Test|E|Lead 39906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039907|139907|989898|1|9999039907|MR|Test|E|Lead 39907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039908|139908|989898|1|9999039908|MR|Test|E|Lead 39908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039909|139909|989898|1|9999039909|MR|Test|E|Lead 39909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039910|139910|989898|1|9999039910|MR|Test|E|Lead 39910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039911|139911|989898|1|9999039911|MR|Test|E|Lead 39911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039912|139912|989898|1|9999039912|MR|Test|E|Lead 39912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039913|139913|989898|1|9999039913|MR|Test|E|Lead 39913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039914|139914|989898|1|9999039914|MR|Test|E|Lead 39914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039915|139915|989898|1|9999039915|MR|Test|E|Lead 39915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039916|139916|989898|1|9999039916|MR|Test|E|Lead 39916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039917|139917|989898|1|9999039917|MR|Test|E|Lead 39917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039918|139918|989898|1|9999039918|MR|Test|E|Lead 39918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039919|139919|989898|1|9999039919|MR|Test|E|Lead 39919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039920|139920|989898|1|9999039920|MR|Test|E|Lead 39920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039921|139921|989898|1|9999039921|MR|Test|E|Lead 39921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039922|139922|989898|1|9999039922|MR|Test|E|Lead 39922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039923|139923|989898|1|9999039923|MR|Test|E|Lead 39923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039924|139924|989898|1|9999039924|MR|Test|E|Lead 39924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039925|139925|989898|1|9999039925|MR|Test|E|Lead 39925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039926|139926|989898|1|9999039926|MR|Test|E|Lead 39926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039927|139927|989898|1|9999039927|MR|Test|E|Lead 39927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039928|139928|989898|1|9999039928|MR|Test|E|Lead 39928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039929|139929|989898|1|9999039929|MR|Test|E|Lead 39929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039930|139930|989898|1|9999039930|MR|Test|E|Lead 39930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039931|139931|989898|1|9999039931|MR|Test|E|Lead 39931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039932|139932|989898|1|9999039932|MR|Test|E|Lead 39932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039933|139933|989898|1|9999039933|MR|Test|E|Lead 39933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039934|139934|989898|1|9999039934|MR|Test|E|Lead 39934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039935|139935|989898|1|9999039935|MR|Test|E|Lead 39935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039936|139936|989898|1|9999039936|MR|Test|E|Lead 39936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039937|139937|989898|1|9999039937|MR|Test|E|Lead 39937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039938|139938|989898|1|9999039938|MR|Test|E|Lead 39938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039939|139939|989898|1|9999039939|MR|Test|E|Lead 39939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039940|139940|989898|1|9999039940|MR|Test|E|Lead 39940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039941|139941|989898|1|9999039941|MR|Test|E|Lead 39941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039942|139942|989898|1|9999039942|MR|Test|E|Lead 39942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039943|139943|989898|1|9999039943|MR|Test|E|Lead 39943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039944|139944|989898|1|9999039944|MR|Test|E|Lead 39944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039945|139945|989898|1|9999039945|MR|Test|E|Lead 39945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039946|139946|989898|1|9999039946|MR|Test|E|Lead 39946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039947|139947|989898|1|9999039947|MR|Test|E|Lead 39947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039948|139948|989898|1|9999039948|MR|Test|E|Lead 39948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039949|139949|989898|1|9999039949|MR|Test|E|Lead 39949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039950|139950|989898|1|9999039950|MR|Test|E|Lead 39950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039951|139951|989898|1|9999039951|MR|Test|E|Lead 39951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039952|139952|989898|1|9999039952|MR|Test|E|Lead 39952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039953|139953|989898|1|9999039953|MR|Test|E|Lead 39953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039954|139954|989898|1|9999039954|MR|Test|E|Lead 39954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039955|139955|989898|1|9999039955|MR|Test|E|Lead 39955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039956|139956|989898|1|9999039956|MR|Test|E|Lead 39956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039957|139957|989898|1|9999039957|MR|Test|E|Lead 39957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039958|139958|989898|1|9999039958|MR|Test|E|Lead 39958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039959|139959|989898|1|9999039959|MR|Test|E|Lead 39959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039960|139960|989898|1|9999039960|MR|Test|E|Lead 39960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039961|139961|989898|1|9999039961|MR|Test|E|Lead 39961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039962|139962|989898|1|9999039962|MR|Test|E|Lead 39962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039963|139963|989898|1|9999039963|MR|Test|E|Lead 39963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039964|139964|989898|1|9999039964|MR|Test|E|Lead 39964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039965|139965|989898|1|9999039965|MR|Test|E|Lead 39965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039966|139966|989898|1|9999039966|MR|Test|E|Lead 39966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039967|139967|989898|1|9999039967|MR|Test|E|Lead 39967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039968|139968|989898|1|9999039968|MR|Test|E|Lead 39968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039969|139969|989898|1|9999039969|MR|Test|E|Lead 39969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039970|139970|989898|1|9999039970|MR|Test|E|Lead 39970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039971|139971|989898|1|9999039971|MR|Test|E|Lead 39971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039972|139972|989898|1|9999039972|MR|Test|E|Lead 39972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039973|139973|989898|1|9999039973|MR|Test|E|Lead 39973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039974|139974|989898|1|9999039974|MR|Test|E|Lead 39974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039975|139975|989898|1|9999039975|MR|Test|E|Lead 39975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039976|139976|989898|1|9999039976|MR|Test|E|Lead 39976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039977|139977|989898|1|9999039977|MR|Test|E|Lead 39977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039978|139978|989898|1|9999039978|MR|Test|E|Lead 39978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039979|139979|989898|1|9999039979|MR|Test|E|Lead 39979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039980|139980|989898|1|9999039980|MR|Test|E|Lead 39980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039981|139981|989898|1|9999039981|MR|Test|E|Lead 39981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039982|139982|989898|1|9999039982|MR|Test|E|Lead 39982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039983|139983|989898|1|9999039983|MR|Test|E|Lead 39983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039984|139984|989898|1|9999039984|MR|Test|E|Lead 39984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039985|139985|989898|1|9999039985|MR|Test|E|Lead 39985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039986|139986|989898|1|9999039986|MR|Test|E|Lead 39986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039987|139987|989898|1|9999039987|MR|Test|E|Lead 39987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039988|139988|989898|1|9999039988|MR|Test|E|Lead 39988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039989|139989|989898|1|9999039989|MR|Test|E|Lead 39989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039990|139990|989898|1|9999039990|MR|Test|E|Lead 39990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039991|139991|989898|1|9999039991|MR|Test|E|Lead 39991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039992|139992|989898|1|9999039992|MR|Test|E|Lead 39992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039993|139993|989898|1|9999039993|MR|Test|E|Lead 39993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039994|139994|989898|1|9999039994|MR|Test|E|Lead 39994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039995|139995|989898|1|9999039995|MR|Test|E|Lead 39995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039996|139996|989898|1|9999039996|MR|Test|E|Lead 39996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039997|139997|989898|1|9999039997|MR|Test|E|Lead 39997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039998|139998|989898|1|9999039998|MR|Test|E|Lead 39998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1039999|139999|989898|1|9999039999|MR|Test|E|Lead 39999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040000|140000|989898|1|9999040000|MR|Test|E|Lead 40000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040001|140001|989898|1|9999040001|MR|Test|E|Lead 40001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040002|140002|989898|1|9999040002|MR|Test|E|Lead 40002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040003|140003|989898|1|9999040003|MR|Test|E|Lead 40003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040004|140004|989898|1|9999040004|MR|Test|E|Lead 40004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040005|140005|989898|1|9999040005|MR|Test|E|Lead 40005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040006|140006|989898|1|9999040006|MR|Test|E|Lead 40006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040007|140007|989898|1|9999040007|MR|Test|E|Lead 40007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040008|140008|989898|1|9999040008|MR|Test|E|Lead 40008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040009|140009|989898|1|9999040009|MR|Test|E|Lead 40009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040010|140010|989898|1|9999040010|MR|Test|E|Lead 40010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040011|140011|989898|1|9999040011|MR|Test|E|Lead 40011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040012|140012|989898|1|9999040012|MR|Test|E|Lead 40012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040013|140013|989898|1|9999040013|MR|Test|E|Lead 40013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040014|140014|989898|1|9999040014|MR|Test|E|Lead 40014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040015|140015|989898|1|9999040015|MR|Test|E|Lead 40015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040016|140016|989898|1|9999040016|MR|Test|E|Lead 40016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040017|140017|989898|1|9999040017|MR|Test|E|Lead 40017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040018|140018|989898|1|9999040018|MR|Test|E|Lead 40018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040019|140019|989898|1|9999040019|MR|Test|E|Lead 40019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040020|140020|989898|1|9999040020|MR|Test|E|Lead 40020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040021|140021|989898|1|9999040021|MR|Test|E|Lead 40021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040022|140022|989898|1|9999040022|MR|Test|E|Lead 40022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040023|140023|989898|1|9999040023|MR|Test|E|Lead 40023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040024|140024|989898|1|9999040024|MR|Test|E|Lead 40024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040025|140025|989898|1|9999040025|MR|Test|E|Lead 40025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040026|140026|989898|1|9999040026|MR|Test|E|Lead 40026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040027|140027|989898|1|9999040027|MR|Test|E|Lead 40027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040028|140028|989898|1|9999040028|MR|Test|E|Lead 40028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040029|140029|989898|1|9999040029|MR|Test|E|Lead 40029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040030|140030|989898|1|9999040030|MR|Test|E|Lead 40030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040031|140031|989898|1|9999040031|MR|Test|E|Lead 40031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040032|140032|989898|1|9999040032|MR|Test|E|Lead 40032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040033|140033|989898|1|9999040033|MR|Test|E|Lead 40033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040034|140034|989898|1|9999040034|MR|Test|E|Lead 40034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040035|140035|989898|1|9999040035|MR|Test|E|Lead 40035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040036|140036|989898|1|9999040036|MR|Test|E|Lead 40036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040037|140037|989898|1|9999040037|MR|Test|E|Lead 40037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040038|140038|989898|1|9999040038|MR|Test|E|Lead 40038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040039|140039|989898|1|9999040039|MR|Test|E|Lead 40039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040040|140040|989898|1|9999040040|MR|Test|E|Lead 40040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040041|140041|989898|1|9999040041|MR|Test|E|Lead 40041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040042|140042|989898|1|9999040042|MR|Test|E|Lead 40042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040043|140043|989898|1|9999040043|MR|Test|E|Lead 40043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040044|140044|989898|1|9999040044|MR|Test|E|Lead 40044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040045|140045|989898|1|9999040045|MR|Test|E|Lead 40045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040046|140046|989898|1|9999040046|MR|Test|E|Lead 40046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040047|140047|989898|1|9999040047|MR|Test|E|Lead 40047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040048|140048|989898|1|9999040048|MR|Test|E|Lead 40048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040049|140049|989898|1|9999040049|MR|Test|E|Lead 40049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040050|140050|989898|1|9999040050|MR|Test|E|Lead 40050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040051|140051|989898|1|9999040051|MR|Test|E|Lead 40051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040052|140052|989898|1|9999040052|MR|Test|E|Lead 40052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040053|140053|989898|1|9999040053|MR|Test|E|Lead 40053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040054|140054|989898|1|9999040054|MR|Test|E|Lead 40054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040055|140055|989898|1|9999040055|MR|Test|E|Lead 40055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040056|140056|989898|1|9999040056|MR|Test|E|Lead 40056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040057|140057|989898|1|9999040057|MR|Test|E|Lead 40057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040058|140058|989898|1|9999040058|MR|Test|E|Lead 40058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040059|140059|989898|1|9999040059|MR|Test|E|Lead 40059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040060|140060|989898|1|9999040060|MR|Test|E|Lead 40060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040061|140061|989898|1|9999040061|MR|Test|E|Lead 40061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040062|140062|989898|1|9999040062|MR|Test|E|Lead 40062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040063|140063|989898|1|9999040063|MR|Test|E|Lead 40063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040064|140064|989898|1|9999040064|MR|Test|E|Lead 40064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040065|140065|989898|1|9999040065|MR|Test|E|Lead 40065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040066|140066|989898|1|9999040066|MR|Test|E|Lead 40066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040067|140067|989898|1|9999040067|MR|Test|E|Lead 40067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040068|140068|989898|1|9999040068|MR|Test|E|Lead 40068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040069|140069|989898|1|9999040069|MR|Test|E|Lead 40069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040070|140070|989898|1|9999040070|MR|Test|E|Lead 40070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040071|140071|989898|1|9999040071|MR|Test|E|Lead 40071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040072|140072|989898|1|9999040072|MR|Test|E|Lead 40072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040073|140073|989898|1|9999040073|MR|Test|E|Lead 40073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040074|140074|989898|1|9999040074|MR|Test|E|Lead 40074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040075|140075|989898|1|9999040075|MR|Test|E|Lead 40075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040076|140076|989898|1|9999040076|MR|Test|E|Lead 40076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040077|140077|989898|1|9999040077|MR|Test|E|Lead 40077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040078|140078|989898|1|9999040078|MR|Test|E|Lead 40078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040079|140079|989898|1|9999040079|MR|Test|E|Lead 40079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040080|140080|989898|1|9999040080|MR|Test|E|Lead 40080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040081|140081|989898|1|9999040081|MR|Test|E|Lead 40081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040082|140082|989898|1|9999040082|MR|Test|E|Lead 40082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040083|140083|989898|1|9999040083|MR|Test|E|Lead 40083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040084|140084|989898|1|9999040084|MR|Test|E|Lead 40084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040085|140085|989898|1|9999040085|MR|Test|E|Lead 40085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040086|140086|989898|1|9999040086|MR|Test|E|Lead 40086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040087|140087|989898|1|9999040087|MR|Test|E|Lead 40087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040088|140088|989898|1|9999040088|MR|Test|E|Lead 40088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040089|140089|989898|1|9999040089|MR|Test|E|Lead 40089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040090|140090|989898|1|9999040090|MR|Test|E|Lead 40090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040091|140091|989898|1|9999040091|MR|Test|E|Lead 40091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040092|140092|989898|1|9999040092|MR|Test|E|Lead 40092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040093|140093|989898|1|9999040093|MR|Test|E|Lead 40093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040094|140094|989898|1|9999040094|MR|Test|E|Lead 40094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040095|140095|989898|1|9999040095|MR|Test|E|Lead 40095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040096|140096|989898|1|9999040096|MR|Test|E|Lead 40096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040097|140097|989898|1|9999040097|MR|Test|E|Lead 40097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040098|140098|989898|1|9999040098|MR|Test|E|Lead 40098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040099|140099|989898|1|9999040099|MR|Test|E|Lead 40099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040100|140100|989898|1|9999040100|MR|Test|E|Lead 40100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040101|140101|989898|1|9999040101|MR|Test|E|Lead 40101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040102|140102|989898|1|9999040102|MR|Test|E|Lead 40102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040103|140103|989898|1|9999040103|MR|Test|E|Lead 40103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040104|140104|989898|1|9999040104|MR|Test|E|Lead 40104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040105|140105|989898|1|9999040105|MR|Test|E|Lead 40105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040106|140106|989898|1|9999040106|MR|Test|E|Lead 40106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040107|140107|989898|1|9999040107|MR|Test|E|Lead 40107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040108|140108|989898|1|9999040108|MR|Test|E|Lead 40108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040109|140109|989898|1|9999040109|MR|Test|E|Lead 40109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040110|140110|989898|1|9999040110|MR|Test|E|Lead 40110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040111|140111|989898|1|9999040111|MR|Test|E|Lead 40111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040112|140112|989898|1|9999040112|MR|Test|E|Lead 40112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040113|140113|989898|1|9999040113|MR|Test|E|Lead 40113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040114|140114|989898|1|9999040114|MR|Test|E|Lead 40114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040115|140115|989898|1|9999040115|MR|Test|E|Lead 40115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040116|140116|989898|1|9999040116|MR|Test|E|Lead 40116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040117|140117|989898|1|9999040117|MR|Test|E|Lead 40117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040118|140118|989898|1|9999040118|MR|Test|E|Lead 40118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040119|140119|989898|1|9999040119|MR|Test|E|Lead 40119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040120|140120|989898|1|9999040120|MR|Test|E|Lead 40120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040121|140121|989898|1|9999040121|MR|Test|E|Lead 40121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040122|140122|989898|1|9999040122|MR|Test|E|Lead 40122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040123|140123|989898|1|9999040123|MR|Test|E|Lead 40123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040124|140124|989898|1|9999040124|MR|Test|E|Lead 40124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040125|140125|989898|1|9999040125|MR|Test|E|Lead 40125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040126|140126|989898|1|9999040126|MR|Test|E|Lead 40126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040127|140127|989898|1|9999040127|MR|Test|E|Lead 40127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040128|140128|989898|1|9999040128|MR|Test|E|Lead 40128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040129|140129|989898|1|9999040129|MR|Test|E|Lead 40129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040130|140130|989898|1|9999040130|MR|Test|E|Lead 40130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040131|140131|989898|1|9999040131|MR|Test|E|Lead 40131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040132|140132|989898|1|9999040132|MR|Test|E|Lead 40132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040133|140133|989898|1|9999040133|MR|Test|E|Lead 40133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040134|140134|989898|1|9999040134|MR|Test|E|Lead 40134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040135|140135|989898|1|9999040135|MR|Test|E|Lead 40135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040136|140136|989898|1|9999040136|MR|Test|E|Lead 40136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040137|140137|989898|1|9999040137|MR|Test|E|Lead 40137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040138|140138|989898|1|9999040138|MR|Test|E|Lead 40138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040139|140139|989898|1|9999040139|MR|Test|E|Lead 40139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040140|140140|989898|1|9999040140|MR|Test|E|Lead 40140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040141|140141|989898|1|9999040141|MR|Test|E|Lead 40141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040142|140142|989898|1|9999040142|MR|Test|E|Lead 40142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040143|140143|989898|1|9999040143|MR|Test|E|Lead 40143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040144|140144|989898|1|9999040144|MR|Test|E|Lead 40144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040145|140145|989898|1|9999040145|MR|Test|E|Lead 40145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040146|140146|989898|1|9999040146|MR|Test|E|Lead 40146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040147|140147|989898|1|9999040147|MR|Test|E|Lead 40147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040148|140148|989898|1|9999040148|MR|Test|E|Lead 40148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040149|140149|989898|1|9999040149|MR|Test|E|Lead 40149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040150|140150|989898|1|9999040150|MR|Test|E|Lead 40150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040151|140151|989898|1|9999040151|MR|Test|E|Lead 40151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040152|140152|989898|1|9999040152|MR|Test|E|Lead 40152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040153|140153|989898|1|9999040153|MR|Test|E|Lead 40153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040154|140154|989898|1|9999040154|MR|Test|E|Lead 40154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040155|140155|989898|1|9999040155|MR|Test|E|Lead 40155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040156|140156|989898|1|9999040156|MR|Test|E|Lead 40156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040157|140157|989898|1|9999040157|MR|Test|E|Lead 40157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040158|140158|989898|1|9999040158|MR|Test|E|Lead 40158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040159|140159|989898|1|9999040159|MR|Test|E|Lead 40159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040160|140160|989898|1|9999040160|MR|Test|E|Lead 40160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040161|140161|989898|1|9999040161|MR|Test|E|Lead 40161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040162|140162|989898|1|9999040162|MR|Test|E|Lead 40162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040163|140163|989898|1|9999040163|MR|Test|E|Lead 40163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040164|140164|989898|1|9999040164|MR|Test|E|Lead 40164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040165|140165|989898|1|9999040165|MR|Test|E|Lead 40165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040166|140166|989898|1|9999040166|MR|Test|E|Lead 40166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040167|140167|989898|1|9999040167|MR|Test|E|Lead 40167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040168|140168|989898|1|9999040168|MR|Test|E|Lead 40168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040169|140169|989898|1|9999040169|MR|Test|E|Lead 40169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040170|140170|989898|1|9999040170|MR|Test|E|Lead 40170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040171|140171|989898|1|9999040171|MR|Test|E|Lead 40171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040172|140172|989898|1|9999040172|MR|Test|E|Lead 40172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040173|140173|989898|1|9999040173|MR|Test|E|Lead 40173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040174|140174|989898|1|9999040174|MR|Test|E|Lead 40174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040175|140175|989898|1|9999040175|MR|Test|E|Lead 40175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040176|140176|989898|1|9999040176|MR|Test|E|Lead 40176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040177|140177|989898|1|9999040177|MR|Test|E|Lead 40177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040178|140178|989898|1|9999040178|MR|Test|E|Lead 40178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040179|140179|989898|1|9999040179|MR|Test|E|Lead 40179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040180|140180|989898|1|9999040180|MR|Test|E|Lead 40180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040181|140181|989898|1|9999040181|MR|Test|E|Lead 40181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040182|140182|989898|1|9999040182|MR|Test|E|Lead 40182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040183|140183|989898|1|9999040183|MR|Test|E|Lead 40183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040184|140184|989898|1|9999040184|MR|Test|E|Lead 40184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040185|140185|989898|1|9999040185|MR|Test|E|Lead 40185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040186|140186|989898|1|9999040186|MR|Test|E|Lead 40186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040187|140187|989898|1|9999040187|MR|Test|E|Lead 40187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040188|140188|989898|1|9999040188|MR|Test|E|Lead 40188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040189|140189|989898|1|9999040189|MR|Test|E|Lead 40189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040190|140190|989898|1|9999040190|MR|Test|E|Lead 40190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040191|140191|989898|1|9999040191|MR|Test|E|Lead 40191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040192|140192|989898|1|9999040192|MR|Test|E|Lead 40192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040193|140193|989898|1|9999040193|MR|Test|E|Lead 40193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040194|140194|989898|1|9999040194|MR|Test|E|Lead 40194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040195|140195|989898|1|9999040195|MR|Test|E|Lead 40195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040196|140196|989898|1|9999040196|MR|Test|E|Lead 40196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040197|140197|989898|1|9999040197|MR|Test|E|Lead 40197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040198|140198|989898|1|9999040198|MR|Test|E|Lead 40198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040199|140199|989898|1|9999040199|MR|Test|E|Lead 40199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040200|140200|989898|1|9999040200|MR|Test|E|Lead 40200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040201|140201|989898|1|9999040201|MR|Test|E|Lead 40201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040202|140202|989898|1|9999040202|MR|Test|E|Lead 40202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040203|140203|989898|1|9999040203|MR|Test|E|Lead 40203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040204|140204|989898|1|9999040204|MR|Test|E|Lead 40204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040205|140205|989898|1|9999040205|MR|Test|E|Lead 40205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040206|140206|989898|1|9999040206|MR|Test|E|Lead 40206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040207|140207|989898|1|9999040207|MR|Test|E|Lead 40207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040208|140208|989898|1|9999040208|MR|Test|E|Lead 40208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040209|140209|989898|1|9999040209|MR|Test|E|Lead 40209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040210|140210|989898|1|9999040210|MR|Test|E|Lead 40210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040211|140211|989898|1|9999040211|MR|Test|E|Lead 40211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040212|140212|989898|1|9999040212|MR|Test|E|Lead 40212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040213|140213|989898|1|9999040213|MR|Test|E|Lead 40213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040214|140214|989898|1|9999040214|MR|Test|E|Lead 40214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040215|140215|989898|1|9999040215|MR|Test|E|Lead 40215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040216|140216|989898|1|9999040216|MR|Test|E|Lead 40216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040217|140217|989898|1|9999040217|MR|Test|E|Lead 40217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040218|140218|989898|1|9999040218|MR|Test|E|Lead 40218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040219|140219|989898|1|9999040219|MR|Test|E|Lead 40219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040220|140220|989898|1|9999040220|MR|Test|E|Lead 40220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040221|140221|989898|1|9999040221|MR|Test|E|Lead 40221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040222|140222|989898|1|9999040222|MR|Test|E|Lead 40222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040223|140223|989898|1|9999040223|MR|Test|E|Lead 40223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040224|140224|989898|1|9999040224|MR|Test|E|Lead 40224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040225|140225|989898|1|9999040225|MR|Test|E|Lead 40225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040226|140226|989898|1|9999040226|MR|Test|E|Lead 40226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040227|140227|989898|1|9999040227|MR|Test|E|Lead 40227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040228|140228|989898|1|9999040228|MR|Test|E|Lead 40228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040229|140229|989898|1|9999040229|MR|Test|E|Lead 40229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040230|140230|989898|1|9999040230|MR|Test|E|Lead 40230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040231|140231|989898|1|9999040231|MR|Test|E|Lead 40231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040232|140232|989898|1|9999040232|MR|Test|E|Lead 40232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040233|140233|989898|1|9999040233|MR|Test|E|Lead 40233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040234|140234|989898|1|9999040234|MR|Test|E|Lead 40234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040235|140235|989898|1|9999040235|MR|Test|E|Lead 40235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040236|140236|989898|1|9999040236|MR|Test|E|Lead 40236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040237|140237|989898|1|9999040237|MR|Test|E|Lead 40237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040238|140238|989898|1|9999040238|MR|Test|E|Lead 40238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040239|140239|989898|1|9999040239|MR|Test|E|Lead 40239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040240|140240|989898|1|9999040240|MR|Test|E|Lead 40240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040241|140241|989898|1|9999040241|MR|Test|E|Lead 40241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040242|140242|989898|1|9999040242|MR|Test|E|Lead 40242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040243|140243|989898|1|9999040243|MR|Test|E|Lead 40243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040244|140244|989898|1|9999040244|MR|Test|E|Lead 40244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040245|140245|989898|1|9999040245|MR|Test|E|Lead 40245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040246|140246|989898|1|9999040246|MR|Test|E|Lead 40246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040247|140247|989898|1|9999040247|MR|Test|E|Lead 40247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040248|140248|989898|1|9999040248|MR|Test|E|Lead 40248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040249|140249|989898|1|9999040249|MR|Test|E|Lead 40249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040250|140250|989898|1|9999040250|MR|Test|E|Lead 40250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040251|140251|989898|1|9999040251|MR|Test|E|Lead 40251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040252|140252|989898|1|9999040252|MR|Test|E|Lead 40252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040253|140253|989898|1|9999040253|MR|Test|E|Lead 40253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040254|140254|989898|1|9999040254|MR|Test|E|Lead 40254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040255|140255|989898|1|9999040255|MR|Test|E|Lead 40255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040256|140256|989898|1|9999040256|MR|Test|E|Lead 40256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040257|140257|989898|1|9999040257|MR|Test|E|Lead 40257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040258|140258|989898|1|9999040258|MR|Test|E|Lead 40258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040259|140259|989898|1|9999040259|MR|Test|E|Lead 40259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040260|140260|989898|1|9999040260|MR|Test|E|Lead 40260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040261|140261|989898|1|9999040261|MR|Test|E|Lead 40261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040262|140262|989898|1|9999040262|MR|Test|E|Lead 40262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040263|140263|989898|1|9999040263|MR|Test|E|Lead 40263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040264|140264|989898|1|9999040264|MR|Test|E|Lead 40264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040265|140265|989898|1|9999040265|MR|Test|E|Lead 40265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040266|140266|989898|1|9999040266|MR|Test|E|Lead 40266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040267|140267|989898|1|9999040267|MR|Test|E|Lead 40267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040268|140268|989898|1|9999040268|MR|Test|E|Lead 40268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040269|140269|989898|1|9999040269|MR|Test|E|Lead 40269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040270|140270|989898|1|9999040270|MR|Test|E|Lead 40270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040271|140271|989898|1|9999040271|MR|Test|E|Lead 40271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040272|140272|989898|1|9999040272|MR|Test|E|Lead 40272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040273|140273|989898|1|9999040273|MR|Test|E|Lead 40273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040274|140274|989898|1|9999040274|MR|Test|E|Lead 40274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040275|140275|989898|1|9999040275|MR|Test|E|Lead 40275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040276|140276|989898|1|9999040276|MR|Test|E|Lead 40276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040277|140277|989898|1|9999040277|MR|Test|E|Lead 40277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040278|140278|989898|1|9999040278|MR|Test|E|Lead 40278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040279|140279|989898|1|9999040279|MR|Test|E|Lead 40279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040280|140280|989898|1|9999040280|MR|Test|E|Lead 40280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040281|140281|989898|1|9999040281|MR|Test|E|Lead 40281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040282|140282|989898|1|9999040282|MR|Test|E|Lead 40282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040283|140283|989898|1|9999040283|MR|Test|E|Lead 40283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040284|140284|989898|1|9999040284|MR|Test|E|Lead 40284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040285|140285|989898|1|9999040285|MR|Test|E|Lead 40285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040286|140286|989898|1|9999040286|MR|Test|E|Lead 40286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040287|140287|989898|1|9999040287|MR|Test|E|Lead 40287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040288|140288|989898|1|9999040288|MR|Test|E|Lead 40288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040289|140289|989898|1|9999040289|MR|Test|E|Lead 40289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040290|140290|989898|1|9999040290|MR|Test|E|Lead 40290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040291|140291|989898|1|9999040291|MR|Test|E|Lead 40291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040292|140292|989898|1|9999040292|MR|Test|E|Lead 40292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040293|140293|989898|1|9999040293|MR|Test|E|Lead 40293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040294|140294|989898|1|9999040294|MR|Test|E|Lead 40294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040295|140295|989898|1|9999040295|MR|Test|E|Lead 40295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040296|140296|989898|1|9999040296|MR|Test|E|Lead 40296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040297|140297|989898|1|9999040297|MR|Test|E|Lead 40297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040298|140298|989898|1|9999040298|MR|Test|E|Lead 40298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040299|140299|989898|1|9999040299|MR|Test|E|Lead 40299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040300|140300|989898|1|9999040300|MR|Test|E|Lead 40300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040301|140301|989898|1|9999040301|MR|Test|E|Lead 40301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040302|140302|989898|1|9999040302|MR|Test|E|Lead 40302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040303|140303|989898|1|9999040303|MR|Test|E|Lead 40303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040304|140304|989898|1|9999040304|MR|Test|E|Lead 40304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040305|140305|989898|1|9999040305|MR|Test|E|Lead 40305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040306|140306|989898|1|9999040306|MR|Test|E|Lead 40306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040307|140307|989898|1|9999040307|MR|Test|E|Lead 40307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040308|140308|989898|1|9999040308|MR|Test|E|Lead 40308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040309|140309|989898|1|9999040309|MR|Test|E|Lead 40309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040310|140310|989898|1|9999040310|MR|Test|E|Lead 40310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040311|140311|989898|1|9999040311|MR|Test|E|Lead 40311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040312|140312|989898|1|9999040312|MR|Test|E|Lead 40312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040313|140313|989898|1|9999040313|MR|Test|E|Lead 40313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040314|140314|989898|1|9999040314|MR|Test|E|Lead 40314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040315|140315|989898|1|9999040315|MR|Test|E|Lead 40315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040316|140316|989898|1|9999040316|MR|Test|E|Lead 40316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040317|140317|989898|1|9999040317|MR|Test|E|Lead 40317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040318|140318|989898|1|9999040318|MR|Test|E|Lead 40318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040319|140319|989898|1|9999040319|MR|Test|E|Lead 40319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040320|140320|989898|1|9999040320|MR|Test|E|Lead 40320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040321|140321|989898|1|9999040321|MR|Test|E|Lead 40321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040322|140322|989898|1|9999040322|MR|Test|E|Lead 40322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040323|140323|989898|1|9999040323|MR|Test|E|Lead 40323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040324|140324|989898|1|9999040324|MR|Test|E|Lead 40324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040325|140325|989898|1|9999040325|MR|Test|E|Lead 40325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040326|140326|989898|1|9999040326|MR|Test|E|Lead 40326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040327|140327|989898|1|9999040327|MR|Test|E|Lead 40327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040328|140328|989898|1|9999040328|MR|Test|E|Lead 40328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040329|140329|989898|1|9999040329|MR|Test|E|Lead 40329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040330|140330|989898|1|9999040330|MR|Test|E|Lead 40330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040331|140331|989898|1|9999040331|MR|Test|E|Lead 40331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040332|140332|989898|1|9999040332|MR|Test|E|Lead 40332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040333|140333|989898|1|9999040333|MR|Test|E|Lead 40333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040334|140334|989898|1|9999040334|MR|Test|E|Lead 40334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040335|140335|989898|1|9999040335|MR|Test|E|Lead 40335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040336|140336|989898|1|9999040336|MR|Test|E|Lead 40336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040337|140337|989898|1|9999040337|MR|Test|E|Lead 40337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040338|140338|989898|1|9999040338|MR|Test|E|Lead 40338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040339|140339|989898|1|9999040339|MR|Test|E|Lead 40339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040340|140340|989898|1|9999040340|MR|Test|E|Lead 40340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040341|140341|989898|1|9999040341|MR|Test|E|Lead 40341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040342|140342|989898|1|9999040342|MR|Test|E|Lead 40342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040343|140343|989898|1|9999040343|MR|Test|E|Lead 40343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040344|140344|989898|1|9999040344|MR|Test|E|Lead 40344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040345|140345|989898|1|9999040345|MR|Test|E|Lead 40345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040346|140346|989898|1|9999040346|MR|Test|E|Lead 40346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040347|140347|989898|1|9999040347|MR|Test|E|Lead 40347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040348|140348|989898|1|9999040348|MR|Test|E|Lead 40348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040349|140349|989898|1|9999040349|MR|Test|E|Lead 40349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040350|140350|989898|1|9999040350|MR|Test|E|Lead 40350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040351|140351|989898|1|9999040351|MR|Test|E|Lead 40351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040352|140352|989898|1|9999040352|MR|Test|E|Lead 40352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040353|140353|989898|1|9999040353|MR|Test|E|Lead 40353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040354|140354|989898|1|9999040354|MR|Test|E|Lead 40354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040355|140355|989898|1|9999040355|MR|Test|E|Lead 40355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040356|140356|989898|1|9999040356|MR|Test|E|Lead 40356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040357|140357|989898|1|9999040357|MR|Test|E|Lead 40357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040358|140358|989898|1|9999040358|MR|Test|E|Lead 40358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040359|140359|989898|1|9999040359|MR|Test|E|Lead 40359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040360|140360|989898|1|9999040360|MR|Test|E|Lead 40360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040361|140361|989898|1|9999040361|MR|Test|E|Lead 40361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040362|140362|989898|1|9999040362|MR|Test|E|Lead 40362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040363|140363|989898|1|9999040363|MR|Test|E|Lead 40363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040364|140364|989898|1|9999040364|MR|Test|E|Lead 40364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040365|140365|989898|1|9999040365|MR|Test|E|Lead 40365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040366|140366|989898|1|9999040366|MR|Test|E|Lead 40366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040367|140367|989898|1|9999040367|MR|Test|E|Lead 40367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040368|140368|989898|1|9999040368|MR|Test|E|Lead 40368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040369|140369|989898|1|9999040369|MR|Test|E|Lead 40369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040370|140370|989898|1|9999040370|MR|Test|E|Lead 40370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040371|140371|989898|1|9999040371|MR|Test|E|Lead 40371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040372|140372|989898|1|9999040372|MR|Test|E|Lead 40372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040373|140373|989898|1|9999040373|MR|Test|E|Lead 40373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040374|140374|989898|1|9999040374|MR|Test|E|Lead 40374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040375|140375|989898|1|9999040375|MR|Test|E|Lead 40375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040376|140376|989898|1|9999040376|MR|Test|E|Lead 40376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040377|140377|989898|1|9999040377|MR|Test|E|Lead 40377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040378|140378|989898|1|9999040378|MR|Test|E|Lead 40378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040379|140379|989898|1|9999040379|MR|Test|E|Lead 40379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040380|140380|989898|1|9999040380|MR|Test|E|Lead 40380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040381|140381|989898|1|9999040381|MR|Test|E|Lead 40381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040382|140382|989898|1|9999040382|MR|Test|E|Lead 40382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040383|140383|989898|1|9999040383|MR|Test|E|Lead 40383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040384|140384|989898|1|9999040384|MR|Test|E|Lead 40384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040385|140385|989898|1|9999040385|MR|Test|E|Lead 40385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040386|140386|989898|1|9999040386|MR|Test|E|Lead 40386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040387|140387|989898|1|9999040387|MR|Test|E|Lead 40387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040388|140388|989898|1|9999040388|MR|Test|E|Lead 40388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040389|140389|989898|1|9999040389|MR|Test|E|Lead 40389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040390|140390|989898|1|9999040390|MR|Test|E|Lead 40390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040391|140391|989898|1|9999040391|MR|Test|E|Lead 40391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040392|140392|989898|1|9999040392|MR|Test|E|Lead 40392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040393|140393|989898|1|9999040393|MR|Test|E|Lead 40393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040394|140394|989898|1|9999040394|MR|Test|E|Lead 40394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040395|140395|989898|1|9999040395|MR|Test|E|Lead 40395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040396|140396|989898|1|9999040396|MR|Test|E|Lead 40396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040397|140397|989898|1|9999040397|MR|Test|E|Lead 40397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040398|140398|989898|1|9999040398|MR|Test|E|Lead 40398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040399|140399|989898|1|9999040399|MR|Test|E|Lead 40399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040400|140400|989898|1|9999040400|MR|Test|E|Lead 40400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040401|140401|989898|1|9999040401|MR|Test|E|Lead 40401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040402|140402|989898|1|9999040402|MR|Test|E|Lead 40402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040403|140403|989898|1|9999040403|MR|Test|E|Lead 40403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040404|140404|989898|1|9999040404|MR|Test|E|Lead 40404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040405|140405|989898|1|9999040405|MR|Test|E|Lead 40405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040406|140406|989898|1|9999040406|MR|Test|E|Lead 40406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040407|140407|989898|1|9999040407|MR|Test|E|Lead 40407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040408|140408|989898|1|9999040408|MR|Test|E|Lead 40408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040409|140409|989898|1|9999040409|MR|Test|E|Lead 40409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040410|140410|989898|1|9999040410|MR|Test|E|Lead 40410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040411|140411|989898|1|9999040411|MR|Test|E|Lead 40411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040412|140412|989898|1|9999040412|MR|Test|E|Lead 40412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040413|140413|989898|1|9999040413|MR|Test|E|Lead 40413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040414|140414|989898|1|9999040414|MR|Test|E|Lead 40414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040415|140415|989898|1|9999040415|MR|Test|E|Lead 40415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040416|140416|989898|1|9999040416|MR|Test|E|Lead 40416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040417|140417|989898|1|9999040417|MR|Test|E|Lead 40417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040418|140418|989898|1|9999040418|MR|Test|E|Lead 40418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040419|140419|989898|1|9999040419|MR|Test|E|Lead 40419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040420|140420|989898|1|9999040420|MR|Test|E|Lead 40420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040421|140421|989898|1|9999040421|MR|Test|E|Lead 40421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040422|140422|989898|1|9999040422|MR|Test|E|Lead 40422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040423|140423|989898|1|9999040423|MR|Test|E|Lead 40423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040424|140424|989898|1|9999040424|MR|Test|E|Lead 40424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040425|140425|989898|1|9999040425|MR|Test|E|Lead 40425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040426|140426|989898|1|9999040426|MR|Test|E|Lead 40426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040427|140427|989898|1|9999040427|MR|Test|E|Lead 40427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040428|140428|989898|1|9999040428|MR|Test|E|Lead 40428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040429|140429|989898|1|9999040429|MR|Test|E|Lead 40429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040430|140430|989898|1|9999040430|MR|Test|E|Lead 40430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040431|140431|989898|1|9999040431|MR|Test|E|Lead 40431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040432|140432|989898|1|9999040432|MR|Test|E|Lead 40432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040433|140433|989898|1|9999040433|MR|Test|E|Lead 40433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040434|140434|989898|1|9999040434|MR|Test|E|Lead 40434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040435|140435|989898|1|9999040435|MR|Test|E|Lead 40435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040436|140436|989898|1|9999040436|MR|Test|E|Lead 40436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040437|140437|989898|1|9999040437|MR|Test|E|Lead 40437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040438|140438|989898|1|9999040438|MR|Test|E|Lead 40438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040439|140439|989898|1|9999040439|MR|Test|E|Lead 40439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040440|140440|989898|1|9999040440|MR|Test|E|Lead 40440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040441|140441|989898|1|9999040441|MR|Test|E|Lead 40441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040442|140442|989898|1|9999040442|MR|Test|E|Lead 40442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040443|140443|989898|1|9999040443|MR|Test|E|Lead 40443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040444|140444|989898|1|9999040444|MR|Test|E|Lead 40444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040445|140445|989898|1|9999040445|MR|Test|E|Lead 40445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040446|140446|989898|1|9999040446|MR|Test|E|Lead 40446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040447|140447|989898|1|9999040447|MR|Test|E|Lead 40447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040448|140448|989898|1|9999040448|MR|Test|E|Lead 40448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040449|140449|989898|1|9999040449|MR|Test|E|Lead 40449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040450|140450|989898|1|9999040450|MR|Test|E|Lead 40450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040451|140451|989898|1|9999040451|MR|Test|E|Lead 40451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040452|140452|989898|1|9999040452|MR|Test|E|Lead 40452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040453|140453|989898|1|9999040453|MR|Test|E|Lead 40453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040454|140454|989898|1|9999040454|MR|Test|E|Lead 40454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040455|140455|989898|1|9999040455|MR|Test|E|Lead 40455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040456|140456|989898|1|9999040456|MR|Test|E|Lead 40456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040457|140457|989898|1|9999040457|MR|Test|E|Lead 40457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040458|140458|989898|1|9999040458|MR|Test|E|Lead 40458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040459|140459|989898|1|9999040459|MR|Test|E|Lead 40459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040460|140460|989898|1|9999040460|MR|Test|E|Lead 40460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040461|140461|989898|1|9999040461|MR|Test|E|Lead 40461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040462|140462|989898|1|9999040462|MR|Test|E|Lead 40462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040463|140463|989898|1|9999040463|MR|Test|E|Lead 40463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040464|140464|989898|1|9999040464|MR|Test|E|Lead 40464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040465|140465|989898|1|9999040465|MR|Test|E|Lead 40465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040466|140466|989898|1|9999040466|MR|Test|E|Lead 40466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040467|140467|989898|1|9999040467|MR|Test|E|Lead 40467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040468|140468|989898|1|9999040468|MR|Test|E|Lead 40468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040469|140469|989898|1|9999040469|MR|Test|E|Lead 40469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040470|140470|989898|1|9999040470|MR|Test|E|Lead 40470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040471|140471|989898|1|9999040471|MR|Test|E|Lead 40471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040472|140472|989898|1|9999040472|MR|Test|E|Lead 40472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040473|140473|989898|1|9999040473|MR|Test|E|Lead 40473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040474|140474|989898|1|9999040474|MR|Test|E|Lead 40474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040475|140475|989898|1|9999040475|MR|Test|E|Lead 40475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040476|140476|989898|1|9999040476|MR|Test|E|Lead 40476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040477|140477|989898|1|9999040477|MR|Test|E|Lead 40477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040478|140478|989898|1|9999040478|MR|Test|E|Lead 40478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040479|140479|989898|1|9999040479|MR|Test|E|Lead 40479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040480|140480|989898|1|9999040480|MR|Test|E|Lead 40480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040481|140481|989898|1|9999040481|MR|Test|E|Lead 40481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040482|140482|989898|1|9999040482|MR|Test|E|Lead 40482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040483|140483|989898|1|9999040483|MR|Test|E|Lead 40483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040484|140484|989898|1|9999040484|MR|Test|E|Lead 40484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040485|140485|989898|1|9999040485|MR|Test|E|Lead 40485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040486|140486|989898|1|9999040486|MR|Test|E|Lead 40486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040487|140487|989898|1|9999040487|MR|Test|E|Lead 40487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040488|140488|989898|1|9999040488|MR|Test|E|Lead 40488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040489|140489|989898|1|9999040489|MR|Test|E|Lead 40489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040490|140490|989898|1|9999040490|MR|Test|E|Lead 40490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040491|140491|989898|1|9999040491|MR|Test|E|Lead 40491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040492|140492|989898|1|9999040492|MR|Test|E|Lead 40492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040493|140493|989898|1|9999040493|MR|Test|E|Lead 40493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040494|140494|989898|1|9999040494|MR|Test|E|Lead 40494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040495|140495|989898|1|9999040495|MR|Test|E|Lead 40495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040496|140496|989898|1|9999040496|MR|Test|E|Lead 40496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040497|140497|989898|1|9999040497|MR|Test|E|Lead 40497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040498|140498|989898|1|9999040498|MR|Test|E|Lead 40498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040499|140499|989898|1|9999040499|MR|Test|E|Lead 40499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040500|140500|989898|1|9999040500|MR|Test|E|Lead 40500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040501|140501|989898|1|9999040501|MR|Test|E|Lead 40501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040502|140502|989898|1|9999040502|MR|Test|E|Lead 40502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040503|140503|989898|1|9999040503|MR|Test|E|Lead 40503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040504|140504|989898|1|9999040504|MR|Test|E|Lead 40504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040505|140505|989898|1|9999040505|MR|Test|E|Lead 40505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040506|140506|989898|1|9999040506|MR|Test|E|Lead 40506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040507|140507|989898|1|9999040507|MR|Test|E|Lead 40507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040508|140508|989898|1|9999040508|MR|Test|E|Lead 40508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040509|140509|989898|1|9999040509|MR|Test|E|Lead 40509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040510|140510|989898|1|9999040510|MR|Test|E|Lead 40510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040511|140511|989898|1|9999040511|MR|Test|E|Lead 40511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040512|140512|989898|1|9999040512|MR|Test|E|Lead 40512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040513|140513|989898|1|9999040513|MR|Test|E|Lead 40513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040514|140514|989898|1|9999040514|MR|Test|E|Lead 40514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040515|140515|989898|1|9999040515|MR|Test|E|Lead 40515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040516|140516|989898|1|9999040516|MR|Test|E|Lead 40516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040517|140517|989898|1|9999040517|MR|Test|E|Lead 40517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040518|140518|989898|1|9999040518|MR|Test|E|Lead 40518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040519|140519|989898|1|9999040519|MR|Test|E|Lead 40519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040520|140520|989898|1|9999040520|MR|Test|E|Lead 40520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040521|140521|989898|1|9999040521|MR|Test|E|Lead 40521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040522|140522|989898|1|9999040522|MR|Test|E|Lead 40522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040523|140523|989898|1|9999040523|MR|Test|E|Lead 40523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040524|140524|989898|1|9999040524|MR|Test|E|Lead 40524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040525|140525|989898|1|9999040525|MR|Test|E|Lead 40525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040526|140526|989898|1|9999040526|MR|Test|E|Lead 40526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040527|140527|989898|1|9999040527|MR|Test|E|Lead 40527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040528|140528|989898|1|9999040528|MR|Test|E|Lead 40528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040529|140529|989898|1|9999040529|MR|Test|E|Lead 40529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040530|140530|989898|1|9999040530|MR|Test|E|Lead 40530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040531|140531|989898|1|9999040531|MR|Test|E|Lead 40531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040532|140532|989898|1|9999040532|MR|Test|E|Lead 40532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040533|140533|989898|1|9999040533|MR|Test|E|Lead 40533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040534|140534|989898|1|9999040534|MR|Test|E|Lead 40534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040535|140535|989898|1|9999040535|MR|Test|E|Lead 40535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040536|140536|989898|1|9999040536|MR|Test|E|Lead 40536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040537|140537|989898|1|9999040537|MR|Test|E|Lead 40537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040538|140538|989898|1|9999040538|MR|Test|E|Lead 40538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040539|140539|989898|1|9999040539|MR|Test|E|Lead 40539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040540|140540|989898|1|9999040540|MR|Test|E|Lead 40540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040541|140541|989898|1|9999040541|MR|Test|E|Lead 40541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040542|140542|989898|1|9999040542|MR|Test|E|Lead 40542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040543|140543|989898|1|9999040543|MR|Test|E|Lead 40543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040544|140544|989898|1|9999040544|MR|Test|E|Lead 40544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040545|140545|989898|1|9999040545|MR|Test|E|Lead 40545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040546|140546|989898|1|9999040546|MR|Test|E|Lead 40546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040547|140547|989898|1|9999040547|MR|Test|E|Lead 40547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040548|140548|989898|1|9999040548|MR|Test|E|Lead 40548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040549|140549|989898|1|9999040549|MR|Test|E|Lead 40549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040550|140550|989898|1|9999040550|MR|Test|E|Lead 40550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040551|140551|989898|1|9999040551|MR|Test|E|Lead 40551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040552|140552|989898|1|9999040552|MR|Test|E|Lead 40552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040553|140553|989898|1|9999040553|MR|Test|E|Lead 40553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040554|140554|989898|1|9999040554|MR|Test|E|Lead 40554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040555|140555|989898|1|9999040555|MR|Test|E|Lead 40555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040556|140556|989898|1|9999040556|MR|Test|E|Lead 40556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040557|140557|989898|1|9999040557|MR|Test|E|Lead 40557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040558|140558|989898|1|9999040558|MR|Test|E|Lead 40558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040559|140559|989898|1|9999040559|MR|Test|E|Lead 40559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040560|140560|989898|1|9999040560|MR|Test|E|Lead 40560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040561|140561|989898|1|9999040561|MR|Test|E|Lead 40561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040562|140562|989898|1|9999040562|MR|Test|E|Lead 40562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040563|140563|989898|1|9999040563|MR|Test|E|Lead 40563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040564|140564|989898|1|9999040564|MR|Test|E|Lead 40564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040565|140565|989898|1|9999040565|MR|Test|E|Lead 40565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040566|140566|989898|1|9999040566|MR|Test|E|Lead 40566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040567|140567|989898|1|9999040567|MR|Test|E|Lead 40567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040568|140568|989898|1|9999040568|MR|Test|E|Lead 40568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040569|140569|989898|1|9999040569|MR|Test|E|Lead 40569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040570|140570|989898|1|9999040570|MR|Test|E|Lead 40570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040571|140571|989898|1|9999040571|MR|Test|E|Lead 40571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040572|140572|989898|1|9999040572|MR|Test|E|Lead 40572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040573|140573|989898|1|9999040573|MR|Test|E|Lead 40573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040574|140574|989898|1|9999040574|MR|Test|E|Lead 40574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040575|140575|989898|1|9999040575|MR|Test|E|Lead 40575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040576|140576|989898|1|9999040576|MR|Test|E|Lead 40576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040577|140577|989898|1|9999040577|MR|Test|E|Lead 40577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040578|140578|989898|1|9999040578|MR|Test|E|Lead 40578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040579|140579|989898|1|9999040579|MR|Test|E|Lead 40579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040580|140580|989898|1|9999040580|MR|Test|E|Lead 40580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040581|140581|989898|1|9999040581|MR|Test|E|Lead 40581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040582|140582|989898|1|9999040582|MR|Test|E|Lead 40582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040583|140583|989898|1|9999040583|MR|Test|E|Lead 40583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040584|140584|989898|1|9999040584|MR|Test|E|Lead 40584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040585|140585|989898|1|9999040585|MR|Test|E|Lead 40585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040586|140586|989898|1|9999040586|MR|Test|E|Lead 40586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040587|140587|989898|1|9999040587|MR|Test|E|Lead 40587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040588|140588|989898|1|9999040588|MR|Test|E|Lead 40588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040589|140589|989898|1|9999040589|MR|Test|E|Lead 40589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040590|140590|989898|1|9999040590|MR|Test|E|Lead 40590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040591|140591|989898|1|9999040591|MR|Test|E|Lead 40591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040592|140592|989898|1|9999040592|MR|Test|E|Lead 40592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040593|140593|989898|1|9999040593|MR|Test|E|Lead 40593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040594|140594|989898|1|9999040594|MR|Test|E|Lead 40594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040595|140595|989898|1|9999040595|MR|Test|E|Lead 40595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040596|140596|989898|1|9999040596|MR|Test|E|Lead 40596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040597|140597|989898|1|9999040597|MR|Test|E|Lead 40597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040598|140598|989898|1|9999040598|MR|Test|E|Lead 40598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040599|140599|989898|1|9999040599|MR|Test|E|Lead 40599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040600|140600|989898|1|9999040600|MR|Test|E|Lead 40600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040601|140601|989898|1|9999040601|MR|Test|E|Lead 40601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040602|140602|989898|1|9999040602|MR|Test|E|Lead 40602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040603|140603|989898|1|9999040603|MR|Test|E|Lead 40603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040604|140604|989898|1|9999040604|MR|Test|E|Lead 40604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040605|140605|989898|1|9999040605|MR|Test|E|Lead 40605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040606|140606|989898|1|9999040606|MR|Test|E|Lead 40606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040607|140607|989898|1|9999040607|MR|Test|E|Lead 40607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040608|140608|989898|1|9999040608|MR|Test|E|Lead 40608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040609|140609|989898|1|9999040609|MR|Test|E|Lead 40609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040610|140610|989898|1|9999040610|MR|Test|E|Lead 40610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040611|140611|989898|1|9999040611|MR|Test|E|Lead 40611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040612|140612|989898|1|9999040612|MR|Test|E|Lead 40612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040613|140613|989898|1|9999040613|MR|Test|E|Lead 40613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040614|140614|989898|1|9999040614|MR|Test|E|Lead 40614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040615|140615|989898|1|9999040615|MR|Test|E|Lead 40615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040616|140616|989898|1|9999040616|MR|Test|E|Lead 40616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040617|140617|989898|1|9999040617|MR|Test|E|Lead 40617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040618|140618|989898|1|9999040618|MR|Test|E|Lead 40618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040619|140619|989898|1|9999040619|MR|Test|E|Lead 40619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040620|140620|989898|1|9999040620|MR|Test|E|Lead 40620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040621|140621|989898|1|9999040621|MR|Test|E|Lead 40621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040622|140622|989898|1|9999040622|MR|Test|E|Lead 40622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040623|140623|989898|1|9999040623|MR|Test|E|Lead 40623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040624|140624|989898|1|9999040624|MR|Test|E|Lead 40624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040625|140625|989898|1|9999040625|MR|Test|E|Lead 40625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040626|140626|989898|1|9999040626|MR|Test|E|Lead 40626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040627|140627|989898|1|9999040627|MR|Test|E|Lead 40627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040628|140628|989898|1|9999040628|MR|Test|E|Lead 40628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040629|140629|989898|1|9999040629|MR|Test|E|Lead 40629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040630|140630|989898|1|9999040630|MR|Test|E|Lead 40630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040631|140631|989898|1|9999040631|MR|Test|E|Lead 40631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040632|140632|989898|1|9999040632|MR|Test|E|Lead 40632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040633|140633|989898|1|9999040633|MR|Test|E|Lead 40633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040634|140634|989898|1|9999040634|MR|Test|E|Lead 40634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040635|140635|989898|1|9999040635|MR|Test|E|Lead 40635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040636|140636|989898|1|9999040636|MR|Test|E|Lead 40636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040637|140637|989898|1|9999040637|MR|Test|E|Lead 40637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040638|140638|989898|1|9999040638|MR|Test|E|Lead 40638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040639|140639|989898|1|9999040639|MR|Test|E|Lead 40639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040640|140640|989898|1|9999040640|MR|Test|E|Lead 40640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040641|140641|989898|1|9999040641|MR|Test|E|Lead 40641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040642|140642|989898|1|9999040642|MR|Test|E|Lead 40642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040643|140643|989898|1|9999040643|MR|Test|E|Lead 40643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040644|140644|989898|1|9999040644|MR|Test|E|Lead 40644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040645|140645|989898|1|9999040645|MR|Test|E|Lead 40645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040646|140646|989898|1|9999040646|MR|Test|E|Lead 40646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040647|140647|989898|1|9999040647|MR|Test|E|Lead 40647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040648|140648|989898|1|9999040648|MR|Test|E|Lead 40648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040649|140649|989898|1|9999040649|MR|Test|E|Lead 40649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040650|140650|989898|1|9999040650|MR|Test|E|Lead 40650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040651|140651|989898|1|9999040651|MR|Test|E|Lead 40651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040652|140652|989898|1|9999040652|MR|Test|E|Lead 40652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040653|140653|989898|1|9999040653|MR|Test|E|Lead 40653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040654|140654|989898|1|9999040654|MR|Test|E|Lead 40654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040655|140655|989898|1|9999040655|MR|Test|E|Lead 40655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040656|140656|989898|1|9999040656|MR|Test|E|Lead 40656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040657|140657|989898|1|9999040657|MR|Test|E|Lead 40657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040658|140658|989898|1|9999040658|MR|Test|E|Lead 40658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040659|140659|989898|1|9999040659|MR|Test|E|Lead 40659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040660|140660|989898|1|9999040660|MR|Test|E|Lead 40660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040661|140661|989898|1|9999040661|MR|Test|E|Lead 40661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040662|140662|989898|1|9999040662|MR|Test|E|Lead 40662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040663|140663|989898|1|9999040663|MR|Test|E|Lead 40663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040664|140664|989898|1|9999040664|MR|Test|E|Lead 40664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040665|140665|989898|1|9999040665|MR|Test|E|Lead 40665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040666|140666|989898|1|9999040666|MR|Test|E|Lead 40666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040667|140667|989898|1|9999040667|MR|Test|E|Lead 40667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040668|140668|989898|1|9999040668|MR|Test|E|Lead 40668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040669|140669|989898|1|9999040669|MR|Test|E|Lead 40669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040670|140670|989898|1|9999040670|MR|Test|E|Lead 40670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040671|140671|989898|1|9999040671|MR|Test|E|Lead 40671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040672|140672|989898|1|9999040672|MR|Test|E|Lead 40672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040673|140673|989898|1|9999040673|MR|Test|E|Lead 40673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040674|140674|989898|1|9999040674|MR|Test|E|Lead 40674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040675|140675|989898|1|9999040675|MR|Test|E|Lead 40675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040676|140676|989898|1|9999040676|MR|Test|E|Lead 40676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040677|140677|989898|1|9999040677|MR|Test|E|Lead 40677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040678|140678|989898|1|9999040678|MR|Test|E|Lead 40678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040679|140679|989898|1|9999040679|MR|Test|E|Lead 40679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040680|140680|989898|1|9999040680|MR|Test|E|Lead 40680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040681|140681|989898|1|9999040681|MR|Test|E|Lead 40681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040682|140682|989898|1|9999040682|MR|Test|E|Lead 40682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040683|140683|989898|1|9999040683|MR|Test|E|Lead 40683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040684|140684|989898|1|9999040684|MR|Test|E|Lead 40684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040685|140685|989898|1|9999040685|MR|Test|E|Lead 40685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040686|140686|989898|1|9999040686|MR|Test|E|Lead 40686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040687|140687|989898|1|9999040687|MR|Test|E|Lead 40687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040688|140688|989898|1|9999040688|MR|Test|E|Lead 40688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040689|140689|989898|1|9999040689|MR|Test|E|Lead 40689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040690|140690|989898|1|9999040690|MR|Test|E|Lead 40690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040691|140691|989898|1|9999040691|MR|Test|E|Lead 40691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040692|140692|989898|1|9999040692|MR|Test|E|Lead 40692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040693|140693|989898|1|9999040693|MR|Test|E|Lead 40693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040694|140694|989898|1|9999040694|MR|Test|E|Lead 40694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040695|140695|989898|1|9999040695|MR|Test|E|Lead 40695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040696|140696|989898|1|9999040696|MR|Test|E|Lead 40696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040697|140697|989898|1|9999040697|MR|Test|E|Lead 40697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040698|140698|989898|1|9999040698|MR|Test|E|Lead 40698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040699|140699|989898|1|9999040699|MR|Test|E|Lead 40699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040700|140700|989898|1|9999040700|MR|Test|E|Lead 40700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040701|140701|989898|1|9999040701|MR|Test|E|Lead 40701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040702|140702|989898|1|9999040702|MR|Test|E|Lead 40702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040703|140703|989898|1|9999040703|MR|Test|E|Lead 40703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040704|140704|989898|1|9999040704|MR|Test|E|Lead 40704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040705|140705|989898|1|9999040705|MR|Test|E|Lead 40705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040706|140706|989898|1|9999040706|MR|Test|E|Lead 40706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040707|140707|989898|1|9999040707|MR|Test|E|Lead 40707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040708|140708|989898|1|9999040708|MR|Test|E|Lead 40708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040709|140709|989898|1|9999040709|MR|Test|E|Lead 40709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040710|140710|989898|1|9999040710|MR|Test|E|Lead 40710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040711|140711|989898|1|9999040711|MR|Test|E|Lead 40711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040712|140712|989898|1|9999040712|MR|Test|E|Lead 40712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040713|140713|989898|1|9999040713|MR|Test|E|Lead 40713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040714|140714|989898|1|9999040714|MR|Test|E|Lead 40714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040715|140715|989898|1|9999040715|MR|Test|E|Lead 40715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040716|140716|989898|1|9999040716|MR|Test|E|Lead 40716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040717|140717|989898|1|9999040717|MR|Test|E|Lead 40717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040718|140718|989898|1|9999040718|MR|Test|E|Lead 40718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040719|140719|989898|1|9999040719|MR|Test|E|Lead 40719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040720|140720|989898|1|9999040720|MR|Test|E|Lead 40720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040721|140721|989898|1|9999040721|MR|Test|E|Lead 40721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040722|140722|989898|1|9999040722|MR|Test|E|Lead 40722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040723|140723|989898|1|9999040723|MR|Test|E|Lead 40723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040724|140724|989898|1|9999040724|MR|Test|E|Lead 40724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040725|140725|989898|1|9999040725|MR|Test|E|Lead 40725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040726|140726|989898|1|9999040726|MR|Test|E|Lead 40726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040727|140727|989898|1|9999040727|MR|Test|E|Lead 40727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040728|140728|989898|1|9999040728|MR|Test|E|Lead 40728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040729|140729|989898|1|9999040729|MR|Test|E|Lead 40729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040730|140730|989898|1|9999040730|MR|Test|E|Lead 40730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040731|140731|989898|1|9999040731|MR|Test|E|Lead 40731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040732|140732|989898|1|9999040732|MR|Test|E|Lead 40732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040733|140733|989898|1|9999040733|MR|Test|E|Lead 40733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040734|140734|989898|1|9999040734|MR|Test|E|Lead 40734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040735|140735|989898|1|9999040735|MR|Test|E|Lead 40735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040736|140736|989898|1|9999040736|MR|Test|E|Lead 40736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040737|140737|989898|1|9999040737|MR|Test|E|Lead 40737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040738|140738|989898|1|9999040738|MR|Test|E|Lead 40738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040739|140739|989898|1|9999040739|MR|Test|E|Lead 40739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040740|140740|989898|1|9999040740|MR|Test|E|Lead 40740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040741|140741|989898|1|9999040741|MR|Test|E|Lead 40741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040742|140742|989898|1|9999040742|MR|Test|E|Lead 40742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040743|140743|989898|1|9999040743|MR|Test|E|Lead 40743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040744|140744|989898|1|9999040744|MR|Test|E|Lead 40744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040745|140745|989898|1|9999040745|MR|Test|E|Lead 40745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040746|140746|989898|1|9999040746|MR|Test|E|Lead 40746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040747|140747|989898|1|9999040747|MR|Test|E|Lead 40747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040748|140748|989898|1|9999040748|MR|Test|E|Lead 40748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040749|140749|989898|1|9999040749|MR|Test|E|Lead 40749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040750|140750|989898|1|9999040750|MR|Test|E|Lead 40750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040751|140751|989898|1|9999040751|MR|Test|E|Lead 40751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040752|140752|989898|1|9999040752|MR|Test|E|Lead 40752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040753|140753|989898|1|9999040753|MR|Test|E|Lead 40753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040754|140754|989898|1|9999040754|MR|Test|E|Lead 40754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040755|140755|989898|1|9999040755|MR|Test|E|Lead 40755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040756|140756|989898|1|9999040756|MR|Test|E|Lead 40756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040757|140757|989898|1|9999040757|MR|Test|E|Lead 40757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040758|140758|989898|1|9999040758|MR|Test|E|Lead 40758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040759|140759|989898|1|9999040759|MR|Test|E|Lead 40759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040760|140760|989898|1|9999040760|MR|Test|E|Lead 40760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040761|140761|989898|1|9999040761|MR|Test|E|Lead 40761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040762|140762|989898|1|9999040762|MR|Test|E|Lead 40762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040763|140763|989898|1|9999040763|MR|Test|E|Lead 40763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040764|140764|989898|1|9999040764|MR|Test|E|Lead 40764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040765|140765|989898|1|9999040765|MR|Test|E|Lead 40765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040766|140766|989898|1|9999040766|MR|Test|E|Lead 40766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040767|140767|989898|1|9999040767|MR|Test|E|Lead 40767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040768|140768|989898|1|9999040768|MR|Test|E|Lead 40768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040769|140769|989898|1|9999040769|MR|Test|E|Lead 40769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040770|140770|989898|1|9999040770|MR|Test|E|Lead 40770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040771|140771|989898|1|9999040771|MR|Test|E|Lead 40771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040772|140772|989898|1|9999040772|MR|Test|E|Lead 40772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040773|140773|989898|1|9999040773|MR|Test|E|Lead 40773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040774|140774|989898|1|9999040774|MR|Test|E|Lead 40774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040775|140775|989898|1|9999040775|MR|Test|E|Lead 40775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040776|140776|989898|1|9999040776|MR|Test|E|Lead 40776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040777|140777|989898|1|9999040777|MR|Test|E|Lead 40777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040778|140778|989898|1|9999040778|MR|Test|E|Lead 40778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040779|140779|989898|1|9999040779|MR|Test|E|Lead 40779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040780|140780|989898|1|9999040780|MR|Test|E|Lead 40780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040781|140781|989898|1|9999040781|MR|Test|E|Lead 40781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040782|140782|989898|1|9999040782|MR|Test|E|Lead 40782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040783|140783|989898|1|9999040783|MR|Test|E|Lead 40783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040784|140784|989898|1|9999040784|MR|Test|E|Lead 40784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040785|140785|989898|1|9999040785|MR|Test|E|Lead 40785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040786|140786|989898|1|9999040786|MR|Test|E|Lead 40786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040787|140787|989898|1|9999040787|MR|Test|E|Lead 40787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040788|140788|989898|1|9999040788|MR|Test|E|Lead 40788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040789|140789|989898|1|9999040789|MR|Test|E|Lead 40789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040790|140790|989898|1|9999040790|MR|Test|E|Lead 40790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040791|140791|989898|1|9999040791|MR|Test|E|Lead 40791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040792|140792|989898|1|9999040792|MR|Test|E|Lead 40792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040793|140793|989898|1|9999040793|MR|Test|E|Lead 40793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040794|140794|989898|1|9999040794|MR|Test|E|Lead 40794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040795|140795|989898|1|9999040795|MR|Test|E|Lead 40795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040796|140796|989898|1|9999040796|MR|Test|E|Lead 40796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040797|140797|989898|1|9999040797|MR|Test|E|Lead 40797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040798|140798|989898|1|9999040798|MR|Test|E|Lead 40798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040799|140799|989898|1|9999040799|MR|Test|E|Lead 40799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040800|140800|989898|1|9999040800|MR|Test|E|Lead 40800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040801|140801|989898|1|9999040801|MR|Test|E|Lead 40801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040802|140802|989898|1|9999040802|MR|Test|E|Lead 40802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040803|140803|989898|1|9999040803|MR|Test|E|Lead 40803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040804|140804|989898|1|9999040804|MR|Test|E|Lead 40804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040805|140805|989898|1|9999040805|MR|Test|E|Lead 40805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040806|140806|989898|1|9999040806|MR|Test|E|Lead 40806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040807|140807|989898|1|9999040807|MR|Test|E|Lead 40807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040808|140808|989898|1|9999040808|MR|Test|E|Lead 40808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040809|140809|989898|1|9999040809|MR|Test|E|Lead 40809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040810|140810|989898|1|9999040810|MR|Test|E|Lead 40810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040811|140811|989898|1|9999040811|MR|Test|E|Lead 40811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040812|140812|989898|1|9999040812|MR|Test|E|Lead 40812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040813|140813|989898|1|9999040813|MR|Test|E|Lead 40813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040814|140814|989898|1|9999040814|MR|Test|E|Lead 40814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040815|140815|989898|1|9999040815|MR|Test|E|Lead 40815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040816|140816|989898|1|9999040816|MR|Test|E|Lead 40816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040817|140817|989898|1|9999040817|MR|Test|E|Lead 40817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040818|140818|989898|1|9999040818|MR|Test|E|Lead 40818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040819|140819|989898|1|9999040819|MR|Test|E|Lead 40819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040820|140820|989898|1|9999040820|MR|Test|E|Lead 40820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040821|140821|989898|1|9999040821|MR|Test|E|Lead 40821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040822|140822|989898|1|9999040822|MR|Test|E|Lead 40822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040823|140823|989898|1|9999040823|MR|Test|E|Lead 40823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040824|140824|989898|1|9999040824|MR|Test|E|Lead 40824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040825|140825|989898|1|9999040825|MR|Test|E|Lead 40825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040826|140826|989898|1|9999040826|MR|Test|E|Lead 40826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040827|140827|989898|1|9999040827|MR|Test|E|Lead 40827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040828|140828|989898|1|9999040828|MR|Test|E|Lead 40828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040829|140829|989898|1|9999040829|MR|Test|E|Lead 40829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040830|140830|989898|1|9999040830|MR|Test|E|Lead 40830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040831|140831|989898|1|9999040831|MR|Test|E|Lead 40831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040832|140832|989898|1|9999040832|MR|Test|E|Lead 40832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040833|140833|989898|1|9999040833|MR|Test|E|Lead 40833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040834|140834|989898|1|9999040834|MR|Test|E|Lead 40834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040835|140835|989898|1|9999040835|MR|Test|E|Lead 40835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040836|140836|989898|1|9999040836|MR|Test|E|Lead 40836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040837|140837|989898|1|9999040837|MR|Test|E|Lead 40837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040838|140838|989898|1|9999040838|MR|Test|E|Lead 40838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040839|140839|989898|1|9999040839|MR|Test|E|Lead 40839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040840|140840|989898|1|9999040840|MR|Test|E|Lead 40840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040841|140841|989898|1|9999040841|MR|Test|E|Lead 40841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040842|140842|989898|1|9999040842|MR|Test|E|Lead 40842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040843|140843|989898|1|9999040843|MR|Test|E|Lead 40843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040844|140844|989898|1|9999040844|MR|Test|E|Lead 40844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040845|140845|989898|1|9999040845|MR|Test|E|Lead 40845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040846|140846|989898|1|9999040846|MR|Test|E|Lead 40846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040847|140847|989898|1|9999040847|MR|Test|E|Lead 40847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040848|140848|989898|1|9999040848|MR|Test|E|Lead 40848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040849|140849|989898|1|9999040849|MR|Test|E|Lead 40849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040850|140850|989898|1|9999040850|MR|Test|E|Lead 40850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040851|140851|989898|1|9999040851|MR|Test|E|Lead 40851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040852|140852|989898|1|9999040852|MR|Test|E|Lead 40852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040853|140853|989898|1|9999040853|MR|Test|E|Lead 40853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040854|140854|989898|1|9999040854|MR|Test|E|Lead 40854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040855|140855|989898|1|9999040855|MR|Test|E|Lead 40855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040856|140856|989898|1|9999040856|MR|Test|E|Lead 40856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040857|140857|989898|1|9999040857|MR|Test|E|Lead 40857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040858|140858|989898|1|9999040858|MR|Test|E|Lead 40858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040859|140859|989898|1|9999040859|MR|Test|E|Lead 40859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040860|140860|989898|1|9999040860|MR|Test|E|Lead 40860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040861|140861|989898|1|9999040861|MR|Test|E|Lead 40861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040862|140862|989898|1|9999040862|MR|Test|E|Lead 40862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040863|140863|989898|1|9999040863|MR|Test|E|Lead 40863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040864|140864|989898|1|9999040864|MR|Test|E|Lead 40864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040865|140865|989898|1|9999040865|MR|Test|E|Lead 40865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040866|140866|989898|1|9999040866|MR|Test|E|Lead 40866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040867|140867|989898|1|9999040867|MR|Test|E|Lead 40867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040868|140868|989898|1|9999040868|MR|Test|E|Lead 40868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040869|140869|989898|1|9999040869|MR|Test|E|Lead 40869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040870|140870|989898|1|9999040870|MR|Test|E|Lead 40870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040871|140871|989898|1|9999040871|MR|Test|E|Lead 40871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040872|140872|989898|1|9999040872|MR|Test|E|Lead 40872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040873|140873|989898|1|9999040873|MR|Test|E|Lead 40873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040874|140874|989898|1|9999040874|MR|Test|E|Lead 40874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040875|140875|989898|1|9999040875|MR|Test|E|Lead 40875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040876|140876|989898|1|9999040876|MR|Test|E|Lead 40876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040877|140877|989898|1|9999040877|MR|Test|E|Lead 40877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040878|140878|989898|1|9999040878|MR|Test|E|Lead 40878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040879|140879|989898|1|9999040879|MR|Test|E|Lead 40879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040880|140880|989898|1|9999040880|MR|Test|E|Lead 40880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040881|140881|989898|1|9999040881|MR|Test|E|Lead 40881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040882|140882|989898|1|9999040882|MR|Test|E|Lead 40882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040883|140883|989898|1|9999040883|MR|Test|E|Lead 40883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040884|140884|989898|1|9999040884|MR|Test|E|Lead 40884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040885|140885|989898|1|9999040885|MR|Test|E|Lead 40885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040886|140886|989898|1|9999040886|MR|Test|E|Lead 40886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040887|140887|989898|1|9999040887|MR|Test|E|Lead 40887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040888|140888|989898|1|9999040888|MR|Test|E|Lead 40888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040889|140889|989898|1|9999040889|MR|Test|E|Lead 40889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040890|140890|989898|1|9999040890|MR|Test|E|Lead 40890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040891|140891|989898|1|9999040891|MR|Test|E|Lead 40891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040892|140892|989898|1|9999040892|MR|Test|E|Lead 40892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040893|140893|989898|1|9999040893|MR|Test|E|Lead 40893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040894|140894|989898|1|9999040894|MR|Test|E|Lead 40894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040895|140895|989898|1|9999040895|MR|Test|E|Lead 40895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040896|140896|989898|1|9999040896|MR|Test|E|Lead 40896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040897|140897|989898|1|9999040897|MR|Test|E|Lead 40897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040898|140898|989898|1|9999040898|MR|Test|E|Lead 40898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040899|140899|989898|1|9999040899|MR|Test|E|Lead 40899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040900|140900|989898|1|9999040900|MR|Test|E|Lead 40900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040901|140901|989898|1|9999040901|MR|Test|E|Lead 40901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040902|140902|989898|1|9999040902|MR|Test|E|Lead 40902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040903|140903|989898|1|9999040903|MR|Test|E|Lead 40903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040904|140904|989898|1|9999040904|MR|Test|E|Lead 40904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040905|140905|989898|1|9999040905|MR|Test|E|Lead 40905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040906|140906|989898|1|9999040906|MR|Test|E|Lead 40906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040907|140907|989898|1|9999040907|MR|Test|E|Lead 40907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040908|140908|989898|1|9999040908|MR|Test|E|Lead 40908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040909|140909|989898|1|9999040909|MR|Test|E|Lead 40909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040910|140910|989898|1|9999040910|MR|Test|E|Lead 40910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040911|140911|989898|1|9999040911|MR|Test|E|Lead 40911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040912|140912|989898|1|9999040912|MR|Test|E|Lead 40912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040913|140913|989898|1|9999040913|MR|Test|E|Lead 40913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040914|140914|989898|1|9999040914|MR|Test|E|Lead 40914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040915|140915|989898|1|9999040915|MR|Test|E|Lead 40915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040916|140916|989898|1|9999040916|MR|Test|E|Lead 40916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040917|140917|989898|1|9999040917|MR|Test|E|Lead 40917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040918|140918|989898|1|9999040918|MR|Test|E|Lead 40918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040919|140919|989898|1|9999040919|MR|Test|E|Lead 40919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040920|140920|989898|1|9999040920|MR|Test|E|Lead 40920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040921|140921|989898|1|9999040921|MR|Test|E|Lead 40921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040922|140922|989898|1|9999040922|MR|Test|E|Lead 40922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040923|140923|989898|1|9999040923|MR|Test|E|Lead 40923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040924|140924|989898|1|9999040924|MR|Test|E|Lead 40924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040925|140925|989898|1|9999040925|MR|Test|E|Lead 40925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040926|140926|989898|1|9999040926|MR|Test|E|Lead 40926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040927|140927|989898|1|9999040927|MR|Test|E|Lead 40927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040928|140928|989898|1|9999040928|MR|Test|E|Lead 40928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040929|140929|989898|1|9999040929|MR|Test|E|Lead 40929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040930|140930|989898|1|9999040930|MR|Test|E|Lead 40930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040931|140931|989898|1|9999040931|MR|Test|E|Lead 40931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040932|140932|989898|1|9999040932|MR|Test|E|Lead 40932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040933|140933|989898|1|9999040933|MR|Test|E|Lead 40933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040934|140934|989898|1|9999040934|MR|Test|E|Lead 40934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040935|140935|989898|1|9999040935|MR|Test|E|Lead 40935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040936|140936|989898|1|9999040936|MR|Test|E|Lead 40936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040937|140937|989898|1|9999040937|MR|Test|E|Lead 40937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040938|140938|989898|1|9999040938|MR|Test|E|Lead 40938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040939|140939|989898|1|9999040939|MR|Test|E|Lead 40939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040940|140940|989898|1|9999040940|MR|Test|E|Lead 40940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040941|140941|989898|1|9999040941|MR|Test|E|Lead 40941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040942|140942|989898|1|9999040942|MR|Test|E|Lead 40942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040943|140943|989898|1|9999040943|MR|Test|E|Lead 40943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040944|140944|989898|1|9999040944|MR|Test|E|Lead 40944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040945|140945|989898|1|9999040945|MR|Test|E|Lead 40945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040946|140946|989898|1|9999040946|MR|Test|E|Lead 40946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040947|140947|989898|1|9999040947|MR|Test|E|Lead 40947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040948|140948|989898|1|9999040948|MR|Test|E|Lead 40948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040949|140949|989898|1|9999040949|MR|Test|E|Lead 40949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040950|140950|989898|1|9999040950|MR|Test|E|Lead 40950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040951|140951|989898|1|9999040951|MR|Test|E|Lead 40951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040952|140952|989898|1|9999040952|MR|Test|E|Lead 40952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040953|140953|989898|1|9999040953|MR|Test|E|Lead 40953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040954|140954|989898|1|9999040954|MR|Test|E|Lead 40954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040955|140955|989898|1|9999040955|MR|Test|E|Lead 40955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040956|140956|989898|1|9999040956|MR|Test|E|Lead 40956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040957|140957|989898|1|9999040957|MR|Test|E|Lead 40957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040958|140958|989898|1|9999040958|MR|Test|E|Lead 40958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040959|140959|989898|1|9999040959|MR|Test|E|Lead 40959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040960|140960|989898|1|9999040960|MR|Test|E|Lead 40960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040961|140961|989898|1|9999040961|MR|Test|E|Lead 40961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040962|140962|989898|1|9999040962|MR|Test|E|Lead 40962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040963|140963|989898|1|9999040963|MR|Test|E|Lead 40963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040964|140964|989898|1|9999040964|MR|Test|E|Lead 40964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040965|140965|989898|1|9999040965|MR|Test|E|Lead 40965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040966|140966|989898|1|9999040966|MR|Test|E|Lead 40966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040967|140967|989898|1|9999040967|MR|Test|E|Lead 40967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040968|140968|989898|1|9999040968|MR|Test|E|Lead 40968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040969|140969|989898|1|9999040969|MR|Test|E|Lead 40969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040970|140970|989898|1|9999040970|MR|Test|E|Lead 40970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040971|140971|989898|1|9999040971|MR|Test|E|Lead 40971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040972|140972|989898|1|9999040972|MR|Test|E|Lead 40972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040973|140973|989898|1|9999040973|MR|Test|E|Lead 40973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040974|140974|989898|1|9999040974|MR|Test|E|Lead 40974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040975|140975|989898|1|9999040975|MR|Test|E|Lead 40975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040976|140976|989898|1|9999040976|MR|Test|E|Lead 40976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040977|140977|989898|1|9999040977|MR|Test|E|Lead 40977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040978|140978|989898|1|9999040978|MR|Test|E|Lead 40978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040979|140979|989898|1|9999040979|MR|Test|E|Lead 40979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040980|140980|989898|1|9999040980|MR|Test|E|Lead 40980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040981|140981|989898|1|9999040981|MR|Test|E|Lead 40981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040982|140982|989898|1|9999040982|MR|Test|E|Lead 40982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040983|140983|989898|1|9999040983|MR|Test|E|Lead 40983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040984|140984|989898|1|9999040984|MR|Test|E|Lead 40984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040985|140985|989898|1|9999040985|MR|Test|E|Lead 40985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040986|140986|989898|1|9999040986|MR|Test|E|Lead 40986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040987|140987|989898|1|9999040987|MR|Test|E|Lead 40987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040988|140988|989898|1|9999040988|MR|Test|E|Lead 40988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040989|140989|989898|1|9999040989|MR|Test|E|Lead 40989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040990|140990|989898|1|9999040990|MR|Test|E|Lead 40990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040991|140991|989898|1|9999040991|MR|Test|E|Lead 40991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040992|140992|989898|1|9999040992|MR|Test|E|Lead 40992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040993|140993|989898|1|9999040993|MR|Test|E|Lead 40993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040994|140994|989898|1|9999040994|MR|Test|E|Lead 40994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040995|140995|989898|1|9999040995|MR|Test|E|Lead 40995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040996|140996|989898|1|9999040996|MR|Test|E|Lead 40996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040997|140997|989898|1|9999040997|MR|Test|E|Lead 40997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040998|140998|989898|1|9999040998|MR|Test|E|Lead 40998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1040999|140999|989898|1|9999040999|MR|Test|E|Lead 40999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041000|141000|989898|1|9999041000|MR|Test|E|Lead 41000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041001|141001|989898|1|9999041001|MR|Test|E|Lead 41001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041002|141002|989898|1|9999041002|MR|Test|E|Lead 41002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041003|141003|989898|1|9999041003|MR|Test|E|Lead 41003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041004|141004|989898|1|9999041004|MR|Test|E|Lead 41004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041005|141005|989898|1|9999041005|MR|Test|E|Lead 41005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041006|141006|989898|1|9999041006|MR|Test|E|Lead 41006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041007|141007|989898|1|9999041007|MR|Test|E|Lead 41007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041008|141008|989898|1|9999041008|MR|Test|E|Lead 41008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041009|141009|989898|1|9999041009|MR|Test|E|Lead 41009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041010|141010|989898|1|9999041010|MR|Test|E|Lead 41010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041011|141011|989898|1|9999041011|MR|Test|E|Lead 41011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041012|141012|989898|1|9999041012|MR|Test|E|Lead 41012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041013|141013|989898|1|9999041013|MR|Test|E|Lead 41013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041014|141014|989898|1|9999041014|MR|Test|E|Lead 41014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041015|141015|989898|1|9999041015|MR|Test|E|Lead 41015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041016|141016|989898|1|9999041016|MR|Test|E|Lead 41016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041017|141017|989898|1|9999041017|MR|Test|E|Lead 41017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041018|141018|989898|1|9999041018|MR|Test|E|Lead 41018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041019|141019|989898|1|9999041019|MR|Test|E|Lead 41019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041020|141020|989898|1|9999041020|MR|Test|E|Lead 41020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041021|141021|989898|1|9999041021|MR|Test|E|Lead 41021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041022|141022|989898|1|9999041022|MR|Test|E|Lead 41022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041023|141023|989898|1|9999041023|MR|Test|E|Lead 41023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041024|141024|989898|1|9999041024|MR|Test|E|Lead 41024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041025|141025|989898|1|9999041025|MR|Test|E|Lead 41025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041026|141026|989898|1|9999041026|MR|Test|E|Lead 41026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041027|141027|989898|1|9999041027|MR|Test|E|Lead 41027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041028|141028|989898|1|9999041028|MR|Test|E|Lead 41028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041029|141029|989898|1|9999041029|MR|Test|E|Lead 41029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041030|141030|989898|1|9999041030|MR|Test|E|Lead 41030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041031|141031|989898|1|9999041031|MR|Test|E|Lead 41031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041032|141032|989898|1|9999041032|MR|Test|E|Lead 41032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041033|141033|989898|1|9999041033|MR|Test|E|Lead 41033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041034|141034|989898|1|9999041034|MR|Test|E|Lead 41034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041035|141035|989898|1|9999041035|MR|Test|E|Lead 41035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041036|141036|989898|1|9999041036|MR|Test|E|Lead 41036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041037|141037|989898|1|9999041037|MR|Test|E|Lead 41037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041038|141038|989898|1|9999041038|MR|Test|E|Lead 41038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041039|141039|989898|1|9999041039|MR|Test|E|Lead 41039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041040|141040|989898|1|9999041040|MR|Test|E|Lead 41040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041041|141041|989898|1|9999041041|MR|Test|E|Lead 41041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041042|141042|989898|1|9999041042|MR|Test|E|Lead 41042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041043|141043|989898|1|9999041043|MR|Test|E|Lead 41043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041044|141044|989898|1|9999041044|MR|Test|E|Lead 41044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041045|141045|989898|1|9999041045|MR|Test|E|Lead 41045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041046|141046|989898|1|9999041046|MR|Test|E|Lead 41046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041047|141047|989898|1|9999041047|MR|Test|E|Lead 41047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041048|141048|989898|1|9999041048|MR|Test|E|Lead 41048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041049|141049|989898|1|9999041049|MR|Test|E|Lead 41049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041050|141050|989898|1|9999041050|MR|Test|E|Lead 41050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041051|141051|989898|1|9999041051|MR|Test|E|Lead 41051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041052|141052|989898|1|9999041052|MR|Test|E|Lead 41052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041053|141053|989898|1|9999041053|MR|Test|E|Lead 41053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041054|141054|989898|1|9999041054|MR|Test|E|Lead 41054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041055|141055|989898|1|9999041055|MR|Test|E|Lead 41055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041056|141056|989898|1|9999041056|MR|Test|E|Lead 41056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041057|141057|989898|1|9999041057|MR|Test|E|Lead 41057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041058|141058|989898|1|9999041058|MR|Test|E|Lead 41058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041059|141059|989898|1|9999041059|MR|Test|E|Lead 41059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041060|141060|989898|1|9999041060|MR|Test|E|Lead 41060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041061|141061|989898|1|9999041061|MR|Test|E|Lead 41061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041062|141062|989898|1|9999041062|MR|Test|E|Lead 41062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041063|141063|989898|1|9999041063|MR|Test|E|Lead 41063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041064|141064|989898|1|9999041064|MR|Test|E|Lead 41064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041065|141065|989898|1|9999041065|MR|Test|E|Lead 41065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041066|141066|989898|1|9999041066|MR|Test|E|Lead 41066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041067|141067|989898|1|9999041067|MR|Test|E|Lead 41067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041068|141068|989898|1|9999041068|MR|Test|E|Lead 41068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041069|141069|989898|1|9999041069|MR|Test|E|Lead 41069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041070|141070|989898|1|9999041070|MR|Test|E|Lead 41070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041071|141071|989898|1|9999041071|MR|Test|E|Lead 41071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041072|141072|989898|1|9999041072|MR|Test|E|Lead 41072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041073|141073|989898|1|9999041073|MR|Test|E|Lead 41073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041074|141074|989898|1|9999041074|MR|Test|E|Lead 41074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041075|141075|989898|1|9999041075|MR|Test|E|Lead 41075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041076|141076|989898|1|9999041076|MR|Test|E|Lead 41076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041077|141077|989898|1|9999041077|MR|Test|E|Lead 41077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041078|141078|989898|1|9999041078|MR|Test|E|Lead 41078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041079|141079|989898|1|9999041079|MR|Test|E|Lead 41079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041080|141080|989898|1|9999041080|MR|Test|E|Lead 41080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041081|141081|989898|1|9999041081|MR|Test|E|Lead 41081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041082|141082|989898|1|9999041082|MR|Test|E|Lead 41082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041083|141083|989898|1|9999041083|MR|Test|E|Lead 41083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041084|141084|989898|1|9999041084|MR|Test|E|Lead 41084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041085|141085|989898|1|9999041085|MR|Test|E|Lead 41085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041086|141086|989898|1|9999041086|MR|Test|E|Lead 41086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041087|141087|989898|1|9999041087|MR|Test|E|Lead 41087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041088|141088|989898|1|9999041088|MR|Test|E|Lead 41088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041089|141089|989898|1|9999041089|MR|Test|E|Lead 41089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041090|141090|989898|1|9999041090|MR|Test|E|Lead 41090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041091|141091|989898|1|9999041091|MR|Test|E|Lead 41091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041092|141092|989898|1|9999041092|MR|Test|E|Lead 41092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041093|141093|989898|1|9999041093|MR|Test|E|Lead 41093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041094|141094|989898|1|9999041094|MR|Test|E|Lead 41094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041095|141095|989898|1|9999041095|MR|Test|E|Lead 41095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041096|141096|989898|1|9999041096|MR|Test|E|Lead 41096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041097|141097|989898|1|9999041097|MR|Test|E|Lead 41097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041098|141098|989898|1|9999041098|MR|Test|E|Lead 41098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041099|141099|989898|1|9999041099|MR|Test|E|Lead 41099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041100|141100|989898|1|9999041100|MR|Test|E|Lead 41100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041101|141101|989898|1|9999041101|MR|Test|E|Lead 41101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041102|141102|989898|1|9999041102|MR|Test|E|Lead 41102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041103|141103|989898|1|9999041103|MR|Test|E|Lead 41103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041104|141104|989898|1|9999041104|MR|Test|E|Lead 41104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041105|141105|989898|1|9999041105|MR|Test|E|Lead 41105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041106|141106|989898|1|9999041106|MR|Test|E|Lead 41106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041107|141107|989898|1|9999041107|MR|Test|E|Lead 41107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041108|141108|989898|1|9999041108|MR|Test|E|Lead 41108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041109|141109|989898|1|9999041109|MR|Test|E|Lead 41109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041110|141110|989898|1|9999041110|MR|Test|E|Lead 41110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041111|141111|989898|1|9999041111|MR|Test|E|Lead 41111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041112|141112|989898|1|9999041112|MR|Test|E|Lead 41112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041113|141113|989898|1|9999041113|MR|Test|E|Lead 41113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041114|141114|989898|1|9999041114|MR|Test|E|Lead 41114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041115|141115|989898|1|9999041115|MR|Test|E|Lead 41115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041116|141116|989898|1|9999041116|MR|Test|E|Lead 41116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041117|141117|989898|1|9999041117|MR|Test|E|Lead 41117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041118|141118|989898|1|9999041118|MR|Test|E|Lead 41118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041119|141119|989898|1|9999041119|MR|Test|E|Lead 41119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041120|141120|989898|1|9999041120|MR|Test|E|Lead 41120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041121|141121|989898|1|9999041121|MR|Test|E|Lead 41121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041122|141122|989898|1|9999041122|MR|Test|E|Lead 41122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041123|141123|989898|1|9999041123|MR|Test|E|Lead 41123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041124|141124|989898|1|9999041124|MR|Test|E|Lead 41124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041125|141125|989898|1|9999041125|MR|Test|E|Lead 41125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041126|141126|989898|1|9999041126|MR|Test|E|Lead 41126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041127|141127|989898|1|9999041127|MR|Test|E|Lead 41127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041128|141128|989898|1|9999041128|MR|Test|E|Lead 41128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041129|141129|989898|1|9999041129|MR|Test|E|Lead 41129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041130|141130|989898|1|9999041130|MR|Test|E|Lead 41130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041131|141131|989898|1|9999041131|MR|Test|E|Lead 41131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041132|141132|989898|1|9999041132|MR|Test|E|Lead 41132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041133|141133|989898|1|9999041133|MR|Test|E|Lead 41133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041134|141134|989898|1|9999041134|MR|Test|E|Lead 41134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041135|141135|989898|1|9999041135|MR|Test|E|Lead 41135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041136|141136|989898|1|9999041136|MR|Test|E|Lead 41136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041137|141137|989898|1|9999041137|MR|Test|E|Lead 41137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041138|141138|989898|1|9999041138|MR|Test|E|Lead 41138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041139|141139|989898|1|9999041139|MR|Test|E|Lead 41139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041140|141140|989898|1|9999041140|MR|Test|E|Lead 41140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041141|141141|989898|1|9999041141|MR|Test|E|Lead 41141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041142|141142|989898|1|9999041142|MR|Test|E|Lead 41142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041143|141143|989898|1|9999041143|MR|Test|E|Lead 41143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041144|141144|989898|1|9999041144|MR|Test|E|Lead 41144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041145|141145|989898|1|9999041145|MR|Test|E|Lead 41145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041146|141146|989898|1|9999041146|MR|Test|E|Lead 41146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041147|141147|989898|1|9999041147|MR|Test|E|Lead 41147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041148|141148|989898|1|9999041148|MR|Test|E|Lead 41148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041149|141149|989898|1|9999041149|MR|Test|E|Lead 41149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041150|141150|989898|1|9999041150|MR|Test|E|Lead 41150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041151|141151|989898|1|9999041151|MR|Test|E|Lead 41151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041152|141152|989898|1|9999041152|MR|Test|E|Lead 41152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041153|141153|989898|1|9999041153|MR|Test|E|Lead 41153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041154|141154|989898|1|9999041154|MR|Test|E|Lead 41154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041155|141155|989898|1|9999041155|MR|Test|E|Lead 41155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041156|141156|989898|1|9999041156|MR|Test|E|Lead 41156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041157|141157|989898|1|9999041157|MR|Test|E|Lead 41157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041158|141158|989898|1|9999041158|MR|Test|E|Lead 41158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041159|141159|989898|1|9999041159|MR|Test|E|Lead 41159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041160|141160|989898|1|9999041160|MR|Test|E|Lead 41160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041161|141161|989898|1|9999041161|MR|Test|E|Lead 41161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041162|141162|989898|1|9999041162|MR|Test|E|Lead 41162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041163|141163|989898|1|9999041163|MR|Test|E|Lead 41163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041164|141164|989898|1|9999041164|MR|Test|E|Lead 41164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041165|141165|989898|1|9999041165|MR|Test|E|Lead 41165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041166|141166|989898|1|9999041166|MR|Test|E|Lead 41166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041167|141167|989898|1|9999041167|MR|Test|E|Lead 41167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041168|141168|989898|1|9999041168|MR|Test|E|Lead 41168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041169|141169|989898|1|9999041169|MR|Test|E|Lead 41169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041170|141170|989898|1|9999041170|MR|Test|E|Lead 41170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041171|141171|989898|1|9999041171|MR|Test|E|Lead 41171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041172|141172|989898|1|9999041172|MR|Test|E|Lead 41172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041173|141173|989898|1|9999041173|MR|Test|E|Lead 41173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041174|141174|989898|1|9999041174|MR|Test|E|Lead 41174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041175|141175|989898|1|9999041175|MR|Test|E|Lead 41175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041176|141176|989898|1|9999041176|MR|Test|E|Lead 41176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041177|141177|989898|1|9999041177|MR|Test|E|Lead 41177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041178|141178|989898|1|9999041178|MR|Test|E|Lead 41178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041179|141179|989898|1|9999041179|MR|Test|E|Lead 41179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041180|141180|989898|1|9999041180|MR|Test|E|Lead 41180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041181|141181|989898|1|9999041181|MR|Test|E|Lead 41181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041182|141182|989898|1|9999041182|MR|Test|E|Lead 41182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041183|141183|989898|1|9999041183|MR|Test|E|Lead 41183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041184|141184|989898|1|9999041184|MR|Test|E|Lead 41184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041185|141185|989898|1|9999041185|MR|Test|E|Lead 41185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041186|141186|989898|1|9999041186|MR|Test|E|Lead 41186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041187|141187|989898|1|9999041187|MR|Test|E|Lead 41187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041188|141188|989898|1|9999041188|MR|Test|E|Lead 41188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041189|141189|989898|1|9999041189|MR|Test|E|Lead 41189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041190|141190|989898|1|9999041190|MR|Test|E|Lead 41190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041191|141191|989898|1|9999041191|MR|Test|E|Lead 41191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041192|141192|989898|1|9999041192|MR|Test|E|Lead 41192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041193|141193|989898|1|9999041193|MR|Test|E|Lead 41193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041194|141194|989898|1|9999041194|MR|Test|E|Lead 41194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041195|141195|989898|1|9999041195|MR|Test|E|Lead 41195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041196|141196|989898|1|9999041196|MR|Test|E|Lead 41196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041197|141197|989898|1|9999041197|MR|Test|E|Lead 41197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041198|141198|989898|1|9999041198|MR|Test|E|Lead 41198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041199|141199|989898|1|9999041199|MR|Test|E|Lead 41199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041200|141200|989898|1|9999041200|MR|Test|E|Lead 41200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041201|141201|989898|1|9999041201|MR|Test|E|Lead 41201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041202|141202|989898|1|9999041202|MR|Test|E|Lead 41202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041203|141203|989898|1|9999041203|MR|Test|E|Lead 41203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041204|141204|989898|1|9999041204|MR|Test|E|Lead 41204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041205|141205|989898|1|9999041205|MR|Test|E|Lead 41205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041206|141206|989898|1|9999041206|MR|Test|E|Lead 41206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041207|141207|989898|1|9999041207|MR|Test|E|Lead 41207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041208|141208|989898|1|9999041208|MR|Test|E|Lead 41208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041209|141209|989898|1|9999041209|MR|Test|E|Lead 41209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041210|141210|989898|1|9999041210|MR|Test|E|Lead 41210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041211|141211|989898|1|9999041211|MR|Test|E|Lead 41211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041212|141212|989898|1|9999041212|MR|Test|E|Lead 41212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041213|141213|989898|1|9999041213|MR|Test|E|Lead 41213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041214|141214|989898|1|9999041214|MR|Test|E|Lead 41214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041215|141215|989898|1|9999041215|MR|Test|E|Lead 41215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041216|141216|989898|1|9999041216|MR|Test|E|Lead 41216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041217|141217|989898|1|9999041217|MR|Test|E|Lead 41217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041218|141218|989898|1|9999041218|MR|Test|E|Lead 41218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041219|141219|989898|1|9999041219|MR|Test|E|Lead 41219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041220|141220|989898|1|9999041220|MR|Test|E|Lead 41220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041221|141221|989898|1|9999041221|MR|Test|E|Lead 41221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041222|141222|989898|1|9999041222|MR|Test|E|Lead 41222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041223|141223|989898|1|9999041223|MR|Test|E|Lead 41223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041224|141224|989898|1|9999041224|MR|Test|E|Lead 41224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041225|141225|989898|1|9999041225|MR|Test|E|Lead 41225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041226|141226|989898|1|9999041226|MR|Test|E|Lead 41226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041227|141227|989898|1|9999041227|MR|Test|E|Lead 41227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041228|141228|989898|1|9999041228|MR|Test|E|Lead 41228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041229|141229|989898|1|9999041229|MR|Test|E|Lead 41229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041230|141230|989898|1|9999041230|MR|Test|E|Lead 41230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041231|141231|989898|1|9999041231|MR|Test|E|Lead 41231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041232|141232|989898|1|9999041232|MR|Test|E|Lead 41232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041233|141233|989898|1|9999041233|MR|Test|E|Lead 41233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041234|141234|989898|1|9999041234|MR|Test|E|Lead 41234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041235|141235|989898|1|9999041235|MR|Test|E|Lead 41235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041236|141236|989898|1|9999041236|MR|Test|E|Lead 41236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041237|141237|989898|1|9999041237|MR|Test|E|Lead 41237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041238|141238|989898|1|9999041238|MR|Test|E|Lead 41238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041239|141239|989898|1|9999041239|MR|Test|E|Lead 41239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041240|141240|989898|1|9999041240|MR|Test|E|Lead 41240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041241|141241|989898|1|9999041241|MR|Test|E|Lead 41241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041242|141242|989898|1|9999041242|MR|Test|E|Lead 41242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041243|141243|989898|1|9999041243|MR|Test|E|Lead 41243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041244|141244|989898|1|9999041244|MR|Test|E|Lead 41244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041245|141245|989898|1|9999041245|MR|Test|E|Lead 41245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041246|141246|989898|1|9999041246|MR|Test|E|Lead 41246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041247|141247|989898|1|9999041247|MR|Test|E|Lead 41247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041248|141248|989898|1|9999041248|MR|Test|E|Lead 41248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041249|141249|989898|1|9999041249|MR|Test|E|Lead 41249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041250|141250|989898|1|9999041250|MR|Test|E|Lead 41250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041251|141251|989898|1|9999041251|MR|Test|E|Lead 41251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041252|141252|989898|1|9999041252|MR|Test|E|Lead 41252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041253|141253|989898|1|9999041253|MR|Test|E|Lead 41253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041254|141254|989898|1|9999041254|MR|Test|E|Lead 41254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041255|141255|989898|1|9999041255|MR|Test|E|Lead 41255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041256|141256|989898|1|9999041256|MR|Test|E|Lead 41256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041257|141257|989898|1|9999041257|MR|Test|E|Lead 41257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041258|141258|989898|1|9999041258|MR|Test|E|Lead 41258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041259|141259|989898|1|9999041259|MR|Test|E|Lead 41259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041260|141260|989898|1|9999041260|MR|Test|E|Lead 41260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041261|141261|989898|1|9999041261|MR|Test|E|Lead 41261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041262|141262|989898|1|9999041262|MR|Test|E|Lead 41262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041263|141263|989898|1|9999041263|MR|Test|E|Lead 41263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041264|141264|989898|1|9999041264|MR|Test|E|Lead 41264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041265|141265|989898|1|9999041265|MR|Test|E|Lead 41265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041266|141266|989898|1|9999041266|MR|Test|E|Lead 41266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041267|141267|989898|1|9999041267|MR|Test|E|Lead 41267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041268|141268|989898|1|9999041268|MR|Test|E|Lead 41268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041269|141269|989898|1|9999041269|MR|Test|E|Lead 41269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041270|141270|989898|1|9999041270|MR|Test|E|Lead 41270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041271|141271|989898|1|9999041271|MR|Test|E|Lead 41271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041272|141272|989898|1|9999041272|MR|Test|E|Lead 41272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041273|141273|989898|1|9999041273|MR|Test|E|Lead 41273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041274|141274|989898|1|9999041274|MR|Test|E|Lead 41274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041275|141275|989898|1|9999041275|MR|Test|E|Lead 41275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041276|141276|989898|1|9999041276|MR|Test|E|Lead 41276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041277|141277|989898|1|9999041277|MR|Test|E|Lead 41277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041278|141278|989898|1|9999041278|MR|Test|E|Lead 41278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041279|141279|989898|1|9999041279|MR|Test|E|Lead 41279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041280|141280|989898|1|9999041280|MR|Test|E|Lead 41280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041281|141281|989898|1|9999041281|MR|Test|E|Lead 41281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041282|141282|989898|1|9999041282|MR|Test|E|Lead 41282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041283|141283|989898|1|9999041283|MR|Test|E|Lead 41283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041284|141284|989898|1|9999041284|MR|Test|E|Lead 41284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041285|141285|989898|1|9999041285|MR|Test|E|Lead 41285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041286|141286|989898|1|9999041286|MR|Test|E|Lead 41286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041287|141287|989898|1|9999041287|MR|Test|E|Lead 41287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041288|141288|989898|1|9999041288|MR|Test|E|Lead 41288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041289|141289|989898|1|9999041289|MR|Test|E|Lead 41289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041290|141290|989898|1|9999041290|MR|Test|E|Lead 41290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041291|141291|989898|1|9999041291|MR|Test|E|Lead 41291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041292|141292|989898|1|9999041292|MR|Test|E|Lead 41292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041293|141293|989898|1|9999041293|MR|Test|E|Lead 41293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041294|141294|989898|1|9999041294|MR|Test|E|Lead 41294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041295|141295|989898|1|9999041295|MR|Test|E|Lead 41295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041296|141296|989898|1|9999041296|MR|Test|E|Lead 41296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041297|141297|989898|1|9999041297|MR|Test|E|Lead 41297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041298|141298|989898|1|9999041298|MR|Test|E|Lead 41298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041299|141299|989898|1|9999041299|MR|Test|E|Lead 41299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041300|141300|989898|1|9999041300|MR|Test|E|Lead 41300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041301|141301|989898|1|9999041301|MR|Test|E|Lead 41301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041302|141302|989898|1|9999041302|MR|Test|E|Lead 41302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041303|141303|989898|1|9999041303|MR|Test|E|Lead 41303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041304|141304|989898|1|9999041304|MR|Test|E|Lead 41304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041305|141305|989898|1|9999041305|MR|Test|E|Lead 41305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041306|141306|989898|1|9999041306|MR|Test|E|Lead 41306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041307|141307|989898|1|9999041307|MR|Test|E|Lead 41307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041308|141308|989898|1|9999041308|MR|Test|E|Lead 41308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041309|141309|989898|1|9999041309|MR|Test|E|Lead 41309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041310|141310|989898|1|9999041310|MR|Test|E|Lead 41310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041311|141311|989898|1|9999041311|MR|Test|E|Lead 41311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041312|141312|989898|1|9999041312|MR|Test|E|Lead 41312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041313|141313|989898|1|9999041313|MR|Test|E|Lead 41313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041314|141314|989898|1|9999041314|MR|Test|E|Lead 41314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041315|141315|989898|1|9999041315|MR|Test|E|Lead 41315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041316|141316|989898|1|9999041316|MR|Test|E|Lead 41316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041317|141317|989898|1|9999041317|MR|Test|E|Lead 41317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041318|141318|989898|1|9999041318|MR|Test|E|Lead 41318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041319|141319|989898|1|9999041319|MR|Test|E|Lead 41319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041320|141320|989898|1|9999041320|MR|Test|E|Lead 41320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041321|141321|989898|1|9999041321|MR|Test|E|Lead 41321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041322|141322|989898|1|9999041322|MR|Test|E|Lead 41322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041323|141323|989898|1|9999041323|MR|Test|E|Lead 41323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041324|141324|989898|1|9999041324|MR|Test|E|Lead 41324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041325|141325|989898|1|9999041325|MR|Test|E|Lead 41325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041326|141326|989898|1|9999041326|MR|Test|E|Lead 41326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041327|141327|989898|1|9999041327|MR|Test|E|Lead 41327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041328|141328|989898|1|9999041328|MR|Test|E|Lead 41328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041329|141329|989898|1|9999041329|MR|Test|E|Lead 41329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041330|141330|989898|1|9999041330|MR|Test|E|Lead 41330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041331|141331|989898|1|9999041331|MR|Test|E|Lead 41331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041332|141332|989898|1|9999041332|MR|Test|E|Lead 41332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041333|141333|989898|1|9999041333|MR|Test|E|Lead 41333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041334|141334|989898|1|9999041334|MR|Test|E|Lead 41334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041335|141335|989898|1|9999041335|MR|Test|E|Lead 41335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041336|141336|989898|1|9999041336|MR|Test|E|Lead 41336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041337|141337|989898|1|9999041337|MR|Test|E|Lead 41337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041338|141338|989898|1|9999041338|MR|Test|E|Lead 41338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041339|141339|989898|1|9999041339|MR|Test|E|Lead 41339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041340|141340|989898|1|9999041340|MR|Test|E|Lead 41340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041341|141341|989898|1|9999041341|MR|Test|E|Lead 41341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041342|141342|989898|1|9999041342|MR|Test|E|Lead 41342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041343|141343|989898|1|9999041343|MR|Test|E|Lead 41343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041344|141344|989898|1|9999041344|MR|Test|E|Lead 41344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041345|141345|989898|1|9999041345|MR|Test|E|Lead 41345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041346|141346|989898|1|9999041346|MR|Test|E|Lead 41346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041347|141347|989898|1|9999041347|MR|Test|E|Lead 41347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041348|141348|989898|1|9999041348|MR|Test|E|Lead 41348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041349|141349|989898|1|9999041349|MR|Test|E|Lead 41349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041350|141350|989898|1|9999041350|MR|Test|E|Lead 41350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041351|141351|989898|1|9999041351|MR|Test|E|Lead 41351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041352|141352|989898|1|9999041352|MR|Test|E|Lead 41352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041353|141353|989898|1|9999041353|MR|Test|E|Lead 41353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041354|141354|989898|1|9999041354|MR|Test|E|Lead 41354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041355|141355|989898|1|9999041355|MR|Test|E|Lead 41355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041356|141356|989898|1|9999041356|MR|Test|E|Lead 41356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041357|141357|989898|1|9999041357|MR|Test|E|Lead 41357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041358|141358|989898|1|9999041358|MR|Test|E|Lead 41358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041359|141359|989898|1|9999041359|MR|Test|E|Lead 41359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041360|141360|989898|1|9999041360|MR|Test|E|Lead 41360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041361|141361|989898|1|9999041361|MR|Test|E|Lead 41361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041362|141362|989898|1|9999041362|MR|Test|E|Lead 41362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041363|141363|989898|1|9999041363|MR|Test|E|Lead 41363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041364|141364|989898|1|9999041364|MR|Test|E|Lead 41364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041365|141365|989898|1|9999041365|MR|Test|E|Lead 41365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041366|141366|989898|1|9999041366|MR|Test|E|Lead 41366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041367|141367|989898|1|9999041367|MR|Test|E|Lead 41367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041368|141368|989898|1|9999041368|MR|Test|E|Lead 41368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041369|141369|989898|1|9999041369|MR|Test|E|Lead 41369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041370|141370|989898|1|9999041370|MR|Test|E|Lead 41370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041371|141371|989898|1|9999041371|MR|Test|E|Lead 41371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041372|141372|989898|1|9999041372|MR|Test|E|Lead 41372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041373|141373|989898|1|9999041373|MR|Test|E|Lead 41373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041374|141374|989898|1|9999041374|MR|Test|E|Lead 41374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041375|141375|989898|1|9999041375|MR|Test|E|Lead 41375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041376|141376|989898|1|9999041376|MR|Test|E|Lead 41376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041377|141377|989898|1|9999041377|MR|Test|E|Lead 41377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041378|141378|989898|1|9999041378|MR|Test|E|Lead 41378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041379|141379|989898|1|9999041379|MR|Test|E|Lead 41379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041380|141380|989898|1|9999041380|MR|Test|E|Lead 41380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041381|141381|989898|1|9999041381|MR|Test|E|Lead 41381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041382|141382|989898|1|9999041382|MR|Test|E|Lead 41382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041383|141383|989898|1|9999041383|MR|Test|E|Lead 41383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041384|141384|989898|1|9999041384|MR|Test|E|Lead 41384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041385|141385|989898|1|9999041385|MR|Test|E|Lead 41385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041386|141386|989898|1|9999041386|MR|Test|E|Lead 41386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041387|141387|989898|1|9999041387|MR|Test|E|Lead 41387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041388|141388|989898|1|9999041388|MR|Test|E|Lead 41388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041389|141389|989898|1|9999041389|MR|Test|E|Lead 41389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041390|141390|989898|1|9999041390|MR|Test|E|Lead 41390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041391|141391|989898|1|9999041391|MR|Test|E|Lead 41391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041392|141392|989898|1|9999041392|MR|Test|E|Lead 41392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041393|141393|989898|1|9999041393|MR|Test|E|Lead 41393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041394|141394|989898|1|9999041394|MR|Test|E|Lead 41394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041395|141395|989898|1|9999041395|MR|Test|E|Lead 41395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041396|141396|989898|1|9999041396|MR|Test|E|Lead 41396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041397|141397|989898|1|9999041397|MR|Test|E|Lead 41397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041398|141398|989898|1|9999041398|MR|Test|E|Lead 41398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041399|141399|989898|1|9999041399|MR|Test|E|Lead 41399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041400|141400|989898|1|9999041400|MR|Test|E|Lead 41400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041401|141401|989898|1|9999041401|MR|Test|E|Lead 41401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041402|141402|989898|1|9999041402|MR|Test|E|Lead 41402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041403|141403|989898|1|9999041403|MR|Test|E|Lead 41403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041404|141404|989898|1|9999041404|MR|Test|E|Lead 41404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041405|141405|989898|1|9999041405|MR|Test|E|Lead 41405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041406|141406|989898|1|9999041406|MR|Test|E|Lead 41406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041407|141407|989898|1|9999041407|MR|Test|E|Lead 41407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041408|141408|989898|1|9999041408|MR|Test|E|Lead 41408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041409|141409|989898|1|9999041409|MR|Test|E|Lead 41409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041410|141410|989898|1|9999041410|MR|Test|E|Lead 41410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041411|141411|989898|1|9999041411|MR|Test|E|Lead 41411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041412|141412|989898|1|9999041412|MR|Test|E|Lead 41412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041413|141413|989898|1|9999041413|MR|Test|E|Lead 41413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041414|141414|989898|1|9999041414|MR|Test|E|Lead 41414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041415|141415|989898|1|9999041415|MR|Test|E|Lead 41415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041416|141416|989898|1|9999041416|MR|Test|E|Lead 41416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041417|141417|989898|1|9999041417|MR|Test|E|Lead 41417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041418|141418|989898|1|9999041418|MR|Test|E|Lead 41418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041419|141419|989898|1|9999041419|MR|Test|E|Lead 41419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041420|141420|989898|1|9999041420|MR|Test|E|Lead 41420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041421|141421|989898|1|9999041421|MR|Test|E|Lead 41421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041422|141422|989898|1|9999041422|MR|Test|E|Lead 41422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041423|141423|989898|1|9999041423|MR|Test|E|Lead 41423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041424|141424|989898|1|9999041424|MR|Test|E|Lead 41424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041425|141425|989898|1|9999041425|MR|Test|E|Lead 41425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041426|141426|989898|1|9999041426|MR|Test|E|Lead 41426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041427|141427|989898|1|9999041427|MR|Test|E|Lead 41427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041428|141428|989898|1|9999041428|MR|Test|E|Lead 41428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041429|141429|989898|1|9999041429|MR|Test|E|Lead 41429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041430|141430|989898|1|9999041430|MR|Test|E|Lead 41430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041431|141431|989898|1|9999041431|MR|Test|E|Lead 41431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041432|141432|989898|1|9999041432|MR|Test|E|Lead 41432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041433|141433|989898|1|9999041433|MR|Test|E|Lead 41433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041434|141434|989898|1|9999041434|MR|Test|E|Lead 41434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041435|141435|989898|1|9999041435|MR|Test|E|Lead 41435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041436|141436|989898|1|9999041436|MR|Test|E|Lead 41436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041437|141437|989898|1|9999041437|MR|Test|E|Lead 41437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041438|141438|989898|1|9999041438|MR|Test|E|Lead 41438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041439|141439|989898|1|9999041439|MR|Test|E|Lead 41439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041440|141440|989898|1|9999041440|MR|Test|E|Lead 41440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041441|141441|989898|1|9999041441|MR|Test|E|Lead 41441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041442|141442|989898|1|9999041442|MR|Test|E|Lead 41442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041443|141443|989898|1|9999041443|MR|Test|E|Lead 41443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041444|141444|989898|1|9999041444|MR|Test|E|Lead 41444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041445|141445|989898|1|9999041445|MR|Test|E|Lead 41445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041446|141446|989898|1|9999041446|MR|Test|E|Lead 41446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041447|141447|989898|1|9999041447|MR|Test|E|Lead 41447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041448|141448|989898|1|9999041448|MR|Test|E|Lead 41448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041449|141449|989898|1|9999041449|MR|Test|E|Lead 41449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041450|141450|989898|1|9999041450|MR|Test|E|Lead 41450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041451|141451|989898|1|9999041451|MR|Test|E|Lead 41451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041452|141452|989898|1|9999041452|MR|Test|E|Lead 41452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041453|141453|989898|1|9999041453|MR|Test|E|Lead 41453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041454|141454|989898|1|9999041454|MR|Test|E|Lead 41454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041455|141455|989898|1|9999041455|MR|Test|E|Lead 41455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041456|141456|989898|1|9999041456|MR|Test|E|Lead 41456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041457|141457|989898|1|9999041457|MR|Test|E|Lead 41457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041458|141458|989898|1|9999041458|MR|Test|E|Lead 41458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041459|141459|989898|1|9999041459|MR|Test|E|Lead 41459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041460|141460|989898|1|9999041460|MR|Test|E|Lead 41460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041461|141461|989898|1|9999041461|MR|Test|E|Lead 41461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041462|141462|989898|1|9999041462|MR|Test|E|Lead 41462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041463|141463|989898|1|9999041463|MR|Test|E|Lead 41463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041464|141464|989898|1|9999041464|MR|Test|E|Lead 41464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041465|141465|989898|1|9999041465|MR|Test|E|Lead 41465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041466|141466|989898|1|9999041466|MR|Test|E|Lead 41466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041467|141467|989898|1|9999041467|MR|Test|E|Lead 41467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041468|141468|989898|1|9999041468|MR|Test|E|Lead 41468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041469|141469|989898|1|9999041469|MR|Test|E|Lead 41469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041470|141470|989898|1|9999041470|MR|Test|E|Lead 41470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041471|141471|989898|1|9999041471|MR|Test|E|Lead 41471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041472|141472|989898|1|9999041472|MR|Test|E|Lead 41472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041473|141473|989898|1|9999041473|MR|Test|E|Lead 41473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041474|141474|989898|1|9999041474|MR|Test|E|Lead 41474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041475|141475|989898|1|9999041475|MR|Test|E|Lead 41475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041476|141476|989898|1|9999041476|MR|Test|E|Lead 41476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041477|141477|989898|1|9999041477|MR|Test|E|Lead 41477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041478|141478|989898|1|9999041478|MR|Test|E|Lead 41478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041479|141479|989898|1|9999041479|MR|Test|E|Lead 41479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041480|141480|989898|1|9999041480|MR|Test|E|Lead 41480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041481|141481|989898|1|9999041481|MR|Test|E|Lead 41481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041482|141482|989898|1|9999041482|MR|Test|E|Lead 41482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041483|141483|989898|1|9999041483|MR|Test|E|Lead 41483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041484|141484|989898|1|9999041484|MR|Test|E|Lead 41484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041485|141485|989898|1|9999041485|MR|Test|E|Lead 41485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041486|141486|989898|1|9999041486|MR|Test|E|Lead 41486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041487|141487|989898|1|9999041487|MR|Test|E|Lead 41487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041488|141488|989898|1|9999041488|MR|Test|E|Lead 41488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041489|141489|989898|1|9999041489|MR|Test|E|Lead 41489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041490|141490|989898|1|9999041490|MR|Test|E|Lead 41490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041491|141491|989898|1|9999041491|MR|Test|E|Lead 41491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041492|141492|989898|1|9999041492|MR|Test|E|Lead 41492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041493|141493|989898|1|9999041493|MR|Test|E|Lead 41493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041494|141494|989898|1|9999041494|MR|Test|E|Lead 41494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041495|141495|989898|1|9999041495|MR|Test|E|Lead 41495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041496|141496|989898|1|9999041496|MR|Test|E|Lead 41496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041497|141497|989898|1|9999041497|MR|Test|E|Lead 41497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041498|141498|989898|1|9999041498|MR|Test|E|Lead 41498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041499|141499|989898|1|9999041499|MR|Test|E|Lead 41499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041500|141500|989898|1|9999041500|MR|Test|E|Lead 41500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041501|141501|989898|1|9999041501|MR|Test|E|Lead 41501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041502|141502|989898|1|9999041502|MR|Test|E|Lead 41502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041503|141503|989898|1|9999041503|MR|Test|E|Lead 41503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041504|141504|989898|1|9999041504|MR|Test|E|Lead 41504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041505|141505|989898|1|9999041505|MR|Test|E|Lead 41505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041506|141506|989898|1|9999041506|MR|Test|E|Lead 41506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041507|141507|989898|1|9999041507|MR|Test|E|Lead 41507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041508|141508|989898|1|9999041508|MR|Test|E|Lead 41508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041509|141509|989898|1|9999041509|MR|Test|E|Lead 41509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041510|141510|989898|1|9999041510|MR|Test|E|Lead 41510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041511|141511|989898|1|9999041511|MR|Test|E|Lead 41511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041512|141512|989898|1|9999041512|MR|Test|E|Lead 41512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041513|141513|989898|1|9999041513|MR|Test|E|Lead 41513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041514|141514|989898|1|9999041514|MR|Test|E|Lead 41514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041515|141515|989898|1|9999041515|MR|Test|E|Lead 41515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041516|141516|989898|1|9999041516|MR|Test|E|Lead 41516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041517|141517|989898|1|9999041517|MR|Test|E|Lead 41517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041518|141518|989898|1|9999041518|MR|Test|E|Lead 41518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041519|141519|989898|1|9999041519|MR|Test|E|Lead 41519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041520|141520|989898|1|9999041520|MR|Test|E|Lead 41520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041521|141521|989898|1|9999041521|MR|Test|E|Lead 41521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041522|141522|989898|1|9999041522|MR|Test|E|Lead 41522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041523|141523|989898|1|9999041523|MR|Test|E|Lead 41523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041524|141524|989898|1|9999041524|MR|Test|E|Lead 41524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041525|141525|989898|1|9999041525|MR|Test|E|Lead 41525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041526|141526|989898|1|9999041526|MR|Test|E|Lead 41526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041527|141527|989898|1|9999041527|MR|Test|E|Lead 41527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041528|141528|989898|1|9999041528|MR|Test|E|Lead 41528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041529|141529|989898|1|9999041529|MR|Test|E|Lead 41529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041530|141530|989898|1|9999041530|MR|Test|E|Lead 41530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041531|141531|989898|1|9999041531|MR|Test|E|Lead 41531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041532|141532|989898|1|9999041532|MR|Test|E|Lead 41532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041533|141533|989898|1|9999041533|MR|Test|E|Lead 41533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041534|141534|989898|1|9999041534|MR|Test|E|Lead 41534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041535|141535|989898|1|9999041535|MR|Test|E|Lead 41535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041536|141536|989898|1|9999041536|MR|Test|E|Lead 41536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041537|141537|989898|1|9999041537|MR|Test|E|Lead 41537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041538|141538|989898|1|9999041538|MR|Test|E|Lead 41538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041539|141539|989898|1|9999041539|MR|Test|E|Lead 41539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041540|141540|989898|1|9999041540|MR|Test|E|Lead 41540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041541|141541|989898|1|9999041541|MR|Test|E|Lead 41541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041542|141542|989898|1|9999041542|MR|Test|E|Lead 41542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041543|141543|989898|1|9999041543|MR|Test|E|Lead 41543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041544|141544|989898|1|9999041544|MR|Test|E|Lead 41544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041545|141545|989898|1|9999041545|MR|Test|E|Lead 41545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041546|141546|989898|1|9999041546|MR|Test|E|Lead 41546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041547|141547|989898|1|9999041547|MR|Test|E|Lead 41547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041548|141548|989898|1|9999041548|MR|Test|E|Lead 41548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041549|141549|989898|1|9999041549|MR|Test|E|Lead 41549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041550|141550|989898|1|9999041550|MR|Test|E|Lead 41550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041551|141551|989898|1|9999041551|MR|Test|E|Lead 41551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041552|141552|989898|1|9999041552|MR|Test|E|Lead 41552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041553|141553|989898|1|9999041553|MR|Test|E|Lead 41553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041554|141554|989898|1|9999041554|MR|Test|E|Lead 41554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041555|141555|989898|1|9999041555|MR|Test|E|Lead 41555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041556|141556|989898|1|9999041556|MR|Test|E|Lead 41556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041557|141557|989898|1|9999041557|MR|Test|E|Lead 41557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041558|141558|989898|1|9999041558|MR|Test|E|Lead 41558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041559|141559|989898|1|9999041559|MR|Test|E|Lead 41559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041560|141560|989898|1|9999041560|MR|Test|E|Lead 41560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041561|141561|989898|1|9999041561|MR|Test|E|Lead 41561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041562|141562|989898|1|9999041562|MR|Test|E|Lead 41562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041563|141563|989898|1|9999041563|MR|Test|E|Lead 41563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041564|141564|989898|1|9999041564|MR|Test|E|Lead 41564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041565|141565|989898|1|9999041565|MR|Test|E|Lead 41565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041566|141566|989898|1|9999041566|MR|Test|E|Lead 41566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041567|141567|989898|1|9999041567|MR|Test|E|Lead 41567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041568|141568|989898|1|9999041568|MR|Test|E|Lead 41568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041569|141569|989898|1|9999041569|MR|Test|E|Lead 41569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041570|141570|989898|1|9999041570|MR|Test|E|Lead 41570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041571|141571|989898|1|9999041571|MR|Test|E|Lead 41571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041572|141572|989898|1|9999041572|MR|Test|E|Lead 41572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041573|141573|989898|1|9999041573|MR|Test|E|Lead 41573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041574|141574|989898|1|9999041574|MR|Test|E|Lead 41574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041575|141575|989898|1|9999041575|MR|Test|E|Lead 41575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041576|141576|989898|1|9999041576|MR|Test|E|Lead 41576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041577|141577|989898|1|9999041577|MR|Test|E|Lead 41577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041578|141578|989898|1|9999041578|MR|Test|E|Lead 41578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041579|141579|989898|1|9999041579|MR|Test|E|Lead 41579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041580|141580|989898|1|9999041580|MR|Test|E|Lead 41580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041581|141581|989898|1|9999041581|MR|Test|E|Lead 41581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041582|141582|989898|1|9999041582|MR|Test|E|Lead 41582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041583|141583|989898|1|9999041583|MR|Test|E|Lead 41583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041584|141584|989898|1|9999041584|MR|Test|E|Lead 41584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041585|141585|989898|1|9999041585|MR|Test|E|Lead 41585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041586|141586|989898|1|9999041586|MR|Test|E|Lead 41586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041587|141587|989898|1|9999041587|MR|Test|E|Lead 41587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041588|141588|989898|1|9999041588|MR|Test|E|Lead 41588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041589|141589|989898|1|9999041589|MR|Test|E|Lead 41589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041590|141590|989898|1|9999041590|MR|Test|E|Lead 41590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041591|141591|989898|1|9999041591|MR|Test|E|Lead 41591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041592|141592|989898|1|9999041592|MR|Test|E|Lead 41592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041593|141593|989898|1|9999041593|MR|Test|E|Lead 41593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041594|141594|989898|1|9999041594|MR|Test|E|Lead 41594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041595|141595|989898|1|9999041595|MR|Test|E|Lead 41595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041596|141596|989898|1|9999041596|MR|Test|E|Lead 41596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041597|141597|989898|1|9999041597|MR|Test|E|Lead 41597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041598|141598|989898|1|9999041598|MR|Test|E|Lead 41598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041599|141599|989898|1|9999041599|MR|Test|E|Lead 41599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041600|141600|989898|1|9999041600|MR|Test|E|Lead 41600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041601|141601|989898|1|9999041601|MR|Test|E|Lead 41601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041602|141602|989898|1|9999041602|MR|Test|E|Lead 41602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041603|141603|989898|1|9999041603|MR|Test|E|Lead 41603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041604|141604|989898|1|9999041604|MR|Test|E|Lead 41604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041605|141605|989898|1|9999041605|MR|Test|E|Lead 41605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041606|141606|989898|1|9999041606|MR|Test|E|Lead 41606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041607|141607|989898|1|9999041607|MR|Test|E|Lead 41607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041608|141608|989898|1|9999041608|MR|Test|E|Lead 41608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041609|141609|989898|1|9999041609|MR|Test|E|Lead 41609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041610|141610|989898|1|9999041610|MR|Test|E|Lead 41610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041611|141611|989898|1|9999041611|MR|Test|E|Lead 41611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041612|141612|989898|1|9999041612|MR|Test|E|Lead 41612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041613|141613|989898|1|9999041613|MR|Test|E|Lead 41613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041614|141614|989898|1|9999041614|MR|Test|E|Lead 41614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041615|141615|989898|1|9999041615|MR|Test|E|Lead 41615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041616|141616|989898|1|9999041616|MR|Test|E|Lead 41616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041617|141617|989898|1|9999041617|MR|Test|E|Lead 41617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041618|141618|989898|1|9999041618|MR|Test|E|Lead 41618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041619|141619|989898|1|9999041619|MR|Test|E|Lead 41619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041620|141620|989898|1|9999041620|MR|Test|E|Lead 41620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041621|141621|989898|1|9999041621|MR|Test|E|Lead 41621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041622|141622|989898|1|9999041622|MR|Test|E|Lead 41622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041623|141623|989898|1|9999041623|MR|Test|E|Lead 41623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041624|141624|989898|1|9999041624|MR|Test|E|Lead 41624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041625|141625|989898|1|9999041625|MR|Test|E|Lead 41625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041626|141626|989898|1|9999041626|MR|Test|E|Lead 41626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041627|141627|989898|1|9999041627|MR|Test|E|Lead 41627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041628|141628|989898|1|9999041628|MR|Test|E|Lead 41628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041629|141629|989898|1|9999041629|MR|Test|E|Lead 41629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041630|141630|989898|1|9999041630|MR|Test|E|Lead 41630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041631|141631|989898|1|9999041631|MR|Test|E|Lead 41631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041632|141632|989898|1|9999041632|MR|Test|E|Lead 41632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041633|141633|989898|1|9999041633|MR|Test|E|Lead 41633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041634|141634|989898|1|9999041634|MR|Test|E|Lead 41634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041635|141635|989898|1|9999041635|MR|Test|E|Lead 41635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041636|141636|989898|1|9999041636|MR|Test|E|Lead 41636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041637|141637|989898|1|9999041637|MR|Test|E|Lead 41637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041638|141638|989898|1|9999041638|MR|Test|E|Lead 41638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041639|141639|989898|1|9999041639|MR|Test|E|Lead 41639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041640|141640|989898|1|9999041640|MR|Test|E|Lead 41640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041641|141641|989898|1|9999041641|MR|Test|E|Lead 41641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041642|141642|989898|1|9999041642|MR|Test|E|Lead 41642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041643|141643|989898|1|9999041643|MR|Test|E|Lead 41643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041644|141644|989898|1|9999041644|MR|Test|E|Lead 41644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041645|141645|989898|1|9999041645|MR|Test|E|Lead 41645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041646|141646|989898|1|9999041646|MR|Test|E|Lead 41646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041647|141647|989898|1|9999041647|MR|Test|E|Lead 41647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041648|141648|989898|1|9999041648|MR|Test|E|Lead 41648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041649|141649|989898|1|9999041649|MR|Test|E|Lead 41649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041650|141650|989898|1|9999041650|MR|Test|E|Lead 41650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041651|141651|989898|1|9999041651|MR|Test|E|Lead 41651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041652|141652|989898|1|9999041652|MR|Test|E|Lead 41652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041653|141653|989898|1|9999041653|MR|Test|E|Lead 41653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041654|141654|989898|1|9999041654|MR|Test|E|Lead 41654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041655|141655|989898|1|9999041655|MR|Test|E|Lead 41655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041656|141656|989898|1|9999041656|MR|Test|E|Lead 41656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041657|141657|989898|1|9999041657|MR|Test|E|Lead 41657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041658|141658|989898|1|9999041658|MR|Test|E|Lead 41658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041659|141659|989898|1|9999041659|MR|Test|E|Lead 41659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041660|141660|989898|1|9999041660|MR|Test|E|Lead 41660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041661|141661|989898|1|9999041661|MR|Test|E|Lead 41661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041662|141662|989898|1|9999041662|MR|Test|E|Lead 41662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041663|141663|989898|1|9999041663|MR|Test|E|Lead 41663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041664|141664|989898|1|9999041664|MR|Test|E|Lead 41664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041665|141665|989898|1|9999041665|MR|Test|E|Lead 41665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041666|141666|989898|1|9999041666|MR|Test|E|Lead 41666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041667|141667|989898|1|9999041667|MR|Test|E|Lead 41667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041668|141668|989898|1|9999041668|MR|Test|E|Lead 41668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041669|141669|989898|1|9999041669|MR|Test|E|Lead 41669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041670|141670|989898|1|9999041670|MR|Test|E|Lead 41670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041671|141671|989898|1|9999041671|MR|Test|E|Lead 41671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041672|141672|989898|1|9999041672|MR|Test|E|Lead 41672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041673|141673|989898|1|9999041673|MR|Test|E|Lead 41673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041674|141674|989898|1|9999041674|MR|Test|E|Lead 41674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041675|141675|989898|1|9999041675|MR|Test|E|Lead 41675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041676|141676|989898|1|9999041676|MR|Test|E|Lead 41676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041677|141677|989898|1|9999041677|MR|Test|E|Lead 41677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041678|141678|989898|1|9999041678|MR|Test|E|Lead 41678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041679|141679|989898|1|9999041679|MR|Test|E|Lead 41679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041680|141680|989898|1|9999041680|MR|Test|E|Lead 41680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041681|141681|989898|1|9999041681|MR|Test|E|Lead 41681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041682|141682|989898|1|9999041682|MR|Test|E|Lead 41682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041683|141683|989898|1|9999041683|MR|Test|E|Lead 41683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041684|141684|989898|1|9999041684|MR|Test|E|Lead 41684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041685|141685|989898|1|9999041685|MR|Test|E|Lead 41685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041686|141686|989898|1|9999041686|MR|Test|E|Lead 41686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041687|141687|989898|1|9999041687|MR|Test|E|Lead 41687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041688|141688|989898|1|9999041688|MR|Test|E|Lead 41688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041689|141689|989898|1|9999041689|MR|Test|E|Lead 41689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041690|141690|989898|1|9999041690|MR|Test|E|Lead 41690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041691|141691|989898|1|9999041691|MR|Test|E|Lead 41691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041692|141692|989898|1|9999041692|MR|Test|E|Lead 41692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041693|141693|989898|1|9999041693|MR|Test|E|Lead 41693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041694|141694|989898|1|9999041694|MR|Test|E|Lead 41694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041695|141695|989898|1|9999041695|MR|Test|E|Lead 41695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041696|141696|989898|1|9999041696|MR|Test|E|Lead 41696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041697|141697|989898|1|9999041697|MR|Test|E|Lead 41697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041698|141698|989898|1|9999041698|MR|Test|E|Lead 41698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041699|141699|989898|1|9999041699|MR|Test|E|Lead 41699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041700|141700|989898|1|9999041700|MR|Test|E|Lead 41700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041701|141701|989898|1|9999041701|MR|Test|E|Lead 41701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041702|141702|989898|1|9999041702|MR|Test|E|Lead 41702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041703|141703|989898|1|9999041703|MR|Test|E|Lead 41703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041704|141704|989898|1|9999041704|MR|Test|E|Lead 41704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041705|141705|989898|1|9999041705|MR|Test|E|Lead 41705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041706|141706|989898|1|9999041706|MR|Test|E|Lead 41706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041707|141707|989898|1|9999041707|MR|Test|E|Lead 41707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041708|141708|989898|1|9999041708|MR|Test|E|Lead 41708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041709|141709|989898|1|9999041709|MR|Test|E|Lead 41709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041710|141710|989898|1|9999041710|MR|Test|E|Lead 41710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041711|141711|989898|1|9999041711|MR|Test|E|Lead 41711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041712|141712|989898|1|9999041712|MR|Test|E|Lead 41712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041713|141713|989898|1|9999041713|MR|Test|E|Lead 41713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041714|141714|989898|1|9999041714|MR|Test|E|Lead 41714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041715|141715|989898|1|9999041715|MR|Test|E|Lead 41715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041716|141716|989898|1|9999041716|MR|Test|E|Lead 41716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041717|141717|989898|1|9999041717|MR|Test|E|Lead 41717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041718|141718|989898|1|9999041718|MR|Test|E|Lead 41718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041719|141719|989898|1|9999041719|MR|Test|E|Lead 41719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041720|141720|989898|1|9999041720|MR|Test|E|Lead 41720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041721|141721|989898|1|9999041721|MR|Test|E|Lead 41721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041722|141722|989898|1|9999041722|MR|Test|E|Lead 41722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041723|141723|989898|1|9999041723|MR|Test|E|Lead 41723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041724|141724|989898|1|9999041724|MR|Test|E|Lead 41724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041725|141725|989898|1|9999041725|MR|Test|E|Lead 41725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041726|141726|989898|1|9999041726|MR|Test|E|Lead 41726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041727|141727|989898|1|9999041727|MR|Test|E|Lead 41727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041728|141728|989898|1|9999041728|MR|Test|E|Lead 41728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041729|141729|989898|1|9999041729|MR|Test|E|Lead 41729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041730|141730|989898|1|9999041730|MR|Test|E|Lead 41730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041731|141731|989898|1|9999041731|MR|Test|E|Lead 41731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041732|141732|989898|1|9999041732|MR|Test|E|Lead 41732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041733|141733|989898|1|9999041733|MR|Test|E|Lead 41733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041734|141734|989898|1|9999041734|MR|Test|E|Lead 41734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041735|141735|989898|1|9999041735|MR|Test|E|Lead 41735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041736|141736|989898|1|9999041736|MR|Test|E|Lead 41736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041737|141737|989898|1|9999041737|MR|Test|E|Lead 41737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041738|141738|989898|1|9999041738|MR|Test|E|Lead 41738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041739|141739|989898|1|9999041739|MR|Test|E|Lead 41739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041740|141740|989898|1|9999041740|MR|Test|E|Lead 41740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041741|141741|989898|1|9999041741|MR|Test|E|Lead 41741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041742|141742|989898|1|9999041742|MR|Test|E|Lead 41742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041743|141743|989898|1|9999041743|MR|Test|E|Lead 41743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041744|141744|989898|1|9999041744|MR|Test|E|Lead 41744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041745|141745|989898|1|9999041745|MR|Test|E|Lead 41745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041746|141746|989898|1|9999041746|MR|Test|E|Lead 41746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041747|141747|989898|1|9999041747|MR|Test|E|Lead 41747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041748|141748|989898|1|9999041748|MR|Test|E|Lead 41748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041749|141749|989898|1|9999041749|MR|Test|E|Lead 41749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041750|141750|989898|1|9999041750|MR|Test|E|Lead 41750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041751|141751|989898|1|9999041751|MR|Test|E|Lead 41751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041752|141752|989898|1|9999041752|MR|Test|E|Lead 41752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041753|141753|989898|1|9999041753|MR|Test|E|Lead 41753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041754|141754|989898|1|9999041754|MR|Test|E|Lead 41754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041755|141755|989898|1|9999041755|MR|Test|E|Lead 41755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041756|141756|989898|1|9999041756|MR|Test|E|Lead 41756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041757|141757|989898|1|9999041757|MR|Test|E|Lead 41757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041758|141758|989898|1|9999041758|MR|Test|E|Lead 41758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041759|141759|989898|1|9999041759|MR|Test|E|Lead 41759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041760|141760|989898|1|9999041760|MR|Test|E|Lead 41760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041761|141761|989898|1|9999041761|MR|Test|E|Lead 41761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041762|141762|989898|1|9999041762|MR|Test|E|Lead 41762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041763|141763|989898|1|9999041763|MR|Test|E|Lead 41763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041764|141764|989898|1|9999041764|MR|Test|E|Lead 41764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041765|141765|989898|1|9999041765|MR|Test|E|Lead 41765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041766|141766|989898|1|9999041766|MR|Test|E|Lead 41766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041767|141767|989898|1|9999041767|MR|Test|E|Lead 41767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041768|141768|989898|1|9999041768|MR|Test|E|Lead 41768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041769|141769|989898|1|9999041769|MR|Test|E|Lead 41769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041770|141770|989898|1|9999041770|MR|Test|E|Lead 41770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041771|141771|989898|1|9999041771|MR|Test|E|Lead 41771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041772|141772|989898|1|9999041772|MR|Test|E|Lead 41772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041773|141773|989898|1|9999041773|MR|Test|E|Lead 41773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041774|141774|989898|1|9999041774|MR|Test|E|Lead 41774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041775|141775|989898|1|9999041775|MR|Test|E|Lead 41775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041776|141776|989898|1|9999041776|MR|Test|E|Lead 41776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041777|141777|989898|1|9999041777|MR|Test|E|Lead 41777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041778|141778|989898|1|9999041778|MR|Test|E|Lead 41778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041779|141779|989898|1|9999041779|MR|Test|E|Lead 41779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041780|141780|989898|1|9999041780|MR|Test|E|Lead 41780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041781|141781|989898|1|9999041781|MR|Test|E|Lead 41781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041782|141782|989898|1|9999041782|MR|Test|E|Lead 41782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041783|141783|989898|1|9999041783|MR|Test|E|Lead 41783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041784|141784|989898|1|9999041784|MR|Test|E|Lead 41784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041785|141785|989898|1|9999041785|MR|Test|E|Lead 41785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041786|141786|989898|1|9999041786|MR|Test|E|Lead 41786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041787|141787|989898|1|9999041787|MR|Test|E|Lead 41787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041788|141788|989898|1|9999041788|MR|Test|E|Lead 41788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041789|141789|989898|1|9999041789|MR|Test|E|Lead 41789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041790|141790|989898|1|9999041790|MR|Test|E|Lead 41790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041791|141791|989898|1|9999041791|MR|Test|E|Lead 41791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041792|141792|989898|1|9999041792|MR|Test|E|Lead 41792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041793|141793|989898|1|9999041793|MR|Test|E|Lead 41793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041794|141794|989898|1|9999041794|MR|Test|E|Lead 41794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041795|141795|989898|1|9999041795|MR|Test|E|Lead 41795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041796|141796|989898|1|9999041796|MR|Test|E|Lead 41796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041797|141797|989898|1|9999041797|MR|Test|E|Lead 41797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041798|141798|989898|1|9999041798|MR|Test|E|Lead 41798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041799|141799|989898|1|9999041799|MR|Test|E|Lead 41799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041800|141800|989898|1|9999041800|MR|Test|E|Lead 41800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041801|141801|989898|1|9999041801|MR|Test|E|Lead 41801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041802|141802|989898|1|9999041802|MR|Test|E|Lead 41802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041803|141803|989898|1|9999041803|MR|Test|E|Lead 41803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041804|141804|989898|1|9999041804|MR|Test|E|Lead 41804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041805|141805|989898|1|9999041805|MR|Test|E|Lead 41805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041806|141806|989898|1|9999041806|MR|Test|E|Lead 41806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041807|141807|989898|1|9999041807|MR|Test|E|Lead 41807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041808|141808|989898|1|9999041808|MR|Test|E|Lead 41808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041809|141809|989898|1|9999041809|MR|Test|E|Lead 41809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041810|141810|989898|1|9999041810|MR|Test|E|Lead 41810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041811|141811|989898|1|9999041811|MR|Test|E|Lead 41811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041812|141812|989898|1|9999041812|MR|Test|E|Lead 41812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041813|141813|989898|1|9999041813|MR|Test|E|Lead 41813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041814|141814|989898|1|9999041814|MR|Test|E|Lead 41814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041815|141815|989898|1|9999041815|MR|Test|E|Lead 41815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041816|141816|989898|1|9999041816|MR|Test|E|Lead 41816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041817|141817|989898|1|9999041817|MR|Test|E|Lead 41817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041818|141818|989898|1|9999041818|MR|Test|E|Lead 41818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041819|141819|989898|1|9999041819|MR|Test|E|Lead 41819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041820|141820|989898|1|9999041820|MR|Test|E|Lead 41820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041821|141821|989898|1|9999041821|MR|Test|E|Lead 41821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041822|141822|989898|1|9999041822|MR|Test|E|Lead 41822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041823|141823|989898|1|9999041823|MR|Test|E|Lead 41823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041824|141824|989898|1|9999041824|MR|Test|E|Lead 41824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041825|141825|989898|1|9999041825|MR|Test|E|Lead 41825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041826|141826|989898|1|9999041826|MR|Test|E|Lead 41826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041827|141827|989898|1|9999041827|MR|Test|E|Lead 41827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041828|141828|989898|1|9999041828|MR|Test|E|Lead 41828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041829|141829|989898|1|9999041829|MR|Test|E|Lead 41829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041830|141830|989898|1|9999041830|MR|Test|E|Lead 41830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041831|141831|989898|1|9999041831|MR|Test|E|Lead 41831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041832|141832|989898|1|9999041832|MR|Test|E|Lead 41832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041833|141833|989898|1|9999041833|MR|Test|E|Lead 41833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041834|141834|989898|1|9999041834|MR|Test|E|Lead 41834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041835|141835|989898|1|9999041835|MR|Test|E|Lead 41835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041836|141836|989898|1|9999041836|MR|Test|E|Lead 41836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041837|141837|989898|1|9999041837|MR|Test|E|Lead 41837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041838|141838|989898|1|9999041838|MR|Test|E|Lead 41838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041839|141839|989898|1|9999041839|MR|Test|E|Lead 41839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041840|141840|989898|1|9999041840|MR|Test|E|Lead 41840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041841|141841|989898|1|9999041841|MR|Test|E|Lead 41841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041842|141842|989898|1|9999041842|MR|Test|E|Lead 41842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041843|141843|989898|1|9999041843|MR|Test|E|Lead 41843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041844|141844|989898|1|9999041844|MR|Test|E|Lead 41844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041845|141845|989898|1|9999041845|MR|Test|E|Lead 41845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041846|141846|989898|1|9999041846|MR|Test|E|Lead 41846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041847|141847|989898|1|9999041847|MR|Test|E|Lead 41847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041848|141848|989898|1|9999041848|MR|Test|E|Lead 41848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041849|141849|989898|1|9999041849|MR|Test|E|Lead 41849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041850|141850|989898|1|9999041850|MR|Test|E|Lead 41850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041851|141851|989898|1|9999041851|MR|Test|E|Lead 41851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041852|141852|989898|1|9999041852|MR|Test|E|Lead 41852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041853|141853|989898|1|9999041853|MR|Test|E|Lead 41853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041854|141854|989898|1|9999041854|MR|Test|E|Lead 41854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041855|141855|989898|1|9999041855|MR|Test|E|Lead 41855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041856|141856|989898|1|9999041856|MR|Test|E|Lead 41856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041857|141857|989898|1|9999041857|MR|Test|E|Lead 41857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041858|141858|989898|1|9999041858|MR|Test|E|Lead 41858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041859|141859|989898|1|9999041859|MR|Test|E|Lead 41859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041860|141860|989898|1|9999041860|MR|Test|E|Lead 41860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041861|141861|989898|1|9999041861|MR|Test|E|Lead 41861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041862|141862|989898|1|9999041862|MR|Test|E|Lead 41862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041863|141863|989898|1|9999041863|MR|Test|E|Lead 41863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041864|141864|989898|1|9999041864|MR|Test|E|Lead 41864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041865|141865|989898|1|9999041865|MR|Test|E|Lead 41865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041866|141866|989898|1|9999041866|MR|Test|E|Lead 41866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041867|141867|989898|1|9999041867|MR|Test|E|Lead 41867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041868|141868|989898|1|9999041868|MR|Test|E|Lead 41868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041869|141869|989898|1|9999041869|MR|Test|E|Lead 41869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041870|141870|989898|1|9999041870|MR|Test|E|Lead 41870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041871|141871|989898|1|9999041871|MR|Test|E|Lead 41871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041872|141872|989898|1|9999041872|MR|Test|E|Lead 41872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041873|141873|989898|1|9999041873|MR|Test|E|Lead 41873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041874|141874|989898|1|9999041874|MR|Test|E|Lead 41874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041875|141875|989898|1|9999041875|MR|Test|E|Lead 41875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041876|141876|989898|1|9999041876|MR|Test|E|Lead 41876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041877|141877|989898|1|9999041877|MR|Test|E|Lead 41877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041878|141878|989898|1|9999041878|MR|Test|E|Lead 41878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041879|141879|989898|1|9999041879|MR|Test|E|Lead 41879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041880|141880|989898|1|9999041880|MR|Test|E|Lead 41880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041881|141881|989898|1|9999041881|MR|Test|E|Lead 41881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041882|141882|989898|1|9999041882|MR|Test|E|Lead 41882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041883|141883|989898|1|9999041883|MR|Test|E|Lead 41883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041884|141884|989898|1|9999041884|MR|Test|E|Lead 41884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041885|141885|989898|1|9999041885|MR|Test|E|Lead 41885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041886|141886|989898|1|9999041886|MR|Test|E|Lead 41886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041887|141887|989898|1|9999041887|MR|Test|E|Lead 41887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041888|141888|989898|1|9999041888|MR|Test|E|Lead 41888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041889|141889|989898|1|9999041889|MR|Test|E|Lead 41889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041890|141890|989898|1|9999041890|MR|Test|E|Lead 41890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041891|141891|989898|1|9999041891|MR|Test|E|Lead 41891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041892|141892|989898|1|9999041892|MR|Test|E|Lead 41892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041893|141893|989898|1|9999041893|MR|Test|E|Lead 41893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041894|141894|989898|1|9999041894|MR|Test|E|Lead 41894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041895|141895|989898|1|9999041895|MR|Test|E|Lead 41895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041896|141896|989898|1|9999041896|MR|Test|E|Lead 41896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041897|141897|989898|1|9999041897|MR|Test|E|Lead 41897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041898|141898|989898|1|9999041898|MR|Test|E|Lead 41898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041899|141899|989898|1|9999041899|MR|Test|E|Lead 41899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041900|141900|989898|1|9999041900|MR|Test|E|Lead 41900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041901|141901|989898|1|9999041901|MR|Test|E|Lead 41901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041902|141902|989898|1|9999041902|MR|Test|E|Lead 41902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041903|141903|989898|1|9999041903|MR|Test|E|Lead 41903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041904|141904|989898|1|9999041904|MR|Test|E|Lead 41904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041905|141905|989898|1|9999041905|MR|Test|E|Lead 41905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041906|141906|989898|1|9999041906|MR|Test|E|Lead 41906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041907|141907|989898|1|9999041907|MR|Test|E|Lead 41907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041908|141908|989898|1|9999041908|MR|Test|E|Lead 41908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041909|141909|989898|1|9999041909|MR|Test|E|Lead 41909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041910|141910|989898|1|9999041910|MR|Test|E|Lead 41910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041911|141911|989898|1|9999041911|MR|Test|E|Lead 41911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041912|141912|989898|1|9999041912|MR|Test|E|Lead 41912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041913|141913|989898|1|9999041913|MR|Test|E|Lead 41913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041914|141914|989898|1|9999041914|MR|Test|E|Lead 41914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041915|141915|989898|1|9999041915|MR|Test|E|Lead 41915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041916|141916|989898|1|9999041916|MR|Test|E|Lead 41916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041917|141917|989898|1|9999041917|MR|Test|E|Lead 41917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041918|141918|989898|1|9999041918|MR|Test|E|Lead 41918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041919|141919|989898|1|9999041919|MR|Test|E|Lead 41919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041920|141920|989898|1|9999041920|MR|Test|E|Lead 41920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041921|141921|989898|1|9999041921|MR|Test|E|Lead 41921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041922|141922|989898|1|9999041922|MR|Test|E|Lead 41922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041923|141923|989898|1|9999041923|MR|Test|E|Lead 41923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041924|141924|989898|1|9999041924|MR|Test|E|Lead 41924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041925|141925|989898|1|9999041925|MR|Test|E|Lead 41925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041926|141926|989898|1|9999041926|MR|Test|E|Lead 41926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041927|141927|989898|1|9999041927|MR|Test|E|Lead 41927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041928|141928|989898|1|9999041928|MR|Test|E|Lead 41928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041929|141929|989898|1|9999041929|MR|Test|E|Lead 41929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041930|141930|989898|1|9999041930|MR|Test|E|Lead 41930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041931|141931|989898|1|9999041931|MR|Test|E|Lead 41931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041932|141932|989898|1|9999041932|MR|Test|E|Lead 41932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041933|141933|989898|1|9999041933|MR|Test|E|Lead 41933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041934|141934|989898|1|9999041934|MR|Test|E|Lead 41934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041935|141935|989898|1|9999041935|MR|Test|E|Lead 41935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041936|141936|989898|1|9999041936|MR|Test|E|Lead 41936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041937|141937|989898|1|9999041937|MR|Test|E|Lead 41937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041938|141938|989898|1|9999041938|MR|Test|E|Lead 41938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041939|141939|989898|1|9999041939|MR|Test|E|Lead 41939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041940|141940|989898|1|9999041940|MR|Test|E|Lead 41940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041941|141941|989898|1|9999041941|MR|Test|E|Lead 41941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041942|141942|989898|1|9999041942|MR|Test|E|Lead 41942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041943|141943|989898|1|9999041943|MR|Test|E|Lead 41943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041944|141944|989898|1|9999041944|MR|Test|E|Lead 41944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041945|141945|989898|1|9999041945|MR|Test|E|Lead 41945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041946|141946|989898|1|9999041946|MR|Test|E|Lead 41946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041947|141947|989898|1|9999041947|MR|Test|E|Lead 41947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041948|141948|989898|1|9999041948|MR|Test|E|Lead 41948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041949|141949|989898|1|9999041949|MR|Test|E|Lead 41949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041950|141950|989898|1|9999041950|MR|Test|E|Lead 41950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041951|141951|989898|1|9999041951|MR|Test|E|Lead 41951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041952|141952|989898|1|9999041952|MR|Test|E|Lead 41952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041953|141953|989898|1|9999041953|MR|Test|E|Lead 41953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041954|141954|989898|1|9999041954|MR|Test|E|Lead 41954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041955|141955|989898|1|9999041955|MR|Test|E|Lead 41955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041956|141956|989898|1|9999041956|MR|Test|E|Lead 41956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041957|141957|989898|1|9999041957|MR|Test|E|Lead 41957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041958|141958|989898|1|9999041958|MR|Test|E|Lead 41958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041959|141959|989898|1|9999041959|MR|Test|E|Lead 41959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041960|141960|989898|1|9999041960|MR|Test|E|Lead 41960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041961|141961|989898|1|9999041961|MR|Test|E|Lead 41961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041962|141962|989898|1|9999041962|MR|Test|E|Lead 41962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041963|141963|989898|1|9999041963|MR|Test|E|Lead 41963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041964|141964|989898|1|9999041964|MR|Test|E|Lead 41964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041965|141965|989898|1|9999041965|MR|Test|E|Lead 41965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041966|141966|989898|1|9999041966|MR|Test|E|Lead 41966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041967|141967|989898|1|9999041967|MR|Test|E|Lead 41967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041968|141968|989898|1|9999041968|MR|Test|E|Lead 41968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041969|141969|989898|1|9999041969|MR|Test|E|Lead 41969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041970|141970|989898|1|9999041970|MR|Test|E|Lead 41970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041971|141971|989898|1|9999041971|MR|Test|E|Lead 41971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041972|141972|989898|1|9999041972|MR|Test|E|Lead 41972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041973|141973|989898|1|9999041973|MR|Test|E|Lead 41973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041974|141974|989898|1|9999041974|MR|Test|E|Lead 41974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041975|141975|989898|1|9999041975|MR|Test|E|Lead 41975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041976|141976|989898|1|9999041976|MR|Test|E|Lead 41976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041977|141977|989898|1|9999041977|MR|Test|E|Lead 41977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041978|141978|989898|1|9999041978|MR|Test|E|Lead 41978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041979|141979|989898|1|9999041979|MR|Test|E|Lead 41979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041980|141980|989898|1|9999041980|MR|Test|E|Lead 41980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041981|141981|989898|1|9999041981|MR|Test|E|Lead 41981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041982|141982|989898|1|9999041982|MR|Test|E|Lead 41982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041983|141983|989898|1|9999041983|MR|Test|E|Lead 41983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041984|141984|989898|1|9999041984|MR|Test|E|Lead 41984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041985|141985|989898|1|9999041985|MR|Test|E|Lead 41985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041986|141986|989898|1|9999041986|MR|Test|E|Lead 41986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041987|141987|989898|1|9999041987|MR|Test|E|Lead 41987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041988|141988|989898|1|9999041988|MR|Test|E|Lead 41988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041989|141989|989898|1|9999041989|MR|Test|E|Lead 41989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041990|141990|989898|1|9999041990|MR|Test|E|Lead 41990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041991|141991|989898|1|9999041991|MR|Test|E|Lead 41991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041992|141992|989898|1|9999041992|MR|Test|E|Lead 41992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041993|141993|989898|1|9999041993|MR|Test|E|Lead 41993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041994|141994|989898|1|9999041994|MR|Test|E|Lead 41994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041995|141995|989898|1|9999041995|MR|Test|E|Lead 41995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041996|141996|989898|1|9999041996|MR|Test|E|Lead 41996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041997|141997|989898|1|9999041997|MR|Test|E|Lead 41997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041998|141998|989898|1|9999041998|MR|Test|E|Lead 41998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1041999|141999|989898|1|9999041999|MR|Test|E|Lead 41999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042000|142000|989898|1|9999042000|MR|Test|E|Lead 42000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042001|142001|989898|1|9999042001|MR|Test|E|Lead 42001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042002|142002|989898|1|9999042002|MR|Test|E|Lead 42002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042003|142003|989898|1|9999042003|MR|Test|E|Lead 42003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042004|142004|989898|1|9999042004|MR|Test|E|Lead 42004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042005|142005|989898|1|9999042005|MR|Test|E|Lead 42005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042006|142006|989898|1|9999042006|MR|Test|E|Lead 42006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042007|142007|989898|1|9999042007|MR|Test|E|Lead 42007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042008|142008|989898|1|9999042008|MR|Test|E|Lead 42008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042009|142009|989898|1|9999042009|MR|Test|E|Lead 42009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042010|142010|989898|1|9999042010|MR|Test|E|Lead 42010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042011|142011|989898|1|9999042011|MR|Test|E|Lead 42011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042012|142012|989898|1|9999042012|MR|Test|E|Lead 42012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042013|142013|989898|1|9999042013|MR|Test|E|Lead 42013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042014|142014|989898|1|9999042014|MR|Test|E|Lead 42014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042015|142015|989898|1|9999042015|MR|Test|E|Lead 42015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042016|142016|989898|1|9999042016|MR|Test|E|Lead 42016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042017|142017|989898|1|9999042017|MR|Test|E|Lead 42017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042018|142018|989898|1|9999042018|MR|Test|E|Lead 42018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042019|142019|989898|1|9999042019|MR|Test|E|Lead 42019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042020|142020|989898|1|9999042020|MR|Test|E|Lead 42020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042021|142021|989898|1|9999042021|MR|Test|E|Lead 42021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042022|142022|989898|1|9999042022|MR|Test|E|Lead 42022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042023|142023|989898|1|9999042023|MR|Test|E|Lead 42023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042024|142024|989898|1|9999042024|MR|Test|E|Lead 42024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042025|142025|989898|1|9999042025|MR|Test|E|Lead 42025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042026|142026|989898|1|9999042026|MR|Test|E|Lead 42026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042027|142027|989898|1|9999042027|MR|Test|E|Lead 42027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042028|142028|989898|1|9999042028|MR|Test|E|Lead 42028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042029|142029|989898|1|9999042029|MR|Test|E|Lead 42029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042030|142030|989898|1|9999042030|MR|Test|E|Lead 42030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042031|142031|989898|1|9999042031|MR|Test|E|Lead 42031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042032|142032|989898|1|9999042032|MR|Test|E|Lead 42032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042033|142033|989898|1|9999042033|MR|Test|E|Lead 42033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042034|142034|989898|1|9999042034|MR|Test|E|Lead 42034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042035|142035|989898|1|9999042035|MR|Test|E|Lead 42035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042036|142036|989898|1|9999042036|MR|Test|E|Lead 42036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042037|142037|989898|1|9999042037|MR|Test|E|Lead 42037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042038|142038|989898|1|9999042038|MR|Test|E|Lead 42038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042039|142039|989898|1|9999042039|MR|Test|E|Lead 42039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042040|142040|989898|1|9999042040|MR|Test|E|Lead 42040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042041|142041|989898|1|9999042041|MR|Test|E|Lead 42041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042042|142042|989898|1|9999042042|MR|Test|E|Lead 42042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042043|142043|989898|1|9999042043|MR|Test|E|Lead 42043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042044|142044|989898|1|9999042044|MR|Test|E|Lead 42044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042045|142045|989898|1|9999042045|MR|Test|E|Lead 42045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042046|142046|989898|1|9999042046|MR|Test|E|Lead 42046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042047|142047|989898|1|9999042047|MR|Test|E|Lead 42047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042048|142048|989898|1|9999042048|MR|Test|E|Lead 42048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042049|142049|989898|1|9999042049|MR|Test|E|Lead 42049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042050|142050|989898|1|9999042050|MR|Test|E|Lead 42050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042051|142051|989898|1|9999042051|MR|Test|E|Lead 42051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042052|142052|989898|1|9999042052|MR|Test|E|Lead 42052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042053|142053|989898|1|9999042053|MR|Test|E|Lead 42053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042054|142054|989898|1|9999042054|MR|Test|E|Lead 42054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042055|142055|989898|1|9999042055|MR|Test|E|Lead 42055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042056|142056|989898|1|9999042056|MR|Test|E|Lead 42056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042057|142057|989898|1|9999042057|MR|Test|E|Lead 42057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042058|142058|989898|1|9999042058|MR|Test|E|Lead 42058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042059|142059|989898|1|9999042059|MR|Test|E|Lead 42059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042060|142060|989898|1|9999042060|MR|Test|E|Lead 42060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042061|142061|989898|1|9999042061|MR|Test|E|Lead 42061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042062|142062|989898|1|9999042062|MR|Test|E|Lead 42062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042063|142063|989898|1|9999042063|MR|Test|E|Lead 42063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042064|142064|989898|1|9999042064|MR|Test|E|Lead 42064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042065|142065|989898|1|9999042065|MR|Test|E|Lead 42065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042066|142066|989898|1|9999042066|MR|Test|E|Lead 42066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042067|142067|989898|1|9999042067|MR|Test|E|Lead 42067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042068|142068|989898|1|9999042068|MR|Test|E|Lead 42068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042069|142069|989898|1|9999042069|MR|Test|E|Lead 42069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042070|142070|989898|1|9999042070|MR|Test|E|Lead 42070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042071|142071|989898|1|9999042071|MR|Test|E|Lead 42071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042072|142072|989898|1|9999042072|MR|Test|E|Lead 42072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042073|142073|989898|1|9999042073|MR|Test|E|Lead 42073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042074|142074|989898|1|9999042074|MR|Test|E|Lead 42074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042075|142075|989898|1|9999042075|MR|Test|E|Lead 42075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042076|142076|989898|1|9999042076|MR|Test|E|Lead 42076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042077|142077|989898|1|9999042077|MR|Test|E|Lead 42077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042078|142078|989898|1|9999042078|MR|Test|E|Lead 42078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042079|142079|989898|1|9999042079|MR|Test|E|Lead 42079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042080|142080|989898|1|9999042080|MR|Test|E|Lead 42080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042081|142081|989898|1|9999042081|MR|Test|E|Lead 42081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042082|142082|989898|1|9999042082|MR|Test|E|Lead 42082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042083|142083|989898|1|9999042083|MR|Test|E|Lead 42083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042084|142084|989898|1|9999042084|MR|Test|E|Lead 42084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042085|142085|989898|1|9999042085|MR|Test|E|Lead 42085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042086|142086|989898|1|9999042086|MR|Test|E|Lead 42086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042087|142087|989898|1|9999042087|MR|Test|E|Lead 42087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042088|142088|989898|1|9999042088|MR|Test|E|Lead 42088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042089|142089|989898|1|9999042089|MR|Test|E|Lead 42089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042090|142090|989898|1|9999042090|MR|Test|E|Lead 42090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042091|142091|989898|1|9999042091|MR|Test|E|Lead 42091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042092|142092|989898|1|9999042092|MR|Test|E|Lead 42092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042093|142093|989898|1|9999042093|MR|Test|E|Lead 42093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042094|142094|989898|1|9999042094|MR|Test|E|Lead 42094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042095|142095|989898|1|9999042095|MR|Test|E|Lead 42095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042096|142096|989898|1|9999042096|MR|Test|E|Lead 42096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042097|142097|989898|1|9999042097|MR|Test|E|Lead 42097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042098|142098|989898|1|9999042098|MR|Test|E|Lead 42098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042099|142099|989898|1|9999042099|MR|Test|E|Lead 42099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042100|142100|989898|1|9999042100|MR|Test|E|Lead 42100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042101|142101|989898|1|9999042101|MR|Test|E|Lead 42101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042102|142102|989898|1|9999042102|MR|Test|E|Lead 42102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042103|142103|989898|1|9999042103|MR|Test|E|Lead 42103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042104|142104|989898|1|9999042104|MR|Test|E|Lead 42104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042105|142105|989898|1|9999042105|MR|Test|E|Lead 42105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042106|142106|989898|1|9999042106|MR|Test|E|Lead 42106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042107|142107|989898|1|9999042107|MR|Test|E|Lead 42107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042108|142108|989898|1|9999042108|MR|Test|E|Lead 42108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042109|142109|989898|1|9999042109|MR|Test|E|Lead 42109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042110|142110|989898|1|9999042110|MR|Test|E|Lead 42110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042111|142111|989898|1|9999042111|MR|Test|E|Lead 42111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042112|142112|989898|1|9999042112|MR|Test|E|Lead 42112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042113|142113|989898|1|9999042113|MR|Test|E|Lead 42113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042114|142114|989898|1|9999042114|MR|Test|E|Lead 42114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042115|142115|989898|1|9999042115|MR|Test|E|Lead 42115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042116|142116|989898|1|9999042116|MR|Test|E|Lead 42116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042117|142117|989898|1|9999042117|MR|Test|E|Lead 42117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042118|142118|989898|1|9999042118|MR|Test|E|Lead 42118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042119|142119|989898|1|9999042119|MR|Test|E|Lead 42119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042120|142120|989898|1|9999042120|MR|Test|E|Lead 42120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042121|142121|989898|1|9999042121|MR|Test|E|Lead 42121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042122|142122|989898|1|9999042122|MR|Test|E|Lead 42122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042123|142123|989898|1|9999042123|MR|Test|E|Lead 42123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042124|142124|989898|1|9999042124|MR|Test|E|Lead 42124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042125|142125|989898|1|9999042125|MR|Test|E|Lead 42125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042126|142126|989898|1|9999042126|MR|Test|E|Lead 42126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042127|142127|989898|1|9999042127|MR|Test|E|Lead 42127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042128|142128|989898|1|9999042128|MR|Test|E|Lead 42128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042129|142129|989898|1|9999042129|MR|Test|E|Lead 42129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042130|142130|989898|1|9999042130|MR|Test|E|Lead 42130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042131|142131|989898|1|9999042131|MR|Test|E|Lead 42131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042132|142132|989898|1|9999042132|MR|Test|E|Lead 42132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042133|142133|989898|1|9999042133|MR|Test|E|Lead 42133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042134|142134|989898|1|9999042134|MR|Test|E|Lead 42134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042135|142135|989898|1|9999042135|MR|Test|E|Lead 42135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042136|142136|989898|1|9999042136|MR|Test|E|Lead 42136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042137|142137|989898|1|9999042137|MR|Test|E|Lead 42137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042138|142138|989898|1|9999042138|MR|Test|E|Lead 42138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042139|142139|989898|1|9999042139|MR|Test|E|Lead 42139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042140|142140|989898|1|9999042140|MR|Test|E|Lead 42140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042141|142141|989898|1|9999042141|MR|Test|E|Lead 42141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042142|142142|989898|1|9999042142|MR|Test|E|Lead 42142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042143|142143|989898|1|9999042143|MR|Test|E|Lead 42143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042144|142144|989898|1|9999042144|MR|Test|E|Lead 42144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042145|142145|989898|1|9999042145|MR|Test|E|Lead 42145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042146|142146|989898|1|9999042146|MR|Test|E|Lead 42146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042147|142147|989898|1|9999042147|MR|Test|E|Lead 42147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042148|142148|989898|1|9999042148|MR|Test|E|Lead 42148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042149|142149|989898|1|9999042149|MR|Test|E|Lead 42149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042150|142150|989898|1|9999042150|MR|Test|E|Lead 42150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042151|142151|989898|1|9999042151|MR|Test|E|Lead 42151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042152|142152|989898|1|9999042152|MR|Test|E|Lead 42152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042153|142153|989898|1|9999042153|MR|Test|E|Lead 42153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042154|142154|989898|1|9999042154|MR|Test|E|Lead 42154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042155|142155|989898|1|9999042155|MR|Test|E|Lead 42155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042156|142156|989898|1|9999042156|MR|Test|E|Lead 42156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042157|142157|989898|1|9999042157|MR|Test|E|Lead 42157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042158|142158|989898|1|9999042158|MR|Test|E|Lead 42158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042159|142159|989898|1|9999042159|MR|Test|E|Lead 42159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042160|142160|989898|1|9999042160|MR|Test|E|Lead 42160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042161|142161|989898|1|9999042161|MR|Test|E|Lead 42161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042162|142162|989898|1|9999042162|MR|Test|E|Lead 42162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042163|142163|989898|1|9999042163|MR|Test|E|Lead 42163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042164|142164|989898|1|9999042164|MR|Test|E|Lead 42164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042165|142165|989898|1|9999042165|MR|Test|E|Lead 42165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042166|142166|989898|1|9999042166|MR|Test|E|Lead 42166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042167|142167|989898|1|9999042167|MR|Test|E|Lead 42167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042168|142168|989898|1|9999042168|MR|Test|E|Lead 42168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042169|142169|989898|1|9999042169|MR|Test|E|Lead 42169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042170|142170|989898|1|9999042170|MR|Test|E|Lead 42170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042171|142171|989898|1|9999042171|MR|Test|E|Lead 42171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042172|142172|989898|1|9999042172|MR|Test|E|Lead 42172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042173|142173|989898|1|9999042173|MR|Test|E|Lead 42173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042174|142174|989898|1|9999042174|MR|Test|E|Lead 42174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042175|142175|989898|1|9999042175|MR|Test|E|Lead 42175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042176|142176|989898|1|9999042176|MR|Test|E|Lead 42176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042177|142177|989898|1|9999042177|MR|Test|E|Lead 42177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042178|142178|989898|1|9999042178|MR|Test|E|Lead 42178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042179|142179|989898|1|9999042179|MR|Test|E|Lead 42179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042180|142180|989898|1|9999042180|MR|Test|E|Lead 42180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042181|142181|989898|1|9999042181|MR|Test|E|Lead 42181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042182|142182|989898|1|9999042182|MR|Test|E|Lead 42182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042183|142183|989898|1|9999042183|MR|Test|E|Lead 42183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042184|142184|989898|1|9999042184|MR|Test|E|Lead 42184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042185|142185|989898|1|9999042185|MR|Test|E|Lead 42185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042186|142186|989898|1|9999042186|MR|Test|E|Lead 42186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042187|142187|989898|1|9999042187|MR|Test|E|Lead 42187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042188|142188|989898|1|9999042188|MR|Test|E|Lead 42188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042189|142189|989898|1|9999042189|MR|Test|E|Lead 42189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042190|142190|989898|1|9999042190|MR|Test|E|Lead 42190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042191|142191|989898|1|9999042191|MR|Test|E|Lead 42191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042192|142192|989898|1|9999042192|MR|Test|E|Lead 42192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042193|142193|989898|1|9999042193|MR|Test|E|Lead 42193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042194|142194|989898|1|9999042194|MR|Test|E|Lead 42194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042195|142195|989898|1|9999042195|MR|Test|E|Lead 42195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042196|142196|989898|1|9999042196|MR|Test|E|Lead 42196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042197|142197|989898|1|9999042197|MR|Test|E|Lead 42197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042198|142198|989898|1|9999042198|MR|Test|E|Lead 42198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042199|142199|989898|1|9999042199|MR|Test|E|Lead 42199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042200|142200|989898|1|9999042200|MR|Test|E|Lead 42200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042201|142201|989898|1|9999042201|MR|Test|E|Lead 42201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042202|142202|989898|1|9999042202|MR|Test|E|Lead 42202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042203|142203|989898|1|9999042203|MR|Test|E|Lead 42203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042204|142204|989898|1|9999042204|MR|Test|E|Lead 42204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042205|142205|989898|1|9999042205|MR|Test|E|Lead 42205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042206|142206|989898|1|9999042206|MR|Test|E|Lead 42206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042207|142207|989898|1|9999042207|MR|Test|E|Lead 42207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042208|142208|989898|1|9999042208|MR|Test|E|Lead 42208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042209|142209|989898|1|9999042209|MR|Test|E|Lead 42209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042210|142210|989898|1|9999042210|MR|Test|E|Lead 42210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042211|142211|989898|1|9999042211|MR|Test|E|Lead 42211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042212|142212|989898|1|9999042212|MR|Test|E|Lead 42212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042213|142213|989898|1|9999042213|MR|Test|E|Lead 42213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042214|142214|989898|1|9999042214|MR|Test|E|Lead 42214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042215|142215|989898|1|9999042215|MR|Test|E|Lead 42215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042216|142216|989898|1|9999042216|MR|Test|E|Lead 42216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042217|142217|989898|1|9999042217|MR|Test|E|Lead 42217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042218|142218|989898|1|9999042218|MR|Test|E|Lead 42218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042219|142219|989898|1|9999042219|MR|Test|E|Lead 42219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042220|142220|989898|1|9999042220|MR|Test|E|Lead 42220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042221|142221|989898|1|9999042221|MR|Test|E|Lead 42221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042222|142222|989898|1|9999042222|MR|Test|E|Lead 42222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042223|142223|989898|1|9999042223|MR|Test|E|Lead 42223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042224|142224|989898|1|9999042224|MR|Test|E|Lead 42224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042225|142225|989898|1|9999042225|MR|Test|E|Lead 42225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042226|142226|989898|1|9999042226|MR|Test|E|Lead 42226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042227|142227|989898|1|9999042227|MR|Test|E|Lead 42227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042228|142228|989898|1|9999042228|MR|Test|E|Lead 42228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042229|142229|989898|1|9999042229|MR|Test|E|Lead 42229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042230|142230|989898|1|9999042230|MR|Test|E|Lead 42230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042231|142231|989898|1|9999042231|MR|Test|E|Lead 42231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042232|142232|989898|1|9999042232|MR|Test|E|Lead 42232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042233|142233|989898|1|9999042233|MR|Test|E|Lead 42233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042234|142234|989898|1|9999042234|MR|Test|E|Lead 42234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042235|142235|989898|1|9999042235|MR|Test|E|Lead 42235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042236|142236|989898|1|9999042236|MR|Test|E|Lead 42236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042237|142237|989898|1|9999042237|MR|Test|E|Lead 42237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042238|142238|989898|1|9999042238|MR|Test|E|Lead 42238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042239|142239|989898|1|9999042239|MR|Test|E|Lead 42239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042240|142240|989898|1|9999042240|MR|Test|E|Lead 42240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042241|142241|989898|1|9999042241|MR|Test|E|Lead 42241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042242|142242|989898|1|9999042242|MR|Test|E|Lead 42242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042243|142243|989898|1|9999042243|MR|Test|E|Lead 42243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042244|142244|989898|1|9999042244|MR|Test|E|Lead 42244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042245|142245|989898|1|9999042245|MR|Test|E|Lead 42245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042246|142246|989898|1|9999042246|MR|Test|E|Lead 42246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042247|142247|989898|1|9999042247|MR|Test|E|Lead 42247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042248|142248|989898|1|9999042248|MR|Test|E|Lead 42248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042249|142249|989898|1|9999042249|MR|Test|E|Lead 42249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042250|142250|989898|1|9999042250|MR|Test|E|Lead 42250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042251|142251|989898|1|9999042251|MR|Test|E|Lead 42251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042252|142252|989898|1|9999042252|MR|Test|E|Lead 42252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042253|142253|989898|1|9999042253|MR|Test|E|Lead 42253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042254|142254|989898|1|9999042254|MR|Test|E|Lead 42254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042255|142255|989898|1|9999042255|MR|Test|E|Lead 42255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042256|142256|989898|1|9999042256|MR|Test|E|Lead 42256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042257|142257|989898|1|9999042257|MR|Test|E|Lead 42257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042258|142258|989898|1|9999042258|MR|Test|E|Lead 42258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042259|142259|989898|1|9999042259|MR|Test|E|Lead 42259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042260|142260|989898|1|9999042260|MR|Test|E|Lead 42260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042261|142261|989898|1|9999042261|MR|Test|E|Lead 42261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042262|142262|989898|1|9999042262|MR|Test|E|Lead 42262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042263|142263|989898|1|9999042263|MR|Test|E|Lead 42263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042264|142264|989898|1|9999042264|MR|Test|E|Lead 42264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042265|142265|989898|1|9999042265|MR|Test|E|Lead 42265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042266|142266|989898|1|9999042266|MR|Test|E|Lead 42266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042267|142267|989898|1|9999042267|MR|Test|E|Lead 42267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042268|142268|989898|1|9999042268|MR|Test|E|Lead 42268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042269|142269|989898|1|9999042269|MR|Test|E|Lead 42269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042270|142270|989898|1|9999042270|MR|Test|E|Lead 42270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042271|142271|989898|1|9999042271|MR|Test|E|Lead 42271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042272|142272|989898|1|9999042272|MR|Test|E|Lead 42272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042273|142273|989898|1|9999042273|MR|Test|E|Lead 42273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042274|142274|989898|1|9999042274|MR|Test|E|Lead 42274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042275|142275|989898|1|9999042275|MR|Test|E|Lead 42275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042276|142276|989898|1|9999042276|MR|Test|E|Lead 42276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042277|142277|989898|1|9999042277|MR|Test|E|Lead 42277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042278|142278|989898|1|9999042278|MR|Test|E|Lead 42278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042279|142279|989898|1|9999042279|MR|Test|E|Lead 42279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042280|142280|989898|1|9999042280|MR|Test|E|Lead 42280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042281|142281|989898|1|9999042281|MR|Test|E|Lead 42281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042282|142282|989898|1|9999042282|MR|Test|E|Lead 42282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042283|142283|989898|1|9999042283|MR|Test|E|Lead 42283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042284|142284|989898|1|9999042284|MR|Test|E|Lead 42284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042285|142285|989898|1|9999042285|MR|Test|E|Lead 42285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042286|142286|989898|1|9999042286|MR|Test|E|Lead 42286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042287|142287|989898|1|9999042287|MR|Test|E|Lead 42287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042288|142288|989898|1|9999042288|MR|Test|E|Lead 42288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042289|142289|989898|1|9999042289|MR|Test|E|Lead 42289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042290|142290|989898|1|9999042290|MR|Test|E|Lead 42290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042291|142291|989898|1|9999042291|MR|Test|E|Lead 42291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042292|142292|989898|1|9999042292|MR|Test|E|Lead 42292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042293|142293|989898|1|9999042293|MR|Test|E|Lead 42293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042294|142294|989898|1|9999042294|MR|Test|E|Lead 42294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042295|142295|989898|1|9999042295|MR|Test|E|Lead 42295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042296|142296|989898|1|9999042296|MR|Test|E|Lead 42296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042297|142297|989898|1|9999042297|MR|Test|E|Lead 42297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042298|142298|989898|1|9999042298|MR|Test|E|Lead 42298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042299|142299|989898|1|9999042299|MR|Test|E|Lead 42299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042300|142300|989898|1|9999042300|MR|Test|E|Lead 42300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042301|142301|989898|1|9999042301|MR|Test|E|Lead 42301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042302|142302|989898|1|9999042302|MR|Test|E|Lead 42302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042303|142303|989898|1|9999042303|MR|Test|E|Lead 42303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042304|142304|989898|1|9999042304|MR|Test|E|Lead 42304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042305|142305|989898|1|9999042305|MR|Test|E|Lead 42305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042306|142306|989898|1|9999042306|MR|Test|E|Lead 42306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042307|142307|989898|1|9999042307|MR|Test|E|Lead 42307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042308|142308|989898|1|9999042308|MR|Test|E|Lead 42308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042309|142309|989898|1|9999042309|MR|Test|E|Lead 42309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042310|142310|989898|1|9999042310|MR|Test|E|Lead 42310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042311|142311|989898|1|9999042311|MR|Test|E|Lead 42311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042312|142312|989898|1|9999042312|MR|Test|E|Lead 42312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042313|142313|989898|1|9999042313|MR|Test|E|Lead 42313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042314|142314|989898|1|9999042314|MR|Test|E|Lead 42314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042315|142315|989898|1|9999042315|MR|Test|E|Lead 42315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042316|142316|989898|1|9999042316|MR|Test|E|Lead 42316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042317|142317|989898|1|9999042317|MR|Test|E|Lead 42317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042318|142318|989898|1|9999042318|MR|Test|E|Lead 42318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042319|142319|989898|1|9999042319|MR|Test|E|Lead 42319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042320|142320|989898|1|9999042320|MR|Test|E|Lead 42320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042321|142321|989898|1|9999042321|MR|Test|E|Lead 42321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042322|142322|989898|1|9999042322|MR|Test|E|Lead 42322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042323|142323|989898|1|9999042323|MR|Test|E|Lead 42323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042324|142324|989898|1|9999042324|MR|Test|E|Lead 42324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042325|142325|989898|1|9999042325|MR|Test|E|Lead 42325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042326|142326|989898|1|9999042326|MR|Test|E|Lead 42326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042327|142327|989898|1|9999042327|MR|Test|E|Lead 42327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042328|142328|989898|1|9999042328|MR|Test|E|Lead 42328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042329|142329|989898|1|9999042329|MR|Test|E|Lead 42329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042330|142330|989898|1|9999042330|MR|Test|E|Lead 42330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042331|142331|989898|1|9999042331|MR|Test|E|Lead 42331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042332|142332|989898|1|9999042332|MR|Test|E|Lead 42332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042333|142333|989898|1|9999042333|MR|Test|E|Lead 42333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042334|142334|989898|1|9999042334|MR|Test|E|Lead 42334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042335|142335|989898|1|9999042335|MR|Test|E|Lead 42335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042336|142336|989898|1|9999042336|MR|Test|E|Lead 42336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042337|142337|989898|1|9999042337|MR|Test|E|Lead 42337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042338|142338|989898|1|9999042338|MR|Test|E|Lead 42338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042339|142339|989898|1|9999042339|MR|Test|E|Lead 42339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042340|142340|989898|1|9999042340|MR|Test|E|Lead 42340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042341|142341|989898|1|9999042341|MR|Test|E|Lead 42341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042342|142342|989898|1|9999042342|MR|Test|E|Lead 42342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042343|142343|989898|1|9999042343|MR|Test|E|Lead 42343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042344|142344|989898|1|9999042344|MR|Test|E|Lead 42344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042345|142345|989898|1|9999042345|MR|Test|E|Lead 42345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042346|142346|989898|1|9999042346|MR|Test|E|Lead 42346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042347|142347|989898|1|9999042347|MR|Test|E|Lead 42347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042348|142348|989898|1|9999042348|MR|Test|E|Lead 42348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042349|142349|989898|1|9999042349|MR|Test|E|Lead 42349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042350|142350|989898|1|9999042350|MR|Test|E|Lead 42350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042351|142351|989898|1|9999042351|MR|Test|E|Lead 42351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042352|142352|989898|1|9999042352|MR|Test|E|Lead 42352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042353|142353|989898|1|9999042353|MR|Test|E|Lead 42353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042354|142354|989898|1|9999042354|MR|Test|E|Lead 42354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042355|142355|989898|1|9999042355|MR|Test|E|Lead 42355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042356|142356|989898|1|9999042356|MR|Test|E|Lead 42356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042357|142357|989898|1|9999042357|MR|Test|E|Lead 42357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042358|142358|989898|1|9999042358|MR|Test|E|Lead 42358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042359|142359|989898|1|9999042359|MR|Test|E|Lead 42359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042360|142360|989898|1|9999042360|MR|Test|E|Lead 42360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042361|142361|989898|1|9999042361|MR|Test|E|Lead 42361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042362|142362|989898|1|9999042362|MR|Test|E|Lead 42362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042363|142363|989898|1|9999042363|MR|Test|E|Lead 42363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042364|142364|989898|1|9999042364|MR|Test|E|Lead 42364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042365|142365|989898|1|9999042365|MR|Test|E|Lead 42365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042366|142366|989898|1|9999042366|MR|Test|E|Lead 42366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042367|142367|989898|1|9999042367|MR|Test|E|Lead 42367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042368|142368|989898|1|9999042368|MR|Test|E|Lead 42368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042369|142369|989898|1|9999042369|MR|Test|E|Lead 42369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042370|142370|989898|1|9999042370|MR|Test|E|Lead 42370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042371|142371|989898|1|9999042371|MR|Test|E|Lead 42371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042372|142372|989898|1|9999042372|MR|Test|E|Lead 42372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042373|142373|989898|1|9999042373|MR|Test|E|Lead 42373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042374|142374|989898|1|9999042374|MR|Test|E|Lead 42374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042375|142375|989898|1|9999042375|MR|Test|E|Lead 42375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042376|142376|989898|1|9999042376|MR|Test|E|Lead 42376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042377|142377|989898|1|9999042377|MR|Test|E|Lead 42377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042378|142378|989898|1|9999042378|MR|Test|E|Lead 42378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042379|142379|989898|1|9999042379|MR|Test|E|Lead 42379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042380|142380|989898|1|9999042380|MR|Test|E|Lead 42380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042381|142381|989898|1|9999042381|MR|Test|E|Lead 42381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042382|142382|989898|1|9999042382|MR|Test|E|Lead 42382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042383|142383|989898|1|9999042383|MR|Test|E|Lead 42383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042384|142384|989898|1|9999042384|MR|Test|E|Lead 42384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042385|142385|989898|1|9999042385|MR|Test|E|Lead 42385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042386|142386|989898|1|9999042386|MR|Test|E|Lead 42386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042387|142387|989898|1|9999042387|MR|Test|E|Lead 42387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042388|142388|989898|1|9999042388|MR|Test|E|Lead 42388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042389|142389|989898|1|9999042389|MR|Test|E|Lead 42389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042390|142390|989898|1|9999042390|MR|Test|E|Lead 42390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042391|142391|989898|1|9999042391|MR|Test|E|Lead 42391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042392|142392|989898|1|9999042392|MR|Test|E|Lead 42392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042393|142393|989898|1|9999042393|MR|Test|E|Lead 42393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042394|142394|989898|1|9999042394|MR|Test|E|Lead 42394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042395|142395|989898|1|9999042395|MR|Test|E|Lead 42395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042396|142396|989898|1|9999042396|MR|Test|E|Lead 42396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042397|142397|989898|1|9999042397|MR|Test|E|Lead 42397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042398|142398|989898|1|9999042398|MR|Test|E|Lead 42398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042399|142399|989898|1|9999042399|MR|Test|E|Lead 42399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042400|142400|989898|1|9999042400|MR|Test|E|Lead 42400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042401|142401|989898|1|9999042401|MR|Test|E|Lead 42401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042402|142402|989898|1|9999042402|MR|Test|E|Lead 42402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042403|142403|989898|1|9999042403|MR|Test|E|Lead 42403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042404|142404|989898|1|9999042404|MR|Test|E|Lead 42404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042405|142405|989898|1|9999042405|MR|Test|E|Lead 42405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042406|142406|989898|1|9999042406|MR|Test|E|Lead 42406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042407|142407|989898|1|9999042407|MR|Test|E|Lead 42407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042408|142408|989898|1|9999042408|MR|Test|E|Lead 42408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042409|142409|989898|1|9999042409|MR|Test|E|Lead 42409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042410|142410|989898|1|9999042410|MR|Test|E|Lead 42410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042411|142411|989898|1|9999042411|MR|Test|E|Lead 42411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042412|142412|989898|1|9999042412|MR|Test|E|Lead 42412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042413|142413|989898|1|9999042413|MR|Test|E|Lead 42413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042414|142414|989898|1|9999042414|MR|Test|E|Lead 42414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042415|142415|989898|1|9999042415|MR|Test|E|Lead 42415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042416|142416|989898|1|9999042416|MR|Test|E|Lead 42416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042417|142417|989898|1|9999042417|MR|Test|E|Lead 42417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042418|142418|989898|1|9999042418|MR|Test|E|Lead 42418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042419|142419|989898|1|9999042419|MR|Test|E|Lead 42419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042420|142420|989898|1|9999042420|MR|Test|E|Lead 42420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042421|142421|989898|1|9999042421|MR|Test|E|Lead 42421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042422|142422|989898|1|9999042422|MR|Test|E|Lead 42422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042423|142423|989898|1|9999042423|MR|Test|E|Lead 42423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042424|142424|989898|1|9999042424|MR|Test|E|Lead 42424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042425|142425|989898|1|9999042425|MR|Test|E|Lead 42425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042426|142426|989898|1|9999042426|MR|Test|E|Lead 42426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042427|142427|989898|1|9999042427|MR|Test|E|Lead 42427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042428|142428|989898|1|9999042428|MR|Test|E|Lead 42428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042429|142429|989898|1|9999042429|MR|Test|E|Lead 42429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042430|142430|989898|1|9999042430|MR|Test|E|Lead 42430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042431|142431|989898|1|9999042431|MR|Test|E|Lead 42431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042432|142432|989898|1|9999042432|MR|Test|E|Lead 42432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042433|142433|989898|1|9999042433|MR|Test|E|Lead 42433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042434|142434|989898|1|9999042434|MR|Test|E|Lead 42434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042435|142435|989898|1|9999042435|MR|Test|E|Lead 42435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042436|142436|989898|1|9999042436|MR|Test|E|Lead 42436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042437|142437|989898|1|9999042437|MR|Test|E|Lead 42437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042438|142438|989898|1|9999042438|MR|Test|E|Lead 42438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042439|142439|989898|1|9999042439|MR|Test|E|Lead 42439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042440|142440|989898|1|9999042440|MR|Test|E|Lead 42440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042441|142441|989898|1|9999042441|MR|Test|E|Lead 42441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042442|142442|989898|1|9999042442|MR|Test|E|Lead 42442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042443|142443|989898|1|9999042443|MR|Test|E|Lead 42443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042444|142444|989898|1|9999042444|MR|Test|E|Lead 42444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042445|142445|989898|1|9999042445|MR|Test|E|Lead 42445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042446|142446|989898|1|9999042446|MR|Test|E|Lead 42446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042447|142447|989898|1|9999042447|MR|Test|E|Lead 42447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042448|142448|989898|1|9999042448|MR|Test|E|Lead 42448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042449|142449|989898|1|9999042449|MR|Test|E|Lead 42449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042450|142450|989898|1|9999042450|MR|Test|E|Lead 42450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042451|142451|989898|1|9999042451|MR|Test|E|Lead 42451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042452|142452|989898|1|9999042452|MR|Test|E|Lead 42452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042453|142453|989898|1|9999042453|MR|Test|E|Lead 42453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042454|142454|989898|1|9999042454|MR|Test|E|Lead 42454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042455|142455|989898|1|9999042455|MR|Test|E|Lead 42455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042456|142456|989898|1|9999042456|MR|Test|E|Lead 42456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042457|142457|989898|1|9999042457|MR|Test|E|Lead 42457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042458|142458|989898|1|9999042458|MR|Test|E|Lead 42458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042459|142459|989898|1|9999042459|MR|Test|E|Lead 42459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042460|142460|989898|1|9999042460|MR|Test|E|Lead 42460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042461|142461|989898|1|9999042461|MR|Test|E|Lead 42461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042462|142462|989898|1|9999042462|MR|Test|E|Lead 42462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042463|142463|989898|1|9999042463|MR|Test|E|Lead 42463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042464|142464|989898|1|9999042464|MR|Test|E|Lead 42464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042465|142465|989898|1|9999042465|MR|Test|E|Lead 42465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042466|142466|989898|1|9999042466|MR|Test|E|Lead 42466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042467|142467|989898|1|9999042467|MR|Test|E|Lead 42467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042468|142468|989898|1|9999042468|MR|Test|E|Lead 42468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042469|142469|989898|1|9999042469|MR|Test|E|Lead 42469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042470|142470|989898|1|9999042470|MR|Test|E|Lead 42470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042471|142471|989898|1|9999042471|MR|Test|E|Lead 42471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042472|142472|989898|1|9999042472|MR|Test|E|Lead 42472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042473|142473|989898|1|9999042473|MR|Test|E|Lead 42473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042474|142474|989898|1|9999042474|MR|Test|E|Lead 42474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042475|142475|989898|1|9999042475|MR|Test|E|Lead 42475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042476|142476|989898|1|9999042476|MR|Test|E|Lead 42476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042477|142477|989898|1|9999042477|MR|Test|E|Lead 42477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042478|142478|989898|1|9999042478|MR|Test|E|Lead 42478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042479|142479|989898|1|9999042479|MR|Test|E|Lead 42479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042480|142480|989898|1|9999042480|MR|Test|E|Lead 42480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042481|142481|989898|1|9999042481|MR|Test|E|Lead 42481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042482|142482|989898|1|9999042482|MR|Test|E|Lead 42482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042483|142483|989898|1|9999042483|MR|Test|E|Lead 42483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042484|142484|989898|1|9999042484|MR|Test|E|Lead 42484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042485|142485|989898|1|9999042485|MR|Test|E|Lead 42485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042486|142486|989898|1|9999042486|MR|Test|E|Lead 42486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042487|142487|989898|1|9999042487|MR|Test|E|Lead 42487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042488|142488|989898|1|9999042488|MR|Test|E|Lead 42488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042489|142489|989898|1|9999042489|MR|Test|E|Lead 42489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042490|142490|989898|1|9999042490|MR|Test|E|Lead 42490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042491|142491|989898|1|9999042491|MR|Test|E|Lead 42491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042492|142492|989898|1|9999042492|MR|Test|E|Lead 42492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042493|142493|989898|1|9999042493|MR|Test|E|Lead 42493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042494|142494|989898|1|9999042494|MR|Test|E|Lead 42494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042495|142495|989898|1|9999042495|MR|Test|E|Lead 42495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042496|142496|989898|1|9999042496|MR|Test|E|Lead 42496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042497|142497|989898|1|9999042497|MR|Test|E|Lead 42497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042498|142498|989898|1|9999042498|MR|Test|E|Lead 42498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042499|142499|989898|1|9999042499|MR|Test|E|Lead 42499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042500|142500|989898|1|9999042500|MR|Test|E|Lead 42500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042501|142501|989898|1|9999042501|MR|Test|E|Lead 42501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042502|142502|989898|1|9999042502|MR|Test|E|Lead 42502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042503|142503|989898|1|9999042503|MR|Test|E|Lead 42503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042504|142504|989898|1|9999042504|MR|Test|E|Lead 42504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042505|142505|989898|1|9999042505|MR|Test|E|Lead 42505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042506|142506|989898|1|9999042506|MR|Test|E|Lead 42506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042507|142507|989898|1|9999042507|MR|Test|E|Lead 42507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042508|142508|989898|1|9999042508|MR|Test|E|Lead 42508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042509|142509|989898|1|9999042509|MR|Test|E|Lead 42509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042510|142510|989898|1|9999042510|MR|Test|E|Lead 42510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042511|142511|989898|1|9999042511|MR|Test|E|Lead 42511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042512|142512|989898|1|9999042512|MR|Test|E|Lead 42512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042513|142513|989898|1|9999042513|MR|Test|E|Lead 42513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042514|142514|989898|1|9999042514|MR|Test|E|Lead 42514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042515|142515|989898|1|9999042515|MR|Test|E|Lead 42515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042516|142516|989898|1|9999042516|MR|Test|E|Lead 42516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042517|142517|989898|1|9999042517|MR|Test|E|Lead 42517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042518|142518|989898|1|9999042518|MR|Test|E|Lead 42518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042519|142519|989898|1|9999042519|MR|Test|E|Lead 42519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042520|142520|989898|1|9999042520|MR|Test|E|Lead 42520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042521|142521|989898|1|9999042521|MR|Test|E|Lead 42521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042522|142522|989898|1|9999042522|MR|Test|E|Lead 42522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042523|142523|989898|1|9999042523|MR|Test|E|Lead 42523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042524|142524|989898|1|9999042524|MR|Test|E|Lead 42524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042525|142525|989898|1|9999042525|MR|Test|E|Lead 42525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042526|142526|989898|1|9999042526|MR|Test|E|Lead 42526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042527|142527|989898|1|9999042527|MR|Test|E|Lead 42527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042528|142528|989898|1|9999042528|MR|Test|E|Lead 42528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042529|142529|989898|1|9999042529|MR|Test|E|Lead 42529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042530|142530|989898|1|9999042530|MR|Test|E|Lead 42530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042531|142531|989898|1|9999042531|MR|Test|E|Lead 42531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042532|142532|989898|1|9999042532|MR|Test|E|Lead 42532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042533|142533|989898|1|9999042533|MR|Test|E|Lead 42533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042534|142534|989898|1|9999042534|MR|Test|E|Lead 42534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042535|142535|989898|1|9999042535|MR|Test|E|Lead 42535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042536|142536|989898|1|9999042536|MR|Test|E|Lead 42536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042537|142537|989898|1|9999042537|MR|Test|E|Lead 42537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042538|142538|989898|1|9999042538|MR|Test|E|Lead 42538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042539|142539|989898|1|9999042539|MR|Test|E|Lead 42539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042540|142540|989898|1|9999042540|MR|Test|E|Lead 42540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042541|142541|989898|1|9999042541|MR|Test|E|Lead 42541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042542|142542|989898|1|9999042542|MR|Test|E|Lead 42542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042543|142543|989898|1|9999042543|MR|Test|E|Lead 42543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042544|142544|989898|1|9999042544|MR|Test|E|Lead 42544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042545|142545|989898|1|9999042545|MR|Test|E|Lead 42545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042546|142546|989898|1|9999042546|MR|Test|E|Lead 42546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042547|142547|989898|1|9999042547|MR|Test|E|Lead 42547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042548|142548|989898|1|9999042548|MR|Test|E|Lead 42548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042549|142549|989898|1|9999042549|MR|Test|E|Lead 42549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042550|142550|989898|1|9999042550|MR|Test|E|Lead 42550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042551|142551|989898|1|9999042551|MR|Test|E|Lead 42551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042552|142552|989898|1|9999042552|MR|Test|E|Lead 42552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042553|142553|989898|1|9999042553|MR|Test|E|Lead 42553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042554|142554|989898|1|9999042554|MR|Test|E|Lead 42554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042555|142555|989898|1|9999042555|MR|Test|E|Lead 42555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042556|142556|989898|1|9999042556|MR|Test|E|Lead 42556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042557|142557|989898|1|9999042557|MR|Test|E|Lead 42557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042558|142558|989898|1|9999042558|MR|Test|E|Lead 42558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042559|142559|989898|1|9999042559|MR|Test|E|Lead 42559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042560|142560|989898|1|9999042560|MR|Test|E|Lead 42560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042561|142561|989898|1|9999042561|MR|Test|E|Lead 42561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042562|142562|989898|1|9999042562|MR|Test|E|Lead 42562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042563|142563|989898|1|9999042563|MR|Test|E|Lead 42563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042564|142564|989898|1|9999042564|MR|Test|E|Lead 42564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042565|142565|989898|1|9999042565|MR|Test|E|Lead 42565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042566|142566|989898|1|9999042566|MR|Test|E|Lead 42566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042567|142567|989898|1|9999042567|MR|Test|E|Lead 42567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042568|142568|989898|1|9999042568|MR|Test|E|Lead 42568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042569|142569|989898|1|9999042569|MR|Test|E|Lead 42569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042570|142570|989898|1|9999042570|MR|Test|E|Lead 42570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042571|142571|989898|1|9999042571|MR|Test|E|Lead 42571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042572|142572|989898|1|9999042572|MR|Test|E|Lead 42572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042573|142573|989898|1|9999042573|MR|Test|E|Lead 42573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042574|142574|989898|1|9999042574|MR|Test|E|Lead 42574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042575|142575|989898|1|9999042575|MR|Test|E|Lead 42575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042576|142576|989898|1|9999042576|MR|Test|E|Lead 42576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042577|142577|989898|1|9999042577|MR|Test|E|Lead 42577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042578|142578|989898|1|9999042578|MR|Test|E|Lead 42578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042579|142579|989898|1|9999042579|MR|Test|E|Lead 42579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042580|142580|989898|1|9999042580|MR|Test|E|Lead 42580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042581|142581|989898|1|9999042581|MR|Test|E|Lead 42581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042582|142582|989898|1|9999042582|MR|Test|E|Lead 42582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042583|142583|989898|1|9999042583|MR|Test|E|Lead 42583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042584|142584|989898|1|9999042584|MR|Test|E|Lead 42584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042585|142585|989898|1|9999042585|MR|Test|E|Lead 42585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042586|142586|989898|1|9999042586|MR|Test|E|Lead 42586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042587|142587|989898|1|9999042587|MR|Test|E|Lead 42587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042588|142588|989898|1|9999042588|MR|Test|E|Lead 42588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042589|142589|989898|1|9999042589|MR|Test|E|Lead 42589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042590|142590|989898|1|9999042590|MR|Test|E|Lead 42590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042591|142591|989898|1|9999042591|MR|Test|E|Lead 42591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042592|142592|989898|1|9999042592|MR|Test|E|Lead 42592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042593|142593|989898|1|9999042593|MR|Test|E|Lead 42593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042594|142594|989898|1|9999042594|MR|Test|E|Lead 42594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042595|142595|989898|1|9999042595|MR|Test|E|Lead 42595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042596|142596|989898|1|9999042596|MR|Test|E|Lead 42596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042597|142597|989898|1|9999042597|MR|Test|E|Lead 42597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042598|142598|989898|1|9999042598|MR|Test|E|Lead 42598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042599|142599|989898|1|9999042599|MR|Test|E|Lead 42599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042600|142600|989898|1|9999042600|MR|Test|E|Lead 42600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042601|142601|989898|1|9999042601|MR|Test|E|Lead 42601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042602|142602|989898|1|9999042602|MR|Test|E|Lead 42602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042603|142603|989898|1|9999042603|MR|Test|E|Lead 42603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042604|142604|989898|1|9999042604|MR|Test|E|Lead 42604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042605|142605|989898|1|9999042605|MR|Test|E|Lead 42605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042606|142606|989898|1|9999042606|MR|Test|E|Lead 42606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042607|142607|989898|1|9999042607|MR|Test|E|Lead 42607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042608|142608|989898|1|9999042608|MR|Test|E|Lead 42608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042609|142609|989898|1|9999042609|MR|Test|E|Lead 42609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042610|142610|989898|1|9999042610|MR|Test|E|Lead 42610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042611|142611|989898|1|9999042611|MR|Test|E|Lead 42611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042612|142612|989898|1|9999042612|MR|Test|E|Lead 42612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042613|142613|989898|1|9999042613|MR|Test|E|Lead 42613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042614|142614|989898|1|9999042614|MR|Test|E|Lead 42614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042615|142615|989898|1|9999042615|MR|Test|E|Lead 42615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042616|142616|989898|1|9999042616|MR|Test|E|Lead 42616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042617|142617|989898|1|9999042617|MR|Test|E|Lead 42617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042618|142618|989898|1|9999042618|MR|Test|E|Lead 42618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042619|142619|989898|1|9999042619|MR|Test|E|Lead 42619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042620|142620|989898|1|9999042620|MR|Test|E|Lead 42620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042621|142621|989898|1|9999042621|MR|Test|E|Lead 42621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042622|142622|989898|1|9999042622|MR|Test|E|Lead 42622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042623|142623|989898|1|9999042623|MR|Test|E|Lead 42623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042624|142624|989898|1|9999042624|MR|Test|E|Lead 42624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042625|142625|989898|1|9999042625|MR|Test|E|Lead 42625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042626|142626|989898|1|9999042626|MR|Test|E|Lead 42626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042627|142627|989898|1|9999042627|MR|Test|E|Lead 42627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042628|142628|989898|1|9999042628|MR|Test|E|Lead 42628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042629|142629|989898|1|9999042629|MR|Test|E|Lead 42629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042630|142630|989898|1|9999042630|MR|Test|E|Lead 42630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042631|142631|989898|1|9999042631|MR|Test|E|Lead 42631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042632|142632|989898|1|9999042632|MR|Test|E|Lead 42632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042633|142633|989898|1|9999042633|MR|Test|E|Lead 42633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042634|142634|989898|1|9999042634|MR|Test|E|Lead 42634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042635|142635|989898|1|9999042635|MR|Test|E|Lead 42635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042636|142636|989898|1|9999042636|MR|Test|E|Lead 42636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042637|142637|989898|1|9999042637|MR|Test|E|Lead 42637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042638|142638|989898|1|9999042638|MR|Test|E|Lead 42638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042639|142639|989898|1|9999042639|MR|Test|E|Lead 42639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042640|142640|989898|1|9999042640|MR|Test|E|Lead 42640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042641|142641|989898|1|9999042641|MR|Test|E|Lead 42641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042642|142642|989898|1|9999042642|MR|Test|E|Lead 42642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042643|142643|989898|1|9999042643|MR|Test|E|Lead 42643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042644|142644|989898|1|9999042644|MR|Test|E|Lead 42644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042645|142645|989898|1|9999042645|MR|Test|E|Lead 42645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042646|142646|989898|1|9999042646|MR|Test|E|Lead 42646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042647|142647|989898|1|9999042647|MR|Test|E|Lead 42647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042648|142648|989898|1|9999042648|MR|Test|E|Lead 42648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042649|142649|989898|1|9999042649|MR|Test|E|Lead 42649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042650|142650|989898|1|9999042650|MR|Test|E|Lead 42650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042651|142651|989898|1|9999042651|MR|Test|E|Lead 42651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042652|142652|989898|1|9999042652|MR|Test|E|Lead 42652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042653|142653|989898|1|9999042653|MR|Test|E|Lead 42653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042654|142654|989898|1|9999042654|MR|Test|E|Lead 42654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042655|142655|989898|1|9999042655|MR|Test|E|Lead 42655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042656|142656|989898|1|9999042656|MR|Test|E|Lead 42656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042657|142657|989898|1|9999042657|MR|Test|E|Lead 42657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042658|142658|989898|1|9999042658|MR|Test|E|Lead 42658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042659|142659|989898|1|9999042659|MR|Test|E|Lead 42659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042660|142660|989898|1|9999042660|MR|Test|E|Lead 42660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042661|142661|989898|1|9999042661|MR|Test|E|Lead 42661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042662|142662|989898|1|9999042662|MR|Test|E|Lead 42662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042663|142663|989898|1|9999042663|MR|Test|E|Lead 42663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042664|142664|989898|1|9999042664|MR|Test|E|Lead 42664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042665|142665|989898|1|9999042665|MR|Test|E|Lead 42665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042666|142666|989898|1|9999042666|MR|Test|E|Lead 42666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042667|142667|989898|1|9999042667|MR|Test|E|Lead 42667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042668|142668|989898|1|9999042668|MR|Test|E|Lead 42668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042669|142669|989898|1|9999042669|MR|Test|E|Lead 42669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042670|142670|989898|1|9999042670|MR|Test|E|Lead 42670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042671|142671|989898|1|9999042671|MR|Test|E|Lead 42671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042672|142672|989898|1|9999042672|MR|Test|E|Lead 42672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042673|142673|989898|1|9999042673|MR|Test|E|Lead 42673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042674|142674|989898|1|9999042674|MR|Test|E|Lead 42674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042675|142675|989898|1|9999042675|MR|Test|E|Lead 42675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042676|142676|989898|1|9999042676|MR|Test|E|Lead 42676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042677|142677|989898|1|9999042677|MR|Test|E|Lead 42677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042678|142678|989898|1|9999042678|MR|Test|E|Lead 42678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042679|142679|989898|1|9999042679|MR|Test|E|Lead 42679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042680|142680|989898|1|9999042680|MR|Test|E|Lead 42680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042681|142681|989898|1|9999042681|MR|Test|E|Lead 42681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042682|142682|989898|1|9999042682|MR|Test|E|Lead 42682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042683|142683|989898|1|9999042683|MR|Test|E|Lead 42683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042684|142684|989898|1|9999042684|MR|Test|E|Lead 42684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042685|142685|989898|1|9999042685|MR|Test|E|Lead 42685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042686|142686|989898|1|9999042686|MR|Test|E|Lead 42686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042687|142687|989898|1|9999042687|MR|Test|E|Lead 42687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042688|142688|989898|1|9999042688|MR|Test|E|Lead 42688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042689|142689|989898|1|9999042689|MR|Test|E|Lead 42689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042690|142690|989898|1|9999042690|MR|Test|E|Lead 42690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042691|142691|989898|1|9999042691|MR|Test|E|Lead 42691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042692|142692|989898|1|9999042692|MR|Test|E|Lead 42692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042693|142693|989898|1|9999042693|MR|Test|E|Lead 42693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042694|142694|989898|1|9999042694|MR|Test|E|Lead 42694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042695|142695|989898|1|9999042695|MR|Test|E|Lead 42695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042696|142696|989898|1|9999042696|MR|Test|E|Lead 42696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042697|142697|989898|1|9999042697|MR|Test|E|Lead 42697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042698|142698|989898|1|9999042698|MR|Test|E|Lead 42698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042699|142699|989898|1|9999042699|MR|Test|E|Lead 42699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042700|142700|989898|1|9999042700|MR|Test|E|Lead 42700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042701|142701|989898|1|9999042701|MR|Test|E|Lead 42701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042702|142702|989898|1|9999042702|MR|Test|E|Lead 42702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042703|142703|989898|1|9999042703|MR|Test|E|Lead 42703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042704|142704|989898|1|9999042704|MR|Test|E|Lead 42704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042705|142705|989898|1|9999042705|MR|Test|E|Lead 42705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042706|142706|989898|1|9999042706|MR|Test|E|Lead 42706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042707|142707|989898|1|9999042707|MR|Test|E|Lead 42707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042708|142708|989898|1|9999042708|MR|Test|E|Lead 42708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042709|142709|989898|1|9999042709|MR|Test|E|Lead 42709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042710|142710|989898|1|9999042710|MR|Test|E|Lead 42710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042711|142711|989898|1|9999042711|MR|Test|E|Lead 42711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042712|142712|989898|1|9999042712|MR|Test|E|Lead 42712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042713|142713|989898|1|9999042713|MR|Test|E|Lead 42713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042714|142714|989898|1|9999042714|MR|Test|E|Lead 42714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042715|142715|989898|1|9999042715|MR|Test|E|Lead 42715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042716|142716|989898|1|9999042716|MR|Test|E|Lead 42716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042717|142717|989898|1|9999042717|MR|Test|E|Lead 42717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042718|142718|989898|1|9999042718|MR|Test|E|Lead 42718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042719|142719|989898|1|9999042719|MR|Test|E|Lead 42719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042720|142720|989898|1|9999042720|MR|Test|E|Lead 42720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042721|142721|989898|1|9999042721|MR|Test|E|Lead 42721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042722|142722|989898|1|9999042722|MR|Test|E|Lead 42722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042723|142723|989898|1|9999042723|MR|Test|E|Lead 42723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042724|142724|989898|1|9999042724|MR|Test|E|Lead 42724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042725|142725|989898|1|9999042725|MR|Test|E|Lead 42725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042726|142726|989898|1|9999042726|MR|Test|E|Lead 42726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042727|142727|989898|1|9999042727|MR|Test|E|Lead 42727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042728|142728|989898|1|9999042728|MR|Test|E|Lead 42728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042729|142729|989898|1|9999042729|MR|Test|E|Lead 42729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042730|142730|989898|1|9999042730|MR|Test|E|Lead 42730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042731|142731|989898|1|9999042731|MR|Test|E|Lead 42731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042732|142732|989898|1|9999042732|MR|Test|E|Lead 42732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042733|142733|989898|1|9999042733|MR|Test|E|Lead 42733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042734|142734|989898|1|9999042734|MR|Test|E|Lead 42734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042735|142735|989898|1|9999042735|MR|Test|E|Lead 42735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042736|142736|989898|1|9999042736|MR|Test|E|Lead 42736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042737|142737|989898|1|9999042737|MR|Test|E|Lead 42737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042738|142738|989898|1|9999042738|MR|Test|E|Lead 42738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042739|142739|989898|1|9999042739|MR|Test|E|Lead 42739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042740|142740|989898|1|9999042740|MR|Test|E|Lead 42740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042741|142741|989898|1|9999042741|MR|Test|E|Lead 42741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042742|142742|989898|1|9999042742|MR|Test|E|Lead 42742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042743|142743|989898|1|9999042743|MR|Test|E|Lead 42743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042744|142744|989898|1|9999042744|MR|Test|E|Lead 42744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042745|142745|989898|1|9999042745|MR|Test|E|Lead 42745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042746|142746|989898|1|9999042746|MR|Test|E|Lead 42746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042747|142747|989898|1|9999042747|MR|Test|E|Lead 42747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042748|142748|989898|1|9999042748|MR|Test|E|Lead 42748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042749|142749|989898|1|9999042749|MR|Test|E|Lead 42749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042750|142750|989898|1|9999042750|MR|Test|E|Lead 42750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042751|142751|989898|1|9999042751|MR|Test|E|Lead 42751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042752|142752|989898|1|9999042752|MR|Test|E|Lead 42752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042753|142753|989898|1|9999042753|MR|Test|E|Lead 42753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042754|142754|989898|1|9999042754|MR|Test|E|Lead 42754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042755|142755|989898|1|9999042755|MR|Test|E|Lead 42755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042756|142756|989898|1|9999042756|MR|Test|E|Lead 42756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042757|142757|989898|1|9999042757|MR|Test|E|Lead 42757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042758|142758|989898|1|9999042758|MR|Test|E|Lead 42758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042759|142759|989898|1|9999042759|MR|Test|E|Lead 42759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042760|142760|989898|1|9999042760|MR|Test|E|Lead 42760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042761|142761|989898|1|9999042761|MR|Test|E|Lead 42761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042762|142762|989898|1|9999042762|MR|Test|E|Lead 42762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042763|142763|989898|1|9999042763|MR|Test|E|Lead 42763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042764|142764|989898|1|9999042764|MR|Test|E|Lead 42764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042765|142765|989898|1|9999042765|MR|Test|E|Lead 42765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042766|142766|989898|1|9999042766|MR|Test|E|Lead 42766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042767|142767|989898|1|9999042767|MR|Test|E|Lead 42767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042768|142768|989898|1|9999042768|MR|Test|E|Lead 42768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042769|142769|989898|1|9999042769|MR|Test|E|Lead 42769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042770|142770|989898|1|9999042770|MR|Test|E|Lead 42770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042771|142771|989898|1|9999042771|MR|Test|E|Lead 42771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042772|142772|989898|1|9999042772|MR|Test|E|Lead 42772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042773|142773|989898|1|9999042773|MR|Test|E|Lead 42773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042774|142774|989898|1|9999042774|MR|Test|E|Lead 42774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042775|142775|989898|1|9999042775|MR|Test|E|Lead 42775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042776|142776|989898|1|9999042776|MR|Test|E|Lead 42776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042777|142777|989898|1|9999042777|MR|Test|E|Lead 42777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042778|142778|989898|1|9999042778|MR|Test|E|Lead 42778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042779|142779|989898|1|9999042779|MR|Test|E|Lead 42779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042780|142780|989898|1|9999042780|MR|Test|E|Lead 42780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042781|142781|989898|1|9999042781|MR|Test|E|Lead 42781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042782|142782|989898|1|9999042782|MR|Test|E|Lead 42782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042783|142783|989898|1|9999042783|MR|Test|E|Lead 42783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042784|142784|989898|1|9999042784|MR|Test|E|Lead 42784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042785|142785|989898|1|9999042785|MR|Test|E|Lead 42785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042786|142786|989898|1|9999042786|MR|Test|E|Lead 42786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042787|142787|989898|1|9999042787|MR|Test|E|Lead 42787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042788|142788|989898|1|9999042788|MR|Test|E|Lead 42788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042789|142789|989898|1|9999042789|MR|Test|E|Lead 42789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042790|142790|989898|1|9999042790|MR|Test|E|Lead 42790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042791|142791|989898|1|9999042791|MR|Test|E|Lead 42791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042792|142792|989898|1|9999042792|MR|Test|E|Lead 42792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042793|142793|989898|1|9999042793|MR|Test|E|Lead 42793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042794|142794|989898|1|9999042794|MR|Test|E|Lead 42794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042795|142795|989898|1|9999042795|MR|Test|E|Lead 42795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042796|142796|989898|1|9999042796|MR|Test|E|Lead 42796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042797|142797|989898|1|9999042797|MR|Test|E|Lead 42797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042798|142798|989898|1|9999042798|MR|Test|E|Lead 42798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042799|142799|989898|1|9999042799|MR|Test|E|Lead 42799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042800|142800|989898|1|9999042800|MR|Test|E|Lead 42800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042801|142801|989898|1|9999042801|MR|Test|E|Lead 42801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042802|142802|989898|1|9999042802|MR|Test|E|Lead 42802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042803|142803|989898|1|9999042803|MR|Test|E|Lead 42803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042804|142804|989898|1|9999042804|MR|Test|E|Lead 42804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042805|142805|989898|1|9999042805|MR|Test|E|Lead 42805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042806|142806|989898|1|9999042806|MR|Test|E|Lead 42806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042807|142807|989898|1|9999042807|MR|Test|E|Lead 42807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042808|142808|989898|1|9999042808|MR|Test|E|Lead 42808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042809|142809|989898|1|9999042809|MR|Test|E|Lead 42809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042810|142810|989898|1|9999042810|MR|Test|E|Lead 42810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042811|142811|989898|1|9999042811|MR|Test|E|Lead 42811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042812|142812|989898|1|9999042812|MR|Test|E|Lead 42812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042813|142813|989898|1|9999042813|MR|Test|E|Lead 42813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042814|142814|989898|1|9999042814|MR|Test|E|Lead 42814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042815|142815|989898|1|9999042815|MR|Test|E|Lead 42815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042816|142816|989898|1|9999042816|MR|Test|E|Lead 42816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042817|142817|989898|1|9999042817|MR|Test|E|Lead 42817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042818|142818|989898|1|9999042818|MR|Test|E|Lead 42818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042819|142819|989898|1|9999042819|MR|Test|E|Lead 42819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042820|142820|989898|1|9999042820|MR|Test|E|Lead 42820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042821|142821|989898|1|9999042821|MR|Test|E|Lead 42821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042822|142822|989898|1|9999042822|MR|Test|E|Lead 42822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042823|142823|989898|1|9999042823|MR|Test|E|Lead 42823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042824|142824|989898|1|9999042824|MR|Test|E|Lead 42824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042825|142825|989898|1|9999042825|MR|Test|E|Lead 42825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042826|142826|989898|1|9999042826|MR|Test|E|Lead 42826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042827|142827|989898|1|9999042827|MR|Test|E|Lead 42827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042828|142828|989898|1|9999042828|MR|Test|E|Lead 42828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042829|142829|989898|1|9999042829|MR|Test|E|Lead 42829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042830|142830|989898|1|9999042830|MR|Test|E|Lead 42830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042831|142831|989898|1|9999042831|MR|Test|E|Lead 42831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042832|142832|989898|1|9999042832|MR|Test|E|Lead 42832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042833|142833|989898|1|9999042833|MR|Test|E|Lead 42833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042834|142834|989898|1|9999042834|MR|Test|E|Lead 42834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042835|142835|989898|1|9999042835|MR|Test|E|Lead 42835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042836|142836|989898|1|9999042836|MR|Test|E|Lead 42836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042837|142837|989898|1|9999042837|MR|Test|E|Lead 42837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042838|142838|989898|1|9999042838|MR|Test|E|Lead 42838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042839|142839|989898|1|9999042839|MR|Test|E|Lead 42839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042840|142840|989898|1|9999042840|MR|Test|E|Lead 42840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042841|142841|989898|1|9999042841|MR|Test|E|Lead 42841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042842|142842|989898|1|9999042842|MR|Test|E|Lead 42842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042843|142843|989898|1|9999042843|MR|Test|E|Lead 42843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042844|142844|989898|1|9999042844|MR|Test|E|Lead 42844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042845|142845|989898|1|9999042845|MR|Test|E|Lead 42845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042846|142846|989898|1|9999042846|MR|Test|E|Lead 42846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042847|142847|989898|1|9999042847|MR|Test|E|Lead 42847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042848|142848|989898|1|9999042848|MR|Test|E|Lead 42848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042849|142849|989898|1|9999042849|MR|Test|E|Lead 42849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042850|142850|989898|1|9999042850|MR|Test|E|Lead 42850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042851|142851|989898|1|9999042851|MR|Test|E|Lead 42851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042852|142852|989898|1|9999042852|MR|Test|E|Lead 42852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042853|142853|989898|1|9999042853|MR|Test|E|Lead 42853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042854|142854|989898|1|9999042854|MR|Test|E|Lead 42854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042855|142855|989898|1|9999042855|MR|Test|E|Lead 42855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042856|142856|989898|1|9999042856|MR|Test|E|Lead 42856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042857|142857|989898|1|9999042857|MR|Test|E|Lead 42857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042858|142858|989898|1|9999042858|MR|Test|E|Lead 42858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042859|142859|989898|1|9999042859|MR|Test|E|Lead 42859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042860|142860|989898|1|9999042860|MR|Test|E|Lead 42860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042861|142861|989898|1|9999042861|MR|Test|E|Lead 42861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042862|142862|989898|1|9999042862|MR|Test|E|Lead 42862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042863|142863|989898|1|9999042863|MR|Test|E|Lead 42863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042864|142864|989898|1|9999042864|MR|Test|E|Lead 42864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042865|142865|989898|1|9999042865|MR|Test|E|Lead 42865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042866|142866|989898|1|9999042866|MR|Test|E|Lead 42866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042867|142867|989898|1|9999042867|MR|Test|E|Lead 42867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042868|142868|989898|1|9999042868|MR|Test|E|Lead 42868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042869|142869|989898|1|9999042869|MR|Test|E|Lead 42869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042870|142870|989898|1|9999042870|MR|Test|E|Lead 42870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042871|142871|989898|1|9999042871|MR|Test|E|Lead 42871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042872|142872|989898|1|9999042872|MR|Test|E|Lead 42872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042873|142873|989898|1|9999042873|MR|Test|E|Lead 42873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042874|142874|989898|1|9999042874|MR|Test|E|Lead 42874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042875|142875|989898|1|9999042875|MR|Test|E|Lead 42875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042876|142876|989898|1|9999042876|MR|Test|E|Lead 42876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042877|142877|989898|1|9999042877|MR|Test|E|Lead 42877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042878|142878|989898|1|9999042878|MR|Test|E|Lead 42878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042879|142879|989898|1|9999042879|MR|Test|E|Lead 42879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042880|142880|989898|1|9999042880|MR|Test|E|Lead 42880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042881|142881|989898|1|9999042881|MR|Test|E|Lead 42881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042882|142882|989898|1|9999042882|MR|Test|E|Lead 42882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042883|142883|989898|1|9999042883|MR|Test|E|Lead 42883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042884|142884|989898|1|9999042884|MR|Test|E|Lead 42884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042885|142885|989898|1|9999042885|MR|Test|E|Lead 42885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042886|142886|989898|1|9999042886|MR|Test|E|Lead 42886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042887|142887|989898|1|9999042887|MR|Test|E|Lead 42887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042888|142888|989898|1|9999042888|MR|Test|E|Lead 42888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042889|142889|989898|1|9999042889|MR|Test|E|Lead 42889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042890|142890|989898|1|9999042890|MR|Test|E|Lead 42890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042891|142891|989898|1|9999042891|MR|Test|E|Lead 42891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042892|142892|989898|1|9999042892|MR|Test|E|Lead 42892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042893|142893|989898|1|9999042893|MR|Test|E|Lead 42893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042894|142894|989898|1|9999042894|MR|Test|E|Lead 42894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042895|142895|989898|1|9999042895|MR|Test|E|Lead 42895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042896|142896|989898|1|9999042896|MR|Test|E|Lead 42896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042897|142897|989898|1|9999042897|MR|Test|E|Lead 42897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042898|142898|989898|1|9999042898|MR|Test|E|Lead 42898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042899|142899|989898|1|9999042899|MR|Test|E|Lead 42899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042900|142900|989898|1|9999042900|MR|Test|E|Lead 42900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042901|142901|989898|1|9999042901|MR|Test|E|Lead 42901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042902|142902|989898|1|9999042902|MR|Test|E|Lead 42902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042903|142903|989898|1|9999042903|MR|Test|E|Lead 42903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042904|142904|989898|1|9999042904|MR|Test|E|Lead 42904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042905|142905|989898|1|9999042905|MR|Test|E|Lead 42905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042906|142906|989898|1|9999042906|MR|Test|E|Lead 42906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042907|142907|989898|1|9999042907|MR|Test|E|Lead 42907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042908|142908|989898|1|9999042908|MR|Test|E|Lead 42908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042909|142909|989898|1|9999042909|MR|Test|E|Lead 42909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042910|142910|989898|1|9999042910|MR|Test|E|Lead 42910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042911|142911|989898|1|9999042911|MR|Test|E|Lead 42911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042912|142912|989898|1|9999042912|MR|Test|E|Lead 42912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042913|142913|989898|1|9999042913|MR|Test|E|Lead 42913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042914|142914|989898|1|9999042914|MR|Test|E|Lead 42914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042915|142915|989898|1|9999042915|MR|Test|E|Lead 42915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042916|142916|989898|1|9999042916|MR|Test|E|Lead 42916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042917|142917|989898|1|9999042917|MR|Test|E|Lead 42917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042918|142918|989898|1|9999042918|MR|Test|E|Lead 42918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042919|142919|989898|1|9999042919|MR|Test|E|Lead 42919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042920|142920|989898|1|9999042920|MR|Test|E|Lead 42920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042921|142921|989898|1|9999042921|MR|Test|E|Lead 42921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042922|142922|989898|1|9999042922|MR|Test|E|Lead 42922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042923|142923|989898|1|9999042923|MR|Test|E|Lead 42923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042924|142924|989898|1|9999042924|MR|Test|E|Lead 42924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042925|142925|989898|1|9999042925|MR|Test|E|Lead 42925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042926|142926|989898|1|9999042926|MR|Test|E|Lead 42926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042927|142927|989898|1|9999042927|MR|Test|E|Lead 42927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042928|142928|989898|1|9999042928|MR|Test|E|Lead 42928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042929|142929|989898|1|9999042929|MR|Test|E|Lead 42929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042930|142930|989898|1|9999042930|MR|Test|E|Lead 42930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042931|142931|989898|1|9999042931|MR|Test|E|Lead 42931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042932|142932|989898|1|9999042932|MR|Test|E|Lead 42932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042933|142933|989898|1|9999042933|MR|Test|E|Lead 42933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042934|142934|989898|1|9999042934|MR|Test|E|Lead 42934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042935|142935|989898|1|9999042935|MR|Test|E|Lead 42935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042936|142936|989898|1|9999042936|MR|Test|E|Lead 42936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042937|142937|989898|1|9999042937|MR|Test|E|Lead 42937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042938|142938|989898|1|9999042938|MR|Test|E|Lead 42938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042939|142939|989898|1|9999042939|MR|Test|E|Lead 42939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042940|142940|989898|1|9999042940|MR|Test|E|Lead 42940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042941|142941|989898|1|9999042941|MR|Test|E|Lead 42941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042942|142942|989898|1|9999042942|MR|Test|E|Lead 42942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042943|142943|989898|1|9999042943|MR|Test|E|Lead 42943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042944|142944|989898|1|9999042944|MR|Test|E|Lead 42944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042945|142945|989898|1|9999042945|MR|Test|E|Lead 42945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042946|142946|989898|1|9999042946|MR|Test|E|Lead 42946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042947|142947|989898|1|9999042947|MR|Test|E|Lead 42947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042948|142948|989898|1|9999042948|MR|Test|E|Lead 42948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042949|142949|989898|1|9999042949|MR|Test|E|Lead 42949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042950|142950|989898|1|9999042950|MR|Test|E|Lead 42950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042951|142951|989898|1|9999042951|MR|Test|E|Lead 42951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042952|142952|989898|1|9999042952|MR|Test|E|Lead 42952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042953|142953|989898|1|9999042953|MR|Test|E|Lead 42953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042954|142954|989898|1|9999042954|MR|Test|E|Lead 42954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042955|142955|989898|1|9999042955|MR|Test|E|Lead 42955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042956|142956|989898|1|9999042956|MR|Test|E|Lead 42956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042957|142957|989898|1|9999042957|MR|Test|E|Lead 42957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042958|142958|989898|1|9999042958|MR|Test|E|Lead 42958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042959|142959|989898|1|9999042959|MR|Test|E|Lead 42959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042960|142960|989898|1|9999042960|MR|Test|E|Lead 42960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042961|142961|989898|1|9999042961|MR|Test|E|Lead 42961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042962|142962|989898|1|9999042962|MR|Test|E|Lead 42962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042963|142963|989898|1|9999042963|MR|Test|E|Lead 42963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042964|142964|989898|1|9999042964|MR|Test|E|Lead 42964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042965|142965|989898|1|9999042965|MR|Test|E|Lead 42965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042966|142966|989898|1|9999042966|MR|Test|E|Lead 42966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042967|142967|989898|1|9999042967|MR|Test|E|Lead 42967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042968|142968|989898|1|9999042968|MR|Test|E|Lead 42968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042969|142969|989898|1|9999042969|MR|Test|E|Lead 42969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042970|142970|989898|1|9999042970|MR|Test|E|Lead 42970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042971|142971|989898|1|9999042971|MR|Test|E|Lead 42971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042972|142972|989898|1|9999042972|MR|Test|E|Lead 42972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042973|142973|989898|1|9999042973|MR|Test|E|Lead 42973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042974|142974|989898|1|9999042974|MR|Test|E|Lead 42974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042975|142975|989898|1|9999042975|MR|Test|E|Lead 42975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042976|142976|989898|1|9999042976|MR|Test|E|Lead 42976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042977|142977|989898|1|9999042977|MR|Test|E|Lead 42977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042978|142978|989898|1|9999042978|MR|Test|E|Lead 42978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042979|142979|989898|1|9999042979|MR|Test|E|Lead 42979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042980|142980|989898|1|9999042980|MR|Test|E|Lead 42980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042981|142981|989898|1|9999042981|MR|Test|E|Lead 42981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042982|142982|989898|1|9999042982|MR|Test|E|Lead 42982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042983|142983|989898|1|9999042983|MR|Test|E|Lead 42983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042984|142984|989898|1|9999042984|MR|Test|E|Lead 42984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042985|142985|989898|1|9999042985|MR|Test|E|Lead 42985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042986|142986|989898|1|9999042986|MR|Test|E|Lead 42986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042987|142987|989898|1|9999042987|MR|Test|E|Lead 42987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042988|142988|989898|1|9999042988|MR|Test|E|Lead 42988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042989|142989|989898|1|9999042989|MR|Test|E|Lead 42989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042990|142990|989898|1|9999042990|MR|Test|E|Lead 42990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042991|142991|989898|1|9999042991|MR|Test|E|Lead 42991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042992|142992|989898|1|9999042992|MR|Test|E|Lead 42992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042993|142993|989898|1|9999042993|MR|Test|E|Lead 42993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042994|142994|989898|1|9999042994|MR|Test|E|Lead 42994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042995|142995|989898|1|9999042995|MR|Test|E|Lead 42995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042996|142996|989898|1|9999042996|MR|Test|E|Lead 42996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042997|142997|989898|1|9999042997|MR|Test|E|Lead 42997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042998|142998|989898|1|9999042998|MR|Test|E|Lead 42998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1042999|142999|989898|1|9999042999|MR|Test|E|Lead 42999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043000|143000|989898|1|9999043000|MR|Test|E|Lead 43000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043001|143001|989898|1|9999043001|MR|Test|E|Lead 43001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043002|143002|989898|1|9999043002|MR|Test|E|Lead 43002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043003|143003|989898|1|9999043003|MR|Test|E|Lead 43003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043004|143004|989898|1|9999043004|MR|Test|E|Lead 43004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043005|143005|989898|1|9999043005|MR|Test|E|Lead 43005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043006|143006|989898|1|9999043006|MR|Test|E|Lead 43006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043007|143007|989898|1|9999043007|MR|Test|E|Lead 43007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043008|143008|989898|1|9999043008|MR|Test|E|Lead 43008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043009|143009|989898|1|9999043009|MR|Test|E|Lead 43009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043010|143010|989898|1|9999043010|MR|Test|E|Lead 43010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043011|143011|989898|1|9999043011|MR|Test|E|Lead 43011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043012|143012|989898|1|9999043012|MR|Test|E|Lead 43012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043013|143013|989898|1|9999043013|MR|Test|E|Lead 43013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043014|143014|989898|1|9999043014|MR|Test|E|Lead 43014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043015|143015|989898|1|9999043015|MR|Test|E|Lead 43015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043016|143016|989898|1|9999043016|MR|Test|E|Lead 43016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043017|143017|989898|1|9999043017|MR|Test|E|Lead 43017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043018|143018|989898|1|9999043018|MR|Test|E|Lead 43018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043019|143019|989898|1|9999043019|MR|Test|E|Lead 43019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043020|143020|989898|1|9999043020|MR|Test|E|Lead 43020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043021|143021|989898|1|9999043021|MR|Test|E|Lead 43021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043022|143022|989898|1|9999043022|MR|Test|E|Lead 43022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043023|143023|989898|1|9999043023|MR|Test|E|Lead 43023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043024|143024|989898|1|9999043024|MR|Test|E|Lead 43024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043025|143025|989898|1|9999043025|MR|Test|E|Lead 43025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043026|143026|989898|1|9999043026|MR|Test|E|Lead 43026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043027|143027|989898|1|9999043027|MR|Test|E|Lead 43027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043028|143028|989898|1|9999043028|MR|Test|E|Lead 43028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043029|143029|989898|1|9999043029|MR|Test|E|Lead 43029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043030|143030|989898|1|9999043030|MR|Test|E|Lead 43030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043031|143031|989898|1|9999043031|MR|Test|E|Lead 43031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043032|143032|989898|1|9999043032|MR|Test|E|Lead 43032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043033|143033|989898|1|9999043033|MR|Test|E|Lead 43033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043034|143034|989898|1|9999043034|MR|Test|E|Lead 43034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043035|143035|989898|1|9999043035|MR|Test|E|Lead 43035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043036|143036|989898|1|9999043036|MR|Test|E|Lead 43036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043037|143037|989898|1|9999043037|MR|Test|E|Lead 43037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043038|143038|989898|1|9999043038|MR|Test|E|Lead 43038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043039|143039|989898|1|9999043039|MR|Test|E|Lead 43039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043040|143040|989898|1|9999043040|MR|Test|E|Lead 43040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043041|143041|989898|1|9999043041|MR|Test|E|Lead 43041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043042|143042|989898|1|9999043042|MR|Test|E|Lead 43042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043043|143043|989898|1|9999043043|MR|Test|E|Lead 43043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043044|143044|989898|1|9999043044|MR|Test|E|Lead 43044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043045|143045|989898|1|9999043045|MR|Test|E|Lead 43045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043046|143046|989898|1|9999043046|MR|Test|E|Lead 43046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043047|143047|989898|1|9999043047|MR|Test|E|Lead 43047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043048|143048|989898|1|9999043048|MR|Test|E|Lead 43048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043049|143049|989898|1|9999043049|MR|Test|E|Lead 43049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043050|143050|989898|1|9999043050|MR|Test|E|Lead 43050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043051|143051|989898|1|9999043051|MR|Test|E|Lead 43051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043052|143052|989898|1|9999043052|MR|Test|E|Lead 43052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043053|143053|989898|1|9999043053|MR|Test|E|Lead 43053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043054|143054|989898|1|9999043054|MR|Test|E|Lead 43054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043055|143055|989898|1|9999043055|MR|Test|E|Lead 43055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043056|143056|989898|1|9999043056|MR|Test|E|Lead 43056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043057|143057|989898|1|9999043057|MR|Test|E|Lead 43057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043058|143058|989898|1|9999043058|MR|Test|E|Lead 43058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043059|143059|989898|1|9999043059|MR|Test|E|Lead 43059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043060|143060|989898|1|9999043060|MR|Test|E|Lead 43060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043061|143061|989898|1|9999043061|MR|Test|E|Lead 43061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043062|143062|989898|1|9999043062|MR|Test|E|Lead 43062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043063|143063|989898|1|9999043063|MR|Test|E|Lead 43063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043064|143064|989898|1|9999043064|MR|Test|E|Lead 43064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043065|143065|989898|1|9999043065|MR|Test|E|Lead 43065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043066|143066|989898|1|9999043066|MR|Test|E|Lead 43066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043067|143067|989898|1|9999043067|MR|Test|E|Lead 43067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043068|143068|989898|1|9999043068|MR|Test|E|Lead 43068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043069|143069|989898|1|9999043069|MR|Test|E|Lead 43069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043070|143070|989898|1|9999043070|MR|Test|E|Lead 43070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043071|143071|989898|1|9999043071|MR|Test|E|Lead 43071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043072|143072|989898|1|9999043072|MR|Test|E|Lead 43072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043073|143073|989898|1|9999043073|MR|Test|E|Lead 43073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043074|143074|989898|1|9999043074|MR|Test|E|Lead 43074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043075|143075|989898|1|9999043075|MR|Test|E|Lead 43075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043076|143076|989898|1|9999043076|MR|Test|E|Lead 43076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043077|143077|989898|1|9999043077|MR|Test|E|Lead 43077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043078|143078|989898|1|9999043078|MR|Test|E|Lead 43078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043079|143079|989898|1|9999043079|MR|Test|E|Lead 43079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043080|143080|989898|1|9999043080|MR|Test|E|Lead 43080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043081|143081|989898|1|9999043081|MR|Test|E|Lead 43081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043082|143082|989898|1|9999043082|MR|Test|E|Lead 43082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043083|143083|989898|1|9999043083|MR|Test|E|Lead 43083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043084|143084|989898|1|9999043084|MR|Test|E|Lead 43084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043085|143085|989898|1|9999043085|MR|Test|E|Lead 43085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043086|143086|989898|1|9999043086|MR|Test|E|Lead 43086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043087|143087|989898|1|9999043087|MR|Test|E|Lead 43087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043088|143088|989898|1|9999043088|MR|Test|E|Lead 43088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043089|143089|989898|1|9999043089|MR|Test|E|Lead 43089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043090|143090|989898|1|9999043090|MR|Test|E|Lead 43090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043091|143091|989898|1|9999043091|MR|Test|E|Lead 43091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043092|143092|989898|1|9999043092|MR|Test|E|Lead 43092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043093|143093|989898|1|9999043093|MR|Test|E|Lead 43093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043094|143094|989898|1|9999043094|MR|Test|E|Lead 43094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043095|143095|989898|1|9999043095|MR|Test|E|Lead 43095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043096|143096|989898|1|9999043096|MR|Test|E|Lead 43096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043097|143097|989898|1|9999043097|MR|Test|E|Lead 43097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043098|143098|989898|1|9999043098|MR|Test|E|Lead 43098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043099|143099|989898|1|9999043099|MR|Test|E|Lead 43099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043100|143100|989898|1|9999043100|MR|Test|E|Lead 43100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043101|143101|989898|1|9999043101|MR|Test|E|Lead 43101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043102|143102|989898|1|9999043102|MR|Test|E|Lead 43102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043103|143103|989898|1|9999043103|MR|Test|E|Lead 43103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043104|143104|989898|1|9999043104|MR|Test|E|Lead 43104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043105|143105|989898|1|9999043105|MR|Test|E|Lead 43105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043106|143106|989898|1|9999043106|MR|Test|E|Lead 43106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043107|143107|989898|1|9999043107|MR|Test|E|Lead 43107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043108|143108|989898|1|9999043108|MR|Test|E|Lead 43108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043109|143109|989898|1|9999043109|MR|Test|E|Lead 43109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043110|143110|989898|1|9999043110|MR|Test|E|Lead 43110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043111|143111|989898|1|9999043111|MR|Test|E|Lead 43111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043112|143112|989898|1|9999043112|MR|Test|E|Lead 43112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043113|143113|989898|1|9999043113|MR|Test|E|Lead 43113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043114|143114|989898|1|9999043114|MR|Test|E|Lead 43114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043115|143115|989898|1|9999043115|MR|Test|E|Lead 43115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043116|143116|989898|1|9999043116|MR|Test|E|Lead 43116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043117|143117|989898|1|9999043117|MR|Test|E|Lead 43117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043118|143118|989898|1|9999043118|MR|Test|E|Lead 43118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043119|143119|989898|1|9999043119|MR|Test|E|Lead 43119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043120|143120|989898|1|9999043120|MR|Test|E|Lead 43120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043121|143121|989898|1|9999043121|MR|Test|E|Lead 43121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043122|143122|989898|1|9999043122|MR|Test|E|Lead 43122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043123|143123|989898|1|9999043123|MR|Test|E|Lead 43123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043124|143124|989898|1|9999043124|MR|Test|E|Lead 43124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043125|143125|989898|1|9999043125|MR|Test|E|Lead 43125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043126|143126|989898|1|9999043126|MR|Test|E|Lead 43126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043127|143127|989898|1|9999043127|MR|Test|E|Lead 43127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043128|143128|989898|1|9999043128|MR|Test|E|Lead 43128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043129|143129|989898|1|9999043129|MR|Test|E|Lead 43129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043130|143130|989898|1|9999043130|MR|Test|E|Lead 43130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043131|143131|989898|1|9999043131|MR|Test|E|Lead 43131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043132|143132|989898|1|9999043132|MR|Test|E|Lead 43132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043133|143133|989898|1|9999043133|MR|Test|E|Lead 43133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043134|143134|989898|1|9999043134|MR|Test|E|Lead 43134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043135|143135|989898|1|9999043135|MR|Test|E|Lead 43135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043136|143136|989898|1|9999043136|MR|Test|E|Lead 43136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043137|143137|989898|1|9999043137|MR|Test|E|Lead 43137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043138|143138|989898|1|9999043138|MR|Test|E|Lead 43138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043139|143139|989898|1|9999043139|MR|Test|E|Lead 43139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043140|143140|989898|1|9999043140|MR|Test|E|Lead 43140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043141|143141|989898|1|9999043141|MR|Test|E|Lead 43141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043142|143142|989898|1|9999043142|MR|Test|E|Lead 43142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043143|143143|989898|1|9999043143|MR|Test|E|Lead 43143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043144|143144|989898|1|9999043144|MR|Test|E|Lead 43144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043145|143145|989898|1|9999043145|MR|Test|E|Lead 43145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043146|143146|989898|1|9999043146|MR|Test|E|Lead 43146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043147|143147|989898|1|9999043147|MR|Test|E|Lead 43147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043148|143148|989898|1|9999043148|MR|Test|E|Lead 43148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043149|143149|989898|1|9999043149|MR|Test|E|Lead 43149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043150|143150|989898|1|9999043150|MR|Test|E|Lead 43150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043151|143151|989898|1|9999043151|MR|Test|E|Lead 43151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043152|143152|989898|1|9999043152|MR|Test|E|Lead 43152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043153|143153|989898|1|9999043153|MR|Test|E|Lead 43153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043154|143154|989898|1|9999043154|MR|Test|E|Lead 43154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043155|143155|989898|1|9999043155|MR|Test|E|Lead 43155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043156|143156|989898|1|9999043156|MR|Test|E|Lead 43156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043157|143157|989898|1|9999043157|MR|Test|E|Lead 43157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043158|143158|989898|1|9999043158|MR|Test|E|Lead 43158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043159|143159|989898|1|9999043159|MR|Test|E|Lead 43159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043160|143160|989898|1|9999043160|MR|Test|E|Lead 43160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043161|143161|989898|1|9999043161|MR|Test|E|Lead 43161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043162|143162|989898|1|9999043162|MR|Test|E|Lead 43162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043163|143163|989898|1|9999043163|MR|Test|E|Lead 43163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043164|143164|989898|1|9999043164|MR|Test|E|Lead 43164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043165|143165|989898|1|9999043165|MR|Test|E|Lead 43165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043166|143166|989898|1|9999043166|MR|Test|E|Lead 43166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043167|143167|989898|1|9999043167|MR|Test|E|Lead 43167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043168|143168|989898|1|9999043168|MR|Test|E|Lead 43168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043169|143169|989898|1|9999043169|MR|Test|E|Lead 43169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043170|143170|989898|1|9999043170|MR|Test|E|Lead 43170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043171|143171|989898|1|9999043171|MR|Test|E|Lead 43171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043172|143172|989898|1|9999043172|MR|Test|E|Lead 43172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043173|143173|989898|1|9999043173|MR|Test|E|Lead 43173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043174|143174|989898|1|9999043174|MR|Test|E|Lead 43174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043175|143175|989898|1|9999043175|MR|Test|E|Lead 43175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043176|143176|989898|1|9999043176|MR|Test|E|Lead 43176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043177|143177|989898|1|9999043177|MR|Test|E|Lead 43177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043178|143178|989898|1|9999043178|MR|Test|E|Lead 43178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043179|143179|989898|1|9999043179|MR|Test|E|Lead 43179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043180|143180|989898|1|9999043180|MR|Test|E|Lead 43180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043181|143181|989898|1|9999043181|MR|Test|E|Lead 43181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043182|143182|989898|1|9999043182|MR|Test|E|Lead 43182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043183|143183|989898|1|9999043183|MR|Test|E|Lead 43183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043184|143184|989898|1|9999043184|MR|Test|E|Lead 43184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043185|143185|989898|1|9999043185|MR|Test|E|Lead 43185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043186|143186|989898|1|9999043186|MR|Test|E|Lead 43186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043187|143187|989898|1|9999043187|MR|Test|E|Lead 43187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043188|143188|989898|1|9999043188|MR|Test|E|Lead 43188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043189|143189|989898|1|9999043189|MR|Test|E|Lead 43189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043190|143190|989898|1|9999043190|MR|Test|E|Lead 43190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043191|143191|989898|1|9999043191|MR|Test|E|Lead 43191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043192|143192|989898|1|9999043192|MR|Test|E|Lead 43192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043193|143193|989898|1|9999043193|MR|Test|E|Lead 43193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043194|143194|989898|1|9999043194|MR|Test|E|Lead 43194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043195|143195|989898|1|9999043195|MR|Test|E|Lead 43195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043196|143196|989898|1|9999043196|MR|Test|E|Lead 43196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043197|143197|989898|1|9999043197|MR|Test|E|Lead 43197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043198|143198|989898|1|9999043198|MR|Test|E|Lead 43198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043199|143199|989898|1|9999043199|MR|Test|E|Lead 43199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043200|143200|989898|1|9999043200|MR|Test|E|Lead 43200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043201|143201|989898|1|9999043201|MR|Test|E|Lead 43201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043202|143202|989898|1|9999043202|MR|Test|E|Lead 43202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043203|143203|989898|1|9999043203|MR|Test|E|Lead 43203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043204|143204|989898|1|9999043204|MR|Test|E|Lead 43204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043205|143205|989898|1|9999043205|MR|Test|E|Lead 43205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043206|143206|989898|1|9999043206|MR|Test|E|Lead 43206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043207|143207|989898|1|9999043207|MR|Test|E|Lead 43207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043208|143208|989898|1|9999043208|MR|Test|E|Lead 43208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043209|143209|989898|1|9999043209|MR|Test|E|Lead 43209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043210|143210|989898|1|9999043210|MR|Test|E|Lead 43210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043211|143211|989898|1|9999043211|MR|Test|E|Lead 43211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043212|143212|989898|1|9999043212|MR|Test|E|Lead 43212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043213|143213|989898|1|9999043213|MR|Test|E|Lead 43213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043214|143214|989898|1|9999043214|MR|Test|E|Lead 43214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043215|143215|989898|1|9999043215|MR|Test|E|Lead 43215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043216|143216|989898|1|9999043216|MR|Test|E|Lead 43216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043217|143217|989898|1|9999043217|MR|Test|E|Lead 43217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043218|143218|989898|1|9999043218|MR|Test|E|Lead 43218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043219|143219|989898|1|9999043219|MR|Test|E|Lead 43219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043220|143220|989898|1|9999043220|MR|Test|E|Lead 43220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043221|143221|989898|1|9999043221|MR|Test|E|Lead 43221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043222|143222|989898|1|9999043222|MR|Test|E|Lead 43222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043223|143223|989898|1|9999043223|MR|Test|E|Lead 43223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043224|143224|989898|1|9999043224|MR|Test|E|Lead 43224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043225|143225|989898|1|9999043225|MR|Test|E|Lead 43225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043226|143226|989898|1|9999043226|MR|Test|E|Lead 43226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043227|143227|989898|1|9999043227|MR|Test|E|Lead 43227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043228|143228|989898|1|9999043228|MR|Test|E|Lead 43228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043229|143229|989898|1|9999043229|MR|Test|E|Lead 43229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043230|143230|989898|1|9999043230|MR|Test|E|Lead 43230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043231|143231|989898|1|9999043231|MR|Test|E|Lead 43231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043232|143232|989898|1|9999043232|MR|Test|E|Lead 43232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043233|143233|989898|1|9999043233|MR|Test|E|Lead 43233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043234|143234|989898|1|9999043234|MR|Test|E|Lead 43234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043235|143235|989898|1|9999043235|MR|Test|E|Lead 43235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043236|143236|989898|1|9999043236|MR|Test|E|Lead 43236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043237|143237|989898|1|9999043237|MR|Test|E|Lead 43237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043238|143238|989898|1|9999043238|MR|Test|E|Lead 43238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043239|143239|989898|1|9999043239|MR|Test|E|Lead 43239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043240|143240|989898|1|9999043240|MR|Test|E|Lead 43240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043241|143241|989898|1|9999043241|MR|Test|E|Lead 43241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043242|143242|989898|1|9999043242|MR|Test|E|Lead 43242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043243|143243|989898|1|9999043243|MR|Test|E|Lead 43243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043244|143244|989898|1|9999043244|MR|Test|E|Lead 43244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043245|143245|989898|1|9999043245|MR|Test|E|Lead 43245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043246|143246|989898|1|9999043246|MR|Test|E|Lead 43246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043247|143247|989898|1|9999043247|MR|Test|E|Lead 43247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043248|143248|989898|1|9999043248|MR|Test|E|Lead 43248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043249|143249|989898|1|9999043249|MR|Test|E|Lead 43249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043250|143250|989898|1|9999043250|MR|Test|E|Lead 43250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043251|143251|989898|1|9999043251|MR|Test|E|Lead 43251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043252|143252|989898|1|9999043252|MR|Test|E|Lead 43252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043253|143253|989898|1|9999043253|MR|Test|E|Lead 43253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043254|143254|989898|1|9999043254|MR|Test|E|Lead 43254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043255|143255|989898|1|9999043255|MR|Test|E|Lead 43255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043256|143256|989898|1|9999043256|MR|Test|E|Lead 43256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043257|143257|989898|1|9999043257|MR|Test|E|Lead 43257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043258|143258|989898|1|9999043258|MR|Test|E|Lead 43258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043259|143259|989898|1|9999043259|MR|Test|E|Lead 43259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043260|143260|989898|1|9999043260|MR|Test|E|Lead 43260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043261|143261|989898|1|9999043261|MR|Test|E|Lead 43261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043262|143262|989898|1|9999043262|MR|Test|E|Lead 43262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043263|143263|989898|1|9999043263|MR|Test|E|Lead 43263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043264|143264|989898|1|9999043264|MR|Test|E|Lead 43264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043265|143265|989898|1|9999043265|MR|Test|E|Lead 43265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043266|143266|989898|1|9999043266|MR|Test|E|Lead 43266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043267|143267|989898|1|9999043267|MR|Test|E|Lead 43267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043268|143268|989898|1|9999043268|MR|Test|E|Lead 43268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043269|143269|989898|1|9999043269|MR|Test|E|Lead 43269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043270|143270|989898|1|9999043270|MR|Test|E|Lead 43270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043271|143271|989898|1|9999043271|MR|Test|E|Lead 43271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043272|143272|989898|1|9999043272|MR|Test|E|Lead 43272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043273|143273|989898|1|9999043273|MR|Test|E|Lead 43273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043274|143274|989898|1|9999043274|MR|Test|E|Lead 43274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043275|143275|989898|1|9999043275|MR|Test|E|Lead 43275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043276|143276|989898|1|9999043276|MR|Test|E|Lead 43276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043277|143277|989898|1|9999043277|MR|Test|E|Lead 43277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043278|143278|989898|1|9999043278|MR|Test|E|Lead 43278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043279|143279|989898|1|9999043279|MR|Test|E|Lead 43279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043280|143280|989898|1|9999043280|MR|Test|E|Lead 43280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043281|143281|989898|1|9999043281|MR|Test|E|Lead 43281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043282|143282|989898|1|9999043282|MR|Test|E|Lead 43282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043283|143283|989898|1|9999043283|MR|Test|E|Lead 43283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043284|143284|989898|1|9999043284|MR|Test|E|Lead 43284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043285|143285|989898|1|9999043285|MR|Test|E|Lead 43285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043286|143286|989898|1|9999043286|MR|Test|E|Lead 43286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043287|143287|989898|1|9999043287|MR|Test|E|Lead 43287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043288|143288|989898|1|9999043288|MR|Test|E|Lead 43288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043289|143289|989898|1|9999043289|MR|Test|E|Lead 43289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043290|143290|989898|1|9999043290|MR|Test|E|Lead 43290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043291|143291|989898|1|9999043291|MR|Test|E|Lead 43291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043292|143292|989898|1|9999043292|MR|Test|E|Lead 43292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043293|143293|989898|1|9999043293|MR|Test|E|Lead 43293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043294|143294|989898|1|9999043294|MR|Test|E|Lead 43294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043295|143295|989898|1|9999043295|MR|Test|E|Lead 43295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043296|143296|989898|1|9999043296|MR|Test|E|Lead 43296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043297|143297|989898|1|9999043297|MR|Test|E|Lead 43297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043298|143298|989898|1|9999043298|MR|Test|E|Lead 43298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043299|143299|989898|1|9999043299|MR|Test|E|Lead 43299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043300|143300|989898|1|9999043300|MR|Test|E|Lead 43300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043301|143301|989898|1|9999043301|MR|Test|E|Lead 43301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043302|143302|989898|1|9999043302|MR|Test|E|Lead 43302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043303|143303|989898|1|9999043303|MR|Test|E|Lead 43303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043304|143304|989898|1|9999043304|MR|Test|E|Lead 43304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043305|143305|989898|1|9999043305|MR|Test|E|Lead 43305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043306|143306|989898|1|9999043306|MR|Test|E|Lead 43306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043307|143307|989898|1|9999043307|MR|Test|E|Lead 43307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043308|143308|989898|1|9999043308|MR|Test|E|Lead 43308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043309|143309|989898|1|9999043309|MR|Test|E|Lead 43309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043310|143310|989898|1|9999043310|MR|Test|E|Lead 43310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043311|143311|989898|1|9999043311|MR|Test|E|Lead 43311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043312|143312|989898|1|9999043312|MR|Test|E|Lead 43312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043313|143313|989898|1|9999043313|MR|Test|E|Lead 43313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043314|143314|989898|1|9999043314|MR|Test|E|Lead 43314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043315|143315|989898|1|9999043315|MR|Test|E|Lead 43315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043316|143316|989898|1|9999043316|MR|Test|E|Lead 43316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043317|143317|989898|1|9999043317|MR|Test|E|Lead 43317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043318|143318|989898|1|9999043318|MR|Test|E|Lead 43318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043319|143319|989898|1|9999043319|MR|Test|E|Lead 43319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043320|143320|989898|1|9999043320|MR|Test|E|Lead 43320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043321|143321|989898|1|9999043321|MR|Test|E|Lead 43321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043322|143322|989898|1|9999043322|MR|Test|E|Lead 43322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043323|143323|989898|1|9999043323|MR|Test|E|Lead 43323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043324|143324|989898|1|9999043324|MR|Test|E|Lead 43324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043325|143325|989898|1|9999043325|MR|Test|E|Lead 43325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043326|143326|989898|1|9999043326|MR|Test|E|Lead 43326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043327|143327|989898|1|9999043327|MR|Test|E|Lead 43327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043328|143328|989898|1|9999043328|MR|Test|E|Lead 43328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043329|143329|989898|1|9999043329|MR|Test|E|Lead 43329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043330|143330|989898|1|9999043330|MR|Test|E|Lead 43330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043331|143331|989898|1|9999043331|MR|Test|E|Lead 43331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043332|143332|989898|1|9999043332|MR|Test|E|Lead 43332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043333|143333|989898|1|9999043333|MR|Test|E|Lead 43333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043334|143334|989898|1|9999043334|MR|Test|E|Lead 43334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043335|143335|989898|1|9999043335|MR|Test|E|Lead 43335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043336|143336|989898|1|9999043336|MR|Test|E|Lead 43336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043337|143337|989898|1|9999043337|MR|Test|E|Lead 43337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043338|143338|989898|1|9999043338|MR|Test|E|Lead 43338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043339|143339|989898|1|9999043339|MR|Test|E|Lead 43339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043340|143340|989898|1|9999043340|MR|Test|E|Lead 43340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043341|143341|989898|1|9999043341|MR|Test|E|Lead 43341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043342|143342|989898|1|9999043342|MR|Test|E|Lead 43342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043343|143343|989898|1|9999043343|MR|Test|E|Lead 43343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043344|143344|989898|1|9999043344|MR|Test|E|Lead 43344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043345|143345|989898|1|9999043345|MR|Test|E|Lead 43345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043346|143346|989898|1|9999043346|MR|Test|E|Lead 43346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043347|143347|989898|1|9999043347|MR|Test|E|Lead 43347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043348|143348|989898|1|9999043348|MR|Test|E|Lead 43348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043349|143349|989898|1|9999043349|MR|Test|E|Lead 43349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043350|143350|989898|1|9999043350|MR|Test|E|Lead 43350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043351|143351|989898|1|9999043351|MR|Test|E|Lead 43351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043352|143352|989898|1|9999043352|MR|Test|E|Lead 43352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043353|143353|989898|1|9999043353|MR|Test|E|Lead 43353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043354|143354|989898|1|9999043354|MR|Test|E|Lead 43354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043355|143355|989898|1|9999043355|MR|Test|E|Lead 43355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043356|143356|989898|1|9999043356|MR|Test|E|Lead 43356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043357|143357|989898|1|9999043357|MR|Test|E|Lead 43357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043358|143358|989898|1|9999043358|MR|Test|E|Lead 43358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043359|143359|989898|1|9999043359|MR|Test|E|Lead 43359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043360|143360|989898|1|9999043360|MR|Test|E|Lead 43360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043361|143361|989898|1|9999043361|MR|Test|E|Lead 43361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043362|143362|989898|1|9999043362|MR|Test|E|Lead 43362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043363|143363|989898|1|9999043363|MR|Test|E|Lead 43363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043364|143364|989898|1|9999043364|MR|Test|E|Lead 43364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043365|143365|989898|1|9999043365|MR|Test|E|Lead 43365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043366|143366|989898|1|9999043366|MR|Test|E|Lead 43366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043367|143367|989898|1|9999043367|MR|Test|E|Lead 43367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043368|143368|989898|1|9999043368|MR|Test|E|Lead 43368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043369|143369|989898|1|9999043369|MR|Test|E|Lead 43369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043370|143370|989898|1|9999043370|MR|Test|E|Lead 43370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043371|143371|989898|1|9999043371|MR|Test|E|Lead 43371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043372|143372|989898|1|9999043372|MR|Test|E|Lead 43372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043373|143373|989898|1|9999043373|MR|Test|E|Lead 43373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043374|143374|989898|1|9999043374|MR|Test|E|Lead 43374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043375|143375|989898|1|9999043375|MR|Test|E|Lead 43375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043376|143376|989898|1|9999043376|MR|Test|E|Lead 43376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043377|143377|989898|1|9999043377|MR|Test|E|Lead 43377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043378|143378|989898|1|9999043378|MR|Test|E|Lead 43378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043379|143379|989898|1|9999043379|MR|Test|E|Lead 43379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043380|143380|989898|1|9999043380|MR|Test|E|Lead 43380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043381|143381|989898|1|9999043381|MR|Test|E|Lead 43381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043382|143382|989898|1|9999043382|MR|Test|E|Lead 43382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043383|143383|989898|1|9999043383|MR|Test|E|Lead 43383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043384|143384|989898|1|9999043384|MR|Test|E|Lead 43384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043385|143385|989898|1|9999043385|MR|Test|E|Lead 43385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043386|143386|989898|1|9999043386|MR|Test|E|Lead 43386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043387|143387|989898|1|9999043387|MR|Test|E|Lead 43387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043388|143388|989898|1|9999043388|MR|Test|E|Lead 43388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043389|143389|989898|1|9999043389|MR|Test|E|Lead 43389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043390|143390|989898|1|9999043390|MR|Test|E|Lead 43390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043391|143391|989898|1|9999043391|MR|Test|E|Lead 43391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043392|143392|989898|1|9999043392|MR|Test|E|Lead 43392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043393|143393|989898|1|9999043393|MR|Test|E|Lead 43393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043394|143394|989898|1|9999043394|MR|Test|E|Lead 43394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043395|143395|989898|1|9999043395|MR|Test|E|Lead 43395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043396|143396|989898|1|9999043396|MR|Test|E|Lead 43396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043397|143397|989898|1|9999043397|MR|Test|E|Lead 43397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043398|143398|989898|1|9999043398|MR|Test|E|Lead 43398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043399|143399|989898|1|9999043399|MR|Test|E|Lead 43399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043400|143400|989898|1|9999043400|MR|Test|E|Lead 43400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043401|143401|989898|1|9999043401|MR|Test|E|Lead 43401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043402|143402|989898|1|9999043402|MR|Test|E|Lead 43402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043403|143403|989898|1|9999043403|MR|Test|E|Lead 43403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043404|143404|989898|1|9999043404|MR|Test|E|Lead 43404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043405|143405|989898|1|9999043405|MR|Test|E|Lead 43405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043406|143406|989898|1|9999043406|MR|Test|E|Lead 43406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043407|143407|989898|1|9999043407|MR|Test|E|Lead 43407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043408|143408|989898|1|9999043408|MR|Test|E|Lead 43408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043409|143409|989898|1|9999043409|MR|Test|E|Lead 43409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043410|143410|989898|1|9999043410|MR|Test|E|Lead 43410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043411|143411|989898|1|9999043411|MR|Test|E|Lead 43411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043412|143412|989898|1|9999043412|MR|Test|E|Lead 43412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043413|143413|989898|1|9999043413|MR|Test|E|Lead 43413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043414|143414|989898|1|9999043414|MR|Test|E|Lead 43414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043415|143415|989898|1|9999043415|MR|Test|E|Lead 43415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043416|143416|989898|1|9999043416|MR|Test|E|Lead 43416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043417|143417|989898|1|9999043417|MR|Test|E|Lead 43417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043418|143418|989898|1|9999043418|MR|Test|E|Lead 43418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043419|143419|989898|1|9999043419|MR|Test|E|Lead 43419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043420|143420|989898|1|9999043420|MR|Test|E|Lead 43420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043421|143421|989898|1|9999043421|MR|Test|E|Lead 43421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043422|143422|989898|1|9999043422|MR|Test|E|Lead 43422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043423|143423|989898|1|9999043423|MR|Test|E|Lead 43423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043424|143424|989898|1|9999043424|MR|Test|E|Lead 43424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043425|143425|989898|1|9999043425|MR|Test|E|Lead 43425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043426|143426|989898|1|9999043426|MR|Test|E|Lead 43426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043427|143427|989898|1|9999043427|MR|Test|E|Lead 43427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043428|143428|989898|1|9999043428|MR|Test|E|Lead 43428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043429|143429|989898|1|9999043429|MR|Test|E|Lead 43429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043430|143430|989898|1|9999043430|MR|Test|E|Lead 43430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043431|143431|989898|1|9999043431|MR|Test|E|Lead 43431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043432|143432|989898|1|9999043432|MR|Test|E|Lead 43432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043433|143433|989898|1|9999043433|MR|Test|E|Lead 43433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043434|143434|989898|1|9999043434|MR|Test|E|Lead 43434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043435|143435|989898|1|9999043435|MR|Test|E|Lead 43435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043436|143436|989898|1|9999043436|MR|Test|E|Lead 43436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043437|143437|989898|1|9999043437|MR|Test|E|Lead 43437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043438|143438|989898|1|9999043438|MR|Test|E|Lead 43438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043439|143439|989898|1|9999043439|MR|Test|E|Lead 43439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043440|143440|989898|1|9999043440|MR|Test|E|Lead 43440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043441|143441|989898|1|9999043441|MR|Test|E|Lead 43441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043442|143442|989898|1|9999043442|MR|Test|E|Lead 43442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043443|143443|989898|1|9999043443|MR|Test|E|Lead 43443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043444|143444|989898|1|9999043444|MR|Test|E|Lead 43444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043445|143445|989898|1|9999043445|MR|Test|E|Lead 43445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043446|143446|989898|1|9999043446|MR|Test|E|Lead 43446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043447|143447|989898|1|9999043447|MR|Test|E|Lead 43447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043448|143448|989898|1|9999043448|MR|Test|E|Lead 43448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043449|143449|989898|1|9999043449|MR|Test|E|Lead 43449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043450|143450|989898|1|9999043450|MR|Test|E|Lead 43450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043451|143451|989898|1|9999043451|MR|Test|E|Lead 43451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043452|143452|989898|1|9999043452|MR|Test|E|Lead 43452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043453|143453|989898|1|9999043453|MR|Test|E|Lead 43453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043454|143454|989898|1|9999043454|MR|Test|E|Lead 43454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043455|143455|989898|1|9999043455|MR|Test|E|Lead 43455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043456|143456|989898|1|9999043456|MR|Test|E|Lead 43456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043457|143457|989898|1|9999043457|MR|Test|E|Lead 43457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043458|143458|989898|1|9999043458|MR|Test|E|Lead 43458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043459|143459|989898|1|9999043459|MR|Test|E|Lead 43459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043460|143460|989898|1|9999043460|MR|Test|E|Lead 43460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043461|143461|989898|1|9999043461|MR|Test|E|Lead 43461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043462|143462|989898|1|9999043462|MR|Test|E|Lead 43462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043463|143463|989898|1|9999043463|MR|Test|E|Lead 43463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043464|143464|989898|1|9999043464|MR|Test|E|Lead 43464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043465|143465|989898|1|9999043465|MR|Test|E|Lead 43465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043466|143466|989898|1|9999043466|MR|Test|E|Lead 43466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043467|143467|989898|1|9999043467|MR|Test|E|Lead 43467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043468|143468|989898|1|9999043468|MR|Test|E|Lead 43468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043469|143469|989898|1|9999043469|MR|Test|E|Lead 43469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043470|143470|989898|1|9999043470|MR|Test|E|Lead 43470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043471|143471|989898|1|9999043471|MR|Test|E|Lead 43471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043472|143472|989898|1|9999043472|MR|Test|E|Lead 43472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043473|143473|989898|1|9999043473|MR|Test|E|Lead 43473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043474|143474|989898|1|9999043474|MR|Test|E|Lead 43474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043475|143475|989898|1|9999043475|MR|Test|E|Lead 43475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043476|143476|989898|1|9999043476|MR|Test|E|Lead 43476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043477|143477|989898|1|9999043477|MR|Test|E|Lead 43477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043478|143478|989898|1|9999043478|MR|Test|E|Lead 43478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043479|143479|989898|1|9999043479|MR|Test|E|Lead 43479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043480|143480|989898|1|9999043480|MR|Test|E|Lead 43480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043481|143481|989898|1|9999043481|MR|Test|E|Lead 43481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043482|143482|989898|1|9999043482|MR|Test|E|Lead 43482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043483|143483|989898|1|9999043483|MR|Test|E|Lead 43483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043484|143484|989898|1|9999043484|MR|Test|E|Lead 43484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043485|143485|989898|1|9999043485|MR|Test|E|Lead 43485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043486|143486|989898|1|9999043486|MR|Test|E|Lead 43486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043487|143487|989898|1|9999043487|MR|Test|E|Lead 43487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043488|143488|989898|1|9999043488|MR|Test|E|Lead 43488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043489|143489|989898|1|9999043489|MR|Test|E|Lead 43489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043490|143490|989898|1|9999043490|MR|Test|E|Lead 43490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043491|143491|989898|1|9999043491|MR|Test|E|Lead 43491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043492|143492|989898|1|9999043492|MR|Test|E|Lead 43492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043493|143493|989898|1|9999043493|MR|Test|E|Lead 43493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043494|143494|989898|1|9999043494|MR|Test|E|Lead 43494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043495|143495|989898|1|9999043495|MR|Test|E|Lead 43495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043496|143496|989898|1|9999043496|MR|Test|E|Lead 43496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043497|143497|989898|1|9999043497|MR|Test|E|Lead 43497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043498|143498|989898|1|9999043498|MR|Test|E|Lead 43498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043499|143499|989898|1|9999043499|MR|Test|E|Lead 43499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043500|143500|989898|1|9999043500|MR|Test|E|Lead 43500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043501|143501|989898|1|9999043501|MR|Test|E|Lead 43501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043502|143502|989898|1|9999043502|MR|Test|E|Lead 43502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043503|143503|989898|1|9999043503|MR|Test|E|Lead 43503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043504|143504|989898|1|9999043504|MR|Test|E|Lead 43504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043505|143505|989898|1|9999043505|MR|Test|E|Lead 43505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043506|143506|989898|1|9999043506|MR|Test|E|Lead 43506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043507|143507|989898|1|9999043507|MR|Test|E|Lead 43507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043508|143508|989898|1|9999043508|MR|Test|E|Lead 43508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043509|143509|989898|1|9999043509|MR|Test|E|Lead 43509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043510|143510|989898|1|9999043510|MR|Test|E|Lead 43510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043511|143511|989898|1|9999043511|MR|Test|E|Lead 43511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043512|143512|989898|1|9999043512|MR|Test|E|Lead 43512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043513|143513|989898|1|9999043513|MR|Test|E|Lead 43513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043514|143514|989898|1|9999043514|MR|Test|E|Lead 43514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043515|143515|989898|1|9999043515|MR|Test|E|Lead 43515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043516|143516|989898|1|9999043516|MR|Test|E|Lead 43516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043517|143517|989898|1|9999043517|MR|Test|E|Lead 43517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043518|143518|989898|1|9999043518|MR|Test|E|Lead 43518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043519|143519|989898|1|9999043519|MR|Test|E|Lead 43519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043520|143520|989898|1|9999043520|MR|Test|E|Lead 43520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043521|143521|989898|1|9999043521|MR|Test|E|Lead 43521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043522|143522|989898|1|9999043522|MR|Test|E|Lead 43522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043523|143523|989898|1|9999043523|MR|Test|E|Lead 43523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043524|143524|989898|1|9999043524|MR|Test|E|Lead 43524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043525|143525|989898|1|9999043525|MR|Test|E|Lead 43525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043526|143526|989898|1|9999043526|MR|Test|E|Lead 43526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043527|143527|989898|1|9999043527|MR|Test|E|Lead 43527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043528|143528|989898|1|9999043528|MR|Test|E|Lead 43528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043529|143529|989898|1|9999043529|MR|Test|E|Lead 43529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043530|143530|989898|1|9999043530|MR|Test|E|Lead 43530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043531|143531|989898|1|9999043531|MR|Test|E|Lead 43531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043532|143532|989898|1|9999043532|MR|Test|E|Lead 43532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043533|143533|989898|1|9999043533|MR|Test|E|Lead 43533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043534|143534|989898|1|9999043534|MR|Test|E|Lead 43534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043535|143535|989898|1|9999043535|MR|Test|E|Lead 43535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043536|143536|989898|1|9999043536|MR|Test|E|Lead 43536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043537|143537|989898|1|9999043537|MR|Test|E|Lead 43537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043538|143538|989898|1|9999043538|MR|Test|E|Lead 43538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043539|143539|989898|1|9999043539|MR|Test|E|Lead 43539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043540|143540|989898|1|9999043540|MR|Test|E|Lead 43540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043541|143541|989898|1|9999043541|MR|Test|E|Lead 43541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043542|143542|989898|1|9999043542|MR|Test|E|Lead 43542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043543|143543|989898|1|9999043543|MR|Test|E|Lead 43543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043544|143544|989898|1|9999043544|MR|Test|E|Lead 43544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043545|143545|989898|1|9999043545|MR|Test|E|Lead 43545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043546|143546|989898|1|9999043546|MR|Test|E|Lead 43546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043547|143547|989898|1|9999043547|MR|Test|E|Lead 43547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043548|143548|989898|1|9999043548|MR|Test|E|Lead 43548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043549|143549|989898|1|9999043549|MR|Test|E|Lead 43549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043550|143550|989898|1|9999043550|MR|Test|E|Lead 43550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043551|143551|989898|1|9999043551|MR|Test|E|Lead 43551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043552|143552|989898|1|9999043552|MR|Test|E|Lead 43552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043553|143553|989898|1|9999043553|MR|Test|E|Lead 43553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043554|143554|989898|1|9999043554|MR|Test|E|Lead 43554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043555|143555|989898|1|9999043555|MR|Test|E|Lead 43555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043556|143556|989898|1|9999043556|MR|Test|E|Lead 43556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043557|143557|989898|1|9999043557|MR|Test|E|Lead 43557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043558|143558|989898|1|9999043558|MR|Test|E|Lead 43558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043559|143559|989898|1|9999043559|MR|Test|E|Lead 43559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043560|143560|989898|1|9999043560|MR|Test|E|Lead 43560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043561|143561|989898|1|9999043561|MR|Test|E|Lead 43561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043562|143562|989898|1|9999043562|MR|Test|E|Lead 43562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043563|143563|989898|1|9999043563|MR|Test|E|Lead 43563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043564|143564|989898|1|9999043564|MR|Test|E|Lead 43564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043565|143565|989898|1|9999043565|MR|Test|E|Lead 43565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043566|143566|989898|1|9999043566|MR|Test|E|Lead 43566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043567|143567|989898|1|9999043567|MR|Test|E|Lead 43567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043568|143568|989898|1|9999043568|MR|Test|E|Lead 43568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043569|143569|989898|1|9999043569|MR|Test|E|Lead 43569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043570|143570|989898|1|9999043570|MR|Test|E|Lead 43570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043571|143571|989898|1|9999043571|MR|Test|E|Lead 43571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043572|143572|989898|1|9999043572|MR|Test|E|Lead 43572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043573|143573|989898|1|9999043573|MR|Test|E|Lead 43573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043574|143574|989898|1|9999043574|MR|Test|E|Lead 43574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043575|143575|989898|1|9999043575|MR|Test|E|Lead 43575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043576|143576|989898|1|9999043576|MR|Test|E|Lead 43576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043577|143577|989898|1|9999043577|MR|Test|E|Lead 43577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043578|143578|989898|1|9999043578|MR|Test|E|Lead 43578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043579|143579|989898|1|9999043579|MR|Test|E|Lead 43579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043580|143580|989898|1|9999043580|MR|Test|E|Lead 43580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043581|143581|989898|1|9999043581|MR|Test|E|Lead 43581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043582|143582|989898|1|9999043582|MR|Test|E|Lead 43582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043583|143583|989898|1|9999043583|MR|Test|E|Lead 43583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043584|143584|989898|1|9999043584|MR|Test|E|Lead 43584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043585|143585|989898|1|9999043585|MR|Test|E|Lead 43585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043586|143586|989898|1|9999043586|MR|Test|E|Lead 43586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043587|143587|989898|1|9999043587|MR|Test|E|Lead 43587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043588|143588|989898|1|9999043588|MR|Test|E|Lead 43588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043589|143589|989898|1|9999043589|MR|Test|E|Lead 43589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043590|143590|989898|1|9999043590|MR|Test|E|Lead 43590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043591|143591|989898|1|9999043591|MR|Test|E|Lead 43591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043592|143592|989898|1|9999043592|MR|Test|E|Lead 43592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043593|143593|989898|1|9999043593|MR|Test|E|Lead 43593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043594|143594|989898|1|9999043594|MR|Test|E|Lead 43594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043595|143595|989898|1|9999043595|MR|Test|E|Lead 43595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043596|143596|989898|1|9999043596|MR|Test|E|Lead 43596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043597|143597|989898|1|9999043597|MR|Test|E|Lead 43597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043598|143598|989898|1|9999043598|MR|Test|E|Lead 43598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043599|143599|989898|1|9999043599|MR|Test|E|Lead 43599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043600|143600|989898|1|9999043600|MR|Test|E|Lead 43600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043601|143601|989898|1|9999043601|MR|Test|E|Lead 43601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043602|143602|989898|1|9999043602|MR|Test|E|Lead 43602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043603|143603|989898|1|9999043603|MR|Test|E|Lead 43603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043604|143604|989898|1|9999043604|MR|Test|E|Lead 43604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043605|143605|989898|1|9999043605|MR|Test|E|Lead 43605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043606|143606|989898|1|9999043606|MR|Test|E|Lead 43606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043607|143607|989898|1|9999043607|MR|Test|E|Lead 43607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043608|143608|989898|1|9999043608|MR|Test|E|Lead 43608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043609|143609|989898|1|9999043609|MR|Test|E|Lead 43609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043610|143610|989898|1|9999043610|MR|Test|E|Lead 43610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043611|143611|989898|1|9999043611|MR|Test|E|Lead 43611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043612|143612|989898|1|9999043612|MR|Test|E|Lead 43612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043613|143613|989898|1|9999043613|MR|Test|E|Lead 43613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043614|143614|989898|1|9999043614|MR|Test|E|Lead 43614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043615|143615|989898|1|9999043615|MR|Test|E|Lead 43615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043616|143616|989898|1|9999043616|MR|Test|E|Lead 43616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043617|143617|989898|1|9999043617|MR|Test|E|Lead 43617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043618|143618|989898|1|9999043618|MR|Test|E|Lead 43618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043619|143619|989898|1|9999043619|MR|Test|E|Lead 43619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043620|143620|989898|1|9999043620|MR|Test|E|Lead 43620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043621|143621|989898|1|9999043621|MR|Test|E|Lead 43621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043622|143622|989898|1|9999043622|MR|Test|E|Lead 43622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043623|143623|989898|1|9999043623|MR|Test|E|Lead 43623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043624|143624|989898|1|9999043624|MR|Test|E|Lead 43624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043625|143625|989898|1|9999043625|MR|Test|E|Lead 43625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043626|143626|989898|1|9999043626|MR|Test|E|Lead 43626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043627|143627|989898|1|9999043627|MR|Test|E|Lead 43627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043628|143628|989898|1|9999043628|MR|Test|E|Lead 43628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043629|143629|989898|1|9999043629|MR|Test|E|Lead 43629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043630|143630|989898|1|9999043630|MR|Test|E|Lead 43630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043631|143631|989898|1|9999043631|MR|Test|E|Lead 43631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043632|143632|989898|1|9999043632|MR|Test|E|Lead 43632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043633|143633|989898|1|9999043633|MR|Test|E|Lead 43633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043634|143634|989898|1|9999043634|MR|Test|E|Lead 43634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043635|143635|989898|1|9999043635|MR|Test|E|Lead 43635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043636|143636|989898|1|9999043636|MR|Test|E|Lead 43636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043637|143637|989898|1|9999043637|MR|Test|E|Lead 43637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043638|143638|989898|1|9999043638|MR|Test|E|Lead 43638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043639|143639|989898|1|9999043639|MR|Test|E|Lead 43639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043640|143640|989898|1|9999043640|MR|Test|E|Lead 43640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043641|143641|989898|1|9999043641|MR|Test|E|Lead 43641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043642|143642|989898|1|9999043642|MR|Test|E|Lead 43642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043643|143643|989898|1|9999043643|MR|Test|E|Lead 43643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043644|143644|989898|1|9999043644|MR|Test|E|Lead 43644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043645|143645|989898|1|9999043645|MR|Test|E|Lead 43645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043646|143646|989898|1|9999043646|MR|Test|E|Lead 43646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043647|143647|989898|1|9999043647|MR|Test|E|Lead 43647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043648|143648|989898|1|9999043648|MR|Test|E|Lead 43648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043649|143649|989898|1|9999043649|MR|Test|E|Lead 43649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043650|143650|989898|1|9999043650|MR|Test|E|Lead 43650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043651|143651|989898|1|9999043651|MR|Test|E|Lead 43651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043652|143652|989898|1|9999043652|MR|Test|E|Lead 43652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043653|143653|989898|1|9999043653|MR|Test|E|Lead 43653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043654|143654|989898|1|9999043654|MR|Test|E|Lead 43654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043655|143655|989898|1|9999043655|MR|Test|E|Lead 43655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043656|143656|989898|1|9999043656|MR|Test|E|Lead 43656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043657|143657|989898|1|9999043657|MR|Test|E|Lead 43657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043658|143658|989898|1|9999043658|MR|Test|E|Lead 43658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043659|143659|989898|1|9999043659|MR|Test|E|Lead 43659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043660|143660|989898|1|9999043660|MR|Test|E|Lead 43660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043661|143661|989898|1|9999043661|MR|Test|E|Lead 43661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043662|143662|989898|1|9999043662|MR|Test|E|Lead 43662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043663|143663|989898|1|9999043663|MR|Test|E|Lead 43663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043664|143664|989898|1|9999043664|MR|Test|E|Lead 43664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043665|143665|989898|1|9999043665|MR|Test|E|Lead 43665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043666|143666|989898|1|9999043666|MR|Test|E|Lead 43666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043667|143667|989898|1|9999043667|MR|Test|E|Lead 43667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043668|143668|989898|1|9999043668|MR|Test|E|Lead 43668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043669|143669|989898|1|9999043669|MR|Test|E|Lead 43669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043670|143670|989898|1|9999043670|MR|Test|E|Lead 43670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043671|143671|989898|1|9999043671|MR|Test|E|Lead 43671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043672|143672|989898|1|9999043672|MR|Test|E|Lead 43672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043673|143673|989898|1|9999043673|MR|Test|E|Lead 43673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043674|143674|989898|1|9999043674|MR|Test|E|Lead 43674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043675|143675|989898|1|9999043675|MR|Test|E|Lead 43675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043676|143676|989898|1|9999043676|MR|Test|E|Lead 43676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043677|143677|989898|1|9999043677|MR|Test|E|Lead 43677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043678|143678|989898|1|9999043678|MR|Test|E|Lead 43678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043679|143679|989898|1|9999043679|MR|Test|E|Lead 43679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043680|143680|989898|1|9999043680|MR|Test|E|Lead 43680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043681|143681|989898|1|9999043681|MR|Test|E|Lead 43681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043682|143682|989898|1|9999043682|MR|Test|E|Lead 43682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043683|143683|989898|1|9999043683|MR|Test|E|Lead 43683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043684|143684|989898|1|9999043684|MR|Test|E|Lead 43684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043685|143685|989898|1|9999043685|MR|Test|E|Lead 43685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043686|143686|989898|1|9999043686|MR|Test|E|Lead 43686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043687|143687|989898|1|9999043687|MR|Test|E|Lead 43687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043688|143688|989898|1|9999043688|MR|Test|E|Lead 43688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043689|143689|989898|1|9999043689|MR|Test|E|Lead 43689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043690|143690|989898|1|9999043690|MR|Test|E|Lead 43690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043691|143691|989898|1|9999043691|MR|Test|E|Lead 43691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043692|143692|989898|1|9999043692|MR|Test|E|Lead 43692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043693|143693|989898|1|9999043693|MR|Test|E|Lead 43693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043694|143694|989898|1|9999043694|MR|Test|E|Lead 43694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043695|143695|989898|1|9999043695|MR|Test|E|Lead 43695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043696|143696|989898|1|9999043696|MR|Test|E|Lead 43696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043697|143697|989898|1|9999043697|MR|Test|E|Lead 43697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043698|143698|989898|1|9999043698|MR|Test|E|Lead 43698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043699|143699|989898|1|9999043699|MR|Test|E|Lead 43699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043700|143700|989898|1|9999043700|MR|Test|E|Lead 43700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043701|143701|989898|1|9999043701|MR|Test|E|Lead 43701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043702|143702|989898|1|9999043702|MR|Test|E|Lead 43702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043703|143703|989898|1|9999043703|MR|Test|E|Lead 43703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043704|143704|989898|1|9999043704|MR|Test|E|Lead 43704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043705|143705|989898|1|9999043705|MR|Test|E|Lead 43705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043706|143706|989898|1|9999043706|MR|Test|E|Lead 43706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043707|143707|989898|1|9999043707|MR|Test|E|Lead 43707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043708|143708|989898|1|9999043708|MR|Test|E|Lead 43708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043709|143709|989898|1|9999043709|MR|Test|E|Lead 43709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043710|143710|989898|1|9999043710|MR|Test|E|Lead 43710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043711|143711|989898|1|9999043711|MR|Test|E|Lead 43711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043712|143712|989898|1|9999043712|MR|Test|E|Lead 43712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043713|143713|989898|1|9999043713|MR|Test|E|Lead 43713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043714|143714|989898|1|9999043714|MR|Test|E|Lead 43714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043715|143715|989898|1|9999043715|MR|Test|E|Lead 43715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043716|143716|989898|1|9999043716|MR|Test|E|Lead 43716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043717|143717|989898|1|9999043717|MR|Test|E|Lead 43717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043718|143718|989898|1|9999043718|MR|Test|E|Lead 43718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043719|143719|989898|1|9999043719|MR|Test|E|Lead 43719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043720|143720|989898|1|9999043720|MR|Test|E|Lead 43720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043721|143721|989898|1|9999043721|MR|Test|E|Lead 43721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043722|143722|989898|1|9999043722|MR|Test|E|Lead 43722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043723|143723|989898|1|9999043723|MR|Test|E|Lead 43723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043724|143724|989898|1|9999043724|MR|Test|E|Lead 43724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043725|143725|989898|1|9999043725|MR|Test|E|Lead 43725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043726|143726|989898|1|9999043726|MR|Test|E|Lead 43726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043727|143727|989898|1|9999043727|MR|Test|E|Lead 43727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043728|143728|989898|1|9999043728|MR|Test|E|Lead 43728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043729|143729|989898|1|9999043729|MR|Test|E|Lead 43729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043730|143730|989898|1|9999043730|MR|Test|E|Lead 43730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043731|143731|989898|1|9999043731|MR|Test|E|Lead 43731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043732|143732|989898|1|9999043732|MR|Test|E|Lead 43732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043733|143733|989898|1|9999043733|MR|Test|E|Lead 43733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043734|143734|989898|1|9999043734|MR|Test|E|Lead 43734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043735|143735|989898|1|9999043735|MR|Test|E|Lead 43735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043736|143736|989898|1|9999043736|MR|Test|E|Lead 43736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043737|143737|989898|1|9999043737|MR|Test|E|Lead 43737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043738|143738|989898|1|9999043738|MR|Test|E|Lead 43738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043739|143739|989898|1|9999043739|MR|Test|E|Lead 43739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043740|143740|989898|1|9999043740|MR|Test|E|Lead 43740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043741|143741|989898|1|9999043741|MR|Test|E|Lead 43741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043742|143742|989898|1|9999043742|MR|Test|E|Lead 43742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043743|143743|989898|1|9999043743|MR|Test|E|Lead 43743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043744|143744|989898|1|9999043744|MR|Test|E|Lead 43744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043745|143745|989898|1|9999043745|MR|Test|E|Lead 43745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043746|143746|989898|1|9999043746|MR|Test|E|Lead 43746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043747|143747|989898|1|9999043747|MR|Test|E|Lead 43747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043748|143748|989898|1|9999043748|MR|Test|E|Lead 43748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043749|143749|989898|1|9999043749|MR|Test|E|Lead 43749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043750|143750|989898|1|9999043750|MR|Test|E|Lead 43750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043751|143751|989898|1|9999043751|MR|Test|E|Lead 43751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043752|143752|989898|1|9999043752|MR|Test|E|Lead 43752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043753|143753|989898|1|9999043753|MR|Test|E|Lead 43753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043754|143754|989898|1|9999043754|MR|Test|E|Lead 43754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043755|143755|989898|1|9999043755|MR|Test|E|Lead 43755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043756|143756|989898|1|9999043756|MR|Test|E|Lead 43756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043757|143757|989898|1|9999043757|MR|Test|E|Lead 43757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043758|143758|989898|1|9999043758|MR|Test|E|Lead 43758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043759|143759|989898|1|9999043759|MR|Test|E|Lead 43759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043760|143760|989898|1|9999043760|MR|Test|E|Lead 43760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043761|143761|989898|1|9999043761|MR|Test|E|Lead 43761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043762|143762|989898|1|9999043762|MR|Test|E|Lead 43762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043763|143763|989898|1|9999043763|MR|Test|E|Lead 43763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043764|143764|989898|1|9999043764|MR|Test|E|Lead 43764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043765|143765|989898|1|9999043765|MR|Test|E|Lead 43765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043766|143766|989898|1|9999043766|MR|Test|E|Lead 43766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043767|143767|989898|1|9999043767|MR|Test|E|Lead 43767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043768|143768|989898|1|9999043768|MR|Test|E|Lead 43768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043769|143769|989898|1|9999043769|MR|Test|E|Lead 43769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043770|143770|989898|1|9999043770|MR|Test|E|Lead 43770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043771|143771|989898|1|9999043771|MR|Test|E|Lead 43771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043772|143772|989898|1|9999043772|MR|Test|E|Lead 43772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043773|143773|989898|1|9999043773|MR|Test|E|Lead 43773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043774|143774|989898|1|9999043774|MR|Test|E|Lead 43774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043775|143775|989898|1|9999043775|MR|Test|E|Lead 43775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043776|143776|989898|1|9999043776|MR|Test|E|Lead 43776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043777|143777|989898|1|9999043777|MR|Test|E|Lead 43777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043778|143778|989898|1|9999043778|MR|Test|E|Lead 43778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043779|143779|989898|1|9999043779|MR|Test|E|Lead 43779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043780|143780|989898|1|9999043780|MR|Test|E|Lead 43780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043781|143781|989898|1|9999043781|MR|Test|E|Lead 43781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043782|143782|989898|1|9999043782|MR|Test|E|Lead 43782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043783|143783|989898|1|9999043783|MR|Test|E|Lead 43783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043784|143784|989898|1|9999043784|MR|Test|E|Lead 43784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043785|143785|989898|1|9999043785|MR|Test|E|Lead 43785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043786|143786|989898|1|9999043786|MR|Test|E|Lead 43786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043787|143787|989898|1|9999043787|MR|Test|E|Lead 43787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043788|143788|989898|1|9999043788|MR|Test|E|Lead 43788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043789|143789|989898|1|9999043789|MR|Test|E|Lead 43789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043790|143790|989898|1|9999043790|MR|Test|E|Lead 43790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043791|143791|989898|1|9999043791|MR|Test|E|Lead 43791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043792|143792|989898|1|9999043792|MR|Test|E|Lead 43792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043793|143793|989898|1|9999043793|MR|Test|E|Lead 43793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043794|143794|989898|1|9999043794|MR|Test|E|Lead 43794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043795|143795|989898|1|9999043795|MR|Test|E|Lead 43795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043796|143796|989898|1|9999043796|MR|Test|E|Lead 43796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043797|143797|989898|1|9999043797|MR|Test|E|Lead 43797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043798|143798|989898|1|9999043798|MR|Test|E|Lead 43798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043799|143799|989898|1|9999043799|MR|Test|E|Lead 43799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043800|143800|989898|1|9999043800|MR|Test|E|Lead 43800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043801|143801|989898|1|9999043801|MR|Test|E|Lead 43801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043802|143802|989898|1|9999043802|MR|Test|E|Lead 43802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043803|143803|989898|1|9999043803|MR|Test|E|Lead 43803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043804|143804|989898|1|9999043804|MR|Test|E|Lead 43804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043805|143805|989898|1|9999043805|MR|Test|E|Lead 43805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043806|143806|989898|1|9999043806|MR|Test|E|Lead 43806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043807|143807|989898|1|9999043807|MR|Test|E|Lead 43807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043808|143808|989898|1|9999043808|MR|Test|E|Lead 43808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043809|143809|989898|1|9999043809|MR|Test|E|Lead 43809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043810|143810|989898|1|9999043810|MR|Test|E|Lead 43810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043811|143811|989898|1|9999043811|MR|Test|E|Lead 43811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043812|143812|989898|1|9999043812|MR|Test|E|Lead 43812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043813|143813|989898|1|9999043813|MR|Test|E|Lead 43813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043814|143814|989898|1|9999043814|MR|Test|E|Lead 43814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043815|143815|989898|1|9999043815|MR|Test|E|Lead 43815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043816|143816|989898|1|9999043816|MR|Test|E|Lead 43816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043817|143817|989898|1|9999043817|MR|Test|E|Lead 43817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043818|143818|989898|1|9999043818|MR|Test|E|Lead 43818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043819|143819|989898|1|9999043819|MR|Test|E|Lead 43819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043820|143820|989898|1|9999043820|MR|Test|E|Lead 43820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043821|143821|989898|1|9999043821|MR|Test|E|Lead 43821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043822|143822|989898|1|9999043822|MR|Test|E|Lead 43822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043823|143823|989898|1|9999043823|MR|Test|E|Lead 43823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043824|143824|989898|1|9999043824|MR|Test|E|Lead 43824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043825|143825|989898|1|9999043825|MR|Test|E|Lead 43825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043826|143826|989898|1|9999043826|MR|Test|E|Lead 43826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043827|143827|989898|1|9999043827|MR|Test|E|Lead 43827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043828|143828|989898|1|9999043828|MR|Test|E|Lead 43828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043829|143829|989898|1|9999043829|MR|Test|E|Lead 43829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043830|143830|989898|1|9999043830|MR|Test|E|Lead 43830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043831|143831|989898|1|9999043831|MR|Test|E|Lead 43831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043832|143832|989898|1|9999043832|MR|Test|E|Lead 43832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043833|143833|989898|1|9999043833|MR|Test|E|Lead 43833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043834|143834|989898|1|9999043834|MR|Test|E|Lead 43834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043835|143835|989898|1|9999043835|MR|Test|E|Lead 43835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043836|143836|989898|1|9999043836|MR|Test|E|Lead 43836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043837|143837|989898|1|9999043837|MR|Test|E|Lead 43837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043838|143838|989898|1|9999043838|MR|Test|E|Lead 43838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043839|143839|989898|1|9999043839|MR|Test|E|Lead 43839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043840|143840|989898|1|9999043840|MR|Test|E|Lead 43840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043841|143841|989898|1|9999043841|MR|Test|E|Lead 43841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043842|143842|989898|1|9999043842|MR|Test|E|Lead 43842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043843|143843|989898|1|9999043843|MR|Test|E|Lead 43843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043844|143844|989898|1|9999043844|MR|Test|E|Lead 43844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043845|143845|989898|1|9999043845|MR|Test|E|Lead 43845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043846|143846|989898|1|9999043846|MR|Test|E|Lead 43846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043847|143847|989898|1|9999043847|MR|Test|E|Lead 43847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043848|143848|989898|1|9999043848|MR|Test|E|Lead 43848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043849|143849|989898|1|9999043849|MR|Test|E|Lead 43849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043850|143850|989898|1|9999043850|MR|Test|E|Lead 43850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043851|143851|989898|1|9999043851|MR|Test|E|Lead 43851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043852|143852|989898|1|9999043852|MR|Test|E|Lead 43852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043853|143853|989898|1|9999043853|MR|Test|E|Lead 43853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043854|143854|989898|1|9999043854|MR|Test|E|Lead 43854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043855|143855|989898|1|9999043855|MR|Test|E|Lead 43855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043856|143856|989898|1|9999043856|MR|Test|E|Lead 43856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043857|143857|989898|1|9999043857|MR|Test|E|Lead 43857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043858|143858|989898|1|9999043858|MR|Test|E|Lead 43858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043859|143859|989898|1|9999043859|MR|Test|E|Lead 43859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043860|143860|989898|1|9999043860|MR|Test|E|Lead 43860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043861|143861|989898|1|9999043861|MR|Test|E|Lead 43861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043862|143862|989898|1|9999043862|MR|Test|E|Lead 43862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043863|143863|989898|1|9999043863|MR|Test|E|Lead 43863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043864|143864|989898|1|9999043864|MR|Test|E|Lead 43864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043865|143865|989898|1|9999043865|MR|Test|E|Lead 43865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043866|143866|989898|1|9999043866|MR|Test|E|Lead 43866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043867|143867|989898|1|9999043867|MR|Test|E|Lead 43867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043868|143868|989898|1|9999043868|MR|Test|E|Lead 43868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043869|143869|989898|1|9999043869|MR|Test|E|Lead 43869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043870|143870|989898|1|9999043870|MR|Test|E|Lead 43870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043871|143871|989898|1|9999043871|MR|Test|E|Lead 43871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043872|143872|989898|1|9999043872|MR|Test|E|Lead 43872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043873|143873|989898|1|9999043873|MR|Test|E|Lead 43873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043874|143874|989898|1|9999043874|MR|Test|E|Lead 43874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043875|143875|989898|1|9999043875|MR|Test|E|Lead 43875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043876|143876|989898|1|9999043876|MR|Test|E|Lead 43876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043877|143877|989898|1|9999043877|MR|Test|E|Lead 43877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043878|143878|989898|1|9999043878|MR|Test|E|Lead 43878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043879|143879|989898|1|9999043879|MR|Test|E|Lead 43879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043880|143880|989898|1|9999043880|MR|Test|E|Lead 43880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043881|143881|989898|1|9999043881|MR|Test|E|Lead 43881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043882|143882|989898|1|9999043882|MR|Test|E|Lead 43882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043883|143883|989898|1|9999043883|MR|Test|E|Lead 43883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043884|143884|989898|1|9999043884|MR|Test|E|Lead 43884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043885|143885|989898|1|9999043885|MR|Test|E|Lead 43885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043886|143886|989898|1|9999043886|MR|Test|E|Lead 43886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043887|143887|989898|1|9999043887|MR|Test|E|Lead 43887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043888|143888|989898|1|9999043888|MR|Test|E|Lead 43888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043889|143889|989898|1|9999043889|MR|Test|E|Lead 43889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043890|143890|989898|1|9999043890|MR|Test|E|Lead 43890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043891|143891|989898|1|9999043891|MR|Test|E|Lead 43891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043892|143892|989898|1|9999043892|MR|Test|E|Lead 43892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043893|143893|989898|1|9999043893|MR|Test|E|Lead 43893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043894|143894|989898|1|9999043894|MR|Test|E|Lead 43894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043895|143895|989898|1|9999043895|MR|Test|E|Lead 43895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043896|143896|989898|1|9999043896|MR|Test|E|Lead 43896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043897|143897|989898|1|9999043897|MR|Test|E|Lead 43897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043898|143898|989898|1|9999043898|MR|Test|E|Lead 43898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043899|143899|989898|1|9999043899|MR|Test|E|Lead 43899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043900|143900|989898|1|9999043900|MR|Test|E|Lead 43900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043901|143901|989898|1|9999043901|MR|Test|E|Lead 43901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043902|143902|989898|1|9999043902|MR|Test|E|Lead 43902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043903|143903|989898|1|9999043903|MR|Test|E|Lead 43903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043904|143904|989898|1|9999043904|MR|Test|E|Lead 43904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043905|143905|989898|1|9999043905|MR|Test|E|Lead 43905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043906|143906|989898|1|9999043906|MR|Test|E|Lead 43906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043907|143907|989898|1|9999043907|MR|Test|E|Lead 43907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043908|143908|989898|1|9999043908|MR|Test|E|Lead 43908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043909|143909|989898|1|9999043909|MR|Test|E|Lead 43909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043910|143910|989898|1|9999043910|MR|Test|E|Lead 43910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043911|143911|989898|1|9999043911|MR|Test|E|Lead 43911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043912|143912|989898|1|9999043912|MR|Test|E|Lead 43912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043913|143913|989898|1|9999043913|MR|Test|E|Lead 43913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043914|143914|989898|1|9999043914|MR|Test|E|Lead 43914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043915|143915|989898|1|9999043915|MR|Test|E|Lead 43915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043916|143916|989898|1|9999043916|MR|Test|E|Lead 43916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043917|143917|989898|1|9999043917|MR|Test|E|Lead 43917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043918|143918|989898|1|9999043918|MR|Test|E|Lead 43918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043919|143919|989898|1|9999043919|MR|Test|E|Lead 43919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043920|143920|989898|1|9999043920|MR|Test|E|Lead 43920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043921|143921|989898|1|9999043921|MR|Test|E|Lead 43921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043922|143922|989898|1|9999043922|MR|Test|E|Lead 43922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043923|143923|989898|1|9999043923|MR|Test|E|Lead 43923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043924|143924|989898|1|9999043924|MR|Test|E|Lead 43924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043925|143925|989898|1|9999043925|MR|Test|E|Lead 43925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043926|143926|989898|1|9999043926|MR|Test|E|Lead 43926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043927|143927|989898|1|9999043927|MR|Test|E|Lead 43927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043928|143928|989898|1|9999043928|MR|Test|E|Lead 43928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043929|143929|989898|1|9999043929|MR|Test|E|Lead 43929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043930|143930|989898|1|9999043930|MR|Test|E|Lead 43930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043931|143931|989898|1|9999043931|MR|Test|E|Lead 43931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043932|143932|989898|1|9999043932|MR|Test|E|Lead 43932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043933|143933|989898|1|9999043933|MR|Test|E|Lead 43933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043934|143934|989898|1|9999043934|MR|Test|E|Lead 43934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043935|143935|989898|1|9999043935|MR|Test|E|Lead 43935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043936|143936|989898|1|9999043936|MR|Test|E|Lead 43936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043937|143937|989898|1|9999043937|MR|Test|E|Lead 43937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043938|143938|989898|1|9999043938|MR|Test|E|Lead 43938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043939|143939|989898|1|9999043939|MR|Test|E|Lead 43939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043940|143940|989898|1|9999043940|MR|Test|E|Lead 43940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043941|143941|989898|1|9999043941|MR|Test|E|Lead 43941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043942|143942|989898|1|9999043942|MR|Test|E|Lead 43942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043943|143943|989898|1|9999043943|MR|Test|E|Lead 43943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043944|143944|989898|1|9999043944|MR|Test|E|Lead 43944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043945|143945|989898|1|9999043945|MR|Test|E|Lead 43945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043946|143946|989898|1|9999043946|MR|Test|E|Lead 43946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043947|143947|989898|1|9999043947|MR|Test|E|Lead 43947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043948|143948|989898|1|9999043948|MR|Test|E|Lead 43948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043949|143949|989898|1|9999043949|MR|Test|E|Lead 43949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043950|143950|989898|1|9999043950|MR|Test|E|Lead 43950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043951|143951|989898|1|9999043951|MR|Test|E|Lead 43951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043952|143952|989898|1|9999043952|MR|Test|E|Lead 43952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043953|143953|989898|1|9999043953|MR|Test|E|Lead 43953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043954|143954|989898|1|9999043954|MR|Test|E|Lead 43954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043955|143955|989898|1|9999043955|MR|Test|E|Lead 43955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043956|143956|989898|1|9999043956|MR|Test|E|Lead 43956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043957|143957|989898|1|9999043957|MR|Test|E|Lead 43957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043958|143958|989898|1|9999043958|MR|Test|E|Lead 43958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043959|143959|989898|1|9999043959|MR|Test|E|Lead 43959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043960|143960|989898|1|9999043960|MR|Test|E|Lead 43960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043961|143961|989898|1|9999043961|MR|Test|E|Lead 43961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043962|143962|989898|1|9999043962|MR|Test|E|Lead 43962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043963|143963|989898|1|9999043963|MR|Test|E|Lead 43963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043964|143964|989898|1|9999043964|MR|Test|E|Lead 43964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043965|143965|989898|1|9999043965|MR|Test|E|Lead 43965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043966|143966|989898|1|9999043966|MR|Test|E|Lead 43966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043967|143967|989898|1|9999043967|MR|Test|E|Lead 43967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043968|143968|989898|1|9999043968|MR|Test|E|Lead 43968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043969|143969|989898|1|9999043969|MR|Test|E|Lead 43969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043970|143970|989898|1|9999043970|MR|Test|E|Lead 43970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043971|143971|989898|1|9999043971|MR|Test|E|Lead 43971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043972|143972|989898|1|9999043972|MR|Test|E|Lead 43972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043973|143973|989898|1|9999043973|MR|Test|E|Lead 43973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043974|143974|989898|1|9999043974|MR|Test|E|Lead 43974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043975|143975|989898|1|9999043975|MR|Test|E|Lead 43975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043976|143976|989898|1|9999043976|MR|Test|E|Lead 43976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043977|143977|989898|1|9999043977|MR|Test|E|Lead 43977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043978|143978|989898|1|9999043978|MR|Test|E|Lead 43978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043979|143979|989898|1|9999043979|MR|Test|E|Lead 43979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043980|143980|989898|1|9999043980|MR|Test|E|Lead 43980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043981|143981|989898|1|9999043981|MR|Test|E|Lead 43981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043982|143982|989898|1|9999043982|MR|Test|E|Lead 43982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043983|143983|989898|1|9999043983|MR|Test|E|Lead 43983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043984|143984|989898|1|9999043984|MR|Test|E|Lead 43984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043985|143985|989898|1|9999043985|MR|Test|E|Lead 43985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043986|143986|989898|1|9999043986|MR|Test|E|Lead 43986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043987|143987|989898|1|9999043987|MR|Test|E|Lead 43987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043988|143988|989898|1|9999043988|MR|Test|E|Lead 43988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043989|143989|989898|1|9999043989|MR|Test|E|Lead 43989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043990|143990|989898|1|9999043990|MR|Test|E|Lead 43990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043991|143991|989898|1|9999043991|MR|Test|E|Lead 43991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043992|143992|989898|1|9999043992|MR|Test|E|Lead 43992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043993|143993|989898|1|9999043993|MR|Test|E|Lead 43993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043994|143994|989898|1|9999043994|MR|Test|E|Lead 43994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043995|143995|989898|1|9999043995|MR|Test|E|Lead 43995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043996|143996|989898|1|9999043996|MR|Test|E|Lead 43996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043997|143997|989898|1|9999043997|MR|Test|E|Lead 43997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043998|143998|989898|1|9999043998|MR|Test|E|Lead 43998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1043999|143999|989898|1|9999043999|MR|Test|E|Lead 43999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044000|144000|989898|1|9999044000|MR|Test|E|Lead 44000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044001|144001|989898|1|9999044001|MR|Test|E|Lead 44001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044002|144002|989898|1|9999044002|MR|Test|E|Lead 44002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044003|144003|989898|1|9999044003|MR|Test|E|Lead 44003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044004|144004|989898|1|9999044004|MR|Test|E|Lead 44004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044005|144005|989898|1|9999044005|MR|Test|E|Lead 44005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044006|144006|989898|1|9999044006|MR|Test|E|Lead 44006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044007|144007|989898|1|9999044007|MR|Test|E|Lead 44007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044008|144008|989898|1|9999044008|MR|Test|E|Lead 44008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044009|144009|989898|1|9999044009|MR|Test|E|Lead 44009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044010|144010|989898|1|9999044010|MR|Test|E|Lead 44010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044011|144011|989898|1|9999044011|MR|Test|E|Lead 44011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044012|144012|989898|1|9999044012|MR|Test|E|Lead 44012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044013|144013|989898|1|9999044013|MR|Test|E|Lead 44013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044014|144014|989898|1|9999044014|MR|Test|E|Lead 44014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044015|144015|989898|1|9999044015|MR|Test|E|Lead 44015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044016|144016|989898|1|9999044016|MR|Test|E|Lead 44016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044017|144017|989898|1|9999044017|MR|Test|E|Lead 44017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044018|144018|989898|1|9999044018|MR|Test|E|Lead 44018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044019|144019|989898|1|9999044019|MR|Test|E|Lead 44019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044020|144020|989898|1|9999044020|MR|Test|E|Lead 44020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044021|144021|989898|1|9999044021|MR|Test|E|Lead 44021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044022|144022|989898|1|9999044022|MR|Test|E|Lead 44022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044023|144023|989898|1|9999044023|MR|Test|E|Lead 44023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044024|144024|989898|1|9999044024|MR|Test|E|Lead 44024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044025|144025|989898|1|9999044025|MR|Test|E|Lead 44025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044026|144026|989898|1|9999044026|MR|Test|E|Lead 44026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044027|144027|989898|1|9999044027|MR|Test|E|Lead 44027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044028|144028|989898|1|9999044028|MR|Test|E|Lead 44028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044029|144029|989898|1|9999044029|MR|Test|E|Lead 44029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044030|144030|989898|1|9999044030|MR|Test|E|Lead 44030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044031|144031|989898|1|9999044031|MR|Test|E|Lead 44031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044032|144032|989898|1|9999044032|MR|Test|E|Lead 44032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044033|144033|989898|1|9999044033|MR|Test|E|Lead 44033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044034|144034|989898|1|9999044034|MR|Test|E|Lead 44034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044035|144035|989898|1|9999044035|MR|Test|E|Lead 44035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044036|144036|989898|1|9999044036|MR|Test|E|Lead 44036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044037|144037|989898|1|9999044037|MR|Test|E|Lead 44037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044038|144038|989898|1|9999044038|MR|Test|E|Lead 44038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044039|144039|989898|1|9999044039|MR|Test|E|Lead 44039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044040|144040|989898|1|9999044040|MR|Test|E|Lead 44040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044041|144041|989898|1|9999044041|MR|Test|E|Lead 44041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044042|144042|989898|1|9999044042|MR|Test|E|Lead 44042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044043|144043|989898|1|9999044043|MR|Test|E|Lead 44043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044044|144044|989898|1|9999044044|MR|Test|E|Lead 44044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044045|144045|989898|1|9999044045|MR|Test|E|Lead 44045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044046|144046|989898|1|9999044046|MR|Test|E|Lead 44046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044047|144047|989898|1|9999044047|MR|Test|E|Lead 44047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044048|144048|989898|1|9999044048|MR|Test|E|Lead 44048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044049|144049|989898|1|9999044049|MR|Test|E|Lead 44049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044050|144050|989898|1|9999044050|MR|Test|E|Lead 44050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044051|144051|989898|1|9999044051|MR|Test|E|Lead 44051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044052|144052|989898|1|9999044052|MR|Test|E|Lead 44052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044053|144053|989898|1|9999044053|MR|Test|E|Lead 44053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044054|144054|989898|1|9999044054|MR|Test|E|Lead 44054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044055|144055|989898|1|9999044055|MR|Test|E|Lead 44055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044056|144056|989898|1|9999044056|MR|Test|E|Lead 44056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044057|144057|989898|1|9999044057|MR|Test|E|Lead 44057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044058|144058|989898|1|9999044058|MR|Test|E|Lead 44058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044059|144059|989898|1|9999044059|MR|Test|E|Lead 44059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044060|144060|989898|1|9999044060|MR|Test|E|Lead 44060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044061|144061|989898|1|9999044061|MR|Test|E|Lead 44061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044062|144062|989898|1|9999044062|MR|Test|E|Lead 44062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044063|144063|989898|1|9999044063|MR|Test|E|Lead 44063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044064|144064|989898|1|9999044064|MR|Test|E|Lead 44064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044065|144065|989898|1|9999044065|MR|Test|E|Lead 44065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044066|144066|989898|1|9999044066|MR|Test|E|Lead 44066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044067|144067|989898|1|9999044067|MR|Test|E|Lead 44067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044068|144068|989898|1|9999044068|MR|Test|E|Lead 44068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044069|144069|989898|1|9999044069|MR|Test|E|Lead 44069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044070|144070|989898|1|9999044070|MR|Test|E|Lead 44070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044071|144071|989898|1|9999044071|MR|Test|E|Lead 44071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044072|144072|989898|1|9999044072|MR|Test|E|Lead 44072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044073|144073|989898|1|9999044073|MR|Test|E|Lead 44073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044074|144074|989898|1|9999044074|MR|Test|E|Lead 44074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044075|144075|989898|1|9999044075|MR|Test|E|Lead 44075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044076|144076|989898|1|9999044076|MR|Test|E|Lead 44076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044077|144077|989898|1|9999044077|MR|Test|E|Lead 44077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044078|144078|989898|1|9999044078|MR|Test|E|Lead 44078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044079|144079|989898|1|9999044079|MR|Test|E|Lead 44079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044080|144080|989898|1|9999044080|MR|Test|E|Lead 44080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044081|144081|989898|1|9999044081|MR|Test|E|Lead 44081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044082|144082|989898|1|9999044082|MR|Test|E|Lead 44082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044083|144083|989898|1|9999044083|MR|Test|E|Lead 44083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044084|144084|989898|1|9999044084|MR|Test|E|Lead 44084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044085|144085|989898|1|9999044085|MR|Test|E|Lead 44085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044086|144086|989898|1|9999044086|MR|Test|E|Lead 44086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044087|144087|989898|1|9999044087|MR|Test|E|Lead 44087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044088|144088|989898|1|9999044088|MR|Test|E|Lead 44088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044089|144089|989898|1|9999044089|MR|Test|E|Lead 44089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044090|144090|989898|1|9999044090|MR|Test|E|Lead 44090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044091|144091|989898|1|9999044091|MR|Test|E|Lead 44091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044092|144092|989898|1|9999044092|MR|Test|E|Lead 44092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044093|144093|989898|1|9999044093|MR|Test|E|Lead 44093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044094|144094|989898|1|9999044094|MR|Test|E|Lead 44094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044095|144095|989898|1|9999044095|MR|Test|E|Lead 44095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044096|144096|989898|1|9999044096|MR|Test|E|Lead 44096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044097|144097|989898|1|9999044097|MR|Test|E|Lead 44097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044098|144098|989898|1|9999044098|MR|Test|E|Lead 44098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044099|144099|989898|1|9999044099|MR|Test|E|Lead 44099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044100|144100|989898|1|9999044100|MR|Test|E|Lead 44100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044101|144101|989898|1|9999044101|MR|Test|E|Lead 44101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044102|144102|989898|1|9999044102|MR|Test|E|Lead 44102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044103|144103|989898|1|9999044103|MR|Test|E|Lead 44103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044104|144104|989898|1|9999044104|MR|Test|E|Lead 44104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044105|144105|989898|1|9999044105|MR|Test|E|Lead 44105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044106|144106|989898|1|9999044106|MR|Test|E|Lead 44106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044107|144107|989898|1|9999044107|MR|Test|E|Lead 44107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044108|144108|989898|1|9999044108|MR|Test|E|Lead 44108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044109|144109|989898|1|9999044109|MR|Test|E|Lead 44109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044110|144110|989898|1|9999044110|MR|Test|E|Lead 44110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044111|144111|989898|1|9999044111|MR|Test|E|Lead 44111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044112|144112|989898|1|9999044112|MR|Test|E|Lead 44112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044113|144113|989898|1|9999044113|MR|Test|E|Lead 44113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044114|144114|989898|1|9999044114|MR|Test|E|Lead 44114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044115|144115|989898|1|9999044115|MR|Test|E|Lead 44115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044116|144116|989898|1|9999044116|MR|Test|E|Lead 44116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044117|144117|989898|1|9999044117|MR|Test|E|Lead 44117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044118|144118|989898|1|9999044118|MR|Test|E|Lead 44118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044119|144119|989898|1|9999044119|MR|Test|E|Lead 44119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044120|144120|989898|1|9999044120|MR|Test|E|Lead 44120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044121|144121|989898|1|9999044121|MR|Test|E|Lead 44121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044122|144122|989898|1|9999044122|MR|Test|E|Lead 44122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044123|144123|989898|1|9999044123|MR|Test|E|Lead 44123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044124|144124|989898|1|9999044124|MR|Test|E|Lead 44124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044125|144125|989898|1|9999044125|MR|Test|E|Lead 44125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044126|144126|989898|1|9999044126|MR|Test|E|Lead 44126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044127|144127|989898|1|9999044127|MR|Test|E|Lead 44127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044128|144128|989898|1|9999044128|MR|Test|E|Lead 44128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044129|144129|989898|1|9999044129|MR|Test|E|Lead 44129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044130|144130|989898|1|9999044130|MR|Test|E|Lead 44130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044131|144131|989898|1|9999044131|MR|Test|E|Lead 44131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044132|144132|989898|1|9999044132|MR|Test|E|Lead 44132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044133|144133|989898|1|9999044133|MR|Test|E|Lead 44133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044134|144134|989898|1|9999044134|MR|Test|E|Lead 44134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044135|144135|989898|1|9999044135|MR|Test|E|Lead 44135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044136|144136|989898|1|9999044136|MR|Test|E|Lead 44136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044137|144137|989898|1|9999044137|MR|Test|E|Lead 44137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044138|144138|989898|1|9999044138|MR|Test|E|Lead 44138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044139|144139|989898|1|9999044139|MR|Test|E|Lead 44139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044140|144140|989898|1|9999044140|MR|Test|E|Lead 44140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044141|144141|989898|1|9999044141|MR|Test|E|Lead 44141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044142|144142|989898|1|9999044142|MR|Test|E|Lead 44142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044143|144143|989898|1|9999044143|MR|Test|E|Lead 44143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044144|144144|989898|1|9999044144|MR|Test|E|Lead 44144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044145|144145|989898|1|9999044145|MR|Test|E|Lead 44145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044146|144146|989898|1|9999044146|MR|Test|E|Lead 44146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044147|144147|989898|1|9999044147|MR|Test|E|Lead 44147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044148|144148|989898|1|9999044148|MR|Test|E|Lead 44148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044149|144149|989898|1|9999044149|MR|Test|E|Lead 44149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044150|144150|989898|1|9999044150|MR|Test|E|Lead 44150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044151|144151|989898|1|9999044151|MR|Test|E|Lead 44151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044152|144152|989898|1|9999044152|MR|Test|E|Lead 44152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044153|144153|989898|1|9999044153|MR|Test|E|Lead 44153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044154|144154|989898|1|9999044154|MR|Test|E|Lead 44154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044155|144155|989898|1|9999044155|MR|Test|E|Lead 44155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044156|144156|989898|1|9999044156|MR|Test|E|Lead 44156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044157|144157|989898|1|9999044157|MR|Test|E|Lead 44157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044158|144158|989898|1|9999044158|MR|Test|E|Lead 44158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044159|144159|989898|1|9999044159|MR|Test|E|Lead 44159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044160|144160|989898|1|9999044160|MR|Test|E|Lead 44160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044161|144161|989898|1|9999044161|MR|Test|E|Lead 44161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044162|144162|989898|1|9999044162|MR|Test|E|Lead 44162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044163|144163|989898|1|9999044163|MR|Test|E|Lead 44163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044164|144164|989898|1|9999044164|MR|Test|E|Lead 44164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044165|144165|989898|1|9999044165|MR|Test|E|Lead 44165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044166|144166|989898|1|9999044166|MR|Test|E|Lead 44166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044167|144167|989898|1|9999044167|MR|Test|E|Lead 44167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044168|144168|989898|1|9999044168|MR|Test|E|Lead 44168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044169|144169|989898|1|9999044169|MR|Test|E|Lead 44169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044170|144170|989898|1|9999044170|MR|Test|E|Lead 44170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044171|144171|989898|1|9999044171|MR|Test|E|Lead 44171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044172|144172|989898|1|9999044172|MR|Test|E|Lead 44172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044173|144173|989898|1|9999044173|MR|Test|E|Lead 44173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044174|144174|989898|1|9999044174|MR|Test|E|Lead 44174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044175|144175|989898|1|9999044175|MR|Test|E|Lead 44175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044176|144176|989898|1|9999044176|MR|Test|E|Lead 44176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044177|144177|989898|1|9999044177|MR|Test|E|Lead 44177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044178|144178|989898|1|9999044178|MR|Test|E|Lead 44178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044179|144179|989898|1|9999044179|MR|Test|E|Lead 44179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044180|144180|989898|1|9999044180|MR|Test|E|Lead 44180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044181|144181|989898|1|9999044181|MR|Test|E|Lead 44181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044182|144182|989898|1|9999044182|MR|Test|E|Lead 44182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044183|144183|989898|1|9999044183|MR|Test|E|Lead 44183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044184|144184|989898|1|9999044184|MR|Test|E|Lead 44184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044185|144185|989898|1|9999044185|MR|Test|E|Lead 44185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044186|144186|989898|1|9999044186|MR|Test|E|Lead 44186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044187|144187|989898|1|9999044187|MR|Test|E|Lead 44187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044188|144188|989898|1|9999044188|MR|Test|E|Lead 44188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044189|144189|989898|1|9999044189|MR|Test|E|Lead 44189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044190|144190|989898|1|9999044190|MR|Test|E|Lead 44190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044191|144191|989898|1|9999044191|MR|Test|E|Lead 44191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044192|144192|989898|1|9999044192|MR|Test|E|Lead 44192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044193|144193|989898|1|9999044193|MR|Test|E|Lead 44193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044194|144194|989898|1|9999044194|MR|Test|E|Lead 44194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044195|144195|989898|1|9999044195|MR|Test|E|Lead 44195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044196|144196|989898|1|9999044196|MR|Test|E|Lead 44196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044197|144197|989898|1|9999044197|MR|Test|E|Lead 44197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044198|144198|989898|1|9999044198|MR|Test|E|Lead 44198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044199|144199|989898|1|9999044199|MR|Test|E|Lead 44199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044200|144200|989898|1|9999044200|MR|Test|E|Lead 44200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044201|144201|989898|1|9999044201|MR|Test|E|Lead 44201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044202|144202|989898|1|9999044202|MR|Test|E|Lead 44202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044203|144203|989898|1|9999044203|MR|Test|E|Lead 44203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044204|144204|989898|1|9999044204|MR|Test|E|Lead 44204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044205|144205|989898|1|9999044205|MR|Test|E|Lead 44205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044206|144206|989898|1|9999044206|MR|Test|E|Lead 44206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044207|144207|989898|1|9999044207|MR|Test|E|Lead 44207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044208|144208|989898|1|9999044208|MR|Test|E|Lead 44208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044209|144209|989898|1|9999044209|MR|Test|E|Lead 44209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044210|144210|989898|1|9999044210|MR|Test|E|Lead 44210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044211|144211|989898|1|9999044211|MR|Test|E|Lead 44211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044212|144212|989898|1|9999044212|MR|Test|E|Lead 44212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044213|144213|989898|1|9999044213|MR|Test|E|Lead 44213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044214|144214|989898|1|9999044214|MR|Test|E|Lead 44214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044215|144215|989898|1|9999044215|MR|Test|E|Lead 44215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044216|144216|989898|1|9999044216|MR|Test|E|Lead 44216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044217|144217|989898|1|9999044217|MR|Test|E|Lead 44217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044218|144218|989898|1|9999044218|MR|Test|E|Lead 44218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044219|144219|989898|1|9999044219|MR|Test|E|Lead 44219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044220|144220|989898|1|9999044220|MR|Test|E|Lead 44220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044221|144221|989898|1|9999044221|MR|Test|E|Lead 44221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044222|144222|989898|1|9999044222|MR|Test|E|Lead 44222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044223|144223|989898|1|9999044223|MR|Test|E|Lead 44223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044224|144224|989898|1|9999044224|MR|Test|E|Lead 44224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044225|144225|989898|1|9999044225|MR|Test|E|Lead 44225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044226|144226|989898|1|9999044226|MR|Test|E|Lead 44226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044227|144227|989898|1|9999044227|MR|Test|E|Lead 44227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044228|144228|989898|1|9999044228|MR|Test|E|Lead 44228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044229|144229|989898|1|9999044229|MR|Test|E|Lead 44229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044230|144230|989898|1|9999044230|MR|Test|E|Lead 44230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044231|144231|989898|1|9999044231|MR|Test|E|Lead 44231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044232|144232|989898|1|9999044232|MR|Test|E|Lead 44232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044233|144233|989898|1|9999044233|MR|Test|E|Lead 44233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044234|144234|989898|1|9999044234|MR|Test|E|Lead 44234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044235|144235|989898|1|9999044235|MR|Test|E|Lead 44235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044236|144236|989898|1|9999044236|MR|Test|E|Lead 44236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044237|144237|989898|1|9999044237|MR|Test|E|Lead 44237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044238|144238|989898|1|9999044238|MR|Test|E|Lead 44238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044239|144239|989898|1|9999044239|MR|Test|E|Lead 44239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044240|144240|989898|1|9999044240|MR|Test|E|Lead 44240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044241|144241|989898|1|9999044241|MR|Test|E|Lead 44241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044242|144242|989898|1|9999044242|MR|Test|E|Lead 44242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044243|144243|989898|1|9999044243|MR|Test|E|Lead 44243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044244|144244|989898|1|9999044244|MR|Test|E|Lead 44244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044245|144245|989898|1|9999044245|MR|Test|E|Lead 44245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044246|144246|989898|1|9999044246|MR|Test|E|Lead 44246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044247|144247|989898|1|9999044247|MR|Test|E|Lead 44247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044248|144248|989898|1|9999044248|MR|Test|E|Lead 44248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044249|144249|989898|1|9999044249|MR|Test|E|Lead 44249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044250|144250|989898|1|9999044250|MR|Test|E|Lead 44250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044251|144251|989898|1|9999044251|MR|Test|E|Lead 44251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044252|144252|989898|1|9999044252|MR|Test|E|Lead 44252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044253|144253|989898|1|9999044253|MR|Test|E|Lead 44253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044254|144254|989898|1|9999044254|MR|Test|E|Lead 44254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044255|144255|989898|1|9999044255|MR|Test|E|Lead 44255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044256|144256|989898|1|9999044256|MR|Test|E|Lead 44256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044257|144257|989898|1|9999044257|MR|Test|E|Lead 44257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044258|144258|989898|1|9999044258|MR|Test|E|Lead 44258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044259|144259|989898|1|9999044259|MR|Test|E|Lead 44259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044260|144260|989898|1|9999044260|MR|Test|E|Lead 44260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044261|144261|989898|1|9999044261|MR|Test|E|Lead 44261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044262|144262|989898|1|9999044262|MR|Test|E|Lead 44262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044263|144263|989898|1|9999044263|MR|Test|E|Lead 44263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044264|144264|989898|1|9999044264|MR|Test|E|Lead 44264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044265|144265|989898|1|9999044265|MR|Test|E|Lead 44265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044266|144266|989898|1|9999044266|MR|Test|E|Lead 44266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044267|144267|989898|1|9999044267|MR|Test|E|Lead 44267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044268|144268|989898|1|9999044268|MR|Test|E|Lead 44268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044269|144269|989898|1|9999044269|MR|Test|E|Lead 44269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044270|144270|989898|1|9999044270|MR|Test|E|Lead 44270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044271|144271|989898|1|9999044271|MR|Test|E|Lead 44271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044272|144272|989898|1|9999044272|MR|Test|E|Lead 44272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044273|144273|989898|1|9999044273|MR|Test|E|Lead 44273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044274|144274|989898|1|9999044274|MR|Test|E|Lead 44274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044275|144275|989898|1|9999044275|MR|Test|E|Lead 44275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044276|144276|989898|1|9999044276|MR|Test|E|Lead 44276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044277|144277|989898|1|9999044277|MR|Test|E|Lead 44277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044278|144278|989898|1|9999044278|MR|Test|E|Lead 44278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044279|144279|989898|1|9999044279|MR|Test|E|Lead 44279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044280|144280|989898|1|9999044280|MR|Test|E|Lead 44280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044281|144281|989898|1|9999044281|MR|Test|E|Lead 44281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044282|144282|989898|1|9999044282|MR|Test|E|Lead 44282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044283|144283|989898|1|9999044283|MR|Test|E|Lead 44283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044284|144284|989898|1|9999044284|MR|Test|E|Lead 44284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044285|144285|989898|1|9999044285|MR|Test|E|Lead 44285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044286|144286|989898|1|9999044286|MR|Test|E|Lead 44286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044287|144287|989898|1|9999044287|MR|Test|E|Lead 44287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044288|144288|989898|1|9999044288|MR|Test|E|Lead 44288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044289|144289|989898|1|9999044289|MR|Test|E|Lead 44289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044290|144290|989898|1|9999044290|MR|Test|E|Lead 44290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044291|144291|989898|1|9999044291|MR|Test|E|Lead 44291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044292|144292|989898|1|9999044292|MR|Test|E|Lead 44292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044293|144293|989898|1|9999044293|MR|Test|E|Lead 44293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044294|144294|989898|1|9999044294|MR|Test|E|Lead 44294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044295|144295|989898|1|9999044295|MR|Test|E|Lead 44295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044296|144296|989898|1|9999044296|MR|Test|E|Lead 44296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044297|144297|989898|1|9999044297|MR|Test|E|Lead 44297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044298|144298|989898|1|9999044298|MR|Test|E|Lead 44298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044299|144299|989898|1|9999044299|MR|Test|E|Lead 44299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044300|144300|989898|1|9999044300|MR|Test|E|Lead 44300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044301|144301|989898|1|9999044301|MR|Test|E|Lead 44301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044302|144302|989898|1|9999044302|MR|Test|E|Lead 44302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044303|144303|989898|1|9999044303|MR|Test|E|Lead 44303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044304|144304|989898|1|9999044304|MR|Test|E|Lead 44304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044305|144305|989898|1|9999044305|MR|Test|E|Lead 44305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044306|144306|989898|1|9999044306|MR|Test|E|Lead 44306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044307|144307|989898|1|9999044307|MR|Test|E|Lead 44307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044308|144308|989898|1|9999044308|MR|Test|E|Lead 44308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044309|144309|989898|1|9999044309|MR|Test|E|Lead 44309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044310|144310|989898|1|9999044310|MR|Test|E|Lead 44310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044311|144311|989898|1|9999044311|MR|Test|E|Lead 44311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044312|144312|989898|1|9999044312|MR|Test|E|Lead 44312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044313|144313|989898|1|9999044313|MR|Test|E|Lead 44313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044314|144314|989898|1|9999044314|MR|Test|E|Lead 44314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044315|144315|989898|1|9999044315|MR|Test|E|Lead 44315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044316|144316|989898|1|9999044316|MR|Test|E|Lead 44316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044317|144317|989898|1|9999044317|MR|Test|E|Lead 44317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044318|144318|989898|1|9999044318|MR|Test|E|Lead 44318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044319|144319|989898|1|9999044319|MR|Test|E|Lead 44319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044320|144320|989898|1|9999044320|MR|Test|E|Lead 44320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044321|144321|989898|1|9999044321|MR|Test|E|Lead 44321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044322|144322|989898|1|9999044322|MR|Test|E|Lead 44322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044323|144323|989898|1|9999044323|MR|Test|E|Lead 44323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044324|144324|989898|1|9999044324|MR|Test|E|Lead 44324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044325|144325|989898|1|9999044325|MR|Test|E|Lead 44325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044326|144326|989898|1|9999044326|MR|Test|E|Lead 44326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044327|144327|989898|1|9999044327|MR|Test|E|Lead 44327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044328|144328|989898|1|9999044328|MR|Test|E|Lead 44328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044329|144329|989898|1|9999044329|MR|Test|E|Lead 44329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044330|144330|989898|1|9999044330|MR|Test|E|Lead 44330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044331|144331|989898|1|9999044331|MR|Test|E|Lead 44331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044332|144332|989898|1|9999044332|MR|Test|E|Lead 44332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044333|144333|989898|1|9999044333|MR|Test|E|Lead 44333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044334|144334|989898|1|9999044334|MR|Test|E|Lead 44334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044335|144335|989898|1|9999044335|MR|Test|E|Lead 44335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044336|144336|989898|1|9999044336|MR|Test|E|Lead 44336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044337|144337|989898|1|9999044337|MR|Test|E|Lead 44337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044338|144338|989898|1|9999044338|MR|Test|E|Lead 44338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044339|144339|989898|1|9999044339|MR|Test|E|Lead 44339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044340|144340|989898|1|9999044340|MR|Test|E|Lead 44340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044341|144341|989898|1|9999044341|MR|Test|E|Lead 44341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044342|144342|989898|1|9999044342|MR|Test|E|Lead 44342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044343|144343|989898|1|9999044343|MR|Test|E|Lead 44343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044344|144344|989898|1|9999044344|MR|Test|E|Lead 44344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044345|144345|989898|1|9999044345|MR|Test|E|Lead 44345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044346|144346|989898|1|9999044346|MR|Test|E|Lead 44346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044347|144347|989898|1|9999044347|MR|Test|E|Lead 44347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044348|144348|989898|1|9999044348|MR|Test|E|Lead 44348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044349|144349|989898|1|9999044349|MR|Test|E|Lead 44349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044350|144350|989898|1|9999044350|MR|Test|E|Lead 44350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044351|144351|989898|1|9999044351|MR|Test|E|Lead 44351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044352|144352|989898|1|9999044352|MR|Test|E|Lead 44352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044353|144353|989898|1|9999044353|MR|Test|E|Lead 44353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044354|144354|989898|1|9999044354|MR|Test|E|Lead 44354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044355|144355|989898|1|9999044355|MR|Test|E|Lead 44355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044356|144356|989898|1|9999044356|MR|Test|E|Lead 44356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044357|144357|989898|1|9999044357|MR|Test|E|Lead 44357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044358|144358|989898|1|9999044358|MR|Test|E|Lead 44358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044359|144359|989898|1|9999044359|MR|Test|E|Lead 44359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044360|144360|989898|1|9999044360|MR|Test|E|Lead 44360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044361|144361|989898|1|9999044361|MR|Test|E|Lead 44361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044362|144362|989898|1|9999044362|MR|Test|E|Lead 44362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044363|144363|989898|1|9999044363|MR|Test|E|Lead 44363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044364|144364|989898|1|9999044364|MR|Test|E|Lead 44364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044365|144365|989898|1|9999044365|MR|Test|E|Lead 44365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044366|144366|989898|1|9999044366|MR|Test|E|Lead 44366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044367|144367|989898|1|9999044367|MR|Test|E|Lead 44367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044368|144368|989898|1|9999044368|MR|Test|E|Lead 44368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044369|144369|989898|1|9999044369|MR|Test|E|Lead 44369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044370|144370|989898|1|9999044370|MR|Test|E|Lead 44370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044371|144371|989898|1|9999044371|MR|Test|E|Lead 44371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044372|144372|989898|1|9999044372|MR|Test|E|Lead 44372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044373|144373|989898|1|9999044373|MR|Test|E|Lead 44373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044374|144374|989898|1|9999044374|MR|Test|E|Lead 44374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044375|144375|989898|1|9999044375|MR|Test|E|Lead 44375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044376|144376|989898|1|9999044376|MR|Test|E|Lead 44376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044377|144377|989898|1|9999044377|MR|Test|E|Lead 44377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044378|144378|989898|1|9999044378|MR|Test|E|Lead 44378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044379|144379|989898|1|9999044379|MR|Test|E|Lead 44379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044380|144380|989898|1|9999044380|MR|Test|E|Lead 44380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044381|144381|989898|1|9999044381|MR|Test|E|Lead 44381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044382|144382|989898|1|9999044382|MR|Test|E|Lead 44382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044383|144383|989898|1|9999044383|MR|Test|E|Lead 44383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044384|144384|989898|1|9999044384|MR|Test|E|Lead 44384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044385|144385|989898|1|9999044385|MR|Test|E|Lead 44385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044386|144386|989898|1|9999044386|MR|Test|E|Lead 44386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044387|144387|989898|1|9999044387|MR|Test|E|Lead 44387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044388|144388|989898|1|9999044388|MR|Test|E|Lead 44388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044389|144389|989898|1|9999044389|MR|Test|E|Lead 44389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044390|144390|989898|1|9999044390|MR|Test|E|Lead 44390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044391|144391|989898|1|9999044391|MR|Test|E|Lead 44391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044392|144392|989898|1|9999044392|MR|Test|E|Lead 44392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044393|144393|989898|1|9999044393|MR|Test|E|Lead 44393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044394|144394|989898|1|9999044394|MR|Test|E|Lead 44394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044395|144395|989898|1|9999044395|MR|Test|E|Lead 44395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044396|144396|989898|1|9999044396|MR|Test|E|Lead 44396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044397|144397|989898|1|9999044397|MR|Test|E|Lead 44397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044398|144398|989898|1|9999044398|MR|Test|E|Lead 44398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044399|144399|989898|1|9999044399|MR|Test|E|Lead 44399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044400|144400|989898|1|9999044400|MR|Test|E|Lead 44400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044401|144401|989898|1|9999044401|MR|Test|E|Lead 44401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044402|144402|989898|1|9999044402|MR|Test|E|Lead 44402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044403|144403|989898|1|9999044403|MR|Test|E|Lead 44403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044404|144404|989898|1|9999044404|MR|Test|E|Lead 44404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044405|144405|989898|1|9999044405|MR|Test|E|Lead 44405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044406|144406|989898|1|9999044406|MR|Test|E|Lead 44406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044407|144407|989898|1|9999044407|MR|Test|E|Lead 44407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044408|144408|989898|1|9999044408|MR|Test|E|Lead 44408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044409|144409|989898|1|9999044409|MR|Test|E|Lead 44409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044410|144410|989898|1|9999044410|MR|Test|E|Lead 44410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044411|144411|989898|1|9999044411|MR|Test|E|Lead 44411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044412|144412|989898|1|9999044412|MR|Test|E|Lead 44412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044413|144413|989898|1|9999044413|MR|Test|E|Lead 44413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044414|144414|989898|1|9999044414|MR|Test|E|Lead 44414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044415|144415|989898|1|9999044415|MR|Test|E|Lead 44415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044416|144416|989898|1|9999044416|MR|Test|E|Lead 44416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044417|144417|989898|1|9999044417|MR|Test|E|Lead 44417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044418|144418|989898|1|9999044418|MR|Test|E|Lead 44418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044419|144419|989898|1|9999044419|MR|Test|E|Lead 44419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044420|144420|989898|1|9999044420|MR|Test|E|Lead 44420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044421|144421|989898|1|9999044421|MR|Test|E|Lead 44421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044422|144422|989898|1|9999044422|MR|Test|E|Lead 44422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044423|144423|989898|1|9999044423|MR|Test|E|Lead 44423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044424|144424|989898|1|9999044424|MR|Test|E|Lead 44424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044425|144425|989898|1|9999044425|MR|Test|E|Lead 44425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044426|144426|989898|1|9999044426|MR|Test|E|Lead 44426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044427|144427|989898|1|9999044427|MR|Test|E|Lead 44427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044428|144428|989898|1|9999044428|MR|Test|E|Lead 44428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044429|144429|989898|1|9999044429|MR|Test|E|Lead 44429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044430|144430|989898|1|9999044430|MR|Test|E|Lead 44430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044431|144431|989898|1|9999044431|MR|Test|E|Lead 44431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044432|144432|989898|1|9999044432|MR|Test|E|Lead 44432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044433|144433|989898|1|9999044433|MR|Test|E|Lead 44433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044434|144434|989898|1|9999044434|MR|Test|E|Lead 44434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044435|144435|989898|1|9999044435|MR|Test|E|Lead 44435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044436|144436|989898|1|9999044436|MR|Test|E|Lead 44436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044437|144437|989898|1|9999044437|MR|Test|E|Lead 44437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044438|144438|989898|1|9999044438|MR|Test|E|Lead 44438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044439|144439|989898|1|9999044439|MR|Test|E|Lead 44439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044440|144440|989898|1|9999044440|MR|Test|E|Lead 44440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044441|144441|989898|1|9999044441|MR|Test|E|Lead 44441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044442|144442|989898|1|9999044442|MR|Test|E|Lead 44442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044443|144443|989898|1|9999044443|MR|Test|E|Lead 44443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044444|144444|989898|1|9999044444|MR|Test|E|Lead 44444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044445|144445|989898|1|9999044445|MR|Test|E|Lead 44445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044446|144446|989898|1|9999044446|MR|Test|E|Lead 44446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044447|144447|989898|1|9999044447|MR|Test|E|Lead 44447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044448|144448|989898|1|9999044448|MR|Test|E|Lead 44448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044449|144449|989898|1|9999044449|MR|Test|E|Lead 44449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044450|144450|989898|1|9999044450|MR|Test|E|Lead 44450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044451|144451|989898|1|9999044451|MR|Test|E|Lead 44451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044452|144452|989898|1|9999044452|MR|Test|E|Lead 44452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044453|144453|989898|1|9999044453|MR|Test|E|Lead 44453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044454|144454|989898|1|9999044454|MR|Test|E|Lead 44454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044455|144455|989898|1|9999044455|MR|Test|E|Lead 44455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044456|144456|989898|1|9999044456|MR|Test|E|Lead 44456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044457|144457|989898|1|9999044457|MR|Test|E|Lead 44457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044458|144458|989898|1|9999044458|MR|Test|E|Lead 44458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044459|144459|989898|1|9999044459|MR|Test|E|Lead 44459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044460|144460|989898|1|9999044460|MR|Test|E|Lead 44460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044461|144461|989898|1|9999044461|MR|Test|E|Lead 44461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044462|144462|989898|1|9999044462|MR|Test|E|Lead 44462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044463|144463|989898|1|9999044463|MR|Test|E|Lead 44463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044464|144464|989898|1|9999044464|MR|Test|E|Lead 44464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044465|144465|989898|1|9999044465|MR|Test|E|Lead 44465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044466|144466|989898|1|9999044466|MR|Test|E|Lead 44466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044467|144467|989898|1|9999044467|MR|Test|E|Lead 44467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044468|144468|989898|1|9999044468|MR|Test|E|Lead 44468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044469|144469|989898|1|9999044469|MR|Test|E|Lead 44469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044470|144470|989898|1|9999044470|MR|Test|E|Lead 44470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044471|144471|989898|1|9999044471|MR|Test|E|Lead 44471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044472|144472|989898|1|9999044472|MR|Test|E|Lead 44472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044473|144473|989898|1|9999044473|MR|Test|E|Lead 44473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044474|144474|989898|1|9999044474|MR|Test|E|Lead 44474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044475|144475|989898|1|9999044475|MR|Test|E|Lead 44475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044476|144476|989898|1|9999044476|MR|Test|E|Lead 44476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044477|144477|989898|1|9999044477|MR|Test|E|Lead 44477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044478|144478|989898|1|9999044478|MR|Test|E|Lead 44478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044479|144479|989898|1|9999044479|MR|Test|E|Lead 44479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044480|144480|989898|1|9999044480|MR|Test|E|Lead 44480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044481|144481|989898|1|9999044481|MR|Test|E|Lead 44481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044482|144482|989898|1|9999044482|MR|Test|E|Lead 44482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044483|144483|989898|1|9999044483|MR|Test|E|Lead 44483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044484|144484|989898|1|9999044484|MR|Test|E|Lead 44484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044485|144485|989898|1|9999044485|MR|Test|E|Lead 44485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044486|144486|989898|1|9999044486|MR|Test|E|Lead 44486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044487|144487|989898|1|9999044487|MR|Test|E|Lead 44487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044488|144488|989898|1|9999044488|MR|Test|E|Lead 44488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044489|144489|989898|1|9999044489|MR|Test|E|Lead 44489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044490|144490|989898|1|9999044490|MR|Test|E|Lead 44490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044491|144491|989898|1|9999044491|MR|Test|E|Lead 44491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044492|144492|989898|1|9999044492|MR|Test|E|Lead 44492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044493|144493|989898|1|9999044493|MR|Test|E|Lead 44493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044494|144494|989898|1|9999044494|MR|Test|E|Lead 44494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044495|144495|989898|1|9999044495|MR|Test|E|Lead 44495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044496|144496|989898|1|9999044496|MR|Test|E|Lead 44496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044497|144497|989898|1|9999044497|MR|Test|E|Lead 44497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044498|144498|989898|1|9999044498|MR|Test|E|Lead 44498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044499|144499|989898|1|9999044499|MR|Test|E|Lead 44499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044500|144500|989898|1|9999044500|MR|Test|E|Lead 44500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044501|144501|989898|1|9999044501|MR|Test|E|Lead 44501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044502|144502|989898|1|9999044502|MR|Test|E|Lead 44502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044503|144503|989898|1|9999044503|MR|Test|E|Lead 44503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044504|144504|989898|1|9999044504|MR|Test|E|Lead 44504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044505|144505|989898|1|9999044505|MR|Test|E|Lead 44505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044506|144506|989898|1|9999044506|MR|Test|E|Lead 44506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044507|144507|989898|1|9999044507|MR|Test|E|Lead 44507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044508|144508|989898|1|9999044508|MR|Test|E|Lead 44508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044509|144509|989898|1|9999044509|MR|Test|E|Lead 44509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044510|144510|989898|1|9999044510|MR|Test|E|Lead 44510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044511|144511|989898|1|9999044511|MR|Test|E|Lead 44511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044512|144512|989898|1|9999044512|MR|Test|E|Lead 44512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044513|144513|989898|1|9999044513|MR|Test|E|Lead 44513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044514|144514|989898|1|9999044514|MR|Test|E|Lead 44514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044515|144515|989898|1|9999044515|MR|Test|E|Lead 44515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044516|144516|989898|1|9999044516|MR|Test|E|Lead 44516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044517|144517|989898|1|9999044517|MR|Test|E|Lead 44517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044518|144518|989898|1|9999044518|MR|Test|E|Lead 44518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044519|144519|989898|1|9999044519|MR|Test|E|Lead 44519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044520|144520|989898|1|9999044520|MR|Test|E|Lead 44520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044521|144521|989898|1|9999044521|MR|Test|E|Lead 44521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044522|144522|989898|1|9999044522|MR|Test|E|Lead 44522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044523|144523|989898|1|9999044523|MR|Test|E|Lead 44523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044524|144524|989898|1|9999044524|MR|Test|E|Lead 44524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044525|144525|989898|1|9999044525|MR|Test|E|Lead 44525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044526|144526|989898|1|9999044526|MR|Test|E|Lead 44526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044527|144527|989898|1|9999044527|MR|Test|E|Lead 44527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044528|144528|989898|1|9999044528|MR|Test|E|Lead 44528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044529|144529|989898|1|9999044529|MR|Test|E|Lead 44529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044530|144530|989898|1|9999044530|MR|Test|E|Lead 44530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044531|144531|989898|1|9999044531|MR|Test|E|Lead 44531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044532|144532|989898|1|9999044532|MR|Test|E|Lead 44532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044533|144533|989898|1|9999044533|MR|Test|E|Lead 44533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044534|144534|989898|1|9999044534|MR|Test|E|Lead 44534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044535|144535|989898|1|9999044535|MR|Test|E|Lead 44535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044536|144536|989898|1|9999044536|MR|Test|E|Lead 44536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044537|144537|989898|1|9999044537|MR|Test|E|Lead 44537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044538|144538|989898|1|9999044538|MR|Test|E|Lead 44538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044539|144539|989898|1|9999044539|MR|Test|E|Lead 44539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044540|144540|989898|1|9999044540|MR|Test|E|Lead 44540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044541|144541|989898|1|9999044541|MR|Test|E|Lead 44541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044542|144542|989898|1|9999044542|MR|Test|E|Lead 44542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044543|144543|989898|1|9999044543|MR|Test|E|Lead 44543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044544|144544|989898|1|9999044544|MR|Test|E|Lead 44544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044545|144545|989898|1|9999044545|MR|Test|E|Lead 44545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044546|144546|989898|1|9999044546|MR|Test|E|Lead 44546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044547|144547|989898|1|9999044547|MR|Test|E|Lead 44547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044548|144548|989898|1|9999044548|MR|Test|E|Lead 44548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044549|144549|989898|1|9999044549|MR|Test|E|Lead 44549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044550|144550|989898|1|9999044550|MR|Test|E|Lead 44550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044551|144551|989898|1|9999044551|MR|Test|E|Lead 44551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044552|144552|989898|1|9999044552|MR|Test|E|Lead 44552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044553|144553|989898|1|9999044553|MR|Test|E|Lead 44553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044554|144554|989898|1|9999044554|MR|Test|E|Lead 44554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044555|144555|989898|1|9999044555|MR|Test|E|Lead 44555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044556|144556|989898|1|9999044556|MR|Test|E|Lead 44556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044557|144557|989898|1|9999044557|MR|Test|E|Lead 44557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044558|144558|989898|1|9999044558|MR|Test|E|Lead 44558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044559|144559|989898|1|9999044559|MR|Test|E|Lead 44559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044560|144560|989898|1|9999044560|MR|Test|E|Lead 44560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044561|144561|989898|1|9999044561|MR|Test|E|Lead 44561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044562|144562|989898|1|9999044562|MR|Test|E|Lead 44562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044563|144563|989898|1|9999044563|MR|Test|E|Lead 44563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044564|144564|989898|1|9999044564|MR|Test|E|Lead 44564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044565|144565|989898|1|9999044565|MR|Test|E|Lead 44565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044566|144566|989898|1|9999044566|MR|Test|E|Lead 44566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044567|144567|989898|1|9999044567|MR|Test|E|Lead 44567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044568|144568|989898|1|9999044568|MR|Test|E|Lead 44568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044569|144569|989898|1|9999044569|MR|Test|E|Lead 44569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044570|144570|989898|1|9999044570|MR|Test|E|Lead 44570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044571|144571|989898|1|9999044571|MR|Test|E|Lead 44571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044572|144572|989898|1|9999044572|MR|Test|E|Lead 44572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044573|144573|989898|1|9999044573|MR|Test|E|Lead 44573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044574|144574|989898|1|9999044574|MR|Test|E|Lead 44574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044575|144575|989898|1|9999044575|MR|Test|E|Lead 44575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044576|144576|989898|1|9999044576|MR|Test|E|Lead 44576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044577|144577|989898|1|9999044577|MR|Test|E|Lead 44577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044578|144578|989898|1|9999044578|MR|Test|E|Lead 44578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044579|144579|989898|1|9999044579|MR|Test|E|Lead 44579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044580|144580|989898|1|9999044580|MR|Test|E|Lead 44580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044581|144581|989898|1|9999044581|MR|Test|E|Lead 44581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044582|144582|989898|1|9999044582|MR|Test|E|Lead 44582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044583|144583|989898|1|9999044583|MR|Test|E|Lead 44583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044584|144584|989898|1|9999044584|MR|Test|E|Lead 44584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044585|144585|989898|1|9999044585|MR|Test|E|Lead 44585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044586|144586|989898|1|9999044586|MR|Test|E|Lead 44586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044587|144587|989898|1|9999044587|MR|Test|E|Lead 44587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044588|144588|989898|1|9999044588|MR|Test|E|Lead 44588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044589|144589|989898|1|9999044589|MR|Test|E|Lead 44589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044590|144590|989898|1|9999044590|MR|Test|E|Lead 44590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044591|144591|989898|1|9999044591|MR|Test|E|Lead 44591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044592|144592|989898|1|9999044592|MR|Test|E|Lead 44592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044593|144593|989898|1|9999044593|MR|Test|E|Lead 44593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044594|144594|989898|1|9999044594|MR|Test|E|Lead 44594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044595|144595|989898|1|9999044595|MR|Test|E|Lead 44595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044596|144596|989898|1|9999044596|MR|Test|E|Lead 44596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044597|144597|989898|1|9999044597|MR|Test|E|Lead 44597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044598|144598|989898|1|9999044598|MR|Test|E|Lead 44598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044599|144599|989898|1|9999044599|MR|Test|E|Lead 44599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044600|144600|989898|1|9999044600|MR|Test|E|Lead 44600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044601|144601|989898|1|9999044601|MR|Test|E|Lead 44601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044602|144602|989898|1|9999044602|MR|Test|E|Lead 44602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044603|144603|989898|1|9999044603|MR|Test|E|Lead 44603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044604|144604|989898|1|9999044604|MR|Test|E|Lead 44604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044605|144605|989898|1|9999044605|MR|Test|E|Lead 44605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044606|144606|989898|1|9999044606|MR|Test|E|Lead 44606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044607|144607|989898|1|9999044607|MR|Test|E|Lead 44607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044608|144608|989898|1|9999044608|MR|Test|E|Lead 44608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044609|144609|989898|1|9999044609|MR|Test|E|Lead 44609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044610|144610|989898|1|9999044610|MR|Test|E|Lead 44610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044611|144611|989898|1|9999044611|MR|Test|E|Lead 44611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044612|144612|989898|1|9999044612|MR|Test|E|Lead 44612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044613|144613|989898|1|9999044613|MR|Test|E|Lead 44613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044614|144614|989898|1|9999044614|MR|Test|E|Lead 44614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044615|144615|989898|1|9999044615|MR|Test|E|Lead 44615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044616|144616|989898|1|9999044616|MR|Test|E|Lead 44616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044617|144617|989898|1|9999044617|MR|Test|E|Lead 44617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044618|144618|989898|1|9999044618|MR|Test|E|Lead 44618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044619|144619|989898|1|9999044619|MR|Test|E|Lead 44619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044620|144620|989898|1|9999044620|MR|Test|E|Lead 44620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044621|144621|989898|1|9999044621|MR|Test|E|Lead 44621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044622|144622|989898|1|9999044622|MR|Test|E|Lead 44622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044623|144623|989898|1|9999044623|MR|Test|E|Lead 44623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044624|144624|989898|1|9999044624|MR|Test|E|Lead 44624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044625|144625|989898|1|9999044625|MR|Test|E|Lead 44625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044626|144626|989898|1|9999044626|MR|Test|E|Lead 44626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044627|144627|989898|1|9999044627|MR|Test|E|Lead 44627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044628|144628|989898|1|9999044628|MR|Test|E|Lead 44628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044629|144629|989898|1|9999044629|MR|Test|E|Lead 44629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044630|144630|989898|1|9999044630|MR|Test|E|Lead 44630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044631|144631|989898|1|9999044631|MR|Test|E|Lead 44631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044632|144632|989898|1|9999044632|MR|Test|E|Lead 44632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044633|144633|989898|1|9999044633|MR|Test|E|Lead 44633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044634|144634|989898|1|9999044634|MR|Test|E|Lead 44634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044635|144635|989898|1|9999044635|MR|Test|E|Lead 44635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044636|144636|989898|1|9999044636|MR|Test|E|Lead 44636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044637|144637|989898|1|9999044637|MR|Test|E|Lead 44637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044638|144638|989898|1|9999044638|MR|Test|E|Lead 44638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044639|144639|989898|1|9999044639|MR|Test|E|Lead 44639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044640|144640|989898|1|9999044640|MR|Test|E|Lead 44640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044641|144641|989898|1|9999044641|MR|Test|E|Lead 44641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044642|144642|989898|1|9999044642|MR|Test|E|Lead 44642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044643|144643|989898|1|9999044643|MR|Test|E|Lead 44643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044644|144644|989898|1|9999044644|MR|Test|E|Lead 44644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044645|144645|989898|1|9999044645|MR|Test|E|Lead 44645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044646|144646|989898|1|9999044646|MR|Test|E|Lead 44646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044647|144647|989898|1|9999044647|MR|Test|E|Lead 44647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044648|144648|989898|1|9999044648|MR|Test|E|Lead 44648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044649|144649|989898|1|9999044649|MR|Test|E|Lead 44649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044650|144650|989898|1|9999044650|MR|Test|E|Lead 44650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044651|144651|989898|1|9999044651|MR|Test|E|Lead 44651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044652|144652|989898|1|9999044652|MR|Test|E|Lead 44652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044653|144653|989898|1|9999044653|MR|Test|E|Lead 44653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044654|144654|989898|1|9999044654|MR|Test|E|Lead 44654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044655|144655|989898|1|9999044655|MR|Test|E|Lead 44655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044656|144656|989898|1|9999044656|MR|Test|E|Lead 44656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044657|144657|989898|1|9999044657|MR|Test|E|Lead 44657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044658|144658|989898|1|9999044658|MR|Test|E|Lead 44658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044659|144659|989898|1|9999044659|MR|Test|E|Lead 44659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044660|144660|989898|1|9999044660|MR|Test|E|Lead 44660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044661|144661|989898|1|9999044661|MR|Test|E|Lead 44661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044662|144662|989898|1|9999044662|MR|Test|E|Lead 44662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044663|144663|989898|1|9999044663|MR|Test|E|Lead 44663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044664|144664|989898|1|9999044664|MR|Test|E|Lead 44664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044665|144665|989898|1|9999044665|MR|Test|E|Lead 44665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044666|144666|989898|1|9999044666|MR|Test|E|Lead 44666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044667|144667|989898|1|9999044667|MR|Test|E|Lead 44667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044668|144668|989898|1|9999044668|MR|Test|E|Lead 44668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044669|144669|989898|1|9999044669|MR|Test|E|Lead 44669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044670|144670|989898|1|9999044670|MR|Test|E|Lead 44670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044671|144671|989898|1|9999044671|MR|Test|E|Lead 44671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044672|144672|989898|1|9999044672|MR|Test|E|Lead 44672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044673|144673|989898|1|9999044673|MR|Test|E|Lead 44673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044674|144674|989898|1|9999044674|MR|Test|E|Lead 44674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044675|144675|989898|1|9999044675|MR|Test|E|Lead 44675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044676|144676|989898|1|9999044676|MR|Test|E|Lead 44676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044677|144677|989898|1|9999044677|MR|Test|E|Lead 44677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044678|144678|989898|1|9999044678|MR|Test|E|Lead 44678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044679|144679|989898|1|9999044679|MR|Test|E|Lead 44679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044680|144680|989898|1|9999044680|MR|Test|E|Lead 44680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044681|144681|989898|1|9999044681|MR|Test|E|Lead 44681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044682|144682|989898|1|9999044682|MR|Test|E|Lead 44682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044683|144683|989898|1|9999044683|MR|Test|E|Lead 44683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044684|144684|989898|1|9999044684|MR|Test|E|Lead 44684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044685|144685|989898|1|9999044685|MR|Test|E|Lead 44685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044686|144686|989898|1|9999044686|MR|Test|E|Lead 44686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044687|144687|989898|1|9999044687|MR|Test|E|Lead 44687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044688|144688|989898|1|9999044688|MR|Test|E|Lead 44688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044689|144689|989898|1|9999044689|MR|Test|E|Lead 44689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044690|144690|989898|1|9999044690|MR|Test|E|Lead 44690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044691|144691|989898|1|9999044691|MR|Test|E|Lead 44691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044692|144692|989898|1|9999044692|MR|Test|E|Lead 44692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044693|144693|989898|1|9999044693|MR|Test|E|Lead 44693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044694|144694|989898|1|9999044694|MR|Test|E|Lead 44694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044695|144695|989898|1|9999044695|MR|Test|E|Lead 44695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044696|144696|989898|1|9999044696|MR|Test|E|Lead 44696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044697|144697|989898|1|9999044697|MR|Test|E|Lead 44697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044698|144698|989898|1|9999044698|MR|Test|E|Lead 44698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044699|144699|989898|1|9999044699|MR|Test|E|Lead 44699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044700|144700|989898|1|9999044700|MR|Test|E|Lead 44700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044701|144701|989898|1|9999044701|MR|Test|E|Lead 44701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044702|144702|989898|1|9999044702|MR|Test|E|Lead 44702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044703|144703|989898|1|9999044703|MR|Test|E|Lead 44703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044704|144704|989898|1|9999044704|MR|Test|E|Lead 44704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044705|144705|989898|1|9999044705|MR|Test|E|Lead 44705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044706|144706|989898|1|9999044706|MR|Test|E|Lead 44706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044707|144707|989898|1|9999044707|MR|Test|E|Lead 44707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044708|144708|989898|1|9999044708|MR|Test|E|Lead 44708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044709|144709|989898|1|9999044709|MR|Test|E|Lead 44709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044710|144710|989898|1|9999044710|MR|Test|E|Lead 44710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044711|144711|989898|1|9999044711|MR|Test|E|Lead 44711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044712|144712|989898|1|9999044712|MR|Test|E|Lead 44712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044713|144713|989898|1|9999044713|MR|Test|E|Lead 44713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044714|144714|989898|1|9999044714|MR|Test|E|Lead 44714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044715|144715|989898|1|9999044715|MR|Test|E|Lead 44715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044716|144716|989898|1|9999044716|MR|Test|E|Lead 44716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044717|144717|989898|1|9999044717|MR|Test|E|Lead 44717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044718|144718|989898|1|9999044718|MR|Test|E|Lead 44718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044719|144719|989898|1|9999044719|MR|Test|E|Lead 44719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044720|144720|989898|1|9999044720|MR|Test|E|Lead 44720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044721|144721|989898|1|9999044721|MR|Test|E|Lead 44721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044722|144722|989898|1|9999044722|MR|Test|E|Lead 44722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044723|144723|989898|1|9999044723|MR|Test|E|Lead 44723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044724|144724|989898|1|9999044724|MR|Test|E|Lead 44724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044725|144725|989898|1|9999044725|MR|Test|E|Lead 44725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044726|144726|989898|1|9999044726|MR|Test|E|Lead 44726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044727|144727|989898|1|9999044727|MR|Test|E|Lead 44727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044728|144728|989898|1|9999044728|MR|Test|E|Lead 44728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044729|144729|989898|1|9999044729|MR|Test|E|Lead 44729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044730|144730|989898|1|9999044730|MR|Test|E|Lead 44730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044731|144731|989898|1|9999044731|MR|Test|E|Lead 44731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044732|144732|989898|1|9999044732|MR|Test|E|Lead 44732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044733|144733|989898|1|9999044733|MR|Test|E|Lead 44733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044734|144734|989898|1|9999044734|MR|Test|E|Lead 44734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044735|144735|989898|1|9999044735|MR|Test|E|Lead 44735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044736|144736|989898|1|9999044736|MR|Test|E|Lead 44736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044737|144737|989898|1|9999044737|MR|Test|E|Lead 44737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044738|144738|989898|1|9999044738|MR|Test|E|Lead 44738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044739|144739|989898|1|9999044739|MR|Test|E|Lead 44739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044740|144740|989898|1|9999044740|MR|Test|E|Lead 44740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044741|144741|989898|1|9999044741|MR|Test|E|Lead 44741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044742|144742|989898|1|9999044742|MR|Test|E|Lead 44742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044743|144743|989898|1|9999044743|MR|Test|E|Lead 44743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044744|144744|989898|1|9999044744|MR|Test|E|Lead 44744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044745|144745|989898|1|9999044745|MR|Test|E|Lead 44745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044746|144746|989898|1|9999044746|MR|Test|E|Lead 44746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044747|144747|989898|1|9999044747|MR|Test|E|Lead 44747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044748|144748|989898|1|9999044748|MR|Test|E|Lead 44748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044749|144749|989898|1|9999044749|MR|Test|E|Lead 44749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044750|144750|989898|1|9999044750|MR|Test|E|Lead 44750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044751|144751|989898|1|9999044751|MR|Test|E|Lead 44751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044752|144752|989898|1|9999044752|MR|Test|E|Lead 44752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044753|144753|989898|1|9999044753|MR|Test|E|Lead 44753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044754|144754|989898|1|9999044754|MR|Test|E|Lead 44754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044755|144755|989898|1|9999044755|MR|Test|E|Lead 44755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044756|144756|989898|1|9999044756|MR|Test|E|Lead 44756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044757|144757|989898|1|9999044757|MR|Test|E|Lead 44757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044758|144758|989898|1|9999044758|MR|Test|E|Lead 44758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044759|144759|989898|1|9999044759|MR|Test|E|Lead 44759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044760|144760|989898|1|9999044760|MR|Test|E|Lead 44760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044761|144761|989898|1|9999044761|MR|Test|E|Lead 44761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044762|144762|989898|1|9999044762|MR|Test|E|Lead 44762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044763|144763|989898|1|9999044763|MR|Test|E|Lead 44763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044764|144764|989898|1|9999044764|MR|Test|E|Lead 44764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044765|144765|989898|1|9999044765|MR|Test|E|Lead 44765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044766|144766|989898|1|9999044766|MR|Test|E|Lead 44766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044767|144767|989898|1|9999044767|MR|Test|E|Lead 44767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044768|144768|989898|1|9999044768|MR|Test|E|Lead 44768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044769|144769|989898|1|9999044769|MR|Test|E|Lead 44769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044770|144770|989898|1|9999044770|MR|Test|E|Lead 44770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044771|144771|989898|1|9999044771|MR|Test|E|Lead 44771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044772|144772|989898|1|9999044772|MR|Test|E|Lead 44772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044773|144773|989898|1|9999044773|MR|Test|E|Lead 44773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044774|144774|989898|1|9999044774|MR|Test|E|Lead 44774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044775|144775|989898|1|9999044775|MR|Test|E|Lead 44775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044776|144776|989898|1|9999044776|MR|Test|E|Lead 44776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044777|144777|989898|1|9999044777|MR|Test|E|Lead 44777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044778|144778|989898|1|9999044778|MR|Test|E|Lead 44778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044779|144779|989898|1|9999044779|MR|Test|E|Lead 44779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044780|144780|989898|1|9999044780|MR|Test|E|Lead 44780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044781|144781|989898|1|9999044781|MR|Test|E|Lead 44781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044782|144782|989898|1|9999044782|MR|Test|E|Lead 44782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044783|144783|989898|1|9999044783|MR|Test|E|Lead 44783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044784|144784|989898|1|9999044784|MR|Test|E|Lead 44784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044785|144785|989898|1|9999044785|MR|Test|E|Lead 44785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044786|144786|989898|1|9999044786|MR|Test|E|Lead 44786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044787|144787|989898|1|9999044787|MR|Test|E|Lead 44787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044788|144788|989898|1|9999044788|MR|Test|E|Lead 44788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044789|144789|989898|1|9999044789|MR|Test|E|Lead 44789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044790|144790|989898|1|9999044790|MR|Test|E|Lead 44790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044791|144791|989898|1|9999044791|MR|Test|E|Lead 44791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044792|144792|989898|1|9999044792|MR|Test|E|Lead 44792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044793|144793|989898|1|9999044793|MR|Test|E|Lead 44793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044794|144794|989898|1|9999044794|MR|Test|E|Lead 44794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044795|144795|989898|1|9999044795|MR|Test|E|Lead 44795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044796|144796|989898|1|9999044796|MR|Test|E|Lead 44796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044797|144797|989898|1|9999044797|MR|Test|E|Lead 44797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044798|144798|989898|1|9999044798|MR|Test|E|Lead 44798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044799|144799|989898|1|9999044799|MR|Test|E|Lead 44799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044800|144800|989898|1|9999044800|MR|Test|E|Lead 44800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044801|144801|989898|1|9999044801|MR|Test|E|Lead 44801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044802|144802|989898|1|9999044802|MR|Test|E|Lead 44802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044803|144803|989898|1|9999044803|MR|Test|E|Lead 44803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044804|144804|989898|1|9999044804|MR|Test|E|Lead 44804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044805|144805|989898|1|9999044805|MR|Test|E|Lead 44805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044806|144806|989898|1|9999044806|MR|Test|E|Lead 44806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044807|144807|989898|1|9999044807|MR|Test|E|Lead 44807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044808|144808|989898|1|9999044808|MR|Test|E|Lead 44808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044809|144809|989898|1|9999044809|MR|Test|E|Lead 44809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044810|144810|989898|1|9999044810|MR|Test|E|Lead 44810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044811|144811|989898|1|9999044811|MR|Test|E|Lead 44811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044812|144812|989898|1|9999044812|MR|Test|E|Lead 44812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044813|144813|989898|1|9999044813|MR|Test|E|Lead 44813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044814|144814|989898|1|9999044814|MR|Test|E|Lead 44814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044815|144815|989898|1|9999044815|MR|Test|E|Lead 44815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044816|144816|989898|1|9999044816|MR|Test|E|Lead 44816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044817|144817|989898|1|9999044817|MR|Test|E|Lead 44817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044818|144818|989898|1|9999044818|MR|Test|E|Lead 44818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044819|144819|989898|1|9999044819|MR|Test|E|Lead 44819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044820|144820|989898|1|9999044820|MR|Test|E|Lead 44820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044821|144821|989898|1|9999044821|MR|Test|E|Lead 44821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044822|144822|989898|1|9999044822|MR|Test|E|Lead 44822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044823|144823|989898|1|9999044823|MR|Test|E|Lead 44823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044824|144824|989898|1|9999044824|MR|Test|E|Lead 44824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044825|144825|989898|1|9999044825|MR|Test|E|Lead 44825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044826|144826|989898|1|9999044826|MR|Test|E|Lead 44826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044827|144827|989898|1|9999044827|MR|Test|E|Lead 44827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044828|144828|989898|1|9999044828|MR|Test|E|Lead 44828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044829|144829|989898|1|9999044829|MR|Test|E|Lead 44829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044830|144830|989898|1|9999044830|MR|Test|E|Lead 44830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044831|144831|989898|1|9999044831|MR|Test|E|Lead 44831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044832|144832|989898|1|9999044832|MR|Test|E|Lead 44832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044833|144833|989898|1|9999044833|MR|Test|E|Lead 44833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044834|144834|989898|1|9999044834|MR|Test|E|Lead 44834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044835|144835|989898|1|9999044835|MR|Test|E|Lead 44835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044836|144836|989898|1|9999044836|MR|Test|E|Lead 44836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044837|144837|989898|1|9999044837|MR|Test|E|Lead 44837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044838|144838|989898|1|9999044838|MR|Test|E|Lead 44838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044839|144839|989898|1|9999044839|MR|Test|E|Lead 44839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044840|144840|989898|1|9999044840|MR|Test|E|Lead 44840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044841|144841|989898|1|9999044841|MR|Test|E|Lead 44841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044842|144842|989898|1|9999044842|MR|Test|E|Lead 44842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044843|144843|989898|1|9999044843|MR|Test|E|Lead 44843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044844|144844|989898|1|9999044844|MR|Test|E|Lead 44844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044845|144845|989898|1|9999044845|MR|Test|E|Lead 44845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044846|144846|989898|1|9999044846|MR|Test|E|Lead 44846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044847|144847|989898|1|9999044847|MR|Test|E|Lead 44847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044848|144848|989898|1|9999044848|MR|Test|E|Lead 44848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044849|144849|989898|1|9999044849|MR|Test|E|Lead 44849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044850|144850|989898|1|9999044850|MR|Test|E|Lead 44850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044851|144851|989898|1|9999044851|MR|Test|E|Lead 44851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044852|144852|989898|1|9999044852|MR|Test|E|Lead 44852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044853|144853|989898|1|9999044853|MR|Test|E|Lead 44853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044854|144854|989898|1|9999044854|MR|Test|E|Lead 44854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044855|144855|989898|1|9999044855|MR|Test|E|Lead 44855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044856|144856|989898|1|9999044856|MR|Test|E|Lead 44856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044857|144857|989898|1|9999044857|MR|Test|E|Lead 44857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044858|144858|989898|1|9999044858|MR|Test|E|Lead 44858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044859|144859|989898|1|9999044859|MR|Test|E|Lead 44859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044860|144860|989898|1|9999044860|MR|Test|E|Lead 44860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044861|144861|989898|1|9999044861|MR|Test|E|Lead 44861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044862|144862|989898|1|9999044862|MR|Test|E|Lead 44862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044863|144863|989898|1|9999044863|MR|Test|E|Lead 44863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044864|144864|989898|1|9999044864|MR|Test|E|Lead 44864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044865|144865|989898|1|9999044865|MR|Test|E|Lead 44865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044866|144866|989898|1|9999044866|MR|Test|E|Lead 44866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044867|144867|989898|1|9999044867|MR|Test|E|Lead 44867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044868|144868|989898|1|9999044868|MR|Test|E|Lead 44868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044869|144869|989898|1|9999044869|MR|Test|E|Lead 44869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044870|144870|989898|1|9999044870|MR|Test|E|Lead 44870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044871|144871|989898|1|9999044871|MR|Test|E|Lead 44871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044872|144872|989898|1|9999044872|MR|Test|E|Lead 44872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044873|144873|989898|1|9999044873|MR|Test|E|Lead 44873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044874|144874|989898|1|9999044874|MR|Test|E|Lead 44874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044875|144875|989898|1|9999044875|MR|Test|E|Lead 44875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044876|144876|989898|1|9999044876|MR|Test|E|Lead 44876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044877|144877|989898|1|9999044877|MR|Test|E|Lead 44877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044878|144878|989898|1|9999044878|MR|Test|E|Lead 44878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044879|144879|989898|1|9999044879|MR|Test|E|Lead 44879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044880|144880|989898|1|9999044880|MR|Test|E|Lead 44880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044881|144881|989898|1|9999044881|MR|Test|E|Lead 44881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044882|144882|989898|1|9999044882|MR|Test|E|Lead 44882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044883|144883|989898|1|9999044883|MR|Test|E|Lead 44883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044884|144884|989898|1|9999044884|MR|Test|E|Lead 44884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044885|144885|989898|1|9999044885|MR|Test|E|Lead 44885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044886|144886|989898|1|9999044886|MR|Test|E|Lead 44886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044887|144887|989898|1|9999044887|MR|Test|E|Lead 44887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044888|144888|989898|1|9999044888|MR|Test|E|Lead 44888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044889|144889|989898|1|9999044889|MR|Test|E|Lead 44889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044890|144890|989898|1|9999044890|MR|Test|E|Lead 44890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044891|144891|989898|1|9999044891|MR|Test|E|Lead 44891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044892|144892|989898|1|9999044892|MR|Test|E|Lead 44892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044893|144893|989898|1|9999044893|MR|Test|E|Lead 44893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044894|144894|989898|1|9999044894|MR|Test|E|Lead 44894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044895|144895|989898|1|9999044895|MR|Test|E|Lead 44895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044896|144896|989898|1|9999044896|MR|Test|E|Lead 44896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044897|144897|989898|1|9999044897|MR|Test|E|Lead 44897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044898|144898|989898|1|9999044898|MR|Test|E|Lead 44898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044899|144899|989898|1|9999044899|MR|Test|E|Lead 44899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044900|144900|989898|1|9999044900|MR|Test|E|Lead 44900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044901|144901|989898|1|9999044901|MR|Test|E|Lead 44901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044902|144902|989898|1|9999044902|MR|Test|E|Lead 44902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044903|144903|989898|1|9999044903|MR|Test|E|Lead 44903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044904|144904|989898|1|9999044904|MR|Test|E|Lead 44904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044905|144905|989898|1|9999044905|MR|Test|E|Lead 44905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044906|144906|989898|1|9999044906|MR|Test|E|Lead 44906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044907|144907|989898|1|9999044907|MR|Test|E|Lead 44907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044908|144908|989898|1|9999044908|MR|Test|E|Lead 44908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044909|144909|989898|1|9999044909|MR|Test|E|Lead 44909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044910|144910|989898|1|9999044910|MR|Test|E|Lead 44910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044911|144911|989898|1|9999044911|MR|Test|E|Lead 44911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044912|144912|989898|1|9999044912|MR|Test|E|Lead 44912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044913|144913|989898|1|9999044913|MR|Test|E|Lead 44913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044914|144914|989898|1|9999044914|MR|Test|E|Lead 44914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044915|144915|989898|1|9999044915|MR|Test|E|Lead 44915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044916|144916|989898|1|9999044916|MR|Test|E|Lead 44916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044917|144917|989898|1|9999044917|MR|Test|E|Lead 44917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044918|144918|989898|1|9999044918|MR|Test|E|Lead 44918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044919|144919|989898|1|9999044919|MR|Test|E|Lead 44919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044920|144920|989898|1|9999044920|MR|Test|E|Lead 44920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044921|144921|989898|1|9999044921|MR|Test|E|Lead 44921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044922|144922|989898|1|9999044922|MR|Test|E|Lead 44922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044923|144923|989898|1|9999044923|MR|Test|E|Lead 44923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044924|144924|989898|1|9999044924|MR|Test|E|Lead 44924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044925|144925|989898|1|9999044925|MR|Test|E|Lead 44925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044926|144926|989898|1|9999044926|MR|Test|E|Lead 44926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044927|144927|989898|1|9999044927|MR|Test|E|Lead 44927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044928|144928|989898|1|9999044928|MR|Test|E|Lead 44928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044929|144929|989898|1|9999044929|MR|Test|E|Lead 44929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044930|144930|989898|1|9999044930|MR|Test|E|Lead 44930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044931|144931|989898|1|9999044931|MR|Test|E|Lead 44931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044932|144932|989898|1|9999044932|MR|Test|E|Lead 44932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044933|144933|989898|1|9999044933|MR|Test|E|Lead 44933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044934|144934|989898|1|9999044934|MR|Test|E|Lead 44934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044935|144935|989898|1|9999044935|MR|Test|E|Lead 44935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044936|144936|989898|1|9999044936|MR|Test|E|Lead 44936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044937|144937|989898|1|9999044937|MR|Test|E|Lead 44937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044938|144938|989898|1|9999044938|MR|Test|E|Lead 44938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044939|144939|989898|1|9999044939|MR|Test|E|Lead 44939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044940|144940|989898|1|9999044940|MR|Test|E|Lead 44940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044941|144941|989898|1|9999044941|MR|Test|E|Lead 44941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044942|144942|989898|1|9999044942|MR|Test|E|Lead 44942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044943|144943|989898|1|9999044943|MR|Test|E|Lead 44943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044944|144944|989898|1|9999044944|MR|Test|E|Lead 44944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044945|144945|989898|1|9999044945|MR|Test|E|Lead 44945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044946|144946|989898|1|9999044946|MR|Test|E|Lead 44946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044947|144947|989898|1|9999044947|MR|Test|E|Lead 44947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044948|144948|989898|1|9999044948|MR|Test|E|Lead 44948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044949|144949|989898|1|9999044949|MR|Test|E|Lead 44949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044950|144950|989898|1|9999044950|MR|Test|E|Lead 44950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044951|144951|989898|1|9999044951|MR|Test|E|Lead 44951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044952|144952|989898|1|9999044952|MR|Test|E|Lead 44952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044953|144953|989898|1|9999044953|MR|Test|E|Lead 44953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044954|144954|989898|1|9999044954|MR|Test|E|Lead 44954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044955|144955|989898|1|9999044955|MR|Test|E|Lead 44955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044956|144956|989898|1|9999044956|MR|Test|E|Lead 44956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044957|144957|989898|1|9999044957|MR|Test|E|Lead 44957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044958|144958|989898|1|9999044958|MR|Test|E|Lead 44958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044959|144959|989898|1|9999044959|MR|Test|E|Lead 44959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044960|144960|989898|1|9999044960|MR|Test|E|Lead 44960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044961|144961|989898|1|9999044961|MR|Test|E|Lead 44961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044962|144962|989898|1|9999044962|MR|Test|E|Lead 44962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044963|144963|989898|1|9999044963|MR|Test|E|Lead 44963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044964|144964|989898|1|9999044964|MR|Test|E|Lead 44964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044965|144965|989898|1|9999044965|MR|Test|E|Lead 44965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044966|144966|989898|1|9999044966|MR|Test|E|Lead 44966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044967|144967|989898|1|9999044967|MR|Test|E|Lead 44967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044968|144968|989898|1|9999044968|MR|Test|E|Lead 44968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044969|144969|989898|1|9999044969|MR|Test|E|Lead 44969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044970|144970|989898|1|9999044970|MR|Test|E|Lead 44970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044971|144971|989898|1|9999044971|MR|Test|E|Lead 44971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044972|144972|989898|1|9999044972|MR|Test|E|Lead 44972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044973|144973|989898|1|9999044973|MR|Test|E|Lead 44973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044974|144974|989898|1|9999044974|MR|Test|E|Lead 44974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044975|144975|989898|1|9999044975|MR|Test|E|Lead 44975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044976|144976|989898|1|9999044976|MR|Test|E|Lead 44976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044977|144977|989898|1|9999044977|MR|Test|E|Lead 44977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044978|144978|989898|1|9999044978|MR|Test|E|Lead 44978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044979|144979|989898|1|9999044979|MR|Test|E|Lead 44979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044980|144980|989898|1|9999044980|MR|Test|E|Lead 44980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044981|144981|989898|1|9999044981|MR|Test|E|Lead 44981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044982|144982|989898|1|9999044982|MR|Test|E|Lead 44982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044983|144983|989898|1|9999044983|MR|Test|E|Lead 44983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044984|144984|989898|1|9999044984|MR|Test|E|Lead 44984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044985|144985|989898|1|9999044985|MR|Test|E|Lead 44985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044986|144986|989898|1|9999044986|MR|Test|E|Lead 44986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044987|144987|989898|1|9999044987|MR|Test|E|Lead 44987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044988|144988|989898|1|9999044988|MR|Test|E|Lead 44988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044989|144989|989898|1|9999044989|MR|Test|E|Lead 44989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044990|144990|989898|1|9999044990|MR|Test|E|Lead 44990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044991|144991|989898|1|9999044991|MR|Test|E|Lead 44991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044992|144992|989898|1|9999044992|MR|Test|E|Lead 44992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044993|144993|989898|1|9999044993|MR|Test|E|Lead 44993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044994|144994|989898|1|9999044994|MR|Test|E|Lead 44994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044995|144995|989898|1|9999044995|MR|Test|E|Lead 44995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044996|144996|989898|1|9999044996|MR|Test|E|Lead 44996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044997|144997|989898|1|9999044997|MR|Test|E|Lead 44997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044998|144998|989898|1|9999044998|MR|Test|E|Lead 44998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1044999|144999|989898|1|9999044999|MR|Test|E|Lead 44999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045000|145000|989898|1|9999045000|MR|Test|E|Lead 45000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045001|145001|989898|1|9999045001|MR|Test|E|Lead 45001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045002|145002|989898|1|9999045002|MR|Test|E|Lead 45002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045003|145003|989898|1|9999045003|MR|Test|E|Lead 45003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045004|145004|989898|1|9999045004|MR|Test|E|Lead 45004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045005|145005|989898|1|9999045005|MR|Test|E|Lead 45005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045006|145006|989898|1|9999045006|MR|Test|E|Lead 45006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045007|145007|989898|1|9999045007|MR|Test|E|Lead 45007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045008|145008|989898|1|9999045008|MR|Test|E|Lead 45008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045009|145009|989898|1|9999045009|MR|Test|E|Lead 45009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045010|145010|989898|1|9999045010|MR|Test|E|Lead 45010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045011|145011|989898|1|9999045011|MR|Test|E|Lead 45011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045012|145012|989898|1|9999045012|MR|Test|E|Lead 45012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045013|145013|989898|1|9999045013|MR|Test|E|Lead 45013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045014|145014|989898|1|9999045014|MR|Test|E|Lead 45014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045015|145015|989898|1|9999045015|MR|Test|E|Lead 45015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045016|145016|989898|1|9999045016|MR|Test|E|Lead 45016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045017|145017|989898|1|9999045017|MR|Test|E|Lead 45017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045018|145018|989898|1|9999045018|MR|Test|E|Lead 45018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045019|145019|989898|1|9999045019|MR|Test|E|Lead 45019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045020|145020|989898|1|9999045020|MR|Test|E|Lead 45020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045021|145021|989898|1|9999045021|MR|Test|E|Lead 45021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045022|145022|989898|1|9999045022|MR|Test|E|Lead 45022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045023|145023|989898|1|9999045023|MR|Test|E|Lead 45023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045024|145024|989898|1|9999045024|MR|Test|E|Lead 45024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045025|145025|989898|1|9999045025|MR|Test|E|Lead 45025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045026|145026|989898|1|9999045026|MR|Test|E|Lead 45026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045027|145027|989898|1|9999045027|MR|Test|E|Lead 45027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045028|145028|989898|1|9999045028|MR|Test|E|Lead 45028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045029|145029|989898|1|9999045029|MR|Test|E|Lead 45029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045030|145030|989898|1|9999045030|MR|Test|E|Lead 45030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045031|145031|989898|1|9999045031|MR|Test|E|Lead 45031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045032|145032|989898|1|9999045032|MR|Test|E|Lead 45032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045033|145033|989898|1|9999045033|MR|Test|E|Lead 45033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045034|145034|989898|1|9999045034|MR|Test|E|Lead 45034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045035|145035|989898|1|9999045035|MR|Test|E|Lead 45035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045036|145036|989898|1|9999045036|MR|Test|E|Lead 45036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045037|145037|989898|1|9999045037|MR|Test|E|Lead 45037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045038|145038|989898|1|9999045038|MR|Test|E|Lead 45038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045039|145039|989898|1|9999045039|MR|Test|E|Lead 45039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045040|145040|989898|1|9999045040|MR|Test|E|Lead 45040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045041|145041|989898|1|9999045041|MR|Test|E|Lead 45041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045042|145042|989898|1|9999045042|MR|Test|E|Lead 45042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045043|145043|989898|1|9999045043|MR|Test|E|Lead 45043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045044|145044|989898|1|9999045044|MR|Test|E|Lead 45044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045045|145045|989898|1|9999045045|MR|Test|E|Lead 45045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045046|145046|989898|1|9999045046|MR|Test|E|Lead 45046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045047|145047|989898|1|9999045047|MR|Test|E|Lead 45047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045048|145048|989898|1|9999045048|MR|Test|E|Lead 45048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045049|145049|989898|1|9999045049|MR|Test|E|Lead 45049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045050|145050|989898|1|9999045050|MR|Test|E|Lead 45050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045051|145051|989898|1|9999045051|MR|Test|E|Lead 45051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045052|145052|989898|1|9999045052|MR|Test|E|Lead 45052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045053|145053|989898|1|9999045053|MR|Test|E|Lead 45053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045054|145054|989898|1|9999045054|MR|Test|E|Lead 45054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045055|145055|989898|1|9999045055|MR|Test|E|Lead 45055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045056|145056|989898|1|9999045056|MR|Test|E|Lead 45056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045057|145057|989898|1|9999045057|MR|Test|E|Lead 45057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045058|145058|989898|1|9999045058|MR|Test|E|Lead 45058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045059|145059|989898|1|9999045059|MR|Test|E|Lead 45059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045060|145060|989898|1|9999045060|MR|Test|E|Lead 45060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045061|145061|989898|1|9999045061|MR|Test|E|Lead 45061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045062|145062|989898|1|9999045062|MR|Test|E|Lead 45062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045063|145063|989898|1|9999045063|MR|Test|E|Lead 45063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045064|145064|989898|1|9999045064|MR|Test|E|Lead 45064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045065|145065|989898|1|9999045065|MR|Test|E|Lead 45065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045066|145066|989898|1|9999045066|MR|Test|E|Lead 45066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045067|145067|989898|1|9999045067|MR|Test|E|Lead 45067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045068|145068|989898|1|9999045068|MR|Test|E|Lead 45068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045069|145069|989898|1|9999045069|MR|Test|E|Lead 45069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045070|145070|989898|1|9999045070|MR|Test|E|Lead 45070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045071|145071|989898|1|9999045071|MR|Test|E|Lead 45071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045072|145072|989898|1|9999045072|MR|Test|E|Lead 45072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045073|145073|989898|1|9999045073|MR|Test|E|Lead 45073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045074|145074|989898|1|9999045074|MR|Test|E|Lead 45074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045075|145075|989898|1|9999045075|MR|Test|E|Lead 45075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045076|145076|989898|1|9999045076|MR|Test|E|Lead 45076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045077|145077|989898|1|9999045077|MR|Test|E|Lead 45077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045078|145078|989898|1|9999045078|MR|Test|E|Lead 45078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045079|145079|989898|1|9999045079|MR|Test|E|Lead 45079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045080|145080|989898|1|9999045080|MR|Test|E|Lead 45080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045081|145081|989898|1|9999045081|MR|Test|E|Lead 45081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045082|145082|989898|1|9999045082|MR|Test|E|Lead 45082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045083|145083|989898|1|9999045083|MR|Test|E|Lead 45083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045084|145084|989898|1|9999045084|MR|Test|E|Lead 45084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045085|145085|989898|1|9999045085|MR|Test|E|Lead 45085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045086|145086|989898|1|9999045086|MR|Test|E|Lead 45086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045087|145087|989898|1|9999045087|MR|Test|E|Lead 45087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045088|145088|989898|1|9999045088|MR|Test|E|Lead 45088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045089|145089|989898|1|9999045089|MR|Test|E|Lead 45089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045090|145090|989898|1|9999045090|MR|Test|E|Lead 45090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045091|145091|989898|1|9999045091|MR|Test|E|Lead 45091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045092|145092|989898|1|9999045092|MR|Test|E|Lead 45092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045093|145093|989898|1|9999045093|MR|Test|E|Lead 45093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045094|145094|989898|1|9999045094|MR|Test|E|Lead 45094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045095|145095|989898|1|9999045095|MR|Test|E|Lead 45095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045096|145096|989898|1|9999045096|MR|Test|E|Lead 45096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045097|145097|989898|1|9999045097|MR|Test|E|Lead 45097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045098|145098|989898|1|9999045098|MR|Test|E|Lead 45098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045099|145099|989898|1|9999045099|MR|Test|E|Lead 45099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045100|145100|989898|1|9999045100|MR|Test|E|Lead 45100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045101|145101|989898|1|9999045101|MR|Test|E|Lead 45101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045102|145102|989898|1|9999045102|MR|Test|E|Lead 45102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045103|145103|989898|1|9999045103|MR|Test|E|Lead 45103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045104|145104|989898|1|9999045104|MR|Test|E|Lead 45104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045105|145105|989898|1|9999045105|MR|Test|E|Lead 45105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045106|145106|989898|1|9999045106|MR|Test|E|Lead 45106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045107|145107|989898|1|9999045107|MR|Test|E|Lead 45107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045108|145108|989898|1|9999045108|MR|Test|E|Lead 45108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045109|145109|989898|1|9999045109|MR|Test|E|Lead 45109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045110|145110|989898|1|9999045110|MR|Test|E|Lead 45110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045111|145111|989898|1|9999045111|MR|Test|E|Lead 45111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045112|145112|989898|1|9999045112|MR|Test|E|Lead 45112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045113|145113|989898|1|9999045113|MR|Test|E|Lead 45113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045114|145114|989898|1|9999045114|MR|Test|E|Lead 45114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045115|145115|989898|1|9999045115|MR|Test|E|Lead 45115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045116|145116|989898|1|9999045116|MR|Test|E|Lead 45116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045117|145117|989898|1|9999045117|MR|Test|E|Lead 45117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045118|145118|989898|1|9999045118|MR|Test|E|Lead 45118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045119|145119|989898|1|9999045119|MR|Test|E|Lead 45119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045120|145120|989898|1|9999045120|MR|Test|E|Lead 45120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045121|145121|989898|1|9999045121|MR|Test|E|Lead 45121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045122|145122|989898|1|9999045122|MR|Test|E|Lead 45122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045123|145123|989898|1|9999045123|MR|Test|E|Lead 45123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045124|145124|989898|1|9999045124|MR|Test|E|Lead 45124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045125|145125|989898|1|9999045125|MR|Test|E|Lead 45125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045126|145126|989898|1|9999045126|MR|Test|E|Lead 45126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045127|145127|989898|1|9999045127|MR|Test|E|Lead 45127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045128|145128|989898|1|9999045128|MR|Test|E|Lead 45128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045129|145129|989898|1|9999045129|MR|Test|E|Lead 45129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045130|145130|989898|1|9999045130|MR|Test|E|Lead 45130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045131|145131|989898|1|9999045131|MR|Test|E|Lead 45131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045132|145132|989898|1|9999045132|MR|Test|E|Lead 45132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045133|145133|989898|1|9999045133|MR|Test|E|Lead 45133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045134|145134|989898|1|9999045134|MR|Test|E|Lead 45134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045135|145135|989898|1|9999045135|MR|Test|E|Lead 45135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045136|145136|989898|1|9999045136|MR|Test|E|Lead 45136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045137|145137|989898|1|9999045137|MR|Test|E|Lead 45137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045138|145138|989898|1|9999045138|MR|Test|E|Lead 45138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045139|145139|989898|1|9999045139|MR|Test|E|Lead 45139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045140|145140|989898|1|9999045140|MR|Test|E|Lead 45140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045141|145141|989898|1|9999045141|MR|Test|E|Lead 45141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045142|145142|989898|1|9999045142|MR|Test|E|Lead 45142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045143|145143|989898|1|9999045143|MR|Test|E|Lead 45143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045144|145144|989898|1|9999045144|MR|Test|E|Lead 45144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045145|145145|989898|1|9999045145|MR|Test|E|Lead 45145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045146|145146|989898|1|9999045146|MR|Test|E|Lead 45146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045147|145147|989898|1|9999045147|MR|Test|E|Lead 45147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045148|145148|989898|1|9999045148|MR|Test|E|Lead 45148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045149|145149|989898|1|9999045149|MR|Test|E|Lead 45149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045150|145150|989898|1|9999045150|MR|Test|E|Lead 45150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045151|145151|989898|1|9999045151|MR|Test|E|Lead 45151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045152|145152|989898|1|9999045152|MR|Test|E|Lead 45152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045153|145153|989898|1|9999045153|MR|Test|E|Lead 45153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045154|145154|989898|1|9999045154|MR|Test|E|Lead 45154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045155|145155|989898|1|9999045155|MR|Test|E|Lead 45155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045156|145156|989898|1|9999045156|MR|Test|E|Lead 45156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045157|145157|989898|1|9999045157|MR|Test|E|Lead 45157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045158|145158|989898|1|9999045158|MR|Test|E|Lead 45158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045159|145159|989898|1|9999045159|MR|Test|E|Lead 45159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045160|145160|989898|1|9999045160|MR|Test|E|Lead 45160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045161|145161|989898|1|9999045161|MR|Test|E|Lead 45161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045162|145162|989898|1|9999045162|MR|Test|E|Lead 45162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045163|145163|989898|1|9999045163|MR|Test|E|Lead 45163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045164|145164|989898|1|9999045164|MR|Test|E|Lead 45164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045165|145165|989898|1|9999045165|MR|Test|E|Lead 45165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045166|145166|989898|1|9999045166|MR|Test|E|Lead 45166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045167|145167|989898|1|9999045167|MR|Test|E|Lead 45167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045168|145168|989898|1|9999045168|MR|Test|E|Lead 45168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045169|145169|989898|1|9999045169|MR|Test|E|Lead 45169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045170|145170|989898|1|9999045170|MR|Test|E|Lead 45170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045171|145171|989898|1|9999045171|MR|Test|E|Lead 45171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045172|145172|989898|1|9999045172|MR|Test|E|Lead 45172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045173|145173|989898|1|9999045173|MR|Test|E|Lead 45173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045174|145174|989898|1|9999045174|MR|Test|E|Lead 45174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045175|145175|989898|1|9999045175|MR|Test|E|Lead 45175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045176|145176|989898|1|9999045176|MR|Test|E|Lead 45176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045177|145177|989898|1|9999045177|MR|Test|E|Lead 45177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045178|145178|989898|1|9999045178|MR|Test|E|Lead 45178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045179|145179|989898|1|9999045179|MR|Test|E|Lead 45179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045180|145180|989898|1|9999045180|MR|Test|E|Lead 45180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045181|145181|989898|1|9999045181|MR|Test|E|Lead 45181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045182|145182|989898|1|9999045182|MR|Test|E|Lead 45182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045183|145183|989898|1|9999045183|MR|Test|E|Lead 45183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045184|145184|989898|1|9999045184|MR|Test|E|Lead 45184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045185|145185|989898|1|9999045185|MR|Test|E|Lead 45185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045186|145186|989898|1|9999045186|MR|Test|E|Lead 45186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045187|145187|989898|1|9999045187|MR|Test|E|Lead 45187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045188|145188|989898|1|9999045188|MR|Test|E|Lead 45188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045189|145189|989898|1|9999045189|MR|Test|E|Lead 45189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045190|145190|989898|1|9999045190|MR|Test|E|Lead 45190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045191|145191|989898|1|9999045191|MR|Test|E|Lead 45191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045192|145192|989898|1|9999045192|MR|Test|E|Lead 45192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045193|145193|989898|1|9999045193|MR|Test|E|Lead 45193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045194|145194|989898|1|9999045194|MR|Test|E|Lead 45194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045195|145195|989898|1|9999045195|MR|Test|E|Lead 45195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045196|145196|989898|1|9999045196|MR|Test|E|Lead 45196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045197|145197|989898|1|9999045197|MR|Test|E|Lead 45197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045198|145198|989898|1|9999045198|MR|Test|E|Lead 45198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045199|145199|989898|1|9999045199|MR|Test|E|Lead 45199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045200|145200|989898|1|9999045200|MR|Test|E|Lead 45200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045201|145201|989898|1|9999045201|MR|Test|E|Lead 45201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045202|145202|989898|1|9999045202|MR|Test|E|Lead 45202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045203|145203|989898|1|9999045203|MR|Test|E|Lead 45203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045204|145204|989898|1|9999045204|MR|Test|E|Lead 45204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045205|145205|989898|1|9999045205|MR|Test|E|Lead 45205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045206|145206|989898|1|9999045206|MR|Test|E|Lead 45206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045207|145207|989898|1|9999045207|MR|Test|E|Lead 45207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045208|145208|989898|1|9999045208|MR|Test|E|Lead 45208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045209|145209|989898|1|9999045209|MR|Test|E|Lead 45209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045210|145210|989898|1|9999045210|MR|Test|E|Lead 45210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045211|145211|989898|1|9999045211|MR|Test|E|Lead 45211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045212|145212|989898|1|9999045212|MR|Test|E|Lead 45212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045213|145213|989898|1|9999045213|MR|Test|E|Lead 45213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045214|145214|989898|1|9999045214|MR|Test|E|Lead 45214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045215|145215|989898|1|9999045215|MR|Test|E|Lead 45215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045216|145216|989898|1|9999045216|MR|Test|E|Lead 45216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045217|145217|989898|1|9999045217|MR|Test|E|Lead 45217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045218|145218|989898|1|9999045218|MR|Test|E|Lead 45218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045219|145219|989898|1|9999045219|MR|Test|E|Lead 45219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045220|145220|989898|1|9999045220|MR|Test|E|Lead 45220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045221|145221|989898|1|9999045221|MR|Test|E|Lead 45221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045222|145222|989898|1|9999045222|MR|Test|E|Lead 45222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045223|145223|989898|1|9999045223|MR|Test|E|Lead 45223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045224|145224|989898|1|9999045224|MR|Test|E|Lead 45224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045225|145225|989898|1|9999045225|MR|Test|E|Lead 45225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045226|145226|989898|1|9999045226|MR|Test|E|Lead 45226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045227|145227|989898|1|9999045227|MR|Test|E|Lead 45227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045228|145228|989898|1|9999045228|MR|Test|E|Lead 45228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045229|145229|989898|1|9999045229|MR|Test|E|Lead 45229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045230|145230|989898|1|9999045230|MR|Test|E|Lead 45230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045231|145231|989898|1|9999045231|MR|Test|E|Lead 45231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045232|145232|989898|1|9999045232|MR|Test|E|Lead 45232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045233|145233|989898|1|9999045233|MR|Test|E|Lead 45233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045234|145234|989898|1|9999045234|MR|Test|E|Lead 45234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045235|145235|989898|1|9999045235|MR|Test|E|Lead 45235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045236|145236|989898|1|9999045236|MR|Test|E|Lead 45236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045237|145237|989898|1|9999045237|MR|Test|E|Lead 45237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045238|145238|989898|1|9999045238|MR|Test|E|Lead 45238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045239|145239|989898|1|9999045239|MR|Test|E|Lead 45239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045240|145240|989898|1|9999045240|MR|Test|E|Lead 45240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045241|145241|989898|1|9999045241|MR|Test|E|Lead 45241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045242|145242|989898|1|9999045242|MR|Test|E|Lead 45242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045243|145243|989898|1|9999045243|MR|Test|E|Lead 45243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045244|145244|989898|1|9999045244|MR|Test|E|Lead 45244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045245|145245|989898|1|9999045245|MR|Test|E|Lead 45245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045246|145246|989898|1|9999045246|MR|Test|E|Lead 45246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045247|145247|989898|1|9999045247|MR|Test|E|Lead 45247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045248|145248|989898|1|9999045248|MR|Test|E|Lead 45248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045249|145249|989898|1|9999045249|MR|Test|E|Lead 45249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045250|145250|989898|1|9999045250|MR|Test|E|Lead 45250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045251|145251|989898|1|9999045251|MR|Test|E|Lead 45251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045252|145252|989898|1|9999045252|MR|Test|E|Lead 45252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045253|145253|989898|1|9999045253|MR|Test|E|Lead 45253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045254|145254|989898|1|9999045254|MR|Test|E|Lead 45254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045255|145255|989898|1|9999045255|MR|Test|E|Lead 45255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045256|145256|989898|1|9999045256|MR|Test|E|Lead 45256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045257|145257|989898|1|9999045257|MR|Test|E|Lead 45257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045258|145258|989898|1|9999045258|MR|Test|E|Lead 45258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045259|145259|989898|1|9999045259|MR|Test|E|Lead 45259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045260|145260|989898|1|9999045260|MR|Test|E|Lead 45260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045261|145261|989898|1|9999045261|MR|Test|E|Lead 45261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045262|145262|989898|1|9999045262|MR|Test|E|Lead 45262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045263|145263|989898|1|9999045263|MR|Test|E|Lead 45263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045264|145264|989898|1|9999045264|MR|Test|E|Lead 45264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045265|145265|989898|1|9999045265|MR|Test|E|Lead 45265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045266|145266|989898|1|9999045266|MR|Test|E|Lead 45266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045267|145267|989898|1|9999045267|MR|Test|E|Lead 45267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045268|145268|989898|1|9999045268|MR|Test|E|Lead 45268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045269|145269|989898|1|9999045269|MR|Test|E|Lead 45269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045270|145270|989898|1|9999045270|MR|Test|E|Lead 45270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045271|145271|989898|1|9999045271|MR|Test|E|Lead 45271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045272|145272|989898|1|9999045272|MR|Test|E|Lead 45272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045273|145273|989898|1|9999045273|MR|Test|E|Lead 45273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045274|145274|989898|1|9999045274|MR|Test|E|Lead 45274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045275|145275|989898|1|9999045275|MR|Test|E|Lead 45275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045276|145276|989898|1|9999045276|MR|Test|E|Lead 45276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045277|145277|989898|1|9999045277|MR|Test|E|Lead 45277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045278|145278|989898|1|9999045278|MR|Test|E|Lead 45278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045279|145279|989898|1|9999045279|MR|Test|E|Lead 45279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045280|145280|989898|1|9999045280|MR|Test|E|Lead 45280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045281|145281|989898|1|9999045281|MR|Test|E|Lead 45281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045282|145282|989898|1|9999045282|MR|Test|E|Lead 45282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045283|145283|989898|1|9999045283|MR|Test|E|Lead 45283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045284|145284|989898|1|9999045284|MR|Test|E|Lead 45284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045285|145285|989898|1|9999045285|MR|Test|E|Lead 45285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045286|145286|989898|1|9999045286|MR|Test|E|Lead 45286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045287|145287|989898|1|9999045287|MR|Test|E|Lead 45287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045288|145288|989898|1|9999045288|MR|Test|E|Lead 45288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045289|145289|989898|1|9999045289|MR|Test|E|Lead 45289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045290|145290|989898|1|9999045290|MR|Test|E|Lead 45290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045291|145291|989898|1|9999045291|MR|Test|E|Lead 45291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045292|145292|989898|1|9999045292|MR|Test|E|Lead 45292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045293|145293|989898|1|9999045293|MR|Test|E|Lead 45293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045294|145294|989898|1|9999045294|MR|Test|E|Lead 45294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045295|145295|989898|1|9999045295|MR|Test|E|Lead 45295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045296|145296|989898|1|9999045296|MR|Test|E|Lead 45296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045297|145297|989898|1|9999045297|MR|Test|E|Lead 45297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045298|145298|989898|1|9999045298|MR|Test|E|Lead 45298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045299|145299|989898|1|9999045299|MR|Test|E|Lead 45299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045300|145300|989898|1|9999045300|MR|Test|E|Lead 45300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045301|145301|989898|1|9999045301|MR|Test|E|Lead 45301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045302|145302|989898|1|9999045302|MR|Test|E|Lead 45302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045303|145303|989898|1|9999045303|MR|Test|E|Lead 45303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045304|145304|989898|1|9999045304|MR|Test|E|Lead 45304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045305|145305|989898|1|9999045305|MR|Test|E|Lead 45305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045306|145306|989898|1|9999045306|MR|Test|E|Lead 45306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045307|145307|989898|1|9999045307|MR|Test|E|Lead 45307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045308|145308|989898|1|9999045308|MR|Test|E|Lead 45308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045309|145309|989898|1|9999045309|MR|Test|E|Lead 45309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045310|145310|989898|1|9999045310|MR|Test|E|Lead 45310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045311|145311|989898|1|9999045311|MR|Test|E|Lead 45311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045312|145312|989898|1|9999045312|MR|Test|E|Lead 45312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045313|145313|989898|1|9999045313|MR|Test|E|Lead 45313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045314|145314|989898|1|9999045314|MR|Test|E|Lead 45314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045315|145315|989898|1|9999045315|MR|Test|E|Lead 45315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045316|145316|989898|1|9999045316|MR|Test|E|Lead 45316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045317|145317|989898|1|9999045317|MR|Test|E|Lead 45317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045318|145318|989898|1|9999045318|MR|Test|E|Lead 45318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045319|145319|989898|1|9999045319|MR|Test|E|Lead 45319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045320|145320|989898|1|9999045320|MR|Test|E|Lead 45320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045321|145321|989898|1|9999045321|MR|Test|E|Lead 45321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045322|145322|989898|1|9999045322|MR|Test|E|Lead 45322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045323|145323|989898|1|9999045323|MR|Test|E|Lead 45323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045324|145324|989898|1|9999045324|MR|Test|E|Lead 45324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045325|145325|989898|1|9999045325|MR|Test|E|Lead 45325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045326|145326|989898|1|9999045326|MR|Test|E|Lead 45326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045327|145327|989898|1|9999045327|MR|Test|E|Lead 45327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045328|145328|989898|1|9999045328|MR|Test|E|Lead 45328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045329|145329|989898|1|9999045329|MR|Test|E|Lead 45329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045330|145330|989898|1|9999045330|MR|Test|E|Lead 45330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045331|145331|989898|1|9999045331|MR|Test|E|Lead 45331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045332|145332|989898|1|9999045332|MR|Test|E|Lead 45332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045333|145333|989898|1|9999045333|MR|Test|E|Lead 45333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045334|145334|989898|1|9999045334|MR|Test|E|Lead 45334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045335|145335|989898|1|9999045335|MR|Test|E|Lead 45335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045336|145336|989898|1|9999045336|MR|Test|E|Lead 45336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045337|145337|989898|1|9999045337|MR|Test|E|Lead 45337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045338|145338|989898|1|9999045338|MR|Test|E|Lead 45338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045339|145339|989898|1|9999045339|MR|Test|E|Lead 45339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045340|145340|989898|1|9999045340|MR|Test|E|Lead 45340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045341|145341|989898|1|9999045341|MR|Test|E|Lead 45341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045342|145342|989898|1|9999045342|MR|Test|E|Lead 45342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045343|145343|989898|1|9999045343|MR|Test|E|Lead 45343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045344|145344|989898|1|9999045344|MR|Test|E|Lead 45344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045345|145345|989898|1|9999045345|MR|Test|E|Lead 45345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045346|145346|989898|1|9999045346|MR|Test|E|Lead 45346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045347|145347|989898|1|9999045347|MR|Test|E|Lead 45347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045348|145348|989898|1|9999045348|MR|Test|E|Lead 45348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045349|145349|989898|1|9999045349|MR|Test|E|Lead 45349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045350|145350|989898|1|9999045350|MR|Test|E|Lead 45350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045351|145351|989898|1|9999045351|MR|Test|E|Lead 45351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045352|145352|989898|1|9999045352|MR|Test|E|Lead 45352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045353|145353|989898|1|9999045353|MR|Test|E|Lead 45353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045354|145354|989898|1|9999045354|MR|Test|E|Lead 45354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045355|145355|989898|1|9999045355|MR|Test|E|Lead 45355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045356|145356|989898|1|9999045356|MR|Test|E|Lead 45356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045357|145357|989898|1|9999045357|MR|Test|E|Lead 45357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045358|145358|989898|1|9999045358|MR|Test|E|Lead 45358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045359|145359|989898|1|9999045359|MR|Test|E|Lead 45359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045360|145360|989898|1|9999045360|MR|Test|E|Lead 45360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045361|145361|989898|1|9999045361|MR|Test|E|Lead 45361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045362|145362|989898|1|9999045362|MR|Test|E|Lead 45362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045363|145363|989898|1|9999045363|MR|Test|E|Lead 45363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045364|145364|989898|1|9999045364|MR|Test|E|Lead 45364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045365|145365|989898|1|9999045365|MR|Test|E|Lead 45365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045366|145366|989898|1|9999045366|MR|Test|E|Lead 45366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045367|145367|989898|1|9999045367|MR|Test|E|Lead 45367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045368|145368|989898|1|9999045368|MR|Test|E|Lead 45368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045369|145369|989898|1|9999045369|MR|Test|E|Lead 45369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045370|145370|989898|1|9999045370|MR|Test|E|Lead 45370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045371|145371|989898|1|9999045371|MR|Test|E|Lead 45371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045372|145372|989898|1|9999045372|MR|Test|E|Lead 45372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045373|145373|989898|1|9999045373|MR|Test|E|Lead 45373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045374|145374|989898|1|9999045374|MR|Test|E|Lead 45374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045375|145375|989898|1|9999045375|MR|Test|E|Lead 45375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045376|145376|989898|1|9999045376|MR|Test|E|Lead 45376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045377|145377|989898|1|9999045377|MR|Test|E|Lead 45377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045378|145378|989898|1|9999045378|MR|Test|E|Lead 45378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045379|145379|989898|1|9999045379|MR|Test|E|Lead 45379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045380|145380|989898|1|9999045380|MR|Test|E|Lead 45380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045381|145381|989898|1|9999045381|MR|Test|E|Lead 45381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045382|145382|989898|1|9999045382|MR|Test|E|Lead 45382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045383|145383|989898|1|9999045383|MR|Test|E|Lead 45383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045384|145384|989898|1|9999045384|MR|Test|E|Lead 45384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045385|145385|989898|1|9999045385|MR|Test|E|Lead 45385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045386|145386|989898|1|9999045386|MR|Test|E|Lead 45386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045387|145387|989898|1|9999045387|MR|Test|E|Lead 45387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045388|145388|989898|1|9999045388|MR|Test|E|Lead 45388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045389|145389|989898|1|9999045389|MR|Test|E|Lead 45389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045390|145390|989898|1|9999045390|MR|Test|E|Lead 45390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045391|145391|989898|1|9999045391|MR|Test|E|Lead 45391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045392|145392|989898|1|9999045392|MR|Test|E|Lead 45392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045393|145393|989898|1|9999045393|MR|Test|E|Lead 45393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045394|145394|989898|1|9999045394|MR|Test|E|Lead 45394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045395|145395|989898|1|9999045395|MR|Test|E|Lead 45395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045396|145396|989898|1|9999045396|MR|Test|E|Lead 45396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045397|145397|989898|1|9999045397|MR|Test|E|Lead 45397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045398|145398|989898|1|9999045398|MR|Test|E|Lead 45398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045399|145399|989898|1|9999045399|MR|Test|E|Lead 45399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045400|145400|989898|1|9999045400|MR|Test|E|Lead 45400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045401|145401|989898|1|9999045401|MR|Test|E|Lead 45401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045402|145402|989898|1|9999045402|MR|Test|E|Lead 45402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045403|145403|989898|1|9999045403|MR|Test|E|Lead 45403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045404|145404|989898|1|9999045404|MR|Test|E|Lead 45404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045405|145405|989898|1|9999045405|MR|Test|E|Lead 45405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045406|145406|989898|1|9999045406|MR|Test|E|Lead 45406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045407|145407|989898|1|9999045407|MR|Test|E|Lead 45407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045408|145408|989898|1|9999045408|MR|Test|E|Lead 45408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045409|145409|989898|1|9999045409|MR|Test|E|Lead 45409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045410|145410|989898|1|9999045410|MR|Test|E|Lead 45410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045411|145411|989898|1|9999045411|MR|Test|E|Lead 45411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045412|145412|989898|1|9999045412|MR|Test|E|Lead 45412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045413|145413|989898|1|9999045413|MR|Test|E|Lead 45413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045414|145414|989898|1|9999045414|MR|Test|E|Lead 45414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045415|145415|989898|1|9999045415|MR|Test|E|Lead 45415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045416|145416|989898|1|9999045416|MR|Test|E|Lead 45416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045417|145417|989898|1|9999045417|MR|Test|E|Lead 45417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045418|145418|989898|1|9999045418|MR|Test|E|Lead 45418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045419|145419|989898|1|9999045419|MR|Test|E|Lead 45419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045420|145420|989898|1|9999045420|MR|Test|E|Lead 45420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045421|145421|989898|1|9999045421|MR|Test|E|Lead 45421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045422|145422|989898|1|9999045422|MR|Test|E|Lead 45422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045423|145423|989898|1|9999045423|MR|Test|E|Lead 45423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045424|145424|989898|1|9999045424|MR|Test|E|Lead 45424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045425|145425|989898|1|9999045425|MR|Test|E|Lead 45425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045426|145426|989898|1|9999045426|MR|Test|E|Lead 45426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045427|145427|989898|1|9999045427|MR|Test|E|Lead 45427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045428|145428|989898|1|9999045428|MR|Test|E|Lead 45428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045429|145429|989898|1|9999045429|MR|Test|E|Lead 45429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045430|145430|989898|1|9999045430|MR|Test|E|Lead 45430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045431|145431|989898|1|9999045431|MR|Test|E|Lead 45431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045432|145432|989898|1|9999045432|MR|Test|E|Lead 45432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045433|145433|989898|1|9999045433|MR|Test|E|Lead 45433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045434|145434|989898|1|9999045434|MR|Test|E|Lead 45434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045435|145435|989898|1|9999045435|MR|Test|E|Lead 45435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045436|145436|989898|1|9999045436|MR|Test|E|Lead 45436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045437|145437|989898|1|9999045437|MR|Test|E|Lead 45437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045438|145438|989898|1|9999045438|MR|Test|E|Lead 45438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045439|145439|989898|1|9999045439|MR|Test|E|Lead 45439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045440|145440|989898|1|9999045440|MR|Test|E|Lead 45440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045441|145441|989898|1|9999045441|MR|Test|E|Lead 45441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045442|145442|989898|1|9999045442|MR|Test|E|Lead 45442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045443|145443|989898|1|9999045443|MR|Test|E|Lead 45443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045444|145444|989898|1|9999045444|MR|Test|E|Lead 45444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045445|145445|989898|1|9999045445|MR|Test|E|Lead 45445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045446|145446|989898|1|9999045446|MR|Test|E|Lead 45446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045447|145447|989898|1|9999045447|MR|Test|E|Lead 45447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045448|145448|989898|1|9999045448|MR|Test|E|Lead 45448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045449|145449|989898|1|9999045449|MR|Test|E|Lead 45449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045450|145450|989898|1|9999045450|MR|Test|E|Lead 45450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045451|145451|989898|1|9999045451|MR|Test|E|Lead 45451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045452|145452|989898|1|9999045452|MR|Test|E|Lead 45452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045453|145453|989898|1|9999045453|MR|Test|E|Lead 45453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045454|145454|989898|1|9999045454|MR|Test|E|Lead 45454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045455|145455|989898|1|9999045455|MR|Test|E|Lead 45455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045456|145456|989898|1|9999045456|MR|Test|E|Lead 45456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045457|145457|989898|1|9999045457|MR|Test|E|Lead 45457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045458|145458|989898|1|9999045458|MR|Test|E|Lead 45458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045459|145459|989898|1|9999045459|MR|Test|E|Lead 45459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045460|145460|989898|1|9999045460|MR|Test|E|Lead 45460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045461|145461|989898|1|9999045461|MR|Test|E|Lead 45461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045462|145462|989898|1|9999045462|MR|Test|E|Lead 45462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045463|145463|989898|1|9999045463|MR|Test|E|Lead 45463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045464|145464|989898|1|9999045464|MR|Test|E|Lead 45464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045465|145465|989898|1|9999045465|MR|Test|E|Lead 45465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045466|145466|989898|1|9999045466|MR|Test|E|Lead 45466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045467|145467|989898|1|9999045467|MR|Test|E|Lead 45467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045468|145468|989898|1|9999045468|MR|Test|E|Lead 45468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045469|145469|989898|1|9999045469|MR|Test|E|Lead 45469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045470|145470|989898|1|9999045470|MR|Test|E|Lead 45470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045471|145471|989898|1|9999045471|MR|Test|E|Lead 45471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045472|145472|989898|1|9999045472|MR|Test|E|Lead 45472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045473|145473|989898|1|9999045473|MR|Test|E|Lead 45473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045474|145474|989898|1|9999045474|MR|Test|E|Lead 45474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045475|145475|989898|1|9999045475|MR|Test|E|Lead 45475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045476|145476|989898|1|9999045476|MR|Test|E|Lead 45476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045477|145477|989898|1|9999045477|MR|Test|E|Lead 45477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045478|145478|989898|1|9999045478|MR|Test|E|Lead 45478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045479|145479|989898|1|9999045479|MR|Test|E|Lead 45479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045480|145480|989898|1|9999045480|MR|Test|E|Lead 45480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045481|145481|989898|1|9999045481|MR|Test|E|Lead 45481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045482|145482|989898|1|9999045482|MR|Test|E|Lead 45482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045483|145483|989898|1|9999045483|MR|Test|E|Lead 45483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045484|145484|989898|1|9999045484|MR|Test|E|Lead 45484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045485|145485|989898|1|9999045485|MR|Test|E|Lead 45485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045486|145486|989898|1|9999045486|MR|Test|E|Lead 45486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045487|145487|989898|1|9999045487|MR|Test|E|Lead 45487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045488|145488|989898|1|9999045488|MR|Test|E|Lead 45488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045489|145489|989898|1|9999045489|MR|Test|E|Lead 45489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045490|145490|989898|1|9999045490|MR|Test|E|Lead 45490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045491|145491|989898|1|9999045491|MR|Test|E|Lead 45491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045492|145492|989898|1|9999045492|MR|Test|E|Lead 45492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045493|145493|989898|1|9999045493|MR|Test|E|Lead 45493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045494|145494|989898|1|9999045494|MR|Test|E|Lead 45494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045495|145495|989898|1|9999045495|MR|Test|E|Lead 45495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045496|145496|989898|1|9999045496|MR|Test|E|Lead 45496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045497|145497|989898|1|9999045497|MR|Test|E|Lead 45497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045498|145498|989898|1|9999045498|MR|Test|E|Lead 45498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045499|145499|989898|1|9999045499|MR|Test|E|Lead 45499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045500|145500|989898|1|9999045500|MR|Test|E|Lead 45500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045501|145501|989898|1|9999045501|MR|Test|E|Lead 45501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045502|145502|989898|1|9999045502|MR|Test|E|Lead 45502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045503|145503|989898|1|9999045503|MR|Test|E|Lead 45503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045504|145504|989898|1|9999045504|MR|Test|E|Lead 45504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045505|145505|989898|1|9999045505|MR|Test|E|Lead 45505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045506|145506|989898|1|9999045506|MR|Test|E|Lead 45506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045507|145507|989898|1|9999045507|MR|Test|E|Lead 45507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045508|145508|989898|1|9999045508|MR|Test|E|Lead 45508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045509|145509|989898|1|9999045509|MR|Test|E|Lead 45509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045510|145510|989898|1|9999045510|MR|Test|E|Lead 45510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045511|145511|989898|1|9999045511|MR|Test|E|Lead 45511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045512|145512|989898|1|9999045512|MR|Test|E|Lead 45512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045513|145513|989898|1|9999045513|MR|Test|E|Lead 45513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045514|145514|989898|1|9999045514|MR|Test|E|Lead 45514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045515|145515|989898|1|9999045515|MR|Test|E|Lead 45515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045516|145516|989898|1|9999045516|MR|Test|E|Lead 45516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045517|145517|989898|1|9999045517|MR|Test|E|Lead 45517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045518|145518|989898|1|9999045518|MR|Test|E|Lead 45518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045519|145519|989898|1|9999045519|MR|Test|E|Lead 45519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045520|145520|989898|1|9999045520|MR|Test|E|Lead 45520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045521|145521|989898|1|9999045521|MR|Test|E|Lead 45521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045522|145522|989898|1|9999045522|MR|Test|E|Lead 45522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045523|145523|989898|1|9999045523|MR|Test|E|Lead 45523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045524|145524|989898|1|9999045524|MR|Test|E|Lead 45524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045525|145525|989898|1|9999045525|MR|Test|E|Lead 45525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045526|145526|989898|1|9999045526|MR|Test|E|Lead 45526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045527|145527|989898|1|9999045527|MR|Test|E|Lead 45527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045528|145528|989898|1|9999045528|MR|Test|E|Lead 45528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045529|145529|989898|1|9999045529|MR|Test|E|Lead 45529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045530|145530|989898|1|9999045530|MR|Test|E|Lead 45530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045531|145531|989898|1|9999045531|MR|Test|E|Lead 45531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045532|145532|989898|1|9999045532|MR|Test|E|Lead 45532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045533|145533|989898|1|9999045533|MR|Test|E|Lead 45533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045534|145534|989898|1|9999045534|MR|Test|E|Lead 45534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045535|145535|989898|1|9999045535|MR|Test|E|Lead 45535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045536|145536|989898|1|9999045536|MR|Test|E|Lead 45536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045537|145537|989898|1|9999045537|MR|Test|E|Lead 45537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045538|145538|989898|1|9999045538|MR|Test|E|Lead 45538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045539|145539|989898|1|9999045539|MR|Test|E|Lead 45539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045540|145540|989898|1|9999045540|MR|Test|E|Lead 45540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045541|145541|989898|1|9999045541|MR|Test|E|Lead 45541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045542|145542|989898|1|9999045542|MR|Test|E|Lead 45542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045543|145543|989898|1|9999045543|MR|Test|E|Lead 45543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045544|145544|989898|1|9999045544|MR|Test|E|Lead 45544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045545|145545|989898|1|9999045545|MR|Test|E|Lead 45545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045546|145546|989898|1|9999045546|MR|Test|E|Lead 45546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045547|145547|989898|1|9999045547|MR|Test|E|Lead 45547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045548|145548|989898|1|9999045548|MR|Test|E|Lead 45548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045549|145549|989898|1|9999045549|MR|Test|E|Lead 45549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045550|145550|989898|1|9999045550|MR|Test|E|Lead 45550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045551|145551|989898|1|9999045551|MR|Test|E|Lead 45551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045552|145552|989898|1|9999045552|MR|Test|E|Lead 45552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045553|145553|989898|1|9999045553|MR|Test|E|Lead 45553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045554|145554|989898|1|9999045554|MR|Test|E|Lead 45554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045555|145555|989898|1|9999045555|MR|Test|E|Lead 45555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045556|145556|989898|1|9999045556|MR|Test|E|Lead 45556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045557|145557|989898|1|9999045557|MR|Test|E|Lead 45557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045558|145558|989898|1|9999045558|MR|Test|E|Lead 45558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045559|145559|989898|1|9999045559|MR|Test|E|Lead 45559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045560|145560|989898|1|9999045560|MR|Test|E|Lead 45560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045561|145561|989898|1|9999045561|MR|Test|E|Lead 45561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045562|145562|989898|1|9999045562|MR|Test|E|Lead 45562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045563|145563|989898|1|9999045563|MR|Test|E|Lead 45563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045564|145564|989898|1|9999045564|MR|Test|E|Lead 45564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045565|145565|989898|1|9999045565|MR|Test|E|Lead 45565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045566|145566|989898|1|9999045566|MR|Test|E|Lead 45566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045567|145567|989898|1|9999045567|MR|Test|E|Lead 45567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045568|145568|989898|1|9999045568|MR|Test|E|Lead 45568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045569|145569|989898|1|9999045569|MR|Test|E|Lead 45569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045570|145570|989898|1|9999045570|MR|Test|E|Lead 45570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045571|145571|989898|1|9999045571|MR|Test|E|Lead 45571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045572|145572|989898|1|9999045572|MR|Test|E|Lead 45572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045573|145573|989898|1|9999045573|MR|Test|E|Lead 45573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045574|145574|989898|1|9999045574|MR|Test|E|Lead 45574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045575|145575|989898|1|9999045575|MR|Test|E|Lead 45575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045576|145576|989898|1|9999045576|MR|Test|E|Lead 45576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045577|145577|989898|1|9999045577|MR|Test|E|Lead 45577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045578|145578|989898|1|9999045578|MR|Test|E|Lead 45578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045579|145579|989898|1|9999045579|MR|Test|E|Lead 45579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045580|145580|989898|1|9999045580|MR|Test|E|Lead 45580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045581|145581|989898|1|9999045581|MR|Test|E|Lead 45581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045582|145582|989898|1|9999045582|MR|Test|E|Lead 45582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045583|145583|989898|1|9999045583|MR|Test|E|Lead 45583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045584|145584|989898|1|9999045584|MR|Test|E|Lead 45584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045585|145585|989898|1|9999045585|MR|Test|E|Lead 45585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045586|145586|989898|1|9999045586|MR|Test|E|Lead 45586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045587|145587|989898|1|9999045587|MR|Test|E|Lead 45587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045588|145588|989898|1|9999045588|MR|Test|E|Lead 45588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045589|145589|989898|1|9999045589|MR|Test|E|Lead 45589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045590|145590|989898|1|9999045590|MR|Test|E|Lead 45590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045591|145591|989898|1|9999045591|MR|Test|E|Lead 45591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045592|145592|989898|1|9999045592|MR|Test|E|Lead 45592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045593|145593|989898|1|9999045593|MR|Test|E|Lead 45593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045594|145594|989898|1|9999045594|MR|Test|E|Lead 45594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045595|145595|989898|1|9999045595|MR|Test|E|Lead 45595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045596|145596|989898|1|9999045596|MR|Test|E|Lead 45596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045597|145597|989898|1|9999045597|MR|Test|E|Lead 45597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045598|145598|989898|1|9999045598|MR|Test|E|Lead 45598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045599|145599|989898|1|9999045599|MR|Test|E|Lead 45599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045600|145600|989898|1|9999045600|MR|Test|E|Lead 45600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045601|145601|989898|1|9999045601|MR|Test|E|Lead 45601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045602|145602|989898|1|9999045602|MR|Test|E|Lead 45602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045603|145603|989898|1|9999045603|MR|Test|E|Lead 45603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045604|145604|989898|1|9999045604|MR|Test|E|Lead 45604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045605|145605|989898|1|9999045605|MR|Test|E|Lead 45605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045606|145606|989898|1|9999045606|MR|Test|E|Lead 45606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045607|145607|989898|1|9999045607|MR|Test|E|Lead 45607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045608|145608|989898|1|9999045608|MR|Test|E|Lead 45608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045609|145609|989898|1|9999045609|MR|Test|E|Lead 45609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045610|145610|989898|1|9999045610|MR|Test|E|Lead 45610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045611|145611|989898|1|9999045611|MR|Test|E|Lead 45611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045612|145612|989898|1|9999045612|MR|Test|E|Lead 45612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045613|145613|989898|1|9999045613|MR|Test|E|Lead 45613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045614|145614|989898|1|9999045614|MR|Test|E|Lead 45614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045615|145615|989898|1|9999045615|MR|Test|E|Lead 45615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045616|145616|989898|1|9999045616|MR|Test|E|Lead 45616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045617|145617|989898|1|9999045617|MR|Test|E|Lead 45617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045618|145618|989898|1|9999045618|MR|Test|E|Lead 45618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045619|145619|989898|1|9999045619|MR|Test|E|Lead 45619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045620|145620|989898|1|9999045620|MR|Test|E|Lead 45620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045621|145621|989898|1|9999045621|MR|Test|E|Lead 45621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045622|145622|989898|1|9999045622|MR|Test|E|Lead 45622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045623|145623|989898|1|9999045623|MR|Test|E|Lead 45623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045624|145624|989898|1|9999045624|MR|Test|E|Lead 45624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045625|145625|989898|1|9999045625|MR|Test|E|Lead 45625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045626|145626|989898|1|9999045626|MR|Test|E|Lead 45626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045627|145627|989898|1|9999045627|MR|Test|E|Lead 45627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045628|145628|989898|1|9999045628|MR|Test|E|Lead 45628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045629|145629|989898|1|9999045629|MR|Test|E|Lead 45629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045630|145630|989898|1|9999045630|MR|Test|E|Lead 45630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045631|145631|989898|1|9999045631|MR|Test|E|Lead 45631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045632|145632|989898|1|9999045632|MR|Test|E|Lead 45632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045633|145633|989898|1|9999045633|MR|Test|E|Lead 45633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045634|145634|989898|1|9999045634|MR|Test|E|Lead 45634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045635|145635|989898|1|9999045635|MR|Test|E|Lead 45635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045636|145636|989898|1|9999045636|MR|Test|E|Lead 45636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045637|145637|989898|1|9999045637|MR|Test|E|Lead 45637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045638|145638|989898|1|9999045638|MR|Test|E|Lead 45638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045639|145639|989898|1|9999045639|MR|Test|E|Lead 45639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045640|145640|989898|1|9999045640|MR|Test|E|Lead 45640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045641|145641|989898|1|9999045641|MR|Test|E|Lead 45641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045642|145642|989898|1|9999045642|MR|Test|E|Lead 45642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045643|145643|989898|1|9999045643|MR|Test|E|Lead 45643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045644|145644|989898|1|9999045644|MR|Test|E|Lead 45644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045645|145645|989898|1|9999045645|MR|Test|E|Lead 45645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045646|145646|989898|1|9999045646|MR|Test|E|Lead 45646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045647|145647|989898|1|9999045647|MR|Test|E|Lead 45647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045648|145648|989898|1|9999045648|MR|Test|E|Lead 45648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045649|145649|989898|1|9999045649|MR|Test|E|Lead 45649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045650|145650|989898|1|9999045650|MR|Test|E|Lead 45650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045651|145651|989898|1|9999045651|MR|Test|E|Lead 45651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045652|145652|989898|1|9999045652|MR|Test|E|Lead 45652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045653|145653|989898|1|9999045653|MR|Test|E|Lead 45653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045654|145654|989898|1|9999045654|MR|Test|E|Lead 45654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045655|145655|989898|1|9999045655|MR|Test|E|Lead 45655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045656|145656|989898|1|9999045656|MR|Test|E|Lead 45656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045657|145657|989898|1|9999045657|MR|Test|E|Lead 45657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045658|145658|989898|1|9999045658|MR|Test|E|Lead 45658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045659|145659|989898|1|9999045659|MR|Test|E|Lead 45659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045660|145660|989898|1|9999045660|MR|Test|E|Lead 45660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045661|145661|989898|1|9999045661|MR|Test|E|Lead 45661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045662|145662|989898|1|9999045662|MR|Test|E|Lead 45662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045663|145663|989898|1|9999045663|MR|Test|E|Lead 45663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045664|145664|989898|1|9999045664|MR|Test|E|Lead 45664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045665|145665|989898|1|9999045665|MR|Test|E|Lead 45665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045666|145666|989898|1|9999045666|MR|Test|E|Lead 45666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045667|145667|989898|1|9999045667|MR|Test|E|Lead 45667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045668|145668|989898|1|9999045668|MR|Test|E|Lead 45668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045669|145669|989898|1|9999045669|MR|Test|E|Lead 45669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045670|145670|989898|1|9999045670|MR|Test|E|Lead 45670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045671|145671|989898|1|9999045671|MR|Test|E|Lead 45671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045672|145672|989898|1|9999045672|MR|Test|E|Lead 45672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045673|145673|989898|1|9999045673|MR|Test|E|Lead 45673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045674|145674|989898|1|9999045674|MR|Test|E|Lead 45674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045675|145675|989898|1|9999045675|MR|Test|E|Lead 45675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045676|145676|989898|1|9999045676|MR|Test|E|Lead 45676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045677|145677|989898|1|9999045677|MR|Test|E|Lead 45677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045678|145678|989898|1|9999045678|MR|Test|E|Lead 45678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045679|145679|989898|1|9999045679|MR|Test|E|Lead 45679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045680|145680|989898|1|9999045680|MR|Test|E|Lead 45680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045681|145681|989898|1|9999045681|MR|Test|E|Lead 45681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045682|145682|989898|1|9999045682|MR|Test|E|Lead 45682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045683|145683|989898|1|9999045683|MR|Test|E|Lead 45683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045684|145684|989898|1|9999045684|MR|Test|E|Lead 45684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045685|145685|989898|1|9999045685|MR|Test|E|Lead 45685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045686|145686|989898|1|9999045686|MR|Test|E|Lead 45686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045687|145687|989898|1|9999045687|MR|Test|E|Lead 45687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045688|145688|989898|1|9999045688|MR|Test|E|Lead 45688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045689|145689|989898|1|9999045689|MR|Test|E|Lead 45689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045690|145690|989898|1|9999045690|MR|Test|E|Lead 45690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045691|145691|989898|1|9999045691|MR|Test|E|Lead 45691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045692|145692|989898|1|9999045692|MR|Test|E|Lead 45692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045693|145693|989898|1|9999045693|MR|Test|E|Lead 45693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045694|145694|989898|1|9999045694|MR|Test|E|Lead 45694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045695|145695|989898|1|9999045695|MR|Test|E|Lead 45695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045696|145696|989898|1|9999045696|MR|Test|E|Lead 45696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045697|145697|989898|1|9999045697|MR|Test|E|Lead 45697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045698|145698|989898|1|9999045698|MR|Test|E|Lead 45698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045699|145699|989898|1|9999045699|MR|Test|E|Lead 45699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045700|145700|989898|1|9999045700|MR|Test|E|Lead 45700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045701|145701|989898|1|9999045701|MR|Test|E|Lead 45701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045702|145702|989898|1|9999045702|MR|Test|E|Lead 45702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045703|145703|989898|1|9999045703|MR|Test|E|Lead 45703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045704|145704|989898|1|9999045704|MR|Test|E|Lead 45704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045705|145705|989898|1|9999045705|MR|Test|E|Lead 45705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045706|145706|989898|1|9999045706|MR|Test|E|Lead 45706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045707|145707|989898|1|9999045707|MR|Test|E|Lead 45707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045708|145708|989898|1|9999045708|MR|Test|E|Lead 45708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045709|145709|989898|1|9999045709|MR|Test|E|Lead 45709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045710|145710|989898|1|9999045710|MR|Test|E|Lead 45710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045711|145711|989898|1|9999045711|MR|Test|E|Lead 45711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045712|145712|989898|1|9999045712|MR|Test|E|Lead 45712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045713|145713|989898|1|9999045713|MR|Test|E|Lead 45713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045714|145714|989898|1|9999045714|MR|Test|E|Lead 45714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045715|145715|989898|1|9999045715|MR|Test|E|Lead 45715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045716|145716|989898|1|9999045716|MR|Test|E|Lead 45716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045717|145717|989898|1|9999045717|MR|Test|E|Lead 45717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045718|145718|989898|1|9999045718|MR|Test|E|Lead 45718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045719|145719|989898|1|9999045719|MR|Test|E|Lead 45719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045720|145720|989898|1|9999045720|MR|Test|E|Lead 45720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045721|145721|989898|1|9999045721|MR|Test|E|Lead 45721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045722|145722|989898|1|9999045722|MR|Test|E|Lead 45722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045723|145723|989898|1|9999045723|MR|Test|E|Lead 45723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045724|145724|989898|1|9999045724|MR|Test|E|Lead 45724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045725|145725|989898|1|9999045725|MR|Test|E|Lead 45725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045726|145726|989898|1|9999045726|MR|Test|E|Lead 45726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045727|145727|989898|1|9999045727|MR|Test|E|Lead 45727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045728|145728|989898|1|9999045728|MR|Test|E|Lead 45728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045729|145729|989898|1|9999045729|MR|Test|E|Lead 45729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045730|145730|989898|1|9999045730|MR|Test|E|Lead 45730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045731|145731|989898|1|9999045731|MR|Test|E|Lead 45731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045732|145732|989898|1|9999045732|MR|Test|E|Lead 45732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045733|145733|989898|1|9999045733|MR|Test|E|Lead 45733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045734|145734|989898|1|9999045734|MR|Test|E|Lead 45734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045735|145735|989898|1|9999045735|MR|Test|E|Lead 45735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045736|145736|989898|1|9999045736|MR|Test|E|Lead 45736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045737|145737|989898|1|9999045737|MR|Test|E|Lead 45737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045738|145738|989898|1|9999045738|MR|Test|E|Lead 45738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045739|145739|989898|1|9999045739|MR|Test|E|Lead 45739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045740|145740|989898|1|9999045740|MR|Test|E|Lead 45740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045741|145741|989898|1|9999045741|MR|Test|E|Lead 45741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045742|145742|989898|1|9999045742|MR|Test|E|Lead 45742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045743|145743|989898|1|9999045743|MR|Test|E|Lead 45743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045744|145744|989898|1|9999045744|MR|Test|E|Lead 45744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045745|145745|989898|1|9999045745|MR|Test|E|Lead 45745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045746|145746|989898|1|9999045746|MR|Test|E|Lead 45746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045747|145747|989898|1|9999045747|MR|Test|E|Lead 45747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045748|145748|989898|1|9999045748|MR|Test|E|Lead 45748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045749|145749|989898|1|9999045749|MR|Test|E|Lead 45749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045750|145750|989898|1|9999045750|MR|Test|E|Lead 45750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045751|145751|989898|1|9999045751|MR|Test|E|Lead 45751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045752|145752|989898|1|9999045752|MR|Test|E|Lead 45752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045753|145753|989898|1|9999045753|MR|Test|E|Lead 45753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045754|145754|989898|1|9999045754|MR|Test|E|Lead 45754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045755|145755|989898|1|9999045755|MR|Test|E|Lead 45755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045756|145756|989898|1|9999045756|MR|Test|E|Lead 45756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045757|145757|989898|1|9999045757|MR|Test|E|Lead 45757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045758|145758|989898|1|9999045758|MR|Test|E|Lead 45758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045759|145759|989898|1|9999045759|MR|Test|E|Lead 45759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045760|145760|989898|1|9999045760|MR|Test|E|Lead 45760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045761|145761|989898|1|9999045761|MR|Test|E|Lead 45761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045762|145762|989898|1|9999045762|MR|Test|E|Lead 45762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045763|145763|989898|1|9999045763|MR|Test|E|Lead 45763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045764|145764|989898|1|9999045764|MR|Test|E|Lead 45764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045765|145765|989898|1|9999045765|MR|Test|E|Lead 45765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045766|145766|989898|1|9999045766|MR|Test|E|Lead 45766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045767|145767|989898|1|9999045767|MR|Test|E|Lead 45767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045768|145768|989898|1|9999045768|MR|Test|E|Lead 45768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045769|145769|989898|1|9999045769|MR|Test|E|Lead 45769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045770|145770|989898|1|9999045770|MR|Test|E|Lead 45770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045771|145771|989898|1|9999045771|MR|Test|E|Lead 45771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045772|145772|989898|1|9999045772|MR|Test|E|Lead 45772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045773|145773|989898|1|9999045773|MR|Test|E|Lead 45773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045774|145774|989898|1|9999045774|MR|Test|E|Lead 45774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045775|145775|989898|1|9999045775|MR|Test|E|Lead 45775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045776|145776|989898|1|9999045776|MR|Test|E|Lead 45776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045777|145777|989898|1|9999045777|MR|Test|E|Lead 45777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045778|145778|989898|1|9999045778|MR|Test|E|Lead 45778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045779|145779|989898|1|9999045779|MR|Test|E|Lead 45779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045780|145780|989898|1|9999045780|MR|Test|E|Lead 45780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045781|145781|989898|1|9999045781|MR|Test|E|Lead 45781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045782|145782|989898|1|9999045782|MR|Test|E|Lead 45782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045783|145783|989898|1|9999045783|MR|Test|E|Lead 45783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045784|145784|989898|1|9999045784|MR|Test|E|Lead 45784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045785|145785|989898|1|9999045785|MR|Test|E|Lead 45785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045786|145786|989898|1|9999045786|MR|Test|E|Lead 45786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045787|145787|989898|1|9999045787|MR|Test|E|Lead 45787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045788|145788|989898|1|9999045788|MR|Test|E|Lead 45788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045789|145789|989898|1|9999045789|MR|Test|E|Lead 45789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045790|145790|989898|1|9999045790|MR|Test|E|Lead 45790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045791|145791|989898|1|9999045791|MR|Test|E|Lead 45791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045792|145792|989898|1|9999045792|MR|Test|E|Lead 45792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045793|145793|989898|1|9999045793|MR|Test|E|Lead 45793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045794|145794|989898|1|9999045794|MR|Test|E|Lead 45794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045795|145795|989898|1|9999045795|MR|Test|E|Lead 45795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045796|145796|989898|1|9999045796|MR|Test|E|Lead 45796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045797|145797|989898|1|9999045797|MR|Test|E|Lead 45797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045798|145798|989898|1|9999045798|MR|Test|E|Lead 45798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045799|145799|989898|1|9999045799|MR|Test|E|Lead 45799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045800|145800|989898|1|9999045800|MR|Test|E|Lead 45800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045801|145801|989898|1|9999045801|MR|Test|E|Lead 45801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045802|145802|989898|1|9999045802|MR|Test|E|Lead 45802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045803|145803|989898|1|9999045803|MR|Test|E|Lead 45803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045804|145804|989898|1|9999045804|MR|Test|E|Lead 45804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045805|145805|989898|1|9999045805|MR|Test|E|Lead 45805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045806|145806|989898|1|9999045806|MR|Test|E|Lead 45806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045807|145807|989898|1|9999045807|MR|Test|E|Lead 45807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045808|145808|989898|1|9999045808|MR|Test|E|Lead 45808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045809|145809|989898|1|9999045809|MR|Test|E|Lead 45809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045810|145810|989898|1|9999045810|MR|Test|E|Lead 45810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045811|145811|989898|1|9999045811|MR|Test|E|Lead 45811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045812|145812|989898|1|9999045812|MR|Test|E|Lead 45812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045813|145813|989898|1|9999045813|MR|Test|E|Lead 45813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045814|145814|989898|1|9999045814|MR|Test|E|Lead 45814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045815|145815|989898|1|9999045815|MR|Test|E|Lead 45815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045816|145816|989898|1|9999045816|MR|Test|E|Lead 45816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045817|145817|989898|1|9999045817|MR|Test|E|Lead 45817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045818|145818|989898|1|9999045818|MR|Test|E|Lead 45818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045819|145819|989898|1|9999045819|MR|Test|E|Lead 45819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045820|145820|989898|1|9999045820|MR|Test|E|Lead 45820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045821|145821|989898|1|9999045821|MR|Test|E|Lead 45821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045822|145822|989898|1|9999045822|MR|Test|E|Lead 45822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045823|145823|989898|1|9999045823|MR|Test|E|Lead 45823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045824|145824|989898|1|9999045824|MR|Test|E|Lead 45824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045825|145825|989898|1|9999045825|MR|Test|E|Lead 45825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045826|145826|989898|1|9999045826|MR|Test|E|Lead 45826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045827|145827|989898|1|9999045827|MR|Test|E|Lead 45827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045828|145828|989898|1|9999045828|MR|Test|E|Lead 45828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045829|145829|989898|1|9999045829|MR|Test|E|Lead 45829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045830|145830|989898|1|9999045830|MR|Test|E|Lead 45830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045831|145831|989898|1|9999045831|MR|Test|E|Lead 45831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045832|145832|989898|1|9999045832|MR|Test|E|Lead 45832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045833|145833|989898|1|9999045833|MR|Test|E|Lead 45833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045834|145834|989898|1|9999045834|MR|Test|E|Lead 45834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045835|145835|989898|1|9999045835|MR|Test|E|Lead 45835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045836|145836|989898|1|9999045836|MR|Test|E|Lead 45836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045837|145837|989898|1|9999045837|MR|Test|E|Lead 45837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045838|145838|989898|1|9999045838|MR|Test|E|Lead 45838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045839|145839|989898|1|9999045839|MR|Test|E|Lead 45839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045840|145840|989898|1|9999045840|MR|Test|E|Lead 45840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045841|145841|989898|1|9999045841|MR|Test|E|Lead 45841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045842|145842|989898|1|9999045842|MR|Test|E|Lead 45842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045843|145843|989898|1|9999045843|MR|Test|E|Lead 45843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045844|145844|989898|1|9999045844|MR|Test|E|Lead 45844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045845|145845|989898|1|9999045845|MR|Test|E|Lead 45845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045846|145846|989898|1|9999045846|MR|Test|E|Lead 45846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045847|145847|989898|1|9999045847|MR|Test|E|Lead 45847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045848|145848|989898|1|9999045848|MR|Test|E|Lead 45848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045849|145849|989898|1|9999045849|MR|Test|E|Lead 45849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045850|145850|989898|1|9999045850|MR|Test|E|Lead 45850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045851|145851|989898|1|9999045851|MR|Test|E|Lead 45851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045852|145852|989898|1|9999045852|MR|Test|E|Lead 45852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045853|145853|989898|1|9999045853|MR|Test|E|Lead 45853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045854|145854|989898|1|9999045854|MR|Test|E|Lead 45854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045855|145855|989898|1|9999045855|MR|Test|E|Lead 45855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045856|145856|989898|1|9999045856|MR|Test|E|Lead 45856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045857|145857|989898|1|9999045857|MR|Test|E|Lead 45857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045858|145858|989898|1|9999045858|MR|Test|E|Lead 45858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045859|145859|989898|1|9999045859|MR|Test|E|Lead 45859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045860|145860|989898|1|9999045860|MR|Test|E|Lead 45860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045861|145861|989898|1|9999045861|MR|Test|E|Lead 45861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045862|145862|989898|1|9999045862|MR|Test|E|Lead 45862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045863|145863|989898|1|9999045863|MR|Test|E|Lead 45863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045864|145864|989898|1|9999045864|MR|Test|E|Lead 45864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045865|145865|989898|1|9999045865|MR|Test|E|Lead 45865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045866|145866|989898|1|9999045866|MR|Test|E|Lead 45866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045867|145867|989898|1|9999045867|MR|Test|E|Lead 45867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045868|145868|989898|1|9999045868|MR|Test|E|Lead 45868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045869|145869|989898|1|9999045869|MR|Test|E|Lead 45869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045870|145870|989898|1|9999045870|MR|Test|E|Lead 45870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045871|145871|989898|1|9999045871|MR|Test|E|Lead 45871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045872|145872|989898|1|9999045872|MR|Test|E|Lead 45872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045873|145873|989898|1|9999045873|MR|Test|E|Lead 45873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045874|145874|989898|1|9999045874|MR|Test|E|Lead 45874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045875|145875|989898|1|9999045875|MR|Test|E|Lead 45875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045876|145876|989898|1|9999045876|MR|Test|E|Lead 45876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045877|145877|989898|1|9999045877|MR|Test|E|Lead 45877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045878|145878|989898|1|9999045878|MR|Test|E|Lead 45878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045879|145879|989898|1|9999045879|MR|Test|E|Lead 45879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045880|145880|989898|1|9999045880|MR|Test|E|Lead 45880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045881|145881|989898|1|9999045881|MR|Test|E|Lead 45881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045882|145882|989898|1|9999045882|MR|Test|E|Lead 45882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045883|145883|989898|1|9999045883|MR|Test|E|Lead 45883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045884|145884|989898|1|9999045884|MR|Test|E|Lead 45884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045885|145885|989898|1|9999045885|MR|Test|E|Lead 45885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045886|145886|989898|1|9999045886|MR|Test|E|Lead 45886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045887|145887|989898|1|9999045887|MR|Test|E|Lead 45887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045888|145888|989898|1|9999045888|MR|Test|E|Lead 45888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045889|145889|989898|1|9999045889|MR|Test|E|Lead 45889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045890|145890|989898|1|9999045890|MR|Test|E|Lead 45890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045891|145891|989898|1|9999045891|MR|Test|E|Lead 45891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045892|145892|989898|1|9999045892|MR|Test|E|Lead 45892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045893|145893|989898|1|9999045893|MR|Test|E|Lead 45893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045894|145894|989898|1|9999045894|MR|Test|E|Lead 45894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045895|145895|989898|1|9999045895|MR|Test|E|Lead 45895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045896|145896|989898|1|9999045896|MR|Test|E|Lead 45896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045897|145897|989898|1|9999045897|MR|Test|E|Lead 45897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045898|145898|989898|1|9999045898|MR|Test|E|Lead 45898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045899|145899|989898|1|9999045899|MR|Test|E|Lead 45899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045900|145900|989898|1|9999045900|MR|Test|E|Lead 45900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045901|145901|989898|1|9999045901|MR|Test|E|Lead 45901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045902|145902|989898|1|9999045902|MR|Test|E|Lead 45902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045903|145903|989898|1|9999045903|MR|Test|E|Lead 45903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045904|145904|989898|1|9999045904|MR|Test|E|Lead 45904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045905|145905|989898|1|9999045905|MR|Test|E|Lead 45905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045906|145906|989898|1|9999045906|MR|Test|E|Lead 45906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045907|145907|989898|1|9999045907|MR|Test|E|Lead 45907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045908|145908|989898|1|9999045908|MR|Test|E|Lead 45908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045909|145909|989898|1|9999045909|MR|Test|E|Lead 45909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045910|145910|989898|1|9999045910|MR|Test|E|Lead 45910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045911|145911|989898|1|9999045911|MR|Test|E|Lead 45911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045912|145912|989898|1|9999045912|MR|Test|E|Lead 45912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045913|145913|989898|1|9999045913|MR|Test|E|Lead 45913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045914|145914|989898|1|9999045914|MR|Test|E|Lead 45914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045915|145915|989898|1|9999045915|MR|Test|E|Lead 45915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045916|145916|989898|1|9999045916|MR|Test|E|Lead 45916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045917|145917|989898|1|9999045917|MR|Test|E|Lead 45917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045918|145918|989898|1|9999045918|MR|Test|E|Lead 45918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045919|145919|989898|1|9999045919|MR|Test|E|Lead 45919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045920|145920|989898|1|9999045920|MR|Test|E|Lead 45920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045921|145921|989898|1|9999045921|MR|Test|E|Lead 45921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045922|145922|989898|1|9999045922|MR|Test|E|Lead 45922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045923|145923|989898|1|9999045923|MR|Test|E|Lead 45923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045924|145924|989898|1|9999045924|MR|Test|E|Lead 45924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045925|145925|989898|1|9999045925|MR|Test|E|Lead 45925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045926|145926|989898|1|9999045926|MR|Test|E|Lead 45926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045927|145927|989898|1|9999045927|MR|Test|E|Lead 45927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045928|145928|989898|1|9999045928|MR|Test|E|Lead 45928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045929|145929|989898|1|9999045929|MR|Test|E|Lead 45929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045930|145930|989898|1|9999045930|MR|Test|E|Lead 45930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045931|145931|989898|1|9999045931|MR|Test|E|Lead 45931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045932|145932|989898|1|9999045932|MR|Test|E|Lead 45932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045933|145933|989898|1|9999045933|MR|Test|E|Lead 45933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045934|145934|989898|1|9999045934|MR|Test|E|Lead 45934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045935|145935|989898|1|9999045935|MR|Test|E|Lead 45935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045936|145936|989898|1|9999045936|MR|Test|E|Lead 45936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045937|145937|989898|1|9999045937|MR|Test|E|Lead 45937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045938|145938|989898|1|9999045938|MR|Test|E|Lead 45938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045939|145939|989898|1|9999045939|MR|Test|E|Lead 45939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045940|145940|989898|1|9999045940|MR|Test|E|Lead 45940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045941|145941|989898|1|9999045941|MR|Test|E|Lead 45941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045942|145942|989898|1|9999045942|MR|Test|E|Lead 45942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045943|145943|989898|1|9999045943|MR|Test|E|Lead 45943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045944|145944|989898|1|9999045944|MR|Test|E|Lead 45944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045945|145945|989898|1|9999045945|MR|Test|E|Lead 45945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045946|145946|989898|1|9999045946|MR|Test|E|Lead 45946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045947|145947|989898|1|9999045947|MR|Test|E|Lead 45947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045948|145948|989898|1|9999045948|MR|Test|E|Lead 45948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045949|145949|989898|1|9999045949|MR|Test|E|Lead 45949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045950|145950|989898|1|9999045950|MR|Test|E|Lead 45950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045951|145951|989898|1|9999045951|MR|Test|E|Lead 45951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045952|145952|989898|1|9999045952|MR|Test|E|Lead 45952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045953|145953|989898|1|9999045953|MR|Test|E|Lead 45953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045954|145954|989898|1|9999045954|MR|Test|E|Lead 45954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045955|145955|989898|1|9999045955|MR|Test|E|Lead 45955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045956|145956|989898|1|9999045956|MR|Test|E|Lead 45956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045957|145957|989898|1|9999045957|MR|Test|E|Lead 45957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045958|145958|989898|1|9999045958|MR|Test|E|Lead 45958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045959|145959|989898|1|9999045959|MR|Test|E|Lead 45959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045960|145960|989898|1|9999045960|MR|Test|E|Lead 45960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045961|145961|989898|1|9999045961|MR|Test|E|Lead 45961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045962|145962|989898|1|9999045962|MR|Test|E|Lead 45962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045963|145963|989898|1|9999045963|MR|Test|E|Lead 45963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045964|145964|989898|1|9999045964|MR|Test|E|Lead 45964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045965|145965|989898|1|9999045965|MR|Test|E|Lead 45965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045966|145966|989898|1|9999045966|MR|Test|E|Lead 45966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045967|145967|989898|1|9999045967|MR|Test|E|Lead 45967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045968|145968|989898|1|9999045968|MR|Test|E|Lead 45968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045969|145969|989898|1|9999045969|MR|Test|E|Lead 45969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045970|145970|989898|1|9999045970|MR|Test|E|Lead 45970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045971|145971|989898|1|9999045971|MR|Test|E|Lead 45971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045972|145972|989898|1|9999045972|MR|Test|E|Lead 45972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045973|145973|989898|1|9999045973|MR|Test|E|Lead 45973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045974|145974|989898|1|9999045974|MR|Test|E|Lead 45974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045975|145975|989898|1|9999045975|MR|Test|E|Lead 45975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045976|145976|989898|1|9999045976|MR|Test|E|Lead 45976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045977|145977|989898|1|9999045977|MR|Test|E|Lead 45977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045978|145978|989898|1|9999045978|MR|Test|E|Lead 45978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045979|145979|989898|1|9999045979|MR|Test|E|Lead 45979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045980|145980|989898|1|9999045980|MR|Test|E|Lead 45980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045981|145981|989898|1|9999045981|MR|Test|E|Lead 45981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045982|145982|989898|1|9999045982|MR|Test|E|Lead 45982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045983|145983|989898|1|9999045983|MR|Test|E|Lead 45983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045984|145984|989898|1|9999045984|MR|Test|E|Lead 45984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045985|145985|989898|1|9999045985|MR|Test|E|Lead 45985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045986|145986|989898|1|9999045986|MR|Test|E|Lead 45986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045987|145987|989898|1|9999045987|MR|Test|E|Lead 45987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045988|145988|989898|1|9999045988|MR|Test|E|Lead 45988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045989|145989|989898|1|9999045989|MR|Test|E|Lead 45989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045990|145990|989898|1|9999045990|MR|Test|E|Lead 45990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045991|145991|989898|1|9999045991|MR|Test|E|Lead 45991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045992|145992|989898|1|9999045992|MR|Test|E|Lead 45992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045993|145993|989898|1|9999045993|MR|Test|E|Lead 45993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045994|145994|989898|1|9999045994|MR|Test|E|Lead 45994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045995|145995|989898|1|9999045995|MR|Test|E|Lead 45995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045996|145996|989898|1|9999045996|MR|Test|E|Lead 45996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045997|145997|989898|1|9999045997|MR|Test|E|Lead 45997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045998|145998|989898|1|9999045998|MR|Test|E|Lead 45998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1045999|145999|989898|1|9999045999|MR|Test|E|Lead 45999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046000|146000|989898|1|9999046000|MR|Test|E|Lead 46000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046001|146001|989898|1|9999046001|MR|Test|E|Lead 46001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046002|146002|989898|1|9999046002|MR|Test|E|Lead 46002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046003|146003|989898|1|9999046003|MR|Test|E|Lead 46003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046004|146004|989898|1|9999046004|MR|Test|E|Lead 46004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046005|146005|989898|1|9999046005|MR|Test|E|Lead 46005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046006|146006|989898|1|9999046006|MR|Test|E|Lead 46006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046007|146007|989898|1|9999046007|MR|Test|E|Lead 46007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046008|146008|989898|1|9999046008|MR|Test|E|Lead 46008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046009|146009|989898|1|9999046009|MR|Test|E|Lead 46009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046010|146010|989898|1|9999046010|MR|Test|E|Lead 46010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046011|146011|989898|1|9999046011|MR|Test|E|Lead 46011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046012|146012|989898|1|9999046012|MR|Test|E|Lead 46012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046013|146013|989898|1|9999046013|MR|Test|E|Lead 46013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046014|146014|989898|1|9999046014|MR|Test|E|Lead 46014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046015|146015|989898|1|9999046015|MR|Test|E|Lead 46015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046016|146016|989898|1|9999046016|MR|Test|E|Lead 46016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046017|146017|989898|1|9999046017|MR|Test|E|Lead 46017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046018|146018|989898|1|9999046018|MR|Test|E|Lead 46018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046019|146019|989898|1|9999046019|MR|Test|E|Lead 46019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046020|146020|989898|1|9999046020|MR|Test|E|Lead 46020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046021|146021|989898|1|9999046021|MR|Test|E|Lead 46021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046022|146022|989898|1|9999046022|MR|Test|E|Lead 46022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046023|146023|989898|1|9999046023|MR|Test|E|Lead 46023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046024|146024|989898|1|9999046024|MR|Test|E|Lead 46024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046025|146025|989898|1|9999046025|MR|Test|E|Lead 46025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046026|146026|989898|1|9999046026|MR|Test|E|Lead 46026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046027|146027|989898|1|9999046027|MR|Test|E|Lead 46027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046028|146028|989898|1|9999046028|MR|Test|E|Lead 46028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046029|146029|989898|1|9999046029|MR|Test|E|Lead 46029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046030|146030|989898|1|9999046030|MR|Test|E|Lead 46030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046031|146031|989898|1|9999046031|MR|Test|E|Lead 46031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046032|146032|989898|1|9999046032|MR|Test|E|Lead 46032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046033|146033|989898|1|9999046033|MR|Test|E|Lead 46033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046034|146034|989898|1|9999046034|MR|Test|E|Lead 46034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046035|146035|989898|1|9999046035|MR|Test|E|Lead 46035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046036|146036|989898|1|9999046036|MR|Test|E|Lead 46036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046037|146037|989898|1|9999046037|MR|Test|E|Lead 46037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046038|146038|989898|1|9999046038|MR|Test|E|Lead 46038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046039|146039|989898|1|9999046039|MR|Test|E|Lead 46039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046040|146040|989898|1|9999046040|MR|Test|E|Lead 46040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046041|146041|989898|1|9999046041|MR|Test|E|Lead 46041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046042|146042|989898|1|9999046042|MR|Test|E|Lead 46042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046043|146043|989898|1|9999046043|MR|Test|E|Lead 46043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046044|146044|989898|1|9999046044|MR|Test|E|Lead 46044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046045|146045|989898|1|9999046045|MR|Test|E|Lead 46045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046046|146046|989898|1|9999046046|MR|Test|E|Lead 46046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046047|146047|989898|1|9999046047|MR|Test|E|Lead 46047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046048|146048|989898|1|9999046048|MR|Test|E|Lead 46048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046049|146049|989898|1|9999046049|MR|Test|E|Lead 46049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046050|146050|989898|1|9999046050|MR|Test|E|Lead 46050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046051|146051|989898|1|9999046051|MR|Test|E|Lead 46051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046052|146052|989898|1|9999046052|MR|Test|E|Lead 46052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046053|146053|989898|1|9999046053|MR|Test|E|Lead 46053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046054|146054|989898|1|9999046054|MR|Test|E|Lead 46054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046055|146055|989898|1|9999046055|MR|Test|E|Lead 46055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046056|146056|989898|1|9999046056|MR|Test|E|Lead 46056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046057|146057|989898|1|9999046057|MR|Test|E|Lead 46057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046058|146058|989898|1|9999046058|MR|Test|E|Lead 46058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046059|146059|989898|1|9999046059|MR|Test|E|Lead 46059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046060|146060|989898|1|9999046060|MR|Test|E|Lead 46060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046061|146061|989898|1|9999046061|MR|Test|E|Lead 46061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046062|146062|989898|1|9999046062|MR|Test|E|Lead 46062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046063|146063|989898|1|9999046063|MR|Test|E|Lead 46063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046064|146064|989898|1|9999046064|MR|Test|E|Lead 46064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046065|146065|989898|1|9999046065|MR|Test|E|Lead 46065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046066|146066|989898|1|9999046066|MR|Test|E|Lead 46066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046067|146067|989898|1|9999046067|MR|Test|E|Lead 46067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046068|146068|989898|1|9999046068|MR|Test|E|Lead 46068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046069|146069|989898|1|9999046069|MR|Test|E|Lead 46069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046070|146070|989898|1|9999046070|MR|Test|E|Lead 46070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046071|146071|989898|1|9999046071|MR|Test|E|Lead 46071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046072|146072|989898|1|9999046072|MR|Test|E|Lead 46072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046073|146073|989898|1|9999046073|MR|Test|E|Lead 46073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046074|146074|989898|1|9999046074|MR|Test|E|Lead 46074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046075|146075|989898|1|9999046075|MR|Test|E|Lead 46075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046076|146076|989898|1|9999046076|MR|Test|E|Lead 46076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046077|146077|989898|1|9999046077|MR|Test|E|Lead 46077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046078|146078|989898|1|9999046078|MR|Test|E|Lead 46078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046079|146079|989898|1|9999046079|MR|Test|E|Lead 46079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046080|146080|989898|1|9999046080|MR|Test|E|Lead 46080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046081|146081|989898|1|9999046081|MR|Test|E|Lead 46081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046082|146082|989898|1|9999046082|MR|Test|E|Lead 46082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046083|146083|989898|1|9999046083|MR|Test|E|Lead 46083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046084|146084|989898|1|9999046084|MR|Test|E|Lead 46084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046085|146085|989898|1|9999046085|MR|Test|E|Lead 46085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046086|146086|989898|1|9999046086|MR|Test|E|Lead 46086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046087|146087|989898|1|9999046087|MR|Test|E|Lead 46087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046088|146088|989898|1|9999046088|MR|Test|E|Lead 46088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046089|146089|989898|1|9999046089|MR|Test|E|Lead 46089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046090|146090|989898|1|9999046090|MR|Test|E|Lead 46090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046091|146091|989898|1|9999046091|MR|Test|E|Lead 46091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046092|146092|989898|1|9999046092|MR|Test|E|Lead 46092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046093|146093|989898|1|9999046093|MR|Test|E|Lead 46093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046094|146094|989898|1|9999046094|MR|Test|E|Lead 46094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046095|146095|989898|1|9999046095|MR|Test|E|Lead 46095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046096|146096|989898|1|9999046096|MR|Test|E|Lead 46096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046097|146097|989898|1|9999046097|MR|Test|E|Lead 46097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046098|146098|989898|1|9999046098|MR|Test|E|Lead 46098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046099|146099|989898|1|9999046099|MR|Test|E|Lead 46099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046100|146100|989898|1|9999046100|MR|Test|E|Lead 46100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046101|146101|989898|1|9999046101|MR|Test|E|Lead 46101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046102|146102|989898|1|9999046102|MR|Test|E|Lead 46102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046103|146103|989898|1|9999046103|MR|Test|E|Lead 46103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046104|146104|989898|1|9999046104|MR|Test|E|Lead 46104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046105|146105|989898|1|9999046105|MR|Test|E|Lead 46105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046106|146106|989898|1|9999046106|MR|Test|E|Lead 46106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046107|146107|989898|1|9999046107|MR|Test|E|Lead 46107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046108|146108|989898|1|9999046108|MR|Test|E|Lead 46108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046109|146109|989898|1|9999046109|MR|Test|E|Lead 46109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046110|146110|989898|1|9999046110|MR|Test|E|Lead 46110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046111|146111|989898|1|9999046111|MR|Test|E|Lead 46111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046112|146112|989898|1|9999046112|MR|Test|E|Lead 46112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046113|146113|989898|1|9999046113|MR|Test|E|Lead 46113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046114|146114|989898|1|9999046114|MR|Test|E|Lead 46114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046115|146115|989898|1|9999046115|MR|Test|E|Lead 46115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046116|146116|989898|1|9999046116|MR|Test|E|Lead 46116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046117|146117|989898|1|9999046117|MR|Test|E|Lead 46117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046118|146118|989898|1|9999046118|MR|Test|E|Lead 46118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046119|146119|989898|1|9999046119|MR|Test|E|Lead 46119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046120|146120|989898|1|9999046120|MR|Test|E|Lead 46120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046121|146121|989898|1|9999046121|MR|Test|E|Lead 46121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046122|146122|989898|1|9999046122|MR|Test|E|Lead 46122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046123|146123|989898|1|9999046123|MR|Test|E|Lead 46123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046124|146124|989898|1|9999046124|MR|Test|E|Lead 46124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046125|146125|989898|1|9999046125|MR|Test|E|Lead 46125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046126|146126|989898|1|9999046126|MR|Test|E|Lead 46126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046127|146127|989898|1|9999046127|MR|Test|E|Lead 46127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046128|146128|989898|1|9999046128|MR|Test|E|Lead 46128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046129|146129|989898|1|9999046129|MR|Test|E|Lead 46129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046130|146130|989898|1|9999046130|MR|Test|E|Lead 46130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046131|146131|989898|1|9999046131|MR|Test|E|Lead 46131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046132|146132|989898|1|9999046132|MR|Test|E|Lead 46132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046133|146133|989898|1|9999046133|MR|Test|E|Lead 46133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046134|146134|989898|1|9999046134|MR|Test|E|Lead 46134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046135|146135|989898|1|9999046135|MR|Test|E|Lead 46135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046136|146136|989898|1|9999046136|MR|Test|E|Lead 46136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046137|146137|989898|1|9999046137|MR|Test|E|Lead 46137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046138|146138|989898|1|9999046138|MR|Test|E|Lead 46138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046139|146139|989898|1|9999046139|MR|Test|E|Lead 46139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046140|146140|989898|1|9999046140|MR|Test|E|Lead 46140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046141|146141|989898|1|9999046141|MR|Test|E|Lead 46141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046142|146142|989898|1|9999046142|MR|Test|E|Lead 46142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046143|146143|989898|1|9999046143|MR|Test|E|Lead 46143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046144|146144|989898|1|9999046144|MR|Test|E|Lead 46144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046145|146145|989898|1|9999046145|MR|Test|E|Lead 46145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046146|146146|989898|1|9999046146|MR|Test|E|Lead 46146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046147|146147|989898|1|9999046147|MR|Test|E|Lead 46147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046148|146148|989898|1|9999046148|MR|Test|E|Lead 46148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046149|146149|989898|1|9999046149|MR|Test|E|Lead 46149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046150|146150|989898|1|9999046150|MR|Test|E|Lead 46150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046151|146151|989898|1|9999046151|MR|Test|E|Lead 46151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046152|146152|989898|1|9999046152|MR|Test|E|Lead 46152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046153|146153|989898|1|9999046153|MR|Test|E|Lead 46153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046154|146154|989898|1|9999046154|MR|Test|E|Lead 46154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046155|146155|989898|1|9999046155|MR|Test|E|Lead 46155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046156|146156|989898|1|9999046156|MR|Test|E|Lead 46156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046157|146157|989898|1|9999046157|MR|Test|E|Lead 46157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046158|146158|989898|1|9999046158|MR|Test|E|Lead 46158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046159|146159|989898|1|9999046159|MR|Test|E|Lead 46159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046160|146160|989898|1|9999046160|MR|Test|E|Lead 46160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046161|146161|989898|1|9999046161|MR|Test|E|Lead 46161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046162|146162|989898|1|9999046162|MR|Test|E|Lead 46162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046163|146163|989898|1|9999046163|MR|Test|E|Lead 46163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046164|146164|989898|1|9999046164|MR|Test|E|Lead 46164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046165|146165|989898|1|9999046165|MR|Test|E|Lead 46165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046166|146166|989898|1|9999046166|MR|Test|E|Lead 46166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046167|146167|989898|1|9999046167|MR|Test|E|Lead 46167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046168|146168|989898|1|9999046168|MR|Test|E|Lead 46168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046169|146169|989898|1|9999046169|MR|Test|E|Lead 46169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046170|146170|989898|1|9999046170|MR|Test|E|Lead 46170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046171|146171|989898|1|9999046171|MR|Test|E|Lead 46171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046172|146172|989898|1|9999046172|MR|Test|E|Lead 46172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046173|146173|989898|1|9999046173|MR|Test|E|Lead 46173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046174|146174|989898|1|9999046174|MR|Test|E|Lead 46174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046175|146175|989898|1|9999046175|MR|Test|E|Lead 46175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046176|146176|989898|1|9999046176|MR|Test|E|Lead 46176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046177|146177|989898|1|9999046177|MR|Test|E|Lead 46177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046178|146178|989898|1|9999046178|MR|Test|E|Lead 46178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046179|146179|989898|1|9999046179|MR|Test|E|Lead 46179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046180|146180|989898|1|9999046180|MR|Test|E|Lead 46180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046181|146181|989898|1|9999046181|MR|Test|E|Lead 46181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046182|146182|989898|1|9999046182|MR|Test|E|Lead 46182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046183|146183|989898|1|9999046183|MR|Test|E|Lead 46183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046184|146184|989898|1|9999046184|MR|Test|E|Lead 46184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046185|146185|989898|1|9999046185|MR|Test|E|Lead 46185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046186|146186|989898|1|9999046186|MR|Test|E|Lead 46186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046187|146187|989898|1|9999046187|MR|Test|E|Lead 46187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046188|146188|989898|1|9999046188|MR|Test|E|Lead 46188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046189|146189|989898|1|9999046189|MR|Test|E|Lead 46189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046190|146190|989898|1|9999046190|MR|Test|E|Lead 46190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046191|146191|989898|1|9999046191|MR|Test|E|Lead 46191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046192|146192|989898|1|9999046192|MR|Test|E|Lead 46192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046193|146193|989898|1|9999046193|MR|Test|E|Lead 46193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046194|146194|989898|1|9999046194|MR|Test|E|Lead 46194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046195|146195|989898|1|9999046195|MR|Test|E|Lead 46195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046196|146196|989898|1|9999046196|MR|Test|E|Lead 46196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046197|146197|989898|1|9999046197|MR|Test|E|Lead 46197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046198|146198|989898|1|9999046198|MR|Test|E|Lead 46198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046199|146199|989898|1|9999046199|MR|Test|E|Lead 46199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046200|146200|989898|1|9999046200|MR|Test|E|Lead 46200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046201|146201|989898|1|9999046201|MR|Test|E|Lead 46201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046202|146202|989898|1|9999046202|MR|Test|E|Lead 46202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046203|146203|989898|1|9999046203|MR|Test|E|Lead 46203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046204|146204|989898|1|9999046204|MR|Test|E|Lead 46204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046205|146205|989898|1|9999046205|MR|Test|E|Lead 46205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046206|146206|989898|1|9999046206|MR|Test|E|Lead 46206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046207|146207|989898|1|9999046207|MR|Test|E|Lead 46207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046208|146208|989898|1|9999046208|MR|Test|E|Lead 46208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046209|146209|989898|1|9999046209|MR|Test|E|Lead 46209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046210|146210|989898|1|9999046210|MR|Test|E|Lead 46210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046211|146211|989898|1|9999046211|MR|Test|E|Lead 46211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046212|146212|989898|1|9999046212|MR|Test|E|Lead 46212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046213|146213|989898|1|9999046213|MR|Test|E|Lead 46213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046214|146214|989898|1|9999046214|MR|Test|E|Lead 46214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046215|146215|989898|1|9999046215|MR|Test|E|Lead 46215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046216|146216|989898|1|9999046216|MR|Test|E|Lead 46216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046217|146217|989898|1|9999046217|MR|Test|E|Lead 46217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046218|146218|989898|1|9999046218|MR|Test|E|Lead 46218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046219|146219|989898|1|9999046219|MR|Test|E|Lead 46219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046220|146220|989898|1|9999046220|MR|Test|E|Lead 46220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046221|146221|989898|1|9999046221|MR|Test|E|Lead 46221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046222|146222|989898|1|9999046222|MR|Test|E|Lead 46222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046223|146223|989898|1|9999046223|MR|Test|E|Lead 46223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046224|146224|989898|1|9999046224|MR|Test|E|Lead 46224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046225|146225|989898|1|9999046225|MR|Test|E|Lead 46225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046226|146226|989898|1|9999046226|MR|Test|E|Lead 46226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046227|146227|989898|1|9999046227|MR|Test|E|Lead 46227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046228|146228|989898|1|9999046228|MR|Test|E|Lead 46228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046229|146229|989898|1|9999046229|MR|Test|E|Lead 46229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046230|146230|989898|1|9999046230|MR|Test|E|Lead 46230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046231|146231|989898|1|9999046231|MR|Test|E|Lead 46231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046232|146232|989898|1|9999046232|MR|Test|E|Lead 46232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046233|146233|989898|1|9999046233|MR|Test|E|Lead 46233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046234|146234|989898|1|9999046234|MR|Test|E|Lead 46234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046235|146235|989898|1|9999046235|MR|Test|E|Lead 46235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046236|146236|989898|1|9999046236|MR|Test|E|Lead 46236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046237|146237|989898|1|9999046237|MR|Test|E|Lead 46237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046238|146238|989898|1|9999046238|MR|Test|E|Lead 46238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046239|146239|989898|1|9999046239|MR|Test|E|Lead 46239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046240|146240|989898|1|9999046240|MR|Test|E|Lead 46240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046241|146241|989898|1|9999046241|MR|Test|E|Lead 46241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046242|146242|989898|1|9999046242|MR|Test|E|Lead 46242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046243|146243|989898|1|9999046243|MR|Test|E|Lead 46243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046244|146244|989898|1|9999046244|MR|Test|E|Lead 46244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046245|146245|989898|1|9999046245|MR|Test|E|Lead 46245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046246|146246|989898|1|9999046246|MR|Test|E|Lead 46246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046247|146247|989898|1|9999046247|MR|Test|E|Lead 46247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046248|146248|989898|1|9999046248|MR|Test|E|Lead 46248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046249|146249|989898|1|9999046249|MR|Test|E|Lead 46249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046250|146250|989898|1|9999046250|MR|Test|E|Lead 46250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046251|146251|989898|1|9999046251|MR|Test|E|Lead 46251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046252|146252|989898|1|9999046252|MR|Test|E|Lead 46252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046253|146253|989898|1|9999046253|MR|Test|E|Lead 46253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046254|146254|989898|1|9999046254|MR|Test|E|Lead 46254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046255|146255|989898|1|9999046255|MR|Test|E|Lead 46255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046256|146256|989898|1|9999046256|MR|Test|E|Lead 46256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046257|146257|989898|1|9999046257|MR|Test|E|Lead 46257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046258|146258|989898|1|9999046258|MR|Test|E|Lead 46258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046259|146259|989898|1|9999046259|MR|Test|E|Lead 46259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046260|146260|989898|1|9999046260|MR|Test|E|Lead 46260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046261|146261|989898|1|9999046261|MR|Test|E|Lead 46261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046262|146262|989898|1|9999046262|MR|Test|E|Lead 46262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046263|146263|989898|1|9999046263|MR|Test|E|Lead 46263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046264|146264|989898|1|9999046264|MR|Test|E|Lead 46264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046265|146265|989898|1|9999046265|MR|Test|E|Lead 46265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046266|146266|989898|1|9999046266|MR|Test|E|Lead 46266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046267|146267|989898|1|9999046267|MR|Test|E|Lead 46267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046268|146268|989898|1|9999046268|MR|Test|E|Lead 46268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046269|146269|989898|1|9999046269|MR|Test|E|Lead 46269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046270|146270|989898|1|9999046270|MR|Test|E|Lead 46270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046271|146271|989898|1|9999046271|MR|Test|E|Lead 46271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046272|146272|989898|1|9999046272|MR|Test|E|Lead 46272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046273|146273|989898|1|9999046273|MR|Test|E|Lead 46273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046274|146274|989898|1|9999046274|MR|Test|E|Lead 46274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046275|146275|989898|1|9999046275|MR|Test|E|Lead 46275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046276|146276|989898|1|9999046276|MR|Test|E|Lead 46276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046277|146277|989898|1|9999046277|MR|Test|E|Lead 46277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046278|146278|989898|1|9999046278|MR|Test|E|Lead 46278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046279|146279|989898|1|9999046279|MR|Test|E|Lead 46279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046280|146280|989898|1|9999046280|MR|Test|E|Lead 46280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046281|146281|989898|1|9999046281|MR|Test|E|Lead 46281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046282|146282|989898|1|9999046282|MR|Test|E|Lead 46282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046283|146283|989898|1|9999046283|MR|Test|E|Lead 46283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046284|146284|989898|1|9999046284|MR|Test|E|Lead 46284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046285|146285|989898|1|9999046285|MR|Test|E|Lead 46285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046286|146286|989898|1|9999046286|MR|Test|E|Lead 46286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046287|146287|989898|1|9999046287|MR|Test|E|Lead 46287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046288|146288|989898|1|9999046288|MR|Test|E|Lead 46288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046289|146289|989898|1|9999046289|MR|Test|E|Lead 46289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046290|146290|989898|1|9999046290|MR|Test|E|Lead 46290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046291|146291|989898|1|9999046291|MR|Test|E|Lead 46291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046292|146292|989898|1|9999046292|MR|Test|E|Lead 46292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046293|146293|989898|1|9999046293|MR|Test|E|Lead 46293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046294|146294|989898|1|9999046294|MR|Test|E|Lead 46294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046295|146295|989898|1|9999046295|MR|Test|E|Lead 46295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046296|146296|989898|1|9999046296|MR|Test|E|Lead 46296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046297|146297|989898|1|9999046297|MR|Test|E|Lead 46297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046298|146298|989898|1|9999046298|MR|Test|E|Lead 46298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046299|146299|989898|1|9999046299|MR|Test|E|Lead 46299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046300|146300|989898|1|9999046300|MR|Test|E|Lead 46300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046301|146301|989898|1|9999046301|MR|Test|E|Lead 46301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046302|146302|989898|1|9999046302|MR|Test|E|Lead 46302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046303|146303|989898|1|9999046303|MR|Test|E|Lead 46303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046304|146304|989898|1|9999046304|MR|Test|E|Lead 46304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046305|146305|989898|1|9999046305|MR|Test|E|Lead 46305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046306|146306|989898|1|9999046306|MR|Test|E|Lead 46306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046307|146307|989898|1|9999046307|MR|Test|E|Lead 46307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046308|146308|989898|1|9999046308|MR|Test|E|Lead 46308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046309|146309|989898|1|9999046309|MR|Test|E|Lead 46309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046310|146310|989898|1|9999046310|MR|Test|E|Lead 46310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046311|146311|989898|1|9999046311|MR|Test|E|Lead 46311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046312|146312|989898|1|9999046312|MR|Test|E|Lead 46312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046313|146313|989898|1|9999046313|MR|Test|E|Lead 46313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046314|146314|989898|1|9999046314|MR|Test|E|Lead 46314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046315|146315|989898|1|9999046315|MR|Test|E|Lead 46315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046316|146316|989898|1|9999046316|MR|Test|E|Lead 46316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046317|146317|989898|1|9999046317|MR|Test|E|Lead 46317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046318|146318|989898|1|9999046318|MR|Test|E|Lead 46318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046319|146319|989898|1|9999046319|MR|Test|E|Lead 46319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046320|146320|989898|1|9999046320|MR|Test|E|Lead 46320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046321|146321|989898|1|9999046321|MR|Test|E|Lead 46321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046322|146322|989898|1|9999046322|MR|Test|E|Lead 46322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046323|146323|989898|1|9999046323|MR|Test|E|Lead 46323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046324|146324|989898|1|9999046324|MR|Test|E|Lead 46324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046325|146325|989898|1|9999046325|MR|Test|E|Lead 46325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046326|146326|989898|1|9999046326|MR|Test|E|Lead 46326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046327|146327|989898|1|9999046327|MR|Test|E|Lead 46327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046328|146328|989898|1|9999046328|MR|Test|E|Lead 46328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046329|146329|989898|1|9999046329|MR|Test|E|Lead 46329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046330|146330|989898|1|9999046330|MR|Test|E|Lead 46330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046331|146331|989898|1|9999046331|MR|Test|E|Lead 46331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046332|146332|989898|1|9999046332|MR|Test|E|Lead 46332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046333|146333|989898|1|9999046333|MR|Test|E|Lead 46333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046334|146334|989898|1|9999046334|MR|Test|E|Lead 46334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046335|146335|989898|1|9999046335|MR|Test|E|Lead 46335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046336|146336|989898|1|9999046336|MR|Test|E|Lead 46336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046337|146337|989898|1|9999046337|MR|Test|E|Lead 46337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046338|146338|989898|1|9999046338|MR|Test|E|Lead 46338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046339|146339|989898|1|9999046339|MR|Test|E|Lead 46339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046340|146340|989898|1|9999046340|MR|Test|E|Lead 46340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046341|146341|989898|1|9999046341|MR|Test|E|Lead 46341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046342|146342|989898|1|9999046342|MR|Test|E|Lead 46342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046343|146343|989898|1|9999046343|MR|Test|E|Lead 46343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046344|146344|989898|1|9999046344|MR|Test|E|Lead 46344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046345|146345|989898|1|9999046345|MR|Test|E|Lead 46345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046346|146346|989898|1|9999046346|MR|Test|E|Lead 46346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046347|146347|989898|1|9999046347|MR|Test|E|Lead 46347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046348|146348|989898|1|9999046348|MR|Test|E|Lead 46348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046349|146349|989898|1|9999046349|MR|Test|E|Lead 46349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046350|146350|989898|1|9999046350|MR|Test|E|Lead 46350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046351|146351|989898|1|9999046351|MR|Test|E|Lead 46351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046352|146352|989898|1|9999046352|MR|Test|E|Lead 46352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046353|146353|989898|1|9999046353|MR|Test|E|Lead 46353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046354|146354|989898|1|9999046354|MR|Test|E|Lead 46354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046355|146355|989898|1|9999046355|MR|Test|E|Lead 46355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046356|146356|989898|1|9999046356|MR|Test|E|Lead 46356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046357|146357|989898|1|9999046357|MR|Test|E|Lead 46357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046358|146358|989898|1|9999046358|MR|Test|E|Lead 46358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046359|146359|989898|1|9999046359|MR|Test|E|Lead 46359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046360|146360|989898|1|9999046360|MR|Test|E|Lead 46360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046361|146361|989898|1|9999046361|MR|Test|E|Lead 46361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046362|146362|989898|1|9999046362|MR|Test|E|Lead 46362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046363|146363|989898|1|9999046363|MR|Test|E|Lead 46363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046364|146364|989898|1|9999046364|MR|Test|E|Lead 46364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046365|146365|989898|1|9999046365|MR|Test|E|Lead 46365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046366|146366|989898|1|9999046366|MR|Test|E|Lead 46366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046367|146367|989898|1|9999046367|MR|Test|E|Lead 46367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046368|146368|989898|1|9999046368|MR|Test|E|Lead 46368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046369|146369|989898|1|9999046369|MR|Test|E|Lead 46369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046370|146370|989898|1|9999046370|MR|Test|E|Lead 46370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046371|146371|989898|1|9999046371|MR|Test|E|Lead 46371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046372|146372|989898|1|9999046372|MR|Test|E|Lead 46372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046373|146373|989898|1|9999046373|MR|Test|E|Lead 46373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046374|146374|989898|1|9999046374|MR|Test|E|Lead 46374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046375|146375|989898|1|9999046375|MR|Test|E|Lead 46375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046376|146376|989898|1|9999046376|MR|Test|E|Lead 46376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046377|146377|989898|1|9999046377|MR|Test|E|Lead 46377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046378|146378|989898|1|9999046378|MR|Test|E|Lead 46378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046379|146379|989898|1|9999046379|MR|Test|E|Lead 46379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046380|146380|989898|1|9999046380|MR|Test|E|Lead 46380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046381|146381|989898|1|9999046381|MR|Test|E|Lead 46381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046382|146382|989898|1|9999046382|MR|Test|E|Lead 46382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046383|146383|989898|1|9999046383|MR|Test|E|Lead 46383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046384|146384|989898|1|9999046384|MR|Test|E|Lead 46384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046385|146385|989898|1|9999046385|MR|Test|E|Lead 46385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046386|146386|989898|1|9999046386|MR|Test|E|Lead 46386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046387|146387|989898|1|9999046387|MR|Test|E|Lead 46387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046388|146388|989898|1|9999046388|MR|Test|E|Lead 46388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046389|146389|989898|1|9999046389|MR|Test|E|Lead 46389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046390|146390|989898|1|9999046390|MR|Test|E|Lead 46390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046391|146391|989898|1|9999046391|MR|Test|E|Lead 46391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046392|146392|989898|1|9999046392|MR|Test|E|Lead 46392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046393|146393|989898|1|9999046393|MR|Test|E|Lead 46393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046394|146394|989898|1|9999046394|MR|Test|E|Lead 46394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046395|146395|989898|1|9999046395|MR|Test|E|Lead 46395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046396|146396|989898|1|9999046396|MR|Test|E|Lead 46396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046397|146397|989898|1|9999046397|MR|Test|E|Lead 46397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046398|146398|989898|1|9999046398|MR|Test|E|Lead 46398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046399|146399|989898|1|9999046399|MR|Test|E|Lead 46399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046400|146400|989898|1|9999046400|MR|Test|E|Lead 46400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046401|146401|989898|1|9999046401|MR|Test|E|Lead 46401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046402|146402|989898|1|9999046402|MR|Test|E|Lead 46402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046403|146403|989898|1|9999046403|MR|Test|E|Lead 46403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046404|146404|989898|1|9999046404|MR|Test|E|Lead 46404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046405|146405|989898|1|9999046405|MR|Test|E|Lead 46405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046406|146406|989898|1|9999046406|MR|Test|E|Lead 46406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046407|146407|989898|1|9999046407|MR|Test|E|Lead 46407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046408|146408|989898|1|9999046408|MR|Test|E|Lead 46408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046409|146409|989898|1|9999046409|MR|Test|E|Lead 46409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046410|146410|989898|1|9999046410|MR|Test|E|Lead 46410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046411|146411|989898|1|9999046411|MR|Test|E|Lead 46411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046412|146412|989898|1|9999046412|MR|Test|E|Lead 46412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046413|146413|989898|1|9999046413|MR|Test|E|Lead 46413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046414|146414|989898|1|9999046414|MR|Test|E|Lead 46414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046415|146415|989898|1|9999046415|MR|Test|E|Lead 46415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046416|146416|989898|1|9999046416|MR|Test|E|Lead 46416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046417|146417|989898|1|9999046417|MR|Test|E|Lead 46417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046418|146418|989898|1|9999046418|MR|Test|E|Lead 46418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046419|146419|989898|1|9999046419|MR|Test|E|Lead 46419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046420|146420|989898|1|9999046420|MR|Test|E|Lead 46420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046421|146421|989898|1|9999046421|MR|Test|E|Lead 46421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046422|146422|989898|1|9999046422|MR|Test|E|Lead 46422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046423|146423|989898|1|9999046423|MR|Test|E|Lead 46423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046424|146424|989898|1|9999046424|MR|Test|E|Lead 46424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046425|146425|989898|1|9999046425|MR|Test|E|Lead 46425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046426|146426|989898|1|9999046426|MR|Test|E|Lead 46426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046427|146427|989898|1|9999046427|MR|Test|E|Lead 46427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046428|146428|989898|1|9999046428|MR|Test|E|Lead 46428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046429|146429|989898|1|9999046429|MR|Test|E|Lead 46429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046430|146430|989898|1|9999046430|MR|Test|E|Lead 46430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046431|146431|989898|1|9999046431|MR|Test|E|Lead 46431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046432|146432|989898|1|9999046432|MR|Test|E|Lead 46432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046433|146433|989898|1|9999046433|MR|Test|E|Lead 46433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046434|146434|989898|1|9999046434|MR|Test|E|Lead 46434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046435|146435|989898|1|9999046435|MR|Test|E|Lead 46435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046436|146436|989898|1|9999046436|MR|Test|E|Lead 46436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046437|146437|989898|1|9999046437|MR|Test|E|Lead 46437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046438|146438|989898|1|9999046438|MR|Test|E|Lead 46438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046439|146439|989898|1|9999046439|MR|Test|E|Lead 46439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046440|146440|989898|1|9999046440|MR|Test|E|Lead 46440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046441|146441|989898|1|9999046441|MR|Test|E|Lead 46441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046442|146442|989898|1|9999046442|MR|Test|E|Lead 46442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046443|146443|989898|1|9999046443|MR|Test|E|Lead 46443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046444|146444|989898|1|9999046444|MR|Test|E|Lead 46444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046445|146445|989898|1|9999046445|MR|Test|E|Lead 46445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046446|146446|989898|1|9999046446|MR|Test|E|Lead 46446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046447|146447|989898|1|9999046447|MR|Test|E|Lead 46447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046448|146448|989898|1|9999046448|MR|Test|E|Lead 46448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046449|146449|989898|1|9999046449|MR|Test|E|Lead 46449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046450|146450|989898|1|9999046450|MR|Test|E|Lead 46450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046451|146451|989898|1|9999046451|MR|Test|E|Lead 46451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046452|146452|989898|1|9999046452|MR|Test|E|Lead 46452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046453|146453|989898|1|9999046453|MR|Test|E|Lead 46453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046454|146454|989898|1|9999046454|MR|Test|E|Lead 46454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046455|146455|989898|1|9999046455|MR|Test|E|Lead 46455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046456|146456|989898|1|9999046456|MR|Test|E|Lead 46456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046457|146457|989898|1|9999046457|MR|Test|E|Lead 46457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046458|146458|989898|1|9999046458|MR|Test|E|Lead 46458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046459|146459|989898|1|9999046459|MR|Test|E|Lead 46459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046460|146460|989898|1|9999046460|MR|Test|E|Lead 46460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046461|146461|989898|1|9999046461|MR|Test|E|Lead 46461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046462|146462|989898|1|9999046462|MR|Test|E|Lead 46462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046463|146463|989898|1|9999046463|MR|Test|E|Lead 46463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046464|146464|989898|1|9999046464|MR|Test|E|Lead 46464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046465|146465|989898|1|9999046465|MR|Test|E|Lead 46465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046466|146466|989898|1|9999046466|MR|Test|E|Lead 46466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046467|146467|989898|1|9999046467|MR|Test|E|Lead 46467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046468|146468|989898|1|9999046468|MR|Test|E|Lead 46468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046469|146469|989898|1|9999046469|MR|Test|E|Lead 46469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046470|146470|989898|1|9999046470|MR|Test|E|Lead 46470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046471|146471|989898|1|9999046471|MR|Test|E|Lead 46471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046472|146472|989898|1|9999046472|MR|Test|E|Lead 46472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046473|146473|989898|1|9999046473|MR|Test|E|Lead 46473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046474|146474|989898|1|9999046474|MR|Test|E|Lead 46474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046475|146475|989898|1|9999046475|MR|Test|E|Lead 46475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046476|146476|989898|1|9999046476|MR|Test|E|Lead 46476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046477|146477|989898|1|9999046477|MR|Test|E|Lead 46477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046478|146478|989898|1|9999046478|MR|Test|E|Lead 46478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046479|146479|989898|1|9999046479|MR|Test|E|Lead 46479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046480|146480|989898|1|9999046480|MR|Test|E|Lead 46480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046481|146481|989898|1|9999046481|MR|Test|E|Lead 46481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046482|146482|989898|1|9999046482|MR|Test|E|Lead 46482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046483|146483|989898|1|9999046483|MR|Test|E|Lead 46483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046484|146484|989898|1|9999046484|MR|Test|E|Lead 46484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046485|146485|989898|1|9999046485|MR|Test|E|Lead 46485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046486|146486|989898|1|9999046486|MR|Test|E|Lead 46486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046487|146487|989898|1|9999046487|MR|Test|E|Lead 46487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046488|146488|989898|1|9999046488|MR|Test|E|Lead 46488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046489|146489|989898|1|9999046489|MR|Test|E|Lead 46489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046490|146490|989898|1|9999046490|MR|Test|E|Lead 46490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046491|146491|989898|1|9999046491|MR|Test|E|Lead 46491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046492|146492|989898|1|9999046492|MR|Test|E|Lead 46492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046493|146493|989898|1|9999046493|MR|Test|E|Lead 46493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046494|146494|989898|1|9999046494|MR|Test|E|Lead 46494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046495|146495|989898|1|9999046495|MR|Test|E|Lead 46495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046496|146496|989898|1|9999046496|MR|Test|E|Lead 46496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046497|146497|989898|1|9999046497|MR|Test|E|Lead 46497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046498|146498|989898|1|9999046498|MR|Test|E|Lead 46498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046499|146499|989898|1|9999046499|MR|Test|E|Lead 46499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046500|146500|989898|1|9999046500|MR|Test|E|Lead 46500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046501|146501|989898|1|9999046501|MR|Test|E|Lead 46501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046502|146502|989898|1|9999046502|MR|Test|E|Lead 46502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046503|146503|989898|1|9999046503|MR|Test|E|Lead 46503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046504|146504|989898|1|9999046504|MR|Test|E|Lead 46504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046505|146505|989898|1|9999046505|MR|Test|E|Lead 46505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046506|146506|989898|1|9999046506|MR|Test|E|Lead 46506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046507|146507|989898|1|9999046507|MR|Test|E|Lead 46507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046508|146508|989898|1|9999046508|MR|Test|E|Lead 46508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046509|146509|989898|1|9999046509|MR|Test|E|Lead 46509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046510|146510|989898|1|9999046510|MR|Test|E|Lead 46510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046511|146511|989898|1|9999046511|MR|Test|E|Lead 46511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046512|146512|989898|1|9999046512|MR|Test|E|Lead 46512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046513|146513|989898|1|9999046513|MR|Test|E|Lead 46513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046514|146514|989898|1|9999046514|MR|Test|E|Lead 46514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046515|146515|989898|1|9999046515|MR|Test|E|Lead 46515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046516|146516|989898|1|9999046516|MR|Test|E|Lead 46516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046517|146517|989898|1|9999046517|MR|Test|E|Lead 46517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046518|146518|989898|1|9999046518|MR|Test|E|Lead 46518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046519|146519|989898|1|9999046519|MR|Test|E|Lead 46519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046520|146520|989898|1|9999046520|MR|Test|E|Lead 46520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046521|146521|989898|1|9999046521|MR|Test|E|Lead 46521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046522|146522|989898|1|9999046522|MR|Test|E|Lead 46522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046523|146523|989898|1|9999046523|MR|Test|E|Lead 46523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046524|146524|989898|1|9999046524|MR|Test|E|Lead 46524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046525|146525|989898|1|9999046525|MR|Test|E|Lead 46525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046526|146526|989898|1|9999046526|MR|Test|E|Lead 46526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046527|146527|989898|1|9999046527|MR|Test|E|Lead 46527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046528|146528|989898|1|9999046528|MR|Test|E|Lead 46528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046529|146529|989898|1|9999046529|MR|Test|E|Lead 46529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046530|146530|989898|1|9999046530|MR|Test|E|Lead 46530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046531|146531|989898|1|9999046531|MR|Test|E|Lead 46531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046532|146532|989898|1|9999046532|MR|Test|E|Lead 46532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046533|146533|989898|1|9999046533|MR|Test|E|Lead 46533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046534|146534|989898|1|9999046534|MR|Test|E|Lead 46534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046535|146535|989898|1|9999046535|MR|Test|E|Lead 46535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046536|146536|989898|1|9999046536|MR|Test|E|Lead 46536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046537|146537|989898|1|9999046537|MR|Test|E|Lead 46537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046538|146538|989898|1|9999046538|MR|Test|E|Lead 46538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046539|146539|989898|1|9999046539|MR|Test|E|Lead 46539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046540|146540|989898|1|9999046540|MR|Test|E|Lead 46540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046541|146541|989898|1|9999046541|MR|Test|E|Lead 46541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046542|146542|989898|1|9999046542|MR|Test|E|Lead 46542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046543|146543|989898|1|9999046543|MR|Test|E|Lead 46543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046544|146544|989898|1|9999046544|MR|Test|E|Lead 46544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046545|146545|989898|1|9999046545|MR|Test|E|Lead 46545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046546|146546|989898|1|9999046546|MR|Test|E|Lead 46546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046547|146547|989898|1|9999046547|MR|Test|E|Lead 46547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046548|146548|989898|1|9999046548|MR|Test|E|Lead 46548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046549|146549|989898|1|9999046549|MR|Test|E|Lead 46549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046550|146550|989898|1|9999046550|MR|Test|E|Lead 46550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046551|146551|989898|1|9999046551|MR|Test|E|Lead 46551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046552|146552|989898|1|9999046552|MR|Test|E|Lead 46552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046553|146553|989898|1|9999046553|MR|Test|E|Lead 46553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046554|146554|989898|1|9999046554|MR|Test|E|Lead 46554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046555|146555|989898|1|9999046555|MR|Test|E|Lead 46555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046556|146556|989898|1|9999046556|MR|Test|E|Lead 46556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046557|146557|989898|1|9999046557|MR|Test|E|Lead 46557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046558|146558|989898|1|9999046558|MR|Test|E|Lead 46558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046559|146559|989898|1|9999046559|MR|Test|E|Lead 46559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046560|146560|989898|1|9999046560|MR|Test|E|Lead 46560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046561|146561|989898|1|9999046561|MR|Test|E|Lead 46561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046562|146562|989898|1|9999046562|MR|Test|E|Lead 46562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046563|146563|989898|1|9999046563|MR|Test|E|Lead 46563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046564|146564|989898|1|9999046564|MR|Test|E|Lead 46564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046565|146565|989898|1|9999046565|MR|Test|E|Lead 46565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046566|146566|989898|1|9999046566|MR|Test|E|Lead 46566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046567|146567|989898|1|9999046567|MR|Test|E|Lead 46567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046568|146568|989898|1|9999046568|MR|Test|E|Lead 46568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046569|146569|989898|1|9999046569|MR|Test|E|Lead 46569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046570|146570|989898|1|9999046570|MR|Test|E|Lead 46570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046571|146571|989898|1|9999046571|MR|Test|E|Lead 46571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046572|146572|989898|1|9999046572|MR|Test|E|Lead 46572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046573|146573|989898|1|9999046573|MR|Test|E|Lead 46573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046574|146574|989898|1|9999046574|MR|Test|E|Lead 46574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046575|146575|989898|1|9999046575|MR|Test|E|Lead 46575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046576|146576|989898|1|9999046576|MR|Test|E|Lead 46576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046577|146577|989898|1|9999046577|MR|Test|E|Lead 46577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046578|146578|989898|1|9999046578|MR|Test|E|Lead 46578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046579|146579|989898|1|9999046579|MR|Test|E|Lead 46579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046580|146580|989898|1|9999046580|MR|Test|E|Lead 46580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046581|146581|989898|1|9999046581|MR|Test|E|Lead 46581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046582|146582|989898|1|9999046582|MR|Test|E|Lead 46582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046583|146583|989898|1|9999046583|MR|Test|E|Lead 46583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046584|146584|989898|1|9999046584|MR|Test|E|Lead 46584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046585|146585|989898|1|9999046585|MR|Test|E|Lead 46585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046586|146586|989898|1|9999046586|MR|Test|E|Lead 46586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046587|146587|989898|1|9999046587|MR|Test|E|Lead 46587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046588|146588|989898|1|9999046588|MR|Test|E|Lead 46588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046589|146589|989898|1|9999046589|MR|Test|E|Lead 46589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046590|146590|989898|1|9999046590|MR|Test|E|Lead 46590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046591|146591|989898|1|9999046591|MR|Test|E|Lead 46591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046592|146592|989898|1|9999046592|MR|Test|E|Lead 46592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046593|146593|989898|1|9999046593|MR|Test|E|Lead 46593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046594|146594|989898|1|9999046594|MR|Test|E|Lead 46594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046595|146595|989898|1|9999046595|MR|Test|E|Lead 46595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046596|146596|989898|1|9999046596|MR|Test|E|Lead 46596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046597|146597|989898|1|9999046597|MR|Test|E|Lead 46597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046598|146598|989898|1|9999046598|MR|Test|E|Lead 46598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046599|146599|989898|1|9999046599|MR|Test|E|Lead 46599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046600|146600|989898|1|9999046600|MR|Test|E|Lead 46600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046601|146601|989898|1|9999046601|MR|Test|E|Lead 46601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046602|146602|989898|1|9999046602|MR|Test|E|Lead 46602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046603|146603|989898|1|9999046603|MR|Test|E|Lead 46603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046604|146604|989898|1|9999046604|MR|Test|E|Lead 46604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046605|146605|989898|1|9999046605|MR|Test|E|Lead 46605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046606|146606|989898|1|9999046606|MR|Test|E|Lead 46606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046607|146607|989898|1|9999046607|MR|Test|E|Lead 46607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046608|146608|989898|1|9999046608|MR|Test|E|Lead 46608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046609|146609|989898|1|9999046609|MR|Test|E|Lead 46609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046610|146610|989898|1|9999046610|MR|Test|E|Lead 46610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046611|146611|989898|1|9999046611|MR|Test|E|Lead 46611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046612|146612|989898|1|9999046612|MR|Test|E|Lead 46612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046613|146613|989898|1|9999046613|MR|Test|E|Lead 46613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046614|146614|989898|1|9999046614|MR|Test|E|Lead 46614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046615|146615|989898|1|9999046615|MR|Test|E|Lead 46615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046616|146616|989898|1|9999046616|MR|Test|E|Lead 46616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046617|146617|989898|1|9999046617|MR|Test|E|Lead 46617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046618|146618|989898|1|9999046618|MR|Test|E|Lead 46618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046619|146619|989898|1|9999046619|MR|Test|E|Lead 46619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046620|146620|989898|1|9999046620|MR|Test|E|Lead 46620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046621|146621|989898|1|9999046621|MR|Test|E|Lead 46621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046622|146622|989898|1|9999046622|MR|Test|E|Lead 46622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046623|146623|989898|1|9999046623|MR|Test|E|Lead 46623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046624|146624|989898|1|9999046624|MR|Test|E|Lead 46624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046625|146625|989898|1|9999046625|MR|Test|E|Lead 46625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046626|146626|989898|1|9999046626|MR|Test|E|Lead 46626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046627|146627|989898|1|9999046627|MR|Test|E|Lead 46627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046628|146628|989898|1|9999046628|MR|Test|E|Lead 46628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046629|146629|989898|1|9999046629|MR|Test|E|Lead 46629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046630|146630|989898|1|9999046630|MR|Test|E|Lead 46630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046631|146631|989898|1|9999046631|MR|Test|E|Lead 46631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046632|146632|989898|1|9999046632|MR|Test|E|Lead 46632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046633|146633|989898|1|9999046633|MR|Test|E|Lead 46633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046634|146634|989898|1|9999046634|MR|Test|E|Lead 46634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046635|146635|989898|1|9999046635|MR|Test|E|Lead 46635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046636|146636|989898|1|9999046636|MR|Test|E|Lead 46636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046637|146637|989898|1|9999046637|MR|Test|E|Lead 46637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046638|146638|989898|1|9999046638|MR|Test|E|Lead 46638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046639|146639|989898|1|9999046639|MR|Test|E|Lead 46639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046640|146640|989898|1|9999046640|MR|Test|E|Lead 46640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046641|146641|989898|1|9999046641|MR|Test|E|Lead 46641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046642|146642|989898|1|9999046642|MR|Test|E|Lead 46642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046643|146643|989898|1|9999046643|MR|Test|E|Lead 46643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046644|146644|989898|1|9999046644|MR|Test|E|Lead 46644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046645|146645|989898|1|9999046645|MR|Test|E|Lead 46645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046646|146646|989898|1|9999046646|MR|Test|E|Lead 46646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046647|146647|989898|1|9999046647|MR|Test|E|Lead 46647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046648|146648|989898|1|9999046648|MR|Test|E|Lead 46648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046649|146649|989898|1|9999046649|MR|Test|E|Lead 46649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046650|146650|989898|1|9999046650|MR|Test|E|Lead 46650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046651|146651|989898|1|9999046651|MR|Test|E|Lead 46651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046652|146652|989898|1|9999046652|MR|Test|E|Lead 46652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046653|146653|989898|1|9999046653|MR|Test|E|Lead 46653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046654|146654|989898|1|9999046654|MR|Test|E|Lead 46654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046655|146655|989898|1|9999046655|MR|Test|E|Lead 46655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046656|146656|989898|1|9999046656|MR|Test|E|Lead 46656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046657|146657|989898|1|9999046657|MR|Test|E|Lead 46657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046658|146658|989898|1|9999046658|MR|Test|E|Lead 46658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046659|146659|989898|1|9999046659|MR|Test|E|Lead 46659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046660|146660|989898|1|9999046660|MR|Test|E|Lead 46660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046661|146661|989898|1|9999046661|MR|Test|E|Lead 46661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046662|146662|989898|1|9999046662|MR|Test|E|Lead 46662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046663|146663|989898|1|9999046663|MR|Test|E|Lead 46663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046664|146664|989898|1|9999046664|MR|Test|E|Lead 46664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046665|146665|989898|1|9999046665|MR|Test|E|Lead 46665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046666|146666|989898|1|9999046666|MR|Test|E|Lead 46666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046667|146667|989898|1|9999046667|MR|Test|E|Lead 46667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046668|146668|989898|1|9999046668|MR|Test|E|Lead 46668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046669|146669|989898|1|9999046669|MR|Test|E|Lead 46669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046670|146670|989898|1|9999046670|MR|Test|E|Lead 46670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046671|146671|989898|1|9999046671|MR|Test|E|Lead 46671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046672|146672|989898|1|9999046672|MR|Test|E|Lead 46672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046673|146673|989898|1|9999046673|MR|Test|E|Lead 46673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046674|146674|989898|1|9999046674|MR|Test|E|Lead 46674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046675|146675|989898|1|9999046675|MR|Test|E|Lead 46675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046676|146676|989898|1|9999046676|MR|Test|E|Lead 46676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046677|146677|989898|1|9999046677|MR|Test|E|Lead 46677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046678|146678|989898|1|9999046678|MR|Test|E|Lead 46678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046679|146679|989898|1|9999046679|MR|Test|E|Lead 46679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046680|146680|989898|1|9999046680|MR|Test|E|Lead 46680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046681|146681|989898|1|9999046681|MR|Test|E|Lead 46681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046682|146682|989898|1|9999046682|MR|Test|E|Lead 46682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046683|146683|989898|1|9999046683|MR|Test|E|Lead 46683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046684|146684|989898|1|9999046684|MR|Test|E|Lead 46684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046685|146685|989898|1|9999046685|MR|Test|E|Lead 46685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046686|146686|989898|1|9999046686|MR|Test|E|Lead 46686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046687|146687|989898|1|9999046687|MR|Test|E|Lead 46687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046688|146688|989898|1|9999046688|MR|Test|E|Lead 46688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046689|146689|989898|1|9999046689|MR|Test|E|Lead 46689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046690|146690|989898|1|9999046690|MR|Test|E|Lead 46690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046691|146691|989898|1|9999046691|MR|Test|E|Lead 46691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046692|146692|989898|1|9999046692|MR|Test|E|Lead 46692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046693|146693|989898|1|9999046693|MR|Test|E|Lead 46693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046694|146694|989898|1|9999046694|MR|Test|E|Lead 46694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046695|146695|989898|1|9999046695|MR|Test|E|Lead 46695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046696|146696|989898|1|9999046696|MR|Test|E|Lead 46696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046697|146697|989898|1|9999046697|MR|Test|E|Lead 46697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046698|146698|989898|1|9999046698|MR|Test|E|Lead 46698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046699|146699|989898|1|9999046699|MR|Test|E|Lead 46699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046700|146700|989898|1|9999046700|MR|Test|E|Lead 46700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046701|146701|989898|1|9999046701|MR|Test|E|Lead 46701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046702|146702|989898|1|9999046702|MR|Test|E|Lead 46702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046703|146703|989898|1|9999046703|MR|Test|E|Lead 46703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046704|146704|989898|1|9999046704|MR|Test|E|Lead 46704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046705|146705|989898|1|9999046705|MR|Test|E|Lead 46705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046706|146706|989898|1|9999046706|MR|Test|E|Lead 46706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046707|146707|989898|1|9999046707|MR|Test|E|Lead 46707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046708|146708|989898|1|9999046708|MR|Test|E|Lead 46708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046709|146709|989898|1|9999046709|MR|Test|E|Lead 46709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046710|146710|989898|1|9999046710|MR|Test|E|Lead 46710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046711|146711|989898|1|9999046711|MR|Test|E|Lead 46711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046712|146712|989898|1|9999046712|MR|Test|E|Lead 46712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046713|146713|989898|1|9999046713|MR|Test|E|Lead 46713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046714|146714|989898|1|9999046714|MR|Test|E|Lead 46714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046715|146715|989898|1|9999046715|MR|Test|E|Lead 46715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046716|146716|989898|1|9999046716|MR|Test|E|Lead 46716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046717|146717|989898|1|9999046717|MR|Test|E|Lead 46717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046718|146718|989898|1|9999046718|MR|Test|E|Lead 46718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046719|146719|989898|1|9999046719|MR|Test|E|Lead 46719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046720|146720|989898|1|9999046720|MR|Test|E|Lead 46720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046721|146721|989898|1|9999046721|MR|Test|E|Lead 46721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046722|146722|989898|1|9999046722|MR|Test|E|Lead 46722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046723|146723|989898|1|9999046723|MR|Test|E|Lead 46723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046724|146724|989898|1|9999046724|MR|Test|E|Lead 46724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046725|146725|989898|1|9999046725|MR|Test|E|Lead 46725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046726|146726|989898|1|9999046726|MR|Test|E|Lead 46726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046727|146727|989898|1|9999046727|MR|Test|E|Lead 46727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046728|146728|989898|1|9999046728|MR|Test|E|Lead 46728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046729|146729|989898|1|9999046729|MR|Test|E|Lead 46729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046730|146730|989898|1|9999046730|MR|Test|E|Lead 46730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046731|146731|989898|1|9999046731|MR|Test|E|Lead 46731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046732|146732|989898|1|9999046732|MR|Test|E|Lead 46732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046733|146733|989898|1|9999046733|MR|Test|E|Lead 46733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046734|146734|989898|1|9999046734|MR|Test|E|Lead 46734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046735|146735|989898|1|9999046735|MR|Test|E|Lead 46735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046736|146736|989898|1|9999046736|MR|Test|E|Lead 46736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046737|146737|989898|1|9999046737|MR|Test|E|Lead 46737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046738|146738|989898|1|9999046738|MR|Test|E|Lead 46738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046739|146739|989898|1|9999046739|MR|Test|E|Lead 46739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046740|146740|989898|1|9999046740|MR|Test|E|Lead 46740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046741|146741|989898|1|9999046741|MR|Test|E|Lead 46741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046742|146742|989898|1|9999046742|MR|Test|E|Lead 46742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046743|146743|989898|1|9999046743|MR|Test|E|Lead 46743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046744|146744|989898|1|9999046744|MR|Test|E|Lead 46744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046745|146745|989898|1|9999046745|MR|Test|E|Lead 46745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046746|146746|989898|1|9999046746|MR|Test|E|Lead 46746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046747|146747|989898|1|9999046747|MR|Test|E|Lead 46747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046748|146748|989898|1|9999046748|MR|Test|E|Lead 46748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046749|146749|989898|1|9999046749|MR|Test|E|Lead 46749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046750|146750|989898|1|9999046750|MR|Test|E|Lead 46750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046751|146751|989898|1|9999046751|MR|Test|E|Lead 46751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046752|146752|989898|1|9999046752|MR|Test|E|Lead 46752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046753|146753|989898|1|9999046753|MR|Test|E|Lead 46753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046754|146754|989898|1|9999046754|MR|Test|E|Lead 46754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046755|146755|989898|1|9999046755|MR|Test|E|Lead 46755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046756|146756|989898|1|9999046756|MR|Test|E|Lead 46756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046757|146757|989898|1|9999046757|MR|Test|E|Lead 46757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046758|146758|989898|1|9999046758|MR|Test|E|Lead 46758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046759|146759|989898|1|9999046759|MR|Test|E|Lead 46759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046760|146760|989898|1|9999046760|MR|Test|E|Lead 46760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046761|146761|989898|1|9999046761|MR|Test|E|Lead 46761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046762|146762|989898|1|9999046762|MR|Test|E|Lead 46762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046763|146763|989898|1|9999046763|MR|Test|E|Lead 46763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046764|146764|989898|1|9999046764|MR|Test|E|Lead 46764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046765|146765|989898|1|9999046765|MR|Test|E|Lead 46765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046766|146766|989898|1|9999046766|MR|Test|E|Lead 46766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046767|146767|989898|1|9999046767|MR|Test|E|Lead 46767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046768|146768|989898|1|9999046768|MR|Test|E|Lead 46768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046769|146769|989898|1|9999046769|MR|Test|E|Lead 46769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046770|146770|989898|1|9999046770|MR|Test|E|Lead 46770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046771|146771|989898|1|9999046771|MR|Test|E|Lead 46771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046772|146772|989898|1|9999046772|MR|Test|E|Lead 46772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046773|146773|989898|1|9999046773|MR|Test|E|Lead 46773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046774|146774|989898|1|9999046774|MR|Test|E|Lead 46774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046775|146775|989898|1|9999046775|MR|Test|E|Lead 46775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046776|146776|989898|1|9999046776|MR|Test|E|Lead 46776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046777|146777|989898|1|9999046777|MR|Test|E|Lead 46777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046778|146778|989898|1|9999046778|MR|Test|E|Lead 46778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046779|146779|989898|1|9999046779|MR|Test|E|Lead 46779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046780|146780|989898|1|9999046780|MR|Test|E|Lead 46780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046781|146781|989898|1|9999046781|MR|Test|E|Lead 46781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046782|146782|989898|1|9999046782|MR|Test|E|Lead 46782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046783|146783|989898|1|9999046783|MR|Test|E|Lead 46783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046784|146784|989898|1|9999046784|MR|Test|E|Lead 46784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046785|146785|989898|1|9999046785|MR|Test|E|Lead 46785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046786|146786|989898|1|9999046786|MR|Test|E|Lead 46786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046787|146787|989898|1|9999046787|MR|Test|E|Lead 46787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046788|146788|989898|1|9999046788|MR|Test|E|Lead 46788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046789|146789|989898|1|9999046789|MR|Test|E|Lead 46789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046790|146790|989898|1|9999046790|MR|Test|E|Lead 46790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046791|146791|989898|1|9999046791|MR|Test|E|Lead 46791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046792|146792|989898|1|9999046792|MR|Test|E|Lead 46792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046793|146793|989898|1|9999046793|MR|Test|E|Lead 46793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046794|146794|989898|1|9999046794|MR|Test|E|Lead 46794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046795|146795|989898|1|9999046795|MR|Test|E|Lead 46795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046796|146796|989898|1|9999046796|MR|Test|E|Lead 46796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046797|146797|989898|1|9999046797|MR|Test|E|Lead 46797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046798|146798|989898|1|9999046798|MR|Test|E|Lead 46798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046799|146799|989898|1|9999046799|MR|Test|E|Lead 46799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046800|146800|989898|1|9999046800|MR|Test|E|Lead 46800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046801|146801|989898|1|9999046801|MR|Test|E|Lead 46801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046802|146802|989898|1|9999046802|MR|Test|E|Lead 46802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046803|146803|989898|1|9999046803|MR|Test|E|Lead 46803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046804|146804|989898|1|9999046804|MR|Test|E|Lead 46804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046805|146805|989898|1|9999046805|MR|Test|E|Lead 46805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046806|146806|989898|1|9999046806|MR|Test|E|Lead 46806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046807|146807|989898|1|9999046807|MR|Test|E|Lead 46807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046808|146808|989898|1|9999046808|MR|Test|E|Lead 46808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046809|146809|989898|1|9999046809|MR|Test|E|Lead 46809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046810|146810|989898|1|9999046810|MR|Test|E|Lead 46810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046811|146811|989898|1|9999046811|MR|Test|E|Lead 46811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046812|146812|989898|1|9999046812|MR|Test|E|Lead 46812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046813|146813|989898|1|9999046813|MR|Test|E|Lead 46813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046814|146814|989898|1|9999046814|MR|Test|E|Lead 46814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046815|146815|989898|1|9999046815|MR|Test|E|Lead 46815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046816|146816|989898|1|9999046816|MR|Test|E|Lead 46816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046817|146817|989898|1|9999046817|MR|Test|E|Lead 46817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046818|146818|989898|1|9999046818|MR|Test|E|Lead 46818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046819|146819|989898|1|9999046819|MR|Test|E|Lead 46819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046820|146820|989898|1|9999046820|MR|Test|E|Lead 46820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046821|146821|989898|1|9999046821|MR|Test|E|Lead 46821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046822|146822|989898|1|9999046822|MR|Test|E|Lead 46822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046823|146823|989898|1|9999046823|MR|Test|E|Lead 46823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046824|146824|989898|1|9999046824|MR|Test|E|Lead 46824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046825|146825|989898|1|9999046825|MR|Test|E|Lead 46825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046826|146826|989898|1|9999046826|MR|Test|E|Lead 46826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046827|146827|989898|1|9999046827|MR|Test|E|Lead 46827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046828|146828|989898|1|9999046828|MR|Test|E|Lead 46828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046829|146829|989898|1|9999046829|MR|Test|E|Lead 46829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046830|146830|989898|1|9999046830|MR|Test|E|Lead 46830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046831|146831|989898|1|9999046831|MR|Test|E|Lead 46831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046832|146832|989898|1|9999046832|MR|Test|E|Lead 46832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046833|146833|989898|1|9999046833|MR|Test|E|Lead 46833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046834|146834|989898|1|9999046834|MR|Test|E|Lead 46834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046835|146835|989898|1|9999046835|MR|Test|E|Lead 46835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046836|146836|989898|1|9999046836|MR|Test|E|Lead 46836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046837|146837|989898|1|9999046837|MR|Test|E|Lead 46837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046838|146838|989898|1|9999046838|MR|Test|E|Lead 46838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046839|146839|989898|1|9999046839|MR|Test|E|Lead 46839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046840|146840|989898|1|9999046840|MR|Test|E|Lead 46840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046841|146841|989898|1|9999046841|MR|Test|E|Lead 46841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046842|146842|989898|1|9999046842|MR|Test|E|Lead 46842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046843|146843|989898|1|9999046843|MR|Test|E|Lead 46843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046844|146844|989898|1|9999046844|MR|Test|E|Lead 46844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046845|146845|989898|1|9999046845|MR|Test|E|Lead 46845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046846|146846|989898|1|9999046846|MR|Test|E|Lead 46846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046847|146847|989898|1|9999046847|MR|Test|E|Lead 46847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046848|146848|989898|1|9999046848|MR|Test|E|Lead 46848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046849|146849|989898|1|9999046849|MR|Test|E|Lead 46849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046850|146850|989898|1|9999046850|MR|Test|E|Lead 46850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046851|146851|989898|1|9999046851|MR|Test|E|Lead 46851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046852|146852|989898|1|9999046852|MR|Test|E|Lead 46852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046853|146853|989898|1|9999046853|MR|Test|E|Lead 46853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046854|146854|989898|1|9999046854|MR|Test|E|Lead 46854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046855|146855|989898|1|9999046855|MR|Test|E|Lead 46855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046856|146856|989898|1|9999046856|MR|Test|E|Lead 46856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046857|146857|989898|1|9999046857|MR|Test|E|Lead 46857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046858|146858|989898|1|9999046858|MR|Test|E|Lead 46858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046859|146859|989898|1|9999046859|MR|Test|E|Lead 46859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046860|146860|989898|1|9999046860|MR|Test|E|Lead 46860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046861|146861|989898|1|9999046861|MR|Test|E|Lead 46861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046862|146862|989898|1|9999046862|MR|Test|E|Lead 46862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046863|146863|989898|1|9999046863|MR|Test|E|Lead 46863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046864|146864|989898|1|9999046864|MR|Test|E|Lead 46864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046865|146865|989898|1|9999046865|MR|Test|E|Lead 46865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046866|146866|989898|1|9999046866|MR|Test|E|Lead 46866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046867|146867|989898|1|9999046867|MR|Test|E|Lead 46867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046868|146868|989898|1|9999046868|MR|Test|E|Lead 46868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046869|146869|989898|1|9999046869|MR|Test|E|Lead 46869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046870|146870|989898|1|9999046870|MR|Test|E|Lead 46870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046871|146871|989898|1|9999046871|MR|Test|E|Lead 46871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046872|146872|989898|1|9999046872|MR|Test|E|Lead 46872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046873|146873|989898|1|9999046873|MR|Test|E|Lead 46873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046874|146874|989898|1|9999046874|MR|Test|E|Lead 46874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046875|146875|989898|1|9999046875|MR|Test|E|Lead 46875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046876|146876|989898|1|9999046876|MR|Test|E|Lead 46876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046877|146877|989898|1|9999046877|MR|Test|E|Lead 46877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046878|146878|989898|1|9999046878|MR|Test|E|Lead 46878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046879|146879|989898|1|9999046879|MR|Test|E|Lead 46879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046880|146880|989898|1|9999046880|MR|Test|E|Lead 46880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046881|146881|989898|1|9999046881|MR|Test|E|Lead 46881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046882|146882|989898|1|9999046882|MR|Test|E|Lead 46882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046883|146883|989898|1|9999046883|MR|Test|E|Lead 46883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046884|146884|989898|1|9999046884|MR|Test|E|Lead 46884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046885|146885|989898|1|9999046885|MR|Test|E|Lead 46885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046886|146886|989898|1|9999046886|MR|Test|E|Lead 46886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046887|146887|989898|1|9999046887|MR|Test|E|Lead 46887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046888|146888|989898|1|9999046888|MR|Test|E|Lead 46888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046889|146889|989898|1|9999046889|MR|Test|E|Lead 46889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046890|146890|989898|1|9999046890|MR|Test|E|Lead 46890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046891|146891|989898|1|9999046891|MR|Test|E|Lead 46891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046892|146892|989898|1|9999046892|MR|Test|E|Lead 46892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046893|146893|989898|1|9999046893|MR|Test|E|Lead 46893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046894|146894|989898|1|9999046894|MR|Test|E|Lead 46894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046895|146895|989898|1|9999046895|MR|Test|E|Lead 46895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046896|146896|989898|1|9999046896|MR|Test|E|Lead 46896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046897|146897|989898|1|9999046897|MR|Test|E|Lead 46897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046898|146898|989898|1|9999046898|MR|Test|E|Lead 46898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046899|146899|989898|1|9999046899|MR|Test|E|Lead 46899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046900|146900|989898|1|9999046900|MR|Test|E|Lead 46900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046901|146901|989898|1|9999046901|MR|Test|E|Lead 46901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046902|146902|989898|1|9999046902|MR|Test|E|Lead 46902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046903|146903|989898|1|9999046903|MR|Test|E|Lead 46903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046904|146904|989898|1|9999046904|MR|Test|E|Lead 46904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046905|146905|989898|1|9999046905|MR|Test|E|Lead 46905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046906|146906|989898|1|9999046906|MR|Test|E|Lead 46906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046907|146907|989898|1|9999046907|MR|Test|E|Lead 46907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046908|146908|989898|1|9999046908|MR|Test|E|Lead 46908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046909|146909|989898|1|9999046909|MR|Test|E|Lead 46909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046910|146910|989898|1|9999046910|MR|Test|E|Lead 46910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046911|146911|989898|1|9999046911|MR|Test|E|Lead 46911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046912|146912|989898|1|9999046912|MR|Test|E|Lead 46912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046913|146913|989898|1|9999046913|MR|Test|E|Lead 46913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046914|146914|989898|1|9999046914|MR|Test|E|Lead 46914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046915|146915|989898|1|9999046915|MR|Test|E|Lead 46915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046916|146916|989898|1|9999046916|MR|Test|E|Lead 46916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046917|146917|989898|1|9999046917|MR|Test|E|Lead 46917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046918|146918|989898|1|9999046918|MR|Test|E|Lead 46918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046919|146919|989898|1|9999046919|MR|Test|E|Lead 46919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046920|146920|989898|1|9999046920|MR|Test|E|Lead 46920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046921|146921|989898|1|9999046921|MR|Test|E|Lead 46921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046922|146922|989898|1|9999046922|MR|Test|E|Lead 46922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046923|146923|989898|1|9999046923|MR|Test|E|Lead 46923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046924|146924|989898|1|9999046924|MR|Test|E|Lead 46924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046925|146925|989898|1|9999046925|MR|Test|E|Lead 46925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046926|146926|989898|1|9999046926|MR|Test|E|Lead 46926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046927|146927|989898|1|9999046927|MR|Test|E|Lead 46927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046928|146928|989898|1|9999046928|MR|Test|E|Lead 46928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046929|146929|989898|1|9999046929|MR|Test|E|Lead 46929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046930|146930|989898|1|9999046930|MR|Test|E|Lead 46930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046931|146931|989898|1|9999046931|MR|Test|E|Lead 46931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046932|146932|989898|1|9999046932|MR|Test|E|Lead 46932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046933|146933|989898|1|9999046933|MR|Test|E|Lead 46933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046934|146934|989898|1|9999046934|MR|Test|E|Lead 46934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046935|146935|989898|1|9999046935|MR|Test|E|Lead 46935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046936|146936|989898|1|9999046936|MR|Test|E|Lead 46936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046937|146937|989898|1|9999046937|MR|Test|E|Lead 46937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046938|146938|989898|1|9999046938|MR|Test|E|Lead 46938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046939|146939|989898|1|9999046939|MR|Test|E|Lead 46939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046940|146940|989898|1|9999046940|MR|Test|E|Lead 46940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046941|146941|989898|1|9999046941|MR|Test|E|Lead 46941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046942|146942|989898|1|9999046942|MR|Test|E|Lead 46942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046943|146943|989898|1|9999046943|MR|Test|E|Lead 46943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046944|146944|989898|1|9999046944|MR|Test|E|Lead 46944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046945|146945|989898|1|9999046945|MR|Test|E|Lead 46945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046946|146946|989898|1|9999046946|MR|Test|E|Lead 46946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046947|146947|989898|1|9999046947|MR|Test|E|Lead 46947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046948|146948|989898|1|9999046948|MR|Test|E|Lead 46948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046949|146949|989898|1|9999046949|MR|Test|E|Lead 46949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046950|146950|989898|1|9999046950|MR|Test|E|Lead 46950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046951|146951|989898|1|9999046951|MR|Test|E|Lead 46951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046952|146952|989898|1|9999046952|MR|Test|E|Lead 46952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046953|146953|989898|1|9999046953|MR|Test|E|Lead 46953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046954|146954|989898|1|9999046954|MR|Test|E|Lead 46954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046955|146955|989898|1|9999046955|MR|Test|E|Lead 46955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046956|146956|989898|1|9999046956|MR|Test|E|Lead 46956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046957|146957|989898|1|9999046957|MR|Test|E|Lead 46957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046958|146958|989898|1|9999046958|MR|Test|E|Lead 46958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046959|146959|989898|1|9999046959|MR|Test|E|Lead 46959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046960|146960|989898|1|9999046960|MR|Test|E|Lead 46960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046961|146961|989898|1|9999046961|MR|Test|E|Lead 46961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046962|146962|989898|1|9999046962|MR|Test|E|Lead 46962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046963|146963|989898|1|9999046963|MR|Test|E|Lead 46963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046964|146964|989898|1|9999046964|MR|Test|E|Lead 46964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046965|146965|989898|1|9999046965|MR|Test|E|Lead 46965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046966|146966|989898|1|9999046966|MR|Test|E|Lead 46966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046967|146967|989898|1|9999046967|MR|Test|E|Lead 46967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046968|146968|989898|1|9999046968|MR|Test|E|Lead 46968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046969|146969|989898|1|9999046969|MR|Test|E|Lead 46969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046970|146970|989898|1|9999046970|MR|Test|E|Lead 46970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046971|146971|989898|1|9999046971|MR|Test|E|Lead 46971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046972|146972|989898|1|9999046972|MR|Test|E|Lead 46972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046973|146973|989898|1|9999046973|MR|Test|E|Lead 46973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046974|146974|989898|1|9999046974|MR|Test|E|Lead 46974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046975|146975|989898|1|9999046975|MR|Test|E|Lead 46975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046976|146976|989898|1|9999046976|MR|Test|E|Lead 46976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046977|146977|989898|1|9999046977|MR|Test|E|Lead 46977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046978|146978|989898|1|9999046978|MR|Test|E|Lead 46978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046979|146979|989898|1|9999046979|MR|Test|E|Lead 46979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046980|146980|989898|1|9999046980|MR|Test|E|Lead 46980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046981|146981|989898|1|9999046981|MR|Test|E|Lead 46981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046982|146982|989898|1|9999046982|MR|Test|E|Lead 46982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046983|146983|989898|1|9999046983|MR|Test|E|Lead 46983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046984|146984|989898|1|9999046984|MR|Test|E|Lead 46984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046985|146985|989898|1|9999046985|MR|Test|E|Lead 46985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046986|146986|989898|1|9999046986|MR|Test|E|Lead 46986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046987|146987|989898|1|9999046987|MR|Test|E|Lead 46987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046988|146988|989898|1|9999046988|MR|Test|E|Lead 46988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046989|146989|989898|1|9999046989|MR|Test|E|Lead 46989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046990|146990|989898|1|9999046990|MR|Test|E|Lead 46990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046991|146991|989898|1|9999046991|MR|Test|E|Lead 46991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046992|146992|989898|1|9999046992|MR|Test|E|Lead 46992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046993|146993|989898|1|9999046993|MR|Test|E|Lead 46993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046994|146994|989898|1|9999046994|MR|Test|E|Lead 46994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046995|146995|989898|1|9999046995|MR|Test|E|Lead 46995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046996|146996|989898|1|9999046996|MR|Test|E|Lead 46996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046997|146997|989898|1|9999046997|MR|Test|E|Lead 46997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046998|146998|989898|1|9999046998|MR|Test|E|Lead 46998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1046999|146999|989898|1|9999046999|MR|Test|E|Lead 46999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047000|147000|989898|1|9999047000|MR|Test|E|Lead 47000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047001|147001|989898|1|9999047001|MR|Test|E|Lead 47001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047002|147002|989898|1|9999047002|MR|Test|E|Lead 47002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047003|147003|989898|1|9999047003|MR|Test|E|Lead 47003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047004|147004|989898|1|9999047004|MR|Test|E|Lead 47004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047005|147005|989898|1|9999047005|MR|Test|E|Lead 47005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047006|147006|989898|1|9999047006|MR|Test|E|Lead 47006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047007|147007|989898|1|9999047007|MR|Test|E|Lead 47007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047008|147008|989898|1|9999047008|MR|Test|E|Lead 47008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047009|147009|989898|1|9999047009|MR|Test|E|Lead 47009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047010|147010|989898|1|9999047010|MR|Test|E|Lead 47010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047011|147011|989898|1|9999047011|MR|Test|E|Lead 47011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047012|147012|989898|1|9999047012|MR|Test|E|Lead 47012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047013|147013|989898|1|9999047013|MR|Test|E|Lead 47013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047014|147014|989898|1|9999047014|MR|Test|E|Lead 47014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047015|147015|989898|1|9999047015|MR|Test|E|Lead 47015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047016|147016|989898|1|9999047016|MR|Test|E|Lead 47016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047017|147017|989898|1|9999047017|MR|Test|E|Lead 47017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047018|147018|989898|1|9999047018|MR|Test|E|Lead 47018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047019|147019|989898|1|9999047019|MR|Test|E|Lead 47019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047020|147020|989898|1|9999047020|MR|Test|E|Lead 47020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047021|147021|989898|1|9999047021|MR|Test|E|Lead 47021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047022|147022|989898|1|9999047022|MR|Test|E|Lead 47022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047023|147023|989898|1|9999047023|MR|Test|E|Lead 47023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047024|147024|989898|1|9999047024|MR|Test|E|Lead 47024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047025|147025|989898|1|9999047025|MR|Test|E|Lead 47025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047026|147026|989898|1|9999047026|MR|Test|E|Lead 47026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047027|147027|989898|1|9999047027|MR|Test|E|Lead 47027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047028|147028|989898|1|9999047028|MR|Test|E|Lead 47028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047029|147029|989898|1|9999047029|MR|Test|E|Lead 47029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047030|147030|989898|1|9999047030|MR|Test|E|Lead 47030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047031|147031|989898|1|9999047031|MR|Test|E|Lead 47031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047032|147032|989898|1|9999047032|MR|Test|E|Lead 47032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047033|147033|989898|1|9999047033|MR|Test|E|Lead 47033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047034|147034|989898|1|9999047034|MR|Test|E|Lead 47034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047035|147035|989898|1|9999047035|MR|Test|E|Lead 47035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047036|147036|989898|1|9999047036|MR|Test|E|Lead 47036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047037|147037|989898|1|9999047037|MR|Test|E|Lead 47037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047038|147038|989898|1|9999047038|MR|Test|E|Lead 47038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047039|147039|989898|1|9999047039|MR|Test|E|Lead 47039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047040|147040|989898|1|9999047040|MR|Test|E|Lead 47040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047041|147041|989898|1|9999047041|MR|Test|E|Lead 47041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047042|147042|989898|1|9999047042|MR|Test|E|Lead 47042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047043|147043|989898|1|9999047043|MR|Test|E|Lead 47043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047044|147044|989898|1|9999047044|MR|Test|E|Lead 47044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047045|147045|989898|1|9999047045|MR|Test|E|Lead 47045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047046|147046|989898|1|9999047046|MR|Test|E|Lead 47046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047047|147047|989898|1|9999047047|MR|Test|E|Lead 47047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047048|147048|989898|1|9999047048|MR|Test|E|Lead 47048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047049|147049|989898|1|9999047049|MR|Test|E|Lead 47049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047050|147050|989898|1|9999047050|MR|Test|E|Lead 47050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047051|147051|989898|1|9999047051|MR|Test|E|Lead 47051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047052|147052|989898|1|9999047052|MR|Test|E|Lead 47052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047053|147053|989898|1|9999047053|MR|Test|E|Lead 47053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047054|147054|989898|1|9999047054|MR|Test|E|Lead 47054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047055|147055|989898|1|9999047055|MR|Test|E|Lead 47055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047056|147056|989898|1|9999047056|MR|Test|E|Lead 47056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047057|147057|989898|1|9999047057|MR|Test|E|Lead 47057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047058|147058|989898|1|9999047058|MR|Test|E|Lead 47058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047059|147059|989898|1|9999047059|MR|Test|E|Lead 47059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047060|147060|989898|1|9999047060|MR|Test|E|Lead 47060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047061|147061|989898|1|9999047061|MR|Test|E|Lead 47061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047062|147062|989898|1|9999047062|MR|Test|E|Lead 47062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047063|147063|989898|1|9999047063|MR|Test|E|Lead 47063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047064|147064|989898|1|9999047064|MR|Test|E|Lead 47064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047065|147065|989898|1|9999047065|MR|Test|E|Lead 47065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047066|147066|989898|1|9999047066|MR|Test|E|Lead 47066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047067|147067|989898|1|9999047067|MR|Test|E|Lead 47067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047068|147068|989898|1|9999047068|MR|Test|E|Lead 47068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047069|147069|989898|1|9999047069|MR|Test|E|Lead 47069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047070|147070|989898|1|9999047070|MR|Test|E|Lead 47070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047071|147071|989898|1|9999047071|MR|Test|E|Lead 47071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047072|147072|989898|1|9999047072|MR|Test|E|Lead 47072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047073|147073|989898|1|9999047073|MR|Test|E|Lead 47073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047074|147074|989898|1|9999047074|MR|Test|E|Lead 47074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047075|147075|989898|1|9999047075|MR|Test|E|Lead 47075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047076|147076|989898|1|9999047076|MR|Test|E|Lead 47076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047077|147077|989898|1|9999047077|MR|Test|E|Lead 47077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047078|147078|989898|1|9999047078|MR|Test|E|Lead 47078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047079|147079|989898|1|9999047079|MR|Test|E|Lead 47079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047080|147080|989898|1|9999047080|MR|Test|E|Lead 47080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047081|147081|989898|1|9999047081|MR|Test|E|Lead 47081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047082|147082|989898|1|9999047082|MR|Test|E|Lead 47082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047083|147083|989898|1|9999047083|MR|Test|E|Lead 47083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047084|147084|989898|1|9999047084|MR|Test|E|Lead 47084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047085|147085|989898|1|9999047085|MR|Test|E|Lead 47085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047086|147086|989898|1|9999047086|MR|Test|E|Lead 47086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047087|147087|989898|1|9999047087|MR|Test|E|Lead 47087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047088|147088|989898|1|9999047088|MR|Test|E|Lead 47088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047089|147089|989898|1|9999047089|MR|Test|E|Lead 47089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047090|147090|989898|1|9999047090|MR|Test|E|Lead 47090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047091|147091|989898|1|9999047091|MR|Test|E|Lead 47091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047092|147092|989898|1|9999047092|MR|Test|E|Lead 47092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047093|147093|989898|1|9999047093|MR|Test|E|Lead 47093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047094|147094|989898|1|9999047094|MR|Test|E|Lead 47094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047095|147095|989898|1|9999047095|MR|Test|E|Lead 47095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047096|147096|989898|1|9999047096|MR|Test|E|Lead 47096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047097|147097|989898|1|9999047097|MR|Test|E|Lead 47097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047098|147098|989898|1|9999047098|MR|Test|E|Lead 47098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047099|147099|989898|1|9999047099|MR|Test|E|Lead 47099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047100|147100|989898|1|9999047100|MR|Test|E|Lead 47100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047101|147101|989898|1|9999047101|MR|Test|E|Lead 47101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047102|147102|989898|1|9999047102|MR|Test|E|Lead 47102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047103|147103|989898|1|9999047103|MR|Test|E|Lead 47103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047104|147104|989898|1|9999047104|MR|Test|E|Lead 47104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047105|147105|989898|1|9999047105|MR|Test|E|Lead 47105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047106|147106|989898|1|9999047106|MR|Test|E|Lead 47106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047107|147107|989898|1|9999047107|MR|Test|E|Lead 47107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047108|147108|989898|1|9999047108|MR|Test|E|Lead 47108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047109|147109|989898|1|9999047109|MR|Test|E|Lead 47109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047110|147110|989898|1|9999047110|MR|Test|E|Lead 47110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047111|147111|989898|1|9999047111|MR|Test|E|Lead 47111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047112|147112|989898|1|9999047112|MR|Test|E|Lead 47112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047113|147113|989898|1|9999047113|MR|Test|E|Lead 47113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047114|147114|989898|1|9999047114|MR|Test|E|Lead 47114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047115|147115|989898|1|9999047115|MR|Test|E|Lead 47115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047116|147116|989898|1|9999047116|MR|Test|E|Lead 47116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047117|147117|989898|1|9999047117|MR|Test|E|Lead 47117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047118|147118|989898|1|9999047118|MR|Test|E|Lead 47118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047119|147119|989898|1|9999047119|MR|Test|E|Lead 47119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047120|147120|989898|1|9999047120|MR|Test|E|Lead 47120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047121|147121|989898|1|9999047121|MR|Test|E|Lead 47121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047122|147122|989898|1|9999047122|MR|Test|E|Lead 47122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047123|147123|989898|1|9999047123|MR|Test|E|Lead 47123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047124|147124|989898|1|9999047124|MR|Test|E|Lead 47124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047125|147125|989898|1|9999047125|MR|Test|E|Lead 47125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047126|147126|989898|1|9999047126|MR|Test|E|Lead 47126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047127|147127|989898|1|9999047127|MR|Test|E|Lead 47127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047128|147128|989898|1|9999047128|MR|Test|E|Lead 47128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047129|147129|989898|1|9999047129|MR|Test|E|Lead 47129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047130|147130|989898|1|9999047130|MR|Test|E|Lead 47130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047131|147131|989898|1|9999047131|MR|Test|E|Lead 47131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047132|147132|989898|1|9999047132|MR|Test|E|Lead 47132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047133|147133|989898|1|9999047133|MR|Test|E|Lead 47133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047134|147134|989898|1|9999047134|MR|Test|E|Lead 47134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047135|147135|989898|1|9999047135|MR|Test|E|Lead 47135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047136|147136|989898|1|9999047136|MR|Test|E|Lead 47136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047137|147137|989898|1|9999047137|MR|Test|E|Lead 47137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047138|147138|989898|1|9999047138|MR|Test|E|Lead 47138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047139|147139|989898|1|9999047139|MR|Test|E|Lead 47139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047140|147140|989898|1|9999047140|MR|Test|E|Lead 47140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047141|147141|989898|1|9999047141|MR|Test|E|Lead 47141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047142|147142|989898|1|9999047142|MR|Test|E|Lead 47142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047143|147143|989898|1|9999047143|MR|Test|E|Lead 47143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047144|147144|989898|1|9999047144|MR|Test|E|Lead 47144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047145|147145|989898|1|9999047145|MR|Test|E|Lead 47145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047146|147146|989898|1|9999047146|MR|Test|E|Lead 47146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047147|147147|989898|1|9999047147|MR|Test|E|Lead 47147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047148|147148|989898|1|9999047148|MR|Test|E|Lead 47148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047149|147149|989898|1|9999047149|MR|Test|E|Lead 47149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047150|147150|989898|1|9999047150|MR|Test|E|Lead 47150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047151|147151|989898|1|9999047151|MR|Test|E|Lead 47151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047152|147152|989898|1|9999047152|MR|Test|E|Lead 47152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047153|147153|989898|1|9999047153|MR|Test|E|Lead 47153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047154|147154|989898|1|9999047154|MR|Test|E|Lead 47154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047155|147155|989898|1|9999047155|MR|Test|E|Lead 47155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047156|147156|989898|1|9999047156|MR|Test|E|Lead 47156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047157|147157|989898|1|9999047157|MR|Test|E|Lead 47157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047158|147158|989898|1|9999047158|MR|Test|E|Lead 47158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047159|147159|989898|1|9999047159|MR|Test|E|Lead 47159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047160|147160|989898|1|9999047160|MR|Test|E|Lead 47160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047161|147161|989898|1|9999047161|MR|Test|E|Lead 47161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047162|147162|989898|1|9999047162|MR|Test|E|Lead 47162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047163|147163|989898|1|9999047163|MR|Test|E|Lead 47163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047164|147164|989898|1|9999047164|MR|Test|E|Lead 47164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047165|147165|989898|1|9999047165|MR|Test|E|Lead 47165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047166|147166|989898|1|9999047166|MR|Test|E|Lead 47166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047167|147167|989898|1|9999047167|MR|Test|E|Lead 47167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047168|147168|989898|1|9999047168|MR|Test|E|Lead 47168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047169|147169|989898|1|9999047169|MR|Test|E|Lead 47169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047170|147170|989898|1|9999047170|MR|Test|E|Lead 47170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047171|147171|989898|1|9999047171|MR|Test|E|Lead 47171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047172|147172|989898|1|9999047172|MR|Test|E|Lead 47172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047173|147173|989898|1|9999047173|MR|Test|E|Lead 47173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047174|147174|989898|1|9999047174|MR|Test|E|Lead 47174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047175|147175|989898|1|9999047175|MR|Test|E|Lead 47175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047176|147176|989898|1|9999047176|MR|Test|E|Lead 47176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047177|147177|989898|1|9999047177|MR|Test|E|Lead 47177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047178|147178|989898|1|9999047178|MR|Test|E|Lead 47178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047179|147179|989898|1|9999047179|MR|Test|E|Lead 47179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047180|147180|989898|1|9999047180|MR|Test|E|Lead 47180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047181|147181|989898|1|9999047181|MR|Test|E|Lead 47181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047182|147182|989898|1|9999047182|MR|Test|E|Lead 47182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047183|147183|989898|1|9999047183|MR|Test|E|Lead 47183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047184|147184|989898|1|9999047184|MR|Test|E|Lead 47184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047185|147185|989898|1|9999047185|MR|Test|E|Lead 47185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047186|147186|989898|1|9999047186|MR|Test|E|Lead 47186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047187|147187|989898|1|9999047187|MR|Test|E|Lead 47187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047188|147188|989898|1|9999047188|MR|Test|E|Lead 47188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047189|147189|989898|1|9999047189|MR|Test|E|Lead 47189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047190|147190|989898|1|9999047190|MR|Test|E|Lead 47190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047191|147191|989898|1|9999047191|MR|Test|E|Lead 47191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047192|147192|989898|1|9999047192|MR|Test|E|Lead 47192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047193|147193|989898|1|9999047193|MR|Test|E|Lead 47193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047194|147194|989898|1|9999047194|MR|Test|E|Lead 47194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047195|147195|989898|1|9999047195|MR|Test|E|Lead 47195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047196|147196|989898|1|9999047196|MR|Test|E|Lead 47196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047197|147197|989898|1|9999047197|MR|Test|E|Lead 47197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047198|147198|989898|1|9999047198|MR|Test|E|Lead 47198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047199|147199|989898|1|9999047199|MR|Test|E|Lead 47199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047200|147200|989898|1|9999047200|MR|Test|E|Lead 47200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047201|147201|989898|1|9999047201|MR|Test|E|Lead 47201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047202|147202|989898|1|9999047202|MR|Test|E|Lead 47202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047203|147203|989898|1|9999047203|MR|Test|E|Lead 47203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047204|147204|989898|1|9999047204|MR|Test|E|Lead 47204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047205|147205|989898|1|9999047205|MR|Test|E|Lead 47205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047206|147206|989898|1|9999047206|MR|Test|E|Lead 47206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047207|147207|989898|1|9999047207|MR|Test|E|Lead 47207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047208|147208|989898|1|9999047208|MR|Test|E|Lead 47208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047209|147209|989898|1|9999047209|MR|Test|E|Lead 47209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047210|147210|989898|1|9999047210|MR|Test|E|Lead 47210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047211|147211|989898|1|9999047211|MR|Test|E|Lead 47211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047212|147212|989898|1|9999047212|MR|Test|E|Lead 47212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047213|147213|989898|1|9999047213|MR|Test|E|Lead 47213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047214|147214|989898|1|9999047214|MR|Test|E|Lead 47214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047215|147215|989898|1|9999047215|MR|Test|E|Lead 47215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047216|147216|989898|1|9999047216|MR|Test|E|Lead 47216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047217|147217|989898|1|9999047217|MR|Test|E|Lead 47217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047218|147218|989898|1|9999047218|MR|Test|E|Lead 47218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047219|147219|989898|1|9999047219|MR|Test|E|Lead 47219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047220|147220|989898|1|9999047220|MR|Test|E|Lead 47220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047221|147221|989898|1|9999047221|MR|Test|E|Lead 47221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047222|147222|989898|1|9999047222|MR|Test|E|Lead 47222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047223|147223|989898|1|9999047223|MR|Test|E|Lead 47223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047224|147224|989898|1|9999047224|MR|Test|E|Lead 47224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047225|147225|989898|1|9999047225|MR|Test|E|Lead 47225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047226|147226|989898|1|9999047226|MR|Test|E|Lead 47226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047227|147227|989898|1|9999047227|MR|Test|E|Lead 47227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047228|147228|989898|1|9999047228|MR|Test|E|Lead 47228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047229|147229|989898|1|9999047229|MR|Test|E|Lead 47229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047230|147230|989898|1|9999047230|MR|Test|E|Lead 47230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047231|147231|989898|1|9999047231|MR|Test|E|Lead 47231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047232|147232|989898|1|9999047232|MR|Test|E|Lead 47232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047233|147233|989898|1|9999047233|MR|Test|E|Lead 47233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047234|147234|989898|1|9999047234|MR|Test|E|Lead 47234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047235|147235|989898|1|9999047235|MR|Test|E|Lead 47235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047236|147236|989898|1|9999047236|MR|Test|E|Lead 47236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047237|147237|989898|1|9999047237|MR|Test|E|Lead 47237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047238|147238|989898|1|9999047238|MR|Test|E|Lead 47238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047239|147239|989898|1|9999047239|MR|Test|E|Lead 47239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047240|147240|989898|1|9999047240|MR|Test|E|Lead 47240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047241|147241|989898|1|9999047241|MR|Test|E|Lead 47241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047242|147242|989898|1|9999047242|MR|Test|E|Lead 47242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047243|147243|989898|1|9999047243|MR|Test|E|Lead 47243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047244|147244|989898|1|9999047244|MR|Test|E|Lead 47244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047245|147245|989898|1|9999047245|MR|Test|E|Lead 47245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047246|147246|989898|1|9999047246|MR|Test|E|Lead 47246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047247|147247|989898|1|9999047247|MR|Test|E|Lead 47247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047248|147248|989898|1|9999047248|MR|Test|E|Lead 47248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047249|147249|989898|1|9999047249|MR|Test|E|Lead 47249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047250|147250|989898|1|9999047250|MR|Test|E|Lead 47250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047251|147251|989898|1|9999047251|MR|Test|E|Lead 47251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047252|147252|989898|1|9999047252|MR|Test|E|Lead 47252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047253|147253|989898|1|9999047253|MR|Test|E|Lead 47253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047254|147254|989898|1|9999047254|MR|Test|E|Lead 47254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047255|147255|989898|1|9999047255|MR|Test|E|Lead 47255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047256|147256|989898|1|9999047256|MR|Test|E|Lead 47256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047257|147257|989898|1|9999047257|MR|Test|E|Lead 47257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047258|147258|989898|1|9999047258|MR|Test|E|Lead 47258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047259|147259|989898|1|9999047259|MR|Test|E|Lead 47259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047260|147260|989898|1|9999047260|MR|Test|E|Lead 47260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047261|147261|989898|1|9999047261|MR|Test|E|Lead 47261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047262|147262|989898|1|9999047262|MR|Test|E|Lead 47262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047263|147263|989898|1|9999047263|MR|Test|E|Lead 47263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047264|147264|989898|1|9999047264|MR|Test|E|Lead 47264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047265|147265|989898|1|9999047265|MR|Test|E|Lead 47265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047266|147266|989898|1|9999047266|MR|Test|E|Lead 47266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047267|147267|989898|1|9999047267|MR|Test|E|Lead 47267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047268|147268|989898|1|9999047268|MR|Test|E|Lead 47268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047269|147269|989898|1|9999047269|MR|Test|E|Lead 47269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047270|147270|989898|1|9999047270|MR|Test|E|Lead 47270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047271|147271|989898|1|9999047271|MR|Test|E|Lead 47271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047272|147272|989898|1|9999047272|MR|Test|E|Lead 47272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047273|147273|989898|1|9999047273|MR|Test|E|Lead 47273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047274|147274|989898|1|9999047274|MR|Test|E|Lead 47274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047275|147275|989898|1|9999047275|MR|Test|E|Lead 47275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047276|147276|989898|1|9999047276|MR|Test|E|Lead 47276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047277|147277|989898|1|9999047277|MR|Test|E|Lead 47277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047278|147278|989898|1|9999047278|MR|Test|E|Lead 47278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047279|147279|989898|1|9999047279|MR|Test|E|Lead 47279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047280|147280|989898|1|9999047280|MR|Test|E|Lead 47280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047281|147281|989898|1|9999047281|MR|Test|E|Lead 47281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047282|147282|989898|1|9999047282|MR|Test|E|Lead 47282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047283|147283|989898|1|9999047283|MR|Test|E|Lead 47283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047284|147284|989898|1|9999047284|MR|Test|E|Lead 47284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047285|147285|989898|1|9999047285|MR|Test|E|Lead 47285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047286|147286|989898|1|9999047286|MR|Test|E|Lead 47286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047287|147287|989898|1|9999047287|MR|Test|E|Lead 47287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047288|147288|989898|1|9999047288|MR|Test|E|Lead 47288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047289|147289|989898|1|9999047289|MR|Test|E|Lead 47289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047290|147290|989898|1|9999047290|MR|Test|E|Lead 47290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047291|147291|989898|1|9999047291|MR|Test|E|Lead 47291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047292|147292|989898|1|9999047292|MR|Test|E|Lead 47292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047293|147293|989898|1|9999047293|MR|Test|E|Lead 47293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047294|147294|989898|1|9999047294|MR|Test|E|Lead 47294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047295|147295|989898|1|9999047295|MR|Test|E|Lead 47295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047296|147296|989898|1|9999047296|MR|Test|E|Lead 47296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047297|147297|989898|1|9999047297|MR|Test|E|Lead 47297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047298|147298|989898|1|9999047298|MR|Test|E|Lead 47298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047299|147299|989898|1|9999047299|MR|Test|E|Lead 47299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047300|147300|989898|1|9999047300|MR|Test|E|Lead 47300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047301|147301|989898|1|9999047301|MR|Test|E|Lead 47301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047302|147302|989898|1|9999047302|MR|Test|E|Lead 47302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047303|147303|989898|1|9999047303|MR|Test|E|Lead 47303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047304|147304|989898|1|9999047304|MR|Test|E|Lead 47304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047305|147305|989898|1|9999047305|MR|Test|E|Lead 47305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047306|147306|989898|1|9999047306|MR|Test|E|Lead 47306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047307|147307|989898|1|9999047307|MR|Test|E|Lead 47307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047308|147308|989898|1|9999047308|MR|Test|E|Lead 47308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047309|147309|989898|1|9999047309|MR|Test|E|Lead 47309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047310|147310|989898|1|9999047310|MR|Test|E|Lead 47310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047311|147311|989898|1|9999047311|MR|Test|E|Lead 47311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047312|147312|989898|1|9999047312|MR|Test|E|Lead 47312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047313|147313|989898|1|9999047313|MR|Test|E|Lead 47313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047314|147314|989898|1|9999047314|MR|Test|E|Lead 47314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047315|147315|989898|1|9999047315|MR|Test|E|Lead 47315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047316|147316|989898|1|9999047316|MR|Test|E|Lead 47316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047317|147317|989898|1|9999047317|MR|Test|E|Lead 47317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047318|147318|989898|1|9999047318|MR|Test|E|Lead 47318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047319|147319|989898|1|9999047319|MR|Test|E|Lead 47319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047320|147320|989898|1|9999047320|MR|Test|E|Lead 47320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047321|147321|989898|1|9999047321|MR|Test|E|Lead 47321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047322|147322|989898|1|9999047322|MR|Test|E|Lead 47322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047323|147323|989898|1|9999047323|MR|Test|E|Lead 47323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047324|147324|989898|1|9999047324|MR|Test|E|Lead 47324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047325|147325|989898|1|9999047325|MR|Test|E|Lead 47325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047326|147326|989898|1|9999047326|MR|Test|E|Lead 47326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047327|147327|989898|1|9999047327|MR|Test|E|Lead 47327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047328|147328|989898|1|9999047328|MR|Test|E|Lead 47328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047329|147329|989898|1|9999047329|MR|Test|E|Lead 47329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047330|147330|989898|1|9999047330|MR|Test|E|Lead 47330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047331|147331|989898|1|9999047331|MR|Test|E|Lead 47331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047332|147332|989898|1|9999047332|MR|Test|E|Lead 47332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047333|147333|989898|1|9999047333|MR|Test|E|Lead 47333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047334|147334|989898|1|9999047334|MR|Test|E|Lead 47334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047335|147335|989898|1|9999047335|MR|Test|E|Lead 47335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047336|147336|989898|1|9999047336|MR|Test|E|Lead 47336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047337|147337|989898|1|9999047337|MR|Test|E|Lead 47337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047338|147338|989898|1|9999047338|MR|Test|E|Lead 47338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047339|147339|989898|1|9999047339|MR|Test|E|Lead 47339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047340|147340|989898|1|9999047340|MR|Test|E|Lead 47340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047341|147341|989898|1|9999047341|MR|Test|E|Lead 47341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047342|147342|989898|1|9999047342|MR|Test|E|Lead 47342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047343|147343|989898|1|9999047343|MR|Test|E|Lead 47343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047344|147344|989898|1|9999047344|MR|Test|E|Lead 47344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047345|147345|989898|1|9999047345|MR|Test|E|Lead 47345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047346|147346|989898|1|9999047346|MR|Test|E|Lead 47346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047347|147347|989898|1|9999047347|MR|Test|E|Lead 47347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047348|147348|989898|1|9999047348|MR|Test|E|Lead 47348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047349|147349|989898|1|9999047349|MR|Test|E|Lead 47349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047350|147350|989898|1|9999047350|MR|Test|E|Lead 47350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047351|147351|989898|1|9999047351|MR|Test|E|Lead 47351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047352|147352|989898|1|9999047352|MR|Test|E|Lead 47352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047353|147353|989898|1|9999047353|MR|Test|E|Lead 47353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047354|147354|989898|1|9999047354|MR|Test|E|Lead 47354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047355|147355|989898|1|9999047355|MR|Test|E|Lead 47355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047356|147356|989898|1|9999047356|MR|Test|E|Lead 47356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047357|147357|989898|1|9999047357|MR|Test|E|Lead 47357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047358|147358|989898|1|9999047358|MR|Test|E|Lead 47358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047359|147359|989898|1|9999047359|MR|Test|E|Lead 47359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047360|147360|989898|1|9999047360|MR|Test|E|Lead 47360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047361|147361|989898|1|9999047361|MR|Test|E|Lead 47361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047362|147362|989898|1|9999047362|MR|Test|E|Lead 47362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047363|147363|989898|1|9999047363|MR|Test|E|Lead 47363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047364|147364|989898|1|9999047364|MR|Test|E|Lead 47364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047365|147365|989898|1|9999047365|MR|Test|E|Lead 47365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047366|147366|989898|1|9999047366|MR|Test|E|Lead 47366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047367|147367|989898|1|9999047367|MR|Test|E|Lead 47367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047368|147368|989898|1|9999047368|MR|Test|E|Lead 47368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047369|147369|989898|1|9999047369|MR|Test|E|Lead 47369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047370|147370|989898|1|9999047370|MR|Test|E|Lead 47370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047371|147371|989898|1|9999047371|MR|Test|E|Lead 47371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047372|147372|989898|1|9999047372|MR|Test|E|Lead 47372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047373|147373|989898|1|9999047373|MR|Test|E|Lead 47373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047374|147374|989898|1|9999047374|MR|Test|E|Lead 47374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047375|147375|989898|1|9999047375|MR|Test|E|Lead 47375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047376|147376|989898|1|9999047376|MR|Test|E|Lead 47376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047377|147377|989898|1|9999047377|MR|Test|E|Lead 47377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047378|147378|989898|1|9999047378|MR|Test|E|Lead 47378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047379|147379|989898|1|9999047379|MR|Test|E|Lead 47379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047380|147380|989898|1|9999047380|MR|Test|E|Lead 47380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047381|147381|989898|1|9999047381|MR|Test|E|Lead 47381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047382|147382|989898|1|9999047382|MR|Test|E|Lead 47382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047383|147383|989898|1|9999047383|MR|Test|E|Lead 47383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047384|147384|989898|1|9999047384|MR|Test|E|Lead 47384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047385|147385|989898|1|9999047385|MR|Test|E|Lead 47385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047386|147386|989898|1|9999047386|MR|Test|E|Lead 47386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047387|147387|989898|1|9999047387|MR|Test|E|Lead 47387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047388|147388|989898|1|9999047388|MR|Test|E|Lead 47388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047389|147389|989898|1|9999047389|MR|Test|E|Lead 47389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047390|147390|989898|1|9999047390|MR|Test|E|Lead 47390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047391|147391|989898|1|9999047391|MR|Test|E|Lead 47391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047392|147392|989898|1|9999047392|MR|Test|E|Lead 47392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047393|147393|989898|1|9999047393|MR|Test|E|Lead 47393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047394|147394|989898|1|9999047394|MR|Test|E|Lead 47394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047395|147395|989898|1|9999047395|MR|Test|E|Lead 47395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047396|147396|989898|1|9999047396|MR|Test|E|Lead 47396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047397|147397|989898|1|9999047397|MR|Test|E|Lead 47397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047398|147398|989898|1|9999047398|MR|Test|E|Lead 47398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047399|147399|989898|1|9999047399|MR|Test|E|Lead 47399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047400|147400|989898|1|9999047400|MR|Test|E|Lead 47400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047401|147401|989898|1|9999047401|MR|Test|E|Lead 47401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047402|147402|989898|1|9999047402|MR|Test|E|Lead 47402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047403|147403|989898|1|9999047403|MR|Test|E|Lead 47403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047404|147404|989898|1|9999047404|MR|Test|E|Lead 47404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047405|147405|989898|1|9999047405|MR|Test|E|Lead 47405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047406|147406|989898|1|9999047406|MR|Test|E|Lead 47406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047407|147407|989898|1|9999047407|MR|Test|E|Lead 47407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047408|147408|989898|1|9999047408|MR|Test|E|Lead 47408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047409|147409|989898|1|9999047409|MR|Test|E|Lead 47409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047410|147410|989898|1|9999047410|MR|Test|E|Lead 47410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047411|147411|989898|1|9999047411|MR|Test|E|Lead 47411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047412|147412|989898|1|9999047412|MR|Test|E|Lead 47412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047413|147413|989898|1|9999047413|MR|Test|E|Lead 47413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047414|147414|989898|1|9999047414|MR|Test|E|Lead 47414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047415|147415|989898|1|9999047415|MR|Test|E|Lead 47415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047416|147416|989898|1|9999047416|MR|Test|E|Lead 47416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047417|147417|989898|1|9999047417|MR|Test|E|Lead 47417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047418|147418|989898|1|9999047418|MR|Test|E|Lead 47418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047419|147419|989898|1|9999047419|MR|Test|E|Lead 47419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047420|147420|989898|1|9999047420|MR|Test|E|Lead 47420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047421|147421|989898|1|9999047421|MR|Test|E|Lead 47421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047422|147422|989898|1|9999047422|MR|Test|E|Lead 47422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047423|147423|989898|1|9999047423|MR|Test|E|Lead 47423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047424|147424|989898|1|9999047424|MR|Test|E|Lead 47424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047425|147425|989898|1|9999047425|MR|Test|E|Lead 47425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047426|147426|989898|1|9999047426|MR|Test|E|Lead 47426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047427|147427|989898|1|9999047427|MR|Test|E|Lead 47427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047428|147428|989898|1|9999047428|MR|Test|E|Lead 47428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047429|147429|989898|1|9999047429|MR|Test|E|Lead 47429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047430|147430|989898|1|9999047430|MR|Test|E|Lead 47430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047431|147431|989898|1|9999047431|MR|Test|E|Lead 47431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047432|147432|989898|1|9999047432|MR|Test|E|Lead 47432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047433|147433|989898|1|9999047433|MR|Test|E|Lead 47433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047434|147434|989898|1|9999047434|MR|Test|E|Lead 47434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047435|147435|989898|1|9999047435|MR|Test|E|Lead 47435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047436|147436|989898|1|9999047436|MR|Test|E|Lead 47436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047437|147437|989898|1|9999047437|MR|Test|E|Lead 47437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047438|147438|989898|1|9999047438|MR|Test|E|Lead 47438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047439|147439|989898|1|9999047439|MR|Test|E|Lead 47439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047440|147440|989898|1|9999047440|MR|Test|E|Lead 47440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047441|147441|989898|1|9999047441|MR|Test|E|Lead 47441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047442|147442|989898|1|9999047442|MR|Test|E|Lead 47442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047443|147443|989898|1|9999047443|MR|Test|E|Lead 47443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047444|147444|989898|1|9999047444|MR|Test|E|Lead 47444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047445|147445|989898|1|9999047445|MR|Test|E|Lead 47445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047446|147446|989898|1|9999047446|MR|Test|E|Lead 47446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047447|147447|989898|1|9999047447|MR|Test|E|Lead 47447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047448|147448|989898|1|9999047448|MR|Test|E|Lead 47448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047449|147449|989898|1|9999047449|MR|Test|E|Lead 47449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047450|147450|989898|1|9999047450|MR|Test|E|Lead 47450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047451|147451|989898|1|9999047451|MR|Test|E|Lead 47451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047452|147452|989898|1|9999047452|MR|Test|E|Lead 47452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047453|147453|989898|1|9999047453|MR|Test|E|Lead 47453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047454|147454|989898|1|9999047454|MR|Test|E|Lead 47454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047455|147455|989898|1|9999047455|MR|Test|E|Lead 47455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047456|147456|989898|1|9999047456|MR|Test|E|Lead 47456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047457|147457|989898|1|9999047457|MR|Test|E|Lead 47457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047458|147458|989898|1|9999047458|MR|Test|E|Lead 47458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047459|147459|989898|1|9999047459|MR|Test|E|Lead 47459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047460|147460|989898|1|9999047460|MR|Test|E|Lead 47460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047461|147461|989898|1|9999047461|MR|Test|E|Lead 47461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047462|147462|989898|1|9999047462|MR|Test|E|Lead 47462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047463|147463|989898|1|9999047463|MR|Test|E|Lead 47463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047464|147464|989898|1|9999047464|MR|Test|E|Lead 47464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047465|147465|989898|1|9999047465|MR|Test|E|Lead 47465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047466|147466|989898|1|9999047466|MR|Test|E|Lead 47466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047467|147467|989898|1|9999047467|MR|Test|E|Lead 47467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047468|147468|989898|1|9999047468|MR|Test|E|Lead 47468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047469|147469|989898|1|9999047469|MR|Test|E|Lead 47469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047470|147470|989898|1|9999047470|MR|Test|E|Lead 47470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047471|147471|989898|1|9999047471|MR|Test|E|Lead 47471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047472|147472|989898|1|9999047472|MR|Test|E|Lead 47472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047473|147473|989898|1|9999047473|MR|Test|E|Lead 47473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047474|147474|989898|1|9999047474|MR|Test|E|Lead 47474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047475|147475|989898|1|9999047475|MR|Test|E|Lead 47475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047476|147476|989898|1|9999047476|MR|Test|E|Lead 47476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047477|147477|989898|1|9999047477|MR|Test|E|Lead 47477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047478|147478|989898|1|9999047478|MR|Test|E|Lead 47478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047479|147479|989898|1|9999047479|MR|Test|E|Lead 47479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047480|147480|989898|1|9999047480|MR|Test|E|Lead 47480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047481|147481|989898|1|9999047481|MR|Test|E|Lead 47481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047482|147482|989898|1|9999047482|MR|Test|E|Lead 47482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047483|147483|989898|1|9999047483|MR|Test|E|Lead 47483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047484|147484|989898|1|9999047484|MR|Test|E|Lead 47484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047485|147485|989898|1|9999047485|MR|Test|E|Lead 47485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047486|147486|989898|1|9999047486|MR|Test|E|Lead 47486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047487|147487|989898|1|9999047487|MR|Test|E|Lead 47487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047488|147488|989898|1|9999047488|MR|Test|E|Lead 47488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047489|147489|989898|1|9999047489|MR|Test|E|Lead 47489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047490|147490|989898|1|9999047490|MR|Test|E|Lead 47490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047491|147491|989898|1|9999047491|MR|Test|E|Lead 47491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047492|147492|989898|1|9999047492|MR|Test|E|Lead 47492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047493|147493|989898|1|9999047493|MR|Test|E|Lead 47493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047494|147494|989898|1|9999047494|MR|Test|E|Lead 47494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047495|147495|989898|1|9999047495|MR|Test|E|Lead 47495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047496|147496|989898|1|9999047496|MR|Test|E|Lead 47496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047497|147497|989898|1|9999047497|MR|Test|E|Lead 47497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047498|147498|989898|1|9999047498|MR|Test|E|Lead 47498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047499|147499|989898|1|9999047499|MR|Test|E|Lead 47499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047500|147500|989898|1|9999047500|MR|Test|E|Lead 47500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047501|147501|989898|1|9999047501|MR|Test|E|Lead 47501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047502|147502|989898|1|9999047502|MR|Test|E|Lead 47502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047503|147503|989898|1|9999047503|MR|Test|E|Lead 47503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047504|147504|989898|1|9999047504|MR|Test|E|Lead 47504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047505|147505|989898|1|9999047505|MR|Test|E|Lead 47505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047506|147506|989898|1|9999047506|MR|Test|E|Lead 47506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047507|147507|989898|1|9999047507|MR|Test|E|Lead 47507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047508|147508|989898|1|9999047508|MR|Test|E|Lead 47508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047509|147509|989898|1|9999047509|MR|Test|E|Lead 47509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047510|147510|989898|1|9999047510|MR|Test|E|Lead 47510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047511|147511|989898|1|9999047511|MR|Test|E|Lead 47511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047512|147512|989898|1|9999047512|MR|Test|E|Lead 47512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047513|147513|989898|1|9999047513|MR|Test|E|Lead 47513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047514|147514|989898|1|9999047514|MR|Test|E|Lead 47514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047515|147515|989898|1|9999047515|MR|Test|E|Lead 47515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047516|147516|989898|1|9999047516|MR|Test|E|Lead 47516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047517|147517|989898|1|9999047517|MR|Test|E|Lead 47517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047518|147518|989898|1|9999047518|MR|Test|E|Lead 47518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047519|147519|989898|1|9999047519|MR|Test|E|Lead 47519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047520|147520|989898|1|9999047520|MR|Test|E|Lead 47520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047521|147521|989898|1|9999047521|MR|Test|E|Lead 47521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047522|147522|989898|1|9999047522|MR|Test|E|Lead 47522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047523|147523|989898|1|9999047523|MR|Test|E|Lead 47523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047524|147524|989898|1|9999047524|MR|Test|E|Lead 47524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047525|147525|989898|1|9999047525|MR|Test|E|Lead 47525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047526|147526|989898|1|9999047526|MR|Test|E|Lead 47526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047527|147527|989898|1|9999047527|MR|Test|E|Lead 47527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047528|147528|989898|1|9999047528|MR|Test|E|Lead 47528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047529|147529|989898|1|9999047529|MR|Test|E|Lead 47529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047530|147530|989898|1|9999047530|MR|Test|E|Lead 47530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047531|147531|989898|1|9999047531|MR|Test|E|Lead 47531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047532|147532|989898|1|9999047532|MR|Test|E|Lead 47532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047533|147533|989898|1|9999047533|MR|Test|E|Lead 47533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047534|147534|989898|1|9999047534|MR|Test|E|Lead 47534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047535|147535|989898|1|9999047535|MR|Test|E|Lead 47535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047536|147536|989898|1|9999047536|MR|Test|E|Lead 47536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047537|147537|989898|1|9999047537|MR|Test|E|Lead 47537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047538|147538|989898|1|9999047538|MR|Test|E|Lead 47538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047539|147539|989898|1|9999047539|MR|Test|E|Lead 47539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047540|147540|989898|1|9999047540|MR|Test|E|Lead 47540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047541|147541|989898|1|9999047541|MR|Test|E|Lead 47541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047542|147542|989898|1|9999047542|MR|Test|E|Lead 47542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047543|147543|989898|1|9999047543|MR|Test|E|Lead 47543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047544|147544|989898|1|9999047544|MR|Test|E|Lead 47544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047545|147545|989898|1|9999047545|MR|Test|E|Lead 47545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047546|147546|989898|1|9999047546|MR|Test|E|Lead 47546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047547|147547|989898|1|9999047547|MR|Test|E|Lead 47547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047548|147548|989898|1|9999047548|MR|Test|E|Lead 47548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047549|147549|989898|1|9999047549|MR|Test|E|Lead 47549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047550|147550|989898|1|9999047550|MR|Test|E|Lead 47550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047551|147551|989898|1|9999047551|MR|Test|E|Lead 47551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047552|147552|989898|1|9999047552|MR|Test|E|Lead 47552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047553|147553|989898|1|9999047553|MR|Test|E|Lead 47553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047554|147554|989898|1|9999047554|MR|Test|E|Lead 47554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047555|147555|989898|1|9999047555|MR|Test|E|Lead 47555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047556|147556|989898|1|9999047556|MR|Test|E|Lead 47556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047557|147557|989898|1|9999047557|MR|Test|E|Lead 47557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047558|147558|989898|1|9999047558|MR|Test|E|Lead 47558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047559|147559|989898|1|9999047559|MR|Test|E|Lead 47559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047560|147560|989898|1|9999047560|MR|Test|E|Lead 47560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047561|147561|989898|1|9999047561|MR|Test|E|Lead 47561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047562|147562|989898|1|9999047562|MR|Test|E|Lead 47562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047563|147563|989898|1|9999047563|MR|Test|E|Lead 47563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047564|147564|989898|1|9999047564|MR|Test|E|Lead 47564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047565|147565|989898|1|9999047565|MR|Test|E|Lead 47565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047566|147566|989898|1|9999047566|MR|Test|E|Lead 47566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047567|147567|989898|1|9999047567|MR|Test|E|Lead 47567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047568|147568|989898|1|9999047568|MR|Test|E|Lead 47568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047569|147569|989898|1|9999047569|MR|Test|E|Lead 47569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047570|147570|989898|1|9999047570|MR|Test|E|Lead 47570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047571|147571|989898|1|9999047571|MR|Test|E|Lead 47571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047572|147572|989898|1|9999047572|MR|Test|E|Lead 47572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047573|147573|989898|1|9999047573|MR|Test|E|Lead 47573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047574|147574|989898|1|9999047574|MR|Test|E|Lead 47574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047575|147575|989898|1|9999047575|MR|Test|E|Lead 47575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047576|147576|989898|1|9999047576|MR|Test|E|Lead 47576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047577|147577|989898|1|9999047577|MR|Test|E|Lead 47577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047578|147578|989898|1|9999047578|MR|Test|E|Lead 47578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047579|147579|989898|1|9999047579|MR|Test|E|Lead 47579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047580|147580|989898|1|9999047580|MR|Test|E|Lead 47580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047581|147581|989898|1|9999047581|MR|Test|E|Lead 47581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047582|147582|989898|1|9999047582|MR|Test|E|Lead 47582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047583|147583|989898|1|9999047583|MR|Test|E|Lead 47583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047584|147584|989898|1|9999047584|MR|Test|E|Lead 47584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047585|147585|989898|1|9999047585|MR|Test|E|Lead 47585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047586|147586|989898|1|9999047586|MR|Test|E|Lead 47586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047587|147587|989898|1|9999047587|MR|Test|E|Lead 47587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047588|147588|989898|1|9999047588|MR|Test|E|Lead 47588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047589|147589|989898|1|9999047589|MR|Test|E|Lead 47589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047590|147590|989898|1|9999047590|MR|Test|E|Lead 47590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047591|147591|989898|1|9999047591|MR|Test|E|Lead 47591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047592|147592|989898|1|9999047592|MR|Test|E|Lead 47592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047593|147593|989898|1|9999047593|MR|Test|E|Lead 47593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047594|147594|989898|1|9999047594|MR|Test|E|Lead 47594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047595|147595|989898|1|9999047595|MR|Test|E|Lead 47595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047596|147596|989898|1|9999047596|MR|Test|E|Lead 47596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047597|147597|989898|1|9999047597|MR|Test|E|Lead 47597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047598|147598|989898|1|9999047598|MR|Test|E|Lead 47598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047599|147599|989898|1|9999047599|MR|Test|E|Lead 47599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047600|147600|989898|1|9999047600|MR|Test|E|Lead 47600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047601|147601|989898|1|9999047601|MR|Test|E|Lead 47601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047602|147602|989898|1|9999047602|MR|Test|E|Lead 47602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047603|147603|989898|1|9999047603|MR|Test|E|Lead 47603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047604|147604|989898|1|9999047604|MR|Test|E|Lead 47604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047605|147605|989898|1|9999047605|MR|Test|E|Lead 47605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047606|147606|989898|1|9999047606|MR|Test|E|Lead 47606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047607|147607|989898|1|9999047607|MR|Test|E|Lead 47607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047608|147608|989898|1|9999047608|MR|Test|E|Lead 47608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047609|147609|989898|1|9999047609|MR|Test|E|Lead 47609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047610|147610|989898|1|9999047610|MR|Test|E|Lead 47610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047611|147611|989898|1|9999047611|MR|Test|E|Lead 47611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047612|147612|989898|1|9999047612|MR|Test|E|Lead 47612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047613|147613|989898|1|9999047613|MR|Test|E|Lead 47613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047614|147614|989898|1|9999047614|MR|Test|E|Lead 47614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047615|147615|989898|1|9999047615|MR|Test|E|Lead 47615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047616|147616|989898|1|9999047616|MR|Test|E|Lead 47616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047617|147617|989898|1|9999047617|MR|Test|E|Lead 47617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047618|147618|989898|1|9999047618|MR|Test|E|Lead 47618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047619|147619|989898|1|9999047619|MR|Test|E|Lead 47619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047620|147620|989898|1|9999047620|MR|Test|E|Lead 47620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047621|147621|989898|1|9999047621|MR|Test|E|Lead 47621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047622|147622|989898|1|9999047622|MR|Test|E|Lead 47622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047623|147623|989898|1|9999047623|MR|Test|E|Lead 47623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047624|147624|989898|1|9999047624|MR|Test|E|Lead 47624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047625|147625|989898|1|9999047625|MR|Test|E|Lead 47625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047626|147626|989898|1|9999047626|MR|Test|E|Lead 47626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047627|147627|989898|1|9999047627|MR|Test|E|Lead 47627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047628|147628|989898|1|9999047628|MR|Test|E|Lead 47628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047629|147629|989898|1|9999047629|MR|Test|E|Lead 47629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047630|147630|989898|1|9999047630|MR|Test|E|Lead 47630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047631|147631|989898|1|9999047631|MR|Test|E|Lead 47631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047632|147632|989898|1|9999047632|MR|Test|E|Lead 47632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047633|147633|989898|1|9999047633|MR|Test|E|Lead 47633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047634|147634|989898|1|9999047634|MR|Test|E|Lead 47634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047635|147635|989898|1|9999047635|MR|Test|E|Lead 47635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047636|147636|989898|1|9999047636|MR|Test|E|Lead 47636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047637|147637|989898|1|9999047637|MR|Test|E|Lead 47637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047638|147638|989898|1|9999047638|MR|Test|E|Lead 47638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047639|147639|989898|1|9999047639|MR|Test|E|Lead 47639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047640|147640|989898|1|9999047640|MR|Test|E|Lead 47640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047641|147641|989898|1|9999047641|MR|Test|E|Lead 47641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047642|147642|989898|1|9999047642|MR|Test|E|Lead 47642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047643|147643|989898|1|9999047643|MR|Test|E|Lead 47643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047644|147644|989898|1|9999047644|MR|Test|E|Lead 47644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047645|147645|989898|1|9999047645|MR|Test|E|Lead 47645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047646|147646|989898|1|9999047646|MR|Test|E|Lead 47646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047647|147647|989898|1|9999047647|MR|Test|E|Lead 47647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047648|147648|989898|1|9999047648|MR|Test|E|Lead 47648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047649|147649|989898|1|9999047649|MR|Test|E|Lead 47649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047650|147650|989898|1|9999047650|MR|Test|E|Lead 47650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047651|147651|989898|1|9999047651|MR|Test|E|Lead 47651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047652|147652|989898|1|9999047652|MR|Test|E|Lead 47652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047653|147653|989898|1|9999047653|MR|Test|E|Lead 47653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047654|147654|989898|1|9999047654|MR|Test|E|Lead 47654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047655|147655|989898|1|9999047655|MR|Test|E|Lead 47655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047656|147656|989898|1|9999047656|MR|Test|E|Lead 47656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047657|147657|989898|1|9999047657|MR|Test|E|Lead 47657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047658|147658|989898|1|9999047658|MR|Test|E|Lead 47658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047659|147659|989898|1|9999047659|MR|Test|E|Lead 47659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047660|147660|989898|1|9999047660|MR|Test|E|Lead 47660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047661|147661|989898|1|9999047661|MR|Test|E|Lead 47661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047662|147662|989898|1|9999047662|MR|Test|E|Lead 47662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047663|147663|989898|1|9999047663|MR|Test|E|Lead 47663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047664|147664|989898|1|9999047664|MR|Test|E|Lead 47664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047665|147665|989898|1|9999047665|MR|Test|E|Lead 47665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047666|147666|989898|1|9999047666|MR|Test|E|Lead 47666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047667|147667|989898|1|9999047667|MR|Test|E|Lead 47667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047668|147668|989898|1|9999047668|MR|Test|E|Lead 47668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047669|147669|989898|1|9999047669|MR|Test|E|Lead 47669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047670|147670|989898|1|9999047670|MR|Test|E|Lead 47670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047671|147671|989898|1|9999047671|MR|Test|E|Lead 47671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047672|147672|989898|1|9999047672|MR|Test|E|Lead 47672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047673|147673|989898|1|9999047673|MR|Test|E|Lead 47673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047674|147674|989898|1|9999047674|MR|Test|E|Lead 47674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047675|147675|989898|1|9999047675|MR|Test|E|Lead 47675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047676|147676|989898|1|9999047676|MR|Test|E|Lead 47676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047677|147677|989898|1|9999047677|MR|Test|E|Lead 47677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047678|147678|989898|1|9999047678|MR|Test|E|Lead 47678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047679|147679|989898|1|9999047679|MR|Test|E|Lead 47679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047680|147680|989898|1|9999047680|MR|Test|E|Lead 47680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047681|147681|989898|1|9999047681|MR|Test|E|Lead 47681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047682|147682|989898|1|9999047682|MR|Test|E|Lead 47682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047683|147683|989898|1|9999047683|MR|Test|E|Lead 47683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047684|147684|989898|1|9999047684|MR|Test|E|Lead 47684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047685|147685|989898|1|9999047685|MR|Test|E|Lead 47685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047686|147686|989898|1|9999047686|MR|Test|E|Lead 47686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047687|147687|989898|1|9999047687|MR|Test|E|Lead 47687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047688|147688|989898|1|9999047688|MR|Test|E|Lead 47688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047689|147689|989898|1|9999047689|MR|Test|E|Lead 47689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047690|147690|989898|1|9999047690|MR|Test|E|Lead 47690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047691|147691|989898|1|9999047691|MR|Test|E|Lead 47691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047692|147692|989898|1|9999047692|MR|Test|E|Lead 47692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047693|147693|989898|1|9999047693|MR|Test|E|Lead 47693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047694|147694|989898|1|9999047694|MR|Test|E|Lead 47694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047695|147695|989898|1|9999047695|MR|Test|E|Lead 47695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047696|147696|989898|1|9999047696|MR|Test|E|Lead 47696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047697|147697|989898|1|9999047697|MR|Test|E|Lead 47697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047698|147698|989898|1|9999047698|MR|Test|E|Lead 47698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047699|147699|989898|1|9999047699|MR|Test|E|Lead 47699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047700|147700|989898|1|9999047700|MR|Test|E|Lead 47700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047701|147701|989898|1|9999047701|MR|Test|E|Lead 47701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047702|147702|989898|1|9999047702|MR|Test|E|Lead 47702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047703|147703|989898|1|9999047703|MR|Test|E|Lead 47703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047704|147704|989898|1|9999047704|MR|Test|E|Lead 47704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047705|147705|989898|1|9999047705|MR|Test|E|Lead 47705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047706|147706|989898|1|9999047706|MR|Test|E|Lead 47706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047707|147707|989898|1|9999047707|MR|Test|E|Lead 47707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047708|147708|989898|1|9999047708|MR|Test|E|Lead 47708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047709|147709|989898|1|9999047709|MR|Test|E|Lead 47709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047710|147710|989898|1|9999047710|MR|Test|E|Lead 47710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047711|147711|989898|1|9999047711|MR|Test|E|Lead 47711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047712|147712|989898|1|9999047712|MR|Test|E|Lead 47712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047713|147713|989898|1|9999047713|MR|Test|E|Lead 47713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047714|147714|989898|1|9999047714|MR|Test|E|Lead 47714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047715|147715|989898|1|9999047715|MR|Test|E|Lead 47715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047716|147716|989898|1|9999047716|MR|Test|E|Lead 47716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047717|147717|989898|1|9999047717|MR|Test|E|Lead 47717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047718|147718|989898|1|9999047718|MR|Test|E|Lead 47718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047719|147719|989898|1|9999047719|MR|Test|E|Lead 47719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047720|147720|989898|1|9999047720|MR|Test|E|Lead 47720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047721|147721|989898|1|9999047721|MR|Test|E|Lead 47721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047722|147722|989898|1|9999047722|MR|Test|E|Lead 47722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047723|147723|989898|1|9999047723|MR|Test|E|Lead 47723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047724|147724|989898|1|9999047724|MR|Test|E|Lead 47724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047725|147725|989898|1|9999047725|MR|Test|E|Lead 47725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047726|147726|989898|1|9999047726|MR|Test|E|Lead 47726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047727|147727|989898|1|9999047727|MR|Test|E|Lead 47727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047728|147728|989898|1|9999047728|MR|Test|E|Lead 47728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047729|147729|989898|1|9999047729|MR|Test|E|Lead 47729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047730|147730|989898|1|9999047730|MR|Test|E|Lead 47730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047731|147731|989898|1|9999047731|MR|Test|E|Lead 47731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047732|147732|989898|1|9999047732|MR|Test|E|Lead 47732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047733|147733|989898|1|9999047733|MR|Test|E|Lead 47733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047734|147734|989898|1|9999047734|MR|Test|E|Lead 47734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047735|147735|989898|1|9999047735|MR|Test|E|Lead 47735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047736|147736|989898|1|9999047736|MR|Test|E|Lead 47736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047737|147737|989898|1|9999047737|MR|Test|E|Lead 47737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047738|147738|989898|1|9999047738|MR|Test|E|Lead 47738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047739|147739|989898|1|9999047739|MR|Test|E|Lead 47739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047740|147740|989898|1|9999047740|MR|Test|E|Lead 47740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047741|147741|989898|1|9999047741|MR|Test|E|Lead 47741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047742|147742|989898|1|9999047742|MR|Test|E|Lead 47742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047743|147743|989898|1|9999047743|MR|Test|E|Lead 47743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047744|147744|989898|1|9999047744|MR|Test|E|Lead 47744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047745|147745|989898|1|9999047745|MR|Test|E|Lead 47745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047746|147746|989898|1|9999047746|MR|Test|E|Lead 47746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047747|147747|989898|1|9999047747|MR|Test|E|Lead 47747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047748|147748|989898|1|9999047748|MR|Test|E|Lead 47748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047749|147749|989898|1|9999047749|MR|Test|E|Lead 47749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047750|147750|989898|1|9999047750|MR|Test|E|Lead 47750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047751|147751|989898|1|9999047751|MR|Test|E|Lead 47751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047752|147752|989898|1|9999047752|MR|Test|E|Lead 47752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047753|147753|989898|1|9999047753|MR|Test|E|Lead 47753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047754|147754|989898|1|9999047754|MR|Test|E|Lead 47754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047755|147755|989898|1|9999047755|MR|Test|E|Lead 47755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047756|147756|989898|1|9999047756|MR|Test|E|Lead 47756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047757|147757|989898|1|9999047757|MR|Test|E|Lead 47757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047758|147758|989898|1|9999047758|MR|Test|E|Lead 47758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047759|147759|989898|1|9999047759|MR|Test|E|Lead 47759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047760|147760|989898|1|9999047760|MR|Test|E|Lead 47760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047761|147761|989898|1|9999047761|MR|Test|E|Lead 47761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047762|147762|989898|1|9999047762|MR|Test|E|Lead 47762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047763|147763|989898|1|9999047763|MR|Test|E|Lead 47763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047764|147764|989898|1|9999047764|MR|Test|E|Lead 47764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047765|147765|989898|1|9999047765|MR|Test|E|Lead 47765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047766|147766|989898|1|9999047766|MR|Test|E|Lead 47766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047767|147767|989898|1|9999047767|MR|Test|E|Lead 47767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047768|147768|989898|1|9999047768|MR|Test|E|Lead 47768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047769|147769|989898|1|9999047769|MR|Test|E|Lead 47769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047770|147770|989898|1|9999047770|MR|Test|E|Lead 47770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047771|147771|989898|1|9999047771|MR|Test|E|Lead 47771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047772|147772|989898|1|9999047772|MR|Test|E|Lead 47772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047773|147773|989898|1|9999047773|MR|Test|E|Lead 47773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047774|147774|989898|1|9999047774|MR|Test|E|Lead 47774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047775|147775|989898|1|9999047775|MR|Test|E|Lead 47775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047776|147776|989898|1|9999047776|MR|Test|E|Lead 47776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047777|147777|989898|1|9999047777|MR|Test|E|Lead 47777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047778|147778|989898|1|9999047778|MR|Test|E|Lead 47778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047779|147779|989898|1|9999047779|MR|Test|E|Lead 47779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047780|147780|989898|1|9999047780|MR|Test|E|Lead 47780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047781|147781|989898|1|9999047781|MR|Test|E|Lead 47781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047782|147782|989898|1|9999047782|MR|Test|E|Lead 47782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047783|147783|989898|1|9999047783|MR|Test|E|Lead 47783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047784|147784|989898|1|9999047784|MR|Test|E|Lead 47784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047785|147785|989898|1|9999047785|MR|Test|E|Lead 47785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047786|147786|989898|1|9999047786|MR|Test|E|Lead 47786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047787|147787|989898|1|9999047787|MR|Test|E|Lead 47787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047788|147788|989898|1|9999047788|MR|Test|E|Lead 47788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047789|147789|989898|1|9999047789|MR|Test|E|Lead 47789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047790|147790|989898|1|9999047790|MR|Test|E|Lead 47790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047791|147791|989898|1|9999047791|MR|Test|E|Lead 47791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047792|147792|989898|1|9999047792|MR|Test|E|Lead 47792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047793|147793|989898|1|9999047793|MR|Test|E|Lead 47793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047794|147794|989898|1|9999047794|MR|Test|E|Lead 47794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047795|147795|989898|1|9999047795|MR|Test|E|Lead 47795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047796|147796|989898|1|9999047796|MR|Test|E|Lead 47796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047797|147797|989898|1|9999047797|MR|Test|E|Lead 47797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047798|147798|989898|1|9999047798|MR|Test|E|Lead 47798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047799|147799|989898|1|9999047799|MR|Test|E|Lead 47799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047800|147800|989898|1|9999047800|MR|Test|E|Lead 47800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047801|147801|989898|1|9999047801|MR|Test|E|Lead 47801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047802|147802|989898|1|9999047802|MR|Test|E|Lead 47802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047803|147803|989898|1|9999047803|MR|Test|E|Lead 47803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047804|147804|989898|1|9999047804|MR|Test|E|Lead 47804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047805|147805|989898|1|9999047805|MR|Test|E|Lead 47805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047806|147806|989898|1|9999047806|MR|Test|E|Lead 47806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047807|147807|989898|1|9999047807|MR|Test|E|Lead 47807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047808|147808|989898|1|9999047808|MR|Test|E|Lead 47808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047809|147809|989898|1|9999047809|MR|Test|E|Lead 47809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047810|147810|989898|1|9999047810|MR|Test|E|Lead 47810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047811|147811|989898|1|9999047811|MR|Test|E|Lead 47811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047812|147812|989898|1|9999047812|MR|Test|E|Lead 47812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047813|147813|989898|1|9999047813|MR|Test|E|Lead 47813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047814|147814|989898|1|9999047814|MR|Test|E|Lead 47814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047815|147815|989898|1|9999047815|MR|Test|E|Lead 47815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047816|147816|989898|1|9999047816|MR|Test|E|Lead 47816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047817|147817|989898|1|9999047817|MR|Test|E|Lead 47817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047818|147818|989898|1|9999047818|MR|Test|E|Lead 47818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047819|147819|989898|1|9999047819|MR|Test|E|Lead 47819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047820|147820|989898|1|9999047820|MR|Test|E|Lead 47820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047821|147821|989898|1|9999047821|MR|Test|E|Lead 47821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047822|147822|989898|1|9999047822|MR|Test|E|Lead 47822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047823|147823|989898|1|9999047823|MR|Test|E|Lead 47823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047824|147824|989898|1|9999047824|MR|Test|E|Lead 47824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047825|147825|989898|1|9999047825|MR|Test|E|Lead 47825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047826|147826|989898|1|9999047826|MR|Test|E|Lead 47826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047827|147827|989898|1|9999047827|MR|Test|E|Lead 47827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047828|147828|989898|1|9999047828|MR|Test|E|Lead 47828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047829|147829|989898|1|9999047829|MR|Test|E|Lead 47829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047830|147830|989898|1|9999047830|MR|Test|E|Lead 47830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047831|147831|989898|1|9999047831|MR|Test|E|Lead 47831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047832|147832|989898|1|9999047832|MR|Test|E|Lead 47832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047833|147833|989898|1|9999047833|MR|Test|E|Lead 47833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047834|147834|989898|1|9999047834|MR|Test|E|Lead 47834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047835|147835|989898|1|9999047835|MR|Test|E|Lead 47835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047836|147836|989898|1|9999047836|MR|Test|E|Lead 47836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047837|147837|989898|1|9999047837|MR|Test|E|Lead 47837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047838|147838|989898|1|9999047838|MR|Test|E|Lead 47838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047839|147839|989898|1|9999047839|MR|Test|E|Lead 47839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047840|147840|989898|1|9999047840|MR|Test|E|Lead 47840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047841|147841|989898|1|9999047841|MR|Test|E|Lead 47841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047842|147842|989898|1|9999047842|MR|Test|E|Lead 47842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047843|147843|989898|1|9999047843|MR|Test|E|Lead 47843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047844|147844|989898|1|9999047844|MR|Test|E|Lead 47844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047845|147845|989898|1|9999047845|MR|Test|E|Lead 47845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047846|147846|989898|1|9999047846|MR|Test|E|Lead 47846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047847|147847|989898|1|9999047847|MR|Test|E|Lead 47847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047848|147848|989898|1|9999047848|MR|Test|E|Lead 47848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047849|147849|989898|1|9999047849|MR|Test|E|Lead 47849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047850|147850|989898|1|9999047850|MR|Test|E|Lead 47850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047851|147851|989898|1|9999047851|MR|Test|E|Lead 47851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047852|147852|989898|1|9999047852|MR|Test|E|Lead 47852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047853|147853|989898|1|9999047853|MR|Test|E|Lead 47853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047854|147854|989898|1|9999047854|MR|Test|E|Lead 47854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047855|147855|989898|1|9999047855|MR|Test|E|Lead 47855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047856|147856|989898|1|9999047856|MR|Test|E|Lead 47856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047857|147857|989898|1|9999047857|MR|Test|E|Lead 47857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047858|147858|989898|1|9999047858|MR|Test|E|Lead 47858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047859|147859|989898|1|9999047859|MR|Test|E|Lead 47859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047860|147860|989898|1|9999047860|MR|Test|E|Lead 47860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047861|147861|989898|1|9999047861|MR|Test|E|Lead 47861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047862|147862|989898|1|9999047862|MR|Test|E|Lead 47862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047863|147863|989898|1|9999047863|MR|Test|E|Lead 47863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047864|147864|989898|1|9999047864|MR|Test|E|Lead 47864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047865|147865|989898|1|9999047865|MR|Test|E|Lead 47865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047866|147866|989898|1|9999047866|MR|Test|E|Lead 47866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047867|147867|989898|1|9999047867|MR|Test|E|Lead 47867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047868|147868|989898|1|9999047868|MR|Test|E|Lead 47868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047869|147869|989898|1|9999047869|MR|Test|E|Lead 47869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047870|147870|989898|1|9999047870|MR|Test|E|Lead 47870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047871|147871|989898|1|9999047871|MR|Test|E|Lead 47871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047872|147872|989898|1|9999047872|MR|Test|E|Lead 47872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047873|147873|989898|1|9999047873|MR|Test|E|Lead 47873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047874|147874|989898|1|9999047874|MR|Test|E|Lead 47874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047875|147875|989898|1|9999047875|MR|Test|E|Lead 47875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047876|147876|989898|1|9999047876|MR|Test|E|Lead 47876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047877|147877|989898|1|9999047877|MR|Test|E|Lead 47877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047878|147878|989898|1|9999047878|MR|Test|E|Lead 47878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047879|147879|989898|1|9999047879|MR|Test|E|Lead 47879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047880|147880|989898|1|9999047880|MR|Test|E|Lead 47880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047881|147881|989898|1|9999047881|MR|Test|E|Lead 47881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047882|147882|989898|1|9999047882|MR|Test|E|Lead 47882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047883|147883|989898|1|9999047883|MR|Test|E|Lead 47883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047884|147884|989898|1|9999047884|MR|Test|E|Lead 47884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047885|147885|989898|1|9999047885|MR|Test|E|Lead 47885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047886|147886|989898|1|9999047886|MR|Test|E|Lead 47886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047887|147887|989898|1|9999047887|MR|Test|E|Lead 47887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047888|147888|989898|1|9999047888|MR|Test|E|Lead 47888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047889|147889|989898|1|9999047889|MR|Test|E|Lead 47889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047890|147890|989898|1|9999047890|MR|Test|E|Lead 47890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047891|147891|989898|1|9999047891|MR|Test|E|Lead 47891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047892|147892|989898|1|9999047892|MR|Test|E|Lead 47892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047893|147893|989898|1|9999047893|MR|Test|E|Lead 47893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047894|147894|989898|1|9999047894|MR|Test|E|Lead 47894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047895|147895|989898|1|9999047895|MR|Test|E|Lead 47895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047896|147896|989898|1|9999047896|MR|Test|E|Lead 47896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047897|147897|989898|1|9999047897|MR|Test|E|Lead 47897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047898|147898|989898|1|9999047898|MR|Test|E|Lead 47898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047899|147899|989898|1|9999047899|MR|Test|E|Lead 47899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047900|147900|989898|1|9999047900|MR|Test|E|Lead 47900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047901|147901|989898|1|9999047901|MR|Test|E|Lead 47901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047902|147902|989898|1|9999047902|MR|Test|E|Lead 47902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047903|147903|989898|1|9999047903|MR|Test|E|Lead 47903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047904|147904|989898|1|9999047904|MR|Test|E|Lead 47904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047905|147905|989898|1|9999047905|MR|Test|E|Lead 47905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047906|147906|989898|1|9999047906|MR|Test|E|Lead 47906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047907|147907|989898|1|9999047907|MR|Test|E|Lead 47907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047908|147908|989898|1|9999047908|MR|Test|E|Lead 47908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047909|147909|989898|1|9999047909|MR|Test|E|Lead 47909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047910|147910|989898|1|9999047910|MR|Test|E|Lead 47910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047911|147911|989898|1|9999047911|MR|Test|E|Lead 47911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047912|147912|989898|1|9999047912|MR|Test|E|Lead 47912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047913|147913|989898|1|9999047913|MR|Test|E|Lead 47913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047914|147914|989898|1|9999047914|MR|Test|E|Lead 47914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047915|147915|989898|1|9999047915|MR|Test|E|Lead 47915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047916|147916|989898|1|9999047916|MR|Test|E|Lead 47916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047917|147917|989898|1|9999047917|MR|Test|E|Lead 47917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047918|147918|989898|1|9999047918|MR|Test|E|Lead 47918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047919|147919|989898|1|9999047919|MR|Test|E|Lead 47919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047920|147920|989898|1|9999047920|MR|Test|E|Lead 47920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047921|147921|989898|1|9999047921|MR|Test|E|Lead 47921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047922|147922|989898|1|9999047922|MR|Test|E|Lead 47922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047923|147923|989898|1|9999047923|MR|Test|E|Lead 47923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047924|147924|989898|1|9999047924|MR|Test|E|Lead 47924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047925|147925|989898|1|9999047925|MR|Test|E|Lead 47925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047926|147926|989898|1|9999047926|MR|Test|E|Lead 47926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047927|147927|989898|1|9999047927|MR|Test|E|Lead 47927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047928|147928|989898|1|9999047928|MR|Test|E|Lead 47928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047929|147929|989898|1|9999047929|MR|Test|E|Lead 47929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047930|147930|989898|1|9999047930|MR|Test|E|Lead 47930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047931|147931|989898|1|9999047931|MR|Test|E|Lead 47931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047932|147932|989898|1|9999047932|MR|Test|E|Lead 47932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047933|147933|989898|1|9999047933|MR|Test|E|Lead 47933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047934|147934|989898|1|9999047934|MR|Test|E|Lead 47934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047935|147935|989898|1|9999047935|MR|Test|E|Lead 47935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047936|147936|989898|1|9999047936|MR|Test|E|Lead 47936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047937|147937|989898|1|9999047937|MR|Test|E|Lead 47937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047938|147938|989898|1|9999047938|MR|Test|E|Lead 47938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047939|147939|989898|1|9999047939|MR|Test|E|Lead 47939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047940|147940|989898|1|9999047940|MR|Test|E|Lead 47940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047941|147941|989898|1|9999047941|MR|Test|E|Lead 47941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047942|147942|989898|1|9999047942|MR|Test|E|Lead 47942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047943|147943|989898|1|9999047943|MR|Test|E|Lead 47943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047944|147944|989898|1|9999047944|MR|Test|E|Lead 47944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047945|147945|989898|1|9999047945|MR|Test|E|Lead 47945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047946|147946|989898|1|9999047946|MR|Test|E|Lead 47946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047947|147947|989898|1|9999047947|MR|Test|E|Lead 47947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047948|147948|989898|1|9999047948|MR|Test|E|Lead 47948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047949|147949|989898|1|9999047949|MR|Test|E|Lead 47949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047950|147950|989898|1|9999047950|MR|Test|E|Lead 47950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047951|147951|989898|1|9999047951|MR|Test|E|Lead 47951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047952|147952|989898|1|9999047952|MR|Test|E|Lead 47952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047953|147953|989898|1|9999047953|MR|Test|E|Lead 47953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047954|147954|989898|1|9999047954|MR|Test|E|Lead 47954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047955|147955|989898|1|9999047955|MR|Test|E|Lead 47955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047956|147956|989898|1|9999047956|MR|Test|E|Lead 47956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047957|147957|989898|1|9999047957|MR|Test|E|Lead 47957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047958|147958|989898|1|9999047958|MR|Test|E|Lead 47958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047959|147959|989898|1|9999047959|MR|Test|E|Lead 47959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047960|147960|989898|1|9999047960|MR|Test|E|Lead 47960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047961|147961|989898|1|9999047961|MR|Test|E|Lead 47961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047962|147962|989898|1|9999047962|MR|Test|E|Lead 47962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047963|147963|989898|1|9999047963|MR|Test|E|Lead 47963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047964|147964|989898|1|9999047964|MR|Test|E|Lead 47964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047965|147965|989898|1|9999047965|MR|Test|E|Lead 47965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047966|147966|989898|1|9999047966|MR|Test|E|Lead 47966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047967|147967|989898|1|9999047967|MR|Test|E|Lead 47967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047968|147968|989898|1|9999047968|MR|Test|E|Lead 47968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047969|147969|989898|1|9999047969|MR|Test|E|Lead 47969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047970|147970|989898|1|9999047970|MR|Test|E|Lead 47970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047971|147971|989898|1|9999047971|MR|Test|E|Lead 47971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047972|147972|989898|1|9999047972|MR|Test|E|Lead 47972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047973|147973|989898|1|9999047973|MR|Test|E|Lead 47973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047974|147974|989898|1|9999047974|MR|Test|E|Lead 47974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047975|147975|989898|1|9999047975|MR|Test|E|Lead 47975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047976|147976|989898|1|9999047976|MR|Test|E|Lead 47976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047977|147977|989898|1|9999047977|MR|Test|E|Lead 47977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047978|147978|989898|1|9999047978|MR|Test|E|Lead 47978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047979|147979|989898|1|9999047979|MR|Test|E|Lead 47979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047980|147980|989898|1|9999047980|MR|Test|E|Lead 47980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047981|147981|989898|1|9999047981|MR|Test|E|Lead 47981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047982|147982|989898|1|9999047982|MR|Test|E|Lead 47982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047983|147983|989898|1|9999047983|MR|Test|E|Lead 47983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047984|147984|989898|1|9999047984|MR|Test|E|Lead 47984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047985|147985|989898|1|9999047985|MR|Test|E|Lead 47985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047986|147986|989898|1|9999047986|MR|Test|E|Lead 47986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047987|147987|989898|1|9999047987|MR|Test|E|Lead 47987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047988|147988|989898|1|9999047988|MR|Test|E|Lead 47988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047989|147989|989898|1|9999047989|MR|Test|E|Lead 47989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047990|147990|989898|1|9999047990|MR|Test|E|Lead 47990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047991|147991|989898|1|9999047991|MR|Test|E|Lead 47991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047992|147992|989898|1|9999047992|MR|Test|E|Lead 47992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047993|147993|989898|1|9999047993|MR|Test|E|Lead 47993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047994|147994|989898|1|9999047994|MR|Test|E|Lead 47994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047995|147995|989898|1|9999047995|MR|Test|E|Lead 47995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047996|147996|989898|1|9999047996|MR|Test|E|Lead 47996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047997|147997|989898|1|9999047997|MR|Test|E|Lead 47997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047998|147998|989898|1|9999047998|MR|Test|E|Lead 47998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1047999|147999|989898|1|9999047999|MR|Test|E|Lead 47999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048000|148000|989898|1|9999048000|MR|Test|E|Lead 48000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048001|148001|989898|1|9999048001|MR|Test|E|Lead 48001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048002|148002|989898|1|9999048002|MR|Test|E|Lead 48002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048003|148003|989898|1|9999048003|MR|Test|E|Lead 48003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048004|148004|989898|1|9999048004|MR|Test|E|Lead 48004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048005|148005|989898|1|9999048005|MR|Test|E|Lead 48005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048006|148006|989898|1|9999048006|MR|Test|E|Lead 48006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048007|148007|989898|1|9999048007|MR|Test|E|Lead 48007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048008|148008|989898|1|9999048008|MR|Test|E|Lead 48008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048009|148009|989898|1|9999048009|MR|Test|E|Lead 48009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048010|148010|989898|1|9999048010|MR|Test|E|Lead 48010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048011|148011|989898|1|9999048011|MR|Test|E|Lead 48011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048012|148012|989898|1|9999048012|MR|Test|E|Lead 48012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048013|148013|989898|1|9999048013|MR|Test|E|Lead 48013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048014|148014|989898|1|9999048014|MR|Test|E|Lead 48014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048015|148015|989898|1|9999048015|MR|Test|E|Lead 48015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048016|148016|989898|1|9999048016|MR|Test|E|Lead 48016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048017|148017|989898|1|9999048017|MR|Test|E|Lead 48017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048018|148018|989898|1|9999048018|MR|Test|E|Lead 48018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048019|148019|989898|1|9999048019|MR|Test|E|Lead 48019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048020|148020|989898|1|9999048020|MR|Test|E|Lead 48020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048021|148021|989898|1|9999048021|MR|Test|E|Lead 48021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048022|148022|989898|1|9999048022|MR|Test|E|Lead 48022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048023|148023|989898|1|9999048023|MR|Test|E|Lead 48023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048024|148024|989898|1|9999048024|MR|Test|E|Lead 48024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048025|148025|989898|1|9999048025|MR|Test|E|Lead 48025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048026|148026|989898|1|9999048026|MR|Test|E|Lead 48026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048027|148027|989898|1|9999048027|MR|Test|E|Lead 48027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048028|148028|989898|1|9999048028|MR|Test|E|Lead 48028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048029|148029|989898|1|9999048029|MR|Test|E|Lead 48029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048030|148030|989898|1|9999048030|MR|Test|E|Lead 48030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048031|148031|989898|1|9999048031|MR|Test|E|Lead 48031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048032|148032|989898|1|9999048032|MR|Test|E|Lead 48032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048033|148033|989898|1|9999048033|MR|Test|E|Lead 48033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048034|148034|989898|1|9999048034|MR|Test|E|Lead 48034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048035|148035|989898|1|9999048035|MR|Test|E|Lead 48035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048036|148036|989898|1|9999048036|MR|Test|E|Lead 48036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048037|148037|989898|1|9999048037|MR|Test|E|Lead 48037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048038|148038|989898|1|9999048038|MR|Test|E|Lead 48038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048039|148039|989898|1|9999048039|MR|Test|E|Lead 48039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048040|148040|989898|1|9999048040|MR|Test|E|Lead 48040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048041|148041|989898|1|9999048041|MR|Test|E|Lead 48041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048042|148042|989898|1|9999048042|MR|Test|E|Lead 48042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048043|148043|989898|1|9999048043|MR|Test|E|Lead 48043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048044|148044|989898|1|9999048044|MR|Test|E|Lead 48044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048045|148045|989898|1|9999048045|MR|Test|E|Lead 48045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048046|148046|989898|1|9999048046|MR|Test|E|Lead 48046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048047|148047|989898|1|9999048047|MR|Test|E|Lead 48047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048048|148048|989898|1|9999048048|MR|Test|E|Lead 48048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048049|148049|989898|1|9999048049|MR|Test|E|Lead 48049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048050|148050|989898|1|9999048050|MR|Test|E|Lead 48050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048051|148051|989898|1|9999048051|MR|Test|E|Lead 48051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048052|148052|989898|1|9999048052|MR|Test|E|Lead 48052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048053|148053|989898|1|9999048053|MR|Test|E|Lead 48053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048054|148054|989898|1|9999048054|MR|Test|E|Lead 48054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048055|148055|989898|1|9999048055|MR|Test|E|Lead 48055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048056|148056|989898|1|9999048056|MR|Test|E|Lead 48056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048057|148057|989898|1|9999048057|MR|Test|E|Lead 48057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048058|148058|989898|1|9999048058|MR|Test|E|Lead 48058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048059|148059|989898|1|9999048059|MR|Test|E|Lead 48059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048060|148060|989898|1|9999048060|MR|Test|E|Lead 48060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048061|148061|989898|1|9999048061|MR|Test|E|Lead 48061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048062|148062|989898|1|9999048062|MR|Test|E|Lead 48062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048063|148063|989898|1|9999048063|MR|Test|E|Lead 48063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048064|148064|989898|1|9999048064|MR|Test|E|Lead 48064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048065|148065|989898|1|9999048065|MR|Test|E|Lead 48065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048066|148066|989898|1|9999048066|MR|Test|E|Lead 48066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048067|148067|989898|1|9999048067|MR|Test|E|Lead 48067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048068|148068|989898|1|9999048068|MR|Test|E|Lead 48068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048069|148069|989898|1|9999048069|MR|Test|E|Lead 48069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048070|148070|989898|1|9999048070|MR|Test|E|Lead 48070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048071|148071|989898|1|9999048071|MR|Test|E|Lead 48071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048072|148072|989898|1|9999048072|MR|Test|E|Lead 48072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048073|148073|989898|1|9999048073|MR|Test|E|Lead 48073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048074|148074|989898|1|9999048074|MR|Test|E|Lead 48074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048075|148075|989898|1|9999048075|MR|Test|E|Lead 48075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048076|148076|989898|1|9999048076|MR|Test|E|Lead 48076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048077|148077|989898|1|9999048077|MR|Test|E|Lead 48077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048078|148078|989898|1|9999048078|MR|Test|E|Lead 48078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048079|148079|989898|1|9999048079|MR|Test|E|Lead 48079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048080|148080|989898|1|9999048080|MR|Test|E|Lead 48080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048081|148081|989898|1|9999048081|MR|Test|E|Lead 48081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048082|148082|989898|1|9999048082|MR|Test|E|Lead 48082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048083|148083|989898|1|9999048083|MR|Test|E|Lead 48083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048084|148084|989898|1|9999048084|MR|Test|E|Lead 48084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048085|148085|989898|1|9999048085|MR|Test|E|Lead 48085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048086|148086|989898|1|9999048086|MR|Test|E|Lead 48086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048087|148087|989898|1|9999048087|MR|Test|E|Lead 48087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048088|148088|989898|1|9999048088|MR|Test|E|Lead 48088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048089|148089|989898|1|9999048089|MR|Test|E|Lead 48089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048090|148090|989898|1|9999048090|MR|Test|E|Lead 48090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048091|148091|989898|1|9999048091|MR|Test|E|Lead 48091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048092|148092|989898|1|9999048092|MR|Test|E|Lead 48092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048093|148093|989898|1|9999048093|MR|Test|E|Lead 48093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048094|148094|989898|1|9999048094|MR|Test|E|Lead 48094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048095|148095|989898|1|9999048095|MR|Test|E|Lead 48095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048096|148096|989898|1|9999048096|MR|Test|E|Lead 48096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048097|148097|989898|1|9999048097|MR|Test|E|Lead 48097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048098|148098|989898|1|9999048098|MR|Test|E|Lead 48098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048099|148099|989898|1|9999048099|MR|Test|E|Lead 48099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048100|148100|989898|1|9999048100|MR|Test|E|Lead 48100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048101|148101|989898|1|9999048101|MR|Test|E|Lead 48101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048102|148102|989898|1|9999048102|MR|Test|E|Lead 48102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048103|148103|989898|1|9999048103|MR|Test|E|Lead 48103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048104|148104|989898|1|9999048104|MR|Test|E|Lead 48104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048105|148105|989898|1|9999048105|MR|Test|E|Lead 48105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048106|148106|989898|1|9999048106|MR|Test|E|Lead 48106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048107|148107|989898|1|9999048107|MR|Test|E|Lead 48107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048108|148108|989898|1|9999048108|MR|Test|E|Lead 48108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048109|148109|989898|1|9999048109|MR|Test|E|Lead 48109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048110|148110|989898|1|9999048110|MR|Test|E|Lead 48110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048111|148111|989898|1|9999048111|MR|Test|E|Lead 48111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048112|148112|989898|1|9999048112|MR|Test|E|Lead 48112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048113|148113|989898|1|9999048113|MR|Test|E|Lead 48113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048114|148114|989898|1|9999048114|MR|Test|E|Lead 48114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048115|148115|989898|1|9999048115|MR|Test|E|Lead 48115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048116|148116|989898|1|9999048116|MR|Test|E|Lead 48116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048117|148117|989898|1|9999048117|MR|Test|E|Lead 48117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048118|148118|989898|1|9999048118|MR|Test|E|Lead 48118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048119|148119|989898|1|9999048119|MR|Test|E|Lead 48119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048120|148120|989898|1|9999048120|MR|Test|E|Lead 48120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048121|148121|989898|1|9999048121|MR|Test|E|Lead 48121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048122|148122|989898|1|9999048122|MR|Test|E|Lead 48122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048123|148123|989898|1|9999048123|MR|Test|E|Lead 48123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048124|148124|989898|1|9999048124|MR|Test|E|Lead 48124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048125|148125|989898|1|9999048125|MR|Test|E|Lead 48125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048126|148126|989898|1|9999048126|MR|Test|E|Lead 48126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048127|148127|989898|1|9999048127|MR|Test|E|Lead 48127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048128|148128|989898|1|9999048128|MR|Test|E|Lead 48128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048129|148129|989898|1|9999048129|MR|Test|E|Lead 48129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048130|148130|989898|1|9999048130|MR|Test|E|Lead 48130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048131|148131|989898|1|9999048131|MR|Test|E|Lead 48131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048132|148132|989898|1|9999048132|MR|Test|E|Lead 48132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048133|148133|989898|1|9999048133|MR|Test|E|Lead 48133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048134|148134|989898|1|9999048134|MR|Test|E|Lead 48134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048135|148135|989898|1|9999048135|MR|Test|E|Lead 48135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048136|148136|989898|1|9999048136|MR|Test|E|Lead 48136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048137|148137|989898|1|9999048137|MR|Test|E|Lead 48137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048138|148138|989898|1|9999048138|MR|Test|E|Lead 48138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048139|148139|989898|1|9999048139|MR|Test|E|Lead 48139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048140|148140|989898|1|9999048140|MR|Test|E|Lead 48140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048141|148141|989898|1|9999048141|MR|Test|E|Lead 48141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048142|148142|989898|1|9999048142|MR|Test|E|Lead 48142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048143|148143|989898|1|9999048143|MR|Test|E|Lead 48143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048144|148144|989898|1|9999048144|MR|Test|E|Lead 48144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048145|148145|989898|1|9999048145|MR|Test|E|Lead 48145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048146|148146|989898|1|9999048146|MR|Test|E|Lead 48146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048147|148147|989898|1|9999048147|MR|Test|E|Lead 48147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048148|148148|989898|1|9999048148|MR|Test|E|Lead 48148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048149|148149|989898|1|9999048149|MR|Test|E|Lead 48149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048150|148150|989898|1|9999048150|MR|Test|E|Lead 48150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048151|148151|989898|1|9999048151|MR|Test|E|Lead 48151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048152|148152|989898|1|9999048152|MR|Test|E|Lead 48152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048153|148153|989898|1|9999048153|MR|Test|E|Lead 48153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048154|148154|989898|1|9999048154|MR|Test|E|Lead 48154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048155|148155|989898|1|9999048155|MR|Test|E|Lead 48155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048156|148156|989898|1|9999048156|MR|Test|E|Lead 48156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048157|148157|989898|1|9999048157|MR|Test|E|Lead 48157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048158|148158|989898|1|9999048158|MR|Test|E|Lead 48158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048159|148159|989898|1|9999048159|MR|Test|E|Lead 48159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048160|148160|989898|1|9999048160|MR|Test|E|Lead 48160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048161|148161|989898|1|9999048161|MR|Test|E|Lead 48161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048162|148162|989898|1|9999048162|MR|Test|E|Lead 48162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048163|148163|989898|1|9999048163|MR|Test|E|Lead 48163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048164|148164|989898|1|9999048164|MR|Test|E|Lead 48164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048165|148165|989898|1|9999048165|MR|Test|E|Lead 48165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048166|148166|989898|1|9999048166|MR|Test|E|Lead 48166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048167|148167|989898|1|9999048167|MR|Test|E|Lead 48167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048168|148168|989898|1|9999048168|MR|Test|E|Lead 48168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048169|148169|989898|1|9999048169|MR|Test|E|Lead 48169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048170|148170|989898|1|9999048170|MR|Test|E|Lead 48170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048171|148171|989898|1|9999048171|MR|Test|E|Lead 48171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048172|148172|989898|1|9999048172|MR|Test|E|Lead 48172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048173|148173|989898|1|9999048173|MR|Test|E|Lead 48173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048174|148174|989898|1|9999048174|MR|Test|E|Lead 48174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048175|148175|989898|1|9999048175|MR|Test|E|Lead 48175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048176|148176|989898|1|9999048176|MR|Test|E|Lead 48176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048177|148177|989898|1|9999048177|MR|Test|E|Lead 48177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048178|148178|989898|1|9999048178|MR|Test|E|Lead 48178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048179|148179|989898|1|9999048179|MR|Test|E|Lead 48179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048180|148180|989898|1|9999048180|MR|Test|E|Lead 48180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048181|148181|989898|1|9999048181|MR|Test|E|Lead 48181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048182|148182|989898|1|9999048182|MR|Test|E|Lead 48182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048183|148183|989898|1|9999048183|MR|Test|E|Lead 48183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048184|148184|989898|1|9999048184|MR|Test|E|Lead 48184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048185|148185|989898|1|9999048185|MR|Test|E|Lead 48185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048186|148186|989898|1|9999048186|MR|Test|E|Lead 48186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048187|148187|989898|1|9999048187|MR|Test|E|Lead 48187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048188|148188|989898|1|9999048188|MR|Test|E|Lead 48188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048189|148189|989898|1|9999048189|MR|Test|E|Lead 48189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048190|148190|989898|1|9999048190|MR|Test|E|Lead 48190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048191|148191|989898|1|9999048191|MR|Test|E|Lead 48191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048192|148192|989898|1|9999048192|MR|Test|E|Lead 48192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048193|148193|989898|1|9999048193|MR|Test|E|Lead 48193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048194|148194|989898|1|9999048194|MR|Test|E|Lead 48194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048195|148195|989898|1|9999048195|MR|Test|E|Lead 48195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048196|148196|989898|1|9999048196|MR|Test|E|Lead 48196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048197|148197|989898|1|9999048197|MR|Test|E|Lead 48197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048198|148198|989898|1|9999048198|MR|Test|E|Lead 48198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048199|148199|989898|1|9999048199|MR|Test|E|Lead 48199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048200|148200|989898|1|9999048200|MR|Test|E|Lead 48200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048201|148201|989898|1|9999048201|MR|Test|E|Lead 48201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048202|148202|989898|1|9999048202|MR|Test|E|Lead 48202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048203|148203|989898|1|9999048203|MR|Test|E|Lead 48203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048204|148204|989898|1|9999048204|MR|Test|E|Lead 48204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048205|148205|989898|1|9999048205|MR|Test|E|Lead 48205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048206|148206|989898|1|9999048206|MR|Test|E|Lead 48206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048207|148207|989898|1|9999048207|MR|Test|E|Lead 48207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048208|148208|989898|1|9999048208|MR|Test|E|Lead 48208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048209|148209|989898|1|9999048209|MR|Test|E|Lead 48209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048210|148210|989898|1|9999048210|MR|Test|E|Lead 48210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048211|148211|989898|1|9999048211|MR|Test|E|Lead 48211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048212|148212|989898|1|9999048212|MR|Test|E|Lead 48212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048213|148213|989898|1|9999048213|MR|Test|E|Lead 48213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048214|148214|989898|1|9999048214|MR|Test|E|Lead 48214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048215|148215|989898|1|9999048215|MR|Test|E|Lead 48215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048216|148216|989898|1|9999048216|MR|Test|E|Lead 48216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048217|148217|989898|1|9999048217|MR|Test|E|Lead 48217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048218|148218|989898|1|9999048218|MR|Test|E|Lead 48218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048219|148219|989898|1|9999048219|MR|Test|E|Lead 48219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048220|148220|989898|1|9999048220|MR|Test|E|Lead 48220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048221|148221|989898|1|9999048221|MR|Test|E|Lead 48221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048222|148222|989898|1|9999048222|MR|Test|E|Lead 48222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048223|148223|989898|1|9999048223|MR|Test|E|Lead 48223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048224|148224|989898|1|9999048224|MR|Test|E|Lead 48224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048225|148225|989898|1|9999048225|MR|Test|E|Lead 48225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048226|148226|989898|1|9999048226|MR|Test|E|Lead 48226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048227|148227|989898|1|9999048227|MR|Test|E|Lead 48227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048228|148228|989898|1|9999048228|MR|Test|E|Lead 48228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048229|148229|989898|1|9999048229|MR|Test|E|Lead 48229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048230|148230|989898|1|9999048230|MR|Test|E|Lead 48230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048231|148231|989898|1|9999048231|MR|Test|E|Lead 48231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048232|148232|989898|1|9999048232|MR|Test|E|Lead 48232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048233|148233|989898|1|9999048233|MR|Test|E|Lead 48233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048234|148234|989898|1|9999048234|MR|Test|E|Lead 48234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048235|148235|989898|1|9999048235|MR|Test|E|Lead 48235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048236|148236|989898|1|9999048236|MR|Test|E|Lead 48236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048237|148237|989898|1|9999048237|MR|Test|E|Lead 48237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048238|148238|989898|1|9999048238|MR|Test|E|Lead 48238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048239|148239|989898|1|9999048239|MR|Test|E|Lead 48239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048240|148240|989898|1|9999048240|MR|Test|E|Lead 48240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048241|148241|989898|1|9999048241|MR|Test|E|Lead 48241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048242|148242|989898|1|9999048242|MR|Test|E|Lead 48242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048243|148243|989898|1|9999048243|MR|Test|E|Lead 48243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048244|148244|989898|1|9999048244|MR|Test|E|Lead 48244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048245|148245|989898|1|9999048245|MR|Test|E|Lead 48245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048246|148246|989898|1|9999048246|MR|Test|E|Lead 48246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048247|148247|989898|1|9999048247|MR|Test|E|Lead 48247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048248|148248|989898|1|9999048248|MR|Test|E|Lead 48248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048249|148249|989898|1|9999048249|MR|Test|E|Lead 48249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048250|148250|989898|1|9999048250|MR|Test|E|Lead 48250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048251|148251|989898|1|9999048251|MR|Test|E|Lead 48251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048252|148252|989898|1|9999048252|MR|Test|E|Lead 48252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048253|148253|989898|1|9999048253|MR|Test|E|Lead 48253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048254|148254|989898|1|9999048254|MR|Test|E|Lead 48254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048255|148255|989898|1|9999048255|MR|Test|E|Lead 48255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048256|148256|989898|1|9999048256|MR|Test|E|Lead 48256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048257|148257|989898|1|9999048257|MR|Test|E|Lead 48257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048258|148258|989898|1|9999048258|MR|Test|E|Lead 48258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048259|148259|989898|1|9999048259|MR|Test|E|Lead 48259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048260|148260|989898|1|9999048260|MR|Test|E|Lead 48260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048261|148261|989898|1|9999048261|MR|Test|E|Lead 48261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048262|148262|989898|1|9999048262|MR|Test|E|Lead 48262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048263|148263|989898|1|9999048263|MR|Test|E|Lead 48263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048264|148264|989898|1|9999048264|MR|Test|E|Lead 48264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048265|148265|989898|1|9999048265|MR|Test|E|Lead 48265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048266|148266|989898|1|9999048266|MR|Test|E|Lead 48266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048267|148267|989898|1|9999048267|MR|Test|E|Lead 48267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048268|148268|989898|1|9999048268|MR|Test|E|Lead 48268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048269|148269|989898|1|9999048269|MR|Test|E|Lead 48269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048270|148270|989898|1|9999048270|MR|Test|E|Lead 48270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048271|148271|989898|1|9999048271|MR|Test|E|Lead 48271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048272|148272|989898|1|9999048272|MR|Test|E|Lead 48272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048273|148273|989898|1|9999048273|MR|Test|E|Lead 48273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048274|148274|989898|1|9999048274|MR|Test|E|Lead 48274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048275|148275|989898|1|9999048275|MR|Test|E|Lead 48275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048276|148276|989898|1|9999048276|MR|Test|E|Lead 48276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048277|148277|989898|1|9999048277|MR|Test|E|Lead 48277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048278|148278|989898|1|9999048278|MR|Test|E|Lead 48278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048279|148279|989898|1|9999048279|MR|Test|E|Lead 48279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048280|148280|989898|1|9999048280|MR|Test|E|Lead 48280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048281|148281|989898|1|9999048281|MR|Test|E|Lead 48281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048282|148282|989898|1|9999048282|MR|Test|E|Lead 48282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048283|148283|989898|1|9999048283|MR|Test|E|Lead 48283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048284|148284|989898|1|9999048284|MR|Test|E|Lead 48284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048285|148285|989898|1|9999048285|MR|Test|E|Lead 48285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048286|148286|989898|1|9999048286|MR|Test|E|Lead 48286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048287|148287|989898|1|9999048287|MR|Test|E|Lead 48287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048288|148288|989898|1|9999048288|MR|Test|E|Lead 48288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048289|148289|989898|1|9999048289|MR|Test|E|Lead 48289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048290|148290|989898|1|9999048290|MR|Test|E|Lead 48290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048291|148291|989898|1|9999048291|MR|Test|E|Lead 48291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048292|148292|989898|1|9999048292|MR|Test|E|Lead 48292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048293|148293|989898|1|9999048293|MR|Test|E|Lead 48293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048294|148294|989898|1|9999048294|MR|Test|E|Lead 48294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048295|148295|989898|1|9999048295|MR|Test|E|Lead 48295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048296|148296|989898|1|9999048296|MR|Test|E|Lead 48296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048297|148297|989898|1|9999048297|MR|Test|E|Lead 48297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048298|148298|989898|1|9999048298|MR|Test|E|Lead 48298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048299|148299|989898|1|9999048299|MR|Test|E|Lead 48299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048300|148300|989898|1|9999048300|MR|Test|E|Lead 48300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048301|148301|989898|1|9999048301|MR|Test|E|Lead 48301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048302|148302|989898|1|9999048302|MR|Test|E|Lead 48302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048303|148303|989898|1|9999048303|MR|Test|E|Lead 48303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048304|148304|989898|1|9999048304|MR|Test|E|Lead 48304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048305|148305|989898|1|9999048305|MR|Test|E|Lead 48305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048306|148306|989898|1|9999048306|MR|Test|E|Lead 48306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048307|148307|989898|1|9999048307|MR|Test|E|Lead 48307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048308|148308|989898|1|9999048308|MR|Test|E|Lead 48308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048309|148309|989898|1|9999048309|MR|Test|E|Lead 48309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048310|148310|989898|1|9999048310|MR|Test|E|Lead 48310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048311|148311|989898|1|9999048311|MR|Test|E|Lead 48311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048312|148312|989898|1|9999048312|MR|Test|E|Lead 48312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048313|148313|989898|1|9999048313|MR|Test|E|Lead 48313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048314|148314|989898|1|9999048314|MR|Test|E|Lead 48314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048315|148315|989898|1|9999048315|MR|Test|E|Lead 48315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048316|148316|989898|1|9999048316|MR|Test|E|Lead 48316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048317|148317|989898|1|9999048317|MR|Test|E|Lead 48317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048318|148318|989898|1|9999048318|MR|Test|E|Lead 48318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048319|148319|989898|1|9999048319|MR|Test|E|Lead 48319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048320|148320|989898|1|9999048320|MR|Test|E|Lead 48320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048321|148321|989898|1|9999048321|MR|Test|E|Lead 48321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048322|148322|989898|1|9999048322|MR|Test|E|Lead 48322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048323|148323|989898|1|9999048323|MR|Test|E|Lead 48323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048324|148324|989898|1|9999048324|MR|Test|E|Lead 48324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048325|148325|989898|1|9999048325|MR|Test|E|Lead 48325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048326|148326|989898|1|9999048326|MR|Test|E|Lead 48326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048327|148327|989898|1|9999048327|MR|Test|E|Lead 48327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048328|148328|989898|1|9999048328|MR|Test|E|Lead 48328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048329|148329|989898|1|9999048329|MR|Test|E|Lead 48329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048330|148330|989898|1|9999048330|MR|Test|E|Lead 48330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048331|148331|989898|1|9999048331|MR|Test|E|Lead 48331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048332|148332|989898|1|9999048332|MR|Test|E|Lead 48332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048333|148333|989898|1|9999048333|MR|Test|E|Lead 48333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048334|148334|989898|1|9999048334|MR|Test|E|Lead 48334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048335|148335|989898|1|9999048335|MR|Test|E|Lead 48335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048336|148336|989898|1|9999048336|MR|Test|E|Lead 48336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048337|148337|989898|1|9999048337|MR|Test|E|Lead 48337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048338|148338|989898|1|9999048338|MR|Test|E|Lead 48338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048339|148339|989898|1|9999048339|MR|Test|E|Lead 48339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048340|148340|989898|1|9999048340|MR|Test|E|Lead 48340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048341|148341|989898|1|9999048341|MR|Test|E|Lead 48341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048342|148342|989898|1|9999048342|MR|Test|E|Lead 48342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048343|148343|989898|1|9999048343|MR|Test|E|Lead 48343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048344|148344|989898|1|9999048344|MR|Test|E|Lead 48344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048345|148345|989898|1|9999048345|MR|Test|E|Lead 48345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048346|148346|989898|1|9999048346|MR|Test|E|Lead 48346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048347|148347|989898|1|9999048347|MR|Test|E|Lead 48347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048348|148348|989898|1|9999048348|MR|Test|E|Lead 48348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048349|148349|989898|1|9999048349|MR|Test|E|Lead 48349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048350|148350|989898|1|9999048350|MR|Test|E|Lead 48350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048351|148351|989898|1|9999048351|MR|Test|E|Lead 48351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048352|148352|989898|1|9999048352|MR|Test|E|Lead 48352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048353|148353|989898|1|9999048353|MR|Test|E|Lead 48353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048354|148354|989898|1|9999048354|MR|Test|E|Lead 48354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048355|148355|989898|1|9999048355|MR|Test|E|Lead 48355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048356|148356|989898|1|9999048356|MR|Test|E|Lead 48356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048357|148357|989898|1|9999048357|MR|Test|E|Lead 48357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048358|148358|989898|1|9999048358|MR|Test|E|Lead 48358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048359|148359|989898|1|9999048359|MR|Test|E|Lead 48359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048360|148360|989898|1|9999048360|MR|Test|E|Lead 48360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048361|148361|989898|1|9999048361|MR|Test|E|Lead 48361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048362|148362|989898|1|9999048362|MR|Test|E|Lead 48362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048363|148363|989898|1|9999048363|MR|Test|E|Lead 48363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048364|148364|989898|1|9999048364|MR|Test|E|Lead 48364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048365|148365|989898|1|9999048365|MR|Test|E|Lead 48365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048366|148366|989898|1|9999048366|MR|Test|E|Lead 48366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048367|148367|989898|1|9999048367|MR|Test|E|Lead 48367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048368|148368|989898|1|9999048368|MR|Test|E|Lead 48368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048369|148369|989898|1|9999048369|MR|Test|E|Lead 48369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048370|148370|989898|1|9999048370|MR|Test|E|Lead 48370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048371|148371|989898|1|9999048371|MR|Test|E|Lead 48371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048372|148372|989898|1|9999048372|MR|Test|E|Lead 48372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048373|148373|989898|1|9999048373|MR|Test|E|Lead 48373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048374|148374|989898|1|9999048374|MR|Test|E|Lead 48374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048375|148375|989898|1|9999048375|MR|Test|E|Lead 48375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048376|148376|989898|1|9999048376|MR|Test|E|Lead 48376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048377|148377|989898|1|9999048377|MR|Test|E|Lead 48377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048378|148378|989898|1|9999048378|MR|Test|E|Lead 48378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048379|148379|989898|1|9999048379|MR|Test|E|Lead 48379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048380|148380|989898|1|9999048380|MR|Test|E|Lead 48380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048381|148381|989898|1|9999048381|MR|Test|E|Lead 48381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048382|148382|989898|1|9999048382|MR|Test|E|Lead 48382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048383|148383|989898|1|9999048383|MR|Test|E|Lead 48383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048384|148384|989898|1|9999048384|MR|Test|E|Lead 48384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048385|148385|989898|1|9999048385|MR|Test|E|Lead 48385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048386|148386|989898|1|9999048386|MR|Test|E|Lead 48386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048387|148387|989898|1|9999048387|MR|Test|E|Lead 48387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048388|148388|989898|1|9999048388|MR|Test|E|Lead 48388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048389|148389|989898|1|9999048389|MR|Test|E|Lead 48389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048390|148390|989898|1|9999048390|MR|Test|E|Lead 48390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048391|148391|989898|1|9999048391|MR|Test|E|Lead 48391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048392|148392|989898|1|9999048392|MR|Test|E|Lead 48392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048393|148393|989898|1|9999048393|MR|Test|E|Lead 48393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048394|148394|989898|1|9999048394|MR|Test|E|Lead 48394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048395|148395|989898|1|9999048395|MR|Test|E|Lead 48395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048396|148396|989898|1|9999048396|MR|Test|E|Lead 48396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048397|148397|989898|1|9999048397|MR|Test|E|Lead 48397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048398|148398|989898|1|9999048398|MR|Test|E|Lead 48398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048399|148399|989898|1|9999048399|MR|Test|E|Lead 48399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048400|148400|989898|1|9999048400|MR|Test|E|Lead 48400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048401|148401|989898|1|9999048401|MR|Test|E|Lead 48401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048402|148402|989898|1|9999048402|MR|Test|E|Lead 48402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048403|148403|989898|1|9999048403|MR|Test|E|Lead 48403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048404|148404|989898|1|9999048404|MR|Test|E|Lead 48404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048405|148405|989898|1|9999048405|MR|Test|E|Lead 48405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048406|148406|989898|1|9999048406|MR|Test|E|Lead 48406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048407|148407|989898|1|9999048407|MR|Test|E|Lead 48407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048408|148408|989898|1|9999048408|MR|Test|E|Lead 48408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048409|148409|989898|1|9999048409|MR|Test|E|Lead 48409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048410|148410|989898|1|9999048410|MR|Test|E|Lead 48410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048411|148411|989898|1|9999048411|MR|Test|E|Lead 48411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048412|148412|989898|1|9999048412|MR|Test|E|Lead 48412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048413|148413|989898|1|9999048413|MR|Test|E|Lead 48413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048414|148414|989898|1|9999048414|MR|Test|E|Lead 48414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048415|148415|989898|1|9999048415|MR|Test|E|Lead 48415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048416|148416|989898|1|9999048416|MR|Test|E|Lead 48416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048417|148417|989898|1|9999048417|MR|Test|E|Lead 48417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048418|148418|989898|1|9999048418|MR|Test|E|Lead 48418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048419|148419|989898|1|9999048419|MR|Test|E|Lead 48419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048420|148420|989898|1|9999048420|MR|Test|E|Lead 48420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048421|148421|989898|1|9999048421|MR|Test|E|Lead 48421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048422|148422|989898|1|9999048422|MR|Test|E|Lead 48422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048423|148423|989898|1|9999048423|MR|Test|E|Lead 48423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048424|148424|989898|1|9999048424|MR|Test|E|Lead 48424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048425|148425|989898|1|9999048425|MR|Test|E|Lead 48425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048426|148426|989898|1|9999048426|MR|Test|E|Lead 48426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048427|148427|989898|1|9999048427|MR|Test|E|Lead 48427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048428|148428|989898|1|9999048428|MR|Test|E|Lead 48428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048429|148429|989898|1|9999048429|MR|Test|E|Lead 48429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048430|148430|989898|1|9999048430|MR|Test|E|Lead 48430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048431|148431|989898|1|9999048431|MR|Test|E|Lead 48431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048432|148432|989898|1|9999048432|MR|Test|E|Lead 48432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048433|148433|989898|1|9999048433|MR|Test|E|Lead 48433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048434|148434|989898|1|9999048434|MR|Test|E|Lead 48434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048435|148435|989898|1|9999048435|MR|Test|E|Lead 48435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048436|148436|989898|1|9999048436|MR|Test|E|Lead 48436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048437|148437|989898|1|9999048437|MR|Test|E|Lead 48437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048438|148438|989898|1|9999048438|MR|Test|E|Lead 48438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048439|148439|989898|1|9999048439|MR|Test|E|Lead 48439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048440|148440|989898|1|9999048440|MR|Test|E|Lead 48440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048441|148441|989898|1|9999048441|MR|Test|E|Lead 48441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048442|148442|989898|1|9999048442|MR|Test|E|Lead 48442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048443|148443|989898|1|9999048443|MR|Test|E|Lead 48443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048444|148444|989898|1|9999048444|MR|Test|E|Lead 48444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048445|148445|989898|1|9999048445|MR|Test|E|Lead 48445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048446|148446|989898|1|9999048446|MR|Test|E|Lead 48446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048447|148447|989898|1|9999048447|MR|Test|E|Lead 48447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048448|148448|989898|1|9999048448|MR|Test|E|Lead 48448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048449|148449|989898|1|9999048449|MR|Test|E|Lead 48449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048450|148450|989898|1|9999048450|MR|Test|E|Lead 48450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048451|148451|989898|1|9999048451|MR|Test|E|Lead 48451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048452|148452|989898|1|9999048452|MR|Test|E|Lead 48452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048453|148453|989898|1|9999048453|MR|Test|E|Lead 48453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048454|148454|989898|1|9999048454|MR|Test|E|Lead 48454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048455|148455|989898|1|9999048455|MR|Test|E|Lead 48455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048456|148456|989898|1|9999048456|MR|Test|E|Lead 48456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048457|148457|989898|1|9999048457|MR|Test|E|Lead 48457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048458|148458|989898|1|9999048458|MR|Test|E|Lead 48458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048459|148459|989898|1|9999048459|MR|Test|E|Lead 48459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048460|148460|989898|1|9999048460|MR|Test|E|Lead 48460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048461|148461|989898|1|9999048461|MR|Test|E|Lead 48461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048462|148462|989898|1|9999048462|MR|Test|E|Lead 48462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048463|148463|989898|1|9999048463|MR|Test|E|Lead 48463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048464|148464|989898|1|9999048464|MR|Test|E|Lead 48464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048465|148465|989898|1|9999048465|MR|Test|E|Lead 48465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048466|148466|989898|1|9999048466|MR|Test|E|Lead 48466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048467|148467|989898|1|9999048467|MR|Test|E|Lead 48467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048468|148468|989898|1|9999048468|MR|Test|E|Lead 48468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048469|148469|989898|1|9999048469|MR|Test|E|Lead 48469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048470|148470|989898|1|9999048470|MR|Test|E|Lead 48470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048471|148471|989898|1|9999048471|MR|Test|E|Lead 48471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048472|148472|989898|1|9999048472|MR|Test|E|Lead 48472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048473|148473|989898|1|9999048473|MR|Test|E|Lead 48473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048474|148474|989898|1|9999048474|MR|Test|E|Lead 48474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048475|148475|989898|1|9999048475|MR|Test|E|Lead 48475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048476|148476|989898|1|9999048476|MR|Test|E|Lead 48476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048477|148477|989898|1|9999048477|MR|Test|E|Lead 48477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048478|148478|989898|1|9999048478|MR|Test|E|Lead 48478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048479|148479|989898|1|9999048479|MR|Test|E|Lead 48479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048480|148480|989898|1|9999048480|MR|Test|E|Lead 48480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048481|148481|989898|1|9999048481|MR|Test|E|Lead 48481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048482|148482|989898|1|9999048482|MR|Test|E|Lead 48482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048483|148483|989898|1|9999048483|MR|Test|E|Lead 48483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048484|148484|989898|1|9999048484|MR|Test|E|Lead 48484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048485|148485|989898|1|9999048485|MR|Test|E|Lead 48485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048486|148486|989898|1|9999048486|MR|Test|E|Lead 48486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048487|148487|989898|1|9999048487|MR|Test|E|Lead 48487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048488|148488|989898|1|9999048488|MR|Test|E|Lead 48488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048489|148489|989898|1|9999048489|MR|Test|E|Lead 48489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048490|148490|989898|1|9999048490|MR|Test|E|Lead 48490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048491|148491|989898|1|9999048491|MR|Test|E|Lead 48491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048492|148492|989898|1|9999048492|MR|Test|E|Lead 48492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048493|148493|989898|1|9999048493|MR|Test|E|Lead 48493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048494|148494|989898|1|9999048494|MR|Test|E|Lead 48494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048495|148495|989898|1|9999048495|MR|Test|E|Lead 48495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048496|148496|989898|1|9999048496|MR|Test|E|Lead 48496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048497|148497|989898|1|9999048497|MR|Test|E|Lead 48497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048498|148498|989898|1|9999048498|MR|Test|E|Lead 48498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048499|148499|989898|1|9999048499|MR|Test|E|Lead 48499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048500|148500|989898|1|9999048500|MR|Test|E|Lead 48500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048501|148501|989898|1|9999048501|MR|Test|E|Lead 48501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048502|148502|989898|1|9999048502|MR|Test|E|Lead 48502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048503|148503|989898|1|9999048503|MR|Test|E|Lead 48503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048504|148504|989898|1|9999048504|MR|Test|E|Lead 48504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048505|148505|989898|1|9999048505|MR|Test|E|Lead 48505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048506|148506|989898|1|9999048506|MR|Test|E|Lead 48506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048507|148507|989898|1|9999048507|MR|Test|E|Lead 48507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048508|148508|989898|1|9999048508|MR|Test|E|Lead 48508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048509|148509|989898|1|9999048509|MR|Test|E|Lead 48509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048510|148510|989898|1|9999048510|MR|Test|E|Lead 48510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048511|148511|989898|1|9999048511|MR|Test|E|Lead 48511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048512|148512|989898|1|9999048512|MR|Test|E|Lead 48512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048513|148513|989898|1|9999048513|MR|Test|E|Lead 48513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048514|148514|989898|1|9999048514|MR|Test|E|Lead 48514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048515|148515|989898|1|9999048515|MR|Test|E|Lead 48515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048516|148516|989898|1|9999048516|MR|Test|E|Lead 48516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048517|148517|989898|1|9999048517|MR|Test|E|Lead 48517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048518|148518|989898|1|9999048518|MR|Test|E|Lead 48518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048519|148519|989898|1|9999048519|MR|Test|E|Lead 48519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048520|148520|989898|1|9999048520|MR|Test|E|Lead 48520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048521|148521|989898|1|9999048521|MR|Test|E|Lead 48521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048522|148522|989898|1|9999048522|MR|Test|E|Lead 48522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048523|148523|989898|1|9999048523|MR|Test|E|Lead 48523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048524|148524|989898|1|9999048524|MR|Test|E|Lead 48524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048525|148525|989898|1|9999048525|MR|Test|E|Lead 48525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048526|148526|989898|1|9999048526|MR|Test|E|Lead 48526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048527|148527|989898|1|9999048527|MR|Test|E|Lead 48527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048528|148528|989898|1|9999048528|MR|Test|E|Lead 48528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048529|148529|989898|1|9999048529|MR|Test|E|Lead 48529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048530|148530|989898|1|9999048530|MR|Test|E|Lead 48530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048531|148531|989898|1|9999048531|MR|Test|E|Lead 48531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048532|148532|989898|1|9999048532|MR|Test|E|Lead 48532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048533|148533|989898|1|9999048533|MR|Test|E|Lead 48533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048534|148534|989898|1|9999048534|MR|Test|E|Lead 48534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048535|148535|989898|1|9999048535|MR|Test|E|Lead 48535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048536|148536|989898|1|9999048536|MR|Test|E|Lead 48536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048537|148537|989898|1|9999048537|MR|Test|E|Lead 48537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048538|148538|989898|1|9999048538|MR|Test|E|Lead 48538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048539|148539|989898|1|9999048539|MR|Test|E|Lead 48539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048540|148540|989898|1|9999048540|MR|Test|E|Lead 48540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048541|148541|989898|1|9999048541|MR|Test|E|Lead 48541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048542|148542|989898|1|9999048542|MR|Test|E|Lead 48542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048543|148543|989898|1|9999048543|MR|Test|E|Lead 48543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048544|148544|989898|1|9999048544|MR|Test|E|Lead 48544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048545|148545|989898|1|9999048545|MR|Test|E|Lead 48545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048546|148546|989898|1|9999048546|MR|Test|E|Lead 48546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048547|148547|989898|1|9999048547|MR|Test|E|Lead 48547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048548|148548|989898|1|9999048548|MR|Test|E|Lead 48548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048549|148549|989898|1|9999048549|MR|Test|E|Lead 48549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048550|148550|989898|1|9999048550|MR|Test|E|Lead 48550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048551|148551|989898|1|9999048551|MR|Test|E|Lead 48551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048552|148552|989898|1|9999048552|MR|Test|E|Lead 48552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048553|148553|989898|1|9999048553|MR|Test|E|Lead 48553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048554|148554|989898|1|9999048554|MR|Test|E|Lead 48554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048555|148555|989898|1|9999048555|MR|Test|E|Lead 48555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048556|148556|989898|1|9999048556|MR|Test|E|Lead 48556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048557|148557|989898|1|9999048557|MR|Test|E|Lead 48557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048558|148558|989898|1|9999048558|MR|Test|E|Lead 48558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048559|148559|989898|1|9999048559|MR|Test|E|Lead 48559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048560|148560|989898|1|9999048560|MR|Test|E|Lead 48560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048561|148561|989898|1|9999048561|MR|Test|E|Lead 48561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048562|148562|989898|1|9999048562|MR|Test|E|Lead 48562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048563|148563|989898|1|9999048563|MR|Test|E|Lead 48563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048564|148564|989898|1|9999048564|MR|Test|E|Lead 48564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048565|148565|989898|1|9999048565|MR|Test|E|Lead 48565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048566|148566|989898|1|9999048566|MR|Test|E|Lead 48566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048567|148567|989898|1|9999048567|MR|Test|E|Lead 48567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048568|148568|989898|1|9999048568|MR|Test|E|Lead 48568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048569|148569|989898|1|9999048569|MR|Test|E|Lead 48569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048570|148570|989898|1|9999048570|MR|Test|E|Lead 48570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048571|148571|989898|1|9999048571|MR|Test|E|Lead 48571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048572|148572|989898|1|9999048572|MR|Test|E|Lead 48572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048573|148573|989898|1|9999048573|MR|Test|E|Lead 48573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048574|148574|989898|1|9999048574|MR|Test|E|Lead 48574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048575|148575|989898|1|9999048575|MR|Test|E|Lead 48575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048576|148576|989898|1|9999048576|MR|Test|E|Lead 48576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048577|148577|989898|1|9999048577|MR|Test|E|Lead 48577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048578|148578|989898|1|9999048578|MR|Test|E|Lead 48578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048579|148579|989898|1|9999048579|MR|Test|E|Lead 48579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048580|148580|989898|1|9999048580|MR|Test|E|Lead 48580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048581|148581|989898|1|9999048581|MR|Test|E|Lead 48581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048582|148582|989898|1|9999048582|MR|Test|E|Lead 48582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048583|148583|989898|1|9999048583|MR|Test|E|Lead 48583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048584|148584|989898|1|9999048584|MR|Test|E|Lead 48584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048585|148585|989898|1|9999048585|MR|Test|E|Lead 48585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048586|148586|989898|1|9999048586|MR|Test|E|Lead 48586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048587|148587|989898|1|9999048587|MR|Test|E|Lead 48587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048588|148588|989898|1|9999048588|MR|Test|E|Lead 48588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048589|148589|989898|1|9999048589|MR|Test|E|Lead 48589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048590|148590|989898|1|9999048590|MR|Test|E|Lead 48590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048591|148591|989898|1|9999048591|MR|Test|E|Lead 48591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048592|148592|989898|1|9999048592|MR|Test|E|Lead 48592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048593|148593|989898|1|9999048593|MR|Test|E|Lead 48593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048594|148594|989898|1|9999048594|MR|Test|E|Lead 48594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048595|148595|989898|1|9999048595|MR|Test|E|Lead 48595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048596|148596|989898|1|9999048596|MR|Test|E|Lead 48596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048597|148597|989898|1|9999048597|MR|Test|E|Lead 48597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048598|148598|989898|1|9999048598|MR|Test|E|Lead 48598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048599|148599|989898|1|9999048599|MR|Test|E|Lead 48599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048600|148600|989898|1|9999048600|MR|Test|E|Lead 48600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048601|148601|989898|1|9999048601|MR|Test|E|Lead 48601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048602|148602|989898|1|9999048602|MR|Test|E|Lead 48602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048603|148603|989898|1|9999048603|MR|Test|E|Lead 48603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048604|148604|989898|1|9999048604|MR|Test|E|Lead 48604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048605|148605|989898|1|9999048605|MR|Test|E|Lead 48605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048606|148606|989898|1|9999048606|MR|Test|E|Lead 48606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048607|148607|989898|1|9999048607|MR|Test|E|Lead 48607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048608|148608|989898|1|9999048608|MR|Test|E|Lead 48608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048609|148609|989898|1|9999048609|MR|Test|E|Lead 48609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048610|148610|989898|1|9999048610|MR|Test|E|Lead 48610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048611|148611|989898|1|9999048611|MR|Test|E|Lead 48611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048612|148612|989898|1|9999048612|MR|Test|E|Lead 48612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048613|148613|989898|1|9999048613|MR|Test|E|Lead 48613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048614|148614|989898|1|9999048614|MR|Test|E|Lead 48614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048615|148615|989898|1|9999048615|MR|Test|E|Lead 48615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048616|148616|989898|1|9999048616|MR|Test|E|Lead 48616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048617|148617|989898|1|9999048617|MR|Test|E|Lead 48617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048618|148618|989898|1|9999048618|MR|Test|E|Lead 48618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048619|148619|989898|1|9999048619|MR|Test|E|Lead 48619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048620|148620|989898|1|9999048620|MR|Test|E|Lead 48620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048621|148621|989898|1|9999048621|MR|Test|E|Lead 48621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048622|148622|989898|1|9999048622|MR|Test|E|Lead 48622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048623|148623|989898|1|9999048623|MR|Test|E|Lead 48623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048624|148624|989898|1|9999048624|MR|Test|E|Lead 48624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048625|148625|989898|1|9999048625|MR|Test|E|Lead 48625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048626|148626|989898|1|9999048626|MR|Test|E|Lead 48626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048627|148627|989898|1|9999048627|MR|Test|E|Lead 48627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048628|148628|989898|1|9999048628|MR|Test|E|Lead 48628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048629|148629|989898|1|9999048629|MR|Test|E|Lead 48629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048630|148630|989898|1|9999048630|MR|Test|E|Lead 48630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048631|148631|989898|1|9999048631|MR|Test|E|Lead 48631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048632|148632|989898|1|9999048632|MR|Test|E|Lead 48632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048633|148633|989898|1|9999048633|MR|Test|E|Lead 48633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048634|148634|989898|1|9999048634|MR|Test|E|Lead 48634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048635|148635|989898|1|9999048635|MR|Test|E|Lead 48635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048636|148636|989898|1|9999048636|MR|Test|E|Lead 48636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048637|148637|989898|1|9999048637|MR|Test|E|Lead 48637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048638|148638|989898|1|9999048638|MR|Test|E|Lead 48638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048639|148639|989898|1|9999048639|MR|Test|E|Lead 48639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048640|148640|989898|1|9999048640|MR|Test|E|Lead 48640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048641|148641|989898|1|9999048641|MR|Test|E|Lead 48641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048642|148642|989898|1|9999048642|MR|Test|E|Lead 48642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048643|148643|989898|1|9999048643|MR|Test|E|Lead 48643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048644|148644|989898|1|9999048644|MR|Test|E|Lead 48644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048645|148645|989898|1|9999048645|MR|Test|E|Lead 48645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048646|148646|989898|1|9999048646|MR|Test|E|Lead 48646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048647|148647|989898|1|9999048647|MR|Test|E|Lead 48647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048648|148648|989898|1|9999048648|MR|Test|E|Lead 48648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048649|148649|989898|1|9999048649|MR|Test|E|Lead 48649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048650|148650|989898|1|9999048650|MR|Test|E|Lead 48650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048651|148651|989898|1|9999048651|MR|Test|E|Lead 48651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048652|148652|989898|1|9999048652|MR|Test|E|Lead 48652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048653|148653|989898|1|9999048653|MR|Test|E|Lead 48653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048654|148654|989898|1|9999048654|MR|Test|E|Lead 48654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048655|148655|989898|1|9999048655|MR|Test|E|Lead 48655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048656|148656|989898|1|9999048656|MR|Test|E|Lead 48656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048657|148657|989898|1|9999048657|MR|Test|E|Lead 48657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048658|148658|989898|1|9999048658|MR|Test|E|Lead 48658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048659|148659|989898|1|9999048659|MR|Test|E|Lead 48659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048660|148660|989898|1|9999048660|MR|Test|E|Lead 48660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048661|148661|989898|1|9999048661|MR|Test|E|Lead 48661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048662|148662|989898|1|9999048662|MR|Test|E|Lead 48662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048663|148663|989898|1|9999048663|MR|Test|E|Lead 48663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048664|148664|989898|1|9999048664|MR|Test|E|Lead 48664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048665|148665|989898|1|9999048665|MR|Test|E|Lead 48665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048666|148666|989898|1|9999048666|MR|Test|E|Lead 48666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048667|148667|989898|1|9999048667|MR|Test|E|Lead 48667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048668|148668|989898|1|9999048668|MR|Test|E|Lead 48668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048669|148669|989898|1|9999048669|MR|Test|E|Lead 48669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048670|148670|989898|1|9999048670|MR|Test|E|Lead 48670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048671|148671|989898|1|9999048671|MR|Test|E|Lead 48671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048672|148672|989898|1|9999048672|MR|Test|E|Lead 48672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048673|148673|989898|1|9999048673|MR|Test|E|Lead 48673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048674|148674|989898|1|9999048674|MR|Test|E|Lead 48674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048675|148675|989898|1|9999048675|MR|Test|E|Lead 48675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048676|148676|989898|1|9999048676|MR|Test|E|Lead 48676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048677|148677|989898|1|9999048677|MR|Test|E|Lead 48677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048678|148678|989898|1|9999048678|MR|Test|E|Lead 48678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048679|148679|989898|1|9999048679|MR|Test|E|Lead 48679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048680|148680|989898|1|9999048680|MR|Test|E|Lead 48680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048681|148681|989898|1|9999048681|MR|Test|E|Lead 48681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048682|148682|989898|1|9999048682|MR|Test|E|Lead 48682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048683|148683|989898|1|9999048683|MR|Test|E|Lead 48683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048684|148684|989898|1|9999048684|MR|Test|E|Lead 48684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048685|148685|989898|1|9999048685|MR|Test|E|Lead 48685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048686|148686|989898|1|9999048686|MR|Test|E|Lead 48686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048687|148687|989898|1|9999048687|MR|Test|E|Lead 48687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048688|148688|989898|1|9999048688|MR|Test|E|Lead 48688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048689|148689|989898|1|9999048689|MR|Test|E|Lead 48689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048690|148690|989898|1|9999048690|MR|Test|E|Lead 48690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048691|148691|989898|1|9999048691|MR|Test|E|Lead 48691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048692|148692|989898|1|9999048692|MR|Test|E|Lead 48692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048693|148693|989898|1|9999048693|MR|Test|E|Lead 48693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048694|148694|989898|1|9999048694|MR|Test|E|Lead 48694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048695|148695|989898|1|9999048695|MR|Test|E|Lead 48695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048696|148696|989898|1|9999048696|MR|Test|E|Lead 48696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048697|148697|989898|1|9999048697|MR|Test|E|Lead 48697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048698|148698|989898|1|9999048698|MR|Test|E|Lead 48698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048699|148699|989898|1|9999048699|MR|Test|E|Lead 48699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048700|148700|989898|1|9999048700|MR|Test|E|Lead 48700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048701|148701|989898|1|9999048701|MR|Test|E|Lead 48701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048702|148702|989898|1|9999048702|MR|Test|E|Lead 48702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048703|148703|989898|1|9999048703|MR|Test|E|Lead 48703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048704|148704|989898|1|9999048704|MR|Test|E|Lead 48704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048705|148705|989898|1|9999048705|MR|Test|E|Lead 48705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048706|148706|989898|1|9999048706|MR|Test|E|Lead 48706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048707|148707|989898|1|9999048707|MR|Test|E|Lead 48707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048708|148708|989898|1|9999048708|MR|Test|E|Lead 48708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048709|148709|989898|1|9999048709|MR|Test|E|Lead 48709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048710|148710|989898|1|9999048710|MR|Test|E|Lead 48710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048711|148711|989898|1|9999048711|MR|Test|E|Lead 48711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048712|148712|989898|1|9999048712|MR|Test|E|Lead 48712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048713|148713|989898|1|9999048713|MR|Test|E|Lead 48713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048714|148714|989898|1|9999048714|MR|Test|E|Lead 48714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048715|148715|989898|1|9999048715|MR|Test|E|Lead 48715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048716|148716|989898|1|9999048716|MR|Test|E|Lead 48716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048717|148717|989898|1|9999048717|MR|Test|E|Lead 48717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048718|148718|989898|1|9999048718|MR|Test|E|Lead 48718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048719|148719|989898|1|9999048719|MR|Test|E|Lead 48719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048720|148720|989898|1|9999048720|MR|Test|E|Lead 48720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048721|148721|989898|1|9999048721|MR|Test|E|Lead 48721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048722|148722|989898|1|9999048722|MR|Test|E|Lead 48722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048723|148723|989898|1|9999048723|MR|Test|E|Lead 48723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048724|148724|989898|1|9999048724|MR|Test|E|Lead 48724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048725|148725|989898|1|9999048725|MR|Test|E|Lead 48725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048726|148726|989898|1|9999048726|MR|Test|E|Lead 48726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048727|148727|989898|1|9999048727|MR|Test|E|Lead 48727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048728|148728|989898|1|9999048728|MR|Test|E|Lead 48728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048729|148729|989898|1|9999048729|MR|Test|E|Lead 48729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048730|148730|989898|1|9999048730|MR|Test|E|Lead 48730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048731|148731|989898|1|9999048731|MR|Test|E|Lead 48731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048732|148732|989898|1|9999048732|MR|Test|E|Lead 48732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048733|148733|989898|1|9999048733|MR|Test|E|Lead 48733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048734|148734|989898|1|9999048734|MR|Test|E|Lead 48734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048735|148735|989898|1|9999048735|MR|Test|E|Lead 48735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048736|148736|989898|1|9999048736|MR|Test|E|Lead 48736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048737|148737|989898|1|9999048737|MR|Test|E|Lead 48737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048738|148738|989898|1|9999048738|MR|Test|E|Lead 48738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048739|148739|989898|1|9999048739|MR|Test|E|Lead 48739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048740|148740|989898|1|9999048740|MR|Test|E|Lead 48740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048741|148741|989898|1|9999048741|MR|Test|E|Lead 48741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048742|148742|989898|1|9999048742|MR|Test|E|Lead 48742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048743|148743|989898|1|9999048743|MR|Test|E|Lead 48743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048744|148744|989898|1|9999048744|MR|Test|E|Lead 48744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048745|148745|989898|1|9999048745|MR|Test|E|Lead 48745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048746|148746|989898|1|9999048746|MR|Test|E|Lead 48746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048747|148747|989898|1|9999048747|MR|Test|E|Lead 48747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048748|148748|989898|1|9999048748|MR|Test|E|Lead 48748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048749|148749|989898|1|9999048749|MR|Test|E|Lead 48749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048750|148750|989898|1|9999048750|MR|Test|E|Lead 48750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048751|148751|989898|1|9999048751|MR|Test|E|Lead 48751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048752|148752|989898|1|9999048752|MR|Test|E|Lead 48752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048753|148753|989898|1|9999048753|MR|Test|E|Lead 48753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048754|148754|989898|1|9999048754|MR|Test|E|Lead 48754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048755|148755|989898|1|9999048755|MR|Test|E|Lead 48755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048756|148756|989898|1|9999048756|MR|Test|E|Lead 48756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048757|148757|989898|1|9999048757|MR|Test|E|Lead 48757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048758|148758|989898|1|9999048758|MR|Test|E|Lead 48758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048759|148759|989898|1|9999048759|MR|Test|E|Lead 48759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048760|148760|989898|1|9999048760|MR|Test|E|Lead 48760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048761|148761|989898|1|9999048761|MR|Test|E|Lead 48761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048762|148762|989898|1|9999048762|MR|Test|E|Lead 48762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048763|148763|989898|1|9999048763|MR|Test|E|Lead 48763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048764|148764|989898|1|9999048764|MR|Test|E|Lead 48764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048765|148765|989898|1|9999048765|MR|Test|E|Lead 48765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048766|148766|989898|1|9999048766|MR|Test|E|Lead 48766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048767|148767|989898|1|9999048767|MR|Test|E|Lead 48767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048768|148768|989898|1|9999048768|MR|Test|E|Lead 48768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048769|148769|989898|1|9999048769|MR|Test|E|Lead 48769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048770|148770|989898|1|9999048770|MR|Test|E|Lead 48770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048771|148771|989898|1|9999048771|MR|Test|E|Lead 48771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048772|148772|989898|1|9999048772|MR|Test|E|Lead 48772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048773|148773|989898|1|9999048773|MR|Test|E|Lead 48773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048774|148774|989898|1|9999048774|MR|Test|E|Lead 48774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048775|148775|989898|1|9999048775|MR|Test|E|Lead 48775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048776|148776|989898|1|9999048776|MR|Test|E|Lead 48776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048777|148777|989898|1|9999048777|MR|Test|E|Lead 48777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048778|148778|989898|1|9999048778|MR|Test|E|Lead 48778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048779|148779|989898|1|9999048779|MR|Test|E|Lead 48779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048780|148780|989898|1|9999048780|MR|Test|E|Lead 48780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048781|148781|989898|1|9999048781|MR|Test|E|Lead 48781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048782|148782|989898|1|9999048782|MR|Test|E|Lead 48782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048783|148783|989898|1|9999048783|MR|Test|E|Lead 48783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048784|148784|989898|1|9999048784|MR|Test|E|Lead 48784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048785|148785|989898|1|9999048785|MR|Test|E|Lead 48785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048786|148786|989898|1|9999048786|MR|Test|E|Lead 48786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048787|148787|989898|1|9999048787|MR|Test|E|Lead 48787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048788|148788|989898|1|9999048788|MR|Test|E|Lead 48788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048789|148789|989898|1|9999048789|MR|Test|E|Lead 48789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048790|148790|989898|1|9999048790|MR|Test|E|Lead 48790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048791|148791|989898|1|9999048791|MR|Test|E|Lead 48791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048792|148792|989898|1|9999048792|MR|Test|E|Lead 48792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048793|148793|989898|1|9999048793|MR|Test|E|Lead 48793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048794|148794|989898|1|9999048794|MR|Test|E|Lead 48794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048795|148795|989898|1|9999048795|MR|Test|E|Lead 48795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048796|148796|989898|1|9999048796|MR|Test|E|Lead 48796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048797|148797|989898|1|9999048797|MR|Test|E|Lead 48797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048798|148798|989898|1|9999048798|MR|Test|E|Lead 48798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048799|148799|989898|1|9999048799|MR|Test|E|Lead 48799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048800|148800|989898|1|9999048800|MR|Test|E|Lead 48800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048801|148801|989898|1|9999048801|MR|Test|E|Lead 48801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048802|148802|989898|1|9999048802|MR|Test|E|Lead 48802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048803|148803|989898|1|9999048803|MR|Test|E|Lead 48803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048804|148804|989898|1|9999048804|MR|Test|E|Lead 48804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048805|148805|989898|1|9999048805|MR|Test|E|Lead 48805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048806|148806|989898|1|9999048806|MR|Test|E|Lead 48806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048807|148807|989898|1|9999048807|MR|Test|E|Lead 48807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048808|148808|989898|1|9999048808|MR|Test|E|Lead 48808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048809|148809|989898|1|9999048809|MR|Test|E|Lead 48809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048810|148810|989898|1|9999048810|MR|Test|E|Lead 48810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048811|148811|989898|1|9999048811|MR|Test|E|Lead 48811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048812|148812|989898|1|9999048812|MR|Test|E|Lead 48812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048813|148813|989898|1|9999048813|MR|Test|E|Lead 48813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048814|148814|989898|1|9999048814|MR|Test|E|Lead 48814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048815|148815|989898|1|9999048815|MR|Test|E|Lead 48815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048816|148816|989898|1|9999048816|MR|Test|E|Lead 48816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048817|148817|989898|1|9999048817|MR|Test|E|Lead 48817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048818|148818|989898|1|9999048818|MR|Test|E|Lead 48818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048819|148819|989898|1|9999048819|MR|Test|E|Lead 48819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048820|148820|989898|1|9999048820|MR|Test|E|Lead 48820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048821|148821|989898|1|9999048821|MR|Test|E|Lead 48821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048822|148822|989898|1|9999048822|MR|Test|E|Lead 48822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048823|148823|989898|1|9999048823|MR|Test|E|Lead 48823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048824|148824|989898|1|9999048824|MR|Test|E|Lead 48824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048825|148825|989898|1|9999048825|MR|Test|E|Lead 48825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048826|148826|989898|1|9999048826|MR|Test|E|Lead 48826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048827|148827|989898|1|9999048827|MR|Test|E|Lead 48827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048828|148828|989898|1|9999048828|MR|Test|E|Lead 48828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048829|148829|989898|1|9999048829|MR|Test|E|Lead 48829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048830|148830|989898|1|9999048830|MR|Test|E|Lead 48830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048831|148831|989898|1|9999048831|MR|Test|E|Lead 48831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048832|148832|989898|1|9999048832|MR|Test|E|Lead 48832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048833|148833|989898|1|9999048833|MR|Test|E|Lead 48833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048834|148834|989898|1|9999048834|MR|Test|E|Lead 48834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048835|148835|989898|1|9999048835|MR|Test|E|Lead 48835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048836|148836|989898|1|9999048836|MR|Test|E|Lead 48836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048837|148837|989898|1|9999048837|MR|Test|E|Lead 48837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048838|148838|989898|1|9999048838|MR|Test|E|Lead 48838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048839|148839|989898|1|9999048839|MR|Test|E|Lead 48839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048840|148840|989898|1|9999048840|MR|Test|E|Lead 48840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048841|148841|989898|1|9999048841|MR|Test|E|Lead 48841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048842|148842|989898|1|9999048842|MR|Test|E|Lead 48842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048843|148843|989898|1|9999048843|MR|Test|E|Lead 48843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048844|148844|989898|1|9999048844|MR|Test|E|Lead 48844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048845|148845|989898|1|9999048845|MR|Test|E|Lead 48845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048846|148846|989898|1|9999048846|MR|Test|E|Lead 48846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048847|148847|989898|1|9999048847|MR|Test|E|Lead 48847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048848|148848|989898|1|9999048848|MR|Test|E|Lead 48848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048849|148849|989898|1|9999048849|MR|Test|E|Lead 48849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048850|148850|989898|1|9999048850|MR|Test|E|Lead 48850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048851|148851|989898|1|9999048851|MR|Test|E|Lead 48851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048852|148852|989898|1|9999048852|MR|Test|E|Lead 48852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048853|148853|989898|1|9999048853|MR|Test|E|Lead 48853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048854|148854|989898|1|9999048854|MR|Test|E|Lead 48854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048855|148855|989898|1|9999048855|MR|Test|E|Lead 48855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048856|148856|989898|1|9999048856|MR|Test|E|Lead 48856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048857|148857|989898|1|9999048857|MR|Test|E|Lead 48857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048858|148858|989898|1|9999048858|MR|Test|E|Lead 48858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048859|148859|989898|1|9999048859|MR|Test|E|Lead 48859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048860|148860|989898|1|9999048860|MR|Test|E|Lead 48860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048861|148861|989898|1|9999048861|MR|Test|E|Lead 48861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048862|148862|989898|1|9999048862|MR|Test|E|Lead 48862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048863|148863|989898|1|9999048863|MR|Test|E|Lead 48863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048864|148864|989898|1|9999048864|MR|Test|E|Lead 48864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048865|148865|989898|1|9999048865|MR|Test|E|Lead 48865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048866|148866|989898|1|9999048866|MR|Test|E|Lead 48866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048867|148867|989898|1|9999048867|MR|Test|E|Lead 48867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048868|148868|989898|1|9999048868|MR|Test|E|Lead 48868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048869|148869|989898|1|9999048869|MR|Test|E|Lead 48869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048870|148870|989898|1|9999048870|MR|Test|E|Lead 48870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048871|148871|989898|1|9999048871|MR|Test|E|Lead 48871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048872|148872|989898|1|9999048872|MR|Test|E|Lead 48872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048873|148873|989898|1|9999048873|MR|Test|E|Lead 48873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048874|148874|989898|1|9999048874|MR|Test|E|Lead 48874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048875|148875|989898|1|9999048875|MR|Test|E|Lead 48875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048876|148876|989898|1|9999048876|MR|Test|E|Lead 48876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048877|148877|989898|1|9999048877|MR|Test|E|Lead 48877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048878|148878|989898|1|9999048878|MR|Test|E|Lead 48878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048879|148879|989898|1|9999048879|MR|Test|E|Lead 48879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048880|148880|989898|1|9999048880|MR|Test|E|Lead 48880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048881|148881|989898|1|9999048881|MR|Test|E|Lead 48881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048882|148882|989898|1|9999048882|MR|Test|E|Lead 48882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048883|148883|989898|1|9999048883|MR|Test|E|Lead 48883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048884|148884|989898|1|9999048884|MR|Test|E|Lead 48884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048885|148885|989898|1|9999048885|MR|Test|E|Lead 48885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048886|148886|989898|1|9999048886|MR|Test|E|Lead 48886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048887|148887|989898|1|9999048887|MR|Test|E|Lead 48887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048888|148888|989898|1|9999048888|MR|Test|E|Lead 48888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048889|148889|989898|1|9999048889|MR|Test|E|Lead 48889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048890|148890|989898|1|9999048890|MR|Test|E|Lead 48890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048891|148891|989898|1|9999048891|MR|Test|E|Lead 48891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048892|148892|989898|1|9999048892|MR|Test|E|Lead 48892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048893|148893|989898|1|9999048893|MR|Test|E|Lead 48893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048894|148894|989898|1|9999048894|MR|Test|E|Lead 48894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048895|148895|989898|1|9999048895|MR|Test|E|Lead 48895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048896|148896|989898|1|9999048896|MR|Test|E|Lead 48896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048897|148897|989898|1|9999048897|MR|Test|E|Lead 48897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048898|148898|989898|1|9999048898|MR|Test|E|Lead 48898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048899|148899|989898|1|9999048899|MR|Test|E|Lead 48899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048900|148900|989898|1|9999048900|MR|Test|E|Lead 48900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048901|148901|989898|1|9999048901|MR|Test|E|Lead 48901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048902|148902|989898|1|9999048902|MR|Test|E|Lead 48902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048903|148903|989898|1|9999048903|MR|Test|E|Lead 48903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048904|148904|989898|1|9999048904|MR|Test|E|Lead 48904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048905|148905|989898|1|9999048905|MR|Test|E|Lead 48905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048906|148906|989898|1|9999048906|MR|Test|E|Lead 48906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048907|148907|989898|1|9999048907|MR|Test|E|Lead 48907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048908|148908|989898|1|9999048908|MR|Test|E|Lead 48908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048909|148909|989898|1|9999048909|MR|Test|E|Lead 48909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048910|148910|989898|1|9999048910|MR|Test|E|Lead 48910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048911|148911|989898|1|9999048911|MR|Test|E|Lead 48911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048912|148912|989898|1|9999048912|MR|Test|E|Lead 48912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048913|148913|989898|1|9999048913|MR|Test|E|Lead 48913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048914|148914|989898|1|9999048914|MR|Test|E|Lead 48914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048915|148915|989898|1|9999048915|MR|Test|E|Lead 48915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048916|148916|989898|1|9999048916|MR|Test|E|Lead 48916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048917|148917|989898|1|9999048917|MR|Test|E|Lead 48917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048918|148918|989898|1|9999048918|MR|Test|E|Lead 48918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048919|148919|989898|1|9999048919|MR|Test|E|Lead 48919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048920|148920|989898|1|9999048920|MR|Test|E|Lead 48920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048921|148921|989898|1|9999048921|MR|Test|E|Lead 48921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048922|148922|989898|1|9999048922|MR|Test|E|Lead 48922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048923|148923|989898|1|9999048923|MR|Test|E|Lead 48923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048924|148924|989898|1|9999048924|MR|Test|E|Lead 48924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048925|148925|989898|1|9999048925|MR|Test|E|Lead 48925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048926|148926|989898|1|9999048926|MR|Test|E|Lead 48926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048927|148927|989898|1|9999048927|MR|Test|E|Lead 48927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048928|148928|989898|1|9999048928|MR|Test|E|Lead 48928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048929|148929|989898|1|9999048929|MR|Test|E|Lead 48929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048930|148930|989898|1|9999048930|MR|Test|E|Lead 48930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048931|148931|989898|1|9999048931|MR|Test|E|Lead 48931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048932|148932|989898|1|9999048932|MR|Test|E|Lead 48932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048933|148933|989898|1|9999048933|MR|Test|E|Lead 48933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048934|148934|989898|1|9999048934|MR|Test|E|Lead 48934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048935|148935|989898|1|9999048935|MR|Test|E|Lead 48935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048936|148936|989898|1|9999048936|MR|Test|E|Lead 48936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048937|148937|989898|1|9999048937|MR|Test|E|Lead 48937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048938|148938|989898|1|9999048938|MR|Test|E|Lead 48938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048939|148939|989898|1|9999048939|MR|Test|E|Lead 48939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048940|148940|989898|1|9999048940|MR|Test|E|Lead 48940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048941|148941|989898|1|9999048941|MR|Test|E|Lead 48941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048942|148942|989898|1|9999048942|MR|Test|E|Lead 48942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048943|148943|989898|1|9999048943|MR|Test|E|Lead 48943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048944|148944|989898|1|9999048944|MR|Test|E|Lead 48944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048945|148945|989898|1|9999048945|MR|Test|E|Lead 48945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048946|148946|989898|1|9999048946|MR|Test|E|Lead 48946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048947|148947|989898|1|9999048947|MR|Test|E|Lead 48947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048948|148948|989898|1|9999048948|MR|Test|E|Lead 48948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048949|148949|989898|1|9999048949|MR|Test|E|Lead 48949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048950|148950|989898|1|9999048950|MR|Test|E|Lead 48950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048951|148951|989898|1|9999048951|MR|Test|E|Lead 48951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048952|148952|989898|1|9999048952|MR|Test|E|Lead 48952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048953|148953|989898|1|9999048953|MR|Test|E|Lead 48953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048954|148954|989898|1|9999048954|MR|Test|E|Lead 48954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048955|148955|989898|1|9999048955|MR|Test|E|Lead 48955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048956|148956|989898|1|9999048956|MR|Test|E|Lead 48956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048957|148957|989898|1|9999048957|MR|Test|E|Lead 48957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048958|148958|989898|1|9999048958|MR|Test|E|Lead 48958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048959|148959|989898|1|9999048959|MR|Test|E|Lead 48959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048960|148960|989898|1|9999048960|MR|Test|E|Lead 48960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048961|148961|989898|1|9999048961|MR|Test|E|Lead 48961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048962|148962|989898|1|9999048962|MR|Test|E|Lead 48962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048963|148963|989898|1|9999048963|MR|Test|E|Lead 48963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048964|148964|989898|1|9999048964|MR|Test|E|Lead 48964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048965|148965|989898|1|9999048965|MR|Test|E|Lead 48965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048966|148966|989898|1|9999048966|MR|Test|E|Lead 48966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048967|148967|989898|1|9999048967|MR|Test|E|Lead 48967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048968|148968|989898|1|9999048968|MR|Test|E|Lead 48968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048969|148969|989898|1|9999048969|MR|Test|E|Lead 48969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048970|148970|989898|1|9999048970|MR|Test|E|Lead 48970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048971|148971|989898|1|9999048971|MR|Test|E|Lead 48971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048972|148972|989898|1|9999048972|MR|Test|E|Lead 48972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048973|148973|989898|1|9999048973|MR|Test|E|Lead 48973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048974|148974|989898|1|9999048974|MR|Test|E|Lead 48974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048975|148975|989898|1|9999048975|MR|Test|E|Lead 48975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048976|148976|989898|1|9999048976|MR|Test|E|Lead 48976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048977|148977|989898|1|9999048977|MR|Test|E|Lead 48977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048978|148978|989898|1|9999048978|MR|Test|E|Lead 48978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048979|148979|989898|1|9999048979|MR|Test|E|Lead 48979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048980|148980|989898|1|9999048980|MR|Test|E|Lead 48980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048981|148981|989898|1|9999048981|MR|Test|E|Lead 48981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048982|148982|989898|1|9999048982|MR|Test|E|Lead 48982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048983|148983|989898|1|9999048983|MR|Test|E|Lead 48983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048984|148984|989898|1|9999048984|MR|Test|E|Lead 48984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048985|148985|989898|1|9999048985|MR|Test|E|Lead 48985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048986|148986|989898|1|9999048986|MR|Test|E|Lead 48986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048987|148987|989898|1|9999048987|MR|Test|E|Lead 48987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048988|148988|989898|1|9999048988|MR|Test|E|Lead 48988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048989|148989|989898|1|9999048989|MR|Test|E|Lead 48989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048990|148990|989898|1|9999048990|MR|Test|E|Lead 48990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048991|148991|989898|1|9999048991|MR|Test|E|Lead 48991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048992|148992|989898|1|9999048992|MR|Test|E|Lead 48992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048993|148993|989898|1|9999048993|MR|Test|E|Lead 48993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048994|148994|989898|1|9999048994|MR|Test|E|Lead 48994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048995|148995|989898|1|9999048995|MR|Test|E|Lead 48995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048996|148996|989898|1|9999048996|MR|Test|E|Lead 48996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048997|148997|989898|1|9999048997|MR|Test|E|Lead 48997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048998|148998|989898|1|9999048998|MR|Test|E|Lead 48998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1048999|148999|989898|1|9999048999|MR|Test|E|Lead 48999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049000|149000|989898|1|9999049000|MR|Test|E|Lead 49000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049001|149001|989898|1|9999049001|MR|Test|E|Lead 49001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049002|149002|989898|1|9999049002|MR|Test|E|Lead 49002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049003|149003|989898|1|9999049003|MR|Test|E|Lead 49003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049004|149004|989898|1|9999049004|MR|Test|E|Lead 49004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049005|149005|989898|1|9999049005|MR|Test|E|Lead 49005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049006|149006|989898|1|9999049006|MR|Test|E|Lead 49006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049007|149007|989898|1|9999049007|MR|Test|E|Lead 49007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049008|149008|989898|1|9999049008|MR|Test|E|Lead 49008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049009|149009|989898|1|9999049009|MR|Test|E|Lead 49009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049010|149010|989898|1|9999049010|MR|Test|E|Lead 49010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049011|149011|989898|1|9999049011|MR|Test|E|Lead 49011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049012|149012|989898|1|9999049012|MR|Test|E|Lead 49012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049013|149013|989898|1|9999049013|MR|Test|E|Lead 49013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049014|149014|989898|1|9999049014|MR|Test|E|Lead 49014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049015|149015|989898|1|9999049015|MR|Test|E|Lead 49015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049016|149016|989898|1|9999049016|MR|Test|E|Lead 49016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049017|149017|989898|1|9999049017|MR|Test|E|Lead 49017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049018|149018|989898|1|9999049018|MR|Test|E|Lead 49018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049019|149019|989898|1|9999049019|MR|Test|E|Lead 49019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049020|149020|989898|1|9999049020|MR|Test|E|Lead 49020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049021|149021|989898|1|9999049021|MR|Test|E|Lead 49021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049022|149022|989898|1|9999049022|MR|Test|E|Lead 49022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049023|149023|989898|1|9999049023|MR|Test|E|Lead 49023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049024|149024|989898|1|9999049024|MR|Test|E|Lead 49024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049025|149025|989898|1|9999049025|MR|Test|E|Lead 49025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049026|149026|989898|1|9999049026|MR|Test|E|Lead 49026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049027|149027|989898|1|9999049027|MR|Test|E|Lead 49027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049028|149028|989898|1|9999049028|MR|Test|E|Lead 49028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049029|149029|989898|1|9999049029|MR|Test|E|Lead 49029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049030|149030|989898|1|9999049030|MR|Test|E|Lead 49030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049031|149031|989898|1|9999049031|MR|Test|E|Lead 49031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049032|149032|989898|1|9999049032|MR|Test|E|Lead 49032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049033|149033|989898|1|9999049033|MR|Test|E|Lead 49033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049034|149034|989898|1|9999049034|MR|Test|E|Lead 49034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049035|149035|989898|1|9999049035|MR|Test|E|Lead 49035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049036|149036|989898|1|9999049036|MR|Test|E|Lead 49036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049037|149037|989898|1|9999049037|MR|Test|E|Lead 49037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049038|149038|989898|1|9999049038|MR|Test|E|Lead 49038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049039|149039|989898|1|9999049039|MR|Test|E|Lead 49039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049040|149040|989898|1|9999049040|MR|Test|E|Lead 49040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049041|149041|989898|1|9999049041|MR|Test|E|Lead 49041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049042|149042|989898|1|9999049042|MR|Test|E|Lead 49042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049043|149043|989898|1|9999049043|MR|Test|E|Lead 49043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049044|149044|989898|1|9999049044|MR|Test|E|Lead 49044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049045|149045|989898|1|9999049045|MR|Test|E|Lead 49045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049046|149046|989898|1|9999049046|MR|Test|E|Lead 49046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049047|149047|989898|1|9999049047|MR|Test|E|Lead 49047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049048|149048|989898|1|9999049048|MR|Test|E|Lead 49048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049049|149049|989898|1|9999049049|MR|Test|E|Lead 49049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049050|149050|989898|1|9999049050|MR|Test|E|Lead 49050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049051|149051|989898|1|9999049051|MR|Test|E|Lead 49051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049052|149052|989898|1|9999049052|MR|Test|E|Lead 49052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049053|149053|989898|1|9999049053|MR|Test|E|Lead 49053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049054|149054|989898|1|9999049054|MR|Test|E|Lead 49054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049055|149055|989898|1|9999049055|MR|Test|E|Lead 49055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049056|149056|989898|1|9999049056|MR|Test|E|Lead 49056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049057|149057|989898|1|9999049057|MR|Test|E|Lead 49057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049058|149058|989898|1|9999049058|MR|Test|E|Lead 49058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049059|149059|989898|1|9999049059|MR|Test|E|Lead 49059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049060|149060|989898|1|9999049060|MR|Test|E|Lead 49060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049061|149061|989898|1|9999049061|MR|Test|E|Lead 49061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049062|149062|989898|1|9999049062|MR|Test|E|Lead 49062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049063|149063|989898|1|9999049063|MR|Test|E|Lead 49063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049064|149064|989898|1|9999049064|MR|Test|E|Lead 49064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049065|149065|989898|1|9999049065|MR|Test|E|Lead 49065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049066|149066|989898|1|9999049066|MR|Test|E|Lead 49066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049067|149067|989898|1|9999049067|MR|Test|E|Lead 49067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049068|149068|989898|1|9999049068|MR|Test|E|Lead 49068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049069|149069|989898|1|9999049069|MR|Test|E|Lead 49069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049070|149070|989898|1|9999049070|MR|Test|E|Lead 49070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049071|149071|989898|1|9999049071|MR|Test|E|Lead 49071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049072|149072|989898|1|9999049072|MR|Test|E|Lead 49072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049073|149073|989898|1|9999049073|MR|Test|E|Lead 49073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049074|149074|989898|1|9999049074|MR|Test|E|Lead 49074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049075|149075|989898|1|9999049075|MR|Test|E|Lead 49075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049076|149076|989898|1|9999049076|MR|Test|E|Lead 49076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049077|149077|989898|1|9999049077|MR|Test|E|Lead 49077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049078|149078|989898|1|9999049078|MR|Test|E|Lead 49078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049079|149079|989898|1|9999049079|MR|Test|E|Lead 49079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049080|149080|989898|1|9999049080|MR|Test|E|Lead 49080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049081|149081|989898|1|9999049081|MR|Test|E|Lead 49081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049082|149082|989898|1|9999049082|MR|Test|E|Lead 49082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049083|149083|989898|1|9999049083|MR|Test|E|Lead 49083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049084|149084|989898|1|9999049084|MR|Test|E|Lead 49084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049085|149085|989898|1|9999049085|MR|Test|E|Lead 49085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049086|149086|989898|1|9999049086|MR|Test|E|Lead 49086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049087|149087|989898|1|9999049087|MR|Test|E|Lead 49087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049088|149088|989898|1|9999049088|MR|Test|E|Lead 49088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049089|149089|989898|1|9999049089|MR|Test|E|Lead 49089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049090|149090|989898|1|9999049090|MR|Test|E|Lead 49090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049091|149091|989898|1|9999049091|MR|Test|E|Lead 49091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049092|149092|989898|1|9999049092|MR|Test|E|Lead 49092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049093|149093|989898|1|9999049093|MR|Test|E|Lead 49093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049094|149094|989898|1|9999049094|MR|Test|E|Lead 49094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049095|149095|989898|1|9999049095|MR|Test|E|Lead 49095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049096|149096|989898|1|9999049096|MR|Test|E|Lead 49096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049097|149097|989898|1|9999049097|MR|Test|E|Lead 49097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049098|149098|989898|1|9999049098|MR|Test|E|Lead 49098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049099|149099|989898|1|9999049099|MR|Test|E|Lead 49099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049100|149100|989898|1|9999049100|MR|Test|E|Lead 49100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049101|149101|989898|1|9999049101|MR|Test|E|Lead 49101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049102|149102|989898|1|9999049102|MR|Test|E|Lead 49102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049103|149103|989898|1|9999049103|MR|Test|E|Lead 49103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049104|149104|989898|1|9999049104|MR|Test|E|Lead 49104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049105|149105|989898|1|9999049105|MR|Test|E|Lead 49105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049106|149106|989898|1|9999049106|MR|Test|E|Lead 49106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049107|149107|989898|1|9999049107|MR|Test|E|Lead 49107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049108|149108|989898|1|9999049108|MR|Test|E|Lead 49108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049109|149109|989898|1|9999049109|MR|Test|E|Lead 49109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049110|149110|989898|1|9999049110|MR|Test|E|Lead 49110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049111|149111|989898|1|9999049111|MR|Test|E|Lead 49111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049112|149112|989898|1|9999049112|MR|Test|E|Lead 49112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049113|149113|989898|1|9999049113|MR|Test|E|Lead 49113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049114|149114|989898|1|9999049114|MR|Test|E|Lead 49114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049115|149115|989898|1|9999049115|MR|Test|E|Lead 49115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049116|149116|989898|1|9999049116|MR|Test|E|Lead 49116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049117|149117|989898|1|9999049117|MR|Test|E|Lead 49117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049118|149118|989898|1|9999049118|MR|Test|E|Lead 49118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049119|149119|989898|1|9999049119|MR|Test|E|Lead 49119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049120|149120|989898|1|9999049120|MR|Test|E|Lead 49120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049121|149121|989898|1|9999049121|MR|Test|E|Lead 49121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049122|149122|989898|1|9999049122|MR|Test|E|Lead 49122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049123|149123|989898|1|9999049123|MR|Test|E|Lead 49123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049124|149124|989898|1|9999049124|MR|Test|E|Lead 49124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049125|149125|989898|1|9999049125|MR|Test|E|Lead 49125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049126|149126|989898|1|9999049126|MR|Test|E|Lead 49126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049127|149127|989898|1|9999049127|MR|Test|E|Lead 49127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049128|149128|989898|1|9999049128|MR|Test|E|Lead 49128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049129|149129|989898|1|9999049129|MR|Test|E|Lead 49129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049130|149130|989898|1|9999049130|MR|Test|E|Lead 49130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049131|149131|989898|1|9999049131|MR|Test|E|Lead 49131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049132|149132|989898|1|9999049132|MR|Test|E|Lead 49132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049133|149133|989898|1|9999049133|MR|Test|E|Lead 49133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049134|149134|989898|1|9999049134|MR|Test|E|Lead 49134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049135|149135|989898|1|9999049135|MR|Test|E|Lead 49135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049136|149136|989898|1|9999049136|MR|Test|E|Lead 49136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049137|149137|989898|1|9999049137|MR|Test|E|Lead 49137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049138|149138|989898|1|9999049138|MR|Test|E|Lead 49138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049139|149139|989898|1|9999049139|MR|Test|E|Lead 49139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049140|149140|989898|1|9999049140|MR|Test|E|Lead 49140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049141|149141|989898|1|9999049141|MR|Test|E|Lead 49141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049142|149142|989898|1|9999049142|MR|Test|E|Lead 49142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049143|149143|989898|1|9999049143|MR|Test|E|Lead 49143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049144|149144|989898|1|9999049144|MR|Test|E|Lead 49144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049145|149145|989898|1|9999049145|MR|Test|E|Lead 49145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049146|149146|989898|1|9999049146|MR|Test|E|Lead 49146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049147|149147|989898|1|9999049147|MR|Test|E|Lead 49147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049148|149148|989898|1|9999049148|MR|Test|E|Lead 49148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049149|149149|989898|1|9999049149|MR|Test|E|Lead 49149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049150|149150|989898|1|9999049150|MR|Test|E|Lead 49150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049151|149151|989898|1|9999049151|MR|Test|E|Lead 49151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049152|149152|989898|1|9999049152|MR|Test|E|Lead 49152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049153|149153|989898|1|9999049153|MR|Test|E|Lead 49153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049154|149154|989898|1|9999049154|MR|Test|E|Lead 49154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049155|149155|989898|1|9999049155|MR|Test|E|Lead 49155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049156|149156|989898|1|9999049156|MR|Test|E|Lead 49156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049157|149157|989898|1|9999049157|MR|Test|E|Lead 49157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049158|149158|989898|1|9999049158|MR|Test|E|Lead 49158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049159|149159|989898|1|9999049159|MR|Test|E|Lead 49159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049160|149160|989898|1|9999049160|MR|Test|E|Lead 49160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049161|149161|989898|1|9999049161|MR|Test|E|Lead 49161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049162|149162|989898|1|9999049162|MR|Test|E|Lead 49162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049163|149163|989898|1|9999049163|MR|Test|E|Lead 49163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049164|149164|989898|1|9999049164|MR|Test|E|Lead 49164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049165|149165|989898|1|9999049165|MR|Test|E|Lead 49165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049166|149166|989898|1|9999049166|MR|Test|E|Lead 49166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049167|149167|989898|1|9999049167|MR|Test|E|Lead 49167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049168|149168|989898|1|9999049168|MR|Test|E|Lead 49168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049169|149169|989898|1|9999049169|MR|Test|E|Lead 49169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049170|149170|989898|1|9999049170|MR|Test|E|Lead 49170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049171|149171|989898|1|9999049171|MR|Test|E|Lead 49171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049172|149172|989898|1|9999049172|MR|Test|E|Lead 49172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049173|149173|989898|1|9999049173|MR|Test|E|Lead 49173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049174|149174|989898|1|9999049174|MR|Test|E|Lead 49174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049175|149175|989898|1|9999049175|MR|Test|E|Lead 49175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049176|149176|989898|1|9999049176|MR|Test|E|Lead 49176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049177|149177|989898|1|9999049177|MR|Test|E|Lead 49177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049178|149178|989898|1|9999049178|MR|Test|E|Lead 49178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049179|149179|989898|1|9999049179|MR|Test|E|Lead 49179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049180|149180|989898|1|9999049180|MR|Test|E|Lead 49180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049181|149181|989898|1|9999049181|MR|Test|E|Lead 49181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049182|149182|989898|1|9999049182|MR|Test|E|Lead 49182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049183|149183|989898|1|9999049183|MR|Test|E|Lead 49183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049184|149184|989898|1|9999049184|MR|Test|E|Lead 49184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049185|149185|989898|1|9999049185|MR|Test|E|Lead 49185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049186|149186|989898|1|9999049186|MR|Test|E|Lead 49186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049187|149187|989898|1|9999049187|MR|Test|E|Lead 49187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049188|149188|989898|1|9999049188|MR|Test|E|Lead 49188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049189|149189|989898|1|9999049189|MR|Test|E|Lead 49189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049190|149190|989898|1|9999049190|MR|Test|E|Lead 49190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049191|149191|989898|1|9999049191|MR|Test|E|Lead 49191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049192|149192|989898|1|9999049192|MR|Test|E|Lead 49192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049193|149193|989898|1|9999049193|MR|Test|E|Lead 49193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049194|149194|989898|1|9999049194|MR|Test|E|Lead 49194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049195|149195|989898|1|9999049195|MR|Test|E|Lead 49195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049196|149196|989898|1|9999049196|MR|Test|E|Lead 49196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049197|149197|989898|1|9999049197|MR|Test|E|Lead 49197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049198|149198|989898|1|9999049198|MR|Test|E|Lead 49198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049199|149199|989898|1|9999049199|MR|Test|E|Lead 49199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049200|149200|989898|1|9999049200|MR|Test|E|Lead 49200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049201|149201|989898|1|9999049201|MR|Test|E|Lead 49201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049202|149202|989898|1|9999049202|MR|Test|E|Lead 49202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049203|149203|989898|1|9999049203|MR|Test|E|Lead 49203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049204|149204|989898|1|9999049204|MR|Test|E|Lead 49204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049205|149205|989898|1|9999049205|MR|Test|E|Lead 49205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049206|149206|989898|1|9999049206|MR|Test|E|Lead 49206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049207|149207|989898|1|9999049207|MR|Test|E|Lead 49207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049208|149208|989898|1|9999049208|MR|Test|E|Lead 49208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049209|149209|989898|1|9999049209|MR|Test|E|Lead 49209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049210|149210|989898|1|9999049210|MR|Test|E|Lead 49210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049211|149211|989898|1|9999049211|MR|Test|E|Lead 49211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049212|149212|989898|1|9999049212|MR|Test|E|Lead 49212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049213|149213|989898|1|9999049213|MR|Test|E|Lead 49213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049214|149214|989898|1|9999049214|MR|Test|E|Lead 49214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049215|149215|989898|1|9999049215|MR|Test|E|Lead 49215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049216|149216|989898|1|9999049216|MR|Test|E|Lead 49216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049217|149217|989898|1|9999049217|MR|Test|E|Lead 49217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049218|149218|989898|1|9999049218|MR|Test|E|Lead 49218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049219|149219|989898|1|9999049219|MR|Test|E|Lead 49219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049220|149220|989898|1|9999049220|MR|Test|E|Lead 49220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049221|149221|989898|1|9999049221|MR|Test|E|Lead 49221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049222|149222|989898|1|9999049222|MR|Test|E|Lead 49222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049223|149223|989898|1|9999049223|MR|Test|E|Lead 49223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049224|149224|989898|1|9999049224|MR|Test|E|Lead 49224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049225|149225|989898|1|9999049225|MR|Test|E|Lead 49225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049226|149226|989898|1|9999049226|MR|Test|E|Lead 49226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049227|149227|989898|1|9999049227|MR|Test|E|Lead 49227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049228|149228|989898|1|9999049228|MR|Test|E|Lead 49228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049229|149229|989898|1|9999049229|MR|Test|E|Lead 49229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049230|149230|989898|1|9999049230|MR|Test|E|Lead 49230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049231|149231|989898|1|9999049231|MR|Test|E|Lead 49231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049232|149232|989898|1|9999049232|MR|Test|E|Lead 49232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049233|149233|989898|1|9999049233|MR|Test|E|Lead 49233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049234|149234|989898|1|9999049234|MR|Test|E|Lead 49234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049235|149235|989898|1|9999049235|MR|Test|E|Lead 49235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049236|149236|989898|1|9999049236|MR|Test|E|Lead 49236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049237|149237|989898|1|9999049237|MR|Test|E|Lead 49237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049238|149238|989898|1|9999049238|MR|Test|E|Lead 49238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049239|149239|989898|1|9999049239|MR|Test|E|Lead 49239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049240|149240|989898|1|9999049240|MR|Test|E|Lead 49240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049241|149241|989898|1|9999049241|MR|Test|E|Lead 49241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049242|149242|989898|1|9999049242|MR|Test|E|Lead 49242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049243|149243|989898|1|9999049243|MR|Test|E|Lead 49243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049244|149244|989898|1|9999049244|MR|Test|E|Lead 49244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049245|149245|989898|1|9999049245|MR|Test|E|Lead 49245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049246|149246|989898|1|9999049246|MR|Test|E|Lead 49246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049247|149247|989898|1|9999049247|MR|Test|E|Lead 49247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049248|149248|989898|1|9999049248|MR|Test|E|Lead 49248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049249|149249|989898|1|9999049249|MR|Test|E|Lead 49249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049250|149250|989898|1|9999049250|MR|Test|E|Lead 49250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049251|149251|989898|1|9999049251|MR|Test|E|Lead 49251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049252|149252|989898|1|9999049252|MR|Test|E|Lead 49252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049253|149253|989898|1|9999049253|MR|Test|E|Lead 49253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049254|149254|989898|1|9999049254|MR|Test|E|Lead 49254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049255|149255|989898|1|9999049255|MR|Test|E|Lead 49255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049256|149256|989898|1|9999049256|MR|Test|E|Lead 49256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049257|149257|989898|1|9999049257|MR|Test|E|Lead 49257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049258|149258|989898|1|9999049258|MR|Test|E|Lead 49258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049259|149259|989898|1|9999049259|MR|Test|E|Lead 49259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049260|149260|989898|1|9999049260|MR|Test|E|Lead 49260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049261|149261|989898|1|9999049261|MR|Test|E|Lead 49261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049262|149262|989898|1|9999049262|MR|Test|E|Lead 49262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049263|149263|989898|1|9999049263|MR|Test|E|Lead 49263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049264|149264|989898|1|9999049264|MR|Test|E|Lead 49264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049265|149265|989898|1|9999049265|MR|Test|E|Lead 49265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049266|149266|989898|1|9999049266|MR|Test|E|Lead 49266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049267|149267|989898|1|9999049267|MR|Test|E|Lead 49267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049268|149268|989898|1|9999049268|MR|Test|E|Lead 49268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049269|149269|989898|1|9999049269|MR|Test|E|Lead 49269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049270|149270|989898|1|9999049270|MR|Test|E|Lead 49270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049271|149271|989898|1|9999049271|MR|Test|E|Lead 49271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049272|149272|989898|1|9999049272|MR|Test|E|Lead 49272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049273|149273|989898|1|9999049273|MR|Test|E|Lead 49273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049274|149274|989898|1|9999049274|MR|Test|E|Lead 49274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049275|149275|989898|1|9999049275|MR|Test|E|Lead 49275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049276|149276|989898|1|9999049276|MR|Test|E|Lead 49276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049277|149277|989898|1|9999049277|MR|Test|E|Lead 49277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049278|149278|989898|1|9999049278|MR|Test|E|Lead 49278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049279|149279|989898|1|9999049279|MR|Test|E|Lead 49279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049280|149280|989898|1|9999049280|MR|Test|E|Lead 49280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049281|149281|989898|1|9999049281|MR|Test|E|Lead 49281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049282|149282|989898|1|9999049282|MR|Test|E|Lead 49282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049283|149283|989898|1|9999049283|MR|Test|E|Lead 49283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049284|149284|989898|1|9999049284|MR|Test|E|Lead 49284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049285|149285|989898|1|9999049285|MR|Test|E|Lead 49285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049286|149286|989898|1|9999049286|MR|Test|E|Lead 49286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049287|149287|989898|1|9999049287|MR|Test|E|Lead 49287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049288|149288|989898|1|9999049288|MR|Test|E|Lead 49288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049289|149289|989898|1|9999049289|MR|Test|E|Lead 49289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049290|149290|989898|1|9999049290|MR|Test|E|Lead 49290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049291|149291|989898|1|9999049291|MR|Test|E|Lead 49291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049292|149292|989898|1|9999049292|MR|Test|E|Lead 49292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049293|149293|989898|1|9999049293|MR|Test|E|Lead 49293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049294|149294|989898|1|9999049294|MR|Test|E|Lead 49294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049295|149295|989898|1|9999049295|MR|Test|E|Lead 49295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049296|149296|989898|1|9999049296|MR|Test|E|Lead 49296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049297|149297|989898|1|9999049297|MR|Test|E|Lead 49297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049298|149298|989898|1|9999049298|MR|Test|E|Lead 49298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049299|149299|989898|1|9999049299|MR|Test|E|Lead 49299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049300|149300|989898|1|9999049300|MR|Test|E|Lead 49300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049301|149301|989898|1|9999049301|MR|Test|E|Lead 49301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049302|149302|989898|1|9999049302|MR|Test|E|Lead 49302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049303|149303|989898|1|9999049303|MR|Test|E|Lead 49303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049304|149304|989898|1|9999049304|MR|Test|E|Lead 49304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049305|149305|989898|1|9999049305|MR|Test|E|Lead 49305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049306|149306|989898|1|9999049306|MR|Test|E|Lead 49306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049307|149307|989898|1|9999049307|MR|Test|E|Lead 49307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049308|149308|989898|1|9999049308|MR|Test|E|Lead 49308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049309|149309|989898|1|9999049309|MR|Test|E|Lead 49309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049310|149310|989898|1|9999049310|MR|Test|E|Lead 49310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049311|149311|989898|1|9999049311|MR|Test|E|Lead 49311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049312|149312|989898|1|9999049312|MR|Test|E|Lead 49312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049313|149313|989898|1|9999049313|MR|Test|E|Lead 49313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049314|149314|989898|1|9999049314|MR|Test|E|Lead 49314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049315|149315|989898|1|9999049315|MR|Test|E|Lead 49315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049316|149316|989898|1|9999049316|MR|Test|E|Lead 49316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049317|149317|989898|1|9999049317|MR|Test|E|Lead 49317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049318|149318|989898|1|9999049318|MR|Test|E|Lead 49318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049319|149319|989898|1|9999049319|MR|Test|E|Lead 49319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049320|149320|989898|1|9999049320|MR|Test|E|Lead 49320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049321|149321|989898|1|9999049321|MR|Test|E|Lead 49321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049322|149322|989898|1|9999049322|MR|Test|E|Lead 49322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049323|149323|989898|1|9999049323|MR|Test|E|Lead 49323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049324|149324|989898|1|9999049324|MR|Test|E|Lead 49324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049325|149325|989898|1|9999049325|MR|Test|E|Lead 49325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049326|149326|989898|1|9999049326|MR|Test|E|Lead 49326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049327|149327|989898|1|9999049327|MR|Test|E|Lead 49327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049328|149328|989898|1|9999049328|MR|Test|E|Lead 49328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049329|149329|989898|1|9999049329|MR|Test|E|Lead 49329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049330|149330|989898|1|9999049330|MR|Test|E|Lead 49330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049331|149331|989898|1|9999049331|MR|Test|E|Lead 49331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049332|149332|989898|1|9999049332|MR|Test|E|Lead 49332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049333|149333|989898|1|9999049333|MR|Test|E|Lead 49333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049334|149334|989898|1|9999049334|MR|Test|E|Lead 49334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049335|149335|989898|1|9999049335|MR|Test|E|Lead 49335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049336|149336|989898|1|9999049336|MR|Test|E|Lead 49336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049337|149337|989898|1|9999049337|MR|Test|E|Lead 49337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049338|149338|989898|1|9999049338|MR|Test|E|Lead 49338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049339|149339|989898|1|9999049339|MR|Test|E|Lead 49339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049340|149340|989898|1|9999049340|MR|Test|E|Lead 49340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049341|149341|989898|1|9999049341|MR|Test|E|Lead 49341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049342|149342|989898|1|9999049342|MR|Test|E|Lead 49342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049343|149343|989898|1|9999049343|MR|Test|E|Lead 49343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049344|149344|989898|1|9999049344|MR|Test|E|Lead 49344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049345|149345|989898|1|9999049345|MR|Test|E|Lead 49345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049346|149346|989898|1|9999049346|MR|Test|E|Lead 49346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049347|149347|989898|1|9999049347|MR|Test|E|Lead 49347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049348|149348|989898|1|9999049348|MR|Test|E|Lead 49348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049349|149349|989898|1|9999049349|MR|Test|E|Lead 49349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049350|149350|989898|1|9999049350|MR|Test|E|Lead 49350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049351|149351|989898|1|9999049351|MR|Test|E|Lead 49351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049352|149352|989898|1|9999049352|MR|Test|E|Lead 49352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049353|149353|989898|1|9999049353|MR|Test|E|Lead 49353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049354|149354|989898|1|9999049354|MR|Test|E|Lead 49354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049355|149355|989898|1|9999049355|MR|Test|E|Lead 49355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049356|149356|989898|1|9999049356|MR|Test|E|Lead 49356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049357|149357|989898|1|9999049357|MR|Test|E|Lead 49357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049358|149358|989898|1|9999049358|MR|Test|E|Lead 49358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049359|149359|989898|1|9999049359|MR|Test|E|Lead 49359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049360|149360|989898|1|9999049360|MR|Test|E|Lead 49360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049361|149361|989898|1|9999049361|MR|Test|E|Lead 49361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049362|149362|989898|1|9999049362|MR|Test|E|Lead 49362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049363|149363|989898|1|9999049363|MR|Test|E|Lead 49363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049364|149364|989898|1|9999049364|MR|Test|E|Lead 49364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049365|149365|989898|1|9999049365|MR|Test|E|Lead 49365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049366|149366|989898|1|9999049366|MR|Test|E|Lead 49366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049367|149367|989898|1|9999049367|MR|Test|E|Lead 49367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049368|149368|989898|1|9999049368|MR|Test|E|Lead 49368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049369|149369|989898|1|9999049369|MR|Test|E|Lead 49369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049370|149370|989898|1|9999049370|MR|Test|E|Lead 49370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049371|149371|989898|1|9999049371|MR|Test|E|Lead 49371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049372|149372|989898|1|9999049372|MR|Test|E|Lead 49372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049373|149373|989898|1|9999049373|MR|Test|E|Lead 49373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049374|149374|989898|1|9999049374|MR|Test|E|Lead 49374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049375|149375|989898|1|9999049375|MR|Test|E|Lead 49375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049376|149376|989898|1|9999049376|MR|Test|E|Lead 49376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049377|149377|989898|1|9999049377|MR|Test|E|Lead 49377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049378|149378|989898|1|9999049378|MR|Test|E|Lead 49378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049379|149379|989898|1|9999049379|MR|Test|E|Lead 49379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049380|149380|989898|1|9999049380|MR|Test|E|Lead 49380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049381|149381|989898|1|9999049381|MR|Test|E|Lead 49381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049382|149382|989898|1|9999049382|MR|Test|E|Lead 49382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049383|149383|989898|1|9999049383|MR|Test|E|Lead 49383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049384|149384|989898|1|9999049384|MR|Test|E|Lead 49384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049385|149385|989898|1|9999049385|MR|Test|E|Lead 49385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049386|149386|989898|1|9999049386|MR|Test|E|Lead 49386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049387|149387|989898|1|9999049387|MR|Test|E|Lead 49387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049388|149388|989898|1|9999049388|MR|Test|E|Lead 49388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049389|149389|989898|1|9999049389|MR|Test|E|Lead 49389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049390|149390|989898|1|9999049390|MR|Test|E|Lead 49390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049391|149391|989898|1|9999049391|MR|Test|E|Lead 49391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049392|149392|989898|1|9999049392|MR|Test|E|Lead 49392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049393|149393|989898|1|9999049393|MR|Test|E|Lead 49393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049394|149394|989898|1|9999049394|MR|Test|E|Lead 49394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049395|149395|989898|1|9999049395|MR|Test|E|Lead 49395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049396|149396|989898|1|9999049396|MR|Test|E|Lead 49396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049397|149397|989898|1|9999049397|MR|Test|E|Lead 49397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049398|149398|989898|1|9999049398|MR|Test|E|Lead 49398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049399|149399|989898|1|9999049399|MR|Test|E|Lead 49399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049400|149400|989898|1|9999049400|MR|Test|E|Lead 49400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049401|149401|989898|1|9999049401|MR|Test|E|Lead 49401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049402|149402|989898|1|9999049402|MR|Test|E|Lead 49402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049403|149403|989898|1|9999049403|MR|Test|E|Lead 49403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049404|149404|989898|1|9999049404|MR|Test|E|Lead 49404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049405|149405|989898|1|9999049405|MR|Test|E|Lead 49405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049406|149406|989898|1|9999049406|MR|Test|E|Lead 49406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049407|149407|989898|1|9999049407|MR|Test|E|Lead 49407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049408|149408|989898|1|9999049408|MR|Test|E|Lead 49408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049409|149409|989898|1|9999049409|MR|Test|E|Lead 49409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049410|149410|989898|1|9999049410|MR|Test|E|Lead 49410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049411|149411|989898|1|9999049411|MR|Test|E|Lead 49411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049412|149412|989898|1|9999049412|MR|Test|E|Lead 49412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049413|149413|989898|1|9999049413|MR|Test|E|Lead 49413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049414|149414|989898|1|9999049414|MR|Test|E|Lead 49414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049415|149415|989898|1|9999049415|MR|Test|E|Lead 49415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049416|149416|989898|1|9999049416|MR|Test|E|Lead 49416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049417|149417|989898|1|9999049417|MR|Test|E|Lead 49417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049418|149418|989898|1|9999049418|MR|Test|E|Lead 49418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049419|149419|989898|1|9999049419|MR|Test|E|Lead 49419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049420|149420|989898|1|9999049420|MR|Test|E|Lead 49420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049421|149421|989898|1|9999049421|MR|Test|E|Lead 49421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049422|149422|989898|1|9999049422|MR|Test|E|Lead 49422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049423|149423|989898|1|9999049423|MR|Test|E|Lead 49423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049424|149424|989898|1|9999049424|MR|Test|E|Lead 49424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049425|149425|989898|1|9999049425|MR|Test|E|Lead 49425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049426|149426|989898|1|9999049426|MR|Test|E|Lead 49426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049427|149427|989898|1|9999049427|MR|Test|E|Lead 49427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049428|149428|989898|1|9999049428|MR|Test|E|Lead 49428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049429|149429|989898|1|9999049429|MR|Test|E|Lead 49429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049430|149430|989898|1|9999049430|MR|Test|E|Lead 49430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049431|149431|989898|1|9999049431|MR|Test|E|Lead 49431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049432|149432|989898|1|9999049432|MR|Test|E|Lead 49432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049433|149433|989898|1|9999049433|MR|Test|E|Lead 49433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049434|149434|989898|1|9999049434|MR|Test|E|Lead 49434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049435|149435|989898|1|9999049435|MR|Test|E|Lead 49435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049436|149436|989898|1|9999049436|MR|Test|E|Lead 49436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049437|149437|989898|1|9999049437|MR|Test|E|Lead 49437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049438|149438|989898|1|9999049438|MR|Test|E|Lead 49438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049439|149439|989898|1|9999049439|MR|Test|E|Lead 49439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049440|149440|989898|1|9999049440|MR|Test|E|Lead 49440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049441|149441|989898|1|9999049441|MR|Test|E|Lead 49441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049442|149442|989898|1|9999049442|MR|Test|E|Lead 49442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049443|149443|989898|1|9999049443|MR|Test|E|Lead 49443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049444|149444|989898|1|9999049444|MR|Test|E|Lead 49444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049445|149445|989898|1|9999049445|MR|Test|E|Lead 49445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049446|149446|989898|1|9999049446|MR|Test|E|Lead 49446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049447|149447|989898|1|9999049447|MR|Test|E|Lead 49447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049448|149448|989898|1|9999049448|MR|Test|E|Lead 49448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049449|149449|989898|1|9999049449|MR|Test|E|Lead 49449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049450|149450|989898|1|9999049450|MR|Test|E|Lead 49450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049451|149451|989898|1|9999049451|MR|Test|E|Lead 49451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049452|149452|989898|1|9999049452|MR|Test|E|Lead 49452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049453|149453|989898|1|9999049453|MR|Test|E|Lead 49453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049454|149454|989898|1|9999049454|MR|Test|E|Lead 49454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049455|149455|989898|1|9999049455|MR|Test|E|Lead 49455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049456|149456|989898|1|9999049456|MR|Test|E|Lead 49456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049457|149457|989898|1|9999049457|MR|Test|E|Lead 49457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049458|149458|989898|1|9999049458|MR|Test|E|Lead 49458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049459|149459|989898|1|9999049459|MR|Test|E|Lead 49459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049460|149460|989898|1|9999049460|MR|Test|E|Lead 49460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049461|149461|989898|1|9999049461|MR|Test|E|Lead 49461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049462|149462|989898|1|9999049462|MR|Test|E|Lead 49462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049463|149463|989898|1|9999049463|MR|Test|E|Lead 49463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049464|149464|989898|1|9999049464|MR|Test|E|Lead 49464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049465|149465|989898|1|9999049465|MR|Test|E|Lead 49465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049466|149466|989898|1|9999049466|MR|Test|E|Lead 49466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049467|149467|989898|1|9999049467|MR|Test|E|Lead 49467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049468|149468|989898|1|9999049468|MR|Test|E|Lead 49468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049469|149469|989898|1|9999049469|MR|Test|E|Lead 49469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049470|149470|989898|1|9999049470|MR|Test|E|Lead 49470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049471|149471|989898|1|9999049471|MR|Test|E|Lead 49471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049472|149472|989898|1|9999049472|MR|Test|E|Lead 49472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049473|149473|989898|1|9999049473|MR|Test|E|Lead 49473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049474|149474|989898|1|9999049474|MR|Test|E|Lead 49474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049475|149475|989898|1|9999049475|MR|Test|E|Lead 49475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049476|149476|989898|1|9999049476|MR|Test|E|Lead 49476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049477|149477|989898|1|9999049477|MR|Test|E|Lead 49477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049478|149478|989898|1|9999049478|MR|Test|E|Lead 49478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049479|149479|989898|1|9999049479|MR|Test|E|Lead 49479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049480|149480|989898|1|9999049480|MR|Test|E|Lead 49480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049481|149481|989898|1|9999049481|MR|Test|E|Lead 49481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049482|149482|989898|1|9999049482|MR|Test|E|Lead 49482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049483|149483|989898|1|9999049483|MR|Test|E|Lead 49483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049484|149484|989898|1|9999049484|MR|Test|E|Lead 49484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049485|149485|989898|1|9999049485|MR|Test|E|Lead 49485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049486|149486|989898|1|9999049486|MR|Test|E|Lead 49486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049487|149487|989898|1|9999049487|MR|Test|E|Lead 49487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049488|149488|989898|1|9999049488|MR|Test|E|Lead 49488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049489|149489|989898|1|9999049489|MR|Test|E|Lead 49489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049490|149490|989898|1|9999049490|MR|Test|E|Lead 49490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049491|149491|989898|1|9999049491|MR|Test|E|Lead 49491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049492|149492|989898|1|9999049492|MR|Test|E|Lead 49492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049493|149493|989898|1|9999049493|MR|Test|E|Lead 49493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049494|149494|989898|1|9999049494|MR|Test|E|Lead 49494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049495|149495|989898|1|9999049495|MR|Test|E|Lead 49495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049496|149496|989898|1|9999049496|MR|Test|E|Lead 49496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049497|149497|989898|1|9999049497|MR|Test|E|Lead 49497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049498|149498|989898|1|9999049498|MR|Test|E|Lead 49498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049499|149499|989898|1|9999049499|MR|Test|E|Lead 49499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049500|149500|989898|1|9999049500|MR|Test|E|Lead 49500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049501|149501|989898|1|9999049501|MR|Test|E|Lead 49501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049502|149502|989898|1|9999049502|MR|Test|E|Lead 49502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049503|149503|989898|1|9999049503|MR|Test|E|Lead 49503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049504|149504|989898|1|9999049504|MR|Test|E|Lead 49504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049505|149505|989898|1|9999049505|MR|Test|E|Lead 49505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049506|149506|989898|1|9999049506|MR|Test|E|Lead 49506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049507|149507|989898|1|9999049507|MR|Test|E|Lead 49507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049508|149508|989898|1|9999049508|MR|Test|E|Lead 49508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049509|149509|989898|1|9999049509|MR|Test|E|Lead 49509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049510|149510|989898|1|9999049510|MR|Test|E|Lead 49510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049511|149511|989898|1|9999049511|MR|Test|E|Lead 49511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049512|149512|989898|1|9999049512|MR|Test|E|Lead 49512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049513|149513|989898|1|9999049513|MR|Test|E|Lead 49513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049514|149514|989898|1|9999049514|MR|Test|E|Lead 49514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049515|149515|989898|1|9999049515|MR|Test|E|Lead 49515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049516|149516|989898|1|9999049516|MR|Test|E|Lead 49516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049517|149517|989898|1|9999049517|MR|Test|E|Lead 49517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049518|149518|989898|1|9999049518|MR|Test|E|Lead 49518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049519|149519|989898|1|9999049519|MR|Test|E|Lead 49519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049520|149520|989898|1|9999049520|MR|Test|E|Lead 49520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049521|149521|989898|1|9999049521|MR|Test|E|Lead 49521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049522|149522|989898|1|9999049522|MR|Test|E|Lead 49522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049523|149523|989898|1|9999049523|MR|Test|E|Lead 49523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049524|149524|989898|1|9999049524|MR|Test|E|Lead 49524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049525|149525|989898|1|9999049525|MR|Test|E|Lead 49525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049526|149526|989898|1|9999049526|MR|Test|E|Lead 49526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049527|149527|989898|1|9999049527|MR|Test|E|Lead 49527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049528|149528|989898|1|9999049528|MR|Test|E|Lead 49528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049529|149529|989898|1|9999049529|MR|Test|E|Lead 49529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049530|149530|989898|1|9999049530|MR|Test|E|Lead 49530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049531|149531|989898|1|9999049531|MR|Test|E|Lead 49531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049532|149532|989898|1|9999049532|MR|Test|E|Lead 49532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049533|149533|989898|1|9999049533|MR|Test|E|Lead 49533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049534|149534|989898|1|9999049534|MR|Test|E|Lead 49534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049535|149535|989898|1|9999049535|MR|Test|E|Lead 49535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049536|149536|989898|1|9999049536|MR|Test|E|Lead 49536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049537|149537|989898|1|9999049537|MR|Test|E|Lead 49537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049538|149538|989898|1|9999049538|MR|Test|E|Lead 49538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049539|149539|989898|1|9999049539|MR|Test|E|Lead 49539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049540|149540|989898|1|9999049540|MR|Test|E|Lead 49540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049541|149541|989898|1|9999049541|MR|Test|E|Lead 49541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049542|149542|989898|1|9999049542|MR|Test|E|Lead 49542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049543|149543|989898|1|9999049543|MR|Test|E|Lead 49543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049544|149544|989898|1|9999049544|MR|Test|E|Lead 49544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049545|149545|989898|1|9999049545|MR|Test|E|Lead 49545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049546|149546|989898|1|9999049546|MR|Test|E|Lead 49546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049547|149547|989898|1|9999049547|MR|Test|E|Lead 49547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049548|149548|989898|1|9999049548|MR|Test|E|Lead 49548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049549|149549|989898|1|9999049549|MR|Test|E|Lead 49549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049550|149550|989898|1|9999049550|MR|Test|E|Lead 49550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049551|149551|989898|1|9999049551|MR|Test|E|Lead 49551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049552|149552|989898|1|9999049552|MR|Test|E|Lead 49552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049553|149553|989898|1|9999049553|MR|Test|E|Lead 49553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049554|149554|989898|1|9999049554|MR|Test|E|Lead 49554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049555|149555|989898|1|9999049555|MR|Test|E|Lead 49555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049556|149556|989898|1|9999049556|MR|Test|E|Lead 49556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049557|149557|989898|1|9999049557|MR|Test|E|Lead 49557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049558|149558|989898|1|9999049558|MR|Test|E|Lead 49558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049559|149559|989898|1|9999049559|MR|Test|E|Lead 49559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049560|149560|989898|1|9999049560|MR|Test|E|Lead 49560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049561|149561|989898|1|9999049561|MR|Test|E|Lead 49561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049562|149562|989898|1|9999049562|MR|Test|E|Lead 49562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049563|149563|989898|1|9999049563|MR|Test|E|Lead 49563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049564|149564|989898|1|9999049564|MR|Test|E|Lead 49564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049565|149565|989898|1|9999049565|MR|Test|E|Lead 49565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049566|149566|989898|1|9999049566|MR|Test|E|Lead 49566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049567|149567|989898|1|9999049567|MR|Test|E|Lead 49567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049568|149568|989898|1|9999049568|MR|Test|E|Lead 49568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049569|149569|989898|1|9999049569|MR|Test|E|Lead 49569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049570|149570|989898|1|9999049570|MR|Test|E|Lead 49570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049571|149571|989898|1|9999049571|MR|Test|E|Lead 49571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049572|149572|989898|1|9999049572|MR|Test|E|Lead 49572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049573|149573|989898|1|9999049573|MR|Test|E|Lead 49573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049574|149574|989898|1|9999049574|MR|Test|E|Lead 49574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049575|149575|989898|1|9999049575|MR|Test|E|Lead 49575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049576|149576|989898|1|9999049576|MR|Test|E|Lead 49576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049577|149577|989898|1|9999049577|MR|Test|E|Lead 49577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049578|149578|989898|1|9999049578|MR|Test|E|Lead 49578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049579|149579|989898|1|9999049579|MR|Test|E|Lead 49579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049580|149580|989898|1|9999049580|MR|Test|E|Lead 49580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049581|149581|989898|1|9999049581|MR|Test|E|Lead 49581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049582|149582|989898|1|9999049582|MR|Test|E|Lead 49582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049583|149583|989898|1|9999049583|MR|Test|E|Lead 49583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049584|149584|989898|1|9999049584|MR|Test|E|Lead 49584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049585|149585|989898|1|9999049585|MR|Test|E|Lead 49585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049586|149586|989898|1|9999049586|MR|Test|E|Lead 49586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049587|149587|989898|1|9999049587|MR|Test|E|Lead 49587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049588|149588|989898|1|9999049588|MR|Test|E|Lead 49588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049589|149589|989898|1|9999049589|MR|Test|E|Lead 49589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049590|149590|989898|1|9999049590|MR|Test|E|Lead 49590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049591|149591|989898|1|9999049591|MR|Test|E|Lead 49591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049592|149592|989898|1|9999049592|MR|Test|E|Lead 49592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049593|149593|989898|1|9999049593|MR|Test|E|Lead 49593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049594|149594|989898|1|9999049594|MR|Test|E|Lead 49594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049595|149595|989898|1|9999049595|MR|Test|E|Lead 49595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049596|149596|989898|1|9999049596|MR|Test|E|Lead 49596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049597|149597|989898|1|9999049597|MR|Test|E|Lead 49597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049598|149598|989898|1|9999049598|MR|Test|E|Lead 49598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049599|149599|989898|1|9999049599|MR|Test|E|Lead 49599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049600|149600|989898|1|9999049600|MR|Test|E|Lead 49600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049601|149601|989898|1|9999049601|MR|Test|E|Lead 49601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049602|149602|989898|1|9999049602|MR|Test|E|Lead 49602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049603|149603|989898|1|9999049603|MR|Test|E|Lead 49603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049604|149604|989898|1|9999049604|MR|Test|E|Lead 49604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049605|149605|989898|1|9999049605|MR|Test|E|Lead 49605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049606|149606|989898|1|9999049606|MR|Test|E|Lead 49606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049607|149607|989898|1|9999049607|MR|Test|E|Lead 49607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049608|149608|989898|1|9999049608|MR|Test|E|Lead 49608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049609|149609|989898|1|9999049609|MR|Test|E|Lead 49609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049610|149610|989898|1|9999049610|MR|Test|E|Lead 49610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049611|149611|989898|1|9999049611|MR|Test|E|Lead 49611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049612|149612|989898|1|9999049612|MR|Test|E|Lead 49612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049613|149613|989898|1|9999049613|MR|Test|E|Lead 49613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049614|149614|989898|1|9999049614|MR|Test|E|Lead 49614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049615|149615|989898|1|9999049615|MR|Test|E|Lead 49615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049616|149616|989898|1|9999049616|MR|Test|E|Lead 49616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049617|149617|989898|1|9999049617|MR|Test|E|Lead 49617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049618|149618|989898|1|9999049618|MR|Test|E|Lead 49618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049619|149619|989898|1|9999049619|MR|Test|E|Lead 49619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049620|149620|989898|1|9999049620|MR|Test|E|Lead 49620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049621|149621|989898|1|9999049621|MR|Test|E|Lead 49621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049622|149622|989898|1|9999049622|MR|Test|E|Lead 49622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049623|149623|989898|1|9999049623|MR|Test|E|Lead 49623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049624|149624|989898|1|9999049624|MR|Test|E|Lead 49624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049625|149625|989898|1|9999049625|MR|Test|E|Lead 49625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049626|149626|989898|1|9999049626|MR|Test|E|Lead 49626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049627|149627|989898|1|9999049627|MR|Test|E|Lead 49627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049628|149628|989898|1|9999049628|MR|Test|E|Lead 49628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049629|149629|989898|1|9999049629|MR|Test|E|Lead 49629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049630|149630|989898|1|9999049630|MR|Test|E|Lead 49630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049631|149631|989898|1|9999049631|MR|Test|E|Lead 49631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049632|149632|989898|1|9999049632|MR|Test|E|Lead 49632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049633|149633|989898|1|9999049633|MR|Test|E|Lead 49633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049634|149634|989898|1|9999049634|MR|Test|E|Lead 49634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049635|149635|989898|1|9999049635|MR|Test|E|Lead 49635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049636|149636|989898|1|9999049636|MR|Test|E|Lead 49636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049637|149637|989898|1|9999049637|MR|Test|E|Lead 49637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049638|149638|989898|1|9999049638|MR|Test|E|Lead 49638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049639|149639|989898|1|9999049639|MR|Test|E|Lead 49639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049640|149640|989898|1|9999049640|MR|Test|E|Lead 49640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049641|149641|989898|1|9999049641|MR|Test|E|Lead 49641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049642|149642|989898|1|9999049642|MR|Test|E|Lead 49642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049643|149643|989898|1|9999049643|MR|Test|E|Lead 49643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049644|149644|989898|1|9999049644|MR|Test|E|Lead 49644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049645|149645|989898|1|9999049645|MR|Test|E|Lead 49645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049646|149646|989898|1|9999049646|MR|Test|E|Lead 49646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049647|149647|989898|1|9999049647|MR|Test|E|Lead 49647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049648|149648|989898|1|9999049648|MR|Test|E|Lead 49648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049649|149649|989898|1|9999049649|MR|Test|E|Lead 49649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049650|149650|989898|1|9999049650|MR|Test|E|Lead 49650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049651|149651|989898|1|9999049651|MR|Test|E|Lead 49651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049652|149652|989898|1|9999049652|MR|Test|E|Lead 49652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049653|149653|989898|1|9999049653|MR|Test|E|Lead 49653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049654|149654|989898|1|9999049654|MR|Test|E|Lead 49654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049655|149655|989898|1|9999049655|MR|Test|E|Lead 49655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049656|149656|989898|1|9999049656|MR|Test|E|Lead 49656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049657|149657|989898|1|9999049657|MR|Test|E|Lead 49657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049658|149658|989898|1|9999049658|MR|Test|E|Lead 49658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049659|149659|989898|1|9999049659|MR|Test|E|Lead 49659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049660|149660|989898|1|9999049660|MR|Test|E|Lead 49660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049661|149661|989898|1|9999049661|MR|Test|E|Lead 49661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049662|149662|989898|1|9999049662|MR|Test|E|Lead 49662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049663|149663|989898|1|9999049663|MR|Test|E|Lead 49663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049664|149664|989898|1|9999049664|MR|Test|E|Lead 49664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049665|149665|989898|1|9999049665|MR|Test|E|Lead 49665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049666|149666|989898|1|9999049666|MR|Test|E|Lead 49666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049667|149667|989898|1|9999049667|MR|Test|E|Lead 49667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049668|149668|989898|1|9999049668|MR|Test|E|Lead 49668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049669|149669|989898|1|9999049669|MR|Test|E|Lead 49669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049670|149670|989898|1|9999049670|MR|Test|E|Lead 49670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049671|149671|989898|1|9999049671|MR|Test|E|Lead 49671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049672|149672|989898|1|9999049672|MR|Test|E|Lead 49672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049673|149673|989898|1|9999049673|MR|Test|E|Lead 49673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049674|149674|989898|1|9999049674|MR|Test|E|Lead 49674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049675|149675|989898|1|9999049675|MR|Test|E|Lead 49675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049676|149676|989898|1|9999049676|MR|Test|E|Lead 49676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049677|149677|989898|1|9999049677|MR|Test|E|Lead 49677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049678|149678|989898|1|9999049678|MR|Test|E|Lead 49678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049679|149679|989898|1|9999049679|MR|Test|E|Lead 49679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049680|149680|989898|1|9999049680|MR|Test|E|Lead 49680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049681|149681|989898|1|9999049681|MR|Test|E|Lead 49681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049682|149682|989898|1|9999049682|MR|Test|E|Lead 49682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049683|149683|989898|1|9999049683|MR|Test|E|Lead 49683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049684|149684|989898|1|9999049684|MR|Test|E|Lead 49684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049685|149685|989898|1|9999049685|MR|Test|E|Lead 49685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049686|149686|989898|1|9999049686|MR|Test|E|Lead 49686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049687|149687|989898|1|9999049687|MR|Test|E|Lead 49687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049688|149688|989898|1|9999049688|MR|Test|E|Lead 49688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049689|149689|989898|1|9999049689|MR|Test|E|Lead 49689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049690|149690|989898|1|9999049690|MR|Test|E|Lead 49690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049691|149691|989898|1|9999049691|MR|Test|E|Lead 49691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049692|149692|989898|1|9999049692|MR|Test|E|Lead 49692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049693|149693|989898|1|9999049693|MR|Test|E|Lead 49693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049694|149694|989898|1|9999049694|MR|Test|E|Lead 49694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049695|149695|989898|1|9999049695|MR|Test|E|Lead 49695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049696|149696|989898|1|9999049696|MR|Test|E|Lead 49696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049697|149697|989898|1|9999049697|MR|Test|E|Lead 49697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049698|149698|989898|1|9999049698|MR|Test|E|Lead 49698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049699|149699|989898|1|9999049699|MR|Test|E|Lead 49699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049700|149700|989898|1|9999049700|MR|Test|E|Lead 49700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049701|149701|989898|1|9999049701|MR|Test|E|Lead 49701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049702|149702|989898|1|9999049702|MR|Test|E|Lead 49702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049703|149703|989898|1|9999049703|MR|Test|E|Lead 49703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049704|149704|989898|1|9999049704|MR|Test|E|Lead 49704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049705|149705|989898|1|9999049705|MR|Test|E|Lead 49705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049706|149706|989898|1|9999049706|MR|Test|E|Lead 49706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049707|149707|989898|1|9999049707|MR|Test|E|Lead 49707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049708|149708|989898|1|9999049708|MR|Test|E|Lead 49708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049709|149709|989898|1|9999049709|MR|Test|E|Lead 49709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049710|149710|989898|1|9999049710|MR|Test|E|Lead 49710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049711|149711|989898|1|9999049711|MR|Test|E|Lead 49711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049712|149712|989898|1|9999049712|MR|Test|E|Lead 49712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049713|149713|989898|1|9999049713|MR|Test|E|Lead 49713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049714|149714|989898|1|9999049714|MR|Test|E|Lead 49714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049715|149715|989898|1|9999049715|MR|Test|E|Lead 49715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049716|149716|989898|1|9999049716|MR|Test|E|Lead 49716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049717|149717|989898|1|9999049717|MR|Test|E|Lead 49717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049718|149718|989898|1|9999049718|MR|Test|E|Lead 49718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049719|149719|989898|1|9999049719|MR|Test|E|Lead 49719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049720|149720|989898|1|9999049720|MR|Test|E|Lead 49720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049721|149721|989898|1|9999049721|MR|Test|E|Lead 49721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049722|149722|989898|1|9999049722|MR|Test|E|Lead 49722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049723|149723|989898|1|9999049723|MR|Test|E|Lead 49723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049724|149724|989898|1|9999049724|MR|Test|E|Lead 49724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049725|149725|989898|1|9999049725|MR|Test|E|Lead 49725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049726|149726|989898|1|9999049726|MR|Test|E|Lead 49726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049727|149727|989898|1|9999049727|MR|Test|E|Lead 49727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049728|149728|989898|1|9999049728|MR|Test|E|Lead 49728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049729|149729|989898|1|9999049729|MR|Test|E|Lead 49729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049730|149730|989898|1|9999049730|MR|Test|E|Lead 49730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049731|149731|989898|1|9999049731|MR|Test|E|Lead 49731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049732|149732|989898|1|9999049732|MR|Test|E|Lead 49732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049733|149733|989898|1|9999049733|MR|Test|E|Lead 49733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049734|149734|989898|1|9999049734|MR|Test|E|Lead 49734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049735|149735|989898|1|9999049735|MR|Test|E|Lead 49735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049736|149736|989898|1|9999049736|MR|Test|E|Lead 49736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049737|149737|989898|1|9999049737|MR|Test|E|Lead 49737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049738|149738|989898|1|9999049738|MR|Test|E|Lead 49738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049739|149739|989898|1|9999049739|MR|Test|E|Lead 49739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049740|149740|989898|1|9999049740|MR|Test|E|Lead 49740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049741|149741|989898|1|9999049741|MR|Test|E|Lead 49741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049742|149742|989898|1|9999049742|MR|Test|E|Lead 49742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049743|149743|989898|1|9999049743|MR|Test|E|Lead 49743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049744|149744|989898|1|9999049744|MR|Test|E|Lead 49744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049745|149745|989898|1|9999049745|MR|Test|E|Lead 49745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049746|149746|989898|1|9999049746|MR|Test|E|Lead 49746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049747|149747|989898|1|9999049747|MR|Test|E|Lead 49747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049748|149748|989898|1|9999049748|MR|Test|E|Lead 49748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049749|149749|989898|1|9999049749|MR|Test|E|Lead 49749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049750|149750|989898|1|9999049750|MR|Test|E|Lead 49750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049751|149751|989898|1|9999049751|MR|Test|E|Lead 49751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049752|149752|989898|1|9999049752|MR|Test|E|Lead 49752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049753|149753|989898|1|9999049753|MR|Test|E|Lead 49753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049754|149754|989898|1|9999049754|MR|Test|E|Lead 49754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049755|149755|989898|1|9999049755|MR|Test|E|Lead 49755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049756|149756|989898|1|9999049756|MR|Test|E|Lead 49756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049757|149757|989898|1|9999049757|MR|Test|E|Lead 49757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049758|149758|989898|1|9999049758|MR|Test|E|Lead 49758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049759|149759|989898|1|9999049759|MR|Test|E|Lead 49759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049760|149760|989898|1|9999049760|MR|Test|E|Lead 49760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049761|149761|989898|1|9999049761|MR|Test|E|Lead 49761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049762|149762|989898|1|9999049762|MR|Test|E|Lead 49762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049763|149763|989898|1|9999049763|MR|Test|E|Lead 49763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049764|149764|989898|1|9999049764|MR|Test|E|Lead 49764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049765|149765|989898|1|9999049765|MR|Test|E|Lead 49765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049766|149766|989898|1|9999049766|MR|Test|E|Lead 49766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049767|149767|989898|1|9999049767|MR|Test|E|Lead 49767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049768|149768|989898|1|9999049768|MR|Test|E|Lead 49768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049769|149769|989898|1|9999049769|MR|Test|E|Lead 49769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049770|149770|989898|1|9999049770|MR|Test|E|Lead 49770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049771|149771|989898|1|9999049771|MR|Test|E|Lead 49771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049772|149772|989898|1|9999049772|MR|Test|E|Lead 49772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049773|149773|989898|1|9999049773|MR|Test|E|Lead 49773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049774|149774|989898|1|9999049774|MR|Test|E|Lead 49774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049775|149775|989898|1|9999049775|MR|Test|E|Lead 49775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049776|149776|989898|1|9999049776|MR|Test|E|Lead 49776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049777|149777|989898|1|9999049777|MR|Test|E|Lead 49777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049778|149778|989898|1|9999049778|MR|Test|E|Lead 49778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049779|149779|989898|1|9999049779|MR|Test|E|Lead 49779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049780|149780|989898|1|9999049780|MR|Test|E|Lead 49780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049781|149781|989898|1|9999049781|MR|Test|E|Lead 49781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049782|149782|989898|1|9999049782|MR|Test|E|Lead 49782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049783|149783|989898|1|9999049783|MR|Test|E|Lead 49783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049784|149784|989898|1|9999049784|MR|Test|E|Lead 49784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049785|149785|989898|1|9999049785|MR|Test|E|Lead 49785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049786|149786|989898|1|9999049786|MR|Test|E|Lead 49786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049787|149787|989898|1|9999049787|MR|Test|E|Lead 49787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049788|149788|989898|1|9999049788|MR|Test|E|Lead 49788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049789|149789|989898|1|9999049789|MR|Test|E|Lead 49789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049790|149790|989898|1|9999049790|MR|Test|E|Lead 49790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049791|149791|989898|1|9999049791|MR|Test|E|Lead 49791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049792|149792|989898|1|9999049792|MR|Test|E|Lead 49792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049793|149793|989898|1|9999049793|MR|Test|E|Lead 49793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049794|149794|989898|1|9999049794|MR|Test|E|Lead 49794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049795|149795|989898|1|9999049795|MR|Test|E|Lead 49795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049796|149796|989898|1|9999049796|MR|Test|E|Lead 49796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049797|149797|989898|1|9999049797|MR|Test|E|Lead 49797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049798|149798|989898|1|9999049798|MR|Test|E|Lead 49798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049799|149799|989898|1|9999049799|MR|Test|E|Lead 49799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049800|149800|989898|1|9999049800|MR|Test|E|Lead 49800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049801|149801|989898|1|9999049801|MR|Test|E|Lead 49801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049802|149802|989898|1|9999049802|MR|Test|E|Lead 49802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049803|149803|989898|1|9999049803|MR|Test|E|Lead 49803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049804|149804|989898|1|9999049804|MR|Test|E|Lead 49804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049805|149805|989898|1|9999049805|MR|Test|E|Lead 49805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049806|149806|989898|1|9999049806|MR|Test|E|Lead 49806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049807|149807|989898|1|9999049807|MR|Test|E|Lead 49807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049808|149808|989898|1|9999049808|MR|Test|E|Lead 49808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049809|149809|989898|1|9999049809|MR|Test|E|Lead 49809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049810|149810|989898|1|9999049810|MR|Test|E|Lead 49810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049811|149811|989898|1|9999049811|MR|Test|E|Lead 49811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049812|149812|989898|1|9999049812|MR|Test|E|Lead 49812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049813|149813|989898|1|9999049813|MR|Test|E|Lead 49813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049814|149814|989898|1|9999049814|MR|Test|E|Lead 49814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049815|149815|989898|1|9999049815|MR|Test|E|Lead 49815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049816|149816|989898|1|9999049816|MR|Test|E|Lead 49816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049817|149817|989898|1|9999049817|MR|Test|E|Lead 49817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049818|149818|989898|1|9999049818|MR|Test|E|Lead 49818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049819|149819|989898|1|9999049819|MR|Test|E|Lead 49819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049820|149820|989898|1|9999049820|MR|Test|E|Lead 49820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049821|149821|989898|1|9999049821|MR|Test|E|Lead 49821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049822|149822|989898|1|9999049822|MR|Test|E|Lead 49822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049823|149823|989898|1|9999049823|MR|Test|E|Lead 49823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049824|149824|989898|1|9999049824|MR|Test|E|Lead 49824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049825|149825|989898|1|9999049825|MR|Test|E|Lead 49825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049826|149826|989898|1|9999049826|MR|Test|E|Lead 49826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049827|149827|989898|1|9999049827|MR|Test|E|Lead 49827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049828|149828|989898|1|9999049828|MR|Test|E|Lead 49828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049829|149829|989898|1|9999049829|MR|Test|E|Lead 49829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049830|149830|989898|1|9999049830|MR|Test|E|Lead 49830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049831|149831|989898|1|9999049831|MR|Test|E|Lead 49831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049832|149832|989898|1|9999049832|MR|Test|E|Lead 49832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049833|149833|989898|1|9999049833|MR|Test|E|Lead 49833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049834|149834|989898|1|9999049834|MR|Test|E|Lead 49834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049835|149835|989898|1|9999049835|MR|Test|E|Lead 49835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049836|149836|989898|1|9999049836|MR|Test|E|Lead 49836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049837|149837|989898|1|9999049837|MR|Test|E|Lead 49837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049838|149838|989898|1|9999049838|MR|Test|E|Lead 49838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049839|149839|989898|1|9999049839|MR|Test|E|Lead 49839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049840|149840|989898|1|9999049840|MR|Test|E|Lead 49840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049841|149841|989898|1|9999049841|MR|Test|E|Lead 49841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049842|149842|989898|1|9999049842|MR|Test|E|Lead 49842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049843|149843|989898|1|9999049843|MR|Test|E|Lead 49843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049844|149844|989898|1|9999049844|MR|Test|E|Lead 49844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049845|149845|989898|1|9999049845|MR|Test|E|Lead 49845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049846|149846|989898|1|9999049846|MR|Test|E|Lead 49846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049847|149847|989898|1|9999049847|MR|Test|E|Lead 49847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049848|149848|989898|1|9999049848|MR|Test|E|Lead 49848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049849|149849|989898|1|9999049849|MR|Test|E|Lead 49849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049850|149850|989898|1|9999049850|MR|Test|E|Lead 49850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049851|149851|989898|1|9999049851|MR|Test|E|Lead 49851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049852|149852|989898|1|9999049852|MR|Test|E|Lead 49852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049853|149853|989898|1|9999049853|MR|Test|E|Lead 49853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049854|149854|989898|1|9999049854|MR|Test|E|Lead 49854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049855|149855|989898|1|9999049855|MR|Test|E|Lead 49855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049856|149856|989898|1|9999049856|MR|Test|E|Lead 49856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049857|149857|989898|1|9999049857|MR|Test|E|Lead 49857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049858|149858|989898|1|9999049858|MR|Test|E|Lead 49858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049859|149859|989898|1|9999049859|MR|Test|E|Lead 49859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049860|149860|989898|1|9999049860|MR|Test|E|Lead 49860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049861|149861|989898|1|9999049861|MR|Test|E|Lead 49861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049862|149862|989898|1|9999049862|MR|Test|E|Lead 49862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049863|149863|989898|1|9999049863|MR|Test|E|Lead 49863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049864|149864|989898|1|9999049864|MR|Test|E|Lead 49864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049865|149865|989898|1|9999049865|MR|Test|E|Lead 49865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049866|149866|989898|1|9999049866|MR|Test|E|Lead 49866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049867|149867|989898|1|9999049867|MR|Test|E|Lead 49867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049868|149868|989898|1|9999049868|MR|Test|E|Lead 49868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049869|149869|989898|1|9999049869|MR|Test|E|Lead 49869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049870|149870|989898|1|9999049870|MR|Test|E|Lead 49870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049871|149871|989898|1|9999049871|MR|Test|E|Lead 49871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049872|149872|989898|1|9999049872|MR|Test|E|Lead 49872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049873|149873|989898|1|9999049873|MR|Test|E|Lead 49873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049874|149874|989898|1|9999049874|MR|Test|E|Lead 49874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049875|149875|989898|1|9999049875|MR|Test|E|Lead 49875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049876|149876|989898|1|9999049876|MR|Test|E|Lead 49876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049877|149877|989898|1|9999049877|MR|Test|E|Lead 49877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049878|149878|989898|1|9999049878|MR|Test|E|Lead 49878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049879|149879|989898|1|9999049879|MR|Test|E|Lead 49879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049880|149880|989898|1|9999049880|MR|Test|E|Lead 49880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049881|149881|989898|1|9999049881|MR|Test|E|Lead 49881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049882|149882|989898|1|9999049882|MR|Test|E|Lead 49882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049883|149883|989898|1|9999049883|MR|Test|E|Lead 49883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049884|149884|989898|1|9999049884|MR|Test|E|Lead 49884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049885|149885|989898|1|9999049885|MR|Test|E|Lead 49885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049886|149886|989898|1|9999049886|MR|Test|E|Lead 49886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049887|149887|989898|1|9999049887|MR|Test|E|Lead 49887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049888|149888|989898|1|9999049888|MR|Test|E|Lead 49888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049889|149889|989898|1|9999049889|MR|Test|E|Lead 49889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049890|149890|989898|1|9999049890|MR|Test|E|Lead 49890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049891|149891|989898|1|9999049891|MR|Test|E|Lead 49891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049892|149892|989898|1|9999049892|MR|Test|E|Lead 49892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049893|149893|989898|1|9999049893|MR|Test|E|Lead 49893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049894|149894|989898|1|9999049894|MR|Test|E|Lead 49894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049895|149895|989898|1|9999049895|MR|Test|E|Lead 49895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049896|149896|989898|1|9999049896|MR|Test|E|Lead 49896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049897|149897|989898|1|9999049897|MR|Test|E|Lead 49897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049898|149898|989898|1|9999049898|MR|Test|E|Lead 49898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049899|149899|989898|1|9999049899|MR|Test|E|Lead 49899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049900|149900|989898|1|9999049900|MR|Test|E|Lead 49900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049901|149901|989898|1|9999049901|MR|Test|E|Lead 49901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049902|149902|989898|1|9999049902|MR|Test|E|Lead 49902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049903|149903|989898|1|9999049903|MR|Test|E|Lead 49903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049904|149904|989898|1|9999049904|MR|Test|E|Lead 49904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049905|149905|989898|1|9999049905|MR|Test|E|Lead 49905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049906|149906|989898|1|9999049906|MR|Test|E|Lead 49906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049907|149907|989898|1|9999049907|MR|Test|E|Lead 49907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049908|149908|989898|1|9999049908|MR|Test|E|Lead 49908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049909|149909|989898|1|9999049909|MR|Test|E|Lead 49909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049910|149910|989898|1|9999049910|MR|Test|E|Lead 49910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049911|149911|989898|1|9999049911|MR|Test|E|Lead 49911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049912|149912|989898|1|9999049912|MR|Test|E|Lead 49912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049913|149913|989898|1|9999049913|MR|Test|E|Lead 49913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049914|149914|989898|1|9999049914|MR|Test|E|Lead 49914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049915|149915|989898|1|9999049915|MR|Test|E|Lead 49915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049916|149916|989898|1|9999049916|MR|Test|E|Lead 49916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049917|149917|989898|1|9999049917|MR|Test|E|Lead 49917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049918|149918|989898|1|9999049918|MR|Test|E|Lead 49918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049919|149919|989898|1|9999049919|MR|Test|E|Lead 49919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049920|149920|989898|1|9999049920|MR|Test|E|Lead 49920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049921|149921|989898|1|9999049921|MR|Test|E|Lead 49921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049922|149922|989898|1|9999049922|MR|Test|E|Lead 49922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049923|149923|989898|1|9999049923|MR|Test|E|Lead 49923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049924|149924|989898|1|9999049924|MR|Test|E|Lead 49924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049925|149925|989898|1|9999049925|MR|Test|E|Lead 49925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049926|149926|989898|1|9999049926|MR|Test|E|Lead 49926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049927|149927|989898|1|9999049927|MR|Test|E|Lead 49927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049928|149928|989898|1|9999049928|MR|Test|E|Lead 49928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049929|149929|989898|1|9999049929|MR|Test|E|Lead 49929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049930|149930|989898|1|9999049930|MR|Test|E|Lead 49930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049931|149931|989898|1|9999049931|MR|Test|E|Lead 49931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049932|149932|989898|1|9999049932|MR|Test|E|Lead 49932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049933|149933|989898|1|9999049933|MR|Test|E|Lead 49933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049934|149934|989898|1|9999049934|MR|Test|E|Lead 49934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049935|149935|989898|1|9999049935|MR|Test|E|Lead 49935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049936|149936|989898|1|9999049936|MR|Test|E|Lead 49936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049937|149937|989898|1|9999049937|MR|Test|E|Lead 49937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049938|149938|989898|1|9999049938|MR|Test|E|Lead 49938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049939|149939|989898|1|9999049939|MR|Test|E|Lead 49939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049940|149940|989898|1|9999049940|MR|Test|E|Lead 49940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049941|149941|989898|1|9999049941|MR|Test|E|Lead 49941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049942|149942|989898|1|9999049942|MR|Test|E|Lead 49942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049943|149943|989898|1|9999049943|MR|Test|E|Lead 49943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049944|149944|989898|1|9999049944|MR|Test|E|Lead 49944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049945|149945|989898|1|9999049945|MR|Test|E|Lead 49945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049946|149946|989898|1|9999049946|MR|Test|E|Lead 49946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049947|149947|989898|1|9999049947|MR|Test|E|Lead 49947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049948|149948|989898|1|9999049948|MR|Test|E|Lead 49948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049949|149949|989898|1|9999049949|MR|Test|E|Lead 49949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049950|149950|989898|1|9999049950|MR|Test|E|Lead 49950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049951|149951|989898|1|9999049951|MR|Test|E|Lead 49951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049952|149952|989898|1|9999049952|MR|Test|E|Lead 49952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049953|149953|989898|1|9999049953|MR|Test|E|Lead 49953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049954|149954|989898|1|9999049954|MR|Test|E|Lead 49954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049955|149955|989898|1|9999049955|MR|Test|E|Lead 49955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049956|149956|989898|1|9999049956|MR|Test|E|Lead 49956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049957|149957|989898|1|9999049957|MR|Test|E|Lead 49957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049958|149958|989898|1|9999049958|MR|Test|E|Lead 49958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049959|149959|989898|1|9999049959|MR|Test|E|Lead 49959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049960|149960|989898|1|9999049960|MR|Test|E|Lead 49960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049961|149961|989898|1|9999049961|MR|Test|E|Lead 49961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049962|149962|989898|1|9999049962|MR|Test|E|Lead 49962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049963|149963|989898|1|9999049963|MR|Test|E|Lead 49963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049964|149964|989898|1|9999049964|MR|Test|E|Lead 49964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049965|149965|989898|1|9999049965|MR|Test|E|Lead 49965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049966|149966|989898|1|9999049966|MR|Test|E|Lead 49966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049967|149967|989898|1|9999049967|MR|Test|E|Lead 49967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049968|149968|989898|1|9999049968|MR|Test|E|Lead 49968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049969|149969|989898|1|9999049969|MR|Test|E|Lead 49969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049970|149970|989898|1|9999049970|MR|Test|E|Lead 49970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049971|149971|989898|1|9999049971|MR|Test|E|Lead 49971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049972|149972|989898|1|9999049972|MR|Test|E|Lead 49972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049973|149973|989898|1|9999049973|MR|Test|E|Lead 49973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049974|149974|989898|1|9999049974|MR|Test|E|Lead 49974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049975|149975|989898|1|9999049975|MR|Test|E|Lead 49975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049976|149976|989898|1|9999049976|MR|Test|E|Lead 49976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049977|149977|989898|1|9999049977|MR|Test|E|Lead 49977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049978|149978|989898|1|9999049978|MR|Test|E|Lead 49978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049979|149979|989898|1|9999049979|MR|Test|E|Lead 49979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049980|149980|989898|1|9999049980|MR|Test|E|Lead 49980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049981|149981|989898|1|9999049981|MR|Test|E|Lead 49981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049982|149982|989898|1|9999049982|MR|Test|E|Lead 49982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049983|149983|989898|1|9999049983|MR|Test|E|Lead 49983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049984|149984|989898|1|9999049984|MR|Test|E|Lead 49984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049985|149985|989898|1|9999049985|MR|Test|E|Lead 49985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049986|149986|989898|1|9999049986|MR|Test|E|Lead 49986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049987|149987|989898|1|9999049987|MR|Test|E|Lead 49987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049988|149988|989898|1|9999049988|MR|Test|E|Lead 49988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049989|149989|989898|1|9999049989|MR|Test|E|Lead 49989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049990|149990|989898|1|9999049990|MR|Test|E|Lead 49990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049991|149991|989898|1|9999049991|MR|Test|E|Lead 49991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049992|149992|989898|1|9999049992|MR|Test|E|Lead 49992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049993|149993|989898|1|9999049993|MR|Test|E|Lead 49993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049994|149994|989898|1|9999049994|MR|Test|E|Lead 49994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049995|149995|989898|1|9999049995|MR|Test|E|Lead 49995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049996|149996|989898|1|9999049996|MR|Test|E|Lead 49996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049997|149997|989898|1|9999049997|MR|Test|E|Lead 49997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049998|149998|989898|1|9999049998|MR|Test|E|Lead 49998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1049999|149999|989898|1|9999049999|MR|Test|E|Lead 49999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050000|150000|989898|1|9999050000|MR|Test|E|Lead 50000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050001|150001|989898|1|9999050001|MR|Test|E|Lead 50001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050002|150002|989898|1|9999050002|MR|Test|E|Lead 50002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050003|150003|989898|1|9999050003|MR|Test|E|Lead 50003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050004|150004|989898|1|9999050004|MR|Test|E|Lead 50004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050005|150005|989898|1|9999050005|MR|Test|E|Lead 50005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050006|150006|989898|1|9999050006|MR|Test|E|Lead 50006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050007|150007|989898|1|9999050007|MR|Test|E|Lead 50007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050008|150008|989898|1|9999050008|MR|Test|E|Lead 50008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050009|150009|989898|1|9999050009|MR|Test|E|Lead 50009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050010|150010|989898|1|9999050010|MR|Test|E|Lead 50010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050011|150011|989898|1|9999050011|MR|Test|E|Lead 50011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050012|150012|989898|1|9999050012|MR|Test|E|Lead 50012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050013|150013|989898|1|9999050013|MR|Test|E|Lead 50013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050014|150014|989898|1|9999050014|MR|Test|E|Lead 50014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050015|150015|989898|1|9999050015|MR|Test|E|Lead 50015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050016|150016|989898|1|9999050016|MR|Test|E|Lead 50016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050017|150017|989898|1|9999050017|MR|Test|E|Lead 50017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050018|150018|989898|1|9999050018|MR|Test|E|Lead 50018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050019|150019|989898|1|9999050019|MR|Test|E|Lead 50019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050020|150020|989898|1|9999050020|MR|Test|E|Lead 50020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050021|150021|989898|1|9999050021|MR|Test|E|Lead 50021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050022|150022|989898|1|9999050022|MR|Test|E|Lead 50022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050023|150023|989898|1|9999050023|MR|Test|E|Lead 50023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050024|150024|989898|1|9999050024|MR|Test|E|Lead 50024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050025|150025|989898|1|9999050025|MR|Test|E|Lead 50025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050026|150026|989898|1|9999050026|MR|Test|E|Lead 50026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050027|150027|989898|1|9999050027|MR|Test|E|Lead 50027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050028|150028|989898|1|9999050028|MR|Test|E|Lead 50028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050029|150029|989898|1|9999050029|MR|Test|E|Lead 50029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050030|150030|989898|1|9999050030|MR|Test|E|Lead 50030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050031|150031|989898|1|9999050031|MR|Test|E|Lead 50031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050032|150032|989898|1|9999050032|MR|Test|E|Lead 50032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050033|150033|989898|1|9999050033|MR|Test|E|Lead 50033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050034|150034|989898|1|9999050034|MR|Test|E|Lead 50034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050035|150035|989898|1|9999050035|MR|Test|E|Lead 50035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050036|150036|989898|1|9999050036|MR|Test|E|Lead 50036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050037|150037|989898|1|9999050037|MR|Test|E|Lead 50037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050038|150038|989898|1|9999050038|MR|Test|E|Lead 50038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050039|150039|989898|1|9999050039|MR|Test|E|Lead 50039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050040|150040|989898|1|9999050040|MR|Test|E|Lead 50040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050041|150041|989898|1|9999050041|MR|Test|E|Lead 50041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050042|150042|989898|1|9999050042|MR|Test|E|Lead 50042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050043|150043|989898|1|9999050043|MR|Test|E|Lead 50043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050044|150044|989898|1|9999050044|MR|Test|E|Lead 50044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050045|150045|989898|1|9999050045|MR|Test|E|Lead 50045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050046|150046|989898|1|9999050046|MR|Test|E|Lead 50046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050047|150047|989898|1|9999050047|MR|Test|E|Lead 50047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050048|150048|989898|1|9999050048|MR|Test|E|Lead 50048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050049|150049|989898|1|9999050049|MR|Test|E|Lead 50049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050050|150050|989898|1|9999050050|MR|Test|E|Lead 50050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050051|150051|989898|1|9999050051|MR|Test|E|Lead 50051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050052|150052|989898|1|9999050052|MR|Test|E|Lead 50052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050053|150053|989898|1|9999050053|MR|Test|E|Lead 50053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050054|150054|989898|1|9999050054|MR|Test|E|Lead 50054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050055|150055|989898|1|9999050055|MR|Test|E|Lead 50055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050056|150056|989898|1|9999050056|MR|Test|E|Lead 50056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050057|150057|989898|1|9999050057|MR|Test|E|Lead 50057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050058|150058|989898|1|9999050058|MR|Test|E|Lead 50058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050059|150059|989898|1|9999050059|MR|Test|E|Lead 50059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050060|150060|989898|1|9999050060|MR|Test|E|Lead 50060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050061|150061|989898|1|9999050061|MR|Test|E|Lead 50061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050062|150062|989898|1|9999050062|MR|Test|E|Lead 50062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050063|150063|989898|1|9999050063|MR|Test|E|Lead 50063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050064|150064|989898|1|9999050064|MR|Test|E|Lead 50064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050065|150065|989898|1|9999050065|MR|Test|E|Lead 50065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050066|150066|989898|1|9999050066|MR|Test|E|Lead 50066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050067|150067|989898|1|9999050067|MR|Test|E|Lead 50067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050068|150068|989898|1|9999050068|MR|Test|E|Lead 50068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050069|150069|989898|1|9999050069|MR|Test|E|Lead 50069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050070|150070|989898|1|9999050070|MR|Test|E|Lead 50070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050071|150071|989898|1|9999050071|MR|Test|E|Lead 50071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050072|150072|989898|1|9999050072|MR|Test|E|Lead 50072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050073|150073|989898|1|9999050073|MR|Test|E|Lead 50073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050074|150074|989898|1|9999050074|MR|Test|E|Lead 50074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050075|150075|989898|1|9999050075|MR|Test|E|Lead 50075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050076|150076|989898|1|9999050076|MR|Test|E|Lead 50076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050077|150077|989898|1|9999050077|MR|Test|E|Lead 50077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050078|150078|989898|1|9999050078|MR|Test|E|Lead 50078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050079|150079|989898|1|9999050079|MR|Test|E|Lead 50079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050080|150080|989898|1|9999050080|MR|Test|E|Lead 50080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050081|150081|989898|1|9999050081|MR|Test|E|Lead 50081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050082|150082|989898|1|9999050082|MR|Test|E|Lead 50082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050083|150083|989898|1|9999050083|MR|Test|E|Lead 50083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050084|150084|989898|1|9999050084|MR|Test|E|Lead 50084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050085|150085|989898|1|9999050085|MR|Test|E|Lead 50085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050086|150086|989898|1|9999050086|MR|Test|E|Lead 50086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050087|150087|989898|1|9999050087|MR|Test|E|Lead 50087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050088|150088|989898|1|9999050088|MR|Test|E|Lead 50088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050089|150089|989898|1|9999050089|MR|Test|E|Lead 50089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050090|150090|989898|1|9999050090|MR|Test|E|Lead 50090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050091|150091|989898|1|9999050091|MR|Test|E|Lead 50091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050092|150092|989898|1|9999050092|MR|Test|E|Lead 50092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050093|150093|989898|1|9999050093|MR|Test|E|Lead 50093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050094|150094|989898|1|9999050094|MR|Test|E|Lead 50094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050095|150095|989898|1|9999050095|MR|Test|E|Lead 50095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050096|150096|989898|1|9999050096|MR|Test|E|Lead 50096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050097|150097|989898|1|9999050097|MR|Test|E|Lead 50097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050098|150098|989898|1|9999050098|MR|Test|E|Lead 50098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050099|150099|989898|1|9999050099|MR|Test|E|Lead 50099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050100|150100|989898|1|9999050100|MR|Test|E|Lead 50100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050101|150101|989898|1|9999050101|MR|Test|E|Lead 50101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050102|150102|989898|1|9999050102|MR|Test|E|Lead 50102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050103|150103|989898|1|9999050103|MR|Test|E|Lead 50103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050104|150104|989898|1|9999050104|MR|Test|E|Lead 50104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050105|150105|989898|1|9999050105|MR|Test|E|Lead 50105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050106|150106|989898|1|9999050106|MR|Test|E|Lead 50106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050107|150107|989898|1|9999050107|MR|Test|E|Lead 50107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050108|150108|989898|1|9999050108|MR|Test|E|Lead 50108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050109|150109|989898|1|9999050109|MR|Test|E|Lead 50109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050110|150110|989898|1|9999050110|MR|Test|E|Lead 50110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050111|150111|989898|1|9999050111|MR|Test|E|Lead 50111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050112|150112|989898|1|9999050112|MR|Test|E|Lead 50112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050113|150113|989898|1|9999050113|MR|Test|E|Lead 50113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050114|150114|989898|1|9999050114|MR|Test|E|Lead 50114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050115|150115|989898|1|9999050115|MR|Test|E|Lead 50115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050116|150116|989898|1|9999050116|MR|Test|E|Lead 50116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050117|150117|989898|1|9999050117|MR|Test|E|Lead 50117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050118|150118|989898|1|9999050118|MR|Test|E|Lead 50118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050119|150119|989898|1|9999050119|MR|Test|E|Lead 50119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050120|150120|989898|1|9999050120|MR|Test|E|Lead 50120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050121|150121|989898|1|9999050121|MR|Test|E|Lead 50121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050122|150122|989898|1|9999050122|MR|Test|E|Lead 50122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050123|150123|989898|1|9999050123|MR|Test|E|Lead 50123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050124|150124|989898|1|9999050124|MR|Test|E|Lead 50124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050125|150125|989898|1|9999050125|MR|Test|E|Lead 50125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050126|150126|989898|1|9999050126|MR|Test|E|Lead 50126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050127|150127|989898|1|9999050127|MR|Test|E|Lead 50127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050128|150128|989898|1|9999050128|MR|Test|E|Lead 50128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050129|150129|989898|1|9999050129|MR|Test|E|Lead 50129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050130|150130|989898|1|9999050130|MR|Test|E|Lead 50130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050131|150131|989898|1|9999050131|MR|Test|E|Lead 50131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050132|150132|989898|1|9999050132|MR|Test|E|Lead 50132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050133|150133|989898|1|9999050133|MR|Test|E|Lead 50133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050134|150134|989898|1|9999050134|MR|Test|E|Lead 50134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050135|150135|989898|1|9999050135|MR|Test|E|Lead 50135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050136|150136|989898|1|9999050136|MR|Test|E|Lead 50136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050137|150137|989898|1|9999050137|MR|Test|E|Lead 50137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050138|150138|989898|1|9999050138|MR|Test|E|Lead 50138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050139|150139|989898|1|9999050139|MR|Test|E|Lead 50139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050140|150140|989898|1|9999050140|MR|Test|E|Lead 50140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050141|150141|989898|1|9999050141|MR|Test|E|Lead 50141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050142|150142|989898|1|9999050142|MR|Test|E|Lead 50142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050143|150143|989898|1|9999050143|MR|Test|E|Lead 50143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050144|150144|989898|1|9999050144|MR|Test|E|Lead 50144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050145|150145|989898|1|9999050145|MR|Test|E|Lead 50145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050146|150146|989898|1|9999050146|MR|Test|E|Lead 50146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050147|150147|989898|1|9999050147|MR|Test|E|Lead 50147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050148|150148|989898|1|9999050148|MR|Test|E|Lead 50148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050149|150149|989898|1|9999050149|MR|Test|E|Lead 50149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050150|150150|989898|1|9999050150|MR|Test|E|Lead 50150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050151|150151|989898|1|9999050151|MR|Test|E|Lead 50151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050152|150152|989898|1|9999050152|MR|Test|E|Lead 50152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050153|150153|989898|1|9999050153|MR|Test|E|Lead 50153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050154|150154|989898|1|9999050154|MR|Test|E|Lead 50154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050155|150155|989898|1|9999050155|MR|Test|E|Lead 50155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050156|150156|989898|1|9999050156|MR|Test|E|Lead 50156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050157|150157|989898|1|9999050157|MR|Test|E|Lead 50157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050158|150158|989898|1|9999050158|MR|Test|E|Lead 50158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050159|150159|989898|1|9999050159|MR|Test|E|Lead 50159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050160|150160|989898|1|9999050160|MR|Test|E|Lead 50160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050161|150161|989898|1|9999050161|MR|Test|E|Lead 50161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050162|150162|989898|1|9999050162|MR|Test|E|Lead 50162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050163|150163|989898|1|9999050163|MR|Test|E|Lead 50163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050164|150164|989898|1|9999050164|MR|Test|E|Lead 50164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050165|150165|989898|1|9999050165|MR|Test|E|Lead 50165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050166|150166|989898|1|9999050166|MR|Test|E|Lead 50166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050167|150167|989898|1|9999050167|MR|Test|E|Lead 50167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050168|150168|989898|1|9999050168|MR|Test|E|Lead 50168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050169|150169|989898|1|9999050169|MR|Test|E|Lead 50169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050170|150170|989898|1|9999050170|MR|Test|E|Lead 50170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050171|150171|989898|1|9999050171|MR|Test|E|Lead 50171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050172|150172|989898|1|9999050172|MR|Test|E|Lead 50172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050173|150173|989898|1|9999050173|MR|Test|E|Lead 50173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050174|150174|989898|1|9999050174|MR|Test|E|Lead 50174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050175|150175|989898|1|9999050175|MR|Test|E|Lead 50175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050176|150176|989898|1|9999050176|MR|Test|E|Lead 50176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050177|150177|989898|1|9999050177|MR|Test|E|Lead 50177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050178|150178|989898|1|9999050178|MR|Test|E|Lead 50178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050179|150179|989898|1|9999050179|MR|Test|E|Lead 50179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050180|150180|989898|1|9999050180|MR|Test|E|Lead 50180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050181|150181|989898|1|9999050181|MR|Test|E|Lead 50181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050182|150182|989898|1|9999050182|MR|Test|E|Lead 50182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050183|150183|989898|1|9999050183|MR|Test|E|Lead 50183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050184|150184|989898|1|9999050184|MR|Test|E|Lead 50184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050185|150185|989898|1|9999050185|MR|Test|E|Lead 50185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050186|150186|989898|1|9999050186|MR|Test|E|Lead 50186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050187|150187|989898|1|9999050187|MR|Test|E|Lead 50187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050188|150188|989898|1|9999050188|MR|Test|E|Lead 50188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050189|150189|989898|1|9999050189|MR|Test|E|Lead 50189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050190|150190|989898|1|9999050190|MR|Test|E|Lead 50190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050191|150191|989898|1|9999050191|MR|Test|E|Lead 50191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050192|150192|989898|1|9999050192|MR|Test|E|Lead 50192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050193|150193|989898|1|9999050193|MR|Test|E|Lead 50193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050194|150194|989898|1|9999050194|MR|Test|E|Lead 50194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050195|150195|989898|1|9999050195|MR|Test|E|Lead 50195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050196|150196|989898|1|9999050196|MR|Test|E|Lead 50196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050197|150197|989898|1|9999050197|MR|Test|E|Lead 50197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050198|150198|989898|1|9999050198|MR|Test|E|Lead 50198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050199|150199|989898|1|9999050199|MR|Test|E|Lead 50199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050200|150200|989898|1|9999050200|MR|Test|E|Lead 50200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050201|150201|989898|1|9999050201|MR|Test|E|Lead 50201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050202|150202|989898|1|9999050202|MR|Test|E|Lead 50202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050203|150203|989898|1|9999050203|MR|Test|E|Lead 50203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050204|150204|989898|1|9999050204|MR|Test|E|Lead 50204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050205|150205|989898|1|9999050205|MR|Test|E|Lead 50205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050206|150206|989898|1|9999050206|MR|Test|E|Lead 50206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050207|150207|989898|1|9999050207|MR|Test|E|Lead 50207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050208|150208|989898|1|9999050208|MR|Test|E|Lead 50208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050209|150209|989898|1|9999050209|MR|Test|E|Lead 50209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050210|150210|989898|1|9999050210|MR|Test|E|Lead 50210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050211|150211|989898|1|9999050211|MR|Test|E|Lead 50211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050212|150212|989898|1|9999050212|MR|Test|E|Lead 50212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050213|150213|989898|1|9999050213|MR|Test|E|Lead 50213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050214|150214|989898|1|9999050214|MR|Test|E|Lead 50214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050215|150215|989898|1|9999050215|MR|Test|E|Lead 50215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050216|150216|989898|1|9999050216|MR|Test|E|Lead 50216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050217|150217|989898|1|9999050217|MR|Test|E|Lead 50217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050218|150218|989898|1|9999050218|MR|Test|E|Lead 50218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050219|150219|989898|1|9999050219|MR|Test|E|Lead 50219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050220|150220|989898|1|9999050220|MR|Test|E|Lead 50220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050221|150221|989898|1|9999050221|MR|Test|E|Lead 50221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050222|150222|989898|1|9999050222|MR|Test|E|Lead 50222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050223|150223|989898|1|9999050223|MR|Test|E|Lead 50223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050224|150224|989898|1|9999050224|MR|Test|E|Lead 50224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050225|150225|989898|1|9999050225|MR|Test|E|Lead 50225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050226|150226|989898|1|9999050226|MR|Test|E|Lead 50226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050227|150227|989898|1|9999050227|MR|Test|E|Lead 50227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050228|150228|989898|1|9999050228|MR|Test|E|Lead 50228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050229|150229|989898|1|9999050229|MR|Test|E|Lead 50229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050230|150230|989898|1|9999050230|MR|Test|E|Lead 50230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050231|150231|989898|1|9999050231|MR|Test|E|Lead 50231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050232|150232|989898|1|9999050232|MR|Test|E|Lead 50232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050233|150233|989898|1|9999050233|MR|Test|E|Lead 50233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050234|150234|989898|1|9999050234|MR|Test|E|Lead 50234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050235|150235|989898|1|9999050235|MR|Test|E|Lead 50235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050236|150236|989898|1|9999050236|MR|Test|E|Lead 50236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050237|150237|989898|1|9999050237|MR|Test|E|Lead 50237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050238|150238|989898|1|9999050238|MR|Test|E|Lead 50238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050239|150239|989898|1|9999050239|MR|Test|E|Lead 50239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050240|150240|989898|1|9999050240|MR|Test|E|Lead 50240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050241|150241|989898|1|9999050241|MR|Test|E|Lead 50241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050242|150242|989898|1|9999050242|MR|Test|E|Lead 50242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050243|150243|989898|1|9999050243|MR|Test|E|Lead 50243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050244|150244|989898|1|9999050244|MR|Test|E|Lead 50244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050245|150245|989898|1|9999050245|MR|Test|E|Lead 50245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050246|150246|989898|1|9999050246|MR|Test|E|Lead 50246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050247|150247|989898|1|9999050247|MR|Test|E|Lead 50247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050248|150248|989898|1|9999050248|MR|Test|E|Lead 50248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050249|150249|989898|1|9999050249|MR|Test|E|Lead 50249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050250|150250|989898|1|9999050250|MR|Test|E|Lead 50250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050251|150251|989898|1|9999050251|MR|Test|E|Lead 50251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050252|150252|989898|1|9999050252|MR|Test|E|Lead 50252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050253|150253|989898|1|9999050253|MR|Test|E|Lead 50253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050254|150254|989898|1|9999050254|MR|Test|E|Lead 50254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050255|150255|989898|1|9999050255|MR|Test|E|Lead 50255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050256|150256|989898|1|9999050256|MR|Test|E|Lead 50256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050257|150257|989898|1|9999050257|MR|Test|E|Lead 50257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050258|150258|989898|1|9999050258|MR|Test|E|Lead 50258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050259|150259|989898|1|9999050259|MR|Test|E|Lead 50259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050260|150260|989898|1|9999050260|MR|Test|E|Lead 50260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050261|150261|989898|1|9999050261|MR|Test|E|Lead 50261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050262|150262|989898|1|9999050262|MR|Test|E|Lead 50262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050263|150263|989898|1|9999050263|MR|Test|E|Lead 50263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050264|150264|989898|1|9999050264|MR|Test|E|Lead 50264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050265|150265|989898|1|9999050265|MR|Test|E|Lead 50265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050266|150266|989898|1|9999050266|MR|Test|E|Lead 50266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050267|150267|989898|1|9999050267|MR|Test|E|Lead 50267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050268|150268|989898|1|9999050268|MR|Test|E|Lead 50268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050269|150269|989898|1|9999050269|MR|Test|E|Lead 50269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050270|150270|989898|1|9999050270|MR|Test|E|Lead 50270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050271|150271|989898|1|9999050271|MR|Test|E|Lead 50271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050272|150272|989898|1|9999050272|MR|Test|E|Lead 50272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050273|150273|989898|1|9999050273|MR|Test|E|Lead 50273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050274|150274|989898|1|9999050274|MR|Test|E|Lead 50274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050275|150275|989898|1|9999050275|MR|Test|E|Lead 50275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050276|150276|989898|1|9999050276|MR|Test|E|Lead 50276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050277|150277|989898|1|9999050277|MR|Test|E|Lead 50277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050278|150278|989898|1|9999050278|MR|Test|E|Lead 50278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050279|150279|989898|1|9999050279|MR|Test|E|Lead 50279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050280|150280|989898|1|9999050280|MR|Test|E|Lead 50280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050281|150281|989898|1|9999050281|MR|Test|E|Lead 50281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050282|150282|989898|1|9999050282|MR|Test|E|Lead 50282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050283|150283|989898|1|9999050283|MR|Test|E|Lead 50283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050284|150284|989898|1|9999050284|MR|Test|E|Lead 50284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050285|150285|989898|1|9999050285|MR|Test|E|Lead 50285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050286|150286|989898|1|9999050286|MR|Test|E|Lead 50286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050287|150287|989898|1|9999050287|MR|Test|E|Lead 50287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050288|150288|989898|1|9999050288|MR|Test|E|Lead 50288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050289|150289|989898|1|9999050289|MR|Test|E|Lead 50289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050290|150290|989898|1|9999050290|MR|Test|E|Lead 50290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050291|150291|989898|1|9999050291|MR|Test|E|Lead 50291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050292|150292|989898|1|9999050292|MR|Test|E|Lead 50292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050293|150293|989898|1|9999050293|MR|Test|E|Lead 50293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050294|150294|989898|1|9999050294|MR|Test|E|Lead 50294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050295|150295|989898|1|9999050295|MR|Test|E|Lead 50295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050296|150296|989898|1|9999050296|MR|Test|E|Lead 50296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050297|150297|989898|1|9999050297|MR|Test|E|Lead 50297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050298|150298|989898|1|9999050298|MR|Test|E|Lead 50298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050299|150299|989898|1|9999050299|MR|Test|E|Lead 50299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050300|150300|989898|1|9999050300|MR|Test|E|Lead 50300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050301|150301|989898|1|9999050301|MR|Test|E|Lead 50301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050302|150302|989898|1|9999050302|MR|Test|E|Lead 50302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050303|150303|989898|1|9999050303|MR|Test|E|Lead 50303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050304|150304|989898|1|9999050304|MR|Test|E|Lead 50304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050305|150305|989898|1|9999050305|MR|Test|E|Lead 50305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050306|150306|989898|1|9999050306|MR|Test|E|Lead 50306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050307|150307|989898|1|9999050307|MR|Test|E|Lead 50307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050308|150308|989898|1|9999050308|MR|Test|E|Lead 50308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050309|150309|989898|1|9999050309|MR|Test|E|Lead 50309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050310|150310|989898|1|9999050310|MR|Test|E|Lead 50310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050311|150311|989898|1|9999050311|MR|Test|E|Lead 50311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050312|150312|989898|1|9999050312|MR|Test|E|Lead 50312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050313|150313|989898|1|9999050313|MR|Test|E|Lead 50313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050314|150314|989898|1|9999050314|MR|Test|E|Lead 50314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050315|150315|989898|1|9999050315|MR|Test|E|Lead 50315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050316|150316|989898|1|9999050316|MR|Test|E|Lead 50316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050317|150317|989898|1|9999050317|MR|Test|E|Lead 50317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050318|150318|989898|1|9999050318|MR|Test|E|Lead 50318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050319|150319|989898|1|9999050319|MR|Test|E|Lead 50319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050320|150320|989898|1|9999050320|MR|Test|E|Lead 50320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050321|150321|989898|1|9999050321|MR|Test|E|Lead 50321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050322|150322|989898|1|9999050322|MR|Test|E|Lead 50322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050323|150323|989898|1|9999050323|MR|Test|E|Lead 50323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050324|150324|989898|1|9999050324|MR|Test|E|Lead 50324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050325|150325|989898|1|9999050325|MR|Test|E|Lead 50325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050326|150326|989898|1|9999050326|MR|Test|E|Lead 50326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050327|150327|989898|1|9999050327|MR|Test|E|Lead 50327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050328|150328|989898|1|9999050328|MR|Test|E|Lead 50328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050329|150329|989898|1|9999050329|MR|Test|E|Lead 50329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050330|150330|989898|1|9999050330|MR|Test|E|Lead 50330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050331|150331|989898|1|9999050331|MR|Test|E|Lead 50331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050332|150332|989898|1|9999050332|MR|Test|E|Lead 50332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050333|150333|989898|1|9999050333|MR|Test|E|Lead 50333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050334|150334|989898|1|9999050334|MR|Test|E|Lead 50334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050335|150335|989898|1|9999050335|MR|Test|E|Lead 50335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050336|150336|989898|1|9999050336|MR|Test|E|Lead 50336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050337|150337|989898|1|9999050337|MR|Test|E|Lead 50337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050338|150338|989898|1|9999050338|MR|Test|E|Lead 50338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050339|150339|989898|1|9999050339|MR|Test|E|Lead 50339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050340|150340|989898|1|9999050340|MR|Test|E|Lead 50340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050341|150341|989898|1|9999050341|MR|Test|E|Lead 50341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050342|150342|989898|1|9999050342|MR|Test|E|Lead 50342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050343|150343|989898|1|9999050343|MR|Test|E|Lead 50343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050344|150344|989898|1|9999050344|MR|Test|E|Lead 50344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050345|150345|989898|1|9999050345|MR|Test|E|Lead 50345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050346|150346|989898|1|9999050346|MR|Test|E|Lead 50346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050347|150347|989898|1|9999050347|MR|Test|E|Lead 50347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050348|150348|989898|1|9999050348|MR|Test|E|Lead 50348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050349|150349|989898|1|9999050349|MR|Test|E|Lead 50349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050350|150350|989898|1|9999050350|MR|Test|E|Lead 50350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050351|150351|989898|1|9999050351|MR|Test|E|Lead 50351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050352|150352|989898|1|9999050352|MR|Test|E|Lead 50352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050353|150353|989898|1|9999050353|MR|Test|E|Lead 50353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050354|150354|989898|1|9999050354|MR|Test|E|Lead 50354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050355|150355|989898|1|9999050355|MR|Test|E|Lead 50355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050356|150356|989898|1|9999050356|MR|Test|E|Lead 50356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050357|150357|989898|1|9999050357|MR|Test|E|Lead 50357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050358|150358|989898|1|9999050358|MR|Test|E|Lead 50358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050359|150359|989898|1|9999050359|MR|Test|E|Lead 50359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050360|150360|989898|1|9999050360|MR|Test|E|Lead 50360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050361|150361|989898|1|9999050361|MR|Test|E|Lead 50361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050362|150362|989898|1|9999050362|MR|Test|E|Lead 50362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050363|150363|989898|1|9999050363|MR|Test|E|Lead 50363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050364|150364|989898|1|9999050364|MR|Test|E|Lead 50364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050365|150365|989898|1|9999050365|MR|Test|E|Lead 50365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050366|150366|989898|1|9999050366|MR|Test|E|Lead 50366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050367|150367|989898|1|9999050367|MR|Test|E|Lead 50367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050368|150368|989898|1|9999050368|MR|Test|E|Lead 50368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050369|150369|989898|1|9999050369|MR|Test|E|Lead 50369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050370|150370|989898|1|9999050370|MR|Test|E|Lead 50370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050371|150371|989898|1|9999050371|MR|Test|E|Lead 50371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050372|150372|989898|1|9999050372|MR|Test|E|Lead 50372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050373|150373|989898|1|9999050373|MR|Test|E|Lead 50373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050374|150374|989898|1|9999050374|MR|Test|E|Lead 50374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050375|150375|989898|1|9999050375|MR|Test|E|Lead 50375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050376|150376|989898|1|9999050376|MR|Test|E|Lead 50376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050377|150377|989898|1|9999050377|MR|Test|E|Lead 50377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050378|150378|989898|1|9999050378|MR|Test|E|Lead 50378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050379|150379|989898|1|9999050379|MR|Test|E|Lead 50379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050380|150380|989898|1|9999050380|MR|Test|E|Lead 50380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050381|150381|989898|1|9999050381|MR|Test|E|Lead 50381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050382|150382|989898|1|9999050382|MR|Test|E|Lead 50382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050383|150383|989898|1|9999050383|MR|Test|E|Lead 50383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050384|150384|989898|1|9999050384|MR|Test|E|Lead 50384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050385|150385|989898|1|9999050385|MR|Test|E|Lead 50385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050386|150386|989898|1|9999050386|MR|Test|E|Lead 50386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050387|150387|989898|1|9999050387|MR|Test|E|Lead 50387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050388|150388|989898|1|9999050388|MR|Test|E|Lead 50388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050389|150389|989898|1|9999050389|MR|Test|E|Lead 50389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050390|150390|989898|1|9999050390|MR|Test|E|Lead 50390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050391|150391|989898|1|9999050391|MR|Test|E|Lead 50391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050392|150392|989898|1|9999050392|MR|Test|E|Lead 50392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050393|150393|989898|1|9999050393|MR|Test|E|Lead 50393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050394|150394|989898|1|9999050394|MR|Test|E|Lead 50394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050395|150395|989898|1|9999050395|MR|Test|E|Lead 50395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050396|150396|989898|1|9999050396|MR|Test|E|Lead 50396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050397|150397|989898|1|9999050397|MR|Test|E|Lead 50397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050398|150398|989898|1|9999050398|MR|Test|E|Lead 50398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050399|150399|989898|1|9999050399|MR|Test|E|Lead 50399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050400|150400|989898|1|9999050400|MR|Test|E|Lead 50400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050401|150401|989898|1|9999050401|MR|Test|E|Lead 50401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050402|150402|989898|1|9999050402|MR|Test|E|Lead 50402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050403|150403|989898|1|9999050403|MR|Test|E|Lead 50403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050404|150404|989898|1|9999050404|MR|Test|E|Lead 50404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050405|150405|989898|1|9999050405|MR|Test|E|Lead 50405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050406|150406|989898|1|9999050406|MR|Test|E|Lead 50406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050407|150407|989898|1|9999050407|MR|Test|E|Lead 50407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050408|150408|989898|1|9999050408|MR|Test|E|Lead 50408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050409|150409|989898|1|9999050409|MR|Test|E|Lead 50409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050410|150410|989898|1|9999050410|MR|Test|E|Lead 50410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050411|150411|989898|1|9999050411|MR|Test|E|Lead 50411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050412|150412|989898|1|9999050412|MR|Test|E|Lead 50412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050413|150413|989898|1|9999050413|MR|Test|E|Lead 50413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050414|150414|989898|1|9999050414|MR|Test|E|Lead 50414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050415|150415|989898|1|9999050415|MR|Test|E|Lead 50415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050416|150416|989898|1|9999050416|MR|Test|E|Lead 50416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050417|150417|989898|1|9999050417|MR|Test|E|Lead 50417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050418|150418|989898|1|9999050418|MR|Test|E|Lead 50418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050419|150419|989898|1|9999050419|MR|Test|E|Lead 50419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050420|150420|989898|1|9999050420|MR|Test|E|Lead 50420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050421|150421|989898|1|9999050421|MR|Test|E|Lead 50421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050422|150422|989898|1|9999050422|MR|Test|E|Lead 50422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050423|150423|989898|1|9999050423|MR|Test|E|Lead 50423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050424|150424|989898|1|9999050424|MR|Test|E|Lead 50424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050425|150425|989898|1|9999050425|MR|Test|E|Lead 50425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050426|150426|989898|1|9999050426|MR|Test|E|Lead 50426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050427|150427|989898|1|9999050427|MR|Test|E|Lead 50427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050428|150428|989898|1|9999050428|MR|Test|E|Lead 50428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050429|150429|989898|1|9999050429|MR|Test|E|Lead 50429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050430|150430|989898|1|9999050430|MR|Test|E|Lead 50430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050431|150431|989898|1|9999050431|MR|Test|E|Lead 50431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050432|150432|989898|1|9999050432|MR|Test|E|Lead 50432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050433|150433|989898|1|9999050433|MR|Test|E|Lead 50433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050434|150434|989898|1|9999050434|MR|Test|E|Lead 50434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050435|150435|989898|1|9999050435|MR|Test|E|Lead 50435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050436|150436|989898|1|9999050436|MR|Test|E|Lead 50436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050437|150437|989898|1|9999050437|MR|Test|E|Lead 50437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050438|150438|989898|1|9999050438|MR|Test|E|Lead 50438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050439|150439|989898|1|9999050439|MR|Test|E|Lead 50439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050440|150440|989898|1|9999050440|MR|Test|E|Lead 50440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050441|150441|989898|1|9999050441|MR|Test|E|Lead 50441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050442|150442|989898|1|9999050442|MR|Test|E|Lead 50442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050443|150443|989898|1|9999050443|MR|Test|E|Lead 50443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050444|150444|989898|1|9999050444|MR|Test|E|Lead 50444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050445|150445|989898|1|9999050445|MR|Test|E|Lead 50445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050446|150446|989898|1|9999050446|MR|Test|E|Lead 50446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050447|150447|989898|1|9999050447|MR|Test|E|Lead 50447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050448|150448|989898|1|9999050448|MR|Test|E|Lead 50448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050449|150449|989898|1|9999050449|MR|Test|E|Lead 50449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050450|150450|989898|1|9999050450|MR|Test|E|Lead 50450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050451|150451|989898|1|9999050451|MR|Test|E|Lead 50451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050452|150452|989898|1|9999050452|MR|Test|E|Lead 50452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050453|150453|989898|1|9999050453|MR|Test|E|Lead 50453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050454|150454|989898|1|9999050454|MR|Test|E|Lead 50454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050455|150455|989898|1|9999050455|MR|Test|E|Lead 50455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050456|150456|989898|1|9999050456|MR|Test|E|Lead 50456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050457|150457|989898|1|9999050457|MR|Test|E|Lead 50457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050458|150458|989898|1|9999050458|MR|Test|E|Lead 50458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050459|150459|989898|1|9999050459|MR|Test|E|Lead 50459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050460|150460|989898|1|9999050460|MR|Test|E|Lead 50460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050461|150461|989898|1|9999050461|MR|Test|E|Lead 50461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050462|150462|989898|1|9999050462|MR|Test|E|Lead 50462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050463|150463|989898|1|9999050463|MR|Test|E|Lead 50463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050464|150464|989898|1|9999050464|MR|Test|E|Lead 50464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050465|150465|989898|1|9999050465|MR|Test|E|Lead 50465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050466|150466|989898|1|9999050466|MR|Test|E|Lead 50466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050467|150467|989898|1|9999050467|MR|Test|E|Lead 50467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050468|150468|989898|1|9999050468|MR|Test|E|Lead 50468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050469|150469|989898|1|9999050469|MR|Test|E|Lead 50469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050470|150470|989898|1|9999050470|MR|Test|E|Lead 50470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050471|150471|989898|1|9999050471|MR|Test|E|Lead 50471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050472|150472|989898|1|9999050472|MR|Test|E|Lead 50472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050473|150473|989898|1|9999050473|MR|Test|E|Lead 50473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050474|150474|989898|1|9999050474|MR|Test|E|Lead 50474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050475|150475|989898|1|9999050475|MR|Test|E|Lead 50475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050476|150476|989898|1|9999050476|MR|Test|E|Lead 50476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050477|150477|989898|1|9999050477|MR|Test|E|Lead 50477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050478|150478|989898|1|9999050478|MR|Test|E|Lead 50478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050479|150479|989898|1|9999050479|MR|Test|E|Lead 50479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050480|150480|989898|1|9999050480|MR|Test|E|Lead 50480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050481|150481|989898|1|9999050481|MR|Test|E|Lead 50481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050482|150482|989898|1|9999050482|MR|Test|E|Lead 50482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050483|150483|989898|1|9999050483|MR|Test|E|Lead 50483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050484|150484|989898|1|9999050484|MR|Test|E|Lead 50484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050485|150485|989898|1|9999050485|MR|Test|E|Lead 50485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050486|150486|989898|1|9999050486|MR|Test|E|Lead 50486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050487|150487|989898|1|9999050487|MR|Test|E|Lead 50487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050488|150488|989898|1|9999050488|MR|Test|E|Lead 50488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050489|150489|989898|1|9999050489|MR|Test|E|Lead 50489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050490|150490|989898|1|9999050490|MR|Test|E|Lead 50490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050491|150491|989898|1|9999050491|MR|Test|E|Lead 50491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050492|150492|989898|1|9999050492|MR|Test|E|Lead 50492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050493|150493|989898|1|9999050493|MR|Test|E|Lead 50493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050494|150494|989898|1|9999050494|MR|Test|E|Lead 50494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050495|150495|989898|1|9999050495|MR|Test|E|Lead 50495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050496|150496|989898|1|9999050496|MR|Test|E|Lead 50496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050497|150497|989898|1|9999050497|MR|Test|E|Lead 50497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050498|150498|989898|1|9999050498|MR|Test|E|Lead 50498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050499|150499|989898|1|9999050499|MR|Test|E|Lead 50499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050500|150500|989898|1|9999050500|MR|Test|E|Lead 50500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050501|150501|989898|1|9999050501|MR|Test|E|Lead 50501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050502|150502|989898|1|9999050502|MR|Test|E|Lead 50502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050503|150503|989898|1|9999050503|MR|Test|E|Lead 50503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050504|150504|989898|1|9999050504|MR|Test|E|Lead 50504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050505|150505|989898|1|9999050505|MR|Test|E|Lead 50505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050506|150506|989898|1|9999050506|MR|Test|E|Lead 50506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050507|150507|989898|1|9999050507|MR|Test|E|Lead 50507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050508|150508|989898|1|9999050508|MR|Test|E|Lead 50508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050509|150509|989898|1|9999050509|MR|Test|E|Lead 50509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050510|150510|989898|1|9999050510|MR|Test|E|Lead 50510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050511|150511|989898|1|9999050511|MR|Test|E|Lead 50511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050512|150512|989898|1|9999050512|MR|Test|E|Lead 50512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050513|150513|989898|1|9999050513|MR|Test|E|Lead 50513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050514|150514|989898|1|9999050514|MR|Test|E|Lead 50514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050515|150515|989898|1|9999050515|MR|Test|E|Lead 50515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050516|150516|989898|1|9999050516|MR|Test|E|Lead 50516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050517|150517|989898|1|9999050517|MR|Test|E|Lead 50517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050518|150518|989898|1|9999050518|MR|Test|E|Lead 50518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050519|150519|989898|1|9999050519|MR|Test|E|Lead 50519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050520|150520|989898|1|9999050520|MR|Test|E|Lead 50520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050521|150521|989898|1|9999050521|MR|Test|E|Lead 50521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050522|150522|989898|1|9999050522|MR|Test|E|Lead 50522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050523|150523|989898|1|9999050523|MR|Test|E|Lead 50523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050524|150524|989898|1|9999050524|MR|Test|E|Lead 50524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050525|150525|989898|1|9999050525|MR|Test|E|Lead 50525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050526|150526|989898|1|9999050526|MR|Test|E|Lead 50526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050527|150527|989898|1|9999050527|MR|Test|E|Lead 50527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050528|150528|989898|1|9999050528|MR|Test|E|Lead 50528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050529|150529|989898|1|9999050529|MR|Test|E|Lead 50529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050530|150530|989898|1|9999050530|MR|Test|E|Lead 50530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050531|150531|989898|1|9999050531|MR|Test|E|Lead 50531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050532|150532|989898|1|9999050532|MR|Test|E|Lead 50532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050533|150533|989898|1|9999050533|MR|Test|E|Lead 50533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050534|150534|989898|1|9999050534|MR|Test|E|Lead 50534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050535|150535|989898|1|9999050535|MR|Test|E|Lead 50535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050536|150536|989898|1|9999050536|MR|Test|E|Lead 50536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050537|150537|989898|1|9999050537|MR|Test|E|Lead 50537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050538|150538|989898|1|9999050538|MR|Test|E|Lead 50538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050539|150539|989898|1|9999050539|MR|Test|E|Lead 50539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050540|150540|989898|1|9999050540|MR|Test|E|Lead 50540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050541|150541|989898|1|9999050541|MR|Test|E|Lead 50541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050542|150542|989898|1|9999050542|MR|Test|E|Lead 50542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050543|150543|989898|1|9999050543|MR|Test|E|Lead 50543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050544|150544|989898|1|9999050544|MR|Test|E|Lead 50544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050545|150545|989898|1|9999050545|MR|Test|E|Lead 50545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050546|150546|989898|1|9999050546|MR|Test|E|Lead 50546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050547|150547|989898|1|9999050547|MR|Test|E|Lead 50547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050548|150548|989898|1|9999050548|MR|Test|E|Lead 50548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050549|150549|989898|1|9999050549|MR|Test|E|Lead 50549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050550|150550|989898|1|9999050550|MR|Test|E|Lead 50550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050551|150551|989898|1|9999050551|MR|Test|E|Lead 50551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050552|150552|989898|1|9999050552|MR|Test|E|Lead 50552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050553|150553|989898|1|9999050553|MR|Test|E|Lead 50553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050554|150554|989898|1|9999050554|MR|Test|E|Lead 50554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050555|150555|989898|1|9999050555|MR|Test|E|Lead 50555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050556|150556|989898|1|9999050556|MR|Test|E|Lead 50556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050557|150557|989898|1|9999050557|MR|Test|E|Lead 50557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050558|150558|989898|1|9999050558|MR|Test|E|Lead 50558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050559|150559|989898|1|9999050559|MR|Test|E|Lead 50559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050560|150560|989898|1|9999050560|MR|Test|E|Lead 50560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050561|150561|989898|1|9999050561|MR|Test|E|Lead 50561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050562|150562|989898|1|9999050562|MR|Test|E|Lead 50562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050563|150563|989898|1|9999050563|MR|Test|E|Lead 50563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050564|150564|989898|1|9999050564|MR|Test|E|Lead 50564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050565|150565|989898|1|9999050565|MR|Test|E|Lead 50565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050566|150566|989898|1|9999050566|MR|Test|E|Lead 50566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050567|150567|989898|1|9999050567|MR|Test|E|Lead 50567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050568|150568|989898|1|9999050568|MR|Test|E|Lead 50568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050569|150569|989898|1|9999050569|MR|Test|E|Lead 50569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050570|150570|989898|1|9999050570|MR|Test|E|Lead 50570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050571|150571|989898|1|9999050571|MR|Test|E|Lead 50571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050572|150572|989898|1|9999050572|MR|Test|E|Lead 50572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050573|150573|989898|1|9999050573|MR|Test|E|Lead 50573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050574|150574|989898|1|9999050574|MR|Test|E|Lead 50574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050575|150575|989898|1|9999050575|MR|Test|E|Lead 50575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050576|150576|989898|1|9999050576|MR|Test|E|Lead 50576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050577|150577|989898|1|9999050577|MR|Test|E|Lead 50577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050578|150578|989898|1|9999050578|MR|Test|E|Lead 50578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050579|150579|989898|1|9999050579|MR|Test|E|Lead 50579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050580|150580|989898|1|9999050580|MR|Test|E|Lead 50580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050581|150581|989898|1|9999050581|MR|Test|E|Lead 50581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050582|150582|989898|1|9999050582|MR|Test|E|Lead 50582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050583|150583|989898|1|9999050583|MR|Test|E|Lead 50583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050584|150584|989898|1|9999050584|MR|Test|E|Lead 50584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050585|150585|989898|1|9999050585|MR|Test|E|Lead 50585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050586|150586|989898|1|9999050586|MR|Test|E|Lead 50586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050587|150587|989898|1|9999050587|MR|Test|E|Lead 50587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050588|150588|989898|1|9999050588|MR|Test|E|Lead 50588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050589|150589|989898|1|9999050589|MR|Test|E|Lead 50589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050590|150590|989898|1|9999050590|MR|Test|E|Lead 50590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050591|150591|989898|1|9999050591|MR|Test|E|Lead 50591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050592|150592|989898|1|9999050592|MR|Test|E|Lead 50592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050593|150593|989898|1|9999050593|MR|Test|E|Lead 50593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050594|150594|989898|1|9999050594|MR|Test|E|Lead 50594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050595|150595|989898|1|9999050595|MR|Test|E|Lead 50595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050596|150596|989898|1|9999050596|MR|Test|E|Lead 50596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050597|150597|989898|1|9999050597|MR|Test|E|Lead 50597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050598|150598|989898|1|9999050598|MR|Test|E|Lead 50598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050599|150599|989898|1|9999050599|MR|Test|E|Lead 50599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050600|150600|989898|1|9999050600|MR|Test|E|Lead 50600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050601|150601|989898|1|9999050601|MR|Test|E|Lead 50601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050602|150602|989898|1|9999050602|MR|Test|E|Lead 50602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050603|150603|989898|1|9999050603|MR|Test|E|Lead 50603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050604|150604|989898|1|9999050604|MR|Test|E|Lead 50604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050605|150605|989898|1|9999050605|MR|Test|E|Lead 50605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050606|150606|989898|1|9999050606|MR|Test|E|Lead 50606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050607|150607|989898|1|9999050607|MR|Test|E|Lead 50607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050608|150608|989898|1|9999050608|MR|Test|E|Lead 50608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050609|150609|989898|1|9999050609|MR|Test|E|Lead 50609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050610|150610|989898|1|9999050610|MR|Test|E|Lead 50610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050611|150611|989898|1|9999050611|MR|Test|E|Lead 50611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050612|150612|989898|1|9999050612|MR|Test|E|Lead 50612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050613|150613|989898|1|9999050613|MR|Test|E|Lead 50613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050614|150614|989898|1|9999050614|MR|Test|E|Lead 50614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050615|150615|989898|1|9999050615|MR|Test|E|Lead 50615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050616|150616|989898|1|9999050616|MR|Test|E|Lead 50616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050617|150617|989898|1|9999050617|MR|Test|E|Lead 50617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050618|150618|989898|1|9999050618|MR|Test|E|Lead 50618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050619|150619|989898|1|9999050619|MR|Test|E|Lead 50619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050620|150620|989898|1|9999050620|MR|Test|E|Lead 50620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050621|150621|989898|1|9999050621|MR|Test|E|Lead 50621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050622|150622|989898|1|9999050622|MR|Test|E|Lead 50622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050623|150623|989898|1|9999050623|MR|Test|E|Lead 50623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050624|150624|989898|1|9999050624|MR|Test|E|Lead 50624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050625|150625|989898|1|9999050625|MR|Test|E|Lead 50625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050626|150626|989898|1|9999050626|MR|Test|E|Lead 50626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050627|150627|989898|1|9999050627|MR|Test|E|Lead 50627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050628|150628|989898|1|9999050628|MR|Test|E|Lead 50628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050629|150629|989898|1|9999050629|MR|Test|E|Lead 50629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050630|150630|989898|1|9999050630|MR|Test|E|Lead 50630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050631|150631|989898|1|9999050631|MR|Test|E|Lead 50631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050632|150632|989898|1|9999050632|MR|Test|E|Lead 50632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050633|150633|989898|1|9999050633|MR|Test|E|Lead 50633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050634|150634|989898|1|9999050634|MR|Test|E|Lead 50634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050635|150635|989898|1|9999050635|MR|Test|E|Lead 50635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050636|150636|989898|1|9999050636|MR|Test|E|Lead 50636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050637|150637|989898|1|9999050637|MR|Test|E|Lead 50637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050638|150638|989898|1|9999050638|MR|Test|E|Lead 50638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050639|150639|989898|1|9999050639|MR|Test|E|Lead 50639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050640|150640|989898|1|9999050640|MR|Test|E|Lead 50640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050641|150641|989898|1|9999050641|MR|Test|E|Lead 50641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050642|150642|989898|1|9999050642|MR|Test|E|Lead 50642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050643|150643|989898|1|9999050643|MR|Test|E|Lead 50643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050644|150644|989898|1|9999050644|MR|Test|E|Lead 50644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050645|150645|989898|1|9999050645|MR|Test|E|Lead 50645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050646|150646|989898|1|9999050646|MR|Test|E|Lead 50646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050647|150647|989898|1|9999050647|MR|Test|E|Lead 50647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050648|150648|989898|1|9999050648|MR|Test|E|Lead 50648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050649|150649|989898|1|9999050649|MR|Test|E|Lead 50649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050650|150650|989898|1|9999050650|MR|Test|E|Lead 50650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050651|150651|989898|1|9999050651|MR|Test|E|Lead 50651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050652|150652|989898|1|9999050652|MR|Test|E|Lead 50652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050653|150653|989898|1|9999050653|MR|Test|E|Lead 50653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050654|150654|989898|1|9999050654|MR|Test|E|Lead 50654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050655|150655|989898|1|9999050655|MR|Test|E|Lead 50655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050656|150656|989898|1|9999050656|MR|Test|E|Lead 50656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050657|150657|989898|1|9999050657|MR|Test|E|Lead 50657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050658|150658|989898|1|9999050658|MR|Test|E|Lead 50658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050659|150659|989898|1|9999050659|MR|Test|E|Lead 50659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050660|150660|989898|1|9999050660|MR|Test|E|Lead 50660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050661|150661|989898|1|9999050661|MR|Test|E|Lead 50661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050662|150662|989898|1|9999050662|MR|Test|E|Lead 50662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050663|150663|989898|1|9999050663|MR|Test|E|Lead 50663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050664|150664|989898|1|9999050664|MR|Test|E|Lead 50664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050665|150665|989898|1|9999050665|MR|Test|E|Lead 50665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050666|150666|989898|1|9999050666|MR|Test|E|Lead 50666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050667|150667|989898|1|9999050667|MR|Test|E|Lead 50667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050668|150668|989898|1|9999050668|MR|Test|E|Lead 50668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050669|150669|989898|1|9999050669|MR|Test|E|Lead 50669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050670|150670|989898|1|9999050670|MR|Test|E|Lead 50670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050671|150671|989898|1|9999050671|MR|Test|E|Lead 50671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050672|150672|989898|1|9999050672|MR|Test|E|Lead 50672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050673|150673|989898|1|9999050673|MR|Test|E|Lead 50673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050674|150674|989898|1|9999050674|MR|Test|E|Lead 50674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050675|150675|989898|1|9999050675|MR|Test|E|Lead 50675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050676|150676|989898|1|9999050676|MR|Test|E|Lead 50676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050677|150677|989898|1|9999050677|MR|Test|E|Lead 50677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050678|150678|989898|1|9999050678|MR|Test|E|Lead 50678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050679|150679|989898|1|9999050679|MR|Test|E|Lead 50679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050680|150680|989898|1|9999050680|MR|Test|E|Lead 50680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050681|150681|989898|1|9999050681|MR|Test|E|Lead 50681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050682|150682|989898|1|9999050682|MR|Test|E|Lead 50682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050683|150683|989898|1|9999050683|MR|Test|E|Lead 50683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050684|150684|989898|1|9999050684|MR|Test|E|Lead 50684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050685|150685|989898|1|9999050685|MR|Test|E|Lead 50685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050686|150686|989898|1|9999050686|MR|Test|E|Lead 50686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050687|150687|989898|1|9999050687|MR|Test|E|Lead 50687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050688|150688|989898|1|9999050688|MR|Test|E|Lead 50688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050689|150689|989898|1|9999050689|MR|Test|E|Lead 50689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050690|150690|989898|1|9999050690|MR|Test|E|Lead 50690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050691|150691|989898|1|9999050691|MR|Test|E|Lead 50691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050692|150692|989898|1|9999050692|MR|Test|E|Lead 50692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050693|150693|989898|1|9999050693|MR|Test|E|Lead 50693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050694|150694|989898|1|9999050694|MR|Test|E|Lead 50694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050695|150695|989898|1|9999050695|MR|Test|E|Lead 50695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050696|150696|989898|1|9999050696|MR|Test|E|Lead 50696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050697|150697|989898|1|9999050697|MR|Test|E|Lead 50697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050698|150698|989898|1|9999050698|MR|Test|E|Lead 50698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050699|150699|989898|1|9999050699|MR|Test|E|Lead 50699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050700|150700|989898|1|9999050700|MR|Test|E|Lead 50700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050701|150701|989898|1|9999050701|MR|Test|E|Lead 50701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050702|150702|989898|1|9999050702|MR|Test|E|Lead 50702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050703|150703|989898|1|9999050703|MR|Test|E|Lead 50703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050704|150704|989898|1|9999050704|MR|Test|E|Lead 50704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050705|150705|989898|1|9999050705|MR|Test|E|Lead 50705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050706|150706|989898|1|9999050706|MR|Test|E|Lead 50706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050707|150707|989898|1|9999050707|MR|Test|E|Lead 50707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050708|150708|989898|1|9999050708|MR|Test|E|Lead 50708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050709|150709|989898|1|9999050709|MR|Test|E|Lead 50709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050710|150710|989898|1|9999050710|MR|Test|E|Lead 50710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050711|150711|989898|1|9999050711|MR|Test|E|Lead 50711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050712|150712|989898|1|9999050712|MR|Test|E|Lead 50712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050713|150713|989898|1|9999050713|MR|Test|E|Lead 50713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050714|150714|989898|1|9999050714|MR|Test|E|Lead 50714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050715|150715|989898|1|9999050715|MR|Test|E|Lead 50715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050716|150716|989898|1|9999050716|MR|Test|E|Lead 50716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050717|150717|989898|1|9999050717|MR|Test|E|Lead 50717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050718|150718|989898|1|9999050718|MR|Test|E|Lead 50718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050719|150719|989898|1|9999050719|MR|Test|E|Lead 50719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050720|150720|989898|1|9999050720|MR|Test|E|Lead 50720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050721|150721|989898|1|9999050721|MR|Test|E|Lead 50721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050722|150722|989898|1|9999050722|MR|Test|E|Lead 50722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050723|150723|989898|1|9999050723|MR|Test|E|Lead 50723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050724|150724|989898|1|9999050724|MR|Test|E|Lead 50724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050725|150725|989898|1|9999050725|MR|Test|E|Lead 50725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050726|150726|989898|1|9999050726|MR|Test|E|Lead 50726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050727|150727|989898|1|9999050727|MR|Test|E|Lead 50727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050728|150728|989898|1|9999050728|MR|Test|E|Lead 50728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050729|150729|989898|1|9999050729|MR|Test|E|Lead 50729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050730|150730|989898|1|9999050730|MR|Test|E|Lead 50730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050731|150731|989898|1|9999050731|MR|Test|E|Lead 50731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050732|150732|989898|1|9999050732|MR|Test|E|Lead 50732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050733|150733|989898|1|9999050733|MR|Test|E|Lead 50733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050734|150734|989898|1|9999050734|MR|Test|E|Lead 50734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050735|150735|989898|1|9999050735|MR|Test|E|Lead 50735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050736|150736|989898|1|9999050736|MR|Test|E|Lead 50736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050737|150737|989898|1|9999050737|MR|Test|E|Lead 50737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050738|150738|989898|1|9999050738|MR|Test|E|Lead 50738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050739|150739|989898|1|9999050739|MR|Test|E|Lead 50739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050740|150740|989898|1|9999050740|MR|Test|E|Lead 50740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050741|150741|989898|1|9999050741|MR|Test|E|Lead 50741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050742|150742|989898|1|9999050742|MR|Test|E|Lead 50742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050743|150743|989898|1|9999050743|MR|Test|E|Lead 50743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050744|150744|989898|1|9999050744|MR|Test|E|Lead 50744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050745|150745|989898|1|9999050745|MR|Test|E|Lead 50745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050746|150746|989898|1|9999050746|MR|Test|E|Lead 50746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050747|150747|989898|1|9999050747|MR|Test|E|Lead 50747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050748|150748|989898|1|9999050748|MR|Test|E|Lead 50748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050749|150749|989898|1|9999050749|MR|Test|E|Lead 50749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050750|150750|989898|1|9999050750|MR|Test|E|Lead 50750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050751|150751|989898|1|9999050751|MR|Test|E|Lead 50751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050752|150752|989898|1|9999050752|MR|Test|E|Lead 50752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050753|150753|989898|1|9999050753|MR|Test|E|Lead 50753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050754|150754|989898|1|9999050754|MR|Test|E|Lead 50754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050755|150755|989898|1|9999050755|MR|Test|E|Lead 50755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050756|150756|989898|1|9999050756|MR|Test|E|Lead 50756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050757|150757|989898|1|9999050757|MR|Test|E|Lead 50757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050758|150758|989898|1|9999050758|MR|Test|E|Lead 50758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050759|150759|989898|1|9999050759|MR|Test|E|Lead 50759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050760|150760|989898|1|9999050760|MR|Test|E|Lead 50760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050761|150761|989898|1|9999050761|MR|Test|E|Lead 50761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050762|150762|989898|1|9999050762|MR|Test|E|Lead 50762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050763|150763|989898|1|9999050763|MR|Test|E|Lead 50763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050764|150764|989898|1|9999050764|MR|Test|E|Lead 50764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050765|150765|989898|1|9999050765|MR|Test|E|Lead 50765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050766|150766|989898|1|9999050766|MR|Test|E|Lead 50766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050767|150767|989898|1|9999050767|MR|Test|E|Lead 50767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050768|150768|989898|1|9999050768|MR|Test|E|Lead 50768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050769|150769|989898|1|9999050769|MR|Test|E|Lead 50769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050770|150770|989898|1|9999050770|MR|Test|E|Lead 50770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050771|150771|989898|1|9999050771|MR|Test|E|Lead 50771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050772|150772|989898|1|9999050772|MR|Test|E|Lead 50772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050773|150773|989898|1|9999050773|MR|Test|E|Lead 50773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050774|150774|989898|1|9999050774|MR|Test|E|Lead 50774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050775|150775|989898|1|9999050775|MR|Test|E|Lead 50775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050776|150776|989898|1|9999050776|MR|Test|E|Lead 50776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050777|150777|989898|1|9999050777|MR|Test|E|Lead 50777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050778|150778|989898|1|9999050778|MR|Test|E|Lead 50778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050779|150779|989898|1|9999050779|MR|Test|E|Lead 50779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050780|150780|989898|1|9999050780|MR|Test|E|Lead 50780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050781|150781|989898|1|9999050781|MR|Test|E|Lead 50781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050782|150782|989898|1|9999050782|MR|Test|E|Lead 50782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050783|150783|989898|1|9999050783|MR|Test|E|Lead 50783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050784|150784|989898|1|9999050784|MR|Test|E|Lead 50784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050785|150785|989898|1|9999050785|MR|Test|E|Lead 50785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050786|150786|989898|1|9999050786|MR|Test|E|Lead 50786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050787|150787|989898|1|9999050787|MR|Test|E|Lead 50787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050788|150788|989898|1|9999050788|MR|Test|E|Lead 50788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050789|150789|989898|1|9999050789|MR|Test|E|Lead 50789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050790|150790|989898|1|9999050790|MR|Test|E|Lead 50790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050791|150791|989898|1|9999050791|MR|Test|E|Lead 50791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050792|150792|989898|1|9999050792|MR|Test|E|Lead 50792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050793|150793|989898|1|9999050793|MR|Test|E|Lead 50793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050794|150794|989898|1|9999050794|MR|Test|E|Lead 50794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050795|150795|989898|1|9999050795|MR|Test|E|Lead 50795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050796|150796|989898|1|9999050796|MR|Test|E|Lead 50796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050797|150797|989898|1|9999050797|MR|Test|E|Lead 50797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050798|150798|989898|1|9999050798|MR|Test|E|Lead 50798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050799|150799|989898|1|9999050799|MR|Test|E|Lead 50799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050800|150800|989898|1|9999050800|MR|Test|E|Lead 50800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050801|150801|989898|1|9999050801|MR|Test|E|Lead 50801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050802|150802|989898|1|9999050802|MR|Test|E|Lead 50802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050803|150803|989898|1|9999050803|MR|Test|E|Lead 50803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050804|150804|989898|1|9999050804|MR|Test|E|Lead 50804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050805|150805|989898|1|9999050805|MR|Test|E|Lead 50805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050806|150806|989898|1|9999050806|MR|Test|E|Lead 50806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050807|150807|989898|1|9999050807|MR|Test|E|Lead 50807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050808|150808|989898|1|9999050808|MR|Test|E|Lead 50808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050809|150809|989898|1|9999050809|MR|Test|E|Lead 50809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050810|150810|989898|1|9999050810|MR|Test|E|Lead 50810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050811|150811|989898|1|9999050811|MR|Test|E|Lead 50811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050812|150812|989898|1|9999050812|MR|Test|E|Lead 50812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050813|150813|989898|1|9999050813|MR|Test|E|Lead 50813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050814|150814|989898|1|9999050814|MR|Test|E|Lead 50814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050815|150815|989898|1|9999050815|MR|Test|E|Lead 50815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050816|150816|989898|1|9999050816|MR|Test|E|Lead 50816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050817|150817|989898|1|9999050817|MR|Test|E|Lead 50817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050818|150818|989898|1|9999050818|MR|Test|E|Lead 50818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050819|150819|989898|1|9999050819|MR|Test|E|Lead 50819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050820|150820|989898|1|9999050820|MR|Test|E|Lead 50820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050821|150821|989898|1|9999050821|MR|Test|E|Lead 50821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050822|150822|989898|1|9999050822|MR|Test|E|Lead 50822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050823|150823|989898|1|9999050823|MR|Test|E|Lead 50823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050824|150824|989898|1|9999050824|MR|Test|E|Lead 50824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050825|150825|989898|1|9999050825|MR|Test|E|Lead 50825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050826|150826|989898|1|9999050826|MR|Test|E|Lead 50826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050827|150827|989898|1|9999050827|MR|Test|E|Lead 50827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050828|150828|989898|1|9999050828|MR|Test|E|Lead 50828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050829|150829|989898|1|9999050829|MR|Test|E|Lead 50829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050830|150830|989898|1|9999050830|MR|Test|E|Lead 50830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050831|150831|989898|1|9999050831|MR|Test|E|Lead 50831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050832|150832|989898|1|9999050832|MR|Test|E|Lead 50832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050833|150833|989898|1|9999050833|MR|Test|E|Lead 50833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050834|150834|989898|1|9999050834|MR|Test|E|Lead 50834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050835|150835|989898|1|9999050835|MR|Test|E|Lead 50835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050836|150836|989898|1|9999050836|MR|Test|E|Lead 50836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050837|150837|989898|1|9999050837|MR|Test|E|Lead 50837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050838|150838|989898|1|9999050838|MR|Test|E|Lead 50838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050839|150839|989898|1|9999050839|MR|Test|E|Lead 50839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050840|150840|989898|1|9999050840|MR|Test|E|Lead 50840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050841|150841|989898|1|9999050841|MR|Test|E|Lead 50841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050842|150842|989898|1|9999050842|MR|Test|E|Lead 50842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050843|150843|989898|1|9999050843|MR|Test|E|Lead 50843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050844|150844|989898|1|9999050844|MR|Test|E|Lead 50844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050845|150845|989898|1|9999050845|MR|Test|E|Lead 50845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050846|150846|989898|1|9999050846|MR|Test|E|Lead 50846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050847|150847|989898|1|9999050847|MR|Test|E|Lead 50847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050848|150848|989898|1|9999050848|MR|Test|E|Lead 50848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050849|150849|989898|1|9999050849|MR|Test|E|Lead 50849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050850|150850|989898|1|9999050850|MR|Test|E|Lead 50850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050851|150851|989898|1|9999050851|MR|Test|E|Lead 50851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050852|150852|989898|1|9999050852|MR|Test|E|Lead 50852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050853|150853|989898|1|9999050853|MR|Test|E|Lead 50853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050854|150854|989898|1|9999050854|MR|Test|E|Lead 50854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050855|150855|989898|1|9999050855|MR|Test|E|Lead 50855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050856|150856|989898|1|9999050856|MR|Test|E|Lead 50856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050857|150857|989898|1|9999050857|MR|Test|E|Lead 50857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050858|150858|989898|1|9999050858|MR|Test|E|Lead 50858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050859|150859|989898|1|9999050859|MR|Test|E|Lead 50859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050860|150860|989898|1|9999050860|MR|Test|E|Lead 50860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050861|150861|989898|1|9999050861|MR|Test|E|Lead 50861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050862|150862|989898|1|9999050862|MR|Test|E|Lead 50862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050863|150863|989898|1|9999050863|MR|Test|E|Lead 50863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050864|150864|989898|1|9999050864|MR|Test|E|Lead 50864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050865|150865|989898|1|9999050865|MR|Test|E|Lead 50865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050866|150866|989898|1|9999050866|MR|Test|E|Lead 50866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050867|150867|989898|1|9999050867|MR|Test|E|Lead 50867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050868|150868|989898|1|9999050868|MR|Test|E|Lead 50868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050869|150869|989898|1|9999050869|MR|Test|E|Lead 50869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050870|150870|989898|1|9999050870|MR|Test|E|Lead 50870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050871|150871|989898|1|9999050871|MR|Test|E|Lead 50871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050872|150872|989898|1|9999050872|MR|Test|E|Lead 50872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050873|150873|989898|1|9999050873|MR|Test|E|Lead 50873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050874|150874|989898|1|9999050874|MR|Test|E|Lead 50874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050875|150875|989898|1|9999050875|MR|Test|E|Lead 50875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050876|150876|989898|1|9999050876|MR|Test|E|Lead 50876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050877|150877|989898|1|9999050877|MR|Test|E|Lead 50877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050878|150878|989898|1|9999050878|MR|Test|E|Lead 50878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050879|150879|989898|1|9999050879|MR|Test|E|Lead 50879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050880|150880|989898|1|9999050880|MR|Test|E|Lead 50880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050881|150881|989898|1|9999050881|MR|Test|E|Lead 50881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050882|150882|989898|1|9999050882|MR|Test|E|Lead 50882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050883|150883|989898|1|9999050883|MR|Test|E|Lead 50883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050884|150884|989898|1|9999050884|MR|Test|E|Lead 50884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050885|150885|989898|1|9999050885|MR|Test|E|Lead 50885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050886|150886|989898|1|9999050886|MR|Test|E|Lead 50886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050887|150887|989898|1|9999050887|MR|Test|E|Lead 50887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050888|150888|989898|1|9999050888|MR|Test|E|Lead 50888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050889|150889|989898|1|9999050889|MR|Test|E|Lead 50889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050890|150890|989898|1|9999050890|MR|Test|E|Lead 50890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050891|150891|989898|1|9999050891|MR|Test|E|Lead 50891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050892|150892|989898|1|9999050892|MR|Test|E|Lead 50892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050893|150893|989898|1|9999050893|MR|Test|E|Lead 50893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050894|150894|989898|1|9999050894|MR|Test|E|Lead 50894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050895|150895|989898|1|9999050895|MR|Test|E|Lead 50895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050896|150896|989898|1|9999050896|MR|Test|E|Lead 50896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050897|150897|989898|1|9999050897|MR|Test|E|Lead 50897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050898|150898|989898|1|9999050898|MR|Test|E|Lead 50898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050899|150899|989898|1|9999050899|MR|Test|E|Lead 50899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050900|150900|989898|1|9999050900|MR|Test|E|Lead 50900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050901|150901|989898|1|9999050901|MR|Test|E|Lead 50901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050902|150902|989898|1|9999050902|MR|Test|E|Lead 50902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050903|150903|989898|1|9999050903|MR|Test|E|Lead 50903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050904|150904|989898|1|9999050904|MR|Test|E|Lead 50904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050905|150905|989898|1|9999050905|MR|Test|E|Lead 50905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050906|150906|989898|1|9999050906|MR|Test|E|Lead 50906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050907|150907|989898|1|9999050907|MR|Test|E|Lead 50907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050908|150908|989898|1|9999050908|MR|Test|E|Lead 50908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050909|150909|989898|1|9999050909|MR|Test|E|Lead 50909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050910|150910|989898|1|9999050910|MR|Test|E|Lead 50910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050911|150911|989898|1|9999050911|MR|Test|E|Lead 50911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050912|150912|989898|1|9999050912|MR|Test|E|Lead 50912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050913|150913|989898|1|9999050913|MR|Test|E|Lead 50913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050914|150914|989898|1|9999050914|MR|Test|E|Lead 50914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050915|150915|989898|1|9999050915|MR|Test|E|Lead 50915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050916|150916|989898|1|9999050916|MR|Test|E|Lead 50916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050917|150917|989898|1|9999050917|MR|Test|E|Lead 50917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050918|150918|989898|1|9999050918|MR|Test|E|Lead 50918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050919|150919|989898|1|9999050919|MR|Test|E|Lead 50919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050920|150920|989898|1|9999050920|MR|Test|E|Lead 50920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050921|150921|989898|1|9999050921|MR|Test|E|Lead 50921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050922|150922|989898|1|9999050922|MR|Test|E|Lead 50922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050923|150923|989898|1|9999050923|MR|Test|E|Lead 50923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050924|150924|989898|1|9999050924|MR|Test|E|Lead 50924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050925|150925|989898|1|9999050925|MR|Test|E|Lead 50925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050926|150926|989898|1|9999050926|MR|Test|E|Lead 50926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050927|150927|989898|1|9999050927|MR|Test|E|Lead 50927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050928|150928|989898|1|9999050928|MR|Test|E|Lead 50928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050929|150929|989898|1|9999050929|MR|Test|E|Lead 50929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050930|150930|989898|1|9999050930|MR|Test|E|Lead 50930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050931|150931|989898|1|9999050931|MR|Test|E|Lead 50931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050932|150932|989898|1|9999050932|MR|Test|E|Lead 50932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050933|150933|989898|1|9999050933|MR|Test|E|Lead 50933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050934|150934|989898|1|9999050934|MR|Test|E|Lead 50934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050935|150935|989898|1|9999050935|MR|Test|E|Lead 50935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050936|150936|989898|1|9999050936|MR|Test|E|Lead 50936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050937|150937|989898|1|9999050937|MR|Test|E|Lead 50937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050938|150938|989898|1|9999050938|MR|Test|E|Lead 50938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050939|150939|989898|1|9999050939|MR|Test|E|Lead 50939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050940|150940|989898|1|9999050940|MR|Test|E|Lead 50940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050941|150941|989898|1|9999050941|MR|Test|E|Lead 50941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050942|150942|989898|1|9999050942|MR|Test|E|Lead 50942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050943|150943|989898|1|9999050943|MR|Test|E|Lead 50943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050944|150944|989898|1|9999050944|MR|Test|E|Lead 50944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050945|150945|989898|1|9999050945|MR|Test|E|Lead 50945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050946|150946|989898|1|9999050946|MR|Test|E|Lead 50946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050947|150947|989898|1|9999050947|MR|Test|E|Lead 50947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050948|150948|989898|1|9999050948|MR|Test|E|Lead 50948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050949|150949|989898|1|9999050949|MR|Test|E|Lead 50949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050950|150950|989898|1|9999050950|MR|Test|E|Lead 50950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050951|150951|989898|1|9999050951|MR|Test|E|Lead 50951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050952|150952|989898|1|9999050952|MR|Test|E|Lead 50952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050953|150953|989898|1|9999050953|MR|Test|E|Lead 50953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050954|150954|989898|1|9999050954|MR|Test|E|Lead 50954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050955|150955|989898|1|9999050955|MR|Test|E|Lead 50955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050956|150956|989898|1|9999050956|MR|Test|E|Lead 50956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050957|150957|989898|1|9999050957|MR|Test|E|Lead 50957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050958|150958|989898|1|9999050958|MR|Test|E|Lead 50958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050959|150959|989898|1|9999050959|MR|Test|E|Lead 50959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050960|150960|989898|1|9999050960|MR|Test|E|Lead 50960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050961|150961|989898|1|9999050961|MR|Test|E|Lead 50961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050962|150962|989898|1|9999050962|MR|Test|E|Lead 50962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050963|150963|989898|1|9999050963|MR|Test|E|Lead 50963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050964|150964|989898|1|9999050964|MR|Test|E|Lead 50964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050965|150965|989898|1|9999050965|MR|Test|E|Lead 50965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050966|150966|989898|1|9999050966|MR|Test|E|Lead 50966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050967|150967|989898|1|9999050967|MR|Test|E|Lead 50967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050968|150968|989898|1|9999050968|MR|Test|E|Lead 50968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050969|150969|989898|1|9999050969|MR|Test|E|Lead 50969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050970|150970|989898|1|9999050970|MR|Test|E|Lead 50970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050971|150971|989898|1|9999050971|MR|Test|E|Lead 50971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050972|150972|989898|1|9999050972|MR|Test|E|Lead 50972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050973|150973|989898|1|9999050973|MR|Test|E|Lead 50973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050974|150974|989898|1|9999050974|MR|Test|E|Lead 50974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050975|150975|989898|1|9999050975|MR|Test|E|Lead 50975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050976|150976|989898|1|9999050976|MR|Test|E|Lead 50976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050977|150977|989898|1|9999050977|MR|Test|E|Lead 50977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050978|150978|989898|1|9999050978|MR|Test|E|Lead 50978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050979|150979|989898|1|9999050979|MR|Test|E|Lead 50979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050980|150980|989898|1|9999050980|MR|Test|E|Lead 50980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050981|150981|989898|1|9999050981|MR|Test|E|Lead 50981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050982|150982|989898|1|9999050982|MR|Test|E|Lead 50982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050983|150983|989898|1|9999050983|MR|Test|E|Lead 50983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050984|150984|989898|1|9999050984|MR|Test|E|Lead 50984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050985|150985|989898|1|9999050985|MR|Test|E|Lead 50985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050986|150986|989898|1|9999050986|MR|Test|E|Lead 50986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050987|150987|989898|1|9999050987|MR|Test|E|Lead 50987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050988|150988|989898|1|9999050988|MR|Test|E|Lead 50988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050989|150989|989898|1|9999050989|MR|Test|E|Lead 50989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050990|150990|989898|1|9999050990|MR|Test|E|Lead 50990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050991|150991|989898|1|9999050991|MR|Test|E|Lead 50991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050992|150992|989898|1|9999050992|MR|Test|E|Lead 50992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050993|150993|989898|1|9999050993|MR|Test|E|Lead 50993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050994|150994|989898|1|9999050994|MR|Test|E|Lead 50994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050995|150995|989898|1|9999050995|MR|Test|E|Lead 50995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050996|150996|989898|1|9999050996|MR|Test|E|Lead 50996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050997|150997|989898|1|9999050997|MR|Test|E|Lead 50997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050998|150998|989898|1|9999050998|MR|Test|E|Lead 50998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1050999|150999|989898|1|9999050999|MR|Test|E|Lead 50999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051000|151000|989898|1|9999051000|MR|Test|E|Lead 51000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051001|151001|989898|1|9999051001|MR|Test|E|Lead 51001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051002|151002|989898|1|9999051002|MR|Test|E|Lead 51002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051003|151003|989898|1|9999051003|MR|Test|E|Lead 51003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051004|151004|989898|1|9999051004|MR|Test|E|Lead 51004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051005|151005|989898|1|9999051005|MR|Test|E|Lead 51005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051006|151006|989898|1|9999051006|MR|Test|E|Lead 51006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051007|151007|989898|1|9999051007|MR|Test|E|Lead 51007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051008|151008|989898|1|9999051008|MR|Test|E|Lead 51008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051009|151009|989898|1|9999051009|MR|Test|E|Lead 51009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051010|151010|989898|1|9999051010|MR|Test|E|Lead 51010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051011|151011|989898|1|9999051011|MR|Test|E|Lead 51011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051012|151012|989898|1|9999051012|MR|Test|E|Lead 51012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051013|151013|989898|1|9999051013|MR|Test|E|Lead 51013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051014|151014|989898|1|9999051014|MR|Test|E|Lead 51014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051015|151015|989898|1|9999051015|MR|Test|E|Lead 51015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051016|151016|989898|1|9999051016|MR|Test|E|Lead 51016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051017|151017|989898|1|9999051017|MR|Test|E|Lead 51017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051018|151018|989898|1|9999051018|MR|Test|E|Lead 51018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051019|151019|989898|1|9999051019|MR|Test|E|Lead 51019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051020|151020|989898|1|9999051020|MR|Test|E|Lead 51020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051021|151021|989898|1|9999051021|MR|Test|E|Lead 51021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051022|151022|989898|1|9999051022|MR|Test|E|Lead 51022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051023|151023|989898|1|9999051023|MR|Test|E|Lead 51023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051024|151024|989898|1|9999051024|MR|Test|E|Lead 51024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051025|151025|989898|1|9999051025|MR|Test|E|Lead 51025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051026|151026|989898|1|9999051026|MR|Test|E|Lead 51026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051027|151027|989898|1|9999051027|MR|Test|E|Lead 51027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051028|151028|989898|1|9999051028|MR|Test|E|Lead 51028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051029|151029|989898|1|9999051029|MR|Test|E|Lead 51029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051030|151030|989898|1|9999051030|MR|Test|E|Lead 51030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051031|151031|989898|1|9999051031|MR|Test|E|Lead 51031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051032|151032|989898|1|9999051032|MR|Test|E|Lead 51032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051033|151033|989898|1|9999051033|MR|Test|E|Lead 51033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051034|151034|989898|1|9999051034|MR|Test|E|Lead 51034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051035|151035|989898|1|9999051035|MR|Test|E|Lead 51035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051036|151036|989898|1|9999051036|MR|Test|E|Lead 51036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051037|151037|989898|1|9999051037|MR|Test|E|Lead 51037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051038|151038|989898|1|9999051038|MR|Test|E|Lead 51038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051039|151039|989898|1|9999051039|MR|Test|E|Lead 51039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051040|151040|989898|1|9999051040|MR|Test|E|Lead 51040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051041|151041|989898|1|9999051041|MR|Test|E|Lead 51041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051042|151042|989898|1|9999051042|MR|Test|E|Lead 51042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051043|151043|989898|1|9999051043|MR|Test|E|Lead 51043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051044|151044|989898|1|9999051044|MR|Test|E|Lead 51044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051045|151045|989898|1|9999051045|MR|Test|E|Lead 51045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051046|151046|989898|1|9999051046|MR|Test|E|Lead 51046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051047|151047|989898|1|9999051047|MR|Test|E|Lead 51047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051048|151048|989898|1|9999051048|MR|Test|E|Lead 51048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051049|151049|989898|1|9999051049|MR|Test|E|Lead 51049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051050|151050|989898|1|9999051050|MR|Test|E|Lead 51050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051051|151051|989898|1|9999051051|MR|Test|E|Lead 51051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051052|151052|989898|1|9999051052|MR|Test|E|Lead 51052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051053|151053|989898|1|9999051053|MR|Test|E|Lead 51053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051054|151054|989898|1|9999051054|MR|Test|E|Lead 51054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051055|151055|989898|1|9999051055|MR|Test|E|Lead 51055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051056|151056|989898|1|9999051056|MR|Test|E|Lead 51056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051057|151057|989898|1|9999051057|MR|Test|E|Lead 51057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051058|151058|989898|1|9999051058|MR|Test|E|Lead 51058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051059|151059|989898|1|9999051059|MR|Test|E|Lead 51059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051060|151060|989898|1|9999051060|MR|Test|E|Lead 51060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051061|151061|989898|1|9999051061|MR|Test|E|Lead 51061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051062|151062|989898|1|9999051062|MR|Test|E|Lead 51062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051063|151063|989898|1|9999051063|MR|Test|E|Lead 51063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051064|151064|989898|1|9999051064|MR|Test|E|Lead 51064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051065|151065|989898|1|9999051065|MR|Test|E|Lead 51065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051066|151066|989898|1|9999051066|MR|Test|E|Lead 51066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051067|151067|989898|1|9999051067|MR|Test|E|Lead 51067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051068|151068|989898|1|9999051068|MR|Test|E|Lead 51068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051069|151069|989898|1|9999051069|MR|Test|E|Lead 51069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051070|151070|989898|1|9999051070|MR|Test|E|Lead 51070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051071|151071|989898|1|9999051071|MR|Test|E|Lead 51071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051072|151072|989898|1|9999051072|MR|Test|E|Lead 51072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051073|151073|989898|1|9999051073|MR|Test|E|Lead 51073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051074|151074|989898|1|9999051074|MR|Test|E|Lead 51074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051075|151075|989898|1|9999051075|MR|Test|E|Lead 51075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051076|151076|989898|1|9999051076|MR|Test|E|Lead 51076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051077|151077|989898|1|9999051077|MR|Test|E|Lead 51077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051078|151078|989898|1|9999051078|MR|Test|E|Lead 51078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051079|151079|989898|1|9999051079|MR|Test|E|Lead 51079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051080|151080|989898|1|9999051080|MR|Test|E|Lead 51080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051081|151081|989898|1|9999051081|MR|Test|E|Lead 51081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051082|151082|989898|1|9999051082|MR|Test|E|Lead 51082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051083|151083|989898|1|9999051083|MR|Test|E|Lead 51083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051084|151084|989898|1|9999051084|MR|Test|E|Lead 51084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051085|151085|989898|1|9999051085|MR|Test|E|Lead 51085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051086|151086|989898|1|9999051086|MR|Test|E|Lead 51086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051087|151087|989898|1|9999051087|MR|Test|E|Lead 51087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051088|151088|989898|1|9999051088|MR|Test|E|Lead 51088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051089|151089|989898|1|9999051089|MR|Test|E|Lead 51089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051090|151090|989898|1|9999051090|MR|Test|E|Lead 51090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051091|151091|989898|1|9999051091|MR|Test|E|Lead 51091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051092|151092|989898|1|9999051092|MR|Test|E|Lead 51092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051093|151093|989898|1|9999051093|MR|Test|E|Lead 51093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051094|151094|989898|1|9999051094|MR|Test|E|Lead 51094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051095|151095|989898|1|9999051095|MR|Test|E|Lead 51095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051096|151096|989898|1|9999051096|MR|Test|E|Lead 51096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051097|151097|989898|1|9999051097|MR|Test|E|Lead 51097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051098|151098|989898|1|9999051098|MR|Test|E|Lead 51098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051099|151099|989898|1|9999051099|MR|Test|E|Lead 51099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051100|151100|989898|1|9999051100|MR|Test|E|Lead 51100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051101|151101|989898|1|9999051101|MR|Test|E|Lead 51101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051102|151102|989898|1|9999051102|MR|Test|E|Lead 51102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051103|151103|989898|1|9999051103|MR|Test|E|Lead 51103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051104|151104|989898|1|9999051104|MR|Test|E|Lead 51104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051105|151105|989898|1|9999051105|MR|Test|E|Lead 51105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051106|151106|989898|1|9999051106|MR|Test|E|Lead 51106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051107|151107|989898|1|9999051107|MR|Test|E|Lead 51107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051108|151108|989898|1|9999051108|MR|Test|E|Lead 51108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051109|151109|989898|1|9999051109|MR|Test|E|Lead 51109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051110|151110|989898|1|9999051110|MR|Test|E|Lead 51110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051111|151111|989898|1|9999051111|MR|Test|E|Lead 51111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051112|151112|989898|1|9999051112|MR|Test|E|Lead 51112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051113|151113|989898|1|9999051113|MR|Test|E|Lead 51113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051114|151114|989898|1|9999051114|MR|Test|E|Lead 51114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051115|151115|989898|1|9999051115|MR|Test|E|Lead 51115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051116|151116|989898|1|9999051116|MR|Test|E|Lead 51116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051117|151117|989898|1|9999051117|MR|Test|E|Lead 51117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051118|151118|989898|1|9999051118|MR|Test|E|Lead 51118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051119|151119|989898|1|9999051119|MR|Test|E|Lead 51119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051120|151120|989898|1|9999051120|MR|Test|E|Lead 51120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051121|151121|989898|1|9999051121|MR|Test|E|Lead 51121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051122|151122|989898|1|9999051122|MR|Test|E|Lead 51122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051123|151123|989898|1|9999051123|MR|Test|E|Lead 51123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051124|151124|989898|1|9999051124|MR|Test|E|Lead 51124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051125|151125|989898|1|9999051125|MR|Test|E|Lead 51125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051126|151126|989898|1|9999051126|MR|Test|E|Lead 51126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051127|151127|989898|1|9999051127|MR|Test|E|Lead 51127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051128|151128|989898|1|9999051128|MR|Test|E|Lead 51128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051129|151129|989898|1|9999051129|MR|Test|E|Lead 51129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051130|151130|989898|1|9999051130|MR|Test|E|Lead 51130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051131|151131|989898|1|9999051131|MR|Test|E|Lead 51131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051132|151132|989898|1|9999051132|MR|Test|E|Lead 51132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051133|151133|989898|1|9999051133|MR|Test|E|Lead 51133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051134|151134|989898|1|9999051134|MR|Test|E|Lead 51134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051135|151135|989898|1|9999051135|MR|Test|E|Lead 51135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051136|151136|989898|1|9999051136|MR|Test|E|Lead 51136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051137|151137|989898|1|9999051137|MR|Test|E|Lead 51137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051138|151138|989898|1|9999051138|MR|Test|E|Lead 51138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051139|151139|989898|1|9999051139|MR|Test|E|Lead 51139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051140|151140|989898|1|9999051140|MR|Test|E|Lead 51140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051141|151141|989898|1|9999051141|MR|Test|E|Lead 51141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051142|151142|989898|1|9999051142|MR|Test|E|Lead 51142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051143|151143|989898|1|9999051143|MR|Test|E|Lead 51143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051144|151144|989898|1|9999051144|MR|Test|E|Lead 51144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051145|151145|989898|1|9999051145|MR|Test|E|Lead 51145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051146|151146|989898|1|9999051146|MR|Test|E|Lead 51146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051147|151147|989898|1|9999051147|MR|Test|E|Lead 51147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051148|151148|989898|1|9999051148|MR|Test|E|Lead 51148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051149|151149|989898|1|9999051149|MR|Test|E|Lead 51149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051150|151150|989898|1|9999051150|MR|Test|E|Lead 51150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051151|151151|989898|1|9999051151|MR|Test|E|Lead 51151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051152|151152|989898|1|9999051152|MR|Test|E|Lead 51152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051153|151153|989898|1|9999051153|MR|Test|E|Lead 51153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051154|151154|989898|1|9999051154|MR|Test|E|Lead 51154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051155|151155|989898|1|9999051155|MR|Test|E|Lead 51155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051156|151156|989898|1|9999051156|MR|Test|E|Lead 51156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051157|151157|989898|1|9999051157|MR|Test|E|Lead 51157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051158|151158|989898|1|9999051158|MR|Test|E|Lead 51158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051159|151159|989898|1|9999051159|MR|Test|E|Lead 51159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051160|151160|989898|1|9999051160|MR|Test|E|Lead 51160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051161|151161|989898|1|9999051161|MR|Test|E|Lead 51161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051162|151162|989898|1|9999051162|MR|Test|E|Lead 51162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051163|151163|989898|1|9999051163|MR|Test|E|Lead 51163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051164|151164|989898|1|9999051164|MR|Test|E|Lead 51164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051165|151165|989898|1|9999051165|MR|Test|E|Lead 51165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051166|151166|989898|1|9999051166|MR|Test|E|Lead 51166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051167|151167|989898|1|9999051167|MR|Test|E|Lead 51167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051168|151168|989898|1|9999051168|MR|Test|E|Lead 51168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051169|151169|989898|1|9999051169|MR|Test|E|Lead 51169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051170|151170|989898|1|9999051170|MR|Test|E|Lead 51170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051171|151171|989898|1|9999051171|MR|Test|E|Lead 51171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051172|151172|989898|1|9999051172|MR|Test|E|Lead 51172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051173|151173|989898|1|9999051173|MR|Test|E|Lead 51173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051174|151174|989898|1|9999051174|MR|Test|E|Lead 51174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051175|151175|989898|1|9999051175|MR|Test|E|Lead 51175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051176|151176|989898|1|9999051176|MR|Test|E|Lead 51176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051177|151177|989898|1|9999051177|MR|Test|E|Lead 51177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051178|151178|989898|1|9999051178|MR|Test|E|Lead 51178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051179|151179|989898|1|9999051179|MR|Test|E|Lead 51179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051180|151180|989898|1|9999051180|MR|Test|E|Lead 51180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051181|151181|989898|1|9999051181|MR|Test|E|Lead 51181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051182|151182|989898|1|9999051182|MR|Test|E|Lead 51182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051183|151183|989898|1|9999051183|MR|Test|E|Lead 51183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051184|151184|989898|1|9999051184|MR|Test|E|Lead 51184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051185|151185|989898|1|9999051185|MR|Test|E|Lead 51185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051186|151186|989898|1|9999051186|MR|Test|E|Lead 51186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051187|151187|989898|1|9999051187|MR|Test|E|Lead 51187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051188|151188|989898|1|9999051188|MR|Test|E|Lead 51188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051189|151189|989898|1|9999051189|MR|Test|E|Lead 51189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051190|151190|989898|1|9999051190|MR|Test|E|Lead 51190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051191|151191|989898|1|9999051191|MR|Test|E|Lead 51191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051192|151192|989898|1|9999051192|MR|Test|E|Lead 51192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051193|151193|989898|1|9999051193|MR|Test|E|Lead 51193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051194|151194|989898|1|9999051194|MR|Test|E|Lead 51194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051195|151195|989898|1|9999051195|MR|Test|E|Lead 51195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051196|151196|989898|1|9999051196|MR|Test|E|Lead 51196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051197|151197|989898|1|9999051197|MR|Test|E|Lead 51197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051198|151198|989898|1|9999051198|MR|Test|E|Lead 51198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051199|151199|989898|1|9999051199|MR|Test|E|Lead 51199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051200|151200|989898|1|9999051200|MR|Test|E|Lead 51200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051201|151201|989898|1|9999051201|MR|Test|E|Lead 51201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051202|151202|989898|1|9999051202|MR|Test|E|Lead 51202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051203|151203|989898|1|9999051203|MR|Test|E|Lead 51203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051204|151204|989898|1|9999051204|MR|Test|E|Lead 51204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051205|151205|989898|1|9999051205|MR|Test|E|Lead 51205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051206|151206|989898|1|9999051206|MR|Test|E|Lead 51206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051207|151207|989898|1|9999051207|MR|Test|E|Lead 51207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051208|151208|989898|1|9999051208|MR|Test|E|Lead 51208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051209|151209|989898|1|9999051209|MR|Test|E|Lead 51209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051210|151210|989898|1|9999051210|MR|Test|E|Lead 51210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051211|151211|989898|1|9999051211|MR|Test|E|Lead 51211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051212|151212|989898|1|9999051212|MR|Test|E|Lead 51212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051213|151213|989898|1|9999051213|MR|Test|E|Lead 51213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051214|151214|989898|1|9999051214|MR|Test|E|Lead 51214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051215|151215|989898|1|9999051215|MR|Test|E|Lead 51215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051216|151216|989898|1|9999051216|MR|Test|E|Lead 51216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051217|151217|989898|1|9999051217|MR|Test|E|Lead 51217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051218|151218|989898|1|9999051218|MR|Test|E|Lead 51218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051219|151219|989898|1|9999051219|MR|Test|E|Lead 51219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051220|151220|989898|1|9999051220|MR|Test|E|Lead 51220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051221|151221|989898|1|9999051221|MR|Test|E|Lead 51221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051222|151222|989898|1|9999051222|MR|Test|E|Lead 51222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051223|151223|989898|1|9999051223|MR|Test|E|Lead 51223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051224|151224|989898|1|9999051224|MR|Test|E|Lead 51224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051225|151225|989898|1|9999051225|MR|Test|E|Lead 51225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051226|151226|989898|1|9999051226|MR|Test|E|Lead 51226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051227|151227|989898|1|9999051227|MR|Test|E|Lead 51227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051228|151228|989898|1|9999051228|MR|Test|E|Lead 51228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051229|151229|989898|1|9999051229|MR|Test|E|Lead 51229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051230|151230|989898|1|9999051230|MR|Test|E|Lead 51230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051231|151231|989898|1|9999051231|MR|Test|E|Lead 51231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051232|151232|989898|1|9999051232|MR|Test|E|Lead 51232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051233|151233|989898|1|9999051233|MR|Test|E|Lead 51233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051234|151234|989898|1|9999051234|MR|Test|E|Lead 51234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051235|151235|989898|1|9999051235|MR|Test|E|Lead 51235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051236|151236|989898|1|9999051236|MR|Test|E|Lead 51236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051237|151237|989898|1|9999051237|MR|Test|E|Lead 51237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051238|151238|989898|1|9999051238|MR|Test|E|Lead 51238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051239|151239|989898|1|9999051239|MR|Test|E|Lead 51239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051240|151240|989898|1|9999051240|MR|Test|E|Lead 51240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051241|151241|989898|1|9999051241|MR|Test|E|Lead 51241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051242|151242|989898|1|9999051242|MR|Test|E|Lead 51242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051243|151243|989898|1|9999051243|MR|Test|E|Lead 51243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051244|151244|989898|1|9999051244|MR|Test|E|Lead 51244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051245|151245|989898|1|9999051245|MR|Test|E|Lead 51245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051246|151246|989898|1|9999051246|MR|Test|E|Lead 51246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051247|151247|989898|1|9999051247|MR|Test|E|Lead 51247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051248|151248|989898|1|9999051248|MR|Test|E|Lead 51248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051249|151249|989898|1|9999051249|MR|Test|E|Lead 51249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051250|151250|989898|1|9999051250|MR|Test|E|Lead 51250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051251|151251|989898|1|9999051251|MR|Test|E|Lead 51251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051252|151252|989898|1|9999051252|MR|Test|E|Lead 51252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051253|151253|989898|1|9999051253|MR|Test|E|Lead 51253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051254|151254|989898|1|9999051254|MR|Test|E|Lead 51254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051255|151255|989898|1|9999051255|MR|Test|E|Lead 51255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051256|151256|989898|1|9999051256|MR|Test|E|Lead 51256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051257|151257|989898|1|9999051257|MR|Test|E|Lead 51257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051258|151258|989898|1|9999051258|MR|Test|E|Lead 51258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051259|151259|989898|1|9999051259|MR|Test|E|Lead 51259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051260|151260|989898|1|9999051260|MR|Test|E|Lead 51260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051261|151261|989898|1|9999051261|MR|Test|E|Lead 51261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051262|151262|989898|1|9999051262|MR|Test|E|Lead 51262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051263|151263|989898|1|9999051263|MR|Test|E|Lead 51263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051264|151264|989898|1|9999051264|MR|Test|E|Lead 51264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051265|151265|989898|1|9999051265|MR|Test|E|Lead 51265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051266|151266|989898|1|9999051266|MR|Test|E|Lead 51266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051267|151267|989898|1|9999051267|MR|Test|E|Lead 51267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051268|151268|989898|1|9999051268|MR|Test|E|Lead 51268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051269|151269|989898|1|9999051269|MR|Test|E|Lead 51269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051270|151270|989898|1|9999051270|MR|Test|E|Lead 51270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051271|151271|989898|1|9999051271|MR|Test|E|Lead 51271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051272|151272|989898|1|9999051272|MR|Test|E|Lead 51272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051273|151273|989898|1|9999051273|MR|Test|E|Lead 51273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051274|151274|989898|1|9999051274|MR|Test|E|Lead 51274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051275|151275|989898|1|9999051275|MR|Test|E|Lead 51275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051276|151276|989898|1|9999051276|MR|Test|E|Lead 51276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051277|151277|989898|1|9999051277|MR|Test|E|Lead 51277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051278|151278|989898|1|9999051278|MR|Test|E|Lead 51278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051279|151279|989898|1|9999051279|MR|Test|E|Lead 51279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051280|151280|989898|1|9999051280|MR|Test|E|Lead 51280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051281|151281|989898|1|9999051281|MR|Test|E|Lead 51281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051282|151282|989898|1|9999051282|MR|Test|E|Lead 51282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051283|151283|989898|1|9999051283|MR|Test|E|Lead 51283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051284|151284|989898|1|9999051284|MR|Test|E|Lead 51284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051285|151285|989898|1|9999051285|MR|Test|E|Lead 51285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051286|151286|989898|1|9999051286|MR|Test|E|Lead 51286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051287|151287|989898|1|9999051287|MR|Test|E|Lead 51287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051288|151288|989898|1|9999051288|MR|Test|E|Lead 51288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051289|151289|989898|1|9999051289|MR|Test|E|Lead 51289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051290|151290|989898|1|9999051290|MR|Test|E|Lead 51290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051291|151291|989898|1|9999051291|MR|Test|E|Lead 51291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051292|151292|989898|1|9999051292|MR|Test|E|Lead 51292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051293|151293|989898|1|9999051293|MR|Test|E|Lead 51293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051294|151294|989898|1|9999051294|MR|Test|E|Lead 51294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051295|151295|989898|1|9999051295|MR|Test|E|Lead 51295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051296|151296|989898|1|9999051296|MR|Test|E|Lead 51296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051297|151297|989898|1|9999051297|MR|Test|E|Lead 51297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051298|151298|989898|1|9999051298|MR|Test|E|Lead 51298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051299|151299|989898|1|9999051299|MR|Test|E|Lead 51299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051300|151300|989898|1|9999051300|MR|Test|E|Lead 51300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051301|151301|989898|1|9999051301|MR|Test|E|Lead 51301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051302|151302|989898|1|9999051302|MR|Test|E|Lead 51302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051303|151303|989898|1|9999051303|MR|Test|E|Lead 51303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051304|151304|989898|1|9999051304|MR|Test|E|Lead 51304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051305|151305|989898|1|9999051305|MR|Test|E|Lead 51305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051306|151306|989898|1|9999051306|MR|Test|E|Lead 51306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051307|151307|989898|1|9999051307|MR|Test|E|Lead 51307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051308|151308|989898|1|9999051308|MR|Test|E|Lead 51308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051309|151309|989898|1|9999051309|MR|Test|E|Lead 51309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051310|151310|989898|1|9999051310|MR|Test|E|Lead 51310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051311|151311|989898|1|9999051311|MR|Test|E|Lead 51311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051312|151312|989898|1|9999051312|MR|Test|E|Lead 51312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051313|151313|989898|1|9999051313|MR|Test|E|Lead 51313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051314|151314|989898|1|9999051314|MR|Test|E|Lead 51314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051315|151315|989898|1|9999051315|MR|Test|E|Lead 51315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051316|151316|989898|1|9999051316|MR|Test|E|Lead 51316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051317|151317|989898|1|9999051317|MR|Test|E|Lead 51317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051318|151318|989898|1|9999051318|MR|Test|E|Lead 51318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051319|151319|989898|1|9999051319|MR|Test|E|Lead 51319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051320|151320|989898|1|9999051320|MR|Test|E|Lead 51320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051321|151321|989898|1|9999051321|MR|Test|E|Lead 51321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051322|151322|989898|1|9999051322|MR|Test|E|Lead 51322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051323|151323|989898|1|9999051323|MR|Test|E|Lead 51323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051324|151324|989898|1|9999051324|MR|Test|E|Lead 51324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051325|151325|989898|1|9999051325|MR|Test|E|Lead 51325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051326|151326|989898|1|9999051326|MR|Test|E|Lead 51326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051327|151327|989898|1|9999051327|MR|Test|E|Lead 51327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051328|151328|989898|1|9999051328|MR|Test|E|Lead 51328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051329|151329|989898|1|9999051329|MR|Test|E|Lead 51329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051330|151330|989898|1|9999051330|MR|Test|E|Lead 51330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051331|151331|989898|1|9999051331|MR|Test|E|Lead 51331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051332|151332|989898|1|9999051332|MR|Test|E|Lead 51332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051333|151333|989898|1|9999051333|MR|Test|E|Lead 51333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051334|151334|989898|1|9999051334|MR|Test|E|Lead 51334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051335|151335|989898|1|9999051335|MR|Test|E|Lead 51335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051336|151336|989898|1|9999051336|MR|Test|E|Lead 51336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051337|151337|989898|1|9999051337|MR|Test|E|Lead 51337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051338|151338|989898|1|9999051338|MR|Test|E|Lead 51338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051339|151339|989898|1|9999051339|MR|Test|E|Lead 51339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051340|151340|989898|1|9999051340|MR|Test|E|Lead 51340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051341|151341|989898|1|9999051341|MR|Test|E|Lead 51341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051342|151342|989898|1|9999051342|MR|Test|E|Lead 51342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051343|151343|989898|1|9999051343|MR|Test|E|Lead 51343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051344|151344|989898|1|9999051344|MR|Test|E|Lead 51344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051345|151345|989898|1|9999051345|MR|Test|E|Lead 51345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051346|151346|989898|1|9999051346|MR|Test|E|Lead 51346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051347|151347|989898|1|9999051347|MR|Test|E|Lead 51347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051348|151348|989898|1|9999051348|MR|Test|E|Lead 51348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051349|151349|989898|1|9999051349|MR|Test|E|Lead 51349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051350|151350|989898|1|9999051350|MR|Test|E|Lead 51350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051351|151351|989898|1|9999051351|MR|Test|E|Lead 51351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051352|151352|989898|1|9999051352|MR|Test|E|Lead 51352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051353|151353|989898|1|9999051353|MR|Test|E|Lead 51353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051354|151354|989898|1|9999051354|MR|Test|E|Lead 51354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051355|151355|989898|1|9999051355|MR|Test|E|Lead 51355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051356|151356|989898|1|9999051356|MR|Test|E|Lead 51356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051357|151357|989898|1|9999051357|MR|Test|E|Lead 51357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051358|151358|989898|1|9999051358|MR|Test|E|Lead 51358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051359|151359|989898|1|9999051359|MR|Test|E|Lead 51359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051360|151360|989898|1|9999051360|MR|Test|E|Lead 51360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051361|151361|989898|1|9999051361|MR|Test|E|Lead 51361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051362|151362|989898|1|9999051362|MR|Test|E|Lead 51362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051363|151363|989898|1|9999051363|MR|Test|E|Lead 51363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051364|151364|989898|1|9999051364|MR|Test|E|Lead 51364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051365|151365|989898|1|9999051365|MR|Test|E|Lead 51365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051366|151366|989898|1|9999051366|MR|Test|E|Lead 51366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051367|151367|989898|1|9999051367|MR|Test|E|Lead 51367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051368|151368|989898|1|9999051368|MR|Test|E|Lead 51368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051369|151369|989898|1|9999051369|MR|Test|E|Lead 51369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051370|151370|989898|1|9999051370|MR|Test|E|Lead 51370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051371|151371|989898|1|9999051371|MR|Test|E|Lead 51371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051372|151372|989898|1|9999051372|MR|Test|E|Lead 51372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051373|151373|989898|1|9999051373|MR|Test|E|Lead 51373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051374|151374|989898|1|9999051374|MR|Test|E|Lead 51374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051375|151375|989898|1|9999051375|MR|Test|E|Lead 51375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051376|151376|989898|1|9999051376|MR|Test|E|Lead 51376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051377|151377|989898|1|9999051377|MR|Test|E|Lead 51377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051378|151378|989898|1|9999051378|MR|Test|E|Lead 51378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051379|151379|989898|1|9999051379|MR|Test|E|Lead 51379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051380|151380|989898|1|9999051380|MR|Test|E|Lead 51380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051381|151381|989898|1|9999051381|MR|Test|E|Lead 51381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051382|151382|989898|1|9999051382|MR|Test|E|Lead 51382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051383|151383|989898|1|9999051383|MR|Test|E|Lead 51383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051384|151384|989898|1|9999051384|MR|Test|E|Lead 51384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051385|151385|989898|1|9999051385|MR|Test|E|Lead 51385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051386|151386|989898|1|9999051386|MR|Test|E|Lead 51386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051387|151387|989898|1|9999051387|MR|Test|E|Lead 51387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051388|151388|989898|1|9999051388|MR|Test|E|Lead 51388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051389|151389|989898|1|9999051389|MR|Test|E|Lead 51389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051390|151390|989898|1|9999051390|MR|Test|E|Lead 51390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051391|151391|989898|1|9999051391|MR|Test|E|Lead 51391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051392|151392|989898|1|9999051392|MR|Test|E|Lead 51392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051393|151393|989898|1|9999051393|MR|Test|E|Lead 51393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051394|151394|989898|1|9999051394|MR|Test|E|Lead 51394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051395|151395|989898|1|9999051395|MR|Test|E|Lead 51395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051396|151396|989898|1|9999051396|MR|Test|E|Lead 51396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051397|151397|989898|1|9999051397|MR|Test|E|Lead 51397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051398|151398|989898|1|9999051398|MR|Test|E|Lead 51398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051399|151399|989898|1|9999051399|MR|Test|E|Lead 51399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051400|151400|989898|1|9999051400|MR|Test|E|Lead 51400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051401|151401|989898|1|9999051401|MR|Test|E|Lead 51401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051402|151402|989898|1|9999051402|MR|Test|E|Lead 51402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051403|151403|989898|1|9999051403|MR|Test|E|Lead 51403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051404|151404|989898|1|9999051404|MR|Test|E|Lead 51404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051405|151405|989898|1|9999051405|MR|Test|E|Lead 51405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051406|151406|989898|1|9999051406|MR|Test|E|Lead 51406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051407|151407|989898|1|9999051407|MR|Test|E|Lead 51407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051408|151408|989898|1|9999051408|MR|Test|E|Lead 51408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051409|151409|989898|1|9999051409|MR|Test|E|Lead 51409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051410|151410|989898|1|9999051410|MR|Test|E|Lead 51410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051411|151411|989898|1|9999051411|MR|Test|E|Lead 51411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051412|151412|989898|1|9999051412|MR|Test|E|Lead 51412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051413|151413|989898|1|9999051413|MR|Test|E|Lead 51413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051414|151414|989898|1|9999051414|MR|Test|E|Lead 51414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051415|151415|989898|1|9999051415|MR|Test|E|Lead 51415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051416|151416|989898|1|9999051416|MR|Test|E|Lead 51416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051417|151417|989898|1|9999051417|MR|Test|E|Lead 51417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051418|151418|989898|1|9999051418|MR|Test|E|Lead 51418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051419|151419|989898|1|9999051419|MR|Test|E|Lead 51419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051420|151420|989898|1|9999051420|MR|Test|E|Lead 51420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051421|151421|989898|1|9999051421|MR|Test|E|Lead 51421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051422|151422|989898|1|9999051422|MR|Test|E|Lead 51422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051423|151423|989898|1|9999051423|MR|Test|E|Lead 51423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051424|151424|989898|1|9999051424|MR|Test|E|Lead 51424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051425|151425|989898|1|9999051425|MR|Test|E|Lead 51425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051426|151426|989898|1|9999051426|MR|Test|E|Lead 51426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051427|151427|989898|1|9999051427|MR|Test|E|Lead 51427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051428|151428|989898|1|9999051428|MR|Test|E|Lead 51428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051429|151429|989898|1|9999051429|MR|Test|E|Lead 51429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051430|151430|989898|1|9999051430|MR|Test|E|Lead 51430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051431|151431|989898|1|9999051431|MR|Test|E|Lead 51431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051432|151432|989898|1|9999051432|MR|Test|E|Lead 51432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051433|151433|989898|1|9999051433|MR|Test|E|Lead 51433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051434|151434|989898|1|9999051434|MR|Test|E|Lead 51434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051435|151435|989898|1|9999051435|MR|Test|E|Lead 51435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051436|151436|989898|1|9999051436|MR|Test|E|Lead 51436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051437|151437|989898|1|9999051437|MR|Test|E|Lead 51437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051438|151438|989898|1|9999051438|MR|Test|E|Lead 51438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051439|151439|989898|1|9999051439|MR|Test|E|Lead 51439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051440|151440|989898|1|9999051440|MR|Test|E|Lead 51440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051441|151441|989898|1|9999051441|MR|Test|E|Lead 51441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051442|151442|989898|1|9999051442|MR|Test|E|Lead 51442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051443|151443|989898|1|9999051443|MR|Test|E|Lead 51443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051444|151444|989898|1|9999051444|MR|Test|E|Lead 51444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051445|151445|989898|1|9999051445|MR|Test|E|Lead 51445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051446|151446|989898|1|9999051446|MR|Test|E|Lead 51446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051447|151447|989898|1|9999051447|MR|Test|E|Lead 51447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051448|151448|989898|1|9999051448|MR|Test|E|Lead 51448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051449|151449|989898|1|9999051449|MR|Test|E|Lead 51449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051450|151450|989898|1|9999051450|MR|Test|E|Lead 51450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051451|151451|989898|1|9999051451|MR|Test|E|Lead 51451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051452|151452|989898|1|9999051452|MR|Test|E|Lead 51452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051453|151453|989898|1|9999051453|MR|Test|E|Lead 51453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051454|151454|989898|1|9999051454|MR|Test|E|Lead 51454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051455|151455|989898|1|9999051455|MR|Test|E|Lead 51455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051456|151456|989898|1|9999051456|MR|Test|E|Lead 51456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051457|151457|989898|1|9999051457|MR|Test|E|Lead 51457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051458|151458|989898|1|9999051458|MR|Test|E|Lead 51458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051459|151459|989898|1|9999051459|MR|Test|E|Lead 51459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051460|151460|989898|1|9999051460|MR|Test|E|Lead 51460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051461|151461|989898|1|9999051461|MR|Test|E|Lead 51461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051462|151462|989898|1|9999051462|MR|Test|E|Lead 51462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051463|151463|989898|1|9999051463|MR|Test|E|Lead 51463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051464|151464|989898|1|9999051464|MR|Test|E|Lead 51464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051465|151465|989898|1|9999051465|MR|Test|E|Lead 51465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051466|151466|989898|1|9999051466|MR|Test|E|Lead 51466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051467|151467|989898|1|9999051467|MR|Test|E|Lead 51467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051468|151468|989898|1|9999051468|MR|Test|E|Lead 51468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051469|151469|989898|1|9999051469|MR|Test|E|Lead 51469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051470|151470|989898|1|9999051470|MR|Test|E|Lead 51470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051471|151471|989898|1|9999051471|MR|Test|E|Lead 51471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051472|151472|989898|1|9999051472|MR|Test|E|Lead 51472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051473|151473|989898|1|9999051473|MR|Test|E|Lead 51473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051474|151474|989898|1|9999051474|MR|Test|E|Lead 51474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051475|151475|989898|1|9999051475|MR|Test|E|Lead 51475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051476|151476|989898|1|9999051476|MR|Test|E|Lead 51476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051477|151477|989898|1|9999051477|MR|Test|E|Lead 51477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051478|151478|989898|1|9999051478|MR|Test|E|Lead 51478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051479|151479|989898|1|9999051479|MR|Test|E|Lead 51479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051480|151480|989898|1|9999051480|MR|Test|E|Lead 51480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051481|151481|989898|1|9999051481|MR|Test|E|Lead 51481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051482|151482|989898|1|9999051482|MR|Test|E|Lead 51482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051483|151483|989898|1|9999051483|MR|Test|E|Lead 51483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051484|151484|989898|1|9999051484|MR|Test|E|Lead 51484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051485|151485|989898|1|9999051485|MR|Test|E|Lead 51485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051486|151486|989898|1|9999051486|MR|Test|E|Lead 51486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051487|151487|989898|1|9999051487|MR|Test|E|Lead 51487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051488|151488|989898|1|9999051488|MR|Test|E|Lead 51488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051489|151489|989898|1|9999051489|MR|Test|E|Lead 51489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051490|151490|989898|1|9999051490|MR|Test|E|Lead 51490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051491|151491|989898|1|9999051491|MR|Test|E|Lead 51491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051492|151492|989898|1|9999051492|MR|Test|E|Lead 51492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051493|151493|989898|1|9999051493|MR|Test|E|Lead 51493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051494|151494|989898|1|9999051494|MR|Test|E|Lead 51494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051495|151495|989898|1|9999051495|MR|Test|E|Lead 51495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051496|151496|989898|1|9999051496|MR|Test|E|Lead 51496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051497|151497|989898|1|9999051497|MR|Test|E|Lead 51497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051498|151498|989898|1|9999051498|MR|Test|E|Lead 51498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051499|151499|989898|1|9999051499|MR|Test|E|Lead 51499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051500|151500|989898|1|9999051500|MR|Test|E|Lead 51500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051501|151501|989898|1|9999051501|MR|Test|E|Lead 51501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051502|151502|989898|1|9999051502|MR|Test|E|Lead 51502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051503|151503|989898|1|9999051503|MR|Test|E|Lead 51503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051504|151504|989898|1|9999051504|MR|Test|E|Lead 51504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051505|151505|989898|1|9999051505|MR|Test|E|Lead 51505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051506|151506|989898|1|9999051506|MR|Test|E|Lead 51506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051507|151507|989898|1|9999051507|MR|Test|E|Lead 51507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051508|151508|989898|1|9999051508|MR|Test|E|Lead 51508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051509|151509|989898|1|9999051509|MR|Test|E|Lead 51509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051510|151510|989898|1|9999051510|MR|Test|E|Lead 51510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051511|151511|989898|1|9999051511|MR|Test|E|Lead 51511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051512|151512|989898|1|9999051512|MR|Test|E|Lead 51512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051513|151513|989898|1|9999051513|MR|Test|E|Lead 51513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051514|151514|989898|1|9999051514|MR|Test|E|Lead 51514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051515|151515|989898|1|9999051515|MR|Test|E|Lead 51515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051516|151516|989898|1|9999051516|MR|Test|E|Lead 51516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051517|151517|989898|1|9999051517|MR|Test|E|Lead 51517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051518|151518|989898|1|9999051518|MR|Test|E|Lead 51518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051519|151519|989898|1|9999051519|MR|Test|E|Lead 51519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051520|151520|989898|1|9999051520|MR|Test|E|Lead 51520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051521|151521|989898|1|9999051521|MR|Test|E|Lead 51521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051522|151522|989898|1|9999051522|MR|Test|E|Lead 51522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051523|151523|989898|1|9999051523|MR|Test|E|Lead 51523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051524|151524|989898|1|9999051524|MR|Test|E|Lead 51524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051525|151525|989898|1|9999051525|MR|Test|E|Lead 51525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051526|151526|989898|1|9999051526|MR|Test|E|Lead 51526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051527|151527|989898|1|9999051527|MR|Test|E|Lead 51527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051528|151528|989898|1|9999051528|MR|Test|E|Lead 51528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051529|151529|989898|1|9999051529|MR|Test|E|Lead 51529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051530|151530|989898|1|9999051530|MR|Test|E|Lead 51530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051531|151531|989898|1|9999051531|MR|Test|E|Lead 51531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051532|151532|989898|1|9999051532|MR|Test|E|Lead 51532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051533|151533|989898|1|9999051533|MR|Test|E|Lead 51533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051534|151534|989898|1|9999051534|MR|Test|E|Lead 51534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051535|151535|989898|1|9999051535|MR|Test|E|Lead 51535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051536|151536|989898|1|9999051536|MR|Test|E|Lead 51536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051537|151537|989898|1|9999051537|MR|Test|E|Lead 51537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051538|151538|989898|1|9999051538|MR|Test|E|Lead 51538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051539|151539|989898|1|9999051539|MR|Test|E|Lead 51539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051540|151540|989898|1|9999051540|MR|Test|E|Lead 51540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051541|151541|989898|1|9999051541|MR|Test|E|Lead 51541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051542|151542|989898|1|9999051542|MR|Test|E|Lead 51542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051543|151543|989898|1|9999051543|MR|Test|E|Lead 51543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051544|151544|989898|1|9999051544|MR|Test|E|Lead 51544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051545|151545|989898|1|9999051545|MR|Test|E|Lead 51545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051546|151546|989898|1|9999051546|MR|Test|E|Lead 51546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051547|151547|989898|1|9999051547|MR|Test|E|Lead 51547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051548|151548|989898|1|9999051548|MR|Test|E|Lead 51548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051549|151549|989898|1|9999051549|MR|Test|E|Lead 51549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051550|151550|989898|1|9999051550|MR|Test|E|Lead 51550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051551|151551|989898|1|9999051551|MR|Test|E|Lead 51551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051552|151552|989898|1|9999051552|MR|Test|E|Lead 51552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051553|151553|989898|1|9999051553|MR|Test|E|Lead 51553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051554|151554|989898|1|9999051554|MR|Test|E|Lead 51554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051555|151555|989898|1|9999051555|MR|Test|E|Lead 51555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051556|151556|989898|1|9999051556|MR|Test|E|Lead 51556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051557|151557|989898|1|9999051557|MR|Test|E|Lead 51557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051558|151558|989898|1|9999051558|MR|Test|E|Lead 51558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051559|151559|989898|1|9999051559|MR|Test|E|Lead 51559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051560|151560|989898|1|9999051560|MR|Test|E|Lead 51560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051561|151561|989898|1|9999051561|MR|Test|E|Lead 51561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051562|151562|989898|1|9999051562|MR|Test|E|Lead 51562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051563|151563|989898|1|9999051563|MR|Test|E|Lead 51563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051564|151564|989898|1|9999051564|MR|Test|E|Lead 51564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051565|151565|989898|1|9999051565|MR|Test|E|Lead 51565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051566|151566|989898|1|9999051566|MR|Test|E|Lead 51566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051567|151567|989898|1|9999051567|MR|Test|E|Lead 51567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051568|151568|989898|1|9999051568|MR|Test|E|Lead 51568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051569|151569|989898|1|9999051569|MR|Test|E|Lead 51569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051570|151570|989898|1|9999051570|MR|Test|E|Lead 51570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051571|151571|989898|1|9999051571|MR|Test|E|Lead 51571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051572|151572|989898|1|9999051572|MR|Test|E|Lead 51572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051573|151573|989898|1|9999051573|MR|Test|E|Lead 51573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051574|151574|989898|1|9999051574|MR|Test|E|Lead 51574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051575|151575|989898|1|9999051575|MR|Test|E|Lead 51575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051576|151576|989898|1|9999051576|MR|Test|E|Lead 51576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051577|151577|989898|1|9999051577|MR|Test|E|Lead 51577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051578|151578|989898|1|9999051578|MR|Test|E|Lead 51578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051579|151579|989898|1|9999051579|MR|Test|E|Lead 51579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051580|151580|989898|1|9999051580|MR|Test|E|Lead 51580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051581|151581|989898|1|9999051581|MR|Test|E|Lead 51581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051582|151582|989898|1|9999051582|MR|Test|E|Lead 51582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051583|151583|989898|1|9999051583|MR|Test|E|Lead 51583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051584|151584|989898|1|9999051584|MR|Test|E|Lead 51584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051585|151585|989898|1|9999051585|MR|Test|E|Lead 51585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051586|151586|989898|1|9999051586|MR|Test|E|Lead 51586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051587|151587|989898|1|9999051587|MR|Test|E|Lead 51587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051588|151588|989898|1|9999051588|MR|Test|E|Lead 51588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051589|151589|989898|1|9999051589|MR|Test|E|Lead 51589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051590|151590|989898|1|9999051590|MR|Test|E|Lead 51590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051591|151591|989898|1|9999051591|MR|Test|E|Lead 51591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051592|151592|989898|1|9999051592|MR|Test|E|Lead 51592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051593|151593|989898|1|9999051593|MR|Test|E|Lead 51593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051594|151594|989898|1|9999051594|MR|Test|E|Lead 51594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051595|151595|989898|1|9999051595|MR|Test|E|Lead 51595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051596|151596|989898|1|9999051596|MR|Test|E|Lead 51596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051597|151597|989898|1|9999051597|MR|Test|E|Lead 51597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051598|151598|989898|1|9999051598|MR|Test|E|Lead 51598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051599|151599|989898|1|9999051599|MR|Test|E|Lead 51599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051600|151600|989898|1|9999051600|MR|Test|E|Lead 51600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051601|151601|989898|1|9999051601|MR|Test|E|Lead 51601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051602|151602|989898|1|9999051602|MR|Test|E|Lead 51602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051603|151603|989898|1|9999051603|MR|Test|E|Lead 51603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051604|151604|989898|1|9999051604|MR|Test|E|Lead 51604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051605|151605|989898|1|9999051605|MR|Test|E|Lead 51605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051606|151606|989898|1|9999051606|MR|Test|E|Lead 51606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051607|151607|989898|1|9999051607|MR|Test|E|Lead 51607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051608|151608|989898|1|9999051608|MR|Test|E|Lead 51608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051609|151609|989898|1|9999051609|MR|Test|E|Lead 51609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051610|151610|989898|1|9999051610|MR|Test|E|Lead 51610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051611|151611|989898|1|9999051611|MR|Test|E|Lead 51611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051612|151612|989898|1|9999051612|MR|Test|E|Lead 51612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051613|151613|989898|1|9999051613|MR|Test|E|Lead 51613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051614|151614|989898|1|9999051614|MR|Test|E|Lead 51614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051615|151615|989898|1|9999051615|MR|Test|E|Lead 51615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051616|151616|989898|1|9999051616|MR|Test|E|Lead 51616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051617|151617|989898|1|9999051617|MR|Test|E|Lead 51617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051618|151618|989898|1|9999051618|MR|Test|E|Lead 51618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051619|151619|989898|1|9999051619|MR|Test|E|Lead 51619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051620|151620|989898|1|9999051620|MR|Test|E|Lead 51620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051621|151621|989898|1|9999051621|MR|Test|E|Lead 51621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051622|151622|989898|1|9999051622|MR|Test|E|Lead 51622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051623|151623|989898|1|9999051623|MR|Test|E|Lead 51623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051624|151624|989898|1|9999051624|MR|Test|E|Lead 51624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051625|151625|989898|1|9999051625|MR|Test|E|Lead 51625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051626|151626|989898|1|9999051626|MR|Test|E|Lead 51626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051627|151627|989898|1|9999051627|MR|Test|E|Lead 51627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051628|151628|989898|1|9999051628|MR|Test|E|Lead 51628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051629|151629|989898|1|9999051629|MR|Test|E|Lead 51629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051630|151630|989898|1|9999051630|MR|Test|E|Lead 51630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051631|151631|989898|1|9999051631|MR|Test|E|Lead 51631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051632|151632|989898|1|9999051632|MR|Test|E|Lead 51632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051633|151633|989898|1|9999051633|MR|Test|E|Lead 51633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051634|151634|989898|1|9999051634|MR|Test|E|Lead 51634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051635|151635|989898|1|9999051635|MR|Test|E|Lead 51635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051636|151636|989898|1|9999051636|MR|Test|E|Lead 51636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051637|151637|989898|1|9999051637|MR|Test|E|Lead 51637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051638|151638|989898|1|9999051638|MR|Test|E|Lead 51638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051639|151639|989898|1|9999051639|MR|Test|E|Lead 51639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051640|151640|989898|1|9999051640|MR|Test|E|Lead 51640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051641|151641|989898|1|9999051641|MR|Test|E|Lead 51641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051642|151642|989898|1|9999051642|MR|Test|E|Lead 51642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051643|151643|989898|1|9999051643|MR|Test|E|Lead 51643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051644|151644|989898|1|9999051644|MR|Test|E|Lead 51644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051645|151645|989898|1|9999051645|MR|Test|E|Lead 51645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051646|151646|989898|1|9999051646|MR|Test|E|Lead 51646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051647|151647|989898|1|9999051647|MR|Test|E|Lead 51647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051648|151648|989898|1|9999051648|MR|Test|E|Lead 51648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051649|151649|989898|1|9999051649|MR|Test|E|Lead 51649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051650|151650|989898|1|9999051650|MR|Test|E|Lead 51650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051651|151651|989898|1|9999051651|MR|Test|E|Lead 51651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051652|151652|989898|1|9999051652|MR|Test|E|Lead 51652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051653|151653|989898|1|9999051653|MR|Test|E|Lead 51653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051654|151654|989898|1|9999051654|MR|Test|E|Lead 51654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051655|151655|989898|1|9999051655|MR|Test|E|Lead 51655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051656|151656|989898|1|9999051656|MR|Test|E|Lead 51656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051657|151657|989898|1|9999051657|MR|Test|E|Lead 51657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051658|151658|989898|1|9999051658|MR|Test|E|Lead 51658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051659|151659|989898|1|9999051659|MR|Test|E|Lead 51659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051660|151660|989898|1|9999051660|MR|Test|E|Lead 51660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051661|151661|989898|1|9999051661|MR|Test|E|Lead 51661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051662|151662|989898|1|9999051662|MR|Test|E|Lead 51662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051663|151663|989898|1|9999051663|MR|Test|E|Lead 51663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051664|151664|989898|1|9999051664|MR|Test|E|Lead 51664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051665|151665|989898|1|9999051665|MR|Test|E|Lead 51665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051666|151666|989898|1|9999051666|MR|Test|E|Lead 51666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051667|151667|989898|1|9999051667|MR|Test|E|Lead 51667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051668|151668|989898|1|9999051668|MR|Test|E|Lead 51668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051669|151669|989898|1|9999051669|MR|Test|E|Lead 51669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051670|151670|989898|1|9999051670|MR|Test|E|Lead 51670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051671|151671|989898|1|9999051671|MR|Test|E|Lead 51671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051672|151672|989898|1|9999051672|MR|Test|E|Lead 51672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051673|151673|989898|1|9999051673|MR|Test|E|Lead 51673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051674|151674|989898|1|9999051674|MR|Test|E|Lead 51674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051675|151675|989898|1|9999051675|MR|Test|E|Lead 51675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051676|151676|989898|1|9999051676|MR|Test|E|Lead 51676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051677|151677|989898|1|9999051677|MR|Test|E|Lead 51677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051678|151678|989898|1|9999051678|MR|Test|E|Lead 51678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051679|151679|989898|1|9999051679|MR|Test|E|Lead 51679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051680|151680|989898|1|9999051680|MR|Test|E|Lead 51680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051681|151681|989898|1|9999051681|MR|Test|E|Lead 51681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051682|151682|989898|1|9999051682|MR|Test|E|Lead 51682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051683|151683|989898|1|9999051683|MR|Test|E|Lead 51683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051684|151684|989898|1|9999051684|MR|Test|E|Lead 51684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051685|151685|989898|1|9999051685|MR|Test|E|Lead 51685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051686|151686|989898|1|9999051686|MR|Test|E|Lead 51686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051687|151687|989898|1|9999051687|MR|Test|E|Lead 51687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051688|151688|989898|1|9999051688|MR|Test|E|Lead 51688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051689|151689|989898|1|9999051689|MR|Test|E|Lead 51689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051690|151690|989898|1|9999051690|MR|Test|E|Lead 51690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051691|151691|989898|1|9999051691|MR|Test|E|Lead 51691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051692|151692|989898|1|9999051692|MR|Test|E|Lead 51692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051693|151693|989898|1|9999051693|MR|Test|E|Lead 51693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051694|151694|989898|1|9999051694|MR|Test|E|Lead 51694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051695|151695|989898|1|9999051695|MR|Test|E|Lead 51695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051696|151696|989898|1|9999051696|MR|Test|E|Lead 51696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051697|151697|989898|1|9999051697|MR|Test|E|Lead 51697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051698|151698|989898|1|9999051698|MR|Test|E|Lead 51698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051699|151699|989898|1|9999051699|MR|Test|E|Lead 51699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051700|151700|989898|1|9999051700|MR|Test|E|Lead 51700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051701|151701|989898|1|9999051701|MR|Test|E|Lead 51701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051702|151702|989898|1|9999051702|MR|Test|E|Lead 51702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051703|151703|989898|1|9999051703|MR|Test|E|Lead 51703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051704|151704|989898|1|9999051704|MR|Test|E|Lead 51704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051705|151705|989898|1|9999051705|MR|Test|E|Lead 51705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051706|151706|989898|1|9999051706|MR|Test|E|Lead 51706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051707|151707|989898|1|9999051707|MR|Test|E|Lead 51707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051708|151708|989898|1|9999051708|MR|Test|E|Lead 51708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051709|151709|989898|1|9999051709|MR|Test|E|Lead 51709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051710|151710|989898|1|9999051710|MR|Test|E|Lead 51710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051711|151711|989898|1|9999051711|MR|Test|E|Lead 51711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051712|151712|989898|1|9999051712|MR|Test|E|Lead 51712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051713|151713|989898|1|9999051713|MR|Test|E|Lead 51713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051714|151714|989898|1|9999051714|MR|Test|E|Lead 51714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051715|151715|989898|1|9999051715|MR|Test|E|Lead 51715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051716|151716|989898|1|9999051716|MR|Test|E|Lead 51716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051717|151717|989898|1|9999051717|MR|Test|E|Lead 51717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051718|151718|989898|1|9999051718|MR|Test|E|Lead 51718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051719|151719|989898|1|9999051719|MR|Test|E|Lead 51719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051720|151720|989898|1|9999051720|MR|Test|E|Lead 51720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051721|151721|989898|1|9999051721|MR|Test|E|Lead 51721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051722|151722|989898|1|9999051722|MR|Test|E|Lead 51722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051723|151723|989898|1|9999051723|MR|Test|E|Lead 51723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051724|151724|989898|1|9999051724|MR|Test|E|Lead 51724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051725|151725|989898|1|9999051725|MR|Test|E|Lead 51725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051726|151726|989898|1|9999051726|MR|Test|E|Lead 51726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051727|151727|989898|1|9999051727|MR|Test|E|Lead 51727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051728|151728|989898|1|9999051728|MR|Test|E|Lead 51728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051729|151729|989898|1|9999051729|MR|Test|E|Lead 51729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051730|151730|989898|1|9999051730|MR|Test|E|Lead 51730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051731|151731|989898|1|9999051731|MR|Test|E|Lead 51731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051732|151732|989898|1|9999051732|MR|Test|E|Lead 51732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051733|151733|989898|1|9999051733|MR|Test|E|Lead 51733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051734|151734|989898|1|9999051734|MR|Test|E|Lead 51734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051735|151735|989898|1|9999051735|MR|Test|E|Lead 51735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051736|151736|989898|1|9999051736|MR|Test|E|Lead 51736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051737|151737|989898|1|9999051737|MR|Test|E|Lead 51737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051738|151738|989898|1|9999051738|MR|Test|E|Lead 51738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051739|151739|989898|1|9999051739|MR|Test|E|Lead 51739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051740|151740|989898|1|9999051740|MR|Test|E|Lead 51740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051741|151741|989898|1|9999051741|MR|Test|E|Lead 51741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051742|151742|989898|1|9999051742|MR|Test|E|Lead 51742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051743|151743|989898|1|9999051743|MR|Test|E|Lead 51743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051744|151744|989898|1|9999051744|MR|Test|E|Lead 51744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051745|151745|989898|1|9999051745|MR|Test|E|Lead 51745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051746|151746|989898|1|9999051746|MR|Test|E|Lead 51746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051747|151747|989898|1|9999051747|MR|Test|E|Lead 51747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051748|151748|989898|1|9999051748|MR|Test|E|Lead 51748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051749|151749|989898|1|9999051749|MR|Test|E|Lead 51749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051750|151750|989898|1|9999051750|MR|Test|E|Lead 51750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051751|151751|989898|1|9999051751|MR|Test|E|Lead 51751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051752|151752|989898|1|9999051752|MR|Test|E|Lead 51752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051753|151753|989898|1|9999051753|MR|Test|E|Lead 51753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051754|151754|989898|1|9999051754|MR|Test|E|Lead 51754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051755|151755|989898|1|9999051755|MR|Test|E|Lead 51755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051756|151756|989898|1|9999051756|MR|Test|E|Lead 51756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051757|151757|989898|1|9999051757|MR|Test|E|Lead 51757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051758|151758|989898|1|9999051758|MR|Test|E|Lead 51758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051759|151759|989898|1|9999051759|MR|Test|E|Lead 51759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051760|151760|989898|1|9999051760|MR|Test|E|Lead 51760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051761|151761|989898|1|9999051761|MR|Test|E|Lead 51761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051762|151762|989898|1|9999051762|MR|Test|E|Lead 51762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051763|151763|989898|1|9999051763|MR|Test|E|Lead 51763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051764|151764|989898|1|9999051764|MR|Test|E|Lead 51764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051765|151765|989898|1|9999051765|MR|Test|E|Lead 51765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051766|151766|989898|1|9999051766|MR|Test|E|Lead 51766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051767|151767|989898|1|9999051767|MR|Test|E|Lead 51767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051768|151768|989898|1|9999051768|MR|Test|E|Lead 51768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051769|151769|989898|1|9999051769|MR|Test|E|Lead 51769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051770|151770|989898|1|9999051770|MR|Test|E|Lead 51770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051771|151771|989898|1|9999051771|MR|Test|E|Lead 51771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051772|151772|989898|1|9999051772|MR|Test|E|Lead 51772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051773|151773|989898|1|9999051773|MR|Test|E|Lead 51773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051774|151774|989898|1|9999051774|MR|Test|E|Lead 51774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051775|151775|989898|1|9999051775|MR|Test|E|Lead 51775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051776|151776|989898|1|9999051776|MR|Test|E|Lead 51776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051777|151777|989898|1|9999051777|MR|Test|E|Lead 51777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051778|151778|989898|1|9999051778|MR|Test|E|Lead 51778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051779|151779|989898|1|9999051779|MR|Test|E|Lead 51779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051780|151780|989898|1|9999051780|MR|Test|E|Lead 51780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051781|151781|989898|1|9999051781|MR|Test|E|Lead 51781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051782|151782|989898|1|9999051782|MR|Test|E|Lead 51782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051783|151783|989898|1|9999051783|MR|Test|E|Lead 51783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051784|151784|989898|1|9999051784|MR|Test|E|Lead 51784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051785|151785|989898|1|9999051785|MR|Test|E|Lead 51785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051786|151786|989898|1|9999051786|MR|Test|E|Lead 51786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051787|151787|989898|1|9999051787|MR|Test|E|Lead 51787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051788|151788|989898|1|9999051788|MR|Test|E|Lead 51788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051789|151789|989898|1|9999051789|MR|Test|E|Lead 51789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051790|151790|989898|1|9999051790|MR|Test|E|Lead 51790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051791|151791|989898|1|9999051791|MR|Test|E|Lead 51791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051792|151792|989898|1|9999051792|MR|Test|E|Lead 51792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051793|151793|989898|1|9999051793|MR|Test|E|Lead 51793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051794|151794|989898|1|9999051794|MR|Test|E|Lead 51794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051795|151795|989898|1|9999051795|MR|Test|E|Lead 51795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051796|151796|989898|1|9999051796|MR|Test|E|Lead 51796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051797|151797|989898|1|9999051797|MR|Test|E|Lead 51797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051798|151798|989898|1|9999051798|MR|Test|E|Lead 51798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051799|151799|989898|1|9999051799|MR|Test|E|Lead 51799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051800|151800|989898|1|9999051800|MR|Test|E|Lead 51800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051801|151801|989898|1|9999051801|MR|Test|E|Lead 51801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051802|151802|989898|1|9999051802|MR|Test|E|Lead 51802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051803|151803|989898|1|9999051803|MR|Test|E|Lead 51803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051804|151804|989898|1|9999051804|MR|Test|E|Lead 51804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051805|151805|989898|1|9999051805|MR|Test|E|Lead 51805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051806|151806|989898|1|9999051806|MR|Test|E|Lead 51806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051807|151807|989898|1|9999051807|MR|Test|E|Lead 51807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051808|151808|989898|1|9999051808|MR|Test|E|Lead 51808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051809|151809|989898|1|9999051809|MR|Test|E|Lead 51809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051810|151810|989898|1|9999051810|MR|Test|E|Lead 51810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051811|151811|989898|1|9999051811|MR|Test|E|Lead 51811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051812|151812|989898|1|9999051812|MR|Test|E|Lead 51812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051813|151813|989898|1|9999051813|MR|Test|E|Lead 51813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051814|151814|989898|1|9999051814|MR|Test|E|Lead 51814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051815|151815|989898|1|9999051815|MR|Test|E|Lead 51815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051816|151816|989898|1|9999051816|MR|Test|E|Lead 51816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051817|151817|989898|1|9999051817|MR|Test|E|Lead 51817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051818|151818|989898|1|9999051818|MR|Test|E|Lead 51818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051819|151819|989898|1|9999051819|MR|Test|E|Lead 51819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051820|151820|989898|1|9999051820|MR|Test|E|Lead 51820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051821|151821|989898|1|9999051821|MR|Test|E|Lead 51821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051822|151822|989898|1|9999051822|MR|Test|E|Lead 51822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051823|151823|989898|1|9999051823|MR|Test|E|Lead 51823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051824|151824|989898|1|9999051824|MR|Test|E|Lead 51824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051825|151825|989898|1|9999051825|MR|Test|E|Lead 51825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051826|151826|989898|1|9999051826|MR|Test|E|Lead 51826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051827|151827|989898|1|9999051827|MR|Test|E|Lead 51827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051828|151828|989898|1|9999051828|MR|Test|E|Lead 51828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051829|151829|989898|1|9999051829|MR|Test|E|Lead 51829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051830|151830|989898|1|9999051830|MR|Test|E|Lead 51830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051831|151831|989898|1|9999051831|MR|Test|E|Lead 51831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051832|151832|989898|1|9999051832|MR|Test|E|Lead 51832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051833|151833|989898|1|9999051833|MR|Test|E|Lead 51833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051834|151834|989898|1|9999051834|MR|Test|E|Lead 51834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051835|151835|989898|1|9999051835|MR|Test|E|Lead 51835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051836|151836|989898|1|9999051836|MR|Test|E|Lead 51836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051837|151837|989898|1|9999051837|MR|Test|E|Lead 51837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051838|151838|989898|1|9999051838|MR|Test|E|Lead 51838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051839|151839|989898|1|9999051839|MR|Test|E|Lead 51839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051840|151840|989898|1|9999051840|MR|Test|E|Lead 51840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051841|151841|989898|1|9999051841|MR|Test|E|Lead 51841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051842|151842|989898|1|9999051842|MR|Test|E|Lead 51842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051843|151843|989898|1|9999051843|MR|Test|E|Lead 51843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051844|151844|989898|1|9999051844|MR|Test|E|Lead 51844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051845|151845|989898|1|9999051845|MR|Test|E|Lead 51845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051846|151846|989898|1|9999051846|MR|Test|E|Lead 51846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051847|151847|989898|1|9999051847|MR|Test|E|Lead 51847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051848|151848|989898|1|9999051848|MR|Test|E|Lead 51848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051849|151849|989898|1|9999051849|MR|Test|E|Lead 51849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051850|151850|989898|1|9999051850|MR|Test|E|Lead 51850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051851|151851|989898|1|9999051851|MR|Test|E|Lead 51851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051852|151852|989898|1|9999051852|MR|Test|E|Lead 51852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051853|151853|989898|1|9999051853|MR|Test|E|Lead 51853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051854|151854|989898|1|9999051854|MR|Test|E|Lead 51854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051855|151855|989898|1|9999051855|MR|Test|E|Lead 51855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051856|151856|989898|1|9999051856|MR|Test|E|Lead 51856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051857|151857|989898|1|9999051857|MR|Test|E|Lead 51857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051858|151858|989898|1|9999051858|MR|Test|E|Lead 51858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051859|151859|989898|1|9999051859|MR|Test|E|Lead 51859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051860|151860|989898|1|9999051860|MR|Test|E|Lead 51860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051861|151861|989898|1|9999051861|MR|Test|E|Lead 51861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051862|151862|989898|1|9999051862|MR|Test|E|Lead 51862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051863|151863|989898|1|9999051863|MR|Test|E|Lead 51863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051864|151864|989898|1|9999051864|MR|Test|E|Lead 51864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051865|151865|989898|1|9999051865|MR|Test|E|Lead 51865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051866|151866|989898|1|9999051866|MR|Test|E|Lead 51866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051867|151867|989898|1|9999051867|MR|Test|E|Lead 51867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051868|151868|989898|1|9999051868|MR|Test|E|Lead 51868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051869|151869|989898|1|9999051869|MR|Test|E|Lead 51869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051870|151870|989898|1|9999051870|MR|Test|E|Lead 51870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051871|151871|989898|1|9999051871|MR|Test|E|Lead 51871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051872|151872|989898|1|9999051872|MR|Test|E|Lead 51872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051873|151873|989898|1|9999051873|MR|Test|E|Lead 51873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051874|151874|989898|1|9999051874|MR|Test|E|Lead 51874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051875|151875|989898|1|9999051875|MR|Test|E|Lead 51875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051876|151876|989898|1|9999051876|MR|Test|E|Lead 51876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051877|151877|989898|1|9999051877|MR|Test|E|Lead 51877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051878|151878|989898|1|9999051878|MR|Test|E|Lead 51878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051879|151879|989898|1|9999051879|MR|Test|E|Lead 51879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051880|151880|989898|1|9999051880|MR|Test|E|Lead 51880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051881|151881|989898|1|9999051881|MR|Test|E|Lead 51881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051882|151882|989898|1|9999051882|MR|Test|E|Lead 51882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051883|151883|989898|1|9999051883|MR|Test|E|Lead 51883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051884|151884|989898|1|9999051884|MR|Test|E|Lead 51884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051885|151885|989898|1|9999051885|MR|Test|E|Lead 51885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051886|151886|989898|1|9999051886|MR|Test|E|Lead 51886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051887|151887|989898|1|9999051887|MR|Test|E|Lead 51887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051888|151888|989898|1|9999051888|MR|Test|E|Lead 51888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051889|151889|989898|1|9999051889|MR|Test|E|Lead 51889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051890|151890|989898|1|9999051890|MR|Test|E|Lead 51890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051891|151891|989898|1|9999051891|MR|Test|E|Lead 51891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051892|151892|989898|1|9999051892|MR|Test|E|Lead 51892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051893|151893|989898|1|9999051893|MR|Test|E|Lead 51893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051894|151894|989898|1|9999051894|MR|Test|E|Lead 51894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051895|151895|989898|1|9999051895|MR|Test|E|Lead 51895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051896|151896|989898|1|9999051896|MR|Test|E|Lead 51896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051897|151897|989898|1|9999051897|MR|Test|E|Lead 51897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051898|151898|989898|1|9999051898|MR|Test|E|Lead 51898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051899|151899|989898|1|9999051899|MR|Test|E|Lead 51899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051900|151900|989898|1|9999051900|MR|Test|E|Lead 51900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051901|151901|989898|1|9999051901|MR|Test|E|Lead 51901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051902|151902|989898|1|9999051902|MR|Test|E|Lead 51902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051903|151903|989898|1|9999051903|MR|Test|E|Lead 51903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051904|151904|989898|1|9999051904|MR|Test|E|Lead 51904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051905|151905|989898|1|9999051905|MR|Test|E|Lead 51905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051906|151906|989898|1|9999051906|MR|Test|E|Lead 51906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051907|151907|989898|1|9999051907|MR|Test|E|Lead 51907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051908|151908|989898|1|9999051908|MR|Test|E|Lead 51908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051909|151909|989898|1|9999051909|MR|Test|E|Lead 51909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051910|151910|989898|1|9999051910|MR|Test|E|Lead 51910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051911|151911|989898|1|9999051911|MR|Test|E|Lead 51911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051912|151912|989898|1|9999051912|MR|Test|E|Lead 51912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051913|151913|989898|1|9999051913|MR|Test|E|Lead 51913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051914|151914|989898|1|9999051914|MR|Test|E|Lead 51914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051915|151915|989898|1|9999051915|MR|Test|E|Lead 51915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051916|151916|989898|1|9999051916|MR|Test|E|Lead 51916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051917|151917|989898|1|9999051917|MR|Test|E|Lead 51917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051918|151918|989898|1|9999051918|MR|Test|E|Lead 51918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051919|151919|989898|1|9999051919|MR|Test|E|Lead 51919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051920|151920|989898|1|9999051920|MR|Test|E|Lead 51920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051921|151921|989898|1|9999051921|MR|Test|E|Lead 51921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051922|151922|989898|1|9999051922|MR|Test|E|Lead 51922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051923|151923|989898|1|9999051923|MR|Test|E|Lead 51923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051924|151924|989898|1|9999051924|MR|Test|E|Lead 51924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051925|151925|989898|1|9999051925|MR|Test|E|Lead 51925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051926|151926|989898|1|9999051926|MR|Test|E|Lead 51926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051927|151927|989898|1|9999051927|MR|Test|E|Lead 51927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051928|151928|989898|1|9999051928|MR|Test|E|Lead 51928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051929|151929|989898|1|9999051929|MR|Test|E|Lead 51929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051930|151930|989898|1|9999051930|MR|Test|E|Lead 51930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051931|151931|989898|1|9999051931|MR|Test|E|Lead 51931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051932|151932|989898|1|9999051932|MR|Test|E|Lead 51932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051933|151933|989898|1|9999051933|MR|Test|E|Lead 51933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051934|151934|989898|1|9999051934|MR|Test|E|Lead 51934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051935|151935|989898|1|9999051935|MR|Test|E|Lead 51935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051936|151936|989898|1|9999051936|MR|Test|E|Lead 51936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051937|151937|989898|1|9999051937|MR|Test|E|Lead 51937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051938|151938|989898|1|9999051938|MR|Test|E|Lead 51938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051939|151939|989898|1|9999051939|MR|Test|E|Lead 51939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051940|151940|989898|1|9999051940|MR|Test|E|Lead 51940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051941|151941|989898|1|9999051941|MR|Test|E|Lead 51941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051942|151942|989898|1|9999051942|MR|Test|E|Lead 51942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051943|151943|989898|1|9999051943|MR|Test|E|Lead 51943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051944|151944|989898|1|9999051944|MR|Test|E|Lead 51944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051945|151945|989898|1|9999051945|MR|Test|E|Lead 51945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051946|151946|989898|1|9999051946|MR|Test|E|Lead 51946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051947|151947|989898|1|9999051947|MR|Test|E|Lead 51947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051948|151948|989898|1|9999051948|MR|Test|E|Lead 51948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051949|151949|989898|1|9999051949|MR|Test|E|Lead 51949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051950|151950|989898|1|9999051950|MR|Test|E|Lead 51950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051951|151951|989898|1|9999051951|MR|Test|E|Lead 51951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051952|151952|989898|1|9999051952|MR|Test|E|Lead 51952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051953|151953|989898|1|9999051953|MR|Test|E|Lead 51953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051954|151954|989898|1|9999051954|MR|Test|E|Lead 51954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051955|151955|989898|1|9999051955|MR|Test|E|Lead 51955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051956|151956|989898|1|9999051956|MR|Test|E|Lead 51956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051957|151957|989898|1|9999051957|MR|Test|E|Lead 51957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051958|151958|989898|1|9999051958|MR|Test|E|Lead 51958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051959|151959|989898|1|9999051959|MR|Test|E|Lead 51959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051960|151960|989898|1|9999051960|MR|Test|E|Lead 51960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051961|151961|989898|1|9999051961|MR|Test|E|Lead 51961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051962|151962|989898|1|9999051962|MR|Test|E|Lead 51962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051963|151963|989898|1|9999051963|MR|Test|E|Lead 51963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051964|151964|989898|1|9999051964|MR|Test|E|Lead 51964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051965|151965|989898|1|9999051965|MR|Test|E|Lead 51965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051966|151966|989898|1|9999051966|MR|Test|E|Lead 51966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051967|151967|989898|1|9999051967|MR|Test|E|Lead 51967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051968|151968|989898|1|9999051968|MR|Test|E|Lead 51968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051969|151969|989898|1|9999051969|MR|Test|E|Lead 51969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051970|151970|989898|1|9999051970|MR|Test|E|Lead 51970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051971|151971|989898|1|9999051971|MR|Test|E|Lead 51971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051972|151972|989898|1|9999051972|MR|Test|E|Lead 51972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051973|151973|989898|1|9999051973|MR|Test|E|Lead 51973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051974|151974|989898|1|9999051974|MR|Test|E|Lead 51974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051975|151975|989898|1|9999051975|MR|Test|E|Lead 51975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051976|151976|989898|1|9999051976|MR|Test|E|Lead 51976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051977|151977|989898|1|9999051977|MR|Test|E|Lead 51977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051978|151978|989898|1|9999051978|MR|Test|E|Lead 51978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051979|151979|989898|1|9999051979|MR|Test|E|Lead 51979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051980|151980|989898|1|9999051980|MR|Test|E|Lead 51980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051981|151981|989898|1|9999051981|MR|Test|E|Lead 51981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051982|151982|989898|1|9999051982|MR|Test|E|Lead 51982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051983|151983|989898|1|9999051983|MR|Test|E|Lead 51983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051984|151984|989898|1|9999051984|MR|Test|E|Lead 51984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051985|151985|989898|1|9999051985|MR|Test|E|Lead 51985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051986|151986|989898|1|9999051986|MR|Test|E|Lead 51986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051987|151987|989898|1|9999051987|MR|Test|E|Lead 51987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051988|151988|989898|1|9999051988|MR|Test|E|Lead 51988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051989|151989|989898|1|9999051989|MR|Test|E|Lead 51989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051990|151990|989898|1|9999051990|MR|Test|E|Lead 51990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051991|151991|989898|1|9999051991|MR|Test|E|Lead 51991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051992|151992|989898|1|9999051992|MR|Test|E|Lead 51992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051993|151993|989898|1|9999051993|MR|Test|E|Lead 51993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051994|151994|989898|1|9999051994|MR|Test|E|Lead 51994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051995|151995|989898|1|9999051995|MR|Test|E|Lead 51995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051996|151996|989898|1|9999051996|MR|Test|E|Lead 51996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051997|151997|989898|1|9999051997|MR|Test|E|Lead 51997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051998|151998|989898|1|9999051998|MR|Test|E|Lead 51998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1051999|151999|989898|1|9999051999|MR|Test|E|Lead 51999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052000|152000|989898|1|9999052000|MR|Test|E|Lead 52000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052001|152001|989898|1|9999052001|MR|Test|E|Lead 52001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052002|152002|989898|1|9999052002|MR|Test|E|Lead 52002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052003|152003|989898|1|9999052003|MR|Test|E|Lead 52003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052004|152004|989898|1|9999052004|MR|Test|E|Lead 52004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052005|152005|989898|1|9999052005|MR|Test|E|Lead 52005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052006|152006|989898|1|9999052006|MR|Test|E|Lead 52006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052007|152007|989898|1|9999052007|MR|Test|E|Lead 52007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052008|152008|989898|1|9999052008|MR|Test|E|Lead 52008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052009|152009|989898|1|9999052009|MR|Test|E|Lead 52009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052010|152010|989898|1|9999052010|MR|Test|E|Lead 52010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052011|152011|989898|1|9999052011|MR|Test|E|Lead 52011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052012|152012|989898|1|9999052012|MR|Test|E|Lead 52012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052013|152013|989898|1|9999052013|MR|Test|E|Lead 52013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052014|152014|989898|1|9999052014|MR|Test|E|Lead 52014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052015|152015|989898|1|9999052015|MR|Test|E|Lead 52015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052016|152016|989898|1|9999052016|MR|Test|E|Lead 52016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052017|152017|989898|1|9999052017|MR|Test|E|Lead 52017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052018|152018|989898|1|9999052018|MR|Test|E|Lead 52018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052019|152019|989898|1|9999052019|MR|Test|E|Lead 52019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052020|152020|989898|1|9999052020|MR|Test|E|Lead 52020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052021|152021|989898|1|9999052021|MR|Test|E|Lead 52021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052022|152022|989898|1|9999052022|MR|Test|E|Lead 52022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052023|152023|989898|1|9999052023|MR|Test|E|Lead 52023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052024|152024|989898|1|9999052024|MR|Test|E|Lead 52024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052025|152025|989898|1|9999052025|MR|Test|E|Lead 52025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052026|152026|989898|1|9999052026|MR|Test|E|Lead 52026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052027|152027|989898|1|9999052027|MR|Test|E|Lead 52027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052028|152028|989898|1|9999052028|MR|Test|E|Lead 52028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052029|152029|989898|1|9999052029|MR|Test|E|Lead 52029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052030|152030|989898|1|9999052030|MR|Test|E|Lead 52030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052031|152031|989898|1|9999052031|MR|Test|E|Lead 52031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052032|152032|989898|1|9999052032|MR|Test|E|Lead 52032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052033|152033|989898|1|9999052033|MR|Test|E|Lead 52033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052034|152034|989898|1|9999052034|MR|Test|E|Lead 52034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052035|152035|989898|1|9999052035|MR|Test|E|Lead 52035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052036|152036|989898|1|9999052036|MR|Test|E|Lead 52036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052037|152037|989898|1|9999052037|MR|Test|E|Lead 52037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052038|152038|989898|1|9999052038|MR|Test|E|Lead 52038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052039|152039|989898|1|9999052039|MR|Test|E|Lead 52039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052040|152040|989898|1|9999052040|MR|Test|E|Lead 52040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052041|152041|989898|1|9999052041|MR|Test|E|Lead 52041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052042|152042|989898|1|9999052042|MR|Test|E|Lead 52042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052043|152043|989898|1|9999052043|MR|Test|E|Lead 52043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052044|152044|989898|1|9999052044|MR|Test|E|Lead 52044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052045|152045|989898|1|9999052045|MR|Test|E|Lead 52045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052046|152046|989898|1|9999052046|MR|Test|E|Lead 52046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052047|152047|989898|1|9999052047|MR|Test|E|Lead 52047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052048|152048|989898|1|9999052048|MR|Test|E|Lead 52048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052049|152049|989898|1|9999052049|MR|Test|E|Lead 52049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052050|152050|989898|1|9999052050|MR|Test|E|Lead 52050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052051|152051|989898|1|9999052051|MR|Test|E|Lead 52051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052052|152052|989898|1|9999052052|MR|Test|E|Lead 52052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052053|152053|989898|1|9999052053|MR|Test|E|Lead 52053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052054|152054|989898|1|9999052054|MR|Test|E|Lead 52054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052055|152055|989898|1|9999052055|MR|Test|E|Lead 52055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052056|152056|989898|1|9999052056|MR|Test|E|Lead 52056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052057|152057|989898|1|9999052057|MR|Test|E|Lead 52057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052058|152058|989898|1|9999052058|MR|Test|E|Lead 52058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052059|152059|989898|1|9999052059|MR|Test|E|Lead 52059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052060|152060|989898|1|9999052060|MR|Test|E|Lead 52060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052061|152061|989898|1|9999052061|MR|Test|E|Lead 52061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052062|152062|989898|1|9999052062|MR|Test|E|Lead 52062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052063|152063|989898|1|9999052063|MR|Test|E|Lead 52063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052064|152064|989898|1|9999052064|MR|Test|E|Lead 52064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052065|152065|989898|1|9999052065|MR|Test|E|Lead 52065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052066|152066|989898|1|9999052066|MR|Test|E|Lead 52066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052067|152067|989898|1|9999052067|MR|Test|E|Lead 52067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052068|152068|989898|1|9999052068|MR|Test|E|Lead 52068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052069|152069|989898|1|9999052069|MR|Test|E|Lead 52069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052070|152070|989898|1|9999052070|MR|Test|E|Lead 52070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052071|152071|989898|1|9999052071|MR|Test|E|Lead 52071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052072|152072|989898|1|9999052072|MR|Test|E|Lead 52072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052073|152073|989898|1|9999052073|MR|Test|E|Lead 52073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052074|152074|989898|1|9999052074|MR|Test|E|Lead 52074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052075|152075|989898|1|9999052075|MR|Test|E|Lead 52075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052076|152076|989898|1|9999052076|MR|Test|E|Lead 52076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052077|152077|989898|1|9999052077|MR|Test|E|Lead 52077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052078|152078|989898|1|9999052078|MR|Test|E|Lead 52078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052079|152079|989898|1|9999052079|MR|Test|E|Lead 52079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052080|152080|989898|1|9999052080|MR|Test|E|Lead 52080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052081|152081|989898|1|9999052081|MR|Test|E|Lead 52081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052082|152082|989898|1|9999052082|MR|Test|E|Lead 52082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052083|152083|989898|1|9999052083|MR|Test|E|Lead 52083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052084|152084|989898|1|9999052084|MR|Test|E|Lead 52084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052085|152085|989898|1|9999052085|MR|Test|E|Lead 52085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052086|152086|989898|1|9999052086|MR|Test|E|Lead 52086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052087|152087|989898|1|9999052087|MR|Test|E|Lead 52087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052088|152088|989898|1|9999052088|MR|Test|E|Lead 52088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052089|152089|989898|1|9999052089|MR|Test|E|Lead 52089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052090|152090|989898|1|9999052090|MR|Test|E|Lead 52090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052091|152091|989898|1|9999052091|MR|Test|E|Lead 52091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052092|152092|989898|1|9999052092|MR|Test|E|Lead 52092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052093|152093|989898|1|9999052093|MR|Test|E|Lead 52093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052094|152094|989898|1|9999052094|MR|Test|E|Lead 52094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052095|152095|989898|1|9999052095|MR|Test|E|Lead 52095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052096|152096|989898|1|9999052096|MR|Test|E|Lead 52096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052097|152097|989898|1|9999052097|MR|Test|E|Lead 52097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052098|152098|989898|1|9999052098|MR|Test|E|Lead 52098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052099|152099|989898|1|9999052099|MR|Test|E|Lead 52099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052100|152100|989898|1|9999052100|MR|Test|E|Lead 52100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052101|152101|989898|1|9999052101|MR|Test|E|Lead 52101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052102|152102|989898|1|9999052102|MR|Test|E|Lead 52102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052103|152103|989898|1|9999052103|MR|Test|E|Lead 52103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052104|152104|989898|1|9999052104|MR|Test|E|Lead 52104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052105|152105|989898|1|9999052105|MR|Test|E|Lead 52105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052106|152106|989898|1|9999052106|MR|Test|E|Lead 52106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052107|152107|989898|1|9999052107|MR|Test|E|Lead 52107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052108|152108|989898|1|9999052108|MR|Test|E|Lead 52108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052109|152109|989898|1|9999052109|MR|Test|E|Lead 52109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052110|152110|989898|1|9999052110|MR|Test|E|Lead 52110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052111|152111|989898|1|9999052111|MR|Test|E|Lead 52111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052112|152112|989898|1|9999052112|MR|Test|E|Lead 52112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052113|152113|989898|1|9999052113|MR|Test|E|Lead 52113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052114|152114|989898|1|9999052114|MR|Test|E|Lead 52114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052115|152115|989898|1|9999052115|MR|Test|E|Lead 52115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052116|152116|989898|1|9999052116|MR|Test|E|Lead 52116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052117|152117|989898|1|9999052117|MR|Test|E|Lead 52117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052118|152118|989898|1|9999052118|MR|Test|E|Lead 52118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052119|152119|989898|1|9999052119|MR|Test|E|Lead 52119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052120|152120|989898|1|9999052120|MR|Test|E|Lead 52120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052121|152121|989898|1|9999052121|MR|Test|E|Lead 52121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052122|152122|989898|1|9999052122|MR|Test|E|Lead 52122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052123|152123|989898|1|9999052123|MR|Test|E|Lead 52123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052124|152124|989898|1|9999052124|MR|Test|E|Lead 52124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052125|152125|989898|1|9999052125|MR|Test|E|Lead 52125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052126|152126|989898|1|9999052126|MR|Test|E|Lead 52126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052127|152127|989898|1|9999052127|MR|Test|E|Lead 52127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052128|152128|989898|1|9999052128|MR|Test|E|Lead 52128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052129|152129|989898|1|9999052129|MR|Test|E|Lead 52129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052130|152130|989898|1|9999052130|MR|Test|E|Lead 52130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052131|152131|989898|1|9999052131|MR|Test|E|Lead 52131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052132|152132|989898|1|9999052132|MR|Test|E|Lead 52132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052133|152133|989898|1|9999052133|MR|Test|E|Lead 52133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052134|152134|989898|1|9999052134|MR|Test|E|Lead 52134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052135|152135|989898|1|9999052135|MR|Test|E|Lead 52135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052136|152136|989898|1|9999052136|MR|Test|E|Lead 52136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052137|152137|989898|1|9999052137|MR|Test|E|Lead 52137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052138|152138|989898|1|9999052138|MR|Test|E|Lead 52138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052139|152139|989898|1|9999052139|MR|Test|E|Lead 52139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052140|152140|989898|1|9999052140|MR|Test|E|Lead 52140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052141|152141|989898|1|9999052141|MR|Test|E|Lead 52141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052142|152142|989898|1|9999052142|MR|Test|E|Lead 52142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052143|152143|989898|1|9999052143|MR|Test|E|Lead 52143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052144|152144|989898|1|9999052144|MR|Test|E|Lead 52144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052145|152145|989898|1|9999052145|MR|Test|E|Lead 52145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052146|152146|989898|1|9999052146|MR|Test|E|Lead 52146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052147|152147|989898|1|9999052147|MR|Test|E|Lead 52147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052148|152148|989898|1|9999052148|MR|Test|E|Lead 52148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052149|152149|989898|1|9999052149|MR|Test|E|Lead 52149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052150|152150|989898|1|9999052150|MR|Test|E|Lead 52150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052151|152151|989898|1|9999052151|MR|Test|E|Lead 52151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052152|152152|989898|1|9999052152|MR|Test|E|Lead 52152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052153|152153|989898|1|9999052153|MR|Test|E|Lead 52153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052154|152154|989898|1|9999052154|MR|Test|E|Lead 52154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052155|152155|989898|1|9999052155|MR|Test|E|Lead 52155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052156|152156|989898|1|9999052156|MR|Test|E|Lead 52156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052157|152157|989898|1|9999052157|MR|Test|E|Lead 52157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052158|152158|989898|1|9999052158|MR|Test|E|Lead 52158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052159|152159|989898|1|9999052159|MR|Test|E|Lead 52159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052160|152160|989898|1|9999052160|MR|Test|E|Lead 52160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052161|152161|989898|1|9999052161|MR|Test|E|Lead 52161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052162|152162|989898|1|9999052162|MR|Test|E|Lead 52162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052163|152163|989898|1|9999052163|MR|Test|E|Lead 52163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052164|152164|989898|1|9999052164|MR|Test|E|Lead 52164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052165|152165|989898|1|9999052165|MR|Test|E|Lead 52165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052166|152166|989898|1|9999052166|MR|Test|E|Lead 52166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052167|152167|989898|1|9999052167|MR|Test|E|Lead 52167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052168|152168|989898|1|9999052168|MR|Test|E|Lead 52168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052169|152169|989898|1|9999052169|MR|Test|E|Lead 52169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052170|152170|989898|1|9999052170|MR|Test|E|Lead 52170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052171|152171|989898|1|9999052171|MR|Test|E|Lead 52171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052172|152172|989898|1|9999052172|MR|Test|E|Lead 52172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052173|152173|989898|1|9999052173|MR|Test|E|Lead 52173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052174|152174|989898|1|9999052174|MR|Test|E|Lead 52174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052175|152175|989898|1|9999052175|MR|Test|E|Lead 52175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052176|152176|989898|1|9999052176|MR|Test|E|Lead 52176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052177|152177|989898|1|9999052177|MR|Test|E|Lead 52177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052178|152178|989898|1|9999052178|MR|Test|E|Lead 52178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052179|152179|989898|1|9999052179|MR|Test|E|Lead 52179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052180|152180|989898|1|9999052180|MR|Test|E|Lead 52180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052181|152181|989898|1|9999052181|MR|Test|E|Lead 52181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052182|152182|989898|1|9999052182|MR|Test|E|Lead 52182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052183|152183|989898|1|9999052183|MR|Test|E|Lead 52183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052184|152184|989898|1|9999052184|MR|Test|E|Lead 52184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052185|152185|989898|1|9999052185|MR|Test|E|Lead 52185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052186|152186|989898|1|9999052186|MR|Test|E|Lead 52186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052187|152187|989898|1|9999052187|MR|Test|E|Lead 52187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052188|152188|989898|1|9999052188|MR|Test|E|Lead 52188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052189|152189|989898|1|9999052189|MR|Test|E|Lead 52189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052190|152190|989898|1|9999052190|MR|Test|E|Lead 52190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052191|152191|989898|1|9999052191|MR|Test|E|Lead 52191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052192|152192|989898|1|9999052192|MR|Test|E|Lead 52192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052193|152193|989898|1|9999052193|MR|Test|E|Lead 52193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052194|152194|989898|1|9999052194|MR|Test|E|Lead 52194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052195|152195|989898|1|9999052195|MR|Test|E|Lead 52195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052196|152196|989898|1|9999052196|MR|Test|E|Lead 52196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052197|152197|989898|1|9999052197|MR|Test|E|Lead 52197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052198|152198|989898|1|9999052198|MR|Test|E|Lead 52198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052199|152199|989898|1|9999052199|MR|Test|E|Lead 52199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052200|152200|989898|1|9999052200|MR|Test|E|Lead 52200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052201|152201|989898|1|9999052201|MR|Test|E|Lead 52201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052202|152202|989898|1|9999052202|MR|Test|E|Lead 52202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052203|152203|989898|1|9999052203|MR|Test|E|Lead 52203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052204|152204|989898|1|9999052204|MR|Test|E|Lead 52204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052205|152205|989898|1|9999052205|MR|Test|E|Lead 52205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052206|152206|989898|1|9999052206|MR|Test|E|Lead 52206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052207|152207|989898|1|9999052207|MR|Test|E|Lead 52207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052208|152208|989898|1|9999052208|MR|Test|E|Lead 52208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052209|152209|989898|1|9999052209|MR|Test|E|Lead 52209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052210|152210|989898|1|9999052210|MR|Test|E|Lead 52210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052211|152211|989898|1|9999052211|MR|Test|E|Lead 52211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052212|152212|989898|1|9999052212|MR|Test|E|Lead 52212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052213|152213|989898|1|9999052213|MR|Test|E|Lead 52213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052214|152214|989898|1|9999052214|MR|Test|E|Lead 52214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052215|152215|989898|1|9999052215|MR|Test|E|Lead 52215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052216|152216|989898|1|9999052216|MR|Test|E|Lead 52216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052217|152217|989898|1|9999052217|MR|Test|E|Lead 52217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052218|152218|989898|1|9999052218|MR|Test|E|Lead 52218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052219|152219|989898|1|9999052219|MR|Test|E|Lead 52219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052220|152220|989898|1|9999052220|MR|Test|E|Lead 52220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052221|152221|989898|1|9999052221|MR|Test|E|Lead 52221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052222|152222|989898|1|9999052222|MR|Test|E|Lead 52222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052223|152223|989898|1|9999052223|MR|Test|E|Lead 52223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052224|152224|989898|1|9999052224|MR|Test|E|Lead 52224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052225|152225|989898|1|9999052225|MR|Test|E|Lead 52225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052226|152226|989898|1|9999052226|MR|Test|E|Lead 52226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052227|152227|989898|1|9999052227|MR|Test|E|Lead 52227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052228|152228|989898|1|9999052228|MR|Test|E|Lead 52228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052229|152229|989898|1|9999052229|MR|Test|E|Lead 52229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052230|152230|989898|1|9999052230|MR|Test|E|Lead 52230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052231|152231|989898|1|9999052231|MR|Test|E|Lead 52231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052232|152232|989898|1|9999052232|MR|Test|E|Lead 52232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052233|152233|989898|1|9999052233|MR|Test|E|Lead 52233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052234|152234|989898|1|9999052234|MR|Test|E|Lead 52234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052235|152235|989898|1|9999052235|MR|Test|E|Lead 52235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052236|152236|989898|1|9999052236|MR|Test|E|Lead 52236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052237|152237|989898|1|9999052237|MR|Test|E|Lead 52237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052238|152238|989898|1|9999052238|MR|Test|E|Lead 52238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052239|152239|989898|1|9999052239|MR|Test|E|Lead 52239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052240|152240|989898|1|9999052240|MR|Test|E|Lead 52240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052241|152241|989898|1|9999052241|MR|Test|E|Lead 52241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052242|152242|989898|1|9999052242|MR|Test|E|Lead 52242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052243|152243|989898|1|9999052243|MR|Test|E|Lead 52243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052244|152244|989898|1|9999052244|MR|Test|E|Lead 52244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052245|152245|989898|1|9999052245|MR|Test|E|Lead 52245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052246|152246|989898|1|9999052246|MR|Test|E|Lead 52246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052247|152247|989898|1|9999052247|MR|Test|E|Lead 52247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052248|152248|989898|1|9999052248|MR|Test|E|Lead 52248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052249|152249|989898|1|9999052249|MR|Test|E|Lead 52249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052250|152250|989898|1|9999052250|MR|Test|E|Lead 52250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052251|152251|989898|1|9999052251|MR|Test|E|Lead 52251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052252|152252|989898|1|9999052252|MR|Test|E|Lead 52252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052253|152253|989898|1|9999052253|MR|Test|E|Lead 52253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052254|152254|989898|1|9999052254|MR|Test|E|Lead 52254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052255|152255|989898|1|9999052255|MR|Test|E|Lead 52255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052256|152256|989898|1|9999052256|MR|Test|E|Lead 52256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052257|152257|989898|1|9999052257|MR|Test|E|Lead 52257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052258|152258|989898|1|9999052258|MR|Test|E|Lead 52258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052259|152259|989898|1|9999052259|MR|Test|E|Lead 52259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052260|152260|989898|1|9999052260|MR|Test|E|Lead 52260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052261|152261|989898|1|9999052261|MR|Test|E|Lead 52261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052262|152262|989898|1|9999052262|MR|Test|E|Lead 52262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052263|152263|989898|1|9999052263|MR|Test|E|Lead 52263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052264|152264|989898|1|9999052264|MR|Test|E|Lead 52264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052265|152265|989898|1|9999052265|MR|Test|E|Lead 52265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052266|152266|989898|1|9999052266|MR|Test|E|Lead 52266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052267|152267|989898|1|9999052267|MR|Test|E|Lead 52267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052268|152268|989898|1|9999052268|MR|Test|E|Lead 52268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052269|152269|989898|1|9999052269|MR|Test|E|Lead 52269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052270|152270|989898|1|9999052270|MR|Test|E|Lead 52270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052271|152271|989898|1|9999052271|MR|Test|E|Lead 52271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052272|152272|989898|1|9999052272|MR|Test|E|Lead 52272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052273|152273|989898|1|9999052273|MR|Test|E|Lead 52273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052274|152274|989898|1|9999052274|MR|Test|E|Lead 52274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052275|152275|989898|1|9999052275|MR|Test|E|Lead 52275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052276|152276|989898|1|9999052276|MR|Test|E|Lead 52276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052277|152277|989898|1|9999052277|MR|Test|E|Lead 52277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052278|152278|989898|1|9999052278|MR|Test|E|Lead 52278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052279|152279|989898|1|9999052279|MR|Test|E|Lead 52279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052280|152280|989898|1|9999052280|MR|Test|E|Lead 52280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052281|152281|989898|1|9999052281|MR|Test|E|Lead 52281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052282|152282|989898|1|9999052282|MR|Test|E|Lead 52282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052283|152283|989898|1|9999052283|MR|Test|E|Lead 52283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052284|152284|989898|1|9999052284|MR|Test|E|Lead 52284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052285|152285|989898|1|9999052285|MR|Test|E|Lead 52285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052286|152286|989898|1|9999052286|MR|Test|E|Lead 52286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052287|152287|989898|1|9999052287|MR|Test|E|Lead 52287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052288|152288|989898|1|9999052288|MR|Test|E|Lead 52288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052289|152289|989898|1|9999052289|MR|Test|E|Lead 52289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052290|152290|989898|1|9999052290|MR|Test|E|Lead 52290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052291|152291|989898|1|9999052291|MR|Test|E|Lead 52291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052292|152292|989898|1|9999052292|MR|Test|E|Lead 52292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052293|152293|989898|1|9999052293|MR|Test|E|Lead 52293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052294|152294|989898|1|9999052294|MR|Test|E|Lead 52294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052295|152295|989898|1|9999052295|MR|Test|E|Lead 52295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052296|152296|989898|1|9999052296|MR|Test|E|Lead 52296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052297|152297|989898|1|9999052297|MR|Test|E|Lead 52297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052298|152298|989898|1|9999052298|MR|Test|E|Lead 52298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052299|152299|989898|1|9999052299|MR|Test|E|Lead 52299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052300|152300|989898|1|9999052300|MR|Test|E|Lead 52300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052301|152301|989898|1|9999052301|MR|Test|E|Lead 52301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052302|152302|989898|1|9999052302|MR|Test|E|Lead 52302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052303|152303|989898|1|9999052303|MR|Test|E|Lead 52303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052304|152304|989898|1|9999052304|MR|Test|E|Lead 52304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052305|152305|989898|1|9999052305|MR|Test|E|Lead 52305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052306|152306|989898|1|9999052306|MR|Test|E|Lead 52306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052307|152307|989898|1|9999052307|MR|Test|E|Lead 52307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052308|152308|989898|1|9999052308|MR|Test|E|Lead 52308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052309|152309|989898|1|9999052309|MR|Test|E|Lead 52309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052310|152310|989898|1|9999052310|MR|Test|E|Lead 52310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052311|152311|989898|1|9999052311|MR|Test|E|Lead 52311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052312|152312|989898|1|9999052312|MR|Test|E|Lead 52312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052313|152313|989898|1|9999052313|MR|Test|E|Lead 52313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052314|152314|989898|1|9999052314|MR|Test|E|Lead 52314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052315|152315|989898|1|9999052315|MR|Test|E|Lead 52315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052316|152316|989898|1|9999052316|MR|Test|E|Lead 52316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052317|152317|989898|1|9999052317|MR|Test|E|Lead 52317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052318|152318|989898|1|9999052318|MR|Test|E|Lead 52318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052319|152319|989898|1|9999052319|MR|Test|E|Lead 52319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052320|152320|989898|1|9999052320|MR|Test|E|Lead 52320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052321|152321|989898|1|9999052321|MR|Test|E|Lead 52321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052322|152322|989898|1|9999052322|MR|Test|E|Lead 52322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052323|152323|989898|1|9999052323|MR|Test|E|Lead 52323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052324|152324|989898|1|9999052324|MR|Test|E|Lead 52324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052325|152325|989898|1|9999052325|MR|Test|E|Lead 52325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052326|152326|989898|1|9999052326|MR|Test|E|Lead 52326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052327|152327|989898|1|9999052327|MR|Test|E|Lead 52327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052328|152328|989898|1|9999052328|MR|Test|E|Lead 52328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052329|152329|989898|1|9999052329|MR|Test|E|Lead 52329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052330|152330|989898|1|9999052330|MR|Test|E|Lead 52330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052331|152331|989898|1|9999052331|MR|Test|E|Lead 52331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052332|152332|989898|1|9999052332|MR|Test|E|Lead 52332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052333|152333|989898|1|9999052333|MR|Test|E|Lead 52333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052334|152334|989898|1|9999052334|MR|Test|E|Lead 52334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052335|152335|989898|1|9999052335|MR|Test|E|Lead 52335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052336|152336|989898|1|9999052336|MR|Test|E|Lead 52336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052337|152337|989898|1|9999052337|MR|Test|E|Lead 52337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052338|152338|989898|1|9999052338|MR|Test|E|Lead 52338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052339|152339|989898|1|9999052339|MR|Test|E|Lead 52339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052340|152340|989898|1|9999052340|MR|Test|E|Lead 52340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052341|152341|989898|1|9999052341|MR|Test|E|Lead 52341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052342|152342|989898|1|9999052342|MR|Test|E|Lead 52342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052343|152343|989898|1|9999052343|MR|Test|E|Lead 52343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052344|152344|989898|1|9999052344|MR|Test|E|Lead 52344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052345|152345|989898|1|9999052345|MR|Test|E|Lead 52345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052346|152346|989898|1|9999052346|MR|Test|E|Lead 52346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052347|152347|989898|1|9999052347|MR|Test|E|Lead 52347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052348|152348|989898|1|9999052348|MR|Test|E|Lead 52348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052349|152349|989898|1|9999052349|MR|Test|E|Lead 52349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052350|152350|989898|1|9999052350|MR|Test|E|Lead 52350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052351|152351|989898|1|9999052351|MR|Test|E|Lead 52351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052352|152352|989898|1|9999052352|MR|Test|E|Lead 52352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052353|152353|989898|1|9999052353|MR|Test|E|Lead 52353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052354|152354|989898|1|9999052354|MR|Test|E|Lead 52354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052355|152355|989898|1|9999052355|MR|Test|E|Lead 52355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052356|152356|989898|1|9999052356|MR|Test|E|Lead 52356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052357|152357|989898|1|9999052357|MR|Test|E|Lead 52357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052358|152358|989898|1|9999052358|MR|Test|E|Lead 52358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052359|152359|989898|1|9999052359|MR|Test|E|Lead 52359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052360|152360|989898|1|9999052360|MR|Test|E|Lead 52360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052361|152361|989898|1|9999052361|MR|Test|E|Lead 52361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052362|152362|989898|1|9999052362|MR|Test|E|Lead 52362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052363|152363|989898|1|9999052363|MR|Test|E|Lead 52363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052364|152364|989898|1|9999052364|MR|Test|E|Lead 52364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052365|152365|989898|1|9999052365|MR|Test|E|Lead 52365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052366|152366|989898|1|9999052366|MR|Test|E|Lead 52366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052367|152367|989898|1|9999052367|MR|Test|E|Lead 52367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052368|152368|989898|1|9999052368|MR|Test|E|Lead 52368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052369|152369|989898|1|9999052369|MR|Test|E|Lead 52369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052370|152370|989898|1|9999052370|MR|Test|E|Lead 52370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052371|152371|989898|1|9999052371|MR|Test|E|Lead 52371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052372|152372|989898|1|9999052372|MR|Test|E|Lead 52372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052373|152373|989898|1|9999052373|MR|Test|E|Lead 52373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052374|152374|989898|1|9999052374|MR|Test|E|Lead 52374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052375|152375|989898|1|9999052375|MR|Test|E|Lead 52375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052376|152376|989898|1|9999052376|MR|Test|E|Lead 52376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052377|152377|989898|1|9999052377|MR|Test|E|Lead 52377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052378|152378|989898|1|9999052378|MR|Test|E|Lead 52378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052379|152379|989898|1|9999052379|MR|Test|E|Lead 52379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052380|152380|989898|1|9999052380|MR|Test|E|Lead 52380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052381|152381|989898|1|9999052381|MR|Test|E|Lead 52381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052382|152382|989898|1|9999052382|MR|Test|E|Lead 52382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052383|152383|989898|1|9999052383|MR|Test|E|Lead 52383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052384|152384|989898|1|9999052384|MR|Test|E|Lead 52384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052385|152385|989898|1|9999052385|MR|Test|E|Lead 52385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052386|152386|989898|1|9999052386|MR|Test|E|Lead 52386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052387|152387|989898|1|9999052387|MR|Test|E|Lead 52387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052388|152388|989898|1|9999052388|MR|Test|E|Lead 52388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052389|152389|989898|1|9999052389|MR|Test|E|Lead 52389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052390|152390|989898|1|9999052390|MR|Test|E|Lead 52390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052391|152391|989898|1|9999052391|MR|Test|E|Lead 52391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052392|152392|989898|1|9999052392|MR|Test|E|Lead 52392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052393|152393|989898|1|9999052393|MR|Test|E|Lead 52393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052394|152394|989898|1|9999052394|MR|Test|E|Lead 52394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052395|152395|989898|1|9999052395|MR|Test|E|Lead 52395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052396|152396|989898|1|9999052396|MR|Test|E|Lead 52396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052397|152397|989898|1|9999052397|MR|Test|E|Lead 52397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052398|152398|989898|1|9999052398|MR|Test|E|Lead 52398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052399|152399|989898|1|9999052399|MR|Test|E|Lead 52399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052400|152400|989898|1|9999052400|MR|Test|E|Lead 52400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052401|152401|989898|1|9999052401|MR|Test|E|Lead 52401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052402|152402|989898|1|9999052402|MR|Test|E|Lead 52402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052403|152403|989898|1|9999052403|MR|Test|E|Lead 52403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052404|152404|989898|1|9999052404|MR|Test|E|Lead 52404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052405|152405|989898|1|9999052405|MR|Test|E|Lead 52405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052406|152406|989898|1|9999052406|MR|Test|E|Lead 52406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052407|152407|989898|1|9999052407|MR|Test|E|Lead 52407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052408|152408|989898|1|9999052408|MR|Test|E|Lead 52408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052409|152409|989898|1|9999052409|MR|Test|E|Lead 52409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052410|152410|989898|1|9999052410|MR|Test|E|Lead 52410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052411|152411|989898|1|9999052411|MR|Test|E|Lead 52411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052412|152412|989898|1|9999052412|MR|Test|E|Lead 52412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052413|152413|989898|1|9999052413|MR|Test|E|Lead 52413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052414|152414|989898|1|9999052414|MR|Test|E|Lead 52414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052415|152415|989898|1|9999052415|MR|Test|E|Lead 52415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052416|152416|989898|1|9999052416|MR|Test|E|Lead 52416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052417|152417|989898|1|9999052417|MR|Test|E|Lead 52417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052418|152418|989898|1|9999052418|MR|Test|E|Lead 52418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052419|152419|989898|1|9999052419|MR|Test|E|Lead 52419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052420|152420|989898|1|9999052420|MR|Test|E|Lead 52420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052421|152421|989898|1|9999052421|MR|Test|E|Lead 52421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052422|152422|989898|1|9999052422|MR|Test|E|Lead 52422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052423|152423|989898|1|9999052423|MR|Test|E|Lead 52423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052424|152424|989898|1|9999052424|MR|Test|E|Lead 52424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052425|152425|989898|1|9999052425|MR|Test|E|Lead 52425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052426|152426|989898|1|9999052426|MR|Test|E|Lead 52426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052427|152427|989898|1|9999052427|MR|Test|E|Lead 52427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052428|152428|989898|1|9999052428|MR|Test|E|Lead 52428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052429|152429|989898|1|9999052429|MR|Test|E|Lead 52429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052430|152430|989898|1|9999052430|MR|Test|E|Lead 52430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052431|152431|989898|1|9999052431|MR|Test|E|Lead 52431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052432|152432|989898|1|9999052432|MR|Test|E|Lead 52432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052433|152433|989898|1|9999052433|MR|Test|E|Lead 52433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052434|152434|989898|1|9999052434|MR|Test|E|Lead 52434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052435|152435|989898|1|9999052435|MR|Test|E|Lead 52435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052436|152436|989898|1|9999052436|MR|Test|E|Lead 52436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052437|152437|989898|1|9999052437|MR|Test|E|Lead 52437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052438|152438|989898|1|9999052438|MR|Test|E|Lead 52438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052439|152439|989898|1|9999052439|MR|Test|E|Lead 52439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052440|152440|989898|1|9999052440|MR|Test|E|Lead 52440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052441|152441|989898|1|9999052441|MR|Test|E|Lead 52441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052442|152442|989898|1|9999052442|MR|Test|E|Lead 52442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052443|152443|989898|1|9999052443|MR|Test|E|Lead 52443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052444|152444|989898|1|9999052444|MR|Test|E|Lead 52444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052445|152445|989898|1|9999052445|MR|Test|E|Lead 52445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052446|152446|989898|1|9999052446|MR|Test|E|Lead 52446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052447|152447|989898|1|9999052447|MR|Test|E|Lead 52447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052448|152448|989898|1|9999052448|MR|Test|E|Lead 52448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052449|152449|989898|1|9999052449|MR|Test|E|Lead 52449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052450|152450|989898|1|9999052450|MR|Test|E|Lead 52450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052451|152451|989898|1|9999052451|MR|Test|E|Lead 52451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052452|152452|989898|1|9999052452|MR|Test|E|Lead 52452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052453|152453|989898|1|9999052453|MR|Test|E|Lead 52453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052454|152454|989898|1|9999052454|MR|Test|E|Lead 52454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052455|152455|989898|1|9999052455|MR|Test|E|Lead 52455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052456|152456|989898|1|9999052456|MR|Test|E|Lead 52456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052457|152457|989898|1|9999052457|MR|Test|E|Lead 52457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052458|152458|989898|1|9999052458|MR|Test|E|Lead 52458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052459|152459|989898|1|9999052459|MR|Test|E|Lead 52459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052460|152460|989898|1|9999052460|MR|Test|E|Lead 52460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052461|152461|989898|1|9999052461|MR|Test|E|Lead 52461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052462|152462|989898|1|9999052462|MR|Test|E|Lead 52462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052463|152463|989898|1|9999052463|MR|Test|E|Lead 52463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052464|152464|989898|1|9999052464|MR|Test|E|Lead 52464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052465|152465|989898|1|9999052465|MR|Test|E|Lead 52465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052466|152466|989898|1|9999052466|MR|Test|E|Lead 52466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052467|152467|989898|1|9999052467|MR|Test|E|Lead 52467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052468|152468|989898|1|9999052468|MR|Test|E|Lead 52468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052469|152469|989898|1|9999052469|MR|Test|E|Lead 52469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052470|152470|989898|1|9999052470|MR|Test|E|Lead 52470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052471|152471|989898|1|9999052471|MR|Test|E|Lead 52471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052472|152472|989898|1|9999052472|MR|Test|E|Lead 52472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052473|152473|989898|1|9999052473|MR|Test|E|Lead 52473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052474|152474|989898|1|9999052474|MR|Test|E|Lead 52474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052475|152475|989898|1|9999052475|MR|Test|E|Lead 52475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052476|152476|989898|1|9999052476|MR|Test|E|Lead 52476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052477|152477|989898|1|9999052477|MR|Test|E|Lead 52477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052478|152478|989898|1|9999052478|MR|Test|E|Lead 52478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052479|152479|989898|1|9999052479|MR|Test|E|Lead 52479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052480|152480|989898|1|9999052480|MR|Test|E|Lead 52480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052481|152481|989898|1|9999052481|MR|Test|E|Lead 52481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052482|152482|989898|1|9999052482|MR|Test|E|Lead 52482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052483|152483|989898|1|9999052483|MR|Test|E|Lead 52483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052484|152484|989898|1|9999052484|MR|Test|E|Lead 52484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052485|152485|989898|1|9999052485|MR|Test|E|Lead 52485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052486|152486|989898|1|9999052486|MR|Test|E|Lead 52486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052487|152487|989898|1|9999052487|MR|Test|E|Lead 52487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052488|152488|989898|1|9999052488|MR|Test|E|Lead 52488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052489|152489|989898|1|9999052489|MR|Test|E|Lead 52489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052490|152490|989898|1|9999052490|MR|Test|E|Lead 52490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052491|152491|989898|1|9999052491|MR|Test|E|Lead 52491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052492|152492|989898|1|9999052492|MR|Test|E|Lead 52492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052493|152493|989898|1|9999052493|MR|Test|E|Lead 52493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052494|152494|989898|1|9999052494|MR|Test|E|Lead 52494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052495|152495|989898|1|9999052495|MR|Test|E|Lead 52495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052496|152496|989898|1|9999052496|MR|Test|E|Lead 52496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052497|152497|989898|1|9999052497|MR|Test|E|Lead 52497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052498|152498|989898|1|9999052498|MR|Test|E|Lead 52498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052499|152499|989898|1|9999052499|MR|Test|E|Lead 52499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052500|152500|989898|1|9999052500|MR|Test|E|Lead 52500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052501|152501|989898|1|9999052501|MR|Test|E|Lead 52501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052502|152502|989898|1|9999052502|MR|Test|E|Lead 52502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052503|152503|989898|1|9999052503|MR|Test|E|Lead 52503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052504|152504|989898|1|9999052504|MR|Test|E|Lead 52504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052505|152505|989898|1|9999052505|MR|Test|E|Lead 52505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052506|152506|989898|1|9999052506|MR|Test|E|Lead 52506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052507|152507|989898|1|9999052507|MR|Test|E|Lead 52507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052508|152508|989898|1|9999052508|MR|Test|E|Lead 52508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052509|152509|989898|1|9999052509|MR|Test|E|Lead 52509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052510|152510|989898|1|9999052510|MR|Test|E|Lead 52510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052511|152511|989898|1|9999052511|MR|Test|E|Lead 52511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052512|152512|989898|1|9999052512|MR|Test|E|Lead 52512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052513|152513|989898|1|9999052513|MR|Test|E|Lead 52513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052514|152514|989898|1|9999052514|MR|Test|E|Lead 52514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052515|152515|989898|1|9999052515|MR|Test|E|Lead 52515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052516|152516|989898|1|9999052516|MR|Test|E|Lead 52516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052517|152517|989898|1|9999052517|MR|Test|E|Lead 52517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052518|152518|989898|1|9999052518|MR|Test|E|Lead 52518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052519|152519|989898|1|9999052519|MR|Test|E|Lead 52519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052520|152520|989898|1|9999052520|MR|Test|E|Lead 52520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052521|152521|989898|1|9999052521|MR|Test|E|Lead 52521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052522|152522|989898|1|9999052522|MR|Test|E|Lead 52522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052523|152523|989898|1|9999052523|MR|Test|E|Lead 52523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052524|152524|989898|1|9999052524|MR|Test|E|Lead 52524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052525|152525|989898|1|9999052525|MR|Test|E|Lead 52525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052526|152526|989898|1|9999052526|MR|Test|E|Lead 52526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052527|152527|989898|1|9999052527|MR|Test|E|Lead 52527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052528|152528|989898|1|9999052528|MR|Test|E|Lead 52528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052529|152529|989898|1|9999052529|MR|Test|E|Lead 52529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052530|152530|989898|1|9999052530|MR|Test|E|Lead 52530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052531|152531|989898|1|9999052531|MR|Test|E|Lead 52531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052532|152532|989898|1|9999052532|MR|Test|E|Lead 52532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052533|152533|989898|1|9999052533|MR|Test|E|Lead 52533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052534|152534|989898|1|9999052534|MR|Test|E|Lead 52534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052535|152535|989898|1|9999052535|MR|Test|E|Lead 52535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052536|152536|989898|1|9999052536|MR|Test|E|Lead 52536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052537|152537|989898|1|9999052537|MR|Test|E|Lead 52537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052538|152538|989898|1|9999052538|MR|Test|E|Lead 52538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052539|152539|989898|1|9999052539|MR|Test|E|Lead 52539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052540|152540|989898|1|9999052540|MR|Test|E|Lead 52540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052541|152541|989898|1|9999052541|MR|Test|E|Lead 52541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052542|152542|989898|1|9999052542|MR|Test|E|Lead 52542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052543|152543|989898|1|9999052543|MR|Test|E|Lead 52543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052544|152544|989898|1|9999052544|MR|Test|E|Lead 52544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052545|152545|989898|1|9999052545|MR|Test|E|Lead 52545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052546|152546|989898|1|9999052546|MR|Test|E|Lead 52546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052547|152547|989898|1|9999052547|MR|Test|E|Lead 52547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052548|152548|989898|1|9999052548|MR|Test|E|Lead 52548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052549|152549|989898|1|9999052549|MR|Test|E|Lead 52549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052550|152550|989898|1|9999052550|MR|Test|E|Lead 52550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052551|152551|989898|1|9999052551|MR|Test|E|Lead 52551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052552|152552|989898|1|9999052552|MR|Test|E|Lead 52552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052553|152553|989898|1|9999052553|MR|Test|E|Lead 52553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052554|152554|989898|1|9999052554|MR|Test|E|Lead 52554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052555|152555|989898|1|9999052555|MR|Test|E|Lead 52555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052556|152556|989898|1|9999052556|MR|Test|E|Lead 52556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052557|152557|989898|1|9999052557|MR|Test|E|Lead 52557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052558|152558|989898|1|9999052558|MR|Test|E|Lead 52558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052559|152559|989898|1|9999052559|MR|Test|E|Lead 52559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052560|152560|989898|1|9999052560|MR|Test|E|Lead 52560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052561|152561|989898|1|9999052561|MR|Test|E|Lead 52561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052562|152562|989898|1|9999052562|MR|Test|E|Lead 52562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052563|152563|989898|1|9999052563|MR|Test|E|Lead 52563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052564|152564|989898|1|9999052564|MR|Test|E|Lead 52564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052565|152565|989898|1|9999052565|MR|Test|E|Lead 52565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052566|152566|989898|1|9999052566|MR|Test|E|Lead 52566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052567|152567|989898|1|9999052567|MR|Test|E|Lead 52567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052568|152568|989898|1|9999052568|MR|Test|E|Lead 52568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052569|152569|989898|1|9999052569|MR|Test|E|Lead 52569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052570|152570|989898|1|9999052570|MR|Test|E|Lead 52570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052571|152571|989898|1|9999052571|MR|Test|E|Lead 52571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052572|152572|989898|1|9999052572|MR|Test|E|Lead 52572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052573|152573|989898|1|9999052573|MR|Test|E|Lead 52573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052574|152574|989898|1|9999052574|MR|Test|E|Lead 52574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052575|152575|989898|1|9999052575|MR|Test|E|Lead 52575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052576|152576|989898|1|9999052576|MR|Test|E|Lead 52576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052577|152577|989898|1|9999052577|MR|Test|E|Lead 52577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052578|152578|989898|1|9999052578|MR|Test|E|Lead 52578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052579|152579|989898|1|9999052579|MR|Test|E|Lead 52579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052580|152580|989898|1|9999052580|MR|Test|E|Lead 52580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052581|152581|989898|1|9999052581|MR|Test|E|Lead 52581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052582|152582|989898|1|9999052582|MR|Test|E|Lead 52582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052583|152583|989898|1|9999052583|MR|Test|E|Lead 52583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052584|152584|989898|1|9999052584|MR|Test|E|Lead 52584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052585|152585|989898|1|9999052585|MR|Test|E|Lead 52585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052586|152586|989898|1|9999052586|MR|Test|E|Lead 52586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052587|152587|989898|1|9999052587|MR|Test|E|Lead 52587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052588|152588|989898|1|9999052588|MR|Test|E|Lead 52588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052589|152589|989898|1|9999052589|MR|Test|E|Lead 52589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052590|152590|989898|1|9999052590|MR|Test|E|Lead 52590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052591|152591|989898|1|9999052591|MR|Test|E|Lead 52591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052592|152592|989898|1|9999052592|MR|Test|E|Lead 52592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052593|152593|989898|1|9999052593|MR|Test|E|Lead 52593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052594|152594|989898|1|9999052594|MR|Test|E|Lead 52594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052595|152595|989898|1|9999052595|MR|Test|E|Lead 52595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052596|152596|989898|1|9999052596|MR|Test|E|Lead 52596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052597|152597|989898|1|9999052597|MR|Test|E|Lead 52597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052598|152598|989898|1|9999052598|MR|Test|E|Lead 52598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052599|152599|989898|1|9999052599|MR|Test|E|Lead 52599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052600|152600|989898|1|9999052600|MR|Test|E|Lead 52600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052601|152601|989898|1|9999052601|MR|Test|E|Lead 52601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052602|152602|989898|1|9999052602|MR|Test|E|Lead 52602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052603|152603|989898|1|9999052603|MR|Test|E|Lead 52603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052604|152604|989898|1|9999052604|MR|Test|E|Lead 52604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052605|152605|989898|1|9999052605|MR|Test|E|Lead 52605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052606|152606|989898|1|9999052606|MR|Test|E|Lead 52606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052607|152607|989898|1|9999052607|MR|Test|E|Lead 52607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052608|152608|989898|1|9999052608|MR|Test|E|Lead 52608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052609|152609|989898|1|9999052609|MR|Test|E|Lead 52609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052610|152610|989898|1|9999052610|MR|Test|E|Lead 52610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052611|152611|989898|1|9999052611|MR|Test|E|Lead 52611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052612|152612|989898|1|9999052612|MR|Test|E|Lead 52612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052613|152613|989898|1|9999052613|MR|Test|E|Lead 52613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052614|152614|989898|1|9999052614|MR|Test|E|Lead 52614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052615|152615|989898|1|9999052615|MR|Test|E|Lead 52615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052616|152616|989898|1|9999052616|MR|Test|E|Lead 52616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052617|152617|989898|1|9999052617|MR|Test|E|Lead 52617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052618|152618|989898|1|9999052618|MR|Test|E|Lead 52618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052619|152619|989898|1|9999052619|MR|Test|E|Lead 52619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052620|152620|989898|1|9999052620|MR|Test|E|Lead 52620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052621|152621|989898|1|9999052621|MR|Test|E|Lead 52621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052622|152622|989898|1|9999052622|MR|Test|E|Lead 52622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052623|152623|989898|1|9999052623|MR|Test|E|Lead 52623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052624|152624|989898|1|9999052624|MR|Test|E|Lead 52624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052625|152625|989898|1|9999052625|MR|Test|E|Lead 52625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052626|152626|989898|1|9999052626|MR|Test|E|Lead 52626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052627|152627|989898|1|9999052627|MR|Test|E|Lead 52627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052628|152628|989898|1|9999052628|MR|Test|E|Lead 52628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052629|152629|989898|1|9999052629|MR|Test|E|Lead 52629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052630|152630|989898|1|9999052630|MR|Test|E|Lead 52630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052631|152631|989898|1|9999052631|MR|Test|E|Lead 52631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052632|152632|989898|1|9999052632|MR|Test|E|Lead 52632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052633|152633|989898|1|9999052633|MR|Test|E|Lead 52633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052634|152634|989898|1|9999052634|MR|Test|E|Lead 52634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052635|152635|989898|1|9999052635|MR|Test|E|Lead 52635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052636|152636|989898|1|9999052636|MR|Test|E|Lead 52636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052637|152637|989898|1|9999052637|MR|Test|E|Lead 52637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052638|152638|989898|1|9999052638|MR|Test|E|Lead 52638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052639|152639|989898|1|9999052639|MR|Test|E|Lead 52639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052640|152640|989898|1|9999052640|MR|Test|E|Lead 52640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052641|152641|989898|1|9999052641|MR|Test|E|Lead 52641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052642|152642|989898|1|9999052642|MR|Test|E|Lead 52642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052643|152643|989898|1|9999052643|MR|Test|E|Lead 52643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052644|152644|989898|1|9999052644|MR|Test|E|Lead 52644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052645|152645|989898|1|9999052645|MR|Test|E|Lead 52645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052646|152646|989898|1|9999052646|MR|Test|E|Lead 52646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052647|152647|989898|1|9999052647|MR|Test|E|Lead 52647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052648|152648|989898|1|9999052648|MR|Test|E|Lead 52648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052649|152649|989898|1|9999052649|MR|Test|E|Lead 52649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052650|152650|989898|1|9999052650|MR|Test|E|Lead 52650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052651|152651|989898|1|9999052651|MR|Test|E|Lead 52651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052652|152652|989898|1|9999052652|MR|Test|E|Lead 52652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052653|152653|989898|1|9999052653|MR|Test|E|Lead 52653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052654|152654|989898|1|9999052654|MR|Test|E|Lead 52654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052655|152655|989898|1|9999052655|MR|Test|E|Lead 52655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052656|152656|989898|1|9999052656|MR|Test|E|Lead 52656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052657|152657|989898|1|9999052657|MR|Test|E|Lead 52657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052658|152658|989898|1|9999052658|MR|Test|E|Lead 52658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052659|152659|989898|1|9999052659|MR|Test|E|Lead 52659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052660|152660|989898|1|9999052660|MR|Test|E|Lead 52660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052661|152661|989898|1|9999052661|MR|Test|E|Lead 52661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052662|152662|989898|1|9999052662|MR|Test|E|Lead 52662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052663|152663|989898|1|9999052663|MR|Test|E|Lead 52663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052664|152664|989898|1|9999052664|MR|Test|E|Lead 52664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052665|152665|989898|1|9999052665|MR|Test|E|Lead 52665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052666|152666|989898|1|9999052666|MR|Test|E|Lead 52666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052667|152667|989898|1|9999052667|MR|Test|E|Lead 52667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052668|152668|989898|1|9999052668|MR|Test|E|Lead 52668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052669|152669|989898|1|9999052669|MR|Test|E|Lead 52669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052670|152670|989898|1|9999052670|MR|Test|E|Lead 52670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052671|152671|989898|1|9999052671|MR|Test|E|Lead 52671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052672|152672|989898|1|9999052672|MR|Test|E|Lead 52672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052673|152673|989898|1|9999052673|MR|Test|E|Lead 52673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052674|152674|989898|1|9999052674|MR|Test|E|Lead 52674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052675|152675|989898|1|9999052675|MR|Test|E|Lead 52675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052676|152676|989898|1|9999052676|MR|Test|E|Lead 52676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052677|152677|989898|1|9999052677|MR|Test|E|Lead 52677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052678|152678|989898|1|9999052678|MR|Test|E|Lead 52678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052679|152679|989898|1|9999052679|MR|Test|E|Lead 52679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052680|152680|989898|1|9999052680|MR|Test|E|Lead 52680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052681|152681|989898|1|9999052681|MR|Test|E|Lead 52681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052682|152682|989898|1|9999052682|MR|Test|E|Lead 52682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052683|152683|989898|1|9999052683|MR|Test|E|Lead 52683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052684|152684|989898|1|9999052684|MR|Test|E|Lead 52684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052685|152685|989898|1|9999052685|MR|Test|E|Lead 52685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052686|152686|989898|1|9999052686|MR|Test|E|Lead 52686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052687|152687|989898|1|9999052687|MR|Test|E|Lead 52687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052688|152688|989898|1|9999052688|MR|Test|E|Lead 52688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052689|152689|989898|1|9999052689|MR|Test|E|Lead 52689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052690|152690|989898|1|9999052690|MR|Test|E|Lead 52690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052691|152691|989898|1|9999052691|MR|Test|E|Lead 52691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052692|152692|989898|1|9999052692|MR|Test|E|Lead 52692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052693|152693|989898|1|9999052693|MR|Test|E|Lead 52693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052694|152694|989898|1|9999052694|MR|Test|E|Lead 52694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052695|152695|989898|1|9999052695|MR|Test|E|Lead 52695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052696|152696|989898|1|9999052696|MR|Test|E|Lead 52696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052697|152697|989898|1|9999052697|MR|Test|E|Lead 52697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052698|152698|989898|1|9999052698|MR|Test|E|Lead 52698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052699|152699|989898|1|9999052699|MR|Test|E|Lead 52699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052700|152700|989898|1|9999052700|MR|Test|E|Lead 52700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052701|152701|989898|1|9999052701|MR|Test|E|Lead 52701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052702|152702|989898|1|9999052702|MR|Test|E|Lead 52702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052703|152703|989898|1|9999052703|MR|Test|E|Lead 52703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052704|152704|989898|1|9999052704|MR|Test|E|Lead 52704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052705|152705|989898|1|9999052705|MR|Test|E|Lead 52705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052706|152706|989898|1|9999052706|MR|Test|E|Lead 52706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052707|152707|989898|1|9999052707|MR|Test|E|Lead 52707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052708|152708|989898|1|9999052708|MR|Test|E|Lead 52708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052709|152709|989898|1|9999052709|MR|Test|E|Lead 52709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052710|152710|989898|1|9999052710|MR|Test|E|Lead 52710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052711|152711|989898|1|9999052711|MR|Test|E|Lead 52711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052712|152712|989898|1|9999052712|MR|Test|E|Lead 52712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052713|152713|989898|1|9999052713|MR|Test|E|Lead 52713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052714|152714|989898|1|9999052714|MR|Test|E|Lead 52714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052715|152715|989898|1|9999052715|MR|Test|E|Lead 52715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052716|152716|989898|1|9999052716|MR|Test|E|Lead 52716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052717|152717|989898|1|9999052717|MR|Test|E|Lead 52717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052718|152718|989898|1|9999052718|MR|Test|E|Lead 52718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052719|152719|989898|1|9999052719|MR|Test|E|Lead 52719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052720|152720|989898|1|9999052720|MR|Test|E|Lead 52720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052721|152721|989898|1|9999052721|MR|Test|E|Lead 52721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052722|152722|989898|1|9999052722|MR|Test|E|Lead 52722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052723|152723|989898|1|9999052723|MR|Test|E|Lead 52723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052724|152724|989898|1|9999052724|MR|Test|E|Lead 52724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052725|152725|989898|1|9999052725|MR|Test|E|Lead 52725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052726|152726|989898|1|9999052726|MR|Test|E|Lead 52726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052727|152727|989898|1|9999052727|MR|Test|E|Lead 52727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052728|152728|989898|1|9999052728|MR|Test|E|Lead 52728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052729|152729|989898|1|9999052729|MR|Test|E|Lead 52729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052730|152730|989898|1|9999052730|MR|Test|E|Lead 52730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052731|152731|989898|1|9999052731|MR|Test|E|Lead 52731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052732|152732|989898|1|9999052732|MR|Test|E|Lead 52732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052733|152733|989898|1|9999052733|MR|Test|E|Lead 52733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052734|152734|989898|1|9999052734|MR|Test|E|Lead 52734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052735|152735|989898|1|9999052735|MR|Test|E|Lead 52735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052736|152736|989898|1|9999052736|MR|Test|E|Lead 52736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052737|152737|989898|1|9999052737|MR|Test|E|Lead 52737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052738|152738|989898|1|9999052738|MR|Test|E|Lead 52738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052739|152739|989898|1|9999052739|MR|Test|E|Lead 52739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052740|152740|989898|1|9999052740|MR|Test|E|Lead 52740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052741|152741|989898|1|9999052741|MR|Test|E|Lead 52741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052742|152742|989898|1|9999052742|MR|Test|E|Lead 52742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052743|152743|989898|1|9999052743|MR|Test|E|Lead 52743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052744|152744|989898|1|9999052744|MR|Test|E|Lead 52744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052745|152745|989898|1|9999052745|MR|Test|E|Lead 52745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052746|152746|989898|1|9999052746|MR|Test|E|Lead 52746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052747|152747|989898|1|9999052747|MR|Test|E|Lead 52747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052748|152748|989898|1|9999052748|MR|Test|E|Lead 52748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052749|152749|989898|1|9999052749|MR|Test|E|Lead 52749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052750|152750|989898|1|9999052750|MR|Test|E|Lead 52750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052751|152751|989898|1|9999052751|MR|Test|E|Lead 52751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052752|152752|989898|1|9999052752|MR|Test|E|Lead 52752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052753|152753|989898|1|9999052753|MR|Test|E|Lead 52753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052754|152754|989898|1|9999052754|MR|Test|E|Lead 52754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052755|152755|989898|1|9999052755|MR|Test|E|Lead 52755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052756|152756|989898|1|9999052756|MR|Test|E|Lead 52756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052757|152757|989898|1|9999052757|MR|Test|E|Lead 52757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052758|152758|989898|1|9999052758|MR|Test|E|Lead 52758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052759|152759|989898|1|9999052759|MR|Test|E|Lead 52759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052760|152760|989898|1|9999052760|MR|Test|E|Lead 52760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052761|152761|989898|1|9999052761|MR|Test|E|Lead 52761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052762|152762|989898|1|9999052762|MR|Test|E|Lead 52762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052763|152763|989898|1|9999052763|MR|Test|E|Lead 52763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052764|152764|989898|1|9999052764|MR|Test|E|Lead 52764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052765|152765|989898|1|9999052765|MR|Test|E|Lead 52765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052766|152766|989898|1|9999052766|MR|Test|E|Lead 52766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052767|152767|989898|1|9999052767|MR|Test|E|Lead 52767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052768|152768|989898|1|9999052768|MR|Test|E|Lead 52768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052769|152769|989898|1|9999052769|MR|Test|E|Lead 52769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052770|152770|989898|1|9999052770|MR|Test|E|Lead 52770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052771|152771|989898|1|9999052771|MR|Test|E|Lead 52771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052772|152772|989898|1|9999052772|MR|Test|E|Lead 52772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052773|152773|989898|1|9999052773|MR|Test|E|Lead 52773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052774|152774|989898|1|9999052774|MR|Test|E|Lead 52774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052775|152775|989898|1|9999052775|MR|Test|E|Lead 52775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052776|152776|989898|1|9999052776|MR|Test|E|Lead 52776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052777|152777|989898|1|9999052777|MR|Test|E|Lead 52777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052778|152778|989898|1|9999052778|MR|Test|E|Lead 52778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052779|152779|989898|1|9999052779|MR|Test|E|Lead 52779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052780|152780|989898|1|9999052780|MR|Test|E|Lead 52780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052781|152781|989898|1|9999052781|MR|Test|E|Lead 52781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052782|152782|989898|1|9999052782|MR|Test|E|Lead 52782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052783|152783|989898|1|9999052783|MR|Test|E|Lead 52783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052784|152784|989898|1|9999052784|MR|Test|E|Lead 52784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052785|152785|989898|1|9999052785|MR|Test|E|Lead 52785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052786|152786|989898|1|9999052786|MR|Test|E|Lead 52786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052787|152787|989898|1|9999052787|MR|Test|E|Lead 52787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052788|152788|989898|1|9999052788|MR|Test|E|Lead 52788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052789|152789|989898|1|9999052789|MR|Test|E|Lead 52789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052790|152790|989898|1|9999052790|MR|Test|E|Lead 52790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052791|152791|989898|1|9999052791|MR|Test|E|Lead 52791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052792|152792|989898|1|9999052792|MR|Test|E|Lead 52792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052793|152793|989898|1|9999052793|MR|Test|E|Lead 52793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052794|152794|989898|1|9999052794|MR|Test|E|Lead 52794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052795|152795|989898|1|9999052795|MR|Test|E|Lead 52795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052796|152796|989898|1|9999052796|MR|Test|E|Lead 52796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052797|152797|989898|1|9999052797|MR|Test|E|Lead 52797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052798|152798|989898|1|9999052798|MR|Test|E|Lead 52798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052799|152799|989898|1|9999052799|MR|Test|E|Lead 52799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052800|152800|989898|1|9999052800|MR|Test|E|Lead 52800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052801|152801|989898|1|9999052801|MR|Test|E|Lead 52801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052802|152802|989898|1|9999052802|MR|Test|E|Lead 52802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052803|152803|989898|1|9999052803|MR|Test|E|Lead 52803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052804|152804|989898|1|9999052804|MR|Test|E|Lead 52804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052805|152805|989898|1|9999052805|MR|Test|E|Lead 52805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052806|152806|989898|1|9999052806|MR|Test|E|Lead 52806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052807|152807|989898|1|9999052807|MR|Test|E|Lead 52807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052808|152808|989898|1|9999052808|MR|Test|E|Lead 52808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052809|152809|989898|1|9999052809|MR|Test|E|Lead 52809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052810|152810|989898|1|9999052810|MR|Test|E|Lead 52810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052811|152811|989898|1|9999052811|MR|Test|E|Lead 52811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052812|152812|989898|1|9999052812|MR|Test|E|Lead 52812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052813|152813|989898|1|9999052813|MR|Test|E|Lead 52813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052814|152814|989898|1|9999052814|MR|Test|E|Lead 52814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052815|152815|989898|1|9999052815|MR|Test|E|Lead 52815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052816|152816|989898|1|9999052816|MR|Test|E|Lead 52816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052817|152817|989898|1|9999052817|MR|Test|E|Lead 52817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052818|152818|989898|1|9999052818|MR|Test|E|Lead 52818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052819|152819|989898|1|9999052819|MR|Test|E|Lead 52819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052820|152820|989898|1|9999052820|MR|Test|E|Lead 52820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052821|152821|989898|1|9999052821|MR|Test|E|Lead 52821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052822|152822|989898|1|9999052822|MR|Test|E|Lead 52822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052823|152823|989898|1|9999052823|MR|Test|E|Lead 52823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052824|152824|989898|1|9999052824|MR|Test|E|Lead 52824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052825|152825|989898|1|9999052825|MR|Test|E|Lead 52825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052826|152826|989898|1|9999052826|MR|Test|E|Lead 52826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052827|152827|989898|1|9999052827|MR|Test|E|Lead 52827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052828|152828|989898|1|9999052828|MR|Test|E|Lead 52828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052829|152829|989898|1|9999052829|MR|Test|E|Lead 52829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052830|152830|989898|1|9999052830|MR|Test|E|Lead 52830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052831|152831|989898|1|9999052831|MR|Test|E|Lead 52831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052832|152832|989898|1|9999052832|MR|Test|E|Lead 52832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052833|152833|989898|1|9999052833|MR|Test|E|Lead 52833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052834|152834|989898|1|9999052834|MR|Test|E|Lead 52834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052835|152835|989898|1|9999052835|MR|Test|E|Lead 52835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052836|152836|989898|1|9999052836|MR|Test|E|Lead 52836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052837|152837|989898|1|9999052837|MR|Test|E|Lead 52837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052838|152838|989898|1|9999052838|MR|Test|E|Lead 52838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052839|152839|989898|1|9999052839|MR|Test|E|Lead 52839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052840|152840|989898|1|9999052840|MR|Test|E|Lead 52840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052841|152841|989898|1|9999052841|MR|Test|E|Lead 52841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052842|152842|989898|1|9999052842|MR|Test|E|Lead 52842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052843|152843|989898|1|9999052843|MR|Test|E|Lead 52843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052844|152844|989898|1|9999052844|MR|Test|E|Lead 52844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052845|152845|989898|1|9999052845|MR|Test|E|Lead 52845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052846|152846|989898|1|9999052846|MR|Test|E|Lead 52846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052847|152847|989898|1|9999052847|MR|Test|E|Lead 52847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052848|152848|989898|1|9999052848|MR|Test|E|Lead 52848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052849|152849|989898|1|9999052849|MR|Test|E|Lead 52849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052850|152850|989898|1|9999052850|MR|Test|E|Lead 52850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052851|152851|989898|1|9999052851|MR|Test|E|Lead 52851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052852|152852|989898|1|9999052852|MR|Test|E|Lead 52852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052853|152853|989898|1|9999052853|MR|Test|E|Lead 52853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052854|152854|989898|1|9999052854|MR|Test|E|Lead 52854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052855|152855|989898|1|9999052855|MR|Test|E|Lead 52855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052856|152856|989898|1|9999052856|MR|Test|E|Lead 52856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052857|152857|989898|1|9999052857|MR|Test|E|Lead 52857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052858|152858|989898|1|9999052858|MR|Test|E|Lead 52858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052859|152859|989898|1|9999052859|MR|Test|E|Lead 52859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052860|152860|989898|1|9999052860|MR|Test|E|Lead 52860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052861|152861|989898|1|9999052861|MR|Test|E|Lead 52861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052862|152862|989898|1|9999052862|MR|Test|E|Lead 52862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052863|152863|989898|1|9999052863|MR|Test|E|Lead 52863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052864|152864|989898|1|9999052864|MR|Test|E|Lead 52864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052865|152865|989898|1|9999052865|MR|Test|E|Lead 52865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052866|152866|989898|1|9999052866|MR|Test|E|Lead 52866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052867|152867|989898|1|9999052867|MR|Test|E|Lead 52867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052868|152868|989898|1|9999052868|MR|Test|E|Lead 52868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052869|152869|989898|1|9999052869|MR|Test|E|Lead 52869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052870|152870|989898|1|9999052870|MR|Test|E|Lead 52870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052871|152871|989898|1|9999052871|MR|Test|E|Lead 52871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052872|152872|989898|1|9999052872|MR|Test|E|Lead 52872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052873|152873|989898|1|9999052873|MR|Test|E|Lead 52873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052874|152874|989898|1|9999052874|MR|Test|E|Lead 52874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052875|152875|989898|1|9999052875|MR|Test|E|Lead 52875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052876|152876|989898|1|9999052876|MR|Test|E|Lead 52876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052877|152877|989898|1|9999052877|MR|Test|E|Lead 52877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052878|152878|989898|1|9999052878|MR|Test|E|Lead 52878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052879|152879|989898|1|9999052879|MR|Test|E|Lead 52879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052880|152880|989898|1|9999052880|MR|Test|E|Lead 52880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052881|152881|989898|1|9999052881|MR|Test|E|Lead 52881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052882|152882|989898|1|9999052882|MR|Test|E|Lead 52882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052883|152883|989898|1|9999052883|MR|Test|E|Lead 52883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052884|152884|989898|1|9999052884|MR|Test|E|Lead 52884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052885|152885|989898|1|9999052885|MR|Test|E|Lead 52885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052886|152886|989898|1|9999052886|MR|Test|E|Lead 52886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052887|152887|989898|1|9999052887|MR|Test|E|Lead 52887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052888|152888|989898|1|9999052888|MR|Test|E|Lead 52888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052889|152889|989898|1|9999052889|MR|Test|E|Lead 52889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052890|152890|989898|1|9999052890|MR|Test|E|Lead 52890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052891|152891|989898|1|9999052891|MR|Test|E|Lead 52891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052892|152892|989898|1|9999052892|MR|Test|E|Lead 52892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052893|152893|989898|1|9999052893|MR|Test|E|Lead 52893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052894|152894|989898|1|9999052894|MR|Test|E|Lead 52894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052895|152895|989898|1|9999052895|MR|Test|E|Lead 52895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052896|152896|989898|1|9999052896|MR|Test|E|Lead 52896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052897|152897|989898|1|9999052897|MR|Test|E|Lead 52897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052898|152898|989898|1|9999052898|MR|Test|E|Lead 52898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052899|152899|989898|1|9999052899|MR|Test|E|Lead 52899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052900|152900|989898|1|9999052900|MR|Test|E|Lead 52900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052901|152901|989898|1|9999052901|MR|Test|E|Lead 52901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052902|152902|989898|1|9999052902|MR|Test|E|Lead 52902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052903|152903|989898|1|9999052903|MR|Test|E|Lead 52903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052904|152904|989898|1|9999052904|MR|Test|E|Lead 52904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052905|152905|989898|1|9999052905|MR|Test|E|Lead 52905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052906|152906|989898|1|9999052906|MR|Test|E|Lead 52906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052907|152907|989898|1|9999052907|MR|Test|E|Lead 52907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052908|152908|989898|1|9999052908|MR|Test|E|Lead 52908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052909|152909|989898|1|9999052909|MR|Test|E|Lead 52909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052910|152910|989898|1|9999052910|MR|Test|E|Lead 52910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052911|152911|989898|1|9999052911|MR|Test|E|Lead 52911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052912|152912|989898|1|9999052912|MR|Test|E|Lead 52912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052913|152913|989898|1|9999052913|MR|Test|E|Lead 52913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052914|152914|989898|1|9999052914|MR|Test|E|Lead 52914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052915|152915|989898|1|9999052915|MR|Test|E|Lead 52915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052916|152916|989898|1|9999052916|MR|Test|E|Lead 52916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052917|152917|989898|1|9999052917|MR|Test|E|Lead 52917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052918|152918|989898|1|9999052918|MR|Test|E|Lead 52918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052919|152919|989898|1|9999052919|MR|Test|E|Lead 52919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052920|152920|989898|1|9999052920|MR|Test|E|Lead 52920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052921|152921|989898|1|9999052921|MR|Test|E|Lead 52921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052922|152922|989898|1|9999052922|MR|Test|E|Lead 52922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052923|152923|989898|1|9999052923|MR|Test|E|Lead 52923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052924|152924|989898|1|9999052924|MR|Test|E|Lead 52924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052925|152925|989898|1|9999052925|MR|Test|E|Lead 52925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052926|152926|989898|1|9999052926|MR|Test|E|Lead 52926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052927|152927|989898|1|9999052927|MR|Test|E|Lead 52927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052928|152928|989898|1|9999052928|MR|Test|E|Lead 52928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052929|152929|989898|1|9999052929|MR|Test|E|Lead 52929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052930|152930|989898|1|9999052930|MR|Test|E|Lead 52930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052931|152931|989898|1|9999052931|MR|Test|E|Lead 52931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052932|152932|989898|1|9999052932|MR|Test|E|Lead 52932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052933|152933|989898|1|9999052933|MR|Test|E|Lead 52933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052934|152934|989898|1|9999052934|MR|Test|E|Lead 52934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052935|152935|989898|1|9999052935|MR|Test|E|Lead 52935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052936|152936|989898|1|9999052936|MR|Test|E|Lead 52936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052937|152937|989898|1|9999052937|MR|Test|E|Lead 52937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052938|152938|989898|1|9999052938|MR|Test|E|Lead 52938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052939|152939|989898|1|9999052939|MR|Test|E|Lead 52939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052940|152940|989898|1|9999052940|MR|Test|E|Lead 52940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052941|152941|989898|1|9999052941|MR|Test|E|Lead 52941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052942|152942|989898|1|9999052942|MR|Test|E|Lead 52942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052943|152943|989898|1|9999052943|MR|Test|E|Lead 52943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052944|152944|989898|1|9999052944|MR|Test|E|Lead 52944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052945|152945|989898|1|9999052945|MR|Test|E|Lead 52945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052946|152946|989898|1|9999052946|MR|Test|E|Lead 52946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052947|152947|989898|1|9999052947|MR|Test|E|Lead 52947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052948|152948|989898|1|9999052948|MR|Test|E|Lead 52948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052949|152949|989898|1|9999052949|MR|Test|E|Lead 52949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052950|152950|989898|1|9999052950|MR|Test|E|Lead 52950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052951|152951|989898|1|9999052951|MR|Test|E|Lead 52951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052952|152952|989898|1|9999052952|MR|Test|E|Lead 52952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052953|152953|989898|1|9999052953|MR|Test|E|Lead 52953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052954|152954|989898|1|9999052954|MR|Test|E|Lead 52954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052955|152955|989898|1|9999052955|MR|Test|E|Lead 52955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052956|152956|989898|1|9999052956|MR|Test|E|Lead 52956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052957|152957|989898|1|9999052957|MR|Test|E|Lead 52957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052958|152958|989898|1|9999052958|MR|Test|E|Lead 52958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052959|152959|989898|1|9999052959|MR|Test|E|Lead 52959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052960|152960|989898|1|9999052960|MR|Test|E|Lead 52960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052961|152961|989898|1|9999052961|MR|Test|E|Lead 52961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052962|152962|989898|1|9999052962|MR|Test|E|Lead 52962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052963|152963|989898|1|9999052963|MR|Test|E|Lead 52963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052964|152964|989898|1|9999052964|MR|Test|E|Lead 52964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052965|152965|989898|1|9999052965|MR|Test|E|Lead 52965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052966|152966|989898|1|9999052966|MR|Test|E|Lead 52966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052967|152967|989898|1|9999052967|MR|Test|E|Lead 52967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052968|152968|989898|1|9999052968|MR|Test|E|Lead 52968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052969|152969|989898|1|9999052969|MR|Test|E|Lead 52969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052970|152970|989898|1|9999052970|MR|Test|E|Lead 52970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052971|152971|989898|1|9999052971|MR|Test|E|Lead 52971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052972|152972|989898|1|9999052972|MR|Test|E|Lead 52972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052973|152973|989898|1|9999052973|MR|Test|E|Lead 52973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052974|152974|989898|1|9999052974|MR|Test|E|Lead 52974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052975|152975|989898|1|9999052975|MR|Test|E|Lead 52975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052976|152976|989898|1|9999052976|MR|Test|E|Lead 52976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052977|152977|989898|1|9999052977|MR|Test|E|Lead 52977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052978|152978|989898|1|9999052978|MR|Test|E|Lead 52978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052979|152979|989898|1|9999052979|MR|Test|E|Lead 52979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052980|152980|989898|1|9999052980|MR|Test|E|Lead 52980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052981|152981|989898|1|9999052981|MR|Test|E|Lead 52981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052982|152982|989898|1|9999052982|MR|Test|E|Lead 52982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052983|152983|989898|1|9999052983|MR|Test|E|Lead 52983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052984|152984|989898|1|9999052984|MR|Test|E|Lead 52984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052985|152985|989898|1|9999052985|MR|Test|E|Lead 52985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052986|152986|989898|1|9999052986|MR|Test|E|Lead 52986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052987|152987|989898|1|9999052987|MR|Test|E|Lead 52987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052988|152988|989898|1|9999052988|MR|Test|E|Lead 52988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052989|152989|989898|1|9999052989|MR|Test|E|Lead 52989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052990|152990|989898|1|9999052990|MR|Test|E|Lead 52990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052991|152991|989898|1|9999052991|MR|Test|E|Lead 52991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052992|152992|989898|1|9999052992|MR|Test|E|Lead 52992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052993|152993|989898|1|9999052993|MR|Test|E|Lead 52993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052994|152994|989898|1|9999052994|MR|Test|E|Lead 52994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052995|152995|989898|1|9999052995|MR|Test|E|Lead 52995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052996|152996|989898|1|9999052996|MR|Test|E|Lead 52996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052997|152997|989898|1|9999052997|MR|Test|E|Lead 52997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052998|152998|989898|1|9999052998|MR|Test|E|Lead 52998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1052999|152999|989898|1|9999052999|MR|Test|E|Lead 52999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053000|153000|989898|1|9999053000|MR|Test|E|Lead 53000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053001|153001|989898|1|9999053001|MR|Test|E|Lead 53001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053002|153002|989898|1|9999053002|MR|Test|E|Lead 53002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053003|153003|989898|1|9999053003|MR|Test|E|Lead 53003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053004|153004|989898|1|9999053004|MR|Test|E|Lead 53004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053005|153005|989898|1|9999053005|MR|Test|E|Lead 53005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053006|153006|989898|1|9999053006|MR|Test|E|Lead 53006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053007|153007|989898|1|9999053007|MR|Test|E|Lead 53007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053008|153008|989898|1|9999053008|MR|Test|E|Lead 53008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053009|153009|989898|1|9999053009|MR|Test|E|Lead 53009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053010|153010|989898|1|9999053010|MR|Test|E|Lead 53010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053011|153011|989898|1|9999053011|MR|Test|E|Lead 53011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053012|153012|989898|1|9999053012|MR|Test|E|Lead 53012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053013|153013|989898|1|9999053013|MR|Test|E|Lead 53013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053014|153014|989898|1|9999053014|MR|Test|E|Lead 53014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053015|153015|989898|1|9999053015|MR|Test|E|Lead 53015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053016|153016|989898|1|9999053016|MR|Test|E|Lead 53016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053017|153017|989898|1|9999053017|MR|Test|E|Lead 53017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053018|153018|989898|1|9999053018|MR|Test|E|Lead 53018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053019|153019|989898|1|9999053019|MR|Test|E|Lead 53019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053020|153020|989898|1|9999053020|MR|Test|E|Lead 53020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053021|153021|989898|1|9999053021|MR|Test|E|Lead 53021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053022|153022|989898|1|9999053022|MR|Test|E|Lead 53022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053023|153023|989898|1|9999053023|MR|Test|E|Lead 53023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053024|153024|989898|1|9999053024|MR|Test|E|Lead 53024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053025|153025|989898|1|9999053025|MR|Test|E|Lead 53025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053026|153026|989898|1|9999053026|MR|Test|E|Lead 53026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053027|153027|989898|1|9999053027|MR|Test|E|Lead 53027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053028|153028|989898|1|9999053028|MR|Test|E|Lead 53028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053029|153029|989898|1|9999053029|MR|Test|E|Lead 53029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053030|153030|989898|1|9999053030|MR|Test|E|Lead 53030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053031|153031|989898|1|9999053031|MR|Test|E|Lead 53031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053032|153032|989898|1|9999053032|MR|Test|E|Lead 53032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053033|153033|989898|1|9999053033|MR|Test|E|Lead 53033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053034|153034|989898|1|9999053034|MR|Test|E|Lead 53034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053035|153035|989898|1|9999053035|MR|Test|E|Lead 53035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053036|153036|989898|1|9999053036|MR|Test|E|Lead 53036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053037|153037|989898|1|9999053037|MR|Test|E|Lead 53037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053038|153038|989898|1|9999053038|MR|Test|E|Lead 53038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053039|153039|989898|1|9999053039|MR|Test|E|Lead 53039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053040|153040|989898|1|9999053040|MR|Test|E|Lead 53040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053041|153041|989898|1|9999053041|MR|Test|E|Lead 53041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053042|153042|989898|1|9999053042|MR|Test|E|Lead 53042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053043|153043|989898|1|9999053043|MR|Test|E|Lead 53043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053044|153044|989898|1|9999053044|MR|Test|E|Lead 53044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053045|153045|989898|1|9999053045|MR|Test|E|Lead 53045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053046|153046|989898|1|9999053046|MR|Test|E|Lead 53046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053047|153047|989898|1|9999053047|MR|Test|E|Lead 53047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053048|153048|989898|1|9999053048|MR|Test|E|Lead 53048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053049|153049|989898|1|9999053049|MR|Test|E|Lead 53049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053050|153050|989898|1|9999053050|MR|Test|E|Lead 53050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053051|153051|989898|1|9999053051|MR|Test|E|Lead 53051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053052|153052|989898|1|9999053052|MR|Test|E|Lead 53052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053053|153053|989898|1|9999053053|MR|Test|E|Lead 53053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053054|153054|989898|1|9999053054|MR|Test|E|Lead 53054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053055|153055|989898|1|9999053055|MR|Test|E|Lead 53055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053056|153056|989898|1|9999053056|MR|Test|E|Lead 53056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053057|153057|989898|1|9999053057|MR|Test|E|Lead 53057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053058|153058|989898|1|9999053058|MR|Test|E|Lead 53058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053059|153059|989898|1|9999053059|MR|Test|E|Lead 53059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053060|153060|989898|1|9999053060|MR|Test|E|Lead 53060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053061|153061|989898|1|9999053061|MR|Test|E|Lead 53061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053062|153062|989898|1|9999053062|MR|Test|E|Lead 53062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053063|153063|989898|1|9999053063|MR|Test|E|Lead 53063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053064|153064|989898|1|9999053064|MR|Test|E|Lead 53064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053065|153065|989898|1|9999053065|MR|Test|E|Lead 53065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053066|153066|989898|1|9999053066|MR|Test|E|Lead 53066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053067|153067|989898|1|9999053067|MR|Test|E|Lead 53067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053068|153068|989898|1|9999053068|MR|Test|E|Lead 53068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053069|153069|989898|1|9999053069|MR|Test|E|Lead 53069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053070|153070|989898|1|9999053070|MR|Test|E|Lead 53070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053071|153071|989898|1|9999053071|MR|Test|E|Lead 53071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053072|153072|989898|1|9999053072|MR|Test|E|Lead 53072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053073|153073|989898|1|9999053073|MR|Test|E|Lead 53073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053074|153074|989898|1|9999053074|MR|Test|E|Lead 53074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053075|153075|989898|1|9999053075|MR|Test|E|Lead 53075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053076|153076|989898|1|9999053076|MR|Test|E|Lead 53076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053077|153077|989898|1|9999053077|MR|Test|E|Lead 53077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053078|153078|989898|1|9999053078|MR|Test|E|Lead 53078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053079|153079|989898|1|9999053079|MR|Test|E|Lead 53079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053080|153080|989898|1|9999053080|MR|Test|E|Lead 53080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053081|153081|989898|1|9999053081|MR|Test|E|Lead 53081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053082|153082|989898|1|9999053082|MR|Test|E|Lead 53082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053083|153083|989898|1|9999053083|MR|Test|E|Lead 53083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053084|153084|989898|1|9999053084|MR|Test|E|Lead 53084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053085|153085|989898|1|9999053085|MR|Test|E|Lead 53085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053086|153086|989898|1|9999053086|MR|Test|E|Lead 53086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053087|153087|989898|1|9999053087|MR|Test|E|Lead 53087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053088|153088|989898|1|9999053088|MR|Test|E|Lead 53088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053089|153089|989898|1|9999053089|MR|Test|E|Lead 53089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053090|153090|989898|1|9999053090|MR|Test|E|Lead 53090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053091|153091|989898|1|9999053091|MR|Test|E|Lead 53091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053092|153092|989898|1|9999053092|MR|Test|E|Lead 53092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053093|153093|989898|1|9999053093|MR|Test|E|Lead 53093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053094|153094|989898|1|9999053094|MR|Test|E|Lead 53094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053095|153095|989898|1|9999053095|MR|Test|E|Lead 53095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053096|153096|989898|1|9999053096|MR|Test|E|Lead 53096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053097|153097|989898|1|9999053097|MR|Test|E|Lead 53097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053098|153098|989898|1|9999053098|MR|Test|E|Lead 53098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053099|153099|989898|1|9999053099|MR|Test|E|Lead 53099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053100|153100|989898|1|9999053100|MR|Test|E|Lead 53100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053101|153101|989898|1|9999053101|MR|Test|E|Lead 53101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053102|153102|989898|1|9999053102|MR|Test|E|Lead 53102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053103|153103|989898|1|9999053103|MR|Test|E|Lead 53103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053104|153104|989898|1|9999053104|MR|Test|E|Lead 53104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053105|153105|989898|1|9999053105|MR|Test|E|Lead 53105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053106|153106|989898|1|9999053106|MR|Test|E|Lead 53106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053107|153107|989898|1|9999053107|MR|Test|E|Lead 53107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053108|153108|989898|1|9999053108|MR|Test|E|Lead 53108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053109|153109|989898|1|9999053109|MR|Test|E|Lead 53109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053110|153110|989898|1|9999053110|MR|Test|E|Lead 53110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053111|153111|989898|1|9999053111|MR|Test|E|Lead 53111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053112|153112|989898|1|9999053112|MR|Test|E|Lead 53112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053113|153113|989898|1|9999053113|MR|Test|E|Lead 53113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053114|153114|989898|1|9999053114|MR|Test|E|Lead 53114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053115|153115|989898|1|9999053115|MR|Test|E|Lead 53115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053116|153116|989898|1|9999053116|MR|Test|E|Lead 53116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053117|153117|989898|1|9999053117|MR|Test|E|Lead 53117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053118|153118|989898|1|9999053118|MR|Test|E|Lead 53118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053119|153119|989898|1|9999053119|MR|Test|E|Lead 53119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053120|153120|989898|1|9999053120|MR|Test|E|Lead 53120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053121|153121|989898|1|9999053121|MR|Test|E|Lead 53121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053122|153122|989898|1|9999053122|MR|Test|E|Lead 53122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053123|153123|989898|1|9999053123|MR|Test|E|Lead 53123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053124|153124|989898|1|9999053124|MR|Test|E|Lead 53124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053125|153125|989898|1|9999053125|MR|Test|E|Lead 53125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053126|153126|989898|1|9999053126|MR|Test|E|Lead 53126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053127|153127|989898|1|9999053127|MR|Test|E|Lead 53127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053128|153128|989898|1|9999053128|MR|Test|E|Lead 53128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053129|153129|989898|1|9999053129|MR|Test|E|Lead 53129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053130|153130|989898|1|9999053130|MR|Test|E|Lead 53130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053131|153131|989898|1|9999053131|MR|Test|E|Lead 53131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053132|153132|989898|1|9999053132|MR|Test|E|Lead 53132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053133|153133|989898|1|9999053133|MR|Test|E|Lead 53133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053134|153134|989898|1|9999053134|MR|Test|E|Lead 53134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053135|153135|989898|1|9999053135|MR|Test|E|Lead 53135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053136|153136|989898|1|9999053136|MR|Test|E|Lead 53136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053137|153137|989898|1|9999053137|MR|Test|E|Lead 53137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053138|153138|989898|1|9999053138|MR|Test|E|Lead 53138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053139|153139|989898|1|9999053139|MR|Test|E|Lead 53139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053140|153140|989898|1|9999053140|MR|Test|E|Lead 53140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053141|153141|989898|1|9999053141|MR|Test|E|Lead 53141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053142|153142|989898|1|9999053142|MR|Test|E|Lead 53142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053143|153143|989898|1|9999053143|MR|Test|E|Lead 53143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053144|153144|989898|1|9999053144|MR|Test|E|Lead 53144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053145|153145|989898|1|9999053145|MR|Test|E|Lead 53145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053146|153146|989898|1|9999053146|MR|Test|E|Lead 53146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053147|153147|989898|1|9999053147|MR|Test|E|Lead 53147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053148|153148|989898|1|9999053148|MR|Test|E|Lead 53148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053149|153149|989898|1|9999053149|MR|Test|E|Lead 53149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053150|153150|989898|1|9999053150|MR|Test|E|Lead 53150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053151|153151|989898|1|9999053151|MR|Test|E|Lead 53151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053152|153152|989898|1|9999053152|MR|Test|E|Lead 53152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053153|153153|989898|1|9999053153|MR|Test|E|Lead 53153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053154|153154|989898|1|9999053154|MR|Test|E|Lead 53154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053155|153155|989898|1|9999053155|MR|Test|E|Lead 53155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053156|153156|989898|1|9999053156|MR|Test|E|Lead 53156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053157|153157|989898|1|9999053157|MR|Test|E|Lead 53157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053158|153158|989898|1|9999053158|MR|Test|E|Lead 53158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053159|153159|989898|1|9999053159|MR|Test|E|Lead 53159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053160|153160|989898|1|9999053160|MR|Test|E|Lead 53160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053161|153161|989898|1|9999053161|MR|Test|E|Lead 53161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053162|153162|989898|1|9999053162|MR|Test|E|Lead 53162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053163|153163|989898|1|9999053163|MR|Test|E|Lead 53163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053164|153164|989898|1|9999053164|MR|Test|E|Lead 53164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053165|153165|989898|1|9999053165|MR|Test|E|Lead 53165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053166|153166|989898|1|9999053166|MR|Test|E|Lead 53166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053167|153167|989898|1|9999053167|MR|Test|E|Lead 53167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053168|153168|989898|1|9999053168|MR|Test|E|Lead 53168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053169|153169|989898|1|9999053169|MR|Test|E|Lead 53169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053170|153170|989898|1|9999053170|MR|Test|E|Lead 53170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053171|153171|989898|1|9999053171|MR|Test|E|Lead 53171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053172|153172|989898|1|9999053172|MR|Test|E|Lead 53172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053173|153173|989898|1|9999053173|MR|Test|E|Lead 53173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053174|153174|989898|1|9999053174|MR|Test|E|Lead 53174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053175|153175|989898|1|9999053175|MR|Test|E|Lead 53175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053176|153176|989898|1|9999053176|MR|Test|E|Lead 53176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053177|153177|989898|1|9999053177|MR|Test|E|Lead 53177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053178|153178|989898|1|9999053178|MR|Test|E|Lead 53178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053179|153179|989898|1|9999053179|MR|Test|E|Lead 53179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053180|153180|989898|1|9999053180|MR|Test|E|Lead 53180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053181|153181|989898|1|9999053181|MR|Test|E|Lead 53181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053182|153182|989898|1|9999053182|MR|Test|E|Lead 53182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053183|153183|989898|1|9999053183|MR|Test|E|Lead 53183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053184|153184|989898|1|9999053184|MR|Test|E|Lead 53184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053185|153185|989898|1|9999053185|MR|Test|E|Lead 53185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053186|153186|989898|1|9999053186|MR|Test|E|Lead 53186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053187|153187|989898|1|9999053187|MR|Test|E|Lead 53187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053188|153188|989898|1|9999053188|MR|Test|E|Lead 53188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053189|153189|989898|1|9999053189|MR|Test|E|Lead 53189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053190|153190|989898|1|9999053190|MR|Test|E|Lead 53190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053191|153191|989898|1|9999053191|MR|Test|E|Lead 53191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053192|153192|989898|1|9999053192|MR|Test|E|Lead 53192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053193|153193|989898|1|9999053193|MR|Test|E|Lead 53193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053194|153194|989898|1|9999053194|MR|Test|E|Lead 53194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053195|153195|989898|1|9999053195|MR|Test|E|Lead 53195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053196|153196|989898|1|9999053196|MR|Test|E|Lead 53196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053197|153197|989898|1|9999053197|MR|Test|E|Lead 53197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053198|153198|989898|1|9999053198|MR|Test|E|Lead 53198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053199|153199|989898|1|9999053199|MR|Test|E|Lead 53199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053200|153200|989898|1|9999053200|MR|Test|E|Lead 53200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053201|153201|989898|1|9999053201|MR|Test|E|Lead 53201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053202|153202|989898|1|9999053202|MR|Test|E|Lead 53202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053203|153203|989898|1|9999053203|MR|Test|E|Lead 53203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053204|153204|989898|1|9999053204|MR|Test|E|Lead 53204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053205|153205|989898|1|9999053205|MR|Test|E|Lead 53205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053206|153206|989898|1|9999053206|MR|Test|E|Lead 53206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053207|153207|989898|1|9999053207|MR|Test|E|Lead 53207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053208|153208|989898|1|9999053208|MR|Test|E|Lead 53208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053209|153209|989898|1|9999053209|MR|Test|E|Lead 53209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053210|153210|989898|1|9999053210|MR|Test|E|Lead 53210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053211|153211|989898|1|9999053211|MR|Test|E|Lead 53211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053212|153212|989898|1|9999053212|MR|Test|E|Lead 53212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053213|153213|989898|1|9999053213|MR|Test|E|Lead 53213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053214|153214|989898|1|9999053214|MR|Test|E|Lead 53214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053215|153215|989898|1|9999053215|MR|Test|E|Lead 53215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053216|153216|989898|1|9999053216|MR|Test|E|Lead 53216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053217|153217|989898|1|9999053217|MR|Test|E|Lead 53217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053218|153218|989898|1|9999053218|MR|Test|E|Lead 53218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053219|153219|989898|1|9999053219|MR|Test|E|Lead 53219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053220|153220|989898|1|9999053220|MR|Test|E|Lead 53220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053221|153221|989898|1|9999053221|MR|Test|E|Lead 53221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053222|153222|989898|1|9999053222|MR|Test|E|Lead 53222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053223|153223|989898|1|9999053223|MR|Test|E|Lead 53223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053224|153224|989898|1|9999053224|MR|Test|E|Lead 53224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053225|153225|989898|1|9999053225|MR|Test|E|Lead 53225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053226|153226|989898|1|9999053226|MR|Test|E|Lead 53226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053227|153227|989898|1|9999053227|MR|Test|E|Lead 53227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053228|153228|989898|1|9999053228|MR|Test|E|Lead 53228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053229|153229|989898|1|9999053229|MR|Test|E|Lead 53229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053230|153230|989898|1|9999053230|MR|Test|E|Lead 53230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053231|153231|989898|1|9999053231|MR|Test|E|Lead 53231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053232|153232|989898|1|9999053232|MR|Test|E|Lead 53232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053233|153233|989898|1|9999053233|MR|Test|E|Lead 53233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053234|153234|989898|1|9999053234|MR|Test|E|Lead 53234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053235|153235|989898|1|9999053235|MR|Test|E|Lead 53235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053236|153236|989898|1|9999053236|MR|Test|E|Lead 53236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053237|153237|989898|1|9999053237|MR|Test|E|Lead 53237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053238|153238|989898|1|9999053238|MR|Test|E|Lead 53238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053239|153239|989898|1|9999053239|MR|Test|E|Lead 53239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053240|153240|989898|1|9999053240|MR|Test|E|Lead 53240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053241|153241|989898|1|9999053241|MR|Test|E|Lead 53241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053242|153242|989898|1|9999053242|MR|Test|E|Lead 53242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053243|153243|989898|1|9999053243|MR|Test|E|Lead 53243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053244|153244|989898|1|9999053244|MR|Test|E|Lead 53244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053245|153245|989898|1|9999053245|MR|Test|E|Lead 53245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053246|153246|989898|1|9999053246|MR|Test|E|Lead 53246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053247|153247|989898|1|9999053247|MR|Test|E|Lead 53247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053248|153248|989898|1|9999053248|MR|Test|E|Lead 53248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053249|153249|989898|1|9999053249|MR|Test|E|Lead 53249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053250|153250|989898|1|9999053250|MR|Test|E|Lead 53250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053251|153251|989898|1|9999053251|MR|Test|E|Lead 53251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053252|153252|989898|1|9999053252|MR|Test|E|Lead 53252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053253|153253|989898|1|9999053253|MR|Test|E|Lead 53253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053254|153254|989898|1|9999053254|MR|Test|E|Lead 53254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053255|153255|989898|1|9999053255|MR|Test|E|Lead 53255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053256|153256|989898|1|9999053256|MR|Test|E|Lead 53256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053257|153257|989898|1|9999053257|MR|Test|E|Lead 53257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053258|153258|989898|1|9999053258|MR|Test|E|Lead 53258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053259|153259|989898|1|9999053259|MR|Test|E|Lead 53259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053260|153260|989898|1|9999053260|MR|Test|E|Lead 53260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053261|153261|989898|1|9999053261|MR|Test|E|Lead 53261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053262|153262|989898|1|9999053262|MR|Test|E|Lead 53262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053263|153263|989898|1|9999053263|MR|Test|E|Lead 53263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053264|153264|989898|1|9999053264|MR|Test|E|Lead 53264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053265|153265|989898|1|9999053265|MR|Test|E|Lead 53265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053266|153266|989898|1|9999053266|MR|Test|E|Lead 53266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053267|153267|989898|1|9999053267|MR|Test|E|Lead 53267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053268|153268|989898|1|9999053268|MR|Test|E|Lead 53268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053269|153269|989898|1|9999053269|MR|Test|E|Lead 53269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053270|153270|989898|1|9999053270|MR|Test|E|Lead 53270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053271|153271|989898|1|9999053271|MR|Test|E|Lead 53271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053272|153272|989898|1|9999053272|MR|Test|E|Lead 53272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053273|153273|989898|1|9999053273|MR|Test|E|Lead 53273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053274|153274|989898|1|9999053274|MR|Test|E|Lead 53274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053275|153275|989898|1|9999053275|MR|Test|E|Lead 53275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053276|153276|989898|1|9999053276|MR|Test|E|Lead 53276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053277|153277|989898|1|9999053277|MR|Test|E|Lead 53277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053278|153278|989898|1|9999053278|MR|Test|E|Lead 53278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053279|153279|989898|1|9999053279|MR|Test|E|Lead 53279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053280|153280|989898|1|9999053280|MR|Test|E|Lead 53280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053281|153281|989898|1|9999053281|MR|Test|E|Lead 53281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053282|153282|989898|1|9999053282|MR|Test|E|Lead 53282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053283|153283|989898|1|9999053283|MR|Test|E|Lead 53283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053284|153284|989898|1|9999053284|MR|Test|E|Lead 53284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053285|153285|989898|1|9999053285|MR|Test|E|Lead 53285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053286|153286|989898|1|9999053286|MR|Test|E|Lead 53286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053287|153287|989898|1|9999053287|MR|Test|E|Lead 53287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053288|153288|989898|1|9999053288|MR|Test|E|Lead 53288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053289|153289|989898|1|9999053289|MR|Test|E|Lead 53289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053290|153290|989898|1|9999053290|MR|Test|E|Lead 53290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053291|153291|989898|1|9999053291|MR|Test|E|Lead 53291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053292|153292|989898|1|9999053292|MR|Test|E|Lead 53292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053293|153293|989898|1|9999053293|MR|Test|E|Lead 53293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053294|153294|989898|1|9999053294|MR|Test|E|Lead 53294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053295|153295|989898|1|9999053295|MR|Test|E|Lead 53295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053296|153296|989898|1|9999053296|MR|Test|E|Lead 53296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053297|153297|989898|1|9999053297|MR|Test|E|Lead 53297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053298|153298|989898|1|9999053298|MR|Test|E|Lead 53298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053299|153299|989898|1|9999053299|MR|Test|E|Lead 53299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053300|153300|989898|1|9999053300|MR|Test|E|Lead 53300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053301|153301|989898|1|9999053301|MR|Test|E|Lead 53301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053302|153302|989898|1|9999053302|MR|Test|E|Lead 53302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053303|153303|989898|1|9999053303|MR|Test|E|Lead 53303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053304|153304|989898|1|9999053304|MR|Test|E|Lead 53304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053305|153305|989898|1|9999053305|MR|Test|E|Lead 53305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053306|153306|989898|1|9999053306|MR|Test|E|Lead 53306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053307|153307|989898|1|9999053307|MR|Test|E|Lead 53307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053308|153308|989898|1|9999053308|MR|Test|E|Lead 53308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053309|153309|989898|1|9999053309|MR|Test|E|Lead 53309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053310|153310|989898|1|9999053310|MR|Test|E|Lead 53310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053311|153311|989898|1|9999053311|MR|Test|E|Lead 53311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053312|153312|989898|1|9999053312|MR|Test|E|Lead 53312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053313|153313|989898|1|9999053313|MR|Test|E|Lead 53313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053314|153314|989898|1|9999053314|MR|Test|E|Lead 53314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053315|153315|989898|1|9999053315|MR|Test|E|Lead 53315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053316|153316|989898|1|9999053316|MR|Test|E|Lead 53316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053317|153317|989898|1|9999053317|MR|Test|E|Lead 53317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053318|153318|989898|1|9999053318|MR|Test|E|Lead 53318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053319|153319|989898|1|9999053319|MR|Test|E|Lead 53319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053320|153320|989898|1|9999053320|MR|Test|E|Lead 53320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053321|153321|989898|1|9999053321|MR|Test|E|Lead 53321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053322|153322|989898|1|9999053322|MR|Test|E|Lead 53322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053323|153323|989898|1|9999053323|MR|Test|E|Lead 53323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053324|153324|989898|1|9999053324|MR|Test|E|Lead 53324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053325|153325|989898|1|9999053325|MR|Test|E|Lead 53325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053326|153326|989898|1|9999053326|MR|Test|E|Lead 53326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053327|153327|989898|1|9999053327|MR|Test|E|Lead 53327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053328|153328|989898|1|9999053328|MR|Test|E|Lead 53328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053329|153329|989898|1|9999053329|MR|Test|E|Lead 53329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053330|153330|989898|1|9999053330|MR|Test|E|Lead 53330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053331|153331|989898|1|9999053331|MR|Test|E|Lead 53331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053332|153332|989898|1|9999053332|MR|Test|E|Lead 53332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053333|153333|989898|1|9999053333|MR|Test|E|Lead 53333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053334|153334|989898|1|9999053334|MR|Test|E|Lead 53334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053335|153335|989898|1|9999053335|MR|Test|E|Lead 53335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053336|153336|989898|1|9999053336|MR|Test|E|Lead 53336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053337|153337|989898|1|9999053337|MR|Test|E|Lead 53337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053338|153338|989898|1|9999053338|MR|Test|E|Lead 53338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053339|153339|989898|1|9999053339|MR|Test|E|Lead 53339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053340|153340|989898|1|9999053340|MR|Test|E|Lead 53340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053341|153341|989898|1|9999053341|MR|Test|E|Lead 53341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053342|153342|989898|1|9999053342|MR|Test|E|Lead 53342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053343|153343|989898|1|9999053343|MR|Test|E|Lead 53343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053344|153344|989898|1|9999053344|MR|Test|E|Lead 53344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053345|153345|989898|1|9999053345|MR|Test|E|Lead 53345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053346|153346|989898|1|9999053346|MR|Test|E|Lead 53346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053347|153347|989898|1|9999053347|MR|Test|E|Lead 53347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053348|153348|989898|1|9999053348|MR|Test|E|Lead 53348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053349|153349|989898|1|9999053349|MR|Test|E|Lead 53349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053350|153350|989898|1|9999053350|MR|Test|E|Lead 53350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053351|153351|989898|1|9999053351|MR|Test|E|Lead 53351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053352|153352|989898|1|9999053352|MR|Test|E|Lead 53352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053353|153353|989898|1|9999053353|MR|Test|E|Lead 53353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053354|153354|989898|1|9999053354|MR|Test|E|Lead 53354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053355|153355|989898|1|9999053355|MR|Test|E|Lead 53355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053356|153356|989898|1|9999053356|MR|Test|E|Lead 53356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053357|153357|989898|1|9999053357|MR|Test|E|Lead 53357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053358|153358|989898|1|9999053358|MR|Test|E|Lead 53358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053359|153359|989898|1|9999053359|MR|Test|E|Lead 53359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053360|153360|989898|1|9999053360|MR|Test|E|Lead 53360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053361|153361|989898|1|9999053361|MR|Test|E|Lead 53361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053362|153362|989898|1|9999053362|MR|Test|E|Lead 53362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053363|153363|989898|1|9999053363|MR|Test|E|Lead 53363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053364|153364|989898|1|9999053364|MR|Test|E|Lead 53364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053365|153365|989898|1|9999053365|MR|Test|E|Lead 53365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053366|153366|989898|1|9999053366|MR|Test|E|Lead 53366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053367|153367|989898|1|9999053367|MR|Test|E|Lead 53367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053368|153368|989898|1|9999053368|MR|Test|E|Lead 53368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053369|153369|989898|1|9999053369|MR|Test|E|Lead 53369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053370|153370|989898|1|9999053370|MR|Test|E|Lead 53370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053371|153371|989898|1|9999053371|MR|Test|E|Lead 53371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053372|153372|989898|1|9999053372|MR|Test|E|Lead 53372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053373|153373|989898|1|9999053373|MR|Test|E|Lead 53373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053374|153374|989898|1|9999053374|MR|Test|E|Lead 53374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053375|153375|989898|1|9999053375|MR|Test|E|Lead 53375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053376|153376|989898|1|9999053376|MR|Test|E|Lead 53376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053377|153377|989898|1|9999053377|MR|Test|E|Lead 53377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053378|153378|989898|1|9999053378|MR|Test|E|Lead 53378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053379|153379|989898|1|9999053379|MR|Test|E|Lead 53379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053380|153380|989898|1|9999053380|MR|Test|E|Lead 53380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053381|153381|989898|1|9999053381|MR|Test|E|Lead 53381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053382|153382|989898|1|9999053382|MR|Test|E|Lead 53382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053383|153383|989898|1|9999053383|MR|Test|E|Lead 53383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053384|153384|989898|1|9999053384|MR|Test|E|Lead 53384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053385|153385|989898|1|9999053385|MR|Test|E|Lead 53385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053386|153386|989898|1|9999053386|MR|Test|E|Lead 53386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053387|153387|989898|1|9999053387|MR|Test|E|Lead 53387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053388|153388|989898|1|9999053388|MR|Test|E|Lead 53388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053389|153389|989898|1|9999053389|MR|Test|E|Lead 53389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053390|153390|989898|1|9999053390|MR|Test|E|Lead 53390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053391|153391|989898|1|9999053391|MR|Test|E|Lead 53391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053392|153392|989898|1|9999053392|MR|Test|E|Lead 53392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053393|153393|989898|1|9999053393|MR|Test|E|Lead 53393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053394|153394|989898|1|9999053394|MR|Test|E|Lead 53394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053395|153395|989898|1|9999053395|MR|Test|E|Lead 53395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053396|153396|989898|1|9999053396|MR|Test|E|Lead 53396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053397|153397|989898|1|9999053397|MR|Test|E|Lead 53397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053398|153398|989898|1|9999053398|MR|Test|E|Lead 53398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053399|153399|989898|1|9999053399|MR|Test|E|Lead 53399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053400|153400|989898|1|9999053400|MR|Test|E|Lead 53400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053401|153401|989898|1|9999053401|MR|Test|E|Lead 53401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053402|153402|989898|1|9999053402|MR|Test|E|Lead 53402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053403|153403|989898|1|9999053403|MR|Test|E|Lead 53403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053404|153404|989898|1|9999053404|MR|Test|E|Lead 53404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053405|153405|989898|1|9999053405|MR|Test|E|Lead 53405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053406|153406|989898|1|9999053406|MR|Test|E|Lead 53406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053407|153407|989898|1|9999053407|MR|Test|E|Lead 53407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053408|153408|989898|1|9999053408|MR|Test|E|Lead 53408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053409|153409|989898|1|9999053409|MR|Test|E|Lead 53409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053410|153410|989898|1|9999053410|MR|Test|E|Lead 53410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053411|153411|989898|1|9999053411|MR|Test|E|Lead 53411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053412|153412|989898|1|9999053412|MR|Test|E|Lead 53412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053413|153413|989898|1|9999053413|MR|Test|E|Lead 53413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053414|153414|989898|1|9999053414|MR|Test|E|Lead 53414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053415|153415|989898|1|9999053415|MR|Test|E|Lead 53415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053416|153416|989898|1|9999053416|MR|Test|E|Lead 53416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053417|153417|989898|1|9999053417|MR|Test|E|Lead 53417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053418|153418|989898|1|9999053418|MR|Test|E|Lead 53418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053419|153419|989898|1|9999053419|MR|Test|E|Lead 53419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053420|153420|989898|1|9999053420|MR|Test|E|Lead 53420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053421|153421|989898|1|9999053421|MR|Test|E|Lead 53421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053422|153422|989898|1|9999053422|MR|Test|E|Lead 53422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053423|153423|989898|1|9999053423|MR|Test|E|Lead 53423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053424|153424|989898|1|9999053424|MR|Test|E|Lead 53424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053425|153425|989898|1|9999053425|MR|Test|E|Lead 53425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053426|153426|989898|1|9999053426|MR|Test|E|Lead 53426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053427|153427|989898|1|9999053427|MR|Test|E|Lead 53427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053428|153428|989898|1|9999053428|MR|Test|E|Lead 53428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053429|153429|989898|1|9999053429|MR|Test|E|Lead 53429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053430|153430|989898|1|9999053430|MR|Test|E|Lead 53430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053431|153431|989898|1|9999053431|MR|Test|E|Lead 53431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053432|153432|989898|1|9999053432|MR|Test|E|Lead 53432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053433|153433|989898|1|9999053433|MR|Test|E|Lead 53433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053434|153434|989898|1|9999053434|MR|Test|E|Lead 53434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053435|153435|989898|1|9999053435|MR|Test|E|Lead 53435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053436|153436|989898|1|9999053436|MR|Test|E|Lead 53436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053437|153437|989898|1|9999053437|MR|Test|E|Lead 53437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053438|153438|989898|1|9999053438|MR|Test|E|Lead 53438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053439|153439|989898|1|9999053439|MR|Test|E|Lead 53439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053440|153440|989898|1|9999053440|MR|Test|E|Lead 53440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053441|153441|989898|1|9999053441|MR|Test|E|Lead 53441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053442|153442|989898|1|9999053442|MR|Test|E|Lead 53442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053443|153443|989898|1|9999053443|MR|Test|E|Lead 53443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053444|153444|989898|1|9999053444|MR|Test|E|Lead 53444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053445|153445|989898|1|9999053445|MR|Test|E|Lead 53445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053446|153446|989898|1|9999053446|MR|Test|E|Lead 53446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053447|153447|989898|1|9999053447|MR|Test|E|Lead 53447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053448|153448|989898|1|9999053448|MR|Test|E|Lead 53448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053449|153449|989898|1|9999053449|MR|Test|E|Lead 53449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053450|153450|989898|1|9999053450|MR|Test|E|Lead 53450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053451|153451|989898|1|9999053451|MR|Test|E|Lead 53451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053452|153452|989898|1|9999053452|MR|Test|E|Lead 53452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053453|153453|989898|1|9999053453|MR|Test|E|Lead 53453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053454|153454|989898|1|9999053454|MR|Test|E|Lead 53454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053455|153455|989898|1|9999053455|MR|Test|E|Lead 53455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053456|153456|989898|1|9999053456|MR|Test|E|Lead 53456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053457|153457|989898|1|9999053457|MR|Test|E|Lead 53457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053458|153458|989898|1|9999053458|MR|Test|E|Lead 53458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053459|153459|989898|1|9999053459|MR|Test|E|Lead 53459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053460|153460|989898|1|9999053460|MR|Test|E|Lead 53460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053461|153461|989898|1|9999053461|MR|Test|E|Lead 53461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053462|153462|989898|1|9999053462|MR|Test|E|Lead 53462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053463|153463|989898|1|9999053463|MR|Test|E|Lead 53463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053464|153464|989898|1|9999053464|MR|Test|E|Lead 53464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053465|153465|989898|1|9999053465|MR|Test|E|Lead 53465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053466|153466|989898|1|9999053466|MR|Test|E|Lead 53466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053467|153467|989898|1|9999053467|MR|Test|E|Lead 53467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053468|153468|989898|1|9999053468|MR|Test|E|Lead 53468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053469|153469|989898|1|9999053469|MR|Test|E|Lead 53469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053470|153470|989898|1|9999053470|MR|Test|E|Lead 53470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053471|153471|989898|1|9999053471|MR|Test|E|Lead 53471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053472|153472|989898|1|9999053472|MR|Test|E|Lead 53472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053473|153473|989898|1|9999053473|MR|Test|E|Lead 53473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053474|153474|989898|1|9999053474|MR|Test|E|Lead 53474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053475|153475|989898|1|9999053475|MR|Test|E|Lead 53475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053476|153476|989898|1|9999053476|MR|Test|E|Lead 53476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053477|153477|989898|1|9999053477|MR|Test|E|Lead 53477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053478|153478|989898|1|9999053478|MR|Test|E|Lead 53478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053479|153479|989898|1|9999053479|MR|Test|E|Lead 53479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053480|153480|989898|1|9999053480|MR|Test|E|Lead 53480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053481|153481|989898|1|9999053481|MR|Test|E|Lead 53481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053482|153482|989898|1|9999053482|MR|Test|E|Lead 53482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053483|153483|989898|1|9999053483|MR|Test|E|Lead 53483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053484|153484|989898|1|9999053484|MR|Test|E|Lead 53484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053485|153485|989898|1|9999053485|MR|Test|E|Lead 53485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053486|153486|989898|1|9999053486|MR|Test|E|Lead 53486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053487|153487|989898|1|9999053487|MR|Test|E|Lead 53487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053488|153488|989898|1|9999053488|MR|Test|E|Lead 53488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053489|153489|989898|1|9999053489|MR|Test|E|Lead 53489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053490|153490|989898|1|9999053490|MR|Test|E|Lead 53490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053491|153491|989898|1|9999053491|MR|Test|E|Lead 53491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053492|153492|989898|1|9999053492|MR|Test|E|Lead 53492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053493|153493|989898|1|9999053493|MR|Test|E|Lead 53493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053494|153494|989898|1|9999053494|MR|Test|E|Lead 53494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053495|153495|989898|1|9999053495|MR|Test|E|Lead 53495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053496|153496|989898|1|9999053496|MR|Test|E|Lead 53496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053497|153497|989898|1|9999053497|MR|Test|E|Lead 53497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053498|153498|989898|1|9999053498|MR|Test|E|Lead 53498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053499|153499|989898|1|9999053499|MR|Test|E|Lead 53499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053500|153500|989898|1|9999053500|MR|Test|E|Lead 53500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053501|153501|989898|1|9999053501|MR|Test|E|Lead 53501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053502|153502|989898|1|9999053502|MR|Test|E|Lead 53502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053503|153503|989898|1|9999053503|MR|Test|E|Lead 53503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053504|153504|989898|1|9999053504|MR|Test|E|Lead 53504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053505|153505|989898|1|9999053505|MR|Test|E|Lead 53505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053506|153506|989898|1|9999053506|MR|Test|E|Lead 53506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053507|153507|989898|1|9999053507|MR|Test|E|Lead 53507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053508|153508|989898|1|9999053508|MR|Test|E|Lead 53508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053509|153509|989898|1|9999053509|MR|Test|E|Lead 53509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053510|153510|989898|1|9999053510|MR|Test|E|Lead 53510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053511|153511|989898|1|9999053511|MR|Test|E|Lead 53511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053512|153512|989898|1|9999053512|MR|Test|E|Lead 53512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053513|153513|989898|1|9999053513|MR|Test|E|Lead 53513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053514|153514|989898|1|9999053514|MR|Test|E|Lead 53514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053515|153515|989898|1|9999053515|MR|Test|E|Lead 53515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053516|153516|989898|1|9999053516|MR|Test|E|Lead 53516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053517|153517|989898|1|9999053517|MR|Test|E|Lead 53517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053518|153518|989898|1|9999053518|MR|Test|E|Lead 53518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053519|153519|989898|1|9999053519|MR|Test|E|Lead 53519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053520|153520|989898|1|9999053520|MR|Test|E|Lead 53520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053521|153521|989898|1|9999053521|MR|Test|E|Lead 53521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053522|153522|989898|1|9999053522|MR|Test|E|Lead 53522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053523|153523|989898|1|9999053523|MR|Test|E|Lead 53523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053524|153524|989898|1|9999053524|MR|Test|E|Lead 53524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053525|153525|989898|1|9999053525|MR|Test|E|Lead 53525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053526|153526|989898|1|9999053526|MR|Test|E|Lead 53526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053527|153527|989898|1|9999053527|MR|Test|E|Lead 53527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053528|153528|989898|1|9999053528|MR|Test|E|Lead 53528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053529|153529|989898|1|9999053529|MR|Test|E|Lead 53529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053530|153530|989898|1|9999053530|MR|Test|E|Lead 53530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053531|153531|989898|1|9999053531|MR|Test|E|Lead 53531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053532|153532|989898|1|9999053532|MR|Test|E|Lead 53532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053533|153533|989898|1|9999053533|MR|Test|E|Lead 53533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053534|153534|989898|1|9999053534|MR|Test|E|Lead 53534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053535|153535|989898|1|9999053535|MR|Test|E|Lead 53535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053536|153536|989898|1|9999053536|MR|Test|E|Lead 53536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053537|153537|989898|1|9999053537|MR|Test|E|Lead 53537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053538|153538|989898|1|9999053538|MR|Test|E|Lead 53538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053539|153539|989898|1|9999053539|MR|Test|E|Lead 53539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053540|153540|989898|1|9999053540|MR|Test|E|Lead 53540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053541|153541|989898|1|9999053541|MR|Test|E|Lead 53541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053542|153542|989898|1|9999053542|MR|Test|E|Lead 53542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053543|153543|989898|1|9999053543|MR|Test|E|Lead 53543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053544|153544|989898|1|9999053544|MR|Test|E|Lead 53544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053545|153545|989898|1|9999053545|MR|Test|E|Lead 53545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053546|153546|989898|1|9999053546|MR|Test|E|Lead 53546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053547|153547|989898|1|9999053547|MR|Test|E|Lead 53547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053548|153548|989898|1|9999053548|MR|Test|E|Lead 53548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053549|153549|989898|1|9999053549|MR|Test|E|Lead 53549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053550|153550|989898|1|9999053550|MR|Test|E|Lead 53550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053551|153551|989898|1|9999053551|MR|Test|E|Lead 53551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053552|153552|989898|1|9999053552|MR|Test|E|Lead 53552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053553|153553|989898|1|9999053553|MR|Test|E|Lead 53553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053554|153554|989898|1|9999053554|MR|Test|E|Lead 53554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053555|153555|989898|1|9999053555|MR|Test|E|Lead 53555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053556|153556|989898|1|9999053556|MR|Test|E|Lead 53556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053557|153557|989898|1|9999053557|MR|Test|E|Lead 53557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053558|153558|989898|1|9999053558|MR|Test|E|Lead 53558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053559|153559|989898|1|9999053559|MR|Test|E|Lead 53559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053560|153560|989898|1|9999053560|MR|Test|E|Lead 53560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053561|153561|989898|1|9999053561|MR|Test|E|Lead 53561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053562|153562|989898|1|9999053562|MR|Test|E|Lead 53562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053563|153563|989898|1|9999053563|MR|Test|E|Lead 53563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053564|153564|989898|1|9999053564|MR|Test|E|Lead 53564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053565|153565|989898|1|9999053565|MR|Test|E|Lead 53565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053566|153566|989898|1|9999053566|MR|Test|E|Lead 53566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053567|153567|989898|1|9999053567|MR|Test|E|Lead 53567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053568|153568|989898|1|9999053568|MR|Test|E|Lead 53568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053569|153569|989898|1|9999053569|MR|Test|E|Lead 53569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053570|153570|989898|1|9999053570|MR|Test|E|Lead 53570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053571|153571|989898|1|9999053571|MR|Test|E|Lead 53571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053572|153572|989898|1|9999053572|MR|Test|E|Lead 53572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053573|153573|989898|1|9999053573|MR|Test|E|Lead 53573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053574|153574|989898|1|9999053574|MR|Test|E|Lead 53574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053575|153575|989898|1|9999053575|MR|Test|E|Lead 53575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053576|153576|989898|1|9999053576|MR|Test|E|Lead 53576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053577|153577|989898|1|9999053577|MR|Test|E|Lead 53577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053578|153578|989898|1|9999053578|MR|Test|E|Lead 53578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053579|153579|989898|1|9999053579|MR|Test|E|Lead 53579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053580|153580|989898|1|9999053580|MR|Test|E|Lead 53580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053581|153581|989898|1|9999053581|MR|Test|E|Lead 53581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053582|153582|989898|1|9999053582|MR|Test|E|Lead 53582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053583|153583|989898|1|9999053583|MR|Test|E|Lead 53583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053584|153584|989898|1|9999053584|MR|Test|E|Lead 53584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053585|153585|989898|1|9999053585|MR|Test|E|Lead 53585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053586|153586|989898|1|9999053586|MR|Test|E|Lead 53586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053587|153587|989898|1|9999053587|MR|Test|E|Lead 53587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053588|153588|989898|1|9999053588|MR|Test|E|Lead 53588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053589|153589|989898|1|9999053589|MR|Test|E|Lead 53589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053590|153590|989898|1|9999053590|MR|Test|E|Lead 53590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053591|153591|989898|1|9999053591|MR|Test|E|Lead 53591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053592|153592|989898|1|9999053592|MR|Test|E|Lead 53592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053593|153593|989898|1|9999053593|MR|Test|E|Lead 53593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053594|153594|989898|1|9999053594|MR|Test|E|Lead 53594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053595|153595|989898|1|9999053595|MR|Test|E|Lead 53595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053596|153596|989898|1|9999053596|MR|Test|E|Lead 53596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053597|153597|989898|1|9999053597|MR|Test|E|Lead 53597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053598|153598|989898|1|9999053598|MR|Test|E|Lead 53598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053599|153599|989898|1|9999053599|MR|Test|E|Lead 53599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053600|153600|989898|1|9999053600|MR|Test|E|Lead 53600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053601|153601|989898|1|9999053601|MR|Test|E|Lead 53601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053602|153602|989898|1|9999053602|MR|Test|E|Lead 53602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053603|153603|989898|1|9999053603|MR|Test|E|Lead 53603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053604|153604|989898|1|9999053604|MR|Test|E|Lead 53604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053605|153605|989898|1|9999053605|MR|Test|E|Lead 53605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053606|153606|989898|1|9999053606|MR|Test|E|Lead 53606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053607|153607|989898|1|9999053607|MR|Test|E|Lead 53607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053608|153608|989898|1|9999053608|MR|Test|E|Lead 53608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053609|153609|989898|1|9999053609|MR|Test|E|Lead 53609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053610|153610|989898|1|9999053610|MR|Test|E|Lead 53610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053611|153611|989898|1|9999053611|MR|Test|E|Lead 53611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053612|153612|989898|1|9999053612|MR|Test|E|Lead 53612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053613|153613|989898|1|9999053613|MR|Test|E|Lead 53613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053614|153614|989898|1|9999053614|MR|Test|E|Lead 53614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053615|153615|989898|1|9999053615|MR|Test|E|Lead 53615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053616|153616|989898|1|9999053616|MR|Test|E|Lead 53616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053617|153617|989898|1|9999053617|MR|Test|E|Lead 53617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053618|153618|989898|1|9999053618|MR|Test|E|Lead 53618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053619|153619|989898|1|9999053619|MR|Test|E|Lead 53619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053620|153620|989898|1|9999053620|MR|Test|E|Lead 53620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053621|153621|989898|1|9999053621|MR|Test|E|Lead 53621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053622|153622|989898|1|9999053622|MR|Test|E|Lead 53622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053623|153623|989898|1|9999053623|MR|Test|E|Lead 53623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053624|153624|989898|1|9999053624|MR|Test|E|Lead 53624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053625|153625|989898|1|9999053625|MR|Test|E|Lead 53625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053626|153626|989898|1|9999053626|MR|Test|E|Lead 53626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053627|153627|989898|1|9999053627|MR|Test|E|Lead 53627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053628|153628|989898|1|9999053628|MR|Test|E|Lead 53628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053629|153629|989898|1|9999053629|MR|Test|E|Lead 53629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053630|153630|989898|1|9999053630|MR|Test|E|Lead 53630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053631|153631|989898|1|9999053631|MR|Test|E|Lead 53631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053632|153632|989898|1|9999053632|MR|Test|E|Lead 53632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053633|153633|989898|1|9999053633|MR|Test|E|Lead 53633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053634|153634|989898|1|9999053634|MR|Test|E|Lead 53634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053635|153635|989898|1|9999053635|MR|Test|E|Lead 53635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053636|153636|989898|1|9999053636|MR|Test|E|Lead 53636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053637|153637|989898|1|9999053637|MR|Test|E|Lead 53637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053638|153638|989898|1|9999053638|MR|Test|E|Lead 53638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053639|153639|989898|1|9999053639|MR|Test|E|Lead 53639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053640|153640|989898|1|9999053640|MR|Test|E|Lead 53640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053641|153641|989898|1|9999053641|MR|Test|E|Lead 53641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053642|153642|989898|1|9999053642|MR|Test|E|Lead 53642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053643|153643|989898|1|9999053643|MR|Test|E|Lead 53643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053644|153644|989898|1|9999053644|MR|Test|E|Lead 53644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053645|153645|989898|1|9999053645|MR|Test|E|Lead 53645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053646|153646|989898|1|9999053646|MR|Test|E|Lead 53646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053647|153647|989898|1|9999053647|MR|Test|E|Lead 53647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053648|153648|989898|1|9999053648|MR|Test|E|Lead 53648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053649|153649|989898|1|9999053649|MR|Test|E|Lead 53649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053650|153650|989898|1|9999053650|MR|Test|E|Lead 53650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053651|153651|989898|1|9999053651|MR|Test|E|Lead 53651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053652|153652|989898|1|9999053652|MR|Test|E|Lead 53652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053653|153653|989898|1|9999053653|MR|Test|E|Lead 53653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053654|153654|989898|1|9999053654|MR|Test|E|Lead 53654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053655|153655|989898|1|9999053655|MR|Test|E|Lead 53655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053656|153656|989898|1|9999053656|MR|Test|E|Lead 53656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053657|153657|989898|1|9999053657|MR|Test|E|Lead 53657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053658|153658|989898|1|9999053658|MR|Test|E|Lead 53658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053659|153659|989898|1|9999053659|MR|Test|E|Lead 53659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053660|153660|989898|1|9999053660|MR|Test|E|Lead 53660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053661|153661|989898|1|9999053661|MR|Test|E|Lead 53661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053662|153662|989898|1|9999053662|MR|Test|E|Lead 53662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053663|153663|989898|1|9999053663|MR|Test|E|Lead 53663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053664|153664|989898|1|9999053664|MR|Test|E|Lead 53664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053665|153665|989898|1|9999053665|MR|Test|E|Lead 53665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053666|153666|989898|1|9999053666|MR|Test|E|Lead 53666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053667|153667|989898|1|9999053667|MR|Test|E|Lead 53667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053668|153668|989898|1|9999053668|MR|Test|E|Lead 53668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053669|153669|989898|1|9999053669|MR|Test|E|Lead 53669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053670|153670|989898|1|9999053670|MR|Test|E|Lead 53670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053671|153671|989898|1|9999053671|MR|Test|E|Lead 53671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053672|153672|989898|1|9999053672|MR|Test|E|Lead 53672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053673|153673|989898|1|9999053673|MR|Test|E|Lead 53673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053674|153674|989898|1|9999053674|MR|Test|E|Lead 53674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053675|153675|989898|1|9999053675|MR|Test|E|Lead 53675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053676|153676|989898|1|9999053676|MR|Test|E|Lead 53676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053677|153677|989898|1|9999053677|MR|Test|E|Lead 53677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053678|153678|989898|1|9999053678|MR|Test|E|Lead 53678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053679|153679|989898|1|9999053679|MR|Test|E|Lead 53679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053680|153680|989898|1|9999053680|MR|Test|E|Lead 53680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053681|153681|989898|1|9999053681|MR|Test|E|Lead 53681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053682|153682|989898|1|9999053682|MR|Test|E|Lead 53682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053683|153683|989898|1|9999053683|MR|Test|E|Lead 53683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053684|153684|989898|1|9999053684|MR|Test|E|Lead 53684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053685|153685|989898|1|9999053685|MR|Test|E|Lead 53685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053686|153686|989898|1|9999053686|MR|Test|E|Lead 53686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053687|153687|989898|1|9999053687|MR|Test|E|Lead 53687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053688|153688|989898|1|9999053688|MR|Test|E|Lead 53688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053689|153689|989898|1|9999053689|MR|Test|E|Lead 53689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053690|153690|989898|1|9999053690|MR|Test|E|Lead 53690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053691|153691|989898|1|9999053691|MR|Test|E|Lead 53691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053692|153692|989898|1|9999053692|MR|Test|E|Lead 53692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053693|153693|989898|1|9999053693|MR|Test|E|Lead 53693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053694|153694|989898|1|9999053694|MR|Test|E|Lead 53694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053695|153695|989898|1|9999053695|MR|Test|E|Lead 53695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053696|153696|989898|1|9999053696|MR|Test|E|Lead 53696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053697|153697|989898|1|9999053697|MR|Test|E|Lead 53697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053698|153698|989898|1|9999053698|MR|Test|E|Lead 53698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053699|153699|989898|1|9999053699|MR|Test|E|Lead 53699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053700|153700|989898|1|9999053700|MR|Test|E|Lead 53700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053701|153701|989898|1|9999053701|MR|Test|E|Lead 53701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053702|153702|989898|1|9999053702|MR|Test|E|Lead 53702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053703|153703|989898|1|9999053703|MR|Test|E|Lead 53703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053704|153704|989898|1|9999053704|MR|Test|E|Lead 53704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053705|153705|989898|1|9999053705|MR|Test|E|Lead 53705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053706|153706|989898|1|9999053706|MR|Test|E|Lead 53706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053707|153707|989898|1|9999053707|MR|Test|E|Lead 53707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053708|153708|989898|1|9999053708|MR|Test|E|Lead 53708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053709|153709|989898|1|9999053709|MR|Test|E|Lead 53709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053710|153710|989898|1|9999053710|MR|Test|E|Lead 53710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053711|153711|989898|1|9999053711|MR|Test|E|Lead 53711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053712|153712|989898|1|9999053712|MR|Test|E|Lead 53712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053713|153713|989898|1|9999053713|MR|Test|E|Lead 53713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053714|153714|989898|1|9999053714|MR|Test|E|Lead 53714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053715|153715|989898|1|9999053715|MR|Test|E|Lead 53715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053716|153716|989898|1|9999053716|MR|Test|E|Lead 53716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053717|153717|989898|1|9999053717|MR|Test|E|Lead 53717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053718|153718|989898|1|9999053718|MR|Test|E|Lead 53718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053719|153719|989898|1|9999053719|MR|Test|E|Lead 53719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053720|153720|989898|1|9999053720|MR|Test|E|Lead 53720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053721|153721|989898|1|9999053721|MR|Test|E|Lead 53721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053722|153722|989898|1|9999053722|MR|Test|E|Lead 53722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053723|153723|989898|1|9999053723|MR|Test|E|Lead 53723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053724|153724|989898|1|9999053724|MR|Test|E|Lead 53724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053725|153725|989898|1|9999053725|MR|Test|E|Lead 53725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053726|153726|989898|1|9999053726|MR|Test|E|Lead 53726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053727|153727|989898|1|9999053727|MR|Test|E|Lead 53727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053728|153728|989898|1|9999053728|MR|Test|E|Lead 53728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053729|153729|989898|1|9999053729|MR|Test|E|Lead 53729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053730|153730|989898|1|9999053730|MR|Test|E|Lead 53730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053731|153731|989898|1|9999053731|MR|Test|E|Lead 53731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053732|153732|989898|1|9999053732|MR|Test|E|Lead 53732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053733|153733|989898|1|9999053733|MR|Test|E|Lead 53733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053734|153734|989898|1|9999053734|MR|Test|E|Lead 53734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053735|153735|989898|1|9999053735|MR|Test|E|Lead 53735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053736|153736|989898|1|9999053736|MR|Test|E|Lead 53736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053737|153737|989898|1|9999053737|MR|Test|E|Lead 53737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053738|153738|989898|1|9999053738|MR|Test|E|Lead 53738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053739|153739|989898|1|9999053739|MR|Test|E|Lead 53739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053740|153740|989898|1|9999053740|MR|Test|E|Lead 53740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053741|153741|989898|1|9999053741|MR|Test|E|Lead 53741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053742|153742|989898|1|9999053742|MR|Test|E|Lead 53742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053743|153743|989898|1|9999053743|MR|Test|E|Lead 53743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053744|153744|989898|1|9999053744|MR|Test|E|Lead 53744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053745|153745|989898|1|9999053745|MR|Test|E|Lead 53745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053746|153746|989898|1|9999053746|MR|Test|E|Lead 53746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053747|153747|989898|1|9999053747|MR|Test|E|Lead 53747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053748|153748|989898|1|9999053748|MR|Test|E|Lead 53748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053749|153749|989898|1|9999053749|MR|Test|E|Lead 53749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053750|153750|989898|1|9999053750|MR|Test|E|Lead 53750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053751|153751|989898|1|9999053751|MR|Test|E|Lead 53751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053752|153752|989898|1|9999053752|MR|Test|E|Lead 53752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053753|153753|989898|1|9999053753|MR|Test|E|Lead 53753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053754|153754|989898|1|9999053754|MR|Test|E|Lead 53754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053755|153755|989898|1|9999053755|MR|Test|E|Lead 53755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053756|153756|989898|1|9999053756|MR|Test|E|Lead 53756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053757|153757|989898|1|9999053757|MR|Test|E|Lead 53757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053758|153758|989898|1|9999053758|MR|Test|E|Lead 53758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053759|153759|989898|1|9999053759|MR|Test|E|Lead 53759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053760|153760|989898|1|9999053760|MR|Test|E|Lead 53760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053761|153761|989898|1|9999053761|MR|Test|E|Lead 53761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053762|153762|989898|1|9999053762|MR|Test|E|Lead 53762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053763|153763|989898|1|9999053763|MR|Test|E|Lead 53763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053764|153764|989898|1|9999053764|MR|Test|E|Lead 53764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053765|153765|989898|1|9999053765|MR|Test|E|Lead 53765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053766|153766|989898|1|9999053766|MR|Test|E|Lead 53766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053767|153767|989898|1|9999053767|MR|Test|E|Lead 53767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053768|153768|989898|1|9999053768|MR|Test|E|Lead 53768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053769|153769|989898|1|9999053769|MR|Test|E|Lead 53769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053770|153770|989898|1|9999053770|MR|Test|E|Lead 53770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053771|153771|989898|1|9999053771|MR|Test|E|Lead 53771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053772|153772|989898|1|9999053772|MR|Test|E|Lead 53772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053773|153773|989898|1|9999053773|MR|Test|E|Lead 53773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053774|153774|989898|1|9999053774|MR|Test|E|Lead 53774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053775|153775|989898|1|9999053775|MR|Test|E|Lead 53775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053776|153776|989898|1|9999053776|MR|Test|E|Lead 53776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053777|153777|989898|1|9999053777|MR|Test|E|Lead 53777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053778|153778|989898|1|9999053778|MR|Test|E|Lead 53778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053779|153779|989898|1|9999053779|MR|Test|E|Lead 53779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053780|153780|989898|1|9999053780|MR|Test|E|Lead 53780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053781|153781|989898|1|9999053781|MR|Test|E|Lead 53781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053782|153782|989898|1|9999053782|MR|Test|E|Lead 53782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053783|153783|989898|1|9999053783|MR|Test|E|Lead 53783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053784|153784|989898|1|9999053784|MR|Test|E|Lead 53784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053785|153785|989898|1|9999053785|MR|Test|E|Lead 53785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053786|153786|989898|1|9999053786|MR|Test|E|Lead 53786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053787|153787|989898|1|9999053787|MR|Test|E|Lead 53787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053788|153788|989898|1|9999053788|MR|Test|E|Lead 53788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053789|153789|989898|1|9999053789|MR|Test|E|Lead 53789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053790|153790|989898|1|9999053790|MR|Test|E|Lead 53790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053791|153791|989898|1|9999053791|MR|Test|E|Lead 53791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053792|153792|989898|1|9999053792|MR|Test|E|Lead 53792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053793|153793|989898|1|9999053793|MR|Test|E|Lead 53793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053794|153794|989898|1|9999053794|MR|Test|E|Lead 53794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053795|153795|989898|1|9999053795|MR|Test|E|Lead 53795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053796|153796|989898|1|9999053796|MR|Test|E|Lead 53796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053797|153797|989898|1|9999053797|MR|Test|E|Lead 53797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053798|153798|989898|1|9999053798|MR|Test|E|Lead 53798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053799|153799|989898|1|9999053799|MR|Test|E|Lead 53799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053800|153800|989898|1|9999053800|MR|Test|E|Lead 53800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053801|153801|989898|1|9999053801|MR|Test|E|Lead 53801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053802|153802|989898|1|9999053802|MR|Test|E|Lead 53802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053803|153803|989898|1|9999053803|MR|Test|E|Lead 53803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053804|153804|989898|1|9999053804|MR|Test|E|Lead 53804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053805|153805|989898|1|9999053805|MR|Test|E|Lead 53805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053806|153806|989898|1|9999053806|MR|Test|E|Lead 53806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053807|153807|989898|1|9999053807|MR|Test|E|Lead 53807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053808|153808|989898|1|9999053808|MR|Test|E|Lead 53808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053809|153809|989898|1|9999053809|MR|Test|E|Lead 53809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053810|153810|989898|1|9999053810|MR|Test|E|Lead 53810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053811|153811|989898|1|9999053811|MR|Test|E|Lead 53811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053812|153812|989898|1|9999053812|MR|Test|E|Lead 53812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053813|153813|989898|1|9999053813|MR|Test|E|Lead 53813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053814|153814|989898|1|9999053814|MR|Test|E|Lead 53814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053815|153815|989898|1|9999053815|MR|Test|E|Lead 53815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053816|153816|989898|1|9999053816|MR|Test|E|Lead 53816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053817|153817|989898|1|9999053817|MR|Test|E|Lead 53817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053818|153818|989898|1|9999053818|MR|Test|E|Lead 53818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053819|153819|989898|1|9999053819|MR|Test|E|Lead 53819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053820|153820|989898|1|9999053820|MR|Test|E|Lead 53820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053821|153821|989898|1|9999053821|MR|Test|E|Lead 53821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053822|153822|989898|1|9999053822|MR|Test|E|Lead 53822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053823|153823|989898|1|9999053823|MR|Test|E|Lead 53823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053824|153824|989898|1|9999053824|MR|Test|E|Lead 53824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053825|153825|989898|1|9999053825|MR|Test|E|Lead 53825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053826|153826|989898|1|9999053826|MR|Test|E|Lead 53826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053827|153827|989898|1|9999053827|MR|Test|E|Lead 53827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053828|153828|989898|1|9999053828|MR|Test|E|Lead 53828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053829|153829|989898|1|9999053829|MR|Test|E|Lead 53829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053830|153830|989898|1|9999053830|MR|Test|E|Lead 53830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053831|153831|989898|1|9999053831|MR|Test|E|Lead 53831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053832|153832|989898|1|9999053832|MR|Test|E|Lead 53832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053833|153833|989898|1|9999053833|MR|Test|E|Lead 53833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053834|153834|989898|1|9999053834|MR|Test|E|Lead 53834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053835|153835|989898|1|9999053835|MR|Test|E|Lead 53835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053836|153836|989898|1|9999053836|MR|Test|E|Lead 53836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053837|153837|989898|1|9999053837|MR|Test|E|Lead 53837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053838|153838|989898|1|9999053838|MR|Test|E|Lead 53838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053839|153839|989898|1|9999053839|MR|Test|E|Lead 53839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053840|153840|989898|1|9999053840|MR|Test|E|Lead 53840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053841|153841|989898|1|9999053841|MR|Test|E|Lead 53841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053842|153842|989898|1|9999053842|MR|Test|E|Lead 53842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053843|153843|989898|1|9999053843|MR|Test|E|Lead 53843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053844|153844|989898|1|9999053844|MR|Test|E|Lead 53844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053845|153845|989898|1|9999053845|MR|Test|E|Lead 53845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053846|153846|989898|1|9999053846|MR|Test|E|Lead 53846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053847|153847|989898|1|9999053847|MR|Test|E|Lead 53847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053848|153848|989898|1|9999053848|MR|Test|E|Lead 53848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053849|153849|989898|1|9999053849|MR|Test|E|Lead 53849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053850|153850|989898|1|9999053850|MR|Test|E|Lead 53850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053851|153851|989898|1|9999053851|MR|Test|E|Lead 53851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053852|153852|989898|1|9999053852|MR|Test|E|Lead 53852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053853|153853|989898|1|9999053853|MR|Test|E|Lead 53853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053854|153854|989898|1|9999053854|MR|Test|E|Lead 53854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053855|153855|989898|1|9999053855|MR|Test|E|Lead 53855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053856|153856|989898|1|9999053856|MR|Test|E|Lead 53856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053857|153857|989898|1|9999053857|MR|Test|E|Lead 53857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053858|153858|989898|1|9999053858|MR|Test|E|Lead 53858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053859|153859|989898|1|9999053859|MR|Test|E|Lead 53859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053860|153860|989898|1|9999053860|MR|Test|E|Lead 53860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053861|153861|989898|1|9999053861|MR|Test|E|Lead 53861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053862|153862|989898|1|9999053862|MR|Test|E|Lead 53862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053863|153863|989898|1|9999053863|MR|Test|E|Lead 53863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053864|153864|989898|1|9999053864|MR|Test|E|Lead 53864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053865|153865|989898|1|9999053865|MR|Test|E|Lead 53865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053866|153866|989898|1|9999053866|MR|Test|E|Lead 53866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053867|153867|989898|1|9999053867|MR|Test|E|Lead 53867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053868|153868|989898|1|9999053868|MR|Test|E|Lead 53868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053869|153869|989898|1|9999053869|MR|Test|E|Lead 53869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053870|153870|989898|1|9999053870|MR|Test|E|Lead 53870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053871|153871|989898|1|9999053871|MR|Test|E|Lead 53871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053872|153872|989898|1|9999053872|MR|Test|E|Lead 53872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053873|153873|989898|1|9999053873|MR|Test|E|Lead 53873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053874|153874|989898|1|9999053874|MR|Test|E|Lead 53874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053875|153875|989898|1|9999053875|MR|Test|E|Lead 53875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053876|153876|989898|1|9999053876|MR|Test|E|Lead 53876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053877|153877|989898|1|9999053877|MR|Test|E|Lead 53877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053878|153878|989898|1|9999053878|MR|Test|E|Lead 53878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053879|153879|989898|1|9999053879|MR|Test|E|Lead 53879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053880|153880|989898|1|9999053880|MR|Test|E|Lead 53880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053881|153881|989898|1|9999053881|MR|Test|E|Lead 53881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053882|153882|989898|1|9999053882|MR|Test|E|Lead 53882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053883|153883|989898|1|9999053883|MR|Test|E|Lead 53883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053884|153884|989898|1|9999053884|MR|Test|E|Lead 53884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053885|153885|989898|1|9999053885|MR|Test|E|Lead 53885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053886|153886|989898|1|9999053886|MR|Test|E|Lead 53886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053887|153887|989898|1|9999053887|MR|Test|E|Lead 53887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053888|153888|989898|1|9999053888|MR|Test|E|Lead 53888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053889|153889|989898|1|9999053889|MR|Test|E|Lead 53889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053890|153890|989898|1|9999053890|MR|Test|E|Lead 53890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053891|153891|989898|1|9999053891|MR|Test|E|Lead 53891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053892|153892|989898|1|9999053892|MR|Test|E|Lead 53892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053893|153893|989898|1|9999053893|MR|Test|E|Lead 53893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053894|153894|989898|1|9999053894|MR|Test|E|Lead 53894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053895|153895|989898|1|9999053895|MR|Test|E|Lead 53895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053896|153896|989898|1|9999053896|MR|Test|E|Lead 53896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053897|153897|989898|1|9999053897|MR|Test|E|Lead 53897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053898|153898|989898|1|9999053898|MR|Test|E|Lead 53898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053899|153899|989898|1|9999053899|MR|Test|E|Lead 53899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053900|153900|989898|1|9999053900|MR|Test|E|Lead 53900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053901|153901|989898|1|9999053901|MR|Test|E|Lead 53901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053902|153902|989898|1|9999053902|MR|Test|E|Lead 53902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053903|153903|989898|1|9999053903|MR|Test|E|Lead 53903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053904|153904|989898|1|9999053904|MR|Test|E|Lead 53904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053905|153905|989898|1|9999053905|MR|Test|E|Lead 53905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053906|153906|989898|1|9999053906|MR|Test|E|Lead 53906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053907|153907|989898|1|9999053907|MR|Test|E|Lead 53907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053908|153908|989898|1|9999053908|MR|Test|E|Lead 53908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053909|153909|989898|1|9999053909|MR|Test|E|Lead 53909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053910|153910|989898|1|9999053910|MR|Test|E|Lead 53910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053911|153911|989898|1|9999053911|MR|Test|E|Lead 53911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053912|153912|989898|1|9999053912|MR|Test|E|Lead 53912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053913|153913|989898|1|9999053913|MR|Test|E|Lead 53913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053914|153914|989898|1|9999053914|MR|Test|E|Lead 53914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053915|153915|989898|1|9999053915|MR|Test|E|Lead 53915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053916|153916|989898|1|9999053916|MR|Test|E|Lead 53916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053917|153917|989898|1|9999053917|MR|Test|E|Lead 53917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053918|153918|989898|1|9999053918|MR|Test|E|Lead 53918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053919|153919|989898|1|9999053919|MR|Test|E|Lead 53919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053920|153920|989898|1|9999053920|MR|Test|E|Lead 53920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053921|153921|989898|1|9999053921|MR|Test|E|Lead 53921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053922|153922|989898|1|9999053922|MR|Test|E|Lead 53922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053923|153923|989898|1|9999053923|MR|Test|E|Lead 53923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053924|153924|989898|1|9999053924|MR|Test|E|Lead 53924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053925|153925|989898|1|9999053925|MR|Test|E|Lead 53925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053926|153926|989898|1|9999053926|MR|Test|E|Lead 53926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053927|153927|989898|1|9999053927|MR|Test|E|Lead 53927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053928|153928|989898|1|9999053928|MR|Test|E|Lead 53928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053929|153929|989898|1|9999053929|MR|Test|E|Lead 53929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053930|153930|989898|1|9999053930|MR|Test|E|Lead 53930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053931|153931|989898|1|9999053931|MR|Test|E|Lead 53931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053932|153932|989898|1|9999053932|MR|Test|E|Lead 53932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053933|153933|989898|1|9999053933|MR|Test|E|Lead 53933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053934|153934|989898|1|9999053934|MR|Test|E|Lead 53934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053935|153935|989898|1|9999053935|MR|Test|E|Lead 53935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053936|153936|989898|1|9999053936|MR|Test|E|Lead 53936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053937|153937|989898|1|9999053937|MR|Test|E|Lead 53937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053938|153938|989898|1|9999053938|MR|Test|E|Lead 53938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053939|153939|989898|1|9999053939|MR|Test|E|Lead 53939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053940|153940|989898|1|9999053940|MR|Test|E|Lead 53940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053941|153941|989898|1|9999053941|MR|Test|E|Lead 53941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053942|153942|989898|1|9999053942|MR|Test|E|Lead 53942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053943|153943|989898|1|9999053943|MR|Test|E|Lead 53943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053944|153944|989898|1|9999053944|MR|Test|E|Lead 53944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053945|153945|989898|1|9999053945|MR|Test|E|Lead 53945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053946|153946|989898|1|9999053946|MR|Test|E|Lead 53946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053947|153947|989898|1|9999053947|MR|Test|E|Lead 53947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053948|153948|989898|1|9999053948|MR|Test|E|Lead 53948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053949|153949|989898|1|9999053949|MR|Test|E|Lead 53949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053950|153950|989898|1|9999053950|MR|Test|E|Lead 53950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053951|153951|989898|1|9999053951|MR|Test|E|Lead 53951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053952|153952|989898|1|9999053952|MR|Test|E|Lead 53952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053953|153953|989898|1|9999053953|MR|Test|E|Lead 53953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053954|153954|989898|1|9999053954|MR|Test|E|Lead 53954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053955|153955|989898|1|9999053955|MR|Test|E|Lead 53955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053956|153956|989898|1|9999053956|MR|Test|E|Lead 53956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053957|153957|989898|1|9999053957|MR|Test|E|Lead 53957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053958|153958|989898|1|9999053958|MR|Test|E|Lead 53958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053959|153959|989898|1|9999053959|MR|Test|E|Lead 53959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053960|153960|989898|1|9999053960|MR|Test|E|Lead 53960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053961|153961|989898|1|9999053961|MR|Test|E|Lead 53961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053962|153962|989898|1|9999053962|MR|Test|E|Lead 53962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053963|153963|989898|1|9999053963|MR|Test|E|Lead 53963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053964|153964|989898|1|9999053964|MR|Test|E|Lead 53964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053965|153965|989898|1|9999053965|MR|Test|E|Lead 53965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053966|153966|989898|1|9999053966|MR|Test|E|Lead 53966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053967|153967|989898|1|9999053967|MR|Test|E|Lead 53967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053968|153968|989898|1|9999053968|MR|Test|E|Lead 53968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053969|153969|989898|1|9999053969|MR|Test|E|Lead 53969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053970|153970|989898|1|9999053970|MR|Test|E|Lead 53970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053971|153971|989898|1|9999053971|MR|Test|E|Lead 53971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053972|153972|989898|1|9999053972|MR|Test|E|Lead 53972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053973|153973|989898|1|9999053973|MR|Test|E|Lead 53973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053974|153974|989898|1|9999053974|MR|Test|E|Lead 53974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053975|153975|989898|1|9999053975|MR|Test|E|Lead 53975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053976|153976|989898|1|9999053976|MR|Test|E|Lead 53976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053977|153977|989898|1|9999053977|MR|Test|E|Lead 53977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053978|153978|989898|1|9999053978|MR|Test|E|Lead 53978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053979|153979|989898|1|9999053979|MR|Test|E|Lead 53979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053980|153980|989898|1|9999053980|MR|Test|E|Lead 53980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053981|153981|989898|1|9999053981|MR|Test|E|Lead 53981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053982|153982|989898|1|9999053982|MR|Test|E|Lead 53982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053983|153983|989898|1|9999053983|MR|Test|E|Lead 53983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053984|153984|989898|1|9999053984|MR|Test|E|Lead 53984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053985|153985|989898|1|9999053985|MR|Test|E|Lead 53985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053986|153986|989898|1|9999053986|MR|Test|E|Lead 53986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053987|153987|989898|1|9999053987|MR|Test|E|Lead 53987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053988|153988|989898|1|9999053988|MR|Test|E|Lead 53988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053989|153989|989898|1|9999053989|MR|Test|E|Lead 53989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053990|153990|989898|1|9999053990|MR|Test|E|Lead 53990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053991|153991|989898|1|9999053991|MR|Test|E|Lead 53991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053992|153992|989898|1|9999053992|MR|Test|E|Lead 53992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053993|153993|989898|1|9999053993|MR|Test|E|Lead 53993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053994|153994|989898|1|9999053994|MR|Test|E|Lead 53994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053995|153995|989898|1|9999053995|MR|Test|E|Lead 53995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053996|153996|989898|1|9999053996|MR|Test|E|Lead 53996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053997|153997|989898|1|9999053997|MR|Test|E|Lead 53997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053998|153998|989898|1|9999053998|MR|Test|E|Lead 53998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1053999|153999|989898|1|9999053999|MR|Test|E|Lead 53999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054000|154000|989898|1|9999054000|MR|Test|E|Lead 54000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054001|154001|989898|1|9999054001|MR|Test|E|Lead 54001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054002|154002|989898|1|9999054002|MR|Test|E|Lead 54002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054003|154003|989898|1|9999054003|MR|Test|E|Lead 54003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054004|154004|989898|1|9999054004|MR|Test|E|Lead 54004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054005|154005|989898|1|9999054005|MR|Test|E|Lead 54005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054006|154006|989898|1|9999054006|MR|Test|E|Lead 54006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054007|154007|989898|1|9999054007|MR|Test|E|Lead 54007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054008|154008|989898|1|9999054008|MR|Test|E|Lead 54008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054009|154009|989898|1|9999054009|MR|Test|E|Lead 54009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054010|154010|989898|1|9999054010|MR|Test|E|Lead 54010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054011|154011|989898|1|9999054011|MR|Test|E|Lead 54011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054012|154012|989898|1|9999054012|MR|Test|E|Lead 54012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054013|154013|989898|1|9999054013|MR|Test|E|Lead 54013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054014|154014|989898|1|9999054014|MR|Test|E|Lead 54014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054015|154015|989898|1|9999054015|MR|Test|E|Lead 54015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054016|154016|989898|1|9999054016|MR|Test|E|Lead 54016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054017|154017|989898|1|9999054017|MR|Test|E|Lead 54017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054018|154018|989898|1|9999054018|MR|Test|E|Lead 54018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054019|154019|989898|1|9999054019|MR|Test|E|Lead 54019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054020|154020|989898|1|9999054020|MR|Test|E|Lead 54020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054021|154021|989898|1|9999054021|MR|Test|E|Lead 54021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054022|154022|989898|1|9999054022|MR|Test|E|Lead 54022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054023|154023|989898|1|9999054023|MR|Test|E|Lead 54023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054024|154024|989898|1|9999054024|MR|Test|E|Lead 54024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054025|154025|989898|1|9999054025|MR|Test|E|Lead 54025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054026|154026|989898|1|9999054026|MR|Test|E|Lead 54026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054027|154027|989898|1|9999054027|MR|Test|E|Lead 54027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054028|154028|989898|1|9999054028|MR|Test|E|Lead 54028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054029|154029|989898|1|9999054029|MR|Test|E|Lead 54029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054030|154030|989898|1|9999054030|MR|Test|E|Lead 54030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054031|154031|989898|1|9999054031|MR|Test|E|Lead 54031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054032|154032|989898|1|9999054032|MR|Test|E|Lead 54032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054033|154033|989898|1|9999054033|MR|Test|E|Lead 54033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054034|154034|989898|1|9999054034|MR|Test|E|Lead 54034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054035|154035|989898|1|9999054035|MR|Test|E|Lead 54035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054036|154036|989898|1|9999054036|MR|Test|E|Lead 54036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054037|154037|989898|1|9999054037|MR|Test|E|Lead 54037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054038|154038|989898|1|9999054038|MR|Test|E|Lead 54038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054039|154039|989898|1|9999054039|MR|Test|E|Lead 54039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054040|154040|989898|1|9999054040|MR|Test|E|Lead 54040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054041|154041|989898|1|9999054041|MR|Test|E|Lead 54041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054042|154042|989898|1|9999054042|MR|Test|E|Lead 54042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054043|154043|989898|1|9999054043|MR|Test|E|Lead 54043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054044|154044|989898|1|9999054044|MR|Test|E|Lead 54044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054045|154045|989898|1|9999054045|MR|Test|E|Lead 54045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054046|154046|989898|1|9999054046|MR|Test|E|Lead 54046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054047|154047|989898|1|9999054047|MR|Test|E|Lead 54047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054048|154048|989898|1|9999054048|MR|Test|E|Lead 54048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054049|154049|989898|1|9999054049|MR|Test|E|Lead 54049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054050|154050|989898|1|9999054050|MR|Test|E|Lead 54050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054051|154051|989898|1|9999054051|MR|Test|E|Lead 54051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054052|154052|989898|1|9999054052|MR|Test|E|Lead 54052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054053|154053|989898|1|9999054053|MR|Test|E|Lead 54053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054054|154054|989898|1|9999054054|MR|Test|E|Lead 54054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054055|154055|989898|1|9999054055|MR|Test|E|Lead 54055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054056|154056|989898|1|9999054056|MR|Test|E|Lead 54056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054057|154057|989898|1|9999054057|MR|Test|E|Lead 54057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054058|154058|989898|1|9999054058|MR|Test|E|Lead 54058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054059|154059|989898|1|9999054059|MR|Test|E|Lead 54059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054060|154060|989898|1|9999054060|MR|Test|E|Lead 54060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054061|154061|989898|1|9999054061|MR|Test|E|Lead 54061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054062|154062|989898|1|9999054062|MR|Test|E|Lead 54062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054063|154063|989898|1|9999054063|MR|Test|E|Lead 54063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054064|154064|989898|1|9999054064|MR|Test|E|Lead 54064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054065|154065|989898|1|9999054065|MR|Test|E|Lead 54065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054066|154066|989898|1|9999054066|MR|Test|E|Lead 54066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054067|154067|989898|1|9999054067|MR|Test|E|Lead 54067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054068|154068|989898|1|9999054068|MR|Test|E|Lead 54068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054069|154069|989898|1|9999054069|MR|Test|E|Lead 54069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054070|154070|989898|1|9999054070|MR|Test|E|Lead 54070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054071|154071|989898|1|9999054071|MR|Test|E|Lead 54071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054072|154072|989898|1|9999054072|MR|Test|E|Lead 54072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054073|154073|989898|1|9999054073|MR|Test|E|Lead 54073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054074|154074|989898|1|9999054074|MR|Test|E|Lead 54074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054075|154075|989898|1|9999054075|MR|Test|E|Lead 54075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054076|154076|989898|1|9999054076|MR|Test|E|Lead 54076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054077|154077|989898|1|9999054077|MR|Test|E|Lead 54077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054078|154078|989898|1|9999054078|MR|Test|E|Lead 54078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054079|154079|989898|1|9999054079|MR|Test|E|Lead 54079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054080|154080|989898|1|9999054080|MR|Test|E|Lead 54080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054081|154081|989898|1|9999054081|MR|Test|E|Lead 54081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054082|154082|989898|1|9999054082|MR|Test|E|Lead 54082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054083|154083|989898|1|9999054083|MR|Test|E|Lead 54083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054084|154084|989898|1|9999054084|MR|Test|E|Lead 54084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054085|154085|989898|1|9999054085|MR|Test|E|Lead 54085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054086|154086|989898|1|9999054086|MR|Test|E|Lead 54086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054087|154087|989898|1|9999054087|MR|Test|E|Lead 54087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054088|154088|989898|1|9999054088|MR|Test|E|Lead 54088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054089|154089|989898|1|9999054089|MR|Test|E|Lead 54089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054090|154090|989898|1|9999054090|MR|Test|E|Lead 54090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054091|154091|989898|1|9999054091|MR|Test|E|Lead 54091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054092|154092|989898|1|9999054092|MR|Test|E|Lead 54092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054093|154093|989898|1|9999054093|MR|Test|E|Lead 54093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054094|154094|989898|1|9999054094|MR|Test|E|Lead 54094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054095|154095|989898|1|9999054095|MR|Test|E|Lead 54095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054096|154096|989898|1|9999054096|MR|Test|E|Lead 54096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054097|154097|989898|1|9999054097|MR|Test|E|Lead 54097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054098|154098|989898|1|9999054098|MR|Test|E|Lead 54098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054099|154099|989898|1|9999054099|MR|Test|E|Lead 54099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054100|154100|989898|1|9999054100|MR|Test|E|Lead 54100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054101|154101|989898|1|9999054101|MR|Test|E|Lead 54101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054102|154102|989898|1|9999054102|MR|Test|E|Lead 54102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054103|154103|989898|1|9999054103|MR|Test|E|Lead 54103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054104|154104|989898|1|9999054104|MR|Test|E|Lead 54104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054105|154105|989898|1|9999054105|MR|Test|E|Lead 54105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054106|154106|989898|1|9999054106|MR|Test|E|Lead 54106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054107|154107|989898|1|9999054107|MR|Test|E|Lead 54107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054108|154108|989898|1|9999054108|MR|Test|E|Lead 54108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054109|154109|989898|1|9999054109|MR|Test|E|Lead 54109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054110|154110|989898|1|9999054110|MR|Test|E|Lead 54110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054111|154111|989898|1|9999054111|MR|Test|E|Lead 54111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054112|154112|989898|1|9999054112|MR|Test|E|Lead 54112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054113|154113|989898|1|9999054113|MR|Test|E|Lead 54113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054114|154114|989898|1|9999054114|MR|Test|E|Lead 54114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054115|154115|989898|1|9999054115|MR|Test|E|Lead 54115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054116|154116|989898|1|9999054116|MR|Test|E|Lead 54116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054117|154117|989898|1|9999054117|MR|Test|E|Lead 54117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054118|154118|989898|1|9999054118|MR|Test|E|Lead 54118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054119|154119|989898|1|9999054119|MR|Test|E|Lead 54119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054120|154120|989898|1|9999054120|MR|Test|E|Lead 54120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054121|154121|989898|1|9999054121|MR|Test|E|Lead 54121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054122|154122|989898|1|9999054122|MR|Test|E|Lead 54122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054123|154123|989898|1|9999054123|MR|Test|E|Lead 54123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054124|154124|989898|1|9999054124|MR|Test|E|Lead 54124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054125|154125|989898|1|9999054125|MR|Test|E|Lead 54125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054126|154126|989898|1|9999054126|MR|Test|E|Lead 54126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054127|154127|989898|1|9999054127|MR|Test|E|Lead 54127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054128|154128|989898|1|9999054128|MR|Test|E|Lead 54128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054129|154129|989898|1|9999054129|MR|Test|E|Lead 54129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054130|154130|989898|1|9999054130|MR|Test|E|Lead 54130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054131|154131|989898|1|9999054131|MR|Test|E|Lead 54131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054132|154132|989898|1|9999054132|MR|Test|E|Lead 54132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054133|154133|989898|1|9999054133|MR|Test|E|Lead 54133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054134|154134|989898|1|9999054134|MR|Test|E|Lead 54134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054135|154135|989898|1|9999054135|MR|Test|E|Lead 54135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054136|154136|989898|1|9999054136|MR|Test|E|Lead 54136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054137|154137|989898|1|9999054137|MR|Test|E|Lead 54137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054138|154138|989898|1|9999054138|MR|Test|E|Lead 54138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054139|154139|989898|1|9999054139|MR|Test|E|Lead 54139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054140|154140|989898|1|9999054140|MR|Test|E|Lead 54140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054141|154141|989898|1|9999054141|MR|Test|E|Lead 54141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054142|154142|989898|1|9999054142|MR|Test|E|Lead 54142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054143|154143|989898|1|9999054143|MR|Test|E|Lead 54143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054144|154144|989898|1|9999054144|MR|Test|E|Lead 54144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054145|154145|989898|1|9999054145|MR|Test|E|Lead 54145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054146|154146|989898|1|9999054146|MR|Test|E|Lead 54146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054147|154147|989898|1|9999054147|MR|Test|E|Lead 54147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054148|154148|989898|1|9999054148|MR|Test|E|Lead 54148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054149|154149|989898|1|9999054149|MR|Test|E|Lead 54149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054150|154150|989898|1|9999054150|MR|Test|E|Lead 54150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054151|154151|989898|1|9999054151|MR|Test|E|Lead 54151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054152|154152|989898|1|9999054152|MR|Test|E|Lead 54152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054153|154153|989898|1|9999054153|MR|Test|E|Lead 54153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054154|154154|989898|1|9999054154|MR|Test|E|Lead 54154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054155|154155|989898|1|9999054155|MR|Test|E|Lead 54155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054156|154156|989898|1|9999054156|MR|Test|E|Lead 54156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054157|154157|989898|1|9999054157|MR|Test|E|Lead 54157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054158|154158|989898|1|9999054158|MR|Test|E|Lead 54158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054159|154159|989898|1|9999054159|MR|Test|E|Lead 54159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054160|154160|989898|1|9999054160|MR|Test|E|Lead 54160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054161|154161|989898|1|9999054161|MR|Test|E|Lead 54161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054162|154162|989898|1|9999054162|MR|Test|E|Lead 54162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054163|154163|989898|1|9999054163|MR|Test|E|Lead 54163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054164|154164|989898|1|9999054164|MR|Test|E|Lead 54164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054165|154165|989898|1|9999054165|MR|Test|E|Lead 54165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054166|154166|989898|1|9999054166|MR|Test|E|Lead 54166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054167|154167|989898|1|9999054167|MR|Test|E|Lead 54167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054168|154168|989898|1|9999054168|MR|Test|E|Lead 54168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054169|154169|989898|1|9999054169|MR|Test|E|Lead 54169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054170|154170|989898|1|9999054170|MR|Test|E|Lead 54170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054171|154171|989898|1|9999054171|MR|Test|E|Lead 54171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054172|154172|989898|1|9999054172|MR|Test|E|Lead 54172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054173|154173|989898|1|9999054173|MR|Test|E|Lead 54173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054174|154174|989898|1|9999054174|MR|Test|E|Lead 54174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054175|154175|989898|1|9999054175|MR|Test|E|Lead 54175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054176|154176|989898|1|9999054176|MR|Test|E|Lead 54176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054177|154177|989898|1|9999054177|MR|Test|E|Lead 54177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054178|154178|989898|1|9999054178|MR|Test|E|Lead 54178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054179|154179|989898|1|9999054179|MR|Test|E|Lead 54179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054180|154180|989898|1|9999054180|MR|Test|E|Lead 54180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054181|154181|989898|1|9999054181|MR|Test|E|Lead 54181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054182|154182|989898|1|9999054182|MR|Test|E|Lead 54182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054183|154183|989898|1|9999054183|MR|Test|E|Lead 54183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054184|154184|989898|1|9999054184|MR|Test|E|Lead 54184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054185|154185|989898|1|9999054185|MR|Test|E|Lead 54185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054186|154186|989898|1|9999054186|MR|Test|E|Lead 54186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054187|154187|989898|1|9999054187|MR|Test|E|Lead 54187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054188|154188|989898|1|9999054188|MR|Test|E|Lead 54188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054189|154189|989898|1|9999054189|MR|Test|E|Lead 54189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054190|154190|989898|1|9999054190|MR|Test|E|Lead 54190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054191|154191|989898|1|9999054191|MR|Test|E|Lead 54191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054192|154192|989898|1|9999054192|MR|Test|E|Lead 54192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054193|154193|989898|1|9999054193|MR|Test|E|Lead 54193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054194|154194|989898|1|9999054194|MR|Test|E|Lead 54194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054195|154195|989898|1|9999054195|MR|Test|E|Lead 54195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054196|154196|989898|1|9999054196|MR|Test|E|Lead 54196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054197|154197|989898|1|9999054197|MR|Test|E|Lead 54197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054198|154198|989898|1|9999054198|MR|Test|E|Lead 54198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054199|154199|989898|1|9999054199|MR|Test|E|Lead 54199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054200|154200|989898|1|9999054200|MR|Test|E|Lead 54200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054201|154201|989898|1|9999054201|MR|Test|E|Lead 54201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054202|154202|989898|1|9999054202|MR|Test|E|Lead 54202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054203|154203|989898|1|9999054203|MR|Test|E|Lead 54203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054204|154204|989898|1|9999054204|MR|Test|E|Lead 54204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054205|154205|989898|1|9999054205|MR|Test|E|Lead 54205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054206|154206|989898|1|9999054206|MR|Test|E|Lead 54206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054207|154207|989898|1|9999054207|MR|Test|E|Lead 54207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054208|154208|989898|1|9999054208|MR|Test|E|Lead 54208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054209|154209|989898|1|9999054209|MR|Test|E|Lead 54209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054210|154210|989898|1|9999054210|MR|Test|E|Lead 54210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054211|154211|989898|1|9999054211|MR|Test|E|Lead 54211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054212|154212|989898|1|9999054212|MR|Test|E|Lead 54212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054213|154213|989898|1|9999054213|MR|Test|E|Lead 54213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054214|154214|989898|1|9999054214|MR|Test|E|Lead 54214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054215|154215|989898|1|9999054215|MR|Test|E|Lead 54215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054216|154216|989898|1|9999054216|MR|Test|E|Lead 54216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054217|154217|989898|1|9999054217|MR|Test|E|Lead 54217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054218|154218|989898|1|9999054218|MR|Test|E|Lead 54218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054219|154219|989898|1|9999054219|MR|Test|E|Lead 54219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054220|154220|989898|1|9999054220|MR|Test|E|Lead 54220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054221|154221|989898|1|9999054221|MR|Test|E|Lead 54221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054222|154222|989898|1|9999054222|MR|Test|E|Lead 54222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054223|154223|989898|1|9999054223|MR|Test|E|Lead 54223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054224|154224|989898|1|9999054224|MR|Test|E|Lead 54224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054225|154225|989898|1|9999054225|MR|Test|E|Lead 54225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054226|154226|989898|1|9999054226|MR|Test|E|Lead 54226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054227|154227|989898|1|9999054227|MR|Test|E|Lead 54227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054228|154228|989898|1|9999054228|MR|Test|E|Lead 54228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054229|154229|989898|1|9999054229|MR|Test|E|Lead 54229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054230|154230|989898|1|9999054230|MR|Test|E|Lead 54230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054231|154231|989898|1|9999054231|MR|Test|E|Lead 54231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054232|154232|989898|1|9999054232|MR|Test|E|Lead 54232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054233|154233|989898|1|9999054233|MR|Test|E|Lead 54233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054234|154234|989898|1|9999054234|MR|Test|E|Lead 54234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054235|154235|989898|1|9999054235|MR|Test|E|Lead 54235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054236|154236|989898|1|9999054236|MR|Test|E|Lead 54236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054237|154237|989898|1|9999054237|MR|Test|E|Lead 54237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054238|154238|989898|1|9999054238|MR|Test|E|Lead 54238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054239|154239|989898|1|9999054239|MR|Test|E|Lead 54239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054240|154240|989898|1|9999054240|MR|Test|E|Lead 54240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054241|154241|989898|1|9999054241|MR|Test|E|Lead 54241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054242|154242|989898|1|9999054242|MR|Test|E|Lead 54242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054243|154243|989898|1|9999054243|MR|Test|E|Lead 54243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054244|154244|989898|1|9999054244|MR|Test|E|Lead 54244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054245|154245|989898|1|9999054245|MR|Test|E|Lead 54245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054246|154246|989898|1|9999054246|MR|Test|E|Lead 54246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054247|154247|989898|1|9999054247|MR|Test|E|Lead 54247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054248|154248|989898|1|9999054248|MR|Test|E|Lead 54248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054249|154249|989898|1|9999054249|MR|Test|E|Lead 54249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054250|154250|989898|1|9999054250|MR|Test|E|Lead 54250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054251|154251|989898|1|9999054251|MR|Test|E|Lead 54251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054252|154252|989898|1|9999054252|MR|Test|E|Lead 54252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054253|154253|989898|1|9999054253|MR|Test|E|Lead 54253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054254|154254|989898|1|9999054254|MR|Test|E|Lead 54254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054255|154255|989898|1|9999054255|MR|Test|E|Lead 54255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054256|154256|989898|1|9999054256|MR|Test|E|Lead 54256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054257|154257|989898|1|9999054257|MR|Test|E|Lead 54257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054258|154258|989898|1|9999054258|MR|Test|E|Lead 54258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054259|154259|989898|1|9999054259|MR|Test|E|Lead 54259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054260|154260|989898|1|9999054260|MR|Test|E|Lead 54260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054261|154261|989898|1|9999054261|MR|Test|E|Lead 54261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054262|154262|989898|1|9999054262|MR|Test|E|Lead 54262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054263|154263|989898|1|9999054263|MR|Test|E|Lead 54263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054264|154264|989898|1|9999054264|MR|Test|E|Lead 54264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054265|154265|989898|1|9999054265|MR|Test|E|Lead 54265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054266|154266|989898|1|9999054266|MR|Test|E|Lead 54266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054267|154267|989898|1|9999054267|MR|Test|E|Lead 54267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054268|154268|989898|1|9999054268|MR|Test|E|Lead 54268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054269|154269|989898|1|9999054269|MR|Test|E|Lead 54269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054270|154270|989898|1|9999054270|MR|Test|E|Lead 54270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054271|154271|989898|1|9999054271|MR|Test|E|Lead 54271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054272|154272|989898|1|9999054272|MR|Test|E|Lead 54272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054273|154273|989898|1|9999054273|MR|Test|E|Lead 54273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054274|154274|989898|1|9999054274|MR|Test|E|Lead 54274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054275|154275|989898|1|9999054275|MR|Test|E|Lead 54275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054276|154276|989898|1|9999054276|MR|Test|E|Lead 54276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054277|154277|989898|1|9999054277|MR|Test|E|Lead 54277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054278|154278|989898|1|9999054278|MR|Test|E|Lead 54278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054279|154279|989898|1|9999054279|MR|Test|E|Lead 54279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054280|154280|989898|1|9999054280|MR|Test|E|Lead 54280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054281|154281|989898|1|9999054281|MR|Test|E|Lead 54281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054282|154282|989898|1|9999054282|MR|Test|E|Lead 54282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054283|154283|989898|1|9999054283|MR|Test|E|Lead 54283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054284|154284|989898|1|9999054284|MR|Test|E|Lead 54284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054285|154285|989898|1|9999054285|MR|Test|E|Lead 54285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054286|154286|989898|1|9999054286|MR|Test|E|Lead 54286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054287|154287|989898|1|9999054287|MR|Test|E|Lead 54287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054288|154288|989898|1|9999054288|MR|Test|E|Lead 54288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054289|154289|989898|1|9999054289|MR|Test|E|Lead 54289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054290|154290|989898|1|9999054290|MR|Test|E|Lead 54290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054291|154291|989898|1|9999054291|MR|Test|E|Lead 54291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054292|154292|989898|1|9999054292|MR|Test|E|Lead 54292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054293|154293|989898|1|9999054293|MR|Test|E|Lead 54293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054294|154294|989898|1|9999054294|MR|Test|E|Lead 54294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054295|154295|989898|1|9999054295|MR|Test|E|Lead 54295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054296|154296|989898|1|9999054296|MR|Test|E|Lead 54296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054297|154297|989898|1|9999054297|MR|Test|E|Lead 54297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054298|154298|989898|1|9999054298|MR|Test|E|Lead 54298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054299|154299|989898|1|9999054299|MR|Test|E|Lead 54299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054300|154300|989898|1|9999054300|MR|Test|E|Lead 54300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054301|154301|989898|1|9999054301|MR|Test|E|Lead 54301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054302|154302|989898|1|9999054302|MR|Test|E|Lead 54302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054303|154303|989898|1|9999054303|MR|Test|E|Lead 54303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054304|154304|989898|1|9999054304|MR|Test|E|Lead 54304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054305|154305|989898|1|9999054305|MR|Test|E|Lead 54305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054306|154306|989898|1|9999054306|MR|Test|E|Lead 54306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054307|154307|989898|1|9999054307|MR|Test|E|Lead 54307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054308|154308|989898|1|9999054308|MR|Test|E|Lead 54308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054309|154309|989898|1|9999054309|MR|Test|E|Lead 54309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054310|154310|989898|1|9999054310|MR|Test|E|Lead 54310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054311|154311|989898|1|9999054311|MR|Test|E|Lead 54311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054312|154312|989898|1|9999054312|MR|Test|E|Lead 54312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054313|154313|989898|1|9999054313|MR|Test|E|Lead 54313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054314|154314|989898|1|9999054314|MR|Test|E|Lead 54314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054315|154315|989898|1|9999054315|MR|Test|E|Lead 54315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054316|154316|989898|1|9999054316|MR|Test|E|Lead 54316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054317|154317|989898|1|9999054317|MR|Test|E|Lead 54317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054318|154318|989898|1|9999054318|MR|Test|E|Lead 54318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054319|154319|989898|1|9999054319|MR|Test|E|Lead 54319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054320|154320|989898|1|9999054320|MR|Test|E|Lead 54320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054321|154321|989898|1|9999054321|MR|Test|E|Lead 54321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054322|154322|989898|1|9999054322|MR|Test|E|Lead 54322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054323|154323|989898|1|9999054323|MR|Test|E|Lead 54323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054324|154324|989898|1|9999054324|MR|Test|E|Lead 54324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054325|154325|989898|1|9999054325|MR|Test|E|Lead 54325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054326|154326|989898|1|9999054326|MR|Test|E|Lead 54326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054327|154327|989898|1|9999054327|MR|Test|E|Lead 54327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054328|154328|989898|1|9999054328|MR|Test|E|Lead 54328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054329|154329|989898|1|9999054329|MR|Test|E|Lead 54329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054330|154330|989898|1|9999054330|MR|Test|E|Lead 54330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054331|154331|989898|1|9999054331|MR|Test|E|Lead 54331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054332|154332|989898|1|9999054332|MR|Test|E|Lead 54332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054333|154333|989898|1|9999054333|MR|Test|E|Lead 54333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054334|154334|989898|1|9999054334|MR|Test|E|Lead 54334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054335|154335|989898|1|9999054335|MR|Test|E|Lead 54335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054336|154336|989898|1|9999054336|MR|Test|E|Lead 54336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054337|154337|989898|1|9999054337|MR|Test|E|Lead 54337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054338|154338|989898|1|9999054338|MR|Test|E|Lead 54338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054339|154339|989898|1|9999054339|MR|Test|E|Lead 54339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054340|154340|989898|1|9999054340|MR|Test|E|Lead 54340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054341|154341|989898|1|9999054341|MR|Test|E|Lead 54341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054342|154342|989898|1|9999054342|MR|Test|E|Lead 54342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054343|154343|989898|1|9999054343|MR|Test|E|Lead 54343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054344|154344|989898|1|9999054344|MR|Test|E|Lead 54344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054345|154345|989898|1|9999054345|MR|Test|E|Lead 54345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054346|154346|989898|1|9999054346|MR|Test|E|Lead 54346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054347|154347|989898|1|9999054347|MR|Test|E|Lead 54347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054348|154348|989898|1|9999054348|MR|Test|E|Lead 54348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054349|154349|989898|1|9999054349|MR|Test|E|Lead 54349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054350|154350|989898|1|9999054350|MR|Test|E|Lead 54350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054351|154351|989898|1|9999054351|MR|Test|E|Lead 54351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054352|154352|989898|1|9999054352|MR|Test|E|Lead 54352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054353|154353|989898|1|9999054353|MR|Test|E|Lead 54353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054354|154354|989898|1|9999054354|MR|Test|E|Lead 54354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054355|154355|989898|1|9999054355|MR|Test|E|Lead 54355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054356|154356|989898|1|9999054356|MR|Test|E|Lead 54356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054357|154357|989898|1|9999054357|MR|Test|E|Lead 54357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054358|154358|989898|1|9999054358|MR|Test|E|Lead 54358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054359|154359|989898|1|9999054359|MR|Test|E|Lead 54359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054360|154360|989898|1|9999054360|MR|Test|E|Lead 54360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054361|154361|989898|1|9999054361|MR|Test|E|Lead 54361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054362|154362|989898|1|9999054362|MR|Test|E|Lead 54362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054363|154363|989898|1|9999054363|MR|Test|E|Lead 54363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054364|154364|989898|1|9999054364|MR|Test|E|Lead 54364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054365|154365|989898|1|9999054365|MR|Test|E|Lead 54365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054366|154366|989898|1|9999054366|MR|Test|E|Lead 54366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054367|154367|989898|1|9999054367|MR|Test|E|Lead 54367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054368|154368|989898|1|9999054368|MR|Test|E|Lead 54368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054369|154369|989898|1|9999054369|MR|Test|E|Lead 54369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054370|154370|989898|1|9999054370|MR|Test|E|Lead 54370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054371|154371|989898|1|9999054371|MR|Test|E|Lead 54371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054372|154372|989898|1|9999054372|MR|Test|E|Lead 54372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054373|154373|989898|1|9999054373|MR|Test|E|Lead 54373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054374|154374|989898|1|9999054374|MR|Test|E|Lead 54374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054375|154375|989898|1|9999054375|MR|Test|E|Lead 54375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054376|154376|989898|1|9999054376|MR|Test|E|Lead 54376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054377|154377|989898|1|9999054377|MR|Test|E|Lead 54377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054378|154378|989898|1|9999054378|MR|Test|E|Lead 54378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054379|154379|989898|1|9999054379|MR|Test|E|Lead 54379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054380|154380|989898|1|9999054380|MR|Test|E|Lead 54380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054381|154381|989898|1|9999054381|MR|Test|E|Lead 54381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054382|154382|989898|1|9999054382|MR|Test|E|Lead 54382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054383|154383|989898|1|9999054383|MR|Test|E|Lead 54383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054384|154384|989898|1|9999054384|MR|Test|E|Lead 54384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054385|154385|989898|1|9999054385|MR|Test|E|Lead 54385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054386|154386|989898|1|9999054386|MR|Test|E|Lead 54386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054387|154387|989898|1|9999054387|MR|Test|E|Lead 54387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054388|154388|989898|1|9999054388|MR|Test|E|Lead 54388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054389|154389|989898|1|9999054389|MR|Test|E|Lead 54389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054390|154390|989898|1|9999054390|MR|Test|E|Lead 54390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054391|154391|989898|1|9999054391|MR|Test|E|Lead 54391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054392|154392|989898|1|9999054392|MR|Test|E|Lead 54392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054393|154393|989898|1|9999054393|MR|Test|E|Lead 54393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054394|154394|989898|1|9999054394|MR|Test|E|Lead 54394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054395|154395|989898|1|9999054395|MR|Test|E|Lead 54395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054396|154396|989898|1|9999054396|MR|Test|E|Lead 54396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054397|154397|989898|1|9999054397|MR|Test|E|Lead 54397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054398|154398|989898|1|9999054398|MR|Test|E|Lead 54398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054399|154399|989898|1|9999054399|MR|Test|E|Lead 54399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054400|154400|989898|1|9999054400|MR|Test|E|Lead 54400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054401|154401|989898|1|9999054401|MR|Test|E|Lead 54401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054402|154402|989898|1|9999054402|MR|Test|E|Lead 54402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054403|154403|989898|1|9999054403|MR|Test|E|Lead 54403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054404|154404|989898|1|9999054404|MR|Test|E|Lead 54404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054405|154405|989898|1|9999054405|MR|Test|E|Lead 54405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054406|154406|989898|1|9999054406|MR|Test|E|Lead 54406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054407|154407|989898|1|9999054407|MR|Test|E|Lead 54407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054408|154408|989898|1|9999054408|MR|Test|E|Lead 54408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054409|154409|989898|1|9999054409|MR|Test|E|Lead 54409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054410|154410|989898|1|9999054410|MR|Test|E|Lead 54410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054411|154411|989898|1|9999054411|MR|Test|E|Lead 54411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054412|154412|989898|1|9999054412|MR|Test|E|Lead 54412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054413|154413|989898|1|9999054413|MR|Test|E|Lead 54413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054414|154414|989898|1|9999054414|MR|Test|E|Lead 54414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054415|154415|989898|1|9999054415|MR|Test|E|Lead 54415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054416|154416|989898|1|9999054416|MR|Test|E|Lead 54416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054417|154417|989898|1|9999054417|MR|Test|E|Lead 54417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054418|154418|989898|1|9999054418|MR|Test|E|Lead 54418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054419|154419|989898|1|9999054419|MR|Test|E|Lead 54419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054420|154420|989898|1|9999054420|MR|Test|E|Lead 54420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054421|154421|989898|1|9999054421|MR|Test|E|Lead 54421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054422|154422|989898|1|9999054422|MR|Test|E|Lead 54422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054423|154423|989898|1|9999054423|MR|Test|E|Lead 54423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054424|154424|989898|1|9999054424|MR|Test|E|Lead 54424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054425|154425|989898|1|9999054425|MR|Test|E|Lead 54425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054426|154426|989898|1|9999054426|MR|Test|E|Lead 54426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054427|154427|989898|1|9999054427|MR|Test|E|Lead 54427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054428|154428|989898|1|9999054428|MR|Test|E|Lead 54428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054429|154429|989898|1|9999054429|MR|Test|E|Lead 54429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054430|154430|989898|1|9999054430|MR|Test|E|Lead 54430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054431|154431|989898|1|9999054431|MR|Test|E|Lead 54431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054432|154432|989898|1|9999054432|MR|Test|E|Lead 54432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054433|154433|989898|1|9999054433|MR|Test|E|Lead 54433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054434|154434|989898|1|9999054434|MR|Test|E|Lead 54434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054435|154435|989898|1|9999054435|MR|Test|E|Lead 54435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054436|154436|989898|1|9999054436|MR|Test|E|Lead 54436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054437|154437|989898|1|9999054437|MR|Test|E|Lead 54437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054438|154438|989898|1|9999054438|MR|Test|E|Lead 54438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054439|154439|989898|1|9999054439|MR|Test|E|Lead 54439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054440|154440|989898|1|9999054440|MR|Test|E|Lead 54440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054441|154441|989898|1|9999054441|MR|Test|E|Lead 54441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054442|154442|989898|1|9999054442|MR|Test|E|Lead 54442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054443|154443|989898|1|9999054443|MR|Test|E|Lead 54443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054444|154444|989898|1|9999054444|MR|Test|E|Lead 54444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054445|154445|989898|1|9999054445|MR|Test|E|Lead 54445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054446|154446|989898|1|9999054446|MR|Test|E|Lead 54446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054447|154447|989898|1|9999054447|MR|Test|E|Lead 54447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054448|154448|989898|1|9999054448|MR|Test|E|Lead 54448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054449|154449|989898|1|9999054449|MR|Test|E|Lead 54449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054450|154450|989898|1|9999054450|MR|Test|E|Lead 54450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054451|154451|989898|1|9999054451|MR|Test|E|Lead 54451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054452|154452|989898|1|9999054452|MR|Test|E|Lead 54452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054453|154453|989898|1|9999054453|MR|Test|E|Lead 54453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054454|154454|989898|1|9999054454|MR|Test|E|Lead 54454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054455|154455|989898|1|9999054455|MR|Test|E|Lead 54455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054456|154456|989898|1|9999054456|MR|Test|E|Lead 54456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054457|154457|989898|1|9999054457|MR|Test|E|Lead 54457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054458|154458|989898|1|9999054458|MR|Test|E|Lead 54458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054459|154459|989898|1|9999054459|MR|Test|E|Lead 54459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054460|154460|989898|1|9999054460|MR|Test|E|Lead 54460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054461|154461|989898|1|9999054461|MR|Test|E|Lead 54461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054462|154462|989898|1|9999054462|MR|Test|E|Lead 54462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054463|154463|989898|1|9999054463|MR|Test|E|Lead 54463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054464|154464|989898|1|9999054464|MR|Test|E|Lead 54464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054465|154465|989898|1|9999054465|MR|Test|E|Lead 54465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054466|154466|989898|1|9999054466|MR|Test|E|Lead 54466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054467|154467|989898|1|9999054467|MR|Test|E|Lead 54467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054468|154468|989898|1|9999054468|MR|Test|E|Lead 54468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054469|154469|989898|1|9999054469|MR|Test|E|Lead 54469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054470|154470|989898|1|9999054470|MR|Test|E|Lead 54470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054471|154471|989898|1|9999054471|MR|Test|E|Lead 54471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054472|154472|989898|1|9999054472|MR|Test|E|Lead 54472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054473|154473|989898|1|9999054473|MR|Test|E|Lead 54473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054474|154474|989898|1|9999054474|MR|Test|E|Lead 54474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054475|154475|989898|1|9999054475|MR|Test|E|Lead 54475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054476|154476|989898|1|9999054476|MR|Test|E|Lead 54476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054477|154477|989898|1|9999054477|MR|Test|E|Lead 54477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054478|154478|989898|1|9999054478|MR|Test|E|Lead 54478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054479|154479|989898|1|9999054479|MR|Test|E|Lead 54479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054480|154480|989898|1|9999054480|MR|Test|E|Lead 54480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054481|154481|989898|1|9999054481|MR|Test|E|Lead 54481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054482|154482|989898|1|9999054482|MR|Test|E|Lead 54482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054483|154483|989898|1|9999054483|MR|Test|E|Lead 54483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054484|154484|989898|1|9999054484|MR|Test|E|Lead 54484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054485|154485|989898|1|9999054485|MR|Test|E|Lead 54485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054486|154486|989898|1|9999054486|MR|Test|E|Lead 54486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054487|154487|989898|1|9999054487|MR|Test|E|Lead 54487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054488|154488|989898|1|9999054488|MR|Test|E|Lead 54488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054489|154489|989898|1|9999054489|MR|Test|E|Lead 54489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054490|154490|989898|1|9999054490|MR|Test|E|Lead 54490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054491|154491|989898|1|9999054491|MR|Test|E|Lead 54491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054492|154492|989898|1|9999054492|MR|Test|E|Lead 54492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054493|154493|989898|1|9999054493|MR|Test|E|Lead 54493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054494|154494|989898|1|9999054494|MR|Test|E|Lead 54494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054495|154495|989898|1|9999054495|MR|Test|E|Lead 54495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054496|154496|989898|1|9999054496|MR|Test|E|Lead 54496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054497|154497|989898|1|9999054497|MR|Test|E|Lead 54497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054498|154498|989898|1|9999054498|MR|Test|E|Lead 54498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054499|154499|989898|1|9999054499|MR|Test|E|Lead 54499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054500|154500|989898|1|9999054500|MR|Test|E|Lead 54500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054501|154501|989898|1|9999054501|MR|Test|E|Lead 54501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054502|154502|989898|1|9999054502|MR|Test|E|Lead 54502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054503|154503|989898|1|9999054503|MR|Test|E|Lead 54503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054504|154504|989898|1|9999054504|MR|Test|E|Lead 54504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054505|154505|989898|1|9999054505|MR|Test|E|Lead 54505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054506|154506|989898|1|9999054506|MR|Test|E|Lead 54506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054507|154507|989898|1|9999054507|MR|Test|E|Lead 54507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054508|154508|989898|1|9999054508|MR|Test|E|Lead 54508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054509|154509|989898|1|9999054509|MR|Test|E|Lead 54509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054510|154510|989898|1|9999054510|MR|Test|E|Lead 54510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054511|154511|989898|1|9999054511|MR|Test|E|Lead 54511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054512|154512|989898|1|9999054512|MR|Test|E|Lead 54512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054513|154513|989898|1|9999054513|MR|Test|E|Lead 54513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054514|154514|989898|1|9999054514|MR|Test|E|Lead 54514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054515|154515|989898|1|9999054515|MR|Test|E|Lead 54515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054516|154516|989898|1|9999054516|MR|Test|E|Lead 54516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054517|154517|989898|1|9999054517|MR|Test|E|Lead 54517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054518|154518|989898|1|9999054518|MR|Test|E|Lead 54518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054519|154519|989898|1|9999054519|MR|Test|E|Lead 54519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054520|154520|989898|1|9999054520|MR|Test|E|Lead 54520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054521|154521|989898|1|9999054521|MR|Test|E|Lead 54521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054522|154522|989898|1|9999054522|MR|Test|E|Lead 54522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054523|154523|989898|1|9999054523|MR|Test|E|Lead 54523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054524|154524|989898|1|9999054524|MR|Test|E|Lead 54524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054525|154525|989898|1|9999054525|MR|Test|E|Lead 54525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054526|154526|989898|1|9999054526|MR|Test|E|Lead 54526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054527|154527|989898|1|9999054527|MR|Test|E|Lead 54527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054528|154528|989898|1|9999054528|MR|Test|E|Lead 54528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054529|154529|989898|1|9999054529|MR|Test|E|Lead 54529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054530|154530|989898|1|9999054530|MR|Test|E|Lead 54530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054531|154531|989898|1|9999054531|MR|Test|E|Lead 54531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054532|154532|989898|1|9999054532|MR|Test|E|Lead 54532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054533|154533|989898|1|9999054533|MR|Test|E|Lead 54533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054534|154534|989898|1|9999054534|MR|Test|E|Lead 54534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054535|154535|989898|1|9999054535|MR|Test|E|Lead 54535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054536|154536|989898|1|9999054536|MR|Test|E|Lead 54536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054537|154537|989898|1|9999054537|MR|Test|E|Lead 54537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054538|154538|989898|1|9999054538|MR|Test|E|Lead 54538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054539|154539|989898|1|9999054539|MR|Test|E|Lead 54539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054540|154540|989898|1|9999054540|MR|Test|E|Lead 54540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054541|154541|989898|1|9999054541|MR|Test|E|Lead 54541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054542|154542|989898|1|9999054542|MR|Test|E|Lead 54542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054543|154543|989898|1|9999054543|MR|Test|E|Lead 54543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054544|154544|989898|1|9999054544|MR|Test|E|Lead 54544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054545|154545|989898|1|9999054545|MR|Test|E|Lead 54545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054546|154546|989898|1|9999054546|MR|Test|E|Lead 54546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054547|154547|989898|1|9999054547|MR|Test|E|Lead 54547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054548|154548|989898|1|9999054548|MR|Test|E|Lead 54548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054549|154549|989898|1|9999054549|MR|Test|E|Lead 54549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054550|154550|989898|1|9999054550|MR|Test|E|Lead 54550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054551|154551|989898|1|9999054551|MR|Test|E|Lead 54551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054552|154552|989898|1|9999054552|MR|Test|E|Lead 54552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054553|154553|989898|1|9999054553|MR|Test|E|Lead 54553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054554|154554|989898|1|9999054554|MR|Test|E|Lead 54554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054555|154555|989898|1|9999054555|MR|Test|E|Lead 54555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054556|154556|989898|1|9999054556|MR|Test|E|Lead 54556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054557|154557|989898|1|9999054557|MR|Test|E|Lead 54557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054558|154558|989898|1|9999054558|MR|Test|E|Lead 54558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054559|154559|989898|1|9999054559|MR|Test|E|Lead 54559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054560|154560|989898|1|9999054560|MR|Test|E|Lead 54560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054561|154561|989898|1|9999054561|MR|Test|E|Lead 54561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054562|154562|989898|1|9999054562|MR|Test|E|Lead 54562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054563|154563|989898|1|9999054563|MR|Test|E|Lead 54563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054564|154564|989898|1|9999054564|MR|Test|E|Lead 54564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054565|154565|989898|1|9999054565|MR|Test|E|Lead 54565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054566|154566|989898|1|9999054566|MR|Test|E|Lead 54566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054567|154567|989898|1|9999054567|MR|Test|E|Lead 54567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054568|154568|989898|1|9999054568|MR|Test|E|Lead 54568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054569|154569|989898|1|9999054569|MR|Test|E|Lead 54569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054570|154570|989898|1|9999054570|MR|Test|E|Lead 54570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054571|154571|989898|1|9999054571|MR|Test|E|Lead 54571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054572|154572|989898|1|9999054572|MR|Test|E|Lead 54572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054573|154573|989898|1|9999054573|MR|Test|E|Lead 54573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054574|154574|989898|1|9999054574|MR|Test|E|Lead 54574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054575|154575|989898|1|9999054575|MR|Test|E|Lead 54575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054576|154576|989898|1|9999054576|MR|Test|E|Lead 54576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054577|154577|989898|1|9999054577|MR|Test|E|Lead 54577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054578|154578|989898|1|9999054578|MR|Test|E|Lead 54578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054579|154579|989898|1|9999054579|MR|Test|E|Lead 54579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054580|154580|989898|1|9999054580|MR|Test|E|Lead 54580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054581|154581|989898|1|9999054581|MR|Test|E|Lead 54581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054582|154582|989898|1|9999054582|MR|Test|E|Lead 54582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054583|154583|989898|1|9999054583|MR|Test|E|Lead 54583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054584|154584|989898|1|9999054584|MR|Test|E|Lead 54584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054585|154585|989898|1|9999054585|MR|Test|E|Lead 54585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054586|154586|989898|1|9999054586|MR|Test|E|Lead 54586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054587|154587|989898|1|9999054587|MR|Test|E|Lead 54587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054588|154588|989898|1|9999054588|MR|Test|E|Lead 54588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054589|154589|989898|1|9999054589|MR|Test|E|Lead 54589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054590|154590|989898|1|9999054590|MR|Test|E|Lead 54590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054591|154591|989898|1|9999054591|MR|Test|E|Lead 54591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054592|154592|989898|1|9999054592|MR|Test|E|Lead 54592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054593|154593|989898|1|9999054593|MR|Test|E|Lead 54593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054594|154594|989898|1|9999054594|MR|Test|E|Lead 54594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054595|154595|989898|1|9999054595|MR|Test|E|Lead 54595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054596|154596|989898|1|9999054596|MR|Test|E|Lead 54596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054597|154597|989898|1|9999054597|MR|Test|E|Lead 54597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054598|154598|989898|1|9999054598|MR|Test|E|Lead 54598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054599|154599|989898|1|9999054599|MR|Test|E|Lead 54599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054600|154600|989898|1|9999054600|MR|Test|E|Lead 54600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054601|154601|989898|1|9999054601|MR|Test|E|Lead 54601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054602|154602|989898|1|9999054602|MR|Test|E|Lead 54602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054603|154603|989898|1|9999054603|MR|Test|E|Lead 54603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054604|154604|989898|1|9999054604|MR|Test|E|Lead 54604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054605|154605|989898|1|9999054605|MR|Test|E|Lead 54605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054606|154606|989898|1|9999054606|MR|Test|E|Lead 54606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054607|154607|989898|1|9999054607|MR|Test|E|Lead 54607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054608|154608|989898|1|9999054608|MR|Test|E|Lead 54608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054609|154609|989898|1|9999054609|MR|Test|E|Lead 54609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054610|154610|989898|1|9999054610|MR|Test|E|Lead 54610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054611|154611|989898|1|9999054611|MR|Test|E|Lead 54611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054612|154612|989898|1|9999054612|MR|Test|E|Lead 54612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054613|154613|989898|1|9999054613|MR|Test|E|Lead 54613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054614|154614|989898|1|9999054614|MR|Test|E|Lead 54614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054615|154615|989898|1|9999054615|MR|Test|E|Lead 54615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054616|154616|989898|1|9999054616|MR|Test|E|Lead 54616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054617|154617|989898|1|9999054617|MR|Test|E|Lead 54617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054618|154618|989898|1|9999054618|MR|Test|E|Lead 54618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054619|154619|989898|1|9999054619|MR|Test|E|Lead 54619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054620|154620|989898|1|9999054620|MR|Test|E|Lead 54620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054621|154621|989898|1|9999054621|MR|Test|E|Lead 54621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054622|154622|989898|1|9999054622|MR|Test|E|Lead 54622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054623|154623|989898|1|9999054623|MR|Test|E|Lead 54623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054624|154624|989898|1|9999054624|MR|Test|E|Lead 54624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054625|154625|989898|1|9999054625|MR|Test|E|Lead 54625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054626|154626|989898|1|9999054626|MR|Test|E|Lead 54626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054627|154627|989898|1|9999054627|MR|Test|E|Lead 54627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054628|154628|989898|1|9999054628|MR|Test|E|Lead 54628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054629|154629|989898|1|9999054629|MR|Test|E|Lead 54629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054630|154630|989898|1|9999054630|MR|Test|E|Lead 54630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054631|154631|989898|1|9999054631|MR|Test|E|Lead 54631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054632|154632|989898|1|9999054632|MR|Test|E|Lead 54632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054633|154633|989898|1|9999054633|MR|Test|E|Lead 54633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054634|154634|989898|1|9999054634|MR|Test|E|Lead 54634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054635|154635|989898|1|9999054635|MR|Test|E|Lead 54635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054636|154636|989898|1|9999054636|MR|Test|E|Lead 54636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054637|154637|989898|1|9999054637|MR|Test|E|Lead 54637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054638|154638|989898|1|9999054638|MR|Test|E|Lead 54638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054639|154639|989898|1|9999054639|MR|Test|E|Lead 54639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054640|154640|989898|1|9999054640|MR|Test|E|Lead 54640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054641|154641|989898|1|9999054641|MR|Test|E|Lead 54641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054642|154642|989898|1|9999054642|MR|Test|E|Lead 54642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054643|154643|989898|1|9999054643|MR|Test|E|Lead 54643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054644|154644|989898|1|9999054644|MR|Test|E|Lead 54644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054645|154645|989898|1|9999054645|MR|Test|E|Lead 54645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054646|154646|989898|1|9999054646|MR|Test|E|Lead 54646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054647|154647|989898|1|9999054647|MR|Test|E|Lead 54647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054648|154648|989898|1|9999054648|MR|Test|E|Lead 54648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054649|154649|989898|1|9999054649|MR|Test|E|Lead 54649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054650|154650|989898|1|9999054650|MR|Test|E|Lead 54650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054651|154651|989898|1|9999054651|MR|Test|E|Lead 54651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054652|154652|989898|1|9999054652|MR|Test|E|Lead 54652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054653|154653|989898|1|9999054653|MR|Test|E|Lead 54653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054654|154654|989898|1|9999054654|MR|Test|E|Lead 54654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054655|154655|989898|1|9999054655|MR|Test|E|Lead 54655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054656|154656|989898|1|9999054656|MR|Test|E|Lead 54656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054657|154657|989898|1|9999054657|MR|Test|E|Lead 54657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054658|154658|989898|1|9999054658|MR|Test|E|Lead 54658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054659|154659|989898|1|9999054659|MR|Test|E|Lead 54659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054660|154660|989898|1|9999054660|MR|Test|E|Lead 54660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054661|154661|989898|1|9999054661|MR|Test|E|Lead 54661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054662|154662|989898|1|9999054662|MR|Test|E|Lead 54662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054663|154663|989898|1|9999054663|MR|Test|E|Lead 54663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054664|154664|989898|1|9999054664|MR|Test|E|Lead 54664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054665|154665|989898|1|9999054665|MR|Test|E|Lead 54665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054666|154666|989898|1|9999054666|MR|Test|E|Lead 54666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054667|154667|989898|1|9999054667|MR|Test|E|Lead 54667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054668|154668|989898|1|9999054668|MR|Test|E|Lead 54668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054669|154669|989898|1|9999054669|MR|Test|E|Lead 54669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054670|154670|989898|1|9999054670|MR|Test|E|Lead 54670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054671|154671|989898|1|9999054671|MR|Test|E|Lead 54671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054672|154672|989898|1|9999054672|MR|Test|E|Lead 54672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054673|154673|989898|1|9999054673|MR|Test|E|Lead 54673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054674|154674|989898|1|9999054674|MR|Test|E|Lead 54674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054675|154675|989898|1|9999054675|MR|Test|E|Lead 54675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054676|154676|989898|1|9999054676|MR|Test|E|Lead 54676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054677|154677|989898|1|9999054677|MR|Test|E|Lead 54677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054678|154678|989898|1|9999054678|MR|Test|E|Lead 54678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054679|154679|989898|1|9999054679|MR|Test|E|Lead 54679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054680|154680|989898|1|9999054680|MR|Test|E|Lead 54680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054681|154681|989898|1|9999054681|MR|Test|E|Lead 54681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054682|154682|989898|1|9999054682|MR|Test|E|Lead 54682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054683|154683|989898|1|9999054683|MR|Test|E|Lead 54683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054684|154684|989898|1|9999054684|MR|Test|E|Lead 54684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054685|154685|989898|1|9999054685|MR|Test|E|Lead 54685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054686|154686|989898|1|9999054686|MR|Test|E|Lead 54686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054687|154687|989898|1|9999054687|MR|Test|E|Lead 54687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054688|154688|989898|1|9999054688|MR|Test|E|Lead 54688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054689|154689|989898|1|9999054689|MR|Test|E|Lead 54689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054690|154690|989898|1|9999054690|MR|Test|E|Lead 54690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054691|154691|989898|1|9999054691|MR|Test|E|Lead 54691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054692|154692|989898|1|9999054692|MR|Test|E|Lead 54692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054693|154693|989898|1|9999054693|MR|Test|E|Lead 54693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054694|154694|989898|1|9999054694|MR|Test|E|Lead 54694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054695|154695|989898|1|9999054695|MR|Test|E|Lead 54695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054696|154696|989898|1|9999054696|MR|Test|E|Lead 54696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054697|154697|989898|1|9999054697|MR|Test|E|Lead 54697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054698|154698|989898|1|9999054698|MR|Test|E|Lead 54698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054699|154699|989898|1|9999054699|MR|Test|E|Lead 54699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054700|154700|989898|1|9999054700|MR|Test|E|Lead 54700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054701|154701|989898|1|9999054701|MR|Test|E|Lead 54701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054702|154702|989898|1|9999054702|MR|Test|E|Lead 54702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054703|154703|989898|1|9999054703|MR|Test|E|Lead 54703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054704|154704|989898|1|9999054704|MR|Test|E|Lead 54704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054705|154705|989898|1|9999054705|MR|Test|E|Lead 54705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054706|154706|989898|1|9999054706|MR|Test|E|Lead 54706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054707|154707|989898|1|9999054707|MR|Test|E|Lead 54707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054708|154708|989898|1|9999054708|MR|Test|E|Lead 54708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054709|154709|989898|1|9999054709|MR|Test|E|Lead 54709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054710|154710|989898|1|9999054710|MR|Test|E|Lead 54710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054711|154711|989898|1|9999054711|MR|Test|E|Lead 54711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054712|154712|989898|1|9999054712|MR|Test|E|Lead 54712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054713|154713|989898|1|9999054713|MR|Test|E|Lead 54713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054714|154714|989898|1|9999054714|MR|Test|E|Lead 54714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054715|154715|989898|1|9999054715|MR|Test|E|Lead 54715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054716|154716|989898|1|9999054716|MR|Test|E|Lead 54716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054717|154717|989898|1|9999054717|MR|Test|E|Lead 54717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054718|154718|989898|1|9999054718|MR|Test|E|Lead 54718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054719|154719|989898|1|9999054719|MR|Test|E|Lead 54719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054720|154720|989898|1|9999054720|MR|Test|E|Lead 54720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054721|154721|989898|1|9999054721|MR|Test|E|Lead 54721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054722|154722|989898|1|9999054722|MR|Test|E|Lead 54722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054723|154723|989898|1|9999054723|MR|Test|E|Lead 54723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054724|154724|989898|1|9999054724|MR|Test|E|Lead 54724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054725|154725|989898|1|9999054725|MR|Test|E|Lead 54725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054726|154726|989898|1|9999054726|MR|Test|E|Lead 54726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054727|154727|989898|1|9999054727|MR|Test|E|Lead 54727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054728|154728|989898|1|9999054728|MR|Test|E|Lead 54728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054729|154729|989898|1|9999054729|MR|Test|E|Lead 54729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054730|154730|989898|1|9999054730|MR|Test|E|Lead 54730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054731|154731|989898|1|9999054731|MR|Test|E|Lead 54731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054732|154732|989898|1|9999054732|MR|Test|E|Lead 54732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054733|154733|989898|1|9999054733|MR|Test|E|Lead 54733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054734|154734|989898|1|9999054734|MR|Test|E|Lead 54734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054735|154735|989898|1|9999054735|MR|Test|E|Lead 54735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054736|154736|989898|1|9999054736|MR|Test|E|Lead 54736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054737|154737|989898|1|9999054737|MR|Test|E|Lead 54737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054738|154738|989898|1|9999054738|MR|Test|E|Lead 54738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054739|154739|989898|1|9999054739|MR|Test|E|Lead 54739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054740|154740|989898|1|9999054740|MR|Test|E|Lead 54740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054741|154741|989898|1|9999054741|MR|Test|E|Lead 54741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054742|154742|989898|1|9999054742|MR|Test|E|Lead 54742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054743|154743|989898|1|9999054743|MR|Test|E|Lead 54743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054744|154744|989898|1|9999054744|MR|Test|E|Lead 54744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054745|154745|989898|1|9999054745|MR|Test|E|Lead 54745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054746|154746|989898|1|9999054746|MR|Test|E|Lead 54746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054747|154747|989898|1|9999054747|MR|Test|E|Lead 54747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054748|154748|989898|1|9999054748|MR|Test|E|Lead 54748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054749|154749|989898|1|9999054749|MR|Test|E|Lead 54749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054750|154750|989898|1|9999054750|MR|Test|E|Lead 54750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054751|154751|989898|1|9999054751|MR|Test|E|Lead 54751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054752|154752|989898|1|9999054752|MR|Test|E|Lead 54752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054753|154753|989898|1|9999054753|MR|Test|E|Lead 54753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054754|154754|989898|1|9999054754|MR|Test|E|Lead 54754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054755|154755|989898|1|9999054755|MR|Test|E|Lead 54755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054756|154756|989898|1|9999054756|MR|Test|E|Lead 54756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054757|154757|989898|1|9999054757|MR|Test|E|Lead 54757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054758|154758|989898|1|9999054758|MR|Test|E|Lead 54758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054759|154759|989898|1|9999054759|MR|Test|E|Lead 54759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054760|154760|989898|1|9999054760|MR|Test|E|Lead 54760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054761|154761|989898|1|9999054761|MR|Test|E|Lead 54761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054762|154762|989898|1|9999054762|MR|Test|E|Lead 54762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054763|154763|989898|1|9999054763|MR|Test|E|Lead 54763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054764|154764|989898|1|9999054764|MR|Test|E|Lead 54764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054765|154765|989898|1|9999054765|MR|Test|E|Lead 54765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054766|154766|989898|1|9999054766|MR|Test|E|Lead 54766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054767|154767|989898|1|9999054767|MR|Test|E|Lead 54767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054768|154768|989898|1|9999054768|MR|Test|E|Lead 54768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054769|154769|989898|1|9999054769|MR|Test|E|Lead 54769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054770|154770|989898|1|9999054770|MR|Test|E|Lead 54770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054771|154771|989898|1|9999054771|MR|Test|E|Lead 54771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054772|154772|989898|1|9999054772|MR|Test|E|Lead 54772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054773|154773|989898|1|9999054773|MR|Test|E|Lead 54773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054774|154774|989898|1|9999054774|MR|Test|E|Lead 54774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054775|154775|989898|1|9999054775|MR|Test|E|Lead 54775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054776|154776|989898|1|9999054776|MR|Test|E|Lead 54776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054777|154777|989898|1|9999054777|MR|Test|E|Lead 54777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054778|154778|989898|1|9999054778|MR|Test|E|Lead 54778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054779|154779|989898|1|9999054779|MR|Test|E|Lead 54779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054780|154780|989898|1|9999054780|MR|Test|E|Lead 54780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054781|154781|989898|1|9999054781|MR|Test|E|Lead 54781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054782|154782|989898|1|9999054782|MR|Test|E|Lead 54782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054783|154783|989898|1|9999054783|MR|Test|E|Lead 54783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054784|154784|989898|1|9999054784|MR|Test|E|Lead 54784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054785|154785|989898|1|9999054785|MR|Test|E|Lead 54785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054786|154786|989898|1|9999054786|MR|Test|E|Lead 54786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054787|154787|989898|1|9999054787|MR|Test|E|Lead 54787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054788|154788|989898|1|9999054788|MR|Test|E|Lead 54788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054789|154789|989898|1|9999054789|MR|Test|E|Lead 54789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054790|154790|989898|1|9999054790|MR|Test|E|Lead 54790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054791|154791|989898|1|9999054791|MR|Test|E|Lead 54791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054792|154792|989898|1|9999054792|MR|Test|E|Lead 54792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054793|154793|989898|1|9999054793|MR|Test|E|Lead 54793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054794|154794|989898|1|9999054794|MR|Test|E|Lead 54794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054795|154795|989898|1|9999054795|MR|Test|E|Lead 54795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054796|154796|989898|1|9999054796|MR|Test|E|Lead 54796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054797|154797|989898|1|9999054797|MR|Test|E|Lead 54797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054798|154798|989898|1|9999054798|MR|Test|E|Lead 54798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054799|154799|989898|1|9999054799|MR|Test|E|Lead 54799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054800|154800|989898|1|9999054800|MR|Test|E|Lead 54800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054801|154801|989898|1|9999054801|MR|Test|E|Lead 54801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054802|154802|989898|1|9999054802|MR|Test|E|Lead 54802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054803|154803|989898|1|9999054803|MR|Test|E|Lead 54803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054804|154804|989898|1|9999054804|MR|Test|E|Lead 54804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054805|154805|989898|1|9999054805|MR|Test|E|Lead 54805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054806|154806|989898|1|9999054806|MR|Test|E|Lead 54806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054807|154807|989898|1|9999054807|MR|Test|E|Lead 54807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054808|154808|989898|1|9999054808|MR|Test|E|Lead 54808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054809|154809|989898|1|9999054809|MR|Test|E|Lead 54809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054810|154810|989898|1|9999054810|MR|Test|E|Lead 54810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054811|154811|989898|1|9999054811|MR|Test|E|Lead 54811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054812|154812|989898|1|9999054812|MR|Test|E|Lead 54812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054813|154813|989898|1|9999054813|MR|Test|E|Lead 54813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054814|154814|989898|1|9999054814|MR|Test|E|Lead 54814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054815|154815|989898|1|9999054815|MR|Test|E|Lead 54815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054816|154816|989898|1|9999054816|MR|Test|E|Lead 54816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054817|154817|989898|1|9999054817|MR|Test|E|Lead 54817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054818|154818|989898|1|9999054818|MR|Test|E|Lead 54818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054819|154819|989898|1|9999054819|MR|Test|E|Lead 54819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054820|154820|989898|1|9999054820|MR|Test|E|Lead 54820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054821|154821|989898|1|9999054821|MR|Test|E|Lead 54821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054822|154822|989898|1|9999054822|MR|Test|E|Lead 54822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054823|154823|989898|1|9999054823|MR|Test|E|Lead 54823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054824|154824|989898|1|9999054824|MR|Test|E|Lead 54824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054825|154825|989898|1|9999054825|MR|Test|E|Lead 54825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054826|154826|989898|1|9999054826|MR|Test|E|Lead 54826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054827|154827|989898|1|9999054827|MR|Test|E|Lead 54827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054828|154828|989898|1|9999054828|MR|Test|E|Lead 54828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054829|154829|989898|1|9999054829|MR|Test|E|Lead 54829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054830|154830|989898|1|9999054830|MR|Test|E|Lead 54830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054831|154831|989898|1|9999054831|MR|Test|E|Lead 54831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054832|154832|989898|1|9999054832|MR|Test|E|Lead 54832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054833|154833|989898|1|9999054833|MR|Test|E|Lead 54833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054834|154834|989898|1|9999054834|MR|Test|E|Lead 54834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054835|154835|989898|1|9999054835|MR|Test|E|Lead 54835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054836|154836|989898|1|9999054836|MR|Test|E|Lead 54836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054837|154837|989898|1|9999054837|MR|Test|E|Lead 54837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054838|154838|989898|1|9999054838|MR|Test|E|Lead 54838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054839|154839|989898|1|9999054839|MR|Test|E|Lead 54839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054840|154840|989898|1|9999054840|MR|Test|E|Lead 54840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054841|154841|989898|1|9999054841|MR|Test|E|Lead 54841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054842|154842|989898|1|9999054842|MR|Test|E|Lead 54842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054843|154843|989898|1|9999054843|MR|Test|E|Lead 54843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054844|154844|989898|1|9999054844|MR|Test|E|Lead 54844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054845|154845|989898|1|9999054845|MR|Test|E|Lead 54845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054846|154846|989898|1|9999054846|MR|Test|E|Lead 54846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054847|154847|989898|1|9999054847|MR|Test|E|Lead 54847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054848|154848|989898|1|9999054848|MR|Test|E|Lead 54848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054849|154849|989898|1|9999054849|MR|Test|E|Lead 54849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054850|154850|989898|1|9999054850|MR|Test|E|Lead 54850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054851|154851|989898|1|9999054851|MR|Test|E|Lead 54851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054852|154852|989898|1|9999054852|MR|Test|E|Lead 54852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054853|154853|989898|1|9999054853|MR|Test|E|Lead 54853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054854|154854|989898|1|9999054854|MR|Test|E|Lead 54854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054855|154855|989898|1|9999054855|MR|Test|E|Lead 54855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054856|154856|989898|1|9999054856|MR|Test|E|Lead 54856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054857|154857|989898|1|9999054857|MR|Test|E|Lead 54857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054858|154858|989898|1|9999054858|MR|Test|E|Lead 54858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054859|154859|989898|1|9999054859|MR|Test|E|Lead 54859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054860|154860|989898|1|9999054860|MR|Test|E|Lead 54860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054861|154861|989898|1|9999054861|MR|Test|E|Lead 54861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054862|154862|989898|1|9999054862|MR|Test|E|Lead 54862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054863|154863|989898|1|9999054863|MR|Test|E|Lead 54863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054864|154864|989898|1|9999054864|MR|Test|E|Lead 54864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054865|154865|989898|1|9999054865|MR|Test|E|Lead 54865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054866|154866|989898|1|9999054866|MR|Test|E|Lead 54866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054867|154867|989898|1|9999054867|MR|Test|E|Lead 54867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054868|154868|989898|1|9999054868|MR|Test|E|Lead 54868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054869|154869|989898|1|9999054869|MR|Test|E|Lead 54869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054870|154870|989898|1|9999054870|MR|Test|E|Lead 54870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054871|154871|989898|1|9999054871|MR|Test|E|Lead 54871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054872|154872|989898|1|9999054872|MR|Test|E|Lead 54872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054873|154873|989898|1|9999054873|MR|Test|E|Lead 54873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054874|154874|989898|1|9999054874|MR|Test|E|Lead 54874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054875|154875|989898|1|9999054875|MR|Test|E|Lead 54875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054876|154876|989898|1|9999054876|MR|Test|E|Lead 54876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054877|154877|989898|1|9999054877|MR|Test|E|Lead 54877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054878|154878|989898|1|9999054878|MR|Test|E|Lead 54878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054879|154879|989898|1|9999054879|MR|Test|E|Lead 54879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054880|154880|989898|1|9999054880|MR|Test|E|Lead 54880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054881|154881|989898|1|9999054881|MR|Test|E|Lead 54881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054882|154882|989898|1|9999054882|MR|Test|E|Lead 54882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054883|154883|989898|1|9999054883|MR|Test|E|Lead 54883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054884|154884|989898|1|9999054884|MR|Test|E|Lead 54884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054885|154885|989898|1|9999054885|MR|Test|E|Lead 54885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054886|154886|989898|1|9999054886|MR|Test|E|Lead 54886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054887|154887|989898|1|9999054887|MR|Test|E|Lead 54887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054888|154888|989898|1|9999054888|MR|Test|E|Lead 54888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054889|154889|989898|1|9999054889|MR|Test|E|Lead 54889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054890|154890|989898|1|9999054890|MR|Test|E|Lead 54890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054891|154891|989898|1|9999054891|MR|Test|E|Lead 54891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054892|154892|989898|1|9999054892|MR|Test|E|Lead 54892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054893|154893|989898|1|9999054893|MR|Test|E|Lead 54893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054894|154894|989898|1|9999054894|MR|Test|E|Lead 54894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054895|154895|989898|1|9999054895|MR|Test|E|Lead 54895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054896|154896|989898|1|9999054896|MR|Test|E|Lead 54896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054897|154897|989898|1|9999054897|MR|Test|E|Lead 54897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054898|154898|989898|1|9999054898|MR|Test|E|Lead 54898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054899|154899|989898|1|9999054899|MR|Test|E|Lead 54899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054900|154900|989898|1|9999054900|MR|Test|E|Lead 54900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054901|154901|989898|1|9999054901|MR|Test|E|Lead 54901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054902|154902|989898|1|9999054902|MR|Test|E|Lead 54902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054903|154903|989898|1|9999054903|MR|Test|E|Lead 54903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054904|154904|989898|1|9999054904|MR|Test|E|Lead 54904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054905|154905|989898|1|9999054905|MR|Test|E|Lead 54905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054906|154906|989898|1|9999054906|MR|Test|E|Lead 54906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054907|154907|989898|1|9999054907|MR|Test|E|Lead 54907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054908|154908|989898|1|9999054908|MR|Test|E|Lead 54908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054909|154909|989898|1|9999054909|MR|Test|E|Lead 54909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054910|154910|989898|1|9999054910|MR|Test|E|Lead 54910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054911|154911|989898|1|9999054911|MR|Test|E|Lead 54911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054912|154912|989898|1|9999054912|MR|Test|E|Lead 54912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054913|154913|989898|1|9999054913|MR|Test|E|Lead 54913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054914|154914|989898|1|9999054914|MR|Test|E|Lead 54914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054915|154915|989898|1|9999054915|MR|Test|E|Lead 54915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054916|154916|989898|1|9999054916|MR|Test|E|Lead 54916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054917|154917|989898|1|9999054917|MR|Test|E|Lead 54917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054918|154918|989898|1|9999054918|MR|Test|E|Lead 54918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054919|154919|989898|1|9999054919|MR|Test|E|Lead 54919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054920|154920|989898|1|9999054920|MR|Test|E|Lead 54920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054921|154921|989898|1|9999054921|MR|Test|E|Lead 54921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054922|154922|989898|1|9999054922|MR|Test|E|Lead 54922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054923|154923|989898|1|9999054923|MR|Test|E|Lead 54923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054924|154924|989898|1|9999054924|MR|Test|E|Lead 54924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054925|154925|989898|1|9999054925|MR|Test|E|Lead 54925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054926|154926|989898|1|9999054926|MR|Test|E|Lead 54926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054927|154927|989898|1|9999054927|MR|Test|E|Lead 54927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054928|154928|989898|1|9999054928|MR|Test|E|Lead 54928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054929|154929|989898|1|9999054929|MR|Test|E|Lead 54929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054930|154930|989898|1|9999054930|MR|Test|E|Lead 54930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054931|154931|989898|1|9999054931|MR|Test|E|Lead 54931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054932|154932|989898|1|9999054932|MR|Test|E|Lead 54932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054933|154933|989898|1|9999054933|MR|Test|E|Lead 54933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054934|154934|989898|1|9999054934|MR|Test|E|Lead 54934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054935|154935|989898|1|9999054935|MR|Test|E|Lead 54935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054936|154936|989898|1|9999054936|MR|Test|E|Lead 54936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054937|154937|989898|1|9999054937|MR|Test|E|Lead 54937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054938|154938|989898|1|9999054938|MR|Test|E|Lead 54938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054939|154939|989898|1|9999054939|MR|Test|E|Lead 54939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054940|154940|989898|1|9999054940|MR|Test|E|Lead 54940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054941|154941|989898|1|9999054941|MR|Test|E|Lead 54941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054942|154942|989898|1|9999054942|MR|Test|E|Lead 54942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054943|154943|989898|1|9999054943|MR|Test|E|Lead 54943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054944|154944|989898|1|9999054944|MR|Test|E|Lead 54944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054945|154945|989898|1|9999054945|MR|Test|E|Lead 54945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054946|154946|989898|1|9999054946|MR|Test|E|Lead 54946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054947|154947|989898|1|9999054947|MR|Test|E|Lead 54947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054948|154948|989898|1|9999054948|MR|Test|E|Lead 54948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054949|154949|989898|1|9999054949|MR|Test|E|Lead 54949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054950|154950|989898|1|9999054950|MR|Test|E|Lead 54950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054951|154951|989898|1|9999054951|MR|Test|E|Lead 54951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054952|154952|989898|1|9999054952|MR|Test|E|Lead 54952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054953|154953|989898|1|9999054953|MR|Test|E|Lead 54953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054954|154954|989898|1|9999054954|MR|Test|E|Lead 54954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054955|154955|989898|1|9999054955|MR|Test|E|Lead 54955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054956|154956|989898|1|9999054956|MR|Test|E|Lead 54956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054957|154957|989898|1|9999054957|MR|Test|E|Lead 54957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054958|154958|989898|1|9999054958|MR|Test|E|Lead 54958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054959|154959|989898|1|9999054959|MR|Test|E|Lead 54959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054960|154960|989898|1|9999054960|MR|Test|E|Lead 54960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054961|154961|989898|1|9999054961|MR|Test|E|Lead 54961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054962|154962|989898|1|9999054962|MR|Test|E|Lead 54962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054963|154963|989898|1|9999054963|MR|Test|E|Lead 54963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054964|154964|989898|1|9999054964|MR|Test|E|Lead 54964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054965|154965|989898|1|9999054965|MR|Test|E|Lead 54965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054966|154966|989898|1|9999054966|MR|Test|E|Lead 54966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054967|154967|989898|1|9999054967|MR|Test|E|Lead 54967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054968|154968|989898|1|9999054968|MR|Test|E|Lead 54968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054969|154969|989898|1|9999054969|MR|Test|E|Lead 54969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054970|154970|989898|1|9999054970|MR|Test|E|Lead 54970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054971|154971|989898|1|9999054971|MR|Test|E|Lead 54971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054972|154972|989898|1|9999054972|MR|Test|E|Lead 54972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054973|154973|989898|1|9999054973|MR|Test|E|Lead 54973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054974|154974|989898|1|9999054974|MR|Test|E|Lead 54974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054975|154975|989898|1|9999054975|MR|Test|E|Lead 54975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054976|154976|989898|1|9999054976|MR|Test|E|Lead 54976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054977|154977|989898|1|9999054977|MR|Test|E|Lead 54977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054978|154978|989898|1|9999054978|MR|Test|E|Lead 54978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054979|154979|989898|1|9999054979|MR|Test|E|Lead 54979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054980|154980|989898|1|9999054980|MR|Test|E|Lead 54980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054981|154981|989898|1|9999054981|MR|Test|E|Lead 54981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054982|154982|989898|1|9999054982|MR|Test|E|Lead 54982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054983|154983|989898|1|9999054983|MR|Test|E|Lead 54983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054984|154984|989898|1|9999054984|MR|Test|E|Lead 54984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054985|154985|989898|1|9999054985|MR|Test|E|Lead 54985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054986|154986|989898|1|9999054986|MR|Test|E|Lead 54986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054987|154987|989898|1|9999054987|MR|Test|E|Lead 54987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054988|154988|989898|1|9999054988|MR|Test|E|Lead 54988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054989|154989|989898|1|9999054989|MR|Test|E|Lead 54989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054990|154990|989898|1|9999054990|MR|Test|E|Lead 54990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054991|154991|989898|1|9999054991|MR|Test|E|Lead 54991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054992|154992|989898|1|9999054992|MR|Test|E|Lead 54992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054993|154993|989898|1|9999054993|MR|Test|E|Lead 54993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054994|154994|989898|1|9999054994|MR|Test|E|Lead 54994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054995|154995|989898|1|9999054995|MR|Test|E|Lead 54995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054996|154996|989898|1|9999054996|MR|Test|E|Lead 54996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054997|154997|989898|1|9999054997|MR|Test|E|Lead 54997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054998|154998|989898|1|9999054998|MR|Test|E|Lead 54998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1054999|154999|989898|1|9999054999|MR|Test|E|Lead 54999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055000|155000|989898|1|9999055000|MR|Test|E|Lead 55000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055001|155001|989898|1|9999055001|MR|Test|E|Lead 55001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055002|155002|989898|1|9999055002|MR|Test|E|Lead 55002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055003|155003|989898|1|9999055003|MR|Test|E|Lead 55003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055004|155004|989898|1|9999055004|MR|Test|E|Lead 55004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055005|155005|989898|1|9999055005|MR|Test|E|Lead 55005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055006|155006|989898|1|9999055006|MR|Test|E|Lead 55006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055007|155007|989898|1|9999055007|MR|Test|E|Lead 55007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055008|155008|989898|1|9999055008|MR|Test|E|Lead 55008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055009|155009|989898|1|9999055009|MR|Test|E|Lead 55009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055010|155010|989898|1|9999055010|MR|Test|E|Lead 55010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055011|155011|989898|1|9999055011|MR|Test|E|Lead 55011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055012|155012|989898|1|9999055012|MR|Test|E|Lead 55012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055013|155013|989898|1|9999055013|MR|Test|E|Lead 55013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055014|155014|989898|1|9999055014|MR|Test|E|Lead 55014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055015|155015|989898|1|9999055015|MR|Test|E|Lead 55015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055016|155016|989898|1|9999055016|MR|Test|E|Lead 55016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055017|155017|989898|1|9999055017|MR|Test|E|Lead 55017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055018|155018|989898|1|9999055018|MR|Test|E|Lead 55018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055019|155019|989898|1|9999055019|MR|Test|E|Lead 55019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055020|155020|989898|1|9999055020|MR|Test|E|Lead 55020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055021|155021|989898|1|9999055021|MR|Test|E|Lead 55021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055022|155022|989898|1|9999055022|MR|Test|E|Lead 55022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055023|155023|989898|1|9999055023|MR|Test|E|Lead 55023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055024|155024|989898|1|9999055024|MR|Test|E|Lead 55024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055025|155025|989898|1|9999055025|MR|Test|E|Lead 55025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055026|155026|989898|1|9999055026|MR|Test|E|Lead 55026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055027|155027|989898|1|9999055027|MR|Test|E|Lead 55027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055028|155028|989898|1|9999055028|MR|Test|E|Lead 55028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055029|155029|989898|1|9999055029|MR|Test|E|Lead 55029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055030|155030|989898|1|9999055030|MR|Test|E|Lead 55030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055031|155031|989898|1|9999055031|MR|Test|E|Lead 55031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055032|155032|989898|1|9999055032|MR|Test|E|Lead 55032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055033|155033|989898|1|9999055033|MR|Test|E|Lead 55033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055034|155034|989898|1|9999055034|MR|Test|E|Lead 55034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055035|155035|989898|1|9999055035|MR|Test|E|Lead 55035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055036|155036|989898|1|9999055036|MR|Test|E|Lead 55036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055037|155037|989898|1|9999055037|MR|Test|E|Lead 55037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055038|155038|989898|1|9999055038|MR|Test|E|Lead 55038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055039|155039|989898|1|9999055039|MR|Test|E|Lead 55039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055040|155040|989898|1|9999055040|MR|Test|E|Lead 55040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055041|155041|989898|1|9999055041|MR|Test|E|Lead 55041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055042|155042|989898|1|9999055042|MR|Test|E|Lead 55042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055043|155043|989898|1|9999055043|MR|Test|E|Lead 55043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055044|155044|989898|1|9999055044|MR|Test|E|Lead 55044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055045|155045|989898|1|9999055045|MR|Test|E|Lead 55045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055046|155046|989898|1|9999055046|MR|Test|E|Lead 55046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055047|155047|989898|1|9999055047|MR|Test|E|Lead 55047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055048|155048|989898|1|9999055048|MR|Test|E|Lead 55048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055049|155049|989898|1|9999055049|MR|Test|E|Lead 55049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055050|155050|989898|1|9999055050|MR|Test|E|Lead 55050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055051|155051|989898|1|9999055051|MR|Test|E|Lead 55051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055052|155052|989898|1|9999055052|MR|Test|E|Lead 55052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055053|155053|989898|1|9999055053|MR|Test|E|Lead 55053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055054|155054|989898|1|9999055054|MR|Test|E|Lead 55054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055055|155055|989898|1|9999055055|MR|Test|E|Lead 55055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055056|155056|989898|1|9999055056|MR|Test|E|Lead 55056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055057|155057|989898|1|9999055057|MR|Test|E|Lead 55057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055058|155058|989898|1|9999055058|MR|Test|E|Lead 55058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055059|155059|989898|1|9999055059|MR|Test|E|Lead 55059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055060|155060|989898|1|9999055060|MR|Test|E|Lead 55060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055061|155061|989898|1|9999055061|MR|Test|E|Lead 55061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055062|155062|989898|1|9999055062|MR|Test|E|Lead 55062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055063|155063|989898|1|9999055063|MR|Test|E|Lead 55063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055064|155064|989898|1|9999055064|MR|Test|E|Lead 55064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055065|155065|989898|1|9999055065|MR|Test|E|Lead 55065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055066|155066|989898|1|9999055066|MR|Test|E|Lead 55066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055067|155067|989898|1|9999055067|MR|Test|E|Lead 55067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055068|155068|989898|1|9999055068|MR|Test|E|Lead 55068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055069|155069|989898|1|9999055069|MR|Test|E|Lead 55069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055070|155070|989898|1|9999055070|MR|Test|E|Lead 55070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055071|155071|989898|1|9999055071|MR|Test|E|Lead 55071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055072|155072|989898|1|9999055072|MR|Test|E|Lead 55072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055073|155073|989898|1|9999055073|MR|Test|E|Lead 55073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055074|155074|989898|1|9999055074|MR|Test|E|Lead 55074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055075|155075|989898|1|9999055075|MR|Test|E|Lead 55075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055076|155076|989898|1|9999055076|MR|Test|E|Lead 55076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055077|155077|989898|1|9999055077|MR|Test|E|Lead 55077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055078|155078|989898|1|9999055078|MR|Test|E|Lead 55078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055079|155079|989898|1|9999055079|MR|Test|E|Lead 55079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055080|155080|989898|1|9999055080|MR|Test|E|Lead 55080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055081|155081|989898|1|9999055081|MR|Test|E|Lead 55081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055082|155082|989898|1|9999055082|MR|Test|E|Lead 55082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055083|155083|989898|1|9999055083|MR|Test|E|Lead 55083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055084|155084|989898|1|9999055084|MR|Test|E|Lead 55084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055085|155085|989898|1|9999055085|MR|Test|E|Lead 55085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055086|155086|989898|1|9999055086|MR|Test|E|Lead 55086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055087|155087|989898|1|9999055087|MR|Test|E|Lead 55087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055088|155088|989898|1|9999055088|MR|Test|E|Lead 55088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055089|155089|989898|1|9999055089|MR|Test|E|Lead 55089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055090|155090|989898|1|9999055090|MR|Test|E|Lead 55090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055091|155091|989898|1|9999055091|MR|Test|E|Lead 55091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055092|155092|989898|1|9999055092|MR|Test|E|Lead 55092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055093|155093|989898|1|9999055093|MR|Test|E|Lead 55093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055094|155094|989898|1|9999055094|MR|Test|E|Lead 55094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055095|155095|989898|1|9999055095|MR|Test|E|Lead 55095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055096|155096|989898|1|9999055096|MR|Test|E|Lead 55096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055097|155097|989898|1|9999055097|MR|Test|E|Lead 55097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055098|155098|989898|1|9999055098|MR|Test|E|Lead 55098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055099|155099|989898|1|9999055099|MR|Test|E|Lead 55099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055100|155100|989898|1|9999055100|MR|Test|E|Lead 55100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055101|155101|989898|1|9999055101|MR|Test|E|Lead 55101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055102|155102|989898|1|9999055102|MR|Test|E|Lead 55102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055103|155103|989898|1|9999055103|MR|Test|E|Lead 55103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055104|155104|989898|1|9999055104|MR|Test|E|Lead 55104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055105|155105|989898|1|9999055105|MR|Test|E|Lead 55105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055106|155106|989898|1|9999055106|MR|Test|E|Lead 55106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055107|155107|989898|1|9999055107|MR|Test|E|Lead 55107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055108|155108|989898|1|9999055108|MR|Test|E|Lead 55108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055109|155109|989898|1|9999055109|MR|Test|E|Lead 55109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055110|155110|989898|1|9999055110|MR|Test|E|Lead 55110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055111|155111|989898|1|9999055111|MR|Test|E|Lead 55111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055112|155112|989898|1|9999055112|MR|Test|E|Lead 55112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055113|155113|989898|1|9999055113|MR|Test|E|Lead 55113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055114|155114|989898|1|9999055114|MR|Test|E|Lead 55114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055115|155115|989898|1|9999055115|MR|Test|E|Lead 55115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055116|155116|989898|1|9999055116|MR|Test|E|Lead 55116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055117|155117|989898|1|9999055117|MR|Test|E|Lead 55117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055118|155118|989898|1|9999055118|MR|Test|E|Lead 55118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055119|155119|989898|1|9999055119|MR|Test|E|Lead 55119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055120|155120|989898|1|9999055120|MR|Test|E|Lead 55120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055121|155121|989898|1|9999055121|MR|Test|E|Lead 55121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055122|155122|989898|1|9999055122|MR|Test|E|Lead 55122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055123|155123|989898|1|9999055123|MR|Test|E|Lead 55123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055124|155124|989898|1|9999055124|MR|Test|E|Lead 55124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055125|155125|989898|1|9999055125|MR|Test|E|Lead 55125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055126|155126|989898|1|9999055126|MR|Test|E|Lead 55126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055127|155127|989898|1|9999055127|MR|Test|E|Lead 55127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055128|155128|989898|1|9999055128|MR|Test|E|Lead 55128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055129|155129|989898|1|9999055129|MR|Test|E|Lead 55129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055130|155130|989898|1|9999055130|MR|Test|E|Lead 55130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055131|155131|989898|1|9999055131|MR|Test|E|Lead 55131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055132|155132|989898|1|9999055132|MR|Test|E|Lead 55132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055133|155133|989898|1|9999055133|MR|Test|E|Lead 55133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055134|155134|989898|1|9999055134|MR|Test|E|Lead 55134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055135|155135|989898|1|9999055135|MR|Test|E|Lead 55135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055136|155136|989898|1|9999055136|MR|Test|E|Lead 55136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055137|155137|989898|1|9999055137|MR|Test|E|Lead 55137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055138|155138|989898|1|9999055138|MR|Test|E|Lead 55138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055139|155139|989898|1|9999055139|MR|Test|E|Lead 55139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055140|155140|989898|1|9999055140|MR|Test|E|Lead 55140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055141|155141|989898|1|9999055141|MR|Test|E|Lead 55141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055142|155142|989898|1|9999055142|MR|Test|E|Lead 55142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055143|155143|989898|1|9999055143|MR|Test|E|Lead 55143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055144|155144|989898|1|9999055144|MR|Test|E|Lead 55144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055145|155145|989898|1|9999055145|MR|Test|E|Lead 55145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055146|155146|989898|1|9999055146|MR|Test|E|Lead 55146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055147|155147|989898|1|9999055147|MR|Test|E|Lead 55147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055148|155148|989898|1|9999055148|MR|Test|E|Lead 55148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055149|155149|989898|1|9999055149|MR|Test|E|Lead 55149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055150|155150|989898|1|9999055150|MR|Test|E|Lead 55150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055151|155151|989898|1|9999055151|MR|Test|E|Lead 55151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055152|155152|989898|1|9999055152|MR|Test|E|Lead 55152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055153|155153|989898|1|9999055153|MR|Test|E|Lead 55153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055154|155154|989898|1|9999055154|MR|Test|E|Lead 55154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055155|155155|989898|1|9999055155|MR|Test|E|Lead 55155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055156|155156|989898|1|9999055156|MR|Test|E|Lead 55156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055157|155157|989898|1|9999055157|MR|Test|E|Lead 55157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055158|155158|989898|1|9999055158|MR|Test|E|Lead 55158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055159|155159|989898|1|9999055159|MR|Test|E|Lead 55159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055160|155160|989898|1|9999055160|MR|Test|E|Lead 55160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055161|155161|989898|1|9999055161|MR|Test|E|Lead 55161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055162|155162|989898|1|9999055162|MR|Test|E|Lead 55162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055163|155163|989898|1|9999055163|MR|Test|E|Lead 55163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055164|155164|989898|1|9999055164|MR|Test|E|Lead 55164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055165|155165|989898|1|9999055165|MR|Test|E|Lead 55165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055166|155166|989898|1|9999055166|MR|Test|E|Lead 55166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055167|155167|989898|1|9999055167|MR|Test|E|Lead 55167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055168|155168|989898|1|9999055168|MR|Test|E|Lead 55168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055169|155169|989898|1|9999055169|MR|Test|E|Lead 55169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055170|155170|989898|1|9999055170|MR|Test|E|Lead 55170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055171|155171|989898|1|9999055171|MR|Test|E|Lead 55171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055172|155172|989898|1|9999055172|MR|Test|E|Lead 55172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055173|155173|989898|1|9999055173|MR|Test|E|Lead 55173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055174|155174|989898|1|9999055174|MR|Test|E|Lead 55174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055175|155175|989898|1|9999055175|MR|Test|E|Lead 55175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055176|155176|989898|1|9999055176|MR|Test|E|Lead 55176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055177|155177|989898|1|9999055177|MR|Test|E|Lead 55177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055178|155178|989898|1|9999055178|MR|Test|E|Lead 55178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055179|155179|989898|1|9999055179|MR|Test|E|Lead 55179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055180|155180|989898|1|9999055180|MR|Test|E|Lead 55180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055181|155181|989898|1|9999055181|MR|Test|E|Lead 55181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055182|155182|989898|1|9999055182|MR|Test|E|Lead 55182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055183|155183|989898|1|9999055183|MR|Test|E|Lead 55183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055184|155184|989898|1|9999055184|MR|Test|E|Lead 55184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055185|155185|989898|1|9999055185|MR|Test|E|Lead 55185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055186|155186|989898|1|9999055186|MR|Test|E|Lead 55186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055187|155187|989898|1|9999055187|MR|Test|E|Lead 55187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055188|155188|989898|1|9999055188|MR|Test|E|Lead 55188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055189|155189|989898|1|9999055189|MR|Test|E|Lead 55189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055190|155190|989898|1|9999055190|MR|Test|E|Lead 55190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055191|155191|989898|1|9999055191|MR|Test|E|Lead 55191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055192|155192|989898|1|9999055192|MR|Test|E|Lead 55192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055193|155193|989898|1|9999055193|MR|Test|E|Lead 55193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055194|155194|989898|1|9999055194|MR|Test|E|Lead 55194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055195|155195|989898|1|9999055195|MR|Test|E|Lead 55195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055196|155196|989898|1|9999055196|MR|Test|E|Lead 55196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055197|155197|989898|1|9999055197|MR|Test|E|Lead 55197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055198|155198|989898|1|9999055198|MR|Test|E|Lead 55198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055199|155199|989898|1|9999055199|MR|Test|E|Lead 55199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055200|155200|989898|1|9999055200|MR|Test|E|Lead 55200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055201|155201|989898|1|9999055201|MR|Test|E|Lead 55201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055202|155202|989898|1|9999055202|MR|Test|E|Lead 55202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055203|155203|989898|1|9999055203|MR|Test|E|Lead 55203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055204|155204|989898|1|9999055204|MR|Test|E|Lead 55204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055205|155205|989898|1|9999055205|MR|Test|E|Lead 55205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055206|155206|989898|1|9999055206|MR|Test|E|Lead 55206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055207|155207|989898|1|9999055207|MR|Test|E|Lead 55207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055208|155208|989898|1|9999055208|MR|Test|E|Lead 55208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055209|155209|989898|1|9999055209|MR|Test|E|Lead 55209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055210|155210|989898|1|9999055210|MR|Test|E|Lead 55210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055211|155211|989898|1|9999055211|MR|Test|E|Lead 55211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055212|155212|989898|1|9999055212|MR|Test|E|Lead 55212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055213|155213|989898|1|9999055213|MR|Test|E|Lead 55213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055214|155214|989898|1|9999055214|MR|Test|E|Lead 55214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055215|155215|989898|1|9999055215|MR|Test|E|Lead 55215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055216|155216|989898|1|9999055216|MR|Test|E|Lead 55216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055217|155217|989898|1|9999055217|MR|Test|E|Lead 55217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055218|155218|989898|1|9999055218|MR|Test|E|Lead 55218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055219|155219|989898|1|9999055219|MR|Test|E|Lead 55219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055220|155220|989898|1|9999055220|MR|Test|E|Lead 55220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055221|155221|989898|1|9999055221|MR|Test|E|Lead 55221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055222|155222|989898|1|9999055222|MR|Test|E|Lead 55222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055223|155223|989898|1|9999055223|MR|Test|E|Lead 55223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055224|155224|989898|1|9999055224|MR|Test|E|Lead 55224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055225|155225|989898|1|9999055225|MR|Test|E|Lead 55225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055226|155226|989898|1|9999055226|MR|Test|E|Lead 55226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055227|155227|989898|1|9999055227|MR|Test|E|Lead 55227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055228|155228|989898|1|9999055228|MR|Test|E|Lead 55228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055229|155229|989898|1|9999055229|MR|Test|E|Lead 55229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055230|155230|989898|1|9999055230|MR|Test|E|Lead 55230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055231|155231|989898|1|9999055231|MR|Test|E|Lead 55231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055232|155232|989898|1|9999055232|MR|Test|E|Lead 55232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055233|155233|989898|1|9999055233|MR|Test|E|Lead 55233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055234|155234|989898|1|9999055234|MR|Test|E|Lead 55234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055235|155235|989898|1|9999055235|MR|Test|E|Lead 55235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055236|155236|989898|1|9999055236|MR|Test|E|Lead 55236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055237|155237|989898|1|9999055237|MR|Test|E|Lead 55237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055238|155238|989898|1|9999055238|MR|Test|E|Lead 55238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055239|155239|989898|1|9999055239|MR|Test|E|Lead 55239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055240|155240|989898|1|9999055240|MR|Test|E|Lead 55240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055241|155241|989898|1|9999055241|MR|Test|E|Lead 55241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055242|155242|989898|1|9999055242|MR|Test|E|Lead 55242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055243|155243|989898|1|9999055243|MR|Test|E|Lead 55243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055244|155244|989898|1|9999055244|MR|Test|E|Lead 55244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055245|155245|989898|1|9999055245|MR|Test|E|Lead 55245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055246|155246|989898|1|9999055246|MR|Test|E|Lead 55246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055247|155247|989898|1|9999055247|MR|Test|E|Lead 55247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055248|155248|989898|1|9999055248|MR|Test|E|Lead 55248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055249|155249|989898|1|9999055249|MR|Test|E|Lead 55249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055250|155250|989898|1|9999055250|MR|Test|E|Lead 55250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055251|155251|989898|1|9999055251|MR|Test|E|Lead 55251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055252|155252|989898|1|9999055252|MR|Test|E|Lead 55252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055253|155253|989898|1|9999055253|MR|Test|E|Lead 55253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055254|155254|989898|1|9999055254|MR|Test|E|Lead 55254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055255|155255|989898|1|9999055255|MR|Test|E|Lead 55255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055256|155256|989898|1|9999055256|MR|Test|E|Lead 55256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055257|155257|989898|1|9999055257|MR|Test|E|Lead 55257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055258|155258|989898|1|9999055258|MR|Test|E|Lead 55258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055259|155259|989898|1|9999055259|MR|Test|E|Lead 55259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055260|155260|989898|1|9999055260|MR|Test|E|Lead 55260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055261|155261|989898|1|9999055261|MR|Test|E|Lead 55261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055262|155262|989898|1|9999055262|MR|Test|E|Lead 55262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055263|155263|989898|1|9999055263|MR|Test|E|Lead 55263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055264|155264|989898|1|9999055264|MR|Test|E|Lead 55264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055265|155265|989898|1|9999055265|MR|Test|E|Lead 55265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055266|155266|989898|1|9999055266|MR|Test|E|Lead 55266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055267|155267|989898|1|9999055267|MR|Test|E|Lead 55267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055268|155268|989898|1|9999055268|MR|Test|E|Lead 55268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055269|155269|989898|1|9999055269|MR|Test|E|Lead 55269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055270|155270|989898|1|9999055270|MR|Test|E|Lead 55270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055271|155271|989898|1|9999055271|MR|Test|E|Lead 55271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055272|155272|989898|1|9999055272|MR|Test|E|Lead 55272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055273|155273|989898|1|9999055273|MR|Test|E|Lead 55273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055274|155274|989898|1|9999055274|MR|Test|E|Lead 55274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055275|155275|989898|1|9999055275|MR|Test|E|Lead 55275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055276|155276|989898|1|9999055276|MR|Test|E|Lead 55276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055277|155277|989898|1|9999055277|MR|Test|E|Lead 55277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055278|155278|989898|1|9999055278|MR|Test|E|Lead 55278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055279|155279|989898|1|9999055279|MR|Test|E|Lead 55279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055280|155280|989898|1|9999055280|MR|Test|E|Lead 55280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055281|155281|989898|1|9999055281|MR|Test|E|Lead 55281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055282|155282|989898|1|9999055282|MR|Test|E|Lead 55282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055283|155283|989898|1|9999055283|MR|Test|E|Lead 55283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055284|155284|989898|1|9999055284|MR|Test|E|Lead 55284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055285|155285|989898|1|9999055285|MR|Test|E|Lead 55285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055286|155286|989898|1|9999055286|MR|Test|E|Lead 55286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055287|155287|989898|1|9999055287|MR|Test|E|Lead 55287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055288|155288|989898|1|9999055288|MR|Test|E|Lead 55288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055289|155289|989898|1|9999055289|MR|Test|E|Lead 55289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055290|155290|989898|1|9999055290|MR|Test|E|Lead 55290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055291|155291|989898|1|9999055291|MR|Test|E|Lead 55291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055292|155292|989898|1|9999055292|MR|Test|E|Lead 55292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055293|155293|989898|1|9999055293|MR|Test|E|Lead 55293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055294|155294|989898|1|9999055294|MR|Test|E|Lead 55294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055295|155295|989898|1|9999055295|MR|Test|E|Lead 55295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055296|155296|989898|1|9999055296|MR|Test|E|Lead 55296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055297|155297|989898|1|9999055297|MR|Test|E|Lead 55297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055298|155298|989898|1|9999055298|MR|Test|E|Lead 55298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055299|155299|989898|1|9999055299|MR|Test|E|Lead 55299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055300|155300|989898|1|9999055300|MR|Test|E|Lead 55300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055301|155301|989898|1|9999055301|MR|Test|E|Lead 55301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055302|155302|989898|1|9999055302|MR|Test|E|Lead 55302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055303|155303|989898|1|9999055303|MR|Test|E|Lead 55303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055304|155304|989898|1|9999055304|MR|Test|E|Lead 55304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055305|155305|989898|1|9999055305|MR|Test|E|Lead 55305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055306|155306|989898|1|9999055306|MR|Test|E|Lead 55306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055307|155307|989898|1|9999055307|MR|Test|E|Lead 55307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055308|155308|989898|1|9999055308|MR|Test|E|Lead 55308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055309|155309|989898|1|9999055309|MR|Test|E|Lead 55309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055310|155310|989898|1|9999055310|MR|Test|E|Lead 55310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055311|155311|989898|1|9999055311|MR|Test|E|Lead 55311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055312|155312|989898|1|9999055312|MR|Test|E|Lead 55312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055313|155313|989898|1|9999055313|MR|Test|E|Lead 55313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055314|155314|989898|1|9999055314|MR|Test|E|Lead 55314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055315|155315|989898|1|9999055315|MR|Test|E|Lead 55315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055316|155316|989898|1|9999055316|MR|Test|E|Lead 55316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055317|155317|989898|1|9999055317|MR|Test|E|Lead 55317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055318|155318|989898|1|9999055318|MR|Test|E|Lead 55318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055319|155319|989898|1|9999055319|MR|Test|E|Lead 55319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055320|155320|989898|1|9999055320|MR|Test|E|Lead 55320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055321|155321|989898|1|9999055321|MR|Test|E|Lead 55321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055322|155322|989898|1|9999055322|MR|Test|E|Lead 55322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055323|155323|989898|1|9999055323|MR|Test|E|Lead 55323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055324|155324|989898|1|9999055324|MR|Test|E|Lead 55324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055325|155325|989898|1|9999055325|MR|Test|E|Lead 55325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055326|155326|989898|1|9999055326|MR|Test|E|Lead 55326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055327|155327|989898|1|9999055327|MR|Test|E|Lead 55327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055328|155328|989898|1|9999055328|MR|Test|E|Lead 55328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055329|155329|989898|1|9999055329|MR|Test|E|Lead 55329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055330|155330|989898|1|9999055330|MR|Test|E|Lead 55330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055331|155331|989898|1|9999055331|MR|Test|E|Lead 55331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055332|155332|989898|1|9999055332|MR|Test|E|Lead 55332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055333|155333|989898|1|9999055333|MR|Test|E|Lead 55333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055334|155334|989898|1|9999055334|MR|Test|E|Lead 55334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055335|155335|989898|1|9999055335|MR|Test|E|Lead 55335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055336|155336|989898|1|9999055336|MR|Test|E|Lead 55336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055337|155337|989898|1|9999055337|MR|Test|E|Lead 55337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055338|155338|989898|1|9999055338|MR|Test|E|Lead 55338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055339|155339|989898|1|9999055339|MR|Test|E|Lead 55339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055340|155340|989898|1|9999055340|MR|Test|E|Lead 55340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055341|155341|989898|1|9999055341|MR|Test|E|Lead 55341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055342|155342|989898|1|9999055342|MR|Test|E|Lead 55342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055343|155343|989898|1|9999055343|MR|Test|E|Lead 55343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055344|155344|989898|1|9999055344|MR|Test|E|Lead 55344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055345|155345|989898|1|9999055345|MR|Test|E|Lead 55345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055346|155346|989898|1|9999055346|MR|Test|E|Lead 55346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055347|155347|989898|1|9999055347|MR|Test|E|Lead 55347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055348|155348|989898|1|9999055348|MR|Test|E|Lead 55348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055349|155349|989898|1|9999055349|MR|Test|E|Lead 55349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055350|155350|989898|1|9999055350|MR|Test|E|Lead 55350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055351|155351|989898|1|9999055351|MR|Test|E|Lead 55351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055352|155352|989898|1|9999055352|MR|Test|E|Lead 55352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055353|155353|989898|1|9999055353|MR|Test|E|Lead 55353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055354|155354|989898|1|9999055354|MR|Test|E|Lead 55354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055355|155355|989898|1|9999055355|MR|Test|E|Lead 55355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055356|155356|989898|1|9999055356|MR|Test|E|Lead 55356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055357|155357|989898|1|9999055357|MR|Test|E|Lead 55357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055358|155358|989898|1|9999055358|MR|Test|E|Lead 55358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055359|155359|989898|1|9999055359|MR|Test|E|Lead 55359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055360|155360|989898|1|9999055360|MR|Test|E|Lead 55360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055361|155361|989898|1|9999055361|MR|Test|E|Lead 55361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055362|155362|989898|1|9999055362|MR|Test|E|Lead 55362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055363|155363|989898|1|9999055363|MR|Test|E|Lead 55363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055364|155364|989898|1|9999055364|MR|Test|E|Lead 55364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055365|155365|989898|1|9999055365|MR|Test|E|Lead 55365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055366|155366|989898|1|9999055366|MR|Test|E|Lead 55366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055367|155367|989898|1|9999055367|MR|Test|E|Lead 55367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055368|155368|989898|1|9999055368|MR|Test|E|Lead 55368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055369|155369|989898|1|9999055369|MR|Test|E|Lead 55369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055370|155370|989898|1|9999055370|MR|Test|E|Lead 55370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055371|155371|989898|1|9999055371|MR|Test|E|Lead 55371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055372|155372|989898|1|9999055372|MR|Test|E|Lead 55372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055373|155373|989898|1|9999055373|MR|Test|E|Lead 55373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055374|155374|989898|1|9999055374|MR|Test|E|Lead 55374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055375|155375|989898|1|9999055375|MR|Test|E|Lead 55375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055376|155376|989898|1|9999055376|MR|Test|E|Lead 55376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055377|155377|989898|1|9999055377|MR|Test|E|Lead 55377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055378|155378|989898|1|9999055378|MR|Test|E|Lead 55378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055379|155379|989898|1|9999055379|MR|Test|E|Lead 55379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055380|155380|989898|1|9999055380|MR|Test|E|Lead 55380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055381|155381|989898|1|9999055381|MR|Test|E|Lead 55381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055382|155382|989898|1|9999055382|MR|Test|E|Lead 55382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055383|155383|989898|1|9999055383|MR|Test|E|Lead 55383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055384|155384|989898|1|9999055384|MR|Test|E|Lead 55384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055385|155385|989898|1|9999055385|MR|Test|E|Lead 55385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055386|155386|989898|1|9999055386|MR|Test|E|Lead 55386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055387|155387|989898|1|9999055387|MR|Test|E|Lead 55387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055388|155388|989898|1|9999055388|MR|Test|E|Lead 55388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055389|155389|989898|1|9999055389|MR|Test|E|Lead 55389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055390|155390|989898|1|9999055390|MR|Test|E|Lead 55390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055391|155391|989898|1|9999055391|MR|Test|E|Lead 55391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055392|155392|989898|1|9999055392|MR|Test|E|Lead 55392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055393|155393|989898|1|9999055393|MR|Test|E|Lead 55393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055394|155394|989898|1|9999055394|MR|Test|E|Lead 55394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055395|155395|989898|1|9999055395|MR|Test|E|Lead 55395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055396|155396|989898|1|9999055396|MR|Test|E|Lead 55396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055397|155397|989898|1|9999055397|MR|Test|E|Lead 55397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055398|155398|989898|1|9999055398|MR|Test|E|Lead 55398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055399|155399|989898|1|9999055399|MR|Test|E|Lead 55399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055400|155400|989898|1|9999055400|MR|Test|E|Lead 55400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055401|155401|989898|1|9999055401|MR|Test|E|Lead 55401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055402|155402|989898|1|9999055402|MR|Test|E|Lead 55402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055403|155403|989898|1|9999055403|MR|Test|E|Lead 55403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055404|155404|989898|1|9999055404|MR|Test|E|Lead 55404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055405|155405|989898|1|9999055405|MR|Test|E|Lead 55405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055406|155406|989898|1|9999055406|MR|Test|E|Lead 55406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055407|155407|989898|1|9999055407|MR|Test|E|Lead 55407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055408|155408|989898|1|9999055408|MR|Test|E|Lead 55408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055409|155409|989898|1|9999055409|MR|Test|E|Lead 55409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055410|155410|989898|1|9999055410|MR|Test|E|Lead 55410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055411|155411|989898|1|9999055411|MR|Test|E|Lead 55411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055412|155412|989898|1|9999055412|MR|Test|E|Lead 55412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055413|155413|989898|1|9999055413|MR|Test|E|Lead 55413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055414|155414|989898|1|9999055414|MR|Test|E|Lead 55414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055415|155415|989898|1|9999055415|MR|Test|E|Lead 55415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055416|155416|989898|1|9999055416|MR|Test|E|Lead 55416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055417|155417|989898|1|9999055417|MR|Test|E|Lead 55417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055418|155418|989898|1|9999055418|MR|Test|E|Lead 55418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055419|155419|989898|1|9999055419|MR|Test|E|Lead 55419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055420|155420|989898|1|9999055420|MR|Test|E|Lead 55420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055421|155421|989898|1|9999055421|MR|Test|E|Lead 55421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055422|155422|989898|1|9999055422|MR|Test|E|Lead 55422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055423|155423|989898|1|9999055423|MR|Test|E|Lead 55423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055424|155424|989898|1|9999055424|MR|Test|E|Lead 55424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055425|155425|989898|1|9999055425|MR|Test|E|Lead 55425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055426|155426|989898|1|9999055426|MR|Test|E|Lead 55426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055427|155427|989898|1|9999055427|MR|Test|E|Lead 55427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055428|155428|989898|1|9999055428|MR|Test|E|Lead 55428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055429|155429|989898|1|9999055429|MR|Test|E|Lead 55429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055430|155430|989898|1|9999055430|MR|Test|E|Lead 55430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055431|155431|989898|1|9999055431|MR|Test|E|Lead 55431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055432|155432|989898|1|9999055432|MR|Test|E|Lead 55432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055433|155433|989898|1|9999055433|MR|Test|E|Lead 55433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055434|155434|989898|1|9999055434|MR|Test|E|Lead 55434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055435|155435|989898|1|9999055435|MR|Test|E|Lead 55435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055436|155436|989898|1|9999055436|MR|Test|E|Lead 55436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055437|155437|989898|1|9999055437|MR|Test|E|Lead 55437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055438|155438|989898|1|9999055438|MR|Test|E|Lead 55438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055439|155439|989898|1|9999055439|MR|Test|E|Lead 55439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055440|155440|989898|1|9999055440|MR|Test|E|Lead 55440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055441|155441|989898|1|9999055441|MR|Test|E|Lead 55441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055442|155442|989898|1|9999055442|MR|Test|E|Lead 55442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055443|155443|989898|1|9999055443|MR|Test|E|Lead 55443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055444|155444|989898|1|9999055444|MR|Test|E|Lead 55444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055445|155445|989898|1|9999055445|MR|Test|E|Lead 55445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055446|155446|989898|1|9999055446|MR|Test|E|Lead 55446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055447|155447|989898|1|9999055447|MR|Test|E|Lead 55447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055448|155448|989898|1|9999055448|MR|Test|E|Lead 55448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055449|155449|989898|1|9999055449|MR|Test|E|Lead 55449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055450|155450|989898|1|9999055450|MR|Test|E|Lead 55450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055451|155451|989898|1|9999055451|MR|Test|E|Lead 55451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055452|155452|989898|1|9999055452|MR|Test|E|Lead 55452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055453|155453|989898|1|9999055453|MR|Test|E|Lead 55453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055454|155454|989898|1|9999055454|MR|Test|E|Lead 55454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055455|155455|989898|1|9999055455|MR|Test|E|Lead 55455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055456|155456|989898|1|9999055456|MR|Test|E|Lead 55456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055457|155457|989898|1|9999055457|MR|Test|E|Lead 55457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055458|155458|989898|1|9999055458|MR|Test|E|Lead 55458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055459|155459|989898|1|9999055459|MR|Test|E|Lead 55459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055460|155460|989898|1|9999055460|MR|Test|E|Lead 55460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055461|155461|989898|1|9999055461|MR|Test|E|Lead 55461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055462|155462|989898|1|9999055462|MR|Test|E|Lead 55462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055463|155463|989898|1|9999055463|MR|Test|E|Lead 55463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055464|155464|989898|1|9999055464|MR|Test|E|Lead 55464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055465|155465|989898|1|9999055465|MR|Test|E|Lead 55465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055466|155466|989898|1|9999055466|MR|Test|E|Lead 55466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055467|155467|989898|1|9999055467|MR|Test|E|Lead 55467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055468|155468|989898|1|9999055468|MR|Test|E|Lead 55468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055469|155469|989898|1|9999055469|MR|Test|E|Lead 55469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055470|155470|989898|1|9999055470|MR|Test|E|Lead 55470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055471|155471|989898|1|9999055471|MR|Test|E|Lead 55471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055472|155472|989898|1|9999055472|MR|Test|E|Lead 55472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055473|155473|989898|1|9999055473|MR|Test|E|Lead 55473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055474|155474|989898|1|9999055474|MR|Test|E|Lead 55474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055475|155475|989898|1|9999055475|MR|Test|E|Lead 55475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055476|155476|989898|1|9999055476|MR|Test|E|Lead 55476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055477|155477|989898|1|9999055477|MR|Test|E|Lead 55477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055478|155478|989898|1|9999055478|MR|Test|E|Lead 55478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055479|155479|989898|1|9999055479|MR|Test|E|Lead 55479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055480|155480|989898|1|9999055480|MR|Test|E|Lead 55480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055481|155481|989898|1|9999055481|MR|Test|E|Lead 55481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055482|155482|989898|1|9999055482|MR|Test|E|Lead 55482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055483|155483|989898|1|9999055483|MR|Test|E|Lead 55483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055484|155484|989898|1|9999055484|MR|Test|E|Lead 55484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055485|155485|989898|1|9999055485|MR|Test|E|Lead 55485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055486|155486|989898|1|9999055486|MR|Test|E|Lead 55486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055487|155487|989898|1|9999055487|MR|Test|E|Lead 55487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055488|155488|989898|1|9999055488|MR|Test|E|Lead 55488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055489|155489|989898|1|9999055489|MR|Test|E|Lead 55489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055490|155490|989898|1|9999055490|MR|Test|E|Lead 55490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055491|155491|989898|1|9999055491|MR|Test|E|Lead 55491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055492|155492|989898|1|9999055492|MR|Test|E|Lead 55492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055493|155493|989898|1|9999055493|MR|Test|E|Lead 55493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055494|155494|989898|1|9999055494|MR|Test|E|Lead 55494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055495|155495|989898|1|9999055495|MR|Test|E|Lead 55495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055496|155496|989898|1|9999055496|MR|Test|E|Lead 55496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055497|155497|989898|1|9999055497|MR|Test|E|Lead 55497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055498|155498|989898|1|9999055498|MR|Test|E|Lead 55498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055499|155499|989898|1|9999055499|MR|Test|E|Lead 55499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055500|155500|989898|1|9999055500|MR|Test|E|Lead 55500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055501|155501|989898|1|9999055501|MR|Test|E|Lead 55501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055502|155502|989898|1|9999055502|MR|Test|E|Lead 55502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055503|155503|989898|1|9999055503|MR|Test|E|Lead 55503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055504|155504|989898|1|9999055504|MR|Test|E|Lead 55504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055505|155505|989898|1|9999055505|MR|Test|E|Lead 55505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055506|155506|989898|1|9999055506|MR|Test|E|Lead 55506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055507|155507|989898|1|9999055507|MR|Test|E|Lead 55507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055508|155508|989898|1|9999055508|MR|Test|E|Lead 55508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055509|155509|989898|1|9999055509|MR|Test|E|Lead 55509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055510|155510|989898|1|9999055510|MR|Test|E|Lead 55510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055511|155511|989898|1|9999055511|MR|Test|E|Lead 55511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055512|155512|989898|1|9999055512|MR|Test|E|Lead 55512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055513|155513|989898|1|9999055513|MR|Test|E|Lead 55513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055514|155514|989898|1|9999055514|MR|Test|E|Lead 55514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055515|155515|989898|1|9999055515|MR|Test|E|Lead 55515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055516|155516|989898|1|9999055516|MR|Test|E|Lead 55516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055517|155517|989898|1|9999055517|MR|Test|E|Lead 55517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055518|155518|989898|1|9999055518|MR|Test|E|Lead 55518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055519|155519|989898|1|9999055519|MR|Test|E|Lead 55519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055520|155520|989898|1|9999055520|MR|Test|E|Lead 55520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055521|155521|989898|1|9999055521|MR|Test|E|Lead 55521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055522|155522|989898|1|9999055522|MR|Test|E|Lead 55522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055523|155523|989898|1|9999055523|MR|Test|E|Lead 55523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055524|155524|989898|1|9999055524|MR|Test|E|Lead 55524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055525|155525|989898|1|9999055525|MR|Test|E|Lead 55525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055526|155526|989898|1|9999055526|MR|Test|E|Lead 55526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055527|155527|989898|1|9999055527|MR|Test|E|Lead 55527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055528|155528|989898|1|9999055528|MR|Test|E|Lead 55528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055529|155529|989898|1|9999055529|MR|Test|E|Lead 55529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055530|155530|989898|1|9999055530|MR|Test|E|Lead 55530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055531|155531|989898|1|9999055531|MR|Test|E|Lead 55531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055532|155532|989898|1|9999055532|MR|Test|E|Lead 55532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055533|155533|989898|1|9999055533|MR|Test|E|Lead 55533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055534|155534|989898|1|9999055534|MR|Test|E|Lead 55534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055535|155535|989898|1|9999055535|MR|Test|E|Lead 55535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055536|155536|989898|1|9999055536|MR|Test|E|Lead 55536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055537|155537|989898|1|9999055537|MR|Test|E|Lead 55537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055538|155538|989898|1|9999055538|MR|Test|E|Lead 55538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055539|155539|989898|1|9999055539|MR|Test|E|Lead 55539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055540|155540|989898|1|9999055540|MR|Test|E|Lead 55540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055541|155541|989898|1|9999055541|MR|Test|E|Lead 55541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055542|155542|989898|1|9999055542|MR|Test|E|Lead 55542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055543|155543|989898|1|9999055543|MR|Test|E|Lead 55543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055544|155544|989898|1|9999055544|MR|Test|E|Lead 55544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055545|155545|989898|1|9999055545|MR|Test|E|Lead 55545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055546|155546|989898|1|9999055546|MR|Test|E|Lead 55546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055547|155547|989898|1|9999055547|MR|Test|E|Lead 55547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055548|155548|989898|1|9999055548|MR|Test|E|Lead 55548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055549|155549|989898|1|9999055549|MR|Test|E|Lead 55549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055550|155550|989898|1|9999055550|MR|Test|E|Lead 55550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055551|155551|989898|1|9999055551|MR|Test|E|Lead 55551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055552|155552|989898|1|9999055552|MR|Test|E|Lead 55552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055553|155553|989898|1|9999055553|MR|Test|E|Lead 55553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055554|155554|989898|1|9999055554|MR|Test|E|Lead 55554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055555|155555|989898|1|9999055555|MR|Test|E|Lead 55555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055556|155556|989898|1|9999055556|MR|Test|E|Lead 55556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055557|155557|989898|1|9999055557|MR|Test|E|Lead 55557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055558|155558|989898|1|9999055558|MR|Test|E|Lead 55558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055559|155559|989898|1|9999055559|MR|Test|E|Lead 55559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055560|155560|989898|1|9999055560|MR|Test|E|Lead 55560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055561|155561|989898|1|9999055561|MR|Test|E|Lead 55561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055562|155562|989898|1|9999055562|MR|Test|E|Lead 55562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055563|155563|989898|1|9999055563|MR|Test|E|Lead 55563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055564|155564|989898|1|9999055564|MR|Test|E|Lead 55564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055565|155565|989898|1|9999055565|MR|Test|E|Lead 55565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055566|155566|989898|1|9999055566|MR|Test|E|Lead 55566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055567|155567|989898|1|9999055567|MR|Test|E|Lead 55567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055568|155568|989898|1|9999055568|MR|Test|E|Lead 55568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055569|155569|989898|1|9999055569|MR|Test|E|Lead 55569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055570|155570|989898|1|9999055570|MR|Test|E|Lead 55570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055571|155571|989898|1|9999055571|MR|Test|E|Lead 55571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055572|155572|989898|1|9999055572|MR|Test|E|Lead 55572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055573|155573|989898|1|9999055573|MR|Test|E|Lead 55573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055574|155574|989898|1|9999055574|MR|Test|E|Lead 55574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055575|155575|989898|1|9999055575|MR|Test|E|Lead 55575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055576|155576|989898|1|9999055576|MR|Test|E|Lead 55576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055577|155577|989898|1|9999055577|MR|Test|E|Lead 55577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055578|155578|989898|1|9999055578|MR|Test|E|Lead 55578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055579|155579|989898|1|9999055579|MR|Test|E|Lead 55579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055580|155580|989898|1|9999055580|MR|Test|E|Lead 55580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055581|155581|989898|1|9999055581|MR|Test|E|Lead 55581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055582|155582|989898|1|9999055582|MR|Test|E|Lead 55582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055583|155583|989898|1|9999055583|MR|Test|E|Lead 55583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055584|155584|989898|1|9999055584|MR|Test|E|Lead 55584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055585|155585|989898|1|9999055585|MR|Test|E|Lead 55585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055586|155586|989898|1|9999055586|MR|Test|E|Lead 55586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055587|155587|989898|1|9999055587|MR|Test|E|Lead 55587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055588|155588|989898|1|9999055588|MR|Test|E|Lead 55588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055589|155589|989898|1|9999055589|MR|Test|E|Lead 55589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055590|155590|989898|1|9999055590|MR|Test|E|Lead 55590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055591|155591|989898|1|9999055591|MR|Test|E|Lead 55591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055592|155592|989898|1|9999055592|MR|Test|E|Lead 55592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055593|155593|989898|1|9999055593|MR|Test|E|Lead 55593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055594|155594|989898|1|9999055594|MR|Test|E|Lead 55594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055595|155595|989898|1|9999055595|MR|Test|E|Lead 55595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055596|155596|989898|1|9999055596|MR|Test|E|Lead 55596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055597|155597|989898|1|9999055597|MR|Test|E|Lead 55597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055598|155598|989898|1|9999055598|MR|Test|E|Lead 55598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055599|155599|989898|1|9999055599|MR|Test|E|Lead 55599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055600|155600|989898|1|9999055600|MR|Test|E|Lead 55600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055601|155601|989898|1|9999055601|MR|Test|E|Lead 55601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055602|155602|989898|1|9999055602|MR|Test|E|Lead 55602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055603|155603|989898|1|9999055603|MR|Test|E|Lead 55603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055604|155604|989898|1|9999055604|MR|Test|E|Lead 55604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055605|155605|989898|1|9999055605|MR|Test|E|Lead 55605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055606|155606|989898|1|9999055606|MR|Test|E|Lead 55606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055607|155607|989898|1|9999055607|MR|Test|E|Lead 55607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055608|155608|989898|1|9999055608|MR|Test|E|Lead 55608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055609|155609|989898|1|9999055609|MR|Test|E|Lead 55609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055610|155610|989898|1|9999055610|MR|Test|E|Lead 55610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055611|155611|989898|1|9999055611|MR|Test|E|Lead 55611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055612|155612|989898|1|9999055612|MR|Test|E|Lead 55612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055613|155613|989898|1|9999055613|MR|Test|E|Lead 55613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055614|155614|989898|1|9999055614|MR|Test|E|Lead 55614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055615|155615|989898|1|9999055615|MR|Test|E|Lead 55615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055616|155616|989898|1|9999055616|MR|Test|E|Lead 55616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055617|155617|989898|1|9999055617|MR|Test|E|Lead 55617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055618|155618|989898|1|9999055618|MR|Test|E|Lead 55618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055619|155619|989898|1|9999055619|MR|Test|E|Lead 55619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055620|155620|989898|1|9999055620|MR|Test|E|Lead 55620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055621|155621|989898|1|9999055621|MR|Test|E|Lead 55621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055622|155622|989898|1|9999055622|MR|Test|E|Lead 55622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055623|155623|989898|1|9999055623|MR|Test|E|Lead 55623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055624|155624|989898|1|9999055624|MR|Test|E|Lead 55624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055625|155625|989898|1|9999055625|MR|Test|E|Lead 55625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055626|155626|989898|1|9999055626|MR|Test|E|Lead 55626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055627|155627|989898|1|9999055627|MR|Test|E|Lead 55627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055628|155628|989898|1|9999055628|MR|Test|E|Lead 55628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055629|155629|989898|1|9999055629|MR|Test|E|Lead 55629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055630|155630|989898|1|9999055630|MR|Test|E|Lead 55630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055631|155631|989898|1|9999055631|MR|Test|E|Lead 55631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055632|155632|989898|1|9999055632|MR|Test|E|Lead 55632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055633|155633|989898|1|9999055633|MR|Test|E|Lead 55633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055634|155634|989898|1|9999055634|MR|Test|E|Lead 55634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055635|155635|989898|1|9999055635|MR|Test|E|Lead 55635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055636|155636|989898|1|9999055636|MR|Test|E|Lead 55636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055637|155637|989898|1|9999055637|MR|Test|E|Lead 55637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055638|155638|989898|1|9999055638|MR|Test|E|Lead 55638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055639|155639|989898|1|9999055639|MR|Test|E|Lead 55639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055640|155640|989898|1|9999055640|MR|Test|E|Lead 55640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055641|155641|989898|1|9999055641|MR|Test|E|Lead 55641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055642|155642|989898|1|9999055642|MR|Test|E|Lead 55642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055643|155643|989898|1|9999055643|MR|Test|E|Lead 55643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055644|155644|989898|1|9999055644|MR|Test|E|Lead 55644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055645|155645|989898|1|9999055645|MR|Test|E|Lead 55645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055646|155646|989898|1|9999055646|MR|Test|E|Lead 55646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055647|155647|989898|1|9999055647|MR|Test|E|Lead 55647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055648|155648|989898|1|9999055648|MR|Test|E|Lead 55648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055649|155649|989898|1|9999055649|MR|Test|E|Lead 55649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055650|155650|989898|1|9999055650|MR|Test|E|Lead 55650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055651|155651|989898|1|9999055651|MR|Test|E|Lead 55651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055652|155652|989898|1|9999055652|MR|Test|E|Lead 55652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055653|155653|989898|1|9999055653|MR|Test|E|Lead 55653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055654|155654|989898|1|9999055654|MR|Test|E|Lead 55654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055655|155655|989898|1|9999055655|MR|Test|E|Lead 55655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055656|155656|989898|1|9999055656|MR|Test|E|Lead 55656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055657|155657|989898|1|9999055657|MR|Test|E|Lead 55657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055658|155658|989898|1|9999055658|MR|Test|E|Lead 55658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055659|155659|989898|1|9999055659|MR|Test|E|Lead 55659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055660|155660|989898|1|9999055660|MR|Test|E|Lead 55660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055661|155661|989898|1|9999055661|MR|Test|E|Lead 55661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055662|155662|989898|1|9999055662|MR|Test|E|Lead 55662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055663|155663|989898|1|9999055663|MR|Test|E|Lead 55663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055664|155664|989898|1|9999055664|MR|Test|E|Lead 55664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055665|155665|989898|1|9999055665|MR|Test|E|Lead 55665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055666|155666|989898|1|9999055666|MR|Test|E|Lead 55666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055667|155667|989898|1|9999055667|MR|Test|E|Lead 55667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055668|155668|989898|1|9999055668|MR|Test|E|Lead 55668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055669|155669|989898|1|9999055669|MR|Test|E|Lead 55669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055670|155670|989898|1|9999055670|MR|Test|E|Lead 55670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055671|155671|989898|1|9999055671|MR|Test|E|Lead 55671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055672|155672|989898|1|9999055672|MR|Test|E|Lead 55672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055673|155673|989898|1|9999055673|MR|Test|E|Lead 55673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055674|155674|989898|1|9999055674|MR|Test|E|Lead 55674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055675|155675|989898|1|9999055675|MR|Test|E|Lead 55675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055676|155676|989898|1|9999055676|MR|Test|E|Lead 55676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055677|155677|989898|1|9999055677|MR|Test|E|Lead 55677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055678|155678|989898|1|9999055678|MR|Test|E|Lead 55678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055679|155679|989898|1|9999055679|MR|Test|E|Lead 55679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055680|155680|989898|1|9999055680|MR|Test|E|Lead 55680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055681|155681|989898|1|9999055681|MR|Test|E|Lead 55681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055682|155682|989898|1|9999055682|MR|Test|E|Lead 55682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055683|155683|989898|1|9999055683|MR|Test|E|Lead 55683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055684|155684|989898|1|9999055684|MR|Test|E|Lead 55684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055685|155685|989898|1|9999055685|MR|Test|E|Lead 55685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055686|155686|989898|1|9999055686|MR|Test|E|Lead 55686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055687|155687|989898|1|9999055687|MR|Test|E|Lead 55687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055688|155688|989898|1|9999055688|MR|Test|E|Lead 55688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055689|155689|989898|1|9999055689|MR|Test|E|Lead 55689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055690|155690|989898|1|9999055690|MR|Test|E|Lead 55690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055691|155691|989898|1|9999055691|MR|Test|E|Lead 55691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055692|155692|989898|1|9999055692|MR|Test|E|Lead 55692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055693|155693|989898|1|9999055693|MR|Test|E|Lead 55693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055694|155694|989898|1|9999055694|MR|Test|E|Lead 55694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055695|155695|989898|1|9999055695|MR|Test|E|Lead 55695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055696|155696|989898|1|9999055696|MR|Test|E|Lead 55696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055697|155697|989898|1|9999055697|MR|Test|E|Lead 55697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055698|155698|989898|1|9999055698|MR|Test|E|Lead 55698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055699|155699|989898|1|9999055699|MR|Test|E|Lead 55699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055700|155700|989898|1|9999055700|MR|Test|E|Lead 55700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055701|155701|989898|1|9999055701|MR|Test|E|Lead 55701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055702|155702|989898|1|9999055702|MR|Test|E|Lead 55702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055703|155703|989898|1|9999055703|MR|Test|E|Lead 55703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055704|155704|989898|1|9999055704|MR|Test|E|Lead 55704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055705|155705|989898|1|9999055705|MR|Test|E|Lead 55705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055706|155706|989898|1|9999055706|MR|Test|E|Lead 55706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055707|155707|989898|1|9999055707|MR|Test|E|Lead 55707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055708|155708|989898|1|9999055708|MR|Test|E|Lead 55708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055709|155709|989898|1|9999055709|MR|Test|E|Lead 55709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055710|155710|989898|1|9999055710|MR|Test|E|Lead 55710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055711|155711|989898|1|9999055711|MR|Test|E|Lead 55711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055712|155712|989898|1|9999055712|MR|Test|E|Lead 55712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055713|155713|989898|1|9999055713|MR|Test|E|Lead 55713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055714|155714|989898|1|9999055714|MR|Test|E|Lead 55714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055715|155715|989898|1|9999055715|MR|Test|E|Lead 55715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055716|155716|989898|1|9999055716|MR|Test|E|Lead 55716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055717|155717|989898|1|9999055717|MR|Test|E|Lead 55717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055718|155718|989898|1|9999055718|MR|Test|E|Lead 55718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055719|155719|989898|1|9999055719|MR|Test|E|Lead 55719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055720|155720|989898|1|9999055720|MR|Test|E|Lead 55720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055721|155721|989898|1|9999055721|MR|Test|E|Lead 55721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055722|155722|989898|1|9999055722|MR|Test|E|Lead 55722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055723|155723|989898|1|9999055723|MR|Test|E|Lead 55723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055724|155724|989898|1|9999055724|MR|Test|E|Lead 55724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055725|155725|989898|1|9999055725|MR|Test|E|Lead 55725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055726|155726|989898|1|9999055726|MR|Test|E|Lead 55726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055727|155727|989898|1|9999055727|MR|Test|E|Lead 55727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055728|155728|989898|1|9999055728|MR|Test|E|Lead 55728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055729|155729|989898|1|9999055729|MR|Test|E|Lead 55729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055730|155730|989898|1|9999055730|MR|Test|E|Lead 55730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055731|155731|989898|1|9999055731|MR|Test|E|Lead 55731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055732|155732|989898|1|9999055732|MR|Test|E|Lead 55732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055733|155733|989898|1|9999055733|MR|Test|E|Lead 55733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055734|155734|989898|1|9999055734|MR|Test|E|Lead 55734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055735|155735|989898|1|9999055735|MR|Test|E|Lead 55735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055736|155736|989898|1|9999055736|MR|Test|E|Lead 55736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055737|155737|989898|1|9999055737|MR|Test|E|Lead 55737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055738|155738|989898|1|9999055738|MR|Test|E|Lead 55738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055739|155739|989898|1|9999055739|MR|Test|E|Lead 55739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055740|155740|989898|1|9999055740|MR|Test|E|Lead 55740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055741|155741|989898|1|9999055741|MR|Test|E|Lead 55741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055742|155742|989898|1|9999055742|MR|Test|E|Lead 55742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055743|155743|989898|1|9999055743|MR|Test|E|Lead 55743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055744|155744|989898|1|9999055744|MR|Test|E|Lead 55744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055745|155745|989898|1|9999055745|MR|Test|E|Lead 55745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055746|155746|989898|1|9999055746|MR|Test|E|Lead 55746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055747|155747|989898|1|9999055747|MR|Test|E|Lead 55747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055748|155748|989898|1|9999055748|MR|Test|E|Lead 55748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055749|155749|989898|1|9999055749|MR|Test|E|Lead 55749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055750|155750|989898|1|9999055750|MR|Test|E|Lead 55750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055751|155751|989898|1|9999055751|MR|Test|E|Lead 55751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055752|155752|989898|1|9999055752|MR|Test|E|Lead 55752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055753|155753|989898|1|9999055753|MR|Test|E|Lead 55753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055754|155754|989898|1|9999055754|MR|Test|E|Lead 55754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055755|155755|989898|1|9999055755|MR|Test|E|Lead 55755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055756|155756|989898|1|9999055756|MR|Test|E|Lead 55756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055757|155757|989898|1|9999055757|MR|Test|E|Lead 55757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055758|155758|989898|1|9999055758|MR|Test|E|Lead 55758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055759|155759|989898|1|9999055759|MR|Test|E|Lead 55759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055760|155760|989898|1|9999055760|MR|Test|E|Lead 55760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055761|155761|989898|1|9999055761|MR|Test|E|Lead 55761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055762|155762|989898|1|9999055762|MR|Test|E|Lead 55762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055763|155763|989898|1|9999055763|MR|Test|E|Lead 55763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055764|155764|989898|1|9999055764|MR|Test|E|Lead 55764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055765|155765|989898|1|9999055765|MR|Test|E|Lead 55765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055766|155766|989898|1|9999055766|MR|Test|E|Lead 55766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055767|155767|989898|1|9999055767|MR|Test|E|Lead 55767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055768|155768|989898|1|9999055768|MR|Test|E|Lead 55768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055769|155769|989898|1|9999055769|MR|Test|E|Lead 55769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055770|155770|989898|1|9999055770|MR|Test|E|Lead 55770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055771|155771|989898|1|9999055771|MR|Test|E|Lead 55771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055772|155772|989898|1|9999055772|MR|Test|E|Lead 55772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055773|155773|989898|1|9999055773|MR|Test|E|Lead 55773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055774|155774|989898|1|9999055774|MR|Test|E|Lead 55774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055775|155775|989898|1|9999055775|MR|Test|E|Lead 55775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055776|155776|989898|1|9999055776|MR|Test|E|Lead 55776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055777|155777|989898|1|9999055777|MR|Test|E|Lead 55777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055778|155778|989898|1|9999055778|MR|Test|E|Lead 55778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055779|155779|989898|1|9999055779|MR|Test|E|Lead 55779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055780|155780|989898|1|9999055780|MR|Test|E|Lead 55780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055781|155781|989898|1|9999055781|MR|Test|E|Lead 55781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055782|155782|989898|1|9999055782|MR|Test|E|Lead 55782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055783|155783|989898|1|9999055783|MR|Test|E|Lead 55783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055784|155784|989898|1|9999055784|MR|Test|E|Lead 55784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055785|155785|989898|1|9999055785|MR|Test|E|Lead 55785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055786|155786|989898|1|9999055786|MR|Test|E|Lead 55786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055787|155787|989898|1|9999055787|MR|Test|E|Lead 55787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055788|155788|989898|1|9999055788|MR|Test|E|Lead 55788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055789|155789|989898|1|9999055789|MR|Test|E|Lead 55789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055790|155790|989898|1|9999055790|MR|Test|E|Lead 55790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055791|155791|989898|1|9999055791|MR|Test|E|Lead 55791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055792|155792|989898|1|9999055792|MR|Test|E|Lead 55792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055793|155793|989898|1|9999055793|MR|Test|E|Lead 55793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055794|155794|989898|1|9999055794|MR|Test|E|Lead 55794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055795|155795|989898|1|9999055795|MR|Test|E|Lead 55795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055796|155796|989898|1|9999055796|MR|Test|E|Lead 55796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055797|155797|989898|1|9999055797|MR|Test|E|Lead 55797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055798|155798|989898|1|9999055798|MR|Test|E|Lead 55798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055799|155799|989898|1|9999055799|MR|Test|E|Lead 55799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055800|155800|989898|1|9999055800|MR|Test|E|Lead 55800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055801|155801|989898|1|9999055801|MR|Test|E|Lead 55801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055802|155802|989898|1|9999055802|MR|Test|E|Lead 55802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055803|155803|989898|1|9999055803|MR|Test|E|Lead 55803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055804|155804|989898|1|9999055804|MR|Test|E|Lead 55804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055805|155805|989898|1|9999055805|MR|Test|E|Lead 55805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055806|155806|989898|1|9999055806|MR|Test|E|Lead 55806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055807|155807|989898|1|9999055807|MR|Test|E|Lead 55807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055808|155808|989898|1|9999055808|MR|Test|E|Lead 55808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055809|155809|989898|1|9999055809|MR|Test|E|Lead 55809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055810|155810|989898|1|9999055810|MR|Test|E|Lead 55810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055811|155811|989898|1|9999055811|MR|Test|E|Lead 55811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055812|155812|989898|1|9999055812|MR|Test|E|Lead 55812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055813|155813|989898|1|9999055813|MR|Test|E|Lead 55813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055814|155814|989898|1|9999055814|MR|Test|E|Lead 55814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055815|155815|989898|1|9999055815|MR|Test|E|Lead 55815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055816|155816|989898|1|9999055816|MR|Test|E|Lead 55816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055817|155817|989898|1|9999055817|MR|Test|E|Lead 55817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055818|155818|989898|1|9999055818|MR|Test|E|Lead 55818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055819|155819|989898|1|9999055819|MR|Test|E|Lead 55819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055820|155820|989898|1|9999055820|MR|Test|E|Lead 55820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055821|155821|989898|1|9999055821|MR|Test|E|Lead 55821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055822|155822|989898|1|9999055822|MR|Test|E|Lead 55822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055823|155823|989898|1|9999055823|MR|Test|E|Lead 55823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055824|155824|989898|1|9999055824|MR|Test|E|Lead 55824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055825|155825|989898|1|9999055825|MR|Test|E|Lead 55825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055826|155826|989898|1|9999055826|MR|Test|E|Lead 55826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055827|155827|989898|1|9999055827|MR|Test|E|Lead 55827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055828|155828|989898|1|9999055828|MR|Test|E|Lead 55828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055829|155829|989898|1|9999055829|MR|Test|E|Lead 55829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055830|155830|989898|1|9999055830|MR|Test|E|Lead 55830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055831|155831|989898|1|9999055831|MR|Test|E|Lead 55831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055832|155832|989898|1|9999055832|MR|Test|E|Lead 55832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055833|155833|989898|1|9999055833|MR|Test|E|Lead 55833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055834|155834|989898|1|9999055834|MR|Test|E|Lead 55834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055835|155835|989898|1|9999055835|MR|Test|E|Lead 55835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055836|155836|989898|1|9999055836|MR|Test|E|Lead 55836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055837|155837|989898|1|9999055837|MR|Test|E|Lead 55837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055838|155838|989898|1|9999055838|MR|Test|E|Lead 55838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055839|155839|989898|1|9999055839|MR|Test|E|Lead 55839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055840|155840|989898|1|9999055840|MR|Test|E|Lead 55840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055841|155841|989898|1|9999055841|MR|Test|E|Lead 55841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055842|155842|989898|1|9999055842|MR|Test|E|Lead 55842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055843|155843|989898|1|9999055843|MR|Test|E|Lead 55843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055844|155844|989898|1|9999055844|MR|Test|E|Lead 55844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055845|155845|989898|1|9999055845|MR|Test|E|Lead 55845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055846|155846|989898|1|9999055846|MR|Test|E|Lead 55846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055847|155847|989898|1|9999055847|MR|Test|E|Lead 55847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055848|155848|989898|1|9999055848|MR|Test|E|Lead 55848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055849|155849|989898|1|9999055849|MR|Test|E|Lead 55849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055850|155850|989898|1|9999055850|MR|Test|E|Lead 55850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055851|155851|989898|1|9999055851|MR|Test|E|Lead 55851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055852|155852|989898|1|9999055852|MR|Test|E|Lead 55852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055853|155853|989898|1|9999055853|MR|Test|E|Lead 55853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055854|155854|989898|1|9999055854|MR|Test|E|Lead 55854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055855|155855|989898|1|9999055855|MR|Test|E|Lead 55855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055856|155856|989898|1|9999055856|MR|Test|E|Lead 55856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055857|155857|989898|1|9999055857|MR|Test|E|Lead 55857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055858|155858|989898|1|9999055858|MR|Test|E|Lead 55858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055859|155859|989898|1|9999055859|MR|Test|E|Lead 55859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055860|155860|989898|1|9999055860|MR|Test|E|Lead 55860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055861|155861|989898|1|9999055861|MR|Test|E|Lead 55861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055862|155862|989898|1|9999055862|MR|Test|E|Lead 55862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055863|155863|989898|1|9999055863|MR|Test|E|Lead 55863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055864|155864|989898|1|9999055864|MR|Test|E|Lead 55864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055865|155865|989898|1|9999055865|MR|Test|E|Lead 55865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055866|155866|989898|1|9999055866|MR|Test|E|Lead 55866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055867|155867|989898|1|9999055867|MR|Test|E|Lead 55867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055868|155868|989898|1|9999055868|MR|Test|E|Lead 55868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055869|155869|989898|1|9999055869|MR|Test|E|Lead 55869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055870|155870|989898|1|9999055870|MR|Test|E|Lead 55870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055871|155871|989898|1|9999055871|MR|Test|E|Lead 55871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055872|155872|989898|1|9999055872|MR|Test|E|Lead 55872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055873|155873|989898|1|9999055873|MR|Test|E|Lead 55873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055874|155874|989898|1|9999055874|MR|Test|E|Lead 55874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055875|155875|989898|1|9999055875|MR|Test|E|Lead 55875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055876|155876|989898|1|9999055876|MR|Test|E|Lead 55876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055877|155877|989898|1|9999055877|MR|Test|E|Lead 55877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055878|155878|989898|1|9999055878|MR|Test|E|Lead 55878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055879|155879|989898|1|9999055879|MR|Test|E|Lead 55879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055880|155880|989898|1|9999055880|MR|Test|E|Lead 55880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055881|155881|989898|1|9999055881|MR|Test|E|Lead 55881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055882|155882|989898|1|9999055882|MR|Test|E|Lead 55882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055883|155883|989898|1|9999055883|MR|Test|E|Lead 55883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055884|155884|989898|1|9999055884|MR|Test|E|Lead 55884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055885|155885|989898|1|9999055885|MR|Test|E|Lead 55885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055886|155886|989898|1|9999055886|MR|Test|E|Lead 55886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055887|155887|989898|1|9999055887|MR|Test|E|Lead 55887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055888|155888|989898|1|9999055888|MR|Test|E|Lead 55888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055889|155889|989898|1|9999055889|MR|Test|E|Lead 55889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055890|155890|989898|1|9999055890|MR|Test|E|Lead 55890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055891|155891|989898|1|9999055891|MR|Test|E|Lead 55891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055892|155892|989898|1|9999055892|MR|Test|E|Lead 55892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055893|155893|989898|1|9999055893|MR|Test|E|Lead 55893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055894|155894|989898|1|9999055894|MR|Test|E|Lead 55894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055895|155895|989898|1|9999055895|MR|Test|E|Lead 55895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055896|155896|989898|1|9999055896|MR|Test|E|Lead 55896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055897|155897|989898|1|9999055897|MR|Test|E|Lead 55897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055898|155898|989898|1|9999055898|MR|Test|E|Lead 55898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055899|155899|989898|1|9999055899|MR|Test|E|Lead 55899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055900|155900|989898|1|9999055900|MR|Test|E|Lead 55900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055901|155901|989898|1|9999055901|MR|Test|E|Lead 55901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055902|155902|989898|1|9999055902|MR|Test|E|Lead 55902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055903|155903|989898|1|9999055903|MR|Test|E|Lead 55903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055904|155904|989898|1|9999055904|MR|Test|E|Lead 55904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055905|155905|989898|1|9999055905|MR|Test|E|Lead 55905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055906|155906|989898|1|9999055906|MR|Test|E|Lead 55906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055907|155907|989898|1|9999055907|MR|Test|E|Lead 55907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055908|155908|989898|1|9999055908|MR|Test|E|Lead 55908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055909|155909|989898|1|9999055909|MR|Test|E|Lead 55909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055910|155910|989898|1|9999055910|MR|Test|E|Lead 55910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055911|155911|989898|1|9999055911|MR|Test|E|Lead 55911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055912|155912|989898|1|9999055912|MR|Test|E|Lead 55912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055913|155913|989898|1|9999055913|MR|Test|E|Lead 55913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055914|155914|989898|1|9999055914|MR|Test|E|Lead 55914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055915|155915|989898|1|9999055915|MR|Test|E|Lead 55915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055916|155916|989898|1|9999055916|MR|Test|E|Lead 55916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055917|155917|989898|1|9999055917|MR|Test|E|Lead 55917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055918|155918|989898|1|9999055918|MR|Test|E|Lead 55918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055919|155919|989898|1|9999055919|MR|Test|E|Lead 55919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055920|155920|989898|1|9999055920|MR|Test|E|Lead 55920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055921|155921|989898|1|9999055921|MR|Test|E|Lead 55921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055922|155922|989898|1|9999055922|MR|Test|E|Lead 55922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055923|155923|989898|1|9999055923|MR|Test|E|Lead 55923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055924|155924|989898|1|9999055924|MR|Test|E|Lead 55924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055925|155925|989898|1|9999055925|MR|Test|E|Lead 55925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055926|155926|989898|1|9999055926|MR|Test|E|Lead 55926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055927|155927|989898|1|9999055927|MR|Test|E|Lead 55927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055928|155928|989898|1|9999055928|MR|Test|E|Lead 55928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055929|155929|989898|1|9999055929|MR|Test|E|Lead 55929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055930|155930|989898|1|9999055930|MR|Test|E|Lead 55930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055931|155931|989898|1|9999055931|MR|Test|E|Lead 55931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055932|155932|989898|1|9999055932|MR|Test|E|Lead 55932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055933|155933|989898|1|9999055933|MR|Test|E|Lead 55933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055934|155934|989898|1|9999055934|MR|Test|E|Lead 55934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055935|155935|989898|1|9999055935|MR|Test|E|Lead 55935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055936|155936|989898|1|9999055936|MR|Test|E|Lead 55936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055937|155937|989898|1|9999055937|MR|Test|E|Lead 55937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055938|155938|989898|1|9999055938|MR|Test|E|Lead 55938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055939|155939|989898|1|9999055939|MR|Test|E|Lead 55939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055940|155940|989898|1|9999055940|MR|Test|E|Lead 55940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055941|155941|989898|1|9999055941|MR|Test|E|Lead 55941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055942|155942|989898|1|9999055942|MR|Test|E|Lead 55942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055943|155943|989898|1|9999055943|MR|Test|E|Lead 55943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055944|155944|989898|1|9999055944|MR|Test|E|Lead 55944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055945|155945|989898|1|9999055945|MR|Test|E|Lead 55945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055946|155946|989898|1|9999055946|MR|Test|E|Lead 55946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055947|155947|989898|1|9999055947|MR|Test|E|Lead 55947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055948|155948|989898|1|9999055948|MR|Test|E|Lead 55948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055949|155949|989898|1|9999055949|MR|Test|E|Lead 55949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055950|155950|989898|1|9999055950|MR|Test|E|Lead 55950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055951|155951|989898|1|9999055951|MR|Test|E|Lead 55951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055952|155952|989898|1|9999055952|MR|Test|E|Lead 55952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055953|155953|989898|1|9999055953|MR|Test|E|Lead 55953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055954|155954|989898|1|9999055954|MR|Test|E|Lead 55954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055955|155955|989898|1|9999055955|MR|Test|E|Lead 55955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055956|155956|989898|1|9999055956|MR|Test|E|Lead 55956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055957|155957|989898|1|9999055957|MR|Test|E|Lead 55957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055958|155958|989898|1|9999055958|MR|Test|E|Lead 55958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055959|155959|989898|1|9999055959|MR|Test|E|Lead 55959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055960|155960|989898|1|9999055960|MR|Test|E|Lead 55960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055961|155961|989898|1|9999055961|MR|Test|E|Lead 55961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055962|155962|989898|1|9999055962|MR|Test|E|Lead 55962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055963|155963|989898|1|9999055963|MR|Test|E|Lead 55963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055964|155964|989898|1|9999055964|MR|Test|E|Lead 55964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055965|155965|989898|1|9999055965|MR|Test|E|Lead 55965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055966|155966|989898|1|9999055966|MR|Test|E|Lead 55966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055967|155967|989898|1|9999055967|MR|Test|E|Lead 55967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055968|155968|989898|1|9999055968|MR|Test|E|Lead 55968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055969|155969|989898|1|9999055969|MR|Test|E|Lead 55969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055970|155970|989898|1|9999055970|MR|Test|E|Lead 55970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055971|155971|989898|1|9999055971|MR|Test|E|Lead 55971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055972|155972|989898|1|9999055972|MR|Test|E|Lead 55972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055973|155973|989898|1|9999055973|MR|Test|E|Lead 55973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055974|155974|989898|1|9999055974|MR|Test|E|Lead 55974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055975|155975|989898|1|9999055975|MR|Test|E|Lead 55975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055976|155976|989898|1|9999055976|MR|Test|E|Lead 55976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055977|155977|989898|1|9999055977|MR|Test|E|Lead 55977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055978|155978|989898|1|9999055978|MR|Test|E|Lead 55978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055979|155979|989898|1|9999055979|MR|Test|E|Lead 55979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055980|155980|989898|1|9999055980|MR|Test|E|Lead 55980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055981|155981|989898|1|9999055981|MR|Test|E|Lead 55981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055982|155982|989898|1|9999055982|MR|Test|E|Lead 55982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055983|155983|989898|1|9999055983|MR|Test|E|Lead 55983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055984|155984|989898|1|9999055984|MR|Test|E|Lead 55984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055985|155985|989898|1|9999055985|MR|Test|E|Lead 55985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055986|155986|989898|1|9999055986|MR|Test|E|Lead 55986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055987|155987|989898|1|9999055987|MR|Test|E|Lead 55987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055988|155988|989898|1|9999055988|MR|Test|E|Lead 55988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055989|155989|989898|1|9999055989|MR|Test|E|Lead 55989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055990|155990|989898|1|9999055990|MR|Test|E|Lead 55990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055991|155991|989898|1|9999055991|MR|Test|E|Lead 55991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055992|155992|989898|1|9999055992|MR|Test|E|Lead 55992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055993|155993|989898|1|9999055993|MR|Test|E|Lead 55993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055994|155994|989898|1|9999055994|MR|Test|E|Lead 55994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055995|155995|989898|1|9999055995|MR|Test|E|Lead 55995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055996|155996|989898|1|9999055996|MR|Test|E|Lead 55996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055997|155997|989898|1|9999055997|MR|Test|E|Lead 55997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055998|155998|989898|1|9999055998|MR|Test|E|Lead 55998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1055999|155999|989898|1|9999055999|MR|Test|E|Lead 55999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056000|156000|989898|1|9999056000|MR|Test|E|Lead 56000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056001|156001|989898|1|9999056001|MR|Test|E|Lead 56001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056002|156002|989898|1|9999056002|MR|Test|E|Lead 56002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056003|156003|989898|1|9999056003|MR|Test|E|Lead 56003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056004|156004|989898|1|9999056004|MR|Test|E|Lead 56004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056005|156005|989898|1|9999056005|MR|Test|E|Lead 56005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056006|156006|989898|1|9999056006|MR|Test|E|Lead 56006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056007|156007|989898|1|9999056007|MR|Test|E|Lead 56007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056008|156008|989898|1|9999056008|MR|Test|E|Lead 56008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056009|156009|989898|1|9999056009|MR|Test|E|Lead 56009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056010|156010|989898|1|9999056010|MR|Test|E|Lead 56010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056011|156011|989898|1|9999056011|MR|Test|E|Lead 56011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056012|156012|989898|1|9999056012|MR|Test|E|Lead 56012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056013|156013|989898|1|9999056013|MR|Test|E|Lead 56013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056014|156014|989898|1|9999056014|MR|Test|E|Lead 56014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056015|156015|989898|1|9999056015|MR|Test|E|Lead 56015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056016|156016|989898|1|9999056016|MR|Test|E|Lead 56016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056017|156017|989898|1|9999056017|MR|Test|E|Lead 56017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056018|156018|989898|1|9999056018|MR|Test|E|Lead 56018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056019|156019|989898|1|9999056019|MR|Test|E|Lead 56019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056020|156020|989898|1|9999056020|MR|Test|E|Lead 56020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056021|156021|989898|1|9999056021|MR|Test|E|Lead 56021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056022|156022|989898|1|9999056022|MR|Test|E|Lead 56022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056023|156023|989898|1|9999056023|MR|Test|E|Lead 56023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056024|156024|989898|1|9999056024|MR|Test|E|Lead 56024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056025|156025|989898|1|9999056025|MR|Test|E|Lead 56025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056026|156026|989898|1|9999056026|MR|Test|E|Lead 56026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056027|156027|989898|1|9999056027|MR|Test|E|Lead 56027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056028|156028|989898|1|9999056028|MR|Test|E|Lead 56028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056029|156029|989898|1|9999056029|MR|Test|E|Lead 56029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056030|156030|989898|1|9999056030|MR|Test|E|Lead 56030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056031|156031|989898|1|9999056031|MR|Test|E|Lead 56031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056032|156032|989898|1|9999056032|MR|Test|E|Lead 56032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056033|156033|989898|1|9999056033|MR|Test|E|Lead 56033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056034|156034|989898|1|9999056034|MR|Test|E|Lead 56034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056035|156035|989898|1|9999056035|MR|Test|E|Lead 56035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056036|156036|989898|1|9999056036|MR|Test|E|Lead 56036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056037|156037|989898|1|9999056037|MR|Test|E|Lead 56037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056038|156038|989898|1|9999056038|MR|Test|E|Lead 56038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056039|156039|989898|1|9999056039|MR|Test|E|Lead 56039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056040|156040|989898|1|9999056040|MR|Test|E|Lead 56040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056041|156041|989898|1|9999056041|MR|Test|E|Lead 56041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056042|156042|989898|1|9999056042|MR|Test|E|Lead 56042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056043|156043|989898|1|9999056043|MR|Test|E|Lead 56043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056044|156044|989898|1|9999056044|MR|Test|E|Lead 56044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056045|156045|989898|1|9999056045|MR|Test|E|Lead 56045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056046|156046|989898|1|9999056046|MR|Test|E|Lead 56046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056047|156047|989898|1|9999056047|MR|Test|E|Lead 56047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056048|156048|989898|1|9999056048|MR|Test|E|Lead 56048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056049|156049|989898|1|9999056049|MR|Test|E|Lead 56049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056050|156050|989898|1|9999056050|MR|Test|E|Lead 56050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056051|156051|989898|1|9999056051|MR|Test|E|Lead 56051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056052|156052|989898|1|9999056052|MR|Test|E|Lead 56052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056053|156053|989898|1|9999056053|MR|Test|E|Lead 56053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056054|156054|989898|1|9999056054|MR|Test|E|Lead 56054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056055|156055|989898|1|9999056055|MR|Test|E|Lead 56055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056056|156056|989898|1|9999056056|MR|Test|E|Lead 56056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056057|156057|989898|1|9999056057|MR|Test|E|Lead 56057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056058|156058|989898|1|9999056058|MR|Test|E|Lead 56058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056059|156059|989898|1|9999056059|MR|Test|E|Lead 56059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056060|156060|989898|1|9999056060|MR|Test|E|Lead 56060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056061|156061|989898|1|9999056061|MR|Test|E|Lead 56061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056062|156062|989898|1|9999056062|MR|Test|E|Lead 56062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056063|156063|989898|1|9999056063|MR|Test|E|Lead 56063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056064|156064|989898|1|9999056064|MR|Test|E|Lead 56064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056065|156065|989898|1|9999056065|MR|Test|E|Lead 56065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056066|156066|989898|1|9999056066|MR|Test|E|Lead 56066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056067|156067|989898|1|9999056067|MR|Test|E|Lead 56067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056068|156068|989898|1|9999056068|MR|Test|E|Lead 56068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056069|156069|989898|1|9999056069|MR|Test|E|Lead 56069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056070|156070|989898|1|9999056070|MR|Test|E|Lead 56070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056071|156071|989898|1|9999056071|MR|Test|E|Lead 56071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056072|156072|989898|1|9999056072|MR|Test|E|Lead 56072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056073|156073|989898|1|9999056073|MR|Test|E|Lead 56073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056074|156074|989898|1|9999056074|MR|Test|E|Lead 56074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056075|156075|989898|1|9999056075|MR|Test|E|Lead 56075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056076|156076|989898|1|9999056076|MR|Test|E|Lead 56076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056077|156077|989898|1|9999056077|MR|Test|E|Lead 56077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056078|156078|989898|1|9999056078|MR|Test|E|Lead 56078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056079|156079|989898|1|9999056079|MR|Test|E|Lead 56079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056080|156080|989898|1|9999056080|MR|Test|E|Lead 56080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056081|156081|989898|1|9999056081|MR|Test|E|Lead 56081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056082|156082|989898|1|9999056082|MR|Test|E|Lead 56082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056083|156083|989898|1|9999056083|MR|Test|E|Lead 56083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056084|156084|989898|1|9999056084|MR|Test|E|Lead 56084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056085|156085|989898|1|9999056085|MR|Test|E|Lead 56085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056086|156086|989898|1|9999056086|MR|Test|E|Lead 56086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056087|156087|989898|1|9999056087|MR|Test|E|Lead 56087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056088|156088|989898|1|9999056088|MR|Test|E|Lead 56088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056089|156089|989898|1|9999056089|MR|Test|E|Lead 56089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056090|156090|989898|1|9999056090|MR|Test|E|Lead 56090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056091|156091|989898|1|9999056091|MR|Test|E|Lead 56091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056092|156092|989898|1|9999056092|MR|Test|E|Lead 56092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056093|156093|989898|1|9999056093|MR|Test|E|Lead 56093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056094|156094|989898|1|9999056094|MR|Test|E|Lead 56094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056095|156095|989898|1|9999056095|MR|Test|E|Lead 56095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056096|156096|989898|1|9999056096|MR|Test|E|Lead 56096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056097|156097|989898|1|9999056097|MR|Test|E|Lead 56097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056098|156098|989898|1|9999056098|MR|Test|E|Lead 56098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056099|156099|989898|1|9999056099|MR|Test|E|Lead 56099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056100|156100|989898|1|9999056100|MR|Test|E|Lead 56100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056101|156101|989898|1|9999056101|MR|Test|E|Lead 56101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056102|156102|989898|1|9999056102|MR|Test|E|Lead 56102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056103|156103|989898|1|9999056103|MR|Test|E|Lead 56103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056104|156104|989898|1|9999056104|MR|Test|E|Lead 56104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056105|156105|989898|1|9999056105|MR|Test|E|Lead 56105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056106|156106|989898|1|9999056106|MR|Test|E|Lead 56106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056107|156107|989898|1|9999056107|MR|Test|E|Lead 56107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056108|156108|989898|1|9999056108|MR|Test|E|Lead 56108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056109|156109|989898|1|9999056109|MR|Test|E|Lead 56109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056110|156110|989898|1|9999056110|MR|Test|E|Lead 56110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056111|156111|989898|1|9999056111|MR|Test|E|Lead 56111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056112|156112|989898|1|9999056112|MR|Test|E|Lead 56112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056113|156113|989898|1|9999056113|MR|Test|E|Lead 56113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056114|156114|989898|1|9999056114|MR|Test|E|Lead 56114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056115|156115|989898|1|9999056115|MR|Test|E|Lead 56115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056116|156116|989898|1|9999056116|MR|Test|E|Lead 56116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056117|156117|989898|1|9999056117|MR|Test|E|Lead 56117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056118|156118|989898|1|9999056118|MR|Test|E|Lead 56118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056119|156119|989898|1|9999056119|MR|Test|E|Lead 56119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056120|156120|989898|1|9999056120|MR|Test|E|Lead 56120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056121|156121|989898|1|9999056121|MR|Test|E|Lead 56121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056122|156122|989898|1|9999056122|MR|Test|E|Lead 56122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056123|156123|989898|1|9999056123|MR|Test|E|Lead 56123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056124|156124|989898|1|9999056124|MR|Test|E|Lead 56124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056125|156125|989898|1|9999056125|MR|Test|E|Lead 56125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056126|156126|989898|1|9999056126|MR|Test|E|Lead 56126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056127|156127|989898|1|9999056127|MR|Test|E|Lead 56127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056128|156128|989898|1|9999056128|MR|Test|E|Lead 56128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056129|156129|989898|1|9999056129|MR|Test|E|Lead 56129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056130|156130|989898|1|9999056130|MR|Test|E|Lead 56130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056131|156131|989898|1|9999056131|MR|Test|E|Lead 56131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056132|156132|989898|1|9999056132|MR|Test|E|Lead 56132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056133|156133|989898|1|9999056133|MR|Test|E|Lead 56133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056134|156134|989898|1|9999056134|MR|Test|E|Lead 56134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056135|156135|989898|1|9999056135|MR|Test|E|Lead 56135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056136|156136|989898|1|9999056136|MR|Test|E|Lead 56136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056137|156137|989898|1|9999056137|MR|Test|E|Lead 56137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056138|156138|989898|1|9999056138|MR|Test|E|Lead 56138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056139|156139|989898|1|9999056139|MR|Test|E|Lead 56139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056140|156140|989898|1|9999056140|MR|Test|E|Lead 56140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056141|156141|989898|1|9999056141|MR|Test|E|Lead 56141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056142|156142|989898|1|9999056142|MR|Test|E|Lead 56142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056143|156143|989898|1|9999056143|MR|Test|E|Lead 56143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056144|156144|989898|1|9999056144|MR|Test|E|Lead 56144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056145|156145|989898|1|9999056145|MR|Test|E|Lead 56145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056146|156146|989898|1|9999056146|MR|Test|E|Lead 56146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056147|156147|989898|1|9999056147|MR|Test|E|Lead 56147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056148|156148|989898|1|9999056148|MR|Test|E|Lead 56148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056149|156149|989898|1|9999056149|MR|Test|E|Lead 56149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056150|156150|989898|1|9999056150|MR|Test|E|Lead 56150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056151|156151|989898|1|9999056151|MR|Test|E|Lead 56151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056152|156152|989898|1|9999056152|MR|Test|E|Lead 56152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056153|156153|989898|1|9999056153|MR|Test|E|Lead 56153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056154|156154|989898|1|9999056154|MR|Test|E|Lead 56154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056155|156155|989898|1|9999056155|MR|Test|E|Lead 56155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056156|156156|989898|1|9999056156|MR|Test|E|Lead 56156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056157|156157|989898|1|9999056157|MR|Test|E|Lead 56157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056158|156158|989898|1|9999056158|MR|Test|E|Lead 56158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056159|156159|989898|1|9999056159|MR|Test|E|Lead 56159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056160|156160|989898|1|9999056160|MR|Test|E|Lead 56160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056161|156161|989898|1|9999056161|MR|Test|E|Lead 56161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056162|156162|989898|1|9999056162|MR|Test|E|Lead 56162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056163|156163|989898|1|9999056163|MR|Test|E|Lead 56163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056164|156164|989898|1|9999056164|MR|Test|E|Lead 56164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056165|156165|989898|1|9999056165|MR|Test|E|Lead 56165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056166|156166|989898|1|9999056166|MR|Test|E|Lead 56166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056167|156167|989898|1|9999056167|MR|Test|E|Lead 56167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056168|156168|989898|1|9999056168|MR|Test|E|Lead 56168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056169|156169|989898|1|9999056169|MR|Test|E|Lead 56169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056170|156170|989898|1|9999056170|MR|Test|E|Lead 56170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056171|156171|989898|1|9999056171|MR|Test|E|Lead 56171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056172|156172|989898|1|9999056172|MR|Test|E|Lead 56172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056173|156173|989898|1|9999056173|MR|Test|E|Lead 56173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056174|156174|989898|1|9999056174|MR|Test|E|Lead 56174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056175|156175|989898|1|9999056175|MR|Test|E|Lead 56175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056176|156176|989898|1|9999056176|MR|Test|E|Lead 56176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056177|156177|989898|1|9999056177|MR|Test|E|Lead 56177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056178|156178|989898|1|9999056178|MR|Test|E|Lead 56178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056179|156179|989898|1|9999056179|MR|Test|E|Lead 56179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056180|156180|989898|1|9999056180|MR|Test|E|Lead 56180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056181|156181|989898|1|9999056181|MR|Test|E|Lead 56181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056182|156182|989898|1|9999056182|MR|Test|E|Lead 56182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056183|156183|989898|1|9999056183|MR|Test|E|Lead 56183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056184|156184|989898|1|9999056184|MR|Test|E|Lead 56184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056185|156185|989898|1|9999056185|MR|Test|E|Lead 56185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056186|156186|989898|1|9999056186|MR|Test|E|Lead 56186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056187|156187|989898|1|9999056187|MR|Test|E|Lead 56187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056188|156188|989898|1|9999056188|MR|Test|E|Lead 56188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056189|156189|989898|1|9999056189|MR|Test|E|Lead 56189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056190|156190|989898|1|9999056190|MR|Test|E|Lead 56190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056191|156191|989898|1|9999056191|MR|Test|E|Lead 56191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056192|156192|989898|1|9999056192|MR|Test|E|Lead 56192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056193|156193|989898|1|9999056193|MR|Test|E|Lead 56193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056194|156194|989898|1|9999056194|MR|Test|E|Lead 56194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056195|156195|989898|1|9999056195|MR|Test|E|Lead 56195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056196|156196|989898|1|9999056196|MR|Test|E|Lead 56196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056197|156197|989898|1|9999056197|MR|Test|E|Lead 56197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056198|156198|989898|1|9999056198|MR|Test|E|Lead 56198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056199|156199|989898|1|9999056199|MR|Test|E|Lead 56199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056200|156200|989898|1|9999056200|MR|Test|E|Lead 56200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056201|156201|989898|1|9999056201|MR|Test|E|Lead 56201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056202|156202|989898|1|9999056202|MR|Test|E|Lead 56202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056203|156203|989898|1|9999056203|MR|Test|E|Lead 56203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056204|156204|989898|1|9999056204|MR|Test|E|Lead 56204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056205|156205|989898|1|9999056205|MR|Test|E|Lead 56205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056206|156206|989898|1|9999056206|MR|Test|E|Lead 56206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056207|156207|989898|1|9999056207|MR|Test|E|Lead 56207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056208|156208|989898|1|9999056208|MR|Test|E|Lead 56208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056209|156209|989898|1|9999056209|MR|Test|E|Lead 56209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056210|156210|989898|1|9999056210|MR|Test|E|Lead 56210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056211|156211|989898|1|9999056211|MR|Test|E|Lead 56211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056212|156212|989898|1|9999056212|MR|Test|E|Lead 56212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056213|156213|989898|1|9999056213|MR|Test|E|Lead 56213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056214|156214|989898|1|9999056214|MR|Test|E|Lead 56214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056215|156215|989898|1|9999056215|MR|Test|E|Lead 56215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056216|156216|989898|1|9999056216|MR|Test|E|Lead 56216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056217|156217|989898|1|9999056217|MR|Test|E|Lead 56217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056218|156218|989898|1|9999056218|MR|Test|E|Lead 56218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056219|156219|989898|1|9999056219|MR|Test|E|Lead 56219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056220|156220|989898|1|9999056220|MR|Test|E|Lead 56220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056221|156221|989898|1|9999056221|MR|Test|E|Lead 56221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056222|156222|989898|1|9999056222|MR|Test|E|Lead 56222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056223|156223|989898|1|9999056223|MR|Test|E|Lead 56223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056224|156224|989898|1|9999056224|MR|Test|E|Lead 56224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056225|156225|989898|1|9999056225|MR|Test|E|Lead 56225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056226|156226|989898|1|9999056226|MR|Test|E|Lead 56226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056227|156227|989898|1|9999056227|MR|Test|E|Lead 56227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056228|156228|989898|1|9999056228|MR|Test|E|Lead 56228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056229|156229|989898|1|9999056229|MR|Test|E|Lead 56229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056230|156230|989898|1|9999056230|MR|Test|E|Lead 56230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056231|156231|989898|1|9999056231|MR|Test|E|Lead 56231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056232|156232|989898|1|9999056232|MR|Test|E|Lead 56232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056233|156233|989898|1|9999056233|MR|Test|E|Lead 56233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056234|156234|989898|1|9999056234|MR|Test|E|Lead 56234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056235|156235|989898|1|9999056235|MR|Test|E|Lead 56235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056236|156236|989898|1|9999056236|MR|Test|E|Lead 56236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056237|156237|989898|1|9999056237|MR|Test|E|Lead 56237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056238|156238|989898|1|9999056238|MR|Test|E|Lead 56238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056239|156239|989898|1|9999056239|MR|Test|E|Lead 56239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056240|156240|989898|1|9999056240|MR|Test|E|Lead 56240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056241|156241|989898|1|9999056241|MR|Test|E|Lead 56241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056242|156242|989898|1|9999056242|MR|Test|E|Lead 56242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056243|156243|989898|1|9999056243|MR|Test|E|Lead 56243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056244|156244|989898|1|9999056244|MR|Test|E|Lead 56244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056245|156245|989898|1|9999056245|MR|Test|E|Lead 56245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056246|156246|989898|1|9999056246|MR|Test|E|Lead 56246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056247|156247|989898|1|9999056247|MR|Test|E|Lead 56247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056248|156248|989898|1|9999056248|MR|Test|E|Lead 56248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056249|156249|989898|1|9999056249|MR|Test|E|Lead 56249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056250|156250|989898|1|9999056250|MR|Test|E|Lead 56250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056251|156251|989898|1|9999056251|MR|Test|E|Lead 56251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056252|156252|989898|1|9999056252|MR|Test|E|Lead 56252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056253|156253|989898|1|9999056253|MR|Test|E|Lead 56253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056254|156254|989898|1|9999056254|MR|Test|E|Lead 56254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056255|156255|989898|1|9999056255|MR|Test|E|Lead 56255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056256|156256|989898|1|9999056256|MR|Test|E|Lead 56256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056257|156257|989898|1|9999056257|MR|Test|E|Lead 56257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056258|156258|989898|1|9999056258|MR|Test|E|Lead 56258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056259|156259|989898|1|9999056259|MR|Test|E|Lead 56259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056260|156260|989898|1|9999056260|MR|Test|E|Lead 56260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056261|156261|989898|1|9999056261|MR|Test|E|Lead 56261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056262|156262|989898|1|9999056262|MR|Test|E|Lead 56262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056263|156263|989898|1|9999056263|MR|Test|E|Lead 56263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056264|156264|989898|1|9999056264|MR|Test|E|Lead 56264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056265|156265|989898|1|9999056265|MR|Test|E|Lead 56265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056266|156266|989898|1|9999056266|MR|Test|E|Lead 56266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056267|156267|989898|1|9999056267|MR|Test|E|Lead 56267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056268|156268|989898|1|9999056268|MR|Test|E|Lead 56268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056269|156269|989898|1|9999056269|MR|Test|E|Lead 56269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056270|156270|989898|1|9999056270|MR|Test|E|Lead 56270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056271|156271|989898|1|9999056271|MR|Test|E|Lead 56271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056272|156272|989898|1|9999056272|MR|Test|E|Lead 56272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056273|156273|989898|1|9999056273|MR|Test|E|Lead 56273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056274|156274|989898|1|9999056274|MR|Test|E|Lead 56274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056275|156275|989898|1|9999056275|MR|Test|E|Lead 56275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056276|156276|989898|1|9999056276|MR|Test|E|Lead 56276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056277|156277|989898|1|9999056277|MR|Test|E|Lead 56277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056278|156278|989898|1|9999056278|MR|Test|E|Lead 56278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056279|156279|989898|1|9999056279|MR|Test|E|Lead 56279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056280|156280|989898|1|9999056280|MR|Test|E|Lead 56280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056281|156281|989898|1|9999056281|MR|Test|E|Lead 56281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056282|156282|989898|1|9999056282|MR|Test|E|Lead 56282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056283|156283|989898|1|9999056283|MR|Test|E|Lead 56283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056284|156284|989898|1|9999056284|MR|Test|E|Lead 56284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056285|156285|989898|1|9999056285|MR|Test|E|Lead 56285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056286|156286|989898|1|9999056286|MR|Test|E|Lead 56286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056287|156287|989898|1|9999056287|MR|Test|E|Lead 56287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056288|156288|989898|1|9999056288|MR|Test|E|Lead 56288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056289|156289|989898|1|9999056289|MR|Test|E|Lead 56289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056290|156290|989898|1|9999056290|MR|Test|E|Lead 56290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056291|156291|989898|1|9999056291|MR|Test|E|Lead 56291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056292|156292|989898|1|9999056292|MR|Test|E|Lead 56292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056293|156293|989898|1|9999056293|MR|Test|E|Lead 56293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056294|156294|989898|1|9999056294|MR|Test|E|Lead 56294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056295|156295|989898|1|9999056295|MR|Test|E|Lead 56295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056296|156296|989898|1|9999056296|MR|Test|E|Lead 56296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056297|156297|989898|1|9999056297|MR|Test|E|Lead 56297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056298|156298|989898|1|9999056298|MR|Test|E|Lead 56298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056299|156299|989898|1|9999056299|MR|Test|E|Lead 56299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056300|156300|989898|1|9999056300|MR|Test|E|Lead 56300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056301|156301|989898|1|9999056301|MR|Test|E|Lead 56301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056302|156302|989898|1|9999056302|MR|Test|E|Lead 56302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056303|156303|989898|1|9999056303|MR|Test|E|Lead 56303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056304|156304|989898|1|9999056304|MR|Test|E|Lead 56304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056305|156305|989898|1|9999056305|MR|Test|E|Lead 56305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056306|156306|989898|1|9999056306|MR|Test|E|Lead 56306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056307|156307|989898|1|9999056307|MR|Test|E|Lead 56307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056308|156308|989898|1|9999056308|MR|Test|E|Lead 56308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056309|156309|989898|1|9999056309|MR|Test|E|Lead 56309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056310|156310|989898|1|9999056310|MR|Test|E|Lead 56310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056311|156311|989898|1|9999056311|MR|Test|E|Lead 56311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056312|156312|989898|1|9999056312|MR|Test|E|Lead 56312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056313|156313|989898|1|9999056313|MR|Test|E|Lead 56313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056314|156314|989898|1|9999056314|MR|Test|E|Lead 56314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056315|156315|989898|1|9999056315|MR|Test|E|Lead 56315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056316|156316|989898|1|9999056316|MR|Test|E|Lead 56316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056317|156317|989898|1|9999056317|MR|Test|E|Lead 56317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056318|156318|989898|1|9999056318|MR|Test|E|Lead 56318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056319|156319|989898|1|9999056319|MR|Test|E|Lead 56319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056320|156320|989898|1|9999056320|MR|Test|E|Lead 56320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056321|156321|989898|1|9999056321|MR|Test|E|Lead 56321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056322|156322|989898|1|9999056322|MR|Test|E|Lead 56322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056323|156323|989898|1|9999056323|MR|Test|E|Lead 56323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056324|156324|989898|1|9999056324|MR|Test|E|Lead 56324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056325|156325|989898|1|9999056325|MR|Test|E|Lead 56325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056326|156326|989898|1|9999056326|MR|Test|E|Lead 56326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056327|156327|989898|1|9999056327|MR|Test|E|Lead 56327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056328|156328|989898|1|9999056328|MR|Test|E|Lead 56328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056329|156329|989898|1|9999056329|MR|Test|E|Lead 56329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056330|156330|989898|1|9999056330|MR|Test|E|Lead 56330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056331|156331|989898|1|9999056331|MR|Test|E|Lead 56331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056332|156332|989898|1|9999056332|MR|Test|E|Lead 56332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056333|156333|989898|1|9999056333|MR|Test|E|Lead 56333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056334|156334|989898|1|9999056334|MR|Test|E|Lead 56334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056335|156335|989898|1|9999056335|MR|Test|E|Lead 56335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056336|156336|989898|1|9999056336|MR|Test|E|Lead 56336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056337|156337|989898|1|9999056337|MR|Test|E|Lead 56337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056338|156338|989898|1|9999056338|MR|Test|E|Lead 56338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056339|156339|989898|1|9999056339|MR|Test|E|Lead 56339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056340|156340|989898|1|9999056340|MR|Test|E|Lead 56340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056341|156341|989898|1|9999056341|MR|Test|E|Lead 56341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056342|156342|989898|1|9999056342|MR|Test|E|Lead 56342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056343|156343|989898|1|9999056343|MR|Test|E|Lead 56343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056344|156344|989898|1|9999056344|MR|Test|E|Lead 56344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056345|156345|989898|1|9999056345|MR|Test|E|Lead 56345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056346|156346|989898|1|9999056346|MR|Test|E|Lead 56346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056347|156347|989898|1|9999056347|MR|Test|E|Lead 56347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056348|156348|989898|1|9999056348|MR|Test|E|Lead 56348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056349|156349|989898|1|9999056349|MR|Test|E|Lead 56349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056350|156350|989898|1|9999056350|MR|Test|E|Lead 56350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056351|156351|989898|1|9999056351|MR|Test|E|Lead 56351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056352|156352|989898|1|9999056352|MR|Test|E|Lead 56352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056353|156353|989898|1|9999056353|MR|Test|E|Lead 56353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056354|156354|989898|1|9999056354|MR|Test|E|Lead 56354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056355|156355|989898|1|9999056355|MR|Test|E|Lead 56355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056356|156356|989898|1|9999056356|MR|Test|E|Lead 56356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056357|156357|989898|1|9999056357|MR|Test|E|Lead 56357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056358|156358|989898|1|9999056358|MR|Test|E|Lead 56358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056359|156359|989898|1|9999056359|MR|Test|E|Lead 56359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056360|156360|989898|1|9999056360|MR|Test|E|Lead 56360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056361|156361|989898|1|9999056361|MR|Test|E|Lead 56361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056362|156362|989898|1|9999056362|MR|Test|E|Lead 56362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056363|156363|989898|1|9999056363|MR|Test|E|Lead 56363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056364|156364|989898|1|9999056364|MR|Test|E|Lead 56364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056365|156365|989898|1|9999056365|MR|Test|E|Lead 56365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056366|156366|989898|1|9999056366|MR|Test|E|Lead 56366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056367|156367|989898|1|9999056367|MR|Test|E|Lead 56367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056368|156368|989898|1|9999056368|MR|Test|E|Lead 56368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056369|156369|989898|1|9999056369|MR|Test|E|Lead 56369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056370|156370|989898|1|9999056370|MR|Test|E|Lead 56370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056371|156371|989898|1|9999056371|MR|Test|E|Lead 56371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056372|156372|989898|1|9999056372|MR|Test|E|Lead 56372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056373|156373|989898|1|9999056373|MR|Test|E|Lead 56373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056374|156374|989898|1|9999056374|MR|Test|E|Lead 56374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056375|156375|989898|1|9999056375|MR|Test|E|Lead 56375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056376|156376|989898|1|9999056376|MR|Test|E|Lead 56376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056377|156377|989898|1|9999056377|MR|Test|E|Lead 56377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056378|156378|989898|1|9999056378|MR|Test|E|Lead 56378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056379|156379|989898|1|9999056379|MR|Test|E|Lead 56379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056380|156380|989898|1|9999056380|MR|Test|E|Lead 56380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056381|156381|989898|1|9999056381|MR|Test|E|Lead 56381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056382|156382|989898|1|9999056382|MR|Test|E|Lead 56382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056383|156383|989898|1|9999056383|MR|Test|E|Lead 56383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056384|156384|989898|1|9999056384|MR|Test|E|Lead 56384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056385|156385|989898|1|9999056385|MR|Test|E|Lead 56385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056386|156386|989898|1|9999056386|MR|Test|E|Lead 56386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056387|156387|989898|1|9999056387|MR|Test|E|Lead 56387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056388|156388|989898|1|9999056388|MR|Test|E|Lead 56388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056389|156389|989898|1|9999056389|MR|Test|E|Lead 56389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056390|156390|989898|1|9999056390|MR|Test|E|Lead 56390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056391|156391|989898|1|9999056391|MR|Test|E|Lead 56391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056392|156392|989898|1|9999056392|MR|Test|E|Lead 56392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056393|156393|989898|1|9999056393|MR|Test|E|Lead 56393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056394|156394|989898|1|9999056394|MR|Test|E|Lead 56394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056395|156395|989898|1|9999056395|MR|Test|E|Lead 56395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056396|156396|989898|1|9999056396|MR|Test|E|Lead 56396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056397|156397|989898|1|9999056397|MR|Test|E|Lead 56397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056398|156398|989898|1|9999056398|MR|Test|E|Lead 56398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056399|156399|989898|1|9999056399|MR|Test|E|Lead 56399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056400|156400|989898|1|9999056400|MR|Test|E|Lead 56400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056401|156401|989898|1|9999056401|MR|Test|E|Lead 56401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056402|156402|989898|1|9999056402|MR|Test|E|Lead 56402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056403|156403|989898|1|9999056403|MR|Test|E|Lead 56403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056404|156404|989898|1|9999056404|MR|Test|E|Lead 56404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056405|156405|989898|1|9999056405|MR|Test|E|Lead 56405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056406|156406|989898|1|9999056406|MR|Test|E|Lead 56406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056407|156407|989898|1|9999056407|MR|Test|E|Lead 56407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056408|156408|989898|1|9999056408|MR|Test|E|Lead 56408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056409|156409|989898|1|9999056409|MR|Test|E|Lead 56409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056410|156410|989898|1|9999056410|MR|Test|E|Lead 56410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056411|156411|989898|1|9999056411|MR|Test|E|Lead 56411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056412|156412|989898|1|9999056412|MR|Test|E|Lead 56412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056413|156413|989898|1|9999056413|MR|Test|E|Lead 56413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056414|156414|989898|1|9999056414|MR|Test|E|Lead 56414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056415|156415|989898|1|9999056415|MR|Test|E|Lead 56415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056416|156416|989898|1|9999056416|MR|Test|E|Lead 56416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056417|156417|989898|1|9999056417|MR|Test|E|Lead 56417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056418|156418|989898|1|9999056418|MR|Test|E|Lead 56418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056419|156419|989898|1|9999056419|MR|Test|E|Lead 56419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056420|156420|989898|1|9999056420|MR|Test|E|Lead 56420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056421|156421|989898|1|9999056421|MR|Test|E|Lead 56421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056422|156422|989898|1|9999056422|MR|Test|E|Lead 56422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056423|156423|989898|1|9999056423|MR|Test|E|Lead 56423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056424|156424|989898|1|9999056424|MR|Test|E|Lead 56424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056425|156425|989898|1|9999056425|MR|Test|E|Lead 56425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056426|156426|989898|1|9999056426|MR|Test|E|Lead 56426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056427|156427|989898|1|9999056427|MR|Test|E|Lead 56427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056428|156428|989898|1|9999056428|MR|Test|E|Lead 56428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056429|156429|989898|1|9999056429|MR|Test|E|Lead 56429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056430|156430|989898|1|9999056430|MR|Test|E|Lead 56430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056431|156431|989898|1|9999056431|MR|Test|E|Lead 56431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056432|156432|989898|1|9999056432|MR|Test|E|Lead 56432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056433|156433|989898|1|9999056433|MR|Test|E|Lead 56433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056434|156434|989898|1|9999056434|MR|Test|E|Lead 56434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056435|156435|989898|1|9999056435|MR|Test|E|Lead 56435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056436|156436|989898|1|9999056436|MR|Test|E|Lead 56436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056437|156437|989898|1|9999056437|MR|Test|E|Lead 56437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056438|156438|989898|1|9999056438|MR|Test|E|Lead 56438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056439|156439|989898|1|9999056439|MR|Test|E|Lead 56439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056440|156440|989898|1|9999056440|MR|Test|E|Lead 56440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056441|156441|989898|1|9999056441|MR|Test|E|Lead 56441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056442|156442|989898|1|9999056442|MR|Test|E|Lead 56442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056443|156443|989898|1|9999056443|MR|Test|E|Lead 56443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056444|156444|989898|1|9999056444|MR|Test|E|Lead 56444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056445|156445|989898|1|9999056445|MR|Test|E|Lead 56445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056446|156446|989898|1|9999056446|MR|Test|E|Lead 56446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056447|156447|989898|1|9999056447|MR|Test|E|Lead 56447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056448|156448|989898|1|9999056448|MR|Test|E|Lead 56448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056449|156449|989898|1|9999056449|MR|Test|E|Lead 56449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056450|156450|989898|1|9999056450|MR|Test|E|Lead 56450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056451|156451|989898|1|9999056451|MR|Test|E|Lead 56451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056452|156452|989898|1|9999056452|MR|Test|E|Lead 56452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056453|156453|989898|1|9999056453|MR|Test|E|Lead 56453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056454|156454|989898|1|9999056454|MR|Test|E|Lead 56454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056455|156455|989898|1|9999056455|MR|Test|E|Lead 56455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056456|156456|989898|1|9999056456|MR|Test|E|Lead 56456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056457|156457|989898|1|9999056457|MR|Test|E|Lead 56457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056458|156458|989898|1|9999056458|MR|Test|E|Lead 56458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056459|156459|989898|1|9999056459|MR|Test|E|Lead 56459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056460|156460|989898|1|9999056460|MR|Test|E|Lead 56460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056461|156461|989898|1|9999056461|MR|Test|E|Lead 56461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056462|156462|989898|1|9999056462|MR|Test|E|Lead 56462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056463|156463|989898|1|9999056463|MR|Test|E|Lead 56463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056464|156464|989898|1|9999056464|MR|Test|E|Lead 56464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056465|156465|989898|1|9999056465|MR|Test|E|Lead 56465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056466|156466|989898|1|9999056466|MR|Test|E|Lead 56466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056467|156467|989898|1|9999056467|MR|Test|E|Lead 56467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056468|156468|989898|1|9999056468|MR|Test|E|Lead 56468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056469|156469|989898|1|9999056469|MR|Test|E|Lead 56469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056470|156470|989898|1|9999056470|MR|Test|E|Lead 56470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056471|156471|989898|1|9999056471|MR|Test|E|Lead 56471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056472|156472|989898|1|9999056472|MR|Test|E|Lead 56472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056473|156473|989898|1|9999056473|MR|Test|E|Lead 56473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056474|156474|989898|1|9999056474|MR|Test|E|Lead 56474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056475|156475|989898|1|9999056475|MR|Test|E|Lead 56475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056476|156476|989898|1|9999056476|MR|Test|E|Lead 56476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056477|156477|989898|1|9999056477|MR|Test|E|Lead 56477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056478|156478|989898|1|9999056478|MR|Test|E|Lead 56478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056479|156479|989898|1|9999056479|MR|Test|E|Lead 56479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056480|156480|989898|1|9999056480|MR|Test|E|Lead 56480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056481|156481|989898|1|9999056481|MR|Test|E|Lead 56481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056482|156482|989898|1|9999056482|MR|Test|E|Lead 56482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056483|156483|989898|1|9999056483|MR|Test|E|Lead 56483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056484|156484|989898|1|9999056484|MR|Test|E|Lead 56484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056485|156485|989898|1|9999056485|MR|Test|E|Lead 56485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056486|156486|989898|1|9999056486|MR|Test|E|Lead 56486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056487|156487|989898|1|9999056487|MR|Test|E|Lead 56487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056488|156488|989898|1|9999056488|MR|Test|E|Lead 56488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056489|156489|989898|1|9999056489|MR|Test|E|Lead 56489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056490|156490|989898|1|9999056490|MR|Test|E|Lead 56490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056491|156491|989898|1|9999056491|MR|Test|E|Lead 56491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056492|156492|989898|1|9999056492|MR|Test|E|Lead 56492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056493|156493|989898|1|9999056493|MR|Test|E|Lead 56493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056494|156494|989898|1|9999056494|MR|Test|E|Lead 56494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056495|156495|989898|1|9999056495|MR|Test|E|Lead 56495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056496|156496|989898|1|9999056496|MR|Test|E|Lead 56496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056497|156497|989898|1|9999056497|MR|Test|E|Lead 56497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056498|156498|989898|1|9999056498|MR|Test|E|Lead 56498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056499|156499|989898|1|9999056499|MR|Test|E|Lead 56499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056500|156500|989898|1|9999056500|MR|Test|E|Lead 56500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056501|156501|989898|1|9999056501|MR|Test|E|Lead 56501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056502|156502|989898|1|9999056502|MR|Test|E|Lead 56502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056503|156503|989898|1|9999056503|MR|Test|E|Lead 56503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056504|156504|989898|1|9999056504|MR|Test|E|Lead 56504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056505|156505|989898|1|9999056505|MR|Test|E|Lead 56505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056506|156506|989898|1|9999056506|MR|Test|E|Lead 56506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056507|156507|989898|1|9999056507|MR|Test|E|Lead 56507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056508|156508|989898|1|9999056508|MR|Test|E|Lead 56508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056509|156509|989898|1|9999056509|MR|Test|E|Lead 56509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056510|156510|989898|1|9999056510|MR|Test|E|Lead 56510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056511|156511|989898|1|9999056511|MR|Test|E|Lead 56511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056512|156512|989898|1|9999056512|MR|Test|E|Lead 56512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056513|156513|989898|1|9999056513|MR|Test|E|Lead 56513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056514|156514|989898|1|9999056514|MR|Test|E|Lead 56514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056515|156515|989898|1|9999056515|MR|Test|E|Lead 56515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056516|156516|989898|1|9999056516|MR|Test|E|Lead 56516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056517|156517|989898|1|9999056517|MR|Test|E|Lead 56517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056518|156518|989898|1|9999056518|MR|Test|E|Lead 56518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056519|156519|989898|1|9999056519|MR|Test|E|Lead 56519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056520|156520|989898|1|9999056520|MR|Test|E|Lead 56520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056521|156521|989898|1|9999056521|MR|Test|E|Lead 56521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056522|156522|989898|1|9999056522|MR|Test|E|Lead 56522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056523|156523|989898|1|9999056523|MR|Test|E|Lead 56523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056524|156524|989898|1|9999056524|MR|Test|E|Lead 56524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056525|156525|989898|1|9999056525|MR|Test|E|Lead 56525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056526|156526|989898|1|9999056526|MR|Test|E|Lead 56526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056527|156527|989898|1|9999056527|MR|Test|E|Lead 56527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056528|156528|989898|1|9999056528|MR|Test|E|Lead 56528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056529|156529|989898|1|9999056529|MR|Test|E|Lead 56529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056530|156530|989898|1|9999056530|MR|Test|E|Lead 56530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056531|156531|989898|1|9999056531|MR|Test|E|Lead 56531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056532|156532|989898|1|9999056532|MR|Test|E|Lead 56532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056533|156533|989898|1|9999056533|MR|Test|E|Lead 56533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056534|156534|989898|1|9999056534|MR|Test|E|Lead 56534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056535|156535|989898|1|9999056535|MR|Test|E|Lead 56535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056536|156536|989898|1|9999056536|MR|Test|E|Lead 56536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056537|156537|989898|1|9999056537|MR|Test|E|Lead 56537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056538|156538|989898|1|9999056538|MR|Test|E|Lead 56538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056539|156539|989898|1|9999056539|MR|Test|E|Lead 56539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056540|156540|989898|1|9999056540|MR|Test|E|Lead 56540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056541|156541|989898|1|9999056541|MR|Test|E|Lead 56541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056542|156542|989898|1|9999056542|MR|Test|E|Lead 56542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056543|156543|989898|1|9999056543|MR|Test|E|Lead 56543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056544|156544|989898|1|9999056544|MR|Test|E|Lead 56544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056545|156545|989898|1|9999056545|MR|Test|E|Lead 56545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056546|156546|989898|1|9999056546|MR|Test|E|Lead 56546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056547|156547|989898|1|9999056547|MR|Test|E|Lead 56547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056548|156548|989898|1|9999056548|MR|Test|E|Lead 56548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056549|156549|989898|1|9999056549|MR|Test|E|Lead 56549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056550|156550|989898|1|9999056550|MR|Test|E|Lead 56550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056551|156551|989898|1|9999056551|MR|Test|E|Lead 56551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056552|156552|989898|1|9999056552|MR|Test|E|Lead 56552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056553|156553|989898|1|9999056553|MR|Test|E|Lead 56553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056554|156554|989898|1|9999056554|MR|Test|E|Lead 56554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056555|156555|989898|1|9999056555|MR|Test|E|Lead 56555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056556|156556|989898|1|9999056556|MR|Test|E|Lead 56556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056557|156557|989898|1|9999056557|MR|Test|E|Lead 56557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056558|156558|989898|1|9999056558|MR|Test|E|Lead 56558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056559|156559|989898|1|9999056559|MR|Test|E|Lead 56559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056560|156560|989898|1|9999056560|MR|Test|E|Lead 56560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056561|156561|989898|1|9999056561|MR|Test|E|Lead 56561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056562|156562|989898|1|9999056562|MR|Test|E|Lead 56562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056563|156563|989898|1|9999056563|MR|Test|E|Lead 56563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056564|156564|989898|1|9999056564|MR|Test|E|Lead 56564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056565|156565|989898|1|9999056565|MR|Test|E|Lead 56565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056566|156566|989898|1|9999056566|MR|Test|E|Lead 56566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056567|156567|989898|1|9999056567|MR|Test|E|Lead 56567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056568|156568|989898|1|9999056568|MR|Test|E|Lead 56568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056569|156569|989898|1|9999056569|MR|Test|E|Lead 56569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056570|156570|989898|1|9999056570|MR|Test|E|Lead 56570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056571|156571|989898|1|9999056571|MR|Test|E|Lead 56571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056572|156572|989898|1|9999056572|MR|Test|E|Lead 56572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056573|156573|989898|1|9999056573|MR|Test|E|Lead 56573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056574|156574|989898|1|9999056574|MR|Test|E|Lead 56574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056575|156575|989898|1|9999056575|MR|Test|E|Lead 56575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056576|156576|989898|1|9999056576|MR|Test|E|Lead 56576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056577|156577|989898|1|9999056577|MR|Test|E|Lead 56577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056578|156578|989898|1|9999056578|MR|Test|E|Lead 56578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056579|156579|989898|1|9999056579|MR|Test|E|Lead 56579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056580|156580|989898|1|9999056580|MR|Test|E|Lead 56580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056581|156581|989898|1|9999056581|MR|Test|E|Lead 56581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056582|156582|989898|1|9999056582|MR|Test|E|Lead 56582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056583|156583|989898|1|9999056583|MR|Test|E|Lead 56583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056584|156584|989898|1|9999056584|MR|Test|E|Lead 56584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056585|156585|989898|1|9999056585|MR|Test|E|Lead 56585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056586|156586|989898|1|9999056586|MR|Test|E|Lead 56586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056587|156587|989898|1|9999056587|MR|Test|E|Lead 56587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056588|156588|989898|1|9999056588|MR|Test|E|Lead 56588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056589|156589|989898|1|9999056589|MR|Test|E|Lead 56589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056590|156590|989898|1|9999056590|MR|Test|E|Lead 56590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056591|156591|989898|1|9999056591|MR|Test|E|Lead 56591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056592|156592|989898|1|9999056592|MR|Test|E|Lead 56592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056593|156593|989898|1|9999056593|MR|Test|E|Lead 56593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056594|156594|989898|1|9999056594|MR|Test|E|Lead 56594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056595|156595|989898|1|9999056595|MR|Test|E|Lead 56595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056596|156596|989898|1|9999056596|MR|Test|E|Lead 56596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056597|156597|989898|1|9999056597|MR|Test|E|Lead 56597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056598|156598|989898|1|9999056598|MR|Test|E|Lead 56598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056599|156599|989898|1|9999056599|MR|Test|E|Lead 56599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056600|156600|989898|1|9999056600|MR|Test|E|Lead 56600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056601|156601|989898|1|9999056601|MR|Test|E|Lead 56601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056602|156602|989898|1|9999056602|MR|Test|E|Lead 56602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056603|156603|989898|1|9999056603|MR|Test|E|Lead 56603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056604|156604|989898|1|9999056604|MR|Test|E|Lead 56604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056605|156605|989898|1|9999056605|MR|Test|E|Lead 56605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056606|156606|989898|1|9999056606|MR|Test|E|Lead 56606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056607|156607|989898|1|9999056607|MR|Test|E|Lead 56607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056608|156608|989898|1|9999056608|MR|Test|E|Lead 56608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056609|156609|989898|1|9999056609|MR|Test|E|Lead 56609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056610|156610|989898|1|9999056610|MR|Test|E|Lead 56610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056611|156611|989898|1|9999056611|MR|Test|E|Lead 56611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056612|156612|989898|1|9999056612|MR|Test|E|Lead 56612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056613|156613|989898|1|9999056613|MR|Test|E|Lead 56613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056614|156614|989898|1|9999056614|MR|Test|E|Lead 56614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056615|156615|989898|1|9999056615|MR|Test|E|Lead 56615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056616|156616|989898|1|9999056616|MR|Test|E|Lead 56616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056617|156617|989898|1|9999056617|MR|Test|E|Lead 56617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056618|156618|989898|1|9999056618|MR|Test|E|Lead 56618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056619|156619|989898|1|9999056619|MR|Test|E|Lead 56619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056620|156620|989898|1|9999056620|MR|Test|E|Lead 56620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056621|156621|989898|1|9999056621|MR|Test|E|Lead 56621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056622|156622|989898|1|9999056622|MR|Test|E|Lead 56622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056623|156623|989898|1|9999056623|MR|Test|E|Lead 56623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056624|156624|989898|1|9999056624|MR|Test|E|Lead 56624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056625|156625|989898|1|9999056625|MR|Test|E|Lead 56625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056626|156626|989898|1|9999056626|MR|Test|E|Lead 56626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056627|156627|989898|1|9999056627|MR|Test|E|Lead 56627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056628|156628|989898|1|9999056628|MR|Test|E|Lead 56628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056629|156629|989898|1|9999056629|MR|Test|E|Lead 56629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056630|156630|989898|1|9999056630|MR|Test|E|Lead 56630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056631|156631|989898|1|9999056631|MR|Test|E|Lead 56631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056632|156632|989898|1|9999056632|MR|Test|E|Lead 56632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056633|156633|989898|1|9999056633|MR|Test|E|Lead 56633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056634|156634|989898|1|9999056634|MR|Test|E|Lead 56634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056635|156635|989898|1|9999056635|MR|Test|E|Lead 56635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056636|156636|989898|1|9999056636|MR|Test|E|Lead 56636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056637|156637|989898|1|9999056637|MR|Test|E|Lead 56637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056638|156638|989898|1|9999056638|MR|Test|E|Lead 56638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056639|156639|989898|1|9999056639|MR|Test|E|Lead 56639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056640|156640|989898|1|9999056640|MR|Test|E|Lead 56640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056641|156641|989898|1|9999056641|MR|Test|E|Lead 56641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056642|156642|989898|1|9999056642|MR|Test|E|Lead 56642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056643|156643|989898|1|9999056643|MR|Test|E|Lead 56643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056644|156644|989898|1|9999056644|MR|Test|E|Lead 56644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056645|156645|989898|1|9999056645|MR|Test|E|Lead 56645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056646|156646|989898|1|9999056646|MR|Test|E|Lead 56646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056647|156647|989898|1|9999056647|MR|Test|E|Lead 56647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056648|156648|989898|1|9999056648|MR|Test|E|Lead 56648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056649|156649|989898|1|9999056649|MR|Test|E|Lead 56649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056650|156650|989898|1|9999056650|MR|Test|E|Lead 56650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056651|156651|989898|1|9999056651|MR|Test|E|Lead 56651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056652|156652|989898|1|9999056652|MR|Test|E|Lead 56652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056653|156653|989898|1|9999056653|MR|Test|E|Lead 56653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056654|156654|989898|1|9999056654|MR|Test|E|Lead 56654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056655|156655|989898|1|9999056655|MR|Test|E|Lead 56655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056656|156656|989898|1|9999056656|MR|Test|E|Lead 56656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056657|156657|989898|1|9999056657|MR|Test|E|Lead 56657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056658|156658|989898|1|9999056658|MR|Test|E|Lead 56658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056659|156659|989898|1|9999056659|MR|Test|E|Lead 56659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056660|156660|989898|1|9999056660|MR|Test|E|Lead 56660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056661|156661|989898|1|9999056661|MR|Test|E|Lead 56661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056662|156662|989898|1|9999056662|MR|Test|E|Lead 56662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056663|156663|989898|1|9999056663|MR|Test|E|Lead 56663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056664|156664|989898|1|9999056664|MR|Test|E|Lead 56664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056665|156665|989898|1|9999056665|MR|Test|E|Lead 56665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056666|156666|989898|1|9999056666|MR|Test|E|Lead 56666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056667|156667|989898|1|9999056667|MR|Test|E|Lead 56667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056668|156668|989898|1|9999056668|MR|Test|E|Lead 56668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056669|156669|989898|1|9999056669|MR|Test|E|Lead 56669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056670|156670|989898|1|9999056670|MR|Test|E|Lead 56670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056671|156671|989898|1|9999056671|MR|Test|E|Lead 56671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056672|156672|989898|1|9999056672|MR|Test|E|Lead 56672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056673|156673|989898|1|9999056673|MR|Test|E|Lead 56673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056674|156674|989898|1|9999056674|MR|Test|E|Lead 56674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056675|156675|989898|1|9999056675|MR|Test|E|Lead 56675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056676|156676|989898|1|9999056676|MR|Test|E|Lead 56676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056677|156677|989898|1|9999056677|MR|Test|E|Lead 56677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056678|156678|989898|1|9999056678|MR|Test|E|Lead 56678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056679|156679|989898|1|9999056679|MR|Test|E|Lead 56679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056680|156680|989898|1|9999056680|MR|Test|E|Lead 56680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056681|156681|989898|1|9999056681|MR|Test|E|Lead 56681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056682|156682|989898|1|9999056682|MR|Test|E|Lead 56682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056683|156683|989898|1|9999056683|MR|Test|E|Lead 56683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056684|156684|989898|1|9999056684|MR|Test|E|Lead 56684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056685|156685|989898|1|9999056685|MR|Test|E|Lead 56685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056686|156686|989898|1|9999056686|MR|Test|E|Lead 56686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056687|156687|989898|1|9999056687|MR|Test|E|Lead 56687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056688|156688|989898|1|9999056688|MR|Test|E|Lead 56688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056689|156689|989898|1|9999056689|MR|Test|E|Lead 56689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056690|156690|989898|1|9999056690|MR|Test|E|Lead 56690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056691|156691|989898|1|9999056691|MR|Test|E|Lead 56691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056692|156692|989898|1|9999056692|MR|Test|E|Lead 56692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056693|156693|989898|1|9999056693|MR|Test|E|Lead 56693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056694|156694|989898|1|9999056694|MR|Test|E|Lead 56694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056695|156695|989898|1|9999056695|MR|Test|E|Lead 56695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056696|156696|989898|1|9999056696|MR|Test|E|Lead 56696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056697|156697|989898|1|9999056697|MR|Test|E|Lead 56697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056698|156698|989898|1|9999056698|MR|Test|E|Lead 56698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056699|156699|989898|1|9999056699|MR|Test|E|Lead 56699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056700|156700|989898|1|9999056700|MR|Test|E|Lead 56700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056701|156701|989898|1|9999056701|MR|Test|E|Lead 56701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056702|156702|989898|1|9999056702|MR|Test|E|Lead 56702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056703|156703|989898|1|9999056703|MR|Test|E|Lead 56703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056704|156704|989898|1|9999056704|MR|Test|E|Lead 56704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056705|156705|989898|1|9999056705|MR|Test|E|Lead 56705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056706|156706|989898|1|9999056706|MR|Test|E|Lead 56706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056707|156707|989898|1|9999056707|MR|Test|E|Lead 56707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056708|156708|989898|1|9999056708|MR|Test|E|Lead 56708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056709|156709|989898|1|9999056709|MR|Test|E|Lead 56709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056710|156710|989898|1|9999056710|MR|Test|E|Lead 56710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056711|156711|989898|1|9999056711|MR|Test|E|Lead 56711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056712|156712|989898|1|9999056712|MR|Test|E|Lead 56712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056713|156713|989898|1|9999056713|MR|Test|E|Lead 56713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056714|156714|989898|1|9999056714|MR|Test|E|Lead 56714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056715|156715|989898|1|9999056715|MR|Test|E|Lead 56715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056716|156716|989898|1|9999056716|MR|Test|E|Lead 56716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056717|156717|989898|1|9999056717|MR|Test|E|Lead 56717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056718|156718|989898|1|9999056718|MR|Test|E|Lead 56718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056719|156719|989898|1|9999056719|MR|Test|E|Lead 56719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056720|156720|989898|1|9999056720|MR|Test|E|Lead 56720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056721|156721|989898|1|9999056721|MR|Test|E|Lead 56721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056722|156722|989898|1|9999056722|MR|Test|E|Lead 56722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056723|156723|989898|1|9999056723|MR|Test|E|Lead 56723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056724|156724|989898|1|9999056724|MR|Test|E|Lead 56724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056725|156725|989898|1|9999056725|MR|Test|E|Lead 56725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056726|156726|989898|1|9999056726|MR|Test|E|Lead 56726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056727|156727|989898|1|9999056727|MR|Test|E|Lead 56727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056728|156728|989898|1|9999056728|MR|Test|E|Lead 56728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056729|156729|989898|1|9999056729|MR|Test|E|Lead 56729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056730|156730|989898|1|9999056730|MR|Test|E|Lead 56730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056731|156731|989898|1|9999056731|MR|Test|E|Lead 56731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056732|156732|989898|1|9999056732|MR|Test|E|Lead 56732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056733|156733|989898|1|9999056733|MR|Test|E|Lead 56733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056734|156734|989898|1|9999056734|MR|Test|E|Lead 56734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056735|156735|989898|1|9999056735|MR|Test|E|Lead 56735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056736|156736|989898|1|9999056736|MR|Test|E|Lead 56736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056737|156737|989898|1|9999056737|MR|Test|E|Lead 56737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056738|156738|989898|1|9999056738|MR|Test|E|Lead 56738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056739|156739|989898|1|9999056739|MR|Test|E|Lead 56739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056740|156740|989898|1|9999056740|MR|Test|E|Lead 56740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056741|156741|989898|1|9999056741|MR|Test|E|Lead 56741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056742|156742|989898|1|9999056742|MR|Test|E|Lead 56742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056743|156743|989898|1|9999056743|MR|Test|E|Lead 56743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056744|156744|989898|1|9999056744|MR|Test|E|Lead 56744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056745|156745|989898|1|9999056745|MR|Test|E|Lead 56745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056746|156746|989898|1|9999056746|MR|Test|E|Lead 56746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056747|156747|989898|1|9999056747|MR|Test|E|Lead 56747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056748|156748|989898|1|9999056748|MR|Test|E|Lead 56748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056749|156749|989898|1|9999056749|MR|Test|E|Lead 56749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056750|156750|989898|1|9999056750|MR|Test|E|Lead 56750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056751|156751|989898|1|9999056751|MR|Test|E|Lead 56751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056752|156752|989898|1|9999056752|MR|Test|E|Lead 56752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056753|156753|989898|1|9999056753|MR|Test|E|Lead 56753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056754|156754|989898|1|9999056754|MR|Test|E|Lead 56754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056755|156755|989898|1|9999056755|MR|Test|E|Lead 56755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056756|156756|989898|1|9999056756|MR|Test|E|Lead 56756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056757|156757|989898|1|9999056757|MR|Test|E|Lead 56757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056758|156758|989898|1|9999056758|MR|Test|E|Lead 56758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056759|156759|989898|1|9999056759|MR|Test|E|Lead 56759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056760|156760|989898|1|9999056760|MR|Test|E|Lead 56760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056761|156761|989898|1|9999056761|MR|Test|E|Lead 56761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056762|156762|989898|1|9999056762|MR|Test|E|Lead 56762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056763|156763|989898|1|9999056763|MR|Test|E|Lead 56763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056764|156764|989898|1|9999056764|MR|Test|E|Lead 56764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056765|156765|989898|1|9999056765|MR|Test|E|Lead 56765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056766|156766|989898|1|9999056766|MR|Test|E|Lead 56766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056767|156767|989898|1|9999056767|MR|Test|E|Lead 56767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056768|156768|989898|1|9999056768|MR|Test|E|Lead 56768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056769|156769|989898|1|9999056769|MR|Test|E|Lead 56769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056770|156770|989898|1|9999056770|MR|Test|E|Lead 56770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056771|156771|989898|1|9999056771|MR|Test|E|Lead 56771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056772|156772|989898|1|9999056772|MR|Test|E|Lead 56772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056773|156773|989898|1|9999056773|MR|Test|E|Lead 56773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056774|156774|989898|1|9999056774|MR|Test|E|Lead 56774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056775|156775|989898|1|9999056775|MR|Test|E|Lead 56775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056776|156776|989898|1|9999056776|MR|Test|E|Lead 56776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056777|156777|989898|1|9999056777|MR|Test|E|Lead 56777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056778|156778|989898|1|9999056778|MR|Test|E|Lead 56778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056779|156779|989898|1|9999056779|MR|Test|E|Lead 56779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056780|156780|989898|1|9999056780|MR|Test|E|Lead 56780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056781|156781|989898|1|9999056781|MR|Test|E|Lead 56781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056782|156782|989898|1|9999056782|MR|Test|E|Lead 56782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056783|156783|989898|1|9999056783|MR|Test|E|Lead 56783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056784|156784|989898|1|9999056784|MR|Test|E|Lead 56784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056785|156785|989898|1|9999056785|MR|Test|E|Lead 56785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056786|156786|989898|1|9999056786|MR|Test|E|Lead 56786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056787|156787|989898|1|9999056787|MR|Test|E|Lead 56787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056788|156788|989898|1|9999056788|MR|Test|E|Lead 56788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056789|156789|989898|1|9999056789|MR|Test|E|Lead 56789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056790|156790|989898|1|9999056790|MR|Test|E|Lead 56790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056791|156791|989898|1|9999056791|MR|Test|E|Lead 56791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056792|156792|989898|1|9999056792|MR|Test|E|Lead 56792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056793|156793|989898|1|9999056793|MR|Test|E|Lead 56793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056794|156794|989898|1|9999056794|MR|Test|E|Lead 56794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056795|156795|989898|1|9999056795|MR|Test|E|Lead 56795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056796|156796|989898|1|9999056796|MR|Test|E|Lead 56796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056797|156797|989898|1|9999056797|MR|Test|E|Lead 56797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056798|156798|989898|1|9999056798|MR|Test|E|Lead 56798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056799|156799|989898|1|9999056799|MR|Test|E|Lead 56799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056800|156800|989898|1|9999056800|MR|Test|E|Lead 56800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056801|156801|989898|1|9999056801|MR|Test|E|Lead 56801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056802|156802|989898|1|9999056802|MR|Test|E|Lead 56802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056803|156803|989898|1|9999056803|MR|Test|E|Lead 56803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056804|156804|989898|1|9999056804|MR|Test|E|Lead 56804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056805|156805|989898|1|9999056805|MR|Test|E|Lead 56805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056806|156806|989898|1|9999056806|MR|Test|E|Lead 56806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056807|156807|989898|1|9999056807|MR|Test|E|Lead 56807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056808|156808|989898|1|9999056808|MR|Test|E|Lead 56808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056809|156809|989898|1|9999056809|MR|Test|E|Lead 56809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056810|156810|989898|1|9999056810|MR|Test|E|Lead 56810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056811|156811|989898|1|9999056811|MR|Test|E|Lead 56811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056812|156812|989898|1|9999056812|MR|Test|E|Lead 56812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056813|156813|989898|1|9999056813|MR|Test|E|Lead 56813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056814|156814|989898|1|9999056814|MR|Test|E|Lead 56814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056815|156815|989898|1|9999056815|MR|Test|E|Lead 56815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056816|156816|989898|1|9999056816|MR|Test|E|Lead 56816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056817|156817|989898|1|9999056817|MR|Test|E|Lead 56817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056818|156818|989898|1|9999056818|MR|Test|E|Lead 56818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056819|156819|989898|1|9999056819|MR|Test|E|Lead 56819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056820|156820|989898|1|9999056820|MR|Test|E|Lead 56820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056821|156821|989898|1|9999056821|MR|Test|E|Lead 56821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056822|156822|989898|1|9999056822|MR|Test|E|Lead 56822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056823|156823|989898|1|9999056823|MR|Test|E|Lead 56823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056824|156824|989898|1|9999056824|MR|Test|E|Lead 56824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056825|156825|989898|1|9999056825|MR|Test|E|Lead 56825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056826|156826|989898|1|9999056826|MR|Test|E|Lead 56826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056827|156827|989898|1|9999056827|MR|Test|E|Lead 56827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056828|156828|989898|1|9999056828|MR|Test|E|Lead 56828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056829|156829|989898|1|9999056829|MR|Test|E|Lead 56829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056830|156830|989898|1|9999056830|MR|Test|E|Lead 56830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056831|156831|989898|1|9999056831|MR|Test|E|Lead 56831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056832|156832|989898|1|9999056832|MR|Test|E|Lead 56832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056833|156833|989898|1|9999056833|MR|Test|E|Lead 56833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056834|156834|989898|1|9999056834|MR|Test|E|Lead 56834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056835|156835|989898|1|9999056835|MR|Test|E|Lead 56835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056836|156836|989898|1|9999056836|MR|Test|E|Lead 56836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056837|156837|989898|1|9999056837|MR|Test|E|Lead 56837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056838|156838|989898|1|9999056838|MR|Test|E|Lead 56838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056839|156839|989898|1|9999056839|MR|Test|E|Lead 56839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056840|156840|989898|1|9999056840|MR|Test|E|Lead 56840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056841|156841|989898|1|9999056841|MR|Test|E|Lead 56841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056842|156842|989898|1|9999056842|MR|Test|E|Lead 56842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056843|156843|989898|1|9999056843|MR|Test|E|Lead 56843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056844|156844|989898|1|9999056844|MR|Test|E|Lead 56844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056845|156845|989898|1|9999056845|MR|Test|E|Lead 56845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056846|156846|989898|1|9999056846|MR|Test|E|Lead 56846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056847|156847|989898|1|9999056847|MR|Test|E|Lead 56847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056848|156848|989898|1|9999056848|MR|Test|E|Lead 56848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056849|156849|989898|1|9999056849|MR|Test|E|Lead 56849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056850|156850|989898|1|9999056850|MR|Test|E|Lead 56850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056851|156851|989898|1|9999056851|MR|Test|E|Lead 56851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056852|156852|989898|1|9999056852|MR|Test|E|Lead 56852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056853|156853|989898|1|9999056853|MR|Test|E|Lead 56853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056854|156854|989898|1|9999056854|MR|Test|E|Lead 56854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056855|156855|989898|1|9999056855|MR|Test|E|Lead 56855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056856|156856|989898|1|9999056856|MR|Test|E|Lead 56856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056857|156857|989898|1|9999056857|MR|Test|E|Lead 56857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056858|156858|989898|1|9999056858|MR|Test|E|Lead 56858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056859|156859|989898|1|9999056859|MR|Test|E|Lead 56859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056860|156860|989898|1|9999056860|MR|Test|E|Lead 56860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056861|156861|989898|1|9999056861|MR|Test|E|Lead 56861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056862|156862|989898|1|9999056862|MR|Test|E|Lead 56862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056863|156863|989898|1|9999056863|MR|Test|E|Lead 56863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056864|156864|989898|1|9999056864|MR|Test|E|Lead 56864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056865|156865|989898|1|9999056865|MR|Test|E|Lead 56865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056866|156866|989898|1|9999056866|MR|Test|E|Lead 56866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056867|156867|989898|1|9999056867|MR|Test|E|Lead 56867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056868|156868|989898|1|9999056868|MR|Test|E|Lead 56868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056869|156869|989898|1|9999056869|MR|Test|E|Lead 56869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056870|156870|989898|1|9999056870|MR|Test|E|Lead 56870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056871|156871|989898|1|9999056871|MR|Test|E|Lead 56871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056872|156872|989898|1|9999056872|MR|Test|E|Lead 56872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056873|156873|989898|1|9999056873|MR|Test|E|Lead 56873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056874|156874|989898|1|9999056874|MR|Test|E|Lead 56874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056875|156875|989898|1|9999056875|MR|Test|E|Lead 56875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056876|156876|989898|1|9999056876|MR|Test|E|Lead 56876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056877|156877|989898|1|9999056877|MR|Test|E|Lead 56877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056878|156878|989898|1|9999056878|MR|Test|E|Lead 56878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056879|156879|989898|1|9999056879|MR|Test|E|Lead 56879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056880|156880|989898|1|9999056880|MR|Test|E|Lead 56880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056881|156881|989898|1|9999056881|MR|Test|E|Lead 56881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056882|156882|989898|1|9999056882|MR|Test|E|Lead 56882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056883|156883|989898|1|9999056883|MR|Test|E|Lead 56883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056884|156884|989898|1|9999056884|MR|Test|E|Lead 56884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056885|156885|989898|1|9999056885|MR|Test|E|Lead 56885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056886|156886|989898|1|9999056886|MR|Test|E|Lead 56886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056887|156887|989898|1|9999056887|MR|Test|E|Lead 56887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056888|156888|989898|1|9999056888|MR|Test|E|Lead 56888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056889|156889|989898|1|9999056889|MR|Test|E|Lead 56889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056890|156890|989898|1|9999056890|MR|Test|E|Lead 56890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056891|156891|989898|1|9999056891|MR|Test|E|Lead 56891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056892|156892|989898|1|9999056892|MR|Test|E|Lead 56892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056893|156893|989898|1|9999056893|MR|Test|E|Lead 56893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056894|156894|989898|1|9999056894|MR|Test|E|Lead 56894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056895|156895|989898|1|9999056895|MR|Test|E|Lead 56895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056896|156896|989898|1|9999056896|MR|Test|E|Lead 56896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056897|156897|989898|1|9999056897|MR|Test|E|Lead 56897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056898|156898|989898|1|9999056898|MR|Test|E|Lead 56898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056899|156899|989898|1|9999056899|MR|Test|E|Lead 56899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056900|156900|989898|1|9999056900|MR|Test|E|Lead 56900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056901|156901|989898|1|9999056901|MR|Test|E|Lead 56901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056902|156902|989898|1|9999056902|MR|Test|E|Lead 56902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056903|156903|989898|1|9999056903|MR|Test|E|Lead 56903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056904|156904|989898|1|9999056904|MR|Test|E|Lead 56904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056905|156905|989898|1|9999056905|MR|Test|E|Lead 56905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056906|156906|989898|1|9999056906|MR|Test|E|Lead 56906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056907|156907|989898|1|9999056907|MR|Test|E|Lead 56907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056908|156908|989898|1|9999056908|MR|Test|E|Lead 56908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056909|156909|989898|1|9999056909|MR|Test|E|Lead 56909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056910|156910|989898|1|9999056910|MR|Test|E|Lead 56910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056911|156911|989898|1|9999056911|MR|Test|E|Lead 56911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056912|156912|989898|1|9999056912|MR|Test|E|Lead 56912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056913|156913|989898|1|9999056913|MR|Test|E|Lead 56913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056914|156914|989898|1|9999056914|MR|Test|E|Lead 56914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056915|156915|989898|1|9999056915|MR|Test|E|Lead 56915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056916|156916|989898|1|9999056916|MR|Test|E|Lead 56916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056917|156917|989898|1|9999056917|MR|Test|E|Lead 56917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056918|156918|989898|1|9999056918|MR|Test|E|Lead 56918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056919|156919|989898|1|9999056919|MR|Test|E|Lead 56919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056920|156920|989898|1|9999056920|MR|Test|E|Lead 56920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056921|156921|989898|1|9999056921|MR|Test|E|Lead 56921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056922|156922|989898|1|9999056922|MR|Test|E|Lead 56922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056923|156923|989898|1|9999056923|MR|Test|E|Lead 56923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056924|156924|989898|1|9999056924|MR|Test|E|Lead 56924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056925|156925|989898|1|9999056925|MR|Test|E|Lead 56925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056926|156926|989898|1|9999056926|MR|Test|E|Lead 56926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056927|156927|989898|1|9999056927|MR|Test|E|Lead 56927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056928|156928|989898|1|9999056928|MR|Test|E|Lead 56928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056929|156929|989898|1|9999056929|MR|Test|E|Lead 56929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056930|156930|989898|1|9999056930|MR|Test|E|Lead 56930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056931|156931|989898|1|9999056931|MR|Test|E|Lead 56931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056932|156932|989898|1|9999056932|MR|Test|E|Lead 56932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056933|156933|989898|1|9999056933|MR|Test|E|Lead 56933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056934|156934|989898|1|9999056934|MR|Test|E|Lead 56934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056935|156935|989898|1|9999056935|MR|Test|E|Lead 56935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056936|156936|989898|1|9999056936|MR|Test|E|Lead 56936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056937|156937|989898|1|9999056937|MR|Test|E|Lead 56937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056938|156938|989898|1|9999056938|MR|Test|E|Lead 56938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056939|156939|989898|1|9999056939|MR|Test|E|Lead 56939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056940|156940|989898|1|9999056940|MR|Test|E|Lead 56940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056941|156941|989898|1|9999056941|MR|Test|E|Lead 56941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056942|156942|989898|1|9999056942|MR|Test|E|Lead 56942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056943|156943|989898|1|9999056943|MR|Test|E|Lead 56943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056944|156944|989898|1|9999056944|MR|Test|E|Lead 56944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056945|156945|989898|1|9999056945|MR|Test|E|Lead 56945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056946|156946|989898|1|9999056946|MR|Test|E|Lead 56946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056947|156947|989898|1|9999056947|MR|Test|E|Lead 56947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056948|156948|989898|1|9999056948|MR|Test|E|Lead 56948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056949|156949|989898|1|9999056949|MR|Test|E|Lead 56949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056950|156950|989898|1|9999056950|MR|Test|E|Lead 56950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056951|156951|989898|1|9999056951|MR|Test|E|Lead 56951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056952|156952|989898|1|9999056952|MR|Test|E|Lead 56952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056953|156953|989898|1|9999056953|MR|Test|E|Lead 56953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056954|156954|989898|1|9999056954|MR|Test|E|Lead 56954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056955|156955|989898|1|9999056955|MR|Test|E|Lead 56955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056956|156956|989898|1|9999056956|MR|Test|E|Lead 56956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056957|156957|989898|1|9999056957|MR|Test|E|Lead 56957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056958|156958|989898|1|9999056958|MR|Test|E|Lead 56958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056959|156959|989898|1|9999056959|MR|Test|E|Lead 56959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056960|156960|989898|1|9999056960|MR|Test|E|Lead 56960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056961|156961|989898|1|9999056961|MR|Test|E|Lead 56961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056962|156962|989898|1|9999056962|MR|Test|E|Lead 56962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056963|156963|989898|1|9999056963|MR|Test|E|Lead 56963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056964|156964|989898|1|9999056964|MR|Test|E|Lead 56964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056965|156965|989898|1|9999056965|MR|Test|E|Lead 56965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056966|156966|989898|1|9999056966|MR|Test|E|Lead 56966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056967|156967|989898|1|9999056967|MR|Test|E|Lead 56967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056968|156968|989898|1|9999056968|MR|Test|E|Lead 56968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056969|156969|989898|1|9999056969|MR|Test|E|Lead 56969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056970|156970|989898|1|9999056970|MR|Test|E|Lead 56970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056971|156971|989898|1|9999056971|MR|Test|E|Lead 56971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056972|156972|989898|1|9999056972|MR|Test|E|Lead 56972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056973|156973|989898|1|9999056973|MR|Test|E|Lead 56973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056974|156974|989898|1|9999056974|MR|Test|E|Lead 56974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056975|156975|989898|1|9999056975|MR|Test|E|Lead 56975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056976|156976|989898|1|9999056976|MR|Test|E|Lead 56976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056977|156977|989898|1|9999056977|MR|Test|E|Lead 56977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056978|156978|989898|1|9999056978|MR|Test|E|Lead 56978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056979|156979|989898|1|9999056979|MR|Test|E|Lead 56979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056980|156980|989898|1|9999056980|MR|Test|E|Lead 56980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056981|156981|989898|1|9999056981|MR|Test|E|Lead 56981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056982|156982|989898|1|9999056982|MR|Test|E|Lead 56982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056983|156983|989898|1|9999056983|MR|Test|E|Lead 56983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056984|156984|989898|1|9999056984|MR|Test|E|Lead 56984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056985|156985|989898|1|9999056985|MR|Test|E|Lead 56985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056986|156986|989898|1|9999056986|MR|Test|E|Lead 56986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056987|156987|989898|1|9999056987|MR|Test|E|Lead 56987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056988|156988|989898|1|9999056988|MR|Test|E|Lead 56988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056989|156989|989898|1|9999056989|MR|Test|E|Lead 56989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056990|156990|989898|1|9999056990|MR|Test|E|Lead 56990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056991|156991|989898|1|9999056991|MR|Test|E|Lead 56991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056992|156992|989898|1|9999056992|MR|Test|E|Lead 56992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056993|156993|989898|1|9999056993|MR|Test|E|Lead 56993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056994|156994|989898|1|9999056994|MR|Test|E|Lead 56994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056995|156995|989898|1|9999056995|MR|Test|E|Lead 56995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056996|156996|989898|1|9999056996|MR|Test|E|Lead 56996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056997|156997|989898|1|9999056997|MR|Test|E|Lead 56997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056998|156998|989898|1|9999056998|MR|Test|E|Lead 56998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1056999|156999|989898|1|9999056999|MR|Test|E|Lead 56999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057000|157000|989898|1|9999057000|MR|Test|E|Lead 57000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057001|157001|989898|1|9999057001|MR|Test|E|Lead 57001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057002|157002|989898|1|9999057002|MR|Test|E|Lead 57002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057003|157003|989898|1|9999057003|MR|Test|E|Lead 57003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057004|157004|989898|1|9999057004|MR|Test|E|Lead 57004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057005|157005|989898|1|9999057005|MR|Test|E|Lead 57005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057006|157006|989898|1|9999057006|MR|Test|E|Lead 57006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057007|157007|989898|1|9999057007|MR|Test|E|Lead 57007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057008|157008|989898|1|9999057008|MR|Test|E|Lead 57008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057009|157009|989898|1|9999057009|MR|Test|E|Lead 57009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057010|157010|989898|1|9999057010|MR|Test|E|Lead 57010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057011|157011|989898|1|9999057011|MR|Test|E|Lead 57011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057012|157012|989898|1|9999057012|MR|Test|E|Lead 57012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057013|157013|989898|1|9999057013|MR|Test|E|Lead 57013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057014|157014|989898|1|9999057014|MR|Test|E|Lead 57014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057015|157015|989898|1|9999057015|MR|Test|E|Lead 57015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057016|157016|989898|1|9999057016|MR|Test|E|Lead 57016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057017|157017|989898|1|9999057017|MR|Test|E|Lead 57017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057018|157018|989898|1|9999057018|MR|Test|E|Lead 57018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057019|157019|989898|1|9999057019|MR|Test|E|Lead 57019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057020|157020|989898|1|9999057020|MR|Test|E|Lead 57020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057021|157021|989898|1|9999057021|MR|Test|E|Lead 57021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057022|157022|989898|1|9999057022|MR|Test|E|Lead 57022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057023|157023|989898|1|9999057023|MR|Test|E|Lead 57023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057024|157024|989898|1|9999057024|MR|Test|E|Lead 57024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057025|157025|989898|1|9999057025|MR|Test|E|Lead 57025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057026|157026|989898|1|9999057026|MR|Test|E|Lead 57026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057027|157027|989898|1|9999057027|MR|Test|E|Lead 57027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057028|157028|989898|1|9999057028|MR|Test|E|Lead 57028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057029|157029|989898|1|9999057029|MR|Test|E|Lead 57029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057030|157030|989898|1|9999057030|MR|Test|E|Lead 57030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057031|157031|989898|1|9999057031|MR|Test|E|Lead 57031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057032|157032|989898|1|9999057032|MR|Test|E|Lead 57032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057033|157033|989898|1|9999057033|MR|Test|E|Lead 57033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057034|157034|989898|1|9999057034|MR|Test|E|Lead 57034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057035|157035|989898|1|9999057035|MR|Test|E|Lead 57035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057036|157036|989898|1|9999057036|MR|Test|E|Lead 57036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057037|157037|989898|1|9999057037|MR|Test|E|Lead 57037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057038|157038|989898|1|9999057038|MR|Test|E|Lead 57038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057039|157039|989898|1|9999057039|MR|Test|E|Lead 57039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057040|157040|989898|1|9999057040|MR|Test|E|Lead 57040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057041|157041|989898|1|9999057041|MR|Test|E|Lead 57041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057042|157042|989898|1|9999057042|MR|Test|E|Lead 57042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057043|157043|989898|1|9999057043|MR|Test|E|Lead 57043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057044|157044|989898|1|9999057044|MR|Test|E|Lead 57044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057045|157045|989898|1|9999057045|MR|Test|E|Lead 57045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057046|157046|989898|1|9999057046|MR|Test|E|Lead 57046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057047|157047|989898|1|9999057047|MR|Test|E|Lead 57047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057048|157048|989898|1|9999057048|MR|Test|E|Lead 57048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057049|157049|989898|1|9999057049|MR|Test|E|Lead 57049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057050|157050|989898|1|9999057050|MR|Test|E|Lead 57050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057051|157051|989898|1|9999057051|MR|Test|E|Lead 57051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057052|157052|989898|1|9999057052|MR|Test|E|Lead 57052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057053|157053|989898|1|9999057053|MR|Test|E|Lead 57053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057054|157054|989898|1|9999057054|MR|Test|E|Lead 57054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057055|157055|989898|1|9999057055|MR|Test|E|Lead 57055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057056|157056|989898|1|9999057056|MR|Test|E|Lead 57056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057057|157057|989898|1|9999057057|MR|Test|E|Lead 57057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057058|157058|989898|1|9999057058|MR|Test|E|Lead 57058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057059|157059|989898|1|9999057059|MR|Test|E|Lead 57059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057060|157060|989898|1|9999057060|MR|Test|E|Lead 57060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057061|157061|989898|1|9999057061|MR|Test|E|Lead 57061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057062|157062|989898|1|9999057062|MR|Test|E|Lead 57062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057063|157063|989898|1|9999057063|MR|Test|E|Lead 57063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057064|157064|989898|1|9999057064|MR|Test|E|Lead 57064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057065|157065|989898|1|9999057065|MR|Test|E|Lead 57065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057066|157066|989898|1|9999057066|MR|Test|E|Lead 57066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057067|157067|989898|1|9999057067|MR|Test|E|Lead 57067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057068|157068|989898|1|9999057068|MR|Test|E|Lead 57068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057069|157069|989898|1|9999057069|MR|Test|E|Lead 57069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057070|157070|989898|1|9999057070|MR|Test|E|Lead 57070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057071|157071|989898|1|9999057071|MR|Test|E|Lead 57071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057072|157072|989898|1|9999057072|MR|Test|E|Lead 57072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057073|157073|989898|1|9999057073|MR|Test|E|Lead 57073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057074|157074|989898|1|9999057074|MR|Test|E|Lead 57074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057075|157075|989898|1|9999057075|MR|Test|E|Lead 57075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057076|157076|989898|1|9999057076|MR|Test|E|Lead 57076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057077|157077|989898|1|9999057077|MR|Test|E|Lead 57077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057078|157078|989898|1|9999057078|MR|Test|E|Lead 57078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057079|157079|989898|1|9999057079|MR|Test|E|Lead 57079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057080|157080|989898|1|9999057080|MR|Test|E|Lead 57080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057081|157081|989898|1|9999057081|MR|Test|E|Lead 57081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057082|157082|989898|1|9999057082|MR|Test|E|Lead 57082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057083|157083|989898|1|9999057083|MR|Test|E|Lead 57083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057084|157084|989898|1|9999057084|MR|Test|E|Lead 57084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057085|157085|989898|1|9999057085|MR|Test|E|Lead 57085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057086|157086|989898|1|9999057086|MR|Test|E|Lead 57086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057087|157087|989898|1|9999057087|MR|Test|E|Lead 57087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057088|157088|989898|1|9999057088|MR|Test|E|Lead 57088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057089|157089|989898|1|9999057089|MR|Test|E|Lead 57089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057090|157090|989898|1|9999057090|MR|Test|E|Lead 57090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057091|157091|989898|1|9999057091|MR|Test|E|Lead 57091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057092|157092|989898|1|9999057092|MR|Test|E|Lead 57092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057093|157093|989898|1|9999057093|MR|Test|E|Lead 57093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057094|157094|989898|1|9999057094|MR|Test|E|Lead 57094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057095|157095|989898|1|9999057095|MR|Test|E|Lead 57095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057096|157096|989898|1|9999057096|MR|Test|E|Lead 57096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057097|157097|989898|1|9999057097|MR|Test|E|Lead 57097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057098|157098|989898|1|9999057098|MR|Test|E|Lead 57098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057099|157099|989898|1|9999057099|MR|Test|E|Lead 57099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057100|157100|989898|1|9999057100|MR|Test|E|Lead 57100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057101|157101|989898|1|9999057101|MR|Test|E|Lead 57101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057102|157102|989898|1|9999057102|MR|Test|E|Lead 57102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057103|157103|989898|1|9999057103|MR|Test|E|Lead 57103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057104|157104|989898|1|9999057104|MR|Test|E|Lead 57104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057105|157105|989898|1|9999057105|MR|Test|E|Lead 57105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057106|157106|989898|1|9999057106|MR|Test|E|Lead 57106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057107|157107|989898|1|9999057107|MR|Test|E|Lead 57107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057108|157108|989898|1|9999057108|MR|Test|E|Lead 57108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057109|157109|989898|1|9999057109|MR|Test|E|Lead 57109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057110|157110|989898|1|9999057110|MR|Test|E|Lead 57110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057111|157111|989898|1|9999057111|MR|Test|E|Lead 57111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057112|157112|989898|1|9999057112|MR|Test|E|Lead 57112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057113|157113|989898|1|9999057113|MR|Test|E|Lead 57113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057114|157114|989898|1|9999057114|MR|Test|E|Lead 57114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057115|157115|989898|1|9999057115|MR|Test|E|Lead 57115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057116|157116|989898|1|9999057116|MR|Test|E|Lead 57116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057117|157117|989898|1|9999057117|MR|Test|E|Lead 57117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057118|157118|989898|1|9999057118|MR|Test|E|Lead 57118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057119|157119|989898|1|9999057119|MR|Test|E|Lead 57119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057120|157120|989898|1|9999057120|MR|Test|E|Lead 57120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057121|157121|989898|1|9999057121|MR|Test|E|Lead 57121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057122|157122|989898|1|9999057122|MR|Test|E|Lead 57122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057123|157123|989898|1|9999057123|MR|Test|E|Lead 57123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057124|157124|989898|1|9999057124|MR|Test|E|Lead 57124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057125|157125|989898|1|9999057125|MR|Test|E|Lead 57125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057126|157126|989898|1|9999057126|MR|Test|E|Lead 57126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057127|157127|989898|1|9999057127|MR|Test|E|Lead 57127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057128|157128|989898|1|9999057128|MR|Test|E|Lead 57128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057129|157129|989898|1|9999057129|MR|Test|E|Lead 57129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057130|157130|989898|1|9999057130|MR|Test|E|Lead 57130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057131|157131|989898|1|9999057131|MR|Test|E|Lead 57131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057132|157132|989898|1|9999057132|MR|Test|E|Lead 57132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057133|157133|989898|1|9999057133|MR|Test|E|Lead 57133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057134|157134|989898|1|9999057134|MR|Test|E|Lead 57134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057135|157135|989898|1|9999057135|MR|Test|E|Lead 57135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057136|157136|989898|1|9999057136|MR|Test|E|Lead 57136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057137|157137|989898|1|9999057137|MR|Test|E|Lead 57137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057138|157138|989898|1|9999057138|MR|Test|E|Lead 57138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057139|157139|989898|1|9999057139|MR|Test|E|Lead 57139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057140|157140|989898|1|9999057140|MR|Test|E|Lead 57140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057141|157141|989898|1|9999057141|MR|Test|E|Lead 57141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057142|157142|989898|1|9999057142|MR|Test|E|Lead 57142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057143|157143|989898|1|9999057143|MR|Test|E|Lead 57143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057144|157144|989898|1|9999057144|MR|Test|E|Lead 57144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057145|157145|989898|1|9999057145|MR|Test|E|Lead 57145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057146|157146|989898|1|9999057146|MR|Test|E|Lead 57146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057147|157147|989898|1|9999057147|MR|Test|E|Lead 57147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057148|157148|989898|1|9999057148|MR|Test|E|Lead 57148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057149|157149|989898|1|9999057149|MR|Test|E|Lead 57149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057150|157150|989898|1|9999057150|MR|Test|E|Lead 57150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057151|157151|989898|1|9999057151|MR|Test|E|Lead 57151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057152|157152|989898|1|9999057152|MR|Test|E|Lead 57152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057153|157153|989898|1|9999057153|MR|Test|E|Lead 57153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057154|157154|989898|1|9999057154|MR|Test|E|Lead 57154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057155|157155|989898|1|9999057155|MR|Test|E|Lead 57155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057156|157156|989898|1|9999057156|MR|Test|E|Lead 57156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057157|157157|989898|1|9999057157|MR|Test|E|Lead 57157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057158|157158|989898|1|9999057158|MR|Test|E|Lead 57158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057159|157159|989898|1|9999057159|MR|Test|E|Lead 57159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057160|157160|989898|1|9999057160|MR|Test|E|Lead 57160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057161|157161|989898|1|9999057161|MR|Test|E|Lead 57161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057162|157162|989898|1|9999057162|MR|Test|E|Lead 57162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057163|157163|989898|1|9999057163|MR|Test|E|Lead 57163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057164|157164|989898|1|9999057164|MR|Test|E|Lead 57164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057165|157165|989898|1|9999057165|MR|Test|E|Lead 57165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057166|157166|989898|1|9999057166|MR|Test|E|Lead 57166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057167|157167|989898|1|9999057167|MR|Test|E|Lead 57167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057168|157168|989898|1|9999057168|MR|Test|E|Lead 57168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057169|157169|989898|1|9999057169|MR|Test|E|Lead 57169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057170|157170|989898|1|9999057170|MR|Test|E|Lead 57170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057171|157171|989898|1|9999057171|MR|Test|E|Lead 57171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057172|157172|989898|1|9999057172|MR|Test|E|Lead 57172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057173|157173|989898|1|9999057173|MR|Test|E|Lead 57173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057174|157174|989898|1|9999057174|MR|Test|E|Lead 57174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057175|157175|989898|1|9999057175|MR|Test|E|Lead 57175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057176|157176|989898|1|9999057176|MR|Test|E|Lead 57176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057177|157177|989898|1|9999057177|MR|Test|E|Lead 57177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057178|157178|989898|1|9999057178|MR|Test|E|Lead 57178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057179|157179|989898|1|9999057179|MR|Test|E|Lead 57179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057180|157180|989898|1|9999057180|MR|Test|E|Lead 57180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057181|157181|989898|1|9999057181|MR|Test|E|Lead 57181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057182|157182|989898|1|9999057182|MR|Test|E|Lead 57182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057183|157183|989898|1|9999057183|MR|Test|E|Lead 57183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057184|157184|989898|1|9999057184|MR|Test|E|Lead 57184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057185|157185|989898|1|9999057185|MR|Test|E|Lead 57185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057186|157186|989898|1|9999057186|MR|Test|E|Lead 57186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057187|157187|989898|1|9999057187|MR|Test|E|Lead 57187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057188|157188|989898|1|9999057188|MR|Test|E|Lead 57188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057189|157189|989898|1|9999057189|MR|Test|E|Lead 57189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057190|157190|989898|1|9999057190|MR|Test|E|Lead 57190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057191|157191|989898|1|9999057191|MR|Test|E|Lead 57191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057192|157192|989898|1|9999057192|MR|Test|E|Lead 57192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057193|157193|989898|1|9999057193|MR|Test|E|Lead 57193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057194|157194|989898|1|9999057194|MR|Test|E|Lead 57194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057195|157195|989898|1|9999057195|MR|Test|E|Lead 57195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057196|157196|989898|1|9999057196|MR|Test|E|Lead 57196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057197|157197|989898|1|9999057197|MR|Test|E|Lead 57197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057198|157198|989898|1|9999057198|MR|Test|E|Lead 57198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057199|157199|989898|1|9999057199|MR|Test|E|Lead 57199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057200|157200|989898|1|9999057200|MR|Test|E|Lead 57200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057201|157201|989898|1|9999057201|MR|Test|E|Lead 57201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057202|157202|989898|1|9999057202|MR|Test|E|Lead 57202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057203|157203|989898|1|9999057203|MR|Test|E|Lead 57203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057204|157204|989898|1|9999057204|MR|Test|E|Lead 57204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057205|157205|989898|1|9999057205|MR|Test|E|Lead 57205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057206|157206|989898|1|9999057206|MR|Test|E|Lead 57206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057207|157207|989898|1|9999057207|MR|Test|E|Lead 57207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057208|157208|989898|1|9999057208|MR|Test|E|Lead 57208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057209|157209|989898|1|9999057209|MR|Test|E|Lead 57209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057210|157210|989898|1|9999057210|MR|Test|E|Lead 57210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057211|157211|989898|1|9999057211|MR|Test|E|Lead 57211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057212|157212|989898|1|9999057212|MR|Test|E|Lead 57212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057213|157213|989898|1|9999057213|MR|Test|E|Lead 57213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057214|157214|989898|1|9999057214|MR|Test|E|Lead 57214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057215|157215|989898|1|9999057215|MR|Test|E|Lead 57215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057216|157216|989898|1|9999057216|MR|Test|E|Lead 57216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057217|157217|989898|1|9999057217|MR|Test|E|Lead 57217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057218|157218|989898|1|9999057218|MR|Test|E|Lead 57218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057219|157219|989898|1|9999057219|MR|Test|E|Lead 57219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057220|157220|989898|1|9999057220|MR|Test|E|Lead 57220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057221|157221|989898|1|9999057221|MR|Test|E|Lead 57221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057222|157222|989898|1|9999057222|MR|Test|E|Lead 57222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057223|157223|989898|1|9999057223|MR|Test|E|Lead 57223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057224|157224|989898|1|9999057224|MR|Test|E|Lead 57224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057225|157225|989898|1|9999057225|MR|Test|E|Lead 57225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057226|157226|989898|1|9999057226|MR|Test|E|Lead 57226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057227|157227|989898|1|9999057227|MR|Test|E|Lead 57227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057228|157228|989898|1|9999057228|MR|Test|E|Lead 57228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057229|157229|989898|1|9999057229|MR|Test|E|Lead 57229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057230|157230|989898|1|9999057230|MR|Test|E|Lead 57230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057231|157231|989898|1|9999057231|MR|Test|E|Lead 57231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057232|157232|989898|1|9999057232|MR|Test|E|Lead 57232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057233|157233|989898|1|9999057233|MR|Test|E|Lead 57233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057234|157234|989898|1|9999057234|MR|Test|E|Lead 57234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057235|157235|989898|1|9999057235|MR|Test|E|Lead 57235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057236|157236|989898|1|9999057236|MR|Test|E|Lead 57236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057237|157237|989898|1|9999057237|MR|Test|E|Lead 57237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057238|157238|989898|1|9999057238|MR|Test|E|Lead 57238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057239|157239|989898|1|9999057239|MR|Test|E|Lead 57239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057240|157240|989898|1|9999057240|MR|Test|E|Lead 57240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057241|157241|989898|1|9999057241|MR|Test|E|Lead 57241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057242|157242|989898|1|9999057242|MR|Test|E|Lead 57242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057243|157243|989898|1|9999057243|MR|Test|E|Lead 57243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057244|157244|989898|1|9999057244|MR|Test|E|Lead 57244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057245|157245|989898|1|9999057245|MR|Test|E|Lead 57245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057246|157246|989898|1|9999057246|MR|Test|E|Lead 57246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057247|157247|989898|1|9999057247|MR|Test|E|Lead 57247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057248|157248|989898|1|9999057248|MR|Test|E|Lead 57248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057249|157249|989898|1|9999057249|MR|Test|E|Lead 57249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057250|157250|989898|1|9999057250|MR|Test|E|Lead 57250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057251|157251|989898|1|9999057251|MR|Test|E|Lead 57251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057252|157252|989898|1|9999057252|MR|Test|E|Lead 57252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057253|157253|989898|1|9999057253|MR|Test|E|Lead 57253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057254|157254|989898|1|9999057254|MR|Test|E|Lead 57254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057255|157255|989898|1|9999057255|MR|Test|E|Lead 57255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057256|157256|989898|1|9999057256|MR|Test|E|Lead 57256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057257|157257|989898|1|9999057257|MR|Test|E|Lead 57257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057258|157258|989898|1|9999057258|MR|Test|E|Lead 57258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057259|157259|989898|1|9999057259|MR|Test|E|Lead 57259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057260|157260|989898|1|9999057260|MR|Test|E|Lead 57260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057261|157261|989898|1|9999057261|MR|Test|E|Lead 57261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057262|157262|989898|1|9999057262|MR|Test|E|Lead 57262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057263|157263|989898|1|9999057263|MR|Test|E|Lead 57263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057264|157264|989898|1|9999057264|MR|Test|E|Lead 57264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057265|157265|989898|1|9999057265|MR|Test|E|Lead 57265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057266|157266|989898|1|9999057266|MR|Test|E|Lead 57266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057267|157267|989898|1|9999057267|MR|Test|E|Lead 57267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057268|157268|989898|1|9999057268|MR|Test|E|Lead 57268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057269|157269|989898|1|9999057269|MR|Test|E|Lead 57269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057270|157270|989898|1|9999057270|MR|Test|E|Lead 57270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057271|157271|989898|1|9999057271|MR|Test|E|Lead 57271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057272|157272|989898|1|9999057272|MR|Test|E|Lead 57272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057273|157273|989898|1|9999057273|MR|Test|E|Lead 57273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057274|157274|989898|1|9999057274|MR|Test|E|Lead 57274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057275|157275|989898|1|9999057275|MR|Test|E|Lead 57275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057276|157276|989898|1|9999057276|MR|Test|E|Lead 57276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057277|157277|989898|1|9999057277|MR|Test|E|Lead 57277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057278|157278|989898|1|9999057278|MR|Test|E|Lead 57278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057279|157279|989898|1|9999057279|MR|Test|E|Lead 57279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057280|157280|989898|1|9999057280|MR|Test|E|Lead 57280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057281|157281|989898|1|9999057281|MR|Test|E|Lead 57281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057282|157282|989898|1|9999057282|MR|Test|E|Lead 57282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057283|157283|989898|1|9999057283|MR|Test|E|Lead 57283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057284|157284|989898|1|9999057284|MR|Test|E|Lead 57284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057285|157285|989898|1|9999057285|MR|Test|E|Lead 57285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057286|157286|989898|1|9999057286|MR|Test|E|Lead 57286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057287|157287|989898|1|9999057287|MR|Test|E|Lead 57287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057288|157288|989898|1|9999057288|MR|Test|E|Lead 57288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057289|157289|989898|1|9999057289|MR|Test|E|Lead 57289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057290|157290|989898|1|9999057290|MR|Test|E|Lead 57290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057291|157291|989898|1|9999057291|MR|Test|E|Lead 57291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057292|157292|989898|1|9999057292|MR|Test|E|Lead 57292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057293|157293|989898|1|9999057293|MR|Test|E|Lead 57293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057294|157294|989898|1|9999057294|MR|Test|E|Lead 57294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057295|157295|989898|1|9999057295|MR|Test|E|Lead 57295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057296|157296|989898|1|9999057296|MR|Test|E|Lead 57296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057297|157297|989898|1|9999057297|MR|Test|E|Lead 57297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057298|157298|989898|1|9999057298|MR|Test|E|Lead 57298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057299|157299|989898|1|9999057299|MR|Test|E|Lead 57299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057300|157300|989898|1|9999057300|MR|Test|E|Lead 57300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057301|157301|989898|1|9999057301|MR|Test|E|Lead 57301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057302|157302|989898|1|9999057302|MR|Test|E|Lead 57302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057303|157303|989898|1|9999057303|MR|Test|E|Lead 57303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057304|157304|989898|1|9999057304|MR|Test|E|Lead 57304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057305|157305|989898|1|9999057305|MR|Test|E|Lead 57305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057306|157306|989898|1|9999057306|MR|Test|E|Lead 57306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057307|157307|989898|1|9999057307|MR|Test|E|Lead 57307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057308|157308|989898|1|9999057308|MR|Test|E|Lead 57308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057309|157309|989898|1|9999057309|MR|Test|E|Lead 57309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057310|157310|989898|1|9999057310|MR|Test|E|Lead 57310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057311|157311|989898|1|9999057311|MR|Test|E|Lead 57311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057312|157312|989898|1|9999057312|MR|Test|E|Lead 57312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057313|157313|989898|1|9999057313|MR|Test|E|Lead 57313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057314|157314|989898|1|9999057314|MR|Test|E|Lead 57314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057315|157315|989898|1|9999057315|MR|Test|E|Lead 57315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057316|157316|989898|1|9999057316|MR|Test|E|Lead 57316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057317|157317|989898|1|9999057317|MR|Test|E|Lead 57317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057318|157318|989898|1|9999057318|MR|Test|E|Lead 57318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057319|157319|989898|1|9999057319|MR|Test|E|Lead 57319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057320|157320|989898|1|9999057320|MR|Test|E|Lead 57320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057321|157321|989898|1|9999057321|MR|Test|E|Lead 57321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057322|157322|989898|1|9999057322|MR|Test|E|Lead 57322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057323|157323|989898|1|9999057323|MR|Test|E|Lead 57323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057324|157324|989898|1|9999057324|MR|Test|E|Lead 57324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057325|157325|989898|1|9999057325|MR|Test|E|Lead 57325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057326|157326|989898|1|9999057326|MR|Test|E|Lead 57326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057327|157327|989898|1|9999057327|MR|Test|E|Lead 57327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057328|157328|989898|1|9999057328|MR|Test|E|Lead 57328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057329|157329|989898|1|9999057329|MR|Test|E|Lead 57329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057330|157330|989898|1|9999057330|MR|Test|E|Lead 57330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057331|157331|989898|1|9999057331|MR|Test|E|Lead 57331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057332|157332|989898|1|9999057332|MR|Test|E|Lead 57332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057333|157333|989898|1|9999057333|MR|Test|E|Lead 57333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057334|157334|989898|1|9999057334|MR|Test|E|Lead 57334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057335|157335|989898|1|9999057335|MR|Test|E|Lead 57335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057336|157336|989898|1|9999057336|MR|Test|E|Lead 57336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057337|157337|989898|1|9999057337|MR|Test|E|Lead 57337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057338|157338|989898|1|9999057338|MR|Test|E|Lead 57338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057339|157339|989898|1|9999057339|MR|Test|E|Lead 57339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057340|157340|989898|1|9999057340|MR|Test|E|Lead 57340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057341|157341|989898|1|9999057341|MR|Test|E|Lead 57341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057342|157342|989898|1|9999057342|MR|Test|E|Lead 57342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057343|157343|989898|1|9999057343|MR|Test|E|Lead 57343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057344|157344|989898|1|9999057344|MR|Test|E|Lead 57344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057345|157345|989898|1|9999057345|MR|Test|E|Lead 57345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057346|157346|989898|1|9999057346|MR|Test|E|Lead 57346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057347|157347|989898|1|9999057347|MR|Test|E|Lead 57347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057348|157348|989898|1|9999057348|MR|Test|E|Lead 57348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057349|157349|989898|1|9999057349|MR|Test|E|Lead 57349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057350|157350|989898|1|9999057350|MR|Test|E|Lead 57350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057351|157351|989898|1|9999057351|MR|Test|E|Lead 57351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057352|157352|989898|1|9999057352|MR|Test|E|Lead 57352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057353|157353|989898|1|9999057353|MR|Test|E|Lead 57353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057354|157354|989898|1|9999057354|MR|Test|E|Lead 57354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057355|157355|989898|1|9999057355|MR|Test|E|Lead 57355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057356|157356|989898|1|9999057356|MR|Test|E|Lead 57356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057357|157357|989898|1|9999057357|MR|Test|E|Lead 57357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057358|157358|989898|1|9999057358|MR|Test|E|Lead 57358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057359|157359|989898|1|9999057359|MR|Test|E|Lead 57359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057360|157360|989898|1|9999057360|MR|Test|E|Lead 57360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057361|157361|989898|1|9999057361|MR|Test|E|Lead 57361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057362|157362|989898|1|9999057362|MR|Test|E|Lead 57362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057363|157363|989898|1|9999057363|MR|Test|E|Lead 57363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057364|157364|989898|1|9999057364|MR|Test|E|Lead 57364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057365|157365|989898|1|9999057365|MR|Test|E|Lead 57365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057366|157366|989898|1|9999057366|MR|Test|E|Lead 57366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057367|157367|989898|1|9999057367|MR|Test|E|Lead 57367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057368|157368|989898|1|9999057368|MR|Test|E|Lead 57368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057369|157369|989898|1|9999057369|MR|Test|E|Lead 57369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057370|157370|989898|1|9999057370|MR|Test|E|Lead 57370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057371|157371|989898|1|9999057371|MR|Test|E|Lead 57371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057372|157372|989898|1|9999057372|MR|Test|E|Lead 57372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057373|157373|989898|1|9999057373|MR|Test|E|Lead 57373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057374|157374|989898|1|9999057374|MR|Test|E|Lead 57374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057375|157375|989898|1|9999057375|MR|Test|E|Lead 57375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057376|157376|989898|1|9999057376|MR|Test|E|Lead 57376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057377|157377|989898|1|9999057377|MR|Test|E|Lead 57377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057378|157378|989898|1|9999057378|MR|Test|E|Lead 57378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057379|157379|989898|1|9999057379|MR|Test|E|Lead 57379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057380|157380|989898|1|9999057380|MR|Test|E|Lead 57380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057381|157381|989898|1|9999057381|MR|Test|E|Lead 57381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057382|157382|989898|1|9999057382|MR|Test|E|Lead 57382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057383|157383|989898|1|9999057383|MR|Test|E|Lead 57383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057384|157384|989898|1|9999057384|MR|Test|E|Lead 57384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057385|157385|989898|1|9999057385|MR|Test|E|Lead 57385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057386|157386|989898|1|9999057386|MR|Test|E|Lead 57386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057387|157387|989898|1|9999057387|MR|Test|E|Lead 57387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057388|157388|989898|1|9999057388|MR|Test|E|Lead 57388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057389|157389|989898|1|9999057389|MR|Test|E|Lead 57389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057390|157390|989898|1|9999057390|MR|Test|E|Lead 57390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057391|157391|989898|1|9999057391|MR|Test|E|Lead 57391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057392|157392|989898|1|9999057392|MR|Test|E|Lead 57392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057393|157393|989898|1|9999057393|MR|Test|E|Lead 57393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057394|157394|989898|1|9999057394|MR|Test|E|Lead 57394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057395|157395|989898|1|9999057395|MR|Test|E|Lead 57395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057396|157396|989898|1|9999057396|MR|Test|E|Lead 57396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057397|157397|989898|1|9999057397|MR|Test|E|Lead 57397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057398|157398|989898|1|9999057398|MR|Test|E|Lead 57398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057399|157399|989898|1|9999057399|MR|Test|E|Lead 57399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057400|157400|989898|1|9999057400|MR|Test|E|Lead 57400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057401|157401|989898|1|9999057401|MR|Test|E|Lead 57401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057402|157402|989898|1|9999057402|MR|Test|E|Lead 57402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057403|157403|989898|1|9999057403|MR|Test|E|Lead 57403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057404|157404|989898|1|9999057404|MR|Test|E|Lead 57404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057405|157405|989898|1|9999057405|MR|Test|E|Lead 57405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057406|157406|989898|1|9999057406|MR|Test|E|Lead 57406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057407|157407|989898|1|9999057407|MR|Test|E|Lead 57407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057408|157408|989898|1|9999057408|MR|Test|E|Lead 57408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057409|157409|989898|1|9999057409|MR|Test|E|Lead 57409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057410|157410|989898|1|9999057410|MR|Test|E|Lead 57410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057411|157411|989898|1|9999057411|MR|Test|E|Lead 57411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057412|157412|989898|1|9999057412|MR|Test|E|Lead 57412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057413|157413|989898|1|9999057413|MR|Test|E|Lead 57413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057414|157414|989898|1|9999057414|MR|Test|E|Lead 57414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057415|157415|989898|1|9999057415|MR|Test|E|Lead 57415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057416|157416|989898|1|9999057416|MR|Test|E|Lead 57416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057417|157417|989898|1|9999057417|MR|Test|E|Lead 57417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057418|157418|989898|1|9999057418|MR|Test|E|Lead 57418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057419|157419|989898|1|9999057419|MR|Test|E|Lead 57419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057420|157420|989898|1|9999057420|MR|Test|E|Lead 57420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057421|157421|989898|1|9999057421|MR|Test|E|Lead 57421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057422|157422|989898|1|9999057422|MR|Test|E|Lead 57422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057423|157423|989898|1|9999057423|MR|Test|E|Lead 57423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057424|157424|989898|1|9999057424|MR|Test|E|Lead 57424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057425|157425|989898|1|9999057425|MR|Test|E|Lead 57425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057426|157426|989898|1|9999057426|MR|Test|E|Lead 57426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057427|157427|989898|1|9999057427|MR|Test|E|Lead 57427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057428|157428|989898|1|9999057428|MR|Test|E|Lead 57428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057429|157429|989898|1|9999057429|MR|Test|E|Lead 57429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057430|157430|989898|1|9999057430|MR|Test|E|Lead 57430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057431|157431|989898|1|9999057431|MR|Test|E|Lead 57431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057432|157432|989898|1|9999057432|MR|Test|E|Lead 57432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057433|157433|989898|1|9999057433|MR|Test|E|Lead 57433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057434|157434|989898|1|9999057434|MR|Test|E|Lead 57434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057435|157435|989898|1|9999057435|MR|Test|E|Lead 57435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057436|157436|989898|1|9999057436|MR|Test|E|Lead 57436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057437|157437|989898|1|9999057437|MR|Test|E|Lead 57437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057438|157438|989898|1|9999057438|MR|Test|E|Lead 57438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057439|157439|989898|1|9999057439|MR|Test|E|Lead 57439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057440|157440|989898|1|9999057440|MR|Test|E|Lead 57440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057441|157441|989898|1|9999057441|MR|Test|E|Lead 57441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057442|157442|989898|1|9999057442|MR|Test|E|Lead 57442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057443|157443|989898|1|9999057443|MR|Test|E|Lead 57443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057444|157444|989898|1|9999057444|MR|Test|E|Lead 57444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057445|157445|989898|1|9999057445|MR|Test|E|Lead 57445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057446|157446|989898|1|9999057446|MR|Test|E|Lead 57446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057447|157447|989898|1|9999057447|MR|Test|E|Lead 57447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057448|157448|989898|1|9999057448|MR|Test|E|Lead 57448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057449|157449|989898|1|9999057449|MR|Test|E|Lead 57449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057450|157450|989898|1|9999057450|MR|Test|E|Lead 57450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057451|157451|989898|1|9999057451|MR|Test|E|Lead 57451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057452|157452|989898|1|9999057452|MR|Test|E|Lead 57452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057453|157453|989898|1|9999057453|MR|Test|E|Lead 57453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057454|157454|989898|1|9999057454|MR|Test|E|Lead 57454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057455|157455|989898|1|9999057455|MR|Test|E|Lead 57455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057456|157456|989898|1|9999057456|MR|Test|E|Lead 57456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057457|157457|989898|1|9999057457|MR|Test|E|Lead 57457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057458|157458|989898|1|9999057458|MR|Test|E|Lead 57458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057459|157459|989898|1|9999057459|MR|Test|E|Lead 57459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057460|157460|989898|1|9999057460|MR|Test|E|Lead 57460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057461|157461|989898|1|9999057461|MR|Test|E|Lead 57461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057462|157462|989898|1|9999057462|MR|Test|E|Lead 57462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057463|157463|989898|1|9999057463|MR|Test|E|Lead 57463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057464|157464|989898|1|9999057464|MR|Test|E|Lead 57464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057465|157465|989898|1|9999057465|MR|Test|E|Lead 57465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057466|157466|989898|1|9999057466|MR|Test|E|Lead 57466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057467|157467|989898|1|9999057467|MR|Test|E|Lead 57467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057468|157468|989898|1|9999057468|MR|Test|E|Lead 57468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057469|157469|989898|1|9999057469|MR|Test|E|Lead 57469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057470|157470|989898|1|9999057470|MR|Test|E|Lead 57470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057471|157471|989898|1|9999057471|MR|Test|E|Lead 57471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057472|157472|989898|1|9999057472|MR|Test|E|Lead 57472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057473|157473|989898|1|9999057473|MR|Test|E|Lead 57473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057474|157474|989898|1|9999057474|MR|Test|E|Lead 57474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057475|157475|989898|1|9999057475|MR|Test|E|Lead 57475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057476|157476|989898|1|9999057476|MR|Test|E|Lead 57476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057477|157477|989898|1|9999057477|MR|Test|E|Lead 57477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057478|157478|989898|1|9999057478|MR|Test|E|Lead 57478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057479|157479|989898|1|9999057479|MR|Test|E|Lead 57479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057480|157480|989898|1|9999057480|MR|Test|E|Lead 57480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057481|157481|989898|1|9999057481|MR|Test|E|Lead 57481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057482|157482|989898|1|9999057482|MR|Test|E|Lead 57482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057483|157483|989898|1|9999057483|MR|Test|E|Lead 57483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057484|157484|989898|1|9999057484|MR|Test|E|Lead 57484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057485|157485|989898|1|9999057485|MR|Test|E|Lead 57485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057486|157486|989898|1|9999057486|MR|Test|E|Lead 57486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057487|157487|989898|1|9999057487|MR|Test|E|Lead 57487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057488|157488|989898|1|9999057488|MR|Test|E|Lead 57488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057489|157489|989898|1|9999057489|MR|Test|E|Lead 57489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057490|157490|989898|1|9999057490|MR|Test|E|Lead 57490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057491|157491|989898|1|9999057491|MR|Test|E|Lead 57491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057492|157492|989898|1|9999057492|MR|Test|E|Lead 57492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057493|157493|989898|1|9999057493|MR|Test|E|Lead 57493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057494|157494|989898|1|9999057494|MR|Test|E|Lead 57494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057495|157495|989898|1|9999057495|MR|Test|E|Lead 57495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057496|157496|989898|1|9999057496|MR|Test|E|Lead 57496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057497|157497|989898|1|9999057497|MR|Test|E|Lead 57497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057498|157498|989898|1|9999057498|MR|Test|E|Lead 57498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057499|157499|989898|1|9999057499|MR|Test|E|Lead 57499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057500|157500|989898|1|9999057500|MR|Test|E|Lead 57500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057501|157501|989898|1|9999057501|MR|Test|E|Lead 57501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057502|157502|989898|1|9999057502|MR|Test|E|Lead 57502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057503|157503|989898|1|9999057503|MR|Test|E|Lead 57503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057504|157504|989898|1|9999057504|MR|Test|E|Lead 57504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057505|157505|989898|1|9999057505|MR|Test|E|Lead 57505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057506|157506|989898|1|9999057506|MR|Test|E|Lead 57506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057507|157507|989898|1|9999057507|MR|Test|E|Lead 57507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057508|157508|989898|1|9999057508|MR|Test|E|Lead 57508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057509|157509|989898|1|9999057509|MR|Test|E|Lead 57509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057510|157510|989898|1|9999057510|MR|Test|E|Lead 57510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057511|157511|989898|1|9999057511|MR|Test|E|Lead 57511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057512|157512|989898|1|9999057512|MR|Test|E|Lead 57512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057513|157513|989898|1|9999057513|MR|Test|E|Lead 57513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057514|157514|989898|1|9999057514|MR|Test|E|Lead 57514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057515|157515|989898|1|9999057515|MR|Test|E|Lead 57515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057516|157516|989898|1|9999057516|MR|Test|E|Lead 57516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057517|157517|989898|1|9999057517|MR|Test|E|Lead 57517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057518|157518|989898|1|9999057518|MR|Test|E|Lead 57518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057519|157519|989898|1|9999057519|MR|Test|E|Lead 57519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057520|157520|989898|1|9999057520|MR|Test|E|Lead 57520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057521|157521|989898|1|9999057521|MR|Test|E|Lead 57521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057522|157522|989898|1|9999057522|MR|Test|E|Lead 57522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057523|157523|989898|1|9999057523|MR|Test|E|Lead 57523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057524|157524|989898|1|9999057524|MR|Test|E|Lead 57524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057525|157525|989898|1|9999057525|MR|Test|E|Lead 57525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057526|157526|989898|1|9999057526|MR|Test|E|Lead 57526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057527|157527|989898|1|9999057527|MR|Test|E|Lead 57527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057528|157528|989898|1|9999057528|MR|Test|E|Lead 57528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057529|157529|989898|1|9999057529|MR|Test|E|Lead 57529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057530|157530|989898|1|9999057530|MR|Test|E|Lead 57530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057531|157531|989898|1|9999057531|MR|Test|E|Lead 57531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057532|157532|989898|1|9999057532|MR|Test|E|Lead 57532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057533|157533|989898|1|9999057533|MR|Test|E|Lead 57533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057534|157534|989898|1|9999057534|MR|Test|E|Lead 57534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057535|157535|989898|1|9999057535|MR|Test|E|Lead 57535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057536|157536|989898|1|9999057536|MR|Test|E|Lead 57536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057537|157537|989898|1|9999057537|MR|Test|E|Lead 57537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057538|157538|989898|1|9999057538|MR|Test|E|Lead 57538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057539|157539|989898|1|9999057539|MR|Test|E|Lead 57539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057540|157540|989898|1|9999057540|MR|Test|E|Lead 57540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057541|157541|989898|1|9999057541|MR|Test|E|Lead 57541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057542|157542|989898|1|9999057542|MR|Test|E|Lead 57542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057543|157543|989898|1|9999057543|MR|Test|E|Lead 57543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057544|157544|989898|1|9999057544|MR|Test|E|Lead 57544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057545|157545|989898|1|9999057545|MR|Test|E|Lead 57545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057546|157546|989898|1|9999057546|MR|Test|E|Lead 57546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057547|157547|989898|1|9999057547|MR|Test|E|Lead 57547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057548|157548|989898|1|9999057548|MR|Test|E|Lead 57548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057549|157549|989898|1|9999057549|MR|Test|E|Lead 57549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057550|157550|989898|1|9999057550|MR|Test|E|Lead 57550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057551|157551|989898|1|9999057551|MR|Test|E|Lead 57551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057552|157552|989898|1|9999057552|MR|Test|E|Lead 57552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057553|157553|989898|1|9999057553|MR|Test|E|Lead 57553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057554|157554|989898|1|9999057554|MR|Test|E|Lead 57554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057555|157555|989898|1|9999057555|MR|Test|E|Lead 57555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057556|157556|989898|1|9999057556|MR|Test|E|Lead 57556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057557|157557|989898|1|9999057557|MR|Test|E|Lead 57557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057558|157558|989898|1|9999057558|MR|Test|E|Lead 57558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057559|157559|989898|1|9999057559|MR|Test|E|Lead 57559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057560|157560|989898|1|9999057560|MR|Test|E|Lead 57560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057561|157561|989898|1|9999057561|MR|Test|E|Lead 57561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057562|157562|989898|1|9999057562|MR|Test|E|Lead 57562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057563|157563|989898|1|9999057563|MR|Test|E|Lead 57563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057564|157564|989898|1|9999057564|MR|Test|E|Lead 57564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057565|157565|989898|1|9999057565|MR|Test|E|Lead 57565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057566|157566|989898|1|9999057566|MR|Test|E|Lead 57566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057567|157567|989898|1|9999057567|MR|Test|E|Lead 57567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057568|157568|989898|1|9999057568|MR|Test|E|Lead 57568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057569|157569|989898|1|9999057569|MR|Test|E|Lead 57569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057570|157570|989898|1|9999057570|MR|Test|E|Lead 57570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057571|157571|989898|1|9999057571|MR|Test|E|Lead 57571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057572|157572|989898|1|9999057572|MR|Test|E|Lead 57572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057573|157573|989898|1|9999057573|MR|Test|E|Lead 57573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057574|157574|989898|1|9999057574|MR|Test|E|Lead 57574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057575|157575|989898|1|9999057575|MR|Test|E|Lead 57575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057576|157576|989898|1|9999057576|MR|Test|E|Lead 57576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057577|157577|989898|1|9999057577|MR|Test|E|Lead 57577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057578|157578|989898|1|9999057578|MR|Test|E|Lead 57578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057579|157579|989898|1|9999057579|MR|Test|E|Lead 57579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057580|157580|989898|1|9999057580|MR|Test|E|Lead 57580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057581|157581|989898|1|9999057581|MR|Test|E|Lead 57581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057582|157582|989898|1|9999057582|MR|Test|E|Lead 57582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057583|157583|989898|1|9999057583|MR|Test|E|Lead 57583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057584|157584|989898|1|9999057584|MR|Test|E|Lead 57584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057585|157585|989898|1|9999057585|MR|Test|E|Lead 57585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057586|157586|989898|1|9999057586|MR|Test|E|Lead 57586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057587|157587|989898|1|9999057587|MR|Test|E|Lead 57587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057588|157588|989898|1|9999057588|MR|Test|E|Lead 57588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057589|157589|989898|1|9999057589|MR|Test|E|Lead 57589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057590|157590|989898|1|9999057590|MR|Test|E|Lead 57590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057591|157591|989898|1|9999057591|MR|Test|E|Lead 57591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057592|157592|989898|1|9999057592|MR|Test|E|Lead 57592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057593|157593|989898|1|9999057593|MR|Test|E|Lead 57593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057594|157594|989898|1|9999057594|MR|Test|E|Lead 57594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057595|157595|989898|1|9999057595|MR|Test|E|Lead 57595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057596|157596|989898|1|9999057596|MR|Test|E|Lead 57596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057597|157597|989898|1|9999057597|MR|Test|E|Lead 57597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057598|157598|989898|1|9999057598|MR|Test|E|Lead 57598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057599|157599|989898|1|9999057599|MR|Test|E|Lead 57599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057600|157600|989898|1|9999057600|MR|Test|E|Lead 57600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057601|157601|989898|1|9999057601|MR|Test|E|Lead 57601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057602|157602|989898|1|9999057602|MR|Test|E|Lead 57602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057603|157603|989898|1|9999057603|MR|Test|E|Lead 57603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057604|157604|989898|1|9999057604|MR|Test|E|Lead 57604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057605|157605|989898|1|9999057605|MR|Test|E|Lead 57605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057606|157606|989898|1|9999057606|MR|Test|E|Lead 57606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057607|157607|989898|1|9999057607|MR|Test|E|Lead 57607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057608|157608|989898|1|9999057608|MR|Test|E|Lead 57608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057609|157609|989898|1|9999057609|MR|Test|E|Lead 57609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057610|157610|989898|1|9999057610|MR|Test|E|Lead 57610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057611|157611|989898|1|9999057611|MR|Test|E|Lead 57611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057612|157612|989898|1|9999057612|MR|Test|E|Lead 57612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057613|157613|989898|1|9999057613|MR|Test|E|Lead 57613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057614|157614|989898|1|9999057614|MR|Test|E|Lead 57614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057615|157615|989898|1|9999057615|MR|Test|E|Lead 57615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057616|157616|989898|1|9999057616|MR|Test|E|Lead 57616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057617|157617|989898|1|9999057617|MR|Test|E|Lead 57617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057618|157618|989898|1|9999057618|MR|Test|E|Lead 57618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057619|157619|989898|1|9999057619|MR|Test|E|Lead 57619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057620|157620|989898|1|9999057620|MR|Test|E|Lead 57620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057621|157621|989898|1|9999057621|MR|Test|E|Lead 57621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057622|157622|989898|1|9999057622|MR|Test|E|Lead 57622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057623|157623|989898|1|9999057623|MR|Test|E|Lead 57623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057624|157624|989898|1|9999057624|MR|Test|E|Lead 57624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057625|157625|989898|1|9999057625|MR|Test|E|Lead 57625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057626|157626|989898|1|9999057626|MR|Test|E|Lead 57626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057627|157627|989898|1|9999057627|MR|Test|E|Lead 57627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057628|157628|989898|1|9999057628|MR|Test|E|Lead 57628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057629|157629|989898|1|9999057629|MR|Test|E|Lead 57629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057630|157630|989898|1|9999057630|MR|Test|E|Lead 57630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057631|157631|989898|1|9999057631|MR|Test|E|Lead 57631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057632|157632|989898|1|9999057632|MR|Test|E|Lead 57632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057633|157633|989898|1|9999057633|MR|Test|E|Lead 57633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057634|157634|989898|1|9999057634|MR|Test|E|Lead 57634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057635|157635|989898|1|9999057635|MR|Test|E|Lead 57635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057636|157636|989898|1|9999057636|MR|Test|E|Lead 57636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057637|157637|989898|1|9999057637|MR|Test|E|Lead 57637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057638|157638|989898|1|9999057638|MR|Test|E|Lead 57638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057639|157639|989898|1|9999057639|MR|Test|E|Lead 57639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057640|157640|989898|1|9999057640|MR|Test|E|Lead 57640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057641|157641|989898|1|9999057641|MR|Test|E|Lead 57641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057642|157642|989898|1|9999057642|MR|Test|E|Lead 57642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057643|157643|989898|1|9999057643|MR|Test|E|Lead 57643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057644|157644|989898|1|9999057644|MR|Test|E|Lead 57644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057645|157645|989898|1|9999057645|MR|Test|E|Lead 57645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057646|157646|989898|1|9999057646|MR|Test|E|Lead 57646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057647|157647|989898|1|9999057647|MR|Test|E|Lead 57647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057648|157648|989898|1|9999057648|MR|Test|E|Lead 57648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057649|157649|989898|1|9999057649|MR|Test|E|Lead 57649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057650|157650|989898|1|9999057650|MR|Test|E|Lead 57650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057651|157651|989898|1|9999057651|MR|Test|E|Lead 57651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057652|157652|989898|1|9999057652|MR|Test|E|Lead 57652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057653|157653|989898|1|9999057653|MR|Test|E|Lead 57653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057654|157654|989898|1|9999057654|MR|Test|E|Lead 57654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057655|157655|989898|1|9999057655|MR|Test|E|Lead 57655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057656|157656|989898|1|9999057656|MR|Test|E|Lead 57656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057657|157657|989898|1|9999057657|MR|Test|E|Lead 57657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057658|157658|989898|1|9999057658|MR|Test|E|Lead 57658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057659|157659|989898|1|9999057659|MR|Test|E|Lead 57659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057660|157660|989898|1|9999057660|MR|Test|E|Lead 57660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057661|157661|989898|1|9999057661|MR|Test|E|Lead 57661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057662|157662|989898|1|9999057662|MR|Test|E|Lead 57662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057663|157663|989898|1|9999057663|MR|Test|E|Lead 57663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057664|157664|989898|1|9999057664|MR|Test|E|Lead 57664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057665|157665|989898|1|9999057665|MR|Test|E|Lead 57665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057666|157666|989898|1|9999057666|MR|Test|E|Lead 57666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057667|157667|989898|1|9999057667|MR|Test|E|Lead 57667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057668|157668|989898|1|9999057668|MR|Test|E|Lead 57668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057669|157669|989898|1|9999057669|MR|Test|E|Lead 57669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057670|157670|989898|1|9999057670|MR|Test|E|Lead 57670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057671|157671|989898|1|9999057671|MR|Test|E|Lead 57671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057672|157672|989898|1|9999057672|MR|Test|E|Lead 57672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057673|157673|989898|1|9999057673|MR|Test|E|Lead 57673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057674|157674|989898|1|9999057674|MR|Test|E|Lead 57674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057675|157675|989898|1|9999057675|MR|Test|E|Lead 57675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057676|157676|989898|1|9999057676|MR|Test|E|Lead 57676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057677|157677|989898|1|9999057677|MR|Test|E|Lead 57677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057678|157678|989898|1|9999057678|MR|Test|E|Lead 57678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057679|157679|989898|1|9999057679|MR|Test|E|Lead 57679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057680|157680|989898|1|9999057680|MR|Test|E|Lead 57680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057681|157681|989898|1|9999057681|MR|Test|E|Lead 57681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057682|157682|989898|1|9999057682|MR|Test|E|Lead 57682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057683|157683|989898|1|9999057683|MR|Test|E|Lead 57683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057684|157684|989898|1|9999057684|MR|Test|E|Lead 57684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057685|157685|989898|1|9999057685|MR|Test|E|Lead 57685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057686|157686|989898|1|9999057686|MR|Test|E|Lead 57686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057687|157687|989898|1|9999057687|MR|Test|E|Lead 57687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057688|157688|989898|1|9999057688|MR|Test|E|Lead 57688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057689|157689|989898|1|9999057689|MR|Test|E|Lead 57689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057690|157690|989898|1|9999057690|MR|Test|E|Lead 57690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057691|157691|989898|1|9999057691|MR|Test|E|Lead 57691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057692|157692|989898|1|9999057692|MR|Test|E|Lead 57692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057693|157693|989898|1|9999057693|MR|Test|E|Lead 57693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057694|157694|989898|1|9999057694|MR|Test|E|Lead 57694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057695|157695|989898|1|9999057695|MR|Test|E|Lead 57695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057696|157696|989898|1|9999057696|MR|Test|E|Lead 57696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057697|157697|989898|1|9999057697|MR|Test|E|Lead 57697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057698|157698|989898|1|9999057698|MR|Test|E|Lead 57698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057699|157699|989898|1|9999057699|MR|Test|E|Lead 57699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057700|157700|989898|1|9999057700|MR|Test|E|Lead 57700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057701|157701|989898|1|9999057701|MR|Test|E|Lead 57701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057702|157702|989898|1|9999057702|MR|Test|E|Lead 57702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057703|157703|989898|1|9999057703|MR|Test|E|Lead 57703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057704|157704|989898|1|9999057704|MR|Test|E|Lead 57704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057705|157705|989898|1|9999057705|MR|Test|E|Lead 57705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057706|157706|989898|1|9999057706|MR|Test|E|Lead 57706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057707|157707|989898|1|9999057707|MR|Test|E|Lead 57707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057708|157708|989898|1|9999057708|MR|Test|E|Lead 57708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057709|157709|989898|1|9999057709|MR|Test|E|Lead 57709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057710|157710|989898|1|9999057710|MR|Test|E|Lead 57710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057711|157711|989898|1|9999057711|MR|Test|E|Lead 57711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057712|157712|989898|1|9999057712|MR|Test|E|Lead 57712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057713|157713|989898|1|9999057713|MR|Test|E|Lead 57713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057714|157714|989898|1|9999057714|MR|Test|E|Lead 57714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057715|157715|989898|1|9999057715|MR|Test|E|Lead 57715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057716|157716|989898|1|9999057716|MR|Test|E|Lead 57716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057717|157717|989898|1|9999057717|MR|Test|E|Lead 57717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057718|157718|989898|1|9999057718|MR|Test|E|Lead 57718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057719|157719|989898|1|9999057719|MR|Test|E|Lead 57719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057720|157720|989898|1|9999057720|MR|Test|E|Lead 57720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057721|157721|989898|1|9999057721|MR|Test|E|Lead 57721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057722|157722|989898|1|9999057722|MR|Test|E|Lead 57722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057723|157723|989898|1|9999057723|MR|Test|E|Lead 57723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057724|157724|989898|1|9999057724|MR|Test|E|Lead 57724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057725|157725|989898|1|9999057725|MR|Test|E|Lead 57725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057726|157726|989898|1|9999057726|MR|Test|E|Lead 57726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057727|157727|989898|1|9999057727|MR|Test|E|Lead 57727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057728|157728|989898|1|9999057728|MR|Test|E|Lead 57728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057729|157729|989898|1|9999057729|MR|Test|E|Lead 57729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057730|157730|989898|1|9999057730|MR|Test|E|Lead 57730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057731|157731|989898|1|9999057731|MR|Test|E|Lead 57731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057732|157732|989898|1|9999057732|MR|Test|E|Lead 57732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057733|157733|989898|1|9999057733|MR|Test|E|Lead 57733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057734|157734|989898|1|9999057734|MR|Test|E|Lead 57734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057735|157735|989898|1|9999057735|MR|Test|E|Lead 57735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057736|157736|989898|1|9999057736|MR|Test|E|Lead 57736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057737|157737|989898|1|9999057737|MR|Test|E|Lead 57737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057738|157738|989898|1|9999057738|MR|Test|E|Lead 57738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057739|157739|989898|1|9999057739|MR|Test|E|Lead 57739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057740|157740|989898|1|9999057740|MR|Test|E|Lead 57740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057741|157741|989898|1|9999057741|MR|Test|E|Lead 57741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057742|157742|989898|1|9999057742|MR|Test|E|Lead 57742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057743|157743|989898|1|9999057743|MR|Test|E|Lead 57743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057744|157744|989898|1|9999057744|MR|Test|E|Lead 57744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057745|157745|989898|1|9999057745|MR|Test|E|Lead 57745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057746|157746|989898|1|9999057746|MR|Test|E|Lead 57746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057747|157747|989898|1|9999057747|MR|Test|E|Lead 57747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057748|157748|989898|1|9999057748|MR|Test|E|Lead 57748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057749|157749|989898|1|9999057749|MR|Test|E|Lead 57749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057750|157750|989898|1|9999057750|MR|Test|E|Lead 57750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057751|157751|989898|1|9999057751|MR|Test|E|Lead 57751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057752|157752|989898|1|9999057752|MR|Test|E|Lead 57752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057753|157753|989898|1|9999057753|MR|Test|E|Lead 57753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057754|157754|989898|1|9999057754|MR|Test|E|Lead 57754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057755|157755|989898|1|9999057755|MR|Test|E|Lead 57755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057756|157756|989898|1|9999057756|MR|Test|E|Lead 57756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057757|157757|989898|1|9999057757|MR|Test|E|Lead 57757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057758|157758|989898|1|9999057758|MR|Test|E|Lead 57758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057759|157759|989898|1|9999057759|MR|Test|E|Lead 57759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057760|157760|989898|1|9999057760|MR|Test|E|Lead 57760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057761|157761|989898|1|9999057761|MR|Test|E|Lead 57761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057762|157762|989898|1|9999057762|MR|Test|E|Lead 57762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057763|157763|989898|1|9999057763|MR|Test|E|Lead 57763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057764|157764|989898|1|9999057764|MR|Test|E|Lead 57764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057765|157765|989898|1|9999057765|MR|Test|E|Lead 57765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057766|157766|989898|1|9999057766|MR|Test|E|Lead 57766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057767|157767|989898|1|9999057767|MR|Test|E|Lead 57767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057768|157768|989898|1|9999057768|MR|Test|E|Lead 57768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057769|157769|989898|1|9999057769|MR|Test|E|Lead 57769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057770|157770|989898|1|9999057770|MR|Test|E|Lead 57770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057771|157771|989898|1|9999057771|MR|Test|E|Lead 57771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057772|157772|989898|1|9999057772|MR|Test|E|Lead 57772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057773|157773|989898|1|9999057773|MR|Test|E|Lead 57773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057774|157774|989898|1|9999057774|MR|Test|E|Lead 57774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057775|157775|989898|1|9999057775|MR|Test|E|Lead 57775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057776|157776|989898|1|9999057776|MR|Test|E|Lead 57776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057777|157777|989898|1|9999057777|MR|Test|E|Lead 57777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057778|157778|989898|1|9999057778|MR|Test|E|Lead 57778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057779|157779|989898|1|9999057779|MR|Test|E|Lead 57779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057780|157780|989898|1|9999057780|MR|Test|E|Lead 57780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057781|157781|989898|1|9999057781|MR|Test|E|Lead 57781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057782|157782|989898|1|9999057782|MR|Test|E|Lead 57782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057783|157783|989898|1|9999057783|MR|Test|E|Lead 57783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057784|157784|989898|1|9999057784|MR|Test|E|Lead 57784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057785|157785|989898|1|9999057785|MR|Test|E|Lead 57785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057786|157786|989898|1|9999057786|MR|Test|E|Lead 57786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057787|157787|989898|1|9999057787|MR|Test|E|Lead 57787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057788|157788|989898|1|9999057788|MR|Test|E|Lead 57788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057789|157789|989898|1|9999057789|MR|Test|E|Lead 57789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057790|157790|989898|1|9999057790|MR|Test|E|Lead 57790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057791|157791|989898|1|9999057791|MR|Test|E|Lead 57791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057792|157792|989898|1|9999057792|MR|Test|E|Lead 57792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057793|157793|989898|1|9999057793|MR|Test|E|Lead 57793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057794|157794|989898|1|9999057794|MR|Test|E|Lead 57794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057795|157795|989898|1|9999057795|MR|Test|E|Lead 57795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057796|157796|989898|1|9999057796|MR|Test|E|Lead 57796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057797|157797|989898|1|9999057797|MR|Test|E|Lead 57797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057798|157798|989898|1|9999057798|MR|Test|E|Lead 57798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057799|157799|989898|1|9999057799|MR|Test|E|Lead 57799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057800|157800|989898|1|9999057800|MR|Test|E|Lead 57800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057801|157801|989898|1|9999057801|MR|Test|E|Lead 57801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057802|157802|989898|1|9999057802|MR|Test|E|Lead 57802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057803|157803|989898|1|9999057803|MR|Test|E|Lead 57803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057804|157804|989898|1|9999057804|MR|Test|E|Lead 57804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057805|157805|989898|1|9999057805|MR|Test|E|Lead 57805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057806|157806|989898|1|9999057806|MR|Test|E|Lead 57806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057807|157807|989898|1|9999057807|MR|Test|E|Lead 57807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057808|157808|989898|1|9999057808|MR|Test|E|Lead 57808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057809|157809|989898|1|9999057809|MR|Test|E|Lead 57809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057810|157810|989898|1|9999057810|MR|Test|E|Lead 57810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057811|157811|989898|1|9999057811|MR|Test|E|Lead 57811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057812|157812|989898|1|9999057812|MR|Test|E|Lead 57812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057813|157813|989898|1|9999057813|MR|Test|E|Lead 57813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057814|157814|989898|1|9999057814|MR|Test|E|Lead 57814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057815|157815|989898|1|9999057815|MR|Test|E|Lead 57815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057816|157816|989898|1|9999057816|MR|Test|E|Lead 57816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057817|157817|989898|1|9999057817|MR|Test|E|Lead 57817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057818|157818|989898|1|9999057818|MR|Test|E|Lead 57818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057819|157819|989898|1|9999057819|MR|Test|E|Lead 57819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057820|157820|989898|1|9999057820|MR|Test|E|Lead 57820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057821|157821|989898|1|9999057821|MR|Test|E|Lead 57821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057822|157822|989898|1|9999057822|MR|Test|E|Lead 57822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057823|157823|989898|1|9999057823|MR|Test|E|Lead 57823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057824|157824|989898|1|9999057824|MR|Test|E|Lead 57824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057825|157825|989898|1|9999057825|MR|Test|E|Lead 57825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057826|157826|989898|1|9999057826|MR|Test|E|Lead 57826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057827|157827|989898|1|9999057827|MR|Test|E|Lead 57827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057828|157828|989898|1|9999057828|MR|Test|E|Lead 57828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057829|157829|989898|1|9999057829|MR|Test|E|Lead 57829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057830|157830|989898|1|9999057830|MR|Test|E|Lead 57830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057831|157831|989898|1|9999057831|MR|Test|E|Lead 57831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057832|157832|989898|1|9999057832|MR|Test|E|Lead 57832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057833|157833|989898|1|9999057833|MR|Test|E|Lead 57833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057834|157834|989898|1|9999057834|MR|Test|E|Lead 57834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057835|157835|989898|1|9999057835|MR|Test|E|Lead 57835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057836|157836|989898|1|9999057836|MR|Test|E|Lead 57836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057837|157837|989898|1|9999057837|MR|Test|E|Lead 57837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057838|157838|989898|1|9999057838|MR|Test|E|Lead 57838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057839|157839|989898|1|9999057839|MR|Test|E|Lead 57839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057840|157840|989898|1|9999057840|MR|Test|E|Lead 57840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057841|157841|989898|1|9999057841|MR|Test|E|Lead 57841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057842|157842|989898|1|9999057842|MR|Test|E|Lead 57842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057843|157843|989898|1|9999057843|MR|Test|E|Lead 57843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057844|157844|989898|1|9999057844|MR|Test|E|Lead 57844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057845|157845|989898|1|9999057845|MR|Test|E|Lead 57845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057846|157846|989898|1|9999057846|MR|Test|E|Lead 57846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057847|157847|989898|1|9999057847|MR|Test|E|Lead 57847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057848|157848|989898|1|9999057848|MR|Test|E|Lead 57848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057849|157849|989898|1|9999057849|MR|Test|E|Lead 57849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057850|157850|989898|1|9999057850|MR|Test|E|Lead 57850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057851|157851|989898|1|9999057851|MR|Test|E|Lead 57851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057852|157852|989898|1|9999057852|MR|Test|E|Lead 57852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057853|157853|989898|1|9999057853|MR|Test|E|Lead 57853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057854|157854|989898|1|9999057854|MR|Test|E|Lead 57854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057855|157855|989898|1|9999057855|MR|Test|E|Lead 57855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057856|157856|989898|1|9999057856|MR|Test|E|Lead 57856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057857|157857|989898|1|9999057857|MR|Test|E|Lead 57857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057858|157858|989898|1|9999057858|MR|Test|E|Lead 57858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057859|157859|989898|1|9999057859|MR|Test|E|Lead 57859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057860|157860|989898|1|9999057860|MR|Test|E|Lead 57860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057861|157861|989898|1|9999057861|MR|Test|E|Lead 57861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057862|157862|989898|1|9999057862|MR|Test|E|Lead 57862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057863|157863|989898|1|9999057863|MR|Test|E|Lead 57863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057864|157864|989898|1|9999057864|MR|Test|E|Lead 57864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057865|157865|989898|1|9999057865|MR|Test|E|Lead 57865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057866|157866|989898|1|9999057866|MR|Test|E|Lead 57866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057867|157867|989898|1|9999057867|MR|Test|E|Lead 57867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057868|157868|989898|1|9999057868|MR|Test|E|Lead 57868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057869|157869|989898|1|9999057869|MR|Test|E|Lead 57869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057870|157870|989898|1|9999057870|MR|Test|E|Lead 57870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057871|157871|989898|1|9999057871|MR|Test|E|Lead 57871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057872|157872|989898|1|9999057872|MR|Test|E|Lead 57872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057873|157873|989898|1|9999057873|MR|Test|E|Lead 57873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057874|157874|989898|1|9999057874|MR|Test|E|Lead 57874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057875|157875|989898|1|9999057875|MR|Test|E|Lead 57875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057876|157876|989898|1|9999057876|MR|Test|E|Lead 57876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057877|157877|989898|1|9999057877|MR|Test|E|Lead 57877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057878|157878|989898|1|9999057878|MR|Test|E|Lead 57878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057879|157879|989898|1|9999057879|MR|Test|E|Lead 57879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057880|157880|989898|1|9999057880|MR|Test|E|Lead 57880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057881|157881|989898|1|9999057881|MR|Test|E|Lead 57881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057882|157882|989898|1|9999057882|MR|Test|E|Lead 57882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057883|157883|989898|1|9999057883|MR|Test|E|Lead 57883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057884|157884|989898|1|9999057884|MR|Test|E|Lead 57884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057885|157885|989898|1|9999057885|MR|Test|E|Lead 57885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057886|157886|989898|1|9999057886|MR|Test|E|Lead 57886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057887|157887|989898|1|9999057887|MR|Test|E|Lead 57887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057888|157888|989898|1|9999057888|MR|Test|E|Lead 57888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057889|157889|989898|1|9999057889|MR|Test|E|Lead 57889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057890|157890|989898|1|9999057890|MR|Test|E|Lead 57890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057891|157891|989898|1|9999057891|MR|Test|E|Lead 57891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057892|157892|989898|1|9999057892|MR|Test|E|Lead 57892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057893|157893|989898|1|9999057893|MR|Test|E|Lead 57893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057894|157894|989898|1|9999057894|MR|Test|E|Lead 57894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057895|157895|989898|1|9999057895|MR|Test|E|Lead 57895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057896|157896|989898|1|9999057896|MR|Test|E|Lead 57896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057897|157897|989898|1|9999057897|MR|Test|E|Lead 57897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057898|157898|989898|1|9999057898|MR|Test|E|Lead 57898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057899|157899|989898|1|9999057899|MR|Test|E|Lead 57899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057900|157900|989898|1|9999057900|MR|Test|E|Lead 57900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057901|157901|989898|1|9999057901|MR|Test|E|Lead 57901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057902|157902|989898|1|9999057902|MR|Test|E|Lead 57902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057903|157903|989898|1|9999057903|MR|Test|E|Lead 57903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057904|157904|989898|1|9999057904|MR|Test|E|Lead 57904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057905|157905|989898|1|9999057905|MR|Test|E|Lead 57905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057906|157906|989898|1|9999057906|MR|Test|E|Lead 57906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057907|157907|989898|1|9999057907|MR|Test|E|Lead 57907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057908|157908|989898|1|9999057908|MR|Test|E|Lead 57908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057909|157909|989898|1|9999057909|MR|Test|E|Lead 57909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057910|157910|989898|1|9999057910|MR|Test|E|Lead 57910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057911|157911|989898|1|9999057911|MR|Test|E|Lead 57911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057912|157912|989898|1|9999057912|MR|Test|E|Lead 57912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057913|157913|989898|1|9999057913|MR|Test|E|Lead 57913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057914|157914|989898|1|9999057914|MR|Test|E|Lead 57914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057915|157915|989898|1|9999057915|MR|Test|E|Lead 57915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057916|157916|989898|1|9999057916|MR|Test|E|Lead 57916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057917|157917|989898|1|9999057917|MR|Test|E|Lead 57917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057918|157918|989898|1|9999057918|MR|Test|E|Lead 57918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057919|157919|989898|1|9999057919|MR|Test|E|Lead 57919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057920|157920|989898|1|9999057920|MR|Test|E|Lead 57920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057921|157921|989898|1|9999057921|MR|Test|E|Lead 57921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057922|157922|989898|1|9999057922|MR|Test|E|Lead 57922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057923|157923|989898|1|9999057923|MR|Test|E|Lead 57923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057924|157924|989898|1|9999057924|MR|Test|E|Lead 57924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057925|157925|989898|1|9999057925|MR|Test|E|Lead 57925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057926|157926|989898|1|9999057926|MR|Test|E|Lead 57926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057927|157927|989898|1|9999057927|MR|Test|E|Lead 57927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057928|157928|989898|1|9999057928|MR|Test|E|Lead 57928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057929|157929|989898|1|9999057929|MR|Test|E|Lead 57929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057930|157930|989898|1|9999057930|MR|Test|E|Lead 57930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057931|157931|989898|1|9999057931|MR|Test|E|Lead 57931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057932|157932|989898|1|9999057932|MR|Test|E|Lead 57932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057933|157933|989898|1|9999057933|MR|Test|E|Lead 57933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057934|157934|989898|1|9999057934|MR|Test|E|Lead 57934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057935|157935|989898|1|9999057935|MR|Test|E|Lead 57935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057936|157936|989898|1|9999057936|MR|Test|E|Lead 57936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057937|157937|989898|1|9999057937|MR|Test|E|Lead 57937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057938|157938|989898|1|9999057938|MR|Test|E|Lead 57938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057939|157939|989898|1|9999057939|MR|Test|E|Lead 57939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057940|157940|989898|1|9999057940|MR|Test|E|Lead 57940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057941|157941|989898|1|9999057941|MR|Test|E|Lead 57941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057942|157942|989898|1|9999057942|MR|Test|E|Lead 57942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057943|157943|989898|1|9999057943|MR|Test|E|Lead 57943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057944|157944|989898|1|9999057944|MR|Test|E|Lead 57944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057945|157945|989898|1|9999057945|MR|Test|E|Lead 57945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057946|157946|989898|1|9999057946|MR|Test|E|Lead 57946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057947|157947|989898|1|9999057947|MR|Test|E|Lead 57947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057948|157948|989898|1|9999057948|MR|Test|E|Lead 57948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057949|157949|989898|1|9999057949|MR|Test|E|Lead 57949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057950|157950|989898|1|9999057950|MR|Test|E|Lead 57950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057951|157951|989898|1|9999057951|MR|Test|E|Lead 57951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057952|157952|989898|1|9999057952|MR|Test|E|Lead 57952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057953|157953|989898|1|9999057953|MR|Test|E|Lead 57953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057954|157954|989898|1|9999057954|MR|Test|E|Lead 57954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057955|157955|989898|1|9999057955|MR|Test|E|Lead 57955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057956|157956|989898|1|9999057956|MR|Test|E|Lead 57956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057957|157957|989898|1|9999057957|MR|Test|E|Lead 57957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057958|157958|989898|1|9999057958|MR|Test|E|Lead 57958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057959|157959|989898|1|9999057959|MR|Test|E|Lead 57959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057960|157960|989898|1|9999057960|MR|Test|E|Lead 57960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057961|157961|989898|1|9999057961|MR|Test|E|Lead 57961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057962|157962|989898|1|9999057962|MR|Test|E|Lead 57962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057963|157963|989898|1|9999057963|MR|Test|E|Lead 57963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057964|157964|989898|1|9999057964|MR|Test|E|Lead 57964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057965|157965|989898|1|9999057965|MR|Test|E|Lead 57965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057966|157966|989898|1|9999057966|MR|Test|E|Lead 57966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057967|157967|989898|1|9999057967|MR|Test|E|Lead 57967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057968|157968|989898|1|9999057968|MR|Test|E|Lead 57968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057969|157969|989898|1|9999057969|MR|Test|E|Lead 57969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057970|157970|989898|1|9999057970|MR|Test|E|Lead 57970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057971|157971|989898|1|9999057971|MR|Test|E|Lead 57971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057972|157972|989898|1|9999057972|MR|Test|E|Lead 57972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057973|157973|989898|1|9999057973|MR|Test|E|Lead 57973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057974|157974|989898|1|9999057974|MR|Test|E|Lead 57974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057975|157975|989898|1|9999057975|MR|Test|E|Lead 57975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057976|157976|989898|1|9999057976|MR|Test|E|Lead 57976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057977|157977|989898|1|9999057977|MR|Test|E|Lead 57977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057978|157978|989898|1|9999057978|MR|Test|E|Lead 57978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057979|157979|989898|1|9999057979|MR|Test|E|Lead 57979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057980|157980|989898|1|9999057980|MR|Test|E|Lead 57980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057981|157981|989898|1|9999057981|MR|Test|E|Lead 57981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057982|157982|989898|1|9999057982|MR|Test|E|Lead 57982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057983|157983|989898|1|9999057983|MR|Test|E|Lead 57983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057984|157984|989898|1|9999057984|MR|Test|E|Lead 57984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057985|157985|989898|1|9999057985|MR|Test|E|Lead 57985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057986|157986|989898|1|9999057986|MR|Test|E|Lead 57986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057987|157987|989898|1|9999057987|MR|Test|E|Lead 57987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057988|157988|989898|1|9999057988|MR|Test|E|Lead 57988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057989|157989|989898|1|9999057989|MR|Test|E|Lead 57989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057990|157990|989898|1|9999057990|MR|Test|E|Lead 57990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057991|157991|989898|1|9999057991|MR|Test|E|Lead 57991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057992|157992|989898|1|9999057992|MR|Test|E|Lead 57992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057993|157993|989898|1|9999057993|MR|Test|E|Lead 57993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057994|157994|989898|1|9999057994|MR|Test|E|Lead 57994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057995|157995|989898|1|9999057995|MR|Test|E|Lead 57995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057996|157996|989898|1|9999057996|MR|Test|E|Lead 57996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057997|157997|989898|1|9999057997|MR|Test|E|Lead 57997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057998|157998|989898|1|9999057998|MR|Test|E|Lead 57998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1057999|157999|989898|1|9999057999|MR|Test|E|Lead 57999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058000|158000|989898|1|9999058000|MR|Test|E|Lead 58000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058001|158001|989898|1|9999058001|MR|Test|E|Lead 58001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058002|158002|989898|1|9999058002|MR|Test|E|Lead 58002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058003|158003|989898|1|9999058003|MR|Test|E|Lead 58003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058004|158004|989898|1|9999058004|MR|Test|E|Lead 58004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058005|158005|989898|1|9999058005|MR|Test|E|Lead 58005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058006|158006|989898|1|9999058006|MR|Test|E|Lead 58006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058007|158007|989898|1|9999058007|MR|Test|E|Lead 58007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058008|158008|989898|1|9999058008|MR|Test|E|Lead 58008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058009|158009|989898|1|9999058009|MR|Test|E|Lead 58009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058010|158010|989898|1|9999058010|MR|Test|E|Lead 58010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058011|158011|989898|1|9999058011|MR|Test|E|Lead 58011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058012|158012|989898|1|9999058012|MR|Test|E|Lead 58012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058013|158013|989898|1|9999058013|MR|Test|E|Lead 58013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058014|158014|989898|1|9999058014|MR|Test|E|Lead 58014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058015|158015|989898|1|9999058015|MR|Test|E|Lead 58015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058016|158016|989898|1|9999058016|MR|Test|E|Lead 58016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058017|158017|989898|1|9999058017|MR|Test|E|Lead 58017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058018|158018|989898|1|9999058018|MR|Test|E|Lead 58018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058019|158019|989898|1|9999058019|MR|Test|E|Lead 58019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058020|158020|989898|1|9999058020|MR|Test|E|Lead 58020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058021|158021|989898|1|9999058021|MR|Test|E|Lead 58021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058022|158022|989898|1|9999058022|MR|Test|E|Lead 58022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058023|158023|989898|1|9999058023|MR|Test|E|Lead 58023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058024|158024|989898|1|9999058024|MR|Test|E|Lead 58024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058025|158025|989898|1|9999058025|MR|Test|E|Lead 58025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058026|158026|989898|1|9999058026|MR|Test|E|Lead 58026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058027|158027|989898|1|9999058027|MR|Test|E|Lead 58027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058028|158028|989898|1|9999058028|MR|Test|E|Lead 58028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058029|158029|989898|1|9999058029|MR|Test|E|Lead 58029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058030|158030|989898|1|9999058030|MR|Test|E|Lead 58030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058031|158031|989898|1|9999058031|MR|Test|E|Lead 58031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058032|158032|989898|1|9999058032|MR|Test|E|Lead 58032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058033|158033|989898|1|9999058033|MR|Test|E|Lead 58033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058034|158034|989898|1|9999058034|MR|Test|E|Lead 58034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058035|158035|989898|1|9999058035|MR|Test|E|Lead 58035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058036|158036|989898|1|9999058036|MR|Test|E|Lead 58036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058037|158037|989898|1|9999058037|MR|Test|E|Lead 58037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058038|158038|989898|1|9999058038|MR|Test|E|Lead 58038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058039|158039|989898|1|9999058039|MR|Test|E|Lead 58039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058040|158040|989898|1|9999058040|MR|Test|E|Lead 58040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058041|158041|989898|1|9999058041|MR|Test|E|Lead 58041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058042|158042|989898|1|9999058042|MR|Test|E|Lead 58042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058043|158043|989898|1|9999058043|MR|Test|E|Lead 58043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058044|158044|989898|1|9999058044|MR|Test|E|Lead 58044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058045|158045|989898|1|9999058045|MR|Test|E|Lead 58045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058046|158046|989898|1|9999058046|MR|Test|E|Lead 58046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058047|158047|989898|1|9999058047|MR|Test|E|Lead 58047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058048|158048|989898|1|9999058048|MR|Test|E|Lead 58048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058049|158049|989898|1|9999058049|MR|Test|E|Lead 58049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058050|158050|989898|1|9999058050|MR|Test|E|Lead 58050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058051|158051|989898|1|9999058051|MR|Test|E|Lead 58051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058052|158052|989898|1|9999058052|MR|Test|E|Lead 58052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058053|158053|989898|1|9999058053|MR|Test|E|Lead 58053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058054|158054|989898|1|9999058054|MR|Test|E|Lead 58054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058055|158055|989898|1|9999058055|MR|Test|E|Lead 58055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058056|158056|989898|1|9999058056|MR|Test|E|Lead 58056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058057|158057|989898|1|9999058057|MR|Test|E|Lead 58057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058058|158058|989898|1|9999058058|MR|Test|E|Lead 58058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058059|158059|989898|1|9999058059|MR|Test|E|Lead 58059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058060|158060|989898|1|9999058060|MR|Test|E|Lead 58060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058061|158061|989898|1|9999058061|MR|Test|E|Lead 58061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058062|158062|989898|1|9999058062|MR|Test|E|Lead 58062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058063|158063|989898|1|9999058063|MR|Test|E|Lead 58063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058064|158064|989898|1|9999058064|MR|Test|E|Lead 58064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058065|158065|989898|1|9999058065|MR|Test|E|Lead 58065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058066|158066|989898|1|9999058066|MR|Test|E|Lead 58066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058067|158067|989898|1|9999058067|MR|Test|E|Lead 58067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058068|158068|989898|1|9999058068|MR|Test|E|Lead 58068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058069|158069|989898|1|9999058069|MR|Test|E|Lead 58069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058070|158070|989898|1|9999058070|MR|Test|E|Lead 58070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058071|158071|989898|1|9999058071|MR|Test|E|Lead 58071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058072|158072|989898|1|9999058072|MR|Test|E|Lead 58072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058073|158073|989898|1|9999058073|MR|Test|E|Lead 58073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058074|158074|989898|1|9999058074|MR|Test|E|Lead 58074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058075|158075|989898|1|9999058075|MR|Test|E|Lead 58075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058076|158076|989898|1|9999058076|MR|Test|E|Lead 58076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058077|158077|989898|1|9999058077|MR|Test|E|Lead 58077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058078|158078|989898|1|9999058078|MR|Test|E|Lead 58078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058079|158079|989898|1|9999058079|MR|Test|E|Lead 58079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058080|158080|989898|1|9999058080|MR|Test|E|Lead 58080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058081|158081|989898|1|9999058081|MR|Test|E|Lead 58081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058082|158082|989898|1|9999058082|MR|Test|E|Lead 58082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058083|158083|989898|1|9999058083|MR|Test|E|Lead 58083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058084|158084|989898|1|9999058084|MR|Test|E|Lead 58084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058085|158085|989898|1|9999058085|MR|Test|E|Lead 58085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058086|158086|989898|1|9999058086|MR|Test|E|Lead 58086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058087|158087|989898|1|9999058087|MR|Test|E|Lead 58087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058088|158088|989898|1|9999058088|MR|Test|E|Lead 58088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058089|158089|989898|1|9999058089|MR|Test|E|Lead 58089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058090|158090|989898|1|9999058090|MR|Test|E|Lead 58090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058091|158091|989898|1|9999058091|MR|Test|E|Lead 58091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058092|158092|989898|1|9999058092|MR|Test|E|Lead 58092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058093|158093|989898|1|9999058093|MR|Test|E|Lead 58093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058094|158094|989898|1|9999058094|MR|Test|E|Lead 58094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058095|158095|989898|1|9999058095|MR|Test|E|Lead 58095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058096|158096|989898|1|9999058096|MR|Test|E|Lead 58096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058097|158097|989898|1|9999058097|MR|Test|E|Lead 58097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058098|158098|989898|1|9999058098|MR|Test|E|Lead 58098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058099|158099|989898|1|9999058099|MR|Test|E|Lead 58099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058100|158100|989898|1|9999058100|MR|Test|E|Lead 58100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058101|158101|989898|1|9999058101|MR|Test|E|Lead 58101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058102|158102|989898|1|9999058102|MR|Test|E|Lead 58102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058103|158103|989898|1|9999058103|MR|Test|E|Lead 58103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058104|158104|989898|1|9999058104|MR|Test|E|Lead 58104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058105|158105|989898|1|9999058105|MR|Test|E|Lead 58105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058106|158106|989898|1|9999058106|MR|Test|E|Lead 58106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058107|158107|989898|1|9999058107|MR|Test|E|Lead 58107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058108|158108|989898|1|9999058108|MR|Test|E|Lead 58108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058109|158109|989898|1|9999058109|MR|Test|E|Lead 58109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058110|158110|989898|1|9999058110|MR|Test|E|Lead 58110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058111|158111|989898|1|9999058111|MR|Test|E|Lead 58111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058112|158112|989898|1|9999058112|MR|Test|E|Lead 58112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058113|158113|989898|1|9999058113|MR|Test|E|Lead 58113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058114|158114|989898|1|9999058114|MR|Test|E|Lead 58114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058115|158115|989898|1|9999058115|MR|Test|E|Lead 58115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058116|158116|989898|1|9999058116|MR|Test|E|Lead 58116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058117|158117|989898|1|9999058117|MR|Test|E|Lead 58117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058118|158118|989898|1|9999058118|MR|Test|E|Lead 58118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058119|158119|989898|1|9999058119|MR|Test|E|Lead 58119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058120|158120|989898|1|9999058120|MR|Test|E|Lead 58120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058121|158121|989898|1|9999058121|MR|Test|E|Lead 58121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058122|158122|989898|1|9999058122|MR|Test|E|Lead 58122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058123|158123|989898|1|9999058123|MR|Test|E|Lead 58123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058124|158124|989898|1|9999058124|MR|Test|E|Lead 58124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058125|158125|989898|1|9999058125|MR|Test|E|Lead 58125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058126|158126|989898|1|9999058126|MR|Test|E|Lead 58126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058127|158127|989898|1|9999058127|MR|Test|E|Lead 58127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058128|158128|989898|1|9999058128|MR|Test|E|Lead 58128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058129|158129|989898|1|9999058129|MR|Test|E|Lead 58129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058130|158130|989898|1|9999058130|MR|Test|E|Lead 58130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058131|158131|989898|1|9999058131|MR|Test|E|Lead 58131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058132|158132|989898|1|9999058132|MR|Test|E|Lead 58132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058133|158133|989898|1|9999058133|MR|Test|E|Lead 58133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058134|158134|989898|1|9999058134|MR|Test|E|Lead 58134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058135|158135|989898|1|9999058135|MR|Test|E|Lead 58135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058136|158136|989898|1|9999058136|MR|Test|E|Lead 58136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058137|158137|989898|1|9999058137|MR|Test|E|Lead 58137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058138|158138|989898|1|9999058138|MR|Test|E|Lead 58138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058139|158139|989898|1|9999058139|MR|Test|E|Lead 58139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058140|158140|989898|1|9999058140|MR|Test|E|Lead 58140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058141|158141|989898|1|9999058141|MR|Test|E|Lead 58141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058142|158142|989898|1|9999058142|MR|Test|E|Lead 58142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058143|158143|989898|1|9999058143|MR|Test|E|Lead 58143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058144|158144|989898|1|9999058144|MR|Test|E|Lead 58144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058145|158145|989898|1|9999058145|MR|Test|E|Lead 58145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058146|158146|989898|1|9999058146|MR|Test|E|Lead 58146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058147|158147|989898|1|9999058147|MR|Test|E|Lead 58147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058148|158148|989898|1|9999058148|MR|Test|E|Lead 58148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058149|158149|989898|1|9999058149|MR|Test|E|Lead 58149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058150|158150|989898|1|9999058150|MR|Test|E|Lead 58150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058151|158151|989898|1|9999058151|MR|Test|E|Lead 58151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058152|158152|989898|1|9999058152|MR|Test|E|Lead 58152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058153|158153|989898|1|9999058153|MR|Test|E|Lead 58153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058154|158154|989898|1|9999058154|MR|Test|E|Lead 58154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058155|158155|989898|1|9999058155|MR|Test|E|Lead 58155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058156|158156|989898|1|9999058156|MR|Test|E|Lead 58156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058157|158157|989898|1|9999058157|MR|Test|E|Lead 58157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058158|158158|989898|1|9999058158|MR|Test|E|Lead 58158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058159|158159|989898|1|9999058159|MR|Test|E|Lead 58159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058160|158160|989898|1|9999058160|MR|Test|E|Lead 58160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058161|158161|989898|1|9999058161|MR|Test|E|Lead 58161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058162|158162|989898|1|9999058162|MR|Test|E|Lead 58162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058163|158163|989898|1|9999058163|MR|Test|E|Lead 58163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058164|158164|989898|1|9999058164|MR|Test|E|Lead 58164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058165|158165|989898|1|9999058165|MR|Test|E|Lead 58165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058166|158166|989898|1|9999058166|MR|Test|E|Lead 58166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058167|158167|989898|1|9999058167|MR|Test|E|Lead 58167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058168|158168|989898|1|9999058168|MR|Test|E|Lead 58168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058169|158169|989898|1|9999058169|MR|Test|E|Lead 58169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058170|158170|989898|1|9999058170|MR|Test|E|Lead 58170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058171|158171|989898|1|9999058171|MR|Test|E|Lead 58171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058172|158172|989898|1|9999058172|MR|Test|E|Lead 58172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058173|158173|989898|1|9999058173|MR|Test|E|Lead 58173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058174|158174|989898|1|9999058174|MR|Test|E|Lead 58174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058175|158175|989898|1|9999058175|MR|Test|E|Lead 58175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058176|158176|989898|1|9999058176|MR|Test|E|Lead 58176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058177|158177|989898|1|9999058177|MR|Test|E|Lead 58177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058178|158178|989898|1|9999058178|MR|Test|E|Lead 58178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058179|158179|989898|1|9999058179|MR|Test|E|Lead 58179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058180|158180|989898|1|9999058180|MR|Test|E|Lead 58180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058181|158181|989898|1|9999058181|MR|Test|E|Lead 58181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058182|158182|989898|1|9999058182|MR|Test|E|Lead 58182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058183|158183|989898|1|9999058183|MR|Test|E|Lead 58183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058184|158184|989898|1|9999058184|MR|Test|E|Lead 58184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058185|158185|989898|1|9999058185|MR|Test|E|Lead 58185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058186|158186|989898|1|9999058186|MR|Test|E|Lead 58186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058187|158187|989898|1|9999058187|MR|Test|E|Lead 58187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058188|158188|989898|1|9999058188|MR|Test|E|Lead 58188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058189|158189|989898|1|9999058189|MR|Test|E|Lead 58189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058190|158190|989898|1|9999058190|MR|Test|E|Lead 58190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058191|158191|989898|1|9999058191|MR|Test|E|Lead 58191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058192|158192|989898|1|9999058192|MR|Test|E|Lead 58192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058193|158193|989898|1|9999058193|MR|Test|E|Lead 58193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058194|158194|989898|1|9999058194|MR|Test|E|Lead 58194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058195|158195|989898|1|9999058195|MR|Test|E|Lead 58195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058196|158196|989898|1|9999058196|MR|Test|E|Lead 58196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058197|158197|989898|1|9999058197|MR|Test|E|Lead 58197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058198|158198|989898|1|9999058198|MR|Test|E|Lead 58198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058199|158199|989898|1|9999058199|MR|Test|E|Lead 58199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058200|158200|989898|1|9999058200|MR|Test|E|Lead 58200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058201|158201|989898|1|9999058201|MR|Test|E|Lead 58201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058202|158202|989898|1|9999058202|MR|Test|E|Lead 58202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058203|158203|989898|1|9999058203|MR|Test|E|Lead 58203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058204|158204|989898|1|9999058204|MR|Test|E|Lead 58204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058205|158205|989898|1|9999058205|MR|Test|E|Lead 58205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058206|158206|989898|1|9999058206|MR|Test|E|Lead 58206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058207|158207|989898|1|9999058207|MR|Test|E|Lead 58207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058208|158208|989898|1|9999058208|MR|Test|E|Lead 58208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058209|158209|989898|1|9999058209|MR|Test|E|Lead 58209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058210|158210|989898|1|9999058210|MR|Test|E|Lead 58210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058211|158211|989898|1|9999058211|MR|Test|E|Lead 58211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058212|158212|989898|1|9999058212|MR|Test|E|Lead 58212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058213|158213|989898|1|9999058213|MR|Test|E|Lead 58213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058214|158214|989898|1|9999058214|MR|Test|E|Lead 58214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058215|158215|989898|1|9999058215|MR|Test|E|Lead 58215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058216|158216|989898|1|9999058216|MR|Test|E|Lead 58216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058217|158217|989898|1|9999058217|MR|Test|E|Lead 58217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058218|158218|989898|1|9999058218|MR|Test|E|Lead 58218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058219|158219|989898|1|9999058219|MR|Test|E|Lead 58219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058220|158220|989898|1|9999058220|MR|Test|E|Lead 58220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058221|158221|989898|1|9999058221|MR|Test|E|Lead 58221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058222|158222|989898|1|9999058222|MR|Test|E|Lead 58222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058223|158223|989898|1|9999058223|MR|Test|E|Lead 58223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058224|158224|989898|1|9999058224|MR|Test|E|Lead 58224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058225|158225|989898|1|9999058225|MR|Test|E|Lead 58225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058226|158226|989898|1|9999058226|MR|Test|E|Lead 58226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058227|158227|989898|1|9999058227|MR|Test|E|Lead 58227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058228|158228|989898|1|9999058228|MR|Test|E|Lead 58228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058229|158229|989898|1|9999058229|MR|Test|E|Lead 58229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058230|158230|989898|1|9999058230|MR|Test|E|Lead 58230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058231|158231|989898|1|9999058231|MR|Test|E|Lead 58231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058232|158232|989898|1|9999058232|MR|Test|E|Lead 58232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058233|158233|989898|1|9999058233|MR|Test|E|Lead 58233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058234|158234|989898|1|9999058234|MR|Test|E|Lead 58234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058235|158235|989898|1|9999058235|MR|Test|E|Lead 58235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058236|158236|989898|1|9999058236|MR|Test|E|Lead 58236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058237|158237|989898|1|9999058237|MR|Test|E|Lead 58237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058238|158238|989898|1|9999058238|MR|Test|E|Lead 58238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058239|158239|989898|1|9999058239|MR|Test|E|Lead 58239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058240|158240|989898|1|9999058240|MR|Test|E|Lead 58240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058241|158241|989898|1|9999058241|MR|Test|E|Lead 58241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058242|158242|989898|1|9999058242|MR|Test|E|Lead 58242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058243|158243|989898|1|9999058243|MR|Test|E|Lead 58243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058244|158244|989898|1|9999058244|MR|Test|E|Lead 58244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058245|158245|989898|1|9999058245|MR|Test|E|Lead 58245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058246|158246|989898|1|9999058246|MR|Test|E|Lead 58246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058247|158247|989898|1|9999058247|MR|Test|E|Lead 58247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058248|158248|989898|1|9999058248|MR|Test|E|Lead 58248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058249|158249|989898|1|9999058249|MR|Test|E|Lead 58249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058250|158250|989898|1|9999058250|MR|Test|E|Lead 58250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058251|158251|989898|1|9999058251|MR|Test|E|Lead 58251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058252|158252|989898|1|9999058252|MR|Test|E|Lead 58252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058253|158253|989898|1|9999058253|MR|Test|E|Lead 58253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058254|158254|989898|1|9999058254|MR|Test|E|Lead 58254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058255|158255|989898|1|9999058255|MR|Test|E|Lead 58255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058256|158256|989898|1|9999058256|MR|Test|E|Lead 58256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058257|158257|989898|1|9999058257|MR|Test|E|Lead 58257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058258|158258|989898|1|9999058258|MR|Test|E|Lead 58258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058259|158259|989898|1|9999058259|MR|Test|E|Lead 58259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058260|158260|989898|1|9999058260|MR|Test|E|Lead 58260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058261|158261|989898|1|9999058261|MR|Test|E|Lead 58261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058262|158262|989898|1|9999058262|MR|Test|E|Lead 58262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058263|158263|989898|1|9999058263|MR|Test|E|Lead 58263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058264|158264|989898|1|9999058264|MR|Test|E|Lead 58264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058265|158265|989898|1|9999058265|MR|Test|E|Lead 58265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058266|158266|989898|1|9999058266|MR|Test|E|Lead 58266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058267|158267|989898|1|9999058267|MR|Test|E|Lead 58267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058268|158268|989898|1|9999058268|MR|Test|E|Lead 58268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058269|158269|989898|1|9999058269|MR|Test|E|Lead 58269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058270|158270|989898|1|9999058270|MR|Test|E|Lead 58270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058271|158271|989898|1|9999058271|MR|Test|E|Lead 58271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058272|158272|989898|1|9999058272|MR|Test|E|Lead 58272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058273|158273|989898|1|9999058273|MR|Test|E|Lead 58273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058274|158274|989898|1|9999058274|MR|Test|E|Lead 58274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058275|158275|989898|1|9999058275|MR|Test|E|Lead 58275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058276|158276|989898|1|9999058276|MR|Test|E|Lead 58276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058277|158277|989898|1|9999058277|MR|Test|E|Lead 58277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058278|158278|989898|1|9999058278|MR|Test|E|Lead 58278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058279|158279|989898|1|9999058279|MR|Test|E|Lead 58279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058280|158280|989898|1|9999058280|MR|Test|E|Lead 58280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058281|158281|989898|1|9999058281|MR|Test|E|Lead 58281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058282|158282|989898|1|9999058282|MR|Test|E|Lead 58282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058283|158283|989898|1|9999058283|MR|Test|E|Lead 58283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058284|158284|989898|1|9999058284|MR|Test|E|Lead 58284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058285|158285|989898|1|9999058285|MR|Test|E|Lead 58285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058286|158286|989898|1|9999058286|MR|Test|E|Lead 58286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058287|158287|989898|1|9999058287|MR|Test|E|Lead 58287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058288|158288|989898|1|9999058288|MR|Test|E|Lead 58288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058289|158289|989898|1|9999058289|MR|Test|E|Lead 58289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058290|158290|989898|1|9999058290|MR|Test|E|Lead 58290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058291|158291|989898|1|9999058291|MR|Test|E|Lead 58291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058292|158292|989898|1|9999058292|MR|Test|E|Lead 58292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058293|158293|989898|1|9999058293|MR|Test|E|Lead 58293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058294|158294|989898|1|9999058294|MR|Test|E|Lead 58294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058295|158295|989898|1|9999058295|MR|Test|E|Lead 58295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058296|158296|989898|1|9999058296|MR|Test|E|Lead 58296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058297|158297|989898|1|9999058297|MR|Test|E|Lead 58297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058298|158298|989898|1|9999058298|MR|Test|E|Lead 58298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058299|158299|989898|1|9999058299|MR|Test|E|Lead 58299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058300|158300|989898|1|9999058300|MR|Test|E|Lead 58300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058301|158301|989898|1|9999058301|MR|Test|E|Lead 58301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058302|158302|989898|1|9999058302|MR|Test|E|Lead 58302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058303|158303|989898|1|9999058303|MR|Test|E|Lead 58303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058304|158304|989898|1|9999058304|MR|Test|E|Lead 58304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058305|158305|989898|1|9999058305|MR|Test|E|Lead 58305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058306|158306|989898|1|9999058306|MR|Test|E|Lead 58306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058307|158307|989898|1|9999058307|MR|Test|E|Lead 58307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058308|158308|989898|1|9999058308|MR|Test|E|Lead 58308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058309|158309|989898|1|9999058309|MR|Test|E|Lead 58309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058310|158310|989898|1|9999058310|MR|Test|E|Lead 58310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058311|158311|989898|1|9999058311|MR|Test|E|Lead 58311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058312|158312|989898|1|9999058312|MR|Test|E|Lead 58312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058313|158313|989898|1|9999058313|MR|Test|E|Lead 58313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058314|158314|989898|1|9999058314|MR|Test|E|Lead 58314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058315|158315|989898|1|9999058315|MR|Test|E|Lead 58315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058316|158316|989898|1|9999058316|MR|Test|E|Lead 58316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058317|158317|989898|1|9999058317|MR|Test|E|Lead 58317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058318|158318|989898|1|9999058318|MR|Test|E|Lead 58318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058319|158319|989898|1|9999058319|MR|Test|E|Lead 58319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058320|158320|989898|1|9999058320|MR|Test|E|Lead 58320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058321|158321|989898|1|9999058321|MR|Test|E|Lead 58321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058322|158322|989898|1|9999058322|MR|Test|E|Lead 58322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058323|158323|989898|1|9999058323|MR|Test|E|Lead 58323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058324|158324|989898|1|9999058324|MR|Test|E|Lead 58324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058325|158325|989898|1|9999058325|MR|Test|E|Lead 58325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058326|158326|989898|1|9999058326|MR|Test|E|Lead 58326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058327|158327|989898|1|9999058327|MR|Test|E|Lead 58327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058328|158328|989898|1|9999058328|MR|Test|E|Lead 58328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058329|158329|989898|1|9999058329|MR|Test|E|Lead 58329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058330|158330|989898|1|9999058330|MR|Test|E|Lead 58330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058331|158331|989898|1|9999058331|MR|Test|E|Lead 58331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058332|158332|989898|1|9999058332|MR|Test|E|Lead 58332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058333|158333|989898|1|9999058333|MR|Test|E|Lead 58333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058334|158334|989898|1|9999058334|MR|Test|E|Lead 58334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058335|158335|989898|1|9999058335|MR|Test|E|Lead 58335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058336|158336|989898|1|9999058336|MR|Test|E|Lead 58336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058337|158337|989898|1|9999058337|MR|Test|E|Lead 58337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058338|158338|989898|1|9999058338|MR|Test|E|Lead 58338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058339|158339|989898|1|9999058339|MR|Test|E|Lead 58339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058340|158340|989898|1|9999058340|MR|Test|E|Lead 58340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058341|158341|989898|1|9999058341|MR|Test|E|Lead 58341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058342|158342|989898|1|9999058342|MR|Test|E|Lead 58342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058343|158343|989898|1|9999058343|MR|Test|E|Lead 58343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058344|158344|989898|1|9999058344|MR|Test|E|Lead 58344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058345|158345|989898|1|9999058345|MR|Test|E|Lead 58345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058346|158346|989898|1|9999058346|MR|Test|E|Lead 58346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058347|158347|989898|1|9999058347|MR|Test|E|Lead 58347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058348|158348|989898|1|9999058348|MR|Test|E|Lead 58348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058349|158349|989898|1|9999058349|MR|Test|E|Lead 58349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058350|158350|989898|1|9999058350|MR|Test|E|Lead 58350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058351|158351|989898|1|9999058351|MR|Test|E|Lead 58351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058352|158352|989898|1|9999058352|MR|Test|E|Lead 58352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058353|158353|989898|1|9999058353|MR|Test|E|Lead 58353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058354|158354|989898|1|9999058354|MR|Test|E|Lead 58354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058355|158355|989898|1|9999058355|MR|Test|E|Lead 58355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058356|158356|989898|1|9999058356|MR|Test|E|Lead 58356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058357|158357|989898|1|9999058357|MR|Test|E|Lead 58357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058358|158358|989898|1|9999058358|MR|Test|E|Lead 58358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058359|158359|989898|1|9999058359|MR|Test|E|Lead 58359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058360|158360|989898|1|9999058360|MR|Test|E|Lead 58360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058361|158361|989898|1|9999058361|MR|Test|E|Lead 58361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058362|158362|989898|1|9999058362|MR|Test|E|Lead 58362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058363|158363|989898|1|9999058363|MR|Test|E|Lead 58363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058364|158364|989898|1|9999058364|MR|Test|E|Lead 58364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058365|158365|989898|1|9999058365|MR|Test|E|Lead 58365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058366|158366|989898|1|9999058366|MR|Test|E|Lead 58366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058367|158367|989898|1|9999058367|MR|Test|E|Lead 58367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058368|158368|989898|1|9999058368|MR|Test|E|Lead 58368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058369|158369|989898|1|9999058369|MR|Test|E|Lead 58369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058370|158370|989898|1|9999058370|MR|Test|E|Lead 58370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058371|158371|989898|1|9999058371|MR|Test|E|Lead 58371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058372|158372|989898|1|9999058372|MR|Test|E|Lead 58372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058373|158373|989898|1|9999058373|MR|Test|E|Lead 58373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058374|158374|989898|1|9999058374|MR|Test|E|Lead 58374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058375|158375|989898|1|9999058375|MR|Test|E|Lead 58375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058376|158376|989898|1|9999058376|MR|Test|E|Lead 58376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058377|158377|989898|1|9999058377|MR|Test|E|Lead 58377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058378|158378|989898|1|9999058378|MR|Test|E|Lead 58378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058379|158379|989898|1|9999058379|MR|Test|E|Lead 58379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058380|158380|989898|1|9999058380|MR|Test|E|Lead 58380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058381|158381|989898|1|9999058381|MR|Test|E|Lead 58381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058382|158382|989898|1|9999058382|MR|Test|E|Lead 58382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058383|158383|989898|1|9999058383|MR|Test|E|Lead 58383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058384|158384|989898|1|9999058384|MR|Test|E|Lead 58384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058385|158385|989898|1|9999058385|MR|Test|E|Lead 58385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058386|158386|989898|1|9999058386|MR|Test|E|Lead 58386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058387|158387|989898|1|9999058387|MR|Test|E|Lead 58387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058388|158388|989898|1|9999058388|MR|Test|E|Lead 58388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058389|158389|989898|1|9999058389|MR|Test|E|Lead 58389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058390|158390|989898|1|9999058390|MR|Test|E|Lead 58390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058391|158391|989898|1|9999058391|MR|Test|E|Lead 58391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058392|158392|989898|1|9999058392|MR|Test|E|Lead 58392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058393|158393|989898|1|9999058393|MR|Test|E|Lead 58393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058394|158394|989898|1|9999058394|MR|Test|E|Lead 58394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058395|158395|989898|1|9999058395|MR|Test|E|Lead 58395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058396|158396|989898|1|9999058396|MR|Test|E|Lead 58396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058397|158397|989898|1|9999058397|MR|Test|E|Lead 58397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058398|158398|989898|1|9999058398|MR|Test|E|Lead 58398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058399|158399|989898|1|9999058399|MR|Test|E|Lead 58399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058400|158400|989898|1|9999058400|MR|Test|E|Lead 58400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058401|158401|989898|1|9999058401|MR|Test|E|Lead 58401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058402|158402|989898|1|9999058402|MR|Test|E|Lead 58402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058403|158403|989898|1|9999058403|MR|Test|E|Lead 58403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058404|158404|989898|1|9999058404|MR|Test|E|Lead 58404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058405|158405|989898|1|9999058405|MR|Test|E|Lead 58405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058406|158406|989898|1|9999058406|MR|Test|E|Lead 58406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058407|158407|989898|1|9999058407|MR|Test|E|Lead 58407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058408|158408|989898|1|9999058408|MR|Test|E|Lead 58408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058409|158409|989898|1|9999058409|MR|Test|E|Lead 58409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058410|158410|989898|1|9999058410|MR|Test|E|Lead 58410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058411|158411|989898|1|9999058411|MR|Test|E|Lead 58411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058412|158412|989898|1|9999058412|MR|Test|E|Lead 58412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058413|158413|989898|1|9999058413|MR|Test|E|Lead 58413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058414|158414|989898|1|9999058414|MR|Test|E|Lead 58414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058415|158415|989898|1|9999058415|MR|Test|E|Lead 58415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058416|158416|989898|1|9999058416|MR|Test|E|Lead 58416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058417|158417|989898|1|9999058417|MR|Test|E|Lead 58417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058418|158418|989898|1|9999058418|MR|Test|E|Lead 58418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058419|158419|989898|1|9999058419|MR|Test|E|Lead 58419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058420|158420|989898|1|9999058420|MR|Test|E|Lead 58420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058421|158421|989898|1|9999058421|MR|Test|E|Lead 58421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058422|158422|989898|1|9999058422|MR|Test|E|Lead 58422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058423|158423|989898|1|9999058423|MR|Test|E|Lead 58423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058424|158424|989898|1|9999058424|MR|Test|E|Lead 58424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058425|158425|989898|1|9999058425|MR|Test|E|Lead 58425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058426|158426|989898|1|9999058426|MR|Test|E|Lead 58426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058427|158427|989898|1|9999058427|MR|Test|E|Lead 58427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058428|158428|989898|1|9999058428|MR|Test|E|Lead 58428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058429|158429|989898|1|9999058429|MR|Test|E|Lead 58429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058430|158430|989898|1|9999058430|MR|Test|E|Lead 58430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058431|158431|989898|1|9999058431|MR|Test|E|Lead 58431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058432|158432|989898|1|9999058432|MR|Test|E|Lead 58432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058433|158433|989898|1|9999058433|MR|Test|E|Lead 58433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058434|158434|989898|1|9999058434|MR|Test|E|Lead 58434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058435|158435|989898|1|9999058435|MR|Test|E|Lead 58435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058436|158436|989898|1|9999058436|MR|Test|E|Lead 58436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058437|158437|989898|1|9999058437|MR|Test|E|Lead 58437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058438|158438|989898|1|9999058438|MR|Test|E|Lead 58438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058439|158439|989898|1|9999058439|MR|Test|E|Lead 58439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058440|158440|989898|1|9999058440|MR|Test|E|Lead 58440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058441|158441|989898|1|9999058441|MR|Test|E|Lead 58441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058442|158442|989898|1|9999058442|MR|Test|E|Lead 58442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058443|158443|989898|1|9999058443|MR|Test|E|Lead 58443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058444|158444|989898|1|9999058444|MR|Test|E|Lead 58444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058445|158445|989898|1|9999058445|MR|Test|E|Lead 58445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058446|158446|989898|1|9999058446|MR|Test|E|Lead 58446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058447|158447|989898|1|9999058447|MR|Test|E|Lead 58447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058448|158448|989898|1|9999058448|MR|Test|E|Lead 58448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058449|158449|989898|1|9999058449|MR|Test|E|Lead 58449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058450|158450|989898|1|9999058450|MR|Test|E|Lead 58450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058451|158451|989898|1|9999058451|MR|Test|E|Lead 58451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058452|158452|989898|1|9999058452|MR|Test|E|Lead 58452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058453|158453|989898|1|9999058453|MR|Test|E|Lead 58453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058454|158454|989898|1|9999058454|MR|Test|E|Lead 58454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058455|158455|989898|1|9999058455|MR|Test|E|Lead 58455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058456|158456|989898|1|9999058456|MR|Test|E|Lead 58456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058457|158457|989898|1|9999058457|MR|Test|E|Lead 58457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058458|158458|989898|1|9999058458|MR|Test|E|Lead 58458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058459|158459|989898|1|9999058459|MR|Test|E|Lead 58459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058460|158460|989898|1|9999058460|MR|Test|E|Lead 58460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058461|158461|989898|1|9999058461|MR|Test|E|Lead 58461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058462|158462|989898|1|9999058462|MR|Test|E|Lead 58462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058463|158463|989898|1|9999058463|MR|Test|E|Lead 58463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058464|158464|989898|1|9999058464|MR|Test|E|Lead 58464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058465|158465|989898|1|9999058465|MR|Test|E|Lead 58465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058466|158466|989898|1|9999058466|MR|Test|E|Lead 58466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058467|158467|989898|1|9999058467|MR|Test|E|Lead 58467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058468|158468|989898|1|9999058468|MR|Test|E|Lead 58468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058469|158469|989898|1|9999058469|MR|Test|E|Lead 58469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058470|158470|989898|1|9999058470|MR|Test|E|Lead 58470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058471|158471|989898|1|9999058471|MR|Test|E|Lead 58471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058472|158472|989898|1|9999058472|MR|Test|E|Lead 58472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058473|158473|989898|1|9999058473|MR|Test|E|Lead 58473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058474|158474|989898|1|9999058474|MR|Test|E|Lead 58474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058475|158475|989898|1|9999058475|MR|Test|E|Lead 58475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058476|158476|989898|1|9999058476|MR|Test|E|Lead 58476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058477|158477|989898|1|9999058477|MR|Test|E|Lead 58477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058478|158478|989898|1|9999058478|MR|Test|E|Lead 58478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058479|158479|989898|1|9999058479|MR|Test|E|Lead 58479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058480|158480|989898|1|9999058480|MR|Test|E|Lead 58480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058481|158481|989898|1|9999058481|MR|Test|E|Lead 58481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058482|158482|989898|1|9999058482|MR|Test|E|Lead 58482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058483|158483|989898|1|9999058483|MR|Test|E|Lead 58483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058484|158484|989898|1|9999058484|MR|Test|E|Lead 58484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058485|158485|989898|1|9999058485|MR|Test|E|Lead 58485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058486|158486|989898|1|9999058486|MR|Test|E|Lead 58486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058487|158487|989898|1|9999058487|MR|Test|E|Lead 58487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058488|158488|989898|1|9999058488|MR|Test|E|Lead 58488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058489|158489|989898|1|9999058489|MR|Test|E|Lead 58489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058490|158490|989898|1|9999058490|MR|Test|E|Lead 58490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058491|158491|989898|1|9999058491|MR|Test|E|Lead 58491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058492|158492|989898|1|9999058492|MR|Test|E|Lead 58492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058493|158493|989898|1|9999058493|MR|Test|E|Lead 58493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058494|158494|989898|1|9999058494|MR|Test|E|Lead 58494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058495|158495|989898|1|9999058495|MR|Test|E|Lead 58495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058496|158496|989898|1|9999058496|MR|Test|E|Lead 58496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058497|158497|989898|1|9999058497|MR|Test|E|Lead 58497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058498|158498|989898|1|9999058498|MR|Test|E|Lead 58498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058499|158499|989898|1|9999058499|MR|Test|E|Lead 58499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058500|158500|989898|1|9999058500|MR|Test|E|Lead 58500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058501|158501|989898|1|9999058501|MR|Test|E|Lead 58501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058502|158502|989898|1|9999058502|MR|Test|E|Lead 58502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058503|158503|989898|1|9999058503|MR|Test|E|Lead 58503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058504|158504|989898|1|9999058504|MR|Test|E|Lead 58504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058505|158505|989898|1|9999058505|MR|Test|E|Lead 58505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058506|158506|989898|1|9999058506|MR|Test|E|Lead 58506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058507|158507|989898|1|9999058507|MR|Test|E|Lead 58507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058508|158508|989898|1|9999058508|MR|Test|E|Lead 58508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058509|158509|989898|1|9999058509|MR|Test|E|Lead 58509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058510|158510|989898|1|9999058510|MR|Test|E|Lead 58510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058511|158511|989898|1|9999058511|MR|Test|E|Lead 58511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058512|158512|989898|1|9999058512|MR|Test|E|Lead 58512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058513|158513|989898|1|9999058513|MR|Test|E|Lead 58513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058514|158514|989898|1|9999058514|MR|Test|E|Lead 58514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058515|158515|989898|1|9999058515|MR|Test|E|Lead 58515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058516|158516|989898|1|9999058516|MR|Test|E|Lead 58516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058517|158517|989898|1|9999058517|MR|Test|E|Lead 58517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058518|158518|989898|1|9999058518|MR|Test|E|Lead 58518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058519|158519|989898|1|9999058519|MR|Test|E|Lead 58519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058520|158520|989898|1|9999058520|MR|Test|E|Lead 58520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058521|158521|989898|1|9999058521|MR|Test|E|Lead 58521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058522|158522|989898|1|9999058522|MR|Test|E|Lead 58522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058523|158523|989898|1|9999058523|MR|Test|E|Lead 58523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058524|158524|989898|1|9999058524|MR|Test|E|Lead 58524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058525|158525|989898|1|9999058525|MR|Test|E|Lead 58525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058526|158526|989898|1|9999058526|MR|Test|E|Lead 58526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058527|158527|989898|1|9999058527|MR|Test|E|Lead 58527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058528|158528|989898|1|9999058528|MR|Test|E|Lead 58528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058529|158529|989898|1|9999058529|MR|Test|E|Lead 58529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058530|158530|989898|1|9999058530|MR|Test|E|Lead 58530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058531|158531|989898|1|9999058531|MR|Test|E|Lead 58531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058532|158532|989898|1|9999058532|MR|Test|E|Lead 58532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058533|158533|989898|1|9999058533|MR|Test|E|Lead 58533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058534|158534|989898|1|9999058534|MR|Test|E|Lead 58534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058535|158535|989898|1|9999058535|MR|Test|E|Lead 58535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058536|158536|989898|1|9999058536|MR|Test|E|Lead 58536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058537|158537|989898|1|9999058537|MR|Test|E|Lead 58537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058538|158538|989898|1|9999058538|MR|Test|E|Lead 58538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058539|158539|989898|1|9999058539|MR|Test|E|Lead 58539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058540|158540|989898|1|9999058540|MR|Test|E|Lead 58540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058541|158541|989898|1|9999058541|MR|Test|E|Lead 58541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058542|158542|989898|1|9999058542|MR|Test|E|Lead 58542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058543|158543|989898|1|9999058543|MR|Test|E|Lead 58543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058544|158544|989898|1|9999058544|MR|Test|E|Lead 58544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058545|158545|989898|1|9999058545|MR|Test|E|Lead 58545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058546|158546|989898|1|9999058546|MR|Test|E|Lead 58546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058547|158547|989898|1|9999058547|MR|Test|E|Lead 58547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058548|158548|989898|1|9999058548|MR|Test|E|Lead 58548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058549|158549|989898|1|9999058549|MR|Test|E|Lead 58549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058550|158550|989898|1|9999058550|MR|Test|E|Lead 58550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058551|158551|989898|1|9999058551|MR|Test|E|Lead 58551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058552|158552|989898|1|9999058552|MR|Test|E|Lead 58552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058553|158553|989898|1|9999058553|MR|Test|E|Lead 58553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058554|158554|989898|1|9999058554|MR|Test|E|Lead 58554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058555|158555|989898|1|9999058555|MR|Test|E|Lead 58555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058556|158556|989898|1|9999058556|MR|Test|E|Lead 58556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058557|158557|989898|1|9999058557|MR|Test|E|Lead 58557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058558|158558|989898|1|9999058558|MR|Test|E|Lead 58558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058559|158559|989898|1|9999058559|MR|Test|E|Lead 58559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058560|158560|989898|1|9999058560|MR|Test|E|Lead 58560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058561|158561|989898|1|9999058561|MR|Test|E|Lead 58561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058562|158562|989898|1|9999058562|MR|Test|E|Lead 58562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058563|158563|989898|1|9999058563|MR|Test|E|Lead 58563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058564|158564|989898|1|9999058564|MR|Test|E|Lead 58564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058565|158565|989898|1|9999058565|MR|Test|E|Lead 58565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058566|158566|989898|1|9999058566|MR|Test|E|Lead 58566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058567|158567|989898|1|9999058567|MR|Test|E|Lead 58567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058568|158568|989898|1|9999058568|MR|Test|E|Lead 58568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058569|158569|989898|1|9999058569|MR|Test|E|Lead 58569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058570|158570|989898|1|9999058570|MR|Test|E|Lead 58570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058571|158571|989898|1|9999058571|MR|Test|E|Lead 58571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058572|158572|989898|1|9999058572|MR|Test|E|Lead 58572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058573|158573|989898|1|9999058573|MR|Test|E|Lead 58573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058574|158574|989898|1|9999058574|MR|Test|E|Lead 58574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058575|158575|989898|1|9999058575|MR|Test|E|Lead 58575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058576|158576|989898|1|9999058576|MR|Test|E|Lead 58576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058577|158577|989898|1|9999058577|MR|Test|E|Lead 58577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058578|158578|989898|1|9999058578|MR|Test|E|Lead 58578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058579|158579|989898|1|9999058579|MR|Test|E|Lead 58579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058580|158580|989898|1|9999058580|MR|Test|E|Lead 58580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058581|158581|989898|1|9999058581|MR|Test|E|Lead 58581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058582|158582|989898|1|9999058582|MR|Test|E|Lead 58582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058583|158583|989898|1|9999058583|MR|Test|E|Lead 58583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058584|158584|989898|1|9999058584|MR|Test|E|Lead 58584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058585|158585|989898|1|9999058585|MR|Test|E|Lead 58585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058586|158586|989898|1|9999058586|MR|Test|E|Lead 58586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058587|158587|989898|1|9999058587|MR|Test|E|Lead 58587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058588|158588|989898|1|9999058588|MR|Test|E|Lead 58588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058589|158589|989898|1|9999058589|MR|Test|E|Lead 58589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058590|158590|989898|1|9999058590|MR|Test|E|Lead 58590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058591|158591|989898|1|9999058591|MR|Test|E|Lead 58591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058592|158592|989898|1|9999058592|MR|Test|E|Lead 58592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058593|158593|989898|1|9999058593|MR|Test|E|Lead 58593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058594|158594|989898|1|9999058594|MR|Test|E|Lead 58594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058595|158595|989898|1|9999058595|MR|Test|E|Lead 58595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058596|158596|989898|1|9999058596|MR|Test|E|Lead 58596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058597|158597|989898|1|9999058597|MR|Test|E|Lead 58597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058598|158598|989898|1|9999058598|MR|Test|E|Lead 58598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058599|158599|989898|1|9999058599|MR|Test|E|Lead 58599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058600|158600|989898|1|9999058600|MR|Test|E|Lead 58600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058601|158601|989898|1|9999058601|MR|Test|E|Lead 58601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058602|158602|989898|1|9999058602|MR|Test|E|Lead 58602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058603|158603|989898|1|9999058603|MR|Test|E|Lead 58603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058604|158604|989898|1|9999058604|MR|Test|E|Lead 58604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058605|158605|989898|1|9999058605|MR|Test|E|Lead 58605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058606|158606|989898|1|9999058606|MR|Test|E|Lead 58606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058607|158607|989898|1|9999058607|MR|Test|E|Lead 58607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058608|158608|989898|1|9999058608|MR|Test|E|Lead 58608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058609|158609|989898|1|9999058609|MR|Test|E|Lead 58609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058610|158610|989898|1|9999058610|MR|Test|E|Lead 58610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058611|158611|989898|1|9999058611|MR|Test|E|Lead 58611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058612|158612|989898|1|9999058612|MR|Test|E|Lead 58612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058613|158613|989898|1|9999058613|MR|Test|E|Lead 58613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058614|158614|989898|1|9999058614|MR|Test|E|Lead 58614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058615|158615|989898|1|9999058615|MR|Test|E|Lead 58615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058616|158616|989898|1|9999058616|MR|Test|E|Lead 58616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058617|158617|989898|1|9999058617|MR|Test|E|Lead 58617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058618|158618|989898|1|9999058618|MR|Test|E|Lead 58618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058619|158619|989898|1|9999058619|MR|Test|E|Lead 58619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058620|158620|989898|1|9999058620|MR|Test|E|Lead 58620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058621|158621|989898|1|9999058621|MR|Test|E|Lead 58621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058622|158622|989898|1|9999058622|MR|Test|E|Lead 58622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058623|158623|989898|1|9999058623|MR|Test|E|Lead 58623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058624|158624|989898|1|9999058624|MR|Test|E|Lead 58624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058625|158625|989898|1|9999058625|MR|Test|E|Lead 58625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058626|158626|989898|1|9999058626|MR|Test|E|Lead 58626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058627|158627|989898|1|9999058627|MR|Test|E|Lead 58627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058628|158628|989898|1|9999058628|MR|Test|E|Lead 58628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058629|158629|989898|1|9999058629|MR|Test|E|Lead 58629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058630|158630|989898|1|9999058630|MR|Test|E|Lead 58630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058631|158631|989898|1|9999058631|MR|Test|E|Lead 58631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058632|158632|989898|1|9999058632|MR|Test|E|Lead 58632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058633|158633|989898|1|9999058633|MR|Test|E|Lead 58633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058634|158634|989898|1|9999058634|MR|Test|E|Lead 58634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058635|158635|989898|1|9999058635|MR|Test|E|Lead 58635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058636|158636|989898|1|9999058636|MR|Test|E|Lead 58636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058637|158637|989898|1|9999058637|MR|Test|E|Lead 58637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058638|158638|989898|1|9999058638|MR|Test|E|Lead 58638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058639|158639|989898|1|9999058639|MR|Test|E|Lead 58639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058640|158640|989898|1|9999058640|MR|Test|E|Lead 58640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058641|158641|989898|1|9999058641|MR|Test|E|Lead 58641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058642|158642|989898|1|9999058642|MR|Test|E|Lead 58642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058643|158643|989898|1|9999058643|MR|Test|E|Lead 58643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058644|158644|989898|1|9999058644|MR|Test|E|Lead 58644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058645|158645|989898|1|9999058645|MR|Test|E|Lead 58645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058646|158646|989898|1|9999058646|MR|Test|E|Lead 58646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058647|158647|989898|1|9999058647|MR|Test|E|Lead 58647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058648|158648|989898|1|9999058648|MR|Test|E|Lead 58648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058649|158649|989898|1|9999058649|MR|Test|E|Lead 58649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058650|158650|989898|1|9999058650|MR|Test|E|Lead 58650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058651|158651|989898|1|9999058651|MR|Test|E|Lead 58651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058652|158652|989898|1|9999058652|MR|Test|E|Lead 58652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058653|158653|989898|1|9999058653|MR|Test|E|Lead 58653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058654|158654|989898|1|9999058654|MR|Test|E|Lead 58654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058655|158655|989898|1|9999058655|MR|Test|E|Lead 58655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058656|158656|989898|1|9999058656|MR|Test|E|Lead 58656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058657|158657|989898|1|9999058657|MR|Test|E|Lead 58657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058658|158658|989898|1|9999058658|MR|Test|E|Lead 58658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058659|158659|989898|1|9999058659|MR|Test|E|Lead 58659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058660|158660|989898|1|9999058660|MR|Test|E|Lead 58660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058661|158661|989898|1|9999058661|MR|Test|E|Lead 58661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058662|158662|989898|1|9999058662|MR|Test|E|Lead 58662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058663|158663|989898|1|9999058663|MR|Test|E|Lead 58663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058664|158664|989898|1|9999058664|MR|Test|E|Lead 58664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058665|158665|989898|1|9999058665|MR|Test|E|Lead 58665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058666|158666|989898|1|9999058666|MR|Test|E|Lead 58666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058667|158667|989898|1|9999058667|MR|Test|E|Lead 58667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058668|158668|989898|1|9999058668|MR|Test|E|Lead 58668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058669|158669|989898|1|9999058669|MR|Test|E|Lead 58669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058670|158670|989898|1|9999058670|MR|Test|E|Lead 58670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058671|158671|989898|1|9999058671|MR|Test|E|Lead 58671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058672|158672|989898|1|9999058672|MR|Test|E|Lead 58672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058673|158673|989898|1|9999058673|MR|Test|E|Lead 58673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058674|158674|989898|1|9999058674|MR|Test|E|Lead 58674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058675|158675|989898|1|9999058675|MR|Test|E|Lead 58675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058676|158676|989898|1|9999058676|MR|Test|E|Lead 58676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058677|158677|989898|1|9999058677|MR|Test|E|Lead 58677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058678|158678|989898|1|9999058678|MR|Test|E|Lead 58678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058679|158679|989898|1|9999058679|MR|Test|E|Lead 58679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058680|158680|989898|1|9999058680|MR|Test|E|Lead 58680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058681|158681|989898|1|9999058681|MR|Test|E|Lead 58681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058682|158682|989898|1|9999058682|MR|Test|E|Lead 58682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058683|158683|989898|1|9999058683|MR|Test|E|Lead 58683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058684|158684|989898|1|9999058684|MR|Test|E|Lead 58684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058685|158685|989898|1|9999058685|MR|Test|E|Lead 58685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058686|158686|989898|1|9999058686|MR|Test|E|Lead 58686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058687|158687|989898|1|9999058687|MR|Test|E|Lead 58687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058688|158688|989898|1|9999058688|MR|Test|E|Lead 58688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058689|158689|989898|1|9999058689|MR|Test|E|Lead 58689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058690|158690|989898|1|9999058690|MR|Test|E|Lead 58690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058691|158691|989898|1|9999058691|MR|Test|E|Lead 58691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058692|158692|989898|1|9999058692|MR|Test|E|Lead 58692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058693|158693|989898|1|9999058693|MR|Test|E|Lead 58693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058694|158694|989898|1|9999058694|MR|Test|E|Lead 58694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058695|158695|989898|1|9999058695|MR|Test|E|Lead 58695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058696|158696|989898|1|9999058696|MR|Test|E|Lead 58696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058697|158697|989898|1|9999058697|MR|Test|E|Lead 58697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058698|158698|989898|1|9999058698|MR|Test|E|Lead 58698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058699|158699|989898|1|9999058699|MR|Test|E|Lead 58699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058700|158700|989898|1|9999058700|MR|Test|E|Lead 58700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058701|158701|989898|1|9999058701|MR|Test|E|Lead 58701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058702|158702|989898|1|9999058702|MR|Test|E|Lead 58702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058703|158703|989898|1|9999058703|MR|Test|E|Lead 58703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058704|158704|989898|1|9999058704|MR|Test|E|Lead 58704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058705|158705|989898|1|9999058705|MR|Test|E|Lead 58705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058706|158706|989898|1|9999058706|MR|Test|E|Lead 58706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058707|158707|989898|1|9999058707|MR|Test|E|Lead 58707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058708|158708|989898|1|9999058708|MR|Test|E|Lead 58708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058709|158709|989898|1|9999058709|MR|Test|E|Lead 58709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058710|158710|989898|1|9999058710|MR|Test|E|Lead 58710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058711|158711|989898|1|9999058711|MR|Test|E|Lead 58711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058712|158712|989898|1|9999058712|MR|Test|E|Lead 58712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058713|158713|989898|1|9999058713|MR|Test|E|Lead 58713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058714|158714|989898|1|9999058714|MR|Test|E|Lead 58714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058715|158715|989898|1|9999058715|MR|Test|E|Lead 58715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058716|158716|989898|1|9999058716|MR|Test|E|Lead 58716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058717|158717|989898|1|9999058717|MR|Test|E|Lead 58717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058718|158718|989898|1|9999058718|MR|Test|E|Lead 58718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058719|158719|989898|1|9999058719|MR|Test|E|Lead 58719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058720|158720|989898|1|9999058720|MR|Test|E|Lead 58720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058721|158721|989898|1|9999058721|MR|Test|E|Lead 58721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058722|158722|989898|1|9999058722|MR|Test|E|Lead 58722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058723|158723|989898|1|9999058723|MR|Test|E|Lead 58723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058724|158724|989898|1|9999058724|MR|Test|E|Lead 58724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058725|158725|989898|1|9999058725|MR|Test|E|Lead 58725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058726|158726|989898|1|9999058726|MR|Test|E|Lead 58726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058727|158727|989898|1|9999058727|MR|Test|E|Lead 58727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058728|158728|989898|1|9999058728|MR|Test|E|Lead 58728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058729|158729|989898|1|9999058729|MR|Test|E|Lead 58729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058730|158730|989898|1|9999058730|MR|Test|E|Lead 58730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058731|158731|989898|1|9999058731|MR|Test|E|Lead 58731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058732|158732|989898|1|9999058732|MR|Test|E|Lead 58732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058733|158733|989898|1|9999058733|MR|Test|E|Lead 58733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058734|158734|989898|1|9999058734|MR|Test|E|Lead 58734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058735|158735|989898|1|9999058735|MR|Test|E|Lead 58735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058736|158736|989898|1|9999058736|MR|Test|E|Lead 58736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058737|158737|989898|1|9999058737|MR|Test|E|Lead 58737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058738|158738|989898|1|9999058738|MR|Test|E|Lead 58738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058739|158739|989898|1|9999058739|MR|Test|E|Lead 58739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058740|158740|989898|1|9999058740|MR|Test|E|Lead 58740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058741|158741|989898|1|9999058741|MR|Test|E|Lead 58741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058742|158742|989898|1|9999058742|MR|Test|E|Lead 58742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058743|158743|989898|1|9999058743|MR|Test|E|Lead 58743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058744|158744|989898|1|9999058744|MR|Test|E|Lead 58744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058745|158745|989898|1|9999058745|MR|Test|E|Lead 58745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058746|158746|989898|1|9999058746|MR|Test|E|Lead 58746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058747|158747|989898|1|9999058747|MR|Test|E|Lead 58747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058748|158748|989898|1|9999058748|MR|Test|E|Lead 58748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058749|158749|989898|1|9999058749|MR|Test|E|Lead 58749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058750|158750|989898|1|9999058750|MR|Test|E|Lead 58750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058751|158751|989898|1|9999058751|MR|Test|E|Lead 58751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058752|158752|989898|1|9999058752|MR|Test|E|Lead 58752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058753|158753|989898|1|9999058753|MR|Test|E|Lead 58753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058754|158754|989898|1|9999058754|MR|Test|E|Lead 58754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058755|158755|989898|1|9999058755|MR|Test|E|Lead 58755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058756|158756|989898|1|9999058756|MR|Test|E|Lead 58756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058757|158757|989898|1|9999058757|MR|Test|E|Lead 58757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058758|158758|989898|1|9999058758|MR|Test|E|Lead 58758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058759|158759|989898|1|9999058759|MR|Test|E|Lead 58759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058760|158760|989898|1|9999058760|MR|Test|E|Lead 58760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058761|158761|989898|1|9999058761|MR|Test|E|Lead 58761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058762|158762|989898|1|9999058762|MR|Test|E|Lead 58762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058763|158763|989898|1|9999058763|MR|Test|E|Lead 58763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058764|158764|989898|1|9999058764|MR|Test|E|Lead 58764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058765|158765|989898|1|9999058765|MR|Test|E|Lead 58765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058766|158766|989898|1|9999058766|MR|Test|E|Lead 58766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058767|158767|989898|1|9999058767|MR|Test|E|Lead 58767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058768|158768|989898|1|9999058768|MR|Test|E|Lead 58768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058769|158769|989898|1|9999058769|MR|Test|E|Lead 58769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058770|158770|989898|1|9999058770|MR|Test|E|Lead 58770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058771|158771|989898|1|9999058771|MR|Test|E|Lead 58771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058772|158772|989898|1|9999058772|MR|Test|E|Lead 58772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058773|158773|989898|1|9999058773|MR|Test|E|Lead 58773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058774|158774|989898|1|9999058774|MR|Test|E|Lead 58774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058775|158775|989898|1|9999058775|MR|Test|E|Lead 58775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058776|158776|989898|1|9999058776|MR|Test|E|Lead 58776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058777|158777|989898|1|9999058777|MR|Test|E|Lead 58777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058778|158778|989898|1|9999058778|MR|Test|E|Lead 58778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058779|158779|989898|1|9999058779|MR|Test|E|Lead 58779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058780|158780|989898|1|9999058780|MR|Test|E|Lead 58780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058781|158781|989898|1|9999058781|MR|Test|E|Lead 58781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058782|158782|989898|1|9999058782|MR|Test|E|Lead 58782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058783|158783|989898|1|9999058783|MR|Test|E|Lead 58783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058784|158784|989898|1|9999058784|MR|Test|E|Lead 58784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058785|158785|989898|1|9999058785|MR|Test|E|Lead 58785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058786|158786|989898|1|9999058786|MR|Test|E|Lead 58786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058787|158787|989898|1|9999058787|MR|Test|E|Lead 58787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058788|158788|989898|1|9999058788|MR|Test|E|Lead 58788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058789|158789|989898|1|9999058789|MR|Test|E|Lead 58789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058790|158790|989898|1|9999058790|MR|Test|E|Lead 58790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058791|158791|989898|1|9999058791|MR|Test|E|Lead 58791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058792|158792|989898|1|9999058792|MR|Test|E|Lead 58792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058793|158793|989898|1|9999058793|MR|Test|E|Lead 58793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058794|158794|989898|1|9999058794|MR|Test|E|Lead 58794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058795|158795|989898|1|9999058795|MR|Test|E|Lead 58795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058796|158796|989898|1|9999058796|MR|Test|E|Lead 58796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058797|158797|989898|1|9999058797|MR|Test|E|Lead 58797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058798|158798|989898|1|9999058798|MR|Test|E|Lead 58798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058799|158799|989898|1|9999058799|MR|Test|E|Lead 58799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058800|158800|989898|1|9999058800|MR|Test|E|Lead 58800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058801|158801|989898|1|9999058801|MR|Test|E|Lead 58801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058802|158802|989898|1|9999058802|MR|Test|E|Lead 58802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058803|158803|989898|1|9999058803|MR|Test|E|Lead 58803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058804|158804|989898|1|9999058804|MR|Test|E|Lead 58804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058805|158805|989898|1|9999058805|MR|Test|E|Lead 58805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058806|158806|989898|1|9999058806|MR|Test|E|Lead 58806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058807|158807|989898|1|9999058807|MR|Test|E|Lead 58807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058808|158808|989898|1|9999058808|MR|Test|E|Lead 58808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058809|158809|989898|1|9999058809|MR|Test|E|Lead 58809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058810|158810|989898|1|9999058810|MR|Test|E|Lead 58810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058811|158811|989898|1|9999058811|MR|Test|E|Lead 58811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058812|158812|989898|1|9999058812|MR|Test|E|Lead 58812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058813|158813|989898|1|9999058813|MR|Test|E|Lead 58813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058814|158814|989898|1|9999058814|MR|Test|E|Lead 58814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058815|158815|989898|1|9999058815|MR|Test|E|Lead 58815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058816|158816|989898|1|9999058816|MR|Test|E|Lead 58816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058817|158817|989898|1|9999058817|MR|Test|E|Lead 58817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058818|158818|989898|1|9999058818|MR|Test|E|Lead 58818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058819|158819|989898|1|9999058819|MR|Test|E|Lead 58819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058820|158820|989898|1|9999058820|MR|Test|E|Lead 58820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058821|158821|989898|1|9999058821|MR|Test|E|Lead 58821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058822|158822|989898|1|9999058822|MR|Test|E|Lead 58822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058823|158823|989898|1|9999058823|MR|Test|E|Lead 58823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058824|158824|989898|1|9999058824|MR|Test|E|Lead 58824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058825|158825|989898|1|9999058825|MR|Test|E|Lead 58825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058826|158826|989898|1|9999058826|MR|Test|E|Lead 58826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058827|158827|989898|1|9999058827|MR|Test|E|Lead 58827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058828|158828|989898|1|9999058828|MR|Test|E|Lead 58828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058829|158829|989898|1|9999058829|MR|Test|E|Lead 58829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058830|158830|989898|1|9999058830|MR|Test|E|Lead 58830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058831|158831|989898|1|9999058831|MR|Test|E|Lead 58831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058832|158832|989898|1|9999058832|MR|Test|E|Lead 58832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058833|158833|989898|1|9999058833|MR|Test|E|Lead 58833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058834|158834|989898|1|9999058834|MR|Test|E|Lead 58834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058835|158835|989898|1|9999058835|MR|Test|E|Lead 58835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058836|158836|989898|1|9999058836|MR|Test|E|Lead 58836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058837|158837|989898|1|9999058837|MR|Test|E|Lead 58837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058838|158838|989898|1|9999058838|MR|Test|E|Lead 58838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058839|158839|989898|1|9999058839|MR|Test|E|Lead 58839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058840|158840|989898|1|9999058840|MR|Test|E|Lead 58840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058841|158841|989898|1|9999058841|MR|Test|E|Lead 58841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058842|158842|989898|1|9999058842|MR|Test|E|Lead 58842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058843|158843|989898|1|9999058843|MR|Test|E|Lead 58843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058844|158844|989898|1|9999058844|MR|Test|E|Lead 58844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058845|158845|989898|1|9999058845|MR|Test|E|Lead 58845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058846|158846|989898|1|9999058846|MR|Test|E|Lead 58846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058847|158847|989898|1|9999058847|MR|Test|E|Lead 58847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058848|158848|989898|1|9999058848|MR|Test|E|Lead 58848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058849|158849|989898|1|9999058849|MR|Test|E|Lead 58849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058850|158850|989898|1|9999058850|MR|Test|E|Lead 58850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058851|158851|989898|1|9999058851|MR|Test|E|Lead 58851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058852|158852|989898|1|9999058852|MR|Test|E|Lead 58852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058853|158853|989898|1|9999058853|MR|Test|E|Lead 58853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058854|158854|989898|1|9999058854|MR|Test|E|Lead 58854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058855|158855|989898|1|9999058855|MR|Test|E|Lead 58855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058856|158856|989898|1|9999058856|MR|Test|E|Lead 58856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058857|158857|989898|1|9999058857|MR|Test|E|Lead 58857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058858|158858|989898|1|9999058858|MR|Test|E|Lead 58858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058859|158859|989898|1|9999058859|MR|Test|E|Lead 58859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058860|158860|989898|1|9999058860|MR|Test|E|Lead 58860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058861|158861|989898|1|9999058861|MR|Test|E|Lead 58861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058862|158862|989898|1|9999058862|MR|Test|E|Lead 58862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058863|158863|989898|1|9999058863|MR|Test|E|Lead 58863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058864|158864|989898|1|9999058864|MR|Test|E|Lead 58864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058865|158865|989898|1|9999058865|MR|Test|E|Lead 58865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058866|158866|989898|1|9999058866|MR|Test|E|Lead 58866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058867|158867|989898|1|9999058867|MR|Test|E|Lead 58867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058868|158868|989898|1|9999058868|MR|Test|E|Lead 58868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058869|158869|989898|1|9999058869|MR|Test|E|Lead 58869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058870|158870|989898|1|9999058870|MR|Test|E|Lead 58870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058871|158871|989898|1|9999058871|MR|Test|E|Lead 58871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058872|158872|989898|1|9999058872|MR|Test|E|Lead 58872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058873|158873|989898|1|9999058873|MR|Test|E|Lead 58873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058874|158874|989898|1|9999058874|MR|Test|E|Lead 58874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058875|158875|989898|1|9999058875|MR|Test|E|Lead 58875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058876|158876|989898|1|9999058876|MR|Test|E|Lead 58876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058877|158877|989898|1|9999058877|MR|Test|E|Lead 58877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058878|158878|989898|1|9999058878|MR|Test|E|Lead 58878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058879|158879|989898|1|9999058879|MR|Test|E|Lead 58879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058880|158880|989898|1|9999058880|MR|Test|E|Lead 58880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058881|158881|989898|1|9999058881|MR|Test|E|Lead 58881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058882|158882|989898|1|9999058882|MR|Test|E|Lead 58882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058883|158883|989898|1|9999058883|MR|Test|E|Lead 58883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058884|158884|989898|1|9999058884|MR|Test|E|Lead 58884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058885|158885|989898|1|9999058885|MR|Test|E|Lead 58885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058886|158886|989898|1|9999058886|MR|Test|E|Lead 58886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058887|158887|989898|1|9999058887|MR|Test|E|Lead 58887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058888|158888|989898|1|9999058888|MR|Test|E|Lead 58888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058889|158889|989898|1|9999058889|MR|Test|E|Lead 58889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058890|158890|989898|1|9999058890|MR|Test|E|Lead 58890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058891|158891|989898|1|9999058891|MR|Test|E|Lead 58891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058892|158892|989898|1|9999058892|MR|Test|E|Lead 58892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058893|158893|989898|1|9999058893|MR|Test|E|Lead 58893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058894|158894|989898|1|9999058894|MR|Test|E|Lead 58894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058895|158895|989898|1|9999058895|MR|Test|E|Lead 58895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058896|158896|989898|1|9999058896|MR|Test|E|Lead 58896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058897|158897|989898|1|9999058897|MR|Test|E|Lead 58897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058898|158898|989898|1|9999058898|MR|Test|E|Lead 58898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058899|158899|989898|1|9999058899|MR|Test|E|Lead 58899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058900|158900|989898|1|9999058900|MR|Test|E|Lead 58900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058901|158901|989898|1|9999058901|MR|Test|E|Lead 58901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058902|158902|989898|1|9999058902|MR|Test|E|Lead 58902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058903|158903|989898|1|9999058903|MR|Test|E|Lead 58903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058904|158904|989898|1|9999058904|MR|Test|E|Lead 58904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058905|158905|989898|1|9999058905|MR|Test|E|Lead 58905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058906|158906|989898|1|9999058906|MR|Test|E|Lead 58906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058907|158907|989898|1|9999058907|MR|Test|E|Lead 58907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058908|158908|989898|1|9999058908|MR|Test|E|Lead 58908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058909|158909|989898|1|9999058909|MR|Test|E|Lead 58909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058910|158910|989898|1|9999058910|MR|Test|E|Lead 58910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058911|158911|989898|1|9999058911|MR|Test|E|Lead 58911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058912|158912|989898|1|9999058912|MR|Test|E|Lead 58912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058913|158913|989898|1|9999058913|MR|Test|E|Lead 58913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058914|158914|989898|1|9999058914|MR|Test|E|Lead 58914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058915|158915|989898|1|9999058915|MR|Test|E|Lead 58915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058916|158916|989898|1|9999058916|MR|Test|E|Lead 58916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058917|158917|989898|1|9999058917|MR|Test|E|Lead 58917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058918|158918|989898|1|9999058918|MR|Test|E|Lead 58918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058919|158919|989898|1|9999058919|MR|Test|E|Lead 58919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058920|158920|989898|1|9999058920|MR|Test|E|Lead 58920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058921|158921|989898|1|9999058921|MR|Test|E|Lead 58921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058922|158922|989898|1|9999058922|MR|Test|E|Lead 58922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058923|158923|989898|1|9999058923|MR|Test|E|Lead 58923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058924|158924|989898|1|9999058924|MR|Test|E|Lead 58924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058925|158925|989898|1|9999058925|MR|Test|E|Lead 58925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058926|158926|989898|1|9999058926|MR|Test|E|Lead 58926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058927|158927|989898|1|9999058927|MR|Test|E|Lead 58927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058928|158928|989898|1|9999058928|MR|Test|E|Lead 58928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058929|158929|989898|1|9999058929|MR|Test|E|Lead 58929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058930|158930|989898|1|9999058930|MR|Test|E|Lead 58930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058931|158931|989898|1|9999058931|MR|Test|E|Lead 58931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058932|158932|989898|1|9999058932|MR|Test|E|Lead 58932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058933|158933|989898|1|9999058933|MR|Test|E|Lead 58933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058934|158934|989898|1|9999058934|MR|Test|E|Lead 58934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058935|158935|989898|1|9999058935|MR|Test|E|Lead 58935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058936|158936|989898|1|9999058936|MR|Test|E|Lead 58936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058937|158937|989898|1|9999058937|MR|Test|E|Lead 58937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058938|158938|989898|1|9999058938|MR|Test|E|Lead 58938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058939|158939|989898|1|9999058939|MR|Test|E|Lead 58939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058940|158940|989898|1|9999058940|MR|Test|E|Lead 58940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058941|158941|989898|1|9999058941|MR|Test|E|Lead 58941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058942|158942|989898|1|9999058942|MR|Test|E|Lead 58942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058943|158943|989898|1|9999058943|MR|Test|E|Lead 58943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058944|158944|989898|1|9999058944|MR|Test|E|Lead 58944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058945|158945|989898|1|9999058945|MR|Test|E|Lead 58945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058946|158946|989898|1|9999058946|MR|Test|E|Lead 58946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058947|158947|989898|1|9999058947|MR|Test|E|Lead 58947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058948|158948|989898|1|9999058948|MR|Test|E|Lead 58948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058949|158949|989898|1|9999058949|MR|Test|E|Lead 58949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058950|158950|989898|1|9999058950|MR|Test|E|Lead 58950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058951|158951|989898|1|9999058951|MR|Test|E|Lead 58951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058952|158952|989898|1|9999058952|MR|Test|E|Lead 58952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058953|158953|989898|1|9999058953|MR|Test|E|Lead 58953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058954|158954|989898|1|9999058954|MR|Test|E|Lead 58954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058955|158955|989898|1|9999058955|MR|Test|E|Lead 58955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058956|158956|989898|1|9999058956|MR|Test|E|Lead 58956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058957|158957|989898|1|9999058957|MR|Test|E|Lead 58957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058958|158958|989898|1|9999058958|MR|Test|E|Lead 58958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058959|158959|989898|1|9999058959|MR|Test|E|Lead 58959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058960|158960|989898|1|9999058960|MR|Test|E|Lead 58960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058961|158961|989898|1|9999058961|MR|Test|E|Lead 58961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058962|158962|989898|1|9999058962|MR|Test|E|Lead 58962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058963|158963|989898|1|9999058963|MR|Test|E|Lead 58963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058964|158964|989898|1|9999058964|MR|Test|E|Lead 58964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058965|158965|989898|1|9999058965|MR|Test|E|Lead 58965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058966|158966|989898|1|9999058966|MR|Test|E|Lead 58966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058967|158967|989898|1|9999058967|MR|Test|E|Lead 58967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058968|158968|989898|1|9999058968|MR|Test|E|Lead 58968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058969|158969|989898|1|9999058969|MR|Test|E|Lead 58969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058970|158970|989898|1|9999058970|MR|Test|E|Lead 58970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058971|158971|989898|1|9999058971|MR|Test|E|Lead 58971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058972|158972|989898|1|9999058972|MR|Test|E|Lead 58972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058973|158973|989898|1|9999058973|MR|Test|E|Lead 58973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058974|158974|989898|1|9999058974|MR|Test|E|Lead 58974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058975|158975|989898|1|9999058975|MR|Test|E|Lead 58975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058976|158976|989898|1|9999058976|MR|Test|E|Lead 58976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058977|158977|989898|1|9999058977|MR|Test|E|Lead 58977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058978|158978|989898|1|9999058978|MR|Test|E|Lead 58978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058979|158979|989898|1|9999058979|MR|Test|E|Lead 58979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058980|158980|989898|1|9999058980|MR|Test|E|Lead 58980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058981|158981|989898|1|9999058981|MR|Test|E|Lead 58981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058982|158982|989898|1|9999058982|MR|Test|E|Lead 58982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058983|158983|989898|1|9999058983|MR|Test|E|Lead 58983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058984|158984|989898|1|9999058984|MR|Test|E|Lead 58984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058985|158985|989898|1|9999058985|MR|Test|E|Lead 58985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058986|158986|989898|1|9999058986|MR|Test|E|Lead 58986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058987|158987|989898|1|9999058987|MR|Test|E|Lead 58987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058988|158988|989898|1|9999058988|MR|Test|E|Lead 58988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058989|158989|989898|1|9999058989|MR|Test|E|Lead 58989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058990|158990|989898|1|9999058990|MR|Test|E|Lead 58990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058991|158991|989898|1|9999058991|MR|Test|E|Lead 58991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058992|158992|989898|1|9999058992|MR|Test|E|Lead 58992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058993|158993|989898|1|9999058993|MR|Test|E|Lead 58993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058994|158994|989898|1|9999058994|MR|Test|E|Lead 58994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058995|158995|989898|1|9999058995|MR|Test|E|Lead 58995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058996|158996|989898|1|9999058996|MR|Test|E|Lead 58996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058997|158997|989898|1|9999058997|MR|Test|E|Lead 58997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058998|158998|989898|1|9999058998|MR|Test|E|Lead 58998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1058999|158999|989898|1|9999058999|MR|Test|E|Lead 58999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059000|159000|989898|1|9999059000|MR|Test|E|Lead 59000|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059001|159001|989898|1|9999059001|MR|Test|E|Lead 59001|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059002|159002|989898|1|9999059002|MR|Test|E|Lead 59002|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059003|159003|989898|1|9999059003|MR|Test|E|Lead 59003|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059004|159004|989898|1|9999059004|MR|Test|E|Lead 59004|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059005|159005|989898|1|9999059005|MR|Test|E|Lead 59005|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059006|159006|989898|1|9999059006|MR|Test|E|Lead 59006|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059007|159007|989898|1|9999059007|MR|Test|E|Lead 59007|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059008|159008|989898|1|9999059008|MR|Test|E|Lead 59008|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059009|159009|989898|1|9999059009|MR|Test|E|Lead 59009|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059010|159010|989898|1|9999059010|MR|Test|E|Lead 59010|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059011|159011|989898|1|9999059011|MR|Test|E|Lead 59011|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059012|159012|989898|1|9999059012|MR|Test|E|Lead 59012|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059013|159013|989898|1|9999059013|MR|Test|E|Lead 59013|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059014|159014|989898|1|9999059014|MR|Test|E|Lead 59014|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059015|159015|989898|1|9999059015|MR|Test|E|Lead 59015|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059016|159016|989898|1|9999059016|MR|Test|E|Lead 59016|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059017|159017|989898|1|9999059017|MR|Test|E|Lead 59017|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059018|159018|989898|1|9999059018|MR|Test|E|Lead 59018|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059019|159019|989898|1|9999059019|MR|Test|E|Lead 59019|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059020|159020|989898|1|9999059020|MR|Test|E|Lead 59020|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059021|159021|989898|1|9999059021|MR|Test|E|Lead 59021|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059022|159022|989898|1|9999059022|MR|Test|E|Lead 59022|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059023|159023|989898|1|9999059023|MR|Test|E|Lead 59023|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059024|159024|989898|1|9999059024|MR|Test|E|Lead 59024|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059025|159025|989898|1|9999059025|MR|Test|E|Lead 59025|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059026|159026|989898|1|9999059026|MR|Test|E|Lead 59026|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059027|159027|989898|1|9999059027|MR|Test|E|Lead 59027|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059028|159028|989898|1|9999059028|MR|Test|E|Lead 59028|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059029|159029|989898|1|9999059029|MR|Test|E|Lead 59029|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059030|159030|989898|1|9999059030|MR|Test|E|Lead 59030|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059031|159031|989898|1|9999059031|MR|Test|E|Lead 59031|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059032|159032|989898|1|9999059032|MR|Test|E|Lead 59032|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059033|159033|989898|1|9999059033|MR|Test|E|Lead 59033|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059034|159034|989898|1|9999059034|MR|Test|E|Lead 59034|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059035|159035|989898|1|9999059035|MR|Test|E|Lead 59035|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059036|159036|989898|1|9999059036|MR|Test|E|Lead 59036|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059037|159037|989898|1|9999059037|MR|Test|E|Lead 59037|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059038|159038|989898|1|9999059038|MR|Test|E|Lead 59038|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059039|159039|989898|1|9999059039|MR|Test|E|Lead 59039|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059040|159040|989898|1|9999059040|MR|Test|E|Lead 59040|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059041|159041|989898|1|9999059041|MR|Test|E|Lead 59041|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059042|159042|989898|1|9999059042|MR|Test|E|Lead 59042|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059043|159043|989898|1|9999059043|MR|Test|E|Lead 59043|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059044|159044|989898|1|9999059044|MR|Test|E|Lead 59044|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059045|159045|989898|1|9999059045|MR|Test|E|Lead 59045|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059046|159046|989898|1|9999059046|MR|Test|E|Lead 59046|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059047|159047|989898|1|9999059047|MR|Test|E|Lead 59047|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059048|159048|989898|1|9999059048|MR|Test|E|Lead 59048|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059049|159049|989898|1|9999059049|MR|Test|E|Lead 59049|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059050|159050|989898|1|9999059050|MR|Test|E|Lead 59050|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059051|159051|989898|1|9999059051|MR|Test|E|Lead 59051|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059052|159052|989898|1|9999059052|MR|Test|E|Lead 59052|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059053|159053|989898|1|9999059053|MR|Test|E|Lead 59053|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059054|159054|989898|1|9999059054|MR|Test|E|Lead 59054|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059055|159055|989898|1|9999059055|MR|Test|E|Lead 59055|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059056|159056|989898|1|9999059056|MR|Test|E|Lead 59056|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059057|159057|989898|1|9999059057|MR|Test|E|Lead 59057|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059058|159058|989898|1|9999059058|MR|Test|E|Lead 59058|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059059|159059|989898|1|9999059059|MR|Test|E|Lead 59059|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059060|159060|989898|1|9999059060|MR|Test|E|Lead 59060|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059061|159061|989898|1|9999059061|MR|Test|E|Lead 59061|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059062|159062|989898|1|9999059062|MR|Test|E|Lead 59062|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059063|159063|989898|1|9999059063|MR|Test|E|Lead 59063|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059064|159064|989898|1|9999059064|MR|Test|E|Lead 59064|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059065|159065|989898|1|9999059065|MR|Test|E|Lead 59065|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059066|159066|989898|1|9999059066|MR|Test|E|Lead 59066|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059067|159067|989898|1|9999059067|MR|Test|E|Lead 59067|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059068|159068|989898|1|9999059068|MR|Test|E|Lead 59068|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059069|159069|989898|1|9999059069|MR|Test|E|Lead 59069|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059070|159070|989898|1|9999059070|MR|Test|E|Lead 59070|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059071|159071|989898|1|9999059071|MR|Test|E|Lead 59071|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059072|159072|989898|1|9999059072|MR|Test|E|Lead 59072|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059073|159073|989898|1|9999059073|MR|Test|E|Lead 59073|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059074|159074|989898|1|9999059074|MR|Test|E|Lead 59074|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059075|159075|989898|1|9999059075|MR|Test|E|Lead 59075|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059076|159076|989898|1|9999059076|MR|Test|E|Lead 59076|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059077|159077|989898|1|9999059077|MR|Test|E|Lead 59077|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059078|159078|989898|1|9999059078|MR|Test|E|Lead 59078|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059079|159079|989898|1|9999059079|MR|Test|E|Lead 59079|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059080|159080|989898|1|9999059080|MR|Test|E|Lead 59080|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059081|159081|989898|1|9999059081|MR|Test|E|Lead 59081|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059082|159082|989898|1|9999059082|MR|Test|E|Lead 59082|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059083|159083|989898|1|9999059083|MR|Test|E|Lead 59083|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059084|159084|989898|1|9999059084|MR|Test|E|Lead 59084|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059085|159085|989898|1|9999059085|MR|Test|E|Lead 59085|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059086|159086|989898|1|9999059086|MR|Test|E|Lead 59086|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059087|159087|989898|1|9999059087|MR|Test|E|Lead 59087|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059088|159088|989898|1|9999059088|MR|Test|E|Lead 59088|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059089|159089|989898|1|9999059089|MR|Test|E|Lead 59089|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059090|159090|989898|1|9999059090|MR|Test|E|Lead 59090|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059091|159091|989898|1|9999059091|MR|Test|E|Lead 59091|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059092|159092|989898|1|9999059092|MR|Test|E|Lead 59092|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059093|159093|989898|1|9999059093|MR|Test|E|Lead 59093|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059094|159094|989898|1|9999059094|MR|Test|E|Lead 59094|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059095|159095|989898|1|9999059095|MR|Test|E|Lead 59095|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059096|159096|989898|1|9999059096|MR|Test|E|Lead 59096|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059097|159097|989898|1|9999059097|MR|Test|E|Lead 59097|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059098|159098|989898|1|9999059098|MR|Test|E|Lead 59098|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059099|159099|989898|1|9999059099|MR|Test|E|Lead 59099|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059100|159100|989898|1|9999059100|MR|Test|E|Lead 59100|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059101|159101|989898|1|9999059101|MR|Test|E|Lead 59101|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059102|159102|989898|1|9999059102|MR|Test|E|Lead 59102|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059103|159103|989898|1|9999059103|MR|Test|E|Lead 59103|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059104|159104|989898|1|9999059104|MR|Test|E|Lead 59104|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059105|159105|989898|1|9999059105|MR|Test|E|Lead 59105|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059106|159106|989898|1|9999059106|MR|Test|E|Lead 59106|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059107|159107|989898|1|9999059107|MR|Test|E|Lead 59107|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059108|159108|989898|1|9999059108|MR|Test|E|Lead 59108|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059109|159109|989898|1|9999059109|MR|Test|E|Lead 59109|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059110|159110|989898|1|9999059110|MR|Test|E|Lead 59110|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059111|159111|989898|1|9999059111|MR|Test|E|Lead 59111|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059112|159112|989898|1|9999059112|MR|Test|E|Lead 59112|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059113|159113|989898|1|9999059113|MR|Test|E|Lead 59113|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059114|159114|989898|1|9999059114|MR|Test|E|Lead 59114|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059115|159115|989898|1|9999059115|MR|Test|E|Lead 59115|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059116|159116|989898|1|9999059116|MR|Test|E|Lead 59116|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059117|159117|989898|1|9999059117|MR|Test|E|Lead 59117|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059118|159118|989898|1|9999059118|MR|Test|E|Lead 59118|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059119|159119|989898|1|9999059119|MR|Test|E|Lead 59119|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059120|159120|989898|1|9999059120|MR|Test|E|Lead 59120|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059121|159121|989898|1|9999059121|MR|Test|E|Lead 59121|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059122|159122|989898|1|9999059122|MR|Test|E|Lead 59122|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059123|159123|989898|1|9999059123|MR|Test|E|Lead 59123|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059124|159124|989898|1|9999059124|MR|Test|E|Lead 59124|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059125|159125|989898|1|9999059125|MR|Test|E|Lead 59125|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059126|159126|989898|1|9999059126|MR|Test|E|Lead 59126|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059127|159127|989898|1|9999059127|MR|Test|E|Lead 59127|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059128|159128|989898|1|9999059128|MR|Test|E|Lead 59128|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059129|159129|989898|1|9999059129|MR|Test|E|Lead 59129|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059130|159130|989898|1|9999059130|MR|Test|E|Lead 59130|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059131|159131|989898|1|9999059131|MR|Test|E|Lead 59131|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059132|159132|989898|1|9999059132|MR|Test|E|Lead 59132|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059133|159133|989898|1|9999059133|MR|Test|E|Lead 59133|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059134|159134|989898|1|9999059134|MR|Test|E|Lead 59134|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059135|159135|989898|1|9999059135|MR|Test|E|Lead 59135|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059136|159136|989898|1|9999059136|MR|Test|E|Lead 59136|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059137|159137|989898|1|9999059137|MR|Test|E|Lead 59137|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059138|159138|989898|1|9999059138|MR|Test|E|Lead 59138|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059139|159139|989898|1|9999059139|MR|Test|E|Lead 59139|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059140|159140|989898|1|9999059140|MR|Test|E|Lead 59140|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059141|159141|989898|1|9999059141|MR|Test|E|Lead 59141|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059142|159142|989898|1|9999059142|MR|Test|E|Lead 59142|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059143|159143|989898|1|9999059143|MR|Test|E|Lead 59143|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059144|159144|989898|1|9999059144|MR|Test|E|Lead 59144|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059145|159145|989898|1|9999059145|MR|Test|E|Lead 59145|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059146|159146|989898|1|9999059146|MR|Test|E|Lead 59146|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059147|159147|989898|1|9999059147|MR|Test|E|Lead 59147|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059148|159148|989898|1|9999059148|MR|Test|E|Lead 59148|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059149|159149|989898|1|9999059149|MR|Test|E|Lead 59149|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059150|159150|989898|1|9999059150|MR|Test|E|Lead 59150|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059151|159151|989898|1|9999059151|MR|Test|E|Lead 59151|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059152|159152|989898|1|9999059152|MR|Test|E|Lead 59152|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059153|159153|989898|1|9999059153|MR|Test|E|Lead 59153|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059154|159154|989898|1|9999059154|MR|Test|E|Lead 59154|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059155|159155|989898|1|9999059155|MR|Test|E|Lead 59155|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059156|159156|989898|1|9999059156|MR|Test|E|Lead 59156|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059157|159157|989898|1|9999059157|MR|Test|E|Lead 59157|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059158|159158|989898|1|9999059158|MR|Test|E|Lead 59158|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059159|159159|989898|1|9999059159|MR|Test|E|Lead 59159|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059160|159160|989898|1|9999059160|MR|Test|E|Lead 59160|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059161|159161|989898|1|9999059161|MR|Test|E|Lead 59161|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059162|159162|989898|1|9999059162|MR|Test|E|Lead 59162|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059163|159163|989898|1|9999059163|MR|Test|E|Lead 59163|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059164|159164|989898|1|9999059164|MR|Test|E|Lead 59164|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059165|159165|989898|1|9999059165|MR|Test|E|Lead 59165|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059166|159166|989898|1|9999059166|MR|Test|E|Lead 59166|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059167|159167|989898|1|9999059167|MR|Test|E|Lead 59167|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059168|159168|989898|1|9999059168|MR|Test|E|Lead 59168|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059169|159169|989898|1|9999059169|MR|Test|E|Lead 59169|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059170|159170|989898|1|9999059170|MR|Test|E|Lead 59170|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059171|159171|989898|1|9999059171|MR|Test|E|Lead 59171|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059172|159172|989898|1|9999059172|MR|Test|E|Lead 59172|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059173|159173|989898|1|9999059173|MR|Test|E|Lead 59173|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059174|159174|989898|1|9999059174|MR|Test|E|Lead 59174|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059175|159175|989898|1|9999059175|MR|Test|E|Lead 59175|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059176|159176|989898|1|9999059176|MR|Test|E|Lead 59176|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059177|159177|989898|1|9999059177|MR|Test|E|Lead 59177|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059178|159178|989898|1|9999059178|MR|Test|E|Lead 59178|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059179|159179|989898|1|9999059179|MR|Test|E|Lead 59179|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059180|159180|989898|1|9999059180|MR|Test|E|Lead 59180|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059181|159181|989898|1|9999059181|MR|Test|E|Lead 59181|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059182|159182|989898|1|9999059182|MR|Test|E|Lead 59182|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059183|159183|989898|1|9999059183|MR|Test|E|Lead 59183|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059184|159184|989898|1|9999059184|MR|Test|E|Lead 59184|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059185|159185|989898|1|9999059185|MR|Test|E|Lead 59185|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059186|159186|989898|1|9999059186|MR|Test|E|Lead 59186|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059187|159187|989898|1|9999059187|MR|Test|E|Lead 59187|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059188|159188|989898|1|9999059188|MR|Test|E|Lead 59188|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059189|159189|989898|1|9999059189|MR|Test|E|Lead 59189|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059190|159190|989898|1|9999059190|MR|Test|E|Lead 59190|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059191|159191|989898|1|9999059191|MR|Test|E|Lead 59191|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059192|159192|989898|1|9999059192|MR|Test|E|Lead 59192|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059193|159193|989898|1|9999059193|MR|Test|E|Lead 59193|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059194|159194|989898|1|9999059194|MR|Test|E|Lead 59194|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059195|159195|989898|1|9999059195|MR|Test|E|Lead 59195|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059196|159196|989898|1|9999059196|MR|Test|E|Lead 59196|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059197|159197|989898|1|9999059197|MR|Test|E|Lead 59197|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059198|159198|989898|1|9999059198|MR|Test|E|Lead 59198|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059199|159199|989898|1|9999059199|MR|Test|E|Lead 59199|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059200|159200|989898|1|9999059200|MR|Test|E|Lead 59200|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059201|159201|989898|1|9999059201|MR|Test|E|Lead 59201|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059202|159202|989898|1|9999059202|MR|Test|E|Lead 59202|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059203|159203|989898|1|9999059203|MR|Test|E|Lead 59203|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059204|159204|989898|1|9999059204|MR|Test|E|Lead 59204|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059205|159205|989898|1|9999059205|MR|Test|E|Lead 59205|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059206|159206|989898|1|9999059206|MR|Test|E|Lead 59206|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059207|159207|989898|1|9999059207|MR|Test|E|Lead 59207|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059208|159208|989898|1|9999059208|MR|Test|E|Lead 59208|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059209|159209|989898|1|9999059209|MR|Test|E|Lead 59209|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059210|159210|989898|1|9999059210|MR|Test|E|Lead 59210|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059211|159211|989898|1|9999059211|MR|Test|E|Lead 59211|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059212|159212|989898|1|9999059212|MR|Test|E|Lead 59212|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059213|159213|989898|1|9999059213|MR|Test|E|Lead 59213|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059214|159214|989898|1|9999059214|MR|Test|E|Lead 59214|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059215|159215|989898|1|9999059215|MR|Test|E|Lead 59215|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059216|159216|989898|1|9999059216|MR|Test|E|Lead 59216|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059217|159217|989898|1|9999059217|MR|Test|E|Lead 59217|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059218|159218|989898|1|9999059218|MR|Test|E|Lead 59218|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059219|159219|989898|1|9999059219|MR|Test|E|Lead 59219|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059220|159220|989898|1|9999059220|MR|Test|E|Lead 59220|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059221|159221|989898|1|9999059221|MR|Test|E|Lead 59221|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059222|159222|989898|1|9999059222|MR|Test|E|Lead 59222|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059223|159223|989898|1|9999059223|MR|Test|E|Lead 59223|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059224|159224|989898|1|9999059224|MR|Test|E|Lead 59224|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059225|159225|989898|1|9999059225|MR|Test|E|Lead 59225|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059226|159226|989898|1|9999059226|MR|Test|E|Lead 59226|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059227|159227|989898|1|9999059227|MR|Test|E|Lead 59227|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059228|159228|989898|1|9999059228|MR|Test|E|Lead 59228|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059229|159229|989898|1|9999059229|MR|Test|E|Lead 59229|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059230|159230|989898|1|9999059230|MR|Test|E|Lead 59230|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059231|159231|989898|1|9999059231|MR|Test|E|Lead 59231|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059232|159232|989898|1|9999059232|MR|Test|E|Lead 59232|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059233|159233|989898|1|9999059233|MR|Test|E|Lead 59233|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059234|159234|989898|1|9999059234|MR|Test|E|Lead 59234|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059235|159235|989898|1|9999059235|MR|Test|E|Lead 59235|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059236|159236|989898|1|9999059236|MR|Test|E|Lead 59236|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059237|159237|989898|1|9999059237|MR|Test|E|Lead 59237|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059238|159238|989898|1|9999059238|MR|Test|E|Lead 59238|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059239|159239|989898|1|9999059239|MR|Test|E|Lead 59239|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059240|159240|989898|1|9999059240|MR|Test|E|Lead 59240|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059241|159241|989898|1|9999059241|MR|Test|E|Lead 59241|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059242|159242|989898|1|9999059242|MR|Test|E|Lead 59242|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059243|159243|989898|1|9999059243|MR|Test|E|Lead 59243|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059244|159244|989898|1|9999059244|MR|Test|E|Lead 59244|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059245|159245|989898|1|9999059245|MR|Test|E|Lead 59245|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059246|159246|989898|1|9999059246|MR|Test|E|Lead 59246|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059247|159247|989898|1|9999059247|MR|Test|E|Lead 59247|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059248|159248|989898|1|9999059248|MR|Test|E|Lead 59248|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059249|159249|989898|1|9999059249|MR|Test|E|Lead 59249|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059250|159250|989898|1|9999059250|MR|Test|E|Lead 59250|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059251|159251|989898|1|9999059251|MR|Test|E|Lead 59251|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059252|159252|989898|1|9999059252|MR|Test|E|Lead 59252|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059253|159253|989898|1|9999059253|MR|Test|E|Lead 59253|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059254|159254|989898|1|9999059254|MR|Test|E|Lead 59254|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059255|159255|989898|1|9999059255|MR|Test|E|Lead 59255|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059256|159256|989898|1|9999059256|MR|Test|E|Lead 59256|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059257|159257|989898|1|9999059257|MR|Test|E|Lead 59257|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059258|159258|989898|1|9999059258|MR|Test|E|Lead 59258|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059259|159259|989898|1|9999059259|MR|Test|E|Lead 59259|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059260|159260|989898|1|9999059260|MR|Test|E|Lead 59260|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059261|159261|989898|1|9999059261|MR|Test|E|Lead 59261|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059262|159262|989898|1|9999059262|MR|Test|E|Lead 59262|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059263|159263|989898|1|9999059263|MR|Test|E|Lead 59263|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059264|159264|989898|1|9999059264|MR|Test|E|Lead 59264|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059265|159265|989898|1|9999059265|MR|Test|E|Lead 59265|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059266|159266|989898|1|9999059266|MR|Test|E|Lead 59266|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059267|159267|989898|1|9999059267|MR|Test|E|Lead 59267|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059268|159268|989898|1|9999059268|MR|Test|E|Lead 59268|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059269|159269|989898|1|9999059269|MR|Test|E|Lead 59269|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059270|159270|989898|1|9999059270|MR|Test|E|Lead 59270|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059271|159271|989898|1|9999059271|MR|Test|E|Lead 59271|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059272|159272|989898|1|9999059272|MR|Test|E|Lead 59272|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059273|159273|989898|1|9999059273|MR|Test|E|Lead 59273|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059274|159274|989898|1|9999059274|MR|Test|E|Lead 59274|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059275|159275|989898|1|9999059275|MR|Test|E|Lead 59275|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059276|159276|989898|1|9999059276|MR|Test|E|Lead 59276|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059277|159277|989898|1|9999059277|MR|Test|E|Lead 59277|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059278|159278|989898|1|9999059278|MR|Test|E|Lead 59278|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059279|159279|989898|1|9999059279|MR|Test|E|Lead 59279|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059280|159280|989898|1|9999059280|MR|Test|E|Lead 59280|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059281|159281|989898|1|9999059281|MR|Test|E|Lead 59281|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059282|159282|989898|1|9999059282|MR|Test|E|Lead 59282|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059283|159283|989898|1|9999059283|MR|Test|E|Lead 59283|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059284|159284|989898|1|9999059284|MR|Test|E|Lead 59284|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059285|159285|989898|1|9999059285|MR|Test|E|Lead 59285|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059286|159286|989898|1|9999059286|MR|Test|E|Lead 59286|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059287|159287|989898|1|9999059287|MR|Test|E|Lead 59287|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059288|159288|989898|1|9999059288|MR|Test|E|Lead 59288|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059289|159289|989898|1|9999059289|MR|Test|E|Lead 59289|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059290|159290|989898|1|9999059290|MR|Test|E|Lead 59290|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059291|159291|989898|1|9999059291|MR|Test|E|Lead 59291|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059292|159292|989898|1|9999059292|MR|Test|E|Lead 59292|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059293|159293|989898|1|9999059293|MR|Test|E|Lead 59293|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059294|159294|989898|1|9999059294|MR|Test|E|Lead 59294|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059295|159295|989898|1|9999059295|MR|Test|E|Lead 59295|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059296|159296|989898|1|9999059296|MR|Test|E|Lead 59296|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059297|159297|989898|1|9999059297|MR|Test|E|Lead 59297|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059298|159298|989898|1|9999059298|MR|Test|E|Lead 59298|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059299|159299|989898|1|9999059299|MR|Test|E|Lead 59299|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059300|159300|989898|1|9999059300|MR|Test|E|Lead 59300|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059301|159301|989898|1|9999059301|MR|Test|E|Lead 59301|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059302|159302|989898|1|9999059302|MR|Test|E|Lead 59302|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059303|159303|989898|1|9999059303|MR|Test|E|Lead 59303|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059304|159304|989898|1|9999059304|MR|Test|E|Lead 59304|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059305|159305|989898|1|9999059305|MR|Test|E|Lead 59305|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059306|159306|989898|1|9999059306|MR|Test|E|Lead 59306|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059307|159307|989898|1|9999059307|MR|Test|E|Lead 59307|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059308|159308|989898|1|9999059308|MR|Test|E|Lead 59308|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059309|159309|989898|1|9999059309|MR|Test|E|Lead 59309|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059310|159310|989898|1|9999059310|MR|Test|E|Lead 59310|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059311|159311|989898|1|9999059311|MR|Test|E|Lead 59311|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059312|159312|989898|1|9999059312|MR|Test|E|Lead 59312|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059313|159313|989898|1|9999059313|MR|Test|E|Lead 59313|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059314|159314|989898|1|9999059314|MR|Test|E|Lead 59314|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059315|159315|989898|1|9999059315|MR|Test|E|Lead 59315|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059316|159316|989898|1|9999059316|MR|Test|E|Lead 59316|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059317|159317|989898|1|9999059317|MR|Test|E|Lead 59317|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059318|159318|989898|1|9999059318|MR|Test|E|Lead 59318|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059319|159319|989898|1|9999059319|MR|Test|E|Lead 59319|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059320|159320|989898|1|9999059320|MR|Test|E|Lead 59320|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059321|159321|989898|1|9999059321|MR|Test|E|Lead 59321|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059322|159322|989898|1|9999059322|MR|Test|E|Lead 59322|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059323|159323|989898|1|9999059323|MR|Test|E|Lead 59323|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059324|159324|989898|1|9999059324|MR|Test|E|Lead 59324|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059325|159325|989898|1|9999059325|MR|Test|E|Lead 59325|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059326|159326|989898|1|9999059326|MR|Test|E|Lead 59326|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059327|159327|989898|1|9999059327|MR|Test|E|Lead 59327|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059328|159328|989898|1|9999059328|MR|Test|E|Lead 59328|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059329|159329|989898|1|9999059329|MR|Test|E|Lead 59329|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059330|159330|989898|1|9999059330|MR|Test|E|Lead 59330|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059331|159331|989898|1|9999059331|MR|Test|E|Lead 59331|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059332|159332|989898|1|9999059332|MR|Test|E|Lead 59332|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059333|159333|989898|1|9999059333|MR|Test|E|Lead 59333|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059334|159334|989898|1|9999059334|MR|Test|E|Lead 59334|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059335|159335|989898|1|9999059335|MR|Test|E|Lead 59335|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059336|159336|989898|1|9999059336|MR|Test|E|Lead 59336|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059337|159337|989898|1|9999059337|MR|Test|E|Lead 59337|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059338|159338|989898|1|9999059338|MR|Test|E|Lead 59338|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059339|159339|989898|1|9999059339|MR|Test|E|Lead 59339|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059340|159340|989898|1|9999059340|MR|Test|E|Lead 59340|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059341|159341|989898|1|9999059341|MR|Test|E|Lead 59341|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059342|159342|989898|1|9999059342|MR|Test|E|Lead 59342|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059343|159343|989898|1|9999059343|MR|Test|E|Lead 59343|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059344|159344|989898|1|9999059344|MR|Test|E|Lead 59344|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059345|159345|989898|1|9999059345|MR|Test|E|Lead 59345|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059346|159346|989898|1|9999059346|MR|Test|E|Lead 59346|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059347|159347|989898|1|9999059347|MR|Test|E|Lead 59347|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059348|159348|989898|1|9999059348|MR|Test|E|Lead 59348|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059349|159349|989898|1|9999059349|MR|Test|E|Lead 59349|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059350|159350|989898|1|9999059350|MR|Test|E|Lead 59350|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059351|159351|989898|1|9999059351|MR|Test|E|Lead 59351|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059352|159352|989898|1|9999059352|MR|Test|E|Lead 59352|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059353|159353|989898|1|9999059353|MR|Test|E|Lead 59353|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059354|159354|989898|1|9999059354|MR|Test|E|Lead 59354|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059355|159355|989898|1|9999059355|MR|Test|E|Lead 59355|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059356|159356|989898|1|9999059356|MR|Test|E|Lead 59356|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059357|159357|989898|1|9999059357|MR|Test|E|Lead 59357|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059358|159358|989898|1|9999059358|MR|Test|E|Lead 59358|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059359|159359|989898|1|9999059359|MR|Test|E|Lead 59359|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059360|159360|989898|1|9999059360|MR|Test|E|Lead 59360|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059361|159361|989898|1|9999059361|MR|Test|E|Lead 59361|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059362|159362|989898|1|9999059362|MR|Test|E|Lead 59362|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059363|159363|989898|1|9999059363|MR|Test|E|Lead 59363|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059364|159364|989898|1|9999059364|MR|Test|E|Lead 59364|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059365|159365|989898|1|9999059365|MR|Test|E|Lead 59365|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059366|159366|989898|1|9999059366|MR|Test|E|Lead 59366|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059367|159367|989898|1|9999059367|MR|Test|E|Lead 59367|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059368|159368|989898|1|9999059368|MR|Test|E|Lead 59368|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059369|159369|989898|1|9999059369|MR|Test|E|Lead 59369|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059370|159370|989898|1|9999059370|MR|Test|E|Lead 59370|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059371|159371|989898|1|9999059371|MR|Test|E|Lead 59371|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059372|159372|989898|1|9999059372|MR|Test|E|Lead 59372|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059373|159373|989898|1|9999059373|MR|Test|E|Lead 59373|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059374|159374|989898|1|9999059374|MR|Test|E|Lead 59374|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059375|159375|989898|1|9999059375|MR|Test|E|Lead 59375|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059376|159376|989898|1|9999059376|MR|Test|E|Lead 59376|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059377|159377|989898|1|9999059377|MR|Test|E|Lead 59377|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059378|159378|989898|1|9999059378|MR|Test|E|Lead 59378|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059379|159379|989898|1|9999059379|MR|Test|E|Lead 59379|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059380|159380|989898|1|9999059380|MR|Test|E|Lead 59380|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059381|159381|989898|1|9999059381|MR|Test|E|Lead 59381|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059382|159382|989898|1|9999059382|MR|Test|E|Lead 59382|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059383|159383|989898|1|9999059383|MR|Test|E|Lead 59383|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059384|159384|989898|1|9999059384|MR|Test|E|Lead 59384|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059385|159385|989898|1|9999059385|MR|Test|E|Lead 59385|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059386|159386|989898|1|9999059386|MR|Test|E|Lead 59386|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059387|159387|989898|1|9999059387|MR|Test|E|Lead 59387|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059388|159388|989898|1|9999059388|MR|Test|E|Lead 59388|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059389|159389|989898|1|9999059389|MR|Test|E|Lead 59389|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059390|159390|989898|1|9999059390|MR|Test|E|Lead 59390|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059391|159391|989898|1|9999059391|MR|Test|E|Lead 59391|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059392|159392|989898|1|9999059392|MR|Test|E|Lead 59392|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059393|159393|989898|1|9999059393|MR|Test|E|Lead 59393|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059394|159394|989898|1|9999059394|MR|Test|E|Lead 59394|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059395|159395|989898|1|9999059395|MR|Test|E|Lead 59395|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059396|159396|989898|1|9999059396|MR|Test|E|Lead 59396|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059397|159397|989898|1|9999059397|MR|Test|E|Lead 59397|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059398|159398|989898|1|9999059398|MR|Test|E|Lead 59398|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059399|159399|989898|1|9999059399|MR|Test|E|Lead 59399|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059400|159400|989898|1|9999059400|MR|Test|E|Lead 59400|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059401|159401|989898|1|9999059401|MR|Test|E|Lead 59401|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059402|159402|989898|1|9999059402|MR|Test|E|Lead 59402|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059403|159403|989898|1|9999059403|MR|Test|E|Lead 59403|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059404|159404|989898|1|9999059404|MR|Test|E|Lead 59404|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059405|159405|989898|1|9999059405|MR|Test|E|Lead 59405|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059406|159406|989898|1|9999059406|MR|Test|E|Lead 59406|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059407|159407|989898|1|9999059407|MR|Test|E|Lead 59407|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059408|159408|989898|1|9999059408|MR|Test|E|Lead 59408|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059409|159409|989898|1|9999059409|MR|Test|E|Lead 59409|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059410|159410|989898|1|9999059410|MR|Test|E|Lead 59410|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059411|159411|989898|1|9999059411|MR|Test|E|Lead 59411|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059412|159412|989898|1|9999059412|MR|Test|E|Lead 59412|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059413|159413|989898|1|9999059413|MR|Test|E|Lead 59413|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059414|159414|989898|1|9999059414|MR|Test|E|Lead 59414|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059415|159415|989898|1|9999059415|MR|Test|E|Lead 59415|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059416|159416|989898|1|9999059416|MR|Test|E|Lead 59416|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059417|159417|989898|1|9999059417|MR|Test|E|Lead 59417|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059418|159418|989898|1|9999059418|MR|Test|E|Lead 59418|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059419|159419|989898|1|9999059419|MR|Test|E|Lead 59419|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059420|159420|989898|1|9999059420|MR|Test|E|Lead 59420|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059421|159421|989898|1|9999059421|MR|Test|E|Lead 59421|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059422|159422|989898|1|9999059422|MR|Test|E|Lead 59422|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059423|159423|989898|1|9999059423|MR|Test|E|Lead 59423|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059424|159424|989898|1|9999059424|MR|Test|E|Lead 59424|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059425|159425|989898|1|9999059425|MR|Test|E|Lead 59425|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059426|159426|989898|1|9999059426|MR|Test|E|Lead 59426|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059427|159427|989898|1|9999059427|MR|Test|E|Lead 59427|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059428|159428|989898|1|9999059428|MR|Test|E|Lead 59428|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059429|159429|989898|1|9999059429|MR|Test|E|Lead 59429|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059430|159430|989898|1|9999059430|MR|Test|E|Lead 59430|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059431|159431|989898|1|9999059431|MR|Test|E|Lead 59431|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059432|159432|989898|1|9999059432|MR|Test|E|Lead 59432|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059433|159433|989898|1|9999059433|MR|Test|E|Lead 59433|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059434|159434|989898|1|9999059434|MR|Test|E|Lead 59434|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059435|159435|989898|1|9999059435|MR|Test|E|Lead 59435|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059436|159436|989898|1|9999059436|MR|Test|E|Lead 59436|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059437|159437|989898|1|9999059437|MR|Test|E|Lead 59437|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059438|159438|989898|1|9999059438|MR|Test|E|Lead 59438|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059439|159439|989898|1|9999059439|MR|Test|E|Lead 59439|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059440|159440|989898|1|9999059440|MR|Test|E|Lead 59440|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059441|159441|989898|1|9999059441|MR|Test|E|Lead 59441|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059442|159442|989898|1|9999059442|MR|Test|E|Lead 59442|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059443|159443|989898|1|9999059443|MR|Test|E|Lead 59443|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059444|159444|989898|1|9999059444|MR|Test|E|Lead 59444|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059445|159445|989898|1|9999059445|MR|Test|E|Lead 59445|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059446|159446|989898|1|9999059446|MR|Test|E|Lead 59446|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059447|159447|989898|1|9999059447|MR|Test|E|Lead 59447|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059448|159448|989898|1|9999059448|MR|Test|E|Lead 59448|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059449|159449|989898|1|9999059449|MR|Test|E|Lead 59449|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059450|159450|989898|1|9999059450|MR|Test|E|Lead 59450|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059451|159451|989898|1|9999059451|MR|Test|E|Lead 59451|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059452|159452|989898|1|9999059452|MR|Test|E|Lead 59452|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059453|159453|989898|1|9999059453|MR|Test|E|Lead 59453|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059454|159454|989898|1|9999059454|MR|Test|E|Lead 59454|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059455|159455|989898|1|9999059455|MR|Test|E|Lead 59455|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059456|159456|989898|1|9999059456|MR|Test|E|Lead 59456|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059457|159457|989898|1|9999059457|MR|Test|E|Lead 59457|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059458|159458|989898|1|9999059458|MR|Test|E|Lead 59458|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059459|159459|989898|1|9999059459|MR|Test|E|Lead 59459|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059460|159460|989898|1|9999059460|MR|Test|E|Lead 59460|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059461|159461|989898|1|9999059461|MR|Test|E|Lead 59461|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059462|159462|989898|1|9999059462|MR|Test|E|Lead 59462|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059463|159463|989898|1|9999059463|MR|Test|E|Lead 59463|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059464|159464|989898|1|9999059464|MR|Test|E|Lead 59464|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059465|159465|989898|1|9999059465|MR|Test|E|Lead 59465|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059466|159466|989898|1|9999059466|MR|Test|E|Lead 59466|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059467|159467|989898|1|9999059467|MR|Test|E|Lead 59467|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059468|159468|989898|1|9999059468|MR|Test|E|Lead 59468|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059469|159469|989898|1|9999059469|MR|Test|E|Lead 59469|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059470|159470|989898|1|9999059470|MR|Test|E|Lead 59470|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059471|159471|989898|1|9999059471|MR|Test|E|Lead 59471|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059472|159472|989898|1|9999059472|MR|Test|E|Lead 59472|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059473|159473|989898|1|9999059473|MR|Test|E|Lead 59473|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059474|159474|989898|1|9999059474|MR|Test|E|Lead 59474|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059475|159475|989898|1|9999059475|MR|Test|E|Lead 59475|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059476|159476|989898|1|9999059476|MR|Test|E|Lead 59476|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059477|159477|989898|1|9999059477|MR|Test|E|Lead 59477|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059478|159478|989898|1|9999059478|MR|Test|E|Lead 59478|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059479|159479|989898|1|9999059479|MR|Test|E|Lead 59479|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059480|159480|989898|1|9999059480|MR|Test|E|Lead 59480|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059481|159481|989898|1|9999059481|MR|Test|E|Lead 59481|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059482|159482|989898|1|9999059482|MR|Test|E|Lead 59482|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059483|159483|989898|1|9999059483|MR|Test|E|Lead 59483|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059484|159484|989898|1|9999059484|MR|Test|E|Lead 59484|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059485|159485|989898|1|9999059485|MR|Test|E|Lead 59485|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059486|159486|989898|1|9999059486|MR|Test|E|Lead 59486|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059487|159487|989898|1|9999059487|MR|Test|E|Lead 59487|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059488|159488|989898|1|9999059488|MR|Test|E|Lead 59488|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059489|159489|989898|1|9999059489|MR|Test|E|Lead 59489|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059490|159490|989898|1|9999059490|MR|Test|E|Lead 59490|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059491|159491|989898|1|9999059491|MR|Test|E|Lead 59491|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059492|159492|989898|1|9999059492|MR|Test|E|Lead 59492|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059493|159493|989898|1|9999059493|MR|Test|E|Lead 59493|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059494|159494|989898|1|9999059494|MR|Test|E|Lead 59494|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059495|159495|989898|1|9999059495|MR|Test|E|Lead 59495|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059496|159496|989898|1|9999059496|MR|Test|E|Lead 59496|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059497|159497|989898|1|9999059497|MR|Test|E|Lead 59497|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059498|159498|989898|1|9999059498|MR|Test|E|Lead 59498|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059499|159499|989898|1|9999059499|MR|Test|E|Lead 59499|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059500|159500|989898|1|9999059500|MR|Test|E|Lead 59500|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059501|159501|989898|1|9999059501|MR|Test|E|Lead 59501|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059502|159502|989898|1|9999059502|MR|Test|E|Lead 59502|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059503|159503|989898|1|9999059503|MR|Test|E|Lead 59503|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059504|159504|989898|1|9999059504|MR|Test|E|Lead 59504|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059505|159505|989898|1|9999059505|MR|Test|E|Lead 59505|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059506|159506|989898|1|9999059506|MR|Test|E|Lead 59506|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059507|159507|989898|1|9999059507|MR|Test|E|Lead 59507|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059508|159508|989898|1|9999059508|MR|Test|E|Lead 59508|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059509|159509|989898|1|9999059509|MR|Test|E|Lead 59509|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059510|159510|989898|1|9999059510|MR|Test|E|Lead 59510|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059511|159511|989898|1|9999059511|MR|Test|E|Lead 59511|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059512|159512|989898|1|9999059512|MR|Test|E|Lead 59512|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059513|159513|989898|1|9999059513|MR|Test|E|Lead 59513|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059514|159514|989898|1|9999059514|MR|Test|E|Lead 59514|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059515|159515|989898|1|9999059515|MR|Test|E|Lead 59515|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059516|159516|989898|1|9999059516|MR|Test|E|Lead 59516|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059517|159517|989898|1|9999059517|MR|Test|E|Lead 59517|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059518|159518|989898|1|9999059518|MR|Test|E|Lead 59518|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059519|159519|989898|1|9999059519|MR|Test|E|Lead 59519|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059520|159520|989898|1|9999059520|MR|Test|E|Lead 59520|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059521|159521|989898|1|9999059521|MR|Test|E|Lead 59521|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059522|159522|989898|1|9999059522|MR|Test|E|Lead 59522|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059523|159523|989898|1|9999059523|MR|Test|E|Lead 59523|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059524|159524|989898|1|9999059524|MR|Test|E|Lead 59524|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059525|159525|989898|1|9999059525|MR|Test|E|Lead 59525|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059526|159526|989898|1|9999059526|MR|Test|E|Lead 59526|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059527|159527|989898|1|9999059527|MR|Test|E|Lead 59527|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059528|159528|989898|1|9999059528|MR|Test|E|Lead 59528|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059529|159529|989898|1|9999059529|MR|Test|E|Lead 59529|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059530|159530|989898|1|9999059530|MR|Test|E|Lead 59530|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059531|159531|989898|1|9999059531|MR|Test|E|Lead 59531|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059532|159532|989898|1|9999059532|MR|Test|E|Lead 59532|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059533|159533|989898|1|9999059533|MR|Test|E|Lead 59533|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059534|159534|989898|1|9999059534|MR|Test|E|Lead 59534|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059535|159535|989898|1|9999059535|MR|Test|E|Lead 59535|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059536|159536|989898|1|9999059536|MR|Test|E|Lead 59536|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059537|159537|989898|1|9999059537|MR|Test|E|Lead 59537|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059538|159538|989898|1|9999059538|MR|Test|E|Lead 59538|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059539|159539|989898|1|9999059539|MR|Test|E|Lead 59539|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059540|159540|989898|1|9999059540|MR|Test|E|Lead 59540|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059541|159541|989898|1|9999059541|MR|Test|E|Lead 59541|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059542|159542|989898|1|9999059542|MR|Test|E|Lead 59542|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059543|159543|989898|1|9999059543|MR|Test|E|Lead 59543|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059544|159544|989898|1|9999059544|MR|Test|E|Lead 59544|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059545|159545|989898|1|9999059545|MR|Test|E|Lead 59545|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059546|159546|989898|1|9999059546|MR|Test|E|Lead 59546|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059547|159547|989898|1|9999059547|MR|Test|E|Lead 59547|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059548|159548|989898|1|9999059548|MR|Test|E|Lead 59548|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059549|159549|989898|1|9999059549|MR|Test|E|Lead 59549|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059550|159550|989898|1|9999059550|MR|Test|E|Lead 59550|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059551|159551|989898|1|9999059551|MR|Test|E|Lead 59551|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059552|159552|989898|1|9999059552|MR|Test|E|Lead 59552|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059553|159553|989898|1|9999059553|MR|Test|E|Lead 59553|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059554|159554|989898|1|9999059554|MR|Test|E|Lead 59554|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059555|159555|989898|1|9999059555|MR|Test|E|Lead 59555|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059556|159556|989898|1|9999059556|MR|Test|E|Lead 59556|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059557|159557|989898|1|9999059557|MR|Test|E|Lead 59557|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059558|159558|989898|1|9999059558|MR|Test|E|Lead 59558|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059559|159559|989898|1|9999059559|MR|Test|E|Lead 59559|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059560|159560|989898|1|9999059560|MR|Test|E|Lead 59560|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059561|159561|989898|1|9999059561|MR|Test|E|Lead 59561|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059562|159562|989898|1|9999059562|MR|Test|E|Lead 59562|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059563|159563|989898|1|9999059563|MR|Test|E|Lead 59563|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059564|159564|989898|1|9999059564|MR|Test|E|Lead 59564|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059565|159565|989898|1|9999059565|MR|Test|E|Lead 59565|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059566|159566|989898|1|9999059566|MR|Test|E|Lead 59566|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059567|159567|989898|1|9999059567|MR|Test|E|Lead 59567|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059568|159568|989898|1|9999059568|MR|Test|E|Lead 59568|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059569|159569|989898|1|9999059569|MR|Test|E|Lead 59569|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059570|159570|989898|1|9999059570|MR|Test|E|Lead 59570|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059571|159571|989898|1|9999059571|MR|Test|E|Lead 59571|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059572|159572|989898|1|9999059572|MR|Test|E|Lead 59572|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059573|159573|989898|1|9999059573|MR|Test|E|Lead 59573|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059574|159574|989898|1|9999059574|MR|Test|E|Lead 59574|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059575|159575|989898|1|9999059575|MR|Test|E|Lead 59575|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059576|159576|989898|1|9999059576|MR|Test|E|Lead 59576|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059577|159577|989898|1|9999059577|MR|Test|E|Lead 59577|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059578|159578|989898|1|9999059578|MR|Test|E|Lead 59578|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059579|159579|989898|1|9999059579|MR|Test|E|Lead 59579|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059580|159580|989898|1|9999059580|MR|Test|E|Lead 59580|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059581|159581|989898|1|9999059581|MR|Test|E|Lead 59581|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059582|159582|989898|1|9999059582|MR|Test|E|Lead 59582|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059583|159583|989898|1|9999059583|MR|Test|E|Lead 59583|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059584|159584|989898|1|9999059584|MR|Test|E|Lead 59584|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059585|159585|989898|1|9999059585|MR|Test|E|Lead 59585|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059586|159586|989898|1|9999059586|MR|Test|E|Lead 59586|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059587|159587|989898|1|9999059587|MR|Test|E|Lead 59587|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059588|159588|989898|1|9999059588|MR|Test|E|Lead 59588|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059589|159589|989898|1|9999059589|MR|Test|E|Lead 59589|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059590|159590|989898|1|9999059590|MR|Test|E|Lead 59590|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059591|159591|989898|1|9999059591|MR|Test|E|Lead 59591|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059592|159592|989898|1|9999059592|MR|Test|E|Lead 59592|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059593|159593|989898|1|9999059593|MR|Test|E|Lead 59593|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059594|159594|989898|1|9999059594|MR|Test|E|Lead 59594|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059595|159595|989898|1|9999059595|MR|Test|E|Lead 59595|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059596|159596|989898|1|9999059596|MR|Test|E|Lead 59596|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059597|159597|989898|1|9999059597|MR|Test|E|Lead 59597|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059598|159598|989898|1|9999059598|MR|Test|E|Lead 59598|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059599|159599|989898|1|9999059599|MR|Test|E|Lead 59599|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059600|159600|989898|1|9999059600|MR|Test|E|Lead 59600|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059601|159601|989898|1|9999059601|MR|Test|E|Lead 59601|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059602|159602|989898|1|9999059602|MR|Test|E|Lead 59602|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059603|159603|989898|1|9999059603|MR|Test|E|Lead 59603|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059604|159604|989898|1|9999059604|MR|Test|E|Lead 59604|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059605|159605|989898|1|9999059605|MR|Test|E|Lead 59605|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059606|159606|989898|1|9999059606|MR|Test|E|Lead 59606|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059607|159607|989898|1|9999059607|MR|Test|E|Lead 59607|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059608|159608|989898|1|9999059608|MR|Test|E|Lead 59608|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059609|159609|989898|1|9999059609|MR|Test|E|Lead 59609|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059610|159610|989898|1|9999059610|MR|Test|E|Lead 59610|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059611|159611|989898|1|9999059611|MR|Test|E|Lead 59611|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059612|159612|989898|1|9999059612|MR|Test|E|Lead 59612|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059613|159613|989898|1|9999059613|MR|Test|E|Lead 59613|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059614|159614|989898|1|9999059614|MR|Test|E|Lead 59614|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059615|159615|989898|1|9999059615|MR|Test|E|Lead 59615|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059616|159616|989898|1|9999059616|MR|Test|E|Lead 59616|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059617|159617|989898|1|9999059617|MR|Test|E|Lead 59617|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059618|159618|989898|1|9999059618|MR|Test|E|Lead 59618|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059619|159619|989898|1|9999059619|MR|Test|E|Lead 59619|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059620|159620|989898|1|9999059620|MR|Test|E|Lead 59620|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059621|159621|989898|1|9999059621|MR|Test|E|Lead 59621|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059622|159622|989898|1|9999059622|MR|Test|E|Lead 59622|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059623|159623|989898|1|9999059623|MR|Test|E|Lead 59623|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059624|159624|989898|1|9999059624|MR|Test|E|Lead 59624|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059625|159625|989898|1|9999059625|MR|Test|E|Lead 59625|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059626|159626|989898|1|9999059626|MR|Test|E|Lead 59626|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059627|159627|989898|1|9999059627|MR|Test|E|Lead 59627|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059628|159628|989898|1|9999059628|MR|Test|E|Lead 59628|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059629|159629|989898|1|9999059629|MR|Test|E|Lead 59629|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059630|159630|989898|1|9999059630|MR|Test|E|Lead 59630|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059631|159631|989898|1|9999059631|MR|Test|E|Lead 59631|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059632|159632|989898|1|9999059632|MR|Test|E|Lead 59632|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059633|159633|989898|1|9999059633|MR|Test|E|Lead 59633|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059634|159634|989898|1|9999059634|MR|Test|E|Lead 59634|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059635|159635|989898|1|9999059635|MR|Test|E|Lead 59635|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059636|159636|989898|1|9999059636|MR|Test|E|Lead 59636|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059637|159637|989898|1|9999059637|MR|Test|E|Lead 59637|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059638|159638|989898|1|9999059638|MR|Test|E|Lead 59638|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059639|159639|989898|1|9999059639|MR|Test|E|Lead 59639|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059640|159640|989898|1|9999059640|MR|Test|E|Lead 59640|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059641|159641|989898|1|9999059641|MR|Test|E|Lead 59641|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059642|159642|989898|1|9999059642|MR|Test|E|Lead 59642|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059643|159643|989898|1|9999059643|MR|Test|E|Lead 59643|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059644|159644|989898|1|9999059644|MR|Test|E|Lead 59644|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059645|159645|989898|1|9999059645|MR|Test|E|Lead 59645|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059646|159646|989898|1|9999059646|MR|Test|E|Lead 59646|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059647|159647|989898|1|9999059647|MR|Test|E|Lead 59647|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059648|159648|989898|1|9999059648|MR|Test|E|Lead 59648|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059649|159649|989898|1|9999059649|MR|Test|E|Lead 59649|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059650|159650|989898|1|9999059650|MR|Test|E|Lead 59650|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059651|159651|989898|1|9999059651|MR|Test|E|Lead 59651|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059652|159652|989898|1|9999059652|MR|Test|E|Lead 59652|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059653|159653|989898|1|9999059653|MR|Test|E|Lead 59653|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059654|159654|989898|1|9999059654|MR|Test|E|Lead 59654|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059655|159655|989898|1|9999059655|MR|Test|E|Lead 59655|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059656|159656|989898|1|9999059656|MR|Test|E|Lead 59656|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059657|159657|989898|1|9999059657|MR|Test|E|Lead 59657|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059658|159658|989898|1|9999059658|MR|Test|E|Lead 59658|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059659|159659|989898|1|9999059659|MR|Test|E|Lead 59659|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059660|159660|989898|1|9999059660|MR|Test|E|Lead 59660|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059661|159661|989898|1|9999059661|MR|Test|E|Lead 59661|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059662|159662|989898|1|9999059662|MR|Test|E|Lead 59662|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059663|159663|989898|1|9999059663|MR|Test|E|Lead 59663|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059664|159664|989898|1|9999059664|MR|Test|E|Lead 59664|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059665|159665|989898|1|9999059665|MR|Test|E|Lead 59665|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059666|159666|989898|1|9999059666|MR|Test|E|Lead 59666|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059667|159667|989898|1|9999059667|MR|Test|E|Lead 59667|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059668|159668|989898|1|9999059668|MR|Test|E|Lead 59668|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059669|159669|989898|1|9999059669|MR|Test|E|Lead 59669|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059670|159670|989898|1|9999059670|MR|Test|E|Lead 59670|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059671|159671|989898|1|9999059671|MR|Test|E|Lead 59671|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059672|159672|989898|1|9999059672|MR|Test|E|Lead 59672|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059673|159673|989898|1|9999059673|MR|Test|E|Lead 59673|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059674|159674|989898|1|9999059674|MR|Test|E|Lead 59674|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059675|159675|989898|1|9999059675|MR|Test|E|Lead 59675|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059676|159676|989898|1|9999059676|MR|Test|E|Lead 59676|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059677|159677|989898|1|9999059677|MR|Test|E|Lead 59677|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059678|159678|989898|1|9999059678|MR|Test|E|Lead 59678|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059679|159679|989898|1|9999059679|MR|Test|E|Lead 59679|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059680|159680|989898|1|9999059680|MR|Test|E|Lead 59680|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059681|159681|989898|1|9999059681|MR|Test|E|Lead 59681|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059682|159682|989898|1|9999059682|MR|Test|E|Lead 59682|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059683|159683|989898|1|9999059683|MR|Test|E|Lead 59683|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059684|159684|989898|1|9999059684|MR|Test|E|Lead 59684|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059685|159685|989898|1|9999059685|MR|Test|E|Lead 59685|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059686|159686|989898|1|9999059686|MR|Test|E|Lead 59686|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059687|159687|989898|1|9999059687|MR|Test|E|Lead 59687|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059688|159688|989898|1|9999059688|MR|Test|E|Lead 59688|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059689|159689|989898|1|9999059689|MR|Test|E|Lead 59689|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059690|159690|989898|1|9999059690|MR|Test|E|Lead 59690|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059691|159691|989898|1|9999059691|MR|Test|E|Lead 59691|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059692|159692|989898|1|9999059692|MR|Test|E|Lead 59692|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059693|159693|989898|1|9999059693|MR|Test|E|Lead 59693|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059694|159694|989898|1|9999059694|MR|Test|E|Lead 59694|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059695|159695|989898|1|9999059695|MR|Test|E|Lead 59695|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059696|159696|989898|1|9999059696|MR|Test|E|Lead 59696|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059697|159697|989898|1|9999059697|MR|Test|E|Lead 59697|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059698|159698|989898|1|9999059698|MR|Test|E|Lead 59698|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059699|159699|989898|1|9999059699|MR|Test|E|Lead 59699|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059700|159700|989898|1|9999059700|MR|Test|E|Lead 59700|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059701|159701|989898|1|9999059701|MR|Test|E|Lead 59701|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059702|159702|989898|1|9999059702|MR|Test|E|Lead 59702|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059703|159703|989898|1|9999059703|MR|Test|E|Lead 59703|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059704|159704|989898|1|9999059704|MR|Test|E|Lead 59704|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059705|159705|989898|1|9999059705|MR|Test|E|Lead 59705|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059706|159706|989898|1|9999059706|MR|Test|E|Lead 59706|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059707|159707|989898|1|9999059707|MR|Test|E|Lead 59707|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059708|159708|989898|1|9999059708|MR|Test|E|Lead 59708|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059709|159709|989898|1|9999059709|MR|Test|E|Lead 59709|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059710|159710|989898|1|9999059710|MR|Test|E|Lead 59710|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059711|159711|989898|1|9999059711|MR|Test|E|Lead 59711|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059712|159712|989898|1|9999059712|MR|Test|E|Lead 59712|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059713|159713|989898|1|9999059713|MR|Test|E|Lead 59713|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059714|159714|989898|1|9999059714|MR|Test|E|Lead 59714|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059715|159715|989898|1|9999059715|MR|Test|E|Lead 59715|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059716|159716|989898|1|9999059716|MR|Test|E|Lead 59716|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059717|159717|989898|1|9999059717|MR|Test|E|Lead 59717|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059718|159718|989898|1|9999059718|MR|Test|E|Lead 59718|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059719|159719|989898|1|9999059719|MR|Test|E|Lead 59719|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059720|159720|989898|1|9999059720|MR|Test|E|Lead 59720|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059721|159721|989898|1|9999059721|MR|Test|E|Lead 59721|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059722|159722|989898|1|9999059722|MR|Test|E|Lead 59722|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059723|159723|989898|1|9999059723|MR|Test|E|Lead 59723|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059724|159724|989898|1|9999059724|MR|Test|E|Lead 59724|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059725|159725|989898|1|9999059725|MR|Test|E|Lead 59725|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059726|159726|989898|1|9999059726|MR|Test|E|Lead 59726|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059727|159727|989898|1|9999059727|MR|Test|E|Lead 59727|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059728|159728|989898|1|9999059728|MR|Test|E|Lead 59728|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059729|159729|989898|1|9999059729|MR|Test|E|Lead 59729|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059730|159730|989898|1|9999059730|MR|Test|E|Lead 59730|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059731|159731|989898|1|9999059731|MR|Test|E|Lead 59731|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059732|159732|989898|1|9999059732|MR|Test|E|Lead 59732|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059733|159733|989898|1|9999059733|MR|Test|E|Lead 59733|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059734|159734|989898|1|9999059734|MR|Test|E|Lead 59734|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059735|159735|989898|1|9999059735|MR|Test|E|Lead 59735|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059736|159736|989898|1|9999059736|MR|Test|E|Lead 59736|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059737|159737|989898|1|9999059737|MR|Test|E|Lead 59737|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059738|159738|989898|1|9999059738|MR|Test|E|Lead 59738|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059739|159739|989898|1|9999059739|MR|Test|E|Lead 59739|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059740|159740|989898|1|9999059740|MR|Test|E|Lead 59740|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059741|159741|989898|1|9999059741|MR|Test|E|Lead 59741|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059742|159742|989898|1|9999059742|MR|Test|E|Lead 59742|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059743|159743|989898|1|9999059743|MR|Test|E|Lead 59743|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059744|159744|989898|1|9999059744|MR|Test|E|Lead 59744|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059745|159745|989898|1|9999059745|MR|Test|E|Lead 59745|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059746|159746|989898|1|9999059746|MR|Test|E|Lead 59746|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059747|159747|989898|1|9999059747|MR|Test|E|Lead 59747|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059748|159748|989898|1|9999059748|MR|Test|E|Lead 59748|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059749|159749|989898|1|9999059749|MR|Test|E|Lead 59749|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059750|159750|989898|1|9999059750|MR|Test|E|Lead 59750|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059751|159751|989898|1|9999059751|MR|Test|E|Lead 59751|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059752|159752|989898|1|9999059752|MR|Test|E|Lead 59752|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059753|159753|989898|1|9999059753|MR|Test|E|Lead 59753|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059754|159754|989898|1|9999059754|MR|Test|E|Lead 59754|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059755|159755|989898|1|9999059755|MR|Test|E|Lead 59755|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059756|159756|989898|1|9999059756|MR|Test|E|Lead 59756|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059757|159757|989898|1|9999059757|MR|Test|E|Lead 59757|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059758|159758|989898|1|9999059758|MR|Test|E|Lead 59758|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059759|159759|989898|1|9999059759|MR|Test|E|Lead 59759|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059760|159760|989898|1|9999059760|MR|Test|E|Lead 59760|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059761|159761|989898|1|9999059761|MR|Test|E|Lead 59761|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059762|159762|989898|1|9999059762|MR|Test|E|Lead 59762|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059763|159763|989898|1|9999059763|MR|Test|E|Lead 59763|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059764|159764|989898|1|9999059764|MR|Test|E|Lead 59764|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059765|159765|989898|1|9999059765|MR|Test|E|Lead 59765|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059766|159766|989898|1|9999059766|MR|Test|E|Lead 59766|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059767|159767|989898|1|9999059767|MR|Test|E|Lead 59767|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059768|159768|989898|1|9999059768|MR|Test|E|Lead 59768|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059769|159769|989898|1|9999059769|MR|Test|E|Lead 59769|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059770|159770|989898|1|9999059770|MR|Test|E|Lead 59770|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059771|159771|989898|1|9999059771|MR|Test|E|Lead 59771|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059772|159772|989898|1|9999059772|MR|Test|E|Lead 59772|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059773|159773|989898|1|9999059773|MR|Test|E|Lead 59773|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059774|159774|989898|1|9999059774|MR|Test|E|Lead 59774|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059775|159775|989898|1|9999059775|MR|Test|E|Lead 59775|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059776|159776|989898|1|9999059776|MR|Test|E|Lead 59776|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059777|159777|989898|1|9999059777|MR|Test|E|Lead 59777|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059778|159778|989898|1|9999059778|MR|Test|E|Lead 59778|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059779|159779|989898|1|9999059779|MR|Test|E|Lead 59779|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059780|159780|989898|1|9999059780|MR|Test|E|Lead 59780|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059781|159781|989898|1|9999059781|MR|Test|E|Lead 59781|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059782|159782|989898|1|9999059782|MR|Test|E|Lead 59782|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059783|159783|989898|1|9999059783|MR|Test|E|Lead 59783|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059784|159784|989898|1|9999059784|MR|Test|E|Lead 59784|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059785|159785|989898|1|9999059785|MR|Test|E|Lead 59785|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059786|159786|989898|1|9999059786|MR|Test|E|Lead 59786|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059787|159787|989898|1|9999059787|MR|Test|E|Lead 59787|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059788|159788|989898|1|9999059788|MR|Test|E|Lead 59788|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059789|159789|989898|1|9999059789|MR|Test|E|Lead 59789|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059790|159790|989898|1|9999059790|MR|Test|E|Lead 59790|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059791|159791|989898|1|9999059791|MR|Test|E|Lead 59791|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059792|159792|989898|1|9999059792|MR|Test|E|Lead 59792|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059793|159793|989898|1|9999059793|MR|Test|E|Lead 59793|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059794|159794|989898|1|9999059794|MR|Test|E|Lead 59794|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059795|159795|989898|1|9999059795|MR|Test|E|Lead 59795|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059796|159796|989898|1|9999059796|MR|Test|E|Lead 59796|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059797|159797|989898|1|9999059797|MR|Test|E|Lead 59797|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059798|159798|989898|1|9999059798|MR|Test|E|Lead 59798|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059799|159799|989898|1|9999059799|MR|Test|E|Lead 59799|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059800|159800|989898|1|9999059800|MR|Test|E|Lead 59800|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059801|159801|989898|1|9999059801|MR|Test|E|Lead 59801|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059802|159802|989898|1|9999059802|MR|Test|E|Lead 59802|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059803|159803|989898|1|9999059803|MR|Test|E|Lead 59803|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059804|159804|989898|1|9999059804|MR|Test|E|Lead 59804|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059805|159805|989898|1|9999059805|MR|Test|E|Lead 59805|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059806|159806|989898|1|9999059806|MR|Test|E|Lead 59806|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059807|159807|989898|1|9999059807|MR|Test|E|Lead 59807|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059808|159808|989898|1|9999059808|MR|Test|E|Lead 59808|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059809|159809|989898|1|9999059809|MR|Test|E|Lead 59809|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059810|159810|989898|1|9999059810|MR|Test|E|Lead 59810|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059811|159811|989898|1|9999059811|MR|Test|E|Lead 59811|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059812|159812|989898|1|9999059812|MR|Test|E|Lead 59812|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059813|159813|989898|1|9999059813|MR|Test|E|Lead 59813|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059814|159814|989898|1|9999059814|MR|Test|E|Lead 59814|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059815|159815|989898|1|9999059815|MR|Test|E|Lead 59815|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059816|159816|989898|1|9999059816|MR|Test|E|Lead 59816|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059817|159817|989898|1|9999059817|MR|Test|E|Lead 59817|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059818|159818|989898|1|9999059818|MR|Test|E|Lead 59818|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059819|159819|989898|1|9999059819|MR|Test|E|Lead 59819|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059820|159820|989898|1|9999059820|MR|Test|E|Lead 59820|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059821|159821|989898|1|9999059821|MR|Test|E|Lead 59821|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059822|159822|989898|1|9999059822|MR|Test|E|Lead 59822|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059823|159823|989898|1|9999059823|MR|Test|E|Lead 59823|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059824|159824|989898|1|9999059824|MR|Test|E|Lead 59824|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059825|159825|989898|1|9999059825|MR|Test|E|Lead 59825|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059826|159826|989898|1|9999059826|MR|Test|E|Lead 59826|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059827|159827|989898|1|9999059827|MR|Test|E|Lead 59827|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059828|159828|989898|1|9999059828|MR|Test|E|Lead 59828|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059829|159829|989898|1|9999059829|MR|Test|E|Lead 59829|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059830|159830|989898|1|9999059830|MR|Test|E|Lead 59830|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059831|159831|989898|1|9999059831|MR|Test|E|Lead 59831|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059832|159832|989898|1|9999059832|MR|Test|E|Lead 59832|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059833|159833|989898|1|9999059833|MR|Test|E|Lead 59833|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059834|159834|989898|1|9999059834|MR|Test|E|Lead 59834|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059835|159835|989898|1|9999059835|MR|Test|E|Lead 59835|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059836|159836|989898|1|9999059836|MR|Test|E|Lead 59836|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059837|159837|989898|1|9999059837|MR|Test|E|Lead 59837|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059838|159838|989898|1|9999059838|MR|Test|E|Lead 59838|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059839|159839|989898|1|9999059839|MR|Test|E|Lead 59839|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059840|159840|989898|1|9999059840|MR|Test|E|Lead 59840|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059841|159841|989898|1|9999059841|MR|Test|E|Lead 59841|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059842|159842|989898|1|9999059842|MR|Test|E|Lead 59842|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059843|159843|989898|1|9999059843|MR|Test|E|Lead 59843|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059844|159844|989898|1|9999059844|MR|Test|E|Lead 59844|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059845|159845|989898|1|9999059845|MR|Test|E|Lead 59845|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059846|159846|989898|1|9999059846|MR|Test|E|Lead 59846|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059847|159847|989898|1|9999059847|MR|Test|E|Lead 59847|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059848|159848|989898|1|9999059848|MR|Test|E|Lead 59848|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059849|159849|989898|1|9999059849|MR|Test|E|Lead 59849|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059850|159850|989898|1|9999059850|MR|Test|E|Lead 59850|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059851|159851|989898|1|9999059851|MR|Test|E|Lead 59851|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059852|159852|989898|1|9999059852|MR|Test|E|Lead 59852|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059853|159853|989898|1|9999059853|MR|Test|E|Lead 59853|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059854|159854|989898|1|9999059854|MR|Test|E|Lead 59854|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059855|159855|989898|1|9999059855|MR|Test|E|Lead 59855|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059856|159856|989898|1|9999059856|MR|Test|E|Lead 59856|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059857|159857|989898|1|9999059857|MR|Test|E|Lead 59857|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059858|159858|989898|1|9999059858|MR|Test|E|Lead 59858|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059859|159859|989898|1|9999059859|MR|Test|E|Lead 59859|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059860|159860|989898|1|9999059860|MR|Test|E|Lead 59860|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059861|159861|989898|1|9999059861|MR|Test|E|Lead 59861|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059862|159862|989898|1|9999059862|MR|Test|E|Lead 59862|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059863|159863|989898|1|9999059863|MR|Test|E|Lead 59863|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059864|159864|989898|1|9999059864|MR|Test|E|Lead 59864|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059865|159865|989898|1|9999059865|MR|Test|E|Lead 59865|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059866|159866|989898|1|9999059866|MR|Test|E|Lead 59866|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059867|159867|989898|1|9999059867|MR|Test|E|Lead 59867|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059868|159868|989898|1|9999059868|MR|Test|E|Lead 59868|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059869|159869|989898|1|9999059869|MR|Test|E|Lead 59869|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059870|159870|989898|1|9999059870|MR|Test|E|Lead 59870|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059871|159871|989898|1|9999059871|MR|Test|E|Lead 59871|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059872|159872|989898|1|9999059872|MR|Test|E|Lead 59872|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059873|159873|989898|1|9999059873|MR|Test|E|Lead 59873|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059874|159874|989898|1|9999059874|MR|Test|E|Lead 59874|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059875|159875|989898|1|9999059875|MR|Test|E|Lead 59875|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059876|159876|989898|1|9999059876|MR|Test|E|Lead 59876|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059877|159877|989898|1|9999059877|MR|Test|E|Lead 59877|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059878|159878|989898|1|9999059878|MR|Test|E|Lead 59878|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059879|159879|989898|1|9999059879|MR|Test|E|Lead 59879|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059880|159880|989898|1|9999059880|MR|Test|E|Lead 59880|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059881|159881|989898|1|9999059881|MR|Test|E|Lead 59881|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059882|159882|989898|1|9999059882|MR|Test|E|Lead 59882|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059883|159883|989898|1|9999059883|MR|Test|E|Lead 59883|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059884|159884|989898|1|9999059884|MR|Test|E|Lead 59884|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059885|159885|989898|1|9999059885|MR|Test|E|Lead 59885|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059886|159886|989898|1|9999059886|MR|Test|E|Lead 59886|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059887|159887|989898|1|9999059887|MR|Test|E|Lead 59887|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059888|159888|989898|1|9999059888|MR|Test|E|Lead 59888|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059889|159889|989898|1|9999059889|MR|Test|E|Lead 59889|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059890|159890|989898|1|9999059890|MR|Test|E|Lead 59890|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059891|159891|989898|1|9999059891|MR|Test|E|Lead 59891|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059892|159892|989898|1|9999059892|MR|Test|E|Lead 59892|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059893|159893|989898|1|9999059893|MR|Test|E|Lead 59893|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059894|159894|989898|1|9999059894|MR|Test|E|Lead 59894|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059895|159895|989898|1|9999059895|MR|Test|E|Lead 59895|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059896|159896|989898|1|9999059896|MR|Test|E|Lead 59896|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059897|159897|989898|1|9999059897|MR|Test|E|Lead 59897|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059898|159898|989898|1|9999059898|MR|Test|E|Lead 59898|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059899|159899|989898|1|9999059899|MR|Test|E|Lead 59899|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059900|159900|989898|1|9999059900|MR|Test|E|Lead 59900|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059901|159901|989898|1|9999059901|MR|Test|E|Lead 59901|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059902|159902|989898|1|9999059902|MR|Test|E|Lead 59902|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059903|159903|989898|1|9999059903|MR|Test|E|Lead 59903|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059904|159904|989898|1|9999059904|MR|Test|E|Lead 59904|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059905|159905|989898|1|9999059905|MR|Test|E|Lead 59905|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059906|159906|989898|1|9999059906|MR|Test|E|Lead 59906|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059907|159907|989898|1|9999059907|MR|Test|E|Lead 59907|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059908|159908|989898|1|9999059908|MR|Test|E|Lead 59908|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059909|159909|989898|1|9999059909|MR|Test|E|Lead 59909|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059910|159910|989898|1|9999059910|MR|Test|E|Lead 59910|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059911|159911|989898|1|9999059911|MR|Test|E|Lead 59911|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059912|159912|989898|1|9999059912|MR|Test|E|Lead 59912|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059913|159913|989898|1|9999059913|MR|Test|E|Lead 59913|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059914|159914|989898|1|9999059914|MR|Test|E|Lead 59914|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059915|159915|989898|1|9999059915|MR|Test|E|Lead 59915|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059916|159916|989898|1|9999059916|MR|Test|E|Lead 59916|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059917|159917|989898|1|9999059917|MR|Test|E|Lead 59917|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059918|159918|989898|1|9999059918|MR|Test|E|Lead 59918|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059919|159919|989898|1|9999059919|MR|Test|E|Lead 59919|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059920|159920|989898|1|9999059920|MR|Test|E|Lead 59920|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059921|159921|989898|1|9999059921|MR|Test|E|Lead 59921|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059922|159922|989898|1|9999059922|MR|Test|E|Lead 59922|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059923|159923|989898|1|9999059923|MR|Test|E|Lead 59923|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059924|159924|989898|1|9999059924|MR|Test|E|Lead 59924|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059925|159925|989898|1|9999059925|MR|Test|E|Lead 59925|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059926|159926|989898|1|9999059926|MR|Test|E|Lead 59926|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059927|159927|989898|1|9999059927|MR|Test|E|Lead 59927|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059928|159928|989898|1|9999059928|MR|Test|E|Lead 59928|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059929|159929|989898|1|9999059929|MR|Test|E|Lead 59929|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059930|159930|989898|1|9999059930|MR|Test|E|Lead 59930|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059931|159931|989898|1|9999059931|MR|Test|E|Lead 59931|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059932|159932|989898|1|9999059932|MR|Test|E|Lead 59932|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059933|159933|989898|1|9999059933|MR|Test|E|Lead 59933|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059934|159934|989898|1|9999059934|MR|Test|E|Lead 59934|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059935|159935|989898|1|9999059935|MR|Test|E|Lead 59935|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059936|159936|989898|1|9999059936|MR|Test|E|Lead 59936|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059937|159937|989898|1|9999059937|MR|Test|E|Lead 59937|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059938|159938|989898|1|9999059938|MR|Test|E|Lead 59938|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059939|159939|989898|1|9999059939|MR|Test|E|Lead 59939|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059940|159940|989898|1|9999059940|MR|Test|E|Lead 59940|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059941|159941|989898|1|9999059941|MR|Test|E|Lead 59941|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059942|159942|989898|1|9999059942|MR|Test|E|Lead 59942|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059943|159943|989898|1|9999059943|MR|Test|E|Lead 59943|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059944|159944|989898|1|9999059944|MR|Test|E|Lead 59944|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059945|159945|989898|1|9999059945|MR|Test|E|Lead 59945|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059946|159946|989898|1|9999059946|MR|Test|E|Lead 59946|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059947|159947|989898|1|9999059947|MR|Test|E|Lead 59947|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059948|159948|989898|1|9999059948|MR|Test|E|Lead 59948|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059949|159949|989898|1|9999059949|MR|Test|E|Lead 59949|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059950|159950|989898|1|9999059950|MR|Test|E|Lead 59950|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059951|159951|989898|1|9999059951|MR|Test|E|Lead 59951|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059952|159952|989898|1|9999059952|MR|Test|E|Lead 59952|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059953|159953|989898|1|9999059953|MR|Test|E|Lead 59953|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059954|159954|989898|1|9999059954|MR|Test|E|Lead 59954|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059955|159955|989898|1|9999059955|MR|Test|E|Lead 59955|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059956|159956|989898|1|9999059956|MR|Test|E|Lead 59956|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059957|159957|989898|1|9999059957|MR|Test|E|Lead 59957|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059958|159958|989898|1|9999059958|MR|Test|E|Lead 59958|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059959|159959|989898|1|9999059959|MR|Test|E|Lead 59959|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059960|159960|989898|1|9999059960|MR|Test|E|Lead 59960|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059961|159961|989898|1|9999059961|MR|Test|E|Lead 59961|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059962|159962|989898|1|9999059962|MR|Test|E|Lead 59962|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059963|159963|989898|1|9999059963|MR|Test|E|Lead 59963|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059964|159964|989898|1|9999059964|MR|Test|E|Lead 59964|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059965|159965|989898|1|9999059965|MR|Test|E|Lead 59965|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059966|159966|989898|1|9999059966|MR|Test|E|Lead 59966|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059967|159967|989898|1|9999059967|MR|Test|E|Lead 59967|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059968|159968|989898|1|9999059968|MR|Test|E|Lead 59968|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059969|159969|989898|1|9999059969|MR|Test|E|Lead 59969|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059970|159970|989898|1|9999059970|MR|Test|E|Lead 59970|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059971|159971|989898|1|9999059971|MR|Test|E|Lead 59971|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059972|159972|989898|1|9999059972|MR|Test|E|Lead 59972|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059973|159973|989898|1|9999059973|MR|Test|E|Lead 59973|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059974|159974|989898|1|9999059974|MR|Test|E|Lead 59974|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059975|159975|989898|1|9999059975|MR|Test|E|Lead 59975|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059976|159976|989898|1|9999059976|MR|Test|E|Lead 59976|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059977|159977|989898|1|9999059977|MR|Test|E|Lead 59977|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059978|159978|989898|1|9999059978|MR|Test|E|Lead 59978|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059979|159979|989898|1|9999059979|MR|Test|E|Lead 59979|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059980|159980|989898|1|9999059980|MR|Test|E|Lead 59980|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059981|159981|989898|1|9999059981|MR|Test|E|Lead 59981|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059982|159982|989898|1|9999059982|MR|Test|E|Lead 59982|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059983|159983|989898|1|9999059983|MR|Test|E|Lead 59983|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059984|159984|989898|1|9999059984|MR|Test|E|Lead 59984|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059985|159985|989898|1|9999059985|MR|Test|E|Lead 59985|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059986|159986|989898|1|9999059986|MR|Test|E|Lead 59986|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059987|159987|989898|1|9999059987|MR|Test|E|Lead 59987|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059988|159988|989898|1|9999059988|MR|Test|E|Lead 59988|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059989|159989|989898|1|9999059989|MR|Test|E|Lead 59989|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059990|159990|989898|1|9999059990|MR|Test|E|Lead 59990|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059991|159991|989898|1|9999059991|MR|Test|E|Lead 59991|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059992|159992|989898|1|9999059992|MR|Test|E|Lead 59992|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059993|159993|989898|1|9999059993|MR|Test|E|Lead 59993|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059994|159994|989898|1|9999059994|MR|Test|E|Lead 59994|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059995|159995|989898|1|9999059995|MR|Test|E|Lead 59995|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059996|159996|989898|1|9999059996|MR|Test|E|Lead 59996|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059997|159997|989898|1|9999059997|MR|Test|E|Lead 59997|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059998|159998|989898|1|9999059998|MR|Test|E|Lead 59998|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments +1059999|159999|989898|1|9999059999|MR|Test|E|Lead 59999|123 Main St|||New York|NY||10110|USA|M|1970-01-01||test@test.com|none|comments diff --git a/agc_2-X/branches/agc_2.2.0/extras/second_server_install.sql b/agc_2-X/branches/agc_2.2.0/extras/second_server_install.sql new file mode 100644 index 00000000..6c2bef86 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/second_server_install.sql @@ -0,0 +1,303 @@ +INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version)values('TESTast','Test install of Asterisk server', '10.10.10.16','Y','1.4.21.2'); + +INSERT INTO server_updater SET server_ip='10.10.10.16', last_update=''; + +INSERT INTO conferences values('8600001','10.10.10.16',''); +INSERT INTO conferences values('8600002','10.10.10.16',''); +INSERT INTO conferences values('8600003','10.10.10.16',''); +INSERT INTO conferences values('8600004','10.10.10.16',''); +INSERT INTO conferences values('8600005','10.10.10.16',''); +INSERT INTO conferences values('8600006','10.10.10.16',''); +INSERT INTO conferences values('8600007','10.10.10.16',''); +INSERT INTO conferences values('8600008','10.10.10.16',''); +INSERT INTO conferences values('8600009','10.10.10.16',''); +INSERT INTO conferences values('8600010','10.10.10.16',''); +INSERT INTO conferences values('8600011','10.10.10.16',''); +INSERT INTO conferences values('8600012','10.10.10.16',''); +INSERT INTO conferences values('8600013','10.10.10.16',''); +INSERT INTO conferences values('8600014','10.10.10.16',''); +INSERT INTO conferences values('8600015','10.10.10.16',''); +INSERT INTO conferences values('8600016','10.10.10.16',''); +INSERT INTO conferences values('8600017','10.10.10.16',''); +INSERT INTO conferences values('8600018','10.10.10.16',''); +INSERT INTO conferences values('8600019','10.10.10.16',''); +INSERT INTO conferences values('8600020','10.10.10.16',''); +INSERT INTO conferences values('8600021','10.10.10.16',''); +INSERT INTO conferences values('8600022','10.10.10.16',''); +INSERT INTO conferences values('8600023','10.10.10.16',''); +INSERT INTO conferences values('8600024','10.10.10.16',''); +INSERT INTO conferences values('8600025','10.10.10.16',''); +INSERT INTO conferences values('8600026','10.10.10.16',''); +INSERT INTO conferences values('8600027','10.10.10.16',''); +INSERT INTO conferences values('8600028','10.10.10.16',''); +INSERT INTO conferences values('8600029','10.10.10.16',''); +INSERT INTO conferences values('8600030','10.10.10.16',''); +INSERT INTO conferences values('8600031','10.10.10.16',''); +INSERT INTO conferences values('8600032','10.10.10.16',''); +INSERT INTO conferences values('8600033','10.10.10.16',''); +INSERT INTO conferences values('8600034','10.10.10.16',''); +INSERT INTO conferences values('8600035','10.10.10.16',''); +INSERT INTO conferences values('8600036','10.10.10.16',''); +INSERT INTO conferences values('8600037','10.10.10.16',''); +INSERT INTO conferences values('8600038','10.10.10.16',''); +INSERT INTO conferences values('8600039','10.10.10.16',''); +INSERT INTO conferences values('8600040','10.10.10.16',''); +INSERT INTO conferences values('8600041','10.10.10.16',''); +INSERT INTO conferences values('8600042','10.10.10.16',''); +INSERT INTO conferences values('8600043','10.10.10.16',''); +INSERT INTO conferences values('8600044','10.10.10.16',''); +INSERT INTO conferences values('8600045','10.10.10.16',''); +INSERT INTO conferences values('8600046','10.10.10.16',''); +INSERT INTO conferences values('8600047','10.10.10.16',''); +INSERT INTO conferences values('8600048','10.10.10.16',''); +INSERT INTO conferences values('8600049','10.10.10.16',''); + +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600051','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600052','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600053','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600054','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600055','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600056','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600057','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600058','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600059','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600060','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600061','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600062','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600063','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600064','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600065','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600066','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600067','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600068','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600069','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600070','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600071','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600072','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600073','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600074','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600075','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600076','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600077','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600078','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600079','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600080','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600081','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600082','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600083','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600084','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600085','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600086','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600087','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600088','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600089','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600090','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600091','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600092','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600093','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600094','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600095','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600096','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600097','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600098','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600099','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600100','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600101','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600102','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600103','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600104','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600105','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600106','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600107','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600108','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600109','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600110','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600111','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600112','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600113','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600114','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600115','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600116','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600117','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600118','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600119','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600120','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600121','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600122','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600123','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600124','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600125','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600126','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600127','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600128','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600129','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600130','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600131','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600132','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600133','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600134','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600135','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600136','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600137','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600138','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600139','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600140','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600141','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600142','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600143','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600144','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600145','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600146','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600147','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600148','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600149','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600150','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600151','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600152','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600153','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600154','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600155','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600156','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600157','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600158','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600159','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600160','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600161','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600162','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600163','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600164','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600165','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600166','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600167','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600168','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600169','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600170','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600171','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600172','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600173','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600174','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600175','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600176','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600177','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600178','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600179','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600180','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600181','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600182','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600183','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600184','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600185','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600186','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600187','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600188','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600189','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600190','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600191','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600192','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600193','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600194','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600195','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600196','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600197','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600198','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600199','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600200','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600201','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600202','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600203','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600204','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600205','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600206','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600207','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600208','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600209','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600210','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600211','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600212','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600213','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600214','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600215','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600216','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600217','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600218','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600219','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600220','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600221','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600222','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600223','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600224','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600225','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600226','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600227','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600228','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600229','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600230','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600231','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600232','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600233','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600234','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600235','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600236','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600237','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600238','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600239','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600240','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600241','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600242','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600243','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600244','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600245','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600246','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600247','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600248','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600249','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600250','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600251','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600252','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600253','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600254','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600255','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600256','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600257','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600258','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600259','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600260','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600261','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600262','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600263','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600264','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600265','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600266','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600267','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600268','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600269','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600270','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600271','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600272','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600273','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600274','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600275','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600276','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600277','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600278','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600279','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600280','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600281','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600282','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600283','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600284','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600285','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600286','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600287','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600288','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600289','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600290','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600291','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600292','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600293','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600294','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600295','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600296','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600297','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600298','10.10.10.16'); +INSERT INTO vicidial_conferences(conf_exten,server_ip) values('8600299','10.10.10.16'); diff --git a/agc_2-X/branches/agc_2.2.0/extras/single_channelbank_phones.sql b/agc_2-X/branches/agc_2.2.0/extras/single_channelbank_phones.sql new file mode 100644 index 00000000..0c1dbb14 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/single_channelbank_phones.sql @@ -0,0 +1,49 @@ +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('1-1','1901','1901','10.10.10.15','1901','test','ACTIVE','Y','Chanelbank','station 1','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('2-1','1902','1902','10.10.10.15','1902','test','ACTIVE','Y','Chanelbank','station 2','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('3-1','1903','1903','10.10.10.15','1903','test','ACTIVE','Y','Chanelbank','station 3','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('4-1','1904','1904','10.10.10.15','1904','test','ACTIVE','Y','Chanelbank','station 4','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('5-1','1905','1905','10.10.10.15','1905','test','ACTIVE','Y','Chanelbank','station 5','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('6-1','1906','1906','10.10.10.15','1906','test','ACTIVE','Y','Chanelbank','station 6','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('7-1','1907','1907','10.10.10.15','1907','test','ACTIVE','Y','Chanelbank','station 7','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('8-1','1908','1908','10.10.10.15','1908','test','ACTIVE','Y','Chanelbank','station 8','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('9-1','1909','1909','10.10.10.15','1909','test','ACTIVE','Y','Chanelbank','station 9','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('10-1','1910','1910','10.10.10.15','1910','test','ACTIVE','Y','Chanelbank','station 10','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('11-1','1911','1911','10.10.10.15','1911','test','ACTIVE','Y','Chanelbank','station 11','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('12-1','1912','1912','10.10.10.15','1912','test','ACTIVE','Y','Chanelbank','station 12','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('13-1','1913','1913','10.10.10.15','1913','test','ACTIVE','Y','Chanelbank','station 13','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('14-1','1914','1914','10.10.10.15','1914','test','ACTIVE','Y','Chanelbank','station 14','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('15-1','1915','1915','10.10.10.15','1915','test','ACTIVE','Y','Chanelbank','station 15','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('16-1','1916','1916','10.10.10.15','1916','test','ACTIVE','Y','Chanelbank','station 16','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('17-1','1917','1917','10.10.10.15','1917','test','ACTIVE','Y','Chanelbank','station 17','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('18-1','1918','1918','10.10.10.15','1918','test','ACTIVE','Y','Chanelbank','station 18','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('19-1','1919','1919','10.10.10.15','1919','test','ACTIVE','Y','Chanelbank','station 19','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('20-1','1920','1920','10.10.10.15','1920','test','ACTIVE','Y','Chanelbank','station 20','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('21-1','1921','1921','10.10.10.15','1921','test','ACTIVE','Y','Chanelbank','station 21','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('22-1','1922','1922','10.10.10.15','1922','test','ACTIVE','Y','Chanelbank','station 22','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('23-1','1923','1923','10.10.10.15','1923','test','ACTIVE','Y','Chanelbank','station 23','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('24-1','1924','1924','10.10.10.15','1924','test','ACTIVE','Y','Chanelbank','station 24','Zap','-5','0000000000'); + +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('25-1','1925','1925','10.10.10.15','1925','test','ACTIVE','Y','Chanelbank','station 25','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('26-1','1926','1926','10.10.10.15','1926','test','ACTIVE','Y','Chanelbank','station 26','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('27-1','1927','1927','10.10.10.15','1927','test','ACTIVE','Y','Chanelbank','station 27','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('28-1','1928','1928','10.10.10.15','1928','test','ACTIVE','Y','Chanelbank','station 28','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('29-1','1929','1929','10.10.10.15','1929','test','ACTIVE','Y','Chanelbank','station 29','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('30-1','1930','1930','10.10.10.15','1930','test','ACTIVE','Y','Chanelbank','station 30','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('31-1','1931','1931','10.10.10.15','1931','test','ACTIVE','Y','Chanelbank','station 31','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('32-1','1932','1932','10.10.10.15','1932','test','ACTIVE','Y','Chanelbank','station 32','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('33-1','1933','1933','10.10.10.15','1933','test','ACTIVE','Y','Chanelbank','station 33','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('34-1','1934','1934','10.10.10.15','1934','test','ACTIVE','Y','Chanelbank','station 34','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('35-1','1935','1935','10.10.10.15','1935','test','ACTIVE','Y','Chanelbank','station 35','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('36-1','1936','1936','10.10.10.15','1936','test','ACTIVE','Y','Chanelbank','station 36','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('37-1','1937','1937','10.10.10.15','1937','test','ACTIVE','Y','Chanelbank','station 37','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('38-1','1938','1938','10.10.10.15','1938','test','ACTIVE','Y','Chanelbank','station 38','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('39-1','1939','1939','10.10.10.15','1939','test','ACTIVE','Y','Chanelbank','station 39','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('40-1','1940','1940','10.10.10.15','1940','test','ACTIVE','Y','Chanelbank','station 40','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('41-1','1941','1941','10.10.10.15','1941','test','ACTIVE','Y','Chanelbank','station 41','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('42-1','1942','1942','10.10.10.15','1942','test','ACTIVE','Y','Chanelbank','station 42','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('43-1','1943','1943','10.10.10.15','1943','test','ACTIVE','Y','Chanelbank','station 43','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('44-1','1944','1944','10.10.10.15','1944','test','ACTIVE','Y','Chanelbank','station 44','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('45-1','1945','1945','10.10.10.15','1945','test','ACTIVE','Y','Chanelbank','station 45','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('46-1','1946','1946','10.10.10.15','1946','test','ACTIVE','Y','Chanelbank','station 46','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('47-1','1947','1947','10.10.10.15','1947','test','ACTIVE','Y','Chanelbank','station 47','Zap','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('48-1','1948','1948','10.10.10.15','1948','test','ACTIVE','Y','Chanelbank','station 48','Zap','-5','0000000000'); diff --git a/agc_2-X/branches/agc_2.2.0/extras/sip-iax_phones.sql b/agc_2-X/branches/agc_2.2.0/extras/sip-iax_phones.sql new file mode 100644 index 00000000..5a8c36dc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/sip-iax_phones.sql @@ -0,0 +1,106 @@ +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc100','100','100','10.10.10.15','100','test','ACTIVE','Y','CCagent','station 100','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc101','101','101','10.10.10.15','101','test','ACTIVE','Y','CCagent','station 101','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc102','102','102','10.10.10.15','102','test','ACTIVE','Y','CCagent','station 102','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc103','103','103','10.10.10.15','103','test','ACTIVE','Y','CCagent','station 103','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc104','104','104','10.10.10.15','104','test','ACTIVE','Y','CCagent','station 104','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc105','105','105','10.10.10.15','105','test','ACTIVE','Y','CCagent','station 105','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc106','106','106','10.10.10.15','106','test','ACTIVE','Y','CCagent','station 106','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc107','107','107','10.10.10.15','107','test','ACTIVE','Y','CCagent','station 107','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc108','108','108','10.10.10.15','108','test','ACTIVE','Y','CCagent','station 108','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc109','109','109','10.10.10.15','109','test','ACTIVE','Y','CCagent','station 109','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc110','110','110','10.10.10.15','110','test','ACTIVE','Y','CCagent','station 110','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc111','111','111','10.10.10.15','111','test','ACTIVE','Y','CCagent','station 111','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc112','112','112','10.10.10.15','112','test','ACTIVE','Y','CCagent','station 112','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc113','113','113','10.10.10.15','113','test','ACTIVE','Y','CCagent','station 113','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc114','114','114','10.10.10.15','114','test','ACTIVE','Y','CCagent','station 114','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc115','115','115','10.10.10.15','115','test','ACTIVE','Y','CCagent','station 115','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc116','116','116','10.10.10.15','116','test','ACTIVE','Y','CCagent','station 116','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc117','117','117','10.10.10.15','117','test','ACTIVE','Y','CCagent','station 117','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc118','118','118','10.10.10.15','118','test','ACTIVE','Y','CCagent','station 118','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc119','119','119','10.10.10.15','119','test','ACTIVE','Y','CCagent','station 119','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc120','120','120','10.10.10.15','120','test','ACTIVE','Y','CCagent','station 120','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc121','121','121','10.10.10.15','121','test','ACTIVE','Y','CCagent','station 121','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc122','122','122','10.10.10.15','122','test','ACTIVE','Y','CCagent','station 122','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc123','123','123','10.10.10.15','123','test','ACTIVE','Y','CCagent','station 123','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc124','124','124','10.10.10.15','124','test','ACTIVE','Y','CCagent','station 124','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc125','125','125','10.10.10.15','125','test','ACTIVE','Y','CCagent','station 125','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc126','126','126','10.10.10.15','126','test','ACTIVE','Y','CCagent','station 126','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc127','127','127','10.10.10.15','127','test','ACTIVE','Y','CCagent','station 127','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc128','128','128','10.10.10.15','128','test','ACTIVE','Y','CCagent','station 128','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc129','129','129','10.10.10.15','129','test','ACTIVE','Y','CCagent','station 129','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc130','130','130','10.10.10.15','130','test','ACTIVE','Y','CCagent','station 130','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc131','131','131','10.10.10.15','131','test','ACTIVE','Y','CCagent','station 131','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc132','132','132','10.10.10.15','132','test','ACTIVE','Y','CCagent','station 132','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc133','133','133','10.10.10.15','133','test','ACTIVE','Y','CCagent','station 133','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc134','134','134','10.10.10.15','134','test','ACTIVE','Y','CCagent','station 134','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc135','135','135','10.10.10.15','135','test','ACTIVE','Y','CCagent','station 135','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc136','136','136','10.10.10.15','136','test','ACTIVE','Y','CCagent','station 136','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc137','137','137','10.10.10.15','137','test','ACTIVE','Y','CCagent','station 137','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc138','138','138','10.10.10.15','138','test','ACTIVE','Y','CCagent','station 138','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc139','139','139','10.10.10.15','139','test','ACTIVE','Y','CCagent','station 139','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc140','140','140','10.10.10.15','140','test','ACTIVE','Y','CCagent','station 140','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc141','141','141','10.10.10.15','141','test','ACTIVE','Y','CCagent','station 141','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc142','142','142','10.10.10.15','142','test','ACTIVE','Y','CCagent','station 142','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc143','143','143','10.10.10.15','143','test','ACTIVE','Y','CCagent','station 143','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc144','144','144','10.10.10.15','144','test','ACTIVE','Y','CCagent','station 144','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc145','145','145','10.10.10.15','145','test','ACTIVE','Y','CCagent','station 145','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc146','146','146','10.10.10.15','146','test','ACTIVE','Y','CCagent','station 146','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc147','147','147','10.10.10.15','147','test','ACTIVE','Y','CCagent','station 147','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc148','148','148','10.10.10.15','148','test','ACTIVE','Y','CCagent','station 148','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc149','149','149','10.10.10.15','149','test','ACTIVE','Y','CCagent','station 149','SIP','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc150','150','150','10.10.10.15','150','test','ACTIVE','Y','CCagent','station 150','SIP','-5','0000000000'); + + +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc300','300','300','10.10.10.15','300','test','ACTIVE','Y','CCagent','station 300','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc301','301','301','10.10.10.15','301','test','ACTIVE','Y','CCagent','station 301','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc302','302','302','10.10.10.15','302','test','ACTIVE','Y','CCagent','station 302','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc303','303','303','10.10.10.15','303','test','ACTIVE','Y','CCagent','station 303','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc304','304','304','10.10.10.15','304','test','ACTIVE','Y','CCagent','station 304','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc305','305','305','10.10.10.15','305','test','ACTIVE','Y','CCagent','station 305','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc306','306','306','10.10.10.15','306','test','ACTIVE','Y','CCagent','station 306','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc307','307','307','10.10.10.15','307','test','ACTIVE','Y','CCagent','station 307','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc308','308','308','10.10.10.15','308','test','ACTIVE','Y','CCagent','station 308','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc309','309','309','10.10.10.15','309','test','ACTIVE','Y','CCagent','station 309','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc310','310','310','10.10.10.15','310','test','ACTIVE','Y','CCagent','station 310','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc311','311','311','10.10.10.15','311','test','ACTIVE','Y','CCagent','station 311','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc312','312','312','10.10.10.15','312','test','ACTIVE','Y','CCagent','station 312','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc313','313','313','10.10.10.15','313','test','ACTIVE','Y','CCagent','station 313','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc314','314','314','10.10.10.15','314','test','ACTIVE','Y','CCagent','station 314','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc315','315','315','10.10.10.15','315','test','ACTIVE','Y','CCagent','station 315','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc316','316','316','10.10.10.15','316','test','ACTIVE','Y','CCagent','station 316','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc317','317','317','10.10.10.15','317','test','ACTIVE','Y','CCagent','station 317','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc318','318','318','10.10.10.15','318','test','ACTIVE','Y','CCagent','station 318','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc319','319','319','10.10.10.15','319','test','ACTIVE','Y','CCagent','station 319','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc320','320','320','10.10.10.15','320','test','ACTIVE','Y','CCagent','station 320','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc321','321','321','10.10.10.15','321','test','ACTIVE','Y','CCagent','station 321','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc322','322','322','10.10.10.15','322','test','ACTIVE','Y','CCagent','station 322','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc323','323','323','10.10.10.15','323','test','ACTIVE','Y','CCagent','station 323','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc324','324','324','10.10.10.15','324','test','ACTIVE','Y','CCagent','station 324','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc325','325','325','10.10.10.15','325','test','ACTIVE','Y','CCagent','station 325','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc326','326','326','10.10.10.15','326','test','ACTIVE','Y','CCagent','station 326','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc327','327','327','10.10.10.15','327','test','ACTIVE','Y','CCagent','station 327','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc328','328','328','10.10.10.15','328','test','ACTIVE','Y','CCagent','station 328','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc329','329','329','10.10.10.15','329','test','ACTIVE','Y','CCagent','station 329','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc330','330','330','10.10.10.15','330','test','ACTIVE','Y','CCagent','station 330','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc331','331','331','10.10.10.15','331','test','ACTIVE','Y','CCagent','station 331','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc332','332','332','10.10.10.15','332','test','ACTIVE','Y','CCagent','station 332','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc333','333','333','10.10.10.15','333','test','ACTIVE','Y','CCagent','station 333','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc334','334','334','10.10.10.15','334','test','ACTIVE','Y','CCagent','station 334','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc335','335','335','10.10.10.15','335','test','ACTIVE','Y','CCagent','station 335','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc336','336','336','10.10.10.15','336','test','ACTIVE','Y','CCagent','station 336','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc337','337','337','10.10.10.15','337','test','ACTIVE','Y','CCagent','station 337','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc338','338','338','10.10.10.15','338','test','ACTIVE','Y','CCagent','station 338','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc339','339','339','10.10.10.15','339','test','ACTIVE','Y','CCagent','station 339','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc340','340','340','10.10.10.15','340','test','ACTIVE','Y','CCagent','station 340','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc341','341','341','10.10.10.15','341','test','ACTIVE','Y','CCagent','station 341','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc342','342','342','10.10.10.15','342','test','ACTIVE','Y','CCagent','station 342','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc343','343','343','10.10.10.15','343','test','ACTIVE','Y','CCagent','station 343','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc344','344','344','10.10.10.15','344','test','ACTIVE','Y','CCagent','station 344','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc345','345','345','10.10.10.15','345','test','ACTIVE','Y','CCagent','station 345','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc346','346','346','10.10.10.15','346','test','ACTIVE','Y','CCagent','station 346','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc347','347','347','10.10.10.15','347','test','ACTIVE','Y','CCagent','station 347','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc348','348','348','10.10.10.15','348','test','ACTIVE','Y','CCagent','station 348','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc349','349','349','10.10.10.15','349','test','ACTIVE','Y','CCagent','station 349','IAX2','-5','0000000000'); +INSERT INTO phones (extension,dialplan_number,voicemail_id,server_ip,login,pass,status,active,phone_type,fullname,protocol,local_gmt,outbound_cid) values('cc350','350','350','10.10.10.15','350','test','ACTIVE','Y','CCagent','station 350','IAX2','-5','0000000000'); + + diff --git a/agc_2-X/branches/agc_2.2.0/extras/sphinxNA.zip b/agc_2-X/branches/agc_2.2.0/extras/sphinxNA.zip new file mode 100644 index 00000000..08b53562 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/sphinxNA.zip differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/strip_color.sh b/agc_2-X/branches/agc_2.2.0/extras/strip_color.sh new file mode 100644 index 00000000..575f6e0c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/strip_color.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +FILE=$1 + +cat $FILE | sed "s/\[.;..;..m//g" | tr -d "\033" > $FILE.nocolor \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.csv b/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.csv new file mode 100644 index 00000000..cccbfd2e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.csv @@ -0,0 +1,14 @@ +100001,10001,129,1,7275551213,MR,John,Q,Public01,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100002,10002,129,1,3125551213,MR,John,Q,Public02,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,3125551212,test@test.com,nothing,COMMENTS +100003,10003,129,1,3035551213,MR,John,Q,Public03,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,3035551212,test@test.com,nothing,COMMENTS +100004,10004,129,1,8585551213,MR,John,Q,Public04,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100005,10005,129,44,7275551213,MR,John,Q,Public05,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100006,10006,129,61,727555121,MR,John,Q,Public06,249 MUNDON ROAD,,,MALDON,NT,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100007,10007,129,61,727555121,MR,John,Q,Public07,249 MUNDON ROAD,,,MALDON,NS,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100008,10008,129,52,2485551213,MR,John,Q,Public08,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100009,10009,129,1,7275551213,MR,John,Q,Public09,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100010,10010,129,1,8585551213,MR,John,Q,Public10,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100011,10011,129,1,3035551213,MR,John,Q,Public11,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,3035551212,test@test.com,nothing,COMMENTS +100012,10012,129,1,3125551213,MR,John,Q,Public12,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,3125551212,test@test.com,nothing,COMMENTS +100013,10013,129,1,7275551213,MR,John,Q,Public13,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS +100014,10014,129,1,7275551213,MR,John,Q,Public14,249 MUNDON ROAD,,,MALDON,FL,,33709,USA,M,1970-01-01,7275551212,test@test.com,nothing,COMMENTS diff --git a/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.txt b/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.txt new file mode 100644 index 00000000..8c1cb742 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.txt @@ -0,0 +1,14 @@ +100001|10001|129|1|7275551213|MR|John|Q|Public01|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100002|10002|129|1|3125551213|MR|John|Q|Public02|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3125551212|test@test.com|nothing|COMMENTS +100003|10003|129|1|3035551213|MR|John|Q|Public03|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3035551212|test@test.com|nothing|COMMENTS +100004|10004|129|1|8585551213|MR|John|Q|Public04|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100005|10005|129|44|7275551213|MR|John|Q|Public05|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100006|10006|129|61|727555121|MR|John|Q|Public06|249 MUNDON ROAD|||MALDON|NT||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100007|10007|129|61|727555121|MR|John|Q|Public07|249 MUNDON ROAD|||MALDON|NS||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100008|10008|129|52|2485551213|MR|John|Q|Public08|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100009|10009|129|1|7275551213|MR|John|Q|Public09|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100010|10010|129|1|8585551213|MR|John|Q|Public10|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100011|10011|129|1|3035551213|MR|John|Q|Public11|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3035551212|test@test.com|nothing|COMMENTS +100012|10012|129|1|3125551213|MR|John|Q|Public12|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3125551212|test@test.com|nothing|COMMENTS +100013|10013|129|1|7275551213|MR|John|Q|Public13|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS +100014|10014|129|1|7275551213|MR|John|Q|Public14|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS diff --git a/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.xls b/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.xls new file mode 100644 index 00000000..332ac3c1 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_file.xls differ diff --git a/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_fileRANK-OWNER.txt b/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_fileRANK-OWNER.txt new file mode 100644 index 00000000..de94100c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/testMULTI_VICIDIAL_lead_fileRANK-OWNER.txt @@ -0,0 +1,14 @@ +100001|10001|129|1|7275551213|MR|John|Q|Public01|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|1|6666 +100002|10002|129|1|3125551213|MR|John|Q|Public02|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3125551212|test@test.com|nothing|COMMENTS|2|6666 +100003|10003|129|1|3035551213|MR|John|Q|Public03|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3035551212|test@test.com|nothing|COMMENTS|3|6666 +100004|10004|129|1|8585551213|MR|John|Q|Public04|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|4|6666 +100005|10005|129|44|7275551213|MR|John|Q|Public05|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|5|6666 +100006|10006|129|61|727555121|MR|John|Q|Public06|249 MUNDON ROAD|||MALDON|NT||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|6|6666 +100007|10007|129|61|727555121|MR|John|Q|Public07|249 MUNDON ROAD|||MALDON|NS||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|7|6666 +100008|10008|129|52|2485551213|MR|John|Q|Public08|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|8|6666 +100009|10009|129|1|7275551213|MR|John|Q|Public09|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|9|6666 +100010|10010|129|1|8585551213|MR|John|Q|Public10|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|9|ADMIN +100011|10011|129|1|3035551213|MR|John|Q|Public11|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3035551212|test@test.com|nothing|COMMENTS|9|1000 +100012|10012|129|1|3125551213|MR|John|Q|Public12|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|3125551212|test@test.com|nothing|COMMENTS|11|1000 +100013|10013|129|1|7275551213|MR|John|Q|Public13|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|15|ADMIN +100014|10014|129|1|7275551213|MR|John|Q|Public14|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|99|ADMIN diff --git a/agc_2-X/branches/agc_2.2.0/extras/testUPDATE_lead_file.txt b/agc_2-X/branches/agc_2.2.0/extras/testUPDATE_lead_file.txt new file mode 100644 index 00000000..9a6a959a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/testUPDATE_lead_file.txt @@ -0,0 +1,14 @@ +100001|NOCALL +100002|NEW +100003|DC +100004|NOCALL +100005|NEW +100006|NEW +100007|NEW +100008|NEW +100009|NEW +100010|NOCALL +100011|NEW +100012|NOCALL +100013|NEW +100014|NEW diff --git a/agc_2-X/branches/agc_2.2.0/extras/test_VICIDIAL_lead_file.txt b/agc_2-X/branches/agc_2.2.0/extras/test_VICIDIAL_lead_file.txt new file mode 100644 index 00000000..ab1fcd4d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/test_VICIDIAL_lead_file.txt @@ -0,0 +1,14 @@ +100001|10001|107|1|7275551213|MR|I|Q|SMITH01|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|1|Southeast|| +100002|10002|107|1|7275551213|MR|I|Q|SMITH02|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS||||7275551212_1_work!7275551213_61_sister house!7275551214_44_neighbor +100003|10003|107|1|7275551213|MR|I|Q|SMITH03|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS||||7275551212_1_work +100004|10004|107|1|7275551213|MR|I|Q|SMITH04|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS||||7275551212_1_work!7275551213_61_sister house +100005|10005|107|1|7275551213|MR|I|Q|SMITH05|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS||||7275551212__airport +100006|10006|107|1|7275551213|MR|I|Q|SMITH06|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS||||7275551212__!7275551213__summer home +100007|10007|107|1|7275551213|MR|I|Q|SMITH07|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|||| +100008|10008|107|1|7275551213|MR|I|Q|SMITH08|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS||||7275551212_1_!7275551213_1_garage +100009|10009|107|1|7275551213|MR|I|Q|SMITH09|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|||| +100010|10010|107|1|7275551213|MR|I|Q|SMITH10|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|||| +100011|10011|107|1|7275551213|MR|I|Q|SMITH11|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|||| +100012|10012|107|1|7275551213|MR|I|Q|SMITH12|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|||| +100013|10013|107|1|7275551213|MR|I|Q|SMITH13|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|||| +100014|10014|107|1|7275551213|MR|I|Q|SMITH14|249 MUNDON ROAD|||MALDON|FL||33709|USA|M|1970-01-01|7275551212|test@test.com|nothing|COMMENTS|||| diff --git a/agc_2-X/branches/agc_2.2.0/extras/test_call.pl b/agc_2-X/branches/agc_2.2.0/extras/test_call.pl new file mode 100644 index 00000000..8f9474de --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/test_call.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +use DBI; + +# command line arguments +my $phone_number = shift; +my $exten = shift; +my $cid_name = shift; +my $cid_num = shift; + +# check if they typed --help +if (($phone_number eq "--help") || ($exten eq "--help") || ($cid_name eq "--help") || ( $cid_num eq "--help")) { + print "useage: test_call.pl phone_number extension caller_id_name caller_id_number\n"; + print "example: test_call.pl 917275551212 600 test 7775551212\n"; + exit; +} + +# get the current time +my ($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";} + +my $date = "$year-$mon-$mday $hour:$min:$sec"; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +# read in the conf file +open(CONFIG, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@config = ; +close(CONFIG); +$i=0; +foreach(@config) { + $line = $config[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ($line =~ /^VARserver_ip/) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ($line =~ /^VARDB_server/) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ($line =~ /^VARDB_database/) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ($line =~ /^VARDB_user/) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ($line =~ /^VARDB_pass/) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ($line =~ /^VARDB_port/) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; +} + +$dbhB = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +# Insert our call record +$stmtB = "INSERT INTO vicidial_manager values( '', '', '$date', 'NEW', 'N', '$VARserver_ip', '', 'Originate', 'TESTCIDBLASTCALL0124', 'Channel: Local/$phone_number@default', 'Context; default', 'Exten: $exten', 'Priority: 1', 'Callerid: \"$cid_name\" <$cid_num>', '', '', '', '', '' );"; +print $stmtB . "\n"; +$sthB = $dbhB->prepare($stmtB) or die "preparing: ",$dbhB->errstr; +$sthB->execute or die "executing: $stmtB ", $dbhB->errstr; +$sthB->finish(); +$dbhB->disconnect(); + + diff --git a/agc_2-X/branches/agc_2.2.0/extras/upgrade_2.0.5.sql b/agc_2-X/branches/agc_2.2.0/extras/upgrade_2.0.5.sql new file mode 100644 index 00000000..590bbf0c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/upgrade_2.0.5.sql @@ -0,0 +1,795 @@ +ALTER TABLE vicidial_closer_log ADD xfercallid INT(9) UNSIGNED; + +ALTER TABLE vicidial_campaign_server_stats ENGINE=HEAP; + +ALTER TABLE live_channels ENGINE=HEAP; + +ALTER TABLE live_sip_channels ENGINE=HEAP; + +ALTER TABLE parked_channels ENGINE=HEAP; + +ALTER TABLE server_updater ENGINE=HEAP; + +ALTER TABLE web_client_sessions ENGINE=HEAP; + + +ALTER TABLE vicidial_campaigns MODIFY lead_order VARCHAR(30); + +DROP index user on vicidial_users; +ALTER TABLE vicidial_users MODIFY user VARCHAR(20) NOT NULL; +CREATE UNIQUE INDEX user ON vicidial_users (user); +ALTER TABLE vicidial_users MODIFY pass VARCHAR(20) NOT NULL; +ALTER TABLE vicidial_users MODIFY user_level TINYINT(2) NOT NULL default '1'; + + CREATE TABLE vicidial_user_closer_log ( +user VARCHAR(20), +campaign_id VARCHAR(20), +event_date DATETIME, +blended ENUM('1','0') default '0', +closer_campaigns TEXT, +index (user), +index (event_date) +); + +ALTER TABLE vicidial_users ADD qc_enabled ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD qc_user_level INT(2) default '1'; +ALTER TABLE vicidial_users ADD qc_pass ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD qc_finish ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD qc_commit ENUM('1','0') default '0'; + +ALTER TABLE vicidial_user_groups ADD qc_allowed_campaigns TEXT; +ALTER TABLE vicidial_user_groups ADD qc_allowed_inbound_groups TEXT; + +ALTER TABLE system_settings ADD db_schema_version INT(8) UNSIGNED default '0'; + +UPDATE system_settings SET db_schema_version='1074', version='2.0.5b0.5'; + +ALTER TABLE live_inbound MODIFY uniqueid VARCHAR(20) NOT NULL; +ALTER TABLE live_inbound_log MODIFY uniqueid VARCHAR(20) NOT NULL; +ALTER TABLE live_inbound_log MODIFY uniqueid VARCHAR(20) NOT NULL; +ALTER TABLE vicidial_manager MODIFY uniqueid VARCHAR(20) NOT NULL; +ALTER TABLE vicidial_live_agents MODIFY uniqueid VARCHAR(20) NOT NULL; +ALTER TABLE vicidial_auto_calls MODIFY uniqueid VARCHAR(20) NOT NULL; +ALTER TABLE call_log DROP PRIMARY KEY; +ALTER TABLE call_log DROP INDEX uniqueid; +ALTER TABLE call_log MODIFY uniqueid VARCHAR(20) PRIMARY KEY UNIQUE NOT NULL; +ALTER TABLE park_log DROP PRIMARY KEY; +ALTER TABLE park_log DROP INDEX uniqueid; +ALTER TABLE park_log MODIFY uniqueid VARCHAR(20) PRIMARY KEY UNIQUE NOT NULL; +ALTER TABLE vicidial_log DROP PRIMARY KEY; +ALTER TABLE vicidial_log DROP INDEX uniqueid; +ALTER TABLE vicidial_log MODIFY uniqueid VARCHAR(20) PRIMARY KEY UNIQUE NOT NULL; + +UPDATE system_settings SET db_schema_version='1075'; + +ALTER TABLE vicidial_auto_calls ADD queue_priority TINYINT(2) default '0'; +ALTER TABLE vicidial_campaigns ADD queue_priority TINYINT(2) default '50'; +ALTER TABLE vicidial_inbound_groups ADD queue_priority TINYINT(2) default '0'; + +UPDATE system_settings SET db_schema_version='1076'; + +ALTER TABLE vicidial_inbound_groups CHANGE drop_message drop_action ENUM('HANGUP','MESSAGE','VOICEMAIL','IN_GROUP') default 'MESSAGE'; +ALTER TABLE vicidial_inbound_groups ADD drop_inbound_group VARCHAR(20) default '---NONE---'; +UPDATE vicidial_inbound_groups SET drop_action='MESSAGE'; + +ALTER TABLE vicidial_campaigns CHANGE safe_harbor_message drop_action ENUM('HANGUP','MESSAGE','VOICEMAIL','IN_GROUP') default 'MESSAGE'; +ALTER TABLE vicidial_campaigns ADD drop_inbound_group VARCHAR(20) default '---NONE---'; +UPDATE vicidial_campaigns SET drop_action='MESSAGE'; + +UPDATE system_settings SET db_schema_version='1077'; + +ALTER TABLE vicidial_campaigns ADD qc_enabled ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD qc_statuses TEXT; +ALTER TABLE vicidial_campaigns ADD qc_lists TEXT; +ALTER TABLE vicidial_campaigns ADD campaign_shift_start_time VARCHAR(4) default '0900'; +ALTER TABLE vicidial_campaigns ADD campaign_shift_length VARCHAR(5) default '16:00'; +ALTER TABLE vicidial_campaigns ADD campaign_day_start_time VARCHAR(4) default '0100'; + +UPDATE system_settings SET db_schema_version='1078'; + +ALTER TABLE vicidial_campaigns ADD qc_web_form_address VARCHAR(255); +ALTER TABLE vicidial_campaigns ADD qc_script VARCHAR(10); + +UPDATE system_settings SET db_schema_version='1079'; + +ALTER TABLE vicidial_inbound_groups ADD ingroup_recording_override ENUM('DISABLED','NEVER','ONDEMAND','ALLCALLS','ALLFORCE') default 'DISABLED'; +ALTER TABLE vicidial_inbound_groups ADD ingroup_rec_filename VARCHAR(50) default 'NONE'; + +UPDATE system_settings SET db_schema_version='1080'; + + CREATE TABLE vicidial_qc_codes ( +code VARCHAR(8) PRIMARY KEY NOT NULL, +code_name VARCHAR(30) +); + +UPDATE system_settings SET db_schema_version='1081'; + + CREATE TABLE vicidial_agent_sph ( +campaign_group_id VARCHAR(20) NOT NULL, +stat_date DATE NOT NULL, +shift VARCHAR(20) NOT NULL, +role ENUM('FRONTER','CLOSER') default 'FRONTER', +user VARCHAR(20) NOT NULL, +calls MEDIUMINT(8) UNSIGNED default '0', +sales MEDIUMINT(8) UNSIGNED default '0', +login_sec MEDIUMINT(8) UNSIGNED default '0', +login_hours DECIMAL(5,2) DEFAULT '0.00', +sph DECIMAL(6,2) DEFAULT '0.00', +index (campaign_group_id), +index (stat_date) +); + +ALTER TABLE vicidial_log ADD term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','NONE') default 'NONE'; +ALTER TABLE vicidial_closer_log ADD term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','NONE') default 'NONE'; + +ALTER TABLE vicidial_inbound_groups MODIFY after_hours_action ENUM('HANGUP','MESSAGE','EXTENSION','VOICEMAIL','IN_GROUP') default 'MESSAGE'; +ALTER TABLE vicidial_inbound_groups ADD afterhours_xfer_group VARCHAR(20) default '---NONE---'; + +UPDATE system_settings SET db_schema_version='1082'; + + CREATE TABLE phones_alias ( +alias_id VARCHAR(20) NOT NULL UNIQUE PRIMARY KEY, +alias_name VARCHAR(50), +logins_list VARCHAR(255) +); + +UPDATE system_settings SET db_schema_version='1083'; + +ALTER TABLE system_settings ADD auto_user_add_value INT(9) UNSIGNED default '101'; +UPDATE system_settings SET auto_user_add_value='1101'; + + CREATE TABLE vicidial_shifts ( +shift_id VARCHAR(20) NOT NULL, +shift_name VARCHAR(50), +shift_start_time VARCHAR(4) default '0900', +shift_length VARCHAR(5) default '16:00', +shift_weekdays VARCHAR(7) default '0123456', +index (shift_id) +); + +ALTER TABLE vicidial_user_groups ADD group_shifts TEXT; + +UPDATE system_settings SET db_schema_version='1084'; + +CREATE INDEX lead_id ON vicidial_agent_log (lead_id); + +UPDATE system_settings SET db_schema_version='1085'; + + CREATE TABLE vicidial_timeclock_log ( +timeclock_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +event_epoch INT(10) UNSIGNED NOT NULL, +event_date DATETIME NOT NULL, +login_sec INT(10) UNSIGNED, +event VARCHAR(50) NOT NULL, +user VARCHAR(20) NOT NULL, +user_group VARCHAR(20) NOT NULL, +ip_address VARCHAR(15), +shift_id VARCHAR(20), +notes VARCHAR(255), +manager_user VARCHAR(20), +manager_ip VARCHAR(15), +event_datestamp TIMESTAMP NOT NULL, +tcid_link INT(9) UNSIGNED, +index (user) +); + + CREATE TABLE vicidial_timeclock_status ( +user VARCHAR(20) UNIQUE NOT NULL, +user_group VARCHAR(20) NOT NULL, +event_epoch INT(10) UNSIGNED, +event_date TIMESTAMP, +status VARCHAR(50), +ip_address VARCHAR(15), +shift_id VARCHAR(20), +index (user) +); + +UPDATE system_settings SET db_schema_version='1086'; + +ALTER TABLE vicidial_timeclock_log MODIFY event_date DATETIME; +ALTER TABLE vicidial_timeclock_log ADD event_datestamp TIMESTAMP NOT NULL; +ALTER TABLE vicidial_timeclock_log ADD tcid_link INT(9) UNSIGNED; + +UPDATE system_settings SET db_schema_version='1087'; + +ALTER TABLE vicidial_auto_calls MODIFY status ENUM('SENT','RINGING','LIVE','XFER','PAUSED','CLOSER','BUSY','DISCONNECT','IVR') default 'PAUSED'; + +UPDATE system_settings SET db_schema_version='1088'; + + CREATE TABLE vicidial_timeclock_audit_log ( +timeclock_id INT(9) UNSIGNED NOT NULL, +event_epoch INT(10) UNSIGNED NOT NULL, +event_date DATETIME NOT NULL, +login_sec INT(10) UNSIGNED, +event VARCHAR(50) NOT NULL, +user VARCHAR(20) NOT NULL, +user_group VARCHAR(20) NOT NULL, +ip_address VARCHAR(15), +shift_id VARCHAR(20), +event_datestamp TIMESTAMP NOT NULL, +tcid_link INT(9) UNSIGNED, +index (timeclock_id), +index (user) +); + +UPDATE system_settings SET db_schema_version='1089'; + +ALTER TABLE system_settings ADD timeclock_end_of_day VARCHAR(4) default '0000'; +ALTER TABLE system_settings ADD timeclock_last_reset_date DATE; + +UPDATE system_settings SET db_schema_version='1090'; + +ALTER TABLE vicidial_campaigns ADD survey_first_audio_file VARCHAR(50) default 'US_pol_survey_hello'; +ALTER TABLE vicidial_campaigns ADD survey_dtmf_digits VARCHAR(16) default '1238'; +ALTER TABLE vicidial_campaigns ADD survey_ni_digit VARCHAR(1) default '8'; +ALTER TABLE vicidial_campaigns ADD survey_opt_in_audio_file VARCHAR(50) default 'US_pol_survey_transfer'; +ALTER TABLE vicidial_campaigns ADD survey_ni_audio_file VARCHAR(50) default 'US_thanks_no_contact'; +ALTER TABLE vicidial_campaigns ADD survey_method ENUM('AGENT_XFER','VOICEMAIL','EXTENSION','HANGUP','CAMPREC_60_WAV') default 'AGENT_XFER'; +ALTER TABLE vicidial_campaigns ADD survey_no_response_action ENUM('OPTIN','OPTOUT') default 'OPTIN'; +ALTER TABLE vicidial_campaigns ADD survey_ni_status VARCHAR(6) default 'NI'; +ALTER TABLE vicidial_campaigns ADD survey_response_digit_map VARCHAR(255) default '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|'; +ALTER TABLE vicidial_campaigns ADD survey_xfer_exten VARCHAR(20) default '8300'; +ALTER TABLE vicidial_campaigns ADD survey_camp_record_dir VARCHAR(255) default '/home/survey'; + +INSERT INTO vicidial_statuses values('SVYEXT','Survey sent to Extension','N','N','UNDEFINED'); +INSERT INTO vicidial_statuses values('SVYVM','Survey sent to Voicemail','N','N','UNDEFINED'); +INSERT INTO vicidial_statuses values('SVYHU','Survey Hungup','N','N','UNDEFINED'); +INSERT INTO vicidial_statuses values('SVYREC','Survey sent to Record','N','N','UNDEFINED'); + +ALTER TABLE vicidial_users ADD add_timeclock_log ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD modify_timeclock_log ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD delete_timeclock_log ENUM('1','0') default '0'; + +UPDATE system_settings SET db_schema_version='1091'; + +CREATE INDEX user ON vicidial_agent_log (user); + +UPDATE system_settings SET db_schema_version='1092'; + +DROP TABLE vicidial_admin_log; + + CREATE TABLE vicidial_admin_log ( +admin_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +event_date DATETIME NOT NULL, +user VARCHAR(20) NOT NULL, +ip_address VARCHAR(15) NOT NULL, +event_section VARCHAR(30) NOT NULL, +event_type ENUM('ADD','COPY','LOAD','RESET','MODIFY','DELETE','SEARCH','LOGIN','LOGOUT','CLEAR','OTHER') default 'OTHER', +record_id VARCHAR(50) NOT NULL, +event_code VARCHAR(255) NOT NULL, +event_sql TEXT, +event_notes TEXT, +index (user), +index (event_section), +index (record_id) +); + +UPDATE system_settings SET db_schema_version='1093'; + +ALTER TABLE vicidial_live_agents ADD external_hangup VARCHAR(1) default ''; +ALTER TABLE vicidial_live_agents ADD external_status VARCHAR(6) default ''; + +ALTER TABLE vicidial_list MODIFY gender ENUM('M','F','U') default 'U'; + +ALTER TABLE system_settings ADD vdc_header_date_format VARCHAR(50) default 'MS_DASH_24HR 2008-06-24 23:59:59'; +ALTER TABLE system_settings ADD vdc_customer_date_format VARCHAR(50) default 'AL_TEXT_AMPM OCT 24, 2008 11:59:59 PM'; +ALTER TABLE system_settings ADD vdc_header_phone_format VARCHAR(50) default 'US_PARN (000)000-0000'; + +UPDATE system_settings SET db_schema_version='1094'; + +ALTER TABLE vicidial_campaigns MODIFY campaign_cid VARCHAR(20) default '0000000000'; + +UPDATE system_settings SET db_schema_version='1095'; + +ALTER TABLE vicidial_campaigns ADD disable_alter_custphone ENUM('Y','N') default 'Y'; + +ALTER TABLE vicidial_users ADD alter_custphone_override ENUM('NOT_ACTIVE','ALLOW_ALTER') default 'NOT_ACTIVE'; +ALTER TABLE vicidial_users ADD vdc_agent_api_access ENUM('0','1') default '0'; + +ALTER TABLE system_settings ADD vdc_agent_api_active ENUM('0','1') default '0'; + +UPDATE system_settings SET db_schema_version='1096'; + +ALTER TABLE vicidial_campaigns ADD display_queue_count ENUM('Y','N') default 'Y'; + +UPDATE system_settings SET db_schema_version='1097'; + +ALTER TABLE vicidial_list MODIFY source_id VARCHAR(50); + +ALTER TABLE recording_log ADD vicidial_id VARCHAR(20); +CREATE INDEX vicidial_id ON recording_log (vicidial_id); +ALTER TABLE recording_log MODIFY start_epoch INT(10) UNSIGNED; +ALTER TABLE recording_log MODIFY end_epoch INT(10) UNSIGNED; +ALTER TABLE recording_log MODIFY length_in_sec MEDIUMINT(8) UNSIGNED; + +ALTER TABLE system_settings ADD qc_last_pull_time DATETIME; + +UPDATE system_settings SET db_schema_version='1098'; + +ALTER TABLE vicidial_campaigns MODIFY manual_dial_list_id BIGINT(14) UNSIGNED default '998'; + +UPDATE system_settings SET db_schema_version='1099'; + +ALTER TABLE vicidial_list ADD last_local_call_time DATETIME; +CREATE INDEX last_local_call_time ON vicidial_list (last_local_call_time); + +UPDATE system_settings SET db_schema_version='1100'; + +INSERT INTO vicidial_shifts SET shift_id='24HRMIDNIGHT',shift_name='24 hours 7 days a week',shift_start_time='0000',shift_length='24:00',shift_weekdays='0123456'; + +ALTER TABLE vicidial_campaigns CHANGE campaign_shift_start_time qc_shift_id VARCHAR(20) default '24HRMIDNIGHT'; +ALTER TABLE vicidial_campaigns CHANGE campaign_shift_length qc_get_record_launch ENUM('NONE','SCRIPT','WEBFORM','QCSCRIPT','QCWEBFORM') default 'NONE'; +ALTER TABLE vicidial_campaigns CHANGE campaign_day_start_time qc_show_recording ENUM('Y','N') default 'Y'; +UPDATE vicidial_campaigns SET qc_shift_id='24HRMIDNIGHT'; +UPDATE vicidial_campaigns SET qc_get_record_launch='NONE'; +UPDATE vicidial_campaigns SET qc_show_recording='Y'; + +ALTER TABLE vicidial_inbound_groups ADD qc_enabled ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD qc_statuses TEXT; +ALTER TABLE vicidial_inbound_groups ADD qc_shift_id VARCHAR(20) default '24HRMIDNIGHT'; +ALTER TABLE vicidial_inbound_groups ADD qc_get_record_launch ENUM('NONE','SCRIPT','WEBFORM','QCSCRIPT','QCWEBFORM') default 'NONE'; +ALTER TABLE vicidial_inbound_groups ADD qc_show_recording ENUM('Y','N') default 'Y'; +ALTER TABLE vicidial_inbound_groups ADD qc_web_form_address VARCHAR(255); +ALTER TABLE vicidial_inbound_groups ADD qc_script VARCHAR(10); + +UPDATE system_settings SET qc_last_pull_time="2008-01-01"; + +UPDATE system_settings SET db_schema_version='1101'; + +ALTER TABLE vicidial_status_categories ADD sale_category ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_status_categories ADD dead_lead_category ENUM('Y','N') default 'N'; + +UPDATE system_settings SET db_schema_version='1102'; + +ALTER TABLE vicidial_campaigns ADD manual_dial_filter VARCHAR(50) default 'NONE'; +ALTER TABLE vicidial_campaigns ADD agent_clipboard_copy VARCHAR(50) default 'NONE'; + +UPDATE system_settings SET db_schema_version='1103'; + +CREATE TABLE vicidial_list_alt_phones ( +alt_phone_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +phone_code VARCHAR(10), +phone_number VARCHAR(18), +alt_phone_note VARCHAR(30), +alt_phone_count SMALLINT(5) UNSIGNED, +active ENUM('Y','N') default 'Y', +index (lead_id), +index (phone_number) +); + +ALTER TABLE vicidial_hopper MODIFY alt_dial VARCHAR(6) default 'NONE'; + +ALTER TABLE vicidial_auto_calls MODIFY alt_dial VARCHAR(6) default 'NONE'; + +ALTER TABLE vicidial_campaigns MODIFY auto_alt_dial ENUM('NONE','ALT_ONLY','ADDR3_ONLY','ALT_AND_ADDR3','ALT_AND_EXTENDED','ALT_AND_ADDR3_AND_EXTENDED','EXTENDED_ONLY') default 'NONE'; + +ALTER TABLE vicidial_log ADD alt_dial VARCHAR(6) default 'NONE'; + +ALTER TABLE vicidial_campaigns ADD agent_extended_alt_dial ENUM('Y','N') default 'N'; + +UPDATE system_settings SET db_schema_version='1104'; + +GRANT RELOAD ON *.* TO cron@'%'; +GRANT RELOAD ON *.* TO cron@localhost; + +flush privileges; + +ALTER TABLE vicidial_dnc MODIFY phone_number VARCHAR(18) NOT NULL; + +ALTER TABLE vicidial_list MODIFY phone_number VARCHAR(18) NOT NULL; + +ALTER TABLE vicidial_auto_calls MODIFY phone_number VARCHAR(18); + +ALTER TABLE vicidial_log MODIFY phone_number VARCHAR(18); + +ALTER TABLE vicidial_closer_log MODIFY phone_number VARCHAR(18); + +ALTER TABLE vicidial_xfer_log MODIFY phone_number VARCHAR(18); + +ALTER TABLE vicidial_list_pins MODIFY phone_number VARCHAR(18); + +ALTER TABLE vicidial_ivr MODIFY phone_number VARCHAR(18); + +ALTER TABLE vicidial_campaigns ADD use_campaign_dnc ENUM('Y','N') default 'N'; + +CREATE TABLE vicidial_campaign_dnc ( +phone_number VARCHAR(18) NOT NULL, +campaign_id VARCHAR(8) NOT NULL, +index (phone_number), +UNIQUE INDEX phonecamp (phone_number, campaign_id) +); + +UPDATE system_settings SET db_schema_version='1105'; + +ALTER TABLE vicidial_conferences ADD leave_3way ENUM('0','1') default '0'; +ALTER TABLE vicidial_conferences ADD leave_3way_datetime DATETIME; + +UPDATE system_settings SET db_schema_version='1106'; + +CREATE UNIQUE INDEX serverconf on vicidial_conferences (server_ip, conf_exten); + +CREATE INDEX campaign_id on vicidial_closer_log (campaign_id); + +ALTER TABLE vicidial_inbound_groups ADD play_place_in_line ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD play_estimate_hold_time ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD hold_time_option ENUM('NONE','EXTENSION','VOICEMAIL','IN_GROUP','CALLERID_CALLBACK','DROP_ACTION') default 'NONE'; +ALTER TABLE vicidial_inbound_groups ADD hold_time_option_seconds SMALLINT(5) default '360'; +ALTER TABLE vicidial_inbound_groups ADD hold_time_option_exten VARCHAR(20) default '8300'; +ALTER TABLE vicidial_inbound_groups ADD hold_time_option_voicemail VARCHAR(20) default ''; +ALTER TABLE vicidial_inbound_groups ADD hold_time_option_xfer_group VARCHAR(20) default '---NONE---'; +ALTER TABLE vicidial_inbound_groups ADD hold_time_option_callback_filename VARCHAR(50) default 'vm-hangup'; +ALTER TABLE vicidial_inbound_groups ADD hold_time_option_callback_list_id BIGINT(14) UNSIGNED default '999'; +ALTER TABLE vicidial_inbound_groups ADD hold_recall_xfer_group VARCHAR(20) default '---NONE---'; +ALTER TABLE vicidial_inbound_groups ADD no_delay_call_route ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD play_welcome_message ENUM('ALWAYS','NEVER','IF_WAIT_ONLY','YES_UNLESS_NODELAY') default 'ALWAYS'; + +INSERT INTO vicidial_inbound_groups(group_id,group_name,group_color,active) values('AGENTDIRECT','Single Agent Direct Queue','white','Y'); + +CREATE TABLE vicidial_inbound_dids ( +did_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +did_pattern VARCHAR(50) NOT NULL, +did_description VARCHAR(50), +did_active ENUM('Y','N') default 'Y', +did_route ENUM('EXTEN','VOICEMAIL','AGENT','PHONE','IN_GROUP') default 'EXTEN', +extension VARCHAR(50) default '9998811112', +exten_context VARCHAR(50) default 'default', +voicemail_ext VARCHAR(10), +phone VARCHAR(100), +server_ip VARCHAR(15), +user VARCHAR(20), +user_unavailable_action ENUM('IN_GROUP','EXTEN','VOICEMAIL','PHONE') default 'VOICEMAIL', +user_route_settings_ingroup VARCHAR(20) default 'AGENTDIRECT', +group_id VARCHAR(20), +call_handle_method VARCHAR(20) default 'CID', +agent_search_method ENUM('LO','LB','SO') default 'LB', +list_id BIGINT(14) UNSIGNED default '999', +campaign_id VARCHAR(8), +phone_code VARCHAR(10) default '1', +unique index (did_pattern), +index (group_id) +); + +ALTER TABLE vicidial_auto_calls ADD agent_only VARCHAR(20) default ''; + +ALTER TABLE phones ADD email VARCHAR(100); + +ALTER TABLE vicidial_users ADD modify_inbound_dids ENUM('1','0') default '0'; +ALTER TABLE vicidial_users ADD delete_inbound_dids ENUM('1','0') default '0'; + +UPDATE system_settings SET db_schema_version='1107'; + +ALTER TABLE vicidial_campaigns ADD three_way_call_cid ENUM('CAMPAIGN','CUSTOMER','AGENT_PHONE') default 'CAMPAIGN'; + +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','227','MD','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','CAN','343','ON','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','364','KY','-6','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','447','IL','-6','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','575','NM','-7','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','CAN','581','QC','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','CAN','587','AB','-7','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','659','AL','-6','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','667','MD','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','681','WV','-5','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','USA','730','IL','-6','Y','SSM-FSN',''); +INSERT INTO vicidial_phone_codes (country_code, country, areacode, state, GMT_offset, DST, DST_range, geographic_description) VALUES ('1','DOM','829','','-4','N','','Dominican Republic'); + +UPDATE system_settings SET db_schema_version='1108'; + +INSERT INTO vicidial_statuses values('QVMAIL','Queue Abandon Voicemail Left','N','N','UNDEFINED'); + +ALTER TABLE vicidial_inbound_groups MODIFY hold_time_option ENUM('NONE','EXTENSION','VOICEMAIL','IN_GROUP','CALLERID_CALLBACK','DROP_ACTION','PRESS_VMAIL') default 'NONE'; + +UPDATE system_settings SET db_schema_version='1109'; + +ALTER TABLE vicidial_campaigns MODIFY dial_method ENUM('MANUAL','RATIO','ADAPT_HARD_LIMIT','ADAPT_TAPERED','ADAPT_AVERAGE','INBOUND_MAN') default 'MANUAL'; + +UPDATE system_settings SET db_schema_version='1110'; + +CREATE UNIQUE INDEX server_id on servers (server_id); + +UPDATE system_settings SET db_schema_version='1111'; + +ALTER TABLE vicidial_closer_log ADD uniqueid VARCHAR(20) NOT NULL default ''; + +CREATE INDEX uniqueid on vicidial_closer_log (uniqueid); + +UPDATE system_settings SET db_schema_version='1112'; + +CREATE INDEX country_postal_code on vicidial_postal_codes (country_code,postal_code); +CREATE INDEX country_area_code on vicidial_phone_codes (country_code,areacode); +CREATE INDEX country_state on vicidial_phone_codes (country_code,state); +CREATE INDEX country_code on vicidial_phone_codes (country_code); +CREATE INDEX phone_list on vicidial_list (phone_number,list_id); +CREATE INDEX list_phone on vicidial_list (list_id,phone_number); +CREATE INDEX start_time on call_log (start_time); +CREATE INDEX end_time on call_log (end_time); +CREATE INDEX time on call_log (start_time,end_time); +CREATE INDEX list_status on vicidial_list (list_id,status); +CREATE INDEX time_user on vicidial_agent_log (event_time,user); +CREATE INDEX date_user on vicidial_xfer_log (call_date,user); +CREATE INDEX date_closer on vicidial_xfer_log (call_date,closer); +CREATE INDEX phone_number on vicidial_xfer_log (phone_number); +CREATE INDEX phone_number on vicidial_closer_log (phone_number); +CREATE INDEX date_user on vicidial_closer_log (call_date,user); + +UPDATE system_settings SET db_schema_version='1113'; + +CREATE INDEX event_time on vicidial_agent_log (event_time); + +UPDATE system_settings SET db_schema_version='1114'; + +ALTER TABLE vicidial_campaigns MODIFY agent_pause_codes_active ENUM('Y','N','FORCE') default 'N'; + +UPDATE system_settings SET db_schema_version='1115'; + +ALTER TABLE vicidial_campaigns ADD three_way_dial_prefix VARCHAR(20) default ''; + +UPDATE system_settings SET db_schema_version='1116'; + +ALTER TABLE vicidial_user_groups ADD forced_timeclock_login ENUM('Y','N','ADMIN_EXEMPT') default 'N'; + +UPDATE system_settings SET db_schema_version='1117'; + +ALTER TABLE vicidial_inbound_groups ADD answer_sec_pct_rt_stat_one SMALLINT(5) UNSIGNED default '20'; +ALTER TABLE vicidial_inbound_groups ADD answer_sec_pct_rt_stat_two SMALLINT(5) UNSIGNED default '30'; + +ALTER TABLE vicidial_campaign_stats ADD hold_sec_stat_one MEDIUMINT(8) UNSIGNED default '0'; +ALTER TABLE vicidial_campaign_stats ADD hold_sec_stat_two MEDIUMINT(8) UNSIGNED default '0'; +ALTER TABLE vicidial_campaign_stats ADD agent_non_pause_sec MEDIUMINT(8) UNSIGNED default '0'; +ALTER TABLE vicidial_campaign_stats ADD hold_sec_answer_calls MEDIUMINT(8) UNSIGNED default '0'; +ALTER TABLE vicidial_campaign_stats ADD hold_sec_drop_calls MEDIUMINT(8) UNSIGNED default '0'; +ALTER TABLE vicidial_campaign_stats ADD hold_sec_queue_calls MEDIUMINT(8) UNSIGNED default '0'; + +CREATE INDEX comment_a on live_inbound_log (comment_a); + +UPDATE system_settings SET db_schema_version='1118'; + +ALTER TABLE vicidial_campaigns ADD web_form_target VARCHAR(100) NOT NULL default 'vdcwebform'; + +UPDATE system_settings SET db_schema_version='1119'; + +ALTER TABLE servers ADD recording_web_link ENUM('SERVER_IP','ALT_IP') default 'SERVER_IP'; +ALTER TABLE servers ADD alt_server_ip VARCHAR(100) default ''; + +UPDATE system_settings SET db_schema_version='1120'; + +ALTER TABLE vicidial_campaigns MODIFY campaign_vdad_exten VARCHAR(20) default '8368'; + +UPDATE system_settings SET db_schema_version='1121'; + +ALTER TABLE system_settings ADD enable_vtiger_integration ENUM('0','1') default '0'; +ALTER TABLE system_settings ADD vtiger_server_ip VARCHAR(15); +ALTER TABLE system_settings ADD vtiger_dbname VARCHAR(50); +ALTER TABLE system_settings ADD vtiger_login VARCHAR(50); +ALTER TABLE system_settings ADD vtiger_pass VARCHAR(50); +ALTER TABLE system_settings ADD vtiger_url VARCHAR(255); + +ALTER TABLE vicidial_users ADD active ENUM('Y','N') default 'Y'; + +ALTER TABLE vicidial_campaigns ADD vtiger_search_category VARCHAR(100) default 'LEAD'; + +ALTER TABLE server_updater ADD db_time TIMESTAMP; + +ALTER TABLE vicidial_ivr ADD prompt_audio_11 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_11 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_12 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_12 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_13 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_13 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_14 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_14 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_15 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_15 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_16 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_16 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_17 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_17 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_18 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_18 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_19 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_19 TINYINT(1) UNSIGNED default '0'; +ALTER TABLE vicidial_ivr ADD prompt_audio_20 VARCHAR(20); +ALTER TABLE vicidial_ivr ADD prompt_response_20 TINYINT(1) UNSIGNED default '0'; + +ALTER TABLE system_settings MODIFY vicidial_agent_disable ENUM('NOT_ACTIVE','LIVE_AGENT','EXTERNAL','ALL') default 'ALL'; + +UPDATE system_settings SET db_schema_version='1122'; + +ALTER TABLE vicidial_campaigns ADD vtiger_create_call_record ENUM('Y','N') default 'Y'; +ALTER TABLE vicidial_campaigns ADD vtiger_create_lead_record ENUM('Y','N') default 'Y'; + +UPDATE system_settings SET db_schema_version='1123'; + +ALTER TABLE vicidial_closer_log ADD agent_only VARCHAR(20) default ''; + +UPDATE system_settings SET db_schema_version='1124'; + +ALTER TABLE vicidial_live_agents ADD external_pause VARCHAR(20) default ''; +ALTER TABLE vicidial_live_agents ADD external_dial VARCHAR(100) default ''; + +CREATE TABLE vicidial_did_log ( +uniqueid VARCHAR(20) NOT NULL, +channel VARCHAR(100) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +caller_id_number VARCHAR(18), +caller_id_name VARCHAR(20), +extension VARCHAR(100), +call_date DATETIME, +did_id VARCHAR(9) default '', +did_route VARCHAR(9) default '', +index (uniqueid), +index (caller_id_number), +index (extension), +index (call_date) +); + +CREATE TABLE vicidial_api_log ( +api_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20) NOT NULL, +api_date DATETIME, +api_script VARCHAR(10), +function VARCHAR(20) NOT NULL, +agent_user VARCHAR(20), +value VARCHAR(255), +result VARCHAR(10), +result_reason VARCHAR(255), +source VARCHAR(20), +data TEXT, +index(api_date) +); + +UPDATE system_settings SET db_schema_version='1125'; + +ALTER TABLE vicidial_campaigns ADD vtiger_screen_login ENUM('Y','N') default 'Y'; + +ALTER TABLE vicidial_users ADD alert_enabled ENUM('1','0') default '0'; + +UPDATE system_settings SET db_schema_version='1126'; + +CREATE TABLE vicidial_nanpa_prefix_codes ( +areacode CHAR(3), +prefix CHAR(3), +GMT_offset VARCHAR(6), +DST enum('Y','N'), +latitude VARCHAR(17), +longitude VARCHAR(17) +); + +CREATE INDEX areaprefix on vicidial_nanpa_prefix_codes (areacode,prefix); + +UPDATE system_settings SET db_schema_version='1127'; + +ALTER TABLE system_settings ADD qc_features_active ENUM('1','0') default '0'; +ALTER TABLE system_settings ADD outbound_autodial_active ENUM('1','0') default '1'; + +CREATE TABLE vicidial_cpd_log ( +cpd_id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +channel VARCHAR(100) NOT NULL, +uniqueid VARCHAR(20), +callerid VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +lead_id INT(9) UNSIGNED, +event_date DATETIME, +result VARCHAR(20), +status ENUM('NEW','PROCESSED') default 'NEW', +cpd_seconds DECIMAL(7,2) default '0', +index(uniqueid), +index(callerid), +index(lead_id) +); + +ALTER TABLE vicidial_campaigns ADD cpd_amd_action ENUM('DISABLED','DISPO','MESSAGE') default 'DISABLED'; + +UPDATE system_settings SET db_schema_version='1128'; + +ALTER TABLE vicidial_users ADD download_lists ENUM('1','0') default '0'; + +UPDATE system_settings SET db_schema_version='1129'; + +ALTER TABLE servers ADD active_asterisk_server ENUM('Y','N') default 'Y'; +ALTER TABLE servers ADD generate_vicidial_conf ENUM('Y','N') default 'Y'; +ALTER TABLE servers ADD rebuild_conf_files ENUM('Y','N') default 'Y'; + +CREATE TABLE vicidial_conf_templates ( +template_id VARCHAR(15) NOT NULL, +template_name VARCHAR(50) NOT NULL, +template_contents TEXT, +unique index (template_id) +); + +CREATE TABLE vicidial_server_carriers ( +carrier_id VARCHAR(15) NOT NULL, +carrier_name VARCHAR(50) NOT NULL, +registration_string VARCHAR(255), +template_id VARCHAR(15) NOT NULL, +account_entry TEXT, +protocol ENUM('SIP','Zap','IAX2','EXTERNAL') default 'SIP', +globals_string VARCHAR(255), +dialplan_entry TEXT, +server_ip VARCHAR(15) NOT NULL, +active ENUM('Y','N') default 'Y', +unique index(carrier_id), +index (server_ip) +); + +ALTER TABLE phones ADD template_id VARCHAR(15) NOT NULL; +ALTER TABLE phones ADD conf_override TEXT; + +INSERT INTO vicidial_conf_templates SET template_id='SIP_generic',template_name='SIP phone generic',template_contents="type=friend\nhost=dynamic\ncanreinvite=no\ncontext=default"; +INSERT INTO vicidial_conf_templates SET template_id='IAX_generic',template_name='IAX phone generic',template_contents="type=friend\nhost=dynamic\nmaxauthreq=10\nauth=md5,plaintext,rsa\ncontext=default"; + +INSERT INTO vicidial_server_carriers SET carrier_id='PARAXIP', carrier_name='TEST ParaXip CPD example',registration_string='', template_id='--NONE--', account_entry="[paraxip]\ndisallow=all\nallow=ulaw\ntype=peer\nusername=paraxip\nfromuser=paraxip\nsecret=test\nfromdomain=10.10.10.16\nhost=10.10.10.15\ninsecure=port,invite\noutboundproxy=10.0.0.7", protocol='SIP', globals_string='TESTSIPTRUNKP = SIP/paraxip', dialplan_entry="exten => _5591999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)\nexten => _5591999NXXXXXX,2,Dial(${TESTSIPTRUNKP}/${EXTEN:4},,tTor)\nexten => _5591999NXXXXXX,3,Hangup", server_ip='10.10.10.15', active='N'; +INSERT INTO vicidial_server_carriers SET carrier_id='SIPEXAMPLE', carrier_name='TEST SIP carrier example',registration_string='register => testcarrier:test@10.10.10.15:5060', template_id='--NONE--', account_entry="[testcarrier]\ndisallow=all\nallow=ulaw\ntype=friend\nusername=testcarrier\nsecret=test\nhost=dynamic\ndtmfmode=rfc2833\ncontext=trunkinbound\n", protocol='SIP', globals_string='TESTSIPTRUNK = SIP/testcarrier', dialplan_entry="exten => _91999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)\nexten => _91999NXXXXXX,2,Dial(${TESTSIPTRUNK}/${EXTEN:2},,tTor)\nexten => _91999NXXXXXX,3,Hangup\n", server_ip='10.10.10.15', active='N'; +INSERT INTO vicidial_server_carriers SET carrier_id='IAXEXAMPLE', carrier_name='TEST IAX carrier example',registration_string='register => testcarrier:test@10.10.10.15:4569', template_id='--NONE--', account_entry="[testcarrier]\ndisallow=all\nallow=ulaw\ntype=friend\naccountcode=testcarrier\nsecret=test\nhost=dynamic\ncontext=trunkinbound\n", protocol='IAX2', globals_string='TESTIAXTRUNK = IAX2/testcarrier', dialplan_entry="exten => _71999NXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)\nexten => _71999NXXXXXX,2,Dial(${TESTIAXTRUNK}/${EXTEN:2},,tTor)\nexten => _71999NXXXXXX,3,Hangup\n", server_ip='10.10.10.15', active='N'; + +UPDATE system_settings SET db_schema_version='1130'; + +INSERT INTO vicidial_inbound_dids SET did_pattern='default', did_description='Default DID', did_active='Y', did_route='EXTEN', extension='9998811112', exten_context='default'; + +UPDATE system_settings SET db_schema_version='1131'; + +ALTER TABLE vicidial_campaign_agents ADD group_web_vars VARCHAR(255) default ''; + +ALTER TABLE vicidial_inbound_group_agents ADD group_web_vars VARCHAR(255) default ''; + +CREATE TABLE groups_alias ( +group_alias_id VARCHAR(30) NOT NULL UNIQUE PRIMARY KEY, +group_alias_name VARCHAR(50), +caller_id_number VARCHAR(20), +caller_id_name VARCHAR(20), +active ENUM('Y','N') default 'N' +); + +CREATE TABLE user_call_log ( +user_call_log_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +user VARCHAR(20), +call_date DATETIME, +call_type VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +phone_number VARCHAR(20), +number_dialed VARCHAR(30), +lead_id INT(9) UNSIGNED, +callerid VARCHAR(20), +group_alias_id VARCHAR(30), +index (user), +index (call_date) +); + +ALTER TABLE vicidial_campaigns ADD agent_allow_group_alias ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD default_group_alias VARCHAR(30) default ''; +ALTER TABLE vicidial_campaigns MODIFY three_way_call_cid ENUM('CAMPAIGN','CUSTOMER','AGENT_PHONE','AGENT_CHOOSE') default 'CAMPAIGN'; + +ALTER TABLE vicidial_inbound_groups ADD default_group_alias VARCHAR(30) default ''; + +UPDATE system_settings SET db_schema_version='1132'; + +ALTER TABLE servers ADD outbound_calls_per_second SMALLINT(3) UNSIGNED default '20'; +ALTER TABLE servers ADD sysload INT(6) NOT NULL default '0'; +ALTER TABLE servers ADD channels_total SMALLINT(4) UNSIGNED NOT NULL default '0'; +ALTER TABLE servers ADD cpu_idle_percent SMALLINT(3) UNSIGNED NOT NULL default '0'; +ALTER TABLE servers ADD disk_usage VARCHAR(255) default '1'; + +ALTER TABLE system_settings ADD outbound_calls_per_second SMALLINT(3) UNSIGNED default '40'; + +ALTER TABLE vicidial_user_groups ADD shift_enforcement ENUM('OFF','START','ALL') default 'OFF'; + +ALTER TABLE vicidial_users ADD agent_shift_enforcement_override ENUM('DISABLED','OFF','START','ALL') default 'DISABLED'; +ALTER TABLE vicidial_users ADD manager_shift_enforcement_override ENUM('0','1') default '0'; +ALTER TABLE vicidial_users ADD shift_override_flag ENUM('0','1') default '0'; + +ALTER TABLE vicidial_admin_log MODIFY event_type ENUM('ADD','COPY','LOAD','RESET','MODIFY','DELETE','SEARCH','LOGIN','LOGOUT','CLEAR','OVERRIDE','OTHER') default 'OTHER'; + +UPDATE system_settings SET db_schema_version='1133'; + +ALTER TABLE vicidial_users ADD export_reports ENUM('1','0') default '0'; + +ALTER TABLE vicidial_admin_log MODIFY event_type ENUM('ADD','COPY','LOAD','RESET','MODIFY','DELETE','SEARCH','LOGIN','LOGOUT','CLEAR','OVERRIDE','EXPORT','OTHER') default 'OTHER'; + +UPDATE system_settings SET db_schema_version='1134'; + +ALTER TABLE vicidial_campaigns DROP campaign_shift_start_time; +ALTER TABLE vicidial_campaigns DROP campaign_shift_length; +ALTER TABLE vicidial_campaigns DROP campaign_day_start_time; + +UPDATE system_settings SET db_schema_version='1135'; diff --git a/agc_2-X/branches/agc_2.2.0/extras/upgrade_2.2.0.sql b/agc_2-X/branches/agc_2.2.0/extras/upgrade_2.2.0.sql new file mode 100644 index 00000000..300b2673 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/upgrade_2.2.0.sql @@ -0,0 +1,725 @@ +ALTER TABLE vicidial_nanpa_prefix_codes ADD city VARCHAR(50) default ''; +ALTER TABLE vicidial_nanpa_prefix_codes ADD state VARCHAR(2) default ''; +ALTER TABLE vicidial_nanpa_prefix_codes ADD postal_code VARCHAR(10) default ''; +ALTER TABLE vicidial_nanpa_prefix_codes ADD country VARCHAR(2) default ''; + +UPDATE system_settings SET db_schema_version='1136', version='2.2.0b0.5'; + +ALTER TABLE vicidial_users ADD delete_from_dnc ENUM('0','1') default '0'; + +ALTER TABLE vicidial_campaigns ADD vtiger_search_dead ENUM('DISABLED','ASK','RESURRECT') default 'ASK'; +ALTER TABLE vicidial_campaigns ADD vtiger_status_call ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns MODIFY vtiger_screen_login ENUM('Y','N','NEW_WINDOW') default 'Y'; +ALTER TABLE vicidial_campaigns MODIFY vtiger_create_call_record ENUM('Y','N','DISPO') default 'Y'; + +ALTER TABLE vicidial_statuses ADD sale ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_statuses ADD dnc ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_statuses ADD customer_contact ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_statuses ADD not_interested ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_statuses ADD unworkable ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaign_statuses ADD sale ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaign_statuses ADD dnc ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaign_statuses ADD customer_contact ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaign_statuses ADD not_interested ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaign_statuses ADD unworkable ENUM('Y','N') default 'N'; + +UPDATE system_settings SET db_schema_version='1137'; + +ALTER TABLE vicidial_users ADD email VARCHAR(100) default ''; +ALTER TABLE vicidial_users ADD user_code VARCHAR(100) default ''; +ALTER TABLE vicidial_users ADD territory VARCHAR(100) default ''; + +UPDATE system_settings SET db_schema_version='1138'; + +ALTER TABLE vicidial_campaigns ADD survey_third_digit VARCHAR(1) default ''; +ALTER TABLE vicidial_campaigns ADD survey_third_audio_file VARCHAR(50) default 'US_thanks_no_contact'; +ALTER TABLE vicidial_campaigns ADD survey_third_status VARCHAR(6) default 'NI'; +ALTER TABLE vicidial_campaigns ADD survey_third_exten VARCHAR(20) default '8300'; +ALTER TABLE vicidial_campaigns ADD survey_fourth_digit VARCHAR(1) default ''; +ALTER TABLE vicidial_campaigns ADD survey_fourth_audio_file VARCHAR(50) default 'US_thanks_no_contact'; +ALTER TABLE vicidial_campaigns ADD survey_fourth_status VARCHAR(6) default 'NI'; +ALTER TABLE vicidial_campaigns ADD survey_fourth_exten VARCHAR(20) default '8300'; + +ALTER TABLE system_settings ADD enable_tts_integration ENUM('0','1') default '0'; + +CREATE TABLE vicidial_tts_prompts ( +tts_id VARCHAR(50) PRIMARY KEY NOT NULL, +tts_name VARCHAR(100), +active ENUM('Y','N'), +tts_text TEXT +); + +UPDATE system_settings SET db_schema_version='1139'; + +CREATE TABLE vicidial_call_menu ( +menu_id VARCHAR(50) PRIMARY KEY NOT NULL, +menu_name VARCHAR(100), +menu_prompt VARCHAR(100), +menu_timeout SMALLINT(2) UNSIGNED default '10', +menu_timeout_prompt VARCHAR(100) default 'NONE', +menu_invalid_prompt VARCHAR(100) default 'NONE', +menu_repeat TINYINT(1) UNSIGNED default '0', +menu_time_check ENUM('0','1') default '0', +call_time_id VARCHAR(20) default '', +track_in_vdac ENUM('0','1') default '1' +); + +CREATE TABLE vicidial_call_menu_options ( +menu_id VARCHAR(50) NOT NULL, +option_value VARCHAR(20) NOT NULL default '', +option_description VARCHAR(255) default '', +option_route VARCHAR(20), +option_route_value VARCHAR(100), +option_route_value_context VARCHAR(100), +index (menu_id), +unique index menuoption (menu_id, option_value) +); + +ALTER TABLE vicidial_inbound_dids MODIFY did_route ENUM('EXTEN','VOICEMAIL','AGENT','PHONE','IN_GROUP','CALLMENU') default 'EXTEN'; +ALTER TABLE vicidial_inbound_dids ADD menu_id VARCHAR(50) default ''; + +UPDATE system_settings SET db_schema_version='1140'; + +ALTER TABLE system_settings ADD agentonly_callback_campaign_lock ENUM('0','1') default '1'; + +UPDATE system_settings SET db_schema_version='1141'; + +ALTER TABLE system_settings ADD sounds_central_control_active ENUM('0','1') default '0'; +ALTER TABLE system_settings ADD sounds_web_server VARCHAR(15) default '127.0.0.1'; +ALTER TABLE system_settings ADD sounds_web_directory VARCHAR(255) default ''; + +ALTER TABLE servers ADD sounds_update ENUM('Y','N') default 'N'; + +CREATE TABLE vicidial_user_territories ( +user VARCHAR(20) NOT NULL, +territory VARCHAR(100) default '', +index (user), +unique index userterritory (user, territory) +); + +UPDATE system_settings SET db_schema_version='1142'; + +ALTER TABLE system_settings ADD active_voicemail_server VARCHAR(15) default ''; +ALTER TABLE system_settings ADD auto_dial_limit VARCHAR(5) default '4'; + +UPDATE system_settings SET db_schema_version='1143'; + +CREATE TABLE vicidial_territories ( +territory_id MEDIUMINT(8) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +territory VARCHAR(100) default '', +territory_description VARCHAR(255) default '', +unique index uniqueterritory (territory) +); + +ALTER TABLE vicidial_user_territories ADD level ENUM('TOP_AGENT','STANDARD_AGENT','BOTTOM_AGENT') default 'STANDARD_AGENT'; + +ALTER TABLE system_settings ADD user_territories_active ENUM('0','1') default '0'; + +UPDATE system_settings SET db_schema_version='1144'; + +ALTER TABLE servers ADD vicidial_recording_limit MEDIUMINT(8) default '60'; + +ALTER TABLE phones ADD phone_context VARCHAR(20) default 'default'; + +UPDATE system_settings SET db_schema_version='1145'; + +CREATE UNIQUE INDEX extenserver ON phones (extension, server_ip); + +UPDATE system_settings SET db_schema_version='1146'; + +CREATE TABLE vicidial_override_ids ( +id_table VARCHAR(50) PRIMARY KEY NOT NULL, +active ENUM('0','1') default '0', +value INT(9) default '0' +); + +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_users','0','1000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_campaigns','0','20000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_inbound_groups','0','30000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_lists','0','40000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_call_menu','0','50000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_user_groups','0','60000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_lead_filters','0','70000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('vicidial_scripts','0','80000'); +INSERT INTO vicidial_override_ids(id_table,active,value) values('phones','0','100'); + +ALTER TABLE vicidial_campaigns MODIFY disable_alter_custphone ENUM('Y','N','HIDE') default 'Y'; + +UPDATE system_settings SET db_schema_version='1147'; + +CREATE TABLE vicidial_carrier_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +call_date DATETIME, +server_ip VARCHAR(15) NOT NULL, +lead_id INT(9) UNSIGNED, +hangup_cause TINYINT(1) UNSIGNED default '0', +dialstatus VARCHAR(16), +channel VARCHAR(100), +dial_time SMALLINT(2) UNSIGNED default '0', +index (call_date) +); + +ALTER TABLE servers ADD carrier_logging_active ENUM('Y','N') default 'N'; + +UPDATE system_settings SET db_schema_version='1148'; + +ALTER TABLE vicidial_campaigns MODIFY adaptive_dropped_percentage VARCHAR(4) default '3'; + +INSERT INTO vicidial_statuses values('AB','Busy Auto','N','N','UNDEFINED','N','N','N','N','N'); +INSERT INTO vicidial_statuses values('ADC','Disconnected Number Auto','N','N','UNDEFINED','N','N','N','N','Y'); + +UPDATE system_settings SET db_schema_version='1149'; + +ALTER TABLE vicidial_campaigns ADD drop_lockout_time VARCHAR(6) default '0'; + +UPDATE system_settings SET db_schema_version='1150'; + +ALTER TABLE vicidial_live_agents ADD agent_log_id INT(9) UNSIGNED default '0'; + +UPDATE system_settings SET db_schema_version='1151'; + +ALTER TABLE system_settings ADD allow_custom_dialplan ENUM('0','1') default '0'; + +ALTER TABLE vicidial_call_menu ADD custom_dialplan_entry TEXT; + +ALTER TABLE phones ADD phone_ring_timeout SMALLINT(3) default '60'; + +UPDATE system_settings SET db_schema_version='1152'; + +ALTER TABLE vicidial_call_menu MODIFY menu_prompt VARCHAR(255); +ALTER TABLE vicidial_call_menu MODIFY menu_timeout_prompt VARCHAR(255) default 'NONE'; +ALTER TABLE vicidial_call_menu MODIFY menu_invalid_prompt VARCHAR(255) default 'NONE'; + +ALTER TABLE vicidial_call_menu_options MODIFY option_route_value VARCHAR(255); + +UPDATE system_settings SET db_schema_version='1153'; + +ALTER TABLE phones ADD conf_secret VARCHAR(20) default 'test'; +UPDATE phones set conf_secret=pass; + +UPDATE system_settings SET db_schema_version='1154'; + +ALTER TABLE vicidial_call_menu ADD tracking_group VARCHAR(20) default 'CALLMENU'; + +UPDATE system_settings SET db_schema_version='1155'; + +ALTER TABLE vicidial_inbound_groups MODIFY after_hours_message_filename VARCHAR(255) default 'vm-goodbye'; +ALTER TABLE vicidial_inbound_groups MODIFY welcome_message_filename VARCHAR(255) default '---NONE---'; +ALTER TABLE vicidial_inbound_groups MODIFY onhold_prompt_filename VARCHAR(255) default 'generic_hold'; +ALTER TABLE vicidial_inbound_groups MODIFY hold_time_option_callback_filename VARCHAR(255) default 'vm-hangup'; +ALTER TABLE vicidial_inbound_groups MODIFY agent_alert_exten VARCHAR(100) default 'ding'; + +UPDATE system_settings SET db_schema_version='1156'; + +ALTER TABLE vicidial_inbound_groups ADD no_agent_no_queue ENUM('N','Y','NO_PAUSED') default 'N'; +ALTER TABLE vicidial_inbound_groups ADD no_agent_action ENUM('CALLMENU','INGROUP','DID','MESSAGE','EXTENSION','VOICEMAIL') default 'MESSAGE'; +ALTER TABLE vicidial_inbound_groups ADD no_agent_action_value VARCHAR(255) default 'nbdy-avail-to-take-call|vm-goodbye'; + +ALTER TABLE vicidial_closer_log MODIFY term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','HOLDRECALLXFER','HOLDTIME','NOAGENT','NONE') default 'NONE'; + +UPDATE system_settings SET db_schema_version='1157'; + +CREATE TABLE vicidial_list_update_log ( +event_date DATETIME, +lead_id INT(9) UNSIGNED, +vendor_id VARCHAR(20), +phone_number VARCHAR(20), +status VARCHAR(6), +old_status VARCHAR(6), +filename VARCHAR(255) default '', +result VARCHAR(20), +result_rows SMALLINT(3) UNSIGNED default '0', +index (event_date) +); + +ALTER TABLE vicidial_campaigns ADD quick_transfer_button ENUM('N','IN_GROUP','PRESET_1','PRESET_2') default 'N'; +ALTER TABLE vicidial_campaigns ADD prepopulate_transfer_preset ENUM('N','PRESET_1','PRESET_2') default 'N'; + +UPDATE system_settings SET db_schema_version='1158'; + +CREATE TABLE vicidial_drop_rate_groups ( +group_id VARCHAR(20) PRIMARY KEY NOT NULL, +update_time TIMESTAMP, +calls_today INT(9) UNSIGNED default '0', +answers_today INT(9) UNSIGNED default '0', +drops_today INT(9) UNSIGNED default '0', +drops_today_pct VARCHAR(6) default '0', +drops_answers_today_pct VARCHAR(6) default '0' +); + +INSERT INTO vicidial_drop_rate_groups SET group_id='101'; +INSERT INTO vicidial_drop_rate_groups SET group_id='102'; +INSERT INTO vicidial_drop_rate_groups SET group_id='103'; +INSERT INTO vicidial_drop_rate_groups SET group_id='104'; +INSERT INTO vicidial_drop_rate_groups SET group_id='105'; +INSERT INTO vicidial_drop_rate_groups SET group_id='106'; +INSERT INTO vicidial_drop_rate_groups SET group_id='107'; +INSERT INTO vicidial_drop_rate_groups SET group_id='108'; +INSERT INTO vicidial_drop_rate_groups SET group_id='109'; +INSERT INTO vicidial_drop_rate_groups SET group_id='110'; + +ALTER TABLE vicidial_campaigns ADD drop_rate_group VARCHAR(20) default 'DISABLED'; + +UPDATE system_settings SET db_schema_version='1159'; + +CREATE TABLE vicidial_process_triggers ( +trigger_id VARCHAR(20) PRIMARY KEY NOT NULL, +trigger_name VARCHAR(100), +server_ip VARCHAR(15) NOT NULL, +trigger_time DATETIME, +trigger_run ENUM('0','1') default '0', +user VARCHAR(20), +trigger_lines TEXT +); + +CREATE TABLE vicidial_process_trigger_log ( +trigger_id VARCHAR(20) NOT NULL, +server_ip VARCHAR(15) NOT NULL, +trigger_time DATETIME, +user VARCHAR(20), +trigger_lines TEXT, +trigger_results TEXT, +index (trigger_id), +index (trigger_time) +); + +INSERT INTO vicidial_process_triggers SET trigger_id='LOAD_LEADS',server_ip='10.10.10.15',trigger_name='Load Leads',trigger_time='2009-01-01 00:00:00',trigger_run='0',trigger_lines='/usr/share/astguiclient/VICIDIAL_IN_new_leads_file.pl'; + +UPDATE system_settings SET db_schema_version='1160'; + +ALTER TABLE vicidial_user_groups ADD agent_status_viewable_groups TEXT; +ALTER TABLE vicidial_user_groups ADD agent_status_view_time ENUM('Y','N') default 'N'; + +UPDATE system_settings SET db_schema_version='1161'; + +ALTER TABLE vicidial_campaigns ADD view_calls_in_queue ENUM('NONE','ALL','1','2','3','4','5') default 'NONE'; +ALTER TABLE vicidial_campaigns ADD view_calls_in_queue_launch ENUM('AUTO','MANUAL') default 'MANUAL'; +ALTER TABLE vicidial_campaigns ADD grab_calls_in_queue ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD call_requeue_button ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD pause_after_each_call ENUM('Y','N') default 'N'; + +ALTER TABLE vicidial_auto_calls ADD agent_grab VARCHAR(20) default ''; + +UPDATE system_settings SET db_schema_version='1162'; + +ALTER TABLE vicidial_list MODIFY list_id BIGINT(14) UNSIGNED NOT NULL DEFAULT '0'; +ALTER TABLE vicidial_list ADD rank SMALLINT(5) NOT NULL default '0'; +ALTER TABLE vicidial_list ADD owner VARCHAR(20) default ''; +CREATE INDEX rank ON vicidial_list (rank); + +ALTER TABLE vicidial_campaigns ADD no_hopper_dialing ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD agent_dial_owner_only ENUM('NONE','USER','TERRITORY','USER_GROUP') default 'NONE'; + +ALTER TABLE vicidial_lists ADD reset_time VARCHAR(100) default ''; + +UPDATE system_settings SET db_schema_version='1163'; + +ALTER TABLE vicidial_users ADD allow_alerts ENUM('0','1') default '0'; +UPDATE vicidial_users SET alert_enabled='0'; + +UPDATE system_settings SET db_schema_version='1164'; + +ALTER TABLE vicidial_campaigns ADD agent_display_dialable_leads ENUM('Y','N') default 'N'; +ALTER TABLE servers ADD vicidial_balance_rank TINYINT(3) UNSIGNED default '0'; + +CREATE TABLE vtiger_rank_data ( +account VARCHAR(20) PRIMARY KEY NOT NULL, +seqacct VARCHAR(20) UNIQUE NOT NULL, +last_attempt_days SMALLINT(5) UNSIGNED NOT NULL, +orders SMALLINT(5) NOT NULL, +net_sales SMALLINT(5) NOT NULL, +net_sales_ly SMALLINT(5) NOT NULL, +percent_variance VARCHAR(10) NOT NULL, +imu VARCHAR(10) NOT NULL, +aov SMALLINT(5) NOT NULL, +returns SMALLINT(5) NOT NULL, +rank SMALLINT(5) NOT NULL +); + +CREATE TABLE vtiger_rank_parameters ( +parameter_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +parameter VARCHAR(20) NOT NULL, +lower_range VARCHAR(20) NOT NULL, +upper_range VARCHAR(20) NOT NULL, +points SMALLINT(5) NOT NULL, +index (parameter) +); + +UPDATE system_settings SET db_schema_version='1165'; + +CREATE TABLE twoday_call_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +channel VARCHAR(100), +channel_group VARCHAR(30), +type VARCHAR(10), +server_ip VARCHAR(15), +extension VARCHAR(100), +number_dialed VARCHAR(15), +caller_code VARCHAR(20), +start_time DATETIME, +start_epoch INT(10), +end_time DATETIME, +end_epoch INT(10), +length_in_sec INT(10), +length_in_min DOUBLE(8,2), +index (caller_code), +index (server_ip), +index (channel) +); + +CREATE TABLE twoday_vicidial_log ( +uniqueid VARCHAR(20) PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(8), +call_date DATETIME, +start_epoch INT(10) UNSIGNED, +end_epoch INT(10) UNSIGNED, +length_in_sec INT(10), +status VARCHAR(6), +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +comments VARCHAR(255), +processed ENUM('Y','N'), +user_group VARCHAR(20), +term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','NONE') default 'NONE', +alt_dial VARCHAR(6) default 'NONE', +index (lead_id), +index (call_date) +); + +CREATE TABLE twoday_vicidial_closer_log ( +closecallid INT(9) UNSIGNED PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(20), +call_date DATETIME, +start_epoch INT(10) UNSIGNED, +end_epoch INT(10) UNSIGNED, +length_in_sec INT(10), +status VARCHAR(6), +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +comments VARCHAR(255), +processed ENUM('Y','N'), +queue_seconds DECIMAL(7,2) default '0', +user_group VARCHAR(20), +xfercallid INT(9) UNSIGNED, +term_reason ENUM('CALLER','AGENT','QUEUETIMEOUT','ABANDON','AFTERHOURS','HOLDRECALLXFER','HOLDTIME','NOAGENT','NONE') default 'NONE', +uniqueid VARCHAR(20) NOT NULL default '', +agent_only VARCHAR(20) default '', +index (lead_id), +index (call_date), +index (campaign_id), +index (uniqueid) +); + +CREATE TABLE twoday_vicidial_xfer_log ( +xfercallid INT(9) UNSIGNED PRIMARY KEY NOT NULL, +lead_id INT(9) UNSIGNED NOT NULL, +list_id BIGINT(14) UNSIGNED, +campaign_id VARCHAR(20), +call_date DATETIME, +phone_code VARCHAR(10), +phone_number VARCHAR(18), +user VARCHAR(20), +closer VARCHAR(20), +index (lead_id), +index (call_date) +); + +CREATE TABLE twoday_recording_log ( +recording_id INT(10) UNSIGNED PRIMARY KEY NOT NULL, +channel VARCHAR(100), +server_ip VARCHAR(15), +extension VARCHAR(100), +start_time DATETIME, +start_epoch INT(10) UNSIGNED, +end_time DATETIME, +end_epoch INT(10) UNSIGNED, +length_in_sec MEDIUMINT(8) UNSIGNED, +length_in_min DOUBLE(8,2), +filename VARCHAR(50), +location VARCHAR(255), +lead_id INT(9) UNSIGNED, +user VARCHAR(20), +vicidial_id VARCHAR(20), +index(filename), +index(lead_id), +index(user), +index(vicidial_id) +); + +CREATE TABLE twoday_vicidial_agent_log ( +agent_log_id INT(9) UNSIGNED PRIMARY KEY NOT NULL, +user VARCHAR(20), +server_ip VARCHAR(15) NOT NULL, +event_time DATETIME, +lead_id INT(9) UNSIGNED, +campaign_id VARCHAR(8), +pause_epoch INT(10) UNSIGNED, +pause_sec SMALLINT(5) UNSIGNED default '0', +wait_epoch INT(10) UNSIGNED, +wait_sec SMALLINT(5) UNSIGNED default '0', +talk_epoch INT(10) UNSIGNED, +talk_sec SMALLINT(5) UNSIGNED default '0', +dispo_epoch INT(10) UNSIGNED, +dispo_sec SMALLINT(5) UNSIGNED default '0', +status VARCHAR(6), +user_group VARCHAR(20), +comments VARCHAR(20), +sub_status VARCHAR(6), +index (lead_id), +index (user), +index (event_time) +); + +UPDATE system_settings SET db_schema_version='1166'; + +ALTER TABLE vicidial_live_agents ADD last_state_change DATETIME; + +ALTER TABLE vicidial_campaigns MODIFY next_agent_call ENUM('random','oldest_call_start','oldest_call_finish','campaign_rank','overall_user_level','fewest_calls','longest_wait_time') default 'longest_wait_time'; + +ALTER TABLE vicidial_inbound_groups MODIFY next_agent_call ENUM('random','oldest_call_start','oldest_call_finish','overall_user_level','inbound_group_rank','campaign_rank','fewest_calls','fewest_calls_campaign','longest_wait_time') default 'longest_wait_time'; + +UPDATE system_settings SET db_schema_version='1167'; + +ALTER TABLE vicidial_campaigns MODIFY drop_call_seconds TINYINT(3) default '5'; + +UPDATE system_settings SET db_schema_version='1168'; + +ALTER TABLE vicidial_lists ADD agent_script_override VARCHAR(10) default ''; + +UPDATE system_settings SET db_schema_version='1169'; + +CREATE TABLE vicidial_music_on_hold ( +moh_id VARCHAR(100) PRIMARY KEY NOT NULL, +moh_name VARCHAR(255), +active ENUM('Y','N') default 'N', +random ENUM('Y','N') default 'N', +remove ENUM('Y','N') default 'N' +); + +CREATE TABLE vicidial_music_on_hold_files ( +filename VARCHAR(100) NOT NULL, +moh_id VARCHAR(100) NOT NULL, +rank SMALLINT(5), +unique index mohfile (filename, moh_id) +); + +INSERT INTO vicidial_music_on_hold SET moh_id='default',moh_name='Default Music On Hold',active='Y',random='N'; +INSERT INTO vicidial_music_on_hold_files SET moh_id='default',filename='conf',rank='1'; + +ALTER TABLE servers ADD rebuild_music_on_hold ENUM('Y','N') default 'Y'; +ALTER TABLE servers ADD active_agent_login_server ENUM('Y','N') default 'Y'; + +UPDATE system_settings SET db_schema_version='1170'; + +ALTER TABLE vicidial_list_update_log ADD list_id VARCHAR(255); +ALTER TABLE vicidial_list_update_log MODIFY lead_id VARCHAR(255); +ALTER TABLE vicidial_list_update_log MODIFY vendor_id VARCHAR(255); +ALTER TABLE vicidial_list_update_log MODIFY phone_number VARCHAR(255); +ALTER TABLE vicidial_list_update_log MODIFY old_status VARCHAR(255); + +UPDATE system_settings SET db_schema_version='1171'; + +ALTER TABLE vicidial_agent_log ADD dead_epoch INT(10) UNSIGNED; +ALTER TABLE vicidial_agent_log ADD dead_sec SMALLINT(5) UNSIGNED default '0'; + +ALTER TABLE twoday_vicidial_agent_log ADD dead_epoch INT(10) UNSIGNED; +ALTER TABLE twoday_vicidial_agent_log ADD dead_sec SMALLINT(5) UNSIGNED default '0'; + +ALTER TABLE system_settings MODIFY sounds_web_server VARCHAR(50) default '127.0.0.1'; + +UPDATE system_settings SET db_schema_version='1172'; + +ALTER TABLE vicidial_inbound_groups MODIFY web_form_address TEXT; +ALTER TABLE vicidial_inbound_groups ADD web_form_address_two TEXT; + +ALTER TABLE vicidial_campaigns MODIFY web_form_address TEXT; +ALTER TABLE vicidial_campaigns ADD web_form_address_two TEXT; +ALTER TABLE vicidial_campaigns ADD waitforsilence_options VARCHAR(25) default ''; +ALTER TABLE vicidial_campaigns MODIFY am_message_exten VARCHAR(100) default 'vm-goodbye'; +UPDATE vicidial_campaigns SET am_message_exten='vm-goodbye' where am_message_exten=''; + +ALTER TABLE system_settings ADD db_schema_update_date DATETIME; +ALTER TABLE system_settings ADD enable_second_webform ENUM('0','1') default '0'; + +UPDATE system_settings SET db_schema_version='1173',db_schema_update_date=NOW(); + +CREATE TABLE vicidial_voicemail ( +voicemail_id VARCHAR(10) NOT NULL UNIQUE PRIMARY KEY, +active ENUM('Y','N') default 'Y', +pass VARCHAR(10) NOT NULL, +fullname VARCHAR(100) NOT NULL, +messages INT(4) default '0', +old_messages INT(4) default '0', +email VARCHAR(100) +); + +UPDATE system_settings SET db_schema_version='1174',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_lists ADD campaign_cid_override VARCHAR(20) default ''; +ALTER TABLE vicidial_lists ADD am_message_exten_override VARCHAR(100) default ''; +ALTER TABLE vicidial_lists ADD drop_inbound_group_override VARCHAR(20) default ''; + +UPDATE system_settings SET db_schema_version='1175',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_campaigns ADD agent_select_territories ENUM('Y','N') default 'N'; + +ALTER TABLE vicidial_users ADD agent_choose_territories ENUM('0','1') default '1'; + +ALTER TABLE vicidial_live_agents ADD agent_territories TEXT; + +CREATE INDEX owner ON vicidial_list (owner); + +CREATE TABLE vicidial_user_territory_log ( +user VARCHAR(20), +campaign_id VARCHAR(20), +event_date DATETIME, +agent_territories TEXT, +index (user), +index (event_date) +); + +UPDATE system_settings SET db_schema_version='1176',db_schema_update_date=NOW(); + +CREATE UNIQUE INDEX vlia_user_group_id ON vicidial_live_inbound_agents (user, group_id); + +ALTER TABLE vicidial_hopper MODIFY status ENUM('READY','QUEUE','INCALL','DONE','HOLD','DNC') default 'READY'; + +UPDATE system_settings SET db_schema_version='1177',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_campaigns MODIFY use_internal_dnc ENUM('Y','N','AREACODE') default 'N'; +ALTER TABLE vicidial_campaigns MODIFY use_campaign_dnc ENUM('Y','N','AREACODE') default 'N'; + +UPDATE system_settings SET db_schema_version='1178',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_server_carriers ADD carrier_description VARCHAR(255); + +UPDATE system_settings SET db_schema_version='1179',db_schema_update_date=NOW(); + +CREATE INDEX group_alias_id ON user_call_log (group_alias_id); + +INSERT INTO vicidial_call_menu SET menu_id='defaultlog',menu_name='logging of all outbound calls from agent phones',menu_prompt='sip-silence',menu_timeout='20',menu_timeout_prompt='NONE',menu_invalid_prompt='NONE',menu_repeat='0',menu_time_check='0',call_time_id='',track_in_vdac='0',custom_dialplan_entry='exten => _.,1,AGI(agi-NVA_recording.agi,BOTH------Y---Y---Y)\nexten => _.,n,Goto(default,${EXTEN},1)',tracking_group=''; + +INSERT INTO vicidial_call_menu_options SET menu_id='defaultlog',option_value='TIMEOUT',option_description='hangup',option_route='HANGUP',option_route_value='vm-goodbye',option_route_value_context=''; + +UPDATE system_settings SET db_schema_version='1180',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_live_agents ADD outbound_autodial ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_live_agents ADD manager_ingroup_set ENUM('Y','N') default 'N'; + +UPDATE system_settings SET db_schema_version='1181',db_schema_update_date=NOW(); + +ALTER TABLE servers ADD conf_secret VARCHAR(20) default 'test'; + +UPDATE system_settings SET db_schema_version='1182',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_live_agents MODIFY manager_ingroup_set ENUM('Y','N','SET') default 'N'; +ALTER TABLE vicidial_live_agents ADD external_ingroups TEXT AFTER external_dial; +ALTER TABLE vicidial_live_agents ADD external_blended ENUM('0','1') default '0' AFTER external_ingroups; +ALTER TABLE vicidial_live_agents ADD external_igb_set_user VARCHAR(20) default '' AFTER external_blended; + +ALTER TABLE vicidial_user_closer_log ADD manager_change VARCHAR(20) default ''; + +UPDATE system_settings SET db_schema_version='1183',db_schema_update_date=NOW(); + +CREATE TABLE vicidial_grab_call_log ( +auto_call_id INT(9) UNSIGNED NOT NULL, +user VARCHAR(20), +event_date DATETIME, +call_time DATETIME, +campaign_id VARCHAR(20), +uniqueid VARCHAR(20), +phone_number VARCHAR(20), +lead_id INT(9) UNSIGNED, +queue_priority TINYINT(2) default '0', +call_type ENUM('IN','OUT','OUTBALANCE') default 'OUT', +index (auto_call_id), +index (event_date), +index (user), +index (campaign_id) +); + +UPDATE system_settings SET db_schema_version='1184',db_schema_update_date=NOW(); + +ALTER TABLE phones ADD delete_vm_after_email ENUM('N','Y') default 'N'; + +ALTER TABLE vicidial_voicemail ADD delete_vm_after_email ENUM('N','Y') default 'N'; + +UPDATE system_settings SET db_schema_version='1185',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_campaigns ADD campaign_calldate DATETIME; + +UPDATE system_settings SET db_schema_version='1186',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_users ADD custom_one VARCHAR(100) default ''; +ALTER TABLE vicidial_users ADD custom_two VARCHAR(100) default ''; +ALTER TABLE vicidial_users ADD custom_three VARCHAR(100) default ''; +ALTER TABLE vicidial_users ADD custom_four VARCHAR(100) default ''; +ALTER TABLE vicidial_users ADD custom_five VARCHAR(100) default ''; + +ALTER TABLE vicidial_campaigns ADD crm_popup_login ENUM('Y','N') default 'N'; +ALTER TABLE vicidial_campaigns ADD crm_login_address TEXT; + +UPDATE system_settings SET db_schema_version='1187',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_closer_log ADD queue_position SMALLINT(4) UNSIGNED default '1'; + +ALTER TABLE vicidial_auto_calls ADD queue_position SMALLINT(4) UNSIGNED default '1'; + +UPDATE system_settings SET db_schema_version='1188',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_live_agents ADD external_update_fields ENUM('0','1') default '0' AFTER external_igb_set_user; +ALTER TABLE vicidial_live_agents ADD external_update_fields_data VARCHAR(255) default '' AFTER external_update_fields; +ALTER TABLE vicidial_live_agents ADD external_timer_action VARCHAR(20) default '' AFTER external_update_fields_data; +ALTER TABLE vicidial_live_agents ADD external_timer_action_message VARCHAR(255) default '' AFTER external_timer_action; +ALTER TABLE vicidial_live_agents ADD external_timer_action_seconds MEDIUMINT(7) default '-1' AFTER external_timer_action_message; + +ALTER TABLE vicidial_campaigns ADD timer_action ENUM('NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','MESSAGE_ONLY') default 'NONE'; +ALTER TABLE vicidial_campaigns ADD timer_action_message VARCHAR(255) default ''; +ALTER TABLE vicidial_campaigns ADD timer_action_seconds MEDIUMINT(7) default '-1'; + +ALTER TABLE vicidial_inbound_groups ADD timer_action ENUM('NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','MESSAGE_ONLY') default 'NONE'; +ALTER TABLE vicidial_inbound_groups ADD timer_action_message VARCHAR(255) default ''; +ALTER TABLE vicidial_inbound_groups ADD timer_action_seconds MEDIUMINT(7) default '-1'; + +UPDATE system_settings SET db_schema_version='1189',db_schema_update_date=NOW(); + +ALTER TABLE vicidial_campaigns ADD start_call_url TEXT; +ALTER TABLE vicidial_campaigns ADD dispo_call_url TEXT; +ALTER TABLE vicidial_campaigns ADD xferconf_c_number VARCHAR(50) default ''; +ALTER TABLE vicidial_campaigns ADD xferconf_d_number VARCHAR(50) default ''; +ALTER TABLE vicidial_campaigns ADD xferconf_e_number VARCHAR(50) default ''; +ALTER TABLE vicidial_campaigns MODIFY quick_transfer_button ENUM('N','IN_GROUP','PRESET_1','PRESET_2','PRESET_3','PRESET_4','PRESET_5') default 'N'; +ALTER TABLE vicidial_campaigns MODIFY prepopulate_transfer_preset ENUM('N','PRESET_1','PRESET_2','PRESET_3','PRESET_4','PRESET_5') default 'N'; +ALTER TABLE vicidial_campaigns MODIFY timer_action ENUM('NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','D3_DIAL','D4_DIAL','D5_DIAL','MESSAGE_ONLY') default 'NONE'; + +ALTER TABLE vicidial_inbound_groups ADD start_call_url TEXT; +ALTER TABLE vicidial_inbound_groups ADD dispo_call_url TEXT; +ALTER TABLE vicidial_inbound_groups ADD xferconf_c_number VARCHAR(50) default ''; +ALTER TABLE vicidial_inbound_groups ADD xferconf_d_number VARCHAR(50) default ''; +ALTER TABLE vicidial_inbound_groups ADD xferconf_e_number VARCHAR(50) default ''; +ALTER TABLE vicidial_inbound_groups MODIFY timer_action ENUM('NONE','WEBFORM','WEBFORM2','D1_DIAL','D2_DIAL','D3_DIAL','D4_DIAL','D5_DIAL','MESSAGE_ONLY') default 'NONE'; + +ALTER TABLE vicidial_lists ADD xferconf_a_number VARCHAR(50) default ''; +ALTER TABLE vicidial_lists ADD xferconf_b_number VARCHAR(50) default ''; +ALTER TABLE vicidial_lists ADD xferconf_c_number VARCHAR(50) default ''; +ALTER TABLE vicidial_lists ADD xferconf_d_number VARCHAR(50) default ''; +ALTER TABLE vicidial_lists ADD xferconf_e_number VARCHAR(50) default ''; + +UPDATE system_settings SET db_schema_version='1190',db_schema_update_date=NOW(); + +CREATE TABLE call_log_archive LIKE call_log; + +CREATE TABLE vicidial_log_archive LIKE vicidial_log; + +CREATE TABLE vicidial_agent_log_archive LIKE vicidial_agent_log; +ALTER TABLE vicidial_agent_log_archive MODIFY agent_log_id INT(9) UNSIGNED NOT NULL; + +UPDATE system_settings SET db_schema_version='1191',db_schema_update_date=NOW(); + +UPDATE system_settings SET version='2.2.0rc1',db_schema_update_date=NOW(); diff --git a/agc_2-X/branches/agc_2.2.0/extras/vicidial_modules.sh b/agc_2-X/branches/agc_2.2.0/extras/vicidial_modules.sh new file mode 100644 index 00000000..0c86d4fb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/vicidial_modules.sh @@ -0,0 +1,158 @@ +#!/bin/sh + +# +# perl_modules.sh +# +# Developed by Vivian Alan +# Copyright (c) 2008 International Telnet Inc. +# Licensed under terms of GNU General Public License. +# All rights reserved. +# +# Changelog: +# 2008-01-23 - created +# + +# $Platon$ + +echo "Step 1 : Install Perl Modules Accept defaults in most cases" +echo "" + +cpan -if MD5 +cpan -if Digest::MD5 +cpan -if Digest::SHA1 +cpan -if readline +cpan -if Bundle::CPAN +# reload CPAN +# cpan ?? +cpan reload +cpan -if DBI +cpan -if DBD::mysql +cpan -if Net::Telnet +cpan -if Time::HiRes +cpan -if Net::Server +cpan -if Unicode::Map +cpan -if Jcode +cpan -if Spreadsheet::WriteExcel +cpan -if OLE::Storage_Lite +cpan -if Proc::ProcessTable +cpan -if IO::Scalar +cpan -if Spreadsheet::ParseExcel + +echo "Download and install asterisk-perl......" +echo "" + +cd /usr/src/vicidial + +wget http://asterisk.gnuinter.net/files/asterisk-perl-0.10.tar.gz + +tar -xvzf asterisk-perl-0.10.tar.gz + +cd asterisk-perl-0.10 + +perl Makefile.PL + +make + +make install + +cd /usr/src/vicidial + + +echo "Download and install sox mix source......" +echo "" + +wget http://easynews.dl.sourceforge.net/sourceforge/sox/sox-12.17.9.tar.gz + +tar -xvzf sox-12.17.9.tar.gz + +cd sox-12.17.9 + +./configure + +make + +make install + +cd /usr/src/vicidial + +echo "Dowload and install ttyload...." +echo "" + +wget http://www.daveltd.com/src/util/ttyload/ttyload-0.4.4.tar.gz + +tar -xvzf ttyload-0.4.4.tar.gz + +cd ttyload-0.4.4 + +make + +make install + +cd /usr/src/vicidial + +echo "Update ntpd libraries....." +echo "" + +yum install ntp.i386 + +echo "Download and install iftop and dependencies...." +echo "" + +wget http://www.tcpdump.org/release/libpcap-0.9.8.tar.gz + +tar -xvzf libpcap-0.9.8.tar.gz + +cd libpcap-0.9.8 + +./configure + +make + +make install + +cd /usr/src/vicidial + +wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz + + +tar -xvzf iftop-0.17.tar.gz + +cd iftop-0.17 + +./configure + +make + +make install + +echo "Download and install ploticus, needs X11 installed....." +echo "" + +cd /usr/src/vicidial + +wget http://internap.dl.sourceforge.net/sourceforge/ploticus/pl240src.tar.gz + +tar -xvzf pl240src.tar.gz + +cd pl240src/src + +make clean + +make + +make install + +echo "Download and install balance from inlab.de........" +echo "" + +cd /usr/src/vicidial + +wget http://www.inlab.de/balance-3.40.tar.gz + +tar -xvzf balance-3.40.tar.gz + +cd balance-3.40 + +make + +make install diff --git a/agc_2-X/branches/agc_2.2.0/extras/vicidial_paraxip_chan_sip-1.2.patch b/agc_2-X/branches/agc_2.2.0/extras/vicidial_paraxip_chan_sip-1.2.patch new file mode 100644 index 00000000..342cfcee --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/vicidial_paraxip_chan_sip-1.2.patch @@ -0,0 +1,36 @@ +--- chan_sip.c.old 2009-02-03 12:02:35.000000000 -0500 ++++ chan_sip.c 2009-02-03 11:58:47.000000000 -0500 +@@ -4969,6 +4969,7 @@ + char *l = NULL, *n = NULL; + int x; + char urioptions[256]=""; ++ char *paraxipcpd = ";cpd=on"; + + if (ast_test_flag(p, SIP_USEREQPHONE)) { + char onlydigits = 1; +@@ -5059,8 +5060,13 @@ + if (p->options && p->options->uri_options) + ast_build_string(&invite, &invite_max, ";%s", p->options->uri_options); + ++ /* Tell ParaXip to enable CPD */ ++ ast_build_string(&invite, &invite_max, "%s", paraxipcpd); ++ + ast_copy_string(p->uri, invite_buf, sizeof(p->uri)); + ++ ++ + if (sipmethod == SIP_NOTIFY && !ast_strlen_zero(p->theirtag)) { + /* If this is a NOTIFY, use the From: tag in the subscribe (RFC 3265) */ + snprintf(to, sizeof(to), ";tag=%s", p->uri, p->theirtag); +@@ -9831,6 +9837,11 @@ + process_sdp(p, req); + } + ++ /* See what ParaXip had to say */ ++ char cpd_result[512]; ++ ast_copy_string(cpd_result, get_header(req, "CPD-Result"), sizeof(cpd_result)); ++ manager_event(EVENT_FLAG_SYSTEM, "CPD-Result", "ChannelDriver: SIP\r\nChannel: %s\r\nCallerIDName: %s\r\nUniqueid: %s\r\nResult: %s\r\n", p->owner->name, p->owner->cid.cid_name, p->owner->uniqueid, cpd_result); ++ + /* Parse contact header for continued conversation */ + /* When we get 200 OK, we know which device (and IP) to contact for this call */ + /* This is important when we have a SIP proxy between us and the phone */ diff --git a/agc_2-X/branches/agc_2.2.0/extras/vicidial_paraxip_chan_sip-1.4.patch b/agc_2-X/branches/agc_2.2.0/extras/vicidial_paraxip_chan_sip-1.4.patch new file mode 100644 index 00000000..d7e301ab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/extras/vicidial_paraxip_chan_sip-1.4.patch @@ -0,0 +1,32 @@ +--- ./channels/chan_sip.c.old 2008-12-23 11:33:09.000000000 -0500 ++++ ./channels/chan_sip.c 2009-02-02 03:43:48.000000000 -0500 +@@ -6964,6 +6964,7 @@ + char tmp2[SIPBUFSIZE/2]; + const char *l = NULL, *n = NULL; + const char *urioptions = ""; ++ const char *paraxipcpd = ";cpd=on"; /* string used to enable ParaXip's CPD */ + + if (ast_test_flag(&p->flags[0], SIP_USEREQPHONE)) { + const char *s = p->username; /* being a string field, cannot be NULL */ +@@ -7050,6 +7051,9 @@ + if (p->options && !ast_strlen_zero(p->options->uri_options)) + ast_build_string(&invite, &invite_max, ";%s", p->options->uri_options); + ++ /* Tell ParaXip to enable CPD */ ++ ast_build_string(&invite, &invite_max, "%s", paraxipcpd); ++ + ast_string_field_set(p, uri, invite_buf); + + if (sipmethod == SIP_NOTIFY && !ast_strlen_zero(p->theirtag)) { +@@ -12214,6 +12218,11 @@ + ast_set_flag(&p->flags[0], SIP_PENDINGBYE); + } + ++ /* See what ParaXip had to say */ ++ char cpd_result[SIPBUFSIZE]; ++ ast_copy_string(cpd_result, get_header(req, "CPD-Result"), sizeof(cpd_result)); ++ manager_event(EVENT_FLAG_SYSTEM, "CPD-Result", "ChannelDriver: SIP\r\nChannel: %s\r\nCallerIDName: %s\r\nUniqueid: %s\r\nResult: %s\r\n", p->owner->name, p->owner->cid.cid_name, p->owner->uniqueid, cpd_result); ++ + /* Parse contact header for continued conversation */ + /* When we get 200 OK, we know which device (and IP) to contact for this call */ + /* This is important when we have a SIP proxy between us and the phone */ diff --git a/agc_2-X/branches/agc_2.2.0/install.pl b/agc_2-X/branches/agc_2.2.0/install.pl new file mode 100644 index 00000000..c34499ae --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/install.pl @@ -0,0 +1,2325 @@ +#!/usr/bin/perl + +# install.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# + +# CHANGES +# 71004-1155 - Added FTP and REPORT connection variables +# 71012-1251 - Added PATHDONEmonitor setting +# 71121-1048 - Added -p flag to mkdir to not show errors +# 80107-2341 - Added --build_multiserver_conf flag to generate dynamic multi-server conf sections +# 80115-1426 - Added ip_relay scripts for port forwarding +# 80122-0320 - Added build_phones_conf flag to generate phones conf entries from phones table records +# 80227-1536 - Added ip_relay to keepalive list +# 80316-2208 - Added $PATHlogs/archive for backups +# 80526-1345 - Added Timeclock auto-logout option 9 +# 90210-0319 - Added option to prompt for Asterisk version +# 90312-1256 - Added CLI flag for automatic configuration +# 90620-1910 - Added check before creating directories and formatting changes +# 90727-1457 - Added GSW directory creation +# 91105-1359 - Added MIX directory to /var/spool/asterisk/monitor +# 91123-0001 - Added FTP2 directory to /var/spool/asterisk/monitorDONE +# + +############################################ +# install.pl - puts server files in the right places and creates conf file +# +# default paths. +# +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; +# default path to home directory: +$PATHhome = '/usr/share/astguiclient'; +# default path to astguiclient logs directory: +$PATHlogs = '/var/log/astguiclient'; +# default path to asterisk agi-bin directory: +$PATHagi = '/var/lib/asterisk/agi-bin'; +# default path to web root directory: +#$PATHweb = '/var/www/html'; +#$PATHweb = '/home/www/htdocs'; +$PATHweb = '/usr/local/apache2/htdocs'; +# default path to asterisk sounds directory: +$PATHsounds = '/var/lib/asterisk/sounds'; +# default path to asterisk recordings directory: +$PATHmonitor = '/var/spool/asterisk/monitor'; +# default path to asterisk recordings DONE directory: +$PATHDONEmonitor = '/var/spool/asterisk/monitorDONE'; +# default database server variables: +$VARDB_server = 'localhost'; +$VARDB_database = 'asterisk'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_port = '3306'; +# default keepalive processes: +$VARactive_keepalives = '1234568'; +# default Asterisk version: +$VARasterisk_version = '1.4'; +# default recording FTP archive variables: +$VARFTP_host = '10.0.0.4'; +$VARFTP_user = 'cron'; +$VARFTP_pass = 'test'; +$VARFTP_port = '21'; +$VARFTP_dir = 'RECORDINGS'; +$VARHTTP_path = 'http://10.0.0.4'; +# default report FTP variables: +$VARREPORT_host = '10.0.0.4'; +$VARREPORT_user = 'cron'; +$VARREPORT_pass = 'test'; +$VARREPORT_port = '21'; +$VARREPORT_dir = 'REPORTS'; +# defaults for FastAGI Server PreFork +$VARfastagi_log_min_servers = '3'; +$VARfastagi_log_max_servers = '16'; +$VARfastagi_log_min_spare_servers = '2'; +$VARfastagi_log_max_spare_servers = '8'; +$VARfastagi_log_max_requests = '1000'; +$VARfastagi_log_checkfordead = '30'; +$VARfastagi_log_checkforwait = '60'; + +############################################ + +$CLIhome=0; +$CLIlogs=0; +$CLIagi=0; +$CLIweb=0; +$CLIsounds=0; +$CLImonitor=0; +$CLIserver_ip=0; +$CLIDB_server=0; +$CLIDB_database=0; +$CLIDB_user=0; +$CLIDB_pass=0; +$CLIDB_port=0; +$CLIVARactive_keepalives=0; +$CLIVARasterisk_version=0; +$CLIFTP_host=0; +$CLIFTP_user=0; +$CLIFTP_pass=0; +$CLIFTP_port=0; +$CLIFTP_dir=0; +$CLIHTTP_path=0; +$CLIREPORT_host=0; +$CLIREPORT_user=0; +$CLIREPORT_pass=0; +$CLIREPORT_port=0; +$CLIREPORT_dir=0; +$CLIVARfastagi_log_min_servers=0; +$CLIVARfastagi_log_max_servers=0; +$CLIVARfastagi_log_min_spare_servers=0; +$CLIVARfastagi_log_max_spare_servers=0; +$CLIVARfastagi_log_max_requests=0; +$CLIVARfastagi_log_checkfordead=0; +$CLIVARfastagi_log_checkforwait=0; + +$COPYhome=0; +$COPYlogs=0; +$COPYagi=0; +$COPYweb=0; +$COPYsounds=0; +$COPYmonitor=0; + +$secX = time(); + +# constants +$DB=1; # Debug flag, set to 0 for no debug messages, lots of output +$US='_'; +$MT[0]=''; + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help/i) + { + print "install.pl - installs astGUIclient server files in the proper places, this\n"; + print "script will look for an /etc/astguiclient.conf file for existing settings, and\n"; + print "if not present will prompt for proper information then copy files.\n"; + print "\n"; + print "installation options:\n"; + print " [--help] = this help screen\n"; + print " [--test] = test (will not copy files)\n"; + print " [--debug] = verbose debug messages\n"; + print " [--no-prompt] = do not ask questions, just install\n"; + print " [--web-only] = only copy files/directories for web server install\n"; + print " [--without-web] = do not copy web files/directories\n\n"; + print "configuration options:\n"; + print " [--home=/path/from/root] = define home path from root at runtime\n"; + print " [--logs=/path/from/root] = define logs path from root at runtime\n"; + print " [--agi=/path/from/root] = define agi-bin path from root at runtime\n"; + print " [--web=/path/from/root] = define webroot path from root at runtime\n"; + print " [--sounds=/path/from/root] = define sounds path from root at runtime\n"; + print " [--monitor=/path/from/root] = define monitor path from root at runtime\n"; + print " [--DONEmonitor=/path/from/root] = define monitor DONE path from root at runtime\n"; + print " [--server_ip=192.168.0.1] = define server IP address at runtime\n"; + print " [--DB_server=localhost] = define database server IP address at runtime\n"; + print " [--DB_database=asterisk] = define database name at runtime\n"; + print " [--DB_user=cron] = define database user login at runtime\n"; + print " [--DB_pass=1234] = define database user password at runtime\n"; + print " [--DB_port=3306] = define database connection port at runtime\n"; + print " [--active_keepalives=123456] = define processes to keepalive\n"; + print " X - NO KEEPALIVE PROCESSES (use only if you want none to be keepalive)\n"; + print " 1 - AST_update\n"; + print " 2 - AST_send_listen\n"; + print " 3 - AST_VDauto_dial\n"; + print " 4 - AST_VDremote_agents\n"; + print " 5 - AST_VDadapt (If multi-server system, this must only be on one server)\n"; + print " 6 - FastAGI_log\n"; + print " 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server)\n"; + print " 8 - ip_relay (used for blind agent monitoring)\n"; + print " 9 - Timeclock auto-logout\n"; + print " [--asterisk_version] = set the asterisk version you want to install for\n"; + print " [--copy_sample_conf_files] = copies the sample conf files to /etc/asterisk/\n"; + print " [--FTP_host=192.168.0.2] = define recording archive server IP address at runtime\n"; + print " [--FTP_user=cron] = define archive server name at runtime\n"; + print " [--FTP_pass=test] = define archive server user login at runtime\n"; + print " [--FTP_port=21] = define archive server user password at runtime\n"; + print " [--FTP_dir=RECORDINGS] = define archive server connection port at runtime\n"; + print " [--HTTP_path=http://192.168.0.2] = define archive web root at runtime\n"; + print " [--REPORT_host=192.168.0.2] = define report server IP address at runtime\n"; + print " [--REPORT_user=cron] = define report server name at runtime\n"; + print " [--REPORT_pass=test] = define report server user login at runtime\n"; + print " [--REPORT_port=21] = define report server user password at runtime\n"; + print " [--REPORT_dir=REPORTS] = define report server connection port at runtime\n"; + print " [--fastagi_log_min_servers=3] = define FastAGI log min servers\n"; + print " [--fastagi_log_max_servers=16] = define FastAGI log max servers\n"; + print " [--fastagi_log_min_spare_servers=2] = define FastAGI log min spare servers\n"; + print " [--fastagi_log_max_spare_servers=8] = define FastAGI log max spare servers\n"; + print " [--fastagi_log_max_requests=1000] = define FastAGI log max requests\n"; + print " [--fastagi_log_checkfordead=30] = define FastAGI log check-for-dead seconds\n"; + print " [--fastagi_log_checkforwait=60] = define FastAGI log check-for-wait seconds\n"; + print " [--build_multiserver_conf] = generates conf file examples for extensions.conf and iax.conf\n"; + print " [--build_phones_conf] = generates conf file examples for extensions.conf, sip.conf and iax.conf\n"; + print "\n"; + + exit; + } + else + { + if ($args =~ /--debug/i) # Debug flag + {$DB=1;} + if ($args =~ /--test/i) # test flag + {$TEST=1; $T=1;} + if ($args =~ /--web-only/i) # web-only flag + {$WEBONLY=1; } + if ($args =~ /--without-web/i) # without web flag + {$NOWEB=1;} + else + {$NOWEB=0;} + if ($args =~ /--no-prompt/i) # do not ask questions + {$NOPROMPT=1;} + if ($args =~ /--home=/i) # CLI defined home path + { + @CLIhomeARY = split(/--home=/,$args); + @CLIhomeARX = split(/ /,$CLIhomeARY[1]); + if (length($CLIhomeARX[0])>2) + { + $PATHhome = $CLIhomeARX[0]; + $PATHhome =~ s/\/$| |\r|\n|\t//gi; + $CLIhome=1; + print " CLI defined home path: $PATHhome\n"; + } + } + if ($args =~ /--logs=/i) # CLI defined logs path + { + @CLIlogsARY = split(/--logs=/,$args); + @CLIlogsARX = split(/ /,$CLIlogsARY[1]); + if (length($CLIlogsARX[0])>2) + { + $PATHlogs = $CLIlogsARX[0]; + $PATHlogs =~ s/\/$| |\r|\n|\t//gi; + $CLIlogs=1; + print " CLI defined logs path: $PATHlogs\n"; + } + } + if ($args =~ /--agi=/i) # CLI defined agi-bin path + { + @CLIagiARY = split(/--agi=/,$args); + @CLIagiARX = split(/ /,$CLIagiARY[1]); + if (length($CLIagiARX[0])>2) + { + $PATHagi = $CLIagiARX[0]; + $PATHagi =~ s/\/$| |\r|\n|\t//gi; + $CLIagi=1; + print " CLI defined agi-bin path: $PATHagi\n"; + } + } + if ($args =~ /--web=/i) # CLI defined webroot path + { + @CLIwebARY = split(/--web=/,$args); + @CLIwebARX = split(/ /,$CLIwebARY[1]); + if (length($CLIwebARX[0])>2) + { + $PATHweb = $CLIwebARX[0]; + $PATHweb =~ s/\/$| |\r|\n|\t//gi; + $CLIweb=1; + print " CLI defined webroot path: $PATHweb\n"; + } + } + if ($args =~ /--sounds=/i) # CLI defined sounds path + { + @CLIsoundsARY = split(/--sounds=/,$args); + @CLIsoundsARX = split(/ /,$CLIsoundsARY[1]); + if (length($CLIsoundsARX[0])>2) + { + $PATHsounds = $CLIsoundsARX[0]; + $PATHsounds =~ s/\/$| |\r|\n|\t//gi; + $CLIsounds=1; + print " CLI defined sounds path: $PATHsounds\n"; + } + } + if ($args =~ /--monitor=/i) # CLI defined monitor path + { + @CLImonitorARY = split(/--monitor=/,$args); + @CLImonitorARX = split(/ /,$CLImonitorARY[1]); + if (length($CLImonitorARX[0])>2) + { + $PATHmonitor = $CLImonitorARX[0]; + $PATHmonitor =~ s/\/$| |\r|\n|\t//gi; + $CLImonitor=1; + print " CLI defined monitor path: $PATHmonitor\n"; + } + } + if ($args =~ /--DONEmonitor=/i) # CLI defined DONEmonitor path + { + @CLIDONEmonitorARY = split(/--DONEmonitor=/,$args); + @CLIDONEmonitorARX = split(/ /,$CLIDONEmonitorARY[1]); + if (length($CLIDONEmonitorARX[0])>2) + { + $PATHDONEmonitor = $CLIDONEmonitorARX[0]; + $PATHDONEmonitor =~ s/\/$| |\r|\n|\t//gi; + $CLIDONEmonitor=1; + print " CLI defined DONEmonitor: $PATHDONEmonitor\n"; + } + } + if ($args =~ /--server_ip=/i) # CLI defined server IP address + { + @CLIserver_ipARY = split(/--server_ip=/,$args); + @CLIserver_ipARX = split(/ /,$CLIserver_ipARY[1]); + if (length($CLIserver_ipARX[0])>2) + { + $VARserver_ip = $CLIserver_ipARX[0]; + $VARserver_ip =~ s/\/$| |\r|\n|\t//gi; + $CLIserver_ip=1; + print " CLI defined server IP: $VARserver_ip\n"; + } + } + if ($args =~ /--DB_server=/i) # CLI defined Database server address + { + @CLIDB_serverARY = split(/--DB_server=/,$args); + @CLIDB_serverARX = split(/ /,$CLIDB_serverARY[1]); + if (length($CLIDB_serverARX[0])>2) + { + $VARDB_server = $CLIDB_serverARX[0]; + $VARDB_server =~ s/\/$| |\r|\n|\t//gi; + $CLIDB_server=1; + print " CLI defined DB server: $VARDB_server\n"; + } + } + if ($args =~ /--DB_database=/i) # CLI defined Database name + { + @CLIDB_databaseARY = split(/--DB_database=/,$args); + @CLIDB_databaseARX = split(/ /,$CLIDB_databaseARY[1]); + if (length($CLIDB_databaseARX[0])>1) + { + $VARDB_database = $CLIDB_databaseARX[0]; + $VARDB_database =~ s/ |\r|\n|\t//gi; + $CLIDB_database=1; + print " CLI defined DB database: $VARDB_database\n"; + } + } + if ($args =~ /--DB_user=/i) # CLI defined Database user login + { + @CLIDB_userARY = split(/--DB_user=/,$args); + @CLIDB_userARX = split(/ /,$CLIDB_userARY[1]); + if (length($CLIDB_userARX[0])>1) + { + $VARDB_user = $CLIDB_userARX[0]; + $VARDB_user =~ s/ |\r|\n|\t//gi; + $CLIDB_user=1; + print " CLI defined DB user: $VARDB_user\n"; + } + } + if ($args =~ /--DB_pass=/i) # CLI defined Database user password + { + @CLIDB_passARY = split(/--DB_pass=/,$args); + @CLIDB_passARX = split(/ /,$CLIDB_passARY[1]); + if (length($CLIDB_passARX[0])>1) + { + $VARDB_pass = $CLIDB_passARX[0]; + $VARDB_pass =~ s/ |\r|\n|\t//gi; + $CLIDB_pass=1; + print " CLI defined DB password: $VARDB_pass\n"; + } + } + if ($args =~ /--DB_port=/i) # CLI defined Database connection port + { + @CLIDB_portARY = split(/--DB_port=/,$args); + @CLIDB_portARX = split(/ /,$CLIDB_portARY[1]); + if (length($CLIDB_portARX[0])>1) + { + $VARDB_port = $CLIDB_portARX[0]; + $VARDB_port =~ s/ |\r|\n|\t//gi; + $CLIDB_port=1; + print " CLI defined DB port: $VARDB_port\n"; + } + } + if ($args =~ /--active_keepalives=/i) # CLI defined keepalive processes + { + @CLIkeepaliveARY = split(/--active_keepalives=/,$args); + @CLIkeepaliveARX = split(/ /,$CLIkeepaliveARY[1]); + if (length($CLIkeepaliveARX[0])>1) + { + $VARactive_keepalives = $CLIkeepaliveARX[0]; + $VARactive_keepalives =~ s/ |\r|\n|\t//gi; + $CLIactive_keepalives=1; + print " CLI active keepalive procs: $VARactive_keepalives\n"; + } + } + if ($args =~ /--asterisk_version=/i) # CLI defined asterisk version + { + @CLIastversionARY = split(/--asterisk_version=/,$args); + @CLIastversionARX = split(/ /,$CLIastversionARY[1]); + if (length($CLIastversionARX[0])>1) + { + $VARasterisk_version = $CLIastversionARX[0]; + $VARasterisk_version =~ s/ |\r|\n|\t//gi; + $CLIasterisk_version=1; + print " CLI asterisk version: $VARasterisk_version\n"; + } + } + if ($args =~ /--FTP_host=/i) # CLI defined archive server address + { + @CLIFTP_hostARY = split(/--FTP_host=/,$args); + @CLIFTP_hostARX = split(/ /,$CLIFTP_hostARY[1]); + if (length($CLIFTP_hostARX[0])>2) + { + $VARFTP_host = $CLIFTP_hostARX[0]; + $VARFTP_host =~ s/\/$| |\r|\n|\t//gi; + $CLIFTP_host=1; + print " CLI defined FTP host: $VARFTP_host\n"; + } + } + if ($args =~ /--FTP_user=/i) # CLI defined archive FTP user + { + @CLIFTP_userARY = split(/--FTP_user=/,$args); + @CLIFTP_userARX = split(/ /,$CLIFTP_userARY[1]); + if (length($CLIFTP_userARX[0])>2) + { + $VARFTP_user = $CLIFTP_userARX[0]; + $VARFTP_user =~ s/\/$| |\r|\n|\t//gi; + $CLIFTP_user=1; + print " CLI defined FTP user: $VARFTP_user\n"; + } + } + if ($args =~ /--FTP_pass=/i) # CLI defined archive FTP pass + { + @CLIFTP_passARY = split(/--FTP_pass=/,$args); + @CLIFTP_passARX = split(/ /,$CLIFTP_passARY[1]); + if (length($CLIFTP_passARX[0])>2) + { + $VARFTP_pass = $CLIFTP_passARX[0]; + $VARFTP_pass =~ s/\/$| |\r|\n|\t//gi; + $CLIFTP_pass=1; + print " CLI defined FTP pass: $VARFTP_pass\n"; + } + } + if ($args =~ /--FTP_port=/i) # CLI defined archive FTP port + { + @CLIFTP_portARY = split(/--FTP_port=/,$args); + @CLIFTP_portARX = split(/ /,$CLIFTP_portARY[1]); + if (length($CLIFTP_portARX[0])>2) + { + $VARFTP_port = $CLIFTP_portARX[0]; + $VARFTP_port =~ s/\/$| |\r|\n|\t//gi; + $CLIFTP_port=1; + print " CLI defined FTP port: $VARFTP_port\n"; + } + } + if ($args =~ /--FTP_dir=/i) # CLI defined archive FTP directory + { + @CLIFTP_dirARY = split(/--FTP_dir=/,$args); + @CLIFTP_dirARX = split(/ /,$CLIFTP_dirARY[1]); + if (length($CLIFTP_dirARX[0])>2) + { + $VARFTP_dir = $CLIFTP_dirARX[0]; + $VARFTP_dir =~ s/\/$| |\r|\n|\t//gi; + $CLIFTP_dir=1; + print " CLI defined FTP dir: $VARFTP_dir\n"; + } + } + if ($args =~ /--HTTP_path=/i) # CLI defined archive HTTP path + { + @CLIHTTP_pathARY = split(/--HTTP_path=/,$args); + @CLIHTTP_pathARX = split(/ /,$CLIHTTP_pathARY[1]); + if (length($CLIHTTP_pathARX[0])>2) + { + $VARHTTP_path = $CLIHTTP_pathARX[0]; + $VARHTTP_path =~ s/\/$| |\r|\n|\t//gi; + $CLIHTTP_path=1; + print " CLI defined HTTP path: $VARHTTP_path\n"; + } + } + if ($args =~ /--REPORT_host=/i) # CLI defined archive server address + { + @CLIREPORT_hostARY = split(/--REPORT_host=/,$args); + @CLIREPORT_hostARX = split(/ /,$CLIREPORT_hostARY[1]); + if (length($CLIREPORT_hostARX[0])>2) + { + $VARREPORT_host = $CLIREPORT_hostARX[0]; + $VARREPORT_host =~ s/\/$| |\r|\n|\t//gi; + $CLIREPORT_host=1; + print " CLI defined REPORT host: $VARREPORT_host\n"; + } + } + if ($args =~ /--REPORT_user=/i) # CLI defined archive REPORT user + { + @CLIREPORT_userARY = split(/--REPORT_user=/,$args); + @CLIREPORT_userARX = split(/ /,$CLIREPORT_userARY[1]); + if (length($CLIREPORT_userARX[0])>2) + { + $VARREPORT_user = $CLIREPORT_userARX[0]; + $VARREPORT_user =~ s/\/$| |\r|\n|\t//gi; + $CLIREPORT_user=1; + print " CLI defined REPORT user: $VARREPORT_user\n"; + } + } + if ($args =~ /--REPORT_pass=/i) # CLI defined archive REPORT pass + { + @CLIREPORT_passARY = split(/--REPORT_pass=/,$args); + @CLIREPORT_passARX = split(/ /,$CLIREPORT_passARY[1]); + if (length($CLIREPORT_passARX[0])>2) + { + $VARREPORT_pass = $CLIREPORT_passARX[0]; + $VARREPORT_pass =~ s/\/$| |\r|\n|\t//gi; + $CLIREPORT_pass=1; + print " CLI defined REPORT pass: $VARREPORT_pass\n"; + } + } + if ($args =~ /--REPORT_port=/i) # CLI defined archive REPORT port + { + @CLIREPORT_portARY = split(/--REPORT_port=/,$args); + @CLIREPORT_portARX = split(/ /,$CLIREPORT_portARY[1]); + if (length($CLIREPORT_portARX[0])>2) + { + $VARREPORT_port = $CLIREPORT_portARX[0]; + $VARREPORT_port =~ s/\/$| |\r|\n|\t//gi; + $CLIREPORT_port=1; + print " CLI defined REPORT port: $VARREPORT_port\n"; + } + } + if ($args =~ /--REPORT_dir=/i) # CLI defined archive REPORT directory + { + @CLIREPORT_dirARY = split(/--REPORT_dir=/,$args); + @CLIREPORT_dirARX = split(/ /,$CLIREPORT_dirARY[1]); + if (length($CLIREPORT_dirARX[0])>2) + { + $VARREPORT_dir = $CLIREPORT_dirARX[0]; + $VARREPORT_dir =~ s/\/$| |\r|\n|\t//gi; + $CLIREPORT_dir=1; + print " CLI defined REPORT dir: $VARREPORT_dir\n"; + } + } + + if ($args =~ /--copy_sample_conf_files/i) # CLI defined conf files + { + $CLIcopy_conf_files='y'; + print " CLI copy conf files: YES\n"; + } + else + { + $CLIcopy_conf_files='n'; + } + + if ($args =~ /--fastagi_log_min_servers=/i) # CLI defined fastagi min servers + { + @CLIDB_minserARY = split(/--fastagi_log_min_servers=/,$args); + @CLIDB_minserARX = split(/ /,$CLIDB_minserARY[1]); + if (length($CLIDB_minserARX[0])>1) + { + $VARfastagi_log_min_servers = $CLIDB_minserARX[0]; + $VARfastagi_log_min_servers =~ s/ |\r|\n|\t//gi; + $CLIfastagi_log_min_servers=1; + print " CLI defined log min server: $VARfastagi_log_min_servers\n"; + } + } + if ($args =~ /--fastagi_log_max_servers=/i) # CLI defined fastagi max servers + { + @CLIDB_maxserARY = split(/--fastagi_log_max_servers=/,$args); + @CLIDB_maxserARX = split(/ /,$CLIDB_maxserARY[1]); + if (length($CLIDB_maxserARX[0])>1) + { + $VARfastagi_log_max_servers = $CLIDB_maxserARX[0]; + $VARfastagi_log_max_servers =~ s/ |\r|\n|\t//gi; + $CLIfastagi_log_max_servers=1; + print " CLI defined log max server: $VARfastagi_log_max_servers\n"; + } + } + if ($args =~ /--fastagi_log_min_spare_servers=/i) # CLI defined fastagi min spare servers + { + @CLIDB_minspaARY = split(/--fastagi_log_min_spare_servers=/,$args); + @CLIDB_minspaARX = split(/ /,$CLIDB_minspaARY[1]); + if (length($CLIDB_minspaARX[0])>1) + { + $VARfastagi_log_min_spare_servers = $CLIDB_minspaARX[0]; + $VARfastagi_log_min_spare_servers =~ s/ |\r|\n|\t//gi; + $CLIfastagi_log_min_spare_servers=1; + print " CLI defined log min spare: $VARfastagi_log_min_spare_servers\n"; + } + } + if ($args =~ /--fastagi_log_max_spare_servers=/i) # CLI defined fastagi max spare servers + { + @CLIDB_maxspaARY = split(/--fastagi_log_max_spare_servers=/,$args); + @CLIDB_maxspaARX = split(/ /,$CLIDB_maxspaARY[1]); + if (length($CLIDB_maxspaARX[0])>1) + { + $VARfastagi_log_max_spare_servers = $CLIDB_maxspaARX[0]; + $VARfastagi_log_max_spare_servers =~ s/ |\r|\n|\t//gi; + $CLIfastagi_log_max_spare_servers=1; + print " CLI defined log max spare: $VARfastagi_log_max_spare_servers\n"; + } + } + if ($args =~ /--fastagi_log_max_requests=/i) # CLI defined fastagi max requests + { + @CLIDB_maxreqARY = split(/--fastagi_log_max_requests=/,$args); + @CLIDB_maxreqARX = split(/ /,$CLIDB_maxreqARY[1]); + if (length($CLIDB_maxreqARX[0])>1) + { + $VARfastagi_log_max_requests = $CLIDB_maxreqARX[0]; + $VARfastagi_log_max_requests =~ s/ |\r|\n|\t//gi; + $CLIfastagi_log_max_requests=1; + print " CLI defined log max request:$VARfastagi_log_max_requests\n"; + } + } + if ($args =~ /--fastagi_log_checkfordead=/i) # CLI defined fastagi check-for-dead seconds + { + @CLIDB_ckdeadARY = split(/--fastagi_log_checkfordead=/,$args); + @CLIDB_ckdeadARX = split(/ /,$CLIDB_ckdeadARY[1]); + if (length($CLIDB_ckdeadARX[0])>1) + { + $VARfastagi_log_checkfordead = $CLIDB_ckdeadARX[0]; + $VARfastagi_log_checkfordead =~ s/ |\r|\n|\t//gi; + $CLIfastagi_log_checkfordead=1; + print " CLI defined log ckdead sec: $VARfastagi_log_checkfordead\n"; + } + } + if ($args =~ /--fastagi_log_checkforwait=/i) # CLI defined fastagi check-for-wait seconds + { + @CLIDB_ckwaitARY = split(/--fastagi_log_checkforwait=/,$args); + @CLIDB_ckwaitARX = split(/ /,$CLIDB_ckwaitARY[1]); + if (length($CLIDB_ckwaitARX[0])>1) + { + $VARfastagi_log_checkforwait = $CLIDB_ckwaitARX[0]; + $VARfastagi_log_checkforwait =~ s/ |\r|\n|\t//gi; + $CLIfastagi_log_checkforwait=1; + print " CLI defined log ckwait sec: $VARfastagi_log_checkforwait\n"; + } + } + + if ($args =~ /--build_multiserver_conf/i) # CLI defined conf files + { + $build_multiserver_conf='y'; + print " CLI multiserver conf gen: YES\n"; + + # default path to astguiclient configuration file: + $PATHconf = '/etc/astguiclient.conf'; + + open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; + @conf = ; + close(conf); + $i=0; + foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + + # Customized Variables + $server_ip = $VARserver_ip; # Asterisk server IP + if (!$VARDB_port) {$VARDB_port='3306';} + + use DBI; + + $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + ### format the new server_ip dialstring for example to use with extensions.conf + $S='*'; + if( $VARserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VARremDIALstr = "$a$S$b$S$c$S$d"; + } + + $ext = "\nAdd the following lines to your extensions.conf file:\n"; + $ext .= "TRUNKloop = IAX2/ASTloop:test\@127.0.0.1:40569\n"; + $ext .= "TRUNKblind = IAX2/ASTblind:test\@127.0.0.1:41569\n"; + + $iax = "\nAdd the following lines to your iax.conf file:\n"; + $iax .= "register => ASTloop:test\@127.0.0.1:40569\n"; + $iax .= "register => ASTblind:test\@127.0.0.1:41569\n"; + + $Lext = "\n"; + $Lext .= "; Local Server: $server_ip\n"; + $Lext .= "exten => _$VARremDIALstr*.,1,Goto(default,\${EXTEN:16},1)\n"; + $Lext .= "exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)\n"; + $Lext .= "exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)\n"; + $Lext .= "; Local blind monitoring\n"; + $Lext .= "exten => _08600XXX,1,Dial(\${TRUNKblind}/6\${EXTEN:1},55,o)\n"; + + $Liax .= "\n"; + $Liax .= "[ASTloop]\n"; + $Liax .= "type=friend\n"; + $Liax .= "accountcode=IAXASTloop\n"; + $Liax .= "context=default\n"; + $Liax .= "auth=plaintext\n"; + $Liax .= "host=dynamic\n"; + $Liax .= "permit=0.0.0.0/0.0.0.0\n"; + $Liax .= "secret=test\n"; + $Liax .= "disallow=all\n"; + $Liax .= "allow=ulaw\n"; + $Liax .= "qualify=yes\n"; + + $Liax .= "\n"; + $Liax .= "[ASTblind]\n"; + $Liax .= "type=friend\n"; + $Liax .= "accountcode=IAXASTblind\n"; + $Liax .= "context=default\n"; + $Liax .= "auth=plaintext\n"; + $Liax .= "host=dynamic\n"; + $Liax .= "permit=0.0.0.0/0.0.0.0\n"; + $Liax .= "secret=test\n"; + $Liax .= "disallow=all\n"; + $Liax .= "allow=ulaw\n"; + $Liax .= "qualify=yes\n"; + + ##### Get the server_id for this server's server_ip ##### + $stmtA = "SELECT server_id FROM servers where server_ip='$server_ip';"; + print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $server_id = "$aryA[0]"; + $i++; + } + $sthA->finish(); + + ##### Get the server_ips and server_ids of all VICIDIAL servers on the network ##### + $stmtA = "SELECT server_ip,server_id FROM servers where server_ip!='$server_ip';"; + print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $server_ip[$i] = "$aryA[0]"; + $server_id[$i] = "$aryA[1]"; + + if( $server_ip[$i] =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VARremDIALstr = "$a$S$b$S$c$S$d"; + } + $ext .= "TRUNK$server_id[$i] = IAX2/$server_id:test\@$server_ip[$i]:4569\n"; + + $iax .= "register => $server_id:test\@$server_ip[$i]:4569\n"; + + $Lext .= "; Remote Server VDAD extens: $server_id[$i] $server_ip[$i]\n"; + $Lext .= "exten => _$VARremDIALstr*.,1,Dial(\${TRUNK$server_id[$i]}/\${EXTEN:16},55,o)\n"; + + $Liax .= "\n"; + $Liax .= "[$server_id[$i]]\n"; + $Liax .= "type=friend\n"; + $Liax .= "accountcode=IAX$server_id[$i]\n"; + $Liax .= "context=default\n"; + $Liax .= "auth=plaintext\n"; + $Liax .= "host=dynamic\n"; + $Liax .= "permit=0.0.0.0/0.0.0.0\n"; + $Liax .= "secret=test\n"; + $Liax .= "disallow=all\n"; + $Liax .= "allow=ulaw\n"; + $Liax .= "qualify=yes\n"; + + $i++; + } + $sthA->finish(); + + + print "$ext$Lext\n$iax$Liax\n"; + exit; + } + + + if ($args =~ /--build_phones_conf/i) # CLI defined conf files + { + $build_phones_conf='y'; + print " CLI phones conf gen: YES\n"; + + # default path to astguiclient configuration file: + $PATHconf = '/etc/astguiclient.conf'; + + open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; + @conf = ; + close(conf); + $i=0; + foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + + # Customized Variables + $server_ip = $VARserver_ip; # Asterisk server IP + if (!$VARDB_port) {$VARDB_port='3306';} + + use DBI; + + $dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + $ext = "\nAdd the following lines to your extensions.conf file:\n"; + + $sip = "\nAdd the following lines to your sip.conf file:\n"; + + $iax = "\nAdd the following lines to your iax.conf file:\n"; + + $vm = "\nAdd the following lines to your voicemail.conf file:\n"; + + ##### Get the SIP phone entries ##### + $stmtA = "SELECT extension,dialplan_number,voicemail_id,pass FROM phones where server_ip='$server_ip' and protocol='SIP';"; + print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $extension[$i] = "$aryA[0]"; + $dialplan[$i] = "$aryA[1]"; + $voicemail[$i] = "$aryA[2]"; + $pass[$i] = "$aryA[3]"; + + $ext .= "exten => $dialplan[$i],1,Dial(SIP/$extension[$i])\n"; + $ext .= "exten => $dialplan[$i],2,Voicemail,u$voicemail[$i]\n"; + + $sip .= "\[$extension[$i]\]\n"; + $sip .= "disallow=all\n"; + $sip .= "allow=ulaw\n"; + $sip .= "type=friend\n"; + $sip .= "username=$extension[$i]\n"; + $sip .= "secret=$pass[$i]\n"; + $sip .= "host=dynamic\n"; + $sip .= "dtmfmode=rfc2833\n"; + $sip .= "qualify=1000\n"; + $sip .= "mailbox=$voicemail[$i]\n\n"; + + $vm .= "$voicemail[$i] => $voicemail[$i],$extension[$i] Mailbox\n"; + + $i++; + } + $sthA->finish(); + + ##### Get the IAX phone entries ##### + $stmtA = "SELECT extension,dialplan_number,voicemail_id,pass FROM phones where server_ip='$server_ip' and protocol='IAX2';"; + print "$stmtA\n"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $i=0; + while ($sthArows > $i) + { + @aryA = $sthA->fetchrow_array; + $extension[$i] = "$aryA[0]"; + $dialplan[$i] = "$aryA[1]"; + $voicemail[$i] = "$aryA[2]"; + $pass[$i] = "$aryA[3]"; + + $ext .= "exten => $dialplan[$i],1,Dial(IAX2/$extension[$i])\n"; + $ext .= "exten => $dialplan[$i],2,Voicemail,u$voicemail[$i]\n"; + + $iax .= "\[$extension[$i]\]\n"; + $iax .= "disallow=all\n"; + $iax .= "allow=ulaw\n"; + $iax .= "context=default\n"; + $iax .= "type=friend\n"; + $iax .= "accountcode=$extension[$i]\n"; + $iax .= "secret=$pass[$i]\n"; + $iax .= "auth=md5\n"; + $iax .= "host=dynamic\n"; + $iax .= "permit=0.0.0.0/0.0.0.0\n"; + $iax .= "qualify=1000\n"; + $iax .= "mailbox=$voicemail[$i]\n\n"; + + $vm .= "$voicemail[$i] => $voicemail[$i],$extension[$i] Mailbox\n"; + + $i++; + } + $sthA->finish(); + + print "$ext\n$sip\n$iax\n$vm\n"; + exit; + } + } + } +else + { + # print "no command line options set\n"; + $CLIcopy_conf_files='n'; + } +### end parsing run-time options ### + +if (-e "$PATHconf") + { + print "Previous astGUIclient configuration file found at: $PATHconf\n"; + open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; + @conf = ; + close(conf); + $i=0; + foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^PATHDONEmonitor/) && ($CLIDONEmonitor < 1) ) + {$PATHDONEmonitor = $line; $PATHDONEmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + if ( ($line =~ /^VARactive_keepalives/) && ($CLIactive_keepalives < 1) ) + {$VARactive_keepalives = $line; $VARactive_keepalives =~ s/.*=//gi;} + if ( ($line =~ /^VARasterisk_version/) && ($CLIasterisk_version < 1) ) + {$VARasterisk_version = $line; $VARasterisk_version =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_host/) && ($CLIFTP_host < 1) ) + {$VARFTP_host = $line; $VARFTP_host =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_user/) && ($CLIFTP_user < 1) ) + {$VARFTP_user = $line; $VARFTP_user =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_pass/) && ($CLIFTP_pass < 1) ) + {$VARFTP_pass = $line; $VARFTP_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_port/) && ($CLIFTP_port < 1) ) + {$VARFTP_port = $line; $VARFTP_port =~ s/.*=//gi;} + if ( ($line =~ /^VARFTP_dir/) && ($CLIFTP_dir < 1) ) + {$VARFTP_dir = $line; $VARFTP_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARHTTP_path/) && ($CLIHTTP_path < 1) ) + {$VARHTTP_path = $line; $VARHTTP_path =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_host/) && ($CLIREPORT_host < 1) ) + {$VARREPORT_host = $line; $VARREPORT_host =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_user/) && ($CLIREPORT_user < 1) ) + {$VARREPORT_user = $line; $VARREPORT_user =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_pass/) && ($CLIREPORT_pass < 1) ) + {$VARREPORT_pass = $line; $VARREPORT_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_port/) && ($CLIREPORT_port < 1) ) + {$VARREPORT_port = $line; $VARREPORT_port =~ s/.*=//gi;} + if ( ($line =~ /^VARREPORT_dir/) && ($CLIREPORT_dir < 1) ) + {$VARREPORT_dir = $line; $VARREPORT_dir =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_min_servers/) && ($CLIVARfastagi_log_min_servers < 1) ) + {$VARfastagi_log_min_servers = $line; $VARfastagi_log_min_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_servers/) && ($CLIVARfastagi_log_max_servers < 1) ) + {$VARfastagi_log_max_servers = $line; $VARfastagi_log_max_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_min_spare_servers/) && ($CLIVARfastagi_log_min_spare_servers < 1) ) + {$VARfastagi_log_min_spare_servers = $line; $VARfastagi_log_min_spare_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_spare_servers/) && ($CLIVARfastagi_log_max_spare_servers < 1) ) + {$VARfastagi_log_max_spare_servers = $line; $VARfastagi_log_max_spare_servers =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_max_requests/) && ($CLIVARfastagi_log_max_requests < 1) ) + {$VARfastagi_log_max_requests = $line; $VARfastagi_log_max_requests =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_checkfordead/) && ($CLIVARfastagi_log_checkfordead < 1) ) + {$VARfastagi_log_checkfordead = $line; $VARfastagi_log_checkfordead =~ s/.*=//gi;} + if ( ($line =~ /^VARfastagi_log_checkforwait/) && ($CLIVARfastagi_log_checkforwait < 1) ) + {$VARfastagi_log_checkforwait = $line; $VARfastagi_log_checkforwait =~ s/.*=//gi;} + $i++; + } + } + +if (!$NOPROMPT) + { + print("\nWould you like to use manual configuration and installation(y/n): [y] "); + $manual = ; + chomp($manual); + } +if ( ($manual =~ /n/i) || ($NOPROMPT > 0) ) + { + $manual=0; + } +else + { + $config_finished='NO'; + while ($config_finished =~/NO/) + { + print "\nSTARTING ASTGUICLIENT MANUAL CONFIGURATION PHASE...\n"; + ##### BEGIN astguiclient home directory prompting and existence check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nastguiclient home path or press enter for default: [$PATHhome] "); + $PROMPThome = ; + chomp($PROMPThome); + if (length($PROMPThome)>2) + { + $PROMPThome =~ s/ |\n|\r|\t|\/$//gi; + if (!-e "$PROMPThome") + { + print("$PROMPThome does not exist, would you like me to create it?(y/n) [y] "); + $createPROMPThome = ; + chomp($createPROMPThome); + if ($createPROMPThome =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PROMPThome`; + print " $PROMPThome directory created\n"; + $PATHhome=$PROMPThome; + $continue='YES'; + } + } + else + { + $PATHhome=$PROMPThome; + $continue='YES'; + } + } + else + { + if (!-e "$PATHhome") + { + print("$PATHhome does not exist, would you like me to create it?(y/n) [y] "); + $createPATHhome = ; + chomp($createPATHhome); + if ($createPATHhome =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PATHhome`; + print " $PATHhome directory created\n"; + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + } + ##### END astguiclient home directory prompting and existence check ##### + + ##### BEGIN astguiclient logs directory prompting and existence check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nastguiclient logs path or press enter for default: [$PATHlogs] "); + $PROMPTlogs = ; + chomp($PROMPTlogs); + if (length($PROMPTlogs)>2) + { + $PROMPTlogs =~ s/ |\n|\r|\t|\/$//gi; + if (!-e "$PROMPTlogs") + { + print("$PROMPTlogs does not exist, would you like me to create it?(y/n) [y] "); + $createPROMPTlogs = ; + chomp($createPROMPTlogs); + if ($createPROMPTlogs =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PROMPTlogs`; + print " $PROMPTlogs directory created\n"; + $PATHlogs=$PROMPTlogs; + $continue='YES'; + } + } + else + { + $PATHlogs=$PROMPTlogs; + $continue='YES'; + } + } + else + { + if (!-e "$PATHlogs") + { + print("$PATHlogs does not exist, would you like me to create it?(y/n) [y] "); + $createPATHlogs = ; + chomp($createPATHlogs); + if ($createPATHlogs =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p --mode=0666 $PATHlogs`; + print " $PATHlogs directory created\n"; + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + } + ##### END astguiclient logs directory prompting and existence check ##### + + ##### BEGIN asterisk agi-bin directory prompting and existence check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nasterisk agi-bin path or press enter for default: [$PATHagi] "); + $PROMPTagi = ; + chomp($PROMPTagi); + if (length($PROMPTagi)>2) + { + $PROMPTagi =~ s/ |\n|\r|\t|\/$//gi; + if (!-e "$PROMPTagi") + { + print("$PROMPTagi does not exist, would you like me to create it?(y/n) [y] "); + $createPROMPTagi = ; + chomp($createPROMPTagi); + if ($createPROMPTagi =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PROMPTagi`; + print " $PROMPTagi directory created\n"; + $PATHagi=$PROMPTagi; + $continue='YES'; + } + } + else + { + $PATHagi=$PROMPTagi; + $continue='YES'; + } + } + else + { + if (!-e "$PATHagi") + { + print("$PATHagi does not exist, would you like me to create it?(y/n) [y] "); + $createPATHagi = ; + chomp($createPATHagi); + if ($createPATHagi =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PATHagi`; + print " $PATHagi directory created\n"; + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + } + ##### END asterisk agi-bin directory prompting and existence check ##### + + ##### BEGIN server webroot directory prompting and existence check ##### + $continue='NO'; + while ( ($continue =~/NO/) && ($NOWEB < 1) ) + { + print("\nserver webroot path or press enter for default: [$PATHweb] "); + $PROMPTweb = ; + chomp($PROMPTweb); + if (length($PROMPTweb)>2) + { + $PROMPTweb =~ s/ |\n|\r|\t|\/$//gi; + if (!-e "$PROMPTweb") + { + print("$PROMPTweb does not exist, would you like me to create it?(y/n) [y] "); + $createPROMPTweb = ; + chomp($createPROMPTweb); + if ($createPROMPTweb =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PROMPTweb`; + print " $PROMPTweb directory created\n"; + $PATHweb=$PROMPTweb; + $continue='YES'; + } + } + else + { + $PATHweb=$PROMPTweb; + $continue='YES'; + } + } + else + { + if (!-e "$PATHweb") + { + print("$PATHweb does not exist, would you like me to create it?(y/n) [y] "); + $createPATHweb = ; + chomp($createPATHweb); + if ($createPATHweb =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PATHweb`; + print " $PATHweb directory created\n"; + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + } + ##### END server webroot directory prompting and existence check ##### + + ##### BEGIN asterisk sounds directory prompting and existence check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nasterisk sounds path or press enter for default: [$PATHsounds] "); + $PROMPTsounds = ; + chomp($PROMPTsounds); + if (length($PROMPTsounds)>2) + { + $PROMPTsounds =~ s/ |\n|\r|\t|\/$//gi; + if (!-e "$PROMPTsounds") + { + print("$PROMPTsounds does not exist, would you like me to create it?(y/n) [y] "); + $createPROMPTsounds = ; + chomp($createPROMPTsounds); + if ($createPROMPTsounds =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PROMPTsounds`; + print " $PROMPTsounds directory created\n"; + $PATHsounds=$PROMPTsounds; + $continue='YES'; + } + } + else + { + $PATHsounds=$PROMPTsounds; + $continue='YES'; + } + } + else + { + if (!-e "$PATHsounds") + { + print("$PATHsounds does not exist, would you like me to create it?(y/n) [y] "); + $createPATHsounds = ; + chomp($createPATHsounds); + if ($createPATHsounds =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PATHsounds`; + print " $PATHsounds directory created\n"; + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + } + ##### END asterisk sounds directory prompting and existence check ##### + + ##### BEGIN asterisk monitor directory prompting and existence check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nasterisk monitor path or press enter for default: [$PATHmonitor] "); + $PROMPTmonitor = ; + chomp($PROMPTmonitor); + if (length($PROMPTmonitor)>2) + { + $PROMPTmonitor =~ s/ |\n|\r|\t|\/$//gi; + if (!-e "$PROMPTmonitor") + { + print("$PROMPTmonitor does not exist, would you like me to create it?(y/n) [y] "); + $createPROMPTmonitor = ; + chomp($createPROMPTmonitor); + if ($createPROMPTmonitor =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PROMPTmonitor`; + print " $PROMPTmonitor directory created\n"; + $PATHmonitor=$PROMPTmonitor; + $continue='YES'; + } + } + else + { + $PATHmonitor=$PROMPTmonitor; + $continue='YES'; + } + } + else + { + if (!-e "$PATHmonitor") + { + print("$PATHmonitor does not exist, would you like me to create it?(y/n) [y] "); + $createPATHmonitor = ; + chomp($createPATHmonitor); + if ($createPATHmonitor =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PATHmonitor`; + print " $PATHmonitor directory created\n"; + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + } + ##### END asterisk monitor directory prompting and existence check ##### + + ##### BEGIN asterisk DONEmonitor directory prompting and existence check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nasterisk DONEmonitor path or press enter for default: [$PATHDONEmonitor] "); + $PROMPTDONEmonitor = ; + chomp($PROMPTDONEmonitor); + if (length($PROMPTDONEmonitor)>2) + { + $PROMPTDONEmonitor =~ s/ |\n|\r|\t|\/$//gi; + if (!-e "$PROMPTDONEmonitor") + { + print("$PROMPTDONEmonitor does not exist, would you like me to create it?(y/n) [y] "); + $createPROMPTDONEmonitor = ; + chomp($createPROMPTDONEmonitor); + if ($createPROMPTDONEmonitor =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PROMPTDONEmonitor`; + print " $PROMPTDONEmonitor directory created\n"; + $PATHDONEmonitor=$PROMPTDONEmonitor; + $continue='YES'; + } + } + else + { + $PATHDONEmonitor=$PROMPTDONEmonitor; + $continue='YES'; + } + } + else + { + if (!-e "$PATHDONEmonitor") + { + print("$PATHDONEmonitor does not exist, would you like me to create it?(y/n) [y] "); + $createPATHDONEmonitor = ; + chomp($createPATHDONEmonitor); + if ($createPATHDONEmonitor =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p $PATHDONEmonitor`; + print " $PATHDONEmonitor directory created\n"; + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + } + ##### END asterisk DONEmonitor directory prompting and existence check ##### + + ##### BEGIN server_ip prompting and check ##### + if (length($VARserver_ip)<7) + { + ### get best guess of IP address from ifconfig output ### + # inet addr:10.10.11.17 Bcast:10.10.255.255 Mask:255.255.0.0 + @ip = `/sbin/ifconfig`; + $j=0; + while($#ip>=$j) + { + if ($ip[$j] =~ /inet addr/) {$VARserver_ip = $ip[$j]; $j=1000;} + $j++; + } + $VARserver_ip =~ s/.*addr:| Bcast.*|\r|\n|\t| //gi; + } + + $continue='NO'; + while ($continue =~/NO/) + { + print("\nserver IP address or press enter for default: [$VARserver_ip] "); + $PROMPTserver_ip = ; + chomp($PROMPTserver_ip); + if (length($PROMPTserver_ip)>6) + { + $PROMPTserver_ip =~ s/ |\n|\r|\t|\/$//gi; + $VARserver_ip=$PROMPTserver_ip; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END server_ip prompting and check ##### + + + ##### BEGIN DB_server prompting and check ##### + if (length($VARDB_server)<7) + { + $VARDB_server = 'localhost'; + } + $continue='NO'; + while ($continue =~/NO/) + { + print("\nDB server address or press enter for default: [$VARDB_server] "); + $PROMPTDB_server = ; + chomp($PROMPTDB_server); + if (length($PROMPTDB_server)>6) + { + $PROMPTDB_server =~ s/ |\n|\r|\t|\/$//gi; + $VARDB_server=$PROMPTDB_server; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END DB_server prompting and check ##### + + ##### BEGIN DB_database prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nDB database name or press enter for default: [$VARDB_database] "); + $PROMPTDB_database = ; + chomp($PROMPTDB_database); + if (length($PROMPTDB_database)>1) + { + $PROMPTDB_database =~ s/ |\n|\r|\t|\/$//gi; + $VARDB_database=$PROMPTDB_database; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END DB_database prompting and check ##### + + ##### BEGIN DB_user prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nDB user login or press enter for default: [$VARDB_user] "); + $PROMPTDB_user = ; + chomp($PROMPTDB_user); + if (length($PROMPTDB_user)>1) + { + $PROMPTDB_user =~ s/ |\n|\r|\t|\/$//gi; + $VARDB_user=$PROMPTDB_user; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END DB_user prompting and check ##### + + ##### BEGIN DB_pass prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nDB user password or press enter for default: [$VARDB_pass] "); + $PROMPTDB_pass = ; + chomp($PROMPTDB_pass); + if (length($PROMPTDB_pass)>1) + { + $PROMPTDB_pass =~ s/ |\n|\r|\t|\/$//gi; + $VARDB_pass=$PROMPTDB_pass; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END DB_pass prompting and check ##### + + ##### BEGIN DB_port prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nDB connection port or press enter for default: [$VARDB_port] "); + $PROMPTDB_port = ; + chomp($PROMPTDB_port); + if (length($PROMPTDB_port)>1) + { + $PROMPTDB_port =~ s/ |\n|\r|\t|\/$//gi; + $VARDB_port=$PROMPTDB_port; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END DB_port prompting and check ##### + + ##### BEGIN active_keepalives prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print "\nNumeric list of the astGUIclient processes to be kept running\n"; + print "(value should be listing of characters with no spaces: 123456)\n"; + print " X - NO KEEPALIVE PROCESSES (use only if you want none to be keepalive)\n"; + print " 1 - AST_update\n"; + print " 2 - AST_send_listen\n"; + print " 3 - AST_VDauto_dial\n"; + print " 4 - AST_VDremote_agents\n"; + print " 5 - AST_VDadapt (If multi-server system, this must only be on one server)\n"; + print " 6 - FastAGI_log\n"; + print " 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server)\n"; + print " 8 - ip_relay (used for blind agent monitoring)\n"; + print " 9 - Timeclock auto logout\n"; + print "Enter active keepalives or press enter for default: [$VARactive_keepalives] "; + $PROMPTactive_keepalives = ; + chomp($PROMPTactive_keepalives); + if (length($PROMPTactive_keepalives)>0) + { + $PROMPTactive_keepalives =~ s/ |\n|\r|\t|\/$//gi; + $VARactive_keepalives=$PROMPTactive_keepalives; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END active_keepalives prompting and check ##### + + ##### BEGIN asterisk_version prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print "\nEnter the Asterisk version that you are installing VICIDIAL for\n"; + print "(value should be listing of characters with no spaces: 123456)\n"; + print " 1.2\n"; + print " 1.4\n"; + print "Enter asterisk version or press enter for default: [$VARasterisk_version] "; + $PROMPTasterisk_version = ; + chomp($PROMPTasterisk_version); + if (length($PROMPTasterisk_version)>2) + { + $PROMPTasterisk_version =~ s/ |\n|\r|\t|\/$//gi; + $VARasterisk_version=$PROMPTasterisk_version; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END asterisk_version prompting and check ##### + + ##### BEGIN copy asterisk sample conf files prompt ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nCopy sample configuration files to /etc/asterisk/ ? [$CLIcopy_conf_files] "); + $PROMPTcopy_conf_files = ; + chomp($PROMPTcopy_conf_files); + if (length($PROMPTcopy_conf_files)<1) + {$PROMPTcopy_conf_files = $CLIcopy_conf_files;} + if ($PROMPTcopy_conf_files =~ /y/i) + { + if (!-e "/etc/asterisk") + { + print("/etc/asterisk does not exist, would you like me to create it?(y/n) [y] "); + $createPROMPTmonitor = ; + chomp($createPROMPTmonitor); + if ($createPROMPTmonitor =~ /n/i) + { + $continue='NO'; + } + else + { + `mkdir -p /etc/asterisk`; + print " /etc/asterisk directory created\n"; + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + else + { + $continue='YES'; + } + } + ##### END copy asterisk sample conf files prompt ##### + + ##### BEGIN FTP_host prompting and check ##### + if (length($VARFTP_host)<7) + { + $VARFTP_host = 'localhost'; + } + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFTP host address or press enter for default: [$VARFTP_host] "); + $PROMPTFTP_host = ; + chomp($PROMPTFTP_host); + if (length($PROMPTFTP_host)>6) + { + $PROMPTFTP_host =~ s/ |\n|\r|\t|\/$//gi; + $VARFTP_host=$PROMPTFTP_host; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END FTP_host prompting and check ##### + + ##### BEGIN FTP_user prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFTP user login or press enter for default: [$VARFTP_user] "); + $PROMPTFTP_user = ; + chomp($PROMPTFTP_user); + if (length($PROMPTFTP_user)>1) + { + $PROMPTFTP_user =~ s/ |\n|\r|\t|\/$//gi; + $VARFTP_user=$PROMPTFTP_user; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END FTP_user prompting and check ##### + + ##### BEGIN FTP_pass prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFTP user password or press enter for default: [$VARFTP_pass] "); + $PROMPTFTP_pass = ; + chomp($PROMPTFTP_pass); + if (length($PROMPTFTP_pass)>1) + { + $PROMPTFTP_pass =~ s/ |\n|\r|\t|\/$//gi; + $VARFTP_pass=$PROMPTFTP_pass; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END FTP_pass prompting and check ##### + + ##### BEGIN FTP_port prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFTP connection port or press enter for default: [$VARFTP_port] "); + $PROMPTFTP_port = ; + chomp($PROMPTFTP_port); + if (length($PROMPTFTP_port)>1) + { + $PROMPTFTP_port =~ s/ |\n|\r|\t|\/$//gi; + $VARFTP_port=$PROMPTFTP_port; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END FTP_port prompting and check ##### + + ##### BEGIN FTP_dir prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFTP directory or press enter for default: [$VARFTP_dir] "); + $PROMPTFTP_dir = ; + chomp($PROMPTFTP_dir); + if (length($PROMPTFTP_dir)>1) + { + $PROMPTFTP_dir =~ s/ |\n|\r|\t|\/$//gi; + $VARFTP_dir=$PROMPTFTP_dir; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END FTP_dir prompting and check ##### + + ##### BEGIN HTTP_path prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nHTTP path for archive or press enter for default: [$VARHTTP_path] "); + $PROMPTHTTP_path = ; + chomp($PROMPTHTTP_path); + if (length($PROMPTHTTP_path)>1) + { + $PROMPTHTTP_path =~ s/ |\n|\r|\t|\/$//gi; + $VARHTTP_path=$PROMPTHTTP_path; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END HTTP_path prompting and check ##### + + ##### BEGIN REPORT_host prompting and check ##### + if (length($VARREPORT_host)<7) + { + $VARREPORT_host = 'localhost'; + } + $continue='NO'; + while ($continue =~/NO/) + { + print("\nREPORT host address or press enter for default: [$VARREPORT_host] "); + $PROMPTREPORT_host = ; + chomp($PROMPTREPORT_host); + if (length($PROMPTREPORT_host)>6) + { + $PROMPTREPORT_host =~ s/ |\n|\r|\t|\/$//gi; + $VARREPORT_host=$PROMPTREPORT_host; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END REPORT_host prompting and check ##### + + ##### BEGIN REPORT_user prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nREPORT user login or press enter for default: [$VARREPORT_user] "); + $PROMPTREPORT_user = ; + chomp($PROMPTREPORT_user); + if (length($PROMPTREPORT_user)>1) + { + $PROMPTREPORT_user =~ s/ |\n|\r|\t|\/$//gi; + $VARREPORT_user=$PROMPTREPORT_user; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END REPORT_user prompting and check ##### + + ##### BEGIN REPORT_pass prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nREPORT user password or press enter for default: [$VARREPORT_pass] "); + $PROMPTREPORT_pass = ; + chomp($PROMPTREPORT_pass); + if (length($PROMPTREPORT_pass)>1) + { + $PROMPTREPORT_pass =~ s/ |\n|\r|\t|\/$//gi; + $VARREPORT_pass=$PROMPTREPORT_pass; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END REPORT_pass prompting and check ##### + + ##### BEGIN REPORT_port prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nREPORT connection port or press enter for default: [$VARREPORT_port] "); + $PROMPTREPORT_port = ; + chomp($PROMPTREPORT_port); + if (length($PROMPTREPORT_port)>1) + { + $PROMPTREPORT_port =~ s/ |\n|\r|\t|\/$//gi; + $VARREPORT_port=$PROMPTREPORT_port; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END REPORT_port prompting and check ##### + + ##### BEGIN REPORT_dir prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nREPORT directory or press enter for default: [$VARREPORT_dir] "); + $PROMPTREPORT_dir = ; + chomp($PROMPTREPORT_dir); + if (length($PROMPTREPORT_dir)>1) + { + $PROMPTREPORT_dir =~ s/ |\n|\r|\t|\/$//gi; + $VARREPORT_dir=$PROMPTREPORT_dir; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END REPORT_dir prompting and check ##### + + ##### BEGIN fastagi_log_min_servers prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFastAGI log minimum child servers: [$VARfastagi_log_min_servers] "); + $PROMPTfastagi_log_min_servers = ; + chomp($PROMPTfastagi_log_min_servers); + if (length($PROMPTfastagi_log_min_servers)>0) + { + $PROMPTfastagi_log_min_servers =~ s/ |\n|\r|\t|\/$//gi; + $VARfastagi_log_min_servers=$PROMPTfastagi_log_min_servers; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END fastagi_log_min_servers prompting and check ##### + + ##### BEGIN fastagi_log_max_servers prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFastAGI log maximum child servers: [$VARfastagi_log_max_servers] "); + $PROMPTfastagi_log_max_servers = ; + chomp($PROMPTfastagi_log_max_servers); + if (length($PROMPTfastagi_log_max_servers)>0) + { + $PROMPTfastagi_log_max_servers =~ s/ |\n|\r|\t|\/$//gi; + $VARfastagi_log_max_servers=$PROMPTfastagi_log_max_servers; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END fastagi_log_max_servers prompting and check ##### + + ##### BEGIN fastagi_log_min_spare_servers prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFastAGI log minimum spare child servers: [$VARfastagi_log_min_spare_servers] "); + $PROMPTfastagi_log_min_spare_servers = ; + chomp($PROMPTfastagi_log_min_spare_servers); + if (length($PROMPTfastagi_log_min_spare_servers)>0) + { + $PROMPTfastagi_log_min_spare_servers =~ s/ |\n|\r|\t|\/$//gi; + $VARfastagi_log_min_spare_servers=$PROMPTfastagi_log_min_spare_servers; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END fastagi_log_min_spare_servers prompting and check ##### + + ##### BEGIN fastagi_log_max_spare_servers prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFastAGI log maximum spare child servers: [$VARfastagi_log_max_spare_servers] "); + $PROMPTfastagi_log_max_spare_servers = ; + chomp($PROMPTfastagi_log_max_spare_servers); + if (length($PROMPTfastagi_log_max_spare_servers)>0) + { + $PROMPTfastagi_log_max_spare_servers =~ s/ |\n|\r|\t|\/$//gi; + $VARfastagi_log_max_spare_servers=$PROMPTfastagi_log_max_spare_servers; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END fastagi_log_max_spare_servers prompting and check ##### + + ##### BEGIN fastagi_log_max_requests prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFastAGI log maximum requests per child server: [$VARfastagi_log_max_requests] "); + $PROMPTfastagi_log_max_requests = ; + chomp($PROMPTfastagi_log_max_requests); + if (length($PROMPTfastagi_log_max_requests)>0) + { + $PROMPTfastagi_log_max_requests =~ s/ |\n|\r|\t|\/$//gi; + $VARfastagi_log_max_requests=$PROMPTfastagi_log_max_requests; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END fastagi_log_max_requests prompting and check ##### + + ##### BEGIN fastagi_log_checkfordead prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFastAGI log check-for-dead seconds: [$VARfastagi_log_checkfordead] "); + $PROMPTfastagi_log_checkfordead = ; + chomp($PROMPTfastagi_log_checkfordead); + if (length($PROMPTfastagi_log_checkfordead)>0) + { + $PROMPTfastagi_log_checkfordead =~ s/ |\n|\r|\t|\/$//gi; + $VARfastagi_log_checkfordead=$PROMPTfastagi_log_checkfordead; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END fastagi_log_checkfordead prompting and check ##### + + ##### BEGIN fastagi_log_checkforwait prompting and check ##### + $continue='NO'; + while ($continue =~/NO/) + { + print("\nFastAGI log check-for-wait seconds: [$VARfastagi_log_checkforwait] "); + $PROMPTfastagi_log_checkforwait = ; + chomp($PROMPTfastagi_log_checkforwait); + if (length($PROMPTfastagi_log_checkforwait)>0) + { + $PROMPTfastagi_log_checkforwait =~ s/ |\n|\r|\t|\/$//gi; + $VARfastagi_log_checkforwait=$PROMPTfastagi_log_checkforwait; + $continue='YES'; + } + else + { + $continue='YES'; + } + } + ##### END fastagi_log_checkforwait prompting and check ##### + + + print "\n"; + print " defined home path: $PATHhome\n"; + print " defined logs path: $PATHlogs\n"; + print " defined agi-bin path: $PATHagi\n"; + print " defined webroot path: $PATHweb\n"; + print " defined sounds path: $PATHsounds\n"; + print " defined monitor path: $PATHmonitor\n"; + print " defined DONEmonitor path: $PATHDONEmonitor\n"; + print " defined server_ip: $VARserver_ip\n"; + print " defined DB_server: $VARDB_server\n"; + print " defined DB_database: $VARDB_database\n"; + print " defined DB_user: $VARDB_user\n"; + print " defined DB_pass: $VARDB_pass\n"; + print " defined DB_port: $VARDB_port\n"; + print " defined active_keepalives: $VARactive_keepalives\n"; + print " defined asterisk_version: $VARasterisk_version\n"; + print " defined copying conf files: $PROMPTcopy_conf_files\n"; + print " defined FTP_host: $VARFTP_host\n"; + print " defined FTP_user: $VARFTP_user\n"; + print " defined FTP_pass: $VARFTP_pass\n"; + print " defined FTP_port: $VARFTP_port\n"; + print " defined FTP_dir: $VARFTP_dir\n"; + print " defined HTTP_path: $VARHTTP_path\n"; + print " defined REPORT_host: $VARREPORT_host\n"; + print " defined REPORT_user: $VARREPORT_user\n"; + print " defined REPORT_pass: $VARREPORT_pass\n"; + print " defined REPORT_port: $VARREPORT_port\n"; + print " defined REPORT_dir: $VARREPORT_dir\n"; + print " defined fastagi_log_min_servers: $VARfastagi_log_min_servers\n"; + print " defined fastagi_log_max_servers: $VARfastagi_log_max_servers\n"; + print " defined fastagi_log_min_spare_servers: $VARfastagi_log_min_spare_servers\n"; + print " defined fastagi_log_max_spare_servers: $VARfastagi_log_max_spare_servers\n"; + print " defined fastagi_log_max_requests: $VARfastagi_log_max_requests\n"; + print " defined fastagi_log_checkfordead: $VARfastagi_log_checkfordead\n"; + print " defined fastagi_log_checkforwait: $VARfastagi_log_checkforwait\n"; + print "\n"; + + print("Are these settings correct?(y/n): [y] "); + $PROMPTconfig = ; + chomp($PROMPTconfig); + if ( (length($PROMPTconfig)<1) or ($PROMPTconfig =~ /y/i) ) + { + $config_finished='YES'; + } + } + } + +print "Writing to astguiclient.conf file: $PATHconf\n"; + +open(conf, ">$PATHconf") || die "can't open $PATHconf: $!\n"; +print conf "# astguiclient.conf - configuration elements for the astguiclient package\n"; +print conf "# this is the astguiclient configuration file \n"; +print conf "# all comments will be lost if you run install.pl again\n"; +print conf "\n"; +print conf "# Paths used by astGUIclient\n"; +print conf "PATHhome => $PATHhome\n"; +print conf "PATHlogs => $PATHlogs\n"; +print conf "PATHagi => $PATHagi\n"; +print conf "PATHweb => $PATHweb\n"; +print conf "PATHsounds => $PATHsounds\n"; +print conf "PATHmonitor => $PATHmonitor\n"; +print conf "PATHDONEmonitor => $PATHDONEmonitor\n"; +print conf "\n"; +print conf "# The IP address of this machine\n"; +print conf "VARserver_ip => $VARserver_ip\n"; +print conf "\n"; +print conf "# Database connection information\n"; +print conf "VARDB_server => $VARDB_server\n"; +print conf "VARDB_database => $VARDB_database\n"; +print conf "VARDB_user => $VARDB_user\n"; +print conf "VARDB_pass => $VARDB_pass\n"; +print conf "VARDB_port => $VARDB_port\n"; +print conf "\n"; +print conf "# Alpha-Numeric list of the astGUIclient processes to be kept running\n"; +print conf "# (value should be listing of characters with no spaces: 1234568)\n"; +print conf "# X - NO KEEPALIVE PROCESSES (use only if you want none to be keepalive)\n"; +print conf "# 1 - AST_update\n"; +print conf "# 2 - AST_send_listen\n"; +print conf "# 3 - AST_VDauto_dial\n"; +print conf "# 4 - AST_VDremote_agents\n"; +print conf "# 5 - AST_VDadapt (If multi-server system, this must only be on one server)\n"; +print conf "# 6 - FastAGI_log\n"; +print conf "# 7 - AST_VDauto_dial_FILL (only for multi-server, this must only be on one server)\n"; +print conf "# 8 - ip_relay (used for blind agent monitoring)\n"; +print conf "# 9 - Timeclock auto logout\n"; +print conf "VARactive_keepalives => $VARactive_keepalives\n"; +print conf "\n"; +print conf "# Asterisk version VICIDIAL is installed for\n"; +print conf "VARasterisk_version => $VARasterisk_version\n"; +print conf "\n"; +print conf "# FTP recording archive connection information\n"; +print conf "VARFTP_host => $VARFTP_host\n"; +print conf "VARFTP_user => $VARFTP_user\n"; +print conf "VARFTP_pass => $VARFTP_pass\n"; +print conf "VARFTP_port => $VARFTP_port\n"; +print conf "VARFTP_dir => $VARFTP_dir\n"; +print conf "VARHTTP_path => $VARHTTP_path\n"; +print conf "\n"; +print conf "# REPORT server connection information\n"; +print conf "VARREPORT_host => $VARREPORT_host\n"; +print conf "VARREPORT_user => $VARREPORT_user\n"; +print conf "VARREPORT_pass => $VARREPORT_pass\n"; +print conf "VARREPORT_port => $VARREPORT_port\n"; +print conf "VARREPORT_dir => $VARREPORT_dir\n"; +print conf "\n"; +print conf "# Settings for FastAGI logging server\n"; +print conf "VARfastagi_log_min_servers => $VARfastagi_log_min_servers\n"; +print conf "VARfastagi_log_max_servers => $VARfastagi_log_max_servers\n"; +print conf "VARfastagi_log_min_spare_servers => $VARfastagi_log_min_spare_servers\n"; +print conf "VARfastagi_log_max_spare_servers => $VARfastagi_log_max_spare_servers\n"; +print conf "VARfastagi_log_max_requests => $VARfastagi_log_max_requests\n"; +print conf "VARfastagi_log_checkfordead => $VARfastagi_log_checkfordead\n"; +print conf "VARfastagi_log_checkforwait => $VARfastagi_log_checkforwait\n"; +close(conf); + + +print "\nSTARTING ASTGUICLIENT INSTALLATION PHASE...\n"; + +if ($WEBONLY < 1) + { + print "Creating $PATHhome/LEADS_IN directories...\n"; + if (!-e "$PATHhome/libs/Asterisk") {`mkdir -p $PATHhome/libs/Asterisk`;} + if (!-e "$PATHhome/LEADS_IN/DONE") + { + `mkdir -p $PATHhome/LEADS_IN/DONE`; + `chmod -R 0766 $PATHhome/LEADS_IN`; + } + if (!-e "$PATHhome/VTIGER_IN/DONE") + { + `mkdir -p $PATHhome/VTIGER_IN/DONE`; + `chmod -R 0766 $PATHhome/VTIGER_IN`; + } + if (!-e "$PATHhome/UPDATE_IN/DONE") + { + `mkdir -p $PATHhome/UPDATE_IN/DONE`; + `chmod -R 0766 $PATHhome/UPDATE_IN`; + } + + print "Creating $PATHmonitor directories...\n"; + if (!-e "$PATHmonitor") + { + `mkdir -p $PATHmonitor`; + `chmod -R 0766 $PATHmonitor`; + } + if (!-e "$PATHmonitor/MIX") {`mkdir -p $PATHmonitor/MIX`;} + + if (!-e "$PATHDONEmonitor") + { + `mkdir -p $PATHDONEmonitor`; + `chmod -R 0766 $PATHDONEmonitor`; + } + if (!-e "$PATHDONEmonitor/ORIG") {`mkdir -p $PATHDONEmonitor/ORIG`;} + if (!-e "$PATHDONEmonitor/GSM") {`mkdir -p $PATHDONEmonitor/GSM`;} + if (!-e "$PATHDONEmonitor/MP3") {`mkdir -p $PATHDONEmonitor/MP3`;} + if (!-e "$PATHDONEmonitor/OGG") {`mkdir -p $PATHDONEmonitor/OGG`;} + if (!-e "$PATHDONEmonitor/GSW") {`mkdir -p $PATHDONEmonitor/GSW`;} + if (!-e "$PATHDONEmonitor/FTP") {`mkdir -p $PATHDONEmonitor/FTP`;} + if (!-e "$PATHDONEmonitor/FTP2") {`mkdir -p $PATHDONEmonitor/FTP2`;} + + print "Creating $PATHlogs/archive directory for backups...\n"; + if (!-e "$PATHlogs/archive") {`mkdir -p $PATHlogs/archive`;} + + print "Copying bin scripts to $PATHhome ...\n"; + `cp -f ./bin/* $PATHhome/`; + + print "Copying libs to $PATHhome ...\n"; + `cp -f ./libs/* $PATHhome/libs`; + `cp -f ./extras/Asterisk.pm $PATHhome/libs/`; + `cp -f ./extras/Asterisk/* $PATHhome/libs/Asterisk/`; + + print "setting cron scripts to executable...\n"; + `chmod 0755 $PATHhome/*`; + + print "Copying extras files to $PATHhome ...\n"; +# `cp -f ./extras/GMT_USA_zip.txt $PATHhome/`; +# `cp -f ./extras/phone_codes_GMT.txt $PATHhome/`; + `cp -f ./extras/MySQL_AST_CREATE_tables.sql $PATHhome/`; + + print "Copying agi-bin scripts to $PATHagi ...\n"; + `cp -f ./agi/* $PATHagi/`; + + print "setting agi-bin scripts to executable...\n"; + `chmod 0755 $PATHagi/*`; + + print "Copying sounds to $PATHsounds...\n"; + `cp -f ./sounds/* $PATHsounds/`; + + print "Copying ip_relay scripts to $PATHhome...\n"; + `cp -fR ./extras/ip_relay $PATHhome/`; + + print "Setting ip_relay scripts to executable...\n"; + `chmod 0755 $PATHhome/ip_relay/relay_control`; + `chmod 0755 $PATHhome/ip_relay/ip_relay_linux_i386`; + `ln -s $PATHhome/ip_relay/ip_relay_linux_i386 $PATHhome/ip_relay/ip_relay`; + `ln -s $PATHhome/ip_relay/ip_relay_linux_i386 /usr/bin/ip_relay`; + `ln -s $PATHhome/ip_relay/ip_relay_linux_i386 /usr/local/bin/ip_relay`; + + print "Starting ip_relay port forwarding for IAX on 40569 and 41569\n"; + `$PATHhome/ip_relay/relay_control start 2>/dev/null 1>&2`; + } +if ($NOWEB < 1) + { + print "Creating $PATHweb web directories...\n"; + + if (!-e "$PATHweb/agc/") {`mkdir -p $PATHweb/agc/`;} + if (!-e "$PATHweb/astguiclient/") {`mkdir -p $PATHweb/astguiclient/`;} + if (!-e "$PATHweb/vicidial/") {`mkdir -p $PATHweb/vicidial/`;} + if (!-e "$PATHweb/vicidial/ploticus/") {`mkdir -p $PATHweb/vicidial/ploticus/`;} + if (!-e "$PATHweb/vicidial/agent_reports/") {`mkdir -p $PATHweb/vicidial/agent_reports/`;} + if (!-e "$PATHweb/vicidial/server_reports/") {`mkdir -p $PATHweb/vicidial/server_reports/`;} + + print "Copying web files...\n"; + `cp -f -R ./www/* $PATHweb/`; + + print "setting web scripts to executable...\n"; + `chmod 0777 $PATHweb/`; + `chmod -R 0755 $PATHweb/agc/`; + `chmod -R 0755 $PATHweb/astguiclient/`; + `chmod -R 0755 $PATHweb/vicidial/`; + `chmod 0777 $PATHweb/agc/`; + `chmod 0777 $PATHweb/astguiclient/`; + `chmod 0777 $PATHweb/vicidial/`; + `chmod 0777 $PATHweb/vicidial/ploticus/`; + `chmod 0777 $PATHweb/vicidial/agent_reports/`; + `chmod 0777 $PATHweb/vicidial/server_reports/`; + } + +if ( ($PROMPTcopy_conf_files =~ /y/i) || ($CLIcopy_conf_files =~ /y/i) ) + { + print "Copying sample conf files to /etc/asterisk/...\n"; + `mkdir -p /etc/asterisk`; + if ($VARasterisk_version =~ /^1.2/) + { + `cp -f ./docs/conf_examples/extensions.conf.sample /etc/asterisk/extensions.conf`; + `cp -f ./docs/conf_examples/iax.conf.sample /etc/asterisk/iax.conf`; + `cp -f ./docs/conf_examples/sip.conf.sample /etc/asterisk/sip.conf`; + } + else + { + `cp -f ./docs/conf_examples/extensions.conf.sample-1.4 /etc/asterisk/extensions.conf`; + `cp -f ./docs/conf_examples/iax.conf.sample-1.4 /etc/asterisk/iax.conf`; + `cp -f ./docs/conf_examples/sip.conf.sample-1.4 /etc/asterisk/sip.conf`; + } + `cp -f ./docs/conf_examples/meetme.conf.sample /etc/asterisk/meetme.conf`; + `cp -f ./docs/conf_examples/manager.conf.sample /etc/asterisk/manager.conf`; + `cp -f ./docs/conf_examples/musiconhold.conf.sample /etc/asterisk/musiconhold.conf`; + `cp -f ./docs/conf_examples/voicemail.conf.sample /etc/asterisk/voicemail.conf`; + `cp -f ./docs/conf_examples/logger.conf.sample /etc/asterisk/logger.conf`; + `cp -f ./docs/conf_examples/dnsmgr.conf.sample /etc/asterisk/dnsmgr.conf`; + `cp -f ./docs/conf_examples/features.conf.sample /etc/asterisk/features.conf`; + + print "Creating auto-generated placeholder conf files in /etc/asterisk/...\n"; + `echo "[vicidial-auto] ;placeholder for auto-generated extensions conf" > /etc/asterisk/extensions-vicidial.conf`; + `echo "[vicidial-auto] ;placeholder for auto-generated iax conf" > /etc/asterisk/iax-vicidial.conf`; + `echo "[vicidial-auto] ;placeholder for auto-generated sip conf" > /etc/asterisk/sip-vicidial.conf`; + `echo "[vicidial-auto] ;placeholder for auto-generated voicemail conf" > /etc/asterisk/voicemail-vicidial.conf`; + } + + +### format the new server_ip dialstring for example to use with extensions.conf +$S='*'; +if( $VARserver_ip =~ m/(\S+)\.(\S+)\.(\S+)\.(\S+)/ ) + { + $a = leading_zero($1); + $b = leading_zero($2); + $c = leading_zero($3); + $d = leading_zero($4); + $VARremDIALstr = "$a$S$b$S$c$S$d"; + } + +# print "\nIMPORTANT NOTE!\n"; +# print "\nPlease remember to put these lines in your extensions.conf file:\n"; +# print "exten => _$VARremDIALstr*.,1,Goto(default,\${EXTEN:16},1)\n"; +# print "exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)\n"; +# print "exten => _78600XXX*.,1,AGI(agi-VDADfixCXFER.agi)\n"; + +print "\nASTGUICLIENT INSTALLATION FINISHED! ENJOY!\n"; + +$secy = time(); $secz = ($secy - $secX); $minz = ($secz/60); # calculate script runtime so far +print "\n - process runtime ($secz sec) ($minz minutes)\n"; + + +exit; + + + +sub leading_zero($) + { + $_ = $_[0]; + s/^(\d)$/0$1/; + s/^(\d\d)$/0$1/; + return $_; + } # End of the leading_zero() routine. diff --git a/agc_2-X/branches/agc_2.2.0/libs/viciagi.pm b/agc_2-X/branches/agc_2.2.0/libs/viciagi.pm new file mode 100644 index 00000000..60db6af9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/libs/viciagi.pm @@ -0,0 +1,62 @@ +package vicidial; + +# viciagi.pm version 2.0.5 +# +# Experimental library for general vicidial things +# +# This library has not been tested in a production level enviroment. +# +# Copyright (C) 2008 VICIDIAL-GROUP LICENSE: AGPLv2 +# +# CHANGELOG: +# 80326-1115 - First test build + +# Export our symbols +require Exporter; +@ISA = qw(Exporter); +@EXPORT = qw(agi_log); + +# USE FLAGS +use 5.008; +use strict; +use warnings; + +use Asterisk::AGI; + +# function to perform logging for agi scripts +# ARG0 is the logging level of the script (0-3) +# ARG1 is the time stamp to go along with this log +# ARG2 is the name of the script that is currently logging +# ARG3 is the stage that script is currently in +# ARG4 is the log file's name +# ARG5 is the string that is going into the log +# this function does not return a value +sub agi_output { + my $agi_log_level = $_[0]; + my $now_date = $_[1]; + my $script_name = $_[2]; + my $process_stage = $_[3]; + my $log_file_name = $_[4]; + my $log_string = $_[5]; + + my $write_string = "$now_date|$script_name|$process_stage|$log_string"; + + # loggin to STDERR + if ( ( $agi_log_level == '1' ) || ( $agi_log_level == '3' ) ) { + print STDERR "$write_string\n"; + } + + # logging to file + if ( $agi_log_level >= 2 ) { + + # open the log file for writing + my $file_opened = 1; + (open( Lout, ">>$log_file_name" )) || ($file_opened = 0); + if ( $file_opened ) { # if the file was opened print to it and then close + print Lout "$write_string\n"; + close(Lout); + } else { # else print a message to STDERR + print STDERR "Can't open $log_file_name to write $write_string: $!\n"; + } + } +} diff --git a/agc_2-X/branches/agc_2.2.0/libs/vicidial.pm b/agc_2-X/branches/agc_2.2.0/libs/vicidial.pm new file mode 100644 index 00000000..cb2cf6ee --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/libs/vicidial.pm @@ -0,0 +1,682 @@ +package vicidial; + +# vicidial.pm version 2.0.5 +# +# Experimental library for general vicidial things +# +# This library has not been tested in a production level enviroment. +# +# Copyright (C) 2008 VICIDIAL-GROUP LICENSE: AGPLv2 +# +# CHANGELOG: +# 80311-1611 - First test build +# 80324-1435 - Fixed minor issues and tested all functions. +# 80326-1113 - Moved agi_log to the new viciagi.pm library + +# Export our symbols +require Exporter; +@ISA = qw(Exporter); +@EXPORT = qw(get_date_hash_current get_date_hash_value get_now_date load_config_file load_sys_config_db load_server_config_db load_all_servers_config_db); + +# USE FLAGS +use 5.008; +use strict; +use warnings; +use Switch; +use DBI; + +# function to get a date hash that represents the current time +# this function does not take any arguments +# this function returns a reference to a hash with the localtime in it +# the has has the following values: +# 'sec' = the seconds +# 'min' = the minutes +# 'hour' = the hours +# 'Fhour' = the hours with a 0 infront if it it less than 10 +# 'mday' = the day of the month +# 'mon' = the month of the year +# 'year' = the year +# 'wday' = the day of the week +# 'yday' = the day of the year +# 'isdst' = if day light savings time is in effect +sub get_date_hash_current { + return get_date_hash_value(time()); +} + + +# function to get a date hash that represents a time value +# ARG1 a time value in seconds since epoch +# this function returns a reference to a hash with the localtime in it +# the has has the following values: +# 'sec' = the seconds +# 'min' = the minutes +# 'hour' = the hours +# 'Fhour' = the hours with a 0 infront if it it less than 10 +# 'mday' = the day of the month +# 'mon' = the month of the year +# 'year' = the year +# 'wday' = the day of the week +# 'yday' = the day of the year +# 'isdst' = if day light savings time is in effect +sub get_date_hash_value { + # the time to compute + my $time_val = $_[0]; + + # init the hash + my %date_hash = (); + + # assign the values + ( + $date_hash{ 'sec' }, + $date_hash{ 'min' }, + $date_hash{ 'hour' }, + $date_hash{ 'mday' }, + $date_hash{ 'month' }, + $date_hash{ 'year' }, + $date_hash{ 'wday' }, + $date_hash{ 'yday' }, + $date_hash{ 'isdst' } + ) = localtime( $time_val ); + + # make the values more useful + $date_hash{ 'year' } = ( $date_hash{ 'year' } + 1900 ); + $date_hash{ 'month' }++; + if ( $date_hash{ 'month' } < 10 ) { + $date_hash{ 'month' } = "0$date_hash{ 'month' }"; + } + if ( $date_hash{ 'mday' } < 10 ) { + $date_hash{ 'mday' } = "0$date_hash{ 'mday' }"; + } + if ( $date_hash{ 'min' } < 10 ) { + $date_hash{ 'min' } = "0$date_hash{ 'min' }"; + } + if ( $date_hash{ 'sec' } < 10 ) { + $date_hash{ 'sec' } = "0$date_hash{ 'sec' }"; + } + if ( $date_hash{ 'hour' } < 10 ) { + $date_hash{ 'Fhour' } = "0$date_hash{ 'hour' }"; + } else { + $date_hash{ 'Fhour' } = $date_hash{ 'hour' }; + } + + # return the hash + return \%date_hash; +} + + +# function to convert a date hash to a date string +# ARG1 is a reference to a date_hash to convert +# this function returns a reference to a date string +sub get_now_date { + my $date_hash_ref = $_[0]; + my %date_hash = %$date_hash_ref; + + # build the string + my $now_date = + "$date_hash{ 'year' }-$date_hash{ 'month' }-$date_hash{ 'mday' } $date_hash{ 'Fhour' }:$date_hash{ 'min' }:$date_hash{ 'sec' }"; + + return \$now_date; +} + +# function to load the astguicleint config file +# ARG0 the path to the astguiclient config file +# this function returns a reference to a hash with all of the config file values +# the has has the following values: +# 'logs_path' = the path to the log directory +# 'home_path' = the location of the astguiclient scripts +# 'agi_path' = the path to the asteirsk agi directory +# 'web_path' = the path to the apache web directory vicidial is in +# 'sounds_path' = the path to the asterisk sounds directory +# 'monitor_path' = the path to where asterisk stores the recordings +# 'done_monitor_path' = the path to put the recordings after where done compressing them +# 'fagi_log_min_servers' = minimum number of server threads for the FAGI +# 'fagi_log_max_servers' = maximum number of server threads for the FAGI +# 'fagi_log_min_spare_servers' = minimum number of spare server threads for the FAGI +# 'fagi_log_max_spare_servers' = maximum number of spare server threads for the FAGI +# 'fagi_log_max_requests' = maximum number of requests a thread should handle before dieing +# 'fagi_log_checkfordead' = seconds before looking for dead threads to kill +# 'fagi_log_checkforwait' = seconds before looking if the FAGI can kill some waitng threads +# 'server_ip' = IP address of the server +# 'active_keepalives' = which processes should be check to see if they are alive +# 'db_server' = the IP or Hostname of the database server +# 'db_database' = the database that vicidial uses +# 'db_user' = the username that is used to connect to the database +# 'db_pass' = the password that is used to connect to the database +# 'db_port' = the port number to connect to the database +# 'ftp_host' = the IP or Hostname of the ftp server to store the recordings on +# 'ftp_user' = the username that is used to connect to the recording ftp server +# 'ftp_pass' = the password that is used to connect to the recording ftp server +# 'ftp_port' = the port number to connect to the recording ftp server +# 'ftp_dir' = the directory to place the recording into on the recording ftp server +# 'ftp_http_path' = the web address to access the recording that are on the recording ftp server +# 'report_host' = the IP or Hostname of the ftp server to store the reports on +# 'report_user' = the username that is used to connect to the report ftp server +# 'report_pass' = the password that is used to connect to the report ftp server +# 'report_port' = the port number to connect to the report ftp server +# 'report_dir' = the directory to place the reports into on the report ftp server +sub load_config_file { + my $file_path = $_[0]; + + # init the hash + my %config_hash = (); + + $config_hash{ 'logs_path' } = ""; + $config_hash{ 'home_path' } = ""; + $config_hash{ 'agi_path' } = ""; + $config_hash{ 'web_path' } = ""; + $config_hash{ 'sounds_path' } = ""; + $config_hash{ 'monitor_path' } = ""; + $config_hash{ 'done_monitor_path' } = ""; + $config_hash{ 'fagi_log_server-port' } = "4577"; + $config_hash{ 'fagi_log_min_servers' } = ""; + $config_hash{ 'fagi_log_max_servers' } = ""; + $config_hash{ 'fagi_log_min_spare_servers' } = ""; + $config_hash{ 'fagi_log_max_spare_servers' } = ""; + $config_hash{ 'fagi_log_max_requests' } = ""; + $config_hash{ 'fagi_log_checkfordead' } = ""; + $config_hash{ 'fagi_log_checkforwait' } = ""; + $config_hash{ 'fagi_in_server_port' } = "4578"; + $config_hash{ 'fagi_in_min_servers' } = ""; + $config_hash{ 'fagi_in_max_servers' } = ""; + $config_hash{ 'fagi_in_min_spare_servers' } = ""; + $config_hash{ 'fagi_in_max_spare_servers' } = ""; + $config_hash{ 'fagi_in_max_requests' } = ""; + $config_hash{ 'fagi_in_checkfordead' } = ""; + $config_hash{ 'fagi_in_checkforwait' } = ""; + $config_hash{ 'fagi_out_server-port' } = "4579"; + $config_hash{ 'fagi_out_min_servers' } = ""; + $config_hash{ 'fagi_out_max_servers' } = ""; + $config_hash{ 'fagi_out_min_spare_servers' } = ""; + $config_hash{ 'fagi_out_max_spare_servers' } = ""; + $config_hash{ 'fagi_out_max_requests' } = ""; + $config_hash{ 'fagi_out_checkfordead' } = ""; + $config_hash{ 'fagi_out_checkforwait' } = ""; + $config_hash{ 'server_ip' } = ""; + $config_hash{ 'active_keepalives' } = ""; + $config_hash{ 'db_server' } = ""; + $config_hash{ 'db_database' } = ""; + $config_hash{ 'db_user' } = ""; + $config_hash{ 'db_pass' } = ""; + $config_hash{ 'db_port' } = ""; + $config_hash{ 'ftp_host' } = ""; + $config_hash{ 'ftp_user' } = ""; + $config_hash{ 'ftp_pass' } = ""; + $config_hash{ 'ftp_port' } = ""; + $config_hash{ 'ftp_dir' } = ""; + $config_hash{ 'ftp_http_path' } = ""; + $config_hash{ 'report_host' } = ""; + $config_hash{ 'report_user' } = ""; + $config_hash{ 'report_pass' } = ""; + $config_hash{ 'report_port' } = ""; + $config_hash{ 'report_dir' } = ""; + + + # open the config file and read it in + open( CONFIG, "$file_path" ) || die "can't open $file_path: $!\n"; + my @conf = ; + close(CONFIG); + + # loop through the configs and set the apportiate value in the config_hash + my $i = 0; + foreach (@conf) { + my $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + + switch ( $line ) { + # Paths to various directories + case qr/^PATHlogs/ { + $config_hash{ 'logs_path' } = $line; + $config_hash{ 'logs_path' } =~ s/.*=//gi; + } + case qr/^PATHhome/ { + $config_hash{ 'home_path' } = $line; + $config_hash{ 'home_path' } =~ s/.*=//gi; + } + case qr/^PATHagi/ { + $config_hash{ 'agi_path' } = $line; + $config_hash{ 'agi_path' } =~ s/.*=//gi; + } + case qr/^PATHweb/ { + $config_hash{ 'web_path' } = $line; + $config_hash{ 'web_path' } =~ s/.*=//gi; + } + case qr/^PATHsounds/ { + $config_hash{ 'sounds_path' } = $line; + $config_hash{ 'sounds_path' } =~ s/.*=//gi; + } + case qr/^PATHmonitor/ { + $config_hash{ 'monitor_path' } = $line; + $config_hash{ 'monitor_path' } =~ s/.*=//gi; + } + case qr/^PATHDONEmonitor/ { + $config_hash{ 'done_monitor_path' } = $line; + $config_hash{ 'done_monitor_path' } =~ s/.*=//gi; + } + + # FAGI log server settings + case qr/^VARfastagi_log_server_port/ { + $config_hash{ 'fagi_log_server_port' } = $line; + $config_hash{ 'fagi_log_server_port' } =~ s/.*=//gi; + } + case qr/^VARfastagi_log_min_servers/ { + $config_hash{ 'fagi_log_min_servers' } = $line; + $config_hash{ 'fagi_log_min_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_log_max_servers/ { + $config_hash{ 'fagi_log_max_servers' } = $line; + $config_hash{ 'fagi_log_max_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_log_min_spare_servers/ { + $config_hash{ 'fagi_log_min_spare_servers' } = $line; + $config_hash{ 'fagi_log_min_spare_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_log_max_spare_servers/ { + $config_hash{ 'fagi_log_max_spare_servers' } = $line; + $config_hash{ 'fagi_log_max_spare_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_log_max_requests/ { + $config_hash{ 'fagi_log_max_requests' } = $line; + $config_hash{ 'fagi_log_max_requests' } =~ s/.*=//gi; + } + case qr/^VARfastagi_log_checkfordead/ { + $config_hash{ 'fagi_log_checkfordead' } = $line; + $config_hash{ 'fagi_log_checkfordead' } =~ s/.*=//gi; + } + case qr/^VARfastagi_log_checkforwait/ { + $config_hash{ 'fagi_log_checkforwait' } = $line; + $config_hash{ 'fagi_log_checkforwait' } =~ s/.*=//gi; + } + + # FAGI inbound server settings + case qr/^VARfastagi_in_server_port/ { + $config_hash{ 'fagi_in_server_port' } = $line; + $config_hash{ 'fagi_in_server_port' } =~ s/.*=//gi; + } + case qr/^VARfastagi_in_min_servers/ { + $config_hash{ 'fagi_in_min_servers' } = $line; + $config_hash{ 'fagi_in_min_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_in_max_servers/ { + $config_hash{ 'fagi_in_max_servers' } = $line; + $config_hash{ 'fagi_in_max_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_in_min_spare_servers/ { + $config_hash{ 'fagi_in_min_spare_servers' } = $line; + $config_hash{ 'fagi_in_min_spare_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_in_max_spare_servers/ { + $config_hash{ 'fagi_in_max_spare_servers' } = $line; + $config_hash{ 'fagi_in_max_spare_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_in_max_requests/ { + $config_hash{ 'fagi_in_max_requests' } = $line; + $config_hash{ 'fagi_in_max_requests' } =~ s/.*=//gi; + } + case qr/^VARfastagi_in_checkfordead/ { + $config_hash{ 'fagi_in_checkfordead' } = $line; + $config_hash{ 'fagi_in_checkfordead' } =~ s/.*=//gi; + } + case qr/^VARfastagi_in_checkforwait/ { + $config_hash{ 'fagi_in_checkforwait' } = $line; + $config_hash{ 'fagi_in_checkforwait' } =~ s/.*=//gi; + } + + # FAGI outbound server settings + case qr/^VARfastagi_out_server_port/ { + $config_hash{ 'fagi_out_server_port' } = $line; + $config_hash{ 'fagi_out_server_port' } =~ s/.*=//gi; + } + case qr/^VARfastagi_out_min_servers/ { + $config_hash{ 'fagi_out_min_servers' } = $line; + $config_hash{ 'fagi_out_min_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_out_max_servers/ { + $config_hash{ 'fagi_out_max_servers' } = $line; + $config_hash{ 'fagi_out_max_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_out_min_spare_servers/ { + $config_hash{ 'fagi_out_min_spare_servers' } = $line; + $config_hash{ 'fagi_out_min_spare_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_out_max_spare_servers/ { + $config_hash{ 'fagi_out_max_spare_servers' } = $line; + $config_hash{ 'fagi_out_max_spare_servers' } =~ s/.*=//gi; + } + case qr/^VARfastagi_out_max_requests/ { + $config_hash{ 'fagi_out_max_requests' } = $line; + $config_hash{ 'fagi_out_max_requests' } =~ s/.*=//gi; + } + case qr/^VARfastagi_out_checkfordead/ { + $config_hash{ 'fagi_out_checkfordead' } = $line; + $config_hash{ 'fagi_out_checkfordead' } =~ s/.*=//gi; + } + case qr/^VARfastagi_out_checkforwait/ { + $config_hash{ 'fagi_out_checkforwait' } = $line; + $config_hash{ 'fagi_out_checkforwait' } =~ s/.*=//gi; + } + + # general server settings + case qr/^VARserver_ip/ { + $config_hash{ 'server_ip' } = $line; + $config_hash{ 'server_ip' } =~ s/.*=//gi; + } + case qr/^VARactive_keepalives/ { + $config_hash{ 'active_keepalives' } = $line; + $config_hash{ 'active_keepalives' } =~ s/.*=//gi; + } + + # Database server connection information + case qr/^VARDB_server/ { + $config_hash{ 'db_server' } = $line; + $config_hash{ 'db_server' } =~ s/.*=//gi; + } + case qr/^VARDB_database/ { + $config_hash{ 'db_database' } = $line; + $config_hash{ 'db_database' } =~ s/.*=//gi; + } + case qr/^VARDB_user/ { + $config_hash{ 'db_user' } = $line; + $config_hash{ 'db_user' } =~ s/.*=//gi; + } + case qr/^VARDB_pass/ { + $config_hash{ 'db_pass' } = $line; + $config_hash{ 'db_pass' } =~ s/.*=//gi; + } + case qr/^VARDB_port/ { + $config_hash{ 'db_port' } = $line; + $config_hash{ 'db_port' } =~ s/.*=//gi; + } + + # FTP recording archive connection information + case qr/^VARFTP_host/ { + $config_hash{ 'ftp_host' } = $line; + $config_hash{ 'ftp_host' } =~ s/.*=//gi; + } + case qr/^VARFTP_user/ { + $config_hash{ 'ftp_user' } = $line; + $config_hash{ 'ftp_user' } =~ s/.*=//gi; + } + case qr/^VARFTP_pass/ { + $config_hash{ 'ftp_pass' } = $line; + $config_hash{ 'ftp_pass' } =~ s/.*=//gi; + } + case qr/^VARFTP_port/ { + $config_hash{ 'ftp_port' } = $line; + $config_hash{ 'ftp_port' } =~ s/.*=//gi; + } + case qr/^VARFTP_dir/ { + $config_hash{ 'ftp_dir' } = $line; + $config_hash{ 'ftp_dir' } =~ s/.*=//gi; + } + case qr/^VARHTTP_path/ { + $config_hash{ 'ftp_http_path' } = $line; + $config_hash{ 'ftp_http_path' } =~ s/.*=//gi; + } + + # REPORT server connection information + case qr/^VARREPORT_host/ { + $config_hash{ 'report_host' } = $line; + $config_hash{ 'report_host' } =~ s/.*=//gi; + } + case qr/^VARREPORT_user/ { + $config_hash{ 'report_user' } = $line; + $config_hash{ 'report_user' } =~ s/.*=//gi; + } + case qr/^VARREPORT_pass/ { + $config_hash{ 'report_pass' } = $line; + $config_hash{ 'report_pass' } =~ s/.*=//gi; + } + case qr/^VARREPORT_port/ { + $config_hash{ 'report_port' } = $line; + $config_hash{ 'report_port' } =~ s/.*=//gi; + } + case qr/^VARREPORT_dir/ { + $config_hash{ 'report_dir' } = $line; + $config_hash{ 'report_dir' } =~ s/.*=//gi; + } + } + $i++; + } + + # return the hash + return \%config_hash; +} + + +# function to load the system configs from the db +# ARG0 is an already connected database handle +# this function returns a hash with the servers configs in it +# the hash has the following values: +# version = the version of astguiclient that is being used +# install_date = the date that the orginal installation was done +# use_utf8 = if to use UTF8 instead of latin characters +# webroot_writable = if to place temp files in the webroot directory +# enable_qm_logging = if to use QueueMetrics +# qm_server_ip = QM servers ip address +# qm_dbname = QM DB name +# qm_login = QM DB username +# qm_pass = QM DB password +# qm_url = url to get to QM +# qm_log_id = the server ID that all VICIDIAL logs will use as an id for each record in QM +# qm_eq_prepend = field from vicidial_list to prepend to the cust. phone number in QM +# vd_agent_disable = if to disable manager actions on agents screens +# allow_sipsak_msgs = if to use sipsak +# admin_home_url = url to go to if you click the HOME link on the top of the admin page +# agent_xfer_weblog = log to a text logfile on the webserver every time call is xfered to agent +sub load_sys_config_db { + my $dbh = $_[0]; + + # init the hash + my %system_hash = (); + + # fetch data from db + my $stmt = +"SELECT version, install_date, use_non_latin, webroot_writable, enable_queuemetrics_logging, queuemetrics_server_ip, queuemetrics_dbname, queuemetrics_login, queuemetrics_pass, queuemetrics_url, queuemetrics_log_id, queuemetrics_eq_prepend, vicidial_agent_disable, allow_sipsak_messages, admin_home_url, enable_agc_xfer_log FROM system_settings LIMIT 1;"; + my $sth = $dbh->prepare($stmt) or die "preparing: ", $dbh->errstr; + $sth->execute or die "executing: $stmt ", $dbh->errstr; + my @ary = $sth->fetchrow_array; + $sth->finish(); + + # assign the hash values + $system_hash{ 'version' } = $ary[0]; # version db field + $system_hash{ 'install_date' } = $ary[1]; # install_date db field + $system_hash{ 'use_utf8' } = $ary[2]; # use_non_latin db field + $system_hash{ 'webroot_writable' } = $ary[3]; # webroot_writable db field + $system_hash{ 'enable_qm_log' } = $ary[4]; # enable_queuemetrics_logging db field + $system_hash{ 'qm_server_ip' } = $ary[5]; # queuemetrics_server_ip db field + $system_hash{ 'qm_dbname' } = $ary[6]; # queuemetrics_dbname db field + $system_hash{ 'qm_login' } = $ary[7]; # queuemetrics_login db field + $system_hash{ 'qm_pass' } = $ary[8]; # queuemetrics_pass db field + $system_hash{ 'qm_url' } = $ary[9]; # queuemetrics_url db field + $system_hash{ 'qm_log_id' } = $ary[10]; # queuemetrics_log_id db field + $system_hash{ 'qm_eq_prepend' } = $ary[11]; # queuemetrics_eq_prepend db field + $system_hash{ 'vd_agent_disable' } = $ary[12]; # vicidial_agent_disable db field + $system_hash{ 'allow_sipsak_msgs' } = $ary[13]; # allow_sipsak_messages db field + $system_hash{ 'admin_home_url' } = $ary[14]; # admin_home_url db field + $system_hash{ 'agent_xfer_weblog' } = $ary[15]; # enable_agc_xfer_log db field + + # run through the hash and set any non-defined keys to "" + for my $sys_key ( keys %system_hash ) { + if ( !defined( $system_hash{ $sys_key } ) ) { + $system_hash{ $sys_key } = ""; + } + } + + # return the hash + return \%system_hash; +} + + +# function to load a servers configs from the db +# ARG0 is the ip of the server to load configs for +# ARG1 is an already connected database handle +# this function returns a reference to a hash with the servers configs in it +# the hash has the following values: +# server_id = the id for the server in the DB +# server_desc = the description of the server +# server_ip = the IP address of the server +# active = if the server is active or not +# ast_version = the version of asterisk used on the server +# max_vd_trunks = the maximum number of trunks vicidial can use on this server +# ast_mgr_host = the telnet host to connect to this servers Asterisk Manager interface +# localhost = what this server thinks localhost should be (usually 127.0.0.1) +# ast_mgr_port = the telnet port to connect to this servers Asterisk Manager interface +# ast_mgr_user = the username for the general connection to the manager interface +# ast_mgr_pass = the secret used to connect to the manager inferface for all of the usernames +# ast_mgr_update_user = the username to run updates from on the manager interface +# ast_mgr_listen_user = the username to listen on the manager interface +# ast_mgr_send_user = the username to send actions on the manager interface +# local_gmt = the gmt offset for this server +# vm_dump_exten = the extension to send voicemail to on this server +# dft_xfer_exten = default extension to send calls to for VICIDIAL auto dialing +# ext_context = the context where to find the vicidial extension +# sys_perf_log = if vicidial should do performance logging for this server +# vd_server_logs = if vicidial should do normal logging for this server +# agi_output = what style of logging should be done for this server +# vd_balance_active = if vicidial should do balanced dialing with this server +# vd_balance_free_trunks = the number of trunks balanced dialing must keep free +sub load_server_config_db { + my $server_ip = $_[0]; + my $dbh = $_[1]; + + # init the hash + my %server_hash = (); + + # fetch data from the DB + my $stmt = "SELECT server_id, server_description, server_ip, active, asterisk_version, max_vicidial_trunks, telnet_host, telnet_port, ASTmgrUSERNAME, ASTmgrSECRET, ASTmgrUSERNAMEupdate, ASTmgrUSERNAMElisten, ASTmgrUSERNAMEsend, local_gmt, voicemail_dump_exten, answer_transfer_agent, ext_context, sys_perf_log, vd_server_logs, agi_output, vicidial_balance_active, balance_trunks_offlimits FROM servers WHERE server_ip = '$server_ip' LIMIT 1;"; + + my $sth = $dbh->prepare($stmt) or die "preparing: ", $dbh->errstr; + $sth->execute or die "executing: $stmt ", $dbh->errstr; + my @ary = $sth->fetchrow_array; + $sth->finish(); + + # assign the hash values + $server_hash{ 'server_id' } = "$ary[0]"; # server_id db field + $server_hash{ 'server_desc' } = "$ary[1]"; # server_description db field + $server_hash{ 'server_ip' } = "$ary[2]"; # server_ip db field + $server_hash{ 'active' } = "$ary[3]"; # active db field + $server_hash{ 'ast_version' } = "$ary[4]"; # asterisk_version db field + $server_hash{ 'max_vd_trunks' } = "$ary[5]"; # max_vicidial_trunks db field + $server_hash{ 'ast_mgr_host' } = "$ary[6]"; # telnet_host db field + $server_hash{ 'ast_mgr_port' } = "$ary[7]"; # telnet_port db field + $server_hash{ 'ast_mgr_user' } = "$ary[8]"; # ASTmgrUSERNAME db field + $server_hash{ 'ast_mgr_pass' } = "$ary[9]"; # ASTmgrSECRET db field + $server_hash{ 'ast_mgr_update_user' } = "$ary[10]"; # ASTmgrUSERNAMEupdate db field + $server_hash{ 'ast_mgr_listen_user' } = "$ary[11]"; # ASTmgrUSERNAMElisten db field + $server_hash{ 'ast_mgr_send_user' } = "$ary[12]"; # ASTmgrUSERNAMEsend db field + $server_hash{ 'local_gmt' } = "$ary[13]"; # local_gmt db field + $server_hash{ 'vm_dump_exten' } = "$ary[14]"; # voicemail_dump_exten db field + $server_hash{ 'dft_xfer_exten' } = "$ary[15]"; # answer_transfer_agent db field + $server_hash{ 'ext_context' } = "$ary[16]"; # ext_context db field + $server_hash{ 'sys_perf_log' } = "$ary[17]"; # sys_perf_log db field + $server_hash{ 'vd_server_logs' } = "$ary[18]"; # vd_server_logs db field + $server_hash{ 'agi_output' } = "$ary[19]"; # agi_output db field + $server_hash{ 'vd_balance_active' } = "$ary[20]"; # vicidial_balance_active db field + $server_hash{ 'vd_balance_free_trunks' } = "$ary[21]"; # balance_trunks_offlimits db field + + # run through the hash and set any non-defined keys to "" + for my $serv_key ( keys %server_hash ) { + if ( !defined( $server_hash{ $serv_key } ) ) { + $server_hash{ $serv_key } = ""; + } + } + + #return the hash + return \%server_hash; +} + + +# function to load all servers configs from the db +# ARG0 is an already connected database handle +# this function returns a reference to a hash of hashes with the servers configs in them +# the first level hash is referneced by the servers IP address +# the second level hash has the following values: +# server_id = the id for the server in the DB +# server_desc = the description of the server +# server_ip = the IP address of the server +# active = if the server is active or not +# ast_version = the version of asterisk used on the server +# max_vd_trunks = the maximum number of trunks vicidial can use on this server +# ast_mgr_host = the telnet host to connect to this servers Asterisk Manager interface +# localhost = what this server thinks localhost should be (usually 127.0.0.1) +# ast_mgr_port = the telnet port to connect to this servers Asterisk Manager interface +# ast_mgr_user = the username for the general connection to the manager interface +# ast_mgr_pass = the secret used to connect to the manager inferface for all of the usernames +# ast_mgr_update_user = the username to run updates from on the manager interface +# ast_mgr_listen_user = the username to listen on the manager interface +# ast_mgr_send_user = the username to send actions on the manager interface +# local_gmt = the gmt offset for this server +# vm_dump_exten = the extension to send voicemail to on this server +# dft_xfer_exten = default extension to send calls to for VICIDIAL auto dialing +# ext_context = the context where to find the vicidial extension +# sys_perf_log = if vicidial should do performance logging for this server +# vd_server_logs = if vicidial should do normal logging for this server +# agi_output = what style of logging should be done for this server +# vd_balance_active = if vicidial should do balanced dialing with this server +# vd_balance_free_trunks = the number of trunks balanced dialing must keep free +sub load_all_servers_config_db { + my $dbh = $_[0]; + + # init the hash + my %all_servers_hash = (); + + # fetch data from the DB + my $stmt = +"SELECT server_id, server_description, server_ip, active, asterisk_version, max_vicidial_trunks, telnet_host, telnet_port, ASTmgrUSERNAME, ASTmgrSECRET, ASTmgrUSERNAMEupdate, ASTmgrUSERNAMElisten, ASTmgrUSERNAMEsend, local_gmt, voicemail_dump_exten, answer_transfer_agent, ext_context, sys_perf_log, vd_server_logs, agi_output, vicidial_balance_active, balance_trunks_offlimits FROM servers;"; + my $sth = $dbh->prepare($stmt) or die "preparing: ", $dbh->errstr; + $sth->execute or die "executing: $stmt ", $dbh->errstr; + + # loop through each of the servers + my $sthrows = $sth->rows; + my $rec_count = 0; + while ( $sthrows > $rec_count ) { + my @ary = $sth->fetchrow_array; + + # get the ip address of the server for refernecing + my $server_ip = "$ary[2]"; + + # assign the hash values + $all_servers_hash{ $server_ip }{ 'server_id' } = "$ary[0]"; # server_id db field + $all_servers_hash{ $server_ip }{ 'server_desc' } = "$ary[1]"; # server_description db field + $all_servers_hash{ $server_ip }{ 'server_ip' } = "$ary[2]"; # server_ip db field + $all_servers_hash{ $server_ip }{ 'active' } = "$ary[3]"; # active db field + $all_servers_hash{ $server_ip }{ 'ast_version' } = "$ary[4]"; # asterisk_version db field + $all_servers_hash{ $server_ip }{ 'max_vd_trunks' } = "$ary[5]"; # max_vicidial_trunks db field + $all_servers_hash{ $server_ip }{ 'ast_mgr_host' } = "$ary[6]"; # telnet_host db field + $all_servers_hash{ $server_ip }{ 'ast_mgr_port' } = "$ary[7]"; # telnet_port db field + $all_servers_hash{ $server_ip }{ 'ast_mgr_user' } = "$ary[8]"; # ASTmgrUSERNAME db field + $all_servers_hash{ $server_ip }{ 'ast_mgr_pass' } = "$ary[9]"; # ASTmgrSECRET db field + $all_servers_hash{ $server_ip }{ 'ast_mgr_update_user' } = "$ary[10]"; # ASTmgrUSERNAMEupdate db field + $all_servers_hash{ $server_ip }{ 'ast_mgr_listen_user' } = "$ary[11]"; # ASTmgrUSERNAMElisten db field + $all_servers_hash{ $server_ip }{ 'ast_mgr_send_user' } = "$ary[12]"; # ASTmgrUSERNAMEsend db field + $all_servers_hash{ $server_ip }{ 'local_gmt' } = "$ary[13]"; # local_gmt db field + $all_servers_hash{ $server_ip }{ 'vm_dump_exten' } = "$ary[14]"; # voicemail_dump_exten db field + $all_servers_hash{ $server_ip }{ 'dft_xfer_exten' } = "$ary[15]"; # answer_transfer_agent db field + $all_servers_hash{ $server_ip }{ 'ext_context' } = "$ary[16]"; # ext_context db field + $all_servers_hash{ $server_ip }{ 'sys_perf_log' } = "$ary[17]"; # sys_perf_log db field + $all_servers_hash{ $server_ip }{ 'vd_server_logs' } = "$ary[18]"; # vd_server_logs db field + $all_servers_hash{ $server_ip }{ 'agi_output' } = "$ary[19]"; # agi_output db field + $all_servers_hash{ $server_ip }{ 'vd_balance_active' } = "$ary[20]"; # vicidial_balance_active db field + $all_servers_hash{ $server_ip }{ 'vd_balance_free_trunks' } = "$ary[21]"; # balance_trunks_offlimits db field + + $rec_count++; + } + + my $all_servers_hash_ref = \%all_servers_hash; + + # run through the hash and set any non-defined keys to "" + for my $serv_ip_key ( keys %$all_servers_hash_ref ) { + for my $serv_key ( keys %{$all_servers_hash_ref->{ $serv_ip_key }} ) { + if ( !defined( $all_servers_hash{ $serv_ip_key }{ $serv_key } ) ) { + $all_servers_hash{ $serv_ip_key }{ $serv_key } = ""; + } + } + } + + $sth->finish(); + + # return the hash of hashes + return \%all_servers_hash; +} + +1; diff --git a/agc_2-X/branches/agc_2.2.0/libs/vicilib-testcode.pl b/agc_2-X/branches/agc_2.2.0/libs/vicilib-testcode.pl new file mode 100644 index 00000000..9ceb06f8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/libs/vicilib-testcode.pl @@ -0,0 +1,217 @@ +#!/usr/bin/perl + + +# vicilib-testcode.pl version 2.0.5 +# +# This script is designed to test the vicidial.pm library. +# It gets it's settings from the local /etc/astguiclient.conf file. +# and connects the the database specified there in. +# +# This script should be updated anytime anything new is added to the +# vicidial.pm library and should throughly test each functon +# +# Copyright (C) 2008 VICIDIAL-GROUP LICENSE: AGPLv2 +# +# CHANGELOG: +# 80324-1435 - First fully successful run + + +use strict; +use warnings; + +use vicidial; +use viciagi; +use DBI; + +# Test if get_date_hash_current is working +print "Test if get_date_hash_current is working\n"; +print "printing the current time\n"; +my $cur_date_hash_ref = get_date_hash_current(); +my %cur_date_hash = %$cur_date_hash_ref; + +print "cur_date_hash{ 'sec' } = $cur_date_hash{ 'sec' }\n"; +print "cur_date_hash{ 'min' } = $cur_date_hash{ 'min' }\n"; +print "cur_date_hash{ 'hour' } = $cur_date_hash{ 'hour' }\n"; +print "cur_date_hash{ 'mday' } = $cur_date_hash{ 'mday' }\n"; +print "cur_date_hash{ 'month' } = $cur_date_hash{ 'month' }\n"; +print "cur_date_hash{ 'year' } = $cur_date_hash{ 'year' }\n"; +print "cur_date_hash{ 'wday' } = $cur_date_hash{ 'wday' }\n"; +print "cur_date_hash{ 'yday' } = $cur_date_hash{ 'yday' }\n"; +print "cur_date_hash{ 'isdst' } = $cur_date_hash{ 'isdst' }\n"; +print "cur_date_hash{ 'Fhour' } = $cur_date_hash{ 'Fhour' }\n\n"; + + + +# Test if get_date_hash_value is working +print "Test if get_date_hash_value is working\n"; +print "printing the time at the epoch\n"; +my $epoch_date_hash_ref = get_date_hash_value(0); +my %epoch_date_hash = %$epoch_date_hash_ref; + +print "epoch_date_hash{ 'sec' } = $epoch_date_hash{ 'sec' }\n"; +print "epoch_date_hash{ 'min' } = $epoch_date_hash{ 'min' }\n"; +print "epoch_date_hash{ 'hour' } = $epoch_date_hash{ 'hour' }\n"; +print "epoch_date_hash{ 'mday' } = $epoch_date_hash{ 'mday' }\n"; +print "epoch_date_hash{ 'month' } = $epoch_date_hash{ 'month' }\n"; +print "epoch_date_hash{ 'year' } = $epoch_date_hash{ 'year' }\n"; +print "epoch_date_hash{ 'wday' } = $epoch_date_hash{ 'wday' }\n"; +print "epoch_date_hash{ 'yday' } = $epoch_date_hash{ 'yday' }\n"; +print "epoch_date_hash{ 'isdst' } = $epoch_date_hash{ 'isdst' }\n"; +print "epoch_date_hash{ 'Fhour' } = $epoch_date_hash{ 'Fhour' }\n\n"; + + + +# Test if get_now_date is working +print "Test if get_now_date is working\n"; +print "printing the current time as a now_date string\n"; + +my $now_date_str_ref = get_now_date( \%cur_date_hash ); +my $now_date_str = $$now_date_str_ref; + +print "$now_date_str\n\n"; + + +# Test if agi_log is working +agi_output(3, $now_date_str, $0, "test agi_log", "./agi_log_test", "Test if agi_log is working"); + + +# Test if load_config_file is working +print "Test if load_config_file is working\n"; +print "printing the config_hash loaded from /etc/astguiclient.conf\n"; + +my $file_path = "/etc/astguiclient.conf"; + +my $config_hash_ref = load_config_file( $file_path ); +my %config_hash = %$config_hash_ref; + +print "config_hash{ 'logs_path' } = $config_hash{ 'logs_path' }\n"; +print "config_hash{ 'home_path' } = $config_hash{ 'home_path' }\n"; +print "config_hash{ 'agi_path' } = $config_hash{ 'agi_path' }\n"; +print "config_hash{ 'web_path' } = $config_hash{ 'web_path' }\n"; +print "config_hash{ 'sounds_path' } = $config_hash{ 'sounds_path' }\n"; +print "config_hash{ 'monitor_path' } = $config_hash{ 'monitor_path' }\n"; +print "config_hash{ 'done_monitor_path' } = $config_hash{ 'done_monitor_path' }\n"; +print "config_hash{ 'fagi_log_min_servers' } = $config_hash{ 'fagi_log_min_servers' }\n"; +print "config_hash{ 'fagi_log_max_servers' } = $config_hash{ 'fagi_log_max_servers' }\n"; +print "config_hash{ 'fagi_log_min_spare_servers' } = $config_hash{ 'fagi_log_min_spare_servers' }\n"; +print "config_hash{ 'fagi_log_max_spare_servers' } = $config_hash{ 'fagi_log_max_spare_servers' }\n"; +print "config_hash{ 'fagi_log_max_requests' } = $config_hash{ 'fagi_log_max_requests' }\n"; +print "config_hash{ 'fagi_log_checkfordead' } = $config_hash{ 'fagi_log_checkfordead' }\n"; +print "config_hash{ 'fastagi_log_checkforwait' } = $config_hash{ 'fastagi_log_checkforwait' }\n"; +print "config_hash{ 'server_ip' } = $config_hash{ 'server_ip' }\n"; +print "config_hash{ 'active_keepalives' } = $config_hash{ 'active_keepalives' }\n"; +print "config_hash{ 'db_server' } = $config_hash{ 'db_server' }\n"; +print "config_hash{ 'db_database' } = $config_hash{ 'db_database' }\n"; +print "config_hash{ 'db_user' } = $config_hash{ 'db_user' }\n"; +print "config_hash{ 'db_pass' } = $config_hash{ 'db_pass' }\n"; +print "config_hash{ 'db_port' } = $config_hash{ 'db_port' }\n"; +print "config_hash{ 'ftp_host' } = $config_hash{ 'ftp_host' }\n"; +print "config_hash{ 'ftp_user' } = $config_hash{ 'ftp_user' }\n"; +print "config_hash{ 'ftp_pass' } = $config_hash{ 'ftp_pass' }\n"; +print "config_hash{ 'ftp_port' } = $config_hash{ 'ftp_port' }\n"; +print "config_hash{ 'ftp_dir' } = $config_hash{ 'ftp_dir' }\n"; +print "config_hash{ 'ftp_http_path' } = $config_hash{ 'report_host' }\n"; +print "config_hash{ 'report_host' } = $config_hash{ 'report_host' }\n"; +print "config_hash{ 'report_user' } = $config_hash{ 'report_user' }\n"; +print "config_hash{ 'report_pass' } = $config_hash{ 'report_pass' }\n"; +print "config_hash{ 'report_port' } = $config_hash{ 'report_port' }\n"; +print "config_hash{ 'report_dir' } = $config_hash{ 'report_dir' }\n\n"; + +# get a dbconnection for the rest of these routines +my $dbh = DBI->connect( + "DBI:mysql:$config_hash{ 'db_database' }:$config_hash{ 'db_server' }:$config_hash{ 'db_port' }", + "$config_hash{ 'db_user' }", + "$config_hash{ 'db_pass' }" + ) or die "Couldn't connect to database: " . DBI->errstr; + + +# Test if load_sys_config_db is working +print "Test if load_sys_config_db is working\n"; + +my $system_hash_ref = load_sys_config_db( $dbh ); +my %system_hash = %$system_hash_ref; + +print "system_hash{ 'version' } = $system_hash{ 'version' }\n"; +print "system_hash{ 'install_date' } = $system_hash{ 'install_date' }\n"; +print "system_hash{ 'use_utf8' } = $system_hash{ 'use_utf8' }\n"; +print "system_hash{ 'webroot_writable' } = $system_hash{ 'webroot_writable' }\n"; +print "system_hash{ 'enable_qm_log' } = $system_hash{ 'enable_qm_log' }\n"; +print "system_hash{ 'qm_server_ip' } = $system_hash{ 'qm_server_ip' }\n"; +print "system_hash{ 'qm_dbname' } = $system_hash{ 'qm_dbname' }\n"; +print "system_hash{ 'qm_login' } = $system_hash{ 'qm_login' }\n"; +print "system_hash{ 'qm_pass' } = $system_hash{ 'qm_pass' }\n"; +print "system_hash{ 'qm_url' } = $system_hash{ 'qm_url' }\n"; +print "system_hash{ 'qm_log_id' } = $system_hash{ 'qm_log_id' }\n"; +print "system_hash{ 'qm_eq_prepend' } = $system_hash{ 'qm_eq_prepend' }\n"; +print "system_hash{ 'vd_agent_disable' } = $system_hash{ 'vd_agent_disable' }\n"; +print "system_hash{ 'allow_sipsak_msgs' } = $system_hash{ 'allow_sipsak_msgs' }\n"; +print "system_hash{ 'admin_home_url' } = $system_hash{ 'admin_home_url' }\n"; +print "system_hash{ 'agent_xfer_weblog' } = $system_hash{ 'agent_xfer_weblog' }\n\n"; + + + +# Test if load_server_config_db is working +print "Test if load_server_config_db is working\n"; + +my $server_hash_ref = load_server_config_db( $config_hash{ 'server_ip' } , $dbh ); +my %server_hash = %$server_hash_ref; + +print "server_hash{ 'server_id' } = $server_hash{ 'server_id' }\n"; +print "server_hash{ 'server_desc' } = $server_hash{ 'server_desc' }\n"; +print "server_hash{ 'server_ip' } = $server_hash{ 'server_ip' }\n"; +print "server_hash{ 'active' } = $server_hash{ 'active' }\n"; +print "server_hash{ 'ast_version' } = $server_hash{ 'ast_version' }\n"; +print "server_hash{ 'max_vd_trunks' } = $server_hash{ 'max_vd_trunks' }\n"; +print "server_hash{ 'ast_mgr_host' } = $server_hash{ 'ast_mgr_host' }\n"; +print "server_hash{ 'ast_mgr_port' } = $server_hash{ 'ast_mgr_port' }\n"; +print "server_hash{ 'ast_mgr_user' } = $server_hash{ 'ast_mgr_user' }\n"; +print "server_hash{ 'ast_mgr_pass' } = $server_hash{ 'ast_mgr_pass' }\n"; +print "server_hash{ 'ast_mgr_update_user' } = $server_hash{ 'ast_mgr_update_user' }\n"; +print "server_hash{ 'ast_mgr_listen_user' } = $server_hash{ 'ast_mgr_listen_user' }\n"; +print "server_hash{ 'ast_mgr_send_user' } = $server_hash{ 'ast_mgr_send_user' }\n"; +print "server_hash{ 'local_gmt' } = $server_hash{ 'local_gmt' }\n"; +print "server_hash{ 'vm_dump_exten' } = $server_hash{ 'vm_dump_exten' }\n"; +print "server_hash{ 'dft_xfer_exten' } = $server_hash{ 'dft_xfer_exten' }\n"; +print "server_hash{ 'ext_context' } = $server_hash{ 'ext_context' }\n"; +print "server_hash{ 'sys_perf_log' } = $server_hash{ 'sys_perf_log' }\n"; +print "server_hash{ 'vd_server_logs' } = $server_hash{ 'vd_server_logs' }\n"; +print "server_hash{ 'agi_output' } = $server_hash{ 'agi_output' }\n"; +print "server_hash{ 'vd_balance_active' } = $server_hash{ 'vd_balance_active' }\n"; +print "server_hash{ 'vd_balance_free_trunks' } = $server_hash{ 'vd_balance_free_trunks' }\n\n"; + + +print "Test if load_all_servers_config_db is working\n"; + +my $all_servers_hash_ref = load_all_servers_config_db( $dbh ); +my %all_servers_hash = %$all_servers_hash_ref; + +my $hash_size = %all_servers_hash; + +for my $server_ip ( keys %all_servers_hash ) { + # assign the hash values + print "all_servers_hash{ $server_ip }{ 'server_id' } = $all_servers_hash{ $server_ip }{ 'server_id' }\n"; + print "all_servers_hash{ $server_ip }{ 'server_desc' } = $all_servers_hash{ $server_ip }{ 'server_desc' }\n"; + print "all_servers_hash{ $server_ip }{ 'server_ip' } = $all_servers_hash{ $server_ip }{ 'server_ip' }\n"; + print "all_servers_hash{ $server_ip }{ 'active' } = $all_servers_hash{ $server_ip }{ 'active' }\n"; + print "all_servers_hash{ $server_ip }{ 'ast_version' } = $all_servers_hash{ $server_ip }{ 'ast_version' }\n"; + print "all_servers_hash{ $server_ip }{ 'max_vd_trunks' } = $all_servers_hash{ $server_ip }{ 'max_vd_trunks' }\n"; + print "all_servers_hash{ $server_ip }{ 'ast_mgr_host' } = $all_servers_hash{ $server_ip }{ 'ast_mgr_host' }\n"; + print "all_servers_hash{ $server_ip }{ 'ast_mgr_port' } = $all_servers_hash{ $server_ip }{ 'ast_mgr_port' }\n"; + print "all_servers_hash{ $server_ip }{ 'ast_mgr_user' } = $all_servers_hash{ $server_ip }{ 'ast_mgr_user' }\n"; + print "all_servers_hash{ $server_ip }{ 'ast_mgr_pass' } = $all_servers_hash{ $server_ip }{ 'ast_mgr_pass' }\n"; + print "all_servers_hash{ $server_ip }{ 'ast_mgr_update_user' } = $all_servers_hash{ $server_ip }{ 'ast_mgr_update_user' }\n"; + print "all_servers_hash{ $server_ip }{ 'ast_mgr_listen_user' } = $all_servers_hash{ $server_ip }{ 'ast_mgr_listen_user' }\n"; + print "all_servers_hash{ $server_ip }{ 'ast_mgr_send_user' } = $all_servers_hash{ $server_ip }{ 'ast_mgr_send_user' }\n"; + print "all_servers_hash{ $server_ip }{ 'local_gmt' } = $all_servers_hash{ $server_ip }{ 'local_gmt' }\n"; + print "all_servers_hash{ $server_ip }{ 'vm_dump_exten' } = $all_servers_hash{ $server_ip }{ 'vm_dump_exten' }\n"; + print "all_servers_hash{ $server_ip }{ 'dft_xfer_exten' } = $all_servers_hash{ $server_ip }{ 'dft_xfer_exten' }\n"; + print "all_servers_hash{ $server_ip }{ 'ext_context' } = $all_servers_hash{ $server_ip }{ 'ext_context' }\n"; + print "all_servers_hash{ $server_ip }{ 'sys_perf_log' } = $all_servers_hash{ $server_ip }{ 'sys_perf_log' }\n"; + print "all_servers_hash{ $server_ip }{ 'vd_server_logs' } = $all_servers_hash{ $server_ip }{ 'vd_server_logs' }\n"; + print "all_servers_hash{ $server_ip }{ 'agi_output' } = $all_servers_hash{ $server_ip }{ 'agi_output' }\n"; + print "all_servers_hash{ $server_ip }{ 'vd_balance_active' } = $all_servers_hash{ $server_ip }{ 'vd_balance_active' }\n"; + print "all_servers_hash{ $server_ip }{ 'vd_balance_free_trunks' } = $all_servers_hash{ $server_ip }{ 'vd_balance_free_trunks' }\n\n"; + +} + + diff --git a/agc_2-X/branches/agc_2.2.0/sounds/,.wav b/agc_2-X/branches/agc_2.2.0/sounds/,.wav new file mode 100644 index 00000000..62565704 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/,.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/0.gsm b/agc_2-X/branches/agc_2.2.0/sounds/0.gsm new file mode 100644 index 00000000..8c57c411 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/0.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/0.wav b/agc_2-X/branches/agc_2.2.0/sounds/0.wav new file mode 100644 index 00000000..fe3fc124 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/0.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/1.gsm b/agc_2-X/branches/agc_2.2.0/sounds/1.gsm new file mode 100644 index 00000000..7f6c842f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/1.gsm @@ -0,0 +1 @@ +8z*PScOȪP,r)" +E<7j2h#8誙B,65Cb (Ra.4WFR2) 8z.hK]%Mq]ͷM] %ty\ ,Yc:Sd<,iUK:B.eZ%Vn*䡝QE!t+DC5сWETbok]bcCzՔ.46_M]]Dbv])`]kʜ_uY]UU2Fr.]MtZld]C]6]Y[.jR=_a 뭺_ܭ1Z]r2բ)6A]](,Q]\gS4a&Q2c>v\udI$P`u \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/1.wav b/agc_2-X/branches/agc_2.2.0/sounds/1.wav new file mode 100644 index 00000000..e5f5359a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/1.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/2.gsm b/agc_2-X/branches/agc_2.2.0/sounds/2.gsm new file mode 100644 index 00000000..82d6e751 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/2.gsm @@ -0,0 +1,3 @@ +xZP4e5cU\ #n7#HVc ͌xC=A`a肹 B+3+x;4QӇx7 T_ xJB<]%]и +]t1]"0s wb2"hϣ& 0_C%,#dAxZ=a#^TIXVաs6IsBtIrx%~—b!a8sa8cF )8xZvEX]#yM02":#8txZv"%|_,äϢ)YxJA}me+6j_-gF|xK>a- +wCY 藡J,FsͮZx<>_"q- ) *Ƭs Psv_cgβrG$R 埗Y \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/2.wav b/agc_2-X/branches/agc_2.2.0/sounds/2.wav new file mode 100644 index 00000000..c3e9edd9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/2.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/3.gsm b/agc_2-X/branches/agc_2.2.0/sounds/3.gsm new file mode 100644 index 00000000..a41d6679 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/3.gsm @@ -0,0 +1,2 @@ +;=PW1W#X [r)d[K%7 +$c#2+)UBV4F¬SC{4[Hnpޥꕷbªσ`gC?=W n(*En,{Q6qR=!Ʈ\b#V) h~R=ѓ \%.kn\R=pzr>ܙ=$u R=ρfGϠȵj&ayC<·+61㍂aϣpK;WClRLJ$=Rf%>##xwb LM}bj&V:3k+[? kS%vAbÝ97qݑ \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/3.wav b/agc_2-X/branches/agc_2.2.0/sounds/3.wav new file mode 100644 index 00000000..bc37ff5d Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/3.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/4.gsm b/agc_2-X/branches/agc_2.2.0/sounds/4.gsm new file mode 100644 index 00000000..d2bae3f8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/4.gsm @@ -0,0 +1,2 @@ +8PRW\-elG'XVb,b*V rK"bTJ5~aȋf9ZTȁ`IZ^8nYZ2!Qhzk*"xS8nƸ*"fsSzCdփHΡQTmqZsb=iB +Vbc #meTQJeS;4UQ\H'k JX+ 82U" #9k:'Q "I.Sc"7оRr%ڜD~V΢e Vqr!EKi}9EiUELyXz9#3ȭrQ Ysq[HܘaM2 \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/4.wav b/agc_2-X/branches/agc_2.2.0/sounds/4.wav new file mode 100644 index 00000000..05f1adf8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/4.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/5.gsm b/agc_2-X/branches/agc_2.2.0/sounds/5.gsm new file mode 100644 index 00000000..239c7aca --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/5.gsm @@ -0,0 +1 @@ +xj=P3cWcT qFܚ$DVD%CHxS&TxD?4A9E'ڸU2r [SyqxbWXWlK%a.Ռ̩ح4+Mv_dȗ˱.#IZAY \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/6.wav b/agc_2-X/branches/agc_2.2.0/sounds/6.wav new file mode 100644 index 00000000..7c32ca36 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/6.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/7.gsm b/agc_2-X/branches/agc_2.2.0/sounds/7.gsm new file mode 100644 index 00000000..0260531d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/7.gsm @@ -0,0 +1,2 @@ +8PR=:^ +r(۞fM[E88vG(QE!f݅ Q[O*֩r<HWSwt8Dx"IGDL4:RīUXj]H䋨L~rA fa֮2_(9FܗL]ëRQh_7#uGB.Vi]McjE2[vADyac]loHtRFz􇁗Hy!Aq8!QȤc=6 B)SdޭU9"<55c=ۉmbSc_ܩHUD{7=_!1֥!S왩n:5P!ku \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/7.wav b/agc_2-X/branches/agc_2.2.0/sounds/7.wav new file mode 100644 index 00000000..6cdce5c1 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/7.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/8.gsm b/agc_2-X/branches/agc_2.2.0/sounds/8.gsm new file mode 100644 index 00000000..e931896a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/8.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/8.wav b/agc_2-X/branches/agc_2.2.0/sounds/8.wav new file mode 100644 index 00000000..3ed04b3b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/8.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/9.gsm b/agc_2-X/branches/agc_2.2.0/sounds/9.gsm new file mode 100644 index 00000000..4a994705 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/9.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/9.wav b/agc_2-X/branches/agc_2.2.0/sounds/9.wav new file mode 100644 index 00000000..1439a595 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/9.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/US_pol_survey_hello.gsm b/agc_2-X/branches/agc_2.2.0/sounds/US_pol_survey_hello.gsm new file mode 100644 index 00000000..62e844ee Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/US_pol_survey_hello.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/US_pol_survey_transfer.gsm b/agc_2-X/branches/agc_2.2.0/sounds/US_pol_survey_transfer.gsm new file mode 100644 index 00000000..897afabb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/US_pol_survey_transfer.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_callback.gsm b/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_callback.gsm new file mode 100644 index 00000000..dfb73f5e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_callback.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_goodbye.gsm b/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_goodbye.gsm new file mode 100644 index 00000000..4759fdf8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_goodbye.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_message.gsm b/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_message.gsm new file mode 100644 index 00000000..863cbabf Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_message.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_options.gsm b/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_options.gsm new file mode 100644 index 00000000..774fe35c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/US_reminder_options.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/US_thanks_no_contact.gsm b/agc_2-X/branches/agc_2.2.0/sounds/US_thanks_no_contact.gsm new file mode 100644 index 00000000..c0e6a2b2 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/US_thanks_no_contact.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/auth-thankyou.gsm b/agc_2-X/branches/agc_2.2.0/sounds/auth-thankyou.gsm new file mode 100644 index 00000000..45e7104e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/auth-thankyou.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/buzz.gsm b/agc_2-X/branches/agc_2.2.0/sounds/buzz.gsm new file mode 100644 index 00000000..9549d64c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/buzz.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/confirm_id_number.gsm b/agc_2-X/branches/agc_2.2.0/sounds/confirm_id_number.gsm new file mode 100644 index 00000000..9a081611 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/confirm_id_number.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/confirm_id_number.wav b/agc_2-X/branches/agc_2.2.0/sounds/confirm_id_number.wav new file mode 100644 index 00000000..f4751191 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/confirm_id_number.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/ding.gsm b/agc_2-X/branches/agc_2.2.0/sounds/ding.gsm new file mode 100644 index 00000000..2680c52e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/ding.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/enter-password.gsm b/agc_2-X/branches/agc_2.2.0/sounds/enter-password.gsm new file mode 100644 index 00000000..00feba18 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/enter-password.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/enter.gsm b/agc_2-X/branches/agc_2.2.0/sounds/enter.gsm new file mode 100644 index 00000000..aa4dafb6 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/enter.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/four_digit_id.gsm b/agc_2-X/branches/agc_2.2.0/sounds/four_digit_id.gsm new file mode 100644 index 00000000..5c60505d Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/four_digit_id.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/generic_hold.gsm b/agc_2-X/branches/agc_2.2.0/sounds/generic_hold.gsm new file mode 100644 index 00000000..c76eccd8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/generic_hold.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/hash.gsm b/agc_2-X/branches/agc_2.2.0/sounds/hash.gsm new file mode 100644 index 00000000..0d0a8ecf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/hash.gsm @@ -0,0 +1,2 @@ +\}PcȣP tۆD#E)#i(*E3yBF:W2wWԢ6TyuWI+sdWysuk2yct9,,Wk|UTWu#.1c}yQ( dº\2! Q\?;waWnfy.7FW){?YW!Q nSB*qUUy>XWQDm! \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/hash.wav b/agc_2-X/branches/agc_2.2.0/sounds/hash.wav new file mode 100644 index 00000000..a079f449 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/hash.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/hold_tone.gsm b/agc_2-X/branches/agc_2.2.0/sounds/hold_tone.gsm new file mode 100644 index 00000000..8f9686cd Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/hold_tone.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/id_number.gsm b/agc_2-X/branches/agc_2.2.0/sounds/id_number.gsm new file mode 100644 index 00000000..02134f01 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/id_number.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/id_number.wav b/agc_2-X/branches/agc_2.2.0/sounds/id_number.wav new file mode 100644 index 00000000..ba321f0a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/id_number.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/ld_invalid_pin_number.gsm b/agc_2-X/branches/agc_2.2.0/sounds/ld_invalid_pin_number.gsm new file mode 100644 index 00000000..a733207e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/ld_invalid_pin_number.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/ld_welcome_pin_number.gsm b/agc_2-X/branches/agc_2.2.0/sounds/ld_welcome_pin_number.gsm new file mode 100644 index 00000000..1e77f4b3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/ld_welcome_pin_number.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/leave.gsm b/agc_2-X/branches/agc_2.2.0/sounds/leave.gsm new file mode 100644 index 00000000..7b3bef01 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/leave.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/login-fail.gsm b/agc_2-X/branches/agc_2.2.0/sounds/login-fail.gsm new file mode 100644 index 00000000..3bafc2f9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/login-fail.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/nbdy-avail-to-take-call.gsm b/agc_2-X/branches/agc_2.2.0/sounds/nbdy-avail-to-take-call.gsm new file mode 100644 index 00000000..f8861109 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/nbdy-avail-to-take-call.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/pin-invalid.gsm b/agc_2-X/branches/agc_2.2.0/sounds/pin-invalid.gsm new file mode 100644 index 00000000..d3108f89 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/pin-invalid.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/pin-number-accepted.gsm b/agc_2-X/branches/agc_2.2.0/sounds/pin-number-accepted.gsm new file mode 100644 index 00000000..8faf8f92 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/pin-number-accepted.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/please_enter_id_number.gsm b/agc_2-X/branches/agc_2.2.0/sounds/please_enter_id_number.gsm new file mode 100644 index 00000000..f6b4e4cf Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/please_enter_id_number.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/please_enter_id_number.wav b/agc_2-X/branches/agc_2.2.0/sounds/please_enter_id_number.wav new file mode 100644 index 00000000..93eadb05 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/please_enter_id_number.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.alaw b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.alaw new file mode 100644 index 00000000..1d60a147 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.alaw @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.g729 b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.g729 new file mode 100644 index 00000000..f62e6329 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.g729 differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.gsm b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.gsm new file mode 100644 index 00000000..b391b2cb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.ulaw b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.ulaw new file mode 100644 index 00000000..ea342c90 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.ulaw @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.wav b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.wav new file mode 100644 index 00000000..d7cc9c6e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/quicksilence.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/silence.wav b/agc_2-X/branches/agc_2.2.0/sounds/silence.wav new file mode 100644 index 00000000..62565704 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/silence.wav differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/silence10.gsm b/agc_2-X/branches/agc_2.2.0/sounds/silence10.gsm new file mode 100644 index 00000000..5bce283a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/silence10.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/sip-silence.gsm b/agc_2-X/branches/agc_2.2.0/sounds/sip-silence.gsm new file mode 100644 index 00000000..b391b2cb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/sounds/sip-silence.gsm differ diff --git a/agc_2-X/branches/agc_2.2.0/sounds/star.gsm b/agc_2-X/branches/agc_2.2.0/sounds/star.gsm new file mode 100644 index 00000000..5ec8908e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/sounds/star.gsm @@ -0,0 +1,2 @@ +:nPSat֪j*PR6۞D IDCtbXFER|>TRANFERENCIA| +PARK|ESPERA| +IN-NUMBER|NUMERO ENTRANTE| +NUMBER|NUMERO| +LENGTH|COMPRIMENTO| +CALLERID|CALLERID| +CallerID|CallerID| + CALL| CHAMADA| +PICKUP|CAPTURAR| +CONFERENCE|CONFERENCIA| +Refresh|Atualizar| +Send DTMF|Enviar DTMF| +BORDER|BORDA| +ORDER|ORDEM| + on |ligado| +LOGOUT|SAIR| +Channel|Canal| +Extensions|Extensões| +Conferences|Conferencias| +Conference|Conferencia| +Recording|Gravando| +Record|Gravar| +Welcome|Bem vindo| +VOICEMAIL|CAIXA POSTAL| + NEW| NOVO| + OLD| VELHO| +STOP|BATENTE| +START|INICIAR| + Pause | Pausa | +Resume|Início| +Faster|Mais rápido| +Slower|Mais devagar| +Initializing|Inicializando| +Invalid|Inválido| +Username|Usuário| +CUSTOM|CUSTOMIZADO| +Notes|Notas| +First|Primeiro| +MI: |MI:| +Last|Ultimo| +Address|Endereço| +City|Cidade| +State|Estado| +PostCode|CEP| +Province|Bairro| +Vendor ID|Vendedor| +DialCode|Codigo de Area| +Alt. Phone|Telefone Alternativo| +Show|Mostrar| +Email|Email| +Comments|Comentários| +REFRESH|ATUALIZAR| +ALT PHONE DIAL|DISCAR TELEFONE ALT| +MAIN PHONE|TELEFONE PRINCIPAL| +ALT PHONE|TELEFONE ALTERNATIVO| +ADDRESS3|ENDERECO3| +FINISH LEAD|FINALIZAR CONTATO| +Dial Alt Phone Number|Discar telefone alternativo| +Phone|Telefone| + DIAL| DISCAR| +SUBMIT FAVORITES CHANGES - requires logout|PARA ENVIAR MODIFICACOES FAVORITAS E NECESSARIO FAZER O LOGOUT| +BACK TO MAIN WINDOW - ignore changes made|VOLTAR A TELA PRINCIPAL - as alterações serão ignoradas| +AVAILABLE EXTENSIONS|EXTENSOES DISPONIVEIS| + edit|editar| + FAVORITES|FAVORITOS| +### 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:| +### months of the year for CallBack date select screen ### +January|Janeiro| +Frebruary|Fevereiro| +March|Março| +April|Abril| +May|Pode| +June|Junho| +July|Julho| +August|Agosto| +September|Setembro| +October|Outubro| +November|Novembro| +December|Dezembro| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Informação Precedente Da Rechamada| +Last Call: |Última Chamada:| +CallBack: |Rechamada:| +Agent: |Agente:| +Comments: |Comentários:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|VOLUME| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|SELETOR RÁPIDO| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|VOCÊ DEVE DAR ENTRADA A um NÚMERO De TELEFONE E A um CÓDIGO DoSELETOR PARA USAR O SELETOR RÁPIDO| + SELECT A PAUSE CODE :| SELECIONE Um CÓDIGO Da PAUSA :| +ENTER A PAUSE CODE|DÊ ENTRADA A um CÓDIGO Da PAUSA| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|VOCÊ DEVE SER PAUSADO PARA DAR ENTRADA A um CÓDIGO Da PAUSA NaMODALIDADE De AUTO-DIAL| +Your session has been disabled|Sua sessão foi incapacitada| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Sexo:| +Date of Birth: |Data de Nascimento:| +YOU MUST BE PAUSED TO CHANGE GROUPS|Você deve estar PAUSED PARA ALTERAR GRUPOS| +Calls in Queue:|Solicita, em fila:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|O usuário ea senha que você digitou não são ativos no sistema| +Please try again|Por favor, tente novamente| +You cannot log in or out within 30 seconds of your last login or logout|Você não pode efetuar login ou para fora dentro de 30 segundos do seu último login ou logout| +You have now logged-out|Você tem agora autenticado-out| +You logged out at |Você saiu em| +Amount of time you were logged-in: |Quantidade de tempo que foram registradas em:| +ERROR: timeclock log entry already made: |ERRO: timeclock entrada do log já realizados:| +BACK to Agent Login Screen|BACK TO Agent Login Screen| +BACK to Administration|Retornar para Administração| +BACK to Welcome Screen|ANTERIOR a tela Bem-vindo| +Time since you were last logged-in: |Vez desde que foi registrado em:| +You last logged-out at: |Você última autenticado-out em:| +Click LOGIN below to log-in|LOGIN Clique abaixo para log-in| +Amount of time you have been logged-in: |Quantidade de tempo que tem sido registrado em:| +You logged-in at:|Você autenticado-nos em:| +Click LOGOUT below to log-out|LOGOUT Clique abaixo para log-out| +Undefined|Undefined| +This phone number is not in the campaign lists|Esse número de telefone não está na campanha listas| +Unspecified error|Unspecified error| +Extended Alt Phone Information: |Extensão Alt Telefone Informação:| +ALT DIAL NUMBER:|ALT PROGR.SELEC NÚMERO:| +Phone Code and Number:|Telefone Código e Número:| +Notes: |Notas:| +Active: |Ativa:| +Alt Count: |Alt Count:| +Change this phone number to INACTIVE|Altere este número de telefone para INATIVO| +Change this phone number to ACTIVE|Altere este número de telefone para ACTIVAS| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|É necessário efetuar login AO PRIMEIRO TIMECLOCK| +There is a time synchronization problem with your system, please tell your system administrator|Há um tempo sincronização problema com o seu sistema, por favor informe o seu administrador de sistema| +Preview Call|Preview Call| +SELECT A GROUP ALIAS|Selecionar um grupo ALIÁS| +Group Alias Selection|Grupo Alias Selecção| +Click Here to Choose a Group Alias|Clique aqui para escolher um grupo Alias| +Group Alias|Grupo Alias| +ERROR: There are no Shifts enabled for your user group|ERRO: Não existem Shifts activado para o Grupo de Usuários| +ERROR: You are not allowed to log in outside of your shift|ERRO: Você não tem permissão para iniciar sessão no para fora do seu turno| +MANAGER OVERRIDE|GERENTE Override| +Your Shift is over or has changed, you have been logged out of your session|Seu Shift é mais ou mudou, você foi desconectado da sua sessão| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Você não tem permissão para discar para sessões de outro agente| +QUICK TRANSFER|RÁPIDA TRANSFERÊNCIA| +Other Agents Status|Outros agentes Status| +Available Agents Transfer|Agentes de transferência disponíveis| +Show Calls In Queue|Solicita Show Em Fila| +Calls In Queue|Solicita, em fila| +Hide Calls In Queue|Solicita Hide Na fila| +Calls in Queue View Disabled for this campaign|Chamadas na fila Ver condicionada para esta campanha| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|VOCÊ DEVE SER PAUSA PARA GRAB APELA EM FILA| +Manager |Gerente| +has selected your in-group choices|foi selecionado o grupo de escolhas| +CONSULTATIVE|CONSULTIVO| +Close Message|Fechar Mensagem| +TIMER NOTIFICATION|NOTIFICAÇÃO TIMER| diff --git a/agc_2-X/branches/agc_2.2.0/translations/de_language.txt b/agc_2-X/branches/agc_2.2.0/translations/de_language.txt new file mode 100644 index 00000000..4f784d53 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/de_language.txt @@ -0,0 +1,495 @@ +# de_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=de +# current languages in the file: +# - English - (en) no alterations +# - German - (de) second column +***LANGUAGES*** +en-English|de-Deutsch| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"JAN"| +"FEB"|"FEB"| +"MAR"|"MÄR"| +"APR"|"APR"| +"MAY"|"MAI"| +"JUN"|"JUN"| +"JLY"|"JLI"| +"AUG"|"AUG"| +"SEP"|"SEP"| +"OCT"|"OKT"| +"NOV"|"NOV"| +"DEC"|"DEZ"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Englisch| +Spanish|Spanisch| +French|Französisch| +German|Deutsch| +Italian|Italienisch| +agc_live_call_OFF.gif|agc_live_call_OFF_de.jpg| +agc_live_call_ON.gif|agc_live_call_ON_de.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_de.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_de.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_de.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_de.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber_de.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF_de.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording_de.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording2_de.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf_de.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF_de.gif| +vdc_LB_resume.gif|vdc_LB_resume_de.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_de.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall_de.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_de.gif| +vdc_LB_webform.gif|vdc_LB_webform_de.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_de.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf_de.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_de.gif| +vdc_tab_script.gif|vdc_tab_script_de.gif| +vdc_volume_MUTE.gif|vdc_volume_MUTE_de.gif| +vdc_volume_UNMUTE.gif|vdc_volume_UNMUTE_de.gif| +You have now logged out. Thank you|Sie haben sich abgemeldet. Danke| +astGUIclient web-client VERSION|astGUIclient Web-Client VERSION| +astGUIclient web client|astGUIclient web client| +VICIDIAL web client|VICIDIAL web client| +VICIDIAL web-client version|VICIDIAL Web-Client Version| +You can only monitor Zap channels|Sie können nur ISDN Leitungen abhören| +Stop Record|Aufnahme stoppen| +you are logged into this phone|Sie sind mit diesem Telefon angemeldet| +Back to Main Window|Zurück zu Hauptfenster| +LIVE CALLS ON THIS PHONE|VERBUNDEN MIT DIESEM TELEFON| +LIVE CALLS IN THIS CONFERENCE|VERBINDUNGEN IN DIESER KONFERENZ| +LIVE CALL TRANSFER|ANRUF WEITERLEITEN| +CLIENT CHANNEL|KUNDEN LEITUNG| +REMOTE CHANNEL|ENTFERNTE LEITUNG| +CLICK HERE TO LOG IN AGAIN|KLICKEN SIE HIER, UM SICH WIEDER ANZUMELDEN| +ACTIVE DISPLAY PAUSED|AKTIVE ANZEIGE PAUSIERT| +Main Panel|Haupt Bedienfeld| +Active Lines Panel|Aktive Leitungen Bedienfeld| +Conferences Panel|Konferenz Bedienfeld| +Check Voicemail|Voicemail abhören| +Live Call|Live Anruf| +Hangup Trunk|Amtsleitung auflegen| +Hijack Trunk|Amtsleitung übernehmen| +Listen Trunk|Amtsleitung hören| +Active Local Menu|Aktives Lokales Menü| +Hangup Local|Lokale Leitung auflegen| +Hijack Local|Lokale Leitung übernehmen| +Listen Local|Lokale Leitung hören| +Channel to be transferred|Leitung, die verbunden werden soll| +Extensions Menu|Extension Menü| +Send to selected extension|Verbinden mit ausgewählter Nebenstelle| +Send to selected vmail box|Weiterleiten zur ausgewählte Voicemalbox| +Send to this number|Verbinden mit dieser Nummer| +click on a number below to send to a conference|Klicken Sie unten auf eine Nummer, um mit einer Konferenz zu verbinden| +Send my channel too|Meinen Kanal auch verbinden| +Conferences Menu|Konferenz Menü| +LOCAL Extensions Dial|LOKALE Nebenstellen wahl| +Phone calling from|Telefon ruft an von| +Call selected extension|Rufe ausgewählte Nebenstelle an| +Call selected vmail box|Rufe ausgewählte Voicemalbox an| +LOCAL DIAL EXTENSIONS|LOKALE NEBENSTELLEN| +OUTBOUND CALLS|OUTBOUND ANRUFE| +INBOUND CALLS|INBOUND ANRUFE| +Refresh rate|Aktualisierungsfrequenz| +MANUAL DIAL|MANUELLER ANRUF| +CALL DATE\/TIME|ANRUF DATUM\/ZEIT| +LOCAL HANGUP|LOKALES AUFLEGEN| +PARKED CALLS|GEPARKTE ANRUFE| +PARKED BY|GEPARKT VON| +PARKED TIME|GEPARKTE ZEIT| +Registered to|Registriert bei| +Enter Conference|Betrete Konferenz| +Dial From Conf|Wählen aus Konferenz| +Active Extensions|Aktive Nebenstellen| +Outside Lines|Amtsleitungen| +Local Extensions|Lokale Nebenstellen| +Data Goes Here|Daten kommen hier rein| +Trunk Action|Amtsleitungs Aktion| +Local Action|Lokale Aktion| +Conferences List|Konferenzliste| +Click on a conference room number on the left for info on that conference|Klicken Sie auf die Konferenzraumnummer links, für Informationen über die Konferenz| +List Display|Liste Display| +Live Extensions|Live Nebenstellen| +Busy Extensions|Besetzte Nebenstellen| +Outside Lines|Amtsleitungen| +script runtime|Scriptlaufzeit| +Call Log Display|Anruf Log Anzeige| +is not valid|ist unzulässig| +or protocol|oder Protokoll| +Conf Extension Check|Conf Extension Check| +has been registered to|wurde registriert bei| +LIVE INBOUND CALL|LIVE INBOUND ANRUF| +Number Dialed|Gewählte Nummer| +SEND TO MY VOICEMAIL|AN MEINE VOICEMAILBOX SENDEN| +Live Extension Check|Aktive Nebenstelle überprüfen| +Manager Send|Manager Senden| +command not inserted|Befehl nicht abgesetzt| +command sent for|Befehl gesendet für| +One of these variables|Eine dieser Variablen| +must be greater than 2 characters|muss länger als 2 Buchstaben sein| +must be greater than 14 characters|muss länger als 14 Buchstaben sein| +must be set|muß eingestellt werden| +not sent|nicht gesendet| +Cannot find empty conference|Kann keine leere Konferenz finden| +is not live|ist nicht Live| +RECORDING WILL LAST UP TO 60 MINUTES|AUFNAHME DAUERT BIS ZU 60 MINUTEN| +Parked Calls Display|Geparkte Anruf anzeigen| +Database Query Script|Datenbank-Abfrage Script| +Group Choice|Gruppe Wählen| +has been registered to user|ist beim Benutzer registriert worden| +HOPPER EMPTY|HOPPER LEER| +LOG NOT ENTERED|LOG NICHT EINGEGEBEN| +has been changed to|wurde geändert zu| +information has been updated|Informationen sind aktualisiert worden| +is now in status|ist jetzt im Status| +Voicemail Check|Voicemail Check| +voicemail box|Voicemailbox| +Re-Login|Re-Login| +User Password|Benutzer Passwort| +User Login|Benutzer Login| +Phone Login|Telefon Login| +Phone Password|Telefon Passwort| +Campaign not active, please try again|Die Kampagne ist nicht aktiv, versuchen sie es bitte noch einmal| +Login incorrect, please try again|Falsches Passwort, versuchen sie es bitte noch einmal| +Campaign Login|Kampagne Login| +Sorry, your phone login and password are not active in this system, please try again|Ihr Telefon Login ist nicht aktiv, bitte versuchen sie es noch einmal| +leads left to call in hopper|Adressen im Hopper, die noch angerufen werden können| +CAMPAIGN CUSTOM PARKING|KAMPAGNE ANGEPASSTES PARKEN| +CAMPAIGN DEFAULT PARKING|KAMPAGNE DEFAULT PARKEN| +CAMPAIGN CUSTOM WEB FORM|KAMPAGNE ANGEPASSTES WEB-FORMULAR| +CAMPAIGN DEFAULT WEB FORM|KAMPAGNE DEFAULT WEB-FORMULAR| +CAMPAIGN ALLOWS CLOSERS|KAMPAGNE ERLAUBT NACHFRAGE| +CAMPAIGN ALLOWS NO CLOSERS|KAMPAGNE ERLAUBT KEINE NACHFRAGE| +USING PREVIOUS MEETME ROOM|VERWENDE VORHERIGEN MEETME RAUM| +USING NEW MEETME ROOM|VERWENDE NEUEN MEETME RAUM| +old QUEUE and INCALL reverted list|alte WARTESCHLANGE und INCALL umgegehrte Liste| +old QUEUE and INCALL reverted hopper|alte WARTESCHLANGE und INCALL umgegehrter Hopper| +old vicidial_live_agents records cleared|alte vicidial_live_agents Datensätze gelöscht| +campaign is set to auto_dial_level|Kampagne ist eingestellt auf auto_dial_level| +new vicidial_live_agents record inserted|neue vicidial_live_agents Datensatz eingesetzt| +campaign is set to manual dial|Kampagne ist auf manuelles Wählen eingestellt| +Sorry, there are no leads in the hopper for this campaign|Es sind für diese Kampagne keine aktiven Adressen mehr im Hopper| +Dial Next Number|Nächste Nummer wählen| +LIVE CALLS IN YOUR SESSION|LIVE ANRUFE IN IHRER SITZUNG| +Stop Recording|Stope Aufnahme| +Start Recording|Starte Aufnahme| +Transfer number must have more than 1 digit|Telefon Nummer muss mehr als 1 Stelle haben| +Grab Parked Call|Geparkten Anruf wieder aufnehmen| +Park Call|Parke Anruf| +Waiting for Ring|Warte auf Freizeichen| +Called 3rd party|Nachfrage Teilnehmer| +LEAVE 3-WAY CALL|NACHFRAGE VERLASSEN| +Dial With Customer|mit Kunde wählen| +Park Customer Dial|Kundenanruf parken| +Hangup Xfer Line|Nachfrage auflegen| +Hangup Both Lines|Beide Leitungen auflegen| +Hangup Customer|Kunden auflegen| +Transfer - Conference|Transfer - Konferenz| +LOCAL CLOSER|LOKALE SUPERVISOR NACHFRAGE| +INTERNAL CLOSER|INTERNE SUPERVISOR NACHFRAGE| +Dial Blind Transfer|Verbinden ohne Nachfrage| +Dial timed out, contact your system administrator|Timeout beim wählen, bitte kontaktieren sie ihren Systemadministrator| +No more leads in the hopper for campaign|Es sind für diese Kampagne keine aktiven Adressen mehr im Hopper| +Web Form|Web Formular| +You Must Select a Disposition|Sie müssen ein Gesprächsergebnis wählen| +GROUPS NOT SELECTED|GRUPPEN NICHT AUSGEWÄHLT| +SELECTED GROUPS|AUSGEWÄHLTE GRUPPEN| +You cannot log out during a Dial attempt|Sie können sich nicht während eines Anrufs abmelden| +Wait 50 seconds for the dial to fail out if it is not answered|Warten Sie 50 Sekunden bis der Anruf beantwortet wird oder fehlschlägt| +STILL A LIVE CALL! Hang it up then you can log out|Abmelden während des Gespräches nicht möglich, bitte BEENDEN SIE ZUERST das Gespräch| +Hide conference call channel information|Konferenz Informationen verbergen| +Show conference call channel information|Konferenz Informationen anzeigen| +Logged in as User|Angemeldet als Benutzer| +Noone is in your session|Niemand ist in ihrer Konferenz.| +Customer has hung up|Kunde hat aufgelegt| +End-of-call Disposition Selection|Gesprächsergebnis Auswahl| +CLOSER INBOUND GROUP SELECTION|SUPERVISOR INBOUND GRUPPENWAHL| +Closer Inbound Group Selection|Supervisor Inbound Gruppenwahl| +BLENDED CALLING|INBOUND und OUTBOUND| +outbound activated|Outbound aktiviert| +Preview the Lead then|Adressenvorschau| +Lead was not reverted, there was an error|Adresse wurde nicht benutzt, es gab eine Störung| +call was not placed, there was an error|Anruf wurde nicht getätigt, es gab eine Störung| +Number to call|Anzurufende Telefonnummer| +Customer Information|Kunden Information| +Lead Dispositioned As|Adresse hat das Gesprächsergebnis| +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|Die Änderungen an den Kundendaten werden nicht übernommen. Sie müssen die Kundendaten ändern bevor Sie aufgelegt haben.| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Wenn aktiviert, drücken sie einfach die entsprechende Taste, um das Gesprächsgebnis zu speichern. Der Anruf wird dann automatisch aufgelegt.| +Disposition Hot Keys|Gesprächsergebniss Tastaturkürzel| +Cust Time|Cust Zeit| +RECORD ID|Aufzeichnungs ID| +RECORDING FILE|Aufzeichnungsdatei| +HOT KEYS ACTIVE|TASTATURKÜRZEL AKTIV| +HOT KEYS INACTIVE|TASTATURKÜRZEL DEAKTIVIERT| +DIAL OVERRIDE|WÄHL OVERRIDE| +SKIP LEAD|ADRESSE ÜBERSPRINGEN| +DIAL LEAD|ADRESSE WÄHLEN| +LEAD PREVIEW|ADRESSEN VORSCHAU| +PAUSE AGENT DIALING|WÄHLPAUSE| +DISPOSITION CALL|ANRUF ABSCHLIESSEN| + session ID| Session ID| + to campaign| zur Kampagne| +Select a CallBack Date|Wählen Sie ein Rückrufdatum| + maximize | maximieren | + minimize | minimieren | +You must choose a date|Sie müssen ein Datum wählen| +Select a Date Below|Wählen Sie unten ein Datum| +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|Klicken Sie jetzt unten auf eine Wiedervorlage, um den Kunden zurückzurufen. Danach wird die Wiedervorlage aus der Liste gelöscht.| +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|Wenn Sie eine Nummer wählen möchten, die nicht in der Adressliste aufgenommen werden soll, müssen die genaue Nummer in das WÄHL OVERRIDE Feld eintragen. Um diesen Anruf dann aufzulegen, müssen Sie auf den VERBINDUNGEN IN DIESER SITZUNG Link klicken, und dann über die Auswahl der Leitung den entsprechenden Anruf zu beenden.| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|SIE KÖNNEN EINEN RÜCKRUF ODER EINEN MANUELLEN ANRUF NICHT ÜBERSPRINGEN, SIE MÜSSEN DIESE ADRESSE ANRUFEN| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|SIE MÜSSEN PAUSIERT SEIN, UM EINE NEUE ADRESSE IM AUTOMATISCHEM WÄHLMODUS MANUELL ZU WÄHLEN| +Enter information below for the new lead you wish to call|Tragen Sie unten die Informationen zu der neuen Adresse ein, die SIE wählen möchten| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|SIE MÜSSEN PAUSIERT SEIN, UM DIE WIEDERVORLAGEN IM AUTOMATISCHEM WÄHLMODUS EINZUSEHEN| +Note: all new manual dial leads will go into list 999|Anmerkung: alle neuen manuellen Adressen werden einer Liste hinzugefügt| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|SIE HABEN KEINE BERECHTIGUNG, UM ANRUFE WEITERZULEITEN| +will be added to the beginning of this number|wird dem Anfang dieser Telefonnummer hinzugefügt| +This is usually a 1 in the USA-Canada|Dieses ist normalerweise 49 in Deutschland| +NEW MANUAL DIAL LEAD FOR|NEUE MANUELLE ADRESSE FÜR| +Finish and Disposition Call|Ende und Gesprächsergebniss| +10 digits max - digits only|10 Stellen Maximum - nur Zahlen| +Note: a dial prefix of|Anmerkung: eine Vorwahl für| +Hangup Again|Wieder Auflegen| +Go Back|Zurück| +Call Agent Again|Agent wieder anrufen| +MY CALLBACK ONLY|NUR MEINE WIEDERVORLAGE| +NO ACTIVE CALLBACKS|KEINE AKTIVEN WIEDERVORLAGEN| +ACTIVE CALLBACKS|AKTIVE WIEDERVORLAGEN| +CALLBACKS FOR AGENT|WIEDERVORLAGEN FÜR AGENT| +Dial Code:|Wahl Code:| +Dial Override|Wahl Override| +digits only please|Bitte nur Zahlen| +Dial Now|Jetzt wählen| +CB Comments|WV Anmerkungen| +Title|Titel| +Your Status|Ihr Status| + STATUS| STATUS| +RESET|ZURÜCKSETZEN| +CLEAR FORM|FORMULAR ZURÜCKSETZEN| +SUBMIT|ÜBERNEHMEN| +Incoming|Eingehend| +Calling|Telefonierend| +Called|Angerufen| +Campaign|Kampagne| +Status|Status| +Inserted|Eingefügt| + seconds|Sekunden| +HELP|HILFE| +Login|Login| +User|Benutzer| +Password|Passwort| +VERSION|VERSION| +BUILD|BUILD| +Server|Server| +RECORD|AUFNAHME| +HANGUP|AUFLEGEN| +>XFER|VERBINDEN| +PARK|PARK| +IN-NUMBER|IN-NUMMER| +NUMBER|NUMMER| +LENGTH|LÄNGE| +CALLERID|ANRUFERID| +CallerID|AnruferID| + CALL| ANRUF| +PICKUP|ABNEHMEN| +CONFERENCE|KONFERENZ| +Refresh|Aktualisieren| +Send DTMF|DTMF Senden| +ORDER|BESTELLEN| + on | an | +LOGOUT|LOGOUT| +Channel|Kanal| +Extensions|Erweiterungen| +Conferences|Konferenzen| +Conference|Konferenz| +Recording|Aufnahme| +Record|Aufzeichnung| +Welcome|Willkommen| +VOICEMAIL|VOICEMAIL| + NEW| NEU| + OLD| ALT| +STOP|STOP| +START|START| + Pause | Pause | +Resume|WiederAufnehmen| +Faster|Schneller| +Slower|Langsamer| +Initializing|Initialisierung| +Invalid|Unzulässig| +Username|Username| +CUSTOM|ANGEPASST| +Notes|Anmerkungen| +First|Vorname| +MI: |MI:| +Last|Nachname| +Address|Adresse| +City|Stadt| +State|Bundesland| +PostCode|Postleitzahl| +Province|Region| +Vendor ID|Anbieter ID| +DialCode|LandesCode| +Alt. Phone|Alternative Telefonnummer| +Show|Zeigen| +Email|Email| +Comments|Anmerkungen| +REFRESH|AKTUALISIEREN| +ALT PHONE DIAL|ALT. NUMMER WÄHLEN| +MAIN PHONE|TELEFONNUMMER| +ALT PHONE|ALTERNATIVE TELEFONNUMMER| +ADDRESS3|ADRESSE3| +FINISH LEAD|ADRESSE BEENDEN| +Dial Alt Phone Number|Wähle alternative Telefonnummer| +Phone|Telefon| + DIAL| WÄHLEN| +SUBMIT FAVORITES CHANGES - requires logout|FAVORITEN ÄNDERUNGEN ÜBERNEHMEN - erfordert Logout| +BACK TO MAIN WINDOW - ignore changes made|ZURÜCK ZUM HAUPTFENSTER - Änderungen verwerfen| +AVAILABLE EXTENSIONS|VORHANDENE NEBENSTELLEN| + edit| bearbeiten| + FAVORITES| FAVORITEN| +### END translation phrases through 1.1.11 release ### +Search Existing Leads|Suche existierende Adresse| +This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Wenn diese Option ausgewählt ist, wird versucht, die Telefonnummer im System zu finden, bevor eine neue Adresse 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:| +### months of the year for CallBack date select screen ### +January|Januar| +Frebruary|Februar| +March|März| +April|April| +May|Mai| +June|Juni| +July|Juli| +August|August| +September|September| +October|Oktober| +November|November| +December|Dezember| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Informationen zur letzten Wiedervorlage| +Last Call: |Letzter Anruf:| +CallBack: |Wiedervorlage:| +Agent: |Agent:| +Comments: |Anmerkungen:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|LAUTSTÄRKE| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|SCHNELL WAHL| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|SIE MÜSSEN Eine TELEFONNUMMER UND Einen LÄNDER-CODE EINGEBEN,UM DIE SCHNELL WAHL ZU BENUTZEN| + SELECT A PAUSE CODE :| WÄHLEN Sie Einen PAUSE CODE :| +ENTER A PAUSE CODE|GEBEN Sie Einen PAUSE CODE Ein| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|SIE MÜSSEN PAUSIERT WERDEN, UM Einen PAUSE CODE Im AUTO-DIAL MODUS EINZUGEBEN| +Your session has been disabled|Ihre Sitzung ist gesperrt worden| +### BEGIN translation phrases for 2.0.4 release ### +PLEASE CLICK THE LOGOUT LINK TO LOG OUT NEXT TIME|BITTE NICHT VERGESSEN DEN LOGOUT KNOPF ZU BENÜTZEN| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Geschlecht: | +Date of Birth: |Geburtstag: | +YOU MUST BE PAUSED TO CHANGE GROUPS|SIE MÜSSEN PAUSIERT SEIN UM DIE GRUPPE ZU WECHSELN| +Calls in Queue:|Wartende Anrufe:| + Timeclock| Stechuhr| +The user and password you entered are not active in the system|Diese Benutzer und Passwort Kombination ist nicht gültig| +Please try again|Bitte noch einmal| +You cannot log in or out within 30 seconds of your last login or logout|Bitte warten Sie wenigstens 30 Sekunden zwischen dem an- und abmelden und umgekehrt| +You have now logged-out|Sie sind jetzt abgemeldet| +You logged out at |Abgemeldet um | +Amount of time you were logged-in: |Zeit die sie angemeldet waren: | +ERROR: timeclock log entry already made: |FEHLER: Stechuhreintrag wurde bereits gemacht: | +BACK to Agent Login Screen|ZURÜCK zur Benutzeranmeldung| +BACK to Administration|ZURÜCK zur Administration| +BACK to Welcome Screen|ZURÜCK zur Einstiegsseite| +Time since you were last logged-in: |Zeit seit Sie das letzte mal angemeldet waren: | +You last logged-out at: |Zuletzt ausgelogged um: | +Click LOGIN below to log-in|Klicken Sie unten auf LOGIN um sich anzumelden| +Amount of time you have been logged-in: |Zeit die Sie bereits angemeldet sind: | +You logged-in at:|Angemeldet seit:| +Click LOGOUT below to log-out|Klicken Sie unten auf LOGOUT um sich abzumelden| +Undefined|Undefiniert| +This phone number is not in the campaign lists|Diese Telefonnummer ist nicht in den Listen der Campagne| +Unspecified error|Unspezifizierter Fehler| +Extended Alt Phone Information: |Weitere alternative Telefonnummern: | +ALT DIAL NUMBER:|ALT. NUMMERN WAHL:| +Phone Code and Number:|Telefon Kennung und Nummer:| +Notes: |Notizen: | +Active: |Aktiv: | +Alt Count: |Anzahl Alternativen: | +Change this phone number to INACTIVE|Diese Telfonnummer DEAKTIVIEREN| +Change this phone number to ACTIVE|Diese Telefonnummer AKTIVIEREN| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Geschlecht:| +Date of Birth: |Geburtsdatum:| +YOU MUST BE PAUSED TO CHANGE GROUPS|SIE IST ZU ÄNDERN Paused GRUPPEN| +Calls in Queue:|Anrufe in der Warteschlange:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|Die Benutzer-und Passwort, das Sie eingetragen sind nicht aktiv in das System| +Please try again|Bitte versuchen Sie es erneut| +You cannot log in or out within 30 seconds of your last login or logout|Sie können sich nicht mehr anmelden, oder innerhalb von 30 Sekunden des letzten An-oder Abmeldung| +You have now logged-out|Sie haben nun abgemeldet| +You logged out at |Sie abgemeldet auf| +Amount of time you were logged-in: |Höhe der Zeit, die Sie angemeldet waren-in:| +ERROR: timeclock log entry already made: |FEHLER: timeclock Log-Eintrag bereits gemacht:| +BACK to Agent Login Screen|BACK, um Agent Login Screen| +BACK to Administration|Zurück zur Verwaltung| +BACK to Welcome Screen|Zurück zur Willkommen-Bildschirm| +Time since you were last logged-in: |Zeit seit dem letzten Einloggen-in:| +You last logged-out at: |Sie zuletzt eingeloggt am:| +Click LOGIN below to log-in|Klicken Sie auf LOGIN unten, um die Log-in| +Amount of time you have been logged-in: |Höhe der Zeit, die Sie wurden protokolliert-in:| +You logged-in at:|Sie eingeloggt am:| +Click LOGOUT below to log-out|Klicken Sie unten, um sich LOGOUT-out| +Undefined|Undefined| +This phone number is not in the campaign lists|Diese Telefonnummer ist nicht in der Listen-Kampagne| +Unspecified error|Unbekannter Fehler| +Extended Alt Phone Information: |Erweiterte Alt Information Telefon:| +ALT DIAL NUMBER:|ALT DIAL NUMBER:| +Phone Code and Number:|Telefon-und Code-Nummer:| +Notes: |Anmerkungen:| +Active: |Aktiv:| +Alt Count: |Alt Graf:| +Change this phone number to INACTIVE|Ändern Sie diese Telefonnummer an INACTIVE| +Change this phone number to ACTIVE|Ändern Sie diese Telefonnummer an AKTIVEN| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|Sie müssen sich in die TIMECLOCK ERSTE| +There is a time synchronization problem with your system, please tell your system administrator|Es ist eine Zeit-Synchronisation Problem mit Ihrem System haben, wenden Sie sich bitte sagen Sie sich an Ihren Systemadministrator| +Preview Call|Vorschau Call| +SELECT A GROUP ALIAS|Wählen Sie eine Gruppe ALIAS| +Group Alias Selection|Gruppe Alias Auswahl| +Click Here to Choose a Group Alias|Klicken Sie hier, um eine Gruppe Alias| +Group Alias|Alias-Gruppe| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Sie sind nicht erlaubt, in anderen Anbieters Sitzungen DFÜ| +QUICK TRANSFER|Quick Transfer| +Other Agents Status|Andere Bevollmächtigte Status| +Available Agents Transfer|Verfügbare Transfer Agents| +Show Calls In Queue|Show Anrufe in der Warteschlange| +Calls In Queue|Anrufe in der Warteschlange| +Hide Calls In Queue|Hide Anrufe in der Warteschlange| +Calls in Queue View Disabled for this campaign|Anrufe in der Warteschlange Profil behindertengerechte für diese Kampagne| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|Sie müssen mit GRAB Anrufe in der Warteschlange pausiert| +Manager |Manager| +has selected your in-group choices|hat Ihren in-group Entscheidungen| +CONSULTATIVE|BERATENDE| +Close Message|Close Message| +TIMER NOTIFICATION|Timer-Benachrichtigung| diff --git a/agc_2-X/branches/agc_2.2.0/translations/de_language_admin.txt b/agc_2-X/branches/agc_2.2.0/translations/de_language_admin.txt new file mode 100644 index 00000000..d6db3ecd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/de_language_admin.txt @@ -0,0 +1,2477 @@ +# de_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=de +# current languages in the file: +# - English - (en) no alterations +# - German - (de) first column +***LANGUAGES*** +en-English|de-Deutsch| +***FILES*** +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 +vicidial|listloader.pl|1 +vicidial|listloader_rowdisplay.pl|1 +vicidial|listloader_super.pl|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_timeonVDADallSUMMARY.php|0 +vicidial|inbound_popup.php|0 +vicidial|AST_inboundEXTstats.php|0 +vicidial|welcome.php|0 +vicidial|admin_header.php|0 +vicidial|vicidial_sales_viewer.php|0 +vicidial|user_group_bulk_change.php|0 +vicidial|AST_agent_status_detail.php|0 +vicidial|AST_agent_days_detail.php|0 +vicidial|AST_CLOSER_service_level.php|0 +vicidial|AST_IVRfilter.php|0 +vicidial|AST_IVRstats.php|0 +vicidial|call_report_export.php|0 +vicidial|fcstats.php|0 +vicidial|list_download.php|0 +vicidial|non_agent_api.php|1 +vicidial|timeclock_edit.php|0 +vicidial|timeclock_report.php|0 +vicidial|timeclock_status.php|0 +vicidial|vtiger_search.php|1 +vicidial|vtiger_user.php|1 +vicidial|welcome_demo.php|1 +vicidial|welcome_languages.php|1 +vicidial|vicidial_admin_web_logo.gif|1 +vicidial|vicidial_admin_web_logo_small.gif|1 +vicidial|user_territories.php|1 +vicidial|audio_store.php|1 +vicidial|AST_agent_time_detail.php|1 +vicidial|AST_agent_timeclock_detail.php|1 +vicidial|AST_OUTBOUNDsummary_interval.php|1 +vicidial|call_report_export.php|1 +vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 +***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|Englisch| +Spanish|Spanisch| +French|Französisch| +German|Deutsch| +Italian|Italienisch| +You have now logged out. Thank you|Sie haben jetzt heraus geloggt. Danke| +Invalid Username\/Password|Unzulässiges Username/Password| +ASTERISK ADMIN: Administration|STERNCHEN ADMIN: Leitung| +PHONES TABLE|TELEFON-TABELLE| +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.|Telefonverlängerung - Dieses fangen ist auf, wohin Sieden Telefonnamen setzen, während er scheint, nicht einschließlichdas Protokoll oder den Schrägstrich am Anfang mit einem Sternchenzuversehen. Z.B.: für das SIP Telefon SIP\/test101 würde dieTelefonverlängerung test101 sein. Auch denn Telefone IAX2 stellen Siesicher, daß Sie den vollen Telefonnamen verwenden:IAX2\/IAXphone1@IAXphone1 würde IAXphone1@IAXphone1 sein. Für ZapTelefone sicherstellen, daß Sie die volle Führung setzen: Zap/25-1würde 25-1 sein. Eine andere Anmerkung, stellen sicher, daß Sie dasProtokoll unten richtig für Ihre Art des Telefons einstellen.| +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|Voicemail Kasten - Dieses fangen ist für den voicemailKasten auf, daß die Anzeigen für zum Benutzer dieses Telefons gehen.Wir verwenden dieses, um auf voicemail Anzeigen und auf den Benutzerzu überprüfen, zum in der Lage zuSEIN, die VOICEMAIL Taste aufastGUIclient APP zu benutzen| +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|Outbound CallerID - Dieses fangen ist auf, wo Sie diecallerID Zahl eintragen würden, die Sie möchten, daß auf outboundAnrufe gesetzter Form der astguiclient Netz-Klient aussieht. Diesesarbeitet nicht auf RBS, non-PRI, T1/Eß| +Phone IP address -<\/B> This field is for the phone's IP address if it is a VOIP phone. This is an optional field|Telefon-IP address - Dieses fangen ist für IP addressdes Telefons auf, wenn es ein VOIP Telefon ist. Dieses istauffangen ein wahlweise freigestelltes| +Computer IP address -<\/B> This field is for the user's computer IP address. This is an optional field|Computer-IP address - Dieses fangen ist für IP addressComputer des Benutzers auf. Dieses ist auffangen einwahlweise freigestelltes| +Server IP -<\/B> This menu is where you select which server the phone is active on|Bediener IP - Dieses Menü ist, wo Sie vorwählen, dem Bedienerdas Telefon auf aktiv ist| +Password -<\/B> The password used for the phone user to get to admin functions|Kennwort - Das Kennwort, das für den Telefonbenutzer verwendetwird, um an admin zu gelangen, arbeitet| +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|Status - Der Status des Telefons im System, die AKTIVEN und ADMINdürfen, damit GUI Klienten arbeiten. Admin erlaubt Zugang zu dieseradministrativen Web site. Alle weiteren Status erlauben nicht GUI oderAdmin Netzzugang| +Active Account -<\/B> Whether the phone is active to put it in the list in the GUI client|Aktives Konto - Ob das Telefon aktiv ist, es in die Liste im GUIKlienten einzusetzen| +Phone Type -<\/B> Purely for administrative notes|Telefon-Art - Lediglich für administrative Anmerkungen| +Full Name -<\/B> Used by the GUIclient in the list of active phones|Voller Name - Verwendet durch das GUIclient in der Liste deraktiven Telefone| +Company -<\/B> Purely for administrative notes|Firma - Lediglich für administrative Anmerkungen| +Picture -<\/B> Not yet Implemented|Abbildung - Nicht schon eingeführt| +New Messages -<\/B> Number of new voicemail messages for this phone on the Asterisk server|Neue Anzeigen - Zahl der neuen voicemail Anzeigen für diesesTelefon auf dem Sternchenbediener| +Old Messages -<\/B> Number of old voicemail messages for this phone on the Asterisk server|Alte Anzeigen - Zahl der alten voicemail Anzeigen für diesesTelefon auf dem Sternchenbediener| +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|Klient Protokoll - Das Protokoll, das das Telefon verwendet, anden Sternchenbediener anzuschließen: Sip, IAX2, Zap. Auch, es gibtexternal für Remotevorwahlknopfzahlen oder GeschwindigkeitVorwahlknopfzahlen, die Sie als Telefone verzeichnen möchten| +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|Lokales GMT - Der Unterschied Greenwich-Zeit von oder VON DERZULU-Zeit, in der das Telefon lokalisiert wird. STELLEN SIE NICHT AUFTAGESLICHT-SPARUNGEN ZEIT EIN. Dieses wird durch die VICIDIAL Kampagneverwendet, um die Zeit und Kunde Zeit genau anzuzeigen| +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|Manager-LOGON - Dieses ist der LOGON, dem die GUI Klienten fürdieses Telefon pflegen, die Datenbank zugänglich zu machen, in derdie Bedienerdaten liegen| +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|Manager-Geheimnis - Dieses ist das Kennwort, dem die GUI Klientenfür dieses Telefon pflegen, die Datenbank zugänglich zu machen, inder die Bedienerdaten liegen| +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|VICIDIAL Rückstellung Benutzer - Dieses soll einen Default-Wertin den VICIDIAL Benutzer legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keinen Benutzer| +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|VICIDIAL Rückstellung Durchlauf - Dieses soll einen Default-Wertin das VICIDIAL Kennwort legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keinen Durchlauf| +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|VICIDIAL Rückstellung Kampagne - Dieses soll einen Default-Wertin die VICIDIAL Kampagne legen auffangen, wann immer dieserTelefonbenutzer die astVICIDIAL Klient APP öffnet. Lassen Sie freienRaum für keine Kampagne| +Park Exten -<\/B> This is the default Parking extension for the client apps. Verify that a different one works before you change this|Park Exten - Dieses ist die Rückstellung Parkenverlängerung fürdie Klient apps. Überprüfen Sie, daß ein unterschiedliches manarbeitet, bevor Sie dieses ändern| +VICIDIAL Park Exten -<\/B> This is the default Parking extension for VICIDIAL client app. Verify that a different one works before you change this|VICIDIAL Park Exten - Dieses ist die RückstellungParkenverlängerung für VICIDIAL Klient APP. Überprüfen Sie, daßein unterschiedliches man arbeitet, bevor Sie dieses ändern| +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|VICIDIAL Park-Akte - Dieses ist der Rückstellung VICIDIALPark-Verlängerung Dateiname für die Klient apps. Überprüfen Sie,daß ein unterschiedliches man arbeitet, bevor Sie dieses ändern, daszu 10 Buchstaben begrenzt wird| +Recording Exten -<\/B> This is the dial plan 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|Aufnahme Exten - Dieses ist die dial plan Verlängerung für dieAufnahmeverlängerung, die verwendet wird, um in meetme Konferenzen zufallen, um sie zu notieren. Es dauert normalerweise bis zu einerStunde, wenn es nicht gestoppt wird, überprüft mit extensions.confAkte, bevor es ändert| +VMAIL Main Exten -<\/B> This is the dial plan extension going to check your voicemail. verify with extensions.conf file before changing|VMAIL Hauptexten - Dieses ist die dial plan Verlängerung, diegeht, Ihr voicemail. zu überprüfen, überprüfen mit extensions.confAkte, bevor es ändert| +VMAIL Dump Exten -<\/B> This is the dial plan 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|VMAIL Dump Exten - Dieses ist das dial plan Präfix, das verwendetwird, um Anrufe direkt zum voicemail eines Benutzers von einemPhasenanruf in der astGUIclient APP zu schicken, überprüfen mitextensions.conf Akte, bevor es ändert| +Exten Context -<\/B> This is the dial plan 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|Exten Kontext - Dieses ist der dial plan Kontext, den diesesTelefon hauptsächlich verwendet. Es wird angenommen, daß alleNummern, die durch die Klient apps gewählt werden, diesen Kontextverwenden, also es eine gute Idee ist sicherzustellen, daß dieses derbreiteste Kontext ist, der möglich ist, überprüfen mitextensions.conf Akte, bevor es ändert| +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 senden Führung - Dieses ist die Führung Zeichenkette, diebenutzt wird, um DTMF Töne in meetme Konferenzen von den Klient appszu senden. Überprüfen Sie, daß und Kontext mit der extensions.confAkte exten| +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|Outbound Anruf-Gruppe - Dieses ist die Kanalgruppe, daß outboundAnrufe von diesem Telefon aus gesetzt werden. Es gibt Programme einesPaares in den Klient apps, die dieses verwenden. Für Zap Führungen,die Sie etwas wie Zap/g2 verwenden möchten, denn Stämme IAX2 Siedas volle IAX Präfix wie IAX2/VICItest1:secret@10.10.10.15:4569würden verwenden wollen. Überprüfen Sie die Stämme mit derextensions.conf Akte, es ist normalerweise, was Sie als die globaleVariable des STAMMES an der Oberseite der Akte definiert haben| +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|Datenbanksuchroutine-Position - Dieses ist auf nur UNIX/LINUXKlienten, der absolute Weg zu Mozilla anwendbar, oder FirefoxDatenbanksuchroutine auf der Maschine überprüfen dieses, indem siemanuell es ausstößt| +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|Anbringen Sie Verzeichnis - Dieses ist der Platz, in dem dieastGUIclient und astVICIDIAL Indexe auf Ihrer Maschine sind. FürWin32 sollte es etwas wie C:\\AST_VICI sein und für UNIX sollte esetwas wie /usr/local/perl_TK. sein überprüft dieses manuell| +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|CallerID URL - Dieses ist die Netzadresse der Seite, die benutztwird, um kundenspezifische callerID Nachschlagen zu tun, Rückstellungprüfen, dieadresse ist: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|VICIDIAL Rückstellung URL - Dieses ist die Netzadresse der Seite,die benutzt wird, um kundenspezifische VICIDIAL Netz-Formfragen zutun, Rückstellung prüfen, dieadresse ist:http://astguiclient.sf.net/test_VICIDIAL_output.php| +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 hang up 'h' extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly|Anruf-Protokollierung - Dieses wird eingestellt, um auszurichten,wenn die call_log.agi Akte im Platz in der extensions.conf Akte füralles outbound ist und die Verlängerungen des Hängezustands ' h ',zum alle zu loggen benennt. Diese sollte 1, weil es für vieleastGUIclient und DIE VICIDIAL manditory ist Eigenschaften immer sein,zum richtig zu arbeiten| +Conferencing -<\/B> Set to true to allow user to start conference calls with upto six external lines|Conferencing - Stellen Sie ein, um auszurichten, um Benutzer zuerlauben, Konferenzanrufe mit bis zu sechs externen Linien zubeginnen| +Admin Hang Up -<\/B> Set to true to allow user to be able to hang up any line at will through astGUIclient. Good idea only to enable this for Admin users|Admin Hängezustand - um Benutzer zu erlauben auszurichten Satz,zum Hängezustand irgendeine Linie am Willen durch astGUIclient in derLage zuSEIN. Gute Idee, diesem für Admin Benutzer nur zuermöglichen| +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|Admin Straßenräuber - Stellen Sie ein, um auszurichten, umBenutzer zu erlauben, in der Lage zuSEIN, zu ihrer Verlängerung jedemögliche Linie zu ergreifen und umzuadressieren am Willen durchastGUIclient. Gute Idee, diesem für Admin Benutzer nur zuermöglichen. Aber ist für Manager sehr nützlich| +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|Admin Monitor - Stellen Sie ein, um auszurichten, um Benutzer zuerlauben, in der Lage zuSEIN, zu ihrer Verlängerung jede möglicheLinie zu ergreifen und umzuadressieren am Willen durch astGUIclient.Gute Idee, diesem für Admin Benutzer nur zu ermöglichen. Aber istfür Manager und als Training Werkzeug sehr nützlich| +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 hang up. Usually enabled for all|Parkschaltung - um Benutzer zu erlauben auszurichten der Satz, inder Lage zuSEIN zu parken ersucht um astGUIclient Einfluß, von jedemanderen astGUIclient Benutzer auf dem System aufgehoben zu werden.Anrufe bleiben auf Einfluß für bis zu einen halbe Stunde dannHängezustand. Normalerweise ermöglicht für alle| +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|Updater Überprüfung - Stellen Sie ein, um auszurichten, um einepopup Warnung anzuzeigen, die die updater Zeit nicht in 20 Sekundengeändert hat. Nützlich für Admin Benutzer| +AF Logging -<\/B> Set to true to log many actions of astGUIclient usage to a text file on the user's computer|Af Protokollierung - Stellen Sie ein, um auszurichten, um vieleTätigkeiten des astGUIclient Verbrauches in einer Textakte auf demComputer des Benutzers zu protokollieren| +Queue Enabled -<\/B> Set to true to have client apps use the Asterisk Central Queue system. Required for VICIDIAL and recommended for all users|Warteschlange ermöglichte - um Klient apps auszurichten Satz dasSternchen-zentrale Warteschlange System benutzen zu lassen. Erfordertfür VICIDIAL und für alle Benutzer empfohlen| +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 - Stellen Sie ein, um auszurichten, um die Zahlenzuzulassen, die in der extensions.conf Akte definiert werden, umCallerID popup Schirme zu schicken den astGUIclient Benutzern| +VMail Button -<\/B> Set to true to display the VOICEMAIL button and the messages count display on astGUIclient|VMail Taste - Stellen Sie ein, um auszurichten, um die VOICEMAILTaste anzuzeigen und die Anzeigen zählen Anzeige auf 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|Schnell erneuern Sie - Stellen Sie ein, um auszurichten, um einerneuen Rate von zu ermöglichen erneuern von den Anrufinformationenfür das astGUIclient. Rückstellung arbeitsunfähige Rate ist 1000zweite des Ms.1. Kann Anlagen-Belastung erhöhen, wenn Sie diese Zahlsenken| +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|Schnell erneuern Sie Rate - in den Millisekunden. Nur verwendet,wenn schnell, erneuern Sie wird ermöglicht. Rückstellungarbeitsunfähige Rate ist 1000 zweite des Ms.1. Kann Anlagen-Belastungerhöhen, wenn Sie diese Zahl senken| +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 - Wenn er ermöglicht wird, bleibt derastGUIclient Anschluß angeschlossen, anstatt, jede Sekundeanzuschließen. Nützlich, wenn Sie ein schnelles die eingestellteRate erneuern lassen. Sie erhöht die Zahl Anschlüssen auf IhrerMySQL Maschine| +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|Selbstvorwahlknopf-folgende Zahl - wenn er ermöglicht wird,wählt der VICIDIAL Klient die folgende Nummer auf der Listeautomatisch nach Einteilung eines Anrufs, es sei denn sie vorwählten"auf, dem Einteilung Schirm zu wählen zu stoppen"| +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|Stoppen Sie Rec nach jedem Anruf - wenn er ermöglicht wird,stoppt der VICIDIAL Klient, was Aufnahme weitergeht, nachdem jederAnruf dispositioned gewesen ist. Nützlich, wenn Sie eine MengeAufnahme tun oder Sie benutzen eine Netzform, um Aufnahme auszulösen| +DBX Server -<\/B> The MySQL database server that this user should be connecting to|DBX Bediener - Der MySQL Datenbankbediener, den dieser Benutzeranschließen sollte an| +DBX Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|DBX Datenbank - Die MySQL Datenbank, die dieser Benutzeranschließen sollte an. Rückstellung ist Sternchen| +DBX User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|DBX Benutzer - Der MySQL Benutzer-LOGON, den dieser Benutzer beimAnschließen verwenden sollte. Rückstellung ist cron| +DBX Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|DBX Durchlauf - Das MySQL Benutzerkennwort, das dieser Benutzerbeim Anschließen verwenden sollte. Rückstellung ist 1234| +DBX Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBX Tor - Das MySQL TCP Tor, das dieser Benutzer beim Anschließenbenutzen sollte. Rückstellung ist 3306| +DBY Server -<\/B> The MySQL database server that this user should be connecting to|DBY Bediener - Der MySQL Datenbankbediener, den dieser Benutzeranschließen sollte an| +DBY Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|DBY Datenbank - Die MySQL Datenbank, die dieser Benutzeranschließen sollte an. Rückstellung ist Sternchen| +DBY User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|DBY Benutzer - Der MySQL Benutzer-LOGON, den dieser Benutzer beimAnschließen verwenden sollte. Rückstellung ist cron| +DBY Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|DBY Durchlauf - Das MySQL Benutzerkennwort, das dieser Benutzerbeim Anschließen verwenden sollte. Rückstellung ist 1234| +DBY Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBY Tor - Das MySQL TCP Tor, das dieser Benutzer beim Anschließenbenutzen sollte. Rückstellung ist 3306| +Redirect command sent for channel|Adressieren Sie den Befehl um, der für Führung gesendet wird| +Look up this customer in Customer Service System|Schauen Sie oben diesen Kunden im Kundendienst-System| +Redirect command FAILED for channel|Adressieren Sie den Befehl um, der für Führung VERLASSEN wird| +PLEASE SELECT A NUMBER AND DATE ABOVE AND CLICK SUBMIT|WÄHLEN Sie BITTE Eine ZAHL Vor UND DATUM OBEN UND KLICKEN REICHT Ein| +Total Calls That came into this number|Gesamtanrufe, die in diese Zahl kamen| +Average Call Length(seconds) for all Calls|Durchschnittlicher Anruf Length(seconds) für alle benennt| +Total DROP Calls: (less than 10 seconds)|Gesamt-TROPFEN Anrufe: (weniger als 10 Sekunden)| +Average Call Length(seconds) for DROP Calls|Durchschnittlicher Anruf Length(seconds) für TROPFEN Anrufe| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS|DIAGRAMM IN 15 MINUZIÖSEN STUFENSPRÜNGEN VON GESAMTANRUFEN| +Click on the channel below that you would like to have directed to your phone|Klicken Sie an die Führung unter der, die Sie auf Ihr Telefonverwiesen haben möchten| +LAST 1000 CALLS FOR DATE RANGE|ANRUFE DES LETZT-1000 FÜR DATUM-STRECKE| +Click here to see what leads are in the hopper right now|Klicken Sie hier, um zu sehen, welche Leitungen im Zufuhrbehälter imAugenblick sind| +CUSTOM STATUSES WITHIN THIS CAMPAIGN|KUNDENSPEZIFISCHE STATUS INNERHALB DIESER KAMPAGNE| +PLEASE SELECT A CAMPAIGN ABOVE AND CLICK SUBMIT|WÄHLEN Sie BITTE Eine KAMPAGNE OBEN Vor UND KLICKEN REICHT Ein| +PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK SUBMIT|WÄHLEN Sie BITTE Eine KAMPAGNE Vor UND DATUM OBEN UND KLICKEN REICHTEin| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS PLACED FROM THIS CAMPAIGN|DIAGRAMM IN 15 MINUZIÖSEN STUFENSPRÜNGEN DER GESAMTANRUFE GESETZTVON DIESER KAMPAGNE| +ERROR: The file does not have the required number of fields to process it|STÖRUNG: Die Akte hat nicht die erforderliche Zahl vonauffängt, um sie zu verarbeiten| +ERROR: File exceeds the 8MB limit|STÖRUNG: Akte übersteigt die Begrenzung 8MB| +Please enter the group you want to get hourly stats for|Melden Sie bitte die Gruppe an, die Sie stündlichen Notfall fürerhalten möchten| +The search variables you entered are not active in the system|Die Suchvariablen, die Sie eintrugen, sind nicht im System aktiv| +Please go back and double check the information you entered and submit again|Bitte zurück und verdoppeln Überprüfung gehen die Informationen,die Sie eintrugen und reichen wieder ein| +Click here to see the Lead Details|Klicken Sie hier, um die Leitung Details zu sehen| +SERVERS TABLE|BEDIENER-TABELLE| +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|Bediener Identifikation - Dieses fangen ist, wohin Sieden Sternchenbedienernamen setzen, doesnt müssen ein amtliches GebietUnterseeboot, gerade ein Spitzname sein auf, um den Bediener zu denAdmin Benutzern zu kennzeichnen| +Server Description -<\/B> The field where you use a small phrase to describe the Asterisk server|Bediener-Beschreibung - auffangen, wo Sie eine kleine Phraseverwenden, um den Sternchenbediener zu beschreiben| +Server IP Address -<\/B> The field where you put the Network IP address of the Asterisk server|Bediener-IP address - auffangen, wo Sie das Netz-IP addressdes Sternchenbedieners setzten| +Active -<\/B> Set whether the Asterisk server is active or inactive|Aktiv - Stellen Sie ein, ob der Sternchenbediener aktiv oderunaktiviert ist| +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|Sternchen-Version - Stellen Sie die Version des Sternchens ein,die Sie auf diesen Bediener angebracht haben. Beispiele: ' 1.2 ', '1.0.8 ', ' 1.0.7 ', ' CVS_HEAD ', ' WIRKLICH ALTES ', usw.... Dieseswird verwendet, weil Versionen 1.0.8 und 1.0.9 eine andere Methode desBeschäftigens Local/ Führungen, eine Wanze, die in CVS v1.0geregelt worden ist, und Notwendigkeit, anders als behandelt zu werdenhaben, wenn die Behandlung ihres Local/ lenkt. Auch gegenwärtigesCVS_HEAD und der 1.2 Freigabebaumgebrauch unterschiedlicher Managerund Befehl gaben aus, also muß es anders als außerdem behandeltwerden| +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|Maximale VICIDIAL Stämme - Dieses fangen feststellt diemaximale Zeilenzahl auf, um denen der VICIDIAL Auto-dialer versucht,diesen Bediener zu ersuchen. Wenn Sie zwei volle PRI Tß VICIDIALingauf einem Bediener einweihen möchten dann, würden Sie dieses bis 46einstellen. Rückstellung ist 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|Telnet Wirt - Dieses ist die Adresse oder der Name desSternchenbedieners und ist, wie die Manageranwendungen an ihnanschließen von, wo sie laufen. Wenn sie auf den Sternchenbedienerlaufen, dann ist die Rückstellung von ' localhost ' fein| +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|Telnet Tor - Dieses ist das Tor des SternchenbedienerManageranschlußes und ist, wie die Manageranwendungen an ihnanschließen von, wo sie laufen. Die Rückstellung von ' 5038 ' istfein für einen Standard anbringen| +Manager User -<\/B> The username or login used to connect genericly to the Asterisk server manager. Default is 'cron'|Manager-Benutzer - Das username oder der LOGON verwendeten, an denSternchenbedienermanager genericly anzuschließen. Rückstellung ist 'cron '| +Manager Secret -<\/B> The secret or password used to connect genericly to the Asterisk server manager. Default is '1234'|Manager-Geheimnis - Das Geheimnis oder das Kennwort verwendeten,an den Sternchenbedienermanager genericly anzuschließen.Rückstellung ist ' 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|Manager-Update-Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für dieUpdateindexe optimiert wurde. Fallen Sie ist ' updatecron ' undannimmt das gleiche Geheimnis wie der generische Benutzer zurück| +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|Manager hören Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für Indexeoptimiert wurde, die nur auf Ausgang hören. Fallen Sie ist 'listencron ' und annimmt das gleiche Geheimnis wie der generischeBenutzer zurück| +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|Manager senden Benutzer - Das username oder der LOGON verwendeten,an den Sternchenbedienermanager anzuschließen, der für Indexeoptimiert wurde, die dem Manager nur Tätigkeiten schicken. Fallen Sieist ' sendcron ' und annimmt das gleiche Geheimnis wie der generischeBenutzer zurück| +Server GMT offset -<\/B> The difference in hours from GMT time not adjusted for Daylight-Savings-Time of the server. Default is '-5'|Bediener GMT versetzt - Der Unterschied bezüglich der Stunden vonder GMT Zeit eingestellt nicht auf Tageslicht-Sparung-Zeit desBedieners. Rückstellung ist ' - 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'|VMail Dump Exten - Das Verlängerung Präfix verwendet auf diesemBediener, um Anrufe direkt durch agc zu einem spezifischen voicemailKasten zu schicken. Rückstellung ist ' 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'|VICIDIAL ANZEIGE Verlängerung - Die Rückstellung Verlängerung,wenn keines in der Kampagne anwesend ist, Anrufe für VICIDIAL zumSelbstwählen zu schicken. Rückstellung ist ' 8365 '| +Default Context -<\/B> The default dial plan context used for scripts that operate for this server. Default is 'default'|Rückstellung Kontext - Der Rückstellung dial plan Kontextverwendet für Indexe, die für diesen Bediener funktionieren.Rückstellung ist ' Rückstellung '| +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|Benutzernummer - Dieses fangen ist, wohin Sie dieVICIDIAL Benutzernummer Zahl setzen, kann bis 8 Stellen in der Längesein, muß mindestens 2 Buchstaben lang sein auf| +Password -<\/B> This field is where you put the VICIDIAL users password. Must be at least 2 characters in length|Kennwort - Dieses fangen ist auf, wohin Sie das VICIDIALBenutzerkennwort setzen. Sein mindestens müssen 2 Buchstaben lang| +Full Name -<\/B> This field is where you put the VICIDIAL users full name. Must be at least 2 characters in length|Voller Name - Dieses fangen ist auf, wohin Sie den vollenNamen der VICIDIAL Benutzer setzen. Sein mindestens müssen 2Buchstaben lang| +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|Benutzer-Niveau - Dieses Menü ist, wo Sie das VICIDIALBenutzer-Benutzerniveau vorwählen. Sein muß ein Niveau von inVICIDIAL zu loggen 1,, muß waagerecht ausgerichtet grösser sein, alsals genaueres innen zu loggen 2, Benutzerniveau 8 oder grösser seinmüssen, in admin Netzabschnitt zu erhalten| +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|Benutzer-Gruppe - Dieses Menü ist, wo Sie die VICIDIALBenutzergruppe vorwählen, daß dieser Benutzer gehört. Dieses hatkeine Beschränkungen diesmal, ist dieses gerecht, Benutzer zuunterteilen und die zukünftigen Eigenschaften zuzulassen, die nachihm gegründet werden| +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|Telefon-LOGON - Für hier ist, wo Sie einen RückstellungTelefon-LOGON-Wert wenn die Benutzermaschinenbordbücher invicidial.php einstellen können. Dieser Wert bevölkert dasphone_login automatisch wenn die Benutzermaschinenbordbücher innenmit ihrer Benutzer-überschreiten-Kampagne auf dem vicidial.phpLOGON-Schirm| +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|Telefon-Durchlauf - Für hier ist, wo Sie einen RückstellungTelefon-Durchlaufwert wenn die Benutzermaschinenbordbücher invicidial.php einstellen können. Dieser Wert bevölkert die phone_passautomatisch wenn die Benutzermaschinenbordbücher innen mit ihrerBenutzer-überschreiten-Kampagne auf dem vicidial.php LOGON-Schirm| +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|Löschung-Benutzer - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, andere Benutzer des Gleichgestellten oder wenigenBenutzerniveaus aus dem System zu löschen| +Delete User Groups -<\/B> This option if set to 1 allows the user to delete user groups from the system|Löschung-Benutzer-Gruppen - Diese Wahl, wenn Satz bis 1 demBenutzer erlaubt, Benutzergruppen aus dem System zu löschen| +Delete Lists -<\/B> This option if set to 1 allows the user to delete vicidial lists from the system|Löschung verzeichnet - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Listen aus dem System zu löschen| +Delete Campaigns -<\/B> This option if set to 1 allows the user to delete vicidial campaigns from the system|Löschung wirbt - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Kampagnen aus dem System zu löschen| +Delete In-Groups -<\/B> This option if set to 1 allows the user to delete vicidial In-Groups from the system|Löschung In-Gruppen - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial In-Gruppen aus dem System zu löschen| +Delete Remote Agents -<\/B> This option if set to 1 allows the user to delete vicidial remote agents from the system|Löschung-Remotemittel - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, vicidial Remotemittel aus dem System zu löschen| +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|Last führt - Diese Wahl, wenn Satz bis 1 dem Benutzer erlaubt,vicidial Leitungen in die vicidial_list Tabelle über die Netzgegründete Leitung Ladevorrichtung zu laden| +Campaign Detail -<\/B> This option if set to 1 allows the user to view and modify the campaign detail screen elements|Kampagne Detail - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, die Kampagne Detail-Schirmelemente anzusehen und zu ändern| +AGC Admin Access -<\/B> This option if set to 1 allows the user to login to the astGUIclient admin pages|AGC Admin Zugang - Diese Wahl, wenn Satz bis 1 den Benutzer zumLOGON zu den astGUIclient admin Seiten erlaubt| +AGC Delete Phones -<\/B> This option if set to 1 allows the user to delete phone entries in the astGUIclient admin pages|AGC Löschung-Telefone - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Telefoneintragungen in den astGUIclient admin Seiten zulöschen| +Delete Scripts -<\/B> This option if set to 1 allows the user to delete Campaign scripts in the script modification screen|Löschung-Indexe - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Kampagne Indexe auf dem Indexänderung Schirm zu löschen| +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|Index Identifikation - Dieses ist der kurze Name eines VicidialIndexes. Dieser muß ein einzigartiger Bezeichner sein. Der Versuch,zum keiner Räume oder die Interpunktion für dieses zu benutzenfangen Maximum 10 Buchstaben, Minimum von 2 Buchstaben auf| +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|Index-Name - Dieses ist der Titel einem Vicidial Index. Dieses isteine kurze Zusammenfassung der Indexmaximum 50 Buchstaben, Minimum von2 Buchstaben. Es sollte keine Räume geben, oder Interpunktionirgendwie der Art in den theis fangen auf| +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|Index kommentiert - Dieses ist, wo Sie Anmerkungen für einenVicidial Index wie - geändert, um Aufsteigen an Sept. 23 freizugeben-. Maximum 255 Buchstaben setzen können, Minimum von 2 Buchstaben| +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----

    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?

    This would read----

    Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?|Index-Text - Dieses ist, wohin Sie den Inhalt eines VicidialIndexes setzen. Minimum von 2 Buchstaben. Sie können KundeInformationen in diesem Index mit -- A -- fangenAutomobil-bevölkern lassen -- B -- wo ist eins der folgendenfieldnames auffangen Sie: vendor_lead_code, source_id,list_id, gmt_offset_now, called_since_last_reset, phone_code,phone_number, Titel, das first_name, middle_initial, last_name,address1, address2, address3, Stadt, Zustand, Provinz, postal_code,country_code, Geschlecht, date_of_birth, alt_phone, email,security_phrase, kommentiert. Z.B. dieser Satz würde den Personnamenin ihm ---- drucken, hallo, kann ich mit -- A -- first_name sprechen-- B -- -- A -- last_name -- B -- bitte? Brunnenhallo -- A -- Titel --B -- -- A -- last_name -- B -- wie gehen Sie heute? Dieses würdelesen ---- Hallo, kann ich mit John Damhirschkuh bitte sprechen?Brunnen-hallo Herr Doe, wie Sie heute sind?| +Active -<\/B> This determines whether this script can be selected to be used by a campaign|Aktiv - Dieses stellt fest, ob dieser Index vorgewählt werdenkann, durch eine Kampagne verwendet zu werden| +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|Kampagne Identifikation - Dieses ist der kurze Name der Kampagne,es ist nicht editable nach Ausgangsunterordnung, kann nicht Räumeenthalten und muß zwischen 2 und 8 Buchstaben im lengt sein| +Campaign Name -<\/B> This is the description of the campaign, it must be between 6 and 40 characters in length|Kampagne Name - Dieses ist die Beschreibung der Kampagne, muß eszwischen 6 und 40 Buchstaben lang sein| +Active -<\/B> This is where you set the campaign to Active or Inactive. If Inactive, noone can log into it|Aktiv - Dieses ist, wohin Sie die Kampagne auf aktives oderunaktiviertes einstellen. Wenn unaktiviert, kann noone in es loggen| +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|Park-Verlängerung - Dieses ist, wo Sie besonders anfertigenkönnen auf-halten Musik für VICIDIAL. Stellen Sie sicher, daß dieVerlängerung im Platz im extensions.conf ist und das, das es auf denDateinamen unten zeigt| +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|Park-Dateiname - Dieses ist, wo Sie besonders anfertigen könnenauf-halten Musik für VICIDIAL. Stellen Sie sicher, daß der Dateiname10 Buchstaben lang oder kleiner ist und daß die Akte im Platz im/var/lib/asterisk/sounds Verzeichnis ist| +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|Netz-Form - Dieses ist, wo Sie die kundenspezifische Webseiteeinstellen können, die geöffnet ist, wenn der Benutzer an dieNETZ-FORM-Taste klickt| +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|Erlauben Sie Closers - Dieses ist, wo Sie einstellen können, obdie Benutzer dieser Kampagne die Wahl haben, zum des Anrufs zu einemgenauerem zu schicken| +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|Vorwahlknopf-Status - Dieses ist, wohin Sie die Status einstellen,die Sie an innerhalb der Listen wählen wünschen, die für dieKampagne unten aktiv sind| +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|Liste Auftrag - Dieses Menü ist, wo Sie vorwählen, wie dieLeitungen, die die Status zusammenbringen, die oben vorgewähltwerden, in den Leitung Zufuhrbehälter eingesetzt werden| +select the first leads loaded into the vicidial_list table|wählen Sie die ersten Leitungen vor, die in die vicidial_list Tabellegeladen werden| +select the last leads loaded into the vicidial_list table|wählen Sie die letzten Leitungen vor, die in die vicidial_listTabelle geladen werden| +select the highest phone number and works its way down|wählen Sie die höchste Telefonnummer und die Arbeiten seine Weiseunten vor| +select the lowest phone number and works its way up|wählen Sie die niedrigste Telefonnummer und die Arbeiten seine Weiseoben vor| +starts with last names starting with Z and works its way down|Anfänge mit letzten Namen beginnend mit Z und Arbeiten seine Weiseunten| +starts with last names starting with A and works its way up|Anfänge mit letzten Namen beginnend mit A und Arbeiten seine Weiseoben| +starts with most called leads and works its way down|Anfänge mit benannten Leitungen und Arbeiten seine Weise unten| +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|Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jeder anderen Leitung einsetzt - dürfenNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus| +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|Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jeder dritten Leitung einsetzt - dürfenNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus| +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|Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weise, dieoben eine NEUE Leitung in jedem einsetzt weiter, führen Sie - darfNICHT NEUES haben vorgewählt in den Vorwahlknopfstatus| +starts with least called leads and works its way up|Anfänge mit wenigen benannten Leitungen und Arbeiten seine Weiseoben| +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|Zufuhrbehälter waagerecht ausgerichtet - Dieses ist, wieviele dieVDhopper Indexversuche führt, um in der vicidial_hopper Tabelle fürdiese Kampagne zu halten. Wenn Sie VDhopper Index jede Minute laufenlassen, bilden Sie dieses etwas grösser als die Zahl Leitungen, dieSie in eine Minute durchmachen| +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|Kraft-Zurückstellen des Zufuhrbehälters - erlaubt dieses Ihnen,aus dem Zufuhrbehälterinhalt nach Formunterordnung abzuwischen. Essollte wieder gefüllt werden, wenn der VDhopper Index läuft| +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|Selbstvorwahlknopf-Niveau - Dieses ist, wohin Sie einstellen,wieviele VICIDIAL sollte pro Mittel 0 verwenden des aktiven Mittelsnull zeichnet, Automobil, daswählen aus ist und die Mittel klicken,um jede Nummer zu wählen. Andernfalls hält VICIDIALWählverbindungen gleich den aktiven Mitteln, die mit demVorwahlknopfniveau multipliziert werden, um zu, wievielen Linien zukommen diese Kampagne auf jedem Bediener erlauben sollte| +Next Agent Call -<\/B> This determines which agent receives the next call that is available|Folgender Vertreter-Anruf - Dieses stellt fest, welches Mittel denfolgenden Anruf empfängt, der vorhanden ist| +orders by the random update value in the vicidial_live_agents table|Aufträge durch den gelegentlichen Updatewert in dervicidial_live_agents Tabelle| +orders by the last time an agent was sent a call. Results in agents receiving about the same number of calls overall|Aufträge bis zum dem letzten Mal ein Mittel wurden einem Anrufgeschickt. Resultate in den Mitteln, die insgesamt ungefähr gleicheZahl von Anrufen empfangen| +orders by the last time an agent finished a call. AKA agent waiting longest receives first call|Aufträge bis zum dem letzten Mal ein Mittel beendeten einen Anruf.Das AKA Mittel, das am längsten wartet, empfängt ersten Anruf| +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|Ortsgespräch-Zeit - Dieses ist, wohin Sie während welcherStunden Sie wählen möchten, wie bis zum der lokalen Zeit infestgestellt sind einstellten in, welchem Sie benennen. Dieses wirddurch Ortsnetzkennzahl gesteuert und wird auf Tageslicht-SparungenZeit eingestellt, wenn anwendbar. Allgemeine Richtlinien in den USAfür Geschäft zum Geschäft ist 9am bis 5pm und Geschäft zu denVerbraucheranrufen ist 9am bis 9pm| +Voicemail -<\/B> If defined, calls that would normally DROP would instead be directed to this voicemail box to hear and leave a message|Voicemail - Wenn sie definiert werden, würden Anrufe, dienormalerweise FALLEN würden, anstatt auf diesen voicemail Kastenverwiesen, um eine Anzeige zu hören und zu lassen| +Dial Timeout -<\/B> If defined, calls that would normally hang up 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|Vorwahlknopf-Abschaltung - Wenn Sie, Anrufe, die normalerweiseHängezustand wurden, nachdem die Abschaltung, die in extensions.confanstatt Abschaltung an dieser Menge Sekunden definiert wurde wurde,wenn sie kleiner ist, als die extensions.conf Abschaltung definiertwerden. Dieses läßt schnell ändernde Vorwahlknopfabschaltungen vomBediener zum Bediener und zum Begrenzen der Effekte zu einer einzelnenKampagne zu. Wenn Sie eine Menge antwortende Maschine oder VoicemailAnrufe haben, können Sie diesen Wert, bis zwischen 21-26 zu ändernversuchen und sehen wünschen, wenn Resultate verbessern| +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 dial plan - extensions.conf|Vorwahlknopf-Präfix - Dieses fangen zuläßt einen Wegdes Wählens leicht ändern auf, zum durch eine andere Methode zuerlöschen, ohne ein Umladen im Sternchen zu tun. Rückstellung ist 9gegründet nach einem 91NXXNXXXXXX im dial plan - 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. 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|Kampagne CallerID - Dieses fangen zuläßt das Senden einer kundenspezifischen callerid Zahl bei den outbound Anrufen auf. Dieses ist die Zahl, die oben auf dem callerid der Person darstellen würde, die, Sie anrufen. Die Rückstellung ist UNBEKANNT. Wenn Sie T1 benutzen, oder Eß, zum dieser Wahl heraus zu wählen nur vorhanden ist, wenn Sie PRIs verwenden - ISDN Tß oder Eß - die die kundenspezifische callerid Eigenschaft haben, die eingeschaltet wird, arbeitet dieses nicht mit Berauben-Spitze Service - RBS- Stromkreise. Dieses arbeitet auch durch das meiste VOIP - SIP oder IAX Stammversorger, die dynamisches outbound callerID erlauben. Das kundenspezifische callerID trifft nur auf die Anrufe zu, die direkt für die VICIDIAL Kampagne gesetzt werden, benennt jede mögliche 3. Partei, oder Übertragungen senden nicht das kundenspezifische callerID. ANMERKUNG: UNBEKANNT oder PRIVAT in auffangen manchmal sich setzen erbringt das Senden Ihrer Rückstellung callerID Zahl durch Ihre Fördermaschine mit den Anrufen. Sie können dieses prüfen wünschen und fangen 0000000000 in das callerid sich zu setzen anstatt auf, wenn Sie nicht Ihnen CallerID schicken möchten| +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|Kampagne VDAD Verlängerung - Dieses fangen zuläßt eineGewohnheit VDAD Übergangsverlängerung auf. Dieses erlaubt Ihnen,unterschiedliche VDADtransfer... agi Indexe zu benutzen, abhängendnach Ihrer Kampagne. Die Rückstellung Übertragung AGI - exten 8365agi-VDADtransfer.agi - gerade sendet sofort ersucht zu den Mitteln,sobald sie aufgehoben werden. Eine zusätzliches BeispielpolitischeÜbersicht AGI ist auch jetzt eingeschlossenes - 8366agi-VDADtransferSURVEY.agi - dieses Spiele eine Anzeige zurangerufenen Person und läßt sie eine Wahl treffen, indem sie Tastenbetätigt - effektiv Vorsiebung die Leitung -. Merken Sie bitte dasaußer Übersichten, politische Anrufe und Nächstenliebe diese Formdes Benennens ist in den Vereinigten Staaten ungültig| +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|Kampagne Rec Verlängerung - Dieses fangen darf auf,damit eine kundenspezifische Aufnahmeverlängerung mit VICIDIALverwendet werden kann. Dieses erlaubt Ihnen, unterschiedlicheVerlängerungen zu verwenden, abhängend nach, wie lang Sie einemaximale Aufnahme erlauben möchten und welcher Art von Codec Sieinnen notieren möchten. Die Rückstellung exten ist 8309, die, wennSie folgen die SCRATCH_INSTALL Beispiele im WAV Format bis zu einerStunde lang notieren. Eine andere Wahl, die in den Beispieleneingeschlossen ist, ist 8310, die im G/M Format bis zu einer Stundelang notieren| +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|Kampagne Aufnahme - Dieses Menü erlaubt Ihnen, zu wählen,welches Niveau der Aufnahme auf dieser Kampagne erlaubt wird. NIEsperrt Aufnahme auf dem Klienten. ONDEMAND ist die Rückstellung underlaubt dem Vertreter zu notieren zu beginnen und, zu stoppen, wiegebraucht. ALLCALLS beginnt Aufnahme auf dem Klienten, wann immer einAnruf zu einem Mittel geschickt wird| +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|Kampagne Rec Dateiname - Dieses fangen erlaubt Ihnen, denNamen der Aufnahme besonders anzufertigen auf, wenn Kampagne AufnahmeONDEMAND oder ALLCALLS ist. Die erlaubten Variablen sind KAMPAGNECUSTPHONE FULLDATE TINYDATE EPOCHE-MITTEL. Die Rückstellung istFULLDATE_AGENT und würde wie dieses 20051020-103108_6666 aussehen.Ein anderes Beispiel ist CAMPAIGN_TINYDATE_CUSTPHONE, das wie diesesTESTCAMP_51020103108_3125551212 aussehen würde| +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|Kampagne Index - Dieses Menü erlaubt Ihnen, den Index zu wählen,der auf dem Mittelschirm für diese Kampagne erscheint. Wählen SieKEINE vor, keinen Index für diese Kampagne zu zeigen| +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|Erhalten Sie Anruf-Produkteinführung - Dieses Menü erlaubt Ihnenzu wählen, ob Sie Automobil-ausstoßen die Netz-Form Seite in einemunterschiedlichen Fenster, Auto-switch zum INDEX-Vorsprung oder tunnichts wünschen, wenn ein Anruf zum Mittel für diese Kampagnegeschickt wird| +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 dial plan - extensions.conf - and make sure it plays an audio file then hangs up|Antwortende Maschine Anzeige - Dieses fangen ist für dasHereinkommen auf, in eine Verlängerung, zum von von Übergangsanrufenzu blind zu machen, wenn das Mittel eine antwortende Maschine erhältund an die antwortende Maschine Anzeige Taste imÜbergangskonferenzrahmen klickt. Sie müssen dieses einstellen extenoben im dial plan - extensions.conf - und sicherstellen, daß esspielt, eine Audioakte dann oben hängt| +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|Liste Identifikation - Dieses ist der numerische Name der Liste,es ist nicht editable nach Ausgangsunterordnung, muß nur Zahlenenthalten und muß zwischen 2 und 8 Buchstaben lang sein| +Active -<\/B> This defines whether the list is to be dialed on or not|Aktiv - Dieses definiert, ob die Liste an oder nicht gewähltwerden soll| +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|Stellen Sie Führen-Benennen-Status für diese Liste - zurückstellt dieses alle Leitungen in dieser Liste zu N für das benannte\"not da letztes Zurückstellen \" zurück und bedeutet, daß jedemögliche Leitung jetzt benannt werden kann, wenn es der rechte Statusist, wie auf dem Kampagne Schirm definiert| +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|Gruppe Identifikation - Dieses ist der kurze Name der inboundGruppe, es ist nicht editable nach Ausgangsunterordnung, darf keineRäume enthalten und muß zwischen 2 und 20 Buchstaben lang sein| +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|Gruppe Name - Dieses ist die Beschreibung der Gruppe, muß eszwischen 2 und 30 Buchstaben lang sein. Kann nicht Schläge, plussesoder Räume einschließen| +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|Gruppe Farbe - Dieses ist die Farbe, die in der VICIDIAL KlientAPP anzeigt, wenn ein Anruf auf diese Gruppe hereinkommt. Es mußzwischen 2 und 7 Buchstaben lang sein. Wenn dieses eine HexagonfarbeDefinition ist, müssen Sie sich erinnern, sich a # am Anfang derZeichenkette zu setzen, oder VICIDIAL arbeitet nicht richtig| +Active -<\/B> This determines whether this group show up in the selection box when a VICIDIAL agent logs in|Aktiv - Dieses stellt fest, ob diese Gruppe oben imVorwählerkasten wenn Maschinenbordbücher eines VICIDIAL Mittelsinnen zeigen| +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|Netz-Form - Dieses ist die kundenspezifische Adresse, die dasKlicken auf der NETZ-FORM-Taste in VICIDIAL Ihnen für zu den Anrufennimmt, die auf diese Gruppe hereinkommen| +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 - Wenn es definiert wird, ist dieses der VoicemailKasten, daß Anrufe gehen zu, anstelle von gefallen werden, wenn keineMittel nach der Haltezeit ist oben vorhanden sind| +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|Fronter Anzeige - Dieses fangen feststellt auf, ob dasinbound VICIDIAL Mittel den fronter Namen - wenn es einen gibt -angezeigt im Status auffangen haben würde, wann der Anrufzum Mittel kommt| +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|Benutzernummer Anfang - Dieses ist die beginnende Benutzernummer,die verwendet wird, wenn die Remotemitteleintragungen in das Systemeingesetzt werden. Wenn die Zeilenzahl in hohem Grade als 1eingestellt wird, wird diese Zahl durch eine erhöht, bis jede Linieeine Eintragung hat. Stellen Sie, ein neues VICIDIAL Benutzerkonto miteinem Benutzerniveau von 4 zu verursachen oder groß sicher, wenn Siesie in der LageSEIN wünschen, die vdremote.php Seite fürRemotenetzzugang dieses Kontos zu benutzen| +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|Zeilenzahl - Dieses definiert, wievieles Remotemittel Eintragungendas System verursacht, und stellt fest, wieviele Linien es denkt, daßes zur Zahl unter sicher senden kann| +Server IP -<\/B> A remote agent entry is only good for one specific server, here is where you select which server you want|Bediener IP - Eine Remotemitteleintragung ist für einenspezifischen Bediener, ist hier nur gut, wo Sie vorwählen, dasBediener Sie wünschen| +External Extension -<\/B> This is the number that you want the calls forwarded to. Make sure that it is a full dial plan 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|Externe Verlängerung - Dieses ist die Zahl, daß Sie die Anrufewünschen, die zu nachgeschickt werden. Überprüfen Sie, ob es einevolle dial plan Zahl ist und daß, wenn Sie 9 am Anfang benötigen, Sieihn innen hier setzen. Prüfen Sie, indem Sie diese Nummer von einemTelefon auf dem System wählen| +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|Status - Ist hier, wo Sie das Remotemittel an und abstellen.Sobald das Mittel aktiv ist, nimmt das System an, daß es Anrufe zuihm schicken kann. Es kann bis 30 Sekunden dauern, sobald Sie denStatus zu unaktiviertem ändern, um Anrufe, zu empfangen zu stoppen| +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|Kampagne - Ist hier, wo Sie die Kampagne vorwählen, daß dieseRemotemittel in geloggt werden. Inbound Notwendigkeiten, die GENAUEREKampagne zu verwenden und die inbound Kampagnen unter dervorzuwählen, die Sie Anrufe von empfangen möchten| +Inbound Groups -<\/B> Here is where you select the inbound groups you want to receive calls from if you have selected the CLOSER campaign|Inbound Gruppen - Ist hier, wo Sie die inbound Gruppen vorwählen,die Sie Anrufe von empfangen möchten, wenn Sie die GENAUERE Kampagnevorgewählt haben| +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|Die Listen innerhalb dieser Kampagne werden hier verzeichnet, ob siewerden bezeichnet durch das Y aktiv sind, oder N und Sie zum ListeSchirm gehen können, indem sie auf der Liste Identifikation in derersten Spalte klicken| +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|Durch den Gebrauch von kundenspezifischen Kampagne Status, können SieStatus haben, die nur für eine spezifische Kampagne bestehen. DerStatus muß 1-8 Buchstaben lang sein, muß die Beschreibung 2-30Buchstaben lang sein und auswählbar definiert, ob es oben in VICIDIALals Einteilung zeigt| +Through the use of custom campaign hot keys, agents that use the vicidial web-client can hang up and disposition calls just by pressing a single key on their keyboard|Durch den Gebrauch von kundenspezifischen Kampagne hot keys, benenntVertreter, die verwenden, der vicidial Netz-Klient Dose Hängezustandund Einteilung, gerade indem sie einen einzelnen Schlüssel auf ihrerTastatur betätigen| +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|Benutzer-Gruppe - Dieses ist der kurze Name einer VicidialBenutzergruppe, der Versuch, zum keiner Räume zu benutzen, oderInterpunktion für dieses fangen Maximum 20 Buchstaben,Minimum von 2 Buchstaben auf| +Group Name -<\/B> This is the description of the vicidial user group max of 40 characters|Gruppe Name - Dieses ist die Beschreibung des vicidialBenutzergruppe Maximums von 40 Buchstaben| +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 - Diese vier fängt dürfen auf, damit Siezwei Sätze Übergangskonferenz und DTMF Voreinstellungen haben. Wennder Anruf oder die Kampagne geladen wird, stellt der vicidial.phpIndex dar, daß zwei Tasten auf dem Bringenkonferenz Rahmen und denZahl-zu-Vorwahlknopf und senden-dtmf Automobil-zu bevölkernauffängt, wenn sie betätigt werden| +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 senden zu VM exten - erlaubt dieses Menü Ihnen zu definieren,ob eine Anzeige auf einer antwortenden Maschine gelassen wird, wennihr der Anruf wird sofort nachgeschickt zur Antworten-Maschine-AnzeigeVerlängerung ermittelt wird, wenn AMD aktiv ist und es festgestelltwird, daß der Anruf eine antwortende Maschine ist| +Modify Leads -<\/B> This option if set to 1 allows the user to modify leads in the admin section lead search results page|Ändern Sie Leitungen - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, Leitungen in der admin Abschnittleitung Suchresultate Seitezu ändern| +Hot Keys Active -<\/B> This option if set to 1 allows the user to use the Hot Keys quick-dispositioning function in|Hot Keys aktiv - Diese Wahl, wenn Satz bis 1 dem Benutzer erlaubt,die Hot Keys schnelle-dispositioning Funktion innen zu verwenden| +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|Ändern Sie Vertreter-Kampagne - Diese Wahl, wenn Satz bis 1 demBenutzer erlaubt, die Kampagne zu ändern, daß ein Mittel in geloggtwird, während sie in es geloggt werden| +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|Mittel wählen Ingroups - Diese Wahl, wenn Satz bis 1 dem Benutzererlaubt, die ingroups zu wählen, denen sie Anrufe von wenn sie LOGONzu einer GENAUEREN oder INBOUND Kampagne empfangen. Andernfalls mußder Manager dieses auf ihrem Benutzersonderkommandoschirm der adminSeite einstellen| +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|Leitung Filter - Dieses ist eine Methode der Entstörung IhrerLeitungen mit einem Fragment einer SQL Frage. Benutzen Sie dieseFunktion mit Vorsicht, es ist einfach mit, der geringfügigstenÄnderung zur SQL Aussage versehentlich zu wählen zu stoppen.Rückstellung ist KEINE| +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|Filter Identifikation - Dieses ist der kurze Name eines VicidialLeitung Filters. Dieser muß ein einzigartiger Bezeichner sein.Benutzen Sie keine Räume, oder Interpunktion für diesesfangen Maximum 10 Buchstaben, Minimum von 2 Buchstaben auf| +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|Filter-Name - Dieses ist ein beschreibenderer Name des Filters.Dieses ist eine kurze Zusammenfassung der Filtermaximum 30 Buchstaben,Minimum von 2 Buchstaben| +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|Filter kommentiert - Dieses ist, wo Sie Anmerkungen für einenVicidial Filter wie - Anrufe alle Kalifornien Leitungen -. Maximum 255Buchstaben setzen können, Minimum von 2 Buchstaben| +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 -|Filter SQL - Dieses ist, wohin Sie das SQL Frage Fragment setzen,das Sie vorbei filtern möchten anfangen nicht, oder Ende mit UND, dasdurch den Zufuhrbehälter cron Index automatisch hinzugefügt wird.eine Beispiel SQL Frage, die hier arbeiten würde, ist called_count \4 und 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|Numerisches Wählen des Mittel-Alt - erlaubt diese Wahl einemVertreter, die wechselnde Telefonnummer manuell zu wählen, oderaddress3 fangen auf, nachdem die Hauptzahl benannt wordenist| +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|Zeitlich geplante Wiederholungsbesuche - Diese Wahl erlaubt einemMittel zur Einteilung einen Anruf als CALLBK und wählt die Daten unddie Zeit, an denen die Leitung reaktiviert wird| +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|Mittel-Nur Wiederholungsbesuche - Diese Wahl erlaubt einemVertreter, einen Wiederholungsbesuch einzustellen, damit sie daseinzige Mittel sind, das die Kunde Rückseite benennen kann. Dieseserlaubt auch dem Vertreter, ihre Wiederholungsbesuch Auflistungen zusehen und sie zurück zu benennen, immer wenn sie zu wünschen| +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|Vertreter-Anruf-Handbuch - Diese Wahl erlaubt einem Vertreter,eine neue Leitung in das System manuell einzutragen und sie zubenennen. Dieses auch erlaubt das Benennen jeder möglicherTelefonnummer von ihrem vicidial Schirm und setzt diesen Anruf inihren Lernabschnitt. Verwenden Sie diese Wahl mit Vorsicht| +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|Vicidial Aufnahme - Diese Wahl kann verhindern, daß ein Mittelalle mögliche Aufnahmen tut, nachdem sie innen in vicidialprotokollieren. Diese Wahl muß eingeschaltet sein, damit vicidial demKampagne Aufnahmelernabschnitt folgt| +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 Übertragungen - Diese Wahl kann verhindern, daß einMittel die Übertragung - Konferenzlernabschnitt von vicidial öffnet.Wenn dieses untauglich ist, kann das Mittel nicht dritterParteianruf, oder blinde Übertragung irgendeine benennt| +Delete Filters -<\/B> This option allows the user to be able to delete vicidial lead filters from the system|Löschung filtert - Diese Wahl erlaubt dem Benutzer, in der LagezuSEIN, vicidial Leitung Filter aus dem System zu löschen| +Alter Agent Interface Options -<\/B> This option if set to 1 allows the administrative user to modify the Agents interface options in admin.php|Ändern Sie Mittel-Schnittstelle Wahlen - diese Wahl, wenn Satzbis 1 dem administrativen Benutzer erlaubt, die MittelschnittstelleWahlen in admin.php zu ändern| +Closer Default Blended -<\/B> This option simply defaults the Blended checkbox on a CLOSER login screen|Genauere Rückstellung gemischt - Diese Wahl fällt einfach dasgemischte checkbox auf einem GENAUEREN LOGON-Schirm zurück| +FILTER NOT ADDED - there is already a filter entry with this ID|FILTER NICHT ADDIERT - es gibt bereits eine Filtereintragung mitdieser Identifikation| +Filter ID, name and SQL must be at least 2 characters in length|Filtern Sie Identifikation, Namen und SQL muß mindestens 2 Buchstabenlang sein| +Filter ID must be at least 2 characters in length|Filter Identifikation muß mindestens 2 Buchstaben lang sein| +Please go back and look at the data you entered|Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben| +CLICK HERE TO GO TO THE SUPER LEAD LOADER|KLICKEN SIE HIER, UM ZUR SUPERLEITUNG LADEVORRICHTUNG ZU GEHEN| +BACK TO ADMIN|ZURÜCK ZU ADMIN| +File layout to use|Zu verwenden Dateiaufbau| +Standard VICIDIAL|Standard-VICIDIAL| +Custom layout|Kundenspezifischer Plan| +CLICK HERE TO GO TO THE BASIC LEAD LOADER|KLICKEN SIE HIER, UM ZUR BASIC LEITUNG LADEVORRICHTUNG ZU GEHEN| +SUPER LIST LOADER|SUPERLISTE LADEVORRICHTUNG| +OK TO PROCESS|OKAY ZU VERARBEITEN| +File data|Akte Daten| +short description of the filter|kurze Beschreibung des Filters| +Alter Agent Interface Options: |Ändern Sie Mittel-Schnittstelle Wahlen:| +Click here to delete filter |Klicken Sie hier, um Filter zu löschen| +FILTER DELETION COMPLETED:|FILTER-AUSLASSUNG DURCHGEFÜHRT:| +ADMIN INTERFACE OPTIONS:|ADMIN SCHNITTSTELLE WAHLEN:| +AGENT INTERFACE OPTIONS:|MITTEL-SCHNITTSTELLE WAHLEN:| +Closer Default Blended:|Genauere Rückstellung Gemischt:| +Agent Alt Num Dialing:|Numerisches Wählen Des Mittel-Alt:| +Scheduled Callbacks:|Zeitlich geplante Wiederholungsbesuche:| +Agent-Only Callbacks:|Mittel-Nur Wiederholungsbesuche:| +New Filter Addition|Neue Filter-Hinzufügung| +LEAD FILTER LISTINGS:|LEITUNG FILTER-AUFLISTUNGEN:| +FILTER NOT MODIFIED|FILTER NICHT GEÄNDERT| +FILTER NOT DELETED|FILTER NICHT GELÖSCHT| +DELETE THIS FILTER|LÖSCHEN SIE DIESEN FILTER| +FILTER NOT ADDED|FILTER NICHT ADDIERT| +Filter Comments: |Filter-Anmerkungen:| +FILTER MODIFIED|FILTER GEÄNDERT| +MODIFY A FILTER|ÄNDERN Sie Einen FILTER| +ADD NEW FILTER|ADDIEREN SIE NEUEN FILTER| +Add New Filter|Addieren Sie Neuen Filter| +Modify Filter|Ändern Sie Filter| +Delete Filter|Löschung-Filter| +Filter Name: |Filter-Name:| +FILTER ADDED:|FILTER ADDIERT:| +VIEW FILTERS|ANSICHT-FILTER| +Lead Filter:|Leitung Filter:| +Filter SQL:|Filter Sql:| +Users List|Benutzer-Liste| +Filter ID: |Filter Identifikation:| +Filters|Filter| +Agent Call Manual|Vertreter-Anruf-Handbuch| +Vicidial Recording|Vicidial Aufnahme| +Vicidial Transfers|Vicidial Übertragungen| +Click here for user time sheet|Klicken Sie hier für Benutzerzeitblatt| +Click here for user status|Klicken Sie hier für Benutzerstatus| +Click here for user CallBack Holds|Klicken Sie hier für Benutzer Wiederholungsbesuch Einflüsse| +Lead Filter|Leitung Filter| +Click here to see all CallBack Holds in this campaign|Klicken Sie hier, um alle Wiederholungsbesuch Einflüsse in dieserKampagne zu sehen| +STATUS NAME|STATUS-NAME| +Script ID|Index Identifikation| +Script Name|Index-Name| +Script Comments|Index-Anmerkungen| +Script Text|Index-Text| +ADD FILTER|ADDIEREN SIE FILTER| +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: Aufträge durch das user_level des Mittels, wie inden vicidial_users definiert legen ein höheres user_level empfangenmehr Anrufe ver| +VICIDIAL LIST LOADER FUNCTIONALITY|VICIDIAL LISTE LADEVORRICHTUNG FUNKTIONALITÄT| +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|Die VICIDIAL grundlegende Netz-gegründete Leitung Ladevorrichtung isteinfach entworfen, um eine Leitung Akte zu nehmen - bis zu 8MB in derGröße - die entweder Vorsprung oder das abgegrenzte Rohr und es indie vicidial_list Tabelle zu laden ist. Es gibt auch eine neueBetaversionsuperleitung Ladevorrichtung, das auffangen dasWählen zuläßt und TXT- deutlich Text, CSV- Komma getrennte Werteund XLS- übertreffen Akte Formate. Die Leitung Ladevorrichtung tutnicht Datenprüfung, oder Überprüfung auf Duplikate in sich oder inanderen Listen, damit etwas Sie ist, muß vor Ihnen Last tun dieLeitungen. Auch überprüfen Sie, ob Sie die Liste erstellt haben,daß diese Leitungen darunter sein sollen, damit Sie sie benutzenkönnen. Es gibt auch die Angelegenheit der Zeit-Zone-Kodierung dieseLeitungen. Sie können die Frequenz erhöhen wünschen, daß dasADMIN_adjust_GMTnow_on_leads.pl in das cron auf IhremSternchenbediener gelaufen wird, damit alle mögliche geladenenLeitungen schneller kodiert werden können. Ist hier eine Liste vonauffängt in ihrem korrekten Auftrag für die Leitung Akten| +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|ANMERKUNGEN: Die übertreffenleitung Ladevorrichtung Funktionalitätwird durch eine Reihe Perl Indexe ermöglicht und muß eine richtigzusammengebaute /home/cron/AST_SERVER_conf.pl Akte im Platz auf demweb server haben. Auch ein Paarperl Module müssen für sie, umaußerdem zu arbeiten - OLE-Storage_Lite-Storage_Lite undVerteilungsbogen-ParseExcel geladen werden. Sie können aufLaufzeitfehler in diesen überprüfen, indem Sie Ihre Apache error_logAkte betrachten| +Vendor Lead Code - shows up in the Vendor ID field of the GUI|Verkäufer-Leitung Code - zeigt oben im Verkäufer, den Identifikationvom GUI auffangen| +Source Code - internal use only for admins and DBAs|Quellenprogramm - interner Gebrauch nur für admins und DBAs| +List ID - the list number that these leads will show up under|Liste Identifikation - die Liste Zahl, die diese Leitungen obendarunter zeigen| +Phone Code - the prefix for the phone number - 1 for US, 01144 for UK, 01161 for AUS, etc|Telefon-Code - das Präfix für die Telefonnummer - 1 für US, 01144für Großbritannien, 01161 für AUS, usw.| +Phone Number - must be at least 8 digits long|Telefonnummer - muß mindestens 8 Stellen lang sein| +Title - title of the customer - Mr. Ms. Mrs, etc...|Titel - Titel dem Kunden - Herr Ms Mrs, usw....| +NOTE: It can take up to 30 seconds for changes submitted on this screen to go live|ANMERKUNG: Sie kann bis 30 Sekunden für die Änderungen dauern, dieauf diesem Schirm eingereicht werden, um Phasen zu gehen| +USER NOT ADDED - there is already a user in the system with this user number|BENUTZER NICHT ADDIERT - es gibt bereits einen Benutzer im System mitdieser Benutzerzahl| +USER NOT ADDED - Please go back and look at the data you entered|BENUTZER NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +user id must be between 2 and 8 characters long|Teilnehmerbezeichnung muß zwischen 2 und 8 Buchstaben lang sein| +full name and password must be at least 2 characters long|voller Name und Kennwort müssen mindestens 2 Buchstaben lang sein| +CAMPAIGN NOT ADDED - there is already a campaign in the system with this ID|KAMPAGNE NICHT ADDIERT - es gibt bereits eine Kampagne im System mitdieser Identifikation| +CAMPAIGN NOT ADDED - Please go back and look at the data you entered|KAMPAGNE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +campaign ID must be between 2 and 8 characters in length|Kampagne Identifikation muß zwischen 2 und 8 Buchstaben lang sein| +campaign name must be between 6 and 40 characters in length|Kampagne Name muß zwischen 6 und 40 Buchstaben lang sein| +CAMPAIGN STATUS NOT ADDED - there is already a campaign-status in the system with this name|KAMPAGNE STATUS NICHT ADDIERT - es gibt bereits einen Kampagne-Statusim System mit diesem Namen| +CAMPAIGN STATUS NOT ADDED - there is already a global-status in the system with this name|KAMPAGNE STATUS NICHT ADDIERT - es gibt bereits einen Globalstatus imSystem mit diesem Namen| +CAMPAIGN STATUS NOT ADDED - Please go back and look at the data you entered|KAMPAGNE STATUS NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben| +status must be between 1 and 8 characters in length|Status muß zwischen 1 und 8 Buchstaben lang sein| +status name must be between 2 and 30 characters in length|Statusname muß zwischen 2 und 30 Buchstaben lang sein| +CAMPAIGN HOT KEY NOT ADDED - there is already a campaign hot key in the system with this hot key|KAMPAGNE HOT KEY NICHT ADDIERT worden - es gibt bereits eineKampagne-hot key im System mit diesem hot key| +CAMPAIGN HOT KEY NOT ADDED - Please go back and look at the data you entered|KAMPAGNE HOT KEY NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben| +hot key must be a single character between 1 and 9|hot key muß ein einzelner Buchstabe zwischen 1 und 9 sein| +LIST NOT ADDED - there is already a list in the system with this ID|LISTE NICHT ADDIERT - es gibt bereits eine Liste im System mit dieserIdentifikation| +LIST NOT ADDED - Please go back and look at the data you entered|LISTE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben| +List ID must be between 2 and 8 characters in length|Liste Identifikation muß zwischen 2 und 8 Buchstaben lang sein| +List name must be at least 2 characters in length|Liste Name muß mindestens 2 Buchstaben lang sein| +GROUP NOT ADDED - there is already a group in the system with this ID|GRUPPE NICHT ADDIERT - es gibt bereits eine Gruppe im System mitdieser Identifikation| +GROUP NOT ADDED - Please go back and look at the data you entered|GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben| +Group ID must be between 2 and 20 characters in length and contain no|Gruppe Identifikation muß zwischen 2 und 20 Buchstaben lang sein undNr. enthalten| +Group name and group color must be at least 2 characters in length|Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein| +REMOTE AGENTS NOT ADDED - there is already a remote agents entry starting with this userID|REMOTEMITTEL NICHT ADDIERT - es gibt bereits eineRemotemitteleintragung beginnend mit diesem userID| +REMOTE AGENTS NOT ADDED - Please go back and look at the data you entered|REMOTEMITTEL NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben| +User ID start and external extension must be at least 2 characters in length|Benutzernummer Anfang und externe Verlängerung müssen mindestens 2Buchstaben lang sein| +USER GROUP NOT ADDED - there is already a user group entry with this name|BENUTZER-GRUPPE NICHT ADDIERT - es gibt bereits eine BenutzergruppeEintragung mit diesem Namen| +USER GROUP NOT ADDED - Please go back and look at the data you entered|BENUTZER-GRUPPE NICHT ADDIERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben| +Group name and description must be at least 2 characters in length|Gruppe Name und Beschreibung müssen mindestens 2 Buchstaben langsein| +USER NOT MODIFIED - Please go back and look at the data you entered|BENUTZER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +Password and Full Name each need ot be at least 2 characters in length|Kennwort und voller Name jedes Notwendigkeit ot sind mindestens 2Buchstaben lang| +CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|KAMPAGNE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +the campaign name needs to be at least 6 characters in length|der Kampagne Name muß mindestens 6 Buchstaben lang sein| +RESETTING CAMPAIGN LEAD HOPPER|ZURÜCKSTELLEN DES KAMPAGNE LEITUNG ZUFUHRBEHÄLTERS| +Wait 1 minute before dialing next number|Wartezeit 1 Minute, bevor folgende Nummer gewählt wird| +CAMPAIGN STATUS NOT MODIFIED - Please go back and look at the data you entered|KAMPAGNE STATUS NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben| +the campaign id needs to be at least 2 characters in length|die Kampagne Kennzeichnung muß mindestens 2 Buchstaben lang sein| +the campaign status needs to be at least 1 characters in length|der Kampagne Status muß mindestens Buchstaben 1 lang sein| +CUSTOM CAMPAIGN STATUS DELETED|KUNDENSPEZIFISCHER KAMPAGNE STATUS GELÖSCHT| +CAMPAIGN HOT KEY NOT MODIFIED - Please go back and look at the data you entered|KAMPAGNE HOT KEY NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben| +the campaign hot key needs to be at least 1 characters in length|das Kampagne hot key muß mindestens Buchstaben 1 lang sein| +CUSTOM CAMPAIGN HOT KEY DELETED|KUNDENSPEZIFISCHE KAMPAGNE HOT KEY LÖSCHTE| +CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|KAMPAGNE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +the campaign name needs to be at least 6 characters in length|der Kampagne Name muß mindestens 6 Buchstaben lang sein| +LIST NOT MODIFIED - Please go back and look at the data you entered|LISTE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben| +list name must be at least 2 characters in length|Liste Name muß mindestens 2 Buchstaben lang sein| +REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER|ENTFERNEN DER LISTE ZUFUHRBEHÄLTER-LEITUNGEN VOM ALTEN KAMPAGNEZUFUHRBEHÄLTER| +GROUP NOT MODIFIED - Please go back and look at the data you entered|GRUPPE NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +group name and group color must be at least 2 characters in length|Gruppe Name und Gruppe Farbe muß mindestens 2 Buchstaben lang sein| +REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered|REMOTEMITTEL NICHT GEÄNDERT - gehen Sie bitte zurück und betrachtenSie die Daten, die Sie eingaben| +User ID Start and External Extension must be at least 2 characters in length|Benutzernummer Anfang und externe Verlängerung müssen mindestens 2Buchstaben lang sein| +REMOTE AGENTS MODIFIED|REMOTEMITTEL GEÄNDERT| +USER GROUP NOT MODIFIED - Please go back and look at the data you entered|BENUTZER-GRUPPE NICHT GEÄNDERT - gehen Sie bitte zurück undbetrachten Sie die Daten, die Sie eingaben| +Group name and description must be at least 2 characters in length|Gruppe Name und Beschreibung müssen mindestens 2 Buchstaben langsein| +MODIFY A USERS RECORD|ÄNDERN Sie Einen BENUTZER-SATZ| +Click here for user stats|Klicken Sie hier für Benutzernotfall| +MODIFY A CAMPAIGNS RECORD|ÄNDERN Sie Einen KAMPAGNEN SATZ| +CONFERENCES TABLE|KONFERENZTISCH| +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|Konferenz-Zahl - Dieses fangen ist auf, wohin Sie diemeetme Konferenz dialpna Zahl setzen. Es wird auch empfohlen, daß diemeetme Zahl in meetme.conf diese Zahl für jede Eintragungzusammenbringt. Dieses ist für die Konferenzen in astGUIclient undwird für leave-3way-call Funktionalität in VICIDIAL verwendet| +Server IP -<\/B> The menu where you select the Asterisk server that this conference will be on|Bediener IP - Das Menü, wo Sie den Sternchenbediener vorwählen,daß diese Konferenz eingeschaltet ist| +PHONE NOT ADDED - there is already a Phone in the system with this extension\/server|TELEFON NICHT ADDIERT - es gibt bereits ein Telefon im System mitdiesem extension/server| +PHONE NOT ADDED - Please go back and look at the data you entered|TELEFON NICHT ADDIERT - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben| +PHONE ADDED|TELEFON FÜGTE HINZU| +CONFERENCE NOT ADDED - there is already a conference in the system with this ID and server|KONFERENZ NICHT ADDIERT - es gibt bereits eine Konferenz im System mitdieser Identifikation und Bediener| +CONFERENCE NOT ADDED - Please go back and look at the data you entered|KONFERENZ NICHT ADDIERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +CONFERENCE ADDED|KONFERENZ FÜGTE HINZU| +PHONE NOT MODIFIED - there is already a Phone in the system with this extension\/server|TELEFON NICHT GEÄNDERT - es gibt bereits ein Telefon im System mitdiesem extension/server| +PHONE NOT MODIFIED - Please go back and look at the data you entered|TELEFON NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +PHONE MODIFIED|TELEFON GEÄNDERT| +SERVER NOT MODIFIED - there is already a server in the system with this server_ip|BEDIENER NICHT GEÄNDERT - es gibt bereits einen Bediener im Systemmit diesem server_ip| +SERVER NOT MODIFIED - Please go back and look at the data you entered|BEDIENER NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +SERVER MODIFIED|BEDIENER GEÄNDERT| +CONFERENCE NOT MODIFIED - there is already a Conference in the system with this extension-server|KONFERENZ NICHT GEÄNDERT - es gibt bereits eine Konferenz im Systemmit diesem Verlängerung-Bediener| +CONFERENCE NOT MODIFIED - Please go back and look at the data you entered|KONFERENZ NICHT GEÄNDERT - gehen Sie bitte zurück und betrachten Siedie Daten, die Sie eingaben| +You do not have permissions to modify this user|Sie haben nicht Erlaubnis, diesen Benutzer zu ändern| +Click here to delete user|Klicken Sie hier, um Benutzer zu löschen| +Please go back and look at the data you entered|Gehen Sie bitte zurück und betrachten Sie die Daten, die Sieeingaben| +Click here to delete campaign|Klicken Sie hier, um Kampagne zu löschen| +Click here to delete list and all of its leads|Klicken Sie hier, um Liste und alle seine Leitungen zu löschen| +REMOVING LIST LEADS FROM VICIDIAL_LIST TABLE|ENTFERNEN DER LISTE LEITUNGEN VON DER VICIDIAL_LIST TABELLE| +Click here to delete in-group|Klicken Sie hier, um Ingruppe zu löschen| +Click here to delete remote agent|Klicken Sie hier, um Remotemittel zu löschen| +Click here to delete user group|Klicken Sie hier, um Benutzergruppe zu löschen| +Click here to delete phone|Klicken Sie hier, um Telefon zu löschen| +there is already a script entry with this name|es gibt bereits eine Indexeintragung mit diesem Namen| +Script name, description and text must be at least 2 characters in length|Indexname, -beschreibung und -text müssen mindestens 2 Buchstabenlang sein| +Click here to delete script|Klicken Sie hier, um Index zu löschen| +Phone Login|Telefon-LOGON| +Phone Pass|Telefon-Durchlauf| +Delete Users|Löschung-Benutzer| +Delete User Groups|Löschung-Benutzer-Gruppen| +Delete Lists|Löschung-Listen| +Delete Campaigns|Löschung-Kampagnen| +Delete In-Groups|Löschung In-Gruppen| +Delete Remote Agents|Löschung-Direktübertragung Mittel| +Delete Script|Löschung-Index| +Load Leads|Last Leitungen| +Campaign Detail|Kampagne Detail| +AGC Admin Access|AGC Admin Zugang| +AGC Delete Phones|AGC Löschung-Telefone| +SCRIPT NOT ADDED|INDEX NICHT ADDIERT| +SCRIPT ADDED|INDEX FÜGTE HINZU| +SCRIPT NOT MODIFIED|INDEX NICHT GEÄNDERT| +SCRIPT MODIFIED|INDEX ÄNDERTE| +DELETE THIS USER|LÖSCHEN SIE DIESEN BENUTZER| +DELETE THIS CAMPAIGN|LÖSCHEN SIE DIESE KAMPAGNE| +DELETE THIS LIST|LÖSCHEN SIE DIESE LISTE| +DELETE THIS IN-GROUP|LÖSCHEN SIE DIESES IN-GROUP| +DELETE THIS REMOTE AGENT|LÖSCHEN SIE DIESES REMOTEMITTEL| +DELETE THIS USER GROUP|LÖSCHEN SIE DIESE BENUTZER-GRUPPE| +DELETE THIS PHONE|LÖSCHEN SIE DIESES TELEFON| +DELETE THIS SCRIPT|LÖSCHEN SIE DIESEN INDEX| +USER NOT DELETED|BENUTZER NICHT GELÖSCHT| +CAMPAIGN NOT DELETED|KAMPAGNE NICHT GELÖSCHT| +LIST NOT DELETED|LISTE NICHT GELÖSCHT WORDEN| +IN-GROUP NOT DELETED|IN-GROUP NICHT GELÖSCHT| +REMOTE AGENT NOT DELETED|REMOTEMITTEL NICHT GELÖSCHT| +USER GROUP NOT DELETED|BENUTZER-GRUPPE NICHT GELÖSCHT| +PHONE NOT DELETED|TELEFON NICHT GELÖSCHT| +SCRIPT NOT DELETED|INDEX NICHT GELÖSCHT| +USER DELETION CONFIRMATION|BENUTZER-AUSLASSUNG BESTÄTIGUNG| +USER DELETION COMPLETED|BENUTZER-AUSLASSUNG FÜHRTE DURCH| +CAMPAIGN DELETION CONFIRMATION|KAMPAGNE AUSLASSUNG BESTÄTIGUNG| +CAMPAIGN DELETION COMPLETED|KAMPAGNE AUSLASSUNG FÜHRTE DURCH| +Logout Agents|Logout-Mittel| +AGENTS NOT LOGGED OUT OF CAMPAIGN|MITTEL GELOGGT NICHT AUS KAMPAGNE HERAUS| +AGENT LOGOUT CONFIRMATION|MITTELLOGOUT-BESTÄTIGUNG| +Click here to log all agents out of|Klicken Sie hier, um alle Mittel aus zu loggen| +AGENT LOGOUT COMPLETED|MITTELLOGOUT FÜHRTE DURCH| +LOG ALL AGENTS OUT OF THIS CAMPAIGN|LOGGEN SIE ALLE MITTEL AUS DIESER KAMPAGNE HERAUS| +LIST DELETION CONFIRMATION|LISTE AUSLASSUNG BESTÄTIGUNG| +LIST DELETION COMPLETED|LISTE AUSLASSUNG DURCHGEFÜHRT| +IN-GROUP DELETION CONFIRMATION|IN-GROUP AUSLASSUNG BESTÄTIGUNG| +IN-GROUP DELETION COMPLETED|IN-GROUP AUSLASSUNG FÜHRTE DURCH| +REMOTE AGENT DELETION CONFIRMATION|REMOTEMITTEL-AUSLASSUNG BESTÄTIGUNG| +REMOTE AGENT DELETION COMPLETED|REMOTEMITTEL-AUSLASSUNG FÜHRTE DURCH| +USER GROUP DELETION CONFIRMATION|BENUTZER-GRUPPE AUSLASSUNG BESTÄTIGUNG| +USER GROUP DELETION COMPLETED|BENUTZER-GRUPPE AUSLASSUNG DURCHGEFÜHRT| +PHONE DELETION CONFIRMATION|TELEFON-AUSLASSUNG BESTÄTIGUNG| +PHONE DELETION COMPLETED|TELEFON-AUSLASSUNG DURCHGEFÜHRT| +SCRIPT DELETION CONFIRMATION|INDEX-AUSLASSUNG BESTÄTIGUNG| +SCRIPT DELETION COMPLETED|INDEX-AUSLASSUNG FÜHRTE DURCH| +Preview Script|Vorbetrachtung-Index| +MODIFY A SCRIPT|ÄNDERN Sie Einen INDEX| +title of the script|Titel dem Index| +CONFERENCE MODIFIED|KONFERENZ ÄNDERTE| +MODIFY A PHONE RECORD|ÄNDERN Sie Einen TELEFON-SATZ| +THE END|DAS ENDE| +LIST ALL PHONES|VERZEICHNEN SIE ALLE TELEFONE| +ADD A NEW PHONE|ADDIEREN Sie Ein NEUES TELEFON| +SEARCH FOR A PHONE|SUCHE NACH Einem TELEFON| +ADD A SERVER|ADDIEREN Sie Einen BEDIENER| +LIST ALL SERVERS|VERZEICHNEN SIE ALLE BEDIENER| +SHOW ALL CONFERENCES|ZEIGEN SIE ALLE KONFERENZEN| +ADD A NEW CONFERENCE|ADDIEREN Sie Eine NEUE KONFERENZ| +AMD Send to VM exten|AMD senden zu VM exten| +Transfer-Conf DTMF|BringenSie DTMF| +Transfer-Conf Number|BringenSie Zahl| +Hot Keys Active|Hot Keys Aktiv| +Modify Leads|Ändern Sie Leitungen| +Change Agent Campaign|Ändern Sie Vertreter-Kampagne| +Agent Choose Ingroups|Mittel Wählen Ingroups| +CallBacks Within Campaign|Wiederholungsbesuche Innerhalb Der Kampagne| +CallBacks Within List|Wiederholungsbesuche Innerhalb Der Liste| +CallBacks Within Agent|Wiederholungsbesuche Innerhalb Des Mittels| +Phone extension|Telefonverlängerung| +Dial Plan Number|Dial Plan Zahl| +digits only|nur Stellen| +Voicemail Box|Voicemail Kasten| +Outbound CallerID|Outbound CallerID| +Phone IP address|Telefon-IP address| +Computer IP address|Computer-IP address| +Server IP Address|Bediener-IP address| +Server IP|Bediener IP| +Password: |Kennwort:| +Status: |Status:| +Active Account|Aktives Konto| +Phone Type|Telefon-Art| +Full Name|Voller Name| +Company: |Firma:| +Picture: |Abbildung:| +Client Protocol|Klient Protokoll| +Local GMT|Lokales GMT| +Do NOT Adjust for DST|Stellen Sie NICHT auf DST ein| +VALUE=SUBMIT|VALUE=SUBMIT| +ADD A NEW SERVER|ADDIEREN Sie Einen NEUEN BEDIENER| +Server ID|Bediener Identifikation| +Server Description|Bediener-Beschreibung| +Active: |Aktiv:| +Asterisk Version|Sternchen-Version| +Conference Number|Konferenz-Zahl| +New Messages|Neue Anzeigen| +Old Messages|Alte Anzeigen| +Manager Login|Manager-LOGON| +Manager Secret|Manager-Geheimnis| +VICIDIAL Default User|VICIDIAL Rückstellung Benutzer| +VICIDIAL Default Pass|VICIDIAL Rückstellung Durchlauf| +VICIDIAL Default Campaign|VICIDIAL Rückstellung Kampagne| +Park Extension|Park-Verlängerung| +Park Exten|Park Exten| +Conf Extension|Conf Verlängerung| +Conf Exten|Conf Exten| +VICIDIAL Park Exten|VICIDIAL Park Exten| +VICIDIAL Park File|VICIDIAL Park-Akte| +Monitor Prefix|Überwachen Sie Präfix| +Recording Exten|Aufnahme Exten| +VMailMain Exten|VMailMain Exten| +VMailDump Exten|VMailDump Exten| +Exten Context|Exten Kontext| +DTMFSend Channel|DTMFSend Führung| +Outbound Call Group|Outbound Anruf-Gruppe| +Browser Location|Datenbanksuchroutine-Position| +Install Directory|Bringen Sie Verzeichnis An| +CallerID URL|CallerID URL| +VICIDIAL Default URL|VICIDIAL Rückstellung URL| +Call Logging|Anruf-Protokollierung| +User Switching|Benutzer-Schaltung| +Conferencing|Conferencing| +Admin Hang Up|Admin Hängezustand| +Admin Hijack|Admin Straßenräuber| +Admin Monitor|Admin Monitor| +Call Park|Parkschaltung| +Updater Check|Updater Überprüfung| +AF Logging|Af Protokollierung| +Queue Enabled|Warteschlange Ermöglicht| +CallerID Popup|CallerID Popup| +VMail Button|VMail Taste| +Fast Refresh|Schnell Erneuern Sie| +Fast Refresh Rate|Schnell Erneuern Sie Rate| +Persistant MySQL|Persistant MySQL| +Auto Dial Next Number|Selbstvorwahlknopf-Folgende Zahl| +Stop Rec after each call|Stoppen Sie Rec nach jedem Anruf| +Primary |Hauptsächlich| +Secondary |Zweitens| +DBX Server|DBX Bediener| +DBX Database|DBX Datenbank| +DBX User|DBX Benutzer| +DBX Pass|DBX Durchlauf| +DBX Port|DBX Tor| +DBY Server|DBY Bediener| +DBY Database|DBY Datenbank| +DBY User|DBY Benutzer| +DBY Pass|DBY Durchlauf| +DBY Port|DBY Tor| +MODIFY A SERVER RECORD|ÄNDERN Sie Einen BEDIENER-SATZ| +Max VICIDIAL Trunks|Maximale VICIDIAL Stämme| +Telnet Host|Telnet Wirt| +Telnet Port|Telnet Tor| +Manager User|Manager-Benutzer| +Manager Update User|Manager-Update-Benutzer| +Manager Listen User|Manager Hören Benutzer| +Manager Send User|Manager Senden Benutzer| +VMail Dump Exten|VMail Dump Exten| +VICIDIAL AD extension|VICIDIAL ANZEIGE Verlängerung| +Default Context|Rückstellung Kontext| +PHONES WITHIN THIS SERVER|TELEFONE INNERHALB DIESES BEDIENERS| +>EXTENSION<|>VERLÄNGERUNG<| +>NAME<|>NAME<| +>ACTIVE<|>AKTIV<| +>MODIFY<|>ÄNDERN Sie<| +This server has|Dieser Bediener hat| +active phones and|aktive Telefone und| +inactive phones|unaktivierte Telefone| +MODIFY A CONFERENCE RECORD|ÄNDERN Sie Einen KONFERENZ-SATZ| +Conference: |Konferenz:| +Current Extension|Gegenwärtige Verlängerung| +extension: |Verlängerung:| +SEARCH RESULTS|SUCHRESULTATE| +PHONE LISTINGS|TELEFON-AUFLISTUNGEN| +SERVER LISTINGS|BEDIENER-AUFLISTUNGEN| +CONFERENCE LISTINGS|KONFERENZ-AUFLISTUNGEN| +script runtime|Indexlaufzeit| +ADD NEW PHONE|ADDIEREN SIE NEUES TELEFON| +ADD NEW SERVER|ADDIEREN SIE NEUEN BEDIENER| +ADD NEW CONFERENCE|ADDIEREN SIE NEUE KONFERENZ| +ADD SCRIPT|ADDIEREN SIE INDEX| +VIEW SCRIPTS|ANSICHT-INDEXE| +SCRIPTS LISTINGS|INDEX-AUFLISTUNGEN| +ADDING NEW PHONE|ADDIEREN DES NEUEN TELEFONS| +ADDING NEW SERVER|ADDIEREN DES NEUEN BEDIENERS| +ADDING NEW CONFERENCE|ADDIEREN DER NEUEN KONFERENZ| +MODIFY PHONE|ÄNDERN SIE TELEFON| +MODIFY SERVER|ÄNDERN SIE BEDIENER| +MODIFY CONFERENCE|ÄNDERN SIE KONFERENZ| +MODIFYING PHONE|ÄNDERNDES TELEFON| +MODIFYING SERVER|ÄNDERNDER BEDIENER| +MODIFYING CONFERENCE|ÄNDERNDE KONFERENZ| +SEARCH PHONES|SUCHTELEFONE| +SEARCH PHONES RESULTS|SUCHE RUFT RESULTATE AN| +PHONE LIST|TELEFON-LISTE| +SERVER LIST|BEDIENER-LISTE| +CONFERENCE LIST|KONFERENZ-LISTE| +HELP|HILFE| +Click here for phone stats|Klicken Sie hier für Telefonnotfall| +REMOTE INBOUND: Main|ENTFERNTINBOUND: Hauptsächlich| +REMOTE INBOUND: Popup|ENTFERNTINBOUND: Popup| +CALLS SENT TO|ANRUFE GESCHICKT ZU| +Phone Stats|Telefon-Notfall| +CALL TIME AND CHANNELS|ANRUF-ZEIT UND FÜHRUNGEN| +CHANNEL GROUP|KANALGRUPPE| +HOURS:MINUTES|HOURS:MINUTES| +TOTAL CALLS|GESAMTANRUFE| +>NUMBER|>ZAHL| + DATE<|DATUM<| +Close this window|Schließen Sie dieses Fenster| +Inbound Calls Stats|Inbound Anruf-Notfall| +Add New User|Addieren Sie Neuen Benutzer| +Add New Campaign|Addieren Sie Neue Kampagne| +Add New List|Addieren Sie Neue Liste| +Add New In-Group|Addieren Sie Neue In-Gruppe| +Add New Remote Agents|Addieren Sie Neue Remotemittel| +Add New Users Group|Addieren Sie Neue Benutzer-Gruppe| +Add New Script|Addieren Sie Neuen Index| +New User Addition|Neue Benutzer-Hinzufügung| +New Campaign Addition|Neue Kampagne Hinzufügung| +New Campaign Status Addition|Neue Kampagne Status-Hinzufügung| +New Campaign Hot Key Addition|Neue Kampagne Hot Key Hinzufügung| +New List Addition|Neue Liste Hinzufügung| +New In-Group Addition|Neue In-Gruppe Hinzufügung| +New Remote Agents Addition|Neue Remotemittel-Hinzufügung| +New Users Group Addition|Neue Benutzer-Gruppe Hinzufügung| +New Script Addition|Neue Index-Hinzufügung| +Modify User|Ändern Sie Benutzer| +Modify Campaign - Basic View|Ändern Sie Kampagne - Grundlegende Ansicht| +Modify Campaign|Ändern Sie Kampagne| +Modify List|Ändern Sie Liste| +Modify In-Group|Ändern Sie In-Gruppe| +Modify Remote Agents|Ändern Sie Remotemittel| +Modify Users Groups|Ändern Sie Benutzer-Gruppen| +Modify Script|Ändern Sie Index| +Welcome|Willkommen| +Campaigns|Kampagnen| +Lists|Listen| +In-Groups|In-Gruppen| +Remote Agents|Remotemittel| +User Groups|Benutzer-Gruppen| +Search Form|Suchform| +Search Results|Suchresultate| +VICIDIAL ADMIN|VICIDIAL ADMIN| + TABLE|TABELLE| +First Name|Vorname| +Middle Initial|Mittlere Initiale| +Last Name|Letzter Name| +Address Line 1|Adresse Linie 1| +Address Line 2|Adresse Linie 2| +Address Line 3|Adresse Linie 3| +City|Stadt| +State - limited to 2 characters|Zustand - begrenzt auf 2 Buchstaben| +Province|Provinz| +Postal Code|Postcode| +Country|Land| +Gender|Geschlecht| +Date of Birth|Geburtsdatum| +Alternate Phone Number|Wechselnde Telefonnummer| +Email Address|Email address| +Security Phrase|Sicherheit Phrase| +Comments|Anmerkungen| +THE END|DAS ENDE| +Logout|Logout| +LIST USERS|LISTE BENUTZER| +ADD A NEW USER|ADDIEREN Sie Einen NEUEN BENUTZER| +SEARCH FOR A USER|SUCHE NACH Einem BENUTZER| +ADD USER GROUP|ADDIEREN SIE BENUTZER-GRUPPE| +LIST USER GROUPS|LISTE BENUTZER-GRUPPEN| +ADD CAMPAIGN|ADDIEREN SIE KAMPAGNE| +LIST CAMPAIGNS|LISTE KAMPAGNEN| +SHOW LISTS|ZEIGEN SIE LISTEN| +ADD NEW LIST|ADDIEREN SIE NEUE LISTE| +LOAD NEW LEADS|LAST NEUE LEITUNGEN| +SHOW IN-GROUPS|ZEIGEN SIE IN-GROUPS| +ADD NEW IN-GROUP|ADDIEREN SIE NEUES IN-GROUP| +SHOW REMOTE AGENTS|ZEIGEN SIE REMOTEMITTEL| +ADD NEW REMOTE AGENTS|ADDIEREN SIE NEUE REMOTEMITTEL| +SERVER STATS|BEDIENER-NOTFALL| +PARK REPORT|PARK-REPORT| +VDAD REPORT|VDAD REPORT| +CLOSER REPORT|GENAUERER REPORT| +SEARCH FOR A LEAD|SUCHE NACH Einer LEITUNG| +GROUP HOURLY|GRUPPE STÜNDLICH| +User Number|Benutzer-Zahl| +Full Name|Voller Name| +User Level|Benutzer-Niveau| +User Group|Benutzer-Gruppe| +ADD A NEW CAMPAIGN|ADDIEREN Sie Eine NEUE KAMPAGNE| +ADD A NEW INBOUND GROUP|ADDIEREN Sie Eine NEUE INBOUND GRUPPE| +ADD NEW USERS GROUP|ADDIEREN SIE NEUE BENUTZER-GRUPPE| +Campaign ID|Kampagne Identifikation| +Campaign Name|Kampagne Name| +Park Extension|Park-Verlängerung| +Park Filename|Park-Dateiname| +Web Form|Netz-Form| +Allow Closers|Erlauben Sie Closers| +Hopper Level|Zufuhrbehälter-Niveau| +Auto Dial Level|Selbstvorwahlknopf-Niveau| +Next Agent Call|Folgender Vertreter-Anruf| +Local Call Time|Ortsgespräch-Zeit| +Voicemail|Voicemail| +SUBMIT|SUBMIT| +List ID|Liste Identifikation| +List Name|Liste Name| +Campaign|Kampagne| +Group ID|Gruppe Identifikation| +Group Name|Gruppe Name| +Group Color|Gruppe Farbe| +Fronter Display|Fronter Anzeige| +User ID Start|Benutzernummer Anfang| +Number of Lines|Zeilenzahl| +External Extension|Externe Verlängerung| +Inbound Groups|Inbound Gruppen| +Group: |Gruppe:| +Description: |Beschreibung:| +USER ADDED|BENUTZER FÜGTE HINZU| +CAMPAIGN ADDED|KAMPAGNE ADDIERT| +CAMPAIGN STATUS ADDED|KAMPAGNE STATUS ADDIERT| +CAMPAIGN HOT KEY ADDED|KAMPAGNE HOT KEY FÜGTE HINZU| +LIST ADDED|LISTE ADDIERT| +GROUP ADDED|GRUPPE FÜGTE HINZU| +REMOTE AGENTS ADDED|REMOTEMITTEL FÜGTEN HINZU| +USER GROUP ADDED|BENUTZER-GRUPPE ADDIERT| +USER MODIFIED|BENUTZER ÄNDERTE| +CAMPAIGN MODIFIED|KAMPAGNE ÄNDERTE| +GROUP MODIFIED|GRUPPE GEÄNDERT| +CAMPAIGN MODIFIED|KAMPAGNE GEÄNDERT| +LIST MODIFIED|LISTE ÄNDERTE| +USER GROUP MODIFIED|BENUTZER-GRUPPE GEÄNDERT| +RESETTING LIST-CALLED-STATUS|ZURÜCKSTELLEN VON VON LIST-CALLED-STATUS| +Dial status |Vorwahlknopfstatus| +List Order|Liste Auftrag| +Hopper Level|Zufuhrbehälter-Niveau| +Force Reset of Hopper|Kraft-Zurückstellen des Zufuhrbehälters| +Dial Timeout|Vorwahlknopf-Abschaltung| +Dial Prefix|Vorwahlknopf-Präfix| +Campaign CallerID|Kampagne CallerID| +Campaign VDAD exten|Kampagne VDAD exten| +Campaign Rec exten|Kampagne Rec exten| +Campaign Recording|Kampagne Aufnahme| +Campaign Rec Filename|Kampagne Rec Dateiname| +LISTS WITHIN THIS CAMPAIGN|LISTEN INNERHALB DIESER KAMPAGNE| +LIST ID|LISTE IDENTIFIKATION| +LIST NAME|LISTE NAME| +>ACTIVE<|>AKTIV<| +This campaign has |Diese Kampagne hat| +active lists and |aktive Listen und| +inactive lists|unaktivierte Listen| +leads to be dialed in those lists|führt, in jenen Listen gewählt zu werden| +leads in the dial hopper|Leitungen im Vorwahlknopfzufuhrbehälter| +>STATUS<|>STATUS<| +>DESCRIPTION<|>BESCHREIBUNG<| +>SELECTABLE<|>AUSWÄHLBAR<| +>DELETE<|>LÖSCHUNG<| +ADD NEW CUSTOM CAMPAIGN STATUS|ADDIEREN SIE NEUEN KUNDENSPEZIFISCHEN KAMPAGNE STATUS| +Selectable: |Auswählbar:| +value=ADD|value=ADD| +CUSTOM HOT KEYS WITHIN THIS CAMPAIGN|GEWOHNHEIT HOT KEYS INNERHALB DIESER KAMPAGNE| +>HOT KEY<|>HOT KEY<| +ADD NEW CUSTOM CAMPAIGN HOT KEY|ADDIEREN SIE NEUE KUNDENSPEZIFISCHE KAMPAGNE HOT KEY| +Hot key: |Hot key:| +Basic View|Grundlegende Ansicht| +Detail View|Detail-Ansicht| +MODIFY A LISTS RECORD|ÄNDERN Sie Einen LISTEN SATZ| +Reset Lead-Called-Status for this list|Stellen Sie Führen-Benennen-Status für diese Liste zurück| +STATUSES WITHIN THIS LIST|STATUS INNERHALB DIESER LISTE| +>CALLED<|>BENANNT<| +>NOT CALLED<|>NICHT BENANNT<| +>SUBTOTALS<|>TEILSUMMEN<| +>SUBTOTAL<|>TEILSUMME<| +TIME ZONES WITHIN THIS LIST|ZEIT-ZONEN INNERHALB DIESER LISTE| +GMT OFFSET NOW|GMT VERSETZTE JETZT| +local time|lokale Zeit| +>TOTAL<|>GESAMTMENGE<| +CALLED COUNTS WITHIN THIS LIST|BENANNTE ZÄHLIMPULSE INNERHALB DIESER LISTE| +MODIFY A GROUPS RECORD|ÄNDERN Sie Einen GRUPPEN SATZ| +MODIFY A REMOTE AGENTS ENTRY|ÄNDERN Sie Eine REMOTEMITTEL-EINTRAGUNG| +numbers only|nur Zahlen| +dial plan number dialed to reach agents|dial plan Zahl wählte, um Mittel zu erreichen| +MODIFY A USERS GROUP ENTRY|ÄNDERN Sie Eine BENUTZER-GRUPPE EINTRAGUNG| +no spaces or punctuation|keine Räume oder Interpunktion| +description of group|Beschreibung der Gruppe| +SEARCH FOR A USER|SUCHE NACH Einem BENUTZER| +SEARCH RESULTS|SUCHRESULTATE| +>STATS<|>Notfall<| +USER LISTINGS|BENUTZER-AUFLISTUNGEN| +CAMPAIGN LISTINGS|KAMPAGNE AUFLISTUNGEN| +LIST LISTINGS|LISTE AUFLISTUNGEN| +INBOUND GROUP LISTINGS|INBOUND GRUPPE AUFLISTUNGEN| +REMOTE AGENTS LISTINGS|REMOTEMITTEL-AUFLISTUNGEN| +USER GROUPS LISTINGS|BENUTZER-GRUPPEN AUFLISTUNGEN| +script runtime|Indexlaufzeit| +Hopper List|Zufuhrbehälter-Liste| +Live Current Hopper List|Gegenwärtige Zufuhrbehälter-Lebhaftliste| +Total leads in hopper right now|Gesamtleitungen im Zufuhrbehälter im Augenblick| +Server Stats|Bediener-Notfall| +Total Calls placed from this Campaign: |Gesamtanrufe gesetzt von dieser Kampagne: | +Average Call Length for all Calls in seconds:|Durchschnittliche Anruf-Länge für alle benennt in den Sekunden:| +Total DROP Calls: |Gesamt-TROPFEN Anrufe: | +Average Length for DROP Calls in seconds: |Durchschnittliche Länge für TROPFEN Anrufe in den Sekunden: | +Total NA calls -Busy,Disconnect,BTvoicemail: |Gesamt-Na benennt - beschäftigt, Trennung, BTvoicemail: | +Average Call Length for NA Calls in seconds: |Durchschnittliche Anruf-Länge für Na benennt in den Sekunden: | +-- DROPS|-- TROPFEN| + AUTO-DIAL NO ANSWERS|AUTO-DIAL KEINE ANTWORTEN| +-- USER STATS|-- BENUTZER-NOTFALL| +-- TIME STATS|-- ZEIT-NOTFALL| +USER |BENUTZER| +Agents Time On Calls |Mittel Setzen Bei den Anrufen Zeit fest| +agents logged in on server|Mittel geloggt innen auf Bediener| +Paused agents|Pausierte Mittel| +5 minutes or more on call|5 Minuten oder mehr beim Anruf| +Over 10 minutes on call|Über 10 Minuten beim Anruf| + NO AGENTS ON CALLS |KEINE MITTEL BEI DEN ANRUFEN| +calls being placed on server|Anrufe, die auf Bediener gesetzt werden| +LIVE CALL WAITING|PHASENCANKLOPFEN| + NO LIVE CALLS WAITING |KEIN PHASENCANKLOPFEN| +START OVER|BEGINNEN SIE RÜBER| +Lead Loader Module|Leitung Ladevorrichtung Modul| +Current file status|Gegenwärtiger Akte Status| +Load leads from this file|Last Leitungen von dieser Akte| +Answering Machine Message|Antwortende Maschine Anzeige| +Processing |Verarbeitung| +TALK TIME AND STATUS|GESPRÄCH ZEIT UND STATUS| +>COUNT<|>ZÄHLIMPULS<| +>HOURS:MINUTES<|>HOURS:MINUTES<| +TOTAL CALLS |GESAMTANRUFE| +LOGIN\/LOGOUT TIME|LOGIN/LOGOUT ZEIT| +>EVENT <|>FALL <| +> CAMPAIGN<|> KAMPAGNE<| +CAMPAIGN: |KAMPAGNE: | +LAST 50 CALLS|ANRUFE DES LETZT-50| +VICIDIAL REMOTE: Call Disposition|VICIDIAL DIREKTÜBERTRAGUNG: Anruf-Einteilung| +Call has been dispositioned|Anruf ist dispositioned gewesen| +Close This Window|Schließen Sie Dieses Fenster| +Call information|Anrufinformationen| +lead lookup FAILED for lead_id|Leitung Nachschlagen FIEL für lead_id aus| +DISPO CALL|DISPO ANRUF| +>Address |Adresse| +>City |Stadt| +>State:|Zustand:| + Postal Code:|Postcode:| +>Province |Provinz| +>Country |Land| +>Alt Phone |Alt Telefon| +>Email |Email| +>Security |Sicherheit| +>Comments |Anmerkungen| +>Disposition:|Einteilung:| +Group Hourly Stats|Gruppe Stündlicher Notfall| +TSR HOUR COUNTS|TSR STUNDE ZÄHLIMPULSE| +Lead Search|Leitung Suche| +Lead Lookup|Leitung Nachschlagen| +Please enter a:|Tragen Sie bitte a ein:| +a Home Phone Number:|eine Haupttelefonnummer:| +vendor lead code|Verkäuferleitung Code| +a lead ID:|eine Leitung Identifikation:| +>NEW SEARCH<|>NEUE SUCHE<| +Lead record modification|Leitung notieren Änderung| +information modified|Informationen geändert| +CALLS TO THIS LEAD|ANRUFE ZU DIESEM LEITUNG| +VDAD Closer Stats|VDAD Genauerer Notfall| +Auto-dial Closer Stats|Automobil-Vorwahlknopf Genauerer Notfall| +VICIDIAL REMOTE AGENTS|VICIDIAL DIREKTÜBERTRAGUNG MITTEL| +INBOUND STATS|INBOUND NOTFALL| +REMOTE AGENTS ERROR - Please go back and look at the data you entered|REMOTEMITTEL-STÖRUNG - gehen Sie bitte zurück und betrachten Sie dieDaten, die Sie eingaben| + - WAITING - |- WARTEND -| +Remote Agent inbound stats |Inbound Notfall des Remotemittels| +Total calls taken |Gesamtanrufe genommen| +Total talk time on |Gesamtgespräch Zeit an| +Call list for |Anrufliste für| + NO CALLS ON THIS DAY |KEIN ERSUCHT UM DIESEN TAG| +Scripts|Indexe| +Script:|Index:| +Get Call Launch|Erhalten Sie Anruf-Produkteinführung| +not used currently|nicht z.Z. verwendet| +VERSION|VERSION| +BUILD|BAU| +REPORTS|REPORTS| +USERS|BENUTZER| + CAMPAIGNS| KAMPAGNEN| +LISTS|LISTEN| +SCRIPTS|INDEXE| +FILTERS|FILTER| +IN-GROUPS|IN-GROUPS| +USER GROUPS|BENUTZER-GRUPPEN| +REMOTE AGENTS|REMOTEMITTEL| +Column|Spalte| + PERFORMANCE|LEISTUNG| +AGENT |MITTEL| +SERVER |BEDIENER| +### 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|Sekunden zur Verbindung - 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 - 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 dial plan extension that the desired Safe Harbor audio file is located at on your server|Sicherheitsnebenstelle - 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- 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 dial plan extension that the desired Dropped call audio file is located at on your server|Verbindungs-Nebenstelle - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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| +Wrap Up 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 - 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| +Wrap Up Message -<\/B> This is a campaign-specific message to be displayed on the wrap up screen if wrap up seconds is set|Nachbereitungsnachricht - 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| +Wrap Up Seconds:|Nachbereitung Sekunden| +Wrap Up 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| +Real-Time Screen|Echtzeit Bildschirm| +Allowable 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|Zulässige Inbound Gruppen - Für nur GENAUERE Kampagnen. Ist hier, wo Sie die inbound Gruppen vorwählen, die Sie Vertreter in dieser GENAUEREN Kampagne in der LageSEIN wünschen, Anrufe von zu nehmen. Es ist wichtig für GEMISCHTE inbound-inbound-outbound Kampagnen, die inbound Gruppen nur vorzuwählen, die für Mittel in dieser Kampagne verwendet werden. Die Anrufe, die in die inbound Gruppen hier vorgewählt werden kommen, werden als aktive Anrufe für eine gemischte Kampagne gegolten, selbst wenn alle Mittel in der Kampagne nicht innen geloggt werden, um Anrufe von allen jene vorgewählten inbound Gruppen zu empfangen| +Allowed Inbound Groups|Gewährte Inbound Gruppen| +ADD NUMBER TO DNC|FÜGEN SIE ZAHL DNC HINZU| +ADD A NUMBER TO THE DNC LIST|FÜGEN Sie Eine ZAHL Der DNC LISTE Hinzu| +Add New DNC|Addieren Sie Neues DNC| +Phone Number|Telefonnummer| +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 Liste - Dieses benennen nicht Liste enthält jedeLeitung, die auf einen Status von DNC im System eingestellt wordenist. Durch die LISTEN - FÜGEN Sie ZAHL DNC Seite hinzu, die Sie inder LageSIND, eine Zahl dieser Liste manuell hinzuzufügen, damit sienicht durch Kampagnen benannt wird, die die interne DNC Listebenutzen| +DNC NOT ADDED - This phone number is already in the Do Not Call List|DNC NICHT ADDIERT - diese Telefonnummer ist bereits in benennen nichtListe| +DNC ADDED|DNC FÜGTE HINZU| +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|Interne DNC Liste des Gebrauch-- definiert dieses, ob dieseKampagne Leitungen gegen die interne DNC Liste filtern soll. Wenn esauf Y eingestellt wird, sucht der Zufuhrbehälter nach jederTelefonnummer in der DNC Liste, bevor er sie in den Zufuhrbehälterlegt. Wenn er in der DNC Liste ist, dann, das sie dieses führt Statuszu DNCL also ändert, kann sie nicht gewählt werden. Rückstellungist N| +Use Internal DNC List|Benutzen Sie Interne DNC Liste| +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|Kampagne CallerID - Dieses fangen zuläßt das Sendeneiner kundenspezifischen callerid Zahl bei den outbound Anrufen auf.Dieses ist die Zahl, die oben auf dem callerid der Person darstellenwürde, die, Sie anrufen. Die Rückstellung ist UNBEKANNT. Wenn Sie T1benutzen, oder Eß, zum dieser Wahl heraus zu wählen nur vorhandenist, wenn Sie PRIs verwenden - ISDN Tß oder Eß - die diekundenspezifische callerid Eigenschaft haben, die eingeschaltet wird,arbeitet dieses nicht mit Berauben-Spitze service(RBS) Stromkreisen.Dieses arbeitet auch durch die meisten VOIP(SIP oder IAX Stämme)Versorger, die dynamisches outbound callerID erlauben. Daskundenspezifische callerID trifft nur auf die Anrufe zu, die direktfür die VICIDIAL Kampagne gesetzt werden, benennt jede mögliche 3.Partei, oder Übertragungen senden nicht das kundenspezifischecallerID. ANMERKUNG: UNBEKANNT oder PRIVAT in auffangen manchmalsich setzen erbringt das Senden Ihrer Rückstellung callerID Zahldurch Ihre Fördermaschine mit den Anrufen. Sie können dieses prüfenwünschen und fangen 0000000000 in das callerid sich zusetzen anstatt auf, wenn Sie nicht Ihnen CallerID schicken möchten| +Login -<\/B> The login used for the phone user to login to the client applications|LOGON - Der LOGON gewöhnt ge$$$WESEN für den Telefonbenutzer anLOGON zu den Klient Anwendungen| +Password -<\/B> The password used for the phone user to login to the client applications|Kennwort - Das Kennwort gewöhnt ge$$$WESEN für denTelefonbenutzer an LOGON zu den Klient Anwendungen| +New Campaign Lead Recycle Addition|Neue Kampagne Leitung Bereiten Hinzufügung Auf| +Modify Campaign Lead Recycle|Ändern Sie Kampagne Leitung Aufbereiten| +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|Durch den Gebrauch von Leitung aufbereitend, können Sie spezifischeStatus der Leitungen in einem spezifizierten Abstand wieder benennen,ohne die gesamte Liste zurückzustellen. Die Leitung Wiederverwertungist Kampagne-spezifisch und muß nicht ein vorgewählter dialableStatus in Ihrer Kampagne sein. Der Versuch verzögertauffangen ist die Zahl Sekunden, bis die Leitung in denZufuhrbehälter zurück gelegt sein kann, diese Zahl muß mindestens120 Sekunden sein. Das Versuch Maximum fangen ist dieHöchstzahl der Zeiten auf, die eine Leitung dieses Status versuchtwerden kann, bevor die Liste zurückgestellt werden muß, diese Zahlkann von 1 bis 10 sein. Sie können aktivieren und eine Leitung zuentaktivieren bereiten Sie Eintragung mit den zur Verfügunggestellten Verbindungen auf. Diese Eigenschaft arbeitet nur imAutomobil-Vorwahlknopf Modus, in dem Vorwahlknopfniveau grösser als 0ist| +CAMPAIGN LEAD RECYCLE NOT ADDED - there is already a lead-recycle for this campaign with this status|KAMPAGNE LEITUNG BEREITEN NICHT HINZUGEFÜGT auf - es gibt bereitseine Führenwiederverwertung für diese Kampagne mit diesem Status| +CAMPAIGN LEAD RECYCLE NOT ADDED - Please go back and look at the data you entered|KAMPAGNE LEITUNG BEREITEN NICHT HINZUGEFÜGT auf - gehen Sie bittezurück und betrachten Sie die Daten, die Sie eingaben| +status must be between 1 and 6 characters in length|Status muß zwischen 1 und 6 Buchstaben lang sein| +attempt delay must be at least 120 seconds|Versuch verzögert muß mindestens 120 Sekunden sein| +maximum attempts must be from 1 to 10|maximale Versuche müssen von 1 bis 10 sein| +CAMPAIGN LEAD RECYCLE ADDED|KAMPAGNE LEITUNG BEREITEN HINZUGEFÜGT AUF| +CAMPAIGN LEAD RECYCLE NOT DELETED|KAMPAGNE LEITUNG BEREITEN NICHT GELÖSCHT AUF| +CAMPAIGN LEAD RECYCLE DELETED|KAMPAGNE LEITUNG BEREITEN GELÖSCHT AUF| +Delete Lead Recycle|Löschung-Leitung Bereiten Auf| +LEAD RECYCLING WITHIN THIS CAMPAIGN|LEITUNG, DIE INNERHALB DIESER KAMPAGNE AUFBEREITET| +ATTEMPT DELAY|VERSUCH VERZÖGERT| +ATTEMPT MAXIMUM|VERSUCH MAXIMUM| +ADD NEW CAMPAIGN LEAD RECYCLE|ADDIEREN SIE NEUE KAMPAGNE LEITUNG AUFBEREITEN| +Attempt Delay|Versuch Verzögert| +Attempt Maximum|Versuch Maximum| +If you want to allow Consultative Transfers, a fronter to a closer, you can place CXFER as one of the number-to-dial presets and the proper dial string will be sent to do a Local Consultative Transfer, then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER or CXFER, for instance if you want to do Internal Consultative transfers instead of Local you would put CXFER90009 in the number-to-dial field|Wenn Sie beratende Übertragungen erlauben möchten, ein fronter zueinem genauerem, können Sie CXFER setzen, da eins derZahl-zu-Vorwahlknopf Voreinstellungen und des korrekten dial stringsgesendet wird, um eine lokale beratende Übertragung, dann dieMitteldose gerechtes LEAVE-3WAY-CALL und Bewegung an zu tun zu ihremfolgenden Anruf. Wenn Sie blinde Übertragungen der Kunden auf einenVICIDIAL AGI Index für die Protokollierung oder ein IVR erlaubenmöchten, legen Sie dann AXFER in den Zahl-zu-Vorwahlknopfauffangen. Sie können eine kundenspezifische Verlängerungnach dem AXFER oder dem CXFER auch spezifizieren, zum Beispiel wennSie interne beratende Übertragungen anstelle vom Einheimischen tunmöchten, würden Sie CXFER90009 in den Zahl-zu-Vorwahlknopfauffangen einsetzen| +System Performance -<\/B> Setting this option to Y will enable logging of system performance stats for the server machine including system load, system processes and Asterisk channels in use. Default is N|System Leistung - die Einstellung dieser Wahl auf Y ermöglicht derProtokollierung von System Leistung Notfall für die Bedienermaschineeinschließlich Anlagen-Belastung, System Prozesse undSternchenführungen im Gebrauch. Rückstellung ist N| +Server Logs -<\/B> Setting this option to Y will enable logging of all VICIDIAL related scripts to their text log files. Setting this to N will stop writing logs to files for these processes, also the screen logging of asterisk will be disabled if this is set to N when Asterisk is started. Default is Y|Bediener-Maschinenbordbücher - die Einstellung dieser Wahl auf Yermöglicht der Protokollierung aller VICIDIAL bezogenen Indexe zuihren Textmaschinenbordbuchakten. Die Einstellung dieses auf N stopptSchreiben Maschinenbordbücher zu den Akten für diese Prozesse, auchdie Schirmprotokollierung des Sternchens ist untauglich, wenn diesesauf N eingestellt wird, wenn Sternchen begonnen wird. Rückstellungist Y| +AGI Output -<\/B> Setting this option to NONE will disable output from all VICIDIAL related AGI scripts. Setting this to STDERR will send the AGI output to the Asterisk CLI. Setting this to FILE will send the output to a file in the logs directory. Setting this to BOTH will send output to both the Asterisk CLI and a log file. Default is FILE|AGI ausgegeben - die Einstellung dieser Wahl auf KEINE sperrt Ausgangvon allen VICIDIAL bezogenen AGI Indexen. Die Einstellung dieses aufSTDERR schickt das AGI, das zum Sternchen CLI ausgegeben wird. DieEinstellung dieses auf AKTE schickt den Ausgang zu einer Akte imMaschinenbordbuchverzeichnis. Die Einstellung dieses auf BEIDE schicktAusgang zum Sternchen CLI und zu einer Maschinenbordbuchakte.Rückstellung ist AKTE| +Recording Delay -<\/B> For ALLCALLS and ALLFORCE recording only. This setting will delay the starting of the recording on all calls for the number of seconds specified in this field. Default is 0|Das Notieren verzögert - für ALLCALLS und ALLFORCE nur Aufnahme.Dieser Einstellung Wille verzögert das Beginnen der Aufnahme beiallen Anrufen für die Zahl den Sekunden, die diesbezüglichspezifiziert werden, auffangen. Rückstellung ist 0| +Omit Phone Code -<\/B> This field allows you to leave out the phone_code field while dialing within VICIDIAL. For instance if you are dialing in the UK from the UK you would have 44 in as your phone_code field for all leads, but you just want to dial 10 digits in your dial plan extensions.conf to place calls instead of 44 then 10 digits. Default is N|Lassen Sie Telefon-Code aus - dieses fangen erlaubt Ihnen,das phone_code auszulassen auffangen beim Wählen innerhalbVICIDIAL auf. Zum Beispiel wenn Sie in Großbritannien vonGroßbritannien wählen, würden Sie 44 innen haben, wie Ihrphone_code für alle Leitungen auffangen, aber Sie gerade 10Stellen in Ihrem dial plan extensions.conf wählen möchten, um Anrufeanstelle von 44 dann 10 Stellen zu setzen. Rückstellung ist N| +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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|Kampagne Aufnahme - dieses Menü erlaubt Ihnen, zu wählen, welchesNiveau der Aufnahme auf dieser Kampagne erlaubt wird. NIE sperrtAufnahme auf dem Klienten. ONDEMAND ist die Rückstellung und erlaubtdem Vertreter zu notieren zu beginnen und, zu stoppen, wie gebraucht.ALLCALLS beginnt Aufnahme auf dem Klienten, wann immer ein Anruf zueinem Mittel geschickt wird. ALLFORCE beginnt Aufnahme auf demKlienten, wann immer ein Anruf zu einem Mittel geschickt wird, das demMittel keine Wahl gibt, um zu notieren zu stoppen. Für ALLCALLS undALLFORCE gibt es eine Wahl, zum der Aufnahme zu benutzen verzögert,um unten auf sehr kurze Aufnahmen und recude Anlagen-Belastung zuschneiden| +Dial Method -<\/B> This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode|Vorwahlknopf-Methode - Dieses fangen ist die Weise, wie auf das Wählen zu definieren, stattfinden soll. Wenn HANDBUCH dann das auto_dial_level bei 0 verschlossen ist, es sei denn Vorwahlknopf-Methode geändert wird. Wenn VERHÄLTNIS dann der Normal, der eine Zeilenzahl für aktive Mittel wählt. ADAPT_HARD_LIMIT wählt predictively bis zum fallengelassenen Prozentsatz und dann erlaubt nicht das konkurrenzfähige Wählen, sobald die Tropfenbegrenzung erreicht wird, bis der Prozentsatz unten wieder geht. ADAPT_TAPERED läßt laufenden Überschuß den fallengelassenen Prozentsatz zur Hälfte erste der Verschiebung zu - wie durch das call_time definiert, das für Kampagne vorgewählt wird und erhält strenger, während die Verschiebung weitergeht. ADAPT_AVERAGE versucht, einen Durchschnitt oder den fallengelassenen Prozentsatz beizubehalten so, die konkurrenzfähig harte Begrenzungen nicht wie die anderen zwei Methoden auferlegen. Sie können nicht das Selbstvorwahlknopf-Niveau ändern, wenn Sie in irgendwelchen der ANPASSENVORWAHLKNOPFMETHODEN sind. Nur der Dialer kann das Vorwahlknopfniveau ändern wenn im vorbestimmten wählenden Modus| +Available Only Tally -<\/B> This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N|Vorhandenes nur Tally - dieses fangen auf, wenn Satz zu YINCALL und WARTESCHLANGE Statusmittel ausläßt, wenn er die ZahlAnrufen zum Vorwahlknopf wenn nicht in MANUELLEN Vorwahlknopfmoduserrechnet. Rückstellung ist N| +Drop Percentage Limit -<\/B> This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO|Tropfen-Prozentsatz-Begrenzung - dieses fangen ist auf, wohinSie die Begrenzung auf den Prozentsatz der fallengelassenen Anrufe,die einstellten Sie beim Verwenden eineranpassungsfähig-vorbestimmten Vorwahlknopfmethode möchten, nichtMANUELL oder des VERHÄLTNISSES| +Maximum Adapt Dial Level -<\/B> This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0|Maximum paßt den waagerecht ausgerichteten Vorwahlknopf an - diesesfangen ist auf, wohin Sie die Begrenzung auf die Begrenzungauf das numbr der Linien, die einstellten Sie gewählt pro Mittel beimVerwenden einer anpassungsfähig-vorbestimmten Vorwahlknopfmethodemöchten, nicht MANUELL oder des VERHÄLTNISSES. Diese Zahl kann alsdas Selbstvorwahlknopf-Niveau höher sein, wenn Ihre Kleinteile esstützen. Wert muß eine positive Nr. grösser als eine sein und kannDezimalstellen Rückstellung 3.0 haben| +Latest Server Time -<\/B> This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling|Neueste Bediener-Zeit - dieses fangen wird verwendet nurdurch die ADAPT_TAPERED Vorwahlknopfmethode auf. Sie sollten in dieStunde hereinkommen und Minute, um der Sie stoppen, diese Kampagne zuersuchen, 2100 würde bedeuten, daß Sie stoppen, diese Kampagne bei9PM Bedienerzeit zu wählen. Dieses läßt den sich verjüngendenAlgorithmus entscheiden wie konkurrenzfähig zum Vorwahlknopf durch,wie lang Sie haben, bis Sie fertiges Benennen sind| +Adapt Intensity Modifier -<\/B> This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Passen Sie Intensität Modifizierfaktor an - dieses fangenwird verwendet, die vorbestimmte höhere oder niedrigere Intensitätzu justieren entweder auf. Das höhere eine positive Zahl, die Sievorwählen, grösser der Dialer den schreitenen Anruf erhöht, wenn esgeht oben und langsam der Dialer den schreitenen Anruf verringert,wenn es geht unten. Das niedriger die negative Zahl, Sie vorwählenhier, langsam erhöht der Dialer den schreitenen Anruf und schnellersenkt der Dialer den schreitenen Anruf, wenn es geht unten.Rückstellung ist 0. Dieses fangen wird verwendet nicht durchden HANDBUCH- oder VERHÄLTNIS-Vorwahlknopf Methoden auf| +Dial Level Difference Target -<\/B> This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Vorwahlknopf-waagerecht ausgerichtetes Unterschied-Ziel - diesesfangen wird verwendet zu definieren auf, ob Sie Haben einerspezifischen Anzahl von den Mitteln zielen möchten, die Anruf- oderAnklopfenmittel warten. Z.B. wenn Sie immer auf Durchschnitt einerMittel haben möchten frei, Anrufe sofort zu nehmen, würden Siedieses bis -1 einstellen, wenn Sie ein immer haben zielen möchtenersuchen um den Einfluß, der ein Mittel wartet, das Sie dieses bis 1einstellen würden. Rückstellung ist 0. Dieses fangen wirdverwendet nicht durch den HANDBUCH- oder VERHÄLTNIS-VorwahlknopfMethoden auf| +System Performance|System Leistung| +Server Logs|Bediener-Maschinenbordbücher| +AGI Output|AGI Ausgang| +Recording Delay|Das Notieren Verzögert| +Omit Phone Code|Lassen Sie Telefon-Code Aus| +Campaign Recording|Kampagne Aufnahme| +Dial Method|Vorwahlknopf-Methode| +Available Only Tally|Vorhandenes Nur Tally| +Drop Percentage Limit|Tropfen-Prozentsatz-Begrenzung| +Maximum Adapt Dial Level|Maximum Paßt Vorwahlknopf-Niveau An| +Latest Server Time|Neueste Bediener-Zeit| +Adapt Intensity Modifier|Passen Sie Intensität Modifizierfaktor An| +Dial Level Difference Target|Vorwahlknopf-Waagerecht ausgerichtetes Unterschied-Ziel| +### START translations for 2.0.2 release ### +VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting|VICIDIAL Bediener-Stämme erlaubt Ihnen, die gehenden Leitungeneinzuschränken, die auf diesem Bediener für die Kampagne benutztwerden, die auf einer Prokampagne Grundlage wählt. Sie haben dieWahl, zum einer spezifischen Zeilenzahl durch nur eine Kampagneverwendet zu werden aufzuheben,, sowie das Lassen dieser Kampagneüber seine reservierten Linien laufen in was Linien geöffnetbleiben, wie, lang an den Gruppenzeilen, die durch vicidial auf diesemBediener benutzt werden, sind kleiner als die Maximum VICIDIALStammeinstellung. Erlaubt Haben nicht irgendwelche dieserAufzeichnungen die Kampagne, die die Linie zuerst wählt, um da vieleLinien zu haben, während sie unter der Maximum VICIDIAL erhalten kannStammeinstellung| +VICIDIAL Balance Dialing -<\/B> Setting this field to Y will allow the server to place balance calls for campaigns in VICIDIAL so that the defined dial level can be met even if there are no agents logged into that campaign on this server. Default is N|VICIDIAL Balance Wählen - dieses einstellend, fangen Sie zuY läßt den Bediener Balance Anrufe für Kampagnen in VICIDIAL legenauf, damit das definierte Vorwahlknopfniveau getroffen werden kann,selbst wenn es keine Mittel gibt, die in diese Kampagne auf diesemBediener geloggt werden. Rückstellung ist N| +VICIDIAL Balance Offlimits -<\/B> This setting defines the number of trunks to not allow VICIDIAL balance dialing to use. For example if you have 40 max vicidial trunks and balance offlimits is set to 10 you will only be able to use 30 trunk lines for VICIDIAL balance dialing. Default is 0|VICIDIAL Balance Offlimits - diese Einstellung definiert die ZahlStämmen, um die VICIDIAL Balance nicht zu erlauben, die wählt, um zuverwenden. Z.B. wenn Sie haben, wird 40 maximale vicidial Stämme undBalance offlimits bis 10 eingestellt, die Sie nur in der LageSIND, 30Hauptluftlinien für VICIDIAL Balance das Wählen zu benutzen.Rückstellung ist 0| +Allowed Campaigns -<\/B> This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system|Erlaubte Kampagnen - dieses ist eine auswählbare Liste der Kampagnen,zu denen Mitglieder dieser Benutzergruppe innen protokollieren könnenin. Die ALL-CAMPAIGNS Wahl erlaubt den Benutzern in dieser Gruppe, injeder möglicher Kampagne auf dem System innen zu sehen und zuprotokollieren| +VICIDIAL SERVER TRUNK RECORD NOT ADDED|VICIDIAL BEDIENER-STAMM-SATZ NICHT ADDIERT| +there is already a server-trunk record for this campaign|es gibt bereits eine Bediener-Stamm Aufzeichnung für diese Kampagne| +the number of vicidial trunks is too high|die Zahl vicidial Stämmen ist zu hoch| +VICIDIAL SERVER TRUNK RECORD ADDED|VICIDIAL BEDIENER-STAMM-SATZ ADDIERT| +VICIDIAL SERVER TRUNK RECORD NOT MODIFIED|VICIDIAL BEDIENER-STAMM-SATZ NICHT GEÄNDERT| +VICIDIAL SERVER TRUNK RECORD MODIFIED|VICIDIAL BEDIENER-STAMM-SATZ ÄNDERTE| +VICIDIAL SERVER TRUNK RECORD NOT DELETED|VICIDIAL BEDIENER-STAMM-SATZ NICHT GELÖSCHT| +VICIDIAL SERVER TRUNK RECORD DELETED|VICIDIAL BEDIENER-STAMM-SATZ GELÖSCHT| +campaign must be between 3 and 8 characters in length|Kampagne muß zwischen 3 und 8 Buchstaben lang sein| +server_ip delay must be at least 7 characters|server_ip verzögert muß mindestens 7 Buchstaben sein| +trunks must be a digit from 0 to 9999|Stämme müssen eine Stelle von 0 bis 9999 sein| +VICIDIAL Balance Dialing|VICIDIAL Balance Wählen| +VICIDIAL Balance Offlimits|VICIDIAL Balance Offlimits| +ADDING NEW SERVER VICIDIAL TRUNK RECORD|ADDIEREN DES NEUEN STAMM-SATZES DES BEDIENER-VICIDIAL| +ADD NEW SERVER VICIDIAL TRUNK RECORD|ADDIEREN SIE NEUEN STAMM-SATZ DES BEDIENER-VICIDIAL| +MODIFY SERVER VICIDIAL TRUNK RECORD|ÄNDERN SIE STAMM-SATZ DES BEDIENER-VICIDIAL| +DELETE SERVER VICIDIAL TRUNK RECORD|STAMM-SATZ DES LÖSCHUNG-BEDIENER-VICIDIAL| +VICIDIAL TRUNKS FOR THIS SERVER|VICIDIAL STÄMME FÜR DIESEN BEDIENER| + RESTRICTION | BESCHRÄNKUNG | + TRUNKS | STÄMME | +Emergency VDAC Jam Clear|Dringlichkeits-VDAC Stau-Freier Raum| +VDAC NOT CLEARED FOR CAMPAIGN|VDAC NICHT LÖSCHTE FÜR KAMPAGNE| +LAST VDAC RECORD CLEARED FOR CAMPAIGN|LETZTES VDAC SATZ GELÖSCHT FÜR KAMPAGNE| +VDAC CLEAR CONFIRMATION|VDAC AUSLÖSEBESTÄTIGUNG| +Click here to delete the oldest LIVE record in VDAC for|Klicken Sie hier, um das älteste zu löschen LEBEN Aufzeichnung inVDAC für| +Allowed Campaigns|Erlaubte Kampagnen| +USERS CAN VIEW ANY CAMPAIGN|BENUTZER KÖNNEN JEDE MÖGLICHE KAMPAGNE ANSEHEN| +Campaign Not Allowed|Kampagne Nicht Erlaubt| +### START translations for 2.0.3 release ### +ADAPT OVERRIDE|PASSEN SIE ÜBERSTEUERUNG AN| +The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually.|Das ANPASSENÜBERSTEUERUNG checkbox erlaubt Ihnen, ein neuesVorwahlknopfniveau zu zwingen, obwohl die Vorwahlknopfmethode in einemANPASSENMODUS ist. Dieses ist nützlich, wenn es eine drastischeVerschiebung in der Qualität der Leitungen gibt und Sie dasdial_level drastisch manuell ändern möchten.| +There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hangup their call, stay on the same lead, and dial another contact number from that lead.|Es gibt zwei spezielle HotKey Wahlen, die Sie in Verbindung mit derwechselnden wählenden Telefonnummer verwenden können, ALTPH2 -wechselndes Telefon-heißer Vorwahlknopf und heißer VorwahlknopfADDR3-----Address3 erlauben einem Vertreter, ein hotkey zumHängezustand zu verwenden ihr Anruf, bleiben auf der gleichen Leitungund wählen eine andere Kontaktnummer von diesem führen.| +Concurrent Transfers|Gleichzeitige Übertragungen| +Concurrent Transfers -<\/B> This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method|Gleichzeitige Übertragungen - diese Einstellung wird benutzt, um dieZahl Anrufen zu definieren, die zu den Mitteln gleichzeitig geschicktwerden können. Es wird empfohlen, daß diese Einstellung am AUTOMOBILgelassen wird. Dieses fangen wird verwendet nicht durch dieMANUELLE Vorwahlknopfmethode auf| +Auto Alt-Number Dialing -<\/B> This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method|Wählende SelbstAlt-zahl - diese Einstellung wird benutzt, umwechselnde Nummer automatisch zu wählen auffängt, beimWählen im VERHÄLTNIS und ANPASST Vorwahlknopfmethoden, wenn eskeinen Kontakt an der Haupttelefonnummer für eine Leitung, die Na, B,DC und N Status gibt. Diese Einstellung wird nicht durch die MANUELLEVorwahlknopfmethode benutzt| +Auto Alt-Number Dialing|SelbstAlt-zahl Wählen| +View Reports -<\/B> This option allows the user to view the VICIDIAL reports.|Ansicht berichtet - diese Wahl erlaubt dem Benutzer, die VICIDIALReports anzusehen.| +Modify Sections -<\/B> These options allow the user to view and modify each sections records. If set to 0, the user will be able to see the section list, but not the detail or modification screen of a record in that section|Ändern Sie Abschnitte - diese Wahlen erlauben dem Benutzer, jedesanzusehen und zu ändern Abschnittaufzeichnungen. Wenn Satz bis 0, derBenutzer in der LageIST, die Abschnittliste, aber nicht das Detailoder den Änderung Schirm einer Aufzeichnung in diesem Abschnitt zusehen| +VICIDIAL AUTO ALT DIAL STATUSES|VICIDIAL SELBSTALT VORWAHLKNOPF-STATUS| +If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set|Wenn das SelbstAlt-zahl Wählen wird eingestellt auffangen,dann die Leitungen, die sind, unter diesen Vorwahlknopfstatus desAutomobils Alt haben ihr alt_phone dispositioned, und-oder address3gewählt, nachdem irgendwelche von diesen Status kein-antworten,werden eingestellt auffängt| +AUTO ALT NUMBER DIALING FOR THIS CAMPAIGN|SELBSTALT ZAHL, DIE FÜR DIESE KAMPAGNE WÄHLT| +ADD NEW AUTO ALT NUMBER DIALING STATUS|ADDIEREN SIE NEUE ZAHL-WÄHLENDEN STATUS DES AUTOMOBIL-ALT| +AUTO ALT DIAL STATUS NOT ADDED|SELBSTALT VORWAHLKNOPF-STATUS NICHT ADDIERT| +there is already an entry for this campaign with this status|es gibt bereits eine Eintragung für diese Kampagne mit diesem Status| +AUTO ALT DIAL STATUS ADDED|SELBSTALT VORWAHLKNOPF-STATUS FÜGTE HINZU| +AUTO ALT DIAL STATUS NOT DELETED|SELBSTALT VORWAHLKNOPF-STATUS NICHT GELÖSCHT| +AUTO ALT DIAL STATUS DELETED|SELBSTALT VORWAHLKNOPF-STATUS GELÖSCHT| +this auto alt dial status is not in this campaign|dieser Vorwahlknopfstatus des Automobils Alt ist nicht in dieserKampagne| +New Auto Alt Dial Status|Neuer Vorwahlknopf-Status Des Automobil-Alt| +Delete Auto Alt Dial Status|Selbstalt Vorwahlknopf-Status Der Löschung-| + Users | Benutzer | + Campaigns | Kampagnen | + Lists | Listen | + Scripts | Indexe | + Filters | Filter | + In-Groups | In-Gruppen | + User Groups | Benutzer-Gruppen | + Remote Agents | Remotemittel | + Admin | Admin | + Reports | Reports | + Show Users | Zeigen Sie Benutzer | + Add A New User | Addieren Sie Einen Neuen Benutzer | + Search For A User | Suche Nach Einem Benutzer | + Show Campaigns | Zeigen Sie Kampagnen | + Add A New Campaign | Addieren Sie Eine Neue Kampagne | + Real-Time Campaigns Summary | Realzeitkampagnen Zusammenfassend | + Show Lists | Zeigen Sie Listen | + Add A New List | Addieren Sie Eine Neue Liste | + Search For A Lead | Suche Nach Einer Leitung | + Add Number To DNC | Fügen Sie Zahl DNC Hinzu | + Load New Leads | Last Neue Leitungen | + Show Scripts | Zeigen Sie Indexe | + Add A New Script | Addieren Sie Einen Neuen Index | + Show Filters | Zeigen Sie Filter | + Add A New Filter | Addieren Sie Einen Neuen Filter | + Show In-Groups | Zeigen Sie In-Gruppen | + Add A New In-Group | Addieren Sie Eine Neue In-Gruppe | + Show User Groups | Zeigen Sie Benutzer-Gruppen | + Add A New User Group | Addieren Sie Eine Neue Benutzer-Gruppe | + Group Hourly Report | Gruppe Stündlicher Report | + Show Remote Agents | Zeigen Sie Remotemittel | + Add New Remote Agents | Addieren Sie Neue Remotemittel | + Call Times | Anruf-Zeiten | + Phones | Telefone | + Conferences | Konferenzen | + Servers | Bediener | + Show Call Times | Zeigen Sie Anruf-Zeiten | + Add A New Call Time | Addieren Sie Eine Neue Anruf-Zeit | + Show State Call Times | Zeigen Sie Zustand-Anruf-Zeiten | + Add A New State Call Time | Addieren Sie Eine Neue Zustand-Anruf-Zeit | + Show Phones | Zeigen Sie Telefone | + Add A New Phone | Addieren Sie Ein Neues Telefon | + Show Conferences | Zeigen Sie Konferenzen | + Add A New Conference | Addieren Sie Eine Neue Konferenz | + Show VICIDIAL Conferences | Zeigen Sie VICIDIAL Konferenzen | + Add A New VICIDIAL Conference | Addieren Sie Eine Neue VICIDIAL Konferenz | + Show Servers | Zeigen Sie Bediener | + Add A New Server | Addieren Sie Einen Neuen Bediener | +CallBacks Within User Group|Wiederholungsbesuche Innerhalb Der Benutzer-Gruppe| +USERS WITHIN THIS USER GROUP|BENUTZER INNERHALB DIESER BENUTZER-GRUPPE| +Modify Users: |Ändern Sie Benutzer: | +Modify Campaigns: |Ändern Sie Kampagnen: | +Modify Lists: |Ändern Sie Listen: | +Modify Scripts: |Ändern Sie Indexe: | +Modify Filters: |Ändern Sie Filter: | +Modify In-Groups: |Ändern Sie In-Gruppen: | +Modify User Groups: |Ändern Sie Benutzer-Gruppen: | +Modify Remote Agents: |Ändern Sie Remotemittel: | +Modify Servers: |Ändern Sie Bediener: | +View Reports: |Ansicht-Reports: | +You do not have permission to view this page|Sie haben nicht Erlaubnis, diese Seite anzusehen| +Lead Time Zone Lookup: |Vorbereitungs- und Anlaufzeit Zone Nachschlagen: | +Lead Duplicate Check: |Leitung Duplikat-Überprüfung: | +Agent Pause Codes Active -<\/B> Allows agents to select a pause code when they click on the PAUSE button in vicidial.php. Pause codes are definable per campaign at the bottom of the campaign view detail screen and they are stored in the vicidial_agent_log table. Default is N|Mittel-Pause kodiert aktives - läßt Mittel einen Pause Codevorwählen, wenn sie an die PAUSE Taste in vicidial.php klicken. PauseCodes sind pro Kampagne am unteren Bildschirmrand KampagneAnsichtdetail definierbar und sie werden in der vicidial_agent_logTabelle gespeichert. Rückstellung ist N| +AGENT PAUSE CODES|MITTEL-PAUSE CODES| +If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the vicidial agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters.|Wenn die Mittel-Pause aktives kodiert, fangen Sie wirdeingestellt auf aktives dann die Mittel in der LageIST, von diesenPause Codes vorzuwählen auf, wenn sie an die PAUSE Taste auf ihrenSchirmen klicken. Diese Daten werden dann im vicidialMittelmaschinenbordbuch gespeichert. Der Pause Code muß nurBuchstaben und Zahlen lang enthalten und kleiner als 7 Buchstabensein. Der Pause Codename kann nicht mehr als 30 Buchstaben sein.| +AGENT PAUSE CODES FOR THIS CAMPAIGN|MITTEL-PAUSE CODES FÜR DIESE KAMPAGNE| +PAUSE CODES|PAUSE CODES| +BILLABLE|VERRECHENBAR| +ADD NEW AGENT PAUSE CODE|ADDIEREN SIE NEUEN MITTEL-PAUSE CODE| +Pause Code: |Pause Code: | +Pause Code Name: |Pause Code-Name: | +Billable: |Verrechenbar: | +New Agent Pause Code|Neuer Mittel-Pause Code| +Modify Agent Pause Code|Ändern Sie Mittel-Pause Code| +Delete Agent Pause Code|Löschung-Mittel-Pause Code| +AGENT PAUSE CODE NOT ADDED|MITTEL-PAUSE CODE NICHT ADDIERT| +there is already an entry for this campaign with this pause code|es gibt bereits eine Eintragung für diese Kampagne mit diesem PauseCode| +AGENT PAUSE CODE ADDED|MITTEL-PAUSE CODE FÜGTE HINZU| +AGENT PAUSE CODE NOT MODIFIED|MITTEL-PAUSE CODE NICHT GEÄNDERT| +CAMPAIGN PAUSE CODE NOT DELETED|KAMPAGNE PAUSE CODE NICHT GELÖSCHT| +Campaign Description -<\/B> This is a memo field for the campaign, it is optional and can be a maximum of 255 characters in length|Kampagne Beschreibung - dieses ist ein Protokoll auffangenfür die Kampagne, ist es wahlweise freigestellt und kann ein Maximumvon 255 Buchstaben lang sein| +Campaign Change Date -<\/B> This is the last time that the settings for this campaign were modified in any way|Kampagne Änderung Datum - dieses ist das letzte Mal, daß dieEinstellungen für diese Kampagne in jeder Hinsicht geändert wurden| +Campaign Stats Refresh -<\/B> This checkbox will allow you to force a vicidial stats refresh, even if the campaign is not active|Kampagne Notfall erneuern - dieses checkbox erlaubt Ihnen, einenvicidial Notfall zu zwingen erneuern, selbst wenn die Kampagne nichtaktiv ist| +Last Campaign Login Date -<\/B> This is the last time that an agent was logged into this campaign|Letztes Kampagne LOGON-Datum - dieses ist das letzte Mal, daß einMittel in diese Kampagne geloggt wurde| +List Description -<\/B> This is the memo field for the list, it is optional|Liste Beschreibung - dieses ist das Protokoll auffangen fürdie Liste, es ist wahlweise freigestellt| +List Change Date -<\/B> This is the last time that the settings for this list were modified in any way|Liste Änderung Datum - dieses ist das letzte Mal, daß dieEinstellungen für diese Liste in jeder Hinsicht geändert wurden| +List Last Call Date -<\/B> This is the last time that lead was dialed from this list|Liste Letzt-Anruf-Datum - dieses ist das letzte Mal, das wurdegewählt von dieser Liste führen| +List Description: |Liste Beschreibung: | +List Change Date: |Liste Änderung Datum: | +Campaign Description: |Kampagne Beschreibung: | +VICIDIAL Recording Override -<\/B> This option will override whatever the option is in the campaign for recording. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|VICIDIAL Aufnahme-Übersteuerung - diese Wahl läuft über, was auchimmer die Wahl in der Kampagne für Aufnahme ist. UNTAUGLICH läuftnicht die Kampagne Aufnahmeeinstellung über. NIE sperrt Aufnahme aufdem Klienten. ONDEMAND ist die Rückstellung und erlaubt dem Vertreterzu notieren zu beginnen und, zu stoppen, wie gebraucht. ALLCALLSbeginnt Aufnahme auf dem Klienten, wann immer ein Anruf zu einemMittel geschickt wird. ALLFORCE beginnt Aufnahme auf dem Klienten,wann immer ein Anruf zu einem Mittel geschickt wird, das dem Mittelkeine Wahl gibt, um zu notieren zu stoppen. Für ALLCALLS und ALLFORCEgibt es eine Wahl, zum der Aufnahme zu benutzen verzögert, um untenauf sehr kurze Aufnahmen und recude Anlagen-Belastung zu schneiden| +VICIDIAL Recording Override: |VICIDIAL Aufnahme-Übersteuerung: | +MODIFY VICIDIAL SYSTEM SETTINGS|ÄNDERN SIE VICIDIAL SYSTEM EINSTELLUNGEN| + System Settings | System Einstellungen | +VICIDIAL SYSTEM SETTINGS MODIFIED|VICIDIAL SYSTEM EINSTELLUNGEN GEÄNDERT WORDEN| +Version: |Version: | +Use Non-Latin: |Gebrauch Nicht-Lateinisch: | +Webroot Writable: |Webroot Schreibbar: | +Enable QueueMetrics Logging: |Ermöglichen Sie Der QueueMetrics Protokollierung: | +QueueMetrics Server IP: |QueueMetrics Bediener IP: | +QueueMetrics DB Name: |QueueMetrics DB Name: | +QueueMetrics DB Login: |QueueMetrics DB LOGON: | +QueueMetrics DB Password: |QueueMetrics DB Kennwort: | +Use Non-Latin -<\/B> This option allows you to default the web display script to use UTF8 characters and not do any latin-character-family regular expression filtering or display formatting. Default is 0|Gebrauch Nicht-Lateinisch - diese Wahl erlaubt Ihnen, den NetzanzeigeIndex auf Buchstaben des Gebrauches UTF8 zurückzufallen und keinenfilternden Lateinisch-Buchstabefamilie regelmäßigen Ausdruck zu tunoder Formatierung anzuzeigen. Rückstellung ist 0| +Webroot Writable -<\/B> This setting allows you to define whether temp files and authentication files should be placed in the webroot on your web server. Default is 1|Webroot schreibbar - diese Einstellung erlaubt Ihnen zu definieren, obTemperatur Akten und Authentisierung Akten in das webroot auf Ihr webserver gelegt werden sollten. Rückstellung ist 1| +Enable QueueMetrics Logging -<\/B> This setting allows you to define whether VICIDIAL will insert log entries into the queue_log database table as Asterisk Queues activity does. QueueMetrics is a standalone, closed-source statistical analysis program. You must have QueueMetrics already installed and configured before enabling this feature. Default is 0|Ermöglichen Sie der QueueMetrics Protokollierung - diese Einstellungerlaubt Ihnen zu definieren, ob VICIDIAL Maschinenbordbucheintragungenin die queue_log Datenbanktabelle einsetzt, wieSternchen-Warteschlangen Tätigkeit. QueueMetrics ist,Geschlossenquellenstatistische Analyse Programm ein alleinstehendes.Sie müssen QueueMetrics haben bereits angebracht und zusammengebaut,bevor Sie dieser Eigenschaft ermöglichen. Rückstellung ist 0| +QueueMetrics Server IP -<\/B> This is the IP address of the database for your QueueMetrics installation|QueueMetrics Bediener IP - dieses ist das IP address der Datenbankfür Ihre QueueMetrics Installation| +QueueMetrics Database Name -<\/B> This is the database name for your QueueMetrics database|QueueMetrics Datenbank-Name - dieses ist der Datenbankname für IhreQueueMetrics Datenbank| +QueueMetrics Database Login -<\/B> This is the user name used to log in to your QueueMetrics database|QueueMetrics Datenbank-LOGON - dieses ist der Benutzername, derverwendet wird, um in Ihrer QueueMetrics Datenbank innen zuprotokollieren| +QueueMetrics Database Password -<\/B> This is the password used to log in to your QueueMetrics database|QueueMetrics Datenbank-Kennwort - dieses ist das Kennwort, dasverwendet wird, um in Ihrer QueueMetrics Datenbank innen zuprotokollieren| +QueueMetrics URL -<\/B> This is the URL or web site address used to get to your QueueMetrics installation|QueueMetrics URL - Dieses ist die URL oder Web site Adresse, dieverwendet wird, um zu Ihrer QueueMetrics Installation zu kommen| +QueueMetrics Log ID -<\/B> This is the server ID that all VICIDIAL logs going into the QueueMetrics database will use as an identifier for each record|QueueMetrics Maschinenbordbuch Identifikation - dieses ist derBediener Identifikation, den alle VICIDIAL Maschinenbordbücher, diein die QueueMetrics Datenbank einsteigen, als Bezeichner für jedeAufzeichnung benutzen| +QueueMetrics Log ID: |QueueMetrics Maschinenbordbuch Identifikation:| +Campaign Dial Status Added|Kampagne Vorwahlknopf-Status Addiert| +Campaign Dial Status Removed|Kampagne Vorwahlknopf-Status Entfernt| +To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove|Um einen anderen Status Vorwahlknopf hinzuzufügen, wählen Sie ihnvon der Drop-Down-Liste vor und Klicken FÜGT hinzu. Um einen derVorwahlknopfstatus zu entfernen, klicken Sie an dieENTFERNENVERBINDUNG nahe bei dem Status, den Sie entfernen möchten| +CAMPAIGN DIAL STATUS NOT ADDED|KAMPAGNE VORWAHLKNOPF-STATUS NICHT ADDIERT| +CAMPAIGN DIAL STATUS ADDED|KAMPAGNE VORWAHLKNOPF-STATUS ADDIERT| +this dial status is not selected for this campaign|dieser Vorwahlknopfstatus wird nicht für diese Kampagne vorgewählt| +CAMPAIGN DIAL STATUS NOT REMOVED|KAMPAGNE VORWAHLKNOPF-STATUS NICHT ENTFERNT| +CAMPAIGN DIAL STATUS REMOVED|KAMPAGNE VORWAHLKNOPF-STATUS ENTFERNT| +>REMOVE<|>ENTFERNEN Sie<| +Dial Status |Vorwahlknopf-Status| +no dial statuses selected for this campaign|keine Vorwahlknopfstatus vorgewählt für diese Kampagne| +QueueMetrics EnterQueue Prepend -<\/B> This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything|QueueMetrics EnterQueue stellen voran - dieses fangen wirdverwendet, das Voranstellen von einer der vicidial_list Datenzuzulassen auffängt vor der Telefonnummer des Kunden fürkundengebundene QueueMetrics Reports auf. Rückstellung ist KEINE,alles nicht zu bevölkern| +QueueMetrics EnterQueue Prepend: |QueueMetrics EnterQueue Stellen Voran: | +VICIDIAL Agent Disable Display -<\/B> This field is used to select when to show an agent when their session has been disabled by the system, a manager action or by an external measure. The NOT_ACTIVE setting will disable the message on the agents screen. The LIVE_AGENT setting will only display the disabled message when the agents vicidial_auto_calls record has been removed, such as during a force logout or emergency logout|VICIDIAL Mittel sperren Anzeige - diese fangen wirdverwendet, vorzuwählen auf, wann man einem Mittel zeigt, wann ihrLernabschnitt durch das System, eine Managertätigkeit oder durch einexternes Maß gesperrt worden ist. Die NOT_ACTIVE Einstellung sperrtdie Anzeige auf dem Mittelschirm. Die LIVE_AGENT Einstellung zeigt nurdie untaugliche Anzeige, wenn die Mittel vicidial_auto_callsAufzeichnung entfernt worden ist, wie während ein Kraft Logout oderDringlichkeitslogout an| +VICIDIAL Agent Disable Display: |VICIDIAL Mittel Sperren Anzeige: | +Disable Alter Customer Data -<\/B> If set to Y, does not change any of the customer data record when an agent dispositions the call. Default is N|Sperren Sie ändern Kunde Daten - wenn Satz zu Y, nicht irgendwelchedes Kunde Datensatzes wenn Einteilungen eines Mittels der Anrufändert. Rückstellung ist N| +Disable Alter Customer Data: |Sperren Sie Ändern Kunde Daten: | +Agent Alter Customer Data Override -<\/B> This option will override whatever the option is in the campaign for altering of customer data. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer data, no matter what the campaign setting is. Default is NOT_ACTIVE|Mittel ändern Kunde Daten-Übersteuerung - diese Wahl läuft über,was auch immer die Wahl in der Kampagne für das Ändern von KundeDaten ist. NOT_ACTIVE verwendet, was auch immer Einstellung für dieKampagne anwesend ist. ALLOW_ALTER darf immer, damit das Mittel dieKunde Daten ändert, egal was die Kampagne Einstellung ist.Rückstellung ist NOT_ACTIVE| +Agent Alter Customer Data Override: |Mittel Ändern Kunde Daten-Übersteuerung: | +Allow No-Hopper-Leads Logins -<\/B> If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N|Gewähren Sie Kein-Zufuhrbehälter-Führt LOGON - wenn Satz zu Y,Mittel zum LOGON zur Kampagne erlaubt, selbst wenn es keine Leitungengibt, die in den Zufuhrbehälter für diese Kampagne geladen werden.Diese Funktion wird nicht in den CLOSER-type Kampagnen benötigt.Rückstellung ist N| +Allow No-Hopper-Leads Logins: |Gewähren Sie Kein-Zufuhrbehälter-Führt LOGON: | +Enable SIPSAK Messages - If enabled the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. Feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Ermöglichen Sie SIPSAK Anzeigen - wenn er ermöglicht wird, schicktder Bediener Anzeigen zum SIP Telefon zur Anzeige auf der Telefon LCDAnzeige, wenn er in VICIDIAL geloggt wird. Eigenschaft arbeitet nurmit SIP Telefonen und erfordert sipsak Anwendung, auf das web serverangebracht zu werden. Rückstellung ist 0| +Enable SIPSAK Messages: |Ermöglichen Sie SIPSAK Anzeigen: | +Allow SIPSAK Messages - If set to 1, this will allow the phones table setting to work properly, the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. This feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Erlauben Sie SIPSAK Anzeigen - wenn Satz bis 1, dieses dieTelefontabelle Einstellung richtig arbeiten läßt, schickt derBediener Anzeigen zum SIP Telefon zur Anzeige auf der Telefon LCDAnzeige, wenn er in VICIDIAL geloggt wird. Diese Eigenschaft arbeitetnur mit SIP Telefonen und erfordert sipsak Anwendung, auf das webserver angebracht zu werden. Rückstellung ist 0| +Allow SIPSAK Messages: |Erlauben Sie SIPSAK Anzeigen: | +Admin Home URL - This is the URL or web site address that you will go to if you click on the HOME link at the top of the admin.php page|Admin Haupt-URL - dieses ist die URL oder Web site Adresse, daß Siegehen, wenn Sie an die HAUPTVERBINDUNG an der Oberseite der admin.phpSeite klicken| +Admin Home URL: |Admin Haupt-URL: | +>HOME<|>HAUPT<| + Welcome | Willkommen | +### START translations for 2.0.4 release ### +CHECK FOR DUPLICATES BY PHONE IN ALL CAMPAIGN LISTS|ÜBERPRÜFEN SIE AUF DUPLIKATE DURCH PHONE IN ALLE KAMPAGNE LISTEN| +CHECK FOR DUPLICATES BY PHONE IN ENTIRE SYSTEM|ÜBERPRÜFEN SIE AUF DUPLIKATE DURCH PHONE IN GESAMTES SYSTEM| +PHONE CODE OVERRIDE FOR THIS FILE|TELEFON-CODE-ÜBERSTEUERUNG FÜR DIESE AKTE| +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. The lead loader 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, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files:|Die VICIDIAL grundlegende Netz-gegründete Leitung Ladevorrichtung isteinfach entworfen, um eine Leitung Akte zu nehmen - bis zu 8MB in derGröße - die entweder Vorsprung oder das abgegrenzte Rohr und es indie vicidial_list Tabelle zu laden ist. Die Leitung Ladevorrichtungläßt auffangen das Wählen zu und TXT- deutlich Text, CSV-Komma getrennte Werte und XLS- übertreffen Akte Formate. Die LeitungLadevorrichtung tut nicht Datenprüfung, aber sie erlaubt Ihnen, aufDuplikate in sich, innerhalb der Kampagne oder innerhalb des gesamtenSystems zu überprüfen. Auch überprüfen Sie, ob Sie die Listeerstellt haben, daß diese Leitungen darunter sein sollen, damit Siesie benutzen können. Ist hier eine Liste von auffängt inihrem korrekten Auftrag für die Leitung Akten:| +NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf 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. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads.|ANMERKUNGEN: Die übertreffenleitung Ladevorrichtung Funktionalitätwird durch eine Reihe Perl Indexe ermöglicht und muß eine richtigzusammengebaute /etc/astguiclient.conf Akte im Platz auf dem webserver haben. Auch ein Paarperl Module müssen für sie, um außerdemzu arbeiten - OLE-Storage_Lite-Storage_Lite undVerteilungsbogen-ParseExcel geladen werden. Sie können aufLaufzeitfehler in diesen überprüfen, indem Sie Ihre Apache error_logAkte betrachten. Auch für Doppelprüfungen gegen gampaignverzeichnet, die Liste, die neue Leitungen hat, in es einzusteigenmuß im System verursacht werden, bevor Sie beginnen, die Leitungen zuladen.| +Campaign List Mix Added|Kampagne Liste Mischung Fügte Hinzu| +Modify Campaign List Mix|Ändern Sie Kampagne Liste Mischung| +Campaign List Mix Removed|Kampagne Liste Mischung Entfernte| +Campaign Statuses|Kampagne Status| +Campaign HotKeys|Kampagne HotKeys| +Campaign Lead Recycle Entries|Kampagne Leitung Bereiten Eintragungen Auf| +Campaign Auto Alt Dial Statuses|Kampagne Selbstalt Vorwahlknopf-Status| +Campaign Agent Pause Codes|Kampagne Mittel-Pause Codes| +Campaign Dial Statuses|Kampagne Vorwahlknopf-Status| +Campaign List Mixes|Kampagne Liste Mischungen| + Lead Recycle |Leitung Bereiten Auf| + Auto-Alt Dial |Vorwahlknopf Automobil-Alt| + Pause Codes |Pause Codes| + List Mix |Liste Mischung| + Campaigns Main |Kampagnen Hauptsächlich| +List Order Mix -<\/B> Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED|Liste Auftrag Mischung - läuft den Leitung Auftrag über undVorwahlknopf-Status fängt auf. Verwendet die Liste undStatusparameter für die vorgewählte Liste Mischung Eintragung imListe Mischung Unterseebootabschnitt anstatt. Rückstellung istUNTAUGLICH| +List Mix ID -<\/B> ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation.|Liste Mischung Identifikation - Identifikation der Liste Mischung.Muß von 2-20 Buchstaben lang ohne Räume oder andere spezielleInterpunktion sein.| +List Mix Name -<\/B> Descriptive name of the list mix. Must be from 2-50 characters in length|Liste Mischung Name - beschreibender Name der Liste Mischung. Muß von2-50 Buchstaben lang sein| +List Mix Detail -<\/B> The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated|Liste Mischung Detail - der Aufbau der Liste Mischung Eintragung.Enthält die Liste Identifikation, Mischung Auftrag, Prozentsätze undStatus, die diese Liste Mischung bilden. Die Prozentsätze müssen bis100 immer addieren, und alle Listen müssen aktiv und eingestellt aufdie Kampagne sein, damit die Auftrag Mischung Eintragung aktiviertwerden kann| +List Mix Method -<\/B> The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER.|Liste Mischung Methode - die Methode von alle Teile des Liste MischungDetails zusammen mischen. EVEN_MIX mischt Leitungen von jedem Teil,das mit den anderen Teilen, wie diese 1.2.3.1.2.3.1.2.3 durchgeschobenwird. IN_ORDER setzt die Leitungen in den Auftrag ein, in dem sie aufdem Liste Mischung Detailschirm 1.1.1.2.2.2.3.3.3 verzeichnet werden.GELEGENTLICHER Wille setzte sie in GELEGENTLICHEN Auftrag1.3.2.1.1.3.2.1.3 ein. Rückstellung ist IN_ORDER.| +LIST MIXES FOR THIS CAMPAIGN: |LISTE MISCHUNGEN FÜR DIESE KAMPAGNE:| +The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls.|Human_answered auffangen wird verwendet, als, denTropfenprozentsatz oder Ungezwungenheit Rate errechnend. Einstellunghuman_answered zu Y verwendet diesen Status, als, diemenschlich-geantworteten Anrufe zählend.| +HUMAN ANSWER|MENSCHLICHE ANTWORT| +ADDING VICIDIAL SYSTEM STATUSES|ADDIEREN VON VON VICIDIAL SYSTEMSTATUS| +MODIFY VICIDIAL SYSTEM STATUSES|ÄNDERN SIE VICIDIAL SYSTEMSTATUS| +SYSTEM STATUS NOT ADDED|SYSTEMSTATUS NICHT ADDIERT| +SYSTEM STATUS ADDED|SYSTEMSTATUS ADDIERT| +SYSTEM STATUS NOT DELETED|SYSTEMSTATUS NICHT GELÖSCHT| +the system status cannot be a reserved status: |der Systemstatus kann nicht ein reservierter Status sein:| +the system status needs to be at least 1 characters in length|der Systemstatus muß mindestens Buchstaben 1 lang sein| +VICIDIAL STATUSES WITHIN THIS SYSTEM: |VICIDIAL STATUS INNERHALB DIESES SYSTEMS:| +ADD NEW SYSTEM STATUS|ADDIEREN SIE NEUEN SYSTEMSTATUS| +CUSTOM CAMPAIGN STATUSES LISTINGS:|KUNDENSPEZIFISCHE KAMPAGNE STATUS-AUFLISTUNGEN:| +CAMPAIGN HOTKEYS LISTINGS:|KAMPAGNE HOTKEYS AUFLISTUNGEN:| +CAMPAIGN LEAD RECYCLE LISTINGS:|KAMPAGNE LEITUNG BEREITEN AUFLISTUNGEN AUF:| +LEAD RECYCLES|LEITUNG BEREITET AUF| +CAMPAIGN LEAD AUTO-ALT DIAL LISTINGS:|KAMPAGNE LEITUNG AUTO-ALT VORWAHLKNOPF-AUFLISTUNGEN:| +CAMPAIGN AGENT PAUSE CODE LISTINGS:|KAMPAGNE MITTEL-PAUSE CODE-AUFLISTUNGEN:| +CAMPAIGN LIST MIX LISTINGS:|KAMPAGNE LISTE MISCHUNG AUFLISTUNGEN:| +The Category option allows you to group several statuses into a catogy that can be used for statistical analysis.|Die Kategorie Wahl erlaubt Ihnen, einige Status in ein catogy zugruppieren, das für statistische Analyse verwendet werden kann.| +MODIFY VICIDIAL STATUS CATEGORIES|ÄNDERN SIE VICIDIAL STATUS-KATEGORIEN| +ADDING VICIDIAL STATUS CATEGORY|ADDIEREN VON VON VICIDIAL STATUS-KATEGORIE| + Status Categories |Status-Kategorien| + System Statuses |Systemstatus| +MODIFY VICIDIAL SYSTEM STATUSES|ÄNDERN SIE VICIDIAL SYSTEMSTATUS| +MODIFY VICIDIAL STATUS CATEGORY|ÄNDERN SIE VICIDIAL STATUS-KATEGORIE| +Through the use of system statuses, you can have statuses that exist for campaign and in-group. The Status must be 1-6 characters in length, the description must be 2-30 characters in length and Selectable defines whether it shows up in VICIDIAL as an agent disposition. The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls. The Category option allows you to group several statuses into a catogy that can be used for statistical analysis|Durch den Gebrauch von Systemstatus, können Sie Status haben, diefür Kampagne und Ingruppe bestehen. Der Status muß 1-6 Buchstabenlang sein, muß die Beschreibung 2-30 Buchstaben lang sein undauswählbar definiert, ob es oben in VICIDIAL als Mitteleinteilungzeigt. Human_answered auffangen wird verwendet, als, denTropfenprozentsatz oder Ungezwungenheit Rate errechnend. Einstellunghuman_answered zu Y verwendet diesen Status, als, diemenschlich-geantworteten Anrufe zählend. Die Kategorie Wahl erlaubtIhnen, einige Status in ein catogy zu gruppieren, das fürstatistische Analyse verwendet werden kann| +Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report|Durch den Gebrauch von Systemstatuskategorien, können Sie diezusammen gruppieren Status, um statistische Analyse auf einer GruppeStatus zuzulassen. Die Kategorie Identifikation muß 2-20 Buchstabenlang ohne Räume sein, muß der Name 2-50 Buchstaben lang sein, istdie Beschreibung wahlweise freigestellt und TimeonVDAD Anzeigedefiniert, ob dieser Status einer von bis zu 4 Status ist, die auf derZeit auf VDAD Realzeitreport errechnet werden und angezeigt werdenkönnen| +ADD NEW STATUS CATEGORY|ADDIEREN SIE NEUE STATUS-KATEGORIE| +STATUS CATEGORY NOT ADDED|STATUS-KATEGORIE NICHT ADDIERT| +there is already a status category in the system with this ID|es gibt bereits eine Statuskategorie im System mit dieserIdentifikation| +ID must be between 2 and 20 characters in length|Identifikation muß zwischen 2 und 20 Buchstaben lang sein| +name name must be between 2 and 50 characters in length|Namensname muß zwischen 2 und 50 Buchstaben lang sein| +STATUS CATEGORY NOT MODIFIED|STATUS-KATEGORIE NICHT GEÄNDERT| +the status category cannot be a reserved category: |die Statuskategorie kann nicht eine reservierte Kategorie sein:| +the status category needs to be at least 2 characters in length|die Statuskategorie muß mindestens 2 Buchstaben lang sein| +STATUS CATEGORY DELETED|STATUS-KATEGORIE LÖSCHTE| +STATUS CATEGORY MODIFIED|STATUS-KATEGORIE GEÄNDERT| +Category: |Kategorie:| +the system status name needs to be at least 1 characters in length|der Systemstatusname muß mindestens Buchstaben 1 lang sein| +SYSTEM STATUS NOT MODIFIED|SYSTEMSTATUS NICHT GEÄNDERT| +SYSTEM STATUS MODIFIED|SYSTEMSTATUS GEÄNDERT| +ERROR: There are already 4 Status Categories set to TimeOnVDAD Display|STÖRUNG: Es gibt bereits 4 den Status-Kategorienkatalog zurTimeOnVDAD Anzeige| +CUSTOM CAMPAIGN STATUS MODIFIED|KUNDENSPEZIFISCHER KAMPAGNE STATUS GEÄNDERT| +LIST MIX NOT MODIFIED|LISTE MISCHUNG NICHT GEÄNDERT| +LIST MIX MODIFIED|LISTE MISCHUNG ÄNDERTE| +You cannot delete the last list_id entry from a list mix|Sie können nicht die letzte list_id Eintragung aus einer ListeMischung löschen| +LIST MIX ADDED: |LISTE MISCHUNG ADDIERT:| +LIST MIX NOT ADDED |LISTE MISCHUNG NICHT ADDIERT| +There is already a list mix with this ID in the system|Es gibt bereits eine Liste Mischung mit dieser Identifikation imSystem| +LIST MIX NOT DELETED|LISTE MISCHUNG NICHT GELÖSCHT| +LIST MIX DELETED: |LISTE MISCHUNG LÖSCHTE:| +SET TO ACTIVE|STELLEN SIE AUF AKTIVES EIN| +LIST MIX NOT ACTIVATED|LISTE MISCHUNG NICHT AKTIVIERT| +LIST MIX ACTIVATED|LISTE MISCHUNG AKTIVIERTE| +Enable Agent Transfer Logfile -<\/B> This option will log to a text logfile on the webserver every time a call is transferred to an agent. Default is 0, disabled|Ermöglichen Sie Vertreter-Übergangsprotokolldatei - diese Wahlprotokolliert in einer Textprotokolldatei auf dem webserver, jedesmalwenn ein Anruf auf ein Mittel gebracht wird. Rückstellung ist 0,gesperrt| +Enable Agent Transfer Logfile|Ermöglichen Sie Vertreter-Übergangsprotokolldatei| +Call Time -<\/B> This is the call time scheme to use for this inbound group. Keep in mind that the time is based on the server time. Default is 24hours|Anruf-Zeit - dieses ist der für diese inbound Gruppe zu verwendenAnrufzeitentwurf. Halten Sie im Verstand, daß die Zeit auf derBedienerzeit basiert. Rückstellung ist 24hours| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field. Default is MESSAGE|Nach Stunden Tätigkeit - die Tätigkeit zum durchzuführen, wenn sienach Stunden ist, wie in der Anrufzeit für diese inbound Gruppedefiniert. HÄNGEZUSTAND-Willenssofort Hängezustand der Anruf,MESSASGE spielt die Akte in nach Stunden Anzeige Filenamauffangen, schickt VERLÄNGERUNG den Anruf zu nach StundenVerlängerung im dialplan und VOICEMAIL schickt den Anruf zumvoicemail Kasten, der in nach Stunden Voicemail verzeichnet wird,auffangen. Rückstellung ist ANZEIGE| +After Hours Message Filename -<\/B> The audio file located on the server to be played if the Action is set to MESSAGE. Default is vm-goodbye|Nach Stunden Anzeige Dateinamen - die Audioakte gelegen auf demgespielt zu werden Bediener, wenn die Tätigkeit auf ANZEIGEeingestellt wird. Rückstellung ist VM-Auf Wiedersehen| +After Hours Extension -<\/B> The dialplan extension to send the call to if the Action is set to EXTENSION. Default is 8300|Nach Stunden Verlängerung - die dialplan Verlängerung, zum desAnrufs zu senden, wenn die Tätigkeit auf VERLÄNGERUNG eingestelltwird. Rückstellung ist 8300| +After Hours Voicemail -<\/B> The voicemail box to send the call to if the Action is set to VOICEMAIL|Nach Stunden Voicemail - der voicemail Kasten, zum des Anrufs zusenden, wenn die Tätigkeit auf VOICEMAIL eingestellt wird| +Welcome Message Filename -<\/B> The audio file located on the server to be played when the call comes in. If set to ---NONE--- then no message will be played. Default is ---NONE---|Willkommener Anzeige Dateiname - die Audioakte gelegen auf demgespielt zu werden Bediener, wenn der Anruf hereinkommt. Wenn Satz zu---NONE --- dann wird keine Anzeige gespielt. Rückstellung ist---NONE ---| +Music On Hold Context -<\/B> The music on hold context to use when the customer is placed on hold. Default is default|Musik auf Einfluß-Kontext - die Musik auf dem Einflußkontext, zum zuverwenden, wann der Kunde auf Einfluß gesetzt wird. Rückstellung istRückstellung| +On Hold Prompt Filename -<\/B> The audio file located on the server to be played at a regular interval when the customer is on hold. Default is generic_hold. This audio file MUST be 9 seconds or less in length.|Auf Einfluß-Aufforderung Dateinamen - die Audioakte gelegen auf demin einem regelmäßigen Abstand gespielt zu werden Bediener, wenn derKunde auf Einfluß ist. Rückstellung ist generic_hold. DieseAudioakte MUSS 9 Sekunden oder kleiner in der Länge sein.| +On Hold Prompt Interval -<\/B> The length of time in seconds to wait before playing the on hold prompt. Default is 60|Auf Einfluß-Aufforderung Abstand - die Zeitspanne in den Sekunden, zuwarten, bevor an die haltenaufforderung gespielt wird. Rückstellungist 60| +Agent Alert Extension -<\/B> The extension to send into the agent session to announce that a call is coming to the agent. This extension should have a Playback of an audio file. To not use this function set this to X. Default is X|Mittel-Alarmverlängerung - die, um zu verkünden, daß in denVertreterlernabschnitt zu senden Verlängerung, ein Anruf zum Mittelkommt. Diese Verlängerung sollte ein Playback einer Audioakte haben.Diese Funktion nicht zu verwenden stellte dieses auf X. Default ist Xein| +Agent Alert Delay -<\/B> The length of time in milliseconds to wait before sending the call to the agent after playing the on Agent Alert Extension. Default is 1000|Mittel-Alarm verzögert - die Zeitspanne in den Millisekunden, zuwarten, bevor er den Anruf zum Mittel schickt, nachdem er an dieMittel-Alarmverlängerung gespielt hat. Rückstellung ist 1000| +Call Time: |Anruf-Zeit:| +After Hours Action: |Nach Stunden Tätigkeit:| +After Hours Message Filename: |Nach Stunden Anzeige Dateinamen:| +After Hours Extension: |Nach Stunden Verlängerung:| +After Hours Voicemail: |Nach Stunden Voicemail:| +Welcome Message Filename: |Willkommener Anzeige Dateiname:| +Music On Hold Context: |Musik Auf Einfluß-Kontext:| +On Hold Prompt Filename: |Auf Einfluß-Aufforderung Dateinamen:| +On Hold Prompt Interval: |Auf Einfluß-Aufforderung Abstand:| +Agent Alert Extension: |Mittel-Alarmverlängerung:| +Agent Alert Delay: |Mittel-Alarm Verzögert:| +You will also be able to set the rank, or skill level, in this section for each of the inbound groups as well as being able to see the number of calls received from each inbound group for this specific agent|SieSIND auch in der Lage, den Rank oder Fähigkeit Niveaueinzustellen, in diesem Abschnitt für jede der inbound Gruppen sowieIn der LageSEIN, die Zahl den Anrufen zu sehen, die von jeder inboundGruppe für dieses spezifische Mittel empfangen werden| +Allow Inbound and Blended -<\/B> This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N|Erlauben Sie Inbound und gemischt - dieses ist, wo Sie einstellenkönnen, ob die Benutzer dieser Kampagne die Wahl haben, zum von voninbound Anrufen mit dieser Kampagne zu nehmen. Wenn Sie gemischtesinbound und outbound tun möchten dann, muß dieses auf Y eingestelltwerden. Wenn Sie nur das outbound Wählen auf dieser Kampagne tunmöchten einstellten dieses auf N. Default sind N| +Allow Inbound and Blended: |Erlauben Sie Inbound und gemischt:| +Manual Dial List ID -<\/B> The default list_id to be used when an agent placces a manual call and a new lead record is created in vicidial_list. Default is 999. This field can contain digits only|Manuelle Vorwahlknopf-Liste Identifikation - das verwendet zu werdenRückstellung list_id, wenn ein Mittel placces ein manueller Anruf undeine neue Leitung Aufzeichnung im vicidial_list verursacht wird.Rückstellung ist 999. Dieses fangen kann nur Stellenenthalten auf| +Manual Dial List ID: |Manuelle Vorwahlknopf-Liste Identifikation:| +inbound_group_rank: orders by the rank given to the agent for the specific inbound group. Highest to Lowest|inbound_group_rank: Aufträge durch den Rank gegeben zum Mittel fürdie spezifische inbound Gruppe. Stark zu am niedrigsten| +fewest_calls: orders by the number of calls received by an agent for that specific inbound group. Least calls first|fewest_calls: Aufträge durch die Zahl den Anrufen empfangen durch einMittel für diese spezifische inbound Gruppe. Wenige Anrufe zuerst| +Campaign Ranks: |Kampagne Rank:| +AGENT RANKS FOR THIS CAMPAIGN:|MITTEL-RANK FÜR DIESE KAMPAGNE:| +Copy Campaign|Copy Kampagne| +COPY A CAMPAIGN|Copy Eine KAMPAGNE| +Source Campaign: |Quellkampagne:| +New Copied Campaign Addition|Neue Kopierte Kampagne Hinzufügung| +Copy In-Group|Copy In-Gruppe| +New Copied In-Group Addition|Neue Kopierte In-Gruppe Hinzufügung| +Copy User|Copy Benutzer| +New Copied User Addition|Neue Kopierte Benutzer-Hinzufügung| +COPY USER|COPY BENUTZER| +Copy In-Group|Copy In-Gruppe| +COPY INBOUND GROUP|COPY INBOUND GRUPPE| +campaign_rank: orders by the rank given to the agent for the campaign. Highest to Lowest|campaign_rank: Aufträge durch den Rank gegeben zum Mittel für dieKampagne. Stark zu am niedrigsten| +Default Transfer Group -<\/B> This field is the default In-Group that will be automatically selected when the agent goes to the transfer-conference frame in their agent interface|Rückstellung Übergangsgruppe - dieses fangen ist dieRückstellung In-Gruppe auf, die automatisch vorgewählt wird, wenndas Mittel zum Bringenkonferenz Rahmen in ihrer Mittelschnittstellegeht| +Default Transfer Group: |Rückstellung Übergangsgruppe:| +Allowed Transfer Groups: |Gewährte Übergangsgruppen:| +Allowed Transfer Groups -<\/B> With these checkbox listings you can select the groups that agents in this campaign can transfer calls to. Allow Closers must be enabled for this option to show up|Gewährte Übergangsgruppen - mit diesen checkbox Auflistungen könnenSie die Gruppen vorwählen, denen Mittel in dieser Kampagne bringenkönnen Anrufe zu. Erlauben Sie Closers muß ermöglicht werden, damitdiese Wahl oben darstellt| +Campaign Ranks -<\/B> In this section you can define the rank an agent will have for each campaign. These ranks can be used to allow for preferred call routing when Next Agent Call is set to campaign_rank|Kampagne ordnet - in diesem Abschnitt können Sie den Rank definieren,den ein Mittel für jede Kampagne hat. Diese Rank können gewohntSEIN,bevorzugte Anrufwegewahl zuzulassen, wenn folgender Vertreter-Anrufauf campaign_rank eingestellt wird| +Also in this section is the ability to give the agent a rank for each inbound group. These ranks can be used for preferred call routing when that option is selected in the in-group screen|Auch in diesem Abschnitt ist die Fähigkeit, dem Mittel einen Rankfür jede inbound Gruppe zu geben. Diese Rank können für bevorzugteAnrufwegewahl verwendet werden, wenn diese Wahl auf dem IngruppeSchirm vorgewählt wird| +### START translations for 2.0.5 release ### +QC Enabled -<\/B> This option allows the user to log in to the Quality Control agent screen|QC aktiv - Diese Option ermöglicht es dem Benutzer, um sich in der Quality Control Agent-Bildschirm| +QC User Level -<\/B> This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section|QC-User Level - Diese Einstellung legt fest, was die Qualität der User-Agent ist. Dies wird diktieren der Ebene der Funktionalität für den Agenten in der QC-Abschnitt| +QC Record Pass -<\/B> This option allows the agent to specify that a record has passed the first round of QC after reviewing the record|QC-Datensatz Pass - Diese Option ermöglicht es dem Agenten, um anzugeben, dass ein Datensatz hat die erste Runde der QC nach Überprüfung der Aufnahme| +QC Record Finish -<\/B> This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record|QC-Datensatz Finish - Diese Option ermöglicht es dem Agenten, um anzugeben, dass eine Aufzeichnung beendet ist die zweite Runde der QC nach Überprüfung durch die Aufnahme| +QC Record Commit -<\/B> This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone|QC-Datensatz Commit - Diese Option ermöglicht es dem Agenten festlegen, dass ein Datensatz wurde, die in QC. Es kann nicht mehr geändert werden, indem man| +QC Allowed Campaigns -<\/B> This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system|QC erlaubt Kampagnen - Dies ist eine Liste der wählbaren Kampagnen, die Mitglieder dieser Gruppe in der Lage, QC. Die ALL-KAMPAGNEN Option ermöglicht es dem Benutzer in dieser Gruppe, QC einer Kampagne auf dem System| +QC Allowed Inbound Groups -<\/B> This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system|QC erlaubt Inbound Groups - Dies ist eine Liste der wählbaren Eingang Gruppen, die Mitglieder dieser Gruppe in der Lage, QC. Die ALL-GRUPPEN Option ermöglicht es dem Benutzer in dieser Benutzergruppe zu QC jede eingehende Gruppe über das System| +QC Enabled: |QC aktiv:| +QC User Level: |QC-User Level:| +QC Pass: |QC-Pass:| +QC Finish: |QC-Finish:| +QC Commit: |QC-Commit:| +Modify Nothing|Nichts ändern| +Modify Nothing Except Status|Ändern Sie nichts außer Status| +Modify All Fields|Ändern Sie alle Felder| +Verify First Round of QC|Überprüfen ersten QC| +View QC Statistics|QC Statistiken anzeigen| +Ability to Modify FINISHed records|Möglichkeit, Aufzeichnungen FINISHED| +Manager Level|Manager Level| +USERS CAN VIEW ANY CAMPAIGN|Benutzer können einer Kampagne| +USERS CAN QC ANY CAMPAIGN|Benutzer können alle Kampagnen, QC| +USERS CAN QC ANY INBOUND GROUP|Benutzer können QC JEDENFALLS INBOUND GROUP| +QC Allowed Campaigns: |QC erlaubt Kampagnen:| +QC Allowed Inbound Groups: |QC erlaubt Inbound Gruppen:| +Queue Priority -<\/B> This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode|Queue-Priorität - Diese Einstellung wird verwendet, um die Reihenfolge, in der die Anrufe von diesem ausgehende Kampagne zu beantworten in Bezug auf die eingehenden Anrufe, wenn diese Kampagne ist in Blended-Modus| +Queue Priority: |Queue-Priorität:| +Drop Action: |Drop-Aktion:| +Drop Transfer Group: |Drop-Transfer-Gruppe:| +Drop Action -<\/B> This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below|Drop-Aktion - Mit diesem Menü können Sie wählen, was passiert, wenn er einen Anruf wartet seit mehr als das, was ist in der Drop-Call Sekunden ein. HANGUP einfach auflegen, das Gespräch, MESSAGE wird die Forderung der Drop-Erweiterung, die Sie definiert haben, unten, Voicemail wird der Anruf an die Voicemail-Box, die Sie definiert haben, und unter IN_GROUP wird der Aufruf an die Inbound-Gruppe, die weiter unten definiert ist| +Drop Exten -<\/B> If Drop Action is set to MESSAGE, this is the dial plan extension that the call will be sent to if it reaches Drop Call Seconds|Drop-Erweiterung - Wenn Drop-Aktion ist auf MESSAGE Dies ist der Plan wählen, dass sich die Aufforderung an, wenn sie erreicht Drop Call Sekunden| +Drop Call Seconds -<\/B> The number of seconds a call will stay in queue before being considered a DROP|Drop Call Sekunden - Die Anzahl der Sekunden eines Gesprächs bleibt in der Warteschlange, bevor sie als DROP| +Drop Transfer Group -<\/B> If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds|Drop-Transfer-Fraktion - Wenn Drop-Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie erreicht Drop Call Sekunden| +QC SETTINGS FOR THIS CAMPAIGN|QK-EINSTELLUNGEN für diese Kampagne| +QC Enabled: |QC aktiv:| +QC Statuses: |QK-Status:| +Modify Campaign QC Settings|Ändern Kampagne QC Einstellungen| +QC Enabled -<\/B> Setting this field to Y allows for the agent Quality Control features to work. Default is N|QC aktiv - Wenn Sie diesen Bereich auf Y-Agent ermöglicht die Quality Control Funktionen zur Verfügung stehen. Der Standardwert ist N| +QC Statuses -<\/B> This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review|QC-Status - Dieser Bereich ist, in dem Sie auswählen, welche Zustände führt sollte weg von der QC-System. Aktivieren Sie das Kontrollkästchen neben den Status, die Sie wollen, QC, zu überprüfen| +QC SETTINGS NOT MODIFIED|QK-EINSTELLUNGEN NICHT MODIFIZIERT| +QC SETTINGS MODIFIED|QK-EINSTELLUNGEN MODIFIZIERT| +QC WebForm Address -<\/B> This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen|QC WebForm Adresse - Dies ist die Website-Adresse, dass ein QC Agenten können sich an, wenn Sie auf den Link WebForm in der QC-Bildschirm| +QC Script -<\/B> This is the script that can be used by QC agents in the SCRIPT tab in the QC screen|QC-Script - Das ist das Skript, das verwendet werden kann, indem QC Agenten in den SCRIPT Registerkarte in der QC-Bildschirm| +QC WebForm: |QC-Webformular:| +QC Script|QC-Script| +In-Group Recording Override -<\/B> This field allows for the overriding of the campaign call recording setting. This setting can be overridden by the vicidial_user recording override setting. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording|In-Group-Aufnahme Override - Dieses Feld ermöglicht die zwingende der Kampagne rufen die Aufnahme-Einstellung. Diese Einstellung kann über die Aufnahme überschreiben vicidial_user Einstellung. Behinderte nicht überschreiben die Kampagne die Aufnahme-Einstellung. NIEMALS deaktiviert Aufnahme auf dem Client. OnDemand ist der Standard und ermöglicht es dem Agenten zu starten und stoppen Sie die Aufnahme wie gewünscht. ALLCALLS Starten der Aufnahme wird auf dem Client, wenn ein Anruf an einen Agenten. ALLFORCE Starten der Aufnahme wird auf dem Client, wenn ein Anruf an einen Agenten, die der Agent keine Option um die Aufnahme zu stoppen| +In-Group Recording Filename -<\/B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE|In-Group-Aufnahme Dateiname - Mit diesem Feld werden die Aufnahme der Kampagne Dateibenennungsschemata Regelung, es sei denn, es ist auf Keine eingestellt. Die Variablen sind erlaubt KAMPAGNE CUSTPHONE FullDate TINYDATE EPOCH AGENT. Der Standardwert ist FULLDATE_AGENT und würde so aussehen 20051020-103108_6666. Ein weiteres Beispiel ist CAMPAIGN_TINYDATE_CUSTPHONE, die wie folgt aussehen TESTCAMP_51020103108_3125551212. 50 Zeichen max. Der Standardwert ist KEINE| +In-Group Recording Override: |In-Group-Aufnahme AllowOverride:| +In-Group Recording Filename: |In-Group-Aufnahme Dateiname:| +ADDING VICIDIAL QC STATUS CODE|HINZUFÜGEN VICIDIAL QC-Statuscode| +MODIFY VICIDIAL QC STATUS CODE|MODIFY VICIDIAL QC-Statuscode| +VICIDIAL QC STATUS CODES|VICIDIAL QC-Status-Codes| +The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length.|Das Quality Control QC-System innerhalb VICIDIAL hat seinen eigenen Satz der Status-Codes, getrennt von denen der Call-Handling Funktionen der VICIDIAL. QC statuse Codes muss zwischen 2 und 8 Zeichen lang sein und keine Sonderzeichen wie Leerzeichen oder Doppelpunkt. Die QK-Status-Code Beschreibung muss zwischen 2 und 30 Zeichen lang sein.| + QC Status Codes |QK-Status-Codes| +VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM: |VICIDIAL QC-Status-Codes mit Hilfe dieses Systems:| +ADD NEW QC STATUS CODE|Neue QC-Statuscode| +QC STATUS CODE NOT DELETED|QC-Statuscode nicht gelöscht| +QC STATUS CODE DELETED: |QC-Statuscode gestrichen:| +QC STATUS CODE NOT MODIFIED |QK-Status-Code nicht geändert| +QC STATUS CODE MODIFIED: |QK-Status-Code geändert:| +the qc status code needs to be at least 1 characters in length|qc der Status-Code muss mindestens 1 Zeichen lang sein| +the qc status code name needs to be at least 1 characters in length|qc Status der Code-Name muss mindestens 1 Zeichen lang sein| +QC STATUS CODE NOT ADDED |QK-Status-Code nicht ADDED| +there is already a qc status code in the system with this name:|Es gibt bereits eine qc Status Code in das System mit diesem Namen:| +QC STATUS CODE ADDED: |QK-Status-Code hinzuzufügen:| +code must be between 1 and 8 characters in length|Code muss zwischen 1 und 8 Zeichen lang sein| +code name must be between 2 and 30 characters in length|Code-Name muss zwischen 2 und 30 Zeichen lang sein| +CALL HANGUP REASON STATS|CALL HANGUP GRUND STATS| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field, IN_GROUP will send the call to the inbound group selected in the After Hours Transfer Group select list. Default is MESSAGE|After Hours Aktion - Die Aktion durchführen, wenn sie nach Stunden wie in der Ausschreibung für diesen eingehenden Gruppe. HANGUP sofort hangup den Anruf, MESSASGE wird die Datei im After Hours Nachricht Filenam Bereich, AUSDEHNUNG wird die Aufforderung an die After Hours-Erweiterung in der dialplan und Voicemail wird der Anruf an die Voicemail-Box, die in den Bereich After Hours Voicemail , IN_GROUP wird die Aufforderung an die Inbound-Gruppe in der After Hours Transfer-Gruppe Wählen Sie Liste. Der Standardwert ist MESSAGE| +After Hours Transfer Group -<\/B> If After Hours Action is set to IN_GROUP, the call will be sent to this inbound group if it enters the in-group outside of the call time scheme defined for the in-group|After Hours Transfer Group - , wenn After Hours Aktion ist auf IN_GROUP, wird der Anruf wird an die Inbound-Gruppe, wenn sie die in der Gruppe außerhalb der Aufforderung zur Einreichung von Zeitplanung für die in-group| +After Hours Transfer Group: |After Hours Transfer-Gruppe:| +Total calls taken in to this In-Group:|Insgesamt fordert die in dieser In-Group:| +CALL HOLD TIME BREAKDOWN IN SECONDS|CALL HALTEZEIT AUFTEILUNG IN SEKUNDEN| +Date Range:|Zeitraum:| +ADDING NEW PHONE ALIAS|Neue TEL ALIAS| +ADD NEW PHONE ALIAS|ADD NEW TEL ALIAS| +MODIFY PHONE ALIAS|MODIFY TEL ALIAS| +DELETE PHONE ALIAS|DELETE PHONE ALIAS| +PHONE ALIAS LIST|TEL ALIAS LISTE| +Phone Alias List|Telefon Alias Liste| +Add A New Phone Alias|Hinzufügen einer neuen Telefon Alias| +ADD A NEW PHONE ALIAS|Hinzufügen einer neuen TEL ALIAS| +Alias ID: |Alias-ID:| +Alias Name: |Alias-Name:| +Phone Logins List: |Telefon Logins Liste:| +PHONE ALIAS NOT ADDED|TEL ALIAS NOT ADDED| +there is already a Phone Alias in the system with this ID|Es gibt bereits eine Telefon-Alias in das System mit dieser ID| +there is already a Phone Login in the system with this ID|Es gibt bereits eine Telefon-Login in das System mit dieser ID| +PHONE ALIAS ADDED|TEL ALIAS ADDED| +PHONE ALIAS NOT MODIFIED|TEL ALIAS NICHT MODIFIZIERT| +PHONE ALIAS MODIFIED|TEL ALIAS VERÄNDERTE| +PHONE ALIAS NOT DELETED|TEL ALIAS nicht gelöscht| +PHONE ALIAS DELETION CONFIRMATION|TEL ALIAS STREICHUNG BESTÄTIGUNG| +Click here to delete phone alias|Klicken Sie hier, um zu löschen Telefon Alias| +PHONE ALIAS DELETION COMPLETED|TEL ALIAS STREICHUNG COMPLETED| +PHONE ALIAS LISTINGS|TEL ALIAS LISTINGS| +there is already a Phone alias in the system with this login|Es gibt bereits eine Telefon-Alias in das System mit diesem Login| +there is already a Phone in the system with this login|Es gibt bereits eine Telefonnummer in das System mit diesem Login| +DELETE THIS PHONE ALIAS|DELETE Dieses Telefon ALIAS| +MODIFY A PHONE ALIAS RECORD|MODIFY A Telefon ALIAS RECORD| +Alias ID -<\/B> The ID of the alias used to allow for phone load balanced logins. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Alias-ID - Die ID des Alias verwendet, um für Telefon-Lastenausgleich Logins. keine Leerzeichen oder andere Sonderzeichen erlaubt. Muss zwischen 2 und 20 Zeichen lang sein| +Alias Name -<\/B> The name used to describe a phones alias, Must be between 2 and 50 characters in length|Alias-Name - Der Name für die Bezeichnung eines Handys Alias, muss zwischen 2 und 50 Zeichen lang sein| +Phones Logins List -<\/B> The comma separated list of phone logins used when an agent logs in using phone load balanced logins. The Agent application will find the active server with the fewest agents logged into it and place a call from that server to the agent upon login|Telefone Logins List - Das Komma getrennt Liste der Telefonnummern Logins verwendet, wenn ein Agent meldet sich mit Telefon Lastenausgleich Logins. Der Agent-Anwendung finden Sie die Active Server mit den wenigsten Makler eingeloggt ist und ein Anruf aus, dass der Server-Agent bei der Anmeldung| +PHONES WITHIN THIS PHONES ALIAS|PHONES IN DIESER PHONES ALIAS| +Add New Shift|Add New Shift| +New Shift Addition|Neue Shift Zusatz| +Modify Shift|Ändern Shift| +Delete Shift|Löschen Shift| +Shifts|Verschiebungen| +Shift ID -<\/B> This is the short name of a Vicidial Shift Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 20 characters, minimum of 2 characters|Shift-ID - Das ist der kurze Name der Vicidial Shift Definition. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder Satzzeichen für dieses Feld. max 20 Zeichen, mindestens 2-Zeichen| +Shift Name -<\/B> This is a more descriptive name of the Shift Definition. This is a short summary of the Shift definition. max 50 characters, minimum of 2 characters|Shift Name - Dies ist eine beschreibende Bezeichnung der Shift Definition. Dies ist eine kurze Zusammenfassung der Shift Definition. max 50 Zeichen, mindestens 2-Zeichen| +Shift Start Time -<\/B> This is the time that the campaign shift begins. Must only be numbers, 9:30 AM would be 0930 and 5:00 PM would be 1700|Start Time Shift - Es ist an der Zeit, dass die Kampagne Schicht beginnt. Darf nur Zahlen, 9:30 AM wäre 0930 und 5:00 PM wäre 1700| +Shift Length -<\/B> This is the time in Hours and Minutes that the campaign shift lasts. 8 hours would be 08:00 and 7 hours and 30 minutes would be 07:30|Shift Länge - Das ist die Zeit in Stunden und Minuten, dass die Kampagne Schicht dauert. 8 Stunden wäre 08:00 Uhr und 7 Stunden und 30 Minuten würde 07:30| +Shift Weekdays -<\/B> In this section you should choose the days of the week that this shift is active|Shift Wochentage - In diesem Abschnitt sollten Sie die Tage der Woche, dass diese Verschiebung ist aktiv| +Show Shifts|Show Verschiebungen| +Add A New Shift|Fügen Sie eine neue Schicht| +Shift ID: |Shift-ID:| +Shift Name: |Shift Name:| +Shift Start Time: |Start Time Shift:| +Shift End Time: |Shift End Time:| +SHIFT DEFINITION NOT ADDED|UMSCHALT DEFINITION NICHT HINZUGEFÜGT| +there is already a shift entry with this ID|Es gibt bereits eine Verschiebung Eintrag mit dieser ID| +Shift ID and name must be at least 2 characters in length|Shift-ID und Name muss mindestens 2 Zeichen lang sein| +Shift Start Time must be 4 digits in length and be a valid time|Start Time Shift muss aus 4 Ziffern in der Länge und eine gültige Uhrzeit| +Shift Length must be 5 characters in length and be 24 hours or less|Shift Länge muss mindestens 5 Zeichen lang sein und 24 Stunden oder weniger| +SHIFT ADDED: |UMSCHALT ANGEFÜGT:| +MODIFY A SHIFT|MODIFY A SHIFT| +USER GROUPS USING THIS SHIFT:|USER-Gruppen, die diese Verschiebung:| +DELETE THIS SHIFT DEFINITION|DELETE Diese Verschiebung DEFINITION| +MODIFY A SHIFT|MODIFY A SHIFT| +SHIFT NOT DELETED|UMSCHALT nicht gelöscht| +SHIFT DELETION CONFIRMATION: |UMSCHALT STREICHUNG Bestätigung:| +Click here to delete shift|Klicken Sie hier, um zu löschen Verschiebung| +SHIFT DELETION COMPLETED:|UMSCHALT STREICHUNG fertig gestellt:| +SHIFT MODIFIED|UMSCHALT VERÄNDERTE| +SHIFT LISTINGS:|UMSCHALT LISTINGS:| +Shift Weekdays: |Shift der Woche:| +Sunday|Sonntag| +Monday|Montag| +Tuesday|Dienstag| +Wednesday|Mittwoch| +Thursday|Donnerstag| +Friday|Freitag| +Saturday|Samstag| +Group Shifts: |Gruppe Verschiebungen:| +Group Shifts -<\/B> This is a selectable list of shifts that can restrict the agents login time on the system|Gruppe Verschiebungen - Dies ist eine Liste der wählbaren Schichten, die sich die Agenten anmelden, Zeit auf dem System| + Timeclock|Timeclock| +Timeclock End Of Day -<\/B> This setting defines when all users are to be auto logged out of the timeclock system. Only runs once a day. must be only 4 digits 2 digit hour and 2 digit minutes in 24 hour time. Default is 0000|Timeclock End of Day - Diese Einstellung legt fest, wenn alle Benutzer werden automatisch abgemeldet der timeclock System. Läuft nur einmal pro Tag. darf nur 4 Ziffern 2 Digit Stunden und 2 Minuten in Ziffer 24 Stunden Zeit. Standard ist 0000| +Timeclock Last Auto Logout -<\/B> This field displays the date of the last auto-logout|Letzte Timeclock Auto Logout - Dieses Feld zeigt das Datum der letzten Auto-logout| +Timeclock Last Auto Logout: |Letzte Timeclock Auto Logout:| +Timeclock End Of Day: |Timeclock End-of-Day:| +SURVEY SETTINGS FOR THIS CAMPAIGN:|UMFRAGE EINSTELLUNGEN für diese Kampagne:| +Modify Campaign Survey|Ändern Sie den Kampagnen| +Survey First Audio File -<\/B> This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign.|Umfrage Erste Audio-Datei - Dies ist der Audio-Datei, die gespielt wird, sobald der Kunde nimmt das Telefon, wenn Sie eine Umfrage Kampagne.| +Survey DTMF Digits -<\/B> This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are |Umfrage DTMF Digits - Dieses Feld ist, in dem Sie die Zahlen, dass ein Kunde kann Presse als eine Option auf eine Umfrage-Kampagne. gültig von DTMF-Ziffern sind| +Survey Not Interested Digit -<\/B> This field is where you define the customer digit pressed that will show they are Not Interested.|Umfrage nicht interessiert Digit - Dieses Feld ist, wo Sie den Kunden Ziffer gedrückt wird, dass sie nicht daran interessiert sind.| +Survey Not Interested Status -<\/B> This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list.|Umfrage nicht interessiert Status - Dieses Feld ist, wo Sie den Status, der für die nicht interessiert. Wenn DNC verwendet wird und die Kampagne für die Verwendung DNC dann die Telefonnummer wird automatisch auf die interne VICIDIAL DNC Liste.| +Survey Opt-in Audio File -<\/B> This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken.|Umfrage Opt-in Audio-Datei - Dies ist der Audio-Datei, die gespielt wird, wenn der Kunde hat sich bei der Erhebung, sich nicht-oder nicht reagiert, wenn die Nicht-Antwort-Aktion ist auf OptOut. Nach dieser Audio-Datei gespielt wird, die Umfrage-Methode Maßnahmen ergriffen werden.| +Survey Not Interested Audio File -<\/B> This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up|Umfrage nicht interessiert Audio Datei - Dies ist der Audio-Datei, die gespielt wird, wenn der Kunde hat sich aus der Umfrage, nicht Opt-in ist oder nicht reagiert, wenn die Nicht-Antwort-Aktion ist auf OptIn. Nach dieser Audio-Datei gespielt wird, wird der Anruf wird dann| +Survey Method -<\/B> This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory.|Umfrage-Methode - Diese Option legt fest, was geschieht, auf eine Ausschreibung nach den Kunden hat sich in. AGENT_XFER wird der Anruf an den nächsten verfügbaren Agenten. VOICEMAIL wird der Anruf an die Voicemail-Box, die in den Bereich Voicemail. AUSDEHNUNG wird der Kunde auf die Ausdehnung der Definition in der Umfrage XFER Erweiterung Bereich. HANGUP hängt die Kunden. CAMPREC_60_WAV wird der Kunde auf eine Aufnahme, die mit ihrer Antwort, diese Aufnahme wird in einem Ordner mit dem Namen, wie sich die Kampagne innerhalb der Umfrage Kampagne Aufnahme Directory.| +Survey No-Response Action -<\/B> This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit.|Umfrage Nr.-Response Action - Hier wird definiert, was passieren wird, wenn es keine Reaktion auf die Umfrage Frage. OptIn wird nur dann den Aufruf an die an der Umfrage-Methode, wenn der Kunde Pressen eine DTMF-Ziffern. OptOut wird der Kunde auf die Umfrage-Methode, auch wenn sie nicht drücken Sie eine DTMF-Ziffern.| +Survey Response Digit Map -<\/B> This is the section where you can define a description to go with each dtmf digit option that the customer may select.|Antworten Digit Karte - Das ist der Abschnitt, in dem Sie eine Beschreibung zu jedem DTMF-Ziffern Option, dass der Kunde auswählen kann.| +Survey Xfer Extension -<\/B> If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension|Umfrage XFER Extension - , wenn die Methode der Erhebung AUSDEHNUNG ausgewählt ist dann der Kunde Aufruf richten Sie bitte an dieser dialplan Erweiterung| +Survey Campaign Recording Directory -<\/B> If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory.|Umfrage Kampagne Aufnahme der Dienststellen - , wenn die Methode der Erhebung CAMPREC_60_WAV ausgewählt ist dann der Kunde Reaktion wird erfasst und in ein Verzeichnis mit dem Namen nach der Kampagne innerhalb dieses Verzeichnisses.| +SURVEY SETTINGS NOT MODIFIED|UMFRAGE EINSTELLUNGEN NICHT MODIFIZIERT| +SURVEY SETTINGS MODIFIED|UMFRAGE EINSTELLUNGEN MODIFIZIERT| +Survey First Audio File|Umfrage Erste Audio-Datei| +Survey DTMF Digits|Umfrage DTMF Digits| +Survey Not Interested Digit|Umfrage nicht interessiert Digit| +Survey Not Interested Status|Umfrage kein Interesse Status| +Survey Opt-in Audio File|Umfrage Opt-in Audio-Datei| +Survey Not Interested Audio File|Umfrage nicht interessiert Audio-Datei| +Survey Method|Umfrage-Methode| +Survey No-Response Action|Umfrage Nr. Response-Aktion| +Survey Response Digit Map|Antworten Digit Karte| +Survey Xfer Extension|Umfrage XFER Erweiterung| +Survey Campaign Recording Directory|Umfrage Kampagne Aufnahme Directory| +Add Timeclock Log Record -<\/B> This option allows the user to add records to the timeclock log|Add Timeclock Log Record - Diese Option ermöglicht es dem Benutzer, um an das timeclock Log| +Modify Timeclock Log Record -<\/B> This option allows the user to modify records in the timeclock log|Ändern Timeclock Log Record - Diese Option ermöglicht es dem Benutzer zu ändern, Einträge in der Log-timeclock| +Delete Timeclock Log Record -<\/B> This option allows the user to delete records in the timeclock log|Löschen der Registrierung Timeclock Record - Diese Option ermöglicht es dem Benutzer zu löschen, Einträge in der Log-timeclock| +Add Timeclock Log Record|Add Timeclock Log Record| +Modify Timeclock Log Record|Ändern Timeclock Log Record| +Delete Timeclock Log Record|Löschen der Registrierung Timeclock Record| +USER GROUP TIMECLOCK STATUS REPORT|USER-GROUP TIMECLOCK DER BERICHT| +Click here to see the Timeclock Status for this user group|Klicken Sie hier, um zu sehen, die Timeclock Status für diese Gruppe| +ADD NUMBERS TO THE DNC LIST|ADD Nummern auf dem DNC-LISTE| +Phone Numbers: |Telefon-Nummern:| +one phone number per line only|einer Telefonnummer pro Zeile nur| +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 numbers to this list so that they will not be called by campaigns that use the internal DNC list|VICIDIAL DNC Liste - Diese Dont Call Liste enthält alle führen, die auf einen Status der DNC in das System. Durch die Listen - ADD Nummer DNC Seite können Sie manuell hinzufügen, Zahlen zu dieser Liste, so dass sie nicht durch Kampagnen, die die interne Liste DNC| + Time Sheet |Time Sheet| +Timeclock Record Edit|Timeclock Datensatz bearbeiten| +Default date format with year month day|Standard-Datum-Format Jahr Monat Tag| +USA date format with month day year|USA Datum-Format mit Monat Tag Jahr| +European date format with day month year|Europäische Datumsformat mit Tag Monat Jahr| +Text date format with abbreviated month day|Text-Format mit Datum abgekürzt Monat Tag| +followed by 24 hour time|gefolgt von 24-Stunden-Zeit| +followed by 12 hour time|gefolgt von 12-Stunden-Zeit| +Agent Screen Header Date Format -<\/B> This menu allows you to choose the format of the date that shows up at the top of the VICIDIAL agent screen. The options for this setting are: default is|Agent Screen Header Datum Format - Mit diesem Menü können Sie das Format des Datums, das zeigt sich an der Spitze der VICIDIAL Agent Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist| +Agent Screen Customer Date Format -<\/B> This menu allows you to choose the format of the customer time zone date that shows up at the top of the Customer Information section of the VICIDIAL agent screen. The options for this setting are: default is|Agent Screen Kunden Datum Format - Mit diesem Menü können Sie das Format des Kunden Zeitzone Datum, zeigt sich an der Spitze der Customer Information des VICIDIAL Agent Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist| +Agent Screen Customer Phone Format -<\/B> This menu allows you to choose the format of the customer phone number that shows up in the status section of the VICIDIAL agent screen. The options for this setting are: default is|Agent Screen Kunden Telefon Format - Mit diesem Menü können Sie das Format des Kunden Rufnummer, zeigt sich in den Status des Agenten VICIDIAL Bildschirm. Die Optionen für diese Einstellung sind: In der Voreinstellung ist| +dash separated phone number|Bindestrich getrennt Telefonnummer| +dash separated number with area code in parenthesis|Bindestrich getrennt Nummer mit Vorwahl in Klammern| +No formatting|Keine Formatierung| +with space after city code|mit Leerzeichen nach Stadt-Code| +space separated phone number|Leerzeichen getrennt Telefonnummer| +Agent Screen Header Date Format|Agent-Header Datum Screen Format| +Agent Screen Customer Date Format|Agent Screen Kunden Datum Format| +Agent Screen Customer Phone Format|Agent Screen Kunden Telefon Format| +ERROR- There is a problem with the data that you entered, please go back|ERROR-Es gibt ein Problem mit den Daten, die Sie eingegeben haben, gehen Sie bitte zurück| +A timeclock session cannot overlap another timeclock session|Ein timeclock Tagung können sich nicht ein anderes timeclock Sitzung| +Disable Alter Customer Phone -<\/B> If set to Y, does not change the customer phone number when an agent dispositions the call. Default is Y|Deaktivieren Alter Customer Telefon - Bei der Einstellung Y, ändert nichts an den Kunden die Telefonnummer, wenn ein Agent Verfügungen den Anruf zu tätigen. Der Standardwert ist Y| +Agent API Access -<\/B> This option allows the account to be used with the vicidial agent API commands|Agent API-Zugang - Diese Option ermöglicht es, das Konto für die Verwendung mit der vicidial Agenten-API-Befehle| +Agent Alter Customer Phone Override -<\/B> This option will override whatever the option is in the campaign for altering of customer phone number. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer phone number, no matter what the campaign setting is. Default is NOT_ACTIVE|Agent Alter Kunden Telefon Override - Mit dieser Option werden die unabhängig von der Option ist in der Kampagne für die Änderung der Kunde die Rufnummer ein. NOT_ACTIVE wird unabhängig Einstellung ist für die Kampagne. ALLOW_ALTER wird immer für den Agenten, um die Kunden-Nummer, egal, was die Kampagne Einstellung. Der Standardwert ist NOT_ACTIVE| +Agent API Active -<\/B> If set to 1, this will allow the Agent API interface to function. Default is 0|Agent API Active - Wenn auf 1 gesetzt, wird die Agent-API-Schnittstelle zu funktionieren. Standard ist 0| +Agent Alter Customer Phone Override: |Agent Alter Kunden Telefon AllowOverride:| +Agent API Access: |Agent API-Zugang:| +Disable Alter Customer Phone: |Deaktivieren Alter Kunde Telefon:| +Agent API Active: |Agent API Active:| +Agent Display Queue Count -<\/B> If set to Y, when a customer is waiting for an agent, the Queue Calls display at the top of the agent screen will turn red and show the number of waiting calls. Default is Y|Agent Display Queue Count - Wenn Sie auf Y, wenn ein Kunde wartet auf einen Agenten, der Queue fordert Display oben auf der Agenten-Bildschirm wird rot und zeigen die Anzahl der wartenden Anrufe. Der Standardwert ist Y| +Agent Display Queue Count: |Agent Display Queue Count:| +agents in dead calls|Agenten in fordert Toten| +QC Last Pull Time: |QC Letzte Pull Zeit:| +and less than 43200 seconds or 12 hours|und weniger als 43.200 Sekunden oder 12 Stunden| +LEADS AT LIMIT|LEADS AT LIMIT| +Lead counts taken from active lists in the campaign only|Blei zählt, die aus dem aktiven Listen in der Kampagne nur| +QC Get Record Launch-<\/B> This allows one of the following actions to be triggered upon a QC agent receiving a new record|QC Get Record Launch- Auf diese Weise können Sie eine der folgenden Aktionen ausgelöst werden dürfte, auf einem QC Agenten erhalten einen neuen Rekord| +QC Show Recording -<\/B> This allows for a recording that may be linked with the QC record to be display in the QC agent screen|QC Show Recording - Auf diese Weise können für eine Aufnahme, die im Zusammenhang mit der QC-Datensatz werden in der QC-Agent-Bildschirm| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions|QC Shift - Das ist die Verlagerung Zeitrahmen für die Pull-QC-Datensätze für eine Kampagne. Die Tage der Woche sind nicht für diese Funktionen| +QC Get Record Launch|QC Get Record Launch| +QC Show Recording|QC Show-Aufnahme| +QC Shift|QC-Shift| +Inbound Group QC Settings|Inbound-Fraktion QC Einstellungen| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions|QC Shift - Das ist die Verlagerung Zeitrahmen für die Pull-QC-Datensätze für eine inbound_group. Die Tage der Woche sind nicht für diese Funktionen| +The Sale Category and Dead Lead Category are both used by the List Suggestion system when analyzing list statistics.|Der Verkauf Kategorie und Dead Lead Kategorie sind auch die von den US-Vorschlag, wenn die Analyse Liste Statistiken.| +Sale Category: |Verkauf Kategorie:| +Dead Lead Category: |Dead Lead Kategorie:| +Manual Dial Filter -<\/B> This allows you to filter the calls that agents make in manual dial mode for this campaign by any combination of the following: DNC - to kick out, CAMPAIGNLISTS - the number must be within the lists for the campaign, NONE - no filter on manual dial or fast dial lists|Manual Dial Filter - Auf diese Weise können Sie zum Filtern der Anrufe, die Agenten sind im manuellen Modus wählen Sie für diese Kampagne durch eine Kombination der folgenden: DNC - die Kick Out, CAMPAIGNLISTS - die Zahl muss innerhalb der Listen für die Kampagne KEINE - kein Filter auf manuelle Einwahl oder schnelle Einwahl Listen| +Manual Dial Filter: |Manual Dial Filter:| +Agent Screen Clipboard Copy -<\/B> THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer|Agent Screen Zwischenablage kopieren - Diese Funktion ist derzeit nur in die Lage für den Internet Explorer. Diese Funktion ermöglicht es Ihnen, wählen Sie einen Bereich, der kopiert werden an den Computer Zwischenablage des Maklers Computer auf einen Anruf wird an einen Agenten. Häufig verwendet für diese sind, damit für die einfache Einfügen von Kontonummern oder Telefonnummern in Legacy-Anwendungen auf dem Client-Agent-Computer| +Agent Screen Clipboard Copy|Agent Screen Zwischenablage kopieren| +EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record.|EXTENDED stellvertretenden Zahlen sind die Zahlen in das System außerhalb der Standard-Bildschirm führen. Mit Extended können Sie Hunderte von Telefonnummern für einen einzigen Kunden aufnehmen.| +Agent Screen Extended Alt Dial -<\/B> This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information|Agent Screen Erweiterte Alt Dial - Diese Funktion erlaubt es Agenten für den Zugriff auf erweiterte stellvertretenden Telefonnummern führt über die Standard-Telefon-und Alt Address3 Felder, die verwendet werden können in VICIDIAL für Telefonnummern außerhalb der Haupt-Telefonnummer. Die Ausdehnung Telefonnummern gewählt werden können automatisch über die Auto-Alt-Dial-Funktion in VICIDIAL Kampagne Einstellungen, aber die Aktivierung dieser Agent Screen-Funktion wird auch für den Agenten, um diese Zahlen aus ihrer Bevollmächtigten Bildschirm sowie Informationen zu bearbeiten| +Agent Screen Extended Alt Dial:|Agent Screen Erweiterte Alt Zifferblatt:| +Use Campaign DNC List -<\/B> This defines whether this campaign is to filter leads against a DNC list that is specific to that campaign only. If it is set to Y, the hopper will look for each phone number in the campaign-specific DNC list before placing it in the hopper. If it is in the campaign-specific DNC list then it will change that lead status to DNCC so it cannot be dialed. Default is N.|Verwenden Sie Kampagne DNC List - Diese legt fest, ob dieser Kampagne ist es, Filter führt gegen eine DNC-Liste, die sich speziell auf die Kampagne nur. Wenn es auf Y, der Trichter wird für jede Telefonnummer in der Kampagne-spezifische DNC-Liste, bevor sie in den Trichter. Wenn es in der Kampagne-spezifische DNC Liste, dann wird sich ändern, die Status DNCC, so kann er nicht gewählt werden. Der Standardwert ist N.| +Use Campaign DNC List|Verwenden Sie Kampagne DNC Liste| +and possibly the campaign-specific DNC list|und möglicherweise die Kampagne-spezifische DNC Liste| +There is also the option to add leads to the campaign-specific DNC lists for those campaigns that have them|Es besteht auch die Option, mit der Sie führt zu der Kampagne DNC-spezifische Listen für die Kampagnen, die sie| +NOTE: Copying a campaign will copy all settings from the master campaign you select, but it will not copy a campaign-specific DNC list if there was one on the selected master campaign|Hinweis: Das Kopieren einer Kampagne kopiert alle Einstellungen aus dem Master-Kampagne, die Sie wählen, aber es wird nicht kopiert eine Kampagne-spezifische DNC, wenn es eine auf dem ausgewählten Master-Kampagne| +Add New |Add New| +Copy |Kopieren| +New DID Addition|Neue DID-Zusatz| +New Copied DID Addition|Neue Copied DID-Zusatz| +Modify |Ändern| +Delete |Löschen| +Play Place in Line -<\/B> This defines whether the caller will hear their place in line when they enter the queue as well as when they hear the announcemend. Default is N|Jetzt in den Line - Diese legt fest, ob die Anrufer hören, ihren Platz in der Zeile, wenn sie in der Warteschlange als auch, wenn sie hören, die announcemend. Der Standardwert ist N| +Play Estimated Hold Time -<\/B> This defines whether the caller will hear the estimated hold time before they are transferred to an agent. Default is N|Jetzt Geschätzte Hold Time - Diese legt fest, ob die Anrufer hören, halten Sie die geschätzte Zeit, bevor sie übertragen werden, zu einem Makler. Der Standardwert ist N| +Hold Time Option -<\/B> This allows you to specify the routing of the call if the estimated hold time is over the amount of seconds specified below. Default is NONE|Hold Time Option - Auf diese Weise können Sie die Weiterleitung von den Anruf halten, wenn die geschätzte Zeit über dem Betrag von Sekunden aus. Der Standardwert ist KEINE| +Hold Time Option Seconds -<\/B> If Hold Time Option is set to anything but NONE, this is the number of seconds of estimated hold time that will trigger the hold time option. Default is 360 seconds|Hold Time Option Sekunden - Wenn Hold Time-Option ist gesetzt, was aber keiner, das ist die Anzahl der Sekunden des geschätzten halten auslösen wird Zeit, dass die Hold-Zeit-Option. Der Standardwert ist 360 Sekunden| +Hold Time Option Extension -<\/B> If Hold Time Option is set to EXTENSION, this is the dialplan extension that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Extension - Wenn Hold Time-Option auf Verlängerung, ist dies die dialplan, dass sich die Aufforderung an, wenn der geschätzte halten länger als die Hold Time Option Sekunden| +Hold Time Option Voicemail -<\/B> If Hold Time Option is set to VOICEMAIL, this is the voicemail box that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Voicemail - Wenn Hold Time auf Voicemail, das ist die Voice-Mailbox, dass der Anruf an, wenn der geschätzte halten länger als die Hold Time Option Sekunden| +Hold Time Option Transfer In-Group -<\/B> If Hold Time Option is set to IN_GROUP, this is the inbound group that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Transfer In-Group - Wenn Hold Time-Option ist auf IN_GROUP, das ist die Gruppe, dass die eingehenden Anruf werden, wenn der geschätzte halten länger als die Hold Time Option Sekunden| +Hold Time Option Callback Filename -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the filename prompt that is played before the call is logged as a new lead to the list ID specified below if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Rückruf Dateiname - Wenn Hold Time-Option ist auf CALLERID_CALLBACK, Dies ist der Dateiname ein, dass gespielt wird, bevor der Anruf wird protokolliert, als eine neue dazu führen, dass die ID-Liste unten, wenn der geschätzte halten länger als die Hold Time Option Sekunden| +Hold Time Option Callback List ID -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the List ID the call is added to as a new lead if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Liste Rückruf-ID - Wenn Hold Time Option ist auf CALLERID_CALLBACK, Dies ist die Liste der Anruf-ID wird als neues führen, wenn der geschätzte halten länger als die Hold Time Option Sekunden| +Hold Recall Transfer In-Group -<\/B> If a customer calls back to this in-group more than once and this is not set to NONE, then the call will automatically be sent on to the In-Group selected in this field. Default is NONE|Hold Recall Transfer In-Group - Wenn ein Kunde, um zu dieser Gruppe mehr als einmal, und das ist nicht auf None gesetzt wird, dann wird der Anruf automatisch an das In-Gruppe in diesem Bereich ausgewählt . Der Standardwert ist KEINE| +No Delay Call Route -<\/B> Setting this to Y will remove all wait times and audio prompts and attempt to send the call right to an agent. Does not override welcome message or on hold prompt settings. Default is N|Nr. Delay Call Route - Wenn Sie diesen auf Y werden alle Wartezeiten und akustische und versuchen, den Anruf zu einem Agenten. Nicht überschreiben Willkommensnachricht oder halten Prompt Einstellungen. Der Standardwert ist N| +Play Welcome Message -<\/B> These settings select when to play the defined welcome message, ALWAYS will play it every time, NEVER will never play it, IF_WAIT_ONLY will only play the welcome message if the call does not immediately go to an agent, and YES_UNLESS_NODELAY will always play the welcome message unless the NO_DELAY setting is enabled. Default is ALWAYS|Jetzt Grußwort - Diese Einstellungen wählen Sie, wann Sie spielen die definierten Willkommensnachricht, immer spielen sie jedes Mal, nie nie spielen, IF_WAIT_ONLY nur spielen die Welcome-Nachricht, wenn die Forderung nicht sofort zu einem Agenten , und YES_UNLESS_NODELAY immer spielen die Welcome-Nachricht, es sei denn, die NO_DELAY Einstellung aktiviert ist. Der Standardwert ist IMMER| +Play Place in Line: |Jetzt im Einklang:| +Play Estimated Hold Time: |Jetzt Geschätzte Hold Time:| +Hold Time Option: |Hold Time Option:| +Hold Time Option Seconds: |Hold Time Option Sekunden:| +Hold Time Option Extension: |Hold Time Option Extension:| +Hold Time Option Voicemail: |Hold Time Option Voicemail:| +Hold Time Option Transfer In-Group: |Hold Time Option Transfer In-Group:| +Hold Time Option Callback Filename: |Hold Time Option Rückruf Dateiname:| +Hold Time Option Callback List ID: |Hold Time Option Liste Rückruf-ID:| +Hold Recall Transfer In-Group: |Hold Recall Transfer In-Group:| +No Delay Call Route: |Nr. Delay Call Route:| +Play Welcome Message: |Jetzt Grußwort:| +DID Extension -<\/B> This is the number, extension or DID that will trigger this entry and that you will route within the system using this function|DID-Erweiterung - Das ist die Zahl, die Erweiterung oder das getan hat, löst diesen Eintrag, und dass Sie Route innerhalb des Systems mit dieser Funktion| +DID Description -<\/B> This is the description of the DID routing entry|DID-Beschreibung - Das ist die Beschreibung von der DID-Routing-Eintrag| +DID Active -<\/B> This the field where you set the DID entry to active or not. Default is Y|DID-Active - Das ist der Bereich, in dem Sie die DID Eintrag aktiv oder nicht. Der Standardwert ist Y| +DID Route -<\/B> This the type of route that you set the DID to use. EXTEN will send calls to the extension entered below, VOICEMAIL will send calls directly to the voicemail box entered below, AGENT will send calls to a VICIDIAL agent if they are logged in, PHONE will send the call to a phones entry selected below, IN_GROUP will send calls directly to the specified inbound group. Default is EXTEN|DID-Route - Diese Art der Route, die Sie der DID zu verwenden. Verlängerung wird ersucht, um die Erweiterung in unten, Voicemail senden Anrufe direkt an die Voicemail-Box eingetragen unter, der Agent wird Gespräche auf eine VICIDIAL Agenten, wenn sie angemeldet sind, TEL wird der Anruf zu einem ausgewählten Eintrag Telefone unter, IN_GROUP wird Senden Sie Anrufe direkt auf die angegebene Inbound-Gruppe. Standard ist die Erweiterung| +Extension -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan extension that calls will be sent to. Default is 9998811112, no-service|Extension - , wenn die Erweiterung ist als der DID-Route, dann ist dies die Erweiterung dialplan, dass Anrufe werden an. Der Standardwert ist 9998811112, no-Service| +Extension Context -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan context that calls will be sent to. Default is default|Erweiterung Kontext - , wenn die Erweiterung ist als der DID-Route, dann ist dies die dialplan Zusammenhang, dass Anrufe werden an. Die Voreinstellung ist Standard| +Voicemail Box -<\/B> If VOICEMAIL is selected as the DID Route, then this is the voicemail box that calls will be sent to. Default is empty|Voicemail-Box - Wenn Voicemail ist als der DID-Route, dann ist dies die Voicemail-Box, die Anrufe werden an. Der Standardwert ist leer| +Phone Extension -<\/B> If PHONE is selected as the DID Route, then this is the phone extension that calls will be sent to.|Telefon Extension - Wenn PHONE ist als der DID-Route, dann ist das Telefon-Erweiterung, wird der Aufruf an.| +Phone Server IP -<\/B> If PHONE is selected as the DID Route, then this is the server IP for the phone extension that calls will be sent to|Server-IP-Telefon - Wenn PHONE ist als der DID-Route, dann ist dies der Server-IP-Telefon für die Erweiterung, die Anrufe werden an| +User Agent -<\/B> If AGENT is selected as the DID Route, then this is the VICIDIAL Agent that calls will be sent to|User Agent - Wenn agent ist als der DID-Route, dann ist dies die VICIDIAL Agent, dass Anrufe werden an| +User Unavailable Action -<\/B> If AGENT is selected as the DID Route, and the user is not logged in or available, then this is the route that the calls will take|User-Aktion nicht verfügbar - Wenn agent ist als der DID-Route, und der Benutzer ist nicht angemeldet oder verfügbar sind, dann ist dies der Weg, den die Anrufe wird| +User Route Settings In-Group - If AGENT is selected as the DID Route, then this is the In-Group that will be used for the queue settings as the caller is waiting to be sent to the agent. Default is AGENTDIRECT|User-Einstellungen Route In-Group - Wenn agent ist als der DID-Route, dann ist dies die In-Group, die verwendet werden für die Queue-Einstellungen wie der Anrufer wartet, die an den Agenten. Der Standardwert ist AGENTDIRECT| +In-Group ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the In-Group that calls will be sent to|In-Group-ID - Wenn IN_GROUP ist als der DID-Route, dann ist dies die In-Group, die Anrufe werden an| +In-Group Call Handle Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attampt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attampt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attampt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue. Default is CID|In-Group Call Griff Methode - Wenn IN_GROUP ist als der DID-Route, dann ist dies die Forderung Umgang Methode für diese Anrufe. CID wird eine neue Aufnahme führen mit jedem Anruf über die CallerID wie die Telefonnummer, CIDLOOKUP Lookup wird versuchen, die Telefonnummer von der CallerID im gesamten System, CIDLOOKUPRL wird attampt und auf die Telefonnummer von der CallerID nur in einem bestimmten Verzeichnis , CIDLOOKUPRC wird attampt und auf die Telefonnummer von der CallerID in allen von den Listen, die zu den angegebenen Kampagne, näher ist für VICIDIAL engere fordert ANI wird eine neue Aufnahme führen mit jedem Anruf mit der ANI wie die Telefonnummer, ANILOOKUP Lookup wird versuchen, die Telefonnummer von der ANI in das gesamte System, ANILOOKUPRL wird attampt und auf die Telefonnummer von der ANI nur in einem bestimmten Verzeichnis, XDIGITID wird der Anrufer für einen X-stelligen Code vor dem Aufruf wird in Betrieb genommen werden der Warteschlange. Der Standardwert ist CID| +In-Group Agent Search Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the agent search method to be used by the inbound group, LO is Load-Balanced-Overflow and will try to send the call to an agent on the local server before trying to send it to an agent on another server, LB is Load-Balanced and will try to send the call to the next agent no matter what server they are on, SO is Server-Only and will only try to send the calls to agents on the server that the call came in on. Default is LB|In-Group-Agent Suche Methode - Wenn IN_GROUP ist als der DID-Route, dann ist dies der Agent Suche Methode für die Inbound-Gruppe, LO ist Load-Balanced-Overflow und versuchen um den Ruf zu senden einem Agenten auf dem lokalen Server, bevor Sie versuchen, senden Sie sie an einen Agenten auf einem anderen Server, Load-LB ist ausgewogen und wird versuchen, um den Ruf zu senden, um zur nächsten Agent-Server, egal was sie sind, so ist nur Server-und nur versuchen, die Forderungen an Agenten auf dem Server, dass der Anruf kam auf. Der Standardwert ist LB| +In-Group List ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the List ID that leads may be searched through and that leads will be inserted into if necessary|In-Group-ID-Liste - Wenn IN_GROUP ist als der DID-Route, dann ist dies die ID-Liste führt, dass kann man suchen, durch und führt werden, wenn notwendig, in| +In-Group Campaign ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the Campaign ID that leads may be searched for in if the call handle method is CIDLOOKUPRC|In-Group-ID-Kampagne - Wenn IN_GROUP ist als der DID-Route, dann ist dies die Kampagnen-ID, was kann man suchen, wenn das Gespräch mit Methode ist CIDLOOKUPRC| +In-Group Phone Code -<\/B> If IN_GROUP is selected as the DID Route, then this is the Phone Code used if a new lead is created|In-Group Telefon Code - Wenn IN_GROUP ist als der DID-Route, dann ist das Telefon-Code verwendet, wenn eine neue Führung wird erstellt| +Phones Email -<\/B> The email address associated with this phone entry. This is used for voicemail settings|Telefon E-Mail - Die E-Mail-Adresse im Zusammenhang mit diesem Telefon-Eintrag. Dies ist für die Mailbox-Einstellungen| +ADD A NEW DID|Hinzufügen einer neuen DID| +DID Extension: |DID-Erweiterung:| +DID Description: |DID-Beschreibung:| +COPY DID|COPY DID| +Source DID: |Quelle DID:| +DID NOT ADDED|NICHT HINZUGEFÜGT| +there is already a DID in the system with this ID|Es gibt bereits eine DID in das System mit dieser ID| +there is already a DID in the system with this extension|Es gibt bereits eine DID in das System mit dieser Erweiterung| +DID NOT MODIFIED|NICHT MODIFIZIERT| +DID MODIFIED|DID VERÄNDERTE| +MODIFY A DID RECORD: |MODIFY eine DID RECORD:| +DID Route: |DID-Route:| +Extension: |Erweiterung:| +Extension Context: |Erweiterung Kontext:| +Voicemail Box: |Voicemail-Box:| +Phone Extension: |Tel. Durchwahl:| +User Agent: |User Agent:| +User Unavailable Action: |User-Aktion nicht verfügbar:| +User Route Settings In-Group: |User-Einstellungen In Route-Gruppe:| +In-Group ID: |In-Group-ID:| +In-Group Call Handle Method: |In-Group Call Griff Methode:| +In-Group Agent Search Method: |In-Group-Agent Suche Methode:| +In-Group List ID: |In-Group US-ID:| +In-Group Campaign ID: |In-Group Kampagnen-ID:| +In-Group Phone Code: |In-Group Telefon Code:| +DELETE THIS DID|DELETE Das war| +Email: |E-Mail:| +DID NOT DELETED|NICHT GELÖSCHT| +DID DELETION CONFIRMATION|DID STREICHUNG BESTÄTIGUNG| +Click here to delete |Klicken Sie hier, um zu löschen| +DID DELETION COMPLETED|DID STREICHUNG COMPLETED| +Delete DIDs: |Löschen DIDS:| +Modify DIDs: |Ändern DIDS:| +To disable the On Hold Prompt, set the interval to 0|So deaktivieren Sie die On-Hold-Prompt, das Intervall auf 0| +3-Way Call Outbound CallerID -<\/B> This defines what is sent out as the outbound callerID number from 3-way calls placed by the agent, CAMPAIGN uses the custom campaign callerID, CUSTOMER uses the number of the customer that is active on the agents screen and AGENT_PHONE uses the callerID for the phone that the agent is logged into|3-Wege-Call Outbound CallerID - Diese legt fest, was gesendet wird, wie der Ausgang CallerID Reihe von 3-Wege-Anrufe, die von den Agenten, die Kampagne verwendet die eigene Kampagne CallerID, Kunde nutzt die Zahl der Kunden ist, dass aktive auf dem Bildschirm und Agenten AGENT_PHONE verwendet die CallerID für das Telefon, dass der Agent angemeldet ist, in| +3-Way Call Outbound CallerID:|3-Wege-Call Outbound CallerID:| +INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls|INBOUND_MAN ermöglicht es dem Agenten, um manuelle Einwahl Anrufe von einer Kampagne Liste, während in der Lage, die eingehenden Anrufe zwischen manuelle Einwahl fordert| +FORCE will force the agents to choose a PAUSE code if they click on the PAUSE button|FORCE wird erzwungen, dass der Makler, um eine PAUSE-Code, wenn sie klicken Sie auf die PAUSE-Taste| +3-Way Call Dial Prefix -<\/B> This defines what is used as the dial prefix for 3-way calls, default is empty so the campaign dial prefix is used, passthru so you can hear ringing is 88|3-Wege-Call-Vorwahl - Diese legt fest, was als Vorwahl für 3-Wege-Anrufe, standardmäßig ist leer, so dass die Kampagne Vorwahl verwendet wird, so können Sie passthru Klingelton hören ist 88| +3-Way Call Dial Prefix|3-Wege-Call-Vorwahl| +Force Timeclock Login -<\/B> This option allows you to not let an agent log in to the VICIDIAL agent interface if they have not logged into the timeclock. Default is N. There is an option to exempt admin users, levels 8 and 9|Force Timeclock Login - Diese Option ermöglicht es Ihnen, nicht zulassen, ein Agent der Anmeldung an der VICIDIAL Agent-Schnittstelle, wenn sie nicht angemeldet haben, in die timeclock. Der Standardwert ist N. Es ist eine Option zu befreien admin Benutzer, Stufen 8 und 9| +Force Timeclock Login|Force Timeclock Login| +Stats Percent of Calls Answered Within X seconds - This field allows you to set the number of hold seconds that the realtime stats display will use to calculate the percentage of answered calls that were answered within X number of seconds on hold|Statistiken Prozent der Anrufe innerhalb von X Sekunden - In diesem Feld können Sie die Anzahl der Sekunden, halten Sie die Echtzeit-Statistiken angezeigt wird zur Berechnung der Anteil der Anrufe, die beantwortet wurden beantwortet X Anzahl von Sekunden zu halten| +Stats Percent of Calls Answered Within X seconds|Statistiken Prozent der Anrufe innerhalb von X Sekunden| +Web Form Target-<\/B> This is where you can set the custom web page frame that the web form will be opened in when the user clicks on the WEB FORM button. Default is _blank.|Web Form-Target- Hier können Sie die eigene Web-Seite, dass der Rahmen Web-Formular wird geöffnet, wenn der Nutzer auf die Web Form-Taste. Der Standardwert ist _blank.| +Web Form Target|Web Form-Target| +To customize the query string after the web form, simply begin the web form with VAR and then the URL that you want to use, replacing the variables with the variable names that you want to use --A--phone_number--B-- just like in the SCRIPTS tab section|So passen Sie die Abfragezeichenfolge nach dem Web-Formular, einfach beginnen, die Web-Formular mit VAR und dann die URL, die Sie verwenden möchten, ersetzt die Variablen mit den Variablen-Namen, die Sie verwenden möchten - A - phone_number - B -- genau wie in der Registerkarte SCRIPTS Abschnitt| +Recording Web Link -<\/B> This setting allows you to override the default of the display of the recording link in the admin web pages. Default is SERVER_IP|Aufnahme Web-Link - Diese Einstellung erlaubt es Ihnen, sich über die Standard in der Anzeige der Aufnahme-Link im Admin-Web-Seiten. Der Standardwert ist SERVER_IP| +Alternate Recording Server IP -<\/B> This setting is where you can put a server IP or other machine name that can be used in place of the server_ip in the links to recordings within the admin web pages. Default is empty|Alternate Recording Server IP - Diese Einstellung können Sie eine Server-IP oder andere Rechner-Namen ein, kann anstelle der server_ip in die Links zu den Aufnahmen in der Admin-Web-Seiten. Der Standardwert ist leer| +Recording Web Link|Aufnahme Web-Link| +Enable Vtiger Integration -<\/B> This setting allows you to enable Vtiger integration with VICIDIAL. Currently links to Vtiger admin and search as well as user replication are the only integration features available. Default is 0|Aktivieren vtiger Integration - Diese Einstellung erlaubt es Ihnen zu ermöglichen vtiger Integration mit VICIDIAL. Derzeit Links zu vtiger admin und als auch als Nutzer Replikation sind die einzigen Integration Features zur Verfügung stehen. Standard ist 0| +Vtiger DB Server IP -<\/B> This is the IP address of the database for your Vtiger installation|Vtiger HE Server IP - Das ist die IP-Adresse der Datenbank für Ihre vtiger-Installation| +Vtiger Database Name -<\/B> This is the database name for your Vtiger database|Vtiger Datenbankname - Dies ist die Datenbank-Namen für Ihre Datenbank vtiger| +Vtiger Database Login -<\/B> This is the user name used to log in to your Vtiger database|Vtiger Datenbank Login - Das ist die Benutzernamen verwendet, um sich in Ihrem vtiger-Datenbank| +Vtiger Database Password -<\/B> This is the password used to log in to your Vtiger database|Vtiger Passwort für die Datenbank - Dies ist das Passwort für die Anmeldung in Ihrem vtiger-Datenbank| +Vtiger URL -<\/B> This is the URL or web site address used to get to your Vtiger installation|Vtiger URL - Das ist die URL oder Website-Adresse, um an Ihr vtiger-Installation| +Enable Vtiger Integration:|Aktivieren vtiger Integration:| +Vtiger DB Server IP|Vtiger HE Server IP| +Vtiger Database Name|Vtiger Datenbank Name| +Vtiger Database Login|Vtiger Datenbank Login| +Vtiger Database Password|Vtiger Passwort für die Datenbank| +Vtiger URL|Vtiger URL| +VTIGER HOME|Vtiger HOME| +Active -<\/B> This field defines whether the user is active in the system and can use VICIDIAL resources. Default is Y|Active - Dieses Feld legt fest, ob der Benutzer in das System und können VICIDIAL Ressourcen. Der Standardwert ist Y| +show only active users|Nur aktive Benutzer| +show all users|Alle Nutzer anzeigen| +Vtiger Search Category -<\/B> If Vtiger integration is enabled in the system settings then this setting will define where the vtiger_search.php page will search for the phone number that was entered. There are 4 options that can be used in this field: LEAD- This option will search through the Vtiger leads only, ACCOUNT- This option will search through the Vtiger accounts and all contacts and sub-contacts for the phone number, VENDOR- This option will only search through the Vtiger vendors, ACCTID- This option works only for accounts and it will take the vicidial vendor_lead_code field and try to search for the Vtiger account ID. If unsuccessful it will try any other methods listed that you have selected. Multiple options can be used for each search, but on large databases this is not recommended. Default is LEAD|Vtiger Suche Kategorie - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung definieren, wo die vtiger_search.php Seite wird nach der Telefonnummer, die eingegeben wurde. Es gibt 4 Möglichkeiten, die genutzt werden kann in diesem Bereich: Lead-Diese Option wird die Suche durch die vtiger führt nur, Konto-Diese Option wird durch die Suche und vtiger alle Kontakte und sub-Kontakte für die Telefonnummer, Vendor-Diese Option wird nur durch die Suche vtiger Lieferanten, ACCTID-Diese Option funktioniert nur für Konten, und es wird die vicidial vendor_lead_code Bereich und versuchen Sie es um die Suche nach der vtiger-Konto-ID. Wenn es erfolglos versucht, andere Methoden zu finden, die Sie ausgewählt haben. Mehrere Optionen können verwendet werden, für jede Suche, sondern auf großen Datenbanken ist dies nicht empfohlen. Der Standardwert ist BLEI| +Vtiger Search Category:|Vtiger Suche Kategorie:| +ACTIVE LISTS CHANGED|ACTIVE LISTEN CHANGED| +SUBMIT ACTIVE LIST CHANGES|SUBMIT AKTIVEN LISTE ÄNDERUNGEN| +LAST CALL DATE|LAST CALL DATUM| +User Group Bulk Change|User Group Bulk ändern| +Bulk Group Change|Bulk-Gruppe ändern| +Vtiger Create Call Record -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether a new Vtiger activity record is created for the call when the agent goes to the vtiger_search page. Default is Y|Vtiger Erstellen Call Record - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung festlegen, ob eine neue vtiger Aktivität wird für den Anruf, wenn der Agent geht an die vtiger_search Seite. Der Standardwert ist Y| +Vtiger Create Call Record:|Vtiger Erstellen Call Record:| +Vtiger Create Lead Record -<\/B> If Vtiger integration is enabled in the system settings and Vtiger Search Category includes LEAD then this setting will define whether a new Vtiger lead record is created when the agent goes to the vtiger_search page and no record is found to have the call phone number. Default is Y|Vtiger Erstellen Lead Record - Wenn vtiger Integration aktiviert ist in den System-Einstellungen und vtiger Suche Kategorie umfasst BLEI, dann wird diese Einstellung festlegen, ob eine neue vtiger führen wird erstellt, wenn der Agent geht an die vtiger_search Seite und wird nicht festgestellt, dass die Call-Telefonnummer. Der Standardwert ist Y| +Vtiger Create Lead Record:|Vtiger Erstellen Lead Record:| +Vtiger Screen Login -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether the user is logged into the Vtiger interface automatically when they login to VICIDIAL. Default is Y|Vtiger Login Screen - Wenn vtiger Integration aktiviert ist in den System-Einstellungen, dann wird diese Einstellung festlegen, ob der Benutzer angemeldet ist in der vtiger-Schnittstelle automatisch, wenn sie zur Anmeldung VICIDIAL. Der Standardwert ist Y| +Vtiger Screen Login:|Vtiger Login Screen:| +Alert Enabled -<\/B> This field shows whether the agent has web browser alerts enabled for when calls come into their vicidial.php session. Default is 0 for NO|Alarm aktiv - Dieses Feld zeigt an, ob der Agent hat Warnungen Web-Browser aktiviert, wenn Anrufe in Berührung kommen, ihre vicidial.php Sitzung. Der Standardwert ist 0 für NO| +Alert Enabled:|Alarm aktiv:| +QC Features Active -<\/B> This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive|QC Funktionen Active - Mit dieser Option können Sie aktivieren oder deaktivieren Sie die QC oder Quality Control-Funktionen. Der Standardwert ist 0 für inaktiv| +Outbound Auto-Dial Active -<\/B> This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active|Outbound Auto-Dial Active - Mit dieser Option können Sie aktivieren oder deaktivieren Sie ausgehende Auto-Einwahl in VICIDIAL, in diesem Bereich auf 0 werden die Listen und Filter Abschnitte und viele Felder aus der Kampagne Änderung Bildschirme. Manuelle Eingabe Wählfeld wird noch innerhalb der zulässigen Agent-Bildschirm, aber keine Liste Einwahl möglich sein wird. Der Standardwert ist 1 für aktive| +QC Features Active:|QC Funktionen aktiv:| +Outbound Auto-Dial Active:|Outbound Auto-Dial Aktiv:| +Close Panel|Fenster schließen| +Choose Report Display Options|Wählen Sie Report anzeigen Optionen| +To select more than 1 campaign, hold down the Ctrl key and click|Um mehr als 1 Kampagne, halten Sie die Strg-Taste gedrückt und klicken Sie auf| +CPD AMD Action -<\/B> If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED|CPD AMD Action - Wenn Sie die Sangoma ParaXip Rufen Fortschritte Detection-Software, dann werden Sie zum Aktivieren dieser Einstellung, entweder sie DISPO, die Disposition der Anruf als AA und hängen Sie es, wenn der Anruf wird bearbeitet und wurde nicht gesendet, um noch ein Agent oder eine Nachricht zu senden, die den Aufruf der Anrufbeantworter die Nachricht für diese Kampagne. Standardwert ist deaktiviert| +CPD AMD Action:|CPD AMD Aktion:| +Click here for user multiple day status detail report|Klicken Sie hier für die Benutzer mehrere Tage Status ausführlicher Bericht| +Click here to download this list|Klicken Sie hier, um diese Liste| +Download Lists:|Download-Listen:| +Active Asterisk Server -<\/B> If Asterisk is not running on this server, or if VICIDIAL should not be using this server, or if are only using this server for other scripts like the hopper loading script you would want to set this to N. Default is Y|Active Server Asterisk - , wenn Asterisk läuft nicht auf diesem Server, oder, wenn VICIDIAL sollten nicht mit diesem Server, oder, wenn es nur mit diesem Server für andere Skripte wie die Be-Hopper Skript ausführen möchten, um dies zu N. Standard ist Y| +Generate conf files -<\/B> If you would like the system to auto-generate asterisk conf files based upon the phones entries, carrier entries and load balancing setup within VICIDIAL then set this to Y. Default is Y|Conf-Dateien erzeugen - Wenn Sie möchten, dass das System für die automatische Generierung von Sternchen conf-Dateien auf der Grundlage der Telefone Einträge, Träger Einträge und Load-Balancing-Setup in VICIDIAL dann dies auf Y. Der Standardwert ist Y| +Rebuild conf files -<\/B> If you want to force a rebuilding of the Asterisk conf files or if any of the phones or carrier entries have changed then this should be set to Y. After the conf files have been generated and Asterisk has been reloaded then this will be changed to N. Default is Y|Rebuild conf Dateien - Wenn Sie wollen, um einen Wiederaufbau der Asterisk conf-Dateien, oder wenn eines der Handys oder Carrier-Einträge geändert haben, dann sollte so eingestellt werden, dass Y. Nach der conf-Dateien wurden erzeugt und Asterisk hat wurden neu geladen, so wird diese Veränderung zu N. Voreingestellt ist Y| +Active Asterisk Server:|Aktive Asterisk Server:| +Generate conf files:|Conf-Dateien erzeugen:| +Rebuild conf files:|Rebuild conf-Dateien:| +Show Templates|Show-Vorlagen| +Add A New Template|Fügen Sie eine neue Vorlage| +ADD NEW CONF TEMPLATE|Neue CONF TEMPLATE| +ADD NEW CARRIER|ADD NEW CARRIER| +ADDING NEW CONF TEMPLATE|Neue CONF TEMPLATE| +ADDING NEW CARRIER|Neue CARRIER| +MODIFY CONF TEMPLATE|MODIFY CONF TEMPLATE| +MODIFY CARRIER|MODIFY CARRIER| +DELETE CONF TEMPLATE|DELETE CONF TEMPLATE| +DELETE CARRIER|DELETE CARRIER| +CONF TEMPLATE LIST|CONF Vorlagenliste| +CARRIER LIST|CARRIER LISTE| +Template ID:|Vorlagen-ID:| +Template Name:|Template Name:| +Template Contents:|Template-Inhalt:| +Carrier ID:|Carrier-ID:| +Carrier Name:|Carrier Name:| +Registration String:|Anmeldung String:| +Account Entry:|Account-Eintrag:| +Protocol:|Protokoll:| +Globals String:|Globals String:| +Dialplan Entry:|Dialplan Eintrag:| +CONF TEMPLATE NOT ADDED|CONF-Templates nicht ADDED| +there is already a template in the system with this ID|Es gibt bereits eine Vorlage in das System mit dieser ID| +CONF TEMPLATE ADDED|CONF TEMPLATE ADDED| +CARRIER NOT ADDED|CARRIER NOT ADDED| +there is already a carrier in the system with this ID|Es gibt bereits ein Luftfahrtunternehmen in das System mit dieser ID| +CONF TEMPLATE NOT MODIFIED|CONF-Templates nicht VERÄNDERTE| +CARRIER NOT MODIFIED|CARRIER NICHT MODIFIZIERT| +CARRIER MODIFIED|CARRIER VERÄNDERTE| +CONF TEMPLATE NOT DELETED|CONF TEMPLATE nicht gelöscht| +Template ID be at least 2 characters in length|Vorlagen-ID von mindestens 2 Zeichen lang sein| +CONF TEMPLATE DELETION CONFIRMATION|CONF TEMPLATE STREICHUNG BESTÄTIGUNG| +Click here to delete conf template|Klicken Sie hier, um zu löschen conf Vorlage| +CARRIER NOT DELETED|CARRIER nicht gelöscht| +Carrier ID be at least 2 characters in length|Carrier-ID von mindestens 2 Zeichen lang sein| +CARRIER DELETION CONFIRMATION|CARRIER STREICHUNG BESTÄTIGUNG| +Click here to delete carrier|Klicken Sie hier, um zu löschen Träger| +CONF TEMPLATE DELETION COMPLETED|CONF TEMPLATE STREICHUNG COMPLETED| +CARRIER DELETION COMPLETED|CARRIER STREICHUNG COMPLETED| +MODIFY A CONF TEMPLATE RECORD|MODIFY A CONF TEMPLATE RECORD| +DELETE THIS CONF TEMPLATE|DELETE THIS CONF TEMPLATE| +MODIFY A CARRIER RECORD|MODIFY A RECORD CARRIER| +DELETE THIS CARRIER|DELETE THIS CARRIER| +CARRIERS WITHIN THIS SERVER|CARRIERS IN DIESEM SERVER| +CONF TEMPLATE LISTINGS|CONF TEMPLATE LISTINGS| +CARRIER LISTINGS|CARRIER LISTINGS| +PHONES USING THIS CONF TEMPLATE|PHONES SIE DIESE CONF TEMPLATE| +CARRIERS USING THIS CONF TEMPLATE|CARRIERS SIE DIESE CONF TEMPLATE| +Conf Override:|Conf AllowOverride:| +Template ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the conf template throughout the system|Vorlagen-ID - Dieses Feld muss mindestens 2 Zeichen lang sein und nicht mehr als 15 Zeichen lang sein, kein Leerzeichen. Dies ist die ID, die verwendet werden, um die conf Vorlage des gesamten Systems| +Template Name -<\/B> This is the descriptive name of the conf file template entry|Template Name - Dies ist der beschreibende Name der Conf-Datei-Vorlage Eintrag| +Template Contents -<\/B> This field is where you can enter in the specific settings to be used by all phones and-or carriers that are set to use this conf template. Fields that should NOT be included in this box are: secret, accountcode, account, username and mailbox|Template Inhalt - Dieses Feld ist, wo können Sie in den Einstellungen, die von allen Telefonen und-oder Luftfahrtunternehmen, die für die Verwendung dieser Vorlage conf. Bereiche, die nicht in diesem Feld sind: geheim, accountcode, Konto, Benutzernamen und Mailbox| +Carrier ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the carrier for this specific entry throughout the system|Carrier ID - Dieses Feld muss mindestens 2 Zeichen lang sein und nicht mehr als 15 Zeichen lang sein, kein Leerzeichen. Dies ist die ID, die verwendet werden, um die Träger für diesen speziellen Eintrag im gesamten System| +Carrier Name -<\/B> This is the descriptive name of the carrier entry|Carrier Name - Dies ist der beschreibende Name des Beförderers Eintrag| +Registration String -<\/B> This field is where you can enter in the exact string needed in the IAX or SIP configuration file to register to the provider. Optional but highly recommended if your carrier allows registration|Anmeldung String - Dieses Feld ist, wo können Sie in die genaue String benötigt, der SIP-oder IAX-Konfigurations-Datei zu registrieren, um den Anbieter. Optional, aber dringend empfohlen, wenn Ihr durch die Registrierung| +Template ID -<\/B> This optional field allows you to choose a conf file template for this carrier entry|Vorlagen-ID - Dieses optionale Feld ermöglicht es Ihnen, wählen Sie eine conf-Datei-Vorlage für dieses Luftfahrtunternehmen Eintrag| +Account Entry -<\/B> This field is used if you have not selected a template to use, and it is where you can enter in the specific account settings to be used for this carrier|Konto-Eintrag - Dieses Feld wird verwendet, wenn Sie nicht ausgewählt haben eine Vorlage zu verwenden, und es ist, wo können Sie in den spezifischen Einstellungen, die für diesen Träger| +Protocol -<\/B> This field allows you to define the protocol to use for the carrier entry. Currently only IAX and SIP are supported|Protokoll - Mit diesem Feld können Sie festlegen, das Protokoll zu verwenden für die Carrier-Eintrag. Derzeit werden nur IAX-und SIP unterstützt werden| +Globals String -<\/B> This optional field allows you to define a global variable to use for the carrier in the dialplan|Global String - Dieses optionale Feld können Sie die Definition einer globalen Variablen, die für die Träger in der dialplan| +Dialplan Entry -<\/B> This optional field allows you to define a set of dialplan entries to use for this carrier|Dialplan Eintrag - Dieses optionale Feld können Sie festlegen, eine Reihe von dialplan Einträge, die für diesen Träger| +Server IP -<\/B> This is the server that this specific carrier record is associated with|Server IP - Dies ist der Server, dass dieser besondere Träger wird im Zusammenhang mit| +Active -<\/B> This defines whether the carrier will be included in the auto-generated conf files or not|Active - Diese legt fest, ob der Träger wird in den automatisch generierten conf-Dateien oder nicht| +Conf Override Settings -<\/B> If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated|Conf Einstellungen - Wenn besiedelt, und die Template-ID eingestellt ist - KEINE -, dann der Inhalt dieses Feldes werden als die conf-Datei-Einträge für dieses Telefon. generate_vicidial_conf für diese Telefone Server muss so eingestellt werden, dass Y für diese zu arbeiten. Dieses Feld sollte nicht die [Erweiterung] Linie, das wird automatisch generiert| +Template ID -<\/B> This is the conf file template ID that this phone entry will use for its Asterisk settings. Default is --NONE--|Vorlagen-ID - Das ist die conf Datei template-ID, die dieses Telefon-Eintrag wird für die Asterisk-Einstellungen. Standard ist - KEINE --| +If you will be taking in inbound calls from this carrier trunk you might want to set the context=trunkinbound within this field so that you can use the DID handling process within VICIDIAL|Wenn Sie sich in eingehenden Anrufen von diesem Luftfahrtunternehmen Stamm möchten Sie vielleicht die context = trunkinbound in diesem Bereich, so dass Sie verwenden können, der DID-Handling innerhalb VICIDIAL| +There is a reserved default DID that you can use which is just the word -default- without the dashes, that will allos you to send any call that does not match any other existing patterns to the default DID|Es ist ein Standard DID vorbehalten, die Sie verwenden können, die nur das Wort-default-ohne Bindestriche, Allos, die Sie senden jede Aufforderung, die nicht mit einer anderen bestehenden Muster auf den Standard DID| +Campaign VDAD extension|Kampagne VDAD Erweiterung| +This field allows for a custom VDAD transfer extension. This allows you to use different call handling methods depending upon your campaign.|Dieses Feld erlaubt eine kundenspezifische Erweiterung VDAD Übertragung. Auf diese Weise können Sie verschiedene Call-Handling-Methoden je nach Ihrer Kampagne.| + - 8364 - same as 8368|- 8364 - wie 8368| + - 8365 - Will send the call only to an agent on the same server as the call is on|- 8365 - wird die Forderung nur einem Agenten auf demselben Server wie der Anruf auf| + - 8366 - Used for press-1 and survey campaigns|- 8366 - Wird für die Presse-1 und Umfrage-Kampagnen| + - 8367 - Will try to first send the call to an agent on the local server, then it will look on other servers|- 8367 - wird versuchen, zunächst schicken Sie die Forderung nach einem Agenten auf dem lokalen Server, dann wird es sich auf einem anderen Server| + - 8368 - DEFAULT – Will send the call to the next available agent no matter what server they are on|- 8368 - Standard? Wird der Anruf an den nächsten verfügbaren Agenten-Server, egal, was sie auf| + - 8369 - Used for Answering Machine Detection after that, same behavior as 8368|- 8369 - Wird für Anrufbeantworter-Erkennung nach, dass ein gleiches Verhalten wie 8368| + - 8373 - Used for Answering Machine Detection after that same behavior as 8366|- 8373 - Wird für Anrufbeantworter-Erkennung, die nach dem gleichen Verhalten wie 8366| +Also in this section are the WEB VARs for each campaign. These allow each agent to have a different variable string that can be added to the WEB FORM or SCRIPT tab URLs by simply putting --A--web_vars--B-- as you would put any other field.|Auch in diesem Abschnitt sind die WEB VARs für jede Kampagne. Diese ermöglichen es jedem Agenten zu haben, eine andere Variable Zeichenfolge, die hinzugefügt werden können, um die Web-Formular oder SCRIPT Registerkarte URLs, indem Sie einfach setzen - A - web_vars - B - wie Sie würde jedem anderen Bereich.| +Group Alias List|Gruppe Alias Liste| +Add A New Group Alias|Eine neue Gruppe hinzuzufügen Alias| +ADD NEW GROUP ALIAS|ADD NEW GROUP ALIAS| +ADDING NEW GROUP ALIAS|Neue GROUP ALIAS| +MODIFY GROUP ALIAS|MODIFY GROUP ALIAS| +DELETE GROUP ALIAS|DELETE GROUP ALIAS| +GROUP ALIAS LIST|GROUP ALIAS LISTE| +GROUP ALIAS LISTINGS|GROUP ALIAS LISTINGS| +MODIFY A GROUP ALIAS RECORD|MODIFY A GROUP ALIAS RECORD| +Group Alias ID|Alias-ID-Gruppe| +Group Alias Name|Gruppe Alias-Name| +CallerID Number|CallerID Anzahl| +CallerID Name|CallerID Name| +DELETE THIS GROUP ALIAS|DELETE Diese Gruppe ALIAS| +GROUP ALIAS NOT MODIFIED|GROUP ALIAS NICHT MODIFIZIERT| +GROUP ALIAS MODIFIED|GROUP ALIAS VERÄNDERTE| +ADD A NEW GROUP ALIAS|Eine neue Gruppe hinzuzufügen ALIAS| +MODIFY A GROUP ALIAS RECORD|MODIFY A GROUP ALIAS RECORD| +GROUP ALIAS NOT ADDED|GROUP ALIAS NOT ADDED| +GROUP ALIAS ADDED|GROUP ALIAS ADDED| +GROUP ALIAS NOT DELETED|GROUP ALIAS nicht gelöscht| +GROUP ALIAS DELETION CONFIRMATION|GROUP ALIAS STREICHUNG BESTÄTIGUNG| +Click here to delete group alias|Klicken Sie hier, um Alias-Gruppe löschen| +GROUP ALIAS DELETION COMPLETED|GROUP ALIAS STREICHUNG COMPLETED| +Group Alias ID -<\/B> The ID of the group alias used by agents to dial out calls from the VICIDIAL agent interface with different Caller IDs. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Alias-ID-Gruppe - die ID der Gruppe Alias von Agenten wählen Sie fordert von der VICIDIAL Agent-Schnittstelle mit verschiedenen Caller-IDs. keine Leerzeichen oder andere Sonderzeichen erlaubt. Muss zwischen 2 und 20 Zeichen lang sein| +Group Alias Name -<\/B> The name used to describe a group alias, Must be between 2 and 50 characters in length|Alias-Name-Fraktion - Der Name für die Bezeichnung einer Gruppe Alias, muss zwischen 2 und 50 Zeichen lang sein| +Caller ID Number -<\/B> The Caller ID number used in this Group Alias. Must be digits only|Anrufer-ID-Nummer - Die Caller-ID-Nummer, die in dieser Gruppe Alias. Muss nur Ziffern| +Caller ID Name -<\/B> The Caller ID name that can be sent out with this Group Alias. As far as we know this will only work in Canada on PRI circuits and using an IAX loop trunk through Asterisk|Anrufer-ID Name - Die Anrufer-ID-Namen ein, können mit dieser Gruppe Alias. Soweit wir wissen, wird dies nur funktionieren, in Kanada über den PRI-Leitungen und mit einer Schleife IAX Stamm durch Asterisk| +Group Alias Allowed -<\/B> If you want to allow your agents to use group aliases then you need to set this to Y. Group Aliases are explained more in the Admin section, they allow agents to select different callerIDs for outbound manual calls that they may place. Default is N|Alias-Gruppe erlaubt - Wenn Sie möchten, dass Ihre Agenten zu verwenden Gruppe Aliase dann müssen Sie diese Gruppe Y. Aliases werden mehr in der Admin-Bereich, sie zuzulassen, um verschiedene callerIDs Handbuch für ausgehende Anrufe dass sie Platz. Der Standardwert ist N| +Default Group Alias -<\/B> If you have allowed Group Aliases then this is the group alias that is selected first by default when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Standard-Fraktion Alias - Wenn Sie erlaubt Gruppe Aliases, dann ist dies die Gruppe Alias, die zuerst ausgewählten standardmäßig aktiviert, wenn der Agent sich für eine Gruppe Alias für einen ausgehenden Anruf Handbuch. Der Standardwert ist Keine oder leer| +Default Group Alias -<\/B> If you have allowed Group Aliases for the campaign that the agent is logged into then this is the group alias that is selected first by default on a call coming in from this inbound group when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Standard-Fraktion Alias - Wenn Sie erlaubt Gruppe Aliases für die Kampagne, dass der Agent angemeldet ist, dann ist dies in der Gruppe ist, dass Alias zuerst ausgewählten standardmäßig auf einen Anruf, die von dieser Gruppe, wenn die Inbound-Agent dafür, Verwendung eines Alias-Fraktion für einen ausgehenden Anruf Handbuch. Der Standardwert ist Keine oder leer| +Group Alias Allowed|Alias-Gruppe erlaubt| +Default Group Alias|Standard-Alias-Gruppe| +AGENT_CHOOSE allows the agent to choose which callerID to use for 3-way calls from a list of choices.|AGENT_CHOOSE ermöglicht es dem Agenten zu entscheiden, welche CallerID, die für 3-Wege-Anrufe aus einer Liste von Optionen.| +you cannot use reserved words in group aliases|Sie können keine reservierten Wörter in der Gruppe Aliase| +Agent Shift Enforcement Override|Agent Shift Vollstreckung Override| +Manager Shift Enforcement Override|Shift Manager Vollstreckung Override| +Shift Enforcement|Shift Vollstreckung| +Max Calls per Second|Max Calls pro Sekunde| +Max FILL Calls per Second|Max-FILL fordert pro Sekunde| +This setting will override whatever the users user group has set for Shift Enforcement. DISABLED will use the user group setting. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is DISABLED.|Diese Einstellung überschreibt, was die Benutzer User Group hat für die Vollstreckung Shift. DEAKTIVIERT wird die Benutzergruppe Einstellung. AUS wird nicht in allen Schichten durchzusetzen. START wird nur die Durchsetzung der Login-Zeit, sondern wirkt sich nicht auf einen Vertreter, der mit über die Verlagerung, wenn sie bereits eingeloggt ALL wird durchzusetzen Verlagerung starten und meldet einen Agenten aus, nachdem sie über das Ende ihrer Schicht Zeit. Option ist standardmäßig deaktiviert.| +This setting if set to 1 will allow a manager to enter their user and password on an agent screen to override the shift restrictions on an agent session if the agent is trying to log in outside of their shift. Default is 0.|Diese Einstellung, wenn auf 1 gesetzt wird ein Manager, um ihre Benutzer und Kennwort für ein Agent-Bildschirm, um die Verlagerung Beschränkungen auf einen Agenten Sitzung, wenn der Agent versucht, sich außerhalb ihrer Schicht. Der Standardwert ist 0.| +This setting allows you to restrict agent logins based upon the shifts that are selected below. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is OFF.|Diese Einstellung ermöglicht es Ihnen, Agenten-Logins auf der Grundlage der Veränderungen, die ausgewählt werden. AUS wird nicht in allen Schichten durchzusetzen. START wird nur die Durchsetzung der Login-Zeit, sondern wirkt sich nicht auf einen Vertreter, der mit über die Verlagerung, wenn sie bereits eingeloggt ALL wird durchzusetzen Verlagerung starten und meldet einen Agenten aus, nachdem sie über das Ende ihrer Schicht Zeit. Standardeinstellung ist Aus.| +This setting determines the maximum number of calls that can be placed by the outbound auto-dialing script on this server per second. Must be from 1 to 100. Default is 20.|Diese Einstellung bestimmt die maximale Anzahl von Anrufen, die sich durch den Ausgang Auto-Einwahl-Script auf diesem Server pro Sekunde. Muss zwischen 1 und 100. Der Standardwert ist 20.| +This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40.|Diese Einstellung bestimmt die maximale Anzahl von Anrufen, die sich durch den Automobil-füllen Sie Outbound-Dialing-Skript automatisch für alle Server, pro Sekunde. Muss zwischen 1 und 200. Der Standardwert ist 40.| +System Load|System Load| +Live Channels|Live-Channels| +Disk Usage|Disk Usage| +These two statistics show the loadavg of a system times 100 and the CPU usage percentage of the server and is updated every minute. The loadavg should on average be below 100 multiplied by the number of CPU cores your system has, for optimal performance. The CPU usage percentage should stay below 50 for optimal performance.|Diese beiden Statistiken zeigen, die loadavg ein System mal 100 und die CPU-Auslastung Anteil des Servers und wird jede Minute aktualisiert. Die loadavg sollte im Durchschnitt unter 100 multipliziert mit der Anzahl der CPU-Kernen Ihr System hat, für eine optimale Leistung zu erzielen. Die CPU-Auslastung Prozentsatz sollte Aufenthalt unter 50 für eine optimale Leistung zu erzielen.| +This field shows the current number of Asterisk channels that are live on the system right now. It is important to note that the number of Asterisk channels is usually much higher than the number of actual calls on a system. This field is updated once every minute.|Dieses Feld zeigt die aktuelle Anzahl der Asterisk-Kanäle, die sich live über das System jetzt. Es ist wichtig zu beachten, dass die Anzahl der Kanäle Asterisk ist in der Regel viel höher als die tatsächliche Zahl der Anrufe auf einem System. Dieses Feld wird einmal pro Minute aktualisiert.| +This field will show the disk usage for every partition on this server. This field is updated once every minute.|Dieses Feld wird die Nutzung der Festplatte für jede Partition auf diesem Server. Dieses Feld wird einmal pro Minute aktualisiert.| +ADMIN CHANGE LOG|Änderung der Registrierung ADMIN| +USER ADMIN CHANGE LOG|USER ADMIN Änderung der Registrierung| +SECTION ADMIN CHANGE LOG|ABSCHNITT ADMIN Änderung der Registrierung| +DETAIL ADMIN CHANGE LOG|DETAIL ADMIN Änderung der Registrierung| +Last 10000 records|Letzte 10.000 Datensätze| +Changes made by|Änderungen| +Record Detail|Record Detail| +Section Records|Abschnitt Records| +Click here to see Admin chages to this record|Klicken Sie hier, um zu sehen, Admin chages zu diesem Eintrag| +Click here to see Admin chages to this campaign|Klicken Sie hier, um zu sehen, Admin chages zu dieser Kampagne| +Click here to see Admin chages to this list|Klicken Sie hier, um zu sehen, Admin chages zu dieser Liste| +Click here to see Admin chages to this In-Group|Klicken Sie hier, um zu sehen, Admin chages zu dieser In-Group| +Click here to see Admin chages to this DID|Klicken Sie hier, um zu sehen, Admin chages zu dieser DID| +Click here to see Admin chages to this remote agent|Klicken Sie hier, um zu sehen, Admin chages zu dieser Remote Agent| +Click here to see Admin chages to this user group|Klicken Sie hier, um zu sehen, Admin chages zu dieser Benutzergruppe| +Click here to see Admin chages to this script|Klicken Sie hier, um zu sehen, Admin chages zu diesem Skript| +Click here to see Admin chages to this filter|Klicken Sie hier, um zu sehen, Admin chages dieser Filter| +Click here to see Admin chages to this call time|Klicken Sie hier, um zu sehen, Admin chages zu dieser Aufforderung Zeit| +Click here to see Admin chages to this shift|Klicken Sie hier, um zu sehen, Admin chages zu dieser Verschiebung| +Click here to see Admin chages to this phone alias|Klicken Sie hier, um zu sehen, Admin chages zu diesem Telefon Alias| +Click here to see Admin chages to this group alias|Klicken Sie hier, um zu sehen, Admin chages zu dieser Gruppe Alias| +Click here to see Admin chages to this server|Klicken Sie hier, um zu sehen, Admin chages zu diesem Server| +Click here to see Admin chages to this conf template|Klicken Sie hier, um zu sehen, Admin chages zu dieser Vorlage conf| +Click here to see Admin chages to this carrier|Klicken Sie hier, um zu sehen, Admin chages zu diesem Träger| +Click here to see Admin chages to the system settings|Klicken Sie hier, um zu sehen, Admin chages auf die System-Einstellungen| +Export Reports|Exportieren von Berichten| +This setting if set to 1 will allow a manager to access the export call reports on the REPORTS screen. Default is 0.|Diese Einstellung, wenn auf 1 gesetzt wird ein Manager für den Zugriff auf die Ausfuhr rufen Berichte über die Berichte Bildschirm. Der Standardwert ist 0.| +This setting if set to 1 will allow a manager to click on the download list link at the bottom of a list modification screen to export the entire contents of a list to a flat data file. Default is 0.|Diese Einstellung, wenn auf 1 gesetzt wird ein Manager zu klicken Sie auf den Download-Link-Liste am unteren Rand einer Liste Änderung Bildschirm zu exportieren den gesamten Inhalt eines Verzeichnisses auf eine flache Datei. Der Standardwert ist 0.| +Export Calls Report|Export fordert Bericht| +EXPORT CALLS REPORT|EXPORT ERSUCHT BERICHT| +For the Export Calls Report, the following field order is used for exports|Für die Export-Bericht fordert, um das folgende Feld wird für die Ausfuhr| +Timeclock|Timeclock| +Logout|Logout| +Show Users|Benutzer anzeigen| +Add A New User|Hinzufügen eines neuen Benutzers| +Search For A User|Suche für einen Benutzer| +User Stats|User-Statistiken| +User Status|User Status| +Time Sheet|Time Sheet| +Days Status|Tage Status| +Campaigns Main|Kampagnen Main| +Statuses|Status| +HotKeys|HotKeys| +Lead Recycle|Lead-Recycling| +Auto Alt-Dial|Alt-Auto-Dial| +Auto Alt Dial|Auto Alt Dial| +List Mix|US-Mix| +Pause Codes|Pause Codes| +Basic|Basic| +Detail|Detail| +Survey|Umfrage| +Real-Time|Real-Time| +CAMPAIGN ID|Kampagnen-ID| +DIAL PLAN|DIAL PLAN| +DIAL METHOD|DIAL METHOD| +LEADS COUNT|LEADS COUNT| +LEAD ORDER|BLEI BESTELLUNG| +DIAL STATUSES|DIAL Status| +SCRIPT ID|SCRIPT ID| +SCRIPT NAME|Skriptnamen| +USER GROUP|User Group| +GROUP NAME|Group Name| +PRIORITY|PRIORITY| +FORCE TIMECLOCK|FORCE TIMECLOCK| +CALLTIME ID|CALLTIME ID| +CALLTIME NAME|CALLTIME NAME| +DEFAULT START|DEFAULT START| +DEFAULT STOP|DEFAULT STOP| +SHIFT ID|SHIFT-ID| +SHIFT NAME|UMSCHALT NAME| +SHIFT START|UMSCHALT START| +SHIFT LENGTH|UMSCHALT LÄNGE| +WEEKDAYS|WOCHE| +Template ID|Vorlagen-ID| +Template Name|Template Name| +Carrier ID|Carrier-ID| +Carrier Name|Carrier Name| +Registration|Anmeldung| +Active|Aktive| +USER ID|USER ID| +FULL NAME|FULL NAME| +LEVEL|LEVEL| +LINKS|LINKS| +TRUNKS|Trunks| +HUMAN|HUMAN| +ANSWER|ANTWORT| +CATEGORY|KATEGORIE| +STATUSES IN THIS CATEGORY|Status in dieser Kategorie| +Display|Anzeige| +Dates|Termine| +PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK|Bitte wählen Sie eine Kampagne oder Benutzergruppe und Datum-Zeit oben ein und klicken dann| +PLEASE SELECT A USER AND DATE-TIME ABOVE AND CLICK|Bitte wählen Sie einen Benutzernamen und Datum-Zeit oben ein und klicken dann| +PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK|Bitte wählen Sie eine Kampagne und Datum-Zeit oben ein und klicken dann| +PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT|Wählen Sie eine IM-Gruppe und Zeitraum oberhalb und klicken Sie auf Senden| +DOWNLOAD|DOWNLOAD| +Users|Benutzer| +User|User| +Reports|Berichte| +OUTBOUND|OUTBOUND| +INBOUND|INBOUND| +Server Stats and Reports|Server-Statistiken und Berichte| +Click here to see a VDAD report for this campaign|Klicken Sie hier, um ein VDAD Bericht für diese Kampagne| +Show DIDs|Show DIDS| +Add A New DID|Hinzufügen einer neuen DID| +Templates|Vorlagen| +Carriers|Träger| +Carrier Name|Carrier Name| +Click here to see all CallBack Holds in this user group|Klicken Sie hier, um zu sehen, alle CallBack Platz in dieser Gruppe| +Click here to see all CallBack Holds in this list|Klicken Sie hier, um zu sehen, alle CallBack Platz in dieser Liste| +Click here to see a report for this inbound group|Klicken Sie hier, um zu sehen, einen Bericht für diese Gruppe ein -| +Click here to Synchronize users with Vtiger|Klicken Sie hier, um synchronisieren Sie Benutzer mit vtiger| +Alert Enabled|Alarm aktiv| +Change Date|Datum ändern| +Login Date|Login Datum| +List Last Call Date|US-Last Call Date| +Phone Code Override|Telefon-Nr Override| +GROUP ALIAS ID|GROUP ALIAS ID| +GROUP ALIAS NAME|GROUP Alias-Name| +CID NUMBER|CID NUMBER| +CID NAME|CID NAME| +PHONE ALIAS|TEL ALIAS| +ALIAS ID|ALIAS ID| +ALIAS NAME|Alias-Name| +PHONE LOGINS LIST|TEL Logins LISTE| +Shift Length|Shift Länge| +short description of the shift|Kurze Beschreibung der Verlagerung| +DELETE THIS SERVER|DELETE THIS SERVER| +DELETE THIS CONFERENCE|DELETE Diese Konferenz| +DELETE THIS VICIDIAL CONFERENCE|DELETE THIS VICIDIAL KONFERENZ| +Install Date|Installieren Datum| +Human Answer|Human Antwort| +STATUS CATEGORIES|STATUS KATEGORIEN| +per campaign|pro Kampagne| +all campaigns|Alle Kampagnen| +### START translations for 2.2.0 release ### +Delete From DNC Lists|Löschen von DNC-Listen| +This setting if set to 1 will allow a manager to remove phone numbers from the DNC lists in the VICIDIAL system|Diese Einstellung, wenn auf 1 gesetzt, wird es den Manager, der Telefonnummern aus dem DNC-Listen in der VICIDIAL System zu entfernen| +DNC NOT DELETED|DNC NICHT gelöscht| +This phone number is not in the Do Not Call List|Diese Telefonnummer ist nicht in der Do Not Call List| +DNC DELETED|DNC DELETED| +ADD OR DELETE NUMBERS FROM THE DNC LIST|Hinzufügen oder Löschen von Rufnummern Von der DNC-LISTE| +Add or Delete|Hinzufügen oder Löschen| +Add-Delete Number From DNC|Add-Nummer löschen Von DNC| +Vtiger Search Dead Accounts|Vtiger Suche Dead-Konten| +If Vtiger integration is enabled in the system settings then this setting will define whether deleted accounts will be searched when the agent clicks WEB FORM to search in the Vtiger system. DISABLED- deleted leads will not be searched, ASK- deleted leads will be searched and the vtiger search web page will ask the agent if they want to make the Vtiger account active, RESURRECT- will automatically make the deleted account active again and will take the agent to the account screen without delay upon clicking on WEB FORM. Default is DISABLED|Wenn Vtiger Integration ist in den Systemeinstellungen aktivieren, dann wird diese Einstellung festlegen, ob Gelöschte Konten durchsucht werden, wenn der Agent WEB FORM Mausklicks genügen, um in der vtiger-System sucht. BEHINDERTE-deleted führt nicht durchsucht werden, ASK-führt wird gelöscht hast und der vtiger-Suche Web-Seite wird der Agent fragen, ob sie zu machen, der vtiger-Konto aktiv wollen, RESURRECT-automatisch machen das gelöschte Konto wieder aktiv und würde die Inanspruchnahme Agenten auf das Konto Bildschirm unverzüglich nach Klick auf Web Form. Option ist standardmäßig deaktiviert| +The DISPO option will create a call record for the Vtiger account without the agent needing to go to the vtiger search page through the WEB FORM|Die DISPO Option wird eine Anrufe aufzeichnen der vtiger-Konto erstellen, ohne dass der Agent zu müssen, um der vtiger-Suchseite gehen über den Web Form| +The NEW_WINDOW option will open a new window upon login to the VICIDIAL agent screen|Die NEW_WINDOW Option wird ein neues Fenster bei der Anmeldung an die VICIDIAL Anbieters Bildschirm zu öffnen| +Vtiger Status Call|Vtiger Status Call| +If Vtiger integration is enabled in the system settings then this setting will define whether the status of the Vtiger Account will be updated with the status of the VICIDIAL call after it has been dispositioned. Default is N|Wenn Vtiger Integration ist in den Systemeinstellungen aktivieren, dann wird diese Einstellung fest, ob der Status der vtiger-Konto mit dem Status der VICIDIAL Aufruf aktualisiert wird, nachdem es dispositioned worden ist. Der Standardwert ist N| +There are also 5 additional settings that will define the kind of status: sale, dnc, customer contact, not interested, unworkable|Außerdem gibt es 5 zusätzliche Einstellungen, die die Art Status: Verkauf, DNC, Kundenkontakt, nicht daran interessiert, nicht praktikabel definieren wird| +If the customer is on hold and hears this estimated hold time message, the minimum time that will be played is 15 seconds|Wenn der Kunde gehalten wird, und hört diese geschätzte hold time Nachricht, die Mindestzeit, die abgespielt werden soll 15 Sekunden| +Email, User Code and Territory|E-Mail, User-Code und Territorium| +These are optional fields|Dies sind optionale Felder| +All options except for the Not Interested, Third and Fourth digit options will move on to the Survey Method call path|Alle Optionen mit Ausnahme der nicht interessiert, dritte und vierte Stelle Optionen werden nun zu den Umfrage-Methode nennen Weg| +Survey Third Digit|Umfrage dritte Ziffer| +This allows for a third call path if the Third digit as defined in this field is pressed by the customer|Dies ermöglicht einen dritten Anruf weg, wenn die dritte Stelle in diesem Bereich definiert ist, gedrückt durch den Kunden| +Survey Fourth Digit|Umfrage vierte Stelle| +This allows for a fourth call path if the Fourth digit as defined in this field is pressed by the customer|Dies ermöglicht ein Viertel nennen Weg, wenn die vierte Stelle in diesem Bereich definiert ist, gedrückt durch den Kunden| +Survey Third Audio File|Umfrage Dritten Audio-Datei| +Survey Fourth Audio File|Umfrage Vierte Audio-Datei| +This is the third audio file to be played upon the selection by the customer of the Third Digit option|Dies ist der dritte Audiodatei auf die Auswahl des Kunden von der dritten Stelle Option gespielt werden| +Survey Third Status|Umfrage Dritten Status| +Survey Fourth Status|Umfrage Vierte Status| +This is the third status used for the call upon the selection by the customer of the Third Digit option|Dies ist der dritte Status für den Anruf auf die Auswahl des Kunden von der dritten Stelle Option verwendet| +Survey Third Extension|Umfrage dritte Erweiterung| +Survey Fourth Extension|Umfrage Vierte Verlängerung| +This is the third extension used for the call upon the selection by the customer of the Third Digit option. Default is 8300 which immediately hangs up the call after the Audio File message is played|Dies ist die dritte Erweiterung für den Anruf auf die Auswahl des Kunden von der dritten Stelle Option verwendet. Der Standardwert ist 8300, das hängt unmittelbar den Ruf nach der Audio-Datei Meldung abgespielt ist| +RANDOM: Randomly grabs lead within the statuses and lists defined|RANDOM: Zufällig schnappt führen innerhalb der definierten Status und Listen| +UP LAST CALL TIME: Sorts by the newest local call time for the leads|UP LAST CALL TIME: Sortiert nach den neuesten Ortsgespräch Zeit für die Leitungen| +DOWN LAST CALL TIME: Sorts by the oldest local call time for the leads|DOWN LAST CALL TIME: Sortiert nach den ältesten Ortsgespräch Zeit für die Leitungen| +WARNING, we only recommend List Mix for advanced users, Please read the ViciDial Manager Manual|WARNUNG, empfehlen wir nur Liste Mix für fortgeschrittene Anwender, Bitte lesen Sie die ViciDial Manager-Handbuch| +Add Call Menu|Add-Ruf-Menü| +Copy Call Menu|Copy-Ruf-Menü| +New Call Menu|Neue Call-Menü| +Modify Call Menu|Ändern Call-Menü| +Delete Call Menu|Löschen-Ruf-Menü| +Call Menus|Call-Menüs| +Menu ID|Menü-ID| +This is the ID for this step of the call menu. This will also show up as the context that is used in the dialplan for this call menu|Dies ist die ID für diesen Schritt der Aufforderung Menü. Dies wird auch angezeigt, wie der Kontext, die in der dialplan für diesen Aufruf ist im Menü| +Menu Name|Menu Name| +This field is the descriptive name for the call menu|Dieses Feld ist die Bezeichnung für den Aufruf im Menü| +Menu Prompt|Prompt Menu| +This field contains the file name of the audio prompt to play at the beginning of this menu|Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu Beginn dieses Menüs spielen| +Menu Timeout|Menü-Timeout| +This field is where you set the timeout in seconds that the menu will wait for the caller to enter in a DTMF choice|Dieses Feld ist, wo Sie den Timeout in Sekunden einstellen, dass das Menü wird für den Anrufer in einer DTMF-Wahl geben, warten| +Menu Timeout Prompt|Menü-Timeout Prompt| +This field contains the file name of the audio prompt to play when the timeout has been reached. Default is NONE to play no audio at timeout|Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu spielen, wenn das Zeitlimit erreicht ist. Default ist keiner, der nicht bei Audio-Timeout spielen| +Menu Invalid Prompt|Prompt Menu Ungültige| +This field contains the file name of the audio prompt to play when the caller has selected an invalid option. Default is NONE to play no audio at invalid|Dieses Feld enthält den Dateinamen der Audio-Eingabeaufforderung zu spielen, wenn der Anrufer eine ungültige Option ausgewählt hat. Default ist keiner, der keine Audio-Wiedergabe auf ungültige| +Menu Repeat|Menü wiederholen| +This field is where you define the number of times that the menu will play after the first time if no valid choice is made by the caller. Default is 1 to repeat the menu once|Dieses Feld ist, wo Sie die Anzahl der Male, dass das Menü nach dem ersten Mal, wenn keine gültige Wahl ist vom Anrufer aus spielen wird, zu definieren. Der Standardwert ist 1, um das Menü einmal wiederholen| +Menu Time Check|Menü Time Check| +This field is where you can select whether to restrict the Call Menu access to the specific hours set up in the selected Call Time. If the Call Time is blank, this setting will be ignored. Default is 0 for disabled|Dieses Feld ist, wo Sie wählen, ob der Ruf-Menü Zugriff auf die spezifischen Stunden in der ausgewählten Call Time eingerichtet eingeschränkt werden kann. Wenn der Call Time leer ist, wird diese Einstellung ignoriert. Der Standardwert ist 0 für Behinderte| +Call Time ID|Call Time ID| +This is the Call Time ID that will be used to restrict calling times if the Menu Time Check option is enabled|Dies ist die Call Time-ID, die verwendet werden, zu berufen, mal zu beschränken, wenn die Menü-Time Check Option aktiviert ist| +Track Calls in Real-Time Report|Track fordert in Real-Time-Report| +This field is where you can select whether you want the call to be tracked in the Real-time screen as an incoming IVR type call. Default is 1 for active|Dieses Feld ist, wo Sie wählen, ob Sie den Anruf wollen, in das Echtzeit-Bildschirm als einen eingehenden IVR Call verfolgt werden können. Der Standardwert ist 1 für aktive| +Option Value|Optionswert| +This field is where you define the menu option, possible choices are|Dieses Feld ist, wo Sie den Menüpunkt definieren, Wahlmöglichkeiten| +Option Route|Option Route| +This menu contains the options for where to send the call if this option is selected|Dieses Menü enthält die Optionen für die, wo der Anruf gesendet wird, falls diese Option aktiviert ist| +The special option TIMECHECK can be used only if you have Menu Time Check enabled and there is a Call Time defined for the Menu|Die besondere TIMECHECK Option kann nur verwendet werden, wenn Sie Menü Time Check aktiviert und es gibt einen Call Time definiert für die Menü -| +Option Route Value|Option Route Preis| +This field is where you enter the value that defines where in the selected Option Route that the call is to be directed to|Dieses Feld ist, wo Sie den Wert, der festlegt, wo in der gewählten Route Option, dass der Anruf eingeben, um die Anweisung bekommen,| +Option Route Value Context|Option Route Preis Kontext| +This field is optional and only used for EXTENSION Option Routes|Dieses Feld ist optional und nur für die Extension Option Routen eingesetzt| +ADD A NEW CALL MENU|ADD A NEW CALL MENU| +COPY CALL MENU|COPY CALL MENU| +This menu contains the options for where to send the call if this option is selected: CALLMENU,INGROUP,DID,HANGUP,EXTENSION,PHONE. For CALLMENU, the Route Value should be the Menu ID of the Call Menu that you want the call sent to. For INGROUP, the In-Group that you want the call to be sent to needs to be selected as well as the other 5 options that need to be set to properly route a call to an Inbound Group. For DID, the Route Value needs to be the DID pattern that you want to send the call to. For HANGUP, the Route Value can be the name of an audio file to play before hanging up the call. For EXTENSION, the Route Value needs to be the dialplan extension you want to send the call to, and the Route Value Context is the context that extension is located in, if left blank the context will default to default. For PHONE, the Route Value needs to be the phone login value for the phones entry that you want to send the call to. For VOICEMAIL, the Route Value needs to be the voicemail box number, the unavailable mesage will be played. For AGI, the Route Value needs to be the agi script and any values taht need to be passed to it.|Dieses Menü enthält die Optionen für die, wo der Anruf gesendet wird, falls diese Option ausgewählt ist: CALLMENU, Eigen-, DID, HANGUP, ERWEITERUNG, TEL. Für CALLMENU, sollte die Route Wert auf die Menü-ID des Call-Menü sein, dass Sie den Anruf an. Für die Eigen-, In-Gruppe, die Sie wollen, dass die Aufforderung an die Bedürfnisse geschickt werden, um ausgewählt werden, sowie die anderen 5 Optionen, die Notwendigkeit, ordnungsgemäß Route einen Anruf an eine Inbound-Gruppe eingestellt werden. Für DID, muss der Wert für die Route der DID-Muster, das Sie wollen, um den Anruf zu senden. Für HANGUP kann die Route Wert ist der Name einer Audio-Datei vor dem Aufhängen der Aufforderung zu spielen. DIE ERWEITERUNG, muss der Wert für die Route der dialplan Erweiterung, die Sie möchten den Anruf zu senden, und die Route Preis-Kontext ist der Kontext, dass die Verlängerung in der Lage ist, wenn leer gelassen Rahmen wird standardmäßig auf Standard. Für Telefon, muss die Route Preis zu sein Telefon anmelden Wert für die Handys Eintrag, den Sie möchten den Anruf zu senden. Für Voicemail, muss die Route Wert für die Voice-Mailbox-Nummer, die nicht verfügbar mesage wird abgespielt. Für AGI, muss die Route Wert für die AGI-Skript und alle Werte, die an sie übergeben werden.| +Option Description|Option Beschreibung| +This field is where you can describe the option, this description will be put into the dialplan as a comment above the option|Dieses Feld ist, wo Sie die Möglichkeit, beschreiben kann, wird diese Beschreibung in den dialplan als Kommentar über die Möglichkeit genommen werden| +Source Menu|Quelle Menü| +CALL MENU NOT ADDED|CALL MENU NOT ADDED| +Call Menu ID must be between 2 and 50 characters in length and contain no|Call Menü-ID muss zwischen 2 und 50 Zeichen lang sein und enthalten keine| +CALL MENU ADDED|CALL MENU ADDED| +CALL MENU NOT MODIFIED|CALL MENU NICHT GEÄNDERT| +CALL MENU MODIFIED|CALL MENU MODIFIED| +Click here to see Admin chages to this CALL MENU|Klicken Sie hier, um Admin chages vgl. in diesem CALL MENU| +DELETE THIS CALL MENU|DELETE THIS CALL MENU| +MODIFY A CALL MENU RECORD|Ändern einer CALL MENU RECORD| +Time Check|Time Check| +No Time Check|No Time Check| +Realtime Tracking|Echtzeit-Tracking| +No Realtime Tracking|Nr. Realtime-Tracking| +Call Menu Options|Call-Optionen-Menü| +Option|Option| +CALL MENU NOT DELETED|CALL MENU NICHT gelöscht| +CALL MENU DELETION CONFIRMATION|CALL MENU Bestätigungsfenster| +Click here to delete CALL MENU|Klicken Sie hier, um zu löschen CALL MENU| +CALL MENU DELETION COMPLETED|CALL MENU LÖSCHEN BEENDET| +CALL MENU LISTINGS|CALL MENU LISTINGS| +CALLMENU will send the call to the defined Call Menu|CALLMENU wird der Anruf an die definierten Ruf-Menü| +Call Menu|Call-Menü| +If CALLMENU is selected as the DID Route, then this is the Call Menu that calls will be sent to|Wenn CALLMENU ist wie die DID-Route ausgewählt, dann ist dies der Ruf-Menü, dass Anrufe gesendet werden, werden| +Show Call Menus|Call-Menüs anzeigen| +Add A New Call Menu|Fügen Sie ein neues Call-Menü| +Copy Call Menu|Copy-Ruf-Menü| +To delete an Option, just set the Route to REMOVE and the option will be deleted when you click the SUBMIT button|Um eine Option zu löschen, einfach die Route zu entfernen und die Option wird gelöscht, wenn Sie auf den Submit-Button| +Agent Only Callback Campaign Lock|Agent Only Rückruf-Lock-Kampagne| +This option defines whether AGENTONLY callbacks are locked to the campaign that the agent originally created them under. Setting this to 1 means that the agent can only dial them from the campaign they were set under, 0 means that the agent can access them no matter what campaign they are logged into. Default is 1|Diese Option legt fest, ob AGENTONLY Rückrufe an der Kampagne, dass der Agent ursprünglich erstellt wurde ihnen im Rahmen gesperrt sind. Sie diesen Wert auf 1 bedeutet, dass der Agent kann nur wählen sie aus der Kampagne wurden sie unter festgelegten, 0 bedeutet, dass der Agent auf sie zugreifen, egal was sie in Aktion protokolliert werden können. Der Standardwert ist 1| +Central Sound Control Active|Central Sound Control Active| +This option defines whether the sound synchronization system is active across all servers. Default is 0 for inactive|Diese Option legt fest, ob der Ton-Synchronisierung System aktiv ist, auf allen Servern. Der Standardwert ist 0 für inaktive| +Sounds Web Server|Sounds Web Server| +This is the server name or IP address of the web server that will be handling the sound files on this system, this must match the server name or IP of the machine you are trying to access the audio_store.php webpage on or it will not work. Default is 127.0.0.1|Dies ist die Server-Namen oder die IP-Adresse des Web-Server, der die Sound-Dateien auf diesem System Handling wird, muss dieses Spiel den Server-Namen oder die IP des Rechners, den Sie versuchen, die audio_store.php Webseite über den Zugang oder es wird nicht funktionieren . Standard ist 127.0.0.1| +Sounds Web Directory|Sounds Web-Verzeichnis| +This auto-generated directory name is created at random by the system as the place that the audio store will be kept. All audio files will reside in this directory|Diese automatisch generierten Verzeichnis-Name wird zufällig vom System als den Ort, dass die Audio-Lager gehalten werden geschaffen. Alle Audio-Dateien befinden sich in diesem Verzeichnis| +Audio Store|Audio-Store| +Audio File to Upload|Audio-Datei zum hochladen| +This utility allows you to upload audio files to the web server so that they can be distributed to all of the ViciDial servers in a multi-server cluster. An important note, only two audio file types will work, .wav files that are PCM 16bit 8k and .gsm files that are 8bit 8k. Please verify that your files are properly formatted before uploading them here|Dieses Dienstprogramm ermöglicht es Ihnen, Audio-Dateien-Upload auf den Webserver, so dass sie auf alle ViciDial Server in einer Multi-Server-Cluster verteilt werden. Ein wichtiger Hinweis, nur zwei Audio-Dateitypen funktionieren wird,. Wav-Dateien, die PCM 16bit und 8k. GSM-Dateien, die 8bit 8k sind. Bitte überprüfen Sie, dass Ihre Dateien vor dem Upload korrekt formatiert sind sie hier| +Sounds Update|Klingt Update| +If you want to force a check of the sound files on this server, and the central audio store is enabled as a system setting, then this field will allow the sounds updater to run at the next top of the minute. Any time an audio file is uploaded from the web interface this is automatically set to Y for all servers that have Asterisk active. Default is N|Wenn Sie einen Scheck von Sound-Dateien auf diesem Server erzwingen wollen, und die zentrale Audio-Shop ist als ein System Einstellung aktiviert ist, wird dieses Feld ermöglicht die Töne Updater auf der nächsten Spitze der Minute ausführen. Jedes Mal, wenn eine Audio-Datei wird von der Web-Oberfläche wird automatisch auf Y für alle Server, Asterisk aktive haben hochgeladen. Der Standardwert ist N| +Active Voicemail Server|Active Voicemail-Server| +In multi-server systems, this is the server that will handle all voicemail boxes. This server is also where the dial-in generated prompts will be uploaded from, the 8168 recordings|Im Multi-Server-Systemen, ist dies der Server, der alle Voicemailboxen behandelt. Dieser Server ist auch, wenn die Einwahl-Anweisungen generiert werden aus hochgeladen werden, die 8168 Aufnahmen| +Auto Dial Limit|Auto Dial Limit| +This is the maximum limit of the auto dial level in the campaign screen|Dies ist die maximale Grenze der automatische Einwahl-Ebene in die Kampagne Bildschirm| +User Territories are not active on this system|User Gebiete sind nicht aktiv auf diesem System| +User Territories|User Territories| +List All Territories:|Liste alle Gebiete:| +User Territories Active|User Gebiete Active| +This setting allows you to enable the User Territories setttings from the user modification screen. This feature was added to allow for more integration with a customized Vtiger installation but can have applications in a pure ViciDial system as well. Default is 0 for disabled|Diese Einstellung erlaubt Ihnen, damit die User Gebiete setttings vom Benutzer Änderung Bildschirm. Diese Funktion wurde hinzugefügt, um für mehr Integration mit einem angepassten vtiger-Installation erlauben, aber können Anwendungen in einer reinen ViciDial System haben könnte. Der Standardwert ist 0 für Behinderte| +List Territories|US-Territorien| +Add Territory|Add Territory| +Add User Territory|Benutzer hinzufügen Territory| +Territory|Territory| +Territory Description|Territory Beschreibung| +Territory and Territory Description must be filled in|Territorium und Territory Beschreibung müssen ausgefüllt werden| +there is already a territory in the system with this name|gibt es bereits ein Gebiet, in das System mit diesem Namen| +Territory Added|Territory Added| +Modify Territory|Ändern Territory| +Territory not found|Gebiet nicht gefunden| +This territory is not in the system with this name|Dieses Gebiet ist nicht in das System mit diesem Namen| +Territory Modified|Geändert Territory| +Territory must be filled in|Territory müssen ausgefüllt werden| +Territory Deleted|Gebiet entfällt| +Delete This Territory|Löschen Dieses Gebiet| +Vtiger Accounts|Vtiger-Konten| +Agents|Bevollmächtigte| +Territory, User and Level must be filled in|Territory, Benutzer-und Level müssen ausgefüllt werden| +this territory user is already in the system|dieses Gebiet Benutzer ist bereits im System| +User Territory Added|User Territory Added| +this territory user is not in the system|dieses Gebiet Benutzer ist nicht im System| +User Territory Modified|User Territory Geändert| +Territory and User must be filled in|Territorium und Benutzer müssen ausgefüllt werden| +User Territory Deleted|User Territory entfällt| +Vtiger Change Territory Owner|Vtiger ändern Territory Besitzer| +Had to add user territory|Had to user Gebiet hinzufügen| +Vtiger Territory Owner Changed|Vtiger Territory Besitzer gewechselt| +Records Changed|Geändert Records| +ViciDial Recording Limit|ViciDial Recording-Limit| +This field is where you set the maximum number of minutes that a call recording initiated by ViciDial can be. Default is 60 minutes|Dieses Feld ist, wo Sie die maximale Anzahl der Minuten, die Aufzeichnung eines Anrufs von ViciDial eingeleitet werden kann gesetzt. Der Standardwert ist 60 Minuten| +This is the dial plan context that the agent applications, like ViciDial, primarily use. 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. default is default|Dies ist die Wählplan Zusammenhang, dass der Agent-Anwendungen, wie ViciDial, in erster Linie zu verwenden. Es wird davon ausgegangen, dass alle Zahlen, die durch den Client-Anwendungen gewählt diesem Zusammenhang verwenden, so ist es eine gute Idee, um sicherzustellen, das ist die am weitesten Kontext möglich ist. extensions.conf überprüfen, ob die Datei vor dem Wechsel. Standardmäßig ist der Standard -| +Phone Context|Telefon Kontext| +This is the dial plan context that this phone will use to dial out. If you are running a call center and you do not want your agents to be able to dial out outside of the ViciDial applicaiton for example, then you would set this field to a dialplan context that does not exist, something like agent-nodial. default is default|Dies ist die Wählplan Zusammenhang, dass dieses Handy für die Einwahl zu verwenden. Wenn Sie ein Call-Center ausgeführt werden und Sie nicht möchten, dass Ihre Mitarbeiter in der Lage sein zu wählen, die außerhalb des ViciDial Anwendung zum Beispiel, dann würden Sie dieses Feld auf ein dialplan Zusammenhang, dass es nicht gibt, so etwas wie agent-nodial. Standardmäßig ist der Standard -| +Use the HIDE option to completely remove the customer phone number from the agent display|Verwenden Sie die HIDE-Option zum vollständigen Entfernen der Kunde die Telefonnummer aus der Agenten-Display| +Click here to see a traffic report for this DID|Klicken Sie hier, um ein Traffic-Bericht für das DID| +Agent Time Detail|Agent Time Detail| +User Timeclock Detail Report|User Timeclock Detail Report| +Carrier Logging Active|Carrier Active Logging| +This setting allows you to log all hangup return codes for any outbound list dialing calls that you are placing. Default is N.|Diese Einstellung erlaubt Ihnen, alle hangup Return-Codes für jede ausgehende Liste Wählen log Anrufe, die Sie platzieren. Der Standardwert ist N.| +Drop Lockout Time|Drop Lockout Time| +This is a number of hours that DROP abandon calls will be prevented from being dialed, to disable set to 0. This setting is very useful in countries like the UK where there are regulations preventing the attempted calling of customers within 72 hours of an Abandon, or DROP. Default is 0|Dies ist eine Zahl der Stunden, die DROP aufzugeben Anrufe verhindert werden, daß gewählt, zu deaktivieren, auf 0 gesetzt. Diese Einstellung ist sehr nützlich, in Ländern wie dem Vereinigten Königreich, wo gibt es Vorschriften, die verhindern versucht Berufung des Kunden innerhalb von 72 Stunden ein Abandon oder DROP. Der Standardwert ist 0| +Phone Ring Timeout|Telefon Ring Timeout| +This is the amount of time, in seconds, that the phone will ring in the dialplan before sending the call to voicemail. Default is 60 seconds|Dies ist die Zeit, in Sekunden, die das Telefon in der dialplan, bevor der Anruf an die Voicemail-Ring wird. Der Standardwert ist 60 Sekunden| +Allow Custom Dialplan Entries|Lassen Sie Custom Dialplan Einträge| +This option allows you to enter custom dialplan lines into Call Menus. Default is 0 for inactive|Diese Option ermöglicht es Ihnen, benutzerdefinierte dialplan Zeilen in Call-Menüs geben. Der Standardwert ist 0 für inaktive| +Custom Dilplan Entry|Custom Dilplan Eintrag| +This field allows you to enter in any dialplan elements that you want for the Call Menu|Dieses Feld ermöglicht es Ihnen, in jedem dialplan Elemente, die Sie für die Call-Menü eingeben wollen| +You can enter multiple propmts in this field and the other prompt fields by separating them with a pipe character|Sie können mehrere propmts in dieses Feld eingeben und den anderen Bereichen, prompt, indem Sie diese mit einem Pipe-Zeichen| +Setting this field to zero 0 will mean that there will be no wait time after the prompt is played|Festlegen dieses Feld auf Null 0 bedeutet, dass es keine Wartezeit nach der Eingabeaufforderung geben wird gespielt| +Conf File Secret|Conf-Datei Secret| +This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|Das ist das Geheimnis, oder das Passwort für das Telefon in der IAX oder SIP-auto-generated conf-Datei für dieses Telefon. Der Grenzwert beträgt 20 alphanumerischen Zeichen Bindestrich und Unterstrich akzeptiert. Default is test| +Tracking Group|Tracking-Fraktion| +This is the ID that you can use to track calls to this Call Menu when looking at the IVR Report. The list includes CALLMENU as the default as well as all of the In-Groups|Dies ist die ID, die Sie für Anrufe an dieser Aufforderung Menü Länge, wenn man die IVR-Bericht verwenden können. Die Liste enthält CALLMENU als Standard-sowie alle In-Gruppen| +Agent Alert Filename|Agent Alert Dateiname| +The audio file to play to an agent to announce that a call is coming to the agent. To not use this function set this to X. Default is ding|Die Audio-Datei zu spielen, einen Agenten zu verkünden, dass ein Anruf ankommt, um den Agenten. Um diese Funktion nicht nutzen setzen Sie ihn auf X. Der Standardwert ist ding| +This field as with the other audio fields in In-Groups, with the exception of the Agent Alert Filename, can have multiple audio files played if you put a pipe-separated list of audio files into the field|Dieses Feld wie bei den anderen Audio-Felder im In-Gruppen, mit Ausnahme der Agent Alert Dateiname, können mehrere Audio-Dateien abgespielt, wenn Sie eine Pipe getrennte Liste von Audio-Dateien in den Bereich| +No Agents No Queueing|Nr. Bevollmächtigte Nr. Queueing| +If this field is set to Y or NO_PAUSED then no calls will be put into the queue for this in-group if there are no agents logged in and the calls will go to the No Agent No Queue Action. The NO_PAUSED option will also not send the callers into the queue if there are only paused agents in the in-group. Default is N|Ist dieses Feld auf Y oder NO_PAUSED dann keine Anrufe in die Warteschlange für diese in-Gruppe gesetzt werden, wenn es keine Agenten und die Forderungen angemeldet gehen an die Nr. Agent Nr. Queue Aktion sind. Die NO_PAUSED Option wird auch das Senden der Anrufer in der Warteschlange, wenn es nur angehalten Agenten in der in-group sind. Der Standardwert ist N| +No Agent No Queue Action|Kein Agent Nr. Queue Aktion| +If No Agent No Queue is enabled, then this field defines where the call will go if there are no agents in the In-Group. Default is MESSAGE, this plays the sound files in the Action Value field and then hangs up|Wenn kein Anwalt keine Warteschlange aktiviert ist, wird dieses Feld definiert, wo die anrufen, wenn es keine Mittel sind, gehen in die In-Group. Der Standardwert ist MESSAGE, spielt dieser die Sound-Dateien in das Action Feld Wert und legt dann auf| +No Agent No Queue Action Value|Kein Agent Nr. Queue Preis-Aktion| +This is the value for the Action above. Default is|Dies ist der Wert für die Aktion vor. Der Standardwert ist| +Quick Transfer Button|Quick Transfer Button| +This option will add a Quick Transfer button to the agent screen below the Transfer-Conf button that will allow one click blind transferring of calls to the selected In-Group or number. IN_GROUP will send calls to the Default Xfer Group for this Campaign, or In-Group if there was an inbound call. The PRESET options will send the calls to the preset selected. Default is N for disabled|Diese Option wird ein Quick Transfer-Taste, um den Agenten Bildschirm unter dem Transfer-Conf Schaltfläche -Hinzufügen- klicken, dass man blind Weiterleitung der Gespräche, damit werden die ausgewählten In-Group oder einer Nummer. IN_GROUP werden Anrufe an die Standard-Xfer für diese Kampagne, oder In-Group, wenn es einen eingehenden Anruf. Die Voreinstellungen werden die Aufrufe an die gewählte Voreinstellung. Der Standardwert ist N für Behinderte| +PrePopulate Transfer Preset|Vorab gefüllt Transfer Preset| +This option will fill in the Number to Dial field in the Transfer Conference frame of the agent screen if defined. Default is N for disabled|Diese Option wird in der Anzahl zu Dial-Feld füllen Sie das Transfer Conference Rahmen des Bildschirms, wenn der Agent definiert. Der Standardwert ist N für Behinderte| +Enable TTS Integration|Aktivieren TTS Integration| +This setting allows you to enable Text To Speech integration with Cepstral. This is currently only available for outbound Survey type campaigns. Default is 0 for disabled|Diese Einstellung ermöglicht es Ihnen zu ermöglichen, Text-to-Speech Integration mit Cepstral. Dies ist derzeit nur für Outbound-Kampagnen Art Survey. Der Standardwert ist 0 für Behinderte| +ADD NEW TTS ENTRY|ADD NEW TTS ENTRY| +ADDING NEW TTS ENTRY|Hinzufügen neuer TTS ENTRY| +MODIFY TTS ENTRY|MODIFY TTS ENTRY| +DELETE TTS ENTRY|TTS DELETE ENTRY| +TTS ENTRY LIST|TTS TEILNEHMERLISTE| +TEXT-TO-SPEECH(TTS) LISTINGS|TEXT-to-Speech (TTS) LISTINGS| +Text To Speech|Text To Speech| +Show TTS Entries|TTS Einträge anzeigen| +Add A New TTS Entry|Add A New TTS Eintrag| +TTS ID|TTS-ID| +TTS Name|TTS Name| +TTS Text|TTS Text| +TTS ENTRY NOT ADDED|TTS Eintrag nicht ADDED| +there is already a tts entry in the system with this ID|Es gibt bereits eine tts Eintrag in das System mit dieser ID| +TTS ENTRY ADDED|TTS Entry Hinzugefügt| +MODIFY A TTS RECORD|Ändern eines TTS RECORD| +Click here to see Admin chages to this TTS entry|Klicken Sie hier, um Admin chages vgl. in diesem TTS-Eintrag| +DELETE THIS TTS ENTRY|DELETE THIS ENTRY TTS| +TTS ENTRY NOT MODIFIED|TTS Eintrag nicht MODIFIED| +TTS ENTRY MODIFIED|TTS ENTRY MODIFIED| +TTS ENTRY NOT DELETED|TTS Eintrag nicht DELETED| +TTS ENTRY DELETION CONFIRMATION|TTS ENTRY Bestätigungsfenster| +Click here to delete tts entry|Klicken Sie hier, um den Eintrag zu löschen tts| +This is the short name of a TTS entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 50 characters, minimum of 2 characters|Dies ist der Kurzname eines TTS-Eintrag. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder sonstige Zeichen für dieses Feld. max 50 Zeichen, mindestens 2 Zeichen| +This is a more descriptive name of the TTS entry. This is a short summary of the TTS definition. max 100 characters, minimum of 2 characters|Dies ist um einen beschreibenden Namen des TTS-Eintrag. Dies ist eine kurze Zusammenfassung der TTS-Definition. max 100 Zeichen, mindestens 2 Zeichen| +This option allows you to set the TTS entry to active or inactive|Diese Option ermöglicht es Ihnen, die TTS-Eintrag aktiv oder inaktiv gesetzt| +This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example|Dies ist der eigentliche Text To Speech Datenfeld Cepstral, die für die Erstellung der Audio-Datei gesendet wird, um dem Kunden gespielt werden. Sie können Speech Synthesis Markup Language-SSML-Einsatz in diesem Bereich, zum Beispiel| +for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. Here is a list of the available variables: |für 1 Sekunde Pause. Sie können auch mehrere Variablen wie Vorname, Nachname und Titel wie ViciDial Variablen wie Sie in einem Skript: - A - first_name - B -. Hier ist eine Liste der verfügbaren Variablen:| +Multiple Campaign Drop Rate Group|Mehrere Kampagne Drop Rate Group| +This feature allows you to set a campaign as a member of a Campaign Drop Rate Group, or a group of campaigns whose Human Answered calls and Drop calls for all campaigns in the group will be combined into a shared drop percentage, or abandon rate. This allows you to to run multiple campaigns at once and more easily control your drop rate. This is particularly useful in the UK where regulations permit this drop rate calculation method with campaign grouping for the same company even if there are several campaigns that company is running during the same day. To enable this for a campaign, just select a group from the list. There are 10 groups defined in the system by default, you can contact your system administrator to add more. Default is DISABLED|Diese Funktion erlaubt Ihnen, eine Kampagne als Mitglied einer Kampagne Drop-Rate-Fraktion, oder eine Gruppe von Kampagnen Menge, deren Human Beantwortete Anrufe und Drop fordert für alle Kampagnen in der Gruppe werden in einen gemeinsamen Drop Prozentsatz, oder aufgeben und abstimmen kombiniert werden. Dies ermöglicht es Ihnen, mehrere Kampagnen gleichzeitig und leichter Ablaufsteuerung Ihre Drop-Rate. Dies ist besonders nützlich in Großbritannien, wo die Vorschriften dieser Drop-Rate Berechnungsmethode mit Kampagnen-Gruppierung in der gleichen Firma Bewilligung, auch wenn es mehrere Kampagnen, die Firma läuft am selben Tag. Um dies für eine Kampagne zu aktivieren, wählen Sie einfach eine Gruppe aus der Liste. Es gibt 10 Gruppen in das System standardmäßig definiert, können Sie Ihren Systemadministrator wenden, um mehr hinzuzufügen. Option ist standardmäßig deaktiviert| +IMPORTANT, this is the password only for the agent web interface phone login, to change the sip.conf or iax.conf password, or secret, for this phone device you need to modify the Conf File Secret field further down on this page|Wichtig ist dies das Passwort nur für den Agenten Weboberfläche Telefon anmelden, um die sip.conf oder iax.conf vergessen, oder geheim zu ändern, für dieses Telefon-Gerät müssen Sie die Conf-Datei Secret Feld weiter unten auf dieser Seite ändern| +Agent Status Viewable Groups|Agent Status Sichtbare Gruppen| +This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into|Dies ist eine Liste der wählbaren User Groups und User-Funktionen, auf die Mitglieder dieser Benutzergruppe den Status sowie die Übertragung Anrufe innerhalb des Agent-Bildschirm anzeigen können. Der ALL-GRUPPEN Option ermöglicht es dem Benutzer in dieser Gruppe zu sehen und Anrufe für jeden Benutzer auf dem System. Die Kampagnen-AGENTUREN Option können Benutzer in dieser Gruppe zu sehen und Anrufe für jeden Benutzer in der Kampagne, dass sie angemeldet sind, in| +Agent Status View Time|Agent Status View Time| +This option defines whether the agent will see the amount of time that users in their agent sidebar have been in their current status. Default is N for no or disabled|Diese Option legt fest, ob der Agent die Höhe der Zeit, dass die Nutzer in ihrer Bevollmächtigten Seitenleiste in ihren aktuellen Status zu sehen gewesen sein wird. Der Standardwert ist N nicht oder deaktiviert| +This option allows an agent to disposition a call as CALLBK and choose the date and time at which the lead will be re-activated|Diese Option ermöglicht es einem Agenten um einen Anruf zu Verfügung als CALLBK und wählen Sie das Datum und die Uhrzeit, zu der die Führung wieder aktiviert werden| +Agent View Calls in Queue|Agent Profil Anrufe in der Warteschlange| +If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE|Bei anderen aber none gesetzt ist, werden Vertreter der Lage sein, Informationen über Anrufe, die in der Warteschlange in ihrer Bevollmächtigten Bildschirm zu sehen sind. Wenn auf einen Zahlenwert setzen, die Anrufe angezeigt werden, um die Anzahl begrenzt werden ausgewählt. Der Standardwert ist KEINE| +View Calls in Queue Launch|Profil Anrufe in der Warteschlange Launch| +This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL|Diese Einstellung, wenn auf AUTO eingestellt wird die Anrufe in der Warteschlange Frame angezeigt werden bei der Anmeldung durch den Agenten in der Agent dem Bildschirm haben. Standard ist -Manuell-| +Agent Grab Calls in Queue|Agent Grab Anrufe in der Warteschlange| +This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N|Diese Option, wenn auf Y wird es den Agenten, um den Anruf, dass sie wählen wollen, aus der Anrufe in der Warteschlange anzeigen, indem Sie auf es, während der Pause. Bevollmächtigte werden nur in der Lage, eingehende Anrufe oder übertragen werden ersucht, nicht ausgehende Anrufe zu greifen. Der Standardwert ist N| +Agent Call Re-Queue Button|Call Agent Re-Queue Button| +This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N|Diese Option, wenn auf Y fügt ein Re-Queue Customer-Taste, um den Agenten Bildschirm, so dass der Agent, um den Anruf zu einem AGENTDIRECT Warteschlange, die für den Agenten nur reserviert ist, zu senden. Der Standardwert ist N| +Agent Pause After Each Call|Agent Pause nach jedem Anruf| +This option if set to Y will pause the agent after every call automatically. Default is N|Diese Option, wenn auf Y wird der Agent Pause nach jedem Anruf automatisch. Der Standardwert ist N| +Starts with the highest rank and works its way down|Startet mit dem höchsten Rang und arbeitet sich nach unten| +Starts with the lowest rank and works its way up|Startet mit dem niedrigsten Rang und arbeitet dem Weg nach oben| +Starts with owners beginning with Z and works its way down|Beginnt mit den Eigentümern beginnend mit Z und arbeitet sich nach unten| +Starts with owners beginning with A and works its way up|Beginnt mit den Eigentümern mit A beginnt und arbeitet dem Weg nach oben| +No Hopper Dialing|Nr. Hopper Dialing| +If This is enabled, the hopper will not run for this campaign. This option is only available when the dial method is set to MANUAL or INBOUND_MAN. It is recommended that you do not enable this option if you have a very large lead database, over 100,000 leads. With No Hopper Dialing, the following features do not work: lead recycling, auto-alt-dialing, list mix, list ordering with Xth NEW. If you want to use Owner Only Dialing you must have No Hopper Dialing enabled. Default is N for disabled|Wenn diese aktiviert ist, wird der Trichter nicht ausgeführt werden für diese Kampagne. Diese Option ist nur verfügbar, wenn die DFÜ-Methode, mit manuellen oder INBOUND_MAN gesetzt ist. Es wird empfohlen, dass Sie diese Option nicht aktivieren, wenn Sie eine sehr große Datenbank haben, führen über 100.000 führt. With No Hopper Wählen Sie die folgenden Funktionen nicht:-Recycling, Auto-alt-Dialing, Verzeichnis-Mix, Liste Bestellung mit X. NEW. Wenn Sie Besitzer verwenden Nur Wählen Sie müssen keine Hopper Dialing aktiviert. Der Standardwert ist N für Behinderte| +Owner Only Dialing|Eigentümer nur Dialing| +If This is enabled, the agent will only receive leads that they are within the ownership parameters for. If this is set to USER then the agent must be the user defined in the database as the owner of this lead. If this is set to TERRITORY then the owner of the lead must match the territory listed in the User Modification screen for this agent. If this is set to USER_GROUP then the owner of the lead must match the user group that the agent is a member of. For this feature to work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper Dialing must be enabled. Default is NONE for disabled|Wenn diese aktiviert ist, wird der Agent führt nur zu erhalten, dass sie in das Eigentum Parameter sind. Ist dies der USER dann die Vertreter muß der Benutzer in der Datenbank als Besitzer dies dazu führen, definiert. Ist dies das Hoheitsgebiet dann die Eigentümer der führen muss das Gebiet, in dem User Änderung Bildschirm für dieses Anbieters angegeben haben. Ist dies zu USER_GROUP dann die Eigentümer der führen muss der Benutzer die Gruppe, dass der Agent ist ein Mitglied der übereinstimmen. Für diese Funktion, um die DFÜ-Methode arbeiten müssen, um MANUAL oder INBOUND_MAN und Nr. Hopper Dialing eingestellt werden muss aktiviert sein. Der Standardwert ist KEINE für Behinderte| +Reset Times|Reset Times| +This field allows you to put times in, separated by a dash-, that this list will be automatically reset by the system. The times must be in 24 hour format with no punctuation, for example 0800-1700 would reset the list at 8AM and 5PM every day. Default is empty|In diesem Feld können Sie zu setzen in Zeiten, durch einen Bindestrich getrennt, dass diese Liste automatisch zurückgesetzt werden durch das System. Die Zeiten im 24-Stunden-Format ohne Interpunktion werden, wäre zum Beispiel 0800-1700 die Liste 8 zurückgesetzt und 5pm jeden Tag. Der Standardwert ist leer| +Owner: |Besitzer:| +OWNERS WITHIN THIS LIST|PRIVAT in dieser Liste| +RANKS WITHIN THIS LIST|RANKS in dieser Liste| +Allow Alerts|Lassen Sie Alerts| +This field gives you the ability to allow agent browser alerts to be enabled by the agent for when calls come into their vicidial.php session. Default is 0 for NO|Dieses Feld gibt Ihnen die Möglichkeit an den Agenten Browser erlauben Benachrichtigung durch die Agenten für die Lage versetzt werden, wenn Anrufe kommen in ihre vicidial.php Sitzung. Der Standardwert ist 0 für NO| +Agent Display Dialable Leads|Agent Display dialable Leads| +This option if enabled will show the number of dialable leads available in the campaign in the agent screen. This number is updated in the system once a minute and will be refreshed on the agent screen every few seconds|Diese Option aktiviert wird, wenn die Anzahl der wählbaren führt in die Kampagne in der Agenten-Bildschirm zeigen. Diese Zahl wird in das System einmal pro Minute aktualisiert und wird auf dem Bildschirm des Agenten aktualisiert werden, alle paar Sekunden| +VICIDIAL Balance Rank|VICIDIAL Balance Rang| +This field allows you to set the order in which this server is to be used for balance dialing, if balance dialing is enabled. The server with the highest rank will be used first in placing Balance fill calls. Default is 0|In diesem Feld können Sie die Reihenfolge, in der dieser Server ist für das Gleichgewicht Einwahl verwendet werden, wenn Gleichgewicht Einwahl aktivieren gesetzt ist. Der Server mit dem höchsten Rang wird zuerst zu platzieren Balance füllen Anrufe verwendet. Der Standardwert ist 0| +Inbound Summary Hourly Report|Inbound Zusammenfassung Stunden-Report| +orders by the amount of time agent has been actively waiting for a call|Bestellungen durch die Zeit, die Agenten aktiv gewartet auf einen Anruf| +Agent Script Override|Agent Script Override| +If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the lead is from this list. Default is not set|Ist dieses Feld gesetzt ist, wird dies das Skript, dass der Agent sieht auf dem Bildschirm statt der Kampagne führen, wenn das Skript aus dieser Liste ist. Der Standardwert ist nicht gesetzt| +Music On Hold|Music On Hold| +ADD NEW MUSIC ON HOLD ENTRY|ADD NEW MUSIC ON HOLD ENTRY| +ADDING NEW MUSIC ON HOLD ENTRY|Hinzufügen neuer MUSIC ON HOLD ENTRY| +MODIFY MUSIC ON HOLD ENTRY|MODIFY MUSIC ON HOLD ENTRY| +DELETE MUSIC ON HOLD ENTRY|DELETE MUSIC ON HOLD ENTRY| +MUSIC ON HOLD ENTRY LIST|MUSIC ON HOLD TEILNEHMERLISTE| +We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files|Wir empfehlen DRINGEND Hochladen nur 16bit 8k PCM WAV Audio-Dateien| +Music On Hold ID|Music On Hold ID| +This is the short name of a Music On Hold entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 100 characters, minimum of 2 characters|Dies ist der Kurzname eines Music On Hold Eintrag. Dies muss eine eindeutige Kennung. Verwenden Sie keine Leerzeichen oder sonstige Zeichen für dieses Feld. max 100 Zeichen, mindestens 2 Zeichen| +Music On Hold Name|Music On Hold Name| +This is a more descriptive name of the Music On Hold entry. This is a short summary of the Music On Hold context and will show as a comment in the musiconhold-vicidial.conf file. max 255 characters, minimum of 2 characters|Dies ist ein aussagekräftiger Name des Music On Hold Eintrag. Dies ist eine kurze Zusammenfassung der Music On Hold Kontext und wird als Kommentar in der musiconhold vicidial.conf-Datei zu zeigen. max 255 Zeichen, mindestens 2 Zeichen| +This option allows you to set the Music On Hold entry to active or inactive. Inactive will remove the entry from the conf files|Diese Option ermöglicht es Ihnen, die Wartemusik Eintrag aktiv oder inaktiv gesetzt. Inaktive wird entfernen Sie den Eintrag aus der conf-Dateien| +Random Order|Zufälliger Reihenfolge| +This option allows you to define the playback of the audio files in a random order. If set to N then the defined order will be used|Diese Option ermöglicht es Ihnen, die Wiedergabe der Audio-Dateien in zufälliger Reihenfolge zu definieren. Wenn auf N dann die festgelegten Reihenfolge verwendet werden| +To add a new audio file to a Music On Hold entry the file must first be in the audio store, then you can select the file and click submit to add it to the file list. Music on hold is updated once per minute if there have been changes made. Any files not listed in a music on hold entry that are present in the music on hold folder will be deleted|Um eine neue Audiodatei auf eine Music On Hold Eintrag hinzufügen, muss die Datei zuerst in der Audio zu speichern, dann können Sie die Datei auszuwählen und klicken Sie legt ihn in die Datei-Liste aufzunehmen. Music on Hold ist einmal pro Minute aktualisiert, wenn es zu Veränderungen vorgenommen. Alle Dateien, die nicht in der Wartemusik-Eintrag, der in der Musik präsentieren zu halten Ordner aufgeführt sind, werden gelöscht| +MUSIC ON HOLD ENTRY NOT ADDED|MUSIC ON HOLD Eintrag nicht ADDED| +there is already a moh entry in the system with this ID|Es gibt bereits eine moh Eintrag in das System mit dieser ID| +MUSIC ON HOLD ENTRY ADDED|MUSIC ON HOLD Entry Hinzugefügt| +Click here to see Admin chages to this Music On Hold entry|Klicken Sie hier, um Admin chages vgl. in diesem Music On Hold-Eintrag| +Audio Files|Audio-Dateien| +Add An Audio File|Fügen Sie eine Audio-Datei| +Rank: |Rang:| +MUSIC ON HOLD ENTRY NOT MODIFIED|MUSIC ON HOLD Eintrag nicht MODIFIED| +MUSIC ON HOLD ENTRY MODIFIED|MUSIC ON HOLD ENTRY MODIFIED| +Add A New MOH Entry|Add A New MOH Eintrag| +Show MOH Entries|MOH Einträge anzeigen| +Active Agent Server|Active Agent Server| +Setting this option to N will prevent agents from being able to login to this server through the vicidial agent screen. This is very useful when using a phone login load balanced setup. Default is Y|Das Setzen dieser Option wird die N-Agenten verhindern, dass auf diesem Server durch die vicidial Anbieters Bildschirm anmelden. Dies ist sehr nützlich, wenn Sie ein Telefon anmelden Lastenausgleich Setup. Der Standardwert ist Y| +Rebuild Music On Hold|Rebuild Music On Hold| +If you want to force a rebuilding of the music on hold files or if the music on hold entries or server entries have changed then this should be set to Y. After the music on hold files have been synchronized and reloaded then this will be changed to N. Default is Y|Wenn Sie ein Wiederaufbau der Wartemusik-Dateien Gewalt oder wenn die Wartemusik Einträge oder Server-Einträge geändert haben, dann sollte dies auf Y., nachdem die Wartemusik-Dateien wurden synchronisiert und geladen gesetzt dann geändert werden, um N. Standard ist Y| +MUSIC ON HOLD ENTRY NOT DELETED|MUSIC ON HOLD Eintrag nicht DELETED| +MUSIC ON HOLD ENTRY DELETION CONFIRMATION|MUSIC ON HOLD ENTRY Bestätigungsfenster| +Click here to delete music on hold entry|Klicken Sie hier, um Wartemusik Eintrag löschen| +MUSIC ON HOLD DELETION COMPLETED|MUSIC ON HOLD LÖSCHEN BEENDET| +Starts with Eastern timezones and works West|Startet mit Ost-West Zeitzonen und arbeitet| +Starts with Western timezones and works East|Startet mit westlichen Zeitzonen und arbeitet Osten| +you must select a user group|Sie müssen sich für eine Benutzergruppe| +Enable Second Webform|Aktivieren Zweiten Webform| +WaitForSilence Options|WaitForSilence Optionen| +If Wait For Silence is desired on calls that are detected as Answering Machines then this field has those options. There are two settings separated by a comma, the first option is how long to detect silence in milliseconds and the second option is for how many times to detect that before playing the message. Default is EMPTY for disabled. A standard value for this would be wait for 2 seconds of silence twice|Wenn Wait For Silence ist auf Anrufe, die als Anrufbeantworter dann festgestellt werden diesem Bereich hat die gewünschten Optionen. Es gibt zwei Einstellungen durch ein Komma getrennt, ist die erste Option, wie lange Schweigen in Millisekunden erkennen und die zweite Option ist, wie oft erkennen, dass vor dem Abspielen der Nachricht. Der Standardwert ist LEER für Behinderte. Ein Standard-Wert für dieses wäre für 2 Sekunden Stille warten, zweimal| +This field is for entering the prompt to play when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this to either an audio file in the audio store or a TTS prompt if TTS is enabled on your system|Dieses Feld ist für die Eingabe von der Eingabeaufforderung zu spielen, wenn der Agent einen Anrufbeantworter und Klicks wird auf dem Anrufbeantworter Mitteilung Button in der Übertragung Konferenz Rahmen. Sie müssen diese entweder auf eine Audio-Datei in das Audio-Speicher oder ein TTS set prompt TTS, wenn auf Ihrem System aktiviert ist| +EXTENDED ALTERNATE PHONE NUMBERS FOR THIS LEAD|EXTENDED alternative Rufnummern FÜR DIESES LEAD| +ADD NEW VOICEMAIL BOX|ADD NEW Voicemail-Box| +ADDING NEW VOICEMAIL BOX|Hinzufügen neuer Voicemail-Box| +MODIFY VOICEMAIL BOX|MODIFY Voicemail-Box| +MODIFY A VOICEMAIL BOX|Ändern einer Voicemail-Box| +DELETE VOICEMAIL BOX|DELETE Voicemail-Box| +VOICEMAIL BOXES LIST|Voicemailboxen LISTE| +VOICEMAIL BOXES|Voicemail-Boxen| +ADD NEW VOICEMAIL BOX|ADD NEW Voicemail-Box| +Voicemail ID|Voicemail-ID| +This is the all numbers identifier of this mailbox. This must not be a duplicate of an existing voicemail ID or the voicemail ID of a phone on the system, minimum of 2 characters|Dies ist die Kennung der alle Zahlen dieses Postfach. Das darf nicht sein, ein Duplikat eines vorhandenen Voicemail-ID oder die Voicemail-ID eines Telefons auf dem System, mindestens 2 Zeichen| +This is name associated with this voicemail box. max 100 characters, minimum of 2 characters|Dies ist der Name im Zusammenhang mit dieser Voicemail-Box. max 100 Zeichen, mindestens 2 Zeichen| +This is the password that is used to gain access to the voicemail box when dialing in to check messages max 10 characters, minimum of 2 characters|Dies ist das Kennwort, das verwendet wird, um Zugriff auf die Voicemail-Box beim Wählen Nachrichten zu maximal 10 Zeichen, mindestens 2 Zeichen überprüfen zu gewinnen| +This option allows you to set the voicemail box to active or inactive. If the box is inactive you cannot leave messages on it and you cannot check messages in it|Diese Option ermöglicht es Ihnen, die Voicemail-Box aktiv oder inaktiv gesetzt. Ist das Kontrollkästchen aktiviert kann man nicht die Nachrichten auf sie und man kann nicht kontrollieren Einträge in ihr| +This optional setting allows you to have the voicemail messages sent to an email account, if your system is set up to send out email. If this field is empty then no emails will be sent out|Mit dieser Einstellung können Sie die Voicemail-Nachrichten geschickt haben eine E-Mail-Konto, wenn Ihr System so eingerichtet ist, senden E-Mail. Wenn dieses Feld leer ist, dann wird keine E-Mails verschickt werden| +VOICEMAIL BOX NOT ADDED|Voicemail-Box NOT ADDED| +there is already a voicemail box in the system with this ID|Es gibt bereits eine Voicemail-Box im System mit dieser ID| +there is already a phone in the system with this voicemail ID|gibt es bereits eine Telefonnummer in das System mit dieser Voicemail ID| +VOICEMAIL BOX ADDED|Voicemail-Box ADDED| +VOICEMAIL BOX NOT MODIFIED|Voicemail-Box NICHT GEÄNDERT| +VOICEMAIL BOX MODIFIED|Voicemail-Box MODIFIED| +VOICEMAIL BOX NOT DELETED|Voicemail-Box NICHT gelöscht| +VOICEMAIL BOX DELETION COMPLETED|Voicemail-Box LÖSCHEN BEENDET| +VOICEMAIL BOX DELETION CONFIRMATION|Voicemail-Box Bestätigungsfenster| +Click here to delete voicemail box|Klicken Sie hier, um zu löschen Voicemail-Box| +DELETE THIS VOICEMAIL BOX|DELETE THIS Voicemail-Box| +Click here to see Admin chages to this voicemail box|Klicken Sie hier, um Admin chages vgl. in diesem Voicemail-Box| +The following fields must have data|Die folgenden Felder müssen Daten| +Campaign CID Override|Kampagne CID Override| +If this field is set, this will override the campaign CallerID that is set for calls that are placed to leads in this list. Default is not set|Ist dieses Feld gesetzt ist, wird diese die Kampagne CallerID, dass für Anrufe, die gestellt werden außer Kraft gesetzt ist, führt in dieser Liste. Der Standardwert ist nicht gesetzt| +Answering Machine Message Override|Anrufbeantworter Nachricht Override| +If this field is set, this will override the Answering Machine Message set in the campaign for customers in this list. Default is not set|Ist dieses Feld gesetzt ist, wird diese Vorrang vor den Anrufbeantworter Message in der Kampagne für die Kunden in dieser Liste gesetzt. Der Standardwert ist nicht gesetzt| +Drop Inbound Group Override|Drop Inbound-Fraktion Override| +If this field is set, this in-group will be used for outbound calls within this list that drop from the outbound campaign instead of the drop in-group set in the campaign detail screen. Default is not set|Ist dieses Feld gesetzt ist, in dieser Gruppe wird für ausgehende Anrufe, in dieser Liste verwendet werden, die Tropfen aus dem Outbound-Kampagne statt der Drop-in in der Kampagne Detailbild gesetzt. Der Standardwert ist nicht gesetzt| +Agent Select Territories|Wählen Sie Agent Territories| +If this option is enabled and the agent belongs to at least one territory, the agent will have the option of selecting territories to dial leads from. The agent will see a list of available territories upon login and they will have the ability to go back to that territory list when paused to change their territories. For this function to work the Owner Only Dialing option must be set to TERRITORY and User Terriories must be enabled in the System Settings.|Wenn diese Option aktiviert ist und der Agent gehört mindestens ein Gebiet, wird der Agent die Möglichkeit haben, die Auswahl Gebiete führt vom Zifferblatt. Der Agent wird eine Liste der verfügbaren Gebiete bei der Anmeldung zu sehen und sie wird die Fähigkeit, um wieder auf diesem Gebiet Liste haben, wenn angehalten, ihre Gebiete zu ändern. Für diese Funktion für die Arbeit der Eigentümer nur Dialing-Option zu GEBIET und User Gebiete gesetzt werden muss in den Einstellungen aktiviert werden.| +Agent Choose Territories|Wählen Sie Agent Territories| +This option if set to 1 allows the user to choose the territories that they will receive calls from when they login to a MANUAL or INBOUND_MAN campaign. Otherwise the user will be set to use all of the territories that they are set to belong to in the User Territories administrative section|Diese Option, wenn auf 1 gesetzt, kann der Anwender für die Gebiete wählen, dass sie, wenn sie Anrufe aus dem Login erhalten zu einem manuellen oder INBOUND_MAN Kampagne. Andernfalls wird der Benutzer eingestellt werden, dass alle Gebiete, die sie gesetzt sind, um in der User-Gebieten gehören Verwaltungs-Abschnitt verwenden| +The AREACODE option is just like the Y option, except it is used to also filter out an entire area code in North America from being dialed, in this case using the 201XXXXXXX entry in the DNC list would block all calls to the 201 areacode if enabled|Die AREACODE Option ist ebenso wie die Y-Option, nur dass diese Filter auch einen ganzen Vorwahl in Nordamerika dazu verwendet werden gewählt, in diesem Fall mit dem 201XXXXXXX Eintrag in der Liste DNC würde alle Anrufe in den 201 Ortsvorwahl zu blockieren, wenn aktiviert| +If you have the active DNC option set to AREACODE then you can also use area code wildcard entries like this 201XXXXXXX to block all calls to the 201 areacode when enabled|Wenn Sie die aktive DNC-Option auf -AREACODE dann können Sie auch die Vorwahl Wildcard-Einträge wie 201XXXXXXX, dass alle Anrufe auf die 201 Ortsvorwahl, wenn aktiviert-Block| +Carrier Description|Carrier Beschreibung| +This is put in the comments of the asterisk conf files above the dialplan and account entries. Maximum 255 characters|Dies ist in den Kommentaren des Sternchens conf-Dateien über den dialplan und Account-Einträge setzen. Maximal 255 Zeichen| +CAMPAIGNS ALLOWING THIS IN-GROUP|KAMPAGNEN, diese Erlaubnis in-group| +This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|Das ist das Geheimnis, oder das Passwort für den Server in die IAX automatisch generierte conf für diesen Server auf anderen Servern benötigt. Der Grenzwert beträgt 20 alphanumerischen Zeichen Bindestrich und Unterstrich akzeptiert. Default is test| +Delete Voicemail After Email|Löschen Voicemail Nach E-Mail| +This optional setting allows you to have the voicemail messages deleted from the system after they have been emailed out. Default is N|Mit dieser Einstellung können Sie die Voicemail-Nachrichten aus dem System gelöscht haben, nachdem sie per E-Mail haben gewesen. Der Standardwert ist N| +Last Campaign Call Date|Letzte Kampagne Call Date| +This is the last time that a call was handled by an agent logged into this campaign|Dies ist das letzte Mal, dass ein Anruf wurde durch einen Vertreter in diese Kampagne angemeldet behandelt| +Custom User Fields|Benutzerdefinierte Felder| +These five fields can be used for various purposes, and they can be populated in the web form addresses and scripts as user_custom_one and so on|Diese fünf Felder können für verschiedene Zwecke verwendet werden, und sie können in das Web-Formular Adressen und Skripte als user_custom_one und so weiter gefüllt werden| +CRM Popup Login|CRM Popup Login| +If set to Y, the CRM Popup Address is used to open a new window on agent login to this campaign. Default is N|Wenn auf Y gesetzt, so wird das CRM-Popup-Adresse verwendet, um ein neues Fenster auf Anbieters anmelden, um diese Kampagne zu öffnen. Der Standardwert ist N| +CRM Popup Address|CRM Popup-Adresse| +The web address of a CRM login page, it can have variables populated just like the web form address, with the VAR in the front and using --A--user_custom_one--B-- to define variables|Die Internet-Adresse eines CRM-Login-Seite, kann es Variablen, wie das Web-Formular Adresse bevölkert haben, mit der VAR in der Front und mit - A - user_custom_one - B - Variablen definieren| +If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attempt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attempt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attempt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue, VIDPROMPT will prompt the caller for their ID number and will create a new lead record with the CallerID as the phone number and the ID as the Vendor ID, VIDPROMPTLOOKUP will attempt to lookup the ID in the entire system, VIDPROMPTLOOKUPRL will attempt to lookup the vendor ID by the ID in only one specified list, VIDPROMPTLOOKUPRC will attempt to lookup the vendor ID by the ID in all of the lists that belong to the specified campaign. Default is CID|Wenn IN_GROUP ist wie die DID-Route ausgewählt, dann ist dies die Anrufannahme-Methode für diese Anrufe verwendet. CID wird eine neue Lead-Datensatz mit jedem Anruf mit der CallerID wie die Telefonnummer hinzufügen, wird CIDLOOKUP Versuch, die Telefonnummer, unter der CallerID im gesamten System-Lookup wird CIDLOOKUPRL Versuch, die Telefonnummer, unter der CallerID nur in einer speziellen Liste Lookup , wird CIDLOOKUPRC Versuch, die Telefonnummer, unter der CallerID in allen Listen, die auf die angegebene Kampagne gehören Lookup, CLOSER ist für VICIDIAL Closer fordert angegeben, wird eine neue ANI führen Datensatz hinzufügen bei jedem Anruf mit der ANI wie die Telefonnummer, ANILOOKUP wird versuchen, die Telefonnummer, unter der ANI im gesamten System-Lookup wird ANILOOKUPRL Versuch, die Telefonnummer, unter der ANI nur in einer speziellen Liste Lookup wird XDIGITID der Anrufer von einem X-stelligen Code prompt vor dem Aufruf wird gestellt werden, in der Warteschlange, wird der Anrufer VIDPROMPT prompt für ihre ID-Nummer und eine neue Lead-Satz mit dem CallerID wie die Telefonnummer und die ID als die Hersteller-ID zu erstellen, wird VIDPROMPTLOOKUP Versuch, die ID in das gesamte System-Lookup wird VIDPROMPTLOOKUPRL Versuch, Lookup die Hersteller-ID von der ID nur in einer speziellen Liste, wird VIDPROMPTLOOKUPRC Versuch, den Anbieter von der Lookup-ID ID in allen Listen, die auf die angegebene Kampagne gehören. Der Standardwert ist CID| +UNIFIED_CONTACT- This option will use the beta Vtiger 5.1.0 feature to search by phone number and bring up a search page in Vtiger|UNIFIED_CONTACT-Diese Option wird die Beta-Vtiger 5.1.0 Funktion für die Suche nach der Telefonnummer Nutzung und bringen eine Suchseite in vtiger| +Timer Action|Timer-Aktion| +This feature allows you to trigger actions after a certain amount of time. the D1 and D2 DIAL options will launch a call to the Transfer Conference Number presets and send them to the agent session, this is usually used for simple IVR validation AGI applications or just to play a pre-recorded message. WEBFORM will open the web form address. MESSAGE_ONLY will simply display the message that is in the field below. NONE will disable this feature and is the default|Mit dieser Funktion können Sie die Aktionen nach einer bestimmten Zeit auslösen. D1 und D2 DIAL Optionen werden einen Aufruf der Transfer Conference Anzahl Presets starten und senden sie an die Agenten-Sitzung wird dies in der Regel für einfache IVR Validierung AGI-Anwendungen oder nur eine vorher aufgenommene Nachricht zu spielen verwendet. WebForm öffnet sich das Web-Formular-Adresse. MESSAGE_ONLY wird einfach Display die Meldung, dass unten in das Feld ist. Niemand wird diese Funktion zu deaktivieren und ist der Standard -| +Timer Action Message|Timer Action Message| +This is the message that appears on the agent screen at the time the Timer Action is triggered|Dies ist die Botschaft, die auf dem Bildschirm erscheint Agenten zum Zeitpunkt der Timer-Aktion ausgelöst wird| +Timer Action Seconds|Timer-Aktion Sekunden| +This is the amount of time after the call is connected to the customer that the Timer Action is triggered. Default is -1 which is also inactive|Dies ist die Zeit nach dem Anruf des Kunden, dass die Timer-Aktion wird ausgelöst, verbunden. Der Standardwert ist -1, die auch inaktiv| +This setting will override the Campaign settings|Diese Einstellung überschreibt die Kampagne Einstellungen| +Start Call URL|Start Call URL| +This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. The Start URL does not work for Manual dial calls. Default is blank|Diese Web-URL-Adresse wird nicht von den Agenten zu sehen, aber es ist, wann immer ein Anruf an einen Agenten gesendet werden, wenn es gefüllt wird. Verwendet die gleichen Variablen wie die Web-Formularfelder und Skripte. Diese URL kann nicht ein relativer Pfad. Die Start-URL funktioniert nicht für die manuelle Einwahl fordert. Der Standardwert ist leer| +Dispo Call URL|Dispo Call URL| +This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank|Diese Web-URL-Adresse wird nicht von den Agenten zu sehen, aber es ist, wann immer ein Anruf von einem Agenten dispositioned, wenn sie gefüllt wird. Verwendet die gleichen Variablen wie die Web-Formularfelder und Skripte. dispo und talk_time sind die Variablen, die Sie verwenden können, um den Agenten abrufen definierten Disposition für den Anruf und die tatsächliche Sprechzeit in Sekunden des Anrufs. Diese URL kann nicht ein relativer Pfad. Der Standardwert ist leer| +Xfer-Conf Number Override|Xfer-Conf-Nr Override| +These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank|Diese fünf Felder ermöglichen Sie den Transfer Conference Anzahl Presets zu überschreiben, wenn das Blei aus dieser Liste. Der Standardwert ist leer| +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. If you want to allow Consultative Transfers, a fronter to a closer, have the agent use the CONSULTATIVE checkbox, which does not work for third party non-ViciDial consultative calls. For those just have the agent click the Dial With Customer button. Then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER, for instance if you want to do a call to a special IVR you have set to extension 83900 you would put AXFER83900 in the number-to-dial field|Diese vier Felder können Sie zwei Arten von Transfer zum Konferenz-und DTMF-Presets. Wenn der Anruf oder die Kampagne geladen wird, wird das Skript vicidial.php zwei Tasten auf der Transfer-Konferenz Rahmen und auto show-bevölkern die Zahl-to-Dial und die Sende-DTMF-Felder, wenn gedrückt. Wenn Sie zulassen möchten Beratenden Transfers, ein Fronter, eine engere, haben die Agenten verwenden Sie die Checkbox BERATENDE, die nicht für Dritte nicht funktioniert-ViciDial beratende Anrufe. Für die nur noch der Agent auf die DFÜ mit Kunden-Taste. Dann kann der Agent nur LEAVE-3way-CALL und weiter zu ihrem nächsten Anruf. Wenn Sie möchten, Blind Transfer von Kunden zu einem VICIDIAL AGI-Skript für die Anmeldung oder einer IVR, dann setzen Sie AXFER der Zahl-to-Dial-Bereich zu ermöglichen. Sie können auch eine benutzerdefinierte Erweiterung nach dem AXFER, zum Beispiel, wenn Sie einen Anruf an einen besonderen IVR Sie auf eine Verlängerung 83900 gesetzt würden Sie AXFER83900 der Zahl in Verkehr gebracht werden-to-Dial-Feld| diff --git a/agc_2-X/branches/agc_2.2.0/translations/el_language.txt b/agc_2-X/branches/agc_2.2.0/translations/el_language.txt new file mode 100644 index 00000000..b90ddc66 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/el_language.txt @@ -0,0 +1,485 @@ +# el_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=el +# current languages in the file: +# - English - (en) no alterations +# - Greek - (el) second column +***LANGUAGES*** +en-English|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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"ΙΑΝ"| +"FEB"|"ΦΕΒ"| +"MAR"|"ΜΑΡ"| +"APR"|"ΑΠΡ"| +"MAY"|"ΜΆΙ"| +"JUN"|"ΙΟΝ"| +"JLY"|"ΙΟΛ"| +"AUG"|"ΑΥΓ"| +"SEP"|"ΣΕΠ"| +"OCT"|"ΟΚΤ"| +"NOV"|"ΝΟΕ"| +"DEC"|"ΔΕΚ"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Αγγλικά| +Spanish|Ισπανικά| +French|Γαλλικά| +German|Γερμανικά| +Italian|Ιταλικά| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK_el.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF_el.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON_el.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines_el.gif| +agc_tab_conferences.gif|agc_tab_conferences_el.gif| +agc_tab_main.gif|agc_tab_main_el.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber_el.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF_el.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall_el.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_el.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_el.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall_el.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_el.gif| +vdc_LB_pause.gif|vdc_LB_pause_el.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF_el.gif| +vdc_LB_resume.gif|vdc_LB_resume_el.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_el.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording_el.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording_el.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf_el.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_el.gif| +vdc_LB_webform.gif|vdc_LB_webform_el.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_el.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer_el.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF_el.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer_el.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF_el.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines_el.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF_el.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline_el.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF_el.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser_el.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF_el.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall_el.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF_el.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser_el.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF_el.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial_el.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF_el.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_el.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_el.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf_el.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF_el.gif| +vdc_XB_header.gif|vdc_XB_header_el.gif| +vdc_XB_number.gif|vdc_XB_number_el.gif| +vdc_XB_channel.gif|vdc_XB_channel_el.gif| +vdc_XB_seconds.gif|vdc_XB_seconds_el.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Έχετε αποσυνδεθεί. Σας ευχαριστούμε| +astGUIclient web-client VERSION|ΈΚΔΟΣΗ astGUIclient| +astGUIclient web client|χειριστής astGUIclient| +VICIDIAL web client|χειριστής VICIDIAL| +VICIDIAL web-client version|Έκδοση VICIDIAL| +You can only monitor Zap channels|Μπορείτε μόνο να ελέγξετε τα κανάλια Zap| +Stop Record|Τερματισμός Ηχογράφησης| +you are logged into this phone|συνδεμένος με το τηλ| +Back to Main Window|Επιστροφή στο Βασικό Παράθυρο| +LIVE CALLS ON THIS PHONE|ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ| +LIVE CALLS IN THIS CONFERENCE|ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΥΤΗΝ ΤΗΝ ΔΙΑΣΚΕΨΗ| +LIVE CALL TRANSFER|ΜΕΤΑΦΟΡΑ ΕΝΕΡΓΗΣ ΚΛΗΣΗΣ| +CLIENT CHANNEL|ΚΑΝΑΛΙ ΠΕΛΑΤΩΝ| +REMOTE CHANNEL|ΑΠΟΜΑΚΡΟ ΚΑΝΑΛΙ| +CLICK HERE TO LOG IN AGAIN|ΕΠΙΛΕΞΤΕ ΕΔΩ ΓΙΑ ΝΑ ΣΥΝΔΕΘΕΙΤΕ ΠΑΛΙ| +ACTIVE DISPLAY PAUSED|ΠΑΥΣΗ ΕΝΕΡΓΗΣ ΟΘΟΝΗΣ| +Main Panel|Κύριος Πίνακας| +Active Lines Panel|Πίνακας Ενεργών Γραμμών| +Conferences Panel|Πίνακας διασκέψεων| +Check Voicemail|Ελεγχος Φωνητικού ταχυδρομείου| +Live Call|Ενεργή κλήση| +Hangup Trunk|Κλείσιμο Κορμού| +Hijack Trunk|Κλέψιμο Κορμού| +Listen Trunk|Ακούστε Κορμό| +Active Local Menu|Ενεργές Τοπικές Επιλογές| +Hangup Local|Κλείσιμο τοπικού| +Hijack Local|Κλέψιμο τοπικού| +Listen Local|Ακούστε τοπικό| +Channel to be transferred|Κανάλι προς μεταφορά| +Extensions Menu|Επιλογές τηλ. συνδέσεων| +Send to selected extension|Στείλε στην επιλεγμένη τηλ.σύνδεση| +Send to selected vmail box|Στείλε στο επιλεγμένο vmail| +Send to this number|Στείλε σε αυτόν τον αριθμό| +click on a number below to send to a conference|επιλέξτε έναν αριθμό κατωτέρω που θα σταλεί σε μια διάσκεψη| +Send my channel too|Στείλε το κανάλι μου επίσης| +Conferences Menu|Επιλογές διασκέψεων| +LOCAL Extensions Dial|ΤΟΠΙΚΕΣ τηλ. συνδέσεις Κλήσεως| +Phone calling from|Τηλέφωνο που καλεί από| +Call selected extension|Επιλεγμένη κλήση τηλ. σύνδεσης| +Call selected vmail box|Επιλεγμένη κλήση vmail| +LOCAL DIAL EXTENSIONS|ΤΗΛ.ΣΥΝΔ. ΤΟΠΙΚΗΣ ΚΛΗΣΗΣ| +OUTBOUND CALLS|ΕΞΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ| +INBOUND CALLS|ΕΙΣΕΡΧΟΜΕΝΕΣ ΚΛΗΣΕΙΣ| +Refresh rate|Ρυθμός ανανέωσης| +MANUAL DIAL|ΧΕΙΡ.ΚΛΗΣΗ| +CALL DATE\/TIME|ΗΜΕΡΟΜΗΝΙΑ/ΧΡΟΝΟΣ ΚΛΗΣΗΣ| +LOCAL HANGUP|ΤΟΠΙΚΟ ΚΛΕΙΣΙΜΟ ΤΗΛΕΦΩΝΟΥ| +PARKED CALLS|ΣΤΑΘΜ.ΚΛΗΣΕΙΣ| +PARKED BY|ΣΤΑΘΜΕΥΜΕΝΕΣ ΑΠΟ| +PARKED TIME|ΧΡΟΝΟΣ ΣΤΑΘΜΕΥΣΗΣ| +Registered to|Συμμετέχεις| +Enter Conference|Συμμετοχή| +Dial From Conf|Κλήση από συνψη| +Active Extensions|Ενεργές τηλ. συνδέσεις| +Outside Lines|Εξωτερικές γραμμές| +Local Extensions|Τοπικές τηλ. συνδέσεις| +Data Goes Here|Τα δεδομένα πηγαίνουν εδώ| +Trunk Action|Κίνηση Κορμού| +Local Action|Τοπική Κίνηση| +Conferences List|Κατάλογος διασκέψεων| +Click on a conference room number on the left for info on that conference|Επιλέξτε έναν αριθμό δωματίου συνδιάσκεψης στα αριστερά για τις πληροφορίες σε εκείνη την συνδιάσκεψη| +List Display|Κατάλογος Οθόνης| +Live Extensions|Ενεργές τηλ. συνδέσεις| +Busy Extensions|Απασχολημένες τηλ. συνδέσεις| +Outside Lines|Εξωτερικές γραμμές| +script runtime|χρόνος εκτέλεσης| +Call Log Display|Έμφάνιση Καταγραμμένων Κλήσεων| +is not valid|δεν ισχύει| +or protocol|ή πρωτόκολλο| +Conf Extension Check|Ελεγχος τηλ.σύνδεσης διάσκεψης| +has been registered to|έχει καταχωρηθεί| +LIVE INBOUND CALL|ΕΝΕΡΓΗ ΕΙΣΕΡΧΟΜΕΝΗ ΚΛΗΣΗ| +Number Dialed|Αριθμός που καλέσατε| +SEND TO MY VOICEMAIL|ΣΤΕΙΛΕ ΣΤΟ ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ ΜΟΥ| +Live Extension Check|Ελεγχος ενεργής τηλ.σύνδεσης| +Manager Send|Ο διαχτής στέλνει| +command not inserted|εντολή που δεν έγινε εισαγωγή| +command sent for|εντολή που στέλνεται για| +One of these variables|Μία από αυτές τις μεταβλητές| +must be greater than 2 characters|πρέπει να είναι μεγαλύτερος από 2 χαρακτήρες| +must be greater than 14 characters|πρέπει να είναι μεγαλύτερος από 14 χαρακτήρες| +must be set|πρέπει να τεθεί| +not sent|μην σταλμένος| +Cannot find empty conference|Δεν υπάρχει κενή διάσκεψη| +is not live|δεν είναι ενεργό| +RECORDING WILL LAST UP TO 60 MINUTES|Η ΚΑΤΑΓΡΑΦΗ ΘΑ ΔΙΑΡΚΕΣΕΙ ΜΕΧΡΙ 60 ΛΕΠΤΑ| +Parked Calls Display|Εμφάνιση Σταθμευμένων Κλήσεων| +Database Query Script|Κώδικας ερώτησης βάσεων δεδομένων| +Group Choice|Επιλογή ομάδας| +has been registered to user|έχει καταχωρηθεί στο χρήστη| +HOPPER EMPTY|ΚΕΝΟΣ HOPPER| +LOG NOT ENTERED|ΔΕΝ ΕΓΙΝΕ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΚΑΤΑΓΡΑΦΗ ΓΕΓΟΝΟΤΩΝ| +has been changed to|έχει αλλαχτεί| +information has been updated|οι πληροφορίες έχουν ενημερωθεί| +is now in status|είναι τώρα στη κατάσταση| +Voicemail Check|Έλεγχος φωνητικού ταχυδρομείου| +voicemail box|Κουτί φωνητικού ταχυδρομείου| +Re-Login|Επανασύνδεση| +User Password|Κωδικός πρόσβασης χρήστη| +User Login|Σύνδεση χρήστη| +Phone Login|Σύνδεση Τηλεφώνου| +Phone Password|Κωδικός πρόσβασης Τηλεφώνου| +Campaign not active, please try again|Η εκστρατεία είναι μη ενεργή, παρακαλώ προσπαθήστε πάλι| +Login incorrect, please try again|Η σύνδεση δεν είναι σωστή, παρακαλώ προσπαθήστε πάλι| +Campaign Login|Σύνδεση εκστρατείας| +Sorry, your phone login and password are not active in this system, please try again|Συγγνώμη, αλλά η τηλεφωνική σύνδεση και ο κωδικός πρόσβασής σας δεν είναι ενεργά σε αυτό το σύστημα, παρακαλώ προσπαθήστε πάλι| +leads left to call in hopper|οδηγοί που απέμειναν για κλήση στον hopper| +CAMPAIGN CUSTOM PARKING|ΠΡΟΣΑΡΜΟΣΜΕΝΟΣ ΧΩΡΟΣ ΣΤΑΘΜΕΥΣΗΣ ΕΚΣΤΡΑΤΕΙΑΣ| +CAMPAIGN DEFAULT PARKING|ΠΡΟΕΠΙΛΟΓΗ ΧΩΡΟΥ ΣΤΑΘΜΕΥΣΗΣ ΕΚΣΤΡΑΤΕΙΑΣ| +CAMPAIGN CUSTOM WEB FORM|ΠΡΟΣΑΡΜΟΣΜΕΝΗ ΙΣΤΟΣΕΛΙΔΑ ΕΚΣΤΡΑΤΕΙΑΣ| +CAMPAIGN DEFAULT WEB FORM|ΠΡΟΕΠΙΛΟΓΗ ΙΣΤΟΣΕΛΙΔΑΣ ΕΚΣΤΡΑΤΕΙΑΣ| +CAMPAIGN ALLOWS CLOSERS|Η ΕΚΣΤΡΑΤΕΙΑ ΕΠΙΤΡΕΠΕΙ CLOSERS| +CAMPAIGN ALLOWS NO CLOSERS|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΕΠΙΤΡΕΠΕΙ CLOSERS| +USING PREVIOUS MEETME ROOM|ΧΡΗΣΙΜΟΠΟΙΗΣΗ ΠΡΟΗΓΟΥΜΕΝΟΥ ΔΩΜΑΤΙΟΥ MEETME| +USING NEW MEETME ROOM|ΧΡΗΣΙΜΟΠΟΙΗΣΗ ΝΕΟΥ ΔΩΜΑΤΟΥ MEETME| +old QUEUE and INCALL reverted list|παλιά ΣΕΙΡΑ ΑΝΑΜΟΝΗΣ και σε-κλήση κλήσεις επαναστρέφουν την Λίστα| +old QUEUE and INCALL reverted hopper|παλιά ΣΕΙΡΑ ΑΝΑΜΟΝΗΣ και σε-κλήση κλήσεις επαναστρέφουν τον hopper| +old vicidial_live_agents records cleared|καθαρισμός παλαιών εγγραφών vicidial_live_agents| +campaign is set to auto_dial_level|η εκστρατεία τίθεται στην αυτόματη κλήση| +new vicidial_live_agents record inserted|νέο εισαγωγή εγγραφής vicidial_live_agents| +campaign is set to manual dial|η εκστρατεία τίθεται στη χειρωνακτική κλήση| +Sorry, there are no leads in the hopper for this campaign|Συγγνώμη, δεν υπάρχουν οδηγοί στον hopper για αυτήν την εκστρατεία| +Dial Next Number|Κλήση επόμενου αριθμού| +LIVE CALLS IN YOUR SESSION|ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΤΗ ΣΥΝΟΔΟ ΣΑΣ| +Stop Recording|Στάση ηχογράφισης| +Start Recording|Εναρξη ηχογράφισης| +Transfer number must have more than 1 digit|Ο αριθμός σε μεταφορά πρέπει να έχει περισσότερο από 1 ψηφίο| +Grab Parked Call|Αρπαγμα σταθμευμένης κλήσης| +Park Call|Στάθμευση Κλήσης| +Waiting for Ring|Αναμονή για κουδούνισμα| +Called 3rd party|Κλήση 3ου συμβαλλόμενου μέρους| +LEAVE 3-WAY CALL|ΑΠΟΧΩΡΗΣΗ 3μελής ΚΛΗΣΗΣ| +Dial With Customer|Κλήση με τον πελάτη| +Park Customer Dial|Στάθμευση κλήσης πελάτη| +Hangup Xfer Line|Κλείσιμο Γραμμής Xfer| +Hangup Both Lines|Κλείσιμο και τις δύο γραμμές| +Hangup Customer|Κλείσιμο Πελάτη| +Transfer - Conference|Μεταφορά - διάσκεψη| +LOCAL CLOSER|ΤΟΠΙΚΟΣ CLOSER| +INTERNAL CLOSER|ΕΣΩΤΕΡΙΚΟΣ CLOSER| +Dial Blind Transfer|Τυφλή μεταφορά κλήσης| +Dial timed out, contact your system administrator|Τέλος χρόνος της κλήσης, να έρθετε σε επαφή με το διαχειριστή| +No more leads in the hopper for campaign|Δεν υπάρχουν άλλοι οδηγοί στον hopper για την εκστρατεία| +Web Form|Σελίδα Διαδικτύου| +You Must Select a Disposition|Πρέπει να επιλέξετε ένα τερματισμό| +GROUPS NOT SELECTED|ΟΜΑΔΕΣ ΠΟΥ ΔΕΝ ΕΧΟΥΝ ΕΠΙΛΕΓΕΙ| +SELECTED GROUPS|ΕΠΙΛΕΓΜΕΝΕΣ ΟΜΑΔΕΣ| +You cannot log out during a Dial attempt|Δεν μπορείτε να αποσυνδεθείτε κατά τη διάρκεια μιας προσπάθειας κλήσεως| +Wait 50 seconds for the dial to fail out if it is not answered|Περιμένετε 50 δευτερόλεπτα την κλήση για να αποτύχει εάν δεν απαντέται| +STILL A LIVE CALL! Hang it up then you can log out|Υπάρχει ΑΚΟΜΑ μια ΚΛΗΣΗ ΕΝΕΡΓΗ! Τερματίστε την κλήση και μετά μπορείτε να αποσυνδεθείτε| +Hide conference call channel information|Απόκρυψη πηροφοριών κλήσης καναλιού συνδιάσκεψης| +Show conference call channel information|Παρουσίαση πληροφοριών κλήσης καναλιού διασκέψης| +Logged in as User|Σύνδεση ως χρήστης | +Noone is in your session|Κανένας δεν είναι στη σύνοδό σας| +Customer has hung up|Ο πελάτης έχει κλείσει το τηλέφωνο| +End-of-call Disposition Selection|Επιλογή τερματισμού της κλήσης| +CLOSER INBOUND GROUP SELECTION|CLOSER ΕΙΣΕΡΧΟΜΕΝΗ ΕΠΙΛΟΓΗ ΟΜΑΔΑΣ| +Closer Inbound Group Selection|Επιλογή Closer εισερχόμενης ομάδας| +BLENDED CALLING|ΣΥΝΔΥΑΣΜΕΝΗ ΚΛΗΣΗ| +outbound activated|εξερχόμενες ενεργοποιημένες| +Preview the Lead then|Προβολή καθοδήγησης μετά| +Lead was not reverted, there was an error|Η καθοδήγηση δεν επανήλθε, υπήρξε ένα λάθος| +call was not placed, there was an error|η κλήση δεν τοποθετήθηκε, υπήρξε ένα λάθος| +Number to call|Αριθμός για κλήση| +Customer Information|Πληροφορίες Πελάτη| +Lead Dispositioned As|Τερματισμό Καθοδήγησης όπως| +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|Οποιεσδήποτε αλλαγές που γίνονται στις πληροφορίες πελατών κατωτέρω αυτή τη στιγμή δεν θα είναι, πρέπει να αλλάξετε τις πληροφορίες πελατών ενώπιον σας Hangup η κλήση| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Όταν είναι ενεργό, πιέστε απλά το πλήκτρο κλειδί για τον επιθυμητό τερματισμό της κλήσης. Η κλήση θα τρεματίσει αυτόματα| +Disposition Hot Keys|Πλήκτρα κλειδιά Τερματισμού| +Cust Time|Χρόνος Πελάτη| +RECORD ID|ΤΑΥΤΟΤΗΤΑ ΕΓΓΡΑΦΗΣ| +RECORDING FILE|ΑΡΧΕΙΟ ΗΧΟΓΡ| +HOT KEYS ACTIVE|ΠΛΗΚΤΡΑ ΚΛΕΙΔΙΑ ΕΝΕΡΓΑ| +HOT KEYS INACTIVE|ΠΛΗΚΤΡΑ ΚΛΕΙΔΙΑ ΑΝΕΝΕΡΓΑ| +DIAL OVERRIDE|Υπέρβαση Κλήσης| +SKIP LEAD|Παράλειψη Οδηγού| +DIAL LEAD|ΚΛΗΣΗ ΟΔΗΓΟΥ| +LEAD PREVIEW|ΠΡΟΒΟΛΗ ΟΔΗΓΟΥ| +PAUSE AGENT DIALING|ΤΕΡΜΑΤΙΣΜΟΣ ΚΛΗΣΗΣ| +DISPOSITION CALL|Τερματισμός Κλήσης| + session ID| ID εργασίας| + to campaign| στην εκστρατεία| +Select a CallBack Date|Επιλέξτε μια ημερομηνία CallBack| + maximize | μεγιστοποιήστε | + minimize | ελαχιστοποιήστε | +You must choose a date|Πρέπει να επιλέξετε μια ημερομηνία| +Select a Date Below|Επιλέξτε μια ημερομηνία κατωτέρω| +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|Επιλέξτε μία επανάκληση παρακάτω για να καλέσετε τον πελάτη τώρα. Εάν επιλέξετε μία εγγραφή παρακάτω, θα διαγραφεί από την λίστα| +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|Εάν θέλετε να καλέσετε έναν αριθμό και να μην προστεθεί ως νέος οδηγός, καταχωρήστε τον με την σωστή μορφή στο πεδίο Αγνόησε Κλήση παρακάτω. Για να κλείσετε αυτή την κλήση θα πρέπει να ανοίξετε το ΚΛΗΣΕΙΣ ΣΕ ΑΥΤΗ ΤΗΝ ΔΙΑΙΔΚΑΣΙΑ στο κάτω μέρος της οθόνης και να την κλείσετε επιλέγοντας το κανάλι| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|ΔΕΝ ΜΠΟΡΕΙΤΕ ΝΑ ΠΑΡΑΛΕΙΨΕΤΕ ΜΙΑ ΕΠΑΝΑΚΛΗΣΗ Ή ΧΕΙΡΟΚΙΝΗΤΗ ΚΛΗΣΗ, ΘΑ ΠΡΕΠΕΙ ΝΑ ΚΑΛΕΣΕΤΕ ΤΟΝ ΟΔΗΓΟ| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|ΘΑ ΠΡΕΠΕΙ ΝΑ ΕΙΣΑΣΤΕ ΣΕ ΠΑΥΣΗ ΓΙΑ ΧΕΙΡΟΚΙΝΗΤΗ ΚΛΗΣΗ ΣΕ ΑΥΤΟΜΑΤΗ ΜΕΘΟΔΟ| +Enter information below for the new lead you wish to call|Καταχωρήστε τις πληροφορίες παρακάτω για τον νέο οδηγό που επιθυμήτε να καλέσετε| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|ΘΑ ΠΡΕΠΕΙ ΝΑ ΕΙΣΑΣΤΕ ΣΕ ΠΑΥΣΗ ΓΙΑ ΝΑ ΕΛΕΓΞΕΤΕ ΤΙΣ ΕΠΑΝΑΚΛΗΣΕΙΣ ΣΕ ΑΥΤΟΜΑΤΗ ΜΕΘΟΔΟ| +Note: all new manual dial leads will go into list 999|Σημείωση: όλες οι νέες χειροκίνητες κλήσεις θα πάνε στην λίστα 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|ΔΕΝ ΕΧΕΤΕ ΔΙΚΑΙΩΜΑΤΑ ΓΙΑ ΜΕΤΑΦΟΡΑ ΚΛΗΣΕΩΝ| +will be added to the beginning of this number|θα προστεθεί στην αρχή του αριθμού| +This is usually a 1 in the USA-Canada|Αυτό είναι συνήθως ένα 1 στις ΗΠΑ| +NEW MANUAL DIAL LEAD FOR|ΝΕΑ ΧΕΙΡΟΚΙΝΗΤΗ ΚΛΗΣΗ ΟΔΗΓΟΥ ΓΙΑ| +Finish and Disposition Call|Τελείωσε και Τερμάτισε την Κλήση| +10 digits max - digits only|10 ψηφία μόνο| +Note: a dial prefix of|Σημείωση: ένα πρόθεμα κλήσης από| +Hangup Again|Ξανακλήσε| +Go Back|Επιστροφή| +Call Agent Again|Ξανακάλεσε τον Χειριστή| +MY CALLBACK ONLY|ΜΟΝΟ ΤΗΝ ΕΠΑΝΑΚΛΗΣΗ ΜΟΥ| +ACTIVE CALLBACKS|ΕΝΕΡΓΕΣ ΕΠΑΝΑΚΛΗΣΕΙΣ| +CALLBACKS FOR AGENT|ΕΠΑΝΑΚΛΗΣΕΙΣ ΓΙΑ ΤΟΝ ΧΕΙΡΙΣΤΗ| +Dial Code:|Κωδικός Κλήσης:| +Dial Override|Αγνόησε Κλήση| +digits only please|παρακαλώ μόνο ψηφία| +Dial Now|Κάλεσε Τώρα| +CB Comments|Σχόλια CB| +Title|Τίτλος| + STATUS| ΚΑΤΑΣΤΑΣΗ| +RESET|ΕΠΑΝΑΦΟΡΑ| +CLEAR FORM|ΕΠΑΝΑΦΟΡΑ| +SUBMIT|ΥΠΟΒΑΛΕΤΕ| +Incoming|Εισερχόμενο| +Calling|Σε Κλήση| +Called|Αποκαλούμενος| +Campaign|Εκστρατεία| +Status|Κατάσταση| +Inserted|Εισαγωγή | + seconds|δευτερόλεπτα| +HELP|ΒΟΗΘΕΙΑ| +Login|Σύνδεση| +User|Χρήστης| +Password|Κωδικός πρόσβασης| +VERSION|ΕΚΔΟΣΗ| +BUILD|ΔΗΜΙΟΥΡΓΙΑ| +Server|Κεντρικός υπολογιστής| +RECORD|ΕΓΓΡΑΦΗ| +HANGUP|ΚΛΕΙΣΙΜΟ| +>XFER|>XFER| +PARK|ΣΤΑΘΜΕΥΣΗ| +IN-NUMBER|ΣΕ-ΑΡΙΘΜΟ| +NUMBER|ΑΡΙΘΜΟΣ| +LENGTH|ΜΗΚΟΣ| +CALLERID|CALLERID| +CallerID|CallerID| + CALL| ΚΛΗΣΗ| +PICKUP|ΕΠΑΝΑΛΕΙΨΗ| +CONFERENCE|ΣΥΝΔΙΑΣΚΕΨΗ| +Refresh|Ανανέωση| +Send DTMF|Στείλε DTMF| +ORDER|ΤΑΞΙΝ| + on | στο | +LOGOUT|ΑΠΟΣΥΝΔΕΣΗ| +Channel|Κανάλι| +Extensions|Τηλ.συνδέσεις| +Conferences|Διασκέψεις| +Conference|Διάσκεψη| +Recording|Καταγραφή| +Record|Εγγραφή| +Welcome|Χρήστης| +VOICEMAIL|ΦΩΝ.ΤΑΧ.| + NEW| ΝΕΟ| + OLD| ΠΑΛΑΙΟ| +STOP|ΣΤΑΣΗ| +START|ΕΝΑΡΞΗ| + Pause | Παύση | +Resume|Επανάληψη| +Faster|Γρηγορότερα| +Slower|Πιό αργά| +Initializing|Αρχή| +Invalid|Ακυρο| +Username|Όνομα χρήστη| +CUSTOM|ΣΥΝΗΘΕΙΑ| +Notes|Σημειώσεις| +First|Πρώτο| +MI: |Μσ:| +Last|Επίθετο| +Address|Διεύθυνση| +City|Πόλη| +State|Κράτος| +PostCode|Ταχ.Κωδ.| +Province|Επαρχία| +Vendor ID|ID προμηθευτού| +DialCode|Κωδικός Κλήσης| +Alt. Phone|Εναλ/κό Τηλ| +Show|Παρουσίαση| +Email|Ηλεκτρονικό ταχυδρομείο| +Comments|Σχόλια| +REFRESH|ΑΝΑΝΕΩΣΗ| +ALT PHONE DIAL|ΚΛΗΣΗ ENAΛ/ΚΟΥ ΤΗΛΕΦΩΝΟΥ| +MAIN PHONE|ΚΥΡΙΟ ΤΗΛΕΦΩΝΟ| +ALT PHONE|ΕΝΑΛΛΑΚΤΙΚΟ ΤΗΛΕΦΩΝΟ| +ADDRESS3|3ΔΙΕΥΘΥΝΣΗ| +FINISH LEAD|ΤΕΛΕΙΩΣΤΕ| +Dial Alt Phone Number|Κλήση εναλκού αριθμού| +Phone|Τηλ| + DIAL| ΚΛΗΣΗ| +SUBMIT FAVORITES CHANGES - requires logout|ΥΠΟΒΑΛΤΕ τις ΑΛΛΑΓΕΣ ΣΥΜΠΑΘΕΙΩΝ - απαιτεί την αποσύνδεση| +BACK TO MAIN WINDOW - ignore changes made|ΠΙΣΩ στο ΚΥΡΙΟ ΠΑΡΑΘΥΡΟ - αγνοήστε τις αλλαγές που γίνονται| +AVAILABLE EXTENSIONS|ΔΙΑΘΕΣΙΜΕΣ ΕΠΕΚΤΑΣΕΙΣ| + edit| διορθώστε| + FAVORITES| ΑΓΑΠΗΜΕΝΑ| +### END translation phrases through 1.1.11 release ### +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|Τελείωμα Αναδίπλωσης και Συνέχεια| +seconds remaining in wrapup|απομύνοντα δευτερόλεπτα σε αναδίπλωση| +Call Wrapup:|Αναδίπλωση Κλήσης:| +### months of the year for CallBack date select screen ### +January|Φεβρουάριος| +Frebruary|Ιανουαρίου| +March|Μάρτιος| +April|Απρίλιος| +May|Μάιος| +June|Ιούνιος| +July|Ιούλιος| +August|Αύγουστος| +September|Σεπτέμβριος| +October|Οκτώβριος| +November|Νοέμβριος| +December|Δεκέμβριος| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Προηγούμενες πληροφορίες επανάκλησης| +Last Call: |Στο τέλος καλέστε:| +CallBack: |CallBack:| +Agent: |Πράκτορας:| +Comments: |Σχολιάζει:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|ΟΓΚΟΣ| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|ΓΡΗΓΟΡΟΣ ΠΙΝΑΚΑΣ| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|ΠΡΕΠΕΙ ΝΑ ΠΛΗΚΤΡΟΛΟΓΕΣΕΤΕ έναν ΤΗΛΕΦΩΝΙΚΟ ΑΡΙΘΜΟ ΚΑΙ έναν ΚΩΔΙΚΟΠΙΝΑΚΩΝ στο ΓΡΗΓΟΡΟ ΠΙΝΑΚΑ ΧΡΗΣΗΣ| + SELECT A PAUSE CODE :| ΕΠΙΛΕΞΤΕ έναν ΚΩΔΙΚΑ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ :| +ENTER A PAUSE CODE|ΠΛΗΚΤΡΟΛΟΓΕΣΤΕ έναν ΚΩΔΙΚΟ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|ΠΡΕΠΕΙ ΝΑ ΣΤΑΜΑΤΗΘΕΙΤΕ ΓΙΑ ΝΑ ΠΛΗΚΤΡΟΛΟΓΕΙΤΕ έναν ΚΩΔΙΚΟ ΜΙΚΡΗΣΔΙΑΚΟΠΉΣ στον ΤΡΟΠΟ αυτόματος-ΠΙΝΑΚΩΝ| +Your session has been disabled|Η σύνοδός σας έχει τεθεί εκτός λειτουργίας| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Φύλο:| +Date of Birth: |Ημερομηνία Γέννησης:| +YOU MUST BE PAUSED TO CHANGE GROUPS|Πρέπει να είστε Paused TO CHANGE ΟΜΑΔΕΣ| +Calls in Queue:|Ζητεί, στο Queue:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|Ο χρήστη και τον κωδικό πρόσβασης που πληκτρολογήσατε δεν είναι ενεργό στο σύστημα| +Please try again|Παρακαλώ δοκιμάστε ξανά| +You cannot log in or out within 30 seconds of your last login or logout|Δεν μπορείτε να συνδεθείτε ή να αναφέρονται μέσα σε 30 δευτερόλεπτα από την τελευταία σας login ή logout| +You have now logged-out|Έχετε πλέον συνδεθεί-out| +You logged out at |Έχετε αποσυνδεθεί από την| +Amount of time you were logged-in: |Ποσό φορά που ήταν συνδεδεμένος στο:| +ERROR: timeclock log entry already made: |ERROR: timeclock καταχώρηση αρχείου καταγραφής που έχουν ήδη πραγματοποιηθεί:| +BACK to Agent Login Screen|ΕΠΙΣΤΡΟΦΗ στο γραφείο Σύνδεση οθόνης| +BACK to Administration|ΕΠΙΣΤΡΟΦΗ στην Διοίκηση| +BACK to Welcome Screen|ΕΠΙΣΤΡΟΦΗ στην οθόνη υποδοχής| +Time since you were last logged-in: |Ο χρόνος από την τελευταία φορά που είναι συνδεδεμένος στο:| +You last logged-out at: |Μπορείτε τελευταίου συνδεδεμένου αναφέρονται σε:| +Click LOGIN below to log-in|Κάντε κλικ παρακάτω για να ΕΙΣΟΔΟΣ log-in| +Amount of time you have been logged-in: |Χρονικό διάστημα σας έχει συνδεθεί σε:| +You logged-in at:|Μπορείτε συνδεδεμένος στην διεύθυνση:| +Click LOGOUT below to log-out|Κάντε κλικ παρακάτω για να LOGOUT log-out| +Undefined|Undefined| +This phone number is not in the campaign lists|Αυτός ο αριθμός τηλεφώνου δεν είναι στην εκστρατεία καταλόγους| +Unspecified error|Απροσδιόριστο σφάλμα| +Extended Alt Phone Information: |Εκτεταμένη Alt Τηλέφωνο Πληροφοριών:| +ALT DIAL NUMBER:|ALT ΤΗΛΕΦΩΝΕΙΣΤΕ ΑΡΙΘΜΟΣ:| +Phone Code and Number:|Μήκη και Αριθμός:| +Notes: |Σημειώσεις:| +Active: |Active:| +Alt Count: |Alt Count:| +Change this phone number to INACTIVE|Αλλαγή αυτό τον αριθμό τηλεφώνου για να Ανενεργό| +Change this phone number to ACTIVE|Αλλαγή αυτό τον αριθμό τηλεφώνου για να ΔΡΑΣΤΙΚΗΣ| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|Πρέπει να συνδεθείτε ΣΤΗΝ ΠΡΩΤΗ ΤΟΥ TIMECLOCK| +There is a time synchronization problem with your system, please tell your system administrator|Υπάρχει ένα πρόβλημα συγχρονισμού με το χρόνο σας, παρακαλούμε ενημερώστε τον διαχειριστή του συστήματός σας| +Preview Call|Προεπισκόπηση πρόσκλησης| +SELECT A GROUP ALIAS|ΕΠΙΛΕΞΤΕ ΟΜΑΔΑ ALIAS| +Group Alias Selection|Γνωστός Ομάδα Επιλογής| +Click Here to Choose a Group Alias|Κάντε κλικ εδώ για να Επιλέξτε μια ομάδα Γνωστός| +Group Alias|Ομάδα Γνωστός| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Δεν επιτρέπεται να καλέσετε σε άλλες συνεδρίες πράκτορα| +QUICK TRANSFER|Γρήγορη μεταφορά| +Other Agents Status|Άλλα Κατάσταση Πράκτορες| +Available Agents Transfer|Διαθέσιμο Agents Μεταφορά| +Show Calls In Queue|Παρουσίαση καλεί Στην ουρά| +Calls In Queue|Κλήσεις σε αναμονή| +Hide Calls In Queue|Απόκρυψη καλεί Στην ουρά| +Calls in Queue View Disabled for this campaign|Καλεί σε ουρά Δείτε τα άτομα με ειδικές ανάγκες για αυτή την καμπάνια| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|ΠΡΕΠΕΙ να διακοπεί για να αρπάξει ΚΛΗΣΕΙΣ σε αναμονή| +Manager |Διευθυντής| +has selected your in-group choices|έχει επιλέξει σε σας τις επιλογές της ομάδας| +CONSULTATIVE|ΣΥΜΒΟΥΛΕΥΤΙΚΗ| +Close Message|Κλείσιμο Μήνυμα| +TIMER NOTIFICATION|TIMER ΚΟΙΝΟΠΟΙΗΣΗ| diff --git a/agc_2-X/branches/agc_2.2.0/translations/el_language_admin.txt b/agc_2-X/branches/agc_2.2.0/translations/el_language_admin.txt new file mode 100644 index 00000000..4fdb98ce --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/el_language_admin.txt @@ -0,0 +1,2489 @@ +# el_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=el +# current languages in the file: +# - English - (en) no alterations +# - Greek - (el) second column +***LANGUAGES*** +en-English|el-Ελληνικά| +***FILES*** +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 +vicidial|listloader.pl|1 +vicidial|listloader_rowdisplay.pl|1 +vicidial|listloader_super.pl|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_timeonVDADallSUMMARY.php|0 +vicidial|inbound_popup.php|0 +vicidial|AST_inboundEXTstats.php|0 +vicidial|welcome.php|0 +vicidial|admin_header.php|0 +vicidial|vicidial_sales_viewer.php|0 +vicidial|user_group_bulk_change.php|0 +vicidial|AST_agent_status_detail.php|0 +vicidial|AST_agent_days_detail.php|0 +vicidial|AST_CLOSER_service_level.php|0 +vicidial|AST_IVRfilter.php|0 +vicidial|AST_IVRstats.php|0 +vicidial|call_report_export.php|0 +vicidial|fcstats.php|0 +vicidial|list_download.php|0 +vicidial|non_agent_api.php|1 +vicidial|timeclock_edit.php|0 +vicidial|timeclock_report.php|0 +vicidial|timeclock_status.php|0 +vicidial|vtiger_search.php|1 +vicidial|vtiger_user.php|1 +vicidial|welcome_demo.php|1 +vicidial|welcome_languages.php|1 +vicidial|vicidial_admin_web_logo.gif|1 +vicidial|vicidial_admin_web_logo_small.gif|1 +vicidial|user_territories.php|1 +vicidial|audio_store.php|1 +vicidial|AST_agent_time_detail.php|1 +vicidial|AST_agent_timeclock_detail.php|1 +vicidial|AST_OUTBOUNDsummary_interval.php|1 +vicidial|call_report_export.php|1 +vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 +***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|Αγγλικά| +Spanish|Ισπανικά| +French|Γαλλικά| +German|Γερμανικά| +Italian|Ιταλικά| +You have now logged out. Thank you|Έχετε αποσυνδεθεί. Σας ευχαριστούμε| +Invalid Username\/Password|Ακυρο Ονομα Χρήστη/Κωδικός Πρόσβασης| +ASTERISK ADMIN: Administration|ΣΥΣΤΗΜΑ ΚΛΗΣΕΩΝ: Διαχείριση| +PHONES TABLE|ΠΙΝΑΚΑΣ ΤΗΛΕΦΩΝΩΝ| +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.|Εωτ.Σύνδεση Τηλεφώνου - Αυτό το πεδίο είναι για την καταχώρηση του ονόματος του τηλεφώνου, όπως αυτό εμφανίζεται στο Asterisk, χωρίς να συμπεριλαμβάνει το πρωτόκολλο ή slash στην αρχή. Για παράδειγμα: για SIP τηλέφωνο SIPVtest101 η Εσω.Γραμμή Τηλεφώνου θα είναι test101. Επίσης, για IAX2 τηλέφωνα χρησιμοποιείστε τα πλήρης ονόματα: IAX2/IAXphone1@IAXphone1 θα είναι IAXphone1@IAXphone1. Για Zap τηλέφωνα καταχωρήστε το πλήρες κανάλι: Zap/25-1 θα είναι 25-1. Αλλη σημείωση, ορίστε το πρωτόκολλο παρακάτω σωστά για τον τύπο του τηλεφώνου.| +Dial Plan 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|Αριθμός Σχεδίου Κλήσεων - Αυτό το πεδίο είναι για τον αριθμό που καλείται για να κουδουνίζει το τηλέφωνο. Αυτός ο αριθμός ορίζεται στο αρχείο 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|Περιεχόμενο Φωνητικού Ταχυδρομείου - Αυτό το πεδίο είναι για το περιεχόμενο του φωνητικού ταχυδρομείου, όπου πηγαίνουν τα μηνύματα του τηλεφώνου του χρήστη. Το χρησιμοποιούμαι για να ελέγξουμε τα φωνητικά μηνύματα και για να μπορεί ο χρήστης να χρησιμοποιήσει το πλήκτρο 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 Εξερχομένων - Αυτό το πεδίο είναι για την καταχώριση του αριθμού 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|Δνση IP Τηλεφώνου - Αυτό το πεδίο είναι για την δνση IP του τηλέφωνου εάν είναι ένα VOIP τηλέφωνο. Αυτό είναι ένα προαιρετικό πεδίο| +Computer IP address -<\/B> This field is for the user's computer IP address. This is an optional field|Δνση IP Υπολογιστού - Αυτό το πεδίο είναι για την δνση IP του υπολογιστή του χρήστη. Αυτό είναι ένα προαιρετικό πεδίο| +Server IP -<\/B> This menu is where you select which server the phone is active on|IP Διακομιστή - Αυτός ο κατάλογος επιλογών είναι που επιλέγετε σε ποιον διακομιστή το τηλέφωνο είναι ενεργό| +Login -<\/B> The login used for the phone user to get to admin functions|Σύνδεση - Η σύνδεση χρησιμοποιείται για τον χρήστη τηλεφώνου για την πρόσβαση στις λειτουργίες διαχείρισης| +Password -<\/B> The password used for the phone user to get to admin functions|Κωδκός - Ο κωδικός χρησιμοποιείται για τον χρήστη τηλεφώνου για την πρόσβαση στις λειτουργίες διαχείρισης| +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|Κατάσταση - Η κατάσταση του τηλεφώνου στο σύστημα, ΕΝΕΡΓΗ και ΔΙΑΧ επιτρέπουν στους GUI πελάτες να δουλέψουν. Η ΔΙΑΧ επιτρέπει την πρόσβαση στην ιστοσελίδα διαχείρισης| +Active Account -<\/B> Whether the phone is active to put it in the list in the GUI client|Ενεργός Λογαριασμός - Κατά πόσο το τηλέφωνο είναι ενεργό για να τοποθετηθεί στην λίστα στο GUI| +Phone Type -<\/B> Purely for administrative notes|Τύπος Τηλεφώνου - Απλά για σημειώσεις διαχείρισης| +Full Name -<\/B> Used by the GUIclient in the list of active phones|Πλήρες Ονομα - Χρησιμοποιείται από τον χρήστη GUI στην λίστα ενεργών τηλεφώνων| +Company -<\/B> Purely for administrative notes|Εταιρία - Απλά για σημειώσεις διαχείρισης| +Picture -<\/B> Not yet Implemented|Εικόνα - Δεν έχει υλοποιηθεί ακόμα| +New Messages -<\/B> Number of new voicemail messages for this phone on the Asterisk server|Νέα Μηνύματα - Αριθμός νέων φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk| +Old Messages -<\/B> Number of old voicemail messages for this phone on the Asterisk server|Παλαιά Μηνύματα - Αριθμός παλαιών φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή 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|Πρωτόκολλο Πελάτη - Το πρωτόκολλο που χρησιμοποιεί το τηλέφωνο για συνδεθεί στον διακομιστή 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 - Η διαφορά από την 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|Σύνδεση Διαχειριστή - Αυτή είναι η σύνδεση που χρησιμοποιούν οι 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|Μυστικό Διαχειριστή - Αυτός είναι ο κωδικός που χρησιμοποιούν οι 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|Προκαθορισμένος VICIDIAL Χρήστης - Εδώ ορίζεται μία προκαθορισμένη τιμή χρήστη, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή 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|Προκαθορισμένος VICIDIAL Κωδικός - Εδώ ορίζεται μία προκαθορισμένη τιμή κωδικού, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή 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|VICIDIAL Προκαθορισμένη Εκστρατεία - Εδώ ορίζεται μα προκαθορισμένη τιμή εκστρατείας, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή VICIDIAL. Αφήστε κενό για καμία εκστρατεία| +Park Exten -<\/B> This is the default Parking extension for the client apps. Verify that a different one works before you change this|Εσ.Σύνδ. Στάθμευσης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Στάθμευσης για τις εφαρμογές του χρήστη| +Conf Exten -<\/B> This is the default Conference park extension for the client apps. Verify that a different one works before you change this|Εσ.Σύνδ. Συνδιάλεξης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Συνδιάλεξης για τις εφαρμογές του χρήστη| +VICIDIAL Park Exten -<\/B> This is the default Parking extension for VICIDIAL client app. Verify that a different one works before you change this|Εσωτ.Σύνδεση Στάθμευσης VICIDIAL - Η προκαθορισμένη εσωτ.σύνδεση στάθμευσης. Εξακριβώστε ότι κάποια διαφορετική δουλεύει πριν την αλλάξετε| +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| Αρχείο Στάθμευσης VICIDIAL - Το προκαθορισμένο αρχείο στάθμευσης. Μέχρι 10 χαρακτήρες| +Monitor Prefix -<\/B> This is the dial plan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records|Πρόθεμα παρακολούθησης - Αυτό είναι το πρόθεμα παρακολούθησης των καναλιών ZAP| +Recording Exten -<\/B> This is the dial plan 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|Εσωτ.Σύνδεση Ηχογράφησης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων για την εσωτ.σύνδεση ηχογράφησης που χρησιμοποιείται για μεταφορά στις συνδιαλέξεις, ώστε να ηχογραφηθούν.Extensions.conf | +VMAIL Main Exten -<\/B> This is the dial plan extension going to check your voicemail. verify with extensions.conf file before changing|Βασική Εσωτ.Σύνδεση VMAIL - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων που ελέγχει την θυρίδα ηχητικών μηνυμάτων| +VMAIL Dump Exten -<\/B> This is the dial plan 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|Εσωτ.Σύνδεση απόρριψης VMAIL - Αυτο είναι το πρόθεμα του πλάνου κλήσεων που χρησιμοποιείται στο να στέλνει κλήσεις κατευθείαν στη θυρίδα του χρήστη από μία κλήση| +Exten Context -<\/B> This is the dial plan 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|Περιεχόμενο Εσωτ.Σύνδεσης - Αυτό είναι το περιεχόμενο του πλάνου κλήσεων όπου το τηλέφωνο χρησιμοποιεί| +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 - Αυτό είναι το κανάλι του χρησιμοποιείται για την αποστολή DTMF ήχων στις συνδιαλέξεις| +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|Εξερχόμεη ομάδα κλήσης - αυτή είναι η ομάδα καναλιού όπου οι εξερχόμενες κλήσεις από αυτό το τηλέφωνο τοποθετούνται. Υπάρχουν ρουτίνες που την χρησιμοποιούν. Για τα κανάλια Zap θέλετε να χρησιμοποιήσετε κάτι σαν Zap/g2, για IAX2 trunks θα θέλετε να χρησιμοποιήσετε το πλήρες πρόθεμα IAX όπως IAX2/VICItest1:secret@10.10.10.15:4569. Ελέγξτε τα trunks με το αρχείο 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|Περιοχή Ιστο-Πλοηγού - Αυτό χρειάζεται μόνο σε Linux συστήματα| +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|Κατάλογος Εγκατάστασης - |Αυτό είναι το μέρος που πρέπει υπάρχουν τα προγράμματα astGUIclient και astVICIDIAL +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|CallerID URL - Αυτή είναι η Δνση της ιστοσελίδας που χρησιμοποιείται για αναζήτηση με callerID| +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|Προκαθορισμένο VICIDIAL URL - Αυτή είναι η δνση ιστοσελίδας που χρησιμοποιείται για προσαρμοσμένα 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 hang up 'h' extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly|Καταγραφή Γεγονότων Κλήσης - Αυτό τοποθετείται σε αληθές εάν το αρχείο 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|Μεταγωγή Χρήστη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να μεταβούν σε άλλον λογαριασμό χρήστη| +Conferencing -<\/B> Set to true to allow user to start conference calls with upto six external lines|Σε συνδιάλεξη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να ξεκινούν συνδιαλέξεις μέχρι 6 εξωτερικές γραμμές| +Admin Hang Up -<\/B> Set to true to allow user to be able to hang up any line at will through astGUIclient. Good idea only to enable this for Admin users|Διαχειριστού Κλείσιμο- Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να κλείνουν κάθε γραμμή| +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|Διαχειριστού Κλέψιμο - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδήποτε γραμμή| +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|Διαχειριστού Παρακολούθηση - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδποτε γραμμή| +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 hang up. Usually enabled for all|Στάθμευση Κλήσης - Εάν το θέσετε σε αληθές θα επιτρέπετε σε χρήστες να σταθμεύουν κλήσεις και κλήσεις σε αναμονή να διαχειρίζονται από οποιοδήποτε άλλο ρήστη. Οι κλήσεις μένουν σε αναμονή για 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|Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές θα εμφανίζεται ένα παράθυρο ειδοποίησης, ότι η ώρα ενημέρωσης δεν έχει αλλάξει σε 20 δευτερόλεπτα| +AF Logging -<\/B> Set to true to log many actions of astGUIclient usage to a text file on the user's computer|AF Καταγραφή Γεγονότος - Εάν το θέσετε σε αληθές θα καταγράφονται οι ενέργειες χρήσης του 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|Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές οι εφαρμογές θα χρησιμοποιούν το 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 - Εάν το θέσετε σε αληθές θα επιτρέψετε σε αριθμούς ορισμένους στο αρχείο extensions.conf, να στέλνουν οθόνες με CallerID στους astGUIclient χρήστες| +VMail Button -<\/B> Set to true to display the VOICEMAIL button and the messages count display on astGUIclient|VMail Πλήκτρο - Εάν το θέσετε σε αληθές θα εμφανιστεί το πλήκτρο 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|Ταχύτητα Ανανέωσης - Εάν το θέσετε σε αληθές ενεργοποιείται ένα νέο ρυθμό ανανέωσης πληροφοριών κλήσης για το 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|Ρυθμός Ανανέωσης Ταχύτητας - σε χιλιοστά δευτερολέπτου. Χρημοποιείται μόνο εάν η Ταχύτητα Ανανέωσης είναι ενεργοποιημένη. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 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|Συνεχής MySQL - Εάν είναι ενεργοποιημένο, το 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|Αυτόματη Κλήση Επόμενου Αριθμού - Εάν είναι ενεργοποιημένο, μετά από τον τερματισμό θα γίνει κλήση του επόμενου αριθμού, εκτός εάν επιλέξουμε "Μη κάνεις κλήσεις"| +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|Σταμάτα την ηχογράφηση μετά από κάθε κλήση - Εάν είναι ενεργοποιημένο η ηχογράφηση θα σταματήσει μετά τον τερματισμό| +DBX Server -<\/B> The MySQL database server that this user should be connecting to|DBΧ Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί| +DBX Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|DBΧ Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk| +DBX User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|DBΧ Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron| +DBX Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|DBΧ Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234| +DBX Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBΧ Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306| +DBY Server -<\/B> The MySQL database server that this user should be connecting to|DBY Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί| +DBY Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|DBY Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk| +DBY User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|DBY Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron| +DBY Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|DBY Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234| +DBY Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBY Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306| +Redirect command sent for channel|Η εντολή ανακατεύθυνσης στάλθηκε για το κανάλι| +Look up this customer in Customer Service System|Αναζήτηση του Πελάτη στο Σύστημα Εξυπηρέτησης Πελατών| +Redirect command FAILED for channel|Η εντολή ανακατεύθυνσης ΑΠΕΤΥΧΕ για το κανάλι| +PLEASE SELECT A NUMBER AND DATE ABOVE AND CLICK SUBMIT|ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΕΝΑΝ ΑΡΙΘΜΟ ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ ΑΝΩΤΕΡΩ, ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ| +Total Calls That came into this number|Συνολικές κλήσεις που ήρθαν σε αυτό τον αριθμό| +Average Call Length(seconds) for all Calls|μέσος όρος κλήσεων(σε δευτερόλεπτα) για όλες τις κλήσεις| +Total DROP Calls: (less than 10 seconds)|Συνολικά ΕΓΚΑΤΑΛΕΙΜΕΝΕΣ Κλήσεις: (μικρότερες από 10 δευτερόλεπτα)| +Average Call Length(seconds) for DROP Calls|Μέσος όρος κλήσεων(σε δευτερόλεπτα) για ΕΓΚΑΤΑΛΕΙΜΕΝΕΣ κλήσεις| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS|ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ| +Click on the channel below that you would like to have directed to your phone|Πατήστε στο κανάλι παρακάτω, που θα επιθυμούσατε να έχετε κατευθύνει στο τηλέφωνό σας| +LAST 1000 CALLS FOR DATE RANGE|ΤΕΛΕΥΤΑΙΕΣ 1000 ΚΛΗΣΕΙΣ ΓΙΑ ΤΟ ΔΙΑΣΤΗΜΑ ΗΜΕΡΟΜΗΝΙΑΣ| +Click here to see what leads are in the hopper right now|Πατήστε εδώ για να δείτε ποιοι οδηγοί είναι στον hopper τώρα| +CUSTOM STATUSES WITHIN THIS CAMPAIGN|ΠΡΟΣΑΡΜΟΣΜΕΝΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +PLEASE SELECT A CAMPAIGN ABOVE AND CLICK SUBMIT|ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΜΙΑ ΕΚΣΤΡΑΤΕΙΑ ΑΝΩΤΕΡΩ ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ| +PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK SUBMIT|ΠΑΡΑΚΑΛΩ ΕΠΙΛΕΞΤΕ ΜΙΑ ΕΚΣΤΡΑΤΕΙΑ ΚΑΙ ΜΙΑ ΗΜΕΡΟΜΗΝΙΑ ΑΝΩΤΕΡΩ, ΚΑΙ ΠΑΤΗΣΤΕ ΕΠΙΒΕΒΑΙΩΣΗ| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS PLACED FROM THIS CAMPAIGN|ΓΡΑΦΙΚΗ ΠΑΡΑΣΤΑΣΗ ΜΕ 15ΛΕΠΤΕΣ ΑΥΞΗΣΕΙΣ ΤΩΝ ΣΥΝΟΛΙΚΩΝ ΚΛΗΣΕΩΝ ΠΟΥ ΤΟΠΟΘΕΤΟΥΝΤΑΙ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +ERROR: The file does not have the required number of fields to process it|Λάθος: Το αρχείο δεν έχει τον απαιτούμενο αριθμό πεδίων| +ERROR: File exceeds the 8MB limit|Λάθος: Το αρχείο ξεπέρασε το όριο των 8ΜΒ| +Please enter the group you want to get hourly stats for|Παρακαλώ, καταχωρήστε την ομάδα για την οποία θέλετε στατιστικά ανά ώρα| +The search variables you entered are not active in the system|Οι μεταβλητές αναζήτησης που καταχωρήσατε δεν είναι ενεργές στο σύστημα| +Please go back and double check the information you entered and submit again|Παρακαλώ, επιστρέψτε πίσω και ελέγξτε τις πληροφορίες που καταχωρήσατε και προσπαθήστε πάλι| +Click here to see the Lead Details|Πατήστε εδώ για να δείτε τις λεπτομέρειες του οδηγού| +SERVERS TABLE|ΠΙΝΑΚΑΣ ΔΙΑΚΟΜΙΣΤΩΝ| +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 Διακομιστή - Σε αυτό το πεδίο ορίζεται το όνομα του διακομιστή Asterisk, είναι μόνο μία επωνυμία ώστε να αναγνωρίζεται από τους διαχειριστές| +Server Description -<\/B> The field where you use a small phrase to describe the Asterisk server|Περιγραφή Διακομιστή - Το πεδίο στο οποίο περιγράφεται με μία φράση τον διακομιστή Asterisk| +Server IP Address -<\/B> The field where you put the Network IP address of the Asterisk server|Δνση IP Διακομιστή - Το πεδίο που ορίζεται η δνση IP του δικτύου του διακομιστή Asterisk| +Active -<\/B> Set whether the Asterisk server is active or inactive|Ενεργός - Ορίζει κατά πόσον ο διακομιστής 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|Εκδοση 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|Μέγιστος Αριθμός Trunk του VICIDIAL - Αυτό το πεδίο θα προσδιορίσει τον μέγιστο αριθμό γραμμών, τις οποίες θα χρησιμοποιήσει η διεργασία αυτόατης κλήσης. Εάν θέλετε να αφιερώσετε δύο 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|Telnet Πελάτης - Αυτή είναι η δνση ή το όνομα του διακομιστή 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|Πόρτα Telnet - Αυτή είναι η πόρτα της σύνδεσης με τον διαχειριστή του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι '5038'| +Manager User -<\/B> The username or login used to connect genericly to the Asterisk server manager. Default is 'cron'| Διαχειριστής Χρήστης - Το όνομα χρήστη που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι 'cron'| +Manager Secret -<\/B> The secret or password used to connect genericly to the Asterisk server manager. Default is '1234'|Μυστικό Διαχειριστή - Το μυστικό ή κωδικός που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι '1111'| +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|Ενημέρωση Χρήστη Διαχειριστή - Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή 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|Ακουσμα Χρήστη Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή 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|Αποστολή Διακομιστή Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή 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'|GMT offset Διακομιστής - Η διαφορά σε ώρες από την 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'|Εσωτ.σύνδεση απόρριψης VMail - Το πρόθεμα εσωτ.σύνδεσης που χρησιμοποιείται στον διακομιστή για να στείλει τις κλήσεις κατευθείαν μέσω 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'|VICIDIAL AD εσωτ.σύνδεση - Η προκαθορισμένη εσωτ.σύνδεση εάν δεν έχει οριστεί στην εκστρατεία για να στείλει τις κλήσεις στην διεργασία αυτόματης κλήσης. Η προκαθορισμένη είναι '8365'| +Default Context -<\/B> The default dial plan context used for scripts that operate for this server. Default is 'default'|Προκαθορισμένο Περιεχόμενο - Το προκαθορισμένο περιεχόμενο του πλάνου κλήσεων για διεργασίες του διακομιστή. Το προκαθορισμένο είναι 'προκαθορισμένο'| +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|ID Χρήστη - Σε αυτό το πεδίο τοποθετείται ο αριθμός ID του χρήστη, μπορεί να είναι μεταξύ 2 και 8 ψηφία| +Password -<\/B> This field is where you put the VICIDIAL users password. Must be at least 2 characters in length|Κωδικός - Σε αυτό το πεδίο τοποθετείται ο κωδικός του χρήστη στο VICIDIAL. Πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +Full Name -<\/B> This field is where you put the VICIDIAL users full name. Must be at least 2 characters in length|Πλήρες Ονομα - Αυτό το πεδίο είναι που μπορείτε να ορίσετε το πλήρες όνομα των χρηστών 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|Επίπεδο Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε το επίπεδο χρήστη των 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|Ομάδα Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε την ομάδα χρηστών που ανήκει ο χρήστης| +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|Σύνδεση Τηλεφώνου - εδώ μπορείτε να θέσετε μία προκαθορισμένη σύνδεση τηλεφώνου κατά την είσοδο του χειριστή στο 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|Κωδικός Τηλεφώνου - εδώ μπορείτε να θέσετε ένα προκαθορισμένο κωδικό τηλεφώνου κατά την είσοδο του χειριστή στο 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|Διαγραφή Χρηστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει άλλους χρήστες ίσου ή μικρότερου επιπέδου από το σύστημα| +Delete User Groups -<\/B> This option if set to 1 allows the user to delete user groups from the system|Διαγραφή Ομάδων Χρηστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις ομάδες χρηστών από το σύστημα| +Delete Lists -<\/B> This option if set to 1 allows the user to delete vicidial lists from the system|Διαγραφή Λιστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις λίστες από το σύστημα| +Delete Campaigns -<\/B> This option if set to 1 allows the user to delete vicidial campaigns from the system|Διαγραφή Εκστρατειών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις εκστρατείες από το σύστημα| +Delete In-Groups -<\/B> This option if set to 1 allows the user to delete vicidial In-Groups from the system|Διαγραφή Εισ-Ομάδων - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τις Εισ-Ομάδες από το σύστημα| +Delete Remote Agents -<\/B> This option if set to 1 allows the user to delete vicidial remote agents from the system|Διαγράψτε τους Απομακρυσμένους Χειριστές - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τους απομακρυσμένους χειριστές από το σύστημα| +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|Εισαγωγή Οδηγών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να εισάγει τους οδηγούς στον πίνακα vicidial_list μέσω του βασισμένου σε Ιστοσελίδα Εισαγωγέα οδηγών| +Campaign Detail -<\/B> This option if set to 1 allows the user to view and modify the campaign detail screen elements|Λεπτομέρειες Εκστρατείας - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να δει και να τροποποιήσει τα λεπτομερή στοιχεία της εκστρατείας| +AGC Admin Access -<\/B> This option if set to 1 allows the user to login to the astGUIclient admin pages|AGC Πρόσβαση Διαχειριστή - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να συνδεθεί στις σελίδες του astGUIclient ως διαχειριστής| +AGC Delete Phones -<\/B> This option if set to 1 allows the user to delete phone entries in the astGUIclient admin pages|AGC διαγραφή τηλεφώνων - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να διαγράψει τα τηλέφωνα στις σελίδες του διαχειριστή του astGUIclient| +Delete Scripts -<\/B> This option if set to 1 allows the user to delete Campaign scripts in the script modification screen|Διαγραφή Βοηθού - εάν θέσετε σε 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|Ταυτότητα Βοηθού - αυτό είναι το σύντομο όνομα ενός Βοπηθού. Πρέπει να είναι ένα μοναδικό προσδιοριστικό. Προσπαθήστε να μην χρησιμοποιήσετε οποιαδήποτε διαστήμα ή στίξη για τους 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|Όνομα Βοηθού - αυτός είναι ο τίτλος ενός Βοηθού. Αυτή είναι μια σύντομη περίληψη. 2-50 χαρακτήρες. Δεν πρέπει να υπάρξουν διάστηματα ή στίξεις σε αυτό το πεδίο| +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|Σχόλια Βοηθού - εδώ μπορείτε να τοποθετήσετε τα σχόλια για έναν Βοηθό. 2-255 χαρακτήρες | +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----

    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?

    This would read----

    Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?|Κείμενο Βοηθού - εδώ μπορείτε να ορίσετε το περιεχόμενο ενός Οδηγού. Ελάχιστος αριθμός χαρακτήρων είναι 2. | +Active -<\/B> This determines whether this script can be selected to be used by a campaign|Ενεργός - αυτό καθορίζει εάν αυτός ο οδηγός μπορεί να επιλεχτεί για να χρησιμοποιηθεί από μια εκστρατεία| +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|ID Εκστρατείας - Αυτό είναι το σύντομο όνομα της εκστρατείας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 2 και 8 χαρακτήες| +Campaign Name -<\/B> This is the description of the campaign, it must be between 6 and 40 characters in length|Ονομα Εκστρατείας - Αυτό είναι η περιγραφή της εκστρατείας, πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες| +Active -<\/B> This is where you set the campaign to Active or Inactive. If Inactive, noone can log into it|Ενεργοποίηση - Εδώ μπορείτε να θέσετε την εκστρατεία ενεργή ή μη ενεργή. Εάν είναι μη ενεργή, κανένας δεν μπορεί να συνδεθεί σε αυτήν| +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|Τηλ.Σύνδεση Στάθμευσης - Εδώ μπορείτε να ορίσετε την μουσική αναμονής για το 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|ν Αρχείου Στάθμευσης - Εδώ μπορείτε να προσαρμόσετε την μουσική αναμονής για το 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|Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυτήν την ομάδα| +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|Επιτρέπει τους Closers - Εδώ ορίζετε εάν οι χρήστες της εκστρατείας θα έχουν την επιλογή να στείλουν την κλήση σε έναν 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|Κατάσταση Κλήσης - Εδώ ορίζετε τις καταστάσεις που θέλετε να κληθούν μέσα στις λίστες, οι οποίες είναι ενεργές για την εκστρατεία παρακάτω| +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|Ταξινόμηση Λίστας - Σε αυτόν τον κατάλογο επιλογών μπορείτε να επιλέξετε πώς οι οδηγοί, που ταιριάζουν με τις καταστάσεις που επιλέξατε παραπάνω, θα τοποθετηθούν στον hopper| +select the first leads loaded into the vicidial_list table|επιλογή των πρώτων οδηγών που εισήχθησαν στον πίνακα vicidial_list| +select the last leads loaded into the vicidial_list table|επιλογή των τελευταίων οδηγών που εισήχθησαν στον πίνακα vicidial_list| +select the highest phone number and works its way down|επιλογή του υψηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα κάτω| +select the lowest phone number and works its way up|επιλογή του χαμηλότερου τηλεφωνικού αριθμού και συνεχίζει προς τα πάνω| +starts with last names starting with Z and works its way down|έναρξη με τα επίθετα να ξεκινάνε με Ζ και συνεχίζει προς τα κάτω| +starts with last names starting with A and works its way up|έναρξη με τα επίθετα να ξεκινάνε με Α και συνεχίζει προς τα πάνω| +starts with most called leads and works its way down|έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα κάτω| +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|έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε άλλο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων| +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|έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε τρίτο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων| +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|έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει προς τα πάνω με την εισαγωγή ενός ΝΕΟΥ οδηγού για κάθε τέταρτο οδηγό - Πρέπει να ΜΗΝ έχει νέα επιλεγμένα στις καταστάσεις κλήσεων| +starts with least called leads and works its way up|έναρξη με τους λιγότερους σε κλήση οδηγούς και συνεχίζει| +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|Επίπεδο Hopper - Αυτό είναι το πόσους οδηγούς η διαδικασία 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|Υποχρεωτική Επαναφορά του Hopper - Αυτό σας επιτρέπει καθαρίσετε τα περιεχόμενα κατά την επιβεβαίωση της φόρμας. Αυτό θα συμβεί πάλι όταν η διαδικασία 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|Επίπεδο Αυτόματης Κλήσης - Εδώ είναι που καθορίζεται πόσες γραμμές θα χρησιμοποιούνται ανά ενεργό χρήστη. Μηδέν (0) σημαίνει ότι η αυτόματη κλήση είναι μη ενεργή και οι χρήστες πατούν το πλήκτρο για την κλήση κάθε αριθμού. Διαφορετικά, το σύστημα καλεί γραμμές ίσες με τους ενεργούς χρήστες, πολλαπλασιασμένους με το επίπεδο κλήσης και σύμφωνα με το πόσες γραμμές η εκστρτεία σε κάθε διακομιστή επιτρέπει| +Next Agent Call -<\/B> This determines which agent receives the next call that is available|Επόμενη Κλήση Χρήστη - Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη| +orders by the random update value in the vicidial_live_agents table|ταξινομημένο με τυχαία τιμή ενημέρωσης στον πίνακα 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|ταξινομημένο με την τελευταία φορά που σε ένα χρήστη στάλθηκε μία κλήση. Με αποτέλεσμα, ο χρήστης να λαμβάνει συνολικά το ίδιο αριθό κλήσεων| +orders by the last time an agent finished a call. AKA agent waiting longest receives first call|ταξινομημένο με την τελευταία φορά που ένας χρήστης τελείωσε μία κλήση. Ο χρήστης που περιμένει περισσότερο λαμβάνει την πρώτη κλήση| +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|Τοπική Ωρα Κλήσης - Εδώ, μπορείτε να ορίσετε τις ώρες που θα θέλατε να γίνουν οι κλήσεις. Αυτό ελέγχετε από τον κωδικό περις και ρυθμίζεται για 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|Φωνητικό Ταχυδρομείο - Εάν έχει οριστεί, οι κλήσεις που φυσιολογικά θα ΕΓΚΑΤΑΛΕΙΠΟΝΤΑΝ, θα κατευθυνθούν σε αυό το φωνητικό ταχυδρομείο, ώστε να ακούσετε και να αφήσετε ένα μήνυμα| +Dial Timeout -<\/B> If defined, calls that would normally hang up 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|Κλήση Εκτός Χρόνου - άν έχει οριστεί, οι κλήσεις που φυσιολογικά θα έκλειναν μετά το χρόνο που έχει οριστεί στο 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 dial plan - extensions.conf|Πρόθεμα Κλήσης - Αυτό το ο επιτρέπει την πιο εύκολη αλλαγή της διαδρομής της κλήσης να βγει έξω μέσω διαφορετικής μεθόδου, χωρίς να γίνει επαναφόρτωση στο 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. 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 Εκστρατείας - Αυτός ο τομέας επιτρέπει την αποστολή ενός αριθμού συνήθειας callerid στις εξερχόμενες κλήσεις. Αυτό είναι ο αριθμός που θα παρουσίαζε στο callerid του προσώπου που καλείτε. Η προεπιλογή είναι ΑΓΝΩΣΤΗ. Εάν χρησιμοποιείτε το T1 ή Eί να σχηματίσει έξω αυτήν την επιλογή είναι μόνο διαθέσιμος εάν χρησιμοποιετε PRIs - ISDN Tί ή Eί - που ανοίγουν το χαρακτηριστικό γνώρισμα συνήθειας callerid, αυτό δεν θα λειτουργήσει με την υπηρεσία ληστεύω-κομματιών - RBS - κυκλώματα. Αυτό θα λειτουργήσει επίσης μέσω του περισσότερου VOIP - ΓΟΥΛΙΑ ή κορμοί IAX - προμηθευτές που επιτρέπουν δυναμικό εξερχόμενο callerID. Η σνήθεια callerID ισχύει μόνο για τις κλήσεις που τοποθετούνται για την εκστρατεία VICIDIAL άμεσα, οποιεσδήποτε κλήσεις ή μεταφορές 3$ων συμβαλλόμενων μερών δεν θα στείλουν τη συνήθεια callerID. ΣΗΜΕΙΩΣΗ: Μερικές φορές να βάλει ΑΓΝΩΣΤΗ ή ΙΔΙΩΤΙΚΗ στον τομέα θα παραγάγει την αποστολή του αριθμού προεπιλογής σας callerID από το μεταφορέα σας με τις κλήσεις. Μπορείτε να θελήσετε να εξετάσετε αυτό και να υποβάλετε 0000000000 ο τομέας callerid αντ' αυτού εάν δεν θέλετε να σας στείλετε CallerID| +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|Τηλ.Σύνδεση Εκστρατείας VDAD - Αυτό το πεδίο επιτρέπει γαι μία προσαρμόσιμη 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|Τηλ.Επέκταση εκσρατείας Ηχογρ - αυτό το πεδίο επιτρέπει να ορίσετε μία επέκταση ηχογράφησης που χρησιμοποιείται με το VICIDIAL. Αυτό επιτρέπει να χρησιμοποιήσετε διαφορετικές επεκτάσεις ανάλογα με πόσο χρόνο θέλετε να επιτρέψετε μία ηχογράφηση και ποιο τύπος κωδικοποιητή-αποκωδικοποιητή θα χρσιμοποιηθεί. Η προεπιλογή είναι 8309 και θα καταγράψει με το σχήμα 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|Ηχογράφηση εκστρατείας - αυτή η επιλογή επιτρέπει να επιλέξετε το επίπεδο ηχογράφησης σε αυτήν την εκστρατεία. NEVER θα θέσει εκτός λειτουργίας την ηχογράφηση στον πελάτη. 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|Όνομα αρχείου ηχογρ εκστρατείας - αυτό το πεδίο επιτρέπει να προσαρμόσετε το όνομα της ηχογράφησης, όταν η ηχογράφηση της εκστρατείας είναι ONDEMAND ή ALLCALLS. Οι μεταβλητές είναι CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. Η προεπιλογή είναι 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|Βοηθός εκστρατείας - αυτές οι επιλογές επιτρέπουν να επιλέξετε τον Βοηθό που θα εμφανιστεί στην οθόνη των χειριστών για αυτήν την εκστρατεία. Επιλέξτε 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|Κατά την έναρξη κλήσης - αυτές οι επιλογές επιτρέπουν να επιλέξετε εάν θέλετε την αυτόματη έναρξη μίας ιστο σελίδας σε ένα διαφορετικό παράθυρο, αυτόματη μεάβαση στον Βοηθό ή τίποτα| +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 dial plan - extensions.conf - and make sure it plays an audio file then hangs up|Μήνυμα αυτόματου τηλεφωνητού - αυτός το πεδίο χρησιμοποιείτε για τις τυφλές κλήσεις μεταφοράς όταν παίρνει ο χειριστής έναν αυτόματο τηλεφωνητή και χτυπά στο πλήκτρο μηνυμάτων αυτόματων τηλεφωνητών στο πλαίσιο διασκέψεων μεταφοράς. Πρέπει το θέσετε αυτό στο dial plan - 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|ID Λίστας - Αυτό είναι το αριθμητικό όνομα της λίστας, δεν μπορεί να διορθωθεί μετά από την αρχική εισαγωγή, πρέπει να περιέχει μόνο αριθμούς και πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες| +List Name -<\/B> This is the description of the list, it must be between 2 and 20 characters in length|Ονομα Λίστας - Αυτή είναι η περιγραφή της λίστας, πρέπει να είναι μεταξύ 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|Εκστρατεία - Αυτή είναι η εκστρατεία όπου ανήκει η λίστα. Μία λίστα μπορεί μόνο να κληθεί από μία εκστρατεία κάθε φορά| +Active -<\/B> This defines whether the list is to be dialed on or not|Ενεργή - Αυτό ορίζει κατά πόσον η λίστα πρόκειται να κληθεί ή όχι| +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|Επαναφορά Κατάστασης-Κλήσης-Καθοδήγησης για την λίστα - Αυτό επαναφέρει τους οδηγούς σε αυτή την λίστα στο Ν σε \"μη κληθέντα από την τελευταία επαναφορά\" και σημαίνει ότι για οποιαδήποτε καθοδήγηση μπορεί να γίνει κλήση εάν είναι η σωστή κατάσταση, όπως ορίσθηκε στην οθόνη τις εκστρατείας| +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|ID Ομάδας - Αυτό είναι το σύντομο όνομα της εισερχόμενης ομάδας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 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|Ονομα Ομάδας - Αυτή είναι η περιγραφή της ομάδας, πρέπει να είναι μεταξύ 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|Χρώμα Ομάδας - Αυτό είναι το χρώμα που εμφανίζεται στην VICIDIAL εφαρμογή όταν η κλήση έρχεται σε αυτή την ομάδα. Πρέπει να είναι μεταξύ 2 και 7 χαρακτήρες. Εάν αυτό είναι ορισμένο ως hex , θα πρέπει να τοποθετήσετε ένα # στην αρχή του κειμένου ή το VICIDIAL δεν θα δουλεύει σωστά| +Active -<\/B> This determines whether this group show up in the selection box when a VICIDIAL agent logs in|Ενεργοποίηση - Αυτό καθορίζει κατά πόσον αυτή η ομάδα εμφανίζεται στο κουτί επιλογής όταν ένας χρήστης συνδέεται| +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|Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυ την ομάδα| +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|Φωνητικό Ταχυδρομείο - Εάν ορίζεται, αυτό είναι το περιεχόμενο φωνητικού ταχυδρομείου όπου οι κλήσεις θα πηγαίνουν, αντί να εγκαταλείπονται εάν δεν υπάρχουν διαθέσιμοι χρήστες μετά τον χρόνο ναμονής| +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|Οθόνη Μπροστινού - Αυτό το πεδίο καθορίζει κατά πόσον στον 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|Αρχή ID Χρήστη - Αυτό είναι η αρχή του 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|Αριθμός Γραμμών - Αυτό ορίζει πόσες καταχωρήσεις απομακρυσμένων χρηστών το σύστημα δημιουρ, και καθορίζει πόσες γραμμές μπορεί με ασφάλεια να στείλει στον αριθμό παρακάτω| +Server IP -<\/B> A remote agent entry is only good for one specific server, here is where you select which server you want|IP Διακομιστή - Μία καταχώρηση απομακρυσμένου χρήστη είναι μόνο καλό για ένα συγκεκριμένο διακομιστή, εδώ επιλέγετε τον διακομιστή που ανήκει| +External Extension -<\/B> This is the number that you want the calls forwarded to. Make sure that it is a full dial plan 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|Εξωτερική Τηλ.Σύνδεση - Αυτός είναι ο αριθμός που θέλετε οι κλήσεις να προωθούνται. Επιβεβαιώστε ότι είναι ένας πλήρης αριθμός από το σχέδιο κλήεων και εάν θέλετε ένα 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|Κτάσταση - Εδώ μπορείτε να θέσετε τον απομακρυσμένο χρήστη σε ενεργό και μη ενεργό. Μόλις ο χρήστης γίνει ενεργός το σύστημα μπορεί να στείλει κλήσεις σε αυτόν. Μπορεί να διαρκέσει μέχρι 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|Εκστρατεία - Εδώ μπορείτε να επιλέξετε την εκστρατεία όπου οι απομακρυσμένοι χρήστες θα συνδεθούν. Για εισερχόμενες πρέπει να χρησιμοποιηθεί η εκστρατεία 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|Εισερχόμενες Ομάδες - Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία 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|Οι λίστες της εκστρατείας παρουσιάζονται εδώ, και εάν είναι ενεργές (Υ ή Ν) μπορείτε να πάτε στην οθόνη λίστας με το να πατήσετε στο 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|Με την χρήση προσαρμοσμένων καταστάσεων εκστρατείας, μπορείτε να έχετε καταστάσεις μόνο για συγκεκριμένες εκστρατείες. Η κατάσταση πρέπει να είναι 1-8 χαρακτήρες, η περιγραφή 2-30 χαρακτήρες και Επιλέξιμα καθορίζεται αν εμφανίζεται στο VICIDIAL ως τερματισμός| +Through the use of custom campaign hot keys, agents that use the vicidial web-client can hang up and disposition calls just by pressing a single key on their keyboard|Με την χρήση προσαρμοσμένων κλειδιών εκστρατείας, οι χρήστες που χρησιμοποιούν την εφαρμογή 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|Ομάδα Χρήστη - Αυτό είναι το σύντομο όνομα της Vicidial ομάδας χρήστη, πρσπαθήστε να μην χρησιμοποιήσετε κενά ή στίξεις για αυτό το πεδίο. Από 2 μέχρι 20 χαρακτήρες| +Group Name -<\/B> This is the description of the vicidial user group max of 40 characters|Ονομα Ομάδας- Αυτή είναι η περιγραφή της 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- Συνδ DTMF - αυτά τα τέσσερα πεδία επιτρέπουν να έχετε δύο σύνολα συνδιάσκεψης μεταφοράς και DTMF. Όταν η κλήση ή η εκστρατεία φορτώνεται, ο Βοηθός θα παρουσιάσει δύο πλήκτρα στο πλαίσιο μεταφορά-διασκέψεων και αυτόματα θα παρουσιάσει τα πεδία αριθμό για κλήση και στείλε DTMF όταν πατηθεί| +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 στέλνει στο VM - αυτές οι επιλογές επιτρέπουν να καθορίσετε εάν ένα μήνυμα αφήνεται σε έναν αυτόματο τηλεφωνητή όταν ανιχνεύεται ότι η κλήση είναι ένας αυτόματος τηλεφωνητής και εάν το AMD είναι ενεργό| +Modify Leads -<\/B> This option if set to 1 allows the user to modify leads in the admin section lead search results page|Τροποποιήστε τους οδηγούς - αυτή η επιλογή εάν τη θέσετε σε 1, επιτρέπει στο χρήστη να τροποποιήσει τους οδηγούς στη σελίδα αποτελεσμάτων αναζήτησης οδηγών| +Hot Keys Active -<\/B> This option if set to 1 allows the user to use the Hot Keys quick-dispositioning function in|Hot Keys ενεργός - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο χρήστη να χρησιμοποιήσει τα πλήκτρα γρήγορου τερματισμού| +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|Αλλαγή Εκστρατείας Χειριστού - εάν θέσετε σε 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|Ο πράκτορας επιλέγει Ingroups - εάν θέσετε σε 1 αυτή την επιλογή επιτρέπει στο χρήστη να επιλέξει τις εισ-ομάδες που θα λάβουν τις κλήσεις. Διαφορετικά ο Manager θα πρέπει να το θέσει αυτό στην σελίδα διαχείρισης| +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|Φίλτρο Οδηγοιύ - αυτή είναι μία μέθοδος για να δημιουργήτε φίλτρα για την 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|ID Φίλτρου - Αυτό είναι το σύντομο όνομα ενός Φίλτρου Οδηγού. Πρέπει να είναι ένας μοναδικός κωδικός. Μην χρησιμοποιήσετε κενά ή στίξη για αυτό το πεδίο. Χαρακτήρες 2 με 10| +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|Ονομα Φίλτρου - Αυτό είναι ένα πιο περιγραφικό όνομα για το Φίλτρο. Είναι μία σύντομη περιγρφή του φίλτρου. Χαρακτήρες 2 με 30| +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|Σχόλια Φίλτρου - Εδώ μπορείτε σχολιάσετε το φίλτρο. Χαρακτήρες 2 με 255| +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 -|SQL Φίλτρου - Εδώ μπορείτε να ορίσετε SQL ερώτημα για το φίλτρο. Μην ξεκινήσετε ή τελειώσετε με ένα AND, αυτό θα γίνει αυτόματα από το hopper. Ένα παράδειγμα είναι- called_count > 4 and called_count < 8 -| +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|Κλήση Εναλ Αρ Χρήστη - Αυτή η επιλογή επιτρέπει στον χειριστή να κάνει χειροκίνητη κλήση του εναλλακτικού αριθμού τηλεφώνου ή το πεδίο 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|Προγραμματισμένες Επανακλήσεις - Αυτή η επιλογή επιτρέπει στον χειριστή να τερματίσει μία κλήση ως 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|Μόνο του Χρήστη Επανακλήσεις- Αυτή η επιλογή επιτρέπει στον χρήστη να θέσει μία επανάκληση με τέτοιο τρόπο, ώστε μόνο αυτός να μπορεί να καλέσει τον πελάτη. Επίσης, επιτρέπει στον χρήστη να δει τις λίστες των επανακλήσεων και να τις καλέσει οποιαδήποτε στιγμή| +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|Χειροκίνητη Κλήση Χρήστη - Αυτή η επιλογή επιτρέπει στον χειριστή να καταχωρήσει χειροκίνητα ένα νέο οδηγό στο σύστημα και να τον καλέσε| +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|Ηχογράφηση - Αυτή η επιλογή μπορεί να απαγορεύσει σε έναν χειριστή να κάνει ηχογραφήσεις και θα πρέπει να ακολουθεί την διαδικασία ηχογράφησης της εκστρατείας| +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|Μεταφορές- Αυτή η επιλογή μπορεί να απαγορεύσει σε έναν χειριστή να ανοίξει την διαδικασία μεταφορά-συνδιάσκεψη. Αν είναι απενεργοποιημένη, ο χρήστης δεν μπορεί να μεαφέρει κλήσεις ή να κάνει κλήση σε τρίτο| +Delete Filters -<\/B> This option allows the user to be able to delete vicidial lead filters from the system|Διαγραφή Φίλτρων - Αυτή η επιλογή επιτρέπει στον χειριστή να διαγράφει φίλτρα από το σύστημα| +Alter Agent Interface Options -<\/B> This option if set to 1 allows the administrative user to modify the Agents interface options in admin.php|Αλλάξτε τις επιλογές διεπαφών Χειριστών - εάν θέσετε σε 1 αυτή την επιλογή, επιτρέπει στο διαχειριστή να τροποποιήσει τις επιλογές διεπαφών χειριστών στην admin.php| +Closer Default Blended -<\/B> This option simply defaults the Blended checkbox on a CLOSER login screen|Πιό στενή προεπιλογή που συνδυάζεται - αυτή η επιλογή προκαθορίζει απλά το συνδυασμένο τετραγωνίδιο σε μια ΠΙΟ ΣΤΕΝΉ οθόνη σύνδεσης| +FILTER NOT ADDED - there is already a filter entry with this ID|ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένα φίλτρο με αυτό το ID| +Filter ID, name and SQL must be at least 2 characters in length|ID φίλτρου, όνομα και SQL πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +Filter ID must be at least 2 characters in length|To ID φίλτρου πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +Please go back and look at the data you entered|Παρακαλώ επιστρέψτε πίσω και κάνετε έλεγχο των δεδομένων που καταχωρήσατε| +CLICK HERE TO GO TO THE SUPER LEAD LOADER|ΕΠΙΛΕΞΤΕ ΕΔΩ ΓΙΑ ΝΑ ΠΑΤΕ ΣΤΟΝ ΠΡΟΗΓΜΕΝΟ ΕΙΣΑΓΩΓΕΑ ΟΔΗΓΩΝ| +BACK TO ADMIN|ΠΙΣΩ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ| +File layout to use|Μορφή αρχείων για χρήση| +Standard VICIDIAL|Τυποποιημένο VICIDIAL| +Custom layout|Εμφάνιση συνήθειας| +CLICK HERE TO GO TO THE BASIC LEAD LOADER|ΕΠΙΛΕΞΤΕ ΕΔΩ ΓΙΑ ΝΑ ΠΑΤΕ ΣΤΟ ΒΑΣΙΚΟ ΕΙΣΑΓΩΓΕΑ ΟΔΗΓΩΝ| +SUPER LIST LOADER|ΠΡΟΗΓΜΕΝΟΣ ΕΙΣΑΓΩΓΕΑΣ ΛΙΣΤΩΝ| +OK TO PROCESS|ΟΚ ΓΙΑ ΕΠΕΞΕΡΓΑΣΙΑ| +File data|Αρχεία δεδομένων| +short description of the filter|σύντομη περιγραφή του φίλτρου| +Alter Agent Interface Options: |Αλλάξτε τις επιλογές επιφάνειας εργασίας των χειριστών: | +Click here to delete filter |Πατήστε εδώ για διαγραφή του φίλτρου| +FILTER DELETION COMPLETED:|Η ΔΙΑΓΡΑΦΗ ΤΟΥ ΦΙΛΤΡΟΥ ΟΛΟΚΛΗΡΩΘΗΚΕ: | +ADMIN INTERFACE OPTIONS:|ΕΠΙΛΟΓΈΣ ΕΠΙΦΑΝΕΙΑΣ ΕΡΓΑΣΙΑΣ ΔΙΑΧ:| +AGENT INTERFACE OPTIONS:|ΕΠΙΛΟΓΕΣ ΕΠΙΦΑΝΕΙΑΣ ΕΡΓΑΣΙΑΣ ΧΕΙΡΙΣΤΩΝ:| +Closer Default Blended:|Η πιό στενή προεπιλογή συνδύασε:| +Agent Alt Num Dialing:|Εναλ. Αρ. Χειριστή που καλείτε:| +Scheduled Callbacks:|Προγραμματισμένες Επανακλήσεις:| +Agent-Only Callbacks:|Μόνο του Χειριστή Επανακλήσεις:| +New Filter Addition|Προσθήκη Νέου Φίλτρου| +LEAD FILTER LISTINGS:|ΛΙΣΤΕΣ ΟΔΗΓΟΥ ΦΙΛΤΡΟΥ:| +FILTER NOT MODIFIED|ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +FILTER NOT DELETED|ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +DELETE THIS FILTER|ΔΙΑΓΡΑΦΗ ΤΟΥ ΦΙΛΤΡΟΥ| +FILTER NOT ADDED|ΤΟ ΦΙΛΤΡΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ| +Filter Comments: |Σχόλια Φίλτρου: | +FILTER MODIFIED|ΤΟ ΦΙΛΤΡΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +MODIFY A FILTER|ΤΡΟΠΟΠΟΙΗΣΗ ΕΝΟΣ ΦΙΛΤΡΟΥ| +ADD NEW FILTER|ΠΡΟΣΘΕΣΕ ΦΙΛΤΡΟ| +Add New Filter|Πρόσθεσε Φίλτρο| +Modify Filter|Τροποποίηση Φίλτρου| +Delete Filter|Διαγραφή Φίλτρου| +Filter Name: |Όνομα Φίλτρου:| +FILTER ADDED:|ΤΟ ΦΙΛΤΡΟ ΠΡΟΣΤΕΘΗΚΕ:| +VIEW FILTERS|ΕΜΦΑΝΙΣΗ ΦΙΛΤΡΩΝ| +Lead Filter:|Φίλτρο Οδηγού:| +Filter SQL:|SQL Φίλτρου: | +Users List|Λίστα Χρηστών| +Filter ID: |ID Φίλτρου: | +Filters|Φίλτρα| +Agent Call Manual|Εγχειρίδιο κλήσεων Χειριστή| +Vicidial Recording|Καταγραφή| +Vicidial Transfers|Μεταφορές| +Click here for user time sheet|Επιλέξτε εδώ για την σελίδα με τους χρόνους χρήσης| +Click here for user status|Επιλέξτε εδώ για τη κατάσταση του χρήστη| +Click here for user CallBack Holds|Επιλέξτε εδώ για τις Επανακλήσεις του χρήστη που κρατήθηκαν| +Lead Filter|Φίλτρο Οδηγού| +Click here to see all CallBack Holds in this campaign|Επιλέξτε εδώ για να δείτε τις κρατειμένες Επανακλήσεις σε αυτήν την εκστρατεία| +STATUS NAME|ΟΝΟΜΑ ΚΑΤΑΣΤΑΣΗΣ| +Script ID|Ταυτότητα χειρογράφων:| +Script Name|Όνομα χειρογράφων| +Script Comments|Σχόλια χειρόγραφου| +Script Text|Κείμενο χειρόγραφου| +ADD FILTER|ΠΡΟΣΘΕΣΕ ΦΙΛΤΡΟ| +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: οι διαταγές από το user_level του χειριστή όπως καθορίζεται στα vicidial_users παρουσιάζουν ένα υψηλότερο user_level θα άβουν περισσότερες κλήσεις| +VICIDIAL LIST LOADER FUNCTIONALITY|ΛΕΙΤΟΥΡΓΙΑ ΕΙΣΑΓΩΓΗΣ ΛΙΣΤΑΣ| +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|Ο 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|ΣΗΜΕΙΩΣΕΙΣ: Η λειτουργία εισαγωγής οδηγών Excel επιτρέπεται από μια σειρά προγραμμάτων και πρέπει να έχει κατάλληλα διαμορφωμένο ένα αρχείο home/cron/AST_SERVER_conf.pl στον κεντρικό υπολογιστή δικτύου. Επίσης, κάποια υπο-προγράμματα πρέπει να φορτωθούν για να εργαστούν επίσης - OLE- τα Storage_Lite και Spreadsheet-ParseExcel. Μπορείτε να ελέγξετε για λάθη χρόνου εκτέλεσης στο αρχείο error_log του apache σας | +Vendor Lead Code - shows up in the Vendor ID field of the GUI|Κωδικός Οδηγού Προμηθευτού| +Source Code - internal use only for admins and DBAs|Πηγαίος Κώδικας - εσωτερική χρήση μόνο από διαχειριστές και DBAs| +List ID - the list number that these leads will show up under|ID λίστας - ο αριθμός λίστας που οι οδηγοί θα παρουσιαστούν κάτω από| +Phone Code - the prefix for the phone number - 1 for US, 01144 for UK, 01161 for AUS, etc|Κωδικός τηλεφώνου - το πρόθεμα του τηλεφωνικού αριθμού (1 για ΗΠΑ, 01144 για Βρετανία κλπ)| +Phone Number - must be at least 8 digits long|Ο αριθμός τηλεφώνου - πρέπει να είναι τουλάχιστον 8 ψηφία| +Title - title of the customer - Mr. Ms. Mrs, etc...|Τίτλος - ο τίτλος του πελάτη (κος. κα. κλπ)| +NOTE: It can take up to 30 seconds for changes submitted on this screen to go live|ΣΗΜΕΙΩΣΗ: Μπορεί να διαρκέσει και 30 δευτερόλεπτα για να καταχωρηθούν οι αλλαγές της οθόνης| +USER NOT ADDED - there is already a user in the system with this user number|Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας χρήστης με αυτό τον αριθμό| +USER NOT ADDED - Please go back and look at the data you entered|Ο ΧΡΗΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +user id must be between 2 and 8 characters long|το id χρήστη πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες| +full name and password must be at least 2 characters long|το πλήρες όνομα και κωδικός πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +CAMPAIGN NOT ADDED - there is already a campaign in the system with this ID|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία εκστρατεία με αυτό το ID| +CAMPAIGN NOT ADDED - Please go back and look at the data you entered|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +campaign ID must be between 2 and 8 characters in length|το ID της εκστρατείας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες| +campaign name must be between 6 and 40 characters in length|το όνομα της εκστρατείας πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες| +CAMPAIGN STATUS NOT ADDED - there is already a campaign-status in the system with this name|Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη κατάσταση-εκστρατείας με αυτό το όνομα| +CAMPAIGN STATUS NOT ADDED - there is already a global-status in the system with this name|Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία καθολική-κατάσταση με αυτό το όνομα| +CAMPAIGN STATUS NOT ADDED - Please go back and look at the data you entered|Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +status must be between 1 and 8 characters in length|η κατάσταση πρέπει να είναι μεταξύ 1 και 8 χαρακτήρρες| +status name must be between 2 and 30 characters in length|το όνομα της κατάστασης πρέπει να είναι μεταξύ 2 και 30 χαρακτήρρες| +CAMPAIGN HOT KEY NOT ADDED - there is already a campaign hot key in the system with this hot key|ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένα κλειδί-εκστρατείας με αυτό το κλειδί| +CAMPAIGN HOT KEY NOT ADDED - Please go back and look at the data you entered|ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +hot key must be a single character between 1 and 9|το κλειδί πρέπει να είναι ένας χαρακτηράς μεταξύ 1 και 9| +LIST NOT ADDED - there is already a list in the system with this ID|Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία λίστα με αυτό το ID| +LIST NOT ADDED - Please go back and look at the data you entered|Η ΛΙΣΤΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +List ID must be between 2 and 8 characters in length|Το ID λίστας πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες| +List name must be at least 2 characters in length|Το όνομα λίστας πρέπει να είναι 2 χαρακτήρες| +GROUP NOT ADDED - there is already a group in the system with this ID|Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία ομάδα με αυτό το ID| +GROUP NOT ADDED - Please go back and look at the data you entered|Η ΟΜΑΔΑ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +Group ID must be between 2 and 20 characters in length and contain no|Το ID ομάδας πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες| +Group name and group color must be at least 2 characters in length|Το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +REMOTE AGENTS NOT ADDED - there is already a remote agents entry starting with this userID|ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - υπάρχει ήδη καταχώρηση απομακρυσμένων χειριστών που ξεκινάει με αυτό το ID χρήστη| +REMOTE AGENTS NOT ADDED - Please go back and look at the data you entered|ΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +User ID start and external extension must be at least 2 characters in length|Το ID χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +USER GROUP NOT ADDED - there is already a user group entry with this name|ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - υπάρχει ήδη μία καταχώρηση ομάδας χρήστη με αυτό το όνομα| +USER GROUP NOT ADDED - Please go back and look at the data you entered|ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ Η ΟΜΑΔΑ ΧΡΗΣΤΗ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +Group name and description must be at least 2 characters in length|Η ομάδα και η περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +USER NOT MODIFIED - Please go back and look at the data you entered|Ο ΧΡΗΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +Password and Full Name each need ot be at least 2 characters in length|Ο κωδικός και το πλήρες όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες το κάθε ένα| +CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +the campaign name needs to be at least 6 characters in length|το όνομα της εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες| +RESETTING CAMPAIGN LEAD HOPPER|ΕΠΑΝΑΦΟΡΑ ΚΑΘΟΘΗΓΗΤΗ ΕΚΣΤΡΑΤΕΙΑΣ HOPPER| +Wait 1 minute before dialing next number|Αναμονή 1 λεπτού πριν την κλήση του επόμενου αριθμού| +CAMPAIGN STATUS NOT MODIFIED - Please go back and look at the data you entered|Η ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +the campaign id needs to be at least 2 characters in length|το ID της εκστρατείας πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +the campaign status needs to be at least 1 characters in length|η κατάσταση της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας| +CUSTOM CAMPAIGN STATUS DELETED|ΔΙΑΓΡΑΦΗΚΕ Η ΠΡΟΣΑΡΜΟΣΜΕΝΗ ΚΑΤΑΣΤΑΣΗ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ| +CAMPAIGN HOT KEY NOT MODIFIED - Please go back and look at the data you entered|ΤΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +the campaign hot key needs to be at least 1 characters in length|το κλειδί της εκστρατείας πρέπει να είναι τουλάχιστον 1 χαρακτήρας| +CUSTOM CAMPAIGN HOT KEY DELETED|ΔΙΑΦΡΑΦΗΚΕ ΤΟ ΠΡΟΣΑΡΜΟΣΜΕΝΟ ΚΛΕΙΔΙ ΤΗΣ ΕΚΣΤΡΑΤΕΙΑΣ| +CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|Η ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +the campaign name needs to be at least 6 characters in length|το όνομα εκστρατείας πρέπει να είναι τουλάχιστον 6 χαρακτήρες| +LIST NOT MODIFIED - Please go back and look at the data you entered|Η ΛΙΣΤΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +list name must be at least 2 characters in length|η λίστα πρέπει να είναι τουλαχιστον 2 χαρακτήρες| +REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER|ΑΠΟΜΑΚΡΥΝΣΗ ΚΑΘΟΔΗΓΗΤΩΝ ΛΙΣΤΑΣ HOPPER ΑΠΟ ΠΑΛΑΙΑ HOPPER ΕΚΣΤΡΑΤΕΙΑ| +GROUP NOT MODIFIED - Please go back and look at the data you entered|Η ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +group name and group color must be at least 2 characters in length|το όνομα και χρώμα ομάδας πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +User ID Start and External Extension must be at least 2 characters in length|Το ID του χρήστη και η εξωτερική εσωτ.σύνδεση πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +REMOTE AGENTS MODIFIED|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΤΡΟΠΟΠΟΙΗΘΗΚΑΝ| +USER GROUP NOT MODIFIED - Please go back and look at the data you entered|Η ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +Group name and description must be at least 2 characters in length|Ονομα ομάδας και περιγραφή πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +MODIFY A USERS RECORD|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΧΡΗΣΤΩΝ| +Click here for user stats|Πατήστε εδώ για στατιστικά χρήστη| +MODIFY A CAMPAIGNS RECORD|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΕΚΣΤΡΑΤΕΙΩΝ| +CONFERENCES TABLE|ΠΙΝΑΚΑΣ ΣΥΝΔΙΑΛΕΞΕΩΝ| +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|Αριθμός Συνδιάλεξης - Αυτό το πεδίο είναι για τον αριθμό συνδιάλεξης 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 Διακομιστή- Ο κατάλογος που επιλέξατε τον διακομιστή ASTERISK όπου η συνδιάλεξη θα είναι| +PHONE NOT ADDED - there is already a Phone in the system with this extension\/server|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένα τηλέφωνο με αυτή την εσωτ.σύνδεση/διακομιστή| +PHONE NOT ADDED - Please go back and look at the data you entered|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +PHONE ADDED|ΤΟ ΤΗΛΕΦΩΝΟ ΠΡΟΣΤΕΘΗΚΕ| +SERVER NOT ADDED - there is already a server in the system with this ID|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το ID| +SERVER NOT ADDED - Please go back and look at the data you entered|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +SERVER ADDED|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΠΡΟΣΤΕΘΗΚΕ| +CONFERENCE NOT ADDED - there is already a conference in the system with this ID and server|Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτό το ID και διακομιστή| +CONFERENCE NOT ADDED - Please go back and look at the data you entered|Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +CONFERENCE ADDED|Η ΣΥΝΔΙΑΛΕΞΗ ΠΡΟΣΤΕΘΗΚΕ| +PHONE NOT MODIFIED - there is already a Phone in the system with this extension\/server|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένα τηλέφωνο με αυτή την εσωτ.σύνδεση/διακομιστή| +PHONE NOT MODIFIED - Please go back and look at the data you entered|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +PHONE MODIFIED|ΤΟ ΤΗΛΕΦΩΝΟ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +SERVER NOT MODIFIED - there is already a server in the system with this server_ip|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη ένας διακομιστής με αυτό το IP| +SERVER NOT MODIFIED - Please go back and look at the data you entered|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +SERVER MODIFIED|Ο ΔΙΑΚΟΜΙΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +CONFERENCE NOT MODIFIED - there is already a Conference in the system with this extension-server|Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - υπάρχει ήδη μία συνδιάλεξη με αυτή την εσωτ.σύνδεση-διακομιστή| +CONFERENCE NOT MODIFIED - Please go back and look at the data you entered|Η ΣΥΝΔΙΑΛΕΞΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ - Παρακαλώ ελέγξτε τα δεδομένα που καταχωρήσατε| +You do not have permissions to modify this user|Δεν έχετε τις άδειες να τροποποιήσετε αυτόν τον χρήστη| +Click here to delete user|Χτυπήστε εδώ για να διαγράψετε το χρήστη| +Please go back and look at the data you entered|Παρακαλώ επιστρέψτε και εξετάστε τα στοιχεία που εισαγάγατε| +Click here to delete campaign|Χτυπήστε εδώ για να διαγράψετε την εκστρατεία| +Click here to delete list and all of its leads|Χτυπήστε εδώ για να διαγράψετε τον κατάλογο και όλους τους οδηγούς του| +REMOVING LIST LEADS FROM VICIDIAL_LIST TABLE|ΑΦΑΙΡΕΣΗ ΤΩΝ ΜΟΛΥΒΔΩΝ ΚΑΤΑΛΟΓΩΝ ΑΠΟ ΤΟΝ ΠΊΝΑΚΑ VICIDIAL_LIST| +Click here to delete in-group|Επιλέξτε εδώ για να διαγράψετε την-ΟΜΑΔΑ| +Click here to delete remote agent|Επιλέξτε εδώ για να διαγράψετε τον απομακρυσμένο χειριστή| +Click here to delete user group|Επιλέξτε εδώ για να διαγράψετε την ομάδα χρηστών| +Click here to delete phone|Επιλέξτε εδώ για να διαγράψετε το τηλέφωνο| +there is already a script entry with this name|υπάρχει ήδη μια είσοδος χειρογράφων με αυτό το όνομα| +Script name, description and text must be at least 2 characters in length|Το όνομα, η περιγραφή και το κείμενο χειρογράφων πρέπει να είναι τουλάχιστον 2 χαρακτήρες στο μήκος| +Click here to delete script|επιλέξτε εδώ για να διαγράψετε τον βοηθό| +Phone Login|Τηλέφωνο Σύνδεσης| +Phone Pass|Κωδικός Πρόσβασης Τηλεφώνου| +Delete Users|Διάγραψε τους χρήστες| +Delete User Groups|Διάγραψε τις ομάδες χρηστών| +Delete Lists|Διάγραψε τις Λίστες| +Delete Campaigns|Διάγραψε τις εκστρατείες| +Delete In-Groups|Διάγραψε τις Εισ-ΟΜΑΔΕΣ| +Delete Remote Agents|Διάγραψε τους Απομακρυσμένους Χειριστές| +Delete Script|Διάγραψε τον Βοηθό| +Load Leads|Εισαγωγή Οδηγών| +Campaign Detail|Λεπτομέρειες εκστρατείας| +AGC Admin Access|Πρόσβαση AGC Admin| +AGC Delete Phones|Το AGC διαγράφει τα τηλέφωνα| +SCRIPT NOT ADDED|Ο ΒΟΗΘΟΣ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ| +SCRIPT ADDED|Ο ΒΟΗΘΟΣ ΠΡΟΣΤΕΘΗΚΕ| +SCRIPT NOT MODIFIED|Ο ΒΟΗΘΟΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +SCRIPT MODIFIED|Ο ΒΟΗΘΟΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +DELETE THIS USER|ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΧΡΗΣΤΗ| +DELETE THIS CAMPAIGN|ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +DELETE THIS LIST|ΔΙΑΓΡΑΨΕ ΑΥΤΗ ΤΗΝ ΛΙΣΤΑ| +DELETE THIS IN-GROUP|ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΕΙΣ-ΟΜΑΔΑ| +DELETE THIS REMOTE AGENT|ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΧΕΙΡΙΣΤΗ| +DELETE THIS USER GROUP|ΔΙΑΓΡΑΨΕ ΑΥΤΗΝ ΤΗΝ ΟΜΑΔΑ ΧΡΗΣΤΩΝ| +DELETE THIS PHONE|ΔΙΑΓΡΑΨΕ ΑΥΤΟ ΤΟ ΤΗΛΕΦΩΝΟ| +DELETE THIS SCRIPT|ΔΙΑΓΡΑΨΕ ΑΥΤΟΝ ΤΟΝ ΒΟΗΘΟ| +USER NOT DELETED|ΧΡΗΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +CAMPAIGN NOT DELETED|ΕΚΣΤΡΑΤΕΙΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +LIST NOT DELETED|ΛΙΣΤΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +IN-GROUP NOT DELETED|ΕΙΣ-ΟΜΑΔΑ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +REMOTE AGENT NOT DELETED|ΑΠΟΜΑΚΡΥΣΜΕΝΟΣ ΧΕΙΡΙΣΤΗΣ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +USER GROUP NOT DELETED|ΟΜΑΔΑ ΧΡΗΣΤΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +PHONE NOT DELETED|ΤΟ ΤΗΛΕΦΩΝΟ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +SCRIPT NOT DELETED|ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ Ο ΒΟΗΘΟΣ| +USER DELETION CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΧΡΗΣΤΗ| +USER DELETION COMPLETED|ΔΙΑΓΡΑΦΗ ΧΡΗΣΤΗ ΟΛΟΚΛΗΡΩΘΗΚΕ| +CAMPAIGN DELETION CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΕΚΣΤΡΑΤΕΙΑΣ| +CAMPAIGN DELETION COMPLETED|ΔΙΑΓΡΑΦΗ ΕΚΣΤΡΑΤΕΙΑΣ ΟΛΟΚΛΗΡΩΘΗΚΕ| +Logout Agents|Αποσυνδεμένοι Χειριστές| +AGENTS NOT LOGGED OUT OF CAMPAIGN|ΧΕΙΡΙΣΤΕΣ ΠΟΥ ΔΕΝ ΕΙΝΑΙ ΑΠΟΣΥΝΔΕΜΕΝΟΙ ΑΠΟ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +AGENT LOGOUT CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΑΠΟΣΥΝΔΕΣΗΣ ΧΕΙΡΙΣΤΩΝ| +Click here to log all agents out of|Επιλέξτε εδώ για να αποσυνδέσετε όλους τους χειριστές από| +AGENT LOGOUT COMPLETED|ΑΠΟΣΥΝΔΕΣΗ ΧΕΙΡΙΣΤΩΝ ΟΛΟΚΛΗΡΩΘΗΚΕ| +LOG ALL AGENTS OUT OF THIS CAMPAIGN|ΑΠΟΣΥΝΔΕΣΗ ΟΛΩΝ ΤΩΝ ΧΕΙΡΙΣΤΩΝ ΑΠΟ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +LIST DELETION CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΛΙΣΤΑΣ| +LIST DELETION COMPLETED|ΔΙΑΓΡΑΦΗ ΛΙΣΤΑΣ ΟΛΟΚΛΗΡΩΘΗΚΕ| +IN-GROUP DELETION CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΕΙΣ-ΟΜΑΔΑΣ| +IN-GROUP DELETION COMPLETED|ΔΙΑΓΡΑΦΗ ΕΙΣ-ΟΜΑΔΑΣ ΟΛΟΚΛΗΡΩΘΗΚΕ| +REMOTE AGENT DELETION CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ | +REMOTE AGENT DELETION COMPLETED|ΔΙΑΓΡΑΦΗ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ ΟΛΟΚΛΗΡΩΘΗΚΕ| +USER GROUP DELETION CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ| +USER GROUP DELETION COMPLETED|ΔΙΑΓΡΑΦΗ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ ΟΛΟΚΛΗΡΩΘΗΚΕ| +PHONE DELETION CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΤΗΛΕΦΩΝΟΥ| +PHONE DELETION COMPLETED|Η ΔΙΑΓΡΑΦΗ ΤΟΥ ΤΗΛΕΦΩΝΟΥ ΟΛΟΚΛΗΡΩΘΗΚΕ| +SCRIPT DELETION CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΔΙΑΓΡΑΦΗΣ ΒΟΗΘΟΥ| +SCRIPT DELETION COMPLETED|ΔΙΑΓΡΑΦΗ ΒΟΗΘΟΥ ΟΛΟΚΛΗΡΩΘΗΚΕ| +Preview Script|Προεπισκόπιση Βοηθού| +MODIFY A SCRIPT|ΤΡΟΠΟΠΟΙΗΣΤΕ ΕΝΑΝ ΒΟΗΘΟ| +title of the script|τίτλος του βοηθού| +CONFERENCE MODIFIED|Η ΣΥΝΔΙΑΛΕΞΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +MODIFY A PHONE RECORD|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΤΗΛΕΦΩΝΟΥ| +THE END|ΤΕΛΟΣ| +LIST ALL PHONES|ΛΙΣΤΑ ΤΗΛΕΦΩΝΩΝ| +ADD A NEW PHONE|ΠΡΟΣΘΗΚΗ ΤΗΛΕΦΩΝΟΥ| +SEARCH FOR A PHONE|ΑΝΑΖΗΤΗΣΗ ΤΗΛΕΦΩΝΟΥ| +ADD A SERVER|ΠΡΟΣΘΗΚΗ ΔΙΑΚΟΜΙΣΤΗ| +LIST ALL SERVERS|ΛΙΣΤΑ ΔΙΑΚΟΜΙΣΤΩΝ| +SHOW ALL CONFERENCES|ΕΜΦΑΝΙΣΗ ΣΥΝΔΙΑΛΕΞΕΩΝ| +ADD A NEW CONFERENCE|ΠΡΟΣΘΗΚΗ ΣΥΝΔΙΑΛΕΞΗΣ| +AMD Send to VM exten|AMD στέλνει στο VM| +Transfer-Conf DTMF|DTMF Μεταφοράς-Συνδ| +Transfer-Conf Number|Αριθμός Μεταφοράς-Συνδ| +Hot Keys Active|Ενεργά Κλειδιά| +Modify Leads|Τροποποίηση Οδηγών| +Change Agent Campaign|Αλλαγή Εκστρατείας Χειριστή| +Agent Choose Ingroups|Ο χειριστής επιλέγει Εισ.Ομάδες| +CallBacks Within Campaign|Επανακλήσεις μέσα στην εκστρατεία| +CallBacks Within List|Επανακλήσεις μέσα στην λίστα| +CallBacks Within Agent|Επανακλήσεις μέσα στον χειριστή| +Phone extension|Τηλ.σύνδεσης τηλεφώνου| +Dial Plan Number|Αριθμός Σχεδίου Κλήσεων| +digits only|μόνο αριθμοί| +Voicemail Box|Περιεχόμενο Φωνητικού Ταχυδρομείου| +Outbound CallerID|Εξερχόμενο CallerID| +Phone IP address|Δνση IP Τηλεφώνου| +Computer IP address|Δνση IP Υπολογιστή| +Server IP Address|Δνση IP Διακομιστή| +Server IP|IP Διακομιστή| +Login: |Σύνδεση:| +Password: |Κωδικός:| +Status: |Κατάσταση:| +Active Account|Ενεργός Λογαριασμός| +Phone Type|Τύπος τηλεφώνου| +Full Name|Πλήρες Ονομα| +Company: |Εταιρία:| +Picture: |Εικόνα:| +Client Protocol|Προτόκολο Πελάτη| +Local GMT|Τοπικό GMT| +Do NOT Adjust for DST|Μην ρυθμίσεις για DST| +VALUE=SUBMIT|VALUE=ΥΠΟΒΑΛΛΩ| +ADD A NEW SERVER|ΠΡΟΣΘΗΚΗ ΔΙΑΚΟΜΙΣΤΗ| +Server ID|ID Διακομιστή| +Server Description|Περιγραφή Διακομιστή| +Active: |Ενεργή:| +Asterisk Version|Εκδοση Asterisk| +Conference Number|Αριθμός Συνδιάλεξης| +New Messages|Νέα Μηνύματα| +Old Messages|Παλαιά Μηνύματα| +Manager Login|Διαχειριστή Σύνδεση| +Manager Secret|Κωδικός Διαχειριστή| +VICIDIAL Default User|VICIDIAL Προκαθορισμένος Χρήστης| +VICIDIAL Default Pass|VICIDIAL Προκαθορισμένος Κωδικός| +VICIDIAL Default Campaign|VICIDIAL Προκαθορισμένη εκστρατεία| +Park Extension|Τηλ.σύνδ. Στάθμευσης| +Park Exten|Τηλ.σύνδ. Στάθμευσης| +Conf Extension|Τηλ.σύνδ. Συνδ.| +Conf Exten|Τηλ.σύνδ. Συνδ.| +VICIDIAL Park Exten|VICIDIAL Τηλ.σύνδ. Στάθμευσης| +VICIDIAL Park File|VICIDIAL Αρχείο Στάθμευσης| +Monitor Prefix|Πρόθεμα Παρακολούθησης| +Recording Exten|Ηχογράφηση εσωτ.σύνδ.| +VMailMain Exten|VMailMain Τηλ.σύνδ.| +VMailDump Exten|VMailDump Τηλ.σύνδ.| +Exten Context|Περιεχόμενο Τηλ.σύνδ| +DTMFSend Channel|DTMFSend Κανάλι| +Outbound Call Group|Ομάδα Εξερχομένων Κλήσεων| +Browser Location|Θέση Φυλλομετρητή| +Install Directory|Κατάλογος εγκατάστασης| +CallerID URL|CallerID URL| +VICIDIAL Default URL|VICIDIAL Προκαθορισμένο URL| +Call Logging|Καταγραφή Γεγονότος Κλήσης| +User Switching|Μεταγωγή Χρήστη| +Conferencing|Σε συνδιαλέξη| +Admin Hang Up|Διαχειριστού Κλείσιμο| +Admin Hijack|Διαχειριστού Κλέψιμο| +Admin Monitor|Διαχειριστού Παρακολούθηση| +Call Park|Στάθμευση Κλήσης| +Updater Check|Ελεγχος ενημερωτή| +AF Logging|AF Καταγραφή Γεγονότος| +Queue Enabled|Ενεργή Ουρά| +CallerID Popup|Υπερεμφανιζόμενο παραθύρο CallerID| +VMail Button|Πλήκτρο VMail| +Fast Refresh|Ταχύτητα Ανανέωσης| +Fast Refresh Rate|Ρυθμός Ανανέωσης Ταχύτητας| +Persistant MySQL|Συνεχής MySQL| +Auto Dial Next Number|Αυτόματη Κλήση Επόμενου Αριθμού| +Stop Rec after each call|Σταμάτα την ηχογράφηση μετά από κάθε κλήση| +Primary |Πρωταρχικό | +Secondary |Δευτερεύον| +DBX Server|DBX Διακομιστής| +DBX Database|DBX Βάση Δεδομένων| +DBX User|DBX Χρήστης| +DBX Pass|DBX Κωδικός| +DBX Port|DBX Πόρτα| +DBY Server|DBY Διακομιστής| +DBY Database|DBY Βάση Δεδομένων| +DBY User|DBY Χρήστης| +DBY Pass|DBY Κωδικός| +DBY Port|DBY Πόρτα| +MODIFY A SERVER RECORD|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΔΙΑΚΟΜΙΣΤΗ| +Max VICIDIAL Trunks|Μέγιστος Αριθμός Trunk| +Telnet Host|Λήπτης Telnet| +Telnet Port|Πόρτα Telnet| +Manager User|Χρήστη Διαχειριστή| +Manager Update User|Ενημέρωση Χρήστη Διαχειριστή| +Manager Listen User|Παρακολούθηση Χρήστη Διαχειριστή| +Manager Send User|Αποστολή Χρήστη Διαχειριστή| +VMail Dump Exten|VMail εσωτ.σύνδεση απόρριψης| +VICIDIAL AD extension|AD εσωτ.σύνδεση| +Default Context|Προκαθορισμένο Περιεχόμενο| +PHONES WITHIN THIS SERVER|ΤΗΛΕΦΩΝΑ ΣΤΟΝ ΔΙΑΚΟΜΙΣΤΗ| +>EXTENSION<|>ΤΗΛ.ΣΥΝΔΕΣΗ<| +>NAME<|>ΟΝΟΜΑ<| +>ACTIVE<|>ΕΝΕΡΓΟ<| +>MODIFY<|>ΤΡΟΠΟΠΟΙΗΣΗ<| +This server has|Αυτός ο διακομιστής έχει| +active phones and|ενεργά τηλέφωνα και| +inactive phones|μη ενεργά τηλέφωνα| +MODIFY A CONFERENCE RECORD|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΣΥΝΔΙΑΛΕΞΗΣ| +Conference: |Συνδιάλεξη:| +Current Extension|Ισχύουσα εσωτ.σύνδεση| +extension: |Εσωτ.σύνδεση:| +SEARCH RESULTS|ΑΝΑΖΗΤΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ| +PHONE LISTINGS|ΕΝΤΑΓΜΕΝΑ ΤΗΛΕΦΩΝΑ| +SERVER LISTINGS|ΕΝΤΑΓΜΕΝΟΙ ΔΙΑΚΟΜΙΣΤΕΣ| +CONFERENCE LISTINGS|ΕΝΤΑΓΜΕΝΕΣ ΣΥΝΔΙΑΛΕΞΕΙΣ| +script runtime|χρόνος εκτέλεσης διαδικασίας| +ADD NEW PHONE|ΠΡΟΣΘΕΣΕ ΝΕΟ ΤΗΛΕΦΩΝΟ| +ADD NEW SERVER|ΠΡΟΣΘΕΣΕ ΝΕΟ ΔΙΑΚΟΜΙΣΤΗ| +ADD NEW CONFERENCE|ΠΡΟΣΘΕΣΕ ΝΕΑ ΣΥΝΔΙΑΛΕΞΗ| +ADD SCRIPT|ΠΡΟΣΘΕΣΕ ΒΟΗΘΟ| +VIEW SCRIPTS|ΕΜΦΑΝΙΣΗ ΒΟΗΘΩΝ| +SCRIPTS LISTINGS|ΛΙΣΤΕΣ ΒΟΗΘΩΝ| +ADDING NEW PHONE|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΤΗΛΕΦΩΝΟΥ| +ADDING NEW SERVER|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΔΙΑΚΟΜΙΣΤΗ| +ADDING NEW CONFERENCE|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΣΥΝΔΙΑΛΕΞΗΣ| +MODIFY PHONE|ΤΡΟΠΟΠΟΙΗΣΕ ΤΗΛΕΦΩΝΟ| +MODIFY SERVER|ΤΡΟΠΟΠΟΙΗΣΕ ΔΙΑΚΟΜΙΣΤΗ| +MODIFY CONFERENCE|ΤΡΟΠΟΠΟΙΗΣΕ ΣΥΝΔΙΑΛΕΞΗ| +MODIFYING PHONE|ΤΡΟΠΟΠΟΙΗΣΗ ΤΗΛΕΦΩΝΟΥ| +MODIFYING SERVER|ΤΡΟΠΟΠΟΙΗΣΗ ΔΙΑΚΟΜΙΣΤΗ| +MODIFYING CONFERENCE|ΤΡΟΠΟΠΟΙΗΣΗ ΣΥΝΔΙΑΛΕΞΗΣ| +SEARCH PHONES|ΑΝΑΖΗΤΗΣΗ ΤΗΛΕΦΩΝΩΝ| +SEARCH PHONES RESULTS|ΑΝΑΖΗΤΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΗΛΕΦΩΝΩΝ| +PHONE LIST|ΛΙΣΤΑ ΤΗΛΕΦΩΝΟΥ| +SERVER LIST|ΛΙΣΤΑ ΔΙΑΚΟΜΙΣΤΗ| +CONFERENCE LIST|ΛΙΣΤΑ ΣΥΝΔΙΑΛΕΞΕΩΝ| +HELP|ΒΟΗΘΕΙΑ| +Click here for phone stats|Επιλέξτε εδώ για στατιστικά τηλεφώνου| +REMOTE INBOUND: Main|ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΕΙΣΕΡΧΟΜΕΝΟ: Κύριο| +REMOTE INBOUND: Popup|ΑΠΟΜΑΚΡΥΣΜΕΝΟ ΕΙΣΕΡΧΟΜΕΝΟ: Υπερεμφανιζόμενο Παραθύρο| +CALLS SENT TO|ΚΛΗΣΕΙΣ ΣΤΑΛΘΗΚΑΝ ΠΡΟΣ| +Phone Stats|Στατιστικά Τηλεφώνου| +CALL TIME AND CHANNELS|ΧΡΟΝΟΣ ΟΜΙΛΙΑΣ ΚΑΙ ΚΑΝΑΛΙΑ| +CHANNEL GROUP|ΚΑΝΑΛΙ ΟΜΑΔΑΣ| +HOURS:MINUTES|ΩΡΕΣ:ΛΕΠΤΑ| +TOTAL CALLS|ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣ| +>NUMBER|>ΑΡΙΘΜΟΣ| + DATE<| ΗΜΕΡΑ<| +Close this window|Κλείσε αυτό το παράθυρο| +Inbound Calls Stats|Στατιστικά Εισερχομένων Κλήσεων| +Add New User|Πρόσθεσε Νέο Χρήστη| +Add New Campaign|Πρόσθεσε Νέα Εκστρατεία| +Add New List|Πρόσθεσε Νέα Λίστα| +Add New In-Group|Πρόσθεσε Νέα Εισ-Ομάδα| +Add New Remote Agents|Πρόσθεσε Νέους Απομακρυσμένους Χειριστές| +Add New Users Group|Πρόσθεσε Νέα Ομάδα Χρηστών| +Add New Script|Πρόσθεσε Νέο Βοηθό| +New User Addition|Προσθήκη Νέου Χρήστη| +New Campaign Addition|Προσθήκη Νέας Εκστρατείας| +New Campaign Status Addition|Προσθήκη Νέας Κατάστασης Εκστρατείας| +New Campaign Hot Key Addition|Προσθήκη Νέου Κλειδιού Εκστρατείας| +New List Addition|Προσθήκη Νέας Λίστας| +New In-Group Addition|Προσθήκη Νέας Εισ-Ομάδας| +New Remote Agents Addition|Προσθήκη Νέων Απομακρυσμένων Χειριστών| +New Users Group Addition|Προσθήκη Νέας Ομάδας Χρηστών| +New Script Addition|Νέα προσθήκη Βοηθού| +Modify User|Τροποποίηση Χρήστη| +Modify Campaign - Basic View|Τροποποίηση Εκστρατείας - Βασική Επισκόπηση| +Modify Campaign|Τροποποίηση Εκστρατείας| +Modify List|Τροποποίηση Λίστας| +Modify In-Group|Τροποποίηση Εισ-Ομάδων| +Modify Remote Agents|Τροποποίηση Απομακρυσμένων Χειριστών| +Modify Users Groups|Τροποποίηση Ομάδων Χρηστών| +Modify Script|Τροποποιήστε τον Βοηθό| +Welcome|Καλωσήρθες| +Campaigns|Εκστρατείες| +Lists|Λίστες| +In-Groups|Εισ-Ομάδες| +Remote Agents|Απομακρυσμένοι Χειριστές| +User Groups|Ομάδες Χρήστη| +Search Form|Φόρμα Αναζήτησης| +Search Results|Αποτελέσματα Αναζήτησης| +VICIDIAL ADMIN|ΔΙΑΧΕΙΡΙΣΗ| + TABLE| ΠΙΝΑΚΑΣ| +First Name|Ονομα| +Middle Initial|Μεσαίο Αρχικό| +Last Name|Επίθετο| +Address Line 1|1 Γραμμή Διεύθυνσης| +Address Line 2|2 Γραμμή Διεύθυνσης| +Address Line 3|3 Γραμμή Διεύθυνσης| +City|Πόλη| +State - limited to 2 characters|Κράτος - περιορισμός σε 2 χαρακτήρες| +Province|Επαρχία| +Postal Code|Ταχ.Κωδ.| +Country|Χώρα| +Gender|Φύλο| +Date of Birth|Ημερ. Γέννησης| +Alternate Phone Number|Εναλ. Αριθμός Τηλ.| +Email Address|Διεύθυνση Ηλεκτρ.Ταχυδρομείου| +Security Phrase|Φράση Ασφαλείας| +Comments|Σχόλια| +THE END|ΤΕΛΟΣ| +Logout|Αποσύνδεση| +LIST USERS|ΛΙΣΤΑ ΧΡΗΣΤΩΝ| +ADD A NEW USER|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΧΡΗΣΤΗ| +SEARCH FOR A USER|ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΗ| +ADD USER GROUP|ΠΡΟΣΘΗΚΗ ΟΜΑΔΑΣ ΧΡΗΣΤΗ| +LIST USER GROUPS|ΛΙΣΤΑ ΟΜΑΔΩΝ ΧΡΗΣΤΗ| +ADD CAMPAIGN|ΠΡΟΣΘΗΚΗ ΕΚΣΤΡΑΤΕΙΑΣ| +LIST CAMPAIGNS|ΛΙΣΤΑ ΕΚΣΤΡΑΤΕΙΩΝ| +SHOW LISTS|ΕΜΦΑΝΙΣΗ ΛΙΣΤΩΝ| +ADD NEW LIST|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΛΙΣΤΑΣ| +LOAD NEW LEADS|ΕΙΣΑΓΩΓΗ ΝΕΩΝ ΟΔΗΓΩΝ| +SHOW IN-GROUPS|ΕΜΦΑΝΙΣΗ ΕΙΣΕΡΧΟΜΕΝΩΝ ΟΜΑΔΩΝ| +ADD NEW IN-GROUP|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΕΙΣΕΡΜΟΜΕΝΗΣ ΟΜΑΔΑΣ| +SHOW REMOTE AGENTS|ΕΜΦΑΝΙΣΗ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ| +ADD NEW REMOTE AGENTS|ΠΡΟΣΘΗΚΗ ΝΕΩΝ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ| +SERVER STATS|ΣΤΑΤΙΣΤΙΚΑ ΔΙΑΚΟΜΙΣΤΗ| +PARK REPORT|ΑΝΑΦΟΡΑ ΣΤΑΘΜΕΥΣΗΣ| +VDAD REPORT|ΑΝΑΦΟΡΑ VDAD| +CLOSER REPORT|ΑΝΑΦΟΡΑ CLOSER| +SEARCH FOR A LEAD|ΑΝΑΖΗΤΗΣΗ ΟΔΗΓΟΥ| +GROUP HOURLY|ΩΡΙΑΙΑ ΟΜΔΟΠΟΙΗΣΗ| +User Number|Αριθμός Χρήστη| +Full Name|Πλήρες Ονομα| +User Level|Επίπεδο Χρήστη| +User Group|Ομάδα Χρήστη| +ADD A NEW CAMPAIGN|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΕΚΣΤΡΑΤΕΙΑΣ| +ADD A NEW INBOUND GROUP|ΠΡΟΣΘΗΚΗ ΕΙΣΕΡΧΟΜΕΝΗΣ ΟΜΑΔΑΣ| +ADD NEW USERS GROUP|ΠΡΟΣΘΗΚΗ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ| +Campaign ID|ID Εκστρατείας| +Campaign Name|Ονομα Εκστρατείας| +Park Extension|Τηλ. σύνδεση Στάθμευσης| +Park Filename|Ονομα Αρχείου Στάθμευσης| +Web Form|Ιστο-σελίδα| +Allow Closers|Επιτρέπω τους Closers| +Hopper Level|Επίπεδο Hopper| +Auto Dial Level|ΕΠΙΠΕΔΟ ΑΥΤΟΜΑΤΗΣ ΚΛΗΣΗΣ| +Next Agent Call|Επόμενη Κλήση Χειριστή| +Local Call Time|Χρόνος Τοπικής Κλήσης| +Voicemail|ΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΙΟ| +SUBMIT|ΕΠΙΒΕΒΑΙΩΣΗ| +List ID|ID Λίστας| +List Name|Ονομα Λίστας| +Campaign|Εκστρατεία| +Group ID|ID Ομάδας| +Group Name|Ονομα Ομάδας| +Group Color|Χρώμα Ομάδας| +Fronter Display|Μπροστινή Οθόνη| +User ID Start|ID Χρήστη Ξεκινά| +Number of Lines|Αριθμός Γραμμών| +External Extension|Εξωτερική Τηλ. Σύνδεση| +Inbound Groups|Εισερχόμενες Ομάδες| +Group: |Ομάδα:| +Description: |Περιγραφή:| +USER ADDED|ΧΡΗΣΤΗΣ ΠΡΟΣΤΕΘΗΚΕ| +CAMPAIGN ADDED|ΕΚΣΤΡΑΤΕΙΑ ΠΡΟΣΤΕΘΗΚΕ| +CAMPAIGN STATUS ADDED|ΚΑΤΑΣΤΑΣΗ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΕΘΗΚΕ| +CAMPAIGN HOT KEY ADDED|ΚΛΕΙΔΙ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΕΘΗΚΕ| +LIST ADDED|ΛΙΣΤΑ ΠΡΟΣΤΕΘΗΚΕ| +GROUP ADDED|ΟΜΑΔΑ ΠΡΟΣΤΕΘΗΚΕ| +REMOTE AGENTS ADDED|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ ΠΡΟΣΤΕΘΗΚΑΝ| +USER GROUP ADDED|ΟΜΑΔΑ ΧΡΗΣΤΗ ΠΡΟΣΤΕΘΗΚΕ| +USER MODIFIED|ΧΡΗΣΤΗΣ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +CAMPAIGN MODIFIED|ΕΣΤΡΑΤΕΙΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +GROUP MODIFIED|ΟΜΑΔΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +CAMPAIGN MODIFIED|ΕΚΣΤΡΑΤΕΙΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +LIST MODIFIED|ΛΙΣΤΑ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +USER GROUP MODIFIED|ΟΜΑΔΑ ΧΡΗΣΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +RESETTING LIST-CALLED-STATUS|ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΛΙΣΤΑΣ| +Dial status |Κατάσταση κλήσης| +List Order|Σειρά Λίστας| +Hopper Level|Επίπεδο Hopper| +Force Reset of Hopper|Αναγκαστική Επαναφορά του Hopper| +Dial Timeout|Κλήση εκτός χρόνου| +Dial Prefix|Πρόθεμα Κλήσης| +Campaign CallerID|CallerID Εκστρατείας| +Campaign VDAD exten|Εκστρατείας VDAD εσωτ.σύνδεση| +Campaign Rec exten|Επέκταση εκστρατείας Ηχογρ| +Campaign Recording|Ηχογράφηση εκστρατείας| +Campaign Rec Filename|Όνομα αρχείου εκστρατείας Ηχογρ| +LISTS WITHIN THIS CAMPAIGN|ΛΙΣΤΕΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +LIST ID|ID ΛΙΣΤΑΣ| +LIST NAME|ΟΝΟΜΑ ΛΙΣΤΑΣ| +>ACTIVE<|>ΕΝΕΡΓΗ<| +This campaign has |Αυτή η εκστρατεία έχει| +active lists and |ενεργές λίστες και| +inactive lists|Μη ενεργές λίστες| +leads to be dialed in those lists|οδηγοί που καλούντε στις λίστες| +leads in the dial hopper|>οδηγοί στον hopper κλήσεων<| +>STATUS<|>ΚΑΤΑΣΤΑΣΗ<| +>DESCRIPTION<|>ΠΕΡΙΓΡΑΦΗ<| +>SELECTABLE<|>ΕΠΙΛΕΞΙΜΟ<| +>DELETE<|>ΔΙΑΓΡΑΦΗ<| +ADD NEW CUSTOM CAMPAIGN STATUS|ΠΡΟΣΘΗΚΗ ΝΕΑΣ ΠΡΟΣΑΡΜΟΣΜΕΝΗΣ ΚΑΤΑΣΤΑΣΗΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +Selectable: |Επιλέξιμο:| +value=ADD|value=ΠΡΟΣΘΗΚΗ| +CUSTOM HOT KEYS WITHIN THIS CAMPAIGN|ΠΡΟΣΑΡΜΟΣΜΕΝΑ ΚΛΕΙΔΙΑ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +>HOT KEY<|>ΚΛΕΙΔΙ<| +ADD NEW CUSTOM CAMPAIGN HOT KEY|ΠΡΟΣΘΗΚΗ ΝΕΟΥ ΠΡΟΣΑΡΜΟΣΜΕΝΟΥ ΚΛΕΙΔΙΟΥ ΕΚΣΤΡΑΤΕΙΑΣ| +Hot key: |Κλειδί:| +Basic View|Βασική Επισκόπηση| +Detail View|Αναλυτική Επισκόπηση| +MODIFY A LISTS RECORD|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΛΙΣΤΑΣ| +Reset Lead-Called-Status for this list|ΕΠΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ ΚΛΗΣΗΣ ΟΔΗΓΟΥ ΓΙΑ ΤΗΝ ΛΙΣΤΑ| +STATUSES WITHIN THIS LIST|ΚΑΤΑΣΤΑΣΕΙΣ ΣΤΗΝ ΛΙΣΤΑ| +>CALLED<|>ΚΛΗΘΕΝΤΑ<| +>NOT CALLED<|>ΜΗ ΚΛΗΘΕΝΤΑ<| +>SUBTOTALS<|>ΥΠΟΣΥΝΟΛΑ<| +>SUBTOTAL<|>ΥΠΟΣΥΝΟΛΟ<| +TIME ZONES WITHIN THIS LIST|ΖΩΝΕΣ ΩΡΑΣ ΣΤΗΝ ΛΙΣΤΑ| +GMT OFFSET NOW|GMT OFFSET| +local time|τοπικός χρόνος| +>TOTAL<|>ΣΥΝΟΛΙΚΑ<| +CALLED COUNTS WITHIN THIS LIST|ΜΕΤΡΗΣΗ ΚΛΗΣΕΩΝ ΣΤΗΝ ΛΙΣΤΑ| +MODIFY A GROUPS RECORD|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΟΜΑΔΩΝ| +MODIFY A REMOTE AGENTS ENTRY|ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ| +numbers only|μόνο αριθμοί| +dial plan number dialed to reach agents|ο αριθμός που κλήθηκε από το πλάνο κλήσεων για να καλέσει τους χειριστές| +MODIFY A USERS GROUP ENTRY|ΤΡΟΠΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΣΗΣ ΟΜΑΔΑΣ ΧΡΗΣΤΩΝ| +no spaces or punctuation|όχι κενά ή στίξη| +description of group|περιγραφή ομάδας| +SEARCH FOR A USER|ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΗ| +SEARCH RESULTS|ΑΠΟΤΕΛΕΣΜΑΤΑ ΑΝΑΖΗΤΗΣΗΣ| +>STATS<|>ΣΤΑΤΙΣΤΙΚΑ<| +USER LISTINGS|ΛΙΣΤΕΣ ΧΡΗΣΤΗ| +CAMPAIGN LISTINGS|ΕΝΤΑΓΜΕΝΕΣ ΕΚΣΤΡΑΤΕΙΕΣ| +LIST LISTINGS|ΕΝΤΑΓΜΕΝΕΣ ΛΙΣΤΕΣ| +INBOUND GROUP LISTINGS|ΕΝΤΑΓΜΕΝΕΣ ΕΙΣΕΡΧΟΜΕΝΕΣ ΟΜΑΔΕΣ| +REMOTE AGENTS LISTINGS|ΕΝΤΑΓΜΕΝΟΙ ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ| +USER GROUPS LISTINGS|ΕΝΤΑΓΜΕΝΕΣ ΟΜΑΔΕΣ ΧΡΗΣΤΗ| +script runtime|χρόνος εκτέλεσης διαδικασίας| +Hopper List|Λίστα Hopper| +Live Current Hopper List|Ενεργή Λίστα στον Hopper| +Total leads in hopper right now|Αριθμός οδηγών στον hopper τώρα:| +Server Stats|Στατιστικά Διακομιστή| +Total Calls placed from this Campaign: |Συνολικά κλήσεις που τοποθετήθηκαν από την Εκστρατεία:| +Average Call Length for all Calls in seconds:|Μέσος όρος σε δευτερόλεπτα για όλες τις κλήσεις:| +Total DROP Calls: |Συνολικά ΕΓΚΑΤΑΛΕΙΜΕΝΕΣ κλήσεις:| +Average Length for DROP Calls in seconds: |Μέσος όρος σε δευτερόλεπτα για ΕΓΚΑΤΑΕΙΜΕΝΕΣ κλήσεις:| +Total NA calls -Busy,Disconnect,BTvoicemail: |Συνολικά ΝΑ κλήσεις -Busy,Disconnect,BTvoicemail:| +Average Call Length for NA Calls in seconds: |Μέσος όρος σε δευτερόλεπτα για ΝΑ κλήσεις:| +---------- DROPS|---------- ΕΓΚΑΤΑΛ| + AUTO-DIAL NO ANSWERS| ΜΗ ΑΠΑΝΤ ΑΥΤ ΚΛΗΣΕΙΣ| +---------- USER STATS|---------- ΣΤΑΤ.ΧΕΙΡ.| +---------- TIME STATS|---------- ΣΤΑΤ.ΧΡΟΝ.| +USER |ΧΡΗΣΤΗΣ | +Agents Time On Calls |Χρόνος Χειριστών σε κλήσεις | +agents logged in on server|Χειριστές συνδεμένοι στον διακομιστή| +Paused agents|Χειριστές σε παύση| +5 minutes or more on call|5 λεπτά ή παραπάνω σε κλήση| +Over 10 minutes on call|Πάνω από 10 λεπτά σε κλήση| + NO AGENTS ON CALLS | ΚΑΝΕΝΑΣ ΧΕΙΡ. ΣΕ ΚΛΗΣΕΙΣ | +calls being placed on server|κλήσεις που τοποθετήθηκαν στον διακομιστή| +LIVE CALL WAITING|ΑΝΑΜΟΝΗ ΕΝΕΡΓΗΣ ΚΛΗΣΗΣ| + NO LIVE CALLS WAITING |ΔΕΝ ΥΠΑΡΧΟΥΝ ΕΝΕΡΓΕΣ ΚΛΗΣΕΙΣ ΣΕ ΑΝΑΜΟΝΗ | +START OVER|ΞΕΚΙΝΑ ΠΑΛΙ| +Lead Loader Module|Υπομονάδα εισαγωγής οδηγών| +Current file status|Κατάσταση αρχείου| +Load leads from this file|Εισαγωγή οδηγών από αυτό το αρχείο| +Answering Machine Message|Μήνυμα Αυτόματου Τηλεφωνητή| +Processing |Επεξεργασία| +TALK TIME AND STATUS|ΧΡΟΝΟΣ ΟΜΙΛΙΑΣ ΚΑΙ ΚΑΤΑΣΤΑΣΗ| +>COUNT<|>ΚΑΤΑΜΕΤΡΗΣΗ<| +>HOURS:MINUTES<|>ΩΡΕΣ:ΛΕΠΤΑ<| +TOTAL CALLS |ΣΥΝΟΛΙΚΕΣ ΚΛΗΣΕΙΣ| +LOGIN/LOGOUT TIME| ΧΡΟΝΟΣ ΣYΝΔΕΣΗΣ/ΑΠΟΣΥΝΔΕΣΗΣ| +>EVENT <| >ΣΥΜΒΑΝ<| +> CAMPAIGN<|>ΕΚΣΤΡΑΤΕΙΑ<| +CAMPAIGN: |ΕΚΣΤΡΑΤΕΙΑ: | +LAST 50 CALLS|Τελευταίες 50 Κλήσεις| +VICIDIAL REMOTE: Call Disposition|Απομακρυσμένο: Τερματισμός Κλήσης| +Call has been dispositioned|Η κλήση έχει τερματίσει| +Close This Window|Κλείστε αυτό το Παράθυρο| +Call information|Πληροφορίες Κλήσης| +lead lookup FAILED for lead_id|ΑΠΟΤΥΧΙΑ ψαξίματος καθοδήγησης για lead_id| +DISPO CALL|Τερματισμό Κλήσης| +>Address |>Διεύθυνση | +>City |>Πόλη | +>State:|>Κράτος:| + Postal Code:|Ταχ.Κωδ.| +>Province |Επαρχία| +>Country |>Χώρα | +>Alt Phone |>Εναλ Τηλέφωνο | +>Email |Ηλεκτρονικό ταχυδρομείο| +>Security |>Ασφάλεια | +>Comments |>Σχόλια | +>Disposition:|>Τερματισμός:| +Group Hourly Stats|Ομαδοποιημένα Ωριαία Στατιστικά| +TSR HOUR COUNTS|ΜΕΤΡΗΣΗ ΩΡΩΝ TSR| +Lead Search|Αναζήτηση Οδηγού| +Lead Lookup|Ψάξιμο Καθοδήγησης| +Please enter a:|Παρακαλώ καταχωρήστε:| +a Home Phone Number:|ένας αριθμός τηλεφώνου σπιτιού| +vendor lead code|αυτόματος κωδικός καθοδήγησης| +a lead ID:|ID οδηγού| +>NEW SEARCH<|>ΝΕΑ ΑΝΑΖΗΤΗΣΗ<| +Lead record modification|Τροποποίηση οδηγού| +information modified|οι πληροφορίες τροποποιήθηκαν| +CALLS TO THIS LEAD|Κλήσεις για αυτόν τον οδηγό| +VDAD Closer Stats|Στατιστικά VDAD Closer| +Auto-dial Closer Stats|Στατιστικά αυτόματης κλήσης Closer| +VICIDIAL REMOTE AGENTS|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ| +INBOUND STATS|ΣΤΑΤΙΣΤΙΚΑ ΕΙΣΕΡΧΟΜΕΝΩΝ| +REMOTE AGENTS ERROR - Please go back and look at the data you entered|ΛΑΘΟΣ ΑΠΟΜΑΚΡΥΣΜΕΝΩΝ ΧΕΙΡΙΣΤΩΝ| + - WAITING - |- ΑΝΑΜΟΝΗ -| +Remote Agent inbound stats |Στατιστικά εισερχομένων απομακρυσμένου χειριστή| +Total calls taken |Συνολικές κλήσεις που διακομίστηκαν| +Total talk time on |Συνολικός χρόνος ομιλίας σε| +Call list for |Λίστα Κλήσεων για| + NO CALLS ON THIS DAY |ΔΕΝ ΥΠΑΡΧΟΥΝ ΚΛΗΣΕΙΣ ΓΙΑ ΑΥΤΗ ΤΗΝ ΗΜΕΡΑ| +Scripts|Βοηθοί| +Script:|Βοηθός:| +Get Call Launch|Κατά την έναρξη κλήσης| +not used currently|μην χρησιμοποιημένος αυτήν την περίοδο| +VERSION|ΕΚΔΟΣΗ| +BUILD|ΔΗΜΙΟΥΡΓΙΑ| +REPORTS|ΑΝΑΦΟΡΕΣ| +USERS|ΧΡΗΣΤΕΣ| + CAMPAIGNS| ΕΚΣΤΡΑΤΕΙΕΣ| +LISTS|ΛΙΣΤΕΣ| +SCRIPTS|ΒΟΗΘΟΙ| +FILTERS|ΦΙΛΤΡΑ| +IN-GROUPS|ΕΙΣΕΡΧΟΜΕΝΕΣ ΟΜΑΔΕΣ| +USER GROUPS|ΟΜΑΔΕΣ ΧΡΗΣΤΗ| +REMOTE AGENTS|ΑΠΟΜΑΚΡΥΣΜΕΝΟΙ ΧΕΙΡΙΣΤΕΣ| +Column|Στήλη| + PERFORMANCE| ΑΠΟΔΟΣΗ| +AGENT |ΧΕΙΡΙΣΤΗΣ| +SERVER |ΔΙΑΚΟΜΙΣΤΗΣ | +### END translation phrases through 1.1.11 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|Δευτερ. Εγκαταλ. Κλήσης - Ο αριθμός των δευτερολέπτων από την στιγμή που ο πελάτης σηκώνει το τηλ μέχρι η κλήση να θεωρηθεί εγκαταλειμένη. Μόνο για εξερχόμενες κλήσεις | +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 dial plan extension that the desired Safe Harbor audio file is located at on your server|Εσωτ.σύνδεση Ασφαλούς Φύλαξης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Ασφαλής Φύλαξης στον διακομιστή| +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 dial plan extension that the desired Dropped call audio file is located at on your server|Εσωτ.Σύνδεση Εγκατάλειψης - Αυτή είναι η εσωτ.σύνδεση του πλάνου κλήσεων, όπου βρίσκεται το ηχητικό αρχείο της Εγκατάλειψης στον διακομιστή| +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|Ονομα Χρόνου Κλήσης - Αυτό είναι ένα πιο περιγραφικό όνομα του Ορισμού Χρόνου Κλήσης. Είναι μία σύντομη περιγραφή. 2-30 χαρακτήρεςCall Time Comments - 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|Σχόλια Χρόνου Κλήσης - Μέχρι 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|Προκαθορισμένοι Χρόνοι Εκκίνησης και Παύσης - Αυτός είναι ο προκαορισμένος χρόνος όπου θα επιτρέπετε οι κλήσεις εάν δεν έχει οριστεί ο χρόνος εκκίνησης της ημέρας-της-εβδομάδας. 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|Εβδομαδιαίοι Χρόνοι Εκκίνησης και Παύσης - Αυτοί είναι προσαρμόσιμοι χρόνοι ανά ημέρα για τον ορισμό χρόνων κλήσεων| +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|Τροποποίηση Χρόνων Κλήσεων - Αυτή η επιλογή επιτρέπει στον χρήστη εμφανίσει και να τροποποιήσει τους χρόνους κλήσεων και τις εγγραφές χρόνων κλήσεων κατάστασης. Δεν χρειάζεται να είναι ενεργή αυτή η επιλογή εάν μόνο χρειάζεται η αλλαγή της επιλογής των χρόνων κλήσεων στην οθόνη των εκστρατειών| +Wrap Up 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|Δευτερ. Τυλίγματος - Ο αριθμός των δευερολέπτων που αναγκάζει έναν χειριστή να περιμένει πριν του επιτραπεί να λάβει ή να κάνει άλλη κλήση. Ο χρόνος ξεκινάει μόλις τερματίσει μία κλήση. Προκαθορισμένα είναι 0 δευτερ. Αν ο χρόνος περάσει πριν ο χειριστής τερματίσει την κλήση, δεν θα μετακινηθεί στην άλλη κλήση πριν συβεί αυτό| +Wrap Up Message -<\/B> This is a campaign-specific message to be displayed on the wrap up screen if wrap up seconds is set|Μήνυμα Τυλίγματος - Αυτό είναι ένα συγκεκριμένο μήνυμα εκστρατείας που εμφανίζεται στην οθόνη τυλίγματος όταν έχει οριστεί ο χρόνος τυλίγματος| +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|Το ID Χρόνου Κλήσης Κατάστασης, το όνομα και η κατάσταση πρέπει να είναι τουλάχιστον 2 χαρακτήρες | +Call Time ID and name must be at least 2 characters in length|Το ID Χρόνου Κλήσης και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +Active State Call Time Definitions for this Record|Ενεργοί Ορισμοί Χρόνου Κλήσης Κατάστασης για αυτή την Εγγραφή| +there is already a call time entry with this ID|υπάρχει ήδη μία εγγραφή χρόνου κλήσης με αυτό το 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|Εσωτ.Σύνδεση Ασφαλούς Φιλοξενίας| +Use Drop Message|Χρήση μηνύματος Εγκατάλειψης| +Drop Exten|Εσωτ. Σύνδεση Εγκατάλειψης| +SIP Listen Version|SIP Εκδοση Παρακολούθησης| +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|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|Το ID χρόνου κλήσης πρέπει να είναι τουλάχιστον 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|ID Χρόνου Κλήσης| +Call Time Name|Ονομα Χρόνου Κλήσης| +Call Time Comments|Σχόλια Χρόνου Κλήσης| +short description of the call time|σύντομη περιγραφή του χρόνου κλήσης| +HIDE|ΑΠΟΚΡΥΨΗ| +SHOW|ΕΜΦΑΝΙΣΗ| +Show Dialable Leads Count|Εμφάνιση Μετρητή Κληθέντων Οδηγών| +Dialable Lead Count|Μετρητής Κληθέντων Οδηγών| +TEST ON CAMPAIGN|ΕΛΕΓΧΟΣ ΣΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +Wrap Up Seconds:|Δευτερ Τυλίγματος:| +Wrap Up Message:|Μήνυμα Τυλίγματος:| +Alt Number Dialing|Κλήση Εναλ Αριθμού| +no active lists selected for this campaign|δεν έχουν επιλεχθεί ενεργές λίστες για την εκστρατεία| +Real-Time Screen|Πραγματικού Χρόνου Οθόνη| +Allowable 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|Επιτρεπόμενες εισερχόμενες ομάδες - Για τις ΠΙΟ ΣΤΕΝΈΣ εκστρατείες μόνο. Εδώ είναι όπου εσείς επιλέγει τις εισερχόμενες ομάδες που θέλετε τους πράκτορες σε αυτήν την ΠΙΟ ΣΤΕΝΉ εκστρατεία για να είστε σε θέση για να πάρετε τις κλήσεις από. Είναι σημαντικό για τις ΣΥΝΔΥΑΣΜΕΝΕΣ εισερχόμενος-εξερχόμενες εκστρατείες να επιλεχτούν μόνο οι εισερχόμενες ομάδες που χρησιμοποιούνται για τους πράκτορες σε αυτήν την εκστρατεία. Οι κλήσεις που μπαίνουν στις εισερχόμενες ομάδες που επιλέγονται εδώ θα μετρηθούν ως ενεργές κλήσεις για μια συνδυασμένη εκστρατεία ακόμα κι αν όλοι οι πράκτορες στην εκστρατεία δεν συνδέονται για να λάβουν τις κλήσεις από όλες εκείνες τις επιλεγμένες εισερχόμενες ομάδες| +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 - αυτό δεν καλεί τον κατάλογοπεριέχει κάθε μόλυβδο που έχει τεθεί μια θέση 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 χρήσης - αυτό καθορίζει εάν αυτή ηεκστρατεία είναι στους μολύβδους φίλτν ενάντια στον εσωτερικόκατάλογο 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 - αυτός ο τομέας επιτρέπει την αποστολήενός αριθμού συνήθειας 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|Σύνδεση - η σύνδεση που χρησιμοποιείται για τον τηλεφωνικό χρήστηστη σύνδεση στις εφαρμογές πελατών| +Password -<\/B> The password used for the phone user to login to the client applications|Κωδικός πρόσβασης - ο κωδικός πρόσβασης που χρησιμοποιείται γιατον τηλεφωνικό χρήστη στη σύνδεση στις εφαρμογές πελατών| +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|Μέγιστο προσπάθειας| +If you want to allow Consultative Transfers, a fronter to a closer, you can place CXFER as one of the number-to-dial presets and the proper dial string will be sent to do a Local Consultative Transfer, then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER or CXFER, for instance if you want to do Internal Consultative transfers instead of Local you would put CXFER90009 in the number-to-dial field|Εάν θέλετε να επιτρέψετε τις μεταφορές σε σύμβουλο, ενός fronter σε έναν closer, θα πρέπει να θέσετε CXFER στο πεδίο number-to-dial και το σωστό κείμενο κλήσης θα σταλεί να κάνει μία τοπική μεταφορά σε σύμβουλο. Καθώς η κλήση θα απαντηθεί, μπορείτε να αφήσετε το πελάτη με τον χειριστή closer και να συνεχίσετε στην επόμενη κλήση πατώντας το πλήκτρο ΑΠΟΧΩΡΗΣΗ 3μελής ΚΛΗΣΗΣ. Εάν θέλετε να μεταφέρετε τους πελάτες σε AGI διαδικασία ή σε IVR, τότε θα πρέπει να θέσετε AXFER στο πεδίο number-to-dial. Μπορείτε επίσης να θέσετε και μία προσωπική τηλ. σύνδεση μετά το AXFER ή CXFER| +System Performance -<\/B> Setting this option to Y will enable logging of system performance stats for the server machine including system load, system processes and Asterisk channels in use. Default is N|Επίδοση Συστήματος - Θέτοντας αυτήν την επιλογή σε Ν, θα ενεργοποιήσετε την καταγραφή στατιστικών γεγονότων επίδοσης για τον διακομιστή, συμπεριλαμβάνοντας το φόρτο του συστήματος, τις διεργασίες και τα κανάλια που χρησιμοποιεί. Προκαθορισμένα είναι Ο| +Server Logs -<\/B> Setting this option to Y will enable logging of all VICIDIAL related scripts to their text log files. Setting this to N will stop writing logs to files for these processes, also the screen logging of asterisk will be disabled if this is set to N when Asterisk is started. Default is Y|Γεγονότα Διακομιστή - Θέτοντας αυτήν την επιλογή σε Ν θα ενεργοποιήσετε την καταγραφή των γεγονότων για όλες τις διεργασίες. Επίσης, η καταγραφή γεγονότων της οθόνης θα είναι απενεργοποιημένη, εάν είναι Ν όταν το σύστημα ξεκινήσει. Προκαθορισμένα είναι Ν| +AGI Output -<\/B> Setting this option to NONE will disable output from all VICIDIAL related AGI scripts. Setting this to STDERR will send the AGI output to the Asterisk CLI. Setting this to FILE will send the output to a file in the logs directory. Setting this to BOTH will send output to both the Asterisk CLI and a log file. Default is FILE|Εξοδος AGI - Θέτοντας αυτήν την επιλογή σε NONE θα απενεργοποιήσετε την έξοδο από όλες τις διαδικασίες AGI. Αν θέσετε STDERR θα σταλεί η έξοδος των AGI στο CLI. Επίσης υπάρχουν οι επιλογές FILE και BOTH. Προκαθορισμένα είναι FILE| +Recording Delay -<\/B> For ALLCALLS and ALLFORCE recording only. This setting will delay the starting of the recording on all calls for the number of seconds specified in this field. Default is 0|Καθυστέρηση Ηχογράφησης - Μόνο για ηχογραφήσεις ALLCALLS και ALLFORCE. Προκαθορισμένα είναι 0| +Omit Phone Code -<\/B> This field allows you to leave out the phone_code field while dialing within VICIDIAL. For instance if you are dialing in the UK from the UK you would have 44 in as your phone_code field for all leads, but you just want to dial 10 digits in your dial plan extensions.conf to place calls instead of 44 then 10 digits. Default is N|Παράλειψη Κωδικού Τηλεφώνου - Αυτό το πεδίο σας επιτρέπει να αφήσετε εκτός το πεδίο phone_code καθώς γίνονται οι κλήσεις. Προκαθορισμένα είναι Ο| +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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|Ηχογράφηση Εκστρατείας - Αυτές οι επιλογές σας επιτρέπουν να διαλέξετε πιο επίπεδο ηχογράφησης επιτρέπετε στην εκστρατεία. NEVER θα απενεργοποιήσει την ηχογράφηση στον πελάτη. ONDEMAND είναι το προκαθορισμένο και επιτρέπει στον χειριστή να ξεκινάει και να σταματάει την ηχογράφηση. ALLCALLS ξεκινάει η ηχογράφηση όποτε η κλήση μεταφέρετε στον χειριστή| +Dial Method -<\/B> This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift(as defined by call_time selected for campaign) and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods|Μέθοδος Κλήσης - Με αυτό το πεδίο καθορίζεται ο τρόπος κλήσεων. Εάν είναι MANUAL τότε το επίπεδο αυτόματης κλήσης θα κλειδωθεί στο 0 εκτός εάν η μέθοδος κλήσης αλλάξει. Εάν είναι RATIO τότε γίνεται κλήση κάποιων αριθμό γραμμών για τους ενεργούς χειριστές. Το ADAPT_HARD_LIMIT θα κάνει κλήσεις με πρόβλεψη μέχρι το ποσοστό εγκατ. κλήσεων και δεν θα αφήσει την επιθετική κλήση καθώς το όριο εγκατ. κλήσεων φτάσει, μέχρι το ποσοστό να πέσει ξανά. Το ADAPT_TAPERED επιτρέπει να συνεχίσει με το ποσοστό εγκατ. κλήσεων την πρώτη ½ ώρα της βάρδιας και γίνεται πιο αυστηρό μετέπειτα. Το ADAPT_AVERAGE προσπαθεί να διατηρήσει ένα μέσο όρο ή το ποσοστό εγκατ. κλήσεων να μην επιβάλει σκληρά όρια τόσο επιθετικά όσο οι άλλες δύο μέθοδοι| +Available Only Tally -<\/B> This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N|Διαθέσιμα μόνο ετικέτες - Εάν θέσετε σε Ν αυτό το πεδίο, θα αφήσει εκτός τις καταστάσεις των χειριστών out INCALL και QUEUE, καθώς υπολογίζεται ο αριθμός των κλήσεων όταν δεν είναι σε κατάσταση κλήσης MANUAL. Προκαθορισμένα είναι Ο| +Drop Percentage Limit -<\/B> This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO|Ποσοστό Ορίου Εγκατ. Κλήσεων - Σε αυτό το πεδίο μπορείτε να θέσετε το όριο του ποσοστού εγκατ. κλήσεων καθώς χρησιμοποιείτε μία μέθοδος προσαρμοσμένης-πρόβλεψη κλήσεων, όχι MANUAL ή RATIO| +Maximum Adapt Dial Level -<\/B> This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0|Μέγιστο Επίπεδο Προσαρμογής Κλήσεων - Σε αυτό το πεδίο μπορείτε να θέσετε το όριο για το όριο του αριθμού γραμμών για κάθε χειριστή καθώς χρησιμοποιείτε μία μέθοδος προσαρμοσμένης-πρόβλεψη κλήσεων, όχι MANUAL ή RATIO. Αυτός ο αριθμός μπορεί να είναι μεγαλύτερος από το επίπεδο αυτόματης κλήσης εάν το υλικό σας το υποστηρίζει. Η τιμή πρέπει να είναι θετικός αριθμός μεγαλύτερος από ένα και μπορεί να έχει δεκαδικά. Προκαθορισμένα είναι 3.0| +Latest Server Time -<\/B> This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling|Τελευταίος Χρόνος Διακομιστή - Αυτό το πεδίο χρησιμοποιείτε μόνο από την μέθοδο ADAPT_TAPERED. Θα πρέπει να καταχωρήσετε την ώρα και τα λεπτά που θα σταματήσει τις κλήσεις η εκστρατεία. Αυτό επιτρέπει στον αλγόριθμο να αποφασίσει πόσο επιθετικά θα κάνει κλήσεις και πόσο χρόνο| +Adapt Intensity Modifier -<\/B> This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Ενταση Τροποποίησης Προσαρμογής - Αυτό το πεδίο χρησιμοποιείτε για να αλλάζει ένταση προβλέψεων είτε υψηλότερα ή χαμηλότερα. Προκαθορισμένα είναι 0. Αυτό το πεδίο δεν χρησιμοποιείται από τις μεθόδους MANUAL ή RATIO| +Dial Level Difference Target -<\/B> This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Επίπεδο Κλήσεων Μεταβολής Στόχου - Αυτό το πεδίο χρησιμοποιείτε για να έχει στόχο ένα συγκεκριμένο αριθμό χειριστών να περιμένουν κλήσεις ή κλήσεις να περιμένουν για χειριστές. Π.χ. εάν θέλετε πάντα να έχετε κατά μέσο όρο έναν χειριστή ελεύθερο για ν παίρνει τις κλήσεις, τότε πρέπει να το θέσετε σε -1. Εάν στόχος είναι να έχετε πάντα μία κλήση σε αναμονή για ένα χειριστή, τότε πρέπει να το θέσετε σε 1. Προκαθορισμένα είναι 0. Αυτό το πεδίο δεν χρησιμοποιείται από τις μεθόδους MANUAL ή RATIO| +System Performance|Επίδοση Συστήματος +Server Logs|Γεγονότα Διακομιστή +AGI Output|Εξοδος AGI +Recording Delay|Καθυστέρηση Ηχογράφησης +Omit Phone Code|Παράλειψη Κωδικού Τηλεφώνου +Campaign Recording|Ηχογράφηση Εκστρατείας +Dial Method|Μέθοδος Κλήσης +Available Only Tally|Διαθέσιμα μόνο ετικέτες +Drop Percentage Limit|Ποσοστό Ορίου Εγκατ.Κλήσεων +Maximum Adapt Dial Level|Μέγιστο Επίπεδο Προσαρμογής Κλήσεων +Latest Server Time|Τελευταίος Χρόνος Διακομιστή +Adapt Intensity Modifier|Ενταση Τροποποίησης Προσαρμογής +Dial Level Difference Target|Επίπεδο Κλήσεων Μεταβολής Στόχου +You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode|Δεν μπορείτε να αλλάξετε το επίπεδο Αυτόματης Κλήσης, εάν έχετε ορίσει κάποια μέθοδο Προσαρμογής Κλήσεων. Μόνο ο διακομιστής μπορεί να το αλλάξει όταν είναι σε διαδικασία αυτόματων κλήσεων. +### START translations for 2.0.2 release ### +VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting|Οι Τηλ.Κυκλ.Συνδ. του εξυπηρετητή σας επιτρέπουν να περιορίσετε τις εξερχόμενες γραμμές που χρησιμοποιούνται στον εξυπηρετητή ανά εκστρατεία. Χωρίς αυτές τις εγγραφές, επιτρέπετε στην εκστρατεία να έχει όσες γραμμές μπορεί να έχει, μέχρι τον μέγιστο καθορισμένο αριθμό Τηλ.Κυκλ.Συνδ.| +VICIDIAL Balance Dialing -<\/B> Setting this field to Y will allow the server to place balance calls for campaigns in VICIDIAL so that the defined dial level can be met even if there are no agents logged into that campaign on this server. Default is N|Διακύμανση Τηλεφωνικής Κλήσης - Καθορίζοντας αυτό το πεδίο σε Ν θα επιτρέψει στον εξυπηρετητή να ορίζει κλήσεις διακύμανσης για την εκστρατεία, ώστε το καθορισμένο επίπεδο κλήσης να μπορεί να ικανοποιείται έστω και εάν δεν υπάρχουν συνδεμένοι χειριστές σε αυτήν την εκστρατεία. Προκαθορισμένα είναι Ο| +VICIDIAL Balance Offlimits -<\/B> This setting defines the number of trunks to not allow VICIDIAL balance dialing to use. For example if you have 40 max vicidial trunks and balance offlimits is set to 10 you will only be able to use 30 trunk lines for VICIDIAL balance dialing. Default is 0|Διακύμανση εκτός ορίων - Καθορίζει τον αριθμό των τηλ.κυκλ.συνδ. που δεν επιτρέπετε στο σύστημα να χειριστεί για Διακύμανση Τηλεφωνικής Κλήσης| +Allowed Campaigns -<\/B> This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system|Εκστρατείες - αυτό είναι ένας επιλέξιμος κατάλογος εκστρατειώνστον οποίο τα μέλη αυτής της ομάδας χρηστών μπορούν νασυνδεθούν. Η επιλογή όλος-ΕΚΣΤΡΑΤΕΙΩΝ επιτρέπει στους χρήστες σεαυτήν την ομάδα για να δει και να συνδεθεί σε οποιαδήποτεεκστρατεία στο σύστημα| +VICIDIAL SERVER TRUNK RECORD NOT ADDED|Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΠΡΟΣΤΕΘΗΚΕ| +there is already a server-trunk record for this campaign|υπάρχει ήδη μία εγγραφή-κορμού στον εξυπηρετητή για την εκστρατεία| +the number of vicidial trunks is too high|ο αριθμός των κορμών είναι πολύ υψηλός| +VICIDIAL SERVER TRUNK RECORD ADDED|Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΠΡΟΣΤΕΘΗΚΕ| +VICIDIAL SERVER TRUNK RECORD NOT MODIFIED|Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +VICIDIAL SERVER TRUNK RECORD MODIFIED|Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΤΡΟΠΟΠΟΙΗΘΗΚΕ| +VICIDIAL SERVER TRUNK RECORD NOT DELETED|Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΕΝ ΔΙΑΓΡΑΦΗΚΕ| +VICIDIAL SERVER TRUNK RECORD DELETED|Η ΕΓΓΡΑΦΗ ΤΟΥ ΚΟΡΜΟΥ ΣΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ ΔΙΑΓΡΑΦΗΚΕ| +campaign must be between 3 and 8 characters in length|η εκστρατεία πρέπει να είναι μεταξύ 3 και 8 χαρακτήρων στο μήκος| +server_ip delay must be at least 7 characters|η server_ip καθυστέρηση πρέπει να είναι τουλάχιστον 7 χαρακτήρες| +trunks must be a digit from 0 to 9999|οι κορμοί πρέπει να είναι ένα ψηφίο από 0 έως 9999| +VICIDIAL Balance Dialing|Διακύμανση Τηλεφωνικής Κλήσης| +VICIDIAL Balance Offlimits|Διακύμανση εκτός ορίων| +ADDING NEW SERVER VICIDIAL TRUNK RECORD|ΠΡΟΣΘΕΤΕΙ ΝΕΑ ΕΓΓΡΑΦΗ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ| +ADD NEW SERVER VICIDIAL TRUNK RECORD|ΠΡΟΣΘΗΚΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΣΡΜΟΥ| +MODIFY SERVER VICIDIAL TRUNK RECORD|ΤΡΟΠΟΠΟΙΗΣΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ| +DELETE SERVER VICIDIAL TRUNK RECORD|ΔΙΑΓΡΑΦΗ ΕΓΓΡΑΦΗΣ ΕΞΥΠΗΡΕΤΗΤΗ ΚΟΡΜΟΥ| +VICIDIAL TRUNKS FOR THIS SERVER|ΚΟΡΜΟΙ ΓΙΑ ΤΟΝ ΕΞΥΠΗΡΕΤΗΤΗ| + RESTRICTION | ΠΕΡΙΟΡΙΣΜΟΣ | + TRUNKS | ΚΟΡΜΟΙ | +Emergency VDAC Jam Clear|έκτακτης ανάγκης καθαρισμού VDAC| +VDAC NOT CLEARED FOR CAMPAIGN|VDAC ΔΕΝ ΚΑΘΑΡΙΣΤΗΚΕ ΓΙΑ ΤΗΝ ΕΚΣΤΡΑΤΕΊΑ| +LAST VDAC RECORD CLEARED FOR CAMPAIGN|ΤΕΛΕΥΤΑΙΑ ΕΓΓΡΑΦΗ VDAC ΠΟΥ ΚΑΘΑΡΙΖΕΤΑΙ ΓΙΑ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +VDAC CLEAR CONFIRMATION|ΕΠΙΒΕΒΑΙΩΣΗ ΚΑΘΑΡΙΣΜΟΥ VDAC| +Click here to delete the oldest LIVE record in VDAC for|Επιλέξτε εδώ για να διαγράψετε την παλαιότερη ΖΩΝΤΑΝΗ εγγραφή στο VDAC για| +Allowed Campaigns|Επιτρεπόμενες Εκστρατείες| +USERS CAN VIEW ANY CAMPAIGN|ΟΙ ΧΡΗΣΤΕΣ ΜΠΟΡΟΥΝ ΝΑ ΔΟΥΝ ΟΠΟΙΑΔΗΠΟΤΕ ΕΚΣΤΡΑΤΕΙΑ| +Campaign Not Allowed|Εκστρατεία δεν επιτρέπεται| +### START translations for 2.0.3 release ### +ADAPT OVERRIDE|ΠΡΟΣΑΡΜΟΣΤΕ ΤΗ ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ| +The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually.|Το ADAPT τετραγωνίδιο ΣΥΜΠΛΗΡΩΜΑΤΙΚΗΣ ΠΡΟΜΉΘΕΙΑΣ επιτρέπει σεσας για να αναγκάσει ένα νέο επίπεδο πινάκων ακόμα κι αν ημέθοδος πινάκων είναι σε έναν ADAPT τρόπο. Αυτό είναιχρήσιμο εάν υπάρχει μια δραματική μετατόπιση στην ποιότητα τωνμολύβδων και θέλετε να αλλάξετε δραστικά το dial_level με τοχέρι.| +There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hangup their call, stay on the same lead, and dial another contact number from that lead.|Υπάρχουν δύο ειδικές επιλογές HotKey ότι μπορείτε ναχρησιμοποιήσετε από κοινού με τον εναλλάσσομαι τηλεφωνικό αριθμότο σχηματισμό, ALTPH2 - ο εναλλάσσομαι τηλεφωνικός καυτοίπίνακας και αδδρ3-- Address3 καυτός πίνακας επιτρέπουν σε ένανπράκτορα για να χρησιμοποιήσουν μια άμεση πρόσβαση στο hangup ηκλήση τους, παραμονή στον ίδιο μόλυβδο, και να σχηματίσουν ένανάλλο αριθμό επαφών από εκείνο τον μόλυβδο.| +Concurrent Transfers|Ταυτόχρονες μεταφορές| +Concurrent Transfers -<\/B> This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method|Ταυτόχρονες μεταφορές - αυτή η ρύθμιση χρησιμοποιείται για νακαθορίσει τον αριθμό κλήσεων που μπορεί να σταλεί στουςπράκτορες συγχρόνως. Συνιστάται αυτή η ρύθμιση να αφήνεται στοΑΥΤΟΚΙΝΗΤΟ. Αυτός ο τομέας δεν χρησιμοποιείται με τη ΧΕΙΡΩΝΑΚΤΙΚΗμέθοδο πινάκων| +Auto Alt-Number Dialing -<\/B> This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method|Αυτόματος ALT-ARJCMO'S που σχηματίζει - αυτή η ρύθμισηχρησιμοποιείται για να σχηματίσει αυτόματα τους εναλλάσσομαιτομείς αριθμού σχηματίζοντας σε ΑΝΑΛΟΓΙΑ και ΝΑ ΠΡΟΣΑΡΜΟΣΕΙ τιςμεθόδους πινάκων όταν δεν υπάρχει καμία επαφή στον κύριοτηλεφωνικό αριθμό για έναν μόλυβδο, τις θέσεις NA, β,συνεχούς ρεύματος και ν. Αυτή η ρύθμιση δεν χρησιμοποιείται με τηΧΕΙΡΩΝΑΚΤΙΚΗ μέθοδο πινάκων| +Auto Alt-Number Dialing|Αυτόματος σχηματισμός ALT-ARJCMOY| +View Reports -<\/B> This option allows the user to view the VICIDIAL reports.|Εκθέσεις άποψης - αυτή η επιλογή επιτρέπει στο χρήστη για να δειτις εκθέσεις VICIDIAL.| +Modify Sections -<\/B> These options allow the user to view and modify each sections records. If set to 0, the user will be able to see the section list, but not the detail or modification screen of a record in that section|Τροποποιήστε τα τμήματα - αυτές οι επιλογές επιτρέπουν στοχρήστη για να δουν και να τροποποιήσουν κάθε ένας αρχείατμημάτων. Εάν θέστε 0, ο χρήστης θα είναι σε θέση ναδει τον κατάλογο τμημάτων, αλλά όχι την οθόνηλεπτομέρειας ή τροποποίησης ενός αρχείου σε εκείνο το τμήμα| +VICIDIAL AUTO ALT DIAL STATUSES|VICIDIAL ΑΥΤΟΜΑΤΕΣ ΘΈΣΕΙΣ ΠΙΝΑΚΩΝ ALT| +If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set|Εάν ο αυτόματος τομέας σχηματισμού ALT-ARJCMOY' τίθεται,κατόπιν οι μόλυβδοι που είναι κάτω από αυτές τις αυτόματεςθέσεις πινάκων ALT θα σχηματίσουν το alt_phone και-ή τουςτομείς address3 τους αφότου τίθενται οποιεσδήποτε από αυτέςτις θέσεις κανένας-απάντησης| +AUTO ALT NUMBER DIALING FOR THIS CAMPAIGN|ΑΥΤΟΜΑΤΟΣ ΣΧΗΜΑΤΙΣΜΌΣ ΑΡΙΘΜΟΎ ALT ΓΙΑ ΑΥΤΉΝ ΤΗΝ ΕΚΣΤΡΑΤΕΊΑ| +ADD NEW AUTO ALT NUMBER DIALING STATUS|ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΣΧΗΜΑΤΙΣΜΟΎ ΑΡΙΘΜΟΎ ALT| +AUTO ALT DIAL STATUS NOT ADDED|ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ| +there is already an entry for this campaign with this status|υπάρχει ήδη μια είσοδος για αυτήν την εκστρατεία με αυτήν τηνθέση| +AUTO ALT DIAL STATUS ADDED|ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΡΟΣΤΙΘΈΜΕΝΗ| +AUTO ALT DIAL STATUS NOT DELETED|ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ| +AUTO ALT DIAL STATUS DELETED|ΑΥΤΟΜΑΤΗ ΘΈΣΗ ΠΙΝΑΚΩΝ ALT ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ| +this auto alt dial status is not in this campaign|αυτή η αυτόματη θέση πινάκων ALT δεν είναι σε αυτήν τηνεκστρατεία| +New Auto Alt Dial Status|Νέα αυτόματη θέση πινάκων ALT| +Delete Auto Alt Dial Status|Διαγράψτε την αυτόματη θέση πινάκων ALT| + Users | Χρήστες | + Campaigns | Εκστρατείες | + Lists | Κατάλογοι | + Scripts | Χειρόγραφα | + Filters | Φίλτρα | + In-Groups | $$$-ΟΜΑΔΕΣ | + User Groups | Ομάδες χρηστών | + Remote Agents | Μακρινοί πράκτορες | + Admin | Admin | + Reports | Εκθέσεις | + Show Users | Παρουσιάστε χρήστες | + Add A New User | Προσθέστε έναν νέο χρήστη | + Search For A User | Αναζήτηση ενός χρήστη | + Show Campaigns | Παρουσιάστε εκστρατείες | + Add A New Campaign | Προσθέστε μια νέα εκστρατεία | + Real-Time Campaigns Summary | Σε πραγματικό χρόνο περίληψη εκστρατειών | + Show Lists | Παρουσιάστε καταλόγους | + Add A New List | Προσθέστε έναν νέο κατάλογο | + Search For A Lead | Αναζήτηση ενός μολύβδου | + Add Number To DNC | Προσθέστε τον αριθμό σε DNC | + Load New Leads | Νέοι μόλυβδοι φορτίων | + Show Scripts | Παρουσιάστε χειρόγραφα | + Add A New Script | Προσθέστε ένα νέο χειρόγραφο | + Show Filters | Παρουσιάστε φίλτρα | + Add A New Filter | Προσθέστε ένα νέο φίλτρο | + Show In-Groups | Παρουσιάστε-ΟΜΑΔΕΣ | + Add A New In-Group | Προσθέστε μια νέα-ΟΜΑΔΑ | + Show User Groups | Παρουσιάστε ομάδες χρηστών | + Add A New User Group | Προσθέστε μια νέα ομάδα χρηστών | + Group Hourly Report | Ωριαία έκθεση ομάδας | + Show Remote Agents | Παρουσιάστε μακρινούς πράκτορες | + Add New Remote Agents | Προσθέστε τους νέους μακρινούς πράκτορες | + Call Times | Χρόνοι κλήσης | + Phones | Τηλέφωνα | + Conferences | Διασκέψεις | + Servers | Κεντρικοί υπολογιστές | + Show Call Times | Παρουσιάστε χρόνους κλήσης | + Add A New Call Time | Προσθέστε έναν νέο χρόνο κλήσης | + Show State Call Times | Παρουσιάστε χρόνους κρατικής κλήσης | + Add A New State Call Time | Προσθέστε έναν νέο χρόνο κρατικής κλήσης | + Show Phones | Παρουσιάστε τηλέφωνα | + Add A New Phone | Προσθέστε ένα νέο τηλέφωνο | + Show Conferences | Παρουσιάστε διασκέψεις | + Add A New Conference | Προσθέστε μια νέα διάσκεψη | + Show VICIDIAL Conferences | Παρουσιάστε διασκέψεις VICIDIAL | + Add A New VICIDIAL Conference | Προσθέστε μια νέα διάσκεψη VICIDIAL | + Show Servers | Παρουσιάστε κεντρικούς υπολογιστές | + Add A New Server | Προσθέστε έναν νέο κεντρικό υπολογιστή | +CallBacks Within User Group|CallBacks μέσα στην ομάδα χρηστών | +USERS WITHIN THIS USER GROUP|ΧΡΗΣΤΕΣ ΜΕΣΑ ΣΕ ΑΥΤΗΝ ΤΗΝ ΟΜΑΔΑ ΧΡΗΣΤΩΝ | +Modify Users: |Τροποποιήστε τους χρήστες: | +Modify Campaigns: |Τροποποιήστε τις εκστρατείες: | +Modify Lists: |Τροποποιήστε τους καταλόγους: | +Modify Scripts: |Τροποποιήστε τα χειρόγραφα: | +Modify Filters: |Τροποποιήστε τα φίλτρα: | +Modify In-Groups: |Τροποποιήστε τις-ΟΜΑΔΕΣ: | +Modify User Groups: |Τροποποιήστε τις ομάδες χρηστών: | +Modify Remote Agents: |Τροποποιήστε τους μακρινούς πράκτορες: | +Modify Servers: |Τροποποιήστε τους κεντρικούς υπολογιστές: | +View Reports: |Εκθέσεις άποψης: | +You do not have permission to view this page|Δεν έχετε την άδεια να δείτε αυτήν την σελίδα| +Lead Time Zone Lookup: |Συμβούλευση ζώνης χρονικής ανοχής: | +Lead Duplicate Check: |Διπλός έλεγχος μολύβδου: | +Agent Pause Codes Active -<\/B> Allows agents to select a pause code when they click on the PAUSE button in vicidial.php. Pause codes are definable per campaign at the bottom of the campaign view detail screen and they are stored in the vicidial_agent_log table. Default is N|Η μικρή διακοπή πρακτόρων κωδικοποιεί ενεργό - επιτρέπει στουςπράκτορες για να επιλέξει έναν κώδικα μικρής διακοπής ότανχτυπούν στο κουμπί ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ στους κώδικες μικρής διακοπήςvicidial.php. είναι ευπροσδιόριστοι ανά εκστρατεία στοκατώτατο σημείο της οθόνης λεπτομέρειας άποψης εκστρατείας καιαποθηκεύονται στον πίνακα vicidial_agent_log. Η προεπιλογήείναι ν| +AGENT PAUSE CODES|ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ| +If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the vicidial agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters.|_ εάν ο πράκτορας διακοπή κωδικοποιώ ενεργός τομέας είμαι θέτωνα ενεργός έπειτα ο πράκτορας θα είμαι σε θέση να επι:λέγω απόαυτός διακοπή κώδικας όταν αυτός χτυπώ ο ΔΙΑΚΟΠΉ κουμπί τουςοθόνη. Αυτό το στοιχείο αποθηκεύεται έπειτα στο vicidialκούτσουρο πρακτόρων. Ο κώδικας μικρής διακοπής πρέπει ναπεριέχει μόνο τα γράμματα και τους αριθμούς και να είναιλιγότερο από 7 χαρακτήρες μακροχρόνιοι. Το όνομα κώδικα μικρήςδιακοπής δεν μπορεί να είναι πλέον από 30 χαρακτήρες.| +AGENT PAUSE CODES FOR THIS CAMPAIGN|ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΓΙΑ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ| +PAUSE CODES|ΚΩΔΙΚΕΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ| +BILLABLE|ΧΡΕΩΤΕΟΣ| +ADD NEW AGENT PAUSE CODE|ΠΡΟΣΘΕΣΤΕ ΤΟ ΝΕΟ ΚΩΔΙΚΑ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ| +Pause Code: |Κώδικας μικρής διακοπής: | +Pause Code Name: |Όνομα κώδικα μικρής διακοπής: | +Billable: |Χρεωτέος: | +New Agent Pause Code|Νέος κώδικας μικρής διακοπής πρακτόρων| +Modify Agent Pause Code|Τροποποιήστε τον κώδικα μικρής διακοπής πρακτόρων| +Delete Agent Pause Code|Διαγράψτε τον κώδικα μικρής διακοπής πρακτόρων| +AGENT PAUSE CODE NOT ADDED|ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ| +there is already an entry for this campaign with this pause code|υπάρχει ήδη μια είσοδος για αυτήν την εκστρατεία με αυτόν τονκώδικα μικρής διακοπής| +AGENT PAUSE CODE ADDED|ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟΣ| +AGENT PAUSE CODE NOT MODIFIED|ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟΣ| +CAMPAIGN PAUSE CODE NOT DELETED|ΚΩΔΙΚΑΣ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΕΚΣΤΡΑΤΕΙΑΣ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ| +Campaign Description -<\/B> This is a memo field for the campaign, it is optional and can be a maximum of 255 characters in length|Περιγραφή εκστρατείας - αυτό είναι ένας τομέας υπομνημάτων γιατην εκστρατεία, είναι προαιρετικό και μπορεί να είναι έναμέγιστο 255 χαρακτήρων στο μήκος| +Campaign Change Date -<\/B> This is the last time that the settings for this campaign were modified in any way|Ημερομηνία αλλαγής εκστρατείας - αυτό είναι η τελευταία φοράότι οι τοποθετήσεις για αυτήν την εκστρατεία τροποποιήθηκαν απόκαμιά άποψη| +Campaign Stats Refresh -<\/B> This checkbox will allow you to force a vicidial stats refresh, even if the campaign is not active|Η εκστρατεία Stats αναζωογονεί - αυτό το τετραγωνίδιο θαεπιτρέψει ότι για να αναγκάσετε τα vicidial statsαναζωογονείτε, ακόμα κι αν η εκστρατεία δεν είναι ενεργός| +Last Campaign Login Date -<\/B> This is the last time that an agent was logged into this campaign|Τελευταία ημερομηνία σύνδεσης εκστρατείας - αυτό είναι ητελευταία φορά ότι ένας πράκτορας καταγράφηκε σε αυτήν τηνεκστρατεία| +List Description -<\/B> This is the memo field for the list, it is optional|Περιγραφή καταλόγων - αυτό είναι ο τομέας υπομνημάτων για τονκατάλογο, είναι προαιρετικό| +List Change Date -<\/B> This is the last time that the settings for this list were modified in any way|Ημερομηνία αλλαγής καταλόγων - αυτό είναι η τελευταία φορά ότιοι τοποθετήσεις για αυτόν τον κατάλογο τροποποιήθηκαν από καμιάάποψη| +List Last Call Date -<\/B> This is the last time that lead was dialed from this list|Τελευταία ημερομηνία κλήσης καταλόγων - αυτό είναι η τελευταίαφορά ότι ο μόλυβδος σχηματίστηκε από αυτόν τον κατάλογο| +List Description: |Περιγραφή καταλόγων: | +List Change Date: |Ημερομηνία αλλαγής καταλόγων: | +Campaign Description: |Περιγραφή εκστρατείας: | +VICIDIAL Recording Override -<\/B> This option will override whatever the option is in the campaign for recording. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|VICIDIAL συμπληρωματική προμήθεια καταγραφής - αυτή η επιλογήθα αγνοήσει οποιο δήποτε η επιλογή είναι στην εκστρατεία για τηνκαταγραφή. Τα ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΈΣ ΑΝΑΓΚΕΣ δεν θα αγνοήσουν τηρύθμιση καταγραφής εκστρατείας. Δεν θα θέσει εκτός λειτουργίαςΠΟΤΕ την καταγραφή στον πελάτη. ONDEMAND είναι η προεπιλογήκαι επιτρέπει στον πράκτορα για να αρχίσει και να σταματήσει όπωςαπαιτείται. ALLCALLS θα αρχίσει την καταγραφή στον πελάτηόποτε μια κλήση στέλνεται σε έναν πράκτορα. ALLFORCE θααρχίσει την καταγραφή στον πελάτη όποτε μια κλήση στέλνεται σεέναν πράκτορα που δεν δίνει στον πράκτορα καμία επιλογή νασταματήσει. Για ALLCALLS και ALLFORCE υπάρχει μια επιλογή ναχρησιμοποιηθεί η καθυστέρηση καταγραφής για να περικόψει στιςπολύ σύντομα καταγραφές και recude το φορτίο συστημάτων| +VICIDIAL Recording Override: |VICIDIAL συμπληρωματική προμήθεια καταγραφής: | +MODIFY VICIDIAL SYSTEM SETTINGS|ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΤΟΠΟΘΕΤΉΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL| + System Settings | Τοποθετήσεις συστημάτων | +VICIDIAL SYSTEM SETTINGS MODIFIED|VICIDIAL ΤΟΠΟΘΕΤΗΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΕΣ| +Version: |Έκδοση: | +Use Non-Latin: |Μη-λατινικά χρήσης: | +Webroot Writable: |Webroot writable: | +Enable QueueMetrics Logging: |Επιτρέψτε την αναγραφή QueueMetrics: | +QueueMetrics Server IP: |QueueMetrics κεντρικός υπολογιστής IP: | +QueueMetrics DB Name: |QueueMetrics όνομα DB: | +QueueMetrics DB Login: |QueueMetrics σύνδεση DB: | +QueueMetrics DB Password: |QueueMetrics κωδικός πρόσβασης DB: | +Use Non-Latin -<\/B> This option allows you to default the web display script to use UTF8 characters and not do any latin-character-family regular expression filtering or display formatting. Default is 0|Μη-λατινικά χρήσης - αυτή η επιλογή επιτρέπει σε σας για ναπροκαθορίσει το χειρόγραφο επίδειξης Ιστού για να χρησιμοποιήσειUTF8 τους χαρακτήρες και να μην κάνει οποιαδήποτε φιλτράρισμαλατινικός-χαρακτήρας-οικογενειακής κανονική έκφρασης ήμορφοποίηση επίδειξης. Η προεπιλογή είναι 0| +Webroot Writable -<\/B> This setting allows you to define whether temp files and authentication files should be placed in the webroot on your web server. Default is 1|Webroot writable - αυτή η ρύθμιση επιτρέπει σε σας για νακαθορίσει εάν temp τα αρχεία και τα αρχεία επικύρωσης πρέπεινα τοποθετηθούν στο webroot στον κεντρικό υπολογιστή δικτύουσας. Η προεπιλογή είναι 1| +Enable QueueMetrics Logging -<\/B> This setting allows you to define whether VICIDIAL will insert log entries into the queue_log database table as Asterisk Queues activity does. QueueMetrics is a standalone, closed-source statistical analysis program. You must have QueueMetrics already installed and configured before enabling this feature. Default is 0|Επιτρέψτε την αναγραφή QueueMetrics - αυτή η ρύθμιση επιτρέπεισε σας για να καθορίσει εάν VICIDIAL θα παρεμβάλει τιςκαταχωρήσεις κούτσουρων στον πίνακα βάσεων δεδομένων queue_logόπως η δραστηριότητα σειρών αναμονής αστερίσκων. ΤοQueueMetrics είναι ένα πρόγραμμα αυτόνομης, ανάλυσηςκλείνω-πηγής στατιστικό. Πρέπει που εγκαταστάθηκε ήδη ναδιαμορφώσετε QueueMetrics και πρίν επιτρέπετε αυτό τοχαρακτηριστικό γνώρισμα. Η προεπιλογή είναι 0| +QueueMetrics Server IP -<\/B> This is the IP address of the database for your QueueMetrics installation|QueueMetrics κεντρικός υπολογιστής IP - αυτό είναι ηδιεύθυνση IP της βάσης δεδομένων για την εγκατάστασηQueueMetrics σας| +QueueMetrics Database Name -<\/B> This is the database name for your QueueMetrics database|QueueMetrics όνομα βάσεων δεδομένων - αυτό είναι το όνομαβάσεων δεδομένων για τη βάση δεδομένων QueueMetrics σας| +QueueMetrics Database Login -<\/B> This is the user name used to log in to your QueueMetrics database|QueueMetrics σύνδεση βάσεων δεδομένων - αυτό είναι το όνομαχρηστών που χρησιμοποιείται για να συνδεθεί στη βάση δεδομένωνQueueMetrics σας| +QueueMetrics Database Password -<\/B> This is the password used to log in to your QueueMetrics database|QueueMetrics κωδικός πρόσβασης βάσεων δεδομένων - αυτό είναιο κωδικός πρόσβασης που χρησιμοποιείται για να συνδεθεί στη βάσηδεδομένων QueueMetrics σας| +QueueMetrics URL -<\/B> This is the URL or web site address used to get to your QueueMetrics installation|QueueMetrics URL - αυτό είναι η διεύθυνση URL ήιστοχώρων που χρησιμοποιείται για να φτάσει στην εγκατάστασηQueueMetrics σας| +QueueMetrics Log ID -<\/B> This is the server ID that all VICIDIAL logs going into the QueueMetrics database will use as an identifier for each record|QueueMetrics ταυτότητα κούτσουρων - αυτό είναι η ταυτότητακεντρικών υπολογιστών που όλα τα κούτσουρα VICIDIAL πουπηγαίνουν στη βάση δεδομένων QueueMetrics θα χρησιμοποιήσουν ωςπροσδιοριστικό για κάθε αρχείο| +QueueMetrics Log ID: |QueueMetrics καταγράψτε την ταυτότητα: | +Campaign Dial Status Added|Θέση πινάκων εκστρατείας προστιθέμενη| +Campaign Dial Status Removed|Θέση πινάκων εκστρατείας αφαιρούμενη| +To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove|Να προσθέσει μια άλλη θέση στον πίνακα, να το επιλέξει από τονεξελισσόμενους κατάλογο και τον κρότο ΠΡΟΣΘΕΤΕΙ. Για να αφαιρέσετεμια από τις θέσεις πινάκων, χτυπήστε στη REMOVE σύνδεση δίπλαστη θέση που θέλετε να αφαιρέσετε| +CAMPAIGN DIAL STATUS NOT ADDED|ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ| +CAMPAIGN DIAL STATUS ADDED|ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΠΡΟΣΤΙΘΕΜΕΝΗ| +this dial status is not selected for this campaign|αυτή η θέση πινάκων δεν επιλέγεται για αυτήν την εκστρατεία| +CAMPAIGN DIAL STATUS NOT REMOVED|ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΑΦΑΙΡΟΥΜΕΝΗ| +CAMPAIGN DIAL STATUS REMOVED|ΘΕΣΗ ΠΙΝΑΚΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΑΦΑΙΡΟΥΜΕΝΗ| +>REMOVE<|>ΑΦΑΙΡΕΣΤΕ<| +Dial Status |Θέση πινάκων| +no dial statuses selected for this campaign|καμία θέση πινάκων που επιλέγεται για αυτήν την εκστρατεία| +QueueMetrics EnterQueue Prepend -<\/B> This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything|QueueMetrics EnterQueue Prepend - αυτός ο τομέαςχρησιμοποιείται για να επιτρέψει ένας από τους τομείς στοιχείωνvicidial_list μπροστά από τον τηλεφωνικό αριθμό του πελάτη γιατις προσαρμοσμένες εκθέσεις QueueMetrics. Η προεπιλογή δενείναι ΚΑΜΙΑ για να μην εποικήσει τίποτα| +QueueMetrics EnterQueue Prepend: |QueueMetrics EnterQueue Prepend:| +VICIDIAL Agent Disable Display -<\/B> This field is used to select when to show an agent when their session has been disabled by the system, a manager action or by an external measure. The NOT_ACTIVE setting will disable the message on the agents screen. The LIVE_AGENT setting will only display the disabled message when the agents vicidial_auto_calls record has been removed, such as during a force logout or emergency logout|VICIDIAL ο πράκτορας θέτει εκτός λειτουργίας την επίδειξη - αυτός ο τομέας χρησιμοποιείται για να επιλέξει πότε για ναπαρουσιάσει σε έναν πράκτορα πότε η σύνοδός τους έχει τεθείεκτός λειτουργίας από το σύστημα, μια δράση διευθυντών ή απόένα εξωτερικό μέτρο. Η ρύθμιση NOT_ACTIVE θα θέσει εκτόςλειτουργίας το μήνυμα στην οθόνη πρακτόρων. Η ρύθμισηLIVE_AGENT θα επιδείξει μόνο το εκτός λειτουργίας μήνυμα όταναφαιρεθεί το αρχείο πρακτόρων vicidial_auto_calls, όπως κατάτη διάρκεια μιας αποσύνδεσης δύναμης ή της αποσύνδεσης έκτακτηςανάγκης| +VICIDIAL Agent Disable Display: |VICIDIAL ο πράκτορας θέτει εκτός λειτουργίας την επίδειξη: | +Disable Alter Customer Data -<\/B> If set to Y, does not change any of the customer data record when an agent dispositions the call. Default is N|Θέστε εκτός λειτουργίας αλλάζει τα στοιχεία πελατών - εάνθέστε το Υ, δεν αλλάζει οποιων δήποτε από το αρχείο στοιχείωνπελατών όταν διαθέσεις πρακτόρων η κλήση. Η προεπιλογή είναι ν| +Disable Alter Customer Data: |Θέστε εκτός λειτουργίας αλλάζει τα στοιχεία πελατών: | +Agent Alter Customer Data Override -<\/B> This option will override whatever the option is in the campaign for altering of customer data. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer data, no matter what the campaign setting is. Default is NOT_ACTIVE|Ο πράκτορας αλλάζει τη συμπληρωματική προμήθεια στοιχείωνπελατών - αυτή η επιλογή θα αγνοήσει οποιος δήποτε η επιλογήείναι στην εκστρατεία για την αλλαγή των στοιχείων πελατών.NOT_ACTIVE θα χρησιμοποιήσει οποιου δήποτε που θέτει είναιπαρών για την εκστρατεία. ALLOW_ALTER θα επιτρέψει πάντα τονπράκτορα να αλλάξει τα στοιχεία πελατών, η των οποίων ρύθμισηεκστρατείας είναι. Η προεπιλογή είναι NOT_ACTIVE| +Agent Alter Customer Data Override: |Ο πράκτορας αλλάζει τη συμπληρωματική προμήθεια στοιχείωνπελατών: | +Allow No-Hopper-Leads Logins -<\/B> If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N|Επιτρέψτε τους κανένας-χοάνη-μολύβδους Logins - εάν θέστε τοΥ, επιτρέπει στους πράκτορες στη σύνδεση στην εκστρατεία ακόμα κιαν δεν υπάρχει κανένας μόλυβδος που φορτώνεται στη χοάνη γιαεκείνη την εκστρατεία. Αυτή η λειτουργία δεν απαιτείται στιςεκστρατείες στενός-τύπων. Η προεπιλογή είναι ν| +Allow No-Hopper-Leads Logins: |Επιτρέψτε τους κανένας-χοάνη-μολύβδους Logins: | +Enable SIPSAK Messages -<\/B> If enabled the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. Feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Επιτρέψτε τα μηνύματα SIPSAK - εάν επιτρέπεται ο κεντρικόςυπολογιστής θα στείλει τα μηνύματα στο τηλέφωνο ΓΟΥΛΙΏΝ στηνεπίδειξη στην τηλεφωνική LCD επίδειξη όταν συνδέεται μεVICIDIAL. Το χαρακτηριστικό γνώρισμα λειτουργεί μόνο με τατηλέφωνα ΓΟΥΛΙΩΝ και απαιτεί sipsak την εφαρμογή για ναεγκατασταθεί στον κεντρικό υπολογιστή δικτύου. Η προεπιλογήείναι 0| +Enable SIPSAK Messages: |Επιτρέψτε τα μηνύματα SIPSAK: | +Allow SIPSAK Messages -<\/B> If set to 1, this will allow the phones table setting to work properly, the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. This feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Επιτρέψτε τα μηνύματα SIPSAK - εάν θέστε 1, αυτό θα επιτρέψειτον τηλεφωνικό πίνακα θέτοντας για να εργαστεί κατάλληλα, οκεντρικός υπολογιστής θα στείλει τα μηνύματα στο τηλέφωνοΓΟΥΛΙΏΝ στην επίδειξη στην τηλεφωνική LCD επίδειξη ότανσυνδέεται με VICIDIAL. Αυτό το χαρακτηριστικό γνώρισμαλειτουργεί μόνο με τα τηλέφωνα ΓΟΥΛΙΩΝ και απαιτεί sipsak τηνεφαρμογή για να εγκατασταθεί στον κεντρικό υπολογιστή δικτύου. Ηπροεπιλογή είναι 0| +Allow SIPSAK Messages: |Επιτρέψτε τα μηνύματα SIPSAK: | +Admin Home URL -<\/B> This is the URL or web site address that you will go to if you click on the HOME link at the top of the admin.php page|Σπίτι URL Admin - αυτό είναι η διεύθυνση URL ήιστοχώρων ότι θα πάτε εάν χτυπήσετε στην ΕΓΧΏΡΙΑ σύνδεση στηνκορυφή της σελίδας admin.php| +Admin Home URL: |Σπίτι URL Admin:| +>HOME<|>ΣΠΙΤΙ<| + Welcome | Υποδοχή | +### START translations for 2.0.4 release ### +CHECK FOR DUPLICATES BY PHONE IN ALL CAMPAIGN LISTS|ΕΛΕΓΧΟΣ ΓΙΑ ΤΑ ΑΝΤΙΓΡΑΦΑ ΤΗΛΕΦΩΝΙΚΩΣ ΣΕ ΟΛΟΥΣ ΤΟΥΣ ΚΑΤΑΛΟΓΟΥΣΕΚΣΤΡΑΤΕΙΑΣ| +CHECK FOR DUPLICATES BY PHONE IN ENTIRE SYSTEM|ΕΛΕΓΧΟΣ ΓΙΑ ΤΑ ΑΝΤΙΓΡΑΦΑ ΤΗΛΕΦΩΝΙΚΩΣ ΤΟ ΣΕ ΟΛΟΚΛΗΡΟ ΣΥΣΤΗΜΑ| +PHONE CODE OVERRIDE FOR THIS FILE|ΣΥΜΠΛΗΡΩΜΑΤΙΚΗ ΠΡΟΜΉΘΕΙΑ ΤΗΛΕΦΩΝΙΚΟΥ ΚΩΔΙΚΑ ΓΙΑ ΑΥΤΟ ΤΟ ΑΡΧΕΙΟ| +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. The lead loader 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, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files:|Ο βασικός βασισμένος στο WEB φορτωτής μολύβδου VICIDIALσχεδιάζεται απλά για να πάρει ένα αρχείο μολύβδου - μέχρι8MB στο μέγεθος - που είναι είτε ετικέττα είτε σωλήνας πουοριοθετείται και τον φορτώνει στον πίνακα vicidial_list. Οφορτωτής μολύβδου επιτρέπει τον τομέα επιλέγοντας και TXT -σαφές κείμενο, CSV - κόμμα χώρισε τις τιμές και XLS -σχήματα αρχείων Excel. Ο φορτωτής μολύβδου δεν κάνει τηνεπικύρωση στοιχείων, αλλά επιτρέπει σε σας για να ελέγξει για τααντίγραφα σε το, μέσα στην εκστρατεία ή μέσα το σε ολόκληροσύστημα. Επίσης, σιγουρευτείτε ότι έχετε δημιουργήσει τονκατάλογο ότι αυτοί οι μόλυβδοι πρόκειται να κάτω έτσι ώστεμπορείτε να τους χρησιμοποιήσετε. Εδώ είναι ένας κατάλογος τωντομέων στην κατάλληλη διαταγή τους για τα αρχεία μολύβδου:| +NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf 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. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads.|ΣΗΜΕΙΩΣΕΙΣ: Η λειτουργία φορτωτών μολύβδου Excel επιτρέπεταιαπό μια σειρά χειρογράφων perl και πρέπει να έχει κατάλληλαδιαμορφωμένη/ένα αρχείο κ.λπ.../astguiclient.conf σε ισχύ στονκεντρικό υπολογιστή δικτύου. Επίσης, οι ενότητες ζευγών perlπρέπει να φορτωθούν για το για να εργαστούν επίσης - ολε-Storage_Lite και υπολογισμός με λογιστικό φύλλο(spreadsheet)- ParseExcel. Μπορείτε να ελέγξετε για τα λάθηχρόνου εκτέλεσης σε αυτοί με την εξέταση το αρχείο apache σαςerror_log. Επίσης, για τους ελέγχους διπλασιασμού ενάντια στουςκαταλόγους gampaign, ο κατάλογος που έχει τα νέα προβαδίσματαπου πηγαίνουν σε το πρέπει να δημιουργηθεί στο σύστημα προτού νααρχίσετε να φορτώνετε τους μολύβδους.| +Campaign List Mix Added|Μίγμα καταλόγων εκστρατείας προστιθέμενο| +Modify Campaign List Mix|Τροποποιήστε το μίγμα καταλόγων εκστρατείας| +Campaign List Mix Removed|Μίγμα καταλόγων εκστρατείας αφαιρούμενο| +Campaign Statuses|Θέσεις εκστρατείας| +Campaign HotKeys|Εκστρατεία HotKeys| +Campaign Lead Recycle Entries|Ανακύκλωσης καταχωρήσεις μολύβδου εκστρατείας| +Campaign Auto Alt Dial Statuses|Αυτόματες ALT θέσεις πινάκων εκστρατείας| +Campaign Agent Pause Codes|Κώδικες μικρής διακοπής πρακτόρων εκστρατείας| +Campaign Dial Statuses|Θέσεις πινάκων εκστρατείας| +Campaign List Mixes|Μίγματα καταλόγων εκστρατείας| + Lead Recycle |Μόλυβδος ανακύκλωσης| + Auto-Alt Dial |Αυτόματος-ALT πίνακας| + Pause Codes |Κώδικες μικρής διακοπής| + List Mix |Μίγμα καταλόγων| + Campaigns Main |Κεντρικός αγωγός εκστρατειών| +List Order Mix -<\/B> Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED|Μίγμα διαταγής καταλόγων - αγνοεί τους τομείς θέσης διαταγήςκαι πινάκων μολύβδου. Θα χρησιμοποιήσει τις παραμέτρους καταλόγωνκαι θέσης για την επιλεγμένη είσοδο μιγμάτων καταλόγων στο υπο-τμήμα μιγμάτων καταλόγων αντ' αυτού. Η προεπιλογή είναι ΕΚΤΟΣΛΕΙΤΟΥΡΓΊΑΣ| +List Mix ID -<\/B> ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation.|Ταυτότητα μιγμάτων καταλόγων - ταυτότητα του μίγματος καταλόγων.Πρέπει να είστε από 2-20 χαρακτήρες στο μήκος χωρίς ταδιαστήματα ή άλλη ειδική στίξη.| +List Mix Name -<\/B> Descriptive name of the list mix. Must be from 2-50 characters in length|Όνομα μιγμάτων καταλόγων - περιγραφικό όνομα του μίγματοςκαταλόγων. Πρέπει να είστε από 2-50 χαρακτήρες στο μήκος| +List Mix Detail -<\/B> The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated|Λεπτομέρεια μιγμάτων καταλόγων - η σύνθεση της εισόδου μιγμάτωνκαταλόγων. Περιέχει τον κατάλογο ταυτότητα, τη διαταγή μιγμάτων,τα ποσοστά και τις θέσεις που αποτελούν αυτό το μίγμα καταλόγων.Τα ποσοστά πρέπει πάντα να προσθέσουν μέχρι 100, και οικατάλογοι όλοι πρέπει να είναι ενεργοί και καθορισμένοι τηνεκστρατεία για την είσοδο μιγμάτων διαταγής που ενεργοποιείται| +List Mix Method -<\/B> The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER.|Μέθοδος μιγμάτων καταλόγων - η μέθοδος όλα τα μέρη τηςλεπτομέρειας μιγμάτων καταλόγων από κοινού. EVEN_MIX θααναμίξει τους μολύβδους από κάθε μέρος που παρεμβάλλεται λευκέςσελίδες με τα άλλα μέρη, όπως αυτό το 1,2,3,1,2,3,1,2,3.IN_ORDER θα βάλει τους μολύβδους στη διαταγή στην οποίαπαρατίθενται στην οθόνη λεπτομέρειας μιγμάτων καταλόγων1,1,1,2,2,2,3,3,3. ΤΥΧΑΊΑ θα τους βάλουν στην ΤΥΧΑΊΑ προεπιλογήδιαταγής 1,3,2,1,1,3,2,1,3. είναι IN_ORDER.| +LIST MIXES FOR THIS CAMPAIGN: |ΜΙΓΜΑΤΑ ΚΑΤΑΛΟΓΩΝ ΓΙΑ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:| +The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls.|Ο τομέας χρησιμοποιείται κατά τον υπολογισμό του ποσοστούπτώσης, ή εγκαταλείπει το ποσοστό. Η ρύθμιση την στο Υ θαχρησιμοποιήσει αυτήν την θέση κατά υπολογισμό τωνανθρώπινος-απαντημένων κλήσεων.| +HUMAN ANSWER|ΑΝΘΡΩΠΙΝΗ ΑΠΑΝΤΗΣΗ| +ADDING VICIDIAL SYSTEM STATUSES|ΠΡΟΣΘΗΚΗ ΤΩΝ ΘΈΣΕΩΝ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL| +MODIFY VICIDIAL SYSTEM STATUSES|ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΘΈΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL| +SYSTEM STATUS NOT ADDED|ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ| +SYSTEM STATUS ADDED|ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΣΤΙΘΕΜΕΝΗ| +SYSTEM STATUS NOT DELETED|ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ| +the system status cannot be a reserved status: |η θέση συστημάτων δεν μπορεί να είναι μια διατηρημένη θέση:| +the system status needs to be at least 1 characters in length|η θέση συστημάτων πρέπει να είναι χαρακτήρες τουλάχιστον 1 στομήκος| +VICIDIAL STATUSES WITHIN THIS SYSTEM: |VICIDIAL ΘΕΣΕΙΣ ΜΕΣΑ ΣΕ ΑΥΤΟ ΤΟ ΣΥΣΤΗΜΑ:| +ADD NEW SYSTEM STATUS|ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ| +CUSTOM CAMPAIGN STATUSES LISTINGS:|ΛΙΣΤΕΣ ΘΕΣΕΩΝ ΕΚΣΤΡΑΤΕΙΑΣ ΣΥΝΗΘΕΙΑΣ:| +CAMPAIGN HOTKEYS LISTINGS:|ΛΊΣΤΕΣ ΕΚΣΤΡΑΤΕΙΑΣ HOTKEYS:| +CAMPAIGN LEAD RECYCLE LISTINGS:|ΑΝΑΚΥΚΛΩΣΗΣ ΛΙΣΤΕΣ ΜΟΛΥΒΔΟΥ ΕΚΣΤΡΑΤΕΙΑΣ:| +LEAD RECYCLES|Ο ΜΟΛΥΒΔΟΣ ΑΝΑΚΥΚΛΩΝΕΙ| +CAMPAIGN LEAD AUTO-ALT DIAL LISTINGS:|ΛΊΣΤΕΣ ΠΙΝΑΚΩΝ ΜΟΛΥΒΔΟΥ ΑΥΤΌΜΑΤΟΣ-ALT ΕΚΣΤΡΑΤΕΙΑΣ:| +CAMPAIGN AGENT PAUSE CODE LISTINGS:|ΛΙΣΤΕΣ ΚΩΔΙΚΑ ΜΙΚΡΗΣ ΔΙΑΚΟΠΉΣ ΠΡΑΚΤΟΡΩΝ ΕΚΣΤΡΑΤΕΙΑΣ:| +CAMPAIGN LIST MIX LISTINGS:|ΛΙΣΤΕΣ ΜΙΓΜΑΤΩΝ ΚΑΤΑΛΟΓΩΝ ΕΚΣΤΡΑΤΕΙΑΣ:| +The Category option allows you to group several statuses into a catogy that can be used for statistical analysis.|Η επιλογή κατηγορίας επιτρέπει σε σας για να ομαδοποιήσειδιάφορες θέσεις σε ένα catogy που μπορεί να χρησιμοποιηθεί γιατη στατιστική ανάλυση.| +MODIFY VICIDIAL STATUS CATEGORIES|ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΚΑΤΗΓΟΡΊΕΣ ΘΈΣΗΣ VICIDIAL| +ADDING VICIDIAL STATUS CATEGORY|ΠΡΟΣΘΗΚΗ ΤΗΣ ΚΑΤΗΓΟΡΊΑΣ ΘΈΣΗΣ VICIDIAL| + Status Categories |Κατηγορίες θέσης| + System Statuses |Θέσεις συστημάτων| +MODIFY VICIDIAL SYSTEM STATUSES|ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΙΣ ΘΈΣΕΙΣ ΣΥΣΤΗΜΑΤΩΝ VICIDIAL| +MODIFY VICIDIAL STATUS CATEGORY|ΤΡΟΠΟΠΟΙΗΣΤΕ ΤΗΝ ΚΑΤΗΓΟΡΊΑ ΘΈΣΗΣ VICIDIAL| +Through the use of system statuses, you can have statuses that exist for campaign and in-group. The Status must be 1-6 characters in length, the description must be 2-30 characters in length and Selectable defines whether it shows up in VICIDIAL as an agent disposition. The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls. The Category option allows you to group several statuses into a catogy that can be used for statistical analysis|Μέσω της χρήσης των θέσεων συστημάτων, μπορείτε να έχετε τιςθέσεις που υπάρχουν για την εκστρατεία και την-ΟΜΑΔΑ. Η θέσηπρέπει να είναι 1-6 χαρακτήρες στο μήκος, η περιγραφή πρέπεινα είναι 2-30 χαρακτήρες στο μήκος και επιλέξιμος καθορίζειεάν παρουσιάζει σε VICIDIAL ως διάθεση πρακτόρων. Ο τομέαςχρησιμοποιείται κατά τον υπολογισμό του ποσοστού πτώσης, ήεγκαταλείπει το ποσοστό. Η ρύθμιση την στο Υ θα χρησιμοποιήσειαυτήν την θέση κατά υπολογισμό των ανθρώπινος-απαντημένωνκλήσεων. Η επιλογή κατηγορίας επιτρέπει σε σας για ναομαδοποιήσει διάφορες θέσεις σε ένα catogy που μπορεί ναχρησιμοποιηθεί για τη στατιστική ανάλυση| +Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report|Μέσω της χρήσης των κατηγοριών θέσης συστημάτων, μπορείτε νασυγκεντρώσετε τις θέσεις για να επιτρέψετε τη στατιστική ανάλυσησε μια ομάδα θέσεων. Η ταυτότητα κατηγορίας πρέπει να είναι2-20 χαρακτήρες στο μήκος χωρίς τα διαστήματα, το όνομαπρέπει να είναι 2-50 χαρακτήρες στο μήκος, η περιγραφή είναιπροαιρετική και η επίδειξη TimeonVDAD καθορίζει εάν εκείνη ηθέση θα είναι ενός θέσης από μέχρι 4 θέσεις που μπορούν ναυπολογιστούν και να επιδειχθούν στο χρόνο στη σε πραγματικό χρόνοέκθεση VDAD| +ADD NEW STATUS CATEGORY|ΠΡΟΣΘΕΣΤΕ ΤΗ ΝΕΑ ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ| +STATUS CATEGORY NOT ADDED|ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΠΡΟΣΤΙΘΕΜΕΝΗ| +there is already a status category in the system with this ID|υπάρχει ήδη μια κατηγορία θέσης στο σύστημα με αυτήν τηνταυτότητα| +ID must be between 2 and 20 characters in length|Η ταυτότητα πρέπει να είναι μεταξύ 2 και 20 χαρακτήρων στο μήκος| +name name must be between 2 and 50 characters in length|το όνομα ονόματος πρέπει να είναι μεταξύ 2 και 50 χαρακτήρων στομήκος| +STATUS CATEGORY NOT MODIFIED|ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ| +the status category cannot be a reserved category: |η κατηγορία θέσης δεν μπορεί να είναι μια διατηρημένη κατηγορία:| +the status category needs to be at least 2 characters in length|η κατηγορία θέσης πρέπει να είναι τουλάχιστον 2 χαρακτήρες στομήκος| +STATUS CATEGORY DELETED|ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ| +STATUS CATEGORY MODIFIED|ΚΑΤΗΓΟΡΙΑ ΘΕΣΗΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ| +Category: |Κατηγορία:| +the system status name needs to be at least 1 characters in length|το όνομα θέσης συστημάτων πρέπει να είναι χαρακτήρεςτουλάχιστον 1 στο μήκος| +SYSTEM STATUS NOT MODIFIED|ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΗ| +SYSTEM STATUS MODIFIED|ΘΕΣΗ ΣΥΣΤΗΜΑΤΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΗ| +ERROR: There are already 4 Status Categories set to TimeOnVDAD Display|ΛΑΘΟΣ: Υπάρχουν ήδη 4 κατηγορίες θέσης καθορισμένες την επίδειξηTimeOnVDAD| +CUSTOM CAMPAIGN STATUS MODIFIED|ΘΕΣΗ ΕΚΣΤΡΑΤΕΙΑΣ ΣΥΝΗΘΕΙΑΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ| +LIST MIX NOT MODIFIED|ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ| +LIST MIX MODIFIED|ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΤΡΟΠΟΠΟΙΗΜΕΝΟ| +You cannot delete the last list_id entry from a list mix|Δεν μπορείτε να διαγράψετε το τελευταίο λήμμα list_id από έναμίγμα καταλόγων| +LIST MIX ADDED: |ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ:| +LIST MIX NOT ADDED |ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΡΟΣΤΙΘΕΜΕΝΟ| +There is already a list mix with this ID in the system|Υπάρχει ήδη ένα μίγμα καταλόγων με αυτήν την ταυτότητα στοσύστημα| +LIST MIX NOT DELETED|ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΕΝ ΔΙΑΓΡΑΦΕΤΑΙ| +LIST MIX DELETED: |ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΙΑΓΡΑΦΕΤΑΙ:| +SET TO ACTIVE|ΘΕΣΤΕ ΕΝΕΡΓΟΣ| +LIST MIX NOT ACTIVATED|ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΔΕΝ ΕΝΕΡΓΟΠΟΙΕΙΤΑΙ| +LIST MIX ACTIVATED|ΜΙΓΜΑ ΚΑΤΑΛΟΓΩΝ ΠΟΥ ΕΝΕΡΓΟΠΟΙΕΙΤΑΙ| +Enable Agent Transfer Logfile -<\/B> This option will log to a text logfile on the webserver every time a call is transferred to an agent. Default is 0, disabled|Επιτρέψτε το αρχείο ημερολογίου μεταφοράς πρακτόρων - αυτή ηεπιλογή θα καταγράψει σε ένα αρχείο ημερολογίου κειμένων στοwebserver κάθε φορά που μεταφέρεται μια κλήση σε ένανπράκτορα. Η προεπιλογή είναι 0, άτομα με ειδικές ανάγκες| +Enable Agent Transfer Logfile|Επιτρέψτε το αρχείο ημερολογίου μεταφοράς πρακτόρων| +Call Time -<\/B> This is the call time scheme to use for this inbound group. Keep in mind that the time is based on the server time. Default is 24hours|Χρόνος κλήσης - αυτό είναι το χρονικό σχέδιο κλήσης ναχρησιμοποιήσει για αυτήν την εισερχόμενη ομάδα. Λάβετε υπόψηότι ο χρόνος είναι βασισμένος στο χρόνο κεντρικών υπολογιστών.Η προεπιλογή είναι 24hours| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field. Default is MESSAGE|Μετά από τη δράση ωρών - η δράση για να εκτελέσει εάν είναιμετά από τις ώρες όπως καθορίζεται στο χρόνο πρόσκλησης γιααυτήν την εισερχόμενη ομάδα. HANGUP hangup αμέσως η κλήση,MESSASGE θα παίξει το αρχείο στο μετέπειτα τομέα Filenamμηνυμάτων ωρών, η ΕΠΈΚΤΑΣΗ θα στείλει την κλήση στη μετέπειταπαράταση ωρών στον dialplan και το ΦΩΝΗΤΙΚΌ ΤΑΧΥΔΡΟΜΕΊΟ θαστείλει την κλήση στο παράθυρο φωνητικού ταχυδρομείου πουαπαριθμείται στο μετέπειτα τομέα φωνητικού ταχυδρομείου ωρών. Ηπροεπιλογή είναι ΜΗΝΥΜΑ| +After Hours Message Filename -<\/B> The audio file located on the server to be played if the Action is set to MESSAGE. Default is vm-goodbye|Μετά από το όνομα αρχείου μηνυμάτων ωρών - το ακουστικό αρχείοπου βρίσκεται στον κεντρικό υπολογιστή που παίζεται εάν η δράσητίθεται το ΜΗΝΥΜΑ. Η προεπιλογή είναι VM-ANTJ'O| +After Hours Extension -<\/B> The dialplan extension to send the call to if the Action is set to EXTENSION. Default is 8300|Μετά από την παράταση ωρών - η dialplan επέκταση για ναστείλει την πρόσκληση εάν η δράση τίθεται την ΕΠΕΚΤΑΣΗ. Ηπροεπιλογή είναι 8300| +After Hours Voicemail -<\/B> The voicemail box to send the call to if the Action is set to VOICEMAIL|Μετά από το φωνητικό ταχυδρομείο ωρών - το κιβώτιο φωνητικούταχυδρομείου για να στείλει την πρόσκληση εάν η δράση τίθεται τοΦΩΝΗΤΙΚΟ ΤΑΧΥΔΡΟΜΕΊΟ| +Welcome Message Filename -<\/B> The audio file located on the server to be played when the call comes in. If set to ---NONE--- then no message will be played. Default is ---NONE---|Ευπρόσδεκτο όνομα αρχείου μηνυμάτων - το ακουστικό αρχείο πουβρίσκεται στον κεντρικό υπολογιστή που παίζεται όταν μπαίνει ηκλήση. Εάν θέστε ΚΑΝΕΝΑΣ --- έπειτα κανένα μήνυμα δεν θαπαιχτεί. Η προεπιλογή είναι ΚΑΜΙΑ ---| +Music On Hold Context -<\/B> The music on hold context to use when the customer is placed on hold. Default is default|Μουσική στο πλαίσιο λαβής - η μουσική στο πλαίσιο λαβής στηχρήση όταν τοποθετείται ο πελάτης στη λαβή. Η προεπιλογή είναιπροεπιλογή| +On Hold Prompt Filename -<\/B> The audio file located on the server to be played at a regular interval when the customer is on hold. Default is generic_hold. This audio file MUST be 9 seconds or less in length.|Στο γρήγορο όνομα αρχείου λαβής - το ακουστικό αρχείο πουβρίσκεται στον κεντρικό υπολογιστή που παίζεται σε ένα τακτόχρονικό διάστημα όταν είναι ο πελάτης στη λαβή. Η προεπιλογήείναι generic_hold. Αυτό το ακουστικό αρχείο ΠΡΕΠΕΙ να είναι 9δευτερόλεπτα ή λιγότεροι στο μήκος.| +On Hold Prompt Interval -<\/B> The length of time in seconds to wait before playing the on hold prompt. Default is 60|Στο γρήγορο διάστημα λαβής - το χρονικό διάστημα σταδευτερόλεπτα για να περιμένει πρίν παίζει επάνω κρατά γρήγορος.Η προεπιλογή είναι 60| +Agent Alert Extension -<\/B> The extension to send into the agent session to announce that a call is coming to the agent. This extension should have a Playback of an audio file. To not use this function set this to X. Default is X|Αγρυπνη επέκταση πρακτόρων - η επέκταση που στέλνει στη σύνοδοπρακτόρων για να αναγγείλει ότι μια κλήση έρχεται στον πράκτορα.Αυτή η επέκταση πρέπει να έχει μια αναπαραγωγή ήχου ενόςακουστικού αρχείου. Για να μην χρησιμοποιήσετε αυτήν τηνλειτουργία θέστε αυτό σε Χ. Default είναι Χ| +Agent Alert Delay -<\/B> The length of time in milliseconds to wait before sending the call to the agent after playing the on Agent Alert Extension. Default is 1000|Αγρυπνη καθυστέρηση πρακτόρων - το χρονικό διάστημα στα χιλιοστάτου δευτερολέπτου για να περιμένει πρίν στέλνει την κλήση στονπράκτορα μετά από να παίξει την επάνω άγρυπνη επέκτασηπρακτόρων. Η προεπιλογή είναι 1000| +Call Time: |Χρόνος κλήσης:| +After Hours Action: |Μετά από τη δράση ωρών:| +After Hours Message Filename: |Μετά από το όνομα αρχείου μηνυμάτων ωρών:| +After Hours Extension: |Μετά από την παράταση ωρών:| +After Hours Voicemail: |Μετά από το φωνητικό ταχυδρομείο ωρών:| +Welcome Message Filename: |Ευπρόσδεκτο όνομα αρχείου μηνυμάτων:| +Music On Hold Context: |Μουσική στο πλαίσιο λαβής:| +On Hold Prompt Filename: |Στο γρήγορο όνομα αρχείου λαβής:| +On Hold Prompt Interval: |Στο γρήγορο διάστημα λαβής:| +Agent Alert Extension: |Αγρυπνη επέκταση πρακτόρων:| +Agent Alert Delay: |Αγρυπνη καθυστέρηση πρακτόρων:| +You will also be able to set the rank, or skill level, in this section for each of the inbound groups as well as being able to see the number of calls received from each inbound group for this specific agent|Θα είστε σε θέση επίσης να θέσετε την τάξη, ή το επίπεδοικανότητας, σε αυτό το τμήμα κάθε μιας από τις εισερχόμενεςομάδες καθώς επίσης και όντας σε θέση να δείτε τοναριθμό κλήσεων που παραλαμβάνονται από κάθε εισερχόμενη ομάδαγια αυτόν τον συγκεκριμένο πράκτορα| +Allow Inbound and Blended -<\/B> This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N|Επιτρέψτε πλησίον και συνδύασε - αυτό είναι όπου μπορείτε ναθέσετε εάν οι χρήστες αυτής της εκστρατείας θα έχουν τηνεπιλογή να πάρουν τις εισερχόμενες κλήσεις με αυτήν τηνεκστρατεία. Εάν θέλετε να κάνετε συνδυασμένων εισερχόμενος καιεξερχόμενος έπειτα αυτό πρέπει να τεθεί το Υ. Εάν θέλετε μόνονα κάνετε τον εξερχόμενο σχηματισμό σε αυτήν την εκστρατείαθέστε αυτό σε Ν. Default είναι ν| +Allow Inbound and Blended: |Επιτρέψτε πλησίον και συνδύασε:| +Manual Dial List ID -<\/B> The default list_id to be used when an agent placces a manual call and a new lead record is created in vicidial_list. Default is 999. This field can contain digits only|Χειρωνακτικός κατάλογος ταυτότητα πινάκων - η προεπιλογήlist_id για να χρησιμοποιηθεί όταν δημιουργείται έναςπράκτορας placces μια χειρωνακτική κλήση και ένα νέο αρχείομολύβδου στο vicidial_list. Η προεπιλογή είναι 999. Αυτός οτομέας μπορεί να περιέχει τα ψηφία μόνο| +Manual Dial List ID: |Χειρωνακτικός κατάλογος ταυτότητα πινάκων:| +inbound_group_rank: orders by the rank given to the agent for the specific inbound group. Highest to Lowest|inbound_group_rank: διαταγές από την τάξη που δίνεται στονπράκτορα για τη συγκεκριμένη εισερχόμενη ομάδα. Ο υψηλότερος σεχαμηλότερο| +fewest_calls: orders by the number of calls received by an agent for that specific inbound group. Least calls first|fewest_calls: διαταγές από τον αριθμό κλήσεων πουπαραλαμβάνονται από έναν πράκτορα για εκείνη την συγκεκριμένηεισερχόμενη ομάδα. Λιγότερες κλήσεις πρώτα| +Campaign Ranks: |Τάξεις εκστρατείας:| +AGENT RANKS FOR THIS CAMPAIGN:|ΤΑΞΕΙΣ ΠΡΑΚΤΟΡΩΝ ΓΙΑ ΑΥΤΗΝ ΤΗΝ ΕΚΣΤΡΑΤΕΙΑ:| +Copy Campaign|Εκστρατεία αντιγράφων| +COPY A CAMPAIGN|ΑΝΤΙΓΡΑΨΤΕ μια ΕΚΣΤΡΑΤΕΙΑ| +Source Campaign: |Εκστρατεία πηγής:| +New Copied Campaign Addition|Νέα αντιγραμμένη προσθήκη εκστρατείας| +Copy In-Group|$$$-ΟΜΑΔΑ αντιγράφων| +New Copied In-Group Addition|Νέα αντιγραμμένη προσθήκη-ΟΜΑΔΑΣ| +Copy User|Χρήστης αντιγράφων| +New Copied User Addition|Νέα αντιγραμμένη προσθήκη χρηστών| +COPY USER|ΧΡΗΣΤΗΣ ΑΝΤΙΓΡΑΦΩΝ| +Copy In-Group|$$$-ΟΜΑΔΑ αντιγράφων| +COPY INBOUND GROUP|ΕΙΣΕΡΧΟΜΕΝΗ ΟΜΑΔΑ ΑΝΤΙΓΡΑΦΩΝ| +campaign_rank: orders by the rank given to the agent for the campaign. Highest to Lowest|campaign_rank: διαταγές από την τάξη που δίνεται στον πράκτοραγια την εκστρατεία. Ο υψηλότερος σε χαμηλότερο| +Default Transfer Group -<\/B> This field is the default In-Group that will be automatically selected when the agent goes to the transfer-conference frame in their agent interface|Ομάδα μεταφοράς προεπιλογής - αυτός ο τομέας είναι η-ΟΜΑΔΑπροεπιλογής που θα επιλεχτεί αυτόματα όταν πηγαίνει ο πράκτοραςστο πλαίσιο μεταφορά-διασκέψεων στη διεπαφή πρακτόρων τους| +Default Transfer Group: |Ομάδα μεταφοράς προεπιλογής:| +Allowed Transfer Groups: |Ομάδες μεταφοράς:| +Allowed Transfer Groups -<\/B> With these checkbox listings you can select the groups that agents in this campaign can transfer calls to. Allow Closers must be enabled for this option to show up|Ομάδες μεταφοράς - με αυτές τις λίστες τετραγωνιδίου μπορείτε ναεπιλέξετε τις ομάδες ότι οι πράκτορες σε αυτήν την εκστρατείαμπορούν να μεταφέρουν τις κλήσεις. Επιτρέψτε ότι Closersπρέπει να επιτραπεί για αυτήν την επιλογή να παρουσιάσει| +Campaign Ranks -<\/B> In this section you can define the rank an agent will have for each campaign. These ranks can be used to allow for preferred call routing when Next Agent Call is set to campaign_rank|Τάξεις εκστρατείας - σε αυτό το τμήμα μπορείτε να καθορίσετε τηντάξη που ένας πράκτορας θα έχει για κάθε εκστρατεία. Αυτές οιτάξεις μπορούν να χρησιμοποιηθούν για να επιτρέψουν τηνπροτιμημένη κλήση καθοδηγώντας όταν τίθεται η επόμενη κλήσηπρακτόρων campaign_rank| +Also in this section is the ability to give the agent a rank for each inbound group. These ranks can be used for preferred call routing when that option is selected in the in-group screen|Επίσης σε αυτό το τμήμα είναι η δυνατότητα να δοθεί στονπράκτορα μια τάξη για κάθε εισερχόμενη ομάδα. Αυτές οι τάξειςμπορούν να χρησιμοποιηθούν για την προτιμημένη κλήση καθοδηγώνταςόταν επιλέγεται εκείνη η επιλογή στην οθόνη-ΟΜΑΔΑΣ| +### START translations for 2.0.5 release ### +QC Enabled -<\/B> This option allows the user to log in to the Quality Control agent screen|QC Enabled - Η επιλογή αυτή επιτρέπει στο χρήστη να συνδεθείτε με το γραφείο ποιοτικού ελέγχου της οθόνης| +QC User Level -<\/B> This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section|QC επίπεδο χρήστη - Αυτή η ρύθμιση ορίζει τι ο πράκτορας Ελέγχου Ποιότητας χρήστη επίπεδο. Αυτό θα υπαγορεύσει το επίπεδο λειτουργικότητας για τον αντιπρόσωπο στο τμήμα QC| +QC Record Pass -<\/B> This option allows the agent to specify that a record has passed the first round of QC after reviewing the record|QC Εγγραφή Pass - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι μια εγγραφή έχει περάσει από τον πρώτο γύρο, QC, μετά την επανεξέταση των ρεκόρ| +QC Record Finish -<\/B> This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record|QC Εγγραφή Finish - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι μια εγγραφή έχει τελειώσει ο δεύτερος γύρος των QC πέρασε μετά την επανεξέταση των ρεκόρ| +QC Record Commit -<\/B> This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone|QC Αναλήψεις Record - Η επιλογή αυτή επιτρέπει στον πράκτορα να διευκρινιστεί ότι ένα ρεκόρ το οποίο έχει δεσμευθεί στην QC. Αυτό δεν είναι πλέον δυνατό να τροποποιηθεί από κανέναν| +QC Allowed Campaigns -<\/B> This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system|QC Επιτρέπονται Καμπάνιες - Αυτό είναι ένα επιλέξιμο κατάλογο των καμπάνιες που τα μέλη αυτής της ομάδας χρηστών θα είναι σε θέση να QC. Η ALL-CAMPAIGNS επιλογή επιτρέπει στους χρήστες αυτής της ομάδας να QC οποιαδήποτε εκστρατεία για το σύστημα| +QC Allowed Inbound Groups -<\/B> This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system|QC Επιτρέπονται Inbound Ομάδες - Αυτό είναι ένα επιλέξιμο λίστα των εισερχόμενων ομάδες που τα μέλη αυτής της ομάδας χρηστών θα είναι σε θέση να QC. Η ALL-ΟΜΑΔΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα χρηστών να QC οποιαδήποτε εισερχόμενα ομάδας για το σύστημα| +QC Enabled: |QC Enabled:| +QC User Level: |QC χρήστη Επίπεδο:| +QC Pass: |QC Pass:| +QC Finish: |QC Τελείωμα:| +QC Commit: |Αναλήψεις QC:| +Modify Nothing|Τίποτα δεν Modify| +Modify Nothing Except Status|Τίποτα δεν Modify Εκτός Status| +Modify All Fields|Τροποποιήστε Όλα τα πεδία| +Verify First Round of QC|Βεβαιωθείτε πρώτου γύρου, QC| +View QC Statistics|Δείτε QC Στατιστικά| +Ability to Modify FINISHed records|Ικανότητα Modify ΕΤΟΙΜΑ αρχεία| +Manager Level|Manager Επίπεδο| +USERS CAN VIEW ANY CAMPAIGN|Χρήστες να μπορούν να δουν οποιαδήποτε καμπάνια| +USERS CAN QC ANY CAMPAIGN|Οι χρήστες μπορούν να QC οποιαδήποτε καμπάνια| +USERS CAN QC ANY INBOUND GROUP|Οι χρήστες μπορούν να ANY QC εισερχόμενα ΟΜΑΔΑ| +QC Allowed Campaigns: |QC Επιτρέπονται Καμπάνιες:| +QC Allowed Inbound Groups: |QC Επιτρέπονται Inbound Groups:| +Queue Priority -<\/B> This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode|Κοτσίδας Προτεραιότητα - Αυτή η ρύθμιση χρησιμοποιείται για να καθορίσει τη σειρά με την οποία οι εξερχόμενες κλήσεις από αυτή την εκστρατεία θα πρέπει να απαντηθούν σε σχέση με τις εισερχόμενες κλήσεις αν η συγκεκριμένη καμπάνια είναι αναμεμειγμένο σε λειτουργία| +Queue Priority: |Κοτσίδας Προτεραιότητα:| +Drop Action: |Drop δράσης:| +Drop Transfer Group: |Drop Μεταφορά Ομάδα:| +Drop Action -<\/B> This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below|Drop δράσης - Αυτό το μενού σας επιτρέπει να διαλέξετε ό, τι συμβαίνει σε μια κλήση όταν έχει να περιμένει περισσότερο από ό, τι έχει οριστεί στο Drop Call δευτερόλεπτα τομέα. HANGUP απλά θα κλείσεις την κλήση, το μήνυμα θα αποστείλει την πρόσκληση της Drop παράταση που έχετε ορίζονται κατωτέρω, τηλεφωνητή θα απευθύνει την πρόσκληση προς το τηλεφωνητή θέση που έχετε IN_GROUP ορίζονται κατωτέρω, και θα απευθύνει την πρόσκληση στην ομάδα Inbound που καθορίζονται κατωτέρω| +Drop Exten -<\/B> If Drop Action is set to MESSAGE, this is the dial plan extension that the call will be sent to if it reaches Drop Call Seconds|Drop παράταση - Αν Drop δράση που να είναι μήνυμα, αυτό είναι η κλήση σχέδιο επέκτασης ότι η πρόσκληση θα σταλεί στο εάν ανέρχεται Drop Call Δευτερόλεπτα| +Drop Call Seconds -<\/B> The number of seconds a call will stay in queue before being considered a DROP|Drop Call δευτερόλεπτα - Ο αριθμός των δευτερολέπτων σε μια κλήση θα παραμείνουν στην ουρά πριν να θεωρείται DROP| +Drop Transfer Group -<\/B> If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds|Drop Μεταφορά Όμιλος - Αν Drop Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα εάν ανέρχεται Drop Call Δευτερόλεπτα| +QC SETTINGS FOR THIS CAMPAIGN|QC SETTINGS για αυτή την καμπάνια| +QC Enabled: |QC Enabled:| +QC Statuses: |QC καθεστώτα:| +Modify Campaign QC Settings|Τροποποίηση Ρυθμίσεων Καμπάνιας QC| +QC Enabled -<\/B> Setting this field to Y allows for the agent Quality Control features to work. Default is N|QC Enabled - Η ρύθμιση αυτού του τομέα να Y επιτρέπει τον παράγοντα Ποιοτικός Έλεγχος χαρακτηριστικά στην εργασία. Προεπιλεγμένο είναι Ν| +QC Statuses -<\/B> This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review|QC καθεστώτων - Η περιοχή αυτή είναι που θα επιλέξετε το οποίο οδηγεί των καθεστώτων θα πρέπει να φύγει πάνω από το σύστημα, QC. Τοποθετήστε ένα δίπλα στο ελέγξτε την κατάσταση που θέλετε, QC για την αναθεώρηση| +QC SETTINGS NOT MODIFIED|QC SETTINGS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +QC SETTINGS MODIFIED|QC SETTINGS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +QC WebForm Address -<\/B> This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen|QC WebForm Διεύθυνση - Αυτό είναι το ότι μια διεύθυνση ιστοσελίδας, QC, μπορεί να πάει στο γραφείο, όταν κάνετε κλικ στο σύνδεσμο WEBFORM στην οθόνη QC| +QC Script -<\/B> This is the script that can be used by QC agents in the SCRIPT tab in the QC screen|QC Σενάριο - Αυτό είναι το σενάριο που μπορεί να χρησιμοποιηθεί από τους πράκτορες, QC στην SCRIPT καρτέλα στην οθόνη, QC| +QC WebForm: |QC WebForm:| +QC Script|QC Script| +In-Group Recording Override -<\/B> This field allows for the overriding of the campaign call recording setting. This setting can be overridden by the vicidial_user recording override setting. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording|-Στην ομάδα Καταγραφή Παράκαμψη - Το πεδίο αυτό επιτρέπει την πρωταρχική της εκστρατείας πρόσκληση εγγραφής ρύθμιση. Η ρύθμιση αυτή μπορεί να παρακαμφθεί από την καταγραφή vicidial_user υπερισχύει ρύθμιση. DISABLED δεν θα υπερισχύσει του εκστρατεία καταγραφής ρύθμιση. ΠΟΤΕ θα απενεργοποιήσει την εγγραφή για τον πελάτη. ONDEMAND είναι η προεπιλεγμένη και επιτρέπει στον αντιπρόσωπο να ξεκινήσετε και να σταματήσετε την εγγραφή, όπως απαιτείται. ALLCALLS θα αρχίσει η εγγραφή του υπολογιστή-πελάτη κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα. ALLFORCE θα αρχίσει η εγγραφή του υπολογιστή-πελάτη κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα που ο πράκτορας δεν την επιλογή για να σταματήσει η εγγραφή| +In-Group Recording Filename -<\/B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE|-Στην ομάδα αρχείου Καταγραφή - Το πεδίο αυτό θα αντικαταστήσει το Campaign Καταγραφή Filenaming σύστημα εάν δεν έχει οριστεί σε ΚΑΝΕΝΑ. Οι μεταβλητές που επιτρέπονται είναι CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH ΠΡΑΚΤΟΡΑ. Η προεπιλογή είναι FULLDATE_AGENT και θα μοιάζει κάπως έτσι 20051020-103108_6666. Ένα άλλο παράδειγμα είναι CAMPAIGN_TINYDATE_CUSTPHONE που θα μοιάζει κάπως έτσι TESTCAMP_51020103108_3125551212. 50 char max. Προεπιλεγμένο είναι ΚΑΝΕΝΑ| +In-Group Recording Override: |-Στην ομάδα Καταγραφή Override:| +In-Group Recording Filename: |-Στην ομάδα Καταγραφή αρχείου:| +ADDING VICIDIAL QC STATUS CODE|Adding VICIDIAL QC Κατάσταση ΚΩΔΙΚΟΣ| +MODIFY VICIDIAL QC STATUS CODE|MODIFY VICIDIAL QC Κατάσταση ΚΩΔΙΚΟΣ| +VICIDIAL QC STATUS CODES|QC VICIDIAL κωδικοί| +The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length.|Ο Ποιοτικός Έλεγχος-QC σύστημα εντός VICIDIAL έχει τους δικούς της κωδικοί χωριστά από εκείνα που, κατά την κλήση των λειτουργιών χειρισμού VICIDIAL. QC statuse κωδικοί πρέπει να είναι μεταξύ 2 και 8 χαρακτήρες και δεν περιέχουν ειδικούς χαρακτήρες όπως ένα χώρο ή παχέος εντέρου. Ο κωδικός QC περιγραφή πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες.| + QC Status Codes |QC κωδικοί| +VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM: |QC VICIDIAL κωδικοί στα πλαίσια αυτού του συστήματος:| +ADD NEW QC STATUS CODE|Προσθήκη νέου QC Κατάσταση ΚΩΔΙΚΟΣ| +QC STATUS CODE NOT DELETED|QC Κατάσταση ΚΩΔΙΚΟΣ δεν διαγράφονται| +QC STATUS CODE DELETED: |QC Κατάσταση ΔΙΕΓΡΑΜΜΕΝΩΝ ΚΩΔΙΚΟΣ:| +QC STATUS CODE NOT MODIFIED |QC Κατάσταση ΚΩΔΙΚΟΣ ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +QC STATUS CODE MODIFIED: |QC Κατάσταση ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΚΩΔΙΚΟΣ:| +the qc status code needs to be at least 1 characters in length|η qc κωδικός πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος| +the qc status code name needs to be at least 1 characters in length|qc το κωδικό όνομα πρέπει να είναι τουλάχιστον 1 χαρακτήρες στο μήκος| +QC STATUS CODE NOT ADDED |QC Κατάσταση ΚΩΔΙΚΟΣ δεν προστίθενται| +there is already a qc status code in the system with this name:|υπάρχει ήδη μια qc κωδικό στο σύστημα με αυτό το όνομα:| +QC STATUS CODE ADDED: |QC Κατάσταση ΠΡΟΣΤΙΘΕΝΤΑΙ ΚΩΔΙΚΟΣ:| +code must be between 1 and 8 characters in length|κωδικός πρέπει να είναι μεταξύ 1 και 8 χαρακτήρες| +code name must be between 2 and 30 characters in length|κωδικό όνομα πρέπει να είναι μεταξύ 2 και 30 χαρακτήρες| +CALL HANGUP REASON STATS|CALL HANGUP REASON STATS| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field, IN_GROUP will send the call to the inbound group selected in the After Hours Transfer Group select list. Default is MESSAGE|Μετά από ώρες δράσης - Η δράση για την εκτέλεση, αν είναι μετά από ώρες, όπως ορίζεται στην πρόσκληση αυτή την φορά για τα εισερχόμενα ομάδα. HANGUP θα hangup αμέσως την πρόσκληση, MESSASGE θα παίξει το αρχείο στο Μετά από ώρες Μήνυμα Filenam τομέα, ΕΠΕΚΤΑΣΗ θα αποστείλει την πρόσκληση για την Μετά από ώρες Παράταση στο dialplan τηλεφωνητή και θα απευθύνει την πρόσκληση προς το τηλεφωνητή κουτί που απαριθμούνται στο Μετά Ώρες Τηλεφωνητής τομέα , IN_GROUP θα αποστείλει την πρόσκληση προς την εισερχόμενη ομάδα επιλεγμένων στο Μετά Ώρες Μεταφορά Ομάδα επιλέξτε λίστα. Προεπιλεγμένο είναι ΜΗΝΥΜΑ| +After Hours Transfer Group -<\/B> If After Hours Action is set to IN_GROUP, the call will be sent to this inbound group if it enters the in-group outside of the call time scheme defined for the in-group|Μετά από ώρες Μεταφορά Όμιλος - Εάν Μετά Ώρες Δράσης έχει οριστεί σε IN_GROUP, η πρόσκληση θα σταλεί σε αυτή την εισερχόμενη ομάδα, αν αυτή τεθεί σε-η ομάδα εκτός από τη διάρκεια των κλήσεων για το καθεστώς που ορίζεται στην ομάδα| +After Hours Transfer Group: |Μετά από ώρες Μεταφορά Ομάδα:| +Total calls taken in to this In-Group:|Σύνολο κλήσεις που λαμβάνονται σε αυτό το In-Group:| +CALL HOLD TIME BREAKDOWN IN SECONDS|ΧΡΟΝΟΣ ΥΠΟΒΟΛΗΣ ΠΑΡΑΔΙΔΟΜΕΝΕΣ ΚΑΤΑΝΟΜΗ ΣΕ SECONDS| +Date Range:|Χρονικό διάστημα:| +ADDING NEW PHONE ALIAS|Την προσθήκη νέων PHONE ALIAS| +ADD NEW PHONE ALIAS|Προσθήκη νέου PHONE ALIAS| +MODIFY PHONE ALIAS|MODIFY PHONE ALIAS| +DELETE PHONE ALIAS|DELETE PHONE ALIAS| +PHONE ALIAS LIST|PHONE ALIAS ΚΑΤΑΛΟΓΟΣ| +Phone Alias List|Τηλέφωνο Γνωστός Κατάλογος| +Add A New Phone Alias|Προστίθεται ένα νέο τηλέφωνο Γνωστός| +ADD A NEW PHONE ALIAS|ADD A NEW PHONE ALIAS| +Alias ID: |Γνωστός ID:| +Alias Name: |Ψευδώνυμο:| +Phone Logins List: |Τηλέφωνο logins List:| +PHONE ALIAS NOT ADDED|PHONE ALIAS δεν προστίθενται| +there is already a Phone Alias in the system with this ID|υπάρχει ήδη ένα τηλέφωνο Γνωστός στο σύστημα με αυτό το ID| +there is already a Phone Login in the system with this ID|υπάρχει ήδη μια Τηλέφωνο Σύνδεση στο σύστημα με αυτό το ID| +PHONE ALIAS ADDED|PHONE ALIAS ΠΡΟΣΤΙΘΕΜΕΝΗ| +PHONE ALIAS NOT MODIFIED|PHONE ALIAS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +PHONE ALIAS MODIFIED|PHONE ALIAS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +PHONE ALIAS NOT DELETED|PHONE ALIAS δεν διαγράφονται| +PHONE ALIAS DELETION CONFIRMATION|PHONE ALIAS DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ| +Click here to delete phone alias|Κάντε κλικ εδώ για να διαγράψετε τηλέφωνο άλλως| +PHONE ALIAS DELETION COMPLETED|PHONE ALIAS DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ| +PHONE ALIAS LISTINGS|PHONE ALIAS Καταχωρίσεις| +there is already a Phone alias in the system with this login|υπάρχει ήδη ένα τηλέφωνο άλλως στο σύστημα με αυτή τη σύνδεση| +there is already a Phone in the system with this login|υπάρχει ήδη ένα τηλέφωνο στο σύστημα με αυτή τη σύνδεση| +DELETE THIS PHONE ALIAS|DELETE THIS PHONE ALIAS| +MODIFY A PHONE ALIAS RECORD|MODIFY τηλεφώνου ALIAS RECORD| +Alias ID -<\/B> The ID of the alias used to allow for phone load balanced logins. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Γνωστός ID - Η ID του ψευδώνυμο που χρησιμοποιείται για να επιτρέψει συνδέσεις τηλεφώνου φορτίο ισορροπημένη. δεν κενά ή άλλους ειδικούς χαρακτήρες επιτρέπονται. Πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες| +Alias Name -<\/B> The name used to describe a phones alias, Must be between 2 and 50 characters in length|Ψευδώνυμο - Το όνομα που χρησιμοποιείται για την περιγραφή ενός τηλέφωνα άλλως, πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες| +Phones Logins List -<\/B> The comma separated list of phone logins used when an agent logs in using phone load balanced logins. The Agent application will find the active server with the fewest agents logged into it and place a call from that server to the agent upon login|Τηλέφωνα logins List - Η comma separated κατάλογο τηλέφωνο συνδέσεις χρησιμοποιούνται όταν ένας πράκτορας συνδέεται στο τηλέφωνο χρησιμοποιώντας φορτίο ισορροπημένη συνδέσεις. Το γραφείο θα βρει εφαρμογή η ενεργός διακομιστής με τις λιγότερες παράγοντες συνδεθεί σε αυτήν και μια κλήση από το διακομιστή στον πράκτορα κατά login| +PHONES WITHIN THIS PHONES ALIAS|Στο πλαίσιο του παρόντος PHONES ΤΗΛΕΦΩΝΑ ALIAS| +Add New Shift|Προσθήκη νέου Shift| +New Shift Addition|Νέα προσθήκη Shift| +Modify Shift|Τροποποιήστε Shift| +Delete Shift|Διαγραφή Shift| +Shifts|Βάρδιες| +Shift ID -<\/B> This is the short name of a Vicidial Shift Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 20 characters, minimum of 2 characters|ID Shift - Αυτή είναι η σύντομη ονομασία της Vicidial Shift Ορισμός. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε τυχόν διαστήματα ή σημεία στίξης για αυτόν τον τομέα. max 20 χαρακτήρες, τουλάχιστον 2 χαρακτήρες| +Shift Name -<\/B> This is a more descriptive name of the Shift Definition. This is a short summary of the Shift definition. max 50 characters, minimum of 2 characters|Shift Όνομα - Αυτό είναι ένα πιο περιγραφικό όνομα του Shift Ορισμός. Αυτή είναι μια σύντομη περίληψη του Shift ορισμό. το πολύ 50 χαρακτήρες, τουλάχιστον 2 χαρακτήρες| +Shift Start Time -<\/B> This is the time that the campaign shift begins. Must only be numbers, 9:30 AM would be 0930 and 5:00 PM would be 1700|Start Time Shift - Αυτή είναι η στιγμή που αρχίζει η εκστρατεία στροφή. Πρέπει να είναι μόνο αριθμοί, 9.30 π.μ. και 0930 θα είναι 5:00 μμ θα είναι 1.700| +Shift Length -<\/B> This is the time in Hours and Minutes that the campaign shift lasts. 8 hours would be 08:00 and 7 hours and 30 minutes would be 07:30|Shift Μήκος - Αυτό είναι το χρόνο σε ώρες και τα λεπτά που διαρκεί η εκστρατεία στροφή. 8 ώρα θα είναι 08:00 και 7 ώρες και 30 λεπτά θα είναι 07:30| +Shift Weekdays -<\/B> In this section you should choose the days of the week that this shift is active|Shift Καθημερινά - Στην ενότητα αυτή θα πρέπει να επιλέξετε τις μέρες την εβδομάδα ότι αυτή η στροφή είναι ενεργή| +Show Shifts|Δείτε Βάρδιες| +Add A New Shift|Προστίθεται ένα νέο Shift| +Shift ID: |Shift ID:| +Shift Name: |Shift Όνομα:| +Shift Start Time: |Shift Ώρα έναρξης:| +Shift End Time: |Shift End Time:| +SHIFT DEFINITION NOT ADDED|SHIFT ΟΡΙΣΜΟΣ δεν προστίθενται| +there is already a shift entry with this ID|υπάρχει ήδη μια μετατόπιση προς την παρούσα θέση ID| +Shift ID and name must be at least 2 characters in length|ID Shift και το όνομα πρέπει να είναι τουλάχιστον 2 χαρακτήρες| +Shift Start Time must be 4 digits in length and be a valid time|Shift ώρα έναρξης πρέπει να είναι 4 ψηφία στο μήκος και να είναι μια έγκυρη ώρα| +Shift Length must be 5 characters in length and be 24 hours or less|Shift Μήκος 5 χαρακτήρες πρέπει να είναι σε μήκος και να είναι 24 ώρες ή λιγότερο| +SHIFT ADDED: |SHIFT ΠΡΟΣΤΙΘΕΜΕΝΗ:| +MODIFY A SHIFT|MODIFY της στροφής| +USER GROUPS USING THIS SHIFT:|ΟΜΑΔΕΣ ΧΡΗΣΤΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΠΑΡΟΥΣΑ SHIFT:| +DELETE THIS SHIFT DEFINITION|Διαγραφή αυτής της SHIFT ΟΡΙΣΜΟΣ| +MODIFY A SHIFT|MODIFY της στροφής| +SHIFT NOT DELETED|SHIFT δεν διαγράφονται| +SHIFT DELETION CONFIRMATION: |SHIFT DELETION CONFIRMATION:| +Click here to delete shift|Κάντε κλικ εδώ για να διαγράψετε στροφή| +SHIFT DELETION COMPLETED:|SHIFT DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ:| +SHIFT MODIFIED|SHIFT ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +SHIFT LISTINGS:|SHIFT Καταχωρίσεις:| +Shift Weekdays: |Shift Καθημερινά:| +Sunday|Κυριακή| +Monday|Δευτέρα| +Tuesday|Τρίτη| +Wednesday|Τετάρτη| +Thursday|Πέμπτη| +Friday|Παρασκευή| +Saturday|Σάββατο| +Group Shifts: |Ομάδα Βάρδιες:| +Group Shifts -<\/B> This is a selectable list of shifts that can restrict the agents login time on the system|Ομάδα Βάρδιες - Αυτό είναι ένα επιλέξιμο λίστα των βαρδιών που μπορούν να περιορίσουν το χρόνο παράγοντες σύνδεσης, για το σύστημα| + Timeclock|Timeclock| +Timeclock End Of Day -<\/B> This setting defines when all users are to be auto logged out of the timeclock system. Only runs once a day. must be only 4 digits 2 digit hour and 2 digit minutes in 24 hour time. Default is 0000|Timeclock Τέλος της ημέρας - Αυτή η ρύθμιση καθορίζει, όταν όλοι οι χρήστες θα πρέπει να συνδεθεί αυτόματα από το σύστημα timeclock. Μόνο εκτελείται μία φορά την ημέρα. πρέπει να είναι μόνο 4 ψηφία ψηφίο 2 ώρες και 2 λεπτά ψηφίο στο 24ωρο διάστημα. Η προεπιλογή είναι 0000| +Timeclock Last Auto Logout -<\/B> This field displays the date of the last auto-logout|Τελευταία Timeclock Auto Logout - Αυτό το πεδίο εμφανίζει την ημερομηνία της τελευταίας αυτόματη αποσύνδεση| +Timeclock Last Auto Logout: |Τελευταία Timeclock Αυτόματη Αποσύνδεση:| +Timeclock End Of Day: |Timeclock Τέλος της ημέρας:| +SURVEY SETTINGS FOR THIS CAMPAIGN:|ΕΡΕΥΝΑ SETTINGS για αυτήν την καμπάνια:| +Modify Campaign Survey|Τροποποίηση Καμπάνιας Έρευνα| +Survey First Audio File -<\/B> This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign.|Έρευνα Πρώτο αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται από τη στιγμή που ο πελάτης παραλαμβάνει το τηλέφωνο όταν τρέχει μια έρευνα καμπάνια.| +Survey DTMF Digits -<\/B> This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are |Έρευνα DTMF Digits - Αυτό το πεδίο όπου θα καθοριστούν οι θέσεις ότι ο πελάτης μπορεί να πατήσει ως επιλογή για μια έρευνα της καμπάνιας. ψηφία DTMF είναι έγκυρο| +Survey Not Interested Digit -<\/B> This field is where you define the customer digit pressed that will show they are Not Interested.|Έρευνα δεν ενδιαφέρεται Digit - Αυτό το πεδίο όπου θα καθορίσει ο πελάτης ψηφίο πιεστεί θα δείτε ότι δεν ενδιαφέρονται.| +Survey Not Interested Status -<\/B> This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list.|Έρευνα δεν ενδιαφέρεται Status - Το πεδίο αυτό είναι που έχετε επιλέξει το καθεστώς που θα χρησιμοποιηθεί για δεν ενδιαφέρεται. DNC Εάν χρησιμοποιείται και η καμπάνια είναι ρυθμισμένη να χρησιμοποιεί DNC στη συνέχεια τον αριθμό τηλεφώνου, θα προστίθεται αυτόματα στο VICIDIAL εσωτερική DNC λίστα.| +Survey Opt-in Audio File -<\/B> This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken.|Έρευνα Opt-σε αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται όταν ο πελάτης έχει επιλέξει-in με την έρευνα, δεν επέλεξε-ή που δεν απάντησαν και αν η μη ανταπόκριση ενέργεια έχει οριστεί σε OptOut. Μετά από αυτό το αρχείο ήχου παίζεται, η μέθοδος έρευνας δράση.| +Survey Not Interested Audio File -<\/B> This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up|Έρευνα δεν ενδιαφέρεται αρχείο ήχου - Αυτό είναι το όνομα αρχείου ήχου που παίζεται όταν ο πελάτης έχει επιλέξει-από την έρευνα, δεν επέλεξε-ή σε περίπτωση που δεν απαντήσει η μη ανταπόκριση ενέργεια έχει οριστεί σε OptIn. Μετά από αυτό το αρχείο ήχου παίζεται, η πρόσκληση θα είναι ανηρτημένα| +Survey Method -<\/B> This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory.|Μέθοδος Survey - Αυτή η επιλογή καθορίζει τι θα συμβεί σε μια κλήση μετά ο πελάτης επέλεξε-in. AGENT_XFER θα αποστείλει την πρόσκληση για το επόμενο διαθέσιμο πράκτορα. Τηλεφωνητής θα αποστείλει την πρόσκληση προς το τηλεφωνητή θέση που καθορίζεται στο Τηλεφωνητής τομέα. ΕΠΕΚΤΑΣΗ θα στείλει ο πελάτης με την παράταση που ορίζεται στην έκθεση Xfer Επέκταση τομέα. HANGUP θα κλείσεις τον πελάτη. CAMPREC_60_WAV θα στείλει ο πελάτης να έχουμε μια καταγραφή που γίνεται με τους απάντηση, η καταγραφή αυτή θα πρέπει να τοποθετούνται σε ένα φάκελο με το όνομα, όπως η εκστρατεία στο εσωτερικό της καμπάνιας Έρευνα Καταγραφή Directory.| +Survey No-Response Action -<\/B> This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit.|Έρευνα της μη αντίδρασης Δράση - Αυτό είναι που σας καθορίζουν τι θα συμβεί αν δεν υπάρχει απάντηση στο ερώτημα της έρευνας. OptIn θα στείλει την πρόσκληση για την Έρευνα για την μέθοδο και αν ο πελάτης θα πατήσει το ψηφίο DTMF. OptOut θα στείλει ο πελάτης για να μέθοδος έρευνας, ακόμα και εάν δεν πιέσετε ένα ψηφίο DTMF.| +Survey Response Digit Map -<\/B> This is the section where you can define a description to go with each dtmf digit option that the customer may select.|Έρευνα Απάντηση Digit Map - Αυτό είναι το σημείο όπου μπορείτε να ορίσετε μια περιγραφή για να πάνε με κάθε ψηφίο DTMF επιλογή που ο πελάτης μπορεί να επιλέξει.| +Survey Xfer Extension -<\/B> If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension|Έρευνα Xfer Επέκταση - , εάν η έρευνα Μέθοδος ΕΠΕΚΤΑΣΗ είναι επιλεγμένο τότε ο πελάτης θα πρέπει να απευθύνεται έκκληση για την επέκταση αυτής της dialplan| +Survey Campaign Recording Directory -<\/B> If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory.|Έρευνα Καμπάνια Καταγραφή Directory - Εάν η μέθοδος έρευνας της CAMPREC_60_WAV είναι επιλεγμένο, τότε η αντίδραση των πελατών θα πρέπει να καταχωρούνται και να τοποθετούνται σε έναν κατάλογο το όνομα του από την εκστρατεία στο εσωτερικό αυτού του καταλόγου.| +SURVEY SETTINGS NOT MODIFIED|ΕΡΕΥΝΑ SETTINGS ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +SURVEY SETTINGS MODIFIED|ΕΡΕΥΝΑ SETTINGS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +Survey First Audio File|Έρευνα Πρώτο αρχείο ήχου| +Survey DTMF Digits|Έρευνα DTMF Digits| +Survey Not Interested Digit|Έρευνα δεν ενδιαφέρεται Digit| +Survey Not Interested Status|Έρευνα δεν ενδιαφέρεται Status| +Survey Opt-in Audio File|Έρευνα Opt-σε αρχείο ήχου| +Survey Not Interested Audio File|Έρευνα δεν ενδιαφέρεται αρχείο ήχου| +Survey Method|Έρευνα Μέθοδος| +Survey No-Response Action|Έρευνα της μη αντίδρασης δράσης| +Survey Response Digit Map|Έρευνα Απάντηση Digit Χάρτης| +Survey Xfer Extension|Έρευνα Xfer Παράταση| +Survey Campaign Recording Directory|Έρευνα Καμπάνια Καταγραφή Directory| +Add Timeclock Log Record -<\/B> This option allows the user to add records to the timeclock log|Προσθήκη Timeclock Εγγραφή Εγγραφή - Η επιλογή αυτή επιτρέπει στο χρήστη να προσθέσετε εγγραφές στο μητρώο timeclock| +Modify Timeclock Log Record -<\/B> This option allows the user to modify records in the timeclock log|Τροποποιήστε Timeclock Εγγραφή Εγγραφή - Η επιλογή αυτή επιτρέπει στο χρήστη να τροποποιήσει τις εγγραφές του timeclock log| +Delete Timeclock Log Record -<\/B> This option allows the user to delete records in the timeclock log|Εγγραφή Διαγραφή Timeclock Record - Η επιλογή αυτή επιτρέπει στο χρήστη να διαγράψει αρχεία στο timeclock log| +Add Timeclock Log Record|Προσθήκη Timeclock Εγγραφή Εγγραφή| +Modify Timeclock Log Record|Τροποποιήστε Timeclock Εγγραφή Εγγραφή| +Delete Timeclock Log Record|Διαγραφή Timeclock Εγγραφή Εγγραφή| +USER GROUP TIMECLOCK STATUS REPORT|Ομάδα χρηστών TIMECLOCK Κατάσταση ΕΚΘΕΣΗ| +Click here to see the Timeclock Status for this user group|Κάντε κλικ εδώ για να δείτε την κατάσταση Timeclock ομάδα για αυτόν τον χρήστη| +ADD NUMBERS TO THE DNC LIST|ADD αριθμούς στην DNC ΚΑΤΑΛΟΓΟΣ| +Phone Numbers: |Τηλέφωνα:| +one phone number per line only|έναν αριθμό τηλεφώνου σε κάθε γραμμή μόνο| +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 numbers to this list so that they will not be called by campaigns that use the internal DNC list|Κατάλογος VICIDIAL DNC - Αυτό δεν θέτουν κάθε λίστα περιέχει μόλυβδο που έχει τεθεί σε καθεστώς των DNC στο σύστημα. Μέσω του ΚΑΤΑΛΟΓΟΙ - ADD TO ΑΡΙΘΜΟΣ DNC σελίδα μπορείτε να προσθέσετε τους αριθμούς σε αυτόν τον κατάλογο, έτσι ώστε δεν θα ονομάζεται από καμπάνιες που χρησιμοποιούν την εσωτερική DNC λίστα| + Time Sheet |Ώρα Φύλλο| +Timeclock Record Edit|Timeclock Εγγραφή Επεξεργασία| +Default date format with year month day|Προκαθορισμένος ημερομηνία με τη μορφή έτος μήνας ημέρα| +USA date format with month day year|ΗΠΑ με τη μορφή ημερομηνίας ημέρα του μήνα χρόνου| +European date format with day month year|Ευρωπαϊκή ημέρα με μορφή Ημέρα Μήνας Έτος| +Text date format with abbreviated month day|Κείμενο με συντετμημένη μορφή ημερομηνίας ημέρα του μήνα| +followed by 24 hour time|ακολουθούμενη από 24 ώρες χρόνο| +followed by 12 hour time|ακολουθούμενη από 12 ώρες χρόνο| +Agent Screen Header Date Format -<\/B> This menu allows you to choose the format of the date that shows up at the top of the VICIDIAL agent screen. The options for this setting are: default is|Agent Screen Επικεφαλίδας Ημερομηνία Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή της ημερομηνίας που εμφανίζεται στο πάνω μέρος της οθόνης VICIDIAL πράκτορα. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι| +Agent Screen Customer Date Format -<\/B> This menu allows you to choose the format of the customer time zone date that shows up at the top of the Customer Information section of the VICIDIAL agent screen. The options for this setting are: default is|Agent Screen Πελατών Ημερομηνία Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή των πελατών ζώνη ώρας ημερομηνία που εμφανίζεται στο πάνω μέρος της πληροφόρησης πελατών τμήμα του πράκτορα VICIDIAL οθόνη. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι| +Agent Screen Customer Phone Format -<\/B> This menu allows you to choose the format of the customer phone number that shows up in the status section of the VICIDIAL agent screen. The options for this setting are: default is|Agent Screen Πελατών τηλέφωνο Format - Αυτό το μενού σας επιτρέπει να επιλέξετε τη μορφή του πελάτη τον αριθμό τηλεφώνου που εμφανίζεται στην κατάσταση τμήμα του πράκτορα VICIDIAL οθόνη. Οι επιλογές για τη ρύθμιση αυτή είναι οι εξής: προεπιλογή είναι| +dash separated phone number|παύλα διαχωρίζονται αριθμό τηλεφώνου| +dash separated number with area code in parenthesis|παύλα αριθμός διαχωρίζονται με τον κωδικό περιοχής σε παρένθεση| +No formatting|Δεν μορφοποίησης| +with space after city code|με το διάστημα μετά την πόλη κωδικός| +space separated phone number|χώρος χωρίζεται αριθμό τηλεφώνου| +Agent Screen Header Date Format|Agent Screen Επικεφαλίδας Μορφή Ημερομηνίας| +Agent Screen Customer Date Format|Agent Screen Πελατών Μορφή Ημερομηνίας| +Agent Screen Customer Phone Format|Agent Screen Πελατών τηλέφωνο Μορφοποίηση| +ERROR- There is a problem with the data that you entered, please go back|ERROR-Υπάρχει ένα πρόβλημα με τα δεδομένα που πληκτρολογήσατε, παρακαλώ πηγαίνετε πίσω| +A timeclock session cannot overlap another timeclock session|Μια timeclock συνόδου δεν μπορεί να επικαλύπτονται άλλο timeclock συνόδου| +Disable Alter Customer Phone -<\/B> If set to Y, does not change the customer phone number when an agent dispositions the call. Default is Y|Απενεργοποίηση Alter Πελατών τηλέφωνο - Σε περίπτωση που σε Y, δεν αλλάζει ο πελάτης τον αριθμό τηλεφώνου όταν ένας πράκτορας διαθέσεις την κλήση. Προεπιλεγμένο είναι Y| +Agent API Access -<\/B> This option allows the account to be used with the vicidial agent API commands|Agent API Πρόσβαση - Η επιλογή αυτή επιτρέπει τον λογαριασμό που πρέπει να χρησιμοποιούνται με την vicidial πράκτορας API εντολές| +Agent Alter Customer Phone Override -<\/B> This option will override whatever the option is in the campaign for altering of customer phone number. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer phone number, no matter what the campaign setting is. Default is NOT_ACTIVE|Agent Alter Πελατών τηλέφωνο Παράκαμψη - Η επιλογή αυτή θα υπερισχύσει του όποια κι αν είναι η επιλογή είναι στην εκστρατεία για την τροποποίηση του πελάτη τον αριθμό του τηλεφώνου. NOT_ACTIVE θα χρησιμοποιήσει όποια ρύθμιση είναι παρόντες κατά την εκστρατεία. ALLOW_ALTER θα επιτρέπει πάντα για τον πράκτορα να τροποποιήσει τον αριθμό τηλεφώνου του πελάτη, δεν το θέμα αυτό η εκστρατεία η ρύθμιση. Προεπιλεγμένο είναι NOT_ACTIVE| +Agent API Active -<\/B> If set to 1, this will allow the Agent API interface to function. Default is 0|Agent API Active - Αν οριστεί σε 1, αυτό θα επιτρέψει τη διασύνδεση API γραφείο να λειτουργεί. Η προεπιλογή είναι 0| +Agent Alter Customer Phone Override: |Agent Alter Πελατών Παράκαμψη Τηλέφωνο:| +Agent API Access: |Agent API Πρόσβαση:| +Disable Alter Customer Phone: |Απενεργοποίηση Alter Πελατών Τηλέφωνο:| +Agent API Active: |Agent API Active:| +Agent Display Queue Count -<\/B> If set to Y, when a customer is waiting for an agent, the Queue Calls display at the top of the agent screen will turn red and show the number of waiting calls. Default is Y|Εμφάνιση Agent Queue Count - Σε περίπτωση που σε Y, σε περίπτωση που ο πελάτης περιμένει για έναν πράκτορα, ο κοτσίδας ζητεί απεικόνιση στο πάνω μέρος της οθόνης πράκτορας θα γίνονται κόκκινα και δείχνουν τον αριθμό των αναμονής κλήσεων. Προεπιλεγμένο είναι Y| +Agent Display Queue Count: |Εμφάνιση Agent Queue Count:| +agents in dead calls|πράκτορες νεκροί σε κλήσεις| +QC Last Pull Time: |QC Τελευταία Τραβήξτε Ώρα:| +and less than 43200 seconds or 12 hours|και λιγότερο από 43.200 δευτερολέπτων ή 12 ωρών| +LEADS AT LIMIT|LEADS ΣΕ ΟΡΙΑΚΗ| +Lead counts taken from active lists in the campaign only|Μόλυβδος μετράει λαμβάνονται από καταλόγους που δραστηριοποιούνται στην εκστρατεία μόνο| +QC Get Record Launch-<\/B> This allows one of the following actions to be triggered upon a QC agent receiving a new record|QC Get Record Launch- Αυτό επιτρέπει σε μια από τις ακόλουθες δράσεις, το οποίο θα ενεργοποιείται σε ένα QC πράκτορας που λαμβάνει ένα νέο ρεκόρ| +QC Show Recording -<\/B> This allows for a recording that may be linked with the QC record to be display in the QC agent screen|QC Δείτε Καταγραφή - Αυτό επιτρέπει την καταγραφή που μπορεί να συνδέεται με την εγγραφή QC να εμφανίζονται στην οθόνη QC πράκτορα| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions|QC Shift - Αυτό είναι το χρονοδιάγραμμα μετάβασης που χρησιμοποιούνται για την έλξη, QC αρχεία για μια καμπάνια. Οι μέρες της εβδομάδας αγνοούνται για αυτές τις λειτουργίες| +QC Get Record Launch|QC Get Record Launch| +QC Show Recording|QC Δείτε Καταγραφή| +QC Shift|QC Shift| +Inbound Group QC Settings|Inbound Ομάδα QC Ρυθμίσεις| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions|QC Shift - Αυτό είναι το χρονοδιάγραμμα μετάβασης που χρησιμοποιούνται για την έλξη, QC αρχεία για μια inbound_group. Οι μέρες της εβδομάδας αγνοούνται για αυτές τις λειτουργίες| +The Sale Category and Dead Lead Category are both used by the List Suggestion system when analyzing list statistics.|Η Πώληση Κατηγορία και Dead επικεφαλής της κατηγορίας είναι και οι δύο που χρησιμοποιούνται από το σύστημα όταν Κατάλογος Πρόταση αναλύοντας κατάλογο στατιστικών.| +Sale Category: |Πώληση Κατηγορία:| +Dead Lead Category: |Νεκρά Μόλυβδος Κατηγορία:| +Manual Dial Filter -<\/B> This allows you to filter the calls that agents make in manual dial mode for this campaign by any combination of the following: DNC - to kick out, CAMPAIGNLISTS - the number must be within the lists for the campaign, NONE - no filter on manual dial or fast dial lists|Εγχειρίδιο Dial Διηθείται - Αυτό σας επιτρέπει να φιλτράρετε τις κλήσεις που πράκτορες να καλέσετε στο εγχειρίδιο λειτουργίας για την εκστρατεία αυτή με οποιονδήποτε συνδυασμό από τα ακόλουθα: DNC - προβλέπονται για την έναρξη, CAMPAIGNLISTS - ο αριθμός πρέπει να είναι εντός των καταλόγων για την εκστρατεία, ΚΑΝΕΝΑ - δεν υπάρχει φίλτρο για χειροκίνητη κλήση ή γρήγορα dial καταλόγους| +Manual Dial Filter: |Εγχειρίδιο Dial Filter:| +Agent Screen Clipboard Copy -<\/B> THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer|Agent Screen Clipboard Αντιγραφή - Αυτή η δυνατότητα είναι ενεργοποιημένη για το παρόν μόνο τον Internet Explorer. Η λειτουργία αυτή σας επιτρέπει να επιλέξετε ένα πεδίο που θα αντιγραφεί στον υπολογιστή πρόχειρο του παράγοντα υπολογιστή σε μια πρόσκληση που απηύθυνε σε έναν πράκτορα. Κοινές χρήσεις για αυτό είναι να καταστεί δυνατή η εύκολη επικόλληση του λογαριασμού αριθμούς ή αριθμούς τηλεφώνου κληρονομιά σε πελάτη σχετικά με τις εφαρμογές πράκτορα υπολογιστή| +Agent Screen Clipboard Copy|Agent Screen Clipboard Αντιγραφή| +EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record.|EXTENDED αναπληρωματικών αριθμοί είναι αριθμοί που φορτώνονται στο σύστημα εκτός του κανονικού οδηγήσει πληροφορίες οθόνης. Χρησιμοποιώντας EXTENDED σας μπορεί να έχει εκατοντάδες αριθμούς τηλεφώνου για ένα μόνο πελάτη ρεκόρ.| +Agent Screen Extended Alt Dial -<\/B> This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information|Agent Screen Εκτεταμένη Alt Dial - Αυτό το χαρακτηριστικό επιτρέπει σε υπαλλήλους να επεκταθεί η πρόσβαση των αναπληρωματικών τους αριθμούς τηλεφώνου για οδηγεί πέρα από την κανονική Alt τηλέφωνο και Address3 τομείς που μπορούν να χρησιμοποιηθούν σε VICIDIAL για αριθμούς τηλεφώνου πέραν της κύριας αριθμό τηλεφώνου. Η παράταση μπορεί να είναι αριθμοί τηλεφώνου κλήσης αυτόματα χρησιμοποιώντας το πρόγραμμα Auto-Alt-Dial χαρακτηριστικό στο VICIDIAL ρυθμίσεις της καμπάνιας, αλλά αυτό που επιτρέπει Agent Screen χαρακτηριστικό θα επιτρέψει επίσης τον αντιπρόσωπο για να καλέσετε τους αριθμούς αυτούς από τους πράκτορα οθόνη, καθώς και να επεξεργαστούν τις πληροφορίες| +Agent Screen Extended Alt Dial:|Agent Screen Εκτεταμένη Alt Dial:| +Use Campaign DNC List -<\/B> This defines whether this campaign is to filter leads against a DNC list that is specific to that campaign only. If it is set to Y, the hopper will look for each phone number in the campaign-specific DNC list before placing it in the hopper. If it is in the campaign-specific DNC list then it will change that lead status to DNCC so it cannot be dialed. Default is N.|Χρησιμοποίησε Καμπάνια DNC List - Αυτό καθορίζει αν αυτό είναι η εκστρατεία εναντίον ενός φίλτρου οδηγεί DNC λίστα που είναι ειδικά για τη συγκεκριμένη καμπάνια μόνο. Αν είναι να Y, η χοάνη θα εξετάσει, για κάθε αριθμό τηλεφώνου στον αγώνα-ειδικά DNC λίστα πριν από την τοποθέτησή του στην χοάνη. Αν είναι στην εκστρατεία ειδικά DNC λίστα τότε θα αλλάξει το καθεστώς που οδηγούν σε DNCC έτσι δεν μπορεί να εξερχόμενων. Προεπιλεγμένο είναι Ν.| +Use Campaign DNC List|Χρησιμοποίησε Καμπάνια DNC Κατάλογος| +and possibly the campaign-specific DNC list|και πιθανώς η εκστρατεία ειδικά DNC λίστα| +There is also the option to add leads to the campaign-specific DNC lists for those campaigns that have them|Υπάρχει επίσης η δυνατότητα να προσθέσετε οδηγεί στην καμπάνια-DNC ειδικών καταλόγων για αυτές τις καμπάνιες που έχουν τους| +NOTE: Copying a campaign will copy all settings from the master campaign you select, but it will not copy a campaign-specific DNC list if there was one on the selected master campaign|ΣΗΜΕΙΩΣΗ: Η αντιγραφή μιας εκστρατείας θα αντιγράψετε όλες τις ρυθμίσεις από τον πλοίαρχο καμπάνια που θα επιλέξετε, αλλά δεν θα αντιγράψετε μια καμπάνια ειδικά DNC λίστα αν υπήρχε ένα master με την επιλεγμένη καμπάνια| +Add New |Προσθήκη νέου| +Copy |Αντιγραφή| +New DID Addition|Νέα προσθήκη DID| +New Copied DID Addition|Νέα προσθήκη αντιγραφή DID| +Modify |Modify| +Delete |Διαγράφω| +Play Place in Line -<\/B> This defines whether the caller will hear their place in line when they enter the queue as well as when they hear the announcemend. Default is N|Παίξτε στο Τόπος Γραμμή - Αυτό καθορίζει αν ο καλών θα ακούσει τη θέση τους στη γραμμή όταν εισέλθουν στην ουρά, καθώς και όταν ακούν την announcemend. Προεπιλεγμένο είναι Ν| +Play Estimated Hold Time -<\/B> This defines whether the caller will hear the estimated hold time before they are transferred to an agent. Default is N|Παίξτε Κρατήστε Εκτιμώμενη ώρα - Αυτό καθορίζει αν ο καλών θα ακούσει τον εκτιμώμενο χρόνο κατέχουν προτού μεταφερθούν σε έναν πράκτορα. Προεπιλεγμένο είναι Ν| +Hold Time Option -<\/B> This allows you to specify the routing of the call if the estimated hold time is over the amount of seconds specified below. Default is NONE|Κρατήστε Ώρα Επιλογή - Αυτό σας επιτρέπει να καθορίσετε την δρομολόγηση των κλήσεων, εάν ο εκτιμώμενος χρόνος κατέχουν πάνω από το ποσό των δευτερολέπτων που καθορίζεται παρακάτω. Προεπιλεγμένο είναι ΚΑΝΕΝΑ| +Hold Time Option Seconds -<\/B> If Hold Time Option is set to anything but NONE, this is the number of seconds of estimated hold time that will trigger the hold time option. Default is 360 seconds|Κρατήστε Ώρα Επιλογή δευτερόλεπτα - Αν Κρατήστε Ώρα Επιλογή έχει οριστεί σε οτιδήποτε, αλλά ΚΑΝΕΝΑ, αυτό είναι ο αριθμός των δευτερολέπτων του χρόνου εκτιμάται ότι κατέχουν θα ενεργοποιήσει την αναμονή ώρα της επιλογής. Η προεπιλογή είναι 360 δευτερόλεπτα| +Hold Time Option Extension -<\/B> If Hold Time Option is set to EXTENSION, this is the dialplan extension that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Κρατήστε Ώρα Επιλογή Επέκταση - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε ΕΠΕΚΤΑΣΗ, αυτή είναι η επέκταση dialplan ότι η πρόσκληση θα σταλεί στο εάν ο εκτιμώμενος χρόνος κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα| +Hold Time Option Voicemail -<\/B> If Hold Time Option is set to VOICEMAIL, this is the voicemail box that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Κρατήστε Ώρα Επιλογή Τηλεφωνητής - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε τηλεφωνητή, αυτή είναι η θέση τηλεφωνητή ότι η πρόσκληση θα σταλεί στο εάν ο εκτιμώμενος χρόνος κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα| +Hold Time Option Transfer In-Group -<\/B> If Hold Time Option is set to IN_GROUP, this is the inbound group that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Κρατήστε Ώρα Επιλογή Μεταφορά σε ομάδα - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε IN_GROUP, αυτή είναι η ομάδα που την εισερχόμενη κλήση θα αποσταλεί στο εάν ο εκτιμώμενος χρόνος αναμονή υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα| +Hold Time Option Callback Filename -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the filename prompt that is played before the call is logged as a new lead to the list ID specified below if the estimated hold time exceeds the Hold Time Option Seconds|Κρατήστε Ώρα Επιλογή αρχείου Callback - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε CALLERID_CALLBACK, αυτό είναι το όνομα του αρχείου εντολών που έπαιξε πριν από την κλήση καταγράφεται ως μια νέα πρωτοβουλία στον κατάλογο ID που καθορίζονται κατωτέρω, εάν η εκτιμώμενη κατέχει υπερβαίνει το χρόνο Κρατήστε Ώρα Επιλογή Δευτερόλεπτα| +Hold Time Option Callback List ID -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the List ID the call is added to as a new lead if the estimated hold time exceeds the Hold Time Option Seconds|Κρατήστε Ώρα Επιλογή Callback Κατάλογος ID - Αν Κρατήστε Ώρα επιλογή είναι ρυθμισμένη σε CALLERID_CALLBACK, αυτός είναι ο Κατάλογος ID η κλήση προστίθεται ως μια νέα πρωτοβουλία, αν το εκτιμώμενο χρόνο κατέχει υπερβαίνει το Κρατήστε Ώρα Επιλογή Δευτερόλεπτα| +Hold Recall Transfer In-Group -<\/B> If a customer calls back to this in-group more than once and this is not set to NONE, then the call will automatically be sent on to the In-Group selected in this field. Default is NONE|Κρατήστε Ανάκληση Μεταφορά σε ομάδα - Σε περίπτωση που ο πελάτης ζητά πίσω σε αυτή την ομάδα-σε περισσότερες από μία φορές και αυτό δεν έχει οριστεί σε ΚΑΝΕΝΑ, τότε η κλήση θα αποστέλλονται αυτόματα στην επιλεγμένη ομάδα σε αυτό το πεδίο . Προεπιλεγμένο είναι ΚΑΝΕΝΑ| +No Delay Call Route -<\/B> Setting this to Y will remove all wait times and audio prompts and attempt to send the call right to an agent. Does not override welcome message or on hold prompt settings. Default is N|Δεν Υστέρηση Call διαδρομή - Η ρύθμιση αυτής να Y θα άρουν όλες τις φορές περιμένουμε και ήχου προτροπές και επιχειρείτε να στείλετε την πρόσκληση δικαίωμα ενός πράκτορα. Δεν υπερισχύει ευπρόσδεκτο μήνυμα ή σε αναμονή εντολών ρυθμίσεις. Προεπιλεγμένο είναι Ν| +Play Welcome Message -<\/B> These settings select when to play the defined welcome message, ALWAYS will play it every time, NEVER will never play it, IF_WAIT_ONLY will only play the welcome message if the call does not immediately go to an agent, and YES_UNLESS_NODELAY will always play the welcome message unless the NO_DELAY setting is enabled. Default is ALWAYS|Παίξτε Καλωσόρισμα - Οι ρυθμίσεις αυτές, όταν επιλέγουν να παίξουν το μήνυμα υποδοχής που ορίζεται, πάντα θα παίζει κάθε φορά, ΠΟΤΕ δεν πρόκειται ποτέ να παίξετε, IF_WAIT_ONLY μόνο θα παίξει το μήνυμα υποδοχής, αν η κλήση δεν πάνε αμέσως σε ένα παράγοντα , και YES_UNLESS_NODELAY θα είναι πάντα ευπρόσδεκτη παίξει το μήνυμα Αν δεν το NO_DELAY η ρύθμιση είναι ενεργοποιημένη. Προεπιλεγμένο είναι πάντα| +Play Place in Line: |Παίξτε στο Line Τόπος:| +Play Estimated Hold Time: |Παίξτε Κρατήστε Εκτιμώμενη Ώρα:| +Hold Time Option: |Κρατήστε την επιλογή Ώρα:| +Hold Time Option Seconds: |Κρατήστε την επιλογή Δευτερόλεπτα Ώρα:| +Hold Time Option Extension: |Κρατήστε Ώρα Επιλογή Παράταση:| +Hold Time Option Voicemail: |Κρατήστε Ώρα Επιλογή Τηλεφωνητής:| +Hold Time Option Transfer In-Group: |Κρατήστε Ώρα Επιλογή Μεταφορά σε ομάδα:| +Hold Time Option Callback Filename: |Κρατήστε Ώρα Επιλογή Callback αρχείου:| +Hold Time Option Callback List ID: |Κρατήστε Ώρα Επιλογή Callback Κατάλογος ID:| +Hold Recall Transfer In-Group: |Κρατήστε Ανάκληση Μεταφορά σε ομάδα:| +No Delay Call Route: |Δεν Υστέρηση Call Διαδρομή:| +Play Welcome Message: |Παίξτε Καλωσόρισμα:| +DID Extension -<\/B> This is the number, extension or DID that will trigger this entry and that you will route within the system using this function|DID Επέκταση - Αυτό είναι το πλήθος, την παράταση ή DID που θα ενεργοποιήσουν την παρούσα θέση και που θα σας διαδρομή, και εντός του συστήματος με τη βοήθεια αυτής της λειτουργίας| +DID Description -<\/B> This is the description of the DID routing entry|DID Περιγραφή - Αυτή είναι η περιγραφή της DID δρομολόγησης εισόδου| +DID Active -<\/B> This the field where you set the DID entry to active or not. Default is Y|DID Active - Αυτό το πεδίο όπου το σύνολο DID εισόδου σε ενεργό ή μη. Προεπιλεγμένο είναι Y| +DID Route -<\/B> This the type of route that you set the DID to use. EXTEN will send calls to the extension entered below, VOICEMAIL will send calls directly to the voicemail box entered below, AGENT will send calls to a VICIDIAL agent if they are logged in, PHONE will send the call to a phones entry selected below, IN_GROUP will send calls directly to the specified inbound group. Default is EXTEN|DID Route - Αυτό το είδος της διαδρομής που μπορείτε να ρυθμίσετε το DID χρήση. Παράταση θα αποστείλει τις κλήσεις προς την επέκταση τέθηκε κάτω, τηλεφωνητή θα αποστείλει κλήσεις απευθείας στον τηλεφωνητή τέθηκε κάτω από το πλαίσιο, ο πράκτορας θα αποστείλει κλήσεις σε VICIDIAL παράγοντα όταν είναι συνδεδεμένοι, τηλέφωνο θα στείλει την κλήση σε τηλέφωνα εισόδου επιλεγεί στη συνέχεια, θα IN_GROUP αποστέλλουν κλήσεις απευθείας από την καθορισμένη εισερχόμενα ομάδα. Προεπιλεγμένο είναι παράταση| +Extension -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan extension that calls will be sent to. Default is 9998811112, no-service|Επέκταση - Εάν είναι επιλεγμένο παράταση ως τις DID διαδρομή, τότε αυτή είναι η επέκταση dialplan που ζητά θα αποσταλεί στο. Προεπιλεγμένο είναι 9998811112, της μη παροχής υπηρεσιών| +Extension Context -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan context that calls will be sent to. Default is default|Παράταση Πλαίσιο - Εάν είναι επιλεγμένο παράταση ως τις DID διαδρομή, τότε αυτό είναι το πλαίσιο dialplan ότι οι κλήσεις θα σταλούν σε. Προεπιλογή είναι προεπιλογή| +Voicemail Box -<\/B> If VOICEMAIL is selected as the DID Route, then this is the voicemail box that calls will be sent to. Default is empty|Τηλεφωνητής Πλαίσιο - Τηλεφωνητής Εάν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η θέση τηλεφωνητή ότι οι κλήσεις που θα αποσταλεί στο. Προεπιλεγμένο είναι άδειο| +Phone Extension -<\/B> If PHONE is selected as the DID Route, then this is the phone extension that calls will be sent to.|Τηλέφωνο Επέκταση - ΤΗΛΕΦΩΝΟΥ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το τηλέφωνο που καλεί επέκταση θα αποσταλεί στο.| +Phone Server IP -<\/B> If PHONE is selected as the DID Route, then this is the server IP for the phone extension that calls will be sent to|Τηλέφωνο Server IP - ΤΗΛΕΦΩΝΟΥ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το server IP για το τηλέφωνο που καλεί επέκταση θα σταλεί στο| +User Agent -<\/B> If AGENT is selected as the DID Route, then this is the VICIDIAL Agent that calls will be sent to|User Agent - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το γραφείο που VICIDIAL κλήσεις θα σταλούν σε| +User Unavailable Action -<\/B> If AGENT is selected as the DID Route, and the user is not logged in or available, then this is the route that the calls will take|Χρήστης Unavailable Δράση - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομής, και ο χρήστης είναι συνδεδεμένος ή δεν υπάρχουν, τότε αυτή είναι η διαδρομή που θα λάβουν τις προσκλήσεις| +User Route Settings In-Group - If AGENT is selected as the DID Route, then this is the In-Group that will be used for the queue settings as the caller is waiting to be sent to the agent. Default is AGENTDIRECT|Ρυθμίσεις χρήστη Οδός-Στην Ομάδα - ΠΡΑΚΤΟΡΑ Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η ομάδα-Στο ότι θα πρέπει να χρησιμοποιείται για την ουρά ρυθμίσεις του καλούντος είναι σε αναμονή για αποστολή προς τον πράκτορα. Προεπιλεγμένο είναι AGENTDIRECT| +In-Group ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the In-Group that calls will be sent to|Στην Ομάδα-ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η ομάδα-Στο ότι οι κλήσεις που θα σταλεί στο| +In-Group Call Handle Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attampt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attampt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attampt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue. Default is CID|Στην Ομάδα-Call Χειριστείτε Μέθοδος - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η πρόσκληση χειρισμό μέθοδος που χρησιμοποιείται για αυτές τις κλήσεις. CID θα προσθέσετε ένα νέο ρεκόρ οδηγήσει με κάθε κλήση χρησιμοποιώντας το CallerID όπως τον αριθμό τηλεφώνου, θα προσπαθήσει να CIDLOOKUP lookup τον αριθμό τηλεφώνου από το CallerID σε ολόκληρο το σύστημα, θα attampt να CIDLOOKUPRL lookup τον αριθμό τηλεφώνου από το CallerID ορίζεται σε ένα μόνο κατάλογο , CIDLOOKUPRC θα attampt να lookup τον αριθμό τηλεφώνου από το CallerID σε όλες τις λίστες που ανήκουν στην καθορίζονται εκστρατεία, ΣΤΕΝΟΤΕΡΗΣ καθορίζεται για VICIDIAL Στενότερος κλήσεις, ANI θα προσθέσει ένα νέο ρεκόρ οδηγήσει με κάθε κλήση χρησιμοποιώντας την ANI όπως ο αριθμός τηλεφώνου, ANILOOKUP θα προσπαθήσει να lookup τον αριθμό τηλεφώνου από το ANI σε ολόκληρο το σύστημα, ANILOOKUPRL θα attampt να lookup τον αριθμό τηλεφώνου από το ANI ορίζεται σε ένα μόνο κατάλογο, θα XDIGITID εντολών του καλούντος για μια Χ ψήφιο κωδικό πριν από την πρόσκληση θα τεθούν σε την ουρά. Προεπιλεγμένο είναι CID| +In-Group Agent Search Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the agent search method to be used by the inbound group, LO is Load-Balanced-Overflow and will try to send the call to an agent on the local server before trying to send it to an agent on another server, LB is Load-Balanced and will try to send the call to the next agent no matter what server they are on, SO is Server-Only and will only try to send the calls to agents on the server that the call came in on. Default is LB|Στην Ομάδα-Agent Search Μέθοδος - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτή είναι η μέθοδος αναζήτησης παράγοντας που πρέπει να χρησιμοποιούνται από τα εισερχόμενα ομάδα, LO είναι Load-Balanced-Υπερχείλιση και θα προσπαθήσει να στείλει την πρόσκληση σε έναν πράκτορα για τον τοπικό διακομιστή πριν δοκιμάσετε να το στείλετε σε έναν πράκτορα σε άλλο διακομιστή, LB Load είναι ισορροπημένη και θα προσπαθήσει να στείλει την πρόσκληση για την επόμενη πράκτορα θέμα αυτό δεν είναι για server, SO-Server είναι το μόνο και θα μόνο να προσπαθήσουμε να στείλουμε τις κλήσεις σε παράγοντες σχετικά με το διακομιστή ότι η πρόσκληση ήταν για. Προεπιλεγμένο είναι LB| +In-Group List ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the List ID that leads may be searched through and that leads will be inserted into if necessary|-Στην ομάδα Κατάλογος ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτός είναι ο Κατάλογος ID που οδηγεί μπορεί να ερευνάται και ότι οδηγεί θα προστεθούν στο αν χρειάζεται| +In-Group Campaign ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the Campaign ID that leads may be searched for in if the call handle method is CIDLOOKUPRC|-Στην ομάδα καμπάνιας ID - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το Campaign ID που οδηγεί μπορεί να αναζητήσει σε περίπτωση που η πρόσκληση χειριστεί μέθοδος CIDLOOKUPRC| +In-Group Phone Code -<\/B> If IN_GROUP is selected as the DID Route, then this is the Phone Code used if a new lead is created|-Στην ομάδα Τηλέφωνο κώδικα - IN_GROUP Αν έχει επιλεγεί ως η DID διαδρομή, τότε αυτό είναι το τηλέφωνο κώδικα που χρησιμοποιείται εάν μια νέα πρωτοβουλία δημιουργείται| +Phones Email -<\/B> The email address associated with this phone entry. This is used for voicemail settings|Τηλέφωνα Email - Η διεύθυνση ηλεκτρονικού ταχυδρομείου που σχετίζονται με αυτό το τηλέφωνο εισόδου. Αυτό χρησιμοποιείται για τηλεφωνητή ρυθμίσεις| +ADD A NEW DID|ADD A NEW DID| +DID Extension: |DID Επέκταση:| +DID Description: |DID Περιγραφή:| +COPY DID|ΑΝΤΙΤΥΠΟ DID| +Source DID: |DID Πηγή:| +DID NOT ADDED|Δέν ΠΡΟΣΤΙΘΕΜΕΝΗ| +there is already a DID in the system with this ID|υπάρχει ήδη μια DID στο σύστημα με αυτό το ID| +there is already a DID in the system with this extension|υπάρχει ήδη μια DID στο σύστημα με την παράταση αυτή| +DID NOT MODIFIED|Δέν ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +DID MODIFIED|DID ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +MODIFY A DID RECORD: |MODIFY A DID RECORD:| +DID Route: |DID Οδός:| +Extension: |Παράταση:| +Extension Context: |Παράταση Πλαίσιο:| +Voicemail Box: |Τηλεφωνητής Box:| +Phone Extension: |Παράταση Τηλέφωνο:| +User Agent: |User Agent:| +User Unavailable Action: |Χρήστης Unavailable δράσης:| +User Route Settings In-Group: |Ρυθμίσεις χρήστη Οδός-Στην ομάδα:| +In-Group ID: |Στην Ομάδα-ID:| +In-Group Call Handle Method: |Στην Ομάδα-Call Χειροκίνητος Τρόπος:| +In-Group Agent Search Method: |Στην Ομάδα-Agent Search Μέθοδος:| +In-Group List ID: |Στην ομάδα Κατάλογος-ID:| +In-Group Campaign ID: |Στην ομάδα της εκστρατείας-ID:| +In-Group Phone Code: |Στην Ομάδα-τηλέφωνο Κωδικός:| +DELETE THIS DID|Διαγραφή αυτής της DID| +Email: |Email:| +DID NOT DELETED|ΔΕΝ ΚΑΤΑΡΓΗΘΗΚΕ| +DID DELETION CONFIRMATION|DID DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ| +Click here to delete |Κάντε κλικ εδώ για να διαγράψετε| +DID DELETION COMPLETED|DID DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ| +Delete DIDs: |Διαγραφή DIDs:| +Modify DIDs: |Τροποποιήστε DIDs:| +To disable the On Hold Prompt, set the interval to 0|Για να απενεργοποιήσετε την Προτροπή σε αναμονή, που το χρονικό διάστημα έως 0| +3-Way Call Outbound CallerID -<\/B> This defines what is sent out as the outbound callerID number from 3-way calls placed by the agent, CAMPAIGN uses the custom campaign callerID, CUSTOMER uses the number of the customer that is active on the agents screen and AGENT_PHONE uses the callerID for the phone that the agent is logged into|3-Way Outbound Call CallerID - Αυτό ορίζει τι έστειλε ως εξερχόμενο callerID σειρά από 3 δρόμων κλήσεις που διατίθενται από το γραφείο, η καμπάνια χρησιμοποιεί το έθιμο εκστρατεία callerID, ΠΕΛΑΤΗ χρησιμοποιεί τον αριθμό των πελατών που είναι ενεργή παράγοντες για την οθόνη και AGENT_PHONE χρησιμοποιεί το callerID για το τηλέφωνο ότι ο παράγοντας που είναι συνδεδεμένοι στο| +3-Way Call Outbound CallerID:|3-Way Outbound Call CallerID:| +INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls|INBOUND_MAN επιτρέπει στον αντιπρόσωπο να πραγματοποιηθεί χειροκίνητη κλήση κλήσεις από μια εκστρατεία λίστα, ενώ είναι σε θέση να λάβει εισερχόμενη κλήση κλήσεις μεταξύ εγχειρίδιο κλήσεις| +FORCE will force the agents to choose a PAUSE code if they click on the PAUSE button|ΙΣΧΥΟΝΤΑ θα ισχύουν οι παράγοντες να επιλέγουν μια παύση κωδικό αν κάντε κλικ στο κουμπί PAUSE| +3-Way Call Dial Prefix -<\/B> This defines what is used as the dial prefix for 3-way calls, default is empty so the campaign dial prefix is used, passthru so you can hear ringing is 88|3-Way Call Dial Prefix - Αυτό ορίζει τι είναι χρησιμοποιείται ως πρόθεμα κλήσης για 3-way κλήσεις, προεπιλογή είναι άδειο, ώστε η εκστρατεία dial πρόθεμα χρησιμοποιείται, passthru έτσι ώστε να μπορείτε να ακούτε τους ήχους είναι 88| +3-Way Call Dial Prefix|3-Way Call Dial Prefix| +Force Timeclock Login -<\/B> This option allows you to not let an agent log in to the VICIDIAL agent interface if they have not logged into the timeclock. Default is N. There is an option to exempt admin users, levels 8 and 9|Δύναμη Timeclock Είσοδος - Αυτή η επιλογή σας επιτρέπει να μην επιτρέπει να συνδεθείτε με έναν πράκτορα στην VICIDIAL διεπαφή πράκτορα, εάν δεν έχουν συνδεθεί στο timeclock. Προεπιλεγμένο είναι Ν. Υπάρχει η δυνατότητα να εξαιρούν admin χρήστες, 8 και 9 επίπεδα| +Force Timeclock Login|Δύναμη Timeclock Σύνδεση| +Stats Percent of Calls Answered Within X seconds - This field allows you to set the number of hold seconds that the realtime stats display will use to calculate the percentage of answered calls that were answered within X number of seconds on hold|Στατιστικά Ποσοστό ζητεί απάντηση εντός Χ δευτερόλεπτα - Αυτό το πεδίο σας επιτρέπει να ορίσετε τον αριθμό των δευτερολέπτων που κατέχουν την απεικόνιση σε πραγματικό χρόνο stats θα χρησιμοποιήσουν για να υπολογίσουν το ποσοστό των κλήσεων απαντά ότι απαντήθηκαν εντός Χ αριθμό των δευτερολέπτων σε αναμονή| +Stats Percent of Calls Answered Within X seconds|Στατιστικά Ποσοστό ζητεί απάντηση εντός δευτερολέπτων X| +Web Form Target-<\/B> This is where you can set the custom web page frame that the web form will be opened in when the user clicks on the WEB FORM button. Default is _blank.|Web Μορφή Target- Αυτό είναι όπου μπορείτε να ρυθμίσετε το έθιμο ιστοσελίδα πλαίσιο ότι η ηλεκτρονική φόρμα θα ανοίξει όταν ο χρήστης κάνει κλικ στην ηλεκτρονική φόρμα κουμπί. Προεπιλεγμένο είναι _blank.| +Web Form Target|Web Μορφή Target| +To customize the query string after the web form, simply begin the web form with VAR and then the URL that you want to use, replacing the variables with the variable names that you want to use --A--phone_number--B-- just like in the SCRIPTS tab section|Για να προσαρμόσετε το ερώτημα string μετά την ηλεκτρονική φόρμα, απλά αρχίζει την ηλεκτρονική φόρμα με VAR και στη συνέχεια τη διεύθυνση URL που θέλετε να χρησιμοποιήσετε, σε αντικατάσταση των μεταβλητών με τις ονομασίες των μεταβλητών που θέλετε να χρησιμοποιήσετε - Α - phone_number - Β -- όπως ακριβώς και στην καρτέλα scripts τμήμα| +Recording Web Link -<\/B> This setting allows you to override the default of the display of the recording link in the admin web pages. Default is SERVER_IP|Καταγραφή Σύνδεσμος - Η ρύθμιση αυτή σας επιτρέπει να παρακάμπτουν την προεπιλογή της οθόνης του συνδέσμου εγγραφή στο admin ιστοσελίδες. Προεπιλεγμένο είναι SERVER_IP| +Alternate Recording Server IP -<\/B> This setting is where you can put a server IP or other machine name that can be used in place of the server_ip in the links to recordings within the admin web pages. Default is empty|Αναπληρωματικό Καταγραφή Server IP - Αυτή η ρύθμιση είναι όπου μπορείτε να βάλετε ένα διακομιστή IP ή άλλο μηχάνημα το όνομα που μπορεί να χρησιμοποιηθεί στη θέση του server_ip στις συνδέσεις με ηχογραφήσεις εντός του admin ιστοσελίδες. Προεπιλεγμένο είναι άδειο| +Recording Web Link|Καταγραφή Σύνδεσμος| +Enable Vtiger Integration -<\/B> This setting allows you to enable Vtiger integration with VICIDIAL. Currently links to Vtiger admin and search as well as user replication are the only integration features available. Default is 0|Ενεργοποίηση Vtiger Ένταξη - Η ρύθμιση αυτή σας δίνει τη δυνατότητα να επιτρέψει την ένταξη Vtiger με VICIDIAL. Σήμερα Vtiger συνδέσμους προς admin και αναζήτησης του χρήστη, καθώς και την αντιγραφή είναι τα μόνα διαθέσιμα στοιχεία ολοκλήρωσης. Η προεπιλογή είναι 0| +Vtiger DB Server IP -<\/B> This is the IP address of the database for your Vtiger installation|Vtiger ΣΠ Server IP - Αυτή είναι η διεύθυνση IP της βάσης δεδομένων για την εγκατάσταση Vtiger| +Vtiger Database Name -<\/B> This is the database name for your Vtiger database|Vtiger Database Name - Αυτό είναι το όνομα της βάσης δεδομένων για την βάση δεδομένων σας Vtiger| +Vtiger Database Login -<\/B> This is the user name used to log in to your Vtiger database|Σύνδεση Vtiger Database - Αυτό είναι το όνομα χρήστη που χρησιμοποιείται για να συνδεθείτε στο λογαριασμό σας Vtiger βάση δεδομένων| +Vtiger Database Password -<\/B> This is the password used to log in to your Vtiger database|Vtiger Database Password - Αυτό είναι το κωδικό πρόσβασης που χρησιμοποιείται για να συνδεθείτε στο λογαριασμό σας Vtiger βάση δεδομένων| +Vtiger URL -<\/B> This is the URL or web site address used to get to your Vtiger installation|Vtiger URL - Αυτό είναι το URL ή διεύθυνση web site που χρησιμοποιείται για να σας Vtiger εγκατάσταση| +Enable Vtiger Integration:|Ενεργοποίηση Vtiger Ένταξη:| +Vtiger DB Server IP|Vtiger ΣΠ Server IP| +Vtiger Database Name|Vtiger Database Name| +Vtiger Database Login|Vtiger Database Σύνδεση| +Vtiger Database Password|Vtiger Database Password| +Vtiger URL|Vtiger URL| +VTIGER HOME|VTIGER ΑΡΧΙΚΗ| +Active -<\/B> This field defines whether the user is active in the system and can use VICIDIAL resources. Default is Y|Ενεργή - Το πεδίο αυτό καθορίζει αν ο χρήστης είναι ενεργός στο σύστημα και μπορεί να χρησιμοποιήσει VICIDIAL πόρων. Προεπιλεγμένο είναι Y| +show only active users|Εμφάνιση μόνο των ενεργών χρηστών| +show all users|δείτε όλους τους χρήστες| +Vtiger Search Category -<\/B> If Vtiger integration is enabled in the system settings then this setting will define where the vtiger_search.php page will search for the phone number that was entered. There are 4 options that can be used in this field: LEAD- This option will search through the Vtiger leads only, ACCOUNT- This option will search through the Vtiger accounts and all contacts and sub-contacts for the phone number, VENDOR- This option will only search through the Vtiger vendors, ACCTID- This option works only for accounts and it will take the vicidial vendor_lead_code field and try to search for the Vtiger account ID. If unsuccessful it will try any other methods listed that you have selected. Multiple options can be used for each search, but on large databases this is not recommended. Default is LEAD|Αναζήτηση Vtiger Κατηγορία - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεων στη συνέχεια τη ρύθμιση αυτή θα καθορίσει εάν η σελίδα vtiger_search.php θα αναζητήσετε τον αριθμό τηλεφώνου που είχε εγγραφεί. Υπάρχουν 4 επιλογές που μπορεί να χρησιμοποιηθεί στον τομέα αυτό: ΜΟΛΥΒΔΟΥ-Η επιλογή αυτή θα αναζητήσει μέσω του Vtiger οδηγεί μόνο, ΛΟΓΑΡΙΑΣΜΟΥ-Η επιλογή αυτή θα ψάξει μέσω των λογαριασμών Vtiger και όλες τις επαφές και επιμέρους επαφές για τον αριθμό τηλεφώνου, VENDOR-Αυτή η επιλογή μόνο μέσω της αναζήτησης Vtiger πωλητές, ACCTID-Η επιλογή αυτή λειτουργεί μόνο για τους λογαριασμούς και θα λάβει τα vicidial vendor_lead_code τομέα και προσπαθήστε να αναζητήσετε το αναγνωριστικό λογαριασμού Vtiger. Αν ανεπιτυχή θα προσπαθήσουμε τυχόν άλλες μεθόδους που αναφέρονται που έχετε επιλέξει. Πολλαπλές επιλογές μπορούν να χρησιμοποιηθούν για κάθε αναζήτηση, αλλά σε μεγάλες βάσεις δεδομένων που αυτό δεν συνιστάται. Προεπιλεγμένο είναι ΜΟΛΥΒΔΟΥ| +Vtiger Search Category:|Αναζήτηση Vtiger Κατηγορία:| +ACTIVE LISTS CHANGED|ΔΡΑΣΤΙΚΗΣ ΚΑΤΑΛΟΓΟΙ ΜΕΤΑΒΑΛΛΟΜΕΝΩΝ| +SUBMIT ACTIVE LIST CHANGES|ΕΠΙΣΥΝΑΠΤΩ ΚΑΤΑΣΤΑΣΗ ΜΕΤΑΒΟΛΩΝ ΔΡΑΣΤΙΚΗΣ| +LAST CALL DATE|ΤΕΛΕΥΤΑΙΑ ΗΜΕΡΟΜΗΝΙΑ ΥΠΟΒΟΛΗΣ| +User Group Bulk Change|User Group Μαζική Αλλαγή| +Bulk Group Change|Μαζική Αλλαγή ομάδας| +Vtiger Create Call Record -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether a new Vtiger activity record is created for the call when the agent goes to the vtiger_search page. Default is Y|Δημιουργία Vtiger Call Record - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεις τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο ένα νέο ρεκόρ Vtiger δραστηριότητα δημιουργείται για την πρόσκληση, όταν ο αντιπρόσωπος πηγαίνει στο vtiger_search σελίδα. Προεπιλεγμένο είναι Y| +Vtiger Create Call Record:|Δημιουργία Vtiger Call Record:| +Vtiger Create Lead Record -<\/B> If Vtiger integration is enabled in the system settings and Vtiger Search Category includes LEAD then this setting will define whether a new Vtiger lead record is created when the agent goes to the vtiger_search page and no record is found to have the call phone number. Default is Y|Δημιουργία Vtiger Μόλυβδος Record - Εάν είναι ενεργοποιημένη Vtiger ενσωμάτωση στο σύστημα και τις ρυθμίσεις Vtiger Αναζήτηση ΜΟΛΥΒΔΟ τότε η κατηγορία περιλαμβάνει τη ρύθμιση αυτή θα καθορίσει κατά πόσο ένα νέο ρεκόρ Vtiger οδηγήσει δημιουργείται όταν ο πράκτορας πηγαίνει στη σελίδα vtiger_search και δεν είναι βρέθηκαν να έχουν την κλήση του αριθμού τηλεφώνου. Προεπιλεγμένο είναι Y| +Vtiger Create Lead Record:|Δημιουργία Vtiger Μόλυβδος Εγγραφή:| +Vtiger Screen Login -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether the user is logged into the Vtiger interface automatically when they login to VICIDIAL. Default is Y|Vtiger Screen Είσοδος - Εάν είναι ενεργοποιημένη Vtiger ένταξη στο σύστημα ρυθμίσεις τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο ο χρήστης είναι συνδεδεμένος στο Vtiger διεπαφής αυτόματα όταν συνδεθείτε στο VICIDIAL. Προεπιλεγμένο είναι Y| +Vtiger Screen Login:|Vtiger Screen Είσοδος:| +Alert Enabled -<\/B> This field shows whether the agent has web browser alerts enabled for when calls come into their vicidial.php session. Default is 0 for NO|Alert Enabled - Το πεδίο αυτό δείχνει κατά πόσο ο μεσάζων έχει τη δυνατότητα web browser ειδοποιήσεις για κλήσεις όταν έρθουν σε vicidial.php συνόδου τους. Η προεπιλογή είναι 0 για τα NO| +Alert Enabled:|Alert Enabled:| +QC Features Active -<\/B> This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive|QC Χαρακτηριστικά Active - Αυτή η επιλογή σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε τη QC ή Ποιοτικός Έλεγχος χαρακτηριστικά. Η προεπιλογή είναι 0 για το ανενεργό| +Outbound Auto-Dial Active -<\/B> This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active|Εξερχόμενο Auto-Dial Active - Αυτή η επιλογή σας επιτρέπει να ενεργοποιήσετε ή να απενεργοποιήσετε τον εξερχόμενο αυτόματης κλήσης εντός VICIDIAL, θέτοντας σε αυτόν τον τομέα θα 0 αφαίρεση των καταλόγων και ΦΙΛΤΡΑ πολλά τμήματα και τομείς από το Campaign Τροποποίηση οθόνες. Εγχειρίδιο εισόδου κλήσης θα εξακολουθεί να είναι εντός των επιτρεπομένων από τον αντιπρόσωπο της οθόνης, αλλά δεν κατάλογο κλήσης θα είναι δυνατή. Η προεπιλογή είναι 1 για ενεργή| +QC Features Active:|QC Χαρακτηριστικά Active:| +Outbound Auto-Dial Active:|Εξερχόμενο Auto-Dial Active:| +Close Panel|Κλείστε Panel| +Choose Report Display Options|Επιλογές εμφάνισης Επιλέξτε Έκθεση| +To select more than 1 campaign, hold down the Ctrl key and click|Για να επιλέξετε περισσότερα από 1 εκστρατείας, κρατήστε πατημένο το πλήκτρο Ctrl και κάντε κλικ| +CPD AMD Action -<\/B> If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED|CPD AMD Δράση - Αν χρησιμοποιείτε τον Sangoma ParaXip Πρόσκληση πρόοδος Ανίχνευση λογισμικό και στη συνέχεια θα θέλετε να ενεργοποιήσετε αυτή τη ρύθμιση, είτε να DISPO που θα διαθέσεις την πρόσκληση ως AA και να κολλήσει το πάνω αν η πρόσκληση είναι υπό επεξεργασία και δεν έχει σταλεί σε έναν πράκτορα ή ακόμη μήνυμα που θα αποστείλει την πρόσκληση προς το τηλεφωνητή Μήνυμα ορίζεται για αυτή την καμπάνια. Προεπιλεγμένο είναι DISABLED| +CPD AMD Action:|CPD AMD δράσης:| +Click here for user multiple day status detail report|Κάντε κλικ εδώ για το χρήστη πολλαπλών ημέρες καθεστώς λεπτομερώς την έκθεση| +Click here to download this list|Κάντε κλικ εδώ για να κατεβάσετε τον κατάλογο αυτό| +Download Lists:|Κατεβάστε Λίστες:| +Active Asterisk Server -<\/B> If Asterisk is not running on this server, or if VICIDIAL should not be using this server, or if are only using this server for other scripts like the hopper loading script you would want to set this to N. Default is Y|Asterisk Active Server - Αν Asterisk δεν εκτελείται σε αυτόν το διακομιστή ή αν VICIDIAL δεν θα πρέπει να χρησιμοποιούν αυτό το διακομιστή ή αν είναι μόνο με τη χρήση αυτού του διακομιστή για άλλα σενάρια, όπως η χοάνη φόρτωσης script που θέλετε να ρυθμίσετε αυτή να Ν. Προεπιλ είναι Y| +Generate conf files -<\/B> If you would like the system to auto-generate asterisk conf files based upon the phones entries, carrier entries and load balancing setup within VICIDIAL then set this to Y. Default is Y|Δημιουργήστε conf αρχεία - Αν θα θέλατε το σύστημα auto-δημιουργούν αστερίσκο conf αρχεία με βάση τις ενδείξεις τηλεφώνων, την εξισορρόπηση φορτίου εγγραφές και εγκατάσταση εντός VICIDIAL τότε που αυτό να είναι Προεπιλ Y. Y| +Rebuild conf files -<\/B> If you want to force a rebuilding of the Asterisk conf files or if any of the phones or carrier entries have changed then this should be set to Y. After the conf files have been generated and Asterisk has been reloaded then this will be changed to N. Default is Y|Αναδημιουργία conf αρχεία - Αν θέλετε να αναγκάσετε μια ανακατασκευή του Asterisk conf αρχεία ή αν κάποιο από τα τηλέφωνα ή μεταφορέα εγγραφές έχουν αλλάξει, τότε αυτό θα πρέπει να ρυθμιστεί σε Υ. Μετά την conf αρχεία που έχουν δημιουργηθεί και έχει Asterisk φορτώθηκε στη συνέχεια, αυτό θα αλλάξει σε Ν. Προεπιλεγμένο είναι Y| +Active Asterisk Server:|Asterisk Active Server:| +Generate conf files:|Δημιουργήστε conf αρχεία:| +Rebuild conf files:|Αναδημιουργία conf αρχεία:| +Show Templates|Δείτε Templates| +Add A New Template|Προσθέστε ένα νέο πρότυπο| +ADD NEW CONF TEMPLATE|Προσθήκη νέου ΠΙΣΤ TEMPLATE| +ADD NEW CARRIER|Προσθήκη νέου ΘΑΛΑΜΙΣΚΟ| +ADDING NEW CONF TEMPLATE|Την προσθήκη νέων ΠΙΣΤ TEMPLATE| +ADDING NEW CARRIER|Την προσθήκη νέων ΘΑΛΑΜΙΣΚΟ| +MODIFY CONF TEMPLATE|MODIFY ΠΙΣΤ TEMPLATE| +MODIFY CARRIER|MODIFY ΘΑΛΑΜΙΣΚΟ| +DELETE CONF TEMPLATE|DELETE ΠΙΣΤ TEMPLATE| +DELETE CARRIER|DELETE ΘΑΛΑΜΙΣΚΟ| +CONF TEMPLATE LIST|ΠΙΣΤ TEMPLATE ΚΑΤΑΛΟΓΟΣ| +CARRIER LIST|ΘΑΛΑΜΙΣΚΟ ΚΑΤΑΛΟΓΟΣ| +Template ID:|Αναγνωριστικό:| +Template Name:|Όνομα:| +Template Contents:|Template Περιεχόμενα:| +Carrier ID:|Θαλαμίσκος ID:| +Carrier Name:|Φέρον Όνομα:| +Registration String:|Εγγραφή String:| +Account Entry:|Λογαριασμός Είσοδος:| +Protocol:|Πρωτόκολλο:| +Globals String:|Globals String:| +Dialplan Entry:|Dialplan Είσοδος:| +CONF TEMPLATE NOT ADDED|ΠΙΣΤ TEMPLATE δεν προστίθενται| +there is already a template in the system with this ID|υπάρχει ήδη ένα πρότυπο σε αυτό το σύστημα, με αυτό το ID| +CONF TEMPLATE ADDED|ΠΙΣΤ TEMPLATE ΠΡΟΣΤΙΘΕΜΕΝΗ| +CARRIER NOT ADDED|ΘΑΛΑΜΙΣΚΟ δεν προστίθενται| +there is already a carrier in the system with this ID|υπάρχει ήδη ένα μεταφορέα στο σύστημα με αυτό το ID| +CONF TEMPLATE NOT MODIFIED|ΠΙΣΤ TEMPLATE ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +CARRIER NOT MODIFIED|ΔΕΝ ΘΑΛΑΜΙΣΚΟ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +CARRIER MODIFIED|ΘΑΛΑΜΙΣΚΟ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +CONF TEMPLATE NOT DELETED|ΠΙΣΤ TEMPLATE δεν διαγράφονται| +Template ID be at least 2 characters in length|Πρότυπο ID να είναι τουλάχιστον 2 χαρακτήρες| +CONF TEMPLATE DELETION CONFIRMATION|ΠΙΣΤ TEMPLATE DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ| +Click here to delete conf template|Κάντε κλικ εδώ για να διαγράψετε το πρότυπο conf| +CARRIER NOT DELETED|ΘΑΛΑΜΙΣΚΟ δεν διαγράφονται| +Carrier ID be at least 2 characters in length|Θαλαμίσκος ID να είναι τουλάχιστον 2 χαρακτήρες| +CARRIER DELETION CONFIRMATION|ΘΑΛΑΜΙΣΚΟ DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ| +Click here to delete carrier|Κάντε κλικ εδώ για να διαγράψετε μεταφορέα| +CONF TEMPLATE DELETION COMPLETED|ΠΙΣΤ TEMPLATE DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ| +CARRIER DELETION COMPLETED|ΘΑΛΑΜΙΣΚΟ DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ| +MODIFY A CONF TEMPLATE RECORD|MODIFY Α ΠΙΣΤ TEMPLATE RECORD| +DELETE THIS CONF TEMPLATE|Διαγραφή αυτής της ΠΙΣΤ TEMPLATE| +MODIFY A CARRIER RECORD|MODIFY Α ΘΑΛΑΜΙΣΚΟ RECORD| +DELETE THIS CARRIER|Διαγραφή αυτής της CARRIER| +CARRIERS WITHIN THIS SERVER|ΜΕΤΑΦΟΡΕΙΣ WITHIN THIS SERVER| +CONF TEMPLATE LISTINGS|ΠΙΣΤ TEMPLATE Καταχωρίσεις| +CARRIER LISTINGS|ΘΑΛΑΜΙΣΚΟ Καταχωρίσεις| +PHONES USING THIS CONF TEMPLATE|PHONES ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗΝ ΠΑΡΟΥΣΑ ΠΙΣΤ TEMPLATE| +CARRIERS USING THIS CONF TEMPLATE|Που χρησιμοποιούν ΠΑΡΟΝΤΑ ΠΙΣΤ TEMPLATE| +Conf Override:|Επιβ Override:| +Template ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the conf template throughout the system|ID Template - Το πεδίο αυτό πρέπει να είναι τουλάχιστον 2 χαρακτήρες και δεν υπερβαίνει τους 15 χαρακτήρες σε μήκος, δεν χώρους. Αυτό είναι το αναγνωριστικό που θα χρησιμοποιείται για τον προσδιορισμό της conf πρότυπο σε ολόκληρο το σύστημα| +Template Name -<\/B> This is the descriptive name of the conf file template entry|Όνομα - Αυτό είναι το όνομα του αρχείου conf πρότυπο εισόδου| +Template Contents -<\/B> This field is where you can enter in the specific settings to be used by all phones and-or carriers that are set to use this conf template. Fields that should NOT be included in this box are: secret, accountcode, account, username and mailbox|Περιεχόμενα Template - Το πεδίο αυτό είναι όπου μπορείτε να εισάγετε τις ειδικές ρυθμίσεις στο να χρησιμοποιηθούν από όλα τα τηλέφωνα και-ή αερομεταφορέων που έχουν ρυθμιστεί να χρησιμοποιούν αυτό το πρότυπο conf. Τα πεδία που δεν θα πρέπει να περιλαμβάνονται στη θέση αυτή είναι: μυστικό, accountcode, υπόψη, username και το γραμματοκιβώτιο| +Carrier ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the carrier for this specific entry throughout the system|ID Carrier - Το πεδίο αυτό πρέπει να είναι τουλάχιστον 2 χαρακτήρες και δεν υπερβαίνει τους 15 χαρακτήρες σε μήκος, δεν χώρους. Αυτό είναι το αναγνωριστικό που θα χρησιμοποιείται για τον προσδιορισμό του αερομεταφορέα για τη συγκεκριμένη θέση σε όλο το σύστημα| +Carrier Name -<\/B> This is the descriptive name of the carrier entry|Όνομα Carrier - Αυτό είναι το όνομα του μεταφορέα εισόδου| +Registration String -<\/B> This field is where you can enter in the exact string needed in the IAX or SIP configuration file to register to the provider. Optional but highly recommended if your carrier allows registration|Εγγραφή String - Το πεδίο αυτό είναι όπου μπορείτε να εισαγάγετε στον ακριβή συμβολοσειρά που απαιτούνται στο SIP IAX ή αρχείο διαμόρφωσης για να εγγραφείτε στο φορέα παροχής υπηρεσιών. Προαιρετικό αλλά συνιστάται ιδιαίτερα αν ο φορέας σας επιτρέπει την καταχώριση| +Template ID -<\/B> This optional field allows you to choose a conf file template for this carrier entry|ID Template - Αυτό το προαιρετικό πεδίο σας επιτρέπει να επιλέξετε ένα πρότυπο conf αρχείο για τον εν λόγω αερομεταφορέα εισόδου| +Account Entry -<\/B> This field is used if you have not selected a template to use, and it is where you can enter in the specific account settings to be used for this carrier|Λογαριασμός Θέση - Το πεδίο αυτό χρησιμοποιείται αν δεν έχετε επιλέξει να χρησιμοποιήσετε ένα πρότυπο, και είναι όπου μπορείτε να εισαγάγετε στον ειδικό λογαριασμό ρυθμίσεις που πρέπει να χρησιμοποιείται για τον εν λόγω αερομεταφορέα| +Protocol -<\/B> This field allows you to define the protocol to use for the carrier entry. Currently only IAX and SIP are supported|Πρωτόκολλο - Αυτό το πεδίο σας επιτρέπει να ορίσετε το πρωτόκολλο να χρησιμοποιήσετε για την είσοδο του μεταφορέα. Επί του παρόντος μόνο SIP IAX και υποστηρίζονται| +Globals String -<\/B> This optional field allows you to define a global variable to use for the carrier in the dialplan|Globals String - Αυτό το προαιρετικό πεδίο σας επιτρέπει να ορίσετε μια global μεταβλητή που θα χρησιμοποιηθεί για τον μεταφορέα στο dialplan| +Dialplan Entry -<\/B> This optional field allows you to define a set of dialplan entries to use for this carrier|Dialplan Είσοδος - Αυτό το προαιρετικό πεδίο σας επιτρέπει να ορίσετε ένα σύνολο dialplan καταχωρήσεις να χρησιμοποιήσετε για τον εν λόγω αερομεταφορέα| +Server IP -<\/B> This is the server that this specific carrier record is associated with|Server IP - Αυτό είναι το διακομιστή ότι αυτό το συγκεκριμένο μεταφορέα εγγραφή είναι συνδεδεμένες με| +Active -<\/B> This defines whether the carrier will be included in the auto-generated conf files or not|Ενεργή - Αυτό καθορίζει εάν ο μεταφορέας θα συμπεριληφθούν στα auto-conf αρχεία που δημιουργούνται ή δεν| +Conf Override Settings -<\/B> If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated|Επιβ Παράκαμψη Ρυθμίσεις - Αν πληθυσμό, και το πρότυπο που να είναι ID - ΚΑΝΕΝΑ - τότε το περιεχόμενο της εν λόγω τομέα χρησιμοποιούνται ως conf αρχείο καταχωρήσεις για αυτό το τηλέφωνο. generate_vicidial_conf τηλέφωνα server για αυτό πρέπει να ρυθμιστεί σε αυτό το Y για να εργαστούν. Το πεδίο αυτό δεν θα πρέπει να περιλαμβάνει το [επέκταση] γραμμή, που θα είναι αυτόματα| +Template ID -<\/B> This is the conf file template ID that this phone entry will use for its Asterisk settings. Default is --NONE--|ID Template - Αυτό είναι το πρότυπο αρχείο conf ID εισόδου ότι αυτό το τηλέφωνο θα χρησιμοποιήσει για την Asterisk ρυθμίσεις. Προεπιλεγμένο είναι - ΚΑΝΕΝΑ --| +If you will be taking in inbound calls from this carrier trunk you might want to set the context=trunkinbound within this field so that you can use the DID handling process within VICIDIAL|Αν πρόκειται να λαμβάνουν σε εισερχόμενα κλήσεις από τον εν λόγω αερομεταφορέα κορμού μπορεί να θέλετε να ρυθμίσετε το πλαίσιο = trunkinbound σε αυτό τον τομέα, ώστε να μπορείτε να χρησιμοποιήσετε τη διαδικασία χειρισμού DID εντός VICIDIAL| +There is a reserved default DID that you can use which is just the word -default- without the dashes, that will allos you to send any call that does not match any other existing patterns to the default DID|Υπάρχει reserved προεπιλογή DID που μπορείτε να χρησιμοποιήσετε το οποίο είναι μόνο η λέξη-default-χωρίς παύλες, ότι θα μπορείτε να στείλετε ΑΛΛΟΣ κάθε κλήση που δεν ταιριάζει με οποιαδήποτε άλλα υφιστάμενα πρότυπα στην προεπιλεγμένη DID| +Campaign VDAD extension|Καμπάνια VDAD επέκταση| +This field allows for a custom VDAD transfer extension. This allows you to use different call handling methods depending upon your campaign.|Το πεδίο αυτό επιτρέπει για μια προσαρμοσμένη VDAD μεταφορά επέκταση. Αυτό σας επιτρέπει να χρησιμοποιήσετε διάφορες μεθόδους χειρισμού κλήσεων, ανάλογα με την καμπάνια σας.| + - 8364 - same as 8368|- 8364 - 8368 ως ίδια| + - 8365 - Will send the call only to an agent on the same server as the call is on|- 8365 - Θα στείλετε την πρόσκληση σε ένα μόνο παράγοντα στον ίδιο διακομιστή, όπως είναι η πρόσκληση για| + - 8366 - Used for press-1 and survey campaigns|- 8366 - Χρησιμοποιείται για Τύπο-1 εκστρατείες και έρευνα| + - 8367 - Will try to first send the call to an agent on the local server, then it will look on other servers|- 8367 - Θα προσπαθήσουμε πρώτα να στείλετε την πρόσκληση σε έναν πράκτορα για τον τοπικό διακομιστή, τότε θα ψάξει για άλλους servers| + - 8368 - DEFAULT – Will send the call to the next available agent no matter what server they are on|- 8368 - DEFAULT; Θα στείλετε την πρόσκληση για το επόμενο διαθέσιμο πράκτορα θέμα αυτό δεν είναι για server| + - 8369 - Used for Answering Machine Detection after that, same behavior as 8368|- 8369 - Χρησιμοποιείται για τηλεφωνητή Ανίχνευση ότι μετά, ίδια συμπεριφορά ως 8368| + - 8373 - Used for Answering Machine Detection after that same behavior as 8366|- 8373 - Χρησιμοποιείται για τηλεφωνητή Ανίχνευση μετά την ίδια συμπεριφορά ως 8366| +Also in this section are the WEB VARs for each campaign. These allow each agent to have a different variable string that can be added to the WEB FORM or SCRIPT tab URLs by simply putting --A--web_vars--B-- as you would put any other field.|Επίσης σε αυτό το τμήμα της WEB VARs για κάθε καμπάνια. Αυτά επιτρέπουν κάθε παράγοντα να έχει μια διαφορετική μεταβλητή συμβολοσειρά που μπορεί να προστεθεί στην ηλεκτρονική φόρμα ή SCRIPT καρτέλα URLs από απλά θέτοντας - Α - web_vars - Β - όπως θα την κάθε άλλο τομέα.| +Group Alias List|Ομάδα Γνωστός Κατάλογος| +Add A New Group Alias|Προσθέστε μια νέα ομάδα Γνωστός| +ADD NEW GROUP ALIAS|Προσθήκη νέου GROUP ALIAS| +ADDING NEW GROUP ALIAS|Την προσθήκη νέων GROUP ALIAS| +MODIFY GROUP ALIAS|MODIFY GROUP ALIAS| +DELETE GROUP ALIAS|Διαγραφή ομάδας ALIAS| +GROUP ALIAS LIST|ΟΜΑΔΑ ALIAS ΚΑΤΑΛΟΓΟΣ| +GROUP ALIAS LISTINGS|ΟΜΑΔΑ ALIAS Καταχωρίσεις| +MODIFY A GROUP ALIAS RECORD|MODIFY Α ΟΜΙΛΟΣ ALIAS RECORD| +Group Alias ID|Ομάδα Γνωστός ID| +Group Alias Name|Ομάδα ψευδώνυμο| +CallerID Number|CallerID Αριθμός| +CallerID Name|CallerID Όνομα| +DELETE THIS GROUP ALIAS|Διαγράψετε αυτή την ομάδα ALIAS| +GROUP ALIAS NOT MODIFIED|ALIAS ΟΜΑΔΑ ΔΕΝ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +GROUP ALIAS MODIFIED|ΟΜΑΔΑ ALIAS ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ| +ADD A NEW GROUP ALIAS|ADD μια νέα ομάδα ALIAS| +MODIFY A GROUP ALIAS RECORD|MODIFY Α ΟΜΙΛΟΣ ALIAS RECORD| +GROUP ALIAS NOT ADDED|ΟΜΑΔΑ ALIAS δεν προστίθενται| +GROUP ALIAS ADDED|ΟΜΑΔΑ ALIAS ΠΡΟΣΤΙΘΕΜΕΝΗ| +GROUP ALIAS NOT DELETED|ΟΜΑΔΑ ALIAS δεν διαγράφονται| +GROUP ALIAS DELETION CONFIRMATION|ΟΜΑΔΑ ALIAS DELETION ΕΠΙΒΕΒΑΙΩΣΗΣ| +Click here to delete group alias|Κάντε κλικ εδώ για να διαγράψετε ομάδα άλλως| +GROUP ALIAS DELETION COMPLETED|ΟΜΑΔΑ ALIAS DELETION ΣΥΜΠΛΗΡΩΜΕΝΟ| +Group Alias ID -<\/B> The ID of the group alias used by agents to dial out calls from the VICIDIAL agent interface with different Caller IDs. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Ομάδα Γνωστός ID - Η ID της ομάδας άλλως χρησιμοποιείται από τους αντιπροσώπους που ορίζονται για να καλέσετε τις κλήσεις από το VICIDIAL πράκτορα διεπαφής με διαφορετικές ταυτότητες καλούντος. δεν κενά ή άλλους ειδικούς χαρακτήρες επιτρέπονται. Πρέπει να είναι μεταξύ 2 και 20 χαρακτήρες| +Group Alias Name -<\/B> The name used to describe a group alias, Must be between 2 and 50 characters in length|Ομάδα ψευδώνυμο - Το όνομα που χρησιμοποιείται για να περιγράψει μια ομάδα άλλως, πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες| +Caller ID Number -<\/B> The Caller ID number used in this Group Alias. Must be digits only|Αριθμός Ταυτότητας καλούντος - Η καλούντος αριθμό ταυτότητας που χρησιμοποιούνται σε αυτή την ομάδα Γνωστός. Πρέπει να είναι μόνο ψηφία| +Caller ID Name -<\/B> The Caller ID name that can be sent out with this Group Alias. As far as we know this will only work in Canada on PRI circuits and using an IAX loop trunk through Asterisk|Όνομα καλούντος ID - Το όνομα του καλούντος ID που μπορούν να αποσταλούν με αυτή την ομάδα Γνωστός. Από όσο γνωρίζουμε αυτό θα λειτουργήσει μόνο στον Καναδά και στις PRI κυκλωμάτων χρησιμοποιώντας IAX βρόχο κορμού μέσω Asterisk| +Group Alias Allowed -<\/B> If you want to allow your agents to use group aliases then you need to set this to Y. Group Aliases are explained more in the Admin section, they allow agents to select different callerIDs for outbound manual calls that they may place. Default is N|Ομάδα Γνωστός Επιτρέπεται - Αν θέλετε να σας επιτρέψει πράκτορες να χρησιμοποιούν ψευδώνυμα ομάδα τότε πρέπει να ορίσετε αυτή την ομάδα να Y. Γνωστός εξηγούνται περισσότερο στο τμήμα Διοίκησης, που επιτρέπει στους εκπροσώπους να επιλέξετε διαφορετικό callerIDs εγχειρίδιο για εξερχόμενες κλήσεις ότι μπορεί να πραγματοποιηθεί. Προεπιλεγμένο είναι Ν| +Default Group Alias -<\/B> If you have allowed Group Aliases then this is the group alias that is selected first by default when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Προεπιλεγμένη ομάδα Γνωστός - Αν έχετε επιτρέπεται Γνωστός ομάδα, τότε αυτό είναι γνωστός και ότι η ομάδα έχει επιλεγεί από προεπιλογή κατά την πρώτη του πράκτορα επιλέγει να χρησιμοποιήσει μια ομάδα Γνωστός για εξερχόμενες κλήσης εγχειρίδιο. Προεπιλεγμένο είναι ΚΑΝΕΝΑ ή κενό| +Default Group Alias -<\/B> If you have allowed Group Aliases for the campaign that the agent is logged into then this is the group alias that is selected first by default on a call coming in from this inbound group when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Προεπιλεγμένη ομάδα Γνωστός - Αν έχετε τη δυνατότητα Ομάδα Γνωστός για την εκστρατεία ότι ο αντιπρόσωπος είναι συνδεδεμένοι στο τότε αυτή είναι η ομάδα που έχει επιλεγεί άλλως πρώτα από προεπιλογή για μια κλήση που προέρχεται από αυτή την ομάδα, όταν ο εισερχόμενος πράκτορας επιλέγει να χρησιμοποιήσετε μια ομάδα Γνωστός για εξερχόμενες κλήσης εγχειρίδιο. Προεπιλεγμένο είναι ΚΑΝΕΝΑ ή κενό| +Group Alias Allowed|Ομάδα Γνωστός Επιτρέπεται| +Default Group Alias|Προεπιλεγμένη ομάδα Γνωστός| +AGENT_CHOOSE allows the agent to choose which callerID to use for 3-way calls from a list of choices.|AGENT_CHOOSE επιτρέπει να επιλέγουν τον πράκτορα που callerID να χρησιμοποιήσετε για την 3-way ζητεί από μια λίστα επιλογών.| +you cannot use reserved words in group aliases|δεν μπορείτε να χρησιμοποιήσετε τις δεσμευμένες λέξεις της ομάδας ψευδώνυμα| +Agent Shift Enforcement Override|Agent Shift Επιβολή Override| +Manager Shift Enforcement Override|Manager Shift Επιβολή Override| +Shift Enforcement|Shift εκτέλεση| +Max Calls per Second|Max ζητεί ανά Δεύτερη| +Max FILL Calls per Second|Max ΣΥΜΠΛΗΡΩΣΤΕ ζητεί ανά Δεύτερη| +This setting will override whatever the users user group has set for Shift Enforcement. DISABLED will use the user group setting. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is DISABLED.|Η ρύθμιση αυτή θα αντικαταστήσει τους χρήστες ανεξάρτητα από την ομάδα χρηστών που έχει για την εκτέλεση Shift. DISABLED θα χρησιμοποιήσει ο χρήστης ομάδα ρύθμιση. OFF δεν θα επιβάλει σε όλες τις βάρδιες. START θα επιβάλει μόνο το χρόνο σύνδεσης, αλλά δεν θα επηρεάσει έναν πράκτορα που εκτελεί τους πάνω μετατόπιση του χρόνου και αν είναι ήδη συνδεδεμένος in. ALL θα επιβάλλει μετατόπιση χρόνος έναρξης και θα συνδεθείτε ορίζονται μετά από έναν πράκτορα που τρέχουν πάνω από το τέλος του χρόνου τους βάρδια. Η προεπιλογή είναι άτομα με ειδικές ανάγκες.| +This setting if set to 1 will allow a manager to enter their user and password on an agent screen to override the shift restrictions on an agent session if the agent is trying to log in outside of their shift. Default is 0.|Η ρύθμιση αυτή ορίζεται σε 1, αν θα επιτρέψει ο διαχειριστής του να εισέλθει στα χρήστη και κωδικό πρόσβασης σε έναν πράκτορα της οθόνης για να παρακάμψετε τους περιορισμούς σχετικά με τη μετατόπιση ενός πράκτορα συνόδου εάν ο πράκτορας προσπαθεί να συνδεθείτε με τους εκτός της βάρδιας. Η προεπιλογή είναι 0.| +This setting allows you to restrict agent logins based upon the shifts that are selected below. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is OFF.|Η ρύθμιση αυτή σας επιτρέπει να περιορίσετε πράκτορα συνδέσεις με βάση τις αλλαγές που έχουν επιλεγεί. OFF δεν θα επιβάλει σε όλες τις βάρδιες. START θα επιβάλει μόνο το χρόνο σύνδεσης, αλλά δεν θα επηρεάσει έναν πράκτορα που εκτελεί τους πάνω μετατόπιση του χρόνου και αν είναι ήδη συνδεδεμένος in. ALL θα επιβάλλει μετατόπιση χρόνος έναρξης και θα συνδεθείτε ορίζονται μετά από έναν πράκτορα που τρέχουν πάνω από το τέλος του χρόνου τους βάρδια. Προεπιλεγμένο είναι OFF.| +This setting determines the maximum number of calls that can be placed by the outbound auto-dialing script on this server per second. Must be from 1 to 100. Default is 20.|Αυτή η ρύθμιση καθορίζει το μέγιστο αριθμό των κλήσεων που μπορούν να διατεθούν από το εξερχόμενο αυτόματη κλήση δέσμης ενεργειών σε αυτόν το διακομιστή ανά δευτερόλεπτο. Πρέπει να είναι από 1 έως 100. Η προεπιλογή είναι 20.| +This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40.|Αυτή η ρύθμιση καθορίζει το μέγιστο αριθμό των κλήσεων που μπορούν να διατεθούν από το auto-ΣΥΜΠΛΗΡΩΣΤΕ εξερχό auto-κλήση δέσμης ενεργειών για όλους τους διακομιστές, ανά δευτερόλεπτο. Πρέπει να είναι από 1 έως 200. Η προεπιλογή είναι 40.| +System Load|System Load| +Live Channels|Live Channels| +Disk Usage|Disk Usage| +These two statistics show the loadavg of a system times 100 and the CPU usage percentage of the server and is updated every minute. The loadavg should on average be below 100 multiplied by the number of CPU cores your system has, for optimal performance. The CPU usage percentage should stay below 50 for optimal performance.|Τα δύο αυτά στατιστικά στοιχεία δείχνουν την loadavg ενός συστήματος φορές 100 και το ποσοστό χρήσης της CPU του διακομιστή και ενημερώνεται ανά λεπτό. Η loadavg θα πρέπει να είναι κατά μέσο όρο κάτω των 100 πολλαπλασιάζεται με τον αριθμό των πυρήνων της CPU σας σύστημα, για τη βέλτιστη απόδοση. Η χρήση της CPU ποσοστό θα πρέπει να παραμείνει κάτω από 50 για τη βέλτιστη απόδοση.| +This field shows the current number of Asterisk channels that are live on the system right now. It is important to note that the number of Asterisk channels is usually much higher than the number of actual calls on a system. This field is updated once every minute.|Αυτό το πεδίο δείχνει τον τρέχοντα αριθμό των σταθμών Asterisk που ζουν με το σύστημα τώρα. Είναι σημαντικό να σημειωθεί ότι ο αριθμός των καναλιών Asterisk είναι συνήθως πολύ υψηλότερη από τον πραγματικό αριθμό των κλήσεων σε ένα σύστημα. Το πεδίο αυτό ενημερώνεται μία φορά ανά λεπτό.| +This field will show the disk usage for every partition on this server. This field is updated once every minute.|Το πεδίο αυτό θα δείξει το δίσκο χρήσης για κάθε διαμέρισμα σε αυτόν το διακομιστή. Το πεδίο αυτό ενημερώνεται μία φορά ανά λεπτό.| +ADMIN CHANGE LOG|ADMIN CHANGE LOG| +USER ADMIN CHANGE LOG|ΧΡΗΣΤΗΣ ΔΙΟΙΚΗΣΗΣ CHANGE LOG| +SECTION ADMIN CHANGE LOG|ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ CHANGE LOG| +DETAIL ADMIN CHANGE LOG|ΛΕΠΤΟΜΕΡΕΙΑ ADMIN CHANGE LOG| +Last 10000 records|Τελευταία 10.000 εγγραφές| +Changes made by|Οι αλλαγές που έγιναν από| +Record Detail|Εγγραφή Λεπτομέρειες| +Section Records|Τμήμα Εγγραφές| +Click here to see Admin chages to this record|Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το αρχείο| +Click here to see Admin chages to this campaign|Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την εκστρατεία| +Click here to see Admin chages to this list|Κάντε κλικ εδώ για να δείτε chages Διαχειριστής σε αυτήν την λίστα| +Click here to see Admin chages to this In-Group|Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages In-Group| +Click here to see Admin chages to this DID|Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages DID| +Click here to see Admin chages to this remote agent|Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το απομακρυσμένο πράκτορα| +Click here to see Admin chages to this user group|Κάντε κλικ εδώ για να δείτε σε αυτό το Admin chages ομάδα χρηστών| +Click here to see Admin chages to this script|Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το σενάριο| +Click here to see Admin chages to this filter|Κάντε κλικ εδώ για να δείτε Admin chages για αυτό το φίλτρο| +Click here to see Admin chages to this call time|Κάντε κλικ εδώ για να δείτε Admin chages φορά σε αυτή την έκκληση| +Click here to see Admin chages to this shift|Κάντε κλικ εδώ για να δείτε Admin chages την εξέλιξη αυτή| +Click here to see Admin chages to this phone alias|Κάντε κλικ εδώ για να δείτε Admin chages να άλλως αυτό το τηλέφωνο| +Click here to see Admin chages to this group alias|Κάντε κλικ εδώ για να δείτε Admin chages άλλως σε αυτή την ομάδα| +Click here to see Admin chages to this server|Κάντε κλικ εδώ για να δείτε Admin chages σε αυτόν τον διακομιστή| +Click here to see Admin chages to this conf template|Κάντε κλικ εδώ για να δείτε Admin chages conf σε αυτό το πρότυπο| +Click here to see Admin chages to this carrier|Κάντε κλικ εδώ για να δείτε Admin chages για τον εν λόγω αερομεταφορέα| +Click here to see Admin chages to the system settings|Κάντε κλικ εδώ για να δείτε Admin chages για τις ρυθμίσεις του συστήματος| +Export Reports|Εξαγωγή Εκθέσεις| +This setting if set to 1 will allow a manager to access the export call reports on the REPORTS screen. Default is 0.|Αυτή η ρύθμιση, εάν ρυθμιστεί σε 1 θα επιτρέψει την πρόσβαση του διευθυντή της εξαγωγής κλήση εκθέσεις σχετικά με τις εκθέσεις της οθόνης. Η προεπιλογή είναι 0.| +This setting if set to 1 will allow a manager to click on the download list link at the bottom of a list modification screen to export the entire contents of a list to a flat data file. Default is 0.|Αυτή η ρύθμιση, εάν ρυθμιστεί σε 1 θα επιτρέψει τη Διαχείριση κλικ για να κατεβάσετε την λίστα σύνδεσμο στο κάτω μέρος της οθόνης μια λίστα τροποποίηση για την εξαγωγή του συνόλου του περιεχομένου του καταλόγου σε μια επίπεδη αρχείο δεδομένων. Η προεπιλογή είναι 0.| +Export Calls Report|Εξαγωγή ζητεί έκθεση| +EXPORT CALLS REPORT|ΕΚΘΕΣΗ ΕΞΑΓΩΓΗΣ CALLS| +For the Export Calls Report, the following field order is used for exports|Για την εξαγωγή ζητεί έκθεση, ώστε τα ακόλουθα τομέα χρησιμοποιείται για τις εξαγωγές| +Timeclock|Ώρα ρολόι| +Logout|Αποσύνδεση| +Show Users|Δείτε Χρήστες| +Add A New User|Προσθήκη νέου χρήστη| +Search For A User|Αναζήτηση ενός χρήστη| +User Stats|Στατιστικά Χρήστη| +User Status|Κατάσταση χρήστη| +Time Sheet|Ώρα Φύλλο| +Days Status|Ημέρες Status| +Campaigns Main|Κύρια Καμπάνιες| +Statuses|Καθεστώτων| +HotKeys|HotKeys| +Lead Recycle|Μόλυβδος Ανακύκλωσης| +Auto Alt-Dial|Auto Alt-Dial| +Auto Alt Dial|Alt Auto Dial| +List Mix|Κατάλογος Mix| +Pause Codes|Παύση Κώδικες| +Basic|Βασική| +Detail|Λεπτομέρειες| +Survey|Έρευνα| +Real-Time|Real-Time| +CAMPAIGN ID|CAMPAIGN ID| +DIAL PLAN|DIAL PLAN| +DIAL METHOD|ΤΗΛΕΦΩΝΕΙΣΤΕ ΜΕΘΟΔΟΣ| +LEADS COUNT|LEADS COUNT| +LEAD ORDER|ΜΟΛΥΒΔΟΥ ORDER| +DIAL STATUSES|ΤΗΛΕΦΩΝΕΙΣΤΕ καθεστώτων| +SCRIPT ID|SCRIPT ID| +SCRIPT NAME|SCRIPT ΟΝΟΜΑ| +USER GROUP|ΟΜΑΔΑ ΧΡΗΣΤΩΝ| +GROUP NAME|Όνομα Ομάδας| +PRIORITY|ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ| +FORCE TIMECLOCK|ΙΣΧΥΟΝΤΑ TIMECLOCK| +CALLTIME ID|CALLTIME ID| +CALLTIME NAME|CALLTIME ΟΝΟΜΑ| +DEFAULT START|DEFAULT START| +DEFAULT STOP|DEFAULT STOP| +SHIFT ID|SHIFT ID| +SHIFT NAME|SHIFT ΟΝΟΜΑ| +SHIFT START|SHIFT START| +SHIFT LENGTH|SHIFT ΜΗΚΟΣ| +WEEKDAYS|Καθημερινά| +Template ID|Πρότυπο ID| +Template Name|Όνομα| +Carrier ID|Θαλαμίσκος ID| +Carrier Name|Φέρον Όνομα| +Registration|Εγγραφή| +Active|Ενεργό| +USER ID|ID ΧΡΗΣΤΗ| +FULL NAME|ΟΝΟΜΑΤΕΠΩΝΥΜΟ| +LEVEL|ΕΠΙΠΕΔΟ| +LINKS|ΣΥΝΔΕΣΜΟΙ| +TRUNKS|Μπαούλα| +HUMAN|ΑΝΘΡΩΠΙΝΗ| +ANSWER|ΑΠΑΝΤΗΣΗ| +CATEGORY|ΚΑΤΗΓΟΡΙΑ| +STATUSES IN THIS CATEGORY|Καθεστώτων σε αυτήν την κατηγορία| +Display|Εμφάνιση| +Dates|Ημερομηνίες| +PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK|Επιλέξτε μια καμπάνια ή ομάδα χρηστών ΗΜΕΡΟΜΗΝΙΑ ΚΑΙ ΩΡΑ-ΑΝΩ ΚΑΙ CLICK| +PLEASE SELECT A USER AND DATE-TIME ABOVE AND CLICK|ΠΑΡΑΚΑΛΟΥΜΕ ΕΠΙΛΕΞΤΕ ΧΡΗΣΤΗ ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ-ΩΡΑ ΚΑΙ ΑΝΩ ΚΛΙΚ| +PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK|Επιλέξτε μια καμπάνια ΗΜΕΡΟΜΗΝΙΑ ΚΑΙ ΩΡΑ-ΑΝΩ ΚΑΙ CLICK| +PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT|Επιλέξτε μια Ενδοομιλικών ΚΑΙ ΗΜΕΡΟΜΗΝΙΑ άνω ΚΛΙΚ ΚΑΙ ΑΠΟΣΤΟΛΗ| +DOWNLOAD|ΛΗΨΗ| +Users|Χρήστες| +User|Χρήστης| +Reports|Εκθέσεις| +OUTBOUND|ΕΞΕΡΧΟΜΕΝΟ| +INBOUND|Εισερχόμενα| +Server Stats and Reports|Στατιστικά Server και Εκθέσεις| +Click here to see a VDAD report for this campaign|Κάντε κλικ εδώ για να δείτε μια VDAD έκθεση για αυτή την καμπάνια| +Show DIDs|Δείτε DIDs| +Add A New DID|Προστίθεται ένα νέο DID| +Templates|Πρότυπα| +Carriers|Carriers| +Carrier Name|Φέρον Όνομα| +Click here to see all CallBack Holds in this user group|Κάντε κλικ εδώ για να δείτε όλες τις Callback Κύτος σε αυτή την ομάδα χρηστών| +Click here to see all CallBack Holds in this list|Κάντε κλικ εδώ για να δείτε όλες τις Callback Κύτος στον κατάλογο αυτό| +Click here to see a report for this inbound group|Κάντε κλικ εδώ για να δείτε μια έκθεση για αυτό το εισερχόμενο ομάδα| +Click here to Synchronize users with Vtiger|Κάντε κλικ εδώ για να Συγχρονίστε χρήστες με Vtiger| +Alert Enabled|Alert Enabled| +Change Date|Αλλαγή Ημερομηνία| +Login Date|Σύνδεση Ημερομηνία| +List Last Call Date|Κατάλογος Last Call Ημερομηνία| +Phone Code Override|Μήκη Override| +GROUP ALIAS ID|ΟΜΑΔΑ ALIAS ID| +GROUP ALIAS NAME|ΟΜΑΔΑ ψευδώνυμο| +CID NUMBER|ΑΡΙΘΜΟΣ CID| +CID NAME|CID ΟΝΟΜΑ| +PHONE ALIAS|PHONE ALIAS| +ALIAS ID|ALIAS ID| +ALIAS NAME|Ψευδώνυμο| +PHONE LOGINS LIST|ΤΗΛ. ΚΑΤΑΛΟΓΟΣ συνδέσεις| +Shift Length|Shift Μήκος| +short description of the shift|σύντομη περιγραφή της μετατόπισης| +DELETE THIS SERVER|DELETE THIS SERVER| +DELETE THIS CONFERENCE|Διαγραφή αυτής της ΣΥΝΕΔΡΙΟ| +DELETE THIS VICIDIAL CONFERENCE|Διαγραφή αυτής της VICIDIAL ΣΥΝΕΔΡΙΟ| +Install Date|Εγκαταστήστε Ημερομηνία| +Human Answer|Ανθρώπινα Απάντηση| +STATUS CATEGORIES|Κατάσταση ΚΑΤΗΓΟΡΙΕΣ| +per campaign|ανά εκστρατεία| +all campaigns|όλες τις καμπάνιες| +### START translations for 2.2.0 release ### +Delete From DNC Lists|Διαγραφή DNC Από Λίστες| +This setting if set to 1 will allow a manager to remove phone numbers from the DNC lists in the VICIDIAL system|Αυτή η ρύθμιση, εάν οριστεί σε 1 θα επιτρέψει έναν διευθυντή για την άρση των αριθμούς τηλεφώνου από τους καταλόγους DNC στο VICIDIAL σύστημα| +DNC NOT DELETED|DNC δεν διαγράφεται| +This phone number is not in the Do Not Call List|Αυτός ο αριθμός τηλεφώνου δεν είναι προς το Do πρόσκληση δεν Κατάλογος| +DNC DELETED|DNC ΔΙΑΓΡΑΦΟΝΤΑΙ| +ADD OR DELETE NUMBERS FROM THE DNC LIST|Προσθήκη ή Διαγραφή αριθμών από τον κατάλογο DNC| +Add or Delete|Προσθήκη ή Διαγραφή| +Add-Delete Number From DNC|Προσθήκη-Διαγραφή Αριθμός Από DNC| +Vtiger Search Dead Accounts|Vtiger Αναζήτηση Dead Λογαριασμών| +If Vtiger integration is enabled in the system settings then this setting will define whether deleted accounts will be searched when the agent clicks WEB FORM to search in the Vtiger system. DISABLED- deleted leads will not be searched, ASK- deleted leads will be searched and the vtiger search web page will ask the agent if they want to make the Vtiger account active, RESURRECT- will automatically make the deleted account active again and will take the agent to the account screen without delay upon clicking on WEB FORM. Default is DISABLED|Αν vtiger ολοκλήρωση είναι ενεργοποιημένη στις ρυθμίσεις του συστήματος τότε αυτή η ρύθμιση θα καθορίσει κατά πόσο διαγραμμένων λογαριασμών θα γίνει αναζήτηση όταν το πρακτορείο κλικ WEB FORM στην αναζήτηση στο σύστημα vtiger. ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ-διαγράφεται οδηγεί δεν θα γίνει αναζήτηση, ASK-διαγράφεται οδηγεί θα γίνει η αναζήτηση και η αναζήτηση vtiger ιστοσελίδα θα ζητήσει από τον πράκτορα, αν θέλουν να κάνουν το λογαριασμό vtiger ενεργό, αναστήσει-θα κάνει αυτόματα τη διαγραφή λογαριασμό ξανά ενεργός και θα λάβει τα παράγοντα στην οθόνη λογαριασμό δεν καθυστέρηση, κατόπιν κάνοντας κλικ στο Web Form. Προεπιλογή είναι ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ| +The DISPO option will create a call record for the Vtiger account without the agent needing to go to the vtiger search page through the WEB FORM|Η επιλογή DISPO θα δημιουργήσει ένα αρχείο πρόσκληση για λογαριασμό vtiger ο αντιπρόσωπος δεν χρειάζεται να πάτε στη σελίδα αναζήτησης vtiger μέσω του Web Form| +The NEW_WINDOW option will open a new window upon login to the VICIDIAL agent screen|Η επιλογή NEW_WINDOW θα ανοίξει ένα νέο παράθυρο κατά την σύνδεση με την VICIDIAL οθόνη πράκτορας| +Vtiger Status Call|Vtiger Κατάσταση Call| +If Vtiger integration is enabled in the system settings then this setting will define whether the status of the Vtiger Account will be updated with the status of the VICIDIAL call after it has been dispositioned. Default is N|Αν vtiger ολοκλήρωση είναι ενεργοποιημένη στις ρυθμίσεις του συστήματος τότε αυτή η ρύθμιση θα καθορίσει κατά πόσον το καθεστώς της vtiger λογαριασμού θα ενημερώνεται με την κατάσταση της κλήσης μετά από VICIDIAL έχει dispositioned. Προεπιλογή είναι N| +There are also 5 additional settings that will define the kind of status: sale, dnc, customer contact, not interested, unworkable|Υπάρχουν επίσης 5 επιπλέον ρυθμίσεις που θα καθορίσει το είδος της κατάστασης: πώληση, DNC, επικοινωνήστε με τον πελάτη, δεν ενδιαφέρονται, ανεφάρμοστη| +If the customer is on hold and hears this estimated hold time message, the minimum time that will be played is 15 seconds|Εάν ο πελάτης είναι σε αναμονή και ακούει αυτό το μήνυμα εκτιμώμενο χρόνο κατέχουν, ο ελάχιστος χρόνος που θα παίξει είναι 15 δευτερόλεπτα| +Email, User Code and Territory|E-mail, το χρήστη και Κωδικός Επικράτεια| +These are optional fields|Αυτά είναι προαιρετικά πεδία| +All options except for the Not Interested, Third and Fourth digit options will move on to the Survey Method call path|Όλες οι επιλογές εκτός από το δεν ενδιαφέρεται, τρίτο και τέταρτο ψηφίο επιλογές θα προχωρήσουμε στο δρόμο Survey Μέθοδος κλήση| +Survey Third Digit|Έρευνα τρίτο ψηφίο| +This allows for a third call path if the Third digit as defined in this field is pressed by the customer|Αυτό επιτρέπει για μια τρίτη διαδρομή κλήση αν το τρίτο ψηφίο, όπως ορίζεται στον εν λόγω τομέα πιέζεται από τον πελάτη| +Survey Fourth Digit|Έρευνα τέταρτο ψηφίο| +This allows for a fourth call path if the Fourth digit as defined in this field is pressed by the customer|Αυτό επιτρέπει για μια τέταρτη διαδρομή κλήση αν το τέταρτο ψηφίο, όπως ορίζεται στον εν λόγω τομέα πιέζεται από τον πελάτη| +Survey Third Audio File|Έρευνα Τρίτη Audio File| +Survey Fourth Audio File|Έρευνα Τέταρτη Audio File| +This is the third audio file to be played upon the selection by the customer of the Third Digit option|Αυτό είναι το τρίτο αρχείο ήχου που πρέπει να διαδραματίζουν κατά την επιλογή από τον πελάτη της δυνατότητας τρίτο ψηφίο| +Survey Third Status|Έρευνα Τρίτη Κατάσταση| +Survey Fourth Status|Έρευνα Τέταρτη Κατάσταση| +This is the third status used for the call upon the selection by the customer of the Third Digit option|Αυτή είναι η τρίτη κατάσταση που χρησιμοποιούνται για την κλήση από την επιλογή από τον πελάτη της δυνατότητας τρίτο ψηφίο| +Survey Third Extension|Έρευνα Τρίτη Extension| +Survey Fourth Extension|Έρευνα Τέταρτη Extension| +This is the third extension used for the call upon the selection by the customer of the Third Digit option. Default is 8300 which immediately hangs up the call after the Audio File message is played|Αυτή είναι η τρίτη επέκταση που χρησιμοποιείται για την κλήση από την επιλογή από τον πελάτη του την επιλογή τρίτο ψηφίο. Προεπιλογή είναι 8300 που κρέμεται αμέσως στην κλήση μετά το αρχείο ήχου μήνυμα παίζεται| +RANDOM: Randomly grabs lead within the statuses and lists defined|RANDOM: Τυχαία αρπάζει οδηγήσει στο καταστάσεις και κατάλογοι που ορίζονται| +UP LAST CALL TIME: Sorts by the newest local call time for the leads|LAST CALL UP TIME: Ταξινομεί από τα νεότερα τοπική ώρα πρόσκληση για την οδηγεί| +DOWN LAST CALL TIME: Sorts by the oldest local call time for the leads|ΚΑΤΩ LAST CALL TIME: Ταξινομεί από τις παλαιότερες τοπική ώρα πρόσκληση για την οδηγεί| +WARNING, we only recommend List Mix for advanced users, Please read the ViciDial Manager Manual|ΠΡΟΕΙΔΟΠΟΙΗΣΗ, προτείνουμε μόνο Κατάλογος Mix για προχωρημένους χρήστες, Παρακαλώ διαβάστε το ViciDial Manager εγχειριδίου| +Add Call Menu|Προσθήκη Call Μενού| +Copy Call Menu|Αντιγραφή Call Μενού| +New Call Menu|Νέα Πρόσκληση Μενού| +Modify Call Menu|Τροποποίηση Call Μενού| +Delete Call Menu|Διαγραφή Call Μενού| +Call Menus|Καλέστε Menus| +Menu ID|Μενού ID| +This is the ID for this step of the call menu. This will also show up as the context that is used in the dialplan for this call menu|Αυτό είναι το αναγνωριστικό για αυτό το βήμα του μενού κλήση. Αυτό επίσης θα εμφανίζεται ως το πλαίσιο που χρησιμοποιείται στην dialplan για την παρούσα πρόσκληση μενού| +Menu Name|Όνομα μενού| +This field is the descriptive name for the call menu|Το πεδίο αυτό είναι το περιγραφικό όνομα για το μενού κλήση| +Menu Prompt|Μενού Προτροπή| +This field contains the file name of the audio prompt to play at the beginning of this menu|Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου εντολών για να παίξει στην αρχή αυτού του μενού| +Menu Timeout|Μενού Timeout| +This field is where you set the timeout in seconds that the menu will wait for the caller to enter in a DTMF choice|Το πεδίο αυτό είναι όπου μπορείτε να ρυθμίσετε το χρονικό όριο σε δευτερόλεπτα ότι το μενού θα περιμένει για τον καλούντα να εισέλθει σε μια επιλογή DTMF| +Menu Timeout Prompt|Μενού Timeout Προτροπή| +This field contains the file name of the audio prompt to play when the timeout has been reached. Default is NONE to play no audio at timeout|Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου προτροπή να παίξει όταν το χρονικό όριο έχει επιτευχθεί. Προεπιλογή είναι ΚΑΝΕΝΑ να παίξει δεν ήχου σε timeout| +Menu Invalid Prompt|Μενού Άκυρα Προτροπή| +This field contains the file name of the audio prompt to play when the caller has selected an invalid option. Default is NONE to play no audio at invalid|Αυτό το πεδίο περιέχει το όνομα αρχείου του ήχου προτροπή να παίξει όταν ο καλών έχει επιλέξει μια άκυρη επιλογή. Προεπιλογή είναι ΚΑΝΕΝΑ να παίξει δεν ήχου σε άκυρο| +Menu Repeat|Επαναλάβετε μενού| +This field is where you define the number of times that the menu will play after the first time if no valid choice is made by the caller. Default is 1 to repeat the menu once|Αυτό το πεδίο όπου θα καθορίζουν τον αριθμό των φορών που το μενού θα παίξει μετά από την πρώτη στιγμή, αν δεν είναι έγκυρη επιλογή που έγινε από τον καλούντα. Προεπιλογή είναι 1 για να επαναλάβετε το μενού φορά| +Menu Time Check|Μενού Ώρα Check| +This field is where you can select whether to restrict the Call Menu access to the specific hours set up in the selected Call Time. If the Call Time is blank, this setting will be ignored. Default is 0 for disabled|Το πεδίο αυτό είναι όπου μπορείτε να επιλέξετε αν θα περιορίσει την πρόσκληση Μενού πρόσβαση στις συγκεκριμένες ώρες που έχει συσταθεί στο επιλεγμένο χρόνο εφημερίας. Εάν το χρόνο εφημερίας είναι κενή, αυτή η ρύθμιση θα πρέπει να αγνοηθεί. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες| +Call Time ID|Καλέστε Ώρα ID| +This is the Call Time ID that will be used to restrict calling times if the Menu Time Check option is enabled|Αυτή είναι η πρόσκληση Ώρα αναγνωριστικό που θα χρησιμοποιηθούν για να περιορίσεις την καλώντας φορές αν το μενού Ώρα Check επιλογή είναι ενεργοποιημένη| +Track Calls in Real-Time Report|Track καλεί σε πραγματικό χρόνο έκθεση| +This field is where you can select whether you want the call to be tracked in the Real-time screen as an incoming IVR type call. Default is 1 for active|Το πεδίο αυτό είναι όπου μπορείτε να επιλέξετε αν θέλετε την πρόσκληση να παρακολουθούνται σε πραγματικό χρόνο οθόνη ως μια εισερχόμενη κλήση τύπου IVR. Προεπιλογή είναι 1 για την ενεργό| +Option Value|Option Value| +This field is where you define the menu option, possible choices are|Αυτό το πεδίο όπου θα καθορίσει την επιλογή μενού, είναι δυνατές επιλογές| +Option Route|Επιλογή διαδρομής| +This menu contains the options for where to send the call if this option is selected|Αυτό το μενού περιέχει επιλογές για το πού να στείλει την κλήση, εφόσον επιλέγεται αυτή η δυνατότητα| +The special option TIMECHECK can be used only if you have Menu Time Check enabled and there is a Call Time defined for the Menu|Η ειδική TIMECHECK επιλογή μπορεί να χρησιμοποιηθεί μόνο αν έχετε Μενού Ώρα Check ενεργοποιημένη και υπάρχει μια πρόσκληση που έχει ορισθεί για το μενού| +Option Route Value|Επιλογή Route Αξία| +This field is where you enter the value that defines where in the selected Option Route that the call is to be directed to|Αυτό το πεδίο όπου θα εισάγετε την τιμή που καθορίζει εάν στην επιλεγμένη επιλογή Route ότι η πρόσκληση είναι να κατευθυνθεί προς| +Option Route Value Context|Επιλογή Route Αξία Πλαίσιο| +This field is optional and only used for EXTENSION Option Routes|Το πεδίο αυτό είναι προαιρετικό και χρησιμοποιείται μόνο για Διαδρομές δυνατότητα επέκτασης του πεδίου| +ADD A NEW CALL MENU|ADD μια νέα κλήση MENU| +COPY CALL MENU|COPY CALL MENU| +This menu contains the options for where to send the call if this option is selected: CALLMENU,INGROUP,DID,HANGUP,EXTENSION,PHONE. For CALLMENU, the Route Value should be the Menu ID of the Call Menu that you want the call sent to. For INGROUP, the In-Group that you want the call to be sent to needs to be selected as well as the other 5 options that need to be set to properly route a call to an Inbound Group. For DID, the Route Value needs to be the DID pattern that you want to send the call to. For HANGUP, the Route Value can be the name of an audio file to play before hanging up the call. For EXTENSION, the Route Value needs to be the dialplan extension you want to send the call to, and the Route Value Context is the context that extension is located in, if left blank the context will default to default. For PHONE, the Route Value needs to be the phone login value for the phones entry that you want to send the call to. For VOICEMAIL, the Route Value needs to be the voicemail box number, the unavailable mesage will be played. For AGI, the Route Value needs to be the agi script and any values taht need to be passed to it.|Αυτό το μενού περιέχει επιλογές για το πού να στείλει την κλήση, εφόσον επιλέγεται αυτή η δυνατότητα: CALLMENU, ingroup, DID, hangup, ΕΠΕΚΤΑΣΗ, ΤΗΛΕΦΩΝΟ. Για CALLMENU, η Route Αξία θα πρέπει να είναι το μενού αναγνωριστικό της πρόσκλησης μενού που θέλετε να αποσταλεί κλήση. Για ingroup, την ομάδα που θέλετε να καλέσετε να αποσταλούν με τις ανάγκες που πρέπει να επιλεγεί, καθώς και τις άλλες 5 επιλογές που πρέπει να τεθούν σε σωστή πορεία μιας κλήσης προς έναν Inbound ομάδα. Για DID, η Route Αξία πρέπει να είναι η DID πρότυπο που θέλετε να στείλετε την πρόσκληση με. Για hangup, η Route αξία μπορεί να είναι το όνομα ενός αρχείου ήχου για να παίξει πριν από την ανάρτηση της πρόσκλησης. Για την επέκταση, την αξία διαδρομής, πρέπει να το dialplan επέκταση που θέλετε να στείλετε την πρόσκληση προς, και η Route Αξία πλαίσιο είναι το πλαίσιο ότι η επέκταση βρίσκεται σε, αν μείνει κενό το πλαίσιο θα προεπιλογή για προεπιλογή. Για PHONE, η Route Αξία πρέπει να είναι η τιμή σύνδεσης του τηλεφώνου για την έναρξη τηλέφωνα που θέλετε να στείλετε την πρόσκληση με. Για Voicemail, η Route Αξία πρέπει να είναι η τηλεφωνητή αριθμό κουτί, το διαθέσιμο mesage θα παίξει. Για AGI, η Route Αξία πρέπει να είναι το σενάριο AGI και κάθε αξίες που πρέπει να περάσει σε αυτό.| +Option Description|Επιλογή Περιγραφή| +This field is where you can describe the option, this description will be put into the dialplan as a comment above the option|Το πεδίο αυτό είναι όπου μπορείτε να περιγράψετε την επιλογή, αυτή η περιγραφή θα πρέπει να μπει στο dialplan ως ένα σχόλιο πάνω από την επιλογή| +Source Menu|Πηγή Μενού| +CALL MENU NOT ADDED|ΠΡΟΣΚΛΗΣΗ MENU δεν προστίθενται| +Call Menu ID must be between 2 and 50 characters in length and contain no|Καλέστε Μενού ID πρέπει να είναι μεταξύ 2 και 50 χαρακτήρες και δεν περιέχουν| +CALL MENU ADDED|ΠΡΟΣΚΛΗΣΗ MENU ADDED| +CALL MENU NOT MODIFIED|ΠΡΟΣΚΛΗΣΗ μενού δεν MODIFIED| +CALL MENU MODIFIED|ΠΡΟΣΚΛΗΣΗ MENU MODIFIED| +Click here to see Admin chages to this CALL MENU|Κάντε κλικ εδώ για να δείτε Admin chages με την παρούσα πρόσκληση MENU| +DELETE THIS CALL MENU|DELETE THIS CALL MENU| +MODIFY A CALL MENU RECORD|Τροποποίηση μιας ΠΡΟΣΚΛΗΣΗ MENU RECORD| +Time Check|Ώρα Check| +No Time Check|Δεν Ώρα Check| +Realtime Tracking|Realtime Tracking| +No Realtime Tracking|Δεν Realtime Tracking| +Call Menu Options|Καλέστε Μενού Επιλογές| +Option|Επιλογή| +CALL MENU NOT DELETED|ΠΡΟΣΚΛΗΣΗ MENU δεν διαγράφεται| +CALL MENU DELETION CONFIRMATION|ΠΡΟΣΚΛΗΣΗ MENU ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ| +Click here to delete CALL MENU|Κάντε κλικ εδώ για να διαγράψετε ΠΡΟΣΚΛΗΣΗ MENU| +CALL MENU DELETION COMPLETED|ΠΡΟΣΚΛΗΣΗ MENU ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ| +CALL MENU LISTINGS|ΠΡΟΣΚΛΗΣΗ MENU LISTINGS| +CALLMENU will send the call to the defined Call Menu|CALLMENU θα αποστείλει την πρόσκληση προς την πρόσκληση που ορίζεται Μενού| +Call Menu|Καλέστε Μενού| +If CALLMENU is selected as the DID Route, then this is the Call Menu that calls will be sent to|Αν CALLMENU έχει επιλεγεί ως η DID διαδρομής, τότε αυτή είναι η πρόσκληση Μενού κλήσεις που θα σταλεί στο| +Show Call Menus|Δείτε Call Menus| +Add A New Call Menu|Προσθέστε μια νέα κλήση Μενού| +Copy Call Menu|Αντιγραφή Call Μενού| +To delete an Option, just set the Route to REMOVE and the option will be deleted when you click the SUBMIT button|Για να διαγράψετε μια επιλογή, μόνο που η διαδρομή για να αφαιρέσετε και η επιλογή θα διαγραφεί όταν κάνετε κλικ στο κουμπί ΑΠΟΣΤΟΛΗ| +Agent Only Callback Campaign Lock|Agent Μόνο Callback Καμπάνια Lock| +This option defines whether AGENTONLY callbacks are locked to the campaign that the agent originally created them under. Setting this to 1 means that the agent can only dial them from the campaign they were set under, 0 means that the agent can access them no matter what campaign they are logged into. Default is 1|Αυτή η επιλογή καθορίζει αν οι callbacks AGENTONLY κλειδώνεται στην καμπάνια που δημιούργησε ο αντιπρόσωπος τους αρχικά στο πλαίσιο. Η ρύθμιση αυτής προς 1 σημαίνει ότι ο αντιπρόσωπος μπορεί να καλέσετε τους μόνο από την εκστρατεία που είχαν καθοριστεί στο πλαίσιο, 0 σημαίνει ότι ο αντιπρόσωπος μπορεί να έχει πρόσβαση αυτά δεν έχει σημασία ποια καμπάνια είναι συνδεδεμένοι στο. Προεπιλογή είναι 1| +Central Sound Control Active|Κεντρική Sound Control Ενεργό| +This option defines whether the sound synchronization system is active across all servers. Default is 0 for inactive|Αυτή η επιλογή καθορίζει αν το ηχητικό σύστημα συγχρονισμού δραστηριοποιείται σε όλους τους servers. Προεπιλογή είναι 0 για το ανενεργό| +Sounds Web Server|Ήχοι Web Server| +This is the server name or IP address of the web server that will be handling the sound files on this system, this must match the server name or IP of the machine you are trying to access the audio_store.php webpage on or it will not work. Default is 127.0.0.1|Αυτό είναι το όνομα του διακομιστή ή τη διεύθυνση IP του web server που θα χειρίζεται τα αρχεία ήχου με αυτό το σύστημα, αυτό πρέπει να ταιριάζει με το όνομα του διακομιστή ή την IP του μηχανήματος που προσπαθείτε να αποκτήσετε πρόσβαση στο audio_store.php την ιστοσελίδα ή δεν θα λειτουργήσει . Προεπιλογή είναι 127.0.0.1| +Sounds Web Directory|Ήχοι Web Directory| +This auto-generated directory name is created at random by the system as the place that the audio store will be kept. All audio files will reside in this directory|Αυτό που δημιουργείται αυτόματα για όνομα καταλόγου δημιουργείται τυχαία από το σύστημα ως το μέρος που η ακουστική κατάστημα θα διατηρηθεί. Όλα τα μουσικά αρχεία θα διαμένουν σε αυτόν τον κατάλογο| +Audio Store|Audio Store| +Audio File to Upload|Audio αρχείο για μεταφόρτωση| +This utility allows you to upload audio files to the web server so that they can be distributed to all of the ViciDial servers in a multi-server cluster. An important note, only two audio file types will work, .wav files that are PCM 16bit 8k and .gsm files that are 8bit 8k. Please verify that your files are properly formatted before uploading them here|Αυτό το βοηθητικό πρόγραμμα σας επιτρέπει να ανεβάσετε αρχεία ήχου με τον web server έτσι ώστε να μπορούν να διανέμονται σε όλες τις ViciDial διακομιστές σε ένα πολυ-cluster server. Μια σημαντική σημείωση, μόνο δύο τύπους αρχείων ήχου θα λειτουργήσει,. Wav τα αρχεία που είναι PCM 16bit και 8k. Αρχείων GSM που είναι 8bit 8k. Παρακαλώ βεβαιωθείτε ότι τα αρχεία σας μορφοποιηθεί σωστά πριν από την αποστολή τους εδώ| +Sounds Update|Ήχοι Ενημέρωση| +If you want to force a check of the sound files on this server, and the central audio store is enabled as a system setting, then this field will allow the sounds updater to run at the next top of the minute. Any time an audio file is uploaded from the web interface this is automatically set to Y for all servers that have Asterisk active. Default is N|Αν θέλετε να ισχύει ο έλεγχος των αρχείων ήχου σε αυτόν το διακομιστή, και το κεντρικό κατάστημα ήχου είναι ενεργοποιημένη ως μια ρύθμιση συστήματος, τότε το πεδίο αυτό θα επιτρέψει την ήχους updater να τρέχει κατά την επόμενη κορυφή της λεπτό. Κάθε φορά που ένα ηχητικό αρχείο αποστέλλεται από το web interface αυτό έχει ρυθμιστεί αυτόματα στο Υ για όλους τους διακομιστές που έχουν Asterisk ενεργό. Προεπιλογή είναι N| +Active Voicemail Server|Ενεργή Voicemail Server| +In multi-server systems, this is the server that will handle all voicemail boxes. This server is also where the dial-in generated prompts will be uploaded from, the 8168 recordings|Σε πολλά συστήματα server, αυτό είναι ο διακομιστής που θα χειριστεί όλα τα τηλεφωνητή κουτιά. Αυτός ο διακομιστής είναι επίσης όταν η dial-in δημιουργείται ζητά θα φορτωθεί από το 8168 εγγραφές| +Auto Dial Limit|Auto Dial Όριο| +This is the maximum limit of the auto dial level in the campaign screen|Αυτό είναι το ανώτατο όριο του επιπέδου αυτόματη κλήση στην οθόνη εκστρατεία| +User Territories are not active on this system|Χρήστης Εδάφη δεν δραστηριοποιούνται σε αυτό το σύστημα| +User Territories|Χρήστης Εδάφη| +List All Territories:|Όλα τα Εδάφη:| +User Territories Active|Χρήστης Εδάφη Active| +This setting allows you to enable the User Territories setttings from the user modification screen. This feature was added to allow for more integration with a customized Vtiger installation but can have applications in a pure ViciDial system as well. Default is 0 for disabled|Η ρύθμιση αυτή σας επιτρέπει να ενεργοποιήσετε το χρήστη setttings Εδάφη από την οθόνη τροποποίηση χρήστη. Αυτό το χαρακτηριστικό προστέθηκε ώστε να υπάρχει μεγαλύτερη ενοποίηση με μια προσαρμοσμένη εγκατάσταση vtiger αλλά μπορεί να έχει εφαρμογές σε ένα καθαρό ViciDial συστήματος. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες| +List Territories|Εδάφη Κατάλογος| +Add Territory|Προσθήκη Επικράτεια| +Add User Territory|Προσθήκη Χρήστη Επικράτεια| +Territory|Επικράτεια| +Territory Description|Περιγραφή επικράτειας| +Territory and Territory Description must be filled in|Έδαφος και Επικράτεια Περιγραφή πρέπει να συμπληρωθεί| +there is already a territory in the system with this name|υπάρχει ήδη στο έδαφος του συστήματος με αυτό το όνομα| +Territory Added|Έδαφος Added| +Modify Territory|Τροποποίηση Επικράτεια| +Territory not found|Έδαφος δεν βρέθηκε| +This territory is not in the system with this name|Αυτό το έδαφος δεν είναι το σύστημα με αυτό το όνομα| +Territory Modified|Έδαφος Τροποποιημένο| +Territory must be filled in|Έδαφος πρέπει να συμπληρωθεί| +Territory Deleted|Έδαφος Διαγράφεται| +Delete This Territory|Διαγραφή Αυτό Επικράτεια| +Vtiger Accounts|Vtiger Λογαριασμοί| +Agents|Πράκτορες| +Territory, User and Level must be filled in|Έδαφος, χρηστών και το επίπεδο πρέπει να συμπληρωθεί| +this territory user is already in the system|αυτός ο χρήστης έδαφος είναι ήδη στο σύστημα| +User Territory Added|Χρήστης Επικράτεια Added| +this territory user is not in the system|Μέλους έδαφος δεν είναι στο σύστημα| +User Territory Modified|Χρήστη Επικράτεια Τροποποιημένο| +Territory and User must be filled in|Έδαφος και χρήστη πρέπει να συμπληρωθεί| +User Territory Deleted|Χρήστη Επικράτεια Διαγράφεται| +Vtiger Change Territory Owner|Vtiger Αλλαγή Επικράτεια Ιδιοκτήτης| +Had to add user territory|Έπρεπε να προσθέσετε έδαφος χρήστη| +Vtiger Territory Owner Changed|Vtiger Επικράτεια Ιδιοκτήτης Changed| +Records Changed|Εγγραφές Changed| +ViciDial Recording Limit|ViciDial Καταγραφή Όριο| +This field is where you set the maximum number of minutes that a call recording initiated by ViciDial can be. Default is 60 minutes|Το πεδίο αυτό είναι όπου μπορείτε να ορίσετε το μέγιστο αριθμό των λεπτών ότι μια καταγραφή τηλεφωνήματος που ViciDial μπορεί να είναι. Προεπιλογή είναι 60 λεπτά| +This is the dial plan context that the agent applications, like ViciDial, primarily use. 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. default is default|Αυτό είναι το πλαίσιο σχέδιο dial ότι οι αιτήσεις πληρωμής, όπως ViciDial, κατά κύριο λόγο χρήσης. Είναι δεδομένο ότι σε όλους τους αριθμούς κλήσης από το apps πελάτη χρησιμοποιούν αυτό το πλαίσιο γι -αυτό είναι καλή ιδέα να βεβαιωθείτε ότι αυτό είναι το πιο ευρύ πλαίσιο δυνατό. επαληθεύει με extensions.conf αρχείο πριν από την αλλαγή. προεπιλογή είναι προεπιλογή| +Phone Context|Τηλέφωνο Πλαίσιο| +This is the dial plan context that this phone will use to dial out. If you are running a call center and you do not want your agents to be able to dial out outside of the ViciDial applicaiton for example, then you would set this field to a dialplan context that does not exist, something like agent-nodial. default is default|Αυτό είναι το πλαίσιο σχέδιο dial ότι αυτό το τηλέφωνο θα χρησιμοποιήσει η κλήση. Εάν εκτελείτε ένα τηλεφωνικό κέντρο και δεν θέλετε να σας παράγοντες είναι σε θέση να καλέσετε από έξω από την ViciDial αίτηση για παράδειγμα, τότε θα δημιουργούσε αυτόν τον τομέα σε ένα πλαίσιο dialplan που δεν υπάρχει, κάτι σαν πράκτορας-nodial. προεπιλογή είναι προεπιλογή| +Use the HIDE option to completely remove the customer phone number from the agent display|Χρησιμοποιήστε την επιλογή Απόκρυψη για να καταργήσετε εντελώς τον αριθμό τηλεφώνου του πελάτη από την οθόνη πράκτορα| +Click here to see a traffic report for this DID|Κάντε κλικ εδώ για να δείτε μια έκθεση για την κίνηση αυτή DID| +Agent Time Detail|Agent Ωρα Λεπτομέρειες| +User Timeclock Detail Report|Χρήστη Timeclock Λεπτομέρειες Έκθεση| +Carrier Logging Active|Carrier Logging Active| +This setting allows you to log all hangup return codes for any outbound list dialing calls that you are placing. Default is N.|Η ρύθμιση αυτή σας επιτρέπει να συνδεθείτε όλες hangup κωδικούς επιστροφής για κάθε εξερχόμενη κλήση λίστα κλήσεων που σας διάθεση. Προεπιλογή είναι Ν.| +Drop Lockout Time|Drop Lockout Ώρα| +This is a number of hours that DROP abandon calls will be prevented from being dialed, to disable set to 0. This setting is very useful in countries like the UK where there are regulations preventing the attempted calling of customers within 72 hours of an Abandon, or DROP. Default is 0|Αυτό είναι ένας αριθμός των ωρών που DROP εγκαταλείψει κλήσεις θα πρέπει να εμποδίζεται από το να εξερχόμενες, για να απενεργοποιήσετε οριστεί σε 0. Αυτή η ρύθμιση είναι πολύ χρήσιμο σε χώρες όπως το Ηνωμένο Βασίλειο όπου υπάρχουν ρυθμίσεις που παρεμποδίζουν την απόπειρα καλώντας τους πελάτες της εντός 72 ωρών από την εγκατάλειψη, ή DROP. Προεπιλογή είναι 0| +Phone Ring Timeout|Τηλέφωνο Ring Timeout| +This is the amount of time, in seconds, that the phone will ring in the dialplan before sending the call to voicemail. Default is 60 seconds|Αυτό είναι το χρονικό διάστημα, σε δευτερόλεπτα, ότι το τηλέφωνο θα χτυπήσει στο dialplan πριν από την αποστολή της πρόσκλησης στον τηλεφωνητή. Προεπιλογή είναι 60 δευτερόλεπτα| +Allow Custom Dialplan Entries|Επιτρέψτε Custom dialplan Καταχωρήσεις| +This option allows you to enter custom dialplan lines into Call Menus. Default is 0 for inactive|Αυτή η επιλογή σας επιτρέπει να εισάγετε έθιμο dialplan γραμμές στο Call μενού. Προεπιλογή είναι 0 για το ανενεργό| +Custom Dilplan Entry|Custom Dilplan Έναρξη| +This field allows you to enter in any dialplan elements that you want for the Call Menu|Αυτό το πεδίο σας επιτρέπει να εισέρχονται σε κάθε dialplan στοιχεία που θέλετε για την πρόσκληση Μενού| +You can enter multiple propmts in this field and the other prompt fields by separating them with a pipe character|Μπορείτε να εισαγάγετε πολλές propmts σε αυτόν τον τομέα και το άλλο από την άμεση τομείς χωρίζοντάς τους με ένα χαρακτήρα σωλήνα| +Setting this field to zero 0 will mean that there will be no wait time after the prompt is played|Ρύθμιση αυτό τον τομέα με μηδέν 0 σημαίνει ότι δεν θα υπάρχει χρόνος αναμονής μετά την προτροπή παίζεται| +Conf File Secret|Conf Φάκελος Secret| +This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|Αυτό είναι το μυστικό, ή τον κωδικό πρόσβασης, για το τηλέφωνο στο IAX ή auto γουλιά-generated conf αρχείο για αυτό το τηλέφωνο. Όριο είναι 20 χαρακτήρες αλφαριθμητικό παύλα και υπογράμμισης δεκτή. Προεπιλογή είναι δοκιμή| +Tracking Group|Tracking Group| +This is the ID that you can use to track calls to this Call Menu when looking at the IVR Report. The list includes CALLMENU as the default as well as all of the In-Groups|Αυτή είναι η ταυτότητα που μπορείτε να χρησιμοποιήσετε για να παρακολουθείτε τις κλήσεις προς την παρούσα πρόσκληση Μενού όταν εξετάζεται η IVR έκθεση. Ο κατάλογος περιλαμβάνει CALLMENU ως προεπιλογή, καθώς και όλων των In-Ομάδες| +Agent Alert Filename|Agent Alert Filename| +The audio file to play to an agent to announce that a call is coming to the agent. To not use this function set this to X. Default is ding|Το αρχείο ήχου για να παίξουν σε έναν πράκτορα να ανακοινώσει ότι η πρόσκληση έρχεται να το πρακτορείο. Για να μη χρησιμοποιήσετε αυτή τη λειτουργία που αυτή να Χ. Default είναι ding| +This field as with the other audio fields in In-Groups, with the exception of the Agent Alert Filename, can have multiple audio files played if you put a pipe-separated list of audio files into the field|Το πεδίο αυτό όπως και με τα άλλα πεδία ήχου στο In-ομάδες, με εξαίρεση το γραφείο Προειδοποίησης Όνομα αρχείου, μπορεί να έχει πολλαπλά αρχεία ήχου που διαδραματίζουν αν βάλετε ένα σωλήνα διαχωρισμένων λίστα των αρχείων ήχου στο πεδίο| +No Agents No Queueing|Δεν Agents Δεν Αναμονής| +If this field is set to Y or NO_PAUSED then no calls will be put into the queue for this in-group if there are no agents logged in and the calls will go to the No Agent No Queue Action. The NO_PAUSED option will also not send the callers into the queue if there are only paused agents in the in-group. Default is N|Αν αυτό το πεδίο έχει οριστεί σε Ναι ή NO_PAUSED τότε δεν θα ζητεί να τεθεί στην ουρά για αυτό στην ομάδα, εφόσον δεν υπάρχουν παράγοντες συνδεδεμένοι και οι κλήσεις θα πάει στο γραφείο Δεν Δεν Queue δράσης. Η NO_PAUSED επιλογή δεν θα στείλει επίσης την καλούντες στην ουρά, εάν υπάρχουν μόνο σε παύση παράγοντες στην ομάδα της. Προεπιλογή είναι N| +No Agent No Queue Action|Δεν Agent Δεν Queue δράσης| +If No Agent No Queue is enabled, then this field defines where the call will go if there are no agents in the In-Group. Default is MESSAGE, this plays the sound files in the Action Value field and then hangs up|Εάν δεν Agent Δεν ουρά είναι ενεργοποιημένη, τότε το πεδίο αυτό καθορίζει, όπου η κλήση θα πάει, αν δεν υπάρχουν παράγοντες στην ομάδα της. Προεπιλογή είναι το μήνυμα, αυτό παίζει τα αρχεία ήχου στο πεδίο δράσης Value και στη συνέχεια διακόπτει| +No Agent No Queue Action Value|Δεν Agent Δεν Queue δράσης Αξία| +This is the value for the Action above. Default is|Αυτή είναι η τιμή για την παραπάνω δράση. Προεπιλογή είναι| +Quick Transfer Button|Γρήγορη Μεταφορά Button| +This option will add a Quick Transfer button to the agent screen below the Transfer-Conf button that will allow one click blind transferring of calls to the selected In-Group or number. IN_GROUP will send calls to the Default Xfer Group for this Campaign, or In-Group if there was an inbound call. The PRESET options will send the calls to the preset selected. Default is N for disabled|Η επιλογή αυτή θα προσθέσει ένα κουμπί Γρήγορη Μεταφορά στην οθόνη πράκτορα κάτω από το κουμπί Μεταφορά-Conf που θα επιτρέψουν ένα κλικ τυφλή μεταφορά των κλήσεων προς την επιλεγμένη ομάδα της ή τον αριθμό. IN_GROUP θα αποστείλει κλήσεις προς την Προεπιλογή xfer ομάδας για αυτή την καμπάνια, ή την ομάδα της, αν υπήρχε μια εισερχόμενη κλήση. Οι επιλογές PRESET θα αποστείλει τις προσκλήσεις για το προκαθορισμένο επιλεγεί. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες| +PrePopulate Transfer Preset|Μεταφορά PrePopulate Preset| +This option will fill in the Number to Dial field in the Transfer Conference frame of the agent screen if defined. Default is N for disabled|Η επιλογή αυτή θα αναγράψει τον αριθμό κλήσης με τον τομέα στο πλαίσιο διάσκεψης Μεταφορά στην οθόνη παράγοντα εάν ορίζεται. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες| +Enable TTS Integration|Ενεργοποίηση TTS Ολοκλήρωσης| +This setting allows you to enable Text To Speech integration with Cepstral. This is currently only available for outbound Survey type campaigns. Default is 0 for disabled|Η ρύθμιση αυτή σας επιτρέπει να ενεργοποιήσετε Κείμενο Προς ολοκλήρωση Ομιλία με Cepstral. Αυτό είναι προς το παρόν διαθέσιμο μόνο για το εξερχόμενο εκστρατειών τύπου Survey. Προεπιλογή είναι 0 για άτομα με ειδικές ανάγκες| +ADD NEW TTS ENTRY|Προσθήκη νέου TTS ΕΙΣΟΔΟΣ| +ADDING NEW TTS ENTRY|Adding New TTS ΕΙΣΟΔΟΣ| +MODIFY TTS ENTRY|MODIFY TTS ΕΙΣΟΔΟΥ| +DELETE TTS ENTRY|DELETE TTS ΕΙΣΟΔΟΥ| +TTS ENTRY LIST|TTS Συμμετοχές| +TEXT-TO-SPEECH(TTS) LISTINGS|Text-to-speech (TTS) LISTINGS| +Text To Speech|Text To Speech| +Show TTS Entries|Δείτε TTS Καταχωρήσεις| +Add A New TTS Entry|Προσθέστε ένα νέο TTS Έναρξη| +TTS ID|TTS ID| +TTS Name|TTS Όνομα| +TTS Text|TTS Κείμενο| +TTS ENTRY NOT ADDED|TTS ΕΙΣΟΔΟΥ δεν προστίθενται| +there is already a tts entry in the system with this ID|υπάρχει ήδη TTS εισόδου στο σύστημα με αυτό το αναγνωριστικό| +TTS ENTRY ADDED|TTS ΕΙΣΟΔΟΥ ADDED| +MODIFY A TTS RECORD|Τροποποίηση μιας TTS RECORD| +Click here to see Admin chages to this TTS entry|Κάντε κλικ εδώ για να δείτε Admin chages σε αυτή την καταχώρηση TTS| +DELETE THIS TTS ENTRY|DELETE THIS TTS ΕΙΣΟΔΟΥ| +TTS ENTRY NOT MODIFIED|TTS ΕΙΣΟΔΟΥ μη τροποποιημένες| +TTS ENTRY MODIFIED|TTS ΕΙΣΟΔΟΥ MODIFIED| +TTS ENTRY NOT DELETED|TTS ΕΙΣΟΔΟΥ δεν διαγράφεται| +TTS ENTRY DELETION CONFIRMATION|TTS ΕΙΣΟΔΟΥ ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ| +Click here to delete tts entry|Κάντε κλικ εδώ για να διαγράψετε TTS εισόδου| +This is the short name of a TTS entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 50 characters, minimum of 2 characters|Αυτή είναι η σύντομη ονομασία μιας εισόδου TTS. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε κενά ή σημεία στίξης για αυτό τον τομέα. πολύ 50 χαρακτήρες, τουλάχιστον 2 χαρακτήρες| +This is a more descriptive name of the TTS entry. This is a short summary of the TTS definition. max 100 characters, minimum of 2 characters|Αυτό είναι ένα πιο περιγραφικό όνομα της εισόδου TTS. Αυτή είναι μια σύντομη περίληψη του ορισμού TTS. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες| +This option allows you to set the TTS entry to active or inactive|Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε την είσοδο TTS με ενεργές ή αδρανείς| +This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example|Αυτό είναι το πραγματικό πεδίο Κείμενο Ομιλία δεδομένα τα οποία αποστέλλονται σε Cepstral για τη δημιουργία του αρχείου ήχου που μπορεί να διαδραματίσει στον πελάτη. μπορείτε να χρησιμοποιήσετε Σύνθεση Ομιλίας Markup Language-SSML-στον τομέα αυτό, για παράδειγμα,| +for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. Here is a list of the available variables: |για δεύτερη 1 διάλειμμα. Μπορείτε επίσης να χρησιμοποιήσετε διάφορες μεταβλητές, όπως όνομα, επώνυμο και τίτλο που ViciDial μεταβλητές όπως κάνετε σε ένα Σενάριο: - Α - first_name - Β -. Εδώ είναι μια λίστα με τις διαθέσιμες μεταβλητές:| +Multiple Campaign Drop Rate Group|Πολλαπλές Καμπάνια Drop Rate Ομάδα| +This feature allows you to set a campaign as a member of a Campaign Drop Rate Group, or a group of campaigns whose Human Answered calls and Drop calls for all campaigns in the group will be combined into a shared drop percentage, or abandon rate. This allows you to to run multiple campaigns at once and more easily control your drop rate. This is particularly useful in the UK where regulations permit this drop rate calculation method with campaign grouping for the same company even if there are several campaigns that company is running during the same day. To enable this for a campaign, just select a group from the list. There are 10 groups defined in the system by default, you can contact your system administrator to add more. Default is DISABLED|Αυτό το χαρακτηριστικό σας επιτρέπει να ορίσετε μια καμπάνια ως μέλος μιας καμπάνιας Drop Τιμή Ομάδα, ή μια ομάδα από τις καμπάνιες του Ανθρώπου Απαντήθηκε οποίων κλήσεις και κλήσεις Πτώση για όλες τις καμπάνιες της ομάδας θα πρέπει να συνδυαστούν σε ένα κοινό ποσοστό πτώσης, ή να εγκαταλείψει ρυθμό. Αυτό σας επιτρέπει να εκτελέσετε με πολλαπλές καμπάνιες ταυτόχρονα και πιο εύκολα τον έλεγχο ποσοστού πτώση σας. Αυτό είναι ιδιαίτερα χρήσιμο στο Ηνωμένο Βασίλειο, όπου κανονισμοί επιτρέπουν μείωση του ποσοστού αυτού με τη μέθοδο υπολογισμού της καμπάνιας ομάδα για την ίδια εταιρεία, ακόμη και αν υπάρχουν διάφορες καμπάνιες της εταιρείας που εκτελεί κατά τη διάρκεια της ίδιας ημέρας. Για να ενεργοποιήσετε αυτή για μια καμπάνια, απλά επιλέξτε μια ομάδα από τη λίστα. Υπάρχουν 10 ομάδες που ορίζονται στο σύστημα από προεπιλογή, μπορείτε να επικοινωνήσετε με το διαχειριστή του συστήματος για να προσθέσετε περισσότερο. Προεπιλογή είναι ΑΤΟΜΑ ΜΕ ΕΙΔΙΚΕΣ ΑΝΑΓΚΕΣ| +IMPORTANT, this is the password only for the agent web interface phone login, to change the sip.conf or iax.conf password, or secret, for this phone device you need to modify the Conf File Secret field further down on this page|ΣΗΜΑΝΤΙΚΟ, αυτό είναι το κωδικό πρόσβασης μόνο για το web interface πράκτορα σύνδεση τηλεφώνου, για να αλλάξετε τον κωδικό πρόσβασης sip.conf ή iax.conf, ή μυστική, για την εν λόγω τηλεφωνική συσκευή θα πρέπει να τροποποιήσετε το αρχείο Conf μυστικό χώρο πιο κάτω σε αυτή τη σελίδα| +Agent Status Viewable Groups|Agent Κατάσταση θέασης Ομάδες| +This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into|Αυτή είναι μια λίστα επιλογής των χρηστών Ομάδες και τις λειτουργίες του χρήστη με το οποίο τα μέλη της ομάδας αυτής ο χρήστης μπορεί να δείτε την κατάσταση καθώς και κλήσεις προς τη μεταφορά στο εσωτερικό της οθόνης πράκτορα. Η ALL-ΟΜΑΔΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα για να δείτε και τη μεταφορά κλήσεων για κάθε χρήστη του συστήματος. Η ΕΚΣΤΡΑΤΕΙΑ-ΠΡΑΚΤΟΡΕΣ επιλογή επιτρέπει στους χρήστες σε αυτή την ομάδα για να δείτε και να μεταβιβάσει τις κλήσεις σε κάθε χρήστη στην εκστρατεία που είναι συνδεδεμένοι στο| +Agent Status View Time|Agent Κατάσταση Προβολή Ώρα| +This option defines whether the agent will see the amount of time that users in their agent sidebar have been in their current status. Default is N for no or disabled|Αυτή η επιλογή καθορίζει αν ο αντιπρόσωπος θα δείτε το ποσό του χρόνου που οι χρήστες στην πλαϊνή μπάρα πράκτορας τους έχουν στην τρέχουσα κατάστασή τους. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες ή δεν| +This option allows an agent to disposition a call as CALLBK and choose the date and time at which the lead will be re-activated|Η επιλογή αυτή επιτρέπει σε έναν πράκτορα για τη διάθεσή μια κλήση όπως CALLBK και να επιλέξει την ημερομηνία και την ώρα κατά την οποία το αποτέλεσμα θα πρέπει να ενεργοποιηθεί και πάλι| +Agent View Calls in Queue|Agent κλήσεων στην ουρά| +If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE|Εάν ρυθμιστεί σε οτιδήποτε, αλλά ΚΑΝΕΝΑ, πράκτορες θα είναι σε θέση να δείτε λεπτομέρειες σχετικά με τις κλήσεις που περιμένουν στην ουρά στην οθόνη τον πράκτορά τους. Εάν ρυθμιστεί σε μια αριθμητική τιμή, οι κλήσεις που εμφανίζονται θα περιοριστεί στον αριθμό του εγγράφου. Προεπιλογή είναι ΚΑΝΕΝΑ| +View Calls in Queue Launch|Δείτε καλεί στην ουρά Launch| +This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL|Αυτή η ρύθμιση, εάν ρυθμιστεί σε AUTO θα έχει την καλεί στο πλαίσιο ουρά εμφανιστεί μετά από σύνδεση με το πρακτορείο στην οθόνη πράκτορα. Προεπιλογή είναι MANUAL| +Agent Grab Calls in Queue|Agent καλεί Πιάσε στην ουρά| +This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N|Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα επιτρέψει τον αντιπρόσωπο για να επιλέξετε την κλήση που θέλουν να λάβουν από την καλεί σε ουρά οθόνης κάνοντας κλικ σε αυτό, ενώ έχει διακοπεί. Πράκτορες θα είναι σε θέση να αρπάξει εισερχόμενες κλήσεις ή να μεταφέρονται κλήσεις, δεν εξερχόμενες κλήσεις. Προεπιλογή είναι N| +Agent Call Re-Queue Button|Agent Call Re-Queue Button| +This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N|Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα προσθέσετε ένα Re-Queue κουμπί πελατών στην οθόνη του πράκτορα, που επιτρέπει το πρακτορείο για να στείλετε την πρόσκληση σε ένα AGENTDIRECT ουρά που προορίζεται για το μόνο παράγοντα. Προεπιλογή είναι N| +Agent Pause After Each Call|Agent Παύση Μετά από κάθε πρόσκληση| +This option if set to Y will pause the agent after every call automatically. Default is N|Αυτή η επιλογή αν ρυθμιστεί σε Ναι, θα διακόψετε το πρακτορείο μετά από κάθε κλήση αυτόματα. Προεπιλογή είναι N| +Starts with the highest rank and works its way down|Ξεκινά με την υψηλότερη θέση και τα έργα του τρόπο τις| +Starts with the lowest rank and works its way up|Ξεκινά με το χαμηλότερο βαθμό και λειτουργεί το δρόμο του μέχρι| +Starts with owners beginning with Z and works its way down|Ξεκινά με τους ιδιοκτήτες που αρχίζει με Ζ και λειτουργεί επηρεάζοντας| +Starts with owners beginning with A and works its way up|Ξεκινά με τους ιδιοκτήτες που αρχίζει με Α και λειτουργεί το δρόμο του μέχρι| +No Hopper Dialing|Δεν Hopper Κλήση| +If This is enabled, the hopper will not run for this campaign. This option is only available when the dial method is set to MANUAL or INBOUND_MAN. It is recommended that you do not enable this option if you have a very large lead database, over 100,000 leads. With No Hopper Dialing, the following features do not work: lead recycling, auto-alt-dialing, list mix, list ordering with Xth NEW. If you want to use Owner Only Dialing you must have No Hopper Dialing enabled. Default is N for disabled|Αν αυτή είναι ενεργοποιημένη, η χοάνη δεν θα ισχύσει για αυτή την καμπάνια. Αυτή η επιλογή είναι διαθέσιμη μόνο όταν η μέθοδος κλήσης έχει οριστεί σε Manual ή INBOUND_MAN. Συνιστάται να μην επιτρέψει αυτή την επιλογή εάν έχετε μια πολύ μεγάλη βάση δεδομένων μολύβδου, πάνω από 100.000 οδηγεί. Δεν με Hopper κλήσης, τα ακόλουθα χαρακτηριστικά δεν λειτουργούν: οδηγήσουν ανακύκλωση, auto-alt-κλήσης, μείγμα κατάλογο, λίστα παραγγελιών με XTH ΝΕΑ. Αν θέλετε να χρησιμοποιήσετε Ιδιοκτήτης Μόνο κλήσης θα πρέπει να έχετε Δεν Hopper Κλήση ενεργοποιημένη. Προεπιλογή είναι Ν για άτομα με ειδικές ανάγκες| +Owner Only Dialing|Ιδιοκτήτης Μόνο Κλήση| +If This is enabled, the agent will only receive leads that they are within the ownership parameters for. If this is set to USER then the agent must be the user defined in the database as the owner of this lead. If this is set to TERRITORY then the owner of the lead must match the territory listed in the User Modification screen for this agent. If this is set to USER_GROUP then the owner of the lead must match the user group that the agent is a member of. For this feature to work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper Dialing must be enabled. Default is NONE for disabled|Αν αυτή είναι ενεργοποιημένη, ο αντιπρόσωπος θα λάβουν μόνο οδηγεί ότι είναι εντός των παραμέτρων για την ιδιοκτησία. Εάν αυτό έχει οριστεί στην ΧΡΗΣΤΗ τότε ο πράκτορας πρέπει να καθορίζει ο χρήστης στη βάση δεδομένων, όπως ο ιδιοκτήτης αυτού του μολύβδου. Αν τεθεί στο έδαφος τότε ο ιδιοκτήτης του μολύβδου πρέπει να ταιριάζει με το έδαφος που περιλαμβάνεται στην οθόνη του χρήστη Τροποποίηση για αυτό παράγοντα. Εάν αυτό έχει οριστεί στην USER_GROUP τότε ο ιδιοκτήτης του μολύβδου πρέπει να ταιριάζει με την ομάδα χρηστών ότι ο αντιπρόσωπος είναι μέλος της. Για αυτήν τη δυνατότητα να εργαστεί με τη μέθοδο τηλεφωνικής σύνδεσης πρέπει να οριστεί σε Manual ή INBOUND_MAN και αριθ Χόπερ κλήσης πρέπει να είναι ενεργοποιημένα. Προεπιλογή είναι ΚΑΝΕΝΑ για άτομα με ειδικές ανάγκες| +Reset Times|Reset Times| +This field allows you to put times in, separated by a dash-, that this list will be automatically reset by the system. The times must be in 24 hour format with no punctuation, for example 0800-1700 would reset the list at 8AM and 5PM every day. Default is empty|Αυτό το πεδίο σας επιτρέπει να τεθεί σε χρόνους, που χωρίζονται από μία παύλα-, ότι ο κατάλογος αυτός θα πρέπει να επαναφέρεται αυτόματα από το σύστημα. Οι χρόνοι πρέπει να είναι σε 24 ωρη μορφή που δεν στίξης, για παράδειγμα, 0800-1700 θα επαναφέρετε τη λίστα σε 8am και 5 μ.μ. κάθε μέρα. Προεπιλογή είναι άδειο| +Owner: |Ιδιοκτήτης:| +OWNERS WITHIN THIS LIST|ΙΔΙΟΚΤΗΤΕΣ Στον κατάλογο| +RANKS WITHIN THIS LIST|Βαθμοί Στον κατάλογο| +Allow Alerts|Επιτρέψτε Alerts| +This field gives you the ability to allow agent browser alerts to be enabled by the agent for when calls come into their vicidial.php session. Default is 0 for NO|Αυτό το πεδίο σας δίνει τη δυνατότητα να επιτρέψει browser πράκτορα ειδοποιήσεις για να ενεργοποιηθεί από το πρακτορείο για κλήσεις όταν έρχονται σε vicidial.php συνεδρία τους. Προεπιλογή είναι 0 για το NO| +Agent Display Dialable Leads|Agent Εμφάνιση Dialable Leads| +This option if enabled will show the number of dialable leads available in the campaign in the agent screen. This number is updated in the system once a minute and will be refreshed on the agent screen every few seconds|Αυτή η επιλογή, αν ενεργοποιηθεί, θα δείτε τον αριθμό των διαθέσιμων dialable οδηγεί στην εκστρατεία στην οθόνη παράγοντα. Ο αριθμός αυτός είναι ενημερωμένο στο σύστημα μόλις ένα λεπτό και θα ανανεώνονται στην οθόνη αντιπρόσωπος κάθε λίγα δευτερόλεπτα| +VICIDIAL Balance Rank|Υπόλοιπο VICIDIAL Rank| +This field allows you to set the order in which this server is to be used for balance dialing, if balance dialing is enabled. The server with the highest rank will be used first in placing Balance fill calls. Default is 0|Αυτό το πεδίο σας επιτρέπει να ορίσετε τη σειρά με την οποία αυτός ο διακομιστής πρέπει να χρησιμοποιείται για την κλήση ισορροπία, αν κλήση ισορροπία είναι ενεργοποιημένη. Ο server με την υψηλότερη κατάταξη θα πρέπει να χρησιμοποιείται για πρώτη φορά στην διάθεση Υπόλοιπο συμπληρώστε κλήσεις. Προεπιλογή είναι 0| +Inbound Summary Hourly Report|Εισερχόμενο Ωριαία Συνοπτική Έκθεση| +orders by the amount of time agent has been actively waiting for a call|παραγγελίες από το ποσό του χρόνου πράκτορας έχει ενεργά περιμένει μια κλήση| +Agent Script Override|Agent Σενάριο Παράκαμψη| +If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the lead is from this list. Default is not set|Αν αυτό το πεδίο έχει οριστεί, αυτό θα είναι το σενάριο ότι ο πράκτορας βλέπει στην οθόνη τους αντί του σεναρίου εκστρατεία όταν το αποτέλεσμα είναι από αυτή τη λίστα. Προεπιλογή δεν έχει οριστεί| +Music On Hold|Music On Hold| +ADD NEW MUSIC ON HOLD ENTRY|Add New Music on Hold ΕΙΣΟΔΟΥ| +ADDING NEW MUSIC ON HOLD ENTRY|Adding New Music on Hold ΕΙΣΟΔΟΥ| +MODIFY MUSIC ON HOLD ENTRY|MODIFY Music on Hold ΕΙΣΟΔΟΥ| +DELETE MUSIC ON HOLD ENTRY|DELETE Music on Hold ΕΙΣΟΔΟΥ| +MUSIC ON HOLD ENTRY LIST|Music on Hold Συμμετοχές| +We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files|Συνιστούμε φόρτωμα μόνο 16bit 8k PCM WAV αρχεία ήχου| +Music On Hold ID|Music On Hold ID| +This is the short name of a Music On Hold entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 100 characters, minimum of 2 characters|Αυτή είναι η σύντομη ονομασία Music On Hold εισόδου. Αυτό πρέπει να είναι ένα μοναδικό αναγνωριστικό. Μην χρησιμοποιείτε κενά ή σημεία στίξης για αυτό τον τομέα. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες| +Music On Hold Name|Music Hold On Όνομα| +This is a more descriptive name of the Music On Hold entry. This is a short summary of the Music On Hold context and will show as a comment in the musiconhold-vicidial.conf file. max 255 characters, minimum of 2 characters|Αυτό είναι ένα πιο περιγραφικό όνομα του Music Hold On εισόδου. Αυτή είναι μια σύντομη περίληψη του Music On Hold πλαίσιο και θα δείχνει ένα σχόλιο στην MusicOnHold-vicidial.conf αρχείο. μεγ. 255 χαρακτήρες, τουλάχιστον 2 χαρακτήρες| +This option allows you to set the Music On Hold entry to active or inactive. Inactive will remove the entry from the conf files|Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε το Music On Hold είσοδο στην ενεργό ή ανενεργό. Ανενεργό θα αφαιρέσει την είσοδο από το conf αρχεία| +Random Order|Τυχαία σειρά| +This option allows you to define the playback of the audio files in a random order. If set to N then the defined order will be used|Αυτή η επιλογή σας επιτρέπει να ορίσετε την αναπαραγωγή των αρχείων ήχου σε τυχαία σειρά. Αν οριστεί σε Ν τότε ορίζεται η διάταξη θα πρέπει να χρησιμοποιείται| +To add a new audio file to a Music On Hold entry the file must first be in the audio store, then you can select the file and click submit to add it to the file list. Music on hold is updated once per minute if there have been changes made. Any files not listed in a music on hold entry that are present in the music on hold folder will be deleted|Για να προσθέσετε ένα νέο αρχείο ήχου σε ένα Music On Hold καταχώρηση στο αρχείο πρέπει πρώτα να είναι στο κατάστημα ήχου, τότε μπορείτε να επιλέξετε το αρχείο και πατήστε Υποβολή για να το προσθέσετε στη λίστα αρχείο. Μουσική σε αναμονή ενημερώνεται μία φορά ανά λεπτό, εάν έχουν επέλθει αλλαγές. Τα αρχεία που δεν περιλαμβάνονται σε μουσική για την είσοδο κρίνει ότι η παρουσία τους στη μουσική για το φάκελο κατέχουν θα διαγραφούν| +MUSIC ON HOLD ENTRY NOT ADDED|Music on Hold ΕΙΣΟΔΟΥ δεν προστίθενται| +there is already a moh entry in the system with this ID|υπάρχει ήδη moh εισόδου στο σύστημα με αυτό το αναγνωριστικό| +MUSIC ON HOLD ENTRY ADDED|Music on Hold ΕΙΣΟΔΟΥ ADDED| +Click here to see Admin chages to this Music On Hold entry|Κάντε κλικ εδώ για να δείτε Admin chages σε αυτό το Music On Hold εισόδου| +Audio Files|Αρχεία ήχου| +Add An Audio File|Προσθέσετε ένα αρχείο ήχου| +Rank: |Rank:| +MUSIC ON HOLD ENTRY NOT MODIFIED|Music on Hold ΕΙΣΟΔΟΥ μη τροποποιημένες| +MUSIC ON HOLD ENTRY MODIFIED|Music on Hold ΕΙΣΟΔΟΥ MODIFIED| +Add A New MOH Entry|Προσθέστε ένα νέο MOH Έναρξη| +Show MOH Entries|Δείτε ΜΟΗ Καταχωρήσεις| +Active Agent Server|Ενεργή Server Agent| +Setting this option to N will prevent agents from being able to login to this server through the vicidial agent screen. This is very useful when using a phone login load balanced setup. Default is Y|Η ρύθμιση αυτής της δυνατότητας να Ν παραγόντων θα αποτρέψει από το να είναι σε θέση να συνδεθείτε σε αυτόν το διακομιστή μέσω του vicidial οθόνη παράγοντα. Αυτό είναι πολύ χρήσιμο όταν χρησιμοποιείτε ένα φορτίο σύνδεση τηλεφώνου ισορροπημένη ρύθμιση. Προεπιλογή είναι Y| +Rebuild Music On Hold|Rebuild Music On Hold| +If you want to force a rebuilding of the music on hold files or if the music on hold entries or server entries have changed then this should be set to Y. After the music on hold files have been synchronized and reloaded then this will be changed to N. Default is Y|Αν θέλετε να αναγκάσετε μια ανασυγκρότηση των αρχείων μουσικής σε κατάσταση αναμονής ή όταν η μουσική για τις εισόδους που κατέχουν ή καταχωρήσεις διακομιστή έχουν αλλάξει, τότε αυτό θα πρέπει να οριστεί σε Γ. Μετά την μουσική σε αναμονή αρχεία έχουν συγχρονιστεί και φορτώθηκε στη συνέχεια, αυτό θα αλλάξει σε Ν. Default είναι Y| +MUSIC ON HOLD ENTRY NOT DELETED|Music on Hold ΕΙΣΟΔΟΥ δεν διαγράφεται| +MUSIC ON HOLD ENTRY DELETION CONFIRMATION|Music on Hold ΕΙΣΟΔΟΥ ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ| +Click here to delete music on hold entry|Κάντε κλικ εδώ για να διαγράψετε μουσική σε αναμονή εισόδου| +MUSIC ON HOLD DELETION COMPLETED|Music on Hold ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ| +Starts with Eastern timezones and works West|Ξεκινά με την Ανατολική χρονικών ζωνών και έργα Δύση| +Starts with Western timezones and works East|Ξεκινά με τα δυτικά χρονικών ζωνών και των έργων Ανατολή| +you must select a user group|πρέπει να επιλέξετε μια ομάδα χρηστών| +Enable Second Webform|Ενεργοποίηση Δεύτερη Webform| +WaitForSilence Options|WaitForSilence Επιλογές| +If Wait For Silence is desired on calls that are detected as Answering Machines then this field has those options. There are two settings separated by a comma, the first option is how long to detect silence in milliseconds and the second option is for how many times to detect that before playing the message. Default is EMPTY for disabled. A standard value for this would be wait for 2 seconds of silence twice|Αν Περιμένετε Για σιωπή είναι επιθυμητή για κλήσεις που έχουν εντοπιστεί ως τηλεφωνητές τότε το πεδίο αυτό έχει αυτές τις επιλογές. Υπάρχουν δύο ρυθμίσεις που χωρίζονται από ένα κόμμα, η πρώτη επιλογή είναι το χρονικό διάστημα για την ανίχνευση σιωπή σε χιλιοστά του δευτερολέπτου και η δεύτερη επιλογή είναι για πόσες φορές για να ανιχνεύσει ότι πριν από την αναπαραγωγή του μηνύματος. Προεπιλογή είναι EMPTY για άτομα με ειδικές ανάγκες. Μια τυπική τιμή για αυτό θα πρέπει να περιμένετε για 2 δευτερόλεπτα της σιωπής δύο φορές| +This field is for entering the prompt to play when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this to either an audio file in the audio store or a TTS prompt if TTS is enabled on your system|Το πεδίο αυτό είναι για την εισαγωγή των εντολών για να παίζουν όταν το πρακτορείο παίρνει ένα αυτόματο τηλεφωνητή και κάνει κλικ στο κουμπί Απάντηση Μήνυμα ρούχων στο πλαίσιο διάσκεψης μεταφοράς. Πρέπει να ορίσετε αυτό είτε σε αρχείο ήχου στο ακουστικό κατάστημα ή ένα TTS προτροπή εάν TTS είναι ενεργοποιημένη στο σύστημά σας| +EXTENDED ALTERNATE PHONE NUMBERS FOR THIS LEAD|EXTENDED ALTERNATE ΤΗΛΕΦΩΝΑ ΓΙΑ ΤΟ ΠΑΡΟΝ ΜΟΛΥΒΔΟΥ| +ADD NEW VOICEMAIL BOX|Προσθήκη νέου Voicemail BOX| +ADDING NEW VOICEMAIL BOX|Adding New Voicemail BOX| +MODIFY VOICEMAIL BOX|MODIFY Voicemail BOX| +MODIFY A VOICEMAIL BOX|Τροποποίηση μιας Voicemail BOX| +DELETE VOICEMAIL BOX|DELETE Voicemail BOX| +VOICEMAIL BOXES LIST|Voicemail πλαίσια λίστας| +VOICEMAIL BOXES|Voicemail ΚΟΥΤΙΑ| +ADD NEW VOICEMAIL BOX|Προσθήκη νέου Voicemail BOX| +Voicemail ID|Voicemail ID| +This is the all numbers identifier of this mailbox. This must not be a duplicate of an existing voicemail ID or the voicemail ID of a phone on the system, minimum of 2 characters|Αυτό είναι το αναγνωριστικό αριθμό όλων των αυτήν την ταχυδρομική θυρίδα. Αυτό δεν πρέπει να είναι ένα αντίγραφο μιας υπάρχουσας τηλεφωνητή ταυτότητας ή το φωνητικό ταχυδρομείο αναγνωριστικό του τηλεφώνου για το σύστημα, τουλάχιστον 2 χαρακτήρες| +This is name associated with this voicemail box. max 100 characters, minimum of 2 characters|Αυτό είναι το όνομα που συνδέονται με αυτό το κουτί τηλεφωνητή. μεγ. 100 χαρακτήρες, τουλάχιστον 2 χαρακτήρες| +This is the password that is used to gain access to the voicemail box when dialing in to check messages max 10 characters, minimum of 2 characters|Αυτός είναι ο κωδικός που χρησιμοποιείται για να αποκτήσουν πρόσβαση στο τηλεφωνητή κουτί όταν κλήση, για να ελέγξετε μηνύματα έως 10 χαρακτήρες, τουλάχιστον 2 χαρακτήρες| +This option allows you to set the voicemail box to active or inactive. If the box is inactive you cannot leave messages on it and you cannot check messages in it|Αυτή η επιλογή σας επιτρέπει να ρυθμίσετε το τηλεφωνητή κουτί στην ενεργό ή ανενεργό. Εάν το πλαίσιο είναι ανενεργό δεν μπορείτε να αφήσετε μηνύματα για αυτό και δεν μπορείτε να ελέγξετε μηνύματα σε αυτό| +This optional setting allows you to have the voicemail messages sent to an email account, if your system is set up to send out email. If this field is empty then no emails will be sent out|Αυτή η προαιρετική ρύθμιση επιτρέπει να έχετε το τηλεφωνητή μηνύματα που αποστέλλονται σε ένα λογαριασμό ηλεκτρονικού ταχυδρομείου, αν το σύστημά σας έχει ρυθμιστεί ώστε να στείλει email. Αν αυτό το πεδίο είναι κενό τότε δεν θα είναι τα μηνύματα που αποστέλλονται| +VOICEMAIL BOX NOT ADDED|Voicemail BOX δεν προστίθενται| +there is already a voicemail box in the system with this ID|υπάρχει ήδη ένα φωνητικό κουτί στο σύστημα με αυτό το αναγνωριστικό| +there is already a phone in the system with this voicemail ID|υπάρχει ήδη ένα τηλέφωνο στο σύστημα με αυτό το μήνυμα ID| +VOICEMAIL BOX ADDED|Voicemail BOX ADDED| +VOICEMAIL BOX NOT MODIFIED|Voicemail BOX μη τροποποιημένες| +VOICEMAIL BOX MODIFIED|Voicemail BOX MODIFIED| +VOICEMAIL BOX NOT DELETED|Voicemail BOX δεν διαγράφεται| +VOICEMAIL BOX DELETION COMPLETED|Voicemail BOX ΔΙΑΓΡΑΦΗ ΟΛΟΚΛΗΡΩΜΕΝΑ| +VOICEMAIL BOX DELETION CONFIRMATION|Voicemail BOX ΔΙΑΓΡΑΦΗ ΕΠΙΒΕΒΑΙΩΣΗ| +Click here to delete voicemail box|Κάντε κλικ εδώ για να διαγράψετε τηλεφωνητή κουτί| +DELETE THIS VOICEMAIL BOX|DELETE αυτό το μήνυμα BOX| +Click here to see Admin chages to this voicemail box|Κάντε κλικ εδώ για να δείτε Admin chages σε αυτή τη θέση τηλεφωνητή| +The following fields must have data|Τα παρακάτω πεδία πρέπει να διαθέτουν στοιχεία| +Campaign CID Override|Καμπάνια CID Παράκαμψη| +If this field is set, this will override the campaign CallerID that is set for calls that are placed to leads in this list. Default is not set|Αν αυτό το πεδίο έχει οριστεί, αυτό θα υπερισχύσει η εκστρατεία CallerID που έχει οριστεί για τις κλήσεις που είναι σε θέση να οδηγεί σε αυτόν τον κατάλογο. Προεπιλογή δεν έχει οριστεί| +Answering Machine Message Override|Τηλεφωνητής Μήνυμα Παράκαμψη| +If this field is set, this will override the Answering Machine Message set in the campaign for customers in this list. Default is not set|Αν αυτό το πεδίο έχει οριστεί, αυτό θα υπερισχύσει η απάντηση Μήνυμα Machine που στην εκστρατεία για τους πελάτες σε αυτόν τον κατάλογο. Προεπιλογή δεν έχει οριστεί| +Drop Inbound Group Override|Drop Inbound Ομάδα Παράκαμψη| +If this field is set, this in-group will be used for outbound calls within this list that drop from the outbound campaign instead of the drop in-group set in the campaign detail screen. Default is not set|Αν αυτό το πεδίο έχει οριστεί, αυτή η ομάδα της θα χρησιμοποιηθεί για εξερχόμενες κλήσεις μέσα στη λίστα που πτώση από το εξερχόμενο εκστρατεία αντί για την πτώση της ομάδας που στην οθόνη λεπτομερώς εκστρατεία. Προεπιλογή δεν έχει οριστεί| +Agent Select Territories|Agent Επιλέξτε Εδάφη| +If this option is enabled and the agent belongs to at least one territory, the agent will have the option of selecting territories to dial leads from. The agent will see a list of available territories upon login and they will have the ability to go back to that territory list when paused to change their territories. For this function to work the Owner Only Dialing option must be set to TERRITORY and User Terriories must be enabled in the System Settings.|Εάν αυτή η επιλογή είναι ενεργοποιημένη και το πρακτορείο ανήκει σε μία τουλάχιστον από έδαφος, ο αντιπρόσωπος θα έχει τη δυνατότητα επιλογής των εδαφών για να καλέσετε από την οδηγεί. Ο πράκτορας θα δείτε μια λίστα των διαθέσιμων εδαφών κατά την σύνδεση και θα έχουν τη δυνατότητα να επιστρέψει στο έδαφος του εν λόγω καταλόγου, όταν σταματούσε για να αλλάξει τα εδάφη τους. Για αυτή τη λειτουργία για την εργασία του ιδιοκτήτη Μόνο Κλήση επιλογή πρέπει να οριστεί σε έδαφος και το χρήστη εδάφη πρέπει να είναι ενεργοποιημένα στο Ρυθμίσεις Συστήματος.| +Agent Choose Territories|Agent Επιλέξτε Εδάφη| +This option if set to 1 allows the user to choose the territories that they will receive calls from when they login to a MANUAL or INBOUND_MAN campaign. Otherwise the user will be set to use all of the territories that they are set to belong to in the User Territories administrative section|Αυτή η επιλογή αν οριστεί σε 1 επιτρέπει στο χρήστη να επιλέξει τις περιοχές που θα λάβουν κλήσεις από όταν συνδεθείτε με ένα εγχειρίδιο ή INBOUND_MAN καμπάνια. Αντίθετη περίπτωση ο χρήστης θα πρέπει να ρυθμιστεί να χρησιμοποιεί όλα τα εδάφη που έχουν οριστεί σε ανήκουν στο χρήστη Εδάφη διοικητική ενότητα| +The AREACODE option is just like the Y option, except it is used to also filter out an entire area code in North America from being dialed, in this case using the 201XXXXXXX entry in the DNC list would block all calls to the 201 areacode if enabled|Η επιλογή areacode είναι ακριβώς όπως η επιλογή Υ, εκτός από αυτό χρησιμοποιείται επίσης για να φιλτράρετε μια ολόκληρη κωδικό της περιοχής της Βόρειας Αμερικής από το να είναι εξερχόμενες, στην προκειμένη περίπτωση με την είσοδο 201XXXXXXX στη λίστα DNC θα μπλοκάρει όλες τις κλήσεις προς το 201 areacode αν έχει ενεργοποιηθεί| +If you have the active DNC option set to AREACODE then you can also use area code wildcard entries like this 201XXXXXXX to block all calls to the 201 areacode when enabled|Αν έχετε την ενεργό επιλογή DNC που να areacode τότε μπορείτε επίσης να χρησιμοποιήσετε καταχωρήσεις μπαλαντέρ κωδικό περιοχής όπως αυτό 201XXXXXXX να μπλοκάρει όλες τις κλήσεις προς το 201 areacode όταν ενεργοποιηθεί| +Carrier Description|Περιγραφή Carrier| +This is put in the comments of the asterisk conf files above the dialplan and account entries. Maximum 255 characters|Αυτό είναι που στα σχόλια του αστερίσκο αρχεία conf πάνω από το dialplan και εγγραφές λογαριασμό. Μέγιστο 255 χαρακτήρες| +CAMPAIGNS ALLOWING THIS IN-GROUP|ΕΚΣΤΡΑΤΕΙΕΣ οποίες καθιστούν δυνατή την ομάδα της| +This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|Αυτό είναι το μυστικό, ή τον κωδικό πρόσβασης για το διακομιστή στο IAX που δημιουργείται αυτόματα conf αρχείο για αυτό το διακομιστή σε άλλους servers. Όριο είναι 20 χαρακτήρες αλφαριθμητικό παύλα και υπογράμμισης δεκτή. Προεπιλογή είναι δοκιμή| +Delete Voicemail After Email|Διαγραφή Voicemail Μετά Email| +This optional setting allows you to have the voicemail messages deleted from the system after they have been emailed out. Default is N|Αυτή η προαιρετική ρύθμιση επιτρέπει να έχετε το τηλεφωνητή μηνύματα διαγράφονται από το σύστημα αφού έχουν ήδη αποσταλεί έξω. Προεπιλογή είναι N| +Last Campaign Call Date|Ημερομηνία τελευταίας Καμπάνια Call| +This is the last time that a call was handled by an agent logged into this campaign|Αυτή είναι η τελευταία φορά που μια κλήση αυτή γίνεται από έναν πράκτορα συνδεθεί σε αυτή την καμπάνια| +Custom User Fields|Custom χρήστη Κενά| +These five fields can be used for various purposes, and they can be populated in the web form addresses and scripts as user_custom_one and so on|Αυτές οι πέντε τομείς που μπορούν να χρησιμοποιηθούν για διάφορους σκοπούς, και μπορούν να κατοικείται σε διευθύνσεις φόρμα και σενάρια ως user_custom_one και ούτω καθεξής| +CRM Popup Login|CRM Popup Σύνδεση| +If set to Y, the CRM Popup Address is used to open a new window on agent login to this campaign. Default is N|Αν οριστεί σε Ναι, το CRM Popup Διεύθυνση χρησιμοποιείται για να ανοίξει ένα νέο παράθυρο για την σύνδεση παράγοντας σε αυτή την καμπάνια. Προεπιλογή είναι N| +CRM Popup Address|CRM Popup Διεύθυνση| +The web address of a CRM login page, it can have variables populated just like the web form address, with the VAR in the front and using --A--user_custom_one--B-- to define variables|Η διεύθυνση του CRM σελίδα σύνδεσης, μπορεί να έχει μεταβλητές πληθυσμού όπως ακριβώς και το έντυπο διεύθυνση ιστού, με τη VAR στην πρώτη και τη χρήση - Α - user_custom_one - Β - να ορίσουν μεταβλητές| +If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attempt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attempt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attempt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue, VIDPROMPT will prompt the caller for their ID number and will create a new lead record with the CallerID as the phone number and the ID as the Vendor ID, VIDPROMPTLOOKUP will attempt to lookup the ID in the entire system, VIDPROMPTLOOKUPRL will attempt to lookup the vendor ID by the ID in only one specified list, VIDPROMPTLOOKUPRC will attempt to lookup the vendor ID by the ID in all of the lists that belong to the specified campaign. Default is CID|Αν IN_GROUP έχει επιλεγεί ως η DID διαδρομής, τότε αυτή είναι η επεξεργασία κλήσεων μέθοδος που χρησιμοποιείται για αυτές τις κλήσεις. CID θα προσθέσει ένα νέο ρεκόρ με αποτέλεσμα κάθε κλήση με το CallerID όπως ο αριθμός τηλεφώνου, CIDLOOKUP θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε ολόκληρο το σύστημα, CIDLOOKUPRL θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε μία μόνο που περιλαμβάνεται στον κατάλογο , CIDLOOKUPRC θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από το CallerID σε όλες τις λίστες που ανήκουν στη συγκεκριμένη εκστρατεία, ΠΙΟ ΚΟΝΤΑ έχει καθοριστεί για VICIDIAL Closer κλήσεις, ANI θα προσθέσει ένα νέο ρεκόρ με αποτέλεσμα κάθε κλήση με την ANI όπως ο αριθμός τηλεφώνου, ANILOOKUP θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από την ANI σε ολόκληρο το σύστημα, ANILOOKUPRL θα προσπαθήσει να συμβούλευση τον αριθμό τηλεφώνου από την ANI σε μία μόνο που περιλαμβάνεται στον κατάλογο, θα XDIGITID προτροπή του καλούντος για ένα Χ οκταψήφιο κωδικό πριν από την κλήση θα τεθεί σε την ουρά, VIDPROMPT θα οδηγήσουν το καλούντος για τον αριθμό ταυτότητας τους και θα δημιουργήσει ένα νέο ρεκόρ με αποτέλεσμα η CallerID όπως τον αριθμό τηλεφώνου και το αναγνωριστικό ως Vendor ID, VIDPROMPTLOOKUP θα προσπαθήσει να την αναζήτηση ταυτότητας σε ολόκληρο το σύστημα, VIDPROMPTLOOKUPRL θα επιχειρήσει να αναζήτησης του προμηθευτή, το αναγνωριστικό της ταυτότητας σε ένα μόνο που περιλαμβάνεται στον κατάλογο, VIDPROMPTLOOKUPRC θα προσπαθήσουν να τον πωλητή αναζήτηση ταυτότητας από το αναγνωριστικό σε όλες τις λίστες που ανήκουν στη συγκεκριμένη καμπάνια. Προεπιλογή είναι CID| +UNIFIED_CONTACT- This option will use the beta Vtiger 5.1.0 feature to search by phone number and bring up a search page in Vtiger|UNIFIED_CONTACT-Η επιλογή αυτή θα χρησιμοποιήσει το βήτα vtiger 5.1.0 χαρακτηριστικό για την αναζήτηση με βάση τον αριθμό τηλεφώνου και να εμφανιστεί μια σελίδα αναζήτησης στο vtiger| +Timer Action|Timer Δράση| +This feature allows you to trigger actions after a certain amount of time. the D1 and D2 DIAL options will launch a call to the Transfer Conference Number presets and send them to the agent session, this is usually used for simple IVR validation AGI applications or just to play a pre-recorded message. WEBFORM will open the web form address. MESSAGE_ONLY will simply display the message that is in the field below. NONE will disable this feature and is the default|Αυτό το χαρακτηριστικό σας επιτρέπει να προκαλέσει ενέργειες μετά από ένα ορισμένο χρονικό διάστημα. το Δ1 και Δ2 επιλογές DIAL θα δημοσιεύσει μια πρόσκληση για τη μεταφορά Διάσκεψη προεπιλογές Αριθμός και τους διαβιβάζουν στον πράκτορα της συνόδου, αυτή χρησιμοποιείται συνήθως για απλές εφαρμογές IVR AGI επικύρωση ή απλά να παίξει ένα προ-ηχογραφημένο μήνυμα. WEBFORM θα ανοίξει τη διεύθυνση φόρμα. MESSAGE_ONLY θα εμφανίσει απλά το μήνυμα ότι είναι στο πεδίο παρακάτω. ΚΑΝΕΝΑ θα απενεργοποιήσετε αυτήν τη δυνατότητα και είναι η προεπιλογή| +Timer Action Message|Timer Δράση Μήνυμα| +This is the message that appears on the agent screen at the time the Timer Action is triggered|Αυτό είναι το μήνυμα που εμφανίζεται στην οθόνη παράγοντα κατά τη στιγμή της Timer δράσης ενεργοποιείται| +Timer Action Seconds|Timer Δευτερόλεπτα Δράση| +This is the amount of time after the call is connected to the customer that the Timer Action is triggered. Default is -1 which is also inactive|Αυτό είναι το χρονικό διάστημα μετά την κλήση συνδέεται με τον πελάτη ότι το χρονόμετρο δράσης ενεργοποιείται. Προεπιλογή είναι -1 που είναι και ανενεργός| +This setting will override the Campaign settings|Αυτή η ρύθμιση θα παρακάμπτουν τις ρυθμίσεις καμπάνιας| +Start Call URL|Ξεκινήστε Call URL| +This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. The Start URL does not work for Manual dial calls. Default is blank|Αυτό το web διεύθυνση URL δεν θεωρείται από το πρακτορείο, αλλά καλείται κάθε φορά που μια κλήση στέλνεται σε έναν πράκτορα, εφόσον είναι πυκνοκατοικημένη. Χρησιμοποιεί τις ίδιες μεταβλητές όπως τα πεδία scripts φόρμα και. Αυτή η διεύθυνση URL δεν μπορεί να αποτελέσει σχετική διαδρομή. Ξεκινήστε το URL δεν λειτουργεί για το εγχειρίδιο κλήσεις μέσω τηλεφώνου. Προεπιλογή είναι κενό| +Dispo Call URL|Καλέστε dispo URL| +This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank|Αυτό το web διεύθυνση URL δεν θεωρείται από το πρακτορείο, αλλά καλείται κάθε φορά που μια κλήση είναι dispositioned από έναν πράκτορα αν είναι πυκνοκατοικημένη. Χρησιμοποιεί τις ίδιες μεταβλητές όπως τα πεδία scripts φόρμα και. dispo και talk_time είναι οι μεταβλητές που μπορείτε να χρησιμοποιήσετε για να ανακτήσετε το πρακτορείο καθορισμένες διάταξη για την πρόσκληση και τον πραγματικό χρόνο ομιλίας σε δευτερόλεπτα της κλήσης. Αυτή η διεύθυνση URL δεν μπορεί να αποτελέσει σχετική διαδρομή. Προεπιλογή είναι κενό| +Xfer-Conf Number Override|Xfer-Conf Αριθμός Παράκαμψη| +These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank|Αυτά τα πέντε πεδία επιτρέπουν για να παρακάμψετε τις προεπιλογές αριθμό Μεταφορά Διάσκεψη όταν το αποτέλεσμα είναι από αυτή τη λίστα. Προεπιλογή είναι κενό| +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. If you want to allow Consultative Transfers, a fronter to a closer, have the agent use the CONSULTATIVE checkbox, which does not work for third party non-ViciDial consultative calls. For those just have the agent click the Dial With Customer button. Then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER, for instance if you want to do a call to a special IVR you have set to extension 83900 you would put AXFER83900 in the number-to-dial field|Αυτές οι τέσσερις τομείς που επιτρέπουν σε σας για να έχει δύο σύνολα μεταφοράς Διάσκεψης και DTMF προεπιλογές. Όταν η κλήση ή καμπάνια είναι φορτωμένο, το σενάριο vicidial.php θα δείτε δύο κουμπιά για τη μεταφορά-πλαίσιο διάσκεψης και αυτόματη συμπλήρωση του αριθμού-να-κλήσης και την αποστολή-DTMF πεδία όταν πιέζεται. Αν θέλετε να επιτρέπεται η Συμβουλευτική Μεταφορές, ένα fronter σε μια στενότερη, έχουν το πρακτορείο χρήση του ΣΥΜΒΟΥΛΕΥΤΙΚΗ κουτάκι, το οποίο δεν λειτουργεί για το τρίτο κόμμα μη-ViciDial συμβουλευτικό κλήσεις. Για όσους έχουν απλά ένα κλικ πράκτορας της κλήσης Με κουμπί πελατών. Στη συνέχεια, ο αντιπρόσωπος μπορεί απλώς ΑΔΕΙΕΣ-3way-CALL και να προχωρήσουμε στην επόμενη κλήση τους. Αν θέλετε να επιτρέπεται Τυφλών μεταφορές των πελατών σε ένα χειρόγραφο VICIDIAL AGI για υλοτομία ή ένα IVR, τότε AXFER θέση στον αριθμό-να-dial πεδίο. Μπορείτε επίσης να καθορίσετε μια επέκταση έθιμο μετά την AXFER, για παράδειγμα, αν θέλετε να κάνετε μια κλήση σε μια ειδική IVR που έχετε θέσει για την επέκταση 83900 που θα τεθεί AXFER83900 στον αριθμό-να-πεδίο dial| diff --git a/agc_2-X/branches/agc_2.2.0/translations/es_language.txt b/agc_2-X/branches/agc_2.2.0/translations/es_language.txt new file mode 100644 index 00000000..3036bc10 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/es_language.txt @@ -0,0 +1,491 @@ +# es_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: ./config.pl --language=es +# current languages in the file: +# - English - (en) no alterations +# - Spanish - (es) first column +***LANGUAGES*** +en-English|es-Español| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"ENE"| +"FEB"|"FEB"| +"MAR"|"MAR"| +"APR"|"ABR"| +"MAY"|"PUE"| +"JUN"|"JUN"| +"JLY"|"JUL"| +"AUG"|"AGO"| +"SEP"|"SEP"| +"OCT"|"OCT"| +"NOV"|"NOV"| +"DEC"|"DIC"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Inglés| +Spanish|Español| +French|Francés| +German|Alemán| +Italian|Italiano| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK_es.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF_es.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON_es.gif| +agc_live_call_OFF.gif|agc_live_call_OFF_es.gif| +agc_live_call_ON.gif|agc_live_call_ON_es.gif| +agc_tab_active_lines.gif|agc_tab_active_lines_es.gif| +agc_tab_conferences.gif|agc_tab_conferences_es.gif| +agc_tab_main.gif|agc_tab_main_es.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber_es.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF_es.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall_es.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_es.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_es.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall_es.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_es.gif| +vdc_LB_pause.gif|vdc_LB_pause_es.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF_es.gif| +vdc_LB_resume.gif|vdc_LB_resume_es.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_es.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording_es.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording_es.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf_es.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_es.gif| +vdc_LB_webform.gif|vdc_LB_webform_es.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_es.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer_es.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF_es.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer_es.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF_es.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines_es.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF_es.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline_es.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF_es.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser_es.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF_es.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall_es.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF_es.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser_es.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF_es.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial_es.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF_es.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_es.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_es.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf_es.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF_es.gif| +vdc_XB_header.gif|vdc_XB_header_es.gif| +vdc_XB_number.gif|vdc_XB_number_es.gif| +vdc_XB_channel.gif|vdc_XB_channel_es.gif| +vdc_XB_seconds.gif|vdc_XB_seconds_es.gif| +vdc_tab_script.gif|vdc_tab_script_es.gif| +You have now logged out. Thank you|Usted ahora ha registrado hacia fuera. Gracias| +astGUIclient web-client VERSION|versión astGUIclient del tela-cliente| +astGUIclient web client|web client astGUIclient| +VICIDIAL web client|web client VICIDIAL| +VICIDIAL web-client version|versión web client VICIDIAL| +You can only monitor Zap channels|Usted puede supervisa solamente Zap los canales| +Stop Record|Pare la grabación| +you are logged into this phone|su teléfono| +Back to Main Window|Volver a la pantalla principal| +LIVE CALLS ON THIS PHONE|LLAMADAS ACTIVAS EN ESTE TELÉFONO| +LIVE CALLS IN THIS CONFERENCE|LLAMADAS ACTIVAS EN ESTA CONFERENCIA| +LIVE CALL TRANSFER|TRANSFERIR LLAMADA ACTIVA| +CLIENT CHANNEL|CANAL CLIENTE| +REMOTE CHANNEL|CANAL REMOTO| +CLICK HERE TO LOG IN AGAIN|PINCHA AQUÍ PARA ENTRAR OTRA VEZ| +ACTIVE DISPLAY PAUSED|DISPLAY ACTIVO PAUSADO| +Main Panel|Pantalla Principal| +Active Lines Panel|Pantalla Lineas Activas| +Conferences Panel|Pantalla de Conferencias| +Check Voicemail|Comprobar buzón de voz| +Live Call|Llamada Activa| +Hangup Trunk|Colgar Trunk| +Hijack Trunk|Capturar Trunk| +Listen Trunk|Escuchar Trunk| +Active Local Menu|Menú Local Activa| +Hangup Local|Colgar Local| +Hijack Local|Capturar Local| +Listen Local|Escuchar Local| +Channel to be transferred|Canal que va a ser transferido| +Extensions Menu|Menú Extensiones| +Send to selected extension|Envíe a la extensión seleccionada| +Send to selected vmail box|Enviar al buzón de voz seleccionada| +Send to this number|Envíe 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| +Send my channel too|Enviar mi canal también| +Conferences Menu|Menú de Conferencias| +LOCAL Extensions Dial|Marcar a Extensiones LOCALES| +Phone calling from|Teléfono llamando desde| +Call selected extension|Llamar extensión seleccionada| +Call selected vmail box|Llamar buzón de voz seleccionado| +LOCAL DIAL EXTENSIONS|MARCAR EXTENSIONES LOCALES| +OUTBOUND CALLS|LLAMADAS SALIENTES| +INBOUND CALLS|LLAMADAS ENTRANTES| +Refresh rate|Actualizar la tarifa| +MANUAL DIAL|MARCADO MANUAL| +CALL DATE\/TIME|FECHA/HORA DE LA LLAMADA| +LOCAL HANGUP|Colgar Local| +PARKED CALLS|LLAMADAS APARCADAS| +PARKED BY|APARCAR POR| +PARKED TIME|TIEMPO EN PARKING| +Registered to|Registrado a| +Enter Conference|Entrar en la conferencia| +Dial From Conf|Marcar desde la Conf| +Active Extensions|Extensiones Activas| +Outside Lines|Líneas de salida| +Local Extensions|Extensiones Locales| +Data Goes Here|Los Datos Van Aquí| +Trunk Action|Acciones en Trunk| +Local Action|Acción Local| +Conferences List|Lista De las Conferencias| +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| +List Display|Mostrar Listas| +Live Extensions|Extensiones Activas| +Busy Extensions|Extensiones Ocupadas| +Outside Lines|Extensiones Salientes| +script runtime|tiempo de ejecución del Script| +Call Log Display|Motrar el registro de llamadas| +is not valid|No es válido| +or protocol|o protocolo| +Conf Extension Check|Comprobar la Extensión de Conf| +has been registered to|Ha sido registrado para| +LIVE INBOUND CALL|LLAMADA DE ENTRADA ACTIVA| +Number Dialed|Número Marcado| +SEND TO MY VOICEMAIL|ENVIAR A MI BUZÓN DE VOZ| +Live Extension Check|Comprobar Extensión Activa| +Manager Send|Enviar al Manager| +command not inserted|comando no insertado| +command sent for|comando enviado a| +One of these variables|Una de estas variables| +must be greater than 2 characters|debe ser mayor de 2 caracteres| +must be greater than 14 characters|debe ser mayor de 14 caracteres| +must be set|debe ser fijado| +not sent|no enviado| +Cannot find empty conference|No puede encontrar conferencia vacía| +is not live|no está activo| +RECORDING WILL LAST UP TO 60 MINUTES|LA GRABACIÓN DURARÁ HASTA 60 MINUTOS| +Parked Calls Display|Mostrar Llamadas Aparcadas| +Database Query Script|Database Query Script| +Group Choice|Opción Del Grupo| +has been registered to user|se ha registrado al usuario| +HOPPER EMPTY|TOLVA VACÍA| +LOG NOT ENTERED|REGISTRO NO ENTRADO| +has been changed to|se ha cambiado a| +information has been updated|La información ha sido actualizada| +is now in status|ahora está en estado| +Voicemail Check|Comprobar el buzón de voz| +voicemail box|caja del buzón de voz| +Re-Login|Conexión Otra Vez| +User Password|Contraseña Del Usuario| +User Login|Conexión Del Usuario| +Phone Login|Conexión Del Teléfono| +Phone Password|Contraseña Del Teléfono| +Campaign not active, please try again|La campaña no está activa, intentelo otra vez, por favor| +Login incorrect, please try again|La conexión incorrecta, intentelo otra vez, por favor| +Campaign Login|Conexión en la Campaña| +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| +leads left to call in hopper|Leads a la izquierda para llamar en Hopper| +CAMPAIGN CUSTOM PARKING|PARKING PERSONALIZADO DE LA CAMPAÑA| +CAMPAIGN DEFAULT PARKING|PARKING POR DEFECTO DE LA CAMPAñA| +CAMPAIGN CUSTOM WEB FORM|FORMULARIO WEB PERSONALIZADO DE LA CAMPAÑA| +CAMPAIGN DEFAULT WEB FORM|FORMULARIO WEB POR DEFECTO DE LA CAMPAÑA| +CAMPAIGN ALLOWS CLOSERS|LA CAMPAÑA PERMITE CLOSERS| +CAMPAIGN ALLOWS NO CLOSERS|LA CAMPAÑA NO PERMITE CLOSERS| +USING PREVIOUS MEETME ROOM|USAR EL SITIO ANTERIOR DE MEETME| +USING NEW MEETME ROOM|USAR EL NUEVO SITIO DE MEETME| +old QUEUE and INCALL reverted list|vieja COLA y lista invertida INCALL| +old QUEUE and INCALL reverted hopper|vieja COLA y tolva invertida INCALL| +old vicidial_live_agents records cleared|viejos expedientes de los vicidial_live_agents despejados| +campaign is set to auto_dial_level|la campaña se fija al auto_dial_level| +new vicidial_live_agents record inserted|Insertadas las grabaciones nueva de los vicidial_live_agents| +campaign is set to manual dial|la campaña está configurada con marcaje manual| +Sorry, there are no leads in the hopper for this campaign|Lo siento, no hay leads en el hopper de esta campaña| +Dial Next Number|Marcar el Siguiente Número| +LIVE CALLS IN YOUR SESSION|LLAMADAS ACTIVAS EN SU SESIÓN| +Stop Recording|Parar La Grabación| +Start Recording|Comenzar La Grabación| +Transfer number must have more than 1 digit|El número de la transferencia debe tener más de 1 dígito| +Grab Parked Call|Capturar llamada en Parking| +Park Call|Aparcar llamada| +Waiting for Ring|Espeerar al Ring| +Called 3rd party|Terceros llamados| +LEAVE 3-WAY CALL|ABANDONAR LLAMADA 3-WAY| +Dial With Customer|Marcar Con El Cliente| +Park Customer Dial|Dial Del Cliente Del Parque| +Hangup Xfer Line|Colgar Línea Xfer | +Hangup Both Lines|Colgar Ambas Líneas| +Hangup Customer|Colgar al Cliente| +Transfer - Conference|Transferencia - Conferencia| +LOCAL CLOSER|CLOSER LOCAL| +INTERNAL CLOSER|CLOSER INTERNO| +Dial Blind Transfer|Marcar Blind Transfer| +Dial timed out, contact your system administrator|Tiempo de espera superado, pongase en contacto con su administrador de sistema| +No more leads in the hopper for campaign|No más Leads en el hopper de la campaña| +Web Form|Formulario Web| +You Must Select a Disposition|Usted debe seleccionar una disposición| +GROUPS NOT SELECTED|GRUPOS NO SELECCIONADOS| +SELECTED GROUPS|GRUPOS SELECCIONADOS| +You cannot log out during a Dial attempt|Usted no puede salir durante un intento de marcado| +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| +STILL A LIVE CALL! Hang it up then you can log out|TODAVÍA UNA LLAMADA ACTIVA! Colgar y luego salir| +Hide conference call channel information|Ocultar la información del canal Conferencia| +Show conference call channel information|Mostrar la información del canal Conferencia| +Logged in as User|Usuario| +Noone is in your session|Nadie está en su sesión| +Customer has hung up|El cliente ha colgado| +End-of-call Disposition Selection|selección de la disposición del End-of-call| +CLOSER INBOUND GROUP SELECTION|SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER| +Closer Inbound Group Selection|SELECCIÓN DEL GRUPO DE ENTRANTES CLOSER| +BLENDED CALLING|BLENDED CALLING| +outbound activated|Salientes activdas| +Preview the Lead then|Mostrar el Lead entonces| +Lead was not reverted, there was an error|El Lead no fue invertido, hubo un error| +call was not placed, there was an error|la llamada no fue atendida, hubo un error| +Number to call|Número a llamar| +Customer Information|Información Del Cliente| +Lead Dispositioned As|Lead 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| +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| +Disposition Hot Keys|Teclas de acceso rápido a la Disposición| +Cust Time|Tiempo| +RECORD ID|GRABACIÓN ID| +RECORDING FILE|GRABANDO ARCHIVO| +HOT KEYS ACTIVE|TECLAS ACCESO RÁPIDO ACTIVAS| +HOT KEYS INACTIVE|TECLAS ACCESO RÁPIDO INACTIVAS| +DIAL OVERRIDE|INVALIDACIÓN DEL MARCADO| +SKIP LEAD|SALTAR LEAD| +DIAL LEAD|MARCAR LEAD| +LEAD PREVIEW|MOSTRAR LEAD| +PAUSE AGENT DIALING|PARAR LA LLAMADA| +DISPOSITION CALL|DISPOSITION CALL| + session ID| sesión ID| + to campaign| a la campaña| +Select a CallBack Date|Seleccione una fecha del servicio repetido| + maximize | maximice | + minimize | reduzca al mínimo | +You must choose a date|Usted debe elegir una fecha| +Select a Date Below|Seleccione una fecha abajo| +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| +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í| +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| +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| +Enter information below for the new lead you wish to call|Incorpore la información abajo para el nuevo plomo que usted desea llamar| +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| +Note: all new manual dial leads will go into list 999|Nota: todos los nuevos plomos manuales del dial entrarán la lista 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|USTED NO TIENE PERMISOS DE TRANSFERIR LLAMADAS| +will be added to the beginning of this number|será agregado al principio de este número| +This is usually a 1 in the USA-Canada|Éste es generalmente un 1 en los U.S.A. y el Canadá| +NEW MANUAL DIAL LEAD FOR|NUEVO PLOMO MANUAL DEL DIAL PARA| +Finish and Disposition Call|Final y llamada de la disposición| +10 digits max - digits only|máximo de 10 dígitos - dígitos solamente| +Note: a dial prefix of|Nota: un prefijo del dial de| +Hangup Again|Retraso Otra vez| +Go Back|Vaya Detrás| +Call Agent Again|Agente De la Llamada Otra vez| +MY CALLBACK ONLY|MI SERVICIO REPETIDO SOLAMENTE| +NO ACTIVE CALLBACKS|NO SERVICIOS REPETIDOS ACTIVOS| +ACTIVE CALLBACKS|SERVICIOS REPETIDOS ACTIVOS| +CALLBACKS FOR AGENT|SERVICIOS REPETIDOS PARA EL AGENTE| +Dial Code:|Dial Código:| +Dial Override|Invalidación Del Dial| +digits only please|los dígitos satisfacen solamente| +Dial Now|Dial Ahora| +CB Comments|Comentarios de los CBES| +Title|Título| +Your Status|Su Estado| + STATUS| ESTADO| +RESET|REINICIAR| +CLEAR FORM|REINICIAR| +SUBMIT|ENVIAR| +Incoming|Entrante| +Calling|Llamando| +Called|Llamado| +Campaign|Campaña| +Status|Estado| +Inserted|Insertado| + seconds|segundos| +HELP|AYUDA| +Login|Conexión| +User|Usuario| +Password|Contraseña| +VERSION|VERSIÓN| +BUILD|CONSTRUCCION| +Server|Servidor| +RECORD|GRABACIÓN| +HANGUP|COLGAR| +>XFER|>TRANSFERENCIA| +PARK|PARKING| +IN-NUMBER|NÚMERO-ENTRANTE| +NUMBER|NÚMERO| +LENGTH|LONGITUD| +CALLERID|LLAMADORID| +CallerID|LlamadorID| + CALL| LLAMADA| +PICKUP|CAPTURAR| +CONFERENCE|CONFERENCIA| +Refresh|Recarga| +Send DTMF|Enviar DTMF| +ORDER|ORDEN| + on | en | +LOGOUT|SALIR| +Channel|Canal| +Extensions|Extensiones| +Conferences|Conferencias| +Conference|Conferencia| +Recording|GRABANDO| +Record|Grabar| +Welcome|Bienvenido| +VOICEMAIL|BUZÓN DE VOZ| + NEW| NUEVO| + OLD| VIEJO| +STOP|PARADA| +START|COMIENZO| + Pause | Pausa | +Resume|Comienzo| +Faster|Más rápido| +Slower|Más lento| +Initializing|Inizializando| +Invalid|Inválido| +Username|Nombre del usuario| +CUSTOM|A MEDIDA| +Notes|Notas| +First|Primero| +MI: |IM: | +Last|Último| +Address|Dirección| +City|Ciudad| +State|Estado| +PostCode|CódigoPostal| +Province|Provincia| +Vendor ID|VendedorID| +DialCode|Código Del Dial| +Alt. Phone|Teléfono Alt| +Show|Demostración| +Email|Email| +Comments|Comentarios| +REFRESH|ACTUALIZAR| +ALT PHONE DIAL|TELÉFONO DEL ALT| +MAIN PHONE|TELÉFONO PRINCIPAL| +ALT PHONE|TELÉFONO ALT| +ADDRESS3|DIRECCIÓN3| +FINISH LEAD|ACABAR LEAD| +Dial Alt Phone Number|Marcar Número de teléfono Alt| +Phone|Teléfono| + DIAL| DIAL| +SUBMIT FAVORITES CHANGES - requires logout|SOMETA LOS CAMBIOS de los FAVORITOS - requiere registro de estado de la máquina| +BACK TO MAIN WINDOW - ignore changes made|DE NUEVO A VENTANA PRINCIPAL - no haga caso de los cambios realizados| +AVAILABLE EXTENSIONS|EXTENSIONES DISPONIBLES| + edit| corrija| + FAVORITES| FAVORITOS| +### END translation phrases through 1.1.11 release ### +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 teléfono en el sistema antes de insertarlo como nuevo plomo| +Finish Wrapup and Move On|Final Wrapup y movimiento encendido| +seconds remaining in wrapup|segundos restantes en wrapup| +Call Wrapup:|Llamada Wrapup:| +### months of the year for CallBack date select screen ### +January|Enero| +Frebruary|Febrero| +March|Marcha| +April|Abril| +May|Puede| +June|Junio| +July|Julio| +August|Agosto| +September|Septiembre| +October|Octubre| +November|Noviembre| +December|Diciembre| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Información Anterior Del Servicio repetido| +Last Call: |Llamada Pasada:| +CallBack: |Servicio repetido:| +Agent: |Agente:| +Comments: |Comentarios:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|VOLUMEN| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|DIAL RÁPIDO| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|USTED DEBE INTRODUCIR Un NÚMERO De TELÉFONO Y Un CÓDIGO Del DIALPARA UTILIZAR El DIAL RÁPIDO| + SELECT A PAUSE CODE :| SELECCIONE Un CÓDIGO De la PAUSA :| +ENTER A PAUSE CODE|INTRODUZCA Un CÓDIGO De la PAUSA| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|USTED DEBE SER DETENIDO BREVEMENTE PARA INTRODUCIR Un CÓDIGO De la PAUSA EN AUTO-DIAL MODE| +Your session has been disabled|Se ha inhabilitado su sesión| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Género:| +Date of Birth: |Fecha de nacimiento:| +YOU MUST BE PAUSED TO CHANGE GROUPS|USTED DEBE CAMBIAR pausa GRUPOS| +Calls in Queue:|Pide, en la cola:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|El usuario y la contraseña que ha introducido no son activos en el sistema| +Please try again|Por favor, inténtelo de nuevo| +You cannot log in or out within 30 seconds of your last login or logout|No puede iniciar sesión o en un plazo de 30 segundos de su última conexión o desconexión| +You have now logged-out|Ya ha iniciado la sesión en| +You logged out at |Que en la sesión| +Amount of time you were logged-in: |Cantidad de tiempo que se han registrado en:| +ERROR: timeclock log entry already made: |ERROR: timeclock entrada de registro ya realizados:| +BACK to Agent Login Screen|VOLVER a la pantalla de Inicio| +BACK to Administration|VOLVER a la Administración| +BACK to Welcome Screen|VOLVER a la pantalla de bienvenida| +Time since you were last logged-in: |Vez desde que se conectó por última vez en:| +You last logged-out at: |-Usted se conectó por última vez en:| +Click LOGIN below to log-in|Haga clic en Conectarse a continuación para acceder al sistema| +Amount of time you have been logged-in: |Cantidad de tiempo que se han registrado en:| +You logged-in at:|Iniciado la sesión en que usted en:| +Click LOGOUT below to log-out|Haga clic a continuación para acceder LOGOUT-out| +Undefined|Indefinido| +This phone number is not in the campaign lists|Este número de teléfono no está en la campaña de las listas| +Unspecified error|Error no especificado| +Extended Alt Phone Information: |Teléfono de Información ampliado Alt:| +ALT DIAL NUMBER:|ALT DIAL NÚMERO:| +Phone Code and Number:|Código y número de teléfono:| +Notes: |Notas:| +Active: |Activo:| +Alt Count: |Alt Cuenta:| +Change this phone number to INACTIVE|Cambiar este número de teléfono a INACTIVAS| +Change this phone number to ACTIVE|Cambiar este número de teléfono a ACTIVO| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|USTED DEBE ENTRAR A LA PRIMERA TIMECLOCK| +There is a time synchronization problem with your system, please tell your system administrator|Hay un problema de sincronización de tiempo con su sistema, por favor, dígale a su administrador del sistema| +Preview Call|Vista previa de llamada| +SELECT A GROUP ALIAS|SELECCIONAR UN GRUPO DE ALIAS| +Group Alias Selection|Grupo de Selección de Alias| +Click Here to Choose a Group Alias|Haga clic aquí para escoger un grupo de alias| +Group Alias|Grupo de Alias| +ERROR: There are no Shifts enabled for your user group|ERROR: No hay cambios habilitado para su grupo de usuarios| +ERROR: You are not allowed to log in outside of your shift|ERROR: No se le permite acceder fuera de su turno| +MANAGER OVERRIDE|GERENTE DE TRANSFERENCIA| +Your Shift is over or has changed, you have been logged out of your session|Su cambio es de más o ha cambiado, se le ha cerrado la sesión de su período de sesiones| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|No está autorizado para marcar en sesiones de otro agente| +QUICK TRANSFER|TRANSFERENCIA RÁPIDA| +Other Agents Status|Otros agentes de Estado| +Available Agents Transfer|Agentes disponibles de transferencia| +Show Calls In Queue|Pide Mostrar la cola| +Calls In Queue|Llamadas en cola| +Hide Calls In Queue|Ocultar las llamadas en cola| +Calls in Queue View Disabled for this campaign|Ver las llamadas en cola de personas de movilidad reducida para esta campaña| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|USTED DEBE SER DETENIDO GRAB a las llamadas en cola| +Manager |Director| +has selected your in-group choices|ha seleccionado en las opciones de su grupo| +CONSULTATIVE|CONSULTIVO| +Close Message|Cerrar Mensaje| +TIMER NOTIFICATION|NOTIFICACIÓN TIMER| diff --git a/agc_2-X/branches/agc_2.2.0/translations/es_language_admin.txt b/agc_2-X/branches/agc_2.2.0/translations/es_language_admin.txt new file mode 100644 index 00000000..317c70b4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/es_language_admin.txt @@ -0,0 +1,2485 @@ +# es_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 +***LANGUAGES*** +en-English|es-Español| +***FILES*** +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 +vicidial|listloader.pl|1 +vicidial|listloader_rowdisplay.pl|1 +vicidial|listloader_super.pl|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_timeonVDADallSUMMARY.php|0 +vicidial|inbound_popup.php|0 +vicidial|AST_inboundEXTstats.php|0 +vicidial|welcome.php|0 +vicidial|admin_header.php|0 +vicidial|vicidial_sales_viewer.php|0 +vicidial|user_group_bulk_change.php|0 +vicidial|AST_agent_status_detail.php|0 +vicidial|AST_agent_days_detail.php|0 +vicidial|AST_CLOSER_service_level.php|0 +vicidial|AST_IVRfilter.php|0 +vicidial|AST_IVRstats.php|0 +vicidial|call_report_export.php|0 +vicidial|fcstats.php|0 +vicidial|list_download.php|0 +vicidial|non_agent_api.php|1 +vicidial|timeclock_edit.php|0 +vicidial|timeclock_report.php|0 +vicidial|timeclock_status.php|0 +vicidial|vtiger_search.php|1 +vicidial|vtiger_user.php|1 +vicidial|welcome_demo.php|1 +vicidial|welcome_languages.php|1 +vicidial|vicidial_admin_web_logo.gif|1 +vicidial|vicidial_admin_web_logo_small.gif|1 +vicidial|user_territories.php|1 +vicidial|audio_store.php|1 +vicidial|AST_agent_time_detail.php|1 +vicidial|AST_agent_timeclock_detail.php|1 +vicidial|AST_OUTBOUNDsummary_interval.php|1 +vicidial|call_report_export.php|1 +vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 +***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| +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 - 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.| +Dial Plan 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 Dial plan - 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| +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 - 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| +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 - 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| +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 - este campo es para la dirección IP del teléfono si es un teléfono de VOZIP. Este es un campo opcional| +Computer IP address -<\/B> This field is for the user's computer IP address. This is an optional field|Dirección IP del ordenador - este campo es para la dirección IP del ordenador del usuario. Es un campo opcional| +Server IP -<\/B> This menu is where you select which server the phone is active on|IP del servidor - Este menú es donde usted selecciona en que servidor está el teléfono activo| +Login -<\/B> The login used for the phone user to get to admin functions|Login - El nombre de usuario del teléfono para conseguir los permisos de admin| +Password -<\/B> The password used for the phone user to get to admin functions|Contraseña - la contraseña usada por el usuario del teléfono para conseguir los permisos de admin| +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 - 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| +Active Account -<\/B> Whether the phone is active to put it in the list in the GUI client|Cuenta activa - si el teléfono está activado ponerla en la lista del cliente del GUI| +Phone Type -<\/B> Purely for administrative notes|Tipo de teléfono - solamente para información administrativas| +Full Name -<\/B> Used by the GUIclient in the list of active phones|Nombre completo - usado por el GUIclient en la lista de teléfonos activos| +Company -<\/B> Purely for administrative notes|Compañía - solamente para las notas administrativas| +Picture -<\/B> Not yet Implemented|Cuadro - todavía no puesto en ejecución| +New Messages -<\/B> Number of new voicemail messages for this phone on the Asterisk server|Nuevos mensajes - número de los nuevos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco| +Old Messages -<\/B> Number of old voicemail messages for this phone on the Asterisk server|Viejos mensajes - número de los viejos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco| +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 - 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| +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 - 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| +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 - É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| +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 - É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| +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 - é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 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 - é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 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 - é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| +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 - Ésta es la extensión del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto| +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 - É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| +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 - É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 - é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 dial plan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records|Prefijo del monitor - éste es el prefijo dial plan 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 dial plan 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 - Ésta es la extensión dial plan 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 dial plan extension going to check your voicemail. verify with extensions.conf file before changing|VMAIL Exten principal - Ésta es la extensión dial plan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar| +VMAIL Dump Exten -<\/B> This is the dial plan 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 - éste es el prefijo dial plan 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 dial plan 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 - éste es el contexto dial plan 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 - É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 - é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)| +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 - 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 - é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 - Ú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 - É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| +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 hang up '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 - 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| +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 - 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| +Conferencing -<\/B> Set to true to allow user to start conference calls with upto six external lines|Comunicación - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas| +Admin Hang Up -<\/B> Set to true to allow user to be able to hang up any line at will through astGUIclient. Good idea only to enable this for Admin users|Retraso del Admin - 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| +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 - 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| +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 - 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| +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 hang up. Usually enabled for all|Parque de llamada - 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| +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 - 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| +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 - fije para verdad para registrar muchas acciones del uso astGUIclient a un archivo de texto en la computadora del usuario| +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ó - 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| +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 - 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| +VMail Button -<\/B> Set to true to display the VOICEMAIL button and the messages count display on astGUIclient|Botón de VMail - fije para verdad para exhibir el botón de VOICEMAIL y los mensajes cuentan la exhibición en 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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +DBX Server -<\/B> The MySQL database server that this user should be connecting to|Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar| +DBX Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco| +DBX User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Usuario de DBX - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron| +DBX Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234| +DBX Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306| +DBY Server -<\/B> The MySQL database server that this user should be connecting to|Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar| +DBY Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco| +DBY User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Usuario de DBY - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron| +DBY Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234| +DBY Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 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)| +Average Call Length(seconds) for DROP Calls|Llamada media Length(seconds) para las llamadas de la GOTA| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS|GRÁFICO EN 15 INCREMENTOS MINUCIOSOS DE LLAMADAS TOTALES| +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| +Click here to see what leads are in the hopper right now|Chasque aquí para ver qué plomos están en la tolva ahora| +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| +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| +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 - 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| +Server Description -<\/B> The field where you use a small phrase to describe the Asterisk server|Descripción del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco| +Server IP Address -<\/B> The field where you put the Network IP address of the Asterisk server|IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco| +Active -<\/B> Set whether the Asterisk server is active or inactive|Activo - fije si el servidor del asterisco es activo o inactivo| +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 - 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| +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 - 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| +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 - é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 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 - é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| +Manager User -<\/B> The username or login used to connect genericly to the Asterisk server manager. Default is 'cron'|Usuario del encargado - el username o la conexión conectaba genericly con el encargado del servidor del asterisco. El defecto es 'cron'| +Manager Secret -<\/B> The secret or password used to connect genericly to the Asterisk server manager. Default is '1234'|Secreto del encargado - el secreto o la contraseña conectaba genericly con el encargado del servidor del asterisco. El defecto es '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 - 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| +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 - 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| +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 - 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| +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ó - 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'| +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 - 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'| +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 - 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'| +Default Context -<\/B> The default dial plan context used for scripts that operate for this server. Default is 'default'|Contexto del defecto - el contexto dial plan del defecto usado para las escrituras que funcionan para este servidor. El defecto es 'defecto'| +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 - 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| +Password -<\/B> This field is where you put the VICIDIAL users password. Must be at least 2 characters in length|Contraseña - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud| +Full Name -<\/B> This field is where you put the VICIDIAL users full name. Must be at least 2 characters in length|Nombre completo - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - esta opción si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema| +Delete Lists -<\/B> This option if set to 1 allows the user to delete vicidial lists from the system|La cancelación enumera - esta opción si el sistema a 1 permite que el usuario suprima listas vicidial del sistema| +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 - esta opción si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema| +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 - esta opción si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema| +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 - esta opción si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema| +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 - 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| +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 - 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| +AGC Admin Access -<\/B> This option if set to 1 allows the user to login to the astGUIclient admin pages|Acceso de AGC Admin - esta opción si el sistema a 1 permite a usuario a la conexión a las páginas astGUIclient del admin| +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 - esta opción si el sistema a 1 permite que el usuario suprima entradas del teléfono en las páginas astGUIclient del admin| +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 - 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| +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 - É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| +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 - é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| +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 - é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| +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----

    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?

    This would read----

    Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?|Texto de la escritura - 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?| +Active -<\/B> This determines whether this script can be selected to be used by a campaign|Activo - 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 - Ú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| +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 - Ésta es la descripción de la campaña, debe estar entre 6 y 40 caracteres en longitud| +Active -<\/B> This is where you set the campaign to Active or Inactive. If Inactive, noone can log into it|Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en él| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +List Order - 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 - Este menú es donde usted selecciona cómo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo| +select the first leads loaded into the vicidial_list table|seleccione los primeros plomos cargados en la tabla del vicidial_list| +select the last leads loaded into the vicidial_list table|seleccione los plomos pasados cargados en la tabla del 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 - é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| +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 - 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| +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 - 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| +Next Agent Call -<\/B> This determines which agent receives the next call that is available|Llamada siguiente del agente - esto se determina qué agente recibe la llamada siguiente que está disponible| +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| +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 - 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| +Voicemail -<\/B> If defined, calls that would normally DROP would instead be directed to this voicemail box to hear and leave a message|Voicemail - 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| +Dial Timeout -<\/B> If defined, calls that would normally hang up 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 - 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| +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 dial plan - extensions.conf|Prefijo del dial - 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 dial plan - 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. 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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 dial plan - extensions.conf - and make sure it plays an audio file then hangs up|Mensaje del contestador automático - 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 dial plan - extensions.conf - y se cerciora de que juega un archivo audio después que cuelga para arriba| +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 - Ú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| +List Name -<\/B> This is the description of the list, it must be between 2 and 20 characters in length|Nombre de la lista - Ésta es la descripción de la lista, debe estar entre 2 y 20 caracteres en longitud| +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 - Ésta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente| +Active -<\/B> This defines whether the list is to be dialed on or not|Activo - esto define si la lista debe ser marcada encendido o no| +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 - 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| +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 - Ú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| +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 - Ésta es la descripción del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios| +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 - é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| +Active -<\/B> This determines whether this group show up in the selection box when a VICIDIAL agent logs in|Activo - esto se determina si este grupo demuestra para arriba en la caja de la selección cuando un agente de VICIDIAL entra| +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 - É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| +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 - 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| +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 - 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| +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 - É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| +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 - 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| +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 - Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea| +External Extension -<\/B> This is the number that you want the calls forwarded to. Make sure that it is a full dial plan 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 - éste es el número que usted desea las llamadas remitidas a. Cerciórese de que sea un número dial plan 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| +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 - 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| +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 - 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| +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 - 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| +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| +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| +Through the use of custom campaign hot keys, agents that use the vicidial web-client can hang up and disposition calls just by pressing a single key on their keyboard|Con el uso de los hot keys 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| +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 - é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| +Group Name -<\/B> This is the description of the vicidial user group max of 40 characters|Nombre de grupo - Ésta es la descripción del máximo vicidial del grupo de usuario de 40 caracteres| +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 - 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| +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 - 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| +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 - 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| +Hot Keys Active -<\/B> This option if set to 1 allows the user to use the Hot Keys quick-dispositioning function in|Hot Keys activo - esta opción si el sistema a 1 permite que el usuario utilice la función ra'pida-dispositioning de Hot Keys adentro| +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 - 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| +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 - 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| +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 - é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| +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 - É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| +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 - é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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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| +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 - 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 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 - 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| +Delete Filters -<\/B> This option allows the user to be able to delete vicidial lead filters from the system|La cancelación se filtra - esta opción permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema| +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 - esta opción si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php| +Closer Default Blended -<\/B> This option simply defaults the Blended checkbox on a CLOSER login screen|Un defecto más cercano mezclado - esta opción omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexión| +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| +Filter ID must be at least 2 characters in length|La identificación del filtro debe ser por lo menos 2 caracteres en longitud| +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| +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:| +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:| +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 Transfers|Vicidial transfiere| +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| +VICIDIAL LIST LOADER FUNCTIONALITY|FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE 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| +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| +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| +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| +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)| +Phone Number - must be at least 8 digits long|Número de teléfono - debe ser por lo menos 8 dígitos de largo| +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| +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| +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| +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| +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| +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| +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| +status name must be between 2 and 30 characters in length|el nombre del estado debe estar entre 2 y 30 caracteres en longitud| +CAMPAIGN HOT KEY NOT ADDED - there is already a campaign hot key in the system with this hot key|CAMPAÚA HOT KEY NO AGREGADA - hay ya una campaña hot key en el sistema con este hot key| +CAMPAIGN HOT KEY NOT ADDED - Please go back and look at the data you entered|CAMPAÚA HOT KEY NO AGREGADA - vaya por favor detrás y mire los datos que usted incorporó| +hot key must be a single character between 1 and 9|el hot key debe ser un solo carácter entre 1 y 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| +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| +List name must be at least 2 characters in length|El nombre de la lista debe ser por lo menos 2 caracteres en longitud| +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| +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| +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| +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| +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| +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| +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| +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| +RESETTING CAMPAIGN LEAD HOPPER|REAJUSTE DE LA TOLVA DEL PLOMO DE LA CAMPAÚA| +Wait 1 minute before dialing next number|Espera 1 minuto antes de marcar el número siguiente| +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| +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| +CUSTOM CAMPAIGN STATUS DELETED|ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO| +CAMPAIGN HOT KEY NOT MODIFIED - Please go back and look at the data you entered|CAMPAÚA HOT KEY NO MODIFICADA - vaya por favor detrás y mire los datos que usted incorporó| +the campaign hot key needs to be at least 1 characters in length|el hot key de la campaña necesita ser por lo menos los caracteres 1 en longitud| +CUSTOM CAMPAIGN HOT KEY DELETED|LA CAMPAÚA DE ENCARGO HOT KEY 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| +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| +REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER|QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA| +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| +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| +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| +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 - 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| +Server IP -<\/B> The menu where you select the Asterisk server that this conference will be on|IP del servidor - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido| +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| +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| +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| +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| +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| +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 Delete Phones|La cancelación de AGC telefona| +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| +Transfer-Conf DTMF|Transfiera -Conf DTMF| +Transfer-Conf Number|Transfiera -Conf El Número| +Hot Keys Active|Hot Keys Activo| +Modify Leads|Modifique Los Plomos| +Change Agent Campaign|Cambie La Campaña Del Agente| +Agent Choose Ingroups|El Agente Elige Ingroups| +CallBacks Within Campaign|Servicios repetidos Dentro De la Campaña| +CallBacks Within List|Servicios repetidos Dentro De la Lista| +CallBacks Within Agent|Servicios repetidos Dentro Del Agente| +Phone extension|Extensión del teléfono| +Dial Plan Number|Número De Dial plan| +digits only|Solamente dígitos| +Voicemail Box|Buzón de voz| +Outbound CallerID|CallerID De salida| +Phone IP address|Dirección IP del teléfono| +Computer IP address|Dirección IP del ordenador| +Server IP Address|Dirección IP del Servidor| +Server IP|IP Del Servidor| +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| +Do NOT Adjust for DST|No ajustar para el DST| +VALUE=SUBMIT|VALUE=ENVIAR| +ADD A NEW SERVER|AGREGAR Un SERVIDOR NUEVO| +Server ID|ID Del Servidor| +Server Description|Descripción Del Servidor| +Active: |Activo: | +Asterisk Version|Versión De 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 Default Pass|Contraseña por defecto de VICIDIAL| +VICIDIAL Default Campaign|Campaña por defecto de 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 Park File|Archivo para música del parking de VICIDIAL| +Monitor Prefix|Prefijo al monitorizar| +Recording Exten|Exten de Grabación| +VMailMain Exten|Exten de VmailMain| +VMailDump Exten|Exten de VmaiDumpl| +Exten Context|Contexto De Exten| +DTMFSend Channel|Canal de envío del DTMF| +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| +VICIDIAL Default URL|URL por defecto de VICIDIAL| +Call Logging|Call Logging| +User Switching|Cambio de Usuario| +Conferencing|Conferencias| +Admin Hang Up|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| +Queue Enabled|Colas permitidas| +CallerID Popup|Ventana emergente del CallerID| +VMail Button|Botón Vmail| +Fast Refresh|Refresco rápido| +Fast Refresh Rate|Refresco rápido de la tarifa| +Persistant MySQL|Persistant 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 Database|Base de datos de DBX| +DBX User|Usuario de DBX| +DBX Pass|Contraseña de DBX| +DBX Port|Puerto de DBX| +DBY Server|Servidor de DBY| +DBY Database|Base de datos de DBY| +DBY User|Usuario de DBY| +DBY Pass|Contraseña de DBY| +DBY Port|Puerto de DBY| +MODIFY A SERVER RECORD|MODIFICAR UN REGISTRO DEL SERVIDOR| +Max VICIDIAL Trunks|Máx. Trunks en VICIDIAL| +Telnet Host|Host Del Telnet| +Telnet Port|Puerto Del 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 | +VICIDIAL AD extension|Extensión del AD de VICIDIAL| +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 Hot Key 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| + TABLE| TABLA| +First Name|Nombre| +Middle Initial|Inicial Media| +Last Name|Apellidos| +Address Line 1|Dirección, línea 1| +Address Line 2|Dirección, línea 2| +Address Line 3|Dirección, línea 3| +City|Ciudad| +State - limited to 2 characters|Estado - limitado a 2 caracteres| +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| +CLOSER REPORT|INFORME 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| +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| +Hopper Level|Nivel Del 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| +List Name|Nombre De la Lista| +Campaign|Campaña| +Group ID|ID De Grupo| +Group Name|Nombre De Grupo| +Group Color|Color Del Grupo| +Fronter Display|Mostrar Fronter| +User ID Start|Comienzo Del ID del usuario| +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 HOT KEY 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| +Force Reset of Hopper|Forzar el Reinicio del Hopper| +Dial Timeout|Tiempo de espera Del Dial| +Dial Prefix|Prefijo al marcar| +Campaign CallerID|CallerID de la Campaña| +Campaign VDAD exten|Exten VDAD de La campaña| +Campaign Rec exten|Extensión de Rec de la campaña| +Campaign Recording|Grabación De la Campaña| +Campaign Rec Filename|Nombre de fichero De Rec De la Campaña| +LISTS WITHIN THIS CAMPAIGN|LISTAS DENTRO DE ESTA CAMPAÑA| +LIST ID|ID DE LA LISTA| +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| +>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| +CUSTOM HOT KEYS WITHIN THIS CAMPAIGN|PERSONALIZAR ACCEDOS DIRECTOS PARA ESTA CAMPAÑA| +>HOT KEY<|>ACCESO DIRECTO<| +ADD NEW CUSTOM CAMPAIGN HOT KEY|AÑADIR ACCESO DIRECTO A LA CAMPAÑA| +Hot key: |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| +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| +dial plan number dialed to reach agents|número del dial plan 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| +Live Current Hopper List|Live Current Hopper List| +Total leads in hopper right now|Total de Leads en el hopper ahora mismo| +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:| +Average Length for DROP Calls in seconds: |Longitud media para las llamadas DROP en segundos: | +Total NA calls -Busy,Disconnect,BTvoicemail: |Llamadas sin Respuesta - ocupado, desconexión,..: | +Average Call Length for NA Calls in seconds: |Longitud media para las Llamadas sin Respuesta en segundos: | +---------- 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| +Over 10 minutes on call|Sobre 10 minutos en llamada| + 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| +>EVENT <|>EVENTO<| +> CAMPAIGN<|> CAMPAÑA<| +CAMPAIGN: |CAMPAÑA: | +LAST 50 CALLS|ÚLTIMAS 50 LLAMADAS| +VICIDIAL REMOTE: Call Disposition|REMOTE VICIDIAL: Disposición De la Llamada| +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| +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| +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:| +>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| +Auto-dial Closer Stats|Estadísticas de Auto-dial en CLOSER| +VICIDIAL REMOTE AGENTS|VICIDIAL, AGENTES REMOTOS| +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 ### +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 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|seguro puerto mensaje - 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 dial plan extension that the desired Safe Harbor audio file is located at on your server|seguro puerto Exten - este ser dial plan 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 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 dial plan extension that the desired Dropped call audio file is located at on your server|Gota Exten - ésta es la extensión dial plan 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 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 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 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 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 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 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 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 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 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| +Wrap Up 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 Wrap Up - 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| +Wrap Up Message -<\/B> This is a campaign-specific message to be displayed on the wrap up screen if wrap up seconds is set|Mensaje de Wrap up - 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| +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 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 porlo menos 2 caracteres en longitud| +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| +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 laLlamada| +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|TIEMPO DE LA LLAMADA MODIFICADO| +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 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|Regla Del Estado Quitada| +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|TIEMPO DE LA LLAMADA DEL ESTADO AGREGADO| +CALL TIME ADDED|TIEMPO DE LA LLAMADA AGREGADO| +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|_ MODIFICAR Uno ESTADO LLAMAR TIEMPO| +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|_ Estado Llamar Tiempo Nombre| +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|_ LLAMAR TIEMPO CANCELADURA TERMINAR| +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|_ 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| +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| +Wrap Up Seconds:|Segundos De Wrap Up:| +Wrap Up Message:|Mensaje De Wrap Up:| +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| +Real-Time Screen|Pantalla En tiempo real| +Allowable 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|Grupos de entrada permisibles - Para campañas MÁS CERCANAS solamente. Aquí es donde usted selecciona a grupos de entrada que usted quisiera que los agentes en esta campaña MÁS CERCANA pudieran tomar llamadas de. Es importante que las campañas de entrada-de salida MEZCLADAS seleccionen solamente a los grupos de entrada que se utilizan para los agentes en esta campaña. Las llamadas que vienen en los grupos de entrada seleccionados aquí serán contadas como llamadas activas para una campaña mezclada incluso si todos los agentes en la campaña no se entran para recibir llamadas de todos esos grupos de entrada seleccionados| +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 - 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 - 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 - 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 - 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 - 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| +If you want to allow Consultative Transfers, a fronter to a closer, you can place CXFER as one of the number-to-dial presets and the proper dial string will be sent to do a Local Consultative Transfer, then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER or CXFER, for instance if you want to do Internal Consultative transfers instead of Local you would put CXFER90009 in the number-to-dial field|Si usted desea permitir transferencias consultivas, un fronter a unmás cercano, usted puede colocar CXFER pues uno de lasprecolocaciones del nu'mero-a-dial y del dial string apropiado seráenviado para hacer una transferencia consultiva local, entonces lalata LEAVE-3WAY-CALL justo del agente y movimiento encendido a sullamada siguiente. Si usted desea permitir transferencias ocultas declientes a una escritura de VICIDIAL AGI para registrar o un IVR,entonces coloque AXFER en el campo del nu'mero-a-dial. Usted puedetambién especificar una extensión de encargo después del AXFER odel CXFER, por ejemplo si usted desea hacer transferencias consultivasinternas en vez de local que usted pondría CXFER90009 en el campo delnu'mero-a-dial| +System Performance -<\/B> Setting this option to Y will enable logging of system performance stats for the server machine including system load, system processes and Asterisk channels in use. Default is N|Funcionamiento del sistema - fijar esta opción a Y permitirá laregistración del stats del funcionamiento del sistema para lamáquina del servidor incluyendo carga de sistema, procesos delsistema y canales del asterisco en uso. El defecto es N| +Server Logs -<\/B> Setting this option to Y will enable logging of all VICIDIAL related scripts to their text log files. Setting this to N will stop writing logs to files for these processes, also the screen logging of asterisk will be disabled if this is set to N when Asterisk is started. Default is Y|Registros del servidor - fijar esta opción a Y permitirá laregistración de todas las escrituras relacionadas VICIDIAL a susficheros de diario del texto. Fijar esto a N parará registros de laescritura a los archivos para estos procesos, también laregistración de la pantalla del asterisco será lisiado si esto sefija a N cuando se comienza el asterisco. El defecto es Y| +AGI Output -<\/B> Setting this option to NONE will disable output from all VICIDIAL related AGI scripts. Setting this to STDERR will send the AGI output to the Asterisk CLI. Setting this to FILE will send the output to a file in the logs directory. Setting this to BOTH will send output to both the Asterisk CLI and a log file. Default is FILE|AGI hecho salir - fijar esta opción a NINGUNOS inhabilitará salidade todas las escrituras relacionadas VICIDIAL de AGI. Fijar esto aSTDERR enviará el AGI hecho salir al asterisco CLI. Fijar esto alARCHIVO enviará la salida a un archivo en el directorio de losregistros. Fijar esto a AMBOS enviará salida al asterisco CLI y a unfichero de diario. El defecto es ARCHIVO| +Recording Delay -<\/B> For ALLCALLS and ALLFORCE recording only. This setting will delay the starting of the recording on all calls for the number of seconds specified in this field. Default is 0|La registración retrasa - para la grabación de ALLCALLS y deALLFORCE solamente. Esta voluntad del ajuste retrasa comenzar de lagrabación en todas las llamadas para el número de los segundosespecificados en este campo. El defecto es 0| +Omit Phone Code -<\/B> This field allows you to leave out the phone_code field while dialing within VICIDIAL. For instance if you are dialing in the UK from the UK you would have 44 in as your phone_code field for all leads, but you just want to dial 10 digits in your dial plan extensions.conf to place calls instead of 44 then 10 digits. Default is N|Omita el código del teléfono - este campo permite que usted dejehacia fuera el campo del phone_code mientras que marca dentro deVICIDIAL. Por ejemplo si usted está marcando en el Reino Unido delReino Unido usted tendría 44 adentro como su campo del phone_codepara todos los plomos, pero usted apenas desea marcar 10 dígitos ensu extensions.conf dial plan para poner llamadas en vez de 44 entonces10 dígitos. El defecto es N| +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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|Grabación de la campaña - este menú permite que usted elija quénivel de la grabación se permite en esta campaña. NUNCAinhabilitará la grabación en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabación en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabación en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opción para parar el registrar. ParaALLCALLS y ALLFORCE hay una opción para utilizar la grabaciónretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude| +Dial Method -<\/B> This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode|Método del dial - Este campo es la manera de definir cómo el marcar debe ocurrir. Si el MANUAL entonces el auto_dial_level es bloqueado en 0 a menos que se cambie el método del dial. Si COCIENTE entonces el normal marcando un número de líneas para los agentes activos. ADAPT_HARD_LIMIT marcará predictively hasta el porcentaje caído y después no permitirá marcar agresivo una vez que se alcance el límite de la gota hasta que va el porcentaje abajo otra vez. ADAPT_TAPERED permite para el excedente de funcionamiento el porcentaje caído por la mitad primer de la cambio - según lo definido por el call_time seleccionado para la campaña y consigue más terminante mientras que se enciende la cambio. ADAPT_AVERAGE intenta mantener un promedio o el porcentaje caído que no impone límites duros tan agresivamente como los otros dos métodos. Usted no puede cambiar el nivel auto del dial si usted está en cualesquiera de los métodos del dial del ADAPTAR. Solamente el sintonizador puede cambiar el nivel del dial cuando en modo que marca profético| +Available Only Tally -<\/B> This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N|Solamente cuenta disponible - este campo si el sistema a Y deja haciafuera los agentes del estado de INCALL y de la COLETA al calcular elnúmero de llamadas al dial cuando no en modo de dial MANUAL. Eldefecto es N| +Drop Percentage Limit -<\/B> This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO|Límite del porcentaje de la gota - este campo es donde usted fijó ellímite del porcentaje de llamadas caídas que usted quisiera mientrasque usaba un método adaptante-profe'tico del dial, NO MANUAL o delCOCIENTE| +Maximum Adapt Dial Level -<\/B> This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0|El máximo adapta el dial llano - este campo es donde usted fijó ellímite del límite al numbr de líneas que usted quisiera marcado poragente mientras que usaba un método adaptante-profe'tico del dial, NOMANUAL o del COCIENTE. Este número puede ser más alto que el nivelauto del dial si su hardware lo apoya. El valor debe ser un númeropositivo mayor de uno y puede tener defecto 3.0 de los lugaresdecimales| +Latest Server Time -<\/B> This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling|El tiempo más último del servidor - este campo es utilizadosolamente por el método del dial de ADAPT_TAPERED. Usted debe entraren la hora y el minuto que usted parará el invitar de esta campaña,2100 significaría que usted parará el marcar de esta campaña en eltiempo del servidor de los 9PM. Esto permite que el algoritmo afiladodecida a cómo agresivamente al dial cerca cuánto tiempo usted tienehasta que usted será el llamar acabado| +Adapt Intensity Modifier -<\/B> This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Adapte el modificante de la intensidad - este campo se utiliza paraajustar la intensidad profética más alta o más baja. El más altoun número positivo que usted selecciona, mayor va el sintonizadoraumentará la llamada que establece el paso cuando para arriba y máslentamente va el sintonizador disminuirá la llamada que establece elpaso cuando abajo. Cuanto más bajo es el número negativo que ustedseleccionan aquí, más lentamente el sintonizador aumentará lallamada que establece el paso y más rápidamente el sintonizadorbajará la llamada que establece el paso cuando va abajo. El defectoes 0. Este campo no es utilizado por los métodos del dial del MANUALo del COCIENTE| +Dial Level Difference Target -<\/B> This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Blanco llana de la diferencia del dial - este campo se utiliza paradefinir si usted desea apuntar tener un número específico de losagentes que esperan agentes de las llamadas o el esperar de llamadas.Por ejemplo si usted siempre quisiera tener en agente del promedio unolibre tomar llamadas inmediatamente usted fijaría esto a -1, si ustedquisiera apuntar siempre tener uno invita el asimiento que espera unagente que usted fijaría esto a 1. El defecto es 0. Este campo no esutilizado por los métodos del dial del MANUAL o del COCIENTE| +System Performance|Funcionamiento Del Sistema| +Server Logs|Registros Del Servidor| +AGI Output|Salida de AGI| +Recording Delay|La Registración Retrasa| +Omit Phone Code|Omita El Código Del Teléfono| +Campaign Recording|Grabación De la Campaña| +Dial Method|Método Del Dial| +Available Only Tally|Solamente Cuenta Disponible| +Drop Percentage Limit|Límite Del Porcentaje De la Gota| +Maximum Adapt Dial Level|El Máximo Adapta El Nivel Del Dial| +Latest Server Time|El Tiempo Más último Del Servidor| +Adapt Intensity Modifier|Adapte El Modificante De la Intensidad| +Dial Level Difference Target|Blanco Llana De la Diferencia Del Dial| +### START translations for 2.0.2 release ### +VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting|Los troncos del servidor de VICIDIAL permiten que usted restrinja laslíneas salientes que se utilizan en este servidor para la campañaque marca sobre una base de la por-campaña. Usted tiene la opciónpara reservar un número de las líneas específico que se utilizaránpor solamente una campaña así como permitir que esa campañafuncione sobre sus líneas reservadas en cualesquiera líneas siguensiendo abiertas, según lo en las líneas totales usadas por vicidialen este servidor es de largo menos que fijar de los troncos delmáximo VICIDIAL. No tener cualesquiera de estos expedientespermitirá la campaña que marca la línea primero para tener tantaslíneas mientras que puede conseguir bajo fijar de los troncos delmáximo VICIDIAL| +VICIDIAL Balance Dialing -<\/B> Setting this field to Y will allow the server to place balance calls for campaigns in VICIDIAL so that the defined dial level can be met even if there are no agents logged into that campaign on this server. Default is N|El marcar del balance de VICIDIAL - fijar este campo a Y permitiráque el servidor ponga las llamadas del balance para las campañas enVICIDIAL para poder resolver el nivel definido del dial incluso si nohay agentes registrados en esa campaña en este servidor. El defectoes N| +VICIDIAL Balance Offlimits -<\/B> This setting defines the number of trunks to not allow VICIDIAL balance dialing to use. For example if you have 40 max vicidial trunks and balance offlimits is set to 10 you will only be able to use 30 trunk lines for VICIDIAL balance dialing. Default is 0|Balance Offlimits de VICIDIAL - este ajuste define el número detroncos para no permitir el balance de VICIDIAL que marca parautilizar. Por ejemplo si usted tiene 40 troncos y offlimits vicidialmáximos del balance se fijan a 10 que usted podrá solamenteutilizar 30 líneas interurbanas para marcar del balance de VICIDIAL.El defecto es 0| +Allowed Campaigns -<\/B> This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system|Campañas permitidas - ésta es una lista seleccionable de lascampañas a las cuales los miembros de este grupo de usuario puedenabrirse una sesión. La opción de ALL-CAMPAIGNS permite que losusuarios en este grupo consideren y se abran una sesión a cualquiercampaña en el sistema| +VICIDIAL SERVER TRUNK RECORD NOT ADDED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO| +there is already a server-trunk record for this campaign|hay ya un expediente del servidor-tronco para esta campaña| +the number of vicidial trunks is too high|el número de troncos vicidial es demasiado alto| +VICIDIAL SERVER TRUNK RECORD ADDED|EL EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL AGREGÓ| +VICIDIAL SERVER TRUNK RECORD NOT MODIFIED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO MODIFICADO| +VICIDIAL SERVER TRUNK RECORD MODIFIED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL MODIFICADO| +VICIDIAL SERVER TRUNK RECORD NOT DELETED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO SUPRIMIDO| +VICIDIAL SERVER TRUNK RECORD DELETED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL SUPRIMIDO| +campaign must be between 3 and 8 characters in length|la campaña debe estar entre 3 y 8 caracteres en longitud| +server_ip delay must be at least 7 characters|el server_ip retrasa debe ser por lo menos 7 caracteres| +trunks must be a digit from 0 to 9999|los troncos deben ser un dígito a partir de la 0 a 9999| +VICIDIAL Balance Dialing|El Marcar Del Balance de VICIDIAL| +VICIDIAL Balance Offlimits|Balance Offlimits de VICIDIAL| +ADDING NEW SERVER VICIDIAL TRUNK RECORD|ADICIÓN DEL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL| +ADD NEW SERVER VICIDIAL TRUNK RECORD|AGREGUE EL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL| +MODIFY SERVER VICIDIAL TRUNK RECORD|MODIFIQUE EL EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL| +DELETE SERVER VICIDIAL TRUNK RECORD|EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL DE LA CANCELACIÓN| +VICIDIAL TRUNKS FOR THIS SERVER|TRONCOS DE VICIDIAL PARA ESTE SERVIDOR| + RESTRICTION | RESTRICCIÓN | + TRUNKS | TRONCOS | +Emergency VDAC Jam Clear|Claro Del Atasco De la Emergencia VDAC| +VDAC NOT CLEARED FOR CAMPAIGN|VDAC NO DESPEJÓ PARA LA CAMPAÑA| +LAST VDAC RECORD CLEARED FOR CAMPAIGN|DE REGISTRO PASADO DE VDAC DESPEJADA PARA LA CAMPAÑA| +VDAC CLEAR CONFIRMATION|CONFIRMACIÓN CLARA DE VDAC| +Click here to delete the oldest LIVE record in VDAC for|Chasque aquí para suprimir el más viejo VIVEN expediente en VDACpara| +Allowed Campaigns|Campañas Permitidas| +USERS CAN VIEW ANY CAMPAIGN|LOS USUARIOS PUEDEN VISIÓN CUALQUIER CAMPAÑA| +Campaign Not Allowed|Campaña No permitida| +### START translations for 2.0.3 release ### +ADAPT OVERRIDE|ADAPTE LA INVALIDACIÓN| +The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually.|El checkbox de la INVALIDACIÓN del ADAPTAR permite que usted fuerceun nuevo nivel del dial aunque el método del dial está en un mododel ADAPTAR. Esto es útil si hay una cambio dramática en la calidadde plomos y usted desea cambiar drástico el dial_level manualmente.| +There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead|Hay dos opciones especiales que usted puede utilizar conjuntamente conel número de teléfono alterno que marca, ALTPH2 de HotKey - el dialcaliente del teléfono alterno y el dial caliente ADDR3-----Address3permiten que un agente utilice un hotkey al retraso su llamada,permanecen en el mismo plomo, y marcan otro número del contacto deese conducen| +Concurrent Transfers|Transferencias Concurrentes| +Concurrent Transfers -<\/B> This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method|Transferencias concurrentes - este ajuste se utiliza para definir elnúmero de las llamadas que se pueden enviar a los agentes en el mismotiempo. Se recomienda que este ajuste está dejado en el AUTOMÓVIL. Este campo no es utilizado por el método MANUAL del dial| +Auto Alt-Number Dialing -<\/B> This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method|Alt-Nu'mero auto que marca - este ajuste se utiliza para marcarautomáticamente campos alternos del número mientras que marca en elCOCIENTE y ADAPTA métodos del dial cuando no hay contacto en elnúmero de teléfono principal para un plomo, los estados del NA, deB, de la C.C. y de N. Este ajuste no es utilizado por el métodoMANUAL del dial| +Auto Alt-Number Dialing|El Marcar Auto Del Alt-Nu'mero| +View Reports -<\/B> This option allows the user to view the VICIDIAL reports.|La visión divulga - esta opción permite que el usuario visión losinformes de VICIDIAL.| +Modify Sections -<\/B> These options allow the user to view and modify each sections records. If set to 0, the user will be able to see the section list, but not the detail or modification screen of a record in that section|Modifique las secciones - estas opciones permiten que el usuariovisión y modifique cada uno los expedientes de las secciones. Si elsistema a 0, el usuario puede considerar la lista de la sección, perono el detalle o la pantalla de la modificación de un expediente enesa sección| +VICIDIAL AUTO ALT DIAL STATUSES|ESTADOS AUTO DEL DIAL DE VICIDIAL ALT| +If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set|Si se fija el campo que marca del Alt-Nu'mero auto, después losplomos que son dispositioned bajo estos estados del dial del alt delautomóvil tendrán su alt_phone y-o los campos address3 marcadosdespués de que cualesquiera de estos ninguno-contesten a estados sefijan| +AUTO ALT NUMBER DIALING FOR THIS CAMPAIGN|NÚMERO AUTO DEL ALT QUE MARCA PARA ESTA CAMPAÑA| +ADD NEW AUTO ALT NUMBER DIALING STATUS|AGREGUE EL ESTADO QUE MARCA DEL NUEVO DEL AUTOMÓVIL NÚMERO DEL ALT| +AUTO ALT DIAL STATUS NOT ADDED|ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO| +there is already an entry for this campaign with this status|hay ya una entrada para esta campaña con este estado| +AUTO ALT DIAL STATUS ADDED|ESTADO AUTO DEL DIAL DEL ALT AGREGADO| +AUTO ALT DIAL STATUS NOT DELETED|ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO| +AUTO ALT DIAL STATUS DELETED|ESTADO AUTO DEL DIAL DEL ALT SUPRIMIDO| +this auto alt dial status is not in this campaign|este estado del dial del alt del automóvil no está en esta campaña| +New Auto Alt Dial Status|Nuevo Estado Del Dial Del Alt Del Automóvil| +Delete Auto Alt Dial Status|Estado Auto Del Dial Del Alt De la Cancelación| + Users | Usuarios | + Campaigns | Campañas | + Lists | Listas | + Scripts | Escrituras | + Filters | Filtros | + In-Groups | En-Grupos | + User Groups | Grupos De Usuario | + Remote Agents | Agentes Alejados | + Admin | Admin | + Reports | Informes | + Show Users | Demuestre A Usuarios | + Add A New User | Agregue A Nuevo Usuario | + Search For A User | Búsqueda Para Un Usuario | + Show Campaigns | Demuestre Las Campañas | + Add A New Campaign | Agregue Una Nueva Campaña | + Real-Time Campaigns Summary | Campañas En tiempo real Sumarias | + Show Lists | Demuestre Las Listas | + Add A New List | Agregue Una Nueva Lista | + Search For A Lead | Búsqueda Para Un Plomo | + Add Number To DNC | Agregue El Número a DNC | + Load New Leads | Nuevos Plomos De la Carga | + Show Scripts | Demuestre Las Escrituras | + Add A New Script | Agregue Una Nueva Escritura | + Show Filters | Demuestre Los Filtros | + Add A New Filter | Agregue Un Filtro Nuevo | + Show In-Groups | Demuestre A En-Grupos | + Add A New In-Group | Agregue A Nuevo En-Grupo | + Show User Groups | Demuestre A Grupos De Usuario | + Add A New User Group | Agregue A Nuevo Grupo De Usuario | + Group Hourly Report | Informe Cada hora Del Grupo | + Show Remote Agents | Demuestre Los Agentes Alejados | + Add New Remote Agents | Agregue Los Agentes Alejados Nuevos | + Call Times | Tiempos De la Llamada | + Phones | Teléfonos | + Conferences | Conferencias | + Servers | Servidores | + Show Call Times | Demuestre Los Tiempos De la Llamada | + Add A New Call Time | Agregue Un Nuevo Rato De la Llamada | + Show State Call Times | Demuestre Los Tiempos De la Llamada Del Estado | + Add A New State Call Time | Agregue Un Nuevo Rato De la Llamada Del Estado | + Show Phones | Demuestre Los Teléfonos | + Add A New Phone | Agregue Un Teléfono Nuevo | + Show Conferences | Demuestre Las Conferencias | + Add A New Conference | Agregue Una Nueva Conferencia | + Show VICIDIAL Conferences | Demuestre Las Conferencias de VICIDIAL | + Add A New VICIDIAL Conference | Agregue Una Nueva Conferencia de VICIDIAL | + Show Servers | Demuestre Los Servidores | + Add A New Server | Agregue Un Servidor Nuevo | +CallBacks Within User Group|Servicios repetidos Dentro Del Grupo De Usuario| +USERS WITHIN THIS USER GROUP|USUARIOS DENTRO DE ESTE GRUPO DE USUARIO| +Modify Users: |Modifique A Usuarios: | +Modify Campaigns: |Modifique Las Campañas: | +Modify Lists: |Modifique Las Listas: | +Modify Scripts: |Modifique Las Escrituras: | +Modify Filters: |Modifique Los Filtros: | +Modify In-Groups: |Modifique A En-Grupos: | +Modify User Groups: |Modifique A Grupos De Usuario: | +Modify Remote Agents: |Modifique Los Agentes Alejados: | +Modify Servers: |Modifique Los Servidores: | +View Reports: |Informes De la Visión: | +You do not have permission to view this page|Usted no tiene permiso de visión esta página| +Lead Time Zone Lookup: |Operaciones de búsqueda De la Zona De Tiempo De Plomo:| +Lead Duplicate Check: |Cheque Del Duplicado Del Plomo:| +Agent Pause Codes Active -<\/B> Allows agents to select a pause code when they click on the PAUSE button in vicidial.php. Pause codes are definable per campaign at the bottom of the campaign view detail screen and they are stored in the vicidial_agent_log table. Default is N|La pausa del agente cifra activo - permite que los agentes seleccionenun código de la pausa cuando chascan encendido el botón de PAUSA envicidial.php. Los códigos de la pausa son definibles por campaña enel fondo de la pantalla del detalle de la opinión de la campaña y sealmacenan en la tabla del vicidial_agent_log. El defecto es N| +AGENT PAUSE CODES|CÓDIGOS DE LA PAUSA DEL AGENTE| +If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the vicidial agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters.|Si la pausa del agente cifra el campo activo se fija a activo entonceslos agentes podrá seleccionar de estos códigos de la pausa cuandochascan encendido el botón de PAUSA en sus pantallas. Estos datosentonces se almacenan en el registro vicidial del agente. El códigode la pausa debe contener solamente letras y números y ser menos de 7caracteres de largo. El nombre del código de la pausa puede estar nomás de largo de 30 caracteres.| +AGENT PAUSE CODES FOR THIS CAMPAIGN|CÓDIGOS DE LA PAUSA DEL AGENTE PARA ESTA CAMPAÑA| +PAUSE CODES|CÓDIGOS DE LA PAUSA| +BILLABLE|FACTURABLE| +ADD NEW AGENT PAUSE CODE|AGREGUE EL NUEVO CÓDIGO DE LA PAUSA DEL AGENTE| +Pause Code: |Código De la Pausa: | +Pause Code Name: |Nombre Del Código De la Pausa: | +Billable: |Facturable: | +New Agent Pause Code|Nuevo Código De la Pausa Del Agente| +Modify Agent Pause Code|Modifique El Código De la Pausa Del Agente| +Delete Agent Pause Code|Código De la Pausa Del Agente De la Cancelación| +AGENT PAUSE CODE NOT ADDED|CÓDIGO DE LA PAUSA DEL AGENTE NO AGREGADO| +there is already an entry for this campaign with this pause code|hay ya una entrada para esta campaña con este code|| de la pausa| +AGENT PAUSE CODE ADDED|EL CÓDIGO DE LA PAUSA DEL AGENTE AGREGÓ| +AGENT PAUSE CODE NOT MODIFIED|CÓDIGO DE LA PAUSA DEL AGENTE NO MODIFICADO| +CAMPAIGN PAUSE CODE NOT DELETED|CÓDIGO DE LA PAUSA DE LA CAMPAÑA NO SUPRIMIDO| +Campaign Description -<\/B> This is a memo field for the campaign, it is optional and can be a maximum of 255 characters in length|Descripción de la campaña - esto es un campo de la nota para lacampaña, es opcional y puede ser un máximo de 255 caracteres enlongitud| +Campaign Change Date -<\/B> This is the last time that the settings for this campaign were modified in any way|Fecha del cambio de la campaña - ésta es la vez última que losajustes para esta campaña fueron modificados de cualquier manera| +Campaign Stats Refresh -<\/B> This checkbox will allow you to force a vicidial stats refresh, even if the campaign is not active|Los Stats de la campaña restauran - este checkbox permitirá queusted fuerce un stats vicidial restaura, incluso si la campaña no esactiva| +Last Campaign Login Date -<\/B> This is the last time that an agent was logged into this campaign|La fecha pasada de la conexión de la campaña - ésta es la vezúltima que un agente fue registrado en esta campaña| +List Description -<\/B> This is the memo field for the list, it is optional|Descripción de la lista - éste es el campo de la nota para la lista,él es opcional| +List Change Date -<\/B> This is the last time that the settings for this list were modified in any way|Fecha del cambio de la lista - ésta es la vez última que los ajustespara esta lista fueron modificados de cualquier manera| +List Last Call Date -<\/B> This is the last time that lead was dialed from this list|Fecha de la llamada del último de la lista - ésta es la vez últimaque conduce fue marcado de esta lista| +List Description: |Descripción De la Lista: | +List Change Date: |Fecha Del Cambio De la Lista: | +Campaign Description: |Descripción De la Campaña: | +VICIDIAL Recording Override -<\/B> This option will override whatever the option is in the campaign for recording. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|Invalidación de la grabación de VICIDIAL - esta opción seeliminará lo que es la opción en la campaña para la grabación.LISIADO no eliminará el ajuste de la grabación de la campaña. NUNCAinhabilitará la grabación en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabación en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabación en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opción para parar el registrar. ParaALLCALLS y ALLFORCE hay una opción para utilizar la grabaciónretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude| +VICIDIAL Recording Override: |Invalidación De la Grabación de VICIDIAL:| +MODIFY VICIDIAL SYSTEM SETTINGS|MODIFIQUE LOS AJUSTES DEL SISTEMA DE VICIDIAL| + System Settings | Ajustes Del Sistema | +VICIDIAL SYSTEM SETTINGS MODIFIED|AJUSTES DEL SISTEMA DE VICIDIAL MODIFICADOS| +Version: |Versión: | +Use Non-Latin: |Uso No-Latino: | +Webroot Writable: |Webroot Escribible: | +Enable QueueMetrics Logging: |Permita La Registración De QueueMetrics: | +QueueMetrics Server IP: |IP Del Servidor De QueueMetrics: | +QueueMetrics DB Name: |Nombre del DB De QueueMetrics: | +QueueMetrics DB Login: |Conexión del DB De QueueMetrics: | +QueueMetrics DB Password: |Contraseña del DB De QueueMetrics: | +Use Non-Latin -<\/B> This option allows you to default the web display script to use UTF8 characters and not do any latin-character-family regular expression filtering or display formatting. Default is 0|Uso No-Latino - esta opción permite que usted omita la escritura dela exhibición de la tela los caracteres del uso UTF8 y que no haganinguna expresión regular de la latino-cara'cter-familia que sefiltra ni que no exhiba el formato. El defecto es 0| +Webroot Writable -<\/B> This setting allows you to define whether temp files and authentication files should be placed in the webroot on your web server. Default is 1|Webroot escribible - este ajuste permite que usted defina si losarchivos de la temperatura y los archivos de la autentificación seancolocados en el webroot en su web server. El defecto es 1| +Enable QueueMetrics Logging -<\/B> This setting allows you to define whether VICIDIAL will insert log entries into the queue_log database table as Asterisk Queues activity does. QueueMetrics is a standalone, closed-source statistical analysis program. You must have QueueMetrics already installed and configured before enabling this feature. Default is 0|Permita la registración de QueueMetrics - este ajuste permite queusted defina si VICIDIAL inserte entradas del registro en la tabla dela base de datos del queue_log como lo hace la actividad de lascoletas del asterisco. QueueMetrics es un independiente, programa delanálisis estadístico de la cerrado-fuente. Usted debe tenerQueueMetrics instalado y configurado ya antes de permitir estacaracterística. El defecto es 0| +QueueMetrics Server IP -<\/B> This is the IP address of the database for your QueueMetrics installation|IP del servidor de QueueMetrics - éste es el IP address de la base dedatos para su instalación de QueueMetrics| +QueueMetrics Database Name -<\/B> This is the database name for your QueueMetrics database|Nombre de la base de datos de QueueMetrics - éste es el nombre de labase de datos para su base de datos de QueueMetrics| +QueueMetrics Database Login -<\/B> This is the user name used to log in to your QueueMetrics database|Conexión de la base de datos de QueueMetrics - éste es el nombre delusuario usado para abrirse una sesión a su base de datos deQueueMetrics| +QueueMetrics Database Password -<\/B> This is the password used to log in to your QueueMetrics database|Contraseña de la base de datos de QueueMetrics - ésta es lacontraseña usada para abrirse una sesión a su base de datos deQueueMetrics| +QueueMetrics URL -<\/B> This is the URL or web site address used to get to your QueueMetrics installation|URL de QueueMetrics - Ésta es la dirección del URL o del Web siteusada para conseguir a su instalación de QueueMetrics| +QueueMetrics Log ID -<\/B> This is the server ID that all VICIDIAL logs going into the QueueMetrics database will use as an identifier for each record|Identificación del registro de QueueMetrics - ésta es laidentificación del servidor que todos los registros de VICIDIAL queentran la base de datos de QueueMetrics utilizarán como identificadorpara cada expediente| +QueueMetrics Log ID: |Identificación Del Registro De QueueMetrics: | +Campaign Dial Status Added|Estado Del Dial De la Campaña Agregado| +Campaign Dial Status Removed|El Estado Del Dial De la Campaña Quitó| +To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove|Para agregar otro estado al dial, selecciónelo de la lista drop-downy el tecleo AGREGA. Para quitar uno de los estados del dial, chasqueencendido el acoplamiento del QUITAR al lado del estado que usteddesea quitar| +CAMPAIGN DIAL STATUS NOT ADDED|ESTADO DEL DIAL DE LA CAMPAÑA NO AGREGADO| +CAMPAIGN DIAL STATUS ADDED|EL ESTADO DEL DIAL DE LA CAMPAÑA AGREGÓ| +this dial status is not selected for this campaign|este estado del dial no se selecciona para esta campaña| +CAMPAIGN DIAL STATUS NOT REMOVED|ESTADO DEL DIAL DE LA CAMPAÑA NO QUITADO| +CAMPAIGN DIAL STATUS REMOVED|EL ESTADO DEL DIAL DE LA CAMPAÑA QUITÓ| +>REMOVE<|>QUITE<| +Dial Status |Estado Del Dial | +no dial statuses selected for this campaign|ningunos estados del dial seleccionados para esta campaña| +QueueMetrics EnterQueue Prepend -<\/B> This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything|QueueMetrics EnterQueue prepend - este campo se utiliza para permitirprepending de una de las zonas de informaciones del vicidial_listdelante del número de teléfono del cliente para los informesmodificados para requisitos particulares de QueueMetrics. El defectono es NINGUNO no poblar cualquier cosa| +QueueMetrics EnterQueue Prepend: |QueueMetrics EnterQueue Prepend: | +VICIDIAL Agent Disable Display -<\/B> This field is used to select when to show an agent when their session has been disabled by the system, a manager action or by an external measure. The NOT_ACTIVE setting will disable the message on the agents screen. The LIVE_AGENT setting will only display the disabled message when the agents vicidial_auto_calls record has been removed, such as during a force logout or emergency logout|El agente de VICIDIAL inhabilita la exhibición - este campo seutiliza para seleccionar cuando demostrar a un agente cuando susesión ha sido inhabilitada por el sistema, una acción del encargadoo por una medida externa. El ajuste de NOT_ACTIVE inhabilitará elmensaje en la pantalla de los agentes. El ajuste de LIVE_AGENTexhibirá solamente el mensaje lisiado cuando se ha quitado elexpediente de los vicidial_auto_calls de los agentes, por ejemplodurante un registro de estado de la máquina de la fuerza o registrode estado de la máquina de la emergencia| +VICIDIAL Agent Disable Display: |El Agente de VICIDIAL Inhabilita La Exhibición:| +Disable Alter Customer Data -<\/B> If set to Y, does not change any of the customer data record when an agent dispositions the call. Default is N|Inhabilite alteran datos del cliente - si el sistema a Y, no cambiacualquiera del expediente de datos del cliente cuando lasdisposiciones de un agente la llamada. El defecto es N| +Disable Alter Customer Data: |Inhabilite Alteran Datos Del Cliente:| +Agent Alter Customer Data Override -<\/B> This option will override whatever the option is in the campaign for altering of customer data. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer data, no matter what the campaign setting is. Default is NOT_ACTIVE|El agente altera la invalidación de los datos del cliente - estaopción se eliminará lo que es la opción en la campaña paraalterarse de los datos del cliente. NOT_ACTIVE utilizará lo que estápresente el ajuste para la campaña. ALLOW_ALTER permitirá siemprepara que el agente altere los datos del cliente, no importa qué es elajuste de la campaña. El defecto es NOT_ACTIVE| +Agent Alter Customer Data Override: |El Agente Altera La Invalidación De los Datos Del Cliente: | +Allow No-Hopper-Leads Logins -<\/B> If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N|Permita Ninguno-Tolva-Conduce conexiones - si el sistema a Y, permiteagentes a la conexión a la campaña incluso si no hay plomos cargadosen la tolva para esa campaña. Esta función no se necesita encampañas de CLOSER-type. El defecto es N| +Allow No-Hopper-Leads Logins: |Permita Ninguno-Tolva-Conduce Conexiones: | +Enable SIPSAK Messages -<\/B> If enabled the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. Feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Permita los mensajes de SIPSAK - si está permitido el servidorenviará mensajes al teléfono del SIP a la exhibición en laexhibición del LCD del teléfono cuando está registrado en VICIDIAL.La característica trabaja solamente con los teléfonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0| +Enable SIPSAK Messages: |Permita Los Mensajes de SIPSAK: | +Allow SIPSAK Messages -<\/B> If set to 1, this will allow the phones table setting to work properly, the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. This feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Permita los mensajes de SIPSAK - si el sistema a 1, éste permite queel ajuste de la tabla de los teléfonos trabaje correctamente, elservidor enviará mensajes al teléfono del SIP a la exhibición en laexhibición del LCD del teléfono cuando está registrado en VICIDIAL.Esta característica trabaja solamente con los teléfonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0| +Allow SIPSAK Messages: |Permita Los Mensajes de SIPSAK: | +Admin Home URL -<\/B> This is the URL or web site address that you will go to if you click on the HOME link at the top of the admin.php page|URL casero del Admin - ésta es la dirección del URL o del Web siteque usted irá si usted chasca encendido el acoplamiento CASERO en latapa de la página de admin.php| +Admin Home URL: |URL Casero Del Admin: | +>HOME<|>CASERO<| + Welcome | Recepción | +### START translations for 2.0.4 release ### +CHECK FOR DUPLICATES BY PHONE IN ALL CAMPAIGN LISTS|COMPRUEBE PARA SABER SI HAY DUPLICADOS DE PHONE IN TODAS LAS LISTAS DELA CAMPAÑA| +CHECK FOR DUPLICATES BY PHONE IN ENTIRE SYSTEM|COMPRUEBE PARA SABER SI HAY DUPLICADOS POR EL SISTEMA ENTERO DE PHONEIN| +PHONE CODE OVERRIDE FOR THIS FILE|INVALIDACIÓN DEL CÓDIGO DEL TELÉFONO PARA ESTE ARCHIVO| +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. The lead loader 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, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files:|El cargador tela-basado básico del plomo de VICIDIAL se diseñasimplemente para tomar un archivo del plomo - hasta 8MB de tamaño quees la lengüeta o la pipa delimitada y para cargarlo en la tabla delvicidial_list. El cargador del plomo permite el campo que elige y deTXT- el texto claramente, los valores separados coma de CSV- y XLS-sobresalen formatos del archivo. El cargador del plomo no hace lavalidación de datos, sino que permite que usted compruebe para sabersi hay duplicados en sí mismo, dentro de la campaña o dentro delsistema entero. También, cerciórese de que usted haya creado lalista que estos plomos son estar debajo de modo que usted puedautilizarlos. Aquí está una lista de los campos en su orden apropiadapara los archivos del plomo:| +NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf 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. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads.|NOTAS: La funcionalidad del cargador del plomo del sobresalir espermitida por una serie de escrituras del Perl y necesita tener unarchivo correctamente configurado de /etc/astguiclient.conf en lugaren el web server. También, los módulos de un Perl de los pares sedeben cargar para ella para trabajar también -oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Ustedpuede comprobar para saber si hay errores runtime en éstos mirando suarchivo del error_log de apache. También, para los cheques deduplicación contra gampaign enumera, la lista que tiene nuevos plomosel entrar él necesita ser creada en el sistema antes de que ustedcomience a cargar los plomos.| +Campaign List Mix Added|Mezcla De la Lista De la Campaña Agregada| +Modify Campaign List Mix|Modifique La Mezcla De la Lista De la Campaña| +Campaign List Mix Removed|La Mezcla De la Lista De la Campaña Quitó| +Campaign Statuses|Estados De la Campaña| +Campaign HotKeys|Campaña HotKeys| +Campaign Lead Recycle Entries|El Plomo De la Campaña Recicla Entradas| +Campaign Auto Alt Dial Statuses|Estados Auto Del Dial Del Alt De la Campaña| +Campaign Agent Pause Codes|Códigos De la Pausa Del Agente De la Campaña| +Campaign Dial Statuses|Estados Del Dial De la Campaña| +Campaign List Mixes|Mezclas De la Lista De la Campaña| + Lead Recycle |El Plomo Recicla| + Auto-Alt Dial |Dial Automo'vil-Auto-Alt| + Pause Codes |Códigos De la Pausa| + List Mix |Mezcla De la Lista| + Campaigns Main |Campañas Principales| +List Order Mix -<\/B> Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED|Mezcla de la orden de la lista - elimina los campos de la orden delplomo y del estado del dial. Utilizará los parámetros de la lista ydel estado para la entrada seleccionada de la mezcla de la lista en lasección del submarino de la mezcla de la lista en lugar de otro. Eldefecto es LISIADO| +List Mix ID -<\/B> ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation.|Identificación de la mezcla de la lista - identificación de lamezcla de la lista. Debe ser a partir de 2-20 caracteres en longitudsin los espacios o la otra puntuación especial.| +List Mix Name -<\/B> Descriptive name of the list mix. Must be from 2-50 characters in length|Nombre de la mezcla de la lista - nombre descriptivo de la mezcla dela lista. Debe ser a partir de 2-50 caracteres en longitud| +List Mix Detail -<\/B> The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated|Detalle de la mezcla de la lista - la composición de la entrada de lamezcla de la lista. Contiene la identificación de la lista, la ordende la mezcla, los porcentajes y los estados que hacen para arriba estamezcla de la lista. Los porcentajes tienen que agregar siempre hasta100, y las listas todas tienen que ser activas y fijadas a la campañapara que la entrada de la mezcla de la orden sea activada| +List Mix Method -<\/B> The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER.|Método de la mezcla de la lista - el método de mezclar a todas laspartes del detalle de la mezcla de la lista juntas. EVEN_MIX mezclarálos plomos de cada parte interpolada con las otras partes, como estos1.2.3.1.2.3.1.2.3. IN_ORDER pondrá los plomos en la orden en la cualse enumeran en la pantalla 1.1.1.2.2.2.3.3.3 del detalle de la mezclade la lista. La voluntad AL AZAR los puso en la orden AL AZAR1.3.2.1.1.3.2.1.3. El defecto es IN_ORDER.| +LIST MIXES FOR THIS CAMPAIGN: |MEZCLAS DE LA LISTA PARA ESTA CAMPAÑA:| +The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls.|Human_answered el campo se utiliza al calcular el porcentaje de lagota, o la tarifa del abandono. El ajuste human_answered a Yutilizará este estado al contar las llamadas humano-contestadas.| +HUMAN ANSWER|RESPUESTA HUMANA| +ADDING VICIDIAL SYSTEM STATUSES|ADICIÓN DE ESTADOS DE SISTEMA DE VICIDIAL| +MODIFY VICIDIAL SYSTEM STATUSES|MODIFIQUE LOS ESTADOS DE SISTEMA DE VICIDIAL| +SYSTEM STATUS NOT ADDED|ESTADO DE SISTEMA NO AGREGADO| +SYSTEM STATUS ADDED|EL ESTADO DE SISTEMA AGREGÓ| +SYSTEM STATUS NOT DELETED|ESTADO DE SISTEMA NO SUPRIMIDO| +the system status cannot be a reserved status: |el estado de sistema no puede ser un estado reservado:| +the system status needs to be at least 1 characters in length|el estado de sistema necesita ser por lo menos los caracteres 1 enlongitud| +VICIDIAL STATUSES WITHIN THIS SYSTEM: |ESTADOS DE VICIDIAL DENTRO DE ESTE SISTEMA:| +ADD NEW SYSTEM STATUS|AGREGUE EL NUEVO ESTADO DE SISTEMA| +CUSTOM CAMPAIGN STATUSES LISTINGS:|LISTADOS DE ENCARGO DE LOS ESTADOS DE LA CAMPAÑA:| +CAMPAIGN HOTKEYS LISTINGS:|LISTADOS DE LA CAMPAÑA HOTKEYS:| +CAMPAIGN LEAD RECYCLE LISTINGS:|EL PLOMO DE LA CAMPAÑA RECICLA LISTADOS:| +LEAD RECYCLES|EL PLOMO RECICLA| +CAMPAIGN LEAD AUTO-ALT DIAL LISTINGS:|LISTADOS DEL DIAL DEL PLOMO AUTO-ALT DE LA CAMPAÑA:| +CAMPAIGN AGENT PAUSE CODE LISTINGS:|LISTADOS DE CÓDIGO DE LA PAUSA DEL AGENTE DE LA CAMPAÑA:| +CAMPAIGN LIST MIX LISTINGS:|LISTADOS DE LA MEZCLA DE LA LISTA DE LA CAMPAÑA:| +The Category option allows you to group several statuses into a catogy that can be used for statistical analysis.|La opción de la categoría permite que usted agrupe varios estados enun catogy que se pueda utilizar para el análisis estadístico.| +MODIFY VICIDIAL STATUS CATEGORIES|MODIFIQUE LAS CATEGORÍAS DEL ESTADO DE VICIDIAL| +ADDING VICIDIAL STATUS CATEGORY|ADICIÓN DE CATEGORÍA DEL ESTADO DE VICIDIAL| + Status Categories |Categorías Del Estado| + System Statuses |Estados De Sistema| +MODIFY VICIDIAL SYSTEM STATUSES|MODIFIQUE LOS ESTADOS DE SISTEMA DE VICIDIAL| +MODIFY VICIDIAL STATUS CATEGORY|MODIFIQUE LA CATEGORÍA DEL ESTADO DE VICIDIAL| +Through the use of system statuses, you can have statuses that exist for campaign and in-group. The Status must be 1-6 characters in length, the description must be 2-30 characters in length and Selectable defines whether it shows up in VICIDIAL as an agent disposition. The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls. The Category option allows you to group several statuses into a catogy that can be used for statistical analysis|Con el uso de los estados de sistema, usted puede tener estados queexistan para la campaña y el en-grupo. El estado debe ser 1-6caracteres en longitud, la descripción debe ser 2-30 caracteres enlongitud y seleccionable define si demuestra para arriba en VICIDIALcomo disposición del agente. Human_answered el campo se utiliza alcalcular el porcentaje de la gota, o la tarifa del abandono. El ajustehuman_answered a Y utilizará este estado al contar las llamadashumano-contestadas. La opción de la categoría permite que ustedagrupe varios estados en un catogy que se pueda utilizar para elanálisis estadístico| +Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report|Con el uso de las categorías del estado de sistema, usted puedeagrupar juntos estados para tener en cuenta análisis estadístico enun grupo de estados. La identificación de la categoría debe ser 2-20caracteres en longitud sin espacios, el nombre debe ser 2-50caracteres en longitud, la descripción es opcional y la exhibiciónde TimeonVDAD define si ese estado será uno de hasta que 4 estadosque se puedan calcular y exhibir en el tiempo en informe del tiemporeal de VDAD| +ADD NEW STATUS CATEGORY|AGREGUE LA NUEVA CATEGORÍA DEL ESTADO| +STATUS CATEGORY NOT ADDED|CATEGORÍA DEL ESTADO NO AGREGADA| +there is already a status category in the system with this ID|hay ya una categoría del estado en el sistema con estaidentificación| +ID must be between 2 and 20 characters in length|La identificación debe estar entre 2 y 20 caracteres en longitud| +name name must be between 2 and 50 characters in length|el nombre conocido debe estar entre 2 y 50 caracteres en longitud| +STATUS CATEGORY NOT MODIFIED|CATEGORÍA DEL ESTADO NO MODIFICADA| +the status category cannot be a reserved category: |la categoría del estado no puede ser una categoría reservada:| +the status category needs to be at least 2 characters in length|la categoría del estado necesita ser por lo menos 2 caracteres enlongitud| +STATUS CATEGORY DELETED|CATEGORÍA DEL ESTADO SUPRIMIDA| +STATUS CATEGORY MODIFIED|LA CATEGORÍA DEL ESTADO SE MODIFICÓ| +Category: |Categoría:| +the system status name needs to be at least 1 characters in length|el nombre del estado de sistema necesita ser por lo menos loscaracteres 1 en longitud| +SYSTEM STATUS NOT MODIFIED|ESTADO DE SISTEMA NO MODIFICADO| +SYSTEM STATUS MODIFIED|ESTADO DE SISTEMA MODIFICADO| +ERROR: There are already 4 Status Categories set to TimeOnVDAD Display|ERROR: Hay ya sistema de 4 categorías del estado a la exhibición deTimeOnVDAD| +CUSTOM CAMPAIGN STATUS MODIFIED|EL ESTADO DE ENCARGO DE LA CAMPAÑA SE MODIFICÓ| +LIST MIX NOT MODIFIED|MEZCLA DE LA LISTA NO MODIFICADA| +LIST MIX MODIFIED|LA MEZCLA DE LA LISTA SE MODIFICÓ| +You cannot delete the last list_id entry from a list mix|Usted no puede suprimir la entrada pasada del list_id de una mezcla dela lista| +LIST MIX ADDED: |LA MEZCLA DE LA LISTA AGREGÓ:| +LIST MIX NOT ADDED |MEZCLA DE LA LISTA NO AGREGADA| +There is already a list mix with this ID in the system|Hay ya una mezcla de la lista con esta identificación en el sistema| +LIST MIX NOT DELETED|MEZCLA DE LA LISTA NO SUPRIMIDA| +LIST MIX DELETED: |MEZCLA DE LA LISTA SUPRIMIDA:| +SET TO ACTIVE|FIJE A ACTIVO| +LIST MIX NOT ACTIVATED|MEZCLA DE LA LISTA NO ACTIVADA| +LIST MIX ACTIVATED|LA MEZCLA DE LA LISTA ACTIVÓ| +Enable Agent Transfer Logfile -<\/B> This option will log to a text logfile on the webserver every time a call is transferred to an agent. Default is 0, disabled|Permita el logfile de la transferencia del agente - esta opciónregistrará a un logfile del texto en el webserver cada vez que unallamada se transfiere a un agente. El defecto es 0, inhabilitado| +Enable Agent Transfer Logfile|Permita El Logfile De la Transferencia Del Agente| +Call Time -<\/B> This is the call time scheme to use for this inbound group. Keep in mind that the time is based on the server time. Default is 24hours|Tiempo de la llamada - éste es el esquema del tiempo de la llamada autilizar para este grupo de entrada. Tenga presente que el tiempoestá basado en el tiempo del servidor. El defecto es 24hours| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field. Default is MESSAGE|Después de la acción de las horas - la acción a realizarse si esdespués de horas según lo definido en la época de la llamada paraeste grupo de entrada. Del RETRASO de la voluntad el retrasoinmediatamente la llamada, MESSASGE jugará el archivo en después delcampo de Filenam del mensaje de las horas, la EXTENSIÓN enviará lallamada a después de la extensión de las horas en el dialplan yVOICEMAIL enviará la llamada a la caja del voicemail enumerada endespués del campo de Voicemail de las horas. El defecto es MENSAJE| +After Hours Message Filename -<\/B> The audio file located on the server to be played if the Action is set to MESSAGE. Default is vm-goodbye|Después del nombre de fichero del mensaje de las horas - el archivoaudio situado en el servidor que se jugará si la acción se fija alMENSAJE. El defecto es VM-ADIO'S| +After Hours Extension -<\/B> The dialplan extension to send the call to if the Action is set to EXTENSION. Default is 8300|Después de la extensión de las horas - la extensión dialplan paraenviar la llamada si la acción se fija a la EXTENSIÓN. El defecto es8300| +After Hours Voicemail -<\/B> The voicemail box to send the call to if the Action is set to VOICEMAIL|Después de las horas Voicemail - la caja del voicemail para enviar lallamada si la acción se fija a VOICEMAIL| +Welcome Message Filename -<\/B> The audio file located on the server to be played when the call comes in. If set to ---NONE--- then no message will be played. Default is ---NONE---|Nombre de fichero agradable del mensaje - el archivo audio situado enel servidor que se jugará cuando viene la llamada adentro. Si sistemaa ---NONE --- entonces no se jugará ningún mensaje. El defecto es---NONE ---| +Music On Hold Context -<\/B> The music on hold context to use when the customer is placed on hold. Default is default|Música en contexto del asimiento - la música en el contexto delasimiento para utilizar cuando colocan al cliente en asimiento. Eldefecto es defecto| +On Hold Prompt Filename -<\/B> The audio file located on the server to be played at a regular interval when the customer is on hold. Default is generic_hold. This audio file MUST be 9 seconds or less in length.|En el nombre de fichero del aviso del asimiento - el archivo audiosituado en el servidor que se jugará en un intervalo regular cuandoel cliente está en asimiento. El defecto es generic_hold. Estearchivo audio DEBE estar 9 segundos o menos en longitud.| +On Hold Prompt Interval -<\/B> The length of time in seconds to wait before playing the on hold prompt. Default is 60|En el intervalo del aviso del asimiento - la longitud de la hora ensegundos de esperar antes de jugar encendido el aviso del sostener. Eldefecto es 60| +Agent Alert Extension -<\/B> The extension to send into the agent session to announce that a call is coming to the agent. This extension should have a Playback of an audio file. To not use this function set this to X. Default is X|Extensión alerta del agente - la extensión a enviar en la sesióndel agente para anunciar que una llamada está viniendo al agente.Esta extensión debe tener un aparato de lectura de un archivo audio.No utilizar esta función fijó esto a X. Default es X| +Agent Alert Delay -<\/B> The length of time in milliseconds to wait before sending the call to the agent after playing the on Agent Alert Extension. Default is 1000|La alarma del agente retrasa - la longitud de la hora en milisegundosde esperar antes de enviar la llamada al agente después de jugarencendido la extensión alerta del agente. El defecto es 1000| +Call Time: |Tiempo De la Llamada:| +After Hours Action: |Después De la Acción De las Horas:| +After Hours Message Filename: |Después De Nombre de fichero Del Mensaje De las Horas:| +After Hours Extension: |Después De la Extensión De las Horas:| +After Hours Voicemail: |Después De las Horas Voicemail:| +Welcome Message Filename: |Nombre de fichero Agradable Del Mensaje:| +Music On Hold Context: |Música En Contexto Del Asimiento:| +On Hold Prompt Filename: |En Nombre de fichero Del Aviso Del Asimiento:| +On Hold Prompt Interval: |En Intervalo Del Aviso Del Asimiento:| +Agent Alert Extension: |Extensión Alerta Del Agente:| +Agent Alert Delay: |La Alarma Del Agente Retrasa:| +You will also be able to set the rank, or skill level, in this section for each of the inbound groups as well as being able to see the number of calls received from each inbound group for this specific agent|Usted también podrá fijar la fila, o el nivel de habilidad, en estasección para cada uno de los grupos de entrada así como poder ver elnúmero de las llamadas recibidas de cada grupo de entrada para esteagente específico| +Allow Inbound and Blended -<\/B> This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N|Permita de entrada y mezclado - aquí es donde usted puede fijar silos usuarios de esta campaña tendrán la opción para tomar llamadasde entrada con esta campaña. Si usted desea hacer de entrada y desalida mezclada entonces esto se debe fijar a Y. Si usted deseasolamente hacer marcar de salida en esta campaña fijó esto a N.Default es N| +Allow Inbound and Blended: |Permita de entrada y mezclado:| +Manual Dial List ID -<\/B> The default list_id to be used when an agent placces a manual call and a new lead record is created in vicidial_list. Default is 999. This field can contain digits only|Identificación manual de la lista del dial - el list_id del defectoque se utilizará cuando los placces de un agente una llamada manual yun nuevo expediente del plomo se crean en vicidial_list. El defecto es999. Este campo puede contener dígitos solamente| +Manual Dial List ID: |Identificación Manual De la Lista Del Dial:| +inbound_group_rank: orders by the rank given to the agent for the specific inbound group. Highest to Lowest|inbound_group_rank: órdenes de la fila dada al agente para el grupode entrada específico. Lo más arriba posible a lo más bajo posible| +fewest_calls: orders by the number of calls received by an agent for that specific inbound group. Least calls first|fewest_calls: órdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero| +Campaign Ranks: |Filas De la Campaña:| +AGENT RANKS FOR THIS CAMPAIGN:|FILAS DEL AGENTE PARA ESTA CAMPAÑA:| +Copy Campaign|Campaña Del Copy| +COPY A CAMPAIGN|Copy Una CAMPAÑA| +Source Campaign: |Campaña De la Fuente:| +New Copied Campaign Addition|Nueva Adición Copiada De la Campaña| +Copy In-Group|En-Grupo Del Copy| +New Copied In-Group Addition|Nueva Adicin Copiada Del En-Grupo| +Copy User|Usuario Del Copy| +New Copied User Addition|Nueva Adición Copiada Del Usuario| +COPY USER|USUARIO DEL COPY| +Copy In-Group|En-Grupo Del Copy| +COPY INBOUND GROUP|GRUPO DE ENTRADA DEL COPY| +campaign_rank: orders by the rank given to the agent for the campaign. Highest to Lowest|campaign_rank: órdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible| +Default Transfer Group -<\/B> This field is the default In-Group that will be automatically selected when the agent goes to the transfer-conference frame in their agent interface|Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente| +Default Transfer Group: |Grupo De la Transferencia Del Defecto:| +Allowed Transfer Groups: |Grupos Permitidos De la Transferencia:| +Allowed Transfer Groups -<\/B> With these checkbox listings you can select the groups that agents in this campaign can transfer calls to. Allow Closers must be enabled for this option to show up|Grupos permitidos de la transferencia - con estos listados delcheckbox usted puede seleccionar a los grupos a quienes los agentes enesta campaña pueden transferir llamadas. Permita Closers debe serpermitido para que esta opción demuestre para arriba| +Campaign Ranks -<\/B> In this section you can define the rank an agent will have for each campaign. These ranks can be used to allow for preferred call routing when Next Agent Call is set to campaign_rank|La campaña alinea - en esta sección usted puede definir a la filaque un agente tendrá para cada campaña. Estas filas pueden serutilizadas para tener en cuenta la encaminamiento preferida de lallamada cuando la llamada siguiente del agente se fija alcampaign_rank| +Also in this section is the ability to give the agent a rank for each inbound group. These ranks can be used for preferred call routing when that option is selected in the in-group screen|También en esta sección está la capacidad de dar al agente una filapara cada grupo de entrada. Estas filas pueden ser utilizadas para laencaminamiento preferida de la llamada cuando esa opción seselecciona en la pantalla del en-grupo| +### START translations for 2.0.5 release ### +QC Enabled -<\/B> This option allows the user to log in to the Quality Control agent screen|CC Activado - Esta opción permite al usuario acceder a la pantalla de control de calidad de agente| +QC User Level -<\/B> This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section|Nivel de Usuario de CC - Este ajuste define lo que el agente de control de calidad de nivel de usuario es. Este dictará el nivel de funcionalidad para el agente en la sección de CC| +QC Record Pass -<\/B> This option allows the agent to specify that a record has passed the first round of QC after reviewing the record|CC Actas Pass - Esta opción permite al agente para especificar que un registro ha pasado la primera ronda de control de calidad después de examinar el expediente| +QC Record Finish -<\/B> This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record|Registro de control de calidad en Finalizar - Esta opción permite al agente para especificar que un registro ha terminado la segunda ronda de control de calidad después de revisar el pasado registro| +QC Record Commit -<\/B> This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone|Registro de control de calidad Compro - Esta opción permite al agente para especificar que un registro se ha cometido en el control de la calidad. Ya no puede ser modificado por cualquiera| +QC Allowed Campaigns -<\/B> This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system|CC permitidas Campañas - Esta es una lista de seleccionables Campañas que los miembros de este grupo de usuarios podrá CC. El ALL-CAMPAÑAS opción permite a los usuarios en este grupo para cualquier campaña de control de la calidad en el sistema| +QC Allowed Inbound Groups -<\/B> This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system|CC permitidas entrantes Grupos - Esta es una lista de seleccionables de entrada que los miembros de grupos de este grupo de usuarios podrá CC. TODOS LOS GRUPOS-La opción permite a los usuarios en este grupo de usuarios a cualquier entrada del grupo de CC en el sistema| +QC Enabled: |CC Activado:| +QC User Level: |CC Nivel de Usuario:| +QC Pass: |QC Pass:| +QC Finish: |CC Acabado:| +QC Commit: |CC Compro:| +Modify Nothing|Modificar Nada| +Modify Nothing Except Status|Modificar Nada Salvo Estado| +Modify All Fields|Modificar todos los campos| +Verify First Round of QC|Compruebe la primera ronda de CC| +View QC Statistics|Ver estadísticas de CC| +Ability to Modify FINISHed records|Capacidad para modificar los registros acabado| +Manager Level|Gestor de Nivel| +USERS CAN VIEW ANY CAMPAIGN|Los usuarios pueden ver cualquier campaña| +USERS CAN QC ANY CAMPAIGN|USUARIOS PUEDEN CC CUALQUIER CAMPAÑA| +USERS CAN QC ANY INBOUND GROUP|USUARIOS PUEDEN CC entrantes CUALQUIER GRUPO| +QC Allowed Campaigns: |CC permitidas Campañas:| +QC Allowed Inbound Groups: |CC permitidas entrantes Grupos:| +Queue Priority -<\/B> This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode|Cola de prioridad - Este valor se utiliza para definir el orden en que las llamadas salientes de esta campaña debe responderse en relación con las llamadas entrantes si esta campaña está en el modo de mezcla| +Queue Priority: |Cola de prioridad:| +Drop Action: |Caída de Acción:| +Drop Transfer Group: |Grupo de Transferencia de caída:| +Drop Action -<\/B> This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below|Acción gota - Este menú le permite elegir lo que le sucede a una llamada cuando se ha estado esperando durante más de lo establecido en la Convocatoria de caída Segundos campo. Colgar simplemente colgar la llamada, enviar el mensaje de llamar a la Extensión de caída que ha definido a continuación, Buzón de voz se envía la llamada a la casilla de voz que ha definido a continuación y IN_GROUP enviará la convocatoria a la entrada del Grupo que se define a continuación| +Drop Exten -<\/B> If Drop Action is set to MESSAGE, this is the dial plan extension that the call will be sent to if it reaches Drop Call Seconds|Caída Extensión - En caso de caída de acción se fija a un mensaje, este es el dial plan de ampliación que la convocatoria se enviará a si llega a soltar Convocatoria Segundos| +Drop Call Seconds -<\/B> The number of seconds a call will stay in queue before being considered a DROP|Llame a gota Segundos - el número de segundos de una llamada se quedará en la cola antes de ser considerado uno de DROP| +Drop Transfer Group -<\/B> If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds|Grupo de Transferencia de gota - En caso de caída de Acción se establece en IN_GROUP, la llamada será enviada a este grupo entrantes si llega a soltar Convocatoria Segundos| +QC SETTINGS FOR THIS CAMPAIGN|AJUSTES CC para esta campaña| +QC Enabled: |CC Activado:| +QC Statuses: |CC estados:| +Modify Campaign QC Settings|Modificar la campaña de CC Configuración| +QC Enabled -<\/B> Setting this field to Y allows for the agent Quality Control features to work. Default is N|CC Activado - Configuración Y a este campo permite que el agente de control de calidad de elementos de trabajo. El valor predeterminado es N| +QC Statuses -<\/B> This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review|CC estados - Esta zona es donde se selecciona el que lleva de estados debe ser pasado por el sistema de CC. Coloque una marca de verificación junto a la situación que desea revisar CC| +QC SETTINGS NOT MODIFIED|AJUSTES CC NO MODIFICADA| +QC SETTINGS MODIFIED|AJUSTES CC MODIFICADOS| +QC WebForm Address -<\/B> This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen|CC Webform Dirección - Esta es la dirección del sitio web que un agente de control de calidad puede ir a al hacer clic en el enlace Formulario de Asistencia en la pantalla de control de calidad| +QC Script -<\/B> This is the script that can be used by QC agents in the SCRIPT tab in the QC screen|CC Escritura - Este es el script que puede ser utilizada por agentes de control de la calidad en la secuencia de comandos en la ficha de CC pantalla| +QC WebForm: |Formulario de Asistencia CC:| +QC Script|Control de calidad de secuencias de comandos| +In-Group Recording Override -<\/B> This field allows for the overriding of the campaign call recording setting. This setting can be overridden by the vicidial_user recording override setting. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording|En el Grupo de grabación Sobreescribe - Este campo permite la superposición de la campaña llamada de ajuste de grabación. Este ajuste puede ser anulado por la grabación vicidial_user sobre el establecimiento. MINUSVALIDOS no anular la campaña de ajuste de grabación. NUNCA deshabilitará la grabación en el cliente. OnDemand es el valor por defecto y permite que el agente para iniciar y detener la grabación cuando sea necesario. ALLCALLS empezará a grabar en el cliente cuando se envía una llamada a un agente. ALLFORCE empezará a grabar en el cliente cuando se envía una llamada a un agente que el agente de ninguna opción para detener la grabación| +In-Group Recording Filename -<\/B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE|En Nombre de archivo del grupo de grabación - Este campo sobre la Campaña de grabación régimen de nombramiento de ficheros si no está definido en ninguno. La variables son permitidos CAMPAÑA CUSTPHONE FULLDATE TINYDATE EPOCH AGENTE. El valor por defecto es FULLDATE_AGENT y se vería así 20051020-103108_6666. Otro ejemplo es CAMPAIGN_TINYDATE_CUSTPHONE que se vería así TESTCAMP_51020103108_3125551212. 50 caracteres máx. El valor predeterminado es NINGUNA| +In-Group Recording Override: |-Grupo de grabación en Sobrescribir:| +In-Group Recording Filename: |En el Grupo de grabación de archivo:| +ADDING VICIDIAL QC STATUS CODE|AGREGANDO VICIDIAL QC ESTADO CÓDIGO| +MODIFY VICIDIAL QC STATUS CODE|MODIFICAR VICIDIAL CC ESTADO CÓDIGO| +VICIDIAL QC STATUS CODES|CÓDIGOS DE ESTADO VICIDIAL CC| +The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length.|El Control de Calidad, sistema de control de calidad dentro de VICIDIAL tiene su propio conjunto de códigos de estado separados de los de la gestión de llamadas de funciones VICIDIAL. CC statuse códigos debe estar entre 2 y 8 caracteres de longitud y no contienen caracteres especiales, como un espacio o de colon. El código de estado de CC descripción debe estar entre 2 y 30 caracteres de longitud.| + QC Status Codes |Códigos de estado de CC| +VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM: |CC CÓDIGOS VICIDIAL ESTADO DENTRO DE ESTE SISTEMA:| +ADD NEW QC STATUS CODE|Añadir CC NUEVO CÓDIGO ESTADO| +QC STATUS CODE NOT DELETED|CC Código del Estatuto no se eliminan| +QC STATUS CODE DELETED: |CC Código SUPRIMIDO:| +QC STATUS CODE NOT MODIFIED |CC ESTADO CÓDIGO NO MODIFICADA| +QC STATUS CODE MODIFIED: |CC Código MODIFICADOS:| +the qc status code needs to be at least 1 characters in length|la qc código de estado debe ser por lo menos 1 caracteres de longitud| +the qc status code name needs to be at least 1 characters in length|el código de estado qc nombre debe ser por lo menos 1 caracteres de longitud| +QC STATUS CODE NOT ADDED |CC Código de estado no se añade| +there is already a qc status code in the system with this name:|ya hay una qc código de estado en el sistema con el nombre:| +QC STATUS CODE ADDED: |CC Código AÑADIDO:| +code must be between 1 and 8 characters in length|código debe estar entre 1 y 8 caracteres de longitud| +code name must be between 2 and 30 characters in length|nombre de código debe estar entre 2 y 30 caracteres de longitud| +CALL HANGUP REASON STATS|CONVOCATORIA colgar RAZÓN ESTADÍSTICAS| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field, IN_GROUP will send the call to the inbound group selected in the After Hours Transfer Group select list. Default is MESSAGE|Horas después de Acción - La acción para llevar a cabo si es después de horas, tal como se definen en el tiempo de atención para este grupo entrante. Colgar inmediatamente colgar la llamada, MESSASGE de reproducir el archivo en el mensaje después de las horas Filenam campo, EXTENSIÓN enviará la llamada a la extensión del horario en el dialplan de voz y se envía la llamada al buzón de voz que figuran en el cuadro Después de horas de voz sobre el terreno , IN_GROUP enviará la convocatoria a la entrada seleccionada en el grupo después de las horas Grupo de Transferencia de seleccionar la lista. El valor predeterminado es MENSAJE| +After Hours Transfer Group -<\/B> If After Hours Action is set to IN_GROUP, the call will be sent to this inbound group if it enters the in-group outside of the call time scheme defined for the in-group|Horas después de la transferencia Grupo - Si después de las horas de Acción se establece en IN_GROUP, la llamada será enviada a este grupo de entrada si ésta entra en el grupo de fuera de la convocatoria régimen de tiempo definido para el grupo en -| +After Hours Transfer Group: |Horas después de la transferencia del Grupo:| +Total calls taken in to this In-Group:|Total de llamadas a adoptarse en este In-Grupo:| +CALL HOLD TIME BREAKDOWN IN SECONDS|LLAMADA EN ESPERA TEMNE DE SEGUNDOS| +Date Range:|Rango de Fecha:| +ADDING NEW PHONE ALIAS|AGREGAR NUEVO TELÉFONO ALIAS| +ADD NEW PHONE ALIAS|Añadir nuevo teléfono ALIAS| +MODIFY PHONE ALIAS|MODIFICAR TELÉFONO ALIAS| +DELETE PHONE ALIAS|ELIMINAR TELÉFONO ALIAS| +PHONE ALIAS LIST|TELÉFONO ALIAS LISTA| +Phone Alias List|Teléfono Alias Lista| +Add A New Phone Alias|Añadir un nuevo teléfono Alias| +ADD A NEW PHONE ALIAS|AGREGAR UN NUEVO TELÉFONO ALIAS| +Alias ID: |Alias ID:| +Alias Name: |Alias Nombre:| +Phone Logins List: |Teléfono Logins Lista:| +PHONE ALIAS NOT ADDED|TELÉFONO ALIAS NO AÑADIDO| +there is already a Phone Alias in the system with this ID|ya existe un alias de teléfono en el sistema con este ID| +there is already a Phone Login in the system with this ID|ya existe un Teléfono de inicio de sesión en el sistema con este ID| +PHONE ALIAS ADDED|TELÉFONO ALIAS AÑADIDO| +PHONE ALIAS NOT MODIFIED|TELÉFONO ALIAS NO MODIFICADA| +PHONE ALIAS MODIFIED|TELÉFONO ALIAS MODIFICADOS| +PHONE ALIAS NOT DELETED|TELÉFONO ALIAS no se eliminan| +PHONE ALIAS DELETION CONFIRMATION|TELÉFONO ALIAS SUPRESIÓN DE CONFIRMACIÓN| +Click here to delete phone alias|Haga clic aquí para eliminar alias teléfono| +PHONE ALIAS DELETION COMPLETED|TELÉFONO ALIAS SUPRESIÓN RELLENARSE| +PHONE ALIAS LISTINGS|TELÉFONO ALIAS LISTADOS| +there is already a Phone alias in the system with this login|ya existe un Teléfono de alias en el sistema con esta información de acceso| +there is already a Phone in the system with this login|ya hay un teléfono en el sistema con esta información de acceso| +DELETE THIS PHONE ALIAS|ELIMINAR ESTE TELÉFONO ALIAS| +MODIFY A PHONE ALIAS RECORD|MODIFICAR UN TELÉFONO ALIAS REGISTRO| +Alias ID -<\/B> The ID of the alias used to allow for phone load balanced logins. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Alias ID - el ID de los alias utilizados para permitir el balanceo de carga de teléfono de acceso. sin espacios ni otros caracteres especiales permitidos. Debe estar entre 2 y 20 caracteres de longitud| +Alias Name -<\/B> The name used to describe a phones alias, Must be between 2 and 50 characters in length|Alias Nombre - El nombre utilizado para describir un alias de teléfonos, debe ser entre 2 y 50 caracteres de longitud| +Phones Logins List -<\/B> The comma separated list of phone logins used when an agent logs in using phone load balanced logins. The Agent application will find the active server with the fewest agents logged into it and place a call from that server to the agent upon login|Lista de teléfonos Logins - La lista separada por comas de teléfono de acceso utilizado cuando un agente en la utilización de registros de teléfono de acceso equilibrado de carga. El agente de aplicación se encuentra el servidor activo con el menor número de agentes registrados en él y hacer una llamada de ese servidor con el agente al inicio de sesión| +PHONES WITHIN THIS PHONES ALIAS|TELÉFONOS DENTRO DE ESTE PHONES ALIAS| +Add New Shift|Añadir nuevo Mayúsculas| +New Shift Addition|Nueva Mayús adjunta| +Modify Shift|Modificar Mayúsculas| +Delete Shift|Eliminar Mayúsculas| +Shifts|Turnos| +Shift ID -<\/B> This is the short name of a Vicidial Shift Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 20 characters, minimum of 2 characters|Cambio de ID - Este es el nombre corto de un Vicidial Mayús Definición. Este debe ser un identificador único. No utilice espacios ni puntuacion para este campo. 20 caracteres como máximo, mínimo de 2 caracteres| +Shift Name -<\/B> This is a more descriptive name of the Shift Definition. This is a short summary of the Shift definition. max 50 characters, minimum of 2 characters|Cambio de nombre - Este es un nombre más descriptivo de la Definición Mayúsculas. Este es un breve resumen de la definición Mayús. 50 caracteres como máximo, mínimo de 2 caracteres| +Shift Start Time -<\/B> This is the time that the campaign shift begins. Must only be numbers, 9:30 AM would be 0930 and 5:00 PM would be 1700|Hora de inicio cambio - Este es el momento en que comienza la campaña por turnos. Sólo deben ser números, serían las 9:30 AM y 5:00 AM 0930 sería 1700| +Shift Length -<\/B> This is the time in Hours and Minutes that the campaign shift lasts. 8 hours would be 08:00 and 7 hours and 30 minutes would be 07:30|Longitud cambio - Este es el tiempo en horas y minutos que dura la campaña por turnos. 8 horas sería 08:00 y 7 horas y 30 minutos sería 07:30| +Shift Weekdays -<\/B> In this section you should choose the days of the week that this shift is active|Cambio semana - En esta sección usted debe elegir los días de la semana que este cambio está activo| +Show Shifts|Mostrar cambios| +Add A New Shift|Añadir un nuevo cambio| +Shift ID: |Cambio ID:| +Shift Name: |Cambio de nombre:| +Shift Start Time: |Cambio Hora de inicio:| +Shift End Time: |Cambio Hora de finalización:| +SHIFT DEFINITION NOT ADDED|MAYÚS DEFINICIÓN NO AÑADIDO| +there is already a shift entry with this ID|ya hay un cambio de entrada con este ID| +Shift ID and name must be at least 2 characters in length|Identificación y cambio de nombre debe ser al menos de 2 caracteres de longitud| +Shift Start Time must be 4 digits in length and be a valid time|Hora de inicio cambio debe ser de 4 dígitos de longitud y una hora válida| +Shift Length must be 5 characters in length and be 24 hours or less|Longitud cambio debe ser de 5 caracteres de longitud y 24 horas o menos| +SHIFT ADDED: |MAYÚS AÑADIDO:| +MODIFY A SHIFT|MODIFICAR UN CAMBIO| +USER GROUPS USING THIS SHIFT:|GRUPOS DE USUARIOS DE UTILIZAR ESTE CAMBIO:| +DELETE THIS SHIFT DEFINITION|ELIMINAR ESTA MAYÚS DEFINICIÓN| +MODIFY A SHIFT|MODIFICAR UN CAMBIO| +SHIFT NOT DELETED|SHIFT no se eliminan| +SHIFT DELETION CONFIRMATION: |MAYÚS SUPRESIÓN DE CONFIRMACIÓN:| +Click here to delete shift|Haga clic aquí para suprimir el cambio| +SHIFT DELETION COMPLETED:|MAYÚS SUPRESIÓN RELLENARSE:| +SHIFT MODIFIED|MAYÚS MODIFICADOS| +SHIFT LISTINGS:|MAYÚS LISTADOS:| +Shift Weekdays: |Cambio semana:| +Sunday|Domingo| +Monday|Lunes| +Tuesday|Martes| +Wednesday|Miércoles| +Thursday|Jueves| +Friday|Viernes| +Saturday|Sábado| +Group Shifts: |Grupo de cambios:| +Group Shifts -<\/B> This is a selectable list of shifts that can restrict the agents login time on the system|Grupo de cambios - Esta es una lista de cambios seleccionables que pueden limitar el tiempo de acceso de agentes en el sistema| + Timeclock|Timeclock| +Timeclock End Of Day -<\/B> This setting defines when all users are to be auto logged out of the timeclock system. Only runs once a day. must be only 4 digits 2 digit hour and 2 digit minutes in 24 hour time. Default is 0000|Timeclock Fin de Día - Este ajuste define cuando todos los usuarios se van a auto cerrado la sesión de la timeclock sistema. Sólo se ejecuta una vez al día. debe ser sólo el 4 dígitos dígitos 2 horas y 2 minutos en cifras de 24 horas. Por defecto es 0000| +Timeclock Last Auto Logout -<\/B> This field displays the date of the last auto-logout|Última sesión Timeclock Auto - Este campo muestra la fecha de la última sesión de auto -| +Timeclock Last Auto Logout: |Última Timeclock Auto Desconexión:| +Timeclock End Of Day: |Timeclock Fin de Día:| +SURVEY SETTINGS FOR THIS CAMPAIGN:|ENCUESTA SOBRE AJUSTES EN ESTA CAMPAÑA:| +Modify Campaign Survey|Modificar la campaña Encuesta| +Survey First Audio File -<\/B> This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign.|Primera encuesta de archivo de audio - Este es el nombre de archivo de audio que se reproduce en cuanto el cliente coge el teléfono cuando se ejecuta una campaña de estudio.| +Survey DTMF Digits -<\/B> This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are |Encuesta dígitos DTMF - Este campo es donde se define los dígitos que un cliente puede pulsar como una opción en una encuesta sobre la campaña. válidos son los dígitos DTMF| +Survey Not Interested Digit -<\/B> This field is where you define the customer digit pressed that will show they are Not Interested.|No encuesta interesadas dígitos - Este campo es donde se define el cliente presiona dígitos que indican que no están interesados.| +Survey Not Interested Status -<\/B> This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list.|Estudio de estado no le interesa - Este es un campo en el que seleccione el estado que debe utilizarse para no estoy interesado. Si se utiliza DNC y la campaña está configurada para utilizar DNC entonces el número de teléfono se añade automáticamente a la lista VICIDIAL interior DNC.| +Survey Opt-in Audio File -<\/B> This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken.|Encuesta de Opt-in de archivos de audio - Este es el nombre de archivo de audio que se reproduce cuando el cliente ha decidido participar en la encuesta, no esta opción, o no respondió si la respuesta no-acción se establece a OptOut. Después de este archivo de audio se reproduce, el método de encuesta se toman medidas.| +Survey Not Interested Audio File -<\/B> This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up|No encuesta interesadas archivo de audio - Este es el nombre de archivo de audio que se reproduce cuando el cliente ha optado-de la encuesta, no ha optado-o no respondió si la respuesta no-acción se establece en OptIn. Después de este archivo de audio se reproduce, la llamada se colgó| +Survey Method -<\/B> This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory.|Método de encuesta - Esta opción se define lo que sucede a una convocatoria después de que el cliente ha optado-en. AGENT_XFER enviará la convocatoria a la siguiente agente disponible. Buzón de voz se envía la llamada al buzón de voz de la caja que se especifica en el campo de voz. EXTENSIÓN enviará al cliente a la extensión se define en la Encuesta Xfer campo Extensión. Colgar se cuelgue el cliente. CAMPREC_60_WAV enviará al cliente a tener una grabación con su respuesta, esta grabación se coloca en una carpeta con el nombre de la campaña dentro de la Campaña de Estudio de grabación Directorio.| +Survey No-Response Action -<\/B> This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit.|Estudio n-Respuesta Acción - Este es donde se define lo que ocurrirá si no hay respuesta a la pregunta de la encuesta. OptIn sólo enviar la llamada al método de encuesta si el cliente pulsa una dígitos DTMF. OptOut enviará al cliente en el método de encuesta, aun cuando no presiona una dígitos DTMF.| +Survey Response Digit Map -<\/B> This is the section where you can define a description to go with each dtmf digit option that the customer may select.|Respuesta encuesta dígitos Mapa - Esta es la sección donde usted puede definir una descripción para ir dígitos DTMF con cada opción que el cliente puede seleccionar.| +Survey Xfer Extension -<\/B> If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension|Encuesta Xfer Extensión - Si el método de encuesta de EXTENSIÓN se selecciona entonces la llamada de cliente se dirige a esta extensión dialplan| +Survey Campaign Recording Directory -<\/B> If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory.|Estudio de grabación Campaña Directorio - Si el método de encuesta de CAMPREC_60_WAV luego se selecciona la respuesta de los clientes se registran y se coloca en un directorio llamado después de la campaña dentro de este directorio.| +SURVEY SETTINGS NOT MODIFIED|ENCUESTA DE VALORES NO MODIFICADA| +SURVEY SETTINGS MODIFIED|ENCUESTA DE AJUSTES MODIFICADOS| +Survey First Audio File|Primera encuesta de archivo de audio| +Survey DTMF Digits|Encuesta dígitos DTMF| +Survey Not Interested Digit|No encuesta interesadas dígitos| +Survey Not Interested Status|Estudio de estado no le interesa| +Survey Opt-in Audio File|Encuesta de Opt-in de archivos de audio| +Survey Not Interested Audio File|No encuesta interesadas archivo de audio| +Survey Method|Método de estudio| +Survey No-Response Action|Estudio n-Respuesta de acción| +Survey Response Digit Map|Respuesta encuesta dígitos Mapa| +Survey Xfer Extension|Encuesta Xfer Extensión| +Survey Campaign Recording Directory|Estudio de grabación Campaña Directorio| +Add Timeclock Log Record -<\/B> This option allows the user to add records to the timeclock log|Añadir Timeclock Registrarse Expediente - Esta opción permite al usuario añadir registros a la timeclock registro| +Modify Timeclock Log Record -<\/B> This option allows the user to modify records in the timeclock log|Modificar Timeclock Registrarse Expediente - Esta opción permite al usuario modificar los registros en el registro timeclock| +Delete Timeclock Log Record -<\/B> This option allows the user to delete records in the timeclock log|Eliminar Timeclock Registrarse Expediente - Esta opción permite al usuario borrar los registros en el registro timeclock| +Add Timeclock Log Record|Añadir Timeclock Registrarse Registro| +Modify Timeclock Log Record|Modificar Timeclock Registrarse Registro| +Delete Timeclock Log Record|Eliminar Timeclock Registrarse Registro| +USER GROUP TIMECLOCK STATUS REPORT|Grupo de Usuarios de TIMECLOCK INFORME SOBRE LA SITUACIÓN| +Click here to see the Timeclock Status for this user group|Haga clic aquí para ver el Timeclock Estado para este grupo de usuarios| +ADD NUMBERS TO THE DNC LIST|Añadir números a la DNC LISTA| +Phone Numbers: |Números de teléfono:| +one phone number per line only|un número de teléfono por línea sólo| +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 numbers to this list so that they will not be called by campaigns that use the internal DNC list|Lista DNC VICIDIAL - Esta lista de No Llamar contiene cada lugar que se ha establecido en un estado de la DNC en el sistema. A través de la LISTAS - AÑADIR AL NÚMERO DNC página usted puede agregar manualmente los números de esta lista a fin de que no van a ser llamados por las campañas que utilizan la lista interna DNC| + Time Sheet |Hoja de tiempo| +Timeclock Record Edit|Timeclock Record Edit| +Default date format with year month day|Por defecto el formato de fecha con el año mes día| +USA date format with month day year|EE.UU. fecha con el formato mes día año| +European date format with day month year|Europea con el formato de fecha día mes año| +Text date format with abbreviated month day|Texto con formato de fecha abreviado mes día| +followed by 24 hour time|seguido por 24 horas| +followed by 12 hour time|seguido por 12 horas| +Agent Screen Header Date Format -<\/B> This menu allows you to choose the format of the date that shows up at the top of the VICIDIAL agent screen. The options for this setting are: default is|Agente de la pantalla de encabezado Formato de fecha - Este menú le permite elegir el formato de la fecha que aparece en la parte superior de la pantalla VICIDIAL agente. Las opciones para este ajuste son los siguientes: el valor predeterminado es| +Agent Screen Customer Date Format -<\/B> This menu allows you to choose the format of the customer time zone date that shows up at the top of the Customer Information section of the VICIDIAL agent screen. The options for this setting are: default is|Agente del cliente Fecha Formato de pantalla - Este menú le permite elegir el formato de la fecha los clientes de zona horaria que aparece en la parte superior de la sección de información al cliente de la agencia de VICIDIAL pantalla. Las opciones para este ajuste son los siguientes: el valor predeterminado es| +Agent Screen Customer Phone Format -<\/B> This menu allows you to choose the format of the customer phone number that shows up in the status section of the VICIDIAL agent screen. The options for this setting are: default is|Agente Cliente Teléfono Formato de pantalla - Este menú le permite elegir el formato del cliente el número de teléfono que aparece en el estado de la agente VICIDIAL pantalla. Las opciones para este ajuste son los siguientes: el valor predeterminado es| +dash separated phone number|guión separado el número de teléfono| +dash separated number with area code in parenthesis|guión separados número con código de área entre paréntesis| +No formatting|N de formato| +with space after city code|con el espacio después del código de ciudad| +space separated phone number|espacio separado el número de teléfono| +Agent Screen Header Date Format|Agente de la pantalla de encabezado Formato de fecha| +Agent Screen Customer Date Format|Agente del cliente Fecha Formato de pantalla| +Agent Screen Customer Phone Format|Agente Cliente Teléfono Formato de pantalla| +ERROR- There is a problem with the data that you entered, please go back|ERROR-Hay un problema con los datos que ha introducido, por favor, volver| +A timeclock session cannot overlap another timeclock session|Un período de sesiones timeclock no puede superponerse timeclock otro período de sesiones| +Disable Alter Customer Phone -<\/B> If set to Y, does not change the customer phone number when an agent dispositions the call. Default is Y|Deshabilitar Modificar Cliente Teléfono - Si se pone a Y, no cambia el número de teléfono del cliente, cuando un agente disposiciones de la llamada. Y es por defecto| +Agent API Access -<\/B> This option allows the account to be used with the vicidial agent API commands|Agente de acceso a la API - Esta opción permite que la cuenta que se utilizará con el agente de la API de comandos vicidial| +Agent Alter Customer Phone Override -<\/B> This option will override whatever the option is in the campaign for altering of customer phone number. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer phone number, no matter what the campaign setting is. Default is NOT_ACTIVE|Modificar Agente Cliente Teléfono Sobreescribe - Esta opción será el que la opción está en la campaña para modificar el número de teléfono del cliente. NOT_ACTIVE utilizará cualquier ajuste es para la presente campaña. ALLOW_ALTER siempre permiten el agente de alterar el número de teléfono del cliente, no importa lo que la campaña de ajuste. El valor predeterminado es NOT_ACTIVE| +Agent API Active -<\/B> If set to 1, this will allow the Agent API interface to function. Default is 0|Agente de la API de Active - Si se pone a 1, esto permitirá a la interfaz API de agente para su funcionamiento. Por defecto es 0| +Agent Alter Customer Phone Override: |Modificar Agente Cliente Sobreescribe Teléfono:| +Agent API Access: |Agente de acceso a la API:| +Disable Alter Customer Phone: |Deshabilitar Modificar Cliente Teléfono:| +Agent API Active: |Agente activo de API:| +Agent Display Queue Count -<\/B> If set to Y, when a customer is waiting for an agent, the Queue Calls display at the top of the agent screen will turn red and show the number of waiting calls. Default is Y|Agente Mostrar cola Conde - Si se establece a Y, cuando un cliente está a la espera de un agente, la cola de llamadas en la pantalla superior de la pantalla agente se iluminará en rojo y muestran el número de llamadas en espera. Y es por defecto| +Agent Display Queue Count: |Agente Mostrar cola Cuenta:| +agents in dead calls|agentes muertos en las llamadas| +QC Last Pull Time: |Tire de CC Última Hora:| +and less than 43200 seconds or 12 hours|y menos de 43.200 segundos o 12 horas| +LEADS AT LIMIT|LLEVA EN EL LÍMITE| +Lead counts taken from active lists in the campaign only|Llevar cuenta de activos adoptadas listas sólo en la campaña| +QC Get Record Launch-<\/B> This allows one of the following actions to be triggered upon a QC agent receiving a new record|CC Obtener Registro de lanzamiento- Esto permite que una de las siguientes acciones, que se activará en un agente de control de la calidad de recibir un nuevo registro| +QC Show Recording -<\/B> This allows for a recording that may be linked with the QC record to be display in the QC agent screen|Mostrar control de la calidad de grabación - , lo que permite una grabación que puede estar vinculado con el control de la calidad de registro que se mostrará en pantalla el agente de control de calidad| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions|CC Mayúsculas - Este es el paso de tiempo utilizado para tirar de registros de control de calidad para una campaña. Los días de la semana no se tienen en cuenta para estas funciones| +QC Get Record Launch|CC Obtener Registro de lanzamiento| +QC Show Recording|Mostrar control de la calidad de grabación| +QC Shift|CC Mayúsculas| +Inbound Group QC Settings|Grupo de Ajustes de entrada de CC| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions|CC Mayúsculas - Este es el paso de tiempo utilizado para tirar de un control de calidad para los registros inbound_group. Los días de la semana no se tienen en cuenta para estas funciones| +The Sale Category and Dead Lead Category are both used by the List Suggestion system when analyzing list statistics.|La venta y Categoría Categoría Principal Muerto son utilizados tanto por el sistema de lista de sugerencias en el análisis de estadísticas de la lista.| +Sale Category: |Categoría de venta:| +Dead Lead Category: |Muerto líder Categoría:| +Manual Dial Filter -<\/B> This allows you to filter the calls that agents make in manual dial mode for this campaign by any combination of the following: DNC - to kick out, CAMPAIGNLISTS - the number must be within the lists for the campaign, NONE - no filter on manual dial or fast dial lists|Manual de Acceso telefónico Filtro - Esto le permite filtrar las llamadas que hacen los agentes en el dial de modo de manual para esta campaña por cualquier combinación de los siguientes: DNC - a expulsar, CAMPAIGNLISTS - el número debe estar dentro de las listas para la campaña, NINGUNA - sin filtro en el manual de marcación rápida o de marcación listas| +Manual Dial Filter: |Manual de Acceso telefónico Filtro:| +Agent Screen Clipboard Copy -<\/B> THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer|Agente de pantalla Portapapeles Copiar - esta función por el momento sólo se han permitido para Internet Explorer. Esta característica le permite seleccionar un campo que será copiado al portapapeles el equipo del agente ordenador a una llamada que se envían a un agente. Usos comunes para ello son para permitir la fácil pegar los números de cuenta o números de teléfono en el legado de las aplicaciones cliente en el equipo agente| +Agent Screen Clipboard Copy|Agente de pantalla Portapapeles Copiar| +EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record.|PRORROGADO suplentes números son números cargados en el sistema fuera de la pantalla de información estándar. PRORROGADO utilizando usted puede tener cientos de números de teléfono de un solo registro de cliente.| +Agent Screen Extended Alt Dial -<\/B> This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information|Agente de pantalla ampliada Alt Dial - Esta característica permite a los agentes el acceso ampliado a los números de teléfono de suplentes lleva más allá de la norma Alt Teléfono y Address3 campos que pueden ser utilizados en VICIDIAL más allá de los números de teléfono de los principales número de teléfono. La extensión números de teléfono se puede marcar automáticamente utilizando la auto-Alt-función Marcación VICIDIAL en la configuración de la campaña, pero activar esta función de agente de pantalla también permitirá que el agente a llamar a estos números de la pantalla de su mandatario, así como editar su información| +Agent Screen Extended Alt Dial:|Agente de pantalla ampliada Alt telefónico:| +Use Campaign DNC List -<\/B> This defines whether this campaign is to filter leads against a DNC list that is specific to that campaign only. If it is set to Y, the hopper will look for each phone number in the campaign-specific DNC list before placing it in the hopper. If it is in the campaign-specific DNC list then it will change that lead status to DNCC so it cannot be dialed. Default is N.|Campaña de uso Lista DNC - Este define si esta campaña es un filtro contra el DNC lleva lista que es específico de la campaña únicamente. Si se configura a Y, la tolva se verá para cada número de teléfono en la campaña específica de DNC lista antes de colocarla en la tolva. Si es en la campaña específica de DNC se lista a continuación, cambiar de estado que llevan a DNCC por lo que no pueden ser marcados. El valor por defecto es N.| +Use Campaign DNC List|Campaña de uso Lista DNC| +and possibly the campaign-specific DNC list|y, posiblemente, la campaña específica de DNC lista| +There is also the option to add leads to the campaign-specific DNC lists for those campaigns that have them|También existe la opción de añadir conduce a la campaña específica de DNC listas para esas campañas que les han| +NOTE: Copying a campaign will copy all settings from the master campaign you select, but it will not copy a campaign-specific DNC list if there was one on the selected master campaign|NOTA: Copia de una campaña de copiar todos los ajustes del maestro campaña que seleccione, pero no va a copiar una campaña específica de DNC lista si hay un maestro seleccionado en la campaña| +Add New |Agregar nuevo| +Copy |Copiar| +New DID Addition|Nueva DID adjunta| +New Copied DID Addition|Nueva copiado DID adjunta| +Modify |Modificar| +Delete |Borrar| +Play Place in Line -<\/B> This defines whether the caller will hear their place in line when they enter the queue as well as when they hear the announcemend. Default is N|Lugar jugar en línea - Este define si la persona que llama escuchará su lugar en la línea cuando entran en la cola, así como cuando escuchan la announcemend. El valor predeterminado es N| +Play Estimated Hold Time -<\/B> This defines whether the caller will hear the estimated hold time before they are transferred to an agent. Default is N|Juega Mantenga Tiempo estimado - Este define si la persona que llama escuchará la estimación de tiempo de espera antes de ser transferido a un agente. El valor predeterminado es N| +Hold Time Option -<\/B> This allows you to specify the routing of the call if the estimated hold time is over the amount of seconds specified below. Default is NONE|Mantenga la opción Tiempo - Esto le permite especificar la ruta de la llamada si el tiempo de espera estimado es superior a la cantidad de segundos que se especifican a continuación. El valor predeterminado es NINGUNA| +Hold Time Option Seconds -<\/B> If Hold Time Option is set to anything but NONE, this is the number of seconds of estimated hold time that will trigger the hold time option. Default is 360 seconds|Mantenga la opción Tiempo Segundos - Si el tiempo de la opción se establece en algo, pero ninguno, este es el número de segundos de tiempo de espera estimado que el tiempo de activar la opción. El valor por defecto es 360 segundos| +Hold Time Option Extension -<\/B> If Hold Time Option is set to EXTENSION, this is the dialplan extension that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Mantenga la opción Tiempo de Extensión - Si el tiempo de la opción se fija a la extensión, esta es la extensión dialplan que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos| +Hold Time Option Voicemail -<\/B> If Hold Time Option is set to VOICEMAIL, this is the voicemail box that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Mantenga la opción Tiempo de voz - Si el tiempo de la opción está establecida en voz, esta voz es la caja que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos| +Hold Time Option Transfer In-Group -<\/B> If Hold Time Option is set to IN_GROUP, this is the inbound group that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Opción de Transferencia de celebrar Tiempo-Grupo A - Si el tiempo de la opción está establecida en IN_GROUP, este es el grupo de entrada que la convocatoria se enviará a si la estimación de tiempo de espera sobrepasa el tiempo de la opción Segundos| +Hold Time Option Callback Filename -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the filename prompt that is played before the call is logged as a new lead to the list ID specified below if the estimated hold time exceeds the Hold Time Option Seconds|Mantenga la opción Tiempo de llamada de archivo - Si el tiempo de la opción está establecida en CALLERID_CALLBACK, este es el símbolo del nombre de archivo que se juega antes de la llamada se registra como un nuevo lugar a la lista de identificación se especifican a continuación si el tiempo de espera estimado es superior a la Mantenga la opción Tiempo Segundos| +Hold Time Option Callback List ID -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the List ID the call is added to as a new lead if the estimated hold time exceeds the Hold Time Option Seconds|Mantenga la opción Tiempo de llamada Lista ID - Si el tiempo de la opción está establecida en CALLERID_CALLBACK, esta es la lista de ID de la llamada, se añadirá como un nuevo lugar si el tiempo de espera estimado es superior a la opción Tiempo de Espera Segundos| +Hold Recall Transfer In-Group -<\/B> If a customer calls back to this in-group more than once and this is not set to NONE, then the call will automatically be sent on to the In-Group selected in this field. Default is NONE|Recordatorio de Transferencia de celebrar en Grupo - Si un cliente pide de nuevo a este grupo en más de una vez y esto no está establecido en NINGUNO, entonces la llamada será automáticamente enviado al Grupo de In-seleccionado en este campo . El valor predeterminado es NINGUNA| +No Delay Call Route -<\/B> Setting this to Y will remove all wait times and audio prompts and attempt to send the call right to an agent. Does not override welcome message or on hold prompt settings. Default is N|N Retraso de llamada Ruta - Configuración Y esto eliminará todos los tiempos de espera y anuncios de audio y tratar de enviar la llamada a un agente de la derecha. No anula el mensaje de bienvenida o celebrar la configuración rápida. El valor predeterminado es N| +Play Welcome Message -<\/B> These settings select when to play the defined welcome message, ALWAYS will play it every time, NEVER will never play it, IF_WAIT_ONLY will only play the welcome message if the call does not immediately go to an agent, and YES_UNLESS_NODELAY will always play the welcome message unless the NO_DELAY setting is enabled. Default is ALWAYS|Reproducir Mensaje de Bienvenida - Esta configuración seleccione para jugar cuando se define el mensaje de bienvenida, SIEMPRE desempeñará cada vez, NUNCA nunca jugar, IF_WAIT_ONLY sólo reproducirá el mensaje de bienvenida si la llamada no ir inmediatamente a un agente , y siempre YES_UNLESS_NODELAY reproducir el mensaje de bienvenida NO_DELAY menos que el ajuste está activado. El valor predeterminado es SIEMPRE| +Play Place in Line: |Lugar jugar en línea:| +Play Estimated Hold Time: |Juega Mantenga Tiempo estimado:| +Hold Time Option: |Mantenga la opción Hora:| +Hold Time Option Seconds: |Mantenga la opción Segundos Hora:| +Hold Time Option Extension: |Mantenga Tiempo Opción Extensión:| +Hold Time Option Voicemail: |Mantenga la opción Tiempo de voz:| +Hold Time Option Transfer In-Group: |Opción de Transferencia de celebrar Tiempo-Grupo A:| +Hold Time Option Callback Filename: |Mantenga la opción Tiempo de llamada de archivo:| +Hold Time Option Callback List ID: |Mantenga la opción Tiempo de llamada Lista ID:| +Hold Recall Transfer In-Group: |Recordatorio de Transferencia de celebrar en Grupo:| +No Delay Call Route: |N Retraso de llamada Ruta:| +Play Welcome Message: |Reproducir Mensaje de Bienvenida:| +DID Extension -<\/B> This is the number, extension or DID that will trigger this entry and that you will route within the system using this function|Extensión DID - Este es el número, extensión o DID que hará que esta entrada y que va a la ruta en el sistema que utiliza esta función| +DID Description -<\/B> This is the description of the DID routing entry|Descripción DID - Esta es la descripción de la entrada de rutas DID| +DID Active -<\/B> This the field where you set the DID entry to active or not. Default is Y|DID activa - Este es el campo en el que configurar la entrada a DID activa o no. Y es por defecto| +DID Route -<\/B> This the type of route that you set the DID to use. EXTEN will send calls to the extension entered below, VOICEMAIL will send calls directly to the voicemail box entered below, AGENT will send calls to a VICIDIAL agent if they are logged in, PHONE will send the call to a phones entry selected below, IN_GROUP will send calls directly to the specified inbound group. Default is EXTEN|Ruta DID - Este es el tipo de ruta que establezca el uso de DID. EXTEN enviará las llamadas a la extensión entró a continuación, enviará las llamadas de voz directamente a la caja de voz entró a continuación, AGENTE enviará las llamadas a un agente VICIDIAL si está conectado, TELÉFONO enviará la llamada a un teléfono de entrada, seleccione a continuación, se IN_GROUP enviar las llamadas directamente a la entrada del grupo especificado. El valor predeterminado es EXTEN| +Extension -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan extension that calls will be sent to. Default is 9998811112, no-service|Extensión - Si se ha seleccionado como EXTEN DID la ruta, entonces esta es la extensión que llama dialplan se enviará a. El valor predeterminado es 9998811112, no hay servicio| +Extension Context -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan context that calls will be sent to. Default is default|Extensión Contexto - Si se ha seleccionado como EXTEN DID la Ruta, este es el contexto en el que pide dialplan se enviará a. El valor por defecto es por defecto| +Voicemail Box -<\/B> If VOICEMAIL is selected as the DID Route, then this is the voicemail box that calls will be sent to. Default is empty|Buzón de voz Caja - Si se ha seleccionado como voz de la DID de carreteras, este es el buzón de voz que llama a la casilla se enviará a. Por defecto está vacío| +Phone Extension -<\/B> If PHONE is selected as the DID Route, then this is the phone extension that calls will be sent to.|Teléfono Extensión - TELÉFONO Si está seleccionado como la Ruta de DID, entonces esta es la extensión del teléfono que las llamadas se enviarán a.| +Phone Server IP -<\/B> If PHONE is selected as the DID Route, then this is the server IP for the phone extension that calls will be sent to|Teléfono IP del servidor - TELÉFONO Si está seleccionado como la Ruta de DID, entonces esta es la IP del servidor para la extensión del teléfono que las llamadas se enviarán a| +User Agent -<\/B> If AGENT is selected as the DID Route, then this is the VICIDIAL Agent that calls will be sent to|Agente de usuario - Si se ha seleccionado como Agente de la DID de carreteras, este es el Agente VICIDIAL pide que se enviará a| +User Unavailable Action -<\/B> If AGENT is selected as the DID Route, and the user is not logged in or available, then this is the route that the calls will take|Usuario no disponible Acción - Si se ha seleccionado como Agente de la Ruta de DID, y el usuario no está conectado o disponible, entonces este es el camino que las convocatorias se| +User Route Settings In-Group - If AGENT is selected as the DID Route, then this is the In-Group that will be used for the queue settings as the caller is waiting to be sent to the agent. Default is AGENTDIRECT|En Configuración de usuario Ruta-Grupo - Si se ha seleccionado como Agente de la DID de carreteras, este es el grupo en que se utilizará para la configuración de la cola como la persona que llama está a la espera de ser enviado a la agente. El valor predeterminado es AGENTDIRECT| +In-Group ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the In-Group that calls will be sent to|En el Grupo-ID - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el grupo en que las llamadas se enviarán a| +In-Group Call Handle Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attampt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attampt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attampt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue. Default is CID|En llamada de grupo Manipule Método - Si se ha seleccionado como IN_GROUP DID la ruta, entonces este es el llamado método utilizado para la manipulación de estas llamadas. CID se añada un nuevo registro de conducir en cada llamada mediante la CallerID como el número de teléfono, CIDLOOKUP tratará de buscar el número de teléfono por el CallerID en todo el sistema, CIDLOOKUPRL se attampt a buscar el número de teléfono por el CallerID en una sola lista especificada , CIDLOOKUPRC se attampt a buscar el número de teléfono por el CallerID en las listas de todos los que pertenecen a la campaña se especifica, más cerca se especifica para VICIDIAL pide más estrecha, ANI se añada un nuevo registro de conducir en cada llamada mediante la ANI como el número de teléfono, ANILOOKUP tratará de buscar el número de teléfono de la ANI en todo el sistema, ANILOOKUPRL se attampt a buscar el número de teléfono de la ANI en una sola lista especificada, XDIGITID impulsará la persona que llama para una X dígitos antes de la llamada se pondrá en la cola. El valor predeterminado es CID| +In-Group Agent Search Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the agent search method to be used by the inbound group, LO is Load-Balanced-Overflow and will try to send the call to an agent on the local server before trying to send it to an agent on another server, LB is Load-Balanced and will try to send the call to the next agent no matter what server they are on, SO is Server-Only and will only try to send the calls to agents on the server that the call came in on. Default is LB|En Grupo Agente Método de búsqueda - Si se ha seleccionado como IN_GROUP la ruta DID, este agente es el método de búsqueda para ser utilizado por el grupo de entrada, la LO es equilibrado de carga-y-Rebose intentará enviar la convocatoria a un agente en el servidor local antes de intentar enviar a un agente en otro servidor, LB es equilibrado de carga-y se trata de enviar la convocatoria a la siguiente agente, sin importar lo que ellos están en el servidor, el SO es el servidor y sólo se sólo intenta enviar las llamadas a los agentes en el servidor que la llamada se produjo en el. El valor predeterminado es LB| +In-Group List ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the List ID that leads may be searched through and that leads will be inserted into if necessary|-En la lista Grupo de Identificación - Si se ha seleccionado como IN_GROUP DID la ruta, entonces esta es la lista de ID que lleva puede ser buscado a través de y que se lleva inserta en caso necesario| +In-Group Campaign ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the Campaign ID that leads may be searched for in if the call handle method is CIDLOOKUPRC|En el Grupo-ID de campaña - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el ID de campaña que lleva pueden ser buscadas en si la llamada es manejar método CIDLOOKUPRC| +In-Group Phone Code -<\/B> If IN_GROUP is selected as the DID Route, then this is the Phone Code used if a new lead is created|En el Grupo-Teléfono Código - Si se ha seleccionado como IN_GROUP DID la Ruta, este es el Teléfono Código utilizarse si el plomo es un nuevo creado| +Phones Email -<\/B> The email address associated with this phone entry. This is used for voicemail settings|Teléfonos E-mail - La dirección de correo electrónico asociada con la entrada de este teléfono. Esto se utiliza para configuraciones de buzón de voz| +ADD A NEW DID|AGREGAR UN NUEVO DID| +DID Extension: |DID Extensión:| +DID Description: |DID Descripción:| +COPY DID|COPIA DID| +Source DID: |Fuente DID:| +DID NOT ADDED|DIDNOT AÑADIDO| +there is already a DID in the system with this ID|ya hay un DID en el sistema con este ID| +there is already a DID in the system with this extension|ya hay un DID en el sistema con esta extensión| +DID NOT MODIFIED|NO MODIFICADA| +DID MODIFIED|DID MODIFICADOS| +MODIFY A DID RECORD: |MODIFICAR UN REGISTRO DID:| +DID Route: |DID Ruta:| +Extension: |Extensión:| +Extension Context: |Extensión Contexto:| +Voicemail Box: |Caja de voz:| +Phone Extension: |Teléfono Extensión:| +User Agent: |Agente de usuario:| +User Unavailable Action: |Usuario no disponible Acción:| +User Route Settings In-Group: |En Configuración de usuario Ruta-Grupo:| +In-Group ID: |En el Grupo-ID:| +In-Group Call Handle Method: |En llamada de grupo Manipule Método:| +In-Group Agent Search Method: |En Grupo Agente Método de búsqueda:| +In-Group List ID: |-En la lista Grupo de Identificación:| +In-Group Campaign ID: |En el Grupo de Campaña-ID:| +In-Group Phone Code: |En el Grupo-Teléfono Código:| +DELETE THIS DID|ELIMINAR ESTA DID| +Email: |Correo electrónico:| +DID NOT DELETED|DIDNOT SUPRIMIDO| +DID DELETION CONFIRMATION|DID SUPRESIÓN DE CONFIRMACIÓN| +Click here to delete |Haga clic aquí para eliminar| +DID DELETION COMPLETED|DID SUPRESIÓN RELLENARSE| +Delete DIDs: |Eliminar DIDs:| +Modify DIDs: |Modificar DIDs:| +To disable the On Hold Prompt, set the interval to 0|Para desactivar la espera El símbolo, definir el intervalo a 0| +3-Way Call Outbound CallerID -<\/B> This defines what is sent out as the outbound callerID number from 3-way calls placed by the agent, CAMPAIGN uses the custom campaign callerID, CUSTOMER uses the number of the customer that is active on the agents screen and AGENT_PHONE uses the callerID for the phone that the agent is logged into|3-Vías de salida de llamadas CallerID - Esto define lo que es enviado como el número de callerID salida de 3 vías llamadas realizadas por el agente, la costumbre CAMPAÑA usos callerID campaña, el cliente utiliza el número de cliente que está activa en la pantalla y los agentes AGENT_PHONE utiliza el callerID el teléfono para que el agente se registra en| +3-Way Call Outbound CallerID:|3-Vías de salida de llamadas CallerID:| +INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls|INBOUND_MAN permite que el agente de marcación manual de lugar a las llamadas de una campaña de la lista, mientras que ser capaz de tomar las llamadas entrantes entre marcación manual de llamadas| +FORCE will force the agents to choose a PAUSE code if they click on the PAUSE button|Fuerza de la fuerza de los agentes para elegir un código PAUSA si hacen clic en el botón PAUSA| +3-Way Call Dial Prefix -<\/B> This defines what is used as the dial prefix for 3-way calls, default is empty so the campaign dial prefix is used, passthru so you can hear ringing is 88|3-Vías de llamadas Prefijo telefónico - Esto define lo que se utiliza como prefijo de marcación para las llamadas de 3 vías, por defecto está vacío por lo que la campaña se utiliza el prefijo de marcación, por lo que puede passthru oye un pitido es de 88| +3-Way Call Dial Prefix|3-Vías de llamadas Prefijo telefónico| +Force Timeclock Login -<\/B> This option allows you to not let an agent log in to the VICIDIAL agent interface if they have not logged into the timeclock. Default is N. There is an option to exempt admin users, levels 8 and 9|Fuerza Timeclock Login - Esta opción le permite no dejar que un agente acceder a la interfaz de agente VICIDIAL si no han iniciado sesión en el timeclock. El valor por defecto es N. Hay una opción para eximir a los usuarios de administración, los niveles 8 y 9| +Force Timeclock Login|Fuerza Timeclock inicio de sesión| +Stats Percent of Calls Answered Within X seconds - This field allows you to set the number of hold seconds that the realtime stats display will use to calculate the percentage of answered calls that were answered within X number of seconds on hold|Estadísticas Porcentaje de llamadas respondidas dentro de X segundos - Este campo le permite ajustar el número de segundos que tienen las estadísticas en tiempo real de la pantalla se utiliza para calcular el porcentaje de llamadas que fueron contestadas respuesta en el plazo de X número de segundos en espera| +Stats Percent of Calls Answered Within X seconds|Estadísticas Porcentaje de llamadas respondidas dentro de X segundos| +Web Form Target-<\/B> This is where you can set the custom web page frame that the web form will be opened in when the user clicks on the WEB FORM button. Default is _blank.|Web Forms Meta- Este es donde usted puede establecer el marco de página web personalizada de la web de forma que se abrirá cuando el usuario hace clic en el botón formulario Web. El valor predeterminado es _blank.| +Web Form Target|Formulario web de destino| +To customize the query string after the web form, simply begin the web form with VAR and then the URL that you want to use, replacing the variables with the variable names that you want to use --A--phone_number--B-- just like in the SCRIPTS tab section|Para personalizar la cadena de la consulta después de que el formulario web, basta con iniciar el formulario web con VAR y, a continuación, la URL que desee utilizar, en sustitución de las variables con el nombre de las variables que desee utilizar - A - phone_number - B -- al igual que en la pestaña de la sección SCRIPTS| +Recording Web Link -<\/B> This setting allows you to override the default of the display of the recording link in the admin web pages. Default is SERVER_IP|Grabación Web Link - Esta opción le permite ignorar el valor por defecto de la pantalla de la grabación enlace en la página web de administración. El valor predeterminado es server_ip| +Alternate Recording Server IP -<\/B> This setting is where you can put a server IP or other machine name that can be used in place of the server_ip in the links to recordings within the admin web pages. Default is empty|Grabación de IP del servidor alternativo - Este valor es donde usted puede poner un servidor IP o nombre de otra máquina que se puede utilizar en lugar de la server_ip en los enlaces a las grabaciones en el administrador de páginas web. Por defecto está vacío| +Recording Web Link|Grabación de Enlace Web| +Enable Vtiger Integration -<\/B> This setting allows you to enable Vtiger integration with VICIDIAL. Currently links to Vtiger admin and search as well as user replication are the only integration features available. Default is 0|Habilitar Vtiger Integración - Este ajuste le permite activar Vtiger integración con VICIDIAL. Actualmente enlaces a Vtiger administración y búsqueda de usuarios, así como la reproducción son las únicas características disponibles integración. Por defecto es 0| +Vtiger DB Server IP -<\/B> This is the IP address of the database for your Vtiger installation|PP Vtiger IP del servidor - Este es la dirección IP de la base de datos para su instalación Vtiger| +Vtiger Database Name -<\/B> This is the database name for your Vtiger database|Vtiger nombre de base de datos - Este es el nombre de base de datos para su base de datos Vtiger| +Vtiger Database Login -<\/B> This is the user name used to log in to your Vtiger database|Base de datos de inicio de sesión Vtiger - Este es el nombre de usuario utilizado para acceder a su base de datos Vtiger| +Vtiger Database Password -<\/B> This is the password used to log in to your Vtiger database|Base de datos Vtiger Contraseña - Esta es la contraseña utilizada para acceder a su base de datos Vtiger| +Vtiger URL -<\/B> This is the URL or web site address used to get to your Vtiger installation|Vtiger URL - Este es el URL o dirección del sitio web utilizado para acceder a tu Vtiger instalación| +Enable Vtiger Integration:|Habilitar Vtiger Integración:| +Vtiger DB Server IP|PP Vtiger IP del servidor| +Vtiger Database Name|Vtiger nombre de base de datos| +Vtiger Database Login|Base de datos de inicio de sesión Vtiger| +Vtiger Database Password|Base de datos Vtiger Contraseña| +Vtiger URL|Vtiger URL| +VTIGER HOME|VTIGER INICIO| +Active -<\/B> This field defines whether the user is active in the system and can use VICIDIAL resources. Default is Y|Activo - Este campo define si el usuario está activo en el sistema y puede utilizar VICIDIAL recursos. Y es por defecto| +show only active users|mostrar sólo los usuarios activos| +show all users|mostrar todos los usuarios| +Vtiger Search Category -<\/B> If Vtiger integration is enabled in the system settings then this setting will define where the vtiger_search.php page will search for the phone number that was entered. There are 4 options that can be used in this field: LEAD- This option will search through the Vtiger leads only, ACCOUNT- This option will search through the Vtiger accounts and all contacts and sub-contacts for the phone number, VENDOR- This option will only search through the Vtiger vendors, ACCTID- This option works only for accounts and it will take the vicidial vendor_lead_code field and try to search for the Vtiger account ID. If unsuccessful it will try any other methods listed that you have selected. Multiple options can be used for each search, but on large databases this is not recommended. Default is LEAD|Buscar Vtiger Categoría - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si vtiger_search.php la página de búsqueda para el número de teléfono que se inscribió. Hay 4 opciones que pueden utilizarse en este campo: LEAD-Esta opción de búsqueda a través de la Vtiger sólo conduce, CUENTA-Esta opción de búsqueda a través de las cuentas y Vtiger todos los contactos y sub-contactos para el número de teléfono, VENDEDOR-Esta opción sólo a través de la búsqueda Vtiger vendedores, ACCTID-Esta opción sólo funciona para las cuentas y que se llevará a vicidial vendor_lead_code el campo y tratar de buscar el ID de cuenta Vtiger. Si se intenta sin éxito que cualquier otro método que la lista que ha seleccionado. Múltiples opciones pueden ser utilizados para cada búsqueda, pero en grandes bases de datos no es recomendable. El valor predeterminado es PLOMO| +Vtiger Search Category:|Vtiger Búsqueda Categoría:| +ACTIVE LISTS CHANGED|LISTAS DE CAMBIO DE ACTIVO| +SUBMIT ACTIVE LIST CHANGES|ENVIAR LISTA DE CAMBIOS ACTIVO| +LAST CALL DATE|ÚLTIMA FECHA DE CONVOCATORIA| +User Group Bulk Change|Grupo de Usuarios de Basura Cambio| +Bulk Group Change|Basura Grupo Cambio| +Vtiger Create Call Record -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether a new Vtiger activity record is created for the call when the agent goes to the vtiger_search page. Default is Y|Crear Vtiger Registro de llamadas - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si la nueva actividad Vtiger registro se crea para la llamada cuando el agente va a la página vtiger_search. Y es por defecto| +Vtiger Create Call Record:|Crear Vtiger Registro de llamadas:| +Vtiger Create Lead Record -<\/B> If Vtiger integration is enabled in the system settings and Vtiger Search Category includes LEAD then this setting will define whether a new Vtiger lead record is created when the agent goes to the vtiger_search page and no record is found to have the call phone number. Default is Y|Crear Vtiger plomo Expediente - Si está habilitado Vtiger integración en la configuración del sistema y Vtiger Búsqueda Categoría incluye PLOMO entonces esta configuración definirá si un nuevo registro de conducir Vtiger es creada cuando el agente va a la página vtiger_search y no se registro determinó que la llamada número de teléfono. Y es por defecto| +Vtiger Create Lead Record:|Crear Vtiger plomo Record:| +Vtiger Screen Login -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether the user is logged into the Vtiger interface automatically when they login to VICIDIAL. Default is Y|Pantalla de inicio de sesión Vtiger - Si está habilitado Vtiger integración en la configuración del sistema, esta configuración definirá si el usuario está conectado a la interfaz automáticamente Vtiger los usuarios cuando ingresan a VICIDIAL. Y es por defecto| +Vtiger Screen Login:|Vtiger pantalla inicio de sesión:| +Alert Enabled -<\/B> This field shows whether the agent has web browser alerts enabled for when calls come into their vicidial.php session. Default is 0 for NO|Alerta Activado - Este campo muestra si el agente tiene el navegador web habilitado para alertas cuando pide entrar en su período de sesiones vicidial.php. Por defecto es 0 para el NO| +Alert Enabled:|Alerta Activado:| +QC Features Active -<\/B> This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive|Características de Active CC - Esta opción le permite activar o desactivar el control de la calidad o las características de Control de Calidad. El valor por defecto es 0 para inactivos| +Outbound Auto-Dial Active -<\/B> This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active|Salida de marcación automática de Active - Esta opción le permite activar o desactivar la marcación automática de salida dentro de VICIDIAL, en este campo a 0 se eliminará de las listas y FILTROS secciones y muchos campos de la Campaña Modificación pantallas. Manual de entrada de marcación seguirá siendo permitida dentro de la agente de la pantalla, lista de marcación, pero no será posible. El valor predeterminado es 1 para los activos| +QC Features Active:|CC Características Activo:| +Outbound Auto-Dial Active:|Salida activa de marcación automática:| +Close Panel|Panel de Cierre| +Choose Report Display Options|Elija Opciones de Informe| +To select more than 1 campaign, hold down the Ctrl key and click|Para seleccionar más de 1 campaña, mantenga pulsada la tecla Ctrl y haga clic en| +CPD AMD Action -<\/B> If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED|CPD AMD Acción - Si está utilizando el Sangoma ParaXip software de detección de llamadas Progreso entonces usted desea habilitar esta configuración, o bien se DISPO a que la llamada disposición como AA y colgar la llamada si se está procesando y no se ha enviado aún a un agente o un mensaje que envía la llamada al contestador automático de mensajes definidos para esta campaña. Desactivado por defecto| +CPD AMD Action:|CPD AMD Acción:| +Click here for user multiple day status detail report|Haga clic aquí para varios días de estado de usuario detalle informe| +Click here to download this list|Haga clic aquí para descargar esta lista| +Download Lists:|Descargar Listas:| +Active Asterisk Server -<\/B> If Asterisk is not running on this server, or if VICIDIAL should not be using this server, or if are only using this server for other scripts like the hopper loading script you would want to set this to N. Default is Y|Activa del servidor de Asterisk - de Asterisk Si no se está ejecutando en este servidor, o si VICIDIAL no deberían usar este servidor, o si sólo se utiliza este servidor para otros scripts como script de la tolva de carga que usted quiere hacer esto para N. El valor por defecto es Y| +Generate conf files -<\/B> If you would like the system to auto-generate asterisk conf files based upon the phones entries, carrier entries and load balancing setup within VICIDIAL then set this to Y. Default is Y|Generar los archivos de configuración - Si desea que el sistema de auto-generar conf asterisco archivos sobre la base de los teléfonos entradas, las entradas de transportista y balanceo de carga dentro de la configuración VICIDIAL luego a este valor por defecto es Y. Y| +Rebuild conf files -<\/B> If you want to force a rebuilding of the Asterisk conf files or if any of the phones or carrier entries have changed then this should be set to Y. After the conf files have been generated and Asterisk has been reloaded then this will be changed to N. Default is Y|Reconstruir los archivos de configuración - Si desea forzar una reconstrucción de los archivos de configuración de Asterisk o si alguno de los teléfonos o transportista entradas han cambiado esto debe establecerse en Y. Después de la configuración de archivos se han generado y se ha de Asterisk luego se vuelve a cargar esta será cambiado a N. El valor por defecto es Y| +Active Asterisk Server:|Activa del servidor de Asterisk:| +Generate conf files:|Generar los archivos de configuración:| +Rebuild conf files:|Reconstruir los archivos de configuración:| +Show Templates|Mostrar plantillas| +Add A New Template|Añadir una nueva plantilla| +ADD NEW CONF TEMPLATE|Añadir CONF NUEVA PLANTILLA| +ADD NEW CARRIER|Añadir nueva compañía| +ADDING NEW CONF TEMPLATE|AGREGAR NUEVO CONF PLANTILLA| +ADDING NEW CARRIER|AGREGAR NUEVOS SOPORTES| +MODIFY CONF TEMPLATE|MODIFICAR CONF PLANTILLA| +MODIFY CARRIER|MODIFICAR PORTEADOR| +DELETE CONF TEMPLATE|ELIMINAR CONF PLANTILLA| +DELETE CARRIER|ELIMINAR PORTEADOR| +CONF TEMPLATE LIST|CONF lista de plantillas| +CARRIER LIST|LISTA DE TRANSPORTISTA| +Template ID:|Plantilla ID:| +Template Name:|Nombre de plantilla:| +Template Contents:|Plantilla de contenidos:| +Carrier ID:|Portador de Identificación:| +Carrier Name:|Transportista Nombre:| +Registration String:|Cadena de registro:| +Account Entry:|Cuenta Entrada:| +Protocol:|Protocolo:| +Globals String:|Globals Serie de caracteres:| +Dialplan Entry:|Dialplan Entrada:| +CONF TEMPLATE NOT ADDED|CONF PLANTILLA NO AÑADIDO| +there is already a template in the system with this ID|ya hay una plantilla en el sistema con este ID| +CONF TEMPLATE ADDED|CONF PLANTILLA AÑADIDO| +CARRIER NOT ADDED|TRANSPORTISTA NO AÑADIDO| +there is already a carrier in the system with this ID|ya existe un soporte en el sistema con este ID| +CONF TEMPLATE NOT MODIFIED|CONF PLANTILLA NO MODIFICADA| +CARRIER NOT MODIFIED|TRANSPORTISTA NO MODIFICADA| +CARRIER MODIFIED|PORTEADOR MODIFICADOS| +CONF TEMPLATE NOT DELETED|CONF PLANTILLA NO SUPRIMIDO| +Template ID be at least 2 characters in length|Plantilla de Identificación ser al menos de 2 caracteres de longitud| +CONF TEMPLATE DELETION CONFIRMATION|CONF PLANTILLA SUPRESIÓN DE CONFIRMACIÓN| +Click here to delete conf template|Haga clic aquí para eliminar conf plantilla| +CARRIER NOT DELETED|TRANSPORTISTA NO SUPRIMIDO| +Carrier ID be at least 2 characters in length|Portador de Identificación ser al menos de 2 caracteres de longitud| +CARRIER DELETION CONFIRMATION|PORTEADOR SUPRESIÓN DE CONFIRMACIÓN| +Click here to delete carrier|Haga clic aquí para suprimir el transportista| +CONF TEMPLATE DELETION COMPLETED|CONF PLANTILLA SUPRESIÓN RELLENARSE| +CARRIER DELETION COMPLETED|SUPRESIÓN RELLENARSE PORTEADOR| +MODIFY A CONF TEMPLATE RECORD|MODIFICAR UN REGISTRO CONF PLANTILLA| +DELETE THIS CONF TEMPLATE|CONF ELIMINAR ESTA PLANTILLA| +MODIFY A CARRIER RECORD|MODIFICAR UN REGISTRO DE TRANSPORTISTA| +DELETE THIS CARRIER|ELIMINAR ESTA PORTEADOR| +CARRIERS WITHIN THIS SERVER|TRANSPORTISTAS EN ESTE SERVIDOR| +CONF TEMPLATE LISTINGS|CONF PLANTILLA LISTADOS| +CARRIER LISTINGS|LISTAS DE TRANSPORTISTA| +PHONES USING THIS CONF TEMPLATE|TELÉFONOS DE UTILIZAR ESTE CONF PLANTILLA| +CARRIERS USING THIS CONF TEMPLATE|TRANSPORTISTAS DE UTILIZAR ESTE CONF PLANTILLA| +Conf Override:|Conf. Sobrescribir:| +Template ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the conf template throughout the system|ID de la plantilla - Este campo tiene que ser al menos de 2 caracteres de longitud y no más de 15 caracteres, sin espacios. Esta es la identificación que se utilizará para identificar la configuración de plantillas en todo el sistema| +Template Name -<\/B> This is the descriptive name of the conf file template entry|Nombre de la plantilla - Este es el nombre descriptivo de la plantilla de archivo de configuración de entrada| +Template Contents -<\/B> This field is where you can enter in the specific settings to be used by all phones and-or carriers that are set to use this conf template. Fields that should NOT be included in this box are: secret, accountcode, account, username and mailbox|Plantilla de Contenido - Este campo es donde usted puede entrar en la configuración específica para ser utilizado por todos los teléfonos o los transportistas y que están configurados para utilizar esta plantilla conf. Campos que no deben incluirse en este cuadro son: secreto, accountcode, cuenta, el nombre de usuario y buzón de correo| +Carrier ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the carrier for this specific entry throughout the system|Portador de Identificación - Este campo tiene que ser al menos de 2 caracteres de longitud y no más de 15 caracteres, sin espacios. Esta es la identificación que se utilizará para identificar el soporte de esta entrada a través del sistema| +Carrier Name -<\/B> This is the descriptive name of the carrier entry|Nombre del transportista - Este es el nombre descriptivo de la compañía entrada| +Registration String -<\/B> This field is where you can enter in the exact string needed in the IAX or SIP configuration file to register to the provider. Optional but highly recommended if your carrier allows registration|Registro de cadena - Este campo es donde usted puede entrar en la cadena exacta necesaria en el SIP o IAX archivo de configuración de registro para el proveedor. Opcional, pero altamente recomendable si tu proveedor permite el registro| +Template ID -<\/B> This optional field allows you to choose a conf file template for this carrier entry|Plantilla ID - Este campo opcional permite elegir un archivo de configuración de plantilla para esta compañía aérea de entrada| +Account Entry -<\/B> This field is used if you have not selected a template to use, and it is where you can enter in the specific account settings to be used for this carrier|Cuenta Entrar - Este campo se usa si no ha seleccionado una plantilla de usar, y es donde puede entrar en la configuración de la cuenta específica que se utilizará para esta compañía aérea| +Protocol -<\/B> This field allows you to define the protocol to use for the carrier entry. Currently only IAX and SIP are supported|Protocolo - Este campo le permite definir el protocolo a utilizar para el transportista entrada. Actualmente, sólo IAX y SIP son compatibles| +Globals String -<\/B> This optional field allows you to define a global variable to use for the carrier in the dialplan|Globals String - Este campo opcional le permite definir una variable global a utilizar para el transportista en el dialplan| +Dialplan Entry -<\/B> This optional field allows you to define a set of dialplan entries to use for this carrier|Entrada Dialplan - Este campo opcional le permite definir un conjunto de entradas dialplan a usar para esta compañía aérea| +Server IP -<\/B> This is the server that this specific carrier record is associated with|IP del servidor - Este es el servidor que soporte este registro está asociado con| +Active -<\/B> This defines whether the carrier will be included in the auto-generated conf files or not|Activo - Esto define si el transportista se incluirán en la auto-generado o no los archivos de conf| +Conf Override Settings -<\/B> If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated|Ajustes conf Sobreescribe - Si pobladas, y la plantilla está configurada para ID - Inexistencia - entonces el contenido de este campo se utilizan como entradas del archivo de configuración para este teléfono. generate_vicidial_conf teléfonos para este servidor debe ser fijado a Y para que esto funcione. Este campo no debe contener la [extensión] línea, que se genera automáticamente| +Template ID -<\/B> This is the conf file template ID that this phone entry will use for its Asterisk settings. Default is --NONE--|ID de la plantilla - Este es el archivo de configuración de plantilla ID que este teléfono va a utilizar para la entrada de su configuración de Asterisk. El valor por defecto es - Inexistencia --| +If you will be taking in inbound calls from this carrier trunk you might want to set the context=trunkinbound within this field so that you can use the DID handling process within VICIDIAL|Si va a tomar en las llamadas entrantes de esta compañía aérea tronco es posible que desee establecer el contexto = trunkinbound dentro de este ámbito de modo que usted puede usar el proceso de tramitación de DID en VICIDIAL| +There is a reserved default DID that you can use which is just the word -default- without the dashes, that will allos you to send any call that does not match any other existing patterns to the default DID|Hay un DID reservados por defecto que puede utilizar que es sólo la palabra-por defecto-, sin los guiones, que permiten el envío de cualquier llamada que no coincida con cualquier otro de los modelos existentes por defecto DID| +Campaign VDAD extension|Campaña de extensión VDAD| +This field allows for a custom VDAD transfer extension. This allows you to use different call handling methods depending upon your campaign.|Este campo permite una transferencia personalizada VDAD extensión. Esto le permite utilizar diferentes métodos de gestión de llamadas en función de su campaña.| + - 8364 - same as 8368|- 8364 - 8368 misma que| + - 8365 - Will send the call only to an agent on the same server as the call is on|- 8365 - Se envía la llamada a un sólo agente en el mismo servidor que la llamada está en| + - 8366 - Used for press-1 and survey campaigns|- 8366 - Utilizado para la prensa-1 y las campañas de estudio| + - 8367 - Will try to first send the call to an agent on the local server, then it will look on other servers|- 8367 - ¿Se tratará de enviar la primera llamada a un agente en el servidor local, entonces se verá en otros servidores| + - 8368 - DEFAULT – Will send the call to the next available agent no matter what server they are on|- 8368 - PREDETERMINADO? Enviará la petición a la siguiente agente disponible independientemente de lo que están en el servidor| + - 8369 - Used for Answering Machine Detection after that, same behavior as 8368|- 8369 - Se utiliza para Contestador automático de detección después de que, el mismo comportamiento como 8368| + - 8373 - Used for Answering Machine Detection after that same behavior as 8366|- 8373 - Se utiliza para Contestador automático de detección después de que el mismo comportamiento de 8366| +Also in this section are the WEB VARs for each campaign. These allow each agent to have a different variable string that can be added to the WEB FORM or SCRIPT tab URLs by simply putting --A--web_vars--B-- as you would put any other field.|También en esta sección son la WEB VARs para cada campaña. Estas permiten a cada agente tiene una cadena de la variable que se puede agregar a la WEB DE GUIÓN ficha URL o simplemente poniendo - A - web_vars - B - como le pondría en cualquier otra esfera.| +Group Alias List|Grupo Alias Lista| +Add A New Group Alias|Añadir un nuevo grupo de alias| +ADD NEW GROUP ALIAS|Añadir NUEVO GRUPO DE ALIAS| +ADDING NEW GROUP ALIAS|AGREGAR NUEVO GRUPO DE ALIAS| +MODIFY GROUP ALIAS|MODIFICAR GRUPO ALIAS| +DELETE GROUP ALIAS|Eliminar grupo ALIAS| +GROUP ALIAS LIST|GRUPO DE ALIAS LISTA| +GROUP ALIAS LISTINGS|GRUPO DE ALIAS LISTADOS| +MODIFY A GROUP ALIAS RECORD|ALIAS MODIFICAR UN GRUPO DE REGISTRO| +Group Alias ID|Alias ID Grupo| +Group Alias Name|Grupo Alias Nombre| +CallerID Number|Número CallerID| +CallerID Name|Nombre CallerID| +DELETE THIS GROUP ALIAS|ELIMINAR ESTE GRUPO DE ALIAS| +GROUP ALIAS NOT MODIFIED|ALIAS GRUPO NO MODIFICADA| +GROUP ALIAS MODIFIED|GRUPO DE ALIAS MODIFICADOS| +ADD A NEW GROUP ALIAS|AGREGAR UN NUEVO GRUPO DE ALIAS| +MODIFY A GROUP ALIAS RECORD|ALIAS MODIFICAR UN GRUPO DE REGISTRO| +GROUP ALIAS NOT ADDED|ALIAS GRUPO NO AÑADIDO| +GROUP ALIAS ADDED|GRUPO DE ALIAS AÑADIDO| +GROUP ALIAS NOT DELETED|GRUPO DE ALIAS no se eliminan| +GROUP ALIAS DELETION CONFIRMATION|ALIAS GRUPO DE SUPRESIÓN DE CONFIRMACIÓN| +Click here to delete group alias|Haga clic aquí para suprimir el grupo de alias| +GROUP ALIAS DELETION COMPLETED|GRUPO DE SUPRESIÓN RELLENARSE ALIAS| +Group Alias ID -<\/B> The ID of the group alias used by agents to dial out calls from the VICIDIAL agent interface with different Caller IDs. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Grupo Alias ID - el ID del grupo de alias utilizado por los agentes a marcar llamadas desde la interfaz de agente VICIDIAL con diferentes números de identificación de llamadas. sin espacios ni otros caracteres especiales permitidos. Debe estar entre 2 y 20 caracteres de longitud| +Group Alias Name -<\/B> The name used to describe a group alias, Must be between 2 and 50 characters in length|Grupo Alias Nombre - El nombre utilizado para describir un grupo de alias, debe ser entre 2 y 50 caracteres de longitud| +Caller ID Number -<\/B> The Caller ID number used in this Group Alias. Must be digits only|Número de identificación de llamadas - el número de identificación de llamadas se utilizan en este Grupo de Alias. Debe ser sólo cifras| +Caller ID Name -<\/B> The Caller ID name that can be sent out with this Group Alias. As far as we know this will only work in Canada on PRI circuits and using an IAX loop trunk through Asterisk|Nombre de identificación de llamadas - El nombre de identificación de llamadas que se pueden enviar a cabo con este grupo de alias. Por lo que sabemos esto sólo funcionará en Canadá en los circuitos del PRI y la utilización de un bucle troncal IAX de Asterisk a través de| +Group Alias Allowed -<\/B> If you want to allow your agents to use group aliases then you need to set this to Y. Group Aliases are explained more in the Admin section, they allow agents to select different callerIDs for outbound manual calls that they may place. Default is N|Grupo Alias permitidas - Si desea permitir que su grupo de agentes a utilizar alias, entonces necesita hacer esto a Y. Grupo Alias se explican más en la sección de administración, permiten a los agentes para seleccionar diferentes callerIDs para llamadas salientes manual que se puede colocar. El valor predeterminado es N| +Default Group Alias -<\/B> If you have allowed Group Aliases then this is the group alias that is selected first by default when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Grupo Alias predeterminado - Si han permitido Grupo Alias este es el grupo de alias que se ha seleccionado en primer lugar, por defecto cuando el agente decide usar un alias para un grupo de salida manual de llamada. El valor por defecto es vacío o NINGUNA| +Default Group Alias -<\/B> If you have allowed Group Aliases for the campaign that the agent is logged into then this is the group alias that is selected first by default on a call coming in from this inbound group when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Grupo Alias predeterminado - Si han permitido Alias Grupo para la campaña de que el agente se registra en este grupo es el alias que se ha seleccionado en primer lugar por incumplimiento de una llamada procedente de este grupo entrante cuando el agente decide usar un alias para un grupo de salida manual de llamada. El valor por defecto es vacío o NINGUNA| +Group Alias Allowed|Grupo Alias permitidas| +Default Group Alias|Alias predeterminado Grupo| +AGENT_CHOOSE allows the agent to choose which callerID to use for 3-way calls from a list of choices.|AGENT_CHOOSE permite elegir el agente que callerID utilizar para llamadas de 3 vías a partir de una lista de opciones.| +you cannot use reserved words in group aliases|no puede usar palabras reservadas en el grupo de alias| +Agent Shift Enforcement Override|Agente de Cambio observancia Sobrescribir| +Manager Shift Enforcement Override|Gerente de Turno observancia Sobrescribir| +Shift Enforcement|Cambio de título ejecutivo| +Max Calls per Second|Pide máximo por segundo| +Max FILL Calls per Second|Max LLENAR Pide por segundo| +This setting will override whatever the users user group has set for Shift Enforcement. DISABLED will use the user group setting. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is DISABLED.|Esta configuración anular cualquiera que sea el grupo de usuarios de los usuarios se ha fijado para Mayús Observancia. MINUSVALIDOS utilizará el grupo de usuarios de configuración. NO no aplicará en todos los turnos. PRINCIPIO sólo hacer cumplir el tiempo de inicio de sesión, pero no afectará a un agente que se está ejecutando en su momento, si en cambio ya están conectado TODOS hará cumplir turnos hora de inicio y de registro de un agente a cabo después de que ellos tienen sobre el final de su cambio de tiempo. Desactivado por defecto.| +This setting if set to 1 will allow a manager to enter their user and password on an agent screen to override the shift restrictions on an agent session if the agent is trying to log in outside of their shift. Default is 0.|Este ajuste, si se pone a 1 permitirá que un administrador de entrar en su usuario y contraseña en una pantalla de agente para anular las restricciones sobre el desplazamiento de un agente período de sesiones si el agente está intentando iniciar sesión fuera de su turno. El valor predeterminado es 0.| +This setting allows you to restrict agent logins based upon the shifts that are selected below. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is OFF.|Esta opción le permite restringir el acceso basado en agente de los cambios que se seleccione a continuación. NO no aplicará en todos los turnos. PRINCIPIO sólo hacer cumplir el tiempo de inicio de sesión, pero no afectará a un agente que se está ejecutando en su momento, si en cambio ya están conectado TODOS hará cumplir turnos hora de inicio y de registro de un agente a cabo después de que ellos tienen sobre el final de su cambio de tiempo. El valor predeterminado es desactivado.| +This setting determines the maximum number of calls that can be placed by the outbound auto-dialing script on this server per second. Must be from 1 to 100. Default is 20.|Esta configuración determina el número máximo de llamadas que pueden ser colocados por la salida de marcación automática de secuencia de comandos en este servidor por segundo. Debe ser de 1 a 100. El valor predeterminado es 20.| +This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40.|Esta configuración determina el número máximo de llamadas que pueden ser colocados por la auto-LLENAR salida de marcación automática de secuencia de comandos de todos los servidores, por segundo. Debe ser de 1 a 200. El valor predeterminado es 40.| +System Load|Sistema de carga| +Live Channels|Canales en vivo| +Disk Usage|Uso del disco| +These two statistics show the loadavg of a system times 100 and the CPU usage percentage of the server and is updated every minute. The loadavg should on average be below 100 multiplied by the number of CPU cores your system has, for optimal performance. The CPU usage percentage should stay below 50 for optimal performance.|Estas dos estadísticas muestran la loadavg veces de un sistema 100 y el porcentaje de uso de la CPU del servidor y se actualiza cada minuto. El loadavg debería ser en promedio por debajo de los 100 multiplicado por el número de núcleos de CPU de su sistema, para un rendimiento óptimo. El porcentaje de uso de la CPU debería permanecer por debajo de 50 para un rendimiento óptimo.| +This field shows the current number of Asterisk channels that are live on the system right now. It is important to note that the number of Asterisk channels is usually much higher than the number of actual calls on a system. This field is updated once every minute.|Este campo muestra el número actual de canales que son de Asterisk en vivo en el sistema ahora. Es importante señalar que el número de canales de Asterisk es generalmente mucho mayor que el número de llamadas en un sistema. Este campo se actualiza una vez cada minuto.| +This field will show the disk usage for every partition on this server. This field is updated once every minute.|Este campo mostrará el uso del disco para cada partición en este servidor. Este campo se actualiza una vez cada minuto.| +ADMIN CHANGE LOG|ADMIN Change Log| +USER ADMIN CHANGE LOG|USUARIO ADMIN Change Log| +SECTION ADMIN CHANGE LOG|SECCIÓN ADMIN Change Log| +DETAIL ADMIN CHANGE LOG|Detalle de registro de cambio ADMIN| +Last 10000 records|Última 10.000 registros| +Changes made by|Los cambios efectuados por| +Record Detail|Detalle de registro| +Section Records|Sección de Documentos| +Click here to see Admin chages to this record|Haga clic aquí para ver Admin chages a la presente acta| +Click here to see Admin chages to this campaign|Haga clic aquí para ver Admin chages a esta campaña| +Click here to see Admin chages to this list|Haga clic aquí para ver Admin chages a esta lista| +Click here to see Admin chages to this In-Group|Haga clic aquí para ver a esta Administración chages en Grupo| +Click here to see Admin chages to this DID|Haga clic aquí para ver a esta Administración chages DID| +Click here to see Admin chages to this remote agent|Haga clic aquí para ver a esta Administración chages agente remoto| +Click here to see Admin chages to this user group|Haga clic aquí para ver Admin chages a este grupo de usuarios| +Click here to see Admin chages to this script|Haga clic aquí para ver Admin chages a este script| +Click here to see Admin chages to this filter|Haga clic aquí para ver chages al administrador de este filtro| +Click here to see Admin chages to this call time|Haga clic aquí para ver Admin chages a este tiempo de atención| +Click here to see Admin chages to this shift|Haga clic aquí para ver Admin chages a este cambio| +Click here to see Admin chages to this phone alias|Haga clic aquí para ver Admin chages alias para este teléfono| +Click here to see Admin chages to this group alias|Haga clic aquí para ver Admin chages a este grupo, alias| +Click here to see Admin chages to this server|Haga clic aquí para ver Admin chages a este servidor| +Click here to see Admin chages to this conf template|Haga clic aquí para ver a esta Administración chages conf plantilla| +Click here to see Admin chages to this carrier|Haga clic aquí para ver Admin chages a esta compañía aérea| +Click here to see Admin chages to the system settings|Haga clic aquí para ver chages a la administración de la configuración del sistema| +Export Reports|Informes de exportación| +This setting if set to 1 will allow a manager to access the export call reports on the REPORTS screen. Default is 0.|Este ajuste, si se pone a 1 permitirá un gerente de exportación para acceder a la llamada de los informes sobre la INFORMES pantalla. El valor predeterminado es 0.| +This setting if set to 1 will allow a manager to click on the download list link at the bottom of a list modification screen to export the entire contents of a list to a flat data file. Default is 0.|Este ajuste, si se establece en 1 para permitir que un administrador haga clic en la lista de descargas en la parte inferior de la pantalla una lista de modificaciones a la exportación de todo el contenido de una lista a un archivo de datos plana. El valor predeterminado es 0.| +Export Calls Report|Pide Informe exportación| +EXPORT CALLS REPORT|PIDE INFORME DE EXPORTACIÓN| +For the Export Calls Report, the following field order is used for exports|Pide para el Informe de Exportación, para el siguiente campo se utiliza para las exportaciones| +Timeclock|Reloj de tiempo| +Logout|Cerrar sesión| +Show Users|Mostrar Usuarios| +Add A New User|Añadir un nuevo usuario| +Search For A User|Búsqueda de un usuario| +User Stats|Estadísticas de usuario| +User Status|Condición de Usuario| +Time Sheet|Hoja de tiempo| +Days Status|Situación días| +Campaigns Main|Principales Campañas| +Statuses|Estados| +HotKeys|Teclas rápidas| +Lead Recycle|Plomo Reciclado| +Auto Alt-Dial|Marcación automática Alt -| +Auto Alt Dial|Auto Alt telefónico| +List Mix|Mezcla lista| +Pause Codes|Pausa Códigos| +Basic|Básico| +Detail|Detalle| +Survey|Encuesta| +Real-Time|Tiempo Real| +CAMPAIGN ID|ID de campaña| +DIAL PLAN|PLAN DE DIAL| +DIAL METHOD|DIAL MÉTODO| +LEADS COUNT|ENCABEZA COUNT| +LEAD ORDER|ORDEN DE PLOMO| +DIAL STATUSES|DIAL ESTATUTOS| +SCRIPT ID|GUIÓN ID| +SCRIPT NAME|GUIÓN NOMBRE| +USER GROUP|GRUPO DE USUARIOS| +GROUP NAME|NOMBRE DEL GRUPO| +PRIORITY|PRIORIDAD| +FORCE TIMECLOCK|FUERZA TIMECLOCK| +CALLTIME ID|CALLTIME ID| +CALLTIME NAME|CALLTIME NOMBRE| +DEFAULT START|PREDETERM PRINCIPIO| +DEFAULT STOP|PREDETERM STOP| +SHIFT ID|MAYÚS ID| +SHIFT NAME|MAYÚS NOMBRE| +SHIFT START|MAYÚS PRINCIPIO| +SHIFT LENGTH|DURACIÓN SHIFT| +WEEKDAYS|SEMANAL| +Template ID|ID de plantilla| +Template Name|Nombre de plantilla| +Carrier ID|Portador de Identificación| +Carrier Name|Nombre del transportista| +Registration|Registro| +Active|Activo| +USER ID|ID USUARIO| +FULL NAME|NOMBRE COMPLETO| +LEVEL|NIVEL| +LINKS|ENLACES| +TRUNKS|TRONCOS| +HUMAN|HUMANOS| +ANSWER|RESPUESTA| +CATEGORY|CATEGORÍA| +STATUSES IN THIS CATEGORY|ESTATUTOS EN ESTA CATEGORÍA| +Display|Exponer| +Dates|Fechas| +PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK|POR FAVOR SELECCIONE UNA CAMPAÑA O GRUPO DE USUARIO Y FECHA-TEMNE ARRIBA Y HAGA CLICK| +PLEASE SELECT A USER AND DATE-TIME ABOVE AND CLICK|POR FAVOR SELECCIONE UN USUARIO Y FECHA-TEMNE ARRIBA Y HAGA CLICK| +PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK|POR FAVOR SELECCIONE UNA CAMPAÑA Y FECHA-TEMNE ANTERIOR Y HAGA CLICK| +PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT|POR FAVOR SELECCIONE UN GRUPO EN EL PÁRRAFO ANTERIOR Y FECHA DE RANGO y haga clic en Enviar| +DOWNLOAD|DESCARGAR| +Users|Usuarios| +User|Usuario| +Reports|Informes| +OUTBOUND|SALIENTE| +INBOUND|Entrantes| +Server Stats and Reports|Estadísticas e Informes servidor| +Click here to see a VDAD report for this campaign|Haga clic aquí para ver un informe VDAD para esta campaña| +Show DIDs|Mostrar DIDs| +Add A New DID|Añadir un nuevo DID| +Templates|Plantillas| +Carriers|Transportistas| +Carrier Name|Nombre del transportista| +Click here to see all CallBack Holds in this user group|Haga clic aquí para ver todas las CallBack Posee en este grupo de usuarios| +Click here to see all CallBack Holds in this list|Haga clic aquí para ver todas las CallBack mantiene en esta lista| +Click here to see a report for this inbound group|Haga clic aquí para ver un informe de este grupo entrante| +Click here to Synchronize users with Vtiger|Haga clic aquí para sincronizar los usuarios con Vtiger| +Alert Enabled|Alerta Activado| +Change Date|Fecha de cambio| +Login Date|Fecha de inicio de sesión| +List Last Call Date|Última Fecha de lista de llamadas| +Phone Code Override|Teléfono Código Sobrescribir| +GROUP ALIAS ID|GRUPO DE ALIAS ID| +GROUP ALIAS NAME|ALIAS GRUPO NOMBRE| +CID NUMBER|CID NÚMERO| +CID NAME|NOMBRE DEL CID| +PHONE ALIAS|TELÉFONO ALIAS| +ALIAS ID|ALIAS ID| +ALIAS NAME|NOMBRE ALIAS| +PHONE LOGINS LIST|TELÉFONO LISTA Logins| +Shift Length|Longitud cambio| +short description of the shift|breve descripción del cambio| +DELETE THIS SERVER|ELIMINAR ESTE SERVIDOR| +DELETE THIS CONFERENCE|ELIMINAR ESTA CONFERENCIA| +DELETE THIS VICIDIAL CONFERENCE|ELIMINAR ESTA CONFERENCIA VICIDIAL| +Install Date|Fecha de instalación| +Human Answer|Respuesta humana| +STATUS CATEGORIES|ESTADO DE LAS CATEGORÍAS| +per campaign|por campaña| +all campaigns|todas las campañas| +### START translations for 2.2.0 release ### +Delete From DNC Lists|Eliminar de las listas de DNC| +This setting if set to 1 will allow a manager to remove phone numbers from the DNC lists in the VICIDIAL system|Este ajuste, si se establece en 1 permitirá a un administrador para quitar los números de teléfono de las listas de DNC en el sistema de Vicidial| +DNC NOT DELETED|DNC no se eliminan| +This phone number is not in the Do Not Call List|Este número de teléfono no está en la Lista de No Llamar| +DNC DELETED|DNC DELETED| +ADD OR DELETE NUMBERS FROM THE DNC LIST|AÑADIR O ELIMINAR números de la lista DNC| +Add or Delete|Agregar o eliminar| +Add-Delete Number From DNC|Añadir-Supr Número de DNC| +Vtiger Search Dead Accounts|Vtiger Buscar Dead Cuentas| +If Vtiger integration is enabled in the system settings then this setting will define whether deleted accounts will be searched when the agent clicks WEB FORM to search in the Vtiger system. DISABLED- deleted leads will not be searched, ASK- deleted leads will be searched and the vtiger search web page will ask the agent if they want to make the Vtiger account active, RESURRECT- will automatically make the deleted account active again and will take the agent to the account screen without delay upon clicking on WEB FORM. Default is DISABLED|Si la integración Vtiger está activado en la configuración del sistema a continuación, esta configuración definirá si las cuentas eliminadas se buscará, cuando el agente clics WEB forma de buscar en el sistema Vtiger. Con discapacidad conduce eliminados no se buscará, ASK-lleva eliminado y se buscará la página de búsqueda Web vtiger solicitará al agente si quieren hacer la cuenta Vtiger activos, resucitar-hará la cuenta eliminada activa de nuevo y tomará las agente a la pantalla de cuenta sin demora al hacer clic en Web Forms. Desactivado por defecto| +The DISPO option will create a call record for the Vtiger account without the agent needing to go to the vtiger search page through the WEB FORM|La opción de DISPO creará un registro de llamadas para la cuenta de Vtiger sin que el agente que necesitan para ir a la página de búsqueda a través de vtiger el formulario Web| +The NEW_WINDOW option will open a new window upon login to the VICIDIAL agent screen|La opción de NEW_WINDOW se abrirá una nueva ventana en la pantalla de login para el agente Vicidial| +Vtiger Status Call|Vtiger Estado de llamada| +If Vtiger integration is enabled in the system settings then this setting will define whether the status of the Vtiger Account will be updated with the status of the VICIDIAL call after it has been dispositioned. Default is N|Si la integración Vtiger está activado en la configuración del sistema a continuación, esta configuración definirá si la situación de la Cuenta Vtiger se actualizará con el estado de la llamada Vicidial después de haber sido dispositioned. Por defecto es n| +There are also 5 additional settings that will define the kind of status: sale, dnc, customer contact, not interested, unworkable|También hay 5 ajustes adicionales que definirán el tipo de estado: la venta, la DNC, póngase en contacto con los clientes, no les interesa, impracticable| +If the customer is on hold and hears this estimated hold time message, the minimum time that will be played is 15 seconds|Si el cliente está en espera y escucha este mensaje de tiempo de espera estimado, el tiempo mínimo que se jugará es de 15 segundos| +Email, User Code and Territory|De correo electrónico, el código de usuario y Territorio| +These are optional fields|Estos son los campos opcionales| +All options except for the Not Interested, Third and Fourth digit options will move on to the Survey Method call path|Todas las opciones excepto la no interesados, Tercera y Cuarta opciones de dígitos se trasladará a la ruta de la llamada método de encuesta| +Survey Third Digit|Encuesta tercer dígito| +This allows for a third call path if the Third digit as defined in this field is pressed by the customer|Esto permite una ruta de la tercera convocatoria, si el tercer dígito tal como se define en este campo es presionado por el cliente| +Survey Fourth Digit|Digit Cuarta Encuesta| +This allows for a fourth call path if the Fourth digit as defined in this field is pressed by the customer|Esto permite una ruta cuarta convocatoria, si la cuarta cifra tal como se define en este campo es presionado por el cliente| +Survey Third Audio File|Tercera Encuesta de archivos de audio| +Survey Fourth Audio File|Cuarta Encuesta Archivo de audio| +This is the third audio file to be played upon the selection by the customer of the Third Digit option|Este es el archivo de audio tercero que se jugó con la selección por parte del cliente de la opción del tercer dígito| +Survey Third Status|Tercera Encuesta de Situación| +Survey Fourth Status|Situación Cuarta Encuesta| +This is the third status used for the call upon the selection by the customer of the Third Digit option|Esta es la situación de terceros utilizado para la convocatoria a la selección por parte del cliente de la opción del tercer dígito| +Survey Third Extension|Tercer Estudio de Extensión| +Survey Fourth Extension|Encuesta cuarta prórroga| +This is the third extension used for the call upon the selection by the customer of the Third Digit option. Default is 8300 which immediately hangs up the call after the Audio File message is played|Esta es la tercera ampliación utilizados para el llamado a la selección por parte del cliente de la opción del tercer dígito. El valor predeterminado es 8300 que inmediatamente se cuelga la llamada después de que se jugó el mensaje de audio de archivo| +RANDOM: Randomly grabs lead within the statuses and lists defined|RANDOM: coge al azar de plomo en los estados y las listas definidas| +UP LAST CALL TIME: Sorts by the newest local call time for the leads|Subir llamada: Ordena por el tiempo más reciente de la llamada local para los conductores| +DOWN LAST CALL TIME: Sorts by the oldest local call time for the leads|En Baja los Ultimos llamada: Ordena por el tiempo más antiguo de la llamada local para los conductores| +WARNING, we only recommend List Mix for advanced users, Please read the ViciDial Manager Manual|ADVERTENCIA, sólo recomendamos Lista Mix para usuarios avanzados, por favor lea el Manual de Administrador de Vicidial| +Add Call Menu|Añadir Call Menú| +Copy Call Menu|Copia de llamadas Menú| +New Call Menu|Nueva llamada del menú| +Modify Call Menu|Modificar Call Menú| +Delete Call Menu|Eliminar del menú de llamadas| +Call Menus|Llame a los menús| +Menu ID|Menú ID| +This is the ID for this step of the call menu. This will also show up as the context that is used in the dialplan for this call menu|Este es el ID para este paso del menú de llamada. Esto también se mostrará como el contexto que se utiliza en el dialplan para esta convocatoria de menú| +Menu Name|Nombre de menú| +This field is the descriptive name for the call menu|Este campo es el nombre descriptivo para el menú de llamada| +Menu Prompt|Menú del sistema| +This field contains the file name of the audio prompt to play at the beginning of this menu|Este campo contiene el nombre de archivo del sistema de audio para jugar en el comienzo de este menú| +Menu Timeout|Menú de tiempo de espera| +This field is where you set the timeout in seconds that the menu will wait for the caller to enter in a DTMF choice|Este campo es donde se define el tiempo de espera en segundos que debe esperar el menú de la persona que llama a entrar en una opción de DTMF| +Menu Timeout Prompt|Menú de tiempo de espera del sistema| +This field contains the file name of the audio prompt to play when the timeout has been reached. Default is NONE to play no audio at timeout|Este campo contiene el nombre de archivo del sistema de audio a jugar cuando el tiempo de espera ha sido alcanzado. El valor predeterminado es NINGUNO para jugar sin audio en tiempo de espera| +Menu Invalid Prompt|Menú del sistema no válido| +This field contains the file name of the audio prompt to play when the caller has selected an invalid option. Default is NONE to play no audio at invalid|Este campo contiene el nombre de archivo del sistema de audio para que suene cuando la llamada se ha seleccionado una opción válida. El valor predeterminado es NINGUNO para jugar sin audio en inválida| +Menu Repeat|Repita Menú| +This field is where you define the number of times that the menu will play after the first time if no valid choice is made by the caller. Default is 1 to repeat the menu once|Este campo es donde se define el número de veces que el menú se reproducirá después de la primera opción válida si no se hace por la persona que llama. Por defecto es de 1 a repetir el menú una vez| +Menu Time Check|Menú Hora Hora| +This field is where you can select whether to restrict the Call Menu access to the specific hours set up in the selected Call Time. If the Call Time is blank, this setting will be ignored. Default is 0 for disabled|Este campo es donde se puede seleccionar si desea restringir el acceso de llamadas del menú a la hora específica creada en el tiempo seleccionado de llamadas. Si el tiempo de atención está en blanco, este ajuste será ignorado. Por defecto es 0 para discapacitados| +Call Time ID|Tiempo de Llamadas ID| +This is the Call Time ID that will be used to restrict calling times if the Menu Time Check option is enabled|Este es el ID de tiempo de atención que se utilizarán para restringir los tiempos de llamada si se activa la opción de menú Hora Hora| +Track Calls in Real-Time Report|Pide pista en tiempo real Informe| +This field is where you can select whether you want the call to be tracked in the Real-time screen as an incoming IVR type call. Default is 1 for active|Este campo es donde se puede seleccionar si desea que el llamado a un seguimiento en la pantalla en tiempo real como una llamada entrante IVR tipo. El valor predeterminado es 1 para los activos| +Option Value|Valor de la opción| +This field is where you define the menu option, possible choices are|Este campo es donde se define la opción de menú, las opciones posibles son| +Option Route|Opción Ruta| +This menu contains the options for where to send the call if this option is selected|Este menú contiene las opciones de a dónde enviar la llamada si se selecciona esta opción| +The special option TIMECHECK can be used only if you have Menu Time Check enabled and there is a Call Time defined for the Menu|El TIMECHECK opción especial sólo puede utilizarse si tiene menú Time Check activado y hay un tiempo de atención definido para el menú de| +Option Route Value|Opción Ruta Valor| +This field is where you enter the value that defines where in the selected Option Route that the call is to be directed to|Este campo es donde se introduce el valor que se define en la opción seleccionada la ruta que la convocatoria debe ser dirigida a la| +Option Route Value Context|Opción Ruta valor de contexto| +This field is optional and only used for EXTENSION Option Routes|Este campo es opcional y sólo se utiliza para las rutas opción de prórroga| +ADD A NEW CALL MENU|AGREGAR UN NUEVO CONVOCATORIA MENU| +COPY CALL MENU|COPIA CALL MENU| +This menu contains the options for where to send the call if this option is selected: CALLMENU,INGROUP,DID,HANGUP,EXTENSION,PHONE. For CALLMENU, the Route Value should be the Menu ID of the Call Menu that you want the call sent to. For INGROUP, the In-Group that you want the call to be sent to needs to be selected as well as the other 5 options that need to be set to properly route a call to an Inbound Group. For DID, the Route Value needs to be the DID pattern that you want to send the call to. For HANGUP, the Route Value can be the name of an audio file to play before hanging up the call. For EXTENSION, the Route Value needs to be the dialplan extension you want to send the call to, and the Route Value Context is the context that extension is located in, if left blank the context will default to default. For PHONE, the Route Value needs to be the phone login value for the phones entry that you want to send the call to. For VOICEMAIL, the Route Value needs to be the voicemail box number, the unavailable mesage will be played. For AGI, the Route Value needs to be the agi script and any values taht need to be passed to it.|Este menú contiene las opciones de a dónde enviar la llamada si se selecciona esta opción: CALLMENU, endogrupo, DID, Hangup, EXTENSION, teléfono. Para CALLMENU, el valor de ruta debe ser el ID del menú de llamadas que desea que la convocatoria enviada a. Por grupo interno, el grupo interno que desea que el llamado a ser enviado a las necesidades para ser seleccionada, así como las otras 5 opciones que se deben establecer correctamente la ruta de una llamada a un grupo de entrada. Para DID, el valor de ruta debe ser el patrón de DID que desea enviar la llamada. Para HANGUP, el valor de ruta pueden ser el nombre de un archivo de audio para jugar antes de colgar la llamada. Por extensión, el valor de ruta debe ser la extensión dialplan que desea enviar la llamada a, y el contexto de valor de ruta es el contexto que se encuentra en la extensión, si se deja en blanco el contexto de forma predeterminada por defecto. Por teléfono, el valor de ruta debe ser el valor de inicio de sesión de teléfono de la entrada de los teléfonos que desea enviar la llamada. Para correo de voz, el valor de ruta debe ser el número del buzón de correo de voz, el mesage disponible será jugado. Para AGI, el valor de ruta debe ser el script de AGI y los valores que deben pasar a ella.| +Option Description|Opción Descripción| +This field is where you can describe the option, this description will be put into the dialplan as a comment above the option|Este campo es donde se puede describir la opción, esta descripción se pondrá en el dialplan como un comentario sobre la opción| +Source Menu|Menú Fuente| +CALL MENU NOT ADDED|CALL MENU NO AGREGADOS| +Call Menu ID must be between 2 and 50 characters in length and contain no|Llame Menú de identificación debe ser entre 2 y 50 caracteres de longitud y no contienen| +CALL MENU ADDED|CALL AGREGADOS MENU| +CALL MENU NOT MODIFIED|CALL MENU SIN MODIFICAR| +CALL MENU MODIFIED|CALL menú modificado| +Click here to see Admin chages to this CALL MENU|Haga clic aquí para ver chages de administración para este menú de llamada| +DELETE THIS CALL MENU|ELIMINAR LA PRESENTE CONVOCATORIA MENU| +MODIFY A CALL MENU RECORD|MODIFICAR UNA LLAMADA menú de grabación| +Time Check|Hora Hora| +No Time Check|No Check Time| +Realtime Tracking|Seguimiento en tiempo real| +No Realtime Tracking|No hay seguimiento en tiempo real| +Call Menu Options|Opciones del menú de llamadas| +Option|Opción| +CALL MENU NOT DELETED|CALL MENU no se eliminan| +CALL MENU DELETION CONFIRMATION|CONVOCATORIA menú de eliminación CONFIRMACIÓN| +Click here to delete CALL MENU|Haga clic aquí para eliminar CALL MENU| +CALL MENU DELETION COMPLETED|CONVOCATORIA menú de eliminación COMPLETA| +CALL MENU LISTINGS|CALL MENU LISTADOS| +CALLMENU will send the call to the defined Call Menu|CALLMENU enviará la llamada a definir el menú de llamadas| +Call Menu|Llame Menú| +If CALLMENU is selected as the DID Route, then this is the Call Menu that calls will be sent to|CALLMENU Si se selecciona como la Ruta de DID, entonces este es el menú de llamada que las llamadas serán enviados a| +Show Call Menus|Mostrar menús de llamadas| +Add A New Call Menu|Añadir un nuevo menú de llamadas| +Copy Call Menu|Copia de llamadas Menú| +To delete an Option, just set the Route to REMOVE and the option will be deleted when you click the SUBMIT button|Para eliminar una opción, establezca la ruta quitar y la opción se borrará cuando usted haga clic en el botón ENVIAR| +Agent Only Callback Campaign Lock|Único agente de devolución de llamada Campaña de bloqueo| +This option defines whether AGENTONLY callbacks are locked to the campaign that the agent originally created them under. Setting this to 1 means that the agent can only dial them from the campaign they were set under, 0 means that the agent can access them no matter what campaign they are logged into. Default is 1|Esta opción define si las devoluciones de llamada AGENTONLY están bloqueadas a la campaña de que el agente creado originalmente bajo. Establecer este valor a 1 significa que el agente sólo se puede marcar desde la campaña que se establecieron en virtud de 0 significa que el agente puede acceder a ellos sin importar lo que la campaña que se inició la sesión. Por defecto es 1| +Central Sound Control Active|Central de control de sonido activo| +This option defines whether the sound synchronization system is active across all servers. Default is 0 for inactive|Esta opción define si el sistema de sincronización de sonido está activo en todos los servidores. El valor predeterminado es 0 para los inactivos| +Sounds Web Server|Sonidos de servidor Web| +This is the server name or IP address of the web server that will be handling the sound files on this system, this must match the server name or IP of the machine you are trying to access the audio_store.php webpage on or it will not work. Default is 127.0.0.1|Este es el nombre del servidor o la dirección IP del servidor web que será el que maneja los archivos de sonido en este sistema, este debe coincidir con el nombre de servidor o dirección IP del equipo que está intentando acceder a la página web audio_store.php o no funcionará . Por defecto es 127.0.0.1| +Sounds Web Directory|Sounds Web Directory| +This auto-generated directory name is created at random by the system as the place that the audio store will be kept. All audio files will reside in this directory|Esta auto-generado nombre del directorio es creado al azar por el sistema como el lugar que la tienda de audio se mantendrá. Todos los archivos de audio residir en este directorio| +Audio Store|Audio de la tienda| +Audio File to Upload|Audio de un archivo para subir| +This utility allows you to upload audio files to the web server so that they can be distributed to all of the ViciDial servers in a multi-server cluster. An important note, only two audio file types will work, .wav files that are PCM 16bit 8k and .gsm files that are 8bit 8k. Please verify that your files are properly formatted before uploading them here|Esta utilidad te permite subir archivos de audio para el servidor de forma que puedan ser distribuidos a todos los servidores de Vicidial en un multi-cluster de servidores. Una nota importante, sólo dos tipos de archivos de audio de trabajo,. Archivos WAV PCM de 16 bits que se 8k y los archivos. GSM que se 8bit 8k. Por favor, verifique que los archivos tienen el formato correcto antes de subirlos aquí| +Sounds Update|Actualización de los sonidos| +If you want to force a check of the sound files on this server, and the central audio store is enabled as a system setting, then this field will allow the sounds updater to run at the next top of the minute. Any time an audio file is uploaded from the web interface this is automatically set to Y for all servers that have Asterisk active. Default is N|Si desea forzar una comprobación de los archivos de sonido en este servidor, y el almacén central de audio está activado como una configuración del sistema, este campo permitirán a los sonidos de actualización para ejecutar en la parte superior de la siguiente minuto. Toda vez que un archivo de audio se carga desde la interfaz web de este se ajusta automáticamente a Y para todos los servidores que tienen activos de Asterisk. Por defecto es n| +Active Voicemail Server|Servidor de correo de voz activo| +In multi-server systems, this is the server that will handle all voicemail boxes. This server is also where the dial-in generated prompts will be uploaded from, the 8168 recordings|En sistemas multi-servidor, este es el servidor que se encargará de todas las casillas de correo de voz. Este servidor es también donde la línea telefónica en mensajes generados se cargan desde el 8168 grabaciones| +Auto Dial Limit|Marcado automático de límite de| +This is the maximum limit of the auto dial level in the campaign screen|Este es el límite máximo de la escala de marcación automática en la pantalla de la campaña| +User Territories are not active on this system|Territorios de usuario no están activos en este sistema| +User Territories|Territorios de usuario| +List All Territories:|Lista de todos los territorios:| +User Territories Active|Territorios de usuario de Active| +This setting allows you to enable the User Territories setttings from the user modification screen. This feature was added to allow for more integration with a customized Vtiger installation but can have applications in a pure ViciDial system as well. Default is 0 for disabled|Esta configuración le permite habilitar la setttings territorios de usuario desde la pantalla de modificación del usuario. Esta característica se agregó para permitir una mayor integración con una instalación personalizada Vtiger pero puede tener aplicaciones en un sistema de Vicidial pura también. Por defecto es 0 para discapacitados| +List Territories|Lista de territorios| +Add Territory|Añadir Territorio| +Add User Territory|Añadir usuario Territorio| +Territory|Territorio| +Territory Description|Territorio Descripción| +Territory and Territory Description must be filled in|Territorio y Territorio Descripción deben ser rellenados| +there is already a territory in the system with this name|ya existe un territorio en el sistema con ese nombre| +Territory Added|Territorio en que se agregó| +Modify Territory|Modificar Territorio| +Territory not found|Territorio que no se encuentra| +This territory is not in the system with this name|Este territorio no está en el sistema con ese nombre| +Territory Modified|Territorio Modificado| +Territory must be filled in|Territorio debe ser llenado en| +Territory Deleted|Territorio eliminados| +Delete This Territory|Suprimir este territorio| +Vtiger Accounts|Cuentas Vtiger| +Agents|Agentes| +Territory, User and Level must be filled in|Territorio, y de nivel de usuario debe ser llenado en| +this territory user is already in the system|este usuario territorio ya está en el sistema de| +User Territory Added|Usuario Territorio Añadido| +this territory user is not in the system|este usuario territorio no está en el sistema| +User Territory Modified|Usuario Territorio Modificado| +Territory and User must be filled in|Territorio y el usuario deberá ser llenado en| +User Territory Deleted|Usuario Territorio eliminados| +Vtiger Change Territory Owner|Vtiger Cambio Territorio Propietario| +Had to add user territory|Tuvo que añadir el territorio de usuario| +Vtiger Territory Owner Changed|Vtiger Territorio Propietario cambiado| +Records Changed|Registros modificados| +ViciDial Recording Limit|Grabación Vicidial Límite| +This field is where you set the maximum number of minutes that a call recording initiated by ViciDial can be. Default is 60 minutes|Este campo es donde se define el número máximo de minutos que una grabación de la llamada iniciada por Vicidial puede ser. Por defecto es de 60 minutos| +This is the dial plan context that the agent applications, like ViciDial, primarily use. 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. default is default|Este es el contexto del plan de marcado que las solicitudes de agente, como Vicidial, principalmente el uso. Se supone que todos los números marcados por las aplicaciones cliente utilizan este contexto, por lo que es una buena idea para asegurarse de que este es el contexto más amplio posible. verificar con el archivo extensions.conf antes de cambiar. por defecto es por defecto| +Phone Context|Teléfono Contexto| +This is the dial plan context that this phone will use to dial out. If you are running a call center and you do not want your agents to be able to dial out outside of the ViciDial applicaiton for example, then you would set this field to a dialplan context that does not exist, something like agent-nodial. default is default|Este es el contexto del plan de marcado que este teléfono se utiliza para marcar. Si está ejecutando un centro de llamadas y usted no desea que sus agentes sean capaces de marcar fuera de la aplicación Vicidial por ejemplo, entonces puedes establecer este campo a un contexto dialplan que no existe, algo como agente nodial. por defecto es por defecto| +Use the HIDE option to completely remove the customer phone number from the agent display|Utilice la opción Ocultar para eliminar completamente el número de teléfono del cliente de la pantalla del agente de| +Click here to see a traffic report for this DID|Haga clic aquí para ver un informe de tráfico para este DID| +Agent Time Detail|Agente Tiempo Detalle| +User Timeclock Detail Report|Usuario Timeclock Detalle Informe| +Carrier Logging Active|Portador de registro activo| +This setting allows you to log all hangup return codes for any outbound list dialing calls that you are placing. Default is N.|Esta configuración le permite registrar todos los códigos de retorno para colgar cualquier lista de marcación saliente llamadas que están haciendo. Por defecto es N.| +Drop Lockout Time|Tiempo de caída de bloqueo| +This is a number of hours that DROP abandon calls will be prevented from being dialed, to disable set to 0. This setting is very useful in countries like the UK where there are regulations preventing the attempted calling of customers within 72 hours of an Abandon, or DROP. Default is 0|Este es un número de horas que DROP abandonar pide se le impida que se está marcando, para establecer inhabilitar a 0. Esta opción es muy útil en países como el Reino Unido, donde existen normas que impiden la tentativa de llamar a los clientes dentro de las 72 horas de abandono, o DROP. Por defecto es 0| +Phone Ring Timeout|Teléfono Anillo de tiempo de espera| +This is the amount of time, in seconds, that the phone will ring in the dialplan before sending the call to voicemail. Default is 60 seconds|Esta es la cantidad de tiempo, en segundos, que el teléfono sonará en el dialplan antes de enviar la llamada al buzón de voz. El valor predeterminado es 60 segundos| +Allow Custom Dialplan Entries|Permitir Custom Dialplan entradas| +This option allows you to enter custom dialplan lines into Call Menus. Default is 0 for inactive|Esta opción le permite introducir líneas personalizadas dialplan en llamadas menús. El valor predeterminado es 0 para los inactivos| +Custom Dilplan Entry|Custom Dilplan entrada| +This field allows you to enter in any dialplan elements that you want for the Call Menu|Este campo le permite entrar en los elementos dialplan que desea para el menú de llamada| +You can enter multiple propmts in this field and the other prompt fields by separating them with a pipe character|Puede introducir propmts múltiples en este campo y los demás ámbitos del sistema mediante la separación de ellos con un carácter de canalización| +Setting this field to zero 0 will mean that there will be no wait time after the prompt is played|Establecer este campo a cero 0 significa que no habrá tiempo de espera después de que el sistema se juega| +Conf File Secret|Conf. Archivo Secreto| +This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|Este es el secreto o la contraseña, por el teléfono de la SIP IAX o auto-generados conf para este teléfono. Límite es el tablero de 20 caracteres alfanuméricos y de subrayado aceptado. El valor predeterminado es la prueba| +Tracking Group|Grupo de seguimiento de| +This is the ID that you can use to track calls to this Call Menu when looking at the IVR Report. The list includes CALLMENU as the default as well as all of the In-Groups|Esta es la identificación que se puede utilizar para rastrear las llamadas a este menú de llamada cuando se mira al Informe de IVR. La lista incluye CALLMENU como predeterminado, así como todos los Grupos de In -| +Agent Alert Filename|Agente de Alerta Nombre de archivo| +The audio file to play to an agent to announce that a call is coming to the agent. To not use this function set this to X. Default is ding|El archivo de audio a jugar a un agente de anunciar que una llamada está llegando a su agente. Para no utilizar esta función establezca este valor por defecto es a X. Ding| +This field as with the other audio fields in In-Groups, with the exception of the Agent Alert Filename, can have multiple audio files played if you put a pipe-separated list of audio files into the field|Este campo como con los otros campos de audio en In-grupos, con la excepción del nombre de archivo de alerta de agente, puede tener múltiples archivos de audio reproducido si se pone un tubo de lista separada de los archivos de audio en el campo| +No Agents No Queueing|N de colas n Agentes| +If this field is set to Y or NO_PAUSED then no calls will be put into the queue for this in-group if there are no agents logged in and the calls will go to the No Agent No Queue Action. The NO_PAUSED option will also not send the callers into the queue if there are only paused agents in the in-group. Default is N|Si este campo está establecido en Y o NO_PAUSED entonces no se pide se pondrá en la cola de este grupo en si no hay agentes conectado y las llamadas se vaya a la agente n Ninguna acción de la cola. La opción NO_PAUSED no se envían también las personas que llaman a la cola si sólo hay una pausa en los agentes en el grupo. Por defecto es n| +No Agent No Queue Action|No No Acción cola de agente| +If No Agent No Queue is enabled, then this field defines where the call will go if there are no agents in the In-Group. Default is MESSAGE, this plays the sound files in the Action Value field and then hangs up|Si está activada ninguna cola Ningún Agente, entonces este campo se define en la llamada pasará si no hay agentes en la A-Group. Por defecto es el mensaje, este reproduce los archivos de sonido en el campo el valor de acción y luego cuelga el| +No Agent No Queue Action Value|No hay ninguna cola Acción Agente Valor| +This is the value for the Action above. Default is|Este es el valor de la acción anterior. El valor predeterminado es| +Quick Transfer Button|Rápida transferencia Button| +This option will add a Quick Transfer button to the agent screen below the Transfer-Conf button that will allow one click blind transferring of calls to the selected In-Group or number. IN_GROUP will send calls to the Default Xfer Group for this Campaign, or In-Group if there was an inbound call. The PRESET options will send the calls to the preset selected. Default is N for disabled|Esta opción agrega un botón de la transferencia rápida a la pantalla por debajo de la agente de transferencia de botón Conf. que permitirá la transferencia de un solo clic ciego de llamadas a los seleccionados en Grupo o un número. IN_GROUP enviará pide al Grupo de Xfer predeterminado para esta campaña, o en grupo-si hay una llamada entrante. Las opciones predeterminadas enviará las llamadas a los preset seleccionado. Por defecto es n para discapacitados| +PrePopulate Transfer Preset|Transferencia de rellenar previamente Preset| +This option will fill in the Number to Dial field in the Transfer Conference frame of the agent screen if defined. Default is N for disabled|Esta opción le proporcione el número telefónico al campo en el marco de la Conferencia de transferencia de la pantalla si el agente definido. Por defecto es n para discapacitados| +Enable TTS Integration|Habilitar TTS Integración| +This setting allows you to enable Text To Speech integration with Cepstral. This is currently only available for outbound Survey type campaigns. Default is 0 for disabled|Esta configuración le permite habilitar Texto a la integración de voz con Cepstral. Esto sólo está disponible actualmente para las campañas de tipo de encuesta de salida. Por defecto es 0 para discapacitados| +ADD NEW TTS ENTRY|ADD NEW TTS ENTRADA| +ADDING NEW TTS ENTRY|AGREGAR NUEVO TTS ENTRADA| +MODIFY TTS ENTRY|MODIFICAR TTS ENTRADA| +DELETE TTS ENTRY|DELETE TTS ENTRADA| +TTS ENTRY LIST|TTS LISTA INSCRITOS| +TEXT-TO-SPEECH(TTS) LISTINGS|Texto-a-voz (TTS) LISTINGS| +Text To Speech|Text To Speech| +Show TTS Entries|Mostrar las entradas TTS| +Add A New TTS Entry|Agregar una nueva entrada TTS| +TTS ID|TTS ID| +TTS Name|Nombre TTS| +TTS Text|TTS Texto| +TTS ENTRY NOT ADDED|TTS entrada no AGREGADOS| +there is already a tts entry in the system with this ID|ya hay una entrada de TTS en el sistema con este ID| +TTS ENTRY ADDED|TTS añadido la entrada de| +MODIFY A TTS RECORD|TTS MODIFICAR UN RECORD| +Click here to see Admin chages to this TTS entry|Haga clic aquí para ver chages Admin a esta entrada a TTS| +DELETE THIS TTS ENTRY|ELIMINAR ESTA ENTRADA TTS| +TTS ENTRY NOT MODIFIED|TTS ENTRADA SIN MODIFICAR| +TTS ENTRY MODIFIED|TTS entrada modificada| +TTS ENTRY NOT DELETED|TTS entrada no DELETED| +TTS ENTRY DELETION CONFIRMATION|TTS DE ENTRADA SUPRESIÓN DE CONFIRMACIÓN| +Click here to delete tts entry|Haga clic aquí para eliminar TTS entrada| +This is the short name of a TTS entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 50 characters, minimum of 2 characters|Este es el nombre corto de una entrada de TTS. Esto debe ser un identificador único. No utilice espacios ni puntuacion para este campo. caracteres como máximo 50, mínimo de 2 caracteres| +This is a more descriptive name of the TTS entry. This is a short summary of the TTS definition. max 100 characters, minimum of 2 characters|Este es un nombre más descriptivo de la entrada TTS. Este es un breve resumen de la definición de TTS. 100 caracteres como máximo, mínimo de 2 caracteres de| +This option allows you to set the TTS entry to active or inactive|Esta opción le permite establecer la entrada de TTS a activos o inactivos| +This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example|Este es el texto real de campo de datos de voz que se envía a Cepstral para la creación del archivo de audio que deben desempeñar para el cliente. Usted puede utilizar Speech Syntesis Markup Language-SSML-en este campo, por ejemplo,| +for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. Here is a list of the available variables: |de 1 segundo descanso. También puede utilizar varias variables como el nombre, apellido y el título como variables Vicidial tal como lo harías en una secuencia de comandos: - A - first_name - B -. Aquí está una lista de las variables disponibles:| +Multiple Campaign Drop Rate Group|Varias campañas Drop Rate Grupo| +This feature allows you to set a campaign as a member of a Campaign Drop Rate Group, or a group of campaigns whose Human Answered calls and Drop calls for all campaigns in the group will be combined into a shared drop percentage, or abandon rate. This allows you to to run multiple campaigns at once and more easily control your drop rate. This is particularly useful in the UK where regulations permit this drop rate calculation method with campaign grouping for the same company even if there are several campaigns that company is running during the same day. To enable this for a campaign, just select a group from the list. There are 10 groups defined in the system by default, you can contact your system administrator to add more. Default is DISABLED|Esta característica le permite establecer una campaña como miembro de una campaña de la velocidad de descenso del Grupo, o un grupo de campañas cuyas llamadas contestadas y llamadas Humanos Drop para todas las campañas en el grupo se combinarán en un porcentaje de caída compartida, o tasa de abandono. Esto le permite ejecutar varias campañas a la vez y más fácil de controlar su tasa de caída. Esto es particularmente útil en el Reino Unido, donde las regulaciones lo permiten esta disminución método del tipo de cálculo con la campaña de la agrupación por la misma empresa, incluso si hay varias campañas que la empresa está ejecutando en el mismo día. Para habilitar esta para una campaña, sólo tienes que seleccionar un grupo de la lista. Hay 10 grupos definidos en el sistema por defecto, puede ponerse en contacto con el administrador del sistema para añadir más. Desactivado por defecto| +IMPORTANT, this is the password only for the agent web interface phone login, to change the sip.conf or iax.conf password, or secret, for this phone device you need to modify the Conf File Secret field further down on this page|Importante, esta es la única contraseña para la red de interfaz de usuario del agente de teléfono, para cambiar el sip.conf iax.conf o contraseña, o en secreto, para este dispositivo de teléfono que tenga que modificar el campo Archivo Secreto Conf. más abajo en esta página| +Agent Status Viewable Groups|Estado del agente visible Grupos| +This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into|Esta es una lista seleccionable de grupos de usuarios y las funciones de usuario al que los miembros de este grupo de usuarios pueden ver el estado de las llamadas, así como la transferencia al interior de la pantalla del agente. La opción de grupo permite a los usuarios de este grupo para ver y transferir llamadas a cualquier usuario en el sistema. La campaña-AGENTES opción permite a los usuarios en este grupo para ver y transferir llamadas a cualquier usuario en la campaña que se registran en la| +Agent Status View Time|Ver estado del agente de turno| +This option defines whether the agent will see the amount of time that users in their agent sidebar have been in their current status. Default is N for no or disabled|Esta opción define si el agente va a ver la cantidad de tiempo que los usuarios en su barra lateral agente han sido en su estado actual. Por defecto es n sin o con discapacidad| +This option allows an agent to disposition a call as CALLBK and choose the date and time at which the lead will be re-activated|Esta opción permite que un agente a disposición de una llamada como CALLBK y elegir la fecha y hora en que el plomo se vuelva a activar| +Agent View Calls in Queue|Agente Pide Ver en cola| +If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE|Si se pone a nada, pero NINGUNO, los agentes podrán consultar los detalles de las llamadas que están esperando en la cola en la pantalla de su agente. Si se establece en un valor de número, las llamadas que aparecerá será limitada al número seleccionado. El valor predeterminado es NINGUNO| +View Calls in Queue Launch|Ver las llamadas en cola de lanzamiento| +This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL|Este ajuste, si en AUTO tendrá las convocatorias en el marco de la cola aparecen en inicio de sesión por el agente en la pantalla del agente. El valor predeterminado es MANUAL| +Agent Grab Calls in Queue|Agente Pide Agarre en cola| +This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N|Esta opción si se define Y permitirá que el agente para seleccionar la llamada que desea tomar de las llamadas en la pantalla de la cola haciendo clic en él durante la pausa. Los agentes sólo podrán coger las llamadas entrantes o las llamadas transferidas, las llamadas no de salida. Por defecto es n| +Agent Call Re-Queue Button|Agente de Call Re-Cola Button| +This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N|Esta opción si se define Y agregará un botón Re-cliente de la cola a la pantalla del agente, permite a las agencias para enviar la llamada en una cola de AGENTDIRECT que está reservado para el único agente. Por defecto es n| +Agent Pause After Each Call|Agente de pausa después de cada llamada| +This option if set to Y will pause the agent after every call automatically. Default is N|Esta opción si se define como Y hará una pausa en el agente después de cada llamada automáticamente. Por defecto es n| +Starts with the highest rank and works its way down|Comienza con la más alta categoría y se abre camino hacia abajo| +Starts with the lowest rank and works its way up|Comienza con el rango más bajo y se abre camino hasta| +Starts with owners beginning with Z and works its way down|Comienza con los propietarios de inicio con Z y obras de su camino hacia abajo| +Starts with owners beginning with A and works its way up|Comienza con los propietarios empiezan con la letra y se abre camino hasta| +No Hopper Dialing|N marcado Hopper| +If This is enabled, the hopper will not run for this campaign. This option is only available when the dial method is set to MANUAL or INBOUND_MAN. It is recommended that you do not enable this option if you have a very large lead database, over 100,000 leads. With No Hopper Dialing, the following features do not work: lead recycling, auto-alt-dialing, list mix, list ordering with Xth NEW. If you want to use Owner Only Dialing you must have No Hopper Dialing enabled. Default is N for disabled|Si esta opción está activada, la tolva no se ejecutará para esta campaña. Esta opción sólo está disponible cuando el método de línea se establece en Manual o INBOUND_MAN. Se recomienda que no habilite esta opción si usted tiene una base de datos de plomo muy grande, más de 100.000 clientes potenciales. Con n marcado Hopper, las características siguientes no funcionan: reciclaje de plomo, auto-alt-marcación, la mezcla lista, lista de pedido con X NEW. Si desea utilizar único dueño de marcado no debe tener marcado Hopper habilitado. Por defecto es n para discapacitados| +Owner Only Dialing|Único propietario de marcado| +If This is enabled, the agent will only receive leads that they are within the ownership parameters for. If this is set to USER then the agent must be the user defined in the database as the owner of this lead. If this is set to TERRITORY then the owner of the lead must match the territory listed in the User Modification screen for this agent. If this is set to USER_GROUP then the owner of the lead must match the user group that the agent is a member of. For this feature to work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper Dialing must be enabled. Default is NONE for disabled|Si esta opción está activada, el agente sólo recibirá las pistas que están dentro de los parámetros de la propiedad. Si esto se establece a usuario entonces el agente debe ser definida por el usuario en la base de datos como el propietario de este lugar. Si esto se establece en territorio que entonces el dueño de la iniciativa debe coincidir con el territorio que figuran en la pantalla de modificación del usuario de este agente. Si esto se establece a USER_GROUP entonces el dueño de la iniciativa debe coincidir con el grupo de usuarios que el agente es un miembro de. Para que esta característica funcione el método de línea se debe establecer en Manual o INBOUND_MAN marcado Hopper y no debe estar activado. El valor predeterminado es NINGUNO para discapacitados| +Reset Times|Perdí Times| +This field allows you to put times in, separated by a dash-, that this list will be automatically reset by the system. The times must be in 24 hour format with no punctuation, for example 0800-1700 would reset the list at 8AM and 5PM every day. Default is empty|Este campo le permite poner veces, separados por un guión, que esta lista se restablece automáticamente por el sistema. Los tiempos deben estar en formato de 24 horas sin puntuacion, por ejemplo 0800-1700 se restablecer la lista de las 8 AM y las 5 PM todos los días. Por defecto está vacío| +Owner: |Propietario:| +OWNERS WITHIN THIS LIST|PROPIETARIOS dentro de esta lista| +RANKS WITHIN THIS LIST|RANKS dentro de esta lista| +Allow Alerts|Permitir Alertas| +This field gives you the ability to allow agent browser alerts to be enabled by the agent for when calls come into their vicidial.php session. Default is 0 for NO|Este campo le da la capacidad para permitir navegador agente de alertas para ser habilitado por el agente para cuando las llamadas entran en su período de sesiones vicidial.php. Por defecto es 0 para el NO| +Agent Display Dialable Leads|Agente de pantalla Dialable Leads| +This option if enabled will show the number of dialable leads available in the campaign in the agent screen. This number is updated in the system once a minute and will be refreshed on the agent screen every few seconds|Esta opción se mostrará si está habilitado el número de derivaciones dialable disponibles en la campaña en la pantalla del agente. Este segundo número se actualiza en el sistema una vez por minuto y se actualiza en la pantalla del agente por cada par de| +VICIDIAL Balance Rank|Balance Vicidial Rank| +This field allows you to set the order in which this server is to be used for balance dialing, if balance dialing is enabled. The server with the highest rank will be used first in placing Balance fill calls. Default is 0|Este campo le permite establecer el orden en que este servidor se va a utilizar para la marcación de equilibrio, si está activada la marcación de equilibrio. El servidor con el rango más alto será usado primero en la colocación de Balance llenar las llamadas. Por defecto es 0| +Inbound Summary Hourly Report|Resumen horario de entrada Informe| +orders by the amount of time agent has been actively waiting for a call|pedidos por la cantidad de tiempo que el agente ha estado activamente la espera de una llamada de| +Agent Script Override|Agente de secuencias de comandos Reemplazar| +If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the lead is from this list. Default is not set|Si se establece este campo, esta será la secuencia de comandos que el agente ve en su pantalla en lugar de la secuencia de comandos de campaña cuando la ventaja es de esta lista. Por defecto no se establece| +Music On Hold|Música en espera| +ADD NEW MUSIC ON HOLD ENTRY|ADD NEW MUSIC EN ESPERA DE ENTRADA| +ADDING NEW MUSIC ON HOLD ENTRY|ADDING NEW MUSIC EN ESPERA DE ENTRADA| +MODIFY MUSIC ON HOLD ENTRY|MODIFICAR MÚSICA EN ESPERA DE ENTRADA| +DELETE MUSIC ON HOLD ENTRY|DELETE MÚSICA EN ESPERA DE ENTRADA| +MUSIC ON HOLD ENTRY LIST|MÚSICA EN ESPERA LISTA DE ENTRADA| +We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files|Le recomendamos ENCARECIDAMENTE cargar sólo 16 bits 8k archivos de audio WAV PCM| +Music On Hold ID|Música en espera de identificación| +This is the short name of a Music On Hold entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 100 characters, minimum of 2 characters|Este es el nombre corto de una música en espera de entrada. Esto debe ser un identificador único. No utilice espacios ni puntuacion para este campo. 100 caracteres como máximo, mínimo de 2 caracteres de| +Music On Hold Name|Música en espera Nombre| +This is a more descriptive name of the Music On Hold entry. This is a short summary of the Music On Hold context and will show as a comment in the musiconhold-vicidial.conf file. max 255 characters, minimum of 2 characters|Este es un nombre más descriptivo de la música en espera de entrada. Este es un breve resumen de la música en espera contexto y se verá como un comentario en el musiconhold archivo vicidial.conf. máximo de 255 caracteres, mínimo de 2 caracteres| +This option allows you to set the Music On Hold entry to active or inactive. Inactive will remove the entry from the conf files|Esta opción le permite definir la música en espera la entrada en activo o inactivo. Inactivo eliminará la entrada de los archivos de conf| +Random Order|Orden aleatorio| +This option allows you to define the playback of the audio files in a random order. If set to N then the defined order will be used|Esta opción le permite definir la reproducción de los archivos de audio en un orden aleatorio. Si se establece a N, entonces el orden definido se utilizará| +To add a new audio file to a Music On Hold entry the file must first be in the audio store, then you can select the file and click submit to add it to the file list. Music on hold is updated once per minute if there have been changes made. Any files not listed in a music on hold entry that are present in the music on hold folder will be deleted|Para añadir un nuevo archivo de audio a una música en espera de entrada el primer archivo debe estar en la tienda de audio, puede seleccionar el archivo y haga clic en Enviar para añadirlo a la lista de archivos. Música en espera se actualiza una vez por minuto si se han producido cambios realizados. Cualquier archivo que no figuran en la música en la entrada de reserva que están presentes en la música en la carpeta celebrar serán eliminados| +MUSIC ON HOLD ENTRY NOT ADDED|MÚSICA EN ESPERA entrada no AGREGADOS| +there is already a moh entry in the system with this ID|ya hay una entrada en el Ministerio de Salud en el sistema con este ID| +MUSIC ON HOLD ENTRY ADDED|MÚSICA EN ESPERA añadido la entrada de| +Click here to see Admin chages to this Music On Hold entry|Haga clic aquí para ver chages de administración para esta música en espera de entrada| +Audio Files|Archivos de Audio| +Add An Audio File|Añadir un archivo de audio| +Rank: |Rango:| +MUSIC ON HOLD ENTRY NOT MODIFIED|MÚSICA EN ESPERA DE ENTRADA SIN MODIFICAR| +MUSIC ON HOLD ENTRY MODIFIED|MÚSICA EN ESPERA entrada modificada| +Add A New MOH Entry|Agregar una nueva entrada del Ministerio de Salud| +Show MOH Entries|Mostrar las entradas del Ministerio de Salud| +Active Agent Server|Active Server Agent| +Setting this option to N will prevent agents from being able to login to this server through the vicidial agent screen. This is very useful when using a phone login load balanced setup. Default is Y|Al establecer esta opción a N de impedir que los agentes de poder acceder a este servidor a través de la pantalla del agente Vicidial. Esto es muy útil cuando se utiliza una carga de inicio de sesión de instalación del teléfono equilibrada. Por defecto es Y| +Rebuild Music On Hold|Volver a generar música en espera| +If you want to force a rebuilding of the music on hold files or if the music on hold entries or server entries have changed then this should be set to Y. After the music on hold files have been synchronized and reloaded then this will be changed to N. Default is Y|Si desea forzar una reconstrucción de la música en los archivos de la bodega o si la música en las entradas de espera ni entradas de servidor han cambiado entonces esto debe establecerse en Y. Después de la música en espera los archivos se han sincronizado y volver a cargar entonces esto va a ser cambiado a N. defecto es Y| +MUSIC ON HOLD ENTRY NOT DELETED|MÚSICA EN ESPERA DE ENTRADA no se eliminan| +MUSIC ON HOLD ENTRY DELETION CONFIRMATION|MÚSICA EN ESPERA DE ENTRADA SUPRESIÓN DE CONFIRMACIÓN| +Click here to delete music on hold entry|Haga clic aquí para borrar música en espera de entrada| +MUSIC ON HOLD DELETION COMPLETED|MÚSICA EN ESPERA SUPRESIÓN COMPLETA| +Starts with Eastern timezones and works West|Comienza con las zonas horarias del Este y del Oeste de obras| +Starts with Western timezones and works East|Comienza con las zonas horarias occidental y oriental de obras| +you must select a user group|usted debe seleccionar un grupo de usuarios| +Enable Second Webform|Formulario de Asistencia Segunda Habilitar| +WaitForSilence Options|Opciones WaitForSilence| +If Wait For Silence is desired on calls that are detected as Answering Machines then this field has those options. There are two settings separated by a comma, the first option is how long to detect silence in milliseconds and the second option is for how many times to detect that before playing the message. Default is EMPTY for disabled. A standard value for this would be wait for 2 seconds of silence twice|Si Wait For silencio es deseada en las llamadas que se detectan como Contestadoras entonces este campo tiene esas opciones. Hay dos opciones separadas por una coma, la primera opción es el tiempo para detectar silencio en milisegundos y la segunda opción es para cuántas veces se detecta que antes de reproducir el mensaje. Por defecto está vacío para discapacitados. Un valor estándar para este sería esperar 2 segundos de silencio en dos ocasiones| +This field is for entering the prompt to play when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this to either an audio file in the audio store or a TTS prompt if TTS is enabled on your system|Este campo es para entrar en el sistema para jugar cuando el agente recibe un contestador automático y hace clic en el botón Responder a máquina contestadora en el marco de conferencias de transferencia. Debe establecer que esto sea un archivo de audio en la tienda de audio o un sistema TTS TTS si está habilitada en su sistema de| +EXTENDED ALTERNATE PHONE NUMBERS FOR THIS LEAD|EXTENDED SUPLENTE NÚMEROS DE TELÉFONO PARA ESTE DE PLOMO| +ADD NEW VOICEMAIL BOX|ADD NEW contestador| +ADDING NEW VOICEMAIL BOX|AGREGAR NUEVO contestador| +MODIFY VOICEMAIL BOX|MODIFICAR contestador| +MODIFY A VOICEMAIL BOX|MODIFICAR UN contestador| +DELETE VOICEMAIL BOX|DELETE contestador| +VOICEMAIL BOXES LIST|LISTA DE CORREO DE VOZ CAJAS| +VOICEMAIL BOXES|CAJAS DE CORREO DE VOZ| +ADD NEW VOICEMAIL BOX|ADD NEW contestador| +Voicemail ID|ID de correo de voz| +This is the all numbers identifier of this mailbox. This must not be a duplicate of an existing voicemail ID or the voicemail ID of a phone on the system, minimum of 2 characters|Este es el identificador de todos los números de este buzón. Esto no debe ser un duplicado de un mensaje de voz existentes de identificación o la identificación del correo de voz de un teléfono en el sistema, mínimo de 2 caracteres| +This is name associated with this voicemail box. max 100 characters, minimum of 2 characters|Este es el nombre asociado a este buzón de voz. 100 caracteres como máximo, mínimo de 2 caracteres de| +This is the password that is used to gain access to the voicemail box when dialing in to check messages max 10 characters, minimum of 2 characters|Esta es la contraseña que se utiliza para acceder al buzón de voz cuando se marca para revisar los mensajes máximo 10 caracteres, mínimo de 2 caracteres| +This option allows you to set the voicemail box to active or inactive. If the box is inactive you cannot leave messages on it and you cannot check messages in it|Esta opción le permite configurar la casilla de correo de voz activo o inactivo. Si el cuadro está inactivo no se puede dejar mensajes en él y no se puede revisar los mensajes en él| +This optional setting allows you to have the voicemail messages sent to an email account, if your system is set up to send out email. If this field is empty then no emails will be sent out|Este ajuste opcional le permite tener los mensajes de correo de voz enviado a una cuenta de correo electrónico, si su sistema está configurado para enviar correo electrónico. Si este campo está vacío, entonces no los correos electrónicos se envían| +VOICEMAIL BOX NOT ADDED|Contestador NO AGREGADOS| +there is already a voicemail box in the system with this ID|ya existe un buzón de voz en el sistema con este ID| +there is already a phone in the system with this voicemail ID|ya hay un teléfono en el sistema de correo de voz con este ID| +VOICEMAIL BOX ADDED|Contestador AGREGADOS| +VOICEMAIL BOX NOT MODIFIED|Contestador SIN MODIFICAR| +VOICEMAIL BOX MODIFIED|Contestador MODIFICADOS| +VOICEMAIL BOX NOT DELETED|Contestador no se eliminan| +VOICEMAIL BOX DELETION COMPLETED|Contestador SUPRESIÓN COMPLETA| +VOICEMAIL BOX DELETION CONFIRMATION|Contestador SUPRESIÓN DE CONFIRMACIÓN| +Click here to delete voicemail box|Haga clic aquí para eliminar buzón de voz| +DELETE THIS VOICEMAIL BOX|Este mensaje de voz DELETE BOX| +Click here to see Admin chages to this voicemail box|Haga clic aquí para ver chages de administración para esta casilla de correo de voz| +The following fields must have data|Los siguientes campos deben disponer de datos| +Campaign CID Override|Campaña CID Override| +If this field is set, this will override the campaign CallerID that is set for calls that are placed to leads in this list. Default is not set|Si se establece este campo, que reemplazarán la campaña CallerID que se establece para las llamadas que se colocan a la cabeza en esta lista. Por defecto no se establece| +Answering Machine Message Override|Contestador automático de mensajes Override| +If this field is set, this will override the Answering Machine Message set in the campaign for customers in this list. Default is not set|Si se establece este campo, esto anulará el mensaje de contestador automático situado en la campaña para los clientes en esta lista. Por defecto no se establece| +Drop Inbound Group Override|Drop de entrada Grupo de Override| +If this field is set, this in-group will be used for outbound calls within this list that drop from the outbound campaign instead of the drop in-group set in the campaign detail screen. Default is not set|Si se establece este campo, en este grupo se utilizará para las llamadas salientes dentro de esta lista que la caída de la campaña de salida en lugar de la caída en grupo situado en la pantalla de detalle de la campaña. Por defecto no se establece| +Agent Select Territories|Agente Seleccione territorios| +If this option is enabled and the agent belongs to at least one territory, the agent will have the option of selecting territories to dial leads from. The agent will see a list of available territories upon login and they will have the ability to go back to that territory list when paused to change their territories. For this function to work the Owner Only Dialing option must be set to TERRITORY and User Terriories must be enabled in the System Settings.|Si esta opción está activada y el agente pertenece a al menos un territorio, el agente tendrá la opción de selección de territorios a los cables de línea. El agente podrá ver una lista de los territorios disponibles a inicio de sesión y tendrán la capacidad de volver a la lista territorio cuando se detuvo a cambiar sus territorios. Para esta función a la labor del único dueño de marcado opción debe configurarse con el territorio y territorios de usuario debe estar habilitado en la configuración del sistema.| +Agent Choose Territories|Agente Elija territorios| +This option if set to 1 allows the user to choose the territories that they will receive calls from when they login to a MANUAL or INBOUND_MAN campaign. Otherwise the user will be set to use all of the territories that they are set to belong to in the User Territories administrative section|Esta opción si se establece en 1 permite al usuario elegir los territorios que van a recibir llamadas de los usuarios cuando ingresan a un manual o campaña INBOUND_MAN. De lo contrario el usuario será configurado para utilizar todos los territorios que se establecen a pertenecer a los territorios de usuario administrativos sección| +The AREACODE option is just like the Y option, except it is used to also filter out an entire area code in North America from being dialed, in this case using the 201XXXXXXX entry in the DNC list would block all calls to the 201 areacode if enabled|La opción codigoDeArea es como la opción-y, excepto que se utiliza para filtrar también un código de área en toda América del Norte desde que se está marcando, en este caso mediante la entrada en la lista 201XXXXXXX DNC podría bloquear todas las llamadas a los 201 codigoDeArea si está habilitada| +If you have the active DNC option set to AREACODE then you can also use area code wildcard entries like this 201XXXXXXX to block all calls to the 201 areacode when enabled|Si usted tiene la opción de DNC activas de codigoDeArea a continuación, usted también puede usar el código de entradas de la zona este 201XXXXXXX como comodín para bloquear todas las llamadas a los 201 codigoDeArea cuando está activado| +Carrier Description|Descripción Carrier| +This is put in the comments of the asterisk conf files above the dialplan and account entries. Maximum 255 characters|Éste se coloca en los comentarios de los archivos de conf asterisco encima del dialplan y anotaciones en cuenta. Máximo 255 caracteres| +CAMPAIGNS ALLOWING THIS IN-GROUP|CAMPAÑAS QUE PERMITA EN ESTE GRUPO| +This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|Este es el secreto, o la contraseña, para que el servidor en el auto iax generado conf para este servidor en otros servidores. Límite es el tablero de 20 caracteres alfanuméricos y de subrayado aceptado. El valor predeterminado es la prueba| +Delete Voicemail After Email|Eliminar correo de voz después del email| +This optional setting allows you to have the voicemail messages deleted from the system after they have been emailed out. Default is N|Este ajuste opcional le permite tener los mensajes de correo de voz se elimina del sistema después de haber sido enviado por correo electrónico a cabo. Por defecto es n| +Last Campaign Call Date|Última fecha de convocatoria de la Campaña| +This is the last time that a call was handled by an agent logged into this campaign|Esta es la última vez que una llamada fue manejado por un agente registrado en esta campaña| +Custom User Fields|Los campos de usuario personalizada| +These five fields can be used for various purposes, and they can be populated in the web form addresses and scripts as user_custom_one and so on|Estos cinco campos se puede utilizar para diversos fines, y que se puede rellenar en el formulario web y direcciones de secuencias de comandos como user_custom_one y así sucesivamente| +CRM Popup Login|CRM Popup Login| +If set to Y, the CRM Popup Address is used to open a new window on agent login to this campaign. Default is N|Si se establece en Y, la Dirección de Popup CRM se utiliza para abrir una nueva ventana de inicio de sesión agente a esta campaña. Por defecto es n| +CRM Popup Address|CRM Dirección Popup| +The web address of a CRM login page, it can have variables populated just like the web form address, with the VAR in the front and using --A--user_custom_one--B-- to define variables|La dirección en Internet de una página de acceso de CRM, puede tener las variables de población como la dirección de formulario web, con el VAR en el frente y con la opción - A - user_custom_one - B - para definir variables| +If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attempt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attempt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attempt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue, VIDPROMPT will prompt the caller for their ID number and will create a new lead record with the CallerID as the phone number and the ID as the Vendor ID, VIDPROMPTLOOKUP will attempt to lookup the ID in the entire system, VIDPROMPTLOOKUPRL will attempt to lookup the vendor ID by the ID in only one specified list, VIDPROMPTLOOKUPRC will attempt to lookup the vendor ID by the ID in all of the lists that belong to the specified campaign. Default is CID|IN_GROUP Si se selecciona como la Ruta de DID, entonces este es el llamado método de control utilizado para estas llamadas. Cid agregar un registro de conducir nuevo con cada llamada mediante la CallerID como el número de teléfono, CIDLOOKUP intentará buscar el número de teléfono por el CallerID en todo el sistema, CIDLOOKUPRL intentará buscar el número de teléfono por el CallerID en una sola lista especificada , CIDLOOKUPRC intentará buscar el número de teléfono por el CallerID en todas las listas que pertenecen a la campaña especificada, más cerca se especifica para Vicidial Closer llamadas, ANI añadirá un nuevo registro de conducir con cada llamada mediante la ANI como el número de teléfono, ANILOOKUP intentará buscar el número de teléfono de la ANI en todo el sistema, ANILOOKUPRL intentará buscar el número de teléfono de la ANI en una sola lista especificada, XDIGITID pedirá la llamada de un código de dos dígitos X antes de la llamada se pondrá en la cola, VIDPROMPT pedirá la persona que llama por su número de identificación y creará un registro de conducir nuevo con el CallerID como el número de teléfono y el ID como el identificador de proveedor, VIDPROMPTLOOKUP intentará buscar el ID en todo el sistema, VIDPROMPTLOOKUPRL intentará búsqueda del proveedor de identificación de la identificación en una sola lista se especifica, VIDPROMPTLOOKUPRC tratará de buscar el proveedor de identificación de la identificación en todas las listas que pertenecen a la campaña especificado. El valor predeterminado es CID| +UNIFIED_CONTACT- This option will use the beta Vtiger 5.1.0 feature to search by phone number and bring up a search page in Vtiger|UNIFIED_CONTACT-Esta opción se utiliza la versión beta 5.1.0 Vtiger función para buscar por número de teléfono y acceder a la página de búsqueda en Vtiger| +Timer Action|Temporizador de Acción de| +This feature allows you to trigger actions after a certain amount of time. the D1 and D2 DIAL options will launch a call to the Transfer Conference Number presets and send them to the agent session, this is usually used for simple IVR validation AGI applications or just to play a pre-recorded message. WEBFORM will open the web form address. MESSAGE_ONLY will simply display the message that is in the field below. NONE will disable this feature and is the default|Esta característica le permite activar acciones después de una cierta cantidad de tiempo. D1 y D2 opciones de marcación lanzará un llamamiento a la transferencia de presets Conferencia Número y enviarlos a la sesión del agente, éste se utiliza generalmente para aplicaciones sencillas de validación IVR AGI o simplemente para jugar un mensaje pregrabado. WebForm se abrirá la dirección de formulario web. MESSAGE_ONLY simplemente mostrará el mensaje de que está en el campo de abajo. Ninguna de ellas podrá deshabilitar esta característica y es el predeterminado| +Timer Action Message|Temporizador de mensaje de acción| +This is the message that appears on the agent screen at the time the Timer Action is triggered|Este es el mensaje que aparece en la pantalla del agente en el momento de la acción del temporizador se dispara| +Timer Action Seconds|Temporizador Segundos Acción| +This is the amount of time after the call is connected to the customer that the Timer Action is triggered. Default is -1 which is also inactive|Esta es la cantidad de tiempo después de la llamada se conecta a los clientes que se desencadena la acción del temporizador. El valor predeterminado es -1, que también está inactivo| +This setting will override the Campaign settings|Esta configuración anula la configuración de la campaña| +Start Call URL|Iniciar llamada URL| +This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. The Start URL does not work for Manual dial calls. Default is blank|Esta web dirección URL no es visto por el agente, sino que es llamado cada vez que una llamada se envía a un agente si se poblaron. Utiliza las mismas variables que los campos de formulario web y scripts. Esta URL no puede ser una ruta relativa. La URL de inicio no funciona para las llamadas de marcación manual. Por defecto está en blanco| +Dispo Call URL|Dispo Call URL| +This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank|Esta web dirección URL no es visto por el agente, sino que es llamado cada vez que una llamada es dispositioned por un agente, si se poblaron. Utiliza las mismas variables que los campos de formulario web y scripts. dispo y talk_time son las variables que puede utilizar para recuperar el agente definido por la disposición de la llamada y el tiempo de conversación real en segundos de la llamada. Esta URL no puede ser una ruta relativa. Por defecto está en blanco| +Xfer-Conf Number Override|Xfer-Conf Número Override| +These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank|Estos cinco campos permiten reemplazar la transferencia de presets Conferencia número cuando la iniciativa es de esta lista. Por defecto está en blanco| +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. If you want to allow Consultative Transfers, a fronter to a closer, have the agent use the CONSULTATIVE checkbox, which does not work for third party non-ViciDial consultative calls. For those just have the agent click the Dial With Customer button. Then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER, for instance if you want to do a call to a special IVR you have set to extension 83900 you would put AXFER83900 in the number-to-dial field|Estos cuatro campos permiten que usted tenga dos conjuntos de transferencia de la Conferencia y presets DTMF. Cuando se carga la llamada o de la campaña, la secuencia de comandos vicidial.php mostrará dos botones en el marco de la transferencia de conferencias y rellenará de forma automática el número a marcar y el enviar los campos DTMF cuando se presiona. Si desea permitir Consultivo transferencias, un Fronter a una mayor, que el agente utiliza la casilla de consulta, que no funciona por falta de terceros Vicidial llamadas de consulta. Para aquellos que sólo tienen el agente, haga clic en el dial con el botón del cliente. Entonces, el agente puede dejar-3way-CALL y pasar a la siguiente llamada. Si desea permitir la transferencia ciega de los clientes a una secuencia de comandos AGI Vicidial para el registro o un IVR, a continuación, AXFER lugar en el número a marcar el terreno. También puede especificar una extensión personalizada después de la AXFER, por ejemplo, si usted quiere hacer una llamada a un IVR especiales que se han fijado a la extensión 83900 pondrías AXFER83900 en el número a marcar el terreno| diff --git a/agc_2-X/branches/agc_2.2.0/translations/fr_language.txt b/agc_2-X/branches/agc_2.2.0/translations/fr_language.txt new file mode 100644 index 00000000..5ae9ea4b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/fr_language.txt @@ -0,0 +1,491 @@ +# fr_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=fr +# current languages in the file: +# - English - (en) no alterations +# - French - (fr) second column +***LANGUAGES*** +en-English|fr-Français| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"JAN"| +"FEB"|"FEV"| +"MAR"|"MAR"| +"APR"|"AVR"| +"MAY"|"MAI"| +"JUN"|"JUN"| +"JLY"|"JUL"| +"AUG"|"AOÛ"| +"SEP"|"SEP"| +"OCT"|"OCT"| +"NOV"|"NOV"| +"DEC"|"DEC"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Anglais| +Spanish|Espagnol| +French|Français| +German|Allemand| +Italian|Italien| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF.gif| +vdc_LB_pause.gif|vdc_LB_pause.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF.gif| +vdc_LB_resume.gif|vdc_LB_resume.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF.gif| +vdc_LB_webform.gif|vdc_LB_webform.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Vous êtes maintenant déconnecté.| +astGUIclient web-client VERSION|astGUIclient Client Web| +astGUIclient web client|astGUIclient Client Web| +VICIDIAL web client|VICIDIAL Client Web| +VICIDIAL web-client version|VICIDIAL Client Web| +You can only monitor Zap channels|Vous ne pouvez surveillez que des canaux de type Zap | +Stop Record|Arrêter l'Enregistrement| +you are logged into this phone|Vous êtes identifié via ce téléphone| +Back to Main Window|Retour à la Fenêtre Principale| +LIVE CALLS ON THIS PHONE|APPELS EN COURS SUR CE TELEPHONE| +LIVE CALLS IN THIS CONFERENCE|APPELS EN COURS DANS CETTE CONFERENCE| +LIVE CALL TRANSFER|TRANSFERT D'APPEL EN COURS| +CLIENT CHANNEL|CANAL CLIENT| +REMOTE CHANNEL|CANAL DISTANT| +CLICK HERE TO LOG IN AGAIN|APPUYER ICI POUR VOUS IDENTIFIER| +ACTIVE DISPLAY PAUSED|AFFICHAGE EN PAUSE| +Main Panel|Ecran Principal| +Active Lines Panel|Lignes Actives| +Conferences Panel|Conférences| +Check Voicemail|Consulter Votre Boite Vocale| +Live Call|Appel en cours| +Hangup Trunk|Raccrocher le Faisceau| +Hijack Trunk|Intercepter le Faisceau| +Listen Trunk|Ecoute du Faisceau| +Active Local Menu|Menu Local Actif| +Hangup Local|Raccrochage Local| +Hijack Local|Interception Locale| +Listen Local|Ecoute Locale| +Channel to be transferred|Canal à transférer| +Extensions Menu|Extensions| +Send to selected extension|Renvoyer l'Appel| +Send to selected vmail box|Renvoyer vers la Boite Vocale| +Send to this number|Renvoyer vers ce Numéro| +click on a number below to send to a conference|Selectionnez un Numéro de Conférence| +Send my channel too|Renvoyez également mon canal| +Conferences Menu|Conférences| +LOCAL Extensions Dial|Composer une Extension LOCALE| +Phone calling from|Téléphone appelant de| +Call selected extension|Appeler l'extension séléctionnée| +Call selected vmail box|Appeler la boite vocale séléctionnée| +LOCAL DIAL EXTENSIONS|EXTENSIONS LOCALES| +OUTBOUND CALLS|APPELS SORTANTS| +INBOUND CALLS|APPELS ENTRANTS| +Refresh rate|Vitesse de rafraichissement| +MANUAL DIAL|APPEL MANUEL| +CALL\/TIME|DATE\/HEURE D'APPEL| +LOCAL HANGUP|RACROCHAGE LOCAL| +PARKED CALLS|APPELS EN ATTENTE| +PARKED BY|MIS EN ATTENTE PAR| +PARKED TIME|DURREE D'ATTENTE| +Registered to|Enregistré à| +Enter Conference|Rejoindre la Conférence| +Dial From Conf|Appels a pertir d'une Conférence | +Active Extensions|Extensions Actives| +Outside Lines|Lignes Extérieures| +Local Extensions|Extensions Locales| +Data Goes Here|Données Transférées vers| +Trunk Action|Action sur Faisceau| +Local Action|Action Locale| +Conferences List|Liste Des Conférences| +Click on a conference room number on the left for info on that conference|Cliquez à Gauche du numéro de salle de conférence pour obtenir des informations| +List Display|Mode Liste| +Live Extensions|Extensions en cours d'appel| +Busy Extensions|Extensions Occupées| +Outside Lines|Lignes Extérieures| +script runtime|durée d'exécution du script| +Call Log Display|Affichage de l'historique d'Appel| +is not valid|est invalide| +or protocol|ou protocole| +Conf Extension Check|Vérification de l'extension de la Conférence| +has been registered to|a été attribué à| +LIVE INBOUND CALL|APPEL ENTRANT EN COURS| +Number Dialed|Numéro Composé| +SEND TO MY VOICEMAIL|ENVOYEZ VERS MA BOITE VOCALE| +Live Extension Check|Vérification De l'extension| +Manager Send|Envoi de l'Administrateur| +command not inserted|commande non insérée| +command sent for|commande envoyée pour| +One of these variables|Une de ces variables| +must be greater than 2 characters|doit avoir plus de 2 caractères | +must be greater than 14 characters|doit avoir plus de 14 caractères | +must be set|est obligatoire| +not sent|pas envoyé| +Cannot find empty conference|Il n'y a pas de conférence disponible| +is not live|n'est pas en ligne| +RECORDING WILL LAST UP TO 60 MINUTES|L'ENREGISTREMENT DURERA AU MAXIMUM 60 MINUTES| +Parked Calls Display|Affichage des appels en Attente| +Database Query Script|Script De Requète à la Base de données| +Group Choice|Selection De Groupe| +has been registered to user|a été attribué à l'utilisateur| +HOPPER EMPTY|LISTE D'APPEL VIDE| +LOG NOT ENTERED|NOTATION NON ENTRÉE| +has been changed to|a été changé en| +information has been updated|l'information a été mise à jour| +is now in status|le statut actuel est| +Voicemail Check|Consultation de la Boite Vocale| +voicemail box|boîte vocale| +Re-Login|S'identifier à nouveau| +User Password|Mot de passe Utilisateur| +User Login|Ouverture de Session| +Phone Login|Ouverture de Session téléphonique| +Phone Password|Mot de passe du Téléphone| +Campaign not active, please try again|Campagne inactive, réessayez| +Login incorrect, please try again|L'ouverture de session a èchoué, réessayez| +Campaign Login|Ouverture de Campagne| +Sorry, your phone login and password are not active in this system, please try again|L'ouverture de la session Téléphonique à échoué, réessayez| +leads left to call in hopper|fiches Restant à appeler| +CAMPAIGN CUSTOM PARKING|ATTENTE SPECIFIQUE| +CAMPAIGN DEFAULT PARKING|ATTENTE PAR DEFAUT| +CAMPAIGN CUSTOM WEB FORM|FORMULAIRE SPECIFIQUE | +CAMPAIGN DEFAULT WEB FORM|FORMULAIRE PAR DEFAUT| +CAMPAIGN ALLOWS CLOSERS|CAMPAGNE PERMETANT LES CLOSERS| +CAMPAIGN ALLOWS NO CLOSERS|CAMPAGNE NE PERMETANT PAS LES CLOSERS| +USING PREVIOUS MEETME ROOM|UTILISER LA SALLE MEETME PRECEDENTE| +USING NEW MEETME ROOM|UTILISER UNE NOUVELLE SALLE MEETME| +old QUEUE and INCALL reverted list|vieille FILE D'ATTENTE et liste retournée par INCALL| +old QUEUE and INCALL reverted hopper|vieille FILE D'ATTENTE et liste predictive retourné par INCALL| +old vicidial_live_agents records cleared|supression des anciens enregistrements vicidial_live_agents| +campaign is set to auto_dial_level|campagne configurée en auto_dial_level| +new vicidial_live_agents record inserted|nouvel enregistrement vicidial_live_agents inséré| +campaign is set to manual dial|campagne comfigurée en mode Appel Manuel| +Sorry, there are no leads in the hopper for this campaign|Aucune fiche client n'est éligible pour cette campagne| +Dial Next Number|Appel Numéro Suivant| +LIVE CALLS IN YOUR SESSION|IL Y A DES APPELS EN COURS SUR VOTRE SESSION| +Stop Recording|Cesser d'Enregistrer| +Start Recording|Enregistrer| +Transfer number must have more than 1 digit|La longueur du numéro doit être supérieure a 1| +Grab Parked Call|Recup. Appel en Attente| +Park Call|Mettre en Attente| +Waiting for Ring|Attente| +Called 3rd party|Tiers appelé| +LEAVE 3-WAY CALL|QUITTER LA CONF A 3| +Dial With Customer|Appel Client| +Park Customer Dial|Mettre en Attente| +Hangup Xfer Line|Raccrocher la ligne transférée| +Hangup Both Lines|Raccrocher les deux lignes| +Hangup Customer|Raccrocher| +Transfer - Conference|Transfert - Conférence| +LOCAL CLOSER|CLOSER LOCAL| +INTERNAL CLOSER|CLOSER INTERNE| +Dial Blind Transfer|Transfert immédiat| +Dial timed out, contact your system administrator|Expiration du délais de numérotation, contactez votre administrateur système| +No more leads in the hopper for campaign|Plus de fiches clients éligibles pour cette campagne| +Web Form|Formulaire Web| +You Must Select a Disposition|Vous devez choisir un status| +GROUPS NOT SELECTED|GROUPES NON SELECTIONNES| +SELECTED GROUPS|GROUPES SELECTIONNES| +You cannot log out during a Dial attempt|Vous ne pouvez pas vous déconnecter en cours de numérotation| +Wait 50 seconds for the dial to fail out if it is not answered|Attendre 50 secondes sur non réponse| +STILL A LIVE CALL! Hang it up then you can log out|Un APPEL EST EN COURS ! Raccrochez-le avant de fermer la session| +Hide conference call channel information|Cacher les informations sur la conférence| +Show conference call channel information|Montrez les informations sur la conférence| +Logged in as User|Utilisateur | +Noone is in your session|Votre session est vide| +Customer has hung up|Le client a raccroché| +End-of-call Disposition Selection|Selection du status de fin d'appel| +CLOSER INBOUND GROUP SELECTION|UN CHOIX DE GROUPE D'ARRIVÉE PLUS ÉTROIT| +Closer Inbound Group Selection|Un Choix De Groupe D'arrivée Plus étroit| +BLENDED CALLING|APPEL EN MODE BLENDED| +outbound activated|Mode "Appels Sortants" Activé| +Preview the Lead then|Prévisualiser la fiche Prospect et| +Lead was not reverted, there was an error|Erreur sur cette fiche prospect| +call was not placed, there was an error|l'appel n'a pas été composé, une erreur s'est produite| +Number to call|Numéro à appeler| +Customer Information|Informations Client| +Lead Dispositioned As|Fiche Prospect Statuée en| +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|Aucune modification ne peut être prise en compte, les modifications doivent être validées avant de raccrocher| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Si actif, utilisez le raccourci clavier pour statuer et raccrocher un appel| +Disposition Hot Keys|Raccourcis clavier des Status| +Cust Time|Durée d'Appel| +RECORD ID|IDENTIFIANT| +RECORDING FILE|ENREGISTREMENT| +HOT KEYS ACTIVE|RACCOURCIS ACTIFS| +HOT KEYS INACTIVE|RACCOURCIS INACTIFS| +DIAL OVERRIDE|SURNUMEROTATION| +SKIP LEAD|SUIVANT| +DIAL LEAD|APPELER| +LEAD PREVIEW|Prévisualisation| +PAUSE AGENT DIALING|PAUSE DE LA NUMEROTATION| +DISPOSITION CALL|STATUER L'APPEL| + session ID| Id de session| + to campaign| Campagne:| +Select a CallBack Date|Choisissez une date de Rappel| + maximize | agrandir | + minimize | réduire | +You must choose a date|Vous devez choisir une date| +Select a Date Below|Choisissez une date ci-dessous| +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|Selectionnez un rappel a éffectuer immédiatement. Une fois éffectué, ce rappel diparaitra de la liste| +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 vous désirez composer un numéro sans insérer de nouvelle fiche client, entrez le N° a appeler dans le champ Surnumerotation. Pour raccrocher cet appel, vous devrez ouvrir la page Appels en Cours et raccrocher manuellement le canal correspondant| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|VOUS NE POUVEZ PAS EVITER UN RAPPEL OU UN APPEL MANUEL, VOUS DEVEZ COMPOSER LE NUMERO| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|VOUS DEVEZ ÊTRE EN PAUSE POUR COMPOSER UN APPEL MANUEL| +Enter information below for the new lead you wish to call|Nouveau prospect: remplissez le formulaire ci dessous| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|VOUS DEVEZ ÊTRE EN PAUSE POUR POUVOIR CONSULTER LA LISTE DES RAPPELS AUTOMATIQUES| +Note: all new manual dial leads will go into list 999|Note : toutes les fiches correspondant à des appels manuels seront insérées dans la liste 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|TRANSFERT INTERDIT| +will be added to the beginning of this number|servira de préfixe à ce nombre| +This is usually a 1 in the USA-Canada|La valeur de ce champ est habituellement 1 aux Etats-Unis et au Canada| +NEW MANUAL DIAL LEAD FOR|NOUVEL APPEL MANUEL VERS| +Finish and Disposition Call|Terminer et Statuer l'Appel| +10 digits max - digits only|10 chiffres au maximum| +Note: a dial prefix of|Note : préfixe :| +Hangup Again|Décrochement Encore| +Go Back|Retour| +Call Agent Again|Rappeler l'agent| +MY CALLBACK ONLY|RAPPELS PERSONNELS| +NO ACTIVE CALLBACKS|PAS DE RAPPELS EN COURS| +ACTIVE CALLBACKS|RAPPELS EN COURS| +CALLBACKS FOR AGENT|RAPPELS PERSONNELS| +Dial Code:|Code d'Appel:| +Dial Override|Surnumérotation| +digits only please|Ce champ n'accepte que des chiffres| +Dial Now|Appel Manuel| +CB Comments|Commentaires du Rappel| +Title|Titre| +Your Status|Votre Statut| + STATUS| STATUT| +RESET|REINITIALISATION| +CLEAR FORM|EFFACER LE FORMULAIRE| +SUBMIT|VALIDER| +Incoming|Entrant| +Calling|Appeler| +Called|Appelé| +Campaign|Campagne| +Status|Statut| +Inserted|Inséré| + seconds|secondes| +HELP|AIDE| +Login|Ouverture de Session| +User|Utilisateur| +Password|Mot de passe| +VERSION|VERSION| +BUILD|BUILD| +Server|Serveur| +RECORD|ENREGISTREMENT| +HANGUP|RACCROCHER| +>XFER|>TRANSFERT| +PARK|MISE EN ATT| +IN-NUMBER|IN-NUMBER| +NUMBER|NOMBRE| +LENGTH|LONGUEUR| +CALLERID|APPELANT| +CallerID|Appelant| + CALL| APPEL| +PICKUP|INTERCEPTER| +CONFERENCE|CONFÉRENCE| +Refresh|Rafraichir| +Send DTMF|Envoyez DTMF| +ORDER|ORDRE| + on | sur | +LOGOUT|DÉCONNEXION| +Channel|Canal| +Extensions|Extensions| +Conferences|Conférences| +Conference|Conférence| +Recording|Enregistrer| +Record|Enregistrement| +Welcome|Bienvenue| +VOICEMAIL|Boite Vocale| + NEW| NOUVEAU| + OLD| ANCIEN| +STOP|ARRÊT| +START|DEBUT| + Pause | Pause | +Resume|Résumé| +Faster|Plus rapidement| +Slower|Plus lentement| +Initializing|Initialisation| +Invalid|Invalide| +Username|Username| +CUSTOM|COUTUME| +Notes|Notes| +First|Prenom| +MI: |Mi:| +Last|Nom| +Address|Adresse| +City|Ville| +State|État| +PostCode|CodePostal| +Province|Province| +Vendor ID|CodeVendeur| +DialCode|DialCode| +Alt. Phone|Tel. 2nd| +Show|Visualiser| +Email|Email| +Comments|Commentaires| +REFRESH|RAFRAICHIR| +ALT PHONE DIAL|APPEL NUM. 2nd.| +MAIN PHONE|TÉLÉPHONE PRINCIPAL| +ALT PHONE|TELEPHONE 2nd.| +ADDRESS3|ADRESSE3| +FINISH LEAD|TERMINER LA SAISIE| +Dial Alt Phone Number|Appel Numéro 2nd.| +Phone|Téléphone| + DIAL| COMPOSER| +SUBMIT FAVORITES CHANGES - requires logout|Modification de paramétrage - vous devrez vous fermer la session| +BACK TO MAIN WINDOW - ignore changes made|RETOUR À LA FENÊTRE PRINCIPALE - annuler les modifications| +AVAILABLE EXTENSIONS|EXTENSIONS DISPONIBLES| + edit| Modifier| + FAVORITES| FAVORIS| +### END translation phrases through 1.1.11 release ### +Search Existing Leads|Rechercher dans les fiches client existantes| +This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Si cette option est activée, le numéro de téléphone sera recherché dans la base avant d'être inséré| +Finish Wrapup and Move On|Terminer le traitement post appel et continuer| +seconds remaining in wrapup|secondes restant pour le traitement post appel| +Call Wrapup:|Traitement Post Appel :| +### months of the year for CallBack date select screen ### +January|Janvier| +Frebruary|Février| +March|Mars| +April|Avril| +May|Mai| +June|Juin| +July|Juillet| +August|Août| +September|Septembre| +October|Octobre| +November|Novembre| +December|Décembre| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Information De Rappels| +Last Call: |Dernier Appel :| +CallBack: |Rappel :| +Agent: |Agent :| +Comments: |Commentaires:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|VOLUME| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|CADRAN RAPIDE| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|VOUS DEVEZ ÉCRIRE Un NUMÉRO De TÉLÉPHONE ET Un CODE De CADRAN POURUTILISER Le CADRAN RAPIDE| + SELECT A PAUSE CODE :| CHOISISSEZ Un CODE De PAUSE :| +ENTER A PAUSE CODE|ÉCRIVEZ Un CODE De PAUSE| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|VOUS DEVEZ ÊTRE FAIT UNE PAUSE POUR ÉCRIRE Un CODE De PAUSE DANS LeMODE D'AUTO-DIAL| +Your session has been disabled|Votre session a été neutralisée| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Sexe:| +Date of Birth: |Date de naissance:| +YOU MUST BE PAUSED TO CHANGE GROUPS|VOUS DEVEZ ÊTRE pause pour changer de groupe| +Calls in Queue:|Appels dans la file d'attente:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|L'utilisateur et le mot de passe que vous avez entrés ne sont pas actifs dans le système| +Please try again|S'il vous plaît essayez de nouveau| +You cannot log in or out within 30 seconds of your last login or logout|Vous ne pouvez pas vous connecter ou dans un délai de 30 secondes de votre dernière connexion ou déconnexion| +You have now logged-out|Vous avez maintenant connecté à| +You logged out at |Vous vous êtes connecté à| +Amount of time you were logged-in: |Montant de temps vous avez été enregistrés dans:| +ERROR: timeclock log entry already made: |ERREUR: timeclock entrée de journal déjà fait:| +BACK to Agent Login Screen|RETOUR à l'Agent Login Screen| +BACK to Administration|RETOUR à l'administration| +BACK to Welcome Screen|RETOUR à l'écran de bienvenue| +Time since you were last logged-in: |Temps écoulé depuis la dernière session ont été vous-en:| +You last logged-out at: |Vous dernière connecté à:| +Click LOGIN below to log-in|Cliquez ci-dessous pour LOGIN log-in| +Amount of time you have been logged-in: |Montant de temps vous avez été enregistrés dans:| +You logged-in at:|Vous vous êtes inscrit en ligne à:| +Click LOGOUT below to log-out|Cliquez ci-dessous pour vous connecter LOGOUT-out| +Undefined|Undefined| +This phone number is not in the campaign lists|Ce numéro de téléphone n'est pas dans la campagne des listes| +Unspecified error|Erreur non spécifiée| +Extended Alt Phone Information: |Extended Information Alt Téléphone:| +ALT DIAL NUMBER:|ALT numéro:| +Phone Code and Number:|Code et numéro de téléphone:| +Notes: |Notes:| +Active: |Active:| +Alt Count: |Alt Count:| +Change this phone number to INACTIVE|Modifiez ce numéro de téléphone à INACTIVE| +Change this phone number to ACTIVE|Modifiez ce numéro de téléphone à ACTIVE| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|Vous devez vous connecter pour timeclock LE PREMIER| +There is a time synchronization problem with your system, please tell your system administrator|Il ya un problème de synchronisation avec votre système, s'il vous plaît dites-le à votre administrateur système| +Preview Call|Preview Call| +SELECT A GROUP ALIAS|CHOISIR UN GROUPE ALIAS| +Group Alias Selection|Groupe de sélection Alias| +Click Here to Choose a Group Alias|Cliquez ici pour choisir un groupe Alias| +Group Alias|Groupe Alias| +ERROR: There are no Shifts enabled for your user group|ERREUR: Il n'y a pas de changements activée pour votre groupe d'utilisateurs| +ERROR: You are not allowed to log in outside of your shift|ERREUR: Vous n'êtes pas autorisés à se connecter à l'extérieur de votre quart de travail| +MANAGER OVERRIDE|MANAGER OVERRIDE| +Your Shift is over or has changed, you have been logged out of your session|Votre Shift est au dessus ou a changé, vous avez été déconnecté de votre session| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Vous n-êtes pas autorisé à composer dans les séances d-un autre agent| +QUICK TRANSFER|Quick Transfer| +Other Agents Status|Autres agents Etat| +Available Agents Transfer|Transfert des agents disponibles| +Show Calls In Queue|Afficher les appels en attente| +Calls In Queue|Appels en attente| +Hide Calls In Queue|Cacher les appels en attente| +Calls in Queue View Disabled for this campaign|Appels en attente Voir désactivé pour cette campagne| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|VOUS DEVEZ ÊTRE PAUSED GRAB AUX APPELS EN QUEUE| +Manager |Gestionnaire| +has selected your in-group choices|a sélectionné votre choix en groupe| +CONSULTATIVE|CONSULTATIF| +Close Message|Fermer Message| +TIMER NOTIFICATION|TIMER NOTIFICATION| diff --git a/agc_2-X/branches/agc_2.2.0/translations/fr_language_admin.txt b/agc_2-X/branches/agc_2.2.0/translations/fr_language_admin.txt new file mode 100644 index 00000000..39a697ce --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/fr_language_admin.txt @@ -0,0 +1,2484 @@ +# fr_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=fr +# current languages in the file: +# - English - (en) no alterations +# - French - (fr) first column +***LANGUAGES*** +en-English|fr-French| +***FILES*** +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 +vicidial|listloader.pl|1 +vicidial|listloader_rowdisplay.pl|1 +vicidial|listloader_super.pl|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_timeonVDADallSUMMARY.php|0 +vicidial|inbound_popup.php|0 +vicidial|AST_inboundEXTstats.php|0 +vicidial|welcome.php|0 +vicidial|admin_header.php|0 +vicidial|vicidial_sales_viewer.php|0 +vicidial|user_group_bulk_change.php|0 +vicidial|AST_agent_status_detail.php|0 +vicidial|AST_agent_days_detail.php|0 +vicidial|AST_CLOSER_service_level.php|0 +vicidial|AST_IVRfilter.php|0 +vicidial|AST_IVRstats.php|0 +vicidial|call_report_export.php|0 +vicidial|fcstats.php|0 +vicidial|list_download.php|0 +vicidial|non_agent_api.php|1 +vicidial|timeclock_edit.php|0 +vicidial|timeclock_report.php|0 +vicidial|timeclock_status.php|0 +vicidial|vtiger_search.php|1 +vicidial|vtiger_user.php|1 +vicidial|welcome_demo.php|1 +vicidial|welcome_languages.php|1 +vicidial|vicidial_admin_web_logo.gif|1 +vicidial|vicidial_admin_web_logo_small.gif|1 +vicidial|user_territories.php|1 +vicidial|audio_store.php|1 +vicidial|AST_agent_time_detail.php|1 +vicidial|AST_agent_timeclock_detail.php|1 +vicidial|AST_OUTBOUNDsummary_interval.php|1 +vicidial|call_report_export.php|1 +vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 +***TRANSLATIONS***|||| +### special translations that should stay at the top of the file ### +BORDER|BORDER| +VALUE=SUBMIT|VALUE=VALIDER| +TYPE=SUBMIT|TYPE=Submit| +\.\/images\/|../agc/images/| +help.gif|help.gif| +### BEGIN translation phrases through 1.1.11 release ### +English|Anglais| +Spanish|Espagnol| +French|Français| +German|Allemand| +Italian|Italien| +You have now logged out. Thank you|Vous êtes maintenant déconnecté. Merci.| +Invalid Username\/Password|Login ou mot de passe invalide| +ASTERISK ADMIN: Administration|ASTERISK ADMIN: Administration| +PHONES TABLE|TABLE DES TELEPHONES| +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.|Extension du téléphone - C'est dans ce champ qu'il faut mettre le nom du téléphone comme il apparait dans Asterisk sans mettre le protocole ou le slash du début. Par exemple: pour le téléphone SIP SIP/test101 l'extension sera test101. De même pour les téléphones IAX2 assurez vous d'utiliser le nom complet du téléphone : pour IAX2/IAXphone1@IAXphone1 ce sera IAXphone1@IAXphone1. Pour les téléphones ZAP assurez vous de mettre le channel complet: pour Zap/25-1 ce sera 25-1. De plus, assurez vous d'avoir mis le bon protocole en dessous pour votre téléphone.| +Dial Plan 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|Numéro dans le Dial Plan - Ce champ est pour le numéro utilisé pour appeler ce téléphone. Ce numéro est défini dans le fichier extensions.conf du serveur 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|Boîte vocale - Ce champ est pour la boîte vocale vers laquelle iront les messages pour l'utilisateur de ce téléphone. Il est utilisé pour vérifier la présence de messages et pour permettre à l'utilisateur d'utiliser le bouton VOICEMAIL dans l'application astGUIclient| +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 sortant - Ce champ est celui dans lequel vous entrez le numéro callerID que vous souhaitez voir apparaître lors d'appels externes passés depuis le client web astguiclient. Cela ne fonctionne pas avec RBS, non-PRI, T1/E1s| +Phone IP address -<\/B> This field is for the phone's IP address if it is a VOIP phone. This is an optional field|Adresse IP du téléphone - Ce champ est pour l'adresse IP du téléphone si c'est un téléphone VOIP. Ce champ est optionnel| +Computer IP address -<\/B> This field is for the user's computer IP address. This is an optional field|Adresse IP de l'ordinateur - Ce champ est pour l'adresse IP de l'ordinateur. C'est un champ optionel| +Server IP -<\/B> This menu is where you select which server the phone is active on|IP du serveur - Ce champ est celui où vous choisissez le serveur sur lequel est activé le téléphone| +Login -<\/B> The login used for the phone user to get to admin functions|Login - Le login utilisé par l'utilsateur du téléphone pour accéder aux fonctions d'administration| +Password -<\/B> The password used for the phone user to get to admin functions|Mot de Passe - Le mot de passe utilisé par l'utilisateur du téléphone pour accéder aux fonctions d'administration| +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|Statut - C'est le statut du téléphone dans le système, ACTIVE et ADMIN autorisent les clients graphiques à fonctionner. ADMIN autorise l'acces à l'administration de ce site. Tous les autres statuts n'autorisent pas l'accès aux clients graphiques ou à l'administration| +Active Account -<\/B> Whether the phone is active to put it in the list in the GUI client|Compte actif - Indique si le téléphone est actif pour le mettre dans la liste dans le client GUI| +Phone Type -<\/B> Purely for administrative notes|Type de téléphone - Seuelement pour les notes administratives| +Full Name -<\/B> Used by the GUIclient in the list of active phones|Nom complet - Utilisé par le client GUI dans la liste des téléphones actifs| +Company -<\/B> Purely for administrative notes|Compagnie - Seulement pour les notes administratives| +Picture -<\/B> Not yet Implemented|Image - Pas encore implémenté| +New Messages -<\/B> Number of new voicemail messages for this phone on the Asterisk server|Nouveaux messages - Nombre de nouveaux messages vocaux pour ce téléphone sur le serveur Asterisk| +Old Messages -<\/B> Number of old voicemail messages for this phone on the Asterisk server|Anciens messages - Nombre d'anciens messages vocaux pour ce téléphone sur le serveur 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|Protocole client - Le protocole que le téléphone utilise pour se connecter au serveur Asterisk: SIP, IAX2, Zap. Il y a également EXTERNAL pour les numéros distants et les numérotation rapide que vous voulez lister comme téléphone| +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 - La différence entre l'heure de Greenwich, ou l'heure ZULU et le fuseau horaire du téléphone. NE PAS AJUSTER POUR LES DAYLIGHT SAVINGS TIME. Ceci est utilisé par les campagnes VICIDIAL pour afficher correctement l'heure et l'heure du client| +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|Login du manager - C'est le login que les clients GUI de ce téléphones vont utiliser pour accéder à la base de données dans laquelle sont stockées les données du serveur| +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|Mot de passe du manager - C'est le mot de passe que les clients GUI de ce téléphone vont utiliser pour accéder à la base de données dans laquelle sont stockées les données du serveur| +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|Utilisateur par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ utilisateur de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser| +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|Mot de passe par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ mot de passe de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser| +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|Campagne par défaut de VICIDIAL - Permet de remplir une valeur par défaut dans le champ campagne de VICIDIAL quand l'utilisateur de ce téléphone ouvre l'application client astVICIDIAL. Laisser vide pour ne pas l'utiliser| +Park Exten -<\/B> This is the default Parking extension for the client apps. Verify that a different one works before you change this|Exten de mise en attente - C'est l'exten par défaut utilisé pour la mise en attente dans l'application client. Verifiez qu'il fonctionne avant de le changer| +Conf Exten -<\/B> This is the default Conference park extension for the client apps. Verify that a different one works before you change this|Exten pour mise en attente de la conférence - C'est l'exten par défaut utilisé pour la mise en attente de la conférence dans l'appilcation client. Verifiez qu'il autre fonctionne avant de le changer| +VICIDIAL Park Exten -<\/B> This is the default Parking extension for VICIDIAL client app. Verify that a different one works before you change this|Exten de mise en attente VICIDIAL - C'est l'exten par defaut utilisé pour la mise en attente pour l'appilcation cliente VICIDIAL. Avant de changer ce champ verifiez que le nouveau fonctionne| +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|VICIDIAL Park File - C'est le nom du fichier par defaut pour la mise en attente de VICIDIAL. Avant de le changer verifiez que le nouveau fonctionne. Limité a 10 caractères| +Monitor Prefix -<\/B> This is the dial plan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records|Prefix de Moniteur - C'est le prefix du monitoring des Channels Zap automatiquement contenu dans l'appication astguiclient. Ne changez qu'en accord avec les enregistrement des extensions ZapBarge| +Recording Exten -<\/B> This is the dial plan 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|Exten d'enregistrement - C'est l'extension dans le dial plan pour l'enregistrement utilisé pour enregistrer les conférences. C'est habituellement stoppé au bout d'une heure. Verifiez le fichier extentions.conf avant tout changement| +VMAIL Main Exten -<\/B> This is the dial plan extension going to check your voicemail. verify with extensions.conf file before changing|Exten principal pour VMAIL - C'est l'extension du dial plan utilisé pour verifier la boîte vocale. Verifiez le fichier extensions.conf avant tout changement| +VMAIL Dump Exten -<\/B> This is the dial plan 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|VMAIL Dump Exten - C'est le préfix du dial plan utilisé pour lancer des appels directement vers la boite vocale de l'utilisateur depuis un un appelen cours dans l'application astGUIclient app. Avant tout changement verifiez le fichier extensions.conf| +Exten Context -<\/B> This is the dial plan 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|Exten Contexte - C'est le contexte du dial plan que les téléphones utilisent principalement. Ce qui suppose que tous les numéros appelés par l'application cliente sont accessibles depuis ce contexte, assurez vous donc que ce contexte soit le plus large possible. Verifiez le fichier extension.conf avant toutes modifications| +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|Cannal d'envoi de DTMF - C'est le channel utilisé pour envoyer les sons DTMF dans les conférences meetme depuis l'application cliente. Verifiez le fichier extentions.conf avant tout changement| +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|Groupe d'appel sortant -<\/B> C'est le groupe de canal hors duquel seront placés les appels passés depuis ce téléphone. Il y a des routines dans l'application cliente qui l'utilisent. Pour les cannal Zap vous devriez utiliser quelque chose comme Zap/g2, pour les trunks IAX vous devriez utiliser un préfixe entier IAX comme IAX2/VICItet1:secret@10.10.10.15:4569. Vérifiez les trunks dans le fichier extensions.conf, il est courant que vous avez défini comme variable globale TRUNK au début du fichier| +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|Emplacement du Navigateur - C'est le chemin absolu pour le navigateur Mozilla ou firefox, ceci n'est applicable que pour les clients UNIX/LINUX. Vérifiez en le lançant manuellement| +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|Répertoire d'installation - C'est l'endroit où astGUIclient et les scripts astVICUDUAL sont installés sur la machine. Pour Win32 cela doit être quelque chose comme C:\\AST_VICI and for UNIX cela doit être quelque chose comme /usr/local/perl_TK. Vérifiez cela manuellement| +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 du CallerID - C'est l'adresse web de la page utilisée pour faire une verification personnalisée du CallerId. L'adresse des test par defaut est : 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 par defaut de VICIDIAL - C'est l'adresse web de la page utilisée pour faire des requêtes Web VICIDIAL personnalisées. L'adresse par defaut est: http://astguiclient.sf.net/test_VICIDIAL_output.php| +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 hang up 'h' extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly|Log des appels - Mettez à true si le fichier call_log.agi est placé dans le fichier extension.conf pour tout les appels sortants ainsi que l'extension de racrochage 'h' pour logger tout les appels. Il devrait toujours être à 1 car cela est nécessaire pour que certaines des fonctionnalités d'astGUIclient et de VICIDIAL fonctionnent proprement| +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|Changement d'utilisateur - Mettez à true pour autoriser un utilisateur à changer pour un autre compte utilisateur. NOTE: Si l'utilisateur commute, il peut initier l'enregistrement sur la nouvelle conversation téléphonique du nouvel utilisateur| +Conferencing -<\/B> Set to true to allow user to start conference calls with upto six external lines|Conferencing - Mettez à true pour autoriser un utilisateur a démarrer une conférence avec plus de 6 lignes externs| +Admin Hang Up -<\/B> Set to true to allow user to be able to hang up any line at will through astGUIclient. Good idea only to enable this for Admin users|Racrochage administateur- Mettre à true pour autoriser l'utilisateur à racrocher n'importe quelle ligne à travers astGUIclient. C'est une bonne idée de l'activer pour les administarteurs| +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|Détournement adminisrateur -<\/B> Mettre à true pour autoriser l'utilisateur à pouvoir intercepter et rediriger vers son extention n'importe quelle ligne à travers Astguiclient. C'est une bonne idée de l'activer pour les administrateurs. Mais c'est aussi très utile pour les managers| +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|Moniteur adminisrateur - Mettre à true pour autoriser l'utilisateur à intercepter et rediriger vers son extension certaines lignes à partir de astGUIclient. C'est une bonne idée de l'activer pour les adiministrateurs. Mais c'est aussi très utile pour les managers et comme outil d'entrainement| +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 hang up. Usually enabled for all|Parc d'appels -<\/B> Mettez à true pour autoriser l'utilisateur à parquer des appels dans astGUIclient pour être pris par n'importe quel utilisateur astGUIcient sur le système. Les appels sont mis en attente jusqu'à 30 minutes puis sont raccrochés. Habituellement activé pour tous| +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|Vérification de mise à jour - Mettre à true pour afficher une popup avertissant que le temps de mise à jour n'a pas changé en 20 secondes. Utile pour les administrateurs| +AF Logging -<\/B> Set to true to log many actions of astGUIclient usage to a text file on the user's computer|Log des AF - Mettre à true pour logguer les actions de astGUIclient dans un fichier texte sur l'ordinateur de l'utilisateur| +Queue Enabled -<\/B> Set to true to have client apps use the Asterisk Central Queue system. Required for VICIDIAL and recommended for all users|Activer la queue - Mettre à true pour que les applications clientes utilisent le systeme central de queue d'asterisk. Requis pour VICIDIAL et recommandé pour tout les utilisateurs| +CallerID Popup -<\/B> Set to true to allow for numbers defined in the extensions.conf file to send CallerID popup screens to astGUIclient users|Popup sur le CallerID - Mettre à true pour autoriser, pour les numéros définis dans le fichier extensions.conf, à afficher des popup concernat le CallerID aux utilisateurs d'astGUIclient| +VMail Button -<\/B> Set to true to display the VOICEMAIL button and the messages count display on astGUIclient|Bouton de boîte vocale - Mettre à true pour afficher le bouton VOICEMAIL et le nombre de messages dans 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|Rafraichissement rapide - Mettre à true pour activer un nouveau taux de rafraichissement de l'information dans astGUIclient. Par défaut ce taux est de 1000ms, 1 seconde. Si vous diminuez ce taux cela peu augmenter la charge système| +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|Taux de rafraichissement rapide - en millisecondes. Utiliser seulement si le rafraichissement rapide est activé. Par défaut le taux est de 1000ms , 1 seconde. La diminution de ce taux peux augmenter la charge système| +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|MySQL persistant -<\/B> Si activé, alors la connection à MYSQL sera maintenue au lieu d'être reconnectée chaque seconde. Utile si vous avez un taux de rafraichissement rapide. Cela va augmenter le nombre de connections au seveur MYSQL| +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|Appel automatique du numéro suivant - Si activé, le client VICIDIAL appelera automatiquement le numéro suivant dans la liste selon la disposition d'un appel à moins qu'ils aient choisi "Stop Dialing" sur l'écran de disposition| +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|Stoper l'enregistrement après chaque appel - Si activé, le client VICIDIAL stopera chaque enregistrement à la fin de l'appel. Utile si vous faites beaucoup d'enregistrements et si vous utiliser un formulaire web pour déclancher l'enregistrement| +DBX Server -<\/B> The MySQL database server that this user should be connecting to|Serveur DBX - Le serveur de la base de données MYSQL auquel cette utilisateur se connecte| +DBX Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de données DBX - Base de données à laquelle cet utilisateur ce connecte. La valeur par défault est asterisk| +DBX User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Utilisateur DBX - Login utilisateur de la base de données utilisé pour la connection. La valeur par défaut est cron| +DBX Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Mot de passe DBX - Mot de pass de la connetion MYSLQ. La valeur par défaut est 1234| +DBX Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|Port DBX - Port de la connection à la base de données. La valeur par défaut est 3306| +DBY Server -<\/B> The MySQL database server that this user should be connecting to|Serveur DBY - Le serveur de base de données auquel cet utilisateur ce connecte| +DBY Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de données DBY - La base de données MYSQL à laquelle cette utilisateur se connecte. La valeur par défaut est asterisk| +DBY User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Utilisateur DBY - Login utilisateur avec lequel cet utilisateur ce connecte à la base de données. La valeur par défaut est cron| +DBY Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Mot de passe DBY - Mot de passe avec lequel cet utilisateur ce connecte à MYSQL. La valeur par defaut est 1234| +DBY Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBY port - Port TCP de la connection MYSQL utilisée par cet utilisateur. La valeur par défaut est 3306| +Redirect command sent for channel|Commande de redirection envoyée pour le cannal| +Look up this customer in Customer Service System|Rechercher ce client dans le Système de Service Client| +Redirect command FAILED for channel|La commande de redirection a échoué pour le cannal| +PLEASE SELECT A NUMBER AND DATE ABOVE AND CLICK SUBMIT|VEUILLEZ SELECTIONNER UN NUMERO ET UNE DATE CI-DESSUS ET CLIQUEZ SUR VALIDER| +Total Calls That came into this number|Total des appels reçus par ce numéro| +Average Call Length(seconds) for all Calls|Durée moyenne des appels(en secondes) pour tous les appels| +Total DROP Calls: (less than 10 seconds)|Total des appels abandonnés: (moins de 10 secondes)| +Average Call Length(seconds) for DROP Calls|Durée moyenne des appels(en secondes) pour les appels abandonnés| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS|GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES DU TOTAL DES APPELS| +Click on the channel below that you would like to have directed to your phone|Cliquez sur le cannal vers lequel vous voulez diriger votre téléphone| +LAST 1000 CALLS FOR DATE RANGE|1000 DERNIERS APPELS POUR UNE PERIODE| +Click here to see what leads are in the hopper right now|Cliquez ici pour voir quelles fiches sont dans le distributeur à l'instant| +CUSTOM STATUSES WITHIN THIS CAMPAIGN|STATUTS PERSONNALISES DANS CETTE CAMPAGNE| +PLEASE SELECT A CAMPAIGN ABOVE AND CLICK SUBMIT|VEUILLEZ SELECTIONNER UNE CAMPAGNE CI-DESSUS ET CLIQUEZ SUR VALIDER| +PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK SUBMIT|VEUILLEZ SELECTIONNER UNE CAMPAGNE ET UNE DATE CI-DESSUS ET CLIQUEZ SUR VALIDER| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS PLACED FROM THIS CAMPAIGN|GRAPHIQUE INCREMENTE PAR TRANCHE DE 15 MINUTES POUR LE TOTAL DES APPELS PLACES DEPUIS CETTE CAMPAGNE| +ERROR: The file does not have the required number of fields to process it|ERREUR: Le fichier n'a pas le nombre de champs requis pour l'utiliser| +ERROR: File exceeds the 8MB limit|ERREUR: Le fichier dépasse la limmite de 8Mo| +Please enter the group you want to get hourly stats for|Veuillez entrez le groupe pour lequel vous souhaitez avoir les statistiques horaires | +The search variables you entered are not active in the system|Les variables de recherche que vous avez entré ne sont pas actives dans le système| +Please go back and double check the information you entered and submit again|Veuillez revenir en arrière et verifier les informations que vous avez saisi et valider de nouveau| +Click here to see the Lead Details|Cliquer ici pour voir le détail de la fiche| +SERVERS TABLE|TABLE DES SERVEURS| +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 du Sevreur - C'est ici que vous mettez le nom du serveur Asterisk, il n'est pas obligatoire de mettre le sous dommaine, juste un nom pour identifier le seveur pour les administrateurs| +Server Description -<\/B> The field where you use a small phrase to describe the Asterisk server|Descritpion du serveur - Petite description du serveur asterisk| +Server IP Address -<\/B> The field where you put the Network IP address of the Asterisk server|Adresse IP du serveur - Le champs dans lequel vous mettez l'adresse IP du serveur Asterisk| +Active -<\/B> Set whether the Asterisk server is active or inactive|Actif - Mettre si le serveur Asterisk est actif ou non| +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|Version d'Asterisk - Mettre la version d'asterisk que vous avez installé sur ce serveur. Examples: ' 1.2 ', ' 1.0.8 ', ' 1.0.7 ', 'CVS_HEAD', 'REALLY OLD', etc... Ceci est utilisé car les versions 1.0.8 et 1.0.9 ont une methode differente pour gérer les canaux Local/, un bug qui a été fixé dans le CVS v1.0, et qui nescessite d'être traité differement quand les canaux Local/ sont manipulés. Aussi, la version courante CVS_HEAD et l'arbre 1.2 utilisent des managers et des commandes différentes, qui doivent donc être traités différemment.| +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|Nombre maximum de trunks VICIDIAL - Ce champ détermine le nombre maximum de lignes que l'appel automatique de VICIDIAL essayera d'appeler sur ce serveur. Si vous voulez consacrer pleinement deux PRI T1s à VICIDIAL sur un serveur vous devriez mettre ce champ à 46. La valeur par defaut est 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|Hôte telnet - C'est l'adresse ou le nom du serveur Asterisk et c'est comme cela que les applications managers se connectent au sevreur quand elle sont lancées. Si les applications managers sont lancées sur le serveur Asterisk, alors la valeur par defaut 'localhost' fonctionne bien | +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|Port telnet - C'est le port de connection au manager du serveur Asterisk c'est par ceului-ci que les applications managers se connectent. La valeur par defaut '5038' fonctionne bien avec une installation standard| +Manager User -<\/B> The username or login used to connect genericly to the Asterisk server manager. Default is 'cron'|Utilisateur du manager - C'est l'utilisateur utilisé pour la connection au manager Asterisk. La valeur par défaut est 'cron'| +Manager Secret -<\/B> The secret or password used to connect genericly to the Asterisk server manager. Default is '1234'|Mot de passe du manager - Le secret ou mot de passe utilisé pour ce connecter au manager Asterisk. La valeur par defaut est '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|Utilisateur du manager pour les mises à jour - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts de mise à jour. La valeur par defaut est 'updatecron' et a le même secret que l'utilisateur générique| +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|Utilisateur du manager pour l'écoute - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts qui écoutent la sortie seulement. La valeur par défaut est 'listencron' et a le même secret que l'utilisateur générique| +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|Utilisateur du manager pour l'envoi - Le nom d'utilisateur ou le login utilisé pour se connecter au manager d'Asterisk, optimisé pour les scripts qui envoient des actions au manager. La valeur par défaut est 'sendcron' et a le même secret que l'utilisateur générique| +Server GMT offset -<\/B> The difference in hours from GMT time not adjusted for Daylight-Savings-Time of the server. Default is '-5'|Décalage GMT du serveur -La difference en heure par rapport à l'heure GMT non ajustée pour Les Daylight-Savings-Time du serveur. Par defaut '-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'|Exten VMail Dump - Le prefix de l'extention utilisé sur ce serveur pour lancer des appels directement depuis agc vers une boite vocale spécifique. La valeur par defaut est '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'|Extension de VICIDIAL AD - L'extension par défaut si personne n'est présent dans la campagne qui permet de lancer des appels pour l'appel automatique de VICIDIAL. La valeur par defaut est '8365'| +Default Context -<\/B> The default dial plan context used for scripts that operate for this server. Default is 'default'|Contexte par défaut - Le contexte par defaut utilisé par les scripts qui opèrent sur ce serveur. La valeur par défaut est 'default'| +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|ID Utilisateur - C'est ici que vous mettez le numéro ID de l'utilisateur VICIDIAL, entre 2 et 8 caractères| +Password -<\/B> This field is where you put the VICIDIAL users password. Must be at least 2 characters in length|Mot de passe - Mot de passe de l'utilisateur VICIDIAL. Doit contenir au moins 2 caractères| +Full Name -<\/B> This field is where you put the VICIDIAL users full name. Must be at least 2 characters in length|Nom complet - C'est dans ce champ que vous mettez le nom complet de l'utilisateur VICIDIAL. Doit contenir au moins 2 caractères| +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|Niveau de l'utilisateur - C'est ici que vous sélectionnez le niveau de l'utilisateur. Le niveau doit être de 1 pour pouvoir ce connecter à VICIDIAL, plus grand que 2 pour se connecter à une campagne de type Closer, doit être superieur ou égal à 8 pour accéder à la section web administrateur| +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|Groupe d'utilisateur - C'est dans ce menu que vous selectionnez le groupe utilisateur dans lequel sera cet utilisateur. Pour l'instant il n'y a pas de restriction, ce n'est que pour répartir les utilisateurs et autoriser les futures fonctions basées sur ceci| +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|Login du téléphone - C'est ici que vous mettez le login par défaut du téléphone pour quand cette utilisateur se connecte dans vicidial.php. Le champ phone_login sera automatiquement rempli par cette valeur quand l'utilisateur se connectera avec son utilisateur-mot_de_passe_passe-campagne dans l'écran de connection 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|Mot de passe du téléphone - C'est ici que vous mettez le mot de passe par defaut du téléphone pour quand l'utisateur se connecte dans vicidial.php. Le champ phone_pass sera rempli automatiquement avec cette valeur quand l'utilisateur se connectera avec utilislateur-passe-campagne dans l'écran de conncetion 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|Effacer des utilisateurs - Cette option et mise à 1 pour autoriser l'utilisateur à effacer d'autres utilisateurs qui ont un niveau inférieur ou égal depuis le système| +Delete User Groups -<\/B> This option if set to 1 allows the user to delete user groups from the system|Supprimer des groupes d'utilisateurs - Cette option et mise à 1 pour autoriser l'utilisateur à effacer les groupes d'utilisateurs depuis le système| +Delete Lists -<\/B> This option if set to 1 allows the user to delete vicidial lists from the system|Supprimer des listes - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des listes depuis le système| +Delete Campaigns -<\/B> This option if set to 1 allows the user to delete vicidial campaigns from the system|Supprimer des campagnes - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des campagnes vicidial depuis le système| +Delete In-Groups -<\/B> This option if set to 1 allows the user to delete vicidial In-Groups from the system|Supprimer des In-groups - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des In-groups vicidial depuis le système| +Delete Remote Agents -<\/B> This option if set to 1 allows the user to delete vicidial remote agents from the system|Supprimer des agents distants - Cette option et mise à 1 pour autoriser l'utilisateur à effacer des agents distants vicidial depuis le système| +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|Charger des fiches - Cette option et mise à 1 pour autoriser l'utilisateur à charger des fiches dans la table vicidial_list en utilisant le chargeur de fiches web| +Campaign Detail -<\/B> This option if set to 1 allows the user to view and modify the campaign detail screen elements|Details de la campagne- Cette option et mise à 1 pour autoriser l'utilisateur à voir et modifier les éléments de l'écran de details de la campagne| +AGC Admin Access -<\/B> This option if set to 1 allows the user to login to the astGUIclient admin pages|Accès administrateur AGC - Cette option et mise à 1 pour autoriser l'utilisateur à se connecter aux pages d'administration de astGUIclient| +AGC Delete Phones -<\/B> This option if set to 1 allows the user to delete phone entries in the astGUIclient admin pages|Supprimer des téléphones AGC - Cette option est mise à 1 pour autoriser l'utilisateur à effacer des téléphones dans les pages d'aministration d'astGUIclient| +Delete Scripts -<\/B> This option if set to 1 allows the user to delete Campaign scripts in the script modification screen|Supprimer des scripts - Cette option si elle est mise à 1 autorise l'utilisateur à supprimer des scripts de campagne dans l'écran de modification du script| +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|Id du script - C'est le nom court d'un Script Vicidal. Il doit être unique. Ne pas utiliser d'espace ni de ponctuation pour ce champ. Doit être composé de 2 à 10 caractères| +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|Nom du ccript - C'est le titre du script Vicidial. C'est une courte description du script. Maximum 50 caractères, minimum 2. Il ne doit pas avoir d'espace ou de ponctuation de quelque sorte dans ce champ| +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|Commentaires du script - C'est ici que vous entrez un commentaire pour le script Vicidial comme -changed to free upgrade on Sept 23- Max 255 caractères , min 2 caractères| +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----

    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?

    This would read----

    Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?|Texte du script - C'est ici que vous placez le contenu du script Vicidial. Minimum 2 caractères. Vous pouvez avoir des informations sur le client insérés automatiquement dans le script en utilisant --A--field--B-- où field est un des noms de champs suivant: 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. Par exemple, cette phrase devrait afficher le nom des personnes dans celui-ci ----

    Bonjour, pourais-je parler à --A--first_name--B-- --A--last_name--B-- s'il vous plait? Bonjour --A--title--B-- --A--last_name--B-- comment allez vous aujourd'hui?

    Vous devriez alors lire----

    Bonjour, pourais-je parler à John Doe si il vous plait? Bonjour Mr. Doe comment allez vous aujourd'hui?| +Active -<\/B> This determines whether this script can be selected to be used by a campaign|Activé - Cela determine si ce script peut être selectionné pour être utilisé dans une campagne| +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|ID de la campagne - C'est un nom court pour la campagne, il n'est pas modifiable après validation, il ne peut contenir d'espaces et doit contenir entre 2 et 8 caractères| +Campaign Name -<\/B> This is the description of the campaign, it must be between 6 and 40 characters in length|Nom de la campagne - C'est la description de la campagne, elle doit contenir entre 6 et 40 caractères| +Active -<\/B> This is where you set the campaign to Active or Inactive. If Inactive, noone can log into it|Active - C'est ici que vous indiquez si la campagne est active ou non. Si elle est inactive personne ne peut se connecter à cette campagne| +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|Extension de mise en attente- C'est ici que vous pouvez personnaliser la musique d'attente pour VICIDIAL. Assurez vous que l'extension est en place dans le fichier extension.conf et qu'elle pointe sur le fichier suivant| +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|Fichier de mise en attente- C'est ici que vous pouvez personnaliser la musique d'attente pour VICIDIAL. Assurez vous que le nom du fichier fasse moins de 10 caractères et qu'il soit bien en place dans le répertoire /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|Formulaire Web - C'est ici que que vous pouvez mettre une page web personnalisée qui sera ouverte quand l'utilisateur cliquera sur le bouton FORMULAIRE WEB| +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|Autoriser les Closers - C'est ici que vous pouvez définir si les utilisateurs de cette campagne pouront envoyer l'appel vers une campagne de type 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|Statut de l'appel -<\/B> C'est ici que vous indiquez les statuts que vous voulez appeler dans les listes actives pour la campagne suivante| +List Order - This menu is where you select how the leads that match the statuses selected above will be put in the lead hopper|Ordre de la liste - C'est dans ce menu que vous selectionnez comment les fiches qui correspondent aux statuts selectionnés ci-dessus seront mises dans le distributeur de fiches| +select the first leads loaded into the vicidial_list table|selectionne les premières fiches chargées dans la table vicidial_list| +select the last leads loaded into the vicidial_list table|selectionne les dernières fiches chargées dans la table vicidial_list| +select the highest phone number and works its way down|selectionne le plus grand numéro de téléphone et continue vers le bas| +select the lowest phone number and works its way up|selectionne le plus petit numéro de téléphone et continue vers le haut| +starts with last names starting with Z and works its way down|commence avec les noms commençant pas Z et continue vers le bas| +starts with last names starting with A and works its way up|commence avec les noms commençant par A et continue vers le haut| +starts with most called leads and works its way down|commence avec les fiches les plus appelées et continue en descendant| +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|commence avec les fiches les moins appelées et continue en montant en insérant une fiche NEW à chaque autre fiche - Ne doit PAS avoir NEW selectionné dans les statuts d'appel| +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|commence avec les fiches les moins appelées et continue en augmentant en insérant une fiche NEW toutes les 3 fiches - Ne doit PAS avoir NEW selectionné dans les statuts d'appel| +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|commence avec les fiches les moins appelées et continue en augmentant en insérant une fiche NEW toutes les 4 fiches - Ne doit PAS avoir NEW selectionné dans les statuts d'appel| +starts with least called leads and works its way up|commence avec les fiches les moins appelées et continue en augmentant| +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|Niveau du distributeur - C'est le nombre de fiches que le script VDhopper essaye de garder dans la table vicidial_hopper pour cette campagne. Si l'on lance le script VDhopper chaque minute, mettez juste au dessus du nombre de fiches que vous voulez traiter par minute| +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|Forcer la réinitialisation du distributeur - Cela vous autorise à éliminer le contenu du distributeur depuis un formulaire de validation. Il devrait être rempli une nouvelle fois quand le quand VDhopper se lance| +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|Niveau de l'appel automatique - C'est ici que vous mettez combien de lignes VICIDIAL devrait utiliser par agent. 0 veut dire que l'appel automatique est désactivé et que l'agent doit cliquer pour appeler chaque numéro. Autrement VICIDIAL maintiendra le nombre de lignes égale au nombre d'agents actifs multiplié par le niveau de l'appel automatique pour arriver au nombres de lignes que cette campagne devrait permettre sur chaque serveur | +Next Agent Call -<\/B> This determines which agent receives the next call that is available|Appel de l'agent suivant - Cela determine quel agent recevra l'appel suivant quand c'est possible| +orders by the random update value in the vicidial_live_agents table|ordonne par la valeur aléatoire de mise à jour dans la table 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|ordonne par la dernière date à laquelle un agent a passé un appel. Résultats des agents recevant globalement un nombre à peu près identique d'appels | +orders by the last time an agent finished a call. AKA agent waiting longest receives first call|ordonne suivant la dernière date à laquelle un agent a terminé un appel. L'agent AKA attendant le plus longtemps reçoit le premier appel| +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|Temps d'appel local -<\/B> C'est ici que vous indiquez pendant quelles heures vous voulez appeler, comme déterminé par l'heure locale dans la région dans laquelle vous voulez appeler. C'est controlé par le code de la région et est ajusté pendant le temps des Daylight Savings si c'est approprié. Les habitudes générales aux Etat-Unis, de Buisness à Buisness, sont de 9h00 à 17h00 et de Buisness à particulier de 9h00 à 21h00| +Voicemail -<\/B> If defined, calls that would normally DROP would instead be directed to this voicemail box to hear and leave a message|Boîte vocale - Si elle est définie, les appels qui sont normalement abandonné seront redirigés vers une boîte vocale pour écouter et laisser un message| +Dial Timeout -<\/B> If defined, calls that would normally hang up 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|Délai d'appel -<\/B> Si défini, les appels qui seraient normalement raccrochés après le délai défini dans extensions.conf le seront après ce nombre de secondes si c'est moins que le délai dans extensions.conf. Cela autorise des délais de changement d'appel rapide de serveur à serveur et limite les effets à une simple campagne. Si vous avez beaucoup de répondeur et de boîte vocales, vous devriez essayer de mettre une valeur entre 21 et 26 et voir si les résultats s'améliorent| +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 dial plan - extensions.conf|Préfixe d'appel - Ce champ autorise plus facilement à changer un chemin d'appel vers l'exterieur à travers une méthode differente sans devoir recharger Asterisk. La valeur par défaut 9 est basée sur 91NXXNXXXXXX dans le dial plan du fichier 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. 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 de la campagne - Ce champ autorise à envoyer un numéro de callerId personnalisé sur les appels sortants. C'est le numéro de callerId que vous voullez montrer à la personne que vous appellez. La valeur par défaut est UNKNOW. Si vous utilisez des T1 ou E1s pour appeler vers l'extérieur cette option est seulement valable si vous utilisez des PRIs - ISDN T1s ou E1s - qui ont la fonction CallerId personnalisable activée, cela ne fonctionne pas avec le service Robbed-bit et les circuits -RBS-. Cela fonctionne aussi avec la plupart des fournisseurs VOIP -SIP ou trunks IAX- qui autorisent un callerId de sortie dynamique. Le callerID personnalisé ne s'applique qu'aux appels passés directement depuis la campagne VICIDIAL, n'importe quel appel avec une tierce personne ou transféré n'enverra pas le callerId personnalisé. NOTE: Parfois en mettant UNKWOWN ou PRIVATE dans ce champ c'est le callerId par défaut de votre ligne qui sera transmis pour les appels. Vous pouvez tester cela et mettre 0000000000 à la place dans le champs calleID si vous ne voulez pas envoyer votre CallerID| +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|Extension de la campagne VDAD - Ce champ autorise une extension personaliséz pour un transfert VDAD. Cela vous autorise à utiliser différents VDADtransfer...scripts agi en fonction de votre campagne. Le transfert AGI par défaut - exten 8365 agi-VDADtransfer.agi - envoie immédiatement les appels aux agents dès qu'ils sont connectés. Un exemple d'ajout d'un AGI de politique de surveillance est aussi inclu dans - 8366 agi-VDADtransferSURVEY.agi - qui joue un message à la personne appelée et l'autorise à faire un choix en pressant les boutons - effectively pre-screening the lead - . Veuillez notez que excepté pour les surveillances, les appels politiques et de charités, cette forme d'appel est illégale aux Etats-Unis| +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|Extention d'enregistrement - Ce champs autorise à avoir une extension personnalisée d'enregistrement pour l'utiliser avec VICIDIAL. Cela autorise à utiliser différentes extensions selon le temps maximum d'enregistrement que vous voulez autoriser et le type de codec que vous voulez utiliser. L'exten par defaut est 8309 qui, si vous avez suivi les exemples de la SCRATCH_INSTALL, enregistrera dans le format WAV jusqu'à une heure. Une autre option incluse dans les exemples est 8310 qui enregistrera dans le format GSM jusqu'à une heure| +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|Enregistrement de campagne - Ce menu vous autorise à choisir quel niveau d'enregistrement est autorisé pour cette campagne. NEVER désactivera l'enregistrement sur le client. ONDEMAND est la valeur par défaut et autorise l'agent à démarrer et arrêter l'enregistrement au besoin. ALLCALLS démarera l'enregistrement sur le client quand un appel est lancé par un agent| +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|Nom du fichier d'enregistrement de la campagne - Ce champs vous permet de personnaliser le nom de fichier pour l'enregistrement quand l'enregistrement de la campage est sur ONEDEMAND ou ALLCALLS. Les variables autorisées sont CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. La valeur par defaut est FULLDATE_AGENT et le nom du fichier ressemblerait à ceci : 20051020-103108_6666. Un autre exemple est CAMPAIGN_TINYDATE_CUSTPHONE ce qui ressemblerait à ceci : 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|Script campagne ->/B> Ce menu vous permet de choisir le script qui apparaîtra sur l'écran des agents pour cette campagne. Mettez NONE pour ne pas montrer de script pour cette campagne| +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|Consigne de lancement d'appel - Ce menu vous permet de choisir si vous voulez lancer automatiquement la page de web-form dans une fenêtre séparée, passer automatiquement sur l'onglet de script ou ne rien faire quand un appel est envoyé par un agent dans cette campagne| +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 dial plan - extensions.conf - and make sure it plays an audio file then hangs up|Message de répondeur - Entrez dans ce champ l'extension pour tranferer aveuglement des appels pour quand l'agent tombe sur un répondeur et qu'il clique sur le bouton Answering Machine Message dans la fenêtre de transfert de conférence. Vous devez placer cet exten dans le Dial Plan - extensions.conf - et vous assurer qu'il joue un fichier audio puis raccroche| +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|ID de la liste - C'est le nom numérique de la liste, il n'est pas éditable après la première validation, il ne doit contenir que des nombres et contenir entre 2 et 8 caractères| +List Name -<\/B> This is the description of the list, it must be between 2 and 20 characters in length|Nom de la liste - C'est la description de la liste, elle doit contenir entre 2 et 20 caractères| +Campaign -<\/B> This is the campaign that this list belongs to. A list can only be dialed on a single campaign at one time|Campagne - C'est la campagne à laquelle cette liste appartient. Une liste ne peut etre appelée que depuis une seule campagne à la fois| +Active -<\/B> This defines whether the list is to be dialed on or not|Active - Cela définie si la liste peut etre appelée ou non| +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|Réinisialiser le Lead-Called-Status pour cette liste - Cela réinitialise les fiches dans cette liste à N pour "not called since last reset" et signifie que n'importe quelle fiche peut maintenant être appelée si ce statut est défini dans l'écran de campagne| +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|ID du groupe - C'est le nom court du group entrant, il n'est pas éditable après la première initialisation, il doit contenir entre 2 est 20 caractères| +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|Nom du groupe - C'est la déscription du groupe, il doit contenir entre 2 et 30 caractères et ne doit pas contenir de tirets, de plus ou d'espaces| +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|Couleur du groupe C'est la couleur que est affichée dans l'application cliente VICIDIAL quand un appel arrive dans ce groupe. Il doit contenir entre 2 et 7 caractères. Si c'est une couleur en hexadecimal vous devez mettre un # au début de la chaîne de caractères ou VICIDIAL ne fonctionnera pas proprement| +Active -<\/B> This determines whether this group show up in the selection box when a VICIDIAL agent logs in|Active - Cela détermine si ce groupe sera visible dans la boîte de sélection quand un agent se connecte à VICIDIAL| +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|Formulaire Web - C'est l'adresse personnalisée qui, en cliquant sur le boutton WEB FORM dans VICIDIAL, sera prise pour les appels qui arrivent dans ce groupe| +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|Boîte vocale - Si définie, c'est la boîte vocale vers laquelle les appels seront redirigés au lieu d'être abandonnés si aucun agent n'est disponible une fois le temps limite atteint| +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|Affichage de l'enseigne -<\/B> Ce champ détermine si l'agent VICIDIAL sortant doit avoir l'enseigne - si il y en a une - affichée dans le champ Statut quand l'appel est passé à l'agent| +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|ID utilisateur de départ - C'est l'ID utilisateur de départ qui est utilisé quand un entrée d'agent distant est inserée dans le système. Si le nombre de lignes est plus grand que 1, ce nombre est incrementé de un pour chaque ligne qui a une entrée. Assurez vous d'avoir créer un nouveau compte utilisateur VICIDIAL avec un niveau de 4 ou plus si vous voulez qu'il puisse utiliser la page vdremote.php pour pour un accès web distant pour ce compte| +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|Numéro de lignes - Cela définie combien d'entrées d'agent distants le système crée, et détermine combien de lignes peuvent être envoyées sans soucis au numéro ci-dessus| +Server IP -<\/B> A remote agent entry is only good for one specific server, here is where you select which server you want|IP du serveur - Une entrée d'agent distant est seulement valide pour un serveur spécifique, c'est ici que vous sélectionnez quel serveur vous voulez| +External Extension -<\/B> This is the number that you want the calls forwarded to. Make sure that it is a full dial plan 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|Extension externe - C'est le numéro vers lequel vous voulez faire suivre l'appel. Assurez vous que c'est un numéro du dial plan et si vous avez besoin d'un 9 au début mettez le ici. Testez en appelant ce numéro depuis un téléphone du système| +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|Etat - C'est ici que vous activez ou desacivez l'agent distant. Dès que l'agent est actif le systeme permet que des appels puissent lui être envoyés. Cela peu prendre plus de 30 secondes à partir du moment où vous avez desactivé l'agent jusqu'à l'arrêt de la réception des appels| +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|Campagne - C'est ici que vous choisissez la campagne dans laquelle ces agents distants ce connecteront. Les appels entrants ont besoin d'une campagne de type CLOSER et de selectionner les campagnes entrantes ci-dessus dans laquelle vous voulez recevoir des appels| +Inbound Groups -<\/B> Here is where you select the inbound groups you want to receive calls from if you have selected the CLOSER campaign|Groupes entrants - C'est ici que vous selectionnez les groupes entrants depuis lesquels vous voulez recevoir des appels si vous avez selectionné une campagne de type 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|Les listes de cette campagne sont énumérées ici, leur activité est dénotée par le Y ou N et vous pouvez aller à l'écran de la liste en cliquant sur l'ID de la liste dans la première colonne| +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|En utilisant des statuts de campagne personnalisés, vous pouvez utiliser des statuts qui n'existent que pour une campagne spécifique. Le statut doit contenir entre 1 et 8 caractères , la description entre 2 et 30 et Selectionnable définit si il apparaît dans VICIDIAL comme disposition| +Through the use of custom campaign hot keys, agents that use the vicidial web-client can hang up and disposition calls just by pressing a single key on their keyboard|En utilisant des raccourcis clavier personnalisés, les agents utilisant le client web VICIDIAL peuvent raccrocher et statuer les appels juste en pressant une seule touche du clavier| +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|Groupe d'utilisateurs - C'est le nom court d'un groupe d'utilisateurs Vicidial, n'utilisez ni espaces ni ponctuation pour ce champ. Max 20 caractère min 2| +Group Name -<\/B> This is the description of the vicidial user group max of 40 characters|Nom du Groupe - C'est la description du groupe d'utilisateurs vicidial. Max 40 caractères| +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|DTMF pour le transfert de conférence -<\/B> Ces quatre champs vous permettent de définir deux préselection DTMF pour les transferts de conférences. Quand l'appel ou la campagne est chargée, le script vicidial.php montrera deux boutons dans la fenêtre transfert-conference et remplira automatiquement les champs numéro-à-appeler et envoyer-dtmf quand ils sont pressés| +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 envoyé au vm exten -<\/B> Ce menu vous permet de définir si un message est laissé sur un répondeur quand il est détecté. L'appel sera immédiatement transmis à l'extention Answering-Machine-Message si AMD est actif et si il est déterminé que l'appel est un répondeur| +Modify Leads -<\/B> This option if set to 1 allows the user to modify leads in the admin section lead search results page|Modifier les fiches - Si cette otpion est à 1 elle autorise l'utilisateur à modifier les fiches dans la page des résultats de la recherche de fiches dans la section d'administration| +Hot Keys Active -<\/B> This option if set to 1 allows the user to use the Hot Keys quick-dispositioning function in|Raccourcis clavier actifs - Si cette option est à 1 elle autorise l'utilisateur à utiliser les raccourcis clavier| +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|Changer l'agent de campagne - Cette option, si elle est mise à 1, permet à l'utilisateur de changer la campagne dans laquelle est connecté un agent alors qu'il y est connecté| +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|Choix des Ingroups -<\/B> Cette option, si elle est mise à 1 autorise l'utilisateur à choisir les ingroups depuis lesquels il recevra des appels quand il est connecté dans une campagne de type CLOSER ou INBOUND sinon le manager devra le définir dans l'écran de détails de l'utiliseur sur la page d'amiministration| +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|Filtre de fiches - C'est une méthode de filtrage de vos fiches utilisant un fragment de requête SQL. Utilisez cette fonction avec précaution, il est facile de stoper une comunication accidentellement avec le plus petit changement du statement SQL. La valeur par défaut est NONE| +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|ID du Filtre - C'est le nom court du filtre de fiches Vicidial. Il doit être unique. N'utilisez ni espace ni ponctuation. Max 10 caractères min 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|Nom du Filtre - C'est un nom plus descrtiptif du filtre. C'est un court resumé du filtre. Max 30 caractères Min 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|Commentaire du filtre - C'est ici que vous placez les commmentaire du filtre vicidial comme -Appel toutes les fiches de Californie- max 255 characters, min 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 -|Filtre SQL - C'est ici que vous mettez le fragment de requête SQL que vous voulez utiliser pour filtrer. Ne commencez pas ni ne finissez pas par AND, cela est automatiquement ajouté par le script cron. Exemple : called_count > 4 and called_count < 8 | +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|Appel du numéro alternatif pour l'agent - Cette option permet à l'agent d'appeler le numéro de téléphone alternatif ou le champ adresse3 après que le numéro de téléphone principal ait été appelé| +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|Rappels programmés - Cette option autorise un agent à statuer un appel comme CALLBK et à choisir une date et une heure à laquelle la fiche sera réactivée| +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|Rappel Agent-Seulement - Cette option autorise un agent à assigner un rappel pour lequel il sera le seul a pouvoir rappeler le client. Cela autorise aussi l'agent à voir sa liste de rappel quand il le désire| +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|Appel manuel pour l'agent- Cette option autorise un agent à entrer manuellement une nouvelle fiche et à l'appeler. Elle autorise aussi l'appel de n'importe quel numéro de téléphone depuis vicidial et met cette appel dans sa session. Utilisez cette option avec précaution| +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|Enregistrement vicidial - Cette otpion peut empêcher un agent de faire un enregistrement après qu'il se soit connecté à vicidial. Cette option doit être activée pour que vicidial suive la session d'enregistrement de la campagne| +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|Transferts Vicidial - Cette option peut empêcher un agent d'ouvrir un transfert - conférence dans vicidial. Si c'est desactivé, l'agent ne pourra pas appeler une tierce personne ou transferer l'appel| +Delete Filters -<\/B> This option allows the user to be able to delete vicidial lead filters from the system|Supprimer des filtres - Cette option autorise l'utilisateur à supprimer les filtres de fiches du système| +Alter Agent Interface Options -<\/B> This option if set to 1 allows the administrative user to modify the Agents interface options in admin.php|Modifier les options de l'interface agent - Cette option, si elle est à 1, autorise l'utilisateur administrateur à modifier les otpions de l'interface Agent dans admin.php| +Closer Default Blended -<\/B> This option simply defaults the Blended checkbox on a CLOSER login screen|Closer Default Blended -<\/B> Cette option coche simplement par défaut la checbox Blended sur un écran de connection d'une campagne de type CLOSER| +FILTER NOT ADDED - there is already a filter entry with this ID|FILTRE NON AJOUTE - il y a déjà un filtre avec cet identifiant| +Filter ID, name and SQL must be at least 2 characters in length|Identifiant du filtre, le nom et le SQL doivent au moins contenir 2 caractères| +Filter ID must be at least 2 characters in length|L'identifiant du filtre doit contenir au moins 2 caractères| +Please go back and look at the data you entered|Veuillez retourner en arrière et vérifier les données que vous avez saisies| +CLICK HERE TO GO TO THE SUPER LEAD LOADER|CLIQUEZ ICI POUR ALLER AU SUPER CHARGEUR DE FICHES| +BACK TO ADMIN|RETOUR A L'ADMINISTRATION| +File layout to use|Disposition du fichier à utiliser| +Standard VICIDIAL|VICIDIAL standard| +Custom layout|Disposition personnalisée| +CLICK HERE TO GO TO THE BASIC LEAD LOADER|CLIQUEZ ICI POUR ALLER AU CHARGEUR DE FICHES BASIQUE| +SUPER LIST LOADER|SUPER CHARGEUR DE LISTES| +OK TO PROCESS|PRET A TRAITER| +File data|Données du fichier| +short description of the filter|courte description du filtre| +Alter Agent Interface Options: |Changer les options de l'interface de l'agent: | +Click here to delete filter |Cliquez ici pour effacer le filtre| +FILTER DELETION COMPLETED:|EFFACEMENT DU FILTRE TERMINE:| +ADMIN INTERFACE OPTIONS:|OPTIONS DE L'INTERFACE D'ADMINISTRATION:| +AGENT INTERFACE OPTIONS:|OPTIONS DE L'INTERFACE DE L'AGENT:| +Closer Default Blended:|Closer Default Blended:| +Agent Alt Num Dialing:|Composition du numéro alternatif de l'agent:| +Scheduled Callbacks:|Rappels de service programmés:| +Agent-Only Callbacks:|Rappels de service d'agent-seulement:| +New Filter Addition|Ajout d'un nouveau filtre| +LEAD FILTER LISTINGS:|LISTE DES FILTRES DE FICHES:| +FILTER NOT MODIFIED|FILTRE NON MODIFIE| +FILTER NOT DELETED|FILTRE NON SUPPRIME| +DELETE THIS FILTER|SUPPRIMER CE FILTRE| +FILTER NOT ADDED|FILTRE NON AJOUTE| +Filter Comments: |Commentaires du filtre:| +FILTER MODIFIED|FILTRE MODIFIE| +MODIFY A FILTER|MODIFIER UN FILTRE| +ADD NEW FILTER|AJOUTER UN NOUVEAU FILTRE| +Add New Filter|Ajouter un nouveau filtre| +Modify Filter|Modifier le filtre| +Delete Filter|Supprimer le filtre| +Filter Name: |Nom du filtre:| +FILTER ADDED:|FILTRE AJOUTE:| +VIEW FILTERS|VOIR LES FILTRES| +Lead Filter:|Filtre sur les fiches:| +Filter SQL:|Filtre Sql:| +Users List|Liste des utilisateurs| +Filter ID: |ID du filtre:| +Filters|Filtres| +Agent Call Manual|Appel manuel de l'agent| +Vicidial Recording|Enregistrement Vicidial| +Vicidial Transfers|Transferts Vicidial| +Click here for user time sheet|Cliquez ici pour la feuille de présence de l'utilisateur| +Click here for user status|Cliquez ici pour les statuts utilisateur| +Click here for user CallBack Holds|Cliquez ici pour les rappels reservés à cet utilisateur| +Lead Filter|Filtre de la fiche| +Click here to see all CallBack Holds in this campaign|Cliquez ici pour voir les rappels réservés de cette campagne| +STATUS NAME|NOM DU STATUT| +Script ID|ID du script| +Script Name|Nom du script| +Script Comments|Commentaires du script| +Script Text|Texte du script| +ADD FILTER|AJOUTER LE FILTRE| +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: ordonne par le user_level de l'agent comme défini dans la table vicidial_users, un user_level plus élévé recevra plus d'appels| +VICIDIAL LIST LOADER FUNCTIONALITY|FONCTIONNALITES DU CHARGEUR DE FICHES DE 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|Le chargeur de fiche web VICIDIAL basique est désigné simplement pour prendre un fichier de fiches - jusqu'à 8MB - qui sont délimités soit par des tabultaions soit par des pipes et les charges dans la table vicidial_list. Il y a aussi une nouvelle version super beta qui permet le choix des champs et l'utilisation des formats TXT- Plain Text, CSV- Comma Separated Value et XLS- format Excel. Le chargeur de fiches ne fait pas de validation des données ou de vérification des doublons dans le fichier ou dans d'autres listes, donc c'est quelquechose que vous devez faire avant de charger les fiches. De plus, vérifiez que vous avez créer la liste dans laquelle doivent être ces fiches. Il y a égalament le soucis de time-zone-coding de ces fiches. Vous pouvez vouloir augmenter la fréquence à laquelle le script ADMIN_adjust_GMTnow_on_leads.pl est lancé dans le cron sur votre serveur asterisk de sorte que toutes les fiches chargées puissent être codées plus rapidement. Voici une liste des champs dans l'ordre pour les fichiers de fiches| +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|NOTES: La fonctionnalité Excel du chargeur de fiches est activée par une série de scripts perl et nécessite que le fichier /home/cron/AST_SERVER_conf.pl soit correctement configuré. De plus, certains modules perl doivent être chargés pour que cela fonctionne correctement - OLE-Storage_Lite et Spreadsheet-ParseExcel. Vous pouvez vérifier les erreurs de runtime dans le fichier error_log de apache| +Vendor Lead Code - shows up in the Vendor ID field of the GUI|Code vendeur de la fiche - montre dans le champ dID du vendeur de l'interface graphique| +Source Code - internal use only for admins and DBAs|Code source - usage interne uniquement pour les administrateurs et les administrateurs de la base de données| +List ID - the list number that these leads will show up under|Identifiant de la liste - le numéro de la liste dans laquelle seront ces fiches| +Phone Code - the prefix for the phone number - 1 for US, 01144 for UK, 01161 for AUS, etc|Code du téléphone - le préfixe pour le numéro de téléphone - 1 pour les USA, 0144 pour le Royaume-Uni, 01161 pour l'Australie, etc| +Phone Number - must be at least 8 digits long|Numéro de téléphone - doit contenir au moins 8 chiffres| +Title - title of the customer - Mr. Ms. Mrs, etc...|Titre - titre du client - Mr. Mme. Mlle., etc...| +NOTE: It can take up to 30 seconds for changes submitted on this screen to go live|NOTE: Il peut prendre jusqu'à 30 secondes pour que les chagements soumis sur cette écran soient pris en compte| +USER NOT ADDED - there is already a user in the system with this user number|UTILISATEUR NON AJOUTE - il y a déjà un utilisateur dans le système avec ce numéro d'utilisateur| +USER NOT ADDED - Please go back and look at the data you entered|UTILISATEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +user id must be between 2 and 8 characters long|l'identifiant de l'utilisateur doit contenir entre 2 et 8 caractères| +full name and password must be at least 2 characters long|le nom et le mot de passe doivent contenir au moins 2 caractères| +CAMPAIGN NOT ADDED - there is already a campaign in the system with this ID|CAMPAGNE NON AJOUTEE - il existe déjà une campagne dans le système avec cet ID| +CAMPAIGN NOT ADDED - Please go back and look at the data you entered|CAMPAGNE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +campaign ID must be between 2 and 8 characters in length|l'ID de la campagne doit contenir entre 2 et 8 caractères| +campaign name must be between 6 and 40 characters in length|le nom de la campagne doit contenir entre 6 et 40 caractères| +CAMPAIGN STATUS NOT ADDED - there is already a campaign-status in the system with this name|STATUT DE LA CAMPAGNE NON AJOUTE - il y a déjà un statut de campagne dans le système avec ce nom| +CAMPAIGN STATUS NOT ADDED - there is already a global-status in the system with this name|STATUT DE LA CAMPAGNE NON AJOUTE - il y a déjà un statut global dans le système avec ce nom| +CAMPAIGN STATUS NOT ADDED - Please go back and look at the data you entered|STATUT DE LA CAMPAGNE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +status must be between 1 and 8 characters in length|le statut doit contenir entre 1 et 8 caractères| +status name must be between 2 and 30 characters in length|le nom du statut doit contenir entre 2 et 30 caractères| +CAMPAIGN HOT KEY NOT ADDED - there is already a campaign hot key in the system with this hot key|RACCOURCI CLAVIER DE LA CAMPAGNE NON AJOUTE - il y a déjà un raccourci clavier pour la campagne dans le système avec ce raccourci| +CAMPAIGN HOT KEY NOT ADDED - Please go back and look at the data you entered|RACCOURCI CLAVIER DE LA CAMPAGNE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +hot key must be a single character between 1 and 9|le raccourci clavier doit être un seul caractère entre 1 et 9| +LIST NOT ADDED - there is already a list in the system with this ID|LISTE NON AJOUTEE - il y a déjà une liste avec ce nom dans le système| +LIST NOT ADDED - Please go back and look at the data you entered|LISTE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +List ID must be between 2 and 8 characters in length|L'ID de la liste doit contenir entre 2 et 8 caractères| +List name must be at least 2 characters in length|Le nom de la liste doit contenir au moins 2 caractères| +GROUP NOT ADDED - there is already a group in the system with this ID|GROUPE NON AJOUTE - il y a déjà un groupe dans le système avec cet identifiant| +GROUP NOT ADDED - Please go back and look at the data you entered|GROUPE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +Group ID must be between 2 and 20 characters in length and contain no|L'ID du groupe doit contenir entre 2 et 20 caractères et ne contenir aucun| +Group name and group color must be at least 2 characters in length|Le nom et la couleur du groupe doivent contenir au moins 2 caractères| +REMOTE AGENTS NOT ADDED - there is already a remote agents entry starting with this userID|AGENT DISTANT NON AJOUTE - il y a déjà un agent distant avec cet identifiant| +REMOTE AGENTS NOT ADDED - Please go back and look at the data you entered|AGENT DISTANT NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +User ID start and external extension must be at least 2 characters in length|Le début de l'ID de l'utilisateur et l'extension externe doivent contenir au moins 2 caractères| +USER GROUP NOT ADDED - there is already a user group entry with this name|GROUP D'UTILISATEURS NON AJOUTE - il y a déjà un groupe d'utilisateurs avec ce nom| +USER GROUP NOT ADDED - Please go back and look at the data you entered|GROUPE D'UTILISATEURS NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +Group name and description must be at least 2 characters in length|Le nom et la description du groupe doivent contenir au moins 2 caractères| +USER NOT MODIFIED - Please go back and look at the data you entered|UTILISATEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +Password and Full Name each need ot be at least 2 characters in length|Le mot de passe et le nom complet doivent chacun contenir au moins 2 caractères| +CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|CAMPAGNE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +the campaign name needs to be at least 6 characters in length|le nom de la campagne doit contenir au moins 6 caractères| +RESETTING CAMPAIGN LEAD HOPPER|REINITIALISATION DU DISTRIBUTEUR DE FICHES DE LA CAMPAGNE| +Wait 1 minute before dialing next number|Attendre 1 minute avant l'appel du numéro suivant| +CAMPAIGN STATUS NOT MODIFIED - Please go back and look at the data you entered|STAUT DE LA CAMPAGNE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +the campaign id needs to be at least 2 characters in length|L'ID de la campagne doit contenir au moins 2 caractères| +the campaign status needs to be at least 1 characters in length|Le statut de la campagne doit contenir au moins 1 caractère| +CUSTOM CAMPAIGN STATUS DELETED|STATUT PERSONNALISE DE LA CAMPAGNE SUPPRIME| +CAMPAIGN HOT KEY NOT MODIFIED - Please go back and look at the data you entered|RACCOURCI CLAVIER DE LA CAMPAGNE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +the campaign hot key needs to be at least 1 characters in length|le raccourci clavier doit contenir au moins 1 caractère| +CUSTOM CAMPAIGN HOT KEY DELETED|RACCOURCI CLAVIER PERSONNALISE DE LA CAMPAGNE SUPPRIME| +CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|CAMPAGNE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +the campaign name needs to be at least 6 characters in length|le nom de la campagne doit contenir au moins 6 caractères| +LIST NOT MODIFIED - Please go back and look at the data you entered|LISTE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +list name must be at least 2 characters in length|le nom de la liste doit contenir au moins 2 caractères| +REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER|ENLEVER LES FICHES DU VIEUX DISTRIBUTEUR DE FICHES DE LA CAMAPGNE| +GROUP NOT MODIFIED - Please go back and look at the data you entered|GROUPE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +group name and group color must be at least 2 characters in length|le nom et la couleur du groupe doivent contenir au moins 2 caractères| +REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered|AGENT DISTANT NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +User ID Start and External Extension must be at least 2 characters in length|Le début de l'ID de l'utilisateur et l'extension externe doivent contenir au moins 2 caractères| +REMOTE AGENTS MODIFIED|AGENTS DISTANTS MODIFIES| +USER GROUP NOT MODIFIED - Please go back and look at the data you entered|GROUPE D'UTILISATEURS NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +Group name and description must be at least 2 characters in length|Le nom et la description du groupe doivent contenir au moins 2 caractères| +MODIFY A USERS RECORD|MODIFIER UN ENREGISTREMENT D'UTILISATEURS| +Click here for user stats|Cliquez ici pour les statistiques de l'utilisateur| +MODIFY A CAMPAIGNS RECORD|MODIFIER UN ENREGISTREMENT DE CAMPAGNES| +CONFERENCES TABLE|TABLE DES CONFERENCES| +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|Numéro de la conférence - Ce champ permet de mettre le numéro du meetme pour les conférences. Il est aussi recommandé que le numéro du meetme dans meetme.conf corresponde à ce numéro pour chaque entrée. C'est pour les conférences dans astGUIclient et est utilisé pour la fonction leave-3way-call dans VICIDIAL| +Server IP -<\/B> The menu where you select the Asterisk server that this conference will be on|IP du serveur - C'est le menu dans lequel vous choisissez le serveur Asterisk sur lequel sera cette conférence| +PHONE NOT ADDED - there is already a Phone in the system with this extension\/server|TELEPHONE NON AJOUTE - il y a déjà un téléphone dans le systéme avec cette extension/serveur| +PHONE NOT ADDED - Please go back and look at the data you entered|TELEPHONE NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +PHONE ADDED|TELEPHONE AJOUTE| +SERVER NOT ADDED - there is already a server in the system with this ID|SERVEUR NON AJOUTE - il y a déjà un serveur dans le système avec cet ID| +SERVER NOT ADDED - Please go back and look at the data you entered|SERVEUR NON AJOUTE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +SERVER ADDED|SERVEUR AJOUTE| +CONFERENCE NOT ADDED - there is already a conference in the system with this ID and server|CONFERENCE NON AJOUTEE - il y a déjà une conférence dans le système avec cet ID| +CONFERENCE NOT ADDED - Please go back and look at the data you entered|CONFERENCE NON AJOUTEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +CONFERENCE ADDED|CONFERENCE AJOUTEE| +PHONE NOT MODIFIED - there is already a Phone in the system with this extension\/server|TELEPHONE NON MODIFIE - il y a déjà un téléphone dans le système avec cette extension/server| +PHONE NOT MODIFIED - Please go back and look at the data you entered|TELEPHONE NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +PHONE MODIFIED|TELEPHONE MODIFIE| +SERVER NOT MODIFIED - there is already a server in the system with this server_ip|SERVEUR NON MODIFIE - il y a déjà un serveur dans le système avec cet ID| +SERVER NOT MODIFIED - Please go back and look at the data you entered|SERVEUR NON MODIFIE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +SERVER MODIFIED|SERVEUR MODIFIE| +CONFERENCE NOT MODIFIED - there is already a Conference in the system with this extension-server|CONFERENCE NON MODIFIEE - il y a déjà une conférence dans le système avec cette extension-serveur| +CONFERENCE NOT MODIFIED - Please go back and look at the data you entered|CONFERENCE NON MODIFIEE - Veuillez revenir en arrière et vérifier les données que vous avez saisies| +You do not have permissions to modify this user|Vous n'avez pas les permissions pour modifier cet utilisateur| +Click here to delete user|Cliquez ici pour supprimer cet utilisateur| +Please go back and look at the data you entered|Veuillez revenir en arrière et vérifier les données que vous avez saisies| +Click here to delete campaign|Cliquez ici pour supprimer cette campagne| +Click here to delete list and all of its leads|Cliquez ici pour supprimer cette liste et toutes ses fiches| +REMOVING LIST LEADS FROM VICIDIAL_LIST TABLE|SUPPRIMER LES FICHES DE LA LISTE DE LA TABLE VICIDIAL_LIST| +Click here to delete in-group|Cliquer ici pour supprimer le in-group| +Click here to delete remote agent|Cliquez ici pour supprimer l'agent distant| +Click here to delete user group|Cliquez ici pour supprimer le groupe d'utilisateurs| +Click here to delete phone|Cliquez ici pour supprimer le téléphone| +there is already a script entry with this name|il y a déjà un script existant avec ce nom| +Script name, description and text must be at least 2 characters in length|Les nom, description et texte du script doivent contenir au moins 2 caractères| +Click here to delete script|Cliquez ici pour supprimer le script| +Phone Login|Login du téléphone| +Phone Pass|Mot de passe du téléphone| +Delete Users|Supprimer les utilisateurs| +Delete User Groups|Supprimer les groupes utilisateurs| +Delete Lists|Supprimer les listes| +Delete Campaigns|Supprimer les campagnes| +Delete In-Groups|Supprimer les in-groups| +Delete Remote Agents|Supprimer les agents distants| +Delete Script|Supprimer les scripts| +Load Leads|Charger des fiches| +Campaign Detail|Détails de la campagne| +AGC Admin Access|Accès administateur de l'AGC| +AGC Delete Phones|Supprimer les téléphones AGC| +SCRIPT NOT ADDED|SCRIPT NON AJOUTE| +SCRIPT ADDED|SCRIPT AJOUTE| +SCRIPT NOT MODIFIED|SCRIPT NON MODIFIE| +SCRIPT MODIFIED|SCRIPT MODIFIE| +DELETE THIS USER|SUPPRIMER CET UTILISATEUR| +DELETE THIS CAMPAIGN|SUPPRIMER CETTE CAMPAGNE| +DELETE THIS LIST|SUPPRIMER CETTE LISTE| +DELETE THIS IN-GROUP|SUPPRIMER CE IN-GROUP| +DELETE THIS REMOTE AGENT|SUPPRIMER CET AGENT DISTANT| +DELETE THIS USER GROUP|SUPPRIMER CE GROUPE | +DELETE THIS PHONE|SUPPRIMER CE TELEPHONE| +DELETE THIS SCRIPT|SUPPRIMER CE SCRIPT| +USER NOT DELETED|UTILISATEUR NON SUPPRIME| +CAMPAIGN NOT DELETED|CAMPAGNE NON SUPPRIMEE| +LIST NOT DELETED|LISTE NON SUPPRIMEE| +IN-GROUP NOT DELETED|IN-GROUP NON SUPPRIME| +REMOTE AGENT NOT DELETED|AGENT DISTANT NON SUPPRIME| +USER GROUP NOT DELETED|GROUPE D'UTILISATEUR NON SUPPRIME| +PHONE NOT DELETED|TELEPHONE NON SUPPRIME| +SCRIPT NOT DELETED|SCRIPT NON SUPPRIME| +USER DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DE L'UTILISATEUR| +USER DELETION COMPLETED|SUPPRESSION DE L'UTILISATEUR CONFIRMEE| +CAMPAIGN DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DE LA CAMPAGNE| +CAMPAIGN DELETION COMPLETED|SUPRESSION DE LA CAMPAGNE CONFIRMEE| +Logout Agents|Déconnecter les agents| +AGENTS NOT LOGGED OUT OF CAMPAIGN|AGENTS NON DECONNECTES DE LA CAMPAGNE| +AGENT LOGOUT CONFIRMATION|CONFIRMATION DE LA DECONNECTION DE L'AGENT| +Click here to log all agents out of|Cliquez ici pour déconnecter tous les agents de| +AGENT LOGOUT COMPLETED|Déconnection des agents terminée| +LOG ALL AGENTS OUT OF THIS CAMPAIGN|DECONNECTER TOUS LES AGENTS DE CETTE CAMPAGNE| +LIST DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DE LA LISTE| +LIST DELETION COMPLETED|SUPPRESSION DE LA LISTE CONFIRMEE| +IN-GROUP DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DU IN-GROUP| +IN-GROUP DELETION COMPLETED|SUPPRESSION DU IN-GROUP TERMINEE| +REMOTE AGENT DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DE L'AGENT DISTANT| +REMOTE AGENT DELETION COMPLETED|SUPPRESSION DE L'AGENT DISTANT CONFIRMEE| +USER GROUP DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DU GROUPE D'UTILISATEURS| +USER GROUP DELETION COMPLETED|SUPPRESSION DU GROUPE D'UTILISATEURS TERMINEE| +PHONE DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DU TELEPHONE| +PHONE DELETION COMPLETED|SUPPRESSION DU TELEPHONE TERMINEE| +SCRIPT DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DU SCRIPT| +SCRIPT DELETION COMPLETED|SUPPRESSION DU SCRIPT TERMINEE| +Preview Script|Prévisualisation du script| +MODIFY A SCRIPT|MODIFIER UN SCRIPT| +title of the script|titre du script| +CONFERENCE MODIFIED|CONFERENCE MODIFIEE| +MODIFY A PHONE RECORD|MODIFIER UN TELEPHONE| +THE END|LA FIN| +LIST ALL PHONES|LISTER TOUS LES TELEPHONES| +ADD A NEW PHONE|AJOUTER UN NOUVEAU TELEPHONE| +SEARCH FOR A PHONE|RECHERCHER UN TELEPHONE| +ADD A SERVER|AJOUTER UN SERVEUR| +LIST ALL SERVERS|LISTER TOUS LES SERVEURS| +SHOW ALL CONFERENCES|VOIR TOUTES LES CONFERENCES| +ADD A NEW CONFERENCE|AJOUTER UNE NOUVELLE CONFERENCE| +AMD Send to VM exten|AMD envoyé au VM exten| +Transfer-Conf DTMF|DTMF Transfert-Conf| +Transfer-Conf Number|numéro de Transfer-Conf| +Hot Keys Active|Racourccis clavier actifs| +Modify Leads|Modifier les fiches| +Change Agent Campaign|Changer l'agent de campagne| +Agent Choose Ingroups|L'agent choisit les Ingroups| +CallBacks Within Campaign|Rappels dans la campagne | +CallBacks Within List|Rappels dans la liste| +CallBacks Within Agent|Rappels de l'agent| +Phone extension|Extension du téléphone| +Dial Plan Number|Nuémro dans le dial plan| +digits only|chiffres seulement| +Voicemail Box|Boite vocale| +Outbound CallerID|CallerID sortant| +Phone IP address|Adresse IP du téléphone| +Computer IP address|Adresse IP de l'ordinateur| +Server IP Address|Adresse IP du serveur| +Server IP|IP du serveur| +Login: |Login: | +Password: |Mot de passe:| +Status: |Etat: | +Active Account|Compte actif| +Phone Type|Type de téléphone| +Full Name|Nom complet| +Company: |Compagnie: | +Picture: |Image: | +Client Protocol|Protocole client| +Local GMT|GMT local| +Do NOT Adjust for DST|Ne PAS ajuster pour DST| +VALUE=SUBMIT|VALUE=VALIDER| +ADD A NEW SERVER|AJOUTER UN NOUVEAU SERVEUR| +Server ID|ID du serveur| +Server Description|Description du serveur| +Active: |Actif: | +Asterisk Version|Version d'Asterisk| +Conference Number|Numéro de la conférence| +New Messages|Nouveaux messages| +Old Messages|Anciens messages| +Manager Login|Login du manager| +Manager Secret|Mot de passe du manager| +VICIDIAL Default User|Utilisateur par défaut de VICIDIAL| +VICIDIAL Default Pass|Mot de passe par défaut de VICIDIAL| +VICIDIAL Default Campaign|Campagne par défaut de VICIDIAL| +Park Extension|Extension du parc| +Park Exten|Extension du parc| +Conf Extension|Extension de la conférence| +Conf Exten|Extension de la conférence| +VICIDIAL Park Exten|Extension du parc VICIDIAL| +VICIDIAL Park File|Fichier du parc VICIDIAL| +Monitor Prefix|Préfixe du moniteur| +Recording Exten|Extension d'enregistrement| +VMailMain Exten|Extension de la boîte vocale| +VMailDump Exten|Extension de VmailDump| +Exten Context|Extension du context| +DTMFSend Channel|Cannal d'envoi DTMF| +Outbound Call Group|Groupe d'appels sortants| +Browser Location|Localisation du navigateur| +Install Directory|Répertoire d'installation| +CallerID URL|URL du CallerID| +VICIDIAL Default URL|URL par défaut de VICIDIAL| +Call Logging|Log des appels| +User Switching|Changement d'utilisateur| +Conferencing|En conférence| +Admin Hang Up|Raccrochage administrateur| +Admin Hijack|Détournement administrateur| +Admin Monitor|Moniteur administrateur| +Call Park|Parc d'appel| +Updater Check|Contrôle de mise à jour| +AF Logging|Log AF| +Queue Enabled|Queue activée| +CallerID Popup|Popup du CallerID| +VMail Button|Bouton de la boîte vocale| +Fast Refresh|Rafraichissement rapide| +Fast Refresh Rate|Taux du rafraichissement rapide| +Persistant MySQL|MySQL persistant| +Auto Dial Next Number|Appel automatique du numéro suivant| +Stop Rec after each call|Arrêter l'enregistrement après chaque appel| +Primary |Primaire| +Secondary |Secondaire| +DBX Server|Serveur DBX| +DBX Database|Base de données DBX| +DBX User|Utilisateur DBX| +DBX Pass|Mot de passe DBX| +DBX Port|Port DBX| +DBY Server|Serveur DBY| +DBY Database|Base de données DBY| +DBY User|Utilisateur DBY| +DBY Pass|Mot de passe DBY| +DBY Port|Port DBY| +MODIFY A SERVER RECORD|MODIFIER UN SERVEUR| +Max VICIDIAL Trunks|Nombre max de trunks VICIDIAL| +Telnet Host|Hôte telnet| +Telnet Port|Port telnet| +Manager User|Utilisateur manager| +Manager Update User|Utilisateur de mise à jour manager| +Manager Listen User|Utilisateur manager pour l'écoute| +Manager Send User|Utilisateur manager pour l'envoi| +VMail Dump Exten|VMail Dump Exten| +VICIDIAL AD extension|Extension AD de VICIDIAL| +Default Context|Contexte par défaut| +PHONES WITHIN THIS SERVER|TELEPHONES SUR CE SERVEUR| +>EXTENSION<|>EXTENSION<| +>NAME<|>NOM<| +>ACTIVE<|>ACTIF<| +>MODIFY<|>MODIFIER<| +This server has|Ce serveur a| +active phones and|téléphones actifs et| +inactive phones|téléphones inactifs| +MODIFY A CONFERENCE RECORD|MODIFIER UNE CONFERENCE| +Conference: |Conférence: | +Current Extension|Extension courante| +extension: |extension: | +SEARCH RESULTS|RESULTATS DE LA RECHERCHE| +PHONE LISTINGS|LISTE DES TELEPHONES| +SERVER LISTINGS|LISTE DES SERVEURS| +CONFERENCE LISTINGS|LISTE DES CONFERENCES| +script runtime|temps d'exécution du script| +ADD NEW PHONE|AJOUTER UN NOUVEAU TELEPEHONE| +ADD NEW SERVER|AJOUTER UN NOUVEAU SERVEUR| +ADD NEW CONFERENCE|AJOUTER UNE NOUVELLE CONFERENCE| +ADD SCRIPT|AJOUTER UN SCRIPT| +VIEW SCRIPTS|VOIR LES SCRIPTS| +SCRIPTS LISTINGS|LISTE DES SCRIPTS| +ADDING NEW PHONE|AJOUTER UN NOUVEAU TELEPHONE| +ADDING NEW SERVER|AJOUTER UN NOUVEAU SERVEUR| +ADDING NEW CONFERENCE|AJOUT D'UNE NOUVELLE CONFERENCE| +MODIFY PHONE|MODIFIER LE TELEPHONE| +MODIFY SERVER|MODIFIER LE SERVEUR| +MODIFY CONFERENCE|MODIFIER LA CONFERENCE| +MODIFYING PHONE|MODIFICATION DU TELEPHONE| +MODIFYING SERVER|MODIFIANT LE SERVEUR| +MODIFYING CONFERENCE|MODIFIANT LA CONFERENCE| +SEARCH PHONES|RECHERCHER DES TELEPHONES| +SEARCH PHONES RESULTS|RESULTATS DE LA RECHERCHE DE TELEPHONES| +PHONE LIST|LISTE DE TELEPHONES| +SERVER LIST|LISTE DE SERVEURS| +CONFERENCE LIST|LISTE DE CONFERENCES| +HELP|AIDE| +Click here for phone stats|Cliquez ici pour les statistiques des téléphones| +REMOTE INBOUND: Main|ENTRANTS DISTANTS: Principal| +REMOTE INBOUND: Popup|ENTRANTS DISTANTS: Popup| +CALLS SENT TO|APPELS ENVOYES A| +Phone Stats|Statistiques du téléphone| +CALL TIME AND CHANNELS|TEMPS D'APPEL ET CANAUX| +CHANNEL GROUP|GROUPE DE CANAUX| +HOURS:MINUTES|HEURES:MINUTES| +TOTAL CALLS|TOTAL DES APPELS| +>NUMBER|>NUMERO| +DATE<|DATE<| +Close this window|Fermer cette fenêtre| +Inbound Calls Stats|Statistiques des appels entrants| +Add New User|Ajouter un nouvel utilisateur| +Add New Campaign|Ajouter une nouvelle campagne| +Add New List|Ajouter une nouvelle liste| +Add New In-Group|Ajouter un nouveau in-group| +Add New Remote Agents|Ajouter de nouveaux agents distants| +Add New Users Group|Ajouter de nouveaux groupes d'utilisateurs| +Add New Script|Ajouter un nouveau script| +New User Addition|Ajout d'un nouvel utilisateur| +New Campaign Addition|Ajout d'une nouvelle campagne| +New Campaign Status Addition|Ajout d'un nouveau statut de campagne| +New Campaign Hot Key Addition|Ajout d'un nouvel racourci clavier de campagne| +New List Addition|Ajout d'une nouvelle liste| +New In-Group Addition|Ajout d'un nouvel In-Group| +New Remote Agents Addition|Ajout d'un nouvel agent distant| +New Users Group Addition|Ajout d'un nouveau groupe d'utilisateurs| +New Script Addition|Ajout d'un nouveau script| +Modify User|Modifier un utilisateur| +Modify Campaign - Basic View|Modifier une Campagne - Vue Basique| +Modify Campaign|Modifier la campagne| +Modify List|Modifier la liste| +Modify In-Group|Modifier le In-Group| +Modify Remote Agents|Modifier les agents distants| +Modify Users Groups|Modifier les groupes d'utilisateurs| +Modify Script|Modifier le script| +Welcome|Bienvenue| +Campaigns|Campagnes| +Lists|Listes| +In-Groups|In-Groups| +Remote Agents|Agents distants| +User Groups|Groupes d'utilisateurs| +Search Form|Formulaire de recherche| +Search Results|Résultats de la recherche| +VICIDIAL ADMIN|ADMINISTRATION DE VICIDIAL| +TABLE|TABLE| +First Name|Nom| +Middle Initial|Initiales| +Last Name|Prénom| +Address Line 1|Adresse Ligne 1| +Address Line 2|Adresse Ligne 2| +Address Line 3|Adresse Ligne 3| +City|Ville| +State - limited to 2 characters|Etat - Limité à 2 caractères| +Province|Province| +Postal Code|Code Postal| +Country|Pays| +Gender|Sexe| +Date of Birth|Date de naissance| +Alternate Phone Number|Numero de téléphone alternatif| +Email Address|Adresse mail| +Security Phrase|Phrase de sécurité| +Comments|Commentaires| +THE END|LA FIN| +Logout|Déconnection| +LIST USERS|LISTE DES UTILISATEURS| +ADD A NEW USER|AJOUTEZ UN NOUVEL UTILISATEUR| +SEARCH FOR A USER|RECHERCHER UN UTILISATEUR| +ADD USER GROUP|AJOUTER UN GROUPE D'UTILISATEURS| +LIST USER GROUPS|LISTE DES GROUPES D'UTILISATEURS| +ADD CAMPAIGN|AJOUTER UNE CAMPAGNE| +LIST CAMPAIGNS|LISTE DES CAMPAGNES| +SHOW LISTS|VOIR LES LISTES| +ADD NEW LIST|AJOUTER UNE NOUVELLE LISTE| +LOAD NEW LEADS|CHARGER DES NOUVELLES FICHES| +SHOW IN-GROUPS|VOIR LES IN-GROUPS| +ADD NEW IN-GROUP|AJOUTER UN NOUVEL IN-GROUP| +SHOW REMOTE AGENTS|VOIR LES AGENTS DISTANTS| +ADD NEW REMOTE AGENTS|AJOUTER UN NOUVEL AGENT DISTANT| +SERVER STATS|STATISTIQUES DES SERVEURS| +PARK REPORT|RAPPORT DE MISE EN ATTENTE| +VDAD REPORT|RAPPORT DE VDAD| +CLOSER REPORT|RAPPORT SUR LES CLOSERS| +SEARCH FOR A LEAD|RECHERCHER UNE FICHE| +GROUP HOURLY|GROUPE PAR HEURE| +User Number|Numéro d'utilisateur | +Full Name|Nom complet| +User Level|Niveau de l'utilisateur| +User Group|Groupe utilisateur| +ADD A NEW CAMPAIGN|AJOUTER UNE NOUVELLE CAMPAGNE| +ADD A NEW INBOUND GROUP|AJOUTER UN NOUVEAU GROUPE ENTRANT| +ADD NEW USERS GROUP|AJOUTER UN NOUVEAU GROUPE D'UTILISATEUR| +Campaign ID|ID de la campagne| +Campaign Name|Nom de la campagne| +Park Extension|Extension de la mise en attente| +Park Filename|Nom du fichier de mise en attente| +Web Form|Formulaire Web| +Allow Closers|Autoriser les closers| +Hopper Level|Niveau du distributeur de fiches| +Auto Dial Level|Niveau de l'appel automatique| +Next Agent Call|Appeler l'agent suivant | +Local Call Time|Heure d'appel locale| +Voicemail|Boîte vocale| +SUBMIT|VALIDER| +List ID|ID de la liste| +List Name|Nom de la liste| +Campaign|Campagne| +Group ID|ID du groupe| +Group Name|Nom du groupe| +Group Color|Couleur du groupe| +Fronter Display|Affichage de l'enseigne| +User ID Start|Début des ID utilisateurs| +Number of Lines|Nombre de lignes| +External Extension|Extension externe| +Inbound Groups|Groupes entrants| +Group: |Groupe: | +Description: |Description: | +USER ADDED|UTILISATEUR AJOUTE| +CAMPAIGN ADDED|CAMPAGNE AJOUTEE| +CAMPAIGN STATUS ADDED|STATUT DE LA CAMPAGNE AJOUTE| +CAMPAIGN HOT KEY ADDED|RACOURCI CLAVIER DE LA CAMPAGNE AJOUTE| +LIST ADDED|LISTE AJOUTEE| +GROUP ADDED|GROUPE AJOUTE| +REMOTE AGENTS ADDED|AGENT DISTANT AJOUTE| +USER GROUP ADDED|GROUPE D'UTILISATEURS AJOUTE| +USER MODIFIED|UTILISATEUR MODIFIE| +CAMPAIGN MODIFIED|CAMPAGNE MODIFIEE| +GROUP MODIFIED|GROUPE MODIFIE| +CAMPAIGN MODIFIED|CAMPAGNE MODIFIEE| +LIST MODIFIED|LISTE MODIFIEE| +USER GROUP MODIFIED|GROUPE D'UTILISATEURS MODIFIE| +RESETTING LIST-CALLED-STATUS|REINITIALISATION LIST-CALLED-STATUS| +Dial status |Statut de l'appel | +List Order|Ordre de la liste| +Hopper Level|Niveau du distributeur de fiches| +Force Reset of Hopper|Forcer la réinitialisation du distributeur de fiches| +Dial Timeout|Délai de tentative d'appel| +Dial Prefix|Préfixe de numérotation| +Campaign CallerID|CallerID de la campagne| +Campaign VDAD exten|Exten VDAD de la campagne| +Campaign Rec exten|Extension d'enregistrement de la campagne| +Campaign Recording|Enregistrement de la campagne| +Campaign Rec Filename|Nom du fichier d'enregistrement de la campagne| +LISTS WITHIN THIS CAMPAIGN|LISTES DANS CETTE CAMPAGNE| +LIST ID|ID DE LA LISTE| +LIST NAME|NOM DE LA LISTE| +>ACTIVE<|>ACTIVE<| +This campaign has |Cette campagne a | +active lists and |listes actives et | +inactive lists|listes inactives| +leads to be dialed in those lists|fiches à appeler dans ces listes| +leads in the dial hopper|fiches dans le distributeur de fiches| +>STATUS<|>ETAT<| +>DESCRIPTION<|>DESCRIPTION<| +>SELECTABLE<|>SELECTIONABLE<| +>DELETE<|>SUPPRIMER<| +ADD NEW CUSTOM CAMPAIGN STATUS|AJOUTER UN NOUVEAU STATUT DE CAMPAGNE PERSONNALISE| +Selectable: |Selectionnable: | +value=ADD|value=AJOUTER| +CUSTOM HOT KEYS WITHIN THIS CAMPAIGN|PERSONNALISER LES RACCOURCIS CLAVIER DE CETTE CAMPAGNE| +>HOT KEY<|>RACCOURCI CLAVIER<| +ADD NEW CUSTOM CAMPAIGN HOT KEY|AJOUTER UN NOUVEAU RACCOURCI CLAVIER PERSONNALISE| +Hot key: |Raccourci clavier:| +Basic View|Vue basique| +Detail View|Vue détaillée| +MODIFY A LISTS RECORD|MODIFIER UN ENREGISTREMENT DE LA LISTE| +Reset Lead-Called-Status for this list|Réinitialiser les statuts des fiches appelées pour cette liste| +STATUSES WITHIN THIS LIST|STATUTS DANS CETTE LISTE| +>CALLED<|>APPELE<| +>NOT CALLED<|>NON APPELE<| +>SUBTOTALS<|>SOUS TOTAUX<| +>SUBTOTAL<|>SOUS TOTAL<| +TIME ZONES WITHIN THIS LIST|ZONES DE TEMPS DANS CETTE LISTE| +GMT OFFSET NOW|GMT OFFSET NOW| +local time|heure locale| +>TOTAL<|>TOTAL<| +CALLED COUNTS WITHIN THIS LIST|NOMBRE D'APPELES DANS CETTE LISTE| +MODIFY A GROUPS RECORD|MODIFIER UN ENREGISTREMENT DE GROUPES| +MODIFY A REMOTE AGENTS ENTRY|MODIFIER UN ENREGISTREMENT D'AGENT DISTANT| +numbers only|nombres seulement| +dial plan number dialed to reach agents|numéro du dial plan pour atteindre les agents| +MODIFY A USERS GROUP ENTRY|MODIFIER UN ENREGISTREMENT DE GROUPE D'UTILISATEURS| +no spaces or punctuation|pas d'espace ni de ponctuation| +description of group|Description du groupe| +SEARCH FOR A USER|RECHERCHER UN UTILISATEUR| +SEARCH RESULTS|RESULTATS DE LA RECHERCHE| +>STATS<|>STATISTIQUES<| +USER LISTINGS|LISTE DES UTILISATEURS| +CAMPAIGN LISTINGS|LISTE DES CAMPAGNES| +LIST LISTINGS|LISTE DES LISTES| +INBOUND GROUP LISTINGS|LISTE DES GROUPES ENTRANTS| +REMOTE AGENTS LISTINGS|LISTE DES AGENTS DISTANTS| +USER GROUPS LISTINGS|LISTE DES GROUPES D'UTILISATEURS| +script runtime|runtime du script| +Hopper List|Liste des distributeurs de fiches| +Live Current Hopper List|Liste des distributeurs de fiches en cours| +Total leads in hopper right now|Total de fiches dans le distributeur de fiches à l'instant| +Server Stats|Statistiques du serveur| +Total Calls placed from this Campaign: |Total des appels placés dans cette campagne:| +Average Call Length for all Calls in seconds:|Durée moyenne des appels pour tous les appels en secondes:| +Total DROP Calls: |Total des appels abandonnés:| +Average Length for DROP Calls in seconds: |Durée moyenne pour les appels abandonnés en secondes: | +Total NA calls -Busy,Disconnect,BTvoicemail: |Total NA calls -Busy,Disconnect,BTvoicemail: | +Average Call Length for NA Calls in seconds: |Durée moyenne des appels pour les appels NA en secondes: | +---------- DROPS|---------- ABANDONNES| +AUTO-DIAL NO ANSWERS|APPELS AUTOMATIQUES SANS REPONSES| +---------- USER STATS|---------- STATISTIQUES UTILISATEURS| +---------- TIME STATS|---------- STATISTIQUE TEMPORELLES| +USER |UTILISATEUR | +Agents Time On Calls |Temps des agents en appel| +agents logged in on server|agents connectés sur ce serveur| +Paused agents|Agents en pause| +5 minutes or more on call|En appel depuis 5 minutes ou plus| +Over 10 minutes on call|En appel depuis plus de 10 minutes| +NO AGENTS ON CALLS |AUCUN AGENT EN APPEL| +calls being placed on server|appels étant placés sur ce serveur| +LIVE CALL WAITING|APPEL EN ATTENTE| +NO LIVE CALLS WAITING |PAS D'APPEL EN ATTENTE| +START OVER|RECHARGER| +Lead Loader Module|Module de chargement de fiches| +Current file status|Statut du fichier courant| +Load leads from this file|Charger les fiches depuis ce fichier| +Answering Machine Message|Message de répondeur| +Processing |En cours| +TALK TIME AND STATUS|TEMPS DE CONVERSATION ET ETAT| +>COUNT<|>NOMBRE<| +>HOURS:MINUTES<|>HEURES:MINUTES<| +TOTAL CALLS |TOTAL DES APPELS| +LOGIN/LOGOUT TIME|HEURE DE CONNECTION/DECONNECTION| +>EVENT <|>EVENEMENT<| +> CAMPAIGN<|> CAMPAGNE<| +CAMPAIGN: |CAMPAGNE: | +LAST 50 CALLS|50 DERNIERS APPELS| +VICIDIAL REMOTE: Call Disposition|VICIDIAL DISTANT: Disposition des appels| +Call has been dispositioned|L'appel a été dispositionné| +Close This Window|Fermer cette fenêtre| +Call information|Informations sur l'appel| +lead lookup FAILED for lead_id|ECHEC de la vérification de la fiche pour l'id| +DISPO CALL|APPEL DISPO| +>Address |>Adresse| +>City |>Ville | +>State:|>Etat:| +Postal Code:|Code postal:| +>Province |>Province| +>Country |>Pays | +>Alt Phone |>Téléphone alternatif | +>Email |>Email | +>Security |>Sécurité| +>Comments |>Commentaires | +>Disposition:|>Disposition:| +Group Hourly Stats|Statistiques du groupe par heures| +TSR HOUR COUNTS|NOMBRE D'HEURES DE TSR| +Lead Search|Recherche de fiches| +Lead Lookup|Contrôle de fiches| +Please enter a:|Veuillez entrer un:| +a Home Phone Number:|un numéro de téléphone du domicile:| +vendor lead code|code vendeur de la fiche| +a lead ID:|ID de la fiche:| +>NEW SEARCH<|>NOUVELLE RECHERCHE<| +Lead record modification|Modification de l'enregistrement de la fiche| +information modified|Informations modifiées| +CALLS TO THIS LEAD|APPELS VERS CETTE FICHE| +VDAD Closer Stats|Statistiques VDAD Closer| +Auto-dial Closer Stats|Statistiques appel-automatique CLOSER| +VICIDIAL REMOTE AGENTS|AGENTS DISTANTS VICIDIAL| +INBOUND STATS|SATISTIQUES EN ENTREE| +REMOTE AGENTS ERROR - Please go back and look at the data you entered|ERREUR AGENTS DISTANT - Veuillez revenir en arrière et verifier les données que vous avez saisies| +- WAITING - |- PATIENTEZ -| +Remote Agent inbound stats |Statistiques des agents distants en entrée| +Total calls taken |Total des appels pris | +Total talk time on |Temps total de conversation| +Call list for |Liste d'appel pour | +NO CALLS ON THIS DAY |PAS D'APPELS CE JOUR| +Scripts|Scripts| +Script:|Script:| +Get Call Launch|Lancer l'appel| +not used currently|pas utilisé actuellement| +VERSION|VERSION| +BUILD|CONSTRUCTION| +REPORTS|RAPPORTS| +USERS|UTILISATEURS| +LISTS|LISTES| +SCRIPTS|SCRIPTS| +FILTERS|FILTRES| +IN-GROUPS|IN-GROUPS| +USER GROUPS|GROUPES D'UTILISATEURS| +REMOTE AGENTS|AGENTS DISTANTS| +Column|Colonne| +PERFORMANCE|PERFORMANCE| +AGENT |AGENT | +SERVER |SERVEUR | +### 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|Secondes avant abandon de l'appel -<\/B> C'est le nombre de secondes depuis le moment où la ligne du client est prise jusqu'à ce que l'appel soit considéré comme abandonné, s'applique seulement aux appels sortants| +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|Message de port sûr -<\/B> Si défini à Y un message sera joué au client si le timeout d'abadon d'appel est atteind sans être transférer au client. Cette option surcharge celle qui envoi vers la boite vocale si elle est définie à Y| +Safe Harbor Exten -<\/B> This is the dial plan extension that the desired Safe Harbor audio file is located at on your server|Extension du port sûr -<\/B> C'est l'extension du dial plan où le fichier audio désiré est localisé sur le serveur| +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|Message d'abandon -<\/B> Si défini à Y un message sera jouer au client après que le timeout d'abandon d'appel soit atteind sans être transféré à un agent. Cette option surcharge le transfert vers la boite vocale si défini à Y| +Drop Exten -<\/B> This is the dial plan extension that the desired Dropped call audio file is located at on your server|Extension d'abandon -<\/B> C'est l'extension du dial plan où le fichier audio désiré est localisé sur le serveur| +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|Identifiant de la période d'appel - C'est le nom court de la période d'appel de VICIDIAL. Il doit être unique. N'utilisez pas d'espace ou de ponctuation. 10 caractères maximum et 2 minimum| +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|Nom de la période d'appel - C'est un nom plus descriptif de la période d'appel. Une courte description. 30 caractères maximum et 2 minimum| +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|Commentaires de la période d'appel - Vous pouvez y placer des commentaires sur la période d'appel de Vicidial comme-de 10h00 à 16h00 avec des restrictions-. Max 255 caractères| +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|Heures de début et de fin par défaut - Ce sont les heures par défaut pendant lesquelles un appel est autorisé si l'heure de début de day-of-the-week n'est pas définie. 0 est minuit. Pour interdir complétement les appels mettez 2400 et mettez 2400 à l'heure de fin par défaut. Pour autoriser les appels 24h/24, remplissez les champs avec 0 pour le début et 2400 pour la fin| +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|Heures de début et de fin pour un jour - Ce sont les heures de début et de fin personnalisés pour un jour. Les mêmes règles s'appliquent qu'aux heures de début et de fin par défaut| +State Call Time Definitions -<\/B> This is the list of State specific call time definitions that are followed in this Call Time Definition|Définitions des états des périodes d'appel -<\/B> C'est la liste des définitions spécifiques des périodes d'appels des états qui sont suivies dans cette définition de période d'appels| +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|State Call Time State -<\/B> Ce sont les deux lettres code pour l'état auquel cette définition de période d'appels correspond. Pour que cela prenne effet, la période d'appel locale qui est définie dans la campagne doit avoir cette enregistrement d'état de période d'appel aussi bien que toutes les fiches ayant ces deux lettre codes d'état| +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|Suppression des périodes d'appels -<\/B> Cette option permet à l'utilisateur de supprimer les enregistrements des périodes d'appels vicidial et les enregistrement des périodes d'appels d'état de ce système| +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|Modification des périodes d'appels -<\/B> Cette option autorise l'utilisateur à voir et modifier les périodes d'appels et les périodes d'appels d'état. Un utilisateur n'a pas besoin de cette option si il a seulement besoin de changer les options des périodes d'appels sur l'écran de campagne| +Wrap Up 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|Temps de conclusion -<\/B> Nombre de secondes pendant lesquelles l'agent est forcé à attendre avant de pouvoir recevoir ou passer un nouvel appel. Le timer commence dès que l'agent à raccrocher - ou dans le cas de l'appel du numéro alternatif quand l'agent à terminer la fiche - La valeur par défaut est 0. Si le timer se termine avant que l'agent n'ait statué l'appel, l'agent ne passera pas à l'appel suivant tant qu'il n'a pas sélectionné un statut| +Wrap Up Message -<\/B> This is a campaign-specific message to be displayed on the wrap up screen if wrap up seconds is set|Message de conclusion -<\/B> C'est un message spécifique à la campagne à afficher si le temps de conclusion est défini| +You are not authorized to view this page. Please go back|Vous n'êtes pas autorisé à voir cette page. Veuillez revenir en arrière| +Day and time options will appear once you have created the Call Time Definition|Les options pour l'heure et le jour apparaitront une fois que vous aurez créé la période d'appels| +State Call Time ID, name and state must be at least 2 characters in length|L'ID, le nom et l'état de l'appel doivent contenir au moins 2 caractères| +Call Time ID and name must be at least 2 characters in length|L'ID et le nom de la période d'appel doivent contenir au moins 2 caractères| +Active State Call Time Definitions for this Record|Activer les définitions des états des périodes d'appels pour cet enregistrement| +there is already a call time entry with this ID|il existe déjà une période d'appel avec cet ID| +CALL TIMES USING THIS STATE CALL TIME|PERIODE D'APPELS UTILISANT CET ETAT DE PERIODE D'APPELS| +STATE CALL TIME DEFINITION NOT ADDED|DEFINITION DE LA PERIODE D'APPELS DE L'ETAT NON AJOUTE| +DELETE THIS STATE CALL TIME DEFINITION|SUPPRIMER CETTE DEFINITION DE PERIODE D'APPEL D'ETAT| +Modify Call Time State Definitions List|Modifier la liste des définitions des périodes d'appels d'état| +CALL TIME DEFINITION NOT ADDED|DEFINITION DE LA PERIODE D'APPEL NON AJOUTEE| +DELETE THIS CALL TIME DEFINITION|SUPPRIMER CETTE DEFINITION DE PERIODE D'APPEL| +short description of the call time|courte description de la période d'appel| +CAMPAIGNS USING THIS CALL TIME|CAMPAGNES UTILISANT CETTE PERIODE D'APPELS| +STATE CALL TIME NOT MODIFIED|PERIODE D'APPELS D'ETAT NON MODIFIEE| +CALL TIME NOT MODIFIED|PERIODE D'APPELS NON MODIFIEE| +STATE CALL TIME MODIFIED|PERIODE D'APPELS D'ETAT MODIFIEE| +CALL TIME MODIFIED|PERIODE D'APPELS MODIFIEE| +Default Start:|Début par défaut:| +Default Stop:|Fin par défaut:| +Sunday Start:|Début le dimanche:| +Sunday Stop:|Fin le dimanche:| +Monday Start:|Début le lundi:| +Monday Stop:|Fin le lundi:| +Tuesday Start:|Début le mardi:| +Tuesday Stop:|Fin le mardi:| +Wednesday Start:|Début le mercredi:| +Wednesday Stop:|Fin le mercredi:| +Thursday Stop:|Fin le jeudi:| +Friday Start:|Début le vendredi:| +Friday Stop:|Fin le vendredi:| +Saturday Start:|Début le samedi:| +Saturday Stop:|Fin le samedi:| +State Rule Added|Règle d'état ajoutée| +State Rule Removed|Règle d'état supprimée| +STATE CALL TIME LISTINGS|LISTE DES PERIODES D'APPELS D'ETAT| +CALL TIME LISTINGS|LISTE DES PERIODES D'APPELS| +STATE CALL TIME ADDED|PERIODE D'APPELS D'ETAT AJOUTEE| +CALL TIME ADDED|PERIODE D'APPELS AJOUTEE| +Drop Call Seconds|Temps avant abandon de l'appel| +Use Safe Harbor Message|Utiliser le message de port sûr| +Safe Harbor Exten|Extension du port sûr| +Use Drop Message|Utiliser le message d'abandon| +Drop Exten|Extension d'abandon| +SIP Listen Version|Version du listener SIP| +Add New Call Time|Ajouter une nouvelle période d'appels| +Add New State Call Time|Ajouter une nouvelle période d'appels d'état| +New Call Time Addition|Ajout d'une nouvelle période d'appels| +New State Call Time Addition|Ajout d'une nouvelle période d'appels d'état| +Modify Call Time|Modifier la période d'appels| +MODIFY A CALL TIME|MODIFIER UNE PERIODE D'APPELS| +Modify State Call Time|Modifier la période d'appels d'état| +MODIFY A STATE CALL TIME|MODIFIER UNE PERIODE D'APPELS D'ETAT| +Delete State Call Time|Supprimer la période d'appels d'état| +State Call Times|Périodes d'appels d'états| +State Call Time ID|Identifiant de la période d'appels d'état| +State Call Time Name|Nom de la période d'appels d'état| +State Call Time Comments|Commentaires de la période d'appels d'état| +STATE CALL TIME NOT DELETED|PERIODE D'APPELS D'ETAT NON SUPPRIMEE| +CALL TIME DELETION COMPLETED|SUPPRESSION DE LA PERIODE D'APPELS TERMINEE| +STATE CALL TIME DELETION COMPLETED|SUPPRESSION DE LA PERIODE D'APPELS D'ETAT TERMINEE| +CALL TIME NOT DELETED|PERIODE D'APPELS NON SUPPRIMEE| +Call Time ID must be at least 2 characters in length|L'ID de la période d'appels doit contenir au moins 2 caractères| +STATE CALL TIME DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESSION DE LA PERIODE D'APPELS D'ETAT| +CALL TIME DELETION CONFIRMATION|CONFIRMATION DE LA SUPPRESION DE LA PERIODE D'APPELS| +Call Times|Périodes d'appels| +CALL TIMES|PERIODES D'APPELS| +SHOW CALL TIMES|VOIR LES PERIODES D'APPELS| +ADD NEW CALL TIME|AJOUTER UNE NOUVELLE PERIODE D'APPELS| +SHOW STATE CALL TIMES|VOIR LES PERIODES D'APPELS D'ETATS| +ADD NEW STATE CALL TIME|AJOUTER UNE NOUVELLE PERIODE D'APPELS D'ETAT| +Call Time ID|Identifiant de la période d'appels| +Call Time Name|Nom de la période d'appels| +Call Time Comments|Commentaires de la période d'appels| +short description of the call time|courte description de la période d'appels| +HIDE|CACHER| +SHOW|MONTRER| +Show Dialable Leads Count|Montrer le nombre de fiches désactivées| +Dialable Lead Count|Nombre de fiches désavtivées| +TEST ON CAMPAIGN|TEST SUR LA CAMPAGNE| +Wrap Up Seconds:|Temps de conclusion:| +Wrap Up Message:|Message de conclusion:| +Alt Number Dialing|Appel du numéro alternatif| +no active lists selected for this campaign|pas de listes actives pour cette campagne| +Real-Time Screen|Ecran temps réel| +Allowable 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|Groupes entrants possibles - Uniquement pour les campagnes de type CLOSER. C'est ici que vous choisissez les groupes entrants dont vous voulez que les agents puissent prendre des appels depuis cette campagne. Il est important pour les campagnes entrantes-sortantes BLENDED de sélectionner seulement les groupes entrants qui sont utilisées pour les agents dans cette campagne. Les appales passés vers les groupes entrants sélectionnées ici seront comptés comme des appels actifs pour un campagne mixte même si tous les agents de la campagne ne sont pas connectés pour recevoir des appels de tous ces groupes entrants sélectionnés| +Allowed Inbound Groups|Groupes entrants autorisés| +ADD NUMBER TO DNC|AJOUTER LE NUMERO A LA LISTE DNC| +ADD A NUMBER TO THE DNC LIST|AJOUTER UN NUMERO A LA LISTE DNC| +Add New DNC|Ajouter un nouveau DNC| +Phone Number|Numéro de téléphone| +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|Liste DNC de VICIDIAL - Cette liste Do Not Call (Ne pas appeler) contient toutes les listes qui ont un statut DNC dans le système. Depuis les LISTS - la page AJOUTER UN NUMERO A LA LISTE DNC vous pouvez ajouter manuellement un nombre à cette liste afin qu'il ne soit pas appelé par les campagnes qui utilisent la liste interne DNC| +DNC NOT ADDED - This phone number is already in the Do Not Call List|DNC NON AJOUTE - Ce numéro de téléphone est déjà dans la liste Do Not Call| +DNC ADDED|DNC AJOUTE| +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|Utiliser la liste DNC interne - Cela défini si cette campagne doit filter les fiches par rapport à la liste DNC. Si ce champ est à Y alors le distributeur de fiches recherchera chaque numéro de téléphone dans la liste DNC avant de la placer dans le distributeur de fiches. Si il est dans la liste DNC alors le statut de la fiche sera changer en DNCL, il ne pour donc pas être appelé. La valeur par défaut est N| +Use Internal DNC List|Utiliser la liste DNC interne| +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 de la campagne - Ce champ permet de personnaliser le numéro de l'appelant pour les appels externes passés. C'est le numéro que la personne appelé voit. La valeur pas défaut est UNKNOWN. Si vous utilisez une carte T1 ou E1 pour appeler cette option est seulement valable si vous utilisez des PRI - ISDN T1s ou E1s - qui on l'option callerid personnalisable activée, cela ne fonctionnera pas avec les circuits Robbed-bit service(RBS). Cela fonctionne avec la plupart des fournisseurs VOIP (SIP ou IAX) qui autorise les callerid dynamiques. Le numéro personnalisé ne sera valable que pour les appels passés directement depuis cette campagne, tout transfert ou tierce personne appelé n'utilisera pas ce numéro personnalisé. NOTE: Parfois l'utilisation de UNKNOWN ou PRIVATE utilisera le callerid du fournisseur. Vous pouvez tester et mettre 0000000000 si vous ne voulez pas envoyé votre callerID| +Login -<\/B> The login used for the phone user to login to the client applications|Login - login utilisé par l'utilisateur du téléphone pour se connecter aux applications clientes| +Password -<\/B> The password used for the phone user to login to the client applications|Mot de passe - Le mot de passe utilisé par l'utilisateur du téléphone pour se connecter aux applications clientes| +New Campaign Lead Recycle Addition|New Campaign Lead Recycle Addition| +Modify Campaign Lead Recycle|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|A travers l'utilisation du recyclage de fiches, vous pouvez appelé des fiches avec un statut spécifiques encore à un interval spécifique sans réinitialisation la liste complète. Le recyclage de fiches est spécifique à la campagne et n'a pas a être un statut appelable selectionné dans votre campagne. Le champ de délai de tentative est le nombre de secondes avant que la fiche puisse être remise dans le distributeur de fiches, ce nombre doit être supérieur ou égale à 120 secondes. Le champ tentatives maximum est le nombre de fois maximum que la fiche de ce statut peut être reéessayer avant que la liste est besoin d'être réinitialisé, ce nombre peut être de 1 à 10. Vous pouvez activer et desactiver le recyclage d'une fiche avec les liens fournis. Cette fonctionnalité fontionne uniquement en mode appel automatique, quand le niveau d'appel est supérieur à 0| +CAMPAIGN LEAD RECYCLE NOT ADDED - there is already a lead-recycle for this campaign with this status|RECYCLAGE DE FICHES DE LA CAMPAGNE NON AJOUTE - il y a déjà un recyclage de fiches pour cette campagne avec ce statut| +status must be between 1 and 6 characters in length|le statut doit contenir entre 1 et 6 caractères| +attempt delay must be at least 120 seconds|le délai d'attente doit être au moins 120 secondes| +maximum attempts must be from 1 to 10|le nombre d'essais maximum doit être compris entre 1 et 10| +CAMPAIGN LEAD RECYCLE ADDED|RECYCLAGE DES FICHES DE LA CAMPAGNE AJOUTE| +CAMPAIGN LEAD RECYCLE NOT DELETED|RECYCLAGE DES FICHES DE LA CAMPAGNE NON SUPPRIME| +CAMPAIGN LEAD RECYCLE DELETED|RECYCLAGE DES FICHES DE LA CAMPAGNE SUPPRIME| +Delete Lead Recycle|Supprimer le recyclage des fiches| +LEAD RECYCLING WITHIN THIS CAMPAIGN|FICHES EN RECYCLAGES DANS CETTE CAMPAGNE| +ATTEMPT DELAY|DELAI DE TENTATIVE| +ATTEMPT MAXIMUM|NOMBRE MAX DE TENTATIVES| +ADD NEW CAMPAIGN LEAD RECYCLE|AJOUTER UN NOUVEAU RECYCLAGE DE FICHES DE LA CAMAPGNE| +Attempt Delay|Délai d'attente| +Attempt Maximum|Nombre max de tentatives| +If you want to allow Consultative Transfers, a fronter to a closer, you can place CXFER as one of the number-to-dial presets and the proper dial string will be sent to do a Local Consultative Transfer, then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER or CXFER, for instance if you want to do Internal Consultative transfers instead of Local you would put CXFER90009 in the number-to-dial field|Si vous voulez autoriser les transferts de consultation, de fronter à closer, vous pouvez placer CXFER comme une des préselection du nombre-à-appeler et la chaîne d'appel approprié sera envoyé pour faire un tranfert de consultation locale, puis l'agent peu juste quitter l'appel à 3 ou continuer sur l'appel suivant. Si vous voulez autoriser les transferts à l'aveugle d'un client vers un script AGI VICIDIAL pour le log ou un IRV, placez AXFER dans le champ numéro-à-appeler. Vous pouvez aussi specifier une extention personnalisée après AXFER ou CXFER, par exemple si vous voulez faire un transfert de consultation interne à la place d'un local vous devriez mettre CXFER90009 dans le champ numéro à appelé| +System Performance -<\/B> Setting this option to Y will enable logging of system performance stats for the server machine including system load, system processes and Asterisk channels in use. Default is N|Performances du système - Mettre cette option à Y permet de loger les statistiques des performances du système, incluant la charge du système, les processus et les canaux Asterisk utilisés. La valeur par défaut est N| +Server Logs -<\/B> Setting this option to Y will enable logging of all VICIDIAL related scripts to their text log files. Setting this to N will stop writing logs to files for these processes, also the screen logging of asterisk will be disabled if this is set to N when Asterisk is started. Default is Y|Logs du serveur - Mettre cette option à Y permet de loger tous les scripts liés à Asterisk dans leurs fichiers textes de log. Mettre cette option à N arrête le logs dans les fichiers pour ces processus, et de ce fait désactive l'écran de log de Asterisk si cette option est à N quand Asterisk démarre. La valeur par défaut est Y| +AGI Output -<\/B> Setting this option to NONE will disable output from all VICIDIAL related AGI scripts. Setting this to STDERR will send the AGI output to the Asterisk CLI. Setting this to FILE will send the output to a file in the logs directory. Setting this to BOTH will send output to both the Asterisk CLI and a log file. Default is FILE|Sortie des scripts AGI - Mettre cette option à NONE désactive toutes les sorties des scripts AGI de VICIDIAL. La mettre à STDERR enverra les sorties des scripts AGI à la CLI Asterisk. Mettre cette option à FILE enverra les sorties dans un fichiers dans le répertoire des logs. Mettre cette option à BOTH enverra les sorties à la fois vers la CLI Asterisk et dans le fichier de log. La valeur par défaut est FILE| +Recording Delay -<\/B> For ALLCALLS and ALLFORCE recording only. This setting will delay the starting of the recording on all calls for the number of seconds specified in this field. Default is 0|Délai d'enregistrement - Uniquement pour les enregistrements ALLCALLS et ALLFORCE. Cette valeur est le nombre de secondes après lesquelles commence l'enregistrement des appels. La valeur par défaut est 0| +Omit Phone Code -<\/B> This field allows you to leave out the phone_code field while dialing within VICIDIAL. For instance if you are dialing in the UK from the UK you would have 44 in as your phone_code field for all leads, but you just want to dial 10 digits in your dial plan extensions.conf to place calls instead of 44 then 10 digits. Default is N|Omettre le Phone Code - Ce champ permet de ne pas utiliser le champ phone_code lors d'appels passés depuis VICIDIAL. Par exemple si vous appelez de France vers la France vous devriez avoir 33 dans le champ phone_code de chaque fiche, mais vous voulez utiliser 10 chiffres dans le dial plan extensions.conf au lieu de 33 puis 10 chiffres. La valeur par défaut est N| +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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|Enregistrement de la campagne - Ce menu permet de choisir le niveau d'enregistrement autorisé pour cette campagne. NEVER désactive l'enregistrement sur l'application client. ONDEMAND est la valeur par défaut et permet à l'agent de démarrer et arrêter l'enregistrement si nécessaire. ALLCALLS démarrera l'enregistrement pour tous les appels passés vers un agent. ALLFORCE démarrera l'enregistrement à chaque appel passés vers un agent sans donné la possibilité à l'agent de stopper l'enregistrement. Pour ALLCALLS et ALLFORCE il y a une option pour utiliser un délai d'enregistrement afin de réduire les enregistrements et la charge système| +Dial Method -<\/B> This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode|Méthode d'appel - Ce champ permet de définir la façon dont sont passés les appels. Si c'est MANUAL alors le auto_dial_level sera bloqué à 0 à moins que le méthode d'appel ne change. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode| +Available Only Tally -<\/B> This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N|Valable seulement pour les contrôles - Si ce champ est à Y les agents ayant pour statut INCALL ou QUEUE seront omis pour le calcul des appels à passer quand le mode d'appel n'est pas MANUAL. La valeur par défaut est N| +Drop Percentage Limit -<\/B> This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO|Pourcentage limite d'abandon - Ce champ permet de définir le pourcentage limite d'appels abandonnés voulu lors de l'utilisation de méthode d'appel adaptive-predictive, pas MANUAL ni RATIO| +Maximum Adapt Dial Level -<\/B> This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0|Niveau maximum d'adaptation d'appel - Ce champ permet de définir la limite du nombre de lignes que vous voulez composer par agent lors de l'utilisation d'une méthode d'appel adaptive-predictive, pas MANUAL ni RATIO. Ce nombre peut être plus grand que le Auto Dial Level de votre matériel ci celui-ci le supporte. La valeur doit être un nombre positif plus grand que 1 qui peut être décimal. La valeur par défaut est 3.0| +Latest Server Time -<\/B> This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling|Heure maximum du serveur - Ce champ est seulement utilisé par la méthode d'appel ADAPT_TAPERED. Vous devez y saisir l'heure à laquelle vous allez arrêter d'appeler pour cette campagne, 2100 veut dire que vous arrêterez d'appeler pour cette campagne à 21h00. Cela autorise l'algorithme Tapered de décider comment appeler agressivement en fonction du temps restant avant d'arrêter d'appeler| +Adapt Intensity Modifier -<\/B> This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Adapter le modifieur d'intensité -<\/B> Ce champ est utilisé pour ajuster l'intensité prédictive à la fois plus haut ou plus bas. Plus vous selectionnez un nombre positif grand, plus l'appeleur augmentera considérablement l'appel quand il monte et plus l'appeleur dimunera lentement l'appel quand il descend. Plus le chiffre négatif que vous selectionnez est petit, plus l'appeleur augmentera lentement l'appel et plus l'appeleur diminuera rapidement l'appel quand il descend. La valeur par défaut est 0. Ce champ n'est pas utilisé par les méthodes d'appels MANUAL et RATIO| +Dial Level Difference Target -<\/B> This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Différence cible du niveau d'appel -<\/B> Ce champ est utilisé pour définir quel nombre spécifique d'agents vous désiser avoir en attente d'appels ou d'appels en attente d'agents. Par exemple, si vous voulez avoir toujours en moyenne un agent de libre pour prendre des appels immediatement vous devriez mettre ceci à -1, si vous ciblez d'avoir un appel gardé en attente d'un agent vous devriez mettre ceci à 1. La valeur par default est 0. Ce champ n'est pas utilisé par les méthodes d'appels MANUAL et RATIO| +System Performance|Performances du système| +Server Logs|Logs du serveur| +AGI Output|Sortie des AGI| +Recording Delay|Délai d'enregistrement| +Omit Phone Code|Omettre le phone code| +Campaign Recording|Enregistrement de la campagne| +Dial Method|Méthode d'appel| +Available Only Tally|Valable seulement pour les contrôles| +Drop Percentage Limit|Pourcentage limite d'abandon| +Maximum Adapt Dial Level|Adaptation maximum du niveau de l'appel| +Latest Server Time|Heure max du serveur| +Adapt Intensity Modifier|Adapter le modificateur d'intensité| +Dial Level Difference Target|Différence cible du niveau d'appel| +### START translations for 2.0.2 release ### +VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting|Les trunks du serveur VICIDIAL vous permettent de limiter les lignes sortantes qui sont utilisées sur ce serveur sur une base par-campagne. Vous avez la possibilité de reserver un nombre spécifique de lignes à utiliser par seulement une campagne aussi bien que permettre à cette campagne d'utiliser plus de lignes que celles reservées si il en reste de libre, tant que le nombre maximum de ligne utilisées par Vicidial sur ce serveur est inférieur au nombre de trunks VICIDIAL maximum défini. Avoir aucun de ces réglages permet à la campagne qui appel en premier d'avoir autant de lignes qu'elle le peut sous le nombre max de lignes VICIDIAL défini| +VICIDIAL Balance Dialing -<\/B> Setting this field to Y will allow the server to place balance calls for campaigns in VICIDIAL so that the defined dial level can be met even if there are no agents logged into that campaign on this server. Default is N|Appel équilibré VICIDIAL -<\/B> Définir ce champ à Y permettra au serveur de placer des appels équilibrés pour les campagnes dans VICIDIAL de sorte que le niveau d'appel défini puisse être atteint même s'il n'y a aucun agent connecté dans cette campagne sur ce serveur. La valeur par défaut est N| +VICIDIAL Balance Offlimits -<\/B> This setting defines the number of trunks to not allow VICIDIAL balance dialing to use. For example if you have 40 max vicidial trunks and balance offlimits is set to 10 you will only be able to use 30 trunk lines for VICIDIAL balance dialing. Default is 0|Limite de l'équilibrage VICIDIAL -<\/B> Cette option définit le nombre de trunks à ne pas utiliser pour l'équilibrage des appels VICIDIAL. Par exemple si vous avez 40 trunks vicidial et la limite d'équilibrage VICIDIAL définie à 10 vous ne pourrez utiliser que 30 trunks pour l'équilibrage VICIDIAL. La valeur par défaut est 0| +Allowed Campaigns -<\/B> This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system|Campagnes autorisés - C'est une liste de campagnes dans lesquelles les utilisateurs de ce groupes pourront se connecter. L'option TOUTES LES CAMPAGNES autorise les utilisateurs de ce groupe à voir et se connecter à toutes les campagnes sur le système| +VICIDIAL SERVER TRUNK RECORD NOT ADDED|TRUNK DU SERVEUR VICIDIAL NON AJOUTE| +there is already a server-trunk record for this campaign|il y a déjà un trunk-serveur enregistré pour cette campagne| +the number of vicidial trunks is too high|le nombre de trunks vicidial est trop important| +VICIDIAL SERVER TRUNK RECORD ADDED|TRUNK DU SERVEUR VICIDIAL AJOUTE| +VICIDIAL SERVER TRUNK RECORD NOT MODIFIED|TRUNK DU SERVEUR VICIDIAL NON MODIFIE| +VICIDIAL SERVER TRUNK RECORD MODIFIED|TRINK DU SERVEUR VICIDIAL MODIFIE| +VICIDIAL SERVER TRUNK RECORD NOT DELETED|TRUNK DU SERVEUR VICIDIAL NON SUPPRIME| +VICIDIAL SERVER TRUNK RECORD DELETED|TRUNK DU SERVEUR VICIDIAL SUPPRIME| +campaign must be between 3 and 8 characters in length|la campagne doit contenir entre 3 et 8 caractères| +server_ip delay must be at least 7 characters|le délai du server_ip doit contenir au moins 7 caractères| +trunks must be a digit from 0 to 9999|les trunks doivent être un nombre entre 0 et 9999| +VICIDIAL Balance Dialing|Equilibrage des appels VICIDIAL| +VICIDIAL Balance Offlimits|Limite de l'équilibrage VICIDIAL| +ADDING NEW SERVER VICIDIAL TRUNK RECORD|AJOUT D'UN NOUVEAU TRUNK VERS UN SERVEUR VICIDIAL| +ADD NEW SERVER VICIDIAL TRUNK RECORD|AJOUTER UN NOUVEAU TRUNK SERVEUR VICIDIAL| +MODIFY SERVER VICIDIAL TRUNK RECORD|MODIFIER LE TRUNK SERVEUR VICIDIAL| +DELETE SERVER VICIDIAL TRUNK RECORD|SUPPRIMER LE TRUNK SERVEUR VICIDIAL| +VICIDIAL TRUNKS FOR THIS SERVER|LES TRUNKS VICIDIAL POUR CE SERVEUR| +RESTRICTION |RESTRICTION | +TRUNKS |TRUNKS| +Emergency VDAC Jam Clear|Emergency VDAC Jam Clear| +VDAC NOT CLEARED FOR CAMPAIGN|VDAC NON EFFACE POUR LA CAMPAGNE| +LAST VDAC RECORD CLEARED FOR CAMPAIGN|DERNIER ENREGISTREMENT VDAC DE LA CAMPAGNE EFFACE| +VDAC CLEAR CONFIRMATION|CONFIRMATION DE L'EFFACEMENT DE VDAC| +Click here to delete the oldest LIVE record in VDAC for|Cliquez ici pour effacer les plus vieux enregistrements LIVE dans VDAC pour| +Allowed Campaigns|Campagnes autorisées| +USERS CAN VIEW ANY CAMPAIGN|LES UTILISATEURS PEUVENT VOIR CHAQUE CAMPAGNE| +Campaign Not Allowed|Camapagne non autorisée| +### START translations for 2.0.3 release ### +ADAPT OVERRIDE|ADAPTER LE DEPASSEMENT| +The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually.|La checkbox ADAPTER LE DEPASSEMENT vous permet de forcer un nouveau niveau d'appel même si la méthode d'appel est ADAPT. C'est utile s'il y a une variation dramatique dans la qualité des fiches et que vous voulez changer rigoureusement le dial_level manuellement. | +There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead|Il y a deux raccourcis claviers que vous pouvez utiliser en même temps que l'appel du numéro alternatif, ALTPH2 - Alternate Phone Hot Dial et ADDR3 - Adresse3 qui permet à un agent d'utiliser un raccourci pour raccocher l'appel, rester sur la fiche et appeler un autre numéro de la fiche| +Concurrent Transfers|Transferts concurents| +Concurrent Transfers -<\/B> This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method|Transferts concurents - Ce champ permet de définir le nombre d'appels qui peuvent être envoyés à un agent simultanément. Il est recommandé de laisser AUTO. Le champ n'est pas utilisé si la méthode est MANUAL| +Auto Alt-Number Dialing -<\/B> This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method|Appeler automatiquement le numéro alternatif - Ce champ est utilisé pour appeler automatiquement le numéro alternatif si les méthodes d'appels RATIO ou ADAPT sont utilisées quand il n'y pas de réponse au numéro de téléphone principale d'une fiche, les statuts NA, B, DC et N. Cette option n'est pas utilisée pour la méthode d'appel MANUAL| +Auto Alt-Number Dialing|Appeler automatiquement le numéro alternatif| +View Reports -<\/B> This option allows the user to view the VICIDIAL reports.|Voir les rapports - Cette option autorise l'utilisateur à voir les rapports VICIDIAL.| +Modify Sections -<\/B> These options allow the user to view and modify each sections records. If set to 0, the user will be able to see the section list, but not the detail or modification screen of a record in that section|Modifications des sections - Cette option autorise l'utilisateur à voir et modifier chaque enregistrement de section. Si cette option a pour valeur 0, l'utilisateur pourra voir la liste des sections, mais pas le détail et ne pourra pas modifier les enregistrements dans cette section| +VICIDIAL AUTO ALT DIAL STATUSES|STATUTS VICIDIAL DE L'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF| +If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set|Si le champ Appel automatique du numéro alternatif est défini, alors les fiches diposées sous ces statuts d'appels automatiques du numéro alternatif auront leurs champs numéro alternatif et/ou adresse3 appelés après n'importe quel statut de non-réponse| +AUTO ALT NUMBER DIALING FOR THIS CAMPAIGN|APPEL AUTOMATIQUE DU NUMERO ALTERNATIF POUR CETTE CAMPAGNE| +ADD NEW AUTO ALT NUMBER DIALING STATUS|AJOUTER UN NOUVEAU STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF| +AUTO ALT DIAL STATUS NOT ADDED|STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON AJOUTE| +there is already an entry for this campaign with this status|il y a déjà un entrée pour cette campagne avec ce statut| +AUTO ALT DIAL STATUS ADDED|STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF AJOUTE| +AUTO ALT DIAL STATUS NOT DELETED|STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF NON SUPPRIME| +AUTO ALT DIAL STATUS DELETED|STATUT D'APPEL AUTOMATIQUE DU NUMERO ALTERNATIF SUPPRIME| +this auto alt dial status is not in this campaign|ce statut d'appel automatique du numéro alternatif n'est pas dans cette campagne| +New Auto Alt Dial Status|Nouveau statut d'appel automatique du numéro alternatif| +Delete Auto Alt Dial Status|Supprimer ce statut d'appel automatique du numéro alternatif| +Users |Utilisateurs | +Campaigns |Campagnes | +Lists |Listes | +Scripts |Scripts | +Filters |Filtres | +In-Groups |In-Groups | +User Groups |Groupes d'utilisateurs | +Remote Agents |Agents distants | +Admin |Admin | +Reports |Rapports | +Show Users |Voir les utilisateurs | +Add A New User |Ajouter un nouvel utilisateur | +Search For A User |Rechercher un utilisateur | +Show Campaigns |Voir les campagnes | +Add A New Campaign |Ajouter une nouvelle campagne | +Real-Time Campaigns Summary |Menu temps-réel des campagnes | +Show Lists |Voir les listes | +Add A New List |Ajouter une nouvelle liste | +Search For A Lead |Rechercher une fiche | +Add Number To DNC |Ajouter un numéro à la liste DNC | +Load New Leads |Charger de nouvelles fiches | +Show Scripts |Voir les scripts | +Add A New Script |Ajouter un nouveau script | +Show Filters |Voir les filtres | +Add A New Filter |Ajouter un nouveau filtre | +Show In-Groups |Voir les In-Groups | +Add A New In-Group |Ajouter un nouveau In-Group | +Show User Groups |Voir les groupes d'utilisateurs | +Add A New User Group |Ajouter un nouveau groupe d'utilisateurs | +Group Hourly Report |Rapport horaire du groupe | +Show Remote Agents |Voir les agents distants | +Add New Remote Agents |Ajouter un nouvel agent distant | +Call Times |Période d'appels | +Phones |Téléphones | +Conferences |Conférences | +Servers |Serveurs | +Show Call Times |Voir les périodes d'appels | +Add A New Call Time |Ajouter une période d'appels | +Show State Call Times |Voir les périodes d'appels d'états | +Add A New State Call Time |Ajouter une nouvelle période d'appels d'état | +Show Phones |Voir les téléphones | +Add A New Phone |Ajouter un nouveau téléphone | +Show Conferences |Voir les conférences | +Add A New Conference |Ajouter une nouvelle conférence | +Show VICIDIAL Conferences |Voir les conférences VICIDIAL | +Add A New VICIDIAL Conference |Ajouter une nouvelle conférence VICIDIAL | +Show Servers |Voir les serveurs | +Add A New Server |Ajouter un nouveau serveur | +CallBacks Within User Group|Rappels de service dans le groupe d'utilisateurs| +USERS WITHIN THIS USER GROUP|UTILISATEURS APPARTENANT A CE GROUPE D'UTILISATEURS| +Modify Users: |Modifier les utilisateurs: | +Modify Campaigns: |Modifier les campagnes: | +Modify Lists: |Modifier les listes: | +Modify Scripts: |Modifier les scripts: | +Modify Filters: |Modifier les filtres: | +Modify In-Groups: |Modifier les In-Groups: | +Modify User Groups: |Modifier les groupes d'utilisateurs: | +Modify Remote Agents: |Modifier les agents distants: | +Modify Servers: |Modifier les serveurs: | +View Reports: |Voir les rapports: | +You do not have permission to view this page|Vous n'avez pas la permission de voir cette page| +Lead Time Zone Lookup: |Consultation du fuseau horaire de la fiche:| +Lead Duplicate Check: |Vérification des doublons dans les fiches:| +Agent Pause Codes Active -<\/B> Allows agents to select a pause code when they click on the PAUSE button in vicidial.php. Pause codes are definable per campaign at the bottom of the campaign view detail screen and they are stored in the vicidial_agent_log table. Default is N|Activer les codes de la pause des agents - Autorise les agents à sélectionner un code de pause quand il clique sur le bouton PAUSE dans vicidial.php. Les codes de pause sont définissable par campagne dans le bas de la vue détaillée de la campagne et sont stockés dans la table vicidial_agent_log. La valeur par défaut est N| +AGENT PAUSE CODES|CODES PAUSE DES AGENTS| +If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the vicidial agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters.|Si les codes de pause des agents sont activés alors les agents pourront en selectionner un parmi ces codes quand ils cliquent sur le bouton PAUSE. Cette donnée est ensuite stockée dans les log sur les agents vicidial. Un code de pause doit contenir uniquement des lettres et des chiffres et doit contenir moins de 7 caractères. Le nom du code ne doit pas contenir plus de 30 caractères.| +AGENT PAUSE CODES FOR THIS CAMPAIGN|CODES DE PAUSE DES AGENTS POUR CETTE CAMPAGNE| +PAUSE CODES|CODES DE PAUSE| +BILLABLE|FACTURABLE| +ADD NEW AGENT PAUSE CODE|AJOUTER UN NOUVEAU CODE DE PAUSE| +Pause Code: |Code de pause: | +Pause Code Name: |Nom du code de pause: | +Billable: |Facturable: | +New Agent Pause Code|Nouveau code de pause| +Modify Agent Pause Code|Modifier le code de pause| +Delete Agent Pause Code|Supprimer le code de pause| +AGENT PAUSE CODE NOT ADDED|CODE DE PAUSE NON AJOUTE| +there is already an entry for this campaign with this pause code|hay ya una entrada para esta campaña con este code|| de la pausa| +AGENT PAUSE CODE ADDED|CODE DE PAUSE AJOUTE| +AGENT PAUSE CODE NOT MODIFIED|CODE DE PAUSE NON MODIFIE| +CAMPAIGN PAUSE CODE NOT DELETED|CODE DE PAUSE DE LA CAMPAGNE NON SUPPRIME| +Campaign Description -<\/B> This is a memo field for the campaign, it is optional and can be a maximum of 255 characters in length|Description de la campagne - C'est un champ de note pour la campagne, il est optionel et ne peut contenir plus de 255 caractères| +Campaign Change Date -<\/B> This is the last time that the settings for this campaign were modified in any way|Date de changement de la campagne - C'est la dernière fois que les réglages de la campagne ont été modifié| +Campaign Stats Refresh -<\/B> This checkbox will allow you to force a vicidial stats refresh, even if the campaign is not active|Rafraichissement des statistiques de la campagne - Cette checkbox permet de forcer un rafraichissement des statistiques de vicidial, même si la campagne n'est pas active| +Last Campaign Login Date -<\/B> This is the last time that an agent was logged into this campaign|Date de la dernière connection à la campagne - C'est la dernière fois qu'un agent s'est connecté à la campagne| +List Description -<\/B> This is the memo field for the list, it is optional|Description de la liste - C'est un champ de note pour la liste, il est optionnel| +List Change Date -<\/B> This is the last time that the settings for this list were modified in any way|Dernier changement de la liste - C'est la dernière fois que les réglages de la liste ont été modifié| +List Last Call Date -<\/B> This is the last time that lead was dialed from this list|Date du dernier appel de la liste - C'est la dernière fois qu'une fiche de cette liste a été appelée| +List Description: |Description de la liste: | +List Change Date: |Date de changement de la liste: | +Campaign Description: |Description de la campagne: | +VICIDIAL Recording Override -<\/B> This option will override whatever the option is in the campaign for recording. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|Ecrasement de l'enregistrement de VICIDIAL - Cette option va écraser l'option d'enregistrement de la campagne quelle qu'elle soit. DISABLED n'écrasera pas les réglages d'enregistrement de la campagne. NEVER désactivera l'enregistrement sur le client. ONDEMAND est la valeur par défaut et autorise l'agent à démarrer ou arrêter l'enregistrement si nécessaire. ALLCALLS démarrera l'enregistrment à chaque fois qu'un appel est passé à un agent. ALLFORCE démarrera l'enregistrement à chaque fois qu'un appel à un agent est passé sans permettre à l'agent d'arrêter l'enregistrement. Pour les valeurs ALLCALLS et ALLFORCE il possible d'utiliser l'option 'Délai d'enregistrement' pour réduire la taille des enregistrments et la charge du système| +VICIDIAL Recording Override: |Ecrasement de l'enregistrment VICIDIAL:| +MODIFY VICIDIAL SYSTEM SETTINGS|MODIFIER LES REGLAGES DU SYSTEME VICIDIAL| +System Settings |Réglages du système| +VICIDIAL SYSTEM SETTINGS MODIFIED|REGLAGES DU SYSTEME VICIDIAL MODIFIES| +Version: |Version: | +Use Non-Latin: |Utiliser Non-Latin: | +Webroot Writable: |Webroot éditable: | +Enable QueueMetrics Logging: |Activer le log des QueueMetrics: | +QueueMetrics Server IP: |IP du serveur QueueMetrics: | +QueueMetrics DB Name: |Nom de la base de données QueueMetrics: | +QueueMetrics DB Login: |Login de la base de données QueueMetrics: | +QueueMetrics DB Password: |Mot de passe de la base de données QueueMetrics: | +Use Non-Latin -<\/B> This option allows you to default the web display script to use UTF8 characters and not do any latin-character-family regular expression filtering or display formatting. Default is 0|Utiliser Non-Latin - Cette option vous permet d'utiliser les caractères UTF8 pour l'affichage web des scripts, et de ne pas utiliser des filtres d'expressions régulières latin-character-family ou de formater l'affichage. La valeur par défaut est 0| +Webroot Writable -<\/B> This setting allows you to define whether temp files and authentication files should be placed in the webroot on your web server. Default is 1|Webroot éditable - Cette option vous permet de définir si les fichiers temporaires et les fichiers d'authentification doivent être placés dans le webroot sur le serveur web. La valeur par défaut est 1| +Enable QueueMetrics Logging -<\/B> This setting allows you to define whether VICIDIAL will insert log entries into the queue_log database table as Asterisk Queues activity does. QueueMetrics is a standalone, closed-source statistical analysis program. You must have QueueMetrics already installed and configured before enabling this feature. Default is 0|Activer le log des QueueMetrics - Cette option vous permet de définir si VICIDIAL va insérer les données des logs dans la table queue_log comme le fait Asterisk. QueueMetrics est un programme d'analyse de statistiques autonome et non open-source. Vous devez avoir installé et configuré QueueMetrics pour activer cette option. La valeur par défaut est 0| +QueueMetrics Server IP -<\/B> This is the IP address of the database for your QueueMetrics installation|IP du serveur QueueMetrics - C'est l'adresse IP de la base de données pour votre installation de QueueMetrics| +QueueMetrics Database Name -<\/B> This is the database name for your QueueMetrics database|Nom de la base de données de QueueMetrics - C'est le nom de la base de données de QueueMetrics| +QueueMetrics Database Login -<\/B> This is the user name used to log in to your QueueMetrics database|Login de la base de données de QueueMetrics - C'est le login utilisé pour se connecter à la base de données QueueMetrics| +QueueMetrics Database Password -<\/B> This is the password used to log in to your QueueMetrics database|Mot de passe de la base de données de QueueMetrics - C'est le mot de passe utilisé pour se connecter à la base de données QueueMetrics| +QueueMetrics URL -<\/B> This is the URL or web site address used to get to your QueueMetrics installation|URL de QueueMetrics - C'est l'URL ou l'adresse du site web utilisé pour atteindre QueueMetrics| +QueueMetrics Log ID -<\/B> This is the server ID that all VICIDIAL logs going into the QueueMetrics database will use as an identifier for each record|Identifiant des log de QueueMetrics - C'est l'identifiant du serveur que tout les logs VICIDIAL dans la base de données de QueueMetrics vont utiliser pour chaque enregistrement| +QueueMetrics Log ID: |Identifiant des log de QueueMetrics: | +Campaign Dial Status Added|Statut d'appel pour la campagne ajouté| +Campaign Dial Status Removed|Statut d'appel pour la campagne supprimé| +To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove|Pour ajouter un autre statut d'appel, selectionnez le dans la liste déroulante et cliquez sur AJOUTER. Pour supprimer un de ces statuts, cliquez sur le lien SUPPRIMER à côté du statut que vous voulez supprimer| +CAMPAIGN DIAL STATUS NOT ADDED|STATUT D'APPEL DE LA CAMPAGNE NON AJOUTE| +CAMPAIGN DIAL STATUS ADDED|STATUT D'APPEL POUR LA CAMPAGNE AJOUTE| +this dial status is not selected for this campaign|ce statut d'appel n'est pas selectionné pour cette campagne| +CAMPAIGN DIAL STATUS NOT REMOVED|STATUT D'APPEL POUR CETTE CAMPAGNE NON SUPPRIME| +CAMPAIGN DIAL STATUS REMOVED|STATUT D'APPEL POUR CETTE CAMPAGNE SUPPRIME| +>REMOVE<|>SUPPRIMER<| +Dial Status |Statut d'appel| +no dial statuses selected for this campaign|aucun statut d'appel selectionnés pour cette campagne| +QueueMetrics EnterQueue Prepend -<\/B> This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything|QueueMetrics EnterQueue Prepend -<\/B> Ce champ est utilisé pour autorisé à ajouter un des champs des données de vicidial_list devant le numéro de téléphone du client pour personnaliser les rapports QueueMetrics. La valeur par défaut est NONE pour ne pas peupler n'importe quoi| +QueueMetrics EnterQueue Prepend: |Préfixe EnterQueue QueueMetrics: | +VICIDIAL Agent Disable Display -<\/B> This field is used to select when to show an agent when their session has been disabled by the system, a manager action or by an external measure. The NOT_ACTIVE setting will disable the message on the agents screen. The LIVE_AGENT setting will only display the disabled message when the agents vicidial_auto_calls record has been removed, such as during a force logout or emergency logout|Affichage de la désactivation d'un agent VICIDIAL - Ce champ est utilisé pour selectionné quand montrer à un agent que ça session à été désactivée par le système, une action du manager ou par une mesure externe. NOT_ACTIVE désactivera l'affichage d'un message sur l'écran de l'agent. LIVE_AGENTS affichera seulement le message de désactivation quand les enregistrements vicidial_auto_calls des agents ont été modifiés, comme lors d'une déconnection forcée ou d'une déconnection de secours| +VICIDIAL Agent Disable Display: |Affichage de la désactivation d'un agent VICIDIAL: | +Disable Alter Customer Data -<\/B> If set to Y, does not change any of the customer data record when an agent dispositions the call. Default is N|Désactiver la modification des données du client - Si défini à Y alors les données de la fiche d'un client ne sont pas modifiées quand un agent passe l'appel. La valeur pas défaut est N| +Disable Alter Customer Data: |Désactiver la modification des données d'un client| +Agent Alter Customer Data Override -<\/B> This option will override whatever the option is in the campaign for altering of customer data. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer data, no matter what the campaign setting is. Default is NOT_ACTIVE|Modifications des données des clients pour l'agent - Cette option permet de surcharger, pour un agent précis, l'option de la campagne concernant la modification des données du clients. NOT_ACTIVE utilisera la valeur présente dans l'option de la campagne. ALLOW_ALTER autorisera toujours à cet agent de modifier les données du client quelque soit la valeur de l'option dans la campagne. La valeur par défaut est NOT_ACTIVE| +Agent Alter Customer Data Override: |Modifications des données des clients pour l'agent: | +Allow No-Hopper-Leads Logins -<\/B> If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N|Autoriser la connection aux distributeurs de fiches vides - Si défini à Y, autorise les agents à se connecter à la campagne même si il n'y a pas de fiches chargées dans le distributeur pour cette campagne. Cette fonction est nécessaire pour les campagne de type CLOSER. La valeur par défaut est N| +Allow No-Hopper-Leads Logins: |Autoriser la connection dans les distributeurs vides: | +Enable SIPSAK Messages -<\/B> If enabled the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. Feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Activer les messages SIPSAK - Si activé alors le serveur enverra des messages au téléphone SIP à afficher sur l'écran du téléphone quand il est connecté à VICIDIAL. Cette fonction ne fonctionne seulement avec les téléphones SIP et nécessite que sipsak soit installé sur le serveur web. La valeur par défaut est 0| +Enable SIPSAK Messages: |Activer les messages SIPSAK: | +Allow SIPSAK Messages -<\/B> If set to 1, this will allow the phones table setting to work properly, the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. This feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Autoriser les messages SIPSAK - Si défini à 1, cela permettra aux téléphones à fonctionner correctement, le serveur enverra des messages à afficher sur l'écran du téléphone quand il est connecté à VICIDIAL. Cette fonction fonctionne seulement avec des téléphones SIP et nécessite que sipsak soit installé sur le serveur web. La valeur par défaut est 0| +Allow SIPSAK Messages: |Autoriser les messages SIPSAK: | +Admin Home URL -<\/B> This is the URL or web site address that you will go to if you click on the HOME link at the top of the admin.php page|URL de l'acceuil de l'administration - C'est l'URL ou l'adresse du site web ou vous voulez aller quand vous cliquez sur le lien ACCUEIL en haut de la page admin.php| +Admin Home URL: |URL de l'accueil de l'administration: | +>HOME<|>ACCUEIL<| +Welcome |Bienvenue | +### START translations for 2.0.4 release ### +CHECK FOR DUPLICATES BY PHONE IN ALL CAMPAIGN LISTS|EXAMINEZ POUR ASSURER LES REPRODUCTIONS PAR PHONE IN TOUTES LES LISTESDE CAMPAGNE| +CHECK FOR DUPLICATES BY PHONE IN ENTIRE SYSTEM|VÉRIFIEZ LES REPRODUCTIONS PAR LE SYSTÈME ENTIER DE PHONE IN| +PHONE CODE OVERRIDE FOR THIS FILE|DÉPASSEMENT DE CODE DE TÉLÉPHONE POUR CE DOSSIER| +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. The lead loader 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, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files:|Le chargeur enchaînement-basé de base de fil de VICIDIAL est conçusimplement pour prendre un dossier de fil - jusqu'à 8MB dans lataille qu'est l'étiquette ou la pipe délimitée et pour le chargerdans la table de vicidial_list. Le chargeur de fil tient compte duchamp choisissant et de TXT- le texte tout simplement, les valeursséparées par virgule de CSV- et les XLS- excellent des formats dedossier. Le chargeur de fil ne fait pas la validation de données,mais elle vous permet de vérifier les reproductions en soi, dans lacampagne ou dans le système entier. En outre, assurez-vous que vousavez créé la liste que ces fils doivent être dessous de sorte quevous puissiez les employer. Voici une liste des champs dans leurcommande appropriée pour les dossiers de fil :| +NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf 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. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads.|NOTES : La fonctionnalité de chargeur de fil d'exceler est permisepar une série de manuscrits de Perl et doit avoir un dossier en placecorrectement configuré de /etc/astguiclient.conf sur le web server.En outre, des modules d'un Perl de couples doivent être chargés pourelle pour travailler aussi bien - oLE-Storage_Lite-Storage_Lite et leBilan-ParseExcel. Vous pouvez vérifier les erreurs d'exécution dansces derniers en regardant votre dossier d'error_log d'apache. Enoutre, pour des contrôles de duplication contre le gampaignénumère, la liste qui a de nouveaux fils entrer dans lui doit êtrecréée dans le système avant que vous commenciez à charger lesfils.| +Campaign List Mix Added|Le Mélange De Liste De Campagne S'est ajouté| +Modify Campaign List Mix|Modifiez Le Mélange De Liste De Campagne| +Campaign List Mix Removed|Mélange De Liste De Campagne Enlevé| +Campaign Statuses|Statuts De Campagne| +Campaign HotKeys|Campagne HotKeys| +Campaign Lead Recycle Entries|Le Fil De Campagne Réutilisent Des Entrées| +Campaign Auto Alt Dial Statuses|Statuts Automatiques De Cadran De la Campagne Alt| +Campaign Agent Pause Codes|Codes De Pause D'Agent De Campagne| +Campaign Dial Statuses|Statuts De Cadran De Campagne| +Campaign List Mixes|Mlanges De Liste De Campagne| + Lead Recycle |Le Fil Réutilisent| + Auto-Alt Dial |Cadran Automobile-Alt| + Pause Codes |Codes De Pause| + List Mix |Mélange De Liste| + Campaigns Main |Campagnes Principales| +List Order Mix -<\/B> Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED|Mélange d'ordre de liste - dépasse les champs d'ordre de fil et destatut de cadran. Emploiera les paramètres de liste et de statut pourl'entrée choisie de mélange de liste dans la section de sous-marinde mélange de liste à la place. Le défaut est HANDICAPÉ| +List Mix ID -<\/B> ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation.|Identification de mélange de liste - identification du mélange deliste. Doit être de 2-20 caractères de longueur sans les espaces outoute autre ponctuation spéciale.| +List Mix Name -<\/B> Descriptive name of the list mix. Must be from 2-50 characters in length|Nom de mélange de liste - nom descriptif du mélange de liste. Doitêtre de 2-50 caractères de longueur| +List Mix Detail -<\/B> The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated|Détail de mélange de liste - la composition de l'entrée de mélangede liste. Contient l'identification de liste, l'ordre de mélange, lespourcentages et les statuts qui composent ce mélange de liste. Lespourcentages toujours doivent additionner jusqu'à 100, et toutes leslistes doivent être en activité et réglées à la campagne pour quel'entrée de mélange d'ordre soit activée| +List Mix Method -<\/B> The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER.|Méthode de mélange de liste - la méthode de mélanger toutes lesparties du détail de mélange de liste ensemble. EVEN_MIX mélangerades fils de chaque partie intercalée aux autres parties, comme ces1.2.3.1.2.3.1.2.3. IN_ORDER mettra les fils dans l'ordre dans lequelils sont énumérés dans l'écran 1.1.1.2.2.2.3.3.3 de détail demélange de liste. La volonté ALÉATOIRE les a mis dans l'ordreALÉATOIRE 1.3.2.1.1.3.2.1.3. Le défaut est IN_ORDER.| +LIST MIXES FOR THIS CAMPAIGN: |MÉLANGES DE LISTE POUR CETTE CAMPAGNE :| +The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls.|Human_answered le champ est employé en calculant le pourcentage debaisse, ou le taux d'abandon. L'arrangement human_answered à Yemploiera ce statut en comptant les appels humain-répondus.| +HUMAN ANSWER|RÉPONSE HUMAINE| +ADDING VICIDIAL SYSTEM STATUSES|AJOUTER DES STATUTS DE SYSTÈME DE VICIDIAL| +MODIFY VICIDIAL SYSTEM STATUSES|MODIFIEZ LES STATUTS DE SYSTÈME DE VICIDIAL| +SYSTEM STATUS NOT ADDED|STATUT DE SYSTÈME NON SUPPLÉMENTAIRE| +SYSTEM STATUS ADDED|STATUT DE SYSTÈME SUPPLÉMENTAIRE| +SYSTEM STATUS NOT DELETED|STATUT DE SYSTÈME NON SUPPRIMÉ| +the system status cannot be a reserved status: |le statut de système ne peut pas être un statut réservé :| +the system status needs to be at least 1 characters in length|le statut de système doit être au moins les caractères 1 delongueur| +VICIDIAL STATUSES WITHIN THIS SYSTEM: |STATUTS DE VICIDIAL DANS CE SYSTÈME :| +ADD NEW SYSTEM STATUS|AJOUTEZ LE NOUVEAU STATUT DE SYSTÈME| +CUSTOM CAMPAIGN STATUSES LISTINGS:|LISTES FAITES SUR COMMANDE DE STATUTS DE CAMPAGNE :| +CAMPAIGN HOTKEYS LISTINGS:|LISTES DE LA CAMPAGNE HOTKEYS :| +CAMPAIGN LEAD RECYCLE LISTINGS:|LE FIL DE CAMPAGNE RÉUTILISENT DES LISTES :| +LEAD RECYCLES|LE FIL RÉUTILISE| +CAMPAIGN LEAD AUTO-ALT DIAL LISTINGS:|LISTES DE CADRAN DU FIL AUTO-ALT DE CAMPAGNE :| +CAMPAIGN AGENT PAUSE CODE LISTINGS:|LISTES DES CODES DE PAUSE D'AGENT DE CAMPAGNE :| +CAMPAIGN LIST MIX LISTINGS:|LISTES DE MÉLANGE DE LISTE DE CAMPAGNE :| +The Category option allows you to group several statuses into a catogy that can be used for statistical analysis.|L'option de catégorie vous permet de grouper plusieurs statuts dansun catogy qui peut être employé pour l'analyse statistique.| +MODIFY VICIDIAL STATUS CATEGORIES|MODIFIEZ LES CATÉGORIES DE STATUT DE VICIDIAL| +ADDING VICIDIAL STATUS CATEGORY|AJOUTER LA CATÉGORIE DE STATUT DE VICIDIAL| + Status Categories |Catégories De Statut| + System Statuses |Statuts De Système| +MODIFY VICIDIAL SYSTEM STATUSES|MODIFIEZ LES STATUTS DE SYSTÈME DE VICIDIAL| +MODIFY VICIDIAL STATUS CATEGORY|MODIFIEZ LA CATÉGORIE DE STATUT DE VICIDIAL| +Through the use of system statuses, you can have statuses that exist for campaign and in-group. The Status must be 1-6 characters in length, the description must be 2-30 characters in length and Selectable defines whether it shows up in VICIDIAL as an agent disposition. The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls. The Category option allows you to group several statuses into a catogy that can be used for statistical analysis|Par l'utilisation des statuts de système, vous pouvez avoir desstatuts qui existent pour la campagne et le dans-groupe. Le statutdoit être 1-6 caractères de longueur, la description doit être 2-30caractères de longueur et sélectionnable définit si elle apparaîtdans VICIDIAL comme disposition d'agent. Human_answered le champ estemployé en calculant le pourcentage de baisse, ou le taux d'abandon.L'arrangement human_answered à Y emploiera ce statut en comptant lesappels humain-répondus. L'option de catégorie vous permet de grouperplusieurs statuts dans un catogy qui peut être employé pourl'analyse statistique| +Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report|Par l'utilisation des catégories de statut de système, vous pouvezgrouper ensemble des statuts pour tenir compte de l'analysestatistique sur un groupe de statuts. L'identification de catégoriedoit être 2-20 caractères de longueur sans les espaces, le nom doitêtre 2-50 caractères de longueur, la description est facultative etl'affichage de TimeonVDAD définit si ce statut sera un de jusqu'à 4statuts qui peuvent être calculés et montrés le temps sur lerapport de temps réel de VDAD| +ADD NEW STATUS CATEGORY|AJOUTEZ LA NOUVELLE CATÉGORIE DE STATUT| +STATUS CATEGORY NOT ADDED|CATÉGORIE DE STATUT NON SUPPLÉMENTAIRE| +there is already a status category in the system with this ID|il y a déjà une catégorie de statut dans le système avec cetteidentification| +ID must be between 2 and 20 characters in length|L'identification doit être entre 2 et 20 caractères de longueur| +name name must be between 2 and 50 characters in length|le nom nommé doit être entre 2 et 50 caractères de longueur| +STATUS CATEGORY NOT MODIFIED|CATÉGORIE DE STATUT NON MODIFIÉE| +the status category cannot be a reserved category: |la catégorie de statut ne peut pas être une catégorie réservée :| +the status category needs to be at least 2 characters in length|la catégorie de statut doit être au moins 2 caractères de longueur| +STATUS CATEGORY DELETED|LA CATÉGORIE DE STATUT A SUPPRIMÉ| +STATUS CATEGORY MODIFIED|LA CATÉGORIE DE STATUT A MODIFIÉ| +Category: |Catégorie :| +the system status name needs to be at least 1 characters in length|le nom de statut de système doit être au moins les caractères 1 delongueur| +SYSTEM STATUS NOT MODIFIED|STATUT DE SYSTÈME NON MODIFIÉ| +SYSTEM STATUS MODIFIED|LE STATUT DE SYSTÈME A MODIFIÉ| +ERROR: There are already 4 Status Categories set to TimeOnVDAD Display|ERREUR : Il y a déjà ensemble de 4 catégories de statut àl'affichage de TimeOnVDAD| +CUSTOM CAMPAIGN STATUS MODIFIED|LE STATUT FAIT SUR COMMANDE DE CAMPAGNE A MODIFIÉ| +LIST MIX NOT MODIFIED|MÉLANGE DE LISTE NON MODIFIÉ| +LIST MIX MODIFIED|LE MÉLANGE DE LISTE A MODIFIÉ| +You cannot delete the last list_id entry from a list mix|Vous ne pouvez pas supprimer la dernière entrée de list_id d'unmélange de liste| +LIST MIX ADDED: |MÉLANGE DE LISTE SUPPLÉMENTAIRE :| +LIST MIX NOT ADDED |MÉLANGE DE LISTE NON SUPPLÉMENTAIRE| +There is already a list mix with this ID in the system|Il y a déjà un mélange de liste avec cette identification dans lesystème| +LIST MIX NOT DELETED|MÉLANGE DE LISTE NON SUPPRIMÉ| +LIST MIX DELETED: |LE MÉLANGE DE LISTE A SUPPRIMÉ :| +SET TO ACTIVE|PLACEZ À ACTIF| +LIST MIX NOT ACTIVATED|MÉLANGE DE LISTE NON ACTIVÉ| +LIST MIX ACTIVATED|MÉLANGE DE LISTE ACTIVÉ| +Enable Agent Transfer Logfile -<\/B> This option will log to a text logfile on the webserver every time a call is transferred to an agent. Default is 0, disabled|Permettez le fichier journal de transfert d'agent - cette optionnotera à un fichier journal des textes sur le webserver chaque foisqu'un appel est transféré à un agent. Le défaut est 0,neutralisé| +Enable Agent Transfer Logfile|Permettez Le Fichier journal De Transfert D'Agent| +Call Time -<\/B> This is the call time scheme to use for this inbound group. Keep in mind that the time is based on the server time. Default is 24hours|Temps d'appel - c'est l'arrangement de temps d'appel à employer pource groupe d'arrivée. Maintenez dans l'esprit que le temps est basésur le temps de serveur. Le défaut est 24hours| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field. Default is MESSAGE|Après action d'heures - l'action à exécuter si elle a lieu aprèsdes heures comme définie dans le moment d'appel pour ce grouped'arrivée. De DÉCROCHEMENT de volonté le décrochementimmédiatement l'appel, MESSASGE jouera le dossier dans après champde Filenam de message d'heures, la PROLONGATION enverra l'appel auaprès prolongation d'heures dans le dialplan et VOICEMAIL enverral'appel dans la boîte de voicemail énumérée dans après champ deVoicemail d'heures. Le défaut est MESSAGE| +After Hours Message Filename -<\/B> The audio file located on the server to be played if the Action is set to MESSAGE. Default is vm-goodbye|Après nom de fichier de message d'heures - le dossier audio localisésur le serveur à jouer si l'action est placée au MESSAGE. Le défautest VM-AU revoir| +After Hours Extension -<\/B> The dialplan extension to send the call to if the Action is set to EXTENSION. Default is 8300|Après prolongation d'heures - la prolongation dialplan pour envoyerl'appel si l'action est placée à la PROLONGATION. Le défaut est8300| +After Hours Voicemail -<\/B> The voicemail box to send the call to if the Action is set to VOICEMAIL|Après des heures Voicemail - la boîte de voicemail pour envoyerl'appel si l'action est placée à VOICEMAIL| +Welcome Message Filename -<\/B> The audio file located on the server to be played when the call comes in. If set to ---NONE--- then no message will be played. Default is ---NONE---|Nom de fichier bienvenu de message - le dossier audio localisé sur leserveur à jouer quand l'appel entre. Si ensemble à ---NONE --- alorsaucun message ne sera joué. Le défaut est ---NONE ---| +Music On Hold Context -<\/B> The music on hold context to use when the customer is placed on hold. Default is default|Musique sur le contexte de prise - la musique sur le contexte de prisepour employer quand le client est placé sur la prise. Le défaut estdéfaut| +On Hold Prompt Filename -<\/B> The audio file located on the server to be played at a regular interval when the customer is on hold. Default is generic_hold. This audio file MUST be 9 seconds or less in length.|Sur le nom de fichier de message de sollicitation de prise - ledossier audio localisé sur le serveur à jouer à un intervallerégulier quand le client est sur la prise. Le défaut estgeneric_hold. Ce dossier audio DOIT être de 9 secondes ou moins dansla longueur.| +On Hold Prompt Interval -<\/B> The length of time in seconds to wait before playing the on hold prompt. Default is 60|Sur l'intervalle de message de sollicitation de prise - la durée ensecondes d'attendre avant de jouer dessus le message de sollicitationde tenir. Le défaut est 60| +Agent Alert Extension -<\/B> The extension to send into the agent session to announce that a call is coming to the agent. This extension should have a Playback of an audio file. To not use this function set this to X. Default is X|Prolongation alerte d'agent - la prolongation à envoyer dans lasession d'agent pour annoncer qu'un appel vient à l'agent. Cetteprolongation devrait avoir un playback d'un dossier audio. Ne pasemployer cette fonction a placé ceci à X. Default est X| +Agent Alert Delay -<\/B> The length of time in milliseconds to wait before sending the call to the agent after playing the on Agent Alert Extension. Default is 1000|L'alerte d'agent Retardent - la durée en millisecondesd'attendre avant d'envoyer l'appel à l'agent après avoir jouédessus la prolongation alerte d'agent. Le défaut est 1000| +Call Time: |Temps D'Appel :| +After Hours Action: |Après Action D'Heures :| +After Hours Message Filename: |Après Nom de fichier De Message D'Heures :| +After Hours Extension: |Après Prolongation D'Heures :| +After Hours Voicemail: |Après Des Heures Voicemail :| +Welcome Message Filename: |Nom de fichier Bienvenu De Message :| +Music On Hold Context: |Musique Sur Le Contexte De Prise :| +On Hold Prompt Filename: |Sur Le Nom de fichier De Message de sollicitation De Prise :| +On Hold Prompt Interval: |Sur L'Intervalle De Message de sollicitation De Prise :| +Agent Alert Extension: |Prolongation Alerte D'Agent :| +Agent Alert Delay: |L'Alerte D'Agent Retardent :| +You will also be able to set the rank, or skill level, in this section for each of the inbound groups as well as being able to see the number of calls received from each inbound group for this specific agent|Vous pourrez également placer le rang, ou le niveau de compétence,dans cette section pour chacun des groupes d'arrivée aussi bien quepouvoir voir le nombre d'appels reçus de chaque groupe d'arrivéepour cet agent spécifique| +Allow Inbound and Blended -<\/B> This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N|Permettez d'arrivée et mélangé - c'est où vous pouvez placer siles utilisateurs de cette campagne auront l'option pour prendre desappels d'arrivée avec cette campagne. Si vous voulez faire d'arrivéeet en partance mélangés puis ceci doit être placé à Y. Si vousvoulez seulement faire composer en partance sur cette campagne placiezceci à N. Default est N| +Allow Inbound and Blended: |Permettez d'arrivée et mélangé :| +Manual Dial List ID -<\/B> The default list_id to be used when an agent placces a manual call and a new lead record is created in vicidial_list. Default is 999. This field can contain digits only|Identification manuelle de liste de cadran - le list_id de défaut àemployer quand des placces d'un agent un appel manuel et un nouveaudisque de fil est créés dans le vicidial_list. Le défaut est 999.Ce champ peut contenir des chiffres seulement| +Manual Dial List ID: |Identification Manuelle De Liste De Cadran :| +inbound_group_rank: orders by the rank given to the agent for the specific inbound group. Highest to Lowest|inbound_group_rank : ordres par le rang donné à l'agent pour legroupe d'arrivée spécifique. Le plus haut à le plus bas| +fewest_calls: orders by the number of calls received by an agent for that specific inbound group. Least calls first|fewest_calls : ordres par le nombre d'appels reçus par un agent pource groupe d'arrivée spécifique. Moindres appels d'abord| +Campaign Ranks: |Rangs De Campagne :| +AGENT RANKS FOR THIS CAMPAIGN:|GRADES D'AGENT POUR CETTE CAMPAGNE :| +Copy Campaign|Campagne De Copy| +COPY A CAMPAIGN|Copy Une CAMPAGNE| +Source Campaign: |Campagne De Source :| +New Copied Campaign Addition|Nouvelle Addition Copiée De Campagne| +Copy In-Group|Dans-Groupe De Copy| +New Copied In-Group Addition|Nouvelle Addition Copiée De Dans-Groupe| +Copy User|Utilisateur De Copy| +New Copied User Addition|Nouvelle Addition Copiée D'Utilisateur| +COPY USER|UTILISATEUR DE COPY| +Copy In-Group|Dans-Groupe De Copy| +COPY INBOUND GROUP|GROUPE D'ARRIVÉE DE COPY| +campaign_rank: orders by the rank given to the agent for the campaign. Highest to Lowest|campaign_rank : ordres par le rang donné à l'agent pour la campagne.Le plus haut à le plus bas| +Default Transfer Group -<\/B> This field is the default In-Group that will be automatically selected when the agent goes to the transfer-conference frame in their agent interface|Groupe de transfert de défaut - ce champ est le Dans-Groupe dedéfaut qui sera automatiquement choisi quand l'agent va à l'armaturede transférer-conférence dans leur interface d'agent| +Default Transfer Group: |Groupe De Transfert De Défaut :| +Allowed Transfer Groups: |Groupes Laissés De Transfert :| +Allowed Transfer Groups -<\/B> With these checkbox listings you can select the groups that agents in this campaign can transfer calls to. Allow Closers must be enabled for this option to show up|Groupes laissés de transfert - avec ces listes de checkbox vouspouvez choisir les groupes aux lesquels les agents dans cette campagnepeuvent transférer des appels. Permettez Closers doit être permispour que cette option révèle| +Campaign Ranks -<\/B> In this section you can define the rank an agent will have for each campaign. These ranks can be used to allow for preferred call routing when Next Agent Call is set to campaign_rank|La campagne se range - dans cette section vous pouvez définir le rangque un agent aura pour chaque campagne. Ces rangs peuvent êtreemployés pour tenir compte du cheminement préféré d'appel quand leprochain appel d'agent est placé au campaign_rank| +Also in this section is the ability to give the agent a rank for each inbound group. These ranks can be used for preferred call routing when that option is selected in the in-group screen|En outre dans cette section est la capacité de donner à l'agent unrang pour chaque groupe d'arrivée. Ces rangs peuvent être employéspour le cheminement préféré d'appel quand cette option est choisiedans l'écran de dans-groupe| +### START translations for 2.0.5 release ### +QC Enabled -<\/B> This option allows the user to log in to the Quality Control agent screen|QC Activé - Cette option permet à l'utilisateur de se connecter à l'agent de contrôle de la qualité d'écran| +QC User Level -<\/B> This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section|QC User Level - Ce paramètre définit ce que l'agent de contrôle de la qualité est au niveau utilisateur. Ce qui déterminera le niveau de fonctionnalité de l'agent dans la section QC| +QC Record Pass -<\/B> This option allows the agent to specify that a record has passed the first round of QC after reviewing the record|Record QC Pass - Cette option permet à l'agent de préciser que le dossier a franchi le premier tour de Québec, après avoir examiné le dossier| +QC Record Finish -<\/B> This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record|Record QC Finish - Cette option permet à l'agent de préciser que le dossier a terminé la deuxième ronde de Québec après avoir examiné le dossier transmis| +QC Record Commit -<\/B> This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone|Record QC Commit - Cette option permet à l'agent de préciser que le record a été commise dans QC. Il ne peut plus être modifié par n'importe qui| +QC Allowed Campaigns -<\/B> This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system|QC permis Campagnes - Il s'agit d'un choix de la liste des campagnes où les membres de ce groupe d'utilisateurs seront en mesure de QC. Le ALL-CAMPAGNES option permet aux utilisateurs de ce groupe de Québec une campagne sur le système| +QC Allowed Inbound Groups -<\/B> This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system|QC permis l'arrivée des groupes - Il s'agit d'un choix de la liste des groupes dont l'arrivée des membres de ce groupe d'utilisateurs seront en mesure de QC. Le ALL-GROUPES option permet aux utilisateurs dans ce groupe d'utilisateurs QC arrivée du groupe sur tout le système| +QC Enabled: |QC Enabled:| +QC User Level: |QC User Level:| +QC Pass: |QC Pass:| +QC Finish: |QC Finition:| +QC Commit: |QC Comité:| +Modify Nothing|Rien Modifier| +Modify Nothing Except Status|Modifier Rien Sauf Etat| +Modify All Fields|Modifier tous les Domaines| +Verify First Round of QC|Vérifiez Premier Cycle de QC| +View QC Statistics|Voir QC Statistiques| +Ability to Modify FINISHed records|Possibilité de modifier fini records| +Manager Level|Level Manager| +USERS CAN VIEW ANY CAMPAIGN|Les utilisateurs peuvent visualiser n'importe quelle campagne| +USERS CAN QC ANY CAMPAIGN|USERS CAN QC TOUTE LA CAMPAGNE| +USERS CAN QC ANY INBOUND GROUP|USERS CAN QC ENTRANT TOUT GROUP| +QC Allowed Campaigns: |QC permis Campagnes:| +QC Allowed Inbound Groups: |QC permis l'arrivée des groupes:| +Queue Priority -<\/B> This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode|File d'attente de priorité - Ce paramètre est utilisé pour définir l'ordre dans lequel les appels sortants à partir de cette campagne devrait être répondu en ce qui concerne les appels entrants si cette campagne est en mode mixte| +Queue Priority: |File d'attente de priorité:| +Drop Action: |Drop d'action:| +Drop Transfer Group: |Drop de transfert du Groupe:| +Drop Action -<\/B> This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below|Drop Action - Ce menu vous permet de choisir ce qui se passe à un appel quand il a attendu plus longtemps que ce qui est prévu dans le Drop Call Seconds domaine. Hangup simplement raccrocher l'appel, envoyer le message de l'appel Drop EXTEN que vous avez définies ci-après, à la messagerie vocale vous envoyer l'appel à la boîte vocale que vous avez définis ci-dessous et IN_GROUP envoie l'appel à la Inbound groupe qui est défini ci-dessous| +Drop Exten -<\/B> If Drop Action is set to MESSAGE, this is the dial plan extension that the call will be sent to if it reaches Drop Call Seconds|Drop EXTEN - Si l'action est goutte d'MESSAGE, c'est le cadran plan d'extension que l'appel sera envoyée si elle parvient à Drop Call Seconds| +Drop Call Seconds -<\/B> The number of seconds a call will stay in queue before being considered a DROP|Drop Call Seconds - Le nombre de secondes d'un appel restera dans la file d'attente avant d'être considéré comme un DROP| +Drop Transfer Group -<\/B> If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds|Drop de transfert Group - Si Drop action est fixée à IN_GROUP, l'appel sera envoyé à ce groupe d'arrivée si elle parvient Drop Call Seconds| +QC SETTINGS FOR THIS CAMPAIGN|QC SETTINGS pour cette campagne| +QC Enabled: |QC Enabled:| +QC Statuses: |QC Statut:| +Modify Campaign QC Settings|Modifier les paramètres de campagne QC| +QC Enabled -<\/B> Setting this field to Y allows for the agent Quality Control features to work. Default is N|QC Activé - Mise en ce domaine permet à Y pour l'agent de contrôle de la qualité caractéristiques au travail. La valeur par défaut est N| +QC Statuses -<\/B> This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review|Statuts QC - Cette zone est l'endroit où vous choisissez ce qui entraîne des statuts doit être dépassé par le système de QC. Placez un contrôle à côté de l'état que vous voulez examiner QC| +QC SETTINGS NOT MODIFIED|QC SETTINGS PAS mise à jour| +QC SETTINGS MODIFIED|QC SETTINGS mise à jour| +QC WebForm Address -<\/B> This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen|QC WebForm Adresse - Il s'agit de l'adresse du site web d'un agent QC pouvez aller à en cliquant sur le lien dans la WebForm QC écran| +QC Script -<\/B> This is the script that can be used by QC agents in the SCRIPT tab in the QC screen|Script QC - C'est le script qui peut être utilisé par les agents QC SCRIPT dans l'onglet de la QC écran| +QC WebForm: |QC WebForm:| +QC Script|QC Script| +In-Group Recording Override -<\/B> This field allows for the overriding of the campaign call recording setting. This setting can be overridden by the vicidial_user recording override setting. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording|En groupe enregistrement Override - Ce champ permet d'primordial de la campagne d'appel enregistrement. Ce réglage peut être modifié par l'enregistrement de l'emporter sur la mise en vicidial_user. HANDICAPES ne remplacent pas la campagne de l'enregistrement programmé. JAMAIS désactive l'enregistrement sur le client. OnDemand est l'option par défaut et permet à l'agent de début et de fin d'enregistrement en tant que de besoin. ALLCALLS va commencer l'enregistrement sur le client chaque fois qu'un appel est adressé à un agent. ALLFORCE va commencer l'enregistrement sur le client chaque fois qu'un appel est adressé à un agent qui l'agent aucune option pour arrêter l'enregistrement| +In-Group Recording Filename -<\/B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE|En groupe d'enregistrement du fichier - Ce champ peut passer outre à la campagne d'enregistrement nommage des fichiers système, sauf si elle est définie à AUCUNE. Les variables sont autorisés CAMPAGNE CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. La valeur par défaut est FULLDATE_AGENT et se présente comme suit 20051020-103108_6666. Un autre exemple est CAMPAIGN_TINYDATE_CUSTPHONE qui se présente comme suit TESTCAMP_51020103108_3125551212. 50 char max. La valeur par défaut est NON| +In-Group Recording Override: |En groupe enregistrement Override:| +In-Group Recording Filename: |En groupe d'enregistrement du fichier:| +ADDING VICIDIAL QC STATUS CODE|AJOUT VICIDIAL QC Code de statut| +MODIFY VICIDIAL QC STATUS CODE|MODIFY VICIDIAL QC Code de statut| +VICIDIAL QC STATUS CODES|VICIDIAL QC ÉTAT DES CODES| +The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length.|Le contrôle de la qualité au sein du système-QC VICIDIAL a son propre ensemble de codes distincts de ceux dans le traitement des appels de fonctions VICIDIAL. QC statuse codes doit être comprise entre 2 et 8 caractères et ne contiennent pas de caractères spéciaux, comme un espace ou du côlon. Le code de statut QC description doit être comprise entre 2 et 30 caractères.| + QC Status Codes |Codes d'état QC| +VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM: |VICIDIAL QC ÉTAT DANS CE SYSTEME DE CODES:| +ADD NEW QC STATUS CODE|ADD NEW QC Code de statut| +QC STATUS CODE NOT DELETED|QC CODE ÉTAT PAS SUPPRIMÉ| +QC STATUS CODE DELETED: |QC ÉTAT CODE DELETED:| +QC STATUS CODE NOT MODIFIED |QC CODE ÉTAT PAS mise à jour| +QC STATUS CODE MODIFIED: |QC ÉTAT CODE mise à jour:| +the qc status code needs to be at least 1 characters in length|qc le code de statut doit être au moins de 1 caractères| +the qc status code name needs to be at least 1 characters in length|qc le nom de code de statut doit être au moins de 1 caractères| +QC STATUS CODE NOT ADDED |QC CODE ÉTAT PAS AJOUTÉS| +there is already a qc status code in the system with this name:|il existe déjà un code de statut qc dans le système avec ce nom:| +QC STATUS CODE ADDED: |QC ÉTAT CODE AJOUTEE:| +code must be between 1 and 8 characters in length|code doit être compris entre 1 et 8 caractères| +code name must be between 2 and 30 characters in length|nom de code doit être compris entre 2 et 30 caractères| +CALL HANGUP REASON STATS|FAIT APPEL Hangup STATS| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field, IN_GROUP will send the call to the inbound group selected in the After Hours Transfer Group select list. Default is MESSAGE|Après les heures d'ouverture d'action - L'action à effectuer si c'est après les heures de travail tels que définis dans le temps de l'arrivée pour ce groupe. Hangup hangup immédiatement à l'appel, MESSASGE va jouer le fichier dans le message après les heures de Filenam domaine, EXTENSION envoie l'appel à la fois la durée d'extension de la dialplan et de la messagerie vocale vous envoyer l'appel à la boîte vocale figurant dans la boîte vocale après les heures de domaine , IN_GROUP enverra l'appel à l'arrivée du groupe sélectionné dans le groupe après les heures de sélectionner la liste de transfert. La valeur par défaut est MESSAGE| +After Hours Transfer Group -<\/B> If After Hours Action is set to IN_GROUP, the call will be sent to this inbound group if it enters the in-group outside of the call time scheme defined for the in-group|Après les heures d'ouverture de transfert Group - Si l'action Après les heures d'ouverture est fixée à IN_GROUP, l'appel sera envoyé à cette arrivée du groupe si celui-ci entre dans le groupe en dehors de l'appel de temps défini pour le régime de groupe| +After Hours Transfer Group: |Après les heures d'ouverture de transfert de Groupe:| +Total calls taken in to this In-Group:|Total des appels pris en Dans ce groupe:| +CALL HOLD TIME BREAKDOWN IN SECONDS|CALL TIME HOLD RÉPARTITION EN SECONDES| +Date Range:|Date Range:| +ADDING NEW PHONE ALIAS|AJOUT DE NOUVEAU TÉLÉPHONE ALIAS| +ADD NEW PHONE ALIAS|ADD NEW PHONE ALIAS| +MODIFY PHONE ALIAS|MODIFY PHONE ALIAS| +DELETE PHONE ALIAS|DELETE PHONE ALIAS| +PHONE ALIAS LIST|TÉLÉPHONE LISTE ALIAS| +Phone Alias List|Téléphone Alias Liste| +Add A New Phone Alias|Ajouter un nouveau téléphone Alias| +ADD A NEW PHONE ALIAS|Ajouter un nouveau téléphone ALIAS| +Alias ID: |Alias ID:| +Alias Name: |Alias Nom:| +Phone Logins List: |Téléphone Connexions List:| +PHONE ALIAS NOT ADDED|PAS DE TELEPHONE ALIAS AJOUTÉS| +there is already a Phone Alias in the system with this ID|il existe déjà un numéro de téléphone Alias dans le système avec cette ID| +there is already a Phone Login in the system with this ID|il existe déjà un numéro de téléphone dans le système Connectez-vous avec cette ID| +PHONE ALIAS ADDED|PHONE ALIAS AJOUTÉS| +PHONE ALIAS NOT MODIFIED|PHONE ALIAS PAS mise à jour| +PHONE ALIAS MODIFIED|PHONE ALIAS mise à jour| +PHONE ALIAS NOT DELETED|PHONE ALIAS pas supprimé| +PHONE ALIAS DELETION CONFIRMATION|PHONE ALIAS DELETION CONFIRMATION| +Click here to delete phone alias|Cliquez ici pour supprimer le téléphone alias| +PHONE ALIAS DELETION COMPLETED|PHONE ALIAS DELETION ACCOMPLIES| +PHONE ALIAS LISTINGS|PHONE ALIAS LISTAGES| +there is already a Phone alias in the system with this login|il existe déjà un numéro de téléphone alias dans le système avec ce login| +there is already a Phone in the system with this login|il existe déjà un numéro de téléphone dans le système avec ce login| +DELETE THIS PHONE ALIAS|SUPPRIMER CETTE PHONE ALIAS| +MODIFY A PHONE ALIAS RECORD|A MODIFIER TELEPHONE ALIAS RECORD| +Alias ID -<\/B> The ID of the alias used to allow for phone load balanced logins. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Alias ID - L'ID de l'alias utilisé pour permettre les connexions de téléphone à équilibrage de charge. pas d'espaces ou autres caractères spéciaux autorisés. Doit être compris entre 2 et 20 caractères de longueur| +Alias Name -<\/B> The name used to describe a phones alias, Must be between 2 and 50 characters in length|Alias Nom - Le nom utilisé pour désigner un téléphone alias, doit être compris entre 2 et 50 caractères de longueur| +Phones Logins List -<\/B> The comma separated list of phone logins used when an agent logs in using phone load balanced logins. The Agent application will find the active server with the fewest agents logged into it and place a call from that server to the agent upon login|Téléphones Connexions List - La virgule sépare la liste de téléphone de connexion utilisé lors d'un agent se connecte par téléphone pour équilibrer la charge de connexion. L'agent se trouve l'application serveur actif avec le moins d'agents et connecté à un appel à ce serveur à l'agent au moment de la connexion| +PHONES WITHIN THIS PHONES ALIAS|TELEPHONES PORTABLES DANS CETTE ALIAS| +Add New Shift|Ajouter un nouveau Shift| +New Shift Addition|New Shift adjonction| +Modify Shift|Modifier Shift| +Delete Shift|Maj + Suppr| +Shifts|Shifts| +Shift ID -<\/B> This is the short name of a Vicidial Shift Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 20 characters, minimum of 2 characters|Shift ID - Il s'agit du nom court d'un VICIDIAL Shift Définition. Cela doit être un identifiant unique. Ne pas utiliser les espaces ou la ponctuation dans ce champ. max 20 caractères, un minimum de 2 caractères| +Shift Name -<\/B> This is a more descriptive name of the Shift Definition. This is a short summary of the Shift definition. max 50 characters, minimum of 2 characters|Nom Shift - Il s'agit d'un nom descriptif de la Maj Définition. Ceci est un bref résumé de la définition Maj. max 50 caractères, un minimum de 2 caractères| +Shift Start Time -<\/B> This is the time that the campaign shift begins. Must only be numbers, 9:30 AM would be 0930 and 5:00 PM would be 1700|Start Time Shift - Il est temps que la campagne commence à passer. Ne doivent être des chiffres, 9:30 AM serait 0930 et 5:00 PM serait 1700| +Shift Length -<\/B> This is the time in Hours and Minutes that the campaign shift lasts. 8 hours would be 08:00 and 7 hours and 30 minutes would be 07:30|Longueur Shift - Il est temps en heures et minutes que dure la campagne de changement. 8 heures seraient 08h00 et 7 heures et 30 minutes serait 07:30| +Shift Weekdays -<\/B> In this section you should choose the days of the week that this shift is active|Shift Weekdays - Dans cette section, vous devriez choisir le jour de la semaine que ce changement est active| +Show Shifts|Voir les changements| +Add A New Shift|Add A New Shift| +Shift ID: |Shift ID:| +Shift Name: |Shift Nom:| +Shift Start Time: |Start Time Shift:| +Shift End Time: |End Time Shift:| +SHIFT DEFINITION NOT ADDED|MAJ définition pas AJOUTÉS| +there is already a shift entry with this ID|il ya déjà un quart d'entrée avec cette ID| +Shift ID and name must be at least 2 characters in length|Shift ID et le nom doit être d'au moins 2 caractères| +Shift Start Time must be 4 digits in length and be a valid time|Start Time Shift 4 chiffres doit être de longueur et une heure valide| +Shift Length must be 5 characters in length and be 24 hours or less|Shift Longueur doit être de 5 caractères de longueur et de 24 heures ou moins| +SHIFT ADDED: |SHIFT AJOUTÉS:| +MODIFY A SHIFT|MODIFIER UN DEPLACEMENT| +USER GROUPS USING THIS SHIFT:|Groupes d'utilisateurs UTILISANT CE SHIFT:| +DELETE THIS SHIFT DEFINITION|SUPPRIMER CETTE DEFINITION SHIFT| +MODIFY A SHIFT|MODIFIER UN DEPLACEMENT| +SHIFT NOT DELETED|MAJ pas supprimé| +SHIFT DELETION CONFIRMATION: |SHIFT DELETION CONFIRMATION:| +Click here to delete shift|Cliquez ici pour supprimer le passage| +SHIFT DELETION COMPLETED:|SHIFT DELETION ACHEVES:| +SHIFT MODIFIED|MAJ mise à jour| +SHIFT LISTINGS:|SHIFT inscriptions:| +Shift Weekdays: |Shift-Ven:| +Sunday|Dimanche| +Monday|Lundi| +Tuesday|Mardi| +Wednesday|Mercredi| +Thursday|Jeudi| +Friday|Vendredi| +Saturday|Samedi| +Group Shifts: |Groupe de changements:| +Group Shifts -<\/B> This is a selectable list of shifts that can restrict the agents login time on the system|Groupe changements - Il s'agit d'un choix de la liste des changements qui peuvent restreindre l'accès des agents à temps sur le système| + Timeclock|Timeclock| +Timeclock End Of Day -<\/B> This setting defines when all users are to be auto logged out of the timeclock system. Only runs once a day. must be only 4 digits 2 digit hour and 2 digit minutes in 24 hour time. Default is 0000|Timeclock Fin de la journée - Ce paramètre définit lorsque tous les utilisateurs sont automatiquement déconnecté du système timeclock. Fonctionne uniquement une fois par jour. ne doit être que 4 chiffres et 2 chiffres heures à 2 chiffres dans les minutes de 24 heures. La valeur par défaut est 0000| +Timeclock Last Auto Logout -<\/B> This field displays the date of the last auto-logout|Dernière timeclock Auto Logout - Ce champ affiche la date de la dernière auto-logout| +Timeclock Last Auto Logout: |Dernière timeclock Auto Logout:| +Timeclock End Of Day: |Timeclock Fin de la journée:| +SURVEY SETTINGS FOR THIS CAMPAIGN:|SONDAGE SETTINGS pour cette campagne:| +Modify Campaign Survey|Modifier Campagne Survey| +Survey First Audio File -<\/B> This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign.|Première Enquête Audio File - Il s'agit du nom de fichier audio qui se joue dès que le client choisit le téléphone lors de l'exécution d'une étude campagne.| +Survey DTMF Digits -<\/B> This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are |Enquête DTMF Digits - Ce domaine est l'endroit où vous définissez les chiffres que le client peut presse comme une option sur une campagne de sondage. valable chiffres DTMF sont| +Survey Not Interested Digit -<\/B> This field is where you define the customer digit pressed that will show they are Not Interested.|Enquête Non Intéressé Digit - Ce domaine est l'endroit où vous définissez le client pressé chiffres qui montrent qu'ils ne sont pas intéressés.| +Survey Not Interested Status -<\/B> This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list.|Enquête Non Intéressé Etat - Ce domaine est l'endroit où vous choisissez le statut d'être utilisé pour pas intéressé. S'il est utilisé DNC et la campagne est défini pour utiliser DNC ensuite le numéro de téléphone sera automatiquement ajouté à la liste DNC VICIDIAL interne.| +Survey Opt-in Audio File -<\/B> This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken.|Enquête sur Opt-in Audio File - Il s'agit du nom de fichier audio qui se joue lorsque le client a opté dans l'enquête, a choisi de ne pas-ou pas répondu si la non-réponse-action est fixé à optout. Après ce fichier audio est joué, le sondage de l'action ne soit prise.| +Survey Not Interested Audio File -<\/B> This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up|Enquête Non Intéressé Audio File - Il s'agit du nom de fichier audio qui se joue lorsque le client a choisi de l'enquête, a choisi de ne pas-ou pas répondu si la non-réponse-action est fixé à OptIn. Après ce fichier audio est joué, l'appel sera suspendu jusqu'à| +Survey Method -<\/B> This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory.|Enquête sur la méthode - Cette option permet de définir ce qui se passe à un appel après que le client a opté en. AGENT_XFER enverra l'appel à la prochaine agent. MESSAGERIE VOCALE envoie l'appel à la boîte vocale qui est spécifié dans la boîte vocale domaine. EXTENSION envoie le client à l'extension définie dans le Survey Xfer Extension domaine. Hangup se raccrocher le client. CAMPREC_60_WAV enverra au client d'avoir un enregistrement réalisé avec leur réponse, cet enregistrement sera placé dans un dossier nommé comme la campagne de l'intérieur de l'Enquête sur la campagne d'enregistrement Directory.| +Survey No-Response Action -<\/B> This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit.|Etude de non-réponse de l'action - C'est là que vous définissez ce qui se passera s'il n'y a pas de réponse à la question de sondage. OptIn ne envoyer l'appel à la méthode d'enquête, si le client en pressant une chiffres DTMF. OptOut envoie le client sur la méthode d'enquête, même si elles ne sont pas sur un chiffre DTMF.| +Survey Response Digit Map -<\/B> This is the section where you can define a description to go with each dtmf digit option that the customer may select.|Enquête Réponse Digit Map - Il s'agit de la section où vous pouvez définir une description pour aller avec chaque option DTMF chiffres que le client mai sélectionner.| +Survey Xfer Extension -<\/B> If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension|Enquête Xfer Extension - Si la méthode d'enquête de l'extension est sélectionné, le client appel sera dirigé vers cette extension dialplan| +Survey Campaign Recording Directory -<\/B> If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory.|Enquête sur la campagne d'enregistrement - Annuaire Si la méthode d'enquête de CAMPREC_60_WAV est sélectionné, le service à la clientèle sera enregistré et placé dans un répertoire nommé d'après la campagne de l'intérieur de ce répertoire.| +SURVEY SETTINGS NOT MODIFIED|SONDAGE SETTINGS PAS mise à jour| +SURVEY SETTINGS MODIFIED|SONDAGE SETTINGS mise à jour| +Survey First Audio File|Enquête Premier fichier audio| +Survey DTMF Digits|Enquête DTMF Digits| +Survey Not Interested Digit|Enquête Non Intéressé Digit| +Survey Not Interested Status|Enquête Non Intéressé Etat| +Survey Opt-in Audio File|Enquête sur Opt-in audio de dossier| +Survey Not Interested Audio File|Enquête Non Intéressé fichier audio| +Survey Method|Enquête sur la méthode| +Survey No-Response Action|Etude de non-réponse de l'action| +Survey Response Digit Map|Enquête sur la carte réponse Digit| +Survey Xfer Extension|Enquête Xfer Extension| +Survey Campaign Recording Directory|Enquête sur la campagne d'enregistrement du répertoire| +Add Timeclock Log Record -<\/B> This option allows the user to add records to the timeclock log|Ajouter Log timeclock Record - Cette option permet à l'utilisateur d'ajouter des enregistrements à l'timeclock journal| +Modify Timeclock Log Record -<\/B> This option allows the user to modify records in the timeclock log|Modifier timeclock Connexion Record - Cette option permet à l'utilisateur de modifier des enregistrements dans le journal timeclock| +Delete Timeclock Log Record -<\/B> This option allows the user to delete records in the timeclock log|Supprimer timeclock Connexion Record - Cette option permet à l'utilisateur de supprimer des enregistrements dans les journaux timeclock| +Add Timeclock Log Record|Ajouter Log timeclock Record| +Modify Timeclock Log Record|Modifier timeclock journal Record| +Delete Timeclock Log Record|Supprimer timeclock journal Record| +USER GROUP TIMECLOCK STATUS REPORT|GROUPE D'UTILISATEURS timeclock STATUS REPORT| +Click here to see the Timeclock Status for this user group|Cliquez ici pour voir le statut timeclock pour ce groupe d'utilisateurs| +ADD NUMBERS TO THE DNC LIST|Ajouter des numéros dans DNC LISTE| +Phone Numbers: |Numéros de téléphone:| +one phone number per line only|un numéro de téléphone par ligne seulement| +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 numbers to this list so that they will not be called by campaigns that use the internal DNC list|DNC VICIDIAL List - Do Not Call Cette liste contient tous les conduire qui a été fixé à un statut de DCN dans le système. Dans les listes - ADD NOMBRE DE DNC page que vous êtes en mesure d'ajouter manuellement les numéros de cette liste afin de ne pas être appelé par des campagnes qui utilisent la liste interne DNC| + Time Sheet |Feuille de temps| +Timeclock Record Edit|Timeclock Record Edit| +Default date format with year month day|Par défaut avec le format de la date année mois jour| +USA date format with month day year|Etats-Unis avec le format de la date mois jour année| +European date format with day month year|Européen de format de date avec jour mois année| +Text date format with abbreviated month day|Texte de format de date avec abrégée mois jour| +followed by 24 hour time|suivie par 24 heures,| +followed by 12 hour time|, suivies de 12 heures| +Agent Screen Header Date Format -<\/B> This menu allows you to choose the format of the date that shows up at the top of the VICIDIAL agent screen. The options for this setting are: default is|Agent Header Screen Format Date - Ce menu vous permet de choisir le format de la date qui apparaît en haut de l'écran VICIDIAL agent. Les options de ce paramètre sont les suivants: valeur par défaut est| +Agent Screen Customer Date Format -<\/B> This menu allows you to choose the format of the customer time zone date that shows up at the top of the Customer Information section of the VICIDIAL agent screen. The options for this setting are: default is|Agent client Screen Format Date - Ce menu vous permet de choisir le format de la date du fuseau horaire client qui apparaît en haut de la section d'information à la clientèle agent VICIDIAL de l'écran. Les options pour ce paramètre sont les suivants: valeur par défaut est| +Agent Screen Customer Phone Format -<\/B> This menu allows you to choose the format of the customer phone number that shows up in the status section of the VICIDIAL agent screen. The options for this setting are: default is|Agent Client Téléphone Screen Format - Ce menu vous permet de choisir le format du client le numéro de téléphone qui apparaît dans la section du statut de la VICIDIAL agent écran. Les options pour ce paramètre sont les suivants: valeur par défaut est| +dash separated phone number|tableau de bord séparés numéro de téléphone| +dash separated number with area code in parenthesis|Numéro de tableau de bord séparés avec le code régional entre parenthèses| +No formatting|Pas de formatage| +with space after city code|avec l'espace après le code de ville| +space separated phone number|espace séparé numéro de téléphone| +Agent Screen Header Date Format|Agent Header Screen Format Date| +Agent Screen Customer Date Format|Agent client Screen Format Date| +Agent Screen Customer Phone Format|Agent Client Téléphone Screen Format| +ERROR- There is a problem with the data that you entered, please go back|ERREUR-Il ya un problème avec les données que vous avez entré, s'il vous plaît revenir| +A timeclock session cannot overlap another timeclock session|A timeclock session ne peuvent pas se chevaucher un autre timeclock session| +Disable Alter Customer Phone -<\/B> If set to Y, does not change the customer phone number when an agent dispositions the call. Default is Y|Désactiver Alter clientèle Téléphone - Si la valeur de Y, ne modifie pas le client numéro de téléphone lors d'un agent dispositions de l'appel. La valeur par défaut est Y| +Agent API Access -<\/B> This option allows the account to be used with the vicidial agent API commands|Agent API d'accès - Cette option permet le compte à utiliser avec l'agent VICIDIAL commandes API| +Agent Alter Customer Phone Override -<\/B> This option will override whatever the option is in the campaign for altering of customer phone number. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer phone number, no matter what the campaign setting is. Default is NOT_ACTIVE|Alter Agent Client Téléphone Override - Cette option va remplacer ce que l'option est dans la campagne pour modifier le numéro de téléphone du client. NOT_ACTIVE va utiliser quel que soit l'établissement est présent pour la campagne. ALLOW_ALTER toujours de permettre à l'agent de modifier le numéro de téléphone des clients, quel que soit le réglage de la campagne. La valeur par défaut est NOT_ACTIVE| +Agent API Active -<\/B> If set to 1, this will allow the Agent API interface to function. Default is 0|Agent API Active - Si définie à 1, cela permet à l'agent d'interface API pour fonctionner. La valeur par défaut est 0| +Agent Alter Customer Phone Override: |Alter Agent Client Téléphone Override:| +Agent API Access: |Agent API d'accès:| +Disable Alter Customer Phone: |Désactiver Alter clientèle Téléphone:| +Agent API Active: |Agent API Active:| +Agent Display Queue Count -<\/B> If set to Y, when a customer is waiting for an agent, the Queue Calls display at the top of the agent screen will turn red and show the number of waiting calls. Default is Y|Agent Display Queue Count - Si la valeur de Y, lorsque le client est en attente d'un agent, la file d'attente de demande d'affichage en haut de l'agent de l'écran devient rouge et indique le nombre d'appels en attente. Le défaut est Y| +Agent Display Queue Count: |Agent Chef de file d'attente d'affichage:| +agents in dead calls|agents morts dans les appels| +QC Last Pull Time: |Pull QC Dernière Heure:| +and less than 43200 seconds or 12 hours|et moins de 43,200 secondes ou 12 heures| +LEADS AT LIMIT|LIMITE AU FILS| +Lead counts taken from active lists in the campaign only|Lead compte active des listes de prises dans la campagne ne| +QC Get Record Launch-<\/B> This allows one of the following actions to be triggered upon a QC agent receiving a new record|Record QC Get lancement Cela permet à l'une des actions suivantes peut être déclenché sur un agent QC recevoir un nouveau record| +QC Show Recording -<\/B> This allows for a recording that may be linked with the QC record to be display in the QC agent screen|QC Voir Recording - qui permet un enregistrement qui mai être liée à la QC record à afficher dans le QC agent écran| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions|QC Shift - Il s'agit du changement de calendrier utilisé pour tirer QC pour une campagne. Les jours de la semaine sont ignorées pour ces fonctions| +QC Get Record Launch|Get Lancement Record QC| +QC Show Recording|QC Voir l'enregistrement| +QC Shift|QC Shift| +Inbound Group QC Settings|Inbound Groupe QC Paramètres| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions|QC Shift - Il s'agit du changement de calendrier servant à tirer d'un QC inbound_group. Les jours de la semaine sont ignorées pour ces fonctions| +The Sale Category and Dead Lead Category are both used by the List Suggestion system when analyzing list statistics.|La vente et la catégorie Dead Lead Catégorie sont tous deux utilisés par le système de liste de suggestions lors de l'analyse de la liste des statistiques.| +Sale Category: |Vente Catégorie:| +Dead Lead Category: |Dead Lead Catégorie:| +Manual Dial Filter -<\/B> This allows you to filter the calls that agents make in manual dial mode for this campaign by any combination of the following: DNC - to kick out, CAMPAIGNLISTS - the number must be within the lists for the campaign, NONE - no filter on manual dial or fast dial lists|Manuelle Filter - Cela vous permet de filtrer les appels que les agents font en mode manuel composer pour cette campagne par une combinaison des éléments suivants: DNC - à coup sur, CAMPAIGNLISTS - le nombre doit être dans les listes pour la campagne, AUCUN - pas de filtre sur le cadran ou manuel rapide composer des listes| +Manual Dial Filter: |Manuelle Filter:| +Agent Screen Clipboard Copy -<\/B> THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer|Agent de presse-papiers de copie d'écran - Cette fonctionnalité est actuellement disponible que pour Internet Explorer. Cette fonctionnalité vous permet de sélectionner un domaine qui sera copiée dans le presse-papiers de l'ordinateur de l'agent sur l'ordinateur d'un appel d'être envoyées à un agent. Commune utilise pour cela sont pour faciliter le collage de numéros de compte ou des numéros de téléphone en héritage les applications client à l'agent d'ordinateur| +Agent Screen Clipboard Copy|Agent de copie d'écran du Presse-papiers| +EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record.|EXTENDED suppléant nombres sont des nombres dans le système en dehors de la norme de l'écran principal de l'information. L'aide de vous pouvez avoir des centaines de numéros de téléphone pour un seul client record.| +Agent Screen Extended Alt Dial -<\/B> This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information|Agent Screen Extended Alt Dial - Cette fonction permet aux agents d'accéder à des numéros de téléphone suppléant étendue des pistes au-delà de l'Alt Address3 de téléphone et les champs qui peuvent être utilisés dans VICIDIAL de numéros de téléphone au-delà du numéro de téléphone principal. L'étendue des numéros de téléphone peut être composé automatiquement en utilisant la fonction Auto-Alt-Dial VICIDIAL dans les paramètres de campagne, mais l'activation de cette fonctionnalité, agent d'écran permettra également l'agent d'appeler ces numéros à partir de l'écran de leur mandataire, ainsi que de modifier leurs informations| +Agent Screen Extended Alt Dial:|Agent Screen Extended Alt Dial:| +Use Campaign DNC List -<\/B> This defines whether this campaign is to filter leads against a DNC list that is specific to that campaign only. If it is set to Y, the hopper will look for each phone number in the campaign-specific DNC list before placing it in the hopper. If it is in the campaign-specific DNC list then it will change that lead status to DNCC so it cannot be dialed. Default is N.|Utilisez Campagne DNC List - Cela définit si cette campagne est de filtrer les mène à une liste DNC qui est spécifique à cette campagne seulement. Si elle est définie à Y, la trémie sera, pour chaque numéro de téléphone dans la campagne des DNC avant de le placer dans la trémie. Si elle est dans la campagne des DNC liste, il va changer le statut qui conduisent à DNCC il ne peut donc pas être composé. La valeur par défaut est N.| +Use Campaign DNC List|Utilisez la liste de campagne DNC| +and possibly the campaign-specific DNC list|et, éventuellement, la campagne de la liste des DNC| +There is also the option to add leads to the campaign-specific DNC lists for those campaigns that have them|Il ya aussi la possibilité d'ajouter conduit à la campagne des listes DNC et pour les campagnes qui ont les| +NOTE: Copying a campaign will copy all settings from the master campaign you select, but it will not copy a campaign-specific DNC list if there was one on the selected master campaign|NOTE: Copie d'une campagne vous permettra de copier tous les paramètres de campagne, le capitaine que vous sélectionnez, mais il ne sera pas copier une campagne spécifique DNC liste s'il y en a un sur le maître, sélectionnez la campagne| +Add New |Ajouter un nouveau| +Copy |Copie| +New DID Addition|A New Addition| +New Copied DID Addition|Nouvelle adjonction Copied DID| +Modify |Modifier| +Delete |Supprimer| +Play Place in Line -<\/B> This defines whether the caller will hear their place in line when they enter the queue as well as when they hear the announcemend. Default is N|Jouer en ligne Place - Cela définit si l'appelant entendra leur place dans la ligne quand ils entrent dans la file d'attente, ainsi que quand ils entendent le announcemend. La valeur par défaut est N| +Play Estimated Hold Time -<\/B> This defines whether the caller will hear the estimated hold time before they are transferred to an agent. Default is N|Hold estimée Play Time - Cela définit si l'appelant entend tenir les prévisions de temps avant qu'ils ne soient transférés à un agent. La valeur par défaut est N| +Hold Time Option -<\/B> This allows you to specify the routing of the call if the estimated hold time is over the amount of seconds specified below. Default is NONE|Hold Time Option - Cela vous permet de spécifier le routage de l'appel, si les prévisions de tenir le temps est sur le montant de la seconde précisés ci-dessous. La valeur par défaut est NON| +Hold Time Option Seconds -<\/B> If Hold Time Option is set to anything but NONE, this is the number of seconds of estimated hold time that will trigger the hold time option. Default is 360 seconds|Hold Time Option secondes - Si Hold Time Option est fixé à rien, mais AUCUNE, c'est le nombre de secondes de l'estimation du temps que vous maintenez le déclencheur tenir option. La valeur par défaut est 360 secondes| +Hold Time Option Extension -<\/B> If Hold Time Option is set to EXTENSION, this is the dialplan extension that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Extension - Si Hold Time Option est fixé à l'extension, c'est l'extension dialplan que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds| +Hold Time Option Voicemail -<\/B> If Hold Time Option is set to VOICEMAIL, this is the voicemail box that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Voicemail - Si Hold Time Option est fixé à la boîte vocale, il s'agit de la boîte vocale que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds| +Hold Time Option Transfer In-Group -<\/B> If Hold Time Option is set to IN_GROUP, this is the inbound group that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option de transfert In-Group - Si Hold Time Option est fixé à IN_GROUP, c'est l'arrivée du groupe que l'appel sera envoyé à tenir si l'estimation dépasse le temps Hold Time Option Seconds| +Hold Time Option Callback Filename -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the filename prompt that is played before the call is logged as a new lead to the list ID specified below if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Callback Filename - Si Hold Time Option est fixé à CALLERID_CALLBACK, cette invite est le nom du fichier qui se joue avant l'appel est enregistré comme un nouveau chef de file de la liste ID spécifiées ci-dessous si l'estimation est supérieure à la fois tenir Hold Time Option Seconds| +Hold Time Option Callback List ID -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the List ID the call is added to as a new lead if the estimated hold time exceeds the Hold Time Option Seconds|Hold Time Option Rappel Liste ID - Si Hold Time Option est fixé à CALLERID_CALLBACK, il s'agit de la liste de ID de l'appel est ajouté à un nouveau chef de file, si les prévisions de tenir le temps dépasse le Hold Time Option Seconds| +Hold Recall Transfer In-Group -<\/B> If a customer calls back to this in-group more than once and this is not set to NONE, then the call will automatically be sent on to the In-Group selected in this field. Default is NONE|Hold Recall transfert In-Group - Si un client demande à ce groupe en plus d'une fois et cela n'est pas mis à AUCUNE, puis l'appel sera automatiquement envoyé à l'En-groupe sélectionné dans ce domaine . La valeur par défaut est NON| +No Delay Call Route -<\/B> Setting this to Y will remove all wait times and audio prompts and attempt to send the call right to an agent. Does not override welcome message or on hold prompt settings. Default is N|Appel Route n ° Delay - Mettre ce paramètre à Y va effacer tous les temps d'attente et audio et de tenter d'envoyer l'appel droit à un agent. T-elle pas sur le message d'accueil ou en attente rapide des paramètres. La valeur par défaut est N| +Play Welcome Message -<\/B> These settings select when to play the defined welcome message, ALWAYS will play it every time, NEVER will never play it, IF_WAIT_ONLY will only play the welcome message if the call does not immediately go to an agent, and YES_UNLESS_NODELAY will always play the welcome message unless the NO_DELAY setting is enabled. Default is ALWAYS|Message de bienvenue Play - Ces réglages choisir le moment de jouer le message de bienvenue défini, TOUJOURS jouera à chaque fois, JAMAIS il ne pourra jamais jouer, IF_WAIT_ONLY seulement jouer le message de bienvenue si l'appel n'est pas immédiatement à un agent , et YES_UNLESS_NODELAY toujours jouer le message de bienvenue NO_DELAY à moins que le paramètre est activé. La valeur par défaut est TOUJOURS| +Play Place in Line: |Jouer en ligne Lieu:| +Play Estimated Hold Time: |Hold estimée Play Time:| +Hold Time Option: |Hold Time Option:| +Hold Time Option Seconds: |Hold Time Option Seconds:| +Hold Time Option Extension: |Hold Time Option Extension:| +Hold Time Option Voicemail: |Hold Time Option de messagerie vocale:| +Hold Time Option Transfer In-Group: |Hold Time Option de transfert en groupe:| +Hold Time Option Callback Filename: |Hold Time Option Callback Filename:| +Hold Time Option Callback List ID: |Hold Time Option Callback Liste ID:| +Hold Recall Transfer In-Group: |Hold Recall transfert en groupe:| +No Delay Call Route: |Pas de délai d'appel Route:| +Play Welcome Message: |Play Message de bienvenue:| +DID Extension -<\/B> This is the number, extension or DID that will trigger this entry and that you will route within the system using this function|DID Extension - C'est le nombre, d'extension ou de DID qui déclenchent cette entrée et que vous la route à l'intérieur du système en utilisant cette fonction| +DID Description -<\/B> This is the description of the DID routing entry|Description DID - Il s'agit de la description de l'entrée de routage DID| +DID Active -<\/B> This the field where you set the DID entry to active or not. Default is Y|DID Active - C'est le domaine où vous définissez la DID à l'entrée active ou non. La valeur par défaut est Y| +DID Route -<\/B> This the type of route that you set the DID to use. EXTEN will send calls to the extension entered below, VOICEMAIL will send calls directly to the voicemail box entered below, AGENT will send calls to a VICIDIAL agent if they are logged in, PHONE will send the call to a phones entry selected below, IN_GROUP will send calls directly to the specified inbound group. Default is EXTEN|Route DID - Ce type de route que vous avez mis le DID à utiliser. EXTEN va envoyer des appels à l'extension en dessous, à la messagerie vocale vous envoyer des appels directement à la boîte vocale en dessous, AGENT envoie les appels vers un agent VICIDIAL s'ils sont identifiés, PHONE enverra l'appel d'un téléphone d'entrée, sélectionnez ci-dessous, vous IN_GROUP envoyer des appels directement à l'arrivée du groupe spécifié. La valeur par défaut est EXTEN| +Extension -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan extension that calls will be sent to. Default is 9998811112, no-service|Extension - Si EXTEN est sélectionné en tant que DID route, alors c'est le dialplan extension qui appelle sera envoyée. La valeur par défaut est 9998811112, pas de service| +Extension Context -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan context that calls will be sent to. Default is default|Extension Contexte - Si EXTEN est sélectionné en tant que DID route, alors c'est le contexte qui dialplan demande sera envoyée. Par défaut est la valeur par défaut| +Voicemail Box -<\/B> If VOICEMAIL is selected as the DID Route, then this is the voicemail box that calls will be sent to. Default is empty|Voicemail Box - Si messagerie vocale est sélectionné en tant que DID Route, c'est la boîte vocale qui demande sera envoyée. La valeur par défaut est vide| +Phone Extension -<\/B> If PHONE is selected as the DID Route, then this is the phone extension that calls will be sent to.|Téléphone Extension - si le téléphone est sélectionné comme DID Route, cette extension est le téléphone que les appels seront envoyées.| +Phone Server IP -<\/B> If PHONE is selected as the DID Route, then this is the server IP for the phone extension that calls will be sent to|Téléphone IP du serveur - si le téléphone est sélectionné comme DID route, alors c'est l'IP du serveur pour le téléphone d'extension que les appels seront envoyés à| +User Agent -<\/B> If AGENT is selected as the DID Route, then this is the VICIDIAL Agent that calls will be sent to|User Agent - si l'agent est sélectionné en tant que DID route, alors c'est le VICIDIAL l'agent qui demande sera envoyée à| +User Unavailable Action -<\/B> If AGENT is selected as the DID Route, and the user is not logged in or available, then this is the route that the calls will take|User Unavailable Action - si l'agent est sélectionné en tant que DID route, et l'utilisateur n'est pas connecté ou disponible, c'est la route que les appels se| +User Route Settings In-Group - If AGENT is selected as the DID Route, then this is the In-Group that will be used for the queue settings as the caller is waiting to be sent to the agent. Default is AGENTDIRECT|User Settings En Route-Group - si l'agent est sélectionné en tant que DID route, alors c'est le groupe In-qui sera utilisé pour la file d'attente de paramètres que l'appelant est en attente d'être envoyé à l'agent. La valeur par défaut est AGENTDIRECT| +In-Group ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the In-Group that calls will be sent to|In-Groupe ID - Si IN_GROUP est sélectionné en tant que DID route, alors c'est le groupe qui en demande sera envoyée à| +In-Group Call Handle Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attampt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attampt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attampt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue. Default is CID|In-Call Groupe Handle Method - Si IN_GROUP est sélectionné en tant que DID route, alors c'est la méthode de traitement des appels de ces appels. Base de données ajouter un nouveau record à conduire tous les appels à l'aide du CallerID comme le numéro de téléphone, CIDLOOKUP vais essayer de rechercher le numéro de téléphone par le CallerID dans l'ensemble du système, CIDLOOKUPRL sera attampt pour rechercher le numéro de téléphone par le CallerID précisé que dans une seule liste , CIDLOOKUPRC sera attampt de rechercher le numéro de téléphone par le CallerID dans l'ensemble des listes qui font partie de la campagne spécifié, plus proche est indiquée pour VICIDIAL Closer appels, ANI va ajouter un nouveau record à conduire tous les appels à l'aide du ANI que le numéro de téléphone, ANILOOKUP va tenter de rechercher le numéro de téléphone de l'ANI dans l'ensemble du système, ANILOOKUPRL sera attampt de rechercher le numéro de téléphone par l'ANI précisé que dans une seule liste, XDIGITID amènera l'appelant pour un X chiffres avant que l'appel sera mis en la file d'attente. La valeur par défaut est BDCE| +In-Group Agent Search Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the agent search method to be used by the inbound group, LO is Load-Balanced-Overflow and will try to send the call to an agent on the local server before trying to send it to an agent on another server, LB is Load-Balanced and will try to send the call to the next agent no matter what server they are on, SO is Server-Only and will only try to send the calls to agents on the server that the call came in on. Default is LB|In-Groupe Agent Méthode de recherche - Si IN_GROUP est sélectionné en tant que DID route, alors c'est l'agent de recherche à la méthode de l'arrivée du groupe, LO est à équilibrage de charge-débordement et d'essayer d'envoyer l'appel à un agent sur le serveur local avant d'essayer de l'envoyer à un agent sur un autre serveur, LB est à équilibrage de charge et de tenter d'envoyer l'appel à l'agent, quel que soit elles sont sur le serveur, le serveur SO est seulement et que d'essayer d'envoyer des appels vers les agents sur le serveur que l'appel est venu dans le. La valeur par défaut est LB| +In-Group List ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the List ID that leads may be searched through and that leads will be inserted into if necessary|Dans la liste Groupe ID - Si IN_GROUP est sélectionné en tant que DID Route, c'est la liste qui mène mai ID être recherchées à travers et que le conduit sera inséré dans le cas échéant| +In-Group Campaign ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the Campaign ID that leads may be searched for in if the call handle method is CIDLOOKUPRC|En-groupe ID de la campagne - Si IN_GROUP est sélectionné en tant que DID route, alors c'est le ID de la campagne que mène mai être recherchée dans le cas de la méthode est de faire appel CIDLOOKUPRC| +In-Group Phone Code -<\/B> If IN_GROUP is selected as the DID Route, then this is the Phone Code used if a new lead is created|En-groupe Téléphone Code - Si IN_GROUP est sélectionné en tant que DID route, alors ce téléphone est le code utilisé si un nouveau chef de file est créé| +Phones Email -<\/B> The email address associated with this phone entry. This is used for voicemail settings|Téléphones Email - L'adresse e-mail associée à ce téléphone d'entrée. Il est utilisé pour les paramètres de messagerie vocale| +ADD A NEW DID|AJOUTER UN NOUVEAU NE| +DID Extension: |DID Extension:| +DID Description: |A Description:| +COPY DID|COPY DID| +Source DID: |Source DID:| +DID NOT ADDED|NE PAS AJOUTER| +there is already a DID in the system with this ID|il ya déjà un DID dans le système avec cette ID| +there is already a DID in the system with this extension|il ya déjà un DID dans le système avec cette extension| +DID NOT MODIFIED|NE MODIFIE PAS| +DID MODIFIED|DID mise à jour| +MODIFY A DID RECORD: |Modifier un DID RECORD:| +DID Route: |Route de DID:| +Extension: |Extension:| +Extension Context: |Extension Contexte:| +Voicemail Box: |Boîte vocale:| +Phone Extension: |Téléphone Extension:| +User Agent: |User Agent:| +User Unavailable Action: |Unavailable Action utilisateur:| +User Route Settings In-Group: |User Settings En Route-Group:| +In-Group ID: |En-groupe ID:| +In-Group Call Handle Method: |In-Call Groupe Handle Méthode:| +In-Group Agent Search Method: |En groupe Agent Méthode de recherche:| +In-Group List ID: |In-Liste du groupe ID:| +In-Group Campaign ID: |En-groupe ID de la campagne:| +In-Group Phone Code: |En-groupe Téléphone Code:| +DELETE THIS DID|SUPPRIMER CETTE DID| +Email: |Email:| +DID NOT DELETED|NE PAS SUPPRIMER| +DID DELETION CONFIRMATION|A DELETION CONFIRMATION| +Click here to delete |Cliquez ici pour supprimer| +DID DELETION COMPLETED|A DELETION ACCOMPLIES| +Delete DIDs: |Supprimer DiDs:| +Modify DIDs: |Modifier DiDs:| +To disable the On Hold Prompt, set the interval to 0|Pour désactiver l'invite en attente, réglez l'intervalle de 0| +3-Way Call Outbound CallerID -<\/B> This defines what is sent out as the outbound callerID number from 3-way calls placed by the agent, CAMPAIGN uses the custom campaign callerID, CUSTOMER uses the number of the customer that is active on the agents screen and AGENT_PHONE uses the callerID for the phone that the agent is logged into|3-Way Outbound Call CallerID - Cela définit ce qui est envoyé en tant que sortant CallerID nombre de 3-way appels effectués par l'agent, la campagne utilise la campagne personnalisée CallerID, client utilise le numéro de client qui est actif sur les agents de l'écran et utilise les CallerID AGENT_PHONE le téléphone pour que l'agent est entré dans| +3-Way Call Outbound CallerID:|3-Way Outbound Call CallerID:| +INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls|INBOUND_MAN permet à l'agent de mise manuel composer des appels de la liste d'une campagne tout en étant en mesure de prendre des appels entrants entre le manuel de composer des appels| +FORCE will force the agents to choose a PAUSE code if they click on the PAUSE button|Force va forcer les agents à choisir un code PAUSE si elles cliquez sur le bouton PAUSE| +3-Way Call Dial Prefix -<\/B> This defines what is used as the dial prefix for 3-way calls, default is empty so the campaign dial prefix is used, passthru so you can hear ringing is 88|3-Way Call Dial Prefix - Cela définit ce qui est utilisé comme préfixe pour les 3-way appels, par défaut est vide de sorte que la campagne de préfixe est utilisé, passthru afin que vous puissiez entendre sonner est de 88| +3-Way Call Dial Prefix|3-Way Call Dial Prefix| +Force Timeclock Login -<\/B> This option allows you to not let an agent log in to the VICIDIAL agent interface if they have not logged into the timeclock. Default is N. There is an option to exempt admin users, levels 8 and 9|Force timeclock Login - Cette option vous permet de ne pas laisser un agent vous connecter à l'interface agent VICIDIAL si elles ne sont pas enregistrés dans le timeclock. La valeur par défaut est N. Il est possible d'exonérer les utilisateurs admin, le niveau 8 et 9| +Force Timeclock Login|Force timeclock Login| +Stats Percent of Calls Answered Within X seconds - This field allows you to set the number of hold seconds that the realtime stats display will use to calculate the percentage of answered calls that were answered within X number of seconds on hold|Stats Pourcentage des appels dans les X secondes - Ce domaine vous permet de définir le nombre de secondes que le tenir en temps réel des statistiques d'affichage à utiliser pour calculer le pourcentage d'appels qui ont répondu ont répondu dans X le nombre de secondes en attente| +Stats Percent of Calls Answered Within X seconds|Stats Pourcentage des appels dans les X secondes| +Web Form Target-<\/B> This is where you can set the custom web page frame that the web form will be opened in when the user clicks on the WEB FORM button. Default is _blank.|Web Form Public- C'est là que vous pouvez définir la page Web personnalisée cadre que le formulaire web sera ouverte lorsque l'utilisateur clique sur le bouton de formulaire Web. La valeur par défaut est _blank.| +Web Form Target|Formulaire Web Public| +To customize the query string after the web form, simply begin the web form with VAR and then the URL that you want to use, replacing the variables with the variable names that you want to use --A--phone_number--B-- just like in the SCRIPTS tab section|Pour personnaliser la chaîne de requête, après le formulaire Web, il suffit de commencer avec le formulaire web, VAR et puis l'URL que vous voulez utiliser, en remplaçant les variables avec les noms des variables que vous voulez utiliser - A - phone_number - B -- comme dans l'onglet SCRIPTS| +Recording Web Link -<\/B> This setting allows you to override the default of the display of the recording link in the admin web pages. Default is SERVER_IP|Enregistrement Web Link - Ce paramètre permet d'outrepasser les paramètres par défaut de l'affichage de l'enregistrement de lien dans l'admin des pages web. La valeur par défaut est SERVER_IP| +Alternate Recording Server IP -<\/B> This setting is where you can put a server IP or other machine name that can be used in place of the server_ip in the links to recordings within the admin web pages. Default is empty|Autre enregistrement IP du serveur - Ce paramètre est l'endroit où vous pouvez mettre une IP de serveur de nom de machine ou d'autres qui peuvent être utilisés à la place de la server_ip dans les liens d'enregistrements au sein de l'administration des pages Web. La valeur par défaut est vide| +Recording Web Link|Enregistrement Web Link| +Enable Vtiger Integration -<\/B> This setting allows you to enable Vtiger integration with VICIDIAL. Currently links to Vtiger admin and search as well as user replication are the only integration features available. Default is 0|Activer Vtiger Integration - Ce paramètre vous permet d'activer l'intégration avec Vtiger VICIDIAL. Actuellement, des liens vers Vtiger admin et de recherche ainsi que l'utilisateur de réplication sont les seules fonctions d'intégration disponibles. La valeur par défaut est 0| +Vtiger DB Server IP -<\/B> This is the IP address of the database for your Vtiger installation|Vtiger DB Server IP - Il s'agit de l'adresse IP de la base de données de votre installation Vtiger| +Vtiger Database Name -<\/B> This is the database name for your Vtiger database|Vtiger Database Name - C'est le nom de base de données de votre base de données Vtiger| +Vtiger Database Login -<\/B> This is the user name used to log in to your Vtiger database|Vtiger Database Login - C'est le nom d'utilisateur utilisé pour vous connecter à votre base de données Vtiger| +Vtiger Database Password -<\/B> This is the password used to log in to your Vtiger database|Vtiger Database Password - Il s'agit du mot de passe utilisé pour vous connecter à votre base de données Vtiger| +Vtiger URL -<\/B> This is the URL or web site address used to get to your Vtiger installation|Vtiger Web - Il s'agit de l'URL ou adresse du site Web utilisé pour accéder à votre installation Vtiger| +Enable Vtiger Integration:|Activer Vtiger Integration:| +Vtiger DB Server IP|Vtiger DB Server IP| +Vtiger Database Name|Vtiger Database Name| +Vtiger Database Login|Vtiger Database Login| +Vtiger Database Password|Vtiger Database Password| +Vtiger URL|Vtiger Web| +VTIGER HOME|VTIGER ACCUEIL| +Active -<\/B> This field defines whether the user is active in the system and can use VICIDIAL resources. Default is Y|Active - Ce champ détermine si l'utilisateur est actif dans le système et peuvent utiliser VICIDIAL ressources. La valeur par défaut est Y| +show only active users|Afficher uniquement les utilisateurs actifs| +show all users|Afficher tous les utilisateurs| +Vtiger Search Category -<\/B> If Vtiger integration is enabled in the system settings then this setting will define where the vtiger_search.php page will search for the phone number that was entered. There are 4 options that can be used in this field: LEAD- This option will search through the Vtiger leads only, ACCOUNT- This option will search through the Vtiger accounts and all contacts and sub-contacts for the phone number, VENDOR- This option will only search through the Vtiger vendors, ACCTID- This option works only for accounts and it will take the vicidial vendor_lead_code field and try to search for the Vtiger account ID. If unsuccessful it will try any other methods listed that you have selected. Multiple options can be used for each search, but on large databases this is not recommended. Default is LEAD|Recherche Catégorie Vtiger - Si Vtiger intégration est activé dans les paramètres du système puis de définir ce paramètre lorsque l'vtiger_search.php page de recherche pour le numéro de téléphone qui a été entré. Il ya 4 options qui peuvent être utilisés dans ce domaine: LEAD-Cette option de recherche par le biais du conduit Vtiger seulement, COMPTE-Cette option de recherche par le biais du Vtiger comptes et tous les contacts et les sous-contacts pour le numéro de téléphone, VENDOR-Cette option ne recherche que par l'intermédiaire du Vtiger fournisseurs, ACCTID-Cette option ne fonctionne que pour les comptes et il prendra les VICIDIAL vendor_lead_code terrain et essayer de chercher le numéro de compte Vtiger. En cas d'échec, il va essayer d'autres méthodes que la liste que vous avez sélectionné. Plusieurs options peuvent être utilisées pour chaque recherche, mais sur de grandes bases de données ce n'est pas recommandé. La valeur par défaut est LEAD| +Vtiger Search Category:|Vtiger Recherche Catégorie:| +ACTIVE LISTS CHANGED|LISTES D'ACTIFS MODIFIES| +SUBMIT ACTIVE LIST CHANGES|SUBMIT ACTIVE LISTE DES CHANGEMENTS| +LAST CALL DATE|LAST CALL DATE| +User Group Bulk Change|Changement de groupe d'utilisateur en vrac| +Bulk Group Change|Bulk Change Group| +Vtiger Create Call Record -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether a new Vtiger activity record is created for the call when the agent goes to the vtiger_search page. Default is Y|Vtiger Créer Call Record - Si Vtiger intégration est activé dans les paramètres du système puis de définir ce paramètre est de savoir si un nouveau record d'activité Vtiger est créé pour l'appel lorsque l'agent est à la vtiger_search page. La valeur par défaut est Y| +Vtiger Create Call Record:|Vtiger Créer Enregistrement d'appel:| +Vtiger Create Lead Record -<\/B> If Vtiger integration is enabled in the system settings and Vtiger Search Category includes LEAD then this setting will define whether a new Vtiger lead record is created when the agent goes to the vtiger_search page and no record is found to have the call phone number. Default is Y|Vtiger Créer Lead Record - Si Vtiger intégration est activé dans les paramètres système et Vtiger LEAD Recherche Catégorie comprend alors ce paramètre est de déterminer si un nouveau record Vtiger plomb est créé lorsque l'agent est à la page vtiger_search et il n'est pas ont trouvé à l'appel le numéro de téléphone. La valeur par défaut est Y| +Vtiger Create Lead Record:|Vtiger Créer Lead Enregistrement:| +Vtiger Screen Login -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether the user is logged into the Vtiger interface automatically when they login to VICIDIAL. Default is Y|Vtiger Login Screen - Si Vtiger intégration est activé dans les paramètres de ce système de réglage de définir si l'utilisateur est connecté à l'interface Vtiger automatiquement lors de leur connexion à VICIDIAL. Le défaut est Y| +Vtiger Screen Login:|Vtiger Screen Login:| +Alert Enabled -<\/B> This field shows whether the agent has web browser alerts enabled for when calls come into their vicidial.php session. Default is 0 for NO|Alerte Activé - Ce champ indique si l'agent est le navigateur Web des alertes lorsque les appels ont permis de venir dans leur vicidial.php session. La valeur par défaut est 0 pour les NO| +Alert Enabled:|Alerte Enabled:| +QC Features Active -<\/B> This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive|Caractéristiques QC Active - Cette option vous permet d'activer ou désactiver le contrôle de la qualité ou QC fonctionnalités. La valeur par défaut est 0 pour les inactifs| +Outbound Auto-Dial Active -<\/B> This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active|Auto-Outbound Dial Active - Cette option vous permet d'activer ou désactiver la numérotation automatique sortants dans VICIDIAL, la mise en ce domaine à 0 supprime les listes et FILTERS sections et de nombreux champs de la campagne Modification écrans. Manuel de l'entrée de numérotation sera encore autorisée au sein de l'agent de l'écran, mais pas de liste d'appel ne sera possible. La valeur par défaut est 1 pour les actifs| +QC Features Active:|QC Active Caractéristiques:| +Outbound Auto-Dial Active:|Auto Outbound Dial-Active:| +Close Panel|Fermer le panneau| +Choose Report Display Options|Rapport Choisissez Options d-affichage| +To select more than 1 campaign, hold down the Ctrl key and click|Pour sélectionner plus de 1 campagne, maintenez la touche Ctrl enfoncée et cliquez sur| +CPD AMD Action -<\/B> If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED|CPD AMD Action - Si vous utilisez le Sangoma ParaXip Call Progress logiciel de détection, vous souhaitez activer ce paramètre, soit la mise à disposition DISPO qui l'appel comme AA et l'accrocher si l'appel est en cours de traitement et n'a pas été envoyée à un agent ou encore MESSAGE qui enverra l'appel à la définition Answering Machine Message pour cette campagne. La valeur par défaut est DISABLED| +CPD AMD Action:|CPD AMD Action:| +Click here for user multiple day status detail report|Cliquez ici pour l'utilisateur de plusieurs jours le statut de détails rapport| +Click here to download this list|Cliquez ici pour télécharger la liste| +Download Lists:|Listes de téléchargement:| +Active Asterisk Server -<\/B> If Asterisk is not running on this server, or if VICIDIAL should not be using this server, or if are only using this server for other scripts like the hopper loading script you would want to set this to N. Default is Y|Asterisk Active Server - Si Asterisk ne fonctionne pas sur ce serveur, ou si VICIDIAL ne devrait pas utiliser ce serveur, ou si seulement ce serveur en utilisant des scripts pour d'autres comme la trémie de chargement de script que vous souhaiteriez mettre à la N. La valeur par défaut est Y| +Generate conf files -<\/B> If you would like the system to auto-generate asterisk conf files based upon the phones entries, carrier entries and load balancing setup within VICIDIAL then set this to Y. Default is Y|Générer des fichiers de conf - Si vous souhaitez que le système d'auto-générer des fichiers de conf astérisque sur la base des entrées de téléphones, le transporteur et l'équilibrage de charge des entrées de configuration dans VICIDIAL puis mettre à la valeur par défaut est Y. Y| +Rebuild conf files -<\/B> If you want to force a rebuilding of the Asterisk conf files or if any of the phones or carrier entries have changed then this should be set to Y. After the conf files have been generated and Asterisk has been reloaded then this will be changed to N. Default is Y|Reconstruire les fichiers conf - Si vous voulez forcer une reconstruction de la conf Asterisk fichiers ou si l'une des entrées de porte ou les téléphones ont changé, alors ceci doit être réglé sur Y. Après la conf des fichiers ont été générés et Asterisk a été rechargée alors ce sera changée pour N. La valeur par défaut est Y| +Active Asterisk Server:|Active Server Asterisk:| +Generate conf files:|Générer des fichiers de conf:| +Rebuild conf files:|Reconstruire les fichiers de configuration:| +Show Templates|Afficher les modèles| +Add A New Template|Ajouter un nouveau modèle| +ADD NEW CONF TEMPLATE|ADD NEW CONF TEMPLATE| +ADD NEW CARRIER|ADD NEW CARRIER| +ADDING NEW CONF TEMPLATE|AJOUT DE NOUVEAUX CONF TEMPLATE| +ADDING NEW CARRIER|AJOUT DE NOUVEAUX CARRIER| +MODIFY CONF TEMPLATE|MODIFY CONF TEMPLATE| +MODIFY CARRIER|MODIFY CARRIER| +DELETE CONF TEMPLATE|DELETE CONF TEMPLATE| +DELETE CARRIER|DELETE CARRIER| +CONF TEMPLATE LIST|CONF TEMPLATE LISTE| +CARRIER LIST|CARRIER LISTE| +Template ID:|Template ID:| +Template Name:|Nom du modèle:| +Template Contents:|Template Sommaire:| +Carrier ID:|Carrier ID:| +Carrier Name:|Nom du transporteur:| +Registration String:|Inscription à cordes:| +Account Entry:|Entrée de compte:| +Protocol:|Protocole:| +Globals String:|Globals String:| +Dialplan Entry:|Dialplan Entrée:| +CONF TEMPLATE NOT ADDED|CONF TEMPLATE pas ajouté| +there is already a template in the system with this ID|il existe déjà un modèle dans le système avec cette ID| +CONF TEMPLATE ADDED|CONF TEMPLATE AJOUTÉS| +CARRIER NOT ADDED|CARRIER pas ajouté| +there is already a carrier in the system with this ID|il ya déjà un transporteur dans le système avec cette ID| +CONF TEMPLATE NOT MODIFIED|CONF TEMPLATE PAS mise à jour| +CARRIER NOT MODIFIED|CARRIER PAS mise à jour| +CARRIER MODIFIED|CARRIER mise à jour| +CONF TEMPLATE NOT DELETED|CONF TEMPLATE pas supprimé| +Template ID be at least 2 characters in length|Template ID être d'au moins 2 caractères| +CONF TEMPLATE DELETION CONFIRMATION|CONF TEMPLATE DELETION CONFIRMATION| +Click here to delete conf template|Cliquez ici pour supprimer le modèle de conf| +CARRIER NOT DELETED|CARRIER pas supprimé| +Carrier ID be at least 2 characters in length|Carrier ID être d'au moins 2 caractères| +CARRIER DELETION CONFIRMATION|SUPPRESSION DE SUPPORT DE CONFIRMATION| +Click here to delete carrier|Cliquez ici pour supprimer le transporteur| +CONF TEMPLATE DELETION COMPLETED|CONF TEMPLATE DELETION ACCOMPLIES| +CARRIER DELETION COMPLETED|CARRIER SUPPRESSION ACCOMPLIES| +MODIFY A CONF TEMPLATE RECORD|A MODIFIER CONF TEMPLATE RECORD| +DELETE THIS CONF TEMPLATE|SUPPRIMER CETTE CONF TEMPLATE| +MODIFY A CARRIER RECORD|MODIFIER UN SUPPORT D'ENREGISTREMENT| +DELETE THIS CARRIER|SUPPRIMER CETTE CARRIER| +CARRIERS WITHIN THIS SERVER|SUPPORTS DE CE SERVEUR| +CONF TEMPLATE LISTINGS|CONF TEMPLATE LISTAGES| +CARRIER LISTINGS|CARRIER LISTAGES| +PHONES USING THIS CONF TEMPLATE|PHONES UTILISANT CE CONF TEMPLATE| +CARRIERS USING THIS CONF TEMPLATE|SUPPORTS UTILISANT CE CONF TEMPLATE| +Conf Override:|Conf Override:| +Template ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the conf template throughout the system|Template ID - Ce champ doit être d'au moins 2 caractères et pas plus de 15 caractères, sans espaces. C'est l'identifiant qui sera utilisé pour identifier le modèle de configuration à travers le système| +Template Name -<\/B> This is the descriptive name of the conf file template entry|Nom du modèle - C'est le nom descriptif du modèle de fichier de configuration d'entrée| +Template Contents -<\/B> This field is where you can enter in the specific settings to be used by all phones and-or carriers that are set to use this conf template. Fields that should NOT be included in this box are: secret, accountcode, account, username and mailbox|Template Sommaire - Ce domaine est l'endroit où vous pouvez entrer dans les paramètres spécifiques pour être utilisés par tous les téléphones et / ou les transporteurs qui sont mis à utiliser ce modèle de conf. Les champs qui ne doivent PAS être inclus dans cette zone sont: le secret, accountcode, compte, nom d'utilisateur et boîte aux lettres| +Carrier ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the carrier for this specific entry throughout the system|Carrier ID - Ce champ doit être d'au moins 2 caractères et pas plus de 15 caractères, sans espaces. C'est l'identifiant qui sera utilisé pour identifier le transporteur pour cette entrée spécifique dans l'ensemble du système| +Carrier Name -<\/B> This is the descriptive name of the carrier entry|Nom du transporteur - C'est le nom descriptif de la porte d'entrée| +Registration String -<\/B> This field is where you can enter in the exact string needed in the IAX or SIP configuration file to register to the provider. Optional but highly recommended if your carrier allows registration|Inscription String - Ce domaine est l'endroit où vous pouvez entrer dans la chaîne exacte nécessaire dans le IAX ou SIP pour enregistrer le fichier de configuration pour le fournisseur. Facultatif mais fortement recommandé si votre opérateur permet l'enregistrement| +Template ID -<\/B> This optional field allows you to choose a conf file template for this carrier entry|Template ID - Ce champ facultatif permet de choisir un modèle de fichier de conf de ce transporteur entrée| +Account Entry -<\/B> This field is used if you have not selected a template to use, and it is where you can enter in the specific account settings to be used for this carrier|Compte Entrée - Ce champ est utilisé si vous n'avez pas choisi un modèle à utiliser, et c'est là où vous pouvez entrer dans les paramètres du compte à utiliser pour ce transporteur| +Protocol -<\/B> This field allows you to define the protocol to use for the carrier entry. Currently only IAX and SIP are supported|Protocole - Ce domaine vous permet de définir le protocole à utiliser pour le transporteur d'entrée. Actuellement, seuls SIP et IAX sont soutenus| +Globals String -<\/B> This optional field allows you to define a global variable to use for the carrier in the dialplan|Globals String - Ce champ facultatif permet de définir une variable globale à utiliser pour le transporteur de la dialplan| +Dialplan Entry -<\/B> This optional field allows you to define a set of dialplan entries to use for this carrier|Entrée Dialplan - Ce champ facultatif permet de définir un ensemble de dialplan entrées à utiliser pour ce transporteur| +Server IP -<\/B> This is the server that this specific carrier record is associated with|Server IP - Il s'agit du serveur que ce support est associé à enregistrer| +Active -<\/B> This defines whether the carrier will be included in the auto-generated conf files or not|Active - Cela définit si le transporteur sera inclus dans l'auto-générés ou non les fichiers conf| +Conf Override Settings -<\/B> If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated|Conf Override Settings - Si peuplée, et le modèle est fixé à ID - ABSENCE -, alors le contenu de ce champ sont utilisés comme des entrées de fichier de configuration pour ce téléphone. generate_vicidial_conf téléphones pour ce serveur doit être réglé sur Y pour que cela fonctionne. Ce champ ne doit pas contenir de l'[extension] en ligne, qui sera généré automatiquement| +Template ID -<\/B> This is the conf file template ID that this phone entry will use for its Asterisk settings. Default is --NONE--|Template ID - C'est le fichier de conf ID que ce modèle de téléphone utilisé pour la saisie des paramètres de son Asterisk. La valeur par défaut est - ABSENCE --| +If you will be taking in inbound calls from this carrier trunk you might want to set the context=trunkinbound within this field so that you can use the DID handling process within VICIDIAL|Si vous prenez en appels entrants à partir de ce transporteur tronc, vous pouvez définir le contexte = trunkinbound dans ce domaine, de sorte que vous pouvez utiliser le processus de traitement des DID dans VICIDIAL| +There is a reserved default DID that you can use which is just the word -default- without the dashes, that will allos you to send any call that does not match any other existing patterns to the default DID|Il est réservé par défaut DID que vous pouvez utiliser ce qui est juste le mot-par défaut, sans les tirets, qui allos d'envoyer tout appel qui ne correspond pas à tout les autres modèles de la valeur par défaut de DID| +Campaign VDAD extension|Campagne VDAD extension| +This field allows for a custom VDAD transfer extension. This allows you to use different call handling methods depending upon your campaign.|Ce champ permet une coutume VDAD transfert extension. Cela vous permet d'utiliser différentes méthodes de traitement des appels en fonction de votre campagne.| + - 8364 - same as 8368|- 8364 - même que 8368| + - 8365 - Will send the call only to an agent on the same server as the call is on|- 8365 - Will seulement envoyer l'appel à un agent sur le même serveur que l'appel est en| + - 8366 - Used for press-1 and survey campaigns|- 8366 - Occasions-1 pour la presse et campagnes de sondage| + - 8367 - Will try to first send the call to an agent on the local server, then it will look on other servers|- 8367 - Le premier à essayer d'envoyer l'appel à un agent sur le serveur local, il se penchera sur d'autres serveurs| + - 8368 - DEFAULT – Will send the call to the next available agent no matter what server they are on|- 8368 - DEFAULT? Envoie l'appel à la prochaine agent quel que soit le serveur, ils sont sur| + - 8369 - Used for Answering Machine Detection after that, same behavior as 8368|- 8369 - Occasions de Answering Machine de détection après que, même comportement que 8368| + - 8373 - Used for Answering Machine Detection after that same behavior as 8366|- 8373 - Occasions de Answering Machine de détection après cette même comportement que 8366| +Also in this section are the WEB VARs for each campaign. These allow each agent to have a different variable string that can be added to the WEB FORM or SCRIPT tab URLs by simply putting --A--web_vars--B-- as you would put any other field.|Également dans cette section sont le WEB VAR pour chaque campagne. Il s'agit de permettre à chaque agent d'avoir une autre variable de chaîne qui peuvent être ajoutés à la fiche de Web ou SCRIPT onglet URL, simplement en mettant - A - web_vars - B - comme vous le mettre dans tout autre domaine.| +Group Alias List|Groupe Alias Liste| +Add A New Group Alias|Ajouter un nouveau groupe Alias| +ADD NEW GROUP ALIAS|ADD NEW GROUP ALIAS| +ADDING NEW GROUP ALIAS|AJOUT DE NOUVEAU GROUPE ALIAS| +MODIFY GROUP ALIAS|Modifier un groupe ALIAS| +DELETE GROUP ALIAS|DELETE GROUP ALIAS| +GROUP ALIAS LIST|GROUPE ALIAS LISTE| +GROUP ALIAS LISTINGS|GROUPE ALIAS LISTAGES| +MODIFY A GROUP ALIAS RECORD|Modifier un groupe ALIAS RECORD| +Group Alias ID|Alias Groupe ID| +Group Alias Name|Nom du groupe Alias| +CallerID Number|Nombre CallerID| +CallerID Name|CallerID Nom| +DELETE THIS GROUP ALIAS|Supprimer ce groupe ALIAS| +GROUP ALIAS NOT MODIFIED|GROUPE ALIAS PAS mise à jour| +GROUP ALIAS MODIFIED|GROUPE ALIAS mise à jour| +ADD A NEW GROUP ALIAS|Ajouter un nouveau groupe ALIAS| +MODIFY A GROUP ALIAS RECORD|Modifier un groupe ALIAS RECORD| +GROUP ALIAS NOT ADDED|GROUPE ALIAS pas ajouté| +GROUP ALIAS ADDED|GROUPE ALIAS AJOUTÉS| +GROUP ALIAS NOT DELETED|GROUPE ALIAS pas supprimé| +GROUP ALIAS DELETION CONFIRMATION|GROUPE ALIAS DELETION CONFIRMATION| +Click here to delete group alias|Cliquez ici pour supprimer le groupe alias| +GROUP ALIAS DELETION COMPLETED|GROUPE ALIAS DELETION ACCOMPLIES| +Group Alias ID -<\/B> The ID of the group alias used by agents to dial out calls from the VICIDIAL agent interface with different Caller IDs. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Alias Groupe ID - L'ID du groupe alias utilisés par les agents de composer les appels de l'agent VICIDIAL interface avec différents Caller ID. pas d'espaces ou autres caractères spéciaux autorisés. Doit être compris entre 2 et 20 caractères de longueur| +Group Alias Name -<\/B> The name used to describe a group alias, Must be between 2 and 50 characters in length|Nom du groupe Alias - Le nom utilisé pour décrire un groupe d'emprunt, doit être compris entre 2 et 50 caractères de longueur| +Caller ID Number -<\/B> The Caller ID number used in this Group Alias. Must be digits only|Numéro d'identification de l'appelant - Le numéro d'identification de l'appelant utilisée dans ce groupe Alias. Chiffres doivent être| +Caller ID Name -<\/B> The Caller ID name that can be sent out with this Group Alias. As far as we know this will only work in Canada on PRI circuits and using an IAX loop trunk through Asterisk|Nom d'identification de l'appelant - Le nom d'identification de l'appelant qui peut être envoyé à ce groupe Alias. Pour autant que nous sachions ce qui ne fera que travailler au Canada sur les circuits PRI et l'utilisation d'un tronc IAX boucle par Asterisk| +Group Alias Allowed -<\/B> If you want to allow your agents to use group aliases then you need to set this to Y. Group Aliases are explained more in the Admin section, they allow agents to select different callerIDs for outbound manual calls that they may place. Default is N|Groupe Alias Admis - Si vous souhaitez permettre à vos agents d'utiliser les alias de groupe, vous devez mettre à Y. alias Groupe sont expliqués plus en section administrative, ils permettent de sélectionner différents agents callerIDs manuel pour les appels sortants qu'ils mai place. La valeur par défaut est N| +Default Group Alias -<\/B> If you have allowed Group Aliases then this is the group alias that is selected first by default when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Groupe par défaut Alias - Si vous avez permis à ce groupe Alias est l'alias du groupe qui est sélectionné en premier par défaut lorsque l'agent choisit d'utiliser un alias pour un groupe émetteur manuel appel. La valeur par défaut est None ou vide| +Default Group Alias -<\/B> If you have allowed Group Aliases for the campaign that the agent is logged into then this is the group alias that is selected first by default on a call coming in from this inbound group when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Groupe par défaut Alias - Si vous avez permis à Groupe Alias pour la campagne que l'agent est entré dans ce groupe est l'alias qui est sélectionnée par défaut sur la première d'un appel provenant de l'arrivée de ce groupe quand l'agent choisit de utiliser un alias pour un groupe émetteur manuel appel. La valeur par défaut est None ou vide| +Group Alias Allowed|Groupe Alias permis| +Default Group Alias|Groupe par défaut Alias| +AGENT_CHOOSE allows the agent to choose which callerID to use for 3-way calls from a list of choices.|AGENT_CHOOSE permet de choisir l'agent qui CallerID à utiliser pour les 3-way appels à partir d'une liste de choix.| +you cannot use reserved words in group aliases|vous ne pouvez pas utiliser des mots réservés dans le groupe des alias| +Agent Shift Enforcement Override|Agent de l'exécution Shift Override| +Manager Shift Enforcement Override|Shift Manager exécution Override| +Shift Enforcement|Shift exécution| +Max Calls per Second|Max demande par seconde| +Max FILL Calls per Second|Max REMPLISSAGE demande par seconde| +This setting will override whatever the users user group has set for Shift Enforcement. DISABLED will use the user group setting. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is DISABLED.|Ce paramètre remplace les utilisateurs quel que soit le groupe d'utilisateurs a mis en application de la loi pour Maj. HANDICAPES utilise l'utilisateur groupe. OFF ne fera pas appliquer à tous les changements. START ne faire respecter les temps de connexion, mais n'aura pas d'incidence sur un agent qui est en cours d'exécution sur leurs heures de travail si elles sont déjà logged in ALL appliquent passer l'heure de début et se connecter à un agent, après, ils courent sur la fin de leur quart de temps. La valeur par défaut est désactivé.| +This setting if set to 1 will allow a manager to enter their user and password on an agent screen to override the shift restrictions on an agent session if the agent is trying to log in outside of their shift. Default is 0.|Ce paramètre, s'il est à 1 permettra d'entrer dans un gestionnaire d'utilisateur et leur mot de passe sur l'écran d'un agent pour l'emporter sur l'évolution des restrictions sur un agent de la session si l'agent essaie de se connecter à l'extérieur de leur quart de travail. La valeur par défaut est 0.| +This setting allows you to restrict agent logins based upon the shifts that are selected below. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is OFF.|Ce paramètre vous permet de restreindre l'agent de connexion sur la base des changements qui ont été sélectionnés ci-dessous. OFF ne fera pas appliquer à tous les changements. START ne faire respecter les temps de connexion, mais n'aura pas d'incidence sur un agent qui est en cours d'exécution sur leurs heures de travail si elles sont déjà logged in ALL appliquent passer l'heure de début et se connecter à un agent, après, ils courent sur la fin de leur quart de temps. La valeur par défaut est OFF.| +This setting determines the maximum number of calls that can be placed by the outbound auto-dialing script on this server per second. Must be from 1 to 100. Default is 20.|Ce paramètre détermine le nombre maximum d'appels qui peuvent être mis par la sortie d'auto-script d'appel sur ce serveur par seconde. Doit être de 1 à 100. La valeur par défaut est 20.| +This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40.|Ce paramètre détermine le nombre maximum d'appels qui peuvent être placés par les auto-FILL sortie d'auto-script de numérotation pour tous les serveurs, par seconde. Doit être de 1 à 200. La valeur par défaut est 40.| +System Load|Système de charge| +Live Channels|Live Chaînes| +Disk Usage|Disk Usage| +These two statistics show the loadavg of a system times 100 and the CPU usage percentage of the server and is updated every minute. The loadavg should on average be below 100 multiplied by the number of CPU cores your system has, for optimal performance. The CPU usage percentage should stay below 50 for optimal performance.|Ces deux statistiques montrent loadavg la fois d'un système 100 et le pourcentage d'utilisation CPU du serveur et est mis à jour chaque minute. Le loadavg devrait être en moyenne inférieure à 100 multiplié par le nombre de noyaux de CPU de votre système a, pour des performances optimales. Le pourcentage d'utilisation CPU devrait rester en dessous de 50 pour une performance optimale.| +This field shows the current number of Asterisk channels that are live on the system right now. It is important to note that the number of Asterisk channels is usually much higher than the number of actual calls on a system. This field is updated once every minute.|Ce champ indique le nombre actuel d'Asterisk canaux qui sont en direct sur le système dès maintenant. Il est important de noter que le nombre de canaux Asterisk est habituellement beaucoup plus élevé que le nombre d'appels sur un système. Ce champ est mis à jour une fois chaque minute.| +This field will show the disk usage for every partition on this server. This field is updated once every minute.|Ce champ montre l'utilisation du disque pour chaque partition sur ce serveur. Ce champ est mis à jour une fois chaque minute.| +ADMIN CHANGE LOG|ADMIN CHANGE LOG| +USER ADMIN CHANGE LOG|UTILISATEUR ADMIN CHANGE LOG| +SECTION ADMIN CHANGE LOG|SECTION ADMIN CHANGE LOG| +DETAIL ADMIN CHANGE LOG|DETAIL ADMIN CHANGE LOG| +Last 10000 records|Mise à 10.000 dossiers| +Changes made by|Les modifications apportées par| +Record Detail|Record Detail| +Section Records|Section Records| +Click here to see Admin chages to this record|Cliquez ici pour voir Admin chages à ce record| +Click here to see Admin chages to this campaign|Cliquez ici pour voir Admin chages à cette campagne| +Click here to see Admin chages to this list|Cliquez ici pour voir Admin chages à cette liste| +Click here to see Admin chages to this In-Group|Cliquez ici pour voir Admin chages à ce groupe en| +Click here to see Admin chages to this DID|Cliquez ici pour voir Admin chages à ce DID| +Click here to see Admin chages to this remote agent|Cliquez ici pour voir Admin chages à cette télécommande agent| +Click here to see Admin chages to this user group|Cliquez ici pour voir Admin chages à ce groupe d'utilisateurs| +Click here to see Admin chages to this script|Cliquez ici pour voir Admin chages de ce script| +Click here to see Admin chages to this filter|Cliquez ici pour voir Admin chages à ce filtre| +Click here to see Admin chages to this call time|Cliquez ici pour voir Admin chages à ce temps de garde| +Click here to see Admin chages to this shift|Cliquez ici pour voir Admin chages à ce changement| +Click here to see Admin chages to this phone alias|Cliquez ici pour voir Admin chages à ce téléphone alias| +Click here to see Admin chages to this group alias|Cliquez ici pour voir Admin chages à ce groupe alias| +Click here to see Admin chages to this server|Cliquez ici pour voir Admin chages à ce serveur| +Click here to see Admin chages to this conf template|Cliquez ici pour voir Admin chages à ce modèle de conf| +Click here to see Admin chages to this carrier|Cliquez ici pour voir Admin chages à ce transporteur| +Click here to see Admin chages to the system settings|Cliquez ici pour voir Admin chages pour les réglages du système| +Export Reports|Rapports d'exportation| +This setting if set to 1 will allow a manager to access the export call reports on the REPORTS screen. Default is 0.|Ce paramètre, s'il est à 1 permettra d'accéder à un gestionnaire de l'exportation des rapports sur l'appel RAPPORTS écran. La valeur par défaut est 0.| +This setting if set to 1 will allow a manager to click on the download list link at the bottom of a list modification screen to export the entire contents of a list to a flat data file. Default is 0.|Ce paramètre, s'il est à 1 permet à un gestionnaire de téléchargement, cliquez sur le lien de la liste au bas de l'écran de modification d'une liste d'exporter la totalité du contenu d'une liste de données à un fichier plat. La valeur par défaut est 0.| +Export Calls Report|Appels d'exportation Rapport| +EXPORT CALLS REPORT|EXPORTATION DE RAPPORT ENGAGE| +For the Export Calls Report, the following field order is used for exports|Pour le rapport invite l'exportation, l'ordre suivant est utilisé pour les exportations| +Timeclock|Horloge en temps| +Logout|Logout| +Show Users|Voir les utilisateurs| +Add A New User|Ajouter un nouvel utilisateur| +Search For A User|Rechercher un utilisateur| +User Stats|Statistiques utilisateur| +User Status|User Status| +Time Sheet|Feuille de temps| +Days Status|Jours Etat| +Campaigns Main|Campagnes principale| +Statuses|Statuts| +HotKeys|HotKeys| +Lead Recycle|Recyclage Plomb| +Auto Alt-Dial|Auto Alt-Dial| +Auto Alt Dial|Auto Alt Dial| +List Mix|Liste Mix| +Pause Codes|Pause Codes| +Basic|Basic| +Detail|Détail| +Survey|Sondage| +Real-Time|Real-Time| +CAMPAIGN ID|CAMPAIGN ID| +DIAL PLAN|DIAL PLAN| +DIAL METHOD|DIAL PROCEDE| +LEADS COUNT|ABOUTIT COUNT| +LEAD ORDER|RESPONSABLE DE COMMANDE| +DIAL STATUSES|DIAL STATUTS| +SCRIPT ID|SCRIPT ID| +SCRIPT NAME|Nom du script| +USER GROUP|GROUPE D'UTILISATEURS| +GROUP NAME|GROUP NAME| +PRIORITY|PRIORITÉ| +FORCE TIMECLOCK|Force timeclock| +CALLTIME ID|CALLTIME ID| +CALLTIME NAME|CALLTIME NOM| +DEFAULT START|Démarrage par défaut| +DEFAULT STOP|DEFAULT STOP| +SHIFT ID|SHIFT ID| +SHIFT NAME|SHIFT NOM| +SHIFT START|SHIFT START| +SHIFT LENGTH|SHIFT LONGUEUR| +WEEKDAYS|SEMAINE| +Template ID|Template ID| +Template Name|Nom du modèle| +Carrier ID|Carrier ID| +Carrier Name|Nom du transporteur| +Registration|Inscription| +Active|Active| +USER ID|USER ID| +FULL NAME|FULL NAME| +LEVEL|NIVEAU| +LINKS|LIENS| +TRUNKS|Malles| +HUMAN|L'HOMME| +ANSWER|REPONSE| +CATEGORY|CATÉGORIE| +STATUSES IN THIS CATEGORY|STATUTS DE CETTE CATEGORIE| +Display|Afficher| +Dates|Dates| +PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK|S'IL VOUS PLAÎT Sélectionnez une campagne ou groupe d'utilisateurs-HEURE ET DATE ET CLIQUEZ CI-DESSUS| +PLEASE SELECT A USER AND DATE-TIME ABOVE AND CLICK|S'IL VOUS PLAÎT CHOISIR UN UTILISATEUR ET DATE EN TEMPS ET CLIQUEZ CI-DESSUS| +PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK|S'IL VOUS PLAÎT CHOISIR UNE CAMPAGNE ET DATE EN TEMPS ET CLIQUEZ CI-DESSUS| +PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT|S'IL VOUS PLAÎT CHOISIR UN GROUPE EN DATE ET-dessus et cliquez sur Soumettre| +DOWNLOAD|TÉLÉCHARGER| +Users|Utilisateurs| +User|Utilisateur| +Reports|Rapports| +OUTBOUND|SORTANT| +INBOUND|ENTRANT| +Server Stats and Reports|Stats Reports Server et| +Click here to see a VDAD report for this campaign|Cliquez ici pour voir une VDAD rapport de cette campagne| +Show DIDs|Voir DiDs| +Add A New DID|Ajouter une nouvelle DID| +Templates|Modèles| +Carriers|Carriers| +Carrier Name|Nom du transporteur| +Click here to see all CallBack Holds in this user group|Cliquez ici pour voir tous les CallBack Détient dans ce groupe d'utilisateurs| +Click here to see all CallBack Holds in this list|Cliquez ici pour voir tous les CallBack Détient dans cette liste| +Click here to see a report for this inbound group|Cliquez ici pour voir un rapport de ce groupe d'entrants| +Click here to Synchronize users with Vtiger|Cliquez ici pour synchroniser les utilisateurs avec Vtiger| +Alert Enabled|Alerte Enabled| +Change Date|Changement Date| +Login Date|Login Date| +List Last Call Date|Liste Date Last Call| +Phone Code Override|Téléphone Code Override| +GROUP ALIAS ID|ALIAS ID GROUP| +GROUP ALIAS NAME|GROUPE NOM ALIAS| +CID NUMBER|CID NUMÉRO| +CID NAME|CID NOM| +PHONE ALIAS|PHONE ALIAS| +ALIAS ID|ALIAS ID| +ALIAS NAME|Alias| +PHONE LOGINS LIST|TÉLÉPHONE LISTE Connexions| +Shift Length|Longueur Shift| +short description of the shift|brève description de l'évolution| +DELETE THIS SERVER|SUPPRIMER CE SERVEUR| +DELETE THIS CONFERENCE|SUPPRIMER CETTE CONFERENCE| +DELETE THIS VICIDIAL CONFERENCE|SUPPRIMER CETTE CONFERENCE VICIDIAL| +Install Date|Date d'installation| +Human Answer|Réponse de l'homme| +STATUS CATEGORIES|ÉTAT CATEGORIES| +per campaign|par campagne| +all campaigns|toutes les campagnes| +### START translations for 2.2.0 release ### +Delete From DNC Lists|Supprimer From Lists DNC| +This setting if set to 1 will allow a manager to remove phone numbers from the DNC lists in the VICIDIAL system|Ce paramètre si la valeur 1 permettra à un manager pour supprimer des numéros de téléphone dans les listes du DNC dans le système VICIDIAL| +DNC NOT DELETED|DNC pas supprimé| +This phone number is not in the Do Not Call List|Ce numéro de téléphone n-est pas dans la Do Not Call List| +DNC DELETED|DNC SUPPRIMÉ| +ADD OR DELETE NUMBERS FROM THE DNC LIST|AJOUTER OU SUPPRIMER LES NUMEROS DE LA LISTE DNC| +Add or Delete|Ajouter ou Supprimer| +Add-Delete Number From DNC|Ajouter-Supprimer numéro Du DNC| +Vtiger Search Dead Accounts|Vtiger Recherche Dead Comptes| +If Vtiger integration is enabled in the system settings then this setting will define whether deleted accounts will be searched when the agent clicks WEB FORM to search in the Vtiger system. DISABLED- deleted leads will not be searched, ASK- deleted leads will be searched and the vtiger search web page will ask the agent if they want to make the Vtiger account active, RESURRECT- will automatically make the deleted account active again and will take the agent to the account screen without delay upon clicking on WEB FORM. Default is DISABLED|Si Vtiger intégration est activée dans les paramètres du système, puis, cette option détermine si les comptes supprimés sera recherché lorsque l-agent clics WEB forme pour chercher dans le système de Vtiger. Handicapés conduit supprimés ne seront pas cherché, ASK-deleted conduit seront recherchés et la page de recherche vtiger web demandera à l-agent si ils veulent faire le compte Vtiger active, ressusciter-rend automatiquement le compte supprimé de nouveau active et elle prendra les agent à l-écran de compte sans tarder et à cliquer sur un formulaire Web. Par défaut est Disabled| +The DISPO option will create a call record for the Vtiger account without the agent needing to go to the vtiger search page through the WEB FORM|L-option DISPO créera un enregistrement d-appel pour le compte Vtiger sans que l-agent ayant besoin d-aller à la page de recherche vtiger Via le formulaire web| +The NEW_WINDOW option will open a new window upon login to the VICIDIAL agent screen|L-option new_window ouvrira une nouvelle fenêtre lors de sa connexion à l-écran de l-agent VICIDIAL| +Vtiger Status Call|Vtiger état des appels| +If Vtiger integration is enabled in the system settings then this setting will define whether the status of the Vtiger Account will be updated with the status of the VICIDIAL call after it has been dispositioned. Default is N|Si Vtiger intégration est activée dans les paramètres du système, puis utilisez ce paramètre pour définir si la situation du compte Vtiger sera mis à jour avec le statut de l-appel VICIDIAL après qu-il a été dispositioned. Par défaut est n| +There are also 5 additional settings that will define the kind of status: sale, dnc, customer contact, not interested, unworkable|Il ya également 5 autres paramètres qui définiront le type de statut: vente, DNC, contact client, pas intéressé, impossible| +If the customer is on hold and hears this estimated hold time message, the minimum time that will be played is 15 seconds|Si le client est en attente et entend ce message d-estime détenir le temps, le temps minimum qui sera jouée est de 15 secondes| +Email, User Code and Territory|Courrier électronique, code utilisateur et territoire| +These are optional fields|Ce sont des champs optionnels| +All options except for the Not Interested, Third and Fourth digit options will move on to the Survey Method call path|Toutes les options à l-exception des pas intéressé, troisième et quatrième options chiffre passera à la voie des appels de méthode Enquête| +Survey Third Digit|Enquête sur le troisième chiffre| +This allows for a third call path if the Third digit as defined in this field is pressed by the customer|Cela permet un chemin d-appel tiers si le troisième chiffre tel que défini dans ce domaine est pressé par le client| +Survey Fourth Digit|Enquête quatrième chiffre| +This allows for a fourth call path if the Fourth digit as defined in this field is pressed by the customer|Cela permet pour un chemin quatrième appel si la quatrième chiffres comme définis dans ce domaine est pressé par le client| +Survey Third Audio File|Troisième enquête sur Fichier Audio| +Survey Fourth Audio File|Quatrième étude Fichier Audio| +This is the third audio file to be played upon the selection by the customer of the Third Digit option|Ceci est le fichier audio troisième à être joué sur le choix par le client de l-option de troisième chiffre| +Survey Third Status|Troisième enquête Etat| +Survey Fourth Status|Quatrième enquête sur l-état| +This is the third status used for the call upon the selection by the customer of the Third Digit option|C-est le statut de troisième utilisés pour l-appel lancé à la sélection par le client de l-option de troisième chiffre| +Survey Third Extension|Enquête Troisième prorogation| +Survey Fourth Extension|Quatrième enquête Extension| +This is the third extension used for the call upon the selection by the customer of the Third Digit option. Default is 8300 which immediately hangs up the call after the Audio File message is played|Il s-agit de la troisième extension utilisé pour l-appel sur le choix par le client de l-option de troisième chiffre. Par défaut est 8300, qui se bloque immédiatement à l-appel après que le message audio du fichier est joué| +RANDOM: Randomly grabs lead within the statuses and lists defined|RANDOM: Hasard s-empare de plomb dans les statuts et listes définies| +UP LAST CALL TIME: Sorts by the newest local call time for the leads|UP LAST CALL TIME: Trie par la nouvelle durée d-un appel local pour le conduit| +DOWN LAST CALL TIME: Sorts by the oldest local call time for the leads|DOWN LAST CALL TIME: Trie par le doyen des temps d-appel local pour le conduit| +WARNING, we only recommend List Mix for advanced users, Please read the ViciDial Manager Manual|ATTENTION, nous recommandons que la liste Mix pour les utilisateurs avancés, S-il vous plaît lire le manuel VICIDIAL Manager| +Add Call Menu|Ajouter un appel Menu| +Copy Call Menu|Copiez Call Menu| +New Call Menu|Nouvel appel Menu| +Modify Call Menu|Modifier menu d-appel| +Delete Call Menu|Supprimer menu d-appel| +Call Menus|Appel Menus| +Menu ID|Menu ID| +This is the ID for this step of the call menu. This will also show up as the context that is used in the dialplan for this call menu|Ceci est l-ID pour cette étape du menu d-appel. Ce sera également visible selon le contexte qui est utilisée dans le plan de numérotation pour cet appel menu| +Menu Name|Nom du menu| +This field is the descriptive name for the call menu|Ce champ est le nom descriptif pour le menu d-appel| +Menu Prompt|Menu rapide| +This field contains the file name of the audio prompt to play at the beginning of this menu|Ce champ contient le nom du fichier audio de l-invite à jouer au début de ce menu| +Menu Timeout|Menu Timeout| +This field is where you set the timeout in seconds that the menu will wait for the caller to enter in a DTMF choice|Ce champ est l-endroit où vous définissez le délai en secondes que le menu va attendre que l-appelant à entrer dans un choix DTMF| +Menu Timeout Prompt|Menu prompt timeout| +This field contains the file name of the audio prompt to play when the timeout has been reached. Default is NONE to play no audio at timeout|Ce champ contient le nom du fichier audio de l-invite à jouer lorsque le délai d-attente a été atteint. AUCUNE par défaut est de ne jouer aucune audio à temporisation| +Menu Invalid Prompt|Menu Blancs Prompt| +This field contains the file name of the audio prompt to play when the caller has selected an invalid option. Default is NONE to play no audio at invalid|Ce champ contient le nom du fichier audio de l-invite à jouer lorsque l-appelant a choisi une option non valide. AUCUNE par défaut est de ne jouer aucune audio à invalide| +Menu Repeat|Menu Répétez| +This field is where you define the number of times that the menu will play after the first time if no valid choice is made by the caller. Default is 1 to repeat the menu once|Ce champ est l-endroit où vous définissez le nombre de fois que le menu sera joué après la première fois si aucun choix valide est faite par l-appelant. Par défaut est de 1 à répéter le menu une fois| +Menu Time Check|Menu Heure Départ| +This field is where you can select whether to restrict the Call Menu access to the specific hours set up in the selected Call Time. If the Call Time is blank, this setting will be ignored. Default is 0 for disabled|Ce champ est l-endroit où vous pouvez choisir de restreindre l-accès au menu d-appel des heures spécifiques mis en place à l-heure choisie Call. Si le temps d-appel est vide, ce paramètre sera ignoré. Par défaut est 0 pour les handicapés| +Call Time ID|Call Time ID| +This is the Call Time ID that will be used to restrict calling times if the Menu Time Check option is enabled|C-est l-appel Heure ID qui sera utilisé pour restreindre fois appelant si le menu Heure option Vérifier est activée| +Track Calls in Real-Time Report|Le suivi des appels dans Real-Time Report| +This field is where you can select whether you want the call to be tracked in the Real-time screen as an incoming IVR type call. Default is 1 for active|Ce champ est l-endroit où vous pouvez choisir si vous voulez l-appel à être suivis dans l-écran en temps réel comme un appel entrant RVI type. Par défaut est 1 pour actifs| +Option Value|Valeur d-option| +This field is where you define the menu option, possible choices are|Ce champ est l-endroit où vous définissez l-option de menu, les choix possibles sont| +Option Route|Option Itinéraire| +This menu contains the options for where to send the call if this option is selected|Ce menu contient les options pour savoir où envoyer l-appel si cette option est sélectionnée| +The special option TIMECHECK can be used only if you have Menu Time Check enabled and there is a Call Time defined for the Menu|Le timecheck option spéciale peut être utilisée que si vous avez menu Heure Départ activé et il ya un temps d-appel définis pour le menu| +Option Route Value|Valeur option Itinéraire| +This field is where you enter the value that defines where in the selected Option Route that the call is to be directed to|Ce champ est l-endroit où vous entrez la valeur qui désigne l-endroit du choisis option de route que l-appel doit être dirigé vers| +Option Route Value Context|Option Itinéraire valeur de contexte| +This field is optional and only used for EXTENSION Option Routes|Ce champ est optionnel et utilisé uniquement pour l-option Itinéraires EXTENSION| +ADD A NEW CALL MENU|PROPOSER UN NOUVEL APPEL MENU| +COPY CALL MENU|COPY CALL MENU| +This menu contains the options for where to send the call if this option is selected: CALLMENU,INGROUP,DID,HANGUP,EXTENSION,PHONE. For CALLMENU, the Route Value should be the Menu ID of the Call Menu that you want the call sent to. For INGROUP, the In-Group that you want the call to be sent to needs to be selected as well as the other 5 options that need to be set to properly route a call to an Inbound Group. For DID, the Route Value needs to be the DID pattern that you want to send the call to. For HANGUP, the Route Value can be the name of an audio file to play before hanging up the call. For EXTENSION, the Route Value needs to be the dialplan extension you want to send the call to, and the Route Value Context is the context that extension is located in, if left blank the context will default to default. For PHONE, the Route Value needs to be the phone login value for the phones entry that you want to send the call to. For VOICEMAIL, the Route Value needs to be the voicemail box number, the unavailable mesage will be played. For AGI, the Route Value needs to be the agi script and any values taht need to be passed to it.|Ce menu contient les options pour savoir où envoyer l-appel si cette option est sélectionnée: CALLMENU, endogroupe, DID, HANGUP, EXTENSION, téléphone. Pour CALLMENU, la valeur de marche doit être l-ID du menu d-appel que vous voulez que l-appel adressé à. Pour endogroupe, l-en-groupe que vous voulez que l-appel doit être envoyé aux besoins d-être sélectionnée ainsi que les 5 autres options qui restent à être mis à bien acheminer un appel à un groupe d-entrants. Pour DID, la valeur de route doit être le modèle de DID que vous voulez envoyer l-appel. Pour HANGUP, la valeur de la Route peut être le nom d-un fichier audio à jouer avant de raccrocher l-appel. Par extension, la qualité route doit être l-extension plan de numérotation que vous souhaitez envoyer l-appel à, et la route de valeur de contexte est le contexte que l-extension est situé dans, s-il est laissé en blanc le contexte par défaut par défaut. Pour le téléphone, la valeur de route doit être la valeur de connexion de téléphone pour les téléphones d-entrée que vous voulez envoyer l-appel. Pour la messagerie vocale, la Value itinéraire doit être le numéro de boîte vocale, le mesage non disponible sera joué. Pour AGI, la valeur de route doit être le script AGI et toutes les valeurs qui doivent être transmis à elle.| +Option Description|Option Description| +This field is where you can describe the option, this description will be put into the dialplan as a comment above the option|Ce champ est l-endroit où vous pouvez décrire l-option, cette description sera mis dans le plan de numérotation en tant que commentaire dessus de l-option| +Source Menu|Menu Source| +CALL MENU NOT ADDED|CALL MENU SANS ADDITION| +Call Menu ID must be between 2 and 50 characters in length and contain no|Appel menu ID doit être comprise entre 2 et 50 caractères de long et ne contiennent aucune| +CALL MENU ADDED|CALL MENU AJOUTEE| +CALL MENU NOT MODIFIED|CALL MENU PAS MODIFIÉ| +CALL MENU MODIFIED|CALL MENU mise à jour| +Click here to see Admin chages to this CALL MENU|Cliquez ici pour voir chages Admin à ce menu d-appel| +DELETE THIS CALL MENU|SUPPRIMER CETTE CALL MENU| +MODIFY A CALL MENU RECORD|MODIFIER UN APPEL Record menu| +Time Check|Time Check| +No Time Check|No Time Check| +Realtime Tracking|Suivi en temps réel| +No Realtime Tracking|Aucun traçage en temps réel| +Call Menu Options|Appel du menu Options| +Option|Option| +CALL MENU NOT DELETED|CALL MENU pas supprimé| +CALL MENU DELETION CONFIRMATION|CALL MENU DE SUPPRESSION DE CONFIRMATION| +Click here to delete CALL MENU|Cliquez ici pour supprimer CALL MENU| +CALL MENU DELETION COMPLETED|APPEL menu de suppression REMPLI| +CALL MENU LISTINGS|CALL MENU LISTINGS| +CALLMENU will send the call to the defined Call Menu|CALLMENU allez envoyer l-appel vers le menu Appel définie| +Call Menu|Appel du menu| +If CALLMENU is selected as the DID Route, then this is the Call Menu that calls will be sent to|Si CALLMENU est sélectionné comme la Route de DID, alors c-est le menu d-appel que les appels seront envoyés aux| +Show Call Menus|Afficher Call Menus| +Add A New Call Menu|Ajouter un nouveau menu d-appel| +Copy Call Menu|Copiez Call Menu| +To delete an Option, just set the Route to REMOVE and the option will be deleted when you click the SUBMIT button|Pour supprimer une option, vient de mettre la route pour supprimer et l-option sera supprimée lorsque vous cliquez sur le bouton ENVOYER| +Agent Only Callback Campaign Lock|Agent Only Lock Campagne de rappel| +This option defines whether AGENTONLY callbacks are locked to the campaign that the agent originally created them under. Setting this to 1 means that the agent can only dial them from the campaign they were set under, 0 means that the agent can access them no matter what campaign they are logged into. Default is 1|Cette option définit si rappels AGENTONLY sont enfermés à la campagne que l-agent a initialement créé sous. Mettre ce paramètre à 1 signifie que l-agent ne peut les composer dans la campagne, ils ont été définies sous, 0 signifie que l-agent peut y accéder quel que campagne, ils sont connecté. Par défaut est 1| +Central Sound Control Active|Central Sound Control Active| +This option defines whether the sound synchronization system is active across all servers. Default is 0 for inactive|Cette option définit si le système de synchronisation sonore est actif sur tous les serveurs. Par défaut est 0 pour inactif| +Sounds Web Server|Sounds Web Server| +This is the server name or IP address of the web server that will be handling the sound files on this system, this must match the server name or IP of the machine you are trying to access the audio_store.php webpage on or it will not work. Default is 127.0.0.1|C-est le nom du serveur ou l-adresse IP du serveur Web qui sera la manipulation des fichiers sonores sur ce système, cela doit correspondre le nom du serveur ou adresse IP de la machine que vous essayez d-accéder à la page Web audio_store.php sur ou ça ne marchera pas . Par défaut est 127.0.0.1| +Sounds Web Directory|Sounds Web Directory| +This auto-generated directory name is created at random by the system as the place that the audio store will be kept. All audio files will reside in this directory|Cette auto-générés nom du répertoire est créé au hasard par le système comme étant le lieu que le magasin audio seront conservés. Tous les fichiers audio se trouver dans ce répertoire| +Audio Store|Audio Store| +Audio File to Upload|Audio Fichier à télécharger| +This utility allows you to upload audio files to the web server so that they can be distributed to all of the ViciDial servers in a multi-server cluster. An important note, only two audio file types will work, .wav files that are PCM 16bit 8k and .gsm files that are 8bit 8k. Please verify that your files are properly formatted before uploading them here|Cet utilitaire vous permet de télécharger des fichiers audio sur le serveur Web de sorte qu-ils puissent être distribués à tous les serveurs VICIDIAL dans un cluster multi-serveur. Une remarque importante, seulement deux types de fichiers audio fonctionne, les fichiers. Wav qui sont PCM 16bit 8k et les fichiers. GSM qui sont 8bit 8K. S-il vous plaît vérifier que vos fichiers sont correctement mis en forme avant de les télécharger ici| +Sounds Update|Mise à jour de sons| +If you want to force a check of the sound files on this server, and the central audio store is enabled as a system setting, then this field will allow the sounds updater to run at the next top of the minute. Any time an audio file is uploaded from the web interface this is automatically set to Y for all servers that have Asterisk active. Default is N|Si vous voulez forcer une vérification des fichiers sonores sur ce serveur, et la banque centrale audio est activée d-un paramètre système, ce champ permettra aux sons de mise à jour à courir au début de la prochaine minute. Chaque fois qu-un fichier audio est téléchargé à partir de l-interface web de ce contrat est automatiquement réglé sur Y pour tous les serveurs qui ont activement Asterisk. Par défaut est n| +Active Voicemail Server|Active Server Voicemail| +In multi-server systems, this is the server that will handle all voicemail boxes. This server is also where the dial-in generated prompts will be uploaded from, the 8168 recordings|Dans les systèmes multi-serveur, c-est le serveur qui va gérer toutes les boîtes de messagerie vocale. Ce serveur est également lorsque le dial-in générée invites seront téléchargées à partir, le 8168 enregistrements| +Auto Dial Limit|Auto Dial Limite| +This is the maximum limit of the auto dial level in the campaign screen|C-est la limite maximale du niveau automatique ligne dans l-écran de campagne| +User Territories are not active on this system|Territoires utilisateur ne sont pas actifs sur ce système| +User Territories|Utilisateur Territoires| +List All Territories:|Lister tous les territoires:| +User Territories Active|Territoires utilisateur Active| +This setting allows you to enable the User Territories setttings from the user modification screen. This feature was added to allow for more integration with a customized Vtiger installation but can have applications in a pure ViciDial system as well. Default is 0 for disabled|Ce paramètre vous permet d-activer les Territoires utilisateur setttings de l-écran de modification de l-utilisateur. Cette fonctionnalité a été ajoutée afin de permettre une plus grande intégration avec une installation personnalisée Vtiger mais peut avoir des applications dans un système VICIDIAL purs ainsi. Par défaut est 0 pour les handicapés| +List Territories|Liste des territoires| +Add Territory|Ajouter Territoire| +Add User Territory|Ajouter un utilisateur Territoire| +Territory|Territoire| +Territory Description|Description du territoire| +Territory and Territory Description must be filled in|Territoire et du territoire La description doit être rempli| +there is already a territory in the system with this name|il ya déjà un territoire dans le système avec ce nom| +Territory Added|Ajouté le territoire| +Modify Territory|Modifier Territoire| +Territory not found|Territoire non trouvé| +This territory is not in the system with this name|Ce territoire n-est pas dans le système avec ce nom| +Territory Modified|Territoire de modification| +Territory must be filled in|Territoire doit être rempli| +Territory Deleted|Territoire Supprimé| +Delete This Territory|Supprimer ce territoire| +Vtiger Accounts|Vtiger Comptes| +Agents|Agents| +Territory, User and Level must be filled in|Territoire, d-utilisation et de niveau doivent être remplis| +this territory user is already in the system|cet utilisateur sur le territoire est déjà dans le système| +User Territory Added|Utilisateur Territoire Added| +this territory user is not in the system|cet utilisateur sur le territoire n-est pas dans le système| +User Territory Modified|Utilisateur Territoire de modification| +Territory and User must be filled in|Territoire et l-utilisateur doivent être remplis| +User Territory Deleted|Territoire d-utilisateur supprimé| +Vtiger Change Territory Owner|Vtiger Changer Territoire Propriétaire| +Had to add user territory|Dû ajouter territoire utilisateur| +Vtiger Territory Owner Changed|Vtiger Territoire propriétaire a changé| +Records Changed|Enregistrements modifiés| +ViciDial Recording Limit|VICIDIAL Recording Limit| +This field is where you set the maximum number of minutes that a call recording initiated by ViciDial can be. Default is 60 minutes|Ce champ est l-endroit où vous définissez le nombre maximal de minutes durant laquelle un enregistrement d-appel lancé par VICIDIAL peut l-être. Par défaut est de 60 minutes| +This is the dial plan context that the agent applications, like ViciDial, primarily use. 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. default is default|Tel est le contexte du plan de numérotation que les demandes d-agents, comme VICIDIAL, utilisez principalement. Il est supposé que tous les numéros composés par les applications clientes utilisent ce contexte, c-est donc une bonne idée de s-assurer que cela est possible, le contexte plus large. vérifier avec le fichier extensions.conf avant de changer. par défaut est par défaut| +Phone Context|Téléphone Contexte| +This is the dial plan context that this phone will use to dial out. If you are running a call center and you do not want your agents to be able to dial out outside of the ViciDial applicaiton for example, then you would set this field to a dialplan context that does not exist, something like agent-nodial. default is default|Tel est le contexte du plan de numérotation que ce téléphone se servira pour composer. Si vous utilisez un centre d-appel et que vous ne voulez pas que vos agents pour être en mesure de composer un numéro hors de l-application VICIDIAL par exemple, alors vous devez définir ce domaine à un contexte de plan de numérotation qui n-existe pas, quelque chose comme agent-nodial. par défaut est par défaut| +Use the HIDE option to completely remove the customer phone number from the agent display|Utilisez l-option Masquer pour supprimer complètement le numéro de téléphone du client depuis l-écran de l-agent| +Click here to see a traffic report for this DID|Cliquez ici pour voir un rapport de trafic pour cette DID| +Agent Time Detail|Agent Time Détails| +User Timeclock Detail Report|Utilisateur Timeclock Rapport détaillé| +Carrier Logging Active|Carrier Logging Active| +This setting allows you to log all hangup return codes for any outbound list dialing calls that you are placing. Default is N.|Ce paramètre vous permet d-enregistrer l-ensemble des codes de retour de raccrochage pour tout composant la liste des appels sortants que vous passez. Par défaut est N.| +Drop Lockout Time|Drop Lockout Time| +This is a number of hours that DROP abandon calls will be prevented from being dialed, to disable set to 0. This setting is very useful in countries like the UK where there are regulations preventing the attempted calling of customers within 72 hours of an Abandon, or DROP. Default is 0|Il s-agit d-un nombre d-heures que DROP abandonner les appels seront empêchés d-être composés, pour définir désactiver à 0. Ce paramètre est très utile dans des pays comme le Royaume-Uni où il existe une réglementation empêchant l-appelant a tenté de clients dans les 72 heures d-un abandon, ou DROP. Par défaut est 0| +Phone Ring Timeout|Phone Ring Timeout| +This is the amount of time, in seconds, that the phone will ring in the dialplan before sending the call to voicemail. Default is 60 seconds|Il s-agit de la quantité de temps, en secondes, que le téléphone sonne dans le plan de numérotation avant d-envoyer l-appel vers la messagerie vocale. Par défaut est de 60 secondes| +Allow Custom Dialplan Entries|Permettant de personnaliser le plan d-appel Entrées| +This option allows you to enter custom dialplan lines into Call Menus. Default is 0 for inactive|Cette option vous permet de saisir des lignes sur mesure plan de numérotation dans CALL Menus. Par défaut est 0 pour inactif| +Custom Dilplan Entry|Custom Dilplan Entrée| +This field allows you to enter in any dialplan elements that you want for the Call Menu|Ce champ vous permet d-entrer dans tous les éléments de plan de numérotation que vous souhaitez pour le menu d-appel| +You can enter multiple propmts in this field and the other prompt fields by separating them with a pipe character|Vous pouvez entrer propmts multiples dans ce domaine et invite les autres champs en les séparant par un caractère pipe| +Setting this field to zero 0 will mean that there will be no wait time after the prompt is played|Fixation de ce champ à zéro 0 signifie qu-il n-y aura pas de temps d-attente après le prompt est joué| +Conf File Secret|Conf dossier secret| +This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|C-est le secret ou mot de passe, pour le téléphone dans le IAX ou SIP auto-généré fichier de conf pour ce téléphone. La limite est de 20 caractères alphanumériques tiret de soulignement et acceptée. Par défaut est test| +Tracking Group|Groupe de suivi| +This is the ID that you can use to track calls to this Call Menu when looking at the IVR Report. The list includes CALLMENU as the default as well as all of the In-Groups|Ceci est l-ID que vous pouvez utiliser pour suivre les appels vers ce menu d-appel lorsque l-on examine le Rapport IVR. La liste comprend CALLMENU par défaut ainsi que l-ensemble de l-En-Groupes| +Agent Alert Filename|Agent d-alerte Filename| +The audio file to play to an agent to announce that a call is coming to the agent. To not use this function set this to X. Default is ding|Le fichier audio à lire à un agent d-annoncer qu-un appel arrive à l-agent. Pour ne pas utiliser cette fonction pour définir cette valeur par défaut est X. Ding| +This field as with the other audio fields in In-Groups, with the exception of the Agent Alert Filename, can have multiple audio files played if you put a pipe-separated list of audio files into the field|Ce domaine, comme avec les autres champs audio en groupes, à l-exception du nom de fichier d-alerte agent, peut avoir plusieurs fichiers audio joué seulement si vous mettez un tuyau d-une liste séparée par des fichiers audio dans le domaine| +No Agents No Queueing|Agents n Queueing| +If this field is set to Y or NO_PAUSED then no calls will be put into the queue for this in-group if there are no agents logged in and the calls will go to the No Agent No Queue Action. The NO_PAUSED option will also not send the callers into the queue if there are only paused agents in the in-group. Default is N|Si ce champ est réglé sur Y ou NO_PAUSED alors aucun appel ne sera mis dans la file d-attente pour cet en-groupe, si il n-ya pas d-agents connectés et les appels ira à l-agent Non Non action Queue. L-option NO_PAUSED enverra également pas les appelants en file d-attente s-il ya seulement une pause des agents dans l-en-groupe. Par défaut est n| +No Agent No Queue Action|Non Non Queue action de l-agent| +If No Agent No Queue is enabled, then this field defines where the call will go if there are no agents in the In-Group. Default is MESSAGE, this plays the sound files in the Action Value field and then hangs up|Si aucun agent Aucune file d-attente est activé, ce champ définit l-endroit où l-appel sera acheminé en l-absence des agents dans l-en-groupe. Par défaut est le message, celui-ci joue les fichiers audio dans le champ Valeur d-action, puis raccroche| +No Agent No Queue Action Value|Non Non Queue action de l-agent Valeur| +This is the value for the Action above. Default is|C-est la valeur pour l-action ci-dessus. Par défaut est| +Quick Transfer Button|Quick Transfer Button| +This option will add a Quick Transfer button to the agent screen below the Transfer-Conf button that will allow one click blind transferring of calls to the selected In-Group or number. IN_GROUP will send calls to the Default Xfer Group for this Campaign, or In-Group if there was an inbound call. The PRESET options will send the calls to the preset selected. Default is N for disabled|Cette option permet d-ajouter un bouton de transfert rapide à l-écran de l-agent en dessous du bouton Transfer-Conf qui permettra un clic aveugles transfert d-appels à la sélectionnés en-groupe ou un numéro. IN_GROUP va envoyer des appels au groupe par défaut Xfer pour cette campagne, ou en-groupe s-il y avait un appel entrant. Les options prédéfinies vous enverrons les appels à la preset sélectionnée. Par défaut est N pour les handicapés| +PrePopulate Transfer Preset|Préremplir Transfert Preset| +This option will fill in the Number to Dial field in the Transfer Conference frame of the agent screen if defined. Default is N for disabled|Cette option permet de remplir le champ Numéro de réseau commuté dans le cadre de transfert de conférence de l-écran de l-agent s-il est défini. Par défaut est N pour les handicapés| +Enable TTS Integration|Activer TTS Intégration| +This setting allows you to enable Text To Speech integration with Cepstral. This is currently only available for outbound Survey type campaigns. Default is 0 for disabled|Ce paramètre vous permet d-activer l-intégration Text To Speech avec Cepstral. Ce n-est actuellement disponible pour les campagnes Enquête sortants type. Par défaut est 0 pour les handicapés| +ADD NEW TTS ENTRY|ADD NEW ENTRY TTS| +ADDING NEW TTS ENTRY|Ajout de nouveaux TTS ENTRY| +MODIFY TTS ENTRY|MODIFIER TTS ENTRY| +DELETE TTS ENTRY|DELETE TTS ENTRY| +TTS ENTRY LIST|TTS Entry List| +TEXT-TO-SPEECH(TTS) LISTINGS|TEXT-to-Speech (TTS) Inscriptions| +Text To Speech|Text To Speech| +Show TTS Entries|Afficher TTS Entrées| +Add A New TTS Entry|Ajouter une nouvelle entrée TTS| +TTS ID|TTS ID| +TTS Name|TTS Nom| +TTS Text|TTS Text| +TTS ENTRY NOT ADDED|TTS entrée non AJOUTEE| +there is already a tts entry in the system with this ID|il existe déjà une entrée dans le système TTS avec cette ID| +TTS ENTRY ADDED|TTS Entry Ajoutée| +MODIFY A TTS RECORD|MODIFIER UN RECORD TTS| +Click here to see Admin chages to this TTS entry|Cliquez ici pour voir chages Admin à cette entrée TTS| +DELETE THIS TTS ENTRY|DELETE THIS ENTRY TTS| +TTS ENTRY NOT MODIFIED|TTS entrée n-est pas à jour| +TTS ENTRY MODIFIED|TTS entrée modifiée| +TTS ENTRY NOT DELETED|TTS ENTRY pas supprimé| +TTS ENTRY DELETION CONFIRMATION|TTS ENTREE DE SUPPRESSION DE CONFIRMATION| +Click here to delete tts entry|Cliquez ici pour supprimer l-entrée tts| +This is the short name of a TTS entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 50 characters, minimum of 2 characters|Ceci est le nom court d-une entrée de TTS. Cela doit être un identifiant unique. N-utilisez pas d-espaces ou de ponctuation dans ce champ. max 50 caractères, minimum de 2 caractères| +This is a more descriptive name of the TTS entry. This is a short summary of the TTS definition. max 100 characters, minimum of 2 characters|Il s-agit d-un nom plus descriptif de l-entrée TTS. Ceci est un bref résumé de la définition de TTS. max 100 caractères, minimum de 2 caractères| +This option allows you to set the TTS entry to active or inactive|Cette option vous permet de définir l-entrée de TTS à l-état actif ou inactif| +This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example|Il s-agit du texte à la parole champ de données qui est envoyé à Cepstral pour la création du fichier audio à lire pour le client. vous pouvez utiliser Speech Synthesis Markup Language-SSML, dans ce domaine, par exemple| +for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. Here is a list of the available variables: |pour une pause de 1 seconde. Vous pouvez également utiliser plusieurs variables telles que nom, prénom et titre en tant que variables VICIDIAL comme vous le faites dans un script: - Un prenom - - B -. Voici une liste des variables disponibles:| +Multiple Campaign Drop Rate Group|Multiples campagne Drop Rate Group| +This feature allows you to set a campaign as a member of a Campaign Drop Rate Group, or a group of campaigns whose Human Answered calls and Drop calls for all campaigns in the group will be combined into a shared drop percentage, or abandon rate. This allows you to to run multiple campaigns at once and more easily control your drop rate. This is particularly useful in the UK where regulations permit this drop rate calculation method with campaign grouping for the same company even if there are several campaigns that company is running during the same day. To enable this for a campaign, just select a group from the list. There are 10 groups defined in the system by default, you can contact your system administrator to add more. Default is DISABLED|Cette fonctionnalité vous permet de définir une campagne comme un membre d-un groupe de la Campagne taux d-abandon, ou un groupe de campagnes dont l-homme appels répondus et les appels de chute pour toutes les campagnes dans le groupe seront combinés en un pourcentage partagée déposer, ou les taux d-abandon. Ceci vous permet d-exécuter plusieurs campagnes à la fois et plus facile à contrôler votre taux de chute. Ceci est particulièrement utile dans le Royaume-Uni où la réglementation permet cette méthode de calcul des taux d-abandon avec une campagne de groupement pour la même compagnie, même s-il ya plusieurs campagnes cette société est en marche pendant le jour même. Pour activer ce pour une campagne, il suffit de sélectionner un groupe de la liste. Il existe 10 groupes définis dans le système par défaut, vous pouvez contacter votre administrateur système d-ajouter d-autres. Par défaut est Disabled| +IMPORTANT, this is the password only for the agent web interface phone login, to change the sip.conf or iax.conf password, or secret, for this phone device you need to modify the Conf File Secret field further down on this page|IMPORTANT, c-est le seul mot de passe pour le web Connexion Agent interface de téléphone, pour changer la sip.conf iax.conf ou mot de passe, ou secrets, pour cet appareil de téléphone que vous devez modifier le fichier de conf champ Secret plus bas sur cette page| +Agent Status Viewable Groups|Le statut de mandataire Viewable Groupes| +This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into|Ceci est une liste sélectionnable de groupes d-utilisateurs et les fonctions utilisateur pour lequel les membres de ce groupe d-utilisateurs peuvent visualiser l-état des appels ainsi que le transfert vers l-intérieur de l-écran de l-agent. The All-GROUPES option permet aux utilisateurs de ce groupe à voir et à transférer des appels vers n-importe quel utilisateur sur le système. La CAMPAGNE AGENTS option permet aux utilisateurs de ce groupe à voir et à transférer des appels vers n-importe quel utilisateur dans la campagne à laquelle ils sont connectés à| +Agent Status View Time|Le statut de mandataire Afficher Time| +This option defines whether the agent will see the amount of time that users in their agent sidebar have been in their current status. Default is N for no or disabled|Cette option définit si l-agent va voir la quantité de temps que les utilisateurs dans leur encadré agent ont été dans leur état actuel. Par défaut est N pour non ou handicapés| +This option allows an agent to disposition a call as CALLBK and choose the date and time at which the lead will be re-activated|Cette option permet à un agent à disposition un appel comme CALLBK et choisir la date et l-heure à laquelle le plomb sera ré-activé| +Agent View Calls in Queue|Agent Voir appels en attente| +If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE|Si défini à autre chose mais aucun, les agents seront en mesure de voir des détails sur les appels qui sont en attente dans la file d-attente dans leur écran de l-agent. S-il est défini à une valeur numérique, les appels affiché sera limité au nombre sélectionné. Par défaut est AUCUN| +View Calls in Queue Launch|Voir les appels en attente de lancement| +This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL|Ce paramètre s-il est réglé sur AUTO auront la demande, dans la file d-attente apparaissent cadre moment de la connexion par l-agent dans l-écran de l-agent. Par défaut est Manuel| +Agent Grab Calls in Queue|Agent Grab appels en attente| +This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N|Cette option s-il est réglé sur Y permet à l-agent pour sélectionner l-appel qui veulent prendre de la demande, dans la file d-attente d-affichage en cliquant sur elle pendant la pause. Agents ne seront en mesure de saisir les appels entrants ou les appels transférés, les appels sortants pas. Par défaut est n| +Agent Call Re-Queue Button|Agent d-appel Re-Queue Button| +This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N|Cette option s-il est réglé sur Y va ajouter un bouton Re-file d-attente des clients à l-écran de l-agent, permettant à l-agent d-envoyer l-appel dans une file d-attente AGENTDIRECT qui est réservé à l-agent seulement. Par défaut est n| +Agent Pause After Each Call|Agent Pause après chaque appel| +This option if set to Y will pause the agent after every call automatically. Default is N|Cette option s-il est réglé sur Y se mettra en pause l-agent après chaque appel automatiquement. Par défaut est n| +Starts with the highest rank and works its way down|Commence par le plus haut rang et fait son chemin vers le bas| +Starts with the lowest rank and works its way up|Commence avec le plus bas grade et fait son chemin jusqu-à| +Starts with owners beginning with Z and works its way down|Commence avec les propriétaires commençant par Z et fait son chemin vers le bas| +Starts with owners beginning with A and works its way up|Commence avec les propriétaires commençant par A et fait son chemin jusqu-à| +No Hopper Dialing|N Hopper Dialing| +If This is enabled, the hopper will not run for this campaign. This option is only available when the dial method is set to MANUAL or INBOUND_MAN. It is recommended that you do not enable this option if you have a very large lead database, over 100,000 leads. With No Hopper Dialing, the following features do not work: lead recycling, auto-alt-dialing, list mix, list ordering with Xth NEW. If you want to use Owner Only Dialing you must have No Hopper Dialing enabled. Default is N for disabled|Si elle est activée, la trémie ne fonctionnera pas pour cette campagne. Cette option n-est disponible que lorsque la méthode du cadran est mis en mode manuel ou INBOUND_MAN. Il est recommandé de ne pas activer cette option si vous avez une base très large de plomb, plus de 100.000 prospects. Avec pas d-appel Hopper, les caractéristiques suivantes ne fonctionnent pas: recyclage du plomb, auto-alt-numérotation, mélanger la liste, mise en ordre avec Xème NEW. Si vous souhaitez utiliser Propriétaire composer seulement vous devez avoir pas d-appel Hopper activé. Par défaut est N pour les handicapés| +Owner Only Dialing|Propriétaire composer seulement| +If This is enabled, the agent will only receive leads that they are within the ownership parameters for. If this is set to USER then the agent must be the user defined in the database as the owner of this lead. If this is set to TERRITORY then the owner of the lead must match the territory listed in the User Modification screen for this agent. If this is set to USER_GROUP then the owner of the lead must match the user group that the agent is a member of. For this feature to work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper Dialing must be enabled. Default is NONE for disabled|Si elle est activée, l-agent ne recevra pistes qu-ils sont dans les paramètres de propriété pour. Si cela est réglé sur Utilisateur, puis l-agent doit être définie par l-utilisateur dans la base de données en tant que propriétaire de ce plomb. Si cela est défini au territoire, le propriétaire de la direction doit correspondre au territoire énumérées dans l-écran de Modification de l-utilisateur pour cet agent. Si ce réglage est à GROUPE_UTILISATEUR le propriétaire du nom de la sonde doit correspondre au groupe d-utilisateurs que l-agent est un membre de. Pour que cette fonction soit la méthode cadran doit être réglé en mode manuel ou INBOUND_MAN Hopper et pas d-appel doit être activé. Par défaut est AUCUN pour les handicapés| +Reset Times|Reset Times| +This field allows you to put times in, separated by a dash-, that this list will be automatically reset by the system. The times must be in 24 hour format with no punctuation, for example 0800-1700 would reset the list at 8AM and 5PM every day. Default is empty|Ce champ vous permet de mettre fois, séparées par un tiret, que cette liste sera automatiquement remis à zéro par le système. Les heures doivent être au format 24 heures sans ponctuation, par exemple 0800-1700 serait rétablir la liste à 8 h et 5pm tous les jours. Par défaut est vide| +Owner: |Propriétaire:| +OWNERS WITHIN THIS LIST|Guichet unique de cette liste| +RANKS WITHIN THIS LIST|LES RANGS DANS CETTE LISTE| +Allow Alerts|Permettez Alertes| +This field gives you the ability to allow agent browser alerts to be enabled by the agent for when calls come into their vicidial.php session. Default is 0 for NO|Ce champ vous donne la possibilité de permettre navigateur agent des alertes pour être activé par l-agent pour les appels entrants sur leur session vicidial.php. Par défaut est 0 pour le NO| +Agent Display Dialable Leads|Agent d-affichage composable Leads| +This option if enabled will show the number of dialable leads available in the campaign in the agent screen. This number is updated in the system once a minute and will be refreshed on the agent screen every few seconds|Cette option si elle est activée affiche le nombre de pistes d-accès automatique disponibles dans la campagne dans l-écran de l-agent. Ce numéro est mis à jour dans le système une fois par minute et sera rafraîchie à l-écran tous les agents de quelques secondes| +VICIDIAL Balance Rank|VICIDIAL Solde Rank| +This field allows you to set the order in which this server is to be used for balance dialing, if balance dialing is enabled. The server with the highest rank will be used first in placing Balance fill calls. Default is 0|Ce champ vous permet de définir l-ordre dans lequel ce serveur doit être utilisé pour la composition à l-équilibre, si vous appelez l-équilibre est activé. Le serveur avec le plus haut rang sera utilisé en premier dans le placement de la balance remplir appels. Par défaut est 0| +Inbound Summary Hourly Report|Inbound Résumé Hourly Report| +orders by the amount of time agent has been actively waiting for a call|commandes par la quantité de temps d-attente agent a été activement pour un appel| +Agent Script Override|Agent Script Override| +If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the lead is from this list. Default is not set|Si ce champ est défini, ce sera le script que l-agent voit sur son écran au lieu du script campagne lorsque le plomb est de cette liste. Défaut n-est pas réglé| +Music On Hold|Musique d-attente| +ADD NEW MUSIC ON HOLD ENTRY|ADD NEW MUSIC ON HOLD ENTRY| +ADDING NEW MUSIC ON HOLD ENTRY|AJOUT DE NEW MUSIC ON HOLD ENTRY| +MODIFY MUSIC ON HOLD ENTRY|MODIFIER LA MUSIQUE EN ATTENTE ENTREE| +DELETE MUSIC ON HOLD ENTRY|DELETE MUSIC ON HOLD ENTRY| +MUSIC ON HOLD ENTRY LIST|MUSIC ON HOLD Entry List| +We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files|Nous recommandons fortement d-upload uniquement 16bit 8k fichiers PCM WAV| +Music On Hold ID|Musique en attente d-identification| +This is the short name of a Music On Hold entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 100 characters, minimum of 2 characters|Ceci est le nom court d-une musique d-attente d-entrée. Cela doit être un identifiant unique. N-utilisez pas d-espaces ou de ponctuation dans ce champ. max 100 caractères, minimum de 2 caractères| +Music On Hold Name|Musique d-attente Nom| +This is a more descriptive name of the Music On Hold entry. This is a short summary of the Music On Hold context and will show as a comment in the musiconhold-vicidial.conf file. max 255 characters, minimum of 2 characters|Il s-agit d-un nom plus descriptif de la Musique en attente d-entrée. Ceci est un bref résumé de la Musique en attente contexte et s-affiche comme un commentaire dans le musiconhold-file vicidial.conf. 255 caractères max, minimum de 2 caractères| +This option allows you to set the Music On Hold entry to active or inactive. Inactive will remove the entry from the conf files|Cette option vous permet de définir la musique d-attente à l-entrée active ou inactive. Inactifs va supprimer l-entrée à partir des fichiers conf| +Random Order|Random Order| +This option allows you to define the playback of the audio files in a random order. If set to N then the defined order will be used|Cette option vous permet de définir la lecture des fichiers audio dans un ordre aléatoire. Si elle est égale à N, alors l-ordre défini sera utilisé| +To add a new audio file to a Music On Hold entry the file must first be in the audio store, then you can select the file and click submit to add it to the file list. Music on hold is updated once per minute if there have been changes made. Any files not listed in a music on hold entry that are present in the music on hold folder will be deleted|Pour ajouter un nouveau fichier audio à une musique d-attente d-entrée, le fichier doit d-abord être dans le magasin de l-audio, alors vous pouvez sélectionner le fichier et cliquez sur Soumettre pour l-ajouter à la liste des fichiers. Musique d-attente est mis à jour une fois par minute s-il ya eu des modifications apportées. Tous les fichiers qui ne figurent pas dans une musique à l-entrée détiennent qui sont présents dans la musique sur le dossier de détention seront supprimés| +MUSIC ON HOLD ENTRY NOT ADDED|MUSIC ON HOLD entrée non AJOUTEE| +there is already a moh entry in the system with this ID|il existe déjà une entrée dans le système de moh avec cette ID| +MUSIC ON HOLD ENTRY ADDED|MUSIC ON HOLD Entry Ajoutée| +Click here to see Admin chages to this Music On Hold entry|Cliquez ici pour voir chages d-administration pour cette musique en attente d-entrée| +Audio Files|Fichiers audio| +Add An Audio File|Ajouter un fichier audio| +Rank: |Rank:| +MUSIC ON HOLD ENTRY NOT MODIFIED|MUSIC ON HOLD entrée n-est pas à jour| +MUSIC ON HOLD ENTRY MODIFIED|MUSIC ON HOLD entrée modifiée| +Add A New MOH Entry|Ajouter une nouvelle entrée MOH| +Show MOH Entries|Afficher MOH Entrées| +Active Agent Server|Active Server Agent| +Setting this option to N will prevent agents from being able to login to this server through the vicidial agent screen. This is very useful when using a phone login load balanced setup. Default is Y|La définition de cette option pour empêcher que des agents N sera d-être capable de se connecter à ce serveur à travers l-écran de l-agent VICIDIAL. Ceci est très utile lorsque vous utilisez une charge de connexion de configuration du téléphone équilibrée. Par défaut est Y.| +Rebuild Music On Hold|Reconstruire la musique d-attente| +If you want to force a rebuilding of the music on hold files or if the music on hold entries or server entries have changed then this should be set to Y. After the music on hold files have been synchronized and reloaded then this will be changed to N. Default is Y|Si vous voulez forcer une reconstruction de la musique sur fichiers contiennent ou si la musique sur les entrées de détenir ou des entrées de serveur ont changé, alors ceci doit être réglé sur Y. Après la musique d-attente les fichiers ont été synchronisés et rechargés alors ce sera changée à N. défaut est Y.| +MUSIC ON HOLD ENTRY NOT DELETED|MUSIC ON HOLD ENTRY pas supprimé| +MUSIC ON HOLD ENTRY DELETION CONFIRMATION|MUSIC ON HOLD ENTREE DE SUPPRESSION DE CONFIRMATION| +Click here to delete music on hold entry|Cliquez ici pour supprimer la musique en attente d-entrée| +MUSIC ON HOLD DELETION COMPLETED|MUSIQUE EN ATTENTE DE SUPPRESSION REMPLI| +Starts with Eastern timezones and works West|Commence avec les fuseaux horaires de l-Est et l-Ouest de travaux| +Starts with Western timezones and works East|Commence avec les fuseaux horaires de l-Ouest et travaille Est| +you must select a user group|Vous devez sélectionner un groupe d-utilisateurs| +Enable Second Webform|Activer Webform Deuxième| +WaitForSilence Options|WaitForSilence Options| +If Wait For Silence is desired on calls that are detected as Answering Machines then this field has those options. There are two settings separated by a comma, the first option is how long to detect silence in milliseconds and the second option is for how many times to detect that before playing the message. Default is EMPTY for disabled. A standard value for this would be wait for 2 seconds of silence twice|Si Wait For Silence est demandée sur les appels qui sont détectés comme répondeur alors ce champ possède ces options. Il ya deux paramètres séparés par une virgule, la première option est combien de temps pour détecter le silence en millisecondes et la seconde option est pour combien de fois de détecter que avant la lecture du message. Par défaut est vide pour les handicapés. Une valeur standard pour ce serait attendre 2 secondes de silence à deux reprises| +This field is for entering the prompt to play when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this to either an audio file in the audio store or a TTS prompt if TTS is enabled on your system|Ce champ sert à saisir l-invite à jouer lorsque l-agent est un répondeur et clique sur le bouton Répondre Message Machine dans le cadre de conférences de transfert. Vous devez définir ce soit à un fichier audio dans le magasin audio ou une invite si TTS TTS est activé sur votre système| +EXTENDED ALTERNATE PHONE NUMBERS FOR THIS LEAD|EXTENSION SUPPLEANT DE NUMEROS DE TELEPHONE POUR CE PLOMB| +ADD NEW VOICEMAIL BOX|ADD NEW messagerie vocale| +ADDING NEW VOICEMAIL BOX|AJOUT DE NOUVEAUX la boîte vocale| +MODIFY VOICEMAIL BOX|MODIFIER la boîte vocale| +MODIFY A VOICEMAIL BOX|MODIFIER UN messagerie vocale| +DELETE VOICEMAIL BOX|DELETE la boîte vocale| +VOICEMAIL BOXES LIST|VOCAL encadrés Liste| +VOICEMAIL BOXES|VOCAL BOITES| +ADD NEW VOICEMAIL BOX|ADD NEW messagerie vocale| +Voicemail ID|Voicemail ID| +This is the all numbers identifier of this mailbox. This must not be a duplicate of an existing voicemail ID or the voicemail ID of a phone on the system, minimum of 2 characters|Il s-agit de la identifiant nombres de cette boîte aux lettres. Cela ne doit pas être un doublon d-un répondeur d-identification existant ou la boîte vocale d-ID d-un téléphone sur le système, au moins 2 caractères| +This is name associated with this voicemail box. max 100 characters, minimum of 2 characters|Ce nom est associé à cette boîte vocale. max 100 caractères, minimum de 2 caractères| +This is the password that is used to gain access to the voicemail box when dialing in to check messages max 10 characters, minimum of 2 characters|C-est le mot de passe utilisés pour accéder à la boîte vocale lors de la numérotation pour vérifier ses messages max 10 caractères, minimum de 2 caractères| +This option allows you to set the voicemail box to active or inactive. If the box is inactive you cannot leave messages on it and you cannot check messages in it|Cette option vous permet de configurer la boîte vocale à l-état actif ou inactif. Si la case est inactive vous ne pouvez pas laisser de messages sur elle et vous ne pouvez pas vérifier les messages en elle| +This optional setting allows you to have the voicemail messages sent to an email account, if your system is set up to send out email. If this field is empty then no emails will be sent out|Ce paramètre facultatif vous permet d-avoir les messages vocaux envoyés à un compte de messagerie, si votre système est configuré pour envoyer des email. Si ce champ est vide, alors pas de courriels seront envoyés| +VOICEMAIL BOX NOT ADDED|La boîte vocale PAS AJOUTEE| +there is already a voicemail box in the system with this ID|il existe déjà une boîte vocale dans le système avec cette ID| +there is already a phone in the system with this voicemail ID|il ya déjà un téléphone dans le système avec ce message vocal ID| +VOICEMAIL BOX ADDED|La boîte vocale AJOUTEE| +VOICEMAIL BOX NOT MODIFIED|La boîte vocale PAS MODIFIÉ| +VOICEMAIL BOX MODIFIED|La boîte vocale mise à jour| +VOICEMAIL BOX NOT DELETED|La boîte vocale pas supprimé| +VOICEMAIL BOX DELETION COMPLETED|La boîte vocale SUPPRESSION REMPLI| +VOICEMAIL BOX DELETION CONFIRMATION|La boîte vocale SUPPRESSION DE CONFIRMATION| +Click here to delete voicemail box|Cliquez ici pour supprimer boîte vocale| +DELETE THIS VOICEMAIL BOX|SUPPRIMER CETTE BOITE VOCALE| +Click here to see Admin chages to this voicemail box|Cliquez ici pour voir chages Admin à cette boîte de messagerie vocale| +The following fields must have data|Les champs suivants doivent avoir des données| +Campaign CID Override|Campagne CID Override| +If this field is set, this will override the campaign CallerID that is set for calls that are placed to leads in this list. Default is not set|Si ce champ est définie, elle aura préséance sur la campagne CallerID qui est défini pour les appels qui sont placés devant une piste dans cette liste. Défaut n-est pas réglé| +Answering Machine Message Override|Answering Machine Message Override| +If this field is set, this will override the Answering Machine Message set in the campaign for customers in this list. Default is not set|Si ce champ est définie, elle aura préséance sur le message répondeur mis dans la campagne pour les clients de cette liste. Défaut n-est pas réglé| +Drop Inbound Group Override|Drop Inbound Groupe Override| +If this field is set, this in-group will be used for outbound calls within this list that drop from the outbound campaign instead of the drop in-group set in the campaign detail screen. Default is not set|Si ce champ est défini, dans ce groupe seront utilisées pour les appels sortants de cette liste de cette goutte de la campagne à l-étranger au lieu de la baisse du groupe fixé dans l-écran de détail de la campagne. Défaut n-est pas réglé| +Agent Select Territories|Agent de sélectionner des territoires| +If this option is enabled and the agent belongs to at least one territory, the agent will have the option of selecting territories to dial leads from. The agent will see a list of available territories upon login and they will have the ability to go back to that territory list when paused to change their territories. For this function to work the Owner Only Dialing option must be set to TERRITORY and User Terriories must be enabled in the System Settings.|Si cette option est activée et que l-agent appartient à au moins un territoire, l-agent aura la possibilité de choisir les territoires à composer mène de. L-agent pourrez voir une liste des territoires disponibles sur login et ils auront la possibilité de retourner à cette liste le territoire pendant la pause pour changer leurs territoires. Pour que cette fonction de travail de la propriétaire composer seulement option doit être définie sur le territoire et les territoires d-utilisateur doit être activé dans les paramètres système.| +Agent Choose Territories|Agent Choisir Territoires| +This option if set to 1 allows the user to choose the territories that they will receive calls from when they login to a MANUAL or INBOUND_MAN campaign. Otherwise the user will be set to use all of the territories that they are set to belong to in the User Territories administrative section|Cette option si la valeur 1 permet à l-utilisateur de choisir les territoires qu-ils vont recevoir des appels à partir de leur connexion à un manuel ou INBOUND_MAN campagne. Sinon, l-utilisateur sera configuré pour utiliser l-ensemble des territoires qu-ils sont définis comme appartenant à l-utilisateur dans les Territoires Section administrative| +The AREACODE option is just like the Y option, except it is used to also filter out an entire area code in North America from being dialed, in this case using the 201XXXXXXX entry in the DNC list would block all calls to the 201 areacode if enabled|L-option AreaCode est comme l-option Y, sauf qu-il est utilisé pour filtrer également un code région entière en Amérique du Nord d-être appelé, dans ce cas en utilisant l-entrée 201XXXXXXX dans la liste DNC serait de bloquer tous les appels à l-indicatif régional 201 si elle est activée| +If you have the active DNC option set to AREACODE then you can also use area code wildcard entries like this 201XXXXXXX to block all calls to the 201 areacode when enabled|Si vous avez l-option active DNC réglé sur AreaCode alors vous pouvez également utiliser les entrées génériques indicatif régional comme celui-ci 201XXXXXXX de bloquer tous les appels au 201 lorsque AreaCode permis| +Carrier Description|Carrier Description| +This is put in the comments of the asterisk conf files above the dialplan and account entries. Maximum 255 characters|Ceci est mis dans les commentaires des fichiers de conf asterisk-dessus du plan de numérotation et des entrées de compte. Maximum 255 caractères| +CAMPAIGNS ALLOWING THIS IN-GROUP|CAMPAGNES DE PERMETTRE DANS CE GROUPE| +This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|C-est le secret ou mot de passe, pour le serveur dans l-auto-généré IAX fichier de conf pour ce serveur sur d-autres serveurs. La limite est de 20 caractères alphanumériques tiret de soulignement et acceptée. Par défaut est test| +Delete Voicemail After Email|Supprimer messagerie vocale après le courrier électronique| +This optional setting allows you to have the voicemail messages deleted from the system after they have been emailed out. Default is N|Ce paramètre facultatif vous permet d-avoir les messages vocaux supprimés du système après avoir été envoyé par courriel Out. Par défaut est n| +Last Campaign Call Date|Dernière campagne téléphonique Date| +This is the last time that a call was handled by an agent logged into this campaign|Il s-agit de la dernière fois qu-un appel a été traitée par un mandataire inscrit dans cette campagne| +Custom User Fields|Custom User Fields| +These five fields can be used for various purposes, and they can be populated in the web form addresses and scripts as user_custom_one and so on|Ces cinq champs peuvent être utilisés à des fins diverses, et ils peuvent être archivés dans les adresses formulaire web et des scripts comme user_custom_one et ainsi de suite| +CRM Popup Login|CRM Popup Login| +If set to Y, the CRM Popup Address is used to open a new window on agent login to this campaign. Default is N|Si elle est égale à Y, le CRM Popup adresse est utilisée pour ouvrir une nouvelle fenêtre sur login agent pour cette campagne. Par défaut est n| +CRM Popup Address|CRM Popup Adresse| +The web address of a CRM login page, it can have variables populated just like the web form address, with the VAR in the front and using --A--user_custom_one--B-- to define variables|L-adresse Web d-une page de connexion de CRM, il peut avoir des variables de population tout comme l-adresse sous forme d-enchaînement, avec la VaR à l-avant et à l-aide - Un user_custom_one - - B - de définir des variables| +If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attempt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attempt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attempt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue, VIDPROMPT will prompt the caller for their ID number and will create a new lead record with the CallerID as the phone number and the ID as the Vendor ID, VIDPROMPTLOOKUP will attempt to lookup the ID in the entire system, VIDPROMPTLOOKUPRL will attempt to lookup the vendor ID by the ID in only one specified list, VIDPROMPTLOOKUPRC will attempt to lookup the vendor ID by the ID in all of the lists that belong to the specified campaign. Default is CID|Si IN_GROUP est sélectionné comme la Route de DID, alors c-est la gestion des appels de méthode utilisée pour ces appels. CID va ajouter un enregistrement nouveau chef de file à chaque appel en utilisant le CallerID que le numéro de téléphone, CIDLOOKUP va tenter de rechercher le numéro de téléphone par le CallerID dans l-ensemble du système, CIDLOOKUPRL va tenter de rechercher le numéro de téléphone par le CallerID dans une seule liste spécifiée , CIDLOOKUPRC va tenter de rechercher le numéro de téléphone par le CallerID dans toutes les listes qui appartiennent à la campagne déterminée, CLOSER est spécifié pour VICIDIAL Closer appels, ANI ajouter un enregistrement nouveau chef de file à chaque appel en utilisant l-ANI que le numéro de téléphone, ANILOOKUP va tenter de rechercher le numéro de téléphone par l-ANI dans le système tout entier, ANILOOKUPRL va tenter de rechercher le numéro de téléphone par l-ANI dans une seule liste spécifiée, XDIGITID va demander à l-appelant d-un code à quatre chiffres X avant l-appel sera mis en la file d-attente, VIDPROMPT va demander à l-appelant pour leur numéro d-identification et permettra de créer un dossier avec le nouveau chef de file CallerID que le numéro de téléphone et l-identifiant comme l-ID du vendeur, VIDPROMPTLOOKUP va tenter de rechercher l-ID dans l-ensemble du système, VIDPROMPTLOOKUPRL va tenter de rechercher l-ID de fournisseur par l-ID dans une seule liste spécifiée, VIDPROMPTLOOKUPRC va tenter de rechercher l-ID de fournisseur par l-ID dans l-ensemble des listes qui appartiennent à la campagne spécifié. Par défaut est CID| +UNIFIED_CONTACT- This option will use the beta Vtiger 5.1.0 feature to search by phone number and bring up a search page in Vtiger|UNIFIED_CONTACT-Cette option utilise la version bêta 5.1.0 Vtiger fonction pour effectuer une recherche par numéro de téléphone et afficher une page de recherche dans Vtiger| +Timer Action|Minuterie d-action| +This feature allows you to trigger actions after a certain amount of time. the D1 and D2 DIAL options will launch a call to the Transfer Conference Number presets and send them to the agent session, this is usually used for simple IVR validation AGI applications or just to play a pre-recorded message. WEBFORM will open the web form address. MESSAGE_ONLY will simply display the message that is in the field below. NONE will disable this feature and is the default|Cette fonctionnalité vous permet de déclencher des actions après un certain laps de temps. D1 et D2 options DIAL va lancer un appel à la presets Transfer Conference Nombre et les envoyer à la session d-agent, ce n-est généralement utilisé pour les applications IVR AGI simple validation ou tout simplement pour jouer un message pré-enregistré. WebForm ouvrira l-adresse formulaire web. MESSAGE_ONLY va simplement afficher le message qui est dans le champ ci-dessous. AUCUNE désactive cette fonctionnalité et la valeur par défaut| +Timer Action Message|Timer Action Message| +This is the message that appears on the agent screen at the time the Timer Action is triggered|Tel est le message qui s-affiche sur l-écran de l-agent au moment de l-action Timer est déclenché| +Timer Action Seconds|Minuterie d-action Seconds| +This is the amount of time after the call is connected to the customer that the Timer Action is triggered. Default is -1 which is also inactive|Il s-agit de la quantité de temps après l-appel est connecté au client que l-action Timer est déclenchée. Par défaut est -1, qui est aussi inactive| +This setting will override the Campaign settings|Ce paramètre remplace les paramètres de campagne| +Start Call URL|Début de l-appel Web| +This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. The Start URL does not work for Manual dial calls. Default is blank|Cette web adresse URL n-est pas perçu par l-agent, mais elle est appelée chaque fois qu-un appel est adressé à un agent si elle est peuplée. Utilise les mêmes variables que les champs de formulaire web et des scripts. Cette URL ne peut être un chemin relatif. L-URL de début ne fonctionne pas pour les appels cadran manuel. Par défaut est vide| +Dispo Call URL|Dispo Call Web| +This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank|Cette web adresse URL n-est pas perçu par l-agent, mais elle est appelée chaque fois qu-un appel est dispositioned par un mandataire si elle est peuplée. Utilise les mêmes variables que les champs de formulaire web et des scripts. DISPO et talk_time sont les variables que vous pouvez utiliser pour récupérer l-agent défini par la disposition de l-appel et le temps de parole effective en quelques secondes de l-appel. Cette URL ne peut être un chemin relatif. Par défaut est vide| +Xfer-Conf Number Override|Xfer-Conf Nombre Override| +These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank|Ces cinq domaines pour vous permettre d-emporter les préréglages numéro de la conférence de transfert lorsque le plomb est de cette liste. Par défaut est vide| +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. If you want to allow Consultative Transfers, a fronter to a closer, have the agent use the CONSULTATIVE checkbox, which does not work for third party non-ViciDial consultative calls. For those just have the agent click the Dial With Customer button. Then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER, for instance if you want to do a call to a special IVR you have set to extension 83900 you would put AXFER83900 in the number-to-dial field|Ces quatre domaines pour vous permettre d-avoir deux ensembles de transfert de conférence et les préréglages DTMF. Lorsque l-appel ou de la campagne est chargé, le script vicidial.php montrera deux boutons sur le transfert-cadre de conférences et automatiquement le numéro à composer et envoyer les champs DTMF lorsqu-ils sont pressés. Si vous souhaitez autoriser consultatif transferts, un fronter à un proche, que l-agent utiliser la case à cocher consultatif, qui ne fonctionne pas pour les tiers VICIDIAL demande de consultation. Pour ceux qui viennent de l-agent, cliquez le bouton de cadran avec la clientèle. Alors l-agent pouvez aussi le laisser-3way-Call et passer à leur prochain appel. Si vous souhaitez autoriser les transferts aveugles de clients à un script AGI VICIDIAL l-exploitation forestière ou un SVI, puis AXFER lieu dans le numéro à composer sur le terrain. Vous pouvez également spécifier une extension personnalisée après la AXFER, par exemple si vous voulez faire un appel vers un IVR spéciaux que vous avez défini à l-extension 83900 vous mettriez AXFER83900 dans le numéro à composer sur le terrain| diff --git a/agc_2-X/branches/agc_2.2.0/translations/it_language.txt b/agc_2-X/branches/agc_2.2.0/translations/it_language.txt new file mode 100644 index 00000000..5f89674e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/it_language.txt @@ -0,0 +1,507 @@ +# it_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=it +# current languages in the file: +# - English - (en) no alterations +# - Italian - (it) second column +***LANGUAGES*** +en-English|it-Italiano| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"GEN"| +"FEB"|"FEB"| +"MAR"|"MAR"| +"APR"|"APR"| +"MAY"|"MAG"| +"JUN"|"GIU"| +"JLY"|"LUG"| +"AUG"|"AGO"| +"SEP"|"SET"| +"OCT"|"OTT"| +"NOV"|"NOV"| +"DEC"|"DIC"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Inglese| +Spanish|Spagnolo| +French|Francese| +German|Tedesco| +Italian|Italiano| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF.gif| +vdc_LB_pause.gif|vdc_LB_pause.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF.gif| +vdc_LB_resume.gif|vdc_LB_resume.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF.gif| +vdc_LB_webform.gif|vdc_LB_webform.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Ora non sei collegato. Grazie| +astGUIclient web-client VERSION|Versione di astGUIclient web-client| +astGUIclient web client|web client astGUIclient| +VICIDIAL web client|VICIDIAL web client| +VICIDIAL web-client version|Versione di VICIDIAL web-client| +You can only monitor Zap channels|Puoi soltanto monitorare i canali Zap| +Stop Record|Ferma la registrazione| +you are logged into this phone|Sei loggato su questo telefono| +Back to Main Window|Torna alla schermata principale| +LIVE CALLS ON THIS PHONE|CHIAMATE IN CORSO SU QUESTO TELEFONO| +LIVE CALLS IN THIS CONFERENCE|CHIAMATE IN CORSO SU QUESTA CONFERENZA| +LIVE CALL TRANSFER|TRASFERIMENTO DELLA CHIAMATA IN CORSO| +CLIENT CHANNEL|CANALE CLIENT| +REMOTE CHANNEL|CANALE REMOTO| +CLICK HERE TO LOG IN AGAIN|FAI CLICK QUI PER AUTENTICARTI DI NUOVO| +ACTIVE DISPLAY PAUSED|DISPLAY ATTIVO IN PAUSA| +Main Panel|Pannello Principale| +Active Lines Panel|Pannello Linee Attive| +Conferences Panel|Pannello Conferenze| +Check Voicemail|Controlla Voicemail| +Live Call|Chiamata in corso| +Hangup Trunk|Disconnetti il Trunk| +Hijack Trunk|Dirotta il Trunk| +Listen Trunk|Ascolta il Trunk| +Active Local Menu|Menu Locale Attivo| +Hangup Local|Disconnetti locale| +Hijack Local|Dirotta Locale| +Listen Local|Ascolta Locale| +Channel to be transferred|Canale trasferito| +Extensions Menu|Menu Interni| +Send to selected extension|Invia all`interno selezionato| +Send to selected vmail box|Invia alla VoiceMail selezionata| +Send to this number|Invia a questo numero| +click on a number below to send to a conference|Seleziona uno dei numeri sotto per inviarlo ad una conferenza| +Send my channel too|Invia anche il mio canale| +Conferences Menu|Menu Conferenze| +LOCAL Extensions Dial|LOCAL Extensions Dial| +Phone calling from|Chiamata proveniente da| +Call selected extension|Chiama l`interno selezionato| +Call selected vmail box|Chiama la VoiceMail selezionata| +LOCAL DIAL EXTENSIONS|LOCAL DIAL EXTENSIONS| +OUTBOUND CALLS|CHIAMATE OUTBOUND| +INBOUND CALLS|CHIAMATE INBOUND| +Refresh rate|Frequenza di refresh| +MANUAL DIAL|CHIAMATA MANUALE| +CALL DATE\/TIME|DATA/ORA CHIAMATA| +LOCAL HANGUP|DISCONNETTI LOCALE| +PARKED CALLS|CHIAMATE IN ATTESA| +PARKED BY|MESSO IN ATTESA DA| +PARKED TIME|TEMPO IN ATTESA| +Registered to|Registrato su| +Enter Conference|Entra in Conferenza| +Dial From Conf|Chiama dalla Conferenza| +Active Extensions|Interni Attivi| +Outside Lines|Linee Esterne| +Local Extensions|Interni Locali| +Data Goes Here|I Dati vanno qui| +Trunk Action|Azione Trunk| +Local Action|Azione Locale| +Conferences List|Lista delle conferenze| +Click on a conference room number on the left for info on that conference|Fai click su una delle conferenze room sulla sinistra per avere informazioni a riguardo| +List Display|Visualizza Lista| +Live Extensions|Estensioni Attive| +Busy Extensions|Estensioni Occupate| +Outside Lines|Linee Esterne| +script runtime|script runtime| +Call Log Display|Visualizza il Log della chiamata| +is not valid|non e` valido| +or protocol|o protocollo| +Conf Extension Check|Conf Extension Check| +has been registered to|e` stato registrato su| +LIVE INBOUND CALL|CHIAMATA INBOUND IN CORSO| +Number Dialed|Numero chiamato| +SEND TO MY VOICEMAIL|INVIA ALLA MIA VOICEMAIL| +Live Extension Check|Controllo Interni Attivi| +Manager Send|Invio Manager| +command not inserted|comando non inserito| +command sent for|comando inviato per| +One of these variables|Una di queste variabili| +must be greater than 2 characters|deve avere piu' di 2 caratteri| +must be greater than 14 characters|deve avere piu' di 14 caratteri| +must be set|deve essere impostato| +not sent|non inviato| +Cannot find empty conference|Impossibile trovare conferenze vuote| +is not live|non e` attivo| +RECORDING WILL LAST UP TO 60 MINUTES|LA REGISTRAZIONE DURERA` FINO A 60 MINUTI| +Parked Calls Display|Display Chiamate in Attesa| +Database Query Script|Script per query su Database| +Group Choice|Scelta del Gruppo| +has been registered to user|e` stato registrato dall`utente| +HOPPER EMPTY|LISTA DI CHIAMATA VUOTA| +LOG NOT ENTERED|LOG NON INSERITO| +has been changed to|e` cambiato| +information has been updated|le informazioni sono state aggiornate| +is now in status|e` ora nello stato| +Voicemail Check|Controllo Voicemail| +voicemail box|Casella Voicemail| +Re-Login|Re-Login| +User Password|Password Utente| +User Login|Login Utente| +Phone Login|Login Telefono| +Phone Password|Password Telefono| +Campaign not active, please try again|Campagna non attiva, prova di nuovo| +Login incorrect, please try again|Login errato, prova di nuovo| +Campaign Login|Login Campagna| +Sorry, your phone login and password are not active in this system, please try again|Spiacente, il telefono inserito non e` attivo in questo sistema, riprova di nuovo| +leads left to call in hopper|Contatti rimanenti nella lista da chiamare| +CAMPAIGN CUSTOM PARKING|CAMPAIGN CUSTOM PARKING| +CAMPAIGN DEFAULT PARKING|CAMPAIGN DEFAULT PARKING| +CAMPAIGN CUSTOM WEB FORM|CAMPAIGN CUSTOM WEB FORM| +CAMPAIGN DEFAULT WEB FORM|CAMPAIGN DEFAULT WEB FORM| +CAMPAIGN ALLOWS CLOSERS|LA CAMPAGNA PERMETTE FUORI LISTA| +CAMPAIGN ALLOWS NO CLOSERS|LA CAMPAGNA NON PERMETTE FUORI LISTA| +USING PREVIOUS MEETME ROOM|USA LA MEETME ROOM PRECEDENTE| +USING NEW MEETME ROOM|USA UNA NUOVA MEETME ROOM| +old QUEUE and INCALL reverted list|lista invertita INCALL ed old QUEUE| +old QUEUE and INCALL reverted hopper|INCALL hopper invertito ed old QUEUE| +old vicidial_live_agents records cleared|vecchi record di vicidial_live_agents eliminati| +campaign is set to auto_dial_level|la campagna e` settata in auto-dial| +new vicidial_live_agents record inserted|nuovo record vicidial_live_agents inserito| +campaign is set to manual dial|la campagna e` settata in manual_dial| +Sorry, there are no leads in the hopper for this campaign|Spiacenti, non ci sono contatti da chiamare per questa campagna| +Dial Next Number|Chiama il prossimo numero| +LIVE CALLS IN YOUR SESSION|CHIAMATE ATTIVE NELLA VOSTRA SESSIONE| +Stop Recording|Stop Recording| +Start Recording|Start Recording| +Transfer number must have more than 1 digit|Il numero per il trasferimento deve avere piu` di 1 digit| +Grab Parked Call|Riprendi la chiamata in attesa| +Park Call|Metti in attesa la chiamata| +Waiting for Ring|In attesa del Ring| +Called 3rd party|Chiamata la terza parte| +LEAVE 3-WAY CALL|LASCIA LA CONFERENZA A 3| +Dial With Customer|Chiama il Cliente| +Park Customer Dial|Metti in attesa il cliente| +Hangup Xfer Line|Riaggancia la linea trasferita| +Hangup Both Lines|Riaggancia entrambe le linee| +Hangup Customer|Riaggancia il cliente| +Transfer - Conference|Trasferimento - Conferenza| +LOCAL CLOSER|LOCAL CLOSER| +INTERNAL CLOSER|INTERNAL CLOSER| +Dial Blind Transfer|Effettua il Blind Transfer| +Dial timed out, contact your system administrator|Tempo di chiamata scaduto, contatta l`amministratore del sistema| +No more leads in the hopper for campaign|Non ci sono contatti da chiamare nella campagna| +Web Form|Web Form| +You Must Select a Disposition|Devi selezionare un esito| +GROUPS NOT SELECTED|GRUPPI NON SELEZIONATI| +SELECTED GROUPS|GRUPPI SELEZIONATI| +You cannot log out during a Dial attempt|Non puoi disconnetterti durante un tentativo di chiamata| +Wait 50 seconds for the dial to fail out if it is not answered|Attende 50 secondi prima di fallire se non c`e` risposta| +STILL A LIVE CALL! Hang it up then you can log out|LA CHIAMATA IN CORSO E' ANCORA ATTIVA! Riaggancia e quindi puoi disconnetterti| +Hide conference call channel information|Nascondi le informazioni relative al canale della conferenza| +Show conference call channel information|Mostra le informazioni relative al canale della conferenza| +Logged in as User|Loggato come Utente| +Noone is in your session|Non c'è nessuno nella tua sessione| +Customer has hung up|Il cliente ha riagganciato| +End-of-call Disposition Selection|Selezione Esito di fine chiamata| +CLOSER INBOUND GROUP SELECTION|SELEZIONE del CLOSER INBOUND GROUP| +Closer Inbound Group Selection|Selezione del Closer Inbound Group| +BLENDED CALLING|CHIAMATA MISTA| +outbound activated|outbound attivato| +Preview the Lead then|Anteprima del contatto, quindi| +Lead was not reverted, there was an error|Il contatto non e` ritornato, c`e` un errore| +call was not placed, there was an error|chiamata non effettuata, c`e` un errore| +Number to call|Numero da chiamare| +Customer Information|Dati Cliente| +Lead Dispositioned As|Esito Contatto| +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|Tutti i cambiamenti eseguiti sui dati del cliente non saranno salvati, bisogna effettuare le modifiche prima di riagganciare| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Se attivo, premi il tasto corrispondente all`esito desiderato e la chiamata sara` riagganciata automaticamente| +Disposition Hot Keys|Tasti Funzione per Esiti| +Cust Time|Cust Time| +RECORD ID|ID RECORD| +RECORDING FILE|FILE REGISTRAZIONE| +HOT KEYS ACTIVE|TASTI FUNZIONE ATTIVI| +HOT KEYS INACTIVE|TASTI FUNZIONE DISATTIVATI| +DIAL OVERRIDE|DIAL OVERRIDE| +SKIP LEAD|SKIP LEAD| +DIAL LEAD|DIAL LEAD| +LEAD PREVIEW|LEAD PREVIEW| +PAUSE AGENT DIALING|PAUSA OPERATORE| +DISPOSITION CALL|ESITO CHIAMATA| + session ID| ID sessione| + to campaign| nella campagna| +Select a CallBack Date|Selezionare una data di richiamo!| + maximize | ingrandisci | + minimize | minimizza | +You must choose a date|Devi scegliere una data| +Select a Date Below|Seleziona una data qui sotto| +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.|Selezionare una callback per chiamare il cliente ora. Una volta fatto click, il record sara` rimosso dalla 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|Se vuoi chiamare un numero e NON vuoi cha sia aggiunto come nuovo contatto, inserisci il numero che vuoi chiamare nel campo "dial override". Per chiudere la conversazione devi aprire la schermata CHIAMATE NELLA SESSIONE in basso e riagganciare cliccando sul link del canale visualizzato| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|NON PUOI SALTARE UNA CALLBACK O UNA CHIAMATA. DEVI CHIAMARE IL CONTATTO| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|DEVI ESSERE IN PAUSA PER EFFETTUARE UNA CHIAMATA MANUALE QUANDO SEI IN MODALITA` AUTODIAL| +Enter information below for the new lead you wish to call|Inserisci le informazioni per il nuovo contatto da chiamare| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|DEVI ESSERE IN PAUSA PER CONTROLLARE LA CALLBACK IN MODALITA AUTODIAL| +Note: all new manual dial leads will go into list |Nota: tutti i nuovi contatti chiamati manualmente andranno nella lista | +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|NON HAI L`AUTORIZZAZIONE PER TRASFERIRE CHIAMATE| +will be added to the beginning of this number|sara` aggiunto all`inizio di questo numero| +This is usually a 1 in the USA-Canada|Vale 1 negli USA ed in Canada| +NEW MANUAL DIAL LEAD FOR|NUOVA CHIAMATA MANUALE PER IL CONTATTO| +Finish and Disposition Call|Termina e definisci un Esito per la chiamata| +10 digits max - digits only|10 cifre massimo, solo numeri| +Note: a dial prefix of|Nota: prefisso di chiamata| +Hangup Again|Aggancia di nuovo| +Go Back|Torna Indietro| +Call Agent Again|Chiama l`operatore di nuovo| +MY CALLBACK ONLY|CALLBACK PERSONALE (nessun altro potra` richiamarlo)| +NO ACTIVE CALLBACKS|NON CI SONO CALLBACK ATTIVE| +ACTIVE CALLBACKS|CALLBACK ATTIVE| +CALLBACKS FOR AGENT|RICHIAMI PER L`OPERATORE| +Dial Code:|Codice di Chiamata:| +Dial Override|Chiamata automatica| +digits only please|solo digit per favore| +Dial Now|Chiama Ora| +CB Comments|Note Richiamo| +Title|Titolo| +Your Status|Il tuo stato| + STATUS| STATO| +RESET|RESET| +CLEAR FORM|PULISCI IL FORM| +SUBMIT|INVIA| +Incoming|In entrata| +Calling|In Chiamata| +Called|Chiamato| +Campaign|Campagna| +Status|Stato| +Inserted|Inserito| + seconds|secondi| +HELP|AIUTO| +Login|Login| +User|Utente| +Password|Password| +VERSION|VERSIONE| +BUILD|BUILD| +Server|Server| +RECORD|Registrazione| +HANGUP|RIAGGANCIA| +>XFER|>TRASF| +PARK|ATTESA| +IN-NUMBER|IN-NUMBER| +NUMBER|NUMERO| +LENGTH|LUNGHEZZA| +CALLERID|CALLERID| +CallerID|CallerID| + CALL| CHIAMATA| +PICKUP|RIPRENDI| +CONFERENCE|CONFERENZA| +Refresh|Aggiorna| +Send DTMF|Trasmetti Tono Tastiera| +ORDER|ORDINE| + on | su | +LOGOUT|LOGOUT| +Channel|Canale| +Extensions|Interni| +Conferences|Conferenze| +Conference|Conferenza| +Recording|Registrazione| +Record|Record| +Welcome|Benvenuto| +VOICEMAIL|VOICEMAIL| + NEW| NUOVO| + OLD| VECCHIO| +STOP|ARRESTO| +START|INIZIO| + Pause | Pausa | +Resume|Riprendi| +Faster|Piu` veloce| +Slower|Piu` lento| +Initializing|Inizializzazione| +Invalid|Non valido| +Username|Username| +CUSTOM|CLIENTE| +Notes|Note| +First|Nome| +MI: |MI: | +Last|Cognome| +Address|Indirizzo| +City|Citta`| +State|Stato| +PostCode|CAP| +Province|Provincia| +Vendor ID|Vendor ID| +DialCode|Prefisso| +Alt. Phone|Num. Alternativo| +Show|Mostra| +Email|Email| +Comments|Note| +REFRESH|AGGIORNA| +ALT PHONE DIAL|CHIAMA ALT NUM| +MAIN PHONE|NUMERO PRINCIPALE| +ALT PHONE|NUMERO ALTERNATIVO| +ADDRESS3|INDIRIZZO3| +FINISH LEAD|Termina Contatto| +Dial Alt Phone Number|Chiama Numero Altern.| +Phone|Telefono| +VICIDIAL|VICIDIAL| + DIAL| CHIAMA| +SUBMIT FAVORITES CHANGES - requires logout|SALVA I CAMBIAMENTI AI PREFERITI - richiede Logout| +BACK TO MAIN WINDOW - ignore changes made|TORNA ALLA SCHERMATA PRECEDENTE- ignora i cambiamenti fatti| +AVAILABLE EXTENSIONS|INTERNI DISPONIBILI| + edit| modifica| + FAVORITES| PREFERITI| +### END translation phrases through 1.1.11 release ### +Search Existing Leads|Cerca Contatti esistenti| +This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Questa opzione tentera` di trovare il numero di telefono nel sistema prima di inserire un nuovo contatto| +Finish Wrapup and Move On|Termina riposo e continua| +seconds remaining in wrapup|secondi di riposo restanti| +Call Wrapup:|Call Wrapup:| +### months of the year for CallBack date select screen ### +January|Gennaio| +February|Febbraio| +March|Marzo| +April|Aprile| +May|Maggio| +June|Giugno| +July|Luglio| +August|Agosto| +September|Settembre| +October|Ottobre| +November|Novembre| +December|Dicembre| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Informazioni richiamo precedente| +Last Call: |Ultima Chiamata:| +CallBack: |Richiamo:| +Agent: |Operatore:| +Comments: |Note:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|VOLUME| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|CHIAMATA VELOCE| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|DEVI INSERIRE UN NUMERO DI TELEFONO E UN CODICE PER USARE LA CHIAMATA VELOCE| + SELECT A PAUSE CODE :| SELEZIONARE UN CODICE PAUSA:| +ENTER A PAUSE CODE|INSERIRE UN CODICE PAUSA| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|DEVI ESSERE IN PAUSA PER INSERIRE UN CODICE PAUSA IN MODALITA` AUTODIAL| +Your session has been disabled|La tua sessione e` stata disabilitata| +CALL DISPOSITION|ESITO CHIAMATA| +COMMENTS|NOTE| +CALLBACK DATE/TIME|DATA/ORA RICHIAMO| +LAST CALL DATE/TIME|DATA/ORA ULTIMA CHIAMATA| +Invalid Username/Password:|Username/Password non validi:| +Invalid session_name:|Nome sessione non valido:| +PLEASE SELECT A CAMPAIGN|SELEZIONARE UNA CAMPAGNA| +SELECTED|SELEZIONATO| +No Extension Favorites Present|Nessun interno preferito presente| +Invalid server_ip:|ip del server non valido:| +Hour:|Ora:| +Minutes:|Minuti:| +### BEGIN translation phrases for 2.0.4 release build 760 +Gender: |Sesso: | +M - Male|M - Maschio| +F - Female|F - Femmina| +### BEGIN translation phrases for 2.0.5 release build 890 +Date of Birth: |Data di Nascita: | +YOU MUST BE PAUSED TO CHANGE GROUPS|DEVI ESSERE IN PAUSA PER CAMBIARE GRUPPO| +Calls in Queue:|Chiamate in coda:| + Timeclock|Orologio| +The user and password you entered are not active in the system|Lutente e la password che hai inserito non sono attivi nel sistema| +Please try again|Si prega di riprovare| +You cannot log in or out within 30 seconds of your last login or logout|Non è possibile accedere o entro 30 secondi del tuo ultimo accesso o il logout| +You have now logged-out|Lei ha appena effettuato laccesso-out| +You logged out at |Hai effettuato laccesso a| +Amount of time you were logged-in: |Importo di tempo sono state registrate in:| +ERROR: timeclock log entry already made: |ERRORE: orologio registro entrata già fatto:| +BACK to Agent Login Screen|Torna alla schermata di login di agente| +BACK to Administration|BACK per Amministrazione| +BACK to Welcome Screen|Torna alla schermata iniziale| +Time since you were last logged-in: |Tempo dallultimo registrato in:| +You last logged-out at: |È lultima connesso a:| +Click LOGIN below to log-in|Clicca qui sotto per LOGIN log-in| +Amount of time you have been logged-in: |Quantità di tempo è stato registrato in:| +You logged-in at:|Hai effettuato laccesso al-in:| +Click LOGOUT below to log-out|Clicca qui sotto per LOGOUT log-out| +Undefined|Undefined| +This phone number is not in the campaign lists|Questo numero di telefono non si trova nella campagna di elenchi| +Unspecified error|Errore non specificato| +Extended Alt Phone Information: |Estensione Alt Telefono informazioni:| +ALT DIAL NUMBER:|ALT DIAL NUMERO:| +Phone Code and Number:|Codice e Numero di telefono:| +Notes: |Note:| +Active: |Attivo:| +Alt Count: |Alt Conte:| +Change this phone number to INACTIVE|Cambia il numero di telefono a INACTIVE| +Change this phone number to ACTIVE|Cambia il numero di telefono per ATTIVO| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|È necessario accedere al orologio LA PRIMA| +There is a time synchronization problem with your system, please tell your system administrator|Cè un problema di sincronizzazione con il tempo il vostro sistema, si prega di informare lamministratore di sistema| +Preview Call|Anteprima invito| +SELECT A GROUP ALIAS|SCEGLI UN GRUPPO ALIAS| +Group Alias Selection|Gruppo Alias selezione| +Click Here to Choose a Group Alias|Clicca qui per scegliere un gruppo Alias| +Group Alias|Gruppo Alias| +ERROR: There are no Shifts enabled for your user group|ERRORE: Non ci sono cambiamenti abilitati per il tuo gruppo di utenti| +ERROR: You are not allowed to log in outside of your shift|ERRORE: Non ti è consentito di accedere al di fuori del proprio turno| +MANAGER OVERRIDE|Sovrascrive MANAGER| +Your Shift is over or has changed, you have been logged out of your session|Il tuo Shift è finita o è cambiato, è stato disconnesso dal tuo sessione| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Non ti è permesso di comporre in sessioni altro agente| +QUICK TRANSFER|QUICK TRANSFER| +Other Agents Status|Altri agenti Status| +Available Agents Transfer|Agenti di trasferimento disponibili| +Show Calls In Queue|Mostra le chiamate in coda| +Calls In Queue|Chiamate in coda| +Hide Calls In Queue|Nascondere chiamate in coda| +Calls in Queue View Disabled for this campaign|Chiamate in coda Visualizza disabili per questa campagna| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|DEVI ESSERE IN PAUSA PER CHIAMATE GRAB IN CODA| +Manager |Manager| +has selected your in-group choices|ha selezionato il vostro in-selezioni per il gruppo| +CONSULTATIVE|CONSULTIVO| +Close Message|Chiudi Message| +TIMER NOTIFICATION|TIMER NOTIFICA| diff --git a/agc_2-X/branches/agc_2.2.0/translations/it_language_admin.txt b/agc_2-X/branches/agc_2.2.0/translations/it_language_admin.txt new file mode 100644 index 00000000..d0e1bbf9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/it_language_admin.txt @@ -0,0 +1,2598 @@ +# it_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=it +# current languages in the file: +# - English - (en) no alterations +# - Italian - (it) first column +***LANGUAGES*** +en-English|it-Italiano| +***FILES*** +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 +vicidial|listloader.pl|1 +vicidial|listloader_rowdisplay.pl|1 +vicidial|listloader_super.pl|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_timeonVDADallSUMMARY.php|0 +vicidial|inbound_popup.php|0 +vicidial|AST_inboundEXTstats.php|0 +vicidial|welcome.php|0 +vicidial|admin_header.php|0 +vicidial|vicidial_sales_viewer.php|0 +vicidial|user_group_bulk_change.php|0 +vicidial|AST_agent_status_detail.php|0 +vicidial|AST_agent_days_detail.php|0 +vicidial|AST_CLOSER_service_level.php|0 +vicidial|AST_IVRfilter.php|0 +vicidial|AST_IVRstats.php|0 +vicidial|call_report_export.php|0 +vicidial|fcstats.php|0 +vicidial|list_download.php|0 +vicidial|non_agent_api.php|1 +vicidial|timeclock_edit.php|0 +vicidial|timeclock_report.php|0 +vicidial|timeclock_status.php|0 +vicidial|vtiger_search.php|1 +vicidial|vtiger_user.php|1 +vicidial|welcome_demo.php|1 +vicidial|welcome_languages.php|1 +vicidial|vicidial_admin_web_logo.gif|1 +vicidial|vicidial_admin_web_logo_small.gif|1 +vicidial|user_territories.php|1 +vicidial|audio_store.php|1 +vicidial|AST_agent_time_detail.php|1 +vicidial|AST_agent_timeclock_detail.php|1 +vicidial|AST_OUTBOUNDsummary_interval.php|1 +vicidial|call_report_export.php|1 +vicidial|AST_CLOSERsummary_hourly.php|1 +vicidial|functions.php|1 +***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|Inglese| +Spanish|Spagnolo| +French|Francese| +German|Tedesco| +Italian|Italiano| +You have now logged out. Thank you|Ora non sei collegato. Grazie| +Invalid Username\/Password|Username/Password non validi| +ASTERISK ADMIN: Administration|ASTERISK ADMIN: Amministrazione| +PHONES TABLE|TABELLA TELEFONI| +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.|Extension del telefono - este campo es donde usted pone los nombres del telefono que aparecen al marcar con asterisco no incluyendo el protocolo o la barra vertical del principio. Por ejemplo: para el telefono SIP/test101 del SIP la extension del telefono sería test101. Tambien, para los telefonos IAX2 compruebe que usted utiliza el nombre del telefono completo: IAX2/IAXphone1@IAXphone1 sería IAXphone1@IAXphone1. Para zap los telefonos 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 telefono.| +Dial Plan 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 Dial plan - este campo está para el número que usted marca para tener el anillo del telefono. Este número se define en el archivo de extensions.conf de su servidor asterisco| +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 Buzon de Voz - este campo es para la caja del Buzon de voz donde van los mensajes para al usuario de este telefono. Utilizamos esto para comprobar los mensajes del Buzon de voz y para que el usuario pueda acceder al Buzon de Voz desde astGUIclient| +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 - 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| +Phone IP address -<\/B> This field is for the phone`s IP address if it is a VOIP phone. This is an optional field|Direccion IP del telefono - este campo es para la Direccion IP del telefono si es un telefono de VOZIP. Este es un campo opcional| +Computer IP address -<\/B> This field is for the user`s computer IP address. This is an optional field|Direccion IP del ordenador - este campo es para la Direccion IP del ordenador del usuario. Es un campo opcional| +Server IP -<\/B> This menu is where you select which server the phone is active on|IP del servidor - Este menú es donde usted selecciona en que servidor está el telefono activo| +Login -<\/B> The login used for the phone user to get to admin functions|Login - El nombre de usuario del telefono para conseguir los permisos de admin| +Password -<\/B> The password used for the phone user to get to admin functions|Contraseña - la contraseña usada por el usuario del telefono para conseguir los permisos de admin| +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 - el estado del telefono en el sistema, puede ser ACTIVO y ADMIN permiten que los clientes del GUI trabajen. ADMIN permite el acceso a este Web site de administracion. El resto de los estados no permiten el acceso al GUI o al Web de Admin| +Active Account -<\/B> Whether the phone is active to put it in the list in the GUI client|Cuenta activa - si el telefono está activado ponerla en la lista del cliente del GUI| +Phone Type -<\/B> Purely for administrative notes|Tipo de telefono - solamente para informacion administrativas| +Full Name -<\/B> Used by the GUIclient in the list of active phones|Nombre completo - usado por el GUIclient en la lista de telefonos activos| +Company -<\/B> Purely for administrative notes|Compañía - solamente para las notas administrativas| +Picture -<\/B> Not yet Implemented|Cuadro - todavía no puesto en ejecucio`n| +New Messages -<\/B> Number of new voicemail messages for this phone on the Asterisk server|Nuevos mensajes - número de los nuevos mensajes del Buzon de Voz para este telefono en el servidor del asterisco| +Old Messages -<\/B> Number of old voicemail messages for this phone on the Asterisk server|Viejos mensajes - número de los viejos mensajes del Buzon de Voz para este telefono en el servidor del asterisco| +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 - el protocolo que el telefono utiliza para conectar con el servidor del asterisco: El Sip, IAX2, Zap. Tambien, para los números External remotos o los números SpeedDial que usted desea enumerar como telefonos| +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 - La diferencia a partir del tiempo malo del ZULÚ del time(or de Greenwich) donde se localiza el telefono. 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| +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|conexion del encargado - esta es la conexion que los clientes del GUI para este telefono utilizarán tener acceso a la base de datos donde residen los datos del servidor| +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 - esta es la contraseña que los clientes del GUI para este telefono utilizarán tener acceso a la base de datos donde residen los datos del servidor| +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 - este debe poner un valor prefijado en el campo del usuario de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún usuario| +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 - este debe poner un valor prefijado en el campo de la contraseña de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ningún paso| +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 - este debe poner un valor prefijado en el campo de la campaña de VICIDIAL siempre que este usuario del telefono abra a cliente app de astVICIDIAL. Deje el espacio en blanco para ninguna campaña| +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 - esta es la extension del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto| +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 - esta es la extension del parque de la conferencia del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto| +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 - esta es la extension 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 - este es el nombre del archivo de la extension del parque del defecto VICIDIAL para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie este limitado a 10 caracteres| +Monitor Prefix -<\/B> This is the dial plan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records|Prefijo del monitor - este es el prefijo dial plan 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 dial plan 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|grabacion Exten - esta es la extension dial plan para la extension de la grabacion 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 dial plan extension going to check your voicemail. verify with extensions.conf file before changing|VMAIL Exten principal - esta es la extension dial plan que va a comprobar su voicemail. verifica con el archivo de extensions.conf antes de cambiar| +VMAIL Dump Exten -<\/B> This is the dial plan 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 - este es el prefijo dial plan 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 dial plan 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 - este es el contexto dial plan que este telefono 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 este 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 - esta 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 - este es el grupo de canal que las llamadas de salida de este telefono 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)| +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|Localizacio`n del browser - 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 - este 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 - Ústa es la Direccion de la tela de la página usada para hacer operaciones de búsqueda de encargo del callerID que es la Direccion 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 - esta es la Direccion de la tela de la página usada para hacer preguntas de encargo de la forma del Web de VICIDIAL que es la Direccion de prueba del defecto: http://astguiclient.sf.net/test_VICIDIAL_output.php| +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 hang up `h` extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly|Registracion de la llamada - 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| +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|Conmutacio`n del usuario - fije para verdad para permitir que el usuario cambie a otra cuenta del usuario. NOTA: Si los interruptores del usuario ellos pueden iniciar la grabacion en la conversacion de telefono del nuevo usuario| +Conferencing -<\/B> Set to true to allow user to start conference calls with upto six external lines|Comunicacio`n - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas| +Admin Hang Up -<\/B> Set to true to allow user to be able to hang up any line at will through astGUIclient. Good idea only to enable this for Admin users|Retraso del Admin - 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| +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 - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extension 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| +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 - fije para verdad para permitir que el usuario pueda asir y volver a dirigir a su extension 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| +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 hang up. Usually enabled for all|Parque de llamada - 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| +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 - 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| +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 - fije para verdad para registrar muchas acciones del uso astGUIclient a un archivo de texto en la computadora del usuario| +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 permitio` - 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| +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 - 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| +VMail Button -<\/B> Set to true to display the VOICEMAIL button and the messages count display on astGUIclient|Boto`n de VMail - fije para verdad para exhibir el boton de VOICEMAIL y los mensajes cuentan la exhibicio`n en 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 - fije para verdad para permitir un nuevo índice de restauran de la informacion 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| +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 - 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| +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 - si está permitida la conexion 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| +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 - si está permitido el cliente de VICIDIAL marcará el número siguiente en la lista automáticamente sobre la disposicion de una llamada a menos que seleccionaran "para parar el marcar" en la pantalla de la disposicion| +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 despue`s de cada llamada - si está permitido el cliente de VICIDIAL parará se está encendiendo cualquier grabacion despue`s de que haya sido cada llamada dispositioned. Útil si usted está haciendo muchos de la grabacion o usted están utilizando una forma de la tela para accionar la grabacion| +DBX Server -<\/B> The MySQL database server that this user should be connecting to|Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar| +DBX Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco| +DBX User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Usuario de DBX - la conexion del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron| +DBX Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234| +DBX Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306| +DBY Server -<\/B> The MySQL database server that this user should be connecting to|Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar| +DBY Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco| +DBY User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Usuario de DBY - la conexion del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron| +DBY Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234| +DBY Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 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|SELEZIONARE UN NUMERO E UNA DATA QUI IN ALTO E CLICCARE SU INVIA| +Total Calls That came into this number|Totale chiamate ricevute da questo numero| +Average Call Length(seconds) for all Calls|Durata Media Chiamate (secondi) per tutte le chiamate| +Total DROP Calls: (less than 10 seconds)|Totale chiamate ABBATTUTE: (meno di 10 secondi)| +Average Call Length(seconds) for DROP Calls|Durata Media Chiamate (secondi) per le chiamate ABBATTUTE| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS|GRAFICO AD INCREMENTO DI 15 MINUTI DEL TOTALE DELLE CHIAMATE| +Click on the channel below that you would like to have directed to your phone|Clicca sul canale che vuoi trasferire al tuo telefono| +LAST 1000 CALLS FOR DATE RANGE|ULTIME 1000 CHIAMATE PER INTERVALLO DI DATA| +Click here to see what leads are in the hopper right now|Clicca qui per vedere quali numeri sono nella coda chiamate in questo momento| +CUSTOM STATUSES WITHIN THIS CAMPAIGN|ESITI PERSONALIZZATI PER QUESTA CAMPAGNA| +PLEASE SELECT A CAMPAIGN ABOVE AND CLICK SUBMIT|PER FAVORE SELEZIONA UNA CAMPAGNA E PREMI INVIA| +PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK SUBMIT|PER FAVORE SELEZIONA UNA CAMPAGNA E UNA DATA E PREMI INVIA| +PLEASE SELECT A SERVER, DATE AND TIME RANGE ABOVE AND CLICK SUBMIT|PER FAVORE SELEZIONA UN SERVER, UNA DATA, UN INTERVALLO DI TEMPO E PREMI INVIA| +GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS PLACED FROM THIS CAMPAIGN|GRAFICO AD INCREMENTO DI 15 MINUTI DEL TOTALE DELLE CHIAMATE EFFETTUATE PER QUESTA CAMPAGNA| +ERROR: The file does not have the required number of fields to process it|ERRORE: Il file non ha il numero di campi necessare per essere elaborato| +ERROR: File exceeds the 8MB limit|ERROR: Il file supera il limite di 8 MB| +Please enter the group you want to get hourly stats for|Per favore inserisci il gruppo per il quale vuoi le statistiche orarie| +The search variables you entered are not active in the system|Le variabili di ricerca inserite non sono attive in questo sistema| +Please go back and double check the information you entered and submit again|Per favore torna indietro e controlla di nuovo le informazioni inserite, quindi reinviale di nuovo| +Click here to see the Lead Details|Clicca qui per vedere i dettagli del contatto| +Detail|Dettagliata| +Statuses|Esiti| +HotKeys|Hot-Key| +Pause Codes|Codici Pausa| +Lead Recycling|Riciclaggio Contatti| +SERVERS TABLE|TABELLA SERVER| +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 - 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| +Server Description -<\/B> The field where you use a small phrase to describe the Asterisk server|Descripcio`n del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco| +Server IP Address -<\/B> The field where you put the Network IP address of the Asterisk server|IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco| +Active -<\/B> Set whether the Asterisk server is active or inactive|Activo - fije si el servidor del asterisco es activo o inactivo| +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|Versio`n del asterisco - fije la versio`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 me`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 manipulacio`n de su Local/ acanala. Tambien, CVS_HEAD actual y las 1.2 aplicaciones diverso encargado y comando del árbol del lanzamiento hicieron salir así que debe ser tratado diverso Tambien| +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 - 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| +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|Anfitrio`n del telnet - este es la Direccion o el nombre del servidor del asterisco y es co`mo los usos del encargado conectan con e`l de donde están funcionando. Si están funcionando en el servidor del asterisco, despue`s el defecto del ` localhost ` está muy bien| +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 - este es el puerto de la conexion del encargado del servidor del asterisco y es co`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| +Manager User -<\/B> The username or login used to connect genericly to the Asterisk server manager. Default is `cron`|Usuario del encargado - el username o la conexion conectaba genericly con el encargado del servidor del asterisco. El defecto es `cron`| +Manager Secret -<\/B> The secret or password used to connect genericly to the Asterisk server manager. Default is `1234`|Secreto del encargado - el secreto o la contraseña conectaba genericly con el encargado del servidor del asterisco. El defecto es `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 actualizacio`n del encargado - el username o la conexion conectaba con el encargado del servidor del asterisco optimizado para las escrituras de la actualizacio`n. Omita es `updatecron` y asume el mismo secreto que el usuario gene`rico| +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 - el username o la conexion 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 gene`rico| +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 - el username o la conexion 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 gene`rico| +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 compenso` - 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`| +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 - el prefijo de VMail de la extension usado en este servidor para enviar llamadas directamente a trave`s de agc a una caja específica del voicemail. El defecto es `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`|Extension del ANUNCIO de VICIDIAL - la extension del defecto si ninguno está presente en la campaña enviar llamadas para a marcar auto de VICIDIAL. El defecto es `8365`| +Default Context -<\/B> The default dial plan context used for scripts that operate for this server. Default is `default`|Contexto del defecto - el contexto dial plan del defecto usado para las escrituras que funcionan para este servidor. El defecto es `defecto`| +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|Identificacio`n del usuario - este campo es donde usted pone el número de la identificacio`n del usuario de VICIDIAL, puede ser hasta 8 dígitos en longitud, debe ser por lo menos 2 caracteres en longitud| +Password -<\/B> This field is where you put the VICIDIAL users password. Must be at least 2 characters in length|Contraseña - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud| +Full Name -<\/B> This field is where you put the VICIDIAL users full name. Must be at least 2 characters in length|Nombre completo - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud| +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 - 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 sesio`n como más cercano, deben ser el nivel de usuario 8 o mayor conseguir en la seccio`n de la tela del admin| +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 - 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, este es justo subdividir a usuarios y permitir las características futuras basadas sobre e`l| +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|conexion del telefono - aquí es para donde usted puede fijar un valor de la conexion del telefono 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 conexion de 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 telefono - aquí es para donde usted puede fijar un valor del paso del telefono 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 conexion de 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 cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima a otros usuarios del igual o de poco nivel de usuario del sistema| +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 - esta opcio`n si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema| +Delete Lists -<\/B> This option if set to 1 allows the user to delete vicidial lists from the system|La cancelacio`n enumera - esta opcio`n si el sistema a 1 permite que el usuario suprima listas vicidial del sistema| +Delete Campaigns -<\/B> This option if set to 1 allows the user to delete vicidial campaigns from the system|La cancelacio`n hace campaña - esta opcio`n si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema| +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 cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema| +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 - esta opcio`n si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema| +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 - esta opcio`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| +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 - esta opcio`n si el sistema a 1 permite que el usuario visio`n y modifique los elementos de la pantalla del detalle de la campaña| +AGC Admin Access -<\/B> This option if set to 1 allows the user to login to the astGUIclient admin pages|Acceso de AGC Admin - esta opcio`n si el sistema a 1 permite a usuario a la conexion a las páginas astGUIclient del admin| +AGC Delete Phones -<\/B> This option if set to 1 allows the user to delete phone entries in the astGUIclient admin pages|La cancelacio`n de AGC telefona - esta opcio`n si el sistema a 1 permite que el usuario suprima entradas del telefono en las páginas astGUIclient del admin| +Delete Scripts -<\/B> This option if set to 1 allows the user to delete Campaign scripts in the script modification screen|Escrituras de la cancelacio`n - esta opcio`n si el sistema a 1 permite que el usuario suprima las escrituras de la campaña en la pantalla de la modificacio`n de la escritura| +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|Identificacio`n de la escritura - este es el nombre corto de una escritura de Vicidial. este necesita ser un identificador único. Intente no utilizar ningunos espacios o puntuacio`n para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres| +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 - este es el título de una escritura de Vicidial. este es un resumen corto de los caracteres del máximo 50 de la escritura, mínimo de 2 caracteres. No debe haber espacios o puntuacio`n de la clase en campo de los 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 - este 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| +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----

    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?

    This would read----

    Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?|Texto de la escritura - aquí es adonde usted pone el contenido de una escritura de Vicidial. Mínimo de 2 caracteres. Usted puede hacer la informacion 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 oracio`n imprimiría el nombre de las personas en e`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-- co`mo está usted hoy? Esto leería ¿Hola, puedo hablar Juan Doe por favor? ¿Sr. Doe del pozo hola co`mo está usted hoy?| +Active -<\/B> This determines whether this script can be selected to be used by a campaign|Activo - 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|Identificacio`n de la campaña - Úste es el nombre corto de la campaña, e`l no es editable despue`s de la sumisio`n inicial, no puede contener espacios y debe estar entre 2 y 8 caracteres en longitud| +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 - esta es la descripcio`n de la campaña, debe estar entre 6 y 40 caracteres en longitud| +Active -<\/B> This is where you set the campaign to Active or Inactive. If Inactive, noone can log into it|Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en e`l| +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|Extension del parque - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cercio`rese de que la extension este` en lugar en el extensions.conf y eso que señala al nombre de fichero abajo| +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 - aquí es donde usted puede modificar para requisitos particulares en-sostiene la música para VICIDIAL. Cercio`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| +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 - aquí es donde usted puede fijar el Web page de encargo que será abierto cuando el usuario chasca encendido el boton de la FORMA del WEB| +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 - aquí es donde usted puede fijar si los usuarios de esta campaña tendrán la opcio`n para enviar la llamada a un más cercano| +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 - 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| +List Order - 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 - Este menú es donde usted selecciona co`mo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo| +select the first leads loaded into the vicidial_list table|seleziona i primi contatti caricati nella tabella vicidial_list| +select the last leads loaded into the vicidial_list table|seleziona gli ultimi contatti caricati nella tabella vicidial_list| +select the highest phone number and works its way down|seleziona il numero di telefono piu` grande e poi scorre verso il basso| +select the lowest phone number and works its way up|seleziona il numero di telefono piu` piccolo e poi scorre verso l`alto| +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 - este 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 trave`s en un minuto| +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 - esto permite que usted limpie fuera del contenido de la tolva sobre la sumisio`n de la forma. Debe ser llenada otra vez cuando la escritura de VDhopper funciona| +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 - aquí es adonde usted fija cuántos alinea VICIDIAL debe utilizar por medios del agente activo cero 0 que el marcar del automo`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| +Next Agent Call -<\/B> This determines which agent receives the next call that is available|Llamada siguiente del agente - esto se determina que` agente recibe la llamada siguiente que está disponible| +orders by the random update value in the vicidial_live_agents table|o`rdenes por el valor al azar de la actualizacio`n en la tabla de los 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 o`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 o`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 - aquí es adonde usted fijo` durante que` horas usted quisiera marcar, según lo determinado por el tiempo local en está en cuál usted está llamando. Esto es controlada por co`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| +Voicemail -<\/B> If defined, calls that would normally DROP would instead be directed to this voicemail box to hear and leave a message|Voicemail - 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| +Dial Timeout -<\/B> If defined, calls that would normally hang up 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 - si está definido, llamadas que normalmente retraso despue`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| +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 dial plan - extensions.conf|Prefijo del dial - este campo permite más fácilmente cambiar una trayectoria de marcar a salir con un diverso me`todo sin hacer una recarga en asterisco. El defecto es 9 basados sobre un 91NXXNXXXXXX en el dial plan - 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. 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 - 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 opcio`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 Tambien 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| +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|Extension de la campaña VDAD - este campo permite una extension 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 e`l se tome. Una encuesta sobre política AGI la muestra adicional es Tambien (8366 agi-VDADtransferSURVEY.agi ) ese ahora incluido los juegos un mensaje a la persona llamada y permite que e`l haga una opcio`n presionando buttons(effectively la pre-investigacio`n el plomo). Observe por favor eso a excepcio`n de los exámenes, llamadas políticas y las caridades esta forma de llamar son ilegales en los Estados Unidos| +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|Extension de Rec de la Campaña - este campo permite para que una extension de encargo de la grabacion sea utilizada con VICIDIAL. Esto permite que usted utilice diversas extensiones dependiendo sobre cuánto tiempo usted desea permitir una grabacion máxima y que` 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 opcio`n incluida en los ejemplos es 8310 que registrarán en el formato del GSM para hasta que una hora| +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|grabacion de la campaña - este menú permite que usted elija que` nivel de la grabacion se permite en esta campaña. NEVER inhabilitará la grabacion en el cliente. ONDEMAND es el defecto y permite que el agente comience y pare a registrar según lo necesitado. ALLCALLS comenzará la grabacion en el cliente siempre que una llamada se envíe a un agente| +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 - este campo permite que usted modifique el nombre para requisitos particulares de la grabacion cuando la grabacion 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| +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 - 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| +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 - 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| +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 dial plan - extensions.conf - and make sure it plays an audio file then hangs up|Mensaje del contestador automático - este campo está para entrar en una extension para cegar llamadas de la transferencia a cuando el agente consigue un contestador automático y chasca encendido el boton del mensaje del contestador automático en el marco de la conferencia de la transferencia. Usted debe fijar esto exten para arriba en el dial plan - extensions.conf - y se cerciora de que juega un archivo audio despue`s que cuelga para arriba| +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|Identificacio`n de la lista - Úste es el nombre nume`rico de la lista, e`l no es editable despue`s de la sumisio`n inicial, debe contener solamente números y debe estar entre 2 y 8 caracteres en longitud| +List Name -<\/B> This is the description of the list, it must be between 2 and 20 characters in length|Nombre de la lista - esta es la descripcio`n de la lista, debe estar entre 2 y 20 caracteres en longitud| +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 - esta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente| +Active -<\/B> This defines whether the list is to be dialed on or not|Activo - esto define si la lista debe ser marcada encendido o no| +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 - 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| +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|Identificacio`n de grupo - Úste es el nombre corto del grupo de entrada, e`l no es editable despue`s de la sumisio`n inicial, no debe contener cualquier espacio y debe estar entre 2 y 20 caracteres en longitud| +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 - esta es la descripcio`n del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios| +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 - este 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 definicio`n del color de la tuerca hexagonal usted debe recordar poner a # al principio de la secuencia o VICIDIAL no trabajará correctamente| +Active -<\/B> This determines whether this group show up in the selection box when a VICIDIAL agent logs in|Activo - esto se determina si este grupo demuestra para arriba en la caja de la seleccio`n cuando un agente de VICIDIAL entra| +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 - esta es la Direccion de encargo que el chascar en el boton de la FORMA del WEB en VICIDIAL le llevará para las llamadas que vienen adentro en este grupo| +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 - si está definida, esta es la caja de Voicemail que las llamadas irán en vez a ser caído si no hay agentes disponibles despue`s del tiempo de asimiento están para arriba| +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|Exhibicio`n de Fronter - 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| +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 identificacio`n del usuario - esta es la identificacio`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| +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 - 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| +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 - Una entrada alejada del agente es solamente buena para un servidor específico, aquí es donde usted selecciona a que el servidor usted desea| +External Extension -<\/B> This is the number that you want the calls forwarded to. Make sure that it is a full dial plan 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|Extension externa - este es el número que usted desea las llamadas remitidas a. Cercio`rese de que sea un número dial plan completo y que si usted necesita 9 al principio usted lo pone adentro aquí. Pruebe marcando este número de un telefono en el sistema| +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 - 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| +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 - 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 e`sa que usted desea recibir llamadas de| +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 - 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| +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 identificacio`n de la lista en la primera columna| +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 descripcio`n debe ser 2-30 caracteres en longitud y seleccionable define si demuestra para arriba en VICIDIAL como disposicion| +Through the use of custom campaign hot keys, agents that use the vicidial web-client can hang up and disposition calls just by pressing a single key on their keyboard|Con el uso de los hot keys de encargo de la campaña, los agentes que utilizan el retraso vicidial de la lata del tela-cliente y la disposicion llama apenas presionando una sola llave en su teclado| +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 - este es el nombre corto de un grupo de usuario de Vicidial, intento para no utilizar ningunos espacios o puntuacio`n para los caracteres de este máximo 20 del campo, mínimo de 2 caracteres| +Group Name -<\/B> This is the description of the vicidial user group max of 40 characters|Nombre de grupo - esta es la descripcio`n del máximo vicidial del grupo de usuario de 40 caracteres| +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 - 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| +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 - este menú permite que usted defina si un mensaje este` dejado en un contestador automático cuando se detecta la llamada será remitido inmediatamente a la extension del Contestar-Ma`quina-Mensaje si AMD es activo y se determina que la llamada es un contestador automático| +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 - esta opcio`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 seccio`n del admin| +Hot Keys Active -<\/B> This option if set to 1 allows the user to use the Hot Keys quick-dispositioning function in|Hot Keys activo - esta opcio`n si el sistema a 1 permite que el usuario utilice la funcio`n ra`pida-dispositioning de Hot Keys adentro| +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 - esta opcio`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 e`l| +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 - esta opcio`n si el sistema a 1 permite que el usuario elija los ingroups de los cuales recibirán llamadas cuando ellos conexion 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| +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 - este es un me`todo de filtrar sus plomos usando un fragmento de una pregunta del SQL. Utilice esta característica con la precaucio`n, e`l es fácil de parar el marcar accidentalmente con la alteracio`n más leve a la declaracio`n del SQL. El defecto no es NINGUNO| +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|Identificacio`n del filtro - este es el nombre corto de un filtro del plomo de Vicidial. este necesita ser un identificador único. No utilice ningunos espacios o puntuacio`n para los caracteres de este máximo 10 del campo, mínimo de 2 caracteres| +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 - este es un nombre más descriptivo del filtro. este es un resumen corto de los caracteres del máximo 30 del filtro, mínimo de 2 caracteres| +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 - 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| +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 - 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| +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 nume`rico del Alt del agente - esta opcio`n permite que un agente marque manualmente el número de telefono o el campo alterno address3 despue`s de que se haya llamado el número principal| +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 - esta opcio`n no prohibe a agente a la disposicion una llamada como CALLBK y elige los datos y el tiempo en los cuales el plomo será reactivado| +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 - esta opcio`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 Tambien permite que el agente vea sus listados del servicio repetido y los llame detrás cualquier momento desean a| +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 - esta opcio`n permite que un agente incorpore manualmente un nuevo plomo en el sistema y los llame. Esto Tambien permite llamar de cualquier número de telefono de su pantalla vicidial y pone esa llamada en su sesio`n. Utilice esta opcio`n con la precaucio`n| +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|grabacion de Vicidial - esta opcio`n puede evitar que un agente haga cualquier grabacion despue`s de que se abran una sesio`n a vicidial. Esta opcio`n debe estar encendido para que vicidial siga la sesio`n de la grabacion de la campaña| +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 - esta opcio`n puede evitar que un agente abra la transferencia - la sesio`n de la conferencia de vicidial. Si esto es lisiado, el agente no puede llamada de los terceros o la transferencia oculta cualquiera llama| +Delete Filters -<\/B> This option allows the user to be able to delete vicidial lead filters from the system|La cancelacio`n se filtra - esta opcio`n permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema| +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 - esta opcio`n si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php| +Closer Default Blended -<\/B> This option simply defaults the Blended checkbox on a CLOSER login screen|Un defecto más cercano mezclado - esta opcio`n omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexion| +FILTER NOT ADDED - there is already a filter entry with this ID|FILTRO NON AGGIUNTO - Esiste gia` un altro filtro con questo ID| +Filter ID, name and SQL must be at least 2 characters in length|ID Filtro, nome e SQL devono essere lunghi almeno 2 caratteri| +Filter ID must be at least 2 characters in length|ID Filtro deve essere lungo almeno 2 caratteri| +Please go back and look at the data you entered|Per favore torna indietro e ricontrolla i dati inseriti| +CLICK HERE TO GO TO THE SUPER LEAD LOADER|CLICCA QUI PER ACCEDERE AL `SUPER LEAD LOADER`| +BACK TO ADMIN|TORNA AD AMMINISTRAZIONE| +File layout to use|Struttura del file da usare| +Standard VICIDIAL|Standard VICIDIAL| +Custom layout|Struttura personalizzata| +CLICK HERE TO GO TO THE BASIC LEAD LOADER|CLICCA QUI PER ACCEDERE AL CARICATORE CONTATTI STANDARD| +SUPER LIST LOADER|SUPER LIST LOADER| +OK TO PROCESS|OK PER ELABORARE| +File data|Dati File| +short description of the filter|breve descrizione del filtro| +Alter Agent Interface Options: |Modifica Opzioni Interfaccia Operatore: | +Click here to delete filter |Clicca qui per cancellare il filtro| +FILTER DELETION COMPLETED:|CANCELLAZIONE FILTRO COMPLETATA:| +ADMIN INTERFACE OPTIONS:|OPZIONI INTERFACCIA AMMINISTRATORE:| +AGENT INTERFACE OPTIONS:|OPZIONI INTERFACCIA OPERATORE:| +Time range:|Intervallo Di Tempo:| +Closer Default Blended:|Un Defecto Más cercano Mezclado:| +Agent Alt Num Dialing:|El Marcar Nume`rico Del Alt Del Agente:| +Scheduled Callbacks:|Servicios repetidos Programar:| +Agent-Only Callbacks:|Richiami esclusivi dell`operatore:| +New Filter Addition|Nueva Adicio`n Del Filtro| +LEAD FILTER LISTINGS:|ELENCO FILTRI CONTATTI:| +FILTER NOT MODIFIED|FILTRO NON MODIFICATO| +FILTER NOT DELETED|FILTRO NON CANCELLATO| +DELETE THIS FILTER|CANCELLA QUESTO FILTRO| +FILTER NOT ADDED|FILTRO NON AGGIUNTO| +Filter Comments: |Commenti Del Filtro: | +FILTER MODIFIED|FILTRO MODIFICATO| +MODIFY A FILTER|MODIFICA UN FILTRO| +ADD NEW FILTER|AGGIUNGI NUOVO FILTRO| +Add New Filter|Agiungi Nuovo Filtro| +Modify Filter|Modifica Filtro| +Delete Filter|Cancella Filtro| +Filter Name: |Nome Del Filtro:| +FILTER ADDED:|FILTRO AGGIUNTO:| +VIEW FILTERS|VISUALIZZA FILTRI| +Lead Filter:|Filtro Contatti:| +Filter SQL:|Filtro Sql:| +Users List|Lista Utenti| +Filter ID: |ID Filtro:| +Filters|Filtri| +Agent Call Manual|Chiamata Manuale Operatore| +Vicidial Recording|Registrazione Vicidial| +Vicidial Transfers|Trasferimenti Vicidial| +Click here for user time sheet|Clicca qui per la tabella degli orari dell`utente| +Click here for user status|Clicca qui per visualizzare lo stato dell`utente| +Click here for user CallBack Holds|Clicca qui per i richiami dell`utente| +Lead Filter|Filtro Contatti| +Click here to see all CallBack Holds in this campaign|Clicca qui per visualizzare tutti i richiami in attesa per questa campagna| +Click here to see all CallBack Holds in this list|Clicca qui per visualizzare tutti i richiami in attesa in questa lista| +STATUS NAME|NOME ESITO| +Script ID|ID Script:| +Script Name|Nome Script| +Script Comments|Note Script| +Script Text|Testo Script| +ADD FILTER|AGGIUNGI 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 o`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| +VICIDIAL LIST LOADER FUNCTIONALITY|FUNCIONALIDAD DEL CARGADOR DE LA LISTA DE 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 Tambien un cargador estupendo nuevo del plomo de la versio`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 validacio`n de datos o la comprobacio`n para duplicados en sí mismo u otras listas, de modo que este` algo usted necesita hacer antes de usted la carga los plomos. Tambien, cercio`rese de que usted haya creado la lista que estos plomos son estar debajo de modo que usted pueda utilizarlos. Hay Tambien 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| +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. Tambien, los mo`dulos de un Perl de los pares se deben cargar para ella para trabajar Tambien - oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Usted puede comprobar para saber si hay errores runtime en estos mirando su archivo del error_log de apache| +Vendor Lead Code - shows up in the Vendor ID field of the GUI|Co`digo del plomo del vendedor - demuestra para arriba en el campo de la identificacio`n del vendedor del GUI| +Source Code - internal use only for admins and DBAs|Co`digo de fuente - uso interno solamente para los admins y DBAs| +List ID - the list number that these leads will show up under|Identificacio`n de la lista - el número de la lista que estos plomos demostrarán para arriba debajo| +Phone Code - the prefix for the phone number - 1 for US, 01144 for UK, 01161 for AUS, etc|Co`digo del telefono - el prefijo para el telefono number(1 para los E.E.U.U., 01144 para Reino Unido, 01161 para AUS, el etc)| +Phone Number - must be at least 8 digits long|Número de telefono - debe ser por lo menos 8 dígitos de largo| +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: Potrebbero passare fino a 30 secondi prima che le modifiche qui effettuate possano essere accettate| +USER NOT ADDED - there is already a user in the system with this user number|UTENTE NON AGGIUNTO - Esiste gia` un utente nel sistema con questo numero utente| +USER NOT ADDED - Please go back and look at the data you entered|UTENTE NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti| +user id must be between 2 and 8 characters long|L`ID utente deve essere lungo tra i 2 e gli 8 caratteri| +full name and password must be at least 2 characters long|il nome e la password devono essere lunghi almeno 2 caratteri| +CAMPAIGN NOT ADDED - there is already a campaign in the system with this ID|CAMPAGNA NON AGGIUNTA - Esiste gia` una campagna nel sistema con questo ID| +CAMPAIGN NOT ADDED - Please go back and look at the data you entered|CAMPAGNA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti| +campaign ID must be between 2 and 8 characters in length|L`ID Campagna deve essere lungo tra i 2 e gli 8 caratteri| +campaign name must be between 6 and 40 characters in length|il nome della campagna deve essere lungo tra i 6 e i 40 caratteri| +CAMPAIGN STATUS NOT ADDED - there is already a campaign-status in the system with this name|ESITO CAMPAGNA NON AGGIUNTO - Esiste gia` un esito campagna con questo nome| +CAMPAIGN STATUS NOT ADDED - there is already a global-status in the system with this name|ESITO CAMPAGNA NON AGGIUNTO - esiste gia` un esito globale con questo nome| +CAMPAIGN STATUS NOT ADDED - Please go back and look at the data you entered|ESITO CAMPAGNA NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti| +status must be between 1 and 8 characters in length|l`esito deve essere lungo tra 1 e 8 caratteri| +status name must be between 2 and 30 characters in length|il nome dell`esito deve essere lungo tra i 2 e i 30 caratteri| +CAMPAIGN HOT KEY NOT ADDED - there is already a campaign hot key in the system with this hot key|CAMPAÚA HOT KEY NO AGREGADA - hay ya una campaña hot key en el sistema con este hot key| +CAMPAIGN HOT KEY NOT ADDED - Please go back and look at the data you entered|CAMPAÚA HOT KEY NO AGREGADA - Per favore torna indietro e ricontrolla i dati inseriti| +hot key must be a single character between 1 and 9|el hot key debe ser un solo carácter entre 1 y 9| +LIST NOT ADDED - there is already a list in the system with this ID|LISTA NON AGGIUNTA - Esiste gia` una lista nel sistema con questo ID| +LIST NOT ADDED - Please go back and look at the data you entered|LISTA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti| +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| +List name must be at least 2 characters in length|El nombre de la lista debe ser por lo menos 2 caracteres en longitud| +GROUP NOT ADDED - there is already a group in the system with this ID|GRUPPO NON AGGIUNTO - l`ID specificato e` associato ad un gruppo gia` presente in sistema| +GROUP NOT ADDED - Please go back and look at the data you entered|GRUPPO NON AGGIUNTO - per favore torna indietro e ricontrolla i dati inseriti| +Group ID must be between 2 and 20 characters in length and contain no|L`ID deve essere lungo tra i 2 e i 20 caratteri e non deve contenere| +Group name and group color must be at least 2 characters in length|Il nome ed il colore del gruppo devono essere lunghi almeno 2 caratteri| +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| +REMOTE AGENTS NOT ADDED - Please go back and look at the data you entered|AGENTES ALEJADOS NO AGREGADOS - Per favore torna indietro e ricontrolla i dati inseriti| +User ID start and external extension must be at least 2 characters in length|El comienzo de la ID del usuario y la extension externa deben ser por lo menos 2 caracteres en longitud| +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 - Per favore torna indietro e ricontrolla i dati inseriti| +Group name and description must be at least 2 characters in length|El nombre y la descripcio`n de grupo deben ser por lo menos 2 caracteres en longitud| +USER NOT MODIFIED - Please go back and look at the data you entered|USUARIO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti| +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| +CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|CAMPAÚA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti| +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| +RESETTING CAMPAIGN LEAD HOPPER|REAJUSTE DE LA TOLVA DEL PLOMO DE LA CAMPAÚA| +Wait 1 minute before dialing next number|Espera 1 minuto antes de marcar el número siguiente| +CAMPAIGN STATUS NOT MODIFIED - Please go back and look at the data you entered|ESTADO de la CAMPAÚA NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti| +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| +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| +CUSTOM CAMPAIGN STATUS DELETED|ESTADO DE ENCARGO DE LA CAMPAÚA SUPRIMIDO| +CAMPAIGN HOT KEY NOT MODIFIED - Please go back and look at the data you entered|CAMPAÚA HOT KEY NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti| +the campaign hot key needs to be at least 1 characters in length|el hot key de la campaña necesita ser por lo menos los caracteres 1 en longitud| +CUSTOM CAMPAIGN HOT KEY DELETED|LA CAMPAÚA DE ENCARGO HOT KEY SUPRIMIÚ| +CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered|CAMPAÚA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti| +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| +LIST NOT MODIFIED - Please go back and look at the data you entered|LISTA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti| +list name must be at least 2 characters in length|el nombre de la lista debe ser por lo menos 2 caracteres en longitud| +REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER|QUITAR LOS PLOMOS DE LA TOLVA DE LA LISTA DE VIEJA TOLVA DE LA CAMPAÚA| +GROUP NOT MODIFIED - Please go back and look at the data you entered|GRUPO NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti| +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| +REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered|AGENTES ALEJADOS NO MODIFICADOS - Per favore torna indietro e ricontrolla i dati inseriti| +User ID Start and External Extension must be at least 2 characters in length|El comienzo de la ID del usuario y la extension externa deben ser por lo menos 2 caracteres en longitud| +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 - Per favore torna indietro e ricontrolla i dati inseriti| +Group name and description must be at least 2 characters in length|El nombre y la descripcio`n de grupo deben ser por lo menos 2 caracteres en longitud| +MODIFY A USERS RECORD|MODIFICA UN UTENTE| +Click here for user stats|Clicca qui per le statistiche dell`utente| +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 - este campo es donde usted pone el número del dialpna de la conferencia del meetme. Tambien 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| +Server IP -<\/B> The menu where you select the Asterisk server that this conference will be on|IP del servidor - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido| +PHONE NOT ADDED - there is already a Phone in the system with this extension\/server|telefonO NO AGREGADO - hay ya un telefono en el sistema con esta extension/servidor| +PHONE NOT ADDED - Please go back and look at the data you entered|telefonO NO AGREGADO - Per favore torna indietro e ricontrolla i dati inseriti| +PHONE ADDED|TELEFONO AGGIUNTO| +SERVER NOT ADDED - there is already a server in the system with this ID|SERVER NON AGGIUNTO - Esiste gia` un altro server nel sistema con questo ID| +SERVER NOT ADDED - Please go back and look at the data you entered|SERVER NON AGGIUNTO - Per favore torna indietro e ricontrolla i dati inseriti| +SERVER ADDED|SERVER AGGIUNTO| +CONFERENCE NOT ADDED - there is already a conference in the system with this ID and server|CONFERENZA NON AGGIUNTA - Esiste gia` una conferenza nel sistema con questo ID e server| +CONFERENCE NOT ADDED - Please go back and look at the data you entered|CONFERENZA NON AGGIUNTA - Per favore torna indietro e ricontrolla i dati inseriti| +CONFERENCE ADDED|CONFERENZA AGGIUNTA| +PHONE NOT MODIFIED - there is already a Phone in the system with this extension\/server|TELEFONO NON MODIFICATO - Esiste gia` un Telefono nel sistema con questo interno\/server| +PHONE NOT MODIFIED - Please go back and look at the data you entered|TELEFONO NON MODIFICATO - Per favore torna indietro e ricontrolla i dati inseriti| +PHONE MODIFIED|TELEFONO MODIFICATO| +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| +SERVER NOT MODIFIED - Please go back and look at the data you entered|SERVIDOR NO MODIFICADO - Per favore torna indietro e ricontrolla i dati inseriti| +SERVER MODIFIED|SERVER MODIFICATO| +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 extension - servidor NO MODIFICADO| +CONFERENCE NOT MODIFIED - Please go back and look at the data you entered|CONFERENCIA NO MODIFICADA - Per favore torna indietro e ricontrolla i dati inseriti| +You do not have permissions to modify this user|Non hai l`autorizzazione per modificare questo utente| +Click here to delete user|Clicca qui per cancellare questo utente| +Please go back and look at the data you entered|Per favore torna indietro e ricontrolla i dati inseriti| +Click here to delete campaign|Clicca qui per cancellare la campagna| +Click here to delete list and all of its leads|Clicca qui per cancellare la lista e tutti i suoi contatti| +REMOVING LIST LEADS FROM VICIDIAL_LIST TABLE|QUITAR LOS PLOMOS DE LA LISTA DE LA TABLA DE VICIDIAL_LIST| +Click here to delete in-group|Clicca qui per cancellare il gruppo inbound| +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|Clicca qui per cancellare il telefono| +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 descripcio`n y el texto de la escritura deben ser por lo menos 2 caracteres en longitud| +Click here to delete script|Clicca qui per cancellare lo script| +Phone Login|Login Telefono| +Phone Pass|Password Telefono| +Delete Users|Cancella Utenti| +Delete User Groups|Suprima a grupos de usuario| +Delete Lists|Cancella Liste| +Delete Campaigns|Cancella Campagne| +Delete In-Groups|En-Grupos de la cancelacio`n| +Delete Remote Agents|Suprima los agentes alejados| +Delete Script|Cancella Script| +Load Leads|Carica Contatti| +Campaign Detail|Dettagli Campagna| +AGC Admin Access|Acceso de AGC Admin| +AGC Delete Phones|La cancelacio`n de AGC telefona| +SCRIPT NOT ADDED|SCRIPT NON AGGIUNTO| +SCRIPT ADDED|SCRIPT AGGIUNTO| +SCRIPT NOT MODIFIED|SCRIPT NON MODIFICATO| +SCRIPT MODIFIED|SCRIPT MODIFICATO| +DELETE THIS USER|CANCELLA QUESTO UTENTE| +DELETE THIS CAMPAIGN|CANCELLA QUESTA CAMPAGNA| +DELETE THIS LIST|CANCELLA QUESTA LISTA| +DELETE THIS IN-GROUP|CANCELLA QUESTO GRUPPO INBOUND| +DELETE THIS REMOTE AGENT|SUPRIMA ESTE AGENTE ALEJADO| +DELETE THIS USER GROUP|CANCELLA QUESTO GRUPPO UTENTI| +DELETE THIS PHONE|CANCELLA QUESTO TELEFONO| +DELETE THIS SCRIPT|CANCELLA QUESTO SCRIPT| +USER NOT DELETED|UTENTE NON CANCELLATO| +CAMPAIGN NOT DELETED|CAMPAGNA NON CANCELLATA| +LIST NOT DELETED|LISTA NON CANCELLATA| +IN-GROUP NOT DELETED|GRUPPO INBOUND NON CANCELLATO| +REMOTE AGENT NOT DELETED|AGENTE ALEJADO NO SUPRIMIDO| +USER GROUP NOT DELETED|GRUPO DE USUARIO NO SUPRIMIDO| +PHONE NOT DELETED|TELEFONO NON CANCELLATO| +SCRIPT NOT DELETED|SCRIPT NON CANCELLATO| +USER DELETION CONFIRMATION|CONFIRMACIo`N DE LA CANCELADURA DEL USUARIO| +USER DELETION COMPLETED|CANCELADURA DEL USUARIO TERMINADA| +CAMPAIGN DELETION CONFIRMATION|CONFIRMACIo`N DE LA CANCELADURA DE LA CAMPAÑA| +CAMPAIGN DELETION COMPLETED|LA CANCELADURA DE LA CAMPAÑA TERMINo`| +Logout Agents|Disconnetti Operatori| +AGENTS NOT LOGGED OUT OF CAMPAIGN|OPERATORI NON DISCONNESSI DALLA CAMPAGNA| +AGENT LOGOUT CONFIRMATION|CONFERMA DISCONNESSIONE OPERATORE| +Click here to log all agents out of|Clicca qui per disconnettere tutti gli operatori| +AGENT LOGOUT COMPLETED|DISCONNESSIONE OPERATORI COMPLETATA| +LOG ALL AGENTS OUT OF THIS CAMPAIGN|DISCONNETTI TUTTI GLI OPERATORI DI QUESTA CAMPAGNA| +LIST DELETION CONFIRMATION|CONFIRMACIo`N DE LA CANCELADURA DE LA LISTA| +LIST DELETION COMPLETED|LA CANCELADURA DE LA LISTA TERMINo`| +IN-GROUP DELETION CONFIRMATION|CONFERMA ELIMINAZIONE GRUPPO INBOUND| +IN-GROUP DELETION COMPLETED|ELIMINAZIONE GRUPPO INBOUND COMPLETATA| +REMOTE AGENT DELETION CONFIRMATION|CONFIRMACIo`N ALEJADA DE LA CANCELADURA DEL AGENTE| +REMOTE AGENT DELETION COMPLETED|CANCELADURA ALEJADA DEL AGENTE TERMINADA| +USER GROUP DELETION CONFIRMATION|CONFIRMACIo`N DE LA CANCELADURA DEL GRUPO DE USUARIO| +USER GROUP DELETION COMPLETED|CANCELADURA DEL GRUPO DE USUARIO TERMINADA| +PHONE DELETION CONFIRMATION|CONFIRMACIo`N DE LA CANCELADURA DEL telefonO| +PHONE DELETION COMPLETED|LA CANCELADURA DEL telefonO TERMINo`| +SCRIPT DELETION CONFIRMATION|CONFIRMACIo`N DE LA CANCELADURA DE LA ESCRITURA| +SCRIPT DELETION COMPLETED|CANCELADURA DE LA ESCRITURA TERMINADA| +Preview Script|Anteprima Script| +MODIFY A SCRIPT|MODIFICA SCRIPT| +title of the script|titolo script| +CONFERENCE MODIFIED|CONFERENCIA MODIFICADA| +MODIFY A PHONE RECORD|MODIFICANDO EL telefonO| +THE END|FINE| +LIST ALL PHONES|MOSTRA TUTTI I TELEFONI| +ADD A NEW PHONE|AGGIUNGI UN NUOVO TELEFONO| +SEARCH FOR A PHONE|CERCA UN TELEFONO| +ADD A SERVER|AGGIUNGI UN SERVER| +LIST ALL SERVERS|MOSTRA TUTTI I SERVER| +SHOW ALL CONFERENCES|MOSTRA TUTTE LE CONFERENZE| +ADD A NEW CONFERENCE|CREA UNA NUOVA CONFERENZA| +>ADD A NEW VICIDIAL CONFERENCE<|>CREA UNA NUOVA CONFERENZA VICIDIAL<| +AMD Send to VM exten|AMD envían a la VM exten| +Transfer-Conf DTMF|Transfiera -Conf DTMF| +Transfer-Conf Number|Transfiera -Conf El Número| +Hot Keys Active|Hot Keys Activo| +Modify Leads|Modifica Contatti| +Change Agent Campaign|Cambia la campagna di un operatore| +Agent Choose Ingroups|El Agente Elige Ingroups| +CallBacks Within Campaign|Richiami Nella Campagna| +CallBacks Within List|Richiami Nella Lista| +CallBacks Within Agent|Richiami Dell`Operatore| +Phone extension|Interno Telefono| +Dial Plan Number|Numero De Dial plan| +digits only|solo cifre| +Voicemail Box|Buzon de voz| +Outbound CallerID|CallerID De salida| +Phone IP address|Direccion IP del telefono| +Computer IP address|Direccion IP del ordenador| +Server IP Address|Indirizzo IP del Server| +Server IP|IP Server| +Login: |Login: | +Password: |Password: | +Status: |Esito: | +Active Account|Cuenta Activa| +Phone Type|Tipo Del telefono| +Full Name|Nome Completo| +Company: |Compania: | +Picture: |Foto: | +Client Protocol|Protocollo Client| +Local GMT|Fuso Orario Locale| +Do NOT Adjust for DST|No ajustar para el DST| +VALUE=SUBMIT|VALUE=INVIA| +ADD A NEW SERVER|AGGIUNGI UN NUOVO SERVER| +Server ID|ID Server| +Server Description|Descrizione Server| +Active: |Attivo: | +Asterisk Version|Versione Di Asterisk| +Conference Number|Número de la Conferencia| +New Messages|Messaggi Nuovi| +Old Messages|Messaggi Vecchi| +Manager Login|Login del Manager| +Manager Secret|Contraseña del Manager| +VICIDIAL Default User|Usuario por defecto de VICIDIAL| +VICIDIAL Default Pass|Contraseña por defecto de VICIDIAL| +VICIDIAL Default Campaign|Campaña por defecto de VICIDIAL| +Park Extension|Extension del parking| +Park Exten|Extension del parking| +Conf Extension|Extension de la conferencia| +Conf Exten|Extension de la conferencia| +VICIDIAL Park Exten|Exten. Del parking de VICIDIAL| +VICIDIAL Park File|Archivo para música del parking de VICIDIAL| +Monitor Prefix|Prefijo al monitorizar| +Recording Exten|Exten de grabacion| +VMailMain Exten|Exten de VmailMain| +VMailDump Exten|Exten de VmaiDumpl| +Exten Context|Contexto De Exten| +DTMFSend Channel|Canal de envío del DTMF| +Outbound Call Group|Grupo de las llamadas de salida| +Browser Location|Localizacio`n del Navegador| +Install Directory|Directorio de instalacio`n| +CallerID URL|URL CallerID| +VICIDIAL Default URL|URL por defecto de VICIDIAL| +Call Logging|Call Logging| +User Switching|Cambio de Usuario| +Conferencing|Conferenze| +Admin Hang Up|Colgar del Admin| +Admin Hijack|Captura del Admin| +Admin Monitor|Monitorizacio`n del Admin| +Call Park|Parking de Llamada| +Updater Check|Uptader Check| +AF Logging|AF Logging| +Queue Enabled|Colas permitidas| +CallerID Popup|Ventana emergente del CallerID| +VMail Button|Boto`n Vmail| +Fast Refresh|Aggiornamento Veloce| +Fast Refresh Rate|Intervallo Aggiornamento Veloce| +Persistant MySQL|Persistant MySQL| +Auto Dial Next Number|Auto Marcar el Siguiente Número| +Stop Rec after each call|Parar de Grabar despue`s de cada llamada| +Primary |Primario | +Secondary |Secondario | +DBX Server|Servidor de DBX| +DBX Database|Base de datos de DBX| +DBX User|Usuario de DBX| +DBX Pass|Contraseña de DBX| +DBX Port|Puerto de DBX| +DBY Server|Servidor de DBY| +DBY Database|Base de datos de DBY| +DBY User|Usuario de DBY| +DBY Pass|Contraseña de DBY| +DBY Port|Puerto de DBY| +MODIFY A SERVER RECORD|MODIFICAR UN REGISTRO DEL SERVIDOR| +Max VICIDIAL Trunks|Máx. Trunks en VICIDIAL| +Telnet Host|Host Telnet| +Telnet Port|Porta 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|Extension de Vmail Dump | +VICIDIAL AD extension|Extension del AD de VICIDIAL| +Default Context|Contexto por Defecto| +PHONES WITHIN THIS SERVER|TELEFONI IN QUESTO SERVER| +>EXTENSION<|>INTERNO<| +>NAME<|>NOME<| +>ACTIVE<|>ATTIVO<| +>MODIFY<|>MODIFICA<| +This server has|Questo server ha| +active phones and|telefoni attivi e| +inactive phones|telefoni inattivi| +MODIFY A CONFERENCE RECORD|MODIFICA DELLA CONFERENZA| +Conference: |Conferenza: | +Current Extension|Interno Corrente| +extension: |interno: | +SEARCH RESULTS|RESULTADOS DE LA BÚSQUEDA| +PHONE LISTINGS|ELENCO TELEFONI| +SERVER LISTINGS|ELENCO SERVER| +CONFERENCE LISTINGS|ELENCO CONFERENZE| +script runtime|Tempo Esecuzione Script| +ADD NEW PHONE|AGGIUNGI TELEFONO| +ADD NEW SERVER|AGGIUNGI SERVER| +ADD NEW CONFERENCE|NUEVA CONFERENCIA| +ADD SCRIPT|AGGIUNGI SCRIPT| +VIEW SCRIPTS|VISUALIZZA SCRIPT| +SCRIPTS LISTINGS|ELENCO SCRIPT| +ADDING NEW PHONE|CREANDO telefono| +ADDING NEW SERVER|CREANDO SERVIDOR| +ADDING NEW CONFERENCE|CREANDO CONFERENCIA| +MODIFY PHONE|MODIFICAR EL telefonO| +MODIFY SERVER|MODIFICAR EL SERVIDOR| +MODIFY CONFERENCE|MODIFICAR LA CONFERENCIA| +MODIFYING PHONE|MODIFICANDO EL telefonO| +MODIFYING SERVER|MODIFICANDO EL SERVIDOR| +MODIFYING CONFERENCE|MODIFICANDO LA CONFERENCIA| +SEARCH PHONES|BUSCAR telefonOS| +SEARCH PHONES RESULTS|RESULTADO DE LA BÚSQUEDA DE telefonOS| +PHONE LIST|ELENCO TELEFONI| +SERVER LIST|ELENCO SEEVER| +CONFERENCE LIST|LISTA DE CONFERENCIAS| +HELP|AIUTO| +Click here for phone stats|Pinchar aquí­ para ver las estadísticas del telefono| +REMOTE INBOUND: Main|ENTRANTES REMOTOS: Principal| +REMOTE INBOUND: Popup|SALIENTES REMOTOS: Popup| +CALLS SENT TO|LLAMADAS REALIZADAS A| +Phone Stats|Estadísticas Del telefono| +CALL TIME AND CHANNELS|TIEMPO DE LLAMADA Y CANALES| +CHANNEL GROUP|GRUPO DE CANALES| +HOURS:MINUTES|ORE:MINUTI| +TOTAL CALLS|TOTALE CHIAMATE| +>NUMBER|>NUMERO| + DATE<| DATA<| +Close this window|Chiudi questa finestra| +Inbound Calls Stats|Statistiche Chiamate In Entrata| +Add New User|Aggiungi Nuovo Utente| +Add New Campaign|Aggiungi Nuova Campagna| +Add New List|Aggiungi Nuova Lista| +Add New In-Group|Aggiungi Nuovo Gruppo Inbound| +Add New Remote Agents|Aggiungi Nuovo Operatore Remoto| +Add New Users Group|Aggiungi Nuovo Gruppo Utente| +Add New Script|Aggiungi Nuovo Script| +New User Addition|Creazione Nuovo Utente| +New Campaign Addition|Creazione Nuova Campagna| +New Campaign Status Addition|Creazione Nuovo Esito Personalizzato Per Campagna| +New Campaign Hot Key Addition|Creazione Nuova HotKey Personalizzata Per Campagna| +New List Addition|Creazione Nuova Lista| +New In-Group Addition|Creazione Nuovo Gruppo Inbound| +New Remote Agents Addition|Creazuibe Nuovi Operatori Remoti| +New Users Group Addition|Creazione Nuovo Gruppo Utenti| +New Script Addition|Creazione Nuovo Script| +Modify User|Modifica Utente| +Modify Campaign - Basic View|Modifica Campagna - Vista Generale| +Modify Campaign|Modifica Campagna| +Modify List|Modifica Lista| +Modify In-Group|Modifica Gruppo Inbound| +Modify Remote Agents|Modifica Operatori Remoti| +Modify Users Groups|Modifica Gruppi Utenti| +Modify Script|Modifica Script| +Welcome|Benvenuto| +Lists|Liste| +In-Groups|In-Groups| +Remote Agents|Operatori Remoti| +User Groups|Gruppi Utenti| +Search Form|Form di Ricerca| +Search Results|Risultati Ricerca| +VICIDIAL ADMIN|VICIDIAL ADMIN| + TABLE| TABELLA| +First Name|Nome| +Middle Initial|Secondo Nome| +Last Name|Cognome| +Address Line 1|Indirizzo, linea 1| +Address Line 2|Indirizzo, linea 2| +Address Line 3|Indirizzo, linea 3| +City|Citta`| +State - limited to 2 characters|Stato - limitato a 2 caratteri| +Province|Provincia| +Postal Code|CAP| +Country|Stato| +Gender|Sesso| +Date of Birth|Data di Nascita| +Alternate Phone Number|Numero di Telefono Alternativo| +Email Address|Email| +Security Phrase|Frase De Seguridad| +Comments|Note| +THE END|FINE| +Logout|Logout| +LIST USERS|VISUALIZZA UTENTI| +ADD A NEW USER|NUOVO UTENTE | +SEARCH FOR A USER|RICERCA UTENTI| +ADD USER GROUP|NUOVO GRUPPO UTENTI| +LIST USER GROUPS|VISUALIZZA GRUPPI UTENTI| +ADD CAMPAIGN|AGGIUNGI CAMPAGNA| +LIST CAMPAIGNS|VISUALIZZA CAMPAGNE| +SHOW LISTS|VISUALIZZA LISTE| +ADD NEW LIST|AGGIUNGI NUOVA LISTA| +ADD A NEW LIST|AGGIUNGI NUOVA LISTA| +LOAD NEW LEADS|CARICA NUOVI CONTATTI| +SHOW IN-GROUPS|VISUALIZZA GRUPPI INBOUND| +ADD NEW IN-GROUP|AGGIUNGI NUOVO GRUPPO INBOUND| +SHOW REMOTE AGENTS|VISUALIZZA OPERATORI REMOTI| +ADD NEW REMOTE AGENTS|NUOVO OPERATORE REMOTO| +SERVER STATS|STATISTICHE SERVER| +PARK REPORT|INFORME DE PARKING| +VDAD REPORT|REPORT VDAD| +CLOSER REPORT|INFORME CLOSER| +SEARCH FOR A LEAD|RICERCA CONTATTI| +GROUP HOURLY|GRUPO POR HORA| +User Number|Numero Utente| +Full Name|Nome Completo| +User Level|Livello Utente| +User Group|Gruppo Utente| +ADD A NEW CAMPAIGN|NUOVA CAMPAGNA| +ADD A NEW INBOUND GROUP|NUOVO GRUPPO INBOUND| +ADD NEW USERS GROUP|NUOVO GRUPPO UTENTI| +Campaign ID|ID Campagna| +Campaign Name|Nome Campagna| +Park Extension|Extension Del Parking| +Park Filename|Nombre de fichero Del Parking| +Web Form|Web Form| +Allow Closers|Permitir Closers| +Hopper Level|Livello Coda Chiamate| +Auto Dial Level|Livello Auto Dial| +Next Agent Call|Operatore Da Scegliere Per La Chiamata Successiva| +Local Call Time|Orario Chiamate| +Voicemail|Casella Vocale| +SUBMIT|INVIA| +List ID|ID Lista| +List Name|Nome Lista| +Campaign|Campagna| +Group ID|ID Gruppo| +Group Name|Nome Gruppo| +Group Color|Colore Gruppo| +Fronter Display|Mostrar Fronter| +User ID Start|Inizio ID Utente| +Number of Lines|Numero di Linee| +External Extension|Numero Di Interno Remoto| +Inbound Groups|Gruppi Inbound| +Group: |Gruppo: | +Description: |Descrizione: | +USER ADDED|UTENTE AGGIUNTO| +CAMPAIGN ADDED|CAMPAGNA AGGIUNTA| +CAMPAIGN STATUS ADDED|STATO PERSONALIZZATO PER CAMPAGNA AGGIUNTO| +CAMPAIGN HOT KEY ADDED|HOTKEY AGGIUNTA| +LIST ADDED|LISTA AGGIUNTA| +GROUP ADDED|GRUPPO AGGIUNTO| +REMOTE AGENTS ADDED|OPERATORE REMOTO AGGIUNTO| +USER GROUP ADDED|GRUPPO UTENTI AGGIUNTO| +USER MODIFIED|UTENTE MODIFICATO| +GROUP MODIFIED|GRUPPO MODIFICATO| +CAMPAIGN MODIFIED|CAMPAGNA MODIFICATA| +LIST MODIFIED|LISTA MODIFICATA| +USER GROUP MODIFIED|GRUPPO UTENTI MODIFICATO| +RESETTING LIST-CALLED-STATUS|RESET ESITI CONTATTI DELLA LISTA CHIAMATI| +Dial status |Esito Chiamata | +List Order|Ordine Lista| +Hopper Level|Livello Coda Chiamate| +Force Reset of Hopper|Forza Il Reset Della Coda Chiamate| +Dial Timeout|Timeout Chiamata| +Dial Prefix|Prefisso Chiamata| +Campaign CallerID|CallerID della Campagna| +Campaign VDAD exten|Exten VDAD de La campaña| +Campaign Rec exten|Interno Registrazioni Per Questa Campagna| +Campaign Recording|Registrazioni Per Questa Campagna| +Campaign Rec Filename|Nome Registrazioni Per Questa Campagna| +LISTS WITHIN THIS CAMPAIGN|LISTE IN QUESTA CAMPAGNA| +LIST ID|ID LISTA| +LIST NAME|NOME LISTA| +>ACTIVE<|>ATTIVO<| +This campaign has |Questa campagna ha | +active lists and |liste attive e | +inactive lists|lista inattive| +leads to be dialed in those lists|contatti da chiamare in queste liste| +leads in the dial hopper|contatti nella coda chiamate| +>STATUS<|>ESITO<| +>DESCRIPTION<|>DESCRIZIONE<| +>SELECTABLE<|>SELEZIONABILE<| +>DELETE<|>CANCELLA<| +ADD NEW CUSTOM CAMPAIGN STATUS|AGGIUNGI NUOVO ESITO PERSONALIZZATO PER CAMPAGNA| +Selectable: |Selezionabile: | +value=ADD|value=ADD| +CUSTOM HOT KEYS WITHIN THIS CAMPAIGN|HOT KEY PERSONALIZZATE PER QUESTA CAMPAGNA| +>HOT KEY<|>HOT KEY<| +ADD NEW CUSTOM CAMPAIGN HOT KEY|AGGIUNGI NUOVA HOT KEY PERSONALIZZATA PER QUESTA CAMPAGNA| +Hot key: |Hot Key: | +Basic View|Vista Generale| +Detail View|Vista Dettagliata| +MODIFY A LISTS RECORD|MODIFICA I DATI DELLA LISTA| +Reset Lead-Called-Status for this list|Resetta questa lista allo stato di `contatti non chiamati`| +STATUSES WITHIN THIS LIST|ESITI IN QUESTA LISTA| +>CALLED<|>CHIAMATI<| +>NOT CALLED<|>NON CHIAMATI<| +>SUBTOTALS<|>SUBTOTALI<| +>SUBTOTAL<|>SUBTOTALE<| +TIME ZONES WITHIN THIS LIST|FUSI ORARI IN QUESTA LISTA| +GMT OFFSET NOW|FUSO ORARIO ATTUALE| +local time|ora locale| +List Last Call Date:|Data Ultima Telefonata| +>TOTAL<|>TOTALE<| +CALLED COUNTS WITHIN THIS LIST|CHIAMATE EFFETTUATE IN QUESTA 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|solo cifre| +dial plan number dialed to reach agents|numero del dialplan usato per raggiungere gli operatori| +MODIFY A USERS GROUP ENTRY|MODIFICA UN GRUPPO UTENTI| +no spaces or punctuation|senza spazi e punteggiatura| +description of group|Descrizione del gruppo| +SEARCH FOR A USER|RICERCA UTENTE| +SEARCH RESULTS|RISULTATI RICERCA| +>STATS<|>STATISTICHE<| +USER LISTINGS|ELENCO UTENTI| +CAMPAIGN LISTINGS|ELENCO CAMPAGNE| +LIST LISTINGS|ELENCO LISTE| +INBOUND GROUP LISTINGS|ELENCO GRUPPI INBOUND| +REMOTE AGENTS LISTINGS|ELENCO OPERATORI REMOTI| +USER GROUPS LISTINGS|ELENCO GRUPPI UTENTI| +script runtime|tempo di esecuzione script| +Hopper List|Coda Chiamate| +Live Current Hopper List|Coda Contatti Da Chiamare In Tempo Reale| +Total leads in hopper right now|Totale Contatti Nella Coda Chiamate In Questo Istante| +Server Stats|Statistiche Server| +Total Calls placed from this Campaign: |Totale Chiamate Effettuate Per Questa Campagna:| +Average Call Length for all Calls in seconds:|Durata Media per Tutte Le Chiamate In Secondi:| +Total DROP Calls: |Totale Chiamate ABBATTUTE:| +Average Length for DROP Calls in seconds: |Durata Media Chiamate ABBATTUTE in secondi: | +Total NA calls -Busy,Disconnect,RingNoAnswer: |Totale Chiamate Senza Risposta - occupato, disconnesso, fuori posto...: | +Average Call Length for NA Calls in seconds: |Durata Media Chiamate Senza Risposta in secondi: | +---------- DROPS|---------- ABBATTUTE| + AUTO-DIAL NO ANSWERS| NESSUNA RISPOSTA AUTO-DIAL| +---------- AGENT STATS|---------- STATISTICHE OPERATORE| +---------- TIME STATS|---------- STATISTICHE TEMPO| +USER |UTENTE | +Average Wait time between calls|Tempo Medio di Attesa Tra Due Chiamate| +TOTAL Agents:|TOTALE Operatori:| +Percent of DROP Calls taken out of Answers:|Percentuale Di Chiamate ABBATTUTE Su Chiamate Con Risposta:| +TIME M|TEMPO M| +AVRG M|MEDIA M| +Agents Time On Calls |Tempo Conversazione Operatori| +agents logged in on server|Operatori collegati al server| +Paused agents|Operatori in pausa| +5 minutes or more on call|5 o piu` minuti in conversazione| +Over 10 minutes on call|Oltre 10 minuti in conversazione| + NO AGENTS ON CALLS | NESSUN OPERATORE IN CONVERSAZIONE | +calls being placed on server|chiamate effettuate dal server| +LIVE CALL WAITING|CHIAMATA IN ATTESA| + NO LIVE CALLS WAITING | NESSUNA CHIAMATA IN ATTESA| +START OVER|RICOMINCIA| +Lead Loader Module|Modulo Caricamento Contatti| +Current file status|Stato attuale del file| +Load leads from this file|Carica Contatti Da Questo File| +Answering Machine Message|Messaggio Segreteria Telefonica| +Processing |Elaborazione in corso| +TALK TIME AND STATUS|TEMPO DI CHIAMATA E ESITO| +>COUNT<|>CUENTA<| +>HOURS:MINUTES<|>ORE:MINUTI<| +TOTAL CALLS |TOTALE CHIAMATE | +LOGIN/LOGOUT TIME|TIEMPO LOGIN/LOGOUT| +>EVENT <|>EVENTO <| +> CAMPAIGN<|> CAMPAGNA<| +CAMPAIGN: |CAMPAGNA: | +LAST 50 CALLS|ULTIME 50 CHIAMATE| +VICIDIAL REMOTE: Call Disposition|REMOTE VICIDIAL: disposicion De la Llamada| +Call has been dispositioned|La Chiamata Ha Avuto Un Esito| +Close This Window|Chiudi Questa Finestra| +Call information|Informazioni Chiamata| +lead lookup FAILED for lead_id|las operaciones de búsqueda del plomo FALLARON para el lead_id| +DISPO CALL|ESITO CHIAMATA| +>Address |>Indirizzo | +>City |>Citta` | +>State:|>Estado:| + Postal Code:| CAP:| +>Province |>Provincia | +>Country |>Stato | +>Alt Phone |>Numero Alt | +>Email |>Email | +>Security |>Seguridad| +>Comments |>Note | +>Disposition:|>Esito:| +Group Hourly Stats|Statistiche Orarie Del Gruppo| +TSR HOUR COUNTS|DATI ORARI| +Lead Search|Ricerca Contatti| +Lead Lookup|Operaciones de búsqueda del Lead| +Please enter a:|Per favore, inserisci:| +a Home Phone Number:|un numero di telefono:| +vendor lead code|co`digo del vendedor del Lead| +a lead ID:|un ID Contatto:| +>NEW SEARCH<|>NUOVA RICERCA<| +Lead record modification|Registro del Lead modificado| +information modified|informazione modificata| +CALLS TO THIS LEAD|CHIAMATE VERSO QUESTO CONTATTO| +VDAD Closer Stats|Estadísticas de VDAD Closer| +Auto-dial Closer Stats|Estadísticas de Auto-dial en CLOSER| +VICIDIAL REMOTE AGENTS|VICIDIAL, AGENTES REMOTOS| +INBOUND STATS|STATISTICHE INBOUND| +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 - |- IN ATTESA -| +Remote Agent inbound stats |Stats de entrada del agente alejado| +Total calls taken |Llamadas totales tomadas | +Total talk time on |Tiempo total de conversacion| +Call list for |Lista la llamada para | + NO CALLS ON THIS DAY |NESSUNA CHIAMATA IN QUESTO GIORNO| +Scripts|Script| +Script:|Script:| +Get Call Launch|Esegui all`avvio della telefonata| +not used currently|non utilizzato attualmente| +VERSION|VERSIONE| +BUILD|BUILD| +REPORTS|REPORT| + CAMPAIGNS| CAMPAGNE| +LISTS|LISTE| +SCRIPTS|SCRIPT| +FILTERS|FILTRI| +IN-GROUPS|GRUPPI INBOUND| +USER GROUPS|GRUPPI UTENTI| +REMOTE AGENTS|OPERATORI REMOTI| +Column|Colonna| + PERFORMANCE| PERFORMANCE| +SERVER |SERVER | +### 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 partirdel tiempo que la línea de cliente se escoge encima de hasta que lallamada se considera una GOTA, so`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|seguro puerto mensaje - si fijar y juego uno mensaje clientedespue`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 dial plan extension that the desired Safe Harbor audio file is located at on your server|seguro puerto Exten - este ser dial plan extension 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 clientedespue`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 dial plan extension that the desired Dropped call audio file is located at on your server|Gota Exten - esta es la extension dial plan 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|Identificacio`n del tiempo de la llamada - este es el nombre corto deuna definicio`n del tiempo de la llamada de Vicidial. este necesitaser un identificador único. No utilice ningunos espacios opuntuacio`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 - este es un nombre más descriptivode la definicio`n del tiempo de la llamada. este es un resumen cortode los caracteres del máximo 30 de la definicio`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 loscomentarios para una definicio`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 - este es el tiempo dedefecto paran que el llamar será permitido que sea comenzado o dentrode esta definicio`n del tiempo de la llamada si la hora de salida dela di`a-de-$$$-SEMANA no se define. 0 es medianoche. Evitar el llamarfijo` totalmente este campo a 2400 y fijo` el tiempo de parada deldefecto a 2400. Permitir el llamar 24 horas al día fijo` 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 - estos son lostiempos de encargo por el día que se puede fijar para la definicio`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 - esta es la listade las definiciones específicas del tiempo de la llamada del estadoque se siguen en esta definicio`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 - este es el co`digo dedos letras para el estado que esta definicio`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 e`l así como todos los plomos quetienen dos co`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 cancelacio`n - esta opcio`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 opcio`n permite que elusuario visio`n y modifique los expedientes de los tiempos de lallamada y de los tiempos de la llamada del estado. Un usuario nonecesita esta opcio`n permitida si necesitan solamente cambiar laopcio`n de los tiempos de la llamada en la pantalla de las campañas| +Wrap Up 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 Wrap Up - 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 disposicion| +Wrap Up Message -<\/B> This is a campaign-specific message to be displayed on the wrap up screen if wrap up seconds is set|Mensaje de Wrap up - 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 visio`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 hayacreado la definicio`n del tiempo de la llamada| +State Call Time ID, name and state must be at least 2 characters in length|Indique que identificacio`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 identificacio`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 estoexpediente| +there is already a call time entry with this ID|hay ya una entrada de tiempo de la llamada con esta identificacio`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|DEFINICIo`N DEL TIEMPO DE LA LLAMADA DEL ESTADO NO AGREGADA| +DELETE THIS STATE CALL TIME DEFINITION|SUPRIMA ESTA DEFINICIo`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 laLlamada| +CALL TIME DEFINITION NOT ADDED|DEFINICIo`N DEL TIEMPO DE LA LLAMADA NO AGREGADA| +DELETE THIS CALL TIME DEFINITION|ELIMINA QUESTO ORARIO CHIAMATE| +short description of the call time|breve descrizione dell`orario chiamate| +CAMPAIGNS USING THIS CALL TIME|CAMPAGNE CHE UTILIZZANO QUESTO ORARIO| +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|TIEMPO DE LA LLAMADA MODIFICADO| +Default Start:|Inizio di Default:| +Default Stop:|Fine di Default:| +Sunday Start:|Inizio Domenica:| +Sunday Stop:|Fine Domenica:| +Monday Start:|Inizio Lunedi:| +Monday Stop:|Fine Lunedi:| +Tuesday Start:|Inizio Martedi:| +Tuesday Stop:|Fine Martedi:| +Wednesday Start:|Inizio Mercoledi:| +Wednesday Stop:|Fine Mercoledi:| +Thursday Start:|Inizio Giovedi:| +Thursday Stop:|Fine Giovedi:| +Friday Start:|Inizio Venerdi:| +Friday Stop:|Fine Venerdi:| +Saturday Start:|Inizio Sabato:| +Saturday Stop:|Fine Sabato:| +State Rule Added|Regla Del Estado Agregada| +State Rule Removed|Regla Del Estado Quitada| +STATE CALL TIME LISTINGS|ELENCO ORARI CHIAMATE PER STATO| +CALL TIME LISTINGS|ELENCO ORARI CHIAMATE| +STATE CALL TIME ADDED|ORARIO CHIAMATE PER STATO AGGIUNTO| +CALL TIME ADDED|ORARIO CHIAMATE AGGIUNTO| +Drop Call Seconds|Secondi Abbattimento Telefonata| +Use Safe Harbor Message|Riproduci Messaggio Prima Di Abbattere La Telefonata| +Safe Harbor Exten|Interno Messaggio Telefonata Abbattuta| +Use Drop Message|Utilice El Mensaje De la Gota| +Drop Exten|Gota Exten| +SIP Listen Version|El Sip Escucha Versio`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 Adicio`n Del Tiempo De la Llamada| +New State Call Time Addition|Nueva Adicio`n Del Tiempo De la Llamada Del Estado| +Modify Call Time|Modifique El Tiempo De la Llamada| +MODIFY A CALL TIME|MODIFICA ORARIO CHIAMATE| +Modify State Call Time|Modifique El Tiempo De la Llamada Del Estado| +MODIFY A STATE CALL TIME|_ MODIFICAR Uno ESTADO LLAMAR TIEMPO| +Delete State Call Time|Tiempo De la Llamada Del Estado De la Cancelacio`n| +State Call Times|Tiempos De la Llamada Del Estado| +State Call Time ID|Identificacio`n 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 NOT DELETED|TIEMPO DE LA LLAMADA DEL ESTADO NO SUPRIMIDO| +CALL TIME DELETION COMPLETED|_ LLAMAR TIEMPO CANCELADURA TERMINAR| +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|_ llamar tiempo identificacio`n deber ser por lo menos 2 carácter enlongitud| +STATE CALL TIME DELETION CONFIRMATION|CONFIRMACIo`N DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA DEL ESTADO| +CALL TIME DELETION CONFIRMATION|CONFIRMACIo`N DE LA CANCELADURA DEL TIEMPO DE LA LLAMADA| +Call Times|Orari Chiamata| +CALL TIMES|ORARI CHIAMATA| +SHOW CALL TIMES|ELENCA ORARI CHIAMATE| +ADD NEW CALL TIME|AGGIUNGI ORARIO CHIAMATE| +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|ID Orario Chiamate| +Call Time Name|Nome Orario Chiamate| +Call Time Comments|Note Orario Chiamate| +short description of the call time|breve descrizione dell`orario nel quale chiamare| +HIDE|NASCONDI| +SHOW|MOSTRA| +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| +Wrap Up Seconds:|Secondi Riposo Operatore:| +Wrap Up Message:|Messaggio Riposo Operatore:| +Alt Number Dialing|El Marcar Del Número Del Alt| +no active lists selected for this campaign|nessuna lista attiva selezionata per questa campagna| +Real-Time Screen|Schermata Tempo Reale| +Allowable 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|Grupos de entrada permisibles - Para campañas MÁS CERCANAS solamente. Aquí es donde usted selecciona a grupos de entrada que usted quisiera que los agentes en esta campaña MÁS CERCANA pudieran tomar llamadas de. Es importante que las campañas de entrada-de salida MEZCLADAS seleccionen solamente a los grupos de entrada que se utilizan para los agentes en esta campaña. Las llamadas que vienen en los grupos de entrada seleccionados aquí serán contadas como llamadas activas para una campaña mezclada incluso si todos los agentes en la campaña no se entran para recibir llamadas de todos esos grupos de entrada seleccionados| +Allowed Inbound Groups|Grupos De entrada Permitidos| +ADD NUMBER TO DNC|AGREGUE EL NÚMERO A DNC| +ADD A NUMBER TO THE DNC LIST|AGGIUNGI UN NUMERO ALLA LISTA DA NON CHIAMARE| +Add New DNC|Agregue DNC Nuevo| +Phone Number|Numero di Telefono| +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 - esto no llama la lista contiene cada plomo quese ha fijado a un estado de DNC en el sistema. A trave`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 telefono 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 - 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 telefono 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|Controlla In Lista Contatti Da NON CHIAMARE| +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 - este campo permite enviar de un número de encargodel callerid en las llamadas de salida. este 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 opcio`n está solamente disponible siusted está utilizando PRIs - el ISDN Tß o Eß que tenga lacaracterística de encargo del callerid girada, este no trabajarácon los circuitos del service(RBS) del Robar-pedacito. Esto Tambientrabajará a trave`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|conexion - la conexion usada para el usuario del telefono a laconexion a los usos del cliente| +Password -<\/B> The password used for the phone user to login to the client applications|Contraseña - la contraseña usada para el usuario del telefono a laconexion a los usos del cliente| +New Campaign Lead Recycle Addition|El Nuevo Plomo De la Campaña Recicla La Adicio`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 e`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 Cancelacio`n Recicla| +LEAD RECYCLING WITHIN THIS CAMPAIGN|CONTATTI DA RICICLARE IN QUESTA CAMPAGNA| +ATTEMPT DELAY|RITARDO NUOVO TENTATIVO| +ATTEMPT MAXIMUM|MASSIMO TENTATIVI| +ADD NEW CAMPAIGN LEAD RECYCLE|AGGIUNGI NUOVO ESITO DA RICICLARE| +Attempt Delay|Intervallo Tra Tentativi| +Attempt Maximum|Massimo Tentativi| +If you want to allow Consultative Transfers, a fronter to a closer, you can place CXFER as one of the number-to-dial presets and the proper dial string will be sent to do a Local Consultative Transfer, then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER or CXFER, for instance if you want to do Internal Consultative transfers instead of Local you would put CXFER90009 in the number-to-dial field|Si usted desea permitir transferencias consultivas, un fronter a unmás cercano, usted puede colocar CXFER pues uno de lasprecolocaciones del nu`mero-a-dial y del dial string apropiado seráenviado para hacer una transferencia consultiva local, entonces lalata LEAVE-3WAY-CALL justo del agente y movimiento encendido a sullamada siguiente. Si usted desea permitir transferencias ocultas declientes a una escritura de VICIDIAL AGI para registrar o un IVR,entonces coloque AXFER en el campo del nu`mero-a-dial. Usted puedeTambien especificar una extension de encargo despue`s del AXFER odel CXFER, por ejemplo si usted desea hacer transferencias consultivasinternas en vez de local que usted pondría CXFER90009 en el campo delnu`mero-a-dial| +System Performance -<\/B> Setting this option to Y will enable logging of system performance stats for the server machine including system load, system processes and Asterisk channels in use. Default is N|Funcionamiento del sistema - fijar esta opcio`n a Y permitirá laregistracion del stats del funcionamiento del sistema para lamáquina del servidor incluyendo carga de sistema, procesos delsistema y canales del asterisco en uso. El defecto es N| +Server Logs -<\/B> Setting this option to Y will enable logging of all VICIDIAL related scripts to their text log files. Setting this to N will stop writing logs to files for these processes, also the screen logging of asterisk will be disabled if this is set to N when Asterisk is started. Default is Y|Registros del servidor - fijar esta opcio`n a Y permitirá laregistracion de todas las escrituras relacionadas VICIDIAL a susficheros de diario del texto. Fijar esto a N parará registros de laescritura a los archivos para estos procesos, Tambien laregistracion de la pantalla del asterisco será lisiado si esto sefija a N cuando se comienza el asterisco. El defecto es Y| +AGI Output -<\/B> Setting this option to NONE will disable output from all VICIDIAL related AGI scripts. Setting this to STDERR will send the AGI output to the Asterisk CLI. Setting this to FILE will send the output to a file in the logs directory. Setting this to BOTH will send output to both the Asterisk CLI and a log file. Default is FILE|AGI hecho salir - fijar esta opcio`n a NINGUNOS inhabilitará salidade todas las escrituras relacionadas VICIDIAL de AGI. Fijar esto aSTDERR enviará el AGI hecho salir al asterisco CLI. Fijar esto alARCHIVO enviará la salida a un archivo en el directorio de losregistros. Fijar esto a AMBOS enviará salida al asterisco CLI y a unfichero de diario. El defecto es ARCHIVO| +Recording Delay -<\/B> For ALLCALLS and ALLFORCE recording only. This setting will delay the starting of the recording on all calls for the number of seconds specified in this field. Default is 0|La registracion retrasa - para la grabacion de ALLCALLS y deALLFORCE solamente. Esta voluntad del ajuste retrasa comenzar de lagrabacion en todas las llamadas para el número de los segundosespecificados en este campo. El defecto es 0| +Omit Phone Code -<\/B> This field allows you to leave out the phone_code field while dialing within VICIDIAL. For instance if you are dialing in the UK from the UK you would have 44 in as your phone_code field for all leads, but you just want to dial 10 digits in your dial plan extensions.conf to place calls instead of 44 then 10 digits. Default is N|Omita el co`digo del telefono - este campo permite que usted dejehacia fuera el campo del phone_code mientras que marca dentro deVICIDIAL. Por ejemplo si usted está marcando en el Reino Unido delReino Unido usted tendría 44 adentro como su campo del phone_codepara todos los plomos, pero usted apenas desea marcar 10 dígitos ensu extensions.conf dial plan para poner llamadas en vez de 44 entonces10 dígitos. El defecto es N| +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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|grabacion de la campaña - este menú permite que usted elija que`nivel de la grabacion se permite en esta campaña. NUNCAinhabilitará la grabacion en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabacion en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabacion en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opcio`n para parar el registrar. ParaALLCALLS y ALLFORCE hay una opcio`n para utilizar la grabacionretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude| +Dial Method -<\/B> This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode|Me`todo del dial - Este campo es la manera de definir co`mo el marcar debe ocurrir. Si el MANUAL entonces el auto_dial_level es bloqueado en 0 a menos que se cambie el me`todo del dial. Si COCIENTE entonces el normal marcando un número de líneas para los agentes activos. ADAPT_HARD_LIMIT marcará predictively hasta el porcentaje caído y despue`s no permitirá marcar agresivo una vez que se alcance el límite de la gota hasta que va el porcentaje abajo otra vez. ADAPT_TAPERED permite para el excedente de funcionamiento el porcentaje caído por la mitad primer de la cambio - según lo definido por el call_time seleccionado para la campaña y consigue más terminante mientras que se enciende la cambio. ADAPT_AVERAGE intenta mantener un promedio o el porcentaje caído que no impone límites duros tan agresivamente como los otros dos me`todos. Usted no puede cambiar el nivel auto del dial si usted está en cualesquiera de los me`todos del dial del ADAPTAR. Solamente el sintonizador puede cambiar el nivel del dial cuando en modo que marca profe`tico| +Available Only Tally -<\/B> This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N|Solamente cuenta disponible - este campo si el sistema a Y deja haciafuera los agentes del estado de INCALL y de la COLETA al calcular elnúmero de llamadas al dial cuando no en modo de dial MANUAL. Eldefecto es N| +Drop Percentage Limit -<\/B> This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO|Límite del porcentaje de la gota - este campo es donde usted fijo` ellímite del porcentaje de llamadas caídas que usted quisiera mientrasque usaba un me`todo adaptante-profe`tico del dial, NO MANUAL o delCOCIENTE| +Maximum Adapt Dial Level -<\/B> This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0|El máximo adapta el dial llano - este campo es donde usted fijo` ellímite del límite al numbr de líneas que usted quisiera marcado poragente mientras que usaba un me`todo adaptante-profe`tico del dial, NOMANUAL o del COCIENTE. Este número puede ser más alto que el nivelauto del dial si su hardware lo apoya. El valor debe ser un númeropositivo mayor de uno y puede tener defecto 3.0 de los lugaresdecimales| +Latest Server Time -<\/B> This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling|El tiempo más último del servidor - este campo es utilizadosolamente por el me`todo del dial de ADAPT_TAPERED. Usted debe entraren la hora y el minuto que usted parará el invitar de esta campaña,2100 significaría que usted parará el marcar de esta campaña en eltiempo del servidor de los 9PM. Esto permite que el algoritmo afiladodecida a co`mo agresivamente al dial cerca cuánto tiempo usted tienehasta que usted será el llamar acabado| +Adapt Intensity Modifier -<\/B> This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Adapte el modificante de la intensidad - este campo se utiliza paraajustar la intensidad profe`tica más alta o más baja. El más altoun número positivo que usted selecciona, mayor va el sintonizadoraumentará la llamada que establece el paso cuando para arriba y máslentamente va el sintonizador disminuirá la llamada que establece elpaso cuando abajo. Cuanto más bajo es el número negativo que ustedseleccionan aquí, más lentamente el sintonizador aumentará lallamada que establece el paso y más rápidamente el sintonizadorbajará la llamada que establece el paso cuando va abajo. El defectoes 0. Este campo no es utilizado por los me`todos del dial del MANUALo del COCIENTE| +Dial Level Difference Target -<\/B> This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods|Blanco llana de la diferencia del dial - este campo se utiliza paradefinir si usted desea apuntar tener un número específico de losagentes que esperan agentes de las llamadas o el esperar de llamadas.Por ejemplo si usted siempre quisiera tener en agente del promedio unolibre tomar llamadas inmediatamente usted fijaría esto a -1, si ustedquisiera apuntar siempre tener uno invita el asimiento que espera unagente que usted fijaría esto a 1. El defecto es 0. Este campo no esutilizado por los me`todos del dial del MANUAL o del COCIENTE| +System Performance|Performance Di Sistema| +Server Logs|Log Server| +AGI Output|Salida de AGI| +Recording Delay|Ritardo Registrazione| +Omit Phone Code|Ometti Prefisso Telefono| +Campaign Recording|grabacion De la Campaña| +Dial Method|Metodo Chiamata| +Available Only Tally|Conta Solo Disponibili| +Drop Percentage Limit|Limita Percentuale Abbattuti| +Maximum Adapt Dial Level|Livello Auto-Dial Massimo In Modalita` Adapt| +Latest Server Time|Ultimo Orario Chiamate| +Adapt Intensity Modifier|Modifica Intensita` Adapt Auto-Dial| +Click here to see a VDAD report for this campaign|Clicca qui per vedere il report VDAD per questa campagna| +Dial Level Difference Target|Blanco Llana De la Diferencia Del Dial| +### START translations for 2.0.2 release ### +VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting|Los troncos del servidor de VICIDIAL permiten que usted restrinja laslíneas salientes que se utilizan en este servidor para la campañaque marca sobre una base de la por-campaña. Usted tiene la opcio`npara reservar un número de las líneas específico que se utilizaránpor solamente una campaña así como permitir que esa campañafuncione sobre sus líneas reservadas en cualesquiera líneas siguensiendo abiertas, según lo en las líneas totales usadas por vicidialen este servidor es de largo menos que fijar de los troncos delmáximo VICIDIAL. No tener cualesquiera de estos expedientespermitirá la campaña que marca la línea primero para tener tantaslíneas mientras que puede conseguir bajo fijar de los troncos delmáximo VICIDIAL| +VICIDIAL Balance Dialing -<\/B> Setting this field to Y will allow the server to place balance calls for campaigns in VICIDIAL so that the defined dial level can be met even if there are no agents logged into that campaign on this server. Default is N|El marcar del balance de VICIDIAL - fijar este campo a Y permitiráque el servidor ponga las llamadas del balance para las campañas enVICIDIAL para poder resolver el nivel definido del dial incluso si nohay agentes registrados en esa campaña en este servidor. El defectoes N| +VICIDIAL Balance Offlimits -<\/B> This setting defines the number of trunks to not allow VICIDIAL balance dialing to use. For example if you have 40 max vicidial trunks and balance offlimits is set to 10 you will only be able to use 30 trunk lines for VICIDIAL balance dialing. Default is 0|Balance Offlimits de VICIDIAL - este ajuste define el número detroncos para no permitir el balance de VICIDIAL que marca parautilizar. Por ejemplo si usted tiene 40 troncos y offlimits vicidialmáximos del balance se fijan a 10 que usted podrá solamenteutilizar 30 líneas interurbanas para marcar del balance de VICIDIAL.El defecto es 0| +Allowed Campaigns -<\/B> This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system|Campañas permitidas - esta es una lista seleccionable de lascampañas a las cuales los miembros de este grupo de usuario puedenabrirse una sesio`n. La opcio`n de ALL-CAMPAIGNS permite que losusuarios en este grupo consideren y se abran una sesio`n a cualquiercampaña en el sistema| +VICIDIAL SERVER TRUNK RECORD NOT ADDED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO AGREGADO| +there is already a server-trunk record for this campaign|hay ya un expediente del servidor-tronco para esta campaña| +the number of vicidial trunks is too high|el número de troncos vicidial es demasiado alto| +VICIDIAL SERVER TRUNK RECORD ADDED|EL EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL AGREGo`| +VICIDIAL SERVER TRUNK RECORD NOT MODIFIED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO MODIFICADO| +VICIDIAL SERVER TRUNK RECORD MODIFIED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL MODIFICADO| +VICIDIAL SERVER TRUNK RECORD NOT DELETED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL NO SUPRIMIDO| +VICIDIAL SERVER TRUNK RECORD DELETED|EXPEDIENTE DEL TRONCO DEL SERVIDOR DE VICIDIAL SUPRIMIDO| +campaign must be between 3 and 8 characters in length|la campaña debe estar entre 3 y 8 caracteres en longitud| +server_ip delay must be at least 7 characters|el server_ip retrasa debe ser por lo menos 7 caracteres| +trunks must be a digit from 0 to 9999|los troncos deben ser un dígito a partir de la 0 a 9999| +VICIDIAL Balance Dialing|El Marcar Del Balance de VICIDIAL| +VICIDIAL Balance Offlimits|Balance Offlimits de VICIDIAL| +ADDING NEW SERVER VICIDIAL TRUNK RECORD|ADICIo`N DEL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL| +ADD NEW SERVER VICIDIAL TRUNK RECORD|AGREGUE EL NUEVO EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL| +MODIFY SERVER VICIDIAL TRUNK RECORD|MODIFIQUE EL EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL| +DELETE SERVER VICIDIAL TRUNK RECORD|EXPEDIENTE DEL TRONCO DEL SERVIDOR VICIDIAL DE LA CANCELACIo`N| +VICIDIAL TRUNKS FOR THIS SERVER|TRONCOS DE VICIDIAL PARA ESTE SERVIDOR| + RESTRICTION | RESTRICCIo`N | + TRUNKS | TRONCOS | +Emergency VDAC Jam Clear|Claro Del Atasco De la Emergencia VDAC| +VDAC NOT CLEARED FOR CAMPAIGN|VDAC NO DESPEJo` PARA LA CAMPAÑA| +LAST VDAC RECORD CLEARED FOR CAMPAIGN|DE REGISTRO PASADO DE VDAC DESPEJADA PARA LA CAMPAÑA| +VDAC CLEAR CONFIRMATION|CONFIRMACIo`N CLARA DE VDAC| +Click here to delete the oldest LIVE record in VDAC for|Chasque aquí para suprimir el más viejo VIVEN expediente en VDACpara| +Allowed Campaigns|Campagne Permesse| +USERS CAN VIEW ANY CAMPAIGN|GLI UTENTI POSSONO VISUALIZZARE QUALSIASI CAMPAGNA| +Campaign Not Allowed|Campagna Non Autorizzata| +### START translations for 2.0.3 release ### +ADAPT OVERRIDE|FORZA LIVELLO ANCHE CON MODALITA` ADAPT| +The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually.|El checkbox de la INVALIDACIo`N del ADAPTAR permite que usted fuerceun nuevo nivel del dial aunque el me`todo del dial está en un mododel ADAPTAR. Esto es útil si hay una cambio dramática en la calidadde plomos y usted desea cambiar drástico el dial_level manualmente.| +There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead|Hay dos opciones especiales que usted puede utilizar conjuntamente conel número de telefono alterno que marca, ALTPH2 de HotKey - el dialcaliente del telefono alterno y el dial caliente ADDR3-----Address3permiten que un agente utilice un hotkey al retraso su llamada,permanecen en el mismo plomo, y marcan otro número del contacto deese conducen| +Concurrent Transfers|Transferencias Concurrentes| +Concurrent Transfers -<\/B> This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method|Transferencias concurrentes - este ajuste se utiliza para definir elnúmero de las llamadas que se pueden enviar a los agentes en el mismotiempo. Se recomienda que este ajuste está dejado en el AUTOMo`VIL. Este campo no es utilizado por el me`todo MANUAL del dial| +Auto Alt-Number Dialing -<\/B> This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method|Alt-Nu`mero auto que marca - este ajuste se utiliza para marcarautomáticamente campos alternos del número mientras que marca en elCOCIENTE y ADAPTA me`todos del dial cuando no hay contacto en elnúmero de telefono principal para un plomo, los estados del NA, deB, de la C.C. y de N. Este ajuste no es utilizado por el me`todoMANUAL del dial| +Auto Alt-Number Dialing|El Marcar Auto Del Alt-Nu`mero| +View Reports -<\/B> This option allows the user to view the VICIDIAL reports.|La visio`n divulga - esta opcio`n permite que el usuario visio`n losinformes de VICIDIAL.| +Modify Sections -<\/B> These options allow the user to view and modify each sections records. If set to 0, the user will be able to see the section list, but not the detail or modification screen of a record in that section|Modifique las secciones - estas opciones permiten que el usuariovisio`n y modifique cada uno los expedientes de las secciones. Si elsistema a 0, el usuario puede considerar la lista de la seccio`n, perono el detalle o la pantalla de la modificacio`n de un expediente enesa seccio`n| +VICIDIAL AUTO ALT DIAL STATUSES|ESTADOS AUTO DEL DIAL DE VICIDIAL ALT| +If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set|Si se fija el campo que marca del Alt-Nu`mero auto, despue`s losplomos que son dispositioned bajo estos estados del dial del alt delautomo`vil tendrán su alt_phone y-o los campos address3 marcadosdespue`s de que cualesquiera de estos ninguno-contesten a estados sefijan| +AUTO ALT NUMBER DIALING FOR THIS CAMPAIGN|ESITI PER I QUALI CHIAMARE I NUMERI ALTERNATIVI| +ADD NEW AUTO ALT NUMBER DIALING STATUS|AGGIUNGI NUOVO ESITO CHIAMA-AUTO-NUM-ALTERN| +AUTO ALT DIAL STATUS NOT ADDED|ESTADO AUTO DEL DIAL DEL ALT NO AGREGADO| +there is already an entry for this campaign with this status|hay ya una entrada para esta campaña con este estado| +AUTO ALT DIAL STATUS ADDED|ESTADO AUTO DEL DIAL DEL ALT AGREGADO| +AUTO ALT DIAL STATUS NOT DELETED|ESTADO AUTO DEL DIAL DEL ALT NO SUPRIMIDO| +AUTO ALT DIAL STATUS DELETED|ESTADO AUTO DEL DIAL DEL ALT SUPRIMIDO| +this auto alt dial status is not in this campaign|este estado del dial del alt del automo`vil no está en esta campaña| +New Auto Alt Dial Status|Nuevo Estado Del Dial Del Alt Del Automo`vil| +Delete Auto Alt Dial Status|Estado Auto Del Dial Del Alt De la Cancelacio`n| + Users | Utenti | + Campaigns | Campagne | + Lists | Liste | + Scripts | Script | + Filters | Filtri | + In-Groups | Gruppi Inbound | + User Groups | Gruppi Utenti | + Remote Agents | Operatori Remoti | + Admin | Admin | + Reports | Report | + Show Users | Visualizza Utenti | + Add A New User | Aggiungi Nuovo Utente | + Search For A User | Ricerca Utenti | + Show Campaigns | Visualizza Campagne | + Add A New Campaign | Aggiungi Nuova Campagna | + Real-Time Campaigns Summary | Riepilogo Campagne In Tempo Reale | + Show Lists | Visualizza Liste | + Add A New List | Nuova Lista | + Search For A Lead | Ricerca Contatti | + Add Number To DNC | Aggiungi Numero Alla Lista DNC | + Load New Leads | Carica Nuovi Contatti | + Show Scripts | Visualizza Script | + Add A New Script | Aggiungi Nuovo Script | + Show Filters | Visualizza Filtri | + Add A New Filter | Aggiungi Nuovo Filtro | + Show In-Groups | Visualizza Gruppi Inbound | + Add A New In-Group | Aggiungi Gruppo Inbound | + Show User Groups | Visualizza Gruppi Utenti | + Add A New User Group |Aggiungi Nuovo Gruppo Utente | + Group Hourly Report | Report Orario Per Gruppo | + Show Remote Agents | Visualizza Operatori Remoti | + Add New Remote Agents |Aggiungi Operatore Remoto | + Call Times | Orari Chiamata | + Phones | Telefoni | + Conferences | Conferencias | + Servers | Server | + Show Call Times | Elenca Orari Chiamata | + Add A New Call Time | Nuovo Orario Chiamate | + Show State Call Times | Elenca Orari Chiamata Per Stati | + Add A New State Call Time | Nuovo Orario Chiamate Per Stato | + Show Phones | Visualizza Telefoni | + Add A New Phone | Aggiungi Un Nuovo Telefono | + Show Conferences |Visualizza Conferenze | + Add A New Conference | Aggiungi Conferenza | + Show VICIDIAL Conferences | Visualizza Conferenze VICIDIAL | + Add A New VICIDIAL Conference | Aggiungi Conferenza VICIDIAL | + Show Servers | Visualizza Server | + Add A New Server | Aggiungi Un Nuovo Server | +CallBacks Within User Group|Richiami In Attesa In Questo Gruppo| +USERS WITHIN THIS USER GROUP|UTENTI IN QUESTO GRUPPO| +Modify Users: |Modifica Utenti: | +Modify Campaigns: |Modifica Campagne: | +Modify Lists: |Modifica Liste: | +Modify Scripts: |Modifica Script: | +Modify Filters: |Modifica Filtri: | +Modify In-Groups: |Modifica Gruppi Inbound: | +Modify User Groups: |Modifique A Grupos De Usuario: | +Modify Remote Agents: |Modifica Operatori Remoti: | +Modify Servers: |Modifica Server: | +View Reports: |Visualizza Report: | +You do not have permission to view this page|Non hai l`autorizzazione per accedere a questa pagina| +Lead Time Zone Lookup: |Ricerca Fusi Orari (Solo USA): | +Lead Duplicate Check: |Controlla Contatti Duplicati:| +Agent Pause Codes Active -<\/B> Allows agents to select a pause code when they click on the PAUSE button in vicidial.php. Pause codes are definable per campaign at the bottom of the campaign view detail screen and they are stored in the vicidial_agent_log table. Default is N|La pausa del agente cifra activo - permite que los agentes seleccionenun co`digo de la pausa cuando chascan encendido el boton de PAUSA envicidial.php. Los co`digos de la pausa son definibles por campaña enel fondo de la pantalla del detalle de la opinio`n de la campaña y sealmacenan en la tabla del vicidial_agent_log. El defecto es N| +AGENT PAUSE CODES|CODICI PAUSA OPERATORE| +If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the vicidial agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters.|Si la pausa del agente cifra el campo activo se fija a activo entonceslos agentes podrá seleccionar de estos co`digos de la pausa cuandochascan encendido el boton de PAUSA en sus pantallas. Estos datosentonces se almacenan en el registro vicidial del agente. El co`digode la pausa debe contener solamente letras y números y ser menos de 7caracteres de largo. El nombre del co`digo de la pausa puede estar nomás de largo de 30 caracteres.| +AGENT PAUSE CODES FOR THIS CAMPAIGN|CODICI PAUSA OPERATORE PER QUESTA CAMPAGNA| +>PAUSE CODES<|>CODICI PAUSA<| +BILLABLE|FATTURABILE| +ADD NEW AGENT PAUSE CODE|NUOVO CODICE PAUSA| +Pause Code: |Codice Pausa: | +Pause Code Name: |Nome Codice Pausa: | +Billable: |Fatturabile: | +New Agent Pause Code|Nuevo Co`digo De la Pausa Del Agente| +Modify Agent Pause Code|Modifique El Co`digo De la Pausa Del Agente| +Delete Agent Pause Code|Co`digo De la Pausa Del Agente De la Cancelacio`n| +AGENT PAUSE CODE NOT ADDED|Co`DIGO DE LA PAUSA DEL AGENTE NO AGREGADO| +there is already an entry for this campaign with this pause code|hay ya una entrada para esta campaña con este code de la pausa| +AGENT PAUSE CODE ADDED|EL Co`DIGO DE LA PAUSA DEL AGENTE AGREGo`| +AGENT PAUSE CODE NOT MODIFIED|Co`DIGO DE LA PAUSA DEL AGENTE NO MODIFICADO| +CAMPAIGN PAUSE CODE NOT DELETED|Co`DIGO DE LA PAUSA DE LA CAMPAÑA NO SUPRIMIDO| +Campaign Stats Refresh:|Aggiornamento Statistiche Campagna:| +Campaign Description -<\/B> This is a memo field for the campaign, it is optional and can be a maximum of 255 characters in length|Descripcio`n de la campaña - esto es un campo de la nota para lacampaña, es opcional y puede ser un máximo de 255 caracteres enlongitud| +Campaign Change Date -<\/B> This is the last time that the settings for this campaign were modified in any way|Fecha del cambio de la campaña - esta es la vez última que losajustes para esta campaña fueron modificados de cualquier manera| +Campaign Stats Refresh -<\/B> This checkbox will allow you to force a vicidial stats refresh, even if the campaign is not active|Los Stats de la campaña restauran - este checkbox permitirá queusted fuerce un stats vicidial restaura, incluso si la campaña no esactiva| +Last Campaign Login Date -<\/B> This is the last time that an agent was logged into this campaign|La fecha pasada de la conexion de la campaña - esta es la vezúltima que un agente fue registrado en esta campaña| +List Description -<\/B> This is the memo field for the list, it is optional|Descripcio`n de la lista - este es el campo de la nota para la lista,e`l es opcional| +List Change Date -<\/B> This is the last time that the settings for this list were modified in any way|Fecha del cambio de la lista - esta es la vez última que los ajustespara esta lista fueron modificados de cualquier manera| +List Last Call Date -<\/B> This is the last time that lead was dialed from this list|Fecha de la llamada del último de la lista - esta es la vez últimaque conduce fue marcado de esta lista| +List Description: |Descrizione Lista: | +List Change Date: |Data Modifica Lista: | +Campaign Description: |Descrizione Campagna: | +VICIDIAL Recording Override -<\/B> This option will override whatever the option is in the campaign for recording. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|Invalidacio`n de la grabacion de VICIDIAL - esta opcio`n seeliminará lo que es la opcio`n en la campaña para la grabacion.LISIADO no eliminará el ajuste de la grabacion de la campaña. NUNCAinhabilitará la grabacion en el cliente. ONDEMAND es el defecto ypermite que el agente comience y pare a registrar según lonecesitado. ALLCALLS comenzará la grabacion en el cliente siempreque una llamada se envíe a un agente. ALLFORCE comenzará lagrabacion en el cliente siempre que una llamada se envíe a un agenteque no da al agente ninguna opcio`n para parar el registrar. ParaALLCALLS y ALLFORCE hay una opcio`n para utilizar la grabacionretrasa para reducir en grabaciones y carga de sistema muy cortas delrecude| +VICIDIAL Recording Override: |Invalidacio`n De la grabacion de VICIDIAL:| +MODIFY VICIDIAL SYSTEM SETTINGS|MODIFICA IMPOSTAZIONI DI SISTEMA| + System Settings | Impostazioni di Sistema | +VICIDIAL SYSTEM SETTINGS MODIFIED|IMPOSTAZIONI DI SISTEMA MODIFICATE| +Version: |Versione: | +Use Non-Latin: |UsA Non-Latino: | +Webroot Writable: |Webroot Escribible: | +Enable QueueMetrics Logging: |Permita La Registracion De QueueMetrics: | +QueueMetrics Server IP: |IP Del Servidor De QueueMetrics: | +QueueMetrics DB Name: |Nombre del DB De QueueMetrics: | +QueueMetrics DB Login: |conexion del DB De QueueMetrics: | +QueueMetrics DB Password: |Contraseña del DB De QueueMetrics: | +Use Non-Latin -<\/B> This option allows you to default the web display script to use UTF8 characters and not do any latin-character-family regular expression filtering or display formatting. Default is 0|Uso No-Latino - esta opcio`n permite que usted omita la escritura dela exhibicio`n de la tela los caracteres del uso UTF8 y que no haganinguna expresio`n regular de la latino-cara`cter-familia que sefiltra ni que no exhiba el formato. El defecto es 0| +Webroot Writable -<\/B> This setting allows you to define whether temp files and authentication files should be placed in the webroot on your web server. Default is 1|Webroot escribible - este ajuste permite que usted defina si losarchivos de la temperatura y los archivos de la autentificacio`n seancolocados en el webroot en su web server. El defecto es 1| +Enable QueueMetrics Logging -<\/B> This setting allows you to define whether VICIDIAL will insert log entries into the queue_log database table as Asterisk Queues activity does. QueueMetrics is a standalone, closed-source statistical analysis program. You must have QueueMetrics already installed and configured before enabling this feature. Default is 0|Permita la registracion de QueueMetrics - este ajuste permite queusted defina si VICIDIAL inserte entradas del registro en la tabla dela base de datos del queue_log como lo hace la actividad de lascoletas del asterisco. QueueMetrics es un independiente, programa delanálisis estadístico de la cerrado-fuente. Usted debe tenerQueueMetrics instalado y configurado ya antes de permitir estacaracterística. El defecto es 0| +QueueMetrics Server IP -<\/B> This is the IP address of the database for your QueueMetrics installation|IP del servidor de QueueMetrics - este es el IP address de la base dedatos para su instalacio`n de QueueMetrics| +QueueMetrics Database Name -<\/B> This is the database name for your QueueMetrics database|Nombre de la base de datos de QueueMetrics - este es el nombre de labase de datos para su base de datos de QueueMetrics| +QueueMetrics Database Login -<\/B> This is the user name used to log in to your QueueMetrics database|conexion de la base de datos de QueueMetrics - este es el nombre delusuario usado para abrirse una sesio`n a su base de datos deQueueMetrics| +QueueMetrics Database Password -<\/B> This is the password used to log in to your QueueMetrics database|Contraseña de la base de datos de QueueMetrics - esta es lacontraseña usada para abrirse una sesio`n a su base de datos deQueueMetrics| +QueueMetrics URL -<\/B> This is the URL or web site address used to get to your QueueMetrics installation|URL de QueueMetrics - esta es la Direccion del URL o del Web siteusada para conseguir a su instalacio`n de QueueMetrics| +QueueMetrics Log ID -<\/B> This is the server ID that all VICIDIAL logs going into the QueueMetrics database will use as an identifier for each record|Identificacio`n del registro de QueueMetrics - esta es laidentificacio`n del servidor que todos los registros de VICIDIAL queentran la base de datos de QueueMetrics utilizarán como identificadorpara cada expediente| +QueueMetrics Log ID: |Log ID QueueMetrics: | +Campaign Dial Status Added|Esito Campagna Aggiunto| +Campaign Dial Status Removed|Esito Campagna Rimosso| +To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove|Para agregar otro estado al dial, seleccio`nelo de la lista drop-downy el tecleo AGREGA. Para quitar uno de los estados del dial, chasqueencendido el acoplamiento del QUITAR al lado del estado que usteddesea quitar| +CAMPAIGN DIAL STATUS NOT ADDED|ESITO CHIAMATA PER CAMPAGNA NON AGGIUNTO| +CAMPAIGN DIAL STATUS ADDED|ESITO CHIAMATA PER CAMPAGNA AGGIUNTO| +this dial status is not selected for this campaign|questo esito di chiamata non e` selezionato per questa campagna| +CAMPAIGN DIAL STATUS NOT REMOVED|ESITO CAMPAGNA NON RIMOSSO| +CAMPAIGN DIAL STATUS REMOVED|ESITO CAMPAGNA RIMOSSO| +>REMOVE<|>RIMUOVI<| +Dial Status |Esito Chiamata | +no dial statuses selected for this campaign|nessun esito di chiamata selezionato per questa campagna| +QueueMetrics EnterQueue Prepend -<\/B> This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything|QueueMetrics EnterQueue prepend - este campo se utiliza para permitirprepending de una de las zonas de informaciones del vicidial_listdelante del número de telefono del cliente para los informesmodificados para requisitos particulares de QueueMetrics. El defectono es NINGUNO no poblar cualquier cosa| +QueueMetrics EnterQueue Prepend: |QueueMetrics EnterQueue Prepend: | +VICIDIAL Agent Disable Display -<\/B> This field is used to select when to show an agent when their session has been disabled by the system, a manager action or by an external measure. The NOT_ACTIVE setting will disable the message on the agents screen. The LIVE_AGENT setting will only display the disabled message when the agents vicidial_auto_calls record has been removed, such as during a force logout or emergency logout|El agente de VICIDIAL inhabilita la exhibicio`n - este campo seutiliza para seleccionar cuando demostrar a un agente cuando susesio`n ha sido inhabilitada por el sistema, una accio`n del encargadoo por una medida externa. El ajuste de NOT_ACTIVE inhabilitará elmensaje en la pantalla de los agentes. El ajuste de LIVE_AGENTexhibirá solamente el mensaje lisiado cuando se ha quitado elexpediente de los vicidial_auto_calls de los agentes, por ejemplodurante un registro de estado de la máquina de la fuerza o registrode estado de la máquina de la emergencia| +VICIDIAL Agent Disable Display: |El Agente de VICIDIAL Inhabilita La Exhibicio`n:| +Disable Alter Customer Data -<\/B> If set to Y, does not change any of the customer data record when an agent dispositions the call. Default is N|Inhabilite alteran datos del cliente - si el sistema a Y, no cambiacualquiera del expediente de datos del cliente cuando lasdisposiciones de un agente la llamada. El defecto es N| +Disable Alter Customer Data: |Disabilita modifica dati clienti: | +Agent Alter Customer Data Override -<\/B> This option will override whatever the option is in the campaign for altering of customer data. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer data, no matter what the campaign setting is. Default is NOT_ACTIVE|El agente altera la invalidacio`n de los datos del cliente - estaopcio`n se eliminará lo que es la opcio`n en la campaña paraalterarse de los datos del cliente. NOT_ACTIVE utilizará lo que estápresente el ajuste para la campaña. ALLOW_ALTER permitirá siemprepara que el agente altere los datos del cliente, no importa que` es elajuste de la campaña. El defecto es NOT_ACTIVE| +Agent Alter Customer Data Override: |El Agente Altera La Invalidacio`n De los Datos Del Cliente: | +Allow No-Hopper-Leads Logins -<\/B> If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N|Permita Ninguno-Tolva-Conduce conexiones - si el sistema a Y, permiteagentes a la conexion a la campaña incluso si no hay plomos cargadosen la tolva para esa campaña. Esta funcio`n no se necesita encampañas de CLOSER-type. El defecto es N| +Allow No-Hopper-Leads Logins: |Abilita Login Senza Contatti Da Chiamare: | +Enable SIPSAK Messages -<\/B> If enabled the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. Feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Permita los mensajes de SIPSAK - si está permitido el servidorenviará mensajes al telefono del SIP a la exhibicio`n en laexhibicio`n del LCD del telefono cuando está registrado en VICIDIAL.La característica trabaja solamente con los telefonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0| +Enable SIPSAK Messages: |Abilita messaggi SIPSAK: | +Allow SIPSAK Messages -<\/B> If set to 1, this will allow the phones table setting to work properly, the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. This feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|Permita los mensajes de SIPSAK - si el sistema a 1, este permite queel ajuste de la tabla de los telefonos trabaje correctamente, elservidor enviará mensajes al telefono del SIP a la exhibicio`n en laexhibicio`n del LCD del telefono cuando está registrado en VICIDIAL.Esta característica trabaja solamente con los telefonos del SIP yrequiere el uso del sipsak ser instalada en el web server. El defectoes 0| +Allow SIPSAK Messages: |Permetti messaggi SIPSAK: | +Admin Home URL -<\/B> This is the URL or web site address that you will go to if you click on the HOME link at the top of the admin.php page|URL casero del Admin - esta es la Direccion del URL o del Web siteque usted irá si usted chasca encendido el acoplamiento CASERO en latapa de la página de admin.php| +Admin Home URL: |URL Home Amministrazione: | +>HOME<|>HOME<| + Welcome | Benvenuti | +### START translations for 2.0.4 release ### +CHECK FOR DUPLICATES BY PHONE IN ALL CAMPAIGN LISTS|CONTROLLA DUPLICATI PER TELEFONO IN TUTTE LE LISTE DELLA CAMPAGNA| +CHECK FOR DUPLICATES BY PHONE IN ENTIRE SYSTEM|CONTROLLA DUPLICATI PER TELEFONO NELL` INTERO SISTEMA| +CHECK FOR DUPLICATES BY PHONE IN LIST ID|CONTROLLA DUPLICATI PER TELEFONO SOLO CON QUESTO ID LISTA| +NO DUPLICATE CHECK|NON CONTROLLARE DUPLICATI| +PHONE CODE OVERRIDE FOR THIS FILE|SOVRASCRITTURA DEL CODICE TELEFONO PER QUESTO FILE| +Phone Code Override:|Sovrascrittura Codice Telefono:| +List ID Override:|Sovrascrittura ID Lista:| +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. The lead loader 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, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files:|El cargador tela-basado básico del plomo de VICIDIAL se diseñasimplemente para tomar un archivo del plomo - hasta 8MB de tamaño quees la lengüeta o la pipa delimitada y para cargarlo en la tabla delvicidial_list. El cargador del plomo permite el campo que elige y deTXT- el texto claramente, los valores separados coma de CSV- y XLS-sobresalen formatos del archivo. El cargador del plomo no hace lavalidacio`n de datos, sino que permite que usted compruebe para sabersi hay duplicados en sí mismo, dentro de la campaña o dentro delsistema entero. Tambien, cercio`rese de que usted haya creado lalista que estos plomos son estar debajo de modo que usted puedautilizarlos. Aquí está una lista de los campos en su orden apropiadapara los archivos del plomo:| +NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf 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. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads.|NOTAS: La funcionalidad del cargador del plomo del sobresalir espermitida por una serie de escrituras del Perl y necesita tener unarchivo correctamente configurado de /etc/astguiclient.conf en lugaren el web server. Tambien, los mo`dulos de un Perl de los pares sedeben cargar para ella para trabajar Tambien -oLE-Storage_Lite-Storage_Lite y la Hoja de balance-ParseExcel. Ustedpuede comprobar para saber si hay errores runtime en estos mirando suarchivo del error_log de apache. Tambien, para los cheques deduplicacio`n contra gampaign enumera, la lista que tiene nuevos plomosel entrar e`l necesita ser creada en el sistema antes de que ustedcomience a cargar los plomos.| +Campaign List Mix Added|Mezcla De la Lista De la Campaña Agregada| +Modify Campaign List Mix|Modifique La Mezcla De la Lista De la Campaña| +Campaign List Mix Removed|La Mezcla De la Lista De la Campaña Quito`| +Campaign Statuses|Esiti Campagna| +Campaign HotKeys|HotKeys Campagna| +Campaign Lead Recycle Entries|El Plomo De la Campaña Recicla Entradas| +Campaign Auto Alt Dial Statuses|Estados Auto Del Dial Del Alt De la Campaña| +Campaign Agent Pause Codes|Codici Pausa Operatore per Campagna| +Campaign Dial Statuses|Estados Del Dial De la Campaña| +Campaign List Mixes|Mezclas De la Lista De la Campaña| + Lead Recycle |Riciclaggio Contatti| + Auto-Alt Dial | Chiama-Auto-Num-Altern| + Pause Codes |Codici Pausa| + List Mix |Mix Liste| + Campaigns Main |Main Campagne| +List Order Mix -<\/B> Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED|Mezcla de la orden de la lista - elimina los campos de la orden delplomo y del estado del dial. Utilizará los parámetros de la lista ydel estado para la entrada seleccionada de la mezcla de la lista en laseccio`n del submarino de la mezcla de la lista en lugar de otro. Eldefecto es LISIADO| +List Mix ID -<\/B> ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation.|Identificacio`n de la mezcla de la lista - identificacio`n de lamezcla de la lista. Debe ser a partir de 2-20 caracteres en longitudsin los espacios o la otra puntuacio`n especial.| +List Mix Name -<\/B> Descriptive name of the list mix. Must be from 2-50 characters in length|Nombre de la mezcla de la lista - nombre descriptivo de la mezcla dela lista. Debe ser a partir de 2-50 caracteres en longitud| +List Mix Detail -<\/B> The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated|Detalle de la mezcla de la lista - la composicio`n de la entrada de lamezcla de la lista. Contiene la identificacio`n de la lista, la ordende la mezcla, los porcentajes y los estados que hacen para arriba estamezcla de la lista. Los porcentajes tienen que agregar siempre hasta100, y las listas todas tienen que ser activas y fijadas a la campañapara que la entrada de la mezcla de la orden sea activada| +List Mix Method -<\/B> The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER.|Me`todo de la mezcla de la lista - el me`todo de mezclar a todas laspartes del detalle de la mezcla de la lista juntas. EVEN_MIX mezclarálos plomos de cada parte interpolada con las otras partes, como estos1.2.3.1.2.3.1.2.3. IN_ORDER pondrá los plomos en la orden en la cualse enumeran en la pantalla 1.1.1.2.2.2.3.3.3 del detalle de la mezclade la lista. La voluntad AL AZAR los puso en la orden AL AZAR1.3.2.1.1.3.2.1.3. El defecto es IN_ORDER.| +LIST MIXES FOR THIS CAMPAIGN: |MIX LISTA PER QUESTA CAMPAGNA: | +The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls.|Human_answered el campo se utiliza al calcular el porcentaje de lagota, o la tarifa del abandono. El ajuste human_answered a Yutilizará este estado al contar las llamadas humano-contestadas.| +HUMAN ANSWER|RISPOSTA UMANA| +Human Answer:|Risposta Umana:| +ADDING VICIDIAL SYSTEM STATUSES|AGGIUNGI ESITI DI DEFAULT VICIDIAL| +MODIFY VICIDIAL SYSTEM STATUSES|MODIFICA ESITI DI DEFAULT VICIDIAL| +SYSTEM STATUS NOT ADDED|ESITO DI DEFAULT NON AGGIUNTO| +SYSTEM STATUS ADDED|ESITO DI DEFAULT AGGIUNTO| +SYSTEM STATUS NOT DELETED|ESITO DI DEFAULT NON ELIMINATO| +the system status cannot be a reserved status: |el estado de sistema no puede ser un estado reservado:| +the system status needs to be at least 1 characters in length|el estado de sistema necesita ser por lo menos los caracteres 1 enlongitud| +VICIDIAL STATUSES WITHIN THIS SYSTEM: |ESITI DI DEFAULT IN QUESTO SISTEMA: | +ADD NEW SYSTEM STATUS|AGGIUNGI UN NUOVO ESITO DI DEFAULT| +CUSTOM CAMPAIGN STATUSES LISTINGS:|ELENCO ESITI PERSONALIZZATI PER CAMPAGNA:| +CAMPAIGN HOTKEYS LISTINGS:|ELENCO HOTKEY CAMPAGNE:| +CAMPAIGN LEAD RECYCLE LISTINGS:|ELENCO CONTATTI DA RICICLARE:| +>LEAD RECYCLES<|>ESITI DA RICICLARE<| +CAMPAIGN LEAD AUTO-ALT DIAL LISTINGS:|ELENCO ESITI PER I QUALI CHIAMARE AUTOMATICAMENTE IL NUMERO ALTERNATIVO:| +CAMPAIGN AGENT PAUSE CODE LISTINGS:|ELENCO CODICI PAUSA OPERATORE PER CAMPAGNA:| +CAMPAIGN LIST MIX LISTINGS:|LISTADOS DE LA MEZCLA DE LA LISTA DE LA CAMPAÑA:| +The Category option allows you to group several statuses into a catogy that can be used for statistical analysis.|La opcio`n de la categoría permite que usted agrupe varios estados enun catogy que se pueda utilizar para el análisis estadístico.| +MODIFY VICIDIAL STATUS CATEGORIES|MODIFIQUE LAS CATEGORÍAS DEL ESTADO DE VICIDIAL| +ADDING VICIDIAL STATUS CATEGORY|ADICIo`N DE CATEGORÍA DEL ESTADO DE VICIDIAL| + Status Categories | Categorie di esiti| + System Statuses | Esiti di Default| +MODIFY VICIDIAL SYSTEM STATUSES|MODIFICA GLI ESITI DI DEFAULT DI VICIDIAL| +MODIFY VICIDIAL STATUS CATEGORY|MODIFICA LE CATEGORIE DI ESITI DI VICIDIAL| +Through the use of system statuses, you can have statuses that exist for campaign and in-group. The Status must be 1-6 characters in length, the description must be 2-30 characters in length and Selectable defines whether it shows up in VICIDIAL as an agent disposition. The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls. The Category option allows you to group several statuses into a catogy that can be used for statistical analysis|Con el uso de los estados de sistema, usted puede tener estados queexistan para la campaña y el en-grupo. El estado debe ser 1-6caracteres en longitud, la descripcio`n debe ser 2-30 caracteres enlongitud y seleccionable define si demuestra para arriba en VICIDIALcomo disposicion del agente. Human_answered el campo se utiliza alcalcular el porcentaje de la gota, o la tarifa del abandono. El ajustehuman_answered a Y utilizará este estado al contar las llamadashumano-contestadas. La opcio`n de la categoría permite que ustedagrupe varios estados en un catogy que se pueda utilizar para elanálisis estadístico| +Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report|Con el uso de las categorías del estado de sistema, usted puedeagrupar juntos estados para tener en cuenta análisis estadístico enun grupo de estados. La identificacio`n de la categoría debe ser 2-20caracteres en longitud sin espacios, el nombre debe ser 2-50caracteres en longitud, la descripcio`n es opcional y la exhibicio`nde TimeonVDAD define si ese estado será uno de hasta que 4 estadosque se puedan calcular y exhibir en el tiempo en informe del tiemporeal de VDAD| +ADD NEW STATUS CATEGORY|AGGIUNGI NUOVA CATEGORIA DI ESITI| +STATUS CATEGORY NOT ADDED|CATEGORIA DI ESITI NON AGGIUNTA| +there is already a status category in the system with this ID|Esiste gia` una categoria di esiti con questo ID| +ID must be between 2 and 20 characters in length|L` ID deve essere lungo tra i 2 e i 50 caratteri| +name name must be between 2 and 50 characters in length|il nome deve essere lungo tra i 2 e i 50 caratteri| +STATUS CATEGORY NOT MODIFIED|CATEGORIA ESITI NON MODIFICATA| +the status category cannot be a reserved category: |la categoria di esiti non puo` essere una categoria riservata: | +the status category needs to be at least 2 characters in length|il nome delle categorie di esiti deve essere lungo almeno 2 caratteri| +STATUS CATEGORY DELETED|CATEGORIA ESISI CANCELLATA| +STATUS CATEGORY MODIFIED|CATEGORIA ESITI MODIFICATA| +Category: |Categoria: | +the system status name needs to be at least 1 characters in length|il nome di un esito di default deve essere lungo almeno 1 carattere| +SYSTEM STATUS NOT MODIFIED|ESITO DI DEFAULT NON MODIFICATO| +SYSTEM STATUS MODIFIED|ESITO DI DEFAULT MODIFICATO| +ERROR: There are already 4 Status Categories set to TimeOnVDAD Display|ERRORE: Ci sono gia` 4 Categorie di Stato attivi nel display TimeOnVDAD| +CUSTOM CAMPAIGN STATUS MODIFIED|ESITO PERSONALIZZATO PER CAMPAGNA MODIFICATO| +LIST MIX NOT MODIFIED|MIX LISTA NON MODIFICATO| +LIST MIX MODIFIED|MIX LISTA MODIFICATO| +You cannot delete the last list_id entry from a list mix|Non puoi cancellare l`ultimo list_id da un mix di liste| +LIST MIX ADDED: |MIX LISTA AGGIUNTO: | +LIST MIX NOT ADDED |MIX LISTA NON AGGIUNTO| +There is already a list mix with this ID in the system|Esiste gia` un mix di lista con questo ID| +LIST MIX NOT DELETED|MIX LISTA NON CANCELLATO| +LIST MIX DELETED: |MIX LISTA CANCELLATO: | +SET TO ACTIVE|ATTIVA| +LIST MIX NOT ACTIVATED|MIX LISTA NON ATTIVATO| +LIST MIX ACTIVATED|MIX LISTA ATTIVATO| +Enable Agent Transfer Logfile -<\/B> This option will log to a text logfile on the webserver every time a call is transferred to an agent. Default is 0, disabled|Permita el logfile de la transferencia del agente - esta opcio`nregistrará a un logfile del texto en el webserver cada vez que unallamada se transfiere a un agente. El defecto es 0, inhabilitado| +Enable Agent Transfer Logfile|Permita El Logfile De la Transferencia Del Agente| +Call Time -<\/B> This is the call time scheme to use for this inbound group. Keep in mind that the time is based on the server time. Default is 24hours|Tiempo de la llamada - este es el esquema del tiempo de la llamada autilizar para este grupo de entrada. Tenga presente que el tiempoestá basado en el tiempo del servidor. El defecto es 24hours| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field. Default is MESSAGE|Despue`s de la accio`n de las horas - la accio`n a realizarse si esdespue`s de horas según lo definido en la e`poca de la llamada paraeste grupo de entrada. Del RETRASO de la voluntad el retrasoinmediatamente la llamada, MESSASGE jugará el archivo en despue`s delcampo de Filenam del mensaje de las horas, la Extension enviará lallamada a despue`s de la extension de las horas en el dialplan yVOICEMAIL enviará la llamada a la caja del voicemail enumerada endespue`s del campo de Voicemail de las horas. El defecto es MENSAJE| +After Hours Message Filename -<\/B> The audio file located on the server to be played if the Action is set to MESSAGE. Default is vm-goodbye|Despue`s del nombre de fichero del mensaje de las horas - el archivoaudio situado en el servidor que se jugará si la accio`n se fija alMENSAJE. El defecto es VM-ADIO`S| +After Hours Extension -<\/B> The dialplan extension to send the call to if the Action is set to EXTENSION. Default is 8300|Despue`s de la extension de las horas - la extension dialplan paraenviar la llamada si la accio`n se fija a la Extension. El defecto es8300| +After Hours Voicemail -<\/B> The voicemail box to send the call to if the Action is set to VOICEMAIL|Despue`s de las horas Voicemail - la caja del voicemail para enviar lallamada si la accio`n se fija a VOICEMAIL| +Welcome Message Filename -<\/B> The audio file located on the server to be played when the call comes in. If set to ---NONE--- then no message will be played. Default is ---NONE---|Nombre de fichero agradable del mensaje - el archivo audio situado enel servidor que se jugará cuando viene la llamada adentro. Si sistemaa ---NONE --- entonces no se jugará ningún mensaje. El defecto es---NONE ---| +Music On Hold Context -<\/B> The music on hold context to use when the customer is placed on hold. Default is default|Música en contexto del asimiento - la música en el contexto delasimiento para utilizar cuando colocan al cliente en asimiento. Eldefecto es defecto| +On Hold Prompt Filename -<\/B> The audio file located on the server to be played at a regular interval when the customer is on hold. Default is generic_hold. This audio file MUST be 9 seconds or less in length.|En el nombre de fichero del aviso del asimiento - el archivo audiosituado en el servidor que se jugará en un intervalo regular cuandoel cliente está en asimiento. El defecto es generic_hold. Estearchivo audio DEBE estar 9 segundos o menos en longitud.| +On Hold Prompt Interval -<\/B> The length of time in seconds to wait before playing the on hold prompt. Default is 60|En el intervalo del aviso del asimiento - la longitud de la hora ensegundos de esperar antes de jugar encendido el aviso del sostener. Eldefecto es 60| +Agent Alert Extension -<\/B> The extension to send into the agent session to announce that a call is coming to the agent. This extension should have a Playback of an audio file. To not use this function set this to X. Default is X|Extension alerta del agente - la extension a enviar en la sesio`ndel agente para anunciar que una llamada está viniendo al agente.Esta extension debe tener un aparato de lectura de un archivo audio.No utilizar esta funcio`n fijo` esto a X. Default es X| +Agent Alert Delay -<\/B> The length of time in milliseconds to wait before sending the call to the agent after playing the on Agent Alert Extension. Default is 1000|La alarma del agente retrasa - la longitud de la hora en milisegundosde esperar antes de enviar la llamada al agente despue`s de jugarencendido la extension alerta del agente. El defecto es 1000| +Call Time: |Tempo Chiamata: | +After Hours Action: |Despue`s De la Accio`n De las Horas:| +After Hours Message Filename: |Despue`s De Nombre de fichero Del Mensaje De las Horas:| +After Hours Extension: |Despue`s De la Extension De las Horas:| +After Hours Voicemail: |Despue`s De las Horas Voicemail:| +Welcome Message Filename: |Nombre de fichero Agradable Del Mensaje:| +Music On Hold Context: |Context Musica di Attesa:| +On Hold Prompt Filename: |En Nombre de fichero Del Aviso Del Asimiento:| +On Hold Prompt Interval: |En Intervalo Del Aviso Del Asimiento:| +Agent Alert Extension: |Extension Alerta Del Agente:| +Agent Alert Delay: |La Alarma Del Agente Retrasa:| +You will also be able to set the rank, or skill level, in this section for each of the inbound groups as well as being able to see the number of calls received from each inbound group for this specific agent|Usted Tambien podrá fijar la fila, o el nivel de habilidad, en estaseccio`n para cada uno de los grupos de entrada así como poder ver elnúmero de las llamadas recibidas de cada grupo de entrada para esteagente específico| +Allow Inbound and Blended -<\/B> This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N|Permita de entrada y mezclado - aquí es donde usted puede fijar silos usuarios de esta campaña tendrán la opcio`n para tomar llamadasde entrada con esta campaña. Si usted desea hacer de entrada y desalida mezclada entonces esto se debe fijar a Y. Si usted deseasolamente hacer marcar de salida en esta campaña fijo` esto a N.Default es N| +Allow Inbound and Blended: |Permita de entrada y mezclado:| +Add A Dial Status:|Aggiungi Un Esito Chiamata:| +Manual Dial List ID -<\/B> The default list_id to be used when an agent placces a manual call and a new lead record is created in vicidial_list. Default is 999. This field can contain digits only|Identificacio`n manual de la lista del dial - el list_id del defectoque se utilizará cuando los placces de un agente una llamada manual yun nuevo expediente del plomo se crean en vicidial_list. El defecto es999. Este campo puede contener dígitos solamente| +Manual Dial List ID: |ID Lista Chiamate Manuali:| +inbound_group_rank: orders by the rank given to the agent for the specific inbound group. Highest to Lowest|inbound_group_rank: o`rdenes de la fila dada al agente para el grupode entrada específico. Lo más arriba posible a lo más bajo posible| +fewest_calls: orders by the number of calls received by an agent for that specific inbound group. Least calls first|fewest_calls: o`rdenes por el número de las llamadas recibidas por unagente para ese grupo de entrada específico. Menos llamadas primero| +Campaign Ranks: |Classifiche Campagna:| +AGENT RANKS FOR THIS CAMPAIGN:|CLASSIFICA OPERATORI PER QUESTA CAMPAGNA:| +Copy Campaign|Copia Campagna| +COPY A CAMPAIGN|COPIA UNA CAMPAGNA| +Source Campaign: |Campagna da copiare:| +New Copied Campaign Addition|Nueva Adicio`n Copiada De la Campaña| +Copy In-Group|Copia Gruppo Inbound| +New Copied In-Group Addition|Nueva Adicin Copiada Del En-Grupo| +Copy User|Copia Utente| +New Copied User Addition|Nueva Adicio`n Copiada Del Usuario| +COPY USER|COPIA UTENTE| +Copy In-Group|Copia Gruppo Inbound| +COPY INBOUND GROUP|COPIA GRUPPO INBOUND| +campaign_rank: orders by the rank given to the agent for the campaign. Highest to Lowest|campaign_rank: o`rdenes de la fila dada al agente para la campaña. Lomás arriba posible a lo más bajo posible| +Default Transfer Group -<\/B> This field is the default In-Group that will be automatically selected when the agent goes to the transfer-conference frame in their agent interface|Grupo de la transferencia del defecto - este campo es el En-Grupo deldefecto que será seleccionado automáticamente cuando el agente va almarco de la transferir-conferencia en su interfaz del agente| +Default Transfer Group: |Grupo De la Transferencia Del Defecto:| +Allowed Transfer Groups: |Grupos Permitidos De la Transferencia:| +Allowed Transfer Groups -<\/B> With these checkbox listings you can select the groups that agents in this campaign can transfer calls to. Allow Closers must be enabled for this option to show up|Grupos permitidos de la transferencia - con estos listados delcheckbox usted puede seleccionar a los grupos a quienes los agentes enesta campaña pueden transferir llamadas. Permita Closers debe serpermitido para que esta opcio`n demuestre para arriba| +Campaign Ranks -<\/B> In this section you can define the rank an agent will have for each campaign. These ranks can be used to allow for preferred call routing when Next Agent Call is set to campaign_rank|La campaña alinea - en esta seccio`n usted puede definir a la filaque un agente tendrá para cada campaña. Estas filas pueden serutilizadas para tener en cuenta la encaminamiento preferida de lallamada cuando la llamada siguiente del agente se fija alcampaign_rank| +Also in this section is the ability to give the agent a rank for each inbound group. These ranks can be used for preferred call routing when that option is selected in the in-group screen|Tambien en esta seccio`n está la capacidad de dar al agente una filapara cada grupo de entrada. Estas filas pueden ser utilizadas para laencaminamiento preferida de la llamada cuando esa opcio`n seselecciona en la pantalla del en-grupo| +or leave blank for values in the file|o lasciare in bianco per usare i valori contenuti nel file| +AGENT PERFORMANCE DETAIL|DETTAGLI PERFORMANCE OPERATORE| +TOTALS|TOTALI| +VICIDIAL: Auto-dial Stats|VICIDIAL: Statistiche Auto-Dial| +DESCRIPTION|DESCRIZIONE| +VIEW MORE SETTINGS|VISUALIZZA PIU DATI| +VIEW LESS SETTINGS|VISUALIZZA MENO DATI| +Realtime All Campaigns Summary<|Riepilogo Di Tutte Le Campagne Aggiornato In Tempo Reale| +DROPPED MAX:|ABBATTIMENTO MAX:| +DIAL METHOD:|METODO CHIAMATA:| +DIALABLE LEADS:|CONTATTI CHIAMABILI:| +LEADS IN HOPPER:|CONTATTI IN CODA:| +DROPPED PERCENT:|PERCENT ABBATTIMENTO:| +HOPPER LEVEL:|LIVELLO CODA CHIAMATE:| +AVG AGENTS:|MEDIA OPERATORI:| +ORDER:|ORDINE:| +FILTER:|FILTRO:| +DIAL LEVEL:|LIVELLO CHIAMATE:| +DIAL TIMEOUT:|TIMEOUT CHIAMATA:| +VIEW USER GROUP|MOSTRA GRUPPI UTENTI| +HIDE USER GROUP|NASCONDI GRUPPI UTENTI| +SHOW AGENT NAME|MOSTRA NOME OPERATORE| +SHOW AGENT ID|MOSTRA ID OPERATORE| +HIDE SERVER INFO|NASCONDI INFO SERVER| +SHOW SERVER INFO|MOSTRA INFO SERVER| +SHOW WAITING CALLS DETAIL|MOSTRA DETTAGLI CHIAMATE IN ATTESA| +HIDE WAITING CALLS DETAIL|NASCONDI DETTAGLI CHIAMATE IN ATTESA| +>SUMMARY<|>RIEPILOGO<| +STATUSES:|ESITI:| + NO AGENTS ON CALLS| NESSUN OPERATORE AL TELEFONO| +PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK|PER FAVORE SELEZIONA UNA CAMPAGNA E UNA DATA, POI PREMI| +PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK|PER FAVORE SELEZIONA UN GRUPPO INBOUND E UN INTERVALLO DI TEMPO, POI PREMI| +PLEASE SELECT A SERVER AND DATE/TIME RANGE ABOVE AND CLICK|PER FAVORE SELEZIONA UN SERVER E UN INTERVALLO DI TEMPO, POI PREMI| +Date/Time Range:|Intervallo di tempo in formato Data/Ora:| +Server Stats and Reports<|Statistiche e Report<| +>Modify<|>Modifica<| +>DROPPED / ANSWERED:<|>ABBATTUTE / RISPOSTE:<| +>STATUSES:<|>ESITI:<| +>SLOW<|>PIU LENTO<| +>GO<|>INIZIA<| +>MAX LEVEL:<|>LIVELLO MAX:<| +> TIME:<|> DATA:<| +>CALLS TODAY:<|>CHIAMATE OGGI:<| +>FULL NAME<|>NOME COMPLETO<| +>LEVEL<|>LIVELLO<| +>GROUP<|>GRUPPO<| +>USER ID<|>ID UTENTE<| +>USER CALLBACK HOLD LISTINGS:|>ELENCO RICHIAMI DA EFFETTUARE PER L`UTENTE:| +>ENTRY DATA<|>DATA INSERIMENTO<| +>CALLBACK DATA<|>DATA RICHIAMO<| +>LEAD<|>CONTATTO<| +>Source User:|>Utente Da Copiare:| +>CAMPAIGN<|>CAMPAGNA<| +>STATUSES<|>ESITI<| +>MODIFY STATUSES<|>MODIFICA ESITI<| +>HOTKEYS<|>HOTKEY<| +>MODIFY LEAD RECYCLES<|>MODIFICA CONTATTI DA RICICLARE<| +>MODIFY HOTKEYS<|>MODIFICA HOTKEY<| +>MODIFY PAUSE CODES<|>MODIFICA CODICI PAUSA<| +>NONE<|>NESSUNO<| +>AUTO-ALT DIAL<|>CHIAMA-AUTO-NUM-ALTERN<| +>MODIFY AUTO-ALT DIAL<|>MODIFICA CHIAMA-AUTO-NUM-ALTERN<| +>Auto Alt Dial<|>Chiama Auto Num Altern<| +group:|gruppo:| +status:|esito:| +date with hour:|data e ora:| +example:|esempio:| +>TOTAL <|>TOTALE <| +>USER<|>UTENTE<| +>IP ADDRESS<|>INDIRIZZO IP<| +>Click here to see all CallBack Holds in this user group<|>Clicca qui per visualizzare tutti i richiami di questo utente<| +>DELETE THIS SERVER<|>CANCELLA QUESTO SERVER<| +>GMT Local: <|>Fuso Orario Locale: <| +>SELECT-<|>SELEZIO<| +>ABLE<|>NABILE<| +>HUMAN<|>RISPOSTA<| +>ANSWER<|>UMANA<| +>CATEGORY<|>CATEGORIA<| +>MODIFY/DELETE<|>MODIFICA/CANCELLA<| +value="MODIFY"|value="MODIFICA"| +>ADD NEW SCRIPT<|>AGGIUNGI NUOVO SCRIPT<| +no spaces|senza spazi| +>Source Group ID: <|>ID Gruppo Da Copiare: <| +>AGENT RANKS FOR THIS INBOUND GROUP:<|>CLASSIFICA OPERATORI PER QUESTO GRUPPO INBOUND:<| +RANK<|CLASSIFICA<| +CALLS TODAY<|CHIAMATE OGGI<| +>Click here to see a report for this inbound group<|>Clicca qui per visualizzare un report per questo gruppo inbound<| +>INBOUND GROUPS USING THIS CALL TIME:<|>GRUPPI INBOUND CHE UTILIZZANO QUESTO ORARIO:<| +>UNDEFINED - Default Category<|>NON DEFINITO - Categoria Di Default<| +>DELETE THIS CONFERENCE<|>CANCELLA QUESTA CONFERENZA<| +>DELETE THIS VICIDIAL CONFERENCE<|>CANCELLA QUESTA CONFERENZA VICIDIAL<| +>please select a campaign from the pulldown above<|>per favore seleziona una campagna dal menu qui in alto<| +### START translations for 2.0.5 release ### +QC Enabled -<\/B> This option allows the user to log in to the Quality Control agent screen|QC Attivato - Questa opzione permette allutente di accedere alla schermata di controllo della qualità agente| +QC User Level -<\/B> This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section|QC Utente Livello - Questa impostazione consente di definire ciò che lagente di controllo della qualità è il livello utente. Ciò dettare il livello di funzionalità per lagente nel QC sezione| +QC Record Pass -<\/B> This option allows the agent to specify that a record has passed the first round of QC after reviewing the record|QC record Pass - Questa opzione permette di specificare lagente di un record che ha superato il primo turno delle QC dopo aver esaminato il record| +QC Record Finish -<\/B> This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record|QC record Fine - Questa opzione permette di specificare lagente che ha finito di registrare il secondo turno delle QC dopo aver esaminato il passato record| +QC Record Commit -<\/B> This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone|QC record Impegni - Questa opzione permette di specificare lagente che un record è stato commesso in QC. Essa non può più essere modificato da chiunque| +QC Allowed Campaigns -<\/B> This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system|QC ammessi Campagne - Si tratta di un elenco di campagne selezionabili che membri di questo gruppo di utenti sarà in grado di QC. The All-CAMPAGNE opzione consente agli utenti di questo gruppo di QC una campagna sul sistema| +QC Allowed Inbound Groups -<\/B> This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system|QC ammessi Inbound Gruppi - Si tratta di un elenco di ingresso selezionabile gruppi che membri di questo gruppo di utenti sarà in grado di QC. TUTTI I GRUPPI opzione consente agli utenti di questo gruppo di utenti di qualsiasi entrata CQ gruppo sul sistema| +QC Enabled: |QC Enabled:| +QC User Level: |QC Utente Livello:| +QC Pass: |QC Pass:| +QC Finish: |QC Fine:| +QC Commit: |QC Impegni:| +Modify Nothing|Modificare Nulla| +Modify Nothing Except Status|Modificare Nulla Salvo Stato| +Modify All Fields|Modificare tutti i campi| +Verify First Round of QC|Verificare prima tornata di CQ| +View QC Statistics|Vedi QC Statistiche| +Ability to Modify FINISHed records|Capacità di modificare i record finito| +Manager Level|Livello Manager| +USERS CAN VIEW ANY CAMPAIGN|Gli utenti possono visualizzare qualsiasi campagna| +USERS CAN QC ANY CAMPAIGN|Gli utenti possono, QC OGNI CAMPAGNA| +USERS CAN QC ANY INBOUND GROUP|Gli utenti possono QC INBOUND OGNI GRUPPO| +QC Allowed Campaigns: |QC ammessi Campagne:| +QC Allowed Inbound Groups: |QC ammessi Inbound Gruppi:| +Queue Priority -<\/B> This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode|Coda di priorità - Questa impostazione è utilizzata per definire lordine in cui le chiamate in uscita da questa campagna dovrebbe essere risolta in relazione alle chiamate in entrata, se questa è una campagna in modalità blended| +Queue Priority: |Coda di priorità:| +Drop Action: |Goccia dazione:| +Drop Transfer Group: |Trasferimento Drop Group:| +Drop Action -<\/B> This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below|Goccia dazione - Questo menu consente di scegliere che cosa succede a una chiamata quando si è in attesa di più di quello che si trova nel campo Secondi Call Drop. Hangup semplicemente riagganciare la chiamata, inviare il messaggio di chiamare il Drop Extensions che lei ha definito di seguito, segreteria invierà la chiamata alla casella vocale che è stato definito sotto IN_GROUP e invia la chiamata in ingresso al gruppo che è definito qui di seguito| +Drop Exten -<\/B> If Drop Action is set to MESSAGE, this is the dial plan extension that the call will be sent to if it reaches Drop Call Seconds|Drop Extensions - In caso di caduta di azione è fissato al messaggio, questa è la linea che il piano di estensione invito sarà inviato a se raggiunge Call Drop Secondi| +Drop Call Seconds -<\/B> The number of seconds a call will stay in queue before being considered a DROP|Call Drop Secondi - Il numero di secondi di una chiamata rimane in coda, prima di essere considerato un DROP| +Drop Transfer Group -<\/B> If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds|Trasferimento Drop Group - In caso di caduta di azione è fissato a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si raggiunge il Call Drop Secondi| +QC SETTINGS FOR THIS CAMPAIGN|IMPOSTAZIONI CQ per questa campagna| +QC Enabled: |QC Enabled:| +QC Statuses: |QC Status:| +Modify Campaign QC Settings|Modifica impostazioni campagna, QC| +QC Enabled -<\/B> Setting this field to Y allows for the agent Quality Control features to work. Default is N|QC Attivato - Limpostazione di questo campo a Y consente, per lagente di Controllo della Qualità funzioni. Il valore di default è N| +QC Statuses -<\/B> This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review|Status QC - La zona dove si è stati di selezionare quale porta deve essere andato oltre, QC, dal sistema. Mettere un segno di spunta accanto allo status che si desidera, QC, di rivedere| +QC SETTINGS NOT MODIFIED|QC IMPOSTAZIONI NON MODIFICATI| +QC SETTINGS MODIFIED|IMPOSTAZIONI CQ MODIFICATI| +QC WebForm Address -<\/B> This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen|QC Indirizzo Web Form - Questo è lindirizzo web che un agente, QC può andare quando si fa clic sul link contenuto nel Web Form, QC schermo| +QC Script -<\/B> This is the script that can be used by QC agents in the SCRIPT tab in the QC screen|QC Script - Questo è lo script che possono essere utilizzati da agenti QC nel SCRIPT scheda nella schermata QC| +QC WebForm: |QC Web Form:| +QC Script|QC Script| +In-Group Recording Override -<\/B> This field allows for the overriding of the campaign call recording setting. This setting can be overridden by the vicidial_user recording override setting. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording|Nel gruppo di registrazione Sovrascrive - Questo campo consente di rilevante della campagna chiamata di registrazione. Questa impostazione può essere ignorata dal vicidial_user scavalcare limpostazione di registrazione. ANDICAPPATI non ignorare la campagna di registrazione. Non potrà mai disabilitare la registrazione sul client. OnDemand è il default e permette lagente di avviare e interrompere la registrazione, se necessario. ALLCALLS si avvia la registrazione sul client quando viene inviata una chiamata a un agente. ALLFORCE si avvia la registrazione sul client quando viene inviata una chiamata a un agente che lagente non opzione per interrompere la registrazione| +In-Group Recording Filename -<\/B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE|Nel gruppo di registrazione Filename - Questo campo sovrascrive la campagna di registrazione Filenaming sistema a meno che non sia impostato su NESSUNO. Le variabili sono ammessi CAMPAGNA CUSTPHONE FULLDATE TINYDATE EPOCH AGENTE. Il valore predefinito è FULLDATE_AGENT e sarebbe simile a questa 20051020-103108_6666. Un altro esempio è CAMPAIGN_TINYDATE_CUSTPHONE che assomigliare a questa TESTCAMP_51020103108_3125551212. Max 50 caratteri. Il valore di default è NESSUNO| +In-Group Recording Override: |Nel gruppo di registrazione Override:| +In-Group Recording Filename: |Nel gruppo Registrazione Nome file:| +ADDING VICIDIAL QC STATUS CODE|AGGIUNGENDO VICIDIAL QC CODICE STATO| +MODIFY VICIDIAL QC STATUS CODE|MODIFICA VICIDIAL QC CODICE STATO| +VICIDIAL QC STATUS CODES|QC VICIDIAL Codici di stato| +The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length.|Il Controllo Qualità-QC VICIDIAL sistema ha il proprio set di codici di stato separato da coloro che, nelle funzioni di gestione delle chiamate VICIDIAL. QC statuse codici deve essere compresa tra 2 e 8 caratteri e non contengono caratteri speciali, come uno spazio o due punti. Il codice di stato, QC descrizione deve essere compresa tra 2 e 30 caratteri di lunghezza.| + QC Status Codes |Codici di stato, QC| +VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM: |QC VICIDIAL Status CODICI Nellambito di questo sistema:| +ADD NEW QC STATUS CODE|ADD NEW QC CODICE STATO| +QC STATUS CODE NOT DELETED|QC CODICE STATO NON DELETED| +QC STATUS CODE DELETED: |QC STATUS CODICE DELETED:| +QC STATUS CODE NOT MODIFIED |QC CODICE STATO NON MODIFICATI| +QC STATUS CODE MODIFIED: |QC CODICE STATO MODIFICATO:| +the qc status code needs to be at least 1 characters in length|qc il codice di stato deve essere di almeno 1 caratteri di lunghezza| +the qc status code name needs to be at least 1 characters in length|qc stato il nome in codice deve essere di almeno 1 caratteri di lunghezza| +QC STATUS CODE NOT ADDED |QC CODICE STATO NON AGGIUNTO| +there is already a qc status code in the system with this name:|vi è già un qc codice di stato del sistema con questo nome:| +QC STATUS CODE ADDED: |QC STATUS CODICE AGGIUNTO:| +code must be between 1 and 8 characters in length|codice deve essere compreso tra 1 e 8 caratteri di lunghezza| +code name must be between 2 and 30 characters in length|nome in codice deve essere compreso tra 2 e 30 caratteri di lunghezza| +CALL HANGUP REASON STATS|INVITO hangup MOTIVO STATS| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field, IN_GROUP will send the call to the inbound group selected in the After Hours Transfer Group select list. Default is MESSAGE|After Hours Azione - Loperazione da eseguire se si tratta di ore dopo, come definito nel tempo per la chiamata in entrata questo gruppo. Hangup hangup immediatamente la chiamata, si MESSASGE riprodurre il file in After Hours Messaggio Filenam campo, ESTENSIONE invierà la chiamata al After Hours Estensione nel dialplan Voicemail e invia la chiamata alla casella vocale di cui il settore After Hours Voicemail , IN_GROUP invierà la chiamata in ingresso al gruppo selezionato nel gruppo After Hours Trasferimento selezionare lista. Il valore di default è MESSAGGIO| +After Hours Transfer Group -<\/B> If After Hours Action is set to IN_GROUP, the call will be sent to this inbound group if it enters the in-group outside of the call time scheme defined for the in-group|After Hours Trasferimento Group - Se After Hours azione è destinata a IN_GROUP, la chiamata verrà inviata a questo gruppo in entrata se si entra nel gruppo in al di fuori del regime di chiamata tempo definito per il gruppo in| +After Hours Transfer Group: |Dopo ore di trasferimento del gruppo:| +Total calls taken in to this In-Group:|Totale chiamate a prendere in questo gruppo:| +CALL HOLD TIME BREAKDOWN IN SECONDS|INVITO HOLD TIME RIPARTIZIONE IN SECONDI| +Date Range:|Date:| +ADDING NEW PHONE ALIAS|Aggiunta di nuovi TELEFONO ALIAS| +ADD NEW PHONE ALIAS|AGGIUNGI NUOVO TELEFONO ALIAS| +MODIFY PHONE ALIAS|MODIFICA ALIAS TELEFONO| +DELETE PHONE ALIAS|DELETE PHONE ALIAS| +PHONE ALIAS LIST|ALIAS ELENCO TELEFONICO| +Phone Alias List|Telefono Alias Elenco| +Add A New Phone Alias|Aggiungi un nuovo telefono Alias| +ADD A NEW PHONE ALIAS|AGGIUNGI UN NUOVO TELEFONO ALIAS| +Alias ID: |Alias ID:| +Alias Name: |Alias Nome:| +Phone Logins List: |Telefono Login Lista:| +PHONE ALIAS NOT ADDED|ALIAS TELEFONO NON AGGIUNTO| +there is already a Phone Alias in the system with this ID|vi è già un Telefono Alias nel sistema con questo ID| +there is already a Phone Login in the system with this ID|vi è già un Telefono Login nel sistema con questo ID| +PHONE ALIAS ADDED|TELEFONO ALIAS AGGIUNTO| +PHONE ALIAS NOT MODIFIED|ALIAS TELEFONO NON MODIFICATI| +PHONE ALIAS MODIFIED|TELEFONO ALIAS MODIFICATI| +PHONE ALIAS NOT DELETED|ALIAS TELEFONO NON DELETED| +PHONE ALIAS DELETION CONFIRMATION|TELEFONO ALIAS CONFERMA ELIMINAZIONE| +Click here to delete phone alias|Clicca qui per cancellare telefono alias| +PHONE ALIAS DELETION COMPLETED|TELEFONO ALIAS DELETION COMPIUTI| +PHONE ALIAS LISTINGS|TELEFONO ALIAS LISTINGS| +there is already a Phone alias in the system with this login|vi è già un alias Telefono nel sistema con questo login| +there is already a Phone in the system with this login|vi è già un telefono nel sistema con questo login| +DELETE THIS PHONE ALIAS|CANC questo telefono ALIAS| +MODIFY A PHONE ALIAS RECORD|MODIFICARE UN TELEFONO ALIAS RECORD| +Alias ID -<\/B> The ID of the alias used to allow for phone load balanced logins. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|ID Alias - LID del alias utilizzati per consentire di telefono carico equilibrato login. senza spazi o altri caratteri speciali ammessi. Deve essere compreso tra 2 e 20 caratteri di lunghezza| +Alias Name -<\/B> The name used to describe a phones alias, Must be between 2 and 50 characters in length|Alias Nome - Il nome utilizzato per descrivere un alias cellulari, deve essere compresa tra 2 e 50 caratteri di lunghezza| +Phones Logins List -<\/B> The comma separated list of phone logins used when an agent logs in using phone load balanced logins. The Agent application will find the active server with the fewest agents logged into it and place a call from that server to the agent upon login|Cellulari Login Lista - Lelenco separato da virgole di telefono cellulare utilizzato dati di accesso quando un agente accede tramite telefono cellulare carico equilibrato login. Lagente si trova lapplicazione server attivo con il minor numero di agenti e registrati in una chiamata da tale server di agenti su login| +PHONES WITHIN THIS PHONES ALIAS|TELEFONI CELLULARI PRESENTE IN ALIAS| +Add New Shift|Aggiungi nuovo Shift| +New Shift Addition|Nuova aggiunta Maiusc| +Modify Shift|Modificare Maiusc| +Delete Shift|Elimina Maiusc| +Shifts|Turni| +Shift ID -<\/B> This is the short name of a Vicidial Shift Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 20 characters, minimum of 2 characters|Maiusc ID - Questo è il nome breve di un Vicidial Maiusc Definizione. Questo deve essere un identificatore unico. Non utilizzare spazi o segni di punteggiatura in questo campo. max 20 caratteri, minimo di 2 caratteri| +Shift Name -<\/B> This is a more descriptive name of the Shift Definition. This is a short summary of the Shift definition. max 50 characters, minimum of 2 characters|Nome Shift - Questo è un nome più descrittivo della Maiuscole Definizione. Questa è una breve sintesi della Maiuscole definizione. max 50 caratteri, minimo di 2 caratteri| +Shift Start Time -<\/B> This is the time that the campaign shift begins. Must only be numbers, 9:30 AM would be 0930 and 5:00 PM would be 1700|Start Time Shift - Questo è il tempo che la campagna ha inizio turno. Deve essere solo numeri, 9:30 AM sarebbe 5:00 PM 0930 e 1700 sarebbe| +Shift Length -<\/B> This is the time in Hours and Minutes that the campaign shift lasts. 8 hours would be 08:00 and 7 hours and 30 minutes would be 07:30|Maiusc Lunghezza - Questo è il tempo in ore e minuti che la campagna a turni dura. 8 ore sarebbe 08:00 e 7 ore e 30 minuti sarebbero 07:30| +Shift Weekdays -<\/B> In this section you should choose the days of the week that this shift is active|Maiusc Weekdays - In questa sezione si deve scegliere il giorno della settimana che questo spostamento è attivo| +Show Shifts|Mostra cambiamenti| +Add A New Shift|Aggiungi un nuovo Shift| +Shift ID: |Maiusc ID:| +Shift Name: |Maiusc Nome:| +Shift Start Time: |Maiusc Start Time:| +Shift End Time: |Fine Time Shift:| +SHIFT DEFINITION NOT ADDED|SHIFT DEFINIZIONE NON AGGIUNTO| +there is already a shift entry with this ID|esiste già una voce con questo passaggio ID| +Shift ID and name must be at least 2 characters in length|Maiusc ID e il nome deve essere di almeno 2 caratteri| +Shift Start Time must be 4 digits in length and be a valid time|Start Time Shift 4 cifre devono essere di lunghezza e da tempo una valida| +Shift Length must be 5 characters in length and be 24 hours or less|Maiusc Lunghezza deve essere di 5 caratteri di lunghezza e di 24 ore o meno| +SHIFT ADDED: |SHIFT AGGIUNTI:| +MODIFY A SHIFT|Modificare una SHIFT| +USER GROUPS USING THIS SHIFT:|LUSO DI QUESTO MANUALE GRUPPI SHIFT:| +DELETE THIS SHIFT DEFINITION|Elimina questo SHIFT DEFINIZIONE| +MODIFY A SHIFT|Modificare una SHIFT| +SHIFT NOT DELETED|SHIFT non eliminati| +SHIFT DELETION CONFIRMATION: |SHIFT DELETION CONFERMA:| +Click here to delete shift|Clicca qui per cancellare turno| +SHIFT DELETION COMPLETED:|SHIFT DELETION Completato:| +SHIFT MODIFIED|SHIFT MODIFICATI| +SHIFT LISTINGS:|SHIFT LISTINGS:| +Shift Weekdays: |Maiusc Feriali:| +Sunday|Domenica| +Monday|Lunedi| +Tuesday|Martedì| +Wednesday|Mercoledì| +Thursday|Giovedi| +Friday|Venerdì| +Saturday|Sabato| +Group Shifts: |Gruppo Turni:| +Group Shifts -<\/B> This is a selectable list of shifts that can restrict the agents login time on the system|Gruppo Turni - Si tratta di un elenco dei turni selezionabili che possono limitare il tempo di accesso agenti sul sistema| + Timeclock|Orologio| +Timeclock End Of Day -<\/B> This setting defines when all users are to be auto logged out of the timeclock system. Only runs once a day. must be only 4 digits 2 digit hour and 2 digit minutes in 24 hour time. Default is 0000|Orologio End Of Day - Questa impostazione definisce il momento in cui tutti gli utenti devono essere registrati automaticamente dal sistema orologio. Funziona solo una volta al giorno. deve essere solo il 4 cifre 2 cifre 2 cifre ora e 24 minuti in ora di tempo. Il valore di default è 0000| +Timeclock Last Auto Logout -<\/B> This field displays the date of the last auto-logout|Ultimo orologio automatico Logout - Questo campo visualizza la data degli ultimi auto-logout| +Timeclock Last Auto Logout: |Ultimo Logout orologio automatico:| +Timeclock End Of Day: |Orologio End of Day:| +SURVEY SETTINGS FOR THIS CAMPAIGN:|INDAGINE SETTINGS per questa campagna:| +Modify Campaign Survey|Modificare la campagna Sondaggio| +Survey First Audio File -<\/B> This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign.|Indagine primo file audio - Questo è il nome del file audio che viene riprodotto non appena il cliente sceglie il telefono cellulare durante lesecuzione di un sondaggio campagna.| +Survey DTMF Digits -<\/B> This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are |Indagine sulle cifre DTMF - Questo campo è il punto in cui definire le cifre che un cliente può premere come opzione su una campagna di indagine. cifre DTMF sono validi| +Survey Not Interested Digit -<\/B> This field is where you define the customer digit pressed that will show they are Not Interested.|Indagine non interessa Digit - Questo campo è dove si definisce il cliente premuto cifre che dimostrano che non sono interessati.| +Survey Not Interested Status -<\/B> This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list.|Indagine non interessa Stato - Questo campo è se si seleziona lo stato che saranno utilizzati per non essere interessato. DNC Se viene utilizzato e la campagna è impostata per usare DNC poi il numero di telefono sarà automaticamente aggiunto alla lista VICIDIAL interno DNC.| +Survey Opt-in Audio File -<\/B> This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken.|Indagine Opt-in Audio File - Questo è il nome del file audio che viene riprodotto quando il cliente ha optato-in per lindagine, non hanno scelto lopt-out non ha risposto o se la non-azione-reazione è impostato su OptOut. Dopo questo file audio viene riprodotto, il metodo di indagine di azione.| +Survey Not Interested Audio File -<\/B> This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up|Indagine non interessa File audio - Questo è il nome del file audio che viene riprodotto quando il cliente ha scelto lopt-out di indagine, non hanno scelto lopt-in o non ha risposto se il non-azione-reazione è impostato su OptIn. Dopo questo file audio viene riprodotto, linvito sarà appeso| +Survey Method -<\/B> This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory.|Indagine Metodo - Questa opzione definisce che cosa succede a una chiamata dopo che il cliente ha scelto lopt-in. AGENT_XFER invierà linvito al prossimo disponibili agente. Segreteria invierà la chiamata alla casella vocale che è specificato nel campo Voicemail. ESTENSIONE invierà al cliente di definire lestensione della Indagine Xfer Estensione campo. Hangup si bloccherà il cliente. CAMPREC_60_WAV invierà al cliente di avere una registrazione fatta con la loro risposta, questa registrazione sarà collocato in una cartella denominata come la campagna allinterno della campagna di registrazione Indagine Directory.| +Survey No-Response Action -<\/B> This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit.|Indagine n. risposta Azione - Questo è dove si definisce che cosa accadrà se non vi è alcuna risposta alla domanda del sondaggio. OptIn solo inviare la chiamata al metodo di indagine, se il cliente preme un cifre DTMF. OptOut invierà al cliente al metodo di indagine, anche se non si preme uno cifre DTMF.| +Survey Response Digit Map -<\/B> This is the section where you can define a description to go with each dtmf digit option that the customer may select.|Indagine risposta Digit Mappa - Questa è la sezione in cui è possibile definire una descrizione per andare a ciascuna opzione cifre DTMF che il cliente può scegliere.| +Survey Xfer Extension -<\/B> If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension|Indagine Xfer Estensione - Se il metodo di indagine è stato selezionato ESTENSIONE quindi chiamare il cliente sarebbe stata destinata a questo dialplan estensione| +Survey Campaign Recording Directory -<\/B> If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory.|Indagine campagna di registrazione Repertorio - Se il metodo di indagine è stato selezionato CAMPREC_60_WAV allora la risposta dei clienti vengono registrati e messi in una directory di nome, dopo la campagna allinterno di questa directory.| +SURVEY SETTINGS NOT MODIFIED|INDAGINE IMPOSTAZIONI NON MODIFICATI| +SURVEY SETTINGS MODIFIED|INDAGINE SETTINGS MODIFICATI| +Survey First Audio File|Indagine primo file audio| +Survey DTMF Digits|Indagine sulle cifre DTMF| +Survey Not Interested Digit|Indagine non interessa Digit| +Survey Not Interested Status|Indagine Stato non è interessato| +Survey Opt-in Audio File|Indagine Opt-in File Audio| +Survey Not Interested Audio File|Indagine non interessa File Audio| +Survey Method|Indagine Metodo| +Survey No-Response Action|Indagine n.-Azione di risposta| +Survey Response Digit Map|Indagine risposta Digit Mappa| +Survey Xfer Extension|Indagine Xfer Estensione| +Survey Campaign Recording Directory|Indagine Campagna Registrazione Directory| +Add Timeclock Log Record -<\/B> This option allows the user to add records to the timeclock log|Aggiungi orologio Entra record - Questa opzione permette allutente di aggiungere record alla orologio Accedi| +Modify Timeclock Log Record -<\/B> This option allows the user to modify records in the timeclock log|Modificare orologio Entra record - Questa opzione permette allutente di modificare i record nella orologio Accedi| +Delete Timeclock Log Record -<\/B> This option allows the user to delete records in the timeclock log|Elimina orologio Entra record - Questa opzione consente allutente di eliminare i record nel registro orologio| +Add Timeclock Log Record|Aggiungi orologio Entra record| +Modify Timeclock Log Record|Modificare orologio Entra record| +Delete Timeclock Log Record|Elimina orologio Entra record| +USER GROUP TIMECLOCK STATUS REPORT|User Group orologio Status RELAZIONE| +Click here to see the Timeclock Status for this user group|Clicca qui per visualizzare lorologio di stato per questo gruppo di utenti| +ADD NUMBERS TO THE DNC LIST|Aggiungere numeri alla DNC ELENCO| +Phone Numbers: |Numeri di telefono:| +one phone number per line only|uno per ogni riga il numero di telefono unico| +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 numbers to this list so that they will not be called by campaigns that use the internal DNC list|DNC VICIDIAL List - Questo Dont Call elenco contiene ogni piombo che è stato fissato ad uno stato di DNC nel sistema. Attraverso il ELENCHI - ADD numero DNC pagina si ha la possibilità di aggiungere manualmente i numeri di questo elenco in modo che essi non saranno chiamati da campagne che utilizzano la lista interno DNC| + Time Sheet |Time Sheet| +Timeclock Record Edit|Orologio Modifica record| +Default date format with year month day|Default data con formato giorno mese anno| +USA date format with month day year|Stati Uniti dAmerica con il formato della data giorno mese anno| +European date format with day month year|Europeo con il formato della data giorno mese anno| +Text date format with abbreviated month day|Testo abbreviato con il formato della data giorno mese| +followed by 24 hour time|seguita da 24 ore di tempo| +followed by 12 hour time|seguita da 12 ore di tempo| +Agent Screen Header Date Format -<\/B> This menu allows you to choose the format of the date that shows up at the top of the VICIDIAL agent screen. The options for this setting are: default is|Agente Screen Header Data Format - Questo menu consente di scegliere il formato della data che compare nella parte superiore della schermata VICIDIAL agente. Le opzioni di questa impostazione sono: il default è| +Agent Screen Customer Date Format -<\/B> This menu allows you to choose the format of the customer time zone date that shows up at the top of the Customer Information section of the VICIDIAL agent screen. The options for this setting are: default is|Cliente di agente Screen Formato data - Questo menu consente di scegliere il formato del cliente fuso orario data che compare nella parte superiore della sezione Informazioni per i clienti del VICIDIAL agente schermo. Le opzioni di questa impostazione sono: il default è| +Agent Screen Customer Phone Format -<\/B> This menu allows you to choose the format of the customer phone number that shows up in the status section of the VICIDIAL agent screen. The options for this setting are: default is|Agente Telefono Formato schermo clienti - Questo menu consente di scegliere il formato del cliente, numero di telefono che compare nella sezione status del VICIDIAL agente schermo. Le opzioni di questa impostazione sono: il default è| +dash separated phone number|dash separati numero di telefono| +dash separated number with area code in parenthesis|dash separati numero con prefisso parentesi| +No formatting|N. formattazione| +with space after city code|con lo spazio dopo il codice di città| +space separated phone number|spazio separato numero telefonico| +Agent Screen Header Date Format|Agente Screen Formato Data Header| +Agent Screen Customer Date Format|Cliente di agente Screen Formato Data| +Agent Screen Customer Phone Format|Agente Cliente Telefono Formato schermo| +ERROR- There is a problem with the data that you entered, please go back|ERRORI Si è verificato un problema con i dati che hai inserito, si prega di tornare indietro| +A timeclock session cannot overlap another timeclock session|Un orologio di sessione non può sovrapporsi di un altro orologio sessione| +Disable Alter Customer Phone -<\/B> If set to Y, does not change the customer phone number when an agent dispositions the call. Default is Y|Disattiva Alter clienti Telefono - Se è impostata a Y, non cambia il numero di telefono del cliente, quando un agente disposizioni la chiamata. Il valore di default è Y| +Agent API Access -<\/B> This option allows the account to be used with the vicidial agent API commands|Agente Accesso API - Questa opzione permette laccount da utilizzare con lAPI vicidial agente comandi| +Agent Alter Customer Phone Override -<\/B> This option will override whatever the option is in the campaign for altering of customer phone number. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer phone number, no matter what the campaign setting is. Default is NOT_ACTIVE|Agente Alter clienti Telefono Sovrascrive - Questa opzione sovrascrive lopzione è ciò che nella campagna per modificare il numero di telefono del cliente. NOT_ACTIVE userà qualsiasi impostazione è presente per la campagna. ALLOW_ALTER sempre per consentire lagente di modificare il numero di telefono del cliente, non importa ciò che la campagna è limpostazione. Il valore di default è NOT_ACTIVE| +Agent API Active -<\/B> If set to 1, this will allow the Agent API interface to function. Default is 0|Agente attivo API - Se è impostato a 1, questo permetterà lagente interfaccia API di funzionare. Il valore di default è 0| +Agent Alter Customer Phone Override: |Agente Alter clienti Sovrascrive Telefono:| +Agent API Access: |Agente API Accesso:| +Disable Alter Customer Phone: |Disattiva Alter Clienti Telefono:| +Agent API Active: |API di agente attivo:| +Agent Display Queue Count -<\/B> If set to Y, when a customer is waiting for an agent, the Queue Calls display at the top of the agent screen will turn red and show the number of waiting calls. Default is Y|Agente Mostra Coda Conte - Se è impostata a Y, ogni volta che un cliente è in attesa di un agente, la coda invita visualizzazione nella parte superiore dello schermo agente diventa rosso e mostra il numero di chiamate in attesa. Il valore di default è Y| +Agent Display Queue Count: |Agente Mostra Coda Count:| +agents in dead calls|agenti morti chiamate| +QC Last Pull Time: |QC Ultimo Tirare Tempo:| +and less than 43200 seconds or 12 hours|e meno di 43200 secondi o 12 ore| +LEADS AT LIMIT|PORTA AL LIMITE| +Lead counts taken from active lists in the campaign only|Piombo conta prese da elenchi attiva nella campagna solo| +QC Get Record Launch-<\/B> This allows one of the following actions to be triggered upon a QC agent receiving a new record|QC ottenere il record di lancio- Ciò consente una delle seguenti azioni per essere attivato su un QC agente riceve un nuovo record| +QC Show Recording -<\/B> This allows for a recording that may be linked with the QC record to be display in the QC agent screen|QC Visualizza Registrazione - Ciò consente una registrazione che può essere collegato con la QC record di essere esposto nel QC agente schermo| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions|QC Maiusc - Questo è il passaggio di tempo utilizzato per estrarre QC record per una campagna. I giorni della settimana sono ignorati per queste funzioni| +QC Get Record Launch|QC ottenere il record di lancio| +QC Show Recording|Visualizza la registrazione, QC| +QC Shift|QC Maiusc| +Inbound Group QC Settings|Inbound Gruppo QC Impostazioni| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions|QC Maiusc - Questo è il passaggio di tempo utilizzato per estrarre QC record per un inbound_group. I giorni della settimana sono ignorati per queste funzioni| +The Sale Category and Dead Lead Category are both used by the List Suggestion system when analyzing list statistics.|La vendita e Dead Categoria Categoria di piombo sono entrambi utilizzati dal sistema quando Elenco Suggerimento analisi statistiche elenco.| +Sale Category: |Vendita Categoria:| +Dead Lead Category: |Morto leader Categoria:| +Manual Dial Filter -<\/B> This allows you to filter the calls that agents make in manual dial mode for this campaign by any combination of the following: DNC - to kick out, CAMPAIGNLISTS - the number must be within the lists for the campaign, NONE - no filter on manual dial or fast dial lists|Manuale Dial Filtro - Questo ti permette di filtrare le chiamate che gli agenti fanno chiamare in modalità manuale per questa campagna da qualsiasi combinazione delle seguenti operazioni: DNC - a kick out, CAMPAIGNLISTS - il numero deve essere allinterno di elenchi per la campagna, NESSUNO - nessun filtro sul manuale o remoto veloce dial elenchi| +Manual Dial Filter: |Manuale Dial Filtro:| +Agent Screen Clipboard Copy -<\/B> THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer|Appunti di agente Schermata Copia - Questa funzione è al momento attivo solo per Internet Explorer. Questa funzione consente di selezionare un campo che verrà copiato negli appunti il computer dellagente computer su una chiamata in corso linvio di un agente. Comune utilizza per questo sono per facilitare lincollatura di numeri di conto corrente o numeri di telefono in eredità applicazioni client sul computer agente| +Agent Screen Clipboard Copy|Appunti di agente Schermata Copia| +EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record.|PROROGATO alternano i numeri sono numeri caricato nel sistema al di fuori della norma portare informazioni schermo. Uso PROROGATO si possono avere centinaia di numeri di telefono per un singolo cliente record.| +Agent Screen Extended Alt Dial -<\/B> This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information|Agente Screen estensione Alt Dial - Questa funzione consente di agenti per laccesso esteso alternano i numeri di telefono per porta oltre la normale Alt Telefono e Address3 settori che possono essere utilizzati in VICIDIAL per i numeri di telefono al di là del numero di telefono principale. Lestensione numeri di telefono può essere selezionato automaticamente utilizzando la funzione Auto-Alt-Dial VICIDIAL in funzione delle impostazioni della campagna, ma che consentono questa funzione di agente dello schermo consentirà anche per lagente di chiamare questi numeri dal loro agente schermo così come modificare le loro informazioni| +Agent Screen Extended Alt Dial:|Agente Screen estensione Alt Dial:| +Use Campaign DNC List -<\/B> This defines whether this campaign is to filter leads against a DNC list that is specific to that campaign only. If it is set to Y, the hopper will look for each phone number in the campaign-specific DNC list before placing it in the hopper. If it is in the campaign-specific DNC list then it will change that lead status to DNCC so it cannot be dialed. Default is N.|Usa campagna DNC List - Questo definisce se questa è una campagna per filtrare DNC conduce contro una lista che è specifico per tale campagna solo. Se è impostato su Y, la tramoggia sarà per ciascuno il numero di telefono nel campo specifico DNC prima immissione nella tramoggia. Se si è in campagna specifici DNC elenco allora cambierà status che portano a DNCC e non può quindi essere selezionato. Il valore predefinito è N.| +Use Campaign DNC List|Usa campagna DNC Elenco| +and possibly the campaign-specific DNC list|e, eventualmente, la campagna specifici DNC elenco| +There is also the option to add leads to the campaign-specific DNC lists for those campaigns that have them|Vi è inoltre la possibilità di aggiungere porta alla campagna specifici DNC liste per le campagne che hanno loro| +NOTE: Copying a campaign will copy all settings from the master campaign you select, but it will not copy a campaign-specific DNC list if there was one on the selected master campaign|NOTA: La copia di una campagna di copiare tutte le impostazioni dal comandante campagna selezionata, ma non si copia una campagna specifica DNC lista se è stato selezionato uno sul master campagna| +Add New |Aggiungi nuovo| +Copy |Copia| +New DID Addition|Nuova aggiunta DID| +New Copied DID Addition|Nuova aggiunta Copiato DID| +Modify |Modificare| +Delete |Eliminare| +Play Place in Line -<\/B> This defines whether the caller will hear their place in line when they enter the queue as well as when they hear the announcemend. Default is N|Gioca Luogo in Linea - Questo definisce se il chiamante ascolterà il loro posto in linea momento in cui entra nella coda così come quando sentono il announcemend. Il valore di default è N| +Play Estimated Hold Time -<\/B> This defines whether the caller will hear the estimated hold time before they are transferred to an agent. Default is N|Gioca stimato Hold Time - Questo definisce se il chiamante ascolterà il tempo stimato tenere prima di essere trasferiti a un agente. Il valore di default è N| +Hold Time Option -<\/B> This allows you to specify the routing of the call if the estimated hold time is over the amount of seconds specified below. Default is NONE|Tenere Opzione Tempo - Questo ti permette di specificare linstradamento della chiamata, se la stima del tempo di attesa è di oltre limporto di secondi specificato in appresso. Il valore di default è NESSUNO| +Hold Time Option Seconds -<\/B> If Hold Time Option is set to anything but NONE, this is the number of seconds of estimated hold time that will trigger the hold time option. Default is 360 seconds|Tenere Opzione Tempo Secondi - Se Hold Time opzione è impostata a nulla, ma NESSUNO, questo è il numero di secondi di attesa tempo stimato che il tempo di attivare lopzione. Il valore predefinito è 360 secondi| +Hold Time Option Extension -<\/B> If Hold Time Option is set to EXTENSION, this is the dialplan extension that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Tenere Opzione Tempo Estensione - Se lopzione Hold Time è impostato per estensione, questo è il dialplan proroga che la richiesta sarà inviata a se la stima del tempo di attesa supera il tempo di Opzione Secondi| +Hold Time Option Voicemail -<\/B> If Hold Time Option is set to VOICEMAIL, this is the voicemail box that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Tenere Tempo Opzione Segreteria - Se Hold Time opzione è impostata a segreteria telefonica, questa è la casella di segreteria telefonica che la richiesta sarà inviata a se la stima del tempo di attesa supera il tempo di Opzione Secondi| +Hold Time Option Transfer In-Group -<\/B> If Hold Time Option is set to IN_GROUP, this is the inbound group that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|Tenere Opzione Tempo trasferimento in gruppo - Se Hold Time opzione è impostata a IN_GROUP, questo è il gruppo in entrata che linvito sarà inviato a se la stima del tempo di attesa supera il tempo di Opzione Secondi| +Hold Time Option Callback Filename -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the filename prompt that is played before the call is logged as a new lead to the list ID specified below if the estimated hold time exceeds the Hold Time Option Seconds|Tenere Opzione Tempo richiamata Filename - Se lopzione Hold Time è impostato su CALLERID_CALLBACK, questo è il nome del file che viene riprodotto prompt prima che la chiamata viene registrata come un nuovo condurre alla lista ID specificato di seguito, se la stima del tempo di attesa supera i Tenere Opzione Tempo Secondi| +Hold Time Option Callback List ID -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the List ID the call is added to as a new lead if the estimated hold time exceeds the Hold Time Option Seconds|Tenere Opzione Tempo richiamata Elenco ID - Se lopzione Hold Time è impostato su CALLERID_CALLBACK, questo è lelenco ID la chiamata viene aggiunto come un nuovo piombo se la stima del tempo di attesa supera il tempo di Opzione Secondi| +Hold Recall Transfer In-Group -<\/B> If a customer calls back to this in-group more than once and this is not set to NONE, then the call will automatically be sent on to the In-Group selected in this field. Default is NONE|Tenere Ricorda Trasferimento In-Group - Se un cliente chiede di tornare in questo gruppo di più di una volta e questo non è impostato su Nessuno, quindi la chiamata verrà automaticamente inviata al gruppo selezionato In-in questo campo . Il valore di default è NESSUNO| +No Delay Call Route -<\/B> Setting this to Y will remove all wait times and audio prompts and attempt to send the call right to an agent. Does not override welcome message or on hold prompt settings. Default is N|Scadenza Bando n. rotta - Impostando questo parametro a Y rimuoverà tutti i tempi di attesa e audio richiede e si tenta di inviare il diritto di chiamata di un agente. Non ignorare il messaggio di benvenuto o tenere prompt impostazioni. Il valore di default è N| +Play Welcome Message -<\/B> These settings select when to play the defined welcome message, ALWAYS will play it every time, NEVER will never play it, IF_WAIT_ONLY will only play the welcome message if the call does not immediately go to an agent, and YES_UNLESS_NODELAY will always play the welcome message unless the NO_DELAY setting is enabled. Default is ALWAYS|Lettura del messaggio di benvenuto - Queste impostazioni selezionate, quando per la riproduzione del messaggio di benvenuto definito, SEMPRE svolgerà ogni volta, non potrà mai mai giocare, IF_WAIT_ONLY solo riprodurre il messaggio di benvenuto, se la chiamata non vada immediatamente ad un agente , e YES_UNLESS_NODELAY avranno sempre il messaggio di benvenuto NO_DELAY a meno che limpostazione è attivata. Il valore di default è SEMPRE| +Play Place in Line: |Gioca Luogo in Linea:| +Play Estimated Hold Time: |Gioca Tenere Tempo stimato:| +Hold Time Option: |Tenere Tempo Opzione:| +Hold Time Option Seconds: |Tenere Opzione Secondi Tempo:| +Hold Time Option Extension: |Tenere Opzione Tempo Estensione:| +Hold Time Option Voicemail: |Tenere Tempo Opzione Segreteria:| +Hold Time Option Transfer In-Group: |Tenere Opzione Tempo trasferimento in gruppo:| +Hold Time Option Callback Filename: |Tenere il tempo di richiamata Opzione Nome file:| +Hold Time Option Callback List ID: |Tenere Opzione Tempo richiamata Elenco ID:| +Hold Recall Transfer In-Group: |Tenere Ricorda Trasferimento in gruppo:| +No Delay Call Route: |Scadenza Bando n. Percorso:| +Play Welcome Message: |Lettura del messaggio di benvenuto:| +DID Extension -<\/B> This is the number, extension or DID that will trigger this entry and that you will route within the system using this function|Estensione DID - Questo è il numero, lestensione o la DID che attiveranno questa voce e che si percorso allinterno del sistema di utilizzare questa funzione| +DID Description -<\/B> This is the description of the DID routing entry|Descrizione DID - Questa è la descrizione di DID routing| +DID Active -<\/B> This the field where you set the DID entry to active or not. Default is Y|HA attiva - Questo è il campo in cui si è impostato il DID ingresso attivo o meno. Il valore di default è Y| +DID Route -<\/B> This the type of route that you set the DID to use. EXTEN will send calls to the extension entered below, VOICEMAIL will send calls directly to the voicemail box entered below, AGENT will send calls to a VICIDIAL agent if they are logged in, PHONE will send the call to a phones entry selected below, IN_GROUP will send calls directly to the specified inbound group. Default is EXTEN|HA rotta - Questo tipo di percorso che si è impostato il DID da usare. Estensione invierà le chiamate verso lestensione al di sotto, segreteria invierà chiede direttamente alla casella vocale al di sotto, AGENTE invierà le chiamate a un agente VICIDIAL se sono connesso, TELEFONO invierà la chiamata a un telefono voce selezionata di seguito, si IN_GROUP inviare chiamate direttamente al gruppo specificato in entrata. Il valore di default è Extensions| +Extension -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan extension that calls will be sent to. Default is 9998811112, no-service|Estensione - Se è selezionata come estensione DID rotta, allora questa è lestensione che dialplan inviti saranno inviati. Il valore di default è 9998811112, nessun servizio| +Extension Context -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan context that calls will be sent to. Default is default|Estensione Contesto - Se è selezionata come estensione DID rotta, allora questo è il contesto che dialplan inviti saranno inviati. Il valore di default è di default| +Voicemail Box -<\/B> If VOICEMAIL is selected as the DID Route, then this is the voicemail box that calls will be sent to. Default is empty|Voicemail Box - Se è selezionata come Voicemail DID rotta, allora questa è la casella vocale che inviti saranno inviati. Il valore di default è vuota| +Phone Extension -<\/B> If PHONE is selected as the DID Route, then this is the phone extension that calls will be sent to.|Telefono Estensione - Se è selezionata come TELEFONO DID percorso, allora questo è il telefono cellulare in estensione che inviti saranno inviati.| +Phone Server IP -<\/B> If PHONE is selected as the DID Route, then this is the server IP for the phone extension that calls will be sent to|Telefono Server IP - Se è selezionata come TELEFONO DID percorso, allora questo è lIP del server per il telefono che chiede lestensione sarà trasmessa al| +User Agent -<\/B> If AGENT is selected as the DID Route, then this is the VICIDIAL Agent that calls will be sent to|User Agent - Se è selezionata come AGENTE DID rotta, allora questo è lagente che chiede VICIDIAL saranno inviati alla| +User Unavailable Action -<\/B> If AGENT is selected as the DID Route, and the user is not logged in or available, then this is the route that the calls will take|Lutente non disponibile Azione - Se è selezionata come AGENTE DID rotta, e lutente non è connesso o disponibili, allora questo è il percorso che le chiamate si| +User Route Settings In-Group - If AGENT is selected as the DID Route, then this is the In-Group that will be used for the queue settings as the caller is waiting to be sent to the agent. Default is AGENTDIRECT|Utente percorso Impostazioni In-Group - Se è selezionata come AGENTE DID rotta, allora questo è il gruppo In-che saranno utilizzati per la coda di impostazioni come il chiamante è in attesa di essere inviati al agente. Il valore di default è AGENTDIRECT| +In-Group ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the In-Group that calls will be sent to|In-ID gruppo - Se è selezionata come IN_GROUP DID rotta, allora questo è il gruppo In-chiede che saranno inviati alla| +In-Group Call Handle Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attampt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attampt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attampt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue. Default is CID|Nel gruppo di chiamata Metodo Maniglia - Se è selezionata come IN_GROUP DID rotta, allora questo è il metodo di gestione delle chiamate per queste chiamate. CID di aggiungere un nuovo record con piombo ogni chiamata utilizzando il CallerID come il numero di telefono, CIDLOOKUP tenterà di ricerca il numero di telefono dal CallerID in tutto il sistema, CIDLOOKUPRL sarà attampt di ricerca il numero di telefono dal CallerID specificato in una sola lista , CIDLOOKUPRC si attampt di ricerca il numero di telefono dal CallerID in tutte le liste che appartengono alla campagna specificato, più vicina è specificato per VICIDIAL Closer chiamate, ANI si aggiunge un nuovo record con piombo ogni chiamata utilizzando il ANI, come il numero di telefono, ANILOOKUP tenterà di ricerca il numero di telefono dal ANI in tutto il sistema, ANILOOKUPRL si attampt di ricerca il numero di telefono dal ANI specificato in una sola lista, XDIGITID verrà chiesto il chiamante per una X cifre del codice prima che la chiamata verrà messa in la coda. Il valore di default è CID| +In-Group Agent Search Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the agent search method to be used by the inbound group, LO is Load-Balanced-Overflow and will try to send the call to an agent on the local server before trying to send it to an agent on another server, LB is Load-Balanced and will try to send the call to the next agent no matter what server they are on, SO is Server-Only and will only try to send the calls to agents on the server that the call came in on. Default is LB|Nel gruppo di agente Metodo di ricerca - Se è selezionata come IN_GROUP DID rotta, allora questo è il metodo di ricerca agente debba essere utilizzato da un gruppo in entrata, LO è Load-Balanced-Overflow e cercherà di inviare la chiamata di un agente sul server locale prima di tentare di inviarlo a un agente su un altro server, LB è bilanciamento del carico e si tenta di inviare la chiamata al prossimo agente non importa ciò che essi sono il server, server-SO è solo e solo tenta di inviare gli inviti agli agenti presenti sul server che linvito è venuto in su. Il valore di default è LB| +In-Group List ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the List ID that leads may be searched through and that leads will be inserted into if necessary|Nel gruppo Lista ID - Se è selezionata come IN_GROUP DID rotta, allora questo è lelenco ID che porta può essere cercato attraverso la porta e che sarà inserito in se necessario| +In-Group Campaign ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the Campaign ID that leads may be searched for in if the call handle method is CIDLOOKUPRC|Nel gruppo-ID campagna - Se è selezionata come IN_GROUP DID rotta, allora questo è lID campagna che porta può essere cercato per se il metodo di gestire la chiamata è CIDLOOKUPRC| +In-Group Phone Code -<\/B> If IN_GROUP is selected as the DID Route, then this is the Phone Code used if a new lead is created|Nel gruppo Codice Telefono - Se è selezionata come IN_GROUP DID rotta, allora questo è il codice utilizzato Telefono se un nuovo piombo è creato| +Phones Email -<\/B> The email address associated with this phone entry. This is used for voicemail settings|Cellulari e-mail - Lindirizzo email associato a questo telefono cellulare entrata. Questo è utilizzato per le impostazioni della segreteria| +ADD A NEW DID|AGGIUNGI UN NUOVO DID| +DID Extension: |HA Estensione:| +DID Description: |HA Descrizione:| +COPY DID|COPIA DID| +Source DID: |HA Fonte:| +DID NOT ADDED|NON HA AGGIUNTO| +there is already a DID in the system with this ID|vi è già un fatto per il sistema con questo ID| +there is already a DID in the system with this extension|vi è già un fatto per il sistema con questa estensione| +DID NOT MODIFIED|NON MODIFICATI| +DID MODIFIED|HA MODIFICATO| +MODIFY A DID RECORD: |A MODIFICARE LO RECORD:| +DID Route: |HA Percorso:| +Extension: |Estensione:| +Extension Context: |Estensione Contesto:| +Voicemail Box: |Voicemail Box:| +Phone Extension: |Estensione Telefono:| +User Agent: |User Agent:| +User Unavailable Action: |Lutente non disponibile Azione:| +User Route Settings In-Group: |Utente percorso Impostazioni In-Group:| +In-Group ID: |Nel gruppo-ID:| +In-Group Call Handle Method: |Nel gruppo di chiamata Maneggiare Metodo:| +In-Group Agent Search Method: |Nel gruppo di agente Metodo di ricerca:| +In-Group List ID: |Nel gruppo Elenco ID:| +In-Group Campaign ID: |Nel gruppo-ID campagna:| +In-Group Phone Code: |Nel gruppo Codice Telefono:| +DELETE THIS DID|CANCELLA QUESTO HA| +Email: |Email:| +DID NOT DELETED|NON HA ELIMINATO| +DID DELETION CONFIRMATION|LO CONFERMA ELIMINAZIONE| +Click here to delete |Clicca qui per cancellare| +DID DELETION COMPLETED|DELETION HA COMPIUTO| +Delete DIDs: |Elimina DIDs:| +Modify DIDs: |Modificare DIDs:| +To disable the On Hold Prompt, set the interval to 0|Per disattivare il prompt Hold On, impostare lintervallo a 0| +3-Way Call Outbound CallerID -<\/B> This defines what is sent out as the outbound callerID number from 3-way calls placed by the agent, CAMPAIGN uses the custom campaign callerID, CUSTOMER uses the number of the customer that is active on the agents screen and AGENT_PHONE uses the callerID for the phone that the agent is logged into|3-Way chiamate in uscita CallerID - Questo è ciò che definisce come inviato il numero in uscita callerID da 3-way chiamate effettuate dallagente, CAMPAGNA utilizza la campagna personalizzata callerID, il Cliente utilizza il numero di clienti che è attiva su schermo e gli agenti AGENT_PHONE usa il callerID per il telefono cellulare che lagente è registrato in| +3-Way Call Outbound CallerID:|3-Way chiamate in uscita CallerID:| +INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls|INBOUND_MAN consente di collocare lagente manuale comporre le chiamate provenienti da una campagna elenco pur essendo in grado di prendere le chiamate in entrata tra manuale quadrante chiamate| +FORCE will force the agents to choose a PAUSE code if they click on the PAUSE button|VIGORE costringerà gli agenti di scegliere un codice PAUSE se fai clic sul pulsante PAUSE| +3-Way Call Dial Prefix -<\/B> This defines what is used as the dial prefix for 3-way calls, default is empty so the campaign dial prefix is used, passthru so you can hear ringing is 88|3-Way Call Dial Prefix - Questo definisce quello che è usato come prefisso per chiamare il 3-way chiamate, di default è vuoto in modo che il prefisso campagna quadrante è usato, passthru in modo che tu possa sentire suonare è 88| +3-Way Call Dial Prefix|3-Way Call Dial Prefix| +Force Timeclock Login -<\/B> This option allows you to not let an agent log in to the VICIDIAL agent interface if they have not logged into the timeclock. Default is N. There is an option to exempt admin users, levels 8 and 9|Forza orologio Login - Questa opzione permette di non lasciare che un agente ad accedere al VICIDIAL agente interfaccia se non hanno effettuato laccesso al orologio. Il valore predefinito è N. Vi è la possibilità di esentare admin utenti, i livelli 8 e 9| +Force Timeclock Login|Forza orologio Login| +Stats Percent of Calls Answered Within X seconds - This field allows you to set the number of hold seconds that the realtime stats display will use to calculate the percentage of answered calls that were answered within X number of seconds on hold|Statistiche per cento delle chiamate risposta entro X secondi - Questo campo consente di impostare il numero di tenere secondo le statistiche in tempo reale che il display utilizza per calcolare la percentuale di risposta che sono state chiamate risposta entro X numero di secondi in attesa| +Stats Percent of Calls Answered Within X seconds|Statistiche per cento delle chiamate risposta entro X secondi| +Web Form Target-<\/B> This is where you can set the custom web page frame that the web form will be opened in when the user clicks on the WEB FORM button. Default is _blank.|Web Form-Target Qui è possibile impostare la pagina web personalizzata cornice del modulo web che sarà aperto a quando lutente fa clic sul pulsante Web Form. Il valore di default è _blank.| +Web Form Target|Web Form Target| +To customize the query string after the web form, simply begin the web form with VAR and then the URL that you want to use, replacing the variables with the variable names that you want to use --A--phone_number--B-- just like in the SCRIPTS tab section|Per personalizzare la stringa di ricerca dopo il modulo web, è sufficiente avviare il modulo web con VAR e quindi lURL che si desidera utilizzare, che sostituisce le variabili con i nomi di variabile che si desidera utilizzare - A - phone_number - B -- proprio come nella sezione SCRIPTS scheda| +Recording Web Link -<\/B> This setting allows you to override the default of the display of the recording link in the admin web pages. Default is SERVER_IP|Registrazione Web Link - Questa impostazione consente di ignorare limpostazione predefinita della visualizzazione della registrazione in collegamento lamministratore pagine web. Il valore di default è SERVER_IP| +Alternate Recording Server IP -<\/B> This setting is where you can put a server IP or other machine name that can be used in place of the server_ip in the links to recordings within the admin web pages. Default is empty|Supplente di registrazione Server IP - Questa impostazione è dove si può mettere un server IP o nome di altre macchine che possono essere utilizzati al posto del server_ip tra i link alle registrazioni ai admin pagine web. Il valore di default è vuota| +Recording Web Link|Registrazione Web Link| +Enable Vtiger Integration -<\/B> This setting allows you to enable Vtiger integration with VICIDIAL. Currently links to Vtiger admin and search as well as user replication are the only integration features available. Default is 0|Attiva Vtiger Integrazione - Questa impostazione consente di attivare Vtiger integrazione con VICIDIAL. Attualmente i collegamenti a Vtiger admin e di ricerca così come utente di replica sono gli unici disponibili funzioni di integrazione. Il valore di default è 0| +Vtiger DB Server IP -<\/B> This is the IP address of the database for your Vtiger installation|Vtiger DB Server IP - Questo è lindirizzo IP della banca dati per la vostra installazione Vtiger| +Vtiger Database Name -<\/B> This is the database name for your Vtiger database|Vtiger Nome Database - Questo è il nome del database per il vostro database Vtiger| +Vtiger Database Login -<\/B> This is the user name used to log in to your Vtiger database|Vtiger Database Login - Questo è il nome utente utilizzato per accedere al vostro database Vtiger| +Vtiger Database Password -<\/B> This is the password used to log in to your Vtiger database|Vtiger Database Password - Questa è la password utilizzata per accedere al tuo database Vtiger| +Vtiger URL -<\/B> This is the URL or web site address used to get to your Vtiger installation|Vtiger URL - Questo è lURL o lindirizzo del sito web utilizzato per accedere al tuo Vtiger installazione| +Enable Vtiger Integration:|Attiva Vtiger Integrazione:| +Vtiger DB Server IP|Vtiger DB Server IP| +Vtiger Database Name|Nome Database Vtiger| +Vtiger Database Login|Vtiger Database Login| +Vtiger Database Password|Vtiger Database Password| +Vtiger URL|Vtiger URL| +VTIGER HOME|VTIGER HOME| +Active -<\/B> This field defines whether the user is active in the system and can use VICIDIAL resources. Default is Y|Active - Questo campo definisce se lutente è attivo nel sistema e può essere utilizzato VICIDIAL risorse. Il valore di default è Y| +show only active users|mostra solo utenti attivi| +show all users|mostra tutti gli utenti| +Vtiger Search Category -<\/B> If Vtiger integration is enabled in the system settings then this setting will define where the vtiger_search.php page will search for the phone number that was entered. There are 4 options that can be used in this field: LEAD- This option will search through the Vtiger leads only, ACCOUNT- This option will search through the Vtiger accounts and all contacts and sub-contacts for the phone number, VENDOR- This option will only search through the Vtiger vendors, ACCTID- This option works only for accounts and it will take the vicidial vendor_lead_code field and try to search for the Vtiger account ID. If unsuccessful it will try any other methods listed that you have selected. Multiple options can be used for each search, but on large databases this is not recommended. Default is LEAD|Vtiger Ricerca Categoria - Se Vtiger integrazione è attivata in poi le impostazioni del sistema questa impostazione definirà in cui la pagina di ricerca vtiger_search.php per il numero di telefono che è stato inserito. Ci sono 4 opzioni che possono essere utilizzati in questo campo: PIOMBO-Questa opzione ricerca attraverso la porta solo Vtiger, CONTO-Questa opzione ricerca attraverso il Vtiger conti e tutti i contatti e sub-contatti per il numero di telefono, VENDITORE-Questa opzione solo attraverso la ricerca Vtiger venditori, ACCTID-Questa opzione funziona solo per i conti e si prendono le vicidial vendor_lead_code campo e provare a cercare il Vtiger ID account. Se si tenta senza successo di qualsiasi altro metodi elencati che hai selezionato. Opzioni multiple possono essere utilizzati per ogni ricerca, ma su grandi banche dati questo non è raccomandato. Il valore di default è PIOMBO| +Vtiger Search Category:|Vtiger Ricerca Categoria:| +ACTIVE LISTS CHANGED|ATTIVO LISTE CAMBIAMENTO| +SUBMIT ACTIVE LIST CHANGES|ATTIVO PRESENTARE ELENCO MODIFICHE| +LAST CALL DATE|DATA ULTIMA CHIAMATA| +User Group Bulk Change|User Group Bulk Cambia| +Bulk Group Change|Bulk Gruppo Cambia| +Vtiger Create Call Record -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether a new Vtiger activity record is created for the call when the agent goes to the vtiger_search page. Default is Y|Vtiger Crea chiamate record - Se Vtiger integrazione è attivata in poi le impostazioni del sistema questa impostazione definisce se una nuova attività Vtiger è stato creato per registrare la chiamata quando lagente va al vtiger_search pagina. Il valore di default è Y| +Vtiger Create Call Record:|Vtiger Crea chiamate record:| +Vtiger Create Lead Record -<\/B> If Vtiger integration is enabled in the system settings and Vtiger Search Category includes LEAD then this setting will define whether a new Vtiger lead record is created when the agent goes to the vtiger_search page and no record is found to have the call phone number. Default is Y|Vtiger Crea record Piombo - Se è attivata Vtiger integrazione nel sistema e le impostazioni Vtiger Ricerca Categoria PIOMBO comprende quindi questa impostazione definisce se un nuovo record Vtiger piombo viene creato quando lagente va a vtiger_search la pagina di registrazione e non è di avere trovato la chiamata numero di telefono. Il valore di default è Y| +Vtiger Create Lead Record:|Vtiger Crea Piombo record:| +Vtiger Screen Login -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether the user is logged into the Vtiger interface automatically when they login to VICIDIAL. Default is Y|Vtiger Screen Login - Se Vtiger di integrazione è attivata in poi le impostazioni del sistema questa impostazione definisce se lutente è connesso al Vtiger interfaccia automaticamente quando laccesso al VICIDIAL. Il valore di default è Y| +Vtiger Screen Login:|Vtiger Screen accesso:| +Alert Enabled -<\/B> This field shows whether the agent has web browser alerts enabled for when calls come into their vicidial.php session. Default is 0 for NO|Alert Attivato - Questo campo indica se lagente ha permesso browser avvisi per quando si chiede loro in vicidial.php sessione. Il valore di default è 0 per il NO| +Alert Enabled:|Alert Enabled:| +QC Features Active -<\/B> This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive|Caratteristiche di Active QC - Questa opzione consente di attivare o disattivare la qualità o le caratteristiche di controllo della qualità. Il valore di default è 0 per inattive| +Outbound Auto-Dial Active -<\/B> This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active|Outbound Auto-Dial Active - Questa opzione consente di attivare o disattivare la connessione automatica in uscita entro VICIDIAL, limpostazione di questo campo a 0 rimuove gli elenchi e le sezioni FILTRI e molti campi della campagna Modifica schermi. Manuale per lingresso di selezione sarà ancora consentita lagente da schermo, ma nessuna lista di selezione sarà possibile. Il valore di default è 1, per attività di| +QC Features Active:|QC Active Caratteristiche:| +Outbound Auto-Dial Active:|Outbound Active Auto-Dial:| +Close Panel|Chiudi pannello| +Choose Report Display Options|Scegli Opzioni di visualizzazione Relazione| +To select more than 1 campaign, hold down the Ctrl key and click|Per selezionare più di campagna 1, tenere premuto il tasto Ctrl e fare clic su| +CPD AMD Action -<\/B> If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED|CPD AMD Azione - Se si utilizza il Sangoma ParaXip chiamate di avanzamento di rilevamento di software allora si desidera attivare questa impostazione o limpostazione di DISPO disposizione che la chiamata come AA e appende se la chiamata è in fase di elaborazione e non è stato inviato a un agente o un messaggio che ancora invierà la richiesta alla Segreteria definito Messaggio per questa campagna. Il valore di default è ANDICAPPATI| +CPD AMD Action:|CPD AMD Azione:| +Click here for user multiple day status detail report|Clicca qui per lutente più giorni status dettaglio relazione| +Click here to download this list|Clicca qui per scaricare lelenco| +Download Lists:|Download liste:| +Active Asterisk Server -<\/B> If Asterisk is not running on this server, or if VICIDIAL should not be using this server, or if are only using this server for other scripts like the hopper loading script you would want to set this to N. Default is Y|Active Server Asterisk - Asterisk Se non è in esecuzione su questo server, o se VICIDIAL non dovrebbero utilizzare questo server, o se sono solo utilizzando questo server per altri script come la tramoggia di carico script si desidera impostare questo N. Il valore di default è Y| +Generate conf files -<\/B> If you would like the system to auto-generate asterisk conf files based upon the phones entries, carrier entries and load balancing setup within VICIDIAL then set this to Y. Default is Y|Genera file conf - Se si desidera il sistema di auto-generare asterisco conf file basati su telefoni voci, le voci del vettore e di impostazione di bilanciamento del carico allinterno VICIDIAL quindi impostare ad Y. Il valore di default è Y| +Rebuild conf files -<\/B> If you want to force a rebuilding of the Asterisk conf files or if any of the phones or carrier entries have changed then this should be set to Y. After the conf files have been generated and Asterisk has been reloaded then this will be changed to N. Default is Y|Ricostruire conf - Se si desidera forzare una ricostruzione del Asterisk conf file o se uno dei telefoni cellulari o vettore voci hanno cambiato allora questo deve essere impostato a Y. Dopo il file di configurazione sono stati generati e Asterisk ha stati ricaricati quindi questo sarà cambiato in N. Il valore di default è Y| +Active Asterisk Server:|Active Server Asterisk:| +Generate conf files:|Genera file di configurazione:| +Rebuild conf files:|Ricostruire i file di configurazione:| +Show Templates|Visualizza modelli| +Add A New Template|Aggiungi un nuovo modello| +ADD NEW CONF TEMPLATE|ADD NEW CONF TEMPLATE| +ADD NEW CARRIER|AGGIUNGI NUOVO VETTORE| +ADDING NEW CONF TEMPLATE|Aggiunta di nuovi CONF TEMPLATE| +ADDING NEW CARRIER|Aggiunta di nuovi VETTORE| +MODIFY CONF TEMPLATE|MODIFICA TEMPLATE CONF| +MODIFY CARRIER|MODIFICA DEL VETTORE| +DELETE CONF TEMPLATE|CANC CONF TEMPLATE| +DELETE CARRIER|CANC VETTORE| +CONF TEMPLATE LIST|CONF TEMPLATE ELENCO| +CARRIER LIST|ELENCO CARRIER| +Template ID:|Template ID:| +Template Name:|Nome modello:| +Template Contents:|Template Sommario:| +Carrier ID:|Vettore ID:| +Carrier Name:|Nome del vettore:| +Registration String:|Stringa di registrazione:| +Account Entry:|Conto Entrata:| +Protocol:|Protocollo:| +Globals String:|Globals Stringa:| +Dialplan Entry:|Dialplan entrata:| +CONF TEMPLATE NOT ADDED|CONF TEMPLATE NON AGGIUNTO| +there is already a template in the system with this ID|vi è già un modello del sistema con questo ID| +CONF TEMPLATE ADDED|CONF TEMPLATE AGGIUNTO| +CARRIER NOT ADDED|Vettore non AGGIUNTO| +there is already a carrier in the system with this ID|vi è già un elemento portante del sistema con questo ID| +CONF TEMPLATE NOT MODIFIED|CONF TEMPLATE NON MODIFICATI| +CARRIER NOT MODIFIED|VETTORE NON MODIFICATI| +CARRIER MODIFIED|VETTORE MODIFICATI| +CONF TEMPLATE NOT DELETED|CONF TEMPLATE NON DELETED| +Template ID be at least 2 characters in length|Template ID essere almeno 2 caratteri| +CONF TEMPLATE DELETION CONFIRMATION|CONF TEMPLATE CONFERMA ELIMINAZIONE| +Click here to delete conf template|Clicca qui per cancellare conf modello| +CARRIER NOT DELETED|Vettore non DELETED| +Carrier ID be at least 2 characters in length|Vettore ID essere almeno 2 caratteri| +CARRIER DELETION CONFIRMATION|CONFERMA ELIMINAZIONE DEL VETTORE| +Click here to delete carrier|Clicca qui per cancellare vettore| +CONF TEMPLATE DELETION COMPLETED|CONF TEMPLATE DELETION COMPIUTI| +CARRIER DELETION COMPLETED|VETTORE DELETION COMPIUTI| +MODIFY A CONF TEMPLATE RECORD|MODIFICARE UN RECORD CONF TEMPLATE| +DELETE THIS CONF TEMPLATE|CONF CANC QUESTO MODELLO| +MODIFY A CARRIER RECORD|MODIFICARE UN RECORD DEL VETTORE| +DELETE THIS CARRIER|Elimina questo VETTORE| +CARRIERS WITHIN THIS SERVER|PORTARINFUSE IN QUESTO SERVER| +CONF TEMPLATE LISTINGS|CONF TEMPLATE LISTINGS| +CARRIER LISTINGS|VETTORE LISTINGS| +PHONES USING THIS CONF TEMPLATE|PHONES LUSO DI QUESTO MODELLO CONF| +CARRIERS USING THIS CONF TEMPLATE|PORTARINFUSE LUSO DI QUESTO MODELLO CONF| +Conf Override:|Conf. Sovrascrive:| +Template ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the conf template throughout the system|Template ID - Questo campo deve essere di almeno 2 caratteri e non più di 15 caratteri, senza spazi. Questo è lID che sarà utilizzato per identificare il modello di conf in tutto il sistema| +Template Name -<\/B> This is the descriptive name of the conf file template entry|Nome modello - Questo è il nome descrittivo del file di conf modello entrata| +Template Contents -<\/B> This field is where you can enter in the specific settings to be used by all phones and-or carriers that are set to use this conf template. Fields that should NOT be included in this box are: secret, accountcode, account, username and mailbox|Template Sommario - Questo campo è possibile entrare nello specifico delle impostazioni per essere utilizzati da tutti i telefoni o e-vettori che sono impostate per lutilizzo di questo modello conf. I campi che non dovrebbero essere inclusi in questa casella sono i seguenti: segreto, accountcode, account, nome utente e la casella e-mail| +Carrier ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the carrier for this specific entry throughout the system|ID Vettore - Questo campo deve essere di almeno 2 caratteri e non più di 15 caratteri, senza spazi. Questo è lID che sarà utilizzato per individuare il vettore per questo specifico entrata in tutto il sistema| +Carrier Name -<\/B> This is the descriptive name of the carrier entry|Nome Vettore - Questo è il nome descrittivo del vettore entrata| +Registration String -<\/B> This field is where you can enter in the exact string needed in the IAX or SIP configuration file to register to the provider. Optional but highly recommended if your carrier allows registration|Registrazione Stringa - Questo campo è possibile immettere nella stringa esatta necessaria la SIP IAX o file di configurazione per la registrazione al provider. Opzionale, ma altamente raccomandato se il vettore consente di registrazione| +Template ID -<\/B> This optional field allows you to choose a conf file template for this carrier entry|Template ID - Questo campo opzionale vi permette di scegliere un file di configurazione per questo modello vettore entrata| +Account Entry -<\/B> This field is used if you have not selected a template to use, and it is where you can enter in the specific account settings to be used for this carrier|Conto Entrata - Questo campo è utilizzato se non hai selezionato un modello da utilizzare, ed è dove si può entrare nello specifico le impostazioni da utilizzare per questo vettore| +Protocol -<\/B> This field allows you to define the protocol to use for the carrier entry. Currently only IAX and SIP are supported|Protocollo - Questo campo permette di definire il protocollo da utilizzare per lingresso del vettore. Attualmente solo SIP e IAX sono supportati| +Globals String -<\/B> This optional field allows you to define a global variable to use for the carrier in the dialplan|Globals Stringa - Questo campo opzionale permette di definire una variabile globale da utilizzare per il vettore in dialplan| +Dialplan Entry -<\/B> This optional field allows you to define a set of dialplan entries to use for this carrier|Entrata Dialplan - Questo campo opzionale permette di definire una serie di dialplan voci da utilizzare per questo vettore| +Server IP -<\/B> This is the server that this specific carrier record is associated with|Server IP - Questo è il server che questo specifico vettore record è associato con| +Active -<\/B> This defines whether the carrier will be included in the auto-generated conf files or not|Attiva - Questo definisce se il vettore sarà incluso nel generata automaticamente conf file o non| +Conf Override Settings -<\/B> If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated|Conf. Sovrascrive Impostazioni - Se popolate, e il modello di ID è impostato su - INSUSSISTENZA - quindi il contenuto di questo campo è utilizzato come file di conf voci per questo telefono. per questo generate_vicidial_conf telefoni server deve essere impostato su Y per questo lavoro. Questo campo NON deve contenere il [estensione] linea, che sarà generato automaticamente| +Template ID -<\/B> This is the conf file template ID that this phone entry will use for its Asterisk settings. Default is --NONE--|Template ID - Questo è il file di conf che questo modello di telefono cellulare ID entrata utilizzerà per i suoi Asterisk impostazioni. Il valore di default è - INSUSSISTENZA --| +If you will be taking in inbound calls from this carrier trunk you might want to set the context=trunkinbound within this field so that you can use the DID handling process within VICIDIAL|Se si sarà tenuto a chiamate in entrata da questo vettore tronco che si desidera impostare il contesto trunkinbound = allinterno di questo settore, in modo che si può utilizzare il processo di trattamento allinterno DID VICIDIAL| +There is a reserved default DID that you can use which is just the word -default- without the dashes, that will allos you to send any call that does not match any other existing patterns to the default DID|Vi è una riservati DID predefinito che è possibile utilizzare, che è solo la parola-default-senza trattini, che Allos di inviare qualsiasi richiesta che non corrisponde a tutte le altre esistenti modelli di default DID| +Campaign VDAD extension|Campagna VDAD estensione| +This field allows for a custom VDAD transfer extension. This allows you to use different call handling methods depending upon your campaign.|Questo campo consente un trasferimento personalizzato VDAD estensione. Questo vi permette di utilizzare diversi metodi di gestione delle chiamate a seconda della tua campagna.| + - 8364 - same as 8368|- 8364 - 8368 stessa| + - 8365 - Will send the call only to an agent on the same server as the call is on|- 8365 - Will inviare la chiamata ad un solo agente sullo stesso server come la chiamata è in| + - 8366 - Used for press-1 and survey campaigns|- 8366 - Usato-1 per la stampa e campagne di indagine| + - 8367 - Will try to first send the call to an agent on the local server, then it will look on other servers|- 8367 - Il primo a provare a inviare la chiamata a un agente sul server locale, poi si guarda su altri server| + - 8368 - DEFAULT – Will send the call to the next available agent no matter what server they are on|- 8368 - DEFAULT? Può inviare linvito alla prossima disponibili agente non importa quale server si trovano in| + - 8369 - Used for Answering Machine Detection after that, same behavior as 8368|- 8369 - Utilizzato per Segreteria di rilevamento, dopo che, lo stesso comportamento come 8368| + - 8373 - Used for Answering Machine Detection after that same behavior as 8366|- 8373 - Utilizzato per Segreteria di rilevamento dopo lo stesso comportamento come 8366| +Also in this section are the WEB VARs for each campaign. These allow each agent to have a different variable string that can be added to the WEB FORM or SCRIPT tab URLs by simply putting --A--web_vars--B-- as you would put any other field.|Anche in questa sezione sono WEB VAR per ciascuna campagna. Questi permettono di ogni agente di avere una diversa variabile stringa che può essere aggiunto al Web Form o SCRIPT scheda URL semplicemente messa - A - web_vars - B - come si farebbe con qualsiasi altro posto campo.| +Group Alias List|Gruppo Alias Elenco| +Add A New Group Alias|Aggiungere un nuovo gruppo Alias| +ADD NEW GROUP ALIAS|AGGIUNGI NUOVO GRUPPO ALIAS| +ADDING NEW GROUP ALIAS|AGGIUNGENDO NUOVO GRUPPO ALIAS| +MODIFY GROUP ALIAS|MODIFICA GRUPPO ALIAS| +DELETE GROUP ALIAS|Elimina gruppo ALIAS| +GROUP ALIAS LIST|GRUPPO ALIAS ELENCO| +GROUP ALIAS LISTINGS|GRUPPO ALIAS LISTINGS| +MODIFY A GROUP ALIAS RECORD|MODIFICARE UN GRUPPO ALIAS RECORD| +Group Alias ID|Gruppo Alias ID| +Group Alias Name|Alias Nome Gruppo| +CallerID Number|Numero CallerID| +CallerID Name|CallerID Nome| +DELETE THIS GROUP ALIAS|CANCELLA QUESTO GRUPPO ALIAS| +GROUP ALIAS NOT MODIFIED|ALIAS GRUPPO NON MODIFICATI| +GROUP ALIAS MODIFIED|GRUPPO ALIAS MODIFICATI| +ADD A NEW GROUP ALIAS|Aggiungere un nuovo gruppo ALIAS| +MODIFY A GROUP ALIAS RECORD|MODIFICARE UN GRUPPO ALIAS RECORD| +GROUP ALIAS NOT ADDED|ALIAS GRUPPO NON AGGIUNTO| +GROUP ALIAS ADDED|GRUPPO ALIAS AGGIUNTO| +GROUP ALIAS NOT DELETED|ALIAS GRUPPO NON DELETED| +GROUP ALIAS DELETION CONFIRMATION|ALIAS GRUPPO CONFERMA ELIMINAZIONE| +Click here to delete group alias|Clicca qui per eliminare gruppo alias| +GROUP ALIAS DELETION COMPLETED|GRUPPO ALIAS DELETION COMPIUTI| +Group Alias ID -<\/B> The ID of the group alias used by agents to dial out calls from the VICIDIAL agent interface with different Caller IDs. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|Alias ID gruppo - LID del gruppo alias utilizzati da agenti di effettuare chiamate in uscita le chiamate dalla VICIDIAL agente di interfaccia con le diverse Caller ID. senza spazi o altri caratteri speciali ammessi. Deve essere compreso tra 2 e 20 caratteri di lunghezza| +Group Alias Name -<\/B> The name used to describe a group alias, Must be between 2 and 50 characters in length|Gruppo Alias Nome - Il nome utilizzato per designare un gruppo di alias, deve essere compresa tra 2 e 50 caratteri di lunghezza| +Caller ID Number -<\/B> The Caller ID number used in this Group Alias. Must be digits only|Numero ID chiamante - Il numero ID del chiamante utilizzato in questo gruppo di Alias. Deve essere solo cifre| +Caller ID Name -<\/B> The Caller ID name that can be sent out with this Group Alias. As far as we know this will only work in Canada on PRI circuits and using an IAX loop trunk through Asterisk|Caller ID Nome - Il Caller ID nome che possono essere inviati con questo gruppo di Alias. Per quanto ne sappiamo questo funziona solo in Canada e il PRI circuiti IAX loop utilizzando un tronco attraverso Asterisk| +Group Alias Allowed -<\/B> If you want to allow your agents to use group aliases then you need to set this to Y. Group Aliases are explained more in the Admin section, they allow agents to select different callerIDs for outbound manual calls that they may place. Default is N|Gruppo Alias ammessi - Se si desidera consentire agli agenti di utilizzare il vostro gruppo alias quindi è necessario impostare questo gruppo Y. Alias sono spiegate più in Admin sezione, che consentono di selezionare diversi agenti callerIDs manuale per le chiamate in uscita che essi possono posto. Il valore di default è N| +Default Group Alias -<\/B> If you have allowed Group Aliases then this is the group alias that is selected first by default when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Predefinito Gruppo Alias - Se si hanno consentito Gruppo Alias allora questo è il gruppo alias che viene selezionato per impostazione predefinita quando prima lagente sceglie di utilizzare un gruppo di Alias per un manuale di chiamata in uscita. Il valore predefinito è vuoto o NESSUNO| +Default Group Alias -<\/B> If you have allowed Group Aliases for the campaign that the agent is logged into then this is the group alias that is selected first by default on a call coming in from this inbound group when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|Predefinito Gruppo Alias - Se si hanno consentito Alias gruppo per la campagna che lagente è registrato in poi questo è il gruppo alias che è stato selezionato prima di default su un invito da parte di questo gruppo in entrata, quando lagente sceglie di utilizzare un gruppo di Alias per un manuale di chiamata in uscita. Il valore predefinito è vuoto o NESSUNO| +Group Alias Allowed|Gruppo Alias ammessi| +Default Group Alias|Predefinito Gruppo Alias| +AGENT_CHOOSE allows the agent to choose which callerID to use for 3-way calls from a list of choices.|AGENT_CHOOSE lagente permette di scegliere quale callerID da utilizzare per le chiamate a 3 vie da un elenco di scelte.| +you cannot use reserved words in group aliases|non è possibile utilizzare le parole riservate nel gruppo alias| +Agent Shift Enforcement Override|Agente Maiusc esecuzione Sovrascrive| +Manager Shift Enforcement Override|Shift Manager esecuzione Sovrascrive| +Shift Enforcement|Maiusc esecuzione| +Max Calls per Second|Max chiede al secondo| +Max FILL Calls per Second|Max COMPILA invita al secondo| +This setting will override whatever the users user group has set for Shift Enforcement. DISABLED will use the user group setting. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is DISABLED.|Questa impostazione si sovrascriverà qualsiasi cosa gli utenti del gruppo di utenti ha fissato per lesecuzione Maiusc. ANDICAPPATI utilizzerà lutente gruppo. OFF non applicare a tutti i turni. INIZIO solo applicare il login, ma non riguarda un agente che è in esecuzione sul loro passaggio, se essi sono già eseguito laccesso TUTTE imporrà a turni orario di inizio e di un agente di log dopo che corrono oltre la fine del loro turno tempo. Il valore di default è disattivato.| +This setting if set to 1 will allow a manager to enter their user and password on an agent screen to override the shift restrictions on an agent session if the agent is trying to log in outside of their shift. Default is 0.|Questa impostazione, se impostato a 1 consentirà un manager per inserire il proprio utente e la password su un agente schermo per scavalcare le restrizioni al passaggio di un agente di sessione, se lagente sta tentando di accedere al di fuori del loro passaggio. Il valore di default è 0.| +This setting allows you to restrict agent logins based upon the shifts that are selected below. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is OFF.|Questa impostazione consente di limitare agente login basata su turni che sono selezionati in appresso. OFF non applicare a tutti i turni. INIZIO solo applicare il login, ma non riguarda un agente che è in esecuzione sul loro passaggio, se essi sono già eseguito laccesso TUTTE imporrà a turni orario di inizio e di un agente di log dopo che corrono oltre la fine del loro turno tempo. Il valore di default è OFF.| +This setting determines the maximum number of calls that can be placed by the outbound auto-dialing script on this server per second. Must be from 1 to 100. Default is 20.|Questa impostazione determina il numero massimo di chiamate che possono essere immessi in uscita dalla selezione automatica di script sul server al secondo. Deve essere da 1 a 100. Il valore predefinito è 20.| +This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40.|Questa impostazione determina il numero massimo di chiamate che possono essere messi da parte lauto-fill-in uscita di selezione automatica di script per tutti i server, al secondo. Deve essere da 1 a 200. Il valore predefinito è 40.| +System Load|Sistema di carico| +Live Channels|Live Canali| +Disk Usage|Utilizzo del disco| +These two statistics show the loadavg of a system times 100 and the CPU usage percentage of the server and is updated every minute. The loadavg should on average be below 100 multiplied by the number of CPU cores your system has, for optimal performance. The CPU usage percentage should stay below 50 for optimal performance.|Queste due statistiche mostrano il loadavg di un sistema di 100 volte e la percentuale di utilizzo della CPU del server e viene aggiornato ogni minuto. Il loadavg dovrebbe essere in media al di sotto di 100, moltiplicato per il numero di CPU core il sistema è, per ottenere prestazioni ottimali. La percentuale di utilizzo della CPU dovrebbe rimanere al di sotto del 50 per ottenere prestazioni ottimali.| +This field shows the current number of Asterisk channels that are live on the system right now. It is important to note that the number of Asterisk channels is usually much higher than the number of actual calls on a system. This field is updated once every minute.|Questo campo indica il numero attuale di Asterisk canali che sono in diretta su il sistema adesso. È importante notare che il numero di canali Asterisk è di solito molto più elevato rispetto al numero effettivo di chiamate su un sistema. Questo campo è aggiornato una volta ogni minuto.| +This field will show the disk usage for every partition on this server. This field is updated once every minute.|Questo campo mostra lutilizzo del disco per ogni partizione su questo server. Questo campo è aggiornato una volta ogni minuto.| +ADMIN CHANGE LOG|ADMIN Change Log| +USER ADMIN CHANGE LOG|Lutente admin CAMBIAMENTO LOG| +SECTION ADMIN CHANGE LOG|SEZIONE ADMIN Change Log| +DETAIL ADMIN CHANGE LOG|DETTAGLIO ADMIN Change Log| +Last 10000 records|Ultimo 10000 record| +Changes made by|Modifiche apportate dal| +Record Detail|Record Detail| +Section Records|Sezione Records| +Click here to see Admin chages to this record|Clicca qui per visualizzare Admin chages a questo record| +Click here to see Admin chages to this campaign|Clicca qui per visualizzare Admin chages a questa campagna| +Click here to see Admin chages to this list|Clicca qui per visualizzare Admin chages a questo elenco| +Click here to see Admin chages to this In-Group|Clicca qui per visualizzare Admin chages per questo gruppo di in -| +Click here to see Admin chages to this DID|Clicca qui per visualizzare Admin chages a questo DID| +Click here to see Admin chages to this remote agent|Clicca qui per visualizzare Admin chages a questo agente remoto| +Click here to see Admin chages to this user group|Clicca qui per visualizzare Admin chages a questo gruppo di utenti| +Click here to see Admin chages to this script|Clicca qui per visualizzare Admin chages a questo script| +Click here to see Admin chages to this filter|Clicca qui per visualizzare Admin chages a questo filtro| +Click here to see Admin chages to this call time|Clicca qui per visualizzare Admin chages tempo al presente invito| +Click here to see Admin chages to this shift|Clicca qui per visualizzare Admin chages a questo passaggio| +Click here to see Admin chages to this phone alias|Clicca qui per visualizzare Admin chages a questo telefono cellulare alias| +Click here to see Admin chages to this group alias|Clicca qui per visualizzare Admin chages a questo gruppo alias| +Click here to see Admin chages to this server|Clicca qui per visualizzare Admin chages a questo server| +Click here to see Admin chages to this conf template|Clicca qui per visualizzare Admin chages a questo modello di conf| +Click here to see Admin chages to this carrier|Clicca qui per visualizzare Admin chages a questo vettore| +Click here to see Admin chages to the system settings|Clicca qui per visualizzare Admin chages per le impostazioni di sistema| +Export Reports|Rapporti Export| +This setting if set to 1 will allow a manager to access the export call reports on the REPORTS screen. Default is 0.|Questa impostazione, se impostato su 1 consente di accedere a un manager di esportazione chiamata relazioni sulle relazioni schermo. Il valore di default è 0.| +This setting if set to 1 will allow a manager to click on the download list link at the bottom of a list modification screen to export the entire contents of a list to a flat data file. Default is 0.|Questa impostazione, se impostato a 1 consentirà un manager per il download cliccare sul link elenco nella parte inferiore della schermata di modifica un elenco di esportare lintero contenuto di un elenco di file di dati di un appartamento. Il valore di default è 0.| +Export Calls Report|Esporta invita Relazione| +EXPORT CALLS REPORT|ESPORTAZIONE CHIAMATE RELAZIONE| +For the Export Calls Report, the following field order is used for exports|Per la relazione chiede di esportazione, per il seguente campo è utilizzato per le esportazioni| +Timeclock|Orologio| +Logout|Logout| +Show Users|Inserisci Utenti| +Add A New User|Aggiungere un nuovo utente| +Search For A User|Cerca un utente| +User Stats|Statistiche utente| +User Status|Status Utente| +Time Sheet|Time Sheet| +Days Status|Giorni di stato| +Campaigns Main|Campagne Main| +Statuses|Status| +HotKeys|HotKeys| +Lead Recycle|Piombo Riciclare| +Auto Alt-Dial|Auto Alt-Dial| +Auto Alt Dial|Alt Auto Dial| +List Mix|Elenco Mix| +Pause Codes|Pausa Codici| +Basic|Basic| +Detail|Dettaglio| +Survey|Indagine| +Real-Time|Real-Time| +CAMPAIGN ID|CAMPAGNA ID| +DIAL PLAN|DIAL PIANO| +DIAL METHOD|DIAL METODO| +LEADS COUNT|PORTA CONTE| +LEAD ORDER|PIOMBO PER| +DIAL STATUSES|DIAL status| +SCRIPT ID|SCRIPT ID| +SCRIPT NAME|Nome script| +USER GROUP|User Group| +GROUP NAME|NOME GRUPPO| +PRIORITY|PRIORITY| +FORCE TIMECLOCK|VIGORE orologio| +CALLTIME ID|CALLTIME ID| +CALLTIME NAME|CALLTIME NOME| +DEFAULT START|INIZIO DI MORA| +DEFAULT STOP|DEFAULT STOP| +SHIFT ID|SHIFT ID| +SHIFT NAME|SHIFT NOME| +SHIFT START|SHIFT INIZIO| +SHIFT LENGTH|SHIFT DURATA| +WEEKDAYS|SETTIMANALE| +Template ID|Template ID| +Template Name|Nome modello| +Carrier ID|Vettore ID| +Carrier Name|Nome del vettore| +Registration|Registrazione| +Active|Attivo| +USER ID|USER ID| +FULL NAME|DENOMINAZIONE COMPLETA| +LEVEL|LIVELLO| +LINKS|LINK| +TRUNKS|Bauli| +HUMAN|UMANA| +ANSWER|RISPOSTA| +CATEGORY|CATEGORIA| +STATUSES IN THIS CATEGORY|Stati in questa categoria| +Display|Visualizzare| +Dates|Date| +PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK|Seleziona una campagna o utente GRUPPO E DATA A TEMPO E CLICCA SOPRA| +PLEASE SELECT A USER AND DATE-TIME ABOVE AND CLICK|SELEZIONA UN UTENTE E DATA A TEMPO E CLICCA SOPRA| +PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK|SELEZIONA UNA CAMPAGNA E DATA A TEMPO E CLICCA SOPRA| +PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT|SELEZIONA UN GRUPPO IN-E DATE SOPRA e fare clic su Invia| +DOWNLOAD|DOWNLOAD| +Users|Utenti| +User|Utente| +Reports|Rapporti| +OUTBOUND|OUTBOUND| +INBOUND|INBOUND| +Server Stats and Reports|Server Statistiche e rapporti| +Click here to see a VDAD report for this campaign|Clicca qui per vedere un VDAD relazione per questa campagna| +Show DIDs|Visualizza DIDs| +Add A New DID|Aggiungi un nuovo DID| +Templates|Modelli| +Carriers|Vettori| +Carrier Name|Nome del vettore| +Click here to see all CallBack Holds in this user group|Clicca qui per vedere tutte le CallBack Prese in questo gruppo di utenti| +Click here to see all CallBack Holds in this list|Clicca qui per vedere tutte le CallBack Prese in questo elenco| +Click here to see a report for this inbound group|Clicca qui per vedere una relazione di questo gruppo in entrata| +Click here to Synchronize users with Vtiger|Clicca qui per sincronizzare gli utenti con Vtiger| +Alert Enabled|Alert Attivato| +Change Date|Cambia Data| +Login Date|Login Data| +List Last Call Date|Elenco Last Call Data| +Phone Code Override|Telefono Codice Sovrascrive| +GROUP ALIAS ID|GRUPPO ALIAS ID| +GROUP ALIAS NAME|ALIAS NOME GRUPPO| +CID NUMBER|CID NUMERO| +CID NAME|CID NOME| +PHONE ALIAS|TELEFONO ALIAS| +ALIAS ID|ALIAS ID| +ALIAS NAME|ALIAS NOME| +PHONE LOGINS LIST|Login ELENCO TELEFONICO| +Shift Length|Maiusc Lunghezza| +short description of the shift|breve descrizione del turno| +DELETE THIS SERVER|CANCELLA QUESTO SERVER| +DELETE THIS CONFERENCE|Elimina questo CONFERENZA| +DELETE THIS VICIDIAL CONFERENCE|Elimina questo VICIDIAL CONFERENZA| +Install Date|Installare Data| +Human Answer|Umani Risposta| +STATUS CATEGORIES|Status CATEGORIE| +per campaign|per campagna| +all campaigns|tutte le campagne| +### START translations for 2.2.0 release ### +Delete From DNC Lists|Cancellare dalle liste DNC| +This setting if set to 1 will allow a manager to remove phone numbers from the DNC lists in the VICIDIAL system|Questa impostazione, se impostato a 1 permetterà un gestore di rimuovere i numeri di telefono dagli elenchi DNC nel sistema VICIDIAL| +DNC NOT DELETED|DNC non cancellato| +This phone number is not in the Do Not Call List|Questo numero di telefono non è in Do Not Call List| +DNC DELETED|DNC DELETED| +ADD OR DELETE NUMBERS FROM THE DNC LIST|Aggiungi o Elimina i numeri dall-elenco DNC| +Add or Delete|Aggiungere o eliminare| +Add-Delete Number From DNC|Add-Eliminare numero da DNC| +Vtiger Search Dead Accounts|Vtiger Cerca Dead Accounts| +If Vtiger integration is enabled in the system settings then this setting will define whether deleted accounts will be searched when the agent clicks WEB FORM to search in the Vtiger system. DISABLED- deleted leads will not be searched, ASK- deleted leads will be searched and the vtiger search web page will ask the agent if they want to make the Vtiger account active, RESURRECT- will automatically make the deleted account active again and will take the agent to the account screen without delay upon clicking on WEB FORM. Default is DISABLED|Se l-integrazione Vtiger è attivata nelle impostazioni di sistema, quindi, questa impostazione definire se i conti saranno eliminati cercato quando l-agente clic WEB form per la ricerca nel sistema Vtiger. Disabili conduce da non essere cercati, ASK-soppresso porta sarà ricerche e la pagina di ricerca vtiger web chiederà l-agente se vogliono fare il conto Vtiger attivo, risorgere-automaticamente rendere l-account cancellato di nuovo attivo e adotterà le agente per lo schermo conto immediatamente dopo aver fatto clic sul WEB FORM. Di default è disabilitato| +The DISPO option will create a call record for the Vtiger account without the agent needing to go to the vtiger search page through the WEB FORM|L-opzione DISPO creerà un record di chiamata per l-account Vtiger senza l-agente di dover andare alla pagina di ricerca vtiger attraverso il Web Form| +The NEW_WINDOW option will open a new window upon login to the VICIDIAL agent screen|L-opzione NEW_WINDOW aprirà una nuova finestra al login alla schermata VICIDIAL agente| +Vtiger Status Call|Vtiger stato della chiamata| +If Vtiger integration is enabled in the system settings then this setting will define whether the status of the Vtiger Account will be updated with the status of the VICIDIAL call after it has been dispositioned. Default is N|Se l-integrazione Vtiger è attivata nelle impostazioni di sistema, quindi, questa impostazione definirà se lo stato del Conto Vtiger verrà aggiornato con lo stato della chiamata VICIDIAL dopo che è stato dispositioned. Di default è N| +There are also 5 additional settings that will define the kind of status: sale, dnc, customer contact, not interested, unworkable|Ci sono anche 5 impostazioni aggiuntive che definiscono il tipo di stato: in vendita, DNC, contatto con i clienti, non interessati, impraticabile| +If the customer is on hold and hears this estimated hold time message, the minimum time that will be played is 15 seconds|Se il cliente è in attesa e sente questo messaggio stimato tempo attesa, il tempo minimo che verrà riprodotto è di 15 secondi| +Email, User Code and Territory|E-mail, codice utente e Territorio| +These are optional fields|Questi sono i campi facoltativi| +All options except for the Not Interested, Third and Fourth digit options will move on to the Survey Method call path|Tutte le opzioni eccetto per i non interessati, terzo e quarto opzioni cifra di passare al percorso di indagine chiamata al metodo| +Survey Third Digit|Terza indagine Digit| +This allows for a third call path if the Third digit as defined in this field is pressed by the customer|Questo permette di avere un percorso di terza convocazione, se la terza cifra come definito in questo campo è premuto da parte del cliente| +Survey Fourth Digit|Digit Survey Quarta| +This allows for a fourth call path if the Fourth digit as defined in this field is pressed by the customer|Questo permette di avere un percorso di quarta chiamata se la quarta cifra come definito in questo campo è premuto da parte del cliente| +Survey Third Audio File|Terza indagine di file audio| +Survey Fourth Audio File|Quarta Indagine file audio| +This is the third audio file to be played upon the selection by the customer of the Third Digit option|Questo è il terzo file audio da riprodurre alla selezione da parte del cliente della facoltà di terza cifra| +Survey Third Status|Terza indagine Status| +Survey Fourth Status|Status Survey Quarta| +This is the third status used for the call upon the selection by the customer of the Third Digit option|Questo è il terzo stato utilizzato per la chiamata alla selezione da parte del cliente della facoltà di terza cifra| +Survey Third Extension|Terza indagine Extension| +Survey Fourth Extension|Quarta indagine Extension| +This is the third extension used for the call upon the selection by the customer of the Third Digit option. Default is 8300 which immediately hangs up the call after the Audio File message is played|Questa è la terza proroga utilizzato per la chiamata alla selezione da parte del cliente della facoltà di terza cifra. Il valore predefinito è 8.300, che si blocca immediatamente la chiamata dopo il messaggio di file audio viene riprodotto| +RANDOM: Randomly grabs lead within the statuses and lists defined|RANDOM: Randomly afferra prima all-interno della statuti e gli elenchi di cui| +UP LAST CALL TIME: Sorts by the newest local call time for the leads|Rialzi ultimi guardia: Ordina per il tempo più recente chiamata locale per la porta| +DOWN LAST CALL TIME: Sorts by the oldest local call time for the leads|Ribassi ultimi guardia: Ordina per il tempo più antiche chiamata locale per la porta| +WARNING, we only recommend List Mix for advanced users, Please read the ViciDial Manager Manual|ATTENZIONE, si limita a raccomandare List Mix per utenti avanzati, Si prega di leggere il manuale ViciDial Manager| +Add Call Menu|Aggiungi Call Menu| +Copy Call Menu|Copia Call Menu| +New Call Menu|Nuova chiamata Menu| +Modify Call Menu|Modifica Call Menu| +Delete Call Menu|Elimina Call Menu| +Call Menus|Call Menu| +Menu ID|Menu ID| +This is the ID for this step of the call menu. This will also show up as the context that is used in the dialplan for this call menu|Questo è l-ID di questo passo del menù chiamata. Questo mostrerà anche come il contesto che viene utilizzata nel dialplan per il presente invito menu| +Menu Name|Menu Nome| +This field is the descriptive name for the call menu|Questo campo è il nome descrittivo per il menu di chiamata| +Menu Prompt|Menu Prompt| +This field contains the file name of the audio prompt to play at the beginning of this menu|Questo campo contiene il nome del file del prompt audio da riprodurre all-inizio di questo menu| +Menu Timeout|Timeout menu| +This field is where you set the timeout in seconds that the menu will wait for the caller to enter in a DTMF choice|Questo campo è dove si imposta il timeout in secondi che il menu si aspetta per il chiamante per entrare in una scelta DTMF| +Menu Timeout Prompt|Menu prompt timeout| +This field contains the file name of the audio prompt to play when the timeout has been reached. Default is NONE to play no audio at timeout|Questo campo contiene il nome del file del prompt audio da riprodurre quando il timeout è stato raggiunto. Di default è NESSUNO per giocare senza audio a timeout| +Menu Invalid Prompt|Menu valide Prompt| +This field contains the file name of the audio prompt to play when the caller has selected an invalid option. Default is NONE to play no audio at invalid|Questo campo contiene il nome del file del prompt audio da riprodurre quando il chiamante ha scelto un-opzione valida. Di default è NESSUNO per giocare senza audio a non validi| +Menu Repeat|Menu Repeat| +This field is where you define the number of times that the menu will play after the first time if no valid choice is made by the caller. Default is 1 to repeat the menu once|Questo campo è dove si definisce il numero di volte che il menu svolgeranno dopo la prima volta se non valida scelta è fatta dal chiamante. Di default è di 1 a ripetere il menu di una volta| +Menu Time Check|Menu Time Check| +This field is where you can select whether to restrict the Call Menu access to the specific hours set up in the selected Call Time. If the Call Time is blank, this setting will be ignored. Default is 0 for disabled|Questo campo è dove si può scegliere se limitare l-accesso al menù di chiamata ora specifici stabiliti nella selezionato di guardia. Se la durata delle chiamate è vuota, questa impostazione verrà ignorata. Di default è 0 per disabili| +Call Time ID|Call Time ID| +This is the Call Time ID that will be used to restrict calling times if the Menu Time Check option is enabled|Questa è la chiamata Time ID che verrà utilizzato per limitare i tempi chiamando se il menu Time opzione di controllo è attivata| +Track Calls in Real-Time Report|Chiede Track in Real-Time Report| +This field is where you can select whether you want the call to be tracked in the Real-time screen as an incoming IVR type call. Default is 1 for active|Questo campo è dove è possibile selezionare se si desidera che la chiamata ad essere monitorati in tempo reale sullo schermo come una chiamata in entrata di tipo IVR. Predefinito è 1 per attivo| +Option Value|Value Option| +This field is where you define the menu option, possible choices are|Questo campo è dove si definisce l-opzione di menu, le scelte possibili sono| +Option Route|Opzione Route| +This menu contains the options for where to send the call if this option is selected|Questo menu contiene le opzioni per sapere dove inviare la chiamata, se si sceglie questa opzione| +The special option TIMECHECK can be used only if you have Menu Time Check enabled and there is a Call Time defined for the Menu|Il TIMECHECK speciale opzione può essere utilizzata solo se si dispone di menu Time Check abilitato e c-è un tempo chiamata definito per il Menu| +Option Route Value|Route Value Option| +This field is where you enter the value that defines where in the selected Option Route that the call is to be directed to|Questo campo è dove si immette il valore che definisce il punto della opzione selezionata percorso che la chiamata è di essere diretto a| +Option Route Value Context|Opzione Route valore di contesto| +This field is optional and only used for EXTENSION Option Routes|Questo campo è opzionale e solo utilizzati come percorsi di opzione di proroga| +ADD A NEW CALL MENU|AGGIUNGI UN NUOVO CALL MENU| +COPY CALL MENU|COPIA CALL MENU| +This menu contains the options for where to send the call if this option is selected: CALLMENU,INGROUP,DID,HANGUP,EXTENSION,PHONE. For CALLMENU, the Route Value should be the Menu ID of the Call Menu that you want the call sent to. For INGROUP, the In-Group that you want the call to be sent to needs to be selected as well as the other 5 options that need to be set to properly route a call to an Inbound Group. For DID, the Route Value needs to be the DID pattern that you want to send the call to. For HANGUP, the Route Value can be the name of an audio file to play before hanging up the call. For EXTENSION, the Route Value needs to be the dialplan extension you want to send the call to, and the Route Value Context is the context that extension is located in, if left blank the context will default to default. For PHONE, the Route Value needs to be the phone login value for the phones entry that you want to send the call to. For VOICEMAIL, the Route Value needs to be the voicemail box number, the unavailable mesage will be played. For AGI, the Route Value needs to be the agi script and any values taht need to be passed to it.|Questo menu contiene le opzioni per sapere dove inviare la chiamata, se questa opzione è selezionata: CALLMENU, ingroup, DID, Hangup, ESTENSIONE, TEL. Per CALLMENU, il Rapporto percorso dovrebbe essere l-ID del menu chiamata che si desidera la chiamata inviata. Per ingroup, l-In-gruppo che si desidera che la chiamata ad essere inviato al bisogno di essere scelto come pure le altre 5 opzioni che hanno bisogno di essere impostato correttamente il percorso di una chiamata a un gruppo di ingresso. Per DID, il Rapporto percorso deve essere il modello DID che si desidera inviare la chiamata al. Per Hangup, il Rapporto percorso può essere il nome di un file audio di giocare prima di appendere la chiamata. Per estensione, il valore Route deve essere l-estensione dialplan che si desidera inviare la chiamata a, e la Strada del valore di contesto è il contesto che l-estensione in cui si trova, se lasciato in bianco il contesto sarà di default per difetto. Per telefono, il Rapporto percorso deve essere il valore login telefono cellulare per l-entrata telefoni che si desidera inviare la chiamata al. Per VoiceMail, il Rapporto percorso deve essere il numero di casella vocale, il mesage disponibile verrà riprodotto. Per AGI, il Rapporto percorso deve essere lo script AGI e tutti i valori che devono essere passati a esso.| +Option Description|Opzione Descrizione| +This field is where you can describe the option, this description will be put into the dialplan as a comment above the option|Questo campo è dove si può descrivere l-opzione, questa descrizione sarà messo in dialplan come un commento in precedenza l-opzione| +Source Menu|Fonte Menu| +CALL MENU NOT ADDED|CALL menu non AGGIUNTI| +Call Menu ID must be between 2 and 50 characters in length and contain no|Call Menu ID deve essere compresa tra 2 e 50 caratteri di lunghezza e non contengono| +CALL MENU ADDED|CALL MENU AGGIUNTO| +CALL MENU NOT MODIFIED|CALL MENU NON MODIFICATI| +CALL MENU MODIFIED|CALL MENU MODIFICATI| +Click here to see Admin chages to this CALL MENU|Clicca qui per vedere chages Admin a questo menu CALL| +DELETE THIS CALL MENU|DELETE THIS CALL MENU| +MODIFY A CALL MENU RECORD|MODIFICARE UNA CHIAMATA menu Record| +Time Check|Check Time| +No Time Check|N. Check Time| +Realtime Tracking|Monitoraggio in tempo reale| +No Realtime Tracking|No di monitoraggio in tempo reale| +Call Menu Options|Call Menu Opzioni| +Option|Opzione| +CALL MENU NOT DELETED|CALL MENU non cancellato| +CALL MENU DELETION CONFIRMATION|CALL menu di cancellazione CONFERMA| +Click here to delete CALL MENU|Clicca qui per cancellare CALL MENU| +CALL MENU DELETION COMPLETED|CALL menu di cancellazione PRONTI| +CALL MENU LISTINGS|CALL MENU LISTINGS| +CALLMENU will send the call to the defined Call Menu|CALLMENU invierà la chiamata al call definita Menu| +Call Menu|Call Menu| +If CALLMENU is selected as the DID Route, then this is the Call Menu that calls will be sent to|Se CALLMENU è selezionato come la Route DID, allora questo è il menu di chiamata che gli inviti saranno inviati a| +Show Call Menus|Show Call Menu| +Add A New Call Menu|Aggiungi un nuovo menu Call| +Copy Call Menu|Copia Call Menu| +To delete an Option, just set the Route to REMOVE and the option will be deleted when you click the SUBMIT button|Per eliminare un opzione, è sufficiente impostare il percorso per rimuovere e l-opzione verranno eliminati quando si fa clic sul pulsante INVIA| +Agent Only Callback Campaign Lock|Solo agente di richiamata Campagna Lock| +This option defines whether AGENTONLY callbacks are locked to the campaign that the agent originally created them under. Setting this to 1 means that the agent can only dial them from the campaign they were set under, 0 means that the agent can access them no matter what campaign they are logged into. Default is 1|Questa opzione definisce se richiamate AGENTONLY sono bloccati per la campagna che l-agente originariamente creato sotto. Impostare questo a 1 significa che l-agente non può che chiamarli dalla campagna sono stati fissati nel quadro, 0 significa che l-agente può accedervi non importa quale campagna sono collegato. Di default è 1| +Central Sound Control Active|Centrale Sound Control Active| +This option defines whether the sound synchronization system is active across all servers. Default is 0 for inactive|Questa opzione definisce se il sistema audio di sincronizzazione è attivo su tutti i server. Di default è 0 per inattivo| +Sounds Web Server|Suoni Web Server| +This is the server name or IP address of the web server that will be handling the sound files on this system, this must match the server name or IP of the machine you are trying to access the audio_store.php webpage on or it will not work. Default is 127.0.0.1|Questo è il nome del server o l-indirizzo IP del server Web che sarà la gestione dei file audio su questo sistema, questo deve corrispondere il nome del server o IP della macchina che si sta tentando di accedere alla pagina web audio_store.php o non funzionerà . Di default è 127.0.0.1| +Sounds Web Directory|Suoni Web Directory| +This auto-generated directory name is created at random by the system as the place that the audio store will be kept. All audio files will reside in this directory|Questa auto-generata nome della directory è creata in modo casuale dal sistema come il luogo che l-archivio audio saranno mantenute. Tutti i file audio risiede in questa directory| +Audio Store|Audio Store| +Audio File to Upload|Audio file da caricare| +This utility allows you to upload audio files to the web server so that they can be distributed to all of the ViciDial servers in a multi-server cluster. An important note, only two audio file types will work, .wav files that are PCM 16bit 8k and .gsm files that are 8bit 8k. Please verify that your files are properly formatted before uploading them here|Questa utility consente di caricare file audio per il web server in modo che possano essere distribuite a tutti i server ViciDial in un multi-cluster di server. Una nota importante, solo due tipi di file audio funziona, i file. Wav che sono PCM 16bit 8k e file. GSM che sono 8BIT 8K. Si prega di verificare che i file siano correttamente formattato prima di caricarli qui| +Sounds Update|Suoni Update| +If you want to force a check of the sound files on this server, and the central audio store is enabled as a system setting, then this field will allow the sounds updater to run at the next top of the minute. Any time an audio file is uploaded from the web interface this is automatically set to Y for all servers that have Asterisk active. Default is N|Se si vuole forzare un controllo dei file audio su questo server, e l-archivio centrale audio è abilitato come impostazione di sistema, quindi questo settore permetterà i suoni di aggiornamento per eseguire in cima successiva del minuto. Ogni volta che un file audio viene caricato tramite l-interfaccia web questa viene automaticamente impostato su Y per tutti i server che sono attivi Asterisk. Di default è N| +Active Voicemail Server|Active Server Voicemail| +In multi-server systems, this is the server that will handle all voicemail boxes. This server is also where the dial-in generated prompts will be uploaded from, the 8168 recordings|Nei sistemi multi-server, questo è il server che consente di gestire tutte le caselle di posta vocale. Questo server è anche il luogo dove il dial-in generati prompt saranno caricati dai, il 8.168 registrazioni| +Auto Dial Limit|Auto Dial Limit| +This is the maximum limit of the auto dial level in the campaign screen|Questo è il limite massimo del livello di linea automatica nella schermata di campagna| +User Territories are not active on this system|Territori degli utenti non sono attivi su questo sistema| +User Territories|Utente Territori| +List All Territories:|Tutti i territori:| +User Territories Active|Territori User Attivo| +This setting allows you to enable the User Territories setttings from the user modification screen. This feature was added to allow for more integration with a customized Vtiger installation but can have applications in a pure ViciDial system as well. Default is 0 for disabled|Questa impostazione consente di attivare l-utente Territori setttings dalla schermata di modifica degli utenti. Questa caratteristica è stata aggiunta per consentire una maggiore integrazione con un-installazione personalizzata Vtiger, ma può avere applicazioni in un sistema di puro ViciDial pure. Di default è 0 per disabili| +List Territories|Elenco Territori| +Add Territory|Aggiungi Territorio| +Add User Territory|Aggiungi Utente Territorio| +Territory|Territorio| +Territory Description|Descrizione territorio| +Territory and Territory Description must be filled in|Territorio e Territorio Descrizione deve essere compilato in| +there is already a territory in the system with this name|vi è già un territorio nel sistema con questo nome| +Territory Added|Territorio Added| +Modify Territory|Modifica Territorio| +Territory not found|Territorio non trovato| +This territory is not in the system with this name|Questo territorio non è presente nel sistema con questo nome| +Territory Modified|Territorio Modified| +Territory must be filled in|Territorio deve essere compilato in| +Territory Deleted|Territorio Soppresso| +Delete This Territory|Elimina Questo territorio| +Vtiger Accounts|Vtiger Accounts| +Agents|Agenti| +Territory, User and Level must be filled in|Territorio, degli utenti e di livello deve essere compilato in| +this territory user is already in the system|questo utente territorio è già nel sistema| +User Territory Added|Utente Territorio Added| +this territory user is not in the system|questo utente territorio non è nel sistema di| +User Territory Modified|Utente Territorio Modified| +Territory and User must be filled in|Territorio e degli utenti deve essere compilato in| +User Territory Deleted|Utente Territorio Soppresso| +Vtiger Change Territory Owner|Vtiger Cambia Territorio Proprietario| +Had to add user territory|Dovuto aggiungere territorio utente| +Vtiger Territory Owner Changed|Vtiger Territorio Proprietario Changed| +Records Changed|Record modificati| +ViciDial Recording Limit|ViciDial Limite di registrazione| +This field is where you set the maximum number of minutes that a call recording initiated by ViciDial can be. Default is 60 minutes|Questo campo è dove si imposta il numero massimo di minuti che una registrazione di chiamata da parte ViciDial può essere. Predefinito è 60 minuti| +This is the dial plan context that the agent applications, like ViciDial, primarily use. 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. default is default|Questo è il contesto dial plan che le domande agente, come ViciDial, in primo luogo l-uso. Si presume che tutti i numeri composti dalle applicazioni client utilizzano questo contesto, quindi è una buona idea per assicurarsi che questo è il contesto più ampio possibile. verificare con il file extensions.conf prima di modificare. di default è di default| +Phone Context|Telefono Contesto| +This is the dial plan context that this phone will use to dial out. If you are running a call center and you do not want your agents to be able to dial out outside of the ViciDial applicaiton for example, then you would set this field to a dialplan context that does not exist, something like agent-nodial. default is default|Questo è il contesto dial plan che questo telefono cellulare sarà utilizzato per effettuare chiamate in uscita. Se si esegue un call center e non volete che i vostri agenti per essere in grado di effettuare chiamate in uscita al di fuori della domanda ViciDial per esempio, allora devi impostare questo campo ad un contesto dialplan che non esiste, qualcosa come agente-nodial. di default è di default| +Use the HIDE option to completely remove the customer phone number from the agent display|Utilizzare l-opzione Nascondi per rimuovere completamente il numero di telefono del cliente dal display agente| +Click here to see a traffic report for this DID|Clicca qui per vedere una relazione di traffico per questo DID| +Agent Time Detail|Agente Time Detail| +User Timeclock Detail Report|Utente Timeclock Detail Report| +Carrier Logging Active|Carrier Logging Active| +This setting allows you to log all hangup return codes for any outbound list dialing calls that you are placing. Default is N.|Questa impostazione consente di registrare tutti i codici hangup ritorno per qualsiasi composizione lista delle chiamate in uscita che si sta ponendo. Predefinito è N.| +Drop Lockout Time|Drop Lockout Time| +This is a number of hours that DROP abandon calls will be prevented from being dialed, to disable set to 0. This setting is very useful in countries like the UK where there are regulations preventing the attempted calling of customers within 72 hours of an Abandon, or DROP. Default is 0|Questo è un numero di ore che DROP abbandonare le chiamate sarà impedito di essere composto, per impostare disabilitare a 0. Questa impostazione è molto utile in paesi come il Regno Unito, dove vi sono norme che impediscono la convocazione tentativo di clienti entro le 72 ore di un abbandono, o DROP. Di default è 0| +Phone Ring Timeout|Phone Ring Timeout| +This is the amount of time, in seconds, that the phone will ring in the dialplan before sending the call to voicemail. Default is 60 seconds|Questa è la quantità di tempo, in secondi, che il telefono squilla nel dialplan prima di inviare la chiamata alla segreteria telefonica. Predefinito è 60 secondi| +Allow Custom Dialplan Entries|Consentire Custom Dialplan Entries| +This option allows you to enter custom dialplan lines into Call Menus. Default is 0 for inactive|Questa opzione consente di immettere le linee personalizzate dialplan in Call menu. Di default è 0 per inattivo| +Custom Dilplan Entry|Custom Dilplan Entry| +This field allows you to enter in any dialplan elements that you want for the Call Menu|Questo campo consente di inserire in ogni dialplan elementi che si desidera per il menu di chiamata| +You can enter multiple propmts in this field and the other prompt fields by separating them with a pipe character|È possibile immettere propmts più in questo campo e gli altri settori prompt separandole con un carattere pipe| +Setting this field to zero 0 will mean that there will be no wait time after the prompt is played|L-impostazione di questo campo a zero 0 significa che non vi sarà alcun tempo di attesa dopo il prompt si gioca| +Conf File Secret|Conf file segreto| +This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|Questo è il segreto, o la password, per il telefono cellulare in auto o IAX SIP-generated conf file per questo telefono. Limite è dash 20 caratteri alfanumerici e underscore accettato. Di default è di prova| +Tracking Group|Gruppo di monitoraggio| +This is the ID that you can use to track calls to this Call Menu when looking at the IVR Report. The list includes CALLMENU as the default as well as all of the In-Groups|Questo è l-ID che è possibile utilizzare per monitorare le chiamate a questo menu di chiamata se si guarda alla relazione IVR. L-elenco comprende CALLMENU come predefinito così come tutte le In-Groups| +Agent Alert Filename|Agente Alert Filename| +The audio file to play to an agent to announce that a call is coming to the agent. To not use this function set this to X. Default is ding|Il file audio si gioca a un agente di annunciare che una chiamata è venuta per l-agente. A non utilizzare questa funzione per impostare il valore predefinito è X. Ding| +This field as with the other audio fields in In-Groups, with the exception of the Agent Alert Filename, can have multiple audio files played if you put a pipe-separated list of audio files into the field|Questo campo, come con gli altri campi audio in In-gruppi, con l-eccezione della Agent Alert Filename, può avere più file audio giocato se si mette un tubo di elenco separato di file audio nel campo| +No Agents No Queueing|N. agenti n. Queueing| +If this field is set to Y or NO_PAUSED then no calls will be put into the queue for this in-group if there are no agents logged in and the calls will go to the No Agent No Queue Action. The NO_PAUSED option will also not send the callers into the queue if there are only paused agents in the in-group. Default is N|Se questo campo è impostato su Y o NO_PAUSED allora non le chiamate saranno messi in coda per questo gruppo se non ci sono agenti di login e le chiamate andrà l-agente No No Action coda. L-opzione NO_PAUSED non anche inviare i chiamanti in coda se non ci sono solo agenti in pausa in gruppo. Di default è N| +No Agent No Queue Action|Nessun agente Nessuna azione di coda| +If No Agent No Queue is enabled, then this field defines where the call will go if there are no agents in the In-Group. Default is MESSAGE, this plays the sound files in the Action Value field and then hangs up|Se Nessun agente n. coda è attivato, allora questo campo definisce dove la chiamata andrà se non ci sono agenti in In-Group. Di default è il messaggio, questo gioca il file audio nel campo di azione di valore e poi riattacca| +No Agent No Queue Action Value|Nessun agente n. coda azione Value| +This is the value for the Action above. Default is|Questo è il valore per l-azione di cui sopra. Predefinito è| +Quick Transfer Button|Trasferimento rapido Button| +This option will add a Quick Transfer button to the agent screen below the Transfer-Conf button that will allow one click blind transferring of calls to the selected In-Group or number. IN_GROUP will send calls to the Default Xfer Group for this Campaign, or In-Group if there was an inbound call. The PRESET options will send the calls to the preset selected. Default is N for disabled|Questa opzione aggiunge un pulsante di trasferimento rapido alla schermata agente sotto il pulsante Transfer-Conf che permetterà un clic cieco trasferimento di chiamate al selezionato In-gruppo o numero. IN_GROUP invierà le chiamate al Default Xfer gruppo per questa campagna, o In-gruppo se ci fosse una chiamata in entrata. Le opzioni preimpostate invierà le chiamate al preset selezionato. Di default è N per disabili| +PrePopulate Transfer Preset|Trasferimento PrePopulate Preset| +This option will fill in the Number to Dial field in the Transfer Conference frame of the agent screen if defined. Default is N for disabled|Questa opzione di inserire il numero di campo Dial nella cornice Conferenza di trasferimento dello schermo agente se definito. Di default è N per disabili| +Enable TTS Integration|Consentire l-integrazione TTS| +This setting allows you to enable Text To Speech integration with Cepstral. This is currently only available for outbound Survey type campaigns. Default is 0 for disabled|Questa impostazione consente di attivare Text To Speech integrazione con Cepstral. Questo è attualmente disponibile solo per le campagne di tipo uscita Survey. Di default è 0 per disabili| +ADD NEW TTS ENTRY|ADD NEW ENTRY TTS| +ADDING NEW TTS ENTRY|Aggiunta di nuovi TTS ENTRY| +MODIFY TTS ENTRY|MODIFICA TTS ENTRY| +DELETE TTS ENTRY|DELETE TTS ENTRY| +TTS ENTRY LIST|TTS ENTRY LIST| +TEXT-TO-SPEECH(TTS) LISTINGS|Text-To-Speech (TTS) LISTINGS| +Text To Speech|Text To Speech| +Show TTS Entries|Mostra TTS Entries| +Add A New TTS Entry|Aggiungere una nuova voce TTS| +TTS ID|TTS ID| +TTS Name|TTS Nome| +TTS Text|TTS Text| +TTS ENTRY NOT ADDED|TTS iscrizione non AGGIUNTI| +there is already a tts entry in the system with this ID|c-è già una voce TTS nel sistema con questo ID| +TTS ENTRY ADDED|TTS Entry Aggiunto| +MODIFY A TTS RECORD|MODIFICA A TTS RECORD| +Click here to see Admin chages to this TTS entry|Clicca qui per vedere chages Admin a questa voce TTS| +DELETE THIS TTS ENTRY|DELETE THIS TTS ENTRY| +TTS ENTRY NOT MODIFIED|TTS iscrizione non MODIFICATI| +TTS ENTRY MODIFIED|TTS voce modificata| +TTS ENTRY NOT DELETED|TTS iscrizione non DELETED| +TTS ENTRY DELETION CONFIRMATION|TTS ENTRATA SOPPRESSIONE CONFERMA| +Click here to delete tts entry|Clicca qui per cancellare TTS entrata| +This is the short name of a TTS entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 50 characters, minimum of 2 characters|Questo è il nome breve di una voce di TTS. Questo deve essere un identificatore univoco. Non usare spazi o punteggiatura per questo campo. caratteri max 50, minimo di 2 caratteri| +This is a more descriptive name of the TTS entry. This is a short summary of the TTS definition. max 100 characters, minimum of 2 characters|Questo è un nome più descrittivo della voce di TTS. Questo è un breve sunto della definizione TTS. max 100 caratteri, minimo di 2 caratteri| +This option allows you to set the TTS entry to active or inactive|Questa opzione consente di impostare la voce TTS di attivi o inattivi| +This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example|Questo è il testo effettivo ai dati Discorso campo che viene inviato al Cepstral per la creazione del file audio da riprodurre al cliente. è possibile utilizzare Speech Synthesis Markup Language-SSML-in questo campo, per esempio| +for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. Here is a list of the available variables: |per una pausa di 1 secondo. È inoltre possibile utilizzare diverse variabili, quali nome, cognome e titolo come variabili ViciDial proprio come si fa in uno script: - A first_name - - B -. Ecco una lista delle variabili disponibili:| +Multiple Campaign Drop Rate Group|Multiple campagna Drop Rate Group| +This feature allows you to set a campaign as a member of a Campaign Drop Rate Group, or a group of campaigns whose Human Answered calls and Drop calls for all campaigns in the group will be combined into a shared drop percentage, or abandon rate. This allows you to to run multiple campaigns at once and more easily control your drop rate. This is particularly useful in the UK where regulations permit this drop rate calculation method with campaign grouping for the same company even if there are several campaigns that company is running during the same day. To enable this for a campaign, just select a group from the list. There are 10 groups defined in the system by default, you can contact your system administrator to add more. Default is DISABLED|Questa funzione consente di impostare una campagna come membro di una campagna Drop Rate gruppo, o un gruppo di campagne cui dell-uomo chiede risposta e le chiamate Drop per tutte le campagne del gruppo verranno combinati in una percentuale condivisa goccia, o tasso di abbandono. Questo vi permette di eseguire più campagne contemporaneamente e controllare più facilmente il tasso di drop. Ciò è particolarmente utile nel Regno Unito, dove ai permessi di questo metodo di calcolo con il tasso di drop campagna di raggruppamento per la stessa società, anche se vi sono numerose campagne di tale società è in esecuzione durante il giorno stesso. Per attivare questa per una campagna, basta selezionare un gruppo dall-elenco. Ci sono 10 gruppi definiti nel sistema di default, è possibile contattare l-amministratore di sistema per aggiungere di più. Di default è disabilitato| +IMPORTANT, this is the password only for the agent web interface phone login, to change the sip.conf or iax.conf password, or secret, for this phone device you need to modify the Conf File Secret field further down on this page|IMPORTANTE, questa è la password solo per il web agent login telefono di interfaccia, per cambiare il sip.conf o la password iax.conf, o segreto, per questo dispositivo cellulare è necessario modificare la conf campo segreto più in basso in questa pagina| +Agent Status Viewable Groups|Stato agente Viewable Gruppi| +This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into|Questa è una lista selezionabile di gruppi di utenti e funzioni di utente a cui i membri di questo gruppo utente può visualizzare lo stato delle chiamate, nonché il trasferimento verso l-interno dello schermo agente. The All-GRUPPI opzione consente agli utenti in questo gruppo da vedere e trasferire le chiamate a qualsiasi utente del sistema. LA CAMPAGNA AGENTI opzione consente agli utenti in questo gruppo da vedere e trasferire le chiamate a qualsiasi utente nella campagna che si è registrato in| +Agent Status View Time|Visualizza stato agente Time| +This option defines whether the agent will see the amount of time that users in their agent sidebar have been in their current status. Default is N for no or disabled|Questa opzione definisce se l-agente vedrà la quantità di tempo che gli utenti nella loro sidebar agenti sono stati nel loro stato attuale. Di default è N per nulla o portatori di handicap| +This option allows an agent to disposition a call as CALLBK and choose the date and time at which the lead will be re-activated|Questa opzione consente un agente a disposizione una chiamata come CALLBK e scegliere la data e l-ora in cui il piombo sarà riattivato| +Agent View Calls in Queue|Agente chiede View in coda| +If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE|Se impostato a nulla, ma NESSUNO, gli agenti saranno in grado di visualizzare i dettagli sulle chiamate che sono in attesa in coda nelle loro schermo agente. Se impostato su un valore numerico, le chiamate visualizzato sarà limitata al numero selezionato. Di default è NESSUNO| +View Calls in Queue Launch|Visualizzazione delle chiamate in coda Launch| +This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL|Questa impostazione, se impostato su AUTO avranno la chiede in cornice della coda mostra fino al momento del login da parte dell-agente nella schermata di agente. Di default è MANUALE| +Agent Grab Calls in Queue|Agente chiede Grab in coda| +This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N|Questa opzione se impostata a Y permetterà all-agente di selezionare la chiamata che vogliono prendere dalle chiamate in coda visualizzazione facendo clic su di esso, mentre in pausa. Gli agenti saranno in grado di afferrare le chiamate in entrata o chiamate il trasferimento, non le chiamate in uscita. Di default è N| +Agent Call Re-Queue Button|Call Agent Re-Queue Button| +This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N|Questa opzione se impostata a Y aggiungerà il bottone ri-cliente Coda alla schermata di agente, l-agente che consente di inviare la chiamata in una coda AGENTDIRECT che è riservata per il solo agente. Di default è N| +Agent Pause After Each Call|Agente di pausa dopo ogni chiamata| +This option if set to Y will pause the agent after every call automatically. Default is N|Questa opzione se impostata a Y si fermerà l-agente, dopo ogni chiamata automaticamente. Di default è N| +Starts with the highest rank and works its way down|Inizia con il rango più elevato e si sta facendo strada verso il basso| +Starts with the lowest rank and works its way up|Inizia con il rango più basso e si sta facendo strada fino| +Starts with owners beginning with Z and works its way down|Inizia con i proprietari che iniziano con Z e lavora la sua strada verso il basso| +Starts with owners beginning with A and works its way up|Inizia con i proprietari che inizia con A e si sta facendo strada fino| +No Hopper Dialing|N. Dialing Hopper| +If This is enabled, the hopper will not run for this campaign. This option is only available when the dial method is set to MANUAL or INBOUND_MAN. It is recommended that you do not enable this option if you have a very large lead database, over 100,000 leads. With No Hopper Dialing, the following features do not work: lead recycling, auto-alt-dialing, list mix, list ordering with Xth NEW. If you want to use Owner Only Dialing you must have No Hopper Dialing enabled. Default is N for disabled|Se questo è abilitato, la tramoggia non avrà una durata di questa campagna. Questa opzione è disponibile solo se il metodo di selezione è impostato su Manuale o INBOUND_MAN. Si raccomanda di non attivare questa opzione se si dispone di un database molto grande di piombo, oltre 100.000 contatti. Con il n. telefonico Hopper, le seguenti caratteristiche non funzionano: il riciclaggio di piombo, di auto-alt-dialing, mix di lista, la lista degli ordini con X. NUOVO. Se si desidera utilizzare solo il proprietario di composizione è necessario disporre di n. telefonico Hopper abilitato. Di default è N per disabili| +Owner Only Dialing|Unico proprietario Dialing| +If This is enabled, the agent will only receive leads that they are within the ownership parameters for. If this is set to USER then the agent must be the user defined in the database as the owner of this lead. If this is set to TERRITORY then the owner of the lead must match the territory listed in the User Modification screen for this agent. If this is set to USER_GROUP then the owner of the lead must match the user group that the agent is a member of. For this feature to work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper Dialing must be enabled. Default is NONE for disabled|Se questo è abilitato, l-agente riceverà solo porta che sono entro i parametri per la proprietà. Se questo è impostato su USER allora l-agente deve essere definita dall-utente nel database come proprietario di questo piombo. Se questo è impostato su un territorio il proprietario del piombo deve coincidere con il territorio di cui la schermata User Modifica per questo agente. Se questo è impostato su USER_GROUP poi il proprietario del piombo deve corrispondere al gruppo di utenti che l-agente è un membro di. Per questa funzione il metodo di selezione deve essere impostato su Manuale o INBOUND_MAN e n. telefonico Hopper deve essere attivato. Di default è NESSUNO per disabili| +Reset Times|Reset Times| +This field allows you to put times in, separated by a dash-, that this list will be automatically reset by the system. The times must be in 24 hour format with no punctuation, for example 0800-1700 would reset the list at 8AM and 5PM every day. Default is empty|Questo campo vi permette di mettere a volte, separati da un trattino-, che questa lista sarà automaticamente reimpostato dal sistema. I tempi devono essere in formato 24 ore senza punteggiatura, ad esempio 0.800-1.700 sarebbe reimpostare l-elenco di 8 e 5 tutti i giorni. Di default è vuota| +Owner: |Proprietario:| +OWNERS WITHIN THIS LIST|PROPRIETARI all-interno di questa mailing| +RANKS WITHIN THIS LIST|RANKS all-interno di questa mailing| +Allow Alerts|Consentire Alerts| +This field gives you the ability to allow agent browser alerts to be enabled by the agent for when calls come into their vicidial.php session. Default is 0 for NO|Questo campo ti dà la possibilità di consentire browser agente di avvisi per essere abilitato l-agente per le chiamate quando entrano in loro sessione vicidial.php. Di default è 0 per il NO| +Agent Display Dialable Leads|Agent Display Dialable Leads| +This option if enabled will show the number of dialable leads available in the campaign in the agent screen. This number is updated in the system once a minute and will be refreshed on the agent screen every few seconds|Questa opzione, se attivata mostrerà il numero di porta dialable disponibili nella campagna nella schermata agente. Questo numero è aggiornato nel sistema di una volta al minuto e sarà aggiornata sullo schermo agente ogni pochi secondi| +VICIDIAL Balance Rank|VICIDIAL Balance Rank| +This field allows you to set the order in which this server is to be used for balance dialing, if balance dialing is enabled. The server with the highest rank will be used first in placing Balance fill calls. Default is 0|Questo campo consente di impostare l-ordine in cui il server deve essere utilizzato per chiamate di equilibrio, se l-equilibrio di composizione è abilitato. Il server con il rango più alto sarà utilizzato prima immissione Balance riempire le chiamate. Di default è 0| +Inbound Summary Hourly Report|Inbound Sintesi Resoconto| +orders by the amount of time agent has been actively waiting for a call|ordini per la quantità di tempo agente è stato attivamente in attesa di una chiamata| +Agent Script Override|Agent Script Override| +If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the lead is from this list. Default is not set|Se questo campo è impostato, questo sarà lo script che l-agente vede sullo schermo del proprio posto di script campagna quando il piombo è da questo elenco. Di default non è impostato| +Music On Hold|Music On Hold| +ADD NEW MUSIC ON HOLD ENTRY|ADD NEW MUSIC IN ATTESA INGRESSO| +ADDING NEW MUSIC ON HOLD ENTRY|AGGIUNTA NUOVA MUSICA IN ATTESA INGRESSO| +MODIFY MUSIC ON HOLD ENTRY|MODIFICA Music On Hold ENTRATA| +DELETE MUSIC ON HOLD ENTRY|DELETE Music On Hold ENTRATA| +MUSIC ON HOLD ENTRY LIST|Music On Hold ENTRY LIST| +We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files|Vivamente consigliamo di caricare solo 16bit 8k file audio WAV PCM| +Music On Hold ID|Music On Hold ID| +This is the short name of a Music On Hold entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 100 characters, minimum of 2 characters|Questo è il nome breve di un Music On Hold entrata. Questo deve essere un identificatore univoco. Non usare spazi o punteggiatura per questo campo. max 100 caratteri, minimo di 2 caratteri| +Music On Hold Name|Music On Hold Nome| +This is a more descriptive name of the Music On Hold entry. This is a short summary of the Music On Hold context and will show as a comment in the musiconhold-vicidial.conf file. max 255 characters, minimum of 2 characters|Questo è un nome più descrittivo del Music On Hold entrata. Questo è un breve sunto della Music On Hold contesto e mostrerà come un commento nel musiconhold file vicidial.conf. max 255 caratteri, minimo di 2 caratteri| +This option allows you to set the Music On Hold entry to active or inactive. Inactive will remove the entry from the conf files|Questa opzione consente di impostare la musica su attesa ingresso attivo o inattivo. Inattivi rimuovere la voce dal file di conf| +Random Order|Ordine casuale| +This option allows you to define the playback of the audio files in a random order. If set to N then the defined order will be used|Questa opzione permette di definire la riproduzione dei file audio in ordine casuale. Se impostato su N quindi l-ordine definito saranno utilizzati| +To add a new audio file to a Music On Hold entry the file must first be in the audio store, then you can select the file and click submit to add it to the file list. Music on hold is updated once per minute if there have been changes made. Any files not listed in a music on hold entry that are present in the music on hold folder will be deleted|Per aggiungere un nuovo file audio ad un Music On Hold ingresso il file deve essere prima nel negozio di audio, quindi è possibile selezionare il file e fare clic su per aggiungerlo alla lista dei file. Musica in attesa viene aggiornato una volta al minuto, se ci sono state le modifiche apportate. Tutti i file che non figurano in una musica d-ingresso sostengono che sono presenti nella cartella di musica su attesa saranno eliminati| +MUSIC ON HOLD ENTRY NOT ADDED|Music On Hold iscrizione non AGGIUNTI| +there is already a moh entry in the system with this ID|c-è già una voce moh nel sistema con questo ID| +MUSIC ON HOLD ENTRY ADDED|Music On Hold Entry Aggiunto| +Click here to see Admin chages to this Music On Hold entry|Clicca qui per vedere chages Admin a questo Music On Hold entrata| +Audio Files|Audio Files| +Add An Audio File|Aggiungere un file audio| +Rank: |Rank:| +MUSIC ON HOLD ENTRY NOT MODIFIED|Music On Hold iscrizione non MODIFICATI| +MUSIC ON HOLD ENTRY MODIFIED|Music On Hold voce modificata| +Add A New MOH Entry|Aggiungere una nuova voce MOH| +Show MOH Entries|Mostra MOH Entries| +Active Agent Server|Active Server Agent| +Setting this option to N will prevent agents from being able to login to this server through the vicidial agent screen. This is very useful when using a phone login load balanced setup. Default is Y|L-impostazione di questa opzione per N impedirà agenti di essere in grado di accedere al server attraverso lo schermo vicidial agente. Questo è molto utile quando si utilizza un telefono cellulare carico login setup equilibrata. Di default è Y| +Rebuild Music On Hold|Ricostruire Music On Hold| +If you want to force a rebuilding of the music on hold files or if the music on hold entries or server entries have changed then this should be set to Y. After the music on hold files have been synchronized and reloaded then this will be changed to N. Default is Y|Se si vuole imporre una ricostruzione della musica su file di attesa o se la musica su voci di attesa o voci di server hanno cambiato allora questo dovrebbe essere impostato su Y. Dopo la musica in attesa dei file sono state sincronizzate e ricaricate allora questo sarà cambiato N. Il valore predefinito è Y| +MUSIC ON HOLD ENTRY NOT DELETED|Music On Hold iscrizione non DELETED| +MUSIC ON HOLD ENTRY DELETION CONFIRMATION|Music On Hold ENTRATA SOPPRESSIONE CONFERMA| +Click here to delete music on hold entry|Clicca qui per cancellare la musica in attesa dell-entrata| +MUSIC ON HOLD DELETION COMPLETED|Music On Hold SOPPRESSIONE PRONTI| +Starts with Eastern timezones and works West|Inizia con fuso orario orientale e opere West| +Starts with Western timezones and works East|Inizia con fuso orario occidentale e orientale opere| +you must select a user group|è necessario selezionare un gruppo di utenti| +Enable Second Webform|Consentire Webform Seconda| +WaitForSilence Options|WaitForSilence Opzioni| +If Wait For Silence is desired on calls that are detected as Answering Machines then this field has those options. There are two settings separated by a comma, the first option is how long to detect silence in milliseconds and the second option is for how many times to detect that before playing the message. Default is EMPTY for disabled. A standard value for this would be wait for 2 seconds of silence twice|Se Wait For Silence è desiderato per le chiamate che vengono rilevati come Segreterie allora questo campo ha queste opzioni. Ci sono due impostazioni separate da una virgola, la prima opzione è il tempo per individuare il silenzio in millisecondi e la seconda opzione è per quante volte a rilevare che prima di giocare il messaggio. Di default è vuota per disabili. Un valore standard per questo sarebbe attendere 2 secondi di silenzio per due volte| +This field is for entering the prompt to play when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this to either an audio file in the audio store or a TTS prompt if TTS is enabled on your system|Questo campo è per entrare nel prompt di giocare quando l-agente riceve una segreteria telefonica e fa clic sul pulsante Answering Machine Message nella cornice conferenza di trasferimento. È necessario impostare questo sia un file audio nel negozio di audio o un programma di TTS prompt se TTS è attivato sul tuo sistema| +EXTENDED ALTERNATE PHONE NUMBERS FOR THIS LEAD|EXTENDED ALTERNATE NUMERI DI TELEFONO PER QUESTA PIOMBO| +ADD NEW VOICEMAIL BOX|ADD NEW VOICEMAIL BOX| +ADDING NEW VOICEMAIL BOX|Aggiunta di nuovi VOICEMAIL BOX| +MODIFY VOICEMAIL BOX|MODIFICA VOICEMAIL BOX| +MODIFY A VOICEMAIL BOX|MODIFICARE un messaggio vocale BOX| +DELETE VOICEMAIL BOX|DELETE VOICEMAIL BOX| +VOICEMAIL BOXES LIST|VOICEMAIL caselle di riepilogo| +VOICEMAIL BOXES|VOICEMAIL SCATOLE| +ADD NEW VOICEMAIL BOX|ADD NEW VOICEMAIL BOX| +Voicemail ID|Voicemail ID| +This is the all numbers identifier of this mailbox. This must not be a duplicate of an existing voicemail ID or the voicemail ID of a phone on the system, minimum of 2 characters|Questo è l-identificativo di tutti i numeri di questa cassetta postale. Questo non deve essere un duplicato di una segreteria telefonica esistente ID o la segreteria telefonica ID di un telefono cellulare sul sistema, minimo di 2 caratteri| +This is name associated with this voicemail box. max 100 characters, minimum of 2 characters|Questo nome è associato a questa casella vocale. max 100 caratteri, minimo di 2 caratteri| +This is the password that is used to gain access to the voicemail box when dialing in to check messages max 10 characters, minimum of 2 characters|Questa è la password che viene utilizzata per ottenere l-accesso alla casella vocale, quando chiamate in ingresso per controllare i messaggi max 10 caratteri, minimo di 2 caratteri| +This option allows you to set the voicemail box to active or inactive. If the box is inactive you cannot leave messages on it and you cannot check messages in it|Questa opzione consente di impostare la casella vocale di attivo o inattivo. Se la casella è attiva non è possibile lasciare dei messaggi su di essa e non è possibile controllare i messaggi in esso| +This optional setting allows you to have the voicemail messages sent to an email account, if your system is set up to send out email. If this field is empty then no emails will be sent out|Questa impostazione consente di avere i messaggi vocali inviati a un account di posta elettronica, se il vostro sistema è configurato per inviare e-mail. Se questo campo è vuoto quindi non e-mail verrà inviato| +VOICEMAIL BOX NOT ADDED|VOICEMAIL BOX NON AGGIUNTI| +there is already a voicemail box in the system with this ID|vi è già una casella di posta vocale nel sistema con questo ID| +there is already a phone in the system with this voicemail ID|c-è già un telefono cellulare nel sistema, con questo messaggio vocale ID| +VOICEMAIL BOX ADDED|VOICEMAIL BOX AGGIUNTO| +VOICEMAIL BOX NOT MODIFIED|VOICEMAIL BOX NON MODIFICATI| +VOICEMAIL BOX MODIFIED|VOICEMAIL BOX MODIFICATI| +VOICEMAIL BOX NOT DELETED|VOICEMAIL BOX non cancellato| +VOICEMAIL BOX DELETION COMPLETED|VOICEMAIL BOX SOPPRESSIONE PRONTI| +VOICEMAIL BOX DELETION CONFIRMATION|VOICEMAIL BOX SOPPRESSIONE CONFERMA| +Click here to delete voicemail box|Clicca qui per cancellare casella di segreteria telefonica| +DELETE THIS VOICEMAIL BOX|DELETE questo messaggio vocale BOX| +Click here to see Admin chages to this voicemail box|Clicca qui per vedere chages Admin a questa casella vocale| +The following fields must have data|I seguenti campi devono disporre di dati| +Campaign CID Override|Campagna CID Override| +If this field is set, this will override the campaign CallerID that is set for calls that are placed to leads in this list. Default is not set|Se questo campo è impostato, andranno a sostituire la campagna CallerID che è impostato per le chiamate che vengono posti a porta in questo elenco. Di default non è impostato| +Answering Machine Message Override|Answering Machine Message Override| +If this field is set, this will override the Answering Machine Message set in the campaign for customers in this list. Default is not set|Se questo campo è impostato, questo ignorare il messaggio di Segreteria insieme nella campagna per i clienti in questo elenco. Di default non è impostato| +Drop Inbound Group Override|Drop Inbound Group Override| +If this field is set, this in-group will be used for outbound calls within this list that drop from the outbound campaign instead of the drop in-group set in the campaign detail screen. Default is not set|Se questo campo è impostato, in questo gruppo verranno utilizzati per le chiamate in uscita all-interno di questa lista che scendono da campagna in uscita, invece di cadere in gruppo insieme nella schermata di dettaglio della campagna. Di default non è impostato| +Agent Select Territories|Agente Seleziona Territori| +If this option is enabled and the agent belongs to at least one territory, the agent will have the option of selecting territories to dial leads from. The agent will see a list of available territories upon login and they will have the ability to go back to that territory list when paused to change their territories. For this function to work the Owner Only Dialing option must be set to TERRITORY and User Terriories must be enabled in the System Settings.|Se questa opzione è attivata e l-agente appartiene ad almeno un territorio, l-agente avrà la possibilità di selezionare i territori per comporre conduce da. L-agente viene visualizzato un elenco dei territori disponibili su login e avranno la possibilità di tornare indietro a quella lista territorio, quando si fermò a cambiare i loro territori. Per questa funzione l-unico proprietario di composizione opzione deve essere impostata al territorio e territori utente deve essere abilitato nelle impostazioni di sistema.| +Agent Choose Territories|Agente Scegli Territori| +This option if set to 1 allows the user to choose the territories that they will receive calls from when they login to a MANUAL or INBOUND_MAN campaign. Otherwise the user will be set to use all of the territories that they are set to belong to in the User Territories administrative section|Questa opzione se impostata a 1 permette all-utente di scegliere i territori che essi ricevere chiamate da quando il login per un manuale o una campagna INBOUND_MAN. In caso contrario, l-utente sarà impostato per utilizzare tutti i territori che sono fissati a far parte dei territori amministrativi User sezione| +The AREACODE option is just like the Y option, except it is used to also filter out an entire area code in North America from being dialed, in this case using the 201XXXXXXX entry in the DNC list would block all calls to the 201 areacode if enabled|L-opzione AreaCode è proprio come l-opzione Y, tranne che viene utilizzato per filtrare inoltre un codice di tutta l-area del Nord America ad essere composto, in questo caso utilizzando la voce 201XXXXXXX nella lista DNC potrebbe bloccare tutte le chiamate al 201 AreaCode se abilitato| +If you have the active DNC option set to AREACODE then you can also use area code wildcard entries like this 201XXXXXXX to block all calls to the 201 areacode when enabled|Se hai attiva l-opzione DNC insieme a AreaCode allora è anche possibile utilizzare il codice voci area jolly come questo 201XXXXXXX per bloccare tutte le chiamate al 201, quando attivata AreaCode| +Carrier Description|Carrier Descrizione| +This is put in the comments of the asterisk conf files above the dialplan and account entries. Maximum 255 characters|Questo è messo nei commenti dei file asterisco conf sopra il dialplan e le voci del conto. Massimo 255 caratteri| +CAMPAIGNS ALLOWING THIS IN-GROUP|CAMPAGNE DI OFFRIRE IN QUESTO-GROUP| +This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|Questo è il segreto, o la password, per il server in automatico IAX-generated conf file per questo server su altri server. Limite è dash 20 caratteri alfanumerici e underscore accettato. Di default è di prova| +Delete Voicemail After Email|Eliminare Voicemail Dopo Email| +This optional setting allows you to have the voicemail messages deleted from the system after they have been emailed out. Default is N|Questa impostazione consente di avere i messaggi vocali eliminato dal sistema dopo che sono state inviate fuori. Di default è N| +Last Campaign Call Date|Last Campaign Call Data| +This is the last time that a call was handled by an agent logged into this campaign|Questa è l-ultima volta che una chiamata è stata gestita da un agente registrato in questa campagna| +Custom User Fields|Utente campi personalizzati| +These five fields can be used for various purposes, and they can be populated in the web form addresses and scripts as user_custom_one and so on|Questi cinque campi possono essere utilizzati per vari scopi, e possono essere organizzati in forma gli indirizzi web e script come user_custom_one e così via| +CRM Popup Login|CRM Popup Login| +If set to Y, the CRM Popup Address is used to open a new window on agent login to this campaign. Default is N|Se impostato a Y, il CRM Popup indirizzo viene utilizzato per aprire una nuova finestra il login agente per questa campagna. Di default è N| +CRM Popup Address|CRM Popup Indirizzo| +The web address of a CRM login page, it can have variables populated just like the web form address, with the VAR in the front and using --A--user_custom_one--B-- to define variables|L-indirizzo web di una pagina di login CRM, può avere variabili popolato come l-indirizzo web form, con i VAR nella parte anteriore e l-utilizzo - A user_custom_one - - B - per definire le variabili| +If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attempt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attempt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attempt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue, VIDPROMPT will prompt the caller for their ID number and will create a new lead record with the CallerID as the phone number and the ID as the Vendor ID, VIDPROMPTLOOKUP will attempt to lookup the ID in the entire system, VIDPROMPTLOOKUPRL will attempt to lookup the vendor ID by the ID in only one specified list, VIDPROMPTLOOKUPRC will attempt to lookup the vendor ID by the ID in all of the lists that belong to the specified campaign. Default is CID|Se IN_GROUP è selezionato come il percorso fatto, allora questa è la gestione delle chiamate metodo utilizzato per queste chiamate. CID aggiungerà un nuovo record di piombo, con tutte le chiamate utilizzando il CallerID come il numero di telefono, CIDLOOKUP cercherà di ricerca il numero di telefono dal CallerID in tutto il sistema, CIDLOOKUPRL cercherà di ricerca il numero di telefono dal CallerID in una sola lista specificata , CIDLOOKUPRC cercherà di ricerca il numero di telefono dal CallerID in tutte le liste che appartengono alla campagna di cui, più vicino è specificato per VICIDIAL Closer chiamate, ANI aggiungerà un nuovo record di piombo, con tutte le chiamate utilizzando il ANI, come il numero di telefono, ANILOOKUP cercherà di ricerca il numero di telefono dal ANI in tutto il sistema, ANILOOKUPRL cercherà di ricerca il numero di telefono dal ANI in una sola lista specificata, XDIGITID chiederà il chiamante per un codice X cifra prima della chiamata verrà messa in la coda, VIDPROMPT chiederà il chiamante per il loro numero ID e creerà un nuovo record di piombo con il CallerID come il numero di telefono e l-ID come il Vendor ID, VIDPROMPTLOOKUP tenterà di ricerca l-ID di tutto il sistema, VIDPROMPTLOOKUPRL tenterà di ricerca del fornitore ID dal ID in una sola lista specificata, VIDPROMPTLOOKUPRC tenterà di ricerca da parte del venditore ID l-ID in tutte le liste che appartengono alla campagna specificato. Di default è CID| +UNIFIED_CONTACT- This option will use the beta Vtiger 5.1.0 feature to search by phone number and bring up a search page in Vtiger|UNIFIED_CONTACT-Questa opzione si usa il beta Vtiger 5.1.0 funzionalità per la ricerca in base al numero di telefono e aprire una pagina di ricerca in Vtiger| +Timer Action|Timer azione| +This feature allows you to trigger actions after a certain amount of time. the D1 and D2 DIAL options will launch a call to the Transfer Conference Number presets and send them to the agent session, this is usually used for simple IVR validation AGI applications or just to play a pre-recorded message. WEBFORM will open the web form address. MESSAGE_ONLY will simply display the message that is in the field below. NONE will disable this feature and is the default|Questa funzione consente di attivare azioni dopo un certo periodo di tempo. D1 e D2 le opzioni di chiamata lancerà un appello per il trasferimento Conferenza preset Numero e li trasmette alla sessione di agente, questo è di solito utilizzato per semplici applicazioni IVR AGI convalida o semplicemente a svolgere un messaggio pre-registrato. FORM aprirà l-indirizzo web form. MESSAGE_ONLY semplicemente visualizzare il messaggio che è nel campo sottostante. NESSUNO sarà disabilitare questa funzione ed è il default| +Timer Action Message|Timer Action Message| +This is the message that appears on the agent screen at the time the Timer Action is triggered|Questo è il messaggio che appare sullo schermo agente al momento l-azione Timer è attivato| +Timer Action Seconds|Timer azione Secondi| +This is the amount of time after the call is connected to the customer that the Timer Action is triggered. Default is -1 which is also inactive|Questa è la quantità di tempo dopo la chiamata è collegata al cliente che l-azione del timer viene attivato. Predefinito è -1, che è anche attivo| +This setting will override the Campaign settings|Questa impostazione sovrascrive le impostazioni della campagna| +Start Call URL|Start Call URL| +This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. The Start URL does not work for Manual dial calls. Default is blank|Questo web indirizzo URL non è visto che l-agente, ma è chiamato ogni volta che una chiamata viene inviata ad un agente, se viene popolato. Utilizza le stesse variabili, come i campi del modulo web e script. Questo URL non può essere un percorso relativo. L-URL Start non funziona per le chiamate in linea manuale. Predefinita è vuota| +Dispo Call URL|Dispo Call URL| +This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank|Questo web indirizzo URL non è visto che l-agente, ma è chiamato ogni volta che una chiamata è dispositioned da un agente, se viene popolato. Utilizza le stesse variabili, come i campi del modulo web e script. dispo e talk_time sono le variabili che si possono utilizzare per recuperare l-agente definito disposizione per la chiamata e il tempo effettivo di conversazione in secondi della telefonata. Questo URL non può essere un percorso relativo. Predefinita è vuota| +Xfer-Conf Number Override|XFER-Conf Numero Override| +These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank|Questi cinque campi consentono di ignorare le impostazioni predefinite Conferenza di trasferimento del numero, quando la guida è da questo elenco. Predefinita è vuota| +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. If you want to allow Consultative Transfers, a fronter to a closer, have the agent use the CONSULTATIVE checkbox, which does not work for third party non-ViciDial consultative calls. For those just have the agent click the Dial With Customer button. Then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER, for instance if you want to do a call to a special IVR you have set to extension 83900 you would put AXFER83900 in the number-to-dial field|Questi quattro campi consentire di avere due insiemi di trasferimento Conferenza e preset DTMF. Quando la chiamata o la campagna viene caricata, lo script vicidial.php mostrerà due pulsanti per il trasferimento-frame conferenze e auto-popolano il numero-to-dial e l-invio campi DTMF quando viene premuto. Se si desidera consentire consultivo Trasferimenti, un Fronter a una più stretta, hanno l-agente di utilizzare la casella di controllo CONSULTIVO, che non funziona per i non di terze parti ViciDial chiamate consultivo. Per coloro che hanno il solo clic agente Dial Con il tasto del cliente. Poi l-agente può lasciare-3 VIE-CALL e passare alla loro chiamata successiva. Se si desidera consentire i trasferimenti Blind dei clienti di uno script VICIDIAL AGI per la registrazione o un IVR, poi AXFER posto nel numero di-to-dial campo. È inoltre possibile specificare l-estensione personalizzata dopo la AXFER, ad esempio se si vuole fare una chiamata ad un IVR speciale è stato impostato per l-estensione 83.900 si metterebbe AXFER83900 del numero-to-dial campo| diff --git a/agc_2-X/branches/agc_2.2.0/translations/nl_language.txt b/agc_2-X/branches/agc_2.2.0/translations/nl_language.txt new file mode 100644 index 00000000..059ed4bd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/nl_language.txt @@ -0,0 +1,523 @@ +# nl_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=nl +# current languages in the file: +# - English - (en) no alterations +# - Dutch - (nl) first column +***LANGUAGES*** +en-English|nl-Dutch| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"JAN"| +"FEB"|"FEB"| +"MAR"|"MAR"| +"APR"|"APR"| +"MAY"|"MEI"| +"JUN"|"JUN"| +"JLY"|"JUL"| +"AUG"|"AUG"| +"SEP"|"SEP"| +"OCT"|"OKT"| +"NOV"|"NOV"| +"DEC"|"DEC"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Inglés| +Spanish|Español| +French|Francés| +German|Alemán| +Italian|Italiano| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF.gif| +vdc_LB_pause.gif|vdc_LB_pause.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF.gif| +vdc_LB_resume.gif|vdc_LB_resume.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF.gif| +vdc_LB_webform.gif|vdc_LB_webform.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Je ben nu uitgelogd. Bedankt| +astGUIclient web-client VERSION|astGUIclient web-client VERSIE| +astGUIclient web client|astGUIclient web client| +VICIDIAL web client|VICIDIAL web client| +VICIDIAL web-client version|VICIDIAL web-client versie| +You can only monitor Zap channels|Je kunt alleen Zap kanalen monitoren| +Stop Record|Stop opnemen| +you are logged into this phone|je ben ingelogd in deze telefoon| +Back to Main Window|Terug naar hoofdscherm| +LIVE CALLS ON THIS PHONE|LIVE GESPREKKEN OP DEZE TELEFOON| +LIVE CALLS IN THIS CONFERENCE|LIVE GESPREKKEN IN DEZE CONFERENTIE| +LIVE CALL TRANSFER|LIVE GESPREK TRANSFER| +CLIENT CHANNEL|CLIENT KANAAL| +REMOTE CHANNEL|REMOTE KANAAL| +CLICK HERE TO LOG IN AGAIN|KLIK HIER OM OPNIEUW IN TE LOGGEN| +ACTIVE DISPLAY PAUSED|AKTIEVE DISPLAY GEPAUZEERD| +Main Panel|Hoofd Paneel| +Active Lines Panel|Actieve lijnen paneel| +Conferences Panel|Conference paneel| +Check Voicemail|Check voicemail| +Live Call|Live Gesprek| +Hangup Trunk|Trunk Ophangen| +Hijack Trunk|Trunk Kapen| +Listen Trunk|Beluisten Trunk| +Active Local Menu|Aktief Lokaal Menu| +Hangup Local|Openhangen Lokaal| +Hijack Local|Kapen Lokaal| +Listen Local|Lokaal Beluisteren| +Channel to be transferred|Kanaal om te transferen| +Extensions Menu|Extentie Menu| +Send to selected extension|Stuur naar geselecteerde extentie| +Send to selected vmail box|Stuur naar geselecteerde vmail box| +Send to this number|Stuur naar dit nummer| +click on a number below to send to a conference|klik op een onderstaand nummer om naar een conferentie te sturen| +Send my channel too|Verstuur mijn kanaal ook| +Conferences Menu|Conferentie Menu| +LOCAL Extensions Dial|Bel Lokale Extenties| +Phone calling from|Telefoon belt van| +Call selected extension|Bel geselecteerde extentie| +Call selected vmail box|Bel geselcteerde voicemail| +LOCAL DIAL EXTENSIONS|LOKALE BEL EXTENTIES| +OUTBOUND CALLS|UITGAANDE GESPREKKEN| +INBOUND CALLS|INKOMENDE GESPREKKEN| +Refresh rate|Ververs ratio| +MANUAL DIAL|HANDMATIG BELLEN| +CALL DATE\/TIME|DATUM\/TIJD GESPREK| +LOCAL HANGUP|OPHANGEN LOKAAL| +PARKED CALLS|PARKEER GESPREKKEN| +PARKED BY|GEPARKEERD DOOR| +PARKED TIME|PARKEER TIJD| +Registered to|Gegegistreerd voor| +Enter Conference|Open Conferentie| +Dial From Conf|Bel Van Conf| +Active Extensions|Aktieve Extenties| +Outside Lines|Buiten Lijnen| +Local Extensions|Lokale Extenties| +Data Goes Here|Data Komt Hier| +Trunk Action|Trunk Actie| +Local Action|Lokale Actie| +Conferences List|Conferentie Lijst| +Click on a conference room number on the left for info on that conference|Klik op een conferentie nummer aan de linkerkant voor informatie over die conferentie| +List Display|Toon Lijst| +Live Extensions|Live Extenties| +Busy Extensions|Bezette Extenties| +Outside Lines|Buiten Lijnen| +script runtime|script runtime| +Call Log Display|Gesprekken Log Display| +is not valid|is niet geldig| +or protocol|of protocol| +Conf Extension Check|Conf Extentie Controle| +has been registered to|is geregistreer aan| +LIVE INBOUND CALL|LIVE BINNENKOMEND GESPREK| +Number Dialed|Nummer Gedraaid| +SEND TO MY VOICEMAIL|STUUR NAAR MIJN VOICEMAIL| +Live Extension Check|LIve Extentie Controle| +Manager Send|Manager Send| +command not inserted|commando niet uitgevoerd| +command sent for|commando verstuurt| +One of these variables|Een van deze variabelen| +must be greater than 2 characters|moet groter zijn dan 2 karakters| +must be greater than 14 characters|moet groter zijn dan 14 karakters| +must be set|moet gezet zijn| +not sent|niet verstuurd| +Cannot find empty conference|Kan geen lege conferentie vinden| +is not live|is niet live| +RECORDING WILL LAST UP TO 60 MINUTES|OPNEMEN DUURT TOT 60 MINUTEN| +Parked Calls Display|Geparkeerde Gesprekken Tonen| +Database Query Script|Database Query Script| +Group Choice|Groep Keuze| +has been registered to user|is geregistreerd voor gebruiker| +HOPPER EMPTY|HOPPER LEEG| +LOG NOT ENTERED|LOG NIET INGEVOERD| +has been changed to|is veranderd naar| +is now in status|is nu in status| +Voicemail Check|Voicemail Check| +voicemail box|Voicemail Box| +Re-Login|Opnieuw inloggen| +User Password|Gebruiker Wachtwoord| +User Login|Gebruiker Inloggen| +Phone Login|Telefoon Inloggen| +Phone Password|Telefoon Wachtwoord| +Campaign not active, please try again|Campagne is niet actief, probeer het aub nogmaals| +Login incorrect, please try again|Ongeldige login, probeer het nog eens| +Campaign Login|Campagne Inloggen| +Sorry, your phone login and password are not active in this system, please try again|Sorry, je telefoon login en wachtwoord zijn niet acitef in dit systeem, probeer het nogmaals| +leads left to call in hopper|Leads nog te bellen in de hopper| +CAMPAIGN CUSTOM PARKING|CAMPAGNE CUSTOM PARKEREN| +CAMPAIGN DEFAULT PARKING|CAMPAGNE DEFAULT PARKEREN| +CAMPAIGN CUSTOM WEB FORM|CAMPAGNE CUSTOM WEB FORMULIER| +CAMPAIGN DEFAULT WEB FORM|CAMPAGNE DEFAULT WEB FORMULIER| +CAMPAIGN ALLOWS CLOSERS|CAMPAGNE STAAT CLOSERS TOE| +CAMPAIGN ALLOWS NO CLOSERS|CAMPAGNE STAAT GEEN CLOSERS TOE| +USING PREVIOUS MEETME ROOM|GEBRUIK VORIGE MEETME KAMER| +USING NEW MEETME ROOM|GEBRUIK NIEUWE MEETME KAMER| +old QUEUE and INCALL reverted list|oude QUEUE en INKOMEND gedraaide list| +old QUEUE and INCALL reverted hopper|oude QUEUE en INKOMEND gedraaide hopper| +old vicidial_live_agents records cleared|oude vicidia_live_agents records opgeschoond| +campaign is set to auto_dial_level|campagne staat op aut_dial_level| +new vicidial_live_agents record inserted|nieuwe vicidial_live_agents record toegevoegd| +campaign is set to manual dial|campagne staat op handmatig bellen| +Sorry, there are no leads in the hopper for this campaign|Sorry, er zijn geen leads in de hopper voor deze campagne| +Dial Next Number|Bel Volgend Nummer| +LIVE CALLS IN YOUR SESSION|LIVE GESPREKKEN IN JOUW SESSIE| +Stop Recording|Stop Opnemen| +Start Recording|Start Opnemen| +Transfer number must have more than 1 digit|Transfer nummer moet meer dan 1 cijfer bevatten| +Grab Parked Call|Oppakken Geparkeerd Gesprek| +Park Call|Parkeer Gesprek| +Waiting for Ring|Wachten op Bellen| +Called 3rd party|3rd party gebeld| +LEAVE 3-WAY CALL|VERLAAT 3-WAY GESPREK| +Dial With Customer|Bel Met Klant| +Park Customer Dial|Parkeer Klant Gesprek| +Hangup Xfer Line|Ophangen Xfer Lijn| +Hangup Both Lines|Ophangen Beide Lijnen| +Hangup Customer|Ophangen Klant| +Transfer - Conference|Transfer- Conferentie| +LOCAL CLOSER|LOKALE CLOSER| +INTERNAL CLOSER|INTERNE CLOSER| +Dial Blind Transfer|Bel Blinde Transfer| +Dial timed out, contact your system administrator|Bellen timed out, neem contact op met je system administrator| +No more leads in the hopper for campaign|Geen leads meer in de hopper voor campagne| +Web Form|Web Formulier| +You Must Select a Disposition|Je Moet een Dispositie Kiezen| +GROUPS NOT SELECTED|GROEP NIET GESELECTEERD| +SELECTED GROUPS|GESELECTEERDE GROEPEN| +You cannot log out during a Dial attempt|Je kunt niet uitloggen tijdens een Belpoging| +Wait 50 seconds for the dial to fail out if it is not answered|Wacht 50 seconden tot het gesprek faalt of niet beantwoord wordt| +STILL A LIVE CALL! Hang it up then you can log out|IN EEN LIVE GESPREK! Hang op, dan kun je uitloggen| +Hide conference call channel information|Verberg conferentie gesprek kanaal informatie| +Show conference call channel information|Toon conferentie gesprek kanaal informatie| +Logged in as User|Ingelogged als| +Noone is in your session|Er is niemand in jouw sessie| +Customer has hung up|Klant heeft opgehangen| +End-of-call Disposition Selection|Einde gesprek Dispositie Selectie| +CLOSER INBOUND GROUP SELECTION|CLOSER INKOMENDE GROEP SELECTIE| +Closer Inbound Group Selection|Close Inkomende Groep Selectie| +BLENDED CALLING|BLENDED BELLEN| +outbound activated|outbound geactiveerd| +Preview the Lead then|Preview de Lead en| +Lead was not reverted, there was an error|Lead was niet gedraaid, er was een fout| +call was not placed, there was an error|gesprek is niet tot stand gebracht, er was een fout| +Number to call|Nummer om te bellen| +Customer Information|Klant Informatie| +Lead Dispositioned As|Klant Gedispotioneerd Als| +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|Alle aanpassingen gedaan aan onderstaande klant informatie wordt niet doorgevoerd. Je moet de klant informatie aanpassen VOORDAT je VOLGENDE LEAD kiest| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Wanneer aktief, kies de corresponderende toets op het toetsenbord, om dit geprek te dispositioneren. Het gesprek wordt opgehangen en automatisch gedispositioneerd| +Disposition Hot Keys|Dispositie Hot Keys| +Cust Time|Tijd| +RECORD ID|RECORD ID| +RECORDING FILE|OPNEEM BESTAND| +HOT KEYS ACTIVE|HOT KEYS AKTIEF| +HOT KEYS INACTIVE|HOT KEYS NIET AKTIEF| +DIAL OVERRIDE|DIAL OVERRIDE| +SKIP LEAD|LEAD OVERSLAAN| +DIAL LEAD|BEL LEAD| +LEAD PREVIEW|PREVIEW LEAD| +PAUSE AGENT DIALING|PAUZEER BELLEN| +DISPOSITION CALL|DISPOSITIONEER GESPREK| + session ID| sessie ID| + to campaign| naar campagne| +Select a CallBack Date|Selecteer een terugbel datum| + maximize | maximaliseer | + minimize | minimaliseer | +You must choose a date|Je moet een datum kiezen| +Select a Date Below|Selecteer een dautm| +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|Klik op een terugbeller om de klant nu terug te bellen. Als je hierop klikt, wordt deze verwijderd uit de lijst| +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|Als je een nummer belt en NIET wilt dat deze als nieuwe lead wordt toegevoegd, vul dan het exacte nummer in, in het Dial Override veld. Om op te hangen, dien je GESPREKKEN IN DEZE SESSIE te open, onderaan het scherm, en daar op te hangen door te klikken op de kanaal link| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|JE KUNT GEEN TERUGBELLER OF HANDMATIGE BELLER OVERSLAAN, JE MOET DE LEAD BELLEN| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|JE MOET GEPAUZEERD ZIJN OM HANDMATIG EEN NIEUWE LEAD TE BELLEN IN AUTO-DIAL MODUS| +Enter information below for the new lead you wish to call|Voer de informatie voor de nieuwe lead hieronder in| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|JE MOET GEPAUZEERD ZIJN OM TERUGBELLERS TE BEKIJKEN IN AUTO-DIAL MODUS| +Note: all new manual dial leads will go into list 999|Let op: alle nieuwe handmatig te bellen leads gaan in lijst 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|JE HEBT GEEN TOESTEMMING OM EEN GESPREK DOOR TE SCHAKELEN| +will be added to the beginning of this number|wordt toegevoegd aan het begin van dit nummer| +This is usually a 1 in the USA-Canada|Dit is normaal gesproken een 1 in de USA en Canada| +NEW MANUAL DIAL LEAD FOR|NIEUWE HANDMATIGE LEAD VOOR| +Finish and Disposition Call|Afsluiten en Dispositioneren Gesprek| +10 digits max - digits only|10 cijfers maximaal - alleen cijfers| +Note: a dial prefix of|Let op: een voorloopnummer van| +Hangup Again|Opnieuw Ophangen| +Go Back|Ga Terug| +Call Agent Again|Bel Agent| +MY CALLBACK ONLY|ALLEEN MIJN TERUGBELLER| +NO ACTIVE CALLBACKS|GEEN AKTIEVE TERUGBELLERS| +ACTIVE CALLBACKS|AKTIEVE TERUGBELLERS| +CALLBACKS FOR AGENT|TERUGBELLERS VOOR AGENT| +Dial Code:|Dial Code:| +Dial Override|Dial Override| +digits only please|alleen cijfers aub| +Dial Now|Bel Nu| +CB Comments|CB Commentaar| +Title|Titel| +Your Status|Jouw Status| + STATUS| STATUS| +RESET|RESET| +CLEAR FORM|OPSCHONEN| +SUBMIT|OPSLAAN| +Incoming|Inkomend| +Calling|Bellen| +Called|Gebeld| +Campaign|Campagne| +Status|Status| +Inserted|Ingevoerd| + seconds|seconden| +HELP|HELP| +Login|Inloggen| +User|Gebruiker| +Password|Wachtwoord| +VERSION|VERSIE| +BUILD|BUILD| +Server|Server| +RECORD|OPENEMEN| +HANGUP|OPHANGEN| +>XFER|>XFER| +PARK|PARKEER| +IN-NUMBER|INKOMEND-NUMMER| +NUMBER|NUMMER| +LENGTH|LENGTE| +CALLERID|CALLERID| +CallerID|CallerID| + CALL| BEL| +PICKUP|OPPAKKEN| +CONFERENCE|CONFERENTIE| +Refresh|Ververs| +Send DTMF|Stuur DTMF| +ORDER|SORTEER| + on | op | +LOGOUT|UITLOGGEN| +Channel|Kanaal| +Extensions|Extenties| +Conferences|Conferenties| +Conference|Conferentie +Recording|Opnemen| +Record|Opnemen| +Welcome|Welkom| +VOICEMAIL|VOICEMAIL| + NEW| NIEUW| + OLD| OUD| +STOP|STOP| +START|START| + Pause | Pauze | +Resume|Doorgaan| +Faster|Sneller| +Slower|Langzamer| +Initializing|Initialiseren| +Invalid|Foutief| +Username|Gebruikersnaam| +CUSTOM|CUSTOM| +Notes|Opmerkingen| +First|Eerste| +MI: |MI: | +Last|Laatste| +Address|Adres| +City|Stad| +State|Staat| +PostCode|Postcode| +Province|Provincie| +Vendor ID|Vendor ID| +DialCode|BelCode| +Alt. Phone|Alt. Tel.| +Show|Toon| +Email|Email| +Comments|Opmerkingen| +REFRESH|VERVERS| +ALT PHONE DIAL|BEL ALT. TEL.| +MAIN PHONE|HOOFD TEL.| +ALT PHONE|ALT TEL.| +ADDRESS3|ADRES3| +FINISH LEAD|AFRONDEN LEAD| +Dial Alt Phone Number|Bel Alt. Tel. Nummer| +Phone|Telefoon| + DIAL| DIAL| +SUBMIT FAVORITES CHANGES - requires logout|OPSLAAN FAVORIET AANPASSINGEN - opnieuw inloggen| +BACK TO MAIN WINDOW - ignore changes made|TERUG NAAR HOOFD SCHERM - negeer gemaakte aanpassingen| +AVAILABLE EXTENSIONS|BESCHIKBARE EXTENTIES| + edit| bewerk| + FAVORITES| FAVORIETEN| +### END translation phrases through 1.1.11 release ### +Search Existing Leads|Zoek Bestaande Leads| +This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Deze optie, als geselecteerd, probeert een telefoonnummer te vinden voordat deze als nieuwe lead wordt toegevoegd| +Finish Wrapup and Move On|Wrapup afmaken en doorgaan| +seconds remaining in wrapup|seconden over in wrapup| +Call Wrapup:|Call Wrapup:| +### months of the year for CallBack date select screen ### +January|Januari| +Frebruary|Februari| +March|Maart| +April|April| +May|Mei| +June|Juni| +July|Juli| +August|Agustus| +September|September| +October|Oktober| +November|November| +December|December| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Vorige Callback Informatie| +Last Call: |Laatste Gesprek:| +CallBack: |Terugbeller:| +Agent: |Agent:| +Comments: |Opmerkingen:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|VOLUME| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|SNEL BELLEN| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|JE MOET EEN NUMMER EN BEL CODE INVOEREN ALS JE SNEL WILT BELLEN| + SELECT A PAUSE CODE :| SELECTEER EEN PAUZE CODE :| +ENTER A PAUSE CODE|VOER EEN PAUZE CODE IN| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|JE MOET GEPAUZEERD ZIJN OM EEN PAUZE CODE IN TE VOEREN TIJDENS AUTO-DIAL| +Your session has been disabled|Jouw sessie is disabled| +Gender: |Geslacht: | +Date of Birth: |Geboortedatum: | +YOU MUST BE PAUSED TO CHANGE GROUPS|JE MOET GEPAUZEERD ZIJN OM VAN GROEP TE WISSELEN| +Calls in Queue:|Gesprekken in Wachtrij:| + Timeclock| Tijdslot| +The user and password you entered are not active in the system|De gebruiker en wachtwoord die je hebt ingevoerd zijn niet actief in het systeem| +Please try again|Probeer aub nogmaals| +You cannot log in or out within 30 seconds of your last login or logout|Je kunt niet inloggen binnen 30 seconden na je laatste login of log-uit| +You have now logged-out|Je ben nu uitgelogd| +You logged out at |Je bent ingelogd op | +Amount of time you were logged-in: |Tijd die je ingelogd bent geweest: | +ERROR: timeclock log entry already made: |FOUT: tijdslot log toevoegin reeds gemaakt: | +BACK to Agent Login Screen|TERUG naar Agent Login Scherm| +BACK to Administration|TERUG naar Administratie| +BACK to Welcome Screen|TERUG naar Welkomst Scherm| +Time since you were last logged-in: |Tijd sinds je laatste login: | +You last logged-out at: |Je laatste log-uit was om: | +Click LOGIN below to log-in|Klik INLOGGEN om in te loggen| +Amount of time you have been logged-in: |Tijd dat je bent ingelogged| +You logged-in at:|Je bint ingelogged om:| +Click LOGOUT below to log-out|Klik UITLOGGEN om uit te loggen| +Undefined|Ongedefinieerd| +This phone number is not in the campaign lists|Dit telefoon nummer komt niet voor in de campagne lijst| +Unspecified error|Ongedifinieerde fout| +Extended Alt Phone Information: |Uitgebreide Alt. Tel. Informatie| +ALT DIAL NUMBER:|ALT TEL. NUMMER:| +Phone Code and Number:|Telefoon Code en Nummer:| +Notes: |Opmerkingen: | +Active: |Aktief: | +Alt Count: |Alt Aantal| +Change this phone number to INACTIVE|Pas nummer aan naar NIET AKTIEF| +Change this phone number to ACTIVE|Pas nummer aan naar AKTIEF| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|JE MOET EERS INLOGGEN IN HET TIJDSLOT| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Geslacht:| +Date of Birth: |Geboortedatum:| +YOU MUST BE PAUSED TO CHANGE GROUPS|YOU MUST BE PAUSED TE WIJZIGEN GROEPEN| +Calls in Queue:|Gesprekken in wachtrij:| + Timeclock|Time klok| +The user and password you entered are not active in the system|De gebruikersnaam en het wachtwoord die u hebt ingevoerd, zijn niet actief in het systeem| +Please try again|Probeer het opnieuw| +You cannot log in or out within 30 seconds of your last login or logout|U kunt niet inloggen of binnen 30 seconden van uw laatste login of afmelden| +You have now logged-out|U bent nu ingelogd-out| +You logged out at |U wordt afgemeld bij| +Amount of time you were logged-in: |Hoeveelheid tijd die je ingelogd-in:| +ERROR: timeclock log entry already made: |FOUT: time klok logboekvermelding al gedaan:| +BACK to Agent Login Screen|BACK om Agent Login Scherm| +BACK to Administration|BACK om administratie| +BACK to Welcome Screen|Terug naar de welkom-scherm| +Time since you were last logged-in: |Tijd sinds de vorige login-in:| +You last logged-out at: |U voor het laatst ingelogd op:| +Click LOGIN below to log-in|Klik op LOGIN onderstaande log-in| +Amount of time you have been logged-in: |Hoeveel tijd u heeft ingelogd-in:| +You logged-in at:|U ingelogd op:| +Click LOGOUT below to log-out|Klik hieronder om LOGOUT log-out| +Undefined|Undefined| +This phone number is not in the campaign lists|Dit telefoonnummer is niet in de campagne lijsten| +Unspecified error|Onbekende fout| +Extended Alt Phone Information: |Uitgebreid Alt Telefoon informatie:| +ALT DIAL NUMBER:|ALT-nummer:| +Phone Code and Number:|Telefoon code en nummer:| +Notes: |Opmerkingen:| +Active: |Actief:| +Alt Count: |Alt Count:| +Change this phone number to INACTIVE|Wijzig dit telefoonnummer INACTIEVEN| +Change this phone number to ACTIVE|Wijzig dit telefoonnummer WERKZAME| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|U moet zich aanmelden bij de time klok EERSTE| +There is a time synchronization problem with your system, please tell your system administrator|Er is een tijd synchronisatie probleem met uw systeem, kunt u uw systeembeheerder| +Preview Call|Preview Call| +SELECT A GROUP ALIAS|KIES EEN GROEP ALIAS| +Group Alias Selection|Groep Alias Selectie| +Click Here to Choose a Group Alias|Klik hier om te kiezen voor een groep Alias| +Group Alias|Groep Alias| +ERROR: There are no Shifts enabled for your user group|FOUT: Er zijn geen Verschuivingen ingeschakeld voor uw gebruikers-groep| +ERROR: You are not allowed to log in outside of your shift|FOUT: U bent niet toegestaan om in te loggen buiten uw verschuiving| +MANAGER OVERRIDE|MANAGER BOVEN| +Your Shift is over or has changed, you have been logged out of your session|Uw Shift is of is veranderd, je bent afgemeld bij de sessie| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|U bent niet toegestaan te bellen naar andere agent sessies| +QUICK TRANSFER|Snelle overdracht| +Other Agents Status|Andere Agenten Status| +Available Agents Transfer|Beschikbaar Transfer Agents| +Show Calls In Queue|Toon roept in de wachtrij| +Calls In Queue|Roept in de wachtrij| +Hide Calls In Queue|Verberg roept in de wachtrij| +Calls in Queue View Disabled for this campaign|Roept in wachtrij Bekijk een handicap voor deze campagne| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|JE MOET worden onderbroken te grijpen ROEPT in de wachtrij| +Manager |Manager| +has selected your in-group choices|heeft gekozen uw in-groep keuzes| +CONSULTATIVE|ADVIESGROEP| +Close Message|Close Message| +TIMER NOTIFICATION|TIMER AANMELDING| diff --git a/agc_2-X/branches/agc_2.2.0/translations/pl_language.txt b/agc_2-X/branches/agc_2.2.0/translations/pl_language.txt new file mode 100644 index 00000000..f7d695ac --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/pl_language.txt @@ -0,0 +1,491 @@ +# pl_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: ./config.pl --language=es +# current languages in the file: +# - English - (en) no alterations +# - Polish - (pl) first column +***LANGUAGES*** +en-English|pl-Polski| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"STY"| +"FEB"|"LUT"| +"MAR"|"MAR"| +"APR"|"KWI"| +"MAY"|"MAJ"| +"JUN"|"CZE"| +"JLY"|"LIP"| +"AUG"|"SIE"| +"SEP"|"WRZ"| +"OCT"|"PAŹ"| +"NOV"|"LIS"| +"DEC"|"GRU"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Angielski| +Spanish|Hiszpański| +French|Francuski| +German|Niemiecki| +Italian|Włoski| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF_pl.gif| +agc_live_call_ON.gif|agc_live_call_ON_pl.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_pl.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_pl.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall_pl.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_pl.gif| +vdc_LB_pause.gif|vdc_LB_pause_pl.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF_pl.gif| +vdc_LB_resume.gif|vdc_LB_resume_pl.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_pl.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording_pl.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording_pl.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf_pl.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_pl.gif| +vdc_LB_webform.gif|vdc_LB_webform_pl.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_pl.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_pl.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_pl.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Wylogowałeś się. Do zobaczenia| +astGUIclient web-client VERSION|astGUIclient VERSION| +astGUIclient web client|klient astGUIclient| +VICIDIAL web client|klient VICIDIAL| +VICIDIAL web-client version|wersja klienta VICIDIAL| +You can only monitor Zap channels|Możesz tylko monitorować kanały Zap| +Stop Record|Zakończ nagrywanie| +you are logged into this phone|podłączyłeś się do telefonu| +Back to Main Window|Wróć do Głównego okna| +LIVE CALLS ON THIS PHONE|AKTYWNE ROZMOWY Z TEGO TELEFONU| +LIVE CALLS IN THIS CONFERENCE|AKTYWNE ROZMOWY W TEJ KONFERENCJI| +LIVE CALL TRANSFER|AKTYWNA ROZMOWA PRZENIESIONA| +CLIENT CHANNEL|KANAŁ KLIENCKI| +REMOTE CHANNEL|KANAŁ ZDALNY| +CLICK HERE TO LOG IN AGAIN|KLINKNIJ TU, ABY PONOWNIE ZALOGOWAĆ SIĘ| +ACTIVE DISPLAY PAUSED|AKTYWNE WYŚWIETLANIE WRZYMANE| +Main Panel|Główny panel| +Active Lines Panel|Panel aktywnych lini| +Conferences Panel|Panel konferencyjny| +Check Voicemail|Sprawdź pocztę głosową| +Live Call|Aktywna rozmowa| +Hangup Trunk|Rozłącz międzymiastową| +Hijack Trunk|Przejmij międzymiastową| +Listen Trunk|Odsłuchaj międzymiastową| +Active Local Menu|Manu aktywnych lokalnych| +Hangup Local|Rozłącz lokalną| +Hijack Local|Przejmij lokalną| +Listen Local|Podsłuchaj lokalną| +Channel to be transferred|Kanały do przeniesienia| +Extensions Menu|Menu rozszerzeń| +Send to selected extension|Przełącz do wybranego numeru wewnętrznego| +Send to selected vmail box|Przełącz do poczty głosowej| +Send to this number|Przełącz do numeru| +click on a number below to send to a conference|wybierz poniższy numer w celu przełączenia do konferencji| +Send my channel too|Przełącz również mój kanał| +Conferences Menu|Menu konferencji| +LOCAL Extensions Dial|Wybieranie numerów wewnętrznych| +Phone calling from|Połączenie przychodzące z| +Call selected extension|Połącz z wybranym numerem wewnętrznym| +Call selected vmail box|Połącz z wybraną skrzynką głosową| +LOCAL DIAL EXTENSIONS|NUMERY WEWNĘTRZNE| +OUTBOUND CALLS|ROZMOWY WYCHODZĄCE| +INBOUND CALLS|ROZMOWY PRZYCHODZĄCE| +Refresh rate|Szybkość odswieżania| +MANUAL DIAL|WYBIERANIE RĘCZNE| +CALL DATE/TIME|POŁĄCZENIE DATA/CZAS| +LOCAL HANGUP|ROZŁĄCZ| +PARKED CALLS|ZAWIESZONE ROZMOWY| +PARKED BY|ZAWIESZONE PRZEZ| +PARKED TIME|CZAS ZAWIESZENIA| +Registered to|Zarejestrowany na| +Enter Conference|Dołącz do konferencji| +Dial From Conf|Rozmowa z konferencji| +Active Extensions|Aktywne numery wewnętrzne| +Outside Lines|Linie zewnętrzne| +Local Extensions|Numery wewnętrzne| +Data Goes Here|Data tutaj| +Trunk Action|Operacje na międzymiastowych| +Local Action|Operacje na lokalnych| +Conferences List|Lista konferencji| +Click on a conference room number on the left for info on that conference|Wybierz numer konferencji w celu uzyskania o niej informacji| +List Display|Listy| +Live Extensions|Aktywne numery wewnętrzne| +Busy Extensions|Zajęte numery wewnętrzne| +Outside Lines|Linie zewnętrzne| +script runtime|czas działania skyptu| +Call Log Display|Rejestr rozmów| +is not valid|nie jest prawidłowy| +or protocol|lub protokół| +Conf Extension Check|Sprawdzanie numeru wewnętrznego konferencji| +has been registered to|został zarejestrowany| +LIVE INBOUND CALL|AKTYWNA PRZYHODZĄCA ROZMOWA| +Number Dialed|Wybierany numer| +SEND TO MY VOICEMAIL|PRZEŚLIJ DO MOJEJ POCZTY GŁOSOWEJ| +Live Extension Check|Sprawdzanie aktywnych numerów wewnętrznych| +Manager Send|Wyślij do zarządzania| +command not inserted|komenda nie wstawiona| +command sent for|komenda wysłana do| +One of these variables|Jedna z tych zmiennych| +must be greater than 2 characters|musi mieć więcej niż 2 znaki| +must be greater than 14 characters|musi mieć więcje niż 14 znaków| +must be set|musi być ustawiony| +not sent|nie wysłano| +Cannot find empty conference|Nie mogę znaleźć wolnej konferencji| +is not live|nie jest aktywna| +RECORDING WILL LAST UP TO 60 MINUTES|NAGRYWANIE BĘDZIE TRWAĆ MAKSYMALNIE 60 MINUT| +Parked Calls Display|Zawieszone rozmowy| +Database Query Script|Skrypt zapytań do bazy danych| +Group Choice|Wybór grupowy| +has been registered to user|został zarejestrowny dla użytkownika| +HOPPER EMPTY|Zasobnik pusty| +LOG NOT ENTERED|Dziennik nie zapisany| +has been changed to|zmieniono na| +information has been updated|informacje zostały zaktualizowane| +is now in status|ma statusie| +Voicemail Check|Sprawdzanie poczty głosowej| +voicemail box|skrzynka poczty głosowej| +Re-Login|Powtórne zalogowanie| +User Password|Hasło użytkownika| +User Login|Login użytkownika| +Phone Login|Login telefonu| +Phone Password|Hasło telefonu| +Campaign not active, please try again|Kampania nie aktywna, spróbuj jeszcze raz| +Login incorrect, please try again|Login nie aktywny, spróbuj jeszcze raz| +Campaign Login|Logowanie do kampani| +Sorry, your phone login and password are not active in this system, please try again|Login Twojego telefonu lub hasło są nieaktywne w tym systememie, spróbuj jeszcze raz| +leads left to call in hopper|pozostałych kontaktów oczekujących wykonania połączeń w zasobniku| +CAMPAIGN CUSTOM PARKING|KAMPANIA- ZAWIESZANIE ZDEFINIOWANE PRZEZ UŻYTKOWNIKA| +CAMPAIGN DEFAULT PARKING|KAMPANIA- DOMYŚLNE ZAWIESZANIE| +CAMPAIGN CUSTOM WEB FORM|KAMPANIA- FORMULARZ WWW ZDEFINIOWANY PRZEZ UŻYTKOWNIKA| +CAMPAIGN DEFAULT WEB FORM|KAMPANIA- DOMYŚLNY FORMULARZ WWW| +CAMPAIGN ALLOWS CLOSERS|KAMPANIA ZEZWALA NA FINALIZUJĄCYCH| +CAMPAIGN ALLOWS NO CLOSERS|KAMPANIA NIE ZEZWALA NA FINALIZUJĄCYCH| +USING PREVIOUS MEETME ROOM|UŻYWAM POPRZEDNIEGO MEETME| +USING NEW MEETME ROOM|UŻYWAM NOWEGO MEETME| +old QUEUE and INCALL reverted list|stara Kolejka i Aktulanie wybierane numery powróciły na listę| +old QUEUE and INCALL reverted hopper|stara Kolejka i Aktualnie wybrane numery powróciły do zasobnika| +old vicidial_live_agents records cleared|stare rekordy vicidial_live_agents zostały wyczyszczone| +campaign is set to auto_dial_level|kampania jest ustawiona na auto_dial_level| +new vicidial_live_agents record inserted|nowy rekord vicidial_live_agents wstawiony| +campaign is set to manual dial|kampania ustawiona na ręczne wybieranie| +Sorry, there are no leads in the hopper for this campaign|Niestety, w zasobniku nie ma kontaktów oczekujących wykonania połączeń dla tej kampanii| +Dial Next Number|Wybierz kolejny numer| +LIVE CALLS IN YOUR SESSION|AKTYWNE ROZMOWY W TWOJEJ SESJI| +Stop Recording|Zakończ nagrywanie| +Start Recording|Rozpocznij nagrywanie| +Transfer number must have more than 1 digit|Numer przekierowania musi mieć więcej niż 1 cyfrę| +Grab Parked Call|Przejmij zawieszoną rozmowę| +Park Call|Zawieś rozmowę| +Waiting for Ring|Czeka na dzwonek| +Called 3rd party|Zadzwoniono do trzeciej strony| +LEAVE 3-WAY CALL|WYJDŹ Z ROZMOWY 3-STRONNEJ| +Dial With Customer|Połącz z klientem| +Park Customer Dial|Zawieś połączenie z klientem| +Hangup Xfer Line|Rozłącz linię transferu| +Hangup Both Lines|Rozłącz obie linie| +Hangup Customer|Odłącz kilenta| +Transfer - Conference|Transfer - Konferencja| +LOCAL CLOSER|LOKALNY FINALIZUJĄCYCH| +INTERNAL CLOSER|WEWNĘTRZNY FINALIZUJĄCYCH| +Dial Blind Transfer|Wybierz numer do nieweryfikowanego transferu| +Dial timed out, contact your system administrator|Minął czas wybierania, skontaktuj się z administratorem| +No more leads in the hopper for campaign|W zasobniku nie ma już więcej konaktów do wykonania połączeń dla tej kampanii| +Web Form|Web Formularz| +You Must Select a Disposition|Musisz wybrać rezultat rozmowy| +GROUPS NOT SELECTED|GRUPY NIE WYBRANE| +SELECTED GROUPS|WYBRANE GRUPY| +You cannot log out during a Dial attempt|Nie możesz wylogować się w trakcie dokonywania połączenia| +Wait 50 seconds for the dial to fail out if it is not answered|Poczekaj 50 sekund aby, w przypadku nieodebrania, połączenie nie doszło do skutku| +STILL A LIVE CALL! Hang it up then you can log out|JESTEŚ W TRAKCIE ROZMOWY! Rozłącz się by móc się wylogować| +Hide conference call channel information|Ukryj informacje o kanałach konferencyjnych| +Show conference call channel information|Pokaż informacje o kanałach konferencyjnych| +Logged in as User|Zalogowany jako| +Noone is in your session|Nikt nie uczestniczy w Twojej sesji| +Customer has hung up|Klient sie rozłączył| +End-of-call Disposition Selection|Koniec rozmowy, wybierz rezultat| +CLOSER INBOUND GROUP SELECTION|SELEKCJA GRUPY ZAWNĘTRZNYCH FINALIZUJĄCYCH| +Closer Inbound Group Selection|Selekcja grupy zawnętrznych finalizujących| +BLENDED CALLING|KOMBINOWANE POŁĄCZENIA| +outbound activated|wychodzące aktywowane| +Preview the Lead then|Podejżyj dane połączenia i| +Lead was not reverted, there was an error|Dane połączenia nie zostały przywrócowne, wystąpił błąd| +call was not placed, there was an error|nie wykonano połączenia, wystąpił błąd| +Number to call|Numer do wybrania| +Customer Information|Informacje o kliencie| +Lead Dispositioned As|Połączenie rozdysponowane jako| +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|Zmiany wprowadzone w informacjach o kliencie będą zapisane tylko podczas trwania połączenia. Nie po rozłączaniu!| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Kiedy aktywne, naciśnij guzik na klawiaturze w celu wybrania opcji dla tej rozmowy. Rozmowa zostanie automatycznie rozłączona a opcja ustawiona| +Disposition Hot Keys|Klawisze skrótu dyspozycji| +Cust Time|Ustawiony Czas| +RECORD ID|NUMER NAGRANIA| +RECORDING FILE|PLIK NAGRANIA| +HOT KEYS ACTIVE|KLAWISZE SKRÓRU AKTYWNE| +HOT KEYS INACTIVE|KLAWISZE SKRÓTU NIEAKTYWNE| +DIAL OVERRIDE|WYBIERZ TEN NUMER| +SKIP LEAD|POMIŃ POŁĄCZENIE| +DIAL LEAD|WYBIERZ POŁĄCZENIE| +LEAD PREVIEW|PODGLĄD POŁĄCZEŃ| +PAUSE AGENT DIALING|ZATRZYMAJ DZWONIENIE| +DISPOSITION CALL|REZULTAT ROZMOWY| + session ID| ID sesji| + to campaign| do kampani| +Select a CallBack Date|Wybierz datę oddzwonienia| + maximize | maksymalizuj | + minimize | minimalizuj | +You must choose a date|Musisz wybrać datę| +Select a Date Below|Wybierz datę poniżej| +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|Kliknij poniżej na Inne terminy żeby teraz zadzwonić do klienta. Jeżeli klikniesz na rekordzie by zadzwonić, rekord zostanie usunięty z listy| +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|Jeżeli chcesz wybrać numer tak aby NIE został dodany jako nowy kontakt, wpisz dokładny numer telefonu w polu Wybierz ten numer poniżej. By zakończyć połączenie musisz otworzyć ROZMOWY W TEJ SESJI (w dole ekranu), i zakończyć połączenie klinając na link jego kanału.| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|NIE MOŻESZ POMINĄĆ RĘCZNEGO DZWONIENIA LUB ODDZWANIANIA, MUSISZ ZADZWONIĆ POD KONTAKT| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|MUSISZ WSTRZYMAC AUTOMATYCZNE WYBIERANIE NUMERU BY DOKONAĆ RĘCZNEGO WYBIERANIA| +Enter information below for the new lead you wish to call|Wpisz poniżej informacje o kontakcie do którego chcesz wykonać połączenie| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|MUSISZ WSTRZYMAC AUTOMATYCZNE WYBIERANIE NUMERU BY SPRAWDZAĆ INNE TERMINY| +Note: all new manual dial leads will go into list 999|Ważne: nowe kontakty z ręcznym wybieraniem zostaną zapisane na liście 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|NIE MASZ UPRAWNIEŃ DO PRZENOSZENIA ROZMÓW| +will be added to the beginning of this number|będzie dodane na początku tego numeru| +This is usually a 1 in the USA-Canada|dla polski będzie to 48| +NEW MANUAL DIAL LEAD FOR|NOWE RĘCZNE WYBIERANIE NUMERU DLA| +Finish and Disposition Call|Zakończ i wprowadź rezultat rozmowy| +10 digits max - digits only|maksymalnie 10 cyfr| +Note: a dial prefix of|Komentarz: Prefiks numeru| +Hangup Again|Rozłącz się ponownie| +Go Back|Wróć| +Call Agent Again|Ponownie połącz się z telefonem| +MY CALLBACK ONLY|TYLKO MOJE INNE TERMINY| +NO ACTIVE CALLBACKS|BRAK AKTYWNYCH INNYCH TERMINÓW| +ACTIVE CALLBACKS|AKTYWNE INNE TERMINY| +CALLBACKS FOR AGENT|INNE TERMINY DLA AGENTA| +Dial Code:|Kod wybierania:| +Dial Override|Wybierz ten numer| +digits only please|tylko cyfry| +Dial Now|Wybierz teraz| +CB Comments|Notatki| +Title|Tytuł| +Your Status|Twój Status| + STATUS| STATUS| +RESET|RESET| +CLEAR FORM|WYCZYŚĆ FORMULARZ| +SUBMIT|ZATWIERDŹ| +Incoming|Przychodząca| +Calling|Dzwoni| +Called|Zadzwoniono| +Campaign|Kampania| +Status|Status| +Inserted|Wstawiony| + seconds|sekundy| +HELP|POMOC| +Login|Login| +User|Użytkownik| +Password|Hasło| +VERSION|WERSJA| +BUILD|KOMPILACJA| +Server|Serwer| +RECORD|NAGRYWAJ| +HANGUP|ROZŁĄCZ| +>XFER|>TRANSFER| +PARK|PARKING| +IN-NUMBER|IN-NUMBER| +NUMBER|NUMER| +LENGTH|DŁUGOŚĆ| +CALLERID|IDROZMÓWCY| +CallerID|IDRozmówcy| + CALL| Rozmowa| +PICKUP|ODBIERZ| +CONFERENCE|KONFERENCJA| +Refresh|Odswież| +Send DTMF|Wyślij tonowo| +ORDER|PORZĄDEK| + on | na | +LOGOUT|WYLOGUJ| +Channel|Kanał| +Extensions|NumerWenętrzny| +Conferences|Konferencje| +Conference|Konferencja| +Recording|Nagrywanie| +Record|Record| +Welcome|Witaj| +VOICEMAIL|POCZTAGŁOSOWA| + NEW| NOWY| + OLD| STARY| +STOP|BATENTE| +START|START| + Pause | Przerwa | +Resume|Ponów| +Faster|Szybciej| +Slower|Wolniej| +Initializing|Inicjalizuje| +Invalid|Nieprawidłowy| +Username|NazwaUżytkownika| +CUSTOM|UŻYTKOWNIKA| +Notes|Notatki| +First|Imię| +MI: |2 Imię: | +Last|Nazwisko| +Address|Adres| +City|Miasto| +State|Stan| +PostCode|KodPocztowy| +Province|Powiat| +Vendor ID|Vendedor ID| +DialCode|Prefiks| +Alt. Phone|Drugi telefon| +Show|Pokaż| +Email|Email| +Comments|Komentarz| +REFRESH|ODSWIEŻ| +ALT PHONE DIAL|WYBIERANIE ALT NUM| +MAIN PHONE|NUMER PODSTAWOWY| +ALT PHONE|NUMER ALT.| +ADDRESS3|ADRES3| +FINISH LEAD|ZAKOŃCZ WPROWADZANIE DANYCH| +Dial Alt Phone Number|Zadzwoń pod numer alt.| +Phone|Telefon| + DIAL| WYBIERZ| +SUBMIT FAVORITES CHANGES - requires logout|ZATWIERDŹ ZMIANY W ULUBIONYCH- wymaga wylogowania| +BACK TO MAIN WINDOW - ignore changes made|Powrót do głónego okna - anulowanie wprowadzonych zmian| +AVAILABLE EXTENSIONS|DOSTĘPNE NUMERY WEWNĘTRZNE| + edit| edytuj| + FAVORITES| ULUBIONE| +### END translation phrases through 1.1.11 release ### +Search Existing Leads|Przeszukuj rekordy| +This option if checked will attempt to find the phone number in the system before inserting it as a new lead|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|Finish Wrapup and Move On| +seconds remaining in wrapup|seconds remaining in wrapup| +Call Wrapup:|Call Wrapup| +### months of the year for CallBack date select screen ### +January|Styczeń| +Frebruary|Luty| +March|Marzec| +April|Kwiecień| +May|Maj| +June|Czerwiec| +July|Lipiec| +August|Sierpień| +September|Wrzesień| +October|Październik| +November|Listopad| +December|Grudzień| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Previous Callback Information| +Last Call: |Last Call: | +CallBack: |CallBack: | +Agent: |Agent: | +Comments: |Comments: | +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|VOLUME| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|SZYBKA TARCZA| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|WY MUSICIE WCHODZIĆ NUMER TELEFONU I TARCZA SZYFROWAĆ UŻYWAĆ SZYBKI TARCZA| + SELECT A PAUSE CODE :| WYBÓR SZYFR PRZERWY :| +ENTER A PAUSE CODE|WCHODZĄ SZYFR PRZERWY| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|WY MUSICIE BYĆ PRZEDŁUŻANI WCHODZIĆ SZYFR PRZERWY W TRYBIE AUTOTARCZY| +Your session has been disabled|Wasza sesja była uszkadzana| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Płeć:| +Date of Birth: |Data urodzenia:| +YOU MUST BE PAUSED TO CHANGE GROUPS|Musisz być Paused ZMIANA DO GRUPY| +Calls in Queue:|Wzywa w kolejce:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|Użytkownika i hasło podane nie są aktywne w systemie| +Please try again|Please try again| +You cannot log in or out within 30 seconds of your last login or logout|Nie można zalogować się w ciągu 30 sekund od ostatniego logowania lub wylogowywania| +You have now logged-out|Musisz się zalogować-out| +You logged out at |Możesz zalogować się na| +Amount of time you were logged-in: |Czas był zalogowany w:| +ERROR: timeclock log entry already made: |ERROR: timeclock wpisu już wykonane:| +BACK to Agent Login Screen|POWRÓT pełnomocnika do ekranu logowania| +BACK to Administration|POWRÓT do administracji| +BACK to Welcome Screen|Powrót do ekranu powitalnego| +Time since you were last logged-in: |Czas od twojego ostatniego logowania w:| +You last logged-out at: |Ostatniego zalogowanego obecnie pod adresem:| +Click LOGIN below to log-in|Kliknij poniżej, aby LOGOWANIE log-in| +Amount of time you have been logged-in: |Kwota czas były rejestrowane w:| +You logged-in at:|Możesz zalogować się na stronie:| +Click LOGOUT below to log-out|Kliknij poniżej, aby zalogować LOGOUT-out| +Undefined|Niezdefiniowana| +This phone number is not in the campaign lists|Ten telefon nie jest w kampanii list| +Unspecified error|Nieokreślony błąd| +Extended Alt Phone Information: |Rozszerzony Alt telefonu:| +ALT DIAL NUMBER:|ALT DIAL NUMBER:| +Phone Code and Number:|Telefon Kod i numer:| +Notes: |Uwagi:| +Active: |Aktywne:| +Alt Count: |Alt Count:| +Change this phone number to INACTIVE|Zmień to numer telefonu do nieaktywne| +Change this phone number to ACTIVE|Zmień to numer telefonu do CZYNNEJ| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|Należy zalogować się do TIMECLOCK PIERWSZEJ| +There is a time synchronization problem with your system, please tell your system administrator|Istnieje problem synchronizacji czasu z systemem, należy powiadomić administratora systemu| +Preview Call|Podgląd połączeń| +SELECT A GROUP ALIAS|Wybierz grupę Alias| +Group Alias Selection|Wybór grupy Alias| +Click Here to Choose a Group Alias|Kliknij tutaj, aby wybrać grupy Alias| +Group Alias|Nazwa grupy| +ERROR: There are no Shifts enabled for your user group|BŁĄD: Brak Przesuwa aktywny dla grupy użytkowników| +ERROR: You are not allowed to log in outside of your shift|BŁĄD: Nie masz uprawnień, aby zalogować się poza swoim zmiany| +MANAGER OVERRIDE|KIEROWNIK nadrzędne| +Your Shift is over or has changed, you have been logged out of your session|Twoja Shift jest ponad lub zmienił, zostałeś wylogowany z sesji| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Nie masz uprawnień do wybierania numeru inne sesje agenta| +QUICK TRANSFER|Szybka wypłata| +Other Agents Status|Inne leki Status| +Available Agents Transfer|Transfer Dostępne pełnomocników| +Show Calls In Queue|Wzywa Pokaż w kolejce| +Calls In Queue|Wzywa w kolejce| +Hide Calls In Queue|Ukryj wzywa w kolejce| +Calls in Queue View Disabled for this campaign|Wzywa w kolejce Zobacz niepełnosprawnych w tej kampanii| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|Musicie być wstrzymane do przechwycenia WZYWA w kolejce| +Manager |Kierownik| +has selected your in-group choices|wybrał się w grupie-wybory| +CONSULTATIVE|KONSULTACYJNA| +Close Message|Zamknij komunikat| +TIMER NOTIFICATION|ZAWIADOMIENIE TIMER| diff --git a/agc_2-X/branches/agc_2.2.0/translations/pt_language.txt b/agc_2-X/branches/agc_2.2.0/translations/pt_language.txt new file mode 100644 index 00000000..59df5dfe --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/pt_language.txt @@ -0,0 +1,491 @@ +# pt_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=pt +# current languages in the file: +# - English - (en) no alterations +# - Portuguese - (pt) second column +***LANGUAGES*** +en-English|pt-Português| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"JAN"| +"FEB"|"FEV"| +"MAR"|"MAR"| +"APR"|"ABR"| +"MAY"|"POS"| +"JUN"|"JUN"| +"JLY"|"JLY"| +"AUG"|"AGO"| +"SEP"|"SET"| +"OCT"|"OUT"| +"NOV"|"NOV"| +"DEC"|"DEZ"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Inglês| +Spanish|Espanhol| +French|Francês| +German|Alemão| +Italian|Italiano| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF.gif| +vdc_LB_pause.gif|vdc_LB_pause.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF.gif| +vdc_LB_resume.gif|vdc_LB_resume.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF.gif| +vdc_LB_webform.gif|vdc_LB_webform.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Você tem registrado agora para fora. Obrigado| +astGUIclient web-client VERSION|VERSÃO astGUIclient do correia-cliente| +astGUIclient web client|web client astGUIclient| +VICIDIAL web client|Web client de VICIDIAL| +VICIDIAL web-client version|Versão do correia-cliente de VICIDIAL| +You can only monitor Zap channels|Você pode monitora somente zap as canaletas| +Stop Record|Pare O Registro| +you are logged into this phone|seu telefone| +Back to Main Window|Para trás à janela principal| +LIVE CALLS ON THIS PHONE|VIVO CONVIDA ESTE TELEFONE| +LIVE CALLS IN THIS CONFERENCE|VIVEM AS CHAMADAS NCESTA CONFERÊNCIA| +LIVE CALL TRANSFER|TRANSFERÊNCIA VIVA DA CHAMADA| +CLIENT CHANNEL|CANALETA DO CLIENTE| +REMOTE CHANNEL|CANALETA REMOTA| +CLICK HERE TO LOG IN AGAIN|ESTALE AQUI PARA LOGON OUTRA VEZ| +ACTIVE DISPLAY PAUSED|A EXPOSIÇÃO ATIVA PAUSOU| +Main Panel|Painel Principal| +Active Lines Panel|Linhas Ativas Painel| +Conferences Panel|Painel Das Conferências| +Check Voicemail|Verifique Voicemail| +Live Call|Vive A Chamada| +Hangup Trunk|Tronco Do Hangup| +Hijack Trunk|Tronco Do Hijack| +Listen Trunk|Escuta O Tronco| +Active Local Menu|Menu Local Ativo| +Hangup Local|Local Do Hangup| +Hijack Local|Local Do Hijack| +Listen Local|Escuta O Local| +Channel to be transferred|Canaleta a ser transferida| +Extensions Menu|Menu Das Extensões| +Send to selected extension|Emita à extensão selecionada| +Send to selected vmail box|Emita à caixa selecionada do vmail| +Send to this number|Emita a este número| +click on a number below to send to a conference|estale sobre um número abaixo para emitir a uma conferência| +Send my channel too|Emita minha canaleta demasiado| +Conferences Menu|Menu Das Conferências| +LOCAL Extensions Dial|Seletor LOCAL Das Extensões| +Phone calling from|Telefone que chama-se de| +Call selected extension|Extensão selecionada chamada| +Call selected vmail box|Caixa selecionada chamada do vmail| +LOCAL DIAL EXTENSIONS|EXTENSÕES LOCAIS DO SELETOR| +OUTBOUND CALLS|CHAMADAS OUTBOUND | +INBOUND CALLS|CHAMADAS INBOUND| +Refresh rate|Refresque a taxa| +MANUAL DIAL|SELETOR MANUAL| +CALL DATE\/TIME|DATE/TIME DA CHAMADA| +LOCAL HANGUP|HANGUP LOCAL| +PARKED CALLS|CHAMADAS ESTACIONADAS| +PARKED BY|ESTACIONADO PERTO| +PARKED TIME|TEMPO ESTACIONADO| +Registered to|Registado a| +Enter Conference|Incorpore A Conferência| +Dial From Conf|Seletor De Conf| +Active Extensions|Extensões Ativas| +Outside Lines|Linhas Exteriores| +Local Extensions|Extensões Locais| +Data Goes Here|Os Dados Vão Aqui| +Trunk Action|Ação Do Tronco| +Local Action|Ação Local| +Conferences List|Lista Das Conferências| +Click on a conference room number on the left for info on that conference|Estale sobre um número de quarto da conferência na esquerda para o| +List Display|Exposição Da Lista| +Live Extensions|Extensões Vivas| +Busy Extensions|Extensões Ocupadas| +Outside Lines|Linhas Exteriores| +script runtime|runtime do certificado| +Call Log Display|Exposição Do Registro Da Chamada| +is not valid|é inválido| +or protocol|ou protocolo| +Conf Extension Check|Verificação Da Extensão De Conf| +has been registered to|foi registado a| +LIVE INBOUND CALL|CHAMADA INBOUND VIVA| +Number Dialed|O Número Marcou| +SEND TO MY VOICEMAIL|EMITA A MEU VOICEMAIL| +Live Extension Check|Verificação Viva Da Extensão| +Manager Send|O Gerente Emite| +command not inserted|comando não introduzido| +command sent for|comando emitido para| +One of these variables|Uma destas variáveis| +must be greater than 2 characters|deve ser mais grande de 2 caráteres| +must be greater than 14 characters|deve ser mais grande de 14 caráteres| +must be set|deve ser ajustado| +not sent|não emitido| +Cannot find empty conference|Não pode encontrar a conferência vazia| +is not live|não está vivo| +RECORDING WILL LAST UP TO 60 MINUTES|A GRAVAÇÃO DURARÁ ATÉ 60 MINUTOS| +Parked Calls Display|Exposição Estacionada Das Chamadas| +Database Query Script|Certificado Da Pergunta Da Base de dados| +Group Choice|Escolha Do Grupo| +has been registered to user|foi registado ao usuário| +HOPPER EMPTY|FUNIL VAZIO| +LOG NOT ENTERED|REGISTRO NÃO ENTRADO| +has been changed to|foi mudado a| +information has been updated|a informação foi atualizada| +is now in status|está agora no status| +Voicemail Check|Verificação De Voicemail| +voicemail box|caixa do voicemail| +Re-Login|Re-Início de uma sessão| +User Password|Senha Do Usuário| +User Login|Início de uma sessão Do Usuário| +Phone Login|Início de uma sessão Do Telefone| +Phone Password|Senha Do Telefone| +Campaign not active, please try again|A campanha nao ativa, tenta por favor outra vez| +Login incorrect, please try again|O início de uma sessão incorreto, tenta por favor outra vez| +Campaign Login|Início de uma sessão Da Campanha| +Sorry, your phone login and password are not active in this system, please try again|Pesaroso, seus início de uma sessão do telefone e senha não seja| +leads left to call in hopper|conduz à esquerda para chamar-se no funil| +CAMPAIGN CUSTOM PARKING|ESTACIONAMENTO FEITO SOB ENCOMENDA DA CAMPANHA| +CAMPAIGN DEFAULT PARKING|ESTACIONAMENTO DO DEFEITO DA CAMPANHA| +CAMPAIGN CUSTOM WEB FORM|FORMULÁRIO FEITO SOB ENCOMENDA DA CORREIA FOTORRECEPTORA DA CAMPANHA| +CAMPAIGN DEFAULT WEB FORM|FORMULÁRIO DA CORREIA FOTORRECEPTORA DO DEFEITO DA CAMPANHA| +CAMPAIGN ALLOWS CLOSERS|A CAMPANHA PERMITE CLOSERS| +CAMPAIGN ALLOWS NO CLOSERS|A CAMPANHA NÃO PERMITE NENHUM CLOSERS| +USING PREVIOUS MEETME ROOM|USANDO O QUARTO PRECEDENTE DE MEETME| +USING NEW MEETME ROOM|USANDO O QUARTO NOVO DE MEETME| +old QUEUE and INCALL reverted list|FILA velha e lista reverted INCALL| +old QUEUE and INCALL reverted hopper|FILA velha e funil reverted INCALL| +old vicidial_live_agents records cleared|os registros velhos dos vicidial_live_agents cancelaram| +campaign is set to auto_dial_level|a campanha é ajustada ao auto_dial_level| +new vicidial_live_agents record inserted|o registro novo dos vicidial_live_agents introduziu| +campaign is set to manual dial|a campanha é ajustada ao seletor manual| +Sorry, there are no leads in the hopper for this campaign|Pesaroso, não há nenhuma ligação no funil para esta campanha| +Dial Next Number|Número Seguinte Do Seletor| +LIVE CALLS IN YOUR SESSION|VIVEM AS CHAMADAS EM SUA SESSÃO| +Stop Recording|Pare de Gravar| +Start Recording|Comece Gravar| +Transfer number must have more than 1 digit|O número de transferência deve ter mais de 1 dígito| +Grab Parked Call|Chamada Estacionada Garra| +Park Call|Chamada Do Parque| +Waiting for Ring|Anel de espera| +Called 3rd party|Ó partido chamado| +LEAVE 3-WAY CALL|CHAMADA DA LICENÇA 3-WAY| +Dial With Customer|Seletor Com Cliente| +Park Customer Dial|Seletor Do Cliente Do Parque| +Hangup Xfer Line|Linha De Xfer Do Hangup| +Hangup Both Lines|Hangup Ambas as Linhas| +Hangup Customer|Cliente Do Hangup| +Transfer - Conference|Transferência - Conferência| +LOCAL CLOSER|LOCAL MAIS PRÓXIMO| +INTERNAL CLOSER|MAIS PRÓXIMO INTERNO| +Dial Blind Transfer|Transferência Da Cortina Do Seletor| +Dial timed out, contact your system administrator|O seletor cronometrado para fora, contata seu administrador de| +No more leads in the hopper for campaign|Não mais conduz no funil para a campanha| +Web Form|Formulário Da Correia fotorreceptora| +You Must Select a Disposition|Você deve selecionar uma disposição| +GROUPS NOT SELECTED|GRUPOS NÃO SELECIONADOS| +SELECTED GROUPS|GRUPOS SELECIONADOS| +You cannot log out during a Dial attempt|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|Espere 50 segundos pelo seletor para falhar para fora se não se| +STILL A LIVE CALL! Hang it up then you can log out|AINDA Uma CHAMADA VIVA! Pendure-a acima então que você pode| +Hide conference call channel information|Informação da canaleta da chamada de conferência do hide| +Show conference call channel information|Mostre a informação da canaleta da chamada de conferência| +Logged in as User|Usuário| +Noone is in your session|Noone está em sua sessão| +Customer has hung up|O cliente pendurou acima| +End-of-call Disposition Selection|Extremidade-$$$-CHAME A Seleção Da Disposição| +CLOSER INBOUND GROUP SELECTION|SELEÇÃO DE GRUPO INBOUND MAIS PRÓXIMA| +Closer Inbound Group Selection|Seleção De Grupo Inbound Mais próxima| +BLENDED CALLING|CHAMADA MISTURADA| +outbound activated|outbound ativado| +Preview the Lead then|Inspecione a ligação então| +Lead was not reverted, there was an error|A ligação não reverted, não havia um erro| +call was not placed, there was an error|a chamada não foi colocada, não havia um erro| +Number to call|Número a chamar-se| +Customer Information|Informação Do Cliente| +Lead 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|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| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Quando ativo, pressione simplesmente a chave de teclado para a| +Disposition Hot Keys|Chaves Quentes Da Disposição| +Cust Time|Tempo De Cust| +RECORD ID|ID RECORD| +RECORDING FILE|LIMA DE GRAVAÇÃO| +HOT KEYS ACTIVE|CHAVES QUENTES ATIVAS| +HOT KEYS INACTIVE|CHAVES QUENTES INATIVAS| +DIAL OVERRIDE|ULTRAPASSAGEM DO SELETOR| +SKIP LEAD|LIGAÇÃO DA FAIXA CLARA| +DIAL LEAD|LIGAÇÃO DO SELETOR| +LEAD PREVIEW|INSPECÇÃO PRÉVIA DA LIGAÇÃO| +PAUSE AGENT DIALING|PARE DE CHAMAR-SE| +DISPOSITION CALL|CHAMADA DA DISPOSIÇÃO| + session ID| sessão ID| + to campaign| à campanha| +Select a CallBack Date|Selecione uma data da rechamada| + maximize | maximize | + minimize | minimize | +You must choose a date|Você deve escolher uma data| +Select a Date Below|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|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|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á| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|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|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 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|VOCÊ DEVE SER PAUSADO PARA VERIFICAR RECHAMADAS NA MODALIDADE DE AUTO-DIAL| +Note: all new manual dial leads will go into list 999|Nota: todas as ligações manuais novas do seletor entrarão na lista 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|VOCÊ NÃO TEM PERMISSÕES TRANSFERIR CHAMADAS| +will be added to the beginning of this number|será adicionado ao começo deste número| +This is usually a 1 in the USA-Canada|Este é geralmente um 1 nos EUA e no Canadá| +NEW MANUAL DIAL LEAD FOR|LIGAÇÃO MANUAL NOVA DO SELETOR PARA| +Finish and Disposition Call|Revestimento e chamada da disposição| +10 digits max - digits only|máximo de 10 dígitos - dígitos somente| +Note: a dial prefix of|Nota: um prefixo do seletor de| +Hangup Again|Hangup Outra vez| +Go Back|Vá Para trás| +Call Agent Again|Agente Da Chamada Outra vez| +MY CALLBACK ONLY|MINHA RECHAMADA SOMENTE| +NO ACTIVE CALLBACKS|NO RECHAMADAS ATIVAS| +ACTIVE CALLBACKS|RECHAMADAS ATIVAS| +CALLBACKS FOR AGENT|RECHAMADAS PARA O AGENTE| +Dial Code:|Código Do Seletor:| +Dial Override|Ultrapassagem Do Seletor| +digits only please|os dígitos satisfazem somente| +Dial Now|Seletor Agora| +CB Comments|Comentários dos CB| +Title|Título| +Your Status|Seu Status| + STATUS| STATUS| +RESET|RESTAURAÇÃO| +CLEAR FORM|RESTAURAÇÃO| +SUBMIT|SUBMETA| +Incoming|Entrante| +Calling|Chamada| +Called|Chamado| +Campaign|Campanha| +Status|Status| +Inserted|Introduzido| + seconds|segundos| +HELP|AJUDA| +Login|Início de uma sessão| +User|Usuário| +Password|Senha| +VERSION|VERSÃO| +BUILD|CONFIGURAÇÃO| +Server|Usuário| +RECORD|REGISTRO| +HANGUP|HANGUP| +>XFER|>XFER| +PARK|PARQUE| +IN-NUMBER|IN-NUMBER| +NUMBER|NÚMERO| +LENGTH|COMPRIMENTO| +CALLERID|CALLERID| +CallerID|CallerID| + CALL| CHAMADA| +PICKUP|COLETOR| +CONFERENCE|CONFERÊNCIA| +Refresh|Refresque| +Send DTMF|Emita DTMF| +ORDER|ORDEM| + on | em | +LOGOUT|LOGOUT| +Channel|Canaleta| +Extensions|Extensões| +Conferences|Conferências| +Conference|Conferência| +Recording|Gravação| +Record|Registro| +Welcome|Boa vinda| +VOICEMAIL|VOICEMAIL| + NEW| NOVO| + OLD| VELHO| +STOP|BATENTE| +START|COMEÇO| + Pause | Pausa | +Resume|Resumo| +Faster|Mais rapidamente| +Slower|Mais lento| +Initializing|Inicializar| +Invalid|Inválido| +Username|Username| +CUSTOM|COSTUME| +Notes|Notas| +First|Prime| +MI: |Mi:| +Last|Último| +Address|Endereço| +City|Cidade| +State|Estado| +PostCode|PostCode| +Province|Província| +Vendor ID|Vendedor Id| +DialCode|DialCode| +Alt. Phone|Alt. Telefone| +Show|Mostra| +Email|Email| +Comments|Comentários| +REFRESH|REFRESQUE| +ALT PHONE DIAL|ALT DO TELEFONE| +MAIN PHONE|TELEFONE PRINCIPAL| +ALT PHONE|ALT DEL TELEFONO| +ADDRESS3|ENDEREÇO3| +FINISH LEAD|REVESTIMENTO| +Dial Alt Phone Number|Número Alt Do Seletor| +Phone|Telefone| + DIAL| SELETOR| +SUBMIT FAVORITES CHANGES - requires logout|SUBMETA MUDANÇAS dos FAVORITOS - requer o logout| +BACK TO MAIN WINDOW - ignore changes made|PARA TRÁS À JANELA PRINCIPAL - ignore as mudanças feitas| +AVAILABLE EXTENSIONS|EXTENSÕES DISPONÍVEIS| + edit| edite| + FAVORITES| FAVORITOS| +### 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:| +### months of the year for CallBack date select screen ### +January|Janeiro| +Frebruary|Fevereiro| +March|Março| +April|Abril| +May|Pode| +June|Junho| +July|Julho| +August|Agosto| +September|Setembro| +October|Outubro| +November|Novembro| +December|Dezembro| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Informação Precedente Da Rechamada| +Last Call: |Última Chamada:| +CallBack: |Rechamada:| +Agent: |Agente:| +Comments: |Comentários:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|VOLUME| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|SELETOR RÁPIDO| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|VOCÊ DEVE DAR ENTRADA A um NÚMERO De TELEFONE E A um CÓDIGO DoSELETOR PARA USAR O SELETOR RÁPIDO| + SELECT A PAUSE CODE :| SELECIONE Um CÓDIGO Da PAUSA :| +ENTER A PAUSE CODE|DÊ ENTRADA A um CÓDIGO Da PAUSA| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|VOCÊ DEVE SER PAUSADO PARA DAR ENTRADA A um CÓDIGO Da PAUSA NaMODALIDADE De AUTO-DIAL| +Your session has been disabled|Sua sessão foi incapacitada| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Sexo:| +Date of Birth: |Data de Nascimento:| +YOU MUST BE PAUSED TO CHANGE GROUPS|Você deve estar PAUSED PARA ALTERAR GRUPOS| +Calls in Queue:|Solicita, em fila:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|O usuário ea senha que você digitou não são ativos no sistema| +Please try again|Por favor, tente novamente| +You cannot log in or out within 30 seconds of your last login or logout|Você não pode efetuar login ou para fora dentro de 30 segundos do seu último login ou logout| +You have now logged-out|Você tem agora autenticado-out| +You logged out at |Você saiu em| +Amount of time you were logged-in: |Quantidade de tempo que foram registradas em:| +ERROR: timeclock log entry already made: |ERRO: timeclock entrada do log já realizados:| +BACK to Agent Login Screen|BACK TO Agent Login Screen| +BACK to Administration|Retornar para Administração| +BACK to Welcome Screen|ANTERIOR a tela Bem-vindo| +Time since you were last logged-in: |Vez desde que foi registrado em:| +You last logged-out at: |Você última autenticado-out em:| +Click LOGIN below to log-in|LOGIN Clique abaixo para log-in| +Amount of time you have been logged-in: |Quantidade de tempo que tem sido registrado em:| +You logged-in at:|Você autenticado-nos em:| +Click LOGOUT below to log-out|LOGOUT Clique abaixo para log-out| +Undefined|Undefined| +This phone number is not in the campaign lists|Esse número de telefone não está na campanha listas| +Unspecified error|Unspecified error| +Extended Alt Phone Information: |Extensão Alt Telefone Informação:| +ALT DIAL NUMBER:|ALT PROGR.SELEC NÚMERO:| +Phone Code and Number:|Telefone Código e Número:| +Notes: |Notas:| +Active: |Ativa:| +Alt Count: |Alt Count:| +Change this phone number to INACTIVE|Altere este número de telefone para INATIVO| +Change this phone number to ACTIVE|Altere este número de telefone para ACTIVAS| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|É necessário efetuar login AO PRIMEIRO TIMECLOCK| +There is a time synchronization problem with your system, please tell your system administrator|Há um tempo sincronização problema com o seu sistema, por favor informe o seu administrador de sistema| +Preview Call|Preview Call| +SELECT A GROUP ALIAS|Selecionar um grupo ALIÁS| +Group Alias Selection|Grupo Alias Selecção| +Click Here to Choose a Group Alias|Clique aqui para escolher um grupo Alias| +Group Alias|Grupo Alias| +ERROR: There are no Shifts enabled for your user group|ERRO: Não existem Shifts activado para o Grupo de Usuários| +ERROR: You are not allowed to log in outside of your shift|ERRO: Você não tem permissão para iniciar sessão no para fora do seu turno| +MANAGER OVERRIDE|GERENTE Override| +Your Shift is over or has changed, you have been logged out of your session|Seu Shift é mais ou mudou, você foi desconectado da sua sessão| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Você não tem permissão para discar para sessões de outro agente| +QUICK TRANSFER|RÁPIDA TRANSFERÊNCIA| +Other Agents Status|Outros agentes Status| +Available Agents Transfer|Agentes de transferência disponíveis| +Show Calls In Queue|Solicita Show Em Fila| +Calls In Queue|Solicita, em fila| +Hide Calls In Queue|Solicita Hide Na fila| +Calls in Queue View Disabled for this campaign|Chamadas na fila Ver condicionada para esta campanha| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|VOCÊ DEVE SER PAUSA PARA GRAB APELA EM FILA| +Manager |Gerente| +has selected your in-group choices|foi selecionado o grupo de escolhas| +CONSULTATIVE|CONSULTIVO| +Close Message|Fechar Mensagem| +TIMER NOTIFICATION|NOTIFICAÇÃO TIMER| diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.2.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.2.txt new file mode 100644 index 00000000..8673f0f5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.2.txt @@ -0,0 +1,54 @@ +############################################################ ADMIN + +VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting|| +VICIDIAL Balance Dialing -<\/B> Setting this field to Y will allow the server to place balance calls for campaigns in VICIDIAL so that the defined dial level can be met even if there are no agents logged into that campaign on this server. Default is N|| +VICIDIAL Balance Offlimits -<\/B> This setting defines the number of trunks to not allow VICIDIAL balance dialing to use. For example if you have 40 max vicidial trunks and balance offlimits is set to 10 you will only be able to use 30 trunk lines for VICIDIAL balance dialing. Default is 0|| +Allowed Campaigns -<\/B> This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system|| +VICIDIAL SERVER TRUNK RECORD NOT ADDED|| +there is already a server-trunk record for this campaign|| +the number of vicidial trunks is too high|| +VICIDIAL SERVER TRUNK RECORD ADDED|| +VICIDIAL SERVER TRUNK RECORD NOT MODIFIED|| +VICIDIAL SERVER TRUNK RECORD MODIFIED|| +VICIDIAL SERVER TRUNK RECORD NOT DELETED|| +VICIDIAL SERVER TRUNK RECORD DELETED|| +campaign must be between 3 and 8 characters in length|| +server_ip delay must be at least 7 characters|| +trunks must be a digit from 0 to 9999|| +VICIDIAL Balance Dialing|| +VICIDIAL Balance Offlimits|| +ADDING NEW SERVER VICIDIAL TRUNK RECORD|| +ADD NEW SERVER VICIDIAL TRUNK RECORD|| +MODIFY SERVER VICIDIAL TRUNK RECORD|| +DELETE SERVER VICIDIAL TRUNK RECORD|| +VICIDIAL TRUNKS FOR THIS SERVER|| +RESTRICTION|| +TRUNKS|| +Emergency VDAC Jam Clear|| +VDAC NOT CLEARED FOR CAMPAIGN|| +LAST VDAC RECORD CLEARED FOR CAMPAIGN|| +VDAC CLEAR CONFIRMATION|| +Click here to delete the oldest LIVE record in VDAC for|| +Allowed Campaigns|| +USERS CAN VIEW ANY CAMPAIGN|| +Campaign Not Allowed|| + +############################################################ CLIENT + +VOLUME|| + + +############################################################ MANAGER Manual + +Add notes on balance dialing in Multi-server setups +Add notes for user groups +Add notes for this sample iframe in SCRIPTS: + + +############################################################ AGENT Manual + diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.3.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.3.txt new file mode 100644 index 00000000..2c2514b0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.3.txt @@ -0,0 +1,186 @@ +############################################################ ADMIN + +ADAPT OVERRIDE|| +The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually.|| +There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hangup their call, stay on the same lead, and dial another contact number from that lead.|| +Concurrent Transfers|| +Concurrent Transfers -<\/B> This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method|| +Auto Alt-Number Dialing -<\/B> This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method|| +Auto Alt-Number Dialing|| +View Reports -<\/B> This option allows the user to view the VICIDIAL reports.|| +Modify Sections -<\/B> These options allow the user to view and modify each sections records. If set to 0, the user will be able to see the section list, but not the detail or modification screen of a record in that section|| +VICIDIAL AUTO ALT DIAL STATUSES|| +If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set|| +AUTO ALT NUMBER DIALING FOR THIS CAMPAIGN|| +ADD NEW AUTO ALT NUMBER DIALING STATUS|| +AUTO ALT DIAL STATUS NOT ADDED|| +there is already an entry for this campaign with this status|| +AUTO ALT DIAL STATUS ADDED|| +AUTO ALT DIAL STATUS NOT DELETED|| +AUTO ALT DIAL STATUS DELETED|| +this auto alt dial status is not in this campaign|| +New Auto Alt Dial Status|| +Delete Auto Alt Dial Status|| + Users || + Campaigns || + Lists || + Scripts || + Filters || + In-Groups || + User Groups || + Remote Agents || + Admin || + Reports || + Show Users || + Add A New User || + Search For A User || + Show Campaigns || + Add A New Campaign || + Real-Time Campaigns Summary || + Show Lists || + Add A New List || + Search For A Lead || + Add Number To DNC || + Load New Leads || + Show Scripts || + Add A New Script || + Show Filters || + Add A New Filter || + Show In-Groups || + Add A New In-Group || + Show User Groups || + Add A New User Group || + Group Hourly Report || + Show Remote Agents || + Add New Remote Agents || + Call Times || + Phones || + Conferences || + Servers || + Show Call Times || + Add A New Call Time || + Show State Call Times || + Add A New State Call Time || + Show Phones || + Add A New Phone || + Show Conferences || + Add A New Conference || + Show VICIDIAL Conferences || + Add A New VICIDIAL Conference || + Show Servers || + Add A New Server || +CallBacks Within User Group|| +USERS WITHIN THIS USER GROUP|| +Modify Users: || +Modify Campaigns: || +Modify Lists: || +Modify Scripts: || +Modify Filters: || +Modify In-Groups: || +Modify User Groups: || +Modify Remote Agents: || +Modify Servers: || +View Reports: || +You do not have permission to view this page|| +Lead Time Zone Lookup: || +Lead Duplicate Check: || +Agent Pause Codes Active -<\/B> Allows agents to select a pause code when they click on the PAUSE button in vicidial.php. Pause codes are definable per campaign at the bottom of the campaign view detail screen and they are stored in the vicidial_agent_log table. Default is N|| +AGENT PAUSE CODES|| +If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the vicidial agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters.|| +AGENT PAUSE CODES FOR THIS CAMPAIGN|| +PAUSE CODES|| +BILLABLE|| +ADD NEW AGENT PAUSE CODE|| +Pause Code: || +Pause Code Name: || +Billable: || +New Agent Pause Code|| +Modify Agent Pause Code|| +Delete Agent Pause Code|| +AGENT PAUSE CODE NOT ADDED|| +there is already an entry for this campaign with this pause code|| +AGENT PAUSE CODE ADDED|| +AGENT PAUSE CODE NOT MODIFIED|| +CAMPAIGN PAUSE CODE NOT DELETED|| +Campaign Description -<\/B> This is a memo field for the campaign, it is optional and can be a maximum of 255 characters in length|| +Campaign Change Date -<\/B> This is the last time that the settings for this campaign were modified in any way|| +Campaign Stats Refresh -<\/B> This checkbox will allow you to force a vicidial stats refresh, even if the campaign is not active|| +Last Campaign Login Date -<\/B> This is the last time that an agent was logged into this campaign|| +List Description -<\/B> This is the memo field for the list, it is optional|| +List Change Date -<\/B> This is the last time that the settings for this list were modified in any way|| +List Last Call Date -<\/B> This is the last time that lead was dialed from this list|| +List Description: || +List Change Date: || +Campaign Description: || +VICIDIAL Recording Override -<\/B> This option will override whatever the option is in the campaign for recording. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load|| +VICIDIAL Recording Override: || +MODIFY VICIDIAL SYSTEM SETTINGS|| + System Settings || +VICIDIAL SYSTEM SETTINGS MODIFIED|| +Version: || +Use Non-Latin: || +Webroot Writable: || +Enable QueueMetrics Logging: || +QueueMetrics Server IP: || +QueueMetrics DB Name: || +QueueMetrics DB Login: || +QueueMetrics DB Password: || +Use Non-Latin -<\/B> This option allows you to default the web display script to use UTF8 characters and not do any latin-character-family regular expression filtering or display formatting. Default is 0|| +Webroot Writable -<\/B> This setting allows you to define whether temp files and authentication files should be placed in the webroot on your web server. Default is 1|| +Enable QueueMetrics Logging -<\/B> This setting allows you to define whether VICIDIAL will insert log entries into the queue_log database table as Asterisk Queues activity does. QueueMetrics is a standalone, closed-source statistical analysis program. You must have QueueMetrics already installed and configured before enabling this feature. Default is 0|| +QueueMetrics Server IP -<\/B> This is the IP address of the database for your QueueMetrics installation|| +QueueMetrics Database Name -<\/B> This is the database name for your QueueMetrics database|| +QueueMetrics Database Login -<\/B> This is the user name used to log in to your QueueMetrics database|| +QueueMetrics Database Password -<\/B> This is the password used to log in to your QueueMetrics database|| +QueueMetrics URL -<\/B> This is the URL or web site address used to get to your QueueMetrics installation|| +QueueMetrics Log ID -<\/B> This is the server ID that all VICIDIAL logs going into the QueueMetrics database will use as an identifier for each record|| +QueueMetrics Log ID: || +Campaign Dial Status Added|| +Campaign Dial Status Removed|| +To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove|| +CAMPAIGN DIAL STATUS NOT ADDED|| +CAMPAIGN DIAL STATUS ADDED|| +this dial status is not selected for this campaign|| +CAMPAIGN DIAL STATUS NOT REMOVED|| +CAMPAIGN DIAL STATUS REMOVED|| +>REMOVE<|| +Dial Status || +no dial statuses selected for this campaign|| +QueueMetrics EnterQueue Prepend -<\/B> This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything|| +QueueMetrics EnterQueue Prepend: || +VICIDIAL Agent Disable Display -<\/B> This field is used to select when to show an agent when their session has been disabled by the system, a manager action or by an external measure. The NOT_ACTIVE setting will disable the message on the agents screen. The LIVE_AGENT setting will only display the disabled message when the agents vicidial_auto_calls record has been removed, such as during a force logout or emergency logout|| +VICIDIAL Agent Disable Display: || +Disable Alter Customer Data -<\/B> If set to Y, does not change any of the customer data record when an agent dispositions the call. Default is N|| +Disable Alter Customer Data: || +Agent Alter Customer Data Override -<\/B> This option will override whatever the option is in the campaign for altering of customer data. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer data, no matter what the campaign setting is. Default is NOT_ACTIVE|| +Agent Alter Customer Data Override: || +Allow No-Hopper-Leads Logins -<\/B> If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N|| +Allow No-Hopper-Leads Logins: || +Enable SIPSAK Messages - If enabled the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. Feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|| +Enable SIPSAK Messages: || +Allow SIPSAK Messages - If set to 1, this will allow the phones table setting to work properly, the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. This feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0|| +Allow SIPSAK Messages: || +Admin Home URL - This is the URL or web site address that you will go to if you click on the HOME link at the top of the admin.php page|| +Admin Home URL: || +>HOME<|| + Welcome || + + +############################################################ CLIENT + +FAST DIAL|| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|| + SELECT A PAUSE CODE :|| +ENTER A PAUSE CODE|| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|| +Your session has been disabled|| + + +############################################################ MANAGER Manual + +Add note about using CLOSER-type campaigns to allow logins with no leads + + +############################################################ AGENT Manual + +Add instructions on FAST DIAL diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.4.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.4.txt new file mode 100644 index 00000000..e8b142ae --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.4.txt @@ -0,0 +1,145 @@ +############################################################ ADMIN + +CHECK FOR DUPLICATES BY PHONE IN ALL CAMPAIGN LISTS|| +CHECK FOR DUPLICATES BY PHONE IN ENTIRE SYSTEM|| +PHONE CODE OVERRIDE FOR THIS FILE|| +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. The lead loader 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, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files:|| +NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf 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. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads.|| +Campaign List Mix Added|| +Modify Campaign List Mix|| +Campaign List Mix Removed|| +Campaign Statuses|| +Campaign HotKeys|| +Campaign Lead Recycle Entries|| +Campaign Auto Alt Dial Statuses|| +Campaign Agent Pause Codes|| +Campaign Dial Statuses|| +Campaign List Mixes|| + Lead Recycle || + Auto-Alt Dial || + Pause Codes || + List Mix || + Campaigns Main || +List Order Mix -<\/B> Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED|| +List Mix ID -<\/B> ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation.|| +List Mix Name -<\/B> Descriptive name of the list mix. Must be from 2-50 characters in length|| +List Mix Detail -<\/B> The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated|| +List Mix Method -<\/B> The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER.|| +LIST MIXES FOR THIS CAMPAIGN: || +The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls.|| +HUMAN ANSWER|| +ADDING VICIDIAL SYSTEM STATUSES|| +MODIFY VICIDIAL SYSTEM STATUSES|| +SYSTEM STATUS NOT ADDED|| +SYSTEM STATUS ADDED|| +SYSTEM STATUS NOT DELETED|| +the system status cannot be a reserved status: || +the system status needs to be at least 1 characters in length|| +VICIDIAL STATUSES WITHIN THIS SYSTEM: || +ADD NEW SYSTEM STATUS|| +CUSTOM CAMPAIGN STATUSES LISTINGS:|| +CAMPAIGN HOTKEYS LISTINGS:|| +CAMPAIGN LEAD RECYCLE LISTINGS:|| +LEAD RECYCLES|| +CAMPAIGN LEAD AUTO-ALT DIAL LISTINGS:|| +CAMPAIGN AGENT PAUSE CODE LISTINGS:|| +CAMPAIGN LIST MIX LISTINGS:|| +The Category option allows you to group several statuses into a catogy that can be used for statistical analysis.|| +MODIFY VICIDIAL STATUS CATEGORIES|| +ADDING VICIDIAL STATUS CATEGORY|| + Status Categories || + System Statuses || +MODIFY VICIDIAL SYSTEM STATUSES|| +MODIFY VICIDIAL STATUS CATEGORY|| +Through the use of system statuses, you can have statuses that exist for campaign and in-group. The Status must be 1-6 characters in length, the description must be 2-30 characters in length and Selectable defines whether it shows up in VICIDIAL as an agent disposition. The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls. The Category option allows you to group several statuses into a catogy that can be used for statistical analysis|| +Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report|| +ADD NEW STATUS CATEGORY|| +STATUS CATEGORY NOT ADDED|| +there is already a status category in the system with this ID|| +ID must be between 2 and 20 characters in length|| +name name must be between 2 and 50 characters in length|| +STATUS CATEGORY NOT MODIFIED|| +the status category cannot be a reserved category: || +the status category needs to be at least 2 characters in length|| +STATUS CATEGORY DELETED|| +STATUS CATEGORY MODIFIED|| +Category: || +the system status name needs to be at least 1 characters in length|| +SYSTEM STATUS NOT MODIFIED|| +SYSTEM STATUS MODIFIED|| +ERROR: There are already 4 Status Categories set to TimeOnVDAD Display|| +CUSTOM CAMPAIGN STATUS MODIFIED|| +LIST MIX NOT MODIFIED|| +LIST MIX MODIFIED|| +You cannot delete the last list_id entry from a list mix|| +LIST MIX ADDED: || +LIST MIX NOT ADDED || +There is already a list mix with this ID in the system|| +LIST MIX NOT DELETED|| +LIST MIX DELETED: || +SET TO ACTIVE|| +LIST MIX NOT ACTIVATED|| +LIST MIX ACTIVATED|| +Enable Agent Transfer Logfile -<\/B> This option will log to a text logfile on the webserver every time a call is transferred to an agent. Default is 0, disabled|| +Enable Agent Transfer Logfile|| +Call Time -<\/B> This is the call time scheme to use for this inbound group. Keep in mind that the time is based on the server time. Default is 24hours|| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field. Default is MESSAGE|| +After Hours Message Filename -<\/B> The audio file located on the server to be played if the Action is set to MESSAGE. Default is vm-goodbye|| +After Hours Extension -<\/B> The dialplan extension to send the call to if the Action is set to EXTENSION. Default is 8300|| +After Hours Voicemail -<\/B> The voicemail box to send the call to if the Action is set to VOICEMAIL|| +Welcome Message Filename -<\/B> The audio file located on the server to be played when the call comes in. If set to ---NONE--- then no message will be played. Default is ---NONE---|| +Music On Hold Context -<\/B> The music on hold context to use when the customer is placed on hold. Default is default|| +On Hold Prompt Filename -<\/B> The audio file located on the server to be played at a regular interval when the customer is on hold. Default is generic_hold. This audio file MUST be 9 seconds or less in length.|| +On Hold Prompt Interval -<\/B> The length of time in seconds to wait before playing the on hold prompt. Default is 60|| +Agent Alert Extension -<\/B> The extension to send into the agent session to announce that a call is coming to the agent. This extension should have a Playback of an audio file. To not use this function set this to X. Default is X|| +Agent Alert Delay -<\/B> The length of time in milliseconds to wait before sending the call to the agent after playing the on Agent Alert Extension. Default is 1000|| +Call Time: || +After Hours Action: || +After Hours Message Filename: || +After Hours Extension: || +After Hours Voicemail: || +Welcome Message Filename: || +Music On Hold Context: || +On Hold Prompt Filename: || +On Hold Prompt Interval: || +Agent Alert Extension: || +Agent Alert Delay: || +You will also be able to set the rank, or skill level, in this section for each of the inbound groups as well as being able to see the number of calls received from each inbound group for this specific agent|| +Allow Inbound and Blended -<\/B> This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N|| +Allow Inbound and Blended: || +Manual Dial List ID -<\/B> The default list_id to be used when an agent placces a manual call and a new lead record is created in vicidial_list. Default is 999. This field can contain digits only|| +Manual Dial List ID: || +inbound_group_rank: orders by the rank given to the agent for the specific inbound group. Highest to Lowest|| +fewest_calls: orders by the number of calls received by an agent for that specific inbound group. Least calls first|| +Campaign Ranks: || +AGENT RANKS FOR THIS CAMPAIGN:|| +Copy Campaign|| +COPY A CAMPAIGN|| +Source Campaign: || +New Copied Campaign Addition|| +Copy In-Group|| +New Copied In-Group Addition|| +Copy User|| +New Copied User Addition|| +COPY USER|| +Copy In-Group|| +COPY INBOUND GROUP|| +campaign_rank: orders by the rank given to the agent for the campaign. Highest to Lowest|| +Default Transfer Group -<\/B> This field is the default In-Group that will be automatically selected when the agent goes to the transfer-conference frame in their agent interface|| +Default Transfer Group: || +Allowed Transfer Groups: || +Allowed Transfer Groups -<\/B> With these checkbox listings you can select the groups that agents in this campaign can transfer calls to. Allow Closers must be enabled for this option to show up|| +Campaign Ranks -<\/B> In this section you can define the rank an agent will have for each campaign. These ranks can be used to allow for preferred call routing when Next Agent Call is set to campaign_rank|| +Also in this section is the ability to give the agent a rank for each inbound group. These ranks can be used for preferred call routing when that option is selected in the in-group screen|| + + +############################################################ CLIENT + +PLEASE CLICK THE LOGOUT LINK TO LOG OUT NEXT TIME|| + + +############################################################ MANAGER Manual + + +############################################################ AGENT Manual + diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt new file mode 100644 index 00000000..e3ff6293 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.5.txt @@ -0,0 +1,688 @@ +############################################################ ADMIN + +QC Enabled -<\/B> This option allows the user to log in to the Quality Control agent screen|| +QC User Level -<\/B> This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section|| +QC Record Pass -<\/B> This option allows the agent to specify that a record has passed the first round of QC after reviewing the record|| +QC Record Finish -<\/B> This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record|| +QC Record Commit -<\/B> This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone|| +QC Allowed Campaigns -<\/B> This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system|| +QC Allowed Inbound Groups -<\/B> This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system|| +QC Enabled: || +QC User Level: || +QC Pass: || +QC Finish: || +QC Commit: || +Modify Nothing|| +Modify Nothing Except Status|| +Modify All Fields|| +Verify First Round of QC|| +View QC Statistics|| +Ability to Modify FINISHed records|| +Manager Level|| +USERS CAN VIEW ANY CAMPAIGN|| +USERS CAN QC ANY CAMPAIGN|| +USERS CAN QC ANY INBOUND GROUP|| +QC Allowed Campaigns: || +QC Allowed Inbound Groups: || +Queue Priority -<\/B> This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode|| +Queue Priority: || +Drop Action: || +Drop Transfer Group: || +Drop Action -<\/B> This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below|| +Drop Exten -<\/B> If Drop Action is set to MESSAGE, this is the dial plan extension that the call will be sent to if it reaches Drop Call Seconds|| +Drop Call Seconds -<\/B> The number of seconds a call will stay in queue before being considered a DROP|| +Drop Transfer Group -<\/B> If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds|| +QC SETTINGS FOR THIS CAMPAIGN|| +QC Enabled: || +QC Statuses: || +Modify Campaign QC Settings|| +QC Enabled -<\/B> Setting this field to Y allows for the agent Quality Control features to work. Default is N|| +QC Statuses -<\/B> This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review|| +QC SETTINGS NOT MODIFIED|| +QC SETTINGS MODIFIED|| +QC WebForm Address -<\/B> This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen|| +QC Script -<\/B> This is the script that can be used by QC agents in the SCRIPT tab in the QC screen|| +QC WebForm: || +QC Script|| +In-Group Recording Override -<\/B> This field allows for the overriding of the campaign call recording setting. This setting can be overridden by the vicidial_user recording override setting. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording|| +In-Group Recording Filename -<\/B> This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE|| +In-Group Recording Override: || +In-Group Recording Filename: || +ADDING VICIDIAL QC STATUS CODE|| +MODIFY VICIDIAL QC STATUS CODE|| +VICIDIAL QC STATUS CODES|| +The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length.|| + QC Status Codes || +VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM: || +ADD NEW QC STATUS CODE|| +QC STATUS CODE NOT DELETED|| +QC STATUS CODE DELETED: || +QC STATUS CODE NOT MODIFIED || +QC STATUS CODE MODIFIED: || +the qc status code needs to be at least 1 characters in length|| +the qc status code name needs to be at least 1 characters in length|| +QC STATUS CODE NOT ADDED || +there is already a qc status code in the system with this name:|| +QC STATUS CODE ADDED: || +code must be between 1 and 8 characters in length +code name must be between 2 and 30 characters in length|| +CALL HANGUP REASON STATS|| +After Hours Action -<\/B> The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field, IN_GROUP will send the call to the inbound group selected in the After Hours Transfer Group select list. Default is MESSAGE|| +After Hours Transfer Group -<\/B> If After Hours Action is set to IN_GROUP, the call will be sent to this inbound group if it enters the in-group outside of the call time scheme defined for the in-group|| +After Hours Transfer Group: || +Total calls taken in to this In-Group:|| +CALL HOLD TIME BREAKDOWN IN SECONDS|| +Date Range:|| +ADDING NEW PHONE ALIAS|| +ADD NEW PHONE ALIAS|| +MODIFY PHONE ALIAS|| +DELETE PHONE ALIAS|| +PHONE ALIAS LIST|| +Phone Alias List|| +Add A New Phone Alias|| +ADD A NEW PHONE ALIAS|| +Alias ID: || +Alias Name: || +Phone Logins List: || +PHONE ALIAS NOT ADDED|| +there is already a Phone Alias in the system with this ID|| +there is already a Phone Login in the system with this ID|| +PHONE ALIAS ADDED|| +PHONE ALIAS NOT MODIFIED|| +PHONE ALIAS MODIFIED|| +PHONE ALIAS NOT DELETED|| +PHONE ALIAS DELETION CONFIRMATION|| +Click here to delete phone alias|| +PHONE ALIAS DELETION COMPLETED|| +PHONE ALIAS LISTINGS|| +there is already a Phone alias in the system with this login|| +there is already a Phone in the system with this login|| +DELETE THIS PHONE ALIAS|| +MODIFY A PHONE ALIAS RECORD|| +Alias ID -<\/B> The ID of the alias used to allow for phone load balanced logins. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|| +Alias Name -<\/B> The name used to describe a phones alias, Must be between 2 and 50 characters in length|| +Phones Logins List -<\/B> The comma separated list of phone logins used when an agent logs in using phone load balanced logins. The Agent application will find the active server with the fewest agents logged into it and place a call from that server to the agent upon login|| +PHONES WITHIN THIS PHONES ALIAS|| +Add New Shift|| +New Shift Addition|| +Modify Shift|| +Delete Shift|| +Shifts|| +Shift ID -<\/B> This is the short name of a Vicidial Shift Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 20 characters, minimum of 2 characters|| +Shift Name -<\/B> This is a more descriptive name of the Shift Definition. This is a short summary of the Shift definition. max 50 characters, minimum of 2 characters|| +Shift Start Time -<\/B> This is the time that the campaign shift begins. Must only be numbers, 9:30 AM would be 0930 and 5:00 PM would be 1700|| +Shift Length -<\/B> This is the time in Hours and Minutes that the campaign shift lasts. 8 hours would be 08:00 and 7 hours and 30 minutes would be 07:30|| +Shift Weekdays -<\/B> In this section you should choose the days of the week that this shift is active|| +Show Shifts|| +Add A New Shift|| +Shift ID: || +Shift Name: || +Shift Start Time: || +Shift End Time: || +SHIFT DEFINITION NOT ADDED|| +there is already a shift entry with this ID|| +Shift ID and name must be at least 2 characters in length|| +Shift Start Time must be 4 digits in length and be a valid time|| +Shift Length must be 5 characters in length and be 24 hours or less|| +SHIFT ADDED: || +MODIFY A SHIFT|| +USER GROUPS USING THIS SHIFT:|| +DELETE THIS SHIFT DEFINITION|| +MODIFY A SHIFT|| +SHIFT NOT DELETED|| +SHIFT DELETION CONFIRMATION: || +Click here to delete shift|| +SHIFT DELETION COMPLETED:|| +SHIFT MODIFIED|| +SHIFT LISTINGS:|| +Shift Weekdays: || +Sunday|| +Monday|| +Tuesday|| +Wednesday|| +Thursday|| +Friday|| +Saturday|| +Group Shifts: || +Group Shifts -<\/B> This is a selectable list of shifts that can restrict the agents login time on the system|| + Timeclock|| +Timeclock End Of Day -<\/B> This setting defines when all users are to be auto logged out of the timeclock system. Only runs once a day. must be only 4 digits 2 digit hour and 2 digit minutes in 24 hour time. Default is 0000|| +Timeclock Last Auto Logout -<\/B> This field displays the date of the last auto-logout|| +Timeclock Last Auto Logout: || +Timeclock End Of Day: || +SURVEY SETTINGS FOR THIS CAMPAIGN:|| +Modify Campaign Survey|| +Survey First Audio File -<\/B> This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign.|| +Survey DTMF Digits -<\/B> This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are || +Survey Not Interested Digit -<\/B> This field is where you define the customer digit pressed that will show they are Not Interested.|| +Survey Not Interested Status -<\/B> This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list.|| +Survey Opt-in Audio File -<\/B> This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken.|| +Survey Not Interested Audio File -<\/B> This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up|| +Survey Method -<\/B> This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory.|| +Survey No-Response Action -<\/B> This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit.|| +Survey Response Digit Map -<\/B> This is the section where you can define a description to go with each dtmf digit option that the customer may select.|| +Survey Xfer Extension -<\/B> If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension|| +Survey Campaign Recording Directory -<\/B> If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory.|| +SURVEY SETTINGS NOT MODIFIED|| +SURVEY SETTINGS MODIFIED|| +Survey First Audio File|| +Survey DTMF Digits|| +Survey Not Interested Digit|| +Survey Not Interested Status|| +Survey Opt-in Audio File|| +Survey Not Interested Audio File|| +Survey Method|| +Survey No-Response Action|| +Survey Response Digit Map|| +Survey Xfer Extension|| +Survey Campaign Recording Directory|| +Add Timeclock Log Record -<\/B> This option allows the user to add records to the timeclock log|| +Modify Timeclock Log Record -<\/B> This option allows the user to modify records in the timeclock log|| +Delete Timeclock Log Record -<\/B> This option allows the user to delete records in the timeclock log|| +Add Timeclock Log Record|| +Modify Timeclock Log Record|| +Delete Timeclock Log Record|| +USER GROUP TIMECLOCK STATUS REPORT|| +Click here to see the Timeclock Status for this user group|| +ADD NUMBERS TO THE DNC LIST|| +Phone Numbers: || +one phone number per line only|| +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 numbers to this list so that they will not be called by campaigns that use the internal DNC list|| + Time Sheet || +Timeclock Record Edit|| +Default date format with year month day|| +USA date format with month day year|| +European date format with day month year|| +Text date format with abbreviated month day|| +followed by 24 hour time|| +followed by 12 hour time|| +Agent Screen Header Date Format -<\/B> This menu allows you to choose the format of the date that shows up at the top of the VICIDIAL agent screen. The options for this setting are: default is|| +Agent Screen Customer Date Format -<\/B> This menu allows you to choose the format of the customer time zone date that shows up at the top of the Customer Information section of the VICIDIAL agent screen. The options for this setting are: default is|| +Agent Screen Customer Phone Format -<\/B> This menu allows you to choose the format of the customer phone number that shows up in the status section of the VICIDIAL agent screen. The options for this setting are: default is|| +dash separated phone number|| +dash separated number with area code in parenthesis|| +No formatting|| +with space after city code|| +space separated phone number|| +Agent Screen Header Date Format|| +Agent Screen Customer Date Format|| +Agent Screen Customer Phone Format|| +ERROR- There is a problem with the data that you entered, please go back|| +A timeclock session cannot overlap another timeclock session|| +Disable Alter Customer Phone -<\/B> If set to Y, does not change the customer phone number when an agent dispositions the call. Default is Y|| +Agent API Access -<\/B> This option allows the account to be used with the vicidial agent API commands|| +Agent Alter Customer Phone Override -<\/B> This option will override whatever the option is in the campaign for altering of customer phone number. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer phone number, no matter what the campaign setting is. Default is NOT_ACTIVE|| +Agent API Active -<\/B> If set to 1, this will allow the Agent API interface to function. Default is 0|| +Agent Alter Customer Phone Override: || +Agent API Access: || +Disable Alter Customer Phone: || +Agent API Active: || +Agent Display Queue Count -<\/B> If set to Y, when a customer is waiting for an agent, the Queue Calls display at the top of the agent screen will turn red and show the number of waiting calls. Default is Y|| +Agent Display Queue Count: || +agents in dead calls|| +QC Last Pull Time: || +and less than 43200 seconds or 12 hours|| +LEADS AT LIMIT|| +Lead counts taken from active lists in the campaign only|| +QC Get Record Launch-<\/B> This allows one of the following actions to be triggered upon a QC agent receiving a new record|| +QC Show Recording -<\/B> This allows for a recording that may be linked with the QC record to be display in the QC agent screen|| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions|| +QC Get Record Launch|| +QC Show Recording|| +QC Shift|| +Inbound Group QC Settings|| +QC Shift -<\/B> This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions|| +The Sale Category and Dead Lead Category are both used by the List Suggestion system when analyzing list statistics.|| +Sale Category: || +Dead Lead Category: || +Manual Dial Filter -<\/B> This allows you to filter the calls that agents make in manual dial mode for this campaign by any combination of the following: DNC - to kick out, CAMPAIGNLISTS - the number must be within the lists for the campaign, NONE - no filter on manual dial or fast dial lists|| +Manual Dial Filter: || +Agent Screen Clipboard Copy -<\/B> THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer|| +Agent Screen Clipboard Copy|| +EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record.|| +Agent Screen Extended Alt Dial -<\/B> This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information|| +Agent Screen Extended Alt Dial:|| +Use Campaign DNC List -<\/B> This defines whether this campaign is to filter leads against a DNC list that is specific to that campaign only. If it is set to Y, the hopper will look for each phone number in the campaign-specific DNC list before placing it in the hopper. If it is in the campaign-specific DNC list then it will change that lead status to DNCC so it cannot be dialed. Default is N.|| +Use Campaign DNC List|| +and possibly the campaign-specific DNC list|| +There is also the option to add leads to the campaign-specific DNC lists for those campaigns that have them|| +NOTE: Copying a campaign will copy all settings from the master campaign you select, but it will not copy a campaign-specific DNC list if there was one on the selected master campaign|| +Add New || +Copy || +New DID Addition|| +New Copied DID Addition|| +Modify || +Delete || +Play Place in Line -<\/B> This defines whether the caller will hear their place in line when they enter the queue as well as when they hear the announcemend. Default is N|| +Play Estimated Hold Time -<\/B> This defines whether the caller will hear the estimated hold time before they are transferred to an agent. Default is N|| +Hold Time Option -<\/B> This allows you to specify the routing of the call if the estimated hold time is over the amount of seconds specified below. Default is NONE|| +Hold Time Option Seconds -<\/B> If Hold Time Option is set to anything but NONE, this is the number of seconds of estimated hold time that will trigger the hold time option. Default is 360 seconds|| +Hold Time Option Extension -<\/B> If Hold Time Option is set to EXTENSION, this is the dialplan extension that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|| +Hold Time Option Voicemail -<\/B> If Hold Time Option is set to VOICEMAIL, this is the voicemail box that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|| +Hold Time Option Transfer In-Group -<\/B> If Hold Time Option is set to IN_GROUP, this is the inbound group that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds|| +Hold Time Option Callback Filename -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the filename prompt that is played before the call is logged as a new lead to the list ID specified below if the estimated hold time exceeds the Hold Time Option Seconds|| +Hold Time Option Callback List ID -<\/B> If Hold Time Option is set to CALLERID_CALLBACK, this is the List ID the call is added to as a new lead if the estimated hold time exceeds the Hold Time Option Seconds|| +Hold Recall Transfer In-Group -<\/B> If a customer calls back to this in-group more than once and this is not set to NONE, then the call will automatically be sent on to the In-Group selected in this field. Default is NONE|| +No Delay Call Route -<\/B> Setting this to Y will remove all wait times and audio prompts and attempt to send the call right to an agent. Does not override welcome message or on hold prompt settings. Default is N|| +Play Welcome Message -<\/B> These settings select when to play the defined welcome message, ALWAYS will play it every time, NEVER will never play it, IF_WAIT_ONLY will only play the welcome message if the call does not immediately go to an agent, and YES_UNLESS_NODELAY will always play the welcome message unless the NO_DELAY setting is enabled. Default is ALWAYS|| +Play Place in Line: || +Play Estimated Hold Time: || +Hold Time Option: || +Hold Time Option Seconds: || +Hold Time Option Extension: || +Hold Time Option Voicemail: || +Hold Time Option Transfer In-Group: || +Hold Time Option Callback Filename: || +Hold Time Option Callback List ID: || +Hold Recall Transfer In-Group: || +No Delay Call Route: || +Play Welcome Message: || +DID Extension -<\/B> This is the number, extension or DID that will trigger this entry and that you will route within the system using this function|| +DID Description -<\/B> This is the description of the DID routing entry|| +DID Active -<\/B> This the field where you set the DID entry to active or not. Default is Y|| +DID Route -<\/B> This the type of route that you set the DID to use. EXTEN will send calls to the extension entered below, VOICEMAIL will send calls directly to the voicemail box entered below, AGENT will send calls to a VICIDIAL agent if they are logged in, PHONE will send the call to a phones entry selected below, IN_GROUP will send calls directly to the specified inbound group. Default is EXTEN|| +Extension -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan extension that calls will be sent to. Default is 9998811112, no-service|| +Extension Context -<\/B> If EXTEN is selected as the DID Route, then this is the dialplan context that calls will be sent to. Default is default|| +Voicemail Box -<\/B> If VOICEMAIL is selected as the DID Route, then this is the voicemail box that calls will be sent to. Default is empty|| +Phone Extension -<\/B> If PHONE is selected as the DID Route, then this is the phone extension that calls will be sent to.|| +Phone Server IP -<\/B> If PHONE is selected as the DID Route, then this is the server IP for the phone extension that calls will be sent to|| +User Agent -<\/B> If AGENT is selected as the DID Route, then this is the VICIDIAL Agent that calls will be sent to|| +User Unavailable Action -<\/B> If AGENT is selected as the DID Route, and the user is not logged in or available, then this is the route that the calls will take|| +User Route Settings In-Group - If AGENT is selected as the DID Route, then this is the In-Group that will be used for the queue settings as the caller is waiting to be sent to the agent. Default is AGENTDIRECT|| +In-Group ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the In-Group that calls will be sent to|| +In-Group Call Handle Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attampt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attampt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attampt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue. Default is CID|| +In-Group Agent Search Method -<\/B> If IN_GROUP is selected as the DID Route, then this is the agent search method to be used by the inbound group, LO is Load-Balanced-Overflow and will try to send the call to an agent on the local server before trying to send it to an agent on another server, LB is Load-Balanced and will try to send the call to the next agent no matter what server they are on, SO is Server-Only and will only try to send the calls to agents on the server that the call came in on. Default is LB|| +In-Group List ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the List ID that leads may be searched through and that leads will be inserted into if necessary|| +In-Group Campaign ID -<\/B> If IN_GROUP is selected as the DID Route, then this is the Campaign ID that leads may be searched for in if the call handle method is CIDLOOKUPRC|| +In-Group Phone Code -<\/B> If IN_GROUP is selected as the DID Route, then this is the Phone Code used if a new lead is created|| +Phones Email -<\/B> The email address associated with this phone entry. This is used for voicemail settings|| +ADD A NEW DID|| +DID Extension: || +DID Description: || +COPY DID|| +Source DID: || +DID NOT ADDED|| +there is already a DID in the system with this ID|| +there is already a DID in the system with this extension|| +DID NOT MODIFIED|| +DID MODIFIED|| +MODIFY A DID RECORD: || +DID Route: || +Extension: || +Extension Context: || +Voicemail Box: || +Phone Extension: || +User Agent: || +User Unavailable Action: || +User Route Settings In-Group: || +In-Group ID: || +In-Group Call Handle Method: || +In-Group Agent Search Method: || +In-Group List ID: || +In-Group Campaign ID: || +In-Group Phone Code: || +DELETE THIS DID|| +Email: || +DID NOT DELETED|| +DID DELETION CONFIRMATION|| +Click here to delete || +DID DELETION COMPLETED|| +Delete DIDs: || +Modify DIDs: || +To disable the On Hold Prompt, set the interval to 0|| +3-Way Call Outbound CallerID -<\/B> This defines what is sent out as the outbound callerID number from 3-way calls placed by the agent, CAMPAIGN uses the custom campaign callerID, CUSTOMER uses the number of the customer that is active on the agents screen and AGENT_PHONE uses the callerID for the phone that the agent is logged into|| +3-Way Call Outbound CallerID:|| +INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls|| +FORCE will force the agents to choose a PAUSE code if they click on the PAUSE button|| +3-Way Call Dial Prefix -<\/B> This defines what is used as the dial prefix for 3-way calls, default is empty so the campaign dial prefix is used, passthru so you can hear ringing is 88|| +3-Way Call Dial Prefix|| +Force Timeclock Login -<\/B> This option allows you to not let an agent log in to the VICIDIAL agent interface if they have not logged into the timeclock. Default is N. There is an option to exempt admin users, levels 8 and 9|| +Force Timeclock Login|| +Stats Percent of Calls Answered Within X seconds - This field allows you to set the number of hold seconds that the realtime stats display will use to calculate the percentage of answered calls that were answered within X number of seconds on hold|| +Stats Percent of Calls Answered Within X seconds|| +Web Form Target-<\/B> This is where you can set the custom web page frame that the web form will be opened in when the user clicks on the WEB FORM button. Default is _blank.|| +Web Form Target|| +To customize the query string after the web form, simply begin the web form with VAR and then the URL that you want to use, replacing the variables with the variable names that you want to use --A--phone_number--B-- just like in the SCRIPTS tab section|| +Recording Web Link -<\/B> This setting allows you to override the default of the display of the recording link in the admin web pages. Default is SERVER_IP|| +Alternate Recording Server IP -<\/B> This setting is where you can put a server IP or other machine name that can be used in place of the server_ip in the links to recordings within the admin web pages. Default is empty|| +Recording Web Link|| +Enable Vtiger Integration -<\/B> This setting allows you to enable Vtiger integration with VICIDIAL. Currently links to Vtiger admin and search as well as user replication are the only integration features available. Default is 0|| +Vtiger DB Server IP -<\/B> This is the IP address of the database for your Vtiger installation|| +Vtiger Database Name -<\/B> This is the database name for your Vtiger database|| +Vtiger Database Login -<\/B> This is the user name used to log in to your Vtiger database|| +Vtiger Database Password -<\/B> This is the password used to log in to your Vtiger database|| +Vtiger URL -<\/B> This is the URL or web site address used to get to your Vtiger installation|| +Enable Vtiger Integration:|| +Vtiger DB Server IP|| +Vtiger Database Name|| +Vtiger Database Login|| +Vtiger Database Password|| +Vtiger URL|| +VTIGER HOME|| +Active -<\/B> This field defines whether the user is active in the system and can use VICIDIAL resources. Default is Y|| +show only active users|| +show all users|| +Vtiger Search Category -<\/B> If Vtiger integration is enabled in the system settings then this setting will define where the vtiger_search.php page will search for the phone number that was entered. There are 4 options that can be used in this field: LEAD- This option will search through the Vtiger leads only, ACCOUNT- This option will search through the Vtiger accounts and all contacts and sub-contacts for the phone number, VENDOR- This option will only search through the Vtiger vendors, ACCTID- This option works only for accounts and it will take the vicidial vendor_lead_code field and try to search for the Vtiger account ID. If unsuccessful it will try any other methods listed that you have selected. Multiple options can be used for each search, but on large databases this is not recommended. Default is LEAD|| +Vtiger Search Category:|| +ACTIVE LISTS CHANGED|| +SUBMIT ACTIVE LIST CHANGES|| +LAST CALL DATE|| +User Group Bulk Change|| +Bulk Group Change|| +Vtiger Create Call Record -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether a new Vtiger activity record is created for the call when the agent goes to the vtiger_search page. Default is Y|| +Vtiger Create Call Record:|| +Vtiger Create Lead Record -<\/B> If Vtiger integration is enabled in the system settings and Vtiger Search Category includes LEAD then this setting will define whether a new Vtiger lead record is created when the agent goes to the vtiger_search page and no record is found to have the call phone number. Default is Y|| +Vtiger Create Lead Record:|| +Vtiger Screen Login -<\/B> If Vtiger integration is enabled in the system settings then this setting will define whether the user is logged into the Vtiger interface automatically when they login to VICIDIAL. Default is Y|| +Vtiger Screen Login:|| +Alert Enabled -<\/B> This field shows whether the agent has web browser alerts enabled for when calls come into their vicidial.php session. Default is 0 for NO|| +Alert Enabled:|| +QC Features Active -<\/B> This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive|| +Outbound Auto-Dial Active -<\/B> This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active|| +QC Features Active:|| +Outbound Auto-Dial Active:|| +Close Panel|| +Choose Report Display Options|| +To select more than 1 campaign, hold down the Ctrl key and click|| +CPD AMD Action -<\/B> If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED|| +CPD AMD Action:|| +Click here for user multiple day status detail report|| +Click here to download this list|| +Download Lists:|| +Active Asterisk Server -<\/B> If Asterisk is not running on this server, or if VICIDIAL should not be using this server, or if are only using this server for other scripts like the hopper loading script you would want to set this to N. Default is Y|| +Generate conf files -<\/B> If you would like the system to auto-generate asterisk conf files based upon the phones entries, carrier entries and load balancing setup within VICIDIAL then set this to Y. Default is Y|| +Rebuild conf files -<\/B> If you want to force a rebuilding of the Asterisk conf files or if any of the phones or carrier entries have changed then this should be set to Y. After the conf files have been generated and Asterisk has been reloaded then this will be changed to N. Default is Y|| +Active Asterisk Server:|| +Generate conf files:|| +Rebuild conf files:|| +Show Templates|| +Add A New Template|| +ADD NEW CONF TEMPLATE|| +ADD NEW CARRIER|| +ADDING NEW CONF TEMPLATE|| +ADDING NEW CARRIER|| +MODIFY CONF TEMPLATE|| +MODIFY CARRIER|| +DELETE CONF TEMPLATE|| +DELETE CARRIER|| +CONF TEMPLATE LIST|| +CARRIER LIST|| +Template ID:|| +Template Name:|| +Template Contents:|| +Carrier ID:|| +Carrier Name:|| +Registration String:|| +Account Entry:|| +Protocol:|| +Globals String:|| +Dialplan Entry:|| +CONF TEMPLATE NOT ADDED|| +there is already a template in the system with this ID|| +CONF TEMPLATE ADDED|| +CARRIER NOT ADDED|| +there is already a carrier in the system with this ID|| +CONF TEMPLATE NOT MODIFIED|| +CARRIER NOT MODIFIED|| +CARRIER MODIFIED|| +CONF TEMPLATE NOT DELETED|| +Template ID be at least 2 characters in length|| +CONF TEMPLATE DELETION CONFIRMATION|| +Click here to delete conf template|| +CARRIER NOT DELETED|| +Carrier ID be at least 2 characters in length|| +CARRIER DELETION CONFIRMATION|| +Click here to delete carrier|| +CONF TEMPLATE DELETION COMPLETED|| +CARRIER DELETION COMPLETED|| +MODIFY A CONF TEMPLATE RECORD|| +DELETE THIS CONF TEMPLATE|| +MODIFY A CARRIER RECORD|| +DELETE THIS CARRIER|| +CARRIERS WITHIN THIS SERVER|| +CONF TEMPLATE LISTINGS|| +CARRIER LISTINGS|| +PHONES USING THIS CONF TEMPLATE|| +CARRIERS USING THIS CONF TEMPLATE|| +Conf Override:|| +Template ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the conf template throughout the system|| +Template Name -<\/B> This is the descriptive name of the conf file template entry|| +Template Contents -<\/B> This field is where you can enter in the specific settings to be used by all phones and-or carriers that are set to use this conf template. Fields that should NOT be included in this box are: secret, accountcode, account, username and mailbox|| +Carrier ID -<\/B> This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the carrier for this specific entry throughout the system|| +Carrier Name -<\/B> This is the descriptive name of the carrier entry|| +Registration String -<\/B> This field is where you can enter in the exact string needed in the IAX or SIP configuration file to register to the provider. Optional but highly recommended if your carrier allows registration|| +Template ID -<\/B> This optional field allows you to choose a conf file template for this carrier entry|| +Account Entry -<\/B> This field is used if you have not selected a template to use, and it is where you can enter in the specific account settings to be used for this carrier|| +Protocol -<\/B> This field allows you to define the protocol to use for the carrier entry. Currently only IAX and SIP are supported|| +Globals String -<\/B> This optional field allows you to define a global variable to use for the carrier in the dialplan|| +Dialplan Entry -<\/B> This optional field allows you to define a set of dialplan entries to use for this carrier|| +Server IP -<\/B> This is the server that this specific carrier record is associated with|| +Active -<\/B> This defines whether the carrier will be included in the auto-generated conf files or not|| +Conf Override Settings -<\/B> If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated|| +Template ID -<\/B> This is the conf file template ID that this phone entry will use for its Asterisk settings. Default is --NONE--|| +If you will be taking in inbound calls from this carrier trunk you might want to set the context=trunkinbound within this field so that you can use the DID handling process within VICIDIAL|| +There is a reserved default DID that you can use which is just the word -default- without the dashes, that will allos you to send any call that does not match any other existing patterns to the default DID|| +Campaign VDAD extension|| +This field allows for a custom VDAD transfer extension. This allows you to use different call handling methods depending upon your campaign.|| + - 8364 - same as 8368|| + - 8365 - Will send the call only to an agent on the same server as the call is on|| + - 8366 - Used for press-1 and survey campaigns|| + - 8367 - Will try to first send the call to an agent on the local server, then it will look on other servers|| + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on|| + - 8369 - Used for Answering Machine Detection after that, same behavior as 8368|| + - 8373 - Used for Answering Machine Detection after that same behavior as 8366|| +Also in this section are the WEB VARs for each campaign. These allow each agent to have a different variable string that can be added to the WEB FORM or SCRIPT tab URLs by simply putting --A--web_vars--B-- as you would put any other field.|| +Group Alias List|| +Add A New Group Alias|| +ADD NEW GROUP ALIAS|| +ADDING NEW GROUP ALIAS|| +MODIFY GROUP ALIAS|| +DELETE GROUP ALIAS|| +GROUP ALIAS LIST|| +GROUP ALIAS LISTINGS|| +MODIFY A GROUP ALIAS RECORD|| +Group Alias ID|| +Group Alias Name|| +CallerID Number|| +CallerID Name|| +DELETE THIS GROUP ALIAS|| +GROUP ALIAS NOT MODIFIED|| +GROUP ALIAS MODIFIED|| +ADD A NEW GROUP ALIAS|| +MODIFY A GROUP ALIAS RECORD|| +GROUP ALIAS NOT ADDED|| +GROUP ALIAS ADDED|| +GROUP ALIAS NOT DELETED|| +GROUP ALIAS DELETION CONFIRMATION|| +Click here to delete group alias|| +GROUP ALIAS DELETION COMPLETED|| +Group Alias ID -<\/B> The ID of the group alias used by agents to dial out calls from the VICIDIAL agent interface with different Caller IDs. no spaces or other special characters allowed. Must be between 2 and 20 characters in length|| +Group Alias Name -<\/B> The name used to describe a group alias, Must be between 2 and 50 characters in length|| +Caller ID Number -<\/B> The Caller ID number used in this Group Alias. Must be digits only|| +Caller ID Name -<\/B> The Caller ID name that can be sent out with this Group Alias. As far as we know this will only work in Canada on PRI circuits and using an IAX loop trunk through Asterisk|| +Group Alias Allowed -<\/B> If you want to allow your agents to use group aliases then you need to set this to Y. Group Aliases are explained more in the Admin section, they allow agents to select different callerIDs for outbound manual calls that they may place. Default is N|| +Default Group Alias -<\/B> If you have allowed Group Aliases then this is the group alias that is selected first by default when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|| +Default Group Alias -<\/B> If you have allowed Group Aliases for the campaign that the agent is logged into then this is the group alias that is selected first by default on a call coming in from this inbound group when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty|| +Group Alias Allowed|| +Default Group Alias|| +AGENT_CHOOSE allows the agent to choose which callerID to use for 3-way calls from a list of choices.|| +you cannot use reserved words in group aliases|| +Agent Shift Enforcement Override|| +Manager Shift Enforcement Override|| +Shift Enforcement|| +Max Calls per Second|| +Max FILL Calls per Second|| +This setting will override whatever the users user group has set for Shift Enforcement. DISABLED will use the user group setting. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is DISABLED.|| +This setting if set to 1 will allow a manager to enter their user and password on an agent screen to override the shift restrictions on an agent session if the agent is trying to log in outside of their shift. Default is 0.|| +This setting allows you to restrict agent logins based upon the shifts that are selected below. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is OFF.|| +This setting determines the maximum number of calls that can be placed by the outbound auto-dialing script on this server per second. Must be from 1 to 100. Default is 20.|| +This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40.|| +System Load|| +Live Channels|| +Disk Usage|| +These two statistics show the loadavg of a system times 100 and the CPU usage percentage of the server and is updated every minute. The loadavg should on average be below 100 multiplied by the number of CPU cores your system has, for optimal performance. The CPU usage percentage should stay below 50 for optimal performance.|| +This field shows the current number of Asterisk channels that are live on the system right now. It is important to note that the number of Asterisk channels is usually much higher than the number of actual calls on a system. This field is updated once every minute.|| +This field will show the disk usage for every partition on this server. This field is updated once every minute.|| +ADMIN CHANGE LOG|| +USER ADMIN CHANGE LOG|| +SECTION ADMIN CHANGE LOG|| +DETAIL ADMIN CHANGE LOG|| +Last 10000 records|| +Changes made by|| +Record Detail|| +Section Records|| +Click here to see Admin chages to this record|| +Click here to see Admin chages to this campaign|| +Click here to see Admin chages to this list|| +Click here to see Admin chages to this In-Group|| +Click here to see Admin chages to this DID|| +Click here to see Admin chages to this remote agent|| +Click here to see Admin chages to this user group|| +Click here to see Admin chages to this script|| +Click here to see Admin chages to this filter|| +Click here to see Admin chages to this call time|| +Click here to see Admin chages to this shift|| +Click here to see Admin chages to this phone alias|| +Click here to see Admin chages to this group alias|| +Click here to see Admin chages to this server|| +Click here to see Admin chages to this conf template|| +Click here to see Admin chages to this carrier|| +Click here to see Admin chages to the system settings|| +Export Reports|| +This setting if set to 1 will allow a manager to access the export call reports on the REPORTS screen. Default is 0.|| +This setting if set to 1 will allow a manager to click on the download list link at the bottom of a list modification screen to export the entire contents of a list to a flat data file. Default is 0.|| +Export Calls Report|| +EXPORT CALLS REPORT|| +For the Export Calls Report, the following field order is used for exports|| +Timeclock|| +Logout|| +Show Users|| +Add A New User|| +Search For A User|| +User Stats|| +User Status|| +Time Sheet|| +Days Status|| +Campaigns Main|| +Statuses|| +HotKeys|| +Lead Recycle|| +Auto Alt-Dial|| +Auto Alt Dial|| +List Mix|| +Pause Codes|| +Basic|| +Detail|| +Survey|| +Real-Time|| +CAMPAIGN ID|| +DIAL PLAN|| +DIAL METHOD|| +LEADS COUNT|| +LEAD ORDER|| +DIAL STATUSES|| +SCRIPT ID|| +SCRIPT NAME|| +USER GROUP|| +GROUP NAME|| +PRIORITY|| +FORCE TIMECLOCK|| +CALLTIME ID|| +CALLTIME NAME|| +DEFAULT START|| +DEFAULT STOP|| +SHIFT ID|| +SHIFT NAME|| +SHIFT START|| +SHIFT LENGTH|| +WEEKDAYS|| +Template ID|| +Template Name|| +Carrier ID|| +Carrier Name|| +Registration|| +Active|| +USER ID|| +FULL NAME|| +LEVEL|| +LINKS|| +TRUNKS|| +HUMAN|| +ANSWER|| +CATEGORY|| +STATUSES IN THIS CATEGORY|| +Display|| +Dates|| +PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK|| +PLEASE SELECT A USER AND DATE-TIME ABOVE AND CLICK|| +PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK|| +PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT|| +DOWNLOAD|| +Users|| +User|| +Reports|| +OUTBOUND|| +INBOUND|| +Server Stats and Reports|| +Click here to see a VDAD report for this campaign|| +Show DIDs|| +Add A New DID|| +Templates|| +Carriers|| +Carrier Name|| + + +############################################################ CLIENT + +Gender: || +Date of Birth: || +YOU MUST BE PAUSED TO CHANGE GROUPS|| +Calls in Queue:|| + Timeclock|| +The user and password you entered are not active in the system|| +Please try again|| +You cannot log in or out within 30 seconds of your last login or logout|| +You have now logged-out|| +You logged out at || +Amount of time you were logged-in: || +ERROR: timeclock log entry already made: || +BACK to Agent Login Screen|| +BACK to Administration|| +BACK to Welcome Screen|| +Time since you were last logged-in: || +You last logged-out at: || +Click LOGIN below to log-in|| +Amount of time you have been logged-in: || +You logged-in at:|| +Click LOGOUT below to log-out|| +Undefined|| +This phone number is not in the campaign lists|| +Unspecified error|| +Extended Alt Phone Information: || +ALT DIAL NUMBER:|| +Phone Code and Number:|| +Notes: || +Active: || +Alt Count: || +Change this phone number to INACTIVE|| +Change this phone number to ACTIVE|| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|| +There is a time synchronization problem with your system, please tell your system administrator|| +Preview Call|| +SELECT A GROUP ALIAS|| +Group Alias Selection|| +Click Here to Choose a Group Alias|| +Group Alias|| +ERROR: There are no Shifts enabled for your user group|| +ERROR: You are not allowed to log in outside of your shift|| +MANAGER OVERRIDE|| +Your Shift is over or has changed, you have been logged out of your session|| + + +############################################################ MANAGER Manual + + +Add agc/timeclock.php to all agent definitions files + +############################################################ AGENT Manual + diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.txt new file mode 100644 index 00000000..e31e8d83 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.0.txt @@ -0,0 +1,51 @@ +############################################################ ADMIN + +If you want to allow Consultative Transfers, a fronter to a closer, you can place CXFER as one of the number-to-dial presets and the proper dialstring will be sent to do a Local Consultative Transfer, then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER or CXFER, for instance if you want to do Internal Consultative transfers instead of Local you would put CXFER90009 in the number-to-dial field|| +System Performance -<\/B> Setting this option to Y will enable logging of system performance stats for the server machine including system load, system processes and Asterisk channels in use. Default is N|| +Server Logs -<\/B> Setting this option to Y will enable logging of all VICIDIAL related scripts to their text log files. Setting this to N will stop writing logs to files for these processes, also the screen logging of asterisk will be disabled if this is set to N when Asterisk is started. Default is Y|| +AGI Output -<\/B> Setting this option to NONE will disable output from all VICIDIAL related AGI scripts. Setting this to STDERR will send the AGI output to the Asterisk CLI. Setting this to FILE will send the output to a file in the logs directory. Setting this to BOTH will send output to both the Asterisk CLI and a log file. Default is FILE|| +Recording Delay -<\/B> For ALLCALLS and ALLFORCE recording only. This setting will delay the starting of the recording on all calls for the number of seconds specified in this field. Default is 0|| +Omit Phone Code -<\/B> This field allows you to leave out the phone_code field while dialing within VICIDIAL. For instance if you are dialing in the UK from the UK you would have 44 in as your phone_code field for all leads, but you just want to dial 10 digits in your dialplan extensions.conf to place calls instead of 44 then 10 digits. Default is N +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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load +Dial Method -<\/B> This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift(as defined by call_time selected for campaign) and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods +Available Only Tally -<\/B> This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N +Drop Percentage Limit -<\/B> This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO +Maximum Adapt Dial Level -<\/B> This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0 +Latest Server Time -<\/B> This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling +Adapt Intensity Modifier -<\/B> This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods +Dial Level Difference Target -<\/B> This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods +System Performance +Server Logs +AGI Output +Recording Delay +Omit Phone Code +Campaign Recording +Dial Method +Available Only Tally +Drop Percentage Limit +Maximum Adapt Dial Level +Latest Server Time +Adapt Intensity Modifier +Dial Level Difference Target +You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode + +############################################################ CLIENT + +Previous Callback Information|| +Last Call: || +CallBack: || +Agent: || +Comments: || + +############################################################ ADMIN Manual + +Add consultative transfer info to Campaign modification screen info + +Add note about phone_code being manditory for proper GMT offset encoding for proper time zone. + + +############################################################ AGENT Manual + +Add consultative transfer info to transfer-conf frame info + +If you want to Consultative Transfer, a fronter to a closer, you must place CXFER in the number-to-dial field(Your manager may have set a preset to do this) and the proper dialstring will be sent to do a Local Consultative Transfer. Once the call is picked up and you have finished your introductions you can leave the customer with the closer agent and move on to your next call by clicking on the LEAVE 3WAY CALL button. If you want to Blind transfer a customer to an internal IVR then you must place AXFER in the number-to-dial field(Your manager may have set a preset to do this). diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.2.0.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.2.0.txt new file mode 100644 index 00000000..c6cb9456 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/TO_BE_TRANSLATED_2.2.0.txt @@ -0,0 +1,408 @@ +############################################################ ADMIN +Delete From DNC Lists|| +This setting if set to 1 will allow a manager to remove phone numbers from the DNC lists in the VICIDIAL system|| +DNC NOT DELETED|| +This phone number is not in the Do Not Call List|| +DNC DELETED|| +ADD OR DELETE NUMBERS FROM THE DNC LIST|| +Add or Delete|| +Add-Delete Number From DNC|| +Vtiger Search Dead Accounts|| +If Vtiger integration is enabled in the system settings then this setting will define whether deleted accounts will be searched when the agent clicks WEB FORM to search in the Vtiger system. DISABLED- deleted leads will not be searched, ASK- deleted leads will be searched and the vtiger search web page will ask the agent if they want to make the Vtiger account active, RESURRECT- will automatically make the deleted account active again and will take the agent to the account screen without delay upon clicking on WEB FORM. Default is DISABLED|| +The DISPO option will create a call record for the Vtiger account without the agent needing to go to the vtiger search page through the WEB FORM|| +The NEW_WINDOW option will open a new window upon login to the VICIDIAL agent screen|| +Vtiger Status Call|| +If Vtiger integration is enabled in the system settings then this setting will define whether the status of the Vtiger Account will be updated with the status of the VICIDIAL call after it has been dispositioned. Default is N|| +There are also 5 additional settings that will define the kind of status: sale, dnc, customer contact, not interested, unworkable|| +If the customer is on hold and hears this estimated hold time message, the minimum time that will be played is 15 seconds|| +Email, User Code and Territory|| +These are optional fields|| +All options except for the Not Interested, Third and Fourth digit options will move on to the Survey Method call path|| +Survey Third Digit|| +This allows for a third call path if the Third digit as defined in this field is pressed by the customer|| +Survey Fourth Digit|| +This allows for a fourth call path if the Fourth digit as defined in this field is pressed by the customer|| +Survey Third Audio File|| +Survey Fourth Audio File|| +This is the third audio file to be played upon the selection by the customer of the Third Digit option|| +Survey Third Status|| +Survey Fourth Status|| +This is the third status used for the call upon the selection by the customer of the Third Digit option|| +Survey Third Extension|| +Survey Fourth Extension|| +This is the third extension used for the call upon the selection by the customer of the Third Digit option. Default is 8300 which immediately hangs up the call after the Audio File message is played|| +RANDOM: Randomly grabs lead within the statuses and lists defined|| +UP LAST CALL TIME: Sorts by the newest local call time for the leads|| +DOWN LAST CALL TIME: Sorts by the oldest local call time for the leads|| +WARNING, we only recommend List Mix for advanced users, Please read the ViciDial Manager Manual|| +Add Call Menu|| +Copy Call Menu|| +New Call Menu|| +Modify Call Menu|| +Delete Call Menu|| +Call Menus|| +Menu ID|| +This is the ID for this step of the call menu. This will also show up as the context that is used in the dialplan for this call menu|| +Menu Name|| +This field is the descriptive name for the call menu|| +Menu Prompt|| +This field contains the file name of the audio prompt to play at the beginning of this menu|| +Menu Timeout|| +This field is where you set the timeout in seconds that the menu will wait for the caller to enter in a DTMF choice|| +Menu Timeout Prompt|| +This field contains the file name of the audio prompt to play when the timeout has been reached. Default is NONE to play no audio at timeout|| +Menu Invalid Prompt|| +This field contains the file name of the audio prompt to play when the caller has selected an invalid option. Default is NONE to play no audio at invalid|| +Menu Repeat|| +This field is where you define the number of times that the menu will play after the first time if no valid choice is made by the caller. Default is 1 to repeat the menu once|| +Menu Time Check|| +This field is where you can select whether to restrict the Call Menu access to the specific hours set up in the selected Call Time. If the Call Time is blank, this setting will be ignored. Default is 0 for disabled|| +Call Time ID|| +This is the Call Time ID that will be used to restrict calling times if the Menu Time Check option is enabled|| +Track Calls in Real-Time Report|| +This field is where you can select whether you want the call to be tracked in the Real-time screen as an incoming IVR type call. Default is 1 for active|| +Option Value|| +This field is where you define the menu option, possible choices are|| +Option Route|| +This menu contains the options for where to send the call if this option is selected|| +The special option TIMECHECK can be used only if you have Menu Time Check enabled and there is a Call Time defined for the Menu|| +Option Route Value|| +This field is where you enter the value that defines where in the selected Option Route that the call is to be directed to|| +Option Route Value Context|| +This field is optional and only used for EXTENSION Option Routes|| +ADD A NEW CALL MENU|| +COPY CALL MENU|| +This menu contains the options for where to send the call if this option is selected: CALLMENU,INGROUP,DID,HANGUP,EXTENSION,PHONE. For CALLMENU, the Route Value should be the Menu ID of the Call Menu that you want the call sent to. For INGROUP, the In-Group that you want the call to be sent to needs to be selected as well as the other 5 options that need to be set to properly route a call to an Inbound Group. For DID, the Route Value needs to be the DID pattern that you want to send the call to. For HANGUP, the Route Value can be the name of an audio file to play before hanging up the call. For EXTENSION, the Route Value needs to be the dialplan extension you want to send the call to, and the Route Value Context is the context that extension is located in, if left blank the context will default to default. For PHONE, the Route Value needs to be the phone login value for the phones entry that you want to send the call to. For VOICEMAIL, the Route Value needs to be the voicemail box number, the unavailable mesage will be played. For AGI, the Route Value needs to be the agi script and any values taht need to be passed to it.|| +Option Description|| +This field is where you can describe the option, this description will be put into the dialplan as a comment above the option|| +Source Menu|| +CALL MENU NOT ADDED|| +Call Menu ID must be between 2 and 50 characters in length and contain no|| +CALL MENU ADDED|| +CALL MENU NOT MODIFIED|| +CALL MENU MODIFIED|| +Click here to see Admin chages to this CALL MENU|| +DELETE THIS CALL MENU|| +MODIFY A CALL MENU RECORD|| +Time Check|| +No Time Check|| +Realtime Tracking|| +No Realtime Tracking|| +Call Menu Options|| +Option|| +CALL MENU NOT DELETED|| +CALL MENU DELETION CONFIRMATION|| +Click here to delete CALL MENU|| +CALL MENU DELETION COMPLETED|| +CALL MENU LISTINGS|| +CALLMENU will send the call to the defined Call Menu|| +Call Menu|| +If CALLMENU is selected as the DID Route, then this is the Call Menu that calls will be sent to|| +Show Call Menus|| +Add A New Call Menu|| +Copy Call Menu|| +To delete an Option, just set the Route to REMOVE and the option will be deleted when you click the SUBMIT button|| +Agent Only Callback Campaign Lock|| +This option defines whether AGENTONLY callbacks are locked to the campaign that the agent originally created them under. Setting this to 1 means that the agent can only dial them from the campaign they were set under, 0 means that the agent can access them no matter what campaign they are logged into. Default is 1|| +Central Sound Control Active|| +This option defines whether the sound synchronization system is active across all servers. Default is 0 for inactive|| +Sounds Web Server|| +This is the server name or IP address of the web server that will be handling the sound files on this system, this must match the server name or IP of the machine you are trying to access the audio_store.php webpage on or it will not work. Default is 127.0.0.1|| +Sounds Web Directory|| +This auto-generated directory name is created at random by the system as the place that the audio store will be kept. All audio files will reside in this directory|| +Audio Store|| +Audio File to Upload|| +This utility allows you to upload audio files to the web server so that they can be distributed to all of the ViciDial servers in a multi-server cluster. An important note, only two audio file types will work, .wav files that are PCM 16bit 8k and .gsm files that are 8bit 8k. Please verify that your files are properly formatted before uploading them here|| +Sounds Update|| +If you want to force a check of the sound files on this server, and the central audio store is enabled as a system setting, then this field will allow the sounds updater to run at the next top of the minute. Any time an audio file is uploaded from the web interface this is automatically set to Y for all servers that have Asterisk active. Default is N|| +Active Voicemail Server|| +In multi-server systems, this is the server that will handle all voicemail boxes. This server is also where the dial-in generated prompts will be uploaded from, the 8168 recordings|| +Auto Dial Limit|| +This is the maximum limit of the auto dial level in the campaign screen|| +User Territories are not active on this system|| +User Territories|| +List All Territories:|| +User Territories Active|| +This setting allows you to enable the User Territories setttings from the user modification screen. This feature was added to allow for more integration with a customized Vtiger installation but can have applications in a pure ViciDial system as well. Default is 0 for disabled|| +List Territories|| +Add Territory|| +Add User Territory|| +Territory|| +Territory Description|| +Territory and Territory Description must be filled in|| +there is already a territory in the system with this name|| +Territory Added|| +Modify Territory|| +Territory not found|| +This territory is not in the system with this name|| +Territory Modified|| +Territory must be filled in|| +Territory Deleted|| +Delete This Territory|| +Vtiger Accounts|| +Agents|| +Territory, User and Level must be filled in|| +this territory user is already in the system|| +User Territory Added|| +this territory user is not in the system|| +User Territory Modified|| +Territory and User must be filled in|| +User Territory Deleted|| +Vtiger Change Territory Owner|| +Had to add user territory|| +Vtiger Territory Owner Changed|| +Records Changed|| +ViciDial Recording Limit|| +This field is where you set the maximum number of minutes that a call recording initiated by ViciDial can be. Default is 60 minutes|| +This is the dial plan context that the agent applications, like ViciDial, primarily use. 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. default is default|| +Phone Context|| +This is the dial plan context that this phone will use to dial out. If you are running a call center and you do not want your agents to be able to dial out outside of the ViciDial applicaiton for example, then you would set this field to a dialplan context that does not exist, something like agent-nodial. default is default|| +Use the HIDE option to completely remove the customer phone number from the agent display|| +Click here to see a traffic report for this DID|| +Agent Time Detail|| +User Timeclock Detail Report|| +Carrier Logging Active|| +This setting allows you to log all hangup return codes for any outbound list dialing calls that you are placing. Default is N.|| +Drop Lockout Time|| +This is a number of hours that DROP abandon calls will be prevented from being dialed, to disable set to 0. This setting is very useful in countries like the UK where there are regulations preventing the attempted calling of customers within 72 hours of an Abandon, or DROP. Default is 0|| +Phone Ring Timeout|| +This is the amount of time, in seconds, that the phone will ring in the dialplan before sending the call to voicemail. Default is 60 seconds|| +Allow Custom Dialplan Entries|| +This option allows you to enter custom dialplan lines into Call Menus. Default is 0 for inactive|| +Custom Dilplan Entry|| +This field allows you to enter in any dialplan elements that you want for the Call Menu|| +You can enter multiple propmts in this field and the other prompt fields by separating them with a pipe character|| +Setting this field to zero 0 will mean that there will be no wait time after the prompt is played|| +Conf File Secret|| +This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|| +Tracking Group|| +This is the ID that you can use to track calls to this Call Menu when looking at the IVR Report. The list includes CALLMENU as the default as well as all of the In-Groups|| +Agent Alert Filename|| +The audio file to play to an agent to announce that a call is coming to the agent. To not use this function set this to X. Default is ding|| +This field as with the other audio fields in In-Groups, with the exception of the Agent Alert Filename, can have multiple audio files played if you put a pipe-separated list of audio files into the field|| +No Agents No Queueing|| +If this field is set to Y or NO_PAUSED then no calls will be put into the queue for this in-group if there are no agents logged in and the calls will go to the No Agent No Queue Action. The NO_PAUSED option will also not send the callers into the queue if there are only paused agents in the in-group. Default is N|| +No Agent No Queue Action|| +If No Agent No Queue is enabled, then this field defines where the call will go if there are no agents in the In-Group. Default is MESSAGE, this plays the sound files in the Action Value field and then hangs up|| +No Agent No Queue Action Value|| +This is the value for the Action above. Default is|| +Quick Transfer Button|| +This option will add a Quick Transfer button to the agent screen below the Transfer-Conf button that will allow one click blind transferring of calls to the selected In-Group or number. IN_GROUP will send calls to the Default Xfer Group for this Campaign, or In-Group if there was an inbound call. The PRESET options will send the calls to the preset selected. Default is N for disabled|| +PrePopulate Transfer Preset|| +This option will fill in the Number to Dial field in the Transfer Conference frame of the agent screen if defined. Default is N for disabled|| +Enable TTS Integration|| +This setting allows you to enable Text To Speech integration with Cepstral. This is currently only available for outbound Survey type campaigns. Default is 0 for disabled|| +ADD NEW TTS ENTRY|| +ADDING NEW TTS ENTRY|| +MODIFY TTS ENTRY|| +DELETE TTS ENTRY|| +TTS ENTRY LIST|| +TEXT-TO-SPEECH(TTS) LISTINGS|| +Text To Speech|| +Show TTS Entries|| +Add A New TTS Entry|| +TTS ID|| +TTS Name|| +TTS Text|| +TTS ENTRY NOT ADDED|| +there is already a tts entry in the system with this ID|| +TTS ENTRY ADDED|| +MODIFY A TTS RECORD|| +Click here to see Admin chages to this TTS entry|| +DELETE THIS TTS ENTRY|| +TTS ENTRY NOT MODIFIED|| +TTS ENTRY MODIFIED|| +TTS ENTRY NOT DELETED|| +TTS ENTRY DELETION CONFIRMATION|| +Click here to delete tts entry|| +This is the short name of a TTS entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 50 characters, minimum of 2 characters|| +This is a more descriptive name of the TTS entry. This is a short summary of the TTS definition. max 100 characters, minimum of 2 characters|| +This option allows you to set the TTS entry to active or inactive|| +This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example|| +for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. Here is a list of the available variables: || +Multiple Campaign Drop Rate Group|| +This feature allows you to set a campaign as a member of a Campaign Drop Rate Group, or a group of campaigns whose Human Answered calls and Drop calls for all campaigns in the group will be combined into a shared drop percentage, or abandon rate. This allows you to to run multiple campaigns at once and more easily control your drop rate. This is particularly useful in the UK where regulations permit this drop rate calculation method with campaign grouping for the same company even if there are several campaigns that company is running during the same day. To enable this for a campaign, just select a group from the list. There are 10 groups defined in the system by default, you can contact your system administrator to add more. Default is DISABLED|| +IMPORTANT, this is the password only for the agent web interface phone login, to change the sip.conf or iax.conf password, or secret, for this phone device you need to modify the Conf File Secret field further down on this page|| +Agent Status Viewable Groups|| +This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into|| +Agent Status View Time|| +This option defines whether the agent will see the amount of time that users in their agent sidebar have been in their current status. Default is N for no or disabled|| +This option allows an agent to disposition a call as CALLBK and choose the date and time at which the lead will be re-activated|| +Agent View Calls in Queue|| +If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE|| +View Calls in Queue Launch|| +This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL|| +Agent Grab Calls in Queue|| +This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N|| +Agent Call Re-Queue Button|| +This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N|| +Agent Pause After Each Call|| +This option if set to Y will pause the agent after every call automatically. Default is N|| +Starts with the highest rank and works its way down|| +Starts with the lowest rank and works its way up|| +Starts with owners beginning with Z and works its way down|| +Starts with owners beginning with A and works its way up|| +No Hopper Dialing|| +If This is enabled, the hopper will not run for this campaign. This option is only available when the dial method is set to MANUAL or INBOUND_MAN. It is recommended that you do not enable this option if you have a very large lead database, over 100,000 leads. With No Hopper Dialing, the following features do not work: lead recycling, auto-alt-dialing, list mix, list ordering with Xth NEW. If you want to use Owner Only Dialing you must have No Hopper Dialing enabled. Default is N for disabled|| +Owner Only Dialing|| +If This is enabled, the agent will only receive leads that they are within the ownership parameters for. If this is set to USER then the agent must be the user defined in the database as the owner of this lead. If this is set to TERRITORY then the owner of the lead must match the territory listed in the User Modification screen for this agent. If this is set to USER_GROUP then the owner of the lead must match the user group that the agent is a member of. For this feature to work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper Dialing must be enabled. Default is NONE for disabled|| +Reset Times|| +This field allows you to put times in, separated by a dash-, that this list will be automatically reset by the system. The times must be in 24 hour format with no punctuation, for example 0800-1700 would reset the list at 8AM and 5PM every day. Default is empty|| +Owner: || +OWNERS WITHIN THIS LIST|| +RANKS WITHIN THIS LIST|| +Allow Alerts|| +This field gives you the ability to allow agent browser alerts to be enabled by the agent for when calls come into their vicidial.php session. Default is 0 for NO|| +Agent Display Dialable Leads|| +This option if enabled will show the number of dialable leads available in the campaign in the agent screen. This number is updated in the system once a minute and will be refreshed on the agent screen every few seconds|| +VICIDIAL Balance Rank|| +This field allows you to set the order in which this server is to be used for balance dialing, if balance dialing is enabled. The server with the highest rank will be used first in placing Balance fill calls. Default is 0|| +Inbound Summary Hourly Report|| +orders by the amount of time agent has been actively waiting for a call|| +Agent Script Override|| +If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the lead is from this list. Default is not set|| +Music On Hold|| +ADD NEW MUSIC ON HOLD ENTRY|| +ADDING NEW MUSIC ON HOLD ENTRY|| +MODIFY MUSIC ON HOLD ENTRY|| +DELETE MUSIC ON HOLD ENTRY|| +MUSIC ON HOLD ENTRY LIST|| +We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files|| +Music On Hold ID|| +This is the short name of a Music On Hold entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 100 characters, minimum of 2 characters|| +Music On Hold Name|| +This is a more descriptive name of the Music On Hold entry. This is a short summary of the Music On Hold context and will show as a comment in the musiconhold-vicidial.conf file. max 255 characters, minimum of 2 characters|| +This option allows you to set the Music On Hold entry to active or inactive. Inactive will remove the entry from the conf files|| +Random Order|| +This option allows you to define the playback of the audio files in a random order. If set to N then the defined order will be used|| +To add a new audio file to a Music On Hold entry the file must first be in the audio store, then you can select the file and click submit to add it to the file list. Music on hold is updated once per minute if there have been changes made. Any files not listed in a music on hold entry that are present in the music on hold folder will be deleted|| +MUSIC ON HOLD ENTRY NOT ADDED|| +there is already a moh entry in the system with this ID|| +MUSIC ON HOLD ENTRY ADDED|| +Click here to see Admin chages to this Music On Hold entry|| +Audio Files|| +Add An Audio File|| +Rank: || +MUSIC ON HOLD ENTRY NOT MODIFIED|| +MUSIC ON HOLD ENTRY MODIFIED|| +Add A New MOH Entry|| +Show MOH Entries|| +Active Agent Server|| +Setting this option to N will prevent agents from being able to login to this server through the vicidial agent screen. This is very useful when using a phone login load balanced setup. Default is Y|| +Rebuild Music On Hold|| +If you want to force a rebuilding of the music on hold files or if the music on hold entries or server entries have changed then this should be set to Y. After the music on hold files have been synchronized and reloaded then this will be changed to N. Default is Y|| +MUSIC ON HOLD ENTRY NOT DELETED|| +MUSIC ON HOLD ENTRY DELETION CONFIRMATION|| +Click here to delete music on hold entry|| +MUSIC ON HOLD DELETION COMPLETED|| +Starts with Eastern timezones and works West|| +Starts with Western timezones and works East|| +you must select a user group|| +Enable Second Webform|| +WaitForSilence Options|| +If Wait For Silence is desired on calls that are detected as Answering Machines then this field has those options. There are two settings separated by a comma, the first option is how long to detect silence in milliseconds and the second option is for how many times to detect that before playing the message. Default is EMPTY for disabled. A standard value for this would be wait for 2 seconds of silence twice|| +This field is for entering the prompt to play when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this to either an audio file in the audio store or a TTS prompt if TTS is enabled on your system|| +EXTENDED ALTERNATE PHONE NUMBERS FOR THIS LEAD|| +ADD NEW VOICEMAIL BOX|| +ADDING NEW VOICEMAIL BOX|| +MODIFY VOICEMAIL BOX|| +MODIFY A VOICEMAIL BOX|| +DELETE VOICEMAIL BOX|| +VOICEMAIL BOXES LIST|| +VOICEMAIL BOXES|| +ADD NEW VOICEMAIL BOX|| +Voicemail ID|| +This is the all numbers identifier of this mailbox. This must not be a duplicate of an existing voicemail ID or the voicemail ID of a phone on the system, minimum of 2 characters|| +This is name associated with this voicemail box. max 100 characters, minimum of 2 characters|| +This is the password that is used to gain access to the voicemail box when dialing in to check messages max 10 characters, minimum of 2 characters|| +This option allows you to set the voicemail box to active or inactive. If the box is inactive you cannot leave messages on it and you cannot check messages in it|| +This optional setting allows you to have the voicemail messages sent to an email account, if your system is set up to send out email. If this field is empty then no emails will be sent out|| +VOICEMAIL BOX NOT ADDED|| +there is already a voicemail box in the system with this ID|| +there is already a phone in the system with this voicemail ID|| +VOICEMAIL BOX ADDED|| +VOICEMAIL BOX NOT MODIFIED|| +VOICEMAIL BOX MODIFIED|| +VOICEMAIL BOX NOT DELETED|| +VOICEMAIL BOX DELETION COMPLETED|| +VOICEMAIL BOX DELETION CONFIRMATION|| +Click here to delete voicemail box|| +DELETE THIS VOICEMAIL BOX|| +Click here to see Admin chages to this voicemail box|| +The following fields must have data|| +Campaign CID Override|| +If this field is set, this will override the campaign CallerID that is set for calls that are placed to leads in this list. Default is not set|| +Answering Machine Message Override|| +If this field is set, this will override the Answering Machine Message set in the campaign for customers in this list. Default is not set|| +Drop Inbound Group Override|| +If this field is set, this in-group will be used for outbound calls within this list that drop from the outbound campaign instead of the drop in-group set in the campaign detail screen. Default is not set|| +Agent Select Territories|| +If this option is enabled and the agent belongs to at least one territory, the agent will have the option of selecting territories to dial leads from. The agent will see a list of available territories upon login and they will have the ability to go back to that territory list when paused to change their territories. For this function to work the Owner Only Dialing option must be set to TERRITORY and User Terriories must be enabled in the System Settings. +Agent Choose Territories|| +This option if set to 1 allows the user to choose the territories that they will receive calls from when they login to a MANUAL or INBOUND_MAN campaign. Otherwise the user will be set to use all of the territories that they are set to belong to in the User Territories administrative section|| +The AREACODE option is just like the Y option, except it is used to also filter out an entire area code in North America from being dialed, in this case using the 201XXXXXXX entry in the DNC list would block all calls to the 201 areacode if enabled|| +If you have the active DNC option set to AREACODE then you can also use area code wildcard entries like this 201XXXXXXX to block all calls to the 201 areacode when enabled|| +Carrier Description|| +This is put in the comments of the asterisk conf files above the dialplan and account entries. Maximum 255 characters|| +CAMPAIGNS ALLOWING THIS IN-GROUP|| +This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test|| +Delete Voicemail After Email|| +This optional setting allows you to have the voicemail messages deleted from the system after they have been emailed out. Default is N|| +Last Campaign Call Date|| +This is the last time that a call was handled by an agent logged into this campaign|| +Custom User Fields|| +These five fields can be used for various purposes, and they can be populated in the web form addresses and scripts as user_custom_one and so on|| +CRM Popup Login|| +If set to Y, the CRM Popup Address is used to open a new window on agent login to this campaign. Default is N|| +CRM Popup Address|| +The web address of a CRM login page, it can have variables populated just like the web form address, with the VAR in the front and using --A--user_custom_one--B-- to define variables|| +If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attempt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attempt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attempt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue, VIDPROMPT will prompt the caller for their ID number and will create a new lead record with the CallerID as the phone number and the ID as the Vendor ID, VIDPROMPTLOOKUP will attempt to lookup the ID in the entire system, VIDPROMPTLOOKUPRL will attempt to lookup the vendor ID by the ID in only one specified list, VIDPROMPTLOOKUPRC will attempt to lookup the vendor ID by the ID in all of the lists that belong to the specified campaign. Default is CID|| +UNIFIED_CONTACT- This option will use the beta Vtiger 5.1.0 feature to search by phone number and bring up a search page in Vtiger|| +Timer Action|| +This feature allows you to trigger actions after a certain amount of time. the D1 and D2 DIAL options will launch a call to the Transfer Conference Number presets and send them to the agent session, this is usually used for simple IVR validation AGI applications or just to play a pre-recorded message. WEBFORM will open the web form address. MESSAGE_ONLY will simply display the message that is in the field below. NONE will disable this feature and is the default|| +Timer Action Message|| +This is the message that appears on the agent screen at the time the Timer Action is triggered|| +Timer Action Seconds|| +This is the amount of time after the call is connected to the customer that the Timer Action is triggered. Default is -1 which is also inactive|| +This setting will override the Campaign settings|| +Start Call URL|| +This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. The Start URL does not work for Manual dial calls. Default is blank|| +Dispo Call URL|| +This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank|| +Xfer-Conf Number Override|| +These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank|| +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. If you want to allow Consultative Transfers, a fronter to a closer, have the agent use the CONSULTATIVE checkbox, which does not work for third party non-ViciDial consultative calls. For those just have the agent click the Dial With Customer button. Then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER, for instance if you want to do a call to a special IVR you have set to extension 83900 you would put AXFER83900 in the number-to-dial field|| + + +add-file: user_territories.php +add-file: audio_store.php +add-file: AST_agent_time_detail.php +add-file: AST_agent_timeclock_detail.php + +############################################################ CLIENT + +You are not allowed to dial into other agent sessions|| +QUICK TRANSFER|| +Other Agents Status|| +Available Agents Transfer|| +Show Calls In Queue|| +Calls In Queue|| +Hide Calls In Queue|| +Calls in Queue View Disabled for this campaign|| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|| +Manager || +has selected your in-group choices|| +CONSULTATIVE|| +Close Message|| +TIMER NOTIFICATION|| + + +add-file: vdc_script_display.php + + +############################################################ MANAGER Manual + + + +############################################################ AGENT Manual + diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/de_language_first.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/de_language_first.txt new file mode 100644 index 00000000..da3c522b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/de_language_first.txt @@ -0,0 +1,422 @@ +# de_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=de +# current languages in the file: +# - English - (en) no alterations +# - German - (de) second column +***LANGUAGES*** +en-English|de-Deutsch| +***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"|"JAN"| +"FEB"|"FEB"| +"MAR"|"MÄR"| +"APR"|"APR"| +"MAY"|"MÖG"| +"JUN"|"JUN"| +"JLY"|"JLY"| +"AUG"|"AUG"| +"SEP"|"SEP"| +"OCT"|"OKT"| +"NOV"|"NOV"| +"DEC"|"DEZ"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Englisch| +Spanish|Spanisch| +French|Französisch| +German|Deutsch| +Italian|Italienisch| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF.gif| +vdc_LB_pause.gif|vdc_LB_pause.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF.gif| +vdc_LB_resume.gif|vdc_LB_resume.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF.gif| +vdc_LB_webform.gif|vdc_LB_webform.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Sie haben jetzt heraus geloggt. Danke| +astGUIclient web-client VERSION|astGUIclient Netz-Klient VERSION| +astGUIclient web client|astGUIclient web client| +VICIDIAL web client|VICIDIAL web client| +VICIDIAL web-client version|VICIDIAL Netz-Klient Version| +You can only monitor Zap channels|Sie können überwachen nur Zap Führungen| +Stop Record|Stoppen Sie Aufzeichnung| +you are logged into this phone|Ihr Telefon| +Back to Main Window|Zurück zu Hauptfenster| +LIVE CALLS ON THIS PHONE|PHASEN ERSUCHT UM DIESES TELEFON| +LIVE CALLS IN THIS CONFERENCE|LEBEN ANRUFE IN DIESER KONFERENZ| +LIVE CALL TRANSFER|PHASENANRUF-ÜBERTRAGUNG| +CLIENT CHANNEL|KLIENT FÜHRUNG| +REMOTE CHANNEL|REMOTEFÜHRUNG| +CLICK HERE TO LOG IN AGAIN|KLICKEN SIE HIER, UM INNEN WIEDER ZU LOGGEN| +ACTIVE DISPLAY PAUSED|AKTIVE ANZEIGE PAUSIERTE| +Main Panel|Hauptverkleidung| +Active Lines Panel|Aktive Linien Verkleidung| +Conferences Panel|Konferenz-Verkleidung| +Check Voicemail|Überprüfen Sie Voicemail| +Live Call|Leben Anruf| +Hangup Trunk|Hängezustand-Stamm| +Hijack Trunk|Straßenräuber-Stamm| +Listen Trunk|Hören Stamm| +Active Local Menu|Aktives Lokales Menü| +Hangup Local|Hängezustand-Einheimischer| +Hijack Local|Straßenräuber-Einheimischer| +Listen Local|Hören Einheimischer| +Channel to be transferred|Gebracht zu werden Führung| +Extensions Menu|Verlängerungen Menü| +Send to selected extension|Senden Sie zu vorgewählter Verlängerung| +Send to selected vmail box|Senden Sie zu vorgewähltem vmail Kasten| +Send to this number|Senden Sie zu dieser Zahl| +click on a number below to send to a conference|klicken Sie an eine Zahl unten, um zu einer Konferenz zu senden| +Send my channel too|Senden Sie meine Führung auch| +Conferences Menu|Konferenz-Menü| +LOCAL Extensions Dial|LOKALER Verlängerungen Vorwahlknopf| +Phone calling from|Telefon, das von benennt| +Call selected extension|Anruf vorgewählte Verlängerung| +Call selected vmail box|Anruf vorgewählter vmail Kasten| +LOCAL DIAL EXTENSIONS|LOKALE VORWAHLKNOPF-VERLÄNGERUNGEN| +OUTBOUND CALLS|OUTBOUND ANRUFE| +INBOUND CALLS|INBOUND ANRUFE| +Refresh rate|Erneuern Sie Rate| +MANUAL DIAL|MANUELLER VORWAHLKNOPF| +CALL DATE\/TIME|ANRUFDATE/TIME| +LOCAL HANGUP|LOKALER HÄNGEZUSTAND| +PARKED CALLS|GEPARKTE ANRUFE| +PARKED BY|VORBEI GEPARKT| +PARKED TIME|GEPARKTE ZEIT| +Registered to|Registriert zu| +Enter Conference|Tragen Sie Konferenz Ein| +Dial From Conf|Vorwahlknopf Von Conf| +Active Extensions|Aktive Verlängerungen| +Outside Lines|Äußere Linien| +Local Extensions|Lokale Verlängerungen| +Data Goes Here|Daten Gehen Hier| +Trunk Action|Stamm-Tätigkeit| +Local Action|Lokale Tätigkeit| +Conferences List|Konferenz-Liste| +Click on a conference room number on the left for info on that conference|Klicken Sie an Konferenzzimmernummer auf dem links für Info auf| +List Display|Liste Anzeige| +Live Extensions|Phasenverlängerungen| +Busy Extensions|Beschäftigte Verlängerungen| +Outside Lines|Äußere Linien| +script runtime|Indexlaufzeit| +Call Log Display|Anruf-Maschinenbordbuch-Anzeige| +is not valid|ist unzulässig| +or protocol|oder Protokoll| +Conf Extension Check|Conf Verlängerung Überprüfung| +has been registered to|ist zu registriert worden| +LIVE INBOUND CALL|INBOUND LEBHAFTANRUF| +Number Dialed|Nummer Gewählt| +SEND TO MY VOICEMAIL|SENDEN SIE ZU MEINEM VOICEMAIL| +Live Extension Check|Phasenverlängerung Überprüfung| +Manager Send|Manager Senden| +command not inserted|Befehl nicht eingesetzt| +command sent for|Befehl gesendet für| +One of these variables|Eine dieser Variablen| +must be greater than 2 characters|muß als 2 Buchstaben grösser sein| +must be greater than 14 characters|muß als 14 Buchstaben grösser sein| +must be set|muß eingestellt werden| +not sent|nicht gesendet| +Cannot find empty conference|Kann nicht leere Konferenz finden| +is not live|ist nicht Phasen| +RECORDING WILL LAST UP TO 60 MINUTES|AUFNAHME DAUERT BIS 60 MINUTEN| +Parked Calls Display|Geparkte Anruf-Anzeige| +Database Query Script|Datenbank-Frage Index| +Group Choice|Gruppe Wahl| +has been registered to user|ist zum Benutzer registriert worden| +HOPPER EMPTY|ZUFUHRBEHÄLTER LEER| +LOG NOT ENTERED|MASCHINENBORDBUCH NICHT BETRETEN| +has been changed to|ist zu geändert worden| +information has been updated|Informationen sind aktualisiert worden| +is now in status|ist jetzt im Status| +Voicemail Check|Voicemail Überprüfung| +voicemail box|voicemail Kasten| +Re-Login|Re-LOGON| +User Password|Benutzer-Kennwort| +User Login|Benutzer-LOGON| +Phone Login|Telefon-LOGON| +Phone Password|Telefon-Kennwort| +Campaign not active, please try again|Die aktive Kampagne nicht, versuchen bitte noch einmal| +Login incorrect, please try again|Der falsche LOGON, versuchen bitte noch einmal| +Campaign Login|Kampagne LOGON| +Sorry, your phone login and password are not active in this system, please try again|Traurig, Ihr Telefon-LOGON und Kennwort seien Sie nicht in diesem| +leads left to call in hopper|führt nach links, um im Zufuhrbehälter zu benennen| +CAMPAIGN CUSTOM PARKING|KAMPAGNE KUNDENSPEZIFISCHES PARKEN| +CAMPAIGN DEFAULT PARKING|KAMPAGNE RÜCKSTELLUNG PARKEN| +CAMPAIGN CUSTOM WEB FORM|KAMPAGNE KUNDENSPEZIFISCHE NETZ-FORM| +CAMPAIGN DEFAULT WEB FORM|KAMPAGNE RÜCKSTELLUNG NETZ-FORM| +CAMPAIGN ALLOWS CLOSERS|KAMPAGNE ERLAUBT CLOSERS| +CAMPAIGN ALLOWS NO CLOSERS|KAMPAGNE ERLAUBT KEIN CLOSERS| +USING PREVIOUS MEETME ROOM|VERWENDEN DES VORHERGEHENDEN MEETME RAUMES| +USING NEW MEETME ROOM|VERWENDEN DES NEUEN MEETME RAUMES| +old QUEUE and INCALL reverted list|alte WARTESCHLANGE und INCALL umgeschaltete Liste| +old QUEUE and INCALL reverted hopper|alte WARTESCHLANGE und INCALL umgeschalteter Zufuhrbehälter| +old vicidial_live_agents records cleared|alte vicidial_live_agents Aufzeichnungen löschten| +campaign is set to auto_dial_level|Kampagne wird auf auto_dial_level eingestellt| +new vicidial_live_agents record inserted|neue vicidial_live_agents Aufzeichnung eingesetzt| +campaign is set to manual dial|Kampagne wird auf manuellen Vorwahlknopf eingestellt| +Sorry, there are no leads in the hopper for this campaign|Traurig, gibt es keine Leitungen im Zufuhrbehälter für diese| +Dial Next Number|Vorwahlknopf-Folgende Zahl| +LIVE CALLS IN YOUR SESSION|LEBEN ANRUFE IN IHREM LERNABSCHNITT| +Stop Recording|Stoppen Sie Zu notieren| +Start Recording|Fangen Sie an Zu notieren| +Transfer number must have more than 1 digit|Übergangszahl muß mehr als 1 Stelle haben| +Grab Parked Call|Zupacken Geparkter Anruf| +Park Call|Park-Anruf| +Waiting for Ring|Wartering| +Called 3rd party|Angerufene 3. Partei| +LEAVE 3-WAY CALL|ANRUF DES URLAUB-3-WAY| +Dial With Customer|Vorwahlknopf Mit Kunden| +Park Customer Dial|Park-Kunde Vorwahlknopf| +Hangup Xfer Line|Hängezustand Xfer Linie| +Hangup Both Lines|Hängezustand Beide Linien| +Hangup Customer|Hängezustand-Kunde| +Transfer - Conference|Übertragung - Konferenz| +LOCAL CLOSER|EINHEIMISCHER GENAUER| +INTERNAL CLOSER|INTERNES GENAUERES| +Dial Blind Transfer|Vorwahlknopf-Vorhang-Übertragung| +Dial timed out, contact your system administrator|Zeit Vorwahlknopf, der heraus festgesetzt wird, treten mit Ihrem| +No more leads in the hopper for campaign|Kein mehr führt im Zufuhrbehälter für Kampagne| +Web Form|Netz-Form| +You Must Select a Disposition|Sie müssen eine Einteilung vorwählen| +GROUPS NOT SELECTED|GRUPPEN NICHT VORGEWÄHLT| +SELECTED GROUPS|VORGEWÄHLTE GRUPPEN| +You cannot log out during a Dial attempt|Sie können nicht heraus während eines Vorwahlknopfversuchs loggen| +Wait 50 seconds for the dial to fail out if it is not answered|Warten Sie, daß 50 Sekunden auf den Vorwahlknopf heraus ausfallen,| +STILL A LIVE CALL! Hang it up then you can log out|NOCH Ein PHASENANRUF! Hängen Sie ihn, oben dann, das Sie heraus| +Hide conference call channel information|Fellkonferenzanruf-Führung Informationen| +Show conference call channel information|Zeigen Sie Konferenzanruf-Führung Informationen| +Logged in as User|Benutzer| +Noone is in your session|Noone ist in Ihrem Lernabschnitt| +Customer has hung up|Kunde hat oben gehangen| +End-of-call Disposition Selection|Ende-von-benennen Sie Einteilung Vorwähler| +CLOSER INBOUND GROUP SELECTION|GENAUERE INBOUND GRUPPENWAHL| +Closer Inbound Group Selection|Genauere Inbound Gruppenwahl| +BLENDED CALLING|GEMISCHTES BENENNEN| +outbound activated|outbound aktiviert| +Preview the Lead then|Sehen Sie die Leitung dann vorher| +Lead was not reverted, there was an error|Leitung wurde nicht umgeschaltet, es gab eine Störung| +call was not placed, there was an error|Anruf wurde nicht gesetzt, es gab eine Störung| +Number to call|Zahl zum zu benennen| +Customer Information|Kunde Informationen| +Lead Dispositioned As|Leitung Dispositioned Wie| +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|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| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Wenn aktiv, betätigen Sie einfach die Taste für die gewünschte| +Disposition Hot Keys|Einteilung Heiße Schlüssel| +Cust Time|Cust Zeit| +RECORD ID|SATZ IDENTIFIKATION| +RECORDING FILE|REGISTERAKTE| +HOT KEYS ACTIVE|HEISSE SCHLÜSSEL AKTIV| +HOT KEYS INACTIVE|HEISSE SCHLÜSSEL UNAKTIVIERT| +DIAL OVERRIDE|VORWAHLKNOPF-ÜBERSTEUERUNG| +SKIP LEAD|ZEILENSPRUNG-LEITUNG| +DIAL LEAD|VORWAHLKNOPF-LEITUNG| +LEAD PREVIEW|LEITUNG VORBETRACHTUNG| +PAUSE AGENT DIALING|STOPPEN SIE ZU BENENNEN| +DISPOSITION CALL|EINTEILUNG ANRUF| + session ID| Lernabschnitt ID| + to campaign| zur Kampagne| +Select a CallBack Date|Wählen Sie ein Wiederholungsbesuch Datum vor| +maximize|maximieren Sie| +minimize|setzen Sie herab| +You must choose a date|Sie müssen ein Datum wählen| +Select a Date Below|Wählen Sie ein Datum unten vor| +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|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| +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|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| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|SIE KÖNNEN Nicht Einen WIEDERHOLUNGSBESUCH ÜBERSPRINGEN, ODER MANUELLER VORWAHLKNOPF, MÜSSEN SIE DIE LEITUNG WÄHLEN| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|SIE MÜSSEN Zum MANUELLEN VORWAHLKNOPF PAUSIERT WERDEN Eine NEUE LEITUNG Im AUTO-DIAL MODUS| +Enter information below for the new lead you wish to call|Tragen Sie Informationen unten für die neue Leitung ein, die Sie benennen möchten| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|SIE MÜSSEN PAUSIERT WERDEN, UM WIEDERHOLUNGSBESUCHE IM AUTO-DIAL MODUS ZU ÜBERPRÜFEN| +Note: all new manual dial leads will go into list 999|Anmerkung: alle neuen manuellen Vorwahlknopfleitungen steigen in Liste 999 ein| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|SIE HABEN NICHT ERLAUBNIS, ANRUFE ZU BRINGEN| +will be added to the beginning of this number|wird dem Anfang dieser Zahl hinzugefügt| +This is usually a 1 in the USA-Canada|Dieses ist normalerweise 1 in den USA und im Kanada| +NEW MANUAL DIAL LEAD FOR|NEUE MANUELLE VORWAHLKNOPF-LEITUNG FÜR| +Finish and Disposition Call|Ende und Einteilung Anruf| +10 digits max - digits only|10 Stellen Maximum - nur Stellen| +Note: a dial prefix of|Anmerkung: ein Vorwahlknopfpräfix von| +Hangup Again|Hängezustand Wieder| +Go Back|Gehen Sie Zurück| +Call Agent Again|Anruf-Mittel Wieder| +MY CALLBACK ONLY|NUR MEIN WIEDERHOLUNGSBESUCH| +NO ACTIVE CALLBACKS|NINE AKTIVE WIEDERHOLUNGSBESUCHE| +ACTIVE CALLBACKS|AKTIVE WIEDERHOLUNGSBESUCHE| +CALLBACKS FOR AGENT|WIEDERHOLUNGSBESUCHE FÜR MITTEL| +Dial Code:|Vorwahlknopf-Code:| +Dial Override|Vorwahlknopf-Übersteuerung| +digits only please|Stellen gefallen nur| +Dial Now|Vorwahlknopf Jetzt| +CB Comments|COLUMBIUM Anmerkungen| +Title|Titel| +Your Status|Ihr Status| +STATUS|STATUS| +RESET|ZURÜCKSTELLEN| +CLEAR FORM|ZURÜCKSTELLEN| +SUBMIT|SUBMITSie| +Incoming|Ankommend| +Calling|Benennen| +Called|Benannt| +Campaign|Kampagne| +Status|Status| +Inserted|Eingesetzt| +seconds|Sekunden| +HELP|HILFE| +Login|LOGON| +User|Benutzer| +Password|Kennwort| +VERSION|VERSION| +BUILD|BAU| +Server|Bediener| +RECORD|SATZ| +HANGUP|HÄNGEZUSTAND| +>XFER|>XFER| +PARK|PARK| +IN-NUMBER|IN-NUMBER| +NUMBER|ZAHL| +LENGTH|LÄNGE| +CALLERID|CALLERID| +CallerID|CallerID| + CALL| ANRUF| +PICKUP|AUFNAHME| +CONFERENCE|KONFERENZ| +Refresh|ErneuernSie| +Send DTMF|Senden Sie DTMF| +ORDER|AUFTRAG| + on | auf | +LOGOUT|LOGOUT| +Channel|Führung| +Extensions|Verlängerungen| +Conferences|Konferenzen| +Conference|Konferenz| +Recording|Aufnahme| +Record|Aufzeichnung| +Welcome|Willkommen| +VOICEMAIL|VOICEMAIL| + NEW| NEU| + OLD| ALT| +PAUSE|PAUSE| +START|ANFANG| +Pause|Pause| +Resume|Zusammenfassung| +Faster|Schneller| +Slower|Langsamer| +Initializing|Initialisierung| +Invalid|Unzulässig| +Username|Username| +CUSTOM|GEWOHNHEIT| +Notes|Anmerkungen| +First|Zuerst| +MI: |MI:| +Last|Letztes| +Address|Adresse| +City|Stadt| +State|Zustand| +PostCode|PostCode| +Province|Provinz| +Vendor ID|Verkäufer Identifikation| +DialCode|DialCode| +Alt. Phone|Wech Telefon| +Show|Erscheinen| +Email|Email| +Comments|Anmerkungen| +REFRESH|ERNEUERNSie| +ALT PHONE DIAL|WECH TELEFON| +MAIN PHONE|MAIN TELEFON| +ALT PHONE|TÉLÉPHONE D'ALT| +ADDRESS3|ADRESSE3| +FINISH LEAD|ENDE| +Dial Alt Phone Number|Vorwahlknopf-Wech Zahl| +Phone|Telefon| +DIAL|VORWAHLKNOPF| +SUBMIT FAVORITES CHANGES - requires logout|SUBMIT Sie LIEBLINGE ÄNDERUNGEN - erfordert Logout| +BACK TO MAIN WINDOW - ignore changes made|ZURÜCK ZU MAIN FENSTER - ignorieren Sie die vorgenommenen Änderungen| +AVAILABLE EXTENSIONS|VORHANDENE VERLÄNGERUNGEN| + edit| redigieren sie| + FAVORITES| LIEBLINGE| +### END translation phrases through 1.1.11 release ### +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| +### months of the year for CallBack date select screen ### +January|Januar| +Frebruary|Februar| +March|März| +April|April| +May|Mag| +June|Juni| +July|Juli| +August|August| +September|September| +October|Oktober| +November|November| +December|Dezember| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Vorhergehende Wiederholungsbesuch Informationen| +Last Call: |Letzter Anruf:| +CallBack: |Wiederholungsbesuch:| +Agent: |Mittel:| +Comments: |Anmerkungen:| diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/de_translation_standards.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/de_translation_standards.txt new file mode 100644 index 00000000..72730c8e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/de_translation_standards.txt @@ -0,0 +1,17 @@ +bersetzungshinweise Deutsch +Generell Neue Deutsche Rechtschreibung auer bei hufig verwendeten Lehenworten aus dem Englischen, diese bitte Englisch schreiben. +z.B. Computer + +Extension -> Nebenstelle +Blended -> Inbound und Outbound +3way , 3rd party -> Nachfrage +Closer -> Supervisor aber je nach context auch Nachfrage +Lead -> Adresse +Trunk -> Amtsbndel / Amtsleitung +Line -> Leitung +ZAP -> ISDN (wenn als Synonym fr Zap-Channels verwendet, da diese der Europischen Realitt entspricht) +Agent -> Agent +Session -> Sitzung + +Deutsche Umlaute falls keine Tastatur zur Hand + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/language.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/language.txt new file mode 100644 index 00000000..cbf81811 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/language.txt @@ -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| ΣΥΜΠΑΘΕΙΕΣ|| diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/language_admin.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/language_admin.txt new file mode 100644 index 00000000..d5d35ec4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/language_admin.txt @@ -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 - 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.|Εσωτ.Σύνδεση Τηλεφώνου - Αυτό το πεδίο είναι για την καταχώρηση του ονόματος του τηλεφώνου, όπως αυτό εμφανίζεται στο 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 - 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|Αριθμός Σχεδίου Κλήσεων - Αυτό το πεδίο είναι για τον αριθμό που καλείται για να κουδουνίζει το τηλέφωνο. Αυτός ο αριθμός ορίζεται στο αρχείο 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 - 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|Περιεχόμενο Φωνητικού Ταχυδρομείου - Αυτό το πεδίο είναι για το περιεχόμενο του φωνητικού ταχυδρομείου, όπου πηγαίνουν τα μηνύματα του τηλεφώνου του χρήστη. Το χρησιμοποιούμαι για να ελέγξουμε τα φωνητικά μηνύματα και για να μπορεί ο χρήστης να χρησιμοποιήσει το πλήκτρο 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 - 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 Εξερχομένων - Αυτό το πεδίο είναι για την καταχώρηση του αριθμού 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 - este campo es para la dirección IP del teléfono si es un teléfono de VOZIP. Este es un campo opcional|Δνση IP Τηλεφώνου - Αυτό το πεδίο είναι για την δνση 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 - este campo es para la dirección IP del ordenador del usuario. Es un campo opcional|Δνση IP Υπολογιστού - Αυτό το πεδίο είναι για την δνση IP του υπολογιστή του χρήστη. Αυτό είναι ένα προαιρετικό πεδίο|| +Server IP -<\/B> This menu is where you select which server the phone is active on|IP del servidor - Este menú es donde usted selecciona en que servidor está el teléfono activo|IP Διακομιστή - Αυτός ο κατάλογος επιλογών είναι που επιλέγετε σε ποιον διακομιστή το τηλέφωνο είναι ενεργό|| +Login -<\/B> The login used for the phone user to get to admin functions|Login - El nombre de usuario del teléfono para conseguir los permisos de admin|Σύνδεση - Η σύνδεση χρησιμοποιείται για τον χρήστη τηλεφώνου για την πρόσβαση στις λειτουργίες διαχείρισης|| +Password -<\/B> The password used for the phone user to get to admin functions|Contraseña - la contraseña usada por el usuario del teléfono para conseguir los permisos de admin|Κωδκός - Ο κωδικός χρησιμοποιείται για τον χρήστη τηλεφώνου για την πρόσβαση στις λειτουργίες διαχείρισης|| +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 - 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|Κατάσταση - Η κατάσταση του τηλεφώνου στο σύστημα, ΕΝΕΡΓΗ και ΔΙΑΧ επιτρέπουν στους GUI πελάτες να δουλέψουν. Η ΔΙΑΧ επιτρέπει την πρόσβαση στην ιστοσελίδα διαχείρισης|| +Active Account -<\/B> Whether the phone is active to put it in the list in the GUI client|Cuenta activa - si el teléfono está activado ponerla en la lista del cliente del GUI|Ενεργός Λογαριασμός - Κατά πόσο το τηλέφωνο είναι ενεργό για να τοποθετηθεί στην λίστα στο GUI|| +Phone Type -<\/B> Purely for administrative notes|Tipo de teléfono - solamente para información administrativas|Τύπος Τηλεφώνου - Απλά για σημειώσεις διαχείρισης|| +Full Name -<\/B> Used by the GUIclient in the list of active phones|Nombre completo - usado por el GUIclient en la lista de teléfonos activos|Πλήρες Ονομα - Χρησιμοποιείται από τον χρήστη GUI στην λίστα ενεργών τηλεφώνων|| +Company -<\/B> Purely for administrative notes|Compañía - solamente para las notas administrativas|Εταιρία - Απλά για σημειώσεις διαχείρισης|| +Picture -<\/B> Not yet Implemented|Cuadro - todavía no puesto en ejecución|Εικόνα - Δεν έχει υλοποιηθεί ακόμα|| +New Messages -<\/B> Number of new voicemail messages for this phone on the Asterisk server|Nuevos mensajes - número de los nuevos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco|Νέα Μηνύματα - Αριθμός νέων φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή Asterisk|| +Old Messages -<\/B> Number of old voicemail messages for this phone on the Asterisk server|Viejos mensajes - número de los viejos mensajes del Buzón de Voz para este teléfono en el servidor del asterisco|Παλαιά Μηνύματα - Αριθμός παλαιών φωνητικών μηνυμάτων για αυτό το τηλέφωνο στον διακομιστή 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 - 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|Πρωτόκολλο Πελάτη - Το πρωτόκολλο που χρησιμοποιεί το τηλέφωνο για συνδεθεί στον διακομιστή 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 - 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 - Η διαφορά από την 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 - É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|Σύνδεση Διαχειριστή - Αυτή είναι η σύνδεση που χρησιμοποιούν οι 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 - É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|Μυστικό Διαχειριστή - Αυτός είναι ο κωδικός που χρησιμοποιούν οι 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 - é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 Προκαθορισμένος Χρήστης - Εδώ ορίζεται μία προκαθορισμένη τιμή χρήστη, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή 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 - é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 Προκαθορισμένος Κωδικός - Εδώ ορίζεται μία προκαθορισμένη τιμή κωδικού, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή 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 - é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 Προκαθορισμένη Εκστρατεία - Εδώ ορίζεται μία προκαθορισμένη τιμή εκστρατείας, οπουδήποτε αυτός ο χρήστης τηλεφώνου ανοίξει την εφαρμογή 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 - Ésta es la extensión del estacionamiento del defecto para los apps del cliente. Verifique que diverso trabaje antes de que usted cambie esto|Εσ.Σύνδ. Στάθμευσης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Στάθμευσης για τις εφαρμογές του χρήστη|| +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 - É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|Εσ.Σύνδ. Συνδιάλεξης - Αυτή είναι η προκαθορισμένη εσωτ.σύνδεση Συνδιάλεξης για τις εφαρμογές του χρήστη|| +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 - É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 - é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 - é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 - É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 - É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 - é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 - é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 - É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 - é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)|Εξερχόμενη ομάδα κλήσης - αυτό είναι η ομάδα καναλιών ότι οι εξερχόμενες κλήσεις από αυτό το τηλέφωνο τοποθετούνται από. Υπάρχουν ρουτίνες ζευγών στον πελάτη 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 - 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 - é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 - Ú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 - É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 - Αυτή είναι η δη ιστοσελίδας που χρησιμοποιείται για προσαρμοσμένα 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 - 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|Καταγραφή Γεγονότων Κλήσης - Αυτό τοποθετείται σε αληθές εάν το αρχείο 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 - 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|Μεταγωγή Χρήστη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να μεταβούν σε άλλον λογαριασμό χρήστη|| +Conferencing -<\/B> Set to true to allow user to start conference calls with upto six external lines|Comunicación - fije para verdad para permitir que el usuario comience llamadas de conferencia con hasta que seis líneas externas|Σε συνδιάλεξη - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να ξεκινούν συνδιαλέξεις μέχρι 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 - 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|Διαχειριστού Κλείσιμο- Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να κλείνουν κάθε γραμμή|| +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 - 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|Διαχειριστού Κλέψιμο - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδήποτε γραμμή|| +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 - 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|Διαχειριστού Παρακολούθηση - Εάν το θέσετε σε αληθές θα επιτρέπετε στους χρήστες να λαμβάνουν και να ανακατευθύνουν στην εσωτ.σύνδεσή τους οποιαδήποτε γραμμή|| +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 - 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|Στάθμευση Κλήσης - Εάν το θέσετε σε αληθές θα επιτρέπετε σε χρήστες να σταθμεύουν κλήσεις και κλήσεις σε αναμονή να διαχειρίζονται από οποιοδήποτε άλλο χρήστη. Οι κλήσεις μένουν σε αναμονή για 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 - 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|Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές θα εμφανίζεται ένα παράθυρο ειδοποίησης, ότι η ώρα ενημέρωσης δεν έχει αλλάξει σε 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 - fije para verdad para registrar muchas acciones del uso astGUIclient a un archivo de texto en la computadora del usuario|AF Καταγραφή Γεγονότος - Εάν το θέσετε σε αληθές θα καταγράφονται οι ενέργειες χρήσης του 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ó - 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|Ενεργοποιημένη Ουρά - Εάν το θέσετε σε αληθές οι εφαρμογές θα χρησιμοποιούν το 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 - 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 - Εάν το θέσετε σε αληθές θα επιτρέψετε σε αριθμούς ορισμένους στο αρχείο 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 - fije para verdad para exhibir el botón de VOICEMAIL y los mensajes cuentan la exhibición en astGUIclient|VMail Πλήκτρο - Εάν το θέσετε σε αληθές θα εμφανιστεί το πλήκτρο 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 - 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|Ταχύτητα Ανανέωσης - Εάν το σετε σε αληθές ενεργοποιείται ένα νέο ρυθμό ανανέωσης πληροφοριών κλήσης για το 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 - 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|Ρυθμός Ανανέωσης Ταχύτητας - σε χιλιοστά δευτερολέπτου. Χρημοποιείται μόνο εάν η Ταχύτητα Ανανέωσης είναι ενεργοποιημένη. Προκαθορισμένος απενεργοποιημένος ρυθμός είναι 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 - 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 - Εάν είναι ενεργοποιημένο, το 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 - 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|Αυτόματη Κλήση Επόμενου Αριθμ - Εάν είναι ενεργοποιημένο, μετά από τον τερματισμό θα γίνει κλήση του επόμενου αριθμού, εκτός εάν επιλέξουμε "Μη κάνεις κλήσεις"|| +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 - 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|Σταμάτα την ηχογράφηση μετά από κάθε κλήση - Εάν είναι ενεργοποιημένο η ηχογράφηση θα σταματήσει μετά τον τερματισμό|| +DBX Server -<\/B> The MySQL database server that this user should be connecting to|Servidor de DBX - el servidor de la base de datos de MySQL con el cual este usuario debe conectar|DBΧ Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί|| +DBX Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de datos de DBX - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco|DBΧ Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk|| +DBX User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Usuario de DBX - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron|DBΧ Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron|| +DBX Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Paso de DBX - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234|DBΧ Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234|| +DBX Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBX viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306|DBΧ Πόρτα - Η MySQL TCP πόρτα που ο χρήστης χρησιμοποιεί όταν συνδέεται. Η προκαθορισμένη είναι 3306|| +DBY Server -<\/B> The MySQL database server that this user should be connecting to|Servidor de DBY - el servidor de la base de datos de MySQL con el cual este usuario debe conectar|DBY Διακομιστής - Ο διακομιστής της Βάσης Δεδομένων MySQL που ο χρήστης θα συνδεθεί|| +DBY Database -<\/B> The MySQL database that this user should be connecting to. Default is asterisk|Base de datos de DBY - la base de datos de MySQL con la cual este usuario debe conectar. El defecto es asterisco|DBY Βάση Δεδομένων - Η βάση δεδομένων MySQL στην οποία ο χρήστης θα συνδεθεί. Η προκαθορισμένη είναι asterisk|| +DBY User -<\/B> The MySQL user login that this user should be using when connecting. Default is cron|Usuario de DBY - la conexión del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es cron|DBY Χρήστης - Ο χρήστης MySQL για την σύνδεση. Ο προκαθορισμένος είναι cron|| +DBY Pass -<\/B> The MySQL user password that this user should be using when connecting. Default is 1234|Paso de DBY - la contraseña del usuario de MySQL que este usuario debe utilizar al conectar. El defecto es 1234|DBY Κωδικός - Ο κωδικός χρήστη MySQL που ο χρήστης χρησιμοποιεί όταν συνδέεται. Ο προκαθορισμένος είναι 1234|| +DBY Port -<\/B> The MySQL TCP port that this user should be using when connecting. Default is 3306|DBY viran - el puerto de MySQL hacia el lado de babor TCP que este usuario debe utilizar al conectar. El defecto es 3306|DBY Πόρτα - Η 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 - 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 Διακομιστή - Σε αυτό το πεδίο ορίζεται το όνομα του διακομιστή Asterisk, είναι μόνο μία επονομία ώστε να αναγνωρίζεται από τους διαχειριστές|| +Server Description -<\/B> The field where you use a small phrase to describe the Asterisk server|Descripción del servidor - el campo donde usted utiliza una frase pequeña para describir el servidor del asterisco|Περιγραφή Διακομιστή - Το πεδίο στο οποίο περιγράφεται με μία φράση τον διακομιστή Asterisk|| +Server IP Address -<\/B> The field where you put the Network IP address of the Asterisk server|IP address del servidor - el campo donde usted puso el IP address de la red del servidor del asterisco|Δνση IP Διακομιστή - Το πεδίο που ορίζεται η δνση IP του δικτύου του διακομιστή Asterisk|| +Active -<\/B> Set whether the Asterisk server is active or inactive|Activo - fije si el servidor del asterisco es activo o inactivo|Ενεργός - Ορίζει κατά πόσον ο διακομιστής 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 - 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 - 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 - Αυτό το πεδίο θα προσδιορίσει τον μέγιστο αριθμό γραμμών, τις οποίες θα χρησιμοποιήσει η διεργασία αυτόματης κλήσης. Εάν θέλετε να αφιερώσετε δύο 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 - é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 Πελάτης - Αυτή είναι η δνση ή το όνομα του διακομιστή 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 - é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 - Αυτή είνα η πόρτα της σύνδεσης με τον διαχειριστή του διακομιστή Asterisk και το πώς οι εφαρμογές διαχείρισης συνδέονται σε αυτόν, όπου τρέχουν. Το προκαθορισμένο είναι '5038'|| +Manager User -<\/B> The username or login used to connect genericly to the Asterisk server manager. Default is 'cron'|Usuario del encargado - el username o la conexión conectaba genericly con el encargado del servidor del asterisco. El defecto es 'cron'|Χρήστης Διαχειριστή - Το όνομα χρήστη που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή Asterisk. Το προκαθορισμένο είναι 'cron'|| +Manager Secret -<\/B> The secret or password used to connect genericly to the Asterisk server manager. Default is '1234'|Secreto del encargado - el secreto o la contraseña conectaba genericly con el encargado del servidor del asterisco. El defecto es '1234'|Μυστικό Διαχειριστή - Το μυστικό ή κωδικός που χρησιμοποιείτε γενικά για τον διαχειριστή του διακομιστή 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 - 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|Ενημέρωση Χρήστη Διαχειριστή - Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή 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 - 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|Αποστολή Χρήστη Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή 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 - 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|Αποστολή ήστη Διαχειριστή- Το όνομα χρήστη που χρησιμοποιείτε για σύνδεση στον διακομιστή 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ó - 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 Διακομίστε - Η διαφορά σε ώρες από την 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 - 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 εσωτ.σύνδεση απόρριψης - Το πρόθεμα εσωτ.σύνδεσης που χρησιμοποιείται στον διακομιστή για να στείλει τις κλήσεις κατευθείαν μέσω 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 - 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 εσωτ.σύνδεση - Η προκαθορισμένη εσωτ.σύνδεση εάν δεν έχει οριστεί στην εκστρατεία για να στείλει ς κλήσεις στην διεργασία αυτόματης κλήσης. Η προκαθορισμένη είναι '8365'|| +Default Context -<\/B> The default dialplan context used for scripts that operate for this server. Default is 'default'|Contexto del defecto - el contexto dialplan del defecto usado para las escrituras que funcionan para este servidor. El defecto es 'defecto'|Προκαθορισμένο Περιεχόμενο - Το προκαθορισμένο περιεχόμενο του σχέδιου κλήσεων για διεργασίες του διακομιστή. Το προκαθορισμένο είναι 'προκαθορισμένο'|| +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 - 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 Χρήστη - Σε αυτό το πεδίο τοποθετείται ο αριθμός 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 - este campo es donde usted pone la contraseña de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud|Κωδικός - Σε αυτό το πεδίο τοποθετείται ο κωδικός του χρήστη στο 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 - este campo es donde usted pone el nombre completo de los usuarios de VICIDIAL. Deben ser por lo menos 2 caracteres en longitud|Πλήρες Ονομα - Αυτό το πεδίο είναι που μπορείτε να ορίσετε το πλήρες όνομα των χρηστών 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 - 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|Επίπεδο Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε το επίπεδο χρήστη των 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 - 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|Ομάδα Χρήστη - Αυτός ο κατάλογος επιλογών είναι που μπορείτε να επιλέξετε την ομάδα χρηστών που ανήκει ο χρήστης|| +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 - 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|Τηλεφωνική σύνδεση - εδώ είναι όπου εσείς μπορεί να θέσει μια αξία τηλεφωνικής σύνδεσης προεπιλογής για όταν τα κούτσουρα χρηστών σε 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 - 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|Τηλεφωνικό πέρασμα - εδώ είναι όπου εσείς μπορεί να θέσει μια αξία τηλεφωνικών περασμάτων προεπιλογής για όταν τα κούτσουρα χρηστών σε 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 - 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|Διαγράψτε τους χρήστες - αυτή η επιλογή εάν θέστε 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 - esta opción si el sistema a 1 permite que el usuario suprima a grupos de usuario del sistema|Διαγράψτε τις ομάδες χρηστών - αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να διαγράψει τις ομάδες χρηστών από το σύστημα|| +Delete Lists -<\/B> This option if set to 1 allows the user to delete vicidial lists from the system|La cancelación enumera - esta opción si el sistema a 1 permite que el usuario suprima listas vicidial del sistema|Διαγράψτε τους καταλόγους - αυτή η επιλογή εάν θέστε 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 - esta opción si el sistema a 1 permite que el usuario suprima campañas vicidial del sistema|Διαγράψτε τις εκστρατείες - αυτή η επιλογή εάν θέστε 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 - esta opción si el sistema a 1 permite que el usuario suprima a En-Grupos vicidial del sistema|Διαγράψτε τις-ΟΜΑΔΕΣ - αυτή η επιλογή εάν θέστε 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 - esta opción si el sistema a 1 permite que el usuario suprima agentes alejados vicidial del sistema|Διαγράψτε τους μακρινούς πράκτορες - αυτή η επιλογή εάν θέστε 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 - 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|Το φορτίο οδηγεί - αυτή η επιλογή εάν θέστε 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 - 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|Λεπτομέρεια εκστρατείας - αυτή η επιλογή εάν θέστε 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 - esta opción si el sistema a 1 permite a usuario a la conexión a las páginas astGUIclient del admin|Πρόσβαση AGC Admin - αυτή η επιλογή εάν θέστε 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 - 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 διαγράφει τα τηλέφωνα - αυτή η επιλογή εάν θέστε 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 - 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|Διαγράψτε τα χειρόγραφα - αυτή η επιλογή εάν θέστε 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 - É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|Ταυτότητα χειρογράφων - αυτό είναι το σύντομο όνομα ενός χειρογράφου 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 - é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|Όνομα χειρογράφων - αυτό είναι ο τίτλος ενός χειρογράφου 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 - é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|Τα σχόλια χειρογράφων - αυτό είναι όπου μπορείτε να τοποθετήσετε τα σχόλια για ένα χειρόγραφο 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----

    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?

    This would read----

    Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?|Texto de la escritura - 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?|Κείμενο χειρογράφων - αυτό είναι όπου τοποθετείτε το περιεχόμενο ενός χειρογράφου 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 - 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 - Ú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 Εκστρατείας - Αυτό είναι το σύντομο όνομα της εκστρατείας, δεν μπορεί ν διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 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 - Ésta es la descripción de la campaña, debe estar entre 6 y 40 caracteres en longitud|Ονομα Εκστρατείας - Αυτό είναι η περιγραφή της εκστρατείας, πρέπει να είναι μεταξύ 6 και 40 χαρακτήρες|| +Active -<\/B> This is where you set the campaign to Active or Inactive. If Inactive, noone can log into it|Activo - aquí es adonde usted fija la campaña a activo o a inactivo. Si es inactivo, noone puede registrar en él|Ενεργοποίηση - Εδώ μπορείτε να θέσετε την εκστρατεία ενεργή ή μη ενεργή. Εάν είναι μη ενεργή, κανένας δεν μπορεί να συνδεθεί σε αυτήν|| +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 - 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|Τηλ.Σύνδεση Στάθμευσης - Εδώ μπορείτε να προσετε την μουσική αναμονής για το 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 - 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|Ον Αρχείου Στάθμευσης - Εδώ μπορείτε να προσαρμόσετε την μουσική αναμονής για το 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 - 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|Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυτήν την ομάδα|| +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 - 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 - Εδώ ορίζετε εάν οι χρήστες της εκστρατείας θα έχουν την επιλογή να στείλουν την κλήση σε έναν 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 - 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|Κατάσταση Κλήσης - Εδώ ορίζετε τις καταστάσεις που θέλετε να κληθούν μέσα στις λίστες, οι οποίες είναι ενεργές γ τις εκστρατείες παρακάτω|| +List Order - 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 - Este menú es donde usted selecciona cómo los plomos que emparejan los estados seleccionados arriba serán puestos en la tolva del plomo|Ταξινόμηση Λίστας - Σε αυτόν τον κατάλογο επιλογών μπορείτε να επιλέξετε πώς οι καθοδηγητές, που ταιριάζουν με τις καταστάσεις που επιλέξατε παραπάνω, θα τοποθετηθούν 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 - é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 - Αυτό είναι το πόσους καθοδηγητές η διαδικασία 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 - 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 - Αυτό σας επιτρέπει καθαρίσετε τα περιεχόμενα κατά επιβεβαίωση της φόρμας. Αυτό θα συμβεί πάλι όταν η διαδικασία 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 - 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|Επίπεδο Αυτόματης Κλήσης - Εδώ είναι που καθορίζεται πόσες γραμμές θα χρησιμοποιούνται ανά ενεργό χρήστη. Μηδέν (0) σημαίνει ότι η αυτόματη κλήση είναι μη ενεργή και οι χρήστες πατούν το πλήκτρο για την κλήση κάθε αριθμού. Διαφορετικά, το σύστημα καλεί γραμμές ίσες με τους ενεργούς χρήστες, πολλαπλασιασμένους με το επίπεδο κλήσης και σύμφωνα με το πόσες γραμμές η εκστρατεία σε κάθε διακομιστή επιτρέπει|| +Next Agent Call -<\/B> This determines which agent receives the next call that is available|Llamada siguiente del agente - esto se determina qué agente recibe la llamada siguiente que está disponible|Επόμενη Κλήση Χρήστη - Αυτό προσδιορίζει ποιος χρήστης λαμβάνει την επόμενη κλήση που είναι διαθέσιμη|| +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 - 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|Τοπική Ωρα Κλήσης - Εδώ, μπορείτε να ορίσετε τις ώρες που θα θέλατε να γίνουν οι κλήσεις. Αυτό ελέγχετε από τον κωδικό περις και ρυθμίζεται για 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 - 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|Φωνητικό Ταχυδρομείο - Εάν έχει οριστεί, οι κλήσεις που φυσιολογικά θα γινόντουσαν 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 - 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|Κλήση Εκτός Χρόνου - Εάν έχει οριστεί, οι κλήσεις που φυσιολογικά θα έκλειναν μετά το χρόνο που έχει οριστεί στο 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 - 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|Πρόθεμα Κλήσης - Αυτό το ο επιτρέπει την πιο εύκολη αλλαγή της διαδρομής της κλήσης να βγει έξω μέσω διαφορετικής μεθόδου, χωρίς να γίνει επαναφόρτωση στο 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 - 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 Εκστρατείας - Αυτό το πεδίο επιτρέπει την αποστολεί ενός προσαρμοσμένου 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 - 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 - Αυτό το πεδίο επιτρέπει γι μία προσαρμόσιμη 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 - 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 - αυτός ο τομέας επιτρέπει μια επέκταση καταγραφής συνήθειας που χρησιμοποιείται με 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 - 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|Καταγραφή εκστρατείας - αυτές οι επιλογές επιτρέπουν σε σας για να επιλέξουν ποιο επίπεδο καταγραφής επιτρέπεται σε αυτήν την εκστρατεία. Δεν θα θέσει εκτός λειτουργίας ΠΟΤΕ την καταγραφή στον πελάτη. 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 - 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 - αυτός ο τομέας επιτρέπει σε σας για να προσαρμόσει το όνομα της καταγραφής όταν η καταγραφή εκστρατείας είναι 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 - 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|Χειρόγραφο εκστρατείας - αυτές οι επιλογές επιτρέπουν σε σας για να επιλέξουν το χειρόγραφο που θα εμφανιστεί στην οθόνη πρακτόρων για αυτήν την εκστρατεία. Μην επιλέξτε 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 - 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|Πάρτε την έναρξη κλήσης - αυτές οι επιλογές επιτρέπουν σε σας για να επιλέξουν εάν θέλετε την αυτόματος-έναρξη η σελίδα Ιστός-μορφής σε ένα χωριστό παράθυρο, αυτόματος-διακόπτης στην ετικέττα ΧΕΙΡΟΓΡΑΦΩΝ ή δεν κάνετε τίποτα όταν στέλνεται μια κλήση στον πράκτορα για αυτήν την εκστρατεία|| +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 - 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|Μήνυμα αυτόματων τηλεφωνητών - αυτός ο τομέας είναι για την είσοδο σε μια επέκταση στις τυφλές κλήσεις μεταφοράς όταν παίρνει ο πράκτορας έναν αυτόματο τηλεφωνητή και χτυπά στο κουμπί μηνυμάτων αυτόματων τηλεφωνητών στο πλαίσιο διασκέψεων μεταφοράς. Πρέπει να θέσετε αυτό επάνω στον 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 - Ú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 Λίστας - Αυτό είναι το αριθμητικό όνομα της λίστας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, πρέπει να περιέχει μόνο αριθμούς και πρέπει να είναι μεταξύ 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 - Ésta es la descripción de la lista, debe estar entre 2 y 20 caracteres en longitud|Ονομα Λίστας - Αυτή είναι η περιγραφή της λίστας, πρέπει να είναι μεταξύ 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 - Ésta es la campaña que esta lista pertenece a. Una lista se puede marcar solamente en una sola campaña contemporáneamente|Εκστρατεία - Αυτή είναι η εκστρατεία όπου ανήκει η λίστα. Μία λίστα μπορεί μόνο να κληθεί από μία εκστρατεία κάθε φορά|| +Active -<\/B> This defines whether the list is to be dialed on or not|Activo - esto define si la lista debe ser marcada encendido o no|Ενεργοποίηση - Αυτό ορίζει κατά πόσον η λίστα πρόκειται να κληθεί ή όχι|| +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 - 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|Επαναφορά Κατάστασης-Κλήσης-Καθοδήγησης για την λίστα - Αυτό επαναφέρει τις καθοδηγήσεις σε αυτή την λίστα στο Ν για \"μη κληθέντα από την τελευταία επαναφορά\" και σημαίνει ότι για οποιαδήποτε καθοδήγηση μπορεί να γίνει κλήση εάν είναι η σωστή κατάσταση, όπως ορίσθηκε στην οθόνη της εκστρατείας|| +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 - Ú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 Ομάδας - Αυτό είναι το σύντομο όνομα της εισερχόμενης ομάδας, δεν μπορεί να διορθωθεί μετά από την αρχική παράδοση, δεν μπορεί να περιέχει κενά και πρέπει να είναι μεταξύ 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 - Ésta es la descripción del grupo, debe estar entre 2 y 30 caracteres en longitud. No puede incluir rociadas -, plusses + o espacios|Ονομα Ομάδας - Αυτή είναι η περιγραφή της ομάδας, πρέπει να είναι μεταξύ 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 - é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|Χρώμα Ομάδας - Αυτό είναι το χρώμα που εμφανίζεται στην 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 - esto se determina si este grupo demuestra para arriba en la caja de la selección cuando un agente de VICIDIAL entra|Ενεργοποίηση - Αυτό καθορίζει κατά πόσον αυτή η ομάδα εμφανίζεται στο κουτί επιλογής όταν ένας χρήστης συνδέεται|| +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 - É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|Ιστοσελίδα - Αυτή είναι η προσαρμοσμένη διεύθυνση που θα σας κατευθύνει για κλήσεις που έρχονται σε αυ την ομάδα|| +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 - 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|Φωνητικό Ταχυδρομείο - Εάν ορίζεται, αυτό είναι το περιεχόμενο φωνητικού ταχυδρομείου όπου οι κλήσεις θα πηγαίνουν, αντί να γίνονται 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 - 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|Οθόνη Μπροστινού - Αυτό το πεδίο καθορίζει κατά πόσον στον 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 - É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 Χρήστη - Αυτό είναι η αρχή του 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 - 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|Αριθμός Γραμμών - Αυτό ορίζει πόσες καταχωρήσεις απομακρυσμένων χρηστών το σύστημα δημιουρ, και καθορίζει πόσες γραμμές μπορεί με ασφάλεια να στείλει στον αριθμό παρακάτω|| +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 - 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 Διακομιστή - Μία καταχώρηση απομακρυσμένου χρήστη είναι μόνο καλό για ένα συγκεκριμένο διακομιστή, εδώ είναι που επιλέ τον διακομιστή που ανήκει|| +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 - é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|Εξωτερική Τηλ.Σύνδεση - Αυτός είναι ο αριθμός που θέλετε οι κλήσεις να προωθούνται. Επιβεβαιώστε ότι είναι ένας πλήρης αριθμός από το σχέδιο κλήσεων και εάν θέλετε ένα 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 - 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|Κατάσταση - Εδώ μπορείτε να θέσετε τον απομακρυσμένο χρήστη σε ενεργό και μη ενεργό. Μόλις ο χρήστης γίνει ενεργός το σύστημα μπορεί να στείλει κλήσεις σε αυτόν. Μπορεί να διαρκέσει μέχρι 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 - 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|Εκστρατεία - Εδώ μπο να επιλέξετε την εκστρατεία όπου οι απομακρυσμένοι χρήστες θα συνδεθούν. Για εισερχόμενες πρέπει να χρησιμοποιηθεί η εκστρατεία 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 - 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|Εισερχόμενες Ομάδες - Εδώ μπορείτε να επιλέξετε τις εισερχόμενες ομάδες που θέλετε να λαμβάνουν τις κλήσεις , εάν έχετε επιλέξει την εκστρατεία 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 - é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|Ομάδα Χρήστη - Αυτό είναι το σύντομο όνομα της Vicidial ομάδας χρήστη, προσπαθήστε να μην χρησιμοποιήσετε κενά ή στίξεις για αυτό το πεδίο. Από 2 μέχρι 20 χαρακτήρες|| +Group Name -<\/B> This is the description of the vicidial user group max of 40 characters|Nombre de grupo - Ésta es la descripción del máximo vicidial del grupo de usuario de 40 caracteres|Ονομα Ομάδας- Αυτή είναι η περιγραφή της 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 - 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 - αυτοί οι τέσσερις τομείς επιτρέπουν σας να έχουν δύο σύνολα διάσκεψης μεταφοράς και 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 - 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 - αυτές οι επιλογές επιτρέπουν σε σας για να καθορίσουν εάν ένα μήνυμα αφήνεται σε έναν αυτόματο τηλεφωνητή όταν ανιχνεύεται ότι η κλήση θα διαβιβαστεί αμέσως στην επέκταση απαντώ-μηχανή-μηνυμάτων εάν 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 - 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|Τροποποιήστε τους μολύβδους - αυτή η επιλογή εάν θέστε 1 επιτρέπει στο χρήστη για να τροποποιήσει τους μολύβδους στη σελίδα αποτελεσμάτων αναζήτησης μολύβδου τμημάτων admin|| +HotKeys Active -<\/B> This option if set to 1 allows the user to use the HotKeys quick-dispositioning function in|HotKeys activo - esta opción si el sistema a 1 permite que el usuario utilice la función ra'pida-dispositioning de HotKeys adentro|HotKeys ενεργός - αυτή η επιλογή εάν θέστε 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 - 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|Εκστρατεία πρακτόρων αλλαγής - αυτή η επιλογή εάν θέστε 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 - 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 - αυτή η επιλογή εάν θέστε 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 - é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|Φίλτρο μολύβδου - αυτό είναι μια μέθοδος τους μολύβδους σας που χρησιμοποιούν ένα τεμάχιο μιας ερώτησης 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 - É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|Ταυτότητα φίλτρων - αυτό είναι το σύντομο όνομα ενός φίλτρου μολύβδου 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 - é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|Όνομα φίλτρων - αυτό είναι ένα περιγραφικότερο όνομα του φίλτρου. Αυτό είναι μια σύντομη περίληψη των ανώτατων 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 - 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|Σχόλια φίλτρων - αυτό είναι όπου μπορείτε να τοποθετήσετε τα σχόλια για ένα φίλτρο 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 - 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 - αυτό είναι όπου τοποθετείτε το τεμάχιο ερώτησης 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 - 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|Κλήση Εναλ Αρ Χρήστη - αυτή η επιλογή επιτρέπει σε έναν πράκτορα για να σχηματίσει με το χέρι τον εναλλάσσομαι τηλεφωνικό αριθμό ή τον τομέα 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 - 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|Σχέδισσες επανακλήσεις - αυτή η επιλογή επιτρέπει σε έναν πράκτορα στη διάθεση μια κλήση ως 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 - 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|Πράκτορας-μόνο επανακλήσεις - αυτή η επιλογή επιτρέπει σε έναν πράκτορα για να θέσει μια επανάκληση έτσι ώστε είναι ο μόνος πράκτορας που μπορεί να καλέσει την πλάτη πελατών. Αυτό επιτρέπει επίσης στον πράκτορα για να δει τις λίστες επανάκλησής τους και να τις καλέσει πίσω οποτεδήποτε θέλουν|| +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 - 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|Εγχειρίδιο κλήσης πρακτόρων - αυτή η επιλογή επιτρέπει σε έναν πράκτορα για να εισαγάγει με το χέρι έναν νέο μόλυβδο στο σύστημα και να τους καλέσει. Αυτό επιτρέπει επίσης την κλήση οποιουδήποτε τηλεφωνικού αριθμού από την 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 - 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 - αυτή η επιλογή μπορεί να αποτρέψει έναν πράκτορα από να κάνει οποιεσδήποτε καταγραφές αφότου συνδέονται σε 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 - 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 - αυτή η επιλογή μπορεί να αποτρέψει έναν πράκτορα από το άνοιγμα της μεταφοράς - σύνοδος διασκέψεων 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 - esta opción permite que el usuario pueda suprimir los filtros vicidial del plomo del sistema|Διαγράψτε τα φίλτρα - αυτή η επιλογή επιτρέπει στο χρήστη για να είναι σε θέση να διαγράψει τα 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 - esta opción si el sistema a 1 permite que el usuario administrativo modifique las opciones de interfaz de los agentes en admin.php|Αλλάξτε τις επιλογές διεπαφών πρακτόρων - αυτή η επιλογή εάν θέστε 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 - esta opción omite simplemente el checkbox mezclado en una pantalla MÁS CERCANA de la conexión|Πιό στενή προεπιλογή που συνδυάζεται - αυτή η επιλογή προκαθορίζει απλά το συνδυασμένο τετραγωνίδιο σε μια ΠΙΟ ΣΤΕΝΉ οθόνη σύνδεσης|| +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 - 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|Αριθμός Συνδιάλεξης - Αυτό το πεδίο είναι για τον αριθμό συνδιάλεξης 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 - El menú donde usted selecciona el servidor del asterisco que esta conferencia estará encendido|IP Διακομιστή- Ο κατάλογος που επιλέξατε τον διακομιστή 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 ### diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_de b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_de new file mode 100644 index 00000000..15321f02 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_de @@ -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:| diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_el b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_el new file mode 100644 index 00000000..398ee42f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_el @@ -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:| diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_es b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_es new file mode 100644 index 00000000..9422c4c7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_es @@ -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| + diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_fr b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_fr new file mode 100644 index 00000000..97a6c5f5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_fr @@ -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 :| diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_it b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_it new file mode 100644 index 00000000..d27559dc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_it @@ -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:| diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_pt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_pt new file mode 100644 index 00000000..50051086 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/languages.txt_en_pt @@ -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:| diff --git a/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/pl_language_first.txt b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/pl_language_first.txt new file mode 100644 index 00000000..d87b281b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/raw_translation_files/pl_language_first.txt @@ -0,0 +1,403 @@ +# pl_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: ./config.pl --language=es +# current languages in the file: +# - English - (en) no alterations +# - Polish - (pl) first column +***LANGUAGES*** +en-English|pl-Polski| +***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"|"STY"| +"FEB"|"LUT"| +"MAR"|"MAR"| +"APR"|"KWI"| +"MAY"|"MAJ"| +"JUN"|"CZE"| +"JLY"|"LIP"| +"AUG"|"SIE"| +"SEP"|"WRZ"| +"OCT"|"PAŹ"| +"NOV"|"LIS"| +"DEC"|"GRU"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Anglieski| +Spanish|Hiszpański| +French|Francuski| +German|Niemiecki| +Italian|Włoski| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF_pl.gif| +agc_live_call_ON.gif|agc_live_call_ON_pl.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_pl.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_pl.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall_pl.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_pl.gif| +vdc_LB_pause.gif|vdc_LB_pause_pl.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF_pl.gif| +vdc_LB_resume.gif|vdc_LB_resume_pl.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_pl.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording_pl.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording_pl.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf_pl.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_pl.gif| +vdc_LB_webform.gif|vdc_LB_webform_pl.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_pl.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_pl.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_pl.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Wylogowałeś się. Do zobaczenia| +astGUIclient web-client VERSION|astGUIclient VERSION| +astGUIclient web client|klient astGUIclient| +VICIDIAL web client|klient VICIDIAL| +VICIDIAL web-client version|wersja klienta VICIDIAL| +You can only monitor Zap channels|Możesz tylko monitorować kanały Zap| +Stop Record|Zakończ nagrywanie| +you are logged into this phone|podłączyłeś się do telefonu| +Back to Main Window|Wróć do Głównego okna| +LIVE CALLS ON THIS PHONE|Rozmowa xxx| +LIVE CALLS IN THIS CONFERENCE|Rozmowa xxx| +LIVE CALL TRANSFER|Rozmowa przeniesiona| +CLIENT CHANNEL|Kanał kliencki| +REMOTE CHANNEL|Kanał zdalny| +CLICK HERE TO LOG IN AGAIN|Naciśnij aby ponownie się zalogować| +ACTIVE DISPLAY PAUSED|Aktywne wyświetlanie zatrzymane| +Main Panel|Główny panel| +Active Lines Panel|Panel aktywnych lini| +Conferences Panel|Panel konferencyjny| +Check Voicemail|Sprawdź pocztę głosową| +Live Call|Rozmowa| +Hangup Trunk|Rozłącz Trunk| +Hijack Trunk|Przejmij Trunk| +Listen Trunk|Podsłuchaj Trunk| +Active Local Menu|MenĂş Local Activa| +Hangup Local|Rozłącz lokalną| +Hijack Local|Przejmij lokalną| +Listen Local|Podsłuchaj lokalną| +Channel to be transferred|Kanały do przeniesienia| +Extensions Menu|Menu rozszerzeń| +Send to selected extension|Przełącz do wybranego numeru wewnętrznego| +Send to selected vmail box|Przełącz do poczty głosowej| +Send to this number|Przełącz do numeru| +click on a number below to send to a conference|wybierz poniższy numer w celu przełączenia do konferencji| +Send my channel too|Przełącz również mój kanał| +Conferences Menu|Menu konferencji| +LOCAL Extensions Dial|Wybieranie numerów wewnętrznych| +Phone calling from|Połączenie przychodzące z| +Call selected extension|Połącz z wybranym numerem wewnętrznym| +Call selected vmail box|Połącz z wybraną skrzynką głosową | +LOCAL DIAL EXTENSIONS|Numery wewnętrzne| +OUTBOUND CALLS|Rozmowy wychodzące| +INBOUND CALLS|Rozmowy przychodzące| +Refresh rate|Szybkość odswieżania| +MANUAL DIAL|Wybieranie ręczne| +CALL DATE/TIME|Połączenie Data/Czas| +LOCAL HANGUP|Rozłącz| +PARKED CALLS|Zawieszone rozmowy| +PARKED BY|Zawieszone przez| +PARKED TIME|Czas zawieszenia| +Registered to|Zarejestrowany na| +Enter Conference|Dołącz do konferencji| +Dial From Conf|Rozmowa z konferencji| +Active Extensions|Aktywne numery wewnętrzne| +Outside Lines|Linie zewnętrzne| +Local Extensions|Numery wewnętrzne| +Data Goes Here|Data tutaj| +Trunk Action|Operacje na Trunk| +Local Action|Operacje na lokalnych| +Conferences List|Lista konferencji| +Click on a conference room number on the left for info on that conference|Wybierz numer konferencji w celu uzyskania o niej informacji| +List Display|Listy| +Live Extensions|Aktywne numery wewnętrzne| +Busy Extensions|Zajęte numery zewnętrzne| +Outside Lines|Linie zewnętrzne| +script runtime|czas działania skyptu| +Call Log Display|Rejestr rozmów| +is not valid|nie jest prawidłowy| +or protocol|lub protokół| +Conf Extension Check|Sprawdzanie numeru wewnętrznego konferencji| +has been registered to|zarejestrował się| +LIVE INBOUND CALL|Przyhodzące rozmowa| +Number Dialed|Numery wybrane| +SEND TO MY VOICEMAIL|Prześlij do poczty głosowej| +Live Extension Check|Sprawdzanie aktywnych numerów wewnętrznych| +Manager Send|Manager Send| +command not inserted|komenda nie wprowadzona| +command sent for|komenda wysłana do| +One of these variables|Jedna z tych zmiennych| +must be greater than 2 characters|musi mieć więcej niż 2 znaki| +must be greater than 14 characters|musi mieć więcje niż 14 znaków| +must be set|musi być ustawiony| +not sent|nie wysłano| +Cannot find empty conference|Nie mogę znaleźć wolnej konferencji| +is not live|nie jest aktywna| +RECORDING WILL LAST UP TO 60 MINUTES|Nagrywanie zakończy się po 60 minutach| +Parked Calls Display|Zawieszone rozmowy| +Database Query Script|Skrypt odpytujący bazę danych| +Group Choice|Wybór grupowy| +has been registered to user|został zarejestrowny dla użytkownika| +HOPPER EMPTY|Zasobnik pusty| +LOG NOT ENTERED|LOG NOT ENTERED| +has been changed to|zmieniono na| +information has been updated|informacje zostały zaktualizowane| +is now in status|jest w statusie| +Voicemail Check|Sprawdzanie poczty głosowej| +voicemail box|skrzynka głosowa| +Re-Login|Powtórne zalogowanie| +User Password|Hasło użytkownika| +User Login|Login użytkownika| +Phone Login|Login telefonu| +Phone Password|Hasło telefonu| +Campaign not active, please try again|Kampania nie aktywna, spróbuj jeszcze raz| +Login incorrect, please try again|Login nie aktywny, spróbuj jeszcze raz| +Campaign Login|Logowanie do kampani| +Sorry, your phone login and password are not active in this system, please try again|Login Twojego telefonu lub hasło są nieaktywne w systememie, spróbuj jeszcze raz| +leads left to call in hopper|Numery pozostałe w zasobniku| +CAMPAIGN CUSTOM PARKING|CAMPAIGN CUSTOM PARKING| +CAMPAIGN DEFAULT PARKING|CAMPAIGN DEFAULT PARKING| +CAMPAIGN CUSTOM WEB FORM|CAMPAIGN CUSTOM WEB FORM| +CAMPAIGN DEFAULT WEB FORM|CAMPAIGN DEFAULT WEB FORM| +CAMPAIGN ALLOWS CLOSERS|CAMPAIGN ALLOWS CLOSERS| +CAMPAIGN ALLOWS NO CLOSERS|CAMPAIGN ALLOWS NO CLOSERS| +USING PREVIOUS MEETME ROOM|Używam poprzedniego meetme| +USING NEW MEETME ROOM|Używam nowego meetme| +old QUEUE and INCALL reverted list|stara Koljka i Aktulanie wybierane numery powróciły na listę| +old QUEUE and INCALL reverted hopper|stara Kolejka i Aktualnie wybrane numery powróciły do zasobnika| +old vicidial_live_agents records cleared|old vicidial_live_agents records cleared| +campaign is set to auto_dial_level|kampania nie jest ustawiona na automatyczne wybieranie| +new vicidial_live_agents record inserted|nowy rekord vicidial_live_agents wstawiony| +campaign is set to manual dial|kampania ustawiona na ręczne wybieranie| +Sorry, there are no leads in the hopper for this campaign|Niestety w zasobniku nie ma nowych numerów| +Dial Next Number|Wybierz kolejny numer| +LIVE CALLS IN YOUR SESSION|Rozmowa w Twojej sesji| +Stop Recording|Zakończ nagrywanie| +Start Recording|Rozpocznij nagrywanie| +Transfer number must have more than 1 digit|Przekierowanie musi mieć więcej niż 1 cyfrę| +Grab Parked Call|Capturar llamada en Parking| +Park Call|Zawieszona rozmowa| +Waiting for Ring|Czeka na połączenie| +Called 3rd party|Called 3rd party| +LEAVE 3-WAY CALL|LEAVE 3-WAY CALL| +Dial With Customer|Dial With Customer| +Park Customer Dial|Park Customer Dial| +Hangup Xfer Line|Hangup Xfer Line| +Hangup Both Lines|Rozłącz obie linie| +Hangup Customer|Odłącz kilenta| +Transfer - Conference|Transfer - Conference| +LOCAL CLOSER|CLOSER LOCAL| +INTERNAL CLOSER|INTERNAL CLOSER| +Dial Blind Transfer|Dial Blind Transfer| +Dial timed out, contact your system administrator|Minął czas wybierania, skontaktuj się z administratorem| +No more leads in the hopper for campaign|Brak numerów w zasobniku dla tej kampani| +Web Form|Web Formularz| +You Must Select a Disposition|Musisz wybrać rezultat rozmowy| +GROUPS NOT SELECTED|Nie wybrana grupa| +SELECTED GROUPS|Grupa wybrana| +You cannot log out during a Dial attempt|Nie możesz wylogować się w trakcie wybierania| +Wait 50 seconds for the dial to fail out if it is not answered|Poczekaj 50 sekund żeby wybieranie zostało przerwane| +STILL A LIVE CALL! Hang it up then you can log out|Jesteś w trakcie rozmowy! Rozłącz się aby się wylogować| +Hide conference call channel information|Ukryj informacje konferencjach| +Show conference call channel information|Pokaż informacje o konferencjach| +Logged in as User|Zalogowany jako| +Noone is in your session|Nie ma telefonu w Twojej sesji| +Customer has hung up|Klient sie rozłączył| +End-of-call Disposition Selection|Koniec rozmowy, wybierz rezultat| +CLOSER INBOUND GROUP SELECTION|CLOSER INBOUND GROUP SELECTION| +Closer Inbound Group Selection|Closer Inbound Group Selection| +BLENDED CALLING|BLENDED CALLING| +outbound activated|wychodzące aktywowane| +Preview the Lead then|Zobacz kolenjy numer bez dzwonienia| +Lead was not reverted, there was an error|Numer nie został przywrócowny, wystąpił błąd| +call was not placed, there was an error|call was not placed, there was an error| +Number to call|Numer do wybrania| +Customer Information|Informacje o kliencie| +Lead Dispositioned As|Rezultat rozmowy| +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|Zmiany wprowadzone w informacjach o kliencie będą zapisane tylko podczas trwania połączenia. Nie po rozłączaniu!| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Kiedy aktywne, naciśnij guzik na klawiaturze w celu wybrania opcji dla tej rozmowy. Rozmowa zostanie automatycznie rozłączona a opcja ustawiona| +Disposition Hot Keys|Klawisze skrótu| +Cust Time|Zegar| +RECORD ID|RECORD ID| +RECORDING FILE|Plik nagrania| +HOT KEYS ACTIVE|Klawisze skróru aktywne| +HOT KEYS INACTIVE|Klawisze skrótu nieaktywne| +DIAL OVERRIDE|Wybieranie unieważnione| +SKIP LEAD|Pomiń numer| +DIAL LEAD|Wybierz numer| +LEAD PREVIEW|Podgląd numeru| +PAUSE AGENT DIALING|Zatrzymaj dzwonienie| +DISPOSITION CALL|REZULTAT ROZMOWY| + session ID| ID sesji| + to campaign| do kampani| +Select a CallBack Date|Wybierz datę inny termin| +maximize|maksymalizuj| +minimize|minimalizuj| +You must choose a date|Musisz wybrać datę| +Select a Date Below|Wybierz datę poniżej| +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|Wybierz link inny termin żeby połączyć się teraz.| +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|Jeżeli chcesz wybrać numer którego nie został dodany do listy wpisz numer ....| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|Nie możesz ominąć zadzwoń poźniej, musisz wybrać ten numer!| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|Musisz być w trybie przerwa żeby wybrać numer ręcznie| +Enter information below for the new lead you wish to call|Wpisz poniżej informacje o numerze pod który chcesz zadzwonić| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|Musisz być w trybie przerwa żeby sprawdzić ustawion inne terminy| +Note: all new manual dial leads will go into list 999|Note: all new manual dial leads will go into list 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|Nie masz uprawnień do przenoszenia rozmów| +will be added to the beginning of this number|będzie dodane na początku tego numeru| +This is usually a 1 in the USA-Canada|This is usually a 1 in the USA-Canada| +NEW MANUAL DIAL LEAD FOR|Ręczne wybieranie numeru dla| +Finish and Disposition Call|Zakończ i wprowadź rezultat rozmowy| +10 digits max - digits only|maksymalnie 10 cyfr| +Note: a dial prefix of|Komentarz: Prefix numeru| +Hangup Again|Rozłącz się ponownie| +Go Back|Wróć| +Call Agent Again|Ponownie połącz się z telefonem| +MY CALLBACK ONLY|Tylko moje inne terminy| +NO ACTIVE CALLBACKS|Brak aktywnych innych terminów| +ACTIVE CALLBACKS|Aktywne inne terminy| +CALLBACKS FOR AGENT|Inne terminy dla agenta| +Dial Code:|Dial Code:| +Dial Override|Dial Override| +digits only please|tylko cyfry| +Dial Now|Wybierz teraz| +CB Comments|Notatki| +Title|Tytuł| +Your Status|Twój Status| +STATUS|Status| +RESET|Reset| +CLEAR FORM|Wyczyść formularz| +SUBMIT|Zatwierdź| +Incoming|Przychodząca| +Calling|Dzwoni| +Called|Called| +Campaign|Kampania| +Status|Status| +Inserted|Inserted| +seconds|sekundy| +HELP|Pomoc| +Login|Login| +User|Użytkownik| +Password|Hasło| +VERSION|WERSJA| +BUILD|BUILD| +Server|Serwer| +RECORD|Nagrywaj| +HANGUP|Rozłącz| +XFER|XFER| +PARK|PARKING| +IN-NUMBER|IN-NUMBER| +NUMBER|Numer| +LENGTH|Długość| +CALLERID|CALLERID| +CallerID|CallerID| + CALL| Rozmowa| +PICKUP|ODBIERZ| +CONFERENCE|KONFERENCJA| +Refresh|Odswież| +Send DTMF|Wyślij tonowo| +ORDER|ORDER| + on | na | +LOGOUT|LOGOUT| +Channel|Kanał| +Extensions|Numer wenętrzny| +Conferences|Konferencje| +Conference|Konferencja| +Recording|Nagrywanie| +Record|Record| +Welcome|Witam| +VOICEMAIL|Poczta głosowa| +NEW|Nowy| +OLD|Stary| +PAUSE|PRZERWA| +START|START| +Pause|Przerwa| +Resume|Ponów| +Faster|Szybciej| +Slower|Wolniej| +Initializing|Inicjalizuje| +Invalid|Nieprawidłowy| +Username|Nazwa użytkownika| +CUSTOM|CUSTOM| +Notes|Notatki| +First|Imię| +MI: |2 Imię: | +Last|Nazwisko| +Address|Adres| +City|Miasto| +State|Stan| +PostCode|Kod pocztowy| +Province|Powiat| +Vendor ID|Vendedor ID| +DialCode|Prefix| +Alt. Phone|Drugi telefon| +Show|Pokaż| +Email|Email| +Comments|Komentarz| +REFRESH|Odswież| +ALT PHONE DIAL|Zadzwoń pod drugi numer| +MAIN PHONE|MAIN PHONE| +ALT PHONE|ALT PHONE| +ADDRESS3|Adres3| +FINISH LEAD|Zakończ rekord| +Dial Alt Phone Number|Dial Alt Phone Number| +Phone|Telefon| +DIAL|Wybierz| +SUBMIT FAVORITES CHANGES - requires logout|Zatwierdzenie zmain wymaga logoutu| +BACK TO MAIN WINDOW - ignore changes made|Powrót do głónego okna - anulowanie wprowadzonych zmian| +AVAILABLE EXTENSIONS|Dostępne numery wewnętrzne| + edit| edytuj| + FAVORITES| Ulubione| +### END translation phrases through 1.1.11 release ### +Search Existing Leads|Przeszukuj rekordy| +This option if checked will attempt to find the phone number in the system before inserting it as a new lead|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|Finish Wrapup and Move On| +seconds remaining in wrapup|seconds remaining in wrapup| +Call Wrapup:|Call Wrapup diff --git a/agc_2-X/branches/agc_2.2.0/translations/ru_language.txt b/agc_2-X/branches/agc_2.2.0/translations/ru_language.txt new file mode 100644 index 00000000..b2763b8b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/ru_language.txt @@ -0,0 +1,491 @@ +# ru_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: ./config.pl --language=ru +# current languages in the file: +# - English - (en) no alterations +# - Russian - (ru) first column +***LANGUAGES*** +en-English|ru-Russian| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"ЯНВ"| +"FEB"|"ФЕВ"| +"MAR"|"МАР"| +"APR"|"АПР"| +"MAY"|"МАЙ"| +"JUN"|"ИЮН"| +"JLY"|"ИЮЛ"| +"AUG"|"АВГ"| +"SEP"|"СЕН"| +"OCT"|"ОКТ"| +"NOV"|"НОЯ"| +"DEC"|"ДЕК"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Английский| +Spanish|Испанский| +French|Французский| +German|Немецкий| +Italian|Итальянский| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF.gif| +vdc_LB_pause.gif|vdc_LB_pause.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF.gif| +vdc_LB_resume.gif|vdc_LB_resume.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF.gif| +vdc_LB_webform.gif|vdc_LB_webform.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Вы вышли из системы. Спасибо| +astGUIclient web-client VERSION|Версия web-клиента astGUIclient | +astGUIclient web client|web-клиент astGUIclient| +VICIDIAL web client|web-клиент VICIDIAL| +VICIDIAL web-client version|Версия web-клиента VICIDIAL| +You can only monitor Zap channels|Вы можете только контролировать Zap каналы| +Stop Record|Остановить Запись| +you are logged into this phone|вы зарегистрированы на телефон| +Back to Main Window|Вернуться к Главному Окну| +LIVE CALLS ON THIS PHONE|ЖИВЫЕ ВЫЗОВЫ НА ЭТОТ ТЕЛЕФОН| +LIVE CALLS IN THIS CONFERENCE|ЖИВЫЕ ВЫЗОВЫ В ЭТОЙ КОНФЕРЕНЦИИ| +LIVE CALL TRANSFER|ПЕРЕВОД ЖИВОГО ВЫЗОВА| +CLIENT CHANNEL|КАНАЛ КЛИЕНТА| +REMOTE CHANNEL|УДАЛЕННЫЙ КАНАЛ| +CLICK HERE TO LOG IN AGAIN|КЛИКНИТЕ ЗДЕСЬ, ЧТОБЫ СНОВА ВОЙТИ| +ACTIVE DISPLAY PAUSED|ACTIVE DISPLAY PAUSED| +Main Panel|Главная Панель| +Active Lines Panel|Панель Активных Линий| +Conferences Panel|Панель Конференций| +Check Voicemail|Проверьте Голосовую почту| +Live Call|Живой Вызов| +Hangup Trunk|Hangup Trunk| +Hijack Trunk|Hijack Trunk| +Listen Trunk|Listen Trunk| +Active Local Menu|Активное Локальное Меню| +Hangup Local|Hangup Local| +Hijack Local|Hijack Local| +Listen Local|Listen Local| +Channel to be transferred|Канал в который будет переведен| +Extensions Menu|Меню Расширений| +Send to selected extension|Отправить в выбранное расширение| +Send to selected vmail box|Отправить в выбранный vmail box| +Send to this number|Отправить в этот номер| +click on a number below to send to a conference|кликните на номере ниже, чтобы отправить в конференцию| +Send my channel too|Отправить также мой канал| +Conferences Menu|Меню Конференций| +LOCAL Extensions Dial|ЛОКАЛЬНОЕ Расширение Набора номера| +Phone calling from|Телефонный вызов от| +Call selected extension|Вызов в выбранное расширение| +Call selected vmail box|Вызов в выбранный vmail box| +LOCAL DIAL EXTENSIONS|ЛОКАЛЬНЫЕ РАСШИРЕНИЯ НАБОРА НОМЕРА| +OUTBOUND CALLS|ИСХОДЯЩИЕ ВЫЗОВЫ| +INBOUND CALLS|ВХОДЯЩИЕ ВЫЗОВЫ| +Refresh rate|Норма обновлений| +MANUAL DIAL|РУЧНОЙ НАБОР НОМЕРА| +CALL DATE\/TIME|ЗВОНИТЬ ДАТА/ВРЕМЯ| +LOCAL HANGUP|ЛОКАЛЬНВЙ HANGUP| +PARKED CALLS|ПАРКОВАТЬ ВЫЗОВ| +PARKED BY|ПАРКОВАНЫЙ| +PARKED TIME|ВРЕМЯ ПАРКОВКИ| +Registered to|Registered to| +Enter Conference|Вход на Конференцию| +Dial From Conf|Набор номера Conf| +Active Extensions|Активные Расширения| +Outside Lines|Внешние Линии| +Local Extensions|Локальные Расширения| +Data Goes Here|Данные Идут Сюда| +Trunk Action|Trunk Action| +Local Action|Local Action| +Conferences List|Список Конференций| +Click on a conference room number on the left for info on that conference|Для информации о конференции кликните на номер конференции слева| +List Display|Показывать Списки| +Live Extensions|Активные расширения| +Busy Extensions|Занятые Расширения| +Outside Lines|Внешние Линии| +script runtime|время выполнения скрипта| +Call Log Display|Показать Логи Вызовов| +is not valid|это неправильно| +or protocol|или протокол| +Conf Extension Check|Conf Extension Check| +has been registered to|был зарегистрирован на| +LIVE INBOUND CALL|ЖИВОЙ ВХОДЯЩИЙ ВЫЗОВ| +Number Dialed|Набранный Номер| +SEND TO MY VOICEMAIL|ПОСЛАТЬ В МОЙ VOICEMAIL| +Live Extension Check|Live Extension Check| +Manager Send|Отослать Менеджеру| +command not inserted|команда не введена| +command sent for|посылать команду для| +One of these variables|Одна из этих переменных| +must be greater than 2 characters|должно быть больше чем 2 символа| +must be greater than 14 characters|должно быть больше чем 14 символов| +must be set|должен быть установлен| +not sent|не послано| +Cannot find empty conference|Не могу найти свободную конференцию| +is not live|это не активно| +RECORDING WILL LAST UP TO 60 MINUTES|ЗАПИСЬ МОЖЕТ ПРОДОЛЖАТЬСЯ ДО 60 МИН.| +Parked Calls Display|Показать Паркованные Вызовы| +Database Query Script|Скрипт Запроса Базы Данных| +Group Choice|Выбор Группы| +has been registered to user|был зарегистрован пользователем| +HOPPER EMPTY|ПУСТОЙ КОНТЕЙНЕР| +LOG NOT ENTERED|LOG НЕ ВВЕДЕН| +has been changed to|был изменен на| +information has been updated|информация обновлена| +is now in status|новый статус| +Voicemail Check|Проверка Voicemail| +voicemail box|voicemail box| +Re-Login|Re-Login| +User Password|Пароль Пользователя| +User Login|Логин Пользователя| +Phone Login|Логин Телефона| +Phone Password|Пароль Телефона| +Campaign not active, please try again|Кампания не активна, пожалуйста, попробуйте еще раз| +Login incorrect, please try again|Логин неправильный, пожалуйста, попробуйте еще раз| +Campaign Login|Логин Кампании| +Sorry, your phone login and password are not active in this system, please try again|Извините, но ваш логин и пароль телефона не активен в этой системе. Пожалуйста, попробуйте еще раз| +leads left to call in hopper|Leads оставил вызовы в контейнере| +CAMPAIGN CUSTOM PARKING|ПОЛЬЗОВАТЕЛЬСКИЙ РЕЖИМ ПАРКОВКИ КАМПАНИИ| +CAMPAIGN DEFAULT PARKING|РЕЖИМ ПАРКОВКИ КАМПАНИИ ПО УМОЛЧАНИЮ| +CAMPAIGN CUSTOM WEB FORM|ПОЛЬЗОВАТЕЛЬСКАЯ WEB-ФОРМА КАМПАНИИ| +CAMPAIGN DEFAULT WEB FORM|WEB-ФОРМА КАМПАНИИ ПО УМОЛЧАНИЮ| +CAMPAIGN ALLOWS CLOSERS|КАМПАНИЯ ПОЗВОЛЯЕТ CLOSERS| +CAMPAIGN ALLOWS NO CLOSERS|КАМПАНИЯ НЕ ПОЗВОЛЯЕТ CLOSERS| +USING PREVIOUS MEETME ROOM|ИСПОЛЬЗОВАНИЕ ПРЕДЫДУЩЕЙ MEETME ROOM| +USING NEW MEETME ROOM|ИСПОЛЬЗОВАНИЕ НОВОЙ MEETME ROOM| +old QUEUE and INCALL reverted list|old QUEUE and INCALL reverted list| +old QUEUE and INCALL reverted hopper|old QUEUE and INCALL reverted hopper| +old vicidial_live_agents records cleared|старые отчеты vicidial_live_agents очищены| +campaign is set to auto_dial_level|кампания установлена в auto_dial_level| +new vicidial_live_agents record inserted|новая vicidial_live_agents запись вставлено| +campaign is set to manual dial|кампания установлена в ручной набор номера| +Sorry, there are no leads in the hopper for this campaign|Жаль, но leads нет в контейнере этой кампании| +Dial Next Number|Набрать следующий номер| +LIVE CALLS IN YOUR SESSION|ЖИВЫЕ ВЫЗОВЫ В ВАШЕЙ СЕССИИ| +Stop Recording|Остановить Запись| +Start Recording|Начать Запись| +Transfer number must have more than 1 digit|У номера перевода должно быть больше чем 1 цифра| +Grab Parked Call|Захват Ожидающего Вызова| +Park Call|Парковать Вызов| +Waiting for Ring|Ожидание Кольца вызова| +Called 3rd party|Вызов третьей стороны| +LEAVE 3-WAY CALL|ОСТАВИТЬ 3-WAY ЗАПРОС| +Dial With Customer|Набор номера С Клиентом| +Park Customer Dial|Парковать Набор номера Клиента| +Hangup Xfer Line|Разъединение Xfer Линии| +Hangup Both Lines|Разъединить Обе Линии| +Hangup Customer|Разъединить Клиента| +Transfer - Conference|Перевод - Конференция| +LOCAL CLOSER|ЛОКАЛЬНЫЙ CLOSER| +INTERNAL CLOSER|ВНУТРЕННИЙ CLOSER| +Dial Blind Transfer|Слепой Перевод Набора номера| +Dial timed out, contact your system administrator|Превышено время ожидания набора номера, свяжитесь с сисадмином| +No more leads in the hopper for campaign|Нет больше leads для кампании в контейнере| +Web Form|Web Форма| +You Must Select a Disposition|Вы Должны Выбрать Диспозицию| +GROUPS NOT SELECTED|ГРУППЫ НЕ ВЫБРАНЫ| +SELECTED GROUPS|ВЫБРАННЫЕ ГРУППЫ| +You cannot log out during a Dial attempt|Вы не можете выйти из системы во время попытки Набора номера| +Wait 50 seconds for the dial to fail out if it is not answered|Ждите 50 секунд набора номера для явного 'нет ответа'| +STILL A LIVE CALL! Hang it up then you can log out|ВСЕ ЕЩЕ АКТИВНЫЙ ЗАПРОС! Разъедините и тогда выходите из системы| +Hide conference call channel information|Скрыть информацию о канале конференц-связи| +Show conference call channel information|Показать информацию о канале конференц-связи| +Logged in as User|Пользователь| +Noone is in your session|Никого нет в вашей сессии| +Customer has hung up|Клиент разъединен| +End-of-call Disposition Selection|Выбор Диспозиции End-of-call| +CLOSER INBOUND GROUP SELECTION|ВЫБОР INBOUND ГРУППЫ CLOSER| +Closer Inbound Group Selection|Closer Inbound Group Selection| +BLENDED CALLING|BLENDED CALLING| +outbound activated|исходящие активированы| +Preview the Lead then|Просмотр Lead тогда| +Lead was not reverted, there was an error|Lead не вернулся, была ошибка| +call was not placed, there was an error|вызов не был обслужен, была ошибка| +Number to call|Номер для вызова| +Customer Information|Информация Клиента| +Lead Dispositioned As|Lead Диспозицию как| +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|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| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Когда активно, просто нажмите клавишу желаемой диспозиции для этого запроса. Тогда запрос будет автоматически разъединен и dispositioned| +Disposition Hot Keys|Горячие Клавиши Диспозиции| +Cust Time|Cust Время| +RECORD ID|ID ЗАПИСИ| +RECORDING FILE|ФАЙЛ ЗАПИСИ| +HOT KEYS ACTIVE|АКТИВНЫЕ ГОРЯЧИЕ КЛАВИШИ| +HOT KEYS INACTIVE|НЕАКТИВНЫЕ ГОРЯЧИЕ КЛАВИШИ| +DIAL OVERRIDE|НАБЕРИТЕ ОТМЕНУ| +SKIP LEAD|ПРОПУСТИТЬ LEAD| +DIAL LEAD|НАБОР LEAD| +LEAD PREVIEW|ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР LEAD| +PAUSE AGENT DIALING|ПАУЗА ВЫЗОВА| +DISPOSITION CALL|DISPOSITION CALL| + session ID| ID сессии| + to campaign| в кампанию| +Select a CallBack Date|Выберите дату для CallBack| + maximize| максимизировать| + minimize| минимизировать| +You must choose a date|Вы должны выбрать дату| +Select a Date Below|Выберите Дату Ниже| +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|Чтобы позвонить клиенту сейчас, кликните на callback ниже. Если Вы нажмете на record ниже, чтобы позвонить, то это будет удалено из списка| +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|Если вы хотите набрать номер, но не добовлять новый lead, введите точный dialstring который вы хотите вызвать в поле Отмены Номера ниже. Для разъединения этого запроса вы должны будете открыть ссылку ЗАПРОСЫ В ЭТОЙ СЕССИИ внизу экрана, at the bottom of the screen and hang it up by clicking on its channel link there| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|ВЫ НЕ МОЖЕТЕ ПРОПУСТИТЬ ПОВТОРНЫЙ ЗВОНОК ИЛИ РУЧНОЙ НАБОР НОМЕРА, ВЫ ДОЛЖНЫ DIAL THE LEAD| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|ВЫ ДОЛЖНЫ СДЕЛАТЬ ПАУЗУ РУЧНОГО НАБОРА НОМЕРА НОВЫЙ LEAD В РЕЖИМЕ АВТО НАБОРА НОМЕРА| +Enter information below for the new lead you wish to call|Ведите информацию ниже для нового lead который вы хотите вызвать| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|ВЫ ДОЛЖНЫ СДЕЛАТЬ ПАУЗУ, ЧТОБЫ ПРОВЕРИТЬ ВЫЗОВЫ В РЕЖИМЕ АВТОМАТИЧЕСКОГО НАБОРА НОМЕРА| +Note: all new manual dial leads will go into list 999|Примечание: все новые leads ручного набора номера войдут в список 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|У ВАС НЕТ РАЗРЕШЕНИЯ ДЛЯ ПЕРЕВОДА ВЫЗОВА| +will be added to the beginning of this number|будет добавлен в начале этого номера| +This is usually a 1 in the USA-Canada|Обычно 7 для России и некоторых стран СНГ| +NEW MANUAL DIAL LEAD FOR|НОВЫЙ LEAD РУЧНОЙ НАБОР НОМЕРА ДЛЯ| +Finish and Disposition Call|Конец и Вызов Диспозиции| +10 digits max - digits only|максимально 10 цифр - только цифры| +Note: a dial prefix of|Примечание: префикс набора номера | +Hangup Again|Разъединить Снова| +Go Back|Вернуться| +Call Agent Again|Вызов Оператора Снова| +MY CALLBACK ONLY|ТОЛЬКО МОИ CALLBACK| +NO ACTIVE CALLBACKS|НЕТ АКТИВНЫХ CALLBACK| +ACTIVE CALLBACKS|АКТИВНЫЕ CALLBACK| +CALLBACKS FOR AGENT|CALLBACK ДЛЯ ОПЕРАТОРА| +Dial Code:|Код страны:| +Dial Override|Отмененный набор номера| +digits only please|только цифры, пожалуйста| +Dial Now|Новый Набор номера| +CB Comments|CB Комментарии| +Title|Title| +Your Status|Ваш Статус| + STATUS| СТАТУС| +RESET|RESET| +CLEAR FORM|ОЧИСТИТЬ ФОРМУ| +SUBMIT|SUBMIT| +Incoming|Входящий| +Calling|Запрос| +Called|Вызванный| +Campaign|Кампания| +Status|Статус| +Inserted|Введенный| + seconds|секунды| +HELP|ПОМОЩЬ| +Login|Логин| +User|Пользователь| +Password|Пароль| +VERSION|ВЕРСИЯ| +BUILD|СБОРКА| +Server|Сервер| +RECORD|ЗАПИСЬ| +HANGUP|РАЗЪЕДИНЕНИЕ| +>XFER|>ПЕРЕВОД| +PARK|ПАРКОВКА| +IN-NUMBER|В-НОМЕР| +NUMBER|НОМЕР| +LENGTH|ДЛИНА| +CALLERID|ВЫЗЫВАЮЩИЙID| +CallerID|ВызывающийID| + CALL| ВЫЗОВ| +PICKUP|PICKUP| +CONFERENCE|КОНФЕРЕНЦИЯ| +Refresh|Обновление| +Send DTMF|Послать DTMF| +ORDER|ПОРЯДОК| + on | на | +LOGOUT|ВЫХОД| +Channel|Канал| +Extensions|Расширения| +Conferences|Конференции| +Conference|Конференция| +Recording|Recording| +Record|Record| +Welcome|Добро пожаловать| +VOICEMAIL|VOICEMAIL| + NEW| НОВЫЙ| + OLD| СТАРЫЙ| +PAUSE|ПАУЗПА| +START|СТАРТ| + Pause | Пауза | +Resume|Резюме| +Faster|Быстрее| +Slower|Медленее| +Initializing|Инициализация| +Invalid|Недопустимо| +Username|Username| +CUSTOM|ПОЛЬЗОВАТЕЛЬСКИЙ| +Notes|Примечания| +First|Имя| +MI: |MI: | +Last|Фамилия| +Address|Адрес| +City|Город| +State|Округ| +PostCode|Индекс| +Province|Область/Край| +Vendor ID|ID Вендора| +DialCode|Код| +Alt. Phone|Альт. Телефон| +Show|Показать| +Email|Email| +Comments|Комментарии| +REFRESH|ОБНОВИТЬ| +ALT PHONE DIAL|НАБРАТЬ АЛЬТ. НОМЕР| +MAIN PHONE|ОСНОВНОЙ ТЕЛЕФОН| +ALT PHONE|АЛЬТ. ТЕЛЕФОН| +ADDRESS3|АДРЕСС 3| +FINISH LEAD|ФИНИШ LEAD| +Dial Alt Phone Number|Набор Альт.Номера| +Phone|Телефон| + DIAL| НАБОР НОМЕРА| +SUBMIT FAVORITES CHANGES - requires logout|ПОДТВЕРДИТЕ ИЗМЕНЕНИЕ ИЗБРАННОГО - требование для выхода из системы| +BACK TO MAIN WINDOW - ignore changes made|ВЕРНУТЬСЯ К ГЛАВНОМУ ОКНУ - игнорирует сделанные изменения| +AVAILABLE EXTENSIONS|ДОСТУПНЫЕ РАСШИРЕНИЯ| + edit|редактировать| + FAVORITES|ИЗБРАННОЕ| +### END translation phrases through 1.1.11 release ### +Search Existing Leads|Поиск Существующих Leads| +This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Если эта опция выбрана, то будет предпринята попытка найти телефонный номер в системе, прежде чем вставить его как новый lead| +Finish Wrapup and Move On|Финиш Wrapup и Переход| +seconds remaining in wrapup|секунд осталось в wrapup| +Call Wrapup:|Call Wrapup:| +### months of the year for CallBack date select screen ### +January|Январь| +Frebruary|Февраль| +March|Март| +April|Апрель| +May|Май| +June|Июнь| +July|Июль| +August|Август| +September|Сентябрь| +October|Октябрь| +November|Ноябрь| +December|Декабрь| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Предыдущая Информация о Callback| +Last Call: |Последний Вызов:| +CallBack: |CallBack:| +Agent: |Оператор:| +Comments: |Комментарии:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|ГРОМКОСТЬ| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|БЫСТРЫЙ НАБОР НОМЕРА| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|ЧТОБЫ ИСПОЛЬЗОВАТЬ БЫСТРЫЙ НАБОР НОМЕРА, ВЫ ДОЛЖНЫ ВВЕСТИ НОМЕР ТЕЛЕФОНА И КОД СТРАНЫ| + SELECT A PAUSE CODE :| ВЫБЕРИТЕ КОД ПАУЗЫ :| +ENTER A PAUSE CODE|ВВЕДИТЕ КОД ПАУЗЫ| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|ВЫ ДОЛЖНЫ АКТИВИРОВАТЬ ПАУЗУ, ЧТОБЫ ВВЕСТИ КОД ПАУЗЫ В РЕЖИМЕ АВТО-НАБОРА| +Your session has been disabled|Ваша сессия отключена| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Пол:| +Date of Birth: |Дата рождения:| +YOU MUST BE PAUSED TO CHANGE GROUPS|ТЫ ДОЛЖЕН БЫТЬ PAUSED сменить группу| +Calls in Queue:|Звонки в очереди:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|Пользователя и пароль, которые вы вступили, не действующих в системе| +Please try again|Пожалуйста, повторите попытку| +You cannot log in or out within 30 seconds of your last login or logout|Вы не можете войти или в течение 30 секунд после вашего последнего входа в систему или Logout| +You have now logged-out|Вы уже зарегистрированы отказа| +You logged out at |Вы вошли на| +Amount of time you were logged-in: |Количество раз, когда вы были зарегистрированы в:| +ERROR: timeclock log entry already made: |ОШИБКА: timeclock вход вход уже сделал:| +BACK to Agent Login Screen|BACK TO Агент Логин экрана| +BACK to Administration|BACK TO администрации| +BACK to Welcome Screen|BACK приветствовать экрана| +Time since you were last logged-in: |Время с момента вашего последнего входа в:| +You last logged-out at: |Вы последнего зарегистрированного по адресу:| +Click LOGIN below to log-in|Нажмите кнопку Вход для входа в| +Amount of time you have been logged-in: |Количество раз, когда вы вышли в:| +You logged-in at:|Вы вошли в по адресу:| +Click LOGOUT below to log-out|Нажмите LOGOUT для входа из| +Undefined|Undefined| +This phone number is not in the campaign lists|Этот телефон не находится в списках кампании| +Unspecified error|Неизвестная ошибка| +Extended Alt Phone Information: |Расширенная информация Alt Телефон:| +ALT DIAL NUMBER:|ALT номер:| +Phone Code and Number:|Телефон кодекса и номер:| +Notes: |Примечания:| +Active: |Активно:| +Alt Count: |Alt Кол-во:| +Change this phone number to INACTIVE|Изменить этот телефонный номер НЕАКТИВНОЕ| +Change this phone number to ACTIVE|Изменить этот телефонный номер АКТИВНЫМ| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|Вы должны войти в систему TIMECLOCK ПЕРВЫЙ| +There is a time synchronization problem with your system, please tell your system administrator|Существует проблема синхронизации времени с вашей системой, пожалуйста, сообщите об этом вашему системному администратору| +Preview Call|Предварительный Звоните| +SELECT A GROUP ALIAS|ВЫБОР ГРУППЫ ALIAS| +Group Alias Selection|Группа Alias выбора| +Click Here to Choose a Group Alias|Нажмите здесь, чтобы Выбери группу Alias| +Group Alias|Группа Alias| +ERROR: There are no Shifts enabled for your user group|ОШИБКА: Есть сдвиги не включена для пользователя группы| +ERROR: You are not allowed to log in outside of your shift|ОШИБКА: Вы не можете войти в вашу за переход| +MANAGER OVERRIDE|МЕНЕДЖЕР Переопределить| +Your Shift is over or has changed, you have been logged out of your session|Ваш Shift больше или изменилась, Вы вышли из Вашей сессии| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Вы не можете набрать в других сессиях агент| +QUICK TRANSFER|Быстрой передачи| +Other Agents Status|Другие агенты Статус| +Available Agents Transfer|Доступные Агенты передачи| +Show Calls In Queue|Показать Звонки в очередь| +Calls In Queue|Звонки в очередь| +Hide Calls In Queue|Скрыть Звонки в очередь| +Calls in Queue View Disabled for this campaign|Звонки в Очередь Открыть инвалидов для этой кампании| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|ВЫ ДОЛЖНЫ быть приостановлена схватить Звонки в ОЧЕРЕДЬ| +Manager |Менеджер| +has selected your in-group choices|выбрал в вашей группе выбора| +CONSULTATIVE|КОНСУЛЬТАТИВНЫЙ| +Close Message|Закрыть сообщение| +TIMER NOTIFICATION|ТАЙМЕР УВЕДОМЛЕНИЯ| diff --git a/agc_2-X/branches/agc_2.2.0/translations/sk_language.txt b/agc_2-X/branches/agc_2.2.0/translations/sk_language.txt new file mode 100644 index 00000000..80f10c6d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/sk_language.txt @@ -0,0 +1,491 @@ +# sk_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: ./config.pl --language=sk +# current languages in the file: +# - English - (en) no alterations +# - Slovak - (sk) first column +***LANGUAGES*** +en-English|sk-Slovensky| +***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|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"JAN"| +"FEB"|"FEB"| +"MAR"|"MAR"| +"APR"|"APR"| +"MAY"|"MAJ"| +"JUN"|"JUN"| +"JLY"|"JUL"| +"AUG"|"AUG"| +"SEP"|"SEP"| +"OCT"|"OCT"| +"NOV"|"NOV"| +"DEC"|"DEC"| +\./images/|../agc/images/| +BORDER|Border| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|Angličtina| +Spanish|Španielčina| +French|Francúzština| +German|Nemčina| +Italian|Taliančina| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines.gif| +agc_tab_conferences.gif|agc_tab_conferences.gif| +agc_tab_main.gif|agc_tab_main.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF.gif| +vdc_LB_pause.gif|vdc_LB_pause.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF.gif| +vdc_LB_resume.gif|vdc_LB_resume.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF.gif| +vdc_LB_webform.gif|vdc_LB_webform.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF.gif| +vdc_XB_header.gif|vdc_XB_header.gif| +vdc_XB_number.gif|vdc_XB_number.gif| +vdc_XB_channel.gif|vdc_XB_channel.gif| +vdc_XB_seconds.gif|vdc_XB_seconds.gif| +vdc_tab_script.gif|vdc_tab_script.gif| +You have now logged out. Thank you|Práve ste sa odhlásili, Ďakujeme| +astGUIclient web-client VERSION|astGUIclient verzia web-klient| +astGUIclient web client|web klient astGUIclient| +VICIDIAL web client|web klient VICIDIAL| +VICIDIAL web-client version|verzia web klient VICIDIAL| +You can only monitor Zap channels|Možete monitorovať len ZAP kanály| +Stop Record|Zastavenie nahrávania| +you are logged into this phone|Ste prihlásený k telefónu| +Back to Main Window|Säť do zakladného okna| +LIVE CALLS ON THIS PHONE|ŽIVÉ HOVORY NA TOMTO TELEFÓNE| +LIVE CALLS IN THIS CONFERENCE|ŽIVÉ HOVORY V TEJTO KONFERENCII| +LIVE CALL TRANSFER|PRESMEROVANIE ŽIVÉHO HOVORU| +CLIENT CHANNEL|KLIENTSKÝ KANÁL| +REMOTE CHANNEL|VZDIALENÝ KANÁL| +CLICK HERE TO LOG IN AGAIN|KLIKNITE TU NA ZNOVU PRIHLÁSENIE| +ACTIVE DISPLAY PAUSED|ZOBRAZIT AKTÍVNU PAUZU| +Main Panel|Základný panel| +Active Lines Panel|Panel aktívnych liniek| +Conferences Panel|Panel konferencií| +Check Voicemail|Overiť hlasovú schránku| +Live Call|Živý hovor| +Hangup Trunk|Zložiť trunk| +Hijack Trunk|Capturar Trunk| +Listen Trunk|Počúvať trunk| +Active Local Menu|Aktívne lokálne menu| +Hangup Local|Zložiť lokálne| +Hijack Local|Capturar Local| +Listen Local|Počúvať lokálne| +Channel to be transferred|Kanál má byť presmerovaný| +Extensions Menu|Menu pobočiek| +Send to selected extension|Poslať do vybranej pobočky| +Send to selected vmail box|Poslať do vybranej odkazovej schránky| +Send to this number|Poslať na toto číslo| +click on a number below to send to a conference|Kliknite na číslo dole pre poslanie do konferencie| +Send my channel too|Poslať môj kanál tiež| +Conferences Menu|Menu konferencií| +LOCAL Extensions Dial|Volanie LOKÁLNYCH pobočiek| +Phone calling from|Volanie telefónu z| +Call selected extension|Volať vybrané pobočky| +Call selected vmail box|Volať vybrané hlasové schránky| +LOCAL DIAL EXTENSIONS|VOLANIE LOKÁLNYCH POBOČIEK| +OUTBOUND CALLS|ODCHODZIE HOVORY| +INBOUND CALLS|PRÍCHODZIE HOVORY| +Refresh rate|Doba obnovenia| +MANUAL DIAL|RUČNÉ VOLANIE| +CALL DATE\/TIME|DÁTUM HOVORU/ČAS| +LOCAL HANGUP|Zloženie lokálne| +PARKED CALLS|ZAPARKOVANIE HOVOROV| +PARKED BY|ZAPARKOVANIE PRE| +PARKED TIME|ČAS ZAPARKOVANIA| +Registered to|Pprihlásenie do| +Enter Conference|Vložiť konferenciu| +Dial From Conf|Volanie z konferencie| +Active Extensions|Aktívne pobočky| +Outside Lines|Vonkajšie linky| +Local Extensions|Lokálne pobočky| +Data Goes Here|Tu sú dáta| +Trunk Action|Trunk akcia| +Local Action|Lokálna akcia| +Conferences List|Zoznam konferencií| +Click on a conference room number on the left for info on that conference|Kliknite ľavým tlačidlom na konferenciu pre získanie informácie| +List Display|Zobraziť zoznamy| +Live Extensions|Aktívne pobočky| +Busy Extensions|Obsadené pobočky| +Outside Lines|Vonkajšie linky| +script runtime|bežiaci script| +Call Log Display|Zobraziť log hovoru| +is not valid|Nie je správny| +or protocol|alebo protokol| +Conf Extension Check|Overiť konferenčnú pobočku| +has been registered to|bol zaregistrovaný| +LIVE INBOUND CALL|ŽIVÝ PRÍCHODZÍ HOVOR| +Number Dialed|Volané číslo| +SEND TO MY VOICEMAIL|POSLAŤ DO MOJEJ HLASOVEJ SCHRÁNKY| +Live Extension Check|Overiť aktívnu pobočku| +Manager Send|Poslať manažér| +command not inserted|príkaz nebol vložený| +command sent for|príkaz poslaný pre| +One of these variables|Jeden z týchto premených| +must be greater than 2 characters|musí byť viac ako 2 znaky| +must be greater than 14 characters|musí byť viac ako 14 znakov| +must be set|musí byť nastavené| +not sent|neodoslané| +Cannot find empty conference|Nie je možné nájsť prázdnu konferenciu| +is not live|nie je živá| +RECORDING WILL LAST UP TO 60 MINUTES|NAHRÁVAŤ SA BUDE 60 MINÚT| +Parked Calls Display|Zobraziť zaparkované hovory| +Database Query Script|Databázový dotaz-script| +Group Choice|Zmena skupiny| +has been registered to user|bol zaregistrovaný pre užívateľa| +HOPPER EMPTY|ZASOBNIK JE PRAZDNY| +LOG NOT ENTERED|LOG NEBOL ZADANÝ| +has been changed to|bol zmenený pre| +information has been updated|Informácia bola aktualizovaná| +is now in status|je teraz v stave| +Voicemail Check|Overiť hlasovú schránku| +voicemail box|hlasová schránka| +Re-Login|Znova prihlásiť| +User Password|Heslo užívateľa| +User Login|Meno užívateľa| +Phone Login|Prihlásenie telefónu| +Phone Password|Heslo telefónu| +Campaign not active, please try again|Kampaň nie je aktívna, prosím skúste znova| +Login incorrect, please try again|Prihlasovacie meno je nesprávne, prosím skúste znova| +Campaign Login|Prihlásenie kampane| +Sorry, your phone login and password are not active in this system, please try again|Prepáčte, Vaše prihlasovacie meno a heslo nie sú aktívne v tomto systéme, prosím skúste znova| +leads left to call in hopper|Kontakty na volanie už nie sú v zásobníku| +CAMPAIGN CUSTOM PARKING|PARKOVANIE UPRAVENEJ KAMPANE| +CAMPAIGN DEFAULT PARKING|PARKOVANIE ZÁKLADNEJ KAMPANE| +CAMPAIGN CUSTOM WEB FORM|WEB FORMULÁR UPRAVENEJ KAMPANE| +CAMPAIGN DEFAULT WEB FORM|WEB FORMULÁR ZÁKLADNEJ KAMPANE| +CAMPAIGN ALLOWS CLOSERS|LA CAMPAÑA PERMITE CLOSERS| +CAMPAIGN ALLOWS NO CLOSERS|LA CAMPAÑA NO PERMITE CLOSERS| +USING PREVIOUS MEETME ROOM|POUŽIŤ PREDCHÁDZAJÚCU MIESTNOSŤ MEETME| +USING NEW MEETME ROOM|POUŽIŤ NOVÚ MEETME MIESTNOSŤ| +old QUEUE and INCALL reverted list|stará fronta a obnovený zoznam kontaktov na volanie| +old QUEUE and INCALL reverted hopper|stará fronta a obnovený zásobník volania kontaktov| +old vicidial_live_agents records cleared|záznami starých vicidial_živých_agentov vymazaní| +campaign is set to auto_dial_level|kampaň je nastavená pre auto_dial_level| +new vicidial_live_agents record inserted|Nový záznam o vicidial_živých_agentoch| +campaign is set to manual dial|kampaň je nastavená na ručné vytáčanie| +Sorry, there are no leads in the hopper for this campaign|Prepáčte, ale nie sú záznamy v zásobníku pre túto kamaň| +Dial Next Number|Volať ďalšie číslo| +LIVE CALLS IN YOUR SESSION|ŽIVÉ HOVORY VO VAŠEJ| +Stop Recording|Zastaviť nahrávanie| +Start Recording|Spustiť nahrávanie| +Transfer number must have more than 1 digit|Presmerovanie čísla musí mať viac ako 1 číslo| +Grab Parked Call|Prevziať zaparkovaný hovor| +Park Call|Zaparkovaný hovor| +Waiting for Ring|Čakanie na zvonenie| +Called 3rd party|Voalať externú aplikáciu| +LEAVE 3-WAY CALL|PONECHAT 3 CESTNE VOLANIE| +Dial With Customer|Volanie so zákazníkom| +Park Customer Dial|Zaparkovať hovor so zákazníkom| +Hangup Xfer Line|Zložiť Xfer linku| +Hangup Both Lines|Zložiť obe linky| +Hangup Customer|Zložiť zákazníka| +Transfer - Conference|Presmerovanie - Konferencia| +LOCAL CLOSER|LOKALNE ROZSIRENIE| +INTERNAL CLOSER|INTERNE ROZSIRENIE| +Dial Blind Transfer|Volať slepé presmerovanie| +Dial timed out, contact your system administrator|Vypršaný čas volania, kontaktujte Vášho systémového administrátora| +No more leads in the hopper for campaign|Nemáte viac kontaktov v zásobníku pre túto kampaň| +Web Form|Web formulár| +You Must Select a Disposition|Musíte vybrať dipsozíciu| +GROUPS NOT SELECTED|SKUPINY NIE SÚ VYBRANÉ| +SELECTED GROUPS|VYBRANÉ SKUPINY| +You cannot log out during a Dial attempt|Nemôžete sa odhlásiť počas prebiehajúceho hovoru| +Wait 50 seconds for the dial to fail out if it is not answered|Čakať 50 sekúnd na volanie po neúspešnom prepojení ak nebola odpoveď| +STILL A LIVE CALL! Hang it up then you can log out|UŽ PREBIEHA ŽIVÝ HOVOR! Položte telefón a potom sa odhláste| +Hide conference call channel information|Skryť informáciu o konferenčný kanále| +Show conference call channel information|Ukázať informáciu o konferenčnom kanále| +Logged in as User|Ste prihlásený ako užívateľ| +Noone is in your session|Nikto nie je vo Vašej relácii| +Customer has hung up|Zákazník položil| +End-of-call Disposition Selection|Ukončenie hovoru vybranej dispozície| +CLOSER INBOUND GROUP SELECTION|Užší výber prichádzajúce skupiny| +Closer Inbound Group Selection|Užší výber prichádzajúce skupiny| +BLENDED CALLING|ZMIESANE VOLANIE| +outbound activated|Odchádzaúce volanie aktivované| +Preview the Lead then|Prehľad kontaktov pre| +Lead was not reverted, there was an error|Kontakty neboli obnovené, bola zistená chyba| +call was not placed, there was an error|Hovor nebol uskutočnený, bola zistená chyba| +Number to call|Číslo na volanie| +Customer Information|Informácia o zákazníkovi| +Lead Dispositioned As|Kontakty pripravené ako| +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|Všetky zmeny vykonané v informáciách o zákazníkovi teraz , budú vykonané, musíte zmeniť informácie o zákazníkovi pred ukončením hovoru| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|Keď je aktívne, jednoducho stlačte na klávesnici tlačidlo pre požadovanú dispozíciu pre tento hovor. Hovor bude potom ukončený automaticky| +Disposition Hot Keys|Rozloženie horúcich kláves| +Cust Time|Čas| +RECORD ID|ID NAHRÁVKY| +RECORDING FILE|SÚBOR NAHRÁVKY| +HOT KEYS ACTIVE|AKTÍVNE RÝCHLE TLAČIDLÁ| +HOT KEYS INACTIVE|NEAKTÍVNE RÝCHLE TLAČIDLÁ| +DIAL OVERRIDE|PREPISAT VOLANIE| +SKIP LEAD|PRESKOCIT ZOZNAM KONTAKTOV| +DIAL LEAD|VOLAT ZOZNAM KONTAKTOV| +LEAD PREVIEW|PREZRIET ZOZNAM KONTAKTOV| +PAUSE AGENT DIALING|PAUZA VOLAJUCEHO AGENTA| +DISPOSITION CALL|VYKONANIE HOVORU| + session ID| ID relácie| + to campaign| do kampane| +Select a CallBack Date|Vyberte dátum preplánovania hovoru| + maximize | maximalizovať | + minimize | minimalizovať | +You must choose a date|Musíte zmeniť dátum| +Select a Date Below|Vyberte dátum nižšie| +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|Kliknite na preplánovanie hovoru na volanie zákaznikovi znova. Ak kliknete na záznam nižšie budete ho volať a bude odstránený zo zoznamu| +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| Ak chcete vytočiť číslo, a nemáte ho v novom zozname kontaktov, vložte volané číslo , ktoré chcete volať do poľa Prepísať volanie. Pre ukončenie hovoru, budete musieť otvoriť odkaz HOVORY V TEJTO RELÁCII v spodnej časti obrazovky, a ukončiť požadovaný kanál| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|Nemôžete preskočiť na preplánovanie hovoru alebo manuálne vytáčanie, musíte vytočiť kontakt| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|Musíte byť pozastavený do manuálneho vytáčania v novom zozname kontaktov v móde AUTOMATICKÉHO vytáčania| +Enter information below for the new lead you wish to call|Zadajte nižšie uvedené informácie pre nový zoznam kontaktov, ktorý chcete volať| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|Musíte byť pozastavený na kontrolu preplánovaných hovorov v móde AUTOMATICKÉHO volania| +Note: all new manual dial leads will go into list 999|Poznámka: všetky nové manuálne voľby zoznamov kontaktov pôjdu do zoznamu 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|Nemáte oprávnenie k prepojeniu hovorov| +will be added to the beginning of this number|budú pridané na začiatok tohto čísla| +This is usually a 1 in the USA-Canada|To je obvykle 1 v USA-Kanada| +NEW MANUAL DIAL LEAD FOR|NOVÉ manuálne vytáčanie pre zoznam kontaktov| +Finish and Disposition Call|Ukončenie a umiestnenie hovoru| +10 digits max - digits only|maximálne 10 čísiel – len čísla| +Note: a dial prefix of|Poznámka: volajte prefix z| +Hangup Again|Položte znova| +Go Back|Vrátiť späť| +Call Agent Again|Volať agenta znova| +MY CALLBACK ONLY|LEN MOJE PREPLÁNOVANÉ HOVORY| +NO ACTIVE CALLBACKS|ŽIADNE AKTÍVNE PREPLÁNOVANÉ HOVORY| +ACTIVE CALLBACKS|AKTÍVNE PREPLÁNOVANÉ HOVORY| +CALLBACKS FOR AGENT|PREPLÁNOVANÉ HOVORY PRE AGENTA| +Dial Code:|Volať kód:| +Dial Override|Prepísanie volania| +digits only please|prosím len čísla| +Dial Now|Volať znova| +CB Comments|Poznámky CB| +Title|Titul| +Your Status|Váš stav| + STATUS| STAV| +RESET|ZNOVU INCIALIZOVAŤ| +CLEAR FORM|VYMAZAŤ FORMULÁR| +SUBMIT|POTVRDIŤ| +Incoming|Príchodzie| +Calling|Volané| +Called|Volaný| +Campaign|Kampaň| +Status|Stav| +Inserted|Vložiť| + seconds|sekúnd| +HELP|POMOC| +Login|Prihlásiť| +User|Užívateľ| +Password|Heslo| +VERSION|VERZIA| +BUILD|POSTAVENÉ| +Server|Server| +RECORD|ZÁZNAM| +HANGUP|POLOŹIŤ| +>XFER|>PREPOJIŤ| +PARK|ZAPARKOVAŤ| +IN-NUMBER|V-ČÍSLE| +NUMBER|ČÍSLO| +LENGTH|DĹŽKA| +CALLERID|IDVOLAJÚCEHO| +CallerID|IDvolajúceho| + CALL| HOVOR| +PICKUP|PREVZIAŤ| +CONFERENCE|KONFERENCIA| +Refresh|Osviežiť| +Send DTMF|Poslať DTMF| +ORDER|PORADIE| + on | na | +LOGOUT|ODHLÁSIŤ| +Channel|Kanál| +Extensions|Pobočky| +Conferences|Konferencie| +Conference|Konferencia| +Recording|Nashrávanie| +Record|NAHRAŤ| +Welcome|Vítame Vás| +VOICEMAIL|HLASOVÁ SCHRÁNKA| + NEW| NOVÁ| + OLD| STARÁ| +STOP|ZASTAVIŤ| +START|SPUSTIŤ| + Pause | Pauza | +Resume|Pokračovať| +Faster|Rýchlejšie| +Slower|Pomalšie| +Initializing|Inicializovať| +Invalid|Nesprávny| +Username|Užívateľské meno| +CUSTOM|UPRAVENÉ| +Notes|Poznámka| +First|Prvý| +MI: |MI: | +Last|Posledný| +Address|Adresa| +City|Mesto| +State|Štát| +PostCode|PSČ| +Province|Kraj| +Vendor ID|zákaznícke| +DialCode|Volací kód| +Alt. Phone|Alter. číslo| +Show|Prezrieť| +Email|Email| +Comments|Komentár| +REFRESH|OSVIEŽIŤ| +ALT PHONE DIAL|ALTER. ČÍSLO TELEFÓNU| +MAIN PHONE|ZÁKLADNÉ TEL. ČÍSLO| +ALT PHONE|ALTERN. TELEFÓN| +ADDRESS3|Adresa 3| +FINISH LEAD|UKONCIT ZOZNAM KONTAKTOV| +Dial Alt Phone Number|Volať alternatívne telefónne číslo| +Phone|Telefón| + DIAL| VOLAŤ| +SUBMIT FAVORITES CHANGES - requires logout|POTVRDIT FAVORIZOVANÉ ZMENY – vyžaduje sa odhlásenie| +BACK TO MAIN WINDOW – ignore changes made|SPAŤ DO ZÁKLADNÉHO OKNA - ignorujú sa uskutočnené zmeny| +AVAILABLE EXTENSIONS|DOSTUPNÉ POBOČKY| + edit| upraviť| + FAVORITES| FAVORIZOVANÉ| +### END translation phrases through 1.1.11 release ### +Search Existing Leads|Vyhľadať existujúce zoznamy kontaktov| +This option if checked will attempt to find the phone number in the system before inserting it as a new lead|Táto voľba skontroluje, ak sa bude snažiť nájsť telefónne číslo do systému pred jeho vloženie ako nového zoznamu kontaktov| +Finish Wrapup and Move On|Dokončiť Wrapup a presunúť na| +seconds remaining in wrapup|sekúnd zostávajúcich na wrapup| +Call Wrapup:|Volanie Wrapup:| +### months of the year for CallBack date select screen ### +January|Január| +Frebruary|Február| +March|Marec| +April|Apríl| +May|Máj| +June|Jún| +July|Júl| +August|August| +September|September| +October|Október| +November|November| +December|Decemeber| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|Predchádzajúca informácia o preplánovaní hovoru| +Last Call: |Posledný hovor:| +CallBack: |Preplánovanie hovoru:| +Agent: |Agent:| +Comments: |Poznámky:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|HLASITOSŤ| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|RÝCHLE VOLANIE| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|MUSÍTE VLOŽIŤ ČÍSLO TELEFÓNU A VOLACÍ KÓD NA POUŽITIE RÝCHLEHO VOLANIA| + SELECT A PAUSE CODE :| VYBRAŤ KÓD PAUZY :| +ENTER A PAUSE CODE|VLOŽIŤ KÓD PAUZY| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|MUSÍTE BYŤ V PAUZE NA VLOŽENIE KÓDU PAUZY V MÓDE AUTO-DIAL| +Your session has been disabled|Vaša relácia bola ukončená| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |Pohlavie:| +Date of Birth: |Dátum narodenia:| +YOU MUST BE PAUSED TO CHANGE GROUPS|Musíte byť pozastavené NA ZMENU ZOSKUPENIA| +Calls in Queue:|Hovory v Queue:| + Timeclock|Timeclock| +The user and password you entered are not active in the system|Užívateľa a heslo, ktoré ste zadali, nie sú aktívne v systéme| +Please try again|Prosím, skúste to znova| +You cannot log in or out within 30 seconds of your last login or logout|Nemôžete sa prihlásiť alebo sa do 30 sekúnd od vášho posledného prihlásenia alebo odhlásenie| +You have now logged-out|Teraz ste prihlásený-out| +You logged out at |Ste odhlásený na| +Amount of time you were logged-in: |Množstvo času, ste prihlásený-in:| +ERROR: timeclock log entry already made: |ERROR: timeclock log vstupe už bolo dosiahnuté:| +BACK to Agent Login Screen|SPÄŤ na Agent Prihlásiť obrazovky| +BACK to Administration|SPÄŤ na administratívne| +BACK to Welcome Screen|SPÄŤ na úvodnú obrazovku| +Time since you were last logged-in: |Čas od Vášho posledného prihlásenia-in:| +You last logged-out at: |Ty posledný prihlásený-out na:| +Click LOGIN below to log-in|Kliknite nižšie k LOGIN LOG-IN| +Amount of time you have been logged-in: |Množstvo času, ktoré ste vykáceli-in:| +You logged-in at:|Ste prihlásený-in na adrese:| +Click LOGOUT below to log-out|Kliknite na Logout nižšie log-out| +Undefined|Undefined| +This phone number is not in the campaign lists|Tento telefón nie je v kampani zoznamy| +Unspecified error|Nešpecifikovaná chyba| +Extended Alt Phone Information: |Rozšírená Alt Telefón Informácie:| +ALT DIAL NUMBER:|ALT DIAL číslo:| +Phone Code and Number:|Telefón Kód a číslo:| +Notes: |Poznámky:| +Active: |Aktívne:| +Alt Count: |Alt Count:| +Change this phone number to INACTIVE|Zmeniť toto telefónne číslo k NEAKTÍVNYCH| +Change this phone number to ACTIVE|Zmeniť toto telefónne číslo k aktívnemu| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|Musíte sa prihlásiť do TIMECLOCK PRVEJ| +There is a time synchronization problem with your system, please tell your system administrator|Je synchronizácia času problém s vašim systémom, povedzte to, prosím, správcu systému| +Preview Call|Náhľad Výzva| +SELECT A GROUP ALIAS|VYBER GROUP ALIAS| +Group Alias Selection|Skupina Alias Výber| +Click Here to Choose a Group Alias|Kliknite tu pre Zvoliť skupinu Alias| +Group Alias|Skupina Alias| +ERROR: There are no Shifts enabled for your user group|ERROR: Nie sú k dispozícii žiadne Posuvy povolený pre užívateľské skupiny| +ERROR: You are not allowed to log in outside of your shift|ERROR: Nemáte možnosť prihlásiť sa mimo vašej smeny| +MANAGER OVERRIDE|MANAGER prepísať| +Your Shift is over or has changed, you have been logged out of your session|Vaša Shift je nad alebo sa zmenilo, ste boli odhlásený vašej relácie| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|Nie je dovolené, aby voľby do iných agent zasadnutí| +QUICK TRANSFER|Rýchly prenos| +Other Agents Status|Ostatné zástupcovia Status| +Available Agents Transfer|Dostupných prostriedkov Transfer| +Show Calls In Queue|Zobraziť žiada, aby vo fronte| +Calls In Queue|Hovorov vo fronte| +Hide Calls In Queue|Skryť žiada, aby vo fronte| +Calls in Queue View Disabled for this campaign|Hovorov v zobrazení frontu Zakázané pre túto kampaň| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|Musíte byť sa odmlčal, aby GRAB VOLANIA do fronty| +Manager |Manažér| +has selected your in-group choices|vybrala si v skupine-voľby| +CONSULTATIVE|PORADNÝ| +Close Message|Zavrieť správu| +TIMER NOTIFICATION|TIMER OZNAM| diff --git a/agc_2-X/branches/agc_2.2.0/translations/tw_language.txt b/agc_2-X/branches/agc_2.2.0/translations/tw_language.txt new file mode 100644 index 00000000..34bd27b0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/translations/tw_language.txt @@ -0,0 +1,522 @@ +# tw_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=zt +# current languages in the file: +# - English - (en) no alterations +# - Traditional Chinese - (zt_tw) second column +***LANGUAGES*** +en-English|tw-中文繁體| +***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 +agc|timeclock.php|0 +agc|vdc_script_display.php|1 +***TRANSLATIONS*** +### special translations that should stay at the top of the file ### +"JAN"|"一月"| +"FEB"|"二月"| +"MAR"|"三月"| +"APR"|"四月"| +"MAY"|"五月"| +"JUN"|"六月"| +"JLY"|"七月"| +"AUG"|"八月"| +"SEP"|"九月"| +"OCT"|"十月"| +"NOV"|"十一月"| +"DEC"|"十二月"| +\./images/|../agc/images/| +BORDER|邊界| +VALUE=SUBMIT|VALUE=SUBMIT| +TYPE=SUBMIT|TYPE=Submit| +MAXLENGTH|maxlength| +### BEGIN translation phrases through 1.1.11 release ### +English|英文| +Spanish|西班牙文| +French|法文| +German|德文| +Italian|義大利文| +agc_check_voicemail_BLINK.gif|agc_check_voicemail_BLINK_tw.gif| +agc_check_voicemail_OFF.gif|agc_check_voicemail_OFF_tw.gif| +agc_check_voicemail_ON.gif|agc_check_voicemail_ON_tw.gif| +agc_live_call_OFF.gif|agc_live_call_OFF.gif| +agc_live_call_ON.gif|agc_live_call_ON.gif| +agc_tab_active_lines.gif|agc_tab_active_lines_tw.gif| +agc_tab_conferences.gif|agc_tab_conferences_tw.gif| +agc_tab_main.gif|agc_tab_main_tw.gif| +vdc_LB_dialnextnumber.gif|vdc_LB_dialnextnumber_tw.gif| +vdc_LB_dialnextnumber_OFF.gif|vdc_LB_dialnextnumber_OFF_tw.gif| +vdc_LB_grabparkedcall.gif|vdc_LB_grabparkedcall_tw.gif| +vdc_LB_hangupcustomer.gif|vdc_LB_hangupcustomer_tw.gif| +vdc_LB_hangupcustomer_OFF.gif|vdc_LB_hangupcustomer_OFF_tw.gif| +vdc_LB_parkcall.gif|vdc_LB_parkcall_tw.gif| +vdc_LB_parkcall_OFF.gif|vdc_LB_parkcall_OFF_tw.gif| +vdc_LB_pause.gif|vdc_LB_pause_tw.gif| +vdc_LB_pause_OFF.gif|vdc_LB_pause_OFF_tw.gif| +vdc_LB_resume.gif|vdc_LB_resume_tw.gif| +vdc_LB_resume_OFF.gif|vdc_LB_resume_OFF_tw.gif| +vdc_LB_startrecording.gif|vdc_LB_startrecording_tw.gif| +vdc_LB_stoprecording.gif|vdc_LB_stoprecording_tw.gif| +vdc_LB_transferconf.gif|vdc_LB_transferconf_tw.gif| +vdc_LB_transferconf_OFF.gif|vdc_LB_transferconf_OFF_tw.gif| +vdc_LB_webform.gif|vdc_LB_webform_tw.gif| +vdc_LB_webform_OFF.gif|vdc_LB_webform_OFF_tw.gif| +vdc_XB_blindtransfer.gif|vdc_XB_blindtransfer_tw.gif| +vdc_XB_blindtransfer_OFF.gif|vdc_XB_blindtransfer_OFF_tw.gif| +vdc_XB_dialwithcustomer.gif|vdc_XB_dialwithcustomer_tw.gif| +vdc_XB_dialwithcustomer_OFF.gif|vdc_XB_dialwithcustomer_OFF_tw.gif| +vdc_XB_hangupbothlines.gif|vdc_XB_hangupbothlines_tw.gif| +vdc_XB_hangupbothlines_OFF.gif|vdc_XB_hangupbothlines_OFF_tw.gif| +vdc_XB_hangupxferline.gif|vdc_XB_hangupxferline_tw.gif| +vdc_XB_hangupxferline_OFF.gif|vdc_XB_hangupxferline_OFF_tw.gif| +vdc_XB_internalcloser.gif|vdc_XB_internalcloser_tw.gif| +vdc_XB_internalcloser_OFF.gif|vdc_XB_internalcloser_OFF_tw.gif| +vdc_XB_leave3waycall.gif|vdc_XB_leave3waycall_tw.gif| +vdc_XB_leave3waycall_OFF.gif|vdc_XB_leave3waycall_OFF_tw.gif| +vdc_XB_localcloser.gif|vdc_XB_localcloser_tw.gif| +vdc_XB_localcloser_OFF.gif|vdc_XB_localcloser_OFF_tw.gif| +vdc_XB_parkcustomerdial.gif|vdc_XB_parkcustomerdial_tw.gif| +vdc_XB_parkcustomerdial_OFF.gif|vdc_XB_parkcustomerdial_OFF_tw.gif| +vdc_XB_hotkeysactive.gif|vdc_XB_hotkeysactive_tw.gif| +vdc_XB_hotkeysactive_OFF.gif|vdc_XB_hotkeysactive_OFF_tw.gif| +vdc_LB_senddtmf.gif|vdc_LB_senddtmf_tw.gif| +vdc_LB_senddtmf_OFF.gif|vdc_LB_senddtmf_OFF_tw.gif| +vdc_XB_header.gif|vdc_XB_header_tw.gif| +vdc_XB_number.gif|vdc_XB_number_tw.gif| +vdc_XB_channel.gif|vdc_XB_channel_tw.gif| +vdc_XB_seconds.gif|vdc_XB_seconds_tw.gif| +You have now logged out. Thank you|您已成功登出系統| +astGUIclient web-client VERSION|astGUIclient web-client版本| +astGUIclient web client|astGUIclient web client| +VICIDIAL web client|VICIDIAL web client| +VICIDIAL web-client version|VICIDIAL Web-Client版本| +You can only monitor Zap channels|您只能監控Zap channels| +Stop Record|停止錄音| +you are logged into this phone|您已登入此分機| +Back to Main Window|回主畫面| +LIVE CALLS ON THIS PHONE|通話號碼清單| +LIVE CALLS IN THIS CONFERENCE|多方通話中的參與號碼| +LIVE CALL TRANSFER|來電轉接| +CLIENT CHANNEL|進端通道| +REMOTE CHANNEL|遠端通道| +CLICK HERE TO LOG IN AGAIN|按此重新登入| +ACTIVE DISPLAY PAUSED|暫停啟用顯示| +Main Panel|主控台| +Active Lines Panel|現行線路控制台| +Conferences Panel|電話會議控制台| +Check Voicemail|檢視語音信箱| +Live Call|通話中電話| +Hangup Trunk|掛斷 Trunk| +Hijack Trunk|介入 Trunk| +Listen Trunk|監聽 Trunk| +Active Local Menu|啟用Local畫面| +Hangup Local|掛斷 Local| +Hijack Local|介入 Local| +Listen Local|監聽 Local| +Channel to be transferred|通話已被轉接| +Extensions Menu|分機表| +Send to selected extension|傳送給所選分機| +Send to selected vmail box|傳送給所選語音信箱| +Send to this number|傳送至該號碼| +click on a number below to send to a conference|點選號碼以送出會議邀請n| +Send my channel too|傳送我的CHANNEL| +Conferences Menu|電話會議功能| +LOCAL Extensions Dial|撥給LOCAL分機| +Phone calling from|電話來源| +Call selected extension|撥打所選分機| +Call selected vmail box|撥打所選語音信箱| +LOCAL DIAL EXTENSIONS|LOCAL撥打分機| +OUTBOUND CALLS|外撥電話| +INBOUND CALLS|進線電話| +Refresh rate|更新比例| +MANUAL DIAL|人工撥號| +CALL DATE\/TIME|通話日期\/時間| +LOCAL HANGUP|LOCAL 掛斷| +PARKED CALLS|PARKED CALLS| +PARKED BY|PARKED BY| +PARKED TIME|PARKED TIME| +Registered to|註冊至| +Enter Conference|進入電話會議| +Dial From Conf|由電話會議中撥號| +Active Extensions|使用中分機| +Outside Lines|外線| +Local Extensions|區域分機| +Data Goes Here|資料至此| +Trunk Action|Trunk 活動| +Local Action|Local 活動| +Conferences List|電話會議列表| +Click on a conference room number on the left for info on that conference|點選會議室左方可瀏覽相關資訊| +List Display|清單顯示| +Live Extensions|進線分機| +Busy Extensions|忙線分機| +Outside Lines|外線| +script runtime|運行腳本| +Call Log Display|通話記錄顯示| +is not valid|是無效的| +or protocol|或協定| +Conf Extension Check|確認會議中分機| +has been registered to|被註冊至| +LIVE INBOUND CALL|進線通話| +Number Dialed|已撥號碼| +SEND TO MY VOICEMAIL|傳送至我的語音信箱| +Live Extension Check|使用中分機確認| +Manager Send|管理者發送| +command not inserted|指令未插入| +command sent for|指令發送 | +One of these variables|其中一個變數| +must be greater than 2 characters|需大於兩個字元| +must be greater than 14 characters|需大於14個字元| +must be set|需被設定| +not sent|未送出| +Cannot find empty conference|找不到空會議| +is not live|非可用| +RECORDING WILL LAST UP TO 60 MINUTES|錄音長達60分鐘| +Parked Calls Display|顯示Parked Call| +Database Query Script|資料查詢語法| +Group Choice|群組選項| +has been registered to user|被註冊至使用者| +HOPPER EMPTY|HOPPER EMPTY| +LOG NOT ENTERED|LOG未輸入| +has been changed to|已被修改為| +information has been updated|資料已被更新| +is now in status|目前狀態為| +Voicemail Check|檢視語音信箱| +voicemail box|語音信箱| +Re-Login|重新登入| +User Password|使用者密碼| +User Login|使用者登入| +Phone Login|登入分機| +Phone Password|分機密碼| +Campaign not active, please try again|專案活動未啟用,請再試一次| +Login incorrect, please try again|登入失敗,請重試| +Campaign Login|專案活動登入| +Sorry, your phone login and password are not active in this system, please try again|抱歉,分機所輸入的帳號密碼於系統中尚未啟用,請再試一次| +leads left to call in hopper|leads left to call in hopper| +CAMPAIGN CUSTOM PARKING|專案活動 CUSTOM PARKING| +CAMPAIGN DEFAULT PARKING|專案活動 DEFAULT PARKING| +CAMPAIGN CUSTOM WEB FORM|專案活動 客制表格| +CAMPAIGN DEFAULT WEB FORM|專案活動 預設表格| +CAMPAIGN ALLOWS CLOSERS|專案活動 容許關閉| +CAMPAIGN ALLOWS NO CLOSERS|專案活動 不容許關閉| +USING PREVIOUS MEETME ROOM|使用先前的會議室| +USING NEW MEETME ROOM|使用新的會議室| +old QUEUE and INCALL reverted list|舊的佇列和INCALL回覆列表| +old QUEUE and INCALL reverted hopper|舊的佇列和INCALL回覆 Hopper| +old vicidial_live_agents records cleared|值機人員錄音檔清理完畢| +campaign is set to auto_dial_level|專案活動已設定為自動撥號| +new vicidial_live_agents record inserted|錄音檔已被新增| +campaign is set to manual dial|專案活動已設定為人工撥號| +Sorry, there are no leads in the hopper for this campaign|抱歉,本專案活動已無名單| +Dial Next Number|撥下一個號碼| +LIVE CALLS IN YOUR SESSION|您通話中的號碼| +Stop Recording|停止錄音| +Start Recording|啟動錄音| +Transfer number must have more than 1 digit|轉接號碼必須超過一個數字| +Grab Parked Call|接起 Parked Call| +Park Call|Park Call| +Waiting for Ring|進入閒置狀態| +Called 3rd party|撥給第三方| +LEAVE 3-WAY CALL|離開三方通話| +Dial With Customer|Dial With Customer| +Park Customer Dial|Park Customer Dial| +Hangup Xfer Line|掛斷轉接線| +Hangup Both Lines|全部掛斷| +Hangup Customer|掛斷客戶電話| +Transfer - Conference|轉接 - 電話會議| +LOCAL CLOSER|LOCAL CLOSER| +INTERNAL CLOSER|INTERNAL CLOSER| +Dial Blind Transfer|Dial Blind Transfer| +Dial timed out, contact your system administrator|撥號逾時,請與系統管理員聯繫| +No more leads in the hopper for campaign|本專案活動已無名單| +Web Form|表格| +You Must Select a Disposition|請選擇結束碼| +GROUPS NOT SELECTED|未選擇群組| +SELECTED GROUPS|已選群組| +You cannot log out during a Dial attempt|撥號過程中無法登出系統| +Wait 50 seconds for the dial to fail out if it is not answered|如超過50秒無回應,則屬於撥號失敗| +STILL A LIVE CALL! Hang it up then you can log out|電話仍在通話中,請先掛斷再登出系統| +Hide conference call channel information|隱藏電話會議中的來電通道資訊| +Show conference call channel information|顯示電話會議中的來電通道資訊| +Logged in as User|以使用者身份登入| +Noone is in your session|無人在你主持的會議中| +Customer has hung up|客戶已掛斷電話| +End-of-call Disposition Selection|結束碼選擇| +CLOSER INBOUND GROUP SELECTION|CLOSER INBOUND GROUP SELECTION| +Closer Inbound Group Selection|Closer Inbound Group Selection| +BLENDED CALLING|INBOUND/OUTBOUND BLENDING| +outbound activated|啟動外撥| +Preview the Lead then|預覽資料後| +Lead was not reverted, there was an error|錯誤!名單尚未恢復!| +call was not placed, there was an error|錯誤!電話未置入!| +Number to call|撥打號碼| +Customer Information|客戶資訊| +Lead Dispositioned As|設定結束碼為| +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|你必須先更改客戶資料,再掛斷電話。否則所做變更將不會生效!| +When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically|啟用時,只需點選結束碼對應之快捷鍵,系統即會自動下結束碼與掛斷電話| +Disposition Hot Keys|結束碼快捷鍵| +Cust Time|Cust Time| +RECORD ID|音檔編號| +RECORDING FILE|錄音檔| +HOT KEYS ACTIVE|啟用快捷鍵| +HOT KEYS INACTIVE|關閉快捷鍵| +DIAL OVERRIDE|重撥| +SKIP LEAD|SKIP LEAD| +DIAL LEAD|DIAL LEAD| +LEAD PREVIEW|LEAD PREVIEW| +PAUSE AGENT DIALING|暫停值機員撥號| +DISPOSITION CALL|通話結束| + session ID| Session ID| + to campaign| to campaign| +Select a CallBack Date|選擇回撥日期| + maximize | 最大 | + minimize | 最小 | +You must choose a date|您必須選擇日期| +Select a Date Below|選擇日期小於| +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|點選以下回撥紀錄進行客戶回撥,如果點選紀錄進行撥號,該筆紀錄將會從名單內移除| +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|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| +YOU CANNOT SKIP A CALLBACK OR MANUAL DIAL, YOU MUST DIAL THE LEAD|您不能跳過回撥或是人工撥號,您必須撥打該筆紀錄| +YOU MUST BE PAUSED TO MANUAL DIAL A NEW LEAD IN AUTO-DIAL MODE|在自動外撥模式下您必須暫停才可以人工外撥一個新的紀錄| +Enter information below for the new lead you wish to call|請輸入下面的資訊給您想要外撥的新紀錄| +YOU MUST BE PAUSED TO CHECK CALLBACKS IN AUTO-DIAL MODE|在自動外撥模式下您必須暫停才可以檢查回撥| +Note: all new manual dial leads will go into list 999|注意: 所有新的人工外撥紀錄將會進入名單 999| +YOU DO NOT HAVE PERMISSIONS TO TRANSFER CALLS|您沒有轉接電話的權限| +will be added to the beginning of this number|將會加在此號碼之前| +This is usually a 1 in the USA-Canada|This is usually a 1 in the USA-Canada| +NEW MANUAL DIAL LEAD FOR|新的人工撥號紀錄給| +Finish and Disposition Call|結束通話並註記結束碼| +10 digits max - digits only|最多10位數 - 僅支援數字| +Note: a dial prefix of|Note: a dial prefix of| +Hangup Again|再次掛斷| +Go Back|回上一頁| +Call Agent Again|再次呼叫值機員| +MY CALLBACK ONLY|只有個人回撥| +NO ACTIVE CALLBACKS|沒有生效的回撥電話| +ACTIVE CALLBACKS|生效的回撥電話| +CALLBACKS FOR AGENT|值機員的回撥電話| +Dial Code:|Dial Code:| +Dial Override|Dial Override| +digits only please|限數字碼輸入| +Dial Now|立即撥號| +CB Comments|CB Comments| +Title|職銜| +Your Status|您目前的狀態| + STATUS| 狀態| +RESET|重置| +CLEAR FORM|清除表單| +SUBMIT|確認送出| +Incoming|Incoming| +Calling|撥號中| +Called|已撥號| +Campaign|活動| +Status|狀態| +Inserted|已插入| + seconds|秒| +HELP|協助| +Login|登入| +User|使用者| +Password|密碼| +VERSION|版本| +BUILD|版次| +Server|主機| +RECORD|錄音| +HANGUP|掛斷| +>XFER|轉接| +PARK|駐留| +IN-NUMBER|IN-NUMMER| +NUMBER|號碼| +LENGTH|長度| +CALLERID|CALLERID| +CallerID|CallerID| + CALL| 撥號| +PICKUP|接起| +CONFERENCE|會議| +Refresh|更新| +Send DTMF|傳送 DTMF| +ORDER|次序| + on | on | +LOGOUT|登出| +Channel|渠道| +Extensions|分機| +Conferences|會議| +Conference|會議| +Recording|錄音| +Record|錄音| +Welcome|歡迎| +VOICEMAIL|語音信箱| + NEW| 新| + OLD| 舊| +STOP|停止| +START|開始| + Pause | 暫停 | +Resume|恢復| +Faster|較快速| +Slower|較慢速| +Initializing|起始中| +Invalid|無效| +Username|Username| +CUSTOM|CUSTOM| +Notes|注意| +First|名| +MI: |MI:| +Last|姓| +Address|地址| +City|市| +State|州| +PostCode|郵遞區號| +Province|省| +Vendor ID|Vendor ID| +DialCode|DialCode| +Alt. Phone|其他電話| +Show|展現| +Email|電郵| +Comments|備註| +REFRESH|更新| +ALT PHONE DIAL|撥打其他電話| +MAIN PHONE|主要電話| +ALT PHONE|其他電話| +ADDRESS3|地址3| +FINISH LEAD|結束紀錄| +Dial Alt Phone Number|撥打其他電話號碼| +Phone|電話| + DIAL| WÄHLEN| +SUBMIT FAVORITES CHANGES - requires logout|確認送出我的最愛變更 - 需要登出| +BACK TO MAIN WINDOW - ignore changes made|回到主視窗 - 忽略變更| +AVAILABLE EXTENSIONS|有空閒的分機| + edit| 編輯| + FAVORITES| 我的最愛| +### END translation phrases through 1.1.11 release ### +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|結束文書並繼續| +seconds remaining in wrapup|文書狀態尚餘秒數| +Call Wrapup:|電話文書:| +### months of the year for CallBack date select screen ### +January|一月| +Frebruary|二月| +March|三月| +April|四月| +May|五月| +June|六月| +July|七月| +August|八月| +September|九月| +October|十月| +November|十一月| +December|十二月| +### BEGIN translation phrases for 2.0.1 release ### +Previous Callback Information|過去的回撥資訊| +Last Call: |上一通電話:| +CallBack: |回撥電話:| +Agent: |值機員:| +Comments: |備註:| +### BEGIN translation phrases for 2.0.2 release ### +VOLUME|音量| +### BEGIN translation phrases for 2.0.3 release ### +FAST DIAL|快速撥號| +YOU MUST ENTER A PHONE NUMBER AND DIAL CODE TO USE FAST DIAL|您必須輸入電話號碼和 DIAL CODE 以使用快速撥號| + SELECT A PAUSE CODE :| 選擇暫停原因代碼 :| +ENTER A PAUSE CODE|輸入暫停原因代碼| +YOU MUST BE PAUSED TO ENTER A PAUSE CODE IN AUTO-DIAL MODE|在自動撥號模式下您必須入暫停原因代碼才能暫停| +Your session has been disabled|Your session has been disabled| +### BEGIN translation phrases for 2.0.4 release ### +PLEASE CLICK THE LOGOUT LINK TO LOG OUT NEXT TIME|下次登出時請點擊登出連結| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |性別: | +Date of Birth: |生日: | +YOU MUST BE PAUSED TO CHANGE GROUPS|您必須暫停才能變更群組| +Calls in Queue:|佇列中等待電話:| + Timeclock| Timeclock| +The user and password you entered are not active in the system|您所輸入的帳號和密碼並未在系統中被啟動| +Please try again|請重試| +You cannot log in or out within 30 seconds of your last login or logout|您不能在前次登出或登入後30秒內再次登出或登入| +You have now logged-out|您目前已登出| +You logged out at |您登出在| +Amount of time you were logged-in: |您登入的時間(多久時間): | +ERROR: timeclock log entry already made: |ERROR: timeclock log entry already made: | +BACK to Agent Login Screen|回到值機員登入畫面| +BACK to Administration|回到系統管理| +BACK to Welcome Screen|回到歡迎畫面| +Time since you were last logged-in: |自從您上次登入已經有(多久時間): | +You last logged-out at: |您上次登出在: | +Click LOGIN below to log-in|點選下方登入進行登入| +Amount of time you have been logged-in: |您已經登入的時間(多久時間): | +You logged-in at:|您登入在:| +Click LOGOUT below to log-out|點選下方登出進行登出| +Undefined|尚未定義| +This phone number is not in the campaign lists|此電話號碼不在活動名單中| +Unspecified error|Unspecified error| +Extended Alt Phone Information: |擴充的其他電話資訊: | +ALT DIAL NUMBER:|其他撥打號碼:| +Phone Code and Number:|Phone Code and Number:| +Notes: |注意: | +Active: |啟動: | +Alt Count: |Alt Count: | +Change this phone number to INACTIVE|變更此電話號碼為未啟動| +Change this phone number to ACTIVE|變更此電話號碼為啟動| +### BEGIN translation phrases for 2.0.5 release ### +Gender: |性別:| +Date of Birth: |生日:| +YOU MUST BE PAUSED TO CHANGE GROUPS|您必須暫停才能變更群組| +Calls in Queue:|佇列中等待電話:| + Timeclock| Timeclock| +The user and password you entered are not active in the system|您所輸入的帳號和密碼並未在系統中被啟動| +Please try again|請重試| +You cannot log in or out within 30 seconds of your last login or logout|您不能在前次登出或登入後30秒內再次登出或登入| +You have now logged-out|您目前已登出| +You logged out at |您登出在| +Amount of time you were logged-in: |您登入的時間(多久時間):| +ERROR: timeclock log entry already made: |ERROR: timeclock log entry already made: | +BACK to Agent Login Screen|回到值機員登入畫面| +BACK to Administration|回到系統管理| +BACK to Welcome Screen|回到歡迎畫面| +Time since you were last logged-in: |自從您上次登入已經有(多久時間):| +You last logged-out at: |您上次登出在:| +Click LOGIN below to log-in|點選下方登入進行登入| +Amount of time you have been logged-in: |您已經登入的時間(多久時間):| +You logged-in at:|您登入在:| +Click LOGOUT below to log-out|點選下方登出進行登出| +Undefined|尚未定義| +This phone number is not in the campaign lists|此電話號碼不在活動名單中| +Unspecified error|Unspecified error| +Extended Alt Phone Information: |擴充的其他電話資訊:| +ALT DIAL NUMBER:|其他撥打號碼:| +Phone Code and Number:|Phone Code and Number:| +Notes: |注意:| +Active: |啟動:| +Alt Count: |Alt Count:| +Change this phone number to INACTIVE|變更此電話號碼為未啟動| +Change this phone number to ACTIVE|變更此電話號碼為啟動| +YOU MUST LOG IN TO THE TIMECLOCK FIRST|您必須先登入TIMECLOCK| +There is a time synchronization problem with your system, please tell your system administrator|系統中有時間同步問題,請洽系統管理者| +Preview Call|預覽電話| +SELECT A GROUP ALIAS|選擇群組代名| +Group Alias Selection|群組代名選擇| +Click Here to Choose a Group Alias|點及此處選擇群組代名| +Group Alias|群組代名| +### START translations for 2.2.0 release ### +You are not allowed to dial into other agent sessions|你不能撥入其他代理商會議| +QUICK TRANSFER|快速傳遞| +Other Agents Status|其他代理狀態| +Available Agents Transfer|可用代理轉讓| +Show Calls In Queue|查看呼籲在隊列| +Calls In Queue|呼籲在隊列| +Hide Calls In Queue|隱藏呼籲在隊列| +Calls in Queue View Disabled for this campaign|呼籲隊列查看停用此活動| +YOU MUST BE PAUSED TO GRAB CALLS IN QUEUE|您必須暫停籲請搶占隊列| +Manager |經理| +has selected your in-group choices|您的選擇組的選擇| +CONSULTATIVE|協商| +Close Message|關閉消息| +TIMER NOTIFICATION|計時器通知| diff --git a/agc_2-X/branches/agc_2.2.0/version b/agc_2-X/branches/agc_2.2.0/version new file mode 100644 index 00000000..bdc2ab64 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/version @@ -0,0 +1 @@ +2.2.0rc1 diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/SCRIPT_busy_button.php b/agc_2-X/branches/agc_2.2.0/www/agc/SCRIPT_busy_button.php new file mode 100644 index 00000000..d9eba430 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/SCRIPT_busy_button.php @@ -0,0 +1,107 @@ + +# +# Copyright (C) 2009 Matt Florell LICENSE: AGPLv2 +# +########## DB SCHEMA +# CREATE TABLE qr_busy_button_log ( +# button_id INT(9) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, +# lead_id INT(9) UNSIGNED, +# event_time DATETIME, +# user VARCHAR(20), +# stage ENUM('DISPLAY','CLICK'), +# campaign_id VARCHAR(8), +# phone_number VARCHAR(18), +# vendor_lead_code VARCHAR(20), +# list_id BIGINT(14) UNSIGNED, +# click_seconds INT(5) UNSIGNED, +# index (lead_id) +# ); +# +# CHANGES: +# 90408-0618 - First Build +# 90508-0727 - Changed to PHP long tags +# + +if (isset($_GET["button_id"])) {$button_id=$_GET["button_id"];} + elseif (isset($_POST["button_id"])) {$button_id=$_POST["button_id"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} + +### security strip all non-alphanumeric characters out of the variables ### +$button_id=ereg_replace("[^0-9]","",$button_id); +$lead_id=ereg_replace("[^0-9]","",$lead_id); +$list_id=ereg_replace("[^0-9]","",$list_id); +$phone_number=ereg_replace("[^0-9]","",$phone_number); +$vendor_id = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vendor_id); +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$campaign = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign); +$stage = ereg_replace("[^-\_0-9a-zA-Z]","",$stage); +$epoch = ereg_replace("[^0-9]","",$epoch); + +require("dbconnect.php"); + +if (eregi("CLICK",$stage)) + { + $epochNOW = date("U"); + $click_seconds = ($epochNOW - $epoch); + if ( ($click_seconds < 0) or ($click_seconds > 3600) ) + {$click_seconds=0;} + + $stmt="UPDATE qr_busy_button_log SET stage='$stage',click_seconds='$click_seconds' where button_id='$button_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "Thank you for clicking the button\n"; + + exit; + } + +else + { + $CL=':'; + $script_name = getenv("SCRIPT_NAME"); + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} + else {$server_port = "$CL$server_port";} + $agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; + + $epoch = date("U"); + $SQLdate = date("Y-m-d H:i:s"); + + $stmt="INSERT INTO qr_busy_button_log SET lead_id='$lead_id',list_id='$list_id',phone_number='$phone_number',vendor_lead_code='$vendor_id',user='$user',campaign_id='$campaign',stage='DISPLAY',event_time='$SQLdate';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $button_id = mysql_insert_id($link); + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n\n"; + } + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/active_list_refresh.php b/agc_2-X/branches/agc_2.2.0/www/agc/active_list_refresh.php new file mode 100644 index 00000000..0dfc029c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/active_list_refresh.php @@ -0,0 +1,483 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to serve updates of the live data to the display scripts +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ADD - ('1','2','3','4','5') +# - $order - ('asc','desc') +# - $format - ('text','table','menu','selectlist','textarea') +# - $bgcolor - ('#123456','white','black','etc...') +# - $txtcolor - ('#654321','black','white','etc...') +# - $txtsize - ('1','2','3','etc...') +# - $selectsize - ('2','3','4','etc...') +# - $selectfontsize - ('8','10','12','etc...') +# - $selectedext - ('cc100') +# - $selectedtrunk - ('Zap/25-1') +# - $selectedlocal - ('SIP/cc100') +# - $textareaheight - ('8','10','12','etc...') +# - $textareawidth - ('8','10','12','etc...') +# - $field_name - ('extension','busyext','extension_xfer','etc...') +# +# +# changes +# 50323-1147 - First build of script +# 50401-1132 - small formatting changes +# 50502-1402 - added field_name as modifiable variable +# 50503-1213 - added session_name checking for extra security +# 50503-1311 - added conferences list +# 50610-1155 - Added NULL check on MySQL results to reduced errors +# 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 +# 60619-1118 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["bgcolor"])) {$bgcolor=$_GET["bgcolor"];} + elseif (isset($_POST["bgcolor"])) {$bgcolor=$_POST["bgcolor"];} +if (isset($_GET["txtcolor"])) {$txtcolor=$_GET["txtcolor"];} + elseif (isset($_POST["txtcolor"])) {$txtcolor=$_POST["txtcolor"];} +if (isset($_GET["txtsize"])) {$txtsize=$_GET["txtsize"];} + elseif (isset($_POST["txtsize"])) {$txtsize=$_POST["txtsize"];} +if (isset($_GET["selectsize"])) {$selectsize=$_GET["selectsize"];} + elseif (isset($_POST["selectsize"])) {$selectsize=$_POST["selectsize"];} +if (isset($_GET["selectfontsize"])) {$selectfontsize=$_GET["selectfontsize"];} + elseif (isset($_POST["selectfontsize"])) {$selectfontsize=$_POST["selectfontsize"];} +if (isset($_GET["selectedext"])) {$selectedext=$_GET["selectedext"];} + elseif (isset($_POST["selectedext"])) {$selectedext=$_POST["selectedext"];} +if (isset($_GET["selectedtrunk"])) {$selectedtrunk=$_GET["selectedtrunk"];} + elseif (isset($_POST["selectedtrunk"])) {$selectedtrunk=$_POST["selectedtrunk"];} +if (isset($_GET["selectedlocal"])) {$selectedlocal=$_GET["selectedlocal"];} + elseif (isset($_POST["selectedlocal"])) {$selectedlocal=$_POST["selectedlocal"];} +if (isset($_GET["textareaheight"])) {$textareaheight=$_GET["textareaheight"];} + elseif (isset($_POST["textareaheight"])) {$textareaheight=$_POST["textareaheight"];} +if (isset($_GET["textareawidth"])) {$textareawidth=$_GET["textareawidth"];} + elseif (isset($_POST["textareawidth"])) {$textareawidth=$_POST["textareawidth"];} +if (isset($_GET["field_name"])) {$field_name=$_GET["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 +if (!isset($ADD)) {$ADD="1";} +if (!isset($order)) {$order='desc';} +if (!isset($format)) {$format="text";} +if (!isset($bgcolor)) {$bgcolor='white';} +if (!isset($txtcolor)) {$txtcolor='black';} +if (!isset($txtsize)) {$txtsize='2';} +if (!isset($selectsize)) {$selectsize='4';} +if (!isset($selectfontsize)) {$selectfontsize='10';} +if (!isset($textareaheight)) {$textareaheight='10';} +if (!isset($textareawidth)) {$textareawidth='20';} + +$version = '0.0.8'; +$build = '60619-1118'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='table') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "List Display: "; +if ($ADD==1) {echo "Live Extensions";} +if ($ADD==2) {echo "Busy Extensions";} +if ($ADD==3) {echo "Outside Lines";} +if ($ADD==4) {echo "Local Extensions";} +if ($ADD==5) {echo "Conferences";} +if ($ADD==99999) {echo "HELP";} +echo "\n"; +echo "\n"; +echo "\n"; +} + + + + + +###################### +# ADD=1 display all live extensions on a server +###################### +if ($ADD==1) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'extension';} + if ($format=='table') {echo "\n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + +###################### +# ADD=2 display all busy extensions on a server +###################### +if ($ADD==2) +{ + if (!$field_name) {$field_name = 'busyext';} + if ($format=='table') {echo "
    \n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=3 display all busy outside lines(trunks) on a server +###################### +if ($ADD==3) +{ + if (!$field_name) {$field_name = 'trunk';} + if ($format=='table') {echo "
    \n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=4 display all busy Local lines on a server +###################### +if ($ADD==4) +{ + if (!$field_name) {$field_name = 'local';} + if ($format=='table') {echo "
    \n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + +###################### +# ADD=5 display all agc-usable conferences on a server +###################### +if ($ADD==5) +{ + $pt='pt'; + if (!$field_name) {$field_name = 'conferences';} + if ($format=='table') {echo "
    \n";} + if ($format=='menu') {echo "\n"; + } + if ($format=='textarea') + { + echo "\n";} +} + + + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='table') {echo "\n";} +if ($format=='table') {echo "\n\n\n";} + +exit; + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/api.php b/agc_2-X/branches/agc_2.2.0/www/agc/api.php new file mode 100644 index 00000000..be13e2d9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/api.php @@ -0,0 +1,1525 @@ + LICENSE: AGPLv2 +# +# This script is designed as an API(Application Programming Interface) to allow +# other programs to interact with the VICIDIAL Agent screen +# +# required variables: +# - $user +# - $pass +# - $agent_user +# - $function - ('external_hangup','external_status','external_pause','external_dial','change_ingroups') +# - $value +# - $vendor_id +# - $focus +# - $preview +# - $notes +# - $phone_code +# - $search +# - $group_alias +# - $dial_prefix +# - $source - ('vtiger','webform','adminweb') +# - $format - ('text','debug') +# - $vtiger_callback - ('YES','NO') +# - $blended - ('YES','NO') +# - $ingroup_choices - (' TEST_IN SALESLINE -') +# - $set_as_default - ('YES','NO') +# - $alt_user + +# CHANGELOG: +# 80703-2225 - First build of script +# 90116-1229 - Added external_pause and external_dial functions +# 90118-1051 - Added logging of API functions +# 90128-0229 - Added vendor_id to dial function +# 90303-0723 - Added group alias and dial prefix +# 90407-1920 - Added vtiger_callback option for external_dial function +# 90508-0727 - Changed to PHP long tags +# 90522-0506 - Security fix +# 91130-1307 - Added change_ingroups(Manager InGroup change feature) +# 91211-1805 - Added st_login_log and st_get_agent_active_lead functions, added alt_user +# 91228-1059 - Added update_fields function +# + +$version = '2.2.0-11'; +$build = '91228-1059'; + +require("dbconnect.php"); + +$query_string = getenv("QUERY_STRING"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["function"])) {$function=$_GET["function"];} + elseif (isset($_POST["function"])) {$function=$_POST["function"];} +if (isset($_GET["value"])) {$value=$_GET["value"];} + elseif (isset($_POST["value"])) {$value=$_POST["value"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["focus"])) {$focus=$_GET["focus"];} + elseif (isset($_POST["focus"])) {$focus=$_POST["focus"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["notes"])) {$notes=$_GET["notes"];} + elseif (isset($_POST["notes"])) {$notes=$_POST["notes"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["search"])) {$search=$_GET["search"];} + elseif (isset($_POST["search"])) {$search=$_POST["search"];} +if (isset($_GET["group_alias"])) {$group_alias=$_GET["group_alias"];} + elseif (isset($_POST["group_alias"])) {$group_alias=$_POST["group_alias"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["source"])) {$source=$_GET["source"];} + elseif (isset($_POST["source"])) {$source=$_POST["source"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vtiger_callback"])) {$vtiger_callback=$_GET["vtiger_callback"];} + elseif (isset($_POST["vtiger_callback"])) {$vtiger_callback=$_POST["vtiger_callback"];} +if (isset($_GET["blended"])) {$blended=$_GET["blended"];} + elseif (isset($_POST["blended"])) {$blended=$_POST["blended"];} +if (isset($_GET["ingroup_choices"])) {$ingroup_choices=$_GET["ingroup_choices"];} + elseif (isset($_POST["ingroup_choices"])) {$ingroup_choices=$_POST["ingroup_choices"];} +if (isset($_GET["set_as_default"])) {$set_as_default=$_GET["set_as_default"];} + elseif (isset($_POST["set_as_default"])) {$set_as_default=$_POST["set_as_default"];} +if (isset($_GET["alt_user"])) {$alt_user=$_GET["alt_user"];} + elseif (isset($_POST["alt_user"])) {$alt_user=$_POST["alt_user"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$ingroup_choices = ereg_replace("\+"," ",$ingroup_choices); +$query_string = ereg_replace("'|\"|\\\\|;","",$query_string); + +if ($non_latin < 1) + { + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $agent_user=ereg_replace("[^0-9a-zA-Z]","",$agent_user); + $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); + $value = ereg_replace("[^-\_0-9a-zA-Z]","",$value); + $vendor_id = ereg_replace("[^-\_0-9a-zA-Z]","",$vendor_id); + $focus = ereg_replace("[^-\_0-9a-zA-Z]","",$focus); + $preview = ereg_replace("[^-\_0-9a-zA-Z]","",$preview); + $notes = ereg_replace("\+"," ",$notes); + $notes = ereg_replace("[^ -\.\_0-9a-zA-Z]","",$notes); + $phone_code = ereg_replace("[^0-9X]","",$phone_code); + $search = ereg_replace("[^-\_0-9a-zA-Z]","",$search); + $group_alias = ereg_replace("[^0-9a-zA-Z]","",$group_alias); + $dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$dial_prefix); + $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $format = ereg_replace("[^0-9a-zA-Z]","",$format); + $vtiger_callback = ereg_replace("[^A-Z]","",$vtiger_callback); + $blended = ereg_replace("[^A-Z]","",$blended); + $ingroup_choices = ereg_replace("[^ -\_0-9a-zA-Z]","",$ingroup_choices); + $set_as_default = ereg_replace("[^A-Z]","",$set_as_default); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $address1 = ereg_replace("[^ -\_0-9a-zA-Z]","",$address1); + $address2 = ereg_replace("[^ -\_0-9a-zA-Z]","",$address2); + $address3 = ereg_replace("[^ -\_0-9a-zA-Z]","",$address3); + $alt_phone = ereg_replace("[^ -\_0-9a-zA-Z]","",$alt_phone); + $city = ereg_replace("[^ -\_0-9a-zA-Z]","",$city); + $comments = ereg_replace("[^ -\_0-9a-zA-Z]","",$comments); + $country_code = ereg_replace("[^A-Z]","",$country_code); + $date_of_birth = ereg_replace("[^ -\_0-9]","",$date_of_birth); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $first_name = ereg_replace("[^ -\_0-9a-zA-Z]","",$first_name); + $gender = ereg_replace("[^A-Z]","",$gender); + $gmt_offset_now = ereg_replace("[^ \.-\_0-9]","",$gmt_offset_now); + $last_name = ereg_replace("[^ -\_0-9a-zA-Z]","",$last_name); + $lead_id = ereg_replace("[^0-9]","",$lead_id); + $middle_initial = ereg_replace("[^ -\_0-9a-zA-Z]","",$middle_initial); + $province = ereg_replace("[^ -\.\_0-9a-zA-Z]","",$province); + $security_phrase = ereg_replace("[^ -\.\_0-9a-zA-Z]","",$security_phrase); + $source_id = ereg_replace("[^ -\.\_0-9a-zA-Z]","",$source_id); + $state = ereg_replace("[^ -\_0-9a-zA-Z]","",$state); + $title = ereg_replace("[^ -\_0-9a-zA-Z]","",$title); + $vendor_lead_code = ereg_replace("[^ -\.\_0-9a-zA-Z]","",$vendor_lead_code); + $rank = ereg_replace("[^-0-9]","",$rank); + $owner = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$owner); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); + $agent_user = ereg_replace("'|\"|\\\\|;","",$agent_user); + $alt_user = ereg_replace("'|\"|\\\\|;","",$alt_user); + } + +### date and fixed variables +$epoch = date("U"); +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$api_script = 'agent'; +$api_logging = 1; + + +################################################################################ +### BEGIN - version - show version and date information for the API +################################################################################ +if ($function == 'version') + { + $data = "VERSION: $version|BUILD: $build|DATE: $NOW_TIME|EPOCH: $StarTtime"; + $result = 'SUCCESS'; + echo "$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } +################################################################################ +### END - version +################################################################################ + + + + + +################################################################################ +### BEGIN - user validation section +################################################################################ + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access = '1';"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + $result = 'ERROR'; + $result_reason = "Invalid Username/Password"; + echo "$result: $result_reason: |$user|$pass|$auth|\n"; + $data = "$user|$pass|$auth"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from system_settings where vdc_agent_api_active='1';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + $result = 'ERROR'; + $result_reason = "System API NOT ACTIVE"; + echo "$result: $result_reason\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "";} + $rslt=mysql_query($stmt, $link); + $result = 'SUCCESS'; + $result_reason = "external_hangup function set"; + echo "$result: $result_reason - $value|$agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not logged in"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - external_hangup +################################################################################ + + + + + +################################################################################ +### BEGIN - external_status - set the dispo code or status for a call and move on +################################################################################ +if ($function == 'external_status') + { + if ( (strlen($value)<1) or ( (strlen($agent_user)<1) and (strlen($alt_user)<2) ) ) + { + $result = 'ERROR'; + $result_reason = "external_status not valid"; + echo "$result: $result_reason - $value|$agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if (strlen($alt_user)>1) + { + $stmt = "select count(*) from vicidial_users where custom_three='$alt_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select user from vicidial_users where custom_three='$alt_user' order by user;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_user = $row[0]; + } + else + { + $result = 'ERROR'; + $result_reason = "no user found"; + echo "$result: $result_reason - $alt_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + $stmt = "select count(*) from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_live_agents set external_status='$value' where user='$agent_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $result = 'SUCCESS'; + $result_reason = "external_status function set"; + echo "$result: $result_reason - $value|$agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not logged in"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - external_status +################################################################################ + + + + + +################################################################################ +### BEGIN - external_pause - pause or resume the agent +################################################################################ +if ($function == 'external_pause') + { + if ( (strlen($value)<1) or ( (strlen($agent_user)<1) and (strlen($alt_user)<1) ) or (!ereg("PAUSE|RESUME",$value)) ) + { + $result = 'ERROR'; + $result_reason = "external_pause not valid"; + echo "$result: $result_reason - $value|$agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if (strlen($alt_user)>1) + { + $stmt = "select count(*) from vicidial_users where custom_three='$alt_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select user from vicidial_users where custom_three='$alt_user' order by user;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_user = $row[0]; + } + else + { + $result = 'ERROR'; + $result_reason = "no user found"; + echo "$result: $result_reason - $alt_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + $stmt = "select count(*) from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + if (ereg("RESUME",$value)) + { + $stmt = "select count(*) from vicidial_live_agents where user='$agent_user' and status IN('READY','QUEUE','INCALL','CLOSER');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $result = 'ERROR'; + $result_reason = "external_pause agent is not paused"; + echo "$result: $result_reason - $value|$agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + $stmt="UPDATE vicidial_live_agents set external_pause='$value!$epoch' where user='$agent_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $result = 'SUCCESS'; + $result_reason = "external_pause function set"; + echo "$result: $result_reason - $value|$epoch|$agent_user\n"; + $data = "$epoch"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not logged in"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - external_pause +################################################################################ + + + + + +################################################################################ +### BEGIN - external_dial - place a manual dial phone call +################################################################################ +if ($function == 'external_dial') + { + $value = ereg_replace("[^0-9]","",$value); + + if ( (strlen($value)<2) or ( (strlen($agent_user)<2) and (strlen($alt_user)<2) ) or (strlen($search)<2) or (strlen($preview)<2) or (strlen($focus)<2) ) + { + $result = 'ERROR'; + $result_reason = "external_dial not valid"; + $data = "$phone_code|$search|$preview|$focus"; + echo "$result: $result_reason - $value|$data|$agent_user|$alt_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if (strlen($alt_user)>1) + { + $stmt = "select count(*) from vicidial_users where custom_three='$alt_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select user from vicidial_users where custom_three='$alt_user' order by user;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_user = $row[0]; + } + else + { + $result = 'ERROR'; + $result_reason = "no user found"; + echo "$result: $result_reason - $alt_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + $stmt = "select count(*) from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select count(*) from vicidial_live_agents where user='$agent_user' and status='PAUSED' and lead_id < 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select count(*) from vicidial_users where user='$agent_user' and agentcall_manual='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + if (strlen($group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_id_number = $row[0]; + if ($caller_id_number < 4) + { + $result = 'ERROR'; + $result_reason = "caller_id_number from group_alias is not valid"; + $data = "$group_alias|$caller_id_number"; + echo "$result: $result_reason - $agent_user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + else + { + $result = 'ERROR'; + $result_reason = "group_alias is not valid"; + $data = "$group_alias"; + echo "$result: $result_reason - $agent_user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + + ####### Begin Vtiger CallBack Launching ####### + $vtiger_callback_id=''; + if ( (eregi("YES",$vtiger_callback)) and (preg_match("/^99/",$value)) ) + { + $value = preg_replace("/^99/",'',$value); + $value = ($value + 0); + + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT campaign_id FROM vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $vtc_camp_ct = mysql_num_rows($rslt); + if ($vtc_camp_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + } + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$value';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $stmt="SELECT crmid from vtiger_seactivityrel where activityid='$value';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $vt_actsel_ct = mysql_num_rows($rslt); + if ($vt_actsel_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + if (strlen($vendor_id) > 0) + { + $stmt="SELECT phone from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $vt_acct_ct = mysql_num_rows($rslt); + if ($vt_acct_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_callback_id="$value"; + $value = $row[0]; + } + } + } + else + { + $result = 'ERROR'; + $result_reason = "vtiger callback activity does not exist in vtiger system"; + echo "$result: $result_reason - $value\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + } + ####### End Vtiger CallBack Launching ####### + + ### If no errors, run the update to place the call ### + $stmt="UPDATE vicidial_live_agents set external_dial='$value!$phone_code!$search!$preview!$focus!$vendor_id!$epoch!$dial_prefix!$group_alias!$caller_id_number!$vtiger_callback_id' where user='$agent_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $result = 'SUCCESS'; + $result_reason = "external_dial function set"; + $data = "$phone_code|$search|$preview|$focus|$vendor_id|$epoch|$dial_prefix|$group_alias|$caller_id_number"; + echo "$result: $result_reason - $value|$agent_user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not allowed to place manual dial calls"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not paused"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not logged in"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - external_dial +################################################################################ + + + + + +################################################################################ +### BEGIN - change_ingroups - change selected in-groups for logged-in agent +################################################################################ +if ($function == 'change_ingroups') + { + $value = ereg_replace("[^A-Z]","",$value); + + if ( (strlen($blended)<2) or (strlen($agent_user)<2) or (strlen($value)<3) ) + { + $result = 'ERROR'; + $result_reason = "change_ingroups not valid"; + $data = "$value|$blended|$ingroup_choices"; + echo "$result: $result_reason - $data|$agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt = "select count(*) from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select count(*) from vicidial_live_agents vla, vicidial_campaigns vc where user='$agent_user' and campaign_allow_inbound='Y' and vla.campaign_id=vc.campaign_id;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select count(*) from vicidial_users where user='$user' and change_agent_campaign='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + if ($blended == 'YES') + { + $stmt = "select count(*) from vicidial_live_agents vla, vicidial_campaigns vc where user='$agent_user' and dial_method IN('MANUAL','INBOUND_MAN') and vla.campaign_id=vc.campaign_id;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $result = 'ERROR'; + $result_reason = "campaign dial_method does not allow outbound autodial"; + $data = "$blended"; + echo "$result: $result_reason - $agent_user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (strlen($ingroup_choices)>0) + { + $in_groups_pre = preg_replace('/-$/','',$ingroup_choices); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT count(*) FROM vicidial_inbound_groups where group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $result = 'ERROR'; + $result_reason = "ingroup does not exist"; + $data = "$in_groups[$k]|$ingroup_choices"; + echo "$result: $result_reason - $agent_user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + $k++; + } + } + if ( (strlen($ingroup_choices) < 1) and ( ($value == 'ADD') or ($value == 'REMOVE') ) ) + { + $result = 'ERROR'; + $result_reason = "ingroup_choices are required for ADD and REMOVE values"; + $data = "$value|$ingroup_choices"; + echo "$result: $result_reason - $agent_user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + + if ($value == 'ADD') + { + $stmt = "select closer_campaigns from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$ingroup_choices); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + $duplicate_group=0; + if (strlen($in_groups[$k])>1) + { + $m=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + if ($closer_groups[$m] == $in_groups[$k]) + {$duplicate_group++;} + } + $m++; + } + if ($duplicate_group < 1) + { + $closer_groups[$closer_groups_ct] = $in_groups[$k]; + $closer_groups_ct++; + } + } + $k++; + } + + $m=0; + $NEWcloser_groups=' '; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $NEWcloser_groups .= "$closer_groups[$m] "; + } + $m++; + } + $NEWcloser_groups .= '-'; + $ingroup_choices = $NEWcloser_groups; + } + + if ($value == 'REMOVE') + { + $stmt = "select closer_campaigns from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_groups_list = $row[0]; + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$ingroup_choices); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + $duplicate_group=0; + if (strlen($in_groups[$k])>1) + { + $m=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + if ($closer_groups[$m] == $in_groups[$k]) + {$duplicate_group++;} + } + $m++; + } + if ($duplicate_group > 0) + { + $closer_groups_list = preg_replace("/ $in_groups[$k] /",' ',$closer_groups_list); + } + } + $k++; + } + + $ingroup_choices = $closer_groups_list; + } + + ### If no errors, run the update to change selected ingroups ### + $external_blended=0; + if ($blended == 'YES') + {$external_blended=1;} + + $stmt="UPDATE vicidial_live_agents set external_ingroups='$ingroup_choices',external_blended='$external_blended',external_igb_set_user='$user',manager_ingroup_set='SET' where user='$agent_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + $default_data = ""; + if ($set_as_default == 'YES') + { + $stmt="UPDATE vicidial_users set closer_campaigns='$ingroup_choices',closer_default_blended='$external_blended' where user='$agent_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $default_data = "User settings set as default"; + } + + $result = 'SUCCESS'; + $result_reason = "change_ingroups function set"; + $data = "$ingroup_choices|$blended|$default_data"; + echo "$result: $result_reason - $user|$agent_user|$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'ERROR'; + $result_reason = "user is not allowed to change agent in-groups"; + echo "$result: $result_reason - $user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + else + { + $result = 'ERROR'; + $result_reason = "campaign does not allow inbound calls"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not logged in"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - change_ingroups +################################################################################ + + + + + +################################################################################ +### BEGIN - update_fields +################################################################################ +if ($function == 'update_fields') + { + if (strlen($agent_user)<1) + { + $result = 'ERROR'; + $result_reason = "st_login_log not valid"; + $data = "$agent_user"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt = "select count(*) from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select count(*) from vicidial_users where user='$user' and modify_leads='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select lead_id from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + if ($lead_id > 0) + { + $fieldsSQL=''; + $fieldsLISTS=''; + $field_set=0; + if (ereg('phone_code',$query_string)) + { + if ($DB) {echo "phone_code set to $phone_code\n";} + $fieldsSQL .= "phone_code='$phone_code',"; + $fieldsLIST .= "phone_code,"; + $field_set++; + } + if (ereg('address1',$query_string)) + { + if ($DB) {echo "address1 set to $address1\n";} + $fieldsSQL .= "address1='$address1',"; + $fieldsLIST .= "address1,"; + $field_set++; + } + if (ereg('address2',$query_string)) + { + if ($DB) {echo "address2 set to $address2\n";} + $fieldsSQL .= "address2='$address2',"; + $fieldsLIST .= "address2,"; + $field_set++; + } + if (ereg('address3',$query_string)) + { + if ($DB) {echo "address3 set to $address3\n";} + $fieldsSQL .= "address3='$address3',"; + $fieldsLIST .= "address3,"; + $field_set++; + } + if (ereg('alt_phone',$query_string)) + { + if ($DB) {echo "alt_phone set to $alt_phone\n";} + $fieldsSQL .= "alt_phone='$alt_phone',"; + $fieldsLIST .= "alt_phone,"; + $field_set++; + } + if (ereg('city',$query_string)) + { + if ($DB) {echo "city set to $city\n";} + $fieldsSQL .= "city='$city',"; + $fieldsLIST .= "city,"; + $field_set++; + } + if (ereg('comments',$query_string)) + { + if ($DB) {echo "comments set to $comments\n";} + $fieldsSQL .= "comments='$comments',"; + $fieldsLIST .= "comments,"; + $field_set++; + } + if (ereg('country_code',$query_string)) + { + if ($DB) {echo "country_code set to $country_code\n";} + $fieldsSQL .= "country_code='$country_code',"; + $fieldsLIST .= "country_code,"; + $field_set++; + } + if (ereg('date_of_birth',$query_string)) + { + if ($DB) {echo "date_of_birth set to $date_of_birth\n";} + $fieldsSQL .= "date_of_birth='$date_of_birth',"; + $fieldsLIST .= "date_of_birth,"; + $field_set++; + } + if (ereg('email',$query_string)) + { + if ($DB) {echo "email set to $email\n";} + $fieldsSQL .= "email='$email',"; + $fieldsLIST .= "email,"; + $field_set++; + } + if (ereg('first_name',$query_string)) + { + if ($DB) {echo "first_name set to $first_name\n";} + $fieldsSQL .= "first_name='$first_name',"; + $fieldsLIST .= "first_name,"; + $field_set++; + } + if (ereg('gender',$query_string)) + { + if ($DB) {echo "gender set to $gender\n";} + $fieldsSQL .= "gender='$gender',"; + $fieldsLIST .= "gender,"; + $field_set++; + } + if (ereg('gmt_offset_now',$query_string)) + { + if ($DB) {echo "gmt_offset_now set to $gmt_offset_now\n";} + $fieldsSQL .= "gmt_offset_now='$gmt_offset_now',"; + $fieldsLIST .= "gmt_offset_now,"; + $field_set++; + } + if (ereg('last_name',$query_string)) + { + if ($DB) {echo "last_name set to $last_name\n";} + $fieldsSQL .= "last_name='$last_name',"; + $fieldsLIST .= "last_name,"; + $field_set++; + } + if (ereg('middle_initial',$query_string)) + { + if ($DB) {echo "middle_initial set to $middle_initial\n";} + $fieldsSQL .= "middle_initial='$middle_initial',"; + $fieldsLIST .= "middle_initial,"; + $field_set++; + } + if (ereg('phone_number',$query_string)) + { + if ($DB) {echo "phone_number set to $phone_number\n";} + $fieldsSQL .= "phone_number='$phone_number',"; + $fieldsLIST .= "phone_number,"; + $field_set++; + } + if (ereg('postal_code',$query_string)) + { + if ($DB) {echo "postal_code set to $postal_code\n";} + $fieldsSQL .= "postal_code='$postal_code',"; + $fieldsLIST .= "postal_code,"; + $field_set++; + } + if (ereg('province',$query_string)) + { + if ($DB) {echo "province set to $province\n";} + $fieldsSQL .= "province='$province',"; + $fieldsLIST .= "province,"; + $field_set++; + } + if (ereg('security_phrase',$query_string)) + { + if ($DB) {echo "security_phrase set to $security_phrase\n";} + $fieldsSQL .= "security_phrase='$security_phrase',"; + $fieldsLIST .= "security_phrase,"; + $field_set++; + } + if (ereg('source_id',$query_string)) + { + if ($DB) {echo "source_id set to $source_id\n";} + $fieldsSQL .= "source_id='$source_id',"; + $fieldsLIST .= "source_id,"; + $field_set++; + } + if (ereg('state',$query_string)) + { + if ($DB) {echo "state set to $state\n";} + $fieldsSQL .= "state='$state',"; + $fieldsLIST .= "state,"; + $field_set++; + } + if (ereg('title',$query_string)) + { + if ($DB) {echo "title set to $title\n";} + $fieldsSQL .= "title='$title',"; + $fieldsLIST .= "title,"; + $field_set++; + } + if (ereg('vendor_lead_code',$query_string)) + { + if ($DB) {echo "vendor_lead_code set to $vendor_lead_code\n";} + $fieldsSQL .= "vendor_lead_code='$vendor_lead_code',"; + $fieldsLIST .= "vendor_lead_code,"; + $field_set++; + } + if (ereg('rank',$query_string)) + { + if ($DB) {echo "rank set to $rank\n";} + $fieldsSQL .= "rank='$rank',"; + $fieldsLIST .= "rank,"; + $field_set++; + } + if (ereg('owner',$query_string)) + { + if ($DB) {echo "owner set to $owner\n";} + $fieldsSQL .= "owner='$owner',"; + $fieldsLIST .= "owner,"; + $field_set++; + } + if ($field_set > 0) + { + $fieldsSQL = preg_replace("/,$/","",$fieldsSQL); + $fieldsLIST = preg_replace("/,$/","",$fieldsLIST); + + $stmt="UPDATE vicidial_list set $fieldsSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_live_agents set external_update_fields='1',external_update_fields_data='$fieldsLIST' where user='$agent_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'SUCCESS'; + $result_reason = "update_fields lead updated"; + $data = "$user|$agent_user|$lead_id|$fieldsSQL"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'ERROR'; + $result_reason = "no fields have been defined"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user does not have a lead on their screen"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + else + { + $result = 'ERROR'; + $result_reason = "user is not allowed to modify lead information"; + echo "$result: $result_reason - $agent_user|$user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not logged in"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - update_fields +################################################################################ + + + + + +################################################################################ +### BEGIN - set_timer_action +################################################################################ +if ($function == 'set_timer_action') + { + if ( (strlen($agent_user)<1) or (strlen($value)<2) ) + { + $result = 'ERROR'; + $result_reason = "set_timer_action not valid"; + $data = "$agent_user|$value"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt = "select count(*) from vicidial_live_agents where user='$agent_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select count(*) from vicidial_users where user='$user' and modify_campaigns='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_live_agents set external_timer_action='$value',external_timer_action_message='$notes',external_timer_action_seconds='$rank' where user='$agent_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'SUCCESS'; + $result_reason = "set_timer_action lead updated"; + $data = "$user|$agent_user|$value|$notes|$rank"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'ERROR'; + $result_reason = "user is not allowed to modify campaign settings"; + echo "$result: $result_reason - $agent_user|$user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + else + { + $result = 'ERROR'; + $result_reason = "agent_user is not logged in"; + echo "$result: $result_reason - $agent_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - set_timer_action +################################################################################ + + + + + +################################################################################ +### BEGIN - st_login_log - looks up vicidial_users.custom_three from a CRM +################################################################################ +if ($function == 'st_login_log') + { + if ( (strlen($value)<1) or (strlen($vendor_id)<1) ) + { + $result = 'ERROR'; + $result_reason = "st_login_log not valid"; + $data = "$value|$vendor_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt = "select count(*) from vicidial_users where custom_three='$value';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select user from vicidial_users where custom_three='$value' order by user;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $stmt="UPDATE vicidial_users set custom_four='$vendor_id' where user='$row[0]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + $result = 'SUCCESS'; + $result_reason = "st_login_log user found"; + $data = "$row[0]"; + echo "$result: $result_reason - $row[0]\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + } + else + { + $result = 'ERROR'; + $result_reason = "no user found"; + echo "$result: $result_reason - $value\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - st_login_log +################################################################################ + + + + +################################################################################ +### BEGIN - st_get_agent_active_lead - looks up vicidial_users.custom_three and output active lead info +################################################################################ +if ($function == 'st_get_agent_active_lead') + { + if ( (strlen($value)<1) or (strlen($vendor_id)<1) ) + { + $result = 'ERROR'; + $result_reason = "st_get_agent_active_lead not valid"; + $data = "$value|$vendor_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt = "select count(*) from vicidial_users where custom_three='$value';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select user from vicidial_users where custom_three='$value' order by user;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VC_user = $row[0]; + + $stmt = "select count(*) from vicidial_live_agents where user='$VC_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "select lead_id from vicidial_live_agents where user='$VC_user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + + if ($lead_id > 0) + { + $stmt = "select phone_number,vendor_lead_code,province,security_phrase,source_id from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_number = $row[0]; + $vendor_lead_code = $row[1]; + $province = $row[2]; + $security_phrase = $row[3]; + $source_id = $row[4]; + + $result = 'SUCCESS'; + $result_reason = "st_get_agent_active_lead lead found"; + $data = "$VC_user|$phone_number|$lead_id|$vendor_lead_code|$province|$security_phrase|$source_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'ERROR'; + $result_reason = "no active lead found"; + echo "$result: $result_reason - $VC_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + else + { + $result = 'ERROR'; + $result_reason = "user not logged in"; + echo "$result: $result_reason - $VC_user\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + else + { + $result = 'ERROR'; + $result_reason = "no user found"; + echo "$result: $result_reason - $value\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } +################################################################################ +### END - st_get_agent_active_lead +################################################################################ + + + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + + +##### FUNCTIONS ##### + +##### Logging ##### +function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) + { + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/astguiclient.php b/agc_2-X/branches/agc_2.2.0/www/agc/astguiclient.php new file mode 100644 index 00000000..7424e159 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/astguiclient.php @@ -0,0 +1,2907 @@ + LICENSE: AGPLv2 +# +# make sure you have added a user to the vicidial_users MySQL table with at least +# user_level 1 or greater to access this page. Also you need to have the login +# and pass of a phone listed in the asterisk.phones table. The page grabs the +# server info and other details from this login and pass +# +# Other scripts that this application depends on: +# - active_list_refresh.php: displays active/live channels and phones +# - manager_send.php: sends Actions to be executed on Asterisk servers +# - live_exten_check.php: checks to see if user's phone is on a live call +# - call_log_display.php: retrieves log of inbound and outbound calls +# - voicemail_check.php: retrieves counts of new and old messages +# - inbound_popup.php: opens upon live_inbound call coming in +# - conf_exten_check.php: checks to see if and calls are in a specific conf +# - park_calls_display.php: retrieves list of parked calls +# - vdc_db_query.php: Changes values in the DB for non-calling records +# +# CHANGES +# 50215-1356 - Proof-of-concept test of XMLHttpRequest for astGUIclient web +# 50323-1411 - First build version display-only +# 50331-1040 - Second-build, added phone login and hangup/hijack display +# 50401-1006 - Trunk/Local Hangup functions enabled +# 50404-1056 - Trunk/Local Hijack functions enabled +# 50404-1459 - Simple live calls display and grabs updated time from server +# 50405-1221 - Reorganized the display and layers, added some images +# 50406-1005 - Added In/Out call log display to MAIN panel +# 50407-1254 - Start/Stop Recording on live calls enabled +# 50422-1101 - Activated Check Voicemail button and new/old messages count +# 50428-1449 - Added dial from log and basic live_inbound call popup +# 50429-1455 - Modified inbound popup code for IE and to add more functions +# 50502-1442 - Added basic method to transfer live calls somewhere else +# 50503-1205 - Added web_client_sessions entry for more security of subscripts +# 50503-1537 - Added basic conferences display +# 50509-1132 - Added conference connected list and hangup/xfer for them +# 50511-1129 - Added registration of conference rooms and added manual dial +# 50523-1342 - Added Conference recording and send DTMF +# 50523-1622 - Added Local Dial window frame for calling local extensions +# 50524-1456 - Added ability to park call and display number of parked calls +# 50524-1600 - Added ability to display and pickup/hangup/xfer parked calls +# 50525-1224 - Added ability to place outbound call from within conferene +# 50531-1225 - Added ability to do dual transfers to meetme rooms from Main +# 50711-1229 - removed HTTP authentication in favor of user/pass vars +# 50711-1610 - Added Zap monitoring to Trunk/Local Action screens +# 50804-1604 - Minor bug fix in inbound_popup functions +# 50818-1715 - Added pretty login section +# 50913-1137 - Added custom outbound_cid from phones table +# 51110-1430 - Fixed non-standard http port issue +# 60103-1421 - Added code for favorite extensions chooser +# 60104-1347 - Added basic layout for favorites editing frame +# 60105-1124 - Finished Favorites frame and added DB submission +# 60112-1622 - Several formatting changes +# 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 +# 60829-1528 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 90508-0727 - Changed to PHP long tags +# 91129-2211 - Replaced SELECT STAR in SQL query +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } + if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +$version = '2.2.0'; +$build = '91129-2211'; + +### 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( (strlen($_SERVER['user'])>0) or (strlen($_SERVER['pass'])>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "You have now logged out. Thank you\n"; + exit; + } + +$StarTtime = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); + $month_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); + $past_month_date = date("Y-m-d H:i:s",$month_old); + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$US='_'; +$CL=':'; +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./astguiclient_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = $agcPAGE; +$agcDIR = eregi_replace('astguiclient.php','',$agcDIR); + +if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth) or ($relogin == 'YES') ) + { + header ("Content-type: text/html; charset=utf-8"); + + echo "astGUIclient web client: Login\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "


    "; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Login
     
    User Login:
    User Password:
    Phone Login:
    Phone Password:

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name,user_level from vicidial_users where user='$user' and pass='$pass'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + } + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "astGUIclient web client: Phone Login\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    \n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


    "; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Phone Login
     
    Phone Login:
    Phone Password:

    VERSION: $version       BUILD: $build
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +$authphone=0; +$stmt="SELECT count(*) from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "astGUIclient web client: Phone Login\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


    "; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Phone Login
     
    Sorry, your phone login and password are not active in this system, please try again:
     
    Phone Login:
    Phone Password:

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { + echo "astGUIclient web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $phone_login=$row[6]; + $phone_pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CaLLerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + + $local_web_callerID_URL_enc = rawurlencode($local_web_callerID_URL); + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtime$US$session_ext$session_rand"; + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'agc';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','agc','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT count(*) from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_present=$row[0]; + if ($favorites_present > 0) + { + $stmt="SELECT extensions_list from phone_favorites where extension='$extension' and server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favorites_list=$row[0]; + $h=0; + $favorites_listX = eregi_replace("'",'',$favorites_list); + $favorites = explode(',',$favorites_listX); + $favorites_count = count($favorites); + $favorites_listX=''; + + $o=0; + while ($favorites_count > $o) + { + $stmt="SELECT fullname,protocol from phones where extension = '$favorites[$o]' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $favorites_names[$o] = $rowx[0]; + $favorites_listX .= "$rowx[1]/$favorites[$o],"; + $o++; + } + + echo "\n"; + echo "\n"; + } + else + { + echo "\n"; + } + +### gather phone extensions and fullnames for favorites editor ### + $stmt="SELECT extension,fullname from phones where server_ip = '$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $exten_ct = mysql_num_rows($rslt); + $favlistCT=0; + $nofavlistCT=0; + while ($favlistCT < $exten_ct) + { + $row=mysql_fetch_row($rslt); + $favlist[$favlistCT]= "$row[0] - $row[1]"; + $favlistCT++; + } + + } +} + + +?> + + + + + + +\n"; + + +?> + +
    + + + + + + + + + +
    + + +LOGOUT
    \n"; ?> +
    Main PanelActive Lines PanelConferences PanelCheck VoicemailLive Call
    +
    + + +

    Logout
    +
    + + +
    TRUNK HANGUP

    + Active Trunks Menu
    + Hangup Trunk   |   + Hijack Trunk   |   + Listen Trunk   |   + Refresh   |   + Back to Main Window +
    +
    + + +
    LOCAL HANGUP

    + Active Local Menu
    + Hangup Local   |   + Hijack Local   |   + Listen Local   |   + Refresh   |   + Back to Main Window +
    +
    + + + + + + + +
    LIVE CALL TRANSFER
    Channel to be transferred: Channel
    Extensions:
    Extensions Menu
    +
    + Send to selected extension

    + Send to selected vmail box

    + Send to this number:


    + Refresh


    + Back to Main Window

    +
    Conferences:
    (click on a number below to send to a conference)
    Send my channel too
    Conferences Menu
    +
    + + + + + +
    LOCAL Extensions Dial
    Phone calling from: Channel
    Extensions:
    Extensions Menu
    +
    + Call selected extension

    + Call selected vmail box

    + Refresh


    + Back to Main Window

    +
    +
    + + +
    PARKED CALLS:
    + Back to Main Window

    +
    +
    + + + + + + + + + + + + + + + +
      +
    VOICEMAIL     NEW:     OLD:             MANUAL DIAL       DIAL
    PARKED CALLS: 0                LOCAL DIAL EXTENSIONS
    OUTBOUND CALLS:
    INBOUND CALLS:
    astGUIclient web-client VERSION: BUILD:
    + + + + $h) + { + if (strlen($favorites[$h])>1) + { + echo "\n"; + } + $h++; + } +?> + +
    FAVORITES       edit
    $favorites[$h] - $favorites_names[$h]
     
    +
    + + + + + + + +
    FAVORITES

     
    SUBMIT FAVORITES CHANGES - requires logout
    BACK TO MAIN WINDOW - ignore changes made
    +
    + +
    + + + + + + + + + + + + + +
    +STOP | START     Refresh rate: 1000 ms Faster | Slower

    +
    Initializing..
    +
    Active Extensions
    +REFRESH | +ORDER | +
    Outside Lines
    +REFRESH | +ORDER | +
    Local Extensions
    +REFRESH | +ORDER | +
    + Data Goes Here

    +
    + Data Goes Here

    Trunk Action +
    + Data Goes Here

    Local Action +
    +
    + + + + +
    + + +Conferences List + + + +
    +Click on a conference room number on the left for info on that conference +
    + + + +
    + + + + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/call_log_display.php b/agc_2-X/branches/agc_2.2.0/www/agc/call_log_display.php new file mode 100644 index 00000000..f49db9eb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/call_log_display.php @@ -0,0 +1,197 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the inbound and outbound calls for a specific phone +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# - $in_limit - ('10','20','50','100',...) +# - $out_limit - ('10','20','50','100',...) +# +# +# changes +# 50406-1013 - First build of script +# 50407-1452 - Added definable limits +# 50503-1236 - added session_name checking for extra security +# 50610-1158 - Added NULL check on MySQL results to reduced errors +# 50711-1202 - removed HTTP authentication in favor of user/pass vars +# 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 +# 60619-1202 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($in_limit)) {$in_limit="100";} +if (!isset($out_limit)) {$out_limit="100";} +$number_dialed = 'number_dialed'; +#$number_dialed = 'extension'; + +$version = '0.0.8'; +$build = '60619-1202'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Call Log Display"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten is not valid or protocol $protocol is not valid\n"; + exit; + } + else + { + ##### print outbound calls from the call_log table + $stmt="SELECT uniqueid,start_time,$number_dialed,length_in_sec FROM call_log where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\" order by start_time desc limit $out_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$out_calls_count = mysql_num_rows($rslt);} + echo "$out_calls_count|"; + $loop_count=0; + while ($out_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[3] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + + if ($number_dialed == 'extension') {$row[2] = substr($row[2],-10);} + echo "$row[0] ~$row[1] ~$row[2] ~$call_time_MS|"; + } + echo "\n"; + + ##### print inbound calls from the live_inbound_log table + $stmt="SELECT call_log.uniqueid,live_inbound_log.start_time,live_inbound_log.extension,caller_id,length_in_sec from live_inbound_log,call_log where phone_ext='$exten' and live_inbound_log.server_ip = '$server_ip' and call_log.uniqueid=live_inbound_log.uniqueid order by start_time desc limit $in_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$in_calls_count = mysql_num_rows($rslt);} + echo "$in_calls_count|"; + $loop_count=0; + while ($in_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + + $call_time_M = ($row[4] / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $callerIDnum = $row[3]; $callerIDname = $row[3]; + $callerIDnum = preg_replace("/.*<|>.*/","",$callerIDnum); + $callerIDname = preg_replace("/\"| <\d*>/","",$callerIDname); + + echo "$row[0] ~$row[1] ~$row[2] ~$callerIDnum ~$callerIDname ~$call_time_MS|"; + } + echo "\n"; + + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/conf_exten_check.php b/agc_2-X/branches/agc_2.2.0/www/agc/conf_exten_check.php new file mode 100644 index 00000000..fe7b63b5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/conf_exten_check.php @@ -0,0 +1,647 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the meetme conference has live channels connected and which they are +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('refresh','register') +# - $client - ('agc','vdc') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $campagentstdisp - ('YES',...) +# + +# changes +# 50509-1054 - First build of script +# 50511-1112 - Added ability to register a conference room +# 50610-1159 - Added NULL check on MySQL results to reduced errors +# 50706-1429 - script changed to not use HTTP login vars, user/pass instead +# 50706-1525 - Added date-time display for vicidial client display +# 50816-1500 - Added random update to vicidial_live_agents table for vdc users +# 51121-1353 - Altered echo statements for several small PHP speed optimizations +# 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 +# 60619-1201 - Added variable filters to close security holes for login form +# 61128-2255 - Added update for manual dial vicidial_live_agents +# 70319-1542 - Added agent disabled display function +# 71122-0205 - Added vicidial_live_agent status output +# 80424-0442 - Added non_latin lookup from system_settings +# 80519-1425 - Added calls-in-queue tally +# 80703-1106 - Added API functionality for Hangup and Dispo +# 81104-0229 - Added mysql error logging capability +# 81104-1409 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 90102-1402 - Added check for system and database time synchronization +# 90120-1720 - Added compatibility for API pause/resume and dial a number +# 90307-1855 - Added shift enforcement to send logout flag if outside of shift hours +# 90408-0020 - Added API vtiger specific callback activity record ability +# 90508-0727 - Changed to PHP long tags +# 90706-1430 - Fixed AGENTDIRECT calls in queue display count +# 90908-1037 - Added DEAD call logging +# 91130-2022 - Added code for manager override of in-group selection +# 91228-1341 - Added API fields update functions +# + +$version = '2.2.0-24'; +$build = '91228-1341'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=17; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["client"])) {$client=$_GET["client"];} + elseif (isset($_POST["client"])) {$client=$_POST["client"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campagentstdisp"])) {$campagentstdisp=$_GET["campagentstdisp"];} + elseif (isset($_POST["campagentstdisp"])) {$campagentstdisp=$_POST["campagentstdisp"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) +{ +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); +} + +# default optional vars if not set +if (!isset($format)) {$format="text";} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($client)) {$client="agc";} + +$Alogin='N'; +$RingCalls='N'; +$DiaLCalls='N'; + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd_His"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$random = (rand(1000000, 9999999) + 10000000); + + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Conf Extension Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + if ($ACTION == 'refresh') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if (strlen($conf_exten)<1) + { + $channel_live=0; + echo "Conf Exten $conf_exten is not valid\n"; + exit; + } + else + { + + if ($client == 'vdc') + { + $Acount=0; + $AexternalDEAD=0; + $Aagent_log_id=''; + $Acallerid=''; + $DEADcustomer=0; + + ### see if the agent has a record in the vicidial_live_agents table + $stmt="SELECT count(*) from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Acount=$row[0]; + + if ($Acount > 0) + { + $stmt="SELECT status,callerid,agent_log_id,campaign_id from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Astatus = $row[0]; + $Acallerid = $row[1]; + $Aagent_log_id = $row[2]; + $Acampaign_id = $row[3]; + } + # ### find out if external table shows agent should be disabled + # $stmt="SELECT count(*) from another_table where user='$user' and status='DEAD';"; + # if ($DB) {echo "|$stmt|\n";} + # $rslt=mysql_query($stmt, $link); + # $row=mysql_fetch_row($rslt); + # $AexternalDEAD=$row[0]; + + if ($auto_dial_level > 0) + { + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03005',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9305$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + ##### BEGIN DEAD logging section ##### + ### find whether the call the agent is on is hung up + $stmt="SELECT count(*) from vicidial_auto_calls where callerid='$Acallerid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03018',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $AcalleridCOUNT=$row[0]; + + if ( ($AcalleridCOUNT < 1) and (eregi("INCALL",$Astatus)) and (strlen($Aagent_log_id) > 0) ) + { + $DEADcustomer++; + ### find whether the agent log record has already logged DEAD + $stmt="SELECT count(*) from vicidial_agent_log where agent_log_id='$Aagent_log_id' and ( (dead_epoch IS NOT NULL) or (dead_epoch > 10000) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03019',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Aagent_log_idCOUNT=$row[0]; + + if ($Aagent_log_idCOUNT < 1) + { + $NEWdead_epoch = date("U"); + $deadNOW_TIME = date("Y-m-d H:i:s"); + $stmt="UPDATE vicidial_agent_log set dead_epoch='$NEWdead_epoch' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03020',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set last_state_change='$deadNOW_TIME' where agent_log_id='$Aagent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03021',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + ##### END DEAD logging section ##### + + if ($campagentstdisp == 'YES') + { + $ADsql=''; + ### grab the status of this agent to display + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03006',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03007',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $RingCalls=$row[0]; + if ($RingCalls > 0) {$RingCalls = "Calls in Queue: $RingCalls";} + else {$RingCalls = "Calls in Queue: $RingCalls";} + + ### grab the number of calls being placed from this server and campaign + $stmt="SELECT count(*) from vicidial_auto_calls where status NOT IN('XFER') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) );"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $DiaLCalls=$row[0]; + + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + } + } + else + { + $Alogin='N'; + $RingCalls='N'; + $DiaLCalls='N'; + + ### update the vicidial_live_agents every second with a new random number so it is shown to be alive + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03009',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 5) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9309$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + } + + ### grab the API hangup and API dispo fields in vicidial_live_agents + $stmt="SELECT external_hangup,external_status,external_pause,external_dial,external_update_fields,external_update_fields_data,external_timer_action,external_timer_action_message,external_timer_action_seconds from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03010',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $external_hangup = $row[0]; + $external_status = $row[1]; + $external_pause = $row[2]; + $external_dial = $row[3]; + $external_update_fields = $row[4]; + $external_update_fields_data = $row[5]; + $timer_action = $row[6]; + $timer_action_message = $row[7]; + $timer_action_seconds = $row[8]; + + if (strlen($external_status)<1) {$external_status = '::::::::::';} + + $web_epoch = date("U"); + $stmt="SELECT UNIX_TIMESTAMP(last_update),UNIX_TIMESTAMP(db_time) from server_updater where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03014',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $server_epoch = $row[0]; + $db_epoch = $row[1]; + $time_diff = ($server_epoch - $db_epoch); + $web_diff = ($db_epoch - $web_epoch); + + ##### check for in-group change details + $InGroupChangeDetails = '0|||'; + $manager_ingroup_set=0; + $stmt="SELECT count(*) FROM vicidial_live_agents where user='$user' and manager_ingroup_set='SET';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03022',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mis_record_ct = mysql_num_rows($rslt); + if ($mis_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manager_ingroup_set = $row[0]; + } + if ($manager_ingroup_set > 0) + { + $stmt="UPDATE vicidial_live_agents SET closer_campaigns=external_ingroups, manager_ingroup_set='Y' where user='$user' and manager_ingroup_set='SET';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMISaffected_rows_update = mysql_affected_rows($link); + if ($VLAMISaffected_rows_update > 0) + { + $stmt="SELECT external_ingroups,external_blended,external_igb_set_user,outbound_autodial,dial_method FROM vicidial_live_agents vla, vicidial_campaigns vc where user='$user' and manager_ingroup_set='Y' and vla.campaign_id=vc.campaign_id;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03024',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $migs_record_ct = mysql_num_rows($rslt); + if ($migs_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_ingroups = $row[0]; + $external_blended = $row[1]; + $external_igb_set_user = $row[2]; + $outbound_autodial = $row[3]; + $dial_method = $row[4]; + + $stmt="SELECT full_name FROM vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $mign_record_ct = mysql_num_rows($rslt); + if ($mign_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $external_igb_set_name = $row[0]; + } + + $NEWoutbound_autodial='N'; + if ( ($external_blended > 0) and ($dial_method != "INBOUND_MAN") and ($dial_method != "MANUAL") ) + {$NEWoutbound_autodial='Y';} + + $stmt="UPDATE vicidial_live_agents SET outbound_autodial='$NEWoutbound_autodial' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAMIBaffected_rows_update = mysql_affected_rows($link); + + $InGroupChangeDetails = "1|$external_blended|$external_igb_set_user|$external_igb_set_name"; + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$Acampaign_id',event_date='$NOW_TIME',blended='$external_blended',closer_campaigns='$external_ingroups',manager_change='$external_igb_set_user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03027',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### grab the shift information the agent + $stmt="SELECT user_group,agent_shift_enforcement_override from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_agent_shift_enforcement_override = $row[1]; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $shift_enforcement = $row[0]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[1]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + $Ashift_logout=0; + if ( ( (ereg("ALL",$shift_enforcement)) and (!ereg("OFF|START",$VU_agent_shift_enforcement_override)) ) or (ereg("ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if (strlen($LOGgroup_shiftsSQL) < 3) + {$Ashift_logout++;} + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'3017',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ($shift_ok < 1) + {$Ashift_logout++;} + } + } + + + if ( ( ($time_diff > 8) or ($time_diff < -8) or ($web_diff > 8) or ($web_diff < -8) ) and (eregi("0$",$StarTtime)) ) + {$Alogin='TIME_SYNC';} + if ($Acount < 1) + {$Alogin='DEAD_VLA';} + if ($AexternalDEAD > 0) + {$Alogin='DEAD_EXTERNAL';} + if ($Ashift_logout > 0) + {$Alogin='SHIFT_LOGOUT';} + + echo 'DateTime: ' . $NOW_TIME . '|UnixTime: ' . $StarTtime . '|Logged-in: ' . $Alogin . '|CampCalls: ' . $RingCalls . '|Status: ' . $Astatus . '|DiaLCalls: ' . $DiaLCalls . '|APIHanguP: ' . $external_hangup . '|APIStatuS: ' . $external_status . '|APIPausE: ' . $external_pause . '|APIDiaL: ' . $external_dial . '|DEADcall: ' . $DEADcustomer . '|InGroupChange: ' . $InGroupChangeDetails . '|APIFields: ' . $external_update_fields . '|APIFieldsData: ' . $external_update_fields_data . '|APITimerAction: ' . $timer_action . '|APITimerMessage: ' . $timer_action_message . '|APITimerSeconds: ' . $timer_action_seconds . "\n"; + + if (strlen($timer_action) > 3) + { + $stmt="UPDATE vicidial_live_agents SET external_timer_action='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAETAaffected_rows_update = mysql_affected_rows($link); + } + } + $total_conf=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03011',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$sip_list = mysql_num_rows($rslt);} + # echo "$sip_list|"; + $loop_count=0; + while ($sip_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $ChannelA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03012',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + # echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; $total_conf++; + $row=mysql_fetch_row($rslt); + $ChannelA[$total_conf] = "$row[0]"; + if ($format=='debug') {echo "\n";} + } + } + $channels_list = ($channels_list + $sip_list); + echo "$channels_list|"; + + $counter=0; + $countecho=''; + while($total_conf > $counter) + { + $counter++; + $countecho = "$countecho$ChannelA[$counter] ~"; + # echo "$ChannelA[$counter] ~"; + } + + echo "$countecho\n"; + } + + if ($ACTION == 'register') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($exten)<1) ) + { + $channel_live=0; + echo "Conf Exten $conf_exten is not valid or Exten $exten is not valid\n"; + exit; + } + else + { + $stmt="UPDATE conferences set extension='$exten' where server_ip = '$server_ip' and conf_exten = '$conf_exten';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'03013',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Conference $conf_exten has been registered to $exten\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|conf_check |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/dbconnect.php b/agc_2-X/branches/agc_2.2.0/www/agc/dbconnect.php new file mode 100644 index 00000000..89d88689 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/dbconnect.php @@ -0,0 +1,58 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database",$link); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules, overridden by system_settings +$flag_channels=0; +$flag_string = 'VICIast20'; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/Thumbs.db b/agc_2-X/branches/agc_2.2.0/www/agc/images/Thumbs.db new file mode 100644 index 00000000..0249725e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/Thumbs.db differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK.gif new file mode 100644 index 00000000..30703a78 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_e.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_e.gif new file mode 100644 index 00000000..600cef89 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_e.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_es.gif new file mode 100644 index 00000000..600cef89 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_ptbr.gif new file mode 100644 index 00000000..3670af28 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_BLINK_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF.gif new file mode 100644 index 00000000..5b7e4c75 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF_es.gif new file mode 100644 index 00000000..ec9c1d55 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF_ptbr.gif new file mode 100644 index 00000000..3b1c4644 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON.gif new file mode 100644 index 00000000..ad55916d Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON_es.gif new file mode 100644 index 00000000..442a8084 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON_ptbr.gif new file mode 100644 index 00000000..ae53a393 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_check_voicemail_ON_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_DEAD.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_DEAD.gif new file mode 100644 index 00000000..19949772 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_DEAD.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF.gif new file mode 100644 index 00000000..3752fb5e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_de.jpg b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_de.jpg new file mode 100644 index 00000000..af13f363 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_de.jpg differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_es.gif new file mode 100644 index 00000000..1ff376d8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_pl.gif new file mode 100644 index 00000000..3c42a377 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_ptbr.gif new file mode 100644 index 00000000..86a71723 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON.gif new file mode 100644 index 00000000..ed8ba2dd Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_de.gif new file mode 100644 index 00000000..957e6fdd Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_es.gif new file mode 100644 index 00000000..041d398f Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_pl.gif new file mode 100644 index 00000000..330346eb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_ptbr.gif new file mode 100644 index 00000000..c0601666 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_live_call_ON_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines.gif new file mode 100644 index 00000000..9f8eaf67 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_el.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_el.gif new file mode 100644 index 00000000..1bea40dc Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_el.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_es.gif new file mode 100644 index 00000000..bdefd015 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_ptbr.gif new file mode 100644 index 00000000..1465ea6e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_active_lines_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_astguiclient.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_astguiclient.gif new file mode 100644 index 00000000..30373576 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_astguiclient.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_astguiclient_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_astguiclient_ptbr.gif new file mode 100644 index 00000000..30373576 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_astguiclient_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences.gif new file mode 100644 index 00000000..e3c80662 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_el.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_el.gif new file mode 100644 index 00000000..91282b42 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_el.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_es.gif new file mode 100644 index 00000000..14ab7171 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_ptbr.gif new file mode 100644 index 00000000..14ab7171 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_conferences_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main.gif new file mode 100644 index 00000000..6e687e44 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_el.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_el.gif new file mode 100644 index 00000000..4eaf0aa3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_el.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_es.gif new file mode 100644 index 00000000..b5fc2a5e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_ptbr.gif new file mode 100644 index 00000000..b5fc2a5e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/agc_tab_main_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/blank.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/blank.gif new file mode 100644 index 00000000..3a469695 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/blank.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/br.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/br.gif new file mode 100644 index 00000000..423b8a0c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/br.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/de.gif new file mode 100644 index 00000000..4dd34f6a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/down.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/down.gif new file mode 100644 index 00000000..32d0a007 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/down.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/el.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/el.gif new file mode 100644 index 00000000..9e79d8bf Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/el.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/en.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/en.gif new file mode 100644 index 00000000..cb45f5f4 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/en.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/es.gif new file mode 100644 index 00000000..308ea3cb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/fr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/fr.gif new file mode 100644 index 00000000..21fb3d19 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/fr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/it.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/it.gif new file mode 100644 index 00000000..6c7b1792 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/it.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/nl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/nl.gif new file mode 100644 index 00000000..0fb464b9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/nl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/pl.gif new file mode 100644 index 00000000..cde07905 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/pt.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/pt.gif new file mode 100644 index 00000000..646b76ac Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/pt.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/remove.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/remove.gif new file mode 100644 index 00000000..89b0521c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/remove.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/ru.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/ru.gif new file mode 100644 index 00000000..c51ebece Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/ru.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/sk.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/sk.gif new file mode 100644 index 00000000..fa13224e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/sk.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/tw.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/tw.gif new file mode 100644 index 00000000..8a974c44 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/tw.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/up.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/up.gif new file mode 100644 index 00000000..0d55544f Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/up.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber.gif new file mode 100644 index 00000000..a5a080d6 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF.gif new file mode 100644 index 00000000..75bc0e8f Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_de.gif new file mode 100644 index 00000000..e9658f35 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_es.gif new file mode 100644 index 00000000..405ff336 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_ptbr.gif new file mode 100644 index 00000000..0d297820 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_de.gif new file mode 100644 index 00000000..de377551 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_es.gif new file mode 100644 index 00000000..ca92716e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_ptbr.gif new file mode 100644 index 00000000..8625b1c9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_dialnextnumber_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall.gif new file mode 100644 index 00000000..a6779255 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF.gif new file mode 100644 index 00000000..74b1f5a1 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF_es.gif new file mode 100644 index 00000000..21991dd5 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF_ptbr.gif new file mode 100644 index 00000000..19932ad2 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_es.gif new file mode 100644 index 00000000..9acc363a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_ptbr.gif new file mode 100644 index 00000000..e37d0fb4 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_grabparkedcall_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer.gif new file mode 100644 index 00000000..b4fdfae8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF.gif new file mode 100644 index 00000000..e5736ae0 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_de.gif new file mode 100644 index 00000000..b30b2013 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_es.gif new file mode 100644 index 00000000..570a6e5a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_pl.gif new file mode 100644 index 00000000..50407590 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_ptbr.gif new file mode 100644 index 00000000..57918268 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_de.gif new file mode 100644 index 00000000..1e1118c0 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_es.gif new file mode 100644 index 00000000..94d3e225 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_pl.gif new file mode 100644 index 00000000..e07bc496 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_ptbr.gif new file mode 100644 index 00000000..5841050c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_hangupcustomer_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall.gif new file mode 100644 index 00000000..88fee283 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF.gif new file mode 100644 index 00000000..8ad55010 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_de.gif new file mode 100644 index 00000000..4ee04ce5 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_es.gif new file mode 100644 index 00000000..110ce6b0 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_pl.gif new file mode 100644 index 00000000..c188f0fa Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_ptbr.gif new file mode 100644 index 00000000..25a6a2f2 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_de.gif new file mode 100644 index 00000000..8807883b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_es.gif new file mode 100644 index 00000000..2274a27c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_pl.gif new file mode 100644 index 00000000..fc0d97eb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_ptbr.gif new file mode 100644 index 00000000..b37d8358 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_parkcall_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause.gif new file mode 100644 index 00000000..3486a1c1 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF.gif new file mode 100644 index 00000000..fce03041 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_es.gif new file mode 100644 index 00000000..494d68a5 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_pl.gif new file mode 100644 index 00000000..8619e9dd Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_ptbr.gif new file mode 100644 index 00000000..3d8c8759 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_es.gif new file mode 100644 index 00000000..544a3797 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_pl.gif new file mode 100644 index 00000000..c0e2066e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_ptbr.gif new file mode 100644 index 00000000..bea56d65 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_pause_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_quickxfer.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_quickxfer.gif new file mode 100644 index 00000000..7b3ceb6f Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_quickxfer.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_quickxfer_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_quickxfer_OFF.gif new file mode 100644 index 00000000..53998bef Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_quickxfer_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_requeue_call.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_requeue_call.gif new file mode 100644 index 00000000..c5ef23f3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_requeue_call.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_requeue_call_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_requeue_call_OFF.gif new file mode 100644 index 00000000..2db22e3a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_requeue_call_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume.gif new file mode 100644 index 00000000..a7d75dd8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF.gif new file mode 100644 index 00000000..0ae4cb9a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_de.gif new file mode 100644 index 00000000..f707e326 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_es.gif new file mode 100644 index 00000000..921d5d5e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_pl.gif new file mode 100644 index 00000000..3cb532bc Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_ptbr.gif new file mode 100644 index 00000000..43bb9235 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_de.gif new file mode 100644 index 00000000..a3766538 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_es.gif new file mode 100644 index 00000000..1b096144 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_pl.gif new file mode 100644 index 00000000..ec2103e7 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_ptbr.gif new file mode 100644 index 00000000..415b22d1 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_resume_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf.gif new file mode 100644 index 00000000..d19888ad Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF.gif new file mode 100644 index 00000000..08a4b392 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_de.gif new file mode 100644 index 00000000..c6b054ae Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_es.gif new file mode 100644 index 00000000..2d32c5e9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_ptbr.gif new file mode 100644 index 00000000..2d32c5e9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_de.gif new file mode 100644 index 00000000..59668706 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_es.gif new file mode 100644 index 00000000..43964df4 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_ptbr.gif new file mode 100644 index 00000000..43964df4 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_senddtmf_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_spacer.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_spacer.gif new file mode 100644 index 00000000..d0a4f6ed Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_spacer.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording.gif new file mode 100644 index 00000000..022103d2 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF.gif new file mode 100644 index 00000000..3ee4ca62 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_es.gif new file mode 100644 index 00000000..ff9a3447 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_p.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_p.gif new file mode 100644 index 00000000..91098453 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_p.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_pl.gif new file mode 100644 index 00000000..a8d5cbc3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_ptbr.gif new file mode 100644 index 00000000..22105778 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_de.gif new file mode 100644 index 00000000..7674d776 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_es.gif new file mode 100644 index 00000000..26420f78 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_pl.gif new file mode 100644 index 00000000..ef031de9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_ptbr.gif new file mode 100644 index 00000000..15b25990 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_startrecording_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording.gif new file mode 100644 index 00000000..6f3bfede Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording2_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording2_de.gif new file mode 100644 index 00000000..ff21e557 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording2_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF.gif new file mode 100644 index 00000000..2e1efe4a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_es.gif new file mode 100644 index 00000000..2806311f Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_pl.gif new file mode 100644 index 00000000..0cf042fc Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_ptbr.gif new file mode 100644 index 00000000..c0259410 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_es.gif new file mode 100644 index 00000000..94f9de9d Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_pl.gif new file mode 100644 index 00000000..562822d9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_ptbr.gif new file mode 100644 index 00000000..8a76e860 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_stoprecording_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf.gif new file mode 100644 index 00000000..c5738519 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF.gif new file mode 100644 index 00000000..dd0a579a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_de.gif new file mode 100644 index 00000000..86c2c526 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_es.gif new file mode 100644 index 00000000..d0a54bf6 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_pl.gif new file mode 100644 index 00000000..9e3ea08e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_ptbr.gif new file mode 100644 index 00000000..ebb69344 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_de.gif new file mode 100644 index 00000000..bb0274cb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_es.gif new file mode 100644 index 00000000..10cfa495 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_pl.gif new file mode 100644 index 00000000..e30680b0 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_ptbr.gif new file mode 100644 index 00000000..f008e92c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_transferconf_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform.gif new file mode 100644 index 00000000..4d5228f3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF.gif new file mode 100644 index 00000000..64316ced Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_de.gif new file mode 100644 index 00000000..b667ef77 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_es.gif new file mode 100644 index 00000000..75a56196 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_pl.gif new file mode 100644 index 00000000..cfbd2d92 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_ptbr.gif new file mode 100644 index 00000000..75a56196 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_de.gif new file mode 100644 index 00000000..24876966 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_es.gif new file mode 100644 index 00000000..d7590d66 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_pl.gif new file mode 100644 index 00000000..f2275e8f Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_ptbr.gif new file mode 100644 index 00000000..d7590d66 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_two.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_two.gif new file mode 100644 index 00000000..86aa74db Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_two.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_two_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_two_OFF.gif new file mode 100644 index 00000000..3aec70c3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_LB_webform_two_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_ammessage.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_ammessage.gif new file mode 100644 index 00000000..484d01eb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_ammessage.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_ammessage_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_ammessage_OFF.gif new file mode 100644 index 00000000..3aa94800 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_ammessage_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer.gif new file mode 100644 index 00000000..77c03e0b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF.gif new file mode 100644 index 00000000..7fb481ee Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF_es.gif new file mode 100644 index 00000000..05adaac5 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF_ptbr.gif new file mode 100644 index 00000000..3a069c2b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_es.gif new file mode 100644 index 00000000..fdad633a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_ptbr.gif new file mode 100644 index 00000000..c31c87fc Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_blindtransfer_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel.gif new file mode 100644 index 00000000..9a9ce7ba Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel_es.gif new file mode 100644 index 00000000..a4fbf1f5 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel_ptbr.gif new file mode 100644 index 00000000..a4fbf1f5 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_channel_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_code.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_code.gif new file mode 100644 index 00000000..8fb2b8c5 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_code.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer.gif new file mode 100644 index 00000000..68697edc Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF.gif new file mode 100644 index 00000000..8bf2e44b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF_es.gif new file mode 100644 index 00000000..7ef98a94 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF_ptbr.gif new file mode 100644 index 00000000..1ac7dbbb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_es.gif new file mode 100644 index 00000000..d71bca15 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_ptbr.gif new file mode 100644 index 00000000..90ec03f8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_dialwithcustomer_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines.gif new file mode 100644 index 00000000..4e6db07e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF.gif new file mode 100644 index 00000000..f1ffdc12 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF_es.gif new file mode 100644 index 00000000..8f12accd Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF_ptbr.gif new file mode 100644 index 00000000..47b87225 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_es.gif new file mode 100644 index 00000000..646c8769 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_ptbr.gif new file mode 100644 index 00000000..fa0cf2fb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupbothlines_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline.gif new file mode 100644 index 00000000..d25a105a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF.gif new file mode 100644 index 00000000..a8fb4a3d Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF_es.gif new file mode 100644 index 00000000..3c717d09 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF_ptbr.gif new file mode 100644 index 00000000..f6d9080b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_es.gif new file mode 100644 index 00000000..0d92a89c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_ptbr.gif new file mode 100644 index 00000000..c7d26417 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hangupxferline_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header.gif new file mode 100644 index 00000000..c813b9a3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header_es.gif new file mode 100644 index 00000000..a92c2df0 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header_ptbr.gif new file mode 100644 index 00000000..a92c2df0 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_header_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive.gif new file mode 100644 index 00000000..8382205e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF.gif new file mode 100644 index 00000000..3357ed2b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_de.gif new file mode 100644 index 00000000..f334afd9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_es-orig.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_es-orig.gif new file mode 100644 index 00000000..638ef859 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_es-orig.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_es.gif new file mode 100644 index 00000000..5c9a3122 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_pl.gif new file mode 100644 index 00000000..5414a7d8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_ptbr.gif new file mode 100644 index 00000000..335e6356 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_de.gif new file mode 100644 index 00000000..3657790c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_es.gif new file mode 100644 index 00000000..b064725c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_pl.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_pl.gif new file mode 100644 index 00000000..365d8b2f Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_pl.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_ptbr.gif new file mode 100644 index 00000000..a34409c2 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysactive_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysinactive_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysinactive_es.gif new file mode 100644 index 00000000..d0bf982c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_hotkeysinactive_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser.gif new file mode 100644 index 00000000..a1adca76 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF.gif new file mode 100644 index 00000000..9d3489fa Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF_es.gif new file mode 100644 index 00000000..45bc4290 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF_ptbr.gif new file mode 100644 index 00000000..45bc4290 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_es.gif new file mode 100644 index 00000000..d5c05657 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_ptbr.gif new file mode 100644 index 00000000..d5c05657 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_internalcloser_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall.gif new file mode 100644 index 00000000..7bca06f9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF.gif new file mode 100644 index 00000000..63594d65 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF_es.gif new file mode 100644 index 00000000..9c41a291 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF_ptbr.gif new file mode 100644 index 00000000..63594d65 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_es.gif new file mode 100644 index 00000000..9aa29708 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_ptbr.gif new file mode 100644 index 00000000..7bca06f9 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_leave3waycall_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser.gif new file mode 100644 index 00000000..0e10a2ad Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF.gif new file mode 100644 index 00000000..ed11b7ac Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF_es.gif new file mode 100644 index 00000000..fbad052d Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF_ptbr.gif new file mode 100644 index 00000000..fbad052d Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_es.gif new file mode 100644 index 00000000..d36e1944 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_ptbr.gif new file mode 100644 index 00000000..d36e1944 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_localcloser_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number.gif new file mode 100644 index 00000000..33f30330 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number_es.gif new file mode 100644 index 00000000..6d672acc Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number_ptbr.gif new file mode 100644 index 00000000..22e82a58 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_number_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial.gif new file mode 100644 index 00000000..195b1a90 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF.gif new file mode 100644 index 00000000..7c275732 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF_es.gif new file mode 100644 index 00000000..ef710c9c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF_ptbr.gif new file mode 100644 index 00000000..72dee5c0 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_OFF_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_es.gif new file mode 100644 index 00000000..accda01c Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_ptbr.gif new file mode 100644 index 00000000..0101ea9e Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_parkcustomerdial_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds.gif new file mode 100644 index 00000000..92fc7f2b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds_es.gif new file mode 100644 index 00000000..f4fe2b27 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds_ptbr.gif new file mode 100644 index 00000000..f4fe2b27 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_XB_seconds_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script.gif new file mode 100644 index 00000000..58e934a7 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_de.gif new file mode 100644 index 00000000..d2a252c7 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_es.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_es.gif new file mode 100644 index 00000000..ba4320d4 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_es.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_ptbr.gif new file mode 100644 index 00000000..69e43b79 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_script_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_vicidial.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_vicidial.gif new file mode 100644 index 00000000..d0274e27 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_vicidial.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_vicidial_ptbr.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_vicidial_ptbr.gif new file mode 100644 index 00000000..1e862589 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_tab_vicidial_ptbr.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_MUTE.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_MUTE.gif new file mode 100644 index 00000000..1008b7e3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_MUTE.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_MUTE_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_MUTE_de.gif new file mode 100644 index 00000000..b828c5fb Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_MUTE_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_UNMUTE.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_UNMUTE.gif new file mode 100644 index 00000000..b3937d13 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_UNMUTE.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_UNMUTE_de.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_UNMUTE_de.gif new file mode 100644 index 00000000..228395bf Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_UNMUTE_de.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_down.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_down.gif new file mode 100644 index 00000000..d1745c65 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_down.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_down_off.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_down_off.gif new file mode 100644 index 00000000..9bd1b04f Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_down_off.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_up.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_up.gif new file mode 100644 index 00000000..8aa17f19 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_up.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_up_off.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_up_off.gif new file mode 100644 index 00000000..2e78579a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vdc_volume_up_off.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/images/vtc_tab_vicidial.gif b/agc_2-X/branches/agc_2.2.0/www/agc/images/vtc_tab_vicidial.gif new file mode 100644 index 00000000..89234c9a Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/agc/images/vtc_tab_vicidial.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/inbound_popup.php b/agc_2-X/branches/agc_2.2.0/www/agc/inbound_popup.php new file mode 100644 index 00000000..3ebb6c58 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/inbound_popup.php @@ -0,0 +1,352 @@ + LICENSE: AGPLv2 +# +# This script is designed to open up when a live_inbound call comes in giving the user +# options of what to do with the call or options to lookup the callerID on various web sites +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $uniqueid - ('1234567890.123456',...) +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $voicemail_dump_exten - ('85026666666666') +# - $local_web_callerID_URL_enc - ( rawurlencoded custom callerid lookup URL) +# +# +# changes +# 50428-1500 - First build of script display only +# 50429-1241 - some formatting, hangup and Vmail redirect, 30s timeout on actions, and CID web lookup links +# 50503-1244 - added session_name checking for extra security +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["vmail_box"];} + elseif (isset($_POST["vmail_box"])) {$vmail_box=$_POST["vmail_box"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_GET["local_web_callerID_URL_enc"];} + elseif (isset($_POST["local_web_callerID_URL_enc"])) {$local_web_callerID_URL_enc=$_POST["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 = '';} + +$user=ereg_replace("[^0-9a-zA-Z]","",$user); +$pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + +# default optional vars if not set +if (!isset($format)) {$format="text";} + +$version = '0.0.6'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +$DO = '-1'; +if ( (eregi("^Zap",$channel)) and (!eregi("-",$channel)) ) {$channel = "$channel$DO";} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +$forever_stop=0; +$user_abb = "$user$user$user$user"; +while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + +echo "\n"; +echo "\n"; +echo "\n"; +?> + + +LIVE INBOUND CALL"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "

    LIVE INBOUND CALL

    \n"; +echo "$NOW_TIME

    \n"; +} + + +$MT[0]=''; +$row=''; $rowx=''; +$channel_live=1; +if (strlen($uniqueid)<9) + { + $channel_live=0; + echo "Uniqueid $uniqueid is not valid\n"; + exit; + } +else + { + $stmt="SELECT uniqueid,channel,server_ip,caller_id,extension,phone_ext,start_time,acknowledged,inbound_number,comment_a,comment_b,comment_c,comment_d,comment_e FROM live_inbound where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $channels_list = mysql_num_rows($rslt); + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); +# echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; +# Zap/73|"V.I.C.I. MARKET" <7275338730>|2005-04-28 14:01:21|7274514936|Inbound direct to Matt||||| + if ($format=='debug') {echo "\n";} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Channel: $row[1]
    CallerID: $row[3]
    \n"; + + $phone = eregi_replace(".*\<","",$row[3]); + $phone = eregi_replace("\>.*","",$phone); + $NPA = substr($phone, 0, 3); + $NXX = substr($phone, 3, 3); + $XXXX = substr($phone, 6, 4); + $D='-'; + echo "GOOGLE - \n"; + echo "ANYWHO - \n"; + echo "SWITCHBOARD - \n"; + echo "VERIZON - \n"; + echo "WHITEPAGES - \n"; + echo "411.COM - \n"; + echo "411.COM - \n"; + + $local_web_callerID_QUERY_STRING =''; + $local_web_callerID_QUERY_STRING.="?callerID_areacode=$NPA"; + $local_web_callerID_QUERY_STRING.="&callerID_prefix=$NXX"; + $local_web_callerID_QUERY_STRING.="&callerID_last4=$XXXX"; + $local_web_callerID_QUERY_STRING.="&callerID_Time=$row[6]"; + $local_web_callerID_QUERY_STRING.="&callerID_Channel=$row[1]"; + $local_web_callerID_QUERY_STRING.="&callerID_uniqueID=$row[0]"; + $local_web_callerID_QUERY_STRING.="&callerID_phone_ext=$row[5]"; + $local_web_callerID_QUERY_STRING.="&callerID_server_ip=$row[2]"; + $local_web_callerID_QUERY_STRING.="&callerID_extension=$row[4]"; + $local_web_callerID_QUERY_STRING.="&callerID_inbound_number=$row[8]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_a=$row[9]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_b=$row[10]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_c=$row[11]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_d=$row[12]"; + $local_web_callerID_QUERY_STRING.="&callerID_comment_e=$row[13]"; + echo "CUSTOM - \n"; + + echo "
    Number Dialed: $row[8]
    Notes: $row[9]|$row[10]|$row[11]|$row[12]|$row[13]|
    \n"; + echo "HANGUP - \n"; + echo "SEND TO MY VOICEMAIL\n"; + echo "
    \n"; + + + $stmt="UPDATE live_inbound set acknowledged='Y' where server_ip = '$server_ip' and uniqueid = '$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + + + } + + + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/live_exten_check.php b/agc_2-X/branches/agc_2.2.0/www/agc/live_exten_check.php new file mode 100644 index 00000000..a4e9036d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/live_exten_check.php @@ -0,0 +1,279 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send whether the client channel is live and to what channel it is connected +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50404-1249 - First build of script +# 50406-1402 - added connected trunk lookup +# 50428-1452 - added live_inbound check for exten on 2nd line of output +# 50503-1233 - added session_name checking for extra security +# 50524-1429 - added parked calls count +# 50610-1204 - Added NULL check on MySQL results to reduced errors +# 50711-1204 - removed HTTP authentication in favor of user/pass vars +# 60103-1541 - added favorite extens status display +# 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 +# 60825-1029 - Fixed translation variable issue ChannelA +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["favorites_count"])) {$favorites_count=$_GET["favorites_count"];} + elseif (isset($_POST["favorites_count"])) {$favorites_count=$_POST["favorites_count"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '2.0.1'; +$build = '60825-1029'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Live Extension Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + +echo "DateTime: $NOW_TIME|"; +echo "UnixTime: $StarTtime|"; + +$stmt="SELECT count(*) FROM parked_channels where server_ip = '$server_ip';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +echo "$row[0]|"; + + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten is not valid or protocol $protocol is not valid\n"; + exit; + } + else + { + $stmt="SELECT channel,extension FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$channels_list = mysql_num_rows($rslt);} + echo "$channels_list|"; + $loop_count=0; + while ($channels_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + $ChanneLA[$loop_count] = "$row[0]"; + $ChanneLB[$loop_count] = "$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + $counter=0; + while($loop_count > $counter) + { + $counter++; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "ChannelA: $ChanneLA[$counter] ~"; + echo "ChannelB: $ChanneLB[$counter] ~"; + echo "ChannelBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel_data = '$ChanneLA[$counter]';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "ChannelA: $ChanneLA[$counter] ~"; + echo "ChannelB: $ChanneLB[$counter] ~"; + echo "ChannelBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "ChannelA: $ChanneLA[$counter] ~"; + echo "ChannelB: $ChanneLB[$counter] ~"; + echo "ChannelBtrunk: $row[0]|"; + } + else + { + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and channel LIKE \"$ChanneLB[$counter]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($rslt) {$trunk_count = mysql_num_rows($rslt);} + if ($trunk_count>0) + { + $row=mysql_fetch_row($rslt); + echo "Conversation: $counter ~"; + echo "ChannelA: $ChanneLA[$counter] ~"; + echo "ChannelB: $ChanneLB[$counter] ~"; + echo "ChannelBtrunk: $row[0]|"; + } + else + { + echo "Conversation: $counter ~"; + echo "ChannelA: $ChanneLA[$counter] ~"; + echo "ChannelB: $ChanneLB[$counter] ~"; + echo "ChannelBtrunk: $ChanneLA[$counter]|"; + } + } + } + } + } + +echo "\n"; + +### check for live_inbound entry +$stmt="select * from live_inbound where server_ip = '$server_ip' and phone_ext = '$exten' and acknowledged='N';"; + if ($format=='debug') {echo "\n";} +$rslt=mysql_query($stmt, $link); +if ($rslt) {$channels_list = mysql_num_rows($rslt);} + if ($channels_list>0) + { + $row=mysql_fetch_row($rslt); + $LIuniqueid = "$row[0]"; + $LIchannel = "$row[1]"; + $LIcallerid = "$row[3]"; + $LIdatetime = "$row[6]"; + echo "$LIuniqueid|$LIchannel|$LIcallerid|$LIdatetime|$row[8]|$row[9]|$row[10]|$row[11]|$row[12]|$row[13]|"; + if ($format=='debug') {echo "\n";} + } + +echo "\n"; + + +### if favorites are present do a lookup to see if any are active +if ($favorites_count > 0) + { + $favorites = explode(',',$favorites_list); + $h=0; + $favs_print=''; + while ($favorites_count > $h) + { + $fav_extension = explode('/',$favorites[$h]); + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$favorites[$h]%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $favs_print .= "$fav_extension[1]: $row[0] ~"; + $h++; + } + echo "$favs_print\n"; + } + +if ($format=='debug') {echo "\n";} + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/manager_send.php b/agc_2-X/branches/agc_2.2.0/www/agc/manager_send.php new file mode 100644 index 00000000..40cf2dbd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/manager_send.php @@ -0,0 +1,1703 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to insert records into the vicidial_manager table to signal Actions to an asterisk server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $ACTION - ('Originate','Redirect','Hangup','Command','Monitor','StopMonitor','SysCIDOriginate','RedirectName','RedirectNameVmail','MonitorConf','StopMonitorConf','RedirectXtra','RedirectXtraCX','RedirectVD','HangupConfDial','VolumeControl','OriginateVDRelogin') +# - $queryCID - ('CN012345678901234567',...) +# - $format - ('text','debug') +# - $channel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $exten - ('1234','913125551212',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $filename - ('20050406-125623_44444',...) +# - $extenName - ('phone100',...) +# - $parkedby - ('phone100',...) +# - $extrachannel - ('Zap/41-1','SIP/test101-1jut','IAX2/iaxy@iaxy',...) +# - $auto_dial_level - ('0','1','1.1',...) +# - $campaign - ('CLOSER','TESTCAMP',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('1234',...) +# - $seconds - ('32',...) +# - $outbound_cid - ('3125551212','0000000000',...) +# - $agent_log_id - ('123456',...) +# - $call_server_ip - ('10.10.10.15',...) +# - $CalLCID - ('VD01234567890123456',...) +# - $stage - ('UP','DOWN','2NDXfeR') +# - $session_id - ('8600051') +# - $FROMvdc - ('YES','NO') +# - $agentchannel - ('SIP/cc101-g7yr','Zap/1-1',...) +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $nodeletevdac - ('0','1') +# +# CHANGELOG: +# 50401-1002 - First build of script, Hangup function only +# 50404-1045 - Redirect basic function enabled +# 50406-1522 - Monitor basic function enabled +# 50407-1647 - Monitor and StopMonitor full functions enabled +# 50422-1120 - basic Originate function enabled +# 50428-1451 - basic SysCIDOriginate function enabled for checking voicemail +# 50502-1539 - basic RedirectName and RedirectNameVmail added +# 50503-1227 - added session_name checking for extra security +# 50523-1341 - added Conference call start/stop recording +# 50523-1421 - added OriginateName and OriginateNameVmail for local calls +# 50524-1602 - added RedirectToPark and RedirectFromPark +# 50531-1203 - added RedirecXtra for dual channel redirection +# 50630-1100 - script changed to not use HTTP login vars, user/pass instead +# 50804-1148 - Added RedirectVD for VICIDIAL blind redirection with logging +# 50815-1204 - Added NEXTAVAILABLE to RedirectXtra function +# 50903-2343 - Added HangupConfDial function to hangup in-dial channels in conf +# 50913-1057 - Added outbound_cid set if present to originate call +# 51020-1556 - Added agent_log_id framework for detailed agent activity logging +# 51118-1204 - Fixed Blind transfer bug from VICIDIAL when in manual dial mode +# 51129-1014 - Added ability to accept calls from other VICIDIAL servers +# 51129-1253 - Fixed Hangups of other agents channels in VICIDIAL AD +# 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 +# 60619-1158 - Added variable filters to close security holes for login form +# 60809-1544 - Added direct transfers to leave-3ways in consultative transfers +# 61004-1526 - Added parsing of volume control command and lookup or number +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61201-1115 - Added user to MonitorConf for recording_log +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70226-1251 - Added Mute/UnMute to conference volume control +# 70320-1502 - Added option to allow retry of leave-3way-call and debug logging +# 70322-1636 - Added sipsak display ability +# 80331-1433 - Added second transfer try for VICIDIAL transfers on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80424-0442 - Added non_latin lookup from system_settings +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80915-1755 - Rewrote leave-3way functions for external calling +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0203 - Added mysql error logging capability +# 90303-1144 - Fixed manual dial live hangup bug +# 90304-1334 - Added account and usegroupalias and user campaign/in-group specific variables +# 90305-1040 - Added agent_dialed_number and type for user_call_log feature +# 90508-0727 - Changed to PHP long tags +# 90511-1019 - Added restriction not allowing dialing into agent sessions from manual dial +# 90913-1410 - Fixed minor logging bug +# 90916-1830 - Added nodeletevdac +# 90924-1555 - Added am_message_exten_override for list_id option +# 91112-1110 - Added CALLOUTBOUND value to QM entry lookup +# 91205-2103 - Code cleanup +# 91213-1208 - Added queue_position to queue_log COMPLETE... records +# + +$version = '2.2.0-46'; +$build = '91213-1208'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=85; +$one_mysql_log=0; + +require("dbconnect.php"); + +### These are variable assignments for PHP globals off +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["queryCID"])) {$queryCID=$_GET["queryCID"];} + elseif (isset($_POST["queryCID"])) {$queryCID=$_POST["queryCID"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["extenName"])) {$extenName=$_GET["extenName"];} + elseif (isset($_POST["extenName"])) {$extenName=$_POST["extenName"];} +if (isset($_GET["parkedby"])) {$parkedby=$_GET["parkedby"];} + elseif (isset($_POST["parkedby"])) {$parkedby=$_POST["parkedby"];} +if (isset($_GET["extrachannel"])) {$extrachannel=$_GET["extrachannel"];} + elseif (isset($_POST["extrachannel"])) {$extrachannel=$_POST["extrachannel"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["secondS"])) {$secondS=$_GET["secondS"];} + elseif (isset($_POST["secondS"])) {$secondS=$_POST["secondS"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["call_server_ip"])) {$call_server_ip=$_GET["call_server_ip"];} + elseif (isset($_POST["call_server_ip"])) {$call_server_ip=$_POST["call_server_ip"];} +if (isset($_GET["CalLCID"])) {$CalLCID=$_GET["CalLCID"];} + elseif (isset($_POST["CalLCID"])) {$CalLCID=$_POST["CalLCID"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["FROMvdc"])) {$FROMvdc=$_GET["FROMvdc"];} + elseif (isset($_POST["FROMvdc"])) {$FROMvdc=$_POST["FROMvdc"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $user=ereg_replace("[^-_0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $secondS = ereg_replace("[^0-9]","",$secondS); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($ACTION)) {$ACTION="Originate";} +if (!isset($format)) {$format="alert";} +if (!isset($ext_priority)) {$ext_priority="1";} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$NOWnum = date("YmdHis"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02002',$user,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "Manager Send: "; + if ($ACTION=="Originate") {echo "Originate";} + if ($ACTION=="Redirect") {echo "Redirect";} + if ($ACTION=="RedirectName") {echo "RedirectName";} + if ($ACTION=="Hangup") {echo "Hangup";} + if ($ACTION=="Command") {echo "Command";} + if ($ACTION==99999) {echo "HELP";} + echo "\n"; + echo "\n"; + echo "\n"; + } + + + + + +###################### +# ACTION=SysCIDOriginate - insert Originate Manager statement allowing small CIDs for system calls +###################### +if ($ACTION=="SysCIDOriginate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<1) ) + { + echo "Exten $exten is not valid or queryCID $queryCID is not valid, Originate command not inserted\n"; + } + else + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02004',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate command sent for Exten $exten Channel $channel on $server_ip\n"; + } + } + + + +###################### +# ACTION=Originate, OriginateName, OriginateNameVmail - insert Originate Manager statement +###################### +if ($ACTION=="OriginateName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "extenName $extenName must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "\nOriginateName Action not sent\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02005',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "extenName $extenName must be set\n"; + echo "exten $exten must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "\nOriginateNameVmail Action not sent\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02006',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Originate"; + } + } + } + +if ($ACTION=="OriginateVDRelogin") + { + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $CIDdate = date("ymdHis"); + $DS='-'; + $SIPSAK_prefix = 'LIN-'; + print "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $queryCID = "$SIPSAK_prefix$campaign$DS$CIDdate"; + + } + $ACTION="Originate"; + } + +if ($ACTION=="Originate") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($ext_context)<1) or (strlen($queryCID)<10) ) + { + echo "ERROR Exten $exten is not valid or queryCID $queryCID is not valid, Originate command not inserted\n"; + } + else + { + if ( (eregi('MANUAL',$agent_dialed_type)) and ( (preg_match("/^\d860\d\d\d\d$/i",$exten)) or (preg_match("/^860\d\d\d\d$/i",$exten)) ) ) + { + echo "ERROR You are not allowed to dial into other agent sessions $exten\n"; + exit; + } + + if (strlen($outbound_cid)>1) + {$outCID = "\"$queryCID\" <$outbound_cid>";} + else + {$outCID = "$queryCID";} + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $outCID','$account','$variable','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02007',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Originate command sent for Exten $exten Channel $channel on $server_ip |$account|$variable|\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$exten','$channel','0','$outbound_cid','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + + +###################### +# ACTION=HangupConfDial - find the Local channel that is in the conference and needs to be hung up +###################### +if ($ACTION=="HangupConfDial") + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "conference $exten is not valid or ext_context $ext_context or queryCID $queryCID is not valid, Hangup command not inserted\n"; + } + else + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$exten$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02008',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02009',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $ACTION="Hangup"; + $queryCID = eregi_replace("^.","G",$queryCID); # GTvdcW... + } + } + } + + + +###################### +# ACTION=Hangup - insert Hangup Manager statement +###################### +if ($ACTION=="Hangup") + { + $stmt="UPDATE vicidial_live_agents SET external_hangup='0' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02010',$user,$server_ip,$session_name,$one_mysql_log);} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) ) + { + $channel_live=0; + echo "Channel $channel is not valid or queryCID $queryCID is not valid, Hangup command not inserted\n"; + } + else + { + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + +# $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# if ($row[0]==0) +# { +# $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; +# if ($format=='debug') {echo "\n";} +# $rslt=mysql_query($stmt, $link); +# $rowx=mysql_fetch_row($rslt); +# if ($rowx[0]==0) +# { +# $channel_live=0; +# echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted\n"; +# } +# } + if ( ($auto_dial_level > 0) and (strlen($CalLCID)>2) and (strlen($exten)>2) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where channel='$channel' and callerid='$CalLCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02011',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + echo "Call $CalLCID $channel is not live on $call_server_ip, Checking Live Channel...\n"; + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension LIKE \"%$exten\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02012',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $channel_live=0; + echo "Channel $channel is not live on $call_server_ip, Hangup command not inserted $rowx[0]\n$stmt\n"; + } + else + { + echo "$stmt\n"; + } + } + } + if ( ($auto_dial_level < 1) and (strlen($stage)>2) and (strlen($channel)>2) and (strlen($exten)>2) ) + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel' and extension NOT LIKE \"%$exten%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02083',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $channel_live=0; + echo "Channel $channel in use by another agent on $call_server_ip, Hangup command not inserted $rowx[0]\n$stmt\n"; + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|MDCHU|$user|$channel|$call_server_ip|$exten|\n"); + fclose($fp); + } + } + else + { + echo "$stmt\n"; + } + } + + if ($channel_live==1) + { + if ( (strlen($CalLCID)>15) and ($secondS > 0)) + { + $stmt="SELECT count(*) FROM vicidial_auto_calls where callerid='$CalLCID';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02013',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($format=='debug') {echo "\n";} + if ($rowx[0] > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02014',$user,$server_ip,$session_name,$one_mysql_log);} + if ($format=='debug') {echo "\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='CONNECT';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02015',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cn_ct = mysql_num_rows($rslt); + if ($VAC_cn_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_connect = $row[0]; + } + if ($format=='debug') {echo "\n";} + if ($caller_connect > 0) + { + $CLqueue_position='1'; + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where callerid='$CalLCID' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02016',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + if ($format=='debug') {echo "\n";} + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$CalLCID' and verb='COMPLETECALLER' and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02017',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + if ($format=='debug') {echo "\n";} + + if ($caller_complete < 1) + { + $time_id=0; + $stmt="SELECT time_id from queue_log where call_id='$CalLCID' and verb IN('ENTERQUEUE','CALLOUTBOUND') and queue='$CLcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02018',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_eq_ct = mysql_num_rows($rslt); + if ($VAC_eq_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + } + $StarTtime = date("U"); + if ($time_id > 100000) + {$secondS = ($StarTtime - $time_id);} + + if ($format=='debug') {echo "\n";} + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$CalLCID',queue='$CLcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$secondS',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'02019',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + if ($format=='debug') {echo "\n";} + } + } + } + } + } + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Hangup','$queryCID','Channel: $channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02020',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Hangup command sent for Channel $channel on $call_server_ip\n"; + } + } + } + + + +###################### +# ACTION=Redirect, RedirectName, RedirectNameVmail, RedirectToPark, RedirectFromPark, RedirectVD, RedirectXtra, RedirectXtraCX +# - insert Redirect Manager statement using extensions name +###################### +if ($ACTION=="RedirectVD") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($campaign)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($uniqueid)<2) or (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "exten $exten must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "auto_dial_level $auto_dial_level must be set\n"; + echo "campaign $campaign must be set\n"; + echo "uniqueid $uniqueid must be set\n"; + echo "lead_id $lead_id must be set\n"; + echo "\nRedirectVD Action not sent\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02021',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec=(queue_seconds + $secondS),status='XFER' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02022',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$secondS',status='XFER' where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02023',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($nodeletevdac < 1) + { + $stmt = "DELETE from vicidial_auto_calls where uniqueid='$uniqueid';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02024',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT am_message_exten_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02085',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $am_message_exten_override = $row[0]; + if (strlen($am_message_exten_override) > 0) {$exten = "$am_message_exten_override";} + } + } + } + } + + } + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectToPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($parkedby)<1) ) + { + $channel_live=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "exten $exten must be set\n"; + echo "extenName $extenName must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "parkedby $parkedby must be set\n"; + echo "\nRedirectToPark Action not sent\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "INSERT INTO parked_channels values('$channel','$server_ip','$CalLCID','$extenName','$parkedby','$NOW_TIME');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02025',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + + # $fp = fopen ("./vicidial_debug.txt", "a"); + # fwrite ($fp, "$NOW_TIME|MS_LOG_0|$queryCID|$stmt|\n"); + # fclose($fp); + } + } + +if ($ACTION=="RedirectFromPark") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "exten $exten must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "\nRedirectFromPark Action not sent\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt = "DELETE FROM parked_channels where server_ip='$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02026',$user,$server_ip,$session_name,$one_mysql_log);} + $ACTION="Redirect"; + } + } + +if ($ACTION=="RedirectName") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "extenName $extenName must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "\nRedirectName Action not sent\n"; + } + else + { + $stmt="SELECT dialplan_number FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02027',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + $ACTION="Redirect"; + } + } + } + +if ($ACTION=="RedirectNameVmail") + { + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($extenName)<1) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "extenName $extenName must be set\n"; + echo "exten $exten must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "\nRedirectNameVmail Action not sent\n"; + } + else + { + $stmt="SELECT voicemail_id FROM phones where server_ip = '$server_ip' and extension='$extenName';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02028',$user,$server_ip,$session_name,$one_mysql_log);} + $name_count = mysql_num_rows($rslt); + if ($name_count>0) + { + $row=mysql_fetch_row($rslt); + $exten = "$exten$row[0]"; + $ACTION="Redirect"; + } + } + } + + + + + + +if ($ACTION=="RedirectXtraCXNeW") + { + $DBout=''; + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "ExtraChannel $extrachannel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "exten $exten must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "\nRedirect Action not sent\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmtA="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'02029',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmtB="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtB,'02030',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtC="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtC, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtC,'02031',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + if ( (ereg("^8300",$extension)) and ($protocol == 'Local') ) + { + $extension = "$extension$user"; + } + + $stmtD="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtD, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtD,'02032',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtE="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtE, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtE,'02033',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR24$NOWnum"; + $stmtF="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtF, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtF,'02034',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmtG="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtG, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtG,'02035',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmtH = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtH, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtH,'02036',$user,$server_ip,$session_name,$one_mysql_log);} + } + + // $fp = fopen ("./vicidial_debug_3way.txt", "a"); + // fwrite ($fp, "$NOW_TIME|$filename|\n|$stmtA|\n|$stmtB|\n|$stmtC|\n|$stmtD|\n|$stmtE|\n|$stmtF|\n|$stmtG|\n|$stmtH|\n\n"); + // fclose($fp); + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtG|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference on $server_ip, Redirect command not inserted\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Cannot find empty conference on $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02037',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02038',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Channel $channel is not live on $call_server_ip, Redirect command not inserted\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is not live on $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02039',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02040',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Channel $channel is not live on $server_ip, Redirect command not inserted\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is not live on $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + $stmt="SELECT count(*) FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02041',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $channel_liveY=0; + echo "No Local agent to send call to, Redirect command not inserted\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "No Local agent to send call to";} + } + else + { + $stmt="SELECT server_ip,conf_exten,user FROM vicidial_live_agents where lead_id='$lead_id' and user!='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02042',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $dest_server_ip = $rowx[0]; + $dest_session_id = $rowx[1]; + $dest_user = $rowx[2]; + $S='*'; + + $D_s_ip = explode('.', $dest_server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$dest_session_id$S$lead_id$S$dest_user$S$phone_code$S$phone_number$S$campaign$S"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02043',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','$queryCID','Channel: $extrachannel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02044',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtraCX command sent for Channel $channel on $call_server_ip and \nHungup $extrachannel on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel on $call_server_ip, Hungup $extrachannel on $server_ip";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Changed to Redirect: $channel on $server_ip";} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDCXC|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + + + + + + + + + + +if ($ACTION=="RedirectXtraNeW") + { + if ($channel=="$extrachannel") + {$ACTION="Redirect";} + else + { + $row=''; $rowx=''; + $channel_liveX=1; + $channel_liveY=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) or (strlen($session_id)<3) or ( ( (strlen($extrachannel)<3) or (strlen($exten)<1) ) and (!ereg("NEXTAVAILABLE",$exten)) ) ) + { + $channel_liveX=0; + $channel_liveY=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "ExtraChannel $extrachannel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "exten $exten must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "session_id $session_id must be set\n"; + echo "\nRedirect Action not sent\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$$channel|$extrachannel|$queryCID|$exten|$ext_context|ext_priority|$session_id|\n"); + fclose($fp); + } + } + } + else + { + if (ereg("NEXTAVAILABLE",$exten)) + { + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02045',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 1) + { + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension$NOWnum', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) and conf_exten != '$session_id' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02046',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and extension='$protocol/$extension$NOWnum' and conf_exten != '$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02047',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $exten = $row[0]; + + $stmt="UPDATE vicidial_conferences set extension='$protocol/$extension' where server_ip='$server_ip' and conf_exten='$exten' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02048',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_conferences set leave_3way='1', leave_3way_datetime='$NOW_TIME', extension='3WAY_$user' where server_ip='$server_ip' and conf_exten='$session_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02049',$user,$server_ip,$session_name,$one_mysql_log);} + + $queryCID = "CXAR23$NOWnum"; + $stmtB="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $agentchannel','Context: $ext_context','Exten: $exten','Priority: 1','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmtB, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02050',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_live_agents set conf_exten='$exten' where server_ip='$server_ip' and user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02051',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($auto_dial_level < 1) + { + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and callerid LIKE \"M%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02052',$user,$server_ip,$session_name,$one_mysql_log);} + } + + echo "NeWSessioN|$exten|\n"; + echo "|$stmtB|\n"; + + exit; + } + else + { + $channel_liveX=0; + echo "Cannot find empty vicidial_conference on $server_ip, Redirect command not inserted\n|$stmt|"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "Cannot find empty conference on $server_ip";} + } + } + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + + $stmt="SELECT count(*) FROM live_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02053',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$call_server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02054',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveX=0; + echo "Channel $channel is not live on $call_server_ip, Redirect command not inserted\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is not live on $call_server_ip";} + } + } + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02055',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ( ($row[0]==0) && (!ereg("SECOND",$filename)) ) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$extrachannel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02056',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_liveY=0; + echo "Channel $channel is not live on $server_ip, Redirect command not inserted\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel is not live on $server_ip";} + } + } + if ( ($channel_liveX==1) && ($channel_liveY==1) ) + { + if ( ($server_ip=="$call_server_ip") or (strlen($call_server_ip)<7) ) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','ExtraChannel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02057',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra command sent for Channel $channel and \nExtraChannel $extrachannel\n to $exten on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel and $extrachannel to $exten on $server_ip";} + } + else + { + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $dest_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$exten"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$call_server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $dest_dialstring','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02058',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $extrachannel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02059',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "RedirectXtra command sent for Channel $channel on $call_server_ip and \nExtraChannel $extrachannel\n to $exten on $server_ip\n"; + if (ereg("SECOND|FIRST|DEBUG",$filename)) {$DBout .= "$channel/$call_server_ip and $extrachannel/$server_ip to $exten";} + } + } + else + { + if ($channel_liveX==1) + {$ACTION="Redirect"; $server_ip = $call_server_ip;} + if ($channel_liveY==1) + {$ACTION="Redirect"; $channel=$extrachannel;} + } + + if (ereg("SECOND|FIRST|DEBUG",$filename)) + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|RDX|$filename|$user|$campaign|$DBout|\n"); + fclose($fp); + } + } + } + } + } + + + + + +if ($ACTION=="Redirect") + { + ### for manual dial VICIDIAL calls send the second attempt to transfer the call + if ($stage=="2NDXfeR") + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $hangup_channel_prefix = "$local_DEF$session_id$local_AMP$ext_context"; + + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02060',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row > 0) + { + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$hangup_channel_prefix%\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02061',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $channel=$rowx[0]; + $channel = eregi_replace("1$","2",$channel); + $queryCID = eregi_replace("^.","Q",$queryCID); + } + } + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($exten)<1) or (strlen($ext_context)<1) or (strlen($ext_priority)<1) ) + { + $channel_live=0; + echo "One of these variables is not valid:\n"; + echo "Channel $channel must be greater than 2 characters\n"; + echo "queryCID $queryCID must be greater than 14 characters\n"; + echo "exten $exten must be set\n"; + echo "ext_context $ext_context must be set\n"; + echo "ext_priority $ext_priority must be set\n"; + echo "\nRedirect Action not sent\n"; + } + else + { + if (strlen($call_server_ip)>6) {$server_ip = $call_server_ip;} + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02062',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02063',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Channel $channel is not live on $server_ip, Redirect command not inserted\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Redirect','$queryCID','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','CallerID: $queryCID','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02064',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "Redirect command sent for Channel $channel on $server_ip\n"; + } + } + } + + + +###################### +# ACTION=Monitor or Stop Monitor - insert Monitor/StopMonitor Manager statement to start recording on a channel +###################### +if ( ($ACTION=="Monitor") || ($ACTION=="StopMonitor") ) + { + if ($ACTION=="StopMonitor") + {$SQLfile = "";} + else + {$SQLfile = "File: $filename";} + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($channel)<3) or (strlen($queryCID)<15) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Channel $channel is not valid or queryCID $queryCID is not valid or filename: $filename is not valid, $ACTION command not inserted\n"; + } + else + { + $stmt="SELECT count(*) FROM live_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02065',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0]==0) + { + $stmt="SELECT count(*) FROM live_sip_channels where server_ip = '$server_ip' and channel='$channel';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02066',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + if ($rowx[0]==0) + { + $channel_live=0; + echo "Channel $channel is not live on $server_ip, $ACTION command not inserted\n"; + } + } + if ($channel_live==1) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','$ACTION','$queryCID','Channel: $channel','$SQLfile','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02067',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($ACTION=="Monitor") + { + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02068',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + } + else + { + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02071',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "$ACTION command sent for Channel $channel on $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n"; + } + } + } + + + + + + +###################### +# ACTION=MonitorConf or StopMonitorConf - insert Monitor/StopMonitor Manager statement to start recording on a conference +###################### +if ( ($ACTION=="MonitorConf") || ($ACTION=="StopMonitorConf") ) + { + $row=''; $rowx=''; + $channel_live=1; + $uniqueidSQL=''; + + if ( (strlen($exten)<3) or (strlen($channel)<4) or (strlen($filename)<8) ) + { + $channel_live=0; + echo "Channel $channel is not valid or exten $exten is not valid or filename: $filename is not valid, $ACTION command not inserted\n"; + } + else + { + $VDvicidial_id=''; + + if ($ACTION=="MonitorConf") + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$filename','Channel: $channel','Context: $ext_context','Exten: $exten','Priority: $ext_priority','Callerid: $filename','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02072',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','$server_ip','$exten','$NOW_TIME','$StarTtime','$filename','$lead_id','$user')"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02073',$user,$server_ip,$session_name,$one_mysql_log);} + $RLaffected_rows = mysql_affected_rows($link); + if ($RLaffected_rows > 0) + { + $recording_id = mysql_insert_id($link); + } + + if ($FROMvdc=='YES') + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the vicidial ID in the vicidial_closer_log table + $stmt="SELECT closecallid FROM vicidial_closer_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + } + else + { + ##### look for the vicidial ID in the vicidial_log table + $stmt="SELECT uniqueid FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDvicidial_id = $row[0]; + + $stmt = "UPDATE recording_log SET vicidial_id='$VDvicidial_id' where recording_id='$recording_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02076',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + + ##### StopMonitorConf steps ##### + else + { + if ($uniqueid=='IN') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ### find the value to put in the vicidial_id field if this was an inbound call + $stmt="SELECT closecallid from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02077',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueidSQL = ",vicidial_id='$row[0]'"; + } + } + else + { + if (strlen($uniqueid) > 8) + {$uniqueidSQL = ",vicidial_id='$uniqueid'";} + } + + $stmt="SELECT recording_id,start_epoch FROM recording_log where filename='$filename'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02078',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $rec_count = mysql_num_rows($rslt); + if ($rec_count>0) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt = "UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $uniqueidSQL where filename='$filename'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02079',$user,$server_ip,$session_name,$one_mysql_log);} + } + + # find and hang up all recordings going on in this conference # and extension = '$exten' + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$channel%\" and channel LIKE \"%,1\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02080',$user,$server_ip,$session_name,$one_mysql_log);} + # $rec_count = intval(mysql_num_rows($rslt) / 2); + $rec_count = mysql_num_rows($rslt); + $h=0; + while ($rec_count>$h) + { + $rowx=mysql_fetch_row($rslt); + $HUchannel[$h] = $rowx[0]; + $h++; + } + $i=0; + while ($h>$i) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$i','Channel: $HUchannel[$i]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02081',$user,$server_ip,$session_name,$one_mysql_log);} + $i++; + } + } + echo "$ACTION command sent for Channel $channel on $server_ip\nFilename: $filename\nRecorDing_ID: $recording_id\n RECORDING WILL LAST UP TO 60 MINUTES\n"; + } + } + + + + + +###################### +# ACTION=VolumeControl - raise or lower the volume of a meetme participant +###################### +if ($ACTION=="VolumeControl") + { + if ( (strlen($exten)<1) or (strlen($channel)<1) or (strlen($stage)<1) or (strlen($queryCID)<1) ) + { + echo "Conference $exten, Stage $stage is not valid or queryCID $queryCID is not valid, Originate command not inserted\n"; + } + else + { + $participant_number='XXYYXXYYXXYYXX'; + if (eregi('UP',$stage)) {$vol_prefix='4';} + if (eregi('DOWN',$stage)) {$vol_prefix='3';} + if (eregi('UNMUTE',$stage)) {$vol_prefix='2';} + if (eregi('MUTING',$stage)) {$vol_prefix='1';} + $local_DEF = 'Local/'; + $local_AMP = '@'; + $volume_local_channel = "$local_DEF$participant_number$vol_prefix$exten$local_AMP$ext_context"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $volume_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'02082',$user,$server_ip,$session_name,$one_mysql_log);} + echo "Volume command sent for Conference $exten, Stage $stage Channel $channel on $server_ip\n"; + } + } + + + + + + + + + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +if ($format=='debug') {echo "\n";} +if ($format=='debug') {echo "\n\n\n";} + +exit; + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); + $errno=''; $error=''; + if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|manager_send|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } + $one_mysql_log=0; + return $errno; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/park_calls_display.php b/agc_2-X/branches/agc_2.2.0/www/agc/park_calls_display.php new file mode 100644 index 00000000..55e975df --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/park_calls_display.php @@ -0,0 +1,147 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to send the details on the parked calls on the server +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $exten - ('cc101','testphone','49-1','1234','913125551212',...) +# - $protocol - ('SIP','Zap','IAX2',...) +# +# +# changes +# 50524-1515 - First build of script +# 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 +# 60619-1205 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["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 +if (!isset($format)) {$format="text";} +if (!isset($park_limit)) {$park_limit="1000";} + +$version = '0.0.4'; +$build = '60619-1205'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0) ) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Parked Calls Display"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($exten)<1) or (strlen($protocol)<3) ) + { + $channel_live=0; + echo "Exten $exten is not valid or protocol $protocol is not valid\n"; + exit; + } + else + { + ##### print parked calls from the parked_channels table + $stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time from parked_channels where server_ip = '$server_ip' order by parked_time limit $park_limit;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $park_calls_count = mysql_num_rows($rslt); + echo "$park_calls_count\n"; + $loop_count=0; + while ($park_calls_count>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0] ~$row[2] ~$row[3] ~$row[4] ~$row[5]|"; + } + echo "\n"; + } + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/timeclock.php b/agc_2-X/branches/agc_2.2.0/www/agc/timeclock.php new file mode 100644 index 00000000..fc0e9afc --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/timeclock.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 80523-0134 - First Build +# 80524-0225 - Changed event_date to DATETIME, added timestamp field and tcid_link field +# 80525-2351 - Added an audit log that is not to be editable +# 80602-0641 - Fixed status update bug +# 90508-0727 - Changed to PHP long tags +# + +$version = '2.2.0-5'; +$build = '90508-0727'; + +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); + $last_action_date = $NOW_TIME; + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('timeclock.php','',$agcPAGE); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["commit"])) {$commit=$_GET["commit"];} + elseif (isset($_POST["commit"])) {$commit=$_POST["commit"];} +if (isset($_GET["referrer"])) {$referrer=$_GET["referrer"];} + elseif (isset($_POST["referrer"])) {$referrer=$_POST["referrer"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +### 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); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $stage=ereg_replace("[^0-9a-zA-Z]","",$stage); + $commit=ereg_replace("[^0-9a-zA-Z]","",$commit); + $referrer=ereg_replace("[^0-9a-zA-Z]","",$referrer); + +require("dbconnect.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,admin_home_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $welcomeURL = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +if ( ($stage == 'login') or ($stage == 'logout') ) + { + ### see if user/pass exist for this user in vicidial_users table + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $valid_user=$row[0]; + print "\n"; + + if ($valid_user < 1) + { + ### NOT A VALID USER/PASS + $VDdisplayMESSAGE = "The user and password you entered are not active in the system
    Please try again:"; + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

    $VDdisplayMESSAGE

    "; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Timeclock
     
    User Login:
    User Password:
     

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + else + { + ### VALID USER/PASS, CONTINUE + + ### get name and group for this user + $stmt="SELECT full_name,user_group from vicidial_users where user='$user' and pass='$pass';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + print "\n"; + + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + + print "\n"; + } + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + if ( ($last_action_sec < 30) and ($status != 'START') ) + { + ### You cannot log in or out within 30 seconds of your last login/logout + $VDdisplayMESSAGE = "You cannot log in or out within 30 seconds of your last login or logout"; + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

    $VDdisplayMESSAGE

    "; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Timeclock
     
    User Login:
    User Password:
     

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + if ($commit == 'YES') + { + if ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage=='login') ) + { + $VDdisplayMESSAGE = "You have now logged-in"; + $LOGtimeMESSAGE = "You logged in at $NOW_TIME"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ($status=='LOGIN') and ($stage=='logout') ) + { + $VDdisplayMESSAGE = "You have now logged-out"; + $LOGtimeMESSAGE = "You logged out at $NOW_TIME
    Amount of time you were logged-in: $totTIME_HMS"; + + ### Add a record to the timeclock log + $stmt="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "\n"; + + ### Update last login record in the timeclock log + $stmt="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update the user's timeclock status record + $stmt="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Add a record to the timeclock audit log + $stmt="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + + ### Update last login record in the timeclock audit log + $stmt="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "\n"; + } + + if ( ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage=='logout') ) or ( ($status=='LOGIN') and ($stage=='login') ) ) + {echo "ERROR: timeclock log entry already made: $status|$stage"; exit;} + + if ($referrer=='agent') + {$BACKlink = "BACK to Agent Login Screen";} + if ($referrer=='admin') + {$BACKlink = "BACK to Administration";} + if ($referrer=='welcome') + {$BACKlink = "BACK to Welcome Screen";} + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "

    $VDdisplayMESSAGE

    "; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Timeclock
     
    $LOGtimeMESSAGE
     
    $BACKlink
     

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + + if ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) + { + $VDdisplayMESSAGE = "Time since you were last logged-in: $totTIME_HMS"; + $log_action = 'login'; + $button_name = 'LOGIN'; + $LOGtimeMESSAGE = "You last logged-out at: $last_action_date

    Click LOGIN below to log-in"; + } + if ($status=='LOGIN') + { + $VDdisplayMESSAGE = "Amount of time you have been logged-in: $totTIME_HMS"; + $log_action = 'logout'; + $button_name = 'LOGOUT'; + $LOGtimeMESSAGE = "You logged-in at: $last_action_date
    Amount of time you have been logged-in: $totTIME_HMS

    Click LOGOUT below to log-out"; + } + + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

    $VDdisplayMESSAGE

    "; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Timeclock
     
    $LOGtimeMESSAGE
     
     

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + + exit; + } + + + + } + +else + { + echo"\n"; + echo"Agent Timeclock\n"; + echo"\n"; + echo"\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

    $VDdisplayMESSAGE

    "; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Timeclock
     
    User Login:
    User Password:
     

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/vdc_call_url_test.php b/agc_2-X/branches/agc_2.2.0/www/agc/vdc_call_url_test.php new file mode 100644 index 00000000..6b801be1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/vdc_call_url_test.php @@ -0,0 +1,292 @@ + LICENSE: AGPLv2 +# +# This script is designed display and log the start_call_url and dispo_call_url +# queries if activated +# +# CHANGELOG: +# 100103-1317 - First build of script +# + +$version = '2.2.0-1'; +$build = '100103-1317'; + +require("dbconnect.php"); + +$query_string = getenv("QUERY_STRING"); + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} +if (isset($_GET["talk_time"])) {$talk_time=$_GET["talk_time"];} + elseif (isset($_POST["talk_time"])) {$talk_time=$_POST["talk_time"];} +if (isset($_GET["talk_time_min"])) {$talk_time_min=$_GET["talk_time_min"];} + elseif (isset($_POST["talk_time_min"])) {$talk_time_min=$_POST["talk_time_min"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +$output = ''; +$output .= "$lead_id|"; +$output .= "$vendor_id|"; +$output .= "$vendor_lead_code|"; +$output .= "$list_id|"; +$output .= "$gmt_offset_now|"; +$output .= "$phone_code|"; +$output .= "$phone_number|"; +$output .= "$title|"; +$output .= "$first_name|"; +$output .= "$middle_initial|"; +$output .= "$last_name|"; +$output .= "$address1|"; +$output .= "$address2|"; +$output .= "$address3|"; +$output .= "$city|"; +$output .= "$state|"; +$output .= "$province|"; +$output .= "$postal_code|"; +$output .= "$country_code|"; +$output .= "$gender|"; +$output .= "$date_of_birth|"; +$output .= "$alt_phone|"; +$output .= "$email|"; +$output .= "$security_phrase|"; +$output .= "$comments|"; +$output .= "$user|"; +$output .= "$pass|"; +$output .= "$campaign|"; +$output .= "$phone_login|"; +$output .= "$original_phone_login|"; +$output .= "$phone_pass|"; +$output .= "$fronter|"; +$output .= "$closer|"; +$output .= "$group|"; +$output .= "$channel_group|"; +$output .= "$SQLdate|"; +$output .= "$epoch|"; +$output .= "$uniqueid|"; +$output .= "$customer_zap_channel|"; +$output .= "$customer_server_ip|"; +$output .= "$server_ip|"; +$output .= "$SIPexten|"; +$output .= "$session_id|"; +$output .= "$phone|"; +$output .= "$parked_by|"; +$output .= "$dispo|"; +$output .= "$dialed_number|"; +$output .= "$dialed_label|"; +$output .= "$source_id|"; +$output .= "$rank|"; +$output .= "$owner|"; +$output .= "$camp_script|"; +$output .= "$in_script|"; +$output .= "$script_width|"; +$output .= "$script_height|"; +$output .= "$fullname|"; +$output .= "$recording_filename|"; +$output .= "$recording_id|"; +$output .= "$user_custom_one|"; +$output .= "$user_custom_two|"; +$output .= "$user_custom_three|"; +$output .= "$user_custom_four|"; +$output .= "$user_custom_five|"; +$output .= "$talk_time|"; +$output .= "$talk_time_min|"; +$output .= "$agent_log_id|"; + +echo "$output\n$query_string\n"; + +$fp = fopen ("./call_url_log.txt", "a"); +fwrite ($fp, "$output|$query_string\n"); +fclose($fp); + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/vdc_db_query.php b/agc_2-X/branches/agc_2.2.0/www/agc/vdc_db_query.php new file mode 100644 index 00000000..429126b2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/vdc_db_query.php @@ -0,0 +1,6537 @@ + LICENSE: AGPLv2 +# +# This script is designed to exchange information between vicidial.php and the database server for various actions +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $ACTION - ('regCLOSER','regTERRITORY','manDiaLnextCALL','manDiaLskip','manDiaLonly','manDiaLlookCALL','manDiaLlogCALL','userLOGout','updateDISPO','updateLEAD','VDADpause','VDADready','VDADcheckINCOMING','UpdatEFavoritEs','CalLBacKLisT','CalLBacKCounT','PauseCodeSubmit','LogiNCamPaigns','alt_phone_change','AlertControl','AGENTSview','CALLSINQUEUEview','CALLSINQUEUEgrab','DiaLableLeaDsCounT','UpdateFields') +# - $stage - ('start','finish','lookup','new') +# - $closer_choice - ('CL_TESTCAMP_L CL_OUT123_L -') +# - $conf_exten - ('8600011',...) +# - $exten - ('123test',...) +# - $ext_context - ('default','demo',...) +# - $ext_priority - ('1','2',...) +# - $campaign - ('testcamp',...) +# - $dial_timeout - ('60','26',...) +# - $dial_prefix - ('9','8',...) +# - $campaign_cid - ('3125551212','0000000000',...) +# - $MDnextCID - ('M06301413000000002',...) +# - $uniqueid - ('1120232758.2406800',...) +# - $lead_id - ('36524',...) +# - $list_id - ('101','123456',...) +# - $length_in_sec - ('12',...) +# - $phone_code - ('1',...) +# - $phone_number - ('3125551212',...) +# - $channel - ('Zap/12-1',...) +# - $start_epoch - ('1120236911',...) +# - $vendor_lead_code - ('1234test',...) +# - $title - ('Mr.',...) +# - $first_name - ('Bob',...) +# - $middle_initial - ('L',...) +# - $last_name - ('Wilson',...) +# - $address1 - ('1324 Main St.',...) +# - $address2 - ('Apt. 12',...) +# - $address3 - ('co Robert Wilson',...) +# - $city - ('Chicago',...) +# - $state - ('IL',...) +# - $province - ('NA',...) +# - $postal_code - ('60054',...) +# - $country_code - ('USA',...) +# - $gender - ('M',...) +# - $date_of_birth - ('1970-01-01',...) +# - $alt_phone - ('3125551213',...) +# - $email - ('bob@bob.com',...) +# - $security_phrase - ('Hello',...) +# - $comments - ('Good Customer',...) +# - $auto_dial_level - ('0','1','1.2',...) +# - $VDstop_rec_after_each_call - ('0','1') +# - $conf_silent_prefix - ('7','8','5',...) +# - $extension - ('123','user123','25-1',...) +# - $protocol - ('Zap','SIP','IAX2',...) +# - $user_abb - ('1234','6666',...) +# - $preview - ('YES','NO',...) +# - $called_count - ('0','1','2',...) +# - $agent_log_id - ('123456',...) +# - $agent_log - ('NO',...) +# - $favorites_list - (",'cc160','cc100'",...) +# - $CallBackDatETimE - ('2006-04-21 14:30:00',...) +# - $recipient - ('ANYONE,'USERONLY') +# - $callback_id - ('12345','12346',...) +# - $use_internal_dnc - ('Y','N') +# - $use_campaign_dnc - ('Y','N') +# - $omit_phone_code - ('Y','N') +# - $no_delete_sessions - ('0','1') +# - $LogouTKicKAlL - ('0','1'); +# - $closer_blended = ('0','1'); +# - $inOUT = ('IN','OUT'); +# - $manual_dial_filter = ('NONE','CAMPLISTS','DNC','CAMPLISTS_DNC') +# - $agentchannel = ('Zap/1-1','SIP/testing-6ry4i3',...) +# - $conf_dialed = ('0','1') +# - $leaving_threeway = ('0','1') +# - $blind_transfer = ('0','1') +# - $usegroupalias - ('0','1') +# - $account - ('DEFAULT',...) +# - $agent_dialed_number - ('1','') +# - $agent_dialed_type - ('MANUAL_OVERRIDE','MANUAL_DIALNOW','MANUAL_PREVIEW',...) +# - $wrapup - ('WRAPUP','') +# - $vtiger_callback_id - ('16534'...) +# - $nodeletevdac - ('0','1') +# - $agent_territories - ('ABC001','ABC002'...) +# +# CHANGELOG: +# 50629-1044 - First build of script +# 50630-1422 - Added manual dial action and MD channel lookup +# 50701-1451 - Added dial log for start and end of vicidial calls +# 50705-1239 - Added call disposition update +# 50804-1627 - Fixed updateDispo to update vicidial_log entry +# 50816-1605 - Added VDADpause/ready for auto dialing +# 50816-1811 - Added basic autodial call pickup functions +# 50817-1005 - Altered logging functions to accomodate auto_dialing +# 50818-1305 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1411 - Added hangup of agent phone after Logout +# 50901-1315 - Fixed CLOSER IN-GROUP Web Form bug +# 50902-1507 - Fixed CLOSER log length_in_sec bug +# 50902-1730 - Added functions for manual preview dialing and revert +# 50913-1214 - Added agent random update to leadupdate +# 51020-1421 - Added agent_log_id framework for detailed agent activity logging +# 51021-1717 - Allows for multi-line comments (changes \n to !N in database) +# 51111-1046 - Added vicidial_agent_log lead_id earlier for manual dial +# 51121-1445 - Altered echo statements for several small PHP speed optimizations +# 51122-1328 - Fixed UserLogout issue not removing conference reservation +# 51129-1012 - Added ability to accept calls from other VICIDIAL servers +# 51129-1729 - Changed manual dial to use the '/n' flag for calls +# 51221-1154 - Added SCRIPT id lookup and sending to vicidial.php for display +# 60105-1059 - Added Updating of astguiclient favorites in the DB +# 60208-1617 - Added dtmf buttons output per call +# 60213-1521 - Added closer_campaigns update to vicidial_users +# 60215-1036 - Added Callback date-time entry into vicidial_callbacks table +# 60413-1541 - Added USERONLY Callback listings output - CalLBacKLisT +# - Added USERONLY Callback count output - CalLBacKCounT +# 60414-1140 - Added Callback lead lookup for manual dialing +# 60419-1517 - After CALLBK is sent to agent, update callback record to INACTIVE +# 60421-1419 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60427-1236 - Fixed closer_choice error for CLOSER campaigns +# 60609-1148 - Added ability to check for manual dial numbers in DNC +# 60619-1117 - Added variable filters to close security holes for login form +# 60623-1414 - Fixed variable filter for phone_code and fixed manual dial logic +# 60821-1600 - Added ability to omit the phone code on vicidial lead dialing +# 60821-1647 - Added ability to not delete sessions at logout +# 60906-1124 - Added lookup and sending of callback data for CALLBK calls +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70115-1733 - Added alt_dial functionality in auto-dial modes +# 70118-1501 - Added user_group to vicidial_log,_agent_log,_closer_log,_callbacks +# 70123-1357 - Fixed bug that would not update vicidial_closer_log status to dispo +# 70202-1438 - Added pause code submit function +# 70203-0930 - Added dialed_number to lead info output +# 70203-1030 - Added dialed_label to lead info output +# 70206-1126 - Added INBOUND status for inbound/closer calls in vicidial_live_agents +# 70212-1253 - Fixed small issue with CXFER +# 70213-1431 - Added QueueMetrics PAUSE/UNPAUSE/AGENTLOGIN/AGENTLOGOFF actions +# 70214-1231 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1210 - Added queuemetrics COMPLETEAGENT action +# 70216-1051 - Fixed double call complete queuemetrics logging +# 70222-1616 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70309-1034 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70319-1544 - Added agent disable update customer data function +# 70322-1545 - Added sipsak display ability +# 70413-1253 - Fixed bug for outbound call time in CLOSER-type blended campaigns +# 70424-1100 - Fixed bug for fronter/closer calls that would delete vdac records +# 70802-1729 - Fixed bugs with pause_sec and wait_sec under certain call handling +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71029-1855 - removed campaign_id naming restrictions for CLOSER-type campaigns +# 71030-2047 - added hopper priority for auto alt dial entries +# 71116-1011 - added calls_today count updating of the vicidial_live_agents upon INCALL +# 71120-1520 - added LogiNCamPaigns to show only allowed campaigns for agents upon login +# 71125-1751 - Added inbound-group default inbound group sending to vicidial.php +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80116-1032 - added user_closer_log logging in regCLOSER +# 80125-1213 - fixed vicidial_log bug when call is from closer +# 80317-2051 - Added in-group recording settings +# 80402-0121 - Fixes for manual dial transfers on some systems, removed /n persist flag +# 80424-0442 - Added non_latin lookup from system_settings +# 80430-1006 - Added term_reason for vicidial_log and vicidial_closer_log +# 80430-1957 - Changed to leave lead_id in vicidial_live_agents record until after dispo +# 80630-2153 - Added queue_log logging for Manual dial calls +# 80703-0139 - Added alter customer phone permissions +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80713-0624 - Added vicidial_list.last_local_call_time field +# 80717-1604 - Modified logging function to use inOUT to determine call direction and place to log +# 80719-1147 - Changed recording conf prefix +# 80815-1019 - Added manual dial list restriction option +# 80831-0545 - Added extended alt dial number info display support +# 80909-1710 - Added support for campaign-specific DNC lists +# 81010-1048 - Added support for hangup of all channels except for agent channel after attempting a 3way call +# 81011-1404 - Fixed bugs in leave3way when transferring a manual dial call +# 81020-1459 - Fixed bugs in queue_log logging +# 81104-0134 - Added mysql error logging capability +# 81104-1617 - Added multi-retry for some vicidial_live_agents table MySQL queries +# 81106-0410 - Added force_timeclock_login option to LoginCampaigns function +# 81107-0424 - Added carryover of script and presets for in-group calls from campaign settings +# 81110-0058 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1512 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81111-1630 - Added another hangup fix for non-hangup +# 81114-0126 - More vicidial_agent_log bug fixes +# 81119-1809 - webform backslash fix +# 81124-2212 - Fixes blind transfer bug +# 81126-1522 - Fixed callback comments bug +# 81211-0420 - Fixed Manual dial agent_log bug +# 90120-1718 - Added external pause and dial option +# 90126-1759 - Fixed QM section that wasn't qualified and added agent alert option +# 90128-0231 - Added vendor_lead_code to manual dial lead lookup +# 90304-1335 - Added support for group aliases and agent-specific variables for campaigns and in-groups +# 90305-1041 - Added agent_dialed_number and type for user_call_log feature +# 90307-1735 - Added Shift enforcement and manager override features +# 90320-0306 - Fixed agent log bug when using wrapup time +# 90323-2013 - Added function to put phone numbers in the DNC lists if they were set to status type dnc=Y +# 90324-1316 - Added functions to log calls to Vtiger accounts and update status to siccode +# 90327-1348 - Changed Vtiger status populate to use status name +# 90408-0021 - Added API vtiger specific callback activity record ability +# 90508-0726 - Changed to PHP long tags +# 90511-0923 - Added agentonly_callback_campaign_lock option +# 90519-0634 - Fixed manual dial status and logging bug +# 90611-1423 - Fixed agent log and vicidial log bugs +# 90705-2008 - Added AGENTSview function +# 90706-1431 - Added Agent view transfer selection +# 90712-2303 - Added view calls in queue, grab call from queue +# 90717-0638 - Fixed alt dial on overflow in-group calls +# 90722-1542 - Added no hopper dialing +# 90729-0637 - Added DiaLableLeaDsCounT +# 90808-0221 - Added last_state_change to vicidial_live_agents +# 90904-1622 - Added timezone sort options for no hopper dialing +# 90908-1037 - Added DEAD call logging +# 90916-1839 - Added nodeletevdac +# 90917-2246 - Fixed auto-alt-dial DNC check bug +# 90924-1544 - Added List callerid override option +# 90930-1638 - Added agent_territories feature +# 91012-0535 - Fixed User territory no-hopper dial bug +# 91019-1224 - Fixed auto-alt-dial DNC issues +# 91026-1101 - Added AREACODE DNC option +# 91108-2120 - Fixed QM log issue with PAUSEREASON entries +# 91112-1107 - Changed ENTERQUEUE to CALLOUTBOUND for QM logging +# 91123-1801 - Added outbound_autodial field +# 91204-1937 - Added logging of agent grab calls +# 91213-0946 - Added queue_position to queue_log COMPLETE... records +# 91228-1340 - Added API fields update functions +# 100103-1254 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100104-1509 - Fixed vicidial_log duplicate check to allow update if dup and logging update +# + +$version = '2.2.0-136'; +$build = '100104-1509'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=290; +$one_mysql_log=0; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["ACTION"])) {$ACTION=$_GET["ACTION"];} + elseif (isset($_POST["ACTION"])) {$ACTION=$_POST["ACTION"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["closer_choice"])) {$closer_choice=$_GET["closer_choice"];} + elseif (isset($_POST["closer_choice"])) {$closer_choice=$_POST["closer_choice"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["exten"])) {$exten=$_GET["exten"];} + elseif (isset($_POST["exten"])) {$exten=$_POST["exten"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["ext_priority"])) {$ext_priority=$_GET["ext_priority"];} + elseif (isset($_POST["ext_priority"])) {$ext_priority=$_POST["ext_priority"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["MDnextCID"])) {$MDnextCID=$_GET["MDnextCID"];} + elseif (isset($_POST["MDnextCID"])) {$MDnextCID=$_POST["MDnextCID"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["length_in_sec"])) {$length_in_sec=$_GET["length_in_sec"];} + elseif (isset($_POST["length_in_sec"])) {$length_in_sec=$_POST["length_in_sec"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["start_epoch"])) {$start_epoch=$_GET["start_epoch"];} + elseif (isset($_POST["start_epoch"])) {$start_epoch=$_POST["start_epoch"];} +if (isset($_GET["dispo_choice"])) {$dispo_choice=$_GET["dispo_choice"];} + elseif (isset($_POST["dispo_choice"])) {$dispo_choice=$_POST["dispo_choice"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["conf_silent_prefix"])) {$conf_silent_prefix=$_GET["conf_silent_prefix"];} + elseif (isset($_POST["conf_silent_prefix"])) {$conf_silent_prefix=$_POST["conf_silent_prefix"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["user_abb"])) {$user_abb=$_GET["user_abb"];} + elseif (isset($_POST["user_abb"])) {$user_abb=$_POST["user_abb"];} +if (isset($_GET["preview"])) {$preview=$_GET["preview"];} + elseif (isset($_POST["preview"])) {$preview=$_POST["preview"];} +if (isset($_GET["called_count"])) {$called_count=$_GET["called_count"];} + elseif (isset($_POST["called_count"])) {$called_count=$_POST["called_count"];} +if (isset($_GET["agent_log_id"])) {$agent_log_id=$_GET["agent_log_id"];} + elseif (isset($_POST["agent_log_id"])) {$agent_log_id=$_POST["agent_log_id"];} +if (isset($_GET["agent_log"])) {$agent_log=$_GET["agent_log"];} + elseif (isset($_POST["agent_log"])) {$agent_log=$_POST["agent_log"];} +if (isset($_GET["favorites_list"])) {$favorites_list=$_GET["favorites_list"];} + elseif (isset($_POST["favorites_list"])) {$favorites_list=$_POST["favorites_list"];} +if (isset($_GET["CallBackDatETimE"])) {$CallBackDatETimE=$_GET["CallBackDatETimE"];} + elseif (isset($_POST["CallBackDatETimE"])) {$CallBackDatETimE=$_POST["CallBackDatETimE"];} +if (isset($_GET["recipient"])) {$recipient=$_GET["recipient"];} + elseif (isset($_POST["recipient"])) {$recipient=$_POST["recipient"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["LogouTKicKAlL"])) {$LogouTKicKAlL=$_GET["LogouTKicKAlL"];} + elseif (isset($_POST["LogouTKicKAlL"])) {$LogouTKicKAlL=$_POST["LogouTKicKAlL"];} +if (isset($_GET["closer_blended"])) {$closer_blended=$_GET["closer_blended"];} + elseif (isset($_POST["closer_blended"])) {$closer_blended=$_POST["closer_blended"];} +if (isset($_GET["inOUT"])) {$inOUT=$_GET["inOUT"];} + elseif (isset($_POST["inOUT"])) {$inOUT=$_POST["inOUT"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["alt_dial"])) {$alt_dial=$_GET["alt_dial"];} + elseif (isset($_POST["alt_dial"])) {$alt_dial=$_POST["alt_dial"];} +if (isset($_GET["agentchannel"])) {$agentchannel=$_GET["agentchannel"];} + elseif (isset($_POST["agentchannel"])) {$agentchannel=$_POST["agentchannel"];} +if (isset($_GET["conf_dialed"])) {$conf_dialed=$_GET["conf_dialed"];} + elseif (isset($_POST["conf_dialed"])) {$conf_dialed=$_POST["conf_dialed"];} +if (isset($_GET["leaving_threeway"])) {$leaving_threeway=$_GET["leaving_threeway"];} + elseif (isset($_POST["leaving_threeway"])) {$leaving_threeway=$_POST["leaving_threeway"];} +if (isset($_GET["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_GET["hangup_all_non_reserved"];} + elseif (isset($_POST["hangup_all_non_reserved"])) {$hangup_all_non_reserved=$_POST["hangup_all_non_reserved"];} +if (isset($_GET["blind_transfer"])) {$blind_transfer=$_GET["blind_transfer"];} + elseif (isset($_POST["blind_transfer"])) {$blind_transfer=$_POST["blind_transfer"];} +if (isset($_GET["usegroupalias"])) {$usegroupalias=$_GET["usegroupalias"];} + elseif (isset($_POST["usegroupalias"])) {$usegroupalias=$_POST["usegroupalias"];} +if (isset($_GET["account"])) {$account=$_GET["account"];} + elseif (isset($_POST["account"])) {$account=$_POST["account"];} +if (isset($_GET["agent_dialed_number"])) {$agent_dialed_number=$_GET["agent_dialed_number"];} + elseif (isset($_POST["agent_dialed_number"])) {$agent_dialed_number=$_POST["agent_dialed_number"];} +if (isset($_GET["agent_dialed_type"])) {$agent_dialed_type=$_GET["agent_dialed_type"];} + elseif (isset($_POST["agent_dialed_type"])) {$agent_dialed_type=$_POST["agent_dialed_type"];} +if (isset($_GET["wrapup"])) {$wrapup=$_GET["wrapup"];} + elseif (isset($_POST["wrapup"])) {$wrapup=$_POST["wrapup"];} +if (isset($_GET["vtiger_callback_id"])) {$vtiger_callback_id=$_GET["vtiger_callback_id"];} + elseif (isset($_POST["vtiger_callback_id"])) {$vtiger_callback_id=$_POST["vtiger_callback_id"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["no_delete_sessions"])) {$no_delete_sessions=$_GET["no_delete_sessions"];} + elseif (isset($_POST["no_delete_sessions"])) {$no_delete_sessions=$_POST["no_delete_sessions"];} +if (isset($_GET["nodeletevdac"])) {$nodeletevdac=$_GET["nodeletevdac"];} + elseif (isset($_POST["nodeletevdac"])) {$nodeletevdac=$_POST["nodeletevdac"];} +if (isset($_GET["agent_territories"])) {$agent_territories=$_GET["agent_territories"];} + elseif (isset($_POST["agent_territories"])) {$agent_territories=$_POST["agent_territories"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +if ($ACTION == 'LogiNCamPaigns') + { + $skip_user_validation=1; + } +else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00002',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00003',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Database Query Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + + +################################################################################ +### LogiNCamPaigns - generates an HTML SELECT list of allowed campaigns for a +### specific agent on the login screen +################################################################################ +if ($ACTION == 'LogiNCamPaigns') + { + if ( (strlen($user)<1) ) + { + echo "\n"; + exit; + } + else + { + $stmt="SELECT user_group,user_level,agent_shift_enforcement_override,shift_override_flag from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00004',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + $VU_user_level = $row[1]; + $VU_agent_shift_enforcement_override = $row[2]; + $VU_shift_override_flag = $row[3]; + + $LOGallowed_campaignsSQL=''; + + $stmt="SELECT allowed_campaigns,forced_timeclock_login,shift_enforcement,group_shifts from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00005',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[1]; + $shift_enforcement = $row[2]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[3]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $LOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $LOGallowed_campaignsSQL = eregi_replace(' ',"','",$LOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$LOGallowed_campaignsSQL')"; + } + + $show_campaign_list=1; + ### CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$user' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ( (strlen($last_agent_event)<2) or (ereg('LOGOUT',$last_agent_event)) ) + {$show_campaign_list=0;} + } + } + + ### CHECK TO SEE IF AGENT IS WITHIN THEIR SHIFT IF RESTRICTED, IF NOT, OUTPUT ERROR + if ( ( (ereg("START|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("START|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group\n"; + $VDloginDISPLAY=1; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00193',$user,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift\n"; + $VDloginDISPLAY=1; + } + } + if ($VDloginDISPLAY > 0) + { + $loginDATE = date("Ymd"); + $VDdisplayMESSAGE.= "

    MANAGER OVERRIDE:
    \n"; + $VDdisplayMESSAGE.= "
    \n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "Manager Login:
    \n"; + $VDdisplayMESSAGE.= "Manager Password:
    \n"; + $VDdisplayMESSAGE.= "




    \n"; + echo "$VDdisplayMESSAGE"; + exit; + } + } + + if ($show_campaign_list > 0) + { + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where active='Y' $LOGallowed_campaignsSQL order by campaign_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00006',$user,$server_ip,$session_name,$one_mysql_log);} + $camps_to_print = mysql_num_rows($rslt); + + echo "\n"; + } + else + { + echo "\n"; + } + exit; + } + + + +################################################################################ +### regCLOSER - update the vicidial_live_agents table to reflect the closer +### inbound choices made upon login +################################################################################ +if ($ACTION == 'regCLOSER') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($closer_choice)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Group Choice $closer_choice is not valid\n"; + exit; + } + else + { + if ($closer_blended > 0) + {$vla_autodial = 'Y';} + else + {$vla_autodial = 'N';} + if (preg_match('/INBOUND_MAN|MANUAL/',$dial_method)) + {$vla_autodial = 'N';} + + if ($closer_choice == "MGRLOCK-") + { + $stmt="SELECT closer_campaigns FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00007',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $closer_choice =$row[0]; + + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00008',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set closer_campaigns='$closer_choice',last_state_change='$NOW_TIME',outbound_autodial='$vla_autodial' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00009',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_users set closer_campaigns='$closer_choice' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00010',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_closer_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',blended='$closer_blended',closer_campaigns='$closer_choice';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00011',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="DELETE FROM vicidial_live_inbound_agents where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00012',$user,$server_ip,$session_name,$one_mysql_log);} + + $in_groups_pre = preg_replace('/-$/','',$closer_choice); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $in_groups_ct) + { + if (strlen($in_groups[$k])>1) + { + $stmt="SELECT group_weight,calls_today FROM vicidial_inbound_group_agents where user='$user' and group_id='$in_groups[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00013',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $viga_ct = mysql_num_rows($rslt); + if ($viga_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_weight = $row[0]; + $calls_today = $row[1]; + } + else + { + $group_weight = 0; + $calls_today = 0; + } + $stmt="INSERT INTO vicidial_live_inbound_agents set user='$user',group_id='$in_groups[$k]',group_weight='$group_weight',calls_today='$calls_today',last_call_time='$NOW_TIME',last_call_finish='$NOW_TIME';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00014',$user,$server_ip,$session_name,$one_mysql_log);} + } + $k++; + } + + } + echo "Closer In Group Choice $closer_choice has been registered to user $user\n"; + } + + + + + +################################################################################# +### regTERRITORY - update the vicidial_live_agents table to reflect the territory +### choices made upon login or while paused (agent_territories) +################################################################################# +if ($ACTION == 'regTERRITORY') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($agent_territories)<1) || (strlen($user)<1) ) + { + $channel_live=0; + echo "Territory Choice $agent_territories is not valid\n"; + exit; + } + else + { + if (preg_match("/^MGRLOCK/",$agent_territories)) + { + $stmt="SELECT territory FROM vicidial_user_territories where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00253',$user,$server_ip,$session_name,$one_mysql_log);} + $territories_ct = mysql_num_rows($rslt); + if ($DB) {echo "$territories_ct|$stmt\n";} + $k=0; + $agent_territories=''; + while ($territories_ct > $k) + { + $row=mysql_fetch_row($rslt); + $agent_territories .= " $row[0]"; + $k++; + } + $agent_territories .= " -"; + + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00254',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_live_agents set agent_territories='$agent_territories',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00255',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="INSERT INTO vicidial_user_territory_log set user='$user',campaign_id='$campaign',event_date='$NOW_TIME',agent_territories='$agent_territories';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00256',$user,$server_ip,$session_name,$one_mysql_log);} + } + echo "Territory Choice $agent_territories has been registered to user $user\n"; + } + + + + + +################################################################################ +### For every process below, lookup the current agent_log_id for the user +################################################################################ +$stmt="SELECT agent_log_id from vicidial_live_agents where user='$user';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} +$users_to_parse = mysql_num_rows($rslt); +if ($users_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$agent_log_id = $rowx[0];} + } + + + +################################################################################ +### UpdateFields - sends current vicidial_list values for fields +################################################################################ +if ($ACTION == 'UpdateFields') + { + $stmt="UPDATE vicidial_live_agents set external_update_fields='0',external_update_fields_data='' where user='$user';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00276',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT lead_id from vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00274',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_records = mysql_num_rows($rslt); + if ($vla_records > 0) + { + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) {$lead_id = $rowx[0];} + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT vendor_lead_code,source_id,gmt_offset_now,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,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00275',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = trim("$row[0]"); + $source_id = trim("$row[1]"); + $gmt_offset_now = trim("$row[2]"); + $phone_code = trim("$row[3]"); + $phone_number = trim("$row[4]"); + $title = trim("$row[5]"); + $first_name = trim("$row[6]"); + $middle_initial = trim("$row[7]"); + $last_name = trim("$row[8]"); + $address1 = trim("$row[9]"); + $address2 = trim("$row[10]"); + $address3 = trim("$row[11]"); + $city = trim("$row[12]"); + $state = trim("$row[13]"); + $province = trim("$row[14]"); + $postal_code = trim("$row[15]"); + $country_code = trim("$row[16]"); + $gender = trim("$row[17]"); + $date_of_birth = trim("$row[18]"); + $alt_phone = trim("$row[19]"); + $email = trim("$row[20]"); + $security = trim("$row[21]"); + $comments = stripslashes(trim("$row[22]")); + $rank = trim("$row[23]"); + $owner = trim("$row[24]"); + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = "GOOD\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + + echo $LeaD_InfO; + } + else + { + echo "ERROR: no lead info in system: $lead_id\n"; + } + } + else + { + echo "ERROR: no lead active for this agent\n"; + } + } + + +################################################################################ +### manDiaLnextCaLL - for manual VICIDiaL dialing this will grab the next lead +### in the campaign, reserve it, send data back to client and +### place the call by inserting into vicidial_manager +################################################################################ +if ($ACTION == 'manDiaLnextCaLL') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) ) + { + $channel_live=0; + echo "HOPPER EMPTY\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is not valid\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00015',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today = $row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00257',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + ### check if this is a callback, if it is, skip the grabbing of a new lead and mark the callback as INACTIVE + if ( (strlen($callback_id)>0) and (strlen($lead_id)>0) ) + { + $affected_rows=1; + $CBleadIDset=1; + + $stmt = "UPDATE vicidial_callbacks set status='INACTIVE' where callback_id='$callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00016',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + if (strlen($phone_number)>3) + { + if (ereg("DNC",$manual_dial_filter)) + { + $stmt="SELECT count(*) FROM vicidial_dnc where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00017',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMBER\n"; + exit; + } + $stmt="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00018',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + echo "DNC NUMBER\n"; + exit; + } + } + if (ereg("CAMPLISTS",$manual_dial_filter)) + { + $stmt="SELECT list_id,active from vicidial_lists where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00019',$user,$server_ip,$session_name,$one_mysql_log);} + $lists_to_parse = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_parse > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$active_lists++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_lists++;} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT count(*) FROM vicidial_list where phone_number='$phone_number' and list_id IN($camp_lists);"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00020',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + + if ($row[0] < 1) + { + echo "NUMBER NOT IN CAMPLISTS\n"; + exit; + } + } + if ($stage=='lookup') + { + if (strlen($vendor_lead_code)>0) + { + $stmt="SELECT lead_id FROM vicidial_list where vendor_lead_code='$vendor_lead_code' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + if ( ($man_leadID_ct > 0) and (strlen($phone_number) > 5) ) + {$override_phone++;} + } + else + { + $stmt="SELECT lead_id FROM vicidial_list where phone_number='$phone_number' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00021',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $man_leadID_ct = mysql_num_rows($rslt); + } + if ($man_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $affected_rows=1; + $lead_id =$row[0]; + $CBleadIDset=1; + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',vendor_lead_code='$vendor_lead_code';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00022',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='QUEUE',user='$user',called_since_last_reset='Y',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00023',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $lead_id = mysql_insert_id($link); + $CBleadIDset=1; + } + } + else + { + ##### gather no hopper dialing settings from campaign + $stmt="SELECT no_hopper_dialing,agent_dial_owner_only,local_call_time,dial_statuses,drop_lockout_time,lead_filter_id,lead_order FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00236',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $camp_nohopper_ct = mysql_num_rows($rslt); + if ($camp_nohopper_ct > 0) + { + $row=mysql_fetch_row($rslt); + $no_hopper_dialing = $row[0]; + $agent_dial_owner_only = $row[1]; + $local_call_time = $row[2]; + $dial_statuses = $row[3]; + $drop_lockout_time = $row[4]; + $lead_filter_id = $row[5]; + $lead_order = $row[6]; + } + if (eregi("N",$no_hopper_dialing)) + { + ### grab the next lead in the hopper for this campaign and reserve it for the user + $stmt = "UPDATE vicidial_hopper set status='QUEUE', user='$user' where campaign_id='$campaign' and status='READY' order by priority desc,hopper_id LIMIT 1"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00024',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + else + { + ### figure out what the next lead that should be dialed is + + ########################################################## + ### BEGIN find the next lead to dial without looking in the hopper + ########################################################## + # $DB=1; + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00237',$user,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00238',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT lead_filter_sql FROM vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00239',$user,$server_ip,$session_name,$one_mysql_log);} + $filtersql_ct = mysql_num_rows($rslt); + if ($DB) {echo "$filtersql_ct|$stmt\n";} + if ($filtersql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fSQL = $row[0]; + } + + $stmt="SELECT list_id FROM vicidial_lists where campaign_id='$campaign' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00240',$user,$server_ip,$session_name,$one_mysql_log);} + $camplists_ct = mysql_num_rows($rslt); + if ($DB) {echo "$camplists_ct|$stmt\n";} + $k=0; + $camp_lists=''; + while ($camplists_ct > $k) + { + $row=mysql_fetch_row($rslt); + $camp_lists .= "'$row[0]',"; + $k++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + if (strlen($camp_lists) < 4) {$camp_lists="''";} + + $stmt="SELECT user_group,territory FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00241',$user,$server_ip,$session_name,$one_mysql_log);} + $userterr_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterr_ct|$stmt\n";} + if ($userterr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $territory = $row[1]; + } + + $agent_territories=''; + $stmt="SELECT agent_territories FROM vicidial_live_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00258',$user,$server_ip,$session_name,$one_mysql_log);} + $userterrVLA_ct = mysql_num_rows($rslt); + if ($DB) {echo "$userterrVLA_ct|$stmt\n";} + if ($userterrVLA_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_territories = $row[0]; + } + if (strlen($agent_territories) > 3) + { + $agent_territoriesSQL = preg_replace('/-$/','',$agent_territories); + $agent_territoriesSQL = preg_replace('/ $|^ /','',$agent_territoriesSQL); + $territory = preg_replace('/ /',"','",$agent_territoriesSQL); + } + + $adooSQL = ''; + if (eregi("USER",$agent_dial_owner_only)) {$adooSQL = "and owner='$user'";} + if (eregi("TERRITORY",$agent_dial_owner_only)) {$adooSQL = "and owner IN('$territory')";} + if (eregi("USER_GROUP",$agent_dial_owner_only)) {$adooSQL = "and owner='$user_group'";} + + $order_stmt = ''; + if (eregi("DOWN",$lead_order)){$order_stmt = 'order by lead_id asc';} + if (eregi("UP",$lead_order)){$order_stmt = 'order by lead_id desc';} + if (eregi("UP LAST NAME",$lead_order)){$order_stmt = 'order by last_name desc, lead_id asc';} + if (eregi("DOWN LAST NAME",$lead_order)){$order_stmt = 'order by last_name, lead_id asc';} + if (eregi("UP PHONE",$lead_order)){$order_stmt = 'order by phone_number desc, lead_id asc';} + if (eregi("DOWN PHONE",$lead_order)){$order_stmt = 'order by phone_number, lead_id asc';} + if (eregi("UP COUNT",$lead_order)){$order_stmt = 'order by called_count desc, lead_id asc';} + if (eregi("DOWN COUNT",$lead_order)){$order_stmt = 'order by called_count, lead_id asc';} + if (eregi("UP LAST CALL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time desc, lead_id asc';} + if (eregi("DOWN LAST CALL TIME",$lead_order)){$order_stmt = 'order by last_local_call_time, lead_id asc';} + if (eregi("RANDOM",$lead_order)){$order_stmt = 'order by RAND()';} + if (eregi("UP RANK",$lead_order)){$order_stmt = 'order by rank desc, lead_id asc';} + if (eregi("DOWN RANK",$lead_order)){$order_stmt = 'order by rank, lead_id asc';} + if (eregi("UP OWNER",$lead_order)){$order_stmt = 'order by owner desc, lead_id asc';} + if (eregi("DOWN OWNER",$lead_order)){$order_stmt = 'order by owner, lead_id asc';} + if (eregi("UP TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now desc, lead_id asc';} + if (eregi("DOWN TIMEZONE",$lead_order)){$order_stmt = 'order by gmt_offset_now, lead_id asc';} + + $stmt="UPDATE vicidial_list SET status='QUEUE',user='$user' where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL $adooSQL $order_stmt LIMIT 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00242',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + $stmt="SELECT lead_id,list_id,gmt_offset_now,state FROM vicidial_list where status='QUEUE' and user='$user' order by modify_date desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00243',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $leadpick_ct = mysql_num_rows($rslt); + if ($leadpick_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id = $row[0]; + $list_id = $row[1]; + $gmt_offset_now = $row[2]; + $state = $row[3]; + + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='QUEUE',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='MAIN',user='$user',priority='0';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00244',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + ########################################################## + ### END find the next lead to dial without looking in the hopper + ########################################################## + # $DB=0; + } + } + } + + if ($affected_rows > 0) + { + if (!$CBleadIDset) + { + ##### grab the lead_id of the reserved user in vicidial_hopper + $stmt="SELECT lead_id FROM vicidial_hopper where campaign_id='$campaign' and status='QUEUE' and user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00025',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $hopper_leadID_ct = mysql_num_rows($rslt); + if ($hopper_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00026',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $called_since_last_reset = trim("$row[9]"); + $phone_code = trim("$row[10]"); + if ($override_phone < 1) + {$phone_number = trim("$row[11]");} + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $called_count++; + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00027',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # generate callerID for unique identifier in xfer_log file + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|M + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|M|$MqueryCID||$province\n"); + fclose($fp); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00028',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + $stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00029',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $server_ct = mysql_num_rows($rslt); + if ($server_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + } + $LLCT_DATE_offset = ($local_gmt - $gmt_offset_now); + $LLCT_DATE = date("Y-m-d H:i:s", mktime(date("H")-$LLCT_DATE_offset,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if (ereg('Y',$called_since_last_reset)) + { + $called_since_last_reset = ereg_replace('Y','',$called_since_last_reset); + if (strlen($called_since_last_reset) < 1) {$called_since_last_reset = 0;} + $called_since_last_reset++; + $called_since_last_reset = "Y$called_since_last_reset"; + } + else {$called_since_last_reset = 'Y';} + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', called_since_last_reset='$called_since_last_reset', called_count='$called_count',user='$user',last_local_call_time='$LLCT_DATE' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00030',$user,$server_ip,$session_name,$one_mysql_log);} + + if (!$CBleadIDset) + { + ### delete the lead from the hopper + $stmt = "DELETE FROM vicidial_hopper where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00031',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_agent_log set lead_id='$lead_id',comments='MANUAL' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00032',$user,$server_ip,$session_name,$one_mysql_log);} + + ### if preview dialing, do not send the call + if ( (strlen($preview)<1) || ($preview == 'NO') ) + { + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + # $Local_persist = '/n'; + $Local_persist = ''; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00245',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00033',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00034',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00035',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update calls_today count in vicidial_campaign_agents + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00036',$user,$server_ip,$session_name,$one_mysql_log);} + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00191',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00037',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00038',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CALLOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00039',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00040',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00259',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00260',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + ### Check for List ID override settings + $VDCL_xferconf_a_number=''; + $VDCL_xferconf_b_number=''; + $VDCL_xferconf_c_number=''; + $VDCL_xferconf_d_number=''; + $VDCL_xferconf_e_number=''; + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00277',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_preset_ct = mysql_num_rows($rslt); + if ($VC_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_xferconf_a_number = $row[0]; + $VDCL_xferconf_b_number = $row[1]; + $VDCL_xferconf_c_number = $row[2]; + $VDCL_xferconf_d_number = $row[3]; + $VDCL_xferconf_e_number = $row[4]; + } + + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00278',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_preset_ct = mysql_num_rows($rslt); + if ($VDIG_preset_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $MqueryCID . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= "MAIN\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + $LeaD_InfO .= $VDCL_xferconf_a_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_b_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_c_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_d_number . "\n"; + $LeaD_InfO .= $VDCL_xferconf_e_number . "\n"; + + echo $LeaD_InfO; + } + else + { + echo "HOPPER EMPTY\n"; + } + } + } + + +################################################################################ +### alt_phone_change - change alt phone numbers to active and inactive +### +################################################################################ +if ($ACTION == 'alt_phone_change') +{ + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) || (strlen($phone_number)<1) ) + { + $channel_live=0; + echo "ALT PHONE NUMBER STATUS NOT CHANGED\n"; + echo "$phone_number $stage $lead_id or $called_count is not valid\n"; + exit; + } + else + { + $stmt = "UPDATE vicidial_list_alt_phones set active='$stage' where lead_id='$lead_id' and phone_number='$phone_number' and alt_phone_count='$called_count';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00041',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "ALT PHONE NUMBER STATUS CHANGED\n"; + } +} + + +################################################################################ +### AlertControl - change the agent alert setting in vicidial_users +### +################################################################################ +if ($ACTION == 'AlertControl') +{ + if (strlen($stage)<1) + { + $channel_live=0; + echo "AGENT ALERT SETTING NOT CHANGED\n"; + echo "$stage is not valid\n"; + exit; + } + else + { + if (ereg('ON',$stage)) {$stage = '1';} + else {$stage = '0';} + + $stmt = "UPDATE vicidial_users set alert_enabled='$stage' where user='$user' and pass='$pass';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'000185',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "AGENT ALERT SETTING CHANGED $stage\n"; + } +} + + +################################################################################ +### manDiaLskip - for manual VICIDiaL dialing this skips the lead that was +### previewed in the step above and puts it back in orig status +################################################################################ +if ($ACTION == 'manDiaLskip') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($stage)<1) || (strlen($called_count)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "LEAD NOT REVERTED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is not valid\n"; + exit; + } + else + { + $called_count = ($called_count - 1); + ### flag the lead as called and change it's status to INCALL + $stmt = "UPDATE vicidial_list set status='$stage', called_count='$called_count',user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00042',$user,$server_ip,$session_name,$one_mysql_log);} + + + echo "LEAD REVERTED\n"; + } + } + + +################################################################################ +### manDiaLonly - for manual VICIDiaL dialing this sends the call that was +### previewed in the step above +################################################################################ +if ($ACTION == 'manDiaLonly') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($conf_exten)<1) || (strlen($campaign)<1) || (strlen($ext_context)<1) || (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo " CALL NOT PLACED\n"; + echo "Conf Exten $conf_exten or campaign $campaign or ext_context $ext_context is not valid\n"; + exit; + } + else + { + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00043',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### prepare variables to place manual call from VICIDiaL + $CCID_on=0; $CCID=''; + $local_DEF = 'Local/'; + $local_AMP = '@'; + $Local_out_prefix = '9'; + $Local_dial_timeout = '60'; + $Local_persist = '/n'; + if ($dial_timeout > 4) {$Local_dial_timeout = $dial_timeout;} + $Local_dial_timeout = ($Local_dial_timeout * 1000); + if (strlen($dial_prefix) > 0) {$Local_out_prefix = "$dial_prefix";} + if (strlen($campaign_cid) > 6) {$CCID = "$campaign_cid"; $CCID_on++;} + if (eregi("x",$dial_prefix)) {$Local_out_prefix = '';} + $campaign_cid_override=''; + ### check if there is a list_id override + if (strlen($lead_id) > 1) + { + $list_id=''; + $stmt = "SELECT list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00246',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = $row[0]; + + if (strlen($list_id) > 1) + { + $stmt = "SELECT campaign_cid_override FROM vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00247',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $lio_ct = mysql_num_rows($rslt); + if ($lio_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_cid_override = $row[0]; + } + } + } + } + if (strlen($campaign_cid_override) > 6) {$CCID = "$campaign_cid_override"; $CCID_on++;} + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + + # Create unique calleridname to track the call: MmmddhhmmssLLLLLLLLL + $MqueryCID = "M$CIDdate$PADlead_id"; + if ($CCID_on) {$CIDstring = "\"$MqueryCID\" <$CCID>";} + else {$CIDstring = "$MqueryCID";} + + if ( ($usegroupalias > 0) and (strlen($account)>1) ) + { + $RAWaccount = $account; + $account = "Account: $account"; + $variable = "Variable: usegroupalias=1"; + } + else + {$account=''; $variable='';} + + ### whether to omit phone_code or not + if (eregi('Y',$omit_phone_code)) + {$Ndialstring = "$Local_out_prefix$phone_number";} + else + {$Ndialstring = "$Local_out_prefix$phone_code$phone_number";} + ### insert the call action into the vicidial_manager table to initiate the call + # $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $conf_exten','Context: $ext_context','Channel: $local_DEF$Local_out_prefix$phone_code$phone_number$local_AMP$ext_context','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','','','','');"; + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$MqueryCID','Exten: $Ndialstring','Context: $ext_context','Channel: $local_DEF$conf_exten$local_AMP$ext_context$Local_persist','Priority: 1','Callerid: $CIDstring','Timeout: $Local_dial_timeout','$account','$variable','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00044',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "INSERT INTO vicidial_auto_calls (server_ip,campaign_id,status,lead_id,callerid,phone_code,phone_number,call_time,call_type) values('$server_ip','$campaign','XFER','$lead_id','$MqueryCID','$phone_code','$phone_number','$NOW_TIME','OUT')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00045',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',callerid='$MqueryCID',lead_id='$lead_id',comments='MANUAL',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00046',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9046$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00047',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$MqueryCID\n"; + + if ($agent_dialed_number > 0) + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$user','$NOW_TIME','$agent_dialed_type','$server_ip','$phone_number','$Ndialstring','$lead_id','$CCID','$RAWaccount')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00192',$user,$server_ip,$session_name,$one_mysql_log);} + } + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00048',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # UNPAUSEALL + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='UNPAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00049',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CALLOUTBOUND (formerly ENTERQUEUE) + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='NONE',verb='CALLOUTBOUND',data2='$phone_number',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00050',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + # CONNECT + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MqueryCID',queue='$campaign',agent='Agent/$user',verb='CONNECT',data1='0',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00051',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + } + } + + +################################################################################ +### manDiaLlookCALL - for manual VICIDiaL dialing this will attempt to look up +### the trunk channel that the call was placed on +################################################################################ +if ($ACTION == 'manDiaLlookCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; +if (strlen($MDnextCID)<18) + { + echo "NO\n"; + echo "MDnextCID $MDnextCID is not valid\n"; + exit; + } +else + { + ##### look for the channel in the UPDATED vicidial_manager record of the call initiation + $stmt="SELECT uniqueid,channel FROM vicidial_manager where callerid='$MDnextCID' and server_ip='$server_ip' and status IN('UPDATED','DEAD') LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00052',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $uniqueid =$row[0]; + $channel =$row[1]; + echo "$uniqueid\n$channel"; + + $wait_sec=0; + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00053',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',wait_epoch='$StarTtime',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00054',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_auto_calls set uniqueid='$uniqueid',channel='$channel' where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00055',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + echo "NO\n"; + } + } +} + + + +################################################################################ +### manDiaLlogCALL - for manual VICIDiaL logging of calls places record in +### vicidial_log and then sends process to call_log entry +################################################################################ +if ($ACTION == 'manDiaLlogCaLL') +{ + $MT[0]=''; + $row=''; $rowx=''; + $vidSQL=''; + $VDterm_reason=''; + +if ($stage == "start") + { + if ( (strlen($uniqueid)<1) || (strlen($lead_id)<1) || (strlen($list_id)<1) || (strlen($phone_number)<1) || (strlen($campaign)<1) ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|VL_LOG_0|$uniqueid|$lead_id|$user|$list_id|$campaign|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + + echo "LOG NOT ENTERED\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id or list_id: $list_id or phone_number: $phone_number or campaign: $campaign is not valid\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00056',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + $manualVLexistsDUP=0; + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','INCALL','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00279',$user,$server_ip,$session_name,$one_mysql_log);} + $DUPerrno = mysql_errno($link); + if ($DUPerrno > 0) + {$manualVLexistsDUP=1;} + $affected_rows = mysql_affected_rows($link); + } + if ( ($manualVLexists > 0) or ($manualVLexistsDUP > 0) ) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="UPDATE vicidial_log SET list_id='$list_id',comments='MANUAL',user_group='$user_group',alt_dial='$alt_dial' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inserted: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NOT ENTERED\n"; + } + + $stmt = "UPDATE vicidial_auto_calls SET uniqueid='$uniqueid' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00058',$user,$server_ip,$session_name,$one_mysql_log);} + + # ##### insert log into call_log for manual VICIDiaL call + # $stmt = "INSERT INTO call_log (uniqueid,channel,server_ip,extension,number_dialed,caller_code,start_time,start_epoch) values('$uniqueid','$channel','$server_ip','$exten','$phone_code$phone_number','MD $user $lead_id','$NOW_TIME','$StarTtime')"; + # if ($DB) {echo "$stmt\n";} + # $rslt=mysql_query($stmt, $link); + # $affected_rows = mysql_affected_rows($link); + + # if ($affected_rows > 0) + # { + # echo "CALL_LOG Inserted: $uniqueid|$channel|$NOW_TIME"; + # } + # else + # { + # echo "LOG NOT ENTERED\n"; + # } + } + } + +if ($stage == "end") + { + ##### get call type from vicidial_live_agents table + $VLA_inOUT='NONE'; + $stmt="SELECT comments FROM vicidial_live_agents where user='$user' order by last_update_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00059',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLA_inOUT_ct = mysql_num_rows($rslt); + if ($VLA_inOUT_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_inOUT = $row[0]; + } + + if ( (strlen($uniqueid)<1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_0|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$start_epoch|$phone_number|$agent_log_id|\n"); + fclose($fp); + $uniqueid='6666.1'; + } + if ( (strlen($uniqueid)<1) or (strlen($lead_id)<1) ) + { + echo "LOG NOT ENTERED\n"; + echo "uniqueid $uniqueid or lead_id: $lead_id is not valid\n"; + exit; + } + else + { + $term_reason='NONE'; + if ($start_epoch < 1000) + { + if ($VLA_inOUT == 'INBOUND') + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + ##### look for the start epoch in the vicidial_closer_log table + $stmt="SELECT start_epoch,term_reason,closecallid,campaign_id FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by closecallid desc limit 1;"; + $VDIDselect = "VDCL_LID $lead_id $phone_number $user $four_hours_ago"; + } + else + { + ##### look for the start epoch in the vicidial_log table + $stmt="SELECT start_epoch,term_reason,uniqueid,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00060',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDvicidial_id = $row[2]; + $VDcampaign_id = $row[3]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + + if ( ($length_in_sec < 1) and ($VLA_inOUT == 'INBOUND') ) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_1|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + + ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log + $stmt="SELECT start_epoch,term_reason,campaign_id FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00061',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VM_mancall_ct = mysql_num_rows($rslt); + if ($VM_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $VDterm_reason = $row[1]; + $VDcampaign_id = $row[2]; + $length_in_sec = ($StarTtime - $start_epoch); + } + else + { + $length_in_sec = 0; + } + } + } + else {$length_in_sec = ($StarTtime - $start_epoch);} + + if (strlen($VDcampaign_id)<1) {$VDcampaign_id = $campaign;} + + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ($VLA_inOUT == 'INBOUND') + { + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00062',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_2|$uniqueid|$lead_id|$user|$inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$start_epoch|\n"); + fclose($fp); + } + } + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00063',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + } + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ($auto_dial_level > 0) + { + ### check to see if campaign has alt_dial enabled + $stmt="SELECT auto_alt_dial,use_internal_dnc,use_campaign_dnc FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00064',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_alt_dial = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + } + else {$auto_alt_dial = 'NONE';} + if (eregi("(ALT_ONLY|ADDR3_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED|EXTENDED_ONLY)",$auto_alt_dial)) + { + ### check to see if lead should be alt_dialed + if (strlen($alt_dial)<2) {$alt_dial = 'NONE';} + + ### check if inbound call, if so find a recent outbound call to pull alt_dial value from + if ($VLA_inOUT == 'INBOUND') + { + $one_hour_ago = date("Y-m-d H:i:s", mktime(date("H")-1,date("i"),date("s"),date("m"),date("d"),date("Y"))); + ##### find a recent outbound call associated with this inbound call + $stmt="SELECT alt_dial FROM vicidial_log where lead_id='$lead_id' and status IN('DROP','XDROP') and call_date > \"$one_hour_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00235',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_alt_ct = mysql_num_rows($rslt); + if ($VL_alt_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial = $row[0]; + } + } + + if ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("(ALT_ONLY|ALT_AND_ADDR3|ALT_AND_EXTENDED)",$auto_alt_dial)) ) + { + $alt_dial_skip=0; + $stmt="SELECT alt_phone,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00065',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone = $row[0]; + $alt_phone = eregi_replace("[^0-9]","",$alt_phone); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$alt_phone = '';} + if (strlen($alt_phone)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$alt_phone','$alt_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$alt_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00066',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $alt_phone_areacode = substr($alt_phone, 0, 3); + $alt_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$alt_phone','$alt_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$alt_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00067',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ALT',user='',priority='25';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00068',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$alt_dial_skip=1;} + } + else + {$alt_dial_skip=1;} + if ($alt_dial_skip > 0) + {$alt_dial='ALT';} + } + + if ( ( (eregi("(ALT)",$alt_dial)) and (eregi("ALT_AND_ADDR3",$auto_alt_dial)) ) or ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("ADDR3_ONLY",$auto_alt_dial)) ) ) + { + $addr3_dial_skip=0; + $stmt="SELECT address3,gmt_offset_now,state FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00069',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_mancall_ct = mysql_num_rows($rslt); + if ($VAC_mancall_ct > 0) + { + $row=mysql_fetch_row($rslt); + $address3 = $row[0]; + $address3 = eregi_replace("[^0-9]","",$address3); + $gmt_offset_now = $row[1]; + $state = $row[2]; + } + else {$address3 = '';} + if (strlen($address3)>5) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$address3','$addr3_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$address3';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00070',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $addr3_phone_areacode = substr($address3, 0, 3); + $addr3_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$address3','$addr3_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$address3' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00071',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + ### insert record into vicidial_hopper for address3 call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$list_id',gmt_offset_now='$gmt_offset_now',state='$state',alt_dial='ADDR3',user='',priority='20';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00072',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + {$addr3_dial_skip=1;} + } + else + {$addr3_dial_skip=1;} + if ($addr3_dial_skip > 0) + {$alt_dial='ADDR3';} + } + + # $fp = fopen ("./alt_multi_log.txt", "a"); + # fwrite ($fp, "$NOW_TIME|PRE-X|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$stmt|$auto_alt_dial|$alt_dial\n"); + # fclose($fp); + + if ( ( ( (eregi("(NONE|MAIN)",$alt_dial)) and (eregi("EXTENDED_ONLY",$auto_alt_dial)) ) or ( (eregi("(ALT)",$alt_dial)) and (eregi("(ALT_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(ADDR3)",$alt_dial)) and (eregi("(ADDR3_AND_EXTENDED|ALT_AND_ADDR3_AND_EXTENDED)",$auto_alt_dial)) ) or ( (eregi("(X)",$alt_dial)) and (eregi("EXTENDED",$auto_alt_dial)) ) ) and (!eregi("LAST",$alt_dial)) ) + { + if (eregi("(ADDR3)",$alt_dial)) {$Xlast=0;} + else + {$Xlast = ereg_replace("[^0-9]","",$alt_dial);} + if (strlen($Xlast)<1) + {$Xlast=0;} + $VD_altdialx=''; + + $stmt="SELECT gmt_offset_now,state,list_id FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00073',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_deailts_ct = mysql_num_rows($rslt); + if ($VL_deailts_ct > 0) + { + $row=mysql_fetch_row($rslt); + $EA_gmt_offset_now = $row[0]; + $EA_state = $row[1]; + $EA_list_id = $row[2]; + } + $alt_dial_phones_count=0; + $stmt="SELECT count(*) FROM vicidial_list_alt_phones where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00074',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_dial_phones_count = $row[0]; + } + while ( ($alt_dial_phones_count > 0) and ($alt_dial_phones_count > $Xlast) ) + { + $Xlast++; + $stmt="SELECT alt_phone_id,phone_number,active FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Xlast';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00075',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_detail_ct = mysql_num_rows($rslt); + if ($VLAP_detail_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_altdial_id = $row[0]; + $VD_altdial_phone = $row[1]; + $VD_altdial_active = $row[2]; + } + else + {$Xlast=9999999999;} + + if (ereg("Y",$VD_altdial_active)) + { + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$VD_altdial_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00076',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_dnc_ct = mysql_num_rows($rslt); + if ($VLAP_dnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = $row[0]; + } + } + else {$VD_alt_dnc_count=0;} + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vdap_phone_areacode = substr($VD_altdial_phone, 0, 3); + $vdap_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$VD_altdial_phone','$vdap_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$VD_altdial_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00077',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLAP_cdnc_ct = mysql_num_rows($rslt); + if ($VLAP_cdnc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VD_alt_dnc_count = ($VD_alt_dnc_count + $row[0]); + } + } + if ($VD_alt_dnc_count < 1) + { + if ($alt_dial_phones_count == $Xlast) + {$Xlast = 'LAST';} + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$campaign',status='HOLD',list_id='$EA_list_id',gmt_offset_now='$EA_gmt_offset_now',state='$EA_state',alt_dial='X$Xlast',user='',priority='15';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00078',$user,$server_ip,$session_name,$one_mysql_log);} + $Xlast=9999999999; + } + } + } + } + } + + if ($enable_queuemetrics_logging > 0) + { + ### grab call lead information needed for QM logging + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid from vicidial_auto_calls where lead_id='$lead_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00079',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + } + + $CLstage = preg_replace("/.*-/",'',$CLstage); + if (strlen($CLstage) < 1) {$CLstage=0;} + + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETECALLER' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00080',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $caller_complete = $row[0]; + } + + if ($caller_complete < 1) + { + $term_reason='AGENT'; + } + else + { + $term_reason='CALLER'; + } + + } + + if ($nodeletevdac < 1) + { + ### delete call record from vicidial_auto_calls + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00081',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00082',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9082$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00083',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + else + { + if ($enable_queuemetrics_logging > 0) + { + $CLqueue_position=1; + ### check to see if lead should be alt_dialed + $stmt="SELECT auto_call_id,lead_id,phone_number,status,campaign_id,phone_code,alt_dial,stage,callerid,uniqueid,queue_position from vicidial_auto_calls where lead_id='$lead_id' order by call_time desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00084',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_call_id = $row[0]; + $CLlead_id = $row[1]; + $CLphone_number = $row[2]; + $CLstatus = $row[3]; + $CLcampaign_id = $row[4]; + $CLphone_code = $row[5]; + $CLalt_dial = $row[6]; + $CLstage = $row[7]; + $CLcallerid = $row[8]; + $CLuniqueid = $row[9]; + $CLqueue_position = $row[10]; + } + + $CLstage = preg_replace("/XFER|CLOSER|-/",'',$CLstage); + if ($CLstage < 0.25) {$CLstage=0;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$CLqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00085',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + + if ($nodeletevdac < 1) + { + # $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$campaign' and uniqueid='$uniqueid';"; + $stmt = "DELETE from vicidial_auto_calls where lead_id='$lead_id' and campaign_id='$VDcampaign_id' and callerid LIKE \"M%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00086',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',uniqueid=0,callerid='',channel='',call_server_ip='',last_call_finish='$NOW_TIME',comments='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00087',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9087$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + if ($enable_queuemetrics_logging > 0) + { + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00088',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + + if ( ($VLA_inOUT == 'AUTO') or ($VLA_inOUT == 'MANUAL') ) + { + $SQLterm = "term_reason='$term_reason',"; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### check to see if lead should be alt_dialed + $stmt="SELECT term_reason,uniqueid from vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id' order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00089',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDIDselect = "VDL_UIDLID $uniqueid $lead_id"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT',"; + } + } + + ### check to see if the vicidial_log record exists, if not, insert it + $manualVLexists=0; + $beginUNIQUEID = preg_replace("/\..*/","",$uniqueid); + $stmt="SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VL_exists_ct = mysql_num_rows($rslt); + if ($VL_exists_ct > 0) + { + $row=mysql_fetch_row($rslt); + $manualVLexists = $row[0]; + } + + if ($manualVLexists < 1) + { + ##### insert log into vicidial_log for manual VICIDiaL call + $stmt="INSERT INTO vicidial_log (uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,status,phone_code,phone_number,user,comments,processed,user_group,alt_dial) values('$uniqueid','$lead_id','$list_id','$campaign','$NOW_TIME','$StarTtime','DONEM','$phone_code','$phone_number','$user','MANUAL','N','$user_group','$alt_dial');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00280',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "VICIDiaL_LOG Inserted: $uniqueid|$channel|$NOW_TIME\n"; + echo "$StarTtime\n"; + } + else + { + echo "LOG NOT ENTERED\n"; + } + } + else + { + $stmt="UPDATE vicidial_log SET uniqueid='$uniqueid' where lead_id='$lead_id' and user='$user' and phone_number='$phone_number' and uniqueid LIKE \"$beginUNIQUEID%\";"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00057',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set $SQLterm end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id' and user='$user' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00090',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG NOT ENTERED\n\n"; + } + } + else + { + $SQLterm = "term_reason='$term_reason'"; + $QL_term=''; + + if ( (ereg("NONE",$term_reason)) or (ereg("NONE",$VDterm_reason)) or (strlen($VDterm_reason) < 1) ) + { + ### find out who hung up the call + $stmt="SELECT term_reason,closecallid,queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00091',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDterm_reason = $row[0]; + $VDvicidial_id = $row[1]; + $VDqueue_position = $row[2]; + $VDIDselect = "VDCL_LID4HOUR $lead_id $four_hours_ago"; + } + if (ereg("CALLER",$VDterm_reason)) + { + $SQLterm = ""; + } + else + { + $SQLterm = "term_reason='AGENT'"; + $QL_term = 'COMPLETEAGENT'; + } + } + + if (strlen($SQLterm) > 0) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_closer_log set $SQLterm where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00092',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + if ($enable_queuemetrics_logging > 0) + { + if ( (strlen($QL_term) > 0) and ($leaving_threeway > 0) ) + { + $stmt="SELECT count(*) from queue_log where call_id='$MDnextCID' and verb='COMPLETEAGENT' and queue='$VDcampaign_id';"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00093',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VAC_cc_ct = mysql_num_rows($rslt); + if ($VAC_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_complete = $row[0]; + } + if ($agent_complete < 1) + { + if (strlen($VDqueue_position) < 1) + { + ### find out who hung up the call + $stmt="SELECT queue_position from vicidial_closer_log where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by call_date desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00273',$user,$server_ip,$session_name,$one_mysql_log);} + $VAC_qm_ct = mysql_num_rows($rslt); + if ($VAC_qm_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDqueue_position = $row[0]; + } + } + if (strlen($VDqueue_position) < 1) + {$VDqueue_position=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$VDcampaign_id',agent='Agent/$user',verb='COMPLETEAGENT',data1='$CLstage',data2='$length_in_sec',data3='$VDqueue_position',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00094',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + } + } + } + } + } + + echo $VDstop_rec_after_each_call . '|' . $extension . '|' . $conf_silent_prefix . '|' . $conf_exten . '|' . $user_abb . "|\n"; + + ##### if VICIDiaL call and hangup_after_each_call activated, find all recording + ##### channels and hang them up while entering info into recording_log and + ##### returning filename/recordingID + if ($VDstop_rec_after_each_call == 1) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $total_rec=0; + $total_hangup=0; + $loop_count=0; + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00095',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + $loop_count=0; + $stmt="SELECT channel FROM live_channels where server_ip = '$server_ip' and extension = '$conf_exten' order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00184',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$rec_list = mysql_num_rows($rslt);} + while ($rec_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + if (preg_match("/Local\/$conf_silent_prefix$conf_exten\@/i",$row[0])) + { + $rec_channels[$total_rec] = "$row[0]"; + $total_rec++; + } + else + { + # if (preg_match("/$agentchannel/i",$row[0])) + if ( ($agentchannel == "$row[0]") or (ereg('ASTblind',$row[0])) ) + { + $donothing=1; + } + else + { + $hangup_channels[$total_hangup] = "$row[0]"; + $total_hangup++; + } + } + if ($format=='debug') {echo "\n";} + $loop_count++; + } + + + ### if a conference call or 3way call was attempted, then hangup all channels except for the agentchannel + if ( ( ($conf_dialed > 0) or ($hangup_all_non_reserved > 0) ) and ($leaving_threeway < 1) and ($blind_transfer < 1) ) + { + $loop_count=0; + while($loop_count < $total_hangup) + { + if (strlen($hangup_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','CH12346$StarTtime$loop_count','Channel: $hangup_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00096',$user,$server_ip,$session_name,$one_mysql_log);} + } + $loop_count++; + } + } + + $total_recFN=0; + $loop_count=0; + $filename=$MT; # not necessary : and cmd_line_f LIKE \"%_$user_abb\" + $stmt="SELECT cmd_line_f FROM vicidial_manager where server_ip='$server_ip' and action='Originate' and cmd_line_b = 'Channel: $local_DEF$conf_silent_prefix$conf_exten$local_AMP$ext_context' order by entry_date desc limit $total_rec;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00097',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$recFN_list = mysql_num_rows($rslt);} + while ($recFN_list>$loop_count) + { + $row=mysql_fetch_row($rslt); + $filename[$total_recFN] = preg_replace("/Callerid: /i","",$row[0]); + if ($format=='debug') {echo "\n";} + $total_recFN++; + $loop_count++; + } + + $loop_count=0; + while($loop_count < $total_rec) + { + if (strlen($rec_channels[$loop_count])>5) + { + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','RH12345$StarTtime$loop_count','Channel: $rec_channels[$loop_count]','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00098',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "REC_STOP|$rec_channels[$loop_count]|$filename[$loop_count]|"; + if (strlen($filename)>2) + { + $stmt="SELECT recording_id,start_epoch,vicidial_id,lead_id FROM recording_log where filename='$filename[$loop_count]'"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00099',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$fn_count = mysql_num_rows($rslt);} + if ($fn_count) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $start_time = $row[1]; + $vicidial_id = $row[2]; + $RClead_id = $row[3]; + + if ( (strlen($RClead_id)<1) or ($RClead_id < 1) or ($RClead_id=='NULL') ) + {$lidSQL = ",lead_id='$lead_id'";} + if (strlen($vicidial_id)<1) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + else + { + if ( (ereg('.',$vicidial_id)) and ($VLA_inOUT == 'INBOUND') ) + { + if (!ereg('.',$VDvicidial_id)) + {$vidSQL = ",vicidial_id='$VDvicidial_id'";} + + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND_LOG_3|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|\n"); + fclose($fp); + } + } + $length_in_sec = ($StarTtime - $start_time); + $length_in_min = ($length_in_sec / 60); + $length_in_min = sprintf("%8.2f", $length_in_min); + + $stmt="UPDATE recording_log set end_time='$NOW_TIME',end_epoch='$StarTtime',length_in_sec=$length_in_sec,length_in_min='$length_in_min' $vidSQL $lidSQL where filename='$filename[$loop_count]' and end_epoch is NULL;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00100',$user,$server_ip,$session_name,$one_mysql_log);} + + echo "$recording_id|$length_in_min|"; + + # $fp = fopen ("./recording_debug_$NOW_DATE$txt", "a"); + # fwrite ($fp, "$NOW_TIME|RECORD_LOG|$filename[$loop_count]|$uniqueid|$lead_id|$user|$inOUT|$VLA_inOUT|$length_in_sec|$VDterm_reason|$VDvicidial_id|$VDvicidial_id|$vicidial_id|$start_epoch|$recording_id|$VDIDselect|\n"); + # fclose($fp); + } + else {echo "||";} + } + else {echo "||";} + echo "\n"; + } + $loop_count++; + } + } + + + $talk_sec=0; + $talk_epochSQL=''; + $dead_secSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select talk_epoch,talk_sec,wait_sec,wait_epoch,lead_id,comments,dead_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00101',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $talk_epochSQL=",talk_epoch='$StarTtime'"; + $row[0]=$row[3]; + } + if ( (!eregi("NULL",$row[6])) and ($row[6] > 1000) ) + { + $dead_sec = ($StarTtime - $row[6]); + if ($dead_sec < 0) {$dead_sec=0;} + $dead_secSQL=",dead_sec='$dead_sec'"; + } + $talk_sec = (($StarTtime - $row[0]) + $row[1]); + if ( ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set talk_sec='$talk_sec',dispo_epoch='$StarTtime' $talk_epochSQL $dead_secSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00102',$user,$server_ip,$session_name,$one_mysql_log);} + + } +} + + +################################################################################ +### VDADREcheckINCOMING - for auto-dial VICIDiaL dialing this will recheck for +### calls to see if the channel has updated +################################################################################ +if ($ACTION == 'VDADREcheckINCOMING') + { + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) || (strlen($lead_id)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campaign $campaign is not valid\n"; + echo "lead_id $lead_id is not valid\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00103',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + } + } + } + + +################################################################################ +### VDADcheckINCOMING - for auto-dial VICIDiaL dialing this will check for calls +### in the vicidial_live_agents table in QUEUE status, then +### lookup the lead info and pass it back to vicidial.php +################################################################################ +if ($ACTION == 'VDADcheckINCOMING') + { + $VDCL_ingroup_recording_override = ''; + $VDCL_ingroup_rec_filename = ''; + $Ctype = 'A'; + $MT[0]=''; + $row=''; $rowx=''; + $channel_live=1; + $alt_phone_code=''; + $alt_phone_number=''; + $alt_phone_note=''; + $alt_phone_active=''; + $alt_phone_count=''; + + if ( (strlen($campaign)<1) || (strlen($server_ip)<1) ) + { + $channel_live=0; + echo "0\n"; + echo "Campaign $campaign is not valid\n"; + exit; + } + else + { + ### grab the call and lead info from the vicidial_live_agents table + $stmt = "SELECT lead_id,uniqueid,callerid,channel,call_server_ip,comments FROM vicidial_live_agents where server_ip = '$server_ip' and user='$user' and campaign_id='$campaign' and status='QUEUE';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00104',$user,$server_ip,$session_name,$one_mysql_log);} + $queue_leadID_ct = mysql_num_rows($rslt); + + if ($queue_leadID_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_id =$row[0]; + $uniqueid =$row[1]; + $callerid =$row[2]; + $channel =$row[3]; + $call_server_ip =$row[4]; + $VLAcomments=$row[5]; + + if (strlen($call_server_ip)<7) {$call_server_ip = $server_ip;} + echo "1\n" . $lead_id . '|' . $uniqueid . '|' . $callerid . '|' . $channel . '|' . $call_server_ip . "|\n"; + + ##### grab number of calls today in this campaign and increment + $stmt="SELECT calls_today FROM vicidial_live_agents WHERE user='$user' and campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00105',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vla_cc_ct = mysql_num_rows($rslt); + if ($vla_cc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $calls_today =$row[0]; + } + else + {$calls_today ='0';} + $calls_today++; + + ### update the agent status to INCALL in vicidial_live_agents + $stmt = "UPDATE vicidial_live_agents set status='INCALL',last_call_time='$NOW_TIME',calls_today='$calls_today',external_hangup=0,external_status='',external_pause='',external_dial='',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00106',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9106$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + $stmt = "UPDATE vicidial_campaign_agents set calls_today='$calls_today' where user='$user' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00107',$user,$server_ip,$session_name,$one_mysql_log);} + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00108',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + # $lead_id = trim("$row[0]"); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + ##### if lead is a callback, grab the callback comments + $CBentry_time = ''; + $CBcallback_time = ''; + $CBuser = ''; + $CBcomments = ''; + if (ereg("CALLBK",$dispo)) + { + $stmt="SELECT entry_time,callback_time,user,comments FROM vicidial_callbacks where lead_id='$lead_id' order by callback_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00109',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cb_record_ct = mysql_num_rows($rslt); + if ($cb_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $CBentry_time = trim("$row[0]"); + $CBcallback_time = trim("$row[1]"); + $CBuser = trim("$row[2]"); + $CBcomments = trim("$row[3]"); + } + } + + ### update the lead status to INCALL + $stmt = "UPDATE vicidial_list set status='INCALL', user='$user' where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00110',$user,$server_ip,$session_name,$one_mysql_log);} + + ### update the log status to INCALL + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00111',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + + $stmt = "SELECT campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00112',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + if ( ($dialed_number != $phone_number) and (strlen($dialed_label) < 3) ) + { + if ($dialed_number != $alt_phone) + { + if ($dialed_number != $address3) + { + $dialed_label = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00248',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00249',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$dialed_label = 'XLAST';} + else + {$dialed_label = "X$Xalt_phone_count";} + } + + } + } + else + {$dialed_label = 'ADDR3';} + } + else + {$dialed_label = 'ALT';} + } + } + else + { + $dialed_number = $phone_number; + $dialed_label = 'MAIN'; + if (preg_match('/^M|^V/',$callerid)) + { + $call_type = 'OUT'; + $VDADchannel_group = $campaign; + } + else + { + $call_type = 'IN'; + $stmt = "SELECT campaign_id from vicidial_closer_log where lead_id = '$lead_id' order by call_date desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00183',$user,$server_ip,$session_name,$one_mysql_log);} + $VDCL_mvac_ct = mysql_num_rows($rslt); + if ($VDCL_mvac_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + } + } + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|$VDADchannel_group|$call_type|$dialed_number|$dialed_label\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00113',$user,$server_ip,$session_name,$one_mysql_log);} + + $script_recording_delay=0; + ##### grab number of calls today in this campaign and increment + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00261',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "SELECT campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00114',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_xfer_group = $row[6]; + if (strlen($VDCL_default_xfer_group)<2) {$VDCL_default_xfer_group='X';} + $VDCL_start_call_url = $row[7]; + $VDCL_dispo_call_url = $row[8]; + $VDCL_xferconf_c_number = $row[9]; + $VDCL_xferconf_d_number = $row[10]; + $VDCL_xferconf_e_number = $row[11]; + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00281',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_xferOR_ct = mysql_num_rows($rslt); + if ($VDIG_xferOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|X|X|||||$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number\n|\n"; + + if (ereg('X',$dialed_label)) + { + if (ereg('LAST',$dialed_label)) + { + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' order by alt_phone_count desc limit 1;"; + } + else + { + $Talt_dial = ereg_replace("[^0-9]","",$dialed_label); + $stmt = "SELECT phone_code,phone_number,alt_phone_note,active,alt_phone_count FROM vicidial_list_alt_phones where lead_id='$lead_id' and alt_phone_count='$Talt_dial';"; + } + + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00116',$user,$server_ip,$session_name,$one_mysql_log);} + $VLAP_ct = mysql_num_rows($rslt); + if ($VLAP_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alt_phone_code = $row[0]; + $alt_phone_number = $row[1]; + $alt_phone_note = $row[2]; + $alt_phone_active = $row[3]; + $alt_phone_count = $row[4]; + } + } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00117',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00118',$user,$server_ip,$session_name,$one_mysql_log);} + $VDL_cid_ct = mysql_num_rows($rslt); + if ($VDL_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_front_VDlog =$row[0]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_inbound_groups vig WHERE group_id='$VDADchannel_group' and vs.script_id=vig.ingroup_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00262',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_name,group_color,web_form_address,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_xfer_group,ingroup_recording_override,ingroup_rec_filename,default_group_alias,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00119',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_name = $row[0]; + $VDCL_group_color = $row[1]; + $VDCL_group_web = stripslashes($row[2]); + $VDCL_fronter_display = $row[3]; + $VDCL_ingroup_script = $row[4]; + $VDCL_get_call_launch = $row[5]; + $VDCL_xferconf_a_dtmf = $row[6]; + $VDCL_xferconf_a_number = $row[7]; + $VDCL_xferconf_b_dtmf = $row[8]; + $VDCL_xferconf_b_number = $row[9]; + $VDCL_default_xfer_group = $row[10]; + $VDCL_ingroup_recording_override = $row[11]; + $VDCL_ingroup_rec_filename = $row[12]; + $VDCL_default_group_alias = $row[13]; + $VDCL_group_web_two = stripslashes($row[14]); + $VDCL_timer_action = $row[15]; + $VDCL_timer_action_message = $row[16]; + $VDCL_timer_action_seconds = $row[17]; + $VDCL_start_call_url = $row[18]; + $VDCL_dispo_call_url = $row[19]; + $VDCL_xferconf_c_number = $row[20]; + $VDCL_xferconf_d_number = $row[21]; + $VDCL_xferconf_e_number = $row[22]; + + $stmt = "select campaign_script,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00181',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($VDCL_xferconf_a_dtmf) < 1) + {$VDCL_xferconf_a_dtmf = $row[1];} + if (strlen($VDCL_xferconf_a_number) < 1) + {$VDCL_xferconf_a_number = $row[2];} + if (strlen($VDCL_xferconf_b_dtmf) < 1) + {$VDCL_xferconf_b_dtmf = $row[3];} + if (strlen($VDCL_xferconf_b_number) < 1) + {$VDCL_xferconf_b_number = $row[4];} + if (strlen($VDCL_default_group_alias) < 1) + {$VDCL_default_group_alias = $row[5];} + if (strlen($VDCL_timer_action) < 1) + {$VDCL_timer_action = $row[6];} + if (strlen($VDCL_timer_action_message) < 1) + {$VDCL_timer_action_message = $row[7];} + if (strlen($VDCL_timer_action_seconds) < 1) + {$VDCL_timer_action_seconds = $row[8];} + if (strlen($VDCL_start_call_url) < 1) + {$VDCL_start_call_url = $row[9];} + if (strlen($VDCL_dispo_call_url) < 1) + {$VDCL_dispo_call_url = $row[10];} + if (strlen($VDCL_xferconf_c_number) < 1) + {$VDCL_xferconf_c_number = $row[11];} + if (strlen($VDCL_xferconf_d_number) < 1) + {$VDCL_xferconf_d_number = $row[12];} + if (strlen($VDCL_xferconf_e_number) < 1) + {$VDCL_xferconf_e_number = $row[13];} + + if ( ( (ereg('NONE',$VDCL_ingroup_script)) and (strlen($VDCL_ingroup_script) < 5) ) or (strlen($VDCL_ingroup_script) < 1) ) + { + $VDCL_ingroup_script = $row[0]; + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$campaign' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00263',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $stmt = "select group_web_vars from vicidial_inbound_group_agents where group_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00188',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidgwv_ct = mysql_num_rows($rslt); + if ($VDIG_cidgwv_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + + if (strlen($VDCL_group_web_vars) < 1) + { + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$campaign' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00189',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + ### update the comments in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set comments='INBOUND' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00120',$user,$server_ip,$session_name,$one_mysql_log);} + + $Ctype = 'I'; + } + else + { + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,default_group_alias,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$VDADchannel_group';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00121',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_ingroup_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + $VDCL_default_group_alias = $row[6]; + $VDCL_timer_action = $row[7]; + $VDCL_timer_action_message = $row[8]; + $VDCL_timer_action_seconds = $row[9]; + $VDCL_start_call_url = $row[10]; + $VDCL_dispo_call_url = $row[11]; + $VDCL_xferconf_c_number = $row[12]; + $VDCL_xferconf_d_number = $row[13]; + $VDCL_xferconf_e_number = $row[14]; + } + + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_campaigns vc WHERE campaign_id='$VDADchannel_group' and vs.script_id=vc.campaign_script and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00264',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VDADchannel_group' and user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00190',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_group_web_vars = $row[0]; + } + } + + $VDCL_caller_id_number=''; + if (strlen($VDCL_default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$VDCL_default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00187',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_caller_id_number = $row[0]; + } + } + + ### Check for List ID override settings + if (strlen($list_id)>0) + { + $stmt = "select xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00282',$user,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidOR_ct = mysql_num_rows($rslt); + if ($VDIG_cidOR_ct > 0) + { + $row=mysql_fetch_row($rslt); + if (strlen($row[0]) > 0) + {$VDCL_xferconf_a_number = $row[0];} + if (strlen($row[1]) > 0) + {$VDCL_xferconf_b_number = $row[1];} + if (strlen($row[2]) > 0) + {$VDCL_xferconf_c_number = $row[2];} + if (strlen($row[3]) > 0) + {$VDCL_xferconf_d_number = $row[3];} + if (strlen($row[4]) > 0) + {$VDCL_xferconf_e_number = $row[4];} + } + } + + ### if web form is set then send on to vicidial.php for override of WEB_FORM address + if ( (strlen($VDCL_group_web)>5) or (strlen($VDCL_group_name)>0) ) {echo "$VDCL_group_web|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + else {echo "X|$VDCL_group_name|$VDCL_group_color|$VDCL_fronter_display|$VDADchannel_group|$VDCL_ingroup_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|$VDCL_default_xfer_group|$VDCL_ingroup_recording_override|$VDCL_ingroup_rec_filename|$VDCL_default_group_alias|$VDCL_caller_id_number|$VDCL_group_web_vars|$VDCL_group_web_two|$VDCL_timer_action|$VDCL_timer_action_message|$VDCL_timer_action_seconds|$VDCL_xferconf_c_number|$VDCL_xferconf_d_number|$VDCL_xferconf_e_number|\n";} + + $stmt = "SELECT full_name from vicidial_users where user='$tsr';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00122',$user,$server_ip,$session_name,$one_mysql_log);} + $VDU_cid_ct = mysql_num_rows($rslt); + if ($VDU_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $fronter_full_name = $row[0]; + echo $fronter_full_name . '|' . $tsr . "\n"; + } + else {echo '|' . $tsr . "\n";} + } + + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_lists WHERE list_id='$list_id' and agent_script_override!='' and agent_script_override IS NOT NULL and agent_script_override!='NONE';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00265',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vls_vc_ct = mysql_num_rows($rslt); + if ($vls_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $script_recording_delay=0; + ##### find if script contains recording fields + $stmt="SELECT count(*) FROM vicidial_scripts vs,vicidial_lists vls WHERE list_id='$list_id' and vs.script_id=vls.agent_script_override and script_text LIKE \"%--A--recording_%\";"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00266',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vs_vc_ct = mysql_num_rows($rslt); + if ($vs_vc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_recording_delay = $row[0]; + } + } + } + + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + + $LeaD_InfO = $callerid . "\n"; + $LeaD_InfO .= $lead_id . "\n"; + $LeaD_InfO .= $dispo . "\n"; + $LeaD_InfO .= $tsr . "\n"; + $LeaD_InfO .= $vendor_id . "\n"; + $LeaD_InfO .= $list_id . "\n"; + $LeaD_InfO .= $gmt_offset_now . "\n"; + $LeaD_InfO .= $phone_code . "\n"; + $LeaD_InfO .= $phone_number . "\n"; + $LeaD_InfO .= $title . "\n"; + $LeaD_InfO .= $first_name . "\n"; + $LeaD_InfO .= $middle_initial . "\n"; + $LeaD_InfO .= $last_name . "\n"; + $LeaD_InfO .= $address1 . "\n"; + $LeaD_InfO .= $address2 . "\n"; + $LeaD_InfO .= $address3 . "\n"; + $LeaD_InfO .= $city . "\n"; + $LeaD_InfO .= $state . "\n"; + $LeaD_InfO .= $province . "\n"; + $LeaD_InfO .= $postal_code . "\n"; + $LeaD_InfO .= $country_code . "\n"; + $LeaD_InfO .= $gender . "\n"; + $LeaD_InfO .= $date_of_birth . "\n"; + $LeaD_InfO .= $alt_phone . "\n"; + $LeaD_InfO .= $email . "\n"; + $LeaD_InfO .= $security . "\n"; + $LeaD_InfO .= $comments . "\n"; + $LeaD_InfO .= $called_count . "\n"; + $LeaD_InfO .= $CBentry_time . "\n"; + $LeaD_InfO .= $CBcallback_time . "\n"; + $LeaD_InfO .= $CBuser . "\n"; + $LeaD_InfO .= $CBcomments . "\n"; + $LeaD_InfO .= $dialed_number . "\n"; + $LeaD_InfO .= $dialed_label . "\n"; + $LeaD_InfO .= $source_id . "\n"; + $LeaD_InfO .= $alt_phone_code . "\n"; + $LeaD_InfO .= $alt_phone_number . "\n"; + $LeaD_InfO .= $alt_phone_note . "\n"; + $LeaD_InfO .= $alt_phone_active . "\n"; + $LeaD_InfO .= $alt_phone_count . "\n"; + $LeaD_InfO .= $rank . "\n"; + $LeaD_InfO .= $owner . "\n"; + $LeaD_InfO .= $script_recording_delay . "\n"; + + echo $LeaD_InfO; + + + + $wait_sec=0; + $StarTtime = date("U"); + $stmt = "select wait_epoch,wait_sec from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00123',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $wait_sec = (($StarTtime - $row[0]) + $row[1]); + } + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec',talk_epoch='$StarTtime',lead_id='$lead_id' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00124',$user,$server_ip,$session_name,$one_mysql_log);} + + ### If CALLBK, change vicidial_callback record to INACTIVE + if (eregi("CALLBK|CBHOLD", $dispo)) + { + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='$lead_id' and status NOT IN('INACTIVE','DEAD','ARCHIVE');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00125',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ##### check if system is set to generate logfile for transfers + $stmt="SELECT enable_agc_xfer_log FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00126',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $enable_agc_xfer_log_ct = mysql_num_rows($rslt); + if ($enable_agc_xfer_log_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_agc_xfer_log =$row[0]; + } + + if ( ($WeBRooTWritablE > 0) and ($enable_agc_xfer_log > 0) ) + { + # DATETIME|campaign|lead_id|phone_number|user|type + # 2007-08-22 11:11:11|TESTCAMP|65432|3125551212|1234|A + $fp = fopen ("./xfer_log.txt", "a"); + fwrite ($fp, "$NOW_TIME|$campaign|$lead_id|$phone_number|$user|$Ctype|$callerid|$uniqueid|$province\n"); + fclose($fp); + } + + ### Issue Start Call URL if defined + if (strlen($VDCL_start_call_url) > 7) + { + if (eregi('--A--user_custom_',$VDCL_start_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00283',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + $VDCL_start_call_url = preg_replace('/^VAR/','',$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--list_id--B--',"$list_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--title--B--',"$title",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--first_name--B--',"$first_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--last_name--B--',"$last_name",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address1--B--',"$address1",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address2--B--',"$address2",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--address3--B--',"$address3",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--city--B--',"$city",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--state--B--',"$state",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--province--B--',"$province",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--country_code--B--',"$country_code",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--gender--B--',"$gender",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--email--B--',"$email",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--comments--B--',"$comments",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user--B--',"$user",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--pass--B--',"$pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--campaign--B--',"$campaign",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fronter--B--',"$fronter",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--closer--B--',"$closer",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--group--B--',"$group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--epoch--B--',"$epoch",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--session_id--B--',"$session_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--phone--B--',"$phone",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dispo--B--',"$dispo",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--source_id--B--',"$source_id",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--rank--B--',"$rank",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--owner--B--',"$owner",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--in_script--B--',"$in_script",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--fullname--B--',"$fullname",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time--B--',"0",$VDCL_start_call_url); + $VDCL_start_call_url = eregi_replace('--A--talk_time_min--B--',"0",$VDCL_start_call_url); + if ($DB > 0) {echo "$VDCL_start_call_url
    \n";} + $SCUfile = file("$VDCL_start_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
    \n";} + + ##### BEGIN special filtering and response for Vtiger account balance function ##### + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('callxfer',$VDCL_start_call_url)) and (ereg('contactwsid',$VDCL_start_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + # {"result":true,"durationLimit":3071} + if (strlen($SCUoutput) > 4) + { + $SCUresponse = explode('durationLimit',$SCUoutput); + $durationLimit = preg_replace('/\D/','',$SCUresponse[1]); + $durationLimitSEC = ( ( ($durationLimit + 0) - 3) * 60); # minutes - 3 for 3-minute-warning + if ($durationLimitSEC < 5) {$durationLimitSEC = 5;} + + $stmt="UPDATE vicidial_live_agents set external_timer_action='D1_DIAL',external_timer_action_message='3 minute warning for customer',external_timer_action_seconds='$durationLimitSEC' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $vla_update_timer = mysql_affected_rows($link); + + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$VDCL_start_call_url\n$SCUoutput\n$durationLimit|$durationLimitSEC|$vla_update_timer\n"); + fclose($fp); + } + } + ##### END special filtering and response for Vtiger account balance function ##### + } + } + else + { + echo "0\n"; + # echo "No calls in QUEUE for $user on $server_ip\n"; + exit; + } + } + } + + +################################################################################ +### userLOGout - Logs the user out of VICIDiaL client, deleting db records and +### inserting into vicidial_user_log +################################################################################ +if ($ACTION == 'userLOGout') + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($campaign)<1) || (strlen($conf_exten)<1) ) + { + echo "NO\n"; + echo "campaign $campaign or conf_exten $conf_exten is not valid\n"; + exit; + } + else + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00127',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + ##### Insert a LOGOUT record into the user log + $stmt="INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$user','LOGOUT','$campaign','$NOW_TIME','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00128',$user,$server_ip,$session_name,$one_mysql_log);} + $vul_insert = mysql_affected_rows($link); + + if ($no_delete_sessions < 1) + { + ##### Remove the reservation on the vicidial_conferences meetme room + $stmt="UPDATE vicidial_conferences set extension='' where server_ip='$server_ip' and conf_exten='$conf_exten';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00129',$user,$server_ip,$session_name,$one_mysql_log);} + $vc_remove = mysql_affected_rows($link); + } + + ##### Delete the web_client_sessions + $stmt="DELETE from web_client_sessions where server_ip='$server_ip' and session_name ='$session_name';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00132',$user,$server_ip,$session_name,$one_mysql_log);} + $wcs_delete = mysql_affected_rows($link); + + ##### Hangup the client phone + $stmt="SELECT channel FROM live_sip_channels where server_ip = '$server_ip' and channel LIKE \"$protocol/$extension%\" order by channel desc;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00133',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) + { + $row=mysql_fetch_row($rslt); + $agent_channel = "$row[0]"; + if ($format=='debug') {echo "\n";} + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Hangup','ULGH3459$StarTtime','Channel: $agent_channel','','','','','','','','','');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00134',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($LogouTKicKAlL > 0) + { + $local_DEF = 'Local/5555'; + $local_AMP = '@'; + $kick_local_channel = "$local_DEF$conf_exten$local_AMP$ext_context"; + $queryCID = "ULGH3458$StarTtime"; + + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$queryCID','Channel: $kick_local_channel','Context: $ext_context','Exten: 8300','Priority: 1','Callerid: $queryCID','','','','$channel','$exten');"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00135',$user,$server_ip,$session_name,$one_mysql_log);} + } + + sleep(1); + + ##### Delete the vicidial_live_agents record for this session + $stmt="DELETE from vicidial_live_agents where server_ip='$server_ip' and user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00130',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9130$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $vla_delete = mysql_affected_rows($link); + + ##### Delete the vicidial_live_inbound_agents records for this session + $stmt="DELETE from vicidial_live_inbound_agents where user ='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00131',$user,$server_ip,$session_name,$one_mysql_log);} + $vlia_delete = mysql_affected_rows($link); + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,talk_epoch,dispo_epoch,agent_log_id from vicidial_agent_log where agent_log_id >= '$agent_log_id' and user='$user' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00136',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ( ($VDpr_ct > 0) and (strlen($row[3]<5)) and (strlen($row[4]<5)) ) + { + $agent_log_id = $row[5]; + $row=mysql_fetch_row($rslt); + $pause_sec = (($StarTtime - $row[0]) + $row[1]); + + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00137',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($vla_delete > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00138',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_message = 'LOGGED OUT'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_message\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + # $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='$campaign',agent='Agent/$user',verb='PAUSE',serverid='1';"; + # if ($DB) {echo "$stmt\n";} + # + # $rslt=mysql_query($stmt, $linkB); + # $affected_rows = mysql_affected_rows($linkB); + + $stmt = "SELECT time_id FROM queue_log where agent='Agent/$user' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00139',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + echo "$stmt\n"; + $li_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $li_conf_ct) + { + $row=mysql_fetch_row($rslt); + $logintime = $row[0]; + $i++; + } + + $time_logged_in = ($StarTtime - $logintime); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='AGENTLOGOFF',data1='$user$agents',data2='$time_logged_in',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00140',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + echo "$vul_insert|$vc_remove|$vla_delete|$wcs_delete|$agent_channel|$vlia_delete\n"; + } + } + + +################################################################################ +### updateDISPO - update the vicidial_list table to reflect the agent choice of +### call disposition for that leand +################################################################################ +if ($ACTION == 'updateDISPO') + { + $MT[0]=''; + $row=''; $rowx=''; + $MAN_vl_insert=0; + if ( (strlen($dispo_choice)<1) || (strlen($lead_id)<1) ) + { + echo "Dispo Choice $dispo or lead_id $lead_id is not valid\n"; + exit; + } + else + { + $stmt = "SELECT dispo_call_url from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00284',$user,$server_ip,$session_name,$one_mysql_log);} + $VC_dcu_ct = mysql_num_rows($rslt); + if ($VC_dcu_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_call_url =$row[0]; + } + + ### reset the API fields in vicidial_live_agents record + $stmt = "UPDATE vicidial_live_agents set lead_id=0,external_hangup=0,external_status='',external_update_fields='0',external_update_fields_data='',external_timer_action_seconds='-1',last_state_change='$NOW_TIME' where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00141',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9141$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($auto_dial_level < 1) + { + $stmt = "UPDATE vicidial_live_agents set status='PAUSED',callerid='' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00285',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="UPDATE vicidial_list set status='$dispo_choice', user='$user' where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00142',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT count(*) from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00143',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt = "UPDATE vicidial_closer_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00144',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt = "SELECT dispo_call_url from vicidial_inbound_groups where group_id='$stage';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00286',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $dispo_call_url = $row[0]; + } + else + { + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + if ( ($auto_dial_level < 1) or (preg_match('/^M/',$MDnextCID)) ) + { + $stmt = "SELECT count(*) from vicidial_log where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\";"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $VLlist_id = ''; $VLphone_number = ''; $VLphone_code = ''; $user_group=''; + $stmt = "SELECT user_group FROM vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VUinfo_ct = mysql_num_rows($rslt); + if ($VUinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = "$row[0]"; + } + + $stmt = "SELECT list_id,phone_number,phone_code,alt_phone,address3 FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VLinfo_ct = mysql_num_rows($rslt); + if ($VLinfo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLlist_id = "$row[0]"; + if (strlen($phone_number)<6) + { + $VLphone_number = "$row[1]"; + $VLalt = 'MAIN'; + $VLalt_phone = "$row[3]"; + $VLaddress3 = "$row[4]"; + } + else + { + $VLphone_number = "$phone_number"; + if ($phone_number == "$row[1]") + {$VLalt = 'MAIN';} + else + { + if ($phone_number != $VLalt_phone) + { + if ($phone_number != $VLaddress3) + { + $VLalt = 'X1'; + $stmt = "SELECT alt_phone_count from vicidial_list_alt_phones where lead_id='$lead_id' and phone_number = '$dialed_number' order by alt_phone_count limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00250',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAP_cid_ct = mysql_num_rows($rslt); + if ($VDACP_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Xalt_phone_count =$row[0]; + + $stmt = "SELECT count(*) from vicidial_list_alt_phones where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00251',$user,$server_ip,$session_name,$one_mysql_log);} + $VDAPct_cid_ct = mysql_num_rows($rslt); + if ($VDACPct_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $COUNTalt_phone_count =$row[0]; + + if ($COUNTalt_phone_count <= $Xalt_phone_count) + {$VLalt = 'XLAST';} + else + {$VLalt = "X$Xalt_phone_count";} + } + + } + } + else + {$VLalt = 'ADDR3';} + } + else + {$VLalt = 'ALT';} + } + } + if (strlen($phone_code)<1) + {$VLphone_code = "$row[2]";} + else + {$VLphone_code = "$phone_code";} + } + + $PADlead_id = sprintf("%09s", $lead_id); + while (strlen($PADlead_id) > 9) {$PADlead_id = substr("$PADlead_id", 0, -1);} + $FAKEcall_id = "$StarTtime.$PADlead_id"; + $stmt = "INSERT INTO vicidial_log set uniqueid='$FAKEcall_id',lead_id='$lead_id',list_id='$VLlist_id',campaign_id='$campaign',call_date='$NOW_TIME',start_epoch='$StarTtime',end_epoch='$StarTtime',length_in_sec='0',status='$dispo_choice',phone_code='$VLphone_code',phone_number='$VLphone_number',user='$user',comments='MANUAL',processed='N',user_group='$user_group',term_reason='AGENT',alt_dial='$VLalt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + + $MAN_vl_insert++; + } + + $stmt="DELETE FROM vicidial_auto_calls where callerid='$MDnextCID';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="UPDATE vicidial_log set status='$dispo_choice' where lead_id='$lead_id' and user='$user' and call_date > \"$four_hours_ago\" order by uniqueid desc limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00145',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + + ### find all DNC-type statuses in the system + if ( ($use_internal_dnc=='Y') or ($use_campaign_dnc=='Y') ) + { + $DNC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00195',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + $stmt = "SELECT status FROM vicidial_campaign_statuses where dnc='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00196',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dncvcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dncvcs_ct) + { + $row=mysql_fetch_row($rslt); + $DNC_string_check .= "$row[0]|"; + $i++; + } + + # echo "$DNC_string_check"; + } + + $insert_into_dnc=0; + if ( ($use_internal_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00146',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$row[0]');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00147',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + if ( ($use_campaign_dnc=='Y') and (eregi("\|$dispo_choice\|", $DNC_string_check) ) ) + { + $stmt = "select phone_number from vicidial_list where lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00148',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$row[0]','$campaign');"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00149',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $insert_into_dnc++; + } + } + + $dispo_sec=0; + $dispo_epochSQL=''; + $lead_id_commentsSQL=''; + $StarTtime = date("U"); + $stmt = "select dispo_epoch,dispo_sec,talk_epoch,wait_epoch,lead_id,comments,agent_log_id from vicidial_agent_log where agent_log_id <='$agent_log_id' and lead_id='$lead_id' order by agent_log_id desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00150',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $agent_log_id = $row[6]; + if ( (eregi("NULL",$row[2])) or ($row[2] < 1000) ) + { + $row[2]=$StarTtime; + $wait_sec=($row[2] - $row[3]); + $dispo_epochSQL = ",talk_epoch='$row[2]',wait_sec='$wait_sec'"; + } + if ( (eregi("NULL",$row[0])) or ($row[0] < 1000) ) + { + $dispo_epochSQL .= ",dispo_epoch='$StarTtime'"; + $row[0]=$row[2]; + } + $dispo_sec = (($StarTtime - $row[0]) + $row[1]); + if ( (preg_match('/^M/',$MDnextCID)) and (preg_match('/INBOUND_MAN/',$dial_method)) ) + { + if ( (eregi("NULL",$row[5])) or (strlen($row[5]) < 1) ) + { + $lead_id_commentsSQL .= ",comments='MANUAL'"; + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1) or (strlen($row[4]) < 1) ) + { + $lead_id_commentsSQL .= ",lead_id='$lead_id'"; + } + } + } + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec',status='$dispo_choice' $dispo_epochSQL $lead_id_commentsSQL where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00151',$user,$server_ip,$session_name,$one_mysql_log);} + + $stmt="UPDATE vicidial_campaigns set campaign_calldate='$NOW_TIME' where campaign_id='$campaign';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00272',$user,$server_ip,$session_name,$one_mysql_log);} + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00152',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + $CALL_agent_log_id = $agent_log_id; + + if ($auto_dial_level < 1) + { + $MAN_insert_leadIDsql=''; + if ($MAN_vl_insert > 0) + {$MAN_insert_leadIDsql = ",lead_id='$lead_id'";} + $stmt="INSERT INTO vicidial_agent_log SET user='$user',server_ip='$server_ip',event_time='$NOW_TIME',campaign_id='$campaign',pause_epoch='$StarTtime',pause_sec='0',wait_epoch='$StarTtime',user_group='$user_group'$MAN_insert_leadIDsql;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00220',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + + ### CALLBACK ENTRY + if ( ($dispo_choice == 'CBHOLD') and (strlen($CallBackDatETimE)>10) ) + { + $comments = eregi_replace('"','',$comments); + $comments = eregi_replace("'",'',$comments); + $comments = eregi_replace(';','',$comments); + $comments = eregi_replace("\\\\",' ',$comments); + $stmt="INSERT INTO vicidial_callbacks (lead_id,list_id,campaign_id,status,entry_time,callback_time,user,recipient,comments,user_group) values('$lead_id','$list_id','$campaign','ACTIVE','$NOW_TIME','$CallBackDatETimE','$user','$recipient','$comments','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00154',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $stmt="SELECT auto_alt_dial_statuses,use_internal_dnc,use_campaign_dnc from vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00155',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VC_auto_alt_dial_statuses = $row[0]; + $use_internal_dnc = $row[1]; + $use_campaign_dnc = $row[2]; + + if ( ($auto_dial_level > 0) and (ereg(" $dispo_choice ",$VC_auto_alt_dial_statuses)) ) + { + $stmt = "select count(*) from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00156',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + ##### Check for alt phone number in DNC list if applicable + $UD_DNC_campaign=0; + $UD_DNC_internal=0; + $vh_phone=''; + $stmt="SELECT phone_number FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00267',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vh_phone = $row[0]; + } + + if ( (ereg("Y",$use_internal_dnc)) or (ereg("AREACODE",$use_internal_dnc)) ) + { + if (ereg("AREACODE",$use_internal_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode');"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_dnc where phone_number='$vh_phone';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00268',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_internal = $row[0]; + } + } + + if ( (ereg("Y",$use_campaign_dnc)) or (ereg("AREACODE",$use_campaign_dnc)) ) + { + if (ereg("AREACODE",$use_campaign_dnc)) + { + $vhp_phone_areacode = substr($vh_phone, 0, 3); + $vhp_phone_areacode .= "XXXXXXX"; + $stmtA="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$vh_phone','$vhp_phone_areacode') and campaign_id='$campaign';"; + } + else + {$stmtA="SELECT count(*) FROM vicidial_campaign_dnc where phone_number='$vh_phone' and campaign_id='$campaign';";} + $rslt=mysql_query($stmtA, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmtA,'00269',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ud_record_ct = mysql_num_rows($rslt); + if ($ud_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $UD_DNC_campaign = $row[0]; + } + } + + if ( ($UD_DNC_campaign > 0) or ($UD_DNC_internal > 0) ) + { + if ( ( (ereg(" DNCC ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_campaign > 0) ) or ( (ereg(" DNCL ",$VC_auto_alt_dial_statuses)) and ($UD_DNC_internal > 0) ) ) + { + $stmt="UPDATE vicidial_hopper set status='DNC' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + else + { + $stmt="UPDATE vicidial_hopper set status='READY' where lead_id='$lead_id' and status='HOLD' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00157',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + else + { + $stmt="DELETE from vicidial_hopper where lead_id='$lead_id' and status='HOLD';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00158',$user,$server_ip,$session_name,$one_mysql_log);} + } + + ####### START Vtiger Call Logging ####### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00197',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + + if ($enable_vtiger_integration > 0) + { + $stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead,vtiger_status_call FROM vicidial_campaigns where campaign_id='$campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00198',$user,$server_ip,$session_name,$one_mysql_log);} + $vtc_conf_ct = mysql_num_rows($rslt); + if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + $vtiger_status_call = $row[4]; + } + if ( (ereg('ACCTID',$vtiger_search_category)) or (ereg('ACCOUNT',$vtiger_search_category)) ) + { + ### find the full status name for this status + $stmt = "select status_name from vicidial_statuses where status='$dispo_choice';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + else + { + $stmt = "select status_name from vicidial_campaign_statuses where status='$dispo_choice' and campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + $vs_ct = mysql_num_rows($rslt); + if ($vs_ct > 0) + { + $row=mysql_fetch_row($rslt); + $status_name = $row[0]; + } + } + if (strlen($status_name) < 1) {$status_name = $dispo_chioce;} + + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + + $stmt = "SELECT vendor_lead_code FROM vicidial_list where lead_id='$lead_id';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00210',$user,$server_ip,$session_name,$one_mysql_log);} + $vlc_ct = mysql_num_rows($rslt); + if ($vlc_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vendor_id = $row[0]; + } + + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00199',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VIDcount = $row[0]; + if ($VIDcount > 0) + { + ### create a call record in vtiger linked to the account + if (ereg('DISPO',$vtiger_create_call_record)) + { + $TODAY = date("Y-m-d"); + $HHMMnow = date("H:i"); + $minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); + $HHMMend = date("H:i",$minute_old); + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00200',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + ## if numbered callback activity record, alter existing record + $vtiger_callback_modified=0; + if ($vtiger_callback_id > 0) + { + # make sure the ID is present in Vtiger database as an account + $stmt="SELECT count(*) from vtiger_seactivityrel where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_act_ct = mysql_num_rows($rslt); + if ($vt_act_ct > 0) + { + $row=mysql_fetch_row($rslt); + $activity_check = $row[0]; + } + if ($activity_check > 0) + { + $act_description=''; + $stmt="SELECT description from vtiger_crmentity where crmid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00214',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_description = $row[0]; + } + $act_subject=''; + $stmt="SELECT subject from vtiger_activity where activityid='$vtiger_callback_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $vt_actd_ct = mysql_num_rows($rslt); + if ($vt_actd_ct > 0) + { + $row=mysql_fetch_row($rslt); + $act_subject = $row[0]; + } + + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', description='$act_description - VICIDIAL Call user $user',modifiedtime='$NOW_TIME',viewedtime='$NOW_TIME' where crmid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $stmt = "UPDATE vtiger_activity SET subject='VC Call: $status_name - $act_subject',date_start='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',eventstatus='Held' where activityid='$vtiger_callback_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $vtiger_callback_modified=1; + } + } + + ## create new activity record + if ($vtiger_callback_modified < 1) + { + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00201',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00202',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00203',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00204',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00205',$user,$server_ip,$session_name,$one_mysql_log);} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VC Call: $status_name',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00206',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + } + } + ### update the status of the record in vtiger + if (ereg('Y',$vtiger_status_call)) + { + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00207',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + + #Update vtiger_crmentity + $stmt = "UPDATE vtiger_crmentity SET modifiedby='$user_id', modifiedtime='$NOW_TIME' where crmid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00208',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + if ($insert_into_dnc > 0) {$emailoptoutSQL = ", emailoptout='1'";} + #Update vtiger_account dnc=emailoptout + $stmt = "UPDATE vtiger_account SET siccode='$status_name' $emailoptoutSQL where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00209',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "|$leadid|\n";} + + + ### check and see if the custom date fields exist, if they do then update them if necessary + # Date of Last Attempt, Date of Last Non-Contact, Date of Last Contact, Date of Last Sale + + # first find the sale statuses that are in the system + $SALE_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00211',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where sale='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00212',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $salevcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $salevcs_ct) + { + $row=mysql_fetch_row($rslt); + $SALE_string_check .= "$row[0]|"; + $i++; + } + + # second find the customer contact statuses that are in the system + $CC_string_check = '|'; + $stmt = "SELECT status FROM vicidial_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00213',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + $stmt = "SELECT status FROM vicidial_campaign_statuses where customer_contact='Y';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00287',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $cc_vcs_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $cc_vcs_ct) + { + $row=mysql_fetch_row($rslt); + $CC_string_check .= "$row[0]|"; + $i++; + } + + # third calculate what custom date fields need their date updated + $VT_last_noncontact_update=0; $VT_last_noncontact_ct=0; + $VT_last_contact_update=0; $VT_last_contact_ct=0; + $VT_last_sale_update=0; $VT_last_sale_ct=0; + if (eregi("\|$dispo_choice\|", $SALE_string_check) ) + {$VT_last_sale_update++;} + if (eregi("\|$dispo_choice\|", $CC_string_check) ) + {$VT_last_contact_update++;} + else + {$VT_last_noncontact_update++;} + + # fourth see if the vtiger database has the custom date fields in it + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00215',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_ct = $row[0]; + + if ($VT_last_noncontact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00216',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_ct = $row[0]; + } + if ($VT_last_contact_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00217',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_ct = $row[0]; + } + if ($VT_last_sale_update > 0) + { + $stmt="SELECT count(*) from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00218',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_ct = $row[0]; + } + + # fifth find the fieldnames if they exist and update the dates + if ($VT_last_attempt_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Attempt';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00219',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_attempt_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_attempt_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00223',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_noncontact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Non-Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00220',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_noncontact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_noncontact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00224',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_contact_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Contact';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00221',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_contact_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_contact_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + } + if ($VT_last_sale_ct > 0) + { + $stmt="SELECT fieldname from vtiger_field where fieldlabel='Date of Last Sale';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00222',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VT_last_sale_field = $row[0]; + + $stmt = "UPDATE vtiger_accountscf SET $VT_last_sale_field='$TODAY' where accountid='$vendor_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkV,$mel,$stmt,'00226',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + } + } + } + ####### END Vtiger Call Logging ####### + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00159',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + if (strlen($stage) < 2) + {$stage = $campaign;} + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='$MDnextCID',queue='$stage',agent='Agent/$user',verb='CALLSTATUS',data1='$dispo_choice',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00160',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + + ### Issue Dispo Call URL if defined + if (strlen($dispo_call_url) > 7) + { + $talk_time=0; + $talk_time_ms=0; + $talk_time_min=0; + if (eregi('--A--user_custom_',$dispo_call_url)) + { + $stmt = "select custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00288',$user,$server_ip,$session_name,$one_mysql_log);} + $VUC_ct = mysql_num_rows($rslt); + if ($VUC_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_custom_one = $row[0]; + $user_custom_two = $row[1]; + $user_custom_three = $row[2]; + $user_custom_four = $row[3]; + $user_custom_five = $row[4]; + } + } + + if (eregi('--A--talk_time',$dispo_call_url)) + { + $stmt = "select talk_sec,dead_sec from vicidial_agent_log where lead_id='$lead_id' and agent_log_id='$CALL_agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00289',$user,$server_ip,$session_name,$one_mysql_log);} + $VAL_talk_ct = mysql_num_rows($rslt); + if ($VAL_talk_ct > 0) + { + $row=mysql_fetch_row($rslt); + $talk_sec = $row[0]; + $dead_sec = $row[1]; + $talk_time = ($talk_sec - $dead_sec); + if ($talk_time < 1) + { + $talk_time = 0; + $talk_time_ms = 0; + } + else + { + $talk_time_ms = ($talk_time * 1000); + $talk_time_min = ceil($talk_time / 60); + } + } + } + + ##### grab the data from vicidial_list for the lead_id + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner FROM vicidial_list where lead_id='$lead_id' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00290',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $list_lead_ct = mysql_num_rows($rslt); + if ($list_lead_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo = trim("$row[3]"); + $tsr = trim("$row[4]"); + $vendor_id = trim("$row[5]"); + $vendor_lead_code = trim("$row[5]"); + $source_id = trim("$row[6]"); + $list_id = trim("$row[7]"); + $gmt_offset_now = trim("$row[8]"); + $phone_code = trim("$row[10]"); + $phone_number = trim("$row[11]"); + $title = trim("$row[12]"); + $first_name = trim("$row[13]"); + $middle_initial = trim("$row[14]"); + $last_name = trim("$row[15]"); + $address1 = trim("$row[16]"); + $address2 = trim("$row[17]"); + $address3 = trim("$row[18]"); + $city = trim("$row[19]"); + $state = trim("$row[20]"); + $province = trim("$row[21]"); + $postal_code = trim("$row[22]"); + $country_code = trim("$row[23]"); + $gender = trim("$row[24]"); + $date_of_birth = trim("$row[25]"); + $alt_phone = trim("$row[26]"); + $email = trim("$row[27]"); + $security = trim("$row[28]"); + $comments = stripslashes(trim("$row[29]")); + $called_count = trim("$row[30]"); + $rank = trim("$row[32]"); + $owner = trim("$row[33]"); + } + + $dispo_call_url = preg_replace('/^VAR/','',$dispo_call_url); + $dispo_call_url = eregi_replace('--A--lead_id--B--',"$lead_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_id--B--',"$vendor_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--list_id--B--',"$list_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_code--B--',"$phone_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_number--B--',"$phone_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--title--B--',"$title",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--first_name--B--',"$first_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--middle_initial--B--',"$middle_initial",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--last_name--B--',"$last_name",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address1--B--',"$address1",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address2--B--',"$address2",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--address3--B--',"$address3",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--city--B--',"$city",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--state--B--',"$state",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--province--B--',"$province",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--postal_code--B--',"$postal_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--country_code--B--',"$country_code",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--gender--B--',"$gender",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--alt_phone--B--',"$alt_phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--email--B--',"$email",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--security_phrase--B--',"$security_phrase",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--comments--B--',"$comments",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user--B--',"$user",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--pass--B--',"$pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--campaign--B--',"$campaign",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_login--B--',"$phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone_pass--B--',"$phone_pass",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fronter--B--',"$fronter",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--closer--B--',"$closer",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--group--B--',"$group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--channel_group--B--',"$channel_group",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SQLdate--B--',"$SQLdate",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--epoch--B--',"$epoch",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--uniqueid--B--',"$uniqueid",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--server_ip--B--',"$server_ip",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--SIPexten--B--',"$SIPexten",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--session_id--B--',"$session_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--phone--B--',"$phone",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--parked_by--B--',"$parked_by",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dispo--B--',"$dispo",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_number--B--',"$dialed_number",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--dialed_label--B--',"$dialed_label",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--source_id--B--',"$source_id",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--rank--B--',"$rank",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--owner--B--',"$owner",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--camp_script--B--',"$camp_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--in_script--B--',"$in_script",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--fullname--B--',"$fullname",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time--B--',"$talk_time",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_ms--B--',"$talk_time_ms",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--talk_time_min--B--',"$talk_time_min",$dispo_call_url); + $dispo_call_url = eregi_replace('--A--agent_log_id--B--',"$CALL_agent_log_id",$dispo_call_url); + if ($DB > 0) {echo "$dispo_call_url
    \n";} + $SCUfile = file("$dispo_call_url"); + if ($DB > 0) {echo "$SCUfile[0]
    \n";} + + $stmt = "SELECT enable_vtiger_integration FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00XXX',$user,$server_ip,$session_name,$one_mysql_log);} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + } + if ( ($enable_vtiger_integration > 0) and (ereg('mode=callend',$dispo_call_url)) and (ereg('contactwsid',$dispo_call_url)) ) + { + $SCUoutput=''; + foreach ($SCUfile as $SCUline) + {$SCUoutput .= "$SCUline";} + $fp = fopen ("./call_url_log.txt", "a"); + fwrite ($fp, "$dispo_call_url\n$SCUoutput\n"); + fclose($fp); + } + } + echo 'Lead ' . $lead_id . ' has been changed to ' . $dispo_choice . " Status\nNext agent_log_id:\n" . $agent_log_id . "\n"; + } + +################################################################################ +### updateLEAD - update the vicidial_list table to reflect the values that are +### in the agents screen at time of call hangup +################################################################################ +if ($ACTION == 'updateLEAD') + { + $MT[0]=''; + $row=''; $rowx=''; + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + if ( (strlen($phone_number)<1) || (strlen($lead_id)<1) ) + { + echo "phone_number $phone_number or lead_id $lead_id is not valid\n"; + exit; + } + else + { + $stmt = "SELECT disable_alter_custdata,disable_alter_custphone FROM vicidial_campaigns where campaign_id='$campaign'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00161',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $dac_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $dac_conf_ct) + { + $row=mysql_fetch_row($rslt); + $disable_alter_custdata = $row[0]; + $disable_alter_custphone = $row[1]; + $i++; + } + if ( (ereg('Y',$disable_alter_custdata)) or (ereg('Y',$disable_alter_custphone)) ) + { + if (ereg('Y',$disable_alter_custdata)) + { + $DO_NOT_UPDATE=1; + $DO_NOT_UPDATE_text=' NOT'; + } + if (ereg('Y',$disable_alter_custphone)) + { + $DO_NOT_UPDATEphone=1; + } + $stmt = "SELECT alter_custdata_override,alter_custphone_override FROM vicidial_users where user='$user'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00162',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $aco_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $aco_conf_ct) + { + $row=mysql_fetch_row($rslt); + $alter_custdata_override = $row[0]; + $alter_custphone_override = $row[1]; + $i++; + } + if (ereg('ALLOW_ALTER',$alter_custdata_override)) + { + $DO_NOT_UPDATE=0; + $DO_NOT_UPDATE_text=''; + } + if (ereg('ALLOW_ALTER',$alter_custphone_override)) + { + $DO_NOT_UPDATEphone=0; + } + } + + if ($DO_NOT_UPDATE < 1) + { + $comments = eregi_replace("\r",'',$comments); + $comments = eregi_replace("\n",'!N',$comments); + $comments = eregi_replace("--AMP--",'&',$comments); + $comments = eregi_replace("--QUES--",'?',$comments); + $comments = eregi_replace("--POUND--",'#',$comments); + + $phoneSQL=''; + if ($DO_NOT_UPDATEphone < 1) + {$phoneSQL = ",phone_number='$phone_number'";} + + $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) . "' $phoneSQL where lead_id='$lead_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00163',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set random_id='$random' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00164',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9164$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + } + echo "Lead $lead_id information has$DO_NOT_UPDATE_text been updated\n"; + } + + +################################################################################ +### VDADpause - update the vicidial_live_agents table to show that the agent is +### or ready now active and ready to take calls +################################################################################ +if ( ($ACTION == 'VDADpause') || ($ACTION == 'VDADready') ) + { + $MT[0]=''; + $row=''; $rowx=''; + if ( (strlen($stage)<2) || (strlen($server_ip)<1) ) + { + echo "stage $stage is not valid\n"; + exit; + } + else + { + $vla_autodialSQL=''; + if (preg_match('/INBOUND_MAN/',$dial_method)) + {$vla_autodialSQL = ",outbound_autodial='N'";} + $random = (rand(1000000, 9999999) + 10000000); + $stmt="UPDATE vicidial_live_agents set uniqueid=0,callerid='',channel='', random_id='$random',comments='',last_state_change='$NOW_TIME' $vla_autodialSQL where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00165',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9165$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + + if ($comments != 'NO_STATUS_CHANGE') + { + $stmt="UPDATE vicidial_live_agents set status='$stage' where user='$user' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {$errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00166',$user,$server_ip,$session_name,$one_mysql_log);} + $retry_count=0; + while ( ($errno > 0) and ($retry_count < 9) ) + { + $rslt=mysql_query($stmt, $link); + $one_mysql_log=1; + $errno = mysql_error_logging($NOW_TIME,$link,$mel,$stmt,"9166$retry_count",$user,$server_ip,$session_name,$one_mysql_log); + $one_mysql_log=0; + $retry_count++; + } + $affected_rows = mysql_affected_rows($link); + } + if ( ($affected_rows > 0) or ($comments == 'NO_STATUS_CHANGE') ) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00167',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + if ( (ereg('READY',$stage)) or (ereg('CLOSER',$stage)) ) {$QMstatus='UNPAUSEALL';} + if (ereg('PAUSE',$stage)) {$QMstatus='PAUSEALL';} + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='$QMstatus',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00168',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + + $pause_sec=0; + $stmt = "select pause_epoch,pause_sec,wait_epoch,wait_sec,dispo_epoch from vicidial_agent_log where agent_log_id='$agent_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00169',$user,$server_ip,$session_name,$one_mysql_log);} + $VDpr_ct = mysql_num_rows($rslt); + if ($VDpr_ct > 0) + { + $row=mysql_fetch_row($rslt); + $dispo_epoch = $row[4]; + $wait_sec=0; + if ($row[2] > 0) + { + $wait_sec = (($StarTtime - $row[2]) + $row[3]); + } + if ( (eregi("NULL",$row[4])) or ($row[4] < 1000) ) + {$pause_sec = (($StarTtime - $row[0]) + $row[1]);} + else + {$pause_sec = (($row[4] - $row[0]) + $row[1]);} + + } + if ($ACTION == 'VDADready') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set pause_sec='$pause_sec',wait_epoch='$StarTtime' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00170',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($ACTION == 'VDADpause') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set wait_sec='$wait_sec' where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00171',$user,$server_ip,$session_name,$one_mysql_log);} + } + + $agent_log = 'NEW_ID'; + } + + if ($wrapup == 'WRAPUP') + { + if ( (eregi("NULL",$dispo_epoch)) or ($dispo_epoch < 1000) ) + { + $stmt="UPDATE vicidial_agent_log set dispo_epoch='$StarTtime', dispo_sec='0' where agent_log_id='$agent_log_id';"; + } + else + { + $dispo_sec = ($StarTtime - $dispo_epoch); + $stmt="UPDATE vicidial_agent_log set dispo_sec='$dispo_sec' where agent_log_id='$agent_log_id';"; + } + + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00194',$user,$server_ip,$session_name,$one_mysql_log);} + } + + if ($agent_log == 'NEW_ID') + { + $user_group=''; + $stmt="SELECT user_group FROM vicidial_users where user='$user' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00182',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $ug_record_ct = mysql_num_rows($rslt); + if ($ug_record_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = trim("$row[0]"); + } + + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group) values('$user','$server_ip','$NOW_TIME','$campaign','$StarTtime','0','$StarTtime','$user_group');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00153',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00221',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + } + } + echo 'Agent ' . $user . ' is now in status ' . $stage . "\nNext agent_log_id:\n$agent_log_id\n"; + } + + +################################################################################ +### UpdatEFavoritEs - update the astguiclient favorites list for this extension +################################################################################ +if ($ACTION == 'UpdatEFavoritEs') + { + $row=''; $rowx=''; + $channel_live=1; + if ( (strlen($favorites_list)<1) || (strlen($user)<1) || (strlen($exten)<1) ) + { + echo "favorites list $favorites_list is not valid\n"; + exit; + } + else + { + $stmt = "select count(*) from phone_favorites where extension='$exten' and server_ip='$server_ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00172',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + if ($row[0] > 0) + { + $stmt="UPDATE phone_favorites set extensions_list=\"$favorites_list\" where extension='$exten' and server_ip='$server_ip';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00173',$user,$server_ip,$session_name,$one_mysql_log);} + } + else + { + $stmt="INSERT INTO phone_favorites values('$exten','$server_ip',\"$favorites_list\");"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00174',$user,$server_ip,$session_name,$one_mysql_log);} + } + } + echo "Favorites list has been updated to $favorites_list for $exten\n"; + } + + +################################################################################ +### PauseCodeSubmit - Update vicidial_agent_log with pause code +################################################################################ +if ($ACTION == 'PauseCodeSubmit') + { + $row=''; $rowx=''; + if ( (strlen($status)<1) || (strlen($agent_log_id)<1) ) + { + echo "agent_log_id $agent_log_id or pause_code $status is not valid\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_agent_log set sub_status=\"$status\" where agent_log_id='$agent_log_id';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00175',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00176',$user,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $allow_sipsak_messages = $row[6]; + $i++; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'BK-'; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$status\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + } + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtime',call_id='NONE',queue='NONE',agent='Agent/$user',verb='PAUSEREASON',serverid='$queuemetrics_log_id',data1='$status';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'00177',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + + mysql_close($linkB); + } + } + } + echo " Pause Code has been updated to $status for $agent_log_id\n"; + } + + +################################################################################ +### AGENTSview - List statuses of other agents in sidebar or xfer frame +################################################################################ +if ($ACTION == 'AGENTSview') + { + $stmt="SELECT user_group from vicidial_users where user='$user' and pass='$pass'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00225',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $VU_user_group = $row[0]; + + $agent_status_viewable_groupsSQL=''; + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00226',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $agent_status_viewable_groups = $row[0]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[1] == 'Y') + {$agent_status_view_time=1;} + $andSQL=''; + if (ereg("ALL-GROUPS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "";} + else + { + $AGENTviewSQL = "($agent_status_viewable_groupsSQL)"; + + if (ereg("CAMPAIGN-AGENTS",$agent_status_viewable_groups)) + {$AGENTviewSQL = "($AGENTviewSQL or (campaign_id='$campaign'))";} + $AGENTviewSQL = "and $AGENTviewSQL"; + } + if ($comments=='AgentXferViewSelect') + {$AGENTviewSQL .= " and (vla.closer_campaigns LIKE \"%AGENTDIRECT%\")";} + + + echo ""; + ### Gather agents data and statuses + $stmt="SELECT vla.user,vla.status,vu.full_name,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish) from vicidial_live_agents vla,vicidial_users vu where vla.user=vu.user $AGENTviewSQL order by vu.full_name;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00227',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agents_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($agents_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $user = $row[0]; + $status = $row[1]; + $full_name = $row[2]; + $call_start = $row[3]; + $call_finish = $row[4]; + + if ( ($status=='READY') or ($status=='CLOSER') ) + { + $statuscolor='#ADD8E6'; + $call_time = ($StarTtime - $call_finish); + } + if ( ($status=='QUEUE') or ($status=='INCALL') ) + { + $statuscolor='#D8BFD8'; + $call_time = ($StarTtime - $call_start); + } + if ($status=='PAUSED') + { + $statuscolor='#F0E68C'; + $call_time = ($StarTtime - $call_finish); + } + + if ($call_time < 1) + { + $call_time = "0:00"; + } + else + { + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + } + + if ($comments=='AgentXferViewSelect') + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + else + { + echo ""; + if ($agent_status_view_time > 0) + {echo "";} + echo ""; + } + $loop_count++; + } + echo "
      $row[0] - $row[2]   $call_time  
      "; + echo "$row[0] - $row[2]"; + echo "   $call_time  

    \n"; + echo "    -READY      -INCALL      -PAUSED  \n"; + if ($comments=='AgentXferViewSelect') + { + echo "

    Close Window "; + } + echo "
    \n"; + } + + +################################################################################ +### CALLSINQUEUEview - List calls in queue for the bottombar 228 +################################################################################ +if ($ACTION == 'CALLSINQUEUEview') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00228',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if (eregi('NONE',$view_calls_in_queue)) + { + echo "Calls in Queue View Disabled for this campaign\n"; + exit; + } + else + { + $view_calls_in_queue = ereg_replace('ALL','99', $view_calls_in_queue); + + ### grab the status and campaign/in-group information for this agent to display + $ADsql=''; + $stmt="SELECT status,campaign_id,closer_campaigns from vicidial_live_agents where user='$user' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00229',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $Alogin=$row[0]; + $Acampaign=$row[1]; + $AccampSQL=$row[2]; + $AccampSQL = ereg_replace(' -','', $AccampSQL); + $AccampSQL = ereg_replace(' ',"','", $AccampSQL); + if (eregi('AGENTDIRECT', $AccampSQL)) + { + $AccampSQL = ereg_replace('AGENTDIRECT','', $AccampSQL); + $ADsql = "or ( (campaign_id LIKE \"%AGENTDIRECT%\") and (agent_only='$user') )"; + } + + ### grab the basic data on calls in the queue for this agent + $stmt="SELECT lead_id,campaign_id,phone_number,uniqueid,UNIX_TIMESTAMP(call_time),call_type,auto_call_id from vicidial_auto_calls where status IN('LIVE') and ( (campaign_id='$Acampaign') or (campaign_id IN('$AccampSQL')) $ADsql) order by queue_priority,call_time;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00230',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$calls_count = mysql_num_rows($rslt);} + $loop_count=0; + while ($calls_count > $loop_count) + { + $row=mysql_fetch_row($rslt); + $CQlead_id[$loop_count] = $row[0]; + $CQcampaign_id[$loop_count] = $row[1]; + $CQphone_number[$loop_count] = $row[2]; + $CQuniqueid[$loop_count] = $row[3]; + $CQcall_time[$loop_count] = $row[4]; + $CQcall_type[$loop_count] = $row[5]; + $CQauto_call_id[$loop_count] = $row[6]; + $loop_count++; + } + + ### re-order the calls to always make sure the AGENTDIRECT calls are first + $loop_count=0; + $o=0; + while ($calls_count > $loop_count) + { + if (eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + $loop_count=0; + while ($calls_count > $loop_count) + { + if (!eregi('AGENTDIRECT', $CQcampaign_id[$loop_count])) + { + $OQlead_id[$o] = $CQlead_id[$loop_count]; + $OQcampaign_id[$o] = $CQcampaign_id[$loop_count]; + $OQphone_number[$o] = $CQphone_number[$loop_count]; + $OQuniqueid[$o] = $CQuniqueid[$loop_count]; + $OQcall_time[$o] = $CQcall_time[$loop_count]; + $OQcall_type[$o] = $CQcall_type[$loop_count]; + $OQauto_call_id[$o] = $CQauto_call_id[$loop_count]; + $o++; + } + $loop_count++; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + ### Print call information and gather more info on the calls as they are printed + $loop_count=0; + while ( ($calls_count > $loop_count) and ($view_calls_in_queue > $loop_count) ) + { + $call_time = ($StarTtime - $OQcall_time[$loop_count]); + $Fminutes_M = ($call_time / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $call_time = "$Fminutes_M_int:$Fminutes_S"; + $call_handle_method=''; + + if ($OQcall_type[$loop_count]=='IN') + { + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='$OQcampaign_id[$loop_count]';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00231',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + } + $stmt="SELECT comments,user,first_name,last_name from vicidial_list where lead_id='$OQlead_id[$loop_count]'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $comments = $row[0]; + $agent = $row[1]; + $first_last_name = "$row[2] $row[3]"; + $caller_name = $first_last_name; + + $stmt="SELECT full_name from vicidial_users where user='$agent'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00232',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$agent_name_count = mysql_num_rows($rslt);} + if ($agent_name_count > 0) + { + $row=mysql_fetch_row($rslt); + $agent_name = $row[0]; + } + else + {$agent_name='';} + + if (strlen($caller_name)<2) + {$caller_name = $comments;} + if (strlen($caller_name) > 30) {$caller_name = substr("$caller_name", 0, 30);} + + if (eregi("0$|2$|4$|6$|8$", $loop_count)) {$Qcolor='bgcolor="#FCFCFC"';} + else{$Qcolor='bgcolor="#ECECEC"';} + + if ( (eregi('Y',$grab_calls_in_queue)) and ($OQcall_type[$loop_count]=='IN') ) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + else + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + $loop_count++; + } + echo "
        PHONE     NAME     WAIT     AGENT           CALL GROUP     TYPE  
    TAKE CALL     $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  
        $OQphone_number[$loop_count]     $caller_name     $call_time     $agent - $agent_name           $OQcampaign_id[$loop_count] - $group_name     $OQcall_type[$loop_count]  

     \n"; + } + } + + +################################################################################ +### CALLSINQUEUEgrab - grab a call in queue and reserve it for that agent +################################################################################ +if ($ACTION == 'CALLSINQUEUEgrab') + { + $stmt="SELECT view_calls_in_queue,grab_calls_in_queue from vicidial_campaigns where campaign_id='$campaign'"; + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00233',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $view_calls_in_queue = $row[0]; + $grab_calls_in_queue = $row[1]; + + if ( (eregi('NONE',$view_calls_in_queue)) or (eregi('N',$grab_calls_in_queue)) ) + { + echo "ERROR: Calls in Queue View Disabled for this campaign\n"; + exit; + } + else + { + $stmt="UPDATE vicidial_auto_calls set agent_grab=\"$user\" where auto_call_id='$stage' and agent_grab='' and status='LIVE';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00234',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $stmt="SELECT call_time,campaign_id,uniqueid,phone_number,lead_id,queue_priority,call_type from vicidial_auto_calls where auto_call_id='$stage';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00270',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$vac_count = mysql_num_rows($rslt);} + if ($vac_count > 0) + { + $row=mysql_fetch_row($rslt); + $GCcall_time = $row[0]; + $GCcampaign_id = $row[1]; + $GCuniqueid = $row[2]; + $GCphone_number = $row[3]; + $GClead_id = $row[4]; + $GCqueue_priority = $row[5]; + $GCcall_type = $row[6]; + + $stmt="INSERT INTO vicidial_grab_call_log SET auto_call_id='$stage',user='$user',event_date='$NOW_TIME',call_time='$GCcall_time',campaign_id='$GCcampaign_id',uniqueid='$GCuniqueid',phone_number='$GCphone_number',lead_id='$GClead_id',queue_priority='$GCqueue_priority',call_type='$GCcall_type';"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00271',$user,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + } + + echo "SUCCESS: Call $stage grabbed for $user"; + exit; + } + else + { + echo "ERROR: Call $stage could not be grabbed for $user\n"; + exit; + } + } + } + + +################################################################################ +### CalLBacKLisT - List the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKLisT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select callback_id,lead_id,campaign_id,status,entry_time,callback_time,comments from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD') order by callback_time;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00178',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$callbacks_count = mysql_num_rows($rslt);} + echo "$callbacks_count\n"; + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $row=mysql_fetch_row($rslt); + $callback_id[$loop_count] = $row[0]; + $lead_id[$loop_count] = $row[1]; + $campaign_id[$loop_count] = $row[2]; + $status[$loop_count] = $row[3]; + $entry_time[$loop_count] = $row[4]; + $callback_time[$loop_count] = $row[5]; + $comments[$loop_count] = $row[6]; + $loop_count++; + } + $loop_count=0; + while ($callbacks_count>$loop_count) + { + $stmt = "select first_name,last_name,phone_number from vicidial_list where lead_id='$lead_id[$loop_count]';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00179',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + echo "$row[0] ~$row[1] ~$row[2] ~$callback_id[$loop_count] ~$lead_id[$loop_count] ~$campaign_id[$loop_count] ~$status[$loop_count] ~$entry_time[$loop_count] ~$callback_time[$loop_count] ~$comments[$loop_count]\n"; + $loop_count++; + } + + } + + +################################################################################ +### CalLBacKCounT - send the count of the USERONLY callbacks for an agent +################################################################################ +if ($ACTION == 'CalLBacKCounT') + { + if ($agentonly_callback_campaign_lock > 0) + {$campaignCBsql = "and campaign_id='$campaign'";} + else + {$campaignCBsql = '';} + $stmt = "select count(*) from vicidial_callbacks where recipient='USERONLY' and user='$user' $campaignCBsql and status NOT IN('INACTIVE','DEAD');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00180',$user,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $cbcount=$row[0]; + + echo "$cbcount"; + } + + + + +################################################################################ +### DiaLableLeaDsCounT - send the count of the dialable leads in this campaign +################################################################################ +if ($ACTION == 'DiaLableLeaDsCounT') + { + $stmt = "select dialable_leads from vicidial_campaign_stats where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00252',$user,$server_ip,$session_name,$one_mysql_log);} + if ($rslt) {$dialable_count = mysql_num_rows($rslt);} + if ($dialable_count > 0) + { + $row=mysql_fetch_row($rslt); + $DLcount = $row[0]; + } + + echo "$DLcount"; + } + + + + +if ($format=='debug') +{ +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $StarTtime); +echo "\n"; +echo "\n\n\n"; +} + +exit; + + + + + +##### MySQL Error Logging ##### +function mysql_error_logging($NOW_TIME,$link,$mel,$stmt,$query_id,$user,$server_ip,$session_name,$one_mysql_log) +{ +$NOW_TIME = date("Y-m-d H:i:s"); +# mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'00001',$user,$server_ip,$session_name,$one_mysql_log); +$errno=''; $error=''; +if ( ($mel > 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vdc_db_query|$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/vdc_script_display.php b/agc_2-X/branches/agc_2.2.0/www/agc/vdc_script_display.php new file mode 100644 index 00000000..13775bab --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/vdc_script_display.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# This script is designed display the contents of the SCRIPT tab in the agent interface +# +# CHANGELOG: +# 90824-1435 - First build of script +# 90827-1548 - Added list override script option +# 91204-1913 - Added recording_filename and recording_id variables +# 91211-1103 - Added user_custom_... variables +# + +$version = '2.2.0-4'; +$build = '91211-1103'; + +require("dbconnect.php"); + + +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} + $vendor_lead_code = $vendor_id; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["original_phone_login"])) {$original_phone_login=$_GET["original_phone_login"];} + elseif (isset($_POST["original_phone_login"])) {$original_phone_login=$_POST["original_phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["fronter"])) {$fronter=$_GET["fronter"];} + elseif (isset($_POST["fronter"])) {$fronter=$_POST["fronter"];} +if (isset($_GET["closer"])) {$closer=$_GET["closer"];} + elseif (isset($_POST["closer"])) {$closer=$_POST["closer"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["SQLdate"])) {$SQLdate=$_GET["SQLdate"];} + elseif (isset($_POST["SQLdate"])) {$SQLdate=$_POST["SQLdate"];} +if (isset($_GET["epoch"])) {$epoch=$_GET["epoch"];} + elseif (isset($_POST["epoch"])) {$epoch=$_POST["epoch"];} +if (isset($_GET["uniqueid"])) {$uniqueid=$_GET["uniqueid"];} + elseif (isset($_POST["uniqueid"])) {$uniqueid=$_POST["uniqueid"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["customer_server_ip"])) {$customer_server_ip=$_GET["customer_server_ip"];} + elseif (isset($_POST["customer_server_ip"])) {$customer_server_ip=$_POST["customer_server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SIPexten"])) {$SIPexten=$_GET["SIPexten"];} + elseif (isset($_POST["SIPexten"])) {$SIPexten=$_POST["SIPexten"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["dialed_number"])) {$dialed_number=$_GET["dialed_number"];} + elseif (isset($_POST["dialed_number"])) {$dialed_number=$_POST["dialed_number"];} +if (isset($_GET["dialed_label"])) {$dialed_label=$_GET["dialed_label"];} + elseif (isset($_POST["dialed_label"])) {$dialed_label=$_POST["dialed_label"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["camp_script"])) {$camp_script=$_GET["camp_script"];} + elseif (isset($_POST["camp_script"])) {$camp_script=$_POST["camp_script"];} +if (isset($_GET["in_script"])) {$in_script=$_GET["in_script"];} + elseif (isset($_POST["in_script"])) {$in_script=$_POST["in_script"];} +if (isset($_GET["script_width"])) {$script_width=$_GET["script_width"];} + elseif (isset($_POST["script_width"])) {$script_width=$_POST["script_width"];} +if (isset($_GET["script_height"])) {$script_height=$_GET["script_height"];} + elseif (isset($_POST["script_height"])) {$script_height=$_POST["script_height"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["recording_filename"])) {$recording_filename=$_GET["recording_filename"];} + elseif (isset($_POST["recording_filename"])) {$recording_filename=$_POST["recording_filename"];} +if (isset($_GET["recording_id"])) {$recording_id=$_GET["recording_id"];} + elseif (isset($_POST["recording_id"])) {$recording_id=$_POST["recording_id"];} +if (isset($_GET["user_custom_one"])) {$user_custom_one=$_GET["user_custom_one"];} + elseif (isset($_POST["user_custom_one"])) {$user_custom_one=$_POST["user_custom_one"];} +if (isset($_GET["user_custom_two"])) {$user_custom_two=$_GET["user_custom_two"];} + elseif (isset($_POST["user_custom_two"])) {$user_custom_two=$_POST["user_custom_two"];} +if (isset($_GET["user_custom_three"])) {$user_custom_three=$_GET["user_custom_three"];} + elseif (isset($_POST["user_custom_three"])) {$user_custom_three=$_POST["user_custom_three"];} +if (isset($_GET["user_custom_four"])) {$user_custom_four=$_GET["user_custom_four"];} + elseif (isset($_POST["user_custom_four"])) {$user_custom_four=$_POST["user_custom_four"];} +if (isset($_GET["user_custom_five"])) {$user_custom_five=$_GET["user_custom_five"];} + elseif (isset($_POST["user_custom_five"])) {$user_custom_five=$_POST["user_custom_five"];} + +if (isset($_GET["ScrollDIV"])) {$ScrollDIV=$_GET["ScrollDIV"];} + elseif (isset($_POST["ScrollDIV"])) {$ScrollDIV=$_POST["ScrollDIV"];} +if (isset($_GET["ignore_list_script"])) {$ignore_list_script=$_GET["ignore_list_script"];} + elseif (isset($_POST["ignore_list_script"])) {$ignore_list_script=$_POST["ignore_list_script"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +$txt = '.txt'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$agents='@agents'; + +$IFRAME=0; + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,timeclock_end_of_day,agentonly_callback_campaign_lock FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $timeclock_end_of_day = $row[1]; + $agentonly_callback_campaign_lock = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + } + + +# default optional vars if not set +if (!isset($format)) {$format="text";} + if ($format == 'debug') {$DB=1;} +if (!isset($ACTION)) {$ACTION="refresh";} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } +else + { + # do nothing for now + } + +if ($format=='debug') + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "VICIDiaL Script Display Script"; + echo "\n"; + echo "\n"; + echo "\n"; + } + +if (strlen($in_script) < 1) + {$call_script = $camp_script;} +else + {$call_script = $in_script;} + +if ($ignore_list_script < 1) + { + $stmt="SELECT agent_script_override from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_script_override = $row[0]; + if (strlen($agent_script_override) > 0) + {$call_script = $agent_script_override;} + } + +$stmt="SELECT script_name,script_text from vicidial_scripts where script_id='$call_script';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$script_name = $row[0]; +$script_text = stripslashes($row[1]); + +if (eregi("iframe src",$script_text)) + { + $IFRAME=1; + $lead_id = eregi_replace(' ','+',$lead_id); + $vendor_id = eregi_replace(' ','+',$vendor_id); + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address3); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $user = eregi_replace(' ','+',$user); + $pass = eregi_replace(' ','+',$pass); + $campaign = eregi_replace(' ','+',$campaign); + $phone_login = eregi_replace(' ','+',$phone_login); + $original_phone_login = eregi_replace(' ','+',$original_phone_login); + $phone_pass = eregi_replace(' ','+',$phone_pass); + $fronter = eregi_replace(' ','+',$fronter); + $closer = eregi_replace(' ','+',$closer); + $group = eregi_replace(' ','+',$group); + $channel_group = eregi_replace(' ','+',$channel_group); + $SQLdate = eregi_replace(' ','+',$SQLdate); + $epoch = eregi_replace(' ','+',$epoch); + $uniqueid = eregi_replace(' ','+',$uniqueid); + $customer_zap_channel = eregi_replace(' ','+',$customer_zap_channel); + $customer_server_ip = eregi_replace(' ','+',$customer_server_ip); + $server_ip = eregi_replace(' ','+',$server_ip); + $SIPexten = eregi_replace(' ','+',$SIPexten); + $session_id = eregi_replace(' ','+',$session_id); + $phone = eregi_replace(' ','+',$phone); + $parked_by = eregi_replace(' ','+',$parked_by); + $dispo = eregi_replace(' ','+',$dispo); + $dialed_number = eregi_replace(' ','+',$dialed_number); + $dialed_label = eregi_replace(' ','+',$dialed_label); + $source_id = eregi_replace(' ','+',$source_id); + $rank = eregi_replace(' ','+',$rank); + $owner = eregi_replace(' ','+',$owner); + $camp_script = eregi_replace(' ','+',$camp_script); + $in_script = eregi_replace(' ','+',$in_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $fullname = eregi_replace(' ','+',$fullname); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + +$script_text = eregi_replace('--A--lead_id--B--',"$lead_id",$script_text); +$script_text = eregi_replace('--A--vendor_id--B--',"$vendor_id",$script_text); +$script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); +$script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); +$script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); +$script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); +$script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); +$script_text = eregi_replace('--A--title--B--',"$title",$script_text); +$script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); +$script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); +$script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); +$script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); +$script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); +$script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); +$script_text = eregi_replace('--A--city--B--',"$city",$script_text); +$script_text = eregi_replace('--A--state--B--',"$state",$script_text); +$script_text = eregi_replace('--A--province--B--',"$province",$script_text); +$script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); +$script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); +$script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); +$script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); +$script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); +$script_text = eregi_replace('--A--email--B--',"$email",$script_text); +$script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); +$script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); +$script_text = eregi_replace('--A--user--B--',"$user",$script_text); +$script_text = eregi_replace('--A--pass--B--',"$pass",$script_text); +$script_text = eregi_replace('--A--campaign--B--',"$campaign",$script_text); +$script_text = eregi_replace('--A--phone_login--B--',"$phone_login",$script_text); +$script_text = eregi_replace('--A--original_phone_login--B--',"$original_phone_login",$script_text); +$script_text = eregi_replace('--A--phone_pass--B--',"$phone_pass",$script_text); +$script_text = eregi_replace('--A--fronter--B--',"$fronter",$script_text); +$script_text = eregi_replace('--A--closer--B--',"$closer",$script_text); +$script_text = eregi_replace('--A--group--B--',"$group",$script_text); +$script_text = eregi_replace('--A--channel_group--B--',"$channel_group",$script_text); +$script_text = eregi_replace('--A--SQLdate--B--',"$SQLdate",$script_text); +$script_text = eregi_replace('--A--epoch--B--',"$epoch",$script_text); +$script_text = eregi_replace('--A--uniqueid--B--',"$uniqueid",$script_text); +$script_text = eregi_replace('--A--customer_zap_channel--B--',"$customer_zap_channel",$script_text); +$script_text = eregi_replace('--A--customer_server_ip--B--',"$customer_server_ip",$script_text); +$script_text = eregi_replace('--A--server_ip--B--',"$server_ip",$script_text); +$script_text = eregi_replace('--A--SIPexten--B--',"$SIPexten",$script_text); +$script_text = eregi_replace('--A--session_id--B--',"$session_id",$script_text); +$script_text = eregi_replace('--A--phone--B--',"$phone",$script_text); +$script_text = eregi_replace('--A--parked_by--B--',"$parked_by",$script_text); +$script_text = eregi_replace('--A--dispo--B--',"$dispo",$script_text); +$script_text = eregi_replace('--A--dialed_number--B--',"$dialed_number",$script_text); +$script_text = eregi_replace('--A--dialed_label--B--',"$dialed_label",$script_text); +$script_text = eregi_replace('--A--source_id--B--',"$source_id",$script_text); +$script_text = eregi_replace('--A--rank--B--',"$rank",$script_text); +$script_text = eregi_replace('--A--owner--B--',"$owner",$script_text); +$script_text = eregi_replace('--A--camp_script--B--',"$camp_script",$script_text); +$script_text = eregi_replace('--A--in_script--B--',"$in_script",$script_text); +$script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); +$script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); +$script_text = eregi_replace('--A--fullname--B--',"$fullname",$script_text); +$script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); +$script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); +$script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); +$script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); +$script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); +$script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); +$script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); +$script_text = eregi_replace("\n","
    ",$script_text); +$script_text = stripslashes($script_text); + + +echo "\n"; +echo "\n"; +echo "
    \n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
    ";} +echo "
    $script_name
    \n"; +echo "$script_text\n"; +if ( ($IFRAME < 1) and ($ScrollDIV > 0) ) + { echo "
    ";} +echo "
    \n"; + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/vicidial.php b/agc_2-X/branches/agc_2.2.0/www/agc/vicidial.php new file mode 100644 index 00000000..5903f51f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/vicidial.php @@ -0,0 +1,11140 @@ + LICENSE: AGPLv2 +# +# Other scripts that this application depends on: +# - vdc_db_query.php: Updates information in the database +# - manager_send.php: Sends manager actions to the DB for execution +# - conf_exten_check.php: time sync and status updater, calls in queue +# - vdc_script_display.php: displays script with variables +# +# CHANGELOG +# 50607-1426 - First Build of VICIDIAL web client basic login process finished +# 50628-1620 - Added some basic formatting and worked on process flow +# 50628-1715 - Startup variables mapped to javascript variables +# 50629-1303 - Added Login Closer in-groups selection box and vla update +# 50629-1530 - Rough layout for customer info form section and button links +# 50630-1453 - Rough Manual Dial/Hangup with customer info displayed +# 50701-1450 - Added vicidial_log entries on dial and hangup +# 50701-1634 - Added Logout function +# 50705-1259 - Added call disposition functionality +# 50705-1432 - Added lead info DB update function +# 50705-1658 - Added web form functionality +# 50706-1043 - Added call park and pickup functions +# 50706-1234 - Added Start/Stop Recording functionality +# 50706-1614 - Added conference channels display option +# 50711-1333 - Removed call check redundancy and fixed a span bug +# 50727-1424 - Added customer channel and participant present sensing/alerts +# 50804-1057 - Added SendDTMF function and reconfigured the transfer span +# 50804-1224 - Added Local and Internal Closer transfer functions +# 50804-1628 - Added Blind transfer, activated LIVE CALL image and fixed bugs +# 50804-1808 - Added button images for left buttons +# 50815-1151 - Added 3Way calling functions to Transfer-conf frame +# 50815-1602 - Added images and buttons for xfer functions +# 50816-1813 - Added basic autodial outbound call pickup functions +# 50817-1113 - Fixes to auto_dialing call receipt +# 50817-1234 - Added inbound call receipt capability +# 50817-1541 - Added customer time display +# 50818-1327 - Added stop-all-recordings-after-each-vicidial-call option +# 50818-1703 - Added pretty login section +# 50825-1200 - Modified form field lengths, added double-click dispositions +# 50831-1603 - Fixed customer time bug and fronter display bug for CLOSER +# 50901-1314 - Fixed CLOSER IN-GROUP Web Form bug +# 50903-0904 - Added preview-lead code for manual dialing +# 50904-0016 - Added ability to hangup manual dials before pickup +# 50906-1319 - Added override for filters on xfer calls, fixed login display bug +# 50909-1243 - Added hotkeys functionality for quick dispoing in auto-dial mode +# 50912-0958 - Modified hotkeys function, agent must have user_level >= 5 to use +# 50913-1212 - Added campaign_cid to 3rd party calls +# 50923-1546 - Modified to work with language translation +# 50926-1656 - Added campaign pull-down at login of active campaigns +# 50928-1633 - Added manual dial alternate number dial option +# 50930-1538 - Added session_id empty login failure and fixed 2 minor bugs +# 51004-1656 - Fixed recording filename bug and new Spanish translation +# 51020-1103 - Added campaign-specific recording control abilities +# 51020-1352 - Added Basic vicidial_agent_log framework +# 51021-1050 - Fixed custtime display and disable Enter/Return keypresses +# 51021-1718 - Allows for multi-line comments (changes \n to !N in database) +# 51110-1432 - Fixed non-standard http port issue +# 51111-1047 - Added vicidial_agent_log lead_id earlier for manual dial +# 51118-1305 - Activate multi-line comments from $multi_line_comments var +# 51118-1313 - Move Transfer DIV to a floating span to preserve 800x600 view +# 51121-1506 - Small PHP optimizations in many scripts and disabled globalize +# 51129-1010 - Added ability to accept calls from other VICIDIAL servers +# 51129-1254 - Fixed Hangups of other agents channels when customer hangs up +# 51208-1732 - Created user-first login that looks for default phone info +# 51219-1526 - Added variable framework for campaign and in-group scripts +# 51221-1200 - Added SCRIPT tab, layout and functionality +# 51221-1714 - Added auto-switch-to-SCRIPT-tab and auto-webform-popup +# 51222-1605 - Added VMail message blind transfer button to xfer-conf frame +# 51229-1028 - Added checks on web_form_address to allow for var in the DB value +# 60117-1312 - Added Transfer-conf frame toggle on button press +# 60208-1152 - Added DTMF-xfernumber preset links to xfer-conf frame +# 60213-1129 - Added vicidial_users.hotkeys_active for any user hotkeys +# 60213-1210 - Added ability to sort routing of calls by user_level +# 60214-0932 - Initial Callback calendar display framework +# 60214-1407 - Added ability to minimize the dispo screen to see info below +# 60215-1104 - Added ANYONE scheduled callbacks functionality +# 60410-1116 - Added persistant pause after dispo option and change dispo text +# - Added web form submit that opens new window with dispo on submit +# - Added PREVIOUS CALLBACK in customer info to flag callbacks +# - Added link to try to hangup the call again in the dispo screen +# - Added link noone-in-session screen to call agent phone again +# - Added link customer-hungup screen to go straight to dispo screen +# 60410-1532 - Added agent status and campaign calls dialing display option +# 60411-1547 - Add ability to set callback as USERONLY and some basic formatting +# 60413-1752 - Add basic USERONLY callback frame and listings +# 60414-1039 - Changed manual dial preview and alt dial checkboxes to spans +# - Added beta-level USERONLY callback functionality +# - Added beta-level manual dialing with lead insertion functionality +# 60415-1534 - Fixed manual dial lead preview and fixed manuald dial override bug +# 60417-1108 - Added capability to do alt-number-dialing in auto-dial mode +# - Changed several permissions to database-defined +# 60419-1529 - Prevent manual dial or callbacks when alt-dial lead not finished +# 60420-1647 - Fixed DiaLDiaLAltPhonE error, Call Agent Again DialControl error +# 60421-1229 - Check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60424-1005 - Fixed Alt phone disabled bug for callbacks and manual dials +# 60426-1058 - Added vicidial_user setting for default blended check for CLOSER +# 60501-1008 - Added option to manual dial screen to manually lookup phone number +# 60503-1653 - Fixed agentonly_callback not-defined bug in scheduled callbacks screen +# 60504-1032 - Fixed manual dial display bug and transfer dispo alert bug +# - Fixed recording filename display to not overrun 25 characters +# 60510-1051 - Added Wrapup timer and wrapup message on wrapup screen after dispo +# 60608-1453 - Added CLOSER campaign allowable in-groups limitations +# 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 +# 60804-1710 - fixed scheduled CALLBK for other languages build +# 60808-1145 - Added consultative transfers with customer data +# 60808-2232 - Added campaign name to pulldown for login screen +# 60809-1603 - Added option to locally transfer consult xfers +# 60809-1732 - Added recheck of transferred channels before customer gone mesg +# 60810-1011 - Fixed CXFER leave 3way call bugs +# 60816-1602 - Added ALLCALLS recording delay option allcalls_delay +# 60816-1716 - Fixed customer time display bug and client DST setting +# 60821-1555 - Added option to omit phone_code on dialout of leads +# 60821-1628 - Added ALLFORCE recording option +# 60821-1643 - Added no_delete_sessions option to not delete sessions +# 60822-0512 - Changed phone number fields to be maxlength of 12 +# 60829-1531 - Made compatible with WeBRooTWritablE setting in dbconnect.php +# 60906-1152 - Added Previous CallBack info display span +# 60906-1715 - Allow for Local phone extension conferences +# 61004-1729 - Add ability to control volume per channel in "calls in this session" +# 61122-1341 - Added vicidial_user_groups allowed_campaigns restrictions +# 61122-1523 - Added more SCRIPT variables +# 61128-2229 - Added vicidial_live_agents and vicidial_auto_calls manual dial entries +# 61130-1617 - Added lead_id to MonitorConf for recording_log +# 61221-1212 - Changed width to 760 to better fit 800x600 screens, widened SCRIPT +# 70109-1128 - Fixed wrapup timer bug +# 70109-1635 - Added option for HotKeys automatically dialing next number in manual mode +# - Added option for alternate number dialing with hotkeys +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70118-1517 - Added vicidial_agent_log and vicidial_user_log logging of user_group +# 70201-1249 - Added FAST DIAL option for manually dialing, added UTF8 compatible code +# 70201-1703 - Fixed cursor bug for most text input fields +# 70202-1453 - Added first portions of Agent Pause Codes +# 70203-0108 - Finished Agent Pause Codes functionality +# 70203-0930 - Added dialed_number to webform output +# 70203-1010 - Added dialed_label to webform output +# 70206-1201 - Fixed allow_closers bug +# 70206-1332 - Added vicidial_recording_override users setting function +# 70212-1252 - Fixed small issue with CXFER +# 70213-1018 - Changed CXFER and AXFER to update customer information before transfer +# 70214-1233 - Added queuemetrics_log_id field for server_id in queue_log +# 70215-1240 - Added queuemetrics_log_id field for server_id in queue_log +# 70222-1617 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL +# 70226-1252 - Added Mute/UnMute to agent screen +# 70309-1035 - Allow amphersands and questions marks in comments to pass through +# 70313-1052 - Allow pound signs(hash) in comments to pass through +# 70316-1406 - Moved the MUTE button to be accessible during a transfer/conf +# 70319-1446 - Added agent-deactive-display and disable customer info update functions +# 70319-1626 - Added option to allow agent logins to campaigns with no leads in the hopper +# 70320-1501 - Added option to allow retry of leave-3way-call from dispo screen +# 70322-1545 - Added sipsak display ability +# 70510-1319 - Added onUnload force Logout +# 70806-1530 - Added Presets Dial links above agent mute button +# 70823-2118 - Fixed XMLHTTPRequest, HotKeys and Scheduled Callbacks issues with MSIE +# 70828-1443 - Added source_id to output of SCRIPTtab-IFRAME and WEBFORM +# 71022-1427 - Added formatting of the customer phone number in the main status bar +# 71029-1848 - Changed CLOSER-type campaign to not use campaign_id restrictions +# 71101-1204 - Fixed bug in callback calendar with DST +# 71116-0957 - Added campaign_weight and calls_today to the vla table insertion +# 71120-1719 - Added XMLHTPRequest lookup of allowable campaigns for agents during login +# 71122-0256 - Added auto-pause notification +# 71125-1751 - Changed Transfer section to allow for selection of in-groups to send calls to +# 71127-0408 - Added height and width settings for easier modification of screen size +# 71129-2025 - restricted callbacks count and list to campaign only +# 71223-0318 - changed logging of closer calls +# 71226-1117 - added option to kick all calls from conference upon logout +# 80109-1510 - added gender select list +# 80116-1032 - added option on CLOSER-type campaigns to change in-groups when paused +# 80317-2106 - added recording override options for inbound group calls +# 80331-1433 - Added second transfer try for VICIDIAL transfers/hangups on manual dial calls +# 80402-0121 - Fixes for manual dial transfers on some systems +# 80407-2112 - Work on adding phone login load balancing across servers +# 80416-0559 - Added ability to log computer_ip at login, set the $PhoneSComPIP variable +# 80428-0413 - UTF8 changes and testing +# 80505-0054 - Added multi-phones load-balanced alias option +# 80507-0932 - Fixed Script display bug (+ instead of space) +# 80519-1425 - Added calls in queue display +# 80523-1630 - Added Timeclock links +# 80625-0047 - Added U option for gender, added date/phone display options +# 80630-2210 - Added queue_log entries for Manual Dial +# 80703-0139 - Added alter customer phone permissions +# 80703-1106 - Added API functionality for Hangup and Dispo, added Agent Display Queue Count +# 80707-2325 - Added vicidial_id to recording_log for tracking of vicidial or closer log to recording +# 80709-0358 - Added Default alt phone dial hard-code option +# 80719-1147 - Changed recording and senddtmf conf prefix +# 80815-1014 - Added manual dial list restriction option +# 80823-2123 - Fixed form scroll for IE, added copy to clipboard(IE-only feature) +# 80831-0548 - Added Extended alt-dial-phone display information for non-manual calls +# 80909-1717 - Added support for campaign-specific DNC lists +# 80915-1754 - Rewrote leave-3way functions for external calling +# 81002-1908 - Fixed double-login bug in some conditions +# 81007-0945 - Added three_way_call_cid option for outbound 3way calls +# 81010-1047 - Fixed conf calling prefix to use settings, other 3way improvements +# 81011-1403 - Fixed bugs in leave3way when transferring a manual dial call +# 81012-1729 - Added INBOUND_MAN dial method to allow manual list dialing and inbound calls +# 81013-1644 - Fixed bug in leave 3way for manual dial fronters +# 81015-0405 - Fixed bug related to hangups on 3way calls +# 81016-0703 - Changed leave 3way to allow function at any time transfer-conf is available +# 81020-1501 - Fixed bugs in queue_log logging +# 81023-0411 - Added compatibility for dial-in agents using AGI, bug fixes +# 81030-0403 - Added option to force Pause Codes on PAUSE +# 81103-1427 - Added 3way call dial prefix +# 81104-0140 - Added mysql error logging capability +# 81104-1618 - Changed MySQL queries logging +# 81106-0411 - Changedthe campaign login list behaviour +# 81110-0057 - Changed Pause time to start new vicidial_agent_log on every pause +# 81110-1514 - Added hangup_all_non_reserved to fix non-Hangup bug +# 81119-1811 - webform backslash fix +# 81124-2213 - Fixes blind transfer bug +# 81209-1617 - Added campaign web form target option and web form address variables +# 81211-0422 - Fixed Manual dial agent_log bug +# 90102-1402 - Added time sync check notification +# 90115-0619 - Added ability to send Local Closer to AGENTDIRECT agent_only +# 90120-1719 - Added API pause/resume and number dial functionality +# 90126-2302 - Added Vtiger login option and agent alert option +# 90128-0230 - Added vendor_lead_code to API dial and manuald dial with lookup +# 90202-0148 - Added option to disable BLENDED checkbox +# 90209-0132 - Changed tab images and color scheme +# 90303-1145 - Fixed rare manual dial live hangup bug +# 90304-1333 - Added user-specific web vars option +# 90305-0917 - Added prefix-choice and group-alias options for calls coming from API +# 90307-1736 - Added Shift enforcement and manager override features +# 90315-1009 - Changed revision for new trunk 2.2.0 +# 90320-0309 - Fixed agent log bug when using wrapup time +# 90323-1555 - Initial call to agent phone now has campaign callerIDnumber +# 90408-0104 - Added Vtiger callback record ability +# 90508-0727 - Changed to PHP long tags +# 90511-1018 - Added restriction not allowing dialing into agent sessions from manual dial +# 90519-0635 - Fixed manual dial status and logging bug +# 90525-1012 - Fixed transfer issue of auto-received call after manual dial call +# 90529-0741 - Added nophone agent phone login that will not show any empty session alerts +# 90531-0635 - Added option to hide customer phone number +# 90611-1422 - Fixed multiple logging bugs +# 90628-0655 - Added Quick Transfer button and Preset Prepopulate option +# 90705-1400 - Added Agent view sidebar option +# 90706-1432 - Added Agent view transfer selection +# 90709-1649 - Fixed alt-number transfers and dispo variable reset for webform +# 90712-2304 - Added ADD-ALL group selection, view calls in queue, grab call from queue, requeue button +# 90717-0640 - Added dialed_label and dialed_number to script variables +# 90721-1114 - Added rank and owner as vicidial_list fields +# 90726-2012 - Added allow_alerts option +# 90729-0647 - Added agent_display_dialable_leads option +# 90730-0145 - Fixed bugs in re-queue and INBOUND_MAN with blended selected +# 90808-0117 - Fixed manual dial calls today bug, added last_state_change to vicidial_live_agents +# 90812-0046 - Added no-delete-sessions = 1 as default, unused sessions cleared out at timeclock end of day +# 90814-0829 - Moved mute button next to hotkeys button +# 90827-0133 - Reworked Script display code +# 90827-1549 - Added list script override option, original_phone_login variable +# 90831-1456 - Added active_agent_login_server option for servers +# 90908-1038 - Added DEAD call display +# 90909-0921 - Fixed park issues +# 90916-1144 - Added Second web form button, Answering Machine Message change +# 90917-1325 - Fixed script loading bug with customer webform at the same time +# 90920-2108 - Changed web forms to use window.open instead of traditional links(IE7 compatibility issue) +# 90923-1310 - Rolled back last change +# 90928-1955 - Added lead update before closer transfer +# 90930-2243 - Added Territory selection functions +# 91108-2118 - Added QM pause code entry +# 91111-1433 - Fixed Gender pulldown list display for IE, remove links for recording channels in SHOW CHANNELS +# 91123-1801 - Added code for outbound_autodial field +# 91130-2021 - Added code for manager override of in-group selection +# 91204-1638 - Added recording_filename and recording_id script variables and script refresh link +# 91205-2055 - Added CONSULTATIVE checkbox in a redesigned Transfer-Conf frame +# 91206-2020 - Fixed vicidial_agent_log logging bug on logout when not paused +# 91211-1412 - Added User custom variables and CRM login popup +# 91219-0657 - Set pause code automatically on ReQueue and INBOUND_MAN Dial-Next-Number +# 91228-1339 - Added API "fields update" functions and "timer action" functions +# 100103-1250 - Added 3 more conf-presets, list ID override presets and call start/dispo URLs +# 100107-0108 - Added dynamic screen size based on login screen browser dimensions +# + +$version = '2.2.0-247'; +$build = '100107-0108'; +$mel=1; # Mysql Error Log enabled = 1 +$mysql_log_count=64; +$one_mysql_log=0; + +require("dbconnect.php"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["JS_browser_width"])) {$JS_browser_width=$_GET["JS_browser_width"];} + elseif (isset($_POST["JS_browser_width"])) {$JS_browser_width=$_POST["JS_browser_width"];} +if (isset($_GET["JS_browser_height"])) {$JS_browser_height=$_GET["JS_browser_height"];} + elseif (isset($_POST["JS_browser_height"])) {$JS_browser_height=$_POST["JS_browser_height"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} +if (isset($_GET["MGR_override"])) {$MGR_override=$_GET["MGR_override"];} + elseif (isset($_POST["MGR_override"])) {$MGR_override=$_POST["MGR_override"];} +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } +if (isset($VD_campaign)) + { + $VD_campaign = strtoupper($VD_campaign); + $VD_campaign = eregi_replace(" ",'',$VD_campaign); + } +if (!isset($flag_channels)) + { + $flag_channels=0; + $flag_string=''; + } + +### 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; + +if ($force_logout) + { + echo "You have now logged out. Thank you\n"; + exit; + } + +$isdst = date("I"); +$StarTtimE = date("U"); +$NOW_TIME = date("Y-m-d H:i:s"); +$tsNOW_TIME = date("YmdHis"); +$FILE_TIME = date("Ymd-His"); +$loginDATE = date("Ymd"); +$CIDdate = date("ymdHis"); +$month_old = mktime(11, 0, 0, date("m"), date("d")-2, date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$minutes_old = mktime(date("H"), date("i")-2, date("s"), date("m"), date("d"), date("Y")); +$past_minutes_date = date("Y-m-d H:i:s",$minutes_old); + + +$random = (rand(1000000, 9999999) + 10000000); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,webroot_writable,timeclock_end_of_day,vtiger_url,enable_vtiger_integration,outbound_autodial_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01001',$VD_login,$server_ip,$session_name,$one_mysql_log);} +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $vdc_header_date_format = $row[1]; + $vdc_customer_date_format = $row[2]; + $vdc_header_phone_format = $row[3]; + $WeBRooTWritablE = $row[4]; + $timeclock_end_of_day = $row[5]; + $vtiger_url = $row[6]; + $enable_vtiger_integration = $row[7]; + $outbound_autodial_active = $row[8]; + $enable_second_webform = $row[9]; + $user_territories_active = $row[10]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +##### DEFINABLE SETTINGS AND OPTIONS +########################################### +$conf_silent_prefix = '5'; # vicidial_conferences prefix to enter silently and muted for recording +$dtmf_silent_prefix = '7'; # vicidial_conferences prefix to enter silently +$HKuser_level = '5'; # minimum vicidial user_level for HotKeys +$campaign_login_list = '1'; # show drop-down list of campaigns at login +$manual_dial_preview = '1'; # allow preview lead option when manual dial +$multi_line_comments = '1'; # set to 1 to allow multi-line comment box +$user_login_first = '0'; # set to 1 to have the vicidial_user login before the phone login +$view_scripts = '1'; # set to 1 to show the SCRIPTS tab +$dispo_check_all_pause = '0'; # set to 1 to allow for persistent pause after dispo +$callholdstatus = '1'; # set to 1 to show calls on hold count +$agentcallsstatus = '0'; # set to 1 to show agent status and call dialed count + $campagentstatctmax = '3'; # Number of seconds for campaign call and agent stats +$show_campname_pulldown = '1'; # set to 1 to show campaign name on login pulldown +$webform_sessionname = '1'; # set to 1 to include the session_name in webform URL +$local_consult_xfers = '1'; # set to 1 to send consultative transfers from original server +$clientDST = '1'; # set to 1 to check for DST on server for agent time +$no_delete_sessions = '1'; # set to 1 to not delete sessions at logout +$volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of channels +$PreseT_DiaL_LinKs = '0'; # set to 1 to show a DIAL link for Dial Presets +$LogiNAJAX = '1'; # set to 1 to do lookups on campaigns for login +$HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" +$hangup_all_non_reserved= '1'; # set to 1 to force hangup all non-reserved channels upon Hangup Customer +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout +$PhoneSComPIP = '1'; # set to 1 to log computer IP to phone if blank, set to 2 to force log each login +$DefaulTAlTDiaL = '0'; # set to 1 to enable ALT DIAL by default if enabled for the campaign +$AgentAlert_allowed = '1'; # set to 1 to allow Agent alert option +$disable_blended_checkbox='0'; # set to 1 to disable the BLENDED checkbox from the in-group chooser screen + +$TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen + +$stretch_dimensions = '1'; # sets the vicidial screen to the size of the browser window +$BROWSER_HEIGHT = 500; # set to the minimum browser height, default=500 +$BROWSER_WIDTH = 770; # set to the minimum browser width, default=770 +$MAIN_COLOR = '#CCCCCC'; # old default is E0C2D6 +$SCRIPT_COLOR = '#E6E6E6'; # old default is FFE7D0 +$SIDEBAR_COLOR = '#F6F6F6'; + +# options now set in DB: +#$alt_phone_dialing = '1'; # allow agents to call alt phone numbers +#$scheduled_callbacks = '1'; # set to 1 to allow agent to choose scheduled callbacks +# $agentonly_callbacks = '1'; # set to 1 to allow agent to choose agent-only scheduled callbacks +#$agentcall_manual = '1'; # set to 1 to allow agent to make manual calls during autodial session + + +$US='_'; +$CL=':'; +$AT='@'; +$DS='-'; +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +if (($server_port == '80') or ($server_port == '443') ) {$server_port='';} +else {$server_port = "$CL$server_port";} +$agcPAGE = "$HTTPprotocol$server_name$server_port$script_name"; +$agcDIR = eregi_replace('vicidial.php','',$agcPAGE); + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +if ($campaign_login_list > 0) + { + $camp_form_code = "\n"; + } +else + { + $camp_form_code = "\n"; + } + + +if ($LogiNAJAX > 0) + { + ?> + + + + + + + + Agent web client: Re-Login\n"; +echo "\n"; +echo "\n"; +echo " Timeclock
    \n"; +echo "\n"; +echo "\n"; +echo "
    \n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


    "; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Re-Login
     
    Phone Login:
    Phone Password:
    User Login:
    User Password:
    Campaign: $camp_form_code
      \n"; +echo "

    VERSION: $version       BUILD: $build
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} + +if ($user_login_first == 1) +{ + if ( (strlen($VD_login)<1) or (strlen($VD_pass)<1) or (strlen($VD_campaign)<1) ) + { + echo "Agent web client: Campaign Login\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + #echo "\n"; + #echo "\n"; + echo "

    User Login

    "; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Campaign Login
     
    User Login:
    User Password:
    Campaign: $camp_form_code
      \n"; + echo "

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + else + { + if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) + { + $stmt="SELECT phone_login,phone_pass from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01005',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $phone_login=$row[0]; + $phone_pass=$row[1]; + + echo "Agent web client: Login\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


    "; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Login
     
    Phone Login:
    Phone Password:
    User Login:
    User Password:
    Campaign: $camp_form_code
      \n"; + echo "

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + + } + } +} + +if ( (strlen($phone_login)<2) or (strlen($phone_pass)<2) ) +{ +echo "Agent web client: Phone Login\n"; +echo "\n"; +echo "\n"; +echo " Timeclock
    \n"; +echo "\n"; +echo "\n"; +echo "
    \n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "


    "; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo ""; +echo "\n"; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Phone Login
     
    Phone Login:
    Phone Password:
      \n"; +echo "

    VERSION: $version       BUILD: $build
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; +exit; +} +else +{ +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./vicidial_auth_entries.txt", "a");} +$VDloginDISPLAY=0; + + if ( (strlen($VD_login)<2) or (strlen($VD_pass)<2) or (strlen($VD_campaign)<2) ) + { + $VDloginDISPLAY=1; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$VD_login' and pass='$VD_pass' and user_level > 0 and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01006',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if($auth>0) + { + $login=strtoupper($VD_login); + $password=strtoupper($VD_pass); + ##### grab the full name of the agent + $stmt="SELECT full_name,user_level,hotkeys_active,agent_choose_ingroups,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,closer_default_blended,user_group,vicidial_recording_override,alter_custphone_override,alert_enabled,agent_shift_enforcement_override,shift_override_flag,allow_alerts,closer_campaigns,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$VD_login' and pass='$VD_pass'"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01007',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $user_level = $row[1]; + $VU_hotkeys_active = $row[2]; + $VU_agent_choose_ingroups = $row[3]; + $VU_scheduled_callbacks = $row[4]; + $agentonly_callbacks = $row[5]; + $agentcall_manual = $row[6]; + $VU_vicidial_recording = $row[7]; + $VU_vicidial_transfers = $row[8]; + $VU_closer_default_blended = $row[9]; + $VU_user_group = $row[10]; + $VU_vicidial_recording_override = $row[11]; + $VU_alter_custphone_override = $row[12]; + $VU_alert_enabled = $row[13]; + $VU_agent_shift_enforcement_override = $row[14]; + $VU_shift_override_flag = $row[15]; + $VU_allow_alerts = $row[16]; + $VU_closer_campaigns = $row[17]; + $VU_agent_choose_territories = $row[18]; + $VU_custom_one = $row[19]; + $VU_custom_two = $row[20]; + $VU_custom_three = $row[21]; + $VU_custom_four = $row[22]; + $VU_custom_five = $row[23]; + + if ( ($VU_alert_enabled > 0) and ($VU_allow_alerts > 0) ) {$VU_alert_enabled = 'ON';} + else {$VU_alert_enabled = 'OFF';} + $AgentAlert_allowed = $VU_allow_alerts; + + ### Gather timeclock and shift enforcement restriction settings + $stmt="SELECT forced_timeclock_login,shift_enforcement,group_shifts,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01052',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $forced_timeclock_login = $row[0]; + $shift_enforcement = $row[1]; + $LOGgroup_shiftsSQL = eregi_replace(' ','',$row[2]); + $LOGgroup_shiftsSQL = eregi_replace(' ',"','",$LOGgroup_shiftsSQL); + $LOGgroup_shiftsSQL = "shift_id IN('$LOGgroup_shiftsSQL')"; + $agent_status_viewable_groups = $row[3]; + $agent_status_viewable_groupsSQL = eregi_replace(' ','',$agent_status_viewable_groups); + $agent_status_viewable_groupsSQL = eregi_replace(' ',"','",$agent_status_viewable_groupsSQL); + $agent_status_viewable_groupsSQL = "user_group IN('$agent_status_viewable_groupsSQL')"; + $agent_status_view = 0; + if (strlen($agent_status_viewable_groups) > 2) + {$agent_status_view = 1;} + $agent_status_view_time=0; + if ($row[4] == 'Y') + {$agent_status_view_time=1;} + + ### BEGIN - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + if ( (ereg('Y',$forced_timeclock_login)) or ( (ereg('ADMIN_EXEMPT',$forced_timeclock_login)) and ($VU_user_level < 8) ) ) + { + $last_agent_event=''; + $HHMM = date("Hi"); + $HHteod = substr($timeclock_end_of_day,0,2); + $MMteod = substr($timeclock_end_of_day,2,2); + + if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} + else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + + $EoDdate = date("Y-m-d H:i:s", $EoD); + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event from vicidial_timeclock_log where user='$VD_login' and event_epoch >= '$EoD' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01053',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $events_to_parse = mysql_num_rows($rslt); + if ($events_to_parse > 0) + { + $rowx=mysql_fetch_row($rslt); + $last_agent_event = $rowx[0]; + } + if ($DB>0) {echo "|$stmt|$events_to_parse|$last_agent_event|";} + if ( (strlen($last_agent_event)<2) or (ereg('LOGOUT',$last_agent_event)) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "YOU MUST LOG IN TO THE TIMECLOCK FIRST
    "; + } + } + ### END - CHECK TO SEE IF AGENT IS LOGGED IN TO TIMECLOCK, IF NOT, OUTPUT ERROR + + ### BEGIN - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + if ( ( (ereg("START|ALL",$shift_enforcement)) and (!ereg("OFF",$VU_agent_shift_enforcement_override)) ) or (ereg("START|ALL",$VU_agent_shift_enforcement_override)) ) + { + $shift_ok=0; + if ( (strlen($LOGgroup_shiftsSQL) < 3) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: There are no Shifts enabled for your user group
    "; + } + else + { + $HHMM = date("Hi"); + $wday = date("w"); + + $stmt="SELECT shift_id,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where $LOGgroup_shiftsSQL order by shift_id"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $shifts_to_print = mysql_num_rows($rslt); + + $o=0; + while ( ($shifts_to_print > $o) and ($shift_ok < 1) ) + { + $rowx=mysql_fetch_row($rslt); + $shift_id = $rowx[0]; + $shift_start_time = $rowx[1]; + $shift_length = $rowx[2]; + $shift_weekdays = $rowx[3]; + + if (eregi("$wday",$shift_weekdays)) + { + $HHshift_length = substr($shift_length,0,2); + $MMshift_length = substr($shift_length,3,2); + $HHshift_start_time = substr($shift_start_time,0,2); + $MMshift_start_time = substr($shift_start_time,2,2); + $HHshift_end_time = ($HHshift_length + $HHshift_start_time); + $MMshift_end_time = ($MMshift_length + $MMshift_start_time); + if ($MMshift_end_time > 59) + { + $MMshift_end_time = ($MMshift_end_time - 60); + $HHshift_end_time++; + } + if ($HHshift_end_time > 23) + {$HHshift_end_time = ($HHshift_end_time - 24);} + $HHshift_end_time = sprintf("%02s", $HHshift_end_time); + $MMshift_end_time = sprintf("%02s", $MMshift_end_time); + $shift_end_time = "$HHshift_end_time$MMshift_end_time"; + + if ( + ( ($HHMM >= $shift_start_time) and ($HHMM < $shift_end_time) ) or + ( ($HHMM < $shift_start_time) and ($HHMM < $shift_end_time) and ($shift_end_time <= $shift_start_time) ) or + ( ($HHMM >= $shift_start_time) and ($HHMM >= $shift_end_time) and ($shift_end_time <= $shift_start_time) ) + ) + {$shift_ok++;} + } + $o++; + } + + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) ) + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "ERROR: You are not allowed to log in outside of your shift
    "; + } + } + if ( ($shift_ok < 1) and ($VU_shift_override_flag < 1) and ($VDloginDISPLAY > 0) ) + { + $VDdisplayMESSAGE.= "

    MANAGER OVERRIDE:
    \n"; + $VDdisplayMESSAGE.= "
    \n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "\n"; + $VDdisplayMESSAGE.= "Manager Login:
    \n"; + $VDdisplayMESSAGE.= "Manager Password:
    \n"; + $VDdisplayMESSAGE.= "
    \n"; + } + } + ### END - CHECK TO SEE IF SHIFT ENFORCEMENT IS ENABLED AND AGENT IS OUTSIDE OF THEIR SHIFTS, IF SO, OUTPUT ERROR + + + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|GOOD|$date|$VD_login|$VD_pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + $user_abb = "$VD_login$VD_login$VD_login$VD_login"; + while ( (strlen($user_abb) > 4) and ($forever_stop < 200) ) + {$user_abb = eregi_replace("^.","",$user_abb); $forever_stop++;} + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$VU_user_group';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01008',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns =$row[0]; + + if ( (!eregi(" $VD_campaign ",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) + { + echo "Agent web client: Campaign Login\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "Sorry, you are not allowed to login to this campaign: $VD_campaign\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
    "; + echo "Password:
    \n"; + echo "Campaign: $camp_form_code
    \n"; + echo "   \n"; + echo "\n"; + echo "
    \n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + ##### check to see that the campaign is active + $stmt="SELECT count(*) FROM vicidial_campaigns where campaign_id='$VD_campaign' and active='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01009',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $CAMPactive=$row[0]; + if($CAMPactive>0) + { + if ($TEST_all_statuses > 0) {$selectableSQL = '';} + else {$selectableSQL = "selectable='Y' and";} + $VARstatuses=''; + $VARstatusnames=''; + ##### grab the statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_statuses WHERE $selectableSQL status != 'NEW' order by status limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01010',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $VD_statuses_ct) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + } + + ##### grab the campaign-specific statuses that can be used for dispositioning by an agent + $stmt="SELECT status,status_name FROM vicidial_campaign_statuses WHERE $selectableSQL status != 'NEW' and campaign_id='$VD_campaign' order by status limit 80;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01011',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_statuses_camp = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $statuses[$i] =$row[0]; + $status_names[$i] =$row[1]; + $VARstatuses = "$VARstatuses'$statuses[$i]',"; + $VARstatusnames = "$VARstatusnames'$status_names[$i]',"; + $i++; + $j++; + } + $VD_statuses_ct = ($VD_statuses_ct+$VD_statuses_camp); + $VARstatuses = substr("$VARstatuses", 0, -1); + $VARstatusnames = substr("$VARstatusnames", 0, -1); + + ##### grab the campaign-specific HotKey statuses that can be used for dispositioning by an agent + $stmt="SELECT hotkey,status,status_name FROM vicidial_campaign_hotkeys WHERE selectable='Y' and status != 'NEW' and campaign_id='$VD_campaign' order by hotkey limit 9;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01012',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $HK_statuses_camp = mysql_num_rows($rslt); + $w=0; + $HKboxA=''; + $HKboxB=''; + $HKboxC=''; + while ($w < $HK_statuses_camp) + { + $row=mysql_fetch_row($rslt); + $HKhotkey[$w] =$row[0]; + $HKstatus[$w] =$row[1]; + $HKstatus_name[$w] =$row[2]; + $HKhotkeys = "$HKhotkeys'$HKhotkey[$w]',"; + $HKstatuses = "$HKstatuses'$HKstatus[$w]',"; + $HKstatusnames = "$HKstatusnames'$HKstatus_name[$w]',"; + if ($w < 3) + {$HKboxA = "$HKboxA $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
    ";} + if ( ($w >= 3) and ($w < 6) ) + {$HKboxB = "$HKboxB $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
    ";} + if ($w >= 6) + {$HKboxC = "$HKboxC $HKhotkey[$w] - $HKstatus[$w] - $HKstatus_name[$w]
    ";} + $w++; + } + $HKhotkeys = substr("$HKhotkeys", 0, -1); + $HKstatuses = substr("$HKstatuses", 0, -1); + $HKstatusnames = substr("$HKstatusnames", 0, -1); + + ##### grab the campaign settings + $stmt="SELECT park_ext,park_file_name,web_form_address,allow_closers,auto_dial_level,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,agent_pause_codes_active,no_hopper_leads_logins,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,use_campaign_dnc,three_way_call_cid,dial_method,three_way_dial_prefix,web_form_target,vtiger_screen_login,agent_allow_group_alias,default_group_alias,quick_transfer_button,prepopulate_transfer_preset,view_calls_in_queue,view_calls_in_queue_launch,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number FROM vicidial_campaigns where campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01013',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $park_ext = $row[0]; + $park_file_name = $row[1]; + $web_form_address = stripslashes($row[2]); + $allow_closers = $row[3]; + $auto_dial_level = $row[4]; + $dial_timeout = $row[5]; + $dial_prefix = $row[6]; + $campaign_cid = $row[7]; + $campaign_vdad_exten = $row[8]; + $campaign_rec_exten = $row[9]; + $campaign_recording = $row[10]; + $campaign_rec_filename = $row[11]; + $campaign_script = $row[12]; + $get_call_launch = $row[13]; + $campaign_am_message_exten = '8320'; + $xferconf_a_dtmf = $row[15]; + $xferconf_a_number = $row[16]; + $xferconf_b_dtmf = $row[17]; + $xferconf_b_number = $row[18]; + $alt_number_dialing = $row[19]; + $VC_scheduled_callbacks = $row[20]; + $wrapup_seconds = $row[21]; + $wrapup_message = $row[22]; + $closer_campaigns = $row[23]; + $use_internal_dnc = $row[24]; + $allcalls_delay = $row[25]; + $omit_phone_code = $row[26]; + $agent_pause_codes_active = $row[27]; + $no_hopper_leads_logins = $row[28]; + $campaign_allow_inbound = $row[29]; + $manual_dial_list_id = $row[30]; + $default_xfer_group = $row[31]; + $xfer_groups = $row[32]; + $disable_alter_custphone = $row[33]; + $display_queue_count = $row[34]; + $manual_dial_filter = $row[35]; + $CopY_tO_ClipboarD = $row[36]; + $use_campaign_dnc = $row[37]; + $three_way_call_cid = $row[38]; + $dial_method = $row[39]; + $three_way_dial_prefix = $row[40]; + $web_form_target = $row[41]; + $vtiger_screen_login = $row[42]; + $agent_allow_group_alias = $row[43]; + $default_group_alias = $row[44]; + $quick_transfer_button = $row[45]; + $prepopulate_transfer_preset = $row[46]; + $view_calls_in_queue = $row[47]; + $view_calls_in_queue_launch = $row[48]; + $call_requeue_button = $row[49]; + $pause_after_each_call = $row[50]; + $no_hopper_dialing = $row[51]; + $agent_dial_owner_only = $row[52]; + $agent_display_dialable_leads = $row[53]; + $web_form_address_two = $row[54]; + $agent_select_territories = $row[55]; + $crm_popup_login = $row[56]; + $crm_login_address = $row[57]; + $timer_action = $row[58]; + $timer_action_message = $row[59]; + $timer_action_seconds = $row[60]; + $start_call_url = $row[61]; + $dispo_call_url = $row[62]; + $xferconf_c_number = $row[63]; + $xferconf_d_number = $row[64]; + $xferconf_e_number = $row[65]; + + if ($user_territories_active < 1) + {$agent_select_territories = 0;} + if (preg_match("/Y/",$agent_select_territories)) + {$agent_select_territories=1;} + else + {$agent_select_territories=0;} + + if (preg_match("/Y/",$agent_display_dialable_leads)) + {$agent_display_dialable_leads=1;} + else + {$agent_display_dialable_leads=0;} + + if (preg_match("/Y/",$no_hopper_dialing)) + {$no_hopper_dialing=1;} + else + {$no_hopper_dialing=0;} + + if ( (preg_match("/Y/",$call_requeue_button)) and ($auto_dial_level > 0) ) + {$call_requeue_button=1;} + else + {$call_requeue_button=0;} + + if ( (preg_match("/AUTO/",$view_calls_in_queue_launch)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue_launch=1;} + else + {$view_calls_in_queue_launch=0;} + + if ( (!preg_match("/NONE/",$view_calls_in_queue)) and ($auto_dial_level > 0) ) + {$view_calls_in_queue=1;} + else + {$view_calls_in_queue=0;} + + if (preg_match("/Y/",$pause_after_each_call)) + {$dispo_check_all_pause=1;} + + $quick_transfer_button_enabled=0; + if (preg_match("/IN_GROUP|PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$quick_transfer_button)) + {$quick_transfer_button_enabled=1;} + + $preset_populate=''; + $prepopulate_transfer_preset_enabled=0; + if (preg_match("/PRESET_1|PRESET_2|PRESET_3|PRESET_4|PRESET_5/",$prepopulate_transfer_preset)) + { + $prepopulate_transfer_preset_enabled=1; + if (preg_match("/PRESET_1/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_a_number;} + if (preg_match("/PRESET_2/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_b_number;} + if (preg_match("/PRESET_3/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_c_number;} + if (preg_match("/PRESET_4/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_d_number;} + if (preg_match("/PRESET_5/",$prepopulate_transfer_preset)) + {$preset_populate = $xferconf_e_number;} + } + + $default_group_alias_cid=''; + if (strlen($default_group_alias)>1) + { + $stmt = "select caller_id_number from groups_alias where group_alias_id='$default_group_alias';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01055',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidnum_ct = mysql_num_rows($rslt); + if ($VDIG_cidnum_ct > 0) + { + $row=mysql_fetch_row($rslt); + $default_group_alias_cid = $row[0]; + } + } + + $stmt = "select group_web_vars from vicidial_campaign_agents where campaign_id='$VD_campaign' and user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01056',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VDIG_cidogwv = mysql_num_rows($rslt); + if ($VDIG_cidogwv > 0) + { + $row=mysql_fetch_row($rslt); + $default_web_vars = $row[0]; + } + + if ( (!ereg('DISABLED',$VU_vicidial_recording_override)) and ($VU_vicidial_recording > 0) ) + { + $campaign_recording = $VU_vicidial_recording_override; + echo "\n"; + } + if ( ($VC_scheduled_callbacks=='Y') and ($VU_scheduled_callbacks=='1') ) + {$scheduled_callbacks='1';} + if ($VU_vicidial_recording=='0') + {$campaign_recording='NEVER';} + if ($VU_alter_custphone_override=='ALLOW_ALTER') + {$disable_alter_custphone='N';} + if (strlen($three_way_dial_prefix) < 1) + {$three_way_dial_prefix = $dial_prefix ;} + if ($alt_number_dialing=='Y') + {$alt_phone_dialing='1';} + else + { + $alt_phone_dialing='0'; + $DefaulTAlTDiaL='0'; + } + if ($display_queue_count=='N') + {$callholdstatus='0';} + if ( ($dial_method == 'INBOUND_MAN') or ($outbound_autodial_active < 1) ) + {$VU_closer_default_blended=0;} + + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaigns = "'$closer_campaigns'"; + + if ( (ereg('Y',$agent_pause_codes_active)) or (ereg('FORCE',$agent_pause_codes_active)) ) + { + ##### grab the pause codes for this campaign + $stmt="SELECT pause_code,pause_code_name FROM vicidial_pause_codes WHERE campaign_id='$VD_campaign' order by pause_code limit 50;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01014',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_pause_codes = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_pause_codes) + { + $row=mysql_fetch_row($rslt); + $pause_codes[$i] =$row[0]; + $pause_code_names[$i] =$row[1]; + $VARpause_codes = "$VARpause_codes'$pause_codes[$i]',"; + $VARpause_code_names = "$VARpause_code_names'$pause_code_names[$i]',"; + $i++; + $j++; + } + $VD_pause_codes_ct = ($VD_pause_codes_ct+$VD_pause_codes); + $VARpause_codes = substr("$VARpause_codes", 0, -1); + $VARpause_code_names = substr("$VARpause_code_names", 0, -1); + } + + ##### grab the inbound groups to choose from if campaign contains CLOSER + $VARingroups="''"; + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + $VARingroups=''; + $stmt="select group_id from vicidial_inbound_groups where active = 'Y' and group_id IN($closer_campaigns) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01015',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $closer_ct = mysql_num_rows($rslt); + $INgrpCT=0; + while ($INgrpCT < $closer_ct) + { + $row=mysql_fetch_row($rslt); + $closer_groups[$INgrpCT] =$row[0]; + $VARingroups = "$VARingroups'$closer_groups[$INgrpCT]',"; + $INgrpCT++; + } + $VARingroups = substr("$VARingroups", 0, -1); + } + else + {$closer_campaigns = "''";} + + ##### gather territory listings for this agent if select territories is enabled + $VARterritories=''; + if ($agent_select_territories > 0) + { + $stmt="SELECT territory from vicidial_user_territories where user='$VD_login';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01062',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $territory_ct = mysql_num_rows($rslt); + $territoryCT=0; + while ($territoryCT < $territory_ct) + { + $row=mysql_fetch_row($rslt); + $territories[$territoryCT] =$row[0]; + $VARterritories = "$VARterritories'$territories[$territoryCT]',"; + $territoryCT++; + } + $VARterritories = substr("$VARterritories", 0, -1); + echo "\n"; + } + + ##### grab the allowable inbound groups to choose from for transfer options + $xfer_groups = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groups = preg_replace("/ /","','",$xfer_groups); + $xfer_groups = "'$xfer_groups'"; + $VARxfergroups="''"; + if ($allow_closers == 'Y') + { + $VARxfergroups=''; + $stmt="select group_id,group_name from vicidial_inbound_groups where active = 'Y' and group_id IN($xfer_groups) order by group_id limit 600;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01016',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $xfer_ct = mysql_num_rows($rslt); + $XFgrpCT=0; + while ($XFgrpCT < $xfer_ct) + { + $row=mysql_fetch_row($rslt); + $VARxfergroups = "$VARxfergroups'$row[0]',"; + $VARxfergroupsnames = "$VARxfergroupsnames'$row[1]',"; + if ($row[0] == "$default_xfer_group") {$default_xfer_group_name = $row[1];} + $XFgrpCT++; + } + $VARxfergroups = substr("$VARxfergroups", 0, -1); + $VARxfergroupsnames = substr("$VARxfergroupsnames", 0, -1); + } + + if (ereg('Y',$agent_allow_group_alias)) + { + ##### grab the active group aliases + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number FROM groups_alias WHERE active='Y' order by group_alias_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01054',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $VD_group_aliases = mysql_num_rows($rslt); + $j=0; + while ($j < $VD_group_aliases) + { + $row=mysql_fetch_row($rslt); + $group_alias_id[$i] = $row[0]; + $group_alias_name[$i] = $row[1]; + $caller_id_number[$i] = $row[2]; + $VARgroup_alias_ids = "$VARgroup_alias_ids'$group_alias_id[$i]',"; + $VARgroup_alias_names = "$VARgroup_alias_names'$group_alias_name[$i]',"; + $VARcaller_id_numbers = "$VARcaller_id_numbers'$caller_id_number[$i]',"; + $i++; + $j++; + } + $VD_group_aliases_ct = ($VD_group_aliases_ct+$VD_group_aliases); + $VARgroup_alias_ids = substr("$VARgroup_alias_ids", 0, -1); + $VARgroup_alias_names = substr("$VARgroup_alias_names", 0, -1); + $VARcaller_id_numbers = substr("$VARcaller_id_numbers", 0, -1); + } + + ##### grab the number of leads in the hopper for this campaign + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id = '$VD_campaign' and status='READY';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01017',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_leads_to_call = $row[0]; + echo "\n"; + + } + else + { + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Campaign not active, please try again
    "; + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "vdweb|FAIL|$date|$VD_login|$VD_pass|$ip|$browser|\n"); + fclose($fp); + } + $VDloginDISPLAY=1; + $VDdisplayMESSAGE = "Login incorrect, please try again
    "; + } + } + if ($VDloginDISPLAY) + { + echo "Agent web client: Campaign Login\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

    $VDdisplayMESSAGE

    "; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Campaign Login
     
    User Login:
    User Password:
    Campaign: $camp_form_code
      \n"; + echo "

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + +$original_phone_login = $phone_login; + +# code for parsing load-balanced agent phone allocation where agent interface +# will send multiple phones-table logins so that the script can determine the +# server that has the fewest agents logged into it. +# login: ca101,cb101,cc101 + $alias_found=0; +$stmt="select count(*) from phones_alias where alias_id = '$phone_login';"; +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01018',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$alias_ct = mysql_num_rows($rslt); +if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_found = "$row[0]"; + } +if ($alias_found > 0) + { + $stmt="select alias_name,logins_list from phones_alias where alias_id = '$phone_login' limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01019',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $alias_ct = mysql_num_rows($rslt); + if ($alias_ct > 0) + { + $row=mysql_fetch_row($rslt); + $alias_name = "$row[0]"; + $phone_login = "$row[1]"; + } + } + +$pa=0; +if ( (eregi(',',$phone_login)) and (strlen($phone_login) > 2) ) + { + $phoneSQL = "("; + $phones_auto = explode(',',$phone_login); + $phones_auto_ct = count($phones_auto); + while($pa < $phones_auto_ct) + { + if ($pa > 0) + {$phoneSQL .= " or ";} + $desc = ($phones_auto_ct - $pa); # traverse in reverse order + $phoneSQL .= "(login='$phones_auto[$desc]' and pass='$phone_pass')"; + $pa++; + } + $phoneSQL .= ")"; + } +else {$phoneSQL = "login='$phone_login' and pass='$phone_pass'";} + +$authphone=0; +#$stmt="SELECT count(*) from phones where $phoneSQL and active = 'Y';"; +$stmt="SELECT count(*) from phones,servers where $phoneSQL and phones.active = 'Y' and active_agent_login_server='Y' and phones.server_ip=servers.server_ip;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01020',$VD_login,$server_ip,$session_name,$one_mysql_log);} +$row=mysql_fetch_row($rslt); +$authphone=$row[0]; +if (!$authphone) + { + echo "Agent web client: Phone Login Error\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "


    "; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Login Error
     
    Sorry, your phone login and password are not active in this system, please try again:
     
    Phone Login:
    Phone Password:

    VERSION: $version       BUILD: $build
    \n"; + echo "\n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } +else + { +### go through the entered phones to figure out which server has fewest agents +### logged in and use that phone login account + if ($pa > 0) + { + $pb=0; + $pb_login=''; + $pb_server_ip=''; + $pb_count=0; + $pb_log=''; + while($pb < $phones_auto_ct) + { + ### find the server_ip of each phone_login + $stmtx="SELECT server_ip from phones where login = '$phones_auto[$pb]';"; + if ($DB) {echo "|$stmtx|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmtx, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01021',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowx=mysql_fetch_row($rslt); + + ### get number of agents logged in to each server + $stmt="SELECT count(*) from vicidial_live_agents where server_ip = '$rowx[0]';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01022',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + + ### find out whether the server is set to active + $stmt="SELECT count(*) from servers where server_ip = '$rowx[0]' and active='Y' and active_agent_login_server='Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01023',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowy=mysql_fetch_row($rslt); + + ### find out whether the server_updater is running + $stmt="SELECT count(*) from server_updater where server_ip = '$rowx[0]' and last_update > '$past_minutes_date';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01024',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $rowz=mysql_fetch_row($rslt); + + $pb_log .= "$phones_auto[$pb]|$rowx[0]|$row[0]|$rowy[0]|$rowz[0]| "; + + if ( ($rowy[0] > 0) && ($rowz[0] > 0) ) + { + if ( ($pb_count >= $row[0]) || (strlen($pb_server_ip) < 4) ) + { + $pb_count=$row[0]; + $pb_server_ip=$rowx[0]; + $phone_login=$phones_auto[$pb]; + } + } + $pb++; + } + echo "\n"; + } + echo "Agent web client\n"; + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret from phones where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01025',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $extension=$row[0]; + $dialplan_number=$row[1]; + $voicemail_id=$row[2]; + $phone_ip=$row[3]; + $computer_ip=$row[4]; + $server_ip=$row[5]; + $login=$row[6]; + $pass=$row[7]; + $status=$row[8]; + $active=$row[9]; + $phone_type=$row[10]; + $fullname=$row[11]; + $company=$row[12]; + $picture=$row[13]; + $messages=$row[14]; + $old_messages=$row[15]; + $protocol=$row[16]; + $local_gmt=$row[17]; + $ASTmgrUSERNAME=$row[18]; + $ASTmgrSECRET=$row[19]; + $login_user=$row[20]; + $login_pass=$row[21]; + $login_campaign=$row[22]; + $park_on_extension=$row[23]; + $conf_on_extension=$row[24]; + $VICIDiaL_park_on_extension=$row[25]; + $VICIDiaL_park_on_filename=$row[26]; + $monitor_prefix=$row[27]; + $recording_exten=$row[28]; + $voicemail_exten=$row[29]; + $voicemail_dump_exten=$row[30]; + $ext_context=$row[31]; + $dtmf_send_extension=$row[32]; + $call_out_number_group=$row[33]; + $client_browser=$row[34]; + $install_directory=$row[35]; + $local_web_callerID_URL=$row[36]; + $VICIDiaL_web_URL=$row[37]; + $AGI_call_logging_enabled=$row[38]; + $user_switching_enabled=$row[39]; + $conferencing_enabled=$row[40]; + $admin_hangup_enabled=$row[41]; + $admin_hijack_enabled=$row[42]; + $admin_monitor_enabled=$row[43]; + $call_parking_enabled=$row[44]; + $updater_check_enabled=$row[45]; + $AFLogging_enabled=$row[46]; + $QUEUE_ACTION_enabled=$row[47]; + $CallerID_popup_enabled=$row[48]; + $voicemail_button_enabled=$row[49]; + $enable_fast_refresh=$row[50]; + $fast_refresh_rate=$row[51]; + $enable_persistant_mysql=$row[52]; + $auto_dial_next_number=$row[53]; + $VDstop_rec_after_each_call=$row[54]; + $DBX_server=$row[55]; + $DBX_database=$row[56]; + $DBX_user=$row[57]; + $DBX_pass=$row[58]; + $DBX_port=$row[59]; + $outbound_cid=$row[65]; + $enable_sipsak_messages=$row[66]; + + $no_empty_session_warnings=0; + if ($phone_login == 'nophone') + { + $no_empty_session_warnings=1; + } + if ($PhoneSComPIP == '1') + { + if (strlen($computer_ip) < 4) + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01026',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + } + if ($PhoneSComPIP == '2') + { + $stmt="UPDATE phones SET computer_ip='$ip' where login='$phone_login' and pass='$phone_pass' and active = 'Y';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01027',$VD_login,$server_ip,$session_name,$one_mysql_log);} + } + if ($clientDST) + { + $local_gmt = ($local_gmt + $isdst); + } + if ($protocol == 'EXTERNAL') + { + $protocol = 'Local'; + $extension = "$dialplan_number$AT$ext_context"; + } + $SIP_user = "$protocol/$extension"; + $SIP_user_DiaL = "$protocol/$extension"; + if ( (ereg('8300',$dialplan_number)) and (strlen($dialplan_number)<5) and ($protocol == 'Local') ) + { + $SIP_user = "$protocol/$extension$VD_login"; + } + + $stmt="SELECT asterisk_version from servers where server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01028',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $asterisk_version=$row[0]; + + # If a park extension is not set, use the default one + if ( (strlen($park_ext)>0) && (strlen($park_file_name)>0) ) + { + $VICIDiaL_park_on_extension = "$park_ext"; + $VICIDiaL_park_on_filename = "$park_file_name"; + echo "\n"; + } + echo "\n"; + + # If a web form address is not set, use the default one + if (strlen($web_form_address)>0) + { + $VICIDiaL_web_form_address = "$web_form_address"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address = "$VICIDiaL_web_URL"; + print "\n"; + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + } + $VICIDiaL_web_form_address_enc = rawurlencode($VICIDiaL_web_form_address); + + # If a web form address two is not set, use the first one + if (strlen($web_form_address_two)>0) + { + $VICIDiaL_web_form_address_two = "$web_form_address_two"; + echo "\n"; + } + else + { + $VICIDiaL_web_form_address_two = "$VICIDiaL_web_form_address"; + echo "\n"; + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + } + $VICIDiaL_web_form_address_two_enc = rawurlencode($VICIDiaL_web_form_address_two); + + # If closers are allowed on this campaign + if ($allow_closers=="Y") + { + $VICIDiaL_allow_closers = 1; + echo "\n"; + } + else + { + $VICIDiaL_allow_closers = 0; + echo "\n"; + } + + + $session_ext = eregi_replace("[^a-z0-9]", "", $extension); + if (strlen($session_ext) > 10) {$session_ext = substr($session_ext, 0, 10);} + $session_rand = (rand(1,9999999) + 10000000); + $session_name = "$StarTtimE$US$session_ext$session_rand"; + + if ($webform_sessionname) + {$webform_sessionname = "&session_name=$session_name";} + else + {$webform_sessionname = '';} + + $stmt="DELETE from web_client_sessions where start_time < '$past_month_date' and extension='$extension' and server_ip = '$server_ip' and program = 'vicidial';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01029',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="INSERT INTO web_client_sessions values('$extension','$server_ip','vicidial','$NOW_TIME','$session_name');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01030',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + if ( ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) || ($campaign_leads_to_call > 0) || (ereg('Y',$no_hopper_leads_logins)) ) + { + ### insert an entry into the user log for the login event + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VD_login','LOGIN','$VD_campaign','$NOW_TIME','$StarTtimE','$VU_user_group')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01031',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + ##### check to see if the user has a conf extension already, this happens if they previously exited uncleanly + $stmt="SELECT conf_exten FROM vicidial_conferences where extension='$SIP_user' and server_ip = '$server_ip' LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01032',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $prev_login_ct = mysql_num_rows($rslt); + $i=0; + while ($i < $prev_login_ct) + { + $row=mysql_fetch_row($rslt); + $session_id =$row[0]; + $i++; + } + if ($prev_login_ct > 0) + {echo "\n";} + else + { + ##### grab the next available vicidial_conference room and reserve it + $stmt="SELECT count(*) FROM vicidial_conferences where server_ip='$server_ip' and ((extension='') or (extension is null));"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01033',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $stmt="UPDATE vicidial_conferences set extension='$SIP_user', leave_3way='0' where server_ip='$server_ip' and ((extension='') or (extension is null)) limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01034',$VD_login,$server_ip,$session_name,$one_mysql_log);} + + $stmt="SELECT conf_exten from vicidial_conferences where server_ip='$server_ip' and ( (extension='$SIP_user') or (extension='$VD_login') );"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01035',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $row=mysql_fetch_row($rslt); + $session_id = $row[0]; + } + echo "\n"; + } + + ### mark leads that were not dispositioned during previous calls as ERI + $stmt="UPDATE vicidial_list set status='ERI', user='' where status IN('QUEUE','INCALL') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01036',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_hopper where status IN('QUEUE','INCALL','DONE') and user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01037',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01038',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + $stmt="DELETE from vicidial_live_inbound_agents where user ='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01039',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + # echo "You have logged in as user: $VD_login on phone: $SIP_user to campaign: $VD_campaign
    \n"; + $VICIDiaL_is_logged_in=1; + + ### set the callerID for manager middleware-app to connect the phone to the user + $SIqueryCID = "S$CIDdate$session_id"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id,vicidial_agent_disable,allow_sipsak_messages FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01040',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + $vicidial_agent_disable = $row[6]; + $allow_sipsak_messages = $row[7]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + + if ( ($enable_sipsak_messages > 0) and ($allow_sipsak_messages > 0) and (eregi("SIP",$protocol)) ) + { + $SIPSAK_prefix = 'LIN-'; + echo "\n"; + passthru("/usr/local/bin/sipsak -M -O desktop -B \"$SIPSAK_prefix$VD_campaign\" -r 5060 -s sip:$extension@$phone_ip > /dev/null"); + $SIqueryCID = "$SIPSAK_prefix$VD_campaign$DS$CIDdate"; + } + + ### insert a NEW record to the vicidial_manager table to be processed + $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','$SIqueryCID','Channel: $SIP_user_DiaL','Context: $ext_context','Exten: $session_id','Priority: 1','Callerid: \"$SIqueryCID\" <$campaign_cid>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01041',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + ##### grab the campaign_weight and number of calls today on that campaign for the agent + $stmt="SELECT campaign_weight,calls_today FROM vicidial_campaign_agents where user='$VD_login' and campaign_id = '$VD_campaign';"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01042',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $vca_ct = mysql_num_rows($rslt); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_weight = $row[0]; + $calls_today = $row[1]; + $i++; + } + else + { + $campaign_weight = '0'; + $calls_today = '0'; + $stmt="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) values('$VD_login','$VD_campaign','0','0','$calls_today');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01043',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + } + + if ($auto_dial_level > 0) + { + echo "\n"; + + + $closer_chooser_string=''; + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$closer_chooser_string','$user_level','$campaign_weight','$calls_today','$NOW_TIME','Y','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01044',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01045',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01046',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + + if ( ($campaign_allow_inbound == 'Y') and ($dial_method != 'MANUAL') ) + { + print "\n"; + } + } + else + { + print "\n"; + + $stmt="INSERT INTO vicidial_live_agents (user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,user_level,campaign_weight,calls_today,last_state_change,outbound_autodial,manager_ingroup_set) values('$VD_login','$server_ip','$session_id','$SIP_user','PAUSED','','$VD_campaign','','','','$random','$NOW_TIME','$tsNOW_TIME','$NOW_TIME','$user_level', '$campaign_weight', '$calls_today','$NOW_TIME','N','N');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01047',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='$VD_campaign',agent='Agent/$VD_login',verb='AGENTLOGIN',data1='$VD_login@agents',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01048',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimE',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEALL',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01049',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + } + } + else + { + echo "Agent web client: Campaign Login\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "Sorry, there are no leads in the hopper for this campaign\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
    "; + echo "Password:
    \n"; + echo "Campaign: $camp_form_code
    \n"; + echo "   \n"; + echo "\n"; + echo "
    \n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + if (strlen($session_id) < 1) + { + echo "Agent web client: Campaign Login\n"; + echo "\n"; + echo "\n"; + echo " Timeclock
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "Sorry, there are no available sessions\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Login: \n
    "; + echo "Password:
    \n"; + echo "Campaign: $camp_form_code
    \n"; + echo "   \n"; + echo "\n"; + echo "
    \n\n"; + echo "\n\n"; + echo "\n\n"; + exit; + } + + if (ereg('MSIE',$browser)) + { + $useIE=1; + echo "\n"; + } + else + { + $useIE=0; + echo "\n"; + } + + $StarTtimE = date("U"); + $NOW_TIME = date("Y-m-d H:i:s"); + ##### Agent is going to log in so insert the vicidial_agent_log entry now + $stmt="INSERT INTO vicidial_agent_log (user,server_ip,event_time,campaign_id,pause_epoch,pause_sec,wait_epoch,user_group,sub_status) values('$VD_login','$server_ip','$NOW_TIME','$VD_campaign','$StarTtimE','0','$StarTtimE','$VU_user_group','LOGIN');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01050',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($link); + $agent_log_id = mysql_insert_id($link); + echo "\n"; + + ##### update vicidial_campaigns to show agent has logged in + $stmt="UPDATE vicidial_campaigns set campaign_logindate='$NOW_TIME' where campaign_id='$VD_campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01064',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VCaffected_rows = mysql_affected_rows($link); + echo "\n"; + + if ($enable_queuemetrics_logging > 0) + { + $StarTtimEpause = ($StarTtimE + 1); + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt = "INSERT INTO queue_log SET partition='P01',time_id='$StarTtimEpause',call_id='NONE',queue='NONE',agent='Agent/$VD_login',verb='PAUSEREASON',data1='LOGIN',serverid='$queuemetrics_log_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkB); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$linkB,$mel,$stmt,'01063',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $affected_rows = mysql_affected_rows($linkB); + echo "\n"; + + mysql_close($linkB); + mysql_select_db("$VARDB_database", $link); + } + + $stmt="UPDATE vicidial_live_agents SET agent_log_id='$agent_log_id' where user='$VD_login';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01061',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VLAaffected_rows_update = mysql_affected_rows($link); + + $stmt="UPDATE vicidial_users SET shift_override_flag='0' where user='$VD_login' and shift_override_flag='1';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01057',$VD_login,$server_ip,$session_name,$one_mysql_log);} + $VUaffected_rows = mysql_affected_rows($link); + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $server_ip_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + ##### grab the datails of all active scripts in the system + $stmt="SELECT script_id,script_name FROM vicidial_scripts WHERE active='Y' order by script_id limit 1000;"; + $rslt=mysql_query($stmt, $link); + if ($mel > 0) {mysql_error_logging($NOW_TIME,$link,$mel,$stmt,'01051',$VD_login,$server_ip,$session_name,$one_mysql_log);} + if ($DB) {echo "$stmt\n";} + $MM_scripts = mysql_num_rows($rslt); + $e=0; + while ($e < $MM_scripts) + { + $row=mysql_fetch_row($rslt); + $MMscriptid[$e] =$row[0]; + $MMscriptname[$e] = urlencode($row[1]); + $MMscriptids = "$MMscriptids'$MMscriptid[$e]',"; + $MMscriptnames = "$MMscriptnames'$MMscriptname[$e]',"; + $e++; + } + $MMscriptids = substr("$MMscriptids", 0, -1); + $MMscriptnames = substr("$MMscriptnames", 0, -1); + } +} + + +### SCREEN WIDTH AND HEIGHT CALCULATIONS ### +### DO NOT EDIT! ### +if ($stretch_dimensions > 0) + { + if ($agent_status_view < 1) + { + if ($JS_browser_width >= 510) + {$BROWSER_WIDTH = ($JS_browser_width - 80);} + } + else + { + if ($JS_browser_width >= 730) + {$BROWSER_WIDTH = ($JS_browser_width - 300);} + } + if ($JS_browser_height >= 340) + {$BROWSER_HEIGHT = ($JS_browser_height - 40);} + } +$MASTERwidth=($BROWSER_WIDTH - 340); +$MASTERheight=($BROWSER_HEIGHT - 200); +if ($MASTERwidth < 430) {$MASTERwidth = '430';} +if ($MASTERheight < 300) {$MASTERheight = '300';} + +$CAwidth = ($MASTERwidth + 340); # 770 - cover all (none-in-session, customer hunngup, etc...) +$SBwidth = ($MASTERwidth + 331); # 761 - SideBar starting point +$MNwidth = ($MASTERwidth + 330); # 760 - main frame +$XFwidth = ($MASTERwidth + 320); # 750 - transfer/conference +$HCwidth = ($MASTERwidth + 310); # 740 - hotkeys and callbacks +$CQwidth = ($MASTERwidth + 300); # 730 - calls in queue listings +$AMwidth = ($MASTERwidth + 270); # 700 - preset-dial links +$SCwidth = ($MASTERwidth + 230); # 670 - live call seconds counter, sidebar link +$MUwidth = ($MASTERwidth + 180); # 610 - agent mute +$SSwidth = ($MASTERwidth + 176); # 606 - scroll script +$SDwidth = ($MASTERwidth + 170); # 600 - scroll script, customer data and calls-in-session +$HKwidth = ($MASTERwidth + 20); # 450 - Hotkeys button +$HSwidth = ($MASTERwidth + 1); # 431 - Header spacer +$CLwidth = ($MASTERwidth - 160); # 270 - Calls in queue link + +$CQheight = ($MASTERheight + 140); # 440 - Calls in queue section +$SLheight = ($MASTERheight + 122); # 422 - SideBar link, Calls in queue link +$HKheight = ($MASTERheight + 105); # 405 - HotKey active Button +$AMheight = ($MASTERheight + 100); # 400 - Agent mute and preset dial links +$MBheight = ($MASTERheight + 65); # 365 - Manual Dial Buttons +$CBheight = ($MASTERheight + 50); # 350 - Agent Callback, pause code, volume control Buttons and agent status +$SSheight = ($MASTERheight + 31); # 331 - script content +$HTheight = ($MASTERheight + 10); # 310 - transfer frame, callback comments and hotkey +$BPheight = ($MASTERheight - 250); # 50 - bottom buffer, Agent Xfer Span + + +################################################################ +### BEGIN - build the callback calendar (12 months) ### +################################################################ +define ('ADAY', (60*60*24)); +$CdayARY = getdate(); +$Cmon = $CdayARY['mon']; +$Cyear = $CdayARY['year']; +$CTODAY = date("Y-m"); +$CTODAYmday = date("j"); +$CINC=0; + +$Cmonths = Array('January','February','March','April','May','June', + 'July','August','September','October','November','December'); +$Cdays = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); + +$CCAL_OUT = ''; + +$CCAL_OUT .= ""; + +while ($CINC < 12) +{ +if ( ($CINC == 0) || ($CINC == 4) ||($CINC == 8) ) + {$CCAL_OUT .= "";} + +$CCAL_OUT .= ""; + +if ( ($CINC == 3) || ($CINC == 7) ||($CINC == 11) ) + {$CCAL_OUT .= "";} +$CINC++; +} + +$CCAL_OUT .= "
    "; + +$CYyear = $Cyear; +$Cmonth= ($Cmon + $CINC); +if ($Cmonth > 12) + { + $Cmonth = ($Cmonth - 12); + $CYyear++; + } +$Cstart= mktime(11,0,0,$Cmonth,1,$CYyear); +$CfirstdayARY = getdate($Cstart); +#echo "|$Cmon|$Cmonth|$CINC|\n"; +$CPRNTDAY = date("Y-m", $Cstart); + +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; +$CCAL_OUT .= ""; + +foreach($Cdays as $Cday) +{ + $CDCLR="#ffffff"; +$CCAL_OUT .= ""; +} + +for( $Ccount=0;$Ccount<(6*7);$Ccount++) +{ + $Cdayarray = getdate($Cstart); + if((($Ccount) % 7) == 0) + { + if($Cdayarray['mon'] != $CfirstdayARY['mon']) + break; + $CCAL_OUT .= ""; + } + if($Ccount < $CfirstdayARY['wday'] || $Cdayarray['mon'] != $Cmonth) + { + $CCAL_OUT .= ""; + } + else + { + if( ($Cdayarray['mday'] == $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + else + { + $CDCLR="#ffffff"; + if ( ($Cdayarray['mday'] < $CTODAYmday) and ($CPRNTDAY == $CTODAY) ) + { + $CDCLR="$MAIN_COLOR"; + $CBL = ''; + $CEL = ''; + } + else + { + $CPRNTmday = $Cdayarray['mday']; + if ($CPRNTmday < 10) {$CPRNTmday = "0$CPRNTmday";} + $CBL = ""; + $CEL = ""; + } + + $CCAL_OUT .= ""; + $Cstart += ADAY; + } + } +} +$CCAL_OUT .= ""; +$CCAL_OUT .= "
    "; +$CCAL_OUT .= "
    "; +$CCAL_OUT .= "$CfirstdayARY[month] $CfirstdayARY[year]"; +$CCAL_OUT .= "
    "; +$CCAL_OUT .= "
    "; +$CCAL_OUT .= "
    "; +$CCAL_OUT .= "$Cday"; +$CCAL_OUT .= "
    "; +$CCAL_OUT .= "
     "; + $CCAL_OUT .= "
    "; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
    "; + $CCAL_OUT .= "
    "; + $CCAL_OUT .= "
    "; + $CCAL_OUT .= "$CBL$Cdayarray[mday]$CEL"; + $CCAL_OUT .= "
    "; + $CCAL_OUT .= "
    "; +$CCAL_OUT .= "
    "; + +#echo "$CCAL_OUT\n"; +################################################################ +### END - build the callback calendar (12 months) ### +################################################################ + + +?> + + + + +\n"; + + +?> + +
    + + MARGINWIDTH=0 MARGINHEIGHT=0 LEFTMARGIN=0 TOPMARGIN=0 VALIGN=TOP ALIGN=LEFT> +
    + + + +     + + 0) {echo "TERRITORIES     \n";} ?> + 0) {echo "GROUPS     \n";} ?> +LOGOUT\n"; ?> +
    +
    + + + height=30> + + + + + +
    MAINSCRIPT VALIGN=MIDDLE ALIGN=CENTER>  LIVE   session ID:    Live Call
    +
    + + + + + height=>

    Agent Screen
    +
    + + +MANUAL DIAL       FAST DIAL
    +
    + + +X ACTIVE CALLBACKS
    +
    + + +
    +
    + + seconds: +     + + + + D1 - DIAL\n"; + echo "
    \n"; + echo "D2 - DIAL\n"; + } + else {echo "
    \n";} + ?> +

     
    +
    + + + height=460>
    CALLBACKS FOR AGENT :
    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. +
    +
    +
      + Refresh +                 + Go Back +
    +
    + + + height=460>
    NEW MANUAL DIAL LEAD FOR :

    Enter information below for the new lead you wish to call. +
    + \n"; + } + ?> + Note: all new manual dial leads will go into list

    + + + + + + + + + + + + + + + +
    Dial Code:   (This is usually a 1 in the USA-Canada)
    Phone Number: +   (12 digits max - digits only) +
    Search Existing Leads:   (This option if checked will attempt to find the phone number in the system before inserting it as a new lead)
    +

    +     +
    +

    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.
     
    Dial Override:   (digits only please) +
    +
    + Dial Now +                 + Preview Call +                 + Go Back +
    +
    + + + +
    +
    + + + + +Your Status:
    Calls Dialing: +
    + + + + + > + + +
    +
    + + Transfer - Conference            
    + + + + + + + + + + + + + + + + + + + + + + + +
    + + + LOCAL CLOSER     + + Hangup Xfer Line +
    + seconds +   + channel + + CONSULTATIVE   + + Hangup Both Lines +
    + Number to call +   +   + + + DIAL OVERRIDE + + LEAVE 3-WAY CALL +
    + Dial Blind Transfer +   + Dial With Customer +   + Park Customer Dial +   + + D1 + D2 + D3 + D4 + D5 + +   + Blind Transfer VMail Message +
    + +
    +
    +
    +
    + + + +
     Calls In Queue:  
     
    + + + 0) + { + if ($view_calls_in_queue_launch > 0) + {echo "Hide Calls In Queue\n";} + else + {echo "Show Calls In Queue\n";} + } +?> + + + +
      +Other Agents Status:  
     
    + +
    +Available Agents Transfer:
    + +
    Agents View +
    + + + 0) + { + echo "Dialable Leads:
     \n"; + } +?> +
    + + + + + + height=70> + +
    Lead Dispositioned As:

    + -
    +
    +
    + + + height=70> + + + + +
    Disposition Hot Keys: + When active, simply press the keyboard key for the desired disposition for this call. The call will then be hungup and dispositioned automatically:
    + + + + + +
    +
    + + + height=70> + + + + + + +
    Previous Callback Information: close
    +
    +
    +
    +
    + +
    +
    + + + height=70> + + + + + + +
    Extended Alt Phone Information: minimize
    +
    +
    +
    +
    + +
    +
    + + + + + +
    maximize
    Alt Phone Info
    +
    + + + height=500>
    Noone is in your session:
    + Go Back +

    + Call Agent Again +
    +
    + + + height=500>
    Customer has hung up:
    + Go Back +

    + Finish and Disposition Call +
    +
    + + + height=550>
    Call Wrapup: seconds remaining in wrapup

    + +

    + Finish Wrapup and Move On +
    +
    + + +
    +


    + Close Message +
    +
    + + + height=500>
    Your session has been disabled
    LOGOUT

    Go Back +
    +
    + + + height=500>
    There is a time synchronization problem with your system, please tell your system administrator


    Go Back +
    +
    + + + height=500>

    LOGOUT
    +
    + + +
    +
    + + +
     
    +
    + + + height=47>
    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.
    +
    + + + height=460>
    DISPOSITION CALL :       Hangup Again       minimize
    + End-of-call Disposition Selection +
    + PAUSE AGENT DIALING
    + CLEAR FORM | + SUBMIT +

    + WEB FORM SUBMIT +

      +
    +
    + + + height=460>
    SELECT A PAUSE CODE :
    + Pause Code Selection + +

      +
    +
    + + + height=460>
    SELECT A GROUP ALIAS :
    + Group Alias Selection + +

      +
    +
    + + + + + + height=460>
    Select a CallBack Date :
    + + + Select a Date Below   +     + Hour: +   + Minutes: +   + +  
    + MY CALLBACK ONLY
    ";} + ?> + CB Comments:

    + + SUBMIT

    + +

      +
    +
    + + + height=460>
    CLOSER INBOUND GROUP SELECTION
    + Closer Inbound Group Selection +
    + 0) and ($disable_blended_checkbox < 1) and ($dial_method != 'INBOUND_MAN') ) + { + ?> + BLENDED CALLING(outbound activated)
    + + RESET | + SUBMIT +



      +
    +
    + + + height=460>
    TERRITORY SELECTION
    + Territory Selection +
    + RESET | + SUBMIT +



      +
    +
    + + + + Channel + Channel + MY CALLBACK ONLY
    ";} + if ( ($outbound_autodial_active < 1) or ($disable_blended_checkbox > 0) or ($dial_method == 'INBOUND_MAN') ) + {echo " BLENDED CALLING
    ";} + ?> +
    + + + + height=>
    AGENT SCRIPT
    +
    + + +refresh + + + + 0) && ( ($user_level>=$HKuser_level) or ($VU_hotkeys_active > 0) ) ) { ?> +HOT KEYS INACTIVE + + + + +> + + + + +
    Agent web-client version:     BUILD:               Server:              
    + +Show conference call channel information +

     
    +
    + 0) ) + {echo "Alert is ON";} +else + {echo "Alert is OFF";} +?> +
    + + + +
    +
    + + + + + id="MainTable"> + + + + + + + + + + + + + + + +
    STATUS:
    +
    +Dial Next Number
    + LEAD PREVIEW
    + ALT PHONE DIAL
    + + +RECORDING FILE:
    +
    +
    +RECORD ID:
    +
    + +Start Recording
    +
    +Web Form
    + 0) + {echo "\"Web
    \n";} +?> +
    +Park Call
    +Transfer - Conference
    + + 0) + {echo "\"Quick
    \n";} +?> + + + + 0) + {echo "
    \n";} +?> + + +
    +Hangup Customer
    +
    +
    Send DTMF

    +
    +
    +
    align=left valign=top> + + + + + + + + + + + + +
    + + + + + + + +
      Customer Time:   Channel:
    Customer Information:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Title:   First:   MI:   Last:
    Address1:
    Address2: Address3:
    City: State: PostCode:
    Province: Vendor ID: Gender:
    Phone: +                     "; + echo ""; + } +else + { + echo ""; + } +?> + +DialCode: Alt. Phone:
    Show: Email:
    Comments: + +\n";} +else + {echo "\n";} +?> + +
    +
    + +
    +
    > + 
    + + + + + + + 0) or ($one_mysql_log > 0) ) + { + $errno = mysql_errno($link); + if ( ($errno > 0) or ($mel > 1) or ($one_mysql_log > 0) ) + { + $error = mysql_error($link); + $efp = fopen ("./vicidial_mysql_errors.txt", "a"); + fwrite ($efp, "$NOW_TIME|vicidial |$query_id|$errno|$error|$stmt|$user|$server_ip|$session_name|\n"); + fclose($efp); + } + } +$one_mysql_log=0; +return $errno; +} + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/vicidial_redirect.php b/agc_2-X/branches/agc_2.2.0/www/agc/vicidial_redirect.php new file mode 100644 index 00000000..6eded8cd --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/vicidial_redirect.php @@ -0,0 +1,47 @@ + LICENSE: AGPLv2 +# +# CHANGELOG +# 71202-1546 - First Build +# 90508-0727 - Changed to PHP long tags +# + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["VD_login"])) {$VD_login=$_GET["VD_login"];} + elseif (isset($_POST["VD_login"])) {$VD_login=$_POST["VD_login"];} +if (isset($_GET["VD_pass"])) {$VD_pass=$_GET["VD_pass"];} + elseif (isset($_POST["VD_pass"])) {$VD_pass=$_POST["VD_pass"];} +if (isset($_GET["VD_campaign"])) {$VD_campaign=$_GET["VD_campaign"];} + elseif (isset($_POST["VD_campaign"])) {$VD_campaign=$_POST["VD_campaign"];} +if (isset($_GET["relogin"])) {$relogin=$_GET["relogin"];} + elseif (isset($_POST["relogin"])) {$relogin=$_POST["relogin"];} + +if (!isset($phone_login)) + { + if (isset($_GET["pl"])) {$phone_login=$_GET["pl"];} + elseif (isset($_POST["pl"])) {$phone_login=$_POST["pl"];} + } +if (!isset($phone_pass)) + { + if (isset($_GET["pp"])) {$phone_pass=$_GET["pp"];} + elseif (isset($_POST["pp"])) {$phone_pass=$_POST["pp"];} + } + +$URL = "http://192.168.1.60/agc/vicidial.php?phone_login=$phone_login&phone_pass=$phone_pass&DB=$DB&VD_login=$VD_login&VD_pass=$VD_pass&VD_campaign=$VD_campaign&relogin=$relogin"; + +echo"Agent Redirect\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"click here to continue. . .\n"; +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/agc/voicemail_check.php b/agc_2-X/branches/agc_2.2.0/www/agc/voicemail_check.php new file mode 100644 index 00000000..e454af09 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/agc/voicemail_check.php @@ -0,0 +1,141 @@ + LICENSE: AGPLv2 +# +# This script is designed purely to check whether the voicemail box on the server defined has new and old messages +# This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table +# +# required variables: +# - $server_ip +# - $session_name +# - $user +# - $pass +# optional variables: +# - $format - ('text','debug') +# - $vmail_box - ('101','1234',...) +# +# +# changes +# 50422-1147 - First build of script +# 50503-1241 - added session_name checking for extra security +# 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 +# 60619-1204 - Added variable filters to close security holes for login form +# 90508-0727 - Changed to PHP long tags +# + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_name"])) {$session_name=$_GET["session_name"];} + elseif (isset($_POST["session_name"])) {$session_name=$_POST["session_name"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["vmail_box"])) {$vmail_box=$_GET["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 +if (!isset($format)) {$format="text";} + +$version = '0.0.5'; +$build = '60619-1204'; +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($user)<2) or (strlen($pass)<2) or ($auth==0)) + { + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if( (strlen($server_ip)<6) or (!isset($server_ip)) or ( (strlen($session_name)<12) or (!isset($session_name)) ) ) + { + echo "Invalid server_ip: |$server_ip| or Invalid session_name: |$session_name|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from web_client_sessions where session_name='$session_name' and server_ip='$server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $SNauth=$row[0]; + if($SNauth==0) + { + echo "Invalid session_name: |$session_name|$server_ip|\n"; + exit; + } + else + { + # do nothing for now + } + } + } + +if ($format=='debug') +{ +echo "\n"; +echo "\n"; +echo "\n"; +echo "Voicemail Check"; +echo "\n"; +echo "\n"; +echo "\n"; +} + + $MT[0]=''; + $row=''; $rowx=''; + if (strlen($vmail_box)<1) + { + $channel_live=0; + echo "voicemail box $vmail_box is not valid\n"; + exit; + } + else + { + $stmt="SELECT messages,old_messages FROM phones where server_ip='$server_ip' and voicemail_id='$vmail_box' limit 1;"; + if ($format=='debug') {echo "\n";} + $rslt=mysql_query($stmt, $link); + $vmails_list = mysql_num_rows($rslt); + $loop_count=0; + while ($vmails_list>$loop_count) + { + $loop_count++; + $row=mysql_fetch_row($rslt); + echo "$row[0]|$row[1]"; + if ($format=='debug') {echo "\n";} + } + } + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSER_service_level.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSER_service_level.php new file mode 100644 index 00000000..ae53c78d --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSER_service_level.php @@ -0,0 +1,959 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80509-0943 - First build +# 80510-1500 - Added fixed scale hold time graph +# 80519-0413 - rewrote time intervals code and stats gathering code +# 80528-2320 - fixed small calculation bugs and display bugs, added more shifts +# 90310-2117 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90801-0923 - Added in-group name to pulldown +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Service Level Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
    "; + +echo "
    \n"; +echo "\n"; +echo " to \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFY | REPORTS \n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if (!$group)
    +	{
    +	echo "\n\n";
    +	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +	}
    +
    +else
    +{
    +### FOR SHIFTS IT IS BEST TO STICK TO 15-MINUTE INCREMENTS FOR START TIMES ###
    +
    +if ($shift == 'AM') 
    +	{
    +#	$time_BEGIN=$AM_shift_BEGIN;
    +#	$time_END=$AM_shift_END;
    +#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +#	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}   
    +	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
    +#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}   
    +#	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
    +	}
    +if ($shift == 'PM') 
    +	{
    +#	$time_BEGIN=$PM_shift_BEGIN;
    +#	$time_END=$PM_shift_END;
    +#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +#	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +	}
    +if ($shift == 'ALL') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +	}
    +if ($shift == 'DAYTIME') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
    +	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
    +	}
    +if ($shift == '10AM-6PM') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "10:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "17:59:59";}
    +	}
    +if ($shift == '9AM-1AM') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "09:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
    +	}
    +if ($shift == '845-1745') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
    +	if (strlen($time_END) < 6) {$time_END = "17:44:59";}
    +	}
    +if ($shift == '1745-100') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "17:45:00";}
    +	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
    +	}
    +
    +$query_date_BEGIN = "$query_date $time_BEGIN";   
    +$query_date_END = "$end_date $time_END";
    +
    +$SQdate_ARY =	explode(' ',$query_date_BEGIN);
    +$SQday_ARY =	explode('-',$SQdate_ARY[0]);
    +$SQtime_ARY =	explode(':',$SQdate_ARY[1]);
    +$EQdate_ARY =	explode(' ',$query_date_END);
    +$EQday_ARY =	explode('-',$EQdate_ARY[0]);
    +$EQtime_ARY =	explode(':',$EQdate_ARY[1]);
    +
    +$SQepochDAY = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
    +$SQepoch = mktime($SQtime_ARY[0], $SQtime_ARY[1], $SQtime_ARY[2], $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
    +$EQepoch = mktime($EQtime_ARY[0], $EQtime_ARY[1], $EQtime_ARY[2], $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
    +
    +$SQsec = ( ($SQtime_ARY[0] * 3600) + ($SQtime_ARY[1] * 60) + ($SQtime_ARY[2] * 1) );
    +$EQsec = ( ($EQtime_ARY[0] * 3600) + ($EQtime_ARY[1] * 60) + ($EQtime_ARY[2] * 1) );
    +
    +$DURATIONsec = ($EQepoch - $SQepoch);
    +$DURATIONday = intval( ($DURATIONsec / 86400) + 1 );
    +
    +if ( ($EQsec < $SQsec) and ($DURATIONday < 1) )
    +	{
    +	$EQepoch = ($SQepochDAY + ($EQsec + 86400) );
    +	$query_date_END = date("Y-m-d H:i:s", $EQepoch);
    +	$DURATIONday++;
    +	}
    +
    +echo "Inbound Service Level Report                      $NOW_TIME\n";
    +echo "\n";
    +echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
    +#echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
    +
    +$d=0;
    +while ($d < $DURATIONday)
    +	{
    +	$dSQepoch = ($SQepoch + ($d * 86400) );
    +	$dEQepoch = ($SQepochDAY + ($EQsec + ($d * 86400) ) );
    +
    +	if ($EQsec < $SQsec)
    +		{
    +		$dEQepoch = ($dEQepoch + 86400);
    +		}
    +
    +	$daySTART[$d] = date("Y-m-d H:i:s", $dSQepoch);
    +	$dayEND[$d] = date("Y-m-d H:i:s", $dEQepoch);
    +
    +	$d++;
    +	}
    +
    +##########################################################################
    +#########  CALCULATE ALL OF THE 15-MINUTE PERIODS NEEDED FOR ALL DAYS ####
    +
    +### BUILD HOUR:MIN DISPLAY ARRAY ###
    +$i=0;
    +$h=4;
    +$j=0;
    +$Zhour=1;
    +$active_time=0;
    +$hour =		($SQtime_ARY[0] - 1);
    +$startSEC = ($SQsec - 900);
    +$endSEC =	($SQsec - 1);
    +if ($SQtime_ARY[1] > 14) 
    +	{
    +	$h=1;
    +	$hour++;
    +	if ($hour < 10) {$hour = "0$hour";}
    +	}
    +if ($SQtime_ARY[1] > 29) {$h=2;}
    +if ($SQtime_ARY[1] > 44) {$h=3;}
    +while ($i < 96)
    +	{
    +	$startSEC = ($startSEC + 900);
    +	$endSEC = ($endSEC + 900);
    +	$time = '      ';
    +	if ($h >= 4)
    +		{
    +		$hour++;
    +		if ($Zhour == '00') 
    +			{
    +			$startSEC=0;
    +			$endSEC=899;
    +			}
    +		$h=0;
    +		if ($hour < 10) {$hour = "0$hour";}
    +		$Stime="$hour:00";
    +		$Etime="$hour:15";
    +		$time = "+$Stime-$Etime+";
    +		}
    +	if ($h == 1)
    +		{
    +		$Stime="$hour:15";
    +		$Etime="$hour:30";
    +		$time = " $Stime-$Etime ";
    +		}
    +	if ($h == 2)
    +		{
    +		$Stime="$hour:30";
    +		$Etime="$hour:45";
    +		$time = " $Stime-$Etime ";
    +		}
    +	if ($h == 3)
    +		{
    +		$Zhour=$hour;
    +		$Zhour++;
    +		if ($Zhour < 10) {$Zhour = "0$Zhour";}
    +		if ($Zhour == 24) {$Zhour = "00";}
    +		$Stime="$hour:45";
    +		$Etime="$Zhour:00";
    +		$time = " $Stime-$Etime ";
    +		if ($Zhour == '00') 
    +			{$hour = ($Zhour - 1);}
    +		}
    +
    +	if ( ( ($startSEC >= $SQsec) and ($endSEC <= $EQsec) and ($EQsec > $SQsec) ) or 
    +		( ($startSEC >= $SQsec) and ($EQsec < $SQsec) ) or 
    +		( ($endSEC <= $EQsec) and ($EQsec < $SQsec) ) )
    +		{
    +		$HMdisplay[$j] =	$time;
    +		$HMstart[$j] =		$Stime;
    +		$HMend[$j] =		$Etime;
    +		$HMSepoch[$j] =		$startSEC;
    +		$HMEepoch[$j] =		$endSEC;
    +
    +		$j++;
    +		}
    +
    +	$h++;
    +	$i++;
    +	}
    +
    +$TOTintervals = $j;
    +
    +
    +### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
    +$stmt="select queue_seconds,UNIX_TIMESTAMP(call_date),length_in_sec,status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "';";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$records_to_grab = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $records_to_grab)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$qs[$i] = $row[0];
    +	$dt[$i] = 0;
    +	$ut[$i] = ($row[1] - $SQepochDAY);
    +	while($ut[$i] >= 86400) 
    +		{
    +		$ut[$i] = ($ut[$i] - 86400);
    +		$dt[$i]++;
    +		}
    +	if ( ($ut[$i] <= $EQsec) and ($EQsec < $SQsec) )
    +		{
    +		$dt[$i] = ($dt[$i] - 1);
    +		}
    +	$ls[$i] = $row[2];
    +	$st[$i] = $row[3];
    +
    +#	echo "$qs[$i] $dt[$i] $ut[$i] $ls[$i] $st[$i]\n";
    +
    +	$i++;
    +	}
    +
    +### PARSE THROUGH ALL RECORDS AND GENERATE STATS ###
    +$MT[0]='0';
    +$totCALLS=0;
    +$totDROPS=0;
    +$totQUEUE=0;
    +$totCALLSsec=0;
    +$totDROPSsec=0;
    +$totQUEUEsec=0;
    +$totCALLSmax=0;
    +$totDROPSmax=0;
    +$totQUEUEmax=0;
    +$totCALLSdate=$MT;
    +$totDROPSdate=$MT;
    +$totQUEUEdate=$MT;
    +$qrtCALLS=$MT;
    +$qrtDROPS=$MT;
    +$qrtQUEUE=$MT;
    +$qrtCALLSsec=$MT;
    +$qrtDROPSsec=$MT;
    +$qrtQUEUEsec=$MT;
    +$qrtCALLSavg=$MT;
    +$qrtDROPSavg=$MT;
    +$qrtQUEUEavg=$MT;
    +$qrtCALLSmax=$MT;
    +$qrtDROPSmax=$MT;
    +$qrtQUEUEmax=$MT;
    +$j=0;
    +while ($j < $TOTintervals)
    +	{
    +	$jd__0[$j]=0; $jd_20[$j]=0; $jd_40[$j]=0; $jd_60[$j]=0; $jd_80[$j]=0; $jd100[$j]=0; $jd120[$j]=0; $jd121[$j]=0;
    +	$Phd__0[$j]=0; $Phd_20[$j]=0; $Phd_40[$j]=0; $Phd_60[$j]=0; $Phd_80[$j]=0; $Phd100[$j]=0; $Phd120[$j]=0; $Phd121[$j]=0;
    +	$qrtCALLS[$j]=0; $qrtCALLSsec[$j]=0; $qrtCALLSmax[$j]=0;
    +	$qrtDROPS[$j]=0; $qrtDROPSsec[$j]=0; $qrtDROPSmax[$j]=0;
    +	$qrtQUEUE[$j]=0; $qrtQUEUEsec[$j]=0; $qrtQUEUEmax[$j]=0;
    +	$i=0;
    +	while ($i < $records_to_grab)
    +		{
    +		if ( ($ut[$i] >= $HMSepoch[$j]) and ($ut[$i] <= $HMEepoch[$j]) )
    +			{
    +			$totCALLS++;
    +			$totCALLSsec = ($totCALLSsec + $ls[$i]);
    +			$totCALLSsecDATE[$dtt] = ($totCALLSsecDATE[$dtt] + $ls[$i]);
    +			$qrtCALLS[$j]++;
    +			$qrtCALLSsec[$j] = ($qrtCALLSsec[$j] + $ls[$i]);
    +			$dtt = $dt[$i];
    +			$totCALLSdate[$dtt]++;
    +			if ($totCALLSmax < $ls[$i]) {$totCALLSmax = $ls[$i];}
    +			if ($qrtCALLSmax[$j] < $ls[$i]) {$qrtCALLSmax[$j] = $ls[$i];}
    +			if (ereg('DROP',$st[$i])) 
    +				{
    +				$totDROPS++;
    +				$totDROPSsec = ($totDROPSsec + $ls[$i]);
    +				$totDROPSsecDATE[$dtt] = ($totDROPSsecDATE[$dtt] + $ls[$i]);
    +				$qrtDROPS[$j]++;
    +				$qrtDROPSsec[$j] = ($qrtDROPSsec[$j] + $ls[$i]);
    +				$totDROPSdate[$dtt]++;
    +				if ($totDROPSmax < $ls[$i]) {$totDROPSmax = $ls[$i];}
    +				if ($qrtDROPSmax[$j] < $ls[$i]) {$qrtDROPSmax[$j] = $ls[$i];}
    +				}
    +			if ($qs[$i] > 0) 
    +				{
    +				$totQUEUE++;
    +				$totQUEUEsec = ($totQUEUEsec + $qs[$i]);
    +				$totQUEUEsecDATE[$dtt] = ($totQUEUEsecDATE[$dtt] + $qs[$i]);
    +				$qrtQUEUE[$j]++;
    +				$qrtQUEUEsec[$j] = ($qrtQUEUEsec[$j] + $qs[$i]);
    +				$totQUEUEdate[$dtt]++;
    +				if ($totQUEUEmax < $qs[$i]) {$totQUEUEmax = $qs[$i];}
    +				if ($qrtQUEUEmax[$j] < $qs[$i]) {$qrtQUEUEmax[$j] = $qs[$i];}
    +				}
    +
    +			if ($qs[$i] == 0) {$hd__0[$j]++;}
    +			if ( ($qs[$i] > 0) and ($qs[$i] <= 20) ) {$hd_20[$j]++;}
    +			if ( ($qs[$i] > 20) and ($qs[$i] <= 40) ) {$hd_40[$j]++;}
    +			if ( ($qs[$i] > 40) and ($qs[$i] <= 60) ) {$hd_60[$j]++;}
    +			if ( ($qs[$i] > 60) and ($qs[$i] <= 80) ) {$hd_80[$j]++;}
    +			if ( ($qs[$i] > 80) and ($qs[$i] <= 100) ) {$hd100[$j]++;}
    +			if ( ($qs[$i] > 100) and ($qs[$i] <= 120) ) {$hd120[$j]++;}
    +			if ($qs[$i] > 120) {$hd121[$j]++;}
    +
    +			}
    +		
    +		$i++;
    +		}
    +
    +	$j++;
    +	}
    +
    +
    +
    +
    +###################################################
    +### TOTALS SUMMARY SECTION ###
    +echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
    +echo "|                                           |        |        |        |        |        |  AVG   |  AVG   |        |  TOTAL   |  AVG   |\n";
    +echo "| SHIFT                                     |        |        |  AVG   |        |        | HOLD(s)| HOLD(s)|        | CALLTIME |CALLTIME|\n";
    +echo "| DATE-TIME RANGE                           | DROPS  | DROP % | DROP(s)| HOLD   | HOLD % |  HOLD  | TOTAL  | CALLS  | MIN:SEC  |SECONDS |\n";
    +echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
    +
    +$d=0;
    +while ($d < $DURATIONday)
    +	{
    +	if ($totDROPSdate[$d] < 1) {$totDROPSdate[$d]=0;}
    +	if ($totQUEUEdate[$d] < 1) {$totQUEUEdate[$d]=0;}
    +	if ($totCALLSdate[$d] < 1) {$totCALLSdate[$d]=0;}
    +
    +	if ($totDROPSdate[$d] > 0)
    +		{$totDROPSpctDATE[$d] = ( ($totDROPSdate[$d] / $totCALLSdate[$d]) * 100);}
    +	else {$totDROPSpctDATE[$d] = 0;}
    +	$totDROPSpctDATE[$d] = round($totDROPSpctDATE[$d], 2);
    +	if ($totQUEUEdate[$d] > 0)
    +		{$totQUEUEpctDATE[$d] = ( ($totQUEUEdate[$d] / $totCALLSdate[$d]) * 100);}
    +	else {$totQUEUEpctDATE[$d] = 0;}
    +	$totQUEUEpctDATE[$d] = round($totQUEUEpctDATE[$d], 2);
    +
    +	if ($totDROPSsecDATE[$d] > 0)
    +		{$totDROPSavgDATE[$d] = ($totDROPSsecDATE[$d] / $totDROPSdate[$d]);}
    +	else {$totDROPSavgDATE[$d] = 0;}
    +	if ($totQUEUEsecDATE[$d] > 0)
    +		{$totQUEUEavgDATE[$d] = ($totQUEUEsecDATE[$d] / $totQUEUEdate[$d]);}
    +	else {$totQUEUEavgDATE[$d] = 0;}
    +	if ($totQUEUEsecDATE[$d] > 0)
    +		{$totQUEUEtotDATE[$d] = ($totQUEUEsecDATE[$d] / $totCALLSdate[$d]);}
    +	else {$totQUEUEtotDATE[$d] = 0;}
    +
    +	if ($totCALLSsecDATE[$d] > 0)
    +		{
    +		$totCALLSavgDATE[$d] = ($totCALLSsecDATE[$d] / $totCALLSdate[$d]);
    +
    +		$totTIME_M = ($totCALLSsecDATE[$d] / 60);
    +		$totTIME_M_int = round($totTIME_M, 2);
    +		$totTIME_M_int = intval("$totTIME_M");
    +		$totTIME_S = ($totTIME_M - $totTIME_M_int);
    +		$totTIME_S = ($totTIME_S * 60);
    +		$totTIME_S = round($totTIME_S, 0);
    +		if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
    +		$totTIME_MS = "$totTIME_M_int:$totTIME_S";
    +		$totTIME_MS =		sprintf("%8s", $totTIME_MS);
    +		}
    +	else 
    +		{
    +		$totCALLSavgDATE[$d] = 0;
    +		$totTIME_MS='        ';
    +		}
    +
    +	$totCALLSavgDATE[$d] =	sprintf("%6.0f", $totCALLSavgDATE[$d]);
    +	$totDROPSavgDATE[$d] =	sprintf("%7.2f", $totDROPSavgDATE[$d]);
    +	$totQUEUEavgDATE[$d] =	sprintf("%7.2f", $totQUEUEavgDATE[$d]);
    +	$totQUEUEtotDATE[$d] =	sprintf("%7.2f", $totQUEUEtotDATE[$d]);
    +	$totDROPSpctDATE[$d] =	sprintf("%6.2f", $totDROPSpctDATE[$d]);
    +	$totQUEUEpctDATE[$d] =	sprintf("%6.2f", $totQUEUEpctDATE[$d]);
    +	$totDROPSdate[$d] =	sprintf("%6s", $totDROPSdate[$d]);
    +	$totQUEUEdate[$d] =	sprintf("%6s", $totQUEUEdate[$d]);
    +	$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
    +
    +	echo "| $daySTART[$d] - $dayEND[$d] | $totDROPSdate[$d] | $totDROPSpctDATE[$d]%|$totDROPSavgDATE[$d] | $totQUEUEdate[$d] | $totQUEUEpctDATE[$d]%|$totQUEUEavgDATE[$d] |$totQUEUEtotDATE[$d] | $totCALLSdate[$d] | $totTIME_MS | $totCALLSavgDATE[$d] |\n";
    +	$d++;
    +	}
    +
    +	if ($totDROPS > 0)
    +		{$totDROPSpct = ( ($totDROPS / $totCALLS) * 100);}
    +	else {$totDROPSpct = 0;}
    +	$totDROPSpct = round($totDROPSpct, 2);
    +	if ($totQUEUE > 0)
    +		{$totQUEUEpct = ( ($totQUEUE / $totCALLS) * 100);}
    +	else {$totQUEUEpct = 0;}
    +	$totQUEUEpct = round($totQUEUEpct, 2);
    +
    +	if ($totDROPSsec > 0)
    +		{$totDROPSavg = ($totDROPSsec / $totDROPS);}
    +	else {$totDROPSavg = 0;}
    +	if ($totQUEUEsec > 0)
    +		{$totQUEUEavg = ($totQUEUEsec / $totQUEUE);}
    +	else {$totQUEUEavg = 0;}
    +	if ($totQUEUEsec > 0)
    +		{$totQUEUEtot = ($totQUEUEsec / $totCALLS);}
    +	else {$totQUEUEtot = 0;}
    +
    +if ($totCALLSsec > 0)
    +	{
    +	$totCALLSavg = ($totCALLSsec / $totCALLS);
    +
    +	$totTIME_M = ($totCALLSsec / 60);
    +	$totTIME_M_int = round($totTIME_M, 2);
    +	$totTIME_M_int = intval("$totTIME_M");
    +	$totTIME_S = ($totTIME_M - $totTIME_M_int);
    +	$totTIME_S = ($totTIME_S * 60);
    +	$totTIME_S = round($totTIME_S, 0);
    +	if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
    +	$totTIME_MS = "$totTIME_M_int:$totTIME_S";
    +	$totTIME_MS =		sprintf("%9s", $totTIME_MS);
    +	}
    +else 
    +	{
    +	$totCALLSavg = 0;
    +	$totTIME_MS='         ';
    +	}
    +
    +
    +	$FtotCALLSavg =	sprintf("%6.0f", $totCALLSavg);
    +	$FtotDROPSavg =	sprintf("%7.2f", $totDROPSavg);
    +	$FtotQUEUEavg =	sprintf("%7.2f", $totQUEUEavg);
    +	$FtotQUEUEtot =	sprintf("%7.2f", $totQUEUEtot);
    +	$FtotDROPSpct =	sprintf("%6.2f", $totDROPSpct);
    +	$FtotQUEUEpct =	sprintf("%6.2f", $totQUEUEpct);
    +	$FtotDROPS =	sprintf("%6s", $totDROPS);
    +	$FtotQUEUE =	sprintf("%6s", $totQUEUE);
    +	$FtotCALLS =	sprintf("%6s", $totCALLS);
    +
    +echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
    +echo "|                                    TOTALS | $FtotDROPS | $FtotDROPSpct%|$FtotDROPSavg | $FtotQUEUE | $FtotQUEUEpct%|$FtotQUEUEavg |$FtotQUEUEtot | $FtotCALLS |$totTIME_MS | $FtotCALLSavg |\n";
    +echo "+-------------------------------------------+--------+--------+--------+--------+--------+--------+--------+--------+----------+--------+\n";
    +
    +
    +	## FORMAT OUTPUT ##
    +	$i=0;
    +	$hi_hour_count=0;
    +	$hi_hold_count=0;
    +
    +	while ($i < $TOTintervals)
    +		{
    +
    +		if ($qrtCALLS[$i] > 0)
    +			{$qrtCALLSavg[$i] = ($qrtCALLSsec[$i] / $qrtCALLS[$i]);}
    +		else {$qrtCALLSavg[$i] = 0;}
    +		if ($qrtDROPS[$i] > 0)
    +			{$qrtDROPSavg[$i] = ($qrtDROPSsec[$i] / $qrtDROPS[$i]);}
    +		else {$qrtDROPSavg[$i] = 0;}
    +		if ($qrtQUEUE[$i] > 0)
    +			{$qrtQUEUEavg[$i] = ($qrtQUEUEsec[$i] / $qrtQUEUE[$i]);}
    +		else {$qrtQUEUEavg[$i] = 0;}
    +
    +		if ($qrtCALLS[$i] > $hi_hour_count) {$hi_hour_count = $qrtCALLS[$i];}
    +		if ($qrtQUEUEavg[$i] > $hi_hold_count) {$hi_hold_count = $qrtQUEUEavg[$i];}
    +
    +		$qrtQUEUEavg[$i] = round($qrtQUEUEavg[$i], 0);
    +		if (strlen($qrtQUEUEavg[$i])<1) {$qrtQUEUEavg[$i]=0;}
    +		$qrtQUEUEmax[$i] = round($qrtQUEUEmax[$i], 0);
    +		if (strlen($qrtQUEUEmax[$i])<1) {$qrtQUEUEmax[$i]=0;}
    +
    +		$i++;
    +		}
    +
    +if ($hi_hour_count < 1)
    +	{$hour_multiplier = 0;}
    +else
    +	{$hour_multiplier = (20 / $hi_hour_count);}
    +if ($hi_hold_count < 1)
    +	{$hold_multiplier = 0;}
    +else
    +	{$hold_multiplier = (20 / $hi_hold_count);}
    +
    +
    +
    +
    +###################################################################
    +#########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
    +
    +echo "\n";
    +echo "---------- HOLD TIME, CALL AND DROP STATS\n";
    +
    +echo "";
    +
    +echo "";
    +echo "\n";
    +echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
    +
    +
    +$k=1;
    +$Mk=0;
    +$call_scale = '0';
    +while ($k <= 22) 
    +	{
    +	if ( ($k < 1) or ($hour_multiplier <= 0) )
    +		{$scale_num = 20;}
    +	else
    +		{
    +		$TMPscale_num=(23 / $hour_multiplier);
    +		$TMPscale_num = round($TMPscale_num, 0);
    +		$scale_num=($k / $hour_multiplier);
    +		$scale_num = round($scale_num, 0);
    +		}
    +	$tmpscl = "$call_scale$TMPscale_num";
    +
    +	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
    +		{
    +		$Mk=0;
    +		$LENscale_num = (strlen($scale_num));
    +		$k = ($k + $LENscale_num);
    +		$call_scale .= "$scale_num";
    +		}
    +	else
    +		{
    +		$call_scale .= " ";
    +		$k++;   $Mk++;
    +		}
    +	}
    +$k=1;
    +$Mk=0;
    +$hold_scale = '0';
    +while ($k <= 22) 
    +	{
    +	if ( ($k < 1) or ($hold_multiplier <= 0) )
    +		{$scale_num = 20;}
    +	else
    +		{
    +		$TMPscale_num=(23 / $hold_multiplier);
    +		$TMPscale_num = round($TMPscale_num, 0);
    +		$scale_num=($k / $hold_multiplier);
    +		$scale_num = round($scale_num, 0);
    +		}
    +	$tmpscl = "$hold_scale$TMPscale_num";
    +
    +	if ( ($Mk >= 4) or (strlen($tmpscl)==23) )
    +		{
    +		$Mk=0;
    +		$LENscale_num = (strlen($scale_num));
    +		$k = ($k + $LENscale_num);
    +		$hold_scale .= "$scale_num";
    +		}
    +	else
    +		{
    +		$hold_scale .= " ";
    +		$k++;   $Mk++;
    +		}
    +	}
    +
    +
    +echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
    +echo "|    TIME     |  AVG HOLD TIME (sec)  | (in seconds)  |  |    CALLS HANDLED      |       |       |\n";
    +echo "| 15 MIN INT  |$hold_scale| AVG   | MAX   |  |$call_scale| DROPS | TOTAL |\n";
    +echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
    +
    +$i=0;
    +while ($i < $TOTintervals)
    +	{
    +	$char_counter=0;
    +	### BEGIN HOLD TIME TOTALS GRAPH ###
    +		$Ghour_count = $qrtCALLS[$i];
    +	if ($Ghour_count > 0) {$no_lines_yet=0;}
    +
    +	$Gavg_hold = $qrtQUEUEavg[$i];
    +	if ($Gavg_hold < 1) 
    +		{
    +		if ($i < 0)
    +			{
    +			$do_nothing=1;
    +			}
    +		else
    +			{
    +			$TOT_lines++;
    +			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
    +			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
    +			echo "|$HMdisplay[$i]|";
    +			$k=0;   while ($k <= 22) {echo " ";   $k++;}
    +			echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
    +			}
    +		}
    +	else
    +		{
    +		$TOT_lines++;
    +		$no_lines_yet=0;
    +		$Xavg_hold = ($Gavg_hold * $hold_multiplier);
    +		$Yavg_hold = (19 - $Xavg_hold);
    +
    +		$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
    +		$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
    +
    +		echo "|$HMdisplay[$i]|";
    +		$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
    +		if ($char_counter >= 22) {echo "H";   $char_counter++;}
    +		else {echo "*H";   $char_counter++;   $char_counter++;}
    +		$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
    +			while ($char_counter <= 22) {echo " ";   $char_counter++;}
    +		echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
    +		}
    +	### END HOLD TIME TOTALS GRAPH ###
    +
    +	$char_counter=0;
    + 	### BEGIN CALLS TOTALS GRAPH ###
    +	$Ghour_count = $qrtCALLS[$i];
    +	if ($Ghour_count < 1) 
    +		{
    +		if ($i < 0)
    +			{
    +			$do_nothing=1;
    +			}
    +		else
    +			{
    +			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
    +			echo "  |";
    +			$k=0;   while ($k <= 22) {echo " ";   $k++;}
    +			echo "| $qrtCALLS[$i] |     0 |\n";
    +			}
    +		}
    +	else
    +		{
    +		$no_lines_yet=0;
    +		$Xhour_count = ($Ghour_count * $hour_multiplier);
    +		$Yhour_count = (19 - $Xhour_count);
    +
    +		$Gdrop_count = $qrtDROPS[$i];
    +		if ($Gdrop_count < 1) 
    +			{
    +			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
    +
    +			echo "  |";
    +			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
    +			if ($char_counter > 21) {echo "C";   $char_counter++;}
    +			else {echo "*C";   $char_counter++;   $char_counter++;}
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 22) {echo " ";   $char_counter++;}
    +			echo "|     0 | $qrtCALLS[$i] |\n";
    +			}
    +		else
    +			{
    +			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
    +
    +		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
    +
    +			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
    +
    +			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
    +			$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
    +
    +			echo "  |";
    +			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
    +			echo "D";   $char_counter++;
    +			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
    +			echo "C";   $char_counter++;
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 22) {echo " ";   $char_counter++;}
    +			echo "| $qrtDROPS[$i] | $qrtCALLS[$i] |\n";
    +			}
    +		}
    +	### END CALLS TOTALS GRAPH ###
    +
    +	$i++;
    +	}
    +
    +
    +if ($totQUEUEsec > 0)
    +	{$totQUEUEavgRAW = ($totCALLS / $totQUEUEsec);}
    +else
    +	{$totQUEUEavgRAW = 0;}
    +$totQUEUEavg =	sprintf("%5s", $totQUEUEavg); 
    +	while (strlen($totQUEUEavg)>5) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
    +$totQUEUEmax =	sprintf("%5s", $totQUEUEmax);
    +	while (strlen($totQUEUEmax)>5) {$totQUEUEmax = ereg_replace(".$",'',$totQUEUEmax);}
    +$totDROPS =	sprintf("%5s", $totDROPS);
    +$totCALLS =	sprintf("%5s", $totCALLS);
    +
    +
    +echo "+-------------+-----------------------+-------+-------+  +-----------------------+-------+-------+\n";
    +echo "| TOTAL                               | $totQUEUEavg | $totQUEUEmax |  |                       | $totDROPS | $totCALLS |\n";
    +echo "+-------------------------------------+-------+-------+  +-----------------------+-------+-------+\n";
    +
    +
    +
    +
    +##############################
    +#########  CALL HOLD TIME BREAKDOWN IN SECONDS, 15-MINUTE INCREMENT
    +
    +
    +echo "\n";
    +echo "---------- CALL HOLD TIME BREAKDOWN IN SECONDS\n";
    +echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
    +echo "|    TIME     |       |  % OF CALLS GROUPED BY HOLD TIME (SEC)  | |   AVERAGE TIME BEFORE ANSWER (SEC)    |\n";
    +echo "| 15 MIN INT  | CALLS |    0   20   40   60   80  100  120 120+ | | AVG  |0   20   40   60   80  100  120 |\n";
    +echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
    +
    +$APhd__0=0; $APhd_20=0; $APhd_40=0; $APhd_60=0; $APhd_80=0; $APhd100=0; $APhd120=0; $APhd121=0;
    +$h=0;
    +while ($h < $TOTintervals)
    +	{
    +	$Aavg_hold[$h] = $qrtQUEUEavg[$h]; 
    +	if ($hd__0[$h] > 0) {$Phd__0[$h] = round( ( ($hd__0[$h] / $qrtCALLS[$h]) * 100) );}
    +		else {$Phd__0[$h]=0;}
    +	if ($hd_20[$h] > 0) {$Phd_20[$h] = round( ( ($hd_20[$h] / $qrtCALLS[$h]) * 100) );}
    +		else {$Phd_20[$h]=0;}
    +	if ($hd_40[$h] > 0) {$Phd_40[$h] = round( ( ($hd_40[$h] / $qrtCALLS[$h]) * 100) );}
    +		else {$Phd_40[$h]=0;}
    +	if ($hd_60[$h] > 0) {$Phd_60[$h] = round( ( ($hd_60[$h] / $qrtCALLS[$h]) * 100) );}
    +		else {$Phd_60[$h]=0;}
    +	if ($hd_80[$h] > 0) {$Phd_80[$h] = round( ( ($hd_80[$h] / $qrtCALLS[$h]) * 100) );}
    +		else {$Phd_80[$h]=0;}
    +	if ($hd100[$h] > 0) {$Phd100[$h] = round( ( ($hd100[$h] / $qrtCALLS[$h]) * 100) );}
    +		else {$Phd100[$h]=0;}
    +	if ($hd120[$h] > 0) {$Phd120[$h] = round( ( ($hd120[$h] / $qrtCALLS[$h]) * 100) );}
    +		else {$Phd120[$h]=0;}
    +	if ($hd121[$h] > 0) {$Phd121[$h] = round( ( ($hd121[$h] / $qrtCALLS[$h]) * 100) );}
    +		else {$Phd121[$h]=0;}
    +		while (strlen($qrtQUEUEavg[$h])>4) {$qrtQUEUEavg[$h] = ereg_replace(".$",'',$qrtQUEUEavg[$h]);}
    +	$hd__0[$h] =	sprintf("%4s", $hd__0[$h]);
    +	$hd_20[$h] =	sprintf("%4s", $hd_20[$h]);
    +	$hd_40[$h] =	sprintf("%4s", $hd_40[$h]);
    +	$hd_60[$h] =	sprintf("%4s", $hd_60[$h]);
    +	$hd_80[$h] =	sprintf("%4s", $hd_80[$h]);
    +	$hd100[$h] =	sprintf("%4s", $hd100[$h]);
    +	$hd120[$h] =	sprintf("%4s", $hd120[$h]);
    +	$hd121[$h] =	sprintf("%4s", $hd121[$h]);
    +	$Phd__0[$h] =	sprintf("%4s", $Phd__0[$h]);
    +	$Phd_20[$h] =	sprintf("%4s", $Phd_20[$h]);
    +	$Phd_40[$h] =	sprintf("%4s", $Phd_40[$h]);
    +	$Phd_60[$h] =	sprintf("%4s", $Phd_60[$h]);
    +	$Phd_80[$h] =	sprintf("%4s", $Phd_80[$h]);
    +	$Phd100[$h] =	sprintf("%4s", $Phd100[$h]);
    +	$Phd120[$h] =	sprintf("%4s", $Phd120[$h]);
    +	$Phd121[$h] =	sprintf("%4s", $Phd121[$h]);
    +
    +	$ALLcalls = ($ALLcalls + $qrtCALLS[$h]);
    +	$ALLhd__0 = ($ALLhd__0 + $hd__0[$h]);
    +	$ALLhd_20 = ($ALLhd_20 + $hd_20[$h]);
    +	$ALLhd_40 = ($ALLhd_40 + $hd_40[$h]);
    +	$ALLhd_60 = ($ALLhd_60 + $hd_60[$h]);
    +	$ALLhd_80 = ($ALLhd_80 + $hd_80[$h]);
    +	$ALLhd100 = ($ALLhd100 + $hd100[$h]);
    +	$ALLhd120 = ($ALLhd120 + $hd120[$h]);
    +	$ALLhd121 = ($ALLhd121 + $hd121[$h]);
    +
    +	if ( ($Aavg_hold[$h] < 1) or ($Aavg_hold[$h] > 119) )
    +		{
    +		if ($Aavg_hold[$h] < 1)		{$qrtQUEUEavg_scale[$h] = '                                ';}
    +		if ($Aavg_hold[$h] > 119)	{$qrtQUEUEavg_scale[$h] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';}
    +		}
    +	else
    +		{
    +		$qrtQUEUEavg_val[$h] = ( (32 / 120) * $Aavg_hold[$h] );
    +		$k=0;
    +		$blank=0;
    +		while ($k < 32)
    +			{
    +			if ($k <= $qrtQUEUEavg_val[$h]) 
    +				{
    +				if ($k < 1) {$qrtQUEUEavg_scale[$h] .= '';}
    +				$qrtQUEUEavg_scale[$h] .= 'x';
    +				}
    +			else 
    +				{
    +				if ( ($k > 0) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
    +				$qrtQUEUEavg_scale[$h] .= ' ';
    +				$blank++;
    +				}
    +			$k++;
    +			if ( ($k > 31) and ($blank < 1) ) {$qrtQUEUEavg_scale[$h] .= '';}
    +			}
    +		}
    +
    +	$Aavg_hold[$h] = sprintf("%4s", $Aavg_hold[$h]);
    +	while (strlen($Aavg_hold[$h])>4) {$Aavg_hold[$h] = ereg_replace("^.",'',$Aavg_hold[$h]);}
    +
    +	echo "|$HMdisplay[$h]| $qrtCALLS[$h] | $Phd__0[$h] $Phd_20[$h] $Phd_40[$h] $Phd_60[$h] $Phd_80[$h] $Phd100[$h] $Phd120[$h] $Phd121[$h] | | $Aavg_hold[$h] |$qrtQUEUEavg_scale[$h]|\n";
    +	
    +	$h++;
    +	}
    +
    +if ($ALLhd__0 > 0) {$APhd__0 = round( ( ($ALLhd__0 / $ALLcalls) * 100) );}
    +if ($ALLhd_20 > 0) {$APhd_20 = round( ( ($ALLhd_20 / $ALLcalls) * 100) );}
    +if ($ALLhd_40 > 0) {$APhd_40 = round( ( ($ALLhd_40 / $ALLcalls) * 100) );}
    +if ($ALLhd_60 > 0) {$APhd_60 = round( ( ($ALLhd_60 / $ALLcalls) * 100) );}
    +if ($ALLhd_80 > 0) {$APhd_80 = round( ( ($ALLhd_80 / $ALLcalls) * 100) );}
    +if ($ALLhd100 > 0) {$APhd100 = round( ( ($ALLhd100 / $ALLcalls) * 100) );}
    +if ($ALLhd120 > 0) {$APhd120 = round( ( ($ALLhd120 / $ALLcalls) * 100) );}
    +if ($ALLhd121 > 0) {$APhd121 = round( ( ($ALLhd121 / $ALLcalls) * 100) );}
    +
    +$ALLcalls =	sprintf("%5s", $ALLcalls);
    +$APhd__0 =	sprintf("%4s", $APhd__0);
    +$APhd_20 =	sprintf("%4s", $APhd_20);
    +$APhd_40 =	sprintf("%4s", $APhd_40);
    +$APhd_60 =	sprintf("%4s", $APhd_60);
    +$APhd_80 =	sprintf("%4s", $APhd_80);
    +$APhd100 =	sprintf("%4s", $APhd100);
    +$APhd120 =	sprintf("%4s", $APhd120);
    +$APhd121 =	sprintf("%4s", $APhd121);
    +
    +	while (strlen($totQUEUEavg)>4) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
    +
    +echo "+-------------+-------+-----------------------------------------+ +------+--------------------------------+\n";
    +echo "| TOTAL       | $ALLcalls | $APhd__0 $APhd_20 $APhd_40 $APhd_60 $APhd_80 $APhd100 $APhd120 $APhd121 | | $totQUEUEavg |\n";
    +echo "+-------------+-------+-----------------------------------------+ +------+\n";
    +
    +$ENDtime = date("U");
    +$RUNtime = ($ENDtime - $STARTtime);
    +echo "\nRun Time: $RUNtime seconds\n";
    +}
    +
    +
    +
    +?>
    +
    +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSERstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSERstats.php new file mode 100644 index 00000000..b16ffe3e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSERstats.php @@ -0,0 +1,1504 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1714 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 60905-1326 - Added queue time stats +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71025-0021 - Added status breakdown +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80709-0331 - Added time stats to call statuses +# 80722-2149 - Added Status Category stats +# 81015-0705 - Added IVR calls count +# 81024-0037 - Added multi-select inbound-groups +# 81105-2118 - Added Answered calls 15-minute breakdown +# 81109-2340 - Added custom indicators section +# 90116-1040 - Rewrite of the 15-minute sections to speed it up and allow multi-day calculations +# 90310-2037 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90801-0921 - Added in-group name to pulldown +# 91214-0955 - Added INITIAL QUEUE POSITION BREAKDOWN +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "Inbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
    "; + +if ($DB > 0) + { + echo "
    \n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
    \n"; + echo "$shift|$query_date|$end_date\n"; + echo "
    \n"; + } + +echo "
    \n"; +echo "\n"; +echo "
    \n"; +echo "\n"; +echo "Date Range:
    \n"; +echo "\n"; +echo " to \n"; +echo "
    \n"; +echo "Inbound Groups: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "MODIFY | "; +echo "REPORTS | "; +echo "IVR REPORT \n"; +echo "\n"; + +echo "
    \n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
    \n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if ($groups_to_print < 1)
    +{
    +echo "\n\n";
    +echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +if ($shift == 'AM') 
    +	{
    +	$time_BEGIN=$AM_shift_BEGIN;
    +	$time_END=$AM_shift_END;
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +	}
    +if ($shift == 'PM') 
    +	{
    +	$time_BEGIN=$PM_shift_BEGIN;
    +	$time_END=$PM_shift_END;
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +	}
    +if ($shift == 'ALL') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +	}
    +$query_date_BEGIN = "$query_date $time_BEGIN";   
    +$query_date_END = "$end_date $time_END";
    +
    +
    +
    +echo "Inbound Call Stats: $group_string          $NOW_TIME\n";
    +
    +
    +
    +
    +
    +
    +if ($group_ct > 1)
    +	{
    +	echo "\n";
    +	echo "---------- MULTI-GROUP BREAKDOWN:\n";
    +	echo "+----------------------+---------+---------+---------+---------+\n";
    +	echo "| IN-GROUP             | CALLS   | DROPS   | DROP %  | IVR     |\n";
    +	echo "+----------------------+---------+---------+---------+---------+\n";
    +
    +	$i=0;
    +	while($i < $group_ct)
    +		{
    +		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +
    +		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='$group[$i]' and comment_b='START';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$rowx=mysql_fetch_row($rslt);
    +
    +		$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]' and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$rowy=mysql_fetch_row($rslt);
    +
    +		$groupDISPLAY =	sprintf("%20s", $group[$i]);
    +		$gTOTALcalls =	sprintf("%7s", $row[0]);
    +		$gIVRcalls =	sprintf("%7s", $rowx[0]);
    +		$gDROPcalls =	sprintf("%7s", $rowy[0]);
    +		if ( ($gDROPcalls < 1) or ($gTOTALcalls < 1) )
    +			{$gDROPpercent = '0';}
    +		else
    +			{
    +			$gDROPpercent = (($gDROPcalls / $gTOTALcalls) * 100);
    +			$gDROPpercent = round($gDROPpercent, 2);
    +			}
    +		$gDROPpercent =	sprintf("%6s", $gDROPpercent);
    +
    +		echo "| $groupDISPLAY | $gTOTALcalls | $gDROPcalls | $gDROPpercent% | $gIVRcalls |\n";
    +		$i++;
    +		}
    +
    +	echo "+----------------------+---------+---------+---------+---------+\n";
    +
    +	}
    +
    +
    +echo "\n";
    +echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +echo "---------- TOTALS\n";
    +
    +$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$rowy=mysql_fetch_row($rslt);
    +
    +$stmt="select count(*) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) and comment_b='START';";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$rowx=mysql_fetch_row($rslt);
    +
    +$TOTALcalls =	sprintf("%10s", $row[0]);
    +$IVRcalls =	sprintf("%10s", $rowx[0]);
    +$TOTALsec =		$row[1];
    +if ( ($row[0] < 1) or ($TOTALsec < 1) )
    +	{$average_call_seconds = '         0';}
    +else
    +	{
    +	$average_call_seconds = ($TOTALsec / $row[0]);
    +	$average_call_seconds = round($average_call_seconds, 0);
    +	$average_call_seconds =	sprintf("%10s", $average_call_seconds);
    +	}
    +$ANSWEREDcalls  =	sprintf("%10s", $rowy[0]);
    +if ( ($ANSWEREDcalls < 1) or ($TOTALcalls < 1) )
    +	{$ANSWEREDpercent = '0';}
    +else
    +	{
    +	$ANSWEREDpercent = (($ANSWEREDcalls / $TOTALcalls) * 100);
    +	$ANSWEREDpercent = round($ANSWEREDpercent, 0);
    +	}
    +if ( ($rowy[0] < 1) or ($ANSWEREDcalls < 1) )
    +	{$average_answer_seconds = '         0';}
    +else
    +	{
    +	$average_answer_seconds = ($rowy[1] / $rowy[0]);
    +	$average_answer_seconds = round($average_answer_seconds, 2);
    +	$average_answer_seconds =	sprintf("%10s", $average_answer_seconds);
    +	}
    +
    +
    +echo "Total calls taken in to this In-Group:        $TOTALcalls\n";
    +echo "Average Call Length for all Calls:            $average_call_seconds seconds\n";
    +echo "Answered Calls:                               $ANSWEREDcalls  $ANSWEREDpercent%\n";
    +echo "Average queue time for Answered Calls:        $average_answer_seconds seconds\n";
    +echo "Calls taken into the IVR for this In-Group:   $IVRcalls\n";
    +
    +
    +echo "\n";
    +echo "---------- DROPS\n";
    +
    +$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and status IN('DROP','XDROP') and (length_in_sec <= 49999 or length_in_sec is null);";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +$DROPcalls =	sprintf("%10s", $row[0]);
    +if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
    +	{$DROPpercent = '0';}
    +else
    +	{
    +	$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
    +	$DROPpercent = round($DROPpercent, 0);
    +	}
    +
    +if ( ($row[0] < 1) or ($row[1] < 1) )
    +	{
    +	$average_hold_seconds = '         0';
    +	}
    +else
    +	{
    +	$average_hold_seconds = ($row[1] / $row[0]);
    +	$average_hold_seconds = round($average_hold_seconds, 0);
    +	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
    +	}
    +if ( ($ANSWEREDcalls < 1) or ($DROPcalls < 1) )
    +	{$DROP_ANSWEREDpercent = '0';}
    +else
    +	{
    +	$DROP_ANSWEREDpercent = (($DROPcalls / $ANSWEREDcalls) * 100);
    +	$DROP_ANSWEREDpercent = round($DROP_ANSWEREDpercent, 0);
    +	}
    +
    +echo "Total DROP Calls:                             $DROPcalls  $DROPpercent%               drop/answered: $DROP_ANSWEREDpercent%\n";
    +echo "Average hold time for DROP Calls:             $average_hold_seconds seconds\n";
    +
    +
    +
    +
    +if (strlen($group_SQL)>3)
    +	{
    +	$stmt = "SELECT answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two from vicidial_inbound_groups where group_id IN($group_SQL) order by answer_sec_pct_rt_stat_one desc limit 1;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$Sanswer_sec_pct_rt_stat_one = $row[0];
    +	$Sanswer_sec_pct_rt_stat_two = $row[1];
    +
    +	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_one;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$answer_sec_pct_rt_stat_one = $row[0];
    +
    +	$stmt = "SELECT count(*) from vicidial_closer_log where campaign_id IN($group_SQL) and call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and queue_seconds <= $Sanswer_sec_pct_rt_stat_two;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$answer_sec_pct_rt_stat_two = $row[0];
    +
    +	if ( ($ANSWEREDcalls > 0) and ($answer_sec_pct_rt_stat_one > 0) and ($answer_sec_pct_rt_stat_two > 0) )
    +		{
    +		$PCTanswer_sec_pct_rt_stat_one = (($answer_sec_pct_rt_stat_one / $ANSWEREDcalls) * 100);
    +		$PCTanswer_sec_pct_rt_stat_one = round($PCTanswer_sec_pct_rt_stat_one, 0);
    +		#$PCTanswer_sec_pct_rt_stat_one = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_one);
    +		$PCTanswer_sec_pct_rt_stat_two = (($answer_sec_pct_rt_stat_two / $ANSWEREDcalls) * 100);
    +		$PCTanswer_sec_pct_rt_stat_two = round($PCTanswer_sec_pct_rt_stat_two, 0);
    +		#$PCTanswer_sec_pct_rt_stat_two = sprintf("%10s", $PCTanswer_sec_pct_rt_stat_two);
    +		}
    +	}
    +echo "\n";
    +echo "---------- CUSTOM INDICATORS\n";
    +echo "GDE (Answered/Total calls taken in to this In-Group):  $ANSWEREDpercent%\n";
    +echo "ACR (Dropped/Answered):                                $DROP_ANSWEREDpercent%\n";
    +echo "TMR1 (Answered within $Sanswer_sec_pct_rt_stat_one seconds/Answered):            $PCTanswer_sec_pct_rt_stat_one%\n";
    +echo "TMR2 (Answered within $Sanswer_sec_pct_rt_stat_two seconds/Answered):            $PCTanswer_sec_pct_rt_stat_two%\n";
    +
    +
    +# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
    +$q=0;
    +$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$statuses_to_print = mysql_num_rows($rslt);
    +$p=0;
    +while ($p < $statuses_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$status[$q] =			$row[0];
    +	$status_name[$q] =		$row[1];
    +	$human_answered[$q] =	$row[2];
    +	$category[$q] =			$row[3];
    +	$statname_list["$status[$q]"] = "$status_name[$q]";
    +	$statcat_list["$status[$q]"] = "$category[$q]";
    +	$q++;
    +	$p++;
    +	}
    +$stmt = "SELECT status,status_name,human_answered,category from vicidial_campaign_statuses;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$statuses_to_print = mysql_num_rows($rslt);
    +$p=0;
    +while ($p < $statuses_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$status[$q] =			$row[0];
    +	$status_name[$q] =		$row[1];
    +	$human_answered[$q] =	$row[2];
    +	$category[$q] =			$row[3];
    +	$statname_list["$status[$q]"] = "$status_name[$q]";
    +	$statcat_list["$status[$q]"] = "$category[$q]";
    +	$q++;
    +	$p++;
    +	}
    +
    +##############################
    +#########  CALL QUEUE STATS
    +echo "\n";
    +echo "---------- QUEUE STATS\n";
    +
    +$stmt="select count(*),sum(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and (queue_seconds > 0);";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +$QUEUEcalls =	sprintf("%10s", $row[0]);
    +if ( ($QUEUEcalls < 1) or ($TOTALcalls < 1) )
    +	{$QUEUEpercent = '0';}
    +else
    +	{
    +	$QUEUEpercent = (($QUEUEcalls / $TOTALcalls) * 100);
    +	$QUEUEpercent = round($QUEUEpercent, 0);
    +	}
    +
    +if ( ($row[0] < 1) or ($row[1] < 1) )
    +	{$average_queue_seconds = '         0';}
    +else
    +	{
    +	$average_queue_seconds = ($row[1] / $row[0]);
    +	$average_queue_seconds = round($average_queue_seconds, 2);
    +	$average_queue_seconds = sprintf("%10.2f", $average_queue_seconds);
    +	}
    +
    +if ( ($TOTALcalls < 1) or ($row[1] < 1) )
    +	{$average_total_queue_seconds = '         0';}
    +else
    +	{
    +	$average_total_queue_seconds = ($row[1] / $TOTALcalls);
    +	$average_total_queue_seconds = round($average_total_queue_seconds, 2);
    +	$average_total_queue_seconds = sprintf("%10.2f", $average_total_queue_seconds);
    +	}
    +
    +echo "Total Calls That entered Queue:               $QUEUEcalls  $QUEUEpercent%\n";
    +echo "Average QUEUE Length for queue calls:         $average_queue_seconds seconds\n";
    +echo "Average QUEUE Length across all calls:        $average_total_queue_seconds seconds\n";
    +
    +
    +
    +##############################
    +#########  CALL HOLD TIME BREAKDOWN IN SECONDS
    +
    +$TOTALcalls = 0;
    +
    +echo "\n";
    +echo "---------- CALL HOLD TIME BREAKDOWN IN SECONDS\n";
    +echo "+-------------------------------------------------------------------------------------------+------------+\n";
    +echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
    +echo "+-------------------------------------------------------------------------------------------+------------+\n";
    +
    +$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_seconds;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$reasons_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $reasons_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTALcalls = ($TOTALcalls + $row[0]);
    +
    +	if ($row[1] == 0) {$hd_0 = ($hd_0 + $row[0]);}
    +	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$hd_5 = ($hd_5 + $row[0]);}
    +	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$hd10 = ($hd10 + $row[0]);}
    +	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$hd15 = ($hd15 + $row[0]);}
    +	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$hd20 = ($hd20 + $row[0]);}
    +	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$hd25 = ($hd25 + $row[0]);}
    +	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$hd30 = ($hd30 + $row[0]);}
    +	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$hd35 = ($hd35 + $row[0]);}
    +	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$hd40 = ($hd40 + $row[0]);}
    +	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$hd45 = ($hd45 + $row[0]);}
    +	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$hd50 = ($hd50 + $row[0]);}
    +	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$hd55 = ($hd55 + $row[0]);}
    +	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$hd60 = ($hd60 + $row[0]);}
    +	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$hd90 = ($hd90 + $row[0]);}
    +	if ($row[1] > 90) {$hd99 = ($hd99 + $row[0]);}
    +	$i++;
    +	}
    +
    +$hd_0 =	sprintf("%5s", $hd_0);
    +$hd_5 =	sprintf("%5s", $hd_5);
    +$hd10 =	sprintf("%5s", $hd10);
    +$hd15 =	sprintf("%5s", $hd15);
    +$hd20 =	sprintf("%5s", $hd20);
    +$hd25 =	sprintf("%5s", $hd25);
    +$hd30 =	sprintf("%5s", $hd30);
    +$hd35 =	sprintf("%5s", $hd35);
    +$hd40 =	sprintf("%5s", $hd40);
    +$hd45 =	sprintf("%5s", $hd45);
    +$hd50 =	sprintf("%5s", $hd50);
    +$hd55 =	sprintf("%5s", $hd55);
    +$hd60 =	sprintf("%5s", $hd60);
    +$hd90 =	sprintf("%5s", $hd90);
    +$hd99 =	sprintf("%5s", $hd99);
    +
    +$TOTALcalls =		sprintf("%10s", $TOTALcalls);
    +
    +echo "| $hd_0 $hd_5 $hd10 $hd15 $hd20 $hd25 $hd30 $hd35 $hd40 $hd45 $hd50 $hd55 $hd60 $hd90 $hd99 | $TOTALcalls |\n";
    +echo "+-------------------------------------------------------------------------------------------+------------+\n";
    +
    +
    +
    +##############################
    +#########  CALL DROP TIME BREAKDOWN IN SECONDS
    +
    +$BDdropCALLS = 0;
    +
    +echo "\n";
    +echo "---------- CALL DROP TIME BREAKDOWN IN SECONDS\n";
    +echo "+-------------------------------------------------------------------------------------------+------------+\n";
    +echo "|     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
    +echo "+-------------------------------------------------------------------------------------------+------------+\n";
    +
    +$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status IN('DROP','XDROP') group by queue_seconds;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$reasons_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $reasons_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$BDdropCALLS = ($BDdropCALLS + $row[0]);
    +
    +	if ($row[1] == 0) {$dd_0 = ($dd_0 + $row[0]);}
    +	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$dd_5 = ($dd_5 + $row[0]);}
    +	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$dd10 = ($dd10 + $row[0]);}
    +	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$dd15 = ($dd15 + $row[0]);}
    +	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$dd20 = ($dd20 + $row[0]);}
    +	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$dd25 = ($dd25 + $row[0]);}
    +	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$dd30 = ($dd30 + $row[0]);}
    +	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$dd35 = ($dd35 + $row[0]);}
    +	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$dd40 = ($dd40 + $row[0]);}
    +	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$dd45 = ($dd45 + $row[0]);}
    +	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$dd50 = ($dd50 + $row[0]);}
    +	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$dd55 = ($dd55 + $row[0]);}
    +	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$dd60 = ($dd60 + $row[0]);}
    +	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$dd90 = ($dd90 + $row[0]);}
    +	if ($row[1] > 90) {$dd99 = ($dd99 + $row[0]);}
    +	$i++;
    +	}
    +
    +$dd_0 =	sprintf("%5s", $dd_0);
    +$dd_5 =	sprintf("%5s", $dd_5);
    +$dd10 =	sprintf("%5s", $dd10);
    +$dd15 =	sprintf("%5s", $dd15);
    +$dd20 =	sprintf("%5s", $dd20);
    +$dd25 =	sprintf("%5s", $dd25);
    +$dd30 =	sprintf("%5s", $dd30);
    +$dd35 =	sprintf("%5s", $dd35);
    +$dd40 =	sprintf("%5s", $dd40);
    +$dd45 =	sprintf("%5s", $dd45);
    +$dd50 =	sprintf("%5s", $dd50);
    +$dd55 =	sprintf("%5s", $dd55);
    +$dd60 =	sprintf("%5s", $dd60);
    +$dd90 =	sprintf("%5s", $dd90);
    +$dd99 =	sprintf("%5s", $dd99);
    +
    +$BDdropCALLS =		sprintf("%10s", $BDdropCALLS);
    +
    +echo "| $dd_0 $dd_5 $dd10 $dd15 $dd20 $dd25 $dd30 $dd35 $dd40 $dd45 $dd50 $dd55 $dd60 $dd90 $dd99 | $BDdropCALLS |\n";
    +echo "+-------------------------------------------------------------------------------------------+------------+\n";
    +
    +
    +
    +
    +##############################
    +#########  CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS
    +
    +$BDansweredCALLS = 0;
    +
    +echo "\n";
    +echo "           CALL ANSWERED TIME AND PERCENT BREAKDOWN IN SECONDS\n";
    +echo "          +-------------------------------------------------------------------------------------------+------------+\n";
    +echo "          |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
    +echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
    +
    +$stmt="select count(*),queue_seconds from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE') group by queue_seconds;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$reasons_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $reasons_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$BDansweredCALLS = ($BDansweredCALLS + $row[0]);
    +	
    +	### Get interval totals
    +	if ($row[1] == 0) {$ad_0 = ($ad_0 + $row[0]);}
    +	if ( ($row[1] > 0) and ($row[1] <= 5) ) {$ad_5 = ($ad_5 + $row[0]);}
    +	if ( ($row[1] > 5) and ($row[1] <= 10) ) {$ad10 = ($ad10 + $row[0]);}
    +	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$ad15 = ($ad15 + $row[0]);}
    +	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$ad20 = ($ad20 + $row[0]);}
    +	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$ad25 = ($ad25 + $row[0]);}
    +	if ( ($row[1] > 25) and ($row[1] <= 30) ) {$ad30 = ($ad30 + $row[0]);}
    +	if ( ($row[1] > 30) and ($row[1] <= 35) ) {$ad35 = ($ad35 + $row[0]);}
    +	if ( ($row[1] > 35) and ($row[1] <= 40) ) {$ad40 = ($ad40 + $row[0]);}
    +	if ( ($row[1] > 40) and ($row[1] <= 45) ) {$ad45 = ($ad45 + $row[0]);}
    +	if ( ($row[1] > 45) and ($row[1] <= 50) ) {$ad50 = ($ad50 + $row[0]);}
    +	if ( ($row[1] > 50) and ($row[1] <= 55) ) {$ad55 = ($ad55 + $row[0]);}
    +	if ( ($row[1] > 55) and ($row[1] <= 60) ) {$ad60 = ($ad60 + $row[0]);}
    +	if ( ($row[1] > 60) and ($row[1] <= 90) ) {$ad90 = ($ad90 + $row[0]);}
    +	if ($row[1] > 90) {$ad99 = ($ad99 + $row[0]);}
    +	$i++;
    +	}
    +
    +### Calculate cumulative totals
    +$Cad_0 =$ad_0;
    +$Cad_5 =($Cad_0 + $ad_5);
    +$Cad10 =($Cad_5 + $ad10);
    +$Cad15 =($Cad10 + $ad15);
    +$Cad20 =($Cad15 + $ad20);
    +$Cad25 =($Cad20 + $ad25);
    +$Cad30 =($Cad25 + $ad30);
    +$Cad35 =($Cad30 + $ad35);
    +$Cad40 =($Cad35 + $ad40);
    +$Cad45 =($Cad40 + $ad45);
    +$Cad50 =($Cad45 + $ad50);
    +$Cad55 =($Cad50 + $ad55);
    +$Cad60 =($Cad55 + $ad60);
    +$Cad90 =($Cad60 + $ad90);
    +$Cad99 =($Cad90 + $ad99);
    +
    +### Calculate interval percentages
    +$pad_0=0; $pad_5=0; $pad10=0; $pad15=0; $pad20=0; $pad25=0; $pad30=0; $pad35=0; $pad40=0; $pad45=0; $pad50=0; $pad55=0; $pad60=0; $pad90=0; $pad99=0; 
    +$pCad_0=0; $pCad_5=0; $pCad10=0; $pCad15=0; $pCad20=0; $pCad25=0; $pCad30=0; $pCad35=0; $pCad40=0; $pCad45=0; $pCad50=0; $pCad55=0; $pCad60=0; $pCad90=0; $pCad99=0; 
    +if ( ($BDansweredCALLS > 0) and ($TOTALcalls > 0) )
    +	{
    +	if ($ad_0 > 0) {$pad_0 = (($ad_0 / $TOTALcalls) * 100);	$pad_0 = round($pad_0, 0);}
    +	if ($ad_5 > 0) {$pad_5 = (($ad_5 / $TOTALcalls) * 100);	$pad_5 = round($pad_5, 0);}
    +	if ($ad10 > 0) {$pad10 = (($ad10 / $TOTALcalls) * 100);	$pad10 = round($pad10, 0);}
    +	if ($ad15 > 0) {$pad15 = (($ad15 / $TOTALcalls) * 100);	$pad15 = round($pad15, 0);}
    +	if ($ad20 > 0) {$pad20 = (($ad20 / $TOTALcalls) * 100);	$pad20 = round($pad20, 0);}
    +	if ($ad25 > 0) {$pad25 = (($ad25 / $TOTALcalls) * 100);	$pad25 = round($pad25, 0);}
    +	if ($ad30 > 0) {$pad30 = (($ad30 / $TOTALcalls) * 100);	$pad30 = round($pad30, 0);}
    +	if ($ad35 > 0) {$pad35 = (($ad35 / $TOTALcalls) * 100);	$pad35 = round($pad35, 0);}
    +	if ($ad40 > 0) {$pad40 = (($ad40 / $TOTALcalls) * 100);	$pad40 = round($pad40, 0);}
    +	if ($ad45 > 0) {$pad45 = (($ad45 / $TOTALcalls) * 100);	$pad45 = round($pad45, 0);}
    +	if ($ad50 > 0) {$pad50 = (($ad50 / $TOTALcalls) * 100);	$pad50 = round($pad50, 0);}
    +	if ($ad55 > 0) {$pad55 = (($ad55 / $TOTALcalls) * 100);	$pad55 = round($pad55, 0);}
    +	if ($ad60 > 0) {$pad60 = (($ad60 / $TOTALcalls) * 100);	$pad60 = round($pad60, 0);}
    +	if ($ad90 > 0) {$pad90 = (($ad90 / $TOTALcalls) * 100);	$pad90 = round($pad90, 0);}
    +	if ($ad99 > 0) {$pad99 = (($ad99 / $TOTALcalls) * 100);	$pad99 = round($pad99, 0);}
    +
    +	if ($Cad_0 > 0) {$pCad_0 = (($Cad_0 / $TOTALcalls) * 100);	$pCad_0 = round($pCad_0, 0);}
    +	if ($Cad_5 > 0) {$pCad_5 = (($Cad_5 / $TOTALcalls) * 100);	$pCad_5 = round($pCad_5, 0);}
    +	if ($Cad10 > 0) {$pCad10 = (($Cad10 / $TOTALcalls) * 100);	$pCad10 = round($pCad10, 0);}
    +	if ($Cad15 > 0) {$pCad15 = (($Cad15 / $TOTALcalls) * 100);	$pCad15 = round($pCad15, 0);}
    +	if ($Cad20 > 0) {$pCad20 = (($Cad20 / $TOTALcalls) * 100);	$pCad20 = round($pCad20, 0);}
    +	if ($Cad25 > 0) {$pCad25 = (($Cad25 / $TOTALcalls) * 100);	$pCad25 = round($pCad25, 0);}
    +	if ($Cad30 > 0) {$pCad30 = (($Cad30 / $TOTALcalls) * 100);	$pCad30 = round($pCad30, 0);}
    +	if ($Cad35 > 0) {$pCad35 = (($Cad35 / $TOTALcalls) * 100);	$pCad35 = round($pCad35, 0);}
    +	if ($Cad40 > 0) {$pCad40 = (($Cad40 / $TOTALcalls) * 100);	$pCad40 = round($pCad40, 0);}
    +	if ($Cad45 > 0) {$pCad45 = (($Cad45 / $TOTALcalls) * 100);	$pCad45 = round($pCad45, 0);}
    +	if ($Cad50 > 0) {$pCad50 = (($Cad50 / $TOTALcalls) * 100);	$pCad50 = round($pCad50, 0);}
    +	if ($Cad55 > 0) {$pCad55 = (($Cad55 / $TOTALcalls) * 100);	$pCad55 = round($pCad55, 0);}
    +	if ($Cad60 > 0) {$pCad60 = (($Cad60 / $TOTALcalls) * 100);	$pCad60 = round($pCad60, 0);}
    +	if ($Cad90 > 0) {$pCad90 = (($Cad90 / $TOTALcalls) * 100);	$pCad90 = round($pCad90, 0);}
    +	if ($Cad99 > 0) {$pCad99 = (($Cad99 / $TOTALcalls) * 100);	$pCad99 = round($pCad99, 0);}
    +
    +	if ($Cad_0 > 0) {$ApCad_0 = (($Cad_0 / $BDansweredCALLS) * 100);	$ApCad_0 = round($ApCad_0, 0);}
    +	if ($Cad_5 > 0) {$ApCad_5 = (($Cad_5 / $BDansweredCALLS) * 100);	$ApCad_5 = round($ApCad_5, 0);}
    +	if ($Cad10 > 0) {$ApCad10 = (($Cad10 / $BDansweredCALLS) * 100);	$ApCad10 = round($ApCad10, 0);}
    +	if ($Cad15 > 0) {$ApCad15 = (($Cad15 / $BDansweredCALLS) * 100);	$ApCad15 = round($ApCad15, 0);}
    +	if ($Cad20 > 0) {$ApCad20 = (($Cad20 / $BDansweredCALLS) * 100);	$ApCad20 = round($ApCad20, 0);}
    +	if ($Cad25 > 0) {$ApCad25 = (($Cad25 / $BDansweredCALLS) * 100);	$ApCad25 = round($ApCad25, 0);}
    +	if ($Cad30 > 0) {$ApCad30 = (($Cad30 / $BDansweredCALLS) * 100);	$ApCad30 = round($ApCad30, 0);}
    +	if ($Cad35 > 0) {$ApCad35 = (($Cad35 / $BDansweredCALLS) * 100);	$ApCad35 = round($ApCad35, 0);}
    +	if ($Cad40 > 0) {$ApCad40 = (($Cad40 / $BDansweredCALLS) * 100);	$ApCad40 = round($ApCad40, 0);}
    +	if ($Cad45 > 0) {$ApCad45 = (($Cad45 / $BDansweredCALLS) * 100);	$ApCad45 = round($ApCad45, 0);}
    +	if ($Cad50 > 0) {$ApCad50 = (($Cad50 / $BDansweredCALLS) * 100);	$ApCad50 = round($ApCad50, 0);}
    +	if ($Cad55 > 0) {$ApCad55 = (($Cad55 / $BDansweredCALLS) * 100);	$ApCad55 = round($ApCad55, 0);}
    +	if ($Cad60 > 0) {$ApCad60 = (($Cad60 / $BDansweredCALLS) * 100);	$ApCad60 = round($ApCad60, 0);}
    +	if ($Cad90 > 0) {$ApCad90 = (($Cad90 / $BDansweredCALLS) * 100);	$ApCad90 = round($ApCad90, 0);}
    +	if ($Cad99 > 0) {$ApCad99 = (($Cad99 / $BDansweredCALLS) * 100);	$ApCad99 = round($ApCad99, 0);}
    +	}
    +
    +### Format variables
    +$ad_0 = sprintf("%5s", $ad_0);
    +$ad_5 = sprintf("%5s", $ad_5);
    +$ad10 = sprintf("%5s", $ad10);
    +$ad15 = sprintf("%5s", $ad15);
    +$ad20 = sprintf("%5s", $ad20);
    +$ad25 = sprintf("%5s", $ad25);
    +$ad30 = sprintf("%5s", $ad30);
    +$ad35 = sprintf("%5s", $ad35);
    +$ad40 = sprintf("%5s", $ad40);
    +$ad45 = sprintf("%5s", $ad45);
    +$ad50 = sprintf("%5s", $ad50);
    +$ad55 = sprintf("%5s", $ad55);
    +$ad60 = sprintf("%5s", $ad60);
    +$ad90 = sprintf("%5s", $ad90);
    +$ad99 = sprintf("%5s", $ad99);
    +$Cad_0 = sprintf("%5s", $Cad_0);
    +$Cad_5 = sprintf("%5s", $Cad_5);
    +$Cad10 = sprintf("%5s", $Cad10);
    +$Cad15 = sprintf("%5s", $Cad15);
    +$Cad20 = sprintf("%5s", $Cad20);
    +$Cad25 = sprintf("%5s", $Cad25);
    +$Cad30 = sprintf("%5s", $Cad30);
    +$Cad35 = sprintf("%5s", $Cad35);
    +$Cad40 = sprintf("%5s", $Cad40);
    +$Cad45 = sprintf("%5s", $Cad45);
    +$Cad50 = sprintf("%5s", $Cad50);
    +$Cad55 = sprintf("%5s", $Cad55);
    +$Cad60 = sprintf("%5s", $Cad60);
    +$Cad90 = sprintf("%5s", $Cad90);
    +$Cad99 = sprintf("%5s", $Cad99);
    +$pad_0 = sprintf("%4s", $pad_0) . '%';
    +$pad_5 = sprintf("%4s", $pad_5) . '%';
    +$pad10 = sprintf("%4s", $pad10) . '%';
    +$pad15 = sprintf("%4s", $pad15) . '%';
    +$pad20 = sprintf("%4s", $pad20) . '%';
    +$pad25 = sprintf("%4s", $pad25) . '%';
    +$pad30 = sprintf("%4s", $pad30) . '%';
    +$pad35 = sprintf("%4s", $pad35) . '%';
    +$pad40 = sprintf("%4s", $pad40) . '%';
    +$pad45 = sprintf("%4s", $pad45) . '%';
    +$pad50 = sprintf("%4s", $pad50) . '%';
    +$pad55 = sprintf("%4s", $pad55) . '%';
    +$pad60 = sprintf("%4s", $pad60) . '%';
    +$pad90 = sprintf("%4s", $pad90) . '%';
    +$pad99 = sprintf("%4s", $pad99) . '%';
    +$pCad_0 = sprintf("%4s", $pCad_0) . '%';
    +$pCad_5 = sprintf("%4s", $pCad_5) . '%';
    +$pCad10 = sprintf("%4s", $pCad10) . '%';
    +$pCad15 = sprintf("%4s", $pCad15) . '%';
    +$pCad20 = sprintf("%4s", $pCad20) . '%';
    +$pCad25 = sprintf("%4s", $pCad25) . '%';
    +$pCad30 = sprintf("%4s", $pCad30) . '%';
    +$pCad35 = sprintf("%4s", $pCad35) . '%';
    +$pCad40 = sprintf("%4s", $pCad40) . '%';
    +$pCad45 = sprintf("%4s", $pCad45) . '%';
    +$pCad50 = sprintf("%4s", $pCad50) . '%';
    +$pCad55 = sprintf("%4s", $pCad55) . '%';
    +$pCad60 = sprintf("%4s", $pCad60) . '%';
    +$pCad90 = sprintf("%4s", $pCad90) . '%';
    +$pCad99 = sprintf("%4s", $pCad99) . '%';
    +$ApCad_0 = sprintf("%4s", $ApCad_0) . '%';
    +$ApCad_5 = sprintf("%4s", $ApCad_5) . '%';
    +$ApCad10 = sprintf("%4s", $ApCad10) . '%';
    +$ApCad15 = sprintf("%4s", $ApCad15) . '%';
    +$ApCad20 = sprintf("%4s", $ApCad20) . '%';
    +$ApCad25 = sprintf("%4s", $ApCad25) . '%';
    +$ApCad30 = sprintf("%4s", $ApCad30) . '%';
    +$ApCad35 = sprintf("%4s", $ApCad35) . '%';
    +$ApCad40 = sprintf("%4s", $ApCad40) . '%';
    +$ApCad45 = sprintf("%4s", $ApCad45) . '%';
    +$ApCad50 = sprintf("%4s", $ApCad50) . '%';
    +$ApCad55 = sprintf("%4s", $ApCad55) . '%';
    +$ApCad60 = sprintf("%4s", $ApCad60) . '%';
    +$ApCad90 = sprintf("%4s", $ApCad90) . '%';
    +$ApCad99 = sprintf("%4s", $ApCad99) . '%';
    +
    +$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
    +
    +### Format and output
    +$answeredTOTALs = "$ad_0 $ad_5 $ad10 $ad15 $ad20 $ad25 $ad30 $ad35 $ad40 $ad45 $ad50 $ad55 $ad60 $ad90 $ad99 | $BDansweredCALLS |";
    +$answeredCUMULATIVE = "$Cad_0 $Cad_5 $Cad10 $Cad15 $Cad20 $Cad25 $Cad30 $Cad35 $Cad40 $Cad45 $Cad50 $Cad55 $Cad60 $Cad90 $Cad99 | $BDansweredCALLS |";
    +$answeredINT_PERCENT = "$pad_0 $pad_5 $pad10 $pad15 $pad20 $pad25 $pad30 $pad35 $pad40 $pad45 $pad50 $pad55 $pad60 $pad90 $pad99 |            |";
    +$answeredCUM_PERCENT = "$pCad_0 $pCad_5 $pCad10 $pCad15 $pCad20 $pCad25 $pCad30 $pCad35 $pCad40 $pCad45 $pCad50 $pCad55 $pCad60 $pCad90 $pCad99 |            |";
    +$answeredCUM_ANS_PERCENT = "$ApCad_0 $ApCad_5 $ApCad10 $ApCad15 $ApCad20 $ApCad25 $ApCad30 $ApCad35 $ApCad40 $ApCad45 $ApCad50 $ApCad55 $ApCad60 $ApCad90 $ApCad99 |            |";
    +echo "INTERVAL  | $answeredTOTALs\n";
    +echo "INT %     | $answeredINT_PERCENT\n";
    +echo "CUMULATIVE| $answeredCUMULATIVE\n";
    +echo "CUM %     | $answeredCUM_PERCENT\n";
    +echo "CUM ANS % | $answeredCUM_ANS_PERCENT\n";
    +echo "----------+-------------------------------------------------------------------------------------------+------------+\n";
    +
    +
    +
    +
    +
    +##############################
    +#########  CALL HANGUP REASON STATS
    +
    +$TOTALcalls = 0;
    +
    +echo "\n";
    +echo "---------- CALL HANGUP REASON STATS\n";
    +echo "+----------------------+------------+\n";
    +echo "| HANGUP REASON        | CALLS      |\n";
    +echo "+----------------------+------------+\n";
    +
    +$stmt="select count(*),term_reason from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by term_reason;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$reasons_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $reasons_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTALcalls = ($TOTALcalls + $row[0]);
    +
    +	$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
    +	$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
    +#	if (ereg("NONE",$reason)) {$reason = 'NO ANSWER           ';}
    +
    +	echo "| $reason | $REASONcount |\n";
    +
    +	$i++;
    +	}
    +
    +$TOTALcalls =		sprintf("%10s", $TOTALcalls);
    +
    +echo "+----------------------+------------+\n";
    +echo "| TOTAL:               | $TOTALcalls |\n";
    +echo "+----------------------+------------+\n";
    +
    +
    +
    +
    +##############################
    +#########  CALL STATUS STATS
    +
    +$TOTALcalls = 0;
    +
    +echo "\n";
    +echo "---------- CALL STATUS STATS\n";
    +echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
    +echo "| STATUS | DESCRIPTION          | CATEGORY             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|\n";
    +echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
    +
    +
    +## get counts and time totals for all statuses in this campaign
    +$stmt="select count(*),status,sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by status;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$statuses_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $statuses_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$STATUScount =	$row[0];
    +	$RAWstatus =	$row[1];
    +	$r=0;  $foundstat=0;
    +	while ($r < $statcats_to_print)
    +		{
    +		if ( ($statcat_list[$RAWstatus] == "$vsc_id[$r]") and ($foundstat < 1) )
    +			{
    +			$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
    +			}
    +		$r++;
    +		}
    +
    +	$TOTALcalls =	($TOTALcalls + $row[0]);
    +	if ( ($STATUScount < 1) or ($TOTALsec < 1) )
    +		{$STATUSrate = 0;}
    +	else
    +		{$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );}
    +	$STATUSrate =	sprintf("%.2f", $STATUSrate);
    +
    +	$STATUShours =		sec_convert($row[2],'H'); 
    +	$STATUSavg_sec =	($row[2] / $STATUScount); 
    +	$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
    +
    +	$STATUScount =	sprintf("%10s", $row[0]);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
    +	$status =	sprintf("%-6s", $row[1]);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
    +	$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
    +	$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
    +	$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
    +
    +	if ($non_latin < 1)
    +		{
    +		$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
    +		while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
    +		$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
    +		while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
    +		}
    +	else
    +		{
    +		$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
    +		while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
    +		$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
    +		while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
    +		}
    +
    +
    +	echo "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate |\n";
    +
    +	$i++;
    +	}
    +
    +if ($TOTALcalls < 1)
    +	{
    +	$TOTALhours =	'0:00:00';
    +	$TOTALavg =		'0:00:00';
    +	$TOTALrate =	'0.00';
    +	}
    +else
    +	{
    +	if ( ($TOTALcalls < 1) or ($TOTALsec < 1) )
    +		{$TOTALrate = 0;}
    +	else
    +		{$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );}
    +	$TOTALrate =	sprintf("%.2f", $TOTALrate);
    +
    +	$TOTALhours =		sec_convert($TOTALsec,'H'); 
    +	$TOTALavg_sec =		($TOTALsec / $TOTALcalls);
    +	$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
    +	}
    +$TOTALcalls =	sprintf("%10s", $TOTALcalls);
    +$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
    +$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
    +$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
    +
    +echo "+--------+----------------------+----------------------+------------+------------+----------+----------+\n";
    +echo "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |\n";
    +echo "+------------------------------------------------------+------------+------------+----------+----------+\n";
    +
    +
    +##############################
    +#########  STATUS CATEGORY STATS
    +
    +echo "\n";
    +echo "---------- CUSTOM STATUS CATEGORY STATS\n";
    +echo "+----------------------+------------+--------------------------------+\n";
    +echo "| CATEGORY             | CALLS      | DESCRIPTION                    |\n";
    +echo "+----------------------+------------+--------------------------------+\n";
    +
    +$TOTCATcalls=0;
    +$r=0;
    +while ($r < $statcats_to_print)
    +	{
    +	if ($vsc_id[$r] != 'UNDEFINED')
    +		{
    +		$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
    +		$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
    +		$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
    +		$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
    +
    +		echo "| $category | $CATcount | $CATname |\n";
    +		}
    +
    +	$r++;
    +	}
    +
    +$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
    +
    +echo "+----------------------+------------+--------------------------------+\n";
    +echo "| TOTAL                | $TOTCATcalls |\n";
    +echo "+----------------------+------------+\n";
    +
    +
    +##############################
    +#########  CALL INITIAL QUEUE POSITION BREAKDOWN
    +
    +$TOTALcalls = 0;
    +
    +echo "\n";
    +echo "---------- CALL INITIAL QUEUE POSITION BREAKDOWN\n";
    +echo "+-------------------------------------------------------------------------------------+------------+\n";
    +echo "|     1     2     3     4     5     6     7     8     9    10    15    20    25   +25 | TOTAL      |\n";
    +echo "+-------------------------------------------------------------------------------------+------------+\n";
    +
    +$stmt="select count(*),queue_position from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) group by queue_position;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$positions_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $positions_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTALcalls = ($TOTALcalls + $row[0]);
    +
    +	if ( ($row[1] > 0) and ($row[1] <= 1) ) {$qp_1 = ($qp_1 + $row[0]);}
    +	if ( ($row[1] > 1) and ($row[1] <= 2) ) {$qp_2 = ($qp_2 + $row[0]);}
    +	if ( ($row[1] > 2) and ($row[1] <= 3) ) {$qp_3 = ($qp_3 + $row[0]);}
    +	if ( ($row[1] > 3) and ($row[1] <= 4) ) {$qp_4 = ($qp_4 + $row[0]);}
    +	if ( ($row[1] > 4) and ($row[1] <= 5) ) {$qp_5 = ($qp_5 + $row[0]);}
    +	if ( ($row[1] > 5) and ($row[1] <= 6) ) {$qp_6 = ($qp_6 + $row[0]);}
    +	if ( ($row[1] > 6) and ($row[1] <= 7) ) {$qp_7 = ($qp_7 + $row[0]);}
    +	if ( ($row[1] > 7) and ($row[1] <= 8) ) {$qp_8 = ($qp_8 + $row[0]);}
    +	if ( ($row[1] > 8) and ($row[1] <= 9) ) {$qp_9 = ($qp_9 + $row[0]);}
    +	if ( ($row[1] > 9) and ($row[1] <= 10) ) {$qp10 = ($qp10 + $row[0]);}
    +	if ( ($row[1] > 10) and ($row[1] <= 15) ) {$qp15 = ($qp15 + $row[0]);}
    +	if ( ($row[1] > 15) and ($row[1] <= 20) ) {$qp20 = ($qp20 + $row[0]);}
    +	if ( ($row[1] > 20) and ($row[1] <= 25) ) {$qp25 = ($qp25 + $row[0]);}
    +	if ($row[1] > 25) {$qp99 = ($qp99 + $row[0]);}
    +	$i++;
    +	}
    +
    +$qp_1 =	sprintf("%5s", $qp_1);
    +$qp_2 =	sprintf("%5s", $qp_2);
    +$qp_3=	sprintf("%5s", $qp_3);
    +$qp_4 =	sprintf("%5s", $qp_4);
    +$qp_5 =	sprintf("%5s", $qp_5);
    +$qp_6 =	sprintf("%5s", $qp_6);
    +$qp_7 =	sprintf("%5s", $qp_7);
    +$qp_8 =	sprintf("%5s", $qp_8);
    +$qp_9 =	sprintf("%5s", $qp_9);
    +$qp10 =	sprintf("%5s", $qp10);
    +$qp15 =	sprintf("%5s", $qp15);
    +$qp20 =	sprintf("%5s", $qp20);
    +$qp25 =	sprintf("%5s", $qp25);
    +$qp99 =	sprintf("%5s", $qp99);
    +
    +$TOTALcalls =		sprintf("%10s", $TOTALcalls);
    +
    +echo "| $qp_1 $qp_2 $qp_3 $qp_4 $qp_5 $qp_6 $qp_7 $qp_8 $qp_9 $qp10 $qp15 $qp20 $qp25 $qp99 | $TOTALcalls |\n";
    +echo "+-------------------------------------------------------------------------------------+------------+\n";
    +
    +
    +
    +##############################
    +#########  USER STATS
    +
    +$TOTagents=0;
    +$TOTcalls=0;
    +$TOTtime=0;
    +$TOTavg=0;
    +
    +echo "\n";
    +echo "---------- AGENT STATS\n";
    +echo "+--------------------------+------------+------------+--------+\n";
    +echo "| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\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_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($group_SQL) and vicidial_closer_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_closer_log.user=vicidial_users.user group by vicidial_closer_log.user;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$users_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $users_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTcalls = ($TOTcalls + $row[2]);
    +	$TOTtime = ($TOTtime + $row[3]);
    +
    +	$user =			sprintf("%-6s", $row[0]);
    +	if ($non_latin < 1)
    +		{
    +		$full_name =	sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
    +		}
    +	else
    +		{
    +		$full_name =	sprintf("%-45s", $row[1]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
    +		}
    +	$USERcalls =	sprintf("%10s", $row[2]);
    +	$USERtotTALK =	$row[3];
    +	$USERavgTALK =	$row[4];
    +
    +	$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
    +	$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
    +
    +	$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
    +	$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
    +
    +	echo "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
    +
    +	$i++;
    +	}
    +
    +if ($TOTcalls < 1) {$TOTcalls = 0; $TOTavg=0;}
    +else
    +	{
    +	$TOTavg = ($TOTtime / $TOTcalls);
    +	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
    +	$TOTavg =		sprintf("%6s", $TOTavg_MS);
    +	}
    +
    +$TOTtime_MS =	sec_convert($TOTtime,'H'); 
    +$TOTtime =		sprintf("%10s", $TOTtime_MS);
    +
    +$TOTagents =		sprintf("%10s", $i);
    +$TOTcalls =			sprintf("%10s", $TOTcalls);
    +$TOTtime =			sprintf("%8s", $TOTtime);
    +$TOTavg =			sprintf("%6s", $TOTavg);
    +
    +echo "+--------------------------+------------+------------+--------+\n";
    +echo "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
    +echo "+--------------------------+------------+------------+--------+\n";
    +
    +
    +##############################
    +#########  TIME STATS
    +
    +echo "\n";
    +echo "---------- TIME STATS\n";
    +
    +echo "\n";
    +
    +
    +##############################
    +#########  15-minute increment breakdowns of total calls and drops, then answered table
    +$BDansweredCALLS = 0;
    +$stmt="SELECT status,queue_seconds,UNIX_TIMESTAMP(call_date),call_date from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL);";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$calls_to_print = mysql_num_rows($rslt);
    +$j=0;
    +while ($j < $calls_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$Cstatus[$j] =	$row[0];
    +	$Cqueue[$j] =	$row[1];
    +	$Cepoch[$j] =	$row[2];
    +	$Cdate[$j] =	$row[3];
    +	$Crem[$j] = ( ($Cepoch[$j] + $epoch_offset) % 86400); # find the remainder(Modulus) of seconds since start of the day
    +#	echo "|$Cepoch[$j]|$Crem[$j]|$Cdate[$j]|\n";
    +	$j++;
    +	}
    +
    +### Loop through all call records and gather stats for total call/drop report and answered report
    +$j=0;
    +while ($j < $calls_to_print)
    +	{
    +	$i=0; $sec=0; $sec_end=900;
    +	while ($i <= 96)
    +		{
    +		if ( ($Crem[$j] >= $sec) and ($Crem[$j] < $sec_end) ) 
    +			{
    +			$Ftotal[$i]++;
    +			if (ereg("DROP",$Cstatus[$j])) {$Fdrop[$i]++;}
    +			if (!ereg("DROP|XDROP|HXFER|QVMAIL|HOLDTO|LIVE|QUEUE",$Cstatus[$j]))
    +				{
    +				$BDansweredCALLS++;
    +				$Fanswer[$i]++;
    +
    +				if ($Cqueue[$j] == 0)								{$adB_0[$i]++;}
    +				if ( ($Cqueue[$j] > 0) and ($Cqueue[$j] <= 5) )		{$adB_5[$i]++;}
    +				if ( ($Cqueue[$j] > 5) and ($Cqueue[$j] <= 10) )	{$adB10[$i]++;}
    +				if ( ($Cqueue[$j] > 10) and ($Cqueue[$j] <= 15) )	{$adB15[$i]++;}
    +				if ( ($Cqueue[$j] > 15) and ($Cqueue[$j] <= 20) )	{$adB20[$i]++;}
    +				if ( ($Cqueue[$j] > 20) and ($Cqueue[$j] <= 25) )	{$adB25[$i]++;}
    +				if ( ($Cqueue[$j] > 25) and ($Cqueue[$j] <= 30) )	{$adB30[$i]++;}
    +				if ( ($Cqueue[$j] > 30) and ($Cqueue[$j] <= 35) )	{$adB35[$i]++;}
    +				if ( ($Cqueue[$j] > 35) and ($Cqueue[$j] <= 40) )	{$adB40[$i]++;}
    +				if ( ($Cqueue[$j] > 40) and ($Cqueue[$j] <= 45) )	{$adB45[$i]++;}
    +				if ( ($Cqueue[$j] > 45) and ($Cqueue[$j] <= 50) )	{$adB50[$i]++;}
    +				if ( ($Cqueue[$j] > 50) and ($Cqueue[$j] <= 55) )	{$adB55[$i]++;}
    +				if ( ($Cqueue[$j] > 55) and ($Cqueue[$j] <= 60) )	{$adB60[$i]++;}
    +				if ( ($Cqueue[$j] > 60) and ($Cqueue[$j] <= 90) )	{$adB90[$i]++;}
    +				if ($Cqueue[$j] > 90)								{$adB99[$i]++;}
    +				}
    +
    +			}
    +		$sec = ($sec + 900);
    +		$sec_end = ($sec_end + 900);
    +		$i++;
    +		}
    +	$j++;
    +	}	##### END going through all records
    +
    +
    +
    +
    +
    +
    +
    +##### 15-minute total and drops graph
    +$hi_hour_count=0;
    +$last_full_record=0;
    +$i=0;
    +$h=0;
    +while ($i <= 96)
    +	{
    +	$hour_count[$i] = $Ftotal[$i];
    +	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +	if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +	$drop_count[$i] = $Fdrop[$i];
    +	$i++;
    +	}
    +
    +if ($hi_hour_count < 1)
    +	{$hour_multiplier = 0;}
    +else
    +	{
    +	$hour_multiplier = (100 / $hi_hour_count);
    +	#$hour_multiplier = round($hour_multiplier, 0);
    +	}
    +
    +echo "\n";
    +echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IN-GROUP\n";
    +
    +$k=1;
    +$Mk=0;
    +$call_scale = '0';
    +while ($k <= 102) 
    +	{
    +	if ($Mk >= 5) 
    +		{
    +		$Mk=0;
    +		if ( ($k < 1) or ($hour_multiplier <= 0) )
    +			{$scale_num = 100;}
    +		else
    +			{
    +			$scale_num=($k / $hour_multiplier);
    +			$scale_num = round($scale_num, 0);
    +			}
    +		$LENscale_num = (strlen($scale_num));
    +		$k = ($k + $LENscale_num);
    +		$call_scale .= "$scale_num";
    +		}
    +	else
    +		{
    +		$call_scale .= " ";
    +		$k++;   $Mk++;
    +		}
    +	}
    +
    +
    +echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
    +#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
    +echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
    +echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
    +
    +$ZZ = '00';
    +$i=0;
    +$h=4;
    +$hour= -1;
    +$no_lines_yet=1;
    +
    +while ($i <= 96)
    +	{
    +	$char_counter=0;
    +	$time = '      ';
    +	if ($h >= 4) 
    +		{
    +		$hour++;
    +		$h=0;
    +		if ($hour < 10) {$hour = "0$hour";}
    +		$time = "+$hour$ZZ+";
    +		}
    +	if ($h == 1) {$time = "   15 ";}
    +	if ($h == 2) {$time = "   30 ";}
    +	if ($h == 3) {$time = "   45 ";}
    +	$Ghour_count = $hour_count[$i];
    +	if ($Ghour_count < 1) 
    +		{
    +		if ( ($no_lines_yet) or ($i > $last_full_record) )
    +			{
    +			$do_nothing=1;
    +			}
    +		else
    +			{
    +			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +			echo "|$time|";
    +			$k=0;   while ($k <= 102) {echo " ";   $k++;}
    +			echo "| $hour_count[$i] |\n";
    +			}
    +		}
    +	else
    +		{
    +		$no_lines_yet=0;
    +		$Xhour_count = ($Ghour_count * $hour_multiplier);
    +		$Yhour_count = (99 - $Xhour_count);
    +
    +		$Gdrop_count = $drop_count[$i];
    +		if ($Gdrop_count < 1) 
    +			{
    +			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +
    +			echo "|$time|";
    +			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
    +			echo "*X";   $char_counter++;
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 101) {echo " ";   $char_counter++;}
    +			echo "| 0     | $hour_count[$i] |\n";
    +
    +			}
    +		else
    +			{
    +			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
    +
    +		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
    +
    +			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
    +
    +			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +			$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
    +
    +			echo "|$time|";
    +			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
    +			echo "D";   $char_counter++;
    +			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
    +			echo "X";   $char_counter++;
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 102) {echo " ";   $char_counter++;}
    +			echo "| $drop_count[$i] | $hour_count[$i] |\n";
    +			}
    +		}
    +	
    +	
    +	$i++;
    +	$h++;
    +	}
    +
    +echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n\n";
    +
    +
    +
    +
    +
    +
    +##### Answered wait time breakdown
    +echo "\n";
    +echo "---------- CALL ANSWERED TIME BREAKDOWN IN SECONDS\n";
    +echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
    +echo "| HOUR |     0     5    10    15    20    25    30    35    40    45    50    55    60    90   +90 | TOTAL      |\n";
    +echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
    +
    +$ZZ = '00';
    +$i=0;
    +$h=4;
    +$hour= -1;
    +$no_lines_yet=1;
    +while ($i <= 96)
    +	{
    +	$char_counter=0;
    +	$time = '      ';
    +	if ($h >= 4) 
    +		{
    +		$hour++;
    +		$h=0;
    +		if ($hour < 10) {$hour = "0$hour";}
    +		$time = "+$hour$ZZ+";
    +		$SQLtime = "$hour:$ZZ:00";
    +		$SQLtimeEND = "$hour:15:00";
    +		}
    +	if ($h == 1) {$time = "   15 ";   $SQLtime = "$hour:15:00";   $SQLtimeEND = "$hour:30:00";}
    +	if ($h == 2) {$time = "   30 ";   $SQLtime = "$hour:30:00";   $SQLtimeEND = "$hour:45:00";}
    +	if ($h == 3) 
    +		{
    +		$time = "   45 ";
    +		$SQLtime = "$hour:45:00";
    +		$hourEND = ($hour + 1);
    +		if ($hourEND < 10) {$hourEND = "0$hourEND";}
    +		if ($hourEND > 23) {$SQLtimeEND = "23:59:59";}
    +		else {$SQLtimeEND = "$hourEND:00:00";}
    +		}
    +
    +
    +	if (strlen($adB_0[$i]) < 1)  {$adB_0[$i]='-';}
    +	if (strlen($adB_5[$i]) < 1)  {$adB_5[$i]='-';}
    +	if (strlen($adB10[$i]) < 1)  {$adB10[$i]='-';}
    +	if (strlen($adB15[$i]) < 1)  {$adB15[$i]='-';}
    +	if (strlen($adB20[$i]) < 1)  {$adB20[$i]='-';}
    +	if (strlen($adB25[$i]) < 1)  {$adB25[$i]='-';}
    +	if (strlen($adB30[$i]) < 1)  {$adB30[$i]='-';}
    +	if (strlen($adB35[$i]) < 1)  {$adB35[$i]='-';}
    +	if (strlen($adB40[$i]) < 1)  {$adB40[$i]='-';}
    +	if (strlen($adB45[$i]) < 1)  {$adB45[$i]='-';}
    +	if (strlen($adB50[$i]) < 1)  {$adB50[$i]='-';}
    +	if (strlen($adB55[$i]) < 1)  {$adB55[$i]='-';}
    +	if (strlen($adB60[$i]) < 1)  {$adB60[$i]='-';}
    +	if (strlen($adB90[$i]) < 1)  {$adB90[$i]='-';}
    +	if (strlen($adB99[$i]) < 1)  {$adB99[$i]='-';}
    +	if (strlen($Fanswer[$i]) < 1)  {$Fanswer[$i]='0';}
    +
    +	$adB_0[$i] = sprintf("%5s", $adB_0[$i]);
    +	$adB_5[$i] = sprintf("%5s", $adB_5[$i]);
    +	$adB10[$i] = sprintf("%5s", $adB10[$i]);
    +	$adB15[$i] = sprintf("%5s", $adB15[$i]);
    +	$adB20[$i] = sprintf("%5s", $adB20[$i]);
    +	$adB25[$i] = sprintf("%5s", $adB25[$i]);
    +	$adB30[$i] = sprintf("%5s", $adB30[$i]);
    +	$adB35[$i] = sprintf("%5s", $adB35[$i]);
    +	$adB40[$i] = sprintf("%5s", $adB40[$i]);
    +	$adB45[$i] = sprintf("%5s", $adB45[$i]);
    +	$adB50[$i] = sprintf("%5s", $adB50[$i]);
    +	$adB55[$i] = sprintf("%5s", $adB55[$i]);
    +	$adB60[$i] = sprintf("%5s", $adB60[$i]);
    +	$adB90[$i] = sprintf("%5s", $adB90[$i]);
    +	$adB99[$i] = sprintf("%5s", $adB99[$i]);
    +	$Fanswer[$i] = sprintf("%10s", $Fanswer[$i]);
    +
    +	echo "|$time| $adB_0[$i] $adB_5[$i] $adB10[$i] $adB15[$i] $adB20[$i] $adB25[$i] $adB30[$i] $adB35[$i] $adB40[$i] $adB45[$i] $adB50[$i] $adB55[$i] $adB60[$i] $adB90[$i] $adB99[$i] | $Fanswer[$i] |\n";
    +
    +	$i++;
    +	$h++;
    +	}
    +
    +$BDansweredCALLS =		sprintf("%10s", $BDansweredCALLS);
    +
    +echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
    +echo "|TOTALS|                                                                                           | $BDansweredCALLS |\n";
    +echo "+------+-------------------------------------------------------------------------------------------+------------+\n";
    +
    +
    +
    +$ENDtime = date("U");
    +$RUNtime = ($ENDtime - $STARTtime);
    +echo "\nRun Time: $RUNtime seconds\n";
    +}
    +
    +
    +
    +
    +?>
    +
    +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSERsummary_hourly.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSERsummary_hourly.php new file mode 100644 index 00000000..14010001 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_CLOSERsummary_hourly.php @@ -0,0 +1,657 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90801-0910 - First build +# 90809-0216 - Added Exclude Outbound Drop Group option +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["exclude_rollover"])) {$exclude_rollover=$_GET["exclude_rollover"];} + elseif (isset($_POST["exclude_rollover"])) {$exclude_rollover=$_POST["exclude_rollover"];} +if (isset($_GET["inbound_rate"])) {$inbound_rate=$_GET["inbound_rate"];} + elseif (isset($_POST["inbound_rate"])) {$inbound_rate=$_POST["inbound_rate"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($exclude_rollover)<2) {$exclude_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$exclude_rolloverSQL=''; +if (eregi("YES",$exclude_rollover)) + {$exclude_rolloverSQL = " where group_id NOT IN(SELECT drop_inbound_group from vicidial_campaigns)";} +$stmt="select group_id,group_name from vicidial_inbound_groups $exclude_rolloverSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +#$LISTgroups[$i]='---NONE---'; +#$i++; +#$groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroup_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +?> + + + + + +\n"; +echo "Inbound Summary Hourly Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
    "; + + if ($DB > 0) + { + echo "
    \n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
    \n"; + echo "$shift|$query_date|$end_date\n"; + echo "
    \n"; + } + + echo "
    \n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
    \n"; + echo "\n"; + echo " to \n"; + echo "
      \n"; + echo "\n"; + echo "Inbound Groups:
    \n"; + echo "\n"; + echo "
    \n"; + echo "           "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

    \n"; + echo "   Exclude Outbound Drop Groups:
    "; + echo "   \n"; + echo "
                          "; + echo "\n"; + + echo "
    \n"; + + echo "Call Time:
    \n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "
    \n\n"; + + echo "
    \n\n";
    +	}
    +
    +if ($groups_to_print < 1)
    +	{
    +	echo "\n\n";
    +	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +	}
    +
    +else
    +	{
    +	if ($shift == 'ALL') 
    +		{
    +		$Gct_default_start = "0";
    +		$Gct_default_stop = "2400";
    +		}
    +	else 
    +		{
    +		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$calltimes_to_print = mysql_num_rows($rslt);
    +		if ($calltimes_to_print > 0)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +			$Gct_default_start =	$row[3];
    +			$Gct_default_stop =		$row[4];
    +			$Gct_sunday_start =		$row[5];
    +			$Gct_sunday_stop =		$row[6];
    +			$Gct_monday_start =		$row[7];
    +			$Gct_monday_stop =		$row[8];
    +			$Gct_tuesday_start =	$row[9];
    +			$Gct_tuesday_stop =		$row[10];
    +			$Gct_wednesday_start =	$row[11];
    +			$Gct_wednesday_stop =	$row[12];
    +			$Gct_thursday_start =	$row[13];
    +			$Gct_thursday_stop =	$row[14];
    +			$Gct_friday_start =		$row[15];
    +			$Gct_friday_stop =		$row[16];
    +			$Gct_saturday_start =	$row[17];
    +			$Gct_saturday_stop =	$row[18];
    +			}
    +		else
    +			{
    +			$Gct_default_start = "0";
    +			$Gct_default_stop = "2400";
    +			}
    +		}
    +	$h=0;
    +	while ($h < 24)
    +		{
    +		$H_test = $h . "00";
    +		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
    +			{
    +			$Hcalltime[$h]++;
    +			}
    +		$h++;
    +		}
    +
    +	$query_date_BEGIN = "$query_date 00:00:00";   
    +	$query_date_END = "$end_date 23:59:59";
    +
    +
    +	$MAIN .= "Inbound Summary Hourly Report: $group_string          $NOW_TIME\n";
    +
    +
    +	if ($group_ct > 0)
    +		{
    +		$MAIN .= "\n";
    +		$MAIN .= "---------- MULTI-GROUP BREAKDOWN:\n";
    +		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
    +		$MAIN .= "|                                          |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
    +		$MAIN .= "|                                          | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
    +		$MAIN .= "| IN-GROUP                                 | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
    +		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
    +
    +		$i=0;
    +		$TOTcalls_count=0;
    +		$TOTanswer_count=0;
    +		$TOTtalk_sec=0;
    +		$TOTtalk_avg=0;
    +		$TOTqueue_seconds=0;
    +		$TOTqueue_avg=0;
    +		$TOTmax_queue_seconds=0;
    +		$TOTdrop_count=0;
    +		$SUBoutput='';
    +
    +		while($i < $group_ct)
    +			{
    +			$stmt="select group_name,agent_alert_delay from vicidial_inbound_groups where group_id='$group[$i]';";
    +			$rslt=mysql_query($stmt, $link);
    +			if ($DB) {echo "$stmt\n";}
    +			$row=mysql_fetch_row($rslt);
    +			$group_name[$i] =			$row[0];
    +			$agent_alert_delay[$i] =	round($row[1] / 1000);
    +
    +			$out_of_call_time=0;
    +			$length_in_sec[$i]=0;
    +			$queue_seconds[$i]=0;
    +			$talk_sec[$i]=0;
    +			$calls_count[$i]=0;
    +			$drop_count[$i]=0;
    +			$answer_count[$i]=0;
    +			$max_queue_seconds[$i]=0;
    +			$Hlength_in_sec=$MT;
    +			$Hqueue_seconds=$MT;
    +			$Htalk_sec=$MT;
    +			$Hcalls_count=$MT;
    +			$Hdrop_count=$MT;
    +			$Hanswer_count=$MT;
    +			$Hmax_queue_seconds=$MT;
    +			$hTOTALcalls =	0;
    +			$hANSWERcalls =	0;
    +			$hSUMtalk =		0;
    +			$hAVGtalk =		0;
    +			$hSUMqueue =	0;
    +			$hAVGqueue =	0;
    +			$hMAXqueue =	0;
    +			$hDROPcalls =	0;
    +			$hPRINT =		0;
    +			$hTOTcalls_count =			0;
    +			$hTOTanswer_count =			0;
    +			$hTOTtalk_sec =				0;
    +			$hTOTtalk_avg =				0;
    +			$hTOTqueue_seconds =		0;
    +			$hTOTqueue_avg =			0;
    +			$hTOTmax_queue_seconds =	0;
    +			$hTOTdrop_count =			0;
    +
    +			$stmt = "SELECT status,length_in_sec,queue_seconds,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
    +			$rslt=mysql_query($stmt, $link);
    +			if ($DB) {echo "$stmt\n";}
    +			$calls_to_parse = mysql_num_rows($rslt);
    +			$p=0;
    +			while ($p < $calls_to_parse)
    +				{
    +				$row=mysql_fetch_row($rslt);
    +				$call_date = explode(" ", $row[3]);
    +				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
    +				$epoch = $row[4];
    +				$Cwday = date("w", $epoch);
    +
    +				$CTstart = $Gct_default_start . "00";
    +				$CTstop = $Gct_default_stop . "59";
    +
    +				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
    +					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
    +				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
    +					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
    +				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
    +					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
    +				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
    +					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
    +				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
    +					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
    +				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
    +					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
    +				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
    +					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
    +
    +				$Chour = date("G", $epoch);
    +				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
    +					{
    +					$calls_count[$i]++;
    +					$length_in_sec[$i] =	($length_in_sec[$i] + $row[1]);
    +					$queue_seconds[$i] =	($queue_seconds[$i] + $row[2]);
    +					$TEMPtalk = ( ($row[1] - $row[2]) - $agent_alert_delay[$i]);
    +					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
    +					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
    +					if ($max_queue_seconds[$i] < $row[2])
    +						{$max_queue_seconds[$i] = $row[2];}
    +					if (eregi("DROP",$row[0]))
    +						{$drop_count[$i]++;}
    +					else
    +						{$answer_count[$i]++;}
    +
    +					$Hcalls_count[$Chour]++;
    +					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
    +					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
    +					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
    +					if ($Hmax_queue_seconds[$Chour] < $row[2])
    +						{$Hmax_queue_seconds[$Chour] = $row[2];}
    +					if (eregi("DROP",$row[0]))
    +						{$Hdrop_count[$Chour]++;}
    +					else
    +						{$Hanswer_count[$Chour]++;}
    +					$Hcalltime[$Chour]++;
    +
    +					if ($print_calls > 0)
    +						{
    +						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
    +						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
    +						}
    +					$q++;
    +					}
    +				else
    +					{$out_of_call_time++;}
    +				if ($DB)
    +					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
    +				$p++;
    +				}
    +			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
    +				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
    +			else
    +				{$talk_avg[$i] = 0;}
    +			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
    +				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
    +			else
    +				{$queue_avg[$i] = 0;}
    +
    +			if ($print_calls > 0)
    +				{
    +				$PCtemptalkmin = ($PCtemptalk  / 60);
    +				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
    +				}
    +
    +			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
    +			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
    +			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
    +			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
    +			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
    +			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
    +				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
    +
    +			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
    +			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
    +			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
    +			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
    +			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
    +
    +			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_name[$i]");
    +			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
    +			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
    +			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
    +			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
    +			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
    +			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
    +			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
    +			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
    +
    +			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
    +
    +			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gANSWERcalls | $gSUMtalk | $gAVGtalk | $gSUMqueue | $gAVGqueue | $gMAXqueue | $gDROPcalls |";
    +			$MAIN .= "\n";
    +
    +			### hour by hour sumaries
    +			$SUBoutput .= "\n---------- $group[$i] - $group_name[$i]     HOURLY BREAKDOWN:\n";
    +			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
    +			$SUBoutput .= "|      |        |        |           |         | TOTAL     | AVERAGE | MAXIMUM | TOTAL  |\n";
    +			$SUBoutput .= "|      | TOTAL  | TOTAL  | TOTAL     | AVERAGE | QUEUE     | QUEUE   | QUEUE   | ABANDON|\n";
    +			$SUBoutput .= "| HOUR | CALLS  | ANSWER | TALK      | TALK    | TIME      | TIME    | TIME    | CALLS  |\n";
    +			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
    +
    +			$h=0;
    +			while ($h < 24)
    +				{
    +				if ($Hcalltime[$h] > 0)
    +					{
    +					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
    +					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
    +					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
    +					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
    +					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
    +					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
    +
    +					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
    +					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
    +					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
    +					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
    +					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
    +					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
    +						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
    +
    +					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
    +						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
    +					else
    +						{$Htalk_avg[$h] = 0;}
    +					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
    +						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
    +					else
    +						{$Hqueue_avg[$h] = 0;}
    +
    +					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
    +					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
    +					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
    +					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
    +					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
    +					
    +					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
    +					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
    +					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
    +					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
    +					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
    +					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
    +					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
    +					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
    +					$hPRINT =		sprintf("%2s", $h);
    +
    +					$SUBoutput .= "| $hPRINT   | $hTOTALcalls | $hANSWERcalls | $hSUMtalk | $hAVGtalk | $hSUMqueue | $hAVGqueue | $hMAXqueue | $hDROPcalls |\n";
    +					}
    +
    +				$h++;
    +				}
    +
    +			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
    +				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
    +			else
    +				{$hTOTtalk_avg = 0;}
    +			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
    +				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
    +			else
    +				{$hTOTqueue_avg = 0;}
    +
    +			$hTOTtalk_sec =			sec_convert($hTOTtalk_sec,'H'); 
    +			$hTOTtalk_avg =			sec_convert($hTOTtalk_avg,'H'); 
    +			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
    +			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
    +			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
    +
    +			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
    +			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
    +			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
    +			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
    +			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
    +			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
    +			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
    +			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
    +
    +			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
    +			$SUBoutput .= "|TOTALS| $hTOTcalls_count | $hTOTanswer_count | $hTOTtalk_sec | $hTOTtalk_avg | $hTOTqueue_seconds | $hTOTqueue_avg | $hTOTmax_queue_seconds | $hTOTdrop_count |\n";
    +			$SUBoutput .= "+------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
    +
    +			$i++;
    +			}
    +
    +		$rawTOTtalk_sec = $TOTtalk_sec;
    +		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
    +
    +		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
    +			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
    +		else
    +			{$TOTtalk_avg = 0;}
    +		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
    +			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
    +		else
    +			{$TOTqueue_avg = 0;}
    +
    +		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
    +		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
    +		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
    +		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
    +		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
    +
    +		$i =					sprintf("%4s", $i);
    +		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
    +		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
    +		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
    +		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
    +		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
    +		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
    +		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
    +		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
    +
    +		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
    +		$MAIN .= "| TOTALS       In-Groups: $i             | $TOTcalls_count | $TOTanswer_count | $TOTtalk_sec | $TOTtalk_avg | $TOTqueue_seconds | $TOTqueue_avg | $TOTmax_queue_seconds | $TOTdrop_count |\n";
    +		$MAIN .= "+------------------------------------------+--------+--------+-----------+---------+-----------+---------+---------+--------+\n";
    +		}
    +
    +	if ($costformat > 0)
    +		{
    +		echo "
    \n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_DIDstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_DIDstats.php new file mode 100644 index 00000000..788e38d0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_DIDstats.php @@ -0,0 +1,800 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90601-1443 - First build +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select did_id,did_pattern,did_description from vicidial_inbound_dids;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_patterns[$i] = $row[1]; + $group_names[$i] = $row[2]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + +?> + + + + + +\n"; +echo "Inbound DIDs Report\n"; + + $short_header=1; + + require("admin_header.php"); + +if ($DB > 0) + { + echo "
    \n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
    \n"; + echo "$shift|$query_date|$end_date\n"; + echo "
    \n"; + } + +echo "
    "; + +echo "
    \n"; +echo "
    \n"; +echo "\n"; +echo "
    to
    \n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFY | REPORTS \n"; +echo "
    \n"; +echo "
    \n"; + +echo "
    ";
    +
    +
    +if (!$group)
    +{
    +echo "\n\n";
    +echo "PLEASE SELECT A DID AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +### FOR SHIFTS IT IS BEST TO STICK TO 15-MINUTE INCREMENTS FOR START TIMES ###
    +
    +if ($shift == 'AM') 
    +	{
    +#	$time_BEGIN=$AM_shift_BEGIN;
    +#	$time_END=$AM_shift_END;
    +#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +#	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}   
    +	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
    +#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}   
    +#	if (strlen($time_END) < 6) {$time_END = "11:59:59";}
    +	}
    +if ($shift == 'PM') 
    +	{
    +#	$time_BEGIN=$PM_shift_BEGIN;
    +#	$time_END=$PM_shift_END;
    +#	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +#	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "12:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +	}
    +if ($shift == 'ALL') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +	}
    +if ($shift == 'DAYTIME') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
    +	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
    +	}
    +if ($shift == '10AM-6PM') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "10:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "17:59:59";}
    +	}
    +if ($shift == '9AM-1AM') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "09:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
    +	}
    +if ($shift == '845-1745') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "08:45:00";}
    +	if (strlen($time_END) < 6) {$time_END = "17:44:59";}
    +	}
    +if ($shift == '1745-100') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "17:45:00";}
    +	if (strlen($time_END) < 6) {$time_END = "00:59:59";}
    +	}
    +
    +$query_date_BEGIN = "$query_date $time_BEGIN";   
    +$query_date_END = "$end_date $time_END";
    +
    +$SQdate_ARY =	explode(' ',$query_date_BEGIN);
    +$SQday_ARY =	explode('-',$SQdate_ARY[0]);
    +$SQtime_ARY =	explode(':',$SQdate_ARY[1]);
    +$EQdate_ARY =	explode(' ',$query_date_END);
    +$EQday_ARY =	explode('-',$EQdate_ARY[0]);
    +$EQtime_ARY =	explode(':',$EQdate_ARY[1]);
    +
    +$SQepochDAY = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
    +$SQepoch = mktime($SQtime_ARY[0], $SQtime_ARY[1], $SQtime_ARY[2], $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
    +$EQepoch = mktime($EQtime_ARY[0], $EQtime_ARY[1], $EQtime_ARY[2], $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
    +
    +$SQsec = ( ($SQtime_ARY[0] * 3600) + ($SQtime_ARY[1] * 60) + ($SQtime_ARY[2] * 1) );
    +$EQsec = ( ($EQtime_ARY[0] * 3600) + ($EQtime_ARY[1] * 60) + ($EQtime_ARY[2] * 1) );
    +
    +$DURATIONsec = ($EQepoch - $SQepoch);
    +$DURATIONday = intval( ($DURATIONsec / 86400) + 1 );
    +
    +	if ( ($EQsec < $SQsec) and ($DURATIONday < 1) )
    +		{
    +		$EQepoch = ($SQepochDAY + ($EQsec + 86400) );
    +		$query_date_END = date("Y-m-d H:i:s", $EQepoch);
    +		$DURATIONday++;
    +		}
    +
    +echo "Inbound DID Report                      $NOW_TIME\n";
    +echo "\n";
    +echo "Time range $DURATIONday days: $query_date_BEGIN to $query_date_END\n\n";
    +#echo "Time range day sec: $SQsec - $EQsec   Day range in epoch: $SQepoch - $EQepoch   Start: $SQepochDAY\n";
    +
    +$d=0;
    +while ($d < $DURATIONday)
    +	{
    +	$dSQepoch = ($SQepoch + ($d * 86400) );
    +	$dEQepoch = ($SQepochDAY + ($EQsec + ($d * 86400) ) );
    +
    +	if ($EQsec < $SQsec)
    +		{
    +		$dEQepoch = ($dEQepoch + 86400);
    +		}
    +
    +	$daySTART[$d] = date("Y-m-d H:i:s", $dSQepoch);
    +	$dayEND[$d] = date("Y-m-d H:i:s", $dEQepoch);
    +
    +	$d++;
    +	}
    +
    +##########################################################################
    +#########  CALCULATE ALL OF THE 15-MINUTE PERIODS NEEDED FOR ALL DAYS ####
    +
    +### BUILD HOUR:MIN DISPLAY ARRAY ###
    +$i=0;
    +$h=4;
    +$j=0;
    +$Zhour=1;
    +$active_time=0;
    +$hour =		($SQtime_ARY[0] - 1);
    +$startSEC = ($SQsec - 900);
    +$endSEC =	($SQsec - 1);
    +if ($SQtime_ARY[1] > 14) 
    +	{
    +	$h=1;
    +	$hour++;
    +	if ($hour < 10) {$hour = "0$hour";}
    +	}
    +if ($SQtime_ARY[1] > 29) {$h=2;}
    +if ($SQtime_ARY[1] > 44) {$h=3;}
    +while ($i < 96)
    +	{
    +	$startSEC = ($startSEC + 900);
    +	$endSEC = ($endSEC + 900);
    +	$time = '      ';
    +	if ($h >= 4)
    +		{
    +		$hour++;
    +		if ($Zhour == '00') 
    +			{
    +			$startSEC=0;
    +			$endSEC=899;
    +			}
    +		$h=0;
    +		if ($hour < 10) {$hour = "0$hour";}
    +		$Stime="$hour:00";
    +		$Etime="$hour:15";
    +		$time = "+$Stime-$Etime+";
    +		}
    +	if ($h == 1)
    +		{
    +		$Stime="$hour:15";
    +		$Etime="$hour:30";
    +		$time = " $Stime-$Etime ";
    +		}
    +	if ($h == 2)
    +		{
    +		$Stime="$hour:30";
    +		$Etime="$hour:45";
    +		$time = " $Stime-$Etime ";
    +		}
    +	if ($h == 3)
    +		{
    +		$Zhour=$hour;
    +		$Zhour++;
    +		if ($Zhour < 10) {$Zhour = "0$Zhour";}
    +		if ($Zhour == 24) {$Zhour = "00";}
    +		$Stime="$hour:45";
    +		$Etime="$Zhour:00";
    +		$time = " $Stime-$Etime ";
    +		if ($Zhour == '00') 
    +			{$hour = ($Zhour - 1);}
    +		}
    +
    +	if ( ( ($startSEC >= $SQsec) and ($endSEC <= $EQsec) and ($EQsec > $SQsec) ) or 
    +		( ($startSEC >= $SQsec) and ($EQsec < $SQsec) ) or 
    +		( ($endSEC <= $EQsec) and ($EQsec < $SQsec) ) )
    +		{
    +		$HMdisplay[$j] =	$time;
    +		$HMstart[$j] =		$Stime;
    +		$HMend[$j] =		$Etime;
    +		$HMSepoch[$j] =		$startSEC;
    +		$HMEepoch[$j] =		$endSEC;
    +
    +		$j++;
    +		}
    +
    +	$h++;
    +	$i++;
    +	}
    +
    +$TOTintervals = $j;
    +
    +
    +### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
    +$stmt="select UNIX_TIMESTAMP(call_date),extension from vicidial_did_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  did_id IN($group_SQL);";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$records_to_grab = mysql_num_rows($rslt);
    +$i=0;
    +$extension[0]='';
    +while ($i < $records_to_grab)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$dt[$i] =			0;
    +	$ut[$i] =			($row[0] - $SQepochDAY);
    +	$extension[$i] =	$row[1];
    +	while($ut[$i] >= 86400) 
    +		{
    +		$ut[$i] = ($ut[$i] - 86400);
    +		$dt[$i]++;
    +		}
    +	if ( ($ut[$i] <= $EQsec) and ($EQsec < $SQsec) )
    +		{
    +		$dt[$i] = ($dt[$i] - 1);
    +		}
    +
    +	$i++;
    +	}
    +
    +###################################################
    +### TOTALS DID SUMMARY SECTION ###
    +if (strlen($extension[0]) > 0)
    +	{
    +	echo "DID Summary:\n";
    +	echo "+--------------------+--------------------------------+------------+------------+\n";
    +	echo "| DID                | DESCRIPTION                    | ROUTE      | CALLS      |\n";
    +	echo "+--------------------+--------------------------------+------------+------------+\n";
    +
    +
    +	$stats_array = array_group_count($extension, 'desc');
    +	$stats_array_ct = count($stats_array);
    +
    +	$d=0;
    +	while ($d < $stats_array_ct)
    +		{
    +		$stat_record_array = explode(' ',$stats_array[$d]);
    +		$stat_count = ($stat_record_array[0] + 0);
    +		$stat_pattern = $stat_record_array[1];
    +
    +		$stmt="select did_description,did_route from vicidial_inbound_dids where did_pattern='$stat_pattern';";
    +		$rslt=mysql_query($stmt, $link);
    +		$details_to_grab = mysql_num_rows($rslt);
    +		if ($details_to_grab > 0)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +			$stat_description =		$row[0];
    +			$stat_route =			$row[1];
    +			}
    +
    +		$totCALLS =			($totCALLS + $stat_count);
    +		$stat_pattern =		sprintf("%-18s", $stat_pattern);
    +		$stat_description =	sprintf("%-30s", $stat_description);
    +		while (strlen($stat_description) > 30) {$stat_description = eregi_replace(".$",'',$stat_description);}
    +		$stat_route =		sprintf("%-10s", $stat_route);
    +		$stat_count =		sprintf("%10s", $stat_count);
    +
    +		$stat_pattern = "$stat_pattern";
    +
    +		echo "| $stat_pattern | $stat_description | $stat_route | $stat_count |\n";
    +		$d++;
    +		}
    +
    +		$FtotCALLS =	sprintf("%10s", $totCALLS);
    +
    +	echo "+--------------------+--------------------------------+------------+------------+\n";
    +	echo "|                                                           TOTALS | $FtotCALLS |\n";
    +	echo "+------------------------------------------------------------------+------------+\n";
    +	}
    +
    +
    +
    +### PARSE THROUGH ALL RECORDS AND GENERATE STATS ###
    +$MT[0]='0';
    +$totCALLS=0;
    +$totCALLSmax=0;
    +$totCALLSdate=$MT;
    +$qrtCALLS=$MT;
    +$qrtCALLSavg=$MT;
    +$qrtCALLSmax=$MT;
    +$j=0;
    +while ($j < $TOTintervals)
    +	{
    +	$jd__0[$j]=0; $jd_20[$j]=0; $jd_40[$j]=0; $jd_60[$j]=0; $jd_80[$j]=0; $jd100[$j]=0; $jd120[$j]=0; $jd121[$j]=0;
    +	$Phd__0[$j]=0; $Phd_20[$j]=0; $Phd_40[$j]=0; $Phd_60[$j]=0; $Phd_80[$j]=0; $Phd100[$j]=0; $Phd120[$j]=0; $Phd121[$j]=0;
    +	$qrtCALLS[$j]=0; $qrtCALLSmax[$j]=0;
    +	$i=0;
    +	while ($i < $records_to_grab)
    +		{
    +		if ( ($ut[$i] >= $HMSepoch[$j]) and ($ut[$i] <= $HMEepoch[$j]) )
    +			{
    +			$totCALLS++;
    +			$qrtCALLS[$j]++;
    +			$dtt = $dt[$i];
    +			$totCALLSdate[$dtt]++;
    +			if ($totCALLSmax < $ls[$i]) {$totCALLSmax = $ls[$i];}
    +			if ($qrtCALLSmax[$j] < $ls[$i]) {$qrtCALLSmax[$j] = $ls[$i];}
    +
    +			if ($qs[$i] == 0) {$hd__0[$j]++;}
    +			if ( ($qs[$i] > 0) and ($qs[$i] <= 20) ) {$hd_20[$j]++;}
    +			if ( ($qs[$i] > 20) and ($qs[$i] <= 40) ) {$hd_40[$j]++;}
    +			if ( ($qs[$i] > 40) and ($qs[$i] <= 60) ) {$hd_60[$j]++;}
    +			if ( ($qs[$i] > 60) and ($qs[$i] <= 80) ) {$hd_80[$j]++;}
    +			if ( ($qs[$i] > 80) and ($qs[$i] <= 100) ) {$hd100[$j]++;}
    +			if ( ($qs[$i] > 100) and ($qs[$i] <= 120) ) {$hd120[$j]++;}
    +			if ($qs[$i] > 120) {$hd121[$j]++;}
    +
    +			}
    +		
    +		$i++;
    +		}
    +
    +	$j++;
    +	}
    +
    +
    +
    +
    +###################################################
    +### TOTALS DATE SUMMARY SECTION ###
    +echo "\nDate Summary:\n";
    +echo "+-------------------------------------------+--------+\n";
    +echo "| SHIFT                                     |        |\n";
    +echo "| DATE-TIME RANGE                           | CALLS  |\n";
    +echo "+-------------------------------------------+--------+\n";
    +
    +$d=0;
    +while ($d < $DURATIONday)
    +	{
    +	if ($totCALLSdate[$d] < 1) {$totCALLSdate[$d]=0;}
    +
    +	if ($totCALLSsecDATE[$d] > 0)
    +		{
    +		$totCALLSavgDATE[$d] = ($totCALLSsecDATE[$d] / $totCALLSdate[$d]);
    +
    +		$totTIME_M = ($totCALLSsecDATE[$d] / 60);
    +		$totTIME_M_int = round($totTIME_M, 2);
    +		$totTIME_M_int = intval("$totTIME_M");
    +		$totTIME_S = ($totTIME_M - $totTIME_M_int);
    +		$totTIME_S = ($totTIME_S * 60);
    +		$totTIME_S = round($totTIME_S, 0);
    +		if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";}
    +		$totTIME_MS = "$totTIME_M_int:$totTIME_S";
    +		$totTIME_MS =		sprintf("%8s", $totTIME_MS);
    +		}
    +	else 
    +		{
    +		$totCALLSavgDATE[$d] = 0;
    +		$totTIME_MS='        ';
    +		}
    +
    +	if ($totCALLSdate[$d] < 1) {$totCALLSdate[$d]='';}
    +	$totCALLSdate[$d] =	sprintf("%6s", $totCALLSdate[$d]);
    +
    +	echo "| $daySTART[$d] - $dayEND[$d] | $totCALLSdate[$d] |\n";
    +	$d++;
    +	}
    +
    +	$FtotCALLS =	sprintf("%6s", $totCALLS);
    +
    +echo "+-------------------------------------------+--------+\n";
    +echo "|                                    TOTALS | $FtotCALLS |\n";
    +echo "+-------------------------------------------+--------+\n";
    +
    +
    +	## FORMAT OUTPUT ##
    +	$i=0;
    +	$hi_hour_count=0;
    +	$hi_hold_count=0;
    +
    +	while ($i < $TOTintervals)
    +		{
    +		if ($qrtCALLS[$i] > 0)
    +			{$qrtCALLSavg[$i] = ($qrtCALLSsec[$i] / $qrtCALLS[$i]);}
    +
    +		if ($qrtCALLS[$i] > $hi_hour_count) {$hi_hour_count = $qrtCALLS[$i];}
    +
    +		$i++;
    +		}
    +
    +if ($hi_hour_count < 1)
    +	{$hour_multiplier = 0;}
    +else
    +	{$hour_multiplier = (70 / $hi_hour_count);}
    +if ($hi_hold_count < 1)
    +	{$hold_multiplier = 0;}
    +else
    +	{$hold_multiplier = (70 / $hi_hold_count);}
    +
    +
    +
    +
    +###################################################################
    +#########  HOLD TIME, CALL AND DROP STATS 15-MINUTE INCREMENTS ####
    +
    +echo "\n";
    +echo "---------- HOLD TIME, CALL AND DROP STATS\n";
    +
    +echo "";
    +
    +echo "";
    +echo "\n";
    +echo "GRAPH IN 15 MINUTE INCREMENTS OF AVERAGE HOLD TIME FOR CALLS TAKEN INTO THIS IN-GROUP\n";
    +
    +
    +$k=1;
    +$Mk=0;
    +$call_scale = '0';
    +while ($k <= 72) 
    +	{
    +	if ( ($k < 1) or ($hour_multiplier <= 0) )
    +		{$scale_num = 70;}
    +	else
    +		{
    +		$TMPscale_num=(73 / $hour_multiplier);
    +		$TMPscale_num = round($TMPscale_num, 0);
    +		$scale_num=($k / $hour_multiplier);
    +		$scale_num = round($scale_num, 0);
    +		}
    +	$tmpscl = "$call_scale$TMPscale_num";
    +
    +	if ( ($Mk >= 4) or (strlen($tmpscl)==73) )
    +		{
    +		$Mk=0;
    +		$LENscale_num = (strlen($scale_num));
    +		$k = ($k + $LENscale_num);
    +		$call_scale .= "$scale_num";
    +		}
    +	else
    +		{
    +		$call_scale .= " ";
    +		$k++;   $Mk++;
    +		}
    +	}
    +$k=1;
    +$Mk=0;
    +$hold_scale = '0';
    +while ($k <= 72) 
    +	{
    +	if ( ($k < 1) or ($hold_multiplier <= 0) )
    +		{$scale_num = 70;}
    +	else
    +		{
    +		$TMPscale_num=(73 / $hold_multiplier);
    +		$TMPscale_num = round($TMPscale_num, 0);
    +		$scale_num=($k / $hold_multiplier);
    +		$scale_num = round($scale_num, 0);
    +		}
    +	$tmpscl = "$hold_scale$TMPscale_num";
    +
    +	if ( ($Mk >= 4) or (strlen($tmpscl)==73) )
    +		{
    +		$Mk=0;
    +		$LENscale_num = (strlen($scale_num));
    +		$k = ($k + $LENscale_num);
    +		$hold_scale .= "$scale_num";
    +		}
    +	else
    +		{
    +		$hold_scale .= " ";
    +		$k++;   $Mk++;
    +		}
    +	}
    +
    +
    +echo "+-------------+-------------------------------------------------------------------------+-------+\n";
    +echo "|    TIME     |    CALLS HANDLED                                                        |       |\n";
    +echo "| 15 MIN INT  |$call_scale| TOTAL |\n";
    +echo "+-------------+-------------------------------------------------------------------------+-------+\n";
    +
    +$i=0;
    +while ($i < $TOTintervals)
    +	{
    +	$char_counter=0;
    +	### BEGIN HOLD TIME TOTALS GRAPH ###
    +		$Ghour_count = $qrtCALLS[$i];
    +	if ($Ghour_count > 0) {$no_lines_yet=0;}
    +
    +	$Gavg_hold = $qrtQUEUEavg[$i];
    +	if ($Gavg_hold < 1) 
    +		{
    +		if ($i < 0)
    +			{
    +			$do_nothing=1;
    +			}
    +		else
    +			{
    +			$TOT_lines++;
    +			$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
    +			$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
    +			echo "|$HMdisplay[$i]|";
    +		#	$k=0;   while ($k <= 22) {echo " ";   $k++;}
    +		#	echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
    +			}
    +		}
    +	else
    +		{
    +		$TOT_lines++;
    +		$no_lines_yet=0;
    +		$Xavg_hold = ($Gavg_hold * $hold_multiplier);
    +		$Yavg_hold = (19 - $Xavg_hold);
    +
    +		$qrtQUEUEavg[$i] =	sprintf("%5s", $qrtQUEUEavg[$i]);
    +		$qrtQUEUEmax[$i] =	sprintf("%5s", $qrtQUEUEmax[$i]);
    +
    +	#	echo "|$HMdisplay[$i]|";
    +		echo "|$HMdisplay[$i]|";
    +	#	$k=0;   while ($k <= $Xavg_hold) {echo "*";   $k++;   $char_counter++;}
    +	#	if ($char_counter >= 22) {echo "H";   $char_counter++;}
    +	#	else {echo "*H";   $char_counter++;   $char_counter++;}
    +	#	$k=0;   while ($k <= $Yavg_hold) {echo " ";   $k++;   $char_counter++;}
    +	#		while ($char_counter <= 22) {echo " ";   $char_counter++;}
    +	#	echo "| $qrtQUEUEavg[$i] | $qrtQUEUEmax[$i] |";
    +		}
    +	### END HOLD TIME TOTALS GRAPH ###
    +
    +	$char_counter=0;
    + 	### BEGIN CALLS TOTALS GRAPH ###
    +	$Ghour_count = $qrtCALLS[$i];
    +	if ($Ghour_count < 1) 
    +		{
    +		if ($i < 0)
    +			{
    +			$do_nothing=1;
    +			}
    +		else
    +			{
    +			if ($qrtCALLS[$i] < 1) {$qrtCALLS[$i]='';}
    +			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
    +		#	echo "  |";
    +			$k=0;   while ($k <= 72) {echo " ";   $k++;}
    +			echo "| $qrtCALLS[$i] |\n";
    +			}
    +		}
    +	else
    +		{
    +		$no_lines_yet=0;
    +		$Xhour_count = ($Ghour_count * $hour_multiplier);
    +		$Yhour_count = (69 - $Xhour_count);
    +
    +		$Gdrop_count = $qrtDROPS[$i];
    +		if ($Gdrop_count < 1) 
    +			{
    +			if ($qrtCALLS[$i] < 1) {$qrtCALLS[$i]='';}
    +			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
    +
    +			echo "";
    +			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
    +			if ($char_counter > 71) {echo "C";   $char_counter++;}
    +			else {echo "*C";   $char_counter++;   $char_counter++;}
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 72) {echo " ";   $char_counter++;}
    +			echo "| $qrtCALLS[$i] |\n";
    +			}
    +		else
    +			{
    +			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
    +
    +		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
    +
    +			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
    +
    +			if ($qrtCALLS[$i] < 1) {$qrtCALLS[$i]='';}
    +			$qrtCALLS[$i] =	sprintf("%5s", $qrtCALLS[$i]);
    +			$qrtDROPS[$i] =	sprintf("%5s", $qrtDROPS[$i]);
    +
    +			echo "";
    +			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
    +			echo "D";   $char_counter++;
    +			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
    +			echo "C";   $char_counter++;
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 72) {echo " ";   $char_counter++;}
    +
    +			echo "| $qrtCALLS[$i] |\n";
    +			}
    +		}
    +	### END CALLS TOTALS GRAPH ###
    +
    +	$i++;
    +	}
    +
    +
    +if ($totQUEUEsec > 0)
    +	{$totQUEUEavgRAW = ($totCALLS / $totQUEUEsec);}
    +else
    +	{$totQUEUEavgRAW = 0;}
    +$totQUEUEavg =	sprintf("%5s", $totQUEUEavg); 
    +	while (strlen($totQUEUEavg)>5) {$totQUEUEavg = ereg_replace(".$",'',$totQUEUEavg);}
    +$totQUEUEmax =	sprintf("%5s", $totQUEUEmax);
    +	while (strlen($totQUEUEmax)>5) {$totQUEUEmax = ereg_replace(".$",'',$totQUEUEmax);}
    +$totDROPS =	sprintf("%5s", $totDROPS);
    +$totCALLS =	sprintf("%5s", $totCALLS);
    +
    +
    +echo "+-------------+-------------------------------------------------------------------------+-------+\n";
    +echo "| TOTAL       |                                                                         | $totCALLS |\n";
    +echo "+-------------+-------------------------------------------------------------------------+-------+\n";
    +
    +
    +
    +$ENDtime = date("U");
    +$RUNtime = ($ENDtime - $STARTtime);
    +echo "\nRun Time: $RUNtime seconds\n";
    +}
    +
    +
    +
    +?>
    +
    +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_GROUP_ALIASstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_GROUP_ALIASstats.php new file mode 100644 index 00000000..0c7fee84 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_GROUP_ALIASstats.php @@ -0,0 +1,245 @@ + LICENSE: AGPLv2 +# +# If you are going to run this report I would recommend adding the following in MySQL: +# CREATE INDEX extension on call_log (extension); +# +# CHANGES +# +# 90914-1003 - First build +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";} + + +?> + + + + + +\n"; +echo "Group Alias Report\n"; + + $short_header=1; + + require("admin_header.php"); + +if ($DB > 0) + { + echo "
    \n"; + echo "$query_date|$end_date\n"; + echo "
    \n"; + } + +echo "
    "; + +echo "
    \n"; +echo "
    \n"; +echo "\n"; +echo "
    to
    \n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           REPORTS \n"; +echo "
    \n"; +echo "
    \n"; + +echo "
    ";
    +
    +
    +if (!$query_date)
    +{
    +echo "\n\n";
    +echo "PLEASE SELECT A DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +echo "Group Alias Report                      $NOW_TIME\n";
    +echo "\n";
    +echo "Time range $query_date to $end_date\n\n";
    +
    +
    +### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
    +echo "Group Alias Summary:\n";
    +echo "+------------------------------------------------------------------------+------------+----------+\n";
    +echo "| GROUP ALIAS                                                            | MINUTES    | CALLS    |\n";
    +echo "+------------------------------------------------------------------------+------------+----------+\n";
    +
    +$stmt="SELECT count(*),ucl.group_alias_id,group_alias_name from user_call_log ucl,groups_alias ga where call_date >= '$query_date' and call_date <= '$end_date' and ucl.group_alias_id=ga.group_alias_id group by ucl.group_alias_id order by ucl.group_alias_id;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$records_to_grab = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $records_to_grab)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$TOTcount = ($TOTcount + $row[0]);
    +	$count[$i] =	sprintf("%-8s", $row[0]);
    +	$group_alias_id[$i] =	$row[1];
    +	$group_alias_name[$i] =	sprintf("%-70s", "$row[1] - $row[2]");
    +	$i++;
    +	}
    +
    +$total_sec=0;
    +$i=0;
    +while ($i < $records_to_grab)
    +	{
    +	$stmt="SELECT UNIX_TIMESTAMP(call_date),call_type,phone_number,number_dialed from user_call_log where group_alias_id='$group_alias_id[$i]' and call_date >= '$query_date' and call_date <= '$end_date';";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$records_to_grabC = mysql_num_rows($rslt);
    +	$k=0;
    +	while ($k < $records_to_grabC)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$call_dateS[$k] =		($row[0] - 5);
    +		$call_dateE[$k] =		($row[0] + 5);
    +		$call_type[$k] =		$row[1];
    +		$phone_number[$k] =		$row[2];
    +		$number_dialed[$k] =	$row[3];
    +		$k++;
    +		}
    +
    +	$found_sec=0;
    +	$group_sec=0;
    +	$k=0;
    +	while ($k < $records_to_grabC)
    +		{
    +		$stmt="SELECT length_in_sec from call_log where extension='$phone_number[$k]'";
    +		if (eregi("MANUAL_OVERRIDE",$call_type[$k]))
    +			{$stmt="SELECT length_in_sec from call_log where extension='$phone_number[$k]'";}
    +		if (eregi("XFER_OVERRIDE",$call_type[$k]))
    +			{
    +			$number_dialed[$k] = eregi_replace("Local/",'',$number_dialed[$k]);
    +			$number_dialed[$k] = eregi_replace("@default",'',$number_dialed[$k]);
    +			$stmt="SELECT length_in_sec from call_log where extension='$number_dialed[$k]'";
    +			}
    +		if (eregi("XFER_3WAY",$call_type[$k]))
    +			{
    +			$number_dialed[$k] = eregi_replace("Local/",'',$number_dialed[$k]);
    +			$number_dialed[$k] = eregi_replace("@default",'',$number_dialed[$k]);
    +			$stmt="SELECT length_in_sec from call_log where extension='$number_dialed[$k]'";
    +			}
    +		if (eregi("MANUAL_DIALNOW",$call_type[$k]))
    +			{$stmt="SELECT length_in_sec from call_log where extension='$phone_number[$k]'";}
    +		if (eregi("MANUAL_DIALFAST",$call_type[$k]))
    +			{$stmt="SELECT length_in_sec from call_log where extension='$phone_number[$k]'";}
    +
    +		$stmt .= " and start_epoch >= $call_dateS[$k] and start_epoch <= $call_dateE[$k];";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$records_to_grabCL = mysql_num_rows($rslt);
    +		if ($records_to_grabCL > 0)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +			$length_in_sec[$k] =		$row[0];
    +			$group_sec = ($group_sec + $row[0]);
    +			$total_sec = ($total_sec + $row[0]);
    +			$found_sec++;
    +			}
    +		$k++;
    +		}
    +
    +	$Ccall_time_MS =		sec_convert($group_sec,'M'); 
    +	$Ccall_time_MS =		sprintf("%10s", $Ccall_time_MS);
    +	echo "| $group_alias_name[$i] | $Ccall_time_MS | $count[$i] |";
    +	if ($DB) {echo "$found_sec";}
    +	echo "\n";
    +	$i++;
    +	}
    +
    +$TOTcount =	sprintf("%-8s", $TOTcount);
    +
    +$Tcall_time_MS =		sec_convert($total_sec,'M'); 
    +$Tcall_time_MS =		sprintf("%10s", $Tcall_time_MS);
    +
    +echo "+------------------------------------------------------------------------+------------+----------+\n";
    +echo "                                                                         | $Tcall_time_MS | $TOTcount |\n";
    +echo "                                                                         +------------+----------+\n";
    +echo "\n
    \n"; + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "

    \nRun Time: $RUNtime seconds\n"; + +} + +?> + +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_IVRfilter.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_IVRfilter.php new file mode 100644 index 00000000..24d4ff81 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_IVRfilter.php @@ -0,0 +1,249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 81030-0432 - First build +# 90310-2054 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; + +?> + + + + + +\n"; +echo "VICIDIAL: VDL IVR Filter Stats\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
    "; + +echo "
    \n"; +echo "\n"; +echo "
    \n"; +echo "\n"; +echo "Date Range:
    \n"; +echo "\n"; +echo " to \n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "ADMIN | "; +echo "REPORTS\n"; +echo "\n"; + +echo "
    \n"; + +echo "   \n"; +echo "
    \n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +$shift = 'ALL';
    +
    +if ($shift == 'AM') 
    +	{
    +	$time_BEGIN=$AM_shift_BEGIN;
    +	$time_END=$AM_shift_END;
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +	}
    +if ($shift == 'PM') 
    +	{
    +	$time_BEGIN=$PM_shift_BEGIN;
    +	$time_END=$PM_shift_END;
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +	}
    +if ($shift == 'ALL') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +	}
    +$query_date_BEGIN = "$query_date $time_BEGIN";   
    +$query_date_END = "$end_date $time_END";
    +
    +
    +
    +echo "VDL: IVR Filter Stats:           $NOW_TIME\n";
    +
    +
    +echo "\n";
    +echo "+----------------------+---------+---------+---------+\n";
    +echo "| CATEGORY             | CALLS   | UNIQUE  |      %  |\n";
    +echo "+----------------------+---------+---------+---------+\n";
    +
    +
    +$stmtA="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='CLEAN';";
    +$rsltA=mysql_query($stmtA, $link);
    +if ($DB) {echo "$stmtA\n";}
    +$rowA=mysql_fetch_row($rsltA);
    +
    +$stmtB="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='NOT_FOUND';";
    +$rsltB=mysql_query($stmtB, $link);
    +if ($DB) {echo "$stmtB\n";}
    +$rowB=mysql_fetch_row($rsltB);
    +
    +$stmtC="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='DNC';";
    +$rsltC=mysql_query($stmtC, $link);
    +if ($DB) {echo "$stmtC\n";}
    +$rowC=mysql_fetch_row($rsltC);
    +
    +$stmtD="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='SALE';";
    +$rsltD=mysql_query($stmtD, $link);
    +if ($DB) {echo "$stmtD\n";}
    +$rowD=mysql_fetch_row($rsltD);
    +
    +$stmtE="select count(*),count(distinct caller_id) from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a='INBOUND_IVR_FILTER' and comment_b='EXISTING' and comment_c='ARCHIVE';";
    +$rsltE=mysql_query($stmtE, $link);
    +if ($DB) {echo "$stmtE\n";}
    +$rowE=mysql_fetch_row($rsltE);
    +
    +
    +$total = ($rowA[0] + $rowB[0] + $rowC[0] + $rowD[0] + $rowE[0]);
    +$Utotal = ($rowA[1] + $rowB[1] + $rowC[1] + $rowD[1] + $rowE[1]);
    +
    +$agent =	sprintf("%7s", $rowA[0]);
    +$Uagent =	sprintf("%7s", $rowA[1]);
    +if ( ($Utotal < 1) or ($rowA[1] < 1) )
    +	{$UagentPERCENT = '0';}
    +else
    +	{$UagentPERCENT = (($rowA[1] / $Utotal) * 100);   $UagentPERCENT = round($UagentPERCENT, 2);}
    +$UagentPERCENT =	sprintf("%6s", $UagentPERCENT);
    +
    +$ntfnd =	sprintf("%7s", $rowB[0]);
    +$Untfnd =	sprintf("%7s", $rowB[1]);
    +if ( ($Utotal < 1) or ($rowB[1] < 1) )
    +	{$UntfndPERCENT = '0';}
    +else
    +	{$UntfndPERCENT = (($rowB[1] / $Utotal) * 100);   $UntfndPERCENT = round($UntfndPERCENT, 2);}
    +$UntfndPERCENT =	sprintf("%6s", $UntfndPERCENT);
    +
    +$prdnc =	sprintf("%7s", $rowC[0]);
    +$Uprdnc =	sprintf("%7s", $rowC[1]);
    +if ( ($Utotal < 1) or ($rowC[1] < 1) )
    +	{$UprdncPERCENT = '0';}
    +else
    +	{$UprdncPERCENT = (($rowC[1] / $Utotal) * 100);   $UprdncPERCENT = round($UprdncPERCENT, 2);}
    +$UprdncPERCENT =	sprintf("%6s", $UprdncPERCENT);
    +
    +$psale =	sprintf("%7s", $rowD[0]);
    +$Upsale =	sprintf("%7s", $rowD[1]);
    +if ( ($Utotal < 1) or ($rowD[1] < 1) )
    +	{$UpsalePERCENT = '0';}
    +else
    +	{$UpsalePERCENT = (($rowD[1] / $Utotal) * 100);   $UpsalePERCENT = round($UpsalePERCENT, 2);}
    +$UpsalePERCENT =	sprintf("%6s", $UpsalePERCENT);
    +
    +$archv =	sprintf("%7s", $rowE[0]);
    +$Uarchv =	sprintf("%7s", $rowE[1]);
    +if ( ($Utotal < 1) or ($rowE[1] < 1) )
    +	{$UarchvPERCENT = '0';}
    +else
    +	{$UarchvPERCENT = (($rowE[1] / $Utotal) * 100);   $UarchvPERCENT = round($UarchvPERCENT, 2);}
    +$UarchvPERCENT =	sprintf("%6s", $UarchvPERCENT);
    +
    +$total =	sprintf("%7s", $total);
    +$Utotal =	sprintf("%7s", $Utotal);
    +
    +
    +echo "| CALL SENT TO AGENT   | $agent | $Uagent | $UagentPERCENT% |\n";
    +echo "| CALLERID NOT FOUND   | $ntfnd | $Untfnd | $UntfndPERCENT% |\n";
    +echo "| PREVIOUS DNC         | $prdnc | $Uprdnc | $UprdncPERCENT% |\n";
    +echo "| PREVIOUS SALE        | $psale | $Upsale | $UpsalePERCENT% |\n";
    +echo "| ARCHIVE ONLY         | $archv | $Uarchv | $UarchvPERCENT% |\n";
    +echo "+----------------------+---------+---------+---------+\n";
    +echo "|               TOTALS:| $total | $Utotal |\n";
    +echo "+----------------------+---------+---------+\n";
    +
    +
    +
    +
    +$ENDtime = date("U");
    +$RUNtime = ($ENDtime - $STARTtime);
    +echo "\nRun Time: $RUNtime seconds\n";
    +
    +
    +
    +
    +?>
    +
    +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_IVRstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_IVRstats.php new file mode 100644 index 00000000..e4eece31 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_IVRstats.php @@ -0,0 +1,683 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81026-2026 - First build +# 81107-0341 - Added time range and option and 15-minute increment graph +# 81107-1148 - Added average times and totals +# 81108-0922 - Added no-callerID and unique caller counts +# 90310-2056 - Admin header +# 90508-0644 - Changed to PHP long tags +# 91112-0719 - Added in-group names to select list +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:23:59";} + +$stmt="select group_id,group_name from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='CALLMENU'; + $LISTgroups_names[$i]='IVR'; + $i++; + $LISTgroups[$i]='XMLPULL'; + $LISTgroups_names[$i]='Dynamic Application'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] = $row[0]; + $LISTgroups_names[$i] = $row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; +# $group_SQL = "group_id IN('')"; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); +# $group_SQL = "group_id IN($group_SQL)"; + } + + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } +?> + + + + + +\n"; +echo "IVR Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
    "; + +if ($DB > 0) + { + echo "
    \n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
    \n"; + echo "$shift|$query_date|$end_date\n"; + echo "
    \n"; + } + +echo "
    \n"; +echo "\n"; +echo "
    \n"; +echo "\n"; +echo "Date Range:
    \n"; +echo "\n"; +echo " to \n"; +echo "
    \n"; +echo "Inbound Groups: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           "; +echo "MODIFY | "; +echo "REPORTS | "; +echo "CLOSER REPORT \n"; +echo "\n"; + +echo "
    \n"; + +#echo "\n"; +echo "Shift: \n"; +echo "   \n"; +echo "
    \n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if ($groups_to_print < 1)
    +	{
    +	echo "\n\n";
    +	echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +	}
    +
    +else
    +	{
    +	echo "IVR Stats Report: $group_string          $NOW_TIME\n";
    +
    +	$TOTALcalls=0;
    +	$NOCALLERIDcalls=0;
    +	$UNIQUEcallers=0;
    +	$totFLOWivr_time=0;
    +	$totFLOWtotal_time=0;
    +
    +	##### Grab all records for the IVR for the specified time period
    +	$stmt="select uniqueid,extension,start_time,comment_a,comment_b,comment_d,UNIX_TIMESTAMP(start_time),phone_ext from live_inbound_log where start_time >= '$query_date_BEGIN' and start_time <= '$query_date_END' and comment_a IN($group_SQL) order by uniqueid,start_time;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$logs_to_print = mysql_num_rows($rslt);
    +	$p=0;
    +	while ($p < $logs_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$uniqueid[$p] =		$row[0];
    +		$extension[$p] =	$row[1];
    +		$start_time[$p] =	$row[2];
    +		$comment_a[$p] =	$row[3];
    +		$comment_b[$p] =	$row[4];
    +		$comment_d[$p] =	$row[5];
    +		$epoch[$p] =		$row[6];
    +		$phone_ext[$p] =	$row[7];
    +		$p++;
    +		}
    +
    +	### create the call flow of all calls by uniqueid
    +	$last_uniqueid='';
    +	$first_epoch='';
    +	$last_epoch='';
    +	$p=0;
    +	$r=-1;
    +	while ($p < $logs_to_print)
    +		{
    +		if ($DB > 0) {echo "$p|$uniqueid[$p]|$comment_b[$p]";}
    +		if ($last_uniqueid === "$uniqueid[$p]")
    +			{
    +			$unique_calls[$r] .= "----------$comment_b[$p]";
    +			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
    +			$last_epoch[$r]=$epoch[$p];
    +			}
    +		else
    +			{
    +			$r++;
    +			$caller_id[$r]=$phone_ext[$p];
    +			if (strlen($phone_ext[$p])<2)
    +				{$NOCALLERIDcalls++;}
    +			else
    +				{
    +				if (!ereg("_$phone_ext[$p]_",$unique_callerIDs))
    +					{
    +					$unique_callerIDs .= "_$phone_ext[$p]_";
    +					$UNIQUEcallers++;
    +					}
    +				}
    +			$first_epoch[$r]=$epoch[$p];
    +			$last_epoch[$r]=$epoch[$p];
    +			$unique_calls[$r] = $comment_b[$p];
    +			$FLOWuniqueid[$r] = "$uniqueid[$p]";
    +			$last_uniqueid = "$uniqueid[$p]";
    +			if ($DB > 0) {echo "   $r|$unique_calls[$r]\n";}
    +			}
    +		$p++;
    +		}
    +
    +	### sort call flows for counting
    +	$RAWunique_calls = $unique_calls;
    +	if ($logs_to_print > 0)
    +		{sort($unique_calls);}
    +
    +
    +	### count each unique call flow
    +	$last_Suniqueid='';
    +	$p=-1;
    +	$s=0;
    +	while ($s <= $r)
    +		{
    +		if ($DB > 0) {echo "$s|$unique_calls[$s]\n";}
    +		if ($last_Suniqueid === "$unique_calls[$s]")
    +			{
    +			$STunique_calls_count[$p]++;
    +			}
    +		else
    +			{
    +			$p++;
    +			$STunique_calls[$p] = $unique_calls[$s];
    +			$last_Suniqueid = "$unique_calls[$s]";
    +			$STunique_calls_count[$p]=1;
    +			}
    +		$s++;
    +		}
    +
    +
    +	### put call flows and counts together for sorting again
    +	$TOTALcalls=0;
    +	$s=0;
    +	while ($s <= $p)
    +		{
    +		$TOTALcalls = ($TOTALcalls + $STunique_calls_count[$s]);
    +		$STunique_calls_count[$s] = sprintf("%07s", $STunique_calls_count[$s]);
    +		$FLOWunique_calls[$s] = "$STunique_calls_count[$s]__________$STunique_calls[$s]";
    +		$s++;
    +		}
    +
    +	#### PRINT TOTAL CALLS INTO THIS IVR
    +	echo "\n";
    +	echo "Calls taken into this IVR:   $TOTALcalls\n";
    +	echo "Calls with no CallerID:      $NOCALLERIDcalls\n";
    +	echo "Unique Callers:              $UNIQUEcallers\n";
    +	echo "\n";
    +
    +	### sort call flows for counting
    +	if ($p > 0)
    +		{rsort($FLOWunique_calls);}
    +
    +
    +	### put call flows and counts together for sorting again
    +	$RUC_ct = count($RAWunique_calls);
    +	$s=0;
    +	while ($s <= $p)
    +		{
    +		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
    +		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
    +
    +		$t=0;
    +		while ($t < $RUC_ct)
    +			{
    +			if ($FLOWsummary[1] === "$RAWunique_calls[$t]")
    +				{
    +				$FLOWunique_calls_list[$s] .= "'$FLOWuniqueid[$t]',";
    +				if ($last_epoch[$t] <= $first_epoch[$t]) {$last_epoch[$t] = ($first_epoch[$t] + 5);}
    +				else {$last_epoch[$t] = ($last_epoch[$t] + 10);}
    +				$FLOWivr_time[$s] = ($FLOWivr_time[$s] + ($last_epoch[$t] - $first_epoch[$t]));
    +				}
    +			$t++;
    +			}
    +
    +		$s++;
    +		}
    +
    +
    +	### put call flows and counts together for sorting again
    +	$s=0;
    +
    +	echo "+--------+--------+--------+--------+------+------+\n";
    +	echo "|        |        | QUEUE  | QUEUE  | IVR  | TOTAL|\n";
    +	echo "| IVR    | QUEUE  | DROP   | DROP   | AVG  | AVG  |\n";
    +	echo "| CALLS  | CALLS  | CALLS  | PERCENT| TIME | TIME | CALL PATH\n";
    +	echo "+--------+--------+--------+--------+------+------+------------\n";
    +
    +	while ($s <= $p)
    +		{
    +		$vcl_statuses = $MT;
    +		$FLOWdrop[$s]=0;
    +		$FLOWtotal[$s]=0;
    +		$FLOWdropPCT[$s]=0;
    +		$FLOWsummary = explode('__________',$FLOWunique_calls[$s]);
    +		$FLOWsummary[0] = ($FLOWsummary[0] + 0);
    +
    +		$FLOWunique_calls_list[$s] = preg_replace("/,$/","",$FLOWunique_calls_list[$s]);
    +
    +
    +		##### Grab all records for the IVR for the specified time period
    +		$stmt="select status,length_in_sec from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id IN($group_SQL) and uniqueid IN($FLOWunique_calls_list[$s]);";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$vcl_statuses_to_print = mysql_num_rows($rslt);
    +		$w=0;
    +		while ($w < $vcl_statuses_to_print)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +			$vcl_statuses[$w] =		$row[0];
    +			if ( (ereg("DROP",$vcl_statuses[$w])) or (ereg("XDROP",$vcl_statuses[$w])) )
    +				{$FLOWdrop[$s]++;}
    +			$FLOWclose_time[$s] = ($FLOWclose_time[$s] + $row[1]);
    +			$FLOWtotal[$s]++;
    +			$w++;
    +			}
    +		if ( ($FLOWtotal[$s] > 0) and ($FLOWdrop[$s] > 0) )
    +			{
    +			$FLOWdropPCT[$s] = ( ($FLOWdrop[$s] / $FLOWtotal[$s]) * 100);
    +			$FLOWdropPCT[$s] = round($FLOWdropPCT[$s], 2);
    +			}
    +		$FLOWsummary[0] =	sprintf("%6s", $FLOWsummary[0]);
    +		$FLOWtotal[$s] =	sprintf("%6s", $FLOWtotal[$s]);
    +		$FLOWdrop[$s] =		sprintf("%6s", $FLOWdrop[$s]);
    +		$FLOWdropPCT[$s] =	sprintf("%6s", $FLOWdropPCT[$s]);
    +		$FLOWsummary[1] = ereg_replace('----------',' / ',$FLOWsummary[1]);
    +		$FLOWtotal_time[$s] = ($FLOWivr_time[$s] + $FLOWclose_time[$s]);
    +
    +		$avgFLOWivr_time[$s] = ($FLOWivr_time[$s] / $FLOWsummary[0]);
    +		$avgFLOWivr_time[$s] = round($avgFLOWivr_time[$s], 0);
    +		$avgFLOWivr_time[$s] = sprintf("%4s", $avgFLOWivr_time[$s]);
    +		$avgFLOWtotal_time[$s] = ($FLOWtotal_time[$s] / $FLOWsummary[0]);
    +		$avgFLOWtotal_time[$s] = round($avgFLOWtotal_time[$s], 0);
    +		$avgFLOWtotal_time[$s] = sprintf("%4s", $avgFLOWtotal_time[$s]);
    +
    +		$totFLOWtotal_time = ($totFLOWtotal_time + $FLOWtotal_time[$s]);
    +		$totFLOWivr_time = ($totFLOWivr_time + $FLOWivr_time[$s]);
    +		$totFLOWtotal = ($totFLOWtotal + $FLOWtotal[$s]);
    +		$totFLOWdrop = ($totFLOWdrop + $FLOWdrop[$s]);
    +
    +		echo "| $FLOWsummary[0] | $FLOWtotal[$s] | $FLOWdrop[$s] | $FLOWdropPCT[$s]%| $avgFLOWivr_time[$s] | $avgFLOWtotal_time[$s] | $FLOWsummary[1]\n";
    +
    +		$s++;
    +		}
    +	$TOTALcalls = sprintf("%6s", $TOTALcalls);
    +	$totFLOWtotal = sprintf("%6s", $totFLOWtotal);
    +	$totFLOWdrop = sprintf("%6s", $totFLOWdrop);
    +	if ( ($totFLOWivr_time > 0) and ($TOTALcalls > 0) )
    +		{$TavgFLOWivr_time = ($totFLOWivr_time / $TOTALcalls);}
    +	$TavgFLOWivr_time = round($TavgFLOWivr_time, 0);
    +	$TavgFLOWivr_time = sprintf("%4s", $TavgFLOWivr_time);
    +	if ( ($totFLOWtotal_time > 0) and ($TOTALcalls > 0) )
    +		{$TavgFLOWtotal_time = ($totFLOWtotal_time / $TOTALcalls);}
    +	$TavgFLOWtotal_time = round($TavgFLOWtotal_time, 0);
    +	$TavgFLOWtotal_time = sprintf("%4s", $TavgFLOWtotal_time);
    +	if ( ($totFLOWtotal < 1) or ($totFLOWdrop < 1) )
    +		{$totFLOWdropPCT = '0';}
    +	else
    +		{
    +		$totFLOWdropPCT = (($totFLOWdrop / $totFLOWtotal) * 100);
    +		$totFLOWdropPCT = round($totFLOWdropPCT, 0);
    +		}
    +	$totFLOWdropPCT = sprintf("%5s", $totFLOWdropPCT);
    +
    +	echo "+--------+--------+--------+--------+------+------+------------\n";
    +	echo "| $TOTALcalls | $totFLOWtotal | $totFLOWdrop | $totFLOWdropPCT% | $TavgFLOWivr_time | $TavgFLOWtotal_time |\n";
    +	echo "+--------+--------+--------+--------+------+------+\n";
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +	##############################
    +	#########  TIME STATS
    +
    +	echo "\n";
    +	echo "---------- TIME STATS\n";
    +
    +	echo "\n";
    +
    +	$hi_hour_count=0;
    +	$last_full_record=0;
    +	$i=0;
    +	$h=0;
    +	while ($i <= 96)
    +		{
    +		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:00:00' and start_time <= '$query_date $h:14:59' and comment_a IN($group_SQL) and comment_b='START';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$hour_count[$i] = $row[0];
    +		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +		if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +		$i++;
    +
    +
    +		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:15:00' and start_time <= '$query_date $h:29:59' and comment_a IN($group_SQL) and comment_b='START';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$hour_count[$i] = $row[0];
    +		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +		if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +		$i++;
    +
    +		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:30:00' and start_time <= '$query_date $h:44:59' and comment_a IN($group_SQL) and comment_b='START';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$hour_count[$i] = $row[0];
    +		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +		if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +		$i++;
    +
    +		$stmt="select count(*) from live_inbound_log where start_time >= '$query_date $h:45:00' and start_time <= '$query_date $h:59:59' and comment_a IN($group_SQL) and comment_b='START';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$hour_count[$i] = $row[0];
    +		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +		if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +		$i++;
    +		$h++;
    +		}
    +
    +	if ($hi_hour_count < 1)
    +		{$hour_multiplier = 0;}
    +	else
    +		{
    +		$hour_multiplier = (100 / $hi_hour_count);
    +		#$hour_multiplier = round($hour_multiplier, 0);
    +		}
    +
    +	echo "\n";
    +	echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS TAKEN INTO THIS IVR\n";
    +
    +	$k=1;
    +	$Mk=0;
    +	$call_scale = '0';
    +	while ($k <= 102) 
    +		{
    +		if ($Mk >= 5) 
    +			{
    +			$Mk=0;
    +			if ( ($k < 1) or ($hour_multiplier <= 0) )
    +				{$scale_num = 100;}
    +			else
    +				{
    +				$scale_num=($k / $hour_multiplier);
    +				$scale_num = round($scale_num, 0);
    +				}
    +			$LENscale_num = (strlen($scale_num));
    +			$k = ($k + $LENscale_num);
    +			$call_scale .= "$scale_num";
    +			}
    +		else
    +			{
    +			$call_scale .= " ";
    +			$k++;   $Mk++;
    +			}
    +		}
    +
    +
    +	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
    +	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | TOTAL |\n";
    +	echo "| HOUR |$call_scale| TOTAL |\n";
    +	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n";
    +
    +	$ZZ = '00';
    +	$i=0;
    +	$h=4;
    +	$hour= -1;
    +	$no_lines_yet=1;
    +
    +	while ($i <= 96)
    +		{
    +		$char_counter=0;
    +		$time = '      ';
    +		if ($h >= 4) 
    +			{
    +			$hour++;
    +			$h=0;
    +			if ($hour < 10) {$hour = "0$hour";}
    +			$time = "+$hour$ZZ+";
    +			}
    +		if ($h == 1) {$time = "   15 ";}
    +		if ($h == 2) {$time = "   30 ";}
    +		if ($h == 3) {$time = "   45 ";}
    +		$Ghour_count = $hour_count[$i];
    +		if ($Ghour_count < 1) 
    +			{
    +			if ( ($no_lines_yet) or ($i > $last_full_record) )
    +				{
    +				$do_nothing=1;
    +				}
    +			else
    +				{
    +				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +				echo "|$time|";
    +				$k=0;   while ($k <= 102) {echo " ";   $k++;}
    +				echo "| $hour_count[$i] |\n";
    +				}
    +			}
    +		else
    +			{
    +			$no_lines_yet=0;
    +			$Xhour_count = ($Ghour_count * $hour_multiplier);
    +			$Yhour_count = (99 - $Xhour_count);
    +
    +			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +
    +			echo "|$time|";
    +			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
    +			echo "*X";   $char_counter++;
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 101) {echo " ";   $char_counter++;}
    +			echo "| $hour_count[$i] |\n";
    +			}
    +		
    +		
    +		$i++;
    +		$h++;
    +		}
    +
    +
    +	echo "+------+-------------------------------------------------------------------------------------------------------+-------+\n\n";
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +	$ENDtime = date("U");
    +	$RUNtime = ($ENDtime - $STARTtime);
    +	echo "\nRun Time: $RUNtime seconds\n";
    +	}
    +
    +
    +
    +?>
    +
    +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_LIST_UPDATEstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_LIST_UPDATEstats.php new file mode 100644 index 00000000..8fd08268 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_LIST_UPDATEstats.php @@ -0,0 +1,200 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90627-2055 - First build +# 90907-0636 - Added list id to results +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";} +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";} + + +?> + + + + + +\n"; +echo "List Update Process Report\n"; + + $short_header=1; + + require("admin_header.php"); + +if ($DB > 0) + { + echo "
    \n"; + echo "$query_date|$end_date\n"; + echo "
    \n"; + } + +echo "
    "; + +echo "
    \n"; +echo "
    \n"; +echo "\n"; +echo "
    to
    \n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           REPORTS \n"; +echo "
    \n"; +echo "
    \n"; + +echo "
    ";
    +
    +
    +if (!$query_date)
    +{
    +echo "\n\n";
    +echo "PLEASE SELECT A DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +echo "List Update Process Report                      $NOW_TIME\n";
    +echo "\n";
    +echo "Time range $query_date to $end_date\n\n";
    +
    +
    +### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ###
    +echo "List Update Summary:\n";
    +echo "+----------------------------------------------------+------------+----------+----------+\n";
    +echo "| FILENAME                                           | RESULT     | RECORDS  | UPDATES  |\n";
    +echo "+----------------------------------------------------+------------+----------+----------+\n";
    +
    +$stmt="SELECT count(*),filename,result,sum(result_rows) from vicidial_list_update_log where event_date >= '$query_date' and event_date <= '$end_date' group by filename,result order by filename,result;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$records_to_grab = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $records_to_grab)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$TOTcount = ($TOTcount + $row[0]);
    +	$TOTupdated = ($TOTupdated + $row[3]);
    +	$count =	sprintf("%-8s", $row[0]);
    +	$filename =	sprintf("%-50s", trim($row[1]));
    +	$result =	sprintf("%-10s", $row[2]);
    +	$updated =	sprintf("%-8s", $row[3]);
    +	echo "| $filename | $result | $count | $updated |\n";
    +
    +	$i++;
    +	}
    +$TOTcount =	sprintf("%-8s", $TOTcount);
    +$TOTupdated =	sprintf("%-8s", $TOTupdated);
    +
    +echo "+----------------------------------------------------+------------+----------+----------+\n";
    +echo "                                                                  | $TOTcount | $TOTupdated |\n";
    +echo "                                                                  +----------+----------+\n";
    +echo "\n
    \n"; + + + +### GRAB ALL RECORDS WITHIN RANGE FROM THE DATABASE ### +echo "List Update Detail:
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; + + +$stmt="SELECT event_date,lead_id,vendor_id,phone_number,status,old_status,filename,result,result_rows,list_id from vicidial_list_update_log where event_date >= '$query_date' and event_date <= '$end_date' order by event_date,filename;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$records_to_grab = mysql_num_rows($rslt); +$i=0; +while ($i < $records_to_grab) + { + $row=mysql_fetch_row($rslt); + $row[6] = trim($row[6]); + echo "\n"; + $i++; + } + + + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "
    DATE/TIMELEAD_IDVENDOR_IDPHONESTATUSOLD_STATUSOLD_LISTFILENAMERESULTUPDATED_ROWS
    $row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[9]$row[6]$row[7]$row[8]

    \nRun Time: $RUNtime seconds\n"; +} + + + +?> + +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_OUTBOUNDsummary_interval.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_OUTBOUNDsummary_interval.php new file mode 100644 index 00000000..c4989c46 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_OUTBOUNDsummary_interval.php @@ -0,0 +1,1249 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 091128-0311 - First build +# 091129-0017 - Added Sales-type and DNC-type tallies +# + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +if (isset($_GET["time_interval"])) {$time_interval=$_GET["time_interval"];} + elseif (isset($_POST["time_interval"])) {$time_interval=$_POST["time_interval"];} +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["bareformat"])) {$bareformat=$_GET["bareformat"];} + elseif (isset($_POST["bareformat"])) {$bareformat=$_POST["bareformat"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); + +$MT[0]='0'; +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt = "SELECT local_gmt FROM servers where active='Y' limit 1;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$gmt_conf_ct = mysql_num_rows($rslt); +$dst = date("I"); +if ($gmt_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $local_gmt = $row[0]; + $epoch_offset = (($local_gmt + $dst) * 3600); + } + +$auth=0; +$stmt="SELECT full_name,user_level,user_group from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$records_to_print = mysql_num_rows($rslt); +if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_level = $row[1]; + $user_group = $row[2]; + $auth++; + } + +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; + } + +$LOGallowed_campaignsSQL=''; +$whereLOGallowed_campaignsSQL=''; +if ($user_level < 9) + { + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $records_to_print = mysql_num_rows($rslt); + if ($records_to_print > 0) + { + $row=mysql_fetch_row($rslt); + if ( (!eregi("ALL-CAMPAIGNS",$row[0])) ) + { + $rawLOGallowed_campaignsSQL = eregi_replace(' -','',$row[0]); + $rawLOGallowed_campaignsSQL = eregi_replace(' ',"','",$rawLOGallowed_campaignsSQL); + $LOGallowed_campaignsSQL = "and campaign_id IN('$rawLOGallowed_campaignsSQL')"; + $whereLOGallowed_campaignsSQL = "where campaign_id IN('$rawLOGallowed_campaignsSQL')"; + } + } + else + { + echo "Campaigns Permissions Error: |$PHP_AUTH_USER|$user_group|\n"; + exit; + } + } + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns $whereLOGallowed_campaignsSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (eregi('--ALL--',$group_string)) + {$group[$i] = $row[0];} + $i++; + } + + if ($DB) {echo "$group_string|$i\n";} + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + $stmt="select campaign_name from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL;"; + $rslt=mysql_query($stmt, $link); + $campaign_names_to_print = mysql_num_rows($rslt); + if ($campaign_names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_cname[$i] = $row[0]; + } + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$stmt="select call_time_id,call_time_name from vicidial_call_times;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$times_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $times_to_print) + { + $row=mysql_fetch_row($rslt); + $call_times[$i] = $row[0]; + $call_time_names[$i] = $row[1]; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +$stmt="select status from vicidial_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +$sale_ct=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where sale='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statsale_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statsale_to_print) + { + $row=mysql_fetch_row($rslt); + $sale_statusesLIST[$sale_ct] = $row[0]; + $sale_ct++; + $i++; + } + +$stmt="select status from vicidial_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +$dnc_ct=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where dnc='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statdnc_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statdnc_to_print) + { + $row=mysql_fetch_row($rslt); + $dnc_statusesLIST[$dnc_ct] = $row[0]; + $dnc_ct++; + $i++; + } + +?> + + + + + +\n"; +echo "Outbound Summary Interval Report\n"; + +if ($bareformat < 1) + { + $short_header=1; + + require("admin_header.php"); + + echo "
    "; + + if ($DB > 0) + { + echo "
    \n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
    \n"; + echo "$shift|$query_date|$end_date\n"; + echo "
    \n"; + } + + echo "
    \n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Date Range:
    \n"; + echo "\n"; + echo " to \n"; + echo "
    Campaigns:
    "; + echo "\n"; + echo "
    "; + echo "Include Drop  
    Rollover:
    "; + echo "
    \n"; + echo "Time Interval:
    "; + echo "\n"; + echo "
    \n"; + echo "         "; + echo "MODIFY | "; + echo "REPORTS"; + echo "

    \n"; + echo "
            "; + echo "\n"; + + echo "
    \n"; + + echo "Call Time:
    \n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "
    \n\n"; + + echo "
    \n\n";
    +	}
    +
    +if ($group_ct < 1)
    +	{
    +	echo "\n\n";
    +	echo "PLEASE SELECT A CAMPAIGN AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +	}
    +
    +else
    +	{
    +	if ($shift == 'ALL') 
    +		{
    +		$Gct_default_start = "0";
    +		$Gct_default_stop = "2400";
    +		}
    +	else 
    +		{
    +		$stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$shift';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$calltimes_to_print = mysql_num_rows($rslt);
    +		if ($calltimes_to_print > 0)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +			$Gct_default_start =	$row[3];
    +			$Gct_default_stop =		$row[4];
    +			$Gct_sunday_start =		$row[5];
    +			$Gct_sunday_stop =		$row[6];
    +			$Gct_monday_start =		$row[7];
    +			$Gct_monday_stop =		$row[8];
    +			$Gct_tuesday_start =	$row[9];
    +			$Gct_tuesday_stop =		$row[10];
    +			$Gct_wednesday_start =	$row[11];
    +			$Gct_wednesday_stop =	$row[12];
    +			$Gct_thursday_start =	$row[13];
    +			$Gct_thursday_stop =	$row[14];
    +			$Gct_friday_start =		$row[15];
    +			$Gct_friday_stop =		$row[16];
    +			$Gct_saturday_start =	$row[17];
    +			$Gct_saturday_stop =	$row[18];
    +			}
    +		else
    +			{
    +			$Gct_default_start = "0";
    +			$Gct_default_stop = "2400";
    +			}
    +		}
    +	$h=0;
    +	$hh=0;
    +	while ($h < $interval_count)
    +		{
    +		if ($interval_count>=96)
    +			{
    +			if ($hf < 45)
    +				{
    +				$hf = ($hf + 15);
    +				}
    +			else
    +				{
    +				$hf = "00";
    +				if ($h > 0)
    +					{$hh++;}
    +				}
    +			$H_test = "$hh$hf";
    +			}
    +		if ($interval_count==48)
    +			{
    +			if ($hf < 30)
    +				{
    +				$hf = ($hf + 30);
    +				}
    +			else
    +				{
    +				$hf = "00";
    +				if ($h > 0)
    +					{$hh++;}
    +				}
    +			$H_test = "$hh$hf";
    +			}
    +		if ($interval_count<=24)
    +			{
    +			$H_test = $h . "00";
    +			}
    +		if ( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) )
    +			{
    +			$Hcalltime[$h]++;
    +			$Hcalltime_HHMM[$h] = "$H_test";
    +			}
    +		if ($DB)
    +			{echo "( ($H_test >= $Gct_default_start) and ($H_test <= $Gct_default_stop) ) $hh $hf\n";}
    +		$h++;
    +		}
    +
    +	$query_date_BEGIN = "$query_date 00:00:00";   
    +	$query_date_END = "$end_date 23:59:59";
    +
    +
    +	$MAIN .= "Outbound Summary Interval Report: $group_string          $NOW_TIME\n";
    +
    +
    +
    +
    +	##### Loop through each campaign and gether stats
    +	if ($group_ct > 0)
    +		{
    +		$MAIN .= "\n";
    +		$MAIN .= "---------- MULTI-CAMPAIGN BREAKDOWN:\n";
    +		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
    +		$MAIN .= "|                                          |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
    +		$MAIN .= "|                                          | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
    +		$MAIN .= "| CAMPAIGN                                 | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
    +		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
    +
    +		$i=0;
    +		$TOTcalls_count=0;
    +		$TOTsystem_count=0;
    +		$TOTagent_count=0;
    +		$TOTptp_count=0;
    +		$TOTrtp_count=0;
    +		$TOTna_count=0;
    +		$TOTdrop_count=0;
    +		$TOTagent_login_sec=0;
    +		$TOTagent_pause_sec=0;
    +		$SUBoutput='';
    +
    +		while($i < $group_ct)
    +			{
    +			$u=0;
    +
    +			##### Gather Agent time records
    +			$stmt="select event_time,UNIX_TIMESTAMP(event_time),campaign_id,pause_sec,wait_sec,talk_sec,dispo_sec from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' and campaign_id IN('$group_drop[$i]','$group[$i]');";
    +			$rslt=mysql_query($stmt, $link);
    +			if ($DB) {echo "$stmt\n";}
    +			$AGENTtime_to_print = mysql_num_rows($rslt);
    +			$s=0;
    +			while ($s < $AGENTtime_to_print)
    +				{
    +				$row=mysql_fetch_row($rslt);
    +				$inTOTALsec =		($row[3] + $row[4] + $row[5] + $row[6]);	
    +				$ATcall_date[$s] =		$row[0];
    +				$ATepoch[$s] =			$row[1];
    +				$ATcampaign_id[$s] =	$row[2];
    +				$ATpause_sec[$s] =		$row[3];
    +				$ATagent_sec[$s] =		$inTOTALsec;
    +				$s++;
    +				}
    +
    +			##### Gather outbound calls
    +			$stmt = "SELECT status,length_in_sec,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,uniqueid,lead_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='$group[$i]';";
    +			$rslt=mysql_query($stmt, $link);
    +			if ($DB) {echo "$stmt\n";}
    +			$calls_to_parse = mysql_num_rows($rslt);
    +			$p=0;
    +			while ($p < $calls_to_parse)
    +				{
    +				$row=mysql_fetch_row($rslt);
    +				$CPstatus[$u] =			$row[0];
    +				$CPlength_in_sec[$u] =	$row[1];
    +				$CPcall_date[$u] =		$row[2];
    +				$CPepoch[$u] =			$row[3];
    +				$CPphone_number[$u] =	$row[4];
    +				$CPcampaign_id[$u] =	$row[5];
    +				$CPvicidial_id[$u] =	$row[6];
    +				$CPlead_id[$u] =		$row[7];
    +				$TESTlead_id[$u] =		$row[7];
    +				$TESTuniqueid[$u] =		$row[6];
    +				$CPin_out[$u] =			'OUT';
    +				$p++;
    +				$u++;
    +				}
    +
    +			$group_drop[$i]='';
    +			if (eregi("YES",$include_rollover))
    +				{
    +				##### Gather inbound calls from drop inbound group if selected
    +				$stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' $LOGallowed_campaignsSQL and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';";
    +				$rslt=mysql_query($stmt, $link);
    +				if ($DB) {echo "$stmt\n";}
    +				$in_groups_to_print = mysql_num_rows($rslt);
    +				if ($in_groups_to_print > 0)
    +					{
    +					$row=mysql_fetch_row($rslt);
    +					$group_drop[$i] = $row[0];
    +					$rollover_groups_count++;
    +					}
    +
    +				$length_in_secZ=0;
    +				$queue_secondsZ=0;
    +				$agent_alert_delayZ=0;
    +				$stmt="select status,length_in_sec,queue_seconds,agent_alert_delay,call_date,UNIX_TIMESTAMP(call_date),phone_number,campaign_id,closecallid,lead_id,uniqueid from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and campaign_id='$group_drop[$i]';";
    +				$rslt=mysql_query($stmt, $link);
    +				if ($DB) {echo "$stmt\n";}
    +				$INallcalls_to_printZ = mysql_num_rows($rslt);
    +				$y=0;
    +				while ($y < $INallcalls_to_printZ)
    +					{
    +					$row=mysql_fetch_row($rslt);
    +
    +					$k=0;
    +					$front_call_found=0;
    +					while($k < $p)
    +						{
    +						if ($TESTuniqueid[$k] == $row[10])
    +							{$front_call_found++;}
    +						$k++;
    +						}
    +					if ($front_call_found > 0)
    +						{
    +						$length_in_secZ = $row[1];
    +						$queue_secondsZ = $row[2];
    +						$agent_alert_delayZ = $row[3];
    +
    +						$TOTALdelay =		round($agent_alert_delayZ / 1000);
    +						$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
    +						if ($thiscallsec < 0)
    +							{$thiscallsec = 0;}
    +						$inTOTALsec =	($inTOTALsec + $thiscallsec);	
    +
    +						$CPstatus[$u] =			$row[0];
    +						$CPlength_in_sec[$u] =	$inTOTALsec;
    +						$CPcall_date[$u] =		$row[4];
    +						$CPepoch[$u] =			$row[5];
    +						$CPphone_number[$u] =	$row[6];
    +						$CPcampaign_id[$u] =	$row[7];
    +						$CPvicidial_id[$u] =	$row[8];
    +						$CPlead_id[$u] =		$row[9];
    +						$CPin_out[$u] =			'IN';
    +						$u++;
    +						}
    +					$y++;
    +					}
    +				}
    +
    +
    +			$out_of_call_time=0;
    +			$length_in_sec[$i]=0;
    +			$queue_seconds[$i]=0;
    +			$agent_sec[$i]=0;
    +			$pause_sec[$i]=0;
    +			$talk_sec[$i]=0;
    +			$calls_count[$i]=0;
    +			$calls_count_IN[$i]=0;
    +			$drop_count[$i]=0;
    +			$drop_count_OUT[$i]=0;
    +			$system_count[$i]=0;
    +			$agent_count[$i]=0;
    +			$ptp_count[$i]=0;
    +			$rtp_count[$i]=0;
    +			$na_count[$i]=0;
    +			$answer_count[$i]=0;
    +			$max_queue_seconds[$i]=0;
    +			$Hlength_in_sec=$MT;
    +			$Hqueue_seconds=$MT;
    +			$Hagent_sec=$MT;
    +			$Hpause_sec=$MT;
    +			$Htalk_sec=$MT;
    +			$Hcalls_count=$MT;
    +			$Hcalls_count_IN=$MT;
    +			$Hdrop_count=$MT;
    +			$Hdrop_count_OUT=$MT;
    +			$Hsystem_count=$MT;
    +			$Hagent_count=$MT;
    +			$Hptp_count=$MT;
    +			$Hrtp_count=$MT;
    +			$Hna_count=$MT;
    +			$Hanswer_count=$MT;
    +			$Hmax_queue_seconds=$MT;
    +			$hTOTALcalls =	0;
    +			$hANSWERcalls =	0;
    +			$hSUMagent =	0;
    +			$hSUMpause =	0;
    +			$hSUMtalk =		0;
    +			$hAVGtalk =		0;
    +			$hSUMqueue =	0;
    +			$hAVGqueue =	0;
    +			$hMAXqueue =	0;
    +			$hDROPcalls =	0;
    +			$hPRINT =		0;
    +			$hTOTcalls_count =			0;
    +			$hTOTsystem_count =			0;
    +			$hTOTagent_count =			0;
    +			$hTOTptp_count =			0;
    +			$hTOTrtp_count =			0;
    +			$hTOTna_count =				0;
    +			$hTOTanswer_count =			0;
    +			$hTOTagent_sec =			0;
    +			$hTOTpause_sec =			0;
    +			$hTOTtalk_sec =				0;
    +			$hTOTtalk_avg =				0;
    +			$hTOTqueue_seconds =		0;
    +			$hTOTqueue_avg =			0;
    +			$hTOTmax_queue_seconds =	0;
    +			$hTOTdrop_count =			0;
    +
    +			##### Parse through the agent time records to tally the time
    +			$p=0;
    +			while ($p < $s)
    +				{
    +				$call_date = explode(" ", $ATcall_date[$p]);
    +				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
    +				$epoch = $ATepoch[$p];
    +				$Cwday = date("w", $epoch);
    +
    +				$CTstart = $Gct_default_start . "00";
    +				$CTstop = $Gct_default_stop . "59";
    +
    +				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
    +					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
    +				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
    +					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
    +				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
    +					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
    +				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
    +					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
    +				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
    +					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
    +				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
    +					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
    +				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
    +					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
    +
    +				$Chour = date("G", $epoch);
    +				$Cmin = date("i", $epoch);
    +				if ($interval_count==96)
    +					{
    +					$ChourX = ($Chour * 4);
    +					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
    +					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
    +					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
    +					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
    +					$Chour = ($ChourX + $CminX);
    +					}
    +				if ($interval_count==48)
    +					{
    +					$ChourX = ($Chour * 2);
    +					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
    +					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
    +					$Chour = ($ChourX + $CminX);
    +					}
    +
    +				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
    +					{
    +					$agent_sec[$i] = ($agent_sec[$i] + $ATagent_sec[$p]);
    +					$Hagent_sec[$Chour] = ($Hagent_sec[$Chour] + $ATagent_sec[$p]);
    +					$pause_sec[$i] = ($pause_sec[$i] + $ATpause_sec[$p]);
    +					$Hpause_sec[$Chour] = ($Hpause_sec[$Chour] + $ATpause_sec[$p]);
    +
    +					$Hcalltime[$Chour]++;
    +
    +					if ($print_calls > 0)
    +						{
    +						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
    +						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
    +						}
    +					$q++;
    +					}
    +				else
    +					{$out_of_call_time++;}
    +				if ($DB)
    +					{echo "$Hcalltime[$Chour] | AGENT: $agent_sec[$i] PAUSE: $pause_sec[$i]\n";}
    +				$p++;
    +				}
    +
    +
    +
    +
    +
    +
    +			##### Parse through call records to tally the counts
    +			$p=0;
    +			while ($p < $u)
    +				{
    +				$call_date = explode(" ", $CPcall_date[$p]);
    +				$call_time = ereg_replace("[^0-9]","",$call_date[1]);
    +				$epoch = $CPepoch[$p];
    +				$Cwday = date("w", $epoch);
    +
    +				$CTstart = $Gct_default_start . "00";
    +				$CTstop = $Gct_default_stop . "59";
    +
    +				if ( ($Cwday == 0) and ( ($Gct_sunday_start > 0) and ($Gct_sunday_stop > 0) ) )
    +					{$CTstart = $Gct_sunday_start . "00";   $CTstop = $Gct_sunday_stop . "59";}
    +				if ( ($Cwday == 1) and ( ($Gct_monday_start > 0) and ($Gct_monday_stop > 0) ) )
    +					{$CTstart = $Gct_monday_start . "00";   $CTstop = $Gct_monday_stop . "59";}
    +				if ( ($Cwday == 2) and ( ($Gct_tuesday_start > 0) and ($Gct_tuesday_stop > 0) ) )
    +					{$CTstart = $Gct_tuesday_start . "00";   $CTstop = $Gct_tuesday_stop . "59";}
    +				if ( ($Cwday == 3) and ( ($Gct_wednesday_start > 0) and ($Gct_wednesday_stop > 0) ) )
    +					{$CTstart = $Gct_wednesday_start . "00";   $CTstop = $Gct_wednesday_stop . "59";}
    +				if ( ($Cwday == 4) and ( ($Gct_thursday_start > 0) and ($Gct_thursday_stop > 0) ) )
    +					{$CTstart = $Gct_thursday_start . "00";   $CTstop = $Gct_thursday_stop . "59";}
    +				if ( ($Cwday == 5) and ( ($Gct_friday_start > 0) and ($Gct_friday_stop > 0) ) )
    +					{$CTstart = $Gct_friday_start . "00";   $CTstop = $Gct_friday_stop . "59";}
    +				if ( ($Cwday == 6) and ( ($Gct_saturday_start > 0) and ($Gct_saturday_stop > 0) ) )
    +					{$CTstart = $Gct_saturday_start . "00";   $CTstop = $Gct_saturday_stop . "59";}
    +
    +				$Chour = date("G", $epoch);
    +				$Cmin = date("i", $epoch);
    +				if ($interval_count==96)
    +					{
    +					$ChourX = ($Chour * 4);
    +					if ($Cmin < 15) {$Cmin = "00"; $CminX = 0;}
    +					if ( ($Cmin >= 15) and ($Cmin < 30) ) {$Cmin = "15"; $CminX = 1;}
    +					if ( ($Cmin >= 30) and ($Cmin < 45) ) {$Cmin = "30"; $CminX = 2;}
    +					if ($Cmin >= 45) {$Cmin = "45"; $CminX = 3;}
    +					$Chour = ($ChourX + $CminX);
    +					}
    +				if ($interval_count==48)
    +					{
    +					$ChourX = ($Chour * 2);
    +					if ($Cmin < 30) {$Cmin = "00"; $CminX = 0;}
    +					if ($Cmin >= 30) {$Cmin = "30"; $CminX = 1;}
    +					$Chour = ($ChourX + $CminX);
    +					}
    +
    +				if ( ($call_time > $CTstart) and ($call_time < $CTstop) )
    +					{
    +					$calls_count[$i]++;
    +					$length_in_sec[$i] =	($length_in_sec[$i] + $CPlength_in_sec[$p]);
    +					$Hlength_in_sec[$Chour] =	($Hlength_in_sec[$Chour] + $row[1]);
    +					$Hqueue_seconds[$Chour] =	($Hqueue_seconds[$Chour] + $row[2]);
    +					$TEMPtalk = $CPlength_in_sec[$p];
    +					if ($TEMPtalk < 0) {$TEMPtalk = 0;}
    +					$talk_sec[$i] =	($talk_sec[$i] + $TEMPtalk);
    +					$Htalk_sec[$Chour] =	($Htalk_sec[$Chour] + $TEMPtalk);
    +
    +					$Hcalls_count[$Chour]++;
    +					if (eregi("DROP",$CPstatus[$p]))
    +						{
    +						if ($CPin_out[$p] == 'OUT')
    +							{
    +							$drop_count_OUT[$i]++;
    +							$Hdrop_count_OUT[$Chour]++;
    +							}
    +						$drop_count[$i]++;
    +						$Hdrop_count[$Chour]++;
    +						}
    +					else
    +						{
    +						$answer_count[$i]++;
    +						$Hanswer_count[$Chour]++;
    +						}
    +					if (eregi("\|$CPstatus[$p]\|",'|NA|NEW|QUEUE|INCALL|DROP|XDROP|AA|AM|AL|AFAX|AB|ADC|DNCL|DNCC|PU|PM|SVYEXT|SVYHU|SVYVM|SVYREC|QVMAIL|'))
    +						{
    +						$system_count[$i]++;
    +						$Hsystem_count[$Chour]++;
    +						}
    +					else
    +						{
    +						$agent_count[$i]++;
    +						$Hagent_count[$Chour]++;
    +						}
    +					if ($CPstatus[$p] == 'NA')
    +						{
    +						$na_count[$i]++;
    +						$Hna_count[$Chour]++;
    +						}
    +					if ($CPin_out[$p] == 'IN')
    +						{
    +						$calls_count_IN[$i]++;
    +						$Hcalls_count_IN[$Chour]++;
    +						}
    +
    +					$k=0;
    +					while($k < $sale_ct)
    +						{
    +						if ($sale_statusesLIST[$k] == $CPstatus[$p])
    +							{
    +							$ptp_count[$i]++;
    +							$Hptp_count[$Chour]++;
    +							}
    +						$k++;
    +						}
    +
    +					$k=0;
    +					while($k < $dnc_ct)
    +						{
    +						if ($dnc_statusesLIST[$k] == $CPstatus[$p])
    +							{
    +							$rtp_count[$i]++;
    +							$Hrtp_count[$Chour]++;
    +							}
    +						$k++;
    +						}
    +
    +					$Hcalltime[$Chour]++;
    +					
    +
    +					if ($print_calls > 0)
    +						{
    +						echo "$row[5]\t$row[6]\t$TEMPtalk\n";
    +						$PCtemptalk = ($PCtemptalk + $TEMPtalk);
    +						}
    +					$q++;
    +					}
    +				else
    +					{$out_of_call_time++;}
    +				if ($DB)
    +					{echo "$call_time > $CTstart | $call_time < $CTstop | $Cwday | $Chour | $Hcalltime[$Chour] | $talk_sec[$i]\n";}
    +				$p++;
    +				}
    +
    +
    +			if ( ($answer_count[$i] > 0) and ($talk_sec[$i] > 0) )
    +				{$talk_avg[$i] = ($talk_sec[$i] / $answer_count[$i]);}
    +			else
    +				{$talk_avg[$i] = 0;}
    +			if ( ($calls_count[$i] > 0) and ($queue_seconds[$i] > 0) )
    +				{$queue_avg[$i] = ($queue_seconds[$i] / $calls_count[$i]);}
    +			else
    +				{$queue_avg[$i] = 0;}
    +
    +			if ($print_calls > 0)
    +				{
    +				$PCtemptalkmin = ($PCtemptalk  / 60);
    +				echo "$q\t$PCtemptalk\t$PCtemptalkmin\n";
    +				}
    +
    +			if ( ($calls_count_IN[$i] > 0) and ($drop_count_OUT[$i] > 0) )
    +				{
    +				$drop_count[$i] = ($drop_count[$i] - $calls_count_IN[$i]);
    +				$calls_count[$i] = ($calls_count[$i] - $calls_count_IN[$i]);
    +				$system_count[$i] = ($system_count[$i] - $calls_count_IN[$i]);
    +				if ($drop_count[$i] < 0)
    +					{$drop_count[$i] = 0;}
    +				}
    +			$TOTcalls_count =			($TOTcalls_count + $calls_count[$i]);
    +			$TOTsystem_count =			($TOTsystem_count + $system_count[$i]);
    +			$TOTagent_count =			($TOTagent_count + $agent_count[$i]);
    +			$TOTptp_count =				($TOTptp_count + $ptp_count[$i]);
    +			$TOTrtp_count =				($TOTrtp_count + $rtp_count[$i]);
    +			$TOTna_count =				($TOTna_count + $na_count[$i]);
    +			$TOTanswer_count =			($TOTanswer_count + $answer_count[$i]);
    +			$TOTagent_sec =				($TOTagent_sec + $agent_sec[$i]);
    +			$TOTpause_sec =				($TOTpause_sec + $pause_sec[$i]);
    +			$TOTtalk_sec =				($TOTtalk_sec + $talk_sec[$i]);
    +			$TOTqueue_seconds =			($TOTqueue_seconds + $queue_seconds[$i]);
    +			$TOTdrop_count =			($TOTdrop_count + $drop_count[$i]);
    +			if ($max_queue_seconds[$i] > $TOTmax_queue_seconds)
    +				{$TOTmax_queue_seconds = $max_queue_seconds[$i];}
    +
    +			$agent_sec[$i] =			sec_convert($agent_sec[$i],'H'); 
    +			$pause_sec[$i] =			sec_convert($pause_sec[$i],'H'); 
    +			$talk_sec[$i] =				sec_convert($talk_sec[$i],'H'); 
    +			$talk_avg[$i] =				sec_convert($talk_avg[$i],'H'); 
    +			$queue_seconds[$i] =		sec_convert($queue_seconds[$i],'H'); 
    +			$queue_avg[$i] =			sec_convert($queue_avg[$i],'H'); 
    +			$max_queue_seconds[$i] =	sec_convert($max_queue_seconds[$i],'H'); 
    +
    +
    +			$groupDISPLAY =	sprintf("%-40s", "$group[$i] - $group_cname[$i]");
    +			$gTOTALcalls =	sprintf("%6s", $calls_count[$i]);
    +			$gSYSTEMcalls =	sprintf("%6s", $system_count[$i]);
    +			$gAGENTcalls =	sprintf("%6s", $agent_count[$i]);
    +			$gPTPcalls =	sprintf("%6s", $ptp_count[$i]);
    +			$gRTPcalls =	sprintf("%6s", $rtp_count[$i]);
    +			if ( ($calls_count[$i] < 1) or ($na_count[$i] < 1) )
    +				{$gNApercent=0;}
    +			else
    +				{$gNApercent = ( ($na_count[$i] / $calls_count[$i]) * 100);}
    +			$gNApercent =	sprintf("%6.2f",$gNApercent);
    +			$gNAcalls =		sprintf("%6s", $na_count[$i]);
    +			$gANSWERcalls =	sprintf("%6s", $answer_count[$i]);
    +			$gSUMagent =	sprintf("%10s", $agent_sec[$i]);
    +			$gSUMpause =	sprintf("%10s", $pause_sec[$i]);
    +			$gSUMtalk =		sprintf("%9s", $talk_sec[$i]);
    +			$gAVGtalk =		sprintf("%7s", $talk_avg[$i]);
    +			$gSUMqueue =	sprintf("%9s", $queue_seconds[$i]);
    +			$gAVGqueue =	sprintf("%7s", $queue_avg[$i]);
    +			$gMAXqueue =	sprintf("%7s", $max_queue_seconds[$i]);
    +			if ( ($calls_count[$i] < 1) or ($drop_count[$i] < 1) )
    +				{$gDROPpercent=0;}
    +			else
    +				{$gDROPpercent = ( ($drop_count[$i] / $calls_count[$i]) * 100);}
    +			$gDROPpercent =		sprintf("%6.2f",$gDROPpercent);
    +			$gDROPcalls =	sprintf("%6s", $drop_count[$i]);
    +
    +			while(strlen($groupDISPLAY)>40) {$groupDISPLAY = substr("$groupDISPLAY", 0, -1);}
    +
    +			$MAIN .= "| $groupDISPLAY | $gTOTALcalls | $gSYSTEMcalls | $gAGENTcalls | $gPTPcalls | $gRTPcalls | $gNApercent%| $gDROPpercent%| $gSUMagent | $gSUMpause |";
    +			if ($DB) {$MAIN .= " $gDROPcalls($calls_count_IN[$i]/$drop_count_OUT[$i]) |";}
    +			$MAIN .= "\n";
    +
    +			### hour by hour sumaries
    +			$SUBoutput .= "\n---------- $group[$i] - $group_cname[$i]     INTERVAL BREAKDOWN:\n";
    +			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
    +			$SUBoutput .= "|                     |        | SYSTEM | AGENT  |        |        | NO     |        | AGENT      | AGENT      |\n";
    +			$SUBoutput .= "|                     | TOTAL  | RELEASE| RELEASE| SALE   | DNC    | ANSWER | DROP   | LOGIN      | PAUSE      |\n";
    +			$SUBoutput .= "| INTERVAL            | CALLS  | CALLS  | CALLS  | CALLS  | CALLS  | PERCENT| PERCENT| TIME(H:M:S)| TIME(H:M:S)|\n";
    +			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
    +
    +			$h=0;
    +			while ($h < $interval_count)
    +				{
    +				if ($Hcalltime[$h] > 0)
    +					{
    +					if (strlen($Hcalls_count[$h]) < 1)			{$Hcalls_count[$h] = 0;}
    +					if (strlen($Hsystem_count[$h]) < 1)			{$Hsystem_count[$h] = 0;}
    +					if (strlen($Hagent_count[$h]) < 1)			{$Hagent_count[$h] = 0;}
    +					if (strlen($Hptp_count[$h]) < 1)			{$Hptp_count[$h] = 0;}
    +					if (strlen($Hrtp_count[$h]) < 1)			{$Hrtp_count[$h] = 0;}
    +					if (strlen($Hna_count[$h]) < 1)				{$Hna_count[$h] = 0;}
    +					if (strlen($Hanswer_count[$h]) < 1)			{$Hanswer_count[$h] = 0;}
    +					if (strlen($Hagent_sec[$h]) < 1)			{$Hagent_sec[$h] = 0;}
    +					if (strlen($Hpause_sec[$h]) < 1)			{$Hpause_sec[$h] = 0;}
    +					if (strlen($Htalk_sec[$h]) < 1)				{$Htalk_sec[$h] = 0;}
    +					if (strlen($Hqueue_seconds[$h]) < 1)		{$Hqueue_seconds[$h] = 0;}
    +					if (strlen($Hmax_queue_seconds[$h]) < 1)	{$Hmax_queue_seconds[$h] = 0;}
    +					if (strlen($Hdrop_count[$h]) < 1)			{$Hdrop_count[$h] = 0;}
    +
    +					if ( ($Hcalls_count_IN[$h] > 0) and ($Hdrop_count_OUT[$h] > 0) )
    +						{
    +						$Hdrop_count[$h] = ($Hdrop_count[$h] - $Hcalls_count_IN[$h]);
    +						$Hcalls_count[$h] = ($Hcalls_count[$h] - $Hcalls_count_IN[$h]);
    +						$Hsystem_count[$h] = ($Hsystem_count[$h] - $Hcalls_count_IN[$h]);
    +						if ($Hdrop_count[$h] < 0)
    +							{$Hdrop_count[$h] = 0;}
    +						}
    +					$hTOTcalls_count =			($hTOTcalls_count + $Hcalls_count[$h]);
    +					$hTOTsystem_count =			($hTOTsystem_count + $Hsystem_count[$h]);
    +					$hTOTagent_count =			($hTOTagent_count + $Hagent_count[$h]);
    +					$hTOTptp_count =			($hTOTptp_count + $Hptp_count[$h]);
    +					$hTOTrtp_count =			($hTOTrtp_count + $Hrtp_count[$h]);
    +					$hTOTna_count =				($hTOTna_count + $Hna_count[$h]);
    +					$hTOTanswer_count =			($hTOTanswer_count + $Hanswer_count[$h]);
    +					$hTOTagent_sec =			($hTOTagent_sec + $Hagent_sec[$h]);
    +					$hTOTpause_sec =			($hTOTpause_sec + $Hpause_sec[$h]);
    +					$hTOTtalk_sec =				($hTOTtalk_sec + $Htalk_sec[$h]);
    +					$hTOTqueue_seconds =		($hTOTqueue_seconds + $Hqueue_seconds[$h]);
    +					$hTOTdrop_count =			($hTOTdrop_count + $Hdrop_count[$h]);
    +					if ($Hmax_queue_seconds[$h] > $hTOTmax_queue_seconds)
    +						{$hTOTmax_queue_seconds = $Hmax_queue_seconds[$h];}
    +
    +					if ( ($Hanswer_count[$h] > 0) and ($Htalk_sec[$h] > 0) )
    +						{$Htalk_avg[$h] = ($Htalk_sec[$h] / $Hanswer_count[$h]);}
    +					else
    +						{$Htalk_avg[$h] = 0;}
    +					if ( ($Hcalls_count[$h] > 0) and ($Hqueue_seconds[$h] > 0) )
    +						{$Hqueue_avg[$h] = ($Hqueue_seconds[$h] / $Hcalls_count[$h]);}
    +					else
    +						{$Hqueue_avg[$h] = 0;}
    +
    +					$Hagent_sec[$h] =			sec_convert($Hagent_sec[$h],'H'); 
    +					$Hpause_sec[$h] =			sec_convert($Hpause_sec[$h],'H'); 
    +					$Htalk_sec[$h] =			sec_convert($Htalk_sec[$h],'H'); 
    +					$Htalk_avg[$h] =			sec_convert($Htalk_avg[$h],'H'); 
    +					$Hqueue_seconds[$h] =		sec_convert($Hqueue_seconds[$h],'H'); 
    +					$Hqueue_avg[$h] =			sec_convert($Hqueue_avg[$h],'H'); 
    +					$Hmax_queue_seconds[$h] =	sec_convert($Hmax_queue_seconds[$h],'H');
    +					
    +					$hTOTALcalls =	sprintf("%6s", $Hcalls_count[$h]);
    +					$hSYSTEMcalls =	sprintf("%6s", $Hsystem_count[$h]);
    +					$hAGENTcalls =	sprintf("%6s", $Hagent_count[$h]);
    +					$hPTPcalls =	sprintf("%6s", $Hptp_count[$h]);
    +					$hRTPcalls =	sprintf("%6s", $Hrtp_count[$h]);
    +					if ( ($Hcalls_count[$h] < 1) or ($Hna_count[$h] < 1) )
    +						{$hNApercent=0;}
    +					else
    +						{$hNApercent = ( ($Hna_count[$h] / $Hcalls_count[$h]) * 100);}
    +					$hNApercent =		sprintf("%6.2f",$hNApercent);
    +					$hNAcalls =		sprintf("%6s", $Hna_count[$h]);
    +					$hANSWERcalls =	sprintf("%6s", $Hanswer_count[$h]);
    +					$hSUMagent =	sprintf("%10s", $Hagent_sec[$h]);
    +					$hSUMpause =	sprintf("%10s", $Hpause_sec[$h]);
    +					$hSUMtalk =		sprintf("%9s", $Htalk_sec[$h]);
    +					$hAVGtalk =		sprintf("%7s", $Htalk_avg[$h]);
    +					$hSUMqueue =	sprintf("%9s", $Hqueue_seconds[$h]);
    +					$hAVGqueue =	sprintf("%7s", $Hqueue_avg[$h]);
    +					$hMAXqueue =	sprintf("%7s", $Hmax_queue_seconds[$h]);
    +					if ( ($Hcalls_count[$h] < 1) or ($Hdrop_count[$h] < 1) )
    +						{$hDROPpercent=0;}
    +					else
    +						{$hDROPpercent = ( ($Hdrop_count[$h] / $Hcalls_count[$h]) * 100);}
    +					$hDROPpercent =		sprintf("%6.2f",$hDROPpercent);
    +					$hDROPcalls =	sprintf("%6s", $Hdrop_count[$h]);
    +					$hPRINT =		sprintf("%19s", $Hcalltime_HHMM[$h]);
    +
    +					$SUBoutput .= "| $hPRINT | $hTOTALcalls | $hSYSTEMcalls | $hAGENTcalls | $hPTPcalls | $hRTPcalls | $hNApercent%| $hDROPpercent%| $hSUMagent | $hSUMpause |\n";
    +					if ($DB) {$SUBoutput .= " $hDROPcalls($Hcalls_count_IN[$h]/$Hdrop_count_OUT[$h]) |\n";}
    +					}
    +
    +				$h++;
    +				}
    +
    +			if ( ($hTOTanswer_count > 0) and ($hTOTtalk_sec > 0) )
    +				{$hTOTtalk_avg = ($hTOTtalk_sec / $hTOTanswer_count);}
    +			else
    +				{$hTOTtalk_avg = 0;}
    +			if ( ($hTOTcalls_count > 0) and ($hTOTqueue_seconds > 0) )
    +				{$hTOTqueue_avg = ($hTOTqueue_seconds / $hTOTcalls_count);}
    +			else
    +				{$hTOTqueue_avg = 0;}
    +
    +			$hTOTagent_sec =			sec_convert($hTOTagent_sec,'H'); 
    +			$hTOTpause_sec =			sec_convert($hTOTpause_sec,'H'); 
    +			$hTOTtalk_sec =				sec_convert($hTOTtalk_sec,'H'); 
    +			$hTOTtalk_avg =				sec_convert($hTOTtalk_avg,'H'); 
    +			$hTOTqueue_seconds =		sec_convert($hTOTqueue_seconds,'H'); 
    +			$hTOTqueue_avg =			sec_convert($hTOTqueue_avg,'H'); 
    +			$hTOTmax_queue_seconds =	sec_convert($hTOTmax_queue_seconds,'H'); 
    +
    +			$hTOTcalls_count =			sprintf("%6s", $hTOTcalls_count);
    +			$hTOTsystem_count =			sprintf("%6s", $hTOTsystem_count);
    +			$hTOTagent_count =			sprintf("%6s", $hTOTagent_count);
    +			$hTOTptp_count =			sprintf("%6s", $hTOTrtp_count);
    +			$hTOTrtp_count =			sprintf("%6s", $hTOTptp_count);
    +			if ( ($hTOTcalls_count < 1) or ($hTOTna_count < 1) )
    +				{$hTOTna_percent=0;}
    +			else
    +				{$hTOTna_percent = ( ($hTOTna_count / $hTOTcalls_count) * 100);}
    +			$hTOTna_percent =			sprintf("%6.2f",$hTOTna_percent);
    +			$hTOTna_count =				sprintf("%6s", $hTOTna_count);
    +			$hTOTanswer_count =			sprintf("%6s", $hTOTanswer_count);
    +			$hTOTagent_sec =			sprintf("%10s", $hTOTagent_sec);
    +			$hTOTpause_sec =			sprintf("%10s", $hTOTpause_sec);
    +			$hTOTtalk_sec =				sprintf("%9s", $hTOTtalk_sec);
    +			$hTOTtalk_avg =				sprintf("%7s", $hTOTtalk_avg);
    +			$hTOTqueue_seconds =		sprintf("%9s", $hTOTqueue_seconds);
    +			$hTOTqueue_avg =			sprintf("%7s", $hTOTqueue_avg);
    +			$hTOTmax_queue_seconds =	sprintf("%7s", $hTOTmax_queue_seconds);
    +			if ( ($hTOTcalls_count < 1) or ($hTOTdrop_count < 1) )
    +				{$hTOTdrop_percent=0;}
    +			else
    +				{$hTOTdrop_percent = ( ($hTOTdrop_count / $hTOTcalls_count) * 100);}
    +			$hTOTdrop_percent =			sprintf("%6.2f",$hTOTdrop_percent);
    +			$hTOTdrop_count =			sprintf("%6s", $hTOTdrop_count);
    +
    +			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
    +			$SUBoutput .= "| TOTALS              | $hTOTcalls_count | $hTOTsystem_count | $hTOTagent_count | $hTOTptp_count | $hTOTrtp_count | $hTOTna_percent%| $hTOTdrop_percent%| $hTOTagent_sec | $hTOTpause_sec |\n";
    +			$SUBoutput .= "+---------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
    +
    +			$i++;
    +			}
    +
    +		$rawTOTtalk_sec = $TOTtalk_sec;
    +		$rawTOTtalk_min = round($rawTOTtalk_sec / 60);
    +
    +		if ( ($TOTanswer_count > 0) and ($TOTtalk_sec > 0) )
    +			{$TOTtalk_avg = ($TOTtalk_sec / $TOTanswer_count);}
    +		else
    +			{$TOTtalk_avg = 0;}
    +		if ( ($TOTcalls_count > 0) and ($TOTqueue_seconds > 0) )
    +			{$TOTqueue_avg = ($TOTqueue_seconds / $TOTcalls_count);}
    +		else
    +			{$TOTqueue_avg = 0;}
    +
    +		$TOTagent_sec =			sec_convert($TOTagent_sec,'H'); 
    +		$TOTpause_sec =			sec_convert($TOTpause_sec,'H'); 
    +		$TOTtalk_sec =			sec_convert($TOTtalk_sec,'H'); 
    +		$TOTtalk_avg =			sec_convert($TOTtalk_avg,'H'); 
    +		$TOTqueue_seconds =		sec_convert($TOTqueue_seconds,'H'); 
    +		$TOTqueue_avg =			sec_convert($TOTqueue_avg,'H'); 
    +		$TOTmax_queue_seconds =	sec_convert($TOTmax_queue_seconds,'H'); 
    +
    +		$i =					sprintf("%4s", $i);
    +		$TOTcalls_count =		sprintf("%6s", $TOTcalls_count);
    +		$TOTsystem_count =		sprintf("%6s", $TOTsystem_count);
    +		$TOTagent_count =		sprintf("%6s", $TOTagent_count);
    +		$TOTptp_count =			sprintf("%6s", $TOTptp_count);
    +		$TOTrtp_count =			sprintf("%6s", $TOTrtp_count);
    +		if ( ($TOTcalls_count < 1) or ($TOTna_count < 1) )
    +			{$TOTna_percent=0;}
    +		else
    +			{$TOTna_percent = ( ($TOTna_count / $TOTcalls_count) * 100);}
    +		$TOTna_percent =		sprintf("%6.2f",$TOTna_percent);
    +		$TOTna_count =			sprintf("%6s", $TOTna_count);
    +		$TOTanswer_count =		sprintf("%6s", $TOTanswer_count);
    +		$TOTagent_sec =			sprintf("%10s", $TOTagent_sec);
    +		$TOTpause_sec =			sprintf("%10s", $TOTpause_sec);
    +		$TOTtalk_sec =			sprintf("%9s", $TOTtalk_sec);
    +		$TOTtalk_avg =			sprintf("%7s", $TOTtalk_avg);
    +		$TOTqueue_seconds =		sprintf("%9s", $TOTqueue_seconds);
    +		$TOTqueue_avg =			sprintf("%7s", $TOTqueue_avg);
    +		$TOTmax_queue_seconds =	sprintf("%7s", $TOTmax_queue_seconds);
    +		if ( ($TOTcalls_count < 1) or ($TOTdrop_count < 1) )
    +			{$TOTdrop_percent=0;}
    +		else
    +			{$TOTdrop_percent = ( ($TOTdrop_count / $TOTcalls_count) * 100);}
    +		$TOTdrop_percent =		sprintf("%6.2f",$TOTdrop_percent);
    +		$TOTdrop_count =		sprintf("%6s", $TOTdrop_count);
    +
    +		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
    +		$MAIN .= "| TOTALS       Campaigns: $i             | $TOTcalls_count | $TOTsystem_count | $TOTagent_count | $TOTptp_count | $TOTrtp_count | $TOTna_percent%| $TOTdrop_percent%| $TOTagent_sec | $TOTpause_sec |\n";
    +		$MAIN .= "+------------------------------------------+--------+--------+--------+--------+--------+--------+--------+------------+------------+\n";
    +		}
    +
    +	if ($costformat > 0)
    +		{
    +		echo "
    \n"; + $inbound_cost = ($rawTOTtalk_min * $inbound_rate); + $inbound_cost = sprintf("%8.2f", $inbound_cost); + + echo "INBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$inbound_rate = \$$inbound_cost\n"; + + exit; + } + + + echo "$MAIN"; + echo "$SUBoutput"; + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\n\nRun Time: $RUNtime seconds\n"; + } + + + + +?> + +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_VDADstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_VDADstats.php new file mode 100644 index 00000000..ffdb8869 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_VDADstats.php @@ -0,0 +1,1412 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 60619-1718 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 61215-1139 - Added drop percentage of answered and round-2 decimal +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71218-1155 - Added end_date for multi-day reports +# 80430-1920 - Added Customer hangup cause stats +# 80620-0031 - Fixed human answered calculation for drop perfentage +# 80709-0230 - Added time stats to call statuses +# 80717-2118 - Added calls/hour out of agent login time in status summary +# 80722-2049 - Added Status Category stats +# 81109-2341 - Added Productivity Rating +# 90225-1140 - Changed to multi-campaign capability +# 90310-2034 - Admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90608-0251 - Added optional carrier codes stats, made graph at bottom optional +# 90806-0001 - Added CI(Customer Interaction/Human Answered) stats, added option to add inbound rollover stats to these +# 90827-1154 - Added List ID breakdown of calls +# 91222-0843 - Fixed ALL-CAMPAIGNS inbound rollover issue(bug #262), and some other bugs +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["print_calls"])) {$print_calls=$_GET["print_calls"];} + elseif (isset($_POST["print_calls"])) {$print_calls=$_POST["print_calls"];} +if (isset($_GET["outbound_rate"])) {$outbound_rate=$_GET["outbound_rate"];} + elseif (isset($_POST["outbound_rate"])) {$outbound_rate=$_POST["outbound_rate"];} +if (isset($_GET["costformat"])) {$costformat=$_GET["costformat"];} + elseif (isset($_POST["costformat"])) {$costformat=$_POST["costformat"];} +if (isset($_GET["include_rollover"])) {$include_rollover=$_GET["include_rollover"];} + elseif (isset($_POST["include_rollover"])) {$include_rollover=$_POST["include_rollover"];} +if (isset($_GET["carrier_stats"])) {$carrier_stats=$_GET["carrier_stats"];} + elseif (isset($_POST["carrier_stats"])) {$carrier_stats=$_POST["carrier_stats"];} +if (isset($_GET["bottom_graph"])) {$bottom_graph=$_GET["bottom_graph"];} + elseif (isset($_POST["bottom_graph"])) {$bottom_graph=$_POST["bottom_graph"];} +if (isset($_GET["agent_hours"])) {$agent_hours=$_GET["agent_hours"];} + elseif (isset($_POST["agent_hours"])) {$agent_hours=$_POST["agent_hours"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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); + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($bottom_graph)<2) {$bottom_graph='NO';} +if (strlen($carrier_stats)<2) {$carrier_stats='NO';} +if (strlen($include_rollover)<2) {$include_rollover='NO';} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +##### SERVER CARRIER LOGGING LOOKUP ##### +$stmt = "SELECT count(*) FROM servers where carrier_logging_active='Y' and max_vicidial_trunks > 0;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$srv_conf_ct = mysql_num_rows($rslt); +if ($srv_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $carrier_logging_active = $row[0]; + } + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level >= 7 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $i++; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + if (ereg("--ALL",$group_string) ) + {$group[$i] = $groups[$i];} + $i++; + } + +$rollover_groups_count=0; +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + + if (eregi("YES",$include_rollover)) + { + $stmt="select drop_inbound_group from vicidial_campaigns where campaign_id='$group[$i]' and drop_inbound_group NOT LIKE \"%NONE%\" and drop_inbound_group is NOT NULL and drop_inbound_group != '';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $in_groups_to_print = mysql_num_rows($rslt); + if ($in_groups_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $group_drop_SQL .= "'$row[0]',"; + + $rollover_groups_count++; + } + } + + $i++; + } +if (strlen($group_drop_SQL) < 2) + {$group_drop_SQL = "''";} +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = ""; + $group_drop_SQL = ""; + } +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_drop_SQL = eregi_replace(",$",'',$group_drop_SQL); + $both_group_SQLand = "and ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $both_group_SQL = "where ( (campaign_id IN($group_drop_SQL)) or (campaign_id IN($group_SQL)) )"; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQL = "where campaign_id IN($group_SQL)"; + $group_drop_SQLand = "and campaign_id IN($group_drop_SQL)"; + $group_drop_SQL = "where campaign_id IN($group_drop_SQL)"; + } + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "'$row[0]',"; + $i++; + } +if (strlen($customer_interactive_statuses)>2) + {$customer_interactive_statuses = substr("$customer_interactive_statuses", 0, -1);} +else + {$customer_interactive_statuses="''";} + +?> + + + + + +\n"; +echo "Outbound Stats\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
    "; + +echo "
    \n"; +echo "
    Dates:
    "; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    to
    \n"; +echo "
    Campaigns:
    "; +echo "\n"; +echo "
    "; +echo "Include Drop  
    Rollover:
    "; +echo "\n"; +echo "
    Bottom Graph:  
    \n"; +echo "
    \n"; +if ($carrier_logging_active > 0) + { + echo "
    Carrier Stats:  
    "; + echo "\n"; + } +echo "
    Shift:  
    "; +echo "

    \n"; +echo "\n"; +echo "
            "; +echo ""; +if (strlen($group[0]) > 1) + { + echo " MODIFY | \n"; + echo " REPORTS \n"; + } +else + { + echo " CAMPAIGNS | \n"; + echo " REPORTS \n"; + } +echo "
    "; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if (strlen($group[0]) < 1)
    +	{
    +	echo "\n\n";
    +	echo "PLEASE SELECT A CAMPAIGN AND DATE ABOVE AND CLICK SUBMIT\n";
    +	}
    +
    +else
    +	{
    +	if ($shift == 'AM') 
    +		{
    +		$time_BEGIN=$AM_shift_BEGIN;
    +		$time_END=$AM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +		}
    +	if ($shift == 'PM') 
    +		{
    +		$time_BEGIN=$PM_shift_BEGIN;
    +		$time_END=$PM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +		}
    +	if ($shift == 'ALL') 
    +		{
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +		}
    +	$query_date_BEGIN = "$query_date $time_BEGIN";   
    +	$query_date_END = "$end_date $time_END";
    +
    +
    +	$OUToutput = '';
    +	$OUToutput .= "Outbound Calling Stats                             $NOW_TIME\n";
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +	$OUToutput .= "---------- TOTALS\n";
    +
    +	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTALcallsRAW = $row[0];
    +	$TOTALsec =		$row[1];
    +	$inTOTALcallsRAW=0;
    +	if (eregi("YES",$include_rollover))
    +		{
    +		$length_in_secZ=0;
    +		$queue_secondsZ=0;
    +		$agent_alert_delayZ=0;
    +		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$INallcalls_to_printZ = mysql_num_rows($rslt);
    +		$y=0;
    +		while ($y < $INallcalls_to_printZ)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +
    +			$length_in_secZ = $row[0];
    +			$queue_secondsZ = $row[1];
    +			$agent_alert_delayZ = $row[2];
    +
    +			$TOTALdelay =		round($agent_alert_delayZ / 1000);
    +			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $TOTALdelay);
    +			if ($thiscallsec < 0)
    +				{$thiscallsec = 0;}
    +			$inTOTALsec =	($inTOTALsec + $thiscallsec);	
    +
    +			$y++;
    +			}
    +
    +		$inTOTALcallsRAW =	$y;
    +		$TOTALsec = ($TOTALsec + $inTOTALsec);
    +		$inTOTALcalls =	sprintf("%10s", $inTOTALcallsRAW);
    +		}
    +
    +	$TOTALcalls =	sprintf("%10s", $TOTALcallsRAW);
    +	if ( ($row[0] < 1) or ($TOTALsec < 1) )
    +		{$average_call_seconds = '         0';}
    +	else
    +		{
    +		$average_call_seconds = ($TOTALsec / $TOTALcallsRAW);
    +		$average_call_seconds = round($average_call_seconds, 2);
    +		$average_call_seconds =	sprintf("%10s", $average_call_seconds);
    +		}
    +
    +	$OUToutput .= "Total Calls placed from this Campaign:        $TOTALcalls\n";
    +	$OUToutput .= "Average Call Length for all Calls in seconds: $average_call_seconds\n";
    +	if (eregi("YES",$include_rollover))
    +		{$OUToutput .= "Calls that went to rollover In-Group:         $inTOTALcalls\n";}
    +
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "---------- HUMAN ANSWERS\n";
    +
    +	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status IN($customer_interactive_statuses) $group_SQLand;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$CIcallsRAW =	$row[0];
    +	$CIsec =		$row[1];
    +
    +	if (eregi("YES",$include_rollover))
    +		{
    +		$length_in_secZ=0;
    +		$queue_secondsZ=0;
    +		$agent_alert_delayZ=0;
    +		$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and vicidial_closer_log.status IN($customer_interactive_statuses) $group_drop_SQLand;";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$INallcalls_to_printZ = mysql_num_rows($rslt);
    +		$y=0;
    +		while ($y < $INallcalls_to_printZ)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +
    +			$length_in_secZ = $row[0];
    +			$queue_secondsZ = $row[1];
    +			$agent_alert_delayZ = $row[2];
    +
    +			$CIdelay =		round($agent_alert_delayZ / 1000);
    +			$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
    +			if ($thiscallsec < 0)
    +				{$thiscallsec = 0;}
    +			$inCIsec =	($inCIsec + $thiscallsec);	
    +
    +			$y++;
    +			}
    +
    +		$inCIcallsRAW =	$y;
    +		$CIsec = ($CIsec + $inCIsec);
    +		$CIcallsRAW = ($CIcallsRAW + $inCIcallsRAW);
    +		}
    +
    +	$CIcalls =	sprintf("%10s", $CIcallsRAW);
    +	if ( ($CIcallsRAW < 1) or ($CIsec < 1) )
    +		{$average_ci_seconds = '         0';}
    +	else
    +		{
    +		$average_ci_seconds = ($CIsec / $CIcallsRAW);
    +		$average_ci_seconds = round($average_ci_seconds, 2);
    +		$average_ci_seconds =	sprintf("%10s", $average_ci_seconds);
    +		}
    +	$CIsec =		sec_convert($CIsec,'H'); 
    +
    +
    +	$OUToutput .= "Total Human Answered calls for this Campaign: $CIcalls\n";
    +	$OUToutput .= "Average Call Length for all HA in seconds:    $average_ci_seconds     Total Time: $CIsec\n";
    +
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "---------- DROPS\n";
    +
    +	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status='DROP' and (length_in_sec <= 6000 or length_in_sec is null);";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$DROPcalls =	sprintf("%10s", $row[0]);
    +	$DROPcallsRAW =	$row[0];
    +	$DROPseconds =	$row[1];
    +
    +
    +	# GET LIST OF ALL STATUSES and create SQL from human_answered statuses
    +	$q=0;
    +	$stmt = "SELECT status,status_name,human_answered,category from vicidial_statuses;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$statuses_to_print = mysql_num_rows($rslt);
    +	$p=0;
    +	while ($p < $statuses_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$status[$q] =			$row[0];
    +		$status_name[$q] =		$row[1];
    +		$human_answered[$q] =	$row[2];
    +		$category[$q] =			$row[3];
    +		$statname_list["$status[$q]"] = "$status_name[$q]";
    +		$statcat_list["$status[$q]"] = "$category[$q]";
    +		if ($human_answered[$q]=='Y')
    +			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
    +		$q++;
    +		$p++;
    +		}
    +
    +	$stmt = "SELECT distinct status,status_name,human_answered,category from vicidial_campaign_statuses $group_SQL;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$statuses_to_print = mysql_num_rows($rslt);
    +	$p=0;
    +	while ($p < $statuses_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$status[$q] =			$row[0];
    +		$status_name[$q] =		$row[1];
    +		$human_answered[$q] =	$row[2];
    +		$category[$q] =			$row[3];
    +		$statname_list["$status[$q]"] = "$status_name[$q]";
    +		$statcat_list["$status[$q]"] = "$category[$q]";
    +		if ($human_answered[$q]=='Y')
    +			{$camp_ANS_STAT_SQL .=	 "'$row[0]',";}
    +		$q++;
    +		$p++;
    +		}
    +	$camp_ANS_STAT_SQL = eregi_replace(",$",'',$camp_ANS_STAT_SQL);
    +
    +
    +	$stmt="select count(*) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN($camp_ANS_STAT_SQL);";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$ANSWERcalls =	$row[0];
    +
    +	if ( ($DROPcalls < 1) or ($TOTALcalls < 1) )
    +		{$DROPpercent = '0';}
    +	else
    +		{
    +		$DROPpercent = (($DROPcallsRAW / $TOTALcalls) * 100);
    +		$DROPpercent = round($DROPpercent, 2);
    +		}
    +
    +	if ( ($DROPcalls < 1) or ($ANSWERcalls < 1) )
    +		{$DROPANSWERpercent = '0';}
    +	else
    +		{
    +		$DROPANSWERpercent = (($DROPcallsRAW / $ANSWERcalls) * 100);
    +		$DROPANSWERpercent = round($DROPANSWERpercent, 2);
    +		}
    +
    +	if ( ($DROPseconds < 1) or ($DROPcallsRAW < 1) )
    +		{$average_hold_seconds = '         0';}
    +	else
    +		{
    +		$average_hold_seconds = ($DROPseconds / $DROPcallsRAW);
    +		$average_hold_seconds = round($average_hold_seconds, 2);
    +		$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
    +		}
    +
    +	$OUToutput .= "Total Outbound DROP Calls:                    $DROPcalls  $DROPpercent%\n";
    +	$OUToutput .= "Percent of DROP Calls taken out of Answers:   $DROPcalls / $ANSWERcalls  $DROPANSWERpercent%\n";
    +
    +	if (eregi("YES",$include_rollover))
    +		{
    +		if ( ($DROPcalls < 1) or ($CIcallsRAW < 1) )
    +			{$inDROPANSWERpercent = '0';}
    +		else
    +			{
    +			$inDROPANSWERpercent = (($DROPcallsRAW / $CIcallsRAW) * 100);
    +			$inDROPANSWERpercent = round($inDROPANSWERpercent, 2);
    +			}
    +
    +		$OUToutput .= "Percent of DROP/Answer Calls with Rollover:   $DROPcalls / $CIcallsRAW  $inDROPANSWERpercent%\n";
    +		}
    +
    +	$OUToutput .= "Average Length for DROP Calls in seconds:     $average_hold_seconds\n";
    +
    +	$stmt = "select closer_campaigns from vicidial_campaigns $group_SQL;";
    +	$rslt=mysql_query($stmt, $link);
    +	$ccamps_to_print = mysql_num_rows($rslt);
    +	$c=0;
    +	while ($ccamps_to_print > $c)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$closer_campaigns = $row[0];
    +		$closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns);
    +		$closer_campaigns = preg_replace("/ /","','",$closer_campaigns);
    +		$closer_campaignsSQL .= "'$closer_campaigns',";
    +		$c++;
    +		}
    +	$closer_campaignsSQL = eregi_replace(",$",'',$closer_campaignsSQL);
    +
    +	$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id IN($closer_campaignsSQL) and status NOT IN('DROP','XDROP','HXFER','QVMAIL','HOLDTO','LIVE','QUEUE');";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$TOTALanswers = ($row[0] + $ANSWERcalls);
    +
    +
    +	$stmt = "SELECT sum(wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$agent_non_pause_sec = $row[0];
    +
    +	if ($agent_non_pause_sec > 0)
    +		{
    +		$AVG_ANSWERagent_non_pause_sec = (($TOTALanswers / $agent_non_pause_sec) * 60);
    +		$AVG_ANSWERagent_non_pause_sec = round($AVG_ANSWERagent_non_pause_sec, 2);
    +		}
    +	else
    +		{$AVG_ANSWERagent_non_pause_sec=0;}
    +	$AVG_ANSWERagent_non_pause_sec = sprintf("%10s", $AVG_ANSWERagent_non_pause_sec);
    +
    +	$OUToutput .= "Productivity Rating:                          $AVG_ANSWERagent_non_pause_sec\n";
    +
    +
    +
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "---------- AUTO-DIAL NO ANSWERS\n";
    +
    +	$stmt="select count(*),sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and status IN('NA','B') and (length_in_sec <= 60 or length_in_sec is null);";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +
    +	$NAcalls =	sprintf("%10s", $row[0]);
    +	if ( ($NAcalls < 1) or ($TOTALcalls < 1) )
    +		{$NApercent = '0';}
    +	else
    +		{
    +		$NApercent = (($NAcalls / $TOTALcalls) * 100);
    +		$NApercent = round($NApercent, 2);
    +		}
    +
    +	if ( ($row[0] < 1) or ($row[1] < 1) )
    +		{$average_na_seconds = '         0';}
    +	else
    +		{
    +		$average_na_seconds = ($row[1] / $row[0]);
    +		$average_na_seconds = round($average_na_seconds, 2);
    +		$average_na_seconds =	sprintf("%10s", $average_na_seconds);
    +		}
    +
    +	$OUToutput .= "Total NA calls -Busy,Disconnect,RingNoAnswer: $NAcalls  $NApercent%\n";
    +	$OUToutput .= "Average Call Length for NA Calls in seconds:  $average_na_seconds\n";
    +
    +
    +	##############################
    +	#########  CALL HANGUP REASON STATS
    +
    +	$TOTALcalls = 0;
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "---------- CALL HANGUP REASON STATS\n";
    +	$OUToutput .= "+----------------------+------------+\n";
    +	$OUToutput .= "| HANGUP REASON        | CALLS      |\n";
    +	$OUToutput .= "+----------------------+------------+\n";
    +
    +	$stmt="select count(*),term_reason from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by term_reason;";
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$reasons_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $reasons_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +
    +		$TOTALcalls = ($TOTALcalls + $row[0]);
    +
    +		$REASONcount =	sprintf("%10s", $row[0]);while(strlen($REASONcount)>10) {$REASONcount = substr("$REASONcount", 0, -1);}
    +		$reason =	sprintf("%-20s", $row[1]);while(strlen($reason)>20) {$reason = substr("$reason", 0, -1);}
    +		if (ereg("NONE",$reason))	{$reason = 'NO ANSWER           ';}
    +		if (ereg("CALLER",$reason)) {$reason = 'CUSTOMER            ';}
    +
    +		$OUToutput .= "| $reason | $REASONcount |\n";
    +
    +		$i++;
    +		}
    +
    +	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
    +
    +	$OUToutput .= "+----------------------+------------+\n";
    +	$OUToutput .= "| TOTAL:               | $TOTALcalls |\n";
    +	$OUToutput .= "+----------------------+------------+\n";
    +
    +
    +
    +
    +
    +	##############################
    +	#########  CALL STATUS STATS
    +
    +	$TOTALcalls = 0;
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "---------- CALL STATUS STATS\n";
    +	$OUToutput .= "+--------+----------------------+----------------------+------------+----------------------------------+----------+\n";
    +	$OUToutput .= "|        |                      |                      |            |      CALL TIME                   |AGENT TIME|\n";
    +	$OUToutput .= "| STATUS | DESCRIPTION          | CATEGORY             | CALLS      | TOTAL TIME | AVG TIME |CALLS/HOUR|CALLS/HOUR|\n";
    +	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
    +
    +	$campaignSQL = "$group_SQLand";
    +	if (eregi("YES",$include_rollover))
    +		{$campaignSQL = "$both_group_SQLand";}
    +	## Pull the count of agent seconds for the total tally
    +	$stmt="SELECT sum(pause_sec + wait_sec + talk_sec + dispo_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $campaignSQL and pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000;";
    +	$rslt=mysql_query($stmt, $link);
    +	$Ctally_to_print = mysql_num_rows($rslt);
    +	if ($Ctally_to_print > 0) 
    +		{
    +		$rowx=mysql_fetch_row($rslt);
    +		$AGENTsec = "$rowx[0]";
    +		}
    +	if ($DB) {$OUToutput .= "$AGENTsec|$Ctally_to_print|$stmt\n";}
    +
    +
    +	## get counts and time totals for all statuses in this campaign
    +	$rollover_exclude_dropSQL='';
    +	if (eregi("YES",$include_rollover))
    +		{$rollover_exclude_dropSQL = "and status NOT IN('DROP')";}
    +	$stmt="select count(*),status,sum(length_in_sec) from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $rollover_exclude_dropSQL $group_SQLand group by status;";
    +
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$statuses_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $statuses_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$STATUScountARY[$i] =	$row[0];
    +		$RAWstatusARY[$i] =		$row[1];
    +		$RAWhoursARY[$i] =		$row[2];
    +		$statusSQL .=			"'$row[1]',";
    +		$i++;
    +		}
    +	if (eregi("YES",$include_rollover))
    +		{
    +		if (strlen($statusSQL) < 2)
    +			{$statusSQL = "''";}
    +		else
    +			{
    +			$statusSQL = eregi_replace(",$",'',$statusSQL);
    +			}
    +		$stmt="select distinct status from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status NOT IN($statusSQL) $group_drop_SQLand;";
    +		$rslt=mysql_query($stmt, $link);
    +		$inS_statuses_to_print = mysql_num_rows($rslt);
    +		$n=0;
    +		while ($inS_statuses_to_print > $n) 
    +			{
    +			$rowx=mysql_fetch_row($rslt);
    +			$STATUScountARY[$i] =	0;
    +			$RAWstatusARY[$i] =		$rowx[0];
    +			$RAWhoursARY[$i] =		0;
    +			$i++;
    +			$n++;
    +			$statuses_to_print++;
    +			}
    +		}
    +
    +
    +	$i=0;
    +	while ($i < $statuses_to_print)
    +		{
    +		$STATUScount = $STATUScountARY[$i];
    +		$RAWstatus = $RAWstatusARY[$i];
    +		$RAWhours = $RAWhoursARY[$i];
    +
    +		if (eregi("YES",$include_rollover))
    +			{
    +			$stmt="select count(*),sum(length_in_sec) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and status='$RAWstatus' $group_drop_SQLand;";
    +			$rslt=mysql_query($stmt, $link);
    +			$in_statuses_to_print = mysql_num_rows($rslt);
    +			if ($in_statuses_to_print > 0) 
    +				{
    +				$rowx=mysql_fetch_row($rslt);
    +				$inSTATUScount =	$rowx[0];
    +				$inRAWhours =		$rowx[1];
    +
    +				$STATUScount = ($STATUScount + $inSTATUScount);
    +				$RAWhours = ($RAWhours + $inRAWhours);
    +				}
    +			}
    +
    +		$r=0;
    +		while ($r < $statcats_to_print)
    +			{
    +			if ($statcat_list[$RAWstatus] == "$vsc_id[$r]")
    +				{
    +				$vsc_count[$r] = ($vsc_count[$r] + $STATUScount);
    +				}
    +			$r++;
    +			}
    +		if ($AGENTsec < 1) {$AGENTsec=1;}
    +		$TOTALcalls =	($TOTALcalls + $STATUScount);
    +		$TOTALtimeS =	($TOTALtimeS + $RAWhours);
    +		$STATUSrate =	($STATUScount / ($TOTALsec / 3600) );
    +			$STATUSrate =	sprintf("%.2f", $STATUSrate);
    +		$AGENTrate =	($STATUScount / ($AGENTsec / 3600) );
    +			$AGENTrate =	sprintf("%.2f", $AGENTrate);
    +
    +		$STATUShours =		sec_convert($RAWhours,'H'); 
    +		$STATUSavg_sec =	($RAWhours / $STATUScount); 
    +		$STATUSavg =		sec_convert($STATUSavg_sec,'H'); 
    +
    +		$STATUScount =	sprintf("%10s", $STATUScount);while(strlen($STATUScount)>10) {$STATUScount = substr("$STATUScount", 0, -1);}
    +		$status =	sprintf("%-6s", $RAWstatus);while(strlen($status)>6) {$status = substr("$status", 0, -1);}
    +		$STATUShours =	sprintf("%10s", $STATUShours);while(strlen($STATUShours)>10) {$STATUShours = substr("$STATUShours", 0, -1);}
    +		$STATUSavg =	sprintf("%8s", $STATUSavg);while(strlen($STATUSavg)>8) {$STATUSavg = substr("$STATUSavg", 0, -1);}
    +		$STATUSrate =	sprintf("%8s", $STATUSrate);while(strlen($STATUSrate)>8) {$STATUSrate = substr("$STATUSrate", 0, -1);}
    +		$AGENTrate =	sprintf("%8s", $AGENTrate);while(strlen($AGENTrate)>8) {$AGENTrate = substr("$AGENTrate", 0, -1);}
    +
    +		if ($non_latin < 1)
    +			{
    +			$status_name =	sprintf("%-20s", $statname_list[$RAWstatus]); 
    +			while(strlen($status_name)>20) {$status_name = substr("$status_name", 0, -1);}	
    +			$statcat =	sprintf("%-20s", $statcat_list[$RAWstatus]); 
    +			while(strlen($statcat)>20) {$statcat = substr("$statcat", 0, -1);}	
    +			}
    +		else
    +			{
    +			$status_name =	sprintf("%-60s", $statname_list[$RAWstatus]); 
    +			while(mb_strlen($status_name,'utf-8')>20) {$status_name = mb_substr("$status_name", 0, -1,'utf-8');}	
    +			$statcat =	sprintf("%-60s", $statcat_list[$RAWstatus]); 
    +			while(mb_strlen($statcat,'utf-8')>20) {$statcat = mb_substr("$statcat", 0, -1,'utf-8');}	
    +			}
    +
    +		$OUToutput .= "| $status | $status_name | $statcat | $STATUScount | $STATUShours | $STATUSavg | $STATUSrate | $AGENTrate |\n";
    +
    +		$i++;
    +		}
    +
    +	if ($TOTALcalls < 1)
    +		{
    +		$TOTALhours =	'0:00:00';
    +		$TOTALavg =		'0:00:00';
    +		$TOTALrate =	'0.00';
    +		}
    +	else
    +		{
    +		$TOTALrate =	($TOTALcalls / ($TOTALsec / 3600) );
    +			$TOTALrate =	sprintf("%.2f", $TOTALrate);
    +		$aTOTALrate =	($TOTALcalls / ($AGENTsec / 3600) );
    +			$aTOTALrate =	sprintf("%.2f", $aTOTALrate);
    +
    +		$aTOTALhours =		sec_convert($AGENTsec,'H'); 
    +		$TOTALhours =		sec_convert($TOTALtimeS,'H'); 
    +		$TOTALavg_sec =		($TOTALtimeS / $TOTALcalls);
    +		$TOTALavg =			sec_convert($TOTALavg_sec,'H'); 
    +		}
    +	$TOTALcalls =	sprintf("%10s", $TOTALcalls);
    +	$TOTALhours =	sprintf("%10s", $TOTALhours);while(strlen($TOTALhours)>10) {$TOTALhours = substr("$TOTALhours", 0, -1);}
    +	$aTOTALhours =	sprintf("%10s", $aTOTALhours);while(strlen($aTOTALhours)>10) {$aTOTALhours = substr("$aTOTALhours", 0, -1);}
    +	$TOTALavg =	sprintf("%8s", $TOTALavg);while(strlen($TOTALavg)>8) {$TOTALavg = substr("$TOTALavg", 0, -1);}
    +	$TOTALrate =	sprintf("%8s", $TOTALrate);while(strlen($TOTALrate)>8) {$TOTALrate = substr("$TOTALrate", 0, -1);}
    +	$aTOTALrate =	sprintf("%8s", $aTOTALrate);while(strlen($aTOTALrate)>8) {$aTOTALrate = substr("$aTOTALrate", 0, -1);}
    +
    +	$OUToutput .= "+--------+----------------------+----------------------+------------+------------+----------+----------+----------+\n";
    +	$OUToutput .= "| TOTAL:                                               | $TOTALcalls | $TOTALhours | $TOTALavg | $TOTALrate |          |\n";
    +#	$OUToutput .= "|   AGENT TIME                                                      | $aTOTALhours |                     | $aTOTALrate |\n";
    +	$OUToutput .= "+------------------------------------------------------+------------+------------+---------------------+----------+\n";
    +
    +
    +
    +
    +
    +	##############################
    +	#########  LIST ID BREAKDOWN STATS
    +
    +	$TOTALcalls = 0;
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "---------- LIST ID STATS\n";
    +	$OUToutput .= "+------------------------------------------+------------+\n";
    +	$OUToutput .= "| LIST                                     | CALLS      |\n";
    +	$OUToutput .= "+------------------------------------------+------------+\n";
    +
    +	$stmt="select count(*),list_id from vicidial_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand group by list_id;";
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$listids_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $listids_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$LISTIDcalls[$i] =	$row[0];
    +		$LISTIDlists[$i] =	$row[1];
    +		$i++;
    +		}
    +
    +	$i=0;
    +	while ($i < $listids_to_print)
    +		{
    +		$stmt="select list_name from vicidial_lists where list_id='$LISTIDlists[$i]';";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {$OUToutput .= "$stmt\n";}
    +		$list_name_to_print = mysql_num_rows($rslt);
    +		if ($list_name_to_print > 0)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +			$LISTIDlist_names[$i] =	$row[0];
    +			}
    +
    +		$TOTALcalls = ($TOTALcalls + $LISTIDcalls[$i]);
    +
    +		$LISTIDcount =	sprintf("%10s", $LISTIDcalls[$i]);while(strlen($LISTIDcount)>10) {$LISTIDcount = substr("$LISTIDcount", 0, -1);}
    +		$LISTIDname =	sprintf("%-40s", "$LISTIDlists[$i] - $LISTIDlist_names[$i]");while(strlen($LISTIDname)>40) {$LISTIDname = substr("$LISTIDname", 0, -1);}
    +
    +		$OUToutput .= "| $LISTIDname | $LISTIDcount |\n";
    +
    +		$i++;
    +		}
    +
    +	$TOTALcalls =		sprintf("%10s", $TOTALcalls);
    +
    +	$OUToutput .= "+------------------------------------------+------------+\n";
    +	$OUToutput .= "| TOTAL:                                   | $TOTALcalls |\n";
    +	$OUToutput .= "+------------------------------------------+------------+\n";
    +
    +
    +
    +
    +
    +	if ( ($carrier_logging_active > 0) and ($carrier_stats == 'YES') )
    +		{
    +		##############################
    +		#########  STATUS CATEGORY STATS
    +
    +		$OUToutput .= "\n";
    +		$OUToutput .= "---------- CARRIER CALL STATUSES\n";
    +		$OUToutput .= "+----------------------+------------+\n";
    +		$OUToutput .= "| STATUS               | CALLS      |\n";
    +		$OUToutput .= "+----------------------+------------+\n";
    +
    +		## get counts and time totals for all statuses in this campaign
    +		$stmt="select dialstatus,count(*) from vicidial_carrier_log vcl,vicidial_log vl where vcl.uniqueid=vl.uniqueid and vcl.call_date > \"$query_date_BEGIN\" and vcl.call_date < \"$query_date_END\" and vl.call_date > \"$query_date_BEGIN\" and vl.call_date < \"$query_date_END\" $group_SQLand group by dialstatus order by dialstatus;";
    +		if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {$OUToutput .= "$stmt\n";}
    +		$carrierstatuses_to_print = mysql_num_rows($rslt);
    +		$i=0;
    +		while ($i < $carrierstatuses_to_print)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +			$TOTCARcalls = ($TOTCARcalls + $row[1]);
    +			$CARstatus =	sprintf("%-20s", $row[0]); while(strlen($CARstatus)>20) {$CARstatus = substr("$CARstatus", 0, -1);}
    +			$CARcount =		sprintf("%10s", $row[1]); while(strlen($CARcount)>10) {$CARcount = substr("$CARcount", 0, -1);}
    +
    +			$OUToutput .= "| $CARstatus | $CARcount |\n";
    +
    +			$i++;
    +			}
    +
    +		$TOTCARcalls =	sprintf("%10s", $TOTCARcalls); while(strlen($TOTCARcalls)>10) {$TOTCARcalls = substr("$TOTCARcalls", 0, -1);}
    +
    +		$OUToutput .= "+----------------------+------------+\n";
    +		$OUToutput .= "| TOTAL                | $TOTCARcalls |\n";
    +		$OUToutput .= "+----------------------+------------+\n";
    +		}
    +
    +
    +	##############################
    +	#########  STATUS CATEGORY STATS
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "---------- CUSTOM STATUS CATEGORY STATS\n";
    +	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
    +	$OUToutput .= "| CATEGORY             | CALLS      | DESCRIPTION                    |\n";
    +	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
    +
    +
    +	$TOTCATcalls=0;
    +	$r=0;
    +	while ($r < $statcats_to_print)
    +		{
    +		if ($vsc_id[$r] != 'UNDEFINED')
    +			{
    +			$TOTCATcalls = ($TOTCATcalls + $vsc_count[$r]);
    +			$category =	sprintf("%-20s", $vsc_id[$r]); while(strlen($category)>20) {$category = substr("$category", 0, -1);}
    +			$CATcount =	sprintf("%10s", $vsc_count[$r]); while(strlen($CATcount)>10) {$CATcount = substr("$CATcount", 0, -1);}
    +			$CATname =	sprintf("%-30s", $vsc_name[$r]); while(strlen($CATname)>30) {$CATname = substr("$CATname", 0, -1);}
    +
    +			$OUToutput .= "| $category | $CATcount | $CATname |\n";
    +			}
    +		$r++;
    +		}
    +
    +	$TOTCATcalls =	sprintf("%10s", $TOTCATcalls); while(strlen($TOTCATcalls)>10) {$TOTCATcalls = substr("$TOTCATcalls", 0, -1);}
    +
    +	$OUToutput .= "+----------------------+------------+--------------------------------+\n";
    +	$OUToutput .= "| TOTAL                | $TOTCATcalls |\n";
    +	$OUToutput .= "+----------------------+------------+\n";
    +
    +
    +
    +	##############################
    +	#########  USER STATS
    +
    +	$TOTagents=0;
    +	$TOTcalls=0;
    +	$TOTtime=0;
    +	$TOTavg=0;
    +
    +	$OUToutput .= "\n";
    +	$OUToutput .= "---------- AGENT STATS\n";
    +	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
    +	$OUToutput .= "| AGENT                    | CALLS      | TIME H:M:S |AVERAGE |\n";
    +	$OUToutput .= "+--------------------------+------------+------------+--------+\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_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user is not null and length_in_sec is not null and length_in_sec > 0 and vicidial_log.user=vicidial_users.user group by vicidial_log.user;";
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$users_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $users_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +
    +		$RAWuser[$i] =			$row[0];
    +		$RAWfull_name[$i] =		$row[1];
    +		$RAWuser_calls[$i] =	$row[2];
    +		$RAWuser_talk[$i] =		$row[3];
    +		$RAWuser_average[$i] =	$row[4];
    +
    +		$TOTcalls = ($TOTcalls + $row[2]);
    +		$TOTtime = ($TOTtime + $row[3]);
    +
    +		$i++;
    +		}
    +
    +	$i=0;
    +	while ($i < $users_to_print)
    +		{
    +		$user =	sprintf("%-6s", $RAWuser[$i]);while(strlen($user)>6) {$user = substr("$user", 0, -1);}
    +		if ($non_latin < 1)
    +			{
    +			$full_name =	sprintf("%-15s", $RAWfull_name[$i]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}	
    +			}
    +		else
    +			{
    +			$full_name =	sprintf("%-45s", $RAWfull_name[$i]); while(mb_strlen($full_name,'utf-8')>15) {$full_name = mb_substr("$full_name", 0, -1,'utf-8');}	
    +			}
    +		if (eregi("YES",$include_rollover))
    +			{
    +			$length_in_secZ=0;
    +			$queue_secondsZ=0;
    +			$agent_alert_delayZ=0;
    +			$stmt="select length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id and user='$RAWuser[$i]' $group_drop_SQLand;";
    +			$rslt=mysql_query($stmt, $link);
    +			if ($DB) {echo "$stmt\n";}
    +			$INallcalls_to_printZ = mysql_num_rows($rslt);
    +			$y=0;
    +			while ($y < $INallcalls_to_printZ)
    +				{
    +				$row=mysql_fetch_row($rslt);
    +
    +				$length_in_secZ = $row[0];
    +				$queue_secondsZ = $row[1];
    +				$agent_alert_delayZ = $row[2];
    +
    +				$CIdelay =		round($agent_alert_delayZ / 1000);
    +				$thiscallsec = (($length_in_secZ - $queue_secondsZ) - $CIdelay);
    +				if ($thiscallsec < 0)
    +					{$thiscallsec = 0;}
    +				$inCIsec =	($inCIsec + $thiscallsec);	
    +
    +				$y++;
    +				}
    +
    +			$inCIcallsRAW =	$y;
    +			$RAWuser_talk[$i] = ($RAWuser_talk[$i] + $inCIsec);
    +			$RAWuser_calls[$i] = ($RAWuser_calls[$i] + $inCIcallsRAW);
    +
    +			$TOTcalls = ($TOTcalls + $inCIcallsRAW);
    +			$TOTtime = ($TOTtime + $inCIsec);
    +			}
    +
    +		$USERcalls =	sprintf("%10s", $RAWuser_calls[$i]);
    +		$USERtotTALK =	$RAWuser_talk[$i];
    +		$USERavgTALK =	round($RAWuser_talk[$i] / $RAWuser_calls[$i]);
    +
    +		$USERtotTALK_MS =	sec_convert($USERtotTALK,'H'); 
    +		$USERavgTALK_MS =	sec_convert($USERavgTALK,'H'); 
    +
    +		$USERtotTALK_MS =	sprintf("%9s", $USERtotTALK_MS);
    +		$USERavgTALK_MS =	sprintf("%6s", $USERavgTALK_MS);
    +
    +		$OUToutput .= "| $user - $full_name | $USERcalls |  $USERtotTALK_MS | $USERavgTALK_MS |\n";
    +
    +		$i++;
    +		}
    +
    +	$rawTOTtime = $TOTtime;
    +
    +	if (!$TOTcalls) {$TOTcalls = 1;}
    +	$TOTavg = ($TOTtime / $TOTcalls);
    +
    +	$TOTavg_MS =	sec_convert($TOTavg,'H'); 
    +	$TOTtime_MS =	sec_convert($TOTtime,'H'); 
    +
    +	$TOTavg =		sprintf("%6s", $TOTavg_MS);
    +	$TOTtime =		sprintf("%10s", $TOTtime_MS);
    +
    +	$TOTagents =		sprintf("%10s", $i);
    +	$TOTcalls =			sprintf("%10s", $TOTcalls);
    +	$TOTtime =			sprintf("%8s", $TOTtime);
    +	$TOTavg =			sprintf("%6s", $TOTavg);
    +
    +	$stmt="select avg(wait_sec) from vicidial_agent_log where event_time >= '$query_date_BEGIN' and event_time <= '$query_date_END' $group_SQLand;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {$OUToutput .= "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +
    +	$AVGwait = $row[0];
    +	$AVGwait_MS =	sec_convert($AVGwait,'H'); 
    +	$AVGwait =		sprintf("%6s", $AVGwait_MS);
    +
    +	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
    +	$OUToutput .= "| TOTAL Agents: $TOTagents | $TOTcalls | $TOTtime | $TOTavg |\n";
    +	$OUToutput .= "+--------------------------+------------+------------+--------+\n";
    +	$OUToutput .= "| Average Wait time between calls                      $AVGwait |\n";
    +	$OUToutput .= "+-------------------------------------------------------------+\n";
    +
    +
    +
    +	if ($costformat > 0)
    +		{
    +		$stmt="select campaign_id,phone_number,length_in_sec from vicidial_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' $group_SQLand and vicidial_log.user=vicidial_users.user;";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$allcalls_to_print = mysql_num_rows($rslt);
    +		$w=0;
    +		while ($w < $allcalls_to_print)
    +			{
    +			$row=mysql_fetch_row($rslt);
    +
    +			if ($print_calls > 0)
    +				{echo "$row[0]\t$row[1]\t$row[2]\n";}
    +			$tempTALK = ($tempTALK + $row[2]);
    +			$w++;
    +			}
    +		if (eregi("YES",$include_rollover))
    +			{
    +			$stmt="select campaign_id,phone_number,length_in_sec,queue_seconds,agent_alert_delay from vicidial_closer_log,vicidial_inbound_groups where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and group_id=campaign_id $group_drop_SQLand;";
    +			$rslt=mysql_query($stmt, $link);
    +			if ($DB) {echo "$stmt\n";}
    +			$INallcalls_to_print = mysql_num_rows($rslt);
    +			$w=0;
    +			while ($w < $INallcalls_to_print)
    +				{
    +				$row=mysql_fetch_row($rslt);
    +
    +				if ($print_calls > 0)
    +				{	echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\n";}
    +				$newTALK = ($row[2] - $row[3] - ($row[4] / 1000) );
    +				if ($newTALK < 0) {$newTALK = 0;}
    +				$tempTALK = ($tempTALK + $newTALK);
    +				$w++;
    +				}
    +			}
    +		$tempTALKmin = ($tempTALK  / 60);
    +		if ($print_calls > 0)
    +			{echo "$w\t$tempTALK\t$tempTALKmin\n";}
    +
    +		echo "
    \n"; + $rawTOTtalk_min = round($tempTALK / 60); + $outbound_cost = ($rawTOTtalk_min * $outbound_rate); + $outbound_cost = sprintf("%8.2f", $outbound_cost); + + echo "OUTBOUND $query_date to $end_date,   $rawTOTtalk_min minutes at \$$outbound_rate = \$$outbound_cost\n"; + + exit; + } + + + echo "$OUToutput"; + + + + + if ($bottom_graph == 'YES') + { + ############################## + ######### TIME STATS + + echo "\n"; + echo "---------- TIME STATS\n"; + + echo "\n"; + + $hi_hour_count=0; + $last_full_record=0; + $i=0; + $h=0; + 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' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:15:00' and call_date <= '$query_date $h:29:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:30:00' and call_date <= '$query_date $h:44:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + + $stmt="select count(*) from vicidial_log where call_date >= '$query_date $h:45:00' and call_date <= '$query_date $h:59:59' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $hour_count[$i] = $row[0]; + if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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' $group_SQLand and status='DROP';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $drop_count[$i] = $row[0]; + $i++; + $h++; + } + + if ($hi_hour_count < 1) + {$hour_multiplier = 0;} + else + { + $hour_multiplier = (100 / $hi_hour_count); + #$hour_multiplier = round($hour_multiplier, 0); + } + + echo "\n"; + echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS PLACED FROM THIS CAMPAIGN\n"; + + $k=1; + $Mk=0; + $call_scale = '0'; + while ($k <= 102) + { + if ($Mk >= 5) + { + $Mk=0; + if ( ($k < 1) or ($hour_multiplier <= 0) ) + {$scale_num = 100;} + else + { + $scale_num=($k / $hour_multiplier); + $scale_num = round($scale_num, 0); + } + $LENscale_num = (strlen($scale_num)); + $k = ($k + $LENscale_num); + $call_scale .= "$scale_num"; + } + else + { + $call_scale .= " "; + $k++; $Mk++; + } + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + #echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP | DROPS | TOTAL |\n"; + echo "| HOUR |$call_scale| DROPS | TOTAL |\n"; + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + $ZZ = '00'; + $i=0; + $h=4; + $hour= -1; + $no_lines_yet=1; + + while ($i <= 96) + { + $char_counter=0; + $time = ' '; + if ($h >= 4) + { + $hour++; + $h=0; + if ($hour < 10) {$hour = "0$hour";} + $time = "+$hour$ZZ+"; + } + if ($h == 1) {$time = " 15 ";} + if ($h == 2) {$time = " 30 ";} + if ($h == 3) {$time = " 45 ";} + $Ghour_count = $hour_count[$i]; + if ($Ghour_count < 1) + { + if ( ($no_lines_yet) or ($i > $last_full_record) ) + { + $do_nothing=1; + } + else + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + echo "|$time|"; + $k=0; while ($k <= 102) {echo " "; $k++;} + echo "| $hour_count[$i] |\n"; + } + } + else + { + $no_lines_yet=0; + $Xhour_count = ($Ghour_count * $hour_multiplier); + $Yhour_count = (99 - $Xhour_count); + + $Gdrop_count = $drop_count[$i]; + if ($Gdrop_count < 1) + { + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xhour_count) {echo "*"; $k++; $char_counter++;} + echo "*X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 101) {echo " "; $char_counter++;} + echo "| 0 | $hour_count[$i] |\n"; + + } + else + { + $Xdrop_count = ($Gdrop_count * $hour_multiplier); + + # if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);} + + $XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 ); + + $hour_count[$i] = sprintf("%-5s", $hour_count[$i]); + $drop_count[$i] = sprintf("%-5s", $drop_count[$i]); + + echo "|$time|"; + $k=0; while ($k <= $Xdrop_count) {echo ">"; $k++; $char_counter++;} + echo "D"; $char_counter++; + $k=0; while ($k <= $XXhour_count) {echo "*"; $k++; $char_counter++;} + echo "X"; $char_counter++; + $k=0; while ($k <= $Yhour_count) {echo " "; $k++; $char_counter++;} + while ($char_counter <= 102) {echo " "; $char_counter++;} + echo "| $drop_count[$i] | $hour_count[$i] |\n"; + } + } + + + $i++; + $h++; + } + + + echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n"; + + ### END bottom graph + } + + + + + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $STARTtime); + echo "\nRun Time: $RUNtime seconds\n"; + } + + + +?> + +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_VICIDIAL_hopperlist.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_VICIDIAL_hopperlist.php new file mode 100644 index 00000000..53e70dd8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_VICIDIAL_hopperlist.php @@ -0,0 +1,167 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1654 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70115-1614 - Added ALT field for vicidial_hopper alt_dial column +# 71029-0852 - Added list_id to the output +# 71030-2118 - Added priority to display +# 90508-0644 - Changed to PHP long tags +# 91023-1540 - Changed to only show hopper status of READY +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1' and modify_campaigns='1';"; + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.10.15';} + +$stmt="select campaign_id,campaign_name from vicidial_campaigns order by campaign_id;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $campaign_id[$i] =$row[0]; + $campaign_name[$i] =$row[1]; + $i++; + } +?> + + + + + +\n"; +echo "Hopper List Report\n"; +echo "
    \n"; +#echo "\n"; +#echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFY \n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if (!$group)
    +	{
    +	echo "\n\n";
    +	echo "PLEASE SELECT A CAMPAIGN ABOVE AND CLICK SUBMIT\n";
    +	}
    +
    +else
    +	{
    +	echo "Live Current Hopper List                      $NOW_TIME\n";
    +
    +	echo "\n";
    +	echo "---------- TOTALS\n";
    +
    +	$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTALcalls =	sprintf("%10s", $row[0]);
    +
    +	echo "Total leads in hopper right now:       $TOTALcalls\n";
    +
    +
    +	##############################
    +	#########  LEAD STATS
    +
    +	echo "\n";
    +	echo "---------- LEADS IN HOPPER\n";
    +	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
    +	echo "|ORDER |PRIORITY| LEAD ID   | LIST ID    | PHONE NUM  | STATE | STATUS | COUNT | GMT    | ALT   |\n";
    +	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
    +
    +	$stmt="select vicidial_hopper.lead_id,phone_number,vicidial_hopper.state,vicidial_list.status,called_count,vicidial_hopper.gmt_offset_now,hopper_id,alt_dial,vicidial_hopper.list_id,vicidial_hopper.priority from vicidial_hopper,vicidial_list where vicidial_hopper.campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_hopper.status='READY' and vicidial_hopper.lead_id=vicidial_list.lead_id order by priority desc,hopper_id limit 2000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$users_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $users_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +
    +		$FMT_i =		sprintf("%-4s", $i);
    +		$lead_id =		sprintf("%-9s", $row[0]);
    +		$phone_number =	sprintf("%-10s", $row[1]);
    +		$state =		sprintf("%-5s", $row[2]);
    +		$status =		sprintf("%-6s", $row[3]);
    +		$count =		sprintf("%-5s", $row[4]);
    +		$gmt =			sprintf("%-6s", $row[5]);
    +		$hopper_id =	sprintf("%-6s", $row[6]);
    +		$alt_dial =		sprintf("%-5s", $row[7]);
    +		$list_id =		sprintf("%-10s", $row[8]);
    +		$priority =		sprintf("%-6s", $row[9]);
    +
    +		if ($DB) {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $hopper_id |\n";}
    +		else {echo "| $FMT_i | $priority | $lead_id | $list_id | $phone_number | $state | $status | $count | $gmt | $alt_dial |\n";}
    +
    +		$i++;
    +		}
    +
    +	echo "+------+--------+-----------+------------+------------+-------+--------+-------+--------+-------+\n";
    +
    +	}
    +
    +
    +?>
    +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_days_detail.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_days_detail.php new file mode 100644 index 00000000..06c7113a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_days_detail.php @@ -0,0 +1,602 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-2202 - First build +# 90225-1051 - Added CSV download option +# 90310-0752 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&shift=$shift&DB=$DB&user=$user$groupQS"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Days Status Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
    \n";
    +	}
    +
    +if (strlen($group[0]) < 1)
    +	{
    +	echo "\n";
    +	echo "PLEASE SELECT A USER AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
    +	echo " NOTE: stats taken from shift specified\n";
    +	}
    +
    +else
    +	{
    +	if ($shift == 'AM') 
    +		{
    +		$time_BEGIN=$AM_shift_BEGIN;
    +		$time_END=$AM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +		}
    +	if ($shift == 'PM') 
    +		{
    +		$time_BEGIN=$PM_shift_BEGIN;
    +		$time_END=$PM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +		}
    +	if ($shift == 'ALL') 
    +		{
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +		}
    +	$query_date_BEGIN = "$query_date $time_BEGIN";   
    +	$query_date_END = "$end_date $time_END";
    +
    +	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
    +	else {$ugSQL='';}
    +
    +	if ($file_download < 1)
    +		{
    +		echo "Agent Days Status Report: $user                     $NOW_TIME\n";
    +
    +		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +		echo "---------- AGENT Details -------------\n\n";
    +		}
    +	else
    +		{
    +		$file_output .= "Agent Days Status Report: $user                     $NOW_TIME\n";
    +		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +		}
    +
    +	$statuses='-';
    +	$statusesTXT='';
    +	$statusesHEAD='';
    +	$statusesHTML='';
    +	$statusesFILE='';
    +	$statusesARY[0]='';
    +	$j=0;
    +	$dates='-';
    +	$datesARY[0]='';
    +	$date_namesARY[0]='';
    +	$k=0;
    +
    +	$stmt="select date_format(event_time, '%Y-%m-%d') as date,count(*) as calls,status 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 vicidial_agent_log.user='$user' $group_SQL $user_group_SQL group by date,status order by date,status desc limit 500000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$rows_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $rows_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +
    +		if ( ($row[1] > 0) and (strlen($row[2]) > 0) )
    +			{
    +			$date[$i] =			$row[0];
    +			$calls[$i] =		$row[1];
    +			$status[$i] =		$row[2];
    +			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
    +				{
    +				$statusesTXT = sprintf("%8s", $status[$i]);
    +				$statusesHEAD .= "----------+";
    +				$statusesHTML .= " $statusesTXT |";
    +				$statusesFILE .= "$statusesTXT,";
    +				$statuses .= "$status[$i]-";
    +				$statusesARY[$j] = $status[$i];
    +				$j++;
    +				}
    +			if (!eregi("-$date[$i]-", $dates))
    +				{
    +				$dates .= "$date[$i]-";
    +				$datesARY[$k] = $date[$i];
    +				$k++;
    +				}
    +			}
    +		$i++;
    +		}
    +
    +	if ($file_download < 1)
    +		{
    +		echo "CALL STATS BREAKDOWN:\n";
    +		echo "+------------+--------+--------+--------+$statusesHEAD\n";
    +		echo "| DATE       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
    +		echo "+------------+--------+--------+--------+$statusesHEAD\n";
    +		}
    +	else
    +		{
    +		$file_output .= "DATE,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
    +		}
    +
    +	### BEGIN loop through each user ###
    +	$m=0;
    +	$CIScountTOT=0;
    +	$DNCcountTOT=0;
    +	while ($m < $k)
    +		{
    +		$Sdate=$datesARY[$m];
    +		$Scalls=$calls[$m];
    +		$SstatusesHTML='';
    +		$SstatusesFILE='';
    +		$CIScount=0;
    +		$DNCcount=0;
    +
    +		### BEGIN loop through each status ###
    +		$n=0;
    +		while ($n < $j)
    +			{
    +			$Sstatus=$statusesARY[$n];
    +			$SstatusTXT='';
    +			### BEGIN loop through each stat line ###
    +			$i=0; $status_found=0;
    +			while ($i < $rows_to_print)
    +				{
    +	#			if ( (eregi("$date[$i]", $Sdate)) and ($Sstatus=="$status[$i]") )
    +				if ( ($Sdate=="$date[$i]") and ($Sstatus=="$status[$i]") )
    +					{
    +					$Scalls =		($Scalls + $calls[$i]);
    +					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
    +						{
    +						$CIScount =	($CIScount + $calls[$i]);
    +						$CIScountTOT =	($CIScountTOT + $calls[$i]);
    +						}
    +					if (eregi("DNC", $status[$i]))
    +						{
    +						$DNCcount =	($DNCcount + $calls[$i]);
    +						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
    +						}
    +					$SstatusTXT = sprintf("%8s", $calls[$i]);
    +					$SstatusesHTML .= " $SstatusTXT |";
    +					$SstatusesFILE .= "$SstatusTXT,";
    +					$status_found++;
    +					}
    +				$i++;
    +				}
    +			if ($status_found < 1)
    +				{
    +				$SstatusesHTML .= "        0 |";
    +				}
    +			### END loop through each stat line ###
    +			$n++;
    +			}
    +		### END loop through each status ###
    +		$TOTcalls=($TOTcalls + $Scalls);
    +
    +		$RAWdate = $Sdate;
    +		$RAWcalls = $Scalls;
    +		$RAWcis = $CIScount;
    +		$Scalls =	sprintf("%6s", $Scalls);
    +		$CIScount =	sprintf("%6s", $CIScount);
    +
    +		$Sdate =		sprintf("%-10s", $Sdate);
    +			while(strlen($Suser)>10) {$Suser = substr("$Sdate", 0, -1);}
    +
    +		if ( ($DNCcount < 1) or ($CIScount < 1) )
    +			{$DNCcountPCTs=0;}
    +		else
    +			{
    +			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
    +			}
    +		$RAWdncPCT = $DNCcountPCTs;
    +	#	$DNCcountPCTs = round($DNCcountPCTs,2);
    +		$DNCcountPCTs = round($DNCcountPCTs);
    +		$rawDNCcountPCTs = $DNCcountPCTs;
    +	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
    +		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
    +
    +		if ($file_download < 1)
    +			{
    +			$Toutput = "| $Sdate | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
    +			}
    +		else
    +			{
    +			$fileToutput = "$RAWdate,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
    +			}
    +
    +		$TOPsorted_output[$m] = $Toutput;
    +		$TOPsorted_outputFILE[$m] = $fileToutput;
    +
    +		if ($stage == 'ID')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdate) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
    +			$TOPsortTALLY[$m]=$RAWcalls;
    +			}
    +		if ($stage == 'CALLS')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
    +			$TOPsortTALLY[$m]=$RAWcalls;
    +			}
    +		if ($stage == 'TIME')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
    +			$TOPsortTALLY[$m]=$Stime;
    +			}
    +		if ($stage == 'CI')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
    +			$TOPsortTALLY[$m]=$RAWcis;
    +			}
    +		if ($stage == 'DNCCI')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWdate);
    +			$TOPsortTALLY[$m]=$RAWdncPCT;
    +			}
    +		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
    +			{
    +			if ($file_download < 1)
    +				{echo "$Toutput";}
    +			else
    +				{$file_output .= "$fileToutput";}
    +			}
    +
    +		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
    +
    +		$m++;
    +		}
    +	### END loop through each user ###
    +
    +	$TOT_AGENTS = sprintf("%4s", $m);
    +
    +
    +	### BEGIN sort through output to display properly ###
    +	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
    +		{
    +		if (ereg("ID",$stage))
    +			{sort($TOPsort, SORT_NUMERIC);}
    +		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
    +			{rsort($TOPsort, SORT_NUMERIC);}
    +
    +		$m=0;
    +		while ($m < $k)
    +			{
    +			$sort_split = explode("-----",$TOPsort[$m]);
    +			$i = $sort_split[1];
    +			$sort_order[$m] = "$i";
    +			if ($file_download < 1)
    +				{echo "$TOPsorted_output[$i]";}
    +			else
    +				{$file_output .= "$TOPsorted_outputFILE[$i]";}
    +			$m++;
    +			}
    +		}
    +	### END sort through output to display properly ###
    +
    +
    +
    +	###### LAST LINE FORMATTING ##########
    +	### BEGIN loop through each status ###
    +	$SUMstatusesHTML='';
    +	$n=0;
    +	while ($n < $j)
    +		{
    +		$Scalls=0;
    +		$Sstatus=$statusesARY[$n];
    +		$SUMstatusTXT='';
    +		### BEGIN loop through each stat line ###
    +		$i=0; $status_found=0;
    +		while ($i < $rows_to_print)
    +			{
    +			if ($Sstatus=="$status[$i]")
    +				{
    +				$Scalls =		($Scalls + $calls[$i]);
    +				$status_found++;
    +				}
    +			$i++;
    +			}
    +		### END loop through each stat line ###
    +		if ($status_found < 1)
    +			{
    +			$SUMstatusesHTML .= "        0 |";
    +			}
    +		else
    +			{
    +			$SUMstatusTXT = sprintf("%8s", $Scalls);
    +			$SUMstatusesHTML .= " $SUMstatusTXT |";
    +			$SUMstatusesFILE .= "$SUMstatusTXT,";
    +			}
    +		$n++;
    +		}
    +	### END loop through each status ###
    +
    +	$TOTcalls = sprintf("%7s", $TOTcalls);
    +	$CIScountTOT = sprintf("%7s", $CIScountTOT);
    +	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
    +		{$DNCcountPCT=0;}
    +	else
    +		{
    +		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
    +		}
    +	#$DNCcountPCT = round($DNCcountPCT,2);
    +	$DNCcountPCT = round($DNCcountPCT);
    +	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
    +	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
    +
    +
    +	if ($file_download < 1)
    +		{
    +		echo "+------------+--------+--------+--------+$statusesHEAD\n";
    +		echo "| TOTALS     | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
    +		echo "+------------+--------+--------+--------+$statusesHEAD\n";
    +
    +		echo "\n\n
    "; + } + else + { + $file_output .= "TOTALS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + + +if ($file_download > 0) + { + $US='_'; + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_DAYS_$user$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + + + +echo "
    \n"; +echo "
    Dates:
    "; +echo "\n"; +echo "\n"; +echo "
    to
    \n"; +echo "
    Campaigns:
    "; +echo "\n"; +echo "
    User:
    "; +echo "\n"; +echo "
    Shift:
    "; +echo "

    \n"; +echo "\n"; +echo "
            "; +echo ""; +if (strlen($user) > 1) + { + echo " DOWNLOAD | \n"; + echo " USER | \n"; + echo " USER STATS | \n"; + } +else + {echo " USERS | \n";} +echo "REPORTS \n"; +echo "
    "; + +echo "
    \n\n"; + +echo "
    \n"; +echo "\n"; +echo "
    \n\n\n\n\n\n\n\n\n\n";
    +
    +$m=0;
    +while ($m < $k)
    +	{
    +	$sort_split = explode("-----",$TOPsort[$m]);
    +	$i = $sort_split[1];
    +	$sort_order[$m] = "$i";
    +
    +	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
    +		{echo "              \n";}
    +	else
    +		{
    +		echo "              ";
    +		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 120 );
    +		$h=0;
    +		while ($h <= $TOPsortPLOT)
    +			{
    +			echo " ";
    +			$h++;
    +			}
    +		echo "\n";
    +		}
    +	$m++;
    +	}
    +
    +echo "\n";
    +
    +?>
    +
    +
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_disposition.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_disposition.php
    new file mode 100644
    index 00000000..6833e89e
    --- /dev/null
    +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_disposition.php
    @@ -0,0 +1,238 @@
    +    LICENSE: AGPLv2
    +#
    +# CHANGES
    +#
    +# 70201-1213 - First build - from Marin Blu
    +# 90508-0644 - Changed to PHP long tags
    +#
    +
    +require("dbconnect.php");
    +
    +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
    +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
    +$PHP_SELF=$_SERVER['PHP_SELF'];
    +if (isset($_GET["group"]))				{$group=$_GET["group"];}
    +	elseif (isset($_POST["group"]))		{$group=$_POST["group"];}
    +if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
    +	elseif (isset($_POST["query_date"]))		{$query_date=$_POST["query_date"];}
    +if (isset($_GET["shift"]))				{$shift=$_GET["shift"];}
    +	elseif (isset($_POST["shift"]))		{$shift=$_POST["shift"];}
    +if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
    +	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
    +if (isset($_GET["SUBMIT"]))				{$SUBMIT=$_GET["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_TIME = date("Y-m-d H:i:s");
    +$STARTtime = date("U");
    +if (!isset($group)) {$group = '';}
    +if (!isset($begin_date)) {$begin_date =  $NOW_DATE;}
    +if (!isset($end_date)) {$end_date =  $NOW_DATE;}
    +
    +$stmt="select campaign_id from vicidial_campaigns;";
    +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$campaigns_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $campaigns_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$groups[$i] =$row[0];
    +	$i++;
    +	}
    +?>
    +
    +
    +
    +
    +
    +\n";
    +echo "VICIDIAL: Agent Disposition\n";
    +echo "
    \n"; +echo "Date - From: to \n"; +echo "  \n"; +echo "\n"; +echo "\n"; +echo "           MODIFY | REPORTS \n"; +echo "\n\n"; + +echo "
    \n";
    +
    +
    +if (!$group)
    +{
    +echo "\n";
    +echo "PLEASE SELECT A SERVER AND DATE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +
    +echo "VICIDIAL: Agent Disposition                             $NOW_TIME\n";
    +
    +echo "Time range: $begin_date to $end_date \n\n";
    +echo "---------- Disposition Details -------------\n\n";
    +
    +echo "+-----------------+------------+--------+--------+--------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+\n";
    +echo "| USER NAME       | ID         | CALLS  | TALK   | TALKAVG| A    | B    |CALLBK|CBHOLD| DEC  | DC   | DNC  | DROP |INCALL| LB   | N    | NA   | NI   | NP   | NQ   |QUEUE | SALE | XFER |\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 >= '$begin_date 00:00:01' and call_date <= '$end_date 23:59:59'  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;";
    +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$rows_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $rows_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$TOTcalls=($TOTcalls + $row[0]);
    +	$TOTtotTALK=($TOTtotTALK + $row[1]);
    +	$calls[$i] =	sprintf("%-6s", $row[0]);
    +	$full_name[$i]=	sprintf("%-15s", $row[2]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}
    +	$user[$i] =		sprintf("%-10s", $row[3]); while(strlen($user[$i])>10) {$user[$i] = substr("$user[$i]", 0, -1);}
    +	$USERtotTALK =	$row[1];
    +	$USERavgTALK =	$row[4];
    +
    +	$USERtotTALK_M = ($USERtotTALK / 60);
    +	$USERtotTALK_M = round($USERtotTALK_M, 2);
    +	$USERtotTALK_M_int = intval("$USERtotTALK_M");
    +	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
    +	$USERtotTALK_S = ($USERtotTALK_S * 60);
    +	$USERtotTALK_S = round($USERtotTALK_S, 0);
    +	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
    +	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
    +	$pfUSERtotTALK_MS[$i] =		sprintf("%6s", $USERtotTALK_MS);
    +
    +	$USERavgTALK_M = ($USERavgTALK / 60);
    +	$USERavgTALK_M = round($USERavgTALK_M, 2);
    +	$USERavgTALK_M_int = intval("$USERavgTALK_M");
    +	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
    +	$USERavgTALK_S = ($USERavgTALK_S * 60);
    +	$USERavgTALK_S = round($USERavgTALK_S, 0);
    +	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
    +	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
    +	$pfUSERavgTALK_MS[$i] =		sprintf("%6s", $USERavgTALK_MS);
    +	$i++;
    +	}
    +	
    +$k=0;
    +
    +while($k < $i)
    +	
    +	{
    +	$ctA[$k]="0   "; $ctB[$k]="0   "; $ctDC[$k]="0   "; $ctDNC[$k]="0   "; $ctN[$k]="0   "; $ctNI[$k]="0   "; $ctSALE[$k]="0   ";  $ctINCALL[$k]="0   ";  $ctDROP[$k]="0   ";  $ctQUEUE[$k]="0   ";  $ctNP[$k]="0   ";   $ctDEC[$k]="0   ";  $ctNQ[$k]="0   ";  $ctNA[$k]="0   ";   $ctXFER[$k]="0   "; $ctLB[$k]="0   ";  $ctCALLBK[$k]="0   "; $ctCBHOLD[$k]="0   ";
    +	$stmt="select count(*),status from vicidial_log where call_date >= '$begin_date 00:00:01' and call_date <= '$end_date 23:59:59'  and user='$user[$k]' and campaign_id='" . mysql_real_escape_string($group) . "' group by status;";
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$rows_to_print = mysql_num_rows($rslt);
    +	$m=0;
    +	while ($m < $rows_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		if ($row[1] == 'A') {$ctA[$k]=sprintf("%-4s", $row[0]);		$TOT_A = ($TOT_A + $row[0]);}
    +		if ($row[1] == 'B') {$ctB[$k]=sprintf("%-4s", $row[0]);		$TOT_B = ($TOT_B + $row[0]);}
    +		if ($row[1] == 'DC') {$ctDC[$k]=sprintf("%-4s", $row[0]);	$TOT_DC = ($TOT_DC + $row[0]);}
    +		if ($row[1] == 'DNC') {$ctDNC[$k]=sprintf("%-4s", $row[0]);	$TOT_DNC = ($TOT_DNC + $row[0]);}
    +		if ($row[1] == 'N') {$ctN[$k]=sprintf("%-4s", $row[0]);		$TOT_N = ($TOT_N + $row[0]);}
    +		if ($row[1] == 'NI') {$ctNI[$k]=sprintf("%-4s", $row[0]);	$TOT_NI = ($TOT_NI + $row[0]);}
    +		if ($row[1] == 'SALE') {$ctSALE[$k]=sprintf("%-4s", $row[0]);	$TOT_SALE = ($TOT_SALE + $row[0]);}
    +		if ($row[1] == 'INCALL') {$ctINCALL[$k]=sprintf("%-4s", $row[0]);	$TOT_INCALL = ($TOT_INCALL + $row[0]);}
    +		if ($row[1] == 'DROP') {$ctDROP[$k]=sprintf("%-4s", $row[0]);	$TOT_DROP = ($TOT_DROP + $row[0]);}
    +		if ($row[1] == 'QUEUE') {$ctQUEUE[$k]=sprintf("%-4s", $row[0]);	$TOT_QUEUE = ($TOT_QUEUE + $row[0]);}
    +		if ($row[1] == 'NP') {$ctNP[$k]=sprintf("%-4s", $row[0]);	$TOT_NP = ($TOT_NP + $row[0]);}
    +		if ($row[1] == 'DEC') {$ctDEC[$k]=sprintf("%-4s", $row[0]);	$TOT_DEC = ($TOT_DEC + $row[0]);}
    +		if ($row[1] == 'NQ') {$ctNQ[$k]=sprintf("%-4s", $row[0]);	$TOT_NQ = ($TOT_NQ + $row[0]);}
    +		if ($row[1] == 'NA') {$ctNA[$k]=sprintf("%-4s", $row[0]);	$TOT_NA = ($TOT_NA + $row[0]);}
    +		if ($row[1] == 'XFER') {$ctXFER[$k]=sprintf("%-4s", $row[0]);	$TOT_XFER = ($TOT_XFER + $row[0]);}
    +		if ($row[1] == 'LB') {$ctLB[$k]=sprintf("%-4s", $row[0]);	$TOT_LB = ($TOT_LB + $row[0]);}
    +		if ($row[1] == 'CALLBK') {$ctCALLBK[$k]=sprintf("%-4s", $row[0]);	$TOT_CALLBK = ($TOT_CALLBK + $row[0]);}
    +		if ($row[1] == 'CBHOLD') {$ctCBHOLD[$k]=sprintf("%-4s", $row[0]);	$TOT_CBHOLD = ($TOT_CBHOLD + $row[0]);}
    +		$m++;
    +		}
    +	echo "| $full_name[$k] | $user[$k] | $calls[$k] | $pfUSERtotTALK_MS[$k] | $pfUSERavgTALK_MS[$k] | $ctA[$k] | $ctB[$k] | $ctCALLBK[$k] | $ctCBHOLD[$k] | $ctDEC[$k] | $ctDC[$k] | $ctDNC[$k] | $ctDROP[$k] | $ctINCALL[$k] | $ctLB[$k] | $ctN[$k] | $ctNA[$k] | $ctNI[$k] | $ctNP[$k] | $ctNQ[$k] | $ctQUEUE[$k] | $ctSALE[$k] | $ctXFER[$k] | \n";
    +
    +	$k++;
    +	}
    +
    +	$TOTcalls =	sprintf("%-7s", $TOTcalls);
    +
    +	$TOTtotTALK_M = ($TOTtotTALK / 60);
    +	$TOTtotTALK_M = round($TOTtotTALK_M, 2);
    +	$TOTtotTALK_M_int = intval("$TOTtotTALK_M");
    +	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
    +	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
    +	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
    +	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
    +	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
    +	$TOTtotTALK_MS =		sprintf("%7s", $TOTtotTALK_MS);
    +		while(strlen($TOTtotTALK_MS)>7) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
    +
    +	$TOT_A = sprintf("%-5s", $TOT_A);
    +	$TOT_B = sprintf("%-5s", $TOT_B);
    +	$TOT_DC = sprintf("%-5s", $TOT_DC);
    +	$TOT_DNC = sprintf("%-5s", $TOT_DNC);
    +	$TOT_N = sprintf("%-5s", $TOT_N);
    +	$TOT_NI = sprintf("%-5s", $TOT_NI);
    +	$TOT_SALE = sprintf("%-5s", $TOT_SALE);
    +	$TOT_INCALL = sprintf("%-5s", $TOT_INCALL);
    +	$TOT_DROP = sprintf("%-5s", $TOT_DROP); 
    +	$TOT_QUEUE = sprintf("%-5s", $TOT_QUEUE);
    +	$TOT_NP = sprintf("%-5s", $TOT_NP);
    +	$TOT_DEC = sprintf("%-5s", $TOT_DEC);
    +	$TOT_NQ = sprintf("%-5s", $TOT_NQ);
    +	$TOT_NA = sprintf("%-5s", $TOT_NA);
    +	$TOT_XFER = sprintf("%-5s", $TOT_XFER);
    +	$TOT_LB= sprintf("%-5s", $TOT_LB);
    +	$TOT_CALLBK = sprintf("%-5s", $TOT_CALLBK);
    +	$TOT_CBHOLD = sprintf("%-5s", $TOT_CBHOLD);
    +
    +echo "+-----------------+------------+--------+--------+--------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+\n";
    +echo "|  TOTALS                      | $TOTcalls| $TOTtotTALK_MS|        | $TOT_A| $TOT_B| $TOT_CALLBK| $TOT_CBHOLD| $TOT_DEC| $TOT_DC| $TOT_DNC| $TOT_DROP| $TOT_INCALL| $TOT_LB| $TOT_N| $TOT_NA| $TOT_NI| $TOT_NP| $TOT_NQ| $TOT_QUEUE| $TOT_SALE| $TOT_XFER|\n";
    +echo "+-----------------+------------+--------+--------+--------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+\n";
    +echo "\n";
    +
    +}
    +?>
    +
    \ No newline at end of file
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_performance.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_performance.php
    new file mode 100644
    index 00000000..95133adb
    --- /dev/null
    +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_performance.php
    @@ -0,0 +1,258 @@
    +    LICENSE: AGPLv2
    +#
    +# CHANGES
    +#
    +# 60619-1711 - Added variable filtering to eliminate SQL injection attack threat
    +#            - Added required user/pass to gain access to this page
    +# 70201-1203 - Added non_latin UTF8 output code, widened USER ID to 8 chars
    +# 90508-0644 - Changed to PHP long tags
    +#
    +
    +require("dbconnect.php");
    +
    +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
    +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
    +$PHP_SELF=$_SERVER['PHP_SELF'];
    +if (isset($_GET["group"]))				{$group=$_GET["group"];}
    +	elseif (isset($_POST["group"]))		{$group=$_POST["group"];}
    +if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
    +	elseif (isset($_POST["query_date"]))		{$query_date=$_POST["query_date"];}
    +if (isset($_GET["shift"]))				{$shift=$_GET["shift"];}
    +	elseif (isset($_POST["shift"]))		{$shift=$_POST["shift"];}
    +if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
    +	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
    +if (isset($_GET["SUBMIT"]))				{$SUBMIT=$_GET["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 and view_reports='1';";
    +	if ($DB) {echo "|$stmt|\n";}
    +	if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	$row=mysql_fetch_row($rslt);
    +	$auth=$row[0];
    +
    +  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_TIME = date("Y-m-d H:i:s");
    +$STARTtime = date("U");
    +if (!isset($group)) {$group = '';}
    +if (!isset($query_date)) {$query_date = $NOW_DATE;}
    +
    +$stmt="select campaign_id from vicidial_campaigns;";
    +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$campaigns_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $campaigns_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$groups[$i] =$row[0];
    +	$i++;
    +	}
    +?>
    +
    +
    +
    +
    +
    +\n";
    +echo "VICIDIAL: Agent Performance\n";
    +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFY | REPORTS \n"; +echo "
    \n\n"; + +echo "
    \n";
    +
    +
    +if (!$group)
    +{
    +echo "\n";
    +echo "PLEASE SELECT A SERVER AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
    +echo " NOTE: stats taken from 6 hour shift specified\n";
    +}
    +
    +else
    +{
    +if ($shift == 'AM') 
    +	{
    +	$query_date_BEGIN = "$query_date 08:45:00";   
    +	$query_date_END = "$query_date 15:33:00";
    +	$time_BEGIN = "08:45:00";   
    +	$time_END = "15:33:00";
    +	}
    +if ($shift == 'PM') 
    +	{
    +	$query_date_BEGIN = "$query_date 15:33:00";   
    +	$query_date_END = "$query_date 23:15:00";
    +	$time_BEGIN = "15:33:00";   
    +	$time_END = "23:15:00";
    +	}
    +
    +echo "VICIDIAL: Agent Performance                             $NOW_TIME\n";
    +
    +echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +echo "---------- AGENTS Details -------------\n\n";
    +
    +echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
    +echo "| USER NAME       | ID       | CALLS  | TALK   | TALKAVG| A    | B    | DC   | DNC  | N    | NI   | SALE |\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='" . mysql_real_escape_string($group) . "' group by full_name order by calls desc limit 1000;";
    +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$rows_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $rows_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$TOTcalls=($TOTcalls + $row[0]);
    +	$TOTtotTALK=($TOTtotTALK + $row[1]);
    +	$calls[$i] =	sprintf("%-6s", $row[0]);
    +
    +	if ($non_latin < 1)
    +	{
    +   	 $full_name[$i]=	sprintf("%-15s", $row[2]); 
    +	 while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}
    +
    +	 $user[$i] =		sprintf("%-6s", $row[3]);
    +        while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
    +       }
    +	else
    +	{	
    +        $full_name[$i]=	sprintf("%-45s", $row[2]); 
    +	 while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}
    +
    + 	 $user[$i] =		sprintf("%-18s", $row[3]);
    +	 while(mb_strlen($user[$i],'utf-8')>6) {$user[$i] = mb_substr("$user[$i]", 0, -1,'utf-8');}
    +	}
    +
    +	$user[$i] =		sprintf("%-8s", $row[3]);
    +	$USERtotTALK =	$row[1];
    +	$USERavgTALK =	$row[4];
    +
    +	$USERtotTALK_M = ($USERtotTALK / 60);
    +	$USERtotTALK_M = round($USERtotTALK_M, 2);
    +	$USERtotTALK_M_int = intval("$USERtotTALK_M");
    +	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
    +	$USERtotTALK_S = ($USERtotTALK_S * 60);
    +	$USERtotTALK_S = round($USERtotTALK_S, 0);
    +	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
    +	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
    +	$pfUSERtotTALK_MS[$i] =		sprintf("%6s", $USERtotTALK_MS);
    +
    +	$USERavgTALK_M = ($USERavgTALK / 60);
    +	$USERavgTALK_M = round($USERavgTALK_M, 2);
    +	$USERavgTALK_M_int = intval("$USERavgTALK_M");
    +	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
    +	$USERavgTALK_S = ($USERavgTALK_S * 60);
    +	$USERavgTALK_S = round($USERavgTALK_S, 0);
    +	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
    +	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
    +	$pfUSERavgTALK_MS[$i] =		sprintf("%6s", $USERavgTALK_MS);
    +	$i++;
    +	}
    +
    +$k=0;
    +while($k < $i)
    +	{
    +	$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='" . mysql_real_escape_string($group) . "' group by status;";
    +	if ($non_latin > 0)
    +	{
    +	$rslt=mysql_query("SET NAMES 'UTF8'");
    +	}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$rows_to_print = mysql_num_rows($rslt);
    +	$m=0;
    +	while ($m < $rows_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		if ($row[1] == 'A') {$ctA[$k]=sprintf("%-4s", $row[0]);		$TOT_A = ($TOT_A + $row[0]);}
    +		if ($row[1] == 'B') {$ctB[$k]=sprintf("%-4s", $row[0]);		$TOT_B = ($TOT_B + $row[0]);}
    +		if ($row[1] == 'DC') {$ctDC[$k]=sprintf("%-4s", $row[0]);	$TOT_DC = ($TOT_DC + $row[0]);}
    +		if ($row[1] == 'DNC') {$ctDNC[$k]=sprintf("%-4s", $row[0]);	$TOT_DNC = ($TOT_DNC + $row[0]);}
    +		if ($row[1] == 'N') {$ctN[$k]=sprintf("%-4s", $row[0]);		$TOT_N = ($TOT_N + $row[0]);}
    +		if ($row[1] == 'NI') {$ctNI[$k]=sprintf("%-4s", $row[0]);	$TOT_NI = ($TOT_NI + $row[0]);}
    +		if (($row[1] == 'SALE') || ($row[1] == 'XFER') ) {$ctSALE[$k]=sprintf("%-4s", $row[0]);	$TOT_SALE = ($TOT_SALE + $row[0]);}
    +		$m++;
    +		}
    +	echo "| $full_name[$k] | $user[$k] | $calls[$k] | $pfUSERtotTALK_MS[$k] | $pfUSERavgTALK_MS[$k] | $ctA[$k] | $ctB[$k] | $ctDC[$k] | $ctDNC[$k] | $ctN[$k] | $ctNI[$k] | $ctSALE[$k] |\n";
    +
    +
    +
    +	$k++;
    +	}
    +
    +	$TOTcalls =	sprintf("%-7s", $TOTcalls);
    +
    +	$TOTtotTALK_M = ($TOTtotTALK / 60);
    +	$TOTtotTALK_M = round($TOTtotTALK_M, 2);
    +	$TOTtotTALK_M_int = intval("$TOTtotTALK_M");
    +	$TOTtotTALK_S = ($TOTtotTALK_M - $TOTtotTALK_M_int);
    +	$TOTtotTALK_S = ($TOTtotTALK_S * 60);
    +	$TOTtotTALK_S = round($TOTtotTALK_S, 0);
    +	if ($TOTtotTALK_S < 10) {$TOTtotTALK_S = "0$TOTtotTALK_S";}
    +	$TOTtotTALK_MS = "$TOTtotTALK_M_int:$TOTtotTALK_S";
    +	$TOTtotTALK_MS =		sprintf("%7s", $TOTtotTALK_MS);
    +		while(strlen($TOTtotTALK_MS)>7) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
    +
    +	$TOT_A = sprintf("%-5s", $TOT_A);
    +	$TOT_B = sprintf("%-5s", $TOT_B);
    +	$TOT_DC = sprintf("%-5s", $TOT_DC);
    +	$TOT_DNC = sprintf("%-5s", $TOT_DNC);
    +	$TOT_N = sprintf("%-5s", $TOT_N);
    +	$TOT_NI = sprintf("%-5s", $TOT_NI);
    +	$TOT_SALE = sprintf("%-5s", $TOT_SALE);
    +
    +echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
    +echo "|  TOTALS                    | $TOTcalls| $TOTtotTALK_MS|        | $TOT_A| $TOT_B| $TOT_DC| $TOT_DNC| $TOT_N| $TOT_NI| $TOT_SALE|\n";
    +echo "+-----------------+----------+--------+--------+--------+------+------+------+------+------+------+------+\n";
    +
    +echo "\n";
    +
    +}
    +
    +
    +
    +?>
    +
    +
    \ No newline at end of file
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_performance_detail.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_performance_detail.php
    new file mode 100644
    index 00000000..cdcd73bd
    --- /dev/null
    +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_performance_detail.php
    @@ -0,0 +1,822 @@
    +    LICENSE: AGPLv2
    +#
    +# CHANGES
    +#
    +# 71119-2359 - First build
    +# 71121-0144 - Replace existing AST_agent_performance_detail.php script with this one
    +#            - Fixed zero division bug
    +# 71218-1155 - added end_date for multi-day reports
    +# 80428-0144 - UTF8 cleanup
    +# 80712-1007 - tally bug fixes and time display change
    +# 81030-0346 - Added pause code stats
    +# 81030-1924 - Added total non-pause and total logged-in time to pause code section
    +# 81108-0716 - fixed user same-name bug
    +# 81110-0056 - fixed pause code display bug
    +# 90310-2039 - Admin header
    +# 90508-0644 - Changed to PHP long tags
    +# 90523-0935 - Rewrite of seconds to minutes and hours conversion
    +# 90717-1500 - Changed to be multi-campaign, multi-user-group select
    +# 90908-1058 - Added DEAD time statistics
    +#
    +
    +require("dbconnect.php");
    +require("functions.php");
    +
    +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
    +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
    +$PHP_SELF=$_SERVER['PHP_SELF'];
    +if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
    +	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
    +if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
    +	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
    +if (isset($_GET["group"]))					{$group=$_GET["group"];}
    +	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
    +if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
    +	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
    +if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
    +	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
    +if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
    +	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
    +if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
    +	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
    +if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
    +	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
    +if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
    +	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
    +
    +
    +if (strlen($shift)<2) {$shift='ALL';}
    +
    +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date&group=$group&user_group=$user_group&shift=$shift&DB=$DB";
    +
    +#############################################
    +##### START SYSTEM_SETTINGS LOOKUP #####
    +$stmt = "SELECT use_non_latin FROM system_settings;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$qm_conf_ct = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $qm_conf_ct)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$non_latin =					$row[0];
    +	$i++;
    +	}
    +##### END SETTINGS LOOKUP #####
    +###########################################
    +
    +$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 and view_reports='1';";
    +if ($DB) {echo "|$stmt|\n";}
    +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +$row=mysql_fetch_row($rslt);
    +$auth=$row[0];
    +
    +  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;
    +	}
    +
    +$MT[0]='';
    +$NOW_DATE = date("Y-m-d");
    +$NOW_TIME = date("Y-m-d H:i:s");
    +$STARTtime = date("U");
    +if (!isset($group)) {$group = '';}
    +if (!isset($query_date)) {$query_date = $NOW_DATE;}
    +if (!isset($end_date)) {$end_date = $NOW_DATE;}
    +
    +$stmt="select campaign_id from vicidial_campaigns;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$campaigns_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $campaigns_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$groups[$i] =$row[0];
    +	$i++;
    +	}
    +$stmt="select user_group from vicidial_user_groups;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$user_groups_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $user_groups_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$user_groups[$i] =$row[0];
    +	$i++;
    +	}
    +
    +$i=0;
    +$group_string='|';
    +$group_ct = count($group);
    +while($i < $group_ct)
    +	{
    +	$group_string .= "$group[$i]|";
    +	$group_SQL .= "'$group[$i]',";
    +	$groupQS .= "&group[]=$group[$i]";
    +	$i++;
    +	}
    +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
    +	{$group_SQL = "";}
    +else
    +	{
    +	$group_SQL = eregi_replace(",$",'',$group_SQL);
    +	$group_SQL = "and campaign_id IN($group_SQL)";
    +	}
    +
    +$i=0;
    +$user_group_string='|';
    +$user_group_ct = count($user_group);
    +while($i < $user_group_ct)
    +	{
    +	$user_group_string .= "$user_group[$i]|";
    +	$user_group_SQL .= "'$user_group[$i]',";
    +	$user_groupQS .= "&user_group[]=$user_group[$i]";
    +	$i++;
    +	}
    +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
    +	{$user_group_SQL = "";}
    +else
    +	{
    +	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
    +	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
    +	}
    +
    +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
    ";} +?> + + + + + +\n"; +echo "Agent Performance Detail\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
    "; + +echo "
    \n"; +echo "
    Dates:
    "; +echo "\n"; +echo "\n"; +echo "
    to
    \n"; +echo "
    Campaigns:
    "; +echo "\n"; +echo "
    User Groups:
    "; +echo "\n"; +echo "
    Shift:
    "; +echo "

    \n"; +echo "\n"; +echo "
            "; + +echo "          \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
    "; + +echo "
    \n\n"; + + +echo "
    \n";
    +
    +
    +if (!$group)
    +{
    +echo "\n";
    +echo "PLEASE SELECT A CAMPAIGN AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
    +echo " NOTE: stats taken from shift specified\n";
    +}
    +
    +else
    +{
    +if ($shift == 'AM') 
    +	{
    +	$time_BEGIN=$AM_shift_BEGIN;
    +	$time_END=$AM_shift_END;
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +	}
    +if ($shift == 'PM') 
    +	{
    +	$time_BEGIN=$PM_shift_BEGIN;
    +	$time_END=$PM_shift_END;
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +	}
    +if ($shift == 'ALL') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +	}
    +$query_date_BEGIN = "$query_date $time_BEGIN";   
    +$query_date_END = "$end_date $time_END";
    +
    +if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
    +else {$ugSQL='';}
    +
    +echo "Agent Performance Detail                        $NOW_TIME\n";
    +
    +echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +echo "---------- AGENTS Details -------------\n\n";
    +
    +
    +
    +
    +
    +$statuses='-';
    +$statusesTXT='';
    +$statusesHEAD='';
    +$statusesHTML='';
    +$statusesARY[0]='';
    +$j=0;
    +$users='-';
    +$usersARY[0]='';
    +$user_namesARY[0]='';
    +$k=0;
    +
    +$stmt="select count(*) as calls,sum(talk_sec) as talk,full_name,vicidial_users.user,sum(pause_sec),sum(wait_sec),sum(dispo_sec),status,sum(dead_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 pause_sec<36000 and wait_sec<36000 and talk_sec<36000 and dispo_sec<36000  $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$rows_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $rows_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +#	$row[0] = ($row[0] - 1);	# subtract 1 for login/logout event compensation
    +	
    +	$calls[$i] =		$row[0];
    +	$talk_sec[$i] =		$row[1];
    +	$full_name[$i] =	$row[2];
    +	$user[$i] =			$row[3];
    +	$pause_sec[$i] =	$row[4];
    +	$wait_sec[$i] =		$row[5];
    +	$dispo_sec[$i] =	$row[6];
    +	$status[$i] =		$row[7];
    +	$dead_sec[$i] =		$row[8];
    +	if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
    +		{
    +		$statusesTXT = sprintf("%8s", $status[$i]);
    +		$statusesHEAD .= "----------+";
    +		$statusesHTML .= " $statusesTXT |";
    +		$statuses .= "$status[$i]-";
    +		$statusesARY[$j] = $status[$i];
    +		$j++;
    +		}
    +	if (!eregi("-$user[$i]-", $users))
    +		{
    +		$users .= "$user[$i]-";
    +		$usersARY[$k] = $user[$i];
    +		$user_namesARY[$k] = $full_name[$i];
    +		$k++;
    +		}
    +
    +	$i++;
    +	}
    +
    +echo "CALL STATS BREAKDOWN:\n";
    +echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
    +echo "| USER NAME       | ID       | CALLS  | TIME      | PAUSE    |PAUSAVG | WAIT     |WAITAVG | TALK     |TALKAVG | DISPO    |DISPAVG | DEAD     |DEADAVG |$statusesHTML\n";
    +echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
    +
    +
    +### BEGIN loop through each user ###
    +$m=0;
    +while ($m < $k)
    +	{
    +	$Suser=$usersARY[$m];
    +	$Sfull_name=$user_namesARY[$m];
    +	$Stime=0;
    +	$Scalls=0;
    +	$Stalk_sec=0;
    +	$Spause_sec=0;
    +	$Swait_sec=0;
    +	$Sdispo_sec=0;
    +	$Sdead_sec=0;
    +	$SstatusesHTML='';
    +
    +	### BEGIN loop through each status ###
    +	$n=0;
    +	while ($n < $j)
    +		{
    +		$Sstatus=$statusesARY[$n];
    +		$SstatusTXT='';
    +		### BEGIN loop through each stat line ###
    +		$i=0; $status_found=0;
    +		while ($i < $rows_to_print)
    +			{
    +			if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
    +				{
    +				$Scalls =		($Scalls + $calls[$i]);
    +				$Stalk_sec =	($Stalk_sec + $talk_sec[$i]);
    +				$Spause_sec =	($Spause_sec + $pause_sec[$i]);
    +				$Swait_sec =	($Swait_sec + $wait_sec[$i]);
    +				$Sdispo_sec =	($Sdispo_sec + $dispo_sec[$i]);
    +				$Sdead_sec =	($Sdead_sec + $dead_sec[$i]);
    +				$SstatusTXT = sprintf("%8s", $calls[$i]);
    +				$SstatusesHTML .= " $SstatusTXT |";
    +				$status_found++;
    +				}
    +			$i++;
    +			}
    +		if ($status_found < 1)
    +			{
    +			$SstatusesHTML .= "        0 |";
    +			}
    +		### END loop through each stat line ###
    +		$n++;
    +		}
    +	### END loop through each status ###
    +	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
    +	$TOTcalls=($TOTcalls + $Scalls);
    +	$TOTtime=($TOTtime + $Stime);
    +	$TOTtotTALK=($TOTtotTALK + $Stalk_sec);
    +	$TOTtotWAIT=($TOTtotWAIT + $Swait_sec);
    +	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
    +	$TOTtotDISPO=($TOTtotDISPO + $Sdispo_sec);
    +	$TOTtotDEAD=($TOTtotDEAD + $Sdead_sec);
    +	$Stime = ($Stalk_sec + $Spause_sec + $Swait_sec + $Sdispo_sec);
    +	if ( ($Scalls > 0) and ($Stalk_sec > 0) ) {$Stalk_avg = ($Stalk_sec/$Scalls);}
    +		else {$Stalk_avg=0;}
    +	if ( ($Scalls > 0) and ($Spause_sec > 0) ) {$Spause_avg = ($Spause_sec/$Scalls);}
    +		else {$Spause_avg=0;}
    +	if ( ($Scalls > 0) and ($Swait_sec > 0) ) {$Swait_avg = ($Swait_sec/$Scalls);}
    +		else {$Swait_avg=0;}
    +	if ( ($Scalls > 0) and ($Sdispo_sec > 0) ) {$Sdispo_avg = ($Sdispo_sec/$Scalls);}
    +		else {$Sdispo_avg=0;}
    +	if ( ($Scalls > 0) and ($Sdead_sec > 0) ) {$Sdead_avg = ($Sdead_sec/$Scalls);}
    +		else {$Sdead_avg=0;}
    +
    +	$RAWuser = $Suser;
    +	$RAWcalls = $Scalls;
    +	$Scalls =	sprintf("%6s", $Scalls);
    +
    +	if ($non_latin < 1)
    +		{
    +		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
    +		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
    +		$Suser =		sprintf("%-8s", $Suser);
    +		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
    +		}
    +	else
    +		{	
    +		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
    +		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
    +		$Suser =	sprintf("%-24s", $Suser);
    +		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
    +		}
    +
    +	$pfUSERtime_MS =		sec_convert($Stime,'H'); 
    +	$pfUSERtotTALK_MS =		sec_convert($Stalk_sec,'H'); 
    +	$pfUSERavgTALK_MS =		sec_convert($Stalk_avg,'M'); 
    +	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
    +	$USERavgPAUSE_MS =		sec_convert($Spause_avg,'M'); 
    +	$USERtotWAIT_MS =		sec_convert($Swait_sec,'H'); 
    +	$USERavgWAIT_MS =		sec_convert($Swait_avg,'M'); 
    +	$USERtotDISPO_MS =		sec_convert($Sdispo_sec,'H'); 
    +	$USERavgDISPO_MS =		sec_convert($Sdispo_avg,'M'); 
    +	$USERtotDEAD_MS =		sec_convert($Sdead_sec,'H'); 
    +	$USERavgDEAD_MS =		sec_convert($Sdead_avg,'M'); 
    +
    +	$pfUSERtime_MS =		sprintf("%9s", $pfUSERtime_MS);
    +	$pfUSERtotTALK_MS =		sprintf("%8s", $pfUSERtotTALK_MS);
    +	$pfUSERavgTALK_MS =		sprintf("%6s", $pfUSERavgTALK_MS);
    +	$pfUSERtotPAUSE_MS =	sprintf("%8s", $USERtotPAUSE_MS);
    +	$pfUSERavgPAUSE_MS =	sprintf("%6s", $USERavgPAUSE_MS);
    +	$pfUSERtotWAIT_MS =		sprintf("%8s", $USERtotWAIT_MS);
    +	$pfUSERavgWAIT_MS =		sprintf("%6s", $USERavgWAIT_MS);
    +	$pfUSERtotDISPO_MS =	sprintf("%8s", $USERtotDISPO_MS);
    +	$pfUSERavgDISPO_MS =	sprintf("%6s", $USERavgDISPO_MS);
    +	$pfUSERtotDEAD_MS =		sprintf("%8s", $USERtotDEAD_MS);
    +	$pfUSERavgDEAD_MS =		sprintf("%6s", $USERavgDEAD_MS);
    +	$PAUSEtotal[$m] = $pfUSERtotPAUSE_MS;
    +
    +	$Toutput = "| $Sfull_name | $Suser | $Scalls | $pfUSERtime_MS | $pfUSERtotPAUSE_MS | $pfUSERavgPAUSE_MS | $pfUSERtotWAIT_MS | $pfUSERavgWAIT_MS | $pfUSERtotTALK_MS | $pfUSERavgTALK_MS | $pfUSERtotDISPO_MS | $pfUSERavgDISPO_MS | $pfUSERtotDEAD_MS | $pfUSERavgDEAD_MS |$SstatusesHTML\n";
    +
    +	$TOPsorted_output[$m] = $Toutput;
    +
    +	if ($stage == 'ID')
    +		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
    +	if ($stage == 'CALLS')
    +		{$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
    +	if ($stage == 'TIME')
    +		{$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);}
    +	if (!ereg("ID|TIME|CALLS",$stage))
    +		{echo "$Toutput";}
    +
    +	$m++;
    +	}
    +### END loop through each user ###
    +
    +
    +
    +### BEGIN sort through output to display properly ###
    +if (ereg("ID|TIME|CALLS",$stage))
    +	{
    +	if (ereg("ID",$stage))
    +		{sort($TOPsort, SORT_NUMERIC);}
    +	if (ereg("TIME|CALLS",$stage))
    +		{rsort($TOPsort, SORT_NUMERIC);}
    +
    +	$m=0;
    +	while ($m < $k)
    +		{
    +		$sort_split = explode("-----",$TOPsort[$m]);
    +		$i = $sort_split[1];
    +		$sort_order[$m] = "$i";
    +		echo "$TOPsorted_output[$i]";
    +		$m++;
    +		}
    +	}
    +### END sort through output to display properly ###
    +
    +
    +
    +###### LAST LINE FORMATTING ##########
    +### BEGIN loop through each status ###
    +$SUMstatusesHTML='';
    +$n=0;
    +while ($n < $j)
    +	{
    +	$Scalls=0;
    +	$Sstatus=$statusesARY[$n];
    +	$SUMstatusTXT='';
    +	### BEGIN loop through each stat line ###
    +	$i=0; $status_found=0;
    +	while ($i < $rows_to_print)
    +		{
    +		if ($Sstatus=="$status[$i]")
    +			{
    +			$Scalls =		($Scalls + $calls[$i]);
    +			$status_found++;
    +			}
    +		$i++;
    +		}
    +	### END loop through each stat line ###
    +	if ($status_found < 1)
    +		{
    +		$SUMstatusesHTML .= "        0 |";
    +		}
    +	else
    +		{
    +		$SUMstatusTXT = sprintf("%8s", $Scalls);
    +		$SUMstatusesHTML .= " $SUMstatusTXT |";
    +		}
    +	$n++;
    +	}
    +### END loop through each status ###
    +
    +$TOTcalls =	sprintf("%7s", $TOTcalls);
    +$TOT_AGENTS = sprintf("%-4s", $m);
    +
    +if ($TOTtotTALK < 1) {$TOTavgTALK = '0';}
    +else {$TOTavgTALK = ($TOTtotTALK / $TOTcalls);}
    +if ($TOTtotDISPO < 1) {$TOTavgDISPO = '0';}
    +else {$TOTavgDISPO = ($TOTtotDISPO / $TOTcalls);}
    +if ($TOTtotDEAD < 1) {$TOTavgDEAD = '0';}
    +else {$TOTavgDEAD = ($TOTtotDEAD / $TOTcalls);}
    +if ($TOTtotPAUSE < 1) {$TOTavgPAUSE = '0';}
    +else {$TOTavgPAUSE = ($TOTtotPAUSE / $TOTcalls);}
    +if ($TOTtotWAIT < 1) {$TOTavgWAIT = '0';}
    +else {$TOTavgWAIT = ($TOTtotWAIT / $TOTcalls);}
    +
    +$TOTtime_MS =		sec_convert($TOTtime,'H'); 
    +$TOTtotTALK_MS =	sec_convert($TOTtotTALK,'H'); 
    +$TOTtotDISPO_MS =	sec_convert($TOTtotDISPO,'H'); 
    +$TOTtotDEAD_MS =	sec_convert($TOTtotDEAD,'H'); 
    +$TOTtotPAUSE_MS =	sec_convert($TOTtotPAUSE,'H'); 
    +$TOTtotWAIT_MS =	sec_convert($TOTtotWAIT,'H'); 
    +$TOTavgTALK_MS =	sec_convert($TOTavgTALK,'M'); 
    +$TOTavgDISPO_MS =	sec_convert($TOTavgDISPO,'H'); 
    +$TOTavgDEAD_MS =	sec_convert($TOTavgDEAD,'H'); 
    +$TOTavgPAUSE_MS =	sec_convert($TOTavgPAUSE,'H'); 
    +$TOTavgWAIT_MS =	sec_convert($TOTavgWAIT,'H'); 
    +
    +$TOTtime_MS =		sprintf("%10s", $TOTtime_MS);
    +$TOTtotTALK_MS =	sprintf("%10s", $TOTtotTALK_MS);
    +$TOTtotDISPO_MS =	sprintf("%10s", $TOTtotDISPO_MS);
    +$TOTtotDEAD_MS =	sprintf("%10s", $TOTtotDEAD_MS);
    +$TOTtotPAUSE_MS =	sprintf("%10s", $TOTtotPAUSE_MS);
    +$TOTtotWAIT_MS =	sprintf("%10s", $TOTtotWAIT_MS);
    +$TOTavgTALK_MS =	sprintf("%6s", $TOTavgTALK_MS);
    +$TOTavgDISPO_MS =	sprintf("%6s", $TOTavgDISPO_MS);
    +$TOTavgDEAD_MS =	sprintf("%6s", $TOTavgDEAD_MS);
    +$TOTavgPAUSE_MS =	sprintf("%6s", $TOTavgPAUSE_MS);
    +$TOTavgWAIT_MS =	sprintf("%6s", $TOTavgWAIT_MS);
    +
    +while(strlen($TOTtime_MS)>10) {$TOTtime_MS = substr("$TOTtime_MS", 0, -1);}
    +while(strlen($TOTtotTALK_MS)>10) {$TOTtotTALK_MS = substr("$TOTtotTALK_MS", 0, -1);}
    +while(strlen($TOTtotDISPO_MS)>10) {$TOTtotDISPO_MS = substr("$TOTtotDISPO_MS", 0, -1);}
    +while(strlen($TOTtotDEAD_MS)>10) {$TOTtotDEAD_MS = substr("$TOTtotDEAD_MS", 0, -1);}
    +while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
    +while(strlen($TOTtotWAIT_MS)>10) {$TOTtotWAIT_MS = substr("$TOTtotWAIT_MS", 0, -1);}
    +while(strlen($TOTavgTALK_MS)>6) {$TOTavgTALK_MS = substr("$TOTavgTALK_MS", 0, -1);}
    +while(strlen($TOTavgDISPO_MS)>6) {$TOTavgDISPO_MS = substr("$TOTavgDISPO_MS", 0, -1);}
    +while(strlen($TOTavgDEAD_MS)>6) {$TOTavgDEAD_MS = substr("$TOTavgDEAD_MS", 0, -1);}
    +while(strlen($TOTavgPAUSE_MS)>6) {$TOTavgPAUSE_MS = substr("$TOTavgPAUSE_MS", 0, -1);}
    +while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);}
    +
    +
    +echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
    +echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $TOTtime_MS|$TOTtotPAUSE_MS| $TOTavgPAUSE_MS |$TOTtotWAIT_MS| $TOTavgWAIT_MS |$TOTtotTALK_MS| $TOTavgTALK_MS |$TOTtotDISPO_MS| $TOTavgDISPO_MS |$TOTtotDEAD_MS| $TOTavgDEAD_MS |$SUMstatusesHTML\n";
    +echo "+-----------------+----------+--------+-----------+----------+--------+----------+--------+----------+--------+----------+--------+----------+--------+$statusesHEAD\n";
    +
    +echo "\n\n";
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +$sub_statuses='-';
    +$sub_statusesTXT='';
    +$sub_statusesHEAD='';
    +$sub_statusesHTML='';
    +$sub_statusesARY=$MT;
    +$j=0;
    +$PCusers='-';
    +$PCusersARY=$MT;
    +$PCuser_namesARY=$MT;
    +$k=0;
    +$stmt="select full_name,vicidial_users.user,sum(pause_sec),sub_status,sum(wait_sec + talk_sec + 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 pause_sec<36000  $group_SQL $user_group_SQL group by user,full_name,sub_status order by user,full_name,sub_status desc limit 100000;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$subs_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $subs_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$PCfull_name[$i] =	$row[0];
    +	$PCuser[$i] =		$row[1];
    +	$PCpause_sec[$i] =	$row[2];
    +	$sub_status[$i] =	$row[3];
    +	$PCnon_pause_sec[$i] =	$row[4];
    +
    +#	echo "$sub_status[$i]|$PCpause_sec[$i]\n";
    +#	if ( (!eregi("-$sub_status[$i]-", $sub_statuses)) and (strlen($sub_status[$i])>0) )
    +	if (!eregi("-$sub_status[$i]-", $sub_statuses))
    +		{
    +		$sub_statusesTXT = sprintf("%8s", $sub_status[$i]);
    +		$sub_statusesHEAD .= "----------+";
    +		$sub_statusesHTML .= " $sub_statusesTXT |";
    +		$sub_statuses .= "$sub_status[$i]-";
    +		$sub_statusesARY[$j] = $sub_status[$i];
    +		$j++;
    +		}
    +	if (!eregi("-$PCuser[$i]-", $PCusers))
    +		{
    +		$PCusers .= "$PCuser[$i]-";
    +		$PCusersARY[$k] = $PCuser[$i];
    +		$PCuser_namesARY[$k] = $PCfull_name[$i];
    +		$k++;
    +		}
    +
    +	$i++;
    +	}
    +
    +echo "PAUSE CODE BREAKDOWN:\n";
    +echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
    +echo "| USER NAME       | ID       | TOTAL    | NONPAUSE | PAUSE    |  |$sub_statusesHTML\n";
    +echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
    +
    +
    +### BEGIN loop through each user ###
    +$m=0;
    +$Suser_ct = count($usersARY);
    +$TOTtotNONPAUSE = 0;
    +$TOTtotTOTAL = 0;
    +
    +while ($m < $k)
    +	{
    +	$d=0;
    +	while ($d < $Suser_ct)
    +		{
    +		if ($usersARY[$d] === "$PCusersARY[$m]")
    +			{$pcPAUSEtotal = $PAUSEtotal[$d];}
    +		$d++;
    +		}
    +	$Suser=$PCusersARY[$m];
    +	$Sfull_name=$PCuser_namesARY[$m];
    +	$Spause_sec=0;
    +	$Snon_pause_sec=0;
    +	$Stotal_sec=0;
    +	$SstatusesHTML='';
    +
    +	### BEGIN loop through each status ###
    +	$n=0;
    +	while ($n < $j)
    +		{
    +		$Sstatus=$sub_statusesARY[$n];
    +		$SstatusTXT='';
    +		### BEGIN loop through each stat line ###
    +		$i=0; $status_found=0;
    +		while ($i < $subs_to_print)
    +			{
    +			if ( ($Suser=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") )
    +				{
    +				$Spause_sec =	($Spause_sec + $PCpause_sec[$i]);
    +				$Snon_pause_sec =	($Snon_pause_sec + $PCnon_pause_sec[$i]);
    +				$Stotal_sec =	($Stotal_sec + $PCnon_pause_sec[$i] + $PCpause_sec[$i]);
    +
    +				$USERcodePAUSE_MS =		sec_convert($PCpause_sec[$i],'H'); 
    +				$pfUSERcodePAUSE_MS =	sprintf("%6s", $USERcodePAUSE_MS);
    +
    +				$SstatusTXT = sprintf("%8s", $pfUSERcodePAUSE_MS);
    +				$SstatusesHTML .= " $SstatusTXT |";
    +				$status_found++;
    +				}
    +			$i++;
    +			}
    +		if ($status_found < 1)
    +			{
    +			$SstatusesHTML .= "        0 |";
    +			}
    +		### END loop through each stat line ###
    +		$n++;
    +		}
    +	### END loop through each status ###
    +	$TOTtotPAUSE=($TOTtotPAUSE + $Spause_sec);
    +
    +	if ($non_latin < 1)
    +		{
    +		$Sfull_name=	sprintf("%-15s", $Sfull_name); 
    +		while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
    +		$Suser =		sprintf("%-8s", $Suser);
    +		while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
    +		}
    +	else
    +		{
    +		$Sfull_name=	sprintf("%-45s", $Sfull_name); 
    +		while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
    +		$Suser =	sprintf("%-24s", $Suser);
    +		while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
    +		}
    +
    +	$TOTtotNONPAUSE = ($TOTtotNONPAUSE + $Snon_pause_sec);
    +	$TOTtotTOTAL = ($TOTtotTOTAL + $Stotal_sec);
    +
    +	$USERtotPAUSE_MS =		sec_convert($Spause_sec,'H'); 
    +	$USERtotNONPAUSE_MS =	sec_convert($Snon_pause_sec,'H'); 
    +	$USERtotTOTAL_MS =		sec_convert($Stotal_sec,'H'); 
    +
    +	$pfUSERtotPAUSE_MS =		sprintf("%8s", $USERtotPAUSE_MS);
    +	$pfUSERtotNONPAUSE_MS =		sprintf("%8s", $USERtotNONPAUSE_MS);
    +	$pfUSERtotTOTAL_MS =		sprintf("%8s", $USERtotTOTAL_MS);
    +
    +	$BOTTOMoutput = "| $Sfull_name | $Suser | $pfUSERtotTOTAL_MS | $pfUSERtotNONPAUSE_MS | $pfUSERtotPAUSE_MS |  |$SstatusesHTML\n";
    +
    +	$BOTTOMsorted_output[$m] = $BOTTOMoutput;
    +
    +	echo "$BOTTOMoutput";
    +
    +	$m++;
    +	}
    +### END loop through each user ###
    +
    +
    +
    +### BEGIN sort through output to display properly ###
    +#if (ereg("ID|TIME|CALLS",$stage))
    +#	{
    +#	$n=0;
    +#	while ($n <= $m)
    +#		{
    +#		$i = $sort_order[$m];
    +#		echo "$BOTTOMsorted_output[$i]";
    +#		$m--;
    +#		}
    +#	}
    +### END sort through output to display properly ###
    +
    +
    +
    +###### LAST LINE FORMATTING ##########
    +### BEGIN loop through each status ###
    +$SUMstatusesHTML='';
    +$TOTtotPAUSE=0;
    +$n=0;
    +while ($n < $j)
    +	{
    +	$Scalls=0;
    +	$Sstatus=$sub_statusesARY[$n];
    +	$SUMstatusTXT='';
    +	### BEGIN loop through each stat line ###
    +	$i=0; $status_found=0;
    +	while ($i < $subs_to_print)
    +		{
    +		if ($Sstatus=="$sub_status[$i]")
    +			{
    +			$Scalls =		($Scalls + $PCpause_sec[$i]);
    +			$status_found++;
    +			}
    +		$i++;
    +		}
    +	### END loop through each stat line ###
    +	if ($status_found < 1)
    +		{
    +		$SUMstatusesHTML .= "        0 |";
    +		}
    +	else
    +		{
    +		$TOTtotPAUSE = ($TOTtotPAUSE + $Scalls);
    +
    +		$USERsumstatPAUSE_MS =		sec_convert($Scalls,'H'); 
    +		$pfUSERsumstatPAUSE_MS =	sprintf("%8s", $USERsumstatPAUSE_MS);
    +
    +		$SUMstatusTXT = sprintf("%8s", $pfUSERsumstatPAUSE_MS);
    +		$SUMstatusesHTML .= " $SUMstatusTXT |";
    +		}
    +	$n++;
    +	}
    +### END loop through each status ###
    +
    +	$TOT_AGENTS = sprintf("%-4s", $m);
    +
    +	$TOTtotPAUSE_MS =		sec_convert($TOTtotPAUSE,'H'); 
    +	$TOTtotNONPAUSE_MS =	sec_convert($TOTtotNONPAUSE,'H'); 
    +	$TOTtotTOTAL_MS =		sec_convert($TOTtotTOTAL,'H'); 
    +
    +	$TOTtotPAUSE_MS =		sprintf("%10s", $TOTtotPAUSE_MS);
    +	$TOTtotNONPAUSE_MS =	sprintf("%10s", $TOTtotNONPAUSE_MS);
    +	$TOTtotTOTAL_MS =		sprintf("%10s", $TOTtotTOTAL_MS);
    +
    +	while(strlen($TOTtotPAUSE_MS)>10) {$TOTtotPAUSE_MS = substr("$TOTtotPAUSE_MS", 0, -1);}
    +	while(strlen($TOTtotNONPAUSE_MS)>10) {$TOTtotNONPAUSE_MS = substr("$TOTtotNONPAUSE_MS", 0, -1);}
    +	while(strlen($TOTtotTOTAL_MS)>10) {$TOTtotTOTAL_MS = substr("$TOTtotTOTAL_MS", 0, -1);}
    +
    +
    +echo "+-----------------+----------+----------+----------+----------+  +$sub_statusesHEAD\n";
    +echo "|  TOTALS        AGENTS:$TOT_AGENTS |$TOTtotTOTAL_MS|$TOTtotNONPAUSE_MS|$TOTtotPAUSE_MS|  |$SUMstatusesHTML\n";
    +echo "+----------------------------+----------+----------+----------+  +$sub_statusesHEAD\n";
    +
    +echo "\n\n";
    +
    +}
    +
    +
    +?>
    +
    +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_status_detail.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_status_detail.php new file mode 100644 index 00000000..af564726 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_status_detail.php @@ -0,0 +1,666 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 90206-1554 - First build +# 90225-2252 - Added CSV download option +# 90310-2030 - Admin header +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["file_download"])) {$file_download=$_GET["file_download"];} + elseif (isset($_POST["file_download"])) {$file_download=$_POST["file_download"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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; + } + +$MT[0]=''; +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $user_groups[$i] =$row[0]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($group); +while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $groupQS .= "&group[]=$group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) ) + {$group_SQL = "";} +else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and campaign_id IN($group_SQL)"; + } + +$i=0; +$user_group_string='|'; +$user_group_ct = count($user_group); +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $user_groupQS .= "&user_group[]=$user_group[$i]"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + {$user_group_SQL = "";} +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)"; + } + +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
    ";} + +$stmt="select vsc_id,vsc_name from vicidial_status_categories;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statcats_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statcats_to_print) + { + $row=mysql_fetch_row($rslt); + $vsc_id[$i] = $row[0]; + $vsc_name[$i] = $row[1]; + $vsc_count[$i] = 0; + $i++; + } + +$customer_interactive_statuses=''; +$stmt="select status from vicidial_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +$stmt="select status from vicidial_campaign_statuses where human_answered='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $customer_interactive_statuses .= "|$row[0]"; + $i++; + } +if (strlen($customer_interactive_statuses)>0) + {$customer_interactive_statuses .= '|';} + +#$customer_interactive_statuses = '|NI|DNC|CALLBK|AP|SALE|COMP|HAP1|HAP2|HBED|DIED|'; +#$customer_interactive_statuses = '|NI|DNC|CALLBK|XFER|C2|B7|B8|C1|'; + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Status Detail Report\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
    \n";
    +	}
    +
    +if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
    +	{
    +	echo "\n";
    +	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
    +	echo " NOTE: stats taken from shift specified\n";
    +	}
    +
    +else
    +	{
    +	if ($shift == 'AM') 
    +		{
    +		$time_BEGIN=$AM_shift_BEGIN;
    +		$time_END=$AM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +		}
    +	if ($shift == 'PM') 
    +		{
    +		$time_BEGIN=$PM_shift_BEGIN;
    +		$time_END=$PM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +		}
    +	if ($shift == 'ALL') 
    +		{
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +		}
    +	$query_date_BEGIN = "$query_date $time_BEGIN";   
    +	$query_date_END = "$end_date $time_END";
    +
    +	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
    +	else {$ugSQL='';}
    +
    +	if ($file_download < 1)
    +		{
    +		echo "Agent Status Detail Report                     $NOW_TIME\n";
    +
    +		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +		echo "---------- AGENT Details -------------\n\n";
    +		}
    +	else
    +		{
    +		$file_output .= "Agent Status Detail Report                     $NOW_TIME\n";
    +		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +		}
    +
    +	$statuses='-';
    +	$statusesTXT='';
    +	$statusesHEAD='';
    +	$statusesHTML='';
    +	$statusesFILE='';
    +	$statusesARY[0]='';
    +	$j=0;
    +	$users='-';
    +	$usersARY[0]='';
    +	$user_namesARY[0]='';
    +	$k=0;
    +
    +	$stmt="select count(*) as calls,full_name,vicidial_users.user,status 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 $group_SQL $user_group_SQL group by user,full_name,status order by full_name,user,status desc limit 500000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$rows_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $rows_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +
    +		if ( ($row[0] > 0) and (strlen($row[3]) > 0) and (!eregi("NULL",$row[3])))
    +			{
    +			$calls[$i] =		$row[0];
    +			$full_name[$i] =	$row[1];
    +			$user[$i] =			$row[2];
    +			$status[$i] =		$row[3];
    +			if ( (!eregi("-$status[$i]-", $statuses)) and (strlen($status[$i])>0) )
    +				{
    +				$statusesTXT = sprintf("%8s", $status[$i]);
    +				$statusesHEAD .= "----------+";
    +				$statusesHTML .= " $statusesTXT |";
    +				$statusesFILE .= "$statusesTXT,";
    +				$statuses .= "$status[$i]-";
    +				$statusesARY[$j] = $status[$i];
    +				$j++;
    +				}
    +			if (!eregi("-$user[$i]-", $users))
    +				{
    +				$users .= "$user[$i]-";
    +				$usersARY[$k] = $user[$i];
    +				$user_namesARY[$k] = $full_name[$i];
    +				$k++;
    +				}
    +			}
    +		$i++;
    +		}
    +
    +	if ($file_download < 1)
    +		{
    +		echo "CALL STATS BREAKDOWN:\n";
    +		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
    +		echo "| USER NAME       | ID       | CALLS  | CIcalls| DNC/CI%|$statusesHTML\n";
    +		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
    +		}
    +	else
    +		{
    +		$file_output .= "USER,ID,CALLS,CIcalls,DNC-CI%,$statusesFILE\n";
    +		}
    +
    +
    +	### BEGIN loop through each user ###
    +	$m=0;
    +	$CIScountTOT=0;
    +	$DNCcountTOT=0;
    +	while ($m < $k)
    +		{
    +		$Suser=$usersARY[$m];
    +		$Sfull_name=$user_namesARY[$m];
    +		$Scalls=$calls[$m];
    +		$SstatusesHTML='';
    +		$SstatusesFILE='';
    +		$CIScount=0;
    +		$DNCcount=0;
    +
    +		### BEGIN loop through each status ###
    +		$n=0;
    +		while ($n < $j)
    +			{
    +			$Sstatus=$statusesARY[$n];
    +			$SstatusTXT='';
    +			### BEGIN loop through each stat line ###
    +			$i=0; $status_found=0;
    +			while ($i < $rows_to_print)
    +				{
    +				if ( ($Suser=="$user[$i]") and ($Sstatus=="$status[$i]") )
    +					{
    +					$Scalls =		($Scalls + $calls[$i]);
    +					if (eregi("\|$status[$i]\|",$customer_interactive_statuses))
    +						{
    +						$CIScount =	($CIScount + $calls[$i]);
    +						$CIScountTOT =	($CIScountTOT + $calls[$i]);
    +						}
    +					if (eregi("DNC", $status[$i]))
    +						{
    +						$DNCcount =	($DNCcount + $calls[$i]);
    +						$DNCcountTOT =	($DNCcountTOT + $calls[$i]);
    +						}
    +					$SstatusTXT = sprintf("%8s", $calls[$i]);
    +					$SstatusesHTML .= " $SstatusTXT |";
    +					$SstatusesFILE .= "$SstatusTXT,";
    +					$status_found++;
    +					}
    +				$i++;
    +				}
    +			if ($status_found < 1)
    +				{
    +				$SstatusesHTML .= "        0 |";
    +				}
    +			### END loop through each stat line ###
    +			$n++;
    +			}
    +		### END loop through each status ###
    +		$TOTcalls=($TOTcalls + $Scalls);
    +
    +		$RAWuser = $Suser;
    +		$RAWcalls = $Scalls;
    +		$RAWcis = $CIScount;
    +		$Scalls =	sprintf("%6s", $Scalls);
    +		$CIScount =	sprintf("%6s", $CIScount);
    +
    +		if ($non_latin < 1)
    +			{
    +			 $Sfull_name=	sprintf("%-15s", $Sfull_name); 
    +				while(strlen($Sfull_name)>15) {$Sfull_name = substr("$Sfull_name", 0, -1);}
    +			 $Suser =		sprintf("%-8s", $Suser);
    +				while(strlen($Suser)>8) {$Suser = substr("$Suser", 0, -1);}
    +			}
    +		else
    +			{	
    +				$Sfull_name=	sprintf("%-45s", $Sfull_name); 
    +			 while(mb_strlen($Sfull_name,'utf-8')>15) {$Sfull_name = mb_substr("$Sfull_name", 0, -1,'utf-8');}
    +
    +				$Suser =	sprintf("%-24s", $Suser);
    +			 while(mb_strlen($Suser,'utf-8')>8) {$Suser = mb_substr("$Suser", 0, -1,'utf-8');}
    +			}
    +
    +		if ( ($DNCcount < 1) or ($CIScount < 1) )
    +			{$DNCcountPCTs=0;}
    +		else
    +			{
    +			$DNCcountPCTs = ( ($DNCcount / $CIScount) * 100);
    +			}
    +		$RAWdncPCT = $DNCcountPCTs;
    +	#	$DNCcountPCTs = round($DNCcountPCTs,2);
    +		$DNCcountPCTs = round($DNCcountPCTs);
    +		$rawDNCcountPCTs = $DNCcountPCTs;
    +	#	$DNCcountPCTs = sprintf("%3.2f", $DNCcountPCTs);
    +		$DNCcountPCTs = sprintf("%6s", $DNCcountPCTs);
    +
    +		if ($file_download < 1)
    +			{
    +			$Toutput = "| $Sfull_name | $Suser | $Scalls | $CIScount | $DNCcountPCTs%|$SstatusesHTML\n";
    +			}
    +		else
    +			{
    +			$fileToutput = "$Sfull_name,$RAWuser,$RAWcalls,$RAWcis,$rawDNCcountPCTs%,$SstatusesFILE\n";
    +			}
    +
    +		$TOPsorted_output[$m] = $Toutput;
    +		$TOPsorted_outputFILE[$m] = $fileToutput;
    +
    +		if ($stage == 'ID')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$RAWcalls;
    +			}
    +		if ($stage == 'CALLS')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$RAWcalls;
    +			}
    +		if ($stage == 'TIME')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $Stime) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$Stime;
    +			}
    +		if ($stage == 'CI')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWcis) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$RAWcis;
    +			}
    +		if ($stage == 'DNCCI')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWdncPCT) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$RAWdncPCT;
    +			}
    +		if (!ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
    +			if ($file_download < 1)
    +				{echo "$Toutput";}
    +			else
    +				{$file_output .= "$fileToutput";}
    +
    +		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
    +
    +		$m++;
    +		}
    +	### END loop through each user ###
    +
    +	$TOT_AGENTS = sprintf("%4s", $m);
    +
    +
    +	### BEGIN sort through output to display properly ###
    +	if (ereg("ID|TIME|CALLS|CI|DNCCI",$stage))
    +		{
    +		if (ereg("ID",$stage))
    +			{sort($TOPsort, SORT_NUMERIC);}
    +		if (ereg("TIME|CALLS|CI|DNCCI",$stage))
    +			{rsort($TOPsort, SORT_NUMERIC);}
    +
    +		$m=0;
    +		while ($m < $k)
    +			{
    +			$sort_split = explode("-----",$TOPsort[$m]);
    +			$i = $sort_split[1];
    +			$sort_order[$m] = "$i";
    +			if ($file_download < 1)
    +				{echo "$TOPsorted_output[$i]";}
    +			else
    +				{$file_output .= "$TOPsorted_outputFILE[$i]";}
    +			$m++;
    +			}
    +		}
    +	### END sort through output to display properly ###
    +
    +
    +
    +	###### LAST LINE FORMATTING ##########
    +	### BEGIN loop through each status ###
    +	$SUMstatusesHTML='';
    +	$n=0;
    +	while ($n < $j)
    +		{
    +		$Scalls=0;
    +		$Sstatus=$statusesARY[$n];
    +		$SUMstatusTXT='';
    +		### BEGIN loop through each stat line ###
    +		$i=0; $status_found=0;
    +		while ($i < $rows_to_print)
    +			{
    +			if ($Sstatus=="$status[$i]")
    +				{
    +				$Scalls =		($Scalls + $calls[$i]);
    +				$status_found++;
    +				}
    +			$i++;
    +			}
    +		### END loop through each stat line ###
    +		if ($status_found < 1)
    +			{
    +			$SUMstatusesHTML .= "        0 |";
    +			}
    +		else
    +			{
    +			$SUMstatusTXT = sprintf("%8s", $Scalls);
    +			$SUMstatusesHTML .= " $SUMstatusTXT |";
    +			$SUMstatusesFILE .= "$SUMstatusTXT,";
    +			}
    +		$n++;
    +		}
    +	### END loop through each status ###
    +
    +	$TOTcalls = sprintf("%7s", $TOTcalls);
    +	$CIScountTOT = sprintf("%7s", $CIScountTOT);
    +	$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
    +	$DNCcountPCT = round($DNCcountPCT,2);
    +	$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
    +	if ( ($DNCcountTOT < 1) or ($CIScountTOT < 1) )
    +		{$DNCcountPCT=0;}
    +	else
    +		{
    +		$DNCcountPCT = ( ($DNCcountTOT / $CIScountTOT) * 100);
    +		}
    +	#$DNCcountPCT = round($DNCcountPCT,2);
    +	$DNCcountPCT = round($DNCcountPCT);
    +	#$DNCcountPCT = sprintf("%3.2f", $DNCcountPCT);
    +	$DNCcountPCT = sprintf("%6s", $DNCcountPCT);
    +
    +	if ($file_download < 1)
    +		{
    +		echo "+-----------------+----------+--------+--------+--------+$statusesHEAD\n";
    +		echo "|  TOTALS        AGENTS:$TOT_AGENTS | $TOTcalls| $CIScountTOT| $DNCcountPCT%|$SUMstatusesHTML\n";
    +		echo "+----------------------------+--------+--------+--------+$statusesHEAD\n";
    +
    +		echo "\n\n
    "; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$CIScountTOT,$DNCcountPCT%,$SUMstatusesFILE\n"; + } + } + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_STATUS$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +echo "
    \n"; +echo "
    Dates:
    "; +echo "\n"; +echo "\n"; +echo "
    to
    \n"; +echo "
    Campaigns:
    "; +echo "\n"; +echo "
    User Groups:
    "; +echo "\n"; +echo "
    Shift:
    "; +echo "

    \n"; +echo "\n"; +echo "
            "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
    "; + +echo "
    \n\n"; + +echo "
    \n"; +echo "\n"; +echo "
    \n\n\n\n\n\n\n\n\n\n";
    +
    +$m=0;
    +while ($m < $k)
    +	{
    +	$sort_split = explode("-----",$TOPsort[$m]);
    +	$i = $sort_split[1];
    +	$sort_order[$m] = "$i";
    +
    +	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
    +		{echo "                              \n";}
    +	else
    +		{
    +		echo "                              ";
    +		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
    +		$h=0;
    +		while ($h <= $TOPsortPLOT)
    +			{
    +			echo " ";
    +			$h++;
    +			}
    +		echo "\n";
    +		}
    +	$m++;
    +	}
    +
    +echo "\n";
    +
    +?>
    +
    +
    \ No newline at end of file
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_detail.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_detail.php
    new file mode 100644
    index 00000000..a98137e5
    --- /dev/null
    +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_detail.php
    @@ -0,0 +1,867 @@
    +    LICENSE: AGPLv2
    +#
    +# CHANGES
    +# 90522-0723 - First build
    +# 90908-1103 - Added DEAD time stats
    +#
    +
    +require("dbconnect.php");
    +require("functions.php");
    +
    +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
    +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
    +$PHP_SELF=$_SERVER['PHP_SELF'];
    +if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
    +	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
    +if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
    +	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
    +if (isset($_GET["group"]))					{$group=$_GET["group"];}
    +	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
    +if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
    +	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
    +if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
    +	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
    +if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
    +	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
    +if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
    +	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
    +if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
    +	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
    +if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
    +	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
    +if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
    +	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
    +
    +if (strlen($shift)<2) {$shift='ALL';}
    +if (strlen($stage)<2) {$stage='NAME';}
    +
    +#############################################
    +##### START SYSTEM_SETTINGS LOOKUP #####
    +$stmt = "SELECT use_non_latin FROM system_settings;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$qm_conf_ct = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $qm_conf_ct)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$non_latin =					$row[0];
    +	$i++;
    +	}
    +##### END SETTINGS LOOKUP #####
    +###########################################
    +
    +$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 and view_reports='1';";
    +if ($DB) {echo "|$stmt|\n";}
    +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +$row=mysql_fetch_row($rslt);
    +$auth=$row[0];
    +
    +  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;
    +	}
    +
    +$MT[0]='';
    +$NOW_DATE = date("Y-m-d");
    +$NOW_TIME = date("Y-m-d H:i:s");
    +$STARTtime = date("U");
    +if (!isset($group)) {$group = '';}
    +if (!isset($query_date)) {$query_date = $NOW_DATE;}
    +if (!isset($end_date)) {$end_date = $NOW_DATE;}
    +
    +$stmt="select campaign_id from vicidial_campaigns;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$campaigns_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $campaigns_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$groups[$i] =$row[0];
    +	$i++;
    +	}
    +$stmt="select user_group from vicidial_user_groups;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$user_groups_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $user_groups_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$user_groups[$i] =$row[0];
    +	$i++;
    +	}
    +
    +$i=0;
    +$group_string='|';
    +$group_ct = count($group);
    +while($i < $group_ct)
    +	{
    +	$group_string .= "$group[$i]|";
    +	$group_SQL .= "'$group[$i]',";
    +	$groupQS .= "&group[]=$group[$i]";
    +	$i++;
    +	}
    +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
    +	{$group_SQL = "";}
    +else
    +	{
    +	$group_SQL = eregi_replace(",$",'',$group_SQL);
    +	$group_SQL = "and campaign_id IN($group_SQL)";
    +	}
    +
    +$i=0;
    +$user_group_string='|';
    +$user_group_ct = count($user_group);
    +while($i < $user_group_ct)
    +	{
    +	$user_group_string .= "$user_group[$i]|";
    +	$user_group_SQL .= "'$user_group[$i]',";
    +	$user_groupQS .= "&user_group[]=$user_group[$i]";
    +	$i++;
    +	}
    +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
    +	{$user_group_SQL = "";}
    +else
    +	{
    +	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
    +	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
    +	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
    +	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
    +	}
    +
    +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
    ";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_date&end_date=$end_date$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "Agent Time Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
    \n";
    +	}
    +
    +if ( (strlen($group[0]) < 1) or (strlen($user_group[0]) < 1) )
    +	{
    +	echo "\n";
    +	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
    +	echo " NOTE: stats taken from shift specified\n";
    +	}
    +
    +else
    +	{
    +	if ($shift == 'TEST') 
    +		{
    +		$time_BEGIN = "09:45:00";  
    +		$time_END = "10:00:00";
    +		}
    +	if ($shift == 'AM') 
    +		{
    +		$time_BEGIN=$AM_shift_BEGIN;
    +		$time_END=$AM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +		}
    +	if ($shift == 'PM') 
    +		{
    +		$time_BEGIN=$PM_shift_BEGIN;
    +		$time_END=$PM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +		}
    +	if ($shift == 'ALL') 
    +		{
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +		}
    +	$query_date_BEGIN = "$query_date $time_BEGIN";   
    +	$query_date_END = "$end_date $time_END";
    +
    +	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
    +	else {$ugSQL='';}
    +
    +	if ($file_download < 1)
    +		{
    +		echo "Agent Time Detail                     $NOW_TIME\n";
    +
    +		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +		}
    +	else
    +		{
    +		$file_output .= "Agent Time Detail                     $NOW_TIME\n";
    +		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +		}
    +
    +
    +
    +	############################################################################
    +	##### BEGIN gathering information from the database section
    +	############################################################################
    +
    +	### BEGIN gather user IDs and names for matching up later
    +	$stmt="select full_name,user from vicidial_users order by user limit 100000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$users_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $users_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$ULname[$i] =	$row[0];
    +		$ULuser[$i] =	$row[1];
    +		$i++;
    +		}
    +	### END gather user IDs and names for matching up later
    +
    +
    +	### BEGIN gather timeclock records per agent
    +	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$punches_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $punches_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$TCuser[$i] =	$row[0];
    +		$TCtime[$i] =	$row[1];
    +		$i++;
    +		}
    +	### END gather timeclock records per agent
    +
    +
    +	### BEGIN gather pause code information by user IDs
    +	$sub_statuses='-';
    +	$sub_statusesTXT='';
    +	$sub_statusesHEAD='';
    +	$sub_statusesHTML='';
    +	$sub_statusesFILE='';
    +	$sub_statusesARY=$MT;
    +	$sub_status_count=0;
    +	$PCusers='-';
    +	$PCusersARY=$MT;
    +	$PCuser_namesARY=$MT;
    +	$user_count=0;
    +	$stmt="select user,sum(pause_sec),sub_status from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' and pause_sec > 0 and pause_sec < 30000 $group_SQL $user_group_SQL group by user,sub_status order by user,sub_status desc limit 10000000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$subs_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $subs_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$PCuser[$i] =		$row[0];
    +		$PCpause_sec[$i] =	$row[1];
    +		$sub_status[$i] =	$row[2];
    +
    +		if (!eregi("-$sub_status[$i]-", $sub_statuses))
    +			{
    +			$sub_statusesTXT = sprintf("%10s", $sub_status[$i]);
    +			$sub_statusesHEAD .= "------------+";
    +			$sub_statusesHTML .= " $sub_statusesTXT |";
    +			$sub_statusesFILE .= ",$sub_status[$i]";
    +			$sub_statuses .= "$sub_status[$i]-";
    +			$sub_statusesARY[$sub_status_count] = $sub_status[$i];
    +			$sub_status_count++;
    +			}
    +		if (!eregi("-$PCuser[$i]-", $PCusers))
    +			{
    +			$PCusers .= "$PCuser[$i]-";
    +			$PCusersARY[$user_count] = $PCuser[$i];
    +			$user_count++;
    +			}
    +
    +		$i++;
    +		}
    +	### END gather pause code information by user IDs
    +
    +
    +	##### BEGIN Gather all agent time records and parse through them in PHP to save on DB load
    +	$stmt="select user,wait_sec,talk_sec,dispo_sec,pause_sec,lead_id,status,dead_sec from vicidial_agent_log where event_time <= '$query_date_END' and event_time >= '$query_date_BEGIN' $group_SQL $user_group_SQL limit 10000000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$rows_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	$j=0;
    +	$k=0;
    +	$uc=0;
    +	while ($i < $rows_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$user =			$row[0];
    +		$wait =			$row[1];
    +		$talk =			$row[2];
    +		$dispo =		$row[3];
    +		$pause =		$row[4];
    +		$lead =			$row[5];
    +		$status =		$row[6];
    +		$dead =			$row[7];
    +
    +		if ($wait > 30000) {$wait=0;}
    +		if ($talk > 30000) {$talk=0;}
    +		if ($dispo > 30000) {$dispo=0;}
    +		if ($pause > 30000) {$pause=0;}
    +		if ($dead > 30000) {$dead=0;}
    +		$TOTwait =	($TOTwait + $wait);
    +		$TOTtalk =	($TOTtalk + $talk);
    +		$TOTdispo =	($TOTdispo + $dispo);
    +		$TOTpause =	($TOTpause + $pause);
    +		$TOTdead =	($TOTdead + $dead);
    +		$TOTALtime = ($TOTALtime + $pause + $dispo + $talk + $wait);
    +		if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$TOTcalls++;}
    +		
    +		$user_found=0;
    +		if ($uc < 1) 
    +			{
    +			$Suser[$uc] = $user;
    +			$uc++;
    +			}
    +		$m=0;
    +		while ( ($m < $uc) and ($m < 50000) )
    +			{
    +			if ($user == "$Suser[$m]")
    +				{
    +				$user_found++;
    +
    +				$Swait[$m] =	($Swait[$m] + $wait);
    +				$Stalk[$m] =	($Stalk[$m] + $talk);
    +				$Sdispo[$m] =	($Sdispo[$m] + $dispo);
    +				$Spause[$m] =	($Spause[$m] + $pause);
    +				$Sdead[$m] =	($Sdead[$m] + $dead);
    +				if ( ($lead > 0) and ((!eregi("NULL",$status)) and (strlen($status) > 0)) ) {$Scalls[$m]++;}
    +				}
    +			$m++;
    +			}
    +		if ($user_found < 1)
    +			{
    +			$Scalls[$uc] =	0;
    +			$Suser[$uc] =	$user;
    +			$Swait[$uc] =	$wait;
    +			$Stalk[$uc] =	$talk;
    +			$Sdispo[$uc] =	$dispo;
    +			$Spause[$uc] =	$pause;
    +			$Sdead[$uc] =	$dead;
    +			if ($lead > 0) {$Scalls[$uc]++;}
    +			$uc++;
    +			}
    +
    +		$i++;
    +		}
    +	if ($DB) {echo "Done gathering $i records, analyzing...
    \n";} + ##### END Gather all agent time records and parse through them in PHP to save on DB load + + ############################################################################ + ##### END gathering information from the database section + ############################################################################ + + + + + ##### BEGIN print the output to screen or put into file output variable + if ($file_download < 1) + { + echo "AGENT TIME BREAKDOWN:\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| USER NAME | ID | CALLS | TIME CLOCK | AGENT TIME | WAIT | TALK | DISPO | PAUSE | DEAD | |$sub_statusesHTML\n"; + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + } + else + { + $file_output .= "USER,ID,CALLS,TIME CLOCK,AGENT TIME,WAIT,TALK,DISPO,PAUSE,DEAD$sub_statusesFILE\n"; + } + ##### END print the output to screen or put into file output variable + + + + + + ############################################################################ + ##### BEGIN formatting data for output section + ############################################################################ + + ##### BEGIN loop through each user formatting data for output + $AUTOLOGOUTflag=0; + $m=0; + while ( ($m < $uc) and ($m < 50000) ) + { + $SstatusesHTML=''; + $SstatusesFILE=''; + $Stime[$m] = ($Swait[$m] + $Stalk[$m] + $Sdispo[$m] + $Spause[$m]); + $RAWuser = $Suser[$m]; + $RAWcalls = $Scalls[$m]; + $RAWtimeSEC = $Stime[$m]; + + $Swait[$m]= sec_convert($Swait[$m],'H'); + $Stalk[$m]= sec_convert($Stalk[$m],'H'); + $Sdispo[$m]= sec_convert($Sdispo[$m],'H'); + $Spause[$m]= sec_convert($Spause[$m],'H'); + $Sdead[$m]= sec_convert($Sdead[$m],'H'); + $Stime[$m]= sec_convert($Stime[$m],'H'); + + $RAWtime = $Stime[$m]; + $RAWwait = $Swait[$m]; + $RAWtalk = $Stalk[$m]; + $RAWdispo = $Sdispo[$m]; + $RAWpause = $Spause[$m]; + $RAWdead = $Sdead[$m]; + + $n=0; + $user_name_found=0; + while ($n < $users_to_print) + { + if ($Suser[$m] == "$ULuser[$n]") + { + $user_name_found++; + $RAWname = $ULname[$n]; + $Sname[$m] = $ULname[$n]; + } + $n++; + } + if ($user_name_found < 1) + { + $RAWname = "NOT IN SYSTEM"; + $Sname[$m] = $RAWname; + } + + $n=0; + $punches_found=0; + while ($n < $punches_to_print) + { + if ($Suser[$m] == "$TCuser[$n]") + { + $punches_found++; + $RAWtimeTCsec = $TCtime[$n]; + $TOTtimeTC = ($TOTtimeTC + $TCtime[$n]); + $StimeTC[$m]= sec_convert($TCtime[$n],'H'); + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + $n++; + } + if ($punches_found < 1) + { + $RAWtimeTCsec = "0"; + $StimeTC[$m]= "0:00"; + $RAWtimeTC = $StimeTC[$m]; + $StimeTC[$m] = sprintf("%10s", $StimeTC[$m]); + } + + ### Check if the user had an AUTOLOGOUT timeclock event during the time period + $TCuserAUTOLOGOUT = ' '; + $stmt="select count(*) from vicidial_timeclock_log where event='AUTOLOGOUT' and user='$Suser[$m]' and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $autologout_results = mysql_num_rows($rslt); + if ($autologout_results > 0) + { + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + $TCuserAUTOLOGOUT = '*'; + $AUTOLOGOUTflag++; + } + } + + ### BEGIN loop through each status ### + $n=0; + while ($n < $sub_status_count) + { + $Sstatus=$sub_statusesARY[$n]; + $SstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ( ($i < $subs_to_print) and ($status_found < 1) ) + { + if ( ($Suser[$m]=="$PCuser[$i]") and ($Sstatus=="$sub_status[$i]") ) + { + $USERcodePAUSE_MS = sec_convert($PCpause_sec[$i],'H'); + $pfUSERcodePAUSE_MS = sprintf("%10s", $USERcodePAUSE_MS); + + $SstatusTXT = sprintf("%10s", $pfUSERcodePAUSE_MS); + $SstatusesHTML .= " $SstatusTXT |"; + $SstatusesFILE .= ",$pfUSERcodePAUSE_MS"; + $status_found++; + } + $i++; + } + if ($status_found < 1) + { + $SstatusesHTML .= " 0:00 |"; + } + ### END loop through each stat line ### + $n++; + } + ### END loop through each status ### + + $Swait[$m]= sprintf("%10s", $Swait[$m]); + $Stalk[$m]= sprintf("%10s", $Stalk[$m]); + $Sdispo[$m]= sprintf("%10s", $Sdispo[$m]); + $Spause[$m]= sprintf("%10s", $Spause[$m]); + $Sdead[$m]= sprintf("%10s", $Sdead[$m]); + $Scalls[$m]= sprintf("%8s", $Scalls[$m]); + $Stime[$m]= sprintf("%10s", $Stime[$m]); + + if ($non_latin < 1) + { + $Sname[$m]= sprintf("%-15s", $Sname[$m]); + while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);} + $Suser[$m] = sprintf("%-8s", $Suser[$m]); + while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);} + } + else + { + $Sname[$m]= sprintf("%-45s", $Sname[$m]); + while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');} + $Suser[$m] = sprintf("%-24s", $Suser[$m]); + while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');} + } + + + if ($file_download < 1) + { + $Toutput = "| $Sname[$m] | $Suser[$m] | $Scalls[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $Stime[$m] | $Swait[$m] | $Stalk[$m] | $Sdispo[$m] | $Spause[$m] | $Sdead[$m] | |$SstatusesHTML\n"; + } + else + { + $fileToutput = "$RAWname,$RAWuser,$RAWcalls,$RAWtimeTC,$RAWtime,$RAWwait,$RAWtalk,$RAWdispo,$RAWpause,$RAWdead$SstatusesFILE\n"; + } + + $TOPsorted_output[$m] = $Toutput; + $TOPsorted_outputFILE[$m] = $fileToutput; + + if ($stage == 'NAME') + { + $TOPsort[$m] = '' . sprintf("%020s", $RAWname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'ID') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'CALLS') + { + $TOPsort[$m] = '' . sprintf("%08s", $RAWcalls) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWcalls; + } + if ($stage == 'TIME') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeSEC) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeSEC; + } + if ($stage == 'TCLOCK') + { + $TOPsort[$m] = '' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser); + $TOPsortTALLY[$m]=$RAWtimeTCsec; + } + if (!ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + if ($file_download < 1) + {echo "$Toutput";} + else + {$file_output .= "$fileToutput";} + + if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];} + +# echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n"; + $m++; + } + ##### END loop through each user formatting data for output + + + $TOT_AGENTS = sprintf("%4s", $m); + $k=$m; + + if ($DB) {echo "Done analyzing... $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTdead|$TOTALtime|$TOTcalls|$uc|
    \n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TIME|CALLS|TCLOCK",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TIME|CALLS|TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("NAME",$stage)) + {rsort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + $SUMstatusesHTML=''; + $SUMstatusesFILE=''; + $TOTtotPAUSE=0; + $n=0; + while ($n < $sub_status_count) + { + $Scalls=0; + $Sstatus=$sub_statusesARY[$n]; + $SUMstatusTXT=''; + ### BEGIN loop through each stat line ### + $i=0; $status_found=0; + while ($i < $subs_to_print) + { + if ($Sstatus=="$sub_status[$i]") + { + $Scalls = ($Scalls + $PCpause_sec[$i]); + $status_found++; + } + $i++; + } + ### END loop through each stat line ### + if ($status_found < 1) + { + $SUMstatusesHTML .= " 0 |"; + } + else + { + $TOTtotPAUSE = ($TOTtotPAUSE + $Scalls); + + $USERsumstatPAUSE_MS = sec_convert($Scalls,'H'); + $pfUSERsumstatPAUSE_MS = sprintf("%11s", $USERsumstatPAUSE_MS); + + $SUMstatusTXT = sprintf("%10s", $pfUSERsumstatPAUSE_MS); + $SUMstatusesHTML .= "$SUMstatusTXT |"; + $SUMstatusesFILE .= ",$pfUSERsumstatPAUSE_MS"; + } + $n++; + } + ### END loop through each status ### + + ### call function to calculate and print dialable leads + $TOTwait = sec_convert($TOTwait,'H'); + $TOTtalk = sec_convert($TOTtalk,'H'); + $TOTdispo = sec_convert($TOTdispo,'H'); + $TOTpause = sec_convert($TOTpause,'H'); + $TOTdead = sec_convert($TOTdead,'H'); + $TOTALtime = sec_convert($TOTALtime,'H'); + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTcalls = sprintf("%8s", $TOTcalls); + $TOTwait = sprintf("%11s", $TOTwait); + $TOTtalk = sprintf("%11s", $TOTtalk); + $TOTdispo = sprintf("%11s", $TOTdispo); + $TOTpause = sprintf("%11s", $TOTpause); + $TOTdead = sprintf("%11s", $TOTdead); + $TOTALtime = sprintf("%11s", $TOTALtime); + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | $TOTcalls |$TOTtimeTC |$TOTALtime |$TOTwait |$TOTtalk |$TOTdispo |$TOTpause |$TOTdead | |$SUMstatusesHTML\n"; + echo "+----------------------------+----------+------------+------------+------------+------------+------------+------------+------------+ +$sub_statusesHEAD\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
    "; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,$TOTcalls,$TOTtimeTC,$TOTALtime,$TOTwait,$TOTtalk,$TOTdispo,$TOTpause,$TOTdead$SUMstatusesFILE\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
    \n"; +echo "
    Dates:
    "; +echo "\n"; +echo "\n"; +echo "
    to
    \n"; +echo "
    Campaigns:
    "; +echo "\n"; +echo "
    User Groups:
    "; +echo "\n"; +echo "
    Shift:
    "; +echo "

    \n"; +echo "\n"; +echo "
            "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
    "; + +echo "
    \n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + + +##### BEGIN horizontal yellow transparent bar graph overlay on top of agent stats +echo "
    \n"; +echo "\n"; +echo "
    \n\n\n\n\n\n\n\n";
    +
    +if ($stage == 'NAME') {$k=0;}
    +$m=0;
    +while ($m < $k)
    +	{
    +	$sort_split = explode("-----",$TOPsort[$m]);
    +	$i = $sort_split[1];
    +	$sort_order[$m] = "$i";
    +
    +	if ( ($TOPsortTALLY[$i] < 1) or ($TOPsortMAX < 1) )
    +		{echo "                              \n";}
    +	else
    +		{
    +		echo "                              ";
    +		$TOPsortPLOT = ( ($TOPsortTALLY[$i] / $TOPsortMAX) * 110 );
    +		$h=0;
    +		while ($h <= $TOPsortPLOT)
    +			{
    +			echo " ";
    +			$h++;
    +			}
    +		echo "\n";
    +		}
    +	$m++;
    +	}
    +
    +echo "\n";
    +##### END horizontal yellow transparent bar graph overlay on top of agent stats
    +
    +?>
    +
    +
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_sheet.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_sheet.php
    new file mode 100644
    index 00000000..1321df46
    --- /dev/null
    +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_sheet.php
    @@ -0,0 +1,311 @@
    +    LICENSE: AGPLv2
    +#
    +# CHANGES
    +#
    +# 60619-1729 - Added variable filtering to eliminate SQL injection attack threat
    +#            - Added required user/pass to gain access to this page
    +# 80624-0132 - Added vicidial_timeclock entries
    +# 90310-0745 - Added admin header
    +# 90508-0644 - Changed to PHP long tags
    +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion
    +#
    +
    +require("dbconnect.php");
    +require("functions.php");
    +
    +#############################################
    +##### START SYSTEM_SETTINGS LOOKUP #####
    +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$ss_conf_ct = mysql_num_rows($rslt);
    +if ($ss_conf_ct > 0)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$non_latin =						$row[0];
    +	$SSoutbound_autodial_active =		$row[1];
    +	$user_territories_active =			$row[2];
    +	}
    +##### END SETTINGS LOOKUP #####
    +###########################################
    +
    +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
    +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
    +$PHP_SELF=$_SERVER['PHP_SELF'];
    +if (isset($_GET["agent"]))				{$agent=$_GET["agent"];}
    +	elseif (isset($_POST["agent"]))		{$agent=$_POST["agent"];}
    +if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
    +	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
    +if (isset($_GET["calls_summary"]))			{$calls_summary=$_GET["calls_summary"];}
    +	elseif (isset($_POST["calls_summary"]))	{$calls_summary=$_POST["calls_summary"];}
    +if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
    +	elseif (isset($_POST["submit"]))	{$submit=$_POST["submit"];}
    +if (isset($_GET["SUBMIT"]))				{$SUBMIT=$_GET["SUBMIT"];}
    +	elseif (isset($_POST["SUBMIT"]))	{$SUBMIT=$_POST["SUBMIT"];}
    +
    +$user=$agent;
    +
    +$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 and view_reports='1';";
    +if ($DB) {echo "|$stmt|\n";}
    +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +$row=mysql_fetch_row($rslt);
    +$auth=$row[0];
    +
    +  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_TIME = date("Y-m-d H:i:s");
    +$STARTtime = date("U");
    +if (!isset($query_date)) {$query_date = $NOW_DATE;}
    +
    +?>
    +
    +
    +
    +
    +
    +\n";
    +echo "Agent Time Sheet";
    +
    +
    +##### BEGIN Set variables to make header show properly #####
    +$ADD =					'3';
    +$hh =					'users';
    +$LOGast_admin_access =	'1';
    +$ADMIN =				'admin.php';
    +$page_width='770';
    +$section_width='750';
    +$header_font_size='3';
    +$subheader_font_size='2';
    +$subcamp_font_size='2';
    +$header_selected_bold='<b>';
    +$header_nonselected_bold='';
    +$users_color =		'#FFFF99';
    +$users_font =		'BLACK';
    +$users_color =		'#E6E6E6';
    +$subcamp_color =	'#C6C6C6';
    +##### END Set variables to make header show properly #####
    +
    +require("admin_header.php");
    +
    +echo "<TABLE WIDTH=$page_width BGCOLOR=\"#F0F5FE\" cellpadding=2 cellspacing=0><TR BGCOLOR=\"#F0F5FE\"><TD>\n";
    +
    +echo "Agent Time Sheet for: $user\n";
    +echo "<BR>\n";
    +echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>   \n";
    +echo "Date: <INPUT TYPE=TEXT NAME=query_date SIZE=19 MAXLENGTH=19 VALUE=\"$query_date\">\n";
    +echo "User ID: <INPUT TYPE=TEXT NAME=agent SIZE=10 MAXLENGTH=20 VALUE=\"$agent\">\n";
    +echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n";
    +echo "</FORM>\n\n";
    +
    +echo "<PRE><FONT SIZE=3>\n";
    +
    +
    +if (!$agent)
    +{
    +echo "\n";
    +echo "PLEASE SELECT AN AGENT ID AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
    +echo " NOTE: stats taken from available agent log data\n";
    +}
    +
    +else
    +{
    +$query_date_BEGIN = "$query_date 00:00:00";   
    +$query_date_END = "$query_date 23:59:59";
    +$time_BEGIN = "00:00:00";   
    +$time_END = "23:59:59";
    +
    +$stmt="select full_name from vicidial_users where user='$agent';";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +$full_name = $row[0];
    +
    +echo "Agent Time Sheet                             $NOW_TIME\n";
    +
    +echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n";
    +
    +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 <= '" . 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);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
    +
    +	$TOTAL_TIME_HMS =		sec_convert($TOTAL_TIME,'H'); 
    +	$TALK_TIME_HMS =		sec_convert($row[1],'H'); 
    +	$PAUSE_TIME_HMS =		sec_convert($row[3],'H'); 
    +	$WAIT_TIME_HMS =		sec_convert($row[5],'H'); 
    +	$WRAPUP_TIME_HMS =		sec_convert($row[7],'H'); 
    +	$TALK_AVG_MS =			sec_convert($row[2],'H'); 
    +	$PAUSE_AVG_MS =			sec_convert($row[4],'H'); 
    +	$WAIT_AVG_MS =			sec_convert($row[6],'H'); 
    +	$WRAPUP_AVG_MS =		sec_convert($row[8],'H'); 
    +
    +	$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
    +	$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
    +	$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
    +	$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
    +	$pfWRAPUP_TIME_HMS =	sprintf("%8s", $WRAPUP_TIME_HMS);
    +	$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
    +	$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
    +	$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
    +	$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
    +
    +	echo "TOTAL CALLS TAKEN: $row[0]\n";
    +	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
    +	echo "PAUSE TIME:              $pfPAUSE_TIME_HMS     AVERAGE: $pfPAUSE_AVG_MS\n";
    +	echo "WAIT TIME:               $pfWAIT_TIME_HMS     AVERAGE: $pfWAIT_AVG_MS\n";
    +	echo "WRAPUP TIME:             $pfWRAPUP_TIME_HMS     AVERAGE: $pfWRAPUP_AVG_MS\n";
    +	echo "----------------------------------------------------------------\n";
    +	echo "TOTAL ACTIVE AGENT TIME: $pfTOTAL_TIME_HMS\n";
    +
    +	echo "\n";
    +	}
    +else
    +	{
    +	echo "<a href=\"$PHP_SELF?calls_summary=1&agent=$agent&query_date=$query_date\">Call Activity Summary</a>\n\n";
    +
    +	}
    +
    +$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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +echo "FIRST LOGIN:          $row[0]\n";
    +$start = $row[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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +echo "LAST LOG ACTIVITY:    $row[0]\n";
    +$end = $row[1];
    +
    +$login_time = ($end - $start);
    +$LOGIN_TIME_HMS =		sec_convert($login_time,'H'); 
    +$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
    +
    +echo "-----------------------------------------\n";
    +echo "TOTAL LOGGED-IN TIME:            $pfLOGIN_TIME_HMS\n";
    +
    +
    +### timeclock records
    +
    +
    +##### vicidial_timeclock log records for user #####
    +
    +$total_login_time=0;
    +$SQday_ARY =	explode('-',$query_date_BEGIN);
    +$EQday_ARY =	explode('-',$query_date_END);
    +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]);
    +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]);
    +
    +echo "\n";
    +
    +echo "<B>TIMECLOCK LOGIN/LOGOUT TIME:</B>\n";
    +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n";
    +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n";
    +
    +	$stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='$agent' and event_epoch >= '$SQepoch'  and event_epoch <= '$EQepoch';";
    +	if ($DB>0) {echo "|$stmt|";}
    +	$rslt=mysql_query($stmt, $link);
    +	$events_to_print = mysql_num_rows($rslt);
    +
    +	$total_logs=0;
    +	$o=0;
    +	while ($events_to_print > $o) {
    +		$row=mysql_fetch_row($rslt);
    +		if ( ($row[0]=='START') or ($row[0]=='LOGIN') )
    +			{$bgcolor='bgcolor="#B9CBFD"';} 
    +		else
    +			{$bgcolor='bgcolor="#9BB9FB"';}
    +
    +		$TC_log_date = date("Y-m-d H:i:s", $row[1]);
    +
    +		$manager_edit='';
    +		if (strlen($row[6])>0) {$manager_edit = ' * ';}
    +
    +		if (ereg("LOGIN", $row[0]))
    +			{
    +			$login_sec='';
    +			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
    +			echo "<td align=right><font size=2>$manager_edit</td>";
    +			echo "<td align=right><font size=2>$row[0]</td>";
    +			echo "<td align=right><font size=2> $TC_log_date</td>\n";
    +			echo "<td align=right><font size=2> $row[4]</td>\n";
    +			echo "<td align=right><font size=2> $row[2]</td>\n";
    +			echo "<td align=right><font size=2> </td></tr>\n";
    +			}
    +		if (ereg("LOGOUT", $row[0]))
    +			{
    +			$login_sec = $row[3];
    +			$total_login_time = ($total_login_time + $login_sec);
    +			$event_hours_minutes =		sec_convert($login_sec,'H'); 
    +
    +			echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>";
    +			echo "<td align=right><font size=2>$manager_edit</td>";
    +			echo "<td align=right><font size=2>$row[0]</td>";
    +			echo "<td align=right><font size=2> $TC_log_date</td>\n";
    +			echo "<td align=right><font size=2> $row[4]</td>\n";
    +			echo "<td align=right><font size=2> $row[2]</td>\n";
    +			echo "<td align=right><font size=2> $event_hours_minutes";
    +			if ($DB) {echo " - $total_login_time - $login_sec";}
    +			echo "</td></tr>\n";
    +			}
    +		$o++;
    +	}
    +if (strlen($login_sec)<1)
    +	{
    +	$login_sec = ($STARTtime - $row[1]);
    +	$total_login_time = ($total_login_time + $login_sec);
    +		if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";}
    +	}
    +$total_login_hours_minutes =		sec_convert($total_login_time,'H'); 
    +
    +	if ($DB) {echo " - $total_login_time - $login_sec";}
    +
    +echo "<tr><td align=right><font size=2> </td>";
    +echo "<td align=right><font size=2> </td>\n";
    +echo "<td align=right><font size=2> </td>\n";
    +echo "<td align=right><font size=2> </td>\n";
    +echo "<td align=right colspan=2><font size=2><font size=2>TOTAL </td>\n";
    +echo "<td align=right><font size=2> $total_login_hours_minutes  </td></tr>\n";
    +
    +echo "</TABLE>\n";
    +
    +
    +
    +}
    +
    +
    +
    +?>
    +
    +</BODY></HTML>
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_sheet_archive.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_sheet_archive.php
    new file mode 100644
    index 00000000..81861817
    --- /dev/null
    +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_time_sheet_archive.php
    @@ -0,0 +1,287 @@
    +<?php 
    +# AST_agent_time_sheet_archive.php
    +# 
    +# Copyright (C) 2009  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
    +#
    +# CHANGES
    +#
    +# 60619-1721 - Added variable filtering to eliminate SQL injection attack threat
    +#            - Added required user/pass to gain access to this page
    +# 90508-0644 - Changed to PHP long tags
    +#
    +
    +require("dbconnect.php");
    +
    +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
    +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
    +$PHP_SELF=$_SERVER['PHP_SELF'];
    +if (isset($_GET["agent"]))				{$agent=$_GET["agent"];}
    +	elseif (isset($_POST["agent"]))		{$agent=$_POST["agent"];}
    +if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
    +	elseif (isset($_POST["query_date"]))		{$query_date=$_POST["query_date"];}
    +if (isset($_GET["calls_summary"]))				{$calls_summary=$_GET["calls_summary"];}
    +	elseif (isset($_POST["calls_summary"]))		{$calls_summary=$_POST["calls_summary"];}
    +if (isset($_GET["submit"]))				{$submit=$_GET["submit"];}
    +	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
    +if (isset($_GET["SUBMIT"]))				{$SUBMIT=$_GET["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 and view_reports='1';";
    +	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_TIME = date("Y-m-d H:i:s");
    +$STARTtime = date("U");
    +if (!isset($query_date)) {$query_date = $NOW_DATE;}
    +
    +?>
    +
    +<HTML>
    +<HEAD>
    +<STYLE type="text/css">
    +<!--
    +   .green {color: white; background-color: green}
    +   .red {color: white; background-color: red}
    +   .blue {color: white; background-color: blue}
    +   .purple {color: white; background-color: purple}
    +-->
    + </STYLE>
    +
    +<?php 
    +echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n";
    +echo "<TITLE>VICIDIAL: Agent Time Sheet\n";
    +echo "VICIDIAL ADMIN: Agent Time Sheet\n";
    +echo " - User Stats\n";
    +echo " - User Status\n";
    +echo " - Modify User\n";
    +echo "
    \n"; +echo "
      \n"; +echo "Date: \n"; +echo "User ID: \n"; +echo "\n"; +echo "
    \n\n"; + +echo "
    \n";
    +
    +
    +if (!$agent)
    +{
    +echo "\n";
    +echo "PLEASE SELECT AN AGENT ID AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
    +echo " NOTE: stats taken from available agent log data\n";
    +}
    +
    +else
    +{
    +$query_date_BEGIN = "$query_date 00:00:00";   
    +$query_date_END = "$query_date 23:59:59";
    +$time_BEGIN = "00:00:00";   
    +$time_END = "23:59:59";
    +
    +$stmt="select full_name from vicidial_users where user='$agent';";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +$full_name = $row[0];
    +
    +echo "VICIDIAL: Agent Time Sheet                             $NOW_TIME\n";
    +
    +echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +echo "---------- AGENT TIME SHEET: $agent - $full_name -------------\n\n";
    +
    +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 <= '" . 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);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTAL_TIME = ($row[1] + $row[3] + $row[5] + $row[7]);
    +
    +		$TOTAL_TIME_H = ($TOTAL_TIME / 3600);
    +		$TOTAL_TIME_H = round($TOTAL_TIME_H, 2);
    +		$TOTAL_TIME_H_int = intval("$TOTAL_TIME_H");
    +		$TOTAL_TIME_M = ($TOTAL_TIME_H - $TOTAL_TIME_H_int);
    +		$TOTAL_TIME_M = ($TOTAL_TIME_M * 60);
    +		$TOTAL_TIME_M = round($TOTAL_TIME_M, 2);
    +		$TOTAL_TIME_M_int = intval("$TOTAL_TIME_M");
    +		$TOTAL_TIME_S = ($TOTAL_TIME_M - $TOTAL_TIME_M_int);
    +		$TOTAL_TIME_S = ($TOTAL_TIME_S * 60);
    +		$TOTAL_TIME_S = round($TOTAL_TIME_S, 0);
    +		if ($TOTAL_TIME_S < 10) {$TOTAL_TIME_S = "0$TOTAL_TIME_S";}
    +		if ($TOTAL_TIME_M_int < 10) {$TOTAL_TIME_M_int = "0$TOTAL_TIME_M_int";}
    +		$TOTAL_TIME_HMS = "$TOTAL_TIME_H_int:$TOTAL_TIME_M_int:$TOTAL_TIME_S";
    +		$pfTOTAL_TIME_HMS =		sprintf("%8s", $TOTAL_TIME_HMS);
    +
    +		$TALK_TIME_H = ($row[1] / 3600);
    +		$TALK_TIME_H = round($TALK_TIME_H, 2);
    +		$TALK_TIME_H_int = intval("$TALK_TIME_H");
    +		$TALK_TIME_M = ($TALK_TIME_H - $TALK_TIME_H_int);
    +		$TALK_TIME_M = ($TALK_TIME_M * 60);
    +		$TALK_TIME_M = round($TALK_TIME_M, 2);
    +		$TALK_TIME_M_int = intval("$TALK_TIME_M");
    +		$TALK_TIME_S = ($TALK_TIME_M - $TALK_TIME_M_int);
    +		$TALK_TIME_S = ($TALK_TIME_S * 60);
    +		$TALK_TIME_S = round($TALK_TIME_S, 0);
    +		if ($TALK_TIME_S < 10) {$TALK_TIME_S = "0$TALK_TIME_S";}
    +		if ($TALK_TIME_M_int < 10) {$TALK_TIME_M_int = "0$TALK_TIME_M_int";}
    +		$TALK_TIME_HMS = "$TALK_TIME_H_int:$TALK_TIME_M_int:$TALK_TIME_S";
    +		$pfTALK_TIME_HMS =		sprintf("%8s", $TALK_TIME_HMS);
    +
    +		$PAUSE_TIME_H = ($row[3] / 3600);
    +		$PAUSE_TIME_H = round($PAUSE_TIME_H, 2);
    +		$PAUSE_TIME_H_int = intval("$PAUSE_TIME_H");
    +		$PAUSE_TIME_M = ($PAUSE_TIME_H - $PAUSE_TIME_H_int);
    +		$PAUSE_TIME_M = ($PAUSE_TIME_M * 60);
    +		$PAUSE_TIME_M = round($PAUSE_TIME_M, 2);
    +		$PAUSE_TIME_M_int = intval("$PAUSE_TIME_M");
    +		$PAUSE_TIME_S = ($PAUSE_TIME_M - $PAUSE_TIME_M_int);
    +		$PAUSE_TIME_S = ($PAUSE_TIME_S * 60);
    +		$PAUSE_TIME_S = round($PAUSE_TIME_S, 0);
    +		if ($PAUSE_TIME_S < 10) {$PAUSE_TIME_S = "0$PAUSE_TIME_S";}
    +		if ($PAUSE_TIME_M_int < 10) {$PAUSE_TIME_M_int = "0$PAUSE_TIME_M_int";}
    +		$PAUSE_TIME_HMS = "$PAUSE_TIME_H_int:$PAUSE_TIME_M_int:$PAUSE_TIME_S";
    +		$pfPAUSE_TIME_HMS =		sprintf("%8s", $PAUSE_TIME_HMS);
    +
    +		$WAIT_TIME_H = ($row[5] / 3600);
    +		$WAIT_TIME_H = round($WAIT_TIME_H, 2);
    +		$WAIT_TIME_H_int = intval("$WAIT_TIME_H");
    +		$WAIT_TIME_M = ($WAIT_TIME_H - $WAIT_TIME_H_int);
    +		$WAIT_TIME_M = ($WAIT_TIME_M * 60);
    +		$WAIT_TIME_M = round($WAIT_TIME_M, 2);
    +		$WAIT_TIME_M_int = intval("$WAIT_TIME_M");
    +		$WAIT_TIME_S = ($WAIT_TIME_M - $WAIT_TIME_M_int);
    +		$WAIT_TIME_S = ($WAIT_TIME_S * 60);
    +		$WAIT_TIME_S = round($WAIT_TIME_S, 0);
    +		if ($WAIT_TIME_S < 10) {$WAIT_TIME_S = "0$WAIT_TIME_S";}
    +		if ($WAIT_TIME_M_int < 10) {$WAIT_TIME_M_int = "0$WAIT_TIME_M_int";}
    +		$WAIT_TIME_HMS = "$WAIT_TIME_H_int:$WAIT_TIME_M_int:$WAIT_TIME_S";
    +		$pfWAIT_TIME_HMS =		sprintf("%8s", $WAIT_TIME_HMS);
    +
    +		$WRAPUP_TIME_H = ($row[7] / 3600);
    +		$WRAPUP_TIME_H = round($WRAPUP_TIME_H, 2);
    +		$WRAPUP_TIME_H_int = intval("$WRAPUP_TIME_H");
    +		$WRAPUP_TIME_M = ($WRAPUP_TIME_H - $WRAPUP_TIME_H_int);
    +		$WRAPUP_TIME_M = ($WRAPUP_TIME_M * 60);
    +		$WRAPUP_TIME_M = round($WRAPUP_TIME_M, 2);
    +		$WRAPUP_TIME_M_int = intval("$WRAPUP_TIME_M");
    +		$WRAPUP_TIME_S = ($WRAPUP_TIME_M - $WRAPUP_TIME_M_int);
    +		$WRAPUP_TIME_S = ($WRAPUP_TIME_S * 60);
    +		$WRAPUP_TIME_S = round($WRAPUP_TIME_S, 0);
    +		if ($WRAPUP_TIME_S < 10) {$WRAPUP_TIME_S = "0$WRAPUP_TIME_S";}
    +		if ($WRAPUP_TIME_M_int < 10) {$WRAPUP_TIME_M_int = "0$WRAPUP_TIME_M_int";}
    +		$WRAPUP_TIME_HMS = "$WRAPUP_TIME_H_int:$WRAPUP_TIME_M_int:$WRAPUP_TIME_S";
    +		$pfWRAPUP_TIME_HMS =		sprintf("%8s", $WRAPUP_TIME_HMS);
    +
    +		$TALK_AVG_M = ($row[2] / 60);
    +		$TALK_AVG_M = round($TALK_AVG_M, 2);
    +		$TALK_AVG_M_int = intval("$TALK_AVG_M");
    +		$TALK_AVG_S = ($TALK_AVG_M - $TALK_AVG_M_int);
    +		$TALK_AVG_S = ($TALK_AVG_S * 60);
    +		$TALK_AVG_S = round($TALK_AVG_S, 0);
    +		if ($TALK_AVG_S < 10) {$TALK_AVG_S = "0$TALK_AVG_S";}
    +		$TALK_AVG_MS = "$TALK_AVG_M_int:$TALK_AVG_S";
    +		$pfTALK_AVG_MS =		sprintf("%6s", $TALK_AVG_MS);
    +
    +		$PAUSE_AVG_M = ($row[4] / 60);
    +		$PAUSE_AVG_M = round($PAUSE_AVG_M, 2);
    +		$PAUSE_AVG_M_int = intval("$PAUSE_AVG_M");
    +		$PAUSE_AVG_S = ($PAUSE_AVG_M - $PAUSE_AVG_M_int);
    +		$PAUSE_AVG_S = ($PAUSE_AVG_S * 60);
    +		$PAUSE_AVG_S = round($PAUSE_AVG_S, 0);
    +		if ($PAUSE_AVG_S < 10) {$PAUSE_AVG_S = "0$PAUSE_AVG_S";}
    +		$PAUSE_AVG_MS = "$PAUSE_AVG_M_int:$PAUSE_AVG_S";
    +		$pfPAUSE_AVG_MS =		sprintf("%6s", $PAUSE_AVG_MS);
    +
    +		$WAIT_AVG_M = ($row[6] / 60);
    +		$WAIT_AVG_M = round($WAIT_AVG_M, 2);
    +		$WAIT_AVG_M_int = intval("$WAIT_AVG_M");
    +		$WAIT_AVG_S = ($WAIT_AVG_M - $WAIT_AVG_M_int);
    +		$WAIT_AVG_S = ($WAIT_AVG_S * 60);
    +		$WAIT_AVG_S = round($WAIT_AVG_S, 0);
    +		if ($WAIT_AVG_S < 10) {$WAIT_AVG_S = "0$WAIT_AVG_S";}
    +		$WAIT_AVG_MS = "$WAIT_AVG_M_int:$WAIT_AVG_S";
    +		$pfWAIT_AVG_MS =		sprintf("%6s", $WAIT_AVG_MS);
    +
    +		$WRAPUP_AVG_M = ($row[8] / 60);
    +		$WRAPUP_AVG_M = round($WRAPUP_AVG_M, 2);
    +		$WRAPUP_AVG_M_int = intval("$WRAPUP_AVG_M");
    +		$WRAPUP_AVG_S = ($WRAPUP_AVG_M - $WRAPUP_AVG_M_int);
    +		$WRAPUP_AVG_S = ($WRAPUP_AVG_S * 60);
    +		$WRAPUP_AVG_S = round($WRAPUP_AVG_S, 0);
    +		if ($WRAPUP_AVG_S < 10) {$WRAPUP_AVG_S = "0$WRAPUP_AVG_S";}
    +		$WRAPUP_AVG_MS = "$WRAPUP_AVG_M_int:$WRAPUP_AVG_S";
    +		$pfWRAPUP_AVG_MS =		sprintf("%6s", $WRAPUP_AVG_MS);
    +
    +	echo "TOTAL CALLS TAKEN: $row[0]\n";
    +	echo "TALK TIME:               $pfTALK_TIME_HMS     AVERAGE: $pfTALK_AVG_MS\n";
    +	echo "PAUSE TIME:              $pfPAUSE_TIME_HMS     AVERAGE: $pfPAUSE_AVG_MS\n";
    +	echo "WAIT TIME:               $pfWAIT_TIME_HMS     AVERAGE: $pfWAIT_AVG_MS\n";
    +	echo "WRAPUP TIME:             $pfWRAPUP_TIME_HMS     AVERAGE: $pfWRAPUP_AVG_MS\n";
    +	echo "----------------------------------------------------------------\n";
    +	echo "TOTAL ACTIVE AGENT TIME: $pfTOTAL_TIME_HMS\n";
    +
    +	echo "\n";
    +	}
    +else
    +	{
    +	echo "Call Activity Summary\n\n";
    +
    +	}
    +
    +$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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +echo "FIRST LOGIN:          $row[0]\n";
    +$start = $row[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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +echo "LAST LOG ACTIVITY:    $row[0]\n";
    +$end = $row[1];
    +
    +$login_time = ($end - $start);
    +	$LOGIN_TIME_H = ($login_time / 3600);
    +	$LOGIN_TIME_H = round($LOGIN_TIME_H, 2);
    +	$LOGIN_TIME_H_int = intval("$LOGIN_TIME_H");
    +	$LOGIN_TIME_M = ($LOGIN_TIME_H - $LOGIN_TIME_H_int);
    +	$LOGIN_TIME_M = ($LOGIN_TIME_M * 60);
    +	$LOGIN_TIME_M = round($LOGIN_TIME_M, 2);
    +	$LOGIN_TIME_M_int = intval("$LOGIN_TIME_M");
    +	$LOGIN_TIME_S = ($LOGIN_TIME_M - $LOGIN_TIME_M_int);
    +	$LOGIN_TIME_S = ($LOGIN_TIME_S * 60);
    +	$LOGIN_TIME_S = round($LOGIN_TIME_S, 0);
    +	if ($LOGIN_TIME_S < 10) {$LOGIN_TIME_S = "0$LOGIN_TIME_S";}
    +	if ($LOGIN_TIME_M_int < 10) {$LOGIN_TIME_M_int = "0$LOGIN_TIME_M_int";}
    +	$LOGIN_TIME_HMS = "$LOGIN_TIME_H_int:$LOGIN_TIME_M_int:$LOGIN_TIME_S";
    +	$pfLOGIN_TIME_HMS =		sprintf("%8s", $LOGIN_TIME_HMS);
    +
    +echo "-----------------------------------------\n";
    +echo "TOTAL LOGGED-IN TIME:    $pfLOGIN_TIME_HMS\n";
    +
    +}
    +
    +
    +
    +?>
    +
    +
    \ No newline at end of file
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_timeclock_detail.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_timeclock_detail.php
    new file mode 100644
    index 00000000..efcc2bad
    --- /dev/null
    +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_agent_timeclock_detail.php
    @@ -0,0 +1,631 @@
    +    LICENSE: AGPLv2
    +#
    +# CHANGES
    +# 90602-2244 - First build
    +#
    +
    +
    +require("dbconnect.php");
    +require("functions.php");
    +
    +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER'];
    +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW'];
    +$PHP_SELF=$_SERVER['PHP_SELF'];
    +if (isset($_GET["query_date"]))				{$query_date=$_GET["query_date"];}
    +	elseif (isset($_POST["query_date"]))	{$query_date=$_POST["query_date"];}
    +if (isset($_GET["end_date"]))				{$end_date=$_GET["end_date"];}
    +	elseif (isset($_POST["end_date"]))		{$end_date=$_POST["end_date"];}
    +if (isset($_GET["group"]))					{$group=$_GET["group"];}
    +	elseif (isset($_POST["group"]))			{$group=$_POST["group"];}
    +if (isset($_GET["user_group"]))				{$user_group=$_GET["user_group"];}
    +	elseif (isset($_POST["user_group"]))	{$user_group=$_POST["user_group"];}
    +if (isset($_GET["shift"]))					{$shift=$_GET["shift"];}
    +	elseif (isset($_POST["shift"]))			{$shift=$_POST["shift"];}
    +if (isset($_GET["stage"]))					{$stage=$_GET["stage"];}
    +	elseif (isset($_POST["stage"]))			{$stage=$_POST["stage"];}
    +if (isset($_GET["file_download"]))			{$file_download=$_GET["file_download"];}
    +	elseif (isset($_POST["file_download"]))	{$file_download=$_POST["file_download"];}
    +if (isset($_GET["DB"]))						{$DB=$_GET["DB"];}
    +	elseif (isset($_POST["DB"]))			{$DB=$_POST["DB"];}
    +if (isset($_GET["submit"]))					{$submit=$_GET["submit"];}
    +	elseif (isset($_POST["submit"]))		{$submit=$_POST["submit"];}
    +if (isset($_GET["SUBMIT"]))					{$SUBMIT=$_GET["SUBMIT"];}
    +	elseif (isset($_POST["SUBMIT"]))		{$SUBMIT=$_POST["SUBMIT"];}
    +
    +if (strlen($shift)<2) {$shift='ALL';}
    +if (strlen($stage)<2) {$stage='ID';}
    +
    +#############################################
    +##### START SYSTEM_SETTINGS LOOKUP #####
    +$stmt = "SELECT use_non_latin FROM system_settings;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$qm_conf_ct = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $qm_conf_ct)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$non_latin =					$row[0];
    +	$i++;
    +	}
    +##### END SETTINGS LOOKUP #####
    +###########################################
    +
    +$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 and view_reports='1';";
    +if ($DB) {echo "|$stmt|\n";}
    +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +$row=mysql_fetch_row($rslt);
    +$auth=$row[0];
    +
    +  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;
    +	}
    +
    +$MT[0]='';
    +$NOW_DATE = date("Y-m-d");
    +$NOW_TIME = date("Y-m-d H:i:s");
    +$STARTtime = date("U");
    +if (!isset($group)) {$group = '';}
    +if (!isset($query_date)) {$query_date = "$NOW_DATE 00:00:00";}
    +if (!isset($end_date)) {$end_date = "$NOW_DATE 23:59:59";}
    +$query_dateURL = ereg_replace(' ','+',$query_date);
    +$end_dateURL = ereg_replace(' ','+',$end_date);
    +
    +$stmt="select campaign_id from vicidial_campaigns;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$campaigns_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $campaigns_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$groups[$i] =$row[0];
    +	$i++;
    +	}
    +$stmt="select user_group from vicidial_user_groups;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$user_groups_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $user_groups_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$user_groups[$i] =$row[0];
    +	$i++;
    +	}
    +
    +$i=0;
    +$group_string='|';
    +$group_ct = count($group);
    +while($i < $group_ct)
    +	{
    +	$group_string .= "$group[$i]|";
    +	$group_SQL .= "'$group[$i]',";
    +	$groupQS .= "&group[]=$group[$i]";
    +	$i++;
    +	}
    +if ( (ereg("--ALL--",$group_string) ) or ($group_ct < 1) )
    +	{$group_SQL = "";}
    +else
    +	{
    +	$group_SQL = eregi_replace(",$",'',$group_SQL);
    +	$group_SQL = "and campaign_id IN($group_SQL)";
    +	}
    +
    +$i=0;
    +$user_group_string='|';
    +$user_group_ct = count($user_group);
    +while($i < $user_group_ct)
    +	{
    +	$user_group_string .= "$user_group[$i]|";
    +	$user_group_SQL .= "'$user_group[$i]',";
    +	$user_groupQS .= "&user_group[]=$user_group[$i]";
    +	$i++;
    +	}
    +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) )
    +	{$user_group_SQL = "";}
    +else
    +	{
    +	$user_group_SQL = eregi_replace(",$",'',$user_group_SQL);
    +	$user_group_SQL = "and vicidial_agent_log.user_group IN($user_group_SQL)";
    +	$TCuser_group_SQL = eregi_replace(",$",'',$TCuser_group_SQL);
    +	$TCuser_group_SQL = "and user_group IN($TCuser_group_SQL)";
    +	}
    +
    +if ($DB) {echo "$user_group_string|$user_group_ct|$user_groupQS|$i
    ";} + +$stmt="select distinct pause_code,pause_code_name from vicidial_pause_codes;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$statha_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $statha_to_print) + { + $row=mysql_fetch_row($rslt); + $pause_code[$i] = "$row[0]"; + $pause_code_name[$i] = "$row[1]"; + $i++; + } + +$LINKbase = "$PHP_SELF?query_date=$query_dateURL&end_date=$end_dateURL$groupQS$user_groupQS&shift=$shift&DB=$DB"; + +if ($file_download < 1) + { + ?> + + + + + + \n"; + echo "User Time-Clock Detail\n"; + echo ""; + + $short_header=1; + + require("admin_header.php"); + + echo "\n"; + echo "\n"; + echo "
    \n";
    +	}
    +
    +if (strlen($user_group[0]) < 1)
    +	{
    +	echo "\n";
    +	echo "PLEASE SELECT A CAMPAIGN OR USER GROUP AND DATE-TIME ABOVE AND CLICK SUBMIT\n";
    +	echo " NOTE: stats taken from shift specified\n";
    +	}
    +
    +else
    +	{
    +	if ($shift == 'TEST') 
    +		{
    +		$time_BEGIN = "09:45:00";  
    +		$time_END = "10:00:00";
    +		}
    +	if ($shift == 'AM') 
    +		{
    +		$time_BEGIN=$AM_shift_BEGIN;
    +		$time_END=$AM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +		if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +		}
    +	if ($shift == 'PM') 
    +		{
    +		$time_BEGIN=$PM_shift_BEGIN;
    +		$time_END=$PM_shift_END;
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +		}
    +	if ($shift == 'ALL') 
    +		{
    +		if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +		if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +		}
    +	$query_date_BEGIN = "$query_date";   
    +	$query_date_END = "$end_date";
    +
    +	if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
    +	else {$ugSQL='';}
    +
    +	if ($file_download < 1)
    +		{
    +		echo "User Time-Clock Detail                     $NOW_TIME\n";
    +
    +		echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +		}
    +	else
    +		{
    +		$file_output .= "User Time-Clock Detail                     $NOW_TIME\n";
    +		$file_output .= "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +		}
    +
    +
    +
    +	############################################################################
    +	##### BEGIN gathering information from the database section
    +	############################################################################
    +
    +	### BEGIN gather user IDs and names for matching up later
    +	$stmt="select full_name,user,user_group from vicidial_users order by user limit 100000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$users_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $users_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$ULname[$i] =	$row[0];
    +		$ULuser[$i] =	$row[1];
    +		$ULgroup[$i] =	$row[2];
    +		$i++;
    +		}
    +	### END gather user IDs and names for matching up later
    +
    +
    +	### BEGIN gather timeclock time totals per agent
    +	$stmt="select user,sum(login_sec) from vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date_BEGIN' and event_date <= '$query_date_END' $TCuser_group_SQL group by user limit 10000000;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$punches_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $punches_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$TCuser[$i] =	$row[0];
    +		$TCtime[$i] =	$row[1];
    +		$uc++;
    +		$i++;
    +		}
    +	### END gather timeclock records per agent
    +
    +	############################################################################
    +	##### END gathering information from the database section
    +	############################################################################
    +
    +
    +
    +
    +	##### BEGIN print the output to screen or put into file output variable
    +	if ($file_download < 1)
    +		{
    +		echo "AGENT TIME-CLOCK DETAIL:\n";
    +		echo "+-----------------+----------+----------------------+------------+--------------------\n";
    +		echo "| USER NAME       | ID       | USER GROUP           | TIME CLOCK | TIME CLOCK PUNCHES\n";
    +		echo "+-----------------+----------+----------------------+------------+--------------------\n";
    +		}
    +	else
    +		{
    +		$file_output .= "USER,ID,GROUP,TIME CLOCK,TIME CLOCK PUNCHES\n";
    +		}
    +	##### END print the output to screen or put into file output variable
    +
    +
    +
    +
    +
    +	############################################################################
    +	##### BEGIN formatting data for output section
    +	############################################################################
    +
    +	##### BEGIN loop through each user formatting data for output
    +	$AUTOLOGOUTflag=0;
    +	$m=0;
    +	while ( ($m < $uc) and ($m < 50000) )
    +		{
    +		$TCdetail='';
    +		$rawTCdetail='';
    +		$n=0;
    +		$user_name_found=0;
    +		$RAWuser=$TCuser[$m];
    +		while ($n < $users_to_print)
    +			{
    +			if ($TCuser[$m] == "$ULuser[$n]")
    +				{
    +				$user_name_found++;
    +				$RAWname = $ULname[$n];
    +				$RAWgroup = $ULgroup[$n];
    +				$Sname[$m] = $ULname[$n];
    +				$Sgroup[$m] = $ULgroup[$n];
    +				}
    +			$n++;
    +			}
    +		if ($user_name_found < 1)
    +			{
    +			$RAWname =		"NOT IN SYSTEM";
    +			$RAWgroup =		"GROUP NOT IN SYSTEM";
    +			$Sname[$m] =	$RAWname;
    +			}
    +
    +		$n=0;
    +		$punches_found=0;
    +		while ($n < $punches_to_print)
    +			{
    +			if ($RAWuser == "$TCuser[$n]")
    +				{
    +				$punches_found++;
    +				$RAWtimeTCsec =		$TCtime[$n];
    +				$TOTtimeTC =		($TOTtimeTC + $TCtime[$n]);
    +				$StimeTC[$m]=		sec_convert($TCtime[$n],'H'); 
    +				$RAWtimeTC =		$StimeTC[$m];
    +				$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
    +				}
    +			$n++;
    +			}
    +		if ($punches_found < 1)
    +			{
    +			$RAWtimeTCsec =		"0";
    +			$StimeTC[$m]=		"0:00"; 
    +			$RAWtimeTC =		$StimeTC[$m];
    +			$StimeTC[$m] =		sprintf("%10s", $StimeTC[$m]);
    +			}
    +
    +		### Check if the user had an AUTOLOGOUT timeclock event during the time period
    +		$TCuserAUTOLOGOUT = ' ';
    +		$stmt="select event_epoch,event_date,login_sec,event,user_group from vicidial_timeclock_log where event_date <= '$query_date_END' and event_date >= '$query_date_BEGIN' and user='$TCuser[$m]' $TCuser_group_SQL order by event_date limit 10000000;";
    +		$rslt=mysql_query($stmt, $link);
    +		if ($DB) {echo "$stmt\n";}
    +		$TC_results = mysql_num_rows($rslt);
    +		$k=0;
    +		while ($TC_results > $k)
    +			{
    +			$TCentryAUTOLOGOUT = ' ';
    +			$row=mysql_fetch_row($rslt);
    +			$event_epoch =	$row[0];
    +			$event_date =	$row[1];
    +			$login_sec =	$row[2];
    +			$event =		$row[3];
    +			$user_group =	$row[4];
    +			$date_detail = explode(' ',$event_date);
    +
    +			if ($event == 'AUTOLOGOUT')
    +				{
    +				$TCentryAUTOLOGOUT = '*';
    +				$TCuserAUTOLOGOUT =	'*';
    +				$AUTOLOGOUTflag++;
    +				}
    +			$TCdetail .= "$date_detail[1]$TCentryAUTOLOGOUT ";
    +			$rawTCdetail .= "$date_detail[1],";
    +			$k++;
    +			}
    +
    +		if ($TC_results > 0)
    +			{$rawTCdetail = ereg_replace(",$",'',$rawTCdetail);}
    +
    +		$Stime[$m] =	sprintf("%10s", $Stime[$m]); 
    +		$SORTname =	sprintf("%-20s", $Sname[$m]);
    +		$SORTgroup =	sprintf("%-20s", $Sgroup[$m]);
    +		$Sgroup[$m] =	sprintf("%-20s", $Sgroup[$m]); 
    +		$SORTgroup = ereg_replace(" ",'0',$SORTgroup);
    +		$SORTname = ereg_replace(" ",'0',$SORTname);
    +
    +		if ($non_latin < 1)
    +			{
    +			$Sname[$m]=	sprintf("%-15s", $Sname[$m]); 
    +			while(strlen($Sname[$m])>15) {$Sname[$m] = substr("$Sname[$m]", 0, -1);}
    +			$Suser[$m] =		sprintf("%-8s", $TCuser[$m]);
    +			while(strlen($Suser[$m])>8) {$Suser[$m] = substr("$Suser[$m]", 0, -1);}
    +			}
    +		else
    +			{	
    +			$Sname[$m]=	sprintf("%-45s", $Sname[$m]); 
    +			while(mb_strlen($Sname[$m],'utf-8')>15) {$Sname[$m] = mb_substr("$Sname[$m]", 0, -1,'utf-8');}
    +			$Suser[$m] =	sprintf("%-24s", $TCuser[$m]);
    +			while(mb_strlen($Suser[$m],'utf-8')>8) {$Suser[$m] = mb_substr("$Suser[$m]", 0, -1,'utf-8');}
    +			}
    +
    +
    +		if ($file_download < 1)
    +			{
    +			$Toutput = "| $Sname[$m] | $Suser[$m] | $Sgroup[$m] | $StimeTC[$m]$TCuserAUTOLOGOUT| $TCdetail\n";
    +			}
    +		else
    +			{
    +			$fileToutput = "$RAWname,$RAWuser,$RAWgroup,$RAWtimeTC,$rawTCdetail\n";
    +			}
    +
    +		$TOPsorted_output[$m] = $Toutput;
    +		$TOPsorted_outputFILE[$m] = $fileToutput;
    +
    +		if ($stage == 'NAME')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%020s", $SORTname) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$RAWcalls;
    +			}
    +		if ($stage == 'ID')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%08s", $RAWuser) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$RAWcalls;
    +			}
    +		if ($stage == 'TCLOCK')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%010s", $RAWtimeTCsec) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$RAWtimeTCsec;
    +			}
    +		if ($stage == 'GROUP')
    +			{
    +			$TOPsort[$m] =	'' . sprintf("%020s", $SORTgroup) . '-----' . $m . '-----' . sprintf("%020s", $RAWuser);
    +			$TOPsortTALLY[$m]=$SORTgroup;
    +			}
    +		if (!ereg("NAME|ID|TCLOCK|GROUP",$stage))
    +			if ($file_download < 1)
    +				{echo "$Toutput";}
    +			else
    +				{$file_output .= "$fileToutput";}
    +
    +		if ($TOPsortMAX < $TOPsortTALLY[$m]) {$TOPsortMAX = $TOPsortTALLY[$m];}
    +
    +#		echo "$Suser[$m]|$Sname[$m]|$Swait[$m]|$Stalk[$m]|$Sdispo[$m]|$Spause[$m]|$Scalls[$m]\n";
    +		$m++;
    +		}
    +	##### END loop through each user formatting data for output
    +
    +
    +	$TOT_AGENTS = sprintf("%4s", $m);
    +	$k=$m;
    +
    +	if ($DB) {echo "Done analyzing...   $TOTwait|$TOTtalk|$TOTdispo|$TOTpause|$TOTALtime|$TOTcalls|$uc|
    \n";} + + + ### BEGIN sort through output to display properly ### + if (ereg("NAME|ID|TCLOCK|GROUP",$stage)) + { + if (ereg("ID",$stage)) + {sort($TOPsort, SORT_NUMERIC);} + if (ereg("TCLOCK",$stage)) + {rsort($TOPsort, SORT_NUMERIC);} + if (ereg("GROUP",$stage)) + {sort($TOPsort, SORT_REGULAR);} + if (ereg("NAME",$stage)) + {sort($TOPsort, SORT_STRING);} + + $m=0; + while ($m < $k) + { + $sort_split = explode("-----",$TOPsort[$m]); + $i = $sort_split[1]; + $sort_order[$m] = "$i"; + if ($file_download < 1) + {echo "$TOPsorted_output[$i]";} + else + {$file_output .= "$TOPsorted_outputFILE[$i]";} + $m++; + } + } + ### END sort through output to display properly ### + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + ############################################################################ + ##### BEGIN last line totals output section + ############################################################################ + + ### call function to calculate and print dialable leads + $TOTtimeTC = sec_convert($TOTtimeTC,'H'); + + $TOTtimeTC = sprintf("%11s", $TOTtimeTC); + ###### END LAST LINE TOTALS FORMATTING ########## + + + + if ($file_download < 1) + { + echo "+-----------------+----------+----------------------+------------+--------------------\n"; + echo "| TOTALS AGENTS:$TOT_AGENTS | |$TOTtimeTC |\n"; + echo "+----------------------------+ +------------+\n"; + if ($AUTOLOGOUTflag > 0) + {echo " * denotes AUTOLOGOUT from timeclock\n";} + echo "\n\n
    "; + } + else + { + $file_output .= "TOTALS,$TOT_AGENTS,,$TOTtimeTC\n"; + } + } + + ############################################################################ + ##### END formatting data for output section + ############################################################################ + + + + + +if ($file_download > 0) + { + $FILE_TIME = date("Ymd-His"); + $CSVfilename = "AGENT_TIME$US$FILE_TIME.csv"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$CSVfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + echo "$file_output"; + + exit; + } + + +############################################################################ +##### BEGIN HTML form section +############################################################################ +echo "
    \n"; +echo "
    Dates:
    "; +echo "\n"; +echo "\n"; +echo "
    to
    \n"; + +# echo "
    Campaigns:
    "; +# echo "\n"; + +echo "
    User Groups:
    "; +echo "\n"; +echo "
    Shift:
    "; +echo "

    \n"; +echo "\n"; +echo "
            "; + +echo "          \n"; +echo " DOWNLOAD | \n"; +echo " REPORTS \n"; +echo "\n"; +echo "
    "; + +echo "
    \n\n"; +############################################################################ +##### END HTML form section +############################################################################ + + +$ENDtime = date("U"); +$RUNtime = ($ENDtime - $STARTtime); +echo "$RUNtime\n"; + +?> + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_inboundEXTstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_inboundEXTstats.php new file mode 100644 index 00000000..5891e217 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_inboundEXTstats.php @@ -0,0 +1,401 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1';"; + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.11.20';} + +$stmt="select extension,full_number,inbound_name from inbound_numbers where server_ip='" . mysql_real_escape_string($server_ip) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$inbound_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + $inbound[$i] =$row[0]; + $fullnum[$i] =$row[1]; + $inbname[$i] =$row[2]; + $i++; + } +?> + + + + + +\n"; +#echo"\n"; +echo "ASTERISK: Inbound Calls Stats\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if (!$group)
    +{
    +echo "\n\n";
    +echo "PLEASE SELECT A NUMBER AND DATE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +
    +
    +echo "ASTERISK: Inbound Calls Stats                      $NOW_TIME\n";
    +
    +echo "\n";
    +echo "---------- TOTALS\n";
    +
    +$extenSQL = "and extension='" . mysql_real_escape_string($group) . "'";
    +if (eregi("\*",$group))
    +	{$extenSQL = "and extension LIKE \"%$group\"";}
    +$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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +$TOTALcalls =	sprintf("%10s", $row[0]);
    +$average_hold_seconds = ($row[1] / $row[0]);
    +$average_hold_seconds = round($average_hold_seconds, 0);
    +$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
    +
    +echo "Total Calls That came into this number:       $TOTALcalls\n";
    +echo "Average Call Length(seconds) for all Calls:   $average_hold_seconds\n";
    +
    +echo "\n";
    +echo "---------- DROPS\n";
    +
    +$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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +$DROPcalls =	sprintf("%10s", $row[0]);
    +$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
    +$DROPpercent = round($DROPpercent, 0);
    +
    +if ($row[0])
    +	{
    +	$average_hold_seconds = ($row[1] / $row[0]);
    +	$average_hold_seconds = round($average_hold_seconds, 0);
    +	$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
    +	}
    +else {$DROPpercent=0;   $average_hold_seconds=0;}
    +echo "Total DROP Calls:   (less than 10 seconds)    $DROPcalls  $DROPpercent%\n";
    +echo "Average Call Length(seconds) for DROP Calls:  $average_hold_seconds\n";
    +
    +
    +##############################
    +#########  CALLS STATS
    +
    +echo "\n";
    +echo "---------- CALL LISTINGS\n";
    +echo "+----------------------+----------------------+--------+---------------------+\n";
    +echo "| CALLERID             | CALLERIDNAME         | LENGTH | DATE TIME           |\n";
    +echo "+----------------------+----------------------+--------+---------------------+\n";
    +
    +$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);
    +if ($DB) {echo "$stmt\n";}
    +$users_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $users_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$CID =			sprintf("%-20s", $row[0]);
    +	$CIDname =		sprintf("%-20s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}
    +	$datetime =		sprintf("%-19s", $row[3]);
    +	$USERavgTALK =	$row[2];
    +
    +	$USERavgTALK_M = ($USERavgTALK / 60);
    +	$USERavgTALK_M = round($USERavgTALK_M, 2);
    +	$USERavgTALK_M_int = intval("$USERavgTALK_M");
    +	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
    +	$USERavgTALK_S = ($USERavgTALK_S * 60);
    +	$USERavgTALK_S = round($USERavgTALK_S, 0);
    +	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
    +	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
    +	$USERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
    +
    +	echo "| $CID | $CIDname | $USERavgTALK_MS | $datetime |\n";
    +
    +	$i++;
    +	}
    +
    +echo "+----------------------+----------------------+--------+---------------------+\n";
    +
    +##############################
    +#########  TIME STATS
    +
    +if ($output == 'FULL')
    +	{
    +
    +	echo "\n";
    +	echo "---------- TIME STATS\n";
    +
    +	echo "\n";
    +
    +	$hi_hour_count=0;
    +	$last_full_record=0;
    +	$i=0;
    +	$h=0;
    +	while ($i <= 96)
    +		{
    +		$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);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$hour_count[$i] = $row[0];
    +		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +		if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +		$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);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$drop_count[$i] = $row[0];
    +		$i++;
    +
    +
    +		$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);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$hour_count[$i] = $row[0];
    +		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +		if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +		$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);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$drop_count[$i] = $row[0];
    +		$i++;
    +
    +		$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);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$hour_count[$i] = $row[0];
    +		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +		if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +		$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);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$drop_count[$i] = $row[0];
    +		$i++;
    +
    +		$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);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$hour_count[$i] = $row[0];
    +		if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$i];}
    +		if ($hour_count[$i] > 0) {$last_full_record = $i;}
    +		$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);
    +		if ($DB) {echo "$stmt\n";}
    +		$row=mysql_fetch_row($rslt);
    +		$drop_count[$i] = $row[0];
    +		$i++;
    +		$h++;
    +		}
    +
    +	$hour_multiplier = (100 / $hi_hour_count);
    +	#$hour_multiplier = round($hour_multiplier, 0);
    +
    +	echo "\n";
    +	echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL CALLS\n";
    +
    +	$k=1;
    +	$Mk=0;
    +	$call_scale = '0';
    +	while ($k <= 102) 
    +		{
    +		if ($Mk >= 5) 
    +			{
    +			$Mk=0;
    +			$scale_num=($k / $hour_multiplier);
    +			$scale_num = round($scale_num, 0);
    +			$LENscale_num = (strlen($scale_num));
    +			$k = ($k + $LENscale_num);
    +			$call_scale .= "$scale_num";
    +			}
    +		else
    +			{
    +			$call_scale .= " ";
    +			$k++;   $Mk++;
    +			}
    +		}
    +
    +
    +	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
    +	#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
    +	echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
    +	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
    +
    +	$ZZ = '00';
    +	$i=0;
    +	$h=4;
    +	$hour= -1;
    +	$no_lines_yet=1;
    +
    +	while ($i <= 96)
    +		{
    +		$char_counter=0;
    +		$time = '      ';
    +		if ($h >= 4) 
    +			{
    +			$hour++;
    +			$h=0;
    +			if ($hour < 10) {$hour = "0$hour";}
    +			$time = "+$hour$ZZ+";
    +			}
    +		if ($h == 1) {$time = "   15 ";}
    +		if ($h == 2) {$time = "   30 ";}
    +		if ($h == 3) {$time = "   45 ";}
    +		$Ghour_count = $hour_count[$i];
    +		if ($Ghour_count < 1) 
    +			{
    +			if ( ($no_lines_yet) or ($i > $last_full_record) )
    +				{
    +				$do_nothing=1;
    +				}
    +			else
    +				{
    +				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +				echo "|$time|";
    +				$k=0;   while ($k <= 102) {echo " ";   $k++;}
    +				echo "| $hour_count[$i] |\n";
    +				}
    +			}
    +		else
    +			{
    +			$no_lines_yet=0;
    +			$Xhour_count = ($Ghour_count * $hour_multiplier);
    +			$Yhour_count = (99 - $Xhour_count);
    +
    +			$Gdrop_count = $drop_count[$i];
    +			if ($Gdrop_count < 1) 
    +				{
    +				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +
    +				echo "|$time|";
    +				$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
    +				echo "*X";   $char_counter++;
    +				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +					while ($char_counter <= 101) {echo " ";   $char_counter++;}
    +				echo "| 0     | $hour_count[$i] |\n";
    +
    +				}
    +			else
    +				{
    +				$Xdrop_count = ($Gdrop_count * $hour_multiplier);
    +
    +			#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
    +
    +				$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
    +
    +				$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +				$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
    +
    +				echo "|$time|";
    +				$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
    +				echo "D";   $char_counter++;
    +				$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
    +				echo "X";   $char_counter++;
    +				$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +					while ($char_counter <= 102) {echo " ";   $char_counter++;}
    +				echo "| $drop_count[$i] | $hour_count[$i] |\n";
    +				}
    +			}
    +		
    +		
    +		$i++;
    +		$h++;
    +		}
    +
    +
    +	echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
    +
    +
    +	}
    +
    +
    +
    +
    +}
    +
    +
    +
    +?>
    +
    + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_inboundEXTstats_department.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_inboundEXTstats_department.php new file mode 100644 index 00000000..76801826 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_inboundEXTstats_department.php @@ -0,0 +1,196 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 70201-1710 - First Build +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_query_date"])) {$end_query_date=$_GET["end_query_date"];} + elseif (isset($_POST["end_query_date"])) {$end_query_date=$_POST["end_query_date"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_query_date)) {$end_query_date = $NOW_DATE;} +if (!isset($server_ip)) {$server_ip = '10.10.11.20';} + +$stmt="select distinct department from inbound_numbers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$dept_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $dept_to_print) + { + $row=mysql_fetch_row($rslt); + $dept[$i] =$row[0]; + $i++; + } + +?> + + + + + +\n"; +#echo"\n"; +echo "ASTERISK: Inbound Calls Stats - By Department\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if (!$group)
    +{
    +echo "\n\n";
    +echo "PLEASE SELECT A DEPARTMENT AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +$extSQL='';
    +$stmt="select extension from inbound_numbers where department='$group';";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$inbound_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $inbound_to_print)
    +	{
    +	if (strlen($extSQL)> 1) {$extSQL .= ",";}
    +	$row=mysql_fetch_row($rslt);
    +	$extensions[$i] =$row[0];
    +	$extSQL .= "'$extensions[$i]'";
    +	$i++;
    +	}
    +
    +echo "ASTERISK: Inbound Calls Stats For $group   from $query_date to $end_query_date\n";
    +
    +echo "\n";
    +echo "---------- TOTALS\n";
    +echo "\n";
    +
    +echo "+----------------------+------------+------------+\n";
    +echo "| NUMBER               | CALLS      | AVG TIME   |\n";
    +echo "+----------------------+------------+------------+\n";
    +
    +$k=0;
    +while ($k < $inbound_to_print)
    +	{
    +	$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($end_query_date) . " 23:59:59' and server_ip='" . mysql_real_escape_string($server_ip) . "' and extension='$extensions[$k]' ;";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +
    +	$extensions[$k] = sprintf("%20s", $extensions[$k]);
    +	$TOTALcalls =	sprintf("%10s", $row[0]);
    +	if ( ($row[0]<1) or ($row[1]<1) )
    +		{
    +		$average_hold_seconds = "         0";
    +		}
    +	else
    +		{
    +		$average_hold_seconds = ($row[1] / $row[0]);
    +		$average_hold_seconds = round($average_hold_seconds, 0);
    +		$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
    +		}
    +
    +	$calls = ($TOTALcalls + $calls);
    +	$seconds = ($row[1] + $seconds);
    +
    +	echo "| $extensions[$k] | $TOTALcalls | $average_hold_seconds |\n";
    +	$k++;
    +	}
    +
    +$calls =	sprintf("%10s", $calls);
    +$seconds = ($seconds / $calls);
    +$seconds = round($seconds, 0);
    +$seconds =	sprintf("%5s", $seconds);
    +echo "+----------------------+------------+------------+\n";
    +echo "| TOTALS               | $calls | AVG: $seconds |\n";
    +echo "+----------------------+------------+------------+\n";
    +
    +
    +}
    +
    +
    +
    +?>
    +
    + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_parkstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_parkstats.php new file mode 100644 index 00000000..5f6e4f37 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_parkstats.php @@ -0,0 +1,397 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1717 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1';"; + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select distinct channel_group from park_log;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + + + + + +\n"; +echo "VICIDIAL: Park Stats\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFY | REPORTS \n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if (!$group)
    +{
    +echo "\n\n";
    +echo "PLEASE SELECT A GROUP AND DATE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +
    +
    +echo "VICIDIAL: Park Stats                             $NOW_TIME\n";
    +
    +echo "\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='" . mysql_real_escape_string($group) . "';";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +$TOTALcalls =	sprintf("%10s", $row[0]);
    +$average_hold_seconds = ($row[1] / $row[0]);
    +$average_hold_seconds = round($average_hold_seconds, 0);
    +$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
    +
    +echo "Total Calls taken in this Group:              $TOTALcalls\n";
    +echo "Average Hold Time(seconds) for all Calls:     $average_hold_seconds\n";
    +
    +echo "\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='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +$DROPcalls =	sprintf("%10s", $row[0]);
    +$DROPpercent = (($DROPcalls / $TOTALcalls) * 100);
    +$DROPpercent = round($DROPpercent, 0);
    +
    +$average_hold_seconds = ($row[1] / $row[0]);
    +$average_hold_seconds = round($average_hold_seconds, 0);
    +$average_hold_seconds =	sprintf("%10s", $average_hold_seconds);
    +
    +echo "Total Dropped Calls:                          $DROPcalls  $DROPpercent%\n";
    +echo "Average Hold Time(seconds) for Dropped Calls: $average_hold_seconds\n";
    +
    +
    +##############################
    +#########  USER STATS
    +
    +echo "\n";
    +echo "---------- USER STATS\n";
    +echo "+--------------------------+------------+--------+--------+\n";
    +echo "| USER                     | CALLS      | TIME M | AVRG M |\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='" . 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);
    +if ($DB) {echo "$stmt\n";}
    +$users_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $users_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$user =			sprintf("%-6s", $row[0]);
    +	$full_name =	sprintf("%-15s", $row[1]); while(strlen($full_name)>15) {$full_name = substr("$full_name", 0, -1);}
    +	$USERcalls =	sprintf("%10s", $row[2]);
    +	$USERtotTALK =	$row[3];
    +	$USERavgTALK =	$row[4];
    +
    +	$USERtotTALK_M = ($USERtotTALK / 60);
    +	$USERtotTALK_M = round($USERtotTALK_M, 2);
    +	$USERtotTALK_M_int = intval("$USERtotTALK_M");
    +	$USERtotTALK_S = ($USERtotTALK_M - $USERtotTALK_M_int);
    +	$USERtotTALK_S = ($USERtotTALK_S * 60);
    +	$USERtotTALK_S = round($USERtotTALK_S, 0);
    +	if ($USERtotTALK_S < 10) {$USERtotTALK_S = "0$USERtotTALK_S";}
    +	$USERtotTALK_MS = "$USERtotTALK_M_int:$USERtotTALK_S";
    +	$USERtotTALK_MS =		sprintf("%6s", $USERtotTALK_MS);
    +
    +	$USERavgTALK_M = ($USERavgTALK / 60);
    +	$USERavgTALK_M = round($USERavgTALK_M, 2);
    +	$USERavgTALK_M_int = intval("$USERavgTALK_M");
    +	$USERavgTALK_S = ($USERavgTALK_M - $USERavgTALK_M_int);
    +	$USERavgTALK_S = ($USERavgTALK_S * 60);
    +	$USERavgTALK_S = round($USERavgTALK_S, 0);
    +	if ($USERavgTALK_S < 10) {$USERavgTALK_S = "0$USERavgTALK_S";}
    +	$USERavgTALK_MS = "$USERavgTALK_M_int:$USERavgTALK_S";
    +	$USERavgTALK_MS =		sprintf("%6s", $USERavgTALK_MS);
    +
    +	echo "| $user - $full_name | $USERcalls | $USERtotTALK_MS | $USERavgTALK_MS |\n";
    +
    +	$i++;
    +	}
    +
    +echo "+--------------------------+------------+--------+--------+\n";
    +
    +##############################
    +#########  TIME STATS
    +
    +echo "\n";
    +echo "---------- TIME STATS\n";
    +
    +echo "\n";
    +
    +$hi_hour_count=0;
    +$last_full_record=0;
    +$i=0;
    +$h=0;
    +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='" . mysql_real_escape_string($group) . "';";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$hour_count[$i] = $row[0];
    +	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$drop_count[$i] = $row[0];
    +	$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='" . mysql_real_escape_string($group) . "';";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$hour_count[$i] = $row[0];
    +	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$drop_count[$i] = $row[0];
    +	$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='" . mysql_real_escape_string($group) . "';";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$hour_count[$i] = $row[0];
    +	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$drop_count[$i] = $row[0];
    +	$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='" . mysql_real_escape_string($group) . "';";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$hour_count[$i] = $row[0];
    +	if ($hour_count[$i] > $hi_hour_count) {$hi_hour_count = $hour_count[$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='" . mysql_real_escape_string($group) . "' and (talked_sec < 5 or talked_sec is null);";
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$row=mysql_fetch_row($rslt);
    +	$drop_count[$i] = $row[0];
    +	$i++;
    +	$h++;
    +	}
    +
    +$hour_multiplier = (100 / $hi_hour_count);
    +#$hour_multiplier = round($hour_multiplier, 0);
    +
    +echo "\n";
    +echo "GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP\n";
    +
    +$k=1;
    +$Mk=0;
    +$call_scale = '0';
    +while ($k <= 102) 
    +	{
    +	if ($Mk >= 5) 
    +		{
    +		$Mk=0;
    +		$scale_num=($k / $hour_multiplier);
    +		$scale_num = round($scale_num, 0);
    +		$LENscale_num = (strlen($scale_num));
    +		$k = ($k + $LENscale_num);
    +		$call_scale .= "$scale_num";
    +		}
    +	else
    +		{
    +		$call_scale .= " ";
    +		$k++;   $Mk++;
    +		}
    +	}
    +
    +
    +echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
    +#echo "| HOUR | GRAPH IN 15 MINUTE INCREMENTS OF TOTAL INCOMING CALLS FOR THIS GROUP                                  | DROPS | TOTAL |\n";
    +echo "| HOUR |$call_scale| DROPS | TOTAL |\n";
    +echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
    +
    +$ZZ = '00';
    +$i=0;
    +$h=4;
    +$hour= -1;
    +$no_lines_yet=1;
    +
    +while ($i <= 96)
    +	{
    +	$char_counter=0;
    +	$time = '      ';
    +	if ($h >= 4) 
    +		{
    +		$hour++;
    +		$h=0;
    +		if ($hour < 10) {$hour = "0$hour";}
    +		$time = "+$hour$ZZ+";
    +		}
    +	if ($h == 1) {$time = "   15 ";}
    +	if ($h == 2) {$time = "   30 ";}
    +	if ($h == 3) {$time = "   45 ";}
    +	$Ghour_count = $hour_count[$i];
    +	if ($Ghour_count < 1) 
    +		{
    +		if ( ($no_lines_yet) or ($i > $last_full_record) )
    +			{
    +			$do_nothing=1;
    +			}
    +		else
    +			{
    +			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +			echo "|$time|";
    +			$k=0;   while ($k <= 102) {echo " ";   $k++;}
    +			echo "| $hour_count[$i] |\n";
    +			}
    +		}
    +	else
    +		{
    +		$no_lines_yet=0;
    +		$Xhour_count = ($Ghour_count * $hour_multiplier);
    +		$Yhour_count = (99 - $Xhour_count);
    +
    +		$Gdrop_count = $drop_count[$i];
    +		if ($Gdrop_count < 1) 
    +			{
    +			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +
    +			echo "|$time|";
    +			$k=0;   while ($k <= $Xhour_count) {echo "*";   $k++;   $char_counter++;}
    +			echo "*X";   $char_counter++;
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 101) {echo " ";   $char_counter++;}
    +			echo "| 0     | $hour_count[$i] |\n";
    +
    +			}
    +		else
    +			{
    +			$Xdrop_count = ($Gdrop_count * $hour_multiplier);
    +
    +		#	if ($Xdrop_count >= $Xhour_count) {$Xdrop_count = ($Xdrop_count - 1);}
    +
    +			$XXhour_count = ( ($Xhour_count - $Xdrop_count) - 1 );
    +
    +			$hour_count[$i] =	sprintf("%-5s", $hour_count[$i]);
    +			$drop_count[$i] =	sprintf("%-5s", $drop_count[$i]);
    +
    +			echo "|$time|";
    +			$k=0;   while ($k <= $Xdrop_count) {echo ">";   $k++;   $char_counter++;}
    +			echo "D";   $char_counter++;
    +			$k=0;   while ($k <= $XXhour_count) {echo "*";   $k++;   $char_counter++;}
    +			echo "X";   $char_counter++;
    +			$k=0;   while ($k <= $Yhour_count) {echo " ";   $k++;   $char_counter++;}
    +				while ($char_counter <= 102) {echo " ";   $char_counter++;}
    +			echo "| $drop_count[$i] | $hour_count[$i] |\n";
    +			}
    +		}
    +	
    +	
    +	$i++;
    +	$h++;
    +	}
    +
    +
    +echo "+------+-------------------------------------------------------------------------------------------------------+-------+-------+\n";
    +
    +
    +
    +
    +
    +
    +
    +}
    +
    +
    +
    +?>
    +
    + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_server_performance.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_server_performance.php new file mode 100644 index 00000000..5003c37c --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_server_performance.php @@ -0,0 +1,346 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1732 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 70417-1106 - Changed time frame to be definable per time range on a single day +# - Fixed vertical scaling issues +# 80118-1508 - Fixed horizontal scale marking issues +# 90310-2151 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_query_time"])) {$begin_query_time=$_GET["begin_query_time"];} + elseif (isset($_POST["begin_query_time"])) {$begin_query_time=$_POST["begin_query_time"];} +if (isset($_GET["end_query_time"])) {$end_query_time=$_GET["end_query_time"];} + elseif (isset($_POST["end_query_time"])) {$end_query_time=$_POST["end_query_time"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1' and modify_servers='1';"; + 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 +$PLOTroot = "vicidial/ploticus"; +$DOCroot = "$WeBServeRRooT/$PLOTroot/"; + +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + +if (!isset($begin_query_time)) {$begin_query_time = "$NOW_DATE 09:00:00";} +if (!isset($end_query_time)) {$end_query_time = "$NOW_DATE 15:30:00";} +if (!isset($group)) {$group = '';} + +$stmt="select server_ip from servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$servers_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + + + + + +\n"; +echo "Server Performance Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
    "; + + +echo "
    \n"; +echo "Date/Time Range: \n"; +echo "to \n"; +echo "Server: \n"; +echo "\n"; +echo "             REPORTS \n"; +echo "
    \n\n"; + +echo "
    \n";
    +
    +
    +if (!$group)
    +{
    +echo "\n";
    +echo "PLEASE SELECT A SERVER AND DATE/TIME RANGE ABOVE AND CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +
    +$query_date_BEGIN = $begin_query_time;   
    +$query_date_END = $end_query_time;
    +
    +
    +echo "Server Performance Report                            $NOW_TIME\n";
    +
    +echo "Time range: $query_date_BEGIN to $query_date_END\n\n";
    +echo "---------- TOTALS, PEAKS and AVERAGES\n";
    +
    +$stmt="select AVG(sysload),AVG(channels_total),MAX(sysload),MAX(channels_total),MAX(processes) 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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +$AVGload =	sprintf("%10s", $row[0]);
    +$AVGchannels =	sprintf("%10s", $row[1]);
    +$HIGHload =	$row[2];
    +	$HIGHmulti = intval($HIGHload / 100);
    +$HIGHchannels =	$row[3];
    +$HIGHprocesses =$row[4];
    +if ($row[2] > $row[3]) {$HIGHlimit = $row[2];}
    +else {$HIGHlimit = $row[3];}
    +if ($HIGHlimit < $row[4]) {$HIGHlimit = $row[4];}
    +
    +$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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +$AVGcpuUSER =	sprintf("%10s", $row[0]);
    +$AVGcpuSYSTEM =	sprintf("%10s", $row[1]);
    +$AVGcpuIDLE =	sprintf("%10s", $row[2]);
    +
    +$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);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +$TOTALcalls =	sprintf("%10s", $row[0]);
    +$OFFHOOKtime =	sprintf("%10s", $row[1]);
    +
    +
    +echo "Total Calls in/out on this server:        $TOTALcalls\n";
    +echo "Total Off-Hook time on this server (min): $OFFHOOKtime\n";
    +echo "Average/Peak channels in use for server:  $AVGchannels / $HIGHchannels\n";
    +echo "Average/Peak load for server:             $AVGload / $HIGHload\n";
    +echo "Average USER process cpu percentage:      $AVGcpuUSER %\n";
    +echo "Average SYSTEM process cpu percentage:    $AVGcpuSYSTEM %\n";
    +echo "Average IDLE process cpu percentage:      $AVGcpuIDLE %\n";
    +
    +echo "\n";
    +echo "---------- LINE GRAPH:\n";
    +
    +
    +
    +##############################
    +#########  Graph stats
    +
    +$DAT = '.dat';
    +$HTM = '.htm';
    +$PNG = '.png';
    +$filedate = date("Y-m-d_His");
    +$DATfile = "$group$query_date$shift$filedate$DAT";
    +$HTMfile = "$group$query_date$shift$filedate$HTM";
    +$PNGfile = "$group$query_date$shift$filedate$PNG";
    +
    +$HTMfp = fopen ("$DOCroot/$HTMfile", "a");
    +$DATfp = fopen ("$DOCroot/$DATfile", "a");
    +
    +$stmt="select DATE_FORMAT(start_time,'%Y-%m-%d.%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 limit 99999;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$rows_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $rows_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	if ($i<1) {$time_BEGIN = $row[0];}
    +	$time_END = $row[0];
    +	$row[5] = intval(($row[5] + $row[6]) * $HIGHmulti);
    +	$row[6] = intval($row[6] * $HIGHmulti);
    +	if ($rows_to_print > 9999)
    +		{
    +		if ($rows_to_print <= 19999)
    +			{
    +			if (preg_match("/0$|2$|4$|6$|8$/",$i))
    +				{
    +				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
    +				}
    +			}
    +		if ( ($rows_to_print > 19999) and ($rows_to_print <= 49999) )
    +			{
    +			if (preg_match("/0$|5$/",$i))
    +				{
    +				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
    +				}
    +			}
    +		if ( ($rows_to_print > 49999) and ($rows_to_print <= 99999) )
    +			{
    +			if (preg_match("/0$/",$i))
    +				{
    +				fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
    +				}
    +			}
    +		}
    +	else
    +		{
    +		fwrite ($DATfp, "$row[5]\t$row[6]\t$row[0]\t$row[1]\t$row[2]\t$row[3]\n");
    +		}
    +	$i++;
    +	}
    +fclose($DATfp);
    +
    +$rows_to_max = ($rows_to_print + 100);
    +
    +$time_scale_abb = '5 minutes';
    +$time_scale_tick = '1 minute';
    +if ($i > 1000) {$time_scale_abb = '10 minutes';   $time_scale_tick = '2 minutes';}
    +if ($i > 1500) {$time_scale_abb = '15 minutes';   $time_scale_tick = '3 minutes';}
    +if ($i > 2000) {$time_scale_abb = '20 minutes';   $time_scale_tick = '4 minutes';}
    +if ($i > 3000) {$time_scale_abb = '30 minutes';   $time_scale_tick = '5 minutes';}
    +if ($i > 4000) {$time_scale_abb = '40 minutes';   $time_scale_tick = '10 minutes';}
    +if ($i > 5000) {$time_scale_abb = '60 minutes';   $time_scale_tick = '15 minutes';}
    +if ($i > 6000) {$time_scale_abb = '90 minutes';   $time_scale_tick = '15 minutes';}
    +if ($i > 7000) {$time_scale_abb = '120 minutes';   $time_scale_tick = '30 minutes';}
    +
    +print "rows: $i   tick: $time_scale_abb   scale: $time_scale_tick\n";
    +
    +$HTMcontent  = '';
    +$HTMcontent .= "#proc page\n";
    +$HTMcontent .= "#if @DEVICE in png,gif\n";
    +$HTMcontent .= "   scale: 0.6\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#endif\n";
    +$HTMcontent .= "#proc getdata\n";
    +$HTMcontent .= "file: $DOCroot/$DATfile\n";
    +$HTMcontent .= "fieldnames: userproc sysproc datetime load processes channels\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc areadef\n";
    +$HTMcontent .= "title: Server $group   $query_date_BEGIN to $query_date_END\n";
    +$HTMcontent .= "titledetails: size=14  align=C\n";
    +$HTMcontent .= "rectangle: 1 1 12 7\n";
    +$HTMcontent .= "xscaletype: datetime yyyy-mm-dd.hh:mm:ss\n";
    +$HTMcontent .= "xrange: $time_BEGIN $time_END\n";
    +$HTMcontent .= "yrange: 0 $HIGHlimit\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc xaxis\n";
    +$HTMcontent .= "stubs: inc $time_scale_abb\n";
    +$HTMcontent .= "minorticinc: $time_scale_tick\n";
    +$HTMcontent .= "stubformat: hh:mma\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc yaxis\n";
    +$HTMcontent .= "stubs: inc 50\n";
    +$HTMcontent .= "grid: color=yellow\n";
    +$HTMcontent .= "gridskip: min\n";
    +$HTMcontent .= "ticincrement: 100 1000\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc lineplot\n";
    +$HTMcontent .= "xfield: datetime\n";
    +$HTMcontent .= "yfield: userproc\n";
    +$HTMcontent .= "linedetails: color=purple width=.5\n";
    +$HTMcontent .= "fill: lavender\n";
    +$HTMcontent .= "legendlabel: user proc%\n";
    +$HTMcontent .= "maxinpoints: $rows_to_max\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc lineplot\n";
    +$HTMcontent .= "xfield: datetime\n";
    +$HTMcontent .= "yfield: sysproc\n";
    +$HTMcontent .= "linedetails: color=yelloworange width=.5\n";
    +$HTMcontent .= "fill: dullyellow\n";
    +$HTMcontent .= "legendlabel: system proc%\n";
    +$HTMcontent .= "maxinpoints: $rows_to_max\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc curvefit\n";
    +$HTMcontent .= "xfield: datetime\n";
    +$HTMcontent .= "yfield: load\n";
    +$HTMcontent .= "linedetails: color=blue width=.5\n";
    +$HTMcontent .= "legendlabel: load\n";
    +$HTMcontent .= "maxinpoints: $rows_to_max\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc curvefit\n";
    +$HTMcontent .= "xfield: datetime\n";
    +$HTMcontent .= "yfield: processes\n";
    +$HTMcontent .= "linedetails: color=red width=.5\n";
    +$HTMcontent .= "legendlabel: processes\n";
    +$HTMcontent .= "maxinpoints: $rows_to_max\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc curvefit\n";
    +$HTMcontent .= "xfield: datetime\n";
    +$HTMcontent .= "yfield: channels\n";
    +$HTMcontent .= "linedetails: color=green width=.5\n";
    +$HTMcontent .= "legendlabel: channels\n";
    +$HTMcontent .= "maxinpoints: $rows_to_max\n";
    +$HTMcontent .= "\n";
    +$HTMcontent .= "#proc legend\n";
    +$HTMcontent .= "location: max-1 max\n";
    +$HTMcontent .= "seglen: 0.2\n";
    +$HTMcontent .= "\n";
    +
    +fwrite ($HTMfp, "$HTMcontent");
    +fclose($HTMfp);
    +
    +
    +passthru("/usr/local/bin/pl -png $DOCroot/$HTMfile -o $DOCroot/$PNGfile");
    +
    +sleep(1);
    +
    +echo "
    "; +echo "\n"; +echo "\n"; + + +echo ""; + +} + + + +?> + +
    + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDAD.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDAD.php new file mode 100644 index 00000000..90a5f63a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDAD.php @@ -0,0 +1,445 @@ + LICENSE: AGPLv2 +# +# 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 +# 61114-2004 - Changed to display CLOSER and DEFAULT, added trunk shortage +# 80422-0305 - Added phone login to display, lower font size to 2 +# 81013-2227 - Fixed Remote Agent display bug +# 90310-1945 - Admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["closer_display"])) {$closer_display=$_GET["closer_display"];} + elseif (isset($_POST["closer_display"])) {$closer_display=$_POST["closer_display"];} + +$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 and view_reports='1';"; + 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"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; +# $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where grab_time < '$timeSIXhoursAGO' and (hangup_time is null or hangup_time='');"; +# $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + } + } + +?> + + + +\n"; +echo " + + +\n"; +echo"\n"; +echo "Server-Specific Real-Time Report\n"; + +$short_header=1; + +require("admin_header.php"); + +echo "
    "; + +echo "
    ";
    +
    +###################################################################################
    +###### SERVER INFORMATION
    +###################################################################################
    +
    +$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where server_ip='" . mysql_real_escape_string($server_ip) . "';";
    +$rslt=mysql_query($stmt, $link);
    +$row=mysql_fetch_row($rslt);
    +$balanceSHORT = $row[0];
    +
    +echo "SERVER: $server_ip\n";
    +
    +
    +
    +###################################################################################
    +###### TIME ON SYSTEM
    +###################################################################################
    +
    +if ($closer_display>0) {$closer_display_reverse=0;   $closer_reverse_link='DEFAULT';}
    +else {$closer_display_reverse=1;   $closer_reverse_link='CLOSER';}
    +
    +echo "Agents Time On Calls           $NOW_TIME    $closer_reverse_link | REPORTS\n\n";
    +
    +if ($closer_display>0)
    +{
    +echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
    +echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES | CAMPAIGN     | FRONT  |\n";
    +echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
    +}
    +else
    +{
    +echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
    +echo "| STATION    | PHONE      | USER   | SESSIONID | CHANNEL             | STATUS | CALLTIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by extension;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$talking_to_print = mysql_num_rows($rslt);
    +	if ($talking_to_print > 0)
    +	{
    +	$i=0;
    +	while ($i < $talking_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$Sextension[$i] =		$row[0];
    +		$Suser[$i] =			$row[1];
    +		$Ssessionid[$i] =		$row[2];
    +		$Schannel[$i] =			$row[3];
    +		$Sstatus[$i] =			$row[4];
    +		$Sstart_time[$i] =		$row[5];
    +		$Scall_time[$i] =		$row[6];
    +		$Sfinish_time[$i] =		$row[7];
    +		$Suniqueid[$i] =		$row[8];
    +		$Slead_id[$i] =			$row[9];
    +		$i++;
    +		}
    +
    +	$i=0;
    +	while ($i < $talking_to_print)
    +		{
    +		$phone[$i]='          ';
    +		if (eregi("R/",$Sextension[$i])) 
    +			{
    +			$protocol = 'EXTERNAL';
    +			$dialplan = eregi_replace('R/',"",$Sextension[$i]);
    +			$dialplan = eregi_replace("\@.*",'',$dialplan);
    +			$exten = "dialplan_number='$dialplan'";
    +			}
    +		if (eregi("Local/",$Sextension[$i])) 
    +			{
    +			$protocol = 'EXTERNAL';
    +			$dialplan = eregi_replace('Local/',"",$Sextension[$i]);
    +			$dialplan = eregi_replace("\@.*",'',$dialplan);
    +			$exten = "dialplan_number='$dialplan'";
    +			}
    +		if (eregi('SIP/',$Sextension[$i])) 
    +			{
    +			$protocol = 'SIP';
    +			$dialplan = eregi_replace('SIP/',"",$Sextension[$i]);
    +			$dialplan = eregi_replace("-.*",'',$dialplan);
    +			$exten = "extension='$dialplan'";
    +			}
    +		if (eregi('IAX2/',$Sextension[$i])) 
    +			{
    +			$protocol = 'IAX2';
    +			$dialplan = eregi_replace('IAX2/',"",$Sextension[$i]);
    +			$dialplan = eregi_replace("-.*",'',$dialplan);
    +			$exten = "extension='$dialplan'";
    +			}
    +		if (eregi('Zap/',$Sextension[$i])) 
    +			{
    +			$protocol = 'Zap';
    +			$dialplan = eregi_replace('Zap/',"",$Sextension[$i]);
    +			$exten = "extension='$dialplan'";
    +			}
    +
    +		$stmt="select login from phones where server_ip='" . mysql_real_escape_string($server_ip) . "' and $exten and protocol='$protocol';";
    +		$rslt=mysql_query($stmt, $link);
    +		$row=mysql_fetch_row($rslt);
    +		$login = $row[0];
    +
    +		$phone[$i] =			sprintf("%-10s", $login);
    +
    +		if (eregi("READY|PAUSED|CLOSER",$Sstatus[$i]))
    +			{
    +			$Schannel[$i]='';
    +			$Sstart_time[$i]='- WAIT -';
    +			$Scall_time[$i]=$Sfinish_time[$i];
    +			}
    +		$extension[$i] = eregi_replace('Local/',"",$Sextension[$i]);
    +		$extension[$i] =		sprintf("%-10s", $extension[$i]);
    +			while(strlen($extension[$i])>10) {$extension[$i] = substr("$extension[$i]", 0, -1);}
    +		$user[$i] =				sprintf("%-6s", $Suser[$i]);
    +		$sessionid[$i] =		sprintf("%-9s", $Ssessionid[$i]);
    +		$channel[$i] =			sprintf("%-19s", $Schannel[$i]);
    +			$cc[$i]=0;
    +		while ( (strlen($channel[$i]) > 19) and ($cc[$i] < 100) )
    +			{
    +			$channel[$i] = eregi_replace(".$","",$channel[$i]);   
    +			$cc[$i]++;
    +			if (strlen($channel[$i]) <= 19) {$cc[$i]=101;}
    +			}
    +		$status[$i] =			sprintf("%-6s", $Sstatus[$i]);
    +		$start_time[$i] =		sprintf("%-8s", $Sstart_time[$i]);
    +			$cd[$i]=0;
    +		while ( (strlen($start_time[$i]) > 8) and ($cd[$i] < 100) )
    +			{
    +			$start_time[$i] = eregi_replace("^.","",$start_time[$i]);   
    +			$cd[$i]++;
    +			if (strlen($start_time[$i]) <= 8) {$cd[$i]=101;}
    +			}
    +		$uniqueid[$i] =			$Suniqueid[$i];
    +		$lead_id[$i] =			$Slead_id[$i];
    +		$closer[$i] =			$Suser[$i];
    +		$call_time_S[$i] = ($STARTtime - $Scall_time[$i]);
    +
    +		$call_time_M[$i] = ($call_time_S[$i] / 60);
    +		$call_time_M[$i] = round($call_time_M[$i], 2);
    +		$call_time_M_int[$i] = intval("$call_time_M[$i]");
    +		$call_time_SEC[$i] = ($call_time_M[$i] - $call_time_M_int[$i]);
    +		$call_time_SEC[$i] = ($call_time_SEC[$i] * 60);
    +		$call_time_SEC[$i] = round($call_time_SEC[$i], 0);
    +		if ($call_time_SEC[$i] < 10) {$call_time_SEC[$i] = "0$call_time_SEC[$i]";}
    +		$call_time_MS[$i] = "$call_time_M_int[$i]:$call_time_SEC[$i]";
    +		$call_time_MS[$i] =		sprintf("%7s", $call_time_MS[$i]);
    +
    +		if ($closer_display<1)
    +			{
    +			$G = '';		$EG = '';
    +			if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
    +			if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
    +			if (eregi("PAUSED",$Sstatus[$i])) 
    +				{
    +				if ($call_time_M_int >= 1) 
    +					{$i++; continue;} 
    +				else
    +					{$G=''; $EG='';}
    +				}
    +			$agentcount++;
    +			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG |\n";
    +			}
    +		$i++;
    +		}
    +
    +		if ($closer_display>0)
    +		{
    +
    +			$ext_count = $i;
    +			$i=0;
    +		while ($i < $ext_count)
    +			{
    +
    +			$stmt="select campaign_id from vicidial_auto_calls where lead_id='$lead_id[$i]' and server_ip='" . mysql_real_escape_string($server_ip) . "';";
    +			$rslt=mysql_query($stmt, $link);
    +			if ($DB) {echo "$stmt\n";}
    +			$camp_to_print = mysql_num_rows($rslt);
    +			if ($camp_to_print > 0)
    +				{
    +				$row=mysql_fetch_row($rslt);
    +				$campaign = sprintf("%-12s", $row[0]);
    +				$camp_color = $row[0];
    +				}
    +			else
    +				{$campaign = 'DEAD        ';   	$camp_color = 'DEAD';}
    +			if (eregi("READY|PAUSED|CLOSER",$status[$i]))
    +				{$campaign = '            ';   	$camp_color = '';}
    +
    +			$stmt="select user from vicidial_xfer_log where lead_id='$lead_id[$i]' and closer='$closer[$i]' order by call_date desc limit 1;";
    +			$rslt=mysql_query($stmt, $link);
    +			if ($DB) {echo "$stmt\n";}
    +			$xfer_to_print = mysql_num_rows($rslt);
    +			if ($xfer_to_print > 0)
    +				{
    +				$row=mysql_fetch_row($rslt);
    +				$fronter = sprintf("%-6s", $row[0]);
    +				}
    +			else
    +				{$fronter = '      ';}
    +
    +			$G = '';		$EG = '';
    +			$G=""; $EG='';
    +		#	if ($call_time_M_int[$i] >= 5) {$G=''; $EG='';}
    +		#	if ($call_time_M_int[$i] >= 10) {$G=''; $EG='';}
    +
    +			echo "| $G$extension[$i]$EG | $G$phone[$i]$EG | $G$user[$i]$EG | $G$sessionid[$i]$EG | $G$channel[$i]$EG | $G$status[$i]$EG | $G$start_time[$i]$EG | $G$call_time_MS[$i]$EG | $G$campaign$EG | $G$fronter$EG |\n";
    +
    +			$i++;
    +			}
    +		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+--------------+--------+\n";
    +		echo "  $i agents logged in on server $server_ip\n\n";
    +	#	echo "             - 5 minutes or more on call\n";
    +	#	echo "             - Over 10 minutes on call\n";
    +		}
    +	else
    +		{
    +		echo "+------------+------------+--------+-----------+---------------------+--------+----------+---------+\n";
    +		echo "  $agentcount agents logged in on server $server_ip\n\n";
    +
    +		echo "             - Paused agents\n";
    +		echo "             - 5 minutes or more on call\n";
    +		echo "             - Over 10 minutes on call\n";
    +		}
    +
    +	}
    +	else
    +	{
    +	echo "**************************************************************************************\n";
    +	echo "**************************************************************************************\n";
    +	echo "********************************* NO AGENTS ON CALLS *********************************\n";
    +	echo "**************************************************************************************\n";
    +	echo "**************************************************************************************\n";
    +	}
    +
    +
    +###################################################################################
    +###### OUTBOUND CALLS
    +###################################################################################
    +#echo "\n\n";
    +echo "----------------------------------------------------------------------------------------";
    +echo "\n\n";
    +echo "Server-Specific Real-Time Report        TRUNK SHORT: $balanceSHORT          $NOW_TIME\n\n";
    +echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
    +echo "| CHANNEL             | STATUS | CAMPAIGN     | PHONE NUMBER       | CALLTIME | MINUTES |\n";
    +echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
    +
    +$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);
    +if ($DB) {echo "$stmt\n";}
    +$parked_to_print = mysql_num_rows($rslt);
    +	if ($parked_to_print > 0)
    +	{
    +	$i=0;
    +	while ($i < $parked_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +
    +		$channel =			sprintf("%-19s", $row[0]);
    +			$cc=0;
    +		while ( (strlen($channel) > 19) and ($cc < 100) )
    +			{
    +			$channel = eregi_replace(".$","",$channel);   
    +			$cc++;
    +			if (strlen($channel) <= 19) {$cc=101;}
    +			}
    +		$start_time =		sprintf("%-8s", $row[5]);
    +			$cd=0;
    +		while ( (strlen($start_time) > 8) and ($cd < 100) )
    +			{
    +			$start_time = eregi_replace("^.","",$start_time);   
    +			$cd++;
    +			if (strlen($start_time) <= 8) {$cd=101;}
    +			}
    +		$status =			sprintf("%-6s", $row[1]);
    +		$campaign =			sprintf("%-12s", $row[2]);
    +			$all_phone = "$row[3]$row[4]";
    +		$number_dialed =	sprintf("%-18s", $all_phone);
    +		$call_time_S = ($STARTtime - $row[6]);
    +
    +		$call_time_M = ($call_time_S / 60);
    +		$call_time_M = round($call_time_M, 2);
    +		$call_time_M_int = intval("$call_time_M");
    +		$call_time_SEC = ($call_time_M - $call_time_M_int);
    +		$call_time_SEC = ($call_time_SEC * 60);
    +		$call_time_SEC = round($call_time_SEC, 0);
    +		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
    +		$call_time_MS = "$call_time_M_int:$call_time_SEC";
    +		$call_time_MS =		sprintf("%7s", $call_time_MS);
    +		$G = '';		$EG = '';
    +		if (eregi("LIVE",$status)) {$G=''; $EG='';}
    +	#	if ($call_time_M_int >= 6) {$G=''; $EG='';}
    +
    +		echo "| $G$channel$EG | $G$status$EG | $G$campaign$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
    +
    +		$i++;
    +		}
    +
    +		echo "+---------------------+--------+--------------+--------------------+----------+---------+\n";
    +		echo "  $i calls being placed on server $server_ip\n\n";
    +
    +		echo "             - LIVE CALL WAITING\n";
    +	#	echo "             - Over 5 minutes on hold\n";
    +
    +		}
    +	else
    +	{
    +	echo "***************************************************************************************\n";
    +	echo "***************************************************************************************\n";
    +	echo "******************************* NO LIVE CALLS WAITING *********************************\n";
    +	echo "***************************************************************************************\n";
    +	echo "***************************************************************************************\n";
    +	}
    +
    +
    +?>
    +
    +
    + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADall.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADall.php new file mode 100644 index 00000000..99338a0b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADall.php @@ -0,0 +1,1986 @@ + LICENSE: AGPLv2 +# +# live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# CHANGELOG: +# 50406-0920 - Added Paused agents < 1 min +# 51130-1218 - Modified layout and info to show all servers in a vicidial system +# 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 +# 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 +# 60626-1453 - Added display of system load to bottom (Angelito Manansala) +# 60901-1123 - Changed display elements at the top of the screen +# 60905-1342 - Fixed non INCALL|QUEUE timer column +# 61002-1642 - Added TRUNK SHORT/FILL stats +# 61101-1318 - Added SIP and IAX Listen and Barge links option +# 61101-1647 - Added Usergroup column and user name option as well as sorting +# 61102-1155 - Made display of columns more modular, added ability to hide server info +# 61215-1131 - Added answered calls and drop percent taken from answered calls +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70123-1151 - Added non_latin options for substr in display variables, thanks Marin Blu +# 70206-1140 - Added call-type statuses to display(A-Auto, M-Manual, I-Inbound/Closer) +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80227-0418 - Added priority to waiting calls display +# 80311-1550 - Added calls_today on all agents and wait time/in-group for inbound calls +# 80422-0033 - Added phonediaplay option, allow for toggle-sorting on sortable fields +# 80422-1001 - Fixed sort by phone login +# 80424-0515 - Added non_latin lookup from system_settings +# 80525-1040 - Added IVR status display and summary for inbound calls +# 80619-2047 - Added DISPO status for post-call-work while paused +# 80704-0543 - Added DEAD status for agents INCALL with no live call +# 80822-1222 - Added option for display of customer phone number +# 81011-0335 - Fixed remote agent display bug +# 81022-1500 - Added inbound call stats display option +# 81029-1023 - Changed drop percent calculation for multi-stat reports +# 81029-1706 - Added pause code display if enabled per campaign +# 81108-2337 - Added inbound-only section +# 90105-1153 - Changed monitor links to use 0 prefix instead of 6 +# 90202-0108 - Changed options to pop-out frame, added outbound_autodial_active option +# 90310-0906 - Added admin header +# 90428-0727 - Changed listen and barge to use the API and manager must enter phone +# 90508-0623 - Changed to PHP long tags +# 90518-0930 - Fixed $CALLSdisplay static assignment bug for some links(bug #210) +# 90524-2231 - Changed to use functions.php for seconds to HH:MM:SS conversion +# 90602-0405 - Added list mix display in statuses and order if active +# 90603-1845 - Fixed color coding bug +# 90627-0608 - Some Formatting changes, added in-group name display +# 90701-0657 - Fixed inbound=No calculation issues +# 90808-0212 - Fixed inbound only non-ALL bug, changed times to use agent last_state_change +# 90907-0915 - Added PARK status +# 90914-1154 - Added AgentOnly display column to waiting calls section +# 91102-2013 - Changed in-group color styles for incoming calls waiting +# 91204-1548 - Added ability to change agent in-groups and blended +# + + +$version = '2.2.0-49'; +$build = '91204-1548'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["inbound"])) {$inbound=$_GET["inbound"];} + elseif (isset($_POST["inbound"])) {$inbound=$_POST["inbound"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["usergroup"])) {$usergroup=$_GET["usergroup"];} + elseif (isset($_POST["usergroup"])) {$usergroup=$_POST["usergroup"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["SIPmonitorLINK"])) {$SIPmonitorLINK=$_GET["SIPmonitorLINK"];} + elseif (isset($_POST["SIPmonitorLINK"])) {$SIPmonitorLINK=$_POST["SIPmonitorLINK"];} +if (isset($_GET["IAXmonitorLINK"])) {$IAXmonitorLINK=$_GET["IAXmonitorLINK"];} + elseif (isset($_POST["IAXmonitorLINK"])) {$IAXmonitorLINK=$_POST["IAXmonitorLINK"];} +if (isset($_GET["UGdisplay"])) {$UGdisplay=$_GET["UGdisplay"];} + elseif (isset($_POST["UGdisplay"])) {$UGdisplay=$_POST["UGdisplay"];} +if (isset($_GET["UidORname"])) {$UidORname=$_GET["UidORname"];} + elseif (isset($_POST["UidORname"])) {$UidORname=$_POST["UidORname"];} +if (isset($_GET["orderby"])) {$orderby=$_GET["orderby"];} + elseif (isset($_POST["orderby"])) {$orderby=$_POST["orderby"];} +if (isset($_GET["SERVdisplay"])) {$SERVdisplay=$_GET["SERVdisplay"];} + elseif (isset($_POST["SERVdisplay"])) {$SERVdisplay=$_POST["SERVdisplay"];} +if (isset($_GET["CALLSdisplay"])) {$CALLSdisplay=$_GET["CALLSdisplay"];} + elseif (isset($_POST["CALLSdisplay"])) {$CALLSdisplay=$_POST["CALLSdisplay"];} +if (isset($_GET["PHONEdisplay"])) {$PHONEdisplay=$_GET["PHONEdisplay"];} + elseif (isset($_POST["PHONEdisplay"])) {$PHONEdisplay=$_POST["PHONEdisplay"];} +if (isset($_GET["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_GET["CUSTPHONEdisplay"];} + elseif (isset($_POST["CUSTPHONEdisplay"])) {$CUSTPHONEdisplay=$_POST["CUSTPHONEdisplay"];} +if (isset($_GET["with_inbound"])) {$with_inbound=$_GET["with_inbound"];} + elseif (isset($_POST["with_inbound"])) {$with_inbound=$_POST["with_inbound"];} +if (isset($_GET["monitor_active"])) {$monitor_active=$_GET["monitor_active"];} + elseif (isset($_POST["monitor_active"])) {$monitor_active=$_POST["monitor_active"];} +if (isset($_GET["monitor_phone"])) {$monitor_phone=$_GET["monitor_phone"];} + elseif (isset($_POST["monitor_phone"])) {$monitor_phone=$_POST["monitor_phone"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $outbound_autodial_active = $row[1]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if (!isset($DB)) {$DB=0;} +if (!isset($RR)) {$RR=40;} +if (!isset($group)) {$group='';} +if (!isset($usergroup)) {$usergroup='';} +if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes +if (!isset($UidORname)) {$UidORname=1;} # 0=id, 1=name +if (!isset($orderby)) {$orderby='timeup';} +if (!isset($SERVdisplay)) {$SERVdisplay=0;} # 0=no, 1=yes +if (!isset($CALLSdisplay)) {$CALLSdisplay=1;} # 0=no, 1=yes +if (!isset($PHONEdisplay)) {$PHONEdisplay=0;} # 0=no, 1=yes +if (!isset($CUSTPHONEdisplay)) {$CUSTPHONEdisplay=0;} # 0=no, 1=yes +if (!isset($PAUSEcodes)) {$PAUSEcodes='N';} # 0=no, 1=yes +if (!isset($with_inbound)) + { + if ($outbound_autodial_active > 0) + {$with_inbound='N';} # N=no, Y=yes, O=only + else + {$with_inbound='O';} # N=no, Y=yes, O=only + } +$ingroup_detail=''; + +if (strlen($group)>1) {$groups[0] = $group; $RR=40;} +else {$group = $groups[0];} + +function get_server_load($windows = false) + { + $os = strtolower(PHP_OS); + if(strpos($os, "win") === false) + { + if(file_exists("/proc/loadavg")) + { + $load = file_get_contents("/proc/loadavg"); + $load = explode(' ', $load); + return $load[0] . ' ' . $load[1] . ' ' . $load[2]; + } + elseif(function_exists("shell_exec")) + { + $load = explode(' ', `uptime`); + return $load[count($load)-3] . ' ' . $load[count($load)-2] . ' ' . $load[count($load)-1]; + } + else + { + return false; + } + } + elseif($windows) + { + if(class_exists("COM")) + { + $wmi = new COM("WinMgmts:\\\\."); + $cpus = $wmi->InstancesOf("Win32_Processor"); + + $cpuload = 0; + $i = 0; + while ($cpu = $cpus->Next()) + { + $cpuload += $cpu->LoadPercentage; + $i++; + } + + $cpuload = round($cpuload / $i, 2); + return "$cpuload%"; + } + else + { + return false; + } + } + } + +$load_ave = get_server_load(true); + +$NOW_TIME = date("Y-m-d H:i:s"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + + +$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 and view_reports='1' and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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; + } +# and (preg_match("/MONITOR|BARGE|HIJACK/",$monitor_active) ) ) +if ( (!isset($monitor_phone)) or (strlen($monitor_phone)<1) ) + { + $stmt="select phone_login from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and active='Y';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $monitor_phone = $row[0]; + } + +$stmt="select campaign_id,campaign_name from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='ALL-ACTIVE'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $LISTnames[$i] =$row[1]; + $i++; + } + +$i=0; +$group_string='|'; +$group_ct = count($groups); +while($i < $group_ct) + { + $group_string .= "$groups[$i]|"; + $group_SQL .= "'$groups[$i]',"; + $groupQS .= "&groups[]=$groups[$i]"; + $i++; + } +$group_SQL = eregi_replace(",$",'',$group_SQL); + + +if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $all_active = 0; + $group_SQL = "''"; + $group_SQLand = "and FALSE"; + $group_SQLwhere = "where FALSE"; + } +elseif ( eregi('ALL-ACTIVE',$group_string) ) + { + $all_active = 1; + $group_SQL = "''"; + $group_SQLand = ""; + $group_SQLwhere = ""; + } +else + { + $all_active = 0; + $group_SQLand = "and campaign_id IN($group_SQL)"; + $group_SQLwhere = "where campaign_id IN($group_SQL)"; + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$usergroups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $usergroups_to_print) + { + $row=mysql_fetch_row($rslt); + $usergroups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$select_list = ""; +$select_list .= ""; +$select_list .= "
    Select Campaigns:
    "; +$select_list .= ""; +$select_list .= "
    (To select more than 1 campaign, hold down the Ctrl key and click)"; +$select_list .= "
    "; +$select_list .= "Close Panel

    "; + +if ($UGdisplay > 0) + { + $select_list .= "Select User Group:
    "; + $select_list .= "

    "; + } + +$select_list .= "   Inbound:         "; +$select_list .= "
    "; +$select_list .= "   "; +$select_list .= ""; +$select_list .= "VERSION: $version   BUILD: $build"; +$select_list .= "
    "; + +$open_list = "
    Choose Report Display Options
    "; + +?> + + + + + + +\n"; + +$stmt = "select count(*) from vicidial_campaigns where active='Y' and campaign_allow_inbound='Y' $group_SQLand;"; +$rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +echo "\n"; +echo"\n"; +echo "Real-Time Report: $group\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
    "; + +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "Real-Time Report                                                                               \n"; +echo "\n"; +echo "
    \n"; +echo "Choose Report Display Options"; +echo "
    \n"; +echo "
    \n"; +echo "\n"; +echo "   "; +echo "\n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; +if (eregi('ALL-ACTIVE',$group_string)) + { + echo "       MODIFY | \n"; + } +else + { + echo "       MODIFY | \n"; + } +echo "SUMMARY \n"; +echo "\n\n"; + + +if (!$group) {echo "

    please select a campaign from the pulldown above
    \n"; exit;} +else +{ +$multi_drop=0; +### Gather list of all Closer group ids for exclusion from stats +$stmt = "select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +$ingroups_to_print = mysql_num_rows($rslt); +while ($ingroups_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $ALLcloser_campaignsSQL .= "'$row[0]',"; + $c++; + } +$ALLcloser_campaignsSQL = preg_replace("/,$/","",$ALLcloser_campaignsSQL); +if (strlen($ALLcloser_campaignsSQL)<2) + {$ALLcloser_campaignsSQL="''";} +if ($DB > 0) {echo "\n|$ALLcloser_campaignsSQL|$stmt|\n";} + + +##### INBOUND ##### +if ( ( ereg('Y',$with_inbound) or ereg('O',$with_inbound) ) and ($campaign_allow_inbound > 0) ) + { + ### Gather list of Closer group ids + $stmt = "select closer_campaigns from vicidial_campaigns where active='Y' $group_SQLand;"; + $rslt=mysql_query($stmt, $link); + $ccamps_to_print = mysql_num_rows($rslt); + $c=0; + while ($ccamps_to_print > $c) + { + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/^ | -$/","",$closer_campaigns); + $closer_campaigns = preg_replace("/ /","','",$closer_campaigns); + $closer_campaignsSQL .= "'$closer_campaigns',"; + $c++; + } + $closer_campaignsSQL = preg_replace("/,$/","",$closer_campaignsSQL); + } +else + { + $closer_campaignsSQL = "''"; + } +if ($DB > 0) {echo "\n|$closer_campaigns|$closer_campaignsSQL|$stmt|\n";} + + +##### INBOUND ONLY ### +if (ereg('O',$with_inbound)) + { + $multi_drop++; + + if ($adastats>1) + { + $stmtB="select calls_today,drops_today,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4,hold_sec_stat_one,hold_sec_stat_two,hold_sec_answer_calls,hold_sec_drop_calls,hold_sec_queue_calls,campaign_id from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if ($DB > 0) {echo "\n|$stmtB|\n";} + + $r=0; + $rslt=mysql_query($stmtB, $link); + $ingroups_to_print = mysql_num_rows($rslt); + if ($ingroups_to_print > 0) + {$ingroup_detail .= "";} + while ($ingroups_to_print > $r) + { + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + $ingroupdetail = $row[16]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_ANSWERagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_ANSWERagent_non_pause_sec = round($AVG_ANSWERagent_non_pause_sec, 2); + $AVG_ANSWERagent_non_pause_sec = sprintf("%01.2f", $AVG_ANSWERagent_non_pause_sec); + } + else + {$AVG_ANSWERagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_ANSWERagent_non_pause_sec=0; + } + + if (ereg("0$|2$|4$|6$|8$",$r)) {$bgcolor='#E6E6E6';} + else {$bgcolor='white';} + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + $ingroup_detail .= ""; + + $r++; + } + + if ($ingroups_to_print > 0) + {$ingroup_detail .= "
            $ingroupdetail   CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls  
    DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
    ANSWERS TODAY:  $answersTODAY    DROP PERCENT:  $drpctTODAY%    Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
    ";} + + } + + $stmt="select agent_pause_codes_active from vicidial_campaigns $group_SQLwhere;"; + + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats where campaign_id IN ($closer_campaignsSQL);"; + + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $stmtB="select sum(calls_today),sum(drops_today),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4),sum(hold_sec_stat_one),sum(hold_sec_stat_two),sum(hold_sec_answer_calls),sum(hold_sec_drop_calls),sum(hold_sec_queue_calls) from vicidial_campaign_stats $non_inboundSQL;"; + } + + $stmtC="select agent_non_pause_sec from vicidial_campaign_stats $group_SQLwhere;"; + + + if ($DB > 0) {echo "\n|$stmt|$stmtB|$stmtC|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $agent_pause_codes_active = $row[0]; + + $rslt=mysql_query($stmtC, $link); + $row=mysql_fetch_row($rslt); + $agent_non_pause_sec = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $callsTODAY = $row[0]; + $dropsTODAY = $row[1]; + $answersTODAY = $row[2]; + $VSCcat1 = $row[3]; + $VSCcat1tally = $row[4]; + $VSCcat2 = $row[5]; + $VSCcat2tally = $row[6]; + $VSCcat3 = $row[7]; + $VSCcat3tally = $row[8]; + $VSCcat4 = $row[9]; + $VSCcat4tally = $row[10]; + $hold_sec_stat_one = $row[11]; + $hold_sec_stat_two = $row[12]; + $hold_sec_answer_calls = $row[13]; + $hold_sec_drop_calls = $row[14]; + $hold_sec_queue_calls = $row[15]; + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + + if ($callsTODAY > 0) + { + $AVGhold_sec_queue_calls = ($hold_sec_queue_calls / $callsTODAY); + $AVGhold_sec_queue_calls = round($AVGhold_sec_queue_calls, 0); + } + else + {$AVGhold_sec_queue_calls=0;} + + if ($dropsTODAY > 0) + { + $AVGhold_sec_drop_calls = ($hold_sec_drop_calls / $dropsTODAY); + $AVGhold_sec_drop_calls = round($AVGhold_sec_drop_calls, 0); + } + else + {$AVGhold_sec_drop_calls=0;} + + if ($answersTODAY > 0) + { + $PCThold_sec_stat_one = ( ($hold_sec_stat_one / $answersTODAY) * 100); + $PCThold_sec_stat_one = round($PCThold_sec_stat_one, 2); + $PCThold_sec_stat_one = sprintf("%01.2f", $PCThold_sec_stat_one); + $PCThold_sec_stat_two = ( ($hold_sec_stat_two / $answersTODAY) * 100); + $PCThold_sec_stat_two = round($PCThold_sec_stat_two, 2); + $PCThold_sec_stat_two = sprintf("%01.2f", $PCThold_sec_stat_two); + $AVGhold_sec_answer_calls = ($hold_sec_answer_calls / $answersTODAY); + $AVGhold_sec_answer_calls = round($AVGhold_sec_answer_calls, 0); + if ($agent_non_pause_sec > 0) + { + $AVG_ANSWERagent_non_pause_sec = (($answersTODAY / $agent_non_pause_sec) * 60); + $AVG_ANSWERagent_non_pause_sec = round($AVG_ANSWERagent_non_pause_sec, 2); + $AVG_ANSWERagent_non_pause_sec = sprintf("%01.2f", $AVG_ANSWERagent_non_pause_sec); + } + else + {$AVG_ANSWERagent_non_pause_sec=0;} + } + else + { + $PCThold_sec_stat_one=0; + $PCThold_sec_stat_two=0; + $AVGhold_sec_answer_calls=0; + $AVG_ANSWERagent_non_pause_sec=0; + } + + echo "
    "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +##### NOT INBOUND ONLY ### +else + { + if (eregi('ALL-ACTIVE',$group_string)) + { + $non_inboundSQL=''; + if (ereg('N',$with_inbound)) + {$non_inboundSQL = "where campaign_id NOT IN ($ALLcloser_campaignsSQL)";} + $multi_drop++; + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where active='Y';"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats $non_inboundSQL;"; + } + else + { + if ($DB > 0) {echo "\n|$with_inbound|$campaign_allow_inbound|\n";} + + if ( (ereg('Y',$with_inbound)) and ($campaign_allow_inbound > 0) ) + { + $multi_drop++; + if ($DB) {echo "with_inbound|$with_inbound|$campaign_allow_inbound\n";} + + $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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses,agent_pause_codes_active,list_order_mix from vicidial_campaigns where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN ($group_SQL,$closer_campaignsSQL);"; + } + else + { + $stmt="select avg(auto_dial_level),max(dial_status_a),max(dial_status_b),max(dial_status_c),max(dial_status_d),max(dial_status_e),max(lead_order),max(lead_filter_id),max(hopper_level),max(dial_method),max(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),max(available_only_ratio_tally),max(adaptive_latest_server_time),max(local_call_time),max(dial_timeout),max(dial_statuses),max(agent_pause_codes_active),max(list_order_mix) from vicidial_campaigns where campaign_id IN($group_SQL);"; + + $stmtB="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today),max(status_category_1),sum(status_category_count_1),max(status_category_2),sum(status_category_count_2),max(status_category_3),sum(status_category_count_3),max(status_category_4),sum(status_category_count_4) from vicidial_campaign_stats where campaign_id IN($group_SQL);"; + } + } + if ($DB > 0) {echo "\n|$stmt|$stmtB|\n";} + + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $DIALlev = $row[0]; + $DIALstatusA = $row[1]; + $DIALstatusB = $row[2]; + $DIALstatusC = $row[3]; + $DIALstatusD = $row[4]; + $DIALstatusE = $row[5]; + $DIALorder = $row[6]; + $DIALfilter = $row[7]; + $HOPlev = $row[8]; + $DIALmethod = $row[9]; + $maxDIALlev = $row[10]; + $DROPmax = $row[11]; + $targetDIFF = $row[12]; + $ADAintense = $row[13]; + $ADAavailonly = $row[14]; + $TAPERtime = $row[15]; + $CALLtime = $row[16]; + $DIALtimeout = $row[17]; + $DIALstatuses = $row[18]; + $agent_pause_codes_active = $row[19]; + $DIALmix = $row[20]; + + + $stmt="select count(*) from vicidial_hopper $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDhop = $row[0]; + + $rslt=mysql_query($stmtB, $link); + $row=mysql_fetch_row($rslt); + $DAleads = $row[0]; + $callsTODAY = $row[1]; + $dropsTODAY = $row[2]; + $drpctTODAY = $row[3]; + $diffONEMIN = $row[4]; + $agentsONEMIN = $row[5]; + $balanceFILL = $row[6]; + $answersTODAY = $row[7]; + if ($multi_drop > 0) + { + if ( ($dropsTODAY > 0) and ($answersTODAY > 0) ) + { + $drpctTODAY = ( ($dropsTODAY / $answersTODAY) * 100); + $drpctTODAY = round($drpctTODAY, 2); + $drpctTODAY = sprintf("%01.2f", $drpctTODAY); + } + else + {$drpctTODAY=0;} + } + $VSCcat1 = $row[8]; + $VSCcat1tally = $row[9]; + $VSCcat2 = $row[10]; + $VSCcat2tally = $row[11]; + $VSCcat3 = $row[12]; + $VSCcat3tally = $row[13]; + $VSCcat4 = $row[14]; + $VSCcat4tally = $row[15]; + + if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } + else {$diffpctONEMIN = '0.00';} + + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats $group_SQLwhere;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $balanceSHORT = $row[0]; + + if (ereg('DISABLED',$DIALmix)) + { + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + } + else + { + $stmt="select vcl_id from vicidial_campaigns_list_mix where status='ACTIVE' $groupSQLand limit 1;"; + $rslt=mysql_query($stmt, $link); + $Lmix_to_print = mysql_num_rows($rslt); + if ($Lmix_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $DIALstatuses = "List Mix: $row[0]"; + $DIALorder = "List Mix: $row[0]"; + } + } + + echo "
    CALLS TODAY:  $callsTODAY    TMA 1:  $PCThold_sec_stat_one%     Average Hold time for Answered Calls:  $AVGhold_sec_answer_calls   TIME:   $NOW_TIME
    DROPS TODAY:  $dropsTODAY    TMA 2:  $PCThold_sec_stat_two%     Average Hold time for Dropped Calls:  $AVGhold_sec_drop_calls  
    ANSWERS TODAY:  $answersTODAY    (Agent non-pause time / Answers)Average Hold time for All Calls:  $AVGhold_sec_queue_calls  
    DROP PERCENT:  $drpctTODAY%    PRODUCTIVITY:  $AVG_ANSWERagent_non_pause_sec    
    "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + + + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
    DIAL LEVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
    - min   MAX LEVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
    DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
    DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL METHOD:  $DIALmethod    
    HOPPER LEVEL:  $HOPlev     DROPPED / ANSWERED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
    LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; + if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} + else + {echo "$drpctTODAY%";} + echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
    "; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
    "; + +echo "$ingroup_detail"; + +if ($adastats<2) + { + echo "+ VIEW MORE"; + } +else + { + echo "+ VIEW LESS"; + } +if ($UGdisplay>0) + { + echo "       HIDE USER GROUP"; + } +else + { + echo "       VIEW USER GROUP"; + } +if ($UidORname>0) + { + echo "       SHOW AGENT ID"; + } +else + { + echo "       SHOW AGENT NAME"; + } +if ($SERVdisplay>0) + { + echo "       HIDE SERVER INFO"; + } +else + { + echo "       SHOW SERVER INFO"; + } +if ($CALLSdisplay>0) + { + echo "       HIDE WAITING CALLS"; + } +else + { + echo "       SHOW WAITING CALLS"; + } +if ($PHONEdisplay>0) + { + echo "       HIDE PHONES"; + } +else + { + echo "       SHOW PHONES"; + } +if ($CUSTPHONEdisplay>0) + { + echo "       HIDE CUSTPHONES"; + } +else + { + echo "       SHOW CUSTPHONES"; + } +echo "
    "; + +echo "\n\n"; +} +################################################################################### +###### INBOUND/OUTBOUND CALLS +################################################################################### +if ($campaign_allow_inbound > 0) + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') and ( (call_type='IN' and campaign_id IN($closer_campaignsSQL)) or (call_type IN('OUT','OUTBALANCE') $group_SQLand) ) order by queue_priority desc,campaign_id,call_time;"; + } +else + { + $stmtB="from vicidial_auto_calls where status NOT IN('XFER') $group_SQLand order by queue_priority desc,campaign_id,call_time;"; + } +if ($CALLSdisplay > 0) + { + $stmtA = "SELECT status,campaign_id,phone_number,server_ip,UNIX_TIMESTAMP(call_time),call_type,queue_priority,agent_only"; + } +else + { + $stmtA = "SELECT status"; + } + + +$k=0; +$agentonlycount=0; +$stmt = "$stmtA $stmtB"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + { + $out_live++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + else + { + if (eregi("IVR",$row[0])) + { + $in_ivr++; + + if ($CALLSdisplay > 0) + { + $CDstatus[$k] = $row[0]; + $CDcampaign_id[$k] = $row[1]; + $CDphone_number[$k] = $row[2]; + $CDserver_ip[$k] = $row[3]; + $CDcall_time[$k] = $row[4]; + $CDcall_type[$k] = $row[5]; + $CDqueue_priority[$k] = $row[6]; + $CDagent_only[$k] = $row[7]; + if (strlen($CDagent_only[$k]) > 0) {$agentonlycount++;} + $k++; + } + } + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + + $out_total++; + $i++; + } + + ##### MIDI alert audio file test ##### + # $test_midi=1; + # if ($test_midi > 0) + # { + # # echo ""; + # # echo ""; + # echo ""; + # echo " "; + # echo " "; + # echo " "; + # echo " "; + # echo " alt : test.mid"; + # echo ""; + # } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo " NO LIVE CALLS WAITING \n"; + } + + + +################################################################################### +###### CALLS WAITING +################################################################################### +$agentonlyheader = ''; +if ($agentonlycount > 0) + {$agentonlyheader = 'AGENTONLY';} +$Cecho = ''; +$Cecho .= "VICIDIAL: Calls Waiting $NOW_TIME\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; +$Cecho .= "| STATUS | CAMPAIGN | PHONE NUMBER | SERVER_IP | DIALTIME| CALL TYPE | PRIORITY | $agentonlyheader\n"; +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +$p=0; +while($p<$k) + { + $Cstatus = sprintf("%-6s", $CDstatus[$p]); + $Ccampaign_id = sprintf("%-12s", $CDcampaign_id[$p]); + $Cphone_number = sprintf("%-12s", $CDphone_number[$p]); + $Cserver_ip = sprintf("%-15s", $CDserver_ip[$p]); + $Ccall_type = sprintf("%-10s", $CDcall_type[$p]); + $Cqueue_priority = sprintf("%8s", $CDqueue_priority[$p]); + $Cagent_only = sprintf("%8s", $CDagent_only[$p]); + + $Ccall_time_S = ($STARTtime - $CDcall_time[$p]); + $Ccall_time_MS = sec_convert($Ccall_time_S,'M'); + $Ccall_time_MS = sprintf("%7s", $Ccall_time_MS); + + $G = ''; $EG = ''; + if ($CDcall_type[$p] == 'IN') + { + $G=""; $EG=''; + } + if (strlen($CDagent_only[$p]) > 0) + {$Gcalltypedisplay = "$G$Cagent_only$EG";} + else + {$Gcalltypedisplay = '';} + + $Cecho .= "| $G$Cstatus$EG | $G$Ccampaign_id$EG | $G$Cphone_number$EG | $G$Cserver_ip$EG | $G$Ccall_time_MS$EG | $G$Ccall_type$EG | $G$Cqueue_priority$EG | $Gcalltypedisplay \n"; + + $p++; + } +$Cecho .= "+--------+--------------+--------------+-----------------+---------+------------+----------+\n"; + +if ($p<1) + {$Cecho='';} + +################################################################################### +###### AGENT TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_dead=0; +$agent_total=0; + +$phoneord=$orderby; +$userord=$orderby; +$groupord=$orderby; +$timeord=$orderby; +$campaignord=$orderby; + +if ($phoneord=='phoneup') {$phoneord='phonedown';} + else {$phoneord='phoneup';} +if ($userord=='userup') {$userord='userdown';} + else {$userord='userup';} +if ($groupord=='groupup') {$groupord='groupdown';} + else {$groupord='groupup';} +if ($timeord=='timeup') {$timeord='timedown';} + else {$timeord='timeup';} +if ($campaignord=='campaignup') {$campaignord='campaigndown';} + else {$campaignord='campaignup';} + +$Aecho = ''; +$Aecho .= "VICIDIAL: Agents Time On Calls Campaign: $group_string $NOW_TIME\n"; + + +$HDbegin = "+"; +$HTbegin = "|"; +$HDstation = "----------------+"; +$HTstation = " STATION |"; +$HDphone = "-------------+"; +$HTphone = " PHONE |"; +$HDuser = "------------------------+"; +$HTuser = " USER INFO |"; +$HDusergroup = "--------------+"; +$HTusergroup = " USER GROUP |"; +$HDsessionid = "------------------+"; +$HTsessionid = " SESSIONID |"; +$HDbarge = "-------+"; +$HTbarge = " BARGE |"; +$HDstatus = "----------+"; +$HTstatus = " STATUS |"; +$HDcustphone = "-------------+"; +$HTcustphone = " CUST PHONE |"; +$HDserver_ip = "-----------------+"; +$HTserver_ip = " SERVER IP |"; +$HDcall_server_ip = "-----------------+"; +$HTcall_server_ip = " CALL SERVER IP |"; +$HDtime = "---------+"; +$HTtime = " MM:SS |"; +$HDcampaign = "------------+"; +$HTcampaign = " CAMPAIGN |"; +$HDcalls = "-------+"; +$HTcalls = " CALLS |"; +$HDpause = ''; +$HTpause = ''; +$HDigcall = "------+------------------"; +$HTigcall = " HOLD | IN-GROUP "; + +if (!ereg("N",$agent_pause_codes_active)) + { + $HDstatus = "----------"; + $HTstatus = " STATUS "; + $HDpause = "-------+"; + $HTpause = " PAUSE |"; + } +if ($PHONEdisplay < 1) + { + $HDphone = ''; + $HTphone = ''; + } +if ($CUSTPHONEdisplay < 1) + { + $HDcustphone = ''; + $HTcustphone = ''; + } +if ($UGdisplay < 1) + { + $HDusergroup = ''; + $HTusergroup = ''; + } +if ( ($SIPmonitorLINK<1) and ($IAXmonitorLINK<1) and (!preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + { + $HDsessionid = "-----------+"; + $HTsessionid = " SESSIONID |"; + } +if ( ($SIPmonitorLINK<2) and ($IAXmonitorLINK<2) and (!preg_match("/BARGE/",$monitor_active) ) ) + { + $HDbarge = ''; + $HTbarge = ''; + } +if ($SERVdisplay < 1) + { + $HDserver_ip = ''; + $HTserver_ip = ''; + $HDcall_server_ip = ''; + $HTcall_server_ip = ''; + } + + + +$Aline = "$HDbegin$HDstation$HDphone$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDpause$HDcustphone$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign$HDcalls$HDigcall\n"; +$Bline = "$HTbegin$HTstation$HTphone$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTpause$HTcustphone$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign$HTcalls$HTigcall\n"; +$Aecho .= "$Aline"; +$Aecho .= "$Bline"; +$Aecho .= "$Aline"; + +if ($orderby=='timeup') {$orderSQL='vicidial_live_agents.status,last_call_time';} +if ($orderby=='timedown') {$orderSQL='vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='campaignup') {$orderSQL='vicidial_live_agents.campaign_id,vicidial_live_agents.status,last_call_time';} +if ($orderby=='campaigndown') {$orderSQL='vicidial_live_agents.campaign_id desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='groupup') {$orderSQL='user_group,vicidial_live_agents.status,last_call_time';} +if ($orderby=='groupdown') {$orderSQL='user_group desc,vicidial_live_agents.status desc,last_call_time desc';} +if ($orderby=='phoneup') {$orderSQL='extension,server_ip';} +if ($orderby=='phonedown') {$orderSQL='extension desc,server_ip desc';} +if ($UidORname > 0) + { + if ($orderby=='userup') {$orderSQL='full_name,status,last_call_time';} + if ($orderby=='userdown') {$orderSQL='full_name desc,status desc,last_call_time desc';} + } +else + { + if ($orderby=='userup') {$orderSQL='vicidial_live_agents.user';} + if ($orderby=='userdown') {$orderSQL='vicidial_live_agents.user desc';} + } + +if (eregi('ALL-ACTIVE',$group_string)) {$UgroupSQL = '';} +else {$UgroupSQL = " and vicidial_live_agents.campaign_id IN($group_SQL)";} +if (strlen($usergroup)<1) {$usergroupSQL = '';} +else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} + +$stmt="select extension,vicidial_live_agents.user,conf_exten,vicidial_live_agents.status,vicidial_live_agents.server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,vicidial_live_agents.campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,vicidial_live_agents.calls_today,vicidial_live_agents.callerid,lead_id,UNIX_TIMESTAMP(last_state_change) from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $UgroupSQL $usergroupSQL order by $orderSQL;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + + $Aextension[$i] = $row[0]; + $Auser[$i] = $row[1]; + $Asessionid[$i] = $row[2]; + $Astatus[$i] = $row[3]; + $Aserver_ip[$i] = $row[4]; + $Acall_time[$i] = $row[5]; + $Acall_finish[$i] = $row[6]; + $Acall_server_ip[$i] = $row[7]; + $Acampaign_id[$i] = $row[8]; + $Auser_group[$i] = $row[9]; + $Afull_name[$i] = $row[10]; + $Acomments[$i] = $row[11]; + $Acalls_today[$i] = $row[12]; + $Acallerid[$i] = $row[13]; + $Alead_id[$i] = $row[14]; + $Astate_change[$i] = $row[15]; + + $i++; + } + +$callerids=''; +$pausecode=''; +$stmt="select callerid,lead_id,phone_number from vicidial_auto_calls;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$calls_to_list = mysql_num_rows($rslt); + if ($calls_to_list > 0) + { + $i=0; + while ($i < $calls_to_list) + { + $row=mysql_fetch_row($rslt); + $callerids .= "$row[0]|"; + $VAClead_ids[$i] = $row[1]; + $VACphones[$i] = $row[2]; + $i++; + } + } + +### Lookup phone logins + $i=0; + while ($i < $talking_to_print) + { + if (eregi("R/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('R/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi("Local/",$Aextension[$i])) + { + $protocol = 'EXTERNAL'; + $dialplan = eregi_replace('Local/',"",$Aextension[$i]); + $dialplan = eregi_replace("\@.*",'',$dialplan); + $exten = "dialplan_number='$dialplan'"; + } + if (eregi('SIP/',$Aextension[$i])) + { + $protocol = 'SIP'; + $dialplan = eregi_replace('SIP/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('IAX2/',$Aextension[$i])) + { + $protocol = 'IAX2'; + $dialplan = eregi_replace('IAX2/',"",$Aextension[$i]); + $dialplan = eregi_replace("-.*",'',$dialplan); + $exten = "extension='$dialplan'"; + } + if (eregi('Zap/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('Zap/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + if (eregi('DAHDI/',$Aextension[$i])) + { + $protocol = 'Zap'; + $dialplan = eregi_replace('DAHDI/',"",$Aextension[$i]); + $exten = "extension='$dialplan'"; + } + + $stmt="select login from phones where server_ip='$Aserver_ip[$i]' and $exten and protocol='$protocol';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $phones_to_print = mysql_num_rows($rslt); + if ($phones_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Alogin[$i] = "$row[0]-----$i"; + } + else + { + $Alogin[$i] = "$Aextension[$i]-----$i"; + } + $i++; + } + +### Sort by phone if selected + if ($orderby=='phoneup') + { + sort($Alogin); + } + if ($orderby=='phonedown') + { + rsort($Alogin); + } + +### Run through the loop to display agents + $j=0; + $agentcount=0; + while ($j < $talking_to_print) + { + $n=0; + $custphone=''; + while ($n < $calls_to_list) + { + if ( (ereg("$VAClead_ids[$n]", $Alead_id[$j])) and (strlen($VAClead_ids[$n]) == strlen($Alead_id[$j])) ) + {$custphone = $VACphones[$n];} + $n++; + } + + $phone_split = explode("-----",$Alogin[$j]); + $i = $phone_split[1]; + + if (eregi("READY|PAUSED",$Astatus[$i])) + { + $Acall_time[$i]=$Astate_change[$i]; + + if ($Alead_id[$i] > 0) + { + $Astatus[$i] = 'DISPO'; + $Lstatus = 'DISPO'; + $status = ' DISPO'; + } + } + if ($non_latin < 1) + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-14s", $extension); + while(strlen($extension)>14) {$extension = substr("$extension", 0, -1);} + } + else + { + $extension = eregi_replace('Local/',"",$Aextension[$i]); + $extension = sprintf("%-48s", $extension); + while(mb_strlen($extension, 'utf-8')>14) {$extension = mb_substr("$extension", 0, -1,'utf8');} + } + + $phone = sprintf("%-12s", $phone_split[0]); + $custphone = sprintf("%-11s", $custphone); + $Luser = $Auser[$i]; + $user = sprintf("%-20s", $Auser[$i]); + $Lsessionid = $Asessionid[$i]; + $sessionid = sprintf("%-9s", $Asessionid[$i]); + $Lstatus = $Astatus[$i]; + $status = sprintf("%-6s", $Astatus[$i]); + $Lserver_ip = $Aserver_ip[$i]; + $server_ip = sprintf("%-15s", $Aserver_ip[$i]); + $call_server_ip = sprintf("%-15s", $Acall_server_ip[$i]); + $campaign_id = sprintf("%-10s", $Acampaign_id[$i]); + $comments= $Acomments[$i]; + $calls_today = sprintf("%-5s", $Acalls_today[$i]); + + if (!ereg("N",$agent_pause_codes_active)) + {$pausecode=' ';} + else + {$pausecode='';} + + if (eregi("INCALL",$Lstatus)) + { + $stmtP="select count(*) from parked_channels where channel_group='$Acallerid[$i]';"; + $rsltP=mysql_query($stmtP,$link); + $rowP=mysql_fetch_row($rsltP); + $parked_channel = $rowP[0]; + + if ($parked_channel > 0) + { + $Astatus[$i] = 'PARK'; + $Lstatus = 'PARK'; + $status = ' PARK '; + } + else + { + if (!ereg("$Acallerid[$i]\|",$callerids)) + { + $Acall_time[$i]=$Astate_change[$i]; + + $Astatus[$i] = 'DEAD'; + $Lstatus = 'DEAD'; + $status = ' DEAD '; + } + } + + if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) + {$CM='A';} + else + { + if (eregi("INBOUND",$comments)) + {$CM='I';} + else + {$CM='M';} + } + } + else {$CM=' ';} + + if ($UGdisplay > 0) + { + if ($non_latin < 1) + { + $user_group = sprintf("%-12s", $Auser_group[$i]); + while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} + } + else + { + $user_group = sprintf("%-40s", $Auser_group[$i]); + while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} + } + } + if ($UidORname > 0) + { + if ($non_latin < 1) + { + $user = sprintf("%-20s", $Afull_name[$i]); + while(strlen($user)>20) {$user = substr("$user", 0, -1);} + } + else + { + $user = sprintf("%-60s", $Afull_name[$i]); + while(mb_strlen($user, 'utf-8')>20) {$user = mb_substr("$user", 0, -1,'utf8');} + } + } + if (!eregi("INCALL|QUEUE|PARK",$Astatus[$i])) + {$call_time_S = ($STARTtime - $Astate_change[$i]);} + else + {$call_time_S = ($STARTtime - $Acall_time[$i]);} + + $call_time_MS = sec_convert($call_time_S,'M'); + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ( ($Lstatus=='INCALL') or ($Lstatus=='PARK') ) + { + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + # if ($call_time_S >= 600) {$G=''; $EG='';} + } + if ($Lstatus=='DEAD') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_dead++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + } + } + if ($Lstatus=='DISPO') + { + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } + if ($Lstatus=='PAUSED') + { + if (!ereg("N",$agent_pause_codes_active)) + { + $stmtC="select sub_status from vicidial_agent_log where user='$Luser' order by agent_log_id desc limit 1;"; + $rsltC=mysql_query($stmtC,$link); + $rowC=mysql_fetch_row($rsltC); + $pausecode = sprintf("%-6s", $rowC[0]); + $pausecode = "$pausecode "; + } + else + {$pausecode='';} + + if ($call_time_S >= 21600) + {$j++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + } +# if ( (strlen($Acall_server_ip[$i])> 4) and ($Acall_server_ip[$i] != "$Aserver_ip[$i]") ) +# {$G=''; $EG='';} + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) or (eregi("PARK",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) + { + $G=''; $EG=''; + if ($call_time_S >= 60) {$G=''; $EG='';} + if ($call_time_S >= 300) {$G=''; $EG='';} + } + + $L=''; + $R=''; + if ($SIPmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($SIPmonitorLINK>1) {$R=" | BARGE";} + if ($IAXmonitorLINK>1) {$R=" | BARGE";} + if ( (strlen($monitor_phone)>1) and (preg_match("/MONITOR|BARGE/",$monitor_active) ) ) + {$L=" LISTEN"; $R='';} + if ( (strlen($monitor_phone)>1) and (preg_match("/BARGE/",$monitor_active) ) ) + {$R=" | BARGE";} + + if ($CUSTPHONEdisplay > 0) {$CP = " $G$custphone$EG |";} + else {$CP = "";} + + if ($UGdisplay > 0) {$UGD = " $G$user_group$EG |";} + else {$UGD = "";} + + if ($SERVdisplay > 0) {$SVD = "$G$server_ip$EG | $G$call_server_ip$EG | ";} + else {$SVD = "";} + + if ($PHONEdisplay > 0) {$phoneD = "$G$phone$EG | ";} + else {$phoneD = " ";} + + $vac_stage=''; + $vac_campaign=''; + $INGRP=''; + if ($CM == 'I') + { + $stmt="select vac.campaign_id,vac.stage,vig.group_name from vicidial_auto_calls vac,vicidial_inbound_groups vig where vac.callerid='$Acallerid[$i]' and vac.campaign_id=vig.group_id LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ingrp_to_print = mysql_num_rows($rslt); + if ($ingrp_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $vac_campaign = sprintf("%-20s", "$row[0] - $row[2]"); + $row[1] = eregi_replace(".*-",'',$row[1]); + $vac_stage = sprintf("%-4s", $row[1]); + } + + $INGRP = " $G$vac_stage$EG | $G$vac_campaign$EG "; + } + + $agentcount++; + + $Aecho .= "| $G$extension$EG |$phoneD$G$user$EG + |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM $pausecode| $CP$SVD$G$call_time_MS$EG | $G$campaign_id$EG | $G$calls_today$EG |$INGRP\n"; + + $j++; + } + + $Aecho .= "$Aline"; + $Aecho .= " $agentcount agents logged in on all servers\n"; + $Aecho .= " System Load Average: $load_ave\n\n"; + + # $Aecho .= " - Balanced call\n"; + $Aecho .= " - Agent waiting for call\n"; + $Aecho .= " - Agent waiting for call > 1 minute\n"; + $Aecho .= " - Agent waiting for call > 5 minutes\n"; + $Aecho .= " - Agent on call > 10 seconds\n"; + $Aecho .= " - Agent on call > 1 minute\n"; + $Aecho .= " - Agent on call > 5 minutes\n"; + $Aecho .= " - Agent Paused > 10 seconds\n"; + $Aecho .= " - Agent Paused > 1 minute\n"; + $Aecho .= " - Agent Paused > 5 minutes\n"; + $Aecho .= " - Agent on a dead call\n"; + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + + echo "\n
    \n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + echo "$NFB$agent_dead$NFE agents in dead calls      \n"; + + echo "
    ";
    +		echo "";
    +		echo "$Cecho";
    +		echo "$Aecho";
    +	}
    +	else
    +	{
    +	echo " NO AGENTS ON CALLS \n";
    +	echo "
    $Cecho";
    +	}
    +
    +?>
    +
    +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADallREC.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADallREC.php new file mode 100644 index 00000000..fb47cdc5 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADallREC.php @@ -0,0 +1,944 @@ + LICENSE: AGPLv2 +# +# live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# CHANGELOG: +# 50406-0920 - Added Paused agents < 1 min (Chris Doyle) +# 51130-1218 - Modified layout and info to show all servers in a vicidial system +# 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 +# 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 +# 60626-1453 - Added display of system load to bottom (Angelito Manansala) +# 60901-1123 - Changed display elements at the top of the screen +# 60905-1342 - Fixed non INCALL|QUEUE timer column +# 61002-1642 - Added TRUNK SHORT/FILL stats +# 61101-1318 - Added SIP and IAX Listen and Barge links option +# 61101-1647 - Added Usergroup column and user name option as well as sorting +# 61102-1155 - Made display of columns more modular, added ability to hide server info +# 61215-1131 - Added answered calls and drop percent taken from answered calls +# 70111-1600 - Added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70123-1151 - Added non_latin options for substr in display variables, thanks Marin Blu +# 70206-1140 - Added call-type statuses to display(A-Auto, M-Manual, I-Inbound/Closer) +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["usergroup"])) {$usergroup=$_GET["usergroup"];} + elseif (isset($_POST["usergroup"])) {$usergroup=$_POST["usergroup"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["SIPmonitorLINK"])) {$SIPmonitorLINK=$_GET["SIPmonitorLINK"];} + elseif (isset($_POST["SIPmonitorLINK"])) {$SIPmonitorLINK=$_POST["SIPmonitorLINK"];} +if (isset($_GET["IAXmonitorLINK"])) {$IAXmonitorLINK=$_GET["IAXmonitorLINK"];} + elseif (isset($_POST["IAXmonitorLINK"])) {$IAXmonitorLINK=$_POST["IAXmonitorLINK"];} +if (isset($_GET["UGdisplay"])) {$UGdisplay=$_GET["UGdisplay"];} + elseif (isset($_POST["UGdisplay"])) {$UGdisplay=$_POST["UGdisplay"];} +if (isset($_GET["UidORname"])) {$UidORname=$_GET["UidORname"];} + elseif (isset($_POST["UidORname"])) {$UidORname=$_POST["UidORname"];} +if (isset($_GET["orderby"])) {$orderby=$_GET["orderby"];} + elseif (isset($_POST["orderby"])) {$orderby=$_POST["orderby"];} +if (isset($_GET["SERVdisplay"])) {$SERVdisplay=$_GET["SERVdisplay"];} + elseif (isset($_POST["SERVdisplay"])) {$SERVdisplay=$_POST["SERVdisplay"];} + +if (isset($_GET["RECmonitorLINK"])) {$RECmonitorLINK=$_GET["RECmonitorLINK"];} + elseif (isset($_POST["RECmonitorLINK"])) {$RECmonitorLINK=$_POST["RECmonitorLINK"];} + +if (!isset($RR)) {$gRRroup=4;} +if (!isset($group)) {$group='';} +if (!isset($usergroup)) {$usergroup='';} +if (!isset($UGdisplay)) {$UGdisplay=0;} # 0=no, 1=yes +if (!isset($UidORname)) {$UidORname=0;} # 0=id, 1=name +if (!isset($orderby)) {$orderby='timeup';} +if (!isset($SERVdisplay)) {$SERVdisplay=1;} # 0=no, 1=yes + +function get_server_load($windows = false) { +$os = strtolower(PHP_OS); +if(strpos($os, "win") === false) { +if(file_exists("/proc/loadavg")) { +$load = file_get_contents("/proc/loadavg"); +$load = explode(' ', $load); +return $load[0]; +} +elseif(function_exists("shell_exec")) { +$load = explode(' ', `uptime`); +return $load[count($load)-1]; +} +else { +return false; +} +} +elseif($windows) { +if(class_exists("COM")) { +$wmi = new COM("WinMgmts:\\\\."); +$cpus = $wmi->InstancesOf("Win32_Processor"); + +$cpuload = 0; +$i = 0; +while ($cpu = $cpus->Next()) { +$cpuload += $cpu->LoadPercentage; +$i++; +} + +$cpuload = round($cpuload / $i, 2); +return "$cpuload%"; +} +else { +return false; +} +} +} + +$load_ave = get_server_load(true); + +$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 and view_reports='1';"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $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; + } + + $stmt="SELECT vicidial_recording from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} + if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $authrec=$row[0]; + if ($authrec=='1') {$RECmonitorLINK = 1;} else {$RECmonitorLINK = 0;} + + +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$NOW_DAY = date("Y-m-d"); +$NOW_HOUR = date("H:i:s"); +$STARTtime = date("U"); +$epochSIXhoursAGO = ($STARTtime - 21600); +$timeSIXhoursAGO = date("Y-m-d H:i:s",$epochSIXhoursAGO); + +$stmt="select campaign_id from vicidial_campaigns where active='Y';"; +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} +if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +$stmt="select user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups;"; +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} +if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$usergroups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $usergroups_to_print) + { + $row=mysql_fetch_row($rslt); + $usergroups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +?> + + + + + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On VDAD Campaign: $group\n"; +echo "
    \n"; +echo "VICIDIAL Campaign: \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +if ($UGdisplay > 0) + { + echo "\n"; + } +echo "         \n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO"; +echo "       MODIFY | \n"; +echo "SUMMARY | \n"; +echo "REPORTS \n"; +echo "\n\n"; + + +if (!$group) {echo "

    please select a campaign from the pulldown above
    \n"; exit;} +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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; + +if ($group=='XXXX-ALL-ACTIVE-XXXX') + { + $stmt="select avg(auto_dial_level),min(dial_status_a),min(dial_status_b),min(dial_status_c),min(dial_status_d),min(dial_status_e),min(lead_order),min(lead_filter_id),sum(hopper_level),min(dial_method),avg(adaptive_maximum_level),avg(adaptive_dropped_percentage),avg(adaptive_dl_diff_target),avg(adaptive_intensity),min(available_only_ratio_tally),min(adaptive_latest_server_time),min(local_call_time),avg(dial_timeout),min(dial_statuses) from vicidial_campaigns;"; + } +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} +if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DIALlev = $row[0]; +$DIALstatusA = $row[1]; +$DIALstatusB = $row[2]; +$DIALstatusC = $row[3]; +$DIALstatusD = $row[4]; +$DIALstatusE = $row[5]; +$DIALorder = $row[6]; +$DIALfilter = $row[7]; +$HOPlev = $row[8]; +$DIALmethod = $row[9]; +$maxDIALlev = $row[10]; +$DROPmax = $row[11]; +$targetDIFF = $row[12]; +$ADAintense = $row[13]; +$ADAavailonly = $row[14]; +$TAPERtime = $row[15]; +$CALLtime = $row[16]; +$DIALtimeout = $row[17]; +$DIALstatuses = $row[18]; + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + +$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';"; +if ($group=='XXXX-ALL-ACTIVE-XXXX') + { + $stmt="select count(*) from vicidial_hopper;"; + } +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} +if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$VDhop = $row[0]; + +$stmt="select dialable_leads,calls_today,drops_today,drops_answers_today_pct,differential_onemin,agents_average_onemin,balance_trunk_fill,answers_today from vicidial_campaign_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +if ($group=='XXXX-ALL-ACTIVE-XXXX') + { + $stmt="select sum(dialable_leads),sum(calls_today),sum(drops_today),avg(drops_answers_today_pct),avg(differential_onemin),avg(agents_average_onemin),sum(balance_trunk_fill),sum(answers_today) from vicidial_campaign_stats;"; + } +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} +if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DAleads = $row[0]; +$callsTODAY = $row[1]; +$dropsTODAY = $row[2]; +$drpctTODAY = $row[3]; +$diffONEMIN = $row[4]; +$agentsONEMIN = $row[5]; +$balanceFILL = $row[6]; +$answersTODAY = $row[7]; +if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } +else {$diffpctONEMIN = '0.00';} + +$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +if ($group=='XXXX-ALL-ACTIVE-XXXX') + { + $stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats;"; + } +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} +if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$balanceSHORT = $row[0]; + +echo "
    "; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo "
    DIAL LEVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
    - min   MAX LEVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
    DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
    DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL METHOD:  $DIALmethod    
    HOPPER LEVEL:  $HOPlev     DROPPED / ANSWERED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
    LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  $drpctTODAY%    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
    "; + +if ($adastats<2) + { + echo "+ VIEW MORE SETTINGS"; + } +if ($UGdisplay>0) + { + echo "       HIDE USER GROUP"; + } +else + { + echo "       VIEW USER GROUP"; + } +if ($UidORname>0) + { + echo "       SHOW AGENT ID"; + } +else + { + echo "       SHOW AGENT NAME"; + } +if ($SERVdisplay>0) + { + echo "       HIDE SERVER INFO"; + } +else + { + echo "       SHOW SERVER INFO"; + } +echo "
    "; + +echo "\n\n"; +} +################################################################################### +###### OUTBOUND CALLS +################################################################################### +if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$group)) + { + $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} + if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = preg_replace("/^ | -$/","",$row[0]); + $closer_campaigns = preg_replace("/ /","','",$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='" . mysql_real_escape_string($group) . "' and call_type='OUT') );"; + } +else + { + if ($group=='XXXX-ALL-ACTIVE-XXXX') {$groupSQL = '';} + else {$groupSQL = " and campaign_id='" . mysql_real_escape_string($group) . "'";} + + $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') $groupSQL;"; + } +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} +if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + {$out_live++;} + else + { + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + $out_total++; + $i++; + } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if (eregi("(CLOSER|BLEND|INBND|_C$|_B$|_I$)",$group)) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + } + else + { + echo " NO LIVE CALLS WAITING \n"; + } + + +################################################################################### +###### TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_total=0; + +$Aecho = ''; +$Aecho .= "VICIDIAL: Agents Time On Calls Campaign: $group $NOW_TIME\n\n"; + + +$HDbegin = "+"; +$HTbegin = "|"; +$HDstation = "------------+"; +$HTstation = " STATION |"; +$HDuser = "--------------------+"; +$HTuser = " USER |"; +$HDusergroup = "--------------+"; +$HTusergroup = " USER GROUP |"; +$HDsessionid = "------------------+"; +$HTsessionid = " SESSIONID |"; +$HDbarge = "-------+"; +$HTbarge = " BARGE |"; +$HDrec = "---------+"; +$HTrec = " MONITOR |"; +$HDstatus = "----------+"; +$HTstatus = " STATUS |"; +$HDserver_ip = "-----------------+"; +$HTserver_ip = " SERVER IP |"; +$HDcall_server_ip = "-----------------+"; +$HTcall_server_ip = " CALL SERVER IP |"; +$HDtime = "---------+"; +$HTtime = " MM:SS |"; +$HDcampaign = "------------+"; +$HTcampaign = " CAMPAIGN |"; + +if ($UGdisplay < 1) + { + $HDusergroup = ''; + $HTusergroup = ''; + } +if ( ($SIPmonitorLINK<1) && ($IAXmonitorLINK<1) ) + { + $HDsessionid = "-----------+"; + $HTsessionid = " SESSIONID |"; + } +if ( ($SIPmonitorLINK<2) && ($IAXmonitorLINK<2) ) + { + $HDbarge = ''; + $HTbarge = ''; + } +if ($SERVdisplay < 1) + { + $HDserver_ip = ''; + $HTserver_ip = ''; + $HDcall_server_ip = ''; + $HTcall_server_ip = ''; + } + +if ( ($RECmonitorLINK<1) ) +{ + $HDrec = ''; + $HTrec = ''; +} + +$Aline = "$HDbegin$HDstation$HDuser$HDusergroup$HDsessionid$HDbarge$HDstatus$HDrec$HDserver_ip$HDcall_server_ip$HDtime$HDcampaign\n"; +$Bline = "$HTbegin$HTstation$HTuser$HTusergroup$HTsessionid$HTbarge$HTstatus$HTrec$HTserver_ip$HTcall_server_ip$HTtime$HTcampaign\n"; + +$Aecho .= "$Aline"; +$Aecho .= "$Bline"; +$Aecho .= "$Aline"; + +if ($orderby=='timeup') {$orderSQL='status,last_call_time';} +if ($orderby=='timedown') {$orderSQL='status desc,last_call_time desc';} +if ($orderby=='campaignup') {$orderSQL='campaign_id,status,last_call_time';} +if ($orderby=='campaigndown') {$orderSQL='campaign_id desc,status desc,last_call_time desc';} +if ($orderby=='groupup') {$orderSQL='user_group,status,last_call_time';} +if ($orderby=='groupdown') {$orderSQL='user_group desc,status desc,last_call_time desc';} +if ($UidORname > 0) + { + if ($orderby=='userup') {$orderSQL='full_name,status,last_call_time';} + if ($orderby=='userdown') {$orderSQL='full_name desc,status desc,last_call_time desc';} + } +else + { + if ($orderby=='userup') {$orderSQL='vicidial_live_agents.user';} + if ($orderby=='userdown') {$orderSQL='vicidial_live_agents.user desc';} + } + +if ($group=='XXXX-ALL-ACTIVE-XXXX') {$groupSQL = '';} +else {$groupSQL = " and campaign_id='" . mysql_real_escape_string($group) . "'";} +if (strlen($usergroup)<1) {$usergroupSQL = '';} +else {$usergroupSQL = " and user_group='" . mysql_real_escape_string($usergroup) . "'";} + +$stmt="select extension,vicidial_live_agents.user,conf_exten,status,server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,campaign_id,vicidial_users.user_group,vicidial_users.full_name,vicidial_live_agents.comments,lead_id,vicidial_users.pass from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user $groupSQL $usergroupSQL order by $orderSQL;"; + +#$stmt="select extension,vicidial_live_agents.user,conf_exten,status,server_ip,UNIX_TIMESTAMP(last_call_time),UNIX_TIMESTAMP(last_call_finish),call_server_ip,campaign_id,vicidial_users.user_group,vicidial_users.full_name from vicidial_live_agents,vicidial_users where vicidial_live_agents.user=vicidial_users.user and campaign_id='" . mysql_real_escape_string($group) . "' order by $orderSQL;"; + +if ($non_latin > 0) +{ +$rslt=mysql_query("SET NAMES 'UTF8'"); +} +if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} $rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + $agentcount=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[3])) + { + $row[5]=$row[6]; + } + if ($non_latin < 1) + { + $extension = eregi_replace('Local/',"",$row[0]); + $extension = eregi_replace('IAX2/',"",$row[0]); + $extension = sprintf("%-10s", $extension); + while(strlen($extension)>10) {$extension = substr("$extension", 0, -1);} + } + else + { + $extension = eregi_replace('Local/',"",$row[0]); + $extension = eregi_replace('IAX2/',"",$row[0]); + $extension = sprintf("%-40s", $extension); + while(mb_strlen($extension, 'utf-8')>10) {$extension = mb_substr("$extension", 0, -1,'utf8');} + } + + $Luser = $row[1]; + $user = sprintf("%-18s", $row[1]); + $Lsessionid = $row[2]; + $sessionid = sprintf("%-9s", $row[2]); + $Lstatus = $row[3]; + $status = sprintf("%-6s", $row[3]); + $Lserver_ip = $row[4]; + $server_ip = sprintf("%-15s", $row[4]); + $call_server_ip = sprintf("%-15s", $row[7]); + $campaign_id = sprintf("%-10s", $row[8]); + $comments= $row[11]; + + $lead_id = $row[12]; + $user_pass = $row[13]; + + + if (eregi("INCALL",$Lstatus)) + { + if ( (eregi("AUTO",$comments)) or (strlen($comments)<1) ) + {$CM='A';} + else + { + if (eregi("INBOUND",$comments)) + {$CM='I';} + else + {$CM='M';} + } + } + else {$CM=' ';} + + if ($UGdisplay > 0) + { + if ($non_latin < 1) + { + $user_group = sprintf("%-12s", $row[9]); + while(strlen($user_group)>12) {$user_group = substr("$user_group", 0, -1);} + } + else + { + $user_group = sprintf("%-40s", $row[9]); + while(mb_strlen($user_group, 'utf-8')>12) {$user_group = mb_substr("$user_group", 0, -1,'utf8');} + } + } + if ($UidORname > 0) + { + if ($non_latin < 1) + { + $user = sprintf("%-18s", $row[10]); + while(strlen($user)>18) {$user = substr("$user", 0, -1);} + } + else + { + $user = sprintf("%-40s", $row[10]); + while(mb_strlen($user, 'utf-8')>18) {$user = mb_substr("$user", 0, -1,'utf8');} + } + } + if (!eregi("INCALL|QUEUE",$row[3])) + {$call_time_S = ($STARTtime - $row[6]);} + else + {$call_time_S = ($STARTtime - $row[5]);} + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ($Lstatus=='INCALL') + { + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_M_int >= 1) {$G=''; $EG='';} + if ($call_time_M_int >= 5) {$G=''; $EG='';} + # if ($call_time_M_int >= 10) {$G=''; $EG='';} + } + if (eregi("PAUSED",$row[3])) + { + if ($call_time_M_int >= 30) + {$i++; continue;} + else + { + $agent_paused++; $agent_total++; + $G=''; $EG=''; + if ($call_time_S >= 10) {$G=''; $EG='';} + if ($call_time_M_int >= 1) {$G=''; $EG='';} + if ($call_time_M_int >= 5) {$G=''; $EG='';} + } + } +# if ( (strlen($row[7])> 4) and ($row[7] != "$row[4]") ) +# {$G=''; $EG='';} + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) + { + $G=''; $EG=''; + if ($call_time_M_int >= 1) {$G=''; $EG='';} + if ($call_time_M_int >= 5) {$G=''; $EG='';} + } + + $L=''; + $R=''; + $LL=''; + $EXTF='6'; + $servip= str_replace('.','',$Lserver_ip); + if ($SIPmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($IAXmonitorLINK>0) {$L=" LISTEN"; $R='';} + if ($SIPmonitorLINK>1) {$R=" | BARGE";} + if ($IAXmonitorLINK>1) {$R=" | BARGE";} + + + if ($RECmonitorLINK>0) + { + + $stmt="select session_name from web_client_sessions where server_ip ='$server_ip' and extension ='$extension' limit 1;"; + if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} + $rslta=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $sess = mysql_num_rows($rslta); + + if ($sess > 0) + { + $row=mysql_fetch_row($rslta); + $sessionname = $row[0]; + } else + { + $sessionname = ""; + } + + + $stmt="select end_time,channel,extension,lead_id,user,server_ip,filename from recording_log where server_ip ='$server_ip' and user ='$Luser';"; + if ($non_latin > 0) {$rslta=mysql_query("SET NAMES 'UTF8'");} + $rslta=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $rec_channels = mysql_num_rows($rslta); + + if ($rec_channels > 0) + { + $ii=0; + while ($ii < $rec_channels) + { + $row=mysql_fetch_row($rslta); + $pos=strpos($row[1], $Lsessionid); + + if ($pos===false) + { + $LL=" Rec "; + } + else + { + if(is_null($row[0])) { + $LL=" Stop"; + } + else + { + $LL=" Rec "; + } + } + + $ii++; + } + } + else + { + $LL=" Rec "; + + } + } + + + if ($UGdisplay > 0) {$UGD = " $G$user_group$EG |";} + else {$UGD = "";} + + if ($SERVdisplay > 0) {$SVD = "$G$server_ip$EG | $G$call_server_ip$EG | ";} + else {$SVD = "";} + + $agentcount++; + + $Aecho .= "| $G$extension$EG | $G$user$EG |$UGD $G$sessionid$EG$L$R | $G$status$EG $CM | $LL | $SVD$G$call_time_MS$EG | $G$campaign_id$EG |\n"; + + $i++; + } + + $Aecho .= "$Aline"; + $Aecho .= " $agentcount agents logged in on all servers\n"; + $Aecho .= " System Load Average: $load_ave\n\n"; + + # $Aecho .= " - Balanced call\n"; + $Aecho .= " - Agent waiting for call\n"; + $Aecho .= " - Agent waiting for call > 1 minute\n"; + $Aecho .= " - Agent waiting for call > 5 minutes\n"; + $Aecho .= " - Agent on call > 10 seconds\n"; + $Aecho .= " - Agent on call > 1 minute\n"; + $Aecho .= " - Agent on call > 5 minutes\n"; + $Aecho .= " - Agent Paused > 10 seconds\n"; + $Aecho .= " - Agent Paused > 1 minute\n"; + $Aecho .= " - Agent Paused > 5 minutes\n"; + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + + echo "\n
    \n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + + echo "
    ";
    +		echo "";
    +		echo "$Aecho";
    +	}
    +	else
    +	{
    +	echo " NO AGENTS ON CALLS \n";
    +	}
    +
    +?>
    +
    + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADallSUMMARY.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADallSUMMARY.php new file mode 100644 index 00000000..81d1ea1e --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonVDADallSUMMARY.php @@ -0,0 +1,457 @@ + LICENSE: AGPLv2 +# +# Summary for all campaigns live real-time stats for the VICIDIAL Auto-Dialer all servers +# +# STOP=4000, SLOW=40, GO=4 seconds refresh interval +# +# changes: +# 61102-1616 - first build +# 61215-1131 - added answered calls and drop percent taken from answered calls +# 70111-1600 - added ability to use BLEND/INBND/*_C/*_B/*_I as closer campaigns +# 70619-1339 - Added Status Category tally display +# 71029-1900 - Changed CLOSER-type to not require campaign_id restriction +# 80525-1040 - Added IVR status summary display for inbound calls +# 90310-2119 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["RR"])) {$RR=$_GET["RR"];} + elseif (isset($_POST["RR"])) {$RR=$_POST["RR"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["adastats"])) {$adastats=$_GET["adastats"];} + elseif (isset($_POST["adastats"])) {$adastats=$_POST["adastats"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (!isset($RR)) {$gRRroup=4;} + + +$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 and view_reports='1';"; + 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"); +$STARTtime = date("U"); + +$stmt="select campaign_id from vicidial_campaigns where active='Y';"; +$rslt=mysql_query($stmt, $link); +if (!isset($DB)) {$DB=0;} +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + +if (!isset($RR)) {$RR=4;} + +?> + + + + + +\n"; +echo "Real-Time All Campaigns Summary\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
    "; + +echo "Real-Time All Campaigns Summary           \n"; +echo "STOP | "; +echo "SLOW | "; +echo "GO "; +echo "       \n"; +if ($adastats<2) + { + echo "+ VIEW MORE SETTINGS"; + } +else + { + echo "- VIEW LESS SETTINGS"; + } +echo "       REPORTS"; +echo "

    \n\n"; + +$k=0; +while($k<$groups_to_print) +{ +$NFB = ''; +$NFE = ''; +$F=''; $FG=''; $B=''; $BG=''; + +$group = $groups[$k]; +echo "$group   -   "; +echo "Modify\n"; + + +$stmt = "select count(*) from vicidial_campaigns where campaign_id='$group' and campaign_allow_inbound='Y';"; +$rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_allow_inbound = $row[0]; + +$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,dial_method,adaptive_maximum_level,adaptive_dropped_percentage,adaptive_dl_diff_target,adaptive_intensity,available_only_ratio_tally,adaptive_latest_server_time,local_call_time,dial_timeout,dial_statuses from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DIALlev = $row[0]; +$DIALstatusA = $row[1]; +$DIALstatusB = $row[2]; +$DIALstatusC = $row[3]; +$DIALstatusD = $row[4]; +$DIALstatusE = $row[5]; +$DIALorder = $row[6]; +$DIALfilter = $row[7]; +$HOPlev = $row[8]; +$DIALmethod = $row[9]; +$maxDIALlev = $row[10]; +$DROPmax = $row[11]; +$targetDIFF = $row[12]; +$ADAintense = $row[13]; +$ADAavailonly = $row[14]; +$TAPERtime = $row[15]; +$CALLtime = $row[16]; +$DIALtimeout = $row[17]; +$DIALstatuses = $row[18]; + $DIALstatuses = (preg_replace("/ -$|^ /","",$DIALstatuses)); + $DIALstatuses = (ereg_replace(' ',', ',$DIALstatuses)); + +$stmt="select count(*) from vicidial_hopper where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$VDhop = $row[0]; + +$stmt="select dialable_leads,calls_today,drops_today,drops_answers_today_pct,differential_onemin,agents_average_onemin,balance_trunk_fill,answers_today,status_category_1,status_category_count_1,status_category_2,status_category_count_2,status_category_3,status_category_count_3,status_category_4,status_category_count_4 from vicidial_campaign_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$DAleads = $row[0]; +$callsTODAY = $row[1]; +$dropsTODAY = $row[2]; +$drpctTODAY = $row[3]; +$diffONEMIN = $row[4]; +$agentsONEMIN = $row[5]; +$balanceFILL = $row[6]; +$answersTODAY = $row[7]; +$VSCcat1 = $row[8]; +$VSCcat1tally = $row[9]; +$VSCcat2 = $row[10]; +$VSCcat2tally = $row[11]; +$VSCcat3 = $row[12]; +$VSCcat3tally = $row[13]; +$VSCcat4 = $row[14]; +$VSCcat4tally = $row[15]; + +if ( ($diffONEMIN != 0) and ($agentsONEMIN > 0) ) + { + $diffpctONEMIN = ( ($diffONEMIN / $agentsONEMIN) * 100); + $diffpctONEMIN = sprintf("%01.2f", $diffpctONEMIN); + } +else {$diffpctONEMIN = '0.00';} + +$stmt="select sum(local_trunk_shortage) from vicidial_campaign_server_stats where campaign_id='" . mysql_real_escape_string($group) . "';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$balanceSHORT = $row[0]; + +echo "
    "; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +if ($adastats>1) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; + +echo ""; +echo ""; +echo ""; +echo ""; +echo ""; +echo "
    DIAL LEVEL:  $DIALlev    TRUNK SHORT/FILL:  $balanceSHORT / $balanceFILL     FILTER:  $DIALfilter   TIME:   $NOW_TIME
      MAX LEVEL:  $maxDIALlev   DROPPED MAX:  $DROPmax%    TARGET DIFF:  $targetDIFF     INTENSITY:  $ADAintense    
    DIAL TIMEOUT:  $DIALtimeout  TAPER TIME:  $TAPERtime  LOCAL TIME:  $CALLtime  AVAIL ONLY:  $ADAavailonly  
    DIALABLE LEADS:  $DAleads     CALLS TODAY:  $callsTODAY     AVG AGENTS:  $agentsONEMIN     DIAL METHOD:  $DIALmethod    
    HOPPER LEVEL:  $HOPlev     DROPPED / ANSWERED:  $dropsTODAY / $answersTODAY   DL DIFF:  $diffONEMIN     STATUSES:  $DIALstatuses    
    LEADS IN HOPPER:  $VDhop     DROPPED PERCENT:  "; +if ($drpctTODAY >= $DROPmax) + {echo "$drpctTODAY%";} +else + {echo "$drpctTODAY%";} +echo "    DIFF:  $diffpctONEMIN%     ORDER:  $DIALorder    
    "; +if ( (!eregi('NULL',$VSCcat1)) and (strlen($VSCcat1)>0) ) + {echo "$VSCcat1:   $VSCcat1tally       \n";} +if ( (!eregi('NULL',$VSCcat2)) and (strlen($VSCcat2)>0) ) + {echo "$VSCcat2:   $VSCcat2tally       \n";} +if ( (!eregi('NULL',$VSCcat3)) and (strlen($VSCcat3)>0) ) + {echo "$VSCcat3:   $VSCcat3tally       \n";} +if ( (!eregi('NULL',$VSCcat4)) and (strlen($VSCcat4)>0) ) + {echo "$VSCcat4:   $VSCcat4tally       \n";} +echo "
    "; + +### Header finish + + + + + +################################################################################ +### START calculating calls/agents +################################################################################ + +################################################################################ +###### OUTBOUND CALLS +################################################################################ +if ($campaign_allow_inbound > 0) + { + $stmt="select closer_campaigns from vicidial_campaigns where campaign_id='" . mysql_real_escape_string($group) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = preg_replace("/^ | -$/","",$row[0]); + $closer_campaigns = preg_replace("/ /","','",$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='" . mysql_real_escape_string($group) . "' and call_type='OUT') );"; + } +else + { + if ($group=='XXXX-ALL-ACTIVE-XXXX') {$groupSQL = '';} + else {$groupSQL = " and campaign_id='" . mysql_real_escape_string($group) . "'";} + + $stmt="select status from vicidial_auto_calls where status NOT IN('XFER') $groupSQL;"; + } +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$parked_to_print = mysql_num_rows($rslt); + if ($parked_to_print > 0) + { + $i=0; + $out_total=0; + $out_ring=0; + $out_live=0; + $in_ivr=0; + while ($i < $parked_to_print) + { + $row=mysql_fetch_row($rslt); + + if (eregi("LIVE",$row[0])) + {$out_live++;} + else + { + if (eregi("IVR",$row[0])) + {$in_ivr++;} + if (eregi("CLOSER",$row[0])) + {$nothing=1;} + else + {$out_ring++;} + } + $out_total++; + $i++; + } + + if ($out_live > 0) {$F=''; $FG='';} + if ($out_live > 4) {$F=''; $FG='';} + if ($out_live > 9) {$F=''; $FG='';} + if ($out_live > 14) {$F=''; $FG='';} + + if ($campaign_allow_inbound > 0) + {echo "$NFB$out_total$NFE current active calls      \n";} + else + {echo "$NFB$out_total$NFE calls being placed       \n";} + + echo "$NFB$out_ring$NFE calls ringing         \n"; + echo "$NFB$F  $out_live $FG$NFE calls waiting for agents       \n"; + echo "$NFB  $in_ivr$NFE calls in IVR       \n"; + } + else + { + echo " NO LIVE CALLS WAITING \n"; + } + + +################################################################################### +###### TIME ON SYSTEM +################################################################################### + +$agent_incall=0; +$agent_ready=0; +$agent_paused=0; +$agent_total=0; + +$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) . "';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + $agentcount=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[3])) + { + $row[5]=$row[6]; + } + $Lstatus = $row[3]; + $status = sprintf("%-6s", $row[3]); + if (!eregi("INCALL|QUEUE",$row[3])) + {$call_time_S = ($STARTtime - $row[6]);} + else + {$call_time_S = ($STARTtime - $row[5]);} + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if (eregi("PAUSED",$row[3])) + { + if ($call_time_M_int >= 30) + {$i++; continue;} + else + { + $agent_paused++; $agent_total++; + } + } + + if ( (eregi("INCALL",$status)) or (eregi("QUEUE",$status)) ) {$agent_incall++; $agent_total++;} + if ( (eregi("READY",$status)) or (eregi("CLOSER",$status)) ) {$agent_ready++; $agent_total++;} + $agentcount++; + + + $i++; + } + + if ($agent_ready > 0) {$B=''; $BG='';} + if ($agent_ready > 4) {$B=''; $BG='';} + if ($agent_ready > 9) {$B=''; $BG='';} + if ($agent_ready > 14) {$B=''; $BG='';} + + echo "\n
    \n"; + + echo "$NFB$agent_total$NFE agents logged in         \n"; + echo "$NFB$agent_incall$NFE agents in calls       \n"; + echo "$NFB$B  $agent_ready $BG$NFE agents waiting       \n"; + echo "$NFB$agent_paused$NFE paused agents       \n"; + + echo "
    ";
    +		echo "";
    +	}
    +	else
    +	{
    +	echo " NO AGENTS ON CALLS
    \n"; + } + +################################################################################ +### END calculating calls/agents +################################################################################ + + + + + +echo "
    "; + +echo "\n\n"; +$k++; +} + +?> + +
    + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonpark.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonpark.php new file mode 100644 index 00000000..09749020 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/AST_timeonpark.php @@ -0,0 +1,220 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1042 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["reset_counter"])) {$reset_counter=$_GET["reset_counter"];} + elseif (isset($_POST["reset_counter"])) {$reset_counter=$_POST["reset_counter"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1';"; + 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"); +$STARTtime = date("U"); +$timeONEhoursAGO = ($STARTtime - 3600); +$epochHALFhoursAGO = ($STARTtime - 1860); +$timeONEhoursAGO = date("Y-m-d H:i:s",$timeONEhoursAGO); +$timeHALFhoursAGO = date("Y-m-d H:i:s",$epochHALFhoursAGO); + +$reset_counter++; + +if ($reset_counter > 7) + { + $reset_counter=0; + + $stmt="update park_log set status='HUNGUP' where hangup_time is not null;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + + if ($DB) + { + $stmt="delete from park_log where status='TALKING' and grab_time < '$timeONEhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + $stmt="delete from park_log where status='PARKED' and parked_time < '$timeHALFhoursAGO' and (hangup_time is null or hangup_time='');"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + + } + } + +?> + + + + + +\n"; +echo"\n"; +echo "VICIDIAL: Time On Park\n"; +echo "
    \n\n";
    +
    +echo "VICIDIAL: Time On Park         $NOW_TIME    REPORTS\n\n";
    +echo "+------------+-----------------+---------------------+---------+\n";
    +echo "| CHANNEL    | GROUP           | START TIME          | MINUTES |\n";
    +echo "+------------+-----------------+---------------------+---------+\n";
    +
    +#$link=mysql_connect("localhost", "cron", "1234");
    +# $linkX=mysql_connect("localhost", "cron", "1234");
    +#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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$parked_to_print = mysql_num_rows($rslt);
    +	if ($parked_to_print > 0)
    +	{
    +	$i=0;
    +	while ($i < $parked_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +
    +		$channel =			sprintf("%-10s", $row[2]);
    +		$number_dialed =	sprintf("%-15s", $row[3]);
    +		$start_time =		sprintf("%-19s", $row[4]);
    +		$call_time_S = ($STARTtime - $row[5]);
    +
    +		$call_time_M = ($call_time_S / 60);
    +		$call_time_M = round($call_time_M, 2);
    +		$call_time_M_int = intval("$call_time_M");
    +		$call_time_SEC = ($call_time_M - $call_time_M_int);
    +		$call_time_SEC = ($call_time_SEC * 60);
    +		$call_time_SEC = round($call_time_SEC, 0);
    +		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
    +		$call_time_MS = "$call_time_M_int:$call_time_SEC";
    +		$call_time_MS =		sprintf("%7s", $call_time_MS);
    +		$G = '';		$EG = '';
    +		if ($call_time_M_int >= 1) {$G=''; $EG='';}
    +		if ($call_time_M_int >= 6) {$G=''; $EG='';}
    +
    +		echo "| $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
    +
    +		$i++;
    +		}
    +
    +		echo "+------------+-----------------+---------------------+---------+\n";
    +		echo "  $i callers waiting on server $server_ip\n\n";
    +
    +		echo "             - 1 minute or more on hold\n";
    +		echo "             - Over 5 minutes on hold\n";
    +
    +		}
    +	else
    +	{
    +	echo "****************************************************************\n";
    +	echo "****************************************************************\n";
    +	echo "******************** NO LIVE CALLS WAITING *********************\n";
    +	echo "****************************************************************\n";
    +	echo "****************************************************************\n";
    +	}
    +
    +###################################################################################
    +###### TIME ON INBOUND CALLS
    +###################################################################################
    +echo "\n\n";
    +echo "----------------------------------------------------------------------------------------";
    +echo "\n\n";
    +echo "VICIDIAL: Agents Time On Inbound Calls                             $NOW_TIME\n\n";
    +echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
    +echo "| STATION    | USER   | CHANNEL    | GROUP           | START TIME          | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' order by uniqueid;";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$talking_to_print = mysql_num_rows($rslt);
    +	if ($talking_to_print > 0)
    +	{
    +	$i=0;
    +	while ($i < $talking_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +
    +		$extension =		sprintf("%-10s", $row[0]);
    +		$user =				sprintf("%-6s", $row[1]);
    +		$channel =			sprintf("%-10s", $row[2]);
    +		$number_dialed =	sprintf("%-15s", $row[3]);
    +		$start_time =		sprintf("%-19s", $row[4]);
    +		$call_time_S = ($STARTtime - $row[5]);
    +
    +		$call_time_M = ($call_time_S / 60);
    +		$call_time_M = round($call_time_M, 2);
    +		$call_time_M_int = intval("$call_time_M");
    +		$call_time_SEC = ($call_time_M - $call_time_M_int);
    +		$call_time_SEC = ($call_time_SEC * 60);
    +		$call_time_SEC = round($call_time_SEC, 0);
    +		if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";}
    +		$call_time_MS = "$call_time_M_int:$call_time_SEC";
    +		$call_time_MS =		sprintf("%7s", $call_time_MS);
    +		$G = '';		$EG = '';
    +		if ($call_time_M_int >= 12) {$G=''; $EG='';}
    +		if ($call_time_M_int >= 31) {$G=''; $EG='';}
    +
    +		echo "| $G$extension$EG | $G$user$EG | $G$channel$EG | $G$number_dialed$EG | $G$start_time$EG | $G$call_time_MS$EG |\n";
    +
    +		$i++;
    +		}
    +
    +		echo "+------------|--------+------------+-----------------+---------------------+---------+\n";
    +		echo "  $i agents on calls on server $server_ip\n\n";
    +
    +		echo "             - 12 minutes or more on call\n";
    +		echo "             - Over 30 minutes on call\n";
    +
    +	}
    +	else
    +	{
    +	echo "**************************************************************************************\n";
    +	echo "**************************************************************************************\n";
    +	echo "********************************* NO AGENTS ON CALLS *********************************\n";
    +	echo "**************************************************************************************\n";
    +	echo "**************************************************************************************\n";
    +	}
    +
    +
    +?>
    +
    + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/EXAMPLEcustom_report_links.html b/agc_2-X/branches/agc_2.2.0/www/vicidial/EXAMPLEcustom_report_links.html new file mode 100644 index 00000000..54cfa3be --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/EXAMPLEcustom_report_links.html @@ -0,0 +1,4 @@ +Custom Reports
    + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/QM_live_monitor.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/QM_live_monitor.php new file mode 100644 index 00000000..71d1d53a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/QM_live_monitor.php @@ -0,0 +1,177 @@ + LICENSE: AGPLv2 +# +# Script to initiate live monitoring from QueueMetrics link +# +# CHANGELOG: +# 90529-2115 - First Build +# + +$version = '2.2.0-1'; +$build = '90529-2115'; + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session"])) {$session=$_GET["session"];} + elseif (isset($_POST["session"])) {$session=$_POST["session"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["type"])) {$type=$_GET["type"];} + elseif (isset($_POST["type"])) {$type=$_POST["type"];} +if (isset($_GET["call"])) {$call=$_GET["call"];} + elseif (isset($_POST["call"])) {$call=$_POST["call"];} +if (isset($_GET["QMuser"])) {$QMuser=$_GET["QMuser"];} + elseif (isset($_POST["QMuser"])) {$QMuser=$_POST["QMuser"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} + + +$ERR=0; +$ERRstring=''; + +############################################# +##### START QUEUEMETRICS LOGGING LOOKUP ##### +$stmt = "SELECT enable_queuemetrics_logging FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + } +##### END QUEUEMETRICS LOGGING LOOKUP ##### +########################################### +if ($enable_queuemetrics_logging > 0) + { + $stmt = "SELECT user,server_ip,conf_exten,comments FROM vicidial_live_agents where callerid='$call';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vla_conf_ct = mysql_num_rows($rslt); + if ($vla_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLAuser = $row[0]; + $VLAserver_ip = $row[1]; + $VLAconf_exten = $row[2]; + + $stmt = "SELECT campaign_id,phone_number,call_type FROM vicidial_auto_calls where callerid='$call';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vla_conf_ct = mysql_num_rows($rslt); + if ($vla_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VACcampaign = $row[0]; + $VACphone = $row[1]; + $VACtype = $row[2]; + + if ($stage == 'MONITOR') + { + $script_name = getenv("SCRIPT_NAME"); + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name$script_name"; + $admDIR = eregi_replace('QM_live_monitor.php','',$admDIR); + $monitor_script = 'non_agent_api.php'; + + $monitorURL = "$admDIR$monitor_script?source=queuemetrics&function=blind_monitor&user=$user&pass=$call&phone_login=$extension&session_id=$session&server_ip=$server_ip&stage=$stage"; + $monitorCONTENTS = file("$monitorURL"); + + if (eregi('SUCCESS',$monitorCONTENTS[0])) + { + echo "\n"; + } + else + { + echo "\n"; + echo "$monitorCONTENTS[0]
    \n"; + } + + echo "\n"; + echo "\n"; + echo "
    \n"; + echo ""; + echo "\n"; + echo "
    \n"; + echo "\n"; + + exit; + } + else + { + echo ""; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Remote Monitor:
    "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + exit; + } + } + else + { + $ERR++; + $ERRstring = "Call not found"; + } + } + else + { + $ERR++; + $ERRstring = "Agent not found"; + } + } +else + { + $ERR++; + $ERRstring = "QueueMetrics is not enabled on this system"; + } + +if ($ERR > 0) + { + echo "ERROR: $ERRstring\n"; + echo "\n"; + echo "\n"; + exit; + } + +exit; + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/admin.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/admin.php new file mode 100644 index 00000000..08a33476 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/admin.php @@ -0,0 +1,25016 @@ + LICENSE: AGPLv2 +# + +require("dbconnect.php"); + +###################################################################################################### +###################################################################################################### +####### static variable settings for display options +###################################################################################################### +###################################################################################################### + +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$campaigns_color = '#FFCC99'; +$lists_color = '#FFCCCC'; +$ingroups_color = '#CC99FF'; +$remoteagent_color ='#CCFFCC'; +$usergroups_color = '#CCFFFF'; +$scripts_color = '#99FFCC'; +$filters_color = '#CCCCCC'; +$admin_color = '#FF99FF'; +$reports_color = '#99FF33'; + $times_color = '#FF33FF'; + $shifts_color = '#FF33FF'; + $phones_color = '#FF33FF'; + $conference_color = '#FF33FF'; + $server_color = '#FF33FF'; + $templates_color = '#FF33FF'; + $carriers_color = '#FF33FF'; + $settings_color = '#FF33FF'; + $status_color = '#FF33FF'; + $moh_color = '#FF33FF'; + $vm_color = '#FF33FF'; + $tts_color = '#FF33FF'; +$subcamp_color = '#FF9933'; +$users_font = 'BLACK'; +$campaigns_font = 'BLACK'; +$lists_font = 'BLACK'; +$ingroups_font = 'BLACK'; +$remoteagent_font = 'BLACK'; +$usergroups_font = 'BLACK'; +$scripts_font = 'BLACK'; +$filters_font = 'BLACK'; +$admin_font = 'BLACK'; +$reports_font = 'BLACK'; + $times_font = 'BLACK'; + $phones_font = 'BLACK'; + $conference_font = 'BLACK'; + $server_font = 'BLACK'; + $settings_font = 'BLACK'; + $status_font = 'BLACK'; + $moh_font = 'BLACK'; + $vm_font = 'BLACK'; + $tts_font = 'BLACK'; +$subcamp_font = 'BLACK'; + +### comment this section out for colorful section headings +$users_color = '#E6E6E6'; +$campaigns_color = '#E6E6E6'; +$lists_color = '#E6E6E6'; +$ingroups_color = '#E6E6E6'; +$remoteagent_color ='#E6E6E6'; +$usergroups_color = '#E6E6E6'; +$scripts_color = '#E6E6E6'; +$filters_color = '#E6E6E6'; +$admin_color = '#E6E6E6'; +$reports_color = '#E6E6E6'; + $times_color = '#C6C6C6'; + $shifts_color = '#C6C6C6'; + $phones_color = '#C6C6C6'; + $conference_color = '#C6C6C6'; + $server_color = '#C6C6C6'; + $templates_color = '#C6C6C6'; + $carriers_color = '#C6C6C6'; + $settings_color = '#C6C6C6'; + $status_color = '#C6C6C6'; + $moh_color = '#C6C6C6'; + $vm_color = '#C6C6C6'; + $tts_color = '#C6C6C6'; +$subcamp_color = '#C6C6C6'; +### + + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + +###################################################################################################### +###################################################################################################### +####### Form variable declaration +###################################################################################################### +###################################################################################################### + + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["active"])) {$active=$_GET["active"];} + elseif (isset($_POST["active"])) {$active=$_POST["active"];} +if (isset($_GET["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_GET["adaptive_dl_diff_target"];} + elseif (isset($_POST["adaptive_dl_diff_target"])) {$adaptive_dl_diff_target=$_POST["adaptive_dl_diff_target"];} +if (isset($_GET["adaptive_dropped_percentage"])) {$adaptive_dropped_percentage=$_GET["adaptive_dropped_percentage"];} + elseif (isset($_POST["adaptive_dropped_percentage"])){$adaptive_dropped_percentage=$_POST["adaptive_dropped_percentage"];} +if (isset($_GET["adaptive_intensity"])) {$adaptive_intensity=$_GET["adaptive_intensity"];} + elseif (isset($_POST["adaptive_intensity"])) {$adaptive_intensity=$_POST["adaptive_intensity"];} +if (isset($_GET["adaptive_latest_server_time"])) {$adaptive_latest_server_time=$_GET["adaptive_latest_server_time"];} + elseif (isset($_POST["adaptive_latest_server_time"])){$adaptive_latest_server_time=$_POST["adaptive_latest_server_time"];} +if (isset($_GET["adaptive_maximum_level"])) {$adaptive_maximum_level=$_GET["adaptive_maximum_level"];} + elseif (isset($_POST["adaptive_maximum_level"])) {$adaptive_maximum_level=$_POST["adaptive_maximum_level"];} +if (isset($_GET["SUB"])) {$SUB=$_GET["SUB"];} + elseif (isset($_POST["SUB"])) {$SUB=$_POST["SUB"];} +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["admin_hangup_enabled"])) {$admin_hangup_enabled=$_GET["admin_hangup_enabled"];} + elseif (isset($_POST["admin_hangup_enabled"])) {$admin_hangup_enabled=$_POST["admin_hangup_enabled"];} +if (isset($_GET["admin_hijack_enabled"])) {$admin_hijack_enabled=$_GET["admin_hijack_enabled"];} + elseif (isset($_POST["admin_hijack_enabled"])) {$admin_hijack_enabled=$_POST["admin_hijack_enabled"];} +if (isset($_GET["admin_monitor_enabled"])) {$admin_monitor_enabled=$_GET["admin_monitor_enabled"];} + elseif (isset($_POST["admin_monitor_enabled"])) {$admin_monitor_enabled=$_POST["admin_monitor_enabled"];} +if (isset($_GET["AFLogging_enabled"])) {$AFLogging_enabled=$_GET["AFLogging_enabled"];} + elseif (isset($_POST["AFLogging_enabled"])) {$AFLogging_enabled=$_POST["AFLogging_enabled"];} +if (isset($_GET["agent_choose_ingroups"])) {$agent_choose_ingroups=$_GET["agent_choose_ingroups"];} + elseif (isset($_POST["agent_choose_ingroups"])) {$agent_choose_ingroups=$_POST["agent_choose_ingroups"];} +if (isset($_GET["agentcall_manual"])) {$agentcall_manual=$_GET["agentcall_manual"];} + elseif (isset($_POST["agentcall_manual"])) {$agentcall_manual=$_POST["agentcall_manual"];} +if (isset($_GET["agentonly_callbacks"])) {$agentonly_callbacks=$_GET["agentonly_callbacks"];} + elseif (isset($_POST["agentonly_callbacks"])) {$agentonly_callbacks=$_POST["agentonly_callbacks"];} +if (isset($_GET["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_GET["AGI_call_logging_enabled"];} + elseif (isset($_POST["AGI_call_logging_enabled"])) {$AGI_call_logging_enabled=$_POST["AGI_call_logging_enabled"];} +if (isset($_GET["agi_output"])) {$agi_output=$_GET["agi_output"];} + elseif (isset($_POST["agi_output"])) {$agi_output=$_POST["agi_output"];} +if (isset($_GET["allcalls_delay"])) {$allcalls_delay=$_GET["allcalls_delay"];} + elseif (isset($_POST["allcalls_delay"])) {$allcalls_delay=$_POST["allcalls_delay"];} +if (isset($_GET["allow_closers"])) {$allow_closers=$_GET["allow_closers"];} + elseif (isset($_POST["allow_closers"])) {$allow_closers=$_POST["allow_closers"];} +if (isset($_GET["alt_number_dialing"])) {$alt_number_dialing=$_GET["alt_number_dialing"];} + elseif (isset($_POST["alt_number_dialing"])) {$alt_number_dialing=$_POST["alt_number_dialing"];} +if (isset($_GET["alter_agent_interface_options"])) {$alter_agent_interface_options=$_GET["alter_agent_interface_options"];} + elseif (isset($_POST["alter_agent_interface_options"])) {$alter_agent_interface_options=$_POST["alter_agent_interface_options"];} +if (isset($_GET["am_message_exten"])) {$am_message_exten=$_GET["am_message_exten"];} + elseif (isset($_POST["am_message_exten"])) {$am_message_exten=$_POST["am_message_exten"];} +if (isset($_GET["amd_send_to_vmx"])) {$amd_send_to_vmx=$_GET["amd_send_to_vmx"];} + elseif (isset($_POST["amd_send_to_vmx"])) {$amd_send_to_vmx=$_POST["amd_send_to_vmx"];} +if (isset($_GET["answer_transfer_agent"])) {$answer_transfer_agent=$_GET["answer_transfer_agent"];} + elseif (isset($_POST["answer_transfer_agent"])) {$answer_transfer_agent=$_POST["answer_transfer_agent"];} +if (isset($_GET["ast_admin_access"])) {$ast_admin_access=$_GET["ast_admin_access"];} + elseif (isset($_POST["ast_admin_access"])) {$ast_admin_access=$_POST["ast_admin_access"];} +if (isset($_GET["ast_delete_phones"])) {$ast_delete_phones=$_GET["ast_delete_phones"];} + elseif (isset($_POST["ast_delete_phones"])) {$ast_delete_phones=$_POST["ast_delete_phones"];} +if (isset($_GET["asterisk_version"])) {$asterisk_version=$_GET["asterisk_version"];} + elseif (isset($_POST["asterisk_version"])) {$asterisk_version=$_POST["asterisk_version"];} +if (isset($_GET["ASTmgrSECRET"])) {$ASTmgrSECRET=$_GET["ASTmgrSECRET"];} + elseif (isset($_POST["ASTmgrSECRET"])) {$ASTmgrSECRET=$_POST["ASTmgrSECRET"];} +if (isset($_GET["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_GET["ASTmgrUSERNAME"];} + elseif (isset($_POST["ASTmgrUSERNAME"])) {$ASTmgrUSERNAME=$_POST["ASTmgrUSERNAME"];} +if (isset($_GET["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_GET["ASTmgrUSERNAMElisten"];} + elseif (isset($_POST["ASTmgrUSERNAMElisten"])) {$ASTmgrUSERNAMElisten=$_POST["ASTmgrUSERNAMElisten"];} +if (isset($_GET["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_GET["ASTmgrUSERNAMEsend"];} + elseif (isset($_POST["ASTmgrUSERNAMEsend"])) {$ASTmgrUSERNAMEsend=$_POST["ASTmgrUSERNAMEsend"];} +if (isset($_GET["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_GET["ASTmgrUSERNAMEupdate"];} + elseif (isset($_POST["ASTmgrUSERNAMEupdate"])) {$ASTmgrUSERNAMEupdate=$_POST["ASTmgrUSERNAMEupdate"];} +if (isset($_GET["attempt_delay"])) {$attempt_delay=$_GET["attempt_delay"];} + elseif (isset($_POST["attempt_delay"])) {$attempt_delay=$_POST["attempt_delay"];} +if (isset($_GET["attempt_maximum"])) {$attempt_maximum=$_GET["attempt_maximum"];} + elseif (isset($_POST["attempt_maximum"])) {$attempt_maximum=$_POST["attempt_maximum"];} +if (isset($_GET["auto_dial_level"])) {$auto_dial_level=$_GET["auto_dial_level"];} + elseif (isset($_POST["auto_dial_level"])) {$auto_dial_level=$_POST["auto_dial_level"];} +if (isset($_GET["auto_dial_next_number"])) {$auto_dial_next_number=$_GET["auto_dial_next_number"];} + elseif (isset($_POST["auto_dial_next_number"])) {$auto_dial_next_number=$_POST["auto_dial_next_number"];} +if (isset($_GET["available_only_ratio_tally"])) {$available_only_ratio_tally=$_GET["available_only_ratio_tally"];} + elseif (isset($_POST["available_only_ratio_tally"])){$available_only_ratio_tally=$_POST["available_only_ratio_tally"];} +if (isset($_GET["call_out_number_group"])) {$call_out_number_group=$_GET["call_out_number_group"];} + elseif (isset($_POST["call_out_number_group"])) {$call_out_number_group=$_POST["call_out_number_group"];} +if (isset($_GET["call_parking_enabled"])) {$call_parking_enabled=$_GET["call_parking_enabled"];} + elseif (isset($_POST["call_parking_enabled"])) {$call_parking_enabled=$_POST["call_parking_enabled"];} +if (isset($_GET["call_time_comments"])) {$call_time_comments=$_GET["call_time_comments"];} + elseif (isset($_POST["call_time_comments"])) {$call_time_comments=$_POST["call_time_comments"];} +if (isset($_GET["call_time_id"])) {$call_time_id=$_GET["call_time_id"];} + elseif (isset($_POST["call_time_id"])) {$call_time_id=$_POST["call_time_id"];} +if (isset($_GET["call_time_name"])) {$call_time_name=$_GET["call_time_name"];} + elseif (isset($_POST["call_time_name"])) {$call_time_name=$_POST["call_time_name"];} +if (isset($_GET["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_GET["CallerID_popup_enabled"];} + elseif (isset($_POST["CallerID_popup_enabled"])) {$CallerID_popup_enabled=$_POST["CallerID_popup_enabled"];} +if (isset($_GET["campaign_cid"])) {$campaign_cid=$_GET["campaign_cid"];} + elseif (isset($_POST["campaign_cid"])) {$campaign_cid=$_POST["campaign_cid"];} +if (isset($_GET["campaign_detail"])) {$campaign_detail=$_GET["campaign_detail"];} + elseif (isset($_POST["campaign_detail"])) {$campaign_detail=$_POST["campaign_detail"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["campaign_name"])) {$campaign_name=$_GET["campaign_name"];} + elseif (isset($_POST["campaign_name"])) {$campaign_name=$_POST["campaign_name"];} +if (isset($_GET["campaign_rec_exten"])) {$campaign_rec_exten=$_GET["campaign_rec_exten"];} + elseif (isset($_POST["campaign_rec_exten"])) {$campaign_rec_exten=$_POST["campaign_rec_exten"];} +if (isset($_GET["campaign_rec_filename"])) {$campaign_rec_filename=$_GET["campaign_rec_filename"];} + elseif (isset($_POST["campaign_rec_filename"])) {$campaign_rec_filename=$_POST["campaign_rec_filename"];} +if (isset($_GET["ingroup_rec_filename"])) {$ingroup_rec_filename=$_GET["ingroup_rec_filename"];} + elseif (isset($_POST["ingroup_rec_filename"])) {$ingroup_rec_filename=$_POST["ingroup_rec_filename"];} +if (isset($_GET["campaign_recording"])) {$campaign_recording=$_GET["campaign_recording"];} + elseif (isset($_POST["campaign_recording"])) {$campaign_recording=$_POST["campaign_recording"];} +if (isset($_GET["campaign_vdad_exten"])) {$campaign_vdad_exten=$_GET["campaign_vdad_exten"];} + elseif (isset($_POST["campaign_vdad_exten"])) {$campaign_vdad_exten=$_POST["campaign_vdad_exten"];} +if (isset($_GET["change_agent_campaign"])) {$change_agent_campaign=$_GET["change_agent_campaign"];} + elseif (isset($_POST["change_agent_campaign"])) {$change_agent_campaign=$_POST["change_agent_campaign"];} +if (isset($_GET["client_browser"])) {$client_browser=$_GET["client_browser"];} + elseif (isset($_POST["client_browser"])) {$client_browser=$_POST["client_browser"];} +if (isset($_GET["closer_default_blended"])) {$closer_default_blended=$_GET["closer_default_blended"];} + elseif (isset($_POST["closer_default_blended"])) {$closer_default_blended=$_POST["closer_default_blended"];} +if (isset($_GET["company"])) {$company=$_GET["company"];} + elseif (isset($_POST["company"])) {$company=$_POST["company"];} +if (isset($_GET["computer_ip"])) {$computer_ip=$_GET["computer_ip"];} + elseif (isset($_POST["computer_ip"])) {$computer_ip=$_POST["computer_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["conf_on_extension"])) {$conf_on_extension=$_GET["conf_on_extension"];} + elseif (isset($_POST["conf_on_extension"])) {$conf_on_extension=$_POST["conf_on_extension"];} +if (isset($_GET["conferencing_enabled"])) {$conferencing_enabled=$_GET["conferencing_enabled"];} + elseif (isset($_POST["conferencing_enabled"])) {$conferencing_enabled=$_POST["conferencing_enabled"];} +if (isset($_GET["CoNfIrM"])) {$CoNfIrM=$_GET["CoNfIrM"];} + elseif (isset($_POST["CoNfIrM"])) {$CoNfIrM=$_POST["CoNfIrM"];} +if (isset($_GET["ct_default_start"])) {$ct_default_start=$_GET["ct_default_start"];} + elseif (isset($_POST["ct_default_start"])) {$ct_default_start=$_POST["ct_default_start"];} +if (isset($_GET["ct_default_stop"])) {$ct_default_stop=$_GET["ct_default_stop"];} + elseif (isset($_POST["ct_default_stop"])) {$ct_default_stop=$_POST["ct_default_stop"];} +if (isset($_GET["ct_friday_start"])) {$ct_friday_start=$_GET["ct_friday_start"];} + elseif (isset($_POST["ct_friday_start"])) {$ct_friday_start=$_POST["ct_friday_start"];} +if (isset($_GET["ct_friday_stop"])) {$ct_friday_stop=$_GET["ct_friday_stop"];} + elseif (isset($_POST["ct_friday_stop"])) {$ct_friday_stop=$_POST["ct_friday_stop"];} +if (isset($_GET["ct_monday_start"])) {$ct_monday_start=$_GET["ct_monday_start"];} + elseif (isset($_POST["ct_monday_start"])) {$ct_monday_start=$_POST["ct_monday_start"];} +if (isset($_GET["ct_monday_stop"])) {$ct_monday_stop=$_GET["ct_monday_stop"];} + elseif (isset($_POST["ct_monday_stop"])) {$ct_monday_stop=$_POST["ct_monday_stop"];} +if (isset($_GET["ct_saturday_start"])) {$ct_saturday_start=$_GET["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"];} + elseif (isset($_POST["ct_saturday_stop"])) {$ct_saturday_stop=$_POST["ct_saturday_stop"];} +if (isset($_GET["ct_sunday_start"])) {$ct_sunday_start=$_GET["ct_sunday_start"];} + elseif (isset($_POST["ct_sunday_start"])) {$ct_sunday_start=$_POST["ct_sunday_start"];} +if (isset($_GET["ct_sunday_stop"])) {$ct_sunday_stop=$_GET["ct_sunday_stop"];} + elseif (isset($_POST["ct_sunday_stop"])) {$ct_sunday_stop=$_POST["ct_sunday_stop"];} +if (isset($_GET["ct_thursday_start"])) {$ct_thursday_start=$_GET["ct_thursday_start"];} + elseif (isset($_POST["ct_thursday_start"])) {$ct_thursday_start=$_POST["ct_thursday_start"];} +if (isset($_GET["ct_thursday_stop"])) {$ct_thursday_stop=$_GET["ct_thursday_stop"];} + elseif (isset($_POST["ct_thursday_stop"])) {$ct_thursday_stop=$_POST["ct_thursday_stop"];} +if (isset($_GET["ct_tuesday_start"])) {$ct_tuesday_start=$_GET["ct_tuesday_start"];} + elseif (isset($_POST["ct_tuesday_start"])) {$ct_tuesday_start=$_POST["ct_tuesday_start"];} +if (isset($_GET["ct_tuesday_stop"])) {$ct_tuesday_stop=$_GET["ct_tuesday_stop"];} + elseif (isset($_POST["ct_tuesday_stop"])) {$ct_tuesday_stop=$_POST["ct_tuesday_stop"];} +if (isset($_GET["ct_wednesday_start"])) {$ct_wednesday_start=$_GET["ct_wednesday_start"];} + elseif (isset($_POST["ct_wednesday_start"])) {$ct_wednesday_start=$_POST["ct_wednesday_start"];} +if (isset($_GET["ct_wednesday_stop"])) {$ct_wednesday_stop=$_GET["ct_wednesday_stop"];} + elseif (isset($_POST["ct_wednesday_stop"])) {$ct_wednesday_stop=$_POST["ct_wednesday_stop"];} +if (isset($_GET["DBX_database"])) {$DBX_database=$_GET["DBX_database"];} + elseif (isset($_POST["DBX_database"])) {$DBX_database=$_POST["DBX_database"];} +if (isset($_GET["DBX_pass"])) {$DBX_pass=$_GET["DBX_pass"];} + elseif (isset($_POST["DBX_pass"])) {$DBX_pass=$_POST["DBX_pass"];} +if (isset($_GET["DBX_port"])) {$DBX_port=$_GET["DBX_port"];} + elseif (isset($_POST["DBX_port"])) {$DBX_port=$_POST["DBX_port"];} +if (isset($_GET["DBX_server"])) {$DBX_server=$_GET["DBX_server"];} + elseif (isset($_POST["DBX_server"])) {$DBX_server=$_POST["DBX_server"];} +if (isset($_GET["DBX_user"])) {$DBX_user=$_GET["DBX_user"];} + elseif (isset($_POST["DBX_user"])) {$DBX_user=$_POST["DBX_user"];} +if (isset($_GET["DBY_database"])) {$DBY_database=$_GET["DBY_database"];} + elseif (isset($_POST["DBY_database"])) {$DBY_database=$_POST["DBY_database"];} +if (isset($_GET["DBY_pass"])) {$DBY_pass=$_GET["DBY_pass"];} + elseif (isset($_POST["DBY_pass"])) {$DBY_pass=$_POST["DBY_pass"];} +if (isset($_GET["DBY_port"])) {$DBY_port=$_GET["DBY_port"];} + elseif (isset($_POST["DBY_port"])) {$DBY_port=$_POST["DBY_port"];} +if (isset($_GET["DBY_server"])) {$DBY_server=$_GET["DBY_server"];} + elseif (isset($_POST["DBY_server"])) {$DBY_server=$_POST["DBY_server"];} +if (isset($_GET["DBY_user"])) {$DBY_user=$_GET["DBY_user"];} + elseif (isset($_POST["DBY_user"])) {$DBY_user=$_POST["DBY_user"];} +if (isset($_GET["delete_call_times"])) {$delete_call_times=$_GET["delete_call_times"];} + elseif (isset($_POST["delete_call_times"])) {$delete_call_times=$_POST["delete_call_times"];} +if (isset($_GET["delete_campaigns"])) {$delete_campaigns=$_GET["delete_campaigns"];} + elseif (isset($_POST["delete_campaigns"])) {$delete_campaigns=$_POST["delete_campaigns"];} +if (isset($_GET["delete_filters"])) {$delete_filters=$_GET["delete_filters"];} + elseif (isset($_POST["delete_filters"])) {$delete_filters=$_POST["delete_filters"];} +if (isset($_GET["delete_ingroups"])) {$delete_ingroups=$_GET["delete_ingroups"];} + elseif (isset($_POST["delete_ingroups"])) {$delete_ingroups=$_POST["delete_ingroups"];} +if (isset($_GET["delete_lists"])) {$delete_lists=$_GET["delete_lists"];} + elseif (isset($_POST["delete_lists"])) {$delete_lists=$_POST["delete_lists"];} +if (isset($_GET["delete_remote_agents"])) {$delete_remote_agents=$_GET["delete_remote_agents"];} + elseif (isset($_POST["delete_remote_agents"])) {$delete_remote_agents=$_POST["delete_remote_agents"];} +if (isset($_GET["delete_scripts"])) {$delete_scripts=$_GET["delete_scripts"];} + elseif (isset($_POST["delete_scripts"])) {$delete_scripts=$_POST["delete_scripts"];} +if (isset($_GET["delete_user_groups"])) {$delete_user_groups=$_GET["delete_user_groups"];} + elseif (isset($_POST["delete_user_groups"])) {$delete_user_groups=$_POST["delete_user_groups"];} +if (isset($_GET["delete_users"])) {$delete_users=$_GET["delete_users"];} + elseif (isset($_POST["delete_users"])) {$delete_users=$_POST["delete_users"];} +if (isset($_GET["dial_method"])) {$dial_method=$_GET["dial_method"];} + elseif (isset($_POST["dial_method"])) {$dial_method=$_POST["dial_method"];} +if (isset($_GET["dial_prefix"])) {$dial_prefix=$_GET["dial_prefix"];} + elseif (isset($_POST["dial_prefix"])) {$dial_prefix=$_POST["dial_prefix"];} +if (isset($_GET["dial_status_a"])) {$dial_status_a=$_GET["dial_status_a"];} + elseif (isset($_POST["dial_status_a"])) {$dial_status_a=$_POST["dial_status_a"];} +if (isset($_GET["dial_status_b"])) {$dial_status_b=$_GET["dial_status_b"];} + elseif (isset($_POST["dial_status_b"])) {$dial_status_b=$_POST["dial_status_b"];} +if (isset($_GET["dial_status_c"])) {$dial_status_c=$_GET["dial_status_c"];} + elseif (isset($_POST["dial_status_c"])) {$dial_status_c=$_POST["dial_status_c"];} +if (isset($_GET["dial_status_d"])) {$dial_status_d=$_GET["dial_status_d"];} + elseif (isset($_POST["dial_status_d"])) {$dial_status_d=$_POST["dial_status_d"];} +if (isset($_GET["dial_status_e"])) {$dial_status_e=$_GET["dial_status_e"];} + elseif (isset($_POST["dial_status_e"])) {$dial_status_e=$_POST["dial_status_e"];} +if (isset($_GET["dial_timeout"])) {$dial_timeout=$_GET["dial_timeout"];} + elseif (isset($_POST["dial_timeout"])) {$dial_timeout=$_POST["dial_timeout"];} +if (isset($_GET["dialplan_number"])) {$dialplan_number=$_GET["dialplan_number"];} + elseif (isset($_POST["dialplan_number"])) {$dialplan_number=$_POST["dialplan_number"];} +if (isset($_GET["drop_call_seconds"])) {$drop_call_seconds=$_GET["drop_call_seconds"];} + elseif (isset($_POST["drop_call_seconds"])) {$drop_call_seconds=$_POST["drop_call_seconds"];} +if (isset($_GET["drop_exten"])) {$drop_exten=$_GET["drop_exten"];} + elseif (isset($_POST["drop_exten"])) {$drop_exten=$_POST["drop_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["dtmf_send_extension"])) {$dtmf_send_extension=$_GET["dtmf_send_extension"];} + elseif (isset($_POST["dtmf_send_extension"])) {$dtmf_send_extension=$_POST["dtmf_send_extension"];} +if (isset($_GET["enable_fast_refresh"])) {$enable_fast_refresh=$_GET["enable_fast_refresh"];} + elseif (isset($_POST["enable_fast_refresh"])) {$enable_fast_refresh=$_POST["enable_fast_refresh"];} +if (isset($_GET["enable_persistant_mysql"])) {$enable_persistant_mysql=$_GET["enable_persistant_mysql"];} + elseif (isset($_POST["enable_persistant_mysql"])) {$enable_persistant_mysql=$_POST["enable_persistant_mysql"];} +if (isset($_GET["ext_context"])) {$ext_context=$_GET["ext_context"];} + elseif (isset($_POST["ext_context"])) {$ext_context=$_POST["ext_context"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["fast_refresh_rate"])) {$fast_refresh_rate=$_GET["fast_refresh_rate"];} + elseif (isset($_POST["fast_refresh_rate"])) {$fast_refresh_rate=$_POST["fast_refresh_rate"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["fronter_display"])) {$fronter_display=$_GET["fronter_display"];} + elseif (isset($_POST["fronter_display"])) {$fronter_display=$_POST["fronter_display"];} +if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];} + elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];} +if (isset($_GET["fullname"])) {$fullname=$_GET["fullname"];} + elseif (isset($_POST["fullname"])) {$fullname=$_POST["fullname"];} +if (isset($_GET["get_call_launch"])) {$get_call_launch=$_GET["get_call_launch"];} + elseif (isset($_POST["get_call_launch"])) {$get_call_launch=$_POST["get_call_launch"];} +if (isset($_GET["group_color"])) {$group_color=$_GET["group_color"];} + elseif (isset($_POST["group_color"])) {$group_color=$_POST["group_color"];} +if (isset($_GET["group_id"])) {$group_id=$_GET["group_id"];} + elseif (isset($_POST["group_id"])) {$group_id=$_POST["group_id"];} +if (isset($_GET["group_name"])) {$group_name=$_GET["group_name"];} + elseif (isset($_POST["group_name"])) {$group_name=$_POST["group_name"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["XFERgroups"])) {$XFERgroups=$_GET["XFERgroups"];} + elseif (isset($_POST["XFERgroups"])) {$XFERgroups=$_POST["XFERgroups"];} +if (isset($_GET["HKstatus"])) {$HKstatus=$_GET["HKstatus"];} + elseif (isset($_POST["HKstatus"])) {$HKstatus=$_POST["HKstatus"];} +if (isset($_GET["hopper_level"])) {$hopper_level=$_GET["hopper_level"];} + elseif (isset($_POST["hopper_level"])) {$hopper_level=$_POST["hopper_level"];} +if (isset($_GET["hotkey"])) {$hotkey=$_GET["hotkey"];} + elseif (isset($_POST["hotkey"])) {$hotkey=$_POST["hotkey"];} +if (isset($_GET["hotkeys_active"])) {$hotkeys_active=$_GET["hotkeys_active"];} + elseif (isset($_POST["hotkeys_active"])) {$hotkeys_active=$_POST["hotkeys_active"];} +if (isset($_GET["install_directory"])) {$install_directory=$_GET["install_directory"];} + elseif (isset($_POST["install_directory"])) {$install_directory=$_POST["install_directory"];} +if (isset($_GET["lead_filter_comments"])) {$lead_filter_comments=$_GET["lead_filter_comments"];} + elseif (isset($_POST["lead_filter_comments"])) {$lead_filter_comments=$_POST["lead_filter_comments"];} +if (isset($_GET["lead_filter_id"])) {$lead_filter_id=$_GET["lead_filter_id"];} + elseif (isset($_POST["lead_filter_id"])) {$lead_filter_id=$_POST["lead_filter_id"];} +if (isset($_GET["lead_filter_name"])) {$lead_filter_name=$_GET["lead_filter_name"];} + elseif (isset($_POST["lead_filter_name"])) {$lead_filter_name=$_POST["lead_filter_name"];} +if (isset($_GET["lead_filter_sql"])) {$lead_filter_sql=$_GET["lead_filter_sql"];} + elseif (isset($_POST["lead_filter_sql"])) {$lead_filter_sql=$_POST["lead_filter_sql"];} +if (isset($_GET["lead_order"])) {$lead_order=$_GET["lead_order"];} + elseif (isset($_POST["lead_order"])) {$lead_order=$_POST["lead_order"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["list_name"])) {$list_name=$_GET["list_name"];} + elseif (isset($_POST["list_name"])) {$list_name=$_POST["list_name"];} +if (isset($_GET["load_leads"])) {$load_leads=$_GET["load_leads"];} + elseif (isset($_POST["load_leads"])) {$load_leads=$_POST["load_leads"];} +if (isset($_GET["local_call_time"])) {$local_call_time=$_GET["local_call_time"];} + elseif (isset($_POST["local_call_time"])) {$local_call_time=$_POST["local_call_time"];} +if (isset($_GET["local_gmt"])) {$local_gmt=$_GET["local_gmt"];} + elseif (isset($_POST["local_gmt"])) {$local_gmt=$_POST["local_gmt"];} +if (isset($_GET["local_web_callerID_URL"])) {$local_web_callerID_URL=$_GET["local_web_callerID_URL"];} + elseif (isset($_POST["local_web_callerID_URL"])) {$local_web_callerID_URL=$_POST["local_web_callerID_URL"];} +if (isset($_GET["login"])) {$login=$_GET["login"];} + elseif (isset($_POST["login"])) {$login=$_POST["login"];} +if (isset($_GET["login_campaign"])) {$login_campaign=$_GET["login_campaign"];} + elseif (isset($_POST["login_campaign"])) {$login_campaign=$_POST["login_campaign"];} +if (isset($_GET["login_pass"])) {$login_pass=$_GET["login_pass"];} + elseif (isset($_POST["login_pass"])) {$login_pass=$_POST["login_pass"];} +if (isset($_GET["login_user"])) {$login_user=$_GET["login_user"];} + elseif (isset($_POST["login_user"])) {$login_user=$_POST["login_user"];} +if (isset($_GET["max_vicidial_trunks"])) {$max_vicidial_trunks=$_GET["max_vicidial_trunks"];} + elseif (isset($_POST["max_vicidial_trunks"])) {$max_vicidial_trunks=$_POST["max_vicidial_trunks"];} +if (isset($_GET["modify_call_times"])) {$modify_call_times=$_GET["modify_call_times"];} + elseif (isset($_POST["modify_call_times"])) {$modify_call_times=$_POST["modify_call_times"];} +if (isset($_GET["modify_leads"])) {$modify_leads=$_GET["modify_leads"];} + elseif (isset($_POST["modify_leads"])) {$modify_leads=$_POST["modify_leads"];} +if (isset($_GET["monitor_prefix"])) {$monitor_prefix=$_GET["monitor_prefix"];} + elseif (isset($_POST["monitor_prefix"])) {$monitor_prefix=$_POST["monitor_prefix"];} +if (isset($_GET["next_agent_call"])) {$next_agent_call=$_GET["next_agent_call"];} + elseif (isset($_POST["next_agent_call"])) {$next_agent_call=$_POST["next_agent_call"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["old_campaign_id"])) {$old_campaign_id=$_GET["old_campaign_id"];} + elseif (isset($_POST["old_campaign_id"])) {$old_campaign_id=$_POST["old_campaign_id"];} +if (isset($_GET["old_conf_exten"])) {$old_conf_exten=$_GET["old_conf_exten"];} + elseif (isset($_POST["old_conf_exten"])) {$old_conf_exten=$_POST["old_conf_exten"];} +if (isset($_GET["old_extension"])) {$old_extension=$_GET["old_extension"];} + elseif (isset($_POST["old_extension"])) {$old_extension=$_POST["old_extension"];} +if (isset($_GET["old_server_id"])) {$old_server_id=$_GET["old_server_id"];} + elseif (isset($_POST["old_server_id"])) {$old_server_id=$_POST["old_server_id"];} +if (isset($_GET["old_server_ip"])) {$old_server_ip=$_GET["old_server_ip"];} + elseif (isset($_POST["old_server_ip"])) {$old_server_ip=$_POST["old_server_ip"];} +if (isset($_GET["OLDuser_group"])) {$OLDuser_group=$_GET["OLDuser_group"];} + elseif (isset($_POST["OLDuser_group"])) {$OLDuser_group=$_POST["OLDuser_group"];} +if (isset($_GET["omit_phone_code"])) {$omit_phone_code=$_GET["omit_phone_code"];} + elseif (isset($_POST["omit_phone_code"])) {$omit_phone_code=$_POST["omit_phone_code"];} +if (isset($_GET["outbound_cid"])) {$outbound_cid=$_GET["outbound_cid"];} + elseif (isset($_POST["outbound_cid"])) {$outbound_cid=$_POST["outbound_cid"];} +if (isset($_GET["park_ext"])) {$park_ext=$_GET["park_ext"];} + elseif (isset($_POST["park_ext"])) {$park_ext=$_POST["park_ext"];} +if (isset($_GET["park_file_name"])) {$park_file_name=$_GET["park_file_name"];} + elseif (isset($_POST["park_file_name"])) {$park_file_name=$_POST["park_file_name"];} +if (isset($_GET["park_on_extension"])) {$park_on_extension=$_GET["park_on_extension"];} + elseif (isset($_POST["park_on_extension"])) {$park_on_extension=$_POST["park_on_extension"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_ip"])) {$phone_ip=$_GET["phone_ip"];} + elseif (isset($_POST["phone_ip"])) {$phone_ip=$_POST["phone_ip"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone_pass"])) {$phone_pass=$_GET["phone_pass"];} + elseif (isset($_POST["phone_pass"])) {$phone_pass=$_POST["phone_pass"];} +if (isset($_GET["phone_type"])) {$phone_type=$_GET["phone_type"];} + elseif (isset($_POST["phone_type"])) {$phone_type=$_POST["phone_type"];} +if (isset($_GET["picture"])) {$picture=$_GET["picture"];} + elseif (isset($_POST["picture"])) {$picture=$_POST["picture"];} +if (isset($_GET["protocol"])) {$protocol=$_GET["protocol"];} + elseif (isset($_POST["protocol"])) {$protocol=$_POST["protocol"];} +if (isset($_GET["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_GET["QUEUE_ACTION_enabled"];} + elseif (isset($_POST["QUEUE_ACTION_enabled"])) {$QUEUE_ACTION_enabled=$_POST["QUEUE_ACTION_enabled"];} +if (isset($_GET["recording_exten"])) {$recording_exten=$_GET["recording_exten"];} + elseif (isset($_POST["recording_exten"])) {$recording_exten=$_POST["recording_exten"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["reset_hopper"])) {$reset_hopper=$_GET["reset_hopper"];} + elseif (isset($_POST["reset_hopper"])) {$reset_hopper=$_POST["reset_hopper"];} +if (isset($_GET["reset_list"])) {$reset_list=$_GET["reset_list"];} + elseif (isset($_POST["reset_list"])) {$reset_list=$_POST["reset_list"];} +if (isset($_GET["safe_harbor_exten"])) {$safe_harbor_exten=$_GET["safe_harbor_exten"];} + elseif (isset($_POST["safe_harbor_exten"])) {$safe_harbor_exten=$_POST["safe_harbor_exten"];} +if (isset($_GET["drop_action"])) {$drop_action=$_GET["drop_action"];} + elseif (isset($_POST["drop_action"])) {$drop_action=$_POST["drop_action"];} +if (isset($_GET["scheduled_callbacks"])) {$scheduled_callbacks=$_GET["scheduled_callbacks"];} + elseif (isset($_POST["scheduled_callbacks"])) {$scheduled_callbacks=$_POST["scheduled_callbacks"];} +if (isset($_GET["script_comments"])) {$script_comments=$_GET["script_comments"];} + elseif (isset($_POST["script_comments"])) {$script_comments=$_POST["script_comments"];} +if (isset($_GET["script_id"])) {$script_id=$_GET["script_id"];} + elseif (isset($_POST["script_id"])) {$script_id=$_POST["script_id"];} +if (isset($_GET["script_name"])) {$script_name=$_GET["script_name"];} + elseif (isset($_POST["script_name"])) {$script_name=$_POST["script_name"];} +if (isset($_GET["script_text"])) {$script_text=$_GET["script_text"];} + elseif (isset($_POST["script_text"])) {$script_text=$_POST["script_text"];} +if (isset($_GET["selectable"])) {$selectable=$_GET["selectable"];} + elseif (isset($_POST["selectable"])) {$selectable=$_POST["selectable"];} +if (isset($_GET["server_description"])) {$server_description=$_GET["server_description"];} + elseif (isset($_POST["server_description"])) {$server_description=$_POST["server_description"];} +if (isset($_GET["server_id"])) {$server_id=$_GET["server_id"];} + elseif (isset($_POST["server_id"])) {$server_id=$_POST["server_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +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"];} +if (isset($_GET["state_rule"])) {$state_rule=$_GET["state_rule"];} + elseif (isset($_POST["state_rule"])) {$state_rule=$_POST["state_rule"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["status_name"])) {$status_name=$_GET["status_name"];} + elseif (isset($_POST["status_name"])) {$status_name=$_POST["status_name"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["sys_perf_log"])) {$sys_perf_log=$_GET["sys_perf_log"];} + elseif (isset($_POST["sys_perf_log"])) {$sys_perf_log=$_POST["sys_perf_log"];} +if (isset($_GET["telnet_host"])) {$telnet_host=$_GET["telnet_host"];} + elseif (isset($_POST["telnet_host"])) {$telnet_host=$_POST["telnet_host"];} +if (isset($_GET["telnet_port"])) {$telnet_port=$_GET["telnet_port"];} + elseif (isset($_POST["telnet_port"])) {$telnet_port=$_POST["telnet_port"];} +if (isset($_GET["updater_check_enabled"])) {$updater_check_enabled=$_GET["updater_check_enabled"];} + elseif (isset($_POST["updater_check_enabled"])) {$updater_check_enabled=$_POST["updater_check_enabled"];} +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"];} +if (isset($_GET["use_campaign_dnc"])) {$use_campaign_dnc=$_GET["use_campaign_dnc"];} + elseif (isset($_POST["use_campaign_dnc"])) {$use_campaign_dnc=$_POST["use_campaign_dnc"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["user_level"])) {$user_level=$_GET["user_level"];} + elseif (isset($_POST["user_level"])) {$user_level=$_POST["user_level"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["user_switching_enabled"])) {$user_switching_enabled=$_GET["user_switching_enabled"];} + elseif (isset($_POST["user_switching_enabled"])) {$user_switching_enabled=$_POST["user_switching_enabled"];} +if (isset($_GET["vd_server_logs"])) {$vd_server_logs=$_GET["vd_server_logs"];} + elseif (isset($_POST["vd_server_logs"])) {$vd_server_logs=$_POST["vd_server_logs"];} +if (isset($_GET["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_GET["VDstop_rec_after_each_call"];} + elseif (isset($_POST["VDstop_rec_after_each_call"])) {$VDstop_rec_after_each_call=$_POST["VDstop_rec_after_each_call"];} +if (isset($_GET["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_GET["VICIDIAL_park_on_extension"];} + elseif (isset($_POST["VICIDIAL_park_on_extension"])) {$VICIDIAL_park_on_extension=$_POST["VICIDIAL_park_on_extension"];} +if (isset($_GET["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_GET["VICIDIAL_park_on_filename"];} + elseif (isset($_POST["VICIDIAL_park_on_filename"])) {$VICIDIAL_park_on_filename=$_POST["VICIDIAL_park_on_filename"];} +if (isset($_GET["vicidial_recording"])) {$vicidial_recording=$_GET["vicidial_recording"];} + elseif (isset($_POST["vicidial_recording"])) {$vicidial_recording=$_POST["vicidial_recording"];} +if (isset($_GET["vicidial_transfers"])) {$vicidial_transfers=$_GET["vicidial_transfers"];} + elseif (isset($_POST["vicidial_transfers"])) {$vicidial_transfers=$_POST["vicidial_transfers"];} +if (isset($_GET["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_GET["VICIDIAL_web_URL"];} + elseif (isset($_POST["VICIDIAL_web_URL"])) {$VICIDIAL_web_URL=$_POST["VICIDIAL_web_URL"];} +if (isset($_GET["voicemail_button_enabled"])) {$voicemail_button_enabled=$_GET["voicemail_button_enabled"];} + elseif (isset($_POST["voicemail_button_enabled"])) {$voicemail_button_enabled=$_POST["voicemail_button_enabled"];} +if (isset($_GET["voicemail_dump_exten"])) {$voicemail_dump_exten=$_GET["voicemail_dump_exten"];} + elseif (isset($_POST["voicemail_dump_exten"])) {$voicemail_dump_exten=$_POST["voicemail_dump_exten"];} +if (isset($_GET["voicemail_ext"])) {$voicemail_ext=$_GET["voicemail_ext"];} + elseif (isset($_POST["voicemail_ext"])) {$voicemail_ext=$_POST["voicemail_ext"];} +if (isset($_GET["voicemail_exten"])) {$voicemail_exten=$_GET["voicemail_exten"];} + elseif (isset($_POST["voicemail_exten"])) {$voicemail_exten=$_POST["voicemail_exten"];} +if (isset($_GET["voicemail_id"])) {$voicemail_id=$_GET["voicemail_id"];} + elseif (isset($_POST["voicemail_id"])) {$voicemail_id=$_POST["voicemail_id"];} +if (isset($_GET["web_form_address"])) {$web_form_address=$_GET["web_form_address"];} + elseif (isset($_POST["web_form_address"])) {$web_form_address=$_POST["web_form_address"];} +if (isset($_GET["wrapup_message"])) {$wrapup_message=$_GET["wrapup_message"];} + elseif (isset($_POST["wrapup_message"])) {$wrapup_message=$_POST["wrapup_message"];} +if (isset($_GET["wrapup_seconds"])) {$wrapup_seconds=$_GET["wrapup_seconds"];} + elseif (isset($_POST["wrapup_seconds"])) {$wrapup_seconds=$_POST["wrapup_seconds"];} +if (isset($_GET["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_GET["xferconf_a_dtmf"];} + elseif (isset($_POST["xferconf_a_dtmf"])) {$xferconf_a_dtmf=$_POST["xferconf_a_dtmf"];} +if (isset($_GET["xferconf_a_number"])) {$xferconf_a_number=$_GET["xferconf_a_number"];} + elseif (isset($_POST["xferconf_a_number"])) {$xferconf_a_number=$_POST["xferconf_a_number"];} +if (isset($_GET["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_GET["xferconf_b_dtmf"];} + elseif (isset($_POST["xferconf_b_dtmf"])) {$xferconf_b_dtmf=$_POST["xferconf_b_dtmf"];} +if (isset($_GET["xferconf_b_number"])) {$xferconf_b_number=$_GET["xferconf_b_number"];} + elseif (isset($_POST["xferconf_b_number"])) {$xferconf_b_number=$_POST["xferconf_b_number"];} +if (isset($_GET["vicidial_balance_active"])) {$vicidial_balance_active=$_GET["vicidial_balance_active"];} + elseif (isset($_POST["vicidial_balance_active"])) {$vicidial_balance_active=$_POST["vicidial_balance_active"];} +if (isset($_GET["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_GET["balance_trunks_offlimits"];} + elseif (isset($_POST["balance_trunks_offlimits"])) {$balance_trunks_offlimits=$_POST["balance_trunks_offlimits"];} +if (isset($_GET["dedicated_trunks"])) {$dedicated_trunks=$_GET["dedicated_trunks"];} + elseif (isset($_POST["dedicated_trunks"])) {$dedicated_trunks=$_POST["dedicated_trunks"];} +if (isset($_GET["trunk_restriction"])) {$trunk_restriction=$_GET["trunk_restriction"];} + elseif (isset($_POST["trunk_restriction"])) {$trunk_restriction=$_POST["trunk_restriction"];} +if (isset($_GET["campaigns"])) {$campaigns=$_GET["campaigns"];} + elseif (isset($_POST["campaigns"])) {$campaigns=$_POST["campaigns"];} +if (isset($_GET["dial_level_override"])) {$dial_level_override=$_GET["dial_level_override"];} + elseif (isset($_POST["dial_level_override"])) {$dial_level_override=$_POST["dial_level_override"];} +if (isset($_GET["concurrent_transfers"])) {$concurrent_transfers=$_GET["concurrent_transfers"];} + elseif (isset($_POST["concurrent_transfers"])) {$concurrent_transfers=$_POST["concurrent_transfers"];} +if (isset($_GET["auto_alt_dial"])) {$auto_alt_dial=$_GET["auto_alt_dial"];} + elseif (isset($_POST["auto_alt_dial"])) {$auto_alt_dial=$_POST["auto_alt_dial"];} +if (isset($_GET["modify_users"])) {$modify_users=$_GET["modify_users"];} + elseif (isset($_POST["modify_users"])) {$modify_users=$_POST["modify_users"];} +if (isset($_GET["modify_campaigns"])) {$modify_campaigns=$_GET["modify_campaigns"];} + elseif (isset($_POST["modify_campaigns"])) {$modify_campaigns=$_POST["modify_campaigns"];} +if (isset($_GET["modify_lists"])) {$modify_lists=$_GET["modify_lists"];} + elseif (isset($_POST["modify_lists"])) {$modify_lists=$_POST["modify_lists"];} +if (isset($_GET["modify_scripts"])) {$modify_scripts=$_GET["modify_scripts"];} + elseif (isset($_POST["modify_scripts"])) {$modify_scripts=$_POST["modify_scripts"];} +if (isset($_GET["modify_filters"])) {$modify_filters=$_GET["modify_filters"];} + elseif (isset($_POST["modify_filters"])) {$modify_filters=$_POST["modify_filters"];} +if (isset($_GET["modify_ingroups"])) {$modify_ingroups=$_GET["modify_ingroups"];} + elseif (isset($_POST["modify_ingroups"])) {$modify_ingroups=$_POST["modify_ingroups"];} +if (isset($_GET["modify_usergroups"])) {$modify_usergroups=$_GET["modify_usergroups"];} + elseif (isset($_POST["modify_usergroups"])) {$modify_usergroups=$_POST["modify_usergroups"];} +if (isset($_GET["modify_remoteagents"])) {$modify_remoteagents=$_GET["modify_remoteagents"];} + elseif (isset($_POST["modify_remoteagents"])) {$modify_remoteagents=$_POST["modify_remoteagents"];} +if (isset($_GET["modify_servers"])) {$modify_servers=$_GET["modify_servers"];} + elseif (isset($_POST["modify_servers"])) {$modify_servers=$_POST["modify_servers"];} +if (isset($_GET["view_reports"])) {$view_reports=$_GET["view_reports"];} + elseif (isset($_POST["view_reports"])) {$view_reports=$_POST["view_reports"];} +if (isset($_GET["agent_pause_codes_active"])) {$agent_pause_codes_active=$_GET["agent_pause_codes_active"];} + elseif (isset($_POST["agent_pause_codes_active"])) {$agent_pause_codes_active=$_POST["agent_pause_codes_active"];} +if (isset($_GET["pause_code"])) {$pause_code=$_GET["pause_code"];} + elseif (isset($_POST["pause_code"])) {$pause_code=$_POST["pause_code"];} +if (isset($_GET["pause_code_name"])) {$pause_code_name=$_GET["pause_code_name"];} + elseif (isset($_POST["pause_code_name"])) {$pause_code_name=$_POST["pause_code_name"];} +if (isset($_GET["billable"])) {$billable=$_GET["billable"];} + elseif (isset($_POST["billable"])) {$billable=$_POST["billable"];} +if (isset($_GET["campaign_description"])) {$campaign_description=$_GET["campaign_description"];} + elseif (isset($_POST["campaign_description"])) {$campaign_description=$_POST["campaign_description"];} +if (isset($_GET["campaign_stats_refresh"])) {$campaign_stats_refresh=$_GET["campaign_stats_refresh"];} + elseif (isset($_POST["campaign_stats_refresh"])){$campaign_stats_refresh=$_POST["campaign_stats_refresh"];} +if (isset($_GET["list_description"])) {$list_description=$_GET["list_description"];} + elseif (isset($_POST["list_description"])) {$list_description=$_POST["list_description"];} +if (isset($_GET["vicidial_recording_override"])) {$vicidial_recording_override=$_GET["vicidial_recording_override"];} + elseif (isset($_POST["vicidial_recording_override"])) {$vicidial_recording_override=$_POST["vicidial_recording_override"];} +if (isset($_GET["use_non_latin"])) {$use_non_latin=$_GET["use_non_latin"];} + elseif (isset($_POST["use_non_latin"])) {$use_non_latin=$_POST["use_non_latin"];} +if (isset($_GET["webroot_writable"])) {$webroot_writable=$_GET["webroot_writable"];} + elseif (isset($_POST["webroot_writable"])) {$webroot_writable=$_POST["webroot_writable"];} +if (isset($_GET["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_GET["enable_queuemetrics_logging"];} + elseif (isset($_POST["enable_queuemetrics_logging"])) {$enable_queuemetrics_logging=$_POST["enable_queuemetrics_logging"];} +if (isset($_GET["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_GET["queuemetrics_server_ip"];} + elseif (isset($_POST["queuemetrics_server_ip"])) {$queuemetrics_server_ip=$_POST["queuemetrics_server_ip"];} +if (isset($_GET["queuemetrics_dbname"])) {$queuemetrics_dbname=$_GET["queuemetrics_dbname"];} + elseif (isset($_POST["queuemetrics_dbname"])) {$queuemetrics_dbname=$_POST["queuemetrics_dbname"];} +if (isset($_GET["queuemetrics_login"])) {$queuemetrics_login=$_GET["queuemetrics_login"];} + elseif (isset($_POST["queuemetrics_login"])) {$queuemetrics_login=$_POST["queuemetrics_login"];} +if (isset($_GET["queuemetrics_pass"])) {$queuemetrics_pass=$_GET["queuemetrics_pass"];} + elseif (isset($_POST["queuemetrics_pass"])) {$queuemetrics_pass=$_POST["queuemetrics_pass"];} +if (isset($_GET["queuemetrics_url"])) {$queuemetrics_url=$_GET["queuemetrics_url"];} + elseif (isset($_POST["queuemetrics_url"])) {$queuemetrics_url=$_POST["queuemetrics_url"];} +if (isset($_GET["queuemetrics_log_id"])) {$queuemetrics_log_id=$_GET["queuemetrics_log_id"];} + elseif (isset($_POST["queuemetrics_log_id"])) {$queuemetrics_log_id=$_POST["queuemetrics_log_id"];} +if (isset($_GET["dial_status"])) {$dial_status=$_GET["dial_status"];} + elseif (isset($_POST["dial_status"])) {$dial_status=$_POST["dial_status"];} +if (isset($_GET["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_GET["queuemetrics_eq_prepend"];} + elseif (isset($_POST["queuemetrics_eq_prepend"])) {$queuemetrics_eq_prepend=$_POST["queuemetrics_eq_prepend"];} +if (isset($_GET["vicidial_agent_disable"])) {$vicidial_agent_disable=$_GET["vicidial_agent_disable"];} + elseif (isset($_POST["vicidial_agent_disable"])) {$vicidial_agent_disable=$_POST["vicidial_agent_disable"];} +if (isset($_GET["disable_alter_custdata"])) {$disable_alter_custdata=$_GET["disable_alter_custdata"];} + elseif (isset($_POST["disable_alter_custdata"])) {$disable_alter_custdata=$_POST["disable_alter_custdata"];} +if (isset($_GET["alter_custdata_override"])) {$alter_custdata_override=$_GET["alter_custdata_override"];} + elseif (isset($_POST["alter_custdata_override"])) {$alter_custdata_override=$_POST["alter_custdata_override"];} +if (isset($_GET["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_GET["no_hopper_leads_logins"];} + elseif (isset($_POST["no_hopper_leads_logins"])) {$no_hopper_leads_logins=$_POST["no_hopper_leads_logins"];} +if (isset($_GET["enable_sipsak_messages"])) {$enable_sipsak_messages=$_GET["enable_sipsak_messages"];} + elseif (isset($_POST["enable_sipsak_messages"])) {$enable_sipsak_messages=$_POST["enable_sipsak_messages"];} +if (isset($_GET["allow_sipsak_messages"])) {$allow_sipsak_messages=$_GET["allow_sipsak_messages"];} + elseif (isset($_POST["allow_sipsak_messages"])) {$allow_sipsak_messages=$_POST["allow_sipsak_messages"];} +if (isset($_GET["admin_home_url"])) {$admin_home_url=$_GET["admin_home_url"];} + elseif (isset($_POST["admin_home_url"])) {$admin_home_url=$_POST["admin_home_url"];} +if (isset($_GET["list_order_mix"])) {$list_order_mix=$_GET["list_order_mix"];} + elseif (isset($_POST["list_order_mix"])) {$list_order_mix=$_POST["list_order_mix"];} +if (isset($_GET["vcl_id"])) {$vcl_id=$_GET["vcl_id"];} + elseif (isset($_POST["vcl_id"])) {$vcl_id=$_POST["vcl_id"];} +if (isset($_GET["vcl_name"])) {$vcl_name=$_GET["vcl_name"];} + elseif (isset($_POST["vcl_name"])) {$vcl_name=$_POST["vcl_name"];} +if (isset($_GET["list_mix_container"])) {$list_mix_container=$_GET["list_mix_container"];} + elseif (isset($_POST["list_mix_container"])) {$list_mix_container=$_POST["list_mix_container"];} +if (isset($_GET["mix_method"])) {$mix_method=$_GET["mix_method"];} + elseif (isset($_POST["mix_method"])) {$mix_method=$_POST["mix_method"];} +if (isset($_GET["human_answered"])) {$human_answered=$_GET["human_answered"];} + elseif (isset($_POST["human_answered"])) {$human_answered=$_POST["human_answered"];} +if (isset($_GET["category"])) {$category=$_GET["category"];} + elseif (isset($_POST["category"])) {$category=$_POST["category"];} +if (isset($_GET["vsc_id"])) {$vsc_id=$_GET["vsc_id"];} + elseif (isset($_POST["vsc_id"])) {$vsc_id=$_POST["vsc_id"];} +if (isset($_GET["vsc_name"])) {$vsc_name=$_GET["vsc_name"];} + elseif (isset($_POST["vsc_name"])) {$vsc_name=$_POST["vsc_name"];} +if (isset($_GET["vsc_description"])) {$vsc_description=$_GET["vsc_description"];} + elseif (isset($_POST["vsc_description"])) {$vsc_description=$_POST["vsc_description"];} +if (isset($_GET["tovdad_display"])) {$tovdad_display=$_GET["tovdad_display"];} + elseif (isset($_POST["tovdad_display"])) {$tovdad_display=$_POST["tovdad_display"];} +if (isset($_GET["mix_container_item"])) {$mix_container_item=$_GET["mix_container_item"];} + elseif (isset($_POST["mix_container_item"])) {$mix_container_item=$_POST["mix_container_item"];} +if (isset($_GET["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_GET["enable_agc_xfer_log"];} + elseif (isset($_POST["enable_agc_xfer_log"])) {$enable_agc_xfer_log=$_POST["enable_agc_xfer_log"];} +if (isset($_GET["after_hours_action"])) {$after_hours_action=$_GET["after_hours_action"];} + elseif (isset($_POST["after_hours_action"])) {$after_hours_action=$_POST["after_hours_action"];} +if (isset($_GET["after_hours_message_filename"])) {$after_hours_message_filename=$_GET["after_hours_message_filename"];} + elseif (isset($_POST["after_hours_message_filename"])) {$after_hours_message_filename=$_POST["after_hours_message_filename"];} +if (isset($_GET["after_hours_exten"])) {$after_hours_exten=$_GET["after_hours_exten"];} + elseif (isset($_POST["after_hours_exten"])) {$after_hours_exten=$_POST["after_hours_exten"];} +if (isset($_GET["after_hours_voicemail"])) {$after_hours_voicemail=$_GET["after_hours_voicemail"];} + elseif (isset($_POST["after_hours_voicemail"])) {$after_hours_voicemail=$_POST["after_hours_voicemail"];} +if (isset($_GET["welcome_message_filename"])) {$welcome_message_filename=$_GET["welcome_message_filename"];} + elseif (isset($_POST["welcome_message_filename"])) {$welcome_message_filename=$_POST["welcome_message_filename"];} +if (isset($_GET["moh_context"])) {$moh_context=$_GET["moh_context"];} + elseif (isset($_POST["moh_context"])) {$moh_context=$_POST["moh_context"];} +if (isset($_GET["onhold_prompt_filename"])) {$onhold_prompt_filename=$_GET["onhold_prompt_filename"];} + elseif (isset($_POST["onhold_prompt_filename"])) {$onhold_prompt_filename=$_POST["onhold_prompt_filename"];} +if (isset($_GET["prompt_interval"])) {$prompt_interval=$_GET["prompt_interval"];} + elseif (isset($_POST["prompt_interval"])) {$prompt_interval=$_POST["prompt_interval"];} +if (isset($_GET["agent_alert_exten"])) {$agent_alert_exten=$_GET["agent_alert_exten"];} + elseif (isset($_POST["agent_alert_exten"])) {$agent_alert_exten=$_POST["agent_alert_exten"];} +if (isset($_GET["agent_alert_delay"])) {$agent_alert_delay=$_GET["agent_alert_delay"];} + elseif (isset($_POST["agent_alert_delay"])) {$agent_alert_delay=$_POST["agent_alert_delay"];} +if (isset($_GET["group_rank"])) {$group_rank=$_GET["group_rank"];} + elseif (isset($_POST["group_rank"])) {$group_rank=$_POST["group_rank"];} +if (isset($_GET["campaign_allow_inbound"])) {$campaign_allow_inbound=$_GET["campaign_allow_inbound"];} + elseif (isset($_POST["campaign_allow_inbound"])) {$campaign_allow_inbound=$_POST["campaign_allow_inbound"];} +if (isset($_GET["manual_dial_list_id"])) {$manual_dial_list_id=$_GET["manual_dial_list_id"];} + elseif (isset($_POST["manual_dial_list_id"])) {$manual_dial_list_id=$_POST["manual_dial_list_id"];} +if (isset($_GET["campaign_rank"])) {$campaign_rank=$_GET["campaign_rank"];} + elseif (isset($_POST["campaign_rank"])) {$campaign_rank=$_POST["campaign_rank"];} +if (isset($_GET["source_campaign_id"])) {$source_campaign_id=$_GET["source_campaign_id"];} + elseif (isset($_POST["source_campaign_id"])) {$source_campaign_id=$_POST["source_campaign_id"];} +if (isset($_GET["source_user_id"])) {$source_user_id=$_GET["source_user_id"];} + elseif (isset($_POST["source_user_id"])) {$source_user_id=$_POST["source_user_id"];} +if (isset($_GET["source_group_id"])) {$source_group_id=$_GET["source_group_id"];} + elseif (isset($_POST["source_group_id"])) {$source_group_id=$_POST["source_group_id"];} +if (isset($_GET["default_xfer_group"])) {$default_xfer_group=$_GET["default_xfer_group"];} + elseif (isset($_POST["default_xfer_group"])) {$default_xfer_group=$_POST["default_xfer_group"];} +if (isset($_GET["qc_enabled"])) {$qc_enabled=$_GET["qc_enabled"];} + elseif (isset($_POST["qc_enabled"])) {$qc_enabled=$_POST["qc_enabled"];} +if (isset($_GET["qc_user_level"])) {$qc_user_level=$_GET["qc_user_level"];} + elseif (isset($_POST["qc_user_level"])) {$qc_user_level=$_POST["qc_user_level"];} +if (isset($_GET["qc_pass"])) {$qc_pass=$_GET["qc_pass"];} + elseif (isset($_POST["qc_pass"])) {$qc_pass=$_POST["qc_pass"];} +if (isset($_GET["qc_finish"])) {$qc_finish=$_GET["qc_finish"];} + elseif (isset($_POST["qc_finish"])) {$qc_finish=$_POST["qc_finish"];} +if (isset($_GET["qc_commit"])) {$qc_commit=$_GET["qc_commit"];} + elseif (isset($_POST["qc_commit"])) {$qc_commit=$_POST["qc_commit"];} +if (isset($_GET["qc_campaigns"])) {$qc_campaigns=$_GET["qc_campaigns"];} + elseif (isset($_POST["qc_campaigns"])) {$qc_campaigns=$_POST["qc_campaigns"];} +if (isset($_GET["qc_groups"])) {$qc_groups=$_GET["qc_groups"];} + elseif (isset($_POST["qc_groups"])) {$qc_groups=$_POST["qc_groups"];} +if (isset($_GET["queue_priority"])) {$queue_priority=$_GET["queue_priority"];} + elseif (isset($_POST["queue_priority"])) {$queue_priority=$_POST["queue_priority"];} +if (isset($_GET["drop_inbound_group"])) {$drop_inbound_group=$_GET["drop_inbound_group"];} + elseif (isset($_POST["drop_inbound_group"])) {$drop_inbound_group=$_POST["drop_inbound_group"];} +if (isset($_GET["qc_statuses"])) {$qc_statuses=$_GET["qc_statuses"];} + elseif (isset($_POST["qc_statuses"])) {$qc_statuses=$_POST["qc_statuses"];} +if (isset($_GET["qc_lists"])) {$qc_lists=$_GET["qc_lists"];} + elseif (isset($_POST["qc_lists"])) {$qc_lists=$_POST["qc_lists"];} +if (isset($_GET["qc_get_record_launch"])) {$qc_get_record_launch=$_GET["qc_get_record_launch"];} + elseif (isset($_POST["qc_get_record_launch"])) {$qc_get_record_launch=$_POST["qc_get_record_launch"];} +if (isset($_GET["qc_show_recording"])) {$qc_show_recording=$_GET["qc_show_recording"];} + elseif (isset($_POST["qc_show_recording"])) {$qc_show_recording=$_POST["qc_show_recording"];} +if (isset($_GET["qc_shift_id"])) {$qc_shift_id=$_GET["qc_shift_id"];} + elseif (isset($_POST["qc_shift_id"])) {$qc_shift_id=$_POST["qc_shift_id"];} +if (isset($_GET["qc_web_form_address"])) {$qc_web_form_address=$_GET["qc_web_form_address"];} + elseif (isset($_POST["qc_web_form_address"])) {$qc_web_form_address=$_POST["qc_web_form_address"];} +if (isset($_GET["qc_script"])) {$qc_script=$_GET["qc_script"];} + elseif (isset($_POST["qc_script"])) {$qc_script=$_POST["qc_script"];} +if (isset($_GET["ingroup_recording_override"])) {$ingroup_recording_override=$_GET["ingroup_recording_override"];} + elseif (isset($_POST["ingroup_recording_override"])) {$ingroup_recording_override=$_POST["ingroup_recording_override"];} +if (isset($_GET["code"])) {$code=$_GET["code"];} + elseif (isset($_POST["code"])) {$code=$_POST["code"];} +if (isset($_GET["code_name"])) {$code_name=$_GET["code_name"];} + elseif (isset($_POST["code_name"])) {$code_name=$_POST["code_name"];} +if (isset($_GET["afterhours_xfer_group"])) {$afterhours_xfer_group=$_GET["afterhours_xfer_group"];} + elseif (isset($_POST["afterhours_xfer_group"])) {$afterhours_xfer_group=$_POST["afterhours_xfer_group"];} +if (isset($_GET["alias_id"])) {$alias_id=$_GET["alias_id"];} + elseif (isset($_POST["alias_id"])) {$alias_id=$_POST["alias_id"];} +if (isset($_GET["alias_name"])) {$alias_name=$_GET["alias_name"];} + elseif (isset($_POST["alias_name"])) {$alias_name=$_POST["alias_name"];} +if (isset($_GET["logins_list"])) {$logins_list=$_GET["logins_list"];} + elseif (isset($_POST["logins_list"])) {$logins_list=$_POST["logins_list"];} +if (isset($_GET["shift_id"])) {$shift_id=$_GET["shift_id"];} + elseif (isset($_POST["shift_id"])) {$shift_id=$_POST["shift_id"];} +if (isset($_GET["shift_name"])) {$shift_name=$_GET["shift_name"];} + elseif (isset($_POST["shift_name"])) {$shift_name=$_POST["shift_name"];} +if (isset($_GET["shift_start_time"])) {$shift_start_time=$_GET["shift_start_time"];} + elseif (isset($_POST["shift_start_time"])) {$shift_start_time=$_POST["shift_start_time"];} +if (isset($_GET["shift_length"])) {$shift_length=$_GET["shift_length"];} + elseif (isset($_POST["shift_length"])) {$shift_length=$_POST["shift_length"];} +if (isset($_GET["shift_weekdays"])) {$shift_weekdays=$_GET["shift_weekdays"];} + elseif (isset($_POST["shift_weekdays"])) {$shift_weekdays=$_POST["shift_weekdays"];} +if (isset($_GET["group_shifts"])) {$group_shifts=$_GET["group_shifts"];} + elseif (isset($_POST["group_shifts"])) {$group_shifts=$_POST["group_shifts"];} +if (isset($_GET["timeclock_end_of_day"])) {$timeclock_end_of_day=$_GET["timeclock_end_of_day"];} + elseif (isset($_POST["timeclock_end_of_day"])) {$timeclock_end_of_day=$_POST["timeclock_end_of_day"];} +if (isset($_GET["survey_first_audio_file"])) {$survey_first_audio_file=$_GET["survey_first_audio_file"];} + elseif (isset($_POST["survey_first_audio_file"])) {$survey_first_audio_file=$_POST["survey_first_audio_file"];} +if (isset($_GET["survey_dtmf_digits"])) {$survey_dtmf_digits=$_GET["survey_dtmf_digits"];} + elseif (isset($_POST["survey_dtmf_digits"])) {$survey_dtmf_digits=$_POST["survey_dtmf_digits"];} +if (isset($_GET["survey_ni_digit"])) {$survey_ni_digit=$_GET["survey_ni_digit"];} + elseif (isset($_POST["survey_ni_digit"])) {$survey_ni_digit=$_POST["survey_ni_digit"];} +if (isset($_GET["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_GET["survey_opt_in_audio_file"];} + elseif (isset($_POST["survey_opt_in_audio_file"])) {$survey_opt_in_audio_file=$_POST["survey_opt_in_audio_file"];} +if (isset($_GET["survey_ni_audio_file"])) {$survey_ni_audio_file=$_GET["survey_ni_audio_file"];} + elseif (isset($_POST["survey_ni_audio_file"])) {$survey_ni_audio_file=$_POST["survey_ni_audio_file"];} +if (isset($_GET["survey_method"])) {$survey_method=$_GET["survey_method"];} + elseif (isset($_POST["survey_method"])) {$survey_method=$_POST["survey_method"];} +if (isset($_GET["survey_no_response_action"])) {$survey_no_response_action=$_GET["survey_no_response_action"];} + elseif (isset($_POST["survey_no_response_action"])) {$survey_no_response_action=$_POST["survey_no_response_action"];} +if (isset($_GET["survey_ni_status"])) {$survey_ni_status=$_GET["survey_ni_status"];} + elseif (isset($_POST["survey_ni_status"])) {$survey_ni_status=$_POST["survey_ni_status"];} +if (isset($_GET["survey_response_digit_map"])) {$survey_response_digit_map=$_GET["survey_response_digit_map"];} + elseif (isset($_POST["survey_response_digit_map"])) {$survey_response_digit_map=$_POST["survey_response_digit_map"];} +if (isset($_GET["survey_xfer_exten"])) {$survey_xfer_exten=$_GET["survey_xfer_exten"];} + elseif (isset($_POST["survey_xfer_exten"])) {$survey_xfer_exten=$_POST["survey_xfer_exten"];} +if (isset($_GET["survey_camp_record_dir"])) {$survey_camp_record_dir=$_GET["survey_camp_record_dir"];} + elseif (isset($_POST["survey_camp_record_dir"])) {$survey_camp_record_dir=$_POST["survey_camp_record_dir"];} +if (isset($_GET["add_timeclock_log"])) {$add_timeclock_log=$_GET["add_timeclock_log"];} + elseif (isset($_POST["add_timeclock_log"])) {$add_timeclock_log=$_POST["add_timeclock_log"];} +if (isset($_GET["modify_timeclock_log"])) {$modify_timeclock_log=$_GET["modify_timeclock_log"];} + elseif (isset($_POST["modify_timeclock_log"])) {$modify_timeclock_log=$_POST["modify_timeclock_log"];} +if (isset($_GET["delete_timeclock_log"])) {$delete_timeclock_log=$_GET["delete_timeclock_log"];} + elseif (isset($_POST["delete_timeclock_log"])) {$delete_timeclock_log=$_POST["delete_timeclock_log"];} +if (isset($_GET["phone_numbers"])) {$phone_numbers=$_GET["phone_numbers"];} + elseif (isset($_POST["phone_numbers"])) {$phone_numbers=$_POST["phone_numbers"];} +if (isset($_GET["vdc_header_date_format"])) {$vdc_header_date_format=$_GET["vdc_header_date_format"];} + elseif (isset($_POST["vdc_header_date_format"])) {$vdc_header_date_format=$_POST["vdc_header_date_format"];} +if (isset($_GET["vdc_customer_date_format"])) {$vdc_customer_date_format=$_GET["vdc_customer_date_format"];} + elseif (isset($_POST["vdc_customer_date_format"])) {$vdc_customer_date_format=$_POST["vdc_customer_date_format"];} +if (isset($_GET["vdc_header_phone_format"])) {$vdc_header_phone_format=$_GET["vdc_header_phone_format"];} + elseif (isset($_POST["vdc_header_phone_format"])) {$vdc_header_phone_format=$_POST["vdc_header_phone_format"];} +if (isset($_GET["disable_alter_custphone"])) {$disable_alter_custphone=$_GET["disable_alter_custphone"];} + elseif (isset($_POST["disable_alter_custphone"])) {$disable_alter_custphone=$_POST["disable_alter_custphone"];} +if (isset($_GET["alter_custphone_override"])) {$alter_custphone_override=$_GET["alter_custphone_override"];} + elseif (isset($_POST["alter_custphone_override"])) {$alter_custphone_override=$_POST["alter_custphone_override"];} +if (isset($_GET["vdc_agent_api_access"])) {$vdc_agent_api_access=$_GET["vdc_agent_api_access"];} + elseif (isset($_POST["vdc_agent_api_access"])) {$vdc_agent_api_access=$_POST["vdc_agent_api_access"];} +if (isset($_GET["vdc_agent_api_active"])) {$vdc_agent_api_active=$_GET["vdc_agent_api_active"];} + elseif (isset($_POST["vdc_agent_api_active"])) {$vdc_agent_api_active=$_POST["vdc_agent_api_active"];} +if (isset($_GET["display_queue_count"])) {$display_queue_count=$_GET["display_queue_count"];} + elseif (isset($_POST["display_queue_count"])) {$display_queue_count=$_POST["display_queue_count"];} +if (isset($_GET["sale_category"])) {$sale_category=$_GET["sale_category"];} + elseif (isset($_POST["sale_category"])) {$sale_category=$_POST["sale_category"];} +if (isset($_GET["dead_lead_category"])) {$dead_lead_category=$_GET["dead_lead_category"];} + elseif (isset($_POST["dead_lead_category"])) {$dead_lead_category=$_POST["dead_lead_category"];} +if (isset($_GET["manual_dial_filter"])) {$manual_dial_filter=$_GET["manual_dial_filter"];} + elseif (isset($_POST["manual_dial_filter"])) {$manual_dial_filter=$_POST["manual_dial_filter"];} +if (isset($_GET["agent_clipboard_copy"])) {$agent_clipboard_copy=$_GET["agent_clipboard_copy"];} + elseif (isset($_POST["agent_clipboard_copy"])) {$agent_clipboard_copy=$_POST["agent_clipboard_copy"];} +if (isset($_GET["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_GET["agent_extended_alt_dial"];} + elseif (isset($_POST["agent_extended_alt_dial"])) {$agent_extended_alt_dial=$_POST["agent_extended_alt_dial"];} +if (isset($_GET["play_place_in_line"])) {$play_place_in_line=$_GET["play_place_in_line"];} + elseif (isset($_POST["play_place_in_line"])) {$play_place_in_line=$_POST["play_place_in_line"];} +if (isset($_GET["play_estimate_hold_time"])) {$play_estimate_hold_time=$_GET["play_estimate_hold_time"];} + elseif (isset($_POST["play_estimate_hold_time"])) {$play_estimate_hold_time=$_POST["play_estimate_hold_time"];} +if (isset($_GET["hold_time_option"])) {$hold_time_option=$_GET["hold_time_option"];} + elseif (isset($_POST["hold_time_option"])) {$hold_time_option=$_POST["hold_time_option"];} +if (isset($_GET["hold_time_option_seconds"])) {$hold_time_option_seconds=$_GET["hold_time_option_seconds"];} + elseif (isset($_POST["hold_time_option_seconds"])) {$hold_time_option_seconds=$_POST["hold_time_option_seconds"];} +if (isset($_GET["hold_time_option_exten"])) {$hold_time_option_exten=$_GET["hold_time_option_exten"];} + elseif (isset($_POST["hold_time_option_exten"])) {$hold_time_option_exten=$_POST["hold_time_option_exten"];} +if (isset($_GET["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_GET["hold_time_option_voicemail"];} + elseif (isset($_POST["hold_time_option_voicemail"])) {$hold_time_option_voicemail=$_POST["hold_time_option_voicemail"];} +if (isset($_GET["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_GET["hold_time_option_xfer_group"];} + elseif (isset($_POST["hold_time_option_xfer_group"])) {$hold_time_option_xfer_group=$_POST["hold_time_option_xfer_group"];} +if (isset($_GET["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_GET["hold_time_option_callback_filename"];} + elseif (isset($_POST["hold_time_option_callback_filename"])) {$hold_time_option_callback_filename=$_POST["hold_time_option_callback_filename"];} +if (isset($_GET["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_GET["hold_time_option_callback_list_id"];} + elseif (isset($_POST["hold_time_option_callback_list_id"])) {$hold_time_option_callback_list_id=$_POST["hold_time_option_callback_list_id"];} +if (isset($_GET["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_GET["hold_recall_xfer_group"];} + elseif (isset($_POST["hold_recall_xfer_group"])) {$hold_recall_xfer_group=$_POST["hold_recall_xfer_group"];} +if (isset($_GET["no_delay_call_route"])) {$no_delay_call_route=$_GET["no_delay_call_route"];} + elseif (isset($_POST["no_delay_call_route"])) {$no_delay_call_route=$_POST["no_delay_call_route"];} +if (isset($_GET["play_welcome_message"])) {$play_welcome_message=$_GET["play_welcome_message"];} + elseif (isset($_POST["play_welcome_message"])) {$play_welcome_message=$_POST["play_welcome_message"];} +if (isset($_GET["did_id"])) {$did_id=$_GET["did_id"];} + elseif (isset($_POST["did_id"])) {$did_id=$_POST["did_id"];} +if (isset($_GET["source_did"])) {$source_did=$_GET["source_did"];} + elseif (isset($_POST["source_did"])) {$source_did=$_POST["source_did"];} +if (isset($_GET["did_pattern"])) {$did_pattern=$_GET["did_pattern"];} + elseif (isset($_POST["did_pattern"])) {$did_pattern=$_POST["did_pattern"];} +if (isset($_GET["did_description"])) {$did_description=$_GET["did_description"];} + elseif (isset($_POST["did_description"])) {$did_description=$_POST["did_description"];} +if (isset($_GET["did_active"])) {$did_active=$_GET["did_active"];} + elseif (isset($_POST["did_active"])) {$did_active=$_POST["did_active"];} +if (isset($_GET["did_route"])) {$did_route=$_GET["did_route"];} + elseif (isset($_POST["did_route"])) {$did_route=$_POST["did_route"];} +if (isset($_GET["exten_context"])) {$exten_context=$_GET["exten_context"];} + elseif (isset($_POST["exten_context"])) {$exten_context=$_POST["exten_context"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["user_unavailable_action"])) {$user_unavailable_action=$_GET["user_unavailable_action"];} + elseif (isset($_POST["user_unavailable_action"])) {$user_unavailable_action=$_POST["user_unavailable_action"];} +if (isset($_GET["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_GET["user_route_settings_ingroup"];} + elseif (isset($_POST["user_route_settings_ingroup"])) {$user_route_settings_ingroup=$_POST["user_route_settings_ingroup"];} +if (isset($_GET["call_handle_method"])) {$call_handle_method=$_GET["call_handle_method"];} + elseif (isset($_POST["call_handle_method"])) {$call_handle_method=$_POST["call_handle_method"];} +if (isset($_GET["agent_search_method"])) {$agent_search_method=$_GET["agent_search_method"];} + elseif (isset($_POST["agent_search_method"])) {$agent_search_method=$_POST["agent_search_method"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["modify_inbound_dids"])) {$modify_inbound_dids=$_GET["modify_inbound_dids"];} + elseif (isset($_POST["modify_inbound_dids"])) {$modify_inbound_dids=$_POST["modify_inbound_dids"];} +if (isset($_GET["delete_inbound_dids"])) {$delete_inbound_dids=$_GET["delete_inbound_dids"];} + elseif (isset($_POST["delete_inbound_dids"])) {$delete_inbound_dids=$_POST["delete_inbound_dids"];} +if (isset($_GET["three_way_call_cid"])) {$three_way_call_cid=$_GET["three_way_call_cid"];} + elseif (isset($_POST["three_way_call_cid"])) {$three_way_call_cid=$_POST["three_way_call_cid"];} +if (isset($_GET["three_way_dial_prefix"])) {$three_way_dial_prefix=$_GET["three_way_dial_prefix"];} + elseif (isset($_POST["three_way_dial_prefix"])) {$three_way_dial_prefix=$_POST["three_way_dial_prefix"];} +if (isset($_GET["forced_timeclock_login"])) {$forced_timeclock_login=$_GET["forced_timeclock_login"];} + elseif (isset($_POST["forced_timeclock_login"])) {$forced_timeclock_login=$_POST["forced_timeclock_login"];} +if (isset($_GET["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_GET["answer_sec_pct_rt_stat_one"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_one"])) {$answer_sec_pct_rt_stat_one=$_POST["answer_sec_pct_rt_stat_one"];} +if (isset($_GET["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_GET["answer_sec_pct_rt_stat_two"];} + elseif (isset($_POST["answer_sec_pct_rt_stat_two"])) {$answer_sec_pct_rt_stat_two=$_POST["answer_sec_pct_rt_stat_two"];} +if (isset($_GET["list_active_change"])) {$list_active_change=$_GET["list_active_change"];} + elseif (isset($_POST["list_active_change"])) {$list_active_change=$_POST["list_active_change"];} +if (isset($_GET["web_form_target"])) {$web_form_target=$_GET["web_form_target"];} + elseif (isset($_POST["web_form_target"])) {$web_form_target=$_POST["web_form_target"];} +if (isset($_GET["alt_server_ip"])) {$alt_server_ip=$_GET["alt_server_ip"];} + elseif (isset($_POST["alt_server_ip"])) {$alt_server_ip=$_POST["alt_server_ip"];} +if (isset($_GET["recording_web_link"])) {$recording_web_link=$_GET["recording_web_link"];} + elseif (isset($_POST["recording_web_link"])) {$recording_web_link=$_POST["recording_web_link"];} +if (isset($_GET["enable_vtiger_integration"])) {$enable_vtiger_integration=$_GET["enable_vtiger_integration"];} + elseif (isset($_POST["enable_vtiger_integration"])) {$enable_vtiger_integration=$_POST["enable_vtiger_integration"];} +if (isset($_GET["vtiger_server_ip"])) {$vtiger_server_ip=$_GET["vtiger_server_ip"];} + elseif (isset($_POST["vtiger_server_ip"])) {$vtiger_server_ip=$_POST["vtiger_server_ip"];} +if (isset($_GET["vtiger_dbname"])) {$vtiger_dbname=$_GET["vtiger_dbname"];} + elseif (isset($_POST["vtiger_dbname"])) {$vtiger_dbname=$_POST["vtiger_dbname"];} +if (isset($_GET["vtiger_login"])) {$vtiger_login=$_GET["vtiger_login"];} + elseif (isset($_POST["vtiger_login"])) {$vtiger_login=$_POST["vtiger_login"];} +if (isset($_GET["vtiger_pass"])) {$vtiger_pass=$_GET["vtiger_pass"];} + elseif (isset($_POST["vtiger_pass"])) {$vtiger_pass=$_POST["vtiger_pass"];} +if (isset($_GET["vtiger_url"])) {$vtiger_url=$_GET["vtiger_url"];} + elseif (isset($_POST["vtiger_url"])) {$vtiger_url=$_POST["vtiger_url"];} +if (isset($_GET["vtiger_search_category"])) {$vtiger_search_category=$_GET["vtiger_search_category"];} + elseif (isset($_POST["vtiger_search_category"])) {$vtiger_search_category=$_POST["vtiger_search_category"];} +if (isset($_GET["vtiger_create_call_record"])) {$vtiger_create_call_record=$_GET["vtiger_create_call_record"];} + elseif (isset($_POST["vtiger_create_call_record"])) {$vtiger_create_call_record=$_POST["vtiger_create_call_record"];} +if (isset($_GET["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_GET["vtiger_create_lead_record"];} + elseif (isset($_POST["vtiger_create_lead_record"])) {$vtiger_create_lead_record=$_POST["vtiger_create_lead_record"];} +if (isset($_GET["vtiger_screen_login"])) {$vtiger_screen_login=$_GET["vtiger_screen_login"];} + elseif (isset($_POST["vtiger_screen_login"])) {$vtiger_screen_login=$_POST["vtiger_screen_login"];} +if (isset($_GET["qc_features_active"])) {$qc_features_active=$_GET["qc_features_active"];} + elseif (isset($_POST["qc_features_active"])) {$qc_features_active=$_POST["qc_features_active"];} +if (isset($_GET["outbound_autodial_active"])) {$outbound_autodial_active=$_GET["outbound_autodial_active"];} + elseif (isset($_POST["outbound_autodial_active"])) {$outbound_autodial_active=$_POST["outbound_autodial_active"];} +if (isset($_GET["cpd_amd_action"])) {$cpd_amd_action=$_GET["cpd_amd_action"];} + elseif (isset($_POST["cpd_amd_action"])) {$cpd_amd_action=$_POST["cpd_amd_action"];} +if (isset($_GET["download_lists"])) {$download_lists=$_GET["download_lists"];} + elseif (isset($_POST["download_lists"])) {$download_lists=$_POST["download_lists"];} +if (isset($_GET["active_asterisk_server"])) {$active_asterisk_server=$_GET["active_asterisk_server"];} + elseif (isset($_POST["active_asterisk_server"])) {$active_asterisk_server=$_POST["active_asterisk_server"];} +if (isset($_GET["generate_vicidial_conf"])) {$generate_vicidial_conf=$_GET["generate_vicidial_conf"];} + elseif (isset($_POST["generate_vicidial_conf"])) {$generate_vicidial_conf=$_POST["generate_vicidial_conf"];} +if (isset($_GET["rebuild_conf_files"])) {$rebuild_conf_files=$_GET["rebuild_conf_files"];} + elseif (isset($_POST["rebuild_conf_files"])) {$rebuild_conf_files=$_POST["rebuild_conf_files"];} +if (isset($_GET["template_id"])) {$template_id=$_GET["template_id"];} + elseif (isset($_POST["template_id"])) {$template_id=$_POST["template_id"];} +if (isset($_GET["conf_override"])) {$conf_override=$_GET["conf_override"];} + elseif (isset($_POST["conf_override"])) {$conf_override=$_POST["conf_override"];} +if (isset($_GET["template_name"])) {$template_name=$_GET["template_name"];} + elseif (isset($_POST["template_name"])) {$template_name=$_POST["template_name"];} +if (isset($_GET["template_contents"])) {$template_contents=$_GET["template_contents"];} + elseif (isset($_POST["template_contents"])) {$template_contents=$_POST["template_contents"];} +if (isset($_GET["carrier_id"])) {$carrier_id=$_GET["carrier_id"];} + elseif (isset($_POST["carrier_id"])) {$carrier_id=$_POST["carrier_id"];} +if (isset($_GET["carrier_name"])) {$carrier_name=$_GET["carrier_name"];} + elseif (isset($_POST["carrier_name"])) {$carrier_name=$_POST["carrier_name"];} +if (isset($_GET["registration_string"])) {$registration_string=$_GET["registration_string"];} + elseif (isset($_POST["registration_string"])) {$registration_string=$_POST["registration_string"];} +if (isset($_GET["account_entry"])) {$account_entry=$_GET["account_entry"];} + elseif (isset($_POST["account_entry"])) {$account_entry=$_POST["account_entry"];} +if (isset($_GET["globals_string"])) {$globals_string=$_GET["globals_string"];} + elseif (isset($_POST["globals_string"])) {$globals_string=$_POST["globals_string"];} +if (isset($_GET["dialplan_entry"])) {$dialplan_entry=$_GET["dialplan_entry"];} + elseif (isset($_POST["dialplan_entry"])) {$dialplan_entry=$_POST["dialplan_entry"];} +if (isset($_GET["group_alias_id"])) {$group_alias_id=$_GET["group_alias_id"];} + elseif (isset($_POST["group_alias_id"])) {$group_alias_id=$_POST["group_alias_id"];} +if (isset($_GET["group_alias_name"])) {$group_alias_name=$_GET["group_alias_name"];} + elseif (isset($_POST["group_alias_name"])) {$group_alias_name=$_POST["group_alias_name"];} +if (isset($_GET["caller_id_number"])) {$caller_id_number=$_GET["caller_id_number"];} + elseif (isset($_POST["caller_id_number"])) {$caller_id_number=$_POST["caller_id_number"];} +if (isset($_GET["caller_id_name"])) {$caller_id_name=$_GET["caller_id_name"];} + elseif (isset($_POST["caller_id_name"])) {$caller_id_name=$_POST["caller_id_name"];} +if (isset($_GET["agent_allow_group_alias"])) {$agent_allow_group_alias=$_GET["agent_allow_group_alias"];} + elseif (isset($_POST["agent_allow_group_alias"])) {$agent_allow_group_alias=$_POST["agent_allow_group_alias"];} +if (isset($_GET["default_group_alias"])) {$default_group_alias=$_GET["default_group_alias"];} + elseif (isset($_POST["default_group_alias"])) {$default_group_alias=$_POST["default_group_alias"];} +if (isset($_GET["outbound_calls_per_second"])) {$outbound_calls_per_second=$_GET["outbound_calls_per_second"];} + elseif (isset($_POST["outbound_calls_per_second"])) {$outbound_calls_per_second=$_POST["outbound_calls_per_second"];} +if (isset($_GET["shift_enforcement"])) {$shift_enforcement=$_GET["shift_enforcement"];} + elseif (isset($_POST["shift_enforcement"])) {$shift_enforcement=$_POST["shift_enforcement"];} +if (isset($_GET["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_GET["agent_shift_enforcement_override"];} + elseif (isset($_POST["agent_shift_enforcement_override"])) {$agent_shift_enforcement_override=$_POST["agent_shift_enforcement_override"];} +if (isset($_GET["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_GET["manager_shift_enforcement_override"];} + elseif (isset($_POST["manager_shift_enforcement_override"])) {$manager_shift_enforcement_override=$_POST["manager_shift_enforcement_override"];} +if (isset($_GET["export_reports"])) {$export_reports=$_GET["export_reports"];} + elseif (isset($_POST["export_reports"])) {$export_reports=$_POST["export_reports"];} +if (isset($_GET["delete_from_dnc"])) {$delete_from_dnc=$_GET["delete_from_dnc"];} + elseif (isset($_POST["delete_from_dnc"])) {$delete_from_dnc=$_POST["delete_from_dnc"];} +if (isset($_GET["vtiger_search_dead"])) {$vtiger_search_dead=$_GET["vtiger_search_dead"];} + elseif (isset($_POST["vtiger_search_dead"])) {$vtiger_search_dead=$_POST["vtiger_search_dead"];} +if (isset($_GET["vtiger_status_call"])) {$vtiger_status_call=$_GET["vtiger_status_call"];} + elseif (isset($_POST["vtiger_status_call"])) {$vtiger_status_call=$_POST["vtiger_status_call"];} +if (isset($_GET["sale"])) {$sale=$_GET["sale"];} + elseif (isset($_POST["sale"])) {$sale=$_POST["sale"];} +if (isset($_GET["dnc"])) {$dnc=$_GET["dnc"];} + elseif (isset($_POST["dnc"])) {$dnc=$_POST["dnc"];} +if (isset($_GET["customer_contact"])) {$customer_contact=$_GET["customer_contact"];} + elseif (isset($_POST["customer_contact"])) {$customer_contact=$_POST["customer_contact"];} +if (isset($_GET["not_interested"])) {$not_interested=$_GET["not_interested"];} + elseif (isset($_POST["not_interested"])) {$not_interested=$_POST["not_interested"];} +if (isset($_GET["unworkable"])) {$unworkable=$_GET["unworkable"];} + elseif (isset($_POST["unworkable"])) {$unworkable=$_POST["unworkable"];} +if (isset($_GET["user_code"])) {$user_code=$_GET["user_code"];} + elseif (isset($_POST["user_code"])) {$user_code=$_POST["user_code"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["survey_third_digit"])) {$survey_third_digit=$_GET["survey_third_digit"];} + elseif (isset($_POST["survey_third_digit"])) {$survey_third_digit=$_POST["survey_third_digit"];} +if (isset($_GET["survey_fourth_digit"])) {$survey_fourth_digit=$_GET["survey_fourth_digit"];} + elseif (isset($_POST["survey_fourth_digit"])) {$survey_fourth_digit=$_POST["survey_fourth_digit"];} +if (isset($_GET["survey_third_audio_file"])) {$survey_third_audio_file=$_GET["survey_third_audio_file"];} + elseif (isset($_POST["survey_third_audio_file"])) {$survey_third_audio_file=$_POST["survey_third_audio_file"];} +if (isset($_GET["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_GET["survey_fourth_audio_file"];} + elseif (isset($_POST["survey_fourth_audio_file"])) {$survey_fourth_audio_file=$_POST["survey_fourth_audio_file"];} +if (isset($_GET["survey_third_status"])) {$survey_third_status=$_GET["survey_third_status"];} + elseif (isset($_POST["survey_third_status"])) {$survey_third_status=$_POST["survey_third_status"];} +if (isset($_GET["survey_fourth_status"])) {$survey_fourth_status=$_GET["survey_fourth_status"];} + elseif (isset($_POST["survey_fourth_status"])) {$survey_fourth_status=$_POST["survey_fourth_status"];} +if (isset($_GET["survey_third_exten"])) {$survey_third_exten=$_GET["survey_third_exten"];} + elseif (isset($_POST["survey_third_exten"])) {$survey_third_exten=$_POST["survey_third_exten"];} +if (isset($_GET["survey_fourth_exten"])) {$survey_fourth_exten=$_GET["survey_fourth_exten"];} + elseif (isset($_POST["survey_fourth_exten"])) {$survey_fourth_exten=$_POST["survey_fourth_exten"];} +if (isset($_GET["menu_id"])) {$menu_id=$_GET["menu_id"];} + elseif (isset($_POST["menu_id"])) {$menu_id=$_POST["menu_id"];} +if (isset($_GET["menu_name"])) {$menu_name=$_GET["menu_name"];} + elseif (isset($_POST["menu_name"])) {$menu_name=$_POST["menu_name"];} +if (isset($_GET["menu_prompt"])) {$menu_prompt=$_GET["menu_prompt"];} + elseif (isset($_POST["menu_prompt"])) {$menu_prompt=$_POST["menu_prompt"];} +if (isset($_GET["menu_timeout"])) {$menu_timeout=$_GET["menu_timeout"];} + elseif (isset($_POST["menu_timeout"])) {$menu_timeout=$_POST["menu_timeout"];} +if (isset($_GET["menu_timeout_prompt"])) {$menu_timeout_prompt=$_GET["menu_timeout_prompt"];} + elseif (isset($_POST["menu_timeout_prompt"])) {$menu_timeout_prompt=$_POST["menu_timeout_prompt"];} +if (isset($_GET["menu_invalid_prompt"])) {$menu_invalid_prompt=$_GET["menu_invalid_prompt"];} + elseif (isset($_POST["menu_invalid_prompt"])) {$menu_invalid_prompt=$_POST["menu_invalid_prompt"];} +if (isset($_GET["menu_repeat"])) {$menu_repeat=$_GET["menu_repeat"];} + elseif (isset($_POST["menu_repeat"])) {$menu_repeat=$_POST["menu_repeat"];} +if (isset($_GET["menu_time_check"])) {$menu_time_check=$_GET["menu_time_check"];} + elseif (isset($_POST["menu_time_check"])) {$menu_time_check=$_POST["menu_time_check"];} +if (isset($_GET["track_in_vdac"])) {$track_in_vdac=$_GET["track_in_vdac"];} + elseif (isset($_POST["track_in_vdac"])) {$track_in_vdac=$_POST["track_in_vdac"];} +if (isset($_GET["source_menu"])) {$source_menu=$_GET["source_menu"];} + elseif (isset($_POST["source_menu"])) {$source_menu=$_POST["source_menu"];} +if (isset($_GET["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_GET["agentonly_callback_campaign_lock"];} + elseif (isset($_POST["agentonly_callback_campaign_lock"])) {$agentonly_callback_campaign_lock=$_POST["agentonly_callback_campaign_lock"];} +if (isset($_GET["sounds_central_control_active"])) {$sounds_central_control_active=$_GET["sounds_central_control_active"];} + elseif (isset($_POST["sounds_central_control_active"])) {$sounds_central_control_active=$_POST["sounds_central_control_active"];} +if (isset($_GET["sounds_web_server"])) {$sounds_web_server=$_GET["sounds_web_server"];} + elseif (isset($_POST["sounds_web_server"])) {$sounds_web_server=$_POST["sounds_web_server"];} +if (isset($_GET["sounds_web_directory"])) {$sounds_web_directory=$_GET["sounds_web_directory"];} + elseif (isset($_POST["sounds_web_directory"])) {$sounds_web_directory=$_POST["sounds_web_directory"];} +if (isset($_GET["sounds_update"])) {$sounds_update=$_GET["sounds_update"];} + elseif (isset($_POST["sounds_update"])) {$sounds_update=$_POST["sounds_update"];} +if (isset($_GET["active_voicemail_server"])) {$active_voicemail_server=$_GET["active_voicemail_server"];} + elseif (isset($_POST["active_voicemail_server"])) {$active_voicemail_server=$_POST["active_voicemail_server"];} +if (isset($_GET["auto_dial_limit"])) {$auto_dial_limit=$_GET["auto_dial_limit"];} + elseif (isset($_POST["auto_dial_limit"])) {$auto_dial_limit=$_POST["auto_dial_limit"];} +if (isset($_GET["user_territories_active"])) {$user_territories_active=$_GET["user_territories_active"];} + elseif (isset($_POST["user_territories_active"])) {$user_territories_active=$_POST["user_territories_active"];} +if (isset($_GET["vicidial_recording_limit"])) {$vicidial_recording_limit=$_GET["vicidial_recording_limit"];} + elseif (isset($_POST["vicidial_recording_limit"])) {$vicidial_recording_limit=$_POST["vicidial_recording_limit"];} +if (isset($_GET["phone_context"])) {$phone_context=$_GET["phone_context"];} + elseif (isset($_POST["phone_context"])) {$phone_context=$_POST["phone_context"];} +if (isset($_GET["carrier_logging_active"])) {$carrier_logging_active=$_GET["carrier_logging_active"];} + elseif (isset($_POST["carrier_logging_active"])) {$carrier_logging_active=$_POST["carrier_logging_active"];} +if (isset($_GET["drop_lockout_time"])) {$drop_lockout_time=$_GET["drop_lockout_time"];} + elseif (isset($_POST["drop_lockout_time"])) {$drop_lockout_time=$_POST["drop_lockout_time"];} +if (isset($_GET["allow_custom_dialplan"])) {$allow_custom_dialplan=$_GET["allow_custom_dialplan"];} + elseif (isset($_POST["allow_custom_dialplan"])) {$allow_custom_dialplan=$_POST["allow_custom_dialplan"];} +if (isset($_GET["custom_dialplan_entry"])) {$custom_dialplan_entry=$_GET["custom_dialplan_entry"];} + elseif (isset($_POST["custom_dialplan_entry"])) {$custom_dialplan_entry=$_POST["custom_dialplan_entry"];} +if (isset($_GET["phone_ring_timeout"])) {$phone_ring_timeout=$_GET["phone_ring_timeout"];} + elseif (isset($_POST["phone_ring_timeout"])) {$phone_ring_timeout=$_POST["phone_ring_timeout"];} +if (isset($_GET["conf_secret"])) {$conf_secret=$_GET["conf_secret"];} + elseif (isset($_POST["conf_secret"])) {$conf_secret=$_POST["conf_secret"];} +if (isset($_GET["tracking_group"])) {$tracking_group=$_GET["tracking_group"];} + elseif (isset($_POST["tracking_group"])) {$tracking_group=$_POST["tracking_group"];} +if (isset($_GET["no_agent_no_queue"])) {$no_agent_no_queue=$_GET["no_agent_no_queue"];} + elseif (isset($_POST["no_agent_no_queue"])) {$no_agent_no_queue=$_POST["no_agent_no_queue"];} +if (isset($_GET["no_agent_action"])) {$no_agent_action=$_GET["no_agent_action"];} + elseif (isset($_POST["no_agent_action"])) {$no_agent_action=$_POST["no_agent_action"];} +if (isset($_GET["no_agent_action_value"])) {$no_agent_action_value=$_GET["no_agent_action_value"];} + elseif (isset($_POST["no_agent_action_value"])) {$no_agent_action_value=$_POST["no_agent_action_value"];} +if (isset($_GET["quick_transfer_button"])) {$quick_transfer_button=$_GET["quick_transfer_button"];} + elseif (isset($_POST["quick_transfer_button"])) {$quick_transfer_button=$_POST["quick_transfer_button"];} +if (isset($_GET["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_GET["prepopulate_transfer_preset"];} + elseif (isset($_POST["prepopulate_transfer_preset"])) {$prepopulate_transfer_preset=$_POST["prepopulate_transfer_preset"];} +if (isset($_GET["enable_tts_integration"])) {$enable_tts_integration=$_GET["enable_tts_integration"];} + elseif (isset($_POST["enable_tts_integration"])) {$enable_tts_integration=$_POST["enable_tts_integration"];} +if (isset($_GET["tts_id"])) {$tts_id=$_GET["tts_id"];} + elseif (isset($_POST["tts_id"])) {$tts_id=$_POST["tts_id"];} +if (isset($_GET["tts_name"])) {$tts_name=$_GET["tts_name"];} + elseif (isset($_POST["tts_name"])) {$tts_name=$_POST["tts_name"];} +if (isset($_GET["tts_text"])) {$tts_text=$_GET["tts_text"];} + elseif (isset($_POST["tts_text"])) {$tts_text=$_POST["tts_text"];} +if (isset($_GET["drop_rate_group"])) {$drop_rate_group=$_GET["drop_rate_group"];} + elseif (isset($_POST["drop_rate_group"])) {$drop_rate_group=$_POST["drop_rate_group"];} +if (isset($_GET["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_GET["agent_status_viewable_groups"];} + elseif (isset($_POST["agent_status_viewable_groups"])) {$agent_status_viewable_groups=$_POST["agent_status_viewable_groups"];} +if (isset($_GET["agent_status_view_time"])) {$agent_status_view_time=$_GET["agent_status_view_time"];} + elseif (isset($_POST["agent_status_view_time"])) {$agent_status_view_time=$_POST["agent_status_view_time"];} +if (isset($_GET["view_calls_in_queue"])) {$view_calls_in_queue=$_GET["view_calls_in_queue"];} + elseif (isset($_POST["view_calls_in_queue"])) {$view_calls_in_queue=$_POST["view_calls_in_queue"];} +if (isset($_GET["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_GET["view_calls_in_queue_launch"];} + elseif (isset($_POST["view_calls_in_queue_launch"])) {$view_calls_in_queue_launch=$_POST["view_calls_in_queue_launch"];} +if (isset($_GET["grab_calls_in_queue"])) {$grab_calls_in_queue=$_GET["grab_calls_in_queue"];} + elseif (isset($_POST["grab_calls_in_queue"])) {$grab_calls_in_queue=$_POST["grab_calls_in_queue"];} +if (isset($_GET["call_requeue_button"])) {$call_requeue_button=$_GET["call_requeue_button"];} + elseif (isset($_POST["call_requeue_button"])) {$call_requeue_button=$_POST["call_requeue_button"];} +if (isset($_GET["pause_after_each_call"])) {$pause_after_each_call=$_GET["pause_after_each_call"];} + elseif (isset($_POST["pause_after_each_call"])) {$pause_after_each_call=$_POST["pause_after_each_call"];} +if (isset($_GET["no_hopper_dialing"])) {$no_hopper_dialing=$_GET["no_hopper_dialing"];} + elseif (isset($_POST["no_hopper_dialing"])) {$no_hopper_dialing=$_POST["no_hopper_dialing"];} +if (isset($_GET["agent_dial_owner_only"])) {$agent_dial_owner_only=$_GET["agent_dial_owner_only"];} + elseif (isset($_POST["agent_dial_owner_only"])) {$agent_dial_owner_only=$_POST["agent_dial_owner_only"];} +if (isset($_GET["reset_time"])) {$reset_time=$_GET["reset_time"];} + elseif (isset($_POST["reset_time"])) {$reset_time=$_POST["reset_time"];} +if (isset($_GET["allow_alerts"])) {$allow_alerts=$_GET["allow_alerts"];} + elseif (isset($_POST["allow_alerts"])) {$allow_alerts=$_POST["allow_alerts"];} +if (isset($_GET["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_GET["agent_display_dialable_leads"];} + elseif (isset($_POST["agent_display_dialable_leads"])) {$agent_display_dialable_leads=$_POST["agent_display_dialable_leads"];} +if (isset($_GET["vicidial_balance_rank"])) {$vicidial_balance_rank=$_GET["vicidial_balance_rank"];} + elseif (isset($_POST["vicidial_balance_rank"])) {$vicidial_balance_rank=$_POST["vicidial_balance_rank"];} +if (isset($_GET["agent_script_override"])) {$agent_script_override=$_GET["agent_script_override"];} + elseif (isset($_POST["agent_script_override"])) {$agent_script_override=$_POST["agent_script_override"];} +if (isset($_GET["moh_id"])) {$moh_id=$_GET["moh_id"];} + elseif (isset($_POST["moh_id"])) {$moh_id=$_POST["moh_id"];} +if (isset($_GET["moh_name"])) {$moh_name=$_GET["moh_name"];} + elseif (isset($_POST["moh_name"])) {$moh_name=$_POST["moh_name"];} +if (isset($_GET["random"])) {$random=$_GET["random"];} + elseif (isset($_POST["random"])) {$random=$_POST["random"];} +if (isset($_GET["filename"])) {$filename=$_GET["filename"];} + elseif (isset($_POST["filename"])) {$filename=$_POST["filename"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_GET["rebuild_music_on_hold"];} + elseif (isset($_POST["rebuild_music_on_hold"])) {$rebuild_music_on_hold=$_POST["rebuild_music_on_hold"];} +if (isset($_GET["active_agent_login_server"])) {$active_agent_login_server=$_GET["active_agent_login_server"];} + elseif (isset($_POST["active_agent_login_server"])) {$active_agent_login_server=$_POST["active_agent_login_server"];} +if (isset($_GET["enable_second_webform"])) {$enable_second_webform=$_GET["enable_second_webform"];} + elseif (isset($_POST["enable_second_webform"])) {$enable_second_webform=$_POST["enable_second_webform"];} +if (isset($_GET["web_form_address_two"])) {$web_form_address_two=$_GET["web_form_address_two"];} + elseif (isset($_POST["web_form_address_two"])) {$web_form_address_two=$_POST["web_form_address_two"];} +if (isset($_GET["waitforsilence_options"])) {$waitforsilence_options=$_GET["waitforsilence_options"];} + elseif (isset($_POST["waitforsilence_options"])) {$waitforsilence_options=$_POST["waitforsilence_options"];} +if (isset($_GET["campaign_cid_override"])) {$campaign_cid_override=$_GET["campaign_cid_override"];} + elseif (isset($_POST["campaign_cid_override"])) {$campaign_cid_override=$_POST["campaign_cid_override"];} +if (isset($_GET["am_message_exten_override"])) {$am_message_exten_override=$_GET["am_message_exten_override"];} + elseif (isset($_POST["am_message_exten_override"])) {$am_message_exten_override=$_POST["am_message_exten_override"];} +if (isset($_GET["drop_inbound_group_override"])) {$drop_inbound_group_override=$_GET["drop_inbound_group_override"];} + elseif (isset($_POST["drop_inbound_group_override"])) {$drop_inbound_group_override=$_POST["drop_inbound_group_override"];} +if (isset($_GET["agent_select_territories"])) {$agent_select_territories=$_GET["agent_select_territories"];} + elseif (isset($_POST["agent_select_territories"])) {$agent_select_territories=$_POST["agent_select_territories"];} +if (isset($_GET["agent_choose_territories"])) {$agent_choose_territories=$_GET["agent_choose_territories"];} + elseif (isset($_POST["agent_choose_territories"])) {$agent_choose_territories=$_POST["agent_choose_territories"];} +if (isset($_GET["carrier_description"])) {$carrier_description=$_GET["carrier_description"];} + elseif (isset($_POST["carrier_description"])) {$carrier_description=$_POST["carrier_description"];} +if (isset($_GET["delete_vm_after_email"])) {$delete_vm_after_email=$_GET["delete_vm_after_email"];} + elseif (isset($_POST["delete_vm_after_email"])) {$delete_vm_after_email=$_POST["delete_vm_after_email"];} +if (isset($_GET["custom_one"])) {$custom_one=$_GET["custom_one"];} + elseif (isset($_POST["custom_one"])) {$custom_one=$_POST["custom_one"];} +if (isset($_GET["custom_two"])) {$custom_two=$_GET["custom_two"];} + elseif (isset($_POST["custom_two"])) {$custom_two=$_POST["custom_two"];} +if (isset($_GET["custom_three"])) {$custom_three=$_GET["custom_three"];} + elseif (isset($_POST["custom_three"])) {$custom_three=$_POST["custom_three"];} +if (isset($_GET["custom_four"])) {$custom_four=$_GET["custom_four"];} + elseif (isset($_POST["custom_four"])) {$custom_four=$_POST["custom_four"];} +if (isset($_GET["custom_five"])) {$custom_five=$_GET["custom_five"];} + elseif (isset($_POST["custom_five"])) {$custom_five=$_POST["custom_five"];} +if (isset($_GET["crm_popup_login"])) {$crm_popup_login=$_GET["crm_popup_login"];} + elseif (isset($_POST["crm_popup_login"])) {$crm_popup_login=$_POST["crm_popup_login"];} +if (isset($_GET["crm_login_address"])) {$crm_login_address=$_GET["crm_login_address"];} + elseif (isset($_POST["crm_login_address"])) {$crm_login_address=$_POST["crm_login_address"];} +if (isset($_GET["timer_action"])) {$timer_action=$_GET["timer_action"];} + elseif (isset($_POST["timer_action"])) {$timer_action=$_POST["timer_action"];} +if (isset($_GET["timer_action_message"])) {$timer_action_message=$_GET["timer_action_message"];} + elseif (isset($_POST["timer_action_message"])) {$timer_action_message=$_POST["timer_action_message"];} +if (isset($_GET["timer_action_seconds"])) {$timer_action_seconds=$_GET["timer_action_seconds"];} + elseif (isset($_POST["timer_action_seconds"])) {$timer_action_seconds=$_POST["timer_action_seconds"];} +if (isset($_GET["start_call_url"])) {$start_call_url=$_GET["start_call_url"];} + elseif (isset($_POST["start_call_url"])) {$start_call_url=$_POST["start_call_url"];} +if (isset($_GET["dispo_call_url"])) {$dispo_call_url=$_GET["dispo_call_url"];} + elseif (isset($_POST["dispo_call_url"])) {$dispo_call_url=$_POST["dispo_call_url"];} +if (isset($_GET["xferconf_c_number"])) {$xferconf_c_number=$_GET["xferconf_c_number"];} + elseif (isset($_POST["xferconf_c_number"])) {$xferconf_c_number=$_POST["xferconf_c_number"];} +if (isset($_GET["xferconf_d_number"])) {$xferconf_d_number=$_GET["xferconf_d_number"];} + elseif (isset($_POST["xferconf_d_number"])) {$xferconf_d_number=$_POST["xferconf_d_number"];} +if (isset($_GET["xferconf_e_number"])) {$xferconf_e_number=$_GET["xferconf_e_number"];} + elseif (isset($_POST["xferconf_e_number"])) {$xferconf_e_number=$_POST["xferconf_e_number"];} + + if (isset($script_id)) {$script_id= strtoupper($script_id);} + if (isset($lead_filter_id)) {$lead_filter_id = strtoupper($lead_filter_id);} + +if (strlen($dial_status) > 0) + { + $ADD='28'; + $status = $dial_status; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,enable_queuemetrics_logging,enable_vtiger_integration,qc_features_active,outbound_autodial_active,sounds_central_control_active,enable_second_webform,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSenable_queuemetrics_logging = $row[1]; + $SSenable_vtiger_integration = $row[2]; + $SSqc_features_active = $row[3]; + $SSoutbound_autodial_active = $row[4]; + $SSsounds_central_control_active = $row[5]; + $SSenable_second_webform = $row[6]; + $SSuser_territories_active = $row[7]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +###################################################################################################### +###################################################################################################### +####### Form variable filtering for security and data integrity +###################################################################################################### +###################################################################################################### + +if ($non_latin < 1) + { + ### DIGITS ONLY ### + $adaptive_latest_server_time = ereg_replace("[^0-9]","",$adaptive_latest_server_time); + $admin_hangup_enabled = ereg_replace("[^0-9]","",$admin_hangup_enabled); + $admin_hijack_enabled = ereg_replace("[^0-9]","",$admin_hijack_enabled); + $admin_monitor_enabled = ereg_replace("[^0-9]","",$admin_monitor_enabled); + $AFLogging_enabled = ereg_replace("[^0-9]","",$AFLogging_enabled); + $agent_choose_ingroups = ereg_replace("[^0-9]","",$agent_choose_ingroups); + $agentcall_manual = ereg_replace("[^0-9]","",$agentcall_manual); + $agentonly_callbacks = ereg_replace("[^0-9]","",$agentonly_callbacks); + $AGI_call_logging_enabled = ereg_replace("[^0-9]","",$AGI_call_logging_enabled); + $allcalls_delay = ereg_replace("[^0-9]","",$allcalls_delay); + $alter_agent_interface_options = ereg_replace("[^0-9]","",$alter_agent_interface_options); + $answer_transfer_agent = ereg_replace("[^0-9]","",$answer_transfer_agent); + $ast_admin_access = ereg_replace("[^0-9]","",$ast_admin_access); + $ast_delete_phones = ereg_replace("[^0-9]","",$ast_delete_phones); + $attempt_delay = ereg_replace("[^0-9]","",$attempt_delay); + $attempt_maximum = ereg_replace("[^0-9]","",$attempt_maximum); + $auto_dial_next_number = ereg_replace("[^0-9]","",$auto_dial_next_number); + $balance_trunks_offlimits = ereg_replace("[^0-9]","",$balance_trunks_offlimits); + $call_parking_enabled = ereg_replace("[^0-9]","",$call_parking_enabled); + $CallerID_popup_enabled = ereg_replace("[^0-9]","",$CallerID_popup_enabled); + $campaign_detail = ereg_replace("[^0-9]","",$campaign_detail); + $campaign_rec_exten = ereg_replace("[^0-9]","",$campaign_rec_exten); + $campaign_vdad_exten = ereg_replace("[^0-9]","",$campaign_vdad_exten); + $change_agent_campaign = ereg_replace("[^0-9]","",$change_agent_campaign); + $closer_default_blended = ereg_replace("[^0-9]","",$closer_default_blended); + $conf_exten = ereg_replace("[^0-9]","",$conf_exten); + $conf_on_extension = ereg_replace("[^0-9]","",$conf_on_extension); + $conferencing_enabled = ereg_replace("[^0-9]","",$conferencing_enabled); + $ct_default_start = ereg_replace("[^0-9]","",$ct_default_start); + $ct_default_stop = ereg_replace("[^0-9]","",$ct_default_stop); + $ct_friday_start = ereg_replace("[^0-9]","",$ct_friday_start); + $ct_friday_stop = ereg_replace("[^0-9]","",$ct_friday_stop); + $ct_monday_start = ereg_replace("[^0-9]","",$ct_monday_start); + $ct_monday_stop = ereg_replace("[^0-9]","",$ct_monday_stop); + $ct_saturday_start = ereg_replace("[^0-9]","",$ct_saturday_start); + $ct_saturday_stop = ereg_replace("[^0-9]","",$ct_saturday_stop); + $ct_sunday_start = ereg_replace("[^0-9]","",$ct_sunday_start); + $ct_sunday_stop = ereg_replace("[^0-9]","",$ct_sunday_stop); + $ct_thursday_start = ereg_replace("[^0-9]","",$ct_thursday_start); + $ct_thursday_stop = ereg_replace("[^0-9]","",$ct_thursday_stop); + $ct_tuesday_start = ereg_replace("[^0-9]","",$ct_tuesday_start); + $ct_tuesday_stop = ereg_replace("[^0-9]","",$ct_tuesday_stop); + $ct_wednesday_start = ereg_replace("[^0-9]","",$ct_wednesday_start); + $ct_wednesday_stop = ereg_replace("[^0-9]","",$ct_wednesday_stop); + $DBX_port = ereg_replace("[^0-9]","",$DBX_port); + $DBY_port = ereg_replace("[^0-9]","",$DBY_port); + $dedicated_trunks = ereg_replace("[^0-9]","",$dedicated_trunks); + $delete_call_times = ereg_replace("[^0-9]","",$delete_call_times); + $delete_campaigns = ereg_replace("[^0-9]","",$delete_campaigns); + $delete_filters = ereg_replace("[^0-9]","",$delete_filters); + $delete_ingroups = ereg_replace("[^0-9]","",$delete_ingroups); + $delete_lists = ereg_replace("[^0-9]","",$delete_lists); + $delete_remote_agents = ereg_replace("[^0-9]","",$delete_remote_agents); + $delete_scripts = ereg_replace("[^0-9]","",$delete_scripts); + $delete_user_groups = ereg_replace("[^0-9]","",$delete_user_groups); + $delete_users = ereg_replace("[^0-9]","",$delete_users); + $dial_timeout = ereg_replace("[^0-9]","",$dial_timeout); + $dialplan_number = ereg_replace("[^0-9]","",$dialplan_number); + $enable_fast_refresh = ereg_replace("[^0-9]","",$enable_fast_refresh); + $enable_persistant_mysql = ereg_replace("[^0-9]","",$enable_persistant_mysql); + $fast_refresh_rate = ereg_replace("[^0-9]","",$fast_refresh_rate); + $hopper_level = ereg_replace("[^0-9]","",$hopper_level); + $hotkey = ereg_replace("[^0-9]","",$hotkey); + $hotkeys_active = ereg_replace("[^0-9]","",$hotkeys_active); + $list_id = ereg_replace("[^0-9]","",$list_id); + $load_leads = ereg_replace("[^0-9]","",$load_leads); + $max_vicidial_trunks = ereg_replace("[^0-9]","",$max_vicidial_trunks); + $modify_call_times = ereg_replace("[^0-9]","",$modify_call_times); + $modify_users = ereg_replace("[^0-9]","",$modify_users); + $modify_campaigns = ereg_replace("[^0-9]","",$modify_campaigns); + $modify_lists = ereg_replace("[^0-9]","",$modify_lists); + $modify_scripts = ereg_replace("[^0-9]","",$modify_scripts); + $modify_filters = ereg_replace("[^0-9]","",$modify_filters); + $modify_ingroups = ereg_replace("[^0-9]","",$modify_ingroups); + $modify_usergroups = ereg_replace("[^0-9]","",$modify_usergroups); + $modify_remoteagents = ereg_replace("[^0-9]","",$modify_remoteagents); + $modify_servers = ereg_replace("[^0-9]","",$modify_servers); + $view_reports = ereg_replace("[^0-9]","",$view_reports); + $modify_leads = ereg_replace("[^0-9]","",$modify_leads); + $monitor_prefix = ereg_replace("[^0-9]","",$monitor_prefix); + $number_of_lines = ereg_replace("[^0-9]","",$number_of_lines); + $old_conf_exten = ereg_replace("[^0-9]","",$old_conf_exten); + $outbound_cid = ereg_replace("[^0-9]","",$outbound_cid); + $park_ext = ereg_replace("[^0-9]","",$park_ext); + $park_on_extension = ereg_replace("[^0-9]","",$park_on_extension); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $QUEUE_ACTION_enabled = ereg_replace("[^0-9]","",$QUEUE_ACTION_enabled); + $recording_exten = ereg_replace("[^0-9]","",$recording_exten); + $remote_agent_id = ereg_replace("[^0-9]","",$remote_agent_id); + $telnet_port = ereg_replace("[^0-9]","",$telnet_port); + $updater_check_enabled = ereg_replace("[^0-9]","",$updater_check_enabled); + $user_level = ereg_replace("[^0-9]","",$user_level); + $user_start = ereg_replace("[^0-9]","",$user_start); + $user_switching_enabled = ereg_replace("[^0-9]","",$user_switching_enabled); + $VDstop_rec_after_each_call = ereg_replace("[^0-9]","",$VDstop_rec_after_each_call); + $VICIDIAL_park_on_extension = ereg_replace("[^0-9]","",$VICIDIAL_park_on_extension); + $vicidial_recording = ereg_replace("[^0-9]","",$vicidial_recording); + $vicidial_transfers = ereg_replace("[^0-9]","",$vicidial_transfers); + $voicemail_button_enabled = ereg_replace("[^0-9]","",$voicemail_button_enabled); + $voicemail_dump_exten = ereg_replace("[^0-9]","",$voicemail_dump_exten); + $voicemail_ext = ereg_replace("[^0-9]","",$voicemail_ext); + $voicemail_exten = ereg_replace("[^0-9]","",$voicemail_exten); + $voicemail_id = ereg_replace("[^0-9]","",$voicemail_id); + $wrapup_seconds = ereg_replace("[^0-9]","",$wrapup_seconds); + $use_non_latin = ereg_replace("[^0-9]","",$use_non_latin); + $webroot_writable = ereg_replace("[^0-9]","",$webroot_writable); + $enable_queuemetrics_logging = ereg_replace("[^0-9]","",$enable_queuemetrics_logging); + $enable_sipsak_messages = ereg_replace("[^0-9]","",$enable_sipsak_messages); + $allow_sipsak_messages = ereg_replace("[^0-9]","",$allow_sipsak_messages); + $mix_container_item = ereg_replace("[^0-9]","",$mix_container_item); + $prompt_interval = ereg_replace("[^0-9]","",$prompt_interval); + $agent_alert_delay = ereg_replace("[^0-9]","",$agent_alert_delay); + $manual_dial_list_id = ereg_replace("[^0-9]","",$manual_dial_list_id); + $qc_user_level = ereg_replace("[^0-9]","",$qc_user_level); + $qc_pass = ereg_replace("[^0-9]","",$qc_pass); + $qc_finish = ereg_replace("[^0-9]","",$qc_finish); + $qc_commit = ereg_replace("[^0-9]","",$qc_commit); + $shift_start_time = ereg_replace("[^0-9]","",$shift_start_time); + $timeclock_end_of_day = ereg_replace("[^0-9]","",$timeclock_end_of_day); + $survey_xfer_exten = ereg_replace("[^0-9]","",$survey_xfer_exten); + $add_timeclock_log = ereg_replace("[^0-9]","",$add_timeclock_log); + $modify_timeclock_log = ereg_replace("[^0-9]","",$modify_timeclock_log); + $delete_timeclock_log = ereg_replace("[^0-9]","",$delete_timeclock_log); + $vdc_agent_api_access = ereg_replace("[^0-9]","",$vdc_agent_api_access); + $vdc_agent_api_active = ereg_replace("[^0-9]","",$vdc_agent_api_active); + $hold_time_option_seconds = ereg_replace("[^0-9]","",$hold_time_option_seconds); + $hold_time_option_callback_list_id = ereg_replace("[^0-9]","",$hold_time_option_callback_list_id); + $did_id = ereg_replace("[^0-9]","",$did_id); + $source_did = ereg_replace("[^0-9]","",$source_did); + $modify_inbound_dids = ereg_replace("[^0-9]","",$modify_inbound_dids); + $delete_inbound_dids = ereg_replace("[^0-9]","",$delete_inbound_dids); + $answer_sec_pct_rt_stat_one = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_one); + $answer_sec_pct_rt_stat_two = ereg_replace("[^0-9]","",$answer_sec_pct_rt_stat_two); + $enable_vtiger_integration = ereg_replace("[^0-9]","",$enable_vtiger_integration); + $qc_features_active = ereg_replace("[^0-9]","",$qc_features_active); + $outbound_autodial_active = ereg_replace("[^0-9]","",$outbound_autodial_active); + $download_lists = ereg_replace("[^0-9]","",$download_lists); + $caller_id_number = ereg_replace("[^0-9]","",$caller_id_number); + $outbound_calls_per_second = ereg_replace("[^0-9]","",$outbound_calls_per_second); + $manager_shift_enforcement_override = ereg_replace("[^0-9]","",$manager_shift_enforcement_override); + $export_reports = ereg_replace("[^0-9]","",$export_reports); + $delete_from_dnc = ereg_replace("[^0-9]","",$delete_from_dnc); + $menu_timeout = ereg_replace("[^0-9]","",$menu_timeout); + $menu_time_check = ereg_replace("[^0-9]","",$menu_time_check); + $track_in_vdac = ereg_replace("[^0-9]","",$track_in_vdac); + $menu_repeat = ereg_replace("[^0-9]","",$menu_repeat); + $agentonly_callback_campaign_lock = ereg_replace("[^0-9]","",$agentonly_callback_campaign_lock); + $sounds_central_control_active = ereg_replace("[^0-9]","",$sounds_central_control_active); + $user_territories_active = ereg_replace("[^0-9]","",$user_territories_active); + $vicidial_recording_limit = ereg_replace("[^0-9]","",$vicidial_recording_limit); + $allow_custom_dialplan = ereg_replace("[^0-9]","",$allow_custom_dialplan); + $phone_ring_timeout = ereg_replace("[^0-9]","",$phone_ring_timeout); + $enable_tts_integration = ereg_replace("[^0-9]","",$enable_tts_integration); + $allow_alerts = ereg_replace("[^0-9]","",$allow_alerts); + $vicidial_balance_rank = ereg_replace("[^0-9]","",$vicidial_balance_rank); + $rank = ereg_replace("[^0-9]","",$rank); + $enable_second_webform = ereg_replace("[^0-9]","",$enable_second_webform); + $campaign_cid_override = ereg_replace("[^0-9]","",$campaign_cid_override); + $agent_choose_territories = ereg_replace("[^0-9]","",$agent_choose_territories); + $timer_action_seconds = ereg_replace("[^0-9]","",$timer_action_seconds); + + $drop_call_seconds = ereg_replace("[^-0-9]","",$drop_call_seconds); + + ### DIGITS and COLONS + $shift_length = ereg_replace("[^\:0-9]","",$shift_length); + + ### DIGITS and HASHES and STARS + $survey_dtmf_digits = ereg_replace("[^\#\*0-9]","",$survey_dtmf_digits); + $survey_ni_digit = ereg_replace("[^\#\*0-9]","",$survey_ni_digit); + + ### DIGITS and DASHES + $group_rank = ereg_replace("[^-0-9]","",$group_rank); + $campaign_rank = ereg_replace("[^-0-9]","",$campaign_rank); + $queue_priority = ereg_replace("[^-0-9]","",$queue_priority); + + ### DIGITS and NEWLINES + $phone_numbers = ereg_replace("[^X\n0-9]","",$phone_numbers); + + ### Y or N ONLY ### + $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); + $selectable = ereg_replace("[^NY]","",$selectable); + $reset_list = ereg_replace("[^NY]","",$reset_list); + $fronter_display = ereg_replace("[^NY]","",$fronter_display); + $omit_phone_code = ereg_replace("[^NY]","",$omit_phone_code); + $available_only_ratio_tally = ereg_replace("[^NY]","",$available_only_ratio_tally); + $sys_perf_log = ereg_replace("[^NY]","",$sys_perf_log); + $vicidial_balance_active = ereg_replace("[^NY]","",$vicidial_balance_active); + $vd_server_logs = ereg_replace("[^NY]","",$vd_server_logs); + $campaign_stats_refresh = ereg_replace("[^NY]","",$campaign_stats_refresh); + $disable_alter_custdata = ereg_replace("[^NY]","",$disable_alter_custdata); + $no_hopper_leads_logins = ereg_replace("[^NY]","",$no_hopper_leads_logins); + $human_answered = ereg_replace("[^NY]","",$human_answered); + $tovdad_display = ereg_replace("[^NY]","",$tovdad_display); + $campaign_allow_inbound = ereg_replace("[^NY]","",$campaign_allow_inbound); + $display_queue_count = ereg_replace("[^NY]","",$display_queue_count); + $qc_show_recording = ereg_replace("[^NY]","",$qc_show_recording); + $sale_category = ereg_replace("[^NY]","",$sale_category); + $dead_lead_category = ereg_replace("[^NY]","",$dead_lead_category); + $agent_extended_alt_dial = ereg_replace("[^NY]","",$agent_extended_alt_dial); + $play_place_in_line = ereg_replace("[^NY]","",$play_place_in_line); + $play_estimate_hold_time = ereg_replace("[^NY]","",$play_estimate_hold_time); + $no_delay_call_route = ereg_replace("[^NY]","",$no_delay_call_route); + $did_active = ereg_replace("[^NY]","",$did_active); + $active_asterisk_server = ereg_replace("[^NY]","",$active_asterisk_server); + $generate_vicidial_conf = ereg_replace("[^NY]","",$generate_vicidial_conf); + $rebuild_conf_files = ereg_replace("[^NY]","",$rebuild_conf_files); + $agent_allow_group_alias = ereg_replace("[^NY]","",$agent_allow_group_alias); + $vtiger_status_call = ereg_replace("[^NY]","",$vtiger_status_call); + $sale = ereg_replace("[^NY]","",$sale); + $dnc = ereg_replace("[^NY]","",$dnc); + $customer_contact = ereg_replace("[^NY]","",$customer_contact); + $not_interested = ereg_replace("[^NY]","",$not_interested); + $unworkable = ereg_replace("[^NY]","",$unworkable); + $sounds_update = ereg_replace("[^NY]","",$sounds_update); + $carrier_logging_active = ereg_replace("[^NY]","",$carrier_logging_active); + $agent_status_view_time = ereg_replace("[^NY]","",$agent_status_view_time); + $no_hopper_dialing = ereg_replace("[^NY]","",$no_hopper_dialing); + $agent_display_dialable_leads = ereg_replace("[^NY]","",$agent_display_dialable_leads); + $random = ereg_replace("[^NY]","",$random); + $rebuild_music_on_hold = ereg_replace("[^NY]","",$rebuild_music_on_hold); + $active_agent_login_server = ereg_replace("[^NY]","",$active_agent_login_server); + $agent_select_territories = ereg_replace("[^NY]","",$agent_select_territories); + $delete_vm_after_email = ereg_replace("[^NY]","",$delete_vm_after_email); + $crm_popup_login = ereg_replace("[^NY]","",$crm_popup_login); + + $qc_enabled = ereg_replace("[^0-9NY]","",$qc_enabled); + $active = ereg_replace("[^0-9NY]","",$active); + + + ### ALPHA-NUMERIC ONLY ### + $script_id = ereg_replace("[^0-9a-zA-Z]","",$script_id); + $agent_script_override = ereg_replace("[^0-9a-zA-Z]","",$agent_script_override); + $campaign_script = ereg_replace("[^0-9a-zA-Z]","",$campaign_script); + $submit = ereg_replace("[^0-9a-zA-Z]","",$submit); + $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); + $scheduled_callbacks = ereg_replace("[^0-9a-zA-Z]","",$scheduled_callbacks); + $concurrent_transfers = ereg_replace("[^0-9a-zA-Z]","",$concurrent_transfers); + $billable = ereg_replace("[^0-9a-zA-Z]","",$billable); + $pause_code = ereg_replace("[^0-9a-zA-Z]","",$pause_code); + $vicidial_recording_override = ereg_replace("[^0-9a-zA-Z]","",$vicidial_recording_override); + $ingroup_recording_override = ereg_replace("[^0-9a-zA-Z]","",$ingroup_recording_override); + $queuemetrics_log_id = ereg_replace("[^0-9a-zA-Z]","",$queuemetrics_log_id); + $after_hours_exten = ereg_replace("[^0-9a-zA-Z]","",$after_hours_exten); + $after_hours_voicemail = ereg_replace("[^0-9a-zA-Z]","",$after_hours_voicemail); + $qc_script = ereg_replace("[^0-9a-zA-Z]","",$qc_script); + $code = ereg_replace("[^0-9a-zA-Z]","",$code); + $survey_no_response_action = ereg_replace("[^0-9a-zA-Z]","",$survey_no_response_action); + $survey_ni_status = ereg_replace("[^0-9a-zA-Z]","",$survey_ni_status); + $qc_get_record_launch = ereg_replace("[^0-9a-zA-Z]","",$qc_get_record_launch); + $agent_pause_codes_active = ereg_replace("[^0-9a-zA-Z]","",$agent_pause_codes_active); + $three_way_dial_prefix = ereg_replace("[^0-9a-zA-Z]","",$three_way_dial_prefix); + $shift_enforcement = ereg_replace("[^0-9a-zA-Z]","",$shift_enforcement); + $agent_shift_enforcement_override = ereg_replace("[^0-9a-zA-Z]","",$agent_shift_enforcement_override); + $survey_third_status = ereg_replace("[^0-9a-zA-Z]","",$survey_third_status); + $survey_fourth_status = ereg_replace("[^0-9a-zA-Z]","",$survey_fourth_status); + $sounds_web_directory = ereg_replace("[^0-9a-zA-Z]","",$sounds_web_directory); + $disable_alter_custphone = ereg_replace("[^0-9a-zA-Z]","",$disable_alter_custphone); + $view_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue); + $view_calls_in_queue_launch = ereg_replace("[^0-9a-zA-Z]","",$view_calls_in_queue_launch); + $grab_calls_in_queue = ereg_replace("[^0-9a-zA-Z]","",$grab_calls_in_queue); + $call_requeue_button = ereg_replace("[^0-9a-zA-Z]","",$call_requeue_button); + $pause_after_each_call = ereg_replace("[^0-9a-zA-Z]","",$pause_after_each_call); + $use_internal_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_internal_dnc); + $use_campaign_dnc = ereg_replace("[^0-9a-zA-Z]","",$use_campaign_dnc); + + ### DIGITS and Dots + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $auto_dial_level = ereg_replace("[^\.0-9]","",$auto_dial_level); + $adaptive_maximum_level = ereg_replace("[^\.0-9]","",$adaptive_maximum_level); + $phone_ip = ereg_replace("[^\.0-9]","",$phone_ip); + $old_server_ip = ereg_replace("[^\.0-9]","",$old_server_ip); + $computer_ip = ereg_replace("[^\.0-9]","",$computer_ip); + $queuemetrics_server_ip = ereg_replace("[^\.0-9]","",$queuemetrics_server_ip); + $vtiger_server_ip = ereg_replace("[^\.0-9]","",$vtiger_server_ip); + $active_voicemail_server = ereg_replace("[^\.0-9]","",$active_voicemail_server); + $auto_dial_limit = ereg_replace("[^\.0-9]","",$auto_dial_limit); + $adaptive_dropped_percentage = ereg_replace("[^\.0-9]","",$adaptive_dropped_percentage); + $drop_lockout_time = ereg_replace("[^\.0-9]","",$drop_lockout_time); + + ### ALPHA-NUMERIC and spaces and hash and star and comma + $xferconf_a_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_a_dtmf); + $xferconf_b_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_b_dtmf); + $xferconf_c_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_c_dtmf); + $xferconf_d_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_d_dtmf); + $xferconf_e_dtmf = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$xferconf_e_dtmf); + $survey_third_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_digit); + $survey_fourth_digit = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_digit); + $survey_third_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_third_exten); + $survey_fourth_exten = ereg_replace("[^ \,\*\#0-9a-zA-Z]","",$survey_fourth_exten); + + ### ALPHACAPS-NUMERIC + $xferconf_a_number = ereg_replace("[^0-9A-Z]","",$xferconf_a_number); + $xferconf_b_number = ereg_replace("[^0-9A-Z]","",$xferconf_b_number); + + ### ALPHA-NUMERIC and underscore and dash + $agi_output = ereg_replace("[^-_0-9a-zA-Z]","",$agi_output); + $ASTmgrSECRET = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrSECRET); + $ASTmgrUSERNAME = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAME); + $ASTmgrUSERNAMElisten = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMElisten); + $ASTmgrUSERNAMEsend = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEsend); + $ASTmgrUSERNAMEupdate = ereg_replace("[^-_0-9a-zA-Z]","",$ASTmgrUSERNAMEupdate); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$campaign_id); + $CoNfIrM = ereg_replace("[^-_0-9a-zA-Z]","",$CoNfIrM); + $DBX_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_database); + $DBX_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_pass); + $DBX_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBX_user); + $DBY_database = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_database); + $DBY_pass = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_pass); + $DBY_user = ereg_replace("[^-_0-9a-zA-Z]","",$DBY_user); + $dial_method = ereg_replace("[^-_0-9a-zA-Z]","",$dial_method); + $dial_status_a = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_a); + $dial_status_b = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_b); + $dial_status_c = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_c); + $dial_status_d = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_d); + $dial_status_e = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status_e); + $ext_context = ereg_replace("[^-_0-9a-zA-Z]","",$ext_context); + $group_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_id); + $lead_filter_id = ereg_replace("[^-_0-9a-zA-Z]","",$lead_filter_id); + $local_call_time = ereg_replace("[^-_0-9a-zA-Z]","",$local_call_time); + $login = ereg_replace("[^-_0-9a-zA-Z]","",$login); + $login_campaign = ereg_replace("[^-_0-9a-zA-Z]","",$login_campaign); + $login_pass = ereg_replace("[^-_0-9a-zA-Z]","",$login_pass); + $login_user = ereg_replace("[^-_0-9a-zA-Z]","",$login_user); + $next_agent_call = ereg_replace("[^-_0-9a-zA-Z]","",$next_agent_call); + $old_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_campaign_id); + $old_server_id = ereg_replace("[^-_0-9a-zA-Z]","",$old_server_id); + $OLDuser_group = ereg_replace("[^-_0-9a-zA-Z]","",$OLDuser_group); + $park_file_name = ereg_replace("[^-_0-9a-zA-Z]","",$park_file_name); + $pass = ereg_replace("[^-_0-9a-zA-Z]","",$pass); + $phone_login = ereg_replace("[^-_0-9a-zA-Z]","",$phone_login); + $phone_pass = ereg_replace("[^-_0-9a-zA-Z]","",$phone_pass); + $PHP_AUTH_PW = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("[^-_0-9a-zA-Z]","",$PHP_AUTH_USER); + $protocol = ereg_replace("[^-_0-9a-zA-Z]","",$protocol); + $server_id = ereg_replace("[^-_0-9a-zA-Z]","",$server_id); + $stage = ereg_replace("[^-_0-9a-zA-Z]","",$stage); + $state_rule = ereg_replace("[^-_0-9a-zA-Z]","",$state_rule); + $status = ereg_replace("[^-_0-9a-zA-Z]","",$status); + $trunk_restriction = ereg_replace("[^-_0-9a-zA-Z]","",$trunk_restriction); + $user = ereg_replace("[^-_0-9a-zA-Z]","",$user); + $user_group = ereg_replace("[^-_0-9a-zA-Z]","",$user_group); + $VICIDIAL_park_on_filename = ereg_replace("[^-_0-9a-zA-Z]","",$VICIDIAL_park_on_filename); + $auto_alt_dial = ereg_replace("[^-_0-9a-zA-Z]","",$auto_alt_dial); + $dial_status = ereg_replace("[^-_0-9a-zA-Z]","",$dial_status); + $queuemetrics_eq_prepend = ereg_replace("[^-_0-9a-zA-Z]","",$queuemetrics_eq_prepend); + $vicidial_agent_disable = ereg_replace("[^-_0-9a-zA-Z]","",$vicidial_agent_disable); + $alter_custdata_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custdata_override); + $list_order_mix = ereg_replace("[^-_0-9a-zA-Z]","",$list_order_mix); + $vcl_id = ereg_replace("[^-_0-9a-zA-Z]","",$vcl_id); + $mix_method = ereg_replace("[^-_0-9a-zA-Z]","",$mix_method); + $category = ereg_replace("[^-_0-9a-zA-Z]","",$category); + $vsc_id = ereg_replace("[^-_0-9a-zA-Z]","",$vsc_id); + $moh_context = ereg_replace("[^-_0-9a-zA-Z]","",$moh_context); + $source_campaign_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_campaign_id); + $source_user_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_user_id); + $source_group_id = ereg_replace("[^-_0-9a-zA-Z]","",$source_group_id); + $default_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$default_xfer_group); + $drop_exten = ereg_replace("[^-_0-9a-zA-Z]","",$drop_exten); + $safe_harbor_exten = ereg_replace("[^-_0-9a-zA-Z]","",$safe_harbor_exten); + $drop_action = ereg_replace("[^-_0-9a-zA-Z]","",$drop_action); + $drop_inbound_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group); + $afterhours_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$afterhours_xfer_group); + $after_hours_action = ereg_replace("[^-_0-9a-zA-Z]","",$after_hours_action); + $alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$alias_id); + $shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$shift_id); + $qc_shift_id = ereg_replace("[^-_0-9a-zA-Z]","",$qc_shift_id); + $survey_first_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_first_audio_file); + $survey_opt_in_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_opt_in_audio_file); + $survey_ni_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_ni_audio_file); + $survey_method = ereg_replace("[^-_0-9a-zA-Z]","",$survey_method); + $alter_custphone_override = ereg_replace("[^-_0-9a-zA-Z]","",$alter_custphone_override); + $manual_dial_filter = ereg_replace("[^-_0-9a-zA-Z]","",$manual_dial_filter); + $agent_clipboard_copy = ereg_replace("[^-_0-9a-zA-Z]","",$agent_clipboard_copy); + $hold_time_option = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option); + $hold_time_option_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_xfer_group); + $hold_recall_xfer_group = ereg_replace("[^-_0-9a-zA-Z]","",$hold_recall_xfer_group); + $play_welcome_message = ereg_replace("[^-_0-9a-zA-Z]","",$play_welcome_message); + $did_route = ereg_replace("[^-_0-9a-zA-Z]","",$did_route); + $user_unavailable_action = ereg_replace("[^-_0-9a-zA-Z]","",$user_unavailable_action); + $user_route_settings_ingroup = ereg_replace("[^-_0-9a-zA-Z]","",$user_route_settings_ingroup); + $call_handle_method = ereg_replace("[^-_0-9a-zA-Z]","",$call_handle_method); + $agent_search_method = ereg_replace("[^-_0-9a-zA-Z]","",$agent_search_method); + $hold_time_option_voicemail = ereg_replace("[^-_0-9a-zA-Z]","",$hold_time_option_voicemail); + $exten_context = ereg_replace("[^-_0-9a-zA-Z]","",$exten_context); + $three_way_call_cid = ereg_replace("[^-_0-9a-zA-Z]","",$three_way_call_cid); + $web_form_target = ereg_replace("[^-_0-9a-zA-Z]","",$web_form_target); + $recording_web_link = ereg_replace("[^-_0-9a-zA-Z]","",$recording_web_link); + $vtiger_search_category = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_category); + $vtiger_create_call_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_call_record); + $vtiger_create_lead_record = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_create_lead_record); + $vtiger_screen_login = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_screen_login); + $cpd_amd_action = ereg_replace("[^-_0-9a-zA-Z]","",$cpd_amd_action); + $template_id = ereg_replace("[^-_0-9a-zA-Z]","",$template_id); + $carrier_id = ereg_replace("[^-_0-9a-zA-Z]","",$carrier_id); + $group_alias_id = ereg_replace("[^-_0-9a-zA-Z]","",$group_alias_id); + $default_group_alias = ereg_replace("[^-_0-9a-zA-Z]","",$default_group_alias); + $vtiger_search_dead = ereg_replace("[^-_0-9a-zA-Z]","",$vtiger_search_dead); + $survey_third_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_third_audio_file); + $survey_fourth_audio_file = ereg_replace("[^-_0-9a-zA-Z]","",$survey_fourth_audio_file); + $menu_id = ereg_replace("[^-_0-9a-zA-Z]","",$menu_id); + $source_menu = ereg_replace("[^-_0-9a-zA-Z]","",$source_menu); + $call_time_id = ereg_replace("[^-_0-9a-zA-Z]","",$call_time_id); + $phone_context = ereg_replace("[^-_0-9a-zA-Z]","",$phone_context); + $conf_secret = ereg_replace("[^-_0-9a-zA-Z]","",$conf_secret); + $tracking_group = ereg_replace("[^-_0-9a-zA-Z]","",$tracking_group); + $no_agent_no_queue = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_no_queue); + $no_agent_action = ereg_replace("[^-_0-9a-zA-Z]","",$no_agent_action); + $quick_transfer_button = ereg_replace("[^-_0-9a-zA-Z]","",$quick_transfer_button); + $prepopulate_transfer_preset = ereg_replace("[^-_0-9a-zA-Z]","",$prepopulate_transfer_preset); + $tts_id = ereg_replace("[^-_0-9a-zA-Z]","",$tts_id); + $drop_rate_group = ereg_replace("[^-_0-9a-zA-Z]","",$drop_rate_group); + $agent_dial_owner_only = ereg_replace("[^-_0-9a-zA-Z]","",$agent_dial_owner_only); + $reset_time = ereg_replace("[^-_0-9a-zA-Z]","",$reset_time); + $moh_id = ereg_replace("[^-_0-9a-zA-Z]","",$moh_id); + $drop_inbound_group_override = ereg_replace("[^-_0-9a-zA-Z]","",$drop_inbound_group_override); + $timer_action = ereg_replace("[^-_0-9a-zA-Z]","",$timer_action); + + ### ALPHA-NUMERIC and underscore and dash and slash and dot + $menu_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_prompt); + $menu_timeout_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_timeout_prompt); + $menu_invalid_prompt = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$menu_invalid_prompt); + $after_hours_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$after_hours_message_filename); + $welcome_message_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$welcome_message_filename); + $onhold_prompt_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$onhold_prompt_filename); + $hold_time_option_callback_filename = ereg_replace("[^-\/\|\._0-9a-zA-Z]","",$hold_time_option_callback_filename); + $agent_alert_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$agent_alert_exten); + $filename = ereg_replace("[^-\/\._0-9a-zA-Z]","",$filename); + $am_message_exten = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten); + $am_message_exten_override = ereg_replace("[^-\|\/\._0-9a-zA-Z]","",$am_message_exten_override); + + ### ALPHA-NUMERIC and underscore and dash and comma + $logins_list = ereg_replace("[^-\,\_0-9a-zA-Z]","",$logins_list); + $forced_timeclock_login = ereg_replace("[^-\,\_0-9a-zA-Z]","",$forced_timeclock_login); + + ### ALPHA-NUMERIC and dots + $sounds_web_server = ereg_replace("[^\.0-9a-zA-Z]","",$sounds_web_server); + ### 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 hash and star and dot and underscore + $hold_time_option_exten = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$hold_time_option_exten); + $did_pattern = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$did_pattern); + $voicemail_ext = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$voicemail_ext); + $phone = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone); + $phone_code = ereg_replace("[^\*\#\.\_0-9a-zA-Z]","",$phone_code); + + ### ALPHA-NUMERIC and spaces dots, commas, dashes, underscores + $adaptive_dl_diff_target = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_dl_diff_target); + $adaptive_intensity = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$adaptive_intensity); + $asterisk_version = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$asterisk_version); + $call_time_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_comments); + $call_time_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$call_time_name); + $campaign_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_name); + $campaign_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_rec_filename); + $ingroup_rec_filename = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$ingroup_rec_filename); + $company = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$company); + $full_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$full_name); + $fullname = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$fullname); + $group_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_name); + $HKstatus = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$HKstatus); + $lead_filter_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_comments); + $lead_filter_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$lead_filter_name); + $list_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_name); + $local_gmt = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$local_gmt); + $phone_type = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$phone_type); + $picture = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$picture); + $script_comments = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_comments); + $script_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$script_name); + $server_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$server_description); + $status = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status); + $status_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$status_name); + $wrapup_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$wrapup_message); + $pause_code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$pause_code_name); + $campaign_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$campaign_description); + $list_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$list_description); + $vcl_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vcl_name); + $vsc_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_name); + $vsc_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$vsc_description); + $code_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$code_name); + $alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alias_name); + $shift_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$shift_name); + $did_description = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$did_description); + $alt_server_ip = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$alt_server_ip); + $template_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$template_name); + $carrier_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$carrier_name); + $group_alias_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$group_alias_name); + $caller_id_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$caller_id_name); + $user_code = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$user_code); + $territory = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$territory); + $tts_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$tts_name); + $moh_name = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$moh_name); + $timer_action_message = ereg_replace("[^ \.\,-\_0-9a-zA-Z]","",$timer_action_message); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and dot + $call_out_number_group = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$call_out_number_group); + $client_browser = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$client_browser); + $DBX_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBX_server); + $DBY_server = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$DBY_server); + $dtmf_send_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$dtmf_send_extension); + $extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$extension); + $install_directory = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$install_directory); + $old_extension = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$old_extension); + $telnet_host = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$telnet_host); + $queuemetrics_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_dbname); + $queuemetrics_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_login); + $queuemetrics_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$queuemetrics_pass); + $email = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$email); + $vtiger_dbname = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_dbname); + $vtiger_login = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_login); + $vtiger_pass = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$vtiger_pass); + $custom_one = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_one); + $custom_two = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_two); + $custom_three = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_three); + $custom_four = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_four); + $custom_five = ereg_replace("[^-\.\:\/\@\_0-9a-zA-Z]","",$custom_five); + + ### NUMERIC and comma and pipe + $waitforsilence_options = ereg_replace("[^\|\,0-9]","",$waitforsilence_options); + + ### value cleaning + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + ### ALPHA-NUMERIC and underscore and dash and slash and at and space and colon + $vdc_header_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_header_date_format); + $vdc_customer_date_format = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$vdc_customer_date_format); + $menu_name = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$menu_name); + + ### ALPHA-NUMERIC and underscore and dash and at and space and parantheses + $vdc_header_phone_format = ereg_replace("[^- \(\)\_0-9a-zA-Z]","",$vdc_header_phone_format); + + ### remove semi-colons ### + $lead_filter_sql = ereg_replace(";","",$lead_filter_sql); + $list_mix_container = ereg_replace(";","",$list_mix_container); + $survey_response_digit_map = ereg_replace(";","",$survey_response_digit_map); + $survey_camp_record_dir = ereg_replace(";","",$survey_camp_record_dir); + $conf_override = ereg_replace(";","",$conf_override); + $template_contents = ereg_replace(";","",$template_contents); + $registration_string = ereg_replace(";","",$registration_string); + $account_entry = ereg_replace(";","",$account_entry); + $account_entry = ereg_replace("\r","",$account_entry); + $globals_string = ereg_replace(";","",$globals_string); + $dialplan_entry = ereg_replace(";","",$dialplan_entry); + $dialplan_entry = ereg_replace("\r","",$dialplan_entry); + $custom_dialplan_entry = ereg_replace("\\\\","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace(";","",$custom_dialplan_entry); + $custom_dialplan_entry = ereg_replace("\r","",$custom_dialplan_entry); + $tts_text = ereg_replace("\\\\","",$tts_text); + $tts_text = ereg_replace(";","",$tts_text); + $tts_text = ereg_replace("\r","",$tts_text); + $tts_text = ereg_replace("\"","",$tts_text); + $carrier_description = ereg_replace("\\\\","",$carrier_description); + $carrier_description = ereg_replace(";","",$carrier_description); + $carrier_description = ereg_replace("\r","",$carrier_description); + $carrier_description = ereg_replace("\"","",$carrier_description); + + + ### VARIABLES TO BE mysql_real_escape_string ### + # $web_form_address + # $queuemetrics_url + # $admin_home_url + # $qc_web_form_address + # $vtiger_url + # $web_form_address_two + # $crm_login_address + # $start_call_url + # $dispo_call_url + + ### VARIABLES not filtered at all ### + # $script_text + + } # end of non_latin +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + + + +##### END VARIABLE FILTERING FOR SECURITY ##### + + +# ViciDial database administration +# admin.php +# +# CHANGELOG: +# 50315-1110 - Added Custom Campaign Statuses +# 50317-1438 - Added Fronter Display var to inbound groups +# 50322-1355 - Added custom callerID per campaign +# 50517-1356 - Added user_groups sections and user_group to vicidial_users +# 50517-1440 - Added ability to logout (must click OK with empty user/pass) +# 50602-1622 - Added lead loader pages to load new files into vicidial_list +# 50620-1351 - Added custom vdad transfer AGI extension per campaign +# 50810-1414 - modified in groups to kick out spaces and dashes +# 50908-2136 - Added Custom Campaign HotKeys +# 50914-0950 - Fixed user search by user_group +# 50926-1358 - Modified to allow for language translation +# 50926-1615 - Added WeBRooTWritablE write controls +# 51020-1008 - Added editable web address and park ext - NEW dial campaigns +# 51020-1056 - Added fields and help for campaign recording control +# 51123-1335 - Altered code to function in php globals=off +# 51208-1038 - Added user_level changes, function controls and default user phones +# 51208-1556 - Added deletion of users/lists/campaigns/in groups/remote agents +# 51213-1706 - Added add/delete/modify vicidial scripts +# 51214-1737 - Added preview of vicidial script in popup window +# 51219-1225 - Added campaign and ingroups script selector and get_call_launch field +# 51222-1055 - Added am_message_exten to campaigns to allow for AM Message button +# 51222-1125 - Fixed new vicidial_campaigns default values not being assigned bug +# 51222-1156 - Added LOG OUT ALL AGENTS ON THIS CAMPAIGN button to campaign screen +# 60204-0659 - Fixed hopper reset bug +# 60207-1413 - Added AMD send to voicemail extension and xfer-conf dtmf presets +# 60213-1100 - Added several vicidial_users permissions fields +# 60215-1319 - Added On-hold CallBacks display and links +# 60227-1226 - Fixed vicidial_inbound_groups insert bug +# 60413-1308 - Fixed list display to have 1 row/status: count and time zone tables +# - Added status name in selected dial statuses in campaign screen +# 60417-1416 - Added vicidial_lead_filters sections +# - Changed the header links to color-coded sectional with sublinks below +# - Added filter name and script name to campaign and in-group modify sections +# - Added callback and alt dial options to campaigns section +# - Added callback, alt dial and other options to users section +# 60419-1628 - Alter Callbacks display to include status and LIVE listings, reordered +# 60421-1441 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60425-2355 - Added agent options to vicidial_users, reformatted user page +# 60502-1627 - Added drop_call_seconds and safe_harbor_ fields to campaign screen +# 60503-1228 - Added drop_call_seconds and drop_ fields to inbound groups screen +# 60505-1117 - Added initial framework for new local_call_times tables and definitions +# 60506-1033 - More revisions to the local_call_time section +# 60508-1354 - Finished call_times and state_call_times sections +# - Added modify/delete options for call_times +# 60509-1311 - Functionalize campaign dialable leads calculation +# - Change state_call_times selection from call_times to only allow one per state +# - Added dialable leads count popup to campaign screen if auto-calc is disabled +# - Added test dialable leads count popup to filter screen +# 60510-1050 - Added Wrapup seconds and Wrapup message to campaigns screen +# 60608-1401 - Added allowable inbound_groups checkboxes to CLOSER campaign detail screen +# 60609-1051 - Added add-to-dnc in LISTS section +# 60613-1415 - Added lead recycling options to campaign detail screen +# 60619-1523 - Added variable filtering to eliminate SQL injection attack threat +# 60622-1216 - Fixed HotKey addition form issues and variable filtering +# 60623-1159 - Fixed Scheduled Callbacks over-filtering bug and filter_sql bug +# 60808-1147 - Changed filtering for and added instructions for consutative transfers +# 60816-1552 - Added allcalls_delay start delay for recordings in vicidial.php +# 60817-2226 - Fixed bug that would not allow lead recycling of non-selectable statuses +# 60821-1543 - Added option to Omit Phone Code while dialing in vicidial +# 60821-1625 - Added ALLFORCE recording option for campaign_recording +# 60823-1154 - Added fields for adaptive dialing +# 60824-1326 - Added adaptive_latest_target_gmt for ADAPT_TAPERED dial method +# 60825-1205 - Added adaptive_intensity for ADAPT_ dial methods +# 60828-1019 - Changed adaptive_latest_target_gmt to adaptive_latest_server_time +# 60828-1115 - Added adaptive_dl_diff_target and changed intensity dropdown +# 60927-1246 - Added astguiclient/admin.php functions under SERVERS tab +# 61002-1402 - Added fields for vicidial balance trunk controls +# 61003-1123 - Added functions for vicidial_server_trunks records +# 61109-1022 - Added Emergency VDAC Jam Clear function to Campaign Detail screen +# 61110-1502 - Add ability to select NONE in dial statuses, new list_id must not be < 100 +# 61122-1228 - Added user group campaign restrictions +# 61122-1535 - Changed script_text to unfiltered and added more variables to SCRIPTS +# 61129-1028 - Added headers to Users and Phones with clickable order-by titles +# 70108-1405 - Added ADAPT OVERRIDE to allow for forced dial_level changes in ADAPT dial methods +# - Screen width definable at top of script, merged server_stats into this script +# 70109-1638 - Added ALTPH2 and ADDR3 hotkey options for alt number dialing with HotKeys +# 70109-1716 - Added concurrent_transfers option to vicidial_campaigns +# 70115-1152 - Aded (CLOSER|BLEND|INBND|_C$|_B$|_I$) options for CLOSER-type campaigns +# 70115-1532 - Added auto_alt_dial field to campaign screen for auto-dialing of alt numbers +# 70116-1200 - Added auto_alt_dial_status functionality to campaign screen +# 70117-1235 - Added header formatting variables at top of script +# - Moved Call Times and Phones/Server functions to Admin section +# 70118-1706 - Added new user group displays and links +# 70123-1519 - Added user permission settings for all sections +# 70124-1346 - Fixed spelling errors and formatting consistency +# 70202-1120 - Added agent_pause_codes section to campaigns +# 70205-1204 - Added memo, last dialed, timestamp and stats-refresh fields to vicidial_campaigns/lists +# 70206-1323 - Added user setting for vicidial_recording_override +# 70212-1412 - Added system settings section +# 70214-1226 - Added QueueMetrics Log ID field to system settings section +# 70219-1102 - Changed campaign dial statuses to be one string allowing for high limit +# 70223-0957 - Added queuemetrics_eq_prepend for custom ENTERQUEUE prepending of a field +# 70302-1111 - Fixed small bug in dialable leads calculation +# 70314-1133 - Added insert selection on script forms +# 70319-1423 - Added Alter Customer Data and agent disable display functions +# 70319-1625 - Added option to allow agents to login to outbound campaigns with no leads in the hopper +# 70322-1455 - Added sipsak messages parameters +# 70402-1157 - Added HOME link and entry to system_settings table, added QM link on reports section +# 70516-1628 - Started reformatting campaigns to use submenus to break up options +# 70529-1653 - Added help for list mix +# 70530-1354 - Added human_answered field to statuses, added system status modification +# 70530-1714 - Added lists for all campaign subsections +# 70531-1631 - Development on List mix admin interface +# 70601-1629 - More development on List mix admin interface, formatting, and added some javascript +# 70602-1300 - More development on List mix admin interface, more javascript +# 70608-1459 - Added option to set LIVE Callbacks to INACTIVE after one month +# 70612-1451 - Added Callback INACTIVE link for after one week, sort by user/group/entrydate +# 70614-0231 - Added Status Categories, ability to Modify Statuses, moved system statuses to sub-section +# 70623-1008 - List Mix section now allows modification of list mix entries +# 70629-1721 - List Mix section adding and removing of list entries active +# 70706-1636 - List Mix section cleanup and more error-checking +# 70908-0941 - Added agc logile enable system_settings +# 71020-1934 - Added inbound groups options: on-hold music, messages, call_times +# 71022-1343 - Added inbound group ranks for users +# 71029-1710 - Added option for campaign to be inbound and/or blended with no restrictions on the campaign_id name +# - Added 5th NEW and 6th NEW to the dial order options +# 71030-2010 - Added Manual Dial List ID field to campaigns table +# 71103-2207 - Added inbound_group_rank and fewest_calls to the inbound groups call order options +# 71113-1521 - Added campaign_rank to agent options +# - Added ability to Copy a campaign's setting to a new campaign +# 71113-2225 - Added ability to copy user and in-group settings to new users and in-groups +# 71116-0942 - Added campaign_rank and fewest_calls as methods for agent call routing +# 71122-1135 - Added default transfer group for campaigns and inbound groups +# 71125-1751 - Added allowable transfer groups to campaign detail screen +# 80107-1204 - Started framework for new QC section +# 80112-0242 - Added more options for lead order +# 80211-1901 - Added DB Schema Version to system settings display +# 80224-1334 - Added Queue Priority to in-groups and campaigns +# 80302-0232 - added drop_action and transfer to in-group for both in-groups and outbound +# 80310-1504 - added QC settings section to campaign screen +# 80317-2037 - Added Recording override settings to in-groups +# 80414-1505 - More work on QC, added vicidial_qc_codes +# 80424-0442 - Added non_latin system_settings lookup at top to override dbconnect setting +# 80505-0333 - Added phones_alias sections to allow for load-balanced-phone-logins +# 80512-1529 - Added auto-generate of User ID feature +# 80515-1345 - Added Shifts sub-section to Admin section +# 80528-0001 - Added campaign survey sub-section +# 80528-1102 - Added user timeclock edit options +# 80608-1304 - Changed add-to-DNC to allow for multiple entries per submission +# 80625-0032 - Added time/phone display format options to system settings +# 80703-0124 - Added alter cust phone and api settings +# 80715-1130 - Added Recycle leads limit count +# 80719-1351 - Changed QC settings in campaigns and In-Groups +# 80809-2305 - Added Sale and Dead Lead categories to status categories page +# 80815-1036 - Added manual dial filter to capaigns +# 80823-2124 - Added copy to clipboard campaign option +# 80829-2359 - Added EXTENDED auto_alt_dial options +# 80831-0406 - Added agent screen extended alt-dial option to campaigns +# 80909-0553 - Added campaign-specific DNC list option and add +# 81002-1101 - Added more in-group options and new DID section and user options +# 81007-0936 - Added three_way_call_cid option to campaigns +# 81012-1725 - Added INBOUND_MAN dial method allowing for manual list dialing with inbound calls +# 81030-0348 - Added campaign pause code force option +# 81030-2228 - Fixed DIDs creation issue +# 81103-1408 - Added 3way call dial prefix option +# 81107-1551 - Added Stats Percent of Calls Answered Within X seconds fields to in-groups +# 81118-0933 - Changed lists listing with links and more options +# 81119-0715 - Added ability to bulk enable/disable lists from modify campaign screen +# 81209-1538 - Added web_form_target to campaign screen +# 81210-1430 - Added http server IP and recording link options to servers +# 81222-0500 - Reformatted all listings to same format changed to field selects instead of * +# 81228-2300 - Added fields for vtiger integration and active vicidial_user display +# 90101-1216 - Added options for user synchronization with vtiger +# 90112-0335 - Added vtiger_create_lead_record and vtiger_create_lead_record options +# 90115-0502 - Activated AGENT DID routing option +# 90126-2256 - Added vtiger_screen_login campaign option and user agent alert option +# 90201-1503 - Added option to disable the viewing of inactive QC features +# 90202-0112 - Added option to disable outbound autodialing(or list dialing) +# 90202-0444 - Added cpd_amd_action option for processing of AMD messages +# 90209-1339 - Added download_lists option to allow downloading of lists +# 90210-1042 - Added options for auto-generation of asterisk conf files +# 90301-2026 - Added Vtiger group synchronization +# 90302-2046 - Changed Section heading to be on the left side of the screen +# 90303-0631 - Added web vars to agent campaign and in-group settings +# 90303-2047 - Added group aliases and default group aliases +# 90306-1214 - Added shift enforcement and server/system calls per second options +# 90308-0956 - Added server statistics +# 90309-0059 - Changed logging to admin_server_log +# 90310-2203 - Added export_reports option for call activity report data exports +# 90315-1010 - Changed revision for new trunk 2.2.0 +# 90320-0424 - Fixed several small bugs conf records group alias and permissions +# 90322-0122 - Added ability to delete from the DNC lists +# 90322-1105 - Added new status settings and vtiger options +# 90409-2133 - Fixed special characters in SCRIPTS +# 90413-0755 - Fixed filter and script slashes issues +# 90417-0211 - Fixed filter and script slashes issues +# 90422-0613 - Added user_code, territory and email to vicidial_users +# 90429-0542 - Added 3rd&4th options to SURVEY campaigns +# 90430-0154 - Added RANDOM and LAST CALL TIME options to lead order for campaigns +# 90504-0901 - Added Call Menu feature, changed script to use long PHP tags +# 90511-0910 - Added agentonly_callback_campaign_lock to system_settings +# 90512-0440 - Added sounds settings to system_settings table +# 90514-0607 - Added select prompts from list in call menu and in-group screens +# 90521-0029 - Added user territories enable option +# 90522-0506 - Security fix for logins when using non-latin setting +# 90524-2307 - Changed Reports screen layout +# 90528-2055 - Added ViciDial recording limit field in servers and phone_context to phones +# 90530-1206 - Changed List Mix to allow for 40 mixes +# 90531-1802 - Added auto-generated options for users, campaigns, in-groups, etc..., added option to HIDE custphone +# 90531-2339 - Added Dynamic options for Call Menu +# 90605-0248 - Added carrier_logging_active servers option +# 90607-1716 - Changed drop percent limit to allow for 0.1 steps under 3% +# 90608-0944 - Added Drop Lockout Time feature to Campaign Detail Modification screen +# 90612-0909 - Added audio prompt selection feature to survey screen +# 90614-0827 - Added In-Group routing to Call Menu screen, Added pull-down Call Menu option to DID screen +# 90617-0733 - Added phone ring timeout and call menu custom dialplan entries +# 90621-0821 - Added phone Conf File Secret field to use a separate password from the user interface for a phone +# 90621-1220 - Added Call Menu logging tracking_group +# 90627-0547 - Added no-agent-no-queue options +# 90627-2333 - Added default transfer button and prepopulate preset options +# 90628-0924 - Added Text To Speech(TTS) fields +# 90628-2213 - Added Multi-campaign drop rate groups +# 90705-0926 - Added User Group agent view options +# 90710-1528 - Added Agent view and grab queue calls and every call pause options +# 90717-0646 - Added dialed_label and dialed_number to script variables +# 90721-1350 - Added RANK and OWNER as list order options and list screen display tables +# 90722-1235 - Added list reset time and campaign no hopper dialing, agent dial owner only options +# 90726-0153 - Added allow_alerts for users to disable agent browser alerts +# 90729-0555 - Added agent_display_dialable_leads and vicidial_balance_rank options +# 90808-0300 - Added longest_wait_time option for agent call routing +# 90827-1552 - Added agent_script_override option for lists +# 90830-2217 - Added Music On Hold section +# 90904-1536 - Added moh chooser option, timezone list ordering +# 90908-1207 - Added cross-listing linking for DIDs, CallMenus and In-groups +# 90916-1105 - Added second web form to ingroups and campaigns and added audio choose for answering machine message and waitforsilence_options +# 90917-1108 - Added Extra Voicemail boxes config in Admin section +# 90919-2251 - Removed all SELECT STAR instances in the code, code cleanup to conform to standard +# 90924-1645 - Added list_id overrides for cid, am_message and drop in-group +# 90930-2107 - Added agent territory selection options for ViciDial agents +# 91026-1050 - Added AREACODE DNC option for campaigns +# 91031-1232 - Added carrier_description field, campaigns links from in-group screen, server links on reports page, agent ranks listing active only +# 91121-0334 - Limited list called count display to 100+ +# 91125-0628 - Added conf_secret for servers +# 91204-1652 - Added recording_filename and recording_id as script variables +# 91205-2231 - Added delete_vm_after_email voicemail option to phones and extra voicemail sections +# 91210-2038 - Added better logging of Campaign emergency logout +# 91211-1359 - Added custom user fields and campaign CRM login fields +# 91219-0719 - Changed some field backgrounds in the Campaign Modification screens +# 91223-1031 - Added VIDPROMPT options for in-group routing in DIDs +# 91228-1837 - Added timer action settings to in-groups and campaigns +# 100103-0727 - Added Start/Dispo call url, 3/4/5 conf number presets, Lists conf-number overrides +# 100104-1454 - Fixed in-group/campaign copy duplication issue +# +# make sure you have added a user to the vicidial_users MySQL table with at least user_level 8 to access this page the first time + +$admin_version = '2.2.0-233'; +$build = '100104-1454'; + +$STARTtime = date("U"); +$SQLdate = date("Y-m-d H:i:s"); +$REPORTdate = date("Y-m-d"); +$MT[0]=''; +$US='_'; +$active_lists=0; +$inactive_lists=0; + +$month_old = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); +$past_month_date = date("Y-m-d H:i:s",$month_old); +$week_old = mktime(0, 0, 0, date("m"), date("d")-7, date("Y")); +$past_week_date = date("Y-m-d H:i:s",$week_old); + +$dtmf[0]='0'; $dtmf_key[0]='0'; +$dtmf[1]='1'; $dtmf_key[1]='1'; +$dtmf[2]='2'; $dtmf_key[2]='2'; +$dtmf[3]='3'; $dtmf_key[3]='3'; +$dtmf[4]='4'; $dtmf_key[4]='4'; +$dtmf[5]='5'; $dtmf_key[5]='5'; +$dtmf[6]='6'; $dtmf_key[6]='6'; +$dtmf[7]='7'; $dtmf_key[7]='7'; +$dtmf[8]='8'; $dtmf_key[8]='8'; +$dtmf[9]='9'; $dtmf_key[9]='9'; +$dtmf[10]='HASH'; $dtmf_key[10]='#'; +$dtmf[11]='STAR'; $dtmf_key[11]='*'; +$dtmf[12]='A'; $dtmf_key[12]='A'; +$dtmf[13]='B'; $dtmf_key[13]='B'; +$dtmf[14]='C'; $dtmf_key[14]='C'; +$dtmf[15]='D'; $dtmf_key[15]='D'; +$dtmf[16]='TIMECHECK'; $dtmf_key[16]='TIMECHECK'; +$dtmf[17]='TIMEOUT'; $dtmf_key[17]='TIMEOUT'; +$dtmf[18]='INVALID'; $dtmf_key[18]='INVALID'; + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "You have now logged out. Thank you\n"; + exit; + } + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,auto_dial_limit,user_territories_active,allow_custom_dialplan FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSauto_dial_limit = $row[1]; + $SSuser_territories_active = $row[2]; + $SSallow_custom_dialplan = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and active='Y';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or ($auth<1)) + { + 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; + } +else + { + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfull_name =$row[3]; + $LOGuser_level =$row[4]; + $LOGuser_group =$row[5]; + $LOGdelete_users =$row[8]; + $LOGdelete_user_groups =$row[9]; + $LOGdelete_lists =$row[10]; + $LOGdelete_campaigns =$row[11]; + $LOGdelete_ingroups =$row[12]; + $LOGdelete_remote_agents =$row[13]; + $LOGload_leads =$row[14]; + $LOGcampaign_detail =$row[15]; + $LOGast_admin_access =$row[16]; + $LOGast_delete_phones =$row[17]; + $LOGdelete_scripts =$row[18]; + $LOGdelete_filters =$row[29]; + $LOGalter_agent_interface =$row[30]; + $LOGdelete_call_times =$row[32]; + $LOGmodify_call_times =$row[33]; + $LOGmodify_users =$row[34]; + $LOGmodify_campaigns =$row[35]; + $LOGmodify_lists =$row[36]; + $LOGmodify_scripts =$row[37]; + $LOGmodify_filters =$row[38]; + $LOGmodify_ingroups =$row[39]; + $LOGmodify_usergroups =$row[40]; + $LOGmodify_remoteagents =$row[41]; + $LOGmodify_servers =$row[42]; + $LOGview_reports =$row[43]; + $LOGmodify_dids =$row[56]; + $LOGdelete_dids =$row[57]; + $LOGmanager_shift_enforcement_override=$row[61]; + $LOGexport_reports =$row[64]; + $LOGdelete_from_dnc =$row[65]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$LOGuser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGallowed_campaigns = $row[0]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|XXXX|$ip|$browser|$LOGfull_name|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +###################################################################################################### +###################################################################################################### +####### Header settings +###################################################################################################### +###################################################################################################### + + +header ("Content-type: text/html; charset=utf-8"); +echo "\n"; +echo "\n"; +echo "\n"; +echo "ADMINISTRATION: "; + +if (!isset($ADD)) {$ADD=0;} + +if ($ADD=="1") {$hh='users'; echo "Add New User";} +if ($ADD=="1A") {$hh='users'; echo "Copy User";} +if ($ADD==11) {$hh='campaigns'; $sh='basic'; echo "Add New Campaign";} +if ($ADD==12) {$hh='campaigns'; $sh='basic'; echo "Copy Campaign";} +if ($ADD==111) {$hh='lists'; echo "Add New List";} +if ($ADD==121) {$hh='lists'; echo "Add New DNC";} +if ($ADD==1111) {$hh='ingroups'; echo "Add New In-Group";} +if ($ADD==1211) {$hh='ingroups'; echo "Copy In-Group";} +if ($ADD==1311) {$hh='ingroups'; echo "Add New DID";} +if ($ADD==1411) {$hh='ingroups'; echo "Copy DID";} +if ($ADD==1511) {$hh='ingroups'; echo "Add Call Menu";} +if ($ADD==1611) {$hh='ingroups'; echo "Copy Call Menu";} +if ($ADD==11111) {$hh='remoteagent'; echo "Add New Remote Agents";} +if ($ADD==111111) {$hh='usergroups'; echo "Add New Users Group";} +if ($ADD==1111111) {$hh='scripts'; echo "Add New Script";} +if ($ADD==11111111) {$hh='filters'; echo "Add New Filter";} +if ($ADD==111111111) {$hh='admin'; $sh='times'; echo "Add New Call Time";} +if ($ADD==131111111) {$hh='admin'; $sh='shifts'; echo "Add New Shift";} +if ($ADD==1111111111) {$hh='admin'; $sh='times'; echo "Add New State Call Time";} +if ($ADD==11111111111) {$hh='admin'; $sh='phones'; echo "ADD NEW PHONE";} +if ($ADD==12111111111) {$hh='admin'; $sh='phones'; echo "ADD NEW PHONE ALIAS";} +if ($ADD==13111111111) {$hh='admin'; $sh='phones'; echo "ADD NEW GROUP ALIAS";} +if ($ADD==111111111111) {$hh='admin'; $sh='server'; echo "ADD NEW SERVER";} +if ($ADD==131111111111) {$hh='admin'; $sh='templates'; echo "ADD NEW CONF TEMPLATE";} +if ($ADD==141111111111) {$hh='admin'; $sh='carriers'; echo "ADD NEW CARRIER";} +if ($ADD==151111111111) {$hh='admin'; $sh='tts'; echo "ADD NEW TTS ENTRY";} +if ($ADD==161111111111) {$hh='admin'; $sh='moh'; echo "ADD NEW MUSIC ON HOLD ENTRY";} +if ($ADD==171111111111) {$hh='admin'; $sh='vm'; echo "ADD NEW VOICEMAIL BOX";} +if ($ADD==1111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW CONFERENCE";} +if ($ADD==11111111111111) {$hh='admin'; $sh='conference'; echo "ADD NEW VICIDIAL CONFERENCE";} +if ($ADD=='2') {$hh='users'; echo "New User Addition";} +if ($ADD=='2A') {$hh='users'; echo "New Copied User Addition";} +if ($ADD==20) {$hh='campaigns'; $sh='basic'; echo "New Copied Campaign Addition";} +if ($ADD==21) {$hh='campaigns'; $sh='basic'; echo "New Campaign Addition";} +if ($ADD==22) {$hh='campaigns'; $sh='status'; echo "New Campaign Status Addition";} +if ($ADD==23) {$hh='campaigns'; $sh='hotkey'; echo "New Campaign HotKey Addition";} +if ($ADD==25) {$hh='campaigns'; $sh='recycle'; echo "New Campaign Lead Recycle Addition";} +if ($ADD==26) {$hh='campaigns'; $sh='autoalt'; echo "New Auto Alt Dial Status";} +if ($ADD==27) {$hh='campaigns'; $sh='pause'; echo "New Agent Pause Code";} +if ($ADD==28) {$hh='campaigns'; $sh='dialstat'; echo "Campaign Dial Status Added";} +if ($ADD==29) {$hh='campaigns'; $sh='listmix'; echo "Campaign List Mix Added";} +if ($ADD==211) {$hh='lists'; echo "New List Addition";} +if ($ADD==2111) {$hh='ingroups'; echo "New In-Group Addition";} +if ($ADD==2011) {$hh='ingroups'; echo "New Copied In-Group Addition";} +if ($ADD==2311) {$hh='ingroups'; echo "New DID Addition";} +if ($ADD==2411) {$hh='ingroups'; echo "New Copied DID Addition";} +if ($ADD==2511) {$hh='ingroups'; echo "New Call Menu";} +if ($ADD==2611) {$hh='ingroups'; echo "New Call Menu";} +if ($ADD==21111) {$hh='remoteagent'; echo "New Remote Agents Addition";} +if ($ADD==211111) {$hh='usergroups'; echo "New Users Group Addition";} +if ($ADD==2111111) {$hh='scripts'; echo "New Script Addition";} +if ($ADD==21111111) {$hh='filters'; echo "New Filter Addition";} +if ($ADD==211111111) {$hh='admin'; $sh='times'; echo "New Call Time Addition";} +if ($ADD==231111111) {$hh='admin'; $sh='shifts'; echo "New Shift Addition";} +if ($ADD==2111111111) {$hh='admin'; $sh='times'; echo "New State Call Time Addition";} +if ($ADD==21111111111) {$hh='admin'; $sh='phones'; echo "ADDING NEW PHONE";} +if ($ADD==22111111111) {$hh='admin'; $sh='phones'; echo "ADDING NEW PHONE ALIAS";} +if ($ADD==23111111111) {$hh='admin'; $sh='phones'; echo "ADDING NEW GROUP ALIAS";} +if ($ADD==211111111111) {$hh='admin'; $sh='server'; echo "ADDING NEW SERVER";} +if ($ADD==221111111111) {$hh='admin'; $sh='server'; echo "ADDING NEW SERVER VICIDIAL TRUNK RECORD";} +if ($ADD==231111111111) {$hh='admin'; $sh='templates'; echo "ADDING NEW CONF TEMPLATE";} +if ($ADD==241111111111) {$hh='admin'; $sh='carriers'; echo "ADDING NEW CARRIER";} +if ($ADD==251111111111) {$hh='admin'; $sh='tts'; echo "ADDING NEW TTS ENTRY";} +if ($ADD==261111111111) {$hh='admin'; $sh='moh'; echo "ADDING NEW MUSIC ON HOLD ENTRY";} +if ($ADD==271111111111) {$hh='admin'; $sh='vm'; echo "ADDING NEW VOICEMAIL BOX";} +if ($ADD==2111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW CONFERENCE";} +if ($ADD==21111111111111) {$hh='admin'; $sh='conference'; echo "ADDING NEW VICIDIAL CONFERENCE";} +if ($ADD==221111111111111) {$hh='admin'; $sh='status'; echo "ADDING VICIDIAL SYSTEM STATUSES";} +if ($ADD==231111111111111) {$hh='admin'; $sh='status'; echo "ADDING VICIDIAL STATUS CATEGORY";} +if ($ADD==241111111111111) {$hh='admin'; $sh='status'; echo "ADDING VICIDIAL QC STATUS CODE";} +if ($ADD==3) {$hh='users'; echo "Modify User";} +if ($ADD==30) {$hh='campaigns'; echo "Campaign Not Allowed";} +if ($ADD==31) + { + $hh='campaigns'; $sh='detail'; echo "Modify Campaign - Detail - $campaign_id"; + if ($SUB==22) {echo " - Statuses";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " - Lead Recycle Entries";} + if ($SUB==26) {echo " - Auto Alt Dial Statuses";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - List Mixes";} + if ($SUB=='20A') {echo " - Survey";} + } +if ($ADD==34) + { + $hh='campaigns'; $sh='basic'; echo "Modify Campaign - Basic View - $campaign_id"; + if ($SUB==22) {echo " - Statuses";} + if ($SUB==23) {echo " - HotKeys";} + if ($SUB==25) {echo " - Lead Recycle Entries";} + if ($SUB==26) {echo " - Auto Alt Dial Statuses";} + if ($SUB==27) {echo " - Agent Pause Codes";} + if ($SUB==28) {echo " - QC";} + if ($SUB==29) {echo " - List Mixes";} + if ($SUB=='20A') {echo " - Survey";} + } +if ($ADD==32) {$hh='campaigns'; $sh='status'; echo "Campaign Statuses";} +if ($ADD==33) {$hh='campaigns'; $sh='hotkey'; echo "Campaign HotKeys";} +if ($ADD==35) {$hh='campaigns'; $sh='recycle'; echo "Campaign Lead Recycle Entries";} +if ($ADD==36) {$hh='campaigns'; $sh='autoalt'; echo "Campaign Auto Alt Dial Statuses";} +if ($ADD==37) {$hh='campaigns'; $sh='pause'; echo "Campaign Agent Pause Codes";} +if ($ADD==38) {$hh='campaigns'; $sh='dialstat'; echo "Campaign Dial Statuses";} +if ($ADD==39) {$hh='campaigns'; $sh='listmix'; echo "Campaign List Mixes";} +if ($ADD==311) {$hh='lists'; echo "Modify List";} +if ($ADD==3111) {$hh='ingroups'; echo "Modify In-Group";} +if ($ADD==3311) {$hh='ingroups'; echo "Modify DID";} +if ($ADD==3511) {$hh='ingroups'; echo "Modify Call Menu";} +if ($ADD==31111) {$hh='remoteagent'; echo "Modify Remote Agents";} +if ($ADD==311111) {$hh='usergroups'; echo "Modify Users Groups";} +if ($ADD==3111111) {$hh='scripts'; echo "Modify Script";} +if ($ADD==31111111) {$hh='filters'; echo "Modify Filter";} +if ($ADD==311111111) {$hh='admin'; $sh='times'; echo "Modify Call Time";} +if ($ADD==321111111) {$hh='admin'; $sh='times'; echo "Modify Call Time State Definitions List";} +if ($ADD==331111111) {$hh='admin'; $sh='shifts'; echo "Modify Shift";} +if ($ADD==3111111111) {$hh='admin'; $sh='times'; echo "Modify State Call Time";} +if ($ADD==31111111111) {$hh='admin'; $sh='phones'; echo "MODIFY PHONE";} +if ($ADD==32111111111) {$hh='admin'; $sh='phones'; echo "MODIFY PHONE ALIAS";} +if ($ADD==33111111111) {$hh='admin'; $sh='phones'; echo "MODIFY GROUP ALIAS";} +if ($ADD==311111111111) {$hh='admin'; $sh='server'; echo "MODIFY SERVER";} +if ($ADD==331111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} +if ($ADD==341111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==351111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ENTRY";} +if ($ADD==361111111111) {$hh='admin'; $sh='moh'; echo "MODIFY MUSIC ON HOLD ENTRY";} +if ($ADD==371111111111) {$hh='admin'; $sh='vm'; echo "MODIFY VOICEMAIL BOX";} +if ($ADD==3111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY CONFERENCE";} +if ($ADD==31111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==311111111111111) {$hh='admin'; $sh='settings'; echo "MODIFY VICIDIAL SYSTEM SETTINGS";} +if ($ADD==321111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL SYSTEM STATUSES";} +if ($ADD==331111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL STATUS CATEGORY";} +if ($ADD==341111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC STATUS CODE";} +if ($ADD=="4A") {$hh='users'; echo "Modify User - Admin";} +if ($ADD=="4B") {$hh='users'; echo "Modify User - Admin";} +if ($ADD==4) {$hh='users'; echo "Modify User";} +if ($ADD==41) {$hh='campaigns'; $sh='detail'; echo "Modify Campaign";} +if ($ADD==42) {$hh='campaigns'; $sh='status'; echo "Modify Campaign Status";} +if ($ADD==43) {$hh='campaigns'; $sh='hotkey'; echo "Modify Campaign HotKey";} +if ($ADD==44) {$hh='campaigns'; $sh='basic'; echo "Modify Campaign - Basic View";} +if ($ADD==45) {$hh='campaigns'; $sh='recycle'; echo "Modify Campaign Lead Recycle";} +if ($ADD==47) {$hh='campaigns'; $sh='pause'; echo "Modify Agent Pause Code";} +if ($ADD==48) {$hh='campaigns'; $sh='qc'; echo "Modify Campaign QC Settings";} +if ($ADD==49) {$hh='campaigns'; $sh='listmix'; echo "Modify Campaign List Mix";} +if ($ADD=='40A') {$hh='campaigns'; $sh='survey'; echo "Modify Campaign Survey";} +if ($ADD==411) {$hh='lists'; echo "Modify List";} +if ($ADD==4111) {$hh='ingroups'; echo "Modify In-Group";} +if ($ADD==4311) {$hh='ingroups'; echo "Modify DID";} +if ($ADD==4511) {$hh='ingroups'; echo "Modify Call Menu";} +if ($ADD==41111) {$hh='remoteagent'; echo "Modify Remote Agents";} +if ($ADD==411111) {$hh='usergroups'; echo "Modify Users Groups";} +if ($ADD==4111111) {$hh='scripts'; echo "Modify Script";} +if ($ADD==41111111) {$hh='filters'; echo "Modify Filter";} +if ($ADD==411111111) {$hh='admin'; $sh='times'; echo "Modify Call Time";} +if ($ADD==431111111) {$hh='admin'; $sh='shifts'; echo "Modify Shift";} +if ($ADD==4111111111) {$hh='admin'; $sh='times'; echo "Modify State Call Time";} +if ($ADD==41111111111) {$hh='admin'; $sh='phones'; echo "MODIFY PHONE";} +if ($ADD==42111111111) {$hh='admin'; $sh='phones'; echo "MODIFY PHONE ALIAS";} +if ($ADD==43111111111) {$hh='admin'; $sh='phones'; echo "MODIFY GROUP ALIAS";} +if ($ADD==411111111111) {$hh='admin'; $sh='server'; echo "MODIFY SERVER";} +if ($ADD==421111111111) {$hh='admin'; $sh='server'; echo "MODIFY SERVER VICIDIAL TRUNK RECORD";} +if ($ADD==431111111111) {$hh='admin'; $sh='templates'; echo "MODIFY CONF TEMPLATE";} +if ($ADD==441111111111) {$hh='admin'; $sh='carriers'; echo "MODIFY CARRIER";} +if ($ADD==451111111111) {$hh='admin'; $sh='tts'; echo "MODIFY TTS ENTRY";} +if ($ADD==461111111111) {$hh='admin'; $sh='moh'; echo "MODIFY MUSIC ON HOLD ENTRY";} +if ($ADD==471111111111) {$hh='admin'; $sh='vm'; echo "MODIFY VOICEMAIL BOX";} +if ($ADD==4111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY CONFERENCE";} +if ($ADD==41111111111111) {$hh='admin'; $sh='conference'; echo "MODIFY VICIDIAL CONFERENCE";} +if ($ADD==411111111111111) {$hh='admin'; $sh='settings'; echo "MODIFY VICIDIAL SYSTEM SETTINGS";} +if ($ADD==421111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL SYSTEM STATUSES";} +if ($ADD==431111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL STATUS CATEGORIES";} +if ($ADD==441111111111111) {$hh='admin'; $sh='status'; echo "MODIFY VICIDIAL QC STATUS CODE";} +if ($ADD==5) {$hh='users'; echo "Delete User";} +if ($ADD==51) {$hh='campaigns'; $sh='detail'; echo "Delete Campaign";} +if ($ADD==52) {$hh='campaigns'; $sh='detail'; echo "Logout Agents";} +if ($ADD==53) {$hh='campaigns'; $sh='detail'; echo "Emergency VDAC Jam Clear";} +if ($ADD==511) {$hh='lists'; echo "Delete List";} +if ($ADD==5111) {$hh='ingroups'; echo "Delete In-Group";} +if ($ADD==5311) {$hh='ingroups'; echo "Delete DID";} +if ($ADD==5511) {$hh='ingroups'; echo "Delete Call Menu";} +if ($ADD==51111) {$hh='remoteagent'; echo "Delete Remote Agents";} +if ($ADD==511111) {$hh='usergroups'; echo "Delete Users Group";} +if ($ADD==5111111) {$hh='scripts'; echo "Delete Script";} +if ($ADD==51111111) {$hh='filters'; echo "Delete Filter";} +if ($ADD==511111111) {$hh='admin'; $sh='times'; echo "Delete Call Time";} +if ($ADD==531111111) {$hh='admin'; $sh='shifts'; echo "Delete Shift";} +if ($ADD==5111111111) {$hh='admin'; $sh='times'; echo "Delete State Call Time";} +if ($ADD==51111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==52111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE ALIAS";} +if ($ADD==53111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} +if ($ADD==511111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==531111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} +if ($ADD==541111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==551111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==561111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==571111111111) {$hh='admin'; $sh='vm'; echo "DELETE VOICEMAIL BOX";} +if ($ADD==5111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==51111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==6) {$hh='users'; echo "Delete User";} +if ($ADD==61) {$hh='campaigns'; $sh='detail'; echo "Delete Campaign";} +if ($ADD==62) {$hh='campaigns'; $sh='detail'; echo "Logout Agents";} +if ($ADD==63) {$hh='campaigns'; $sh='detail'; echo "Emergency VDAC Jam Clear";} +if ($ADD==65) {$hh='campaigns'; $sh='recycle'; echo "Delete Lead Recycle";} +if ($ADD==66) {$hh='campaigns'; $sh='autoalt'; echo "Delete Auto Alt Dial Status";} +if ($ADD==67) {$hh='campaigns'; $sh='pause'; echo "Delete Agent Pause Code";} +if ($ADD==68) {$hh='campaigns'; $sh='dialstat'; echo "Campaign Dial Status Removed";} +if ($ADD==69) {$hh='campaigns'; $sh='listmix'; echo "Campaign List Mix Removed";} +if ($ADD==611) {$hh='lists'; echo "Delete List";} +if ($ADD==6111) {$hh='ingroups'; echo "Delete In-Group";} +if ($ADD==6311) {$hh='ingroups'; echo "Delete DID";} +if ($ADD==6511) {$hh='ingroups'; echo "Delete Call Menu";} +if ($ADD==61111) {$hh='remoteagent'; echo "Delete Remote Agents";} +if ($ADD==611111) {$hh='usergroups'; echo "Delete Users Group";} +if ($ADD==6111111) {$hh='scripts'; echo "Delete Script";} +if ($ADD==61111111) {$hh='filters'; echo "Delete Filter";} +if ($ADD==611111111) {$hh='admin'; $sh='times'; echo "Delete Call Time";} +if ($ADD==631111111) {$hh='admin'; $sh='shifts'; echo "Delete Shift";} +if ($ADD==6111111111) {$hh='admin'; $sh='times'; echo "Delete State Call Time";} +if ($ADD==61111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE";} +if ($ADD==62111111111) {$hh='admin'; $sh='phones'; echo "DELETE PHONE ALIAS";} +if ($ADD==63111111111) {$hh='admin'; $sh='phones'; echo "DELETE GROUP ALIAS";} +if ($ADD==611111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER";} +if ($ADD==621111111111) {$hh='admin'; $sh='server'; echo "DELETE SERVER VICIDIAL TRUNK RECORD";} +if ($ADD==631111111111) {$hh='admin'; $sh='templates'; echo "DELETE CONF TEMPLATE";} +if ($ADD==641111111111) {$hh='admin'; $sh='carriers'; echo "DELETE CARRIER";} +if ($ADD==651111111111) {$hh='admin'; $sh='tts'; echo "DELETE TTS ENTRY";} +if ($ADD==661111111111) {$hh='admin'; $sh='moh'; echo "DELETE MUSIC ON HOLD ENTRY";} +if ($ADD==671111111111) {$hh='admin'; $sh='vm'; echo "DELETE VOICEMAIL BOX";} +if ($ADD==6111111111111) {$hh='admin'; $sh='conference'; echo "DELETE CONFERENCE";} +if ($ADD==61111111111111) {$hh='admin'; $sh='conference'; echo "DELETE VICIDIAL CONFERENCE";} +if ($ADD==73) {$hh='campaigns'; echo "Dialable Lead Count";} +if ($ADD==7111111) {$hh='scripts'; echo "Preview Script";} +if ($ADD==700000000000000) {$hh='reports'; echo "VICIDIAL ADMIN CHANGE LOG";} +if ($ADD==710000000000000) {$hh='reports'; echo "VICIDIAL USER ADMIN CHANGE LOG";} +if ($ADD==720000000000000) {$hh='reports'; echo "VICIDIAL SECTION ADMIN CHANGE LOG";} +if ($ADD==730000000000000) {$hh='reports'; echo "VICIDIAL DETAIL ADMIN CHANGE LOG";} +if ($ADD==0) {$hh='users'; echo "Users List";} +if ($ADD==8) {$hh='users'; echo "CallBacks Within Agent";} +if ($ADD==81) {$hh='campaigns'; $sh='list'; echo "CallBacks Within Campaign";} +if ($ADD==811) {$hh='lists'; echo "CallBacks Within List";} +if ($ADD==8111) {$hh='usergroups'; echo "CallBacks Within User Group";} +if ($ADD==10) {$hh='campaigns'; $sh='list'; echo "Campaigns";} +if ($ADD==100) {$hh='lists'; echo "Lists";} +if ($ADD==1000) {$hh='ingroups'; echo "In-Groups";} +if ($ADD==1300) {$hh='ingroups'; echo "DIDs";} +if ($ADD==1500) {$hh='ingroups'; echo "Call Menus";} +if ($ADD==10000) {$hh='remoteagent'; echo "Remote Agents";} +if ($ADD==100000) {$hh='usergroups'; echo "User Groups";} +if ($ADD==1000000) {$hh='scripts'; echo "Scripts";} +if ($ADD==10000000) {$hh='filters'; echo "Filters";} +if ($ADD==100000000) {$hh='admin'; $sh='times'; echo "Call Times";} +if ($ADD==130000000) {$hh='admin'; $sh='shifts'; echo "Shifts";} +if ($ADD==1000000000) {$hh='admin'; $sh='times'; echo "State Call Times";} +if ($ADD==10000000000) {$hh='admin'; $sh='phones'; echo "PHONE LIST";} +if ($ADD==12000000000) {$hh='admin'; $sh='phones'; echo "PHONE ALIAS LIST";} +if ($ADD==13000000000) {$hh='admin'; $sh='phones'; echo "GROUP ALIAS LIST";} +if ($ADD==100000000000) {$hh='admin'; $sh='server'; echo "SERVER LIST";} +if ($ADD==130000000000) {$hh='admin'; $sh='templates'; echo "CONF TEMPLATE LIST";} +if ($ADD==140000000000) {$hh='admin'; $sh='carriers'; echo "CARRIER LIST";} +if ($ADD==150000000000) {$hh='admin'; $sh='tts'; echo "TTS ENTRY LIST";} +if ($ADD==160000000000) {$hh='admin'; $sh='moh'; echo "MUSIC ON HOLD ENTRY LIST";} +if ($ADD==170000000000) {$hh='admin'; $sh='vm'; echo "VOICEMAIL BOXES LIST";} +if ($ADD==1000000000000) {$hh='admin'; $sh='conference'; echo "CONFERENCE LIST";} +if ($ADD==10000000000000) {$hh='admin'; $sh='conference'; echo "VICIDIAL CONFERENCE LIST";} +if ($ADD==550) {$hh='users'; echo "Search Form";} +if ($ADD==551) {$hh='users'; echo "SEARCH PHONES";} +if ($ADD==660) {$hh='users'; echo "Search Results";} +if ($ADD==661) {$hh='users'; echo "SEARCH PHONES RESULTS";} +if ($ADD==99999) {$hh='users'; echo "HELP";} +if ($ADD==999999) {$hh='reports'; echo "REPORTS";} + +if ( ($ADD>9) && ($ADD < 99998) ) + { + ##### get scripts listing for dynamic pulldown + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $scripts_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $scripts_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get filters listing for dynamic pulldown + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_sql from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + $filters_list="<option value=\"\">NONE</option>\n"; + + $o=0; + while ($filters_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $filters_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $filtername_list["$rowx[0]"] = "$rowx[1]"; + $filtersql_list["$rowx[0]"] = "$rowx[2]"; + $o++; + } + + ##### get call_times listing for dynamic pulldown + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $times_to_print = mysql_num_rows($rslt); + + $o=0; + while ($times_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $call_times_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $call_timename_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + } + +if ( ( (strlen($ADD)>4) && ($ADD < 99998) ) or ($ADD==3) or (($ADD>20) and ($ADD<70)) or ($ADD=="4A") or ($ADD=="4B") or (strlen($ADD)==12) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + + ##### BEGIN get campaigns listing for rankings ##### + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $campaigns_value=''; + $RANKcampaigns_list="<tr><td>CAMPAIGN</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $campaign_id_values[$o] = $rowx[0]; + $campaign_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + $group_web_vars=''; + $campaign_web=''; + $stmt="SELECT campaign_rank,calls_today,group_web_vars from vicidial_campaign_agents where user='$user' and campaign_id='$campaign_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_campaign_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_campaign_rank=0; $group_web_vars='';} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_GET["RANK_$campaign_id_values[$o]"];} + elseif (isset($_POST["RANK_$campaign_id_values[$o]"])) {$campaign_rank=$_POST["RANK_$campaign_id_values[$o]"];} + if (isset($_GET["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_GET["WEB_$campaign_id_values[$o]"];} + elseif (isset($_POST["WEB_$campaign_id_values[$o]"])) {$campaign_web=$_POST["WEB_$campaign_id_values[$o]"];} + if ($non_latin < 1) + { + $campaign_rank = ereg_replace("[^-\_0-9]","",$campaign_rank); + $campaign_web = preg_replace("/;|\"|\'/","",$campaign_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', group_web_vars='$campaign_web' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_campaign_agents set campaign_rank='$campaign_rank', campaign_weight='$campaign_rank', campaign_id='$campaign_id_values[$o]', user='$user', group_web_vars='$campaign_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_agents set campaign_weight='$campaign_rank' where campaign_id='$campaign_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$campaign_rank = $SELECT_campaign_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + # disable non user-group allowable campaign ranks + $stmt="SELECT user_group from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Ruser_group = $row[0]; + + $stmt="SELECT allowed_campaigns from vicidial_user_groups where user_group='$Ruser_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $UGcampaigns = explode(" ", $allowed_campaigns); + + $p=0; $RANK_camp_active=0; $CR_disabled = ''; + if (eregi('-ALL-CAMPAIGNS-',$allowed_campaigns)) + {$RANK_camp_active++;} + else + { + $UGcampaign_ct = count($UGcampaigns); + while ($p < $UGcampaign_ct) + { + if ($campaign_id_values[$o] == $UGcampaigns[$p]) + {$RANK_camp_active++;} + $p++; + } + } + if ($RANK_camp_active < 1) {$CR_disabled = 'DISABLED';} + + $RANKcampaigns_list .= "<tr $bgcolor><td>"; + $campaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] <BR>\n"; + $RANKcampaigns_list .= "<a href=\"$PHP_SELF?ADD=31&campaign_id=$campaign_id_values[$o]\">$campaign_id_values[$o]</a> - $campaign_name_values[$o] </td>"; + $RANKcampaigns_list .= "<td>     <select size=1 name=RANK_$campaign_id_values[$o] $CR_disabled>\n"; + $h="9"; + while ($h>=-9) + { + $RANKcampaigns_list .= "<option value=\"$h\""; + if ($h==$campaign_rank) + {$RANKcampaigns_list .= " SELECTED";} + $RANKcampaigns_list .= ">$h</option>"; + $h--; + } + if ( (strlen($campaign_web) < 1) and (strlen($group_web_vars) > 0) ) + {$campaign_web=$group_web_vars;} + $RANKcampaigns_list .= "</select></td>\n"; + $RANKcampaigns_list .= "<td align=right>     $calls_today</td>\n"; + $RANKcampaigns_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$campaign_id_values[$o] value=\"$campaign_web\"></td></tr>\n"; + $o++; + } + ##### END get campaigns listing for rankings ##### + + + ##### BEGIN get inbound groups listing for checkboxes ##### + $xfer_groupsSQL=''; + if ( (($ADD>20) and ($ADD<70)) and ($ADD!=41) or ( ($ADD==41) and (eregi('list_activation', $stage))) ) + { + $stmt="SELECT closer_campaigns,xfer_groups from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + $xfer_groups = $row[1]; + $xfer_groups = preg_replace("/ -$/","",$xfer_groups); + $XFERgroups = explode(" ", $xfer_groups); + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + if ($ADD==41) + { + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + $xfer_groups .= " $XFERgroups[$p]"; + $p++; + } + $xfer_groupsSQL = preg_replace("/^ | -$/","",$xfer_groups); + $xfer_groupsSQL = preg_replace("/ /","','",$xfer_groupsSQL); + $xfer_groupsSQL = "WHERE group_id IN('$xfer_groupsSQL')"; + } + + 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';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + if ($ADD==3) + { + $stmt="SELECT closer_campaigns from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; +# $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + $XFERgroups_list=''; + $RANKgroups_list="<tr><td>INBOUND GROUP</td><td>     RANK</td><td>     CALLS</td><td ALIGN=CENTER>WEB VARS</td></tr>\n"; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_values[$o] = $rowx[0]; + $group_name_values[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($groups_to_print > $o) + { + $group_web_vars=''; + $group_web=''; + $stmt="SELECT group_rank,calls_today,group_web_vars from vicidial_inbound_group_agents where user='$user' and group_id='$group_id_values[$o]'"; + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + if ($ranks_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $SELECT_group_rank = $row[0]; + $calls_today = $row[1]; + $group_web_vars = $row[2]; + } + else + {$calls_today=0; $SELECT_group_rank=0;} + if ( ($ADD=="4A") or ($ADD=="4B") ) + { + if (isset($_GET["RANK_$group_id_values[$o]"])) {$group_rank=$_GET["RANK_$group_id_values[$o]"];} + elseif (isset($_POST["RANK_$group_id_values[$o]"])) {$group_rank=$_POST["RANK_$group_id_values[$o]"];} + if (isset($_GET["WEB_$group_id_values[$o]"])) {$group_web=$_GET["WEB_$group_id_values[$o]"];} + elseif (isset($_POST["WEB_$group_id_values[$o]"])) {$group_web=$_POST["WEB_$group_id_values[$o]"];} + + if ($non_latin < 1) + { + $group_rank = ereg_replace("[^-\_0-9]","",$group_rank); + $group_web = preg_replace("/;|\"|\'/","",$group_web); + } + + if ($ranks_to_print > 0) + { + $stmt="UPDATE vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_web_vars='$group_web' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else + { + $stmt="INSERT INTO vicidial_inbound_group_agents set group_rank='$group_rank', group_weight='$group_rank', group_id='$group_id_values[$o]', user='$user', group_web_vars='$group_web';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="UPDATE vicidial_live_inbound_agents set group_weight='$group_rank' where group_id='$group_id_values[$o]' and user='$user';"; + $rslt=mysql_query($stmt, $link); + } + else {$group_rank = $SELECT_group_rank;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $groups_list .= "<input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $XFERgroups_list .= "<input type=\"checkbox\" name=\"XFERgroups[]\" value=\"$group_id_values[$o]\""; + $RANKgroups_list .= "<tr $bgcolor><td><input type=\"checkbox\" name=\"groups[]\" value=\"$group_id_values[$o]\""; + $p=0; + $group_ct = count($groups); + while ($p < $group_ct) + { + if ($group_id_values[$o] == $groups[$p]) + { + $groups_list .= " CHECKED"; + $RANKgroups_list .= " CHECKED"; + $groups_value .= " $group_id_values[$o]"; + } + $p++; + } + $p=0; + $XFERgroup_ct = count($XFERgroups); + while ($p < $XFERgroup_ct) + { + if ($group_id_values[$o] == $XFERgroups[$p]) + { + $XFERgroups_list .= " CHECKED"; + $XFERgroups_value .= " $group_id_values[$o]"; + } + $p++; + } + $stmt="SELECT queue_priority from vicidial_inbound_groups where group_id='$group_id_values[$o]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VIG_priority = $row[0]; + + $groups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] - $VIG_priority <BR>\n"; + $XFERgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] <BR>\n"; + $RANKgroups_list .= "> <a href=\"$PHP_SELF?ADD=3111&group_id=$group_id_values[$o]\">$group_id_values[$o]</a> - $group_name_values[$o] </td>"; + $RANKgroups_list .= "<td>     <select size=1 name=RANK_$group_id_values[$o]>\n"; + $h="9"; + while ($h>=-9) + { + $RANKgroups_list .= "<option value=\"$h\""; + if ($h==$group_rank) + {$RANKgroups_list .= " SELECTED";} + $RANKgroups_list .= ">$h</option>"; + $h--; + } + if ( (strlen($group_web) < 1) and (strlen($group_web_vars) > 0) ) + {$group_web=$group_web_vars;} + $RANKgroups_list .= "</select></td>\n"; + $RANKgroups_list .= "<td align=right>     $calls_today</td>\n"; + $RANKgroups_list .= "<td>     <input type=text size=25 maxlength=255 name=WEB_$group_id_values[$o] value=\"$group_web\"></td></tr>\n"; + $o++; + } + if (strlen($groups_value)>2) {$groups_value .= " -";} + if (strlen($XFERgroups_value)>2) {$XFERgroups_value .= " -";} + } + ##### END get inbound groups listing for checkboxes ##### + + +##### BEGIN get campaigns listing for checkboxes ##### +if ( ($ADD==211111) or ($ADD==311111) or ($ADD==411111) or ($ADD==511111) or ($ADD==611111) ) + { + if ( ($ADD==211111) or ($ADD==311111) or ($ADD==511111) or ($ADD==611111) ) + { + $stmt="SELECT allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaigns = $row[0]; + $qc_allowed_campaigns = $row[1]; + $qc_allowed_inbound_groups = $row[2]; + $allowed_campaigns = preg_replace("/ -$/","",$allowed_campaigns); + $campaigns = explode(" ", $allowed_campaigns); + $qc_allowed_campaigns = preg_replace("/ -$/","",$qc_allowed_campaigns); + $qc_campaigns = explode(" ", $qc_allowed_campaigns); + $qc_allowed_inbound_groups = preg_replace("/ -$/","",$qc_allowed_inbound_groups); + $qc_groups = explode(" ", $qc_allowed_inbound_groups); + } + + $campaigns_value=''; + $campaigns_list='<B><input type="checkbox" name="campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_campaigns_value=''; + $qc_campaigns_list='<B><input type="checkbox" name="qc_campaigns[]" value="-ALL-CAMPAIGNS-"'; + $qc_groups_value=''; + $qc_groups_list='<B><input type="checkbox" name="qc_groups[]" value="-ALL-GROUPS-"'; + $p=0; + while ($p<2000) + { + if (eregi('ALL-CAMPAIGNS',$campaigns[$p])) + { + $campaigns_list.=" CHECKED"; + $campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-CAMPAIGNS',$qc_campaigns[$p])) + { + $qc_campaigns_list.=" CHECKED"; + $qc_campaigns_value .= " -ALL-CAMPAIGNS-"; + } + if (eregi('ALL-GROUPS',$qc_groups[$p])) + { + $qc_groups_list.=" CHECKED"; + $qc_groups_value .= " -ALL-GROUPS-"; + } + $p++; + } + $campaigns_list.="> ALL-CAMPAIGNS - USERS CAN VIEW ANY CAMPAIGN</B><BR>\n"; + $qc_campaigns_list.="> ALL-CAMPAIGNS - USERS CAN QC ANY CAMPAIGN</B><BR>\n"; + $qc_groups_list.="> ALL-GROUPS - USERS CAN QC ANY INBOUND GROUP</B><BR>\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaign_id_value = $rowx[0]; + $campaign_name_value = $rowx[1]; + $campaigns_list .= "<input type=\"checkbox\" name=\"campaigns[]\" value=\"$campaign_id_value\""; + $qc_campaigns_list .= "<input type=\"checkbox\" name=\"qc_campaigns[]\" value=\"$campaign_id_value\""; + $p=0; + while ($p<1000) + { + if ( ($campaign_id_value == $campaigns[$p]) and (strlen($campaign_id_value) > 1) ) + { + # echo "<!-- X $p|$campaign_id_value|$campaigns[$p]| -->"; + $campaigns_list .= " CHECKED"; + $campaigns_value .= " $campaign_id_value"; + } + if ($campaign_id_value == $qc_campaigns[$p]) + { + $qc_campaigns_list .= " CHECKED"; + $qc_campaigns_value .= " $campaign_id_value"; + } + # echo "<!-- O $p|$campaign_id_value|$campaigns[$p]| -->"; + $p++; + } + $campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $qc_campaigns_list .= "> $campaign_id_value - $campaign_name_value<BR>\n"; + $o++; + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $qc_groups_list .= "<input type=\"checkbox\" name=\"qc_groups[]\" value=\"$group_id_value\""; + $p=0; + while ($p<2000) + { + if ( ($group_id_value == $qc_groups[$p]) and (strlen($group_id_value) > 1) ) + { + $qc_groups_list .= " CHECKED"; + $qc_groups_value .= " $group_id_value"; + } + $p++; + } + $qc_groups_list .= "> $group_id_value - $group_name_value<BR>\n"; + $o++; + } + + if (strlen($campaigns_value)>2) {$campaigns_value .= " -";} + if (strlen($qc_campaigns_value)>2) {$qc_campaigns_value .= " -";} + if (strlen($qc_groups_value)>2) {$qc_groups_value .= " -";} + } + ##### END get campaigns listing for checkboxes ##### + + +if ( (strlen($ADD)==11) or (strlen($ADD)>12) or ( ($ADD > 1299) and ($ADD < 9999) ) ) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rsltx=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rsltx); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $servers_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n"; + $o++; + } + } + + + +$NWB = "   <a href=\"javascript:openNewWindow('$PHP_SELF?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + + +###################################################################################################### +###################################################################################################### +####### 9 series, HELP screen +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=99999 display the HELP SCREENS +###################### + +if ($ADD==99999) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "
    Agent: $user
    Customer: $phone
    Call Type: $type
    Queue: $campaign
    Extension:
    "; + echo "
    ADMINISTRATION: HELP


    \n"; + + ?> + VICIDIAL_USERS TABLE

    + +
    + User ID - 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. + +
    +
    +
    + Password - This field is where you put the VICIDIAL users password. Must be at least 2 characters in length. + +
    +
    +
    + Full Name - This field is where you put the VICIDIAL users full name. Must be at least 2 characters in length. + +
    +
    +
    + User Level - 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. + +
    +
    +
    + User Group - 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. + +
    +
    +
    + Phone Login - 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. + +
    +
    +
    + Phone Pass - 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. + +
    +
    +
    + Active - This field defines whether the user is active in the system and can use VICIDIAL resources. Default is Y + +
    +
    +
    + Email, User Code and Territory - These are optional fields. + +
    +
    +
    + Hot Keys Active - This option if set to 1 allows the user to use the Hot Keys quick-dispositioning function in vicidial.php. + +
    +
    +
    + Agent Choose Ingroups - 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. + +
    +
    +
    + Agent Choose Territories - This option if set to 1 allows the user to choose the territories that they will receive calls from when they login to a MANUAL or INBOUND_MAN campaign. Otherwise the user will be set to use all of the territories that they are set to belong to in the User Territories administrative section. + +
    +
    +
    + Scheduled Callbacks - This option allows an agent to disposition a call as CALLBK and choose the date and time at which the lead will be re-activated. + +
    +
    +
    + Agent-Only Callbacks - 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. + +
    +
    +
    + Agent Call Manual - 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. + +
    +
    +
    + Vicidial Recording - 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. + +
    +
    +
    + Vicidial Transfers - 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. + + 0) + { + ?> +
    +
    +
    + Closer Default Blended - This option simply defaults the Blended checkbox on a CLOSER login screen. + + +
    +
    +
    + VICIDIAL Recording Override - This option will override whatever the option is in the campaign for recording. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load. + +
    +
    +
    + Agent Shift Enforcement Override - This setting will override whatever the users user group has set for Shift Enforcement. DISABLED will use the user group setting. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is DISABLED. + +
    +
    +
    + Alert Enabled - This field shows whether the agent has web browser alerts enabled for when calls come into their vicidial.php session. Default is 0 for NO. + +
    +
    +
    + Allow Alerts - This field gives you the ability to allow agent browser alerts to be enabled by the agent for when calls come into their vicidial.php session. Default is 0 for NO. + +
    +
    +
    + Campaign Ranks - In this section you can define the rank an agent will have for each campaign. These ranks can be used to allow for preferred call routing when Next Agent Call is set to campaign_rank. Also in this section are the WEB VARs for each campaign. These allow each agent to have a different variable string that can be added to the WEB FORM or SCRIPT tab URLs by simply putting --A--web_vars--B-- as you would put any other field. + +
    +
    +
    + Inbound Groups - Here is where you select the inbound groups you want to receive calls from if you have selected the CLOSER campaign. You will also be able to set the rank, or skill level, in this section for each of the inbound groups as well as being able to see the number of calls received from each inbound group for this specific agent. Also in this section is the ability to give the agent a rank for each inbound group. These ranks can be used for preferred call routing when that option is selected in the in-group screen. Also in this section are the WEB VARs for each campaign. These allow each agent to have a different variable string that can be added to the WEB FORM or SCRIPT tab URLs by simply putting --A--web_vars--B-- as you would put any other field. + +
    +
    +
    + Agent Alter Customer Data Override - This option will override whatever the option is in the campaign for altering of customer data. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer data, no matter what the campaign setting is. Default is NOT_ACTIVE. + +
    +
    +
    + Agent Alter Customer Phone Override - This option will override whatever the option is in the campaign for altering of customer phone number. NOT_ACTIVE will use whatever setting is present for the campaign. ALLOW_ALTER will always allow for the agent to alter the customer phone number, no matter what the campaign setting is. Default is NOT_ACTIVE. + +
    +
    +
    + Custom User Fields - These five fields can be used for various purposes, and they can be populated in the web form addresses and scripts as user_custom_one and so on. + +
    +
    +
    + Alter Agent Interface Options - This option if set to 1 allows the administrative user to modify the Agents interface options in admin.php. + +
    +
    +
    + Delete Users - This option if set to 1 allows the user to delete other users of equal or lesser user level from the system. + +
    +
    +
    + Delete User Groups - This option if set to 1 allows the user to delete user groups from the system. + +
    +
    +
    + Delete Lists - This option if set to 1 allows the user to delete vicidial lists from the system. + +
    +
    +
    + Delete Campaigns - This option if set to 1 allows the user to delete vicidial campaigns from the system. + +
    +
    +
    + Delete In-Groups - This option if set to 1 allows the user to delete vicidial In-Groups from the system. + +
    +
    +
    + Delete Remote Agents - This option if set to 1 allows the user to delete vicidial remote agents from the system. + + 0) + { + ?> +
    +
    +
    + Load Leads - 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. + + +
    +
    +
    + Campaign Detail - This option if set to 1 allows the user to view and modify the campaign detail screen elements. + +
    +
    +
    + AGC Admin Access - This option if set to 1 allows the user to login to the astGUIclient admin pages. + +
    +
    +
    + AGC Delete Phones - This option if set to 1 allows the user to delete phone entries in the astGUIclient admin pages. + +
    +
    +
    + Delete Scripts - This option if set to 1 allows the user to delete Campaign scripts in the script modification screen. + +
    +
    +
    + Modify Leads - This option if set to 1 allows the user to modify leads in the admin section lead search results page. + +
    +
    +
    + Change Agent Campaign - 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. + + 0) + { + ?> +
    +
    +
    + Delete Filters - This option allows the user to be able to delete vicidial lead filters from the system. + + +
    +
    +
    + Delete Call Times - 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 - 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. + +
    +
    +
    + Modify Sections - These options allow the user to view and modify each sections records. If set to 0, the user will be able to see the section list, but not the detail or modification screen of a record in that section. + +
    +
    +
    + View Reports - This option allows the user to view the VICIDIAL reports. + + 0) + { + ?> +
    +
    +
    + QC Enabled - This option allows the user to log in to the Quality Control agent screen. + +
    +
    +
    + QC User Level - This setting defines what the agent Quality Control user level is. This will dictate the level of functionality for the agent in the QC section:
    + 1 - Modify Nothing
    + 2 - Modify Nothing Except Status
    + 3 - Modify All Fields
    + 4 - Verify First Round of QC
    + 5 - View QC Statistics
    + 6 - Ability to Modify FINISHed records
    + 7 - Manager Level
    + +
    +
    +
    + QC Record Pass - This option allows the agent to specify that a record has passed the first round of QC after reviewing the record. + +
    +
    +
    + QC Record Finish - This option allows the agent to specify that a record has finished the second round of QC after reviewing the passed record. + +
    +
    +
    + QC Record Commit - This option allows the agent to specify that a record has been committed in QC. It can no longer be modified by anyone. + + +
    +
    +
    + Add Timeclock Log Record - This option allows the user to add records to the timeclock log. + +
    +
    +
    + Modify Timeclock Log Record - This option allows the user to modify records in the timeclock log. + +
    +
    +
    + Delete Timeclock Log Record - This option allows the user to delete records in the timeclock log. + +
    +
    +
    + Agent API Access - This option allows the account to be used with the vicidial agent API commands. + +
    +
    +
    + Manager Shift Enforcement Override - This setting if set to 1 will allow a manager to enter their user and password on an agent screen to override the shift restrictions on an agent session if the agent is trying to log in outside of their shift. Default is 0. + +
    +
    +
    + Download Lists - This setting if set to 1 will allow a manager to click on the download list link at the bottom of a list modification screen to export the entire contents of a list to a flat data file. Default is 0. + +
    +
    +
    + Export Reports - This setting if set to 1 will allow a manager to access the export call reports on the REPORTS screen. Default is 0. For the Export Calls Report, the following field order is used for exports:
    call_date, phone_number, status, user, full_name, campaign_id/in-group, vendor_lead_code, source_id, list_id, gmt_offset_now, 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, length_in_sec, user_group, alt_dial/queue_seconds, rank, owner + +
    +
    +
    + Delete From DNC Lists - This setting if set to 1 will allow a manager to remove phone numbers from the DNC lists in the VICIDIAL system. + + + + + + +



    + + VICIDIAL_CAMPAIGNS TABLE

    +
    +
    + Campaign ID - 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 length. + +
    +
    +
    + Campaign Name - This is the description of the campaign, it must be between 6 and 40 characters in length. + +
    +
    +
    + Campaign Description - This is a memo field for the campaign, it is optional and can be a maximum of 255 characters in length. + +
    +
    +
    + Campaign Change Date - This is the last time that the settings for this campaign were modified in any way. + +
    +
    +
    + Last Campaign Login Date - This is the last time that an agent was logged into this campaign. + +
    +
    +
    + Last Campaign Call Date - This is the last time that a call was handled by an agent logged into this campaign. + +
    +
    +
    + Campaign Stats Refresh - This checkbox will allow you to force a vicidial stats refresh, even if the campaign is not active. + +
    +
    +
    + Active - This is where you set the campaign to Active or Inactive. If Inactive, noone can log into it. + +
    +
    +
    + Park Extension - 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. + +
    +
    +
    + Park File Name - 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. + +
    +
    +
    + Web Form - This is where you can set the custom web page that will be opened when the user clicks on the WEB FORM button. To customize the query string after the web form, simply begin the web form with VAR and then the URL that you want to use, replacing the variables with the variable names that you want to use --A--phone_number--B-- just like in the SCRIPTS tab section. + +
    +
    +
    + Web Form Target- This is where you can set the custom web page frame that the web form will be opened in when the user clicks on the WEB FORM button. Default is _blank. + +
    +
    +
    + Allow Closers - This is where you can set whether the users of this campaign will have the option to send the call to a closer. + +
    +
    +
    + Default Transfer Group - This field is the default In-Group that will be automatically selected when the agent goes to the transfer-conference frame in their agent interface. + +
    +
    +
    + Allowed Transfer Groups - With these checkbox listings you can select the groups that agents in this campaign can transfer calls to. Allow Closers must be enabled for this option to show up. + + 0) + { + ?> +
    +
    +
    + Allow Inbound and Blended - This is where you can set whether the users of this campaign will have the option to take inbound calls with this campaign. If you want to do blended inbound and outbound then this must be set to Y. If you only want to do outbound dialing on this campaign set this to N. Default is N. + +
    +
    +
    + Dial Status - This is where you set the statuses that you are wanting to dial on within the lists that are active for the campaign below. To add another status to dial, select it from the drop-down list and click ADD. To remove one of the dial statuses, click on the REMOVE link next to the status you want to remove. + +
    +
    +
    + List Order - This menu is where you select how the leads that match the statuses selected above will be put in the lead hopper: +
      - DOWN: select the first leads loaded into the vicidial_list table +
      - UP: select the last leads loaded into the vicidial_list table +
      - UP PHONE: select the highest phone number and works its way down +
      - DOWN PHONE: select the lowest phone number and works its way up +
      - UP LAST NAME: starts with last names starting with Z and works its way down +
      - DOWN LAST NAME: starts with last names starting with A and works its way up +
      - UP COUNT: starts with most called leads and works its way down +
      - DOWN COUNT: starts with least called leads and works its way up +
      - DOWN COUNT 2nd NEW: 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 +
      - DOWN COUNT 3nd NEW: 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 +
      - DOWN COUNT 4th NEW: 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 +
      - RANDOM: Randomly grabs lead within the statuses and lists defined +
      - UP LAST CALL TIME: Sorts by the newest local call time for the leads +
      - DOWN LAST CALL TIME: Sorts by the oldest local call time for the leads +
      - UP RANK: Starts with the highest rank and works its way down +
      - DOWN RANK: Starts with the lowest rank and works its way up +
      - UP OWNER: Starts with owners beginning with Z and works its way down +
      - DOWN OWNER: Starts with owners beginning with A and works its way up +
      - UP TIMEZONE: Starts with Eastern timezones and works West +
      - DOWN TIMEZONE: Starts with Western timezones and works East + +
    +
    +
    + Hopper Level - 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. + +
    +
    +
    + Lead Filter - 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. + +
    +
    +
    + Drop Lockout Time - This is a number of hours that DROP abandon calls will be prevented from being dialed, to disable set to 0. This setting is very useful in countries like the UK where there are regulations preventing the attempted calling of customers within 72 hours of an Abandon, or DROP. Default is 0. + +
    +
    +
    + Force Reset of Hopper - This allows you to wipe out the hopper contents upon form submission. It should be filled again when the VDhopper script runs. + +
    +
    +
    + Dial Method - This field is the way to define how dialing is to take place. If MANUAL then the auto_dial_level will be locked at 0 unless Dial Method is changed. If RATIO then the normal dialing a number of lines for Active agents. ADAPT_HARD_LIMIT will dial predictively up to the dropped percentage and then not allow aggressive dialing once the drop limit is reached until the percentage goes down again. ADAPT_TAPERED allows for running over the dropped percentage in the first half of the shift -as defined by call_time selected for campaign- and gets more strict as the shift goes on. ADAPT_AVERAGE tries to maintain an average or the dropped percentage not imposing hard limits as aggressively as the other two methods. You cannot change the Auto Dial Level if you are in any of the ADAPT dial methods. Only the Dialer can change the dial level when in predictive dialing mode. INBOUND_MAN allows the agent to place manual dial calls from a campaign list while being able to take inbound calls between manual dial calls. + +
    +
    +
    + Auto Dial Level - 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. The ADAPT OVERRIDE checkbox allows you to force a new dial level even though the dial method is in an ADAPT mode. This is useful if there is a dramatic shift in the quality of leads and you want to drastically change the dial_level manually. + +
    +
    +
    + Available Only Tally - This field if set to Y will leave out INCALL and QUEUE status agents when calculating the number of calls to dial when not in MANUAL dial mode. Default is N. + +
    +
    +
    + Drop Percentage Limit - This field is where you set the limit of the percentage of dropped calls you would like while using an adaptive-predictive dial method, not MANUAL or RATIO. + +
    +
    +
    + Maximum Adapt Dial Level - This field is where you set the limit of the limit to the numbr of lines you would like dialed per agent while using an adaptive-predictive dial method, not MANUAL or RATIO. This number can be higher than the Auto Dial Level if your hardware will support it. Value must be a positive number greater than one and can have decimal places Default 3.0. + +
    +
    +
    + Latest Server Time - This field is only used by the ADAPT_TAPERED dial method. You should enter in the hour and minute that you will stop calling on this campaign, 2100 would mean that you will stop dialing this campaign at 9PM server time. This allows the Tapered algorithm to decide how aggressively to dial by how long you have until you will be finished calling. + +
    +
    +
    + Adapt Intensity Modifier - This field is used to adjust the predictive intensity either higher or lower. The higher a positive number you select, the greater the dialer will increase the call pacing when it goes up and the slower the dialer will decrease the call pacing when it goes down. The lower the negative number you select here, the slower the dialer will increase the call pacing and the faster the dialer will lower the call pacing when it goes down. Default is 0. This field is not used by the MANUAL or RATIO dial methods. + +
    +
    +
    + Dial Level Difference Target - This field is used to define whether you want to target having a specific number of agents waiting for calls or calls waiting for agents. For example if you would always like to have on average one agent free to take calls immediately you would set this to -1, if you would like to target always having one call on hold waiting for an agent you would set this to 1. Default is 0. This field is not used by the MANUAL or RATIO dial methods. + +
    +
    +
    + Concurrent Transfers - This setting is used to define the number of calls that can be sent to agents at the same time. It is recommended that this setting is left at AUTO. This field is not used by the MANUAL dial method. + +
    +
    +
    + Queue Priority - This setting is used to define the order in which the calls from this outbound campaign should be answered in relation to the inbound calls if this campaign is in blended mode. + +
    +
    +
    + Multiple Campaign Drop Rate Group - This feature allows you to set a campaign as a member of a Campaign Drop Rate Group, or a group of campaigns whose Human Answered calls and Drop calls for all campaigns in the group will be combined into a shared drop percentage, or abandon rate. This allows you to to run multiple campaigns at once and more easily control your drop rate. This is particularly useful in the UK where regulations permit this drop rate calculation method with campaign grouping for the same company even if there are several campaigns that company is running during the same day. To enable this for a campaign, just select a group from the list. There are 10 groups defined in the system by default, you can contact your system administrator to add more. Default is DISABLED. + +
    +
    +
    + Auto Alt-Number Dialing - This setting is used to automatically dial alternate number fields while dialing in the RATIO and ADAPT dial methods when there is no contact at the main phone number for a lead, the NA, B, DC and N statuses. This setting is not used by the MANUAL dial method. EXTENDED alternate numbers are numbers loaded into the system outside of the standard lead information screen. Using EXTENDED you can have hundreds of phone numbers for a single customer record. + +
    +
    +
    + Dial Timeout - If defined, calls that would normally hang up 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. + +
    +
    +
    + Campaign VDAD extension - This field allows for a custom VDAD transfer extension. This allows you to use different call handling methods depending upon your campaign. + - 8364 - same as 8368 + - 8365 - Will send the call only to an agent on the same server as the call is on + - 8366 - Used for press-1 and survey campaigns + - 8367 - Will try to first send the call to an agent on the local server, then it will look on other servers + - 8368 - DEFAULT Will send the call to the next available agent no matter what server they are on + - 8369 - Used for Answering Machine Detection after that, same behavior as 8368 + - 8373 - Used for Answering Machine Detection after that same behavior as 8366 + +
    +
    +
    + Answering Machine Message - This field is for entering the prompt to play when the agent gets an answering machine and clicks on the Answering Machine Message button in the transfer conference frame. You must set this to either an audio file in the audio store or a TTS prompt if TTS is enabled on your system. + +
    +
    +
    + WaitForSilence Options - If Wait For Silence is desired on calls that are detected as Answering Machines then this field has those options. There are two settings separated by a comma, the first option is how long to detect silence in milliseconds and the second option is for how many times to detect that before playing the message. Default is EMPTY for disabled. A standard value for this would be wait for 2 seconds of silence twice: 2000,2 + +
    +
    +
    + AMD send to vm exten - 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. + +
    +
    +
    + CPD AMD Action - If you are using the Sangoma ParaXip Call Progress Detection software then you will want to enable this setting either setting it to DISPO which will disposition the call as AA and hang it up if the call is being processed and has not been sent to an agent yet or MESSAGE which will send the call to the defined Answering Machine Message for this campaign. Default is DISABLED. + +
    +
    +
    + Agent Alt Num Dialing - This option allows an agent to manually dial the alternate phone number or address3 field after the main number has been called. + +
    +
    +
    + Drop Call Seconds - 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. + +
    +
    +
    + Drop Action - This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below + +
    +
    +
    + Safe Harbor Exten - This is the dial plan extension that the desired Safe Harbor audio file is located at on your server. + +
    +
    +
    + Voicemail - If defined, calls that would normally DROP would instead be directed to this voicemail box to hear and leave a message. + +
    +
    +
    + Drop Transfer Group - If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds. + +
    +
    +
    + Allow No-Hopper-Leads Logins - If set to Y, allows agents to login to the campaign even if there are no leads loaded into the hopper for that campaign. This function is not needed in CLOSER-type campaigns. Default is N. + +
    +
    +
    + No Hopper Dialing - If This is enabled, the hopper will not run for this campaign. This option is only available when the dial method is set to MANUAL or INBOUND_MAN. It is recommended that you do not enable this option if you have a very large lead database, over 100,000 leads. With No Hopper Dialing, the following features do not work: lead recycling, auto-alt-dialing, list mix, list ordering with Xth NEW. If you want to use Owner Only Dialing you must have No Hopper Dialing enabled. Default is N for disabled. + +
    +
    +
    + Owner Only Dialing - If This is enabled, the agent will only receive leads that they are within the ownership parameters for. If this is set to USER then the agent must be the user defined in the database as the owner of this lead. If this is set to TERRITORY then the owner of the lead must match the territory listed in the User Modification screen for this agent. If this is set to USER_GROUP then the owner of the lead must match the user group that the agent is a member of. For this feature to work the dial method must be set to MANUAL or INBOUND_MAN and No Hopper Dialing must be enabled. Default is NONE for disabled. + + 0) + { + ?> +
    +
    +
    + Agent Select Territories - If this option is enabled and the agent belongs to at least one territory, the agent will have the option of selecting territories to dial leads from. The agent will see a list of available territories upon login and they will have the ability to go back to that territory list when paused to change their territories. For this function to work the Owner Only Dialing option must be set to TERRITORY and User Terriories must be enabled in the System Settings. + + +
    +
    +
    + List Order Mix - Overrides the Lead Order and Dial Status fields. Will use the List and status parameters for the selected List Mix entry in the List Mix sub section instead. Default is DISABLED. + +
    +
    +
    + List Mix ID - ID of the list mix. Must be from 2-20 characters in length with no spaces or other special punctuation. + +
    +
    +
    + List Mix Name - Descriptive name of the list mix. Must be from 2-50 characters in length. + +
    +
    +
    + List Mix Detail - The composition of the List Mix entry. Contains the List ID, mix order, percentages and statuses that make up this List Mix. The percentages always have to add up to 100, and the lists all have to be active and set to the campaign for the order mix entry to be Activated. + +
    +
    +
    + List Mix Method - The method of mixing all of the parts of the List Mix Detail together. EVEN_MIX will mix leads from each part interleaved with the other parts, like this 1,2,3,1,2,3,1,2,3. IN_ORDER will put the leads in the order in which they are listed in the List Mix Detail screen 1,1,1,2,2,2,3,3,3. RANDOM will put them in RANDOM order 1,3,2,1,1,3,2,1,3. Default is IN_ORDER. + +
    +
    +
    + Agent Screen Extended Alt Dial - This feature allows for agents to access extended alternate phone numbers for leads beyond the standard Alt Phone and Address3 fields that can be used in VICIDIAL for phone numbers beyond the main phone number. The Extended phone numbers can be dialed automatically using the Auto-Alt-Dial feature in VICIDIAL Campaign settings, but enabling this Agent Screen feature will also allow for the agent to call these numbers from their agent screen as well as edit their information. + +
    +
    +
    + Survey First Audio File - This is the audio filename that is played as soon as the customer picks up the phone when running a survey campaign. + +
    +
    +
    + Survey DTMF Digits - This field is where you define the digits that a customer can press as an option on a survey campaign. valid dtmf digits are 0123456789*#. All options except for the Not Interested, Third and Fourth digit options will move on to the Survey Method call path. + +
    +
    +
    + Survey Not Interested Digit - This field is where you define the customer digit pressed that will show they are Not Interested. + +
    +
    +
    + Survey Not Interested Status - This field is where you select the status to be used for Not Interested. If DNC is used and the campaign is set to use DNC then the phone number will be automatically added to the VICIDIAL internal DNC list and possibly the campaign-specific DNC list. + +
    +
    +
    + Survey Opt-in Audio File - This is the audio filename that is played when the customer has opted-in to the survey, not opted-out or not responded if the no-response-action is set to OPTOUT. After this audio file is played, the Survey Method action is taken. + +
    +
    +
    + Survey Not Interested Audio File - This is the audio filename that is played when the customer has opted-out of the survey, not opted-in or not responded if the no-response-action is set to OPTIN. After this audio file is played, the call will be hung up. + +
    +
    +
    + Survey Method - This option defines what happens to a call after the customer has opted-in. AGENT_XFER will send the call to the next available agent. VOICEMAIL will send the call to the voicemail box that is specified in the Voicemail field. EXTENSION will send the customer to the extension defined in the Survey Xfer Extension field. HANGUP will hang up the customer. CAMPREC_60_WAV will send the customer to have a recording made with their response, this recording will be placed in a folder named as the campaign inside of the Survey Campaign Recording Directory. + +
    +
    +
    + Survey No-Response Action - This is where you define what will happen if there is no response to the survey question. OPTIN will only send the call on to the Survey Method if the customer presses a dtmf digit. OPTOUT will send the customer on to the Survey Method even if they do not press a dtmf digit. + +
    +
    +
    + Survey Response Digit Map - This is the section where you can define a description to go with each dtmf digit option that the customer may select. + +
    +
    +
    + Survey Xfer Extension - If the Survey Method of EXTENSION is selected then the customer call would be directed to this dialplan extension. + +
    +
    +
    + Survey Campaign Recording Directory - If the Survey Method of CAMPREC_60_WAV is selected then the customer response will be recorded and placed in a directory named after the campaign inside of this directory. + +
    +
    +
    + Survey Third Digit - This allows for a third call path if the Third digit as defined in this field is pressed by the customer. + +
    +
    +
    + Survey Fourth Digit - This allows for a fourth call path if the Fourth digit as defined in this field is pressed by the customer. + +
    +
    +
    + Survey Third Audio File - This is the third audio file to be played upon the selection by the customer of the Third Digit option. + +
    +
    +
    + Survey Third Status - This is the third status used for the call upon the selection by the customer of the Third Digit option. + +
    +
    +
    + Survey Third Extension - This is the third extension used for the call upon the selection by the customer of the Third Digit option. Default is 8300 which immediately hangs up the call after the Audio File message is played. + +
    +
    +
    + Agent Display Dialable Leads - This option if enabled will show the number of dialable leads available in the campaign in the agent screen. This number is updated in the system once a minute and will be refreshed on the agent screen every few seconds. + + + +
    +
    +
    + Next Agent Call - This determines which agent receives the next call that is available: +
      - random: orders by the random update value in the vicidial_live_agents table +
      - oldest_call_start: orders by the last time an agent was sent a call. Results in agents receiving about the same number of calls overall. +
      - oldest_call_finish: orders by the last time an agent finished a call. AKA agent waiting longest receives first call. +
      - 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. +
      - campaign_rank: orders by the rank given to the agent for the campaign. Highest to Lowest. +
      - fewest_calls: orders by the number of calls received by an agent for that specific inbound group. Least calls first. +
      - longest_wait_time: orders by the amount of time agent has been actively waiting for a call. + +
    +
    +
    + Local Call Time - 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. + +
    +
    +
    + Dial Prefix - 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 dial plan - extensions.conf. + +
    +
    +
    + Omit Phone Code - This field allows you to leave out the phone_code field while dialing within VICIDIAL. For instance if you are dialing in the UK from the UK you would have 44 in as your phone_code field for all leads, but you just want to dial 10 digits in your dial plan extensions.conf to place calls instead of 44 then 10 digits. Default is N. + +
    +
    +
    + Campaign CallerID - 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. + +
    +
    +
    + Campaign Rec extension - 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. + +
    +
    +
    + Campaign Recording - 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. For ALLCALLS and ALLFORCE there is an option to use the Recording Delay to cut down on very short recordings and recude system load. + +
    +
    +
    + Campaign Rec Filename - 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. 50 char max. + +
    +
    +
    + Recording Delay - For ALLCALLS and ALLFORCE recording only. This setting will delay the starting of the recording on all calls for the number of seconds specified in this field. Default is 0. + +
    +
    +
    + Campaign Script - 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. + +
    +
    +
    + Get Call Launch - 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. + +
    +
    +
    + Xfer-Conf DTMF - 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. If you want to allow Consultative Transfers, a fronter to a closer, have the agent use the CONSULTATIVE checkbox, which does not work for third party non-ViciDial consultative calls. For those just have the agent click the Dial With Customer button. Then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER, for instance if you want to do a call to a special IVR you have set to extension 83900 you would put AXFER83900 in the number-to-dial field. + +
    +
    +
    + Quick Transfer Button - This option will add a Quick Transfer button to the agent screen below the Transfer-Conf button that will allow one click blind transferring of calls to the selected In-Group or number. IN_GROUP will send calls to the Default Xfer Group for this Campaign, or In-Group if there was an inbound call. The PRESET options will send the calls to the preset selected. Default is N for disabled. + +
    +
    +
    + PrePopulate Transfer Preset - This option will fill in the Number to Dial field in the Transfer Conference frame of the agent screen if defined. Default is N for disabled. + +
    +
    +
    + Timer Action - This feature allows you to trigger actions after a certain amount of time. the D1 and D2 DIAL options will launch a call to the Transfer Conference Number presets and send them to the agent session, this is usually used for simple IVR validation AGI applications or just to play a pre-recorded message. WEBFORM will open the web form address. MESSAGE_ONLY will simply display the message that is in the field below. NONE will disable this feature and is the default. + +
    +
    +
    + Timer Action Message - This is the message that appears on the agent screen at the time the Timer Action is triggered. + +
    +
    +
    + Timer Action Seconds - This is the amount of time after the call is connected to the customer that the Timer Action is triggered. Default is -1 which is also inactive. + +
    +
    +
    + Scheduled Callbacks - 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. + +
    +
    +
    + Wrap Up Seconds - 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. + +
    +
    +
    + Wrap Up Message - This is a campaign-specific message to be displayed on the wrap up screen if wrap up seconds is set. + +
    +
    +
    + Use Internal DNC List - 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. The AREACODE option is just like the Y option, except it is used to also filter out an entire area code in North America from being dialed, in this case using the 201XXXXXXX entry in the DNC list would block all calls to the 201 areacode if enabled. + +
    +
    +
    + Use Campaign DNC List - This defines whether this campaign is to filter leads against a DNC list that is specific to that campaign only. If it is set to Y, the hopper will look for each phone number in the campaign-specific DNC list before placing it in the hopper. If it is in the campaign-specific DNC list then it will change that lead status to DNCC so it cannot be dialed. Default is N. The AREACODE option is just like the Y option, except it is used to also filter out an entire area code in North America from being dialed, in this case using the 201XXXXXXX entry in the DNC list would block all calls to the 201 areacode if enabled. + +
    +
    +
    + Allowed Inbound Groups - 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. + +
    +
    +
    + Agent Pause Codes Active - Allows agents to select a pause code when they click on the PAUSE button in vicidial.php. Pause codes are definable per campaign at the bottom of the campaign view detail screen and they are stored in the vicidial_agent_log table. Default is N. FORCE will force the agents to choose a PAUSE code if they click on the PAUSE button. + +
    +
    +
    + Disable Alter Customer Data - If set to Y, does not change any of the customer data record when an agent dispositions the call. Default is N. + +
    +
    +
    + Disable Alter Customer Phone - If set to Y, does not change the customer phone number when an agent dispositions the call. Default is Y. Use the HIDE option to completely remove the customer phone number from the agent display. + +
    +
    +
    + Agent Display Queue Count - If set to Y, when a customer is waiting for an agent, the Queue Calls display at the top of the agent screen will turn red and show the number of waiting calls. Default is Y. + +
    +
    +
    + Manual Dial List ID - The default list_id to be used when an agent placces a manual call and a new lead record is created in vicidial_list. Default is 999. This field can contain digits only. + +
    +
    +
    + Manual Dial Filter - This allows you to filter the calls that agents make in manual dial mode for this campaign by any combination of the following: DNC - to kick out, CAMPAIGNLISTS - the number must be within the lists for the campaign, NONE - no filter on manual dial or fast dial lists. + +
    +
    +
    + Agent Screen Clipboard Copy - THIS FEATURE IS CURRENTLY ONLY ENABLED FOR INTERNET EXPLORER. This feature allows you to select a field that will be copied to the computer clipboard of the agent computer upon a call being sent to an agent. Common uses for this are to allow for easy pasting of account numbers or phone numbers into legacy client applications on the agent computer. + +
    +
    +
    + 3-Way Call Outbound CallerID - This defines what is sent out as the outbound callerID number from 3-way calls placed by the agent, CAMPAIGN uses the custom campaign callerID, CUSTOMER uses the number of the customer that is active on the agents screen and AGENT_PHONE uses the callerID for the phone that the agent is logged into. AGENT_CHOOSE allows the agent to choose which callerID to use for 3-way calls from a list of choices. + +
    +
    +
    + 3-Way Call Dial Prefix - This defines what is used as the dial prefix for 3-way calls, default is empty so the campaign dial prefix is used, passthru so you can hear ringing is 88. + + 0) + { + ?> +
    +
    +
    + QC Enabled - Setting this field to Y allows for the agent Quality Control features to work. Default is N. + +
    +
    +
    + QC Statuses - This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review. + +
    +
    +
    + QC Shift - This is the shift timeframe used to pull QC records for a campaign. The days of the week are ignored for these functions. + +
    +
    +
    + QC Get Record Launch- This allows one of the following actions to be triggered upon a QC agent receiving a new record. + +
    +
    +
    + QC Show Recording - This allows for a recording that may be linked with the QC record to be display in the QC agent screen. + +
    +
    +
    + QC WebForm Address - This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen. + +
    +
    +
    + QC Script - This is the script that can be used by QC agents in the SCRIPT tab in the QC screen. + + +
    +
    +
    + Vtiger Search Category - If Vtiger integration is enabled in the system settings then this setting will define where the vtiger_search.php page will search for the phone number that was entered. There are 4 options that can be used in this field: LEAD- This option will search through the Vtiger leads only, ACCOUNT- This option will search through the Vtiger accounts and all contacts and sub-contacts for the phone number, VENDOR- This option will only search through the Vtiger vendors, ACCTID- This option works only for accounts and it will take the vicidial vendor_lead_code field and try to search for the Vtiger account ID. If unsuccessful it will try any other methods listed that you have selected. Multiple options can be used for each search, but on large databases this is not recommended. Default is LEAD. UNIFIED_CONTACT- This option will use the beta Vtiger 5.1.0 feature to search by phone number and bring up a search page in Vtiger. + +
    +
    +
    + Vtiger Search Dead Accounts - If Vtiger integration is enabled in the system settings then this setting will define whether deleted accounts will be searched when the agent clicks WEB FORM to search in the Vtiger system. DISABLED- deleted leads will not be searched, ASK- deleted leads will be searched and the vtiger search web page will ask the agent if they want to make the Vtiger account active, RESURRECT- will automatically make the deleted account active again and will take the agent to the account screen without delay upon clicking on WEB FORM. Default is DISABLED. + +
    +
    +
    + Vtiger Create Call Record - If Vtiger integration is enabled in the system settings then this setting will define whether a new Vtiger activity record is created for the call when the agent goes to the vtiger_search page. Default is Y. The DISPO option will create a call record for the Vtiger account without the agent needing to go to the vtiger search page through the WEB FORM. + +
    +
    +
    + Vtiger Create Lead Record - If Vtiger integration is enabled in the system settings and Vtiger Search Category includes LEAD then this setting will define whether a new Vtiger lead record is created when the agent goes to the vtiger_search page and no record is found to have the call phone number. Default is Y. + +
    +
    +
    + Vtiger Screen Login - If Vtiger integration is enabled in the system settings then this setting will define whether the user is logged into the Vtiger interface automatically when they login to VICIDIAL. Default is Y. The NEW_WINDOW option will open a new window upon login to the VICIDIAL agent screen. + +
    +
    +
    + Vtiger Status Call - If Vtiger integration is enabled in the system settings then this setting will define whether the status of the Vtiger Account will be updated with the status of the VICIDIAL call after it has been dispositioned. Default is N. + +
    +
    +
    + CRM Popup Login - If set to Y, the CRM Popup Address is used to open a new window on agent login to this campaign. Default is N. + +
    +
    +
    + CRM Popup Address - The web address of a CRM login page, it can have variables populated just like the web form address, with the VAR in the front and using --A--user_custom_one--B-- to define variables. + +
    +
    +
    + Start Call URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. This URL can NOT be a relative path. The Start URL does not work for Manual dial calls. Default is blank. + +
    +
    +
    + Dispo Call URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. This URL can NOT be a relative path. Default is blank. + +
    +
    +
    + Group Alias Allowed - If you want to allow your agents to use group aliases then you need to set this to Y. Group Aliases are explained more in the Admin section, they allow agents to select different callerIDs for outbound manual calls that they may place. Default is N. + +
    +
    +
    + Default Group Alias - If you have allowed Group Aliases then this is the group alias that is selected first by default when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty. + +
    +
    +
    + Agent View Calls in Queue - If set to anything but NONE, agents will be able to see details about the calls that are waiting in queue in their agent screen. If set to a number value, the calls displayed will be limited to the number selected. Default is NONE. + +
    +
    +
    + View Calls in Queue Launch - This setting if set to AUTO will have the Calls in Queue frame show up upon login by the agent into the agent screen. Default is MANUAL. + +
    +
    +
    + Agent Grab Calls in Queue - This option if set to Y will allow the agent to select the call that they want to take from the Calls in Queue display by clicking on it while paused. Agents will only be able to grab inbound calls or transferred calls, not outbound calls. Default is N. + +
    +
    +
    + Agent Call Re-Queue Button - This option if set to Y will add a Re-Queue Customer button to the agent screen, allowing the agent to send the call into an AGENTDIRECT queue that is reserved for the agent only. Default is N. + +
    +
    +
    + Agent Pause After Each Call - This option if set to Y will pause the agent after every call automatically. Default is N. + + + + + +



    + + VICIDIAL_LISTS TABLE

    +
    +
    + List ID - 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. Must be a number greater than 100. + +
    +
    +
    + List Name - This is the description of the list, it must be between 2 and 20 characters in length. + +
    +
    +
    + List Description - This is the memo field for the list, it is optional. + +
    +
    +
    + List Change Date - This is the last time that the settings for this list were modified in any way. + +
    +
    +
    + List Last Call Date - This is the last time that lead was dialed from this list. + +
    +
    +
    + Campaign - This is the campaign that this list belongs to. A list can only be dialed on a single campaign at one time. + +
    +
    +
    + Active - This defines whether the list is to be dialed on or not. + +
    +
    +
    + Reset Lead-Called-Status for this list - 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. + +
    +
    +
    + Reset Times - This field allows you to put times in, separated by a dash-, that this list will be automatically reset by the system. The times must be in 24 hour format with no punctuation, for example 0800-1700 would reset the list at 8AM and 5PM every day. Default is empty. + +
    +
    +
    + Agent Script Override - If this field is set, this will be the script that the agent sees on their screen instead of the campaign script when the lead is from this list. Default is not set. + +
    +
    +
    + Campaign CID Override - If this field is set, this will override the campaign CallerID that is set for calls that are placed to leads in this list. Default is not set. + +
    +
    +
    + Answering Machine Message Override - If this field is set, this will override the Answering Machine Message set in the campaign for customers in this list. Default is not set. +
    +
    +
    + Drop Inbound Group Override - If this field is set, this in-group will be used for outbound calls within this list that drop from the outbound campaign instead of the drop in-group set in the campaign detail screen. Default is not set. + +
    +
    +
    + Xfer-Conf Number Override - These five fields allow for you to override the Transfer Conference number presets when the lead is from this list. Default is blank. + + +
    +
    +
    + VICIDIAL DNC List - 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 numbers to this list so that they will not be called by campaigns that use the internal DNC list. There is also the option to add leads to the campaign-specific DNC lists for those campaigns that have them. If you have the active DNC option set to AREACODE then you can also use area code wildcard entries like this 201XXXXXXX to block all calls to the 201 areacode when enabled. + + + +



    + + VICIDIAL_INBOUND_GROUPS TABLE

    +
    +
    + Group ID - 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. + +
    +
    +
    + Group Name - This is the description of the group, it must be between 2 and 30 characters in length. Cannot include dashes, plusses or spaces . + +
    +
    +
    + Group Color - 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. + +
    +
    +
    + Active - This determines whether this group show up in the selection box when a VICIDIAL agent logs in. + +
    +
    +
    + Web Form - 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. + +
    +
    +
    + Next Agent Call - This determines which agent receives the next call that is available: +
      - random: orders by the random update value in the vicidial_live_agents table +
      - oldest_call_start: orders by the last time an agent was sent a call. Results in agents receiving about the same number of calls overall. +
      - oldest_call_finish: orders by the last time an agent finished a call. AKA agent waiting longest receives first call. +
      - 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. +
      - inbound_group_rank: orders by the rank given to the agent for the specific inbound group. Highest to Lowest. +
      - fewest_calls: orders by the number of calls received by an agent for that specific inbound group. Least calls first. +
      - campaign_rank: orders by the rank given to the agent for the campaign. Highest to Lowest. +
      - fewest_calls_campaign: orders by the number of calls received by an agent for the campaign. Least calls first. +
      - longest_wait_time: orders by the amount of time agent has been actively waiting for a call. +
    + +
    +
    +
    + Queue Priority - This setting is used to define the order in which the calls from this inbound group should be answered in relation to calls from other inbound groups. + +
    +
    + Fronter Display - 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. + +
    +
    +
    + Campaign Script - 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. + +
    +
    +
    + Get Call Launch - 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. + +
    +
    +
    + Xfer-Conf DTMF - 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. If you want to allow Consultative Transfers, a fronter to a closer, have the agent use the CONSULTATIVE checkbox, which does not work for third party non-ViciDial consultative calls. For those just have the agent click the Dial With Customer button. Then the agent can just LEAVE-3WAY-CALL and move on to their next call. If you want to allow Blind transfers of customers to a VICIDIAL AGI script for logging or an IVR, then place AXFER in the number-to-dial field. You can also specify an custom extension after the AXFER, for instance if you want to do a call to a special IVR you have set to extension 83900 you would put AXFER83900 in the number-to-dial field. + +
    +
    +
    + Timer Action - This feature allows you to trigger actions after a certain amount of time. the D1 and D2 DIAL options will launch a call to the Transfer Conference Number presets and send them to the agent session, this is usually used for simple IVR validation AGI applications or just to play a pre-recorded message. WEBFORM will open the web form address. MESSAGE_ONLY will simply display the message that is in the field below. NONE will disable this feature and is the default. This setting will override the Campaign settings. + +
    +
    +
    + Timer Action Message - This is the message that appears on the agent screen at the time the Timer Action is triggered. + +
    +
    +
    + Timer Action Seconds - This is the amount of time after the call is connected to the customer that the Timer Action is triggered. Default is -1 which is also inactive. + +
    +
    +
    + Drop Call Seconds - The number of seconds a call will stay in queue before being considered a DROP. + +
    +
    +
    + Drop Action - This menu allows you to choose what happens to a call when it has been waiting for longer than what is set in the Drop Call Seconds field. HANGUP will simply hang up the call, MESSAGE will send the call the Drop Exten that you have defined below, VOICEMAIL will send the call to the voicemail box that you have defined below and IN_GROUP will send the call to the Inbound Group that is defined below. + +
    +
    +
    + Drop Exten - If Drop Action is set to MESSAGE, this is the dial plan extension that the call will be sent to if it reaches Drop Call Seconds. + +
    +
    +
    + Voicemail - If Drop Action is set to VOICEMAIL, the call DROP would instead be directed to this voicemail box to hear and leave a message. + +
    +
    +
    + Drop Transfer Group - If Drop Action is set to IN_GROUP, the call will be sent to this inbound group if it reaches Drop Call Seconds. + +
    +
    +
    + Call Time - This is the call time scheme to use for this inbound group. Keep in mind that the time is based on the server time. Default is 24hours. + +
    +
    +
    + After Hours Action - The action to perform if it is after hours as defined in the call time for this inbound group. HANGUP will immediately hangup the call, MESSASGE will play the file in the After Hours Message Filenam field, EXTENSION will send the call to the After Hours Extension in the dialplan and VOICEMAIL will send the call to the voicemail box listed in the After Hours Voicemail field, IN_GROUP will send the call to the inbound group selected in the After Hours Transfer Group select list. Default is MESSAGE. + +
    +
    +
    + After Hours Message Filename - The audio file located on the server to be played if the Action is set to MESSAGE. Default is vm-goodbye + +
    +
    +
    + After Hours Extension - The dialplan extension to send the call to if the Action is set to EXTENSION. Default is 8300. + +
    +
    +
    + After Hours Voicemail - The voicemail box to send the call to if the Action is set to VOICEMAIL. + +
    +
    +
    + After Hours Transfer Group - If After Hours Action is set to IN_GROUP, the call will be sent to this inbound group if it enters the in-group outside of the call time scheme defined for the in-group. + +
    +
    +
    + No Agents No Queueing - If this field is set to Y or NO_PAUSED then no calls will be put into the queue for this in-group if there are no agents logged in and the calls will go to the No Agent No Queue Action. The NO_PAUSED option will also not send the callers into the queue if there are only paused agents in the in-group. Default is N. + +
    +
    +
    + No Agent No Queue Action - If No Agent No Queue is enabled, then this field defines where the call will go if there are no agents in the In-Group. Default is MESSAGE, this plays the sound files in the Action Value field and then hangs up. + +
    +
    +
    + No Agent No Queue Action Value - This is the value for the Action above. Default is nbdy-avail-to-take-call|vm-goodbye. + +
    +
    +
    + Welcome Message Filename - The audio file located on the server to be played when the call comes in. If set to ---NONE--- then no message will be played. Default is ---NONE---. This field as with the other audio fields in In-Groups, with the exception of the Agent Alert Filename, can have multiple audio files played if you put a pipe-separated list of audio files into the field. + +
    +
    +
    + Play Welcome Message - These settings select when to play the defined welcome message, ALWAYS will play it every time, NEVER will never play it, IF_WAIT_ONLY will only play the welcome message if the call does not immediately go to an agent, and YES_UNLESS_NODELAY will always play the welcome message unless the NO_DELAY setting is enabled. Default is ALWAYS. + +
    +
    +
    + Music On Hold Context - The music on hold context to use when the customer is placed on hold. Default is default. + +
    +
    +
    + On Hold Prompt Filename - The audio file located on the server to be played at a regular interval when the customer is on hold. Default is generic_hold. This audio file MUST be 9 seconds or less in length. + +
    +
    +
    + On Hold Prompt Interval - The length of time in seconds to wait before playing the on hold prompt. Default is 60. To disable the On Hold Prompt, set the interval to 0. + +
    +
    +
    + Play Place in Line - This defines whether the caller will hear their place in line when they enter the queue as well as when they hear the announcemend. Default is N. + +
    +
    +
    + Play Estimated Hold Time - This defines whether the caller will hear the estimated hold time before they are transferred to an agent. Default is N. If the customer is on hold and hears this estimated hold time message, the minimum time that will be played is 15 seconds. + +
    +
    +
    + Hold Time Option - This allows you to specify the routing of the call if the estimated hold time is over the amount of seconds specified below. Default is NONE. + +
    +
    +
    + Hold Time Option Seconds - If Hold Time Option is set to anything but NONE, this is the number of seconds of estimated hold time that will trigger the hold time option. Default is 360 seconds. + +
    +
    +
    + Hold Time Option Extension - If Hold Time Option is set to EXTENSION, this is the dialplan extension that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds. + +
    +
    +
    + Hold Time Option Voicemail - If Hold Time Option is set to VOICEMAIL, this is the voicemail box that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds. + +
    +
    +
    + Hold Time Option Transfer In-Group - If Hold Time Option is set to IN_GROUP, this is the inbound group that the call will be sent to if the estimated hold time exceeds the Hold Time Option Seconds. + +
    +
    +
    + Hold Time Option Callback Filename - If Hold Time Option is set to CALLERID_CALLBACK, this is the filename prompt that is played before the call is logged as a new lead to the list ID specified below if the estimated hold time exceeds the Hold Time Option Seconds. + +
    +
    +
    + Hold Time Option Callback List ID - If Hold Time Option is set to CALLERID_CALLBACK, this is the List ID the call is added to as a new lead if the estimated hold time exceeds the Hold Time Option Seconds. + +
    +
    +
    + Agent Alert Filename - The audio file to play to an agent to announce that a call is coming to the agent. To not use this function set this to X. Default is ding. + +
    +
    +
    + Agent Alert Delay - The length of time in milliseconds to wait before sending the call to the agent after playing the on Agent Alert Extension. Default is 1000. + +
    +
    +
    + Default Transfer Group - This field is the default In-Group that will be automatically selected when the agent goes to the transfer-conference frame in their agent interface. + +
    +
    +
    + In-Group Recording Override - This field allows for the overriding of the campaign call recording setting. This setting can be overridden by the vicidial_user recording override setting. DISABLED will not override the campaign recording setting. 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. ALLFORCE will start recording on the client whenever a call is sent to an agent giving the agent no option to stop recording. + +
    +
    +
    + In-Group Recording Filename - This field will override the Campaign Recording Filenaming Scheme unless it is set to NONE. The allowed variables are CAMPAIGN CUSTPHONE FULLDATE TINYDATE EPOCH AGENT. The default is FULLDATE_AGENT and would look like this 20051020-103108_6666. Another example is CAMPAIGN_TINYDATE_CUSTPHONE which would look like this TESTCAMP_51020103108_3125551212. 50 char max. Default is NONE. + + 0) + { + ?> +
    +
    +
    + QC Enabled - Setting this field to Y allows for the agent Quality Control features to work. Default is N. + +
    +
    +
    + QC Statuses - This area is where you select which statuses of leads should be gone over by the QC system. Place a check next to the status that you want QC to review. + +
    +
    +
    + QC Shift - This is the shift timeframe used to pull QC records for an inbound_group. The days of the week are ignored for these functions. + +
    +
    +
    + QC Get Record Launch- This allows one of the following actions to be triggered upon a QC agent receiving a new record. + +
    +
    +
    + QC Show Recording - This allows for a recording that may be linked with the QC record to be display in the QC agent screen. + +
    +
    +
    + QC WebForm Address - This is the website address that a QC agent can go to when clicking on the WEBFORM link in the QC screen. + +
    +
    +
    + QC Script - This is the script that can be used by QC agents in the SCRIPT tab in the QC screen. + + +
    +
    +
    + Hold Recall Transfer In-Group - If a customer calls back to this in-group more than once and this is not set to NONE, then the call will automatically be sent on to the In-Group selected in this field. Default is NONE. + +
    +
    +
    + No Delay Call Route - Setting this to Y will remove all wait times and audio prompts and attempt to send the call right to an agent. Does not override welcome message or on hold prompt settings. Default is N. + +
    +
    +
    + Stats Percent of Calls Answered Within X seconds - This field allows you to set the number of hold seconds that the realtime stats display will use to calculate the percentage of answered calls that were answered within X number of seconds on hold. + +
    +
    +
    + Start Call URL - This web URL address is not seen by the agent, but it is called every time a call is sent to an agent if it is populated. Uses the same variables as the web form fields and scripts. Default is blank. + +
    +
    +
    + Dispo Call URL - This web URL address is not seen by the agent, but it is called every time a call is dispositioned by an agent if it is populated. Uses the same variables as the web form fields and scripts. dispo and talk_time are the variables you can use to retrieve the agent-defined disposition for the call and the actual talk time in seconds of the call. Default is blank. + +
    +
    +
    + Default Group Alias - If you have allowed Group Aliases for the campaign that the agent is logged into then this is the group alias that is selected first by default on a call coming in from this inbound group when the agent chooses to use a Group Alias for an outbound manual call. Default is NONE or empty. + + + + + +



    + + VICIDIAL_INBOUND_DIDS TABLE

    +
    +
    +
    + DID Extension - This is the number, extension or DID that will trigger this entry and that you will route within the system using this function. There is a reserved default DID that you can use which is just the word -default- without the dashes, that will allos you to send any call that does not match any other existing patterns to the default DID. + +
    +
    +
    + DID Description - This is the description of the DID routing entry. + +
    +
    +
    + DID Active - This the field where you set the DID entry to active or not. Default is Y. + +
    +
    +
    + DID Route - This the type of route that you set the DID to use. EXTEN will send calls to the extension entered below, VOICEMAIL will send calls directly to the voicemail box entered below, AGENT will send calls to a VICIDIAL agent if they are logged in, PHONE will send the call to a phones entry selected below, IN_GROUP will send calls directly to the specified inbound group. Default is EXTEN. CALLMENU will send the call to the defined Call Menu. + +
    +
    +
    + Extension - If EXTEN is selected as the DID Route, then this is the dialplan extension that calls will be sent to. Default is 9998811112, no-service. + +
    +
    +
    + Extension Context - If EXTEN is selected as the DID Route, then this is the dialplan context that calls will be sent to. Default is default. + +
    +
    +
    + Voicemail Box - If VOICEMAIL is selected as the DID Route, then this is the voicemail box that calls will be sent to. Default is empty. + +
    +
    +
    + Phone Extension - If PHONE is selected as the DID Route, then this is the phone extension that calls will be sent to. + +
    +
    +
    + Phone Server IP - If PHONE is selected as the DID Route, then this is the server IP for the phone extension that calls will be sent to. + +
    +
    +
    + Call Menu - If CALLMENU is selected as the DID Route, then this is the Call Menu that calls will be sent to. + +
    +
    +
    + User Agent - If AGENT is selected as the DID Route, then this is the VICIDIAL Agent that calls will be sent to. + +
    +
    +
    + User Unavailable Action - If AGENT is selected as the DID Route, and the user is not logged in or available, then this is the route that the calls will take. + +
    +
    +
    + User Route Settings In-Group - If AGENT is selected as the DID Route, then this is the In-Group that will be used for the queue settings as the caller is waiting to be sent to the agent. Default is AGENTDIRECT. + +
    +
    +
    + In-Group ID - If IN_GROUP is selected as the DID Route, then this is the In-Group that calls will be sent to. + +
    +
    +
    + In-Group Call Handle Method - If IN_GROUP is selected as the DID Route, then this is the call handling method used for these calls. CID will add a new lead record with every call using the CallerID as the phone number, CIDLOOKUP will attempt to lookup the phone number by the CallerID in the entire system, CIDLOOKUPRL will attempt to lookup the phone number by the CallerID in only one specified list, CIDLOOKUPRC will attempt to lookup the phone number by the CallerID in all of the lists that belong to the specified campaign, CLOSER is specified for VICIDIAL Closer calls, ANI will add a new lead record with every call using the ANI as the phone number, ANILOOKUP will attempt to lookup the phone number by the ANI in the entire system, ANILOOKUPRL will attempt to lookup the phone number by the ANI in only one specified list, XDIGITID will prompt the caller for an X digit code before the call will be put into the queue, VIDPROMPT will prompt the caller for their ID number and will create a new lead record with the CallerID as the phone number and the ID as the Vendor ID, VIDPROMPTLOOKUP will attempt to lookup the ID in the entire system, VIDPROMPTLOOKUPRL will attempt to lookup the vendor ID by the ID in only one specified list, VIDPROMPTLOOKUPRC will attempt to lookup the vendor ID by the ID in all of the lists that belong to the specified campaign. Default is CID. + +
    +
    +
    + In-Group Agent Search Method - If IN_GROUP is selected as the DID Route, then this is the agent search method to be used by the inbound group, LO is Load-Balanced-Overflow and will try to send the call to an agent on the local server before trying to send it to an agent on another server, LB is Load-Balanced and will try to send the call to the next agent no matter what server they are on, SO is Server-Only and will only try to send the calls to agents on the server that the call came in on. Default is LB. + +
    +
    +
    + In-Group List ID - If IN_GROUP is selected as the DID Route, then this is the List ID that leads may be searched through and that leads will be inserted into if necessary. + +
    +
    +
    + In-Group Campaign ID - If IN_GROUP is selected as the DID Route, then this is the Campaign ID that leads may be searched for in if the call handle method is CIDLOOKUPRC. + +
    +
    +
    + In-Group Phone Code - If IN_GROUP is selected as the DID Route, then this is the Phone Code used if a new lead is created. + + + + +



    + + VICIDIAL_CALL MENU TABLE

    +
    +
    + Menu ID - This is the ID for this step of the call menu. This will also show up as the context that is used in the dialplan for this call menu. + +
    +
    +
    + Menu Name - This field is the descriptive name for the call menu. + +
    +
    +
    + Menu Prompt - This field contains the file name of the audio prompt to play at the beginning of this menu. You can enter multiple propmts in this field and the other prompt fields by separating them with a pipe character. + +
    +
    +
    + Menu Timeout - This field is where you set the timeout in seconds that the menu will wait for the caller to enter in a DTMF choice. Setting this field to zero 0 will mean that there will be no wait time after the prompt is played. + +
    +
    +
    + Menu Timeout Prompt - This field contains the file name of the audio prompt to play when the timeout has been reached. Default is NONE to play no audio at timeout. + +
    +
    +
    + Menu Invalid Prompt - This field contains the file name of the audio prompt to play when the caller has selected an invalid option. Default is NONE to play no audio at invalid. + +
    +
    +
    + Menu Repeat - This field is where you define the number of times that the menu will play after the first time if no valid choice is made by the caller. Default is 1 to repeat the menu once. + +
    +
    +
    + Menu Time Check - This field is where you can select whether to restrict the Call Menu access to the specific hours set up in the selected Call Time. If the Call Time is blank, this setting will be ignored. Default is 0 for disabled. + +
    +
    +
    + Call Time ID - This is the Call Time ID that will be used to restrict calling times if the Menu Time Check option is enabled. + +
    +
    +
    + Track Calls in Real-Time Report - This field is where you can select whether you want the call to be tracked in the Real-time screen as an incoming IVR type call. Default is 1 for active. + +
    +
    +
    + Tracking Group - This is the ID that you can use to track calls to this Call Menu when looking at the IVR Report. The list includes CALLMENU as the default as well as all of the In-Groups. + +
    +
    +
    + Option Value - This field is where you define the menu option, possible choices are: 0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D,TIMECHECK. The special option TIMECHECK can be used only if you have Menu Time Check enabled and there is a Call Time defined for the Menu. To delete an Option, just set the Route to REMOVE and the option will be deleted when you click the SUBMIT button. + +
    +
    +
    + Option Description - This field is where you can describe the option, this description will be put into the dialplan as a comment above the option. + +
    +
    +
    + Option Route - This menu contains the options for where to send the call if this option is selected: CALLMENU,INGROUP,DID,HANGUP,EXTENSION,PHONE. For CALLMENU, the Route Value should be the Menu ID of the Call Menu that you want the call sent to. For INGROUP, the In-Group that you want the call to be sent to needs to be selected as well as the other 5 options that need to be set to properly route a call to an Inbound Group. For DID, the Route Value needs to be the DID pattern that you want to send the call to. For HANGUP, the Route Value can be the name of an audio file to play before hanging up the call. For EXTENSION, the Route Value needs to be the dialplan extension you want to send the call to, and the Route Value Context is the context that extension is located in, if left blank the context will default to default. For PHONE, the Route Value needs to be the phone login value for the phones entry that you want to send the call to. For VOICEMAIL, the Route Value needs to be the voicemail box number, the unavailable mesage will be played. For AGI, the Route Value needs to be the agi script and any values taht need to be passed to it. + +
    +
    +
    + Option Route Value - This field is where you enter the value that defines where in the selected Option Route that the call is to be directed to. + +
    +
    +
    + Option Route Value Context - This field is optional and only used for EXTENSION Option Routes. + +
    +
    +
    + Custom Dilplan Entry - This field allows you to enter in any dialplan elements that you want for the Call Menu. + + + + + +



    + + VICIDIAL_REMOTE_AGENTS TABLE

    +
    +
    + User ID Start - 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. + +
    +
    +
    + Number of Lines - 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. + +
    +
    +
    + Server IP - A remote agent entry is only good for one specific server, here is where you select which server you want. + +
    +
    +
    + External Extension - This is the number that you want the calls forwarded to. Make sure that it is a full dial plan 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. + +
    +
    +
    + Status - 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. + +
    +
    +
    + Campaign - 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. + +
    +
    +
    + Inbound Groups - Here is where you select the inbound groups you want to receive calls from if you have selected the CLOSER campaign. + + +



    + + VICIDIAL_CAMPAIGN_LISTS

    +
    +
    + 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. + + +



    + + VICIDIAL_CAMPAIGN_STATUSES TABLE

    +
    +
    + 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. The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls. The Category option allows you to group several statuses into a catogy that can be used for statistical analysis. + + + + 0) + { + ?> +



    + + VICIDIAL_CAMPAIGN_HOTKEYS TABLE

    +
    +
    + Through the use of custom campaign hot keys, agents that use the vicidial web-client can hang up and disposition calls just by pressing a single key on their keyboard. There are two special HotKey options that you can use in conjunction with Alternate Phone number dialing, ALTPH2 - Alternate Phone Hot Dial and ADDR3-----Address3 Hot Dial allow an agent to use a hotkey to hang up their call, stay on the same lead, and dial another contact number from that lead. + + + + + +



    + + VICIDIAL_LEAD_RECYCLE TABLE

    +
    +
    + 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. + + + + + +



    + + VICIDIAL AUTO ALT DIAL STATUSES

    +
    +
    + If the Auto Alt-Number Dialing field is set, then the leads that are dispositioned under these auto alt dial statuses will have their alt_phone and-or address3 fields dialed after any of these no-answer statuses are set. + + + + + +



    + + VICIDIAL AGENT PAUSE CODES

    +
    +
    + If the Agent Pause Codes Active field is set to active then the agents will be able to select from these pause codes when they click on the PAUSE button on their screens. This data is then stored in the vicidial agent log. The Pause code must contain only letters and numbers and be less than 7 characters long. The pause code name can be no longer than 30 characters. + + + + + +



    + + VICIDIAL_USER_GROUPS TABLE

    +
    +
    + User Group - 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. + +
    +
    +
    + Group Name - This is the description of the vicidial user group max of 40 characters. + +
    +
    +
    + Force Timeclock Login - This option allows you to not let an agent log in to the VICIDIAL agent interface if they have not logged into the timeclock. Default is N. There is an option to exempt admin users, levels 8 and 9. + +
    +
    +
    + Shift Enforcement - This setting allows you to restrict agent logins based upon the shifts that are selected below. OFF will not enforce shifts at all. START will only enforce the login time but will not affect an agent that is running over their shift time if they are already logged in. ALL will enforce shift start time and will log an agent out after they run over the end of their shift time. Default is OFF. + +
    +
    +
    + Group Shifts - This is a selectable list of shifts that can restrict the agents login time on the system. + +
    +
    +
    + Allowed Campaigns - This is a selectable list of Campaigns to which members of this user group can log in to. The ALL-CAMPAIGNS option allows the users in this group to see and log in to any campaign on the system. + +
    +
    +
    + Agent Status Viewable Groups - This is a selectable list of User Groups and user functions to which members of this user group can view the status of as well as transfer calls to inside of the agent screen. The ALL-GROUPS option allows the users in this group to see and transfer calls to any user on the system. The CAMPAIGN-AGENTS option allows users in this group to see and transfer calls to any user in the campaign that they are logged into. + +
    +
    +
    + Agent Status View Time - This option defines whether the agent will see the amount of time that users in their agent sidebar have been in their current status. Default is N for no or disabled. + + 0) + { + ?> +
    +
    +
    + QC Allowed Campaigns - This is a selectable list of Campaigns which members of this user group will be able to QC. The ALL-CAMPAIGNS option allows the users in this group to QC any campaign on the system. + +
    +
    +
    + QC Allowed Inbound Groups - This is a selectable list of Inbound Groups which members of this user group will be able to QC. The ALL-GROUPS option allows the users in this user group to QC any inbound group on the system. + + + + + +



    + + VICIDIAL_SCRIPTS TABLE

    +
    +
    + Script ID - 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. + +
    +
    + Script Name - 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. + +
    +
    + Script Comments - 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. + +
    +
    + Script Text - 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, lead_id, campaign, phone_login, group, channel_group, SQLdate, epoch, uniqueid, customer_zap_channel, server_ip, SIPexten, session_id, dialed_number, dialed_label, rank, owner, camp_script, in_script, script_width, script_height, recording_filename, recording_id. For example, this sentence would print the persons name in it----

    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?

    This would read----

    Hello, can I speak with John Doe please? Well hello Mr. Doe how are you today?

    You can also use an iframe to load a separate window within the SCRIPT tab, here is an example with prepopulated variables: + +
    + <iframe src="http://astguiclient.sf.net/test_VICIDIAL_output.php?lead_id=--A--lead_id--B--&vendor_id=--A--vendor_lead_code--B--&list_id=--A--list_id--B--&gmt_offset_now=--A--gmt_offset_now--B--&phone_code=--A--phone_code--B--&phone_number=--A--phone_number--B--&title=--A--title--B--&first_name=--A--first_name--B--&middle_initial=--A--middle_initial--B--&last_name=--A--last_name--B--&address1=--A--address1--B--&address2=--A--address2--B--&address3=--A--address3--B--&city=--A--city--B--&state=--A--state--B--&province=--A--province--B--&postal_code=--A--postal_code--B--&country_code=--A--country_code--B--&gender=--A--gender--B--&date_of_birth=--A--date_of_birth--B--&alt_phone=--A--alt_phone--B--&email=--A--email--B--&security_phrase=--A--security_phrase--B--&comments=--A--comments--B--&user=--A--user--B--&campaign=--A--campaign--B--&phone_login=--A--phone_login--B--&fronter=--A--fronter--B--&closer=--A--user--B--&group=--A--group--B--&channel_group=--A--group--B--&SQLdate=--A--SQLdate--B--&epoch=--A--epoch--B--&uniqueid=--A--uniqueid--B--&customer_zap_channel=--A--customer_zap_channel--B--&server_ip=--A--server_ip--B--&SIPexten=--A--SIPexten--B--&session_id=--A--session_id--B--&dialed_number=--A--dialed_number--B--&dialed_label=--A--dialed_label--B--&rank=--A--rank--B--&owner=--A--owner--B--&phone=--A--phone--B--&camp_script=--A--camp_script--B--&in_script=--A--in_script--B--&script_width=--A--script_width--B--&script_height=--A--script_height--B--&recording_filename=--A--recording_filename--B--&recording_id=--A--recording_id--B--&" style="width:580;height:290;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="460" height="290" STYLE="z-index:17"> + </iframe> +
    + +
    +
    +
    + Active - This determines whether this script can be selected to be used by a campaign. + + + + + + 0) + { + ?> +



    + + VICIDIAL_LEAD_FILTERS TABLE

    +
    +
    + Filter ID - 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. + +
    +
    + Filter Name - This is a more descriptive name of the Filter. This is a short summary of the filter. max 30 characters, minimum of 2 characters. + +
    +
    + Filter Comments - This is where you can place comments for a Vicidial Filter such as -calls all California leads-. max 255 characters, minimum of 2 characters. + +
    +
    + Filter SQL - 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 -. + + + + + +



    + + VICIDIAL_CALL TIMES TABLE

    +
    +
    + Call Time ID - 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 - 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 - 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 - 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 - 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 - This is the list of State specific call time definitions that are followed in this Call Time Definition. + +
    +
    + State Call Time State - 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. + + + + +



    + + VICIDIAL_SHIFTS TABLE

    +
    +
    + Shift ID - This is the short name of a Vicidial Shift Definition. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 20 characters, minimum of 2 characters. + +
    +
    + Shift Name - This is a more descriptive name of the Shift Definition. This is a short summary of the Shift definition. max 50 characters, minimum of 2 characters. + +
    +
    + Shift Start Time - This is the time that the campaign shift begins. Must only be numbers, 9:30 AM would be 0930 and 5:00 PM would be 1700. + +
    +
    + Shift Length - This is the time in Hours and Minutes that the campaign shift lasts. 8 hours would be 08:00 and 7 hours and 30 minutes would be 07:30. + +
    +
    + Shift Weekdays - In this section you should choose the days of the week that this shift is active. + + + + + +



    +
    + Audio Store - This utility allows you to upload audio files to the web server so that they can be distributed to all of the ViciDial servers in a multi-server cluster. An important note, only two audio file types will work, .wav files that are PCM 16bit 8k and .gsm files that are 8bit 8k. Please verify that your files are properly formatted before uploading them here. + + + +



    + + VICIDIAL_MUSIC_ON_HOLD TABLE

    +
    +
    + Music On Hold ID - This is the short name of a Music On Hold entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 100 characters, minimum of 2 characters. + +
    +
    + Music On Hold Name - This is a more descriptive name of the Music On Hold entry. This is a short summary of the Music On Hold context and will show as a comment in the musiconhold-vicidial.conf file. max 255 characters, minimum of 2 characters. + +
    +
    + Active - This option allows you to set the Music On Hold entry to active or inactive. Inactive will remove the entry from the conf files. + +
    +
    + Random Order - This option allows you to define the playback of the audio files in a random order. If set to N then the defined order will be used. + +
    +
    + Filename - To add a new audio file to a Music On Hold entry the file must first be in the audio store, then you can select the file and click submit to add it to the file list. Music on hold is updated once per minute if there have been changes made. Any files not listed in a music on hold entry that are present in the music on hold folder will be deleted. + + + + +



    + + VICIDIAL_TTS_PROMPTS TABLE

    +
    +
    + TTS ID - This is the short name of a TTS entry. This needs to be a unique identifier. Do not use any spaces or punctuation for this field. max 50 characters, minimum of 2 characters. + +
    +
    + TTS Name - This is a more descriptive name of the TTS entry. This is a short summary of the TTS definition. max 100 characters, minimum of 2 characters. + +
    +
    + Active - This option allows you to set the TTS entry to active or inactive. + +
    +
    + TTS Text - This is the actual Text To Speech data field that is sent to Cepstral for creation of the audio file to be played to the customer. you can use Speech Synthesis Markup Language -SSML- in this field, for example, <break time='1000ms'/> for a 1 second break. You can also use several variables such as first name, last name and title as ViciDial variables just like you do in a Script: --A--first_name--B--. Here is a list of the available variables: lead_id, entry_date, modify_date, status, user, vendor_lead_code, source_id, list_id, phone_number, title, first_name, middle_initial, last_name, address1, address2, address3, city, state, province, postal_code, country_code, gender, date_of_birth, alt_phone, email, security_phrase, comments, called_count, last_local_call_time, rank, owner + + + + +



    + + VICIDIAL_VOICEMAIL TABLE

    +
    +
    + Voicemail ID - This is the all numbers identifier of this mailbox. This must not be a duplicate of an existing voicemail ID or the voicemail ID of a phone on the system, minimum of 2 characters. + +
    +
    + Name - This is name associated with this voicemail box. max 100 characters, minimum of 2 characters. + +
    +
    + Password - This is the password that is used to gain access to the voicemail box when dialing in to check messages max 10 characters, minimum of 2 characters. + +
    +
    + Active - This option allows you to set the voicemail box to active or inactive. If the box is inactive you cannot leave messages on it and you cannot check messages in it. + +
    +
    + Email - This optional setting allows you to have the voicemail messages sent to an email account, if your system is set up to send out email. If this field is empty then no emails will be sent out. + +
    +
    + Delete Voicemail After Email - This optional setting allows you to have the voicemail messages deleted from the system after they have been emailed out. Default is N. + + + + + 0) + { + ?> + +



    + + VICIDIAL LIST LOADER FUNCTIONALITY

    +
    +
    + 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. The lead loader 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, but it does allow you to check for duplicates in itself, within the campaign or within the entire system. Also, make sure that you have created the list that these leads are to be under so that you can use them. Here is a list of the fields in their proper order for the lead files: +
      +
    1. Vendor Lead Code - shows up in the Vendor ID field of the GUI +
    2. Source Code - internal use only for admins and DBAs +
    3. List ID - the list number that these leads will show up under +
    4. Phone Code - the prefix for the phone number - 1 for US, 01144 for UK, 01161 for AUS, etc +
    5. Phone Number - must be at least 8 digits long +
    6. Title - title of the customer - Mr. Ms. Mrs, etc... +
    7. First Name +
    8. Middle Initial +
    9. Last Name +
    10. Address Line 1 +
    11. Address Line 2 +
    12. Address Line 3 +
    13. City +
    14. State - limited to 2 characters +
    15. Province +
    16. Postal Code +
    17. Country +
    18. Gender +
    19. Date of Birth +
    20. Alternate Phone Number +
    21. Email Address +
    22. Security Phrase +
    23. Comments +
    + +
    NOTES: The Excel Lead loader functionality is enabled by a series of perl scripts and needs to have a properly configured /etc/astguiclient.conf 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. Also, for duplication checks against gampaign lists, the list that has new leads going into it does need to be created in the system before you start to load the leads. + + + + +



    + + + + + + + PHONES TABLE

    +
    +
    + Phone extension - 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. + +
    +
    +
    + Dial Plan Number - 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 + +
    +
    +
    + Voicemail Box - 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. + +
    +
    +
    + Outbound CallerID - 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. + +
    +
    +
    + Phone IP address - This field is for the phone's IP address if it is a VOIP phone. This is an optional field + +
    +
    +
    + Computer IP address - This field is for the user's computer IP address. This is an optional field + +
    +
    +
    + Server IP - This menu is where you select which server the phone is active on. + +
    +
    +
    + Login - The login used for the phone user to login to the client applications. + +
    +
    +
    + Password - The password used for the phone user to login to the client applications. IMPORTANT, this is the password only for the agent web interface phone login, to change the sip.conf or iax.conf password, or secret, for this phone device you need to modify the Conf File Secret field further down on this page. + +
    +
    +
    + Status - 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. + +
    +
    +
    + Active Account - Whether the phone is active to put it in the list in the GUI client. + +
    +
    +
    + Phone Type - Purely for administrative notes. + +
    +
    +
    + Full Name - Used by the GUIclient in the list of active phones. + +
    +
    +
    + Company - Purely for administrative notes. + +
    +
    +
    + Phones Email - The email address associated with this phone entry. This is used for voicemail settings. + +
    +
    + Delete Voicemail After Email - This optional setting allows you to have the voicemail messages deleted from the system after they have been emailed out. Default is N. + +
    +
    +
    + Picture - Not yet Implemented. + +
    +
    +
    + New Messages - Number of new voicemail messages for this phone on the Asterisk server. + +
    +
    +
    + Old Messages - Number of old voicemail messages for this phone on the Asterisk server. + +
    +
    +
    + Client Protocol - 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. + +
    +
    +
    + Local GMT - 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. + +
    +
    +
    + Phone Ring Timeout - This is the amount of time, in seconds, that the phone will ring in the dialplan before sending the call to voicemail. Default is 60 seconds. + +
    +
    +
    + Manager Login - This is the login that the GUI clients for this phone will use to access the Database where the server data resides. + +
    +
    +
    + Manager Secret - This is the password that the GUI clients for this phone will use to access the Database where the server data resides. + +
    +
    +
    + VICIDIAL Default User - 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. + +
    +
    +
    + VICIDIAL Default Pass - 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. + +
    +
    +
    + VICIDIAL Default Campaign - 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. + +
    +
    +
    + Park Exten - This is the default Parking extension for the client apps. Verify that a different one works before you change this. + +
    +
    +
    + Conf Exten - This is the default Conference park extension for the client apps. Verify that a different one works before you change this. + +
    +
    +
    + VICIDIAL Park Exten - This is the default Parking extension for VICIDIAL client app. Verify that a different one works before you change this. + +
    +
    +
    + VICIDIAL Park File - 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. + +
    +
    +
    + Monitor Prefix - This is the dial plan prefix for monitoring of Zap channels automatically within the astGUIclient app. Only change according to the extensions.conf ZapBarge extensions records. + +
    +
    +
    + Recording Exten - This is the dial plan 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. + +
    +
    +
    + VMAIL Main Exten - This is the dial plan extension going to check your voicemail. verify with extensions.conf file before changing. + +
    +
    +
    + VMAIL Dump Exten - This is the dial plan 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. + +
    +
    +
    + Exten Context - This is the dial plan context that the agent applications, like ViciDial, primarily use. 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. default is default. + +
    +
    +
    + Phone Context - This is the dial plan context that this phone will use to dial out. If you are running a call center and you do not want your agents to be able to dial out outside of the ViciDial applicaiton for example, then you would set this field to a dialplan context that does not exist, something like agent-nodial. default is default. + +
    +
    +
    + Conf File Secret - This is the secret, or password, for the phone in the iax or sip auto-generated conf file for this phone. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test. + +
    +
    +
    + DTMF send Channel - 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. + +
    +
    +
    + Outbound Call Group - 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. + +
    +
    +
    + Browser Location - 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. + +
    +
    +
    + Install Directory - 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. + +
    +
    +
    + CallerID URL - 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 + +
    +
    +
    + VICIDIAL Default URL - 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 + +
    +
    +
    + Call Logging - This is set to true if the call_log.agi file is in place in the extensions.conf file for all outbound and hang up 'h' extensions to log all calls. This should always be 1 because it is manditory for many astGUIclient and VICIDIAL features to work properly. + +
    +
    +
    + User Switching - 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 + +
    +
    +
    + Conferencing - Set to true to allow user to start conference calls with upto six external lines. + +
    +
    +
    + Admin Hang Up - Set to true to allow user to be able to hang up any line at will through astGUIclient. Good idea only to enable this for Admin users. + +
    +
    +
    + Admin Hijack - 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. + +
    +
    +
    + Admin Monitor - 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. + +
    +
    +
    + Call Park - 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 hang up. Usually enabled for all. + +
    +
    +
    + Updater Check - Set to true to display a popup warning that the updater time has not changed in 20 seconds. Useful for Admin users. + +
    +
    +
    + AF Logging - Set to true to log many actions of astGUIclient usage to a text file on the user's computer. + +
    +
    +
    + Queue Enabled - Set to true to have client apps use the Asterisk Central Queue system. Required for VICIDIAL and recommended for all users. + +
    +
    +
    + CallerID Popup - Set to true to allow for numbers defined in the extensions.conf file to send CallerID popup screens to astGUIclient users. + +
    +
    +
    + VMail Button - Set to true to display the VOICEMAIL button and the messages count display on astGUIclient. + +
    +
    +
    + Fast Refresh - 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. + +
    +
    +
    + Fast Refresh Rate - 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. + +
    +
    +
    + Persistant MySQL - 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. + +
    +
    +
    + Auto Dial Next Number - 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. + +
    +
    +
    + Stop Rec after each call - 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. + +
    +
    +
    + Enable SIPSAK Messages - If enabled the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. Feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0. + +
    +
    +
    + DBX Server - The MySQL database server that this user should be connecting to. + +
    +
    +
    + DBX Database - The MySQL database that this user should be connecting to. Default is asterisk. + +
    +
    +
    + DBX User - The MySQL user login that this user should be using when connecting. Default is cron. + +
    +
    +
    + DBX Pass - The MySQL user password that this user should be using when connecting. Default is 1234. + +
    +
    +
    + DBX Port - The MySQL TCP port that this user should be using when connecting. Default is 3306. + +
    +
    +
    + DBY Server - The MySQL database server that this user should be connecting to. Secondary server, not used currently. + +
    +
    +
    + DBY Database - The MySQL database that this user should be connecting to. Default is asterisk. Secondary server, not used currently. + +
    +
    +
    + DBY User - The MySQL user login that this user should be using when connecting. Default is cron. Secondary server, not used currently. + +
    +
    +
    + DBY Pass - The MySQL user password that this user should be using when connecting. Default is 1234. Secondary server, not used currently. + +
    +
    +
    + DBY Port - The MySQL TCP port that this user should be using when connecting. Default is 3306. Secondary server, not used currently. + +
    +
    +
    + Alias ID - The ID of the alias used to allow for phone load balanced logins. no spaces or other special characters allowed. Must be between 2 and 20 characters in length. + +
    +
    +
    + Alias Name - The name used to describe a phones alias, Must be between 2 and 50 characters in length. + +
    +
    +
    + Phones Logins List - The comma separated list of phone logins used when an agent logs in using phone load balanced logins. The Agent application will find the active server with the fewest agents logged into it and place a call from that server to the agent upon login. + +
    +
    +
    + Template ID - This is the conf file template ID that this phone entry will use for its Asterisk settings. Default is --NONE--. + +
    +
    +
    + Conf Override Settings - If populated, and the Template ID is set to --NONE-- then the contents of this field are used as the conf file entries for this phone. generate_vicidial_conf for this phones server must be set to Y for this to work. This field should NOT contain the [extension] line, that will be automatically generated. + +
    +
    +
    + Group Alias ID - The ID of the group alias used by agents to dial out calls from the VICIDIAL agent interface with different Caller IDs. no spaces or other special characters allowed. Must be between 2 and 20 characters in length. + +
    +
    +
    + Group Alias Name - The name used to describe a group alias, Must be between 2 and 50 characters in length. + +
    +
    +
    + Caller ID Number - The Caller ID number used in this Group Alias. Must be digits only. + +
    +
    +
    + Caller ID Name - The Caller ID name that can be sent out with this Group Alias. As far as we know this will only work in Canada on PRI circuits and using an IAX loop trunk through Asterisk. + + + + +



    + + SERVERS TABLE

    +
    +
    + Server ID - 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. + +
    +
    +
    + Server Description - The field where you use a small phrase to describe the Asterisk server. + +
    +
    +
    + Server IP Address - The field where you put the Network IP address of the Asterisk server. + +
    +
    +
    + Active - Set whether the Asterisk server is active or inactive. + +
    +
    +
    + System Load - These two statistics show the loadavg of a system times 100 and the CPU usage percentage of the server and is updated every minute. The loadavg should on average be below 100 multiplied by the number of CPU cores your system has, for optimal performance. The CPU usage percentage should stay below 50 for optimal performance. + +
    +
    +
    + Live Channels - This field shows the current number of Asterisk channels that are live on the system right now. It is important to note that the number of Asterisk channels is usually much higher than the number of actual calls on a system. This field is updated once every minute. + +
    +
    +
    + Disk Usage - This field will show the disk usage for every partition on this server. This field is updated once every minute. + +
    +
    +
    + Asterisk Version - 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. + +
    +
    +
    + Max VICIDIAL Trunks - 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. + +
    +
    +
    + Max Calls per Second - This setting determines the maximum number of calls that can be placed by the outbound auto-dialing script on this server per second. Must be from 1 to 100. Default is 20. + +
    +
    +
    + Telnet Host - 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. + +
    +
    +
    + Telnet Port - 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. + +
    +
    +
    + Manager User - The username or login used to connect genericly to the Asterisk server manager. Default is 'cron' + +
    +
    +
    + Manager Secret - The secret or password used to connect genericly to the Asterisk server manager. Default is '1234' + +
    +
    +
    + Manager Update User - 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. + +
    +
    +
    + Manager Listen User - 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. + +
    +
    +
    + Manager Send User - 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. + +
    +
    +
    + Conf File Secret - This is the secret, or password, for the server in the iax auto-generated conf file for this server on other servers. Limit is 20 characters alphanumeric dash and underscore accepted. Default is test. + +
    +
    +
    + Server GMT offset - The difference in hours from GMT time not adjusted for Daylight-Savings-Time of the server. Default is '-5' + +
    +
    +
    + VMail Dump Exten - The extension prefix used on this server to send calls directly through agc to a specific voicemail box. Default is '85026666666666' + +
    +
    +
    + VICIDIAL AD extension - The default extension if none is present in the campaign to send calls to for VICIDIAL auto dialing. Default is '8365' + +
    +
    +
    + Default Context - The default dial plan context used for scripts that operate for this server. Default is 'default' + +
    +
    +
    + System Performance - Setting this option to Y will enable logging of system performance stats for the server machine including system load, system processes and Asterisk channels in use. Default is N. + +
    +
    +
    + Server Logs - Setting this option to Y will enable logging of all VICIDIAL related scripts to their text log files. Setting this to N will stop writing logs to files for these processes, also the screen logging of asterisk will be disabled if this is set to N when Asterisk is started. Default is Y. + +
    +
    +
    + AGI Output - Setting this option to NONE will disable output from all VICIDIAL related AGI scripts. Setting this to STDERR will send the AGI output to the Asterisk CLI. Setting this to FILE will send the output to a file in the logs directory. Setting this to BOTH will send output to both the Asterisk CLI and a log file. Default is FILE. + +
    +
    +
    + VICIDIAL Balance Dialing - Setting this field to Y will allow the server to place balance calls for campaigns in VICIDIAL so that the defined dial level can be met even if there are no agents logged into that campaign on this server. Default is N. + +
    +
    +
    + VICIDIAL Balance Rank - This field allows you to set the order in which this server is to be used for balance dialing, if balance dialing is enabled. The server with the highest rank will be used first in placing Balance fill calls. Default is 0. + +
    +
    +
    + VICIDIAL Balance Offlimits - This setting defines the number of trunks to not allow VICIDIAL balance dialing to use. For example if you have 40 max vicidial trunks and balance offlimits is set to 10 you will only be able to use 30 trunk lines for VICIDIAL balance dialing. Default is 0. + +
    +
    +
    + Recording Web Link - This setting allows you to override the default of the display of the recording link in the admin web pages. Default is SERVER_IP. + +
    +
    +
    + Alternate Recording Server IP - This setting is where you can put a server IP or other machine name that can be used in place of the server_ip in the links to recordings within the admin web pages. Default is empty. + +
    +
    +
    + Active Asterisk Server - If Asterisk is not running on this server, or if VICIDIAL should not be using this server, or if are only using this server for other scripts like the hopper loading script you would want to set this to N. Default is Y. + +
    +
    +
    + Active Agent Server - Setting this option to N will prevent agents from being able to login to this server through the vicidial agent screen. This is very useful when using a phone login load balanced setup. Default is Y. + +
    +
    +
    + Generate conf files - If you would like the system to auto-generate asterisk conf files based upon the phones entries, carrier entries and load balancing setup within VICIDIAL then set this to Y. Default is Y. + +
    +
    +
    + Rebuild conf files - If you want to force a rebuilding of the Asterisk conf files or if any of the phones or carrier entries have changed then this should be set to Y. After the conf files have been generated and Asterisk has been reloaded then this will be changed to N. Default is Y. + +
    +
    +
    + Rebuild Music On Hold - If you want to force a rebuilding of the music on hold files or if the music on hold entries or server entries have changed then this should be set to Y. After the music on hold files have been synchronized and reloaded then this will be changed to N. Default is Y. + +
    +
    +
    + Sounds Update - If you want to force a check of the sound files on this server, and the central audio store is enabled as a system setting, then this field will allow the sounds updater to run at the next top of the minute. Any time an audio file is uploaded from the web interface this is automatically set to Y for all servers that have Asterisk active. Default is N. + +
    +
    +
    + ViciDial Recording Limit - This field is where you set the maximum number of minutes that a call recording initiated by ViciDial can be. Default is 60 minutes. + +
    +
    +
    + Carrier Logging Active - This setting allows you to log all hangup return codes for any outbound list dialing calls that you are placing. Default is N. + + + + + + +



    + + vicidial_conf_templates TABLE

    +
    +
    + Template ID - This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the conf template throughout the system. + +
    +
    +
    + Template Name - This is the descriptive name of the conf file template entry. + +
    +
    +
    + Template Contents - This field is where you can enter in the specific settings to be used by all phones and-or carriers that are set to use this conf template. Fields that should NOT be included in this box are: secret, accountcode, account, username and mailbox. + + + + + +



    + + vicidial_server_carriers TABLE

    +
    +
    + Carrier ID - This field needs to be at least 2 characters in length and no more than 15 characters in length, no spaces. This is the ID that will be used to identify the carrier for this specific entry throughout the system. + +
    +
    +
    + Carrier Name - This is the descriptive name of the carrier entry. + +
    +
    +
    + Carrier Description - This is put in the comments of the asterisk conf files above the dialplan and account entries. Maximum 255 characters. + +
    +
    +
    + Registration String - This field is where you can enter in the exact string needed in the IAX or SIP configuration file to register to the provider. Optional but highly recommended if your carrier allows registration. + +
    +
    +
    + Template ID - This optional field allows you to choose a conf file template for this carrier entry. + +
    +
    +
    + Account Entry - This field is used if you have not selected a template to use, and it is where you can enter in the specific account settings to be used for this carrier. If you will be taking in inbound calls from this carrier trunk you might want to set the context=trunkinbound within this field so that you can use the DID handling process within VICIDIAL. + +
    +
    +
    + Protocol - This field allows you to define the protocol to use for the carrier entry. Currently only IAX and SIP are supported. + +
    +
    +
    + Globals String - This optional field allows you to define a global variable to use for the carrier in the dialplan. + +
    +
    +
    + Dialplan Entry - This optional field allows you to define a set of dialplan entries to use for this carrier. + +
    +
    +
    + Server IP - This is the server that this specific carrier record is associated with. + +
    +
    +
    + Active - This defines whether the carrier will be included in the auto-generated conf files or not. + + + + + +



    + + CONFERENCES TABLE

    +
    +
    + Conference Number - 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. + +
    +
    +
    + Server IP - The menu where you select the Asterisk server that this conference will be on. + + + + + 0) + { + ?> +



    + + VICIDIAL_SERVER_TRUNKS TABLE

    +
    +
    + VICIDIAL Server Trunks allows you to restrict the outgoing lines that are used on this server for campaign dialing on a per-campaign basis. You have the option to reserve a specific number of lines to be used by only one campaign as well as allowing that campaign to run over its reserved lines into whatever lines remain open, as long at the total lines used by vicidial on this server is less than the Max VICIDIAL Trunks setting. Not having any of these records will allow the campaign that dials the line first to have as many lines as it can get under the Max VICIDIAL Trunks setting. + + + + + +



    + + SYSTEM_SETTINGS TABLE

    +
    +
    + Use Non-Latin - This option allows you to default the web display script to use UTF8 characters and not do any latin-character-family regular expression filtering or display formatting. Default is 0. + +
    +
    +
    + Webroot Writable - This setting allows you to define whether temp files and authentication files should be placed in the webroot on your web server. Default is 1. + +
    +
    +
    + VICIDIAL Agent Disable Display - This field is used to select when to show an agent when their session has been disabled by the system, a manager action or by an external measure. The NOT_ACTIVE setting will disable the message on the agents screen. The LIVE_AGENT setting will only display the disabled message when the agents vicidial_auto_calls record has been removed, such as during a force logout or emergency logout. + +
    +
    +
    + Allow SIPSAK Messages - If set to 1, this will allow the phones table setting to work properly, the server will send messages to the SIP phone to display on the phone LCD display when logged into VICIDIAL. This feature only works with SIP phones and requires sipsak application to be installed on the web server. Default is 0. + +
    +
    +
    + Agent API Active - If set to 1, this will allow the Agent API interface to function. Default is 0. + +
    +
    +
    + Admin Home URL - This is the URL or web site address that you will go to if you click on the HOME link at the top of the admin.php page. + +
    +
    +
    + Enable Agent Transfer Logfile - This option will log to a text logfile on the webserver every time a call is transferred to an agent. Default is 0, disabled. + +
    +
    +
    + Timeclock End Of Day - This setting defines when all users are to be auto logged out of the timeclock system. Only runs once a day. must be only 4 digits 2 digit hour and 2 digit minutes in 24 hour time. Default is 0000. + +
    +
    +
    + Timeclock Last Auto Logout - This field displays the date of the last auto-logout. + +
    +
    +
    + Agent Screen Header Date Format - This menu allows you to choose the format of the date that shows up at the top of the VICIDIAL agent screen. The options for this setting are: default is MS_DASH_24HR
    + MS_DASH_24HR 2008-06-24 23:59:59 - Default date format with year month day followed by 24 hour time
    + US_SLASH_24HR 06/24/2008 23:59:59 - USA date format with month day year followed by 24 hour time
    + EU_SLASH_24HR 24/06/2008 23:59:59 - European date format with day month year followed by 24 hour time
    + AL_TEXT_24HR JUN 24 23:59:59 - Text date format with abbreviated month day followed by 24 hour time
    + MS_DASH_AMPM 2008-06-24 11:59:59 PM - Default date format with year month day followed by 12 hour time
    + US_SLASH_AMPM 06/24/2008 11:59:59 PM - USA date format with month day year followed by 12 hour time
    + EU_SLASH_AMPM 24/06/2008 11:59:59 PM - European date format with day month year followed by 12 hour time
    + AL_TEXT_AMPM JUN 24 11:59:59 PM - Text date format with abbreviated month day followed by 12 hour time
    + +
    +
    +
    + Agent Screen Customer Date Format - This menu allows you to choose the format of the customer time zone date that shows up at the top of the Customer Information section of the VICIDIAL agent screen. The options for this setting are: default is AL_TEXT_AMPM
    + MS_DASH_24HR 2008-06-24 23:59:59 - Default date format with year month day followed by 24 hour time
    + US_SLASH_24HR 06/24/2008 23:59:59 - USA date format with month day year followed by 24 hour time
    + EU_SLASH_24HR 24/06/2008 23:59:59 - European date format with day month year followed by 24 hour time
    + AL_TEXT_24HR JUN 24 23:59:59 - Text date format with abbreviated month day followed by 24 hour time
    + MS_DASH_AMPM 2008-06-24 11:59:59 PM - Default date format with year month day followed by 12 hour time
    + US_SLASH_AMPM 06/24/2008 11:59:59 PM - USA date format with month day year followed by 12 hour time
    + EU_SLASH_AMPM 24/06/2008 11:59:59 PM - European date format with day month year followed by 12 hour time
    + AL_TEXT_AMPM JUN 24 11:59:59 PM - Text date format with abbreviated month day followed by 12 hour time
    + +
    +
    +
    + Agent Screen Customer Phone Format - This menu allows you to choose the format of the customer phone number that shows up in the status section of the VICIDIAL agent screen. The options for this setting are: default is US_PARN
    + US_DASH 000-000-0000 - USA dash separated phone number
    + US_PARN (000)000-0000 - USA dash separated number with area code in parenthesis
    + MS_NODS 0000000000 - No formatting
    + UK_DASH 00 0000-0000 - UK dash separated phone number with space after city code
    + AU_SPAC 000 000 000 - Australia space separated phone number
    + IT_DASH 0000-000-000 - Italy dash separated phone number
    + FR_SPAC 00 00 00 00 00 - France space separated phone number
    + +
    +
    +
    + Agent interface API Access Active - This option allows you to enable or disable the agent interface API. Default is 0. + +
    +
    +
    + Agent Only Callback Campaign Lock - This option defines whether AGENTONLY callbacks are locked to the campaign that the agent originally created them under. Setting this to 1 means that the agent can only dial them from the campaign they were set under, 0 means that the agent can access them no matter what campaign they are logged into. Default is 1. + +
    +
    +
    + Central Sound Control Active - This option defines whether the sound synchronization system is active across all servers. Default is 0 for inactive. + +
    +
    +
    + Sounds Web Server - This is the server name or IP address of the web server that will be handling the sound files on this system, this must match the server name or IP of the machine you are trying to access the audio_store.php webpage on or it will not work. Default is 127.0.0.1. + +
    +
    +
    + Sounds Web Directory - This auto-generated directory name is created at random by the system as the place that the audio store will be kept. All audio files will reside in this directory. + +
    +
    +
    + Active Voicemail Server - In multi-server systems, this is the server that will handle all voicemail boxes. This server is also where the dial-in generated prompts will be uploaded from, the 8168 recordings. + +
    +
    +
    + Outbound Auto-Dial Active - This option allows you to enable or disable outbound auto-dialing within VICIDIAL, setting this field to 0 will remove the LISTS and FILTERS sections and many fields from the Campaign Modification screens. Manual entry dialing will still be allowable from within the agent screen, but no list dialing will be possible. Default is 1 for active. + +
    +
    +
    + Ratio Dial Limit - This is the maximum limit of the auto dial level in the campaign screen. + +
    +
    +
    + Max FILL Calls per Second - This setting determines the maximum number of calls that can be placed by the auto-FILL outbound auto-dialing script on for all servers, per second. Must be from 1 to 200. Default is 40. + +
    +
    +
    + Allow Custom Dialplan Entries - This option allows you to enter custom dialplan lines into Call Menus. Default is 0 for inactive. + +
    +
    +
    + User Territories Active - This setting allows you to enable the User Territories setttings from the user modification screen. This feature was added to allow for more integration with a customized Vtiger installation but can have applications in a pure ViciDial system as well. Default is 0 for disabled. + +
    +
    +
    + Enable Second Webform - This setting allows you to have a second web form for campaigns and in-groups in the agent interface. Default is 0 for disabled. + +
    +
    +
    + Enable TTS Integration - This setting allows you to enable Text To Speech integration with Cepstral. This is currently only available for outbound Survey type campaigns. Default is 0 for disabled. + +
    +
    +
    + QC Features Active - This option allows you to enable or disable the QC or Quality Control features. Default is 0 for inactive. + +
    +
    +
    + Enable QueueMetrics Logging - This setting allows you to define whether VICIDIAL will insert log entries into the queue_log database table as Asterisk Queues activity does. QueueMetrics is a standalone, closed-source statistical analysis program. You must have QueueMetrics already installed and configured before enabling this feature. Default is 0. + +
    +
    +
    + QueueMetrics Server IP - This is the IP address of the database for your QueueMetrics installation. + +
    +
    +
    + QueueMetrics Database Name - This is the database name for your QueueMetrics database. + +
    +
    +
    + QueueMetrics Database Login - This is the user name used to log in to your QueueMetrics database. + +
    +
    +
    + QueueMetrics Database Password - This is the password used to log in to your QueueMetrics database. + +
    +
    +
    + QueueMetrics URL - This is the URL or web site address used to get to your QueueMetrics installation. + +
    +
    +
    + QueueMetrics Log ID - This is the server ID that all VICIDIAL logs going into the QueueMetrics database will use as an identifier for each record. + +
    +
    +
    + QueueMetrics EnterQueue Prepend - This field is used to allow for prepending of one of the vicidial_list data fields in front of the phone number of the customer for customized QueueMetrics reports. Default is NONE to not populate anything. + +
    +
    +
    + Enable Vtiger Integration - This setting allows you to enable Vtiger integration with VICIDIAL. Currently links to Vtiger admin and search as well as user replication are the only integration features available. Default is 0. + +
    +
    +
    + Vtiger DB Server IP - This is the IP address of the database for your Vtiger installation. + +
    +
    +
    + Vtiger Database Name - This is the database name for your Vtiger database. + +
    +
    +
    + Vtiger Database Login - This is the user name used to log in to your Vtiger database. + +
    +
    +
    + Vtiger Database Password - This is the password used to log in to your Vtiger database. + +
    +
    +
    + Vtiger URL - This is the URL or web site address used to get to your Vtiger installation. + + +



    + + VICIDIAL_STATUSES TABLE

    +
    +
    + Through the use of system statuses, you can have statuses that exist for campaign and in-group. The Status must be 1-6 characters in length, the description must be 2-30 characters in length and Selectable defines whether it shows up in VICIDIAL as an agent disposition. The human_answered field is used when calculating the drop percentage, or abandon rate. Setting human_answered to Y will use this status when counting the human-answered calls. The Category option allows you to group several statuses into a catogy that can be used for statistical analysis. There are also 5 additional settings that will define the kind of status: sale, dnc, customer contact, not interested, unworkable. + + + +



    + + VICIDIAL_STATUS_CATEGORIES TABLE

    +
    +
    + Through the use of system status categories, you can group together statuses to allow for statistical analysis on a group of statuses. The Category ID must be 2-20 characters in length with no spaces, the name must be 2-50 characters in length, the description is optional and TimeonVDAD Display defines whether that status will be one of the upto 4 statuses that can be calculated and displayed on the Time On VDAD Real-Time report. The Sale Category and Dead Lead Category are both used by the List Suggestion system when analyzing list statistics. + + + 0) + { + ?> +



    + + VICIDIAL QC STATUS CODES

    +
    +
    + The Quality Control-QC system within VICIDIAL has its own set of status codes separate from those within the call handling functions of VICIDIAL. QC statuse codes must be between 2 and 8 characters in length and contain no special characters like a space or colon. The QC status code description must be between 2 and 30 characters in length. + + + + +







    +







    + THE END +
    + \n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT dial_statuses,local_call_time,lead_filter_id,drop_lockout_time from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_statuses = $row[0]; + $local_call_time = $row[1]; + $drop_lockout_time = $row[3]; + if ($lead_filter_id=='') + { + $lead_filter_id = $row[2]; + if ($lead_filter_id=='') + { + $lead_filter_id='NONE'; + } + } + + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + + echo "

    \n"; + echo "Show Dialable Leads Count -

    \n"; + echo "CAMPAIGN: $campaign_id
    \n"; + echo "LISTS: $camp_lists
    \n"; + echo "STATUSES: $dial_statuses
    \n"; + echo "FILTER: $lead_filter_id
    \n"; + echo "CALL TIME: $local_call_time

    \n"; + + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + + echo "

    \n"; + echo "\n"; + + exit; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=7111111 view sample script with test variables +###################### + +if ($ADD==7111111) + { + ##### TEST VARIABLES ##### + $vendor_lead_code = 'VENDOR:LEAD;CODE'; + $list_id = 'LISTID'; + $gmt_offset_now = 'GMTOFFSET'; + $phone_code = '1'; + $phone_number = '7275551212'; + $title = 'Mr.'; + $first_name = 'JOHN'; + $middle_initial = 'Q'; + $last_name = 'PUBLIC'; + $address1 = '1234 Main St.'; + $address2 = 'Apt. 3'; + $address3 = 'ADDRESS3'; + $city = 'CHICAGO'; + $state = 'IL'; + $province = 'PROVINCE'; + $postal_code = '33760'; + $country_code = 'USA'; + $gender = 'M'; + $date_of_birth = '1970-01-01'; + $alt_phone = '3125551111'; + $email = 'test@test.com'; + $security_phrase = 'SECUTIRY'; + $comments = 'COMMENTS FIELD'; + $RGfullname = 'JOE AGENT'; + $RGuser = '6666'; + $RGlead_id = '1234'; + $RGcampaign = 'TESTCAMP'; + $RGphone_login = 'gs102'; + $RGgroup = 'TESTCAMP'; + $RGchannel_group = 'TESTCAMP'; + $RGSQLdate = date("Y-m-d H:i:s"); + $RGepoch = date("U"); + $RGuniqueid = '1163095830.4136'; + $RGcustomer_zap_channel = 'Zap/1-1'; + $RGserver_ip = '10.10.10.15'; + $RGSIPexten = 'SIP/gs102'; + $RGsession_id = '8600051'; + $RGdialed_number = '3125551111'; + $RGdialed_label = 'ALT'; + $RGrank = '99'; + $RGowner = '6666'; + $RGcamp_script = 'TESTSCRIPT'; + $RGin_script = ''; + $script_width = '600'; + $script_height = '400'; + $recording_filename = '20091204-1639_6666_7275551212'; + $recording_id = '1235'; + $user_custom_one = 'custom one'; + $user_custom_two = 'custom two'; + $user_custom_three = 'custom three'; + $user_custom_four = 'custom four'; + $user_custom_five = 'custom five'; + + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_text = stripslashes($row[3]); + + if (eregi("iframe src",$script_text)) + { + $vendor_lead_code = eregi_replace(' ','+',$vendor_lead_code); + $list_id = eregi_replace(' ','+',$list_id); + $gmt_offset_now = eregi_replace(' ','+',$gmt_offset_now); + $phone_code = eregi_replace(' ','+',$phone_code); + $phone_number = eregi_replace(' ','+',$phone_number); + $title = eregi_replace(' ','+',$title); + $first_name = eregi_replace(' ','+',$first_name); + $middle_initial = eregi_replace(' ','+',$middle_initial); + $last_name = eregi_replace(' ','+',$last_name); + $address1 = eregi_replace(' ','+',$address1); + $address2 = eregi_replace(' ','+',$address2); + $address3 = eregi_replace(' ','+',$address2); + $city = eregi_replace(' ','+',$city); + $state = eregi_replace(' ','+',$state); + $province = eregi_replace(' ','+',$province); + $postal_code = eregi_replace(' ','+',$postal_code); + $country_code = eregi_replace(' ','+',$country_code); + $gender = eregi_replace(' ','+',$gender); + $date_of_birth = eregi_replace(' ','+',$date_of_birth); + $alt_phone = eregi_replace(' ','+',$alt_phone); + $email = eregi_replace(' ','+',$email); + $security_phrase = eregi_replace(' ','+',$security_phrase); + $comments = eregi_replace(' ','+',$comments); + $RGfullname = eregi_replace(' ','+',$RGfullname); + $RGuser = eregi_replace(' ','+',$RGuser); + $RGlead_id = eregi_replace(' ','+',$RGlead_id); + $RGcampaign = eregi_replace(' ','+',$RGcampaign); + $RGphone_login = eregi_replace(' ','+',$RGphone_login); + $RGgroup = eregi_replace(' ','+',$RGgroup); + $RGchannel_group = eregi_replace(' ','+',$RGchannel_group); + $RGSQLdate = eregi_replace(' ','+',$RGSQLdate); + $RGepoch = eregi_replace(' ','+',$RGepoch); + $RGuniqueid = eregi_replace(' ','+',$RGuniqueid); + $RGcustomer_zap_channel = eregi_replace(' ','+',$RGcustomer_zap_channel); + $RGserver_ip = eregi_replace(' ','+',$RGserver_ip); + $RGSIPexten = eregi_replace(' ','+',$RGSIPexten); + $RGsession_id = eregi_replace(' ','+',$RGsession_id); + $RGdialed_number = eregi_replace(' ','+',$RGdialed_number); + $RGdialed_label = eregi_replace(' ','+',$RGdialed_label); + $RGrank = eregi_replace(' ','+',$RGrank); + $RGowner = eregi_replace(' ','+',$RGowner); + $RGcamp_script = eregi_replace(' ','+',$RGcamp_script); + $RGin_script = eregi_replace(' ','+',$RGin_script); + $script_width = eregi_replace(' ','+',$script_width); + $script_height = eregi_replace(' ','+',$script_height); + $recording_filename = eregi_replace(' ','+',$recording_filename); + $recording_id = eregi_replace(' ','+',$recording_id); + $user_custom_one = eregi_replace(' ','+',$user_custom_one); + $user_custom_two = eregi_replace(' ','+',$user_custom_two); + $user_custom_three = eregi_replace(' ','+',$user_custom_three); + $user_custom_four = eregi_replace(' ','+',$user_custom_four); + $user_custom_five = eregi_replace(' ','+',$user_custom_five); + } + + $script_text = eregi_replace('--A--vendor_lead_code--B--',"$vendor_lead_code",$script_text); + $script_text = eregi_replace('--A--list_id--B--',"$list_id",$script_text); + $script_text = eregi_replace('--A--gmt_offset_now--B--',"$gmt_offset_now",$script_text); + $script_text = eregi_replace('--A--phone_code--B--',"$phone_code",$script_text); + $script_text = eregi_replace('--A--phone_number--B--',"$phone_number",$script_text); + $script_text = eregi_replace('--A--title--B--',"$title",$script_text); + $script_text = eregi_replace('--A--first_name--B--',"$first_name",$script_text); + $script_text = eregi_replace('--A--middle_initial--B--',"$middle_initial",$script_text); + $script_text = eregi_replace('--A--last_name--B--',"$last_name",$script_text); + $script_text = eregi_replace('--A--address1--B--',"$address1",$script_text); + $script_text = eregi_replace('--A--address2--B--',"$address2",$script_text); + $script_text = eregi_replace('--A--address3--B--',"$address3",$script_text); + $script_text = eregi_replace('--A--city--B--',"$city",$script_text); + $script_text = eregi_replace('--A--state--B--',"$state",$script_text); + $script_text = eregi_replace('--A--province--B--',"$province",$script_text); + $script_text = eregi_replace('--A--postal_code--B--',"$postal_code",$script_text); + $script_text = eregi_replace('--A--country_code--B--',"$country_code",$script_text); + $script_text = eregi_replace('--A--gender--B--',"$gender",$script_text); + $script_text = eregi_replace('--A--date_of_birth--B--',"$date_of_birth",$script_text); + $script_text = eregi_replace('--A--alt_phone--B--',"$alt_phone",$script_text); + $script_text = eregi_replace('--A--email--B--',"$email",$script_text); + $script_text = eregi_replace('--A--security_phrase--B--',"$security_phrase",$script_text); + $script_text = eregi_replace('--A--comments--B--',"$comments",$script_text); + $script_text = eregi_replace('--A--fullname--B--',"$RGfullname",$script_text); + $script_text = eregi_replace('--A--fronter--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--user--B--',"$RGuser",$script_text); + $script_text = eregi_replace('--A--lead_id--B--',"$RGlead_id",$script_text); + $script_text = eregi_replace('--A--campaign--B--',"$RGcampaign",$script_text); + $script_text = eregi_replace('--A--phone_login--B--',"$RGphone_login",$script_text); + $script_text = eregi_replace('--A--group--B--',"$RGgroup",$script_text); + $script_text = eregi_replace('--A--channel_group--B--',"$RGchannel_group",$script_text); + $script_text = eregi_replace('--A--SQLdate--B--',"$RGSQLdate",$script_text); + $script_text = eregi_replace('--A--epoch--B--',"$RGepoch",$script_text); + $script_text = eregi_replace('--A--uniqueid--B--',"$RGuniqueid",$script_text); + $script_text = eregi_replace('--A--customer_zap_channel--B--',"$RGcustomer_zap_channel",$script_text); + $script_text = eregi_replace('--A--server_ip--B--',"$RGserver_ip",$script_text); + $script_text = eregi_replace('--A--SIPexten--B--',"$RGSIPexten",$script_text); + $script_text = eregi_replace('--A--session_id--B--',"$RGsession_id",$script_text); + $script_text = eregi_replace('--A--dialed_number--B--',"$RGdialed_number",$script_text); + $script_text = eregi_replace('--A--dialed_label--B--',"$RGdialed_label",$script_text); + $script_text = eregi_replace('--A--rank--B--',"$RGrank",$script_text); + $script_text = eregi_replace('--A--owner--B--',"$RGowner",$script_text); + $script_text = eregi_replace('--A--camp_script--B--',"$RGcamp_script",$script_text); + $script_text = eregi_replace('--A--in_script--B--',"$RGin_script",$script_text); + $script_text = eregi_replace('--A--script_width--B--',"$script_width",$script_text); + $script_text = eregi_replace('--A--script_height--B--',"$script_height",$script_text); + $script_text = eregi_replace('--A--recording_filename--B--',"$recording_filename",$script_text); + $script_text = eregi_replace('--A--recording_id--B--',"$recording_id",$script_text); + $script_text = eregi_replace('--A--user_custom_one--B--',"$user_custom_one",$script_text); + $script_text = eregi_replace('--A--user_custom_two--B--',"$user_custom_two",$script_text); + $script_text = eregi_replace('--A--user_custom_three--B--',"$user_custom_three",$script_text); + $script_text = eregi_replace('--A--user_custom_four--B--',"$user_custom_four",$script_text); + $script_text = eregi_replace('--A--user_custom_five--B--',"$user_custom_five",$script_text); + $script_text = eregi_replace("\n","
    ",$script_text); + + + echo ""; + + echo "Preview Script: $script_id
    \n"; + echo "
    \n"; + echo "
    $script_name
    \n"; + echo "$script_text\n"; + echo "
    \n"; + + echo "\n"; + + exit; + } + + +$ADMIN=$PHP_SELF; +require("admin_header.php"); + + + + + +###################################################################################################### +###################################################################################################### +####### 1 series, ADD NEW forms for inserting new records into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=1 display the ADD NEW USER FORM SCREEN +###################### + +if ($ADD=="1") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW USER
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$NWB#vicidial_users-user_group$NWE\n"; + echo "\n"; + echo "
    User Number: Auto-Generated $NWB#vicidial_users-user$NWE
    User Number: $NWB#vicidial_users-user$NWE
    Password: $NWB#vicidial_users-pass$NWE
    Full Name: $NWB#vicidial_users-full_name$NWE
    User Level: $NWB#vicidial_users-user_level$NWE
    User Group:
    Phone Login: $NWB#vicidial_users-phone_login$NWE
    Phone Pass: $NWB#vicidial_users-phone_pass$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1A display the COPY USER FORM SCREEN +###################### + +if ($ADD=="1A") + { + if ($LOGmodify_users==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    COPY USER\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($LOGuser_level==9) {$levelMAX=10;} + else {$levelMAX=$LOGuser_level;} + + echo "\n"; + echo "\n"; + echo "
    User Number: Auto-Generated $NWB#vicidial_users-user$NWE
    User Number: $NWB#vicidial_users-user$NWE
    Password: $NWB#vicidial_users-pass$NWE
    Full Name: $NWB#vicidial_users-full_name$NWE
    Source User: $NWB#vicidial_users-user$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=11 display the ADD NEW CAMPAIGN FORM SCREEN +###################### + +if ($ADD==11) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW CAMPAIGN\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
    Campaign ID: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
    Campaign ID: $NWB#vicidial_campaigns-campaign_id$NWE
    Campaign Name: $NWB#vicidial_campaigns-campaign_name$NWE
    Campaign Description: $NWB#vicidial_campaigns-campaign_description$NWE
    Active: $NWB#vicidial_campaigns-active$NWE
    Park Extension: $NWB#vicidial_campaigns-park_ext$NWE
    Park Filename: $NWB#vicidial_campaigns-park_file_name$NWE
    Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
    Allow Closers: $NWB#vicidial_campaigns-allow_closers$NWE
    Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
    Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
    Next Agent Call: $NWB#vicidial_campaigns-next_agent_call$NWE
    Local Call Time: $NWB#vicidial_campaigns-local_call_time$NWE
    Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE
    Script: $NWB#vicidial_campaigns-campaign_script$NWE
    Get Call Launch: $NWB#vicidial_campaigns-get_call_launch$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=12 display the COPY CAMPAIGN FORM SCREEN +###################### + +if ($ADD==12) + { + if ($LOGmodify_campaigns==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    COPY A CAMPAIGN\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
    Campaign ID: Auto-Generated $NWB#vicidial_campaigns-campaign_id$NWE
    Campaign ID: $NWB#vicidial_campaigns-campaign_id$NWE
    Campaign Name: $NWB#vicidial_campaigns-campaign_name$NWE
    Source Campaign: $NWB#vicidial_campaigns-campaign_id$NWE
    NOTE: Copying a campaign will copy all settings from the master campaign you select, but it will not copy a campaign-specific DNC list if there was one on the selected master campaign.
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=111 display the ADD NEW LIST FORM SCREEN +###################### + +if ($ADD==111) + { + if ($LOGmodify_lists==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW LIST\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    List ID: Auto-Generated $NWB#vicidial_lists-list_id$NWE
    List ID: (digits only)$NWB#vicidial_lists-list_id$NWE
    List Name: $NWB#vicidial_lists-list_name$NWE
    List Description: $NWB#vicidial_lists-list_description$NWE
    Campaign: $NWB#vicidial_lists-campaign_id$NWE
    Active: $NWB#vicidial_lists-active$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=121 display the ADD NUMBER TO DNC FORM SCREEN and add a new number +###################### + +if ($ADD==121) + { + echo "
    \n"; + echo ""; + + $campaigns_list = "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where use_campaign_dnc IN('Y','AREACODE') order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + if (strlen($phone_numbers) > 2) + { + $PN = explode("\n",$phone_numbers); + $PNct = count($PN); + $p=0; + while ($p < $PNct) + { + if ( (ereg('delete',$stage)) and ($LOGdelete_from_dnc > 0) ) + { + ##### BEGIN DELETE FROM DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
    DNC NOT DELETED - This phone number is not in the Do Not Call List: $PN[$p]\n";} + else + { + $stmt="DELETE FROM vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + + echo "
    DNC DELETED: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
    DNC NOT DELETED - This phone number is not in the Do Not Call List: $PN[$p] $campaign_id\n";} + else + { + $stmt="DELETE FROM vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
    DNC DELETED: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='DELETE', record_id='$PN[$p]', event_code='ADMIN DELETE NUMBER FROM CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END DELETE FROM DNC ##### + } + else + { + ##### BEGIN ADD TO DNC ##### + if (ereg('SYSTEM_INTERNAL',$campaign_id)) + { + $stmt="SELECT count(*) from vicidial_dnc where phone_number='$PN[$p]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    DNC NOT ADDED - This phone number is already in the Do Not Call List: $PN[$p]\n";} + else + { + $stmt="INSERT INTO vicidial_dnc (phone_number) values('$PN[$p]');"; + $rslt=mysql_query($stmt, $link); + + echo "
    DNC ADDED: $PN[$p]\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN ADD NUMBER TO DNC LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$PN[$p]' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    DNC NOT ADDED - This phone number is already in the Do Not Call List: $PN[$p] $campaign_id\n";} + else + { + $stmt="INSERT INTO vicidial_campaign_dnc (phone_number,campaign_id) values('$PN[$p]','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + echo "
    DNC ADDED: $PN[$p] $campaign_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='ADD', record_id='$PN[$p]', event_code='ADMIN ADD NUMBER TO CAMPAIGN DNC LIST $campaign_id', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + ##### END ADD TO DNC ##### + } + $p++; + } + } + + if ($LOGdelete_from_dnc > 0) + {echo "
    ADD OR DELETE NUMBERS FROM THE DNC LIST\n";} + else + {echo "
    ADD NUMBERS TO THE DNC LIST\n";} + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + if ($LOGdelete_from_dnc > 0) + { + echo "\n"; + } + echo "\n"; + echo "
    List:
    Phone Numbers:

    (one phone number per line only)
    $NWB#vicidial_list-dnc$NWE
    Add or Delete:
    \n"; + } + + +###################### +# ADD=1111 display the ADD NEW INBOUND GROUP SCREEN +###################### + +if ($ADD==1111) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW INBOUND GROUP\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + echo "\n"; + echo "
    Group ID: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
    Group ID: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
    Group Name: $NWB#vicidial_inbound_groups-group_name$NWE
    Group Color: $NWB#vicidial_inbound_groups-group_color$NWE
    Active: $NWB#vicidial_inbound_groups-active$NWE
    Web Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
    Voicemail: $NWB#vicidial_inbound_groups-voicemail_ext$NWE
    Next Agent Call: $NWB#vicidial_inbound_groups-next_agent_call$NWE
    Fronter Display: $NWB#vicidial_inbound_groups-fronter_display$NWE
    Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
    Get Call Launch: $NWB#vicidial_inbound_groups-get_call_launch$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1211 display the COPY INBOUND GROUP SCREEN +###################### + +if ($ADD==1211) + { + if ($LOGmodify_ingroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    COPY INBOUND GROUP\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    Group ID: Auto-Generated $NWB#vicidial_inbound_groups-group_id$NWE
    Group ID: (no spaces)$NWB#vicidial_inbound_groups-group_id$NWE
    Group Name: $NWB#vicidial_inbound_groups-group_name$NWE
    Source Group ID: $NWB#vicidial_inbound_groups-group_id$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1311 display the ADD NEW DID SCREEN +###################### + +if ($ADD==1311) + { + if ($LOGmodify_dids==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW DID\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    DID Extension: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
    DID Description: $NWB#vicidial_inbound_dids-did_description$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1411 display the COPY DID SCREEN +###################### + +if ($ADD==1411) + { + if ($LOGmodify_dids==1) + { + echo "
    \n"; + echo ""; + + echo "
    COPY DID\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    DID Extension: (no spaces or dashes)$NWB#vicidial_inbound_dids-did_pattern$NWE
    DID Description: $NWB#vicidial_inbound_dids-did_description$NWE
    Source DID: $NWB#vicidial_inbound_dids-did_pattern$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1511 display the ADD NEW CALL MENU SCREEN +###################### + +if ($ADD==1511) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW CALL MENU\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
    Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
    Menu ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
    Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1611 display the COPY CALL MENU SCREEN +###################### + +if ($ADD==1611) + { + if ($LOGmodify_dids==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    COPY CALL MENU\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    Menu ID: Auto-Generated $NWB#vicidial_call_menu-menu_id$NWE
    Menu ID: (no spaces or special characters)$NWB#vicidial_call_menu-menu_id$NWE
    Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
    Source Menu: $NWB#vicidial_call_menu-menu_id$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=11111 display the ADD NEW REMOTE AGENTS SCREEN +###################### + +if ($ADD==11111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW REMOTE AGENTS\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    User ID Start: (numbers only, incremented)$NWB#vicidial_remote_agents-user_start$NWE
    Number of Lines: (numbers only)$NWB#vicidial_remote_agents-number_of_lines$NWE
    Server IP: $NWB#vicidial_remote_agents-server_ip$NWE
    External Extension: (dial plan number dialed to reach agents)$NWB#vicidial_remote_agents-conf_exten$NWE
    Status: $NWB#vicidial_remote_agents-status$NWE
    Campaign: $NWB#vicidial_remote_agents-campaign_id$NWE
    Inbound Groups: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
    \n"; + echo "NOTE: It can take up to 30 seconds for changes submitted on this screen to go live\n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=111111 display the ADD NEW USERS GROUP SCREEN +###################### + +if ($ADD==111111) + { + if ($LOGmodify_usergroups==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD NEW USERS GROUP\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
    Group: Auto-Generated $NWB#vicidial_user_groups-user_group$NWE
    Group: (no spaces or punctuation)$NWB#vicidial_user_groups-user_group$NWE
    Description: (description of group)$NWB#vicidial_user_groups-group_name$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1111111 display the ADD NEW SCRIPT SCREEN +###################### + +if ($ADD==1111111) + { + if ($LOGmodify_scripts==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD NEW SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Script ID: Auto-Generated $NWB#vicidial_scripts-script_id$NWE
    Script ID: (no spaces or punctuation)$NWB#vicidial_scripts-script_id$NWE
    Script Name: (title of the script)$NWB#vicidial_scripts-script_name$NWE
    Script Comments: $NWB#vicidial_scripts-script_comments$NWE
    Active: $NWB#vicidial_scripts-active$NWE
    Script Text: "; + # BEGIN Insert Field + echo ""; + echo "
    "; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=11111111 display the ADD NEW FILTER SCREEN +###################### + +if ($ADD==11111111) + { + if ($LOGmodify_filters==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD NEW FILTER\n"; + echo "\n"; + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Filter ID: Auto-Generated $NWB#vicidial_lead_filters-lead_filter_id$NWE
    Filter ID: (no spaces or punctuation)$NWB#vicidial_lead_filters-lead_filter_id$NWE
    Filter Name: (short description of the filter)$NWB#vicidial_lead_filters-lead_filter_name$NWE
    Filter Comments: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
    Filter SQL: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=111111111 display the ADD NEW CALL TIME SCREEN +###################### + +if ($ADD==111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW CALL TIME\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
    Call Time ID: (no spaces or punctuation)$NWB#vicidial_call_times-call_time_id$NWE
    Call Time Name: (short description of the call time)$NWB#vicidial_call_times-call_time_name$NWE
    Call Time Comments: $NWB#vicidial_call_times-call_time_comments$NWE
    Day and time options will appear once you have created the Call Time Definition
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1111111111 display the ADD NEW STATE CALL TIME SCREEN +###################### + +if ($ADD==1111111111) + { + if ($LOGmodify_call_times==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW STATE CALL TIME\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
    State Call Time ID: (no spaces or punctuation)$NWB#vicidial_call_times-call_time_id$NWE
    State Call Time State: (no spaces or punctuation)$NWB#vicidial_call_times-state_call_time_state$NWE
    State Call Time Name: (short description of the call time)$NWB#vicidial_call_times-call_time_name$NWE
    State Call Time Comments: $NWB#vicidial_call_times-call_time_comments$NWE
    Day and time options will appear once you have created the Call Time Definition
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=131111111 display the ADD NEW SHIFT SCREEN +###################### + +if ($ADD==131111111) + { + if ($LOGmodify_call_times==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW SHIFT\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Shift ID: (no spaces or punctuation)$NWB#vicidial_shifts-shift_id$NWE
    Shift Name: (short description of the shift)$NWB#vicidial_shifts-shift_name$NWE
    Shift Start Time: \n"; + echo "   Shift End Time: \n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
    Shift Length: $NWB#vicidial_shifts-shift_length$NWE
    Shift Weekdays:
    $NWB#vicidial_shifts-shift_weekdays$NWE
    \n"; + echo "Sunday
    \n"; + echo "Monday
    \n"; + echo "Tuesday
    \n"; + echo "Wednesday
    \n"; + echo "Thursday
    \n"; + echo "Friday
    \n"; + echo "Saturday
    \n"; + echo "
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=11111111111 display the ADD NEW PHONE SCREEN +###################### + +if ($ADD==11111111111) + { + if ($LOGast_admin_access==1) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT count(*) FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $voi_count = "$row[0]"; + } + ##### END ID override optional section ##### + + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW PHONE\n"; + echo "\n"; + echo "
    \n"; + + echo "
    \n"; + if ($voi_count > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Phone extension: Auto-Generated $NWB#phones-extension$NWE
    Phone extension: $NWB#phones-extension$NWE
    Dial Plan Number: (digits only)$NWB#phones-dialplan_number$NWE
    Voicemail Box: (digits only)$NWB#phones-voicemail_id$NWE
    Outbound CallerID: (digits only)$NWB#phones-outbound_cid$NWE
    Phone IP address: (optional)$NWB#phones-phone_ip$NWE
    Computer IP address: (optional)$NWB#phones-computer_ip$NWE
    Server IP: $NWB#phones-server_ip$NWE
    Login: $NWB#phones-login$NWE
    Password: $NWB#phones-pass$NWE
    Status: $NWB#phones-status$NWE
    Active Account: $NWB#phones-active$NWE
    Phone Type: $NWB#phones-phone_type$NWE
    Full Name: $NWB#phones-fullname$NWE
    Company: $NWB#phones-company$NWE
    Picture: $NWB#phones-picture$NWE
    Client Protocol: $NWB#phones-protocol$NWE
    Local GMT: (Do NOT Adjust for DST)$NWB#phones-local_gmt$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=12111111111 display the ADD NEW PHONE ALIAS SCREEN +###################### + +if ($ADD==12111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW PHONE ALIAS\n"; + echo "\n"; + echo "
    \n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    Alias ID: $NWB#phones-alias_id$NWE
    Alias Name: $NWB#phones-alias_name$NWE
    Phone Logins List: (comma separated)$NWB#phones-logins_list$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=13111111111 display the ADD NEW GROUP ALIAS SCREEN +###################### + +if ($ADD==13111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW GROUP ALIAS\n"; + echo "\n"; + echo "
    \n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    Group Alias ID: $NWB#phones-group_alias_id$NWE
    Group Alias Name: $NWB#phones-group_alias_name$NWE
    CallerID Number: $NWB#phones-caller_id_number$NWE
    CallerID Name: $NWB#phones-caller_id_name$NWE
    Active:
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=111111111111 display the ADD NEW SERVER SCREEN +###################### + +if ($ADD==111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW SERVER\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Server ID: $NWB#servers-server_id$NWE
    Server Description: $NWB#servers-server_description$NWE
    Server IP Address: $NWB#servers-server_ip$NWE
    Active: $NWB#servers-active$NWE
    Asterisk Version: $NWB#servers-asterisk_version$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=131111111111 display the ADD NEW CONF TEMPLATE SCREEN +###################### + +if ($ADD==131111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW CONF TEMPLATE\n"; + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Template ID: $NWB#vicidial_conf_templates-template_id$NWE
    Template Name: $NWB#vicidial_conf_templates-template_name$NWE
    Template Contents: $NWB#vicidial_conf_templates-template_contents$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=141111111111 display the ADD NEW CARRIER SCREEN +###################### + +if ($ADD==141111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW CARRIER\n"; + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    Carrier ID: $NWB#vicidial_server_carriers-carrier_id$NWE
    Carrier Name: $NWB#vicidial_server_carriers-carrier_name$NWE
    Carrier Description: $NWB#vicidial_server_carriers-carrier_description$NWE
    Registration String: $NWB#vicidial_server_carriers-registration_string$NWE
    Template ID: $NWB#vicidial_server_carriers-template_id$NWE
    Account Entry: $NWB#vicidial_server_carriers-account_entry$NWE
    Protocol: $NWB#vicidial_server_carriers-protocol$NWE
    Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
    Dialplan Entry: $NWB#vicidial_server_carriers-dialplan_entry$NWE
    Server IP: $NWB#vicidial_server_carriers-server_ip$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=151111111111 display the ADD NEW TTS ENTRY SCREEN +###################### + +if ($ADD==151111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW TTS ENTRY\n"; + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    TTS ID: $NWB#vicidial_tts_prompts-tts_id$NWE
    TTS Name: $NWB#vicidial_tts_prompts-tts_name$NWE
    Active:
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=161111111111 display the ADD NEW MUSIC ON HOLD ENTRY SCREEN +###################### + +if ($ADD==161111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW MUSIC ON HOLD ENTRY\n"; + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    Music On Hold ID: $NWB#vicidial_music_on_hold-moh_id$NWE
    Music On Hold Name: $NWB#vicidial_music_on_hold-moh_name$NWE
    Random Order:
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=171111111111 display the ADD NEW VOICEMAIL BOX SCREEN +###################### + +if ($ADD==171111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD NEW VOICEMAIL BOX\n"; + echo "\n"; + echo "
    \n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    Voicemail ID: $NWB#vicidial_voicemail-voicemail_id$NWE
    Pass: $NWB#vicidial_voicemail-pass$NWE
    Name: $NWB#vicidial_voicemail-fullname$NWE
    Active:
    Email: $NWB#vicidial_voicemail-email$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=1111111111111 display the ADD NEW CONFERENCE SCREEN +###################### + +if ($ADD==1111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW CONFERENCE\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Conference Number: (digits only)$NWB#conferences-conf_exten$NWE
    Server IP: $NWB#conferences-server_ip$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=11111111111111 display the ADD NEW VICIDIAL CONFERENCE SCREEN +###################### + +if ($ADD==11111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + echo "
    ADD A NEW VICIDIAL CONFERENCE\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Conference Number: (digits only)$NWB#conferences-conf_exten$NWE
    Server IP: $NWB#conferences-server_ip$NWE
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + +###################################################################################################### +###################################################################################################### +####### 2 series, validates form data and inserts the new record into the database +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=2 adds the new user to the system +###################### + +if ($ADD=="2") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    USER NOT ADDED - there is already a user in the system with this user number\n";} + else + { + if (ereg('AUTOGENERA',$user)) + { + $user = 'AUTOGENERA'; + } + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_group) < 2) or ( (strlen($user) > 10) and (!ereg('AUTOGENERA',$user)) ) ) + { + echo "
    USER NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    user id must be between 2 and 10 characters long\n"; + echo "
    full name and password must be at least 2 characters long\n"; + echo "
    you must select a user group\n"; + } + else + { + if (ereg('AUTOGENERA',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
    user_id has been auto-generated: $user
    \n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + echo "
    USER ADDED: $user\n"; + + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass) values('$user','$pass','$full_name','$user_level','$user_group','$phone_login','$phone_pass');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='ADD', record_id='$user', event_code='ADMIN ADD USER', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + } + } + + $ADD=3; + } + +###################### +# ADD=2A adds the copied new user to the system +###################### + +if ($ADD=="2A") + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user' where id_table='vicidial_users' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    USER NOT ADDED - there is already a user in the system with this user number\n";} + else + { + if ( (strlen($user) < 2) or (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user) > 10) ) + { + echo "
    USER NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    user id must be between 2 and 10 characters long\n"; + echo "
    full name and password must be at least 2 characters long\n"; + echo "\n"; + } + else + { + if (ereg('AUTOGEN',$user)) + { + $new_user=0; + $auto_user_add_value=0; + while ($new_user < 2) + { + if ($new_user < 1) + { + $stmt = "SELECT auto_user_add_value FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_auav_ct = mysql_num_rows($rslt); + if ($ss_auav_ct > 0) + { + $row=mysql_fetch_row($rslt); + $auto_user_add_value = $row[0]; + } + $new_user++; + } + $stmt = "SELECT count(*) FROM vicidial_users where user='$auto_user_add_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $new_user++; + } + else + { + echo "\n"; + $auto_user_add_value = ($auto_user_add_value + 7); + } + } + $user = $auto_user_add_value; + echo "
    user_id has been auto-generated: $user
    \n"; + + $stmt="UPDATE system_settings SET auto_user_add_value='$user';"; + $rslt=mysql_query($stmt, $link); + } + $stmt="INSERT INTO vicidial_users (user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five) SELECT \"$user\",\"$pass\",\"$full_name\",user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user=\"$source_user_id\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_inbound_group_agents (user,group_id,group_rank,group_weight,calls_today) SELECT \"$user\",group_id,group_rank,group_weight,\"0\" from vicidial_inbound_group_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_agents (user,campaign_id,campaign_rank,campaign_weight,calls_today) SELECT \"$user\",campaign_id,campaign_rank,campaign_weight,\"0\" from vicidial_campaign_agents where user=\"$source_user_id\";"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='COPY', record_id='$user', event_code='ADMIN COPY USER', event_sql=\"$SQL_log\", event_notes='user: $user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + echo "
    USER COPIED: $user copied from $source_user_id\n"; + echo "

    \n"; + echo "Click here to go to the user record\n"; + echo "

    \n"; + + } + } + exit; + } + +###################### +# ADD=21 adds the new campaign to the system +###################### + +if ($ADD==21) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 6) or (strlen($campaign_name) > 40) ) + { + echo "
    CAMPAIGN NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    campaign ID must be between 2 and 8 characters in length\n"; + echo "
    campaign name must be between 6 and 40 characters in length\n"; + } + else + { + echo "
    CAMPAIGN ADDED: $campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_id,campaign_name,campaign_description,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,campaign_changedate,campaign_stats_refresh,list_order_mix,web_form_address_two,start_call_url,dispo_call_url) values('$campaign_id','$campaign_name','$campaign_description','$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','$SQLdate','Y','DISABLED','','','');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADD CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=20 adds copied new campaign to the system +###################### + +if ($ADD==20) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $campaign_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$campaign_id' where id_table='vicidial_campaigns' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN NOT ADDED - there is already an inbound group in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($campaign_id) > 8) or (strlen($campaign_name) < 2) or (strlen($source_campaign_id) < 2) or (strlen($source_campaign_id) > 8) ) + { + echo "
    CAMPAIGN NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    campaign ID must be between 2 and 8 characters in length\n"; + echo "
    source campaign ID must be between 2 and 8 characters in length\n"; + } + else + { + echo "
    CAMPAIGN COPIED: $campaign_id copied from $source_campaign_id\n"; + + $stmt="INSERT INTO vicidial_campaigns (campaign_name,campaign_id,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$campaign_name\",\"$campaign_id\",\"N\",dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,\"DISABLED\",campaign_allow_inbound,manual_dial_list_id,default_xfer_group,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,qc_get_record_launch,qc_show_recording,qc_shift_id,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_fourth_digit,survey_third_audio_file,survey_fourth_audio_file,survey_third_status,survey_fourth_status,survey_third_exten,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$campaign_id');"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) SELECT status,status_name,selectable,\"$campaign_id\",human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_campaign_hotkeys (status,hotkey,status_name,selectable,campaign_id) SELECT status,hotkey,status_name,selectable,\"$campaign_id\" from vicidial_campaign_hotkeys where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_lead_recycle (status,attempt_delay,attempt_maximum,active,campaign_id) SELECT status,attempt_delay,attempt_maximum,active,\"$campaign_id\" from vicidial_lead_recycle where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + $stmtA="INSERT INTO vicidial_pause_codes (pause_code,pause_code_name,billable,campaign_id) SELECT pause_code,pause_code_name,billable,\"$campaign_id\" from vicidial_pause_codes where campaign_id='$source_campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='COPY', record_id='$campaign_id', event_code='ADMIN COPY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=31; + } + +###################### +# ADD=22 adds the new campaign status to the system +###################### + +if ($ADD==22) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN STATUS NOT ADDED - there is already a campaign-status in the system with this name\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN STATUS NOT ADDED - there is already a global-status in the system with this name\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
    CAMPAIGN STATUS NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 8 characters in length\n"; + echo "
    status name must be between 2 and 30 characters in length\n"; + } + else + { + echo "
    CAMPAIGN STATUS ADDED: $campaign_id - $status\n"; + + $stmt="INSERT INTO vicidial_campaign_statuses (status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$campaign_id','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADD CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $SUB=22; + $ADD=31; + } + + +###################### +# ADD=23 adds the new campaign hotkey to the system +###################### + +if ($ADD==23) + { + $HKstatus_data = explode('-----',$HKstatus); + $status = $HKstatus_data[0]; + $status_name = $HKstatus_data[1]; + + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_hotkeys where campaign_id='$campaign_id' and hotkey='$hotkey' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN HOT KEY NOT ADDED - there is already a campaign-hotkey in the system with this hotkey\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
    CAMPAIGN HOT KEY NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    hotkey must be a single character between 1 and 9 \n"; + echo "
    status must be between 1 and 8 characters in length\n"; + } + else + { + echo "
    CAMPAIGN HOT KEY ADDED: $campaign_id - $status - $hotkey\n"; + + $stmt="INSERT INTO vicidial_campaign_hotkeys values('$status','$hotkey','$status_name','$selectable','$campaign_id');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADD CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Status: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=23; + $ADD=31; + } + + +###################### +# ADD=25 adds the new campaign lead recycle entry to the system +###################### + +if ($ADD==25) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN LEAD RECYCLE NOT ADDED - there is already a lead-recycle for this campaign with this status\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
    CAMPAIGN LEAD RECYCLE NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 6 characters in length\n"; + echo "
    attempt delay must be at least 120 seconds and less than 43200 seconds or 12 hours\n"; + echo "
    maximum attempts must be from 1 to 10\n"; + } + else + { + echo "
    CAMPAIGN LEAD RECYCLE ADDED: $campaign_id - $status - $attempt_delay\n"; + + $stmt="INSERT INTO vicidial_lead_recycle(campaign_id,status,attempt_delay,attempt_maximum,active) values('$campaign_id','$status','$attempt_delay','$attempt_maximum','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADD CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Status: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=25; + $ADD=31; + } + + +###################### +# ADD=26 adds the new auto alt dial status to the campaign +###################### + +if ($ADD==26) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    AUTO ALT DIAL STATUS NOT ADDED - there is already an entry for this campaign with this status\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
    AUTO ALT DIAL STATUS NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 6 characters in length\n"; + } + else + { + echo "
    AUTO ALT DIAL STATUS ADDED: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $auto_alt_dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIAL', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADD CAMPAIGN ALT DIAL', event_sql=\"$SQL_log\", event_notes='Status: $auto_alt_dial_statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=26; + $ADD=31; + } + + +###################### +# ADD=27 adds the new campaign agent pause code entry to the system +###################### + +if ($ADD==27) + { + echo ""; + $stmt="SELECT count(*) from vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    AGENT PAUSE CODE NOT ADDED - there is already an entry for this campaign with this pause code\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
    AGENT PAUSE CODE NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    pause code must be between 1 and 6 characters in length\n"; + echo "
    pause code name must be between 2 and 30 characters in length\n"; + } + else + { + echo "
    AGENT PAUSE CODE ADDED: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="INSERT INTO vicidial_pause_codes(campaign_id,pause_code,pause_code_name,billable) values('$campaign_id','$pause_code','$pause_code_name','$billable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADD CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Pause Code: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $SUB=27; + $ADD=31; + } + + +###################### +# ADD=28 adds new status to the campaign dial statuses +###################### + +if ($ADD==28) + { + $status = eregi_replace("-----.*",'',$status); + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CAMPAIGN DIAL STATUS NOT ADDED - there is already an entry for this campaign with this status\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
    CAMPAIGN DIAL STATUS NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 6 characters in length\n"; + } + else + { + echo "
    CAMPAIGN DIAL STATUS ADDED: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + if (strlen($row[0])<2) {$row[0] = ' -';} + $dial_statuses = " $status$row[0]"; + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUS', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADD CAMPAIGN DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Status: $statuses';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + #$SUB=28; + $ADD=31; + } + + +###################### +# ADD=211 adds the new list to the system +###################### + +if ($ADD==211) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $list_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$list_id' where id_table='vicidial_lists' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    LIST NOT ADDED - there is already a list in the system with this ID\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($list_name) < 2) or ($list_id < 100) or (strlen($list_id) > 8) ) + { + echo "
    LIST NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    List ID must be between 2 and 8 characters in length\n"; + echo "
    List name must be at least 2 characters in length\n"; + echo "
    List ID must be greater than 100\n"; + } + else + { + echo "
    LIST ADDED: $list_id\n"; + + $stmt="INSERT INTO vicidial_lists (list_id,list_name,campaign_id,active,list_description,list_changedate) values('$list_id','$list_name','$campaign_id','$active','$list_description','$SQLdate');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='ADD', record_id='$list_id', event_code='ADMIN ADD LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311; + } + + + +###################### +# ADD=2111 adds the new inbound group to the system +###################### + +if ($ADD==2111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    GROUP NOT ADDED - there is already a group in the system with this ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_color) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
    GROUP NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Group ID must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
    Group name and group color must be at least 2 characters in length\n"; + } + 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,web_form_address_two,start_call_url,dispo_call_url) 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); + + $stmtA="INSERT INTO vicidial_campaign_stats (campaign_id) values('$group_id');"; + $rslt=mysql_query($stmtA, $link); + + echo "
    GROUP ADDED: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='ADD', record_id='$group_id', event_code='ADMIN ADD INBOUND GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2011 adds copied inbound group to the system +###################### + +if ($ADD==2011) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $group_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$group_id' where id_table='vicidial_inbound_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    GROUP NOT ADDED - there is already a group in the system with this ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    GROUP NOT ADDED - there is already a campaign in the system with this ID\n";} + else + { + if ( (strlen($group_id) < 2) or (strlen($group_name) < 2) or (strlen($group_id) > 20) or (eregi(' ',$group_id)) or (eregi("\-",$group_id)) or (eregi("\+",$group_id)) ) + { + echo "
    GROUP NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Group ID must be between 2 and 20 characters in length and contain no ' -+'.\n"; + echo "
    Group name and group color must be at least 2 characters in length\n"; + } + 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,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number) SELECT \"$group_id\",\"$group_name\",group_color,\"N\",web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id=\"$source_group_id\";"; + $rslt=mysql_query($stmt, $link); + + echo "
    GROUP ADDED: $group_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='COPY', record_id='$group_id', event_code='ADMIN COPY INBOUND GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3111; + } + + +###################### +# ADD=2311 adds the new did to the system +###################### + +if ($ADD==2311) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    DID NOT ADDED - there is already a DID in the system with this ID\n";} + else + { + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    DID NOT ADDED - there is already a DID in the system with this extension\n";} + else + { + if ( (strlen($did_pattern) < 2) or (eregi(' ',$did_pattern)) or (eregi('-',$did_pattern)) or (eregi("\+",$did_pattern)) ) + { + echo "
    DID NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description) values('$did_pattern','$did_description');"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
    DID ADDED: $did_pattern $did_description - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='ADD', record_id='$did_id', event_code='ADMIN ADD DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=3311; + } + + +###################### +# ADD=2411 adds copied did to the system +###################### + +if ($ADD==2411) + { + echo ""; + $stmt="SELECT count(*) from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    DID NOT ADDED - there is already a DID in the system with this extension\n";} + else + { + if ( (strlen($source_did) < 1) or (strlen($did_pattern) < 1) or (eregi(' ',$source_did)) or (eregi(' ',$did_pattern)) or (eregi("\+",$source_did)) ) + { + echo "
    DID NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    DID Extension must be between 2 and 20 characters in length and contain no ' -+'.\n"; + } + else + { + $stmt="INSERT INTO vicidial_inbound_dids (did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id) SELECT \"$did_pattern\",\"$did_description\",did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where did_id=\"$source_did\";"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$did_pattern';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo "
    DID ADDED: $did_pattern - $did_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='COPY', record_id='$did_id', event_code='ADMIN COPY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3311; + } + + +###################### +# ADD=2511 adds the new call menu to the system +###################### + +if ($ADD==2511) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CALL MENU NOT ADDED - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) ) + { + echo "
    CALL MENU NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Call Menu ID must be between 2 and 50 characters in length and contain no ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name) values('$menu_id','$menu_name');"; + $rslt=mysql_query($stmt, $link); + + echo "
    CALL MENU ADDED: $menu_id $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='ADD', record_id='$menu_id', event_code='ADMIN ADD CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=2611 adds copied call menu to the system +###################### + +if ($ADD==2611) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $menu_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$menu_id' where id_table='vicidial_call_menu' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CALL MENU NOT ADDED - there is already a CALL MENU in the system with this ID\n";} + else + { + if ( (strlen($menu_id) < 2) or (eregi(' ',$menu_id)) or (strlen($source_menu) < 2) or (eregi(' ',$source_menu)) ) + { + echo "
    CALL MENU NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Call Menu ID must be between 2 and 50 characters in length and contain no ' '.\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_menu (menu_id,menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group) SELECT \"$menu_id\",\"$menu_name\",menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id=\"$source_menu\";"; + $rslt=mysql_query($stmt, $link); + + $stmtA="INSERT INTO vicidial_call_menu_options (menu_id,option_value,option_description,option_route,option_route_value,option_route_value_context) SELECT \"$menu_id\",option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$source_menu';"; + $rslt=mysql_query($stmtA, $link); + + echo "
    CALL MENU ADDED: $menu_id - $menu_name\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='COPY', record_id='$menu_id', event_code='ADMIN COPY MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3511; + } + + +###################### +# ADD=21111 adds new remote agents to the system +###################### + +if ($ADD==21111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_remote_agents where server_ip='$server_ip' and user_start='$user_start';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    REMOTE AGENTS NOT ADDED - there is already a remote agents entry starting with this userID\n";} + else + { + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
    REMOTE AGENTS NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    User ID start and external extension must be at least 2 characters in length\n"; + } + else + { + $stmt="INSERT INTO vicidial_remote_agents values('','$user_start','$number_of_lines','$server_ip','$conf_exten','$status','$campaign_id','$groups_value');"; + $rslt=mysql_query($stmt, $link); + + echo "
    REMOTE AGENTS ADDED: $user_start\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='ADD', record_id='$user_start', event_code='ADMIN ADD REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000; + } + +###################### +# ADD=211111 adds new user group to the system +###################### + +if ($ADD==211111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_group = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$user_group' where id_table='vicidial_user_groups' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    USER GROUP NOT ADDED - there is already a user group entry with this name\n";} + else + { + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
    USER GROUP NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Group name and description must be at least 2 characters in length\n"; + } + else + { + $stmt="INSERT INTO vicidial_user_groups(user_group,group_name,allowed_campaigns) values('$user_group','$group_name','-ALL-CAMPAIGNS-');"; + $rslt=mysql_query($stmt, $link); + + echo "
    USER GROUP ADDED: $user_group\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='ADD', record_id='$user_group', event_code='ADMIN ADD USER GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + $ADD=100000; + } + +###################### +# ADD=2111111 adds new script to the system +###################### + +if ($ADD==2111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $script_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$script_id' where id_table='vicidial_scripts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    SCRIPT NOT ADDED - there is already a script entry with this name\n";} + else + { + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
    SCRIPT NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Script name, description and text must be at least 2 characters in length\n"; + } + else + { + $stmt="INSERT INTO vicidial_scripts values('$script_id','$script_name','$script_comments','" . mysql_real_escape_string($script_text) . "','$active');"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + echo "
    SCRIPT ADDED: $script_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPTS', event_type='ADD', record_id='$script_id', event_code='ADMIN ADD SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=1000000; + } + + +###################### +# ADD=21111111 adds new filter to the system +###################### + +if ($ADD==21111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $lead_filter_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$lead_filter_id' where id_table='vicidial_lead_filters' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    FILTER NOT ADDED - there is already a filter entry with this ID\n";} + else + { + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
    FILTER NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Filter ID, name and SQL must be at least 2 characters in length\n"; + } + 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='" . mysql_real_escape_string($lead_filter_sql) . "';"; + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|";} + echo "
    FILTER ADDED: $lead_filter_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTERS', event_type='ADD', record_id='$lead_filter_id', event_code='ADMIN ADD FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=10000000; + } + + +###################### +# ADD=211111111 adds new call time definition to the system +###################### + +if ($ADD==211111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CALL TIME DEFINITION NOT ADDED - there is already a call time entry with this ID\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
    CALL TIME DEFINITION NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Call Time ID and name must be at least 2 characters in length\n"; + } + else + { + $stmt="INSERT INTO vicidial_call_times SET call_time_id='$call_time_id',call_time_name='$call_time_name',call_time_comments='$call_time_comments';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
    CALL TIME ADDED: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111; + } + + +###################### +# ADD=2111111111 adds new state call time definition to the system +###################### + +if ($ADD==2111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    STATE CALL TIME DEFINITION NOT ADDED - there is already a call time entry with this ID\n";} + else + { + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
    STATE CALL TIME DEFINITION NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    State Call Time ID, name and state must be at least 2 characters in length\n"; + } + else + { + $stmt="INSERT INTO vicidial_state_call_times SET state_call_time_id='$call_time_id',state_call_time_name='$call_time_name',state_call_time_comments='$call_time_comments',state_call_time_state='$state_call_time_state';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
    STATE CALL TIME ADDED: $call_time_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES_STATE', event_type='ADD', record_id='$call_time_id', event_code='ADMIN ADD STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111; + } + + +###################### +# ADD=231111111 adds new shift definition to the system +###################### + +if ($ADD==231111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $shift_id = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$shift_id' where id_table='vicidial_shifts' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    SHIFT DEFINITION NOT ADDED - there is already a shift entry with this ID\n";} + else + { + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
    SHIFT DEFINITION NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    Shift ID and name must be at least 2 characters in length\n"; + echo "
    Shift Start Time must be 4 digits in length and be a valid time\n"; + echo "
    Shift Length must be 5 characters in length and be 24 hours or less\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $stmt="INSERT INTO vicidial_shifts SET shift_id='$shift_id',shift_name='$shift_name',shift_start_time='$shift_start_time',shift_length='$shift_length',shift_weekdays='$SHIFT_weekdays';"; + $rslt=mysql_query($stmt, $link); + if ($DB > 0) {echo "|$stmt|";} + + echo "
    SHIFT ADDED: $shift_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='ADD', record_id='$shift_id', event_code='ADMIN ADD SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111; + } + + +###################### +# ADD=21111111111 adds new phone to the system +###################### + +if ($ADD==21111111111) + { + ##### BEGIN ID override optional section, if enabled it increments user by 1 ignoring entered value ##### + $stmt = "SELECT value FROM vicidial_override_ids where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + $voi_ct = mysql_num_rows($rslt); + if ($voi_ct > 0) + { + $row=mysql_fetch_row($rslt); + $extension = ($row[0] + 1); + + $stmt="UPDATE vicidial_override_ids SET value='$extension' where id_table='phones' and active='1';"; + $rslt=mysql_query($stmt, $link); + } + ##### END ID override optional section ##### + + echo ""; + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    PHONE NOT ADDED - there is already a Phone in the system with this extension/server\n";} + else + { + $stmt="SELECT count(*) from phones where login='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    PHONE NOT ADDED - there is already a Phone in the system with this login\n";} + else + { + $stmt="SELECT count(*) from phones_alias where alias_id='$login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    PHONE NOT ADDED - there is already a Phone alias in the system with this login\n";} + else + { + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    PHONE NOT ADDED - there is already a Voicemail ID in the system with this ID\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + { + echo "
    PHONE NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    The following fields must have data: extension, server_ip, dialplan_number, voicemail_id, login, pass\n"; + } + else + { + echo "
    PHONE ADDED\n"; + + $stmt="INSERT INTO phones (extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,protocol,local_gmt,outbound_cid) values('$extension','$dialplan_number','$voicemail_id','$phone_ip','$computer_ip','$server_ip','$login','$pass','$status','$active','$phone_type','$fullname','$company','$picture','$protocol','$local_gmt','$outbound_cid');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='ADD', record_id='$extension', event_code='ADMIN ADD PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + } + $ADD=31111111111; + } + + +###################### +# ADD=22111111111 adds new phone alias to the system +###################### + +if ($ADD==22111111111) + { + echo ""; + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    PHONE ALIAS NOT ADDED - there is already a Phone Alias in the system with this ID\n";} + else + { + $stmt="SELECT count(*) from phones where login='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    PHONE ALIAS NOT ADDED - there is already a Phone Login in the system with this ID\n";} + else + { + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
    PHONE ALIAS NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    PHONE ALIAS ADDED\n"; + + $stmt="INSERT INTO phones_alias (alias_id,alias_name,logins_list) values('$alias_id','$alias_name','$logins_list');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='ADD', record_id='$alias_id', event_code='ADMIN ADD PHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=32111111111; + } + + +###################### +# ADD=23111111111 adds new group alias to the system +###################### + +if ($ADD==23111111111) + { + echo ""; + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    GROUP ALIAS NOT ADDED - there is already a Phone Alias in the system with this ID\n";} + else + { + if (preg_match("/AGENT_PHONE|CUSTOMER|CAMPAIGN|NONE/",$group_alias_id)) + {echo "
    GROUP ALIAS NOT ADDED - you cannot use reserved words in group aliases\n";} + else + { + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
    GROUP ALIAS NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    GROUP ALIAS ADDED\n"; + + $stmt="INSERT INTO groups_alias (group_alias_id,group_alias_name,caller_id_number,caller_id_name,active) values('$group_alias_id','$group_alias_name','$caller_id_number','$caller_id_name','$active');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='ADD', record_id='$group_alias_id', event_code='ADMIN ADD GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=33111111111; + } + + +###################### +# ADD=211111111111 adds new server to the system +###################### + +if ($ADD==211111111111) + { + echo ""; + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    SERVER NOT ADDED - there is already a server in the system with this ID\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
    SERVER NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    SERVER ADDED\n"; + + $stmt="INSERT INTO servers (server_id,server_description,server_ip,active,asterisk_version) values('$server_id','$server_description','$server_ip','$active','$asterisk_version');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='ADD', record_id='$server_id', event_code='ADMIN ADD SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=311111111111; + } + + +###################### +# ADD=221111111111 adds the new vicidial server trunk record to the system +###################### + +if ($ADD==221111111111) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
    VICIDIAL SERVER TRUNK RECORD NOT ADDED - the number of vicidial trunks is too high: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    VICIDIAL SERVER TRUNK RECORD NOT ADDED - there is already a server-trunk record for this campaign\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
    VICIDIAL SERVER TRUNK RECORD NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    campaign must be between 3 and 8 characters in length\n"; + echo "
    server_ip delay must be at least 7 characters\n"; + echo "
    trunks must be a digit from 0 to 9999\n"; + } + else + { + echo "
    VICIDIAL SERVER TRUNK RECORD ADDED: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + $stmt="INSERT INTO vicidial_server_trunks(server_ip,campaign_id,dedicated_trunks,trunk_restriction) values('$server_ip','$campaign_id','$dedicated_trunks','$trunk_restriction');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS_TRUNK', event_type='ADD', record_id='$server_ip', event_code='ADMIN ADD SERVER TRUNK', event_sql=\"$SQL_log\", event_notes='campaign: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=311111111111; + } + + +###################### +# ADD=231111111111 adds new conf template to the system +###################### + +if ($ADD==231111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CONF TEMPLATE NOT ADDED - there is already a template in the system with this ID\n";} + else + { + if (strlen($template_id) < 2) + {echo "
    CONF TEMPLATE NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    CONF TEMPLATE ADDED\n"; + + $stmt="INSERT INTO vicidial_conf_templates (template_id,template_name,template_contents) values('$template_id','$template_name','$template_contents');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='ADD', record_id='$template_id', event_code='ADMIN ADD CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111; + } + + +###################### +# ADD=241111111111 adds new server carrier to the system +###################### + +if ($ADD==241111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CARRIER NOT ADDED - there is already a carrier in the system with this ID\n";} + else + { + if ( (strlen($carrier_id) < 2) or (strlen($server_ip) < 7) ) + {echo "
    CARRIER NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    CARRIER ADDED\n"; + + $stmt="INSERT INTO vicidial_server_carriers (carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description) values('$carrier_id','$carrier_name','$registration_string','$template_id','$account_entry','$protocol','$globals_string','$dialplan_entry','$server_ip','N','$carrier_description');"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='ADD', record_id='$carrier_id', event_code='ADMIN ADD CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111; + } + + +###################### +# ADD=251111111111 adds new tts entry to the system +###################### + +if ($ADD==251111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    TTS ENTRY NOT ADDED - there is already a tts entry in the system with this ID\n";} + else + { + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 3) ) + {echo "
    TTS ENTRY NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    TTS ENTRY ADDED\n"; + + $stmt="INSERT INTO vicidial_tts_prompts SET tts_id='$tts_id',tts_name='$tts_name',active='$active';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='ADD', record_id='$tts_id', event_code='ADMIN ADD TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=351111111111; + } + + +###################### +# ADD=261111111111 adds new music on hold entry to the system +###################### + +if ($ADD==261111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    MUSIC ON HOLD ENTRY NOT ADDED - there is already a moh entry in the system with this ID\n";} + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 3) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
    MUSIC ON HOLD ENTRY NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    MUSIC ON HOLD ENTRY ADDED\n"; + + $stmt="INSERT INTO vicidial_music_on_hold SET moh_id='$moh_id',moh_name='$moh_name',random='$random';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='ADD', record_id='$moh_id', event_code='ADMIN ADD MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=361111111111; + } + + +###################### +# ADD=271111111111 adds new voicemail box to the system +###################### + +if ($ADD==271111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    VOICEMAIL BOX NOT ADDED - there is already a voicemail box in the system with this ID\n";} + else + { + $stmt="SELECT count(*) from phones where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    VOICEMAIL BOX NOT ADDED - there is already a phone in the system with this voicemail ID\n";} + else + { + if ( (strlen($voicemail_id) < 2) or (strlen($pass) < 2) or (strlen($fullname) < 3) ) + {echo "
    VOICEMAIL BOX NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    VOICEMAIL BOX ADDED\n"; + + $stmt="INSERT INTO vicidial_voicemail SET voicemail_id='$voicemail_id',pass='$pass',email='$email',fullname='$fullname',active='$active';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='ADD', record_id='$voicemail_id', event_code='ADMIN ADD VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=371111111111; + } + + +###################### +# ADD=2111111111111 adds new conference to the system +###################### + +if ($ADD==2111111111111) + { + echo ""; + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    CONFERENCE NOT ADDED - there is already a conference in the system with this ID and server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
    CONFERENCE NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    CONFERENCE ADDED\n"; + + $stmt="INSERT INTO conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=3111111111111; + } + + +###################### +# ADD=21111111111111 adds new vicidial conference to the system +###################### + +if ($ADD==21111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    VICIDIAL CONFERENCE NOT ADDED - there is already a vicidial conference in the system with this ID and server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
    VICIDIAL CONFERENCE NOT ADDED - Please go back and look at the data you entered\n";} + else + { + echo "
    VICIDIAL CONFERENCE ADDED\n"; + + $stmt="INSERT INTO vicidial_conferences (conf_exten,server_ip) values('$conf_exten','$server_ip');"; + $rslt=mysql_query($stmt, $link); + } + } + $ADD=31111111111111; + } + + +###################### +# ADD=221111111111111 adds the new system status to the system +###################### + +if ($ADD==221111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaign_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    SYSTEM STATUS NOT ADDED - there is already a campaign-status in the system with this name: $row[0]\n";} + else + { + $stmt="SELECT count(*) from vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    SYSTEM STATUS NOT ADDED - there is already a global-status in the system with this name\n";} + else + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
    SYSTEM STATUS NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 8 characters in length\n"; + echo "
    status name must be between 2 and 30 characters in length\n"; + } + else + { + echo "
    SYSTEM STATUS ADDED: $status_name - $status\n"; + + $stmt="INSERT INTO vicidial_statuses (status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable) values('$status','$status_name','$selectable','$human_answered','$category','$sale','$dnc','$customer_contact','$not_interested','$unworkable');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='ADD', record_id='$status', event_code='ADMIN ADD SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + $ADD=321111111111111; + } + + +###################### +# ADD=231111111111111 adds the new status category to the system +###################### + +if ($ADD==231111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    STATUS CATEGORY NOT ADDED - there is already a status category in the system with this ID: $row[0]\n";} + else + { + if ( (strlen($vsc_id) < 2) or (strlen($vsc_id) > 20) or (strlen($vsc_name) < 2) ) + { + echo "
    STATUS CATEGORY NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    ID must be between 2 and 20 characters in length\n"; + echo "
    name name must be between 2 and 50 characters in length\n"; + } + else + { + echo "
    STATUS CATEGORY ADDED: $vsc_id - $vsc_name\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
    ERROR: There are already 4 Status Categories set to TimeOnVDAD Display\n"; + } + + $stmt="INSERT INTO vicidial_status_categories (vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category) values('$vsc_id','$vsc_name','$vsc_description','$tovdad_display','$sale_category','$dead_lead_category');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='ADD', record_id='$vsc_id', event_code='ADMIN ADD STATUS CATEGORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=331111111111111; + } + + + +###################### +# ADD=241111111111111 adds the new qc status code to the system +###################### + +if ($ADD==241111111111111) + { + echo ""; + $stmt="SELECT count(*) from vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + {echo "
    QC STATUS CODE NOT ADDED - there is already a qc status code in the system with this name: $row[0]\n";} + else + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
    QC STATUS CODE NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    code must be between 1 and 8 characters in length\n"; + echo "
    code name must be between 2 and 30 characters in length\n"; + } + else + { + echo "
    QC STATUS CODE ADDED: $code_name - $code\n"; + + $stmt="INSERT INTO vicidial_qc_codes (code,code_name) values('$code','$code_name');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCSTATUSES', event_type='ADD', record_id='$code', event_code='ADMIN ADD QC STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $ADD=341111111111111; + } + + + +###################################################################################################### +###################################################################################################### +####### 4 series, record modifications submitted and DB is modified, then on to 3 series forms below +###################################################################################################### +###################################################################################################### + + + +###################### +# ADD=4A submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4A") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
    USER NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    Password and Full Name each need ot be at least 2 characters in length\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
    USER MODIFIED - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',delete_users='$delete_users',delete_user_groups='$delete_user_groups',delete_lists='$delete_lists',delete_campaigns='$delete_campaigns',delete_ingroups='$delete_ingroups',delete_remote_agents='$delete_remote_agents',load_leads='$load_leads',campaign_detail='$campaign_detail',ast_admin_access='$ast_admin_access',ast_delete_phones='$ast_delete_phones',delete_scripts='$delete_scripts',modify_leads='$modify_leads',hotkeys_active='$hotkeys_active',change_agent_campaign='$change_agent_campaign',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',delete_filters='$delete_filters',alter_agent_interface_options='$alter_agent_interface_options',closer_default_blended='$closer_default_blended',delete_call_times='$delete_call_times',modify_call_times='$modify_call_times',modify_users='$modify_users',modify_campaigns='$modify_campaigns',modify_lists='$modify_lists',modify_scripts='$modify_scripts',modify_filters='$modify_filters',modify_ingroups='$modify_ingroups',modify_usergroups='$modify_usergroups',modify_remoteagents='$modify_remoteagents',modify_servers='$modify_servers',view_reports='$view_reports',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',add_timeclock_log='$add_timeclock_log',modify_timeclock_log='$modify_timeclock_log',delete_timeclock_log='$delete_timeclock_log',alter_custphone_override='$alter_custphone_override',vdc_agent_api_access='$vdc_agent_api_access',modify_inbound_dids='$modify_inbound_dids',delete_inbound_dids='$delete_inbound_dids',active='$active',download_lists='$download_lists',agent_shift_enforcement_override='$agent_shift_enforcement_override',manager_shift_enforcement_override='$manager_shift_enforcement_override',export_reports='$export_reports',delete_from_dnc='$delete_from_dnc',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4B submit user modifications to the system - ADMIN +###################### + +if ($ADD=="4B") + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
    USER NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    Password and Full Name each need ot be at least 2 characters in length\n"; + } + else + { + if ($SSoutbound_autodial_active < 1) + { + $closer_default_blended = '0'; + $delete_filters = '0'; + $load_leads = '0'; + } + echo "
    USER MODIFIED - ADMIN: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',hotkeys_active='$hotkeys_active',agent_choose_ingroups='$agent_choose_ingroups',closer_campaigns='$groups_value',scheduled_callbacks='$scheduled_callbacks',agentonly_callbacks='$agentonly_callbacks',agentcall_manual='$agentcall_manual',vicidial_recording='$vicidial_recording',vicidial_transfers='$vicidial_transfers',closer_default_blended='$closer_default_blended',vicidial_recording_override='$vicidial_recording_override',alter_custdata_override='$alter_custdata_override',qc_enabled='$qc_enabled',qc_user_level='$qc_user_level',qc_pass='$qc_pass',qc_finish='$qc_finish',qc_commit='$qc_commit',alter_custphone_override='$alter_custphone_override',active='$active',agent_shift_enforcement_override='$agent_shift_enforcement_override',email='$email',user_code='$user_code',territory='$territory',allow_alerts='$allow_alerts',agent_choose_territories='$agent_choose_territories',custom_one='$custom_one',custom_two='$custom_two',custom_three='$custom_three',custom_four='$custom_four',custom_five='$custom_five' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3; # go to user modification below + } + + +###################### +# ADD=4 submit user modifications to the system +###################### + +if ($ADD==4) + { + if ($LOGmodify_users==1) + { + echo ""; + + if ( (strlen($pass) < 2) or (strlen($full_name) < 2) or (strlen($user_level) < 1) ) + { + echo "
    USER NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    Password and Full Name each need ot be at least 2 characters in length\n"; + } + else + { + echo "
    USER MODIFIED: $user\n"; + + $stmt="UPDATE vicidial_users set pass='$pass',full_name='$full_name',user_level='$user_level',user_group='$user_group',phone_login='$phone_login',phone_pass='$phone_pass',active='$active',email='$email',user_code='$user_code',territory='$territory' where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='MODIFY', record_id='$user', event_code='ADMIN MODIFY USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + $user_name = $user; + $user_password = $pass; + $last_name = $full_name; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level >= 7) {$roleid = 'H3';} + if ($user_level >= 8) {$roleid = 'H4';} + if ($user_level >= 9) {$roleid = 'H2';} + if ($user_level >= 9) {$is_admin = 'on';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + + ###################################### + ##### BEGIN Add/Update user info in Vtiger + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmt="SELECT user_group FROM vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VD_groups_ct = mysql_num_rows($rslt); + $k=0; + $VD_groups_list=''; + while ($k < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $VD_groups_list .= "'$row[0]',"; + $k++; + } + $VD_groups_list = preg_replace("/.$/",'',$VD_groups_list); + + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN(SELECT groupid from vtiger_groups where groupname IN($VD_groups_list));"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW USER RECORD IN VTIGER + } + ##### END Add/Update user info in Vtiger + ###################################### + } + ### END vtiger integration + + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3; # go to user modification below + } + +###################### +# ADD=41 submit campaign modifications to the system - DETAIL +###################### + +if ($ADD==41) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $survey_camp_record_dir = '/home/survey'; + $survey_dtmf_digits = '1238'; + $survey_first_audio_file = 'US_pol_survey_hello'; + $survey_method = 'AGENT_XFER'; + $survey_ni_audio_file = ''; + $survey_ni_digit = '8'; + $survey_ni_status = 'NI'; + $survey_no_response_action = 'OPTIN'; + $survey_opt_in_audio_file = 'US_pol_survey_transfer'; + $survey_response_digit_map = '1-DEMOCRAT|2-REPUBLICAN|3-INDEPENDANT|8-OPTOUT|X-NO RESPONSE|'; + $survey_xfer_exten = '8300'; + $voicemail_ext = ''; + $cpd_amd_action = 'DISABLED'; + $drop_lockout_time = '0'; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
    ACTIVE LISTS CHANGED"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
    CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    the campaign name needs to be at least 6 characters in length\n"; + echo "
    |$campaign_name|$active|\n"; + } + else + { + echo "
    CAMPAIGN MODIFIED: $campaign_id\n"; + + if ( ($dial_method != 'MANUAL') and ($dial_method != 'INBOUND_MAN') ) + { + $no_hopper_dialing='N'; + $agent_dial_owner_only='NONE'; + } + if ($no_hopper_dialing == 'Y') + { + $auto_alt_dial='NONE'; + $list_order_mix='DISABLED'; + } + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + $campaign_allow_inbound='N'; + } + else + { + if ($dial_level_override > 0) + { + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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', $adlSQL 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',drop_action='$drop_action',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',allcalls_delay='$allcalls_delay',omit_phone_code='$omit_phone_code',dial_method='$dial_method',available_only_ratio_tally='$available_only_ratio_tally',adaptive_dropped_percentage='$adaptive_dropped_percentage',adaptive_maximum_level='$adaptive_maximum_level',adaptive_latest_server_time='$adaptive_latest_server_time',adaptive_intensity='$adaptive_intensity',adaptive_dl_diff_target='$adaptive_dl_diff_target',concurrent_transfers='$concurrent_transfers',auto_alt_dial='$auto_alt_dial',agent_pause_codes_active='$agent_pause_codes_active',campaign_description='$campaign_description',campaign_changedate='$SQLdate',campaign_stats_refresh='$campaign_stats_refresh',disable_alter_custdata='$disable_alter_custdata',no_hopper_leads_logins='$no_hopper_leads_logins',list_order_mix='$list_order_mix',campaign_allow_inbound='$campaign_allow_inbound',manual_dial_list_id='$manual_dial_list_id',default_xfer_group='$default_xfer_group',xfer_groups='$XFERgroups_value',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',disable_alter_custphone='$disable_alter_custphone',display_queue_count='$display_queue_count',manual_dial_filter='$manual_dial_filter',agent_clipboard_copy='$agent_clipboard_copy',agent_extended_alt_dial='$agent_extended_alt_dial',use_campaign_dnc='$use_campaign_dnc',three_way_call_cid='$three_way_call_cid',three_way_dial_prefix='$three_way_dial_prefix',web_form_target='$web_form_target',vtiger_search_category='$vtiger_search_category',vtiger_create_call_record='$vtiger_create_call_record',vtiger_create_lead_record='$vtiger_create_lead_record',vtiger_screen_login='$vtiger_screen_login',cpd_amd_action='$cpd_amd_action',agent_allow_group_alias='$agent_allow_group_alias',default_group_alias='$default_group_alias',vtiger_search_dead='$vtiger_search_dead',vtiger_status_call='$vtiger_status_call',drop_lockout_time='$drop_lockout_time',quick_transfer_button='$quick_transfer_button',prepopulate_transfer_preset='$prepopulate_transfer_preset',drop_rate_group='$drop_rate_group',view_calls_in_queue='$view_calls_in_queue',view_calls_in_queue_launch='$view_calls_in_queue_launch',grab_calls_in_queue='$grab_calls_in_queue',call_requeue_button='$call_requeue_button',pause_after_each_call='$pause_after_each_call',no_hopper_dialing='$no_hopper_dialing',agent_dial_owner_only='$agent_dial_owner_only',agent_display_dialable_leads='$agent_display_dialable_leads',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',waitforsilence_options='$waitforsilence_options',agent_select_territories='$agent_select_territories',crm_popup_login='$crm_popup_login',crm_login_address='" . mysql_real_escape_string($crm_login_address) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + if ($reset_hopper == 'Y') + { + echo "
    RESETTING CAMPAIGN LEAD HOPPER\n"; + echo "
    - Wait 1 minute before dialing next number\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=42 modify/delete campaign status in the system +###################### + +if ($ADD==42) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
    CAMPAIGN STATUS NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    the campaign id needs to be at least 2 characters in length\n"; + echo "
    the campaign status needs to be at least 1 characters in length\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
    CUSTOM CAMPAIGN STATUS DELETED: $campaign_id - $status\n"; + + $stmt="DELETE FROM vicidial_campaign_statuses where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
    CUSTOM CAMPAIGN STATUS MODIFIED: $campaign_id - $status\n"; + + $stmt="UPDATE vicidial_campaign_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_STATUS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN STATUS', event_sql=\"$SQL_log\", event_notes='Status: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=22; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=43 delete campaign hotkey in the system +###################### + +if ($ADD==43) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or (strlen($hotkey) < 1) ) + { + echo "
    CAMPAIGN HOT KEY NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    the campaign id needs to be at least 2 characters in length\n"; + echo "
    the campaign status needs to be at least 1 characters in length\n"; + echo "
    the campaign hotkey needs to be at least 1 characters in length\n"; + } + else + { + echo "
    CUSTOM CAMPAIGN HOT KEY DELETED: $campaign_id - $status - $hotkey\n"; + + $stmt="DELETE FROM vicidial_campaign_hotkeys where campaign_id='$campaign_id' and status='$status' and hotkey='$hotkey';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_HOTKEY', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN HOTKEY', event_sql=\"$SQL_log\", event_notes='Status: $status|HotKey: $hotkey';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=23; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=44 submit campaign modifications to the system - Basic View +###################### + +if ($ADD==44) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ($SSoutbound_autodial_active < 1) + { + $adaptive_dl_diff_target = '0'; + $adaptive_dropped_percentage = '99'; + $adaptive_intensity = '0'; + $adaptive_latest_server_time = '2359'; + $adaptive_maximum_level = '1.0'; + $agent_extended_alt_dial = 'N'; + $alt_number_dialing = 'N'; + $am_message_exten = '8320'; + $amd_send_to_vmx = 'N'; + $auto_alt_dial = 'N'; + $auto_dial_level = '1.0'; + $available_only_ratio_tally = 'Y'; + $campaign_allow_inbound = 'Y'; + $campaign_vdad_exten = '8368'; + $concurrent_transfers = 'AUTO'; + $dial_method = 'RATIO'; + $dial_status = ''; + $dial_timeout = '60'; + $drop_action = 'HANGUP'; + $drop_call_seconds = '5'; + $drop_inbound_group = '---NONE---'; + $force_reset_hopper = 'N'; + $hopper_level = '5'; + $lead_filter_id = 'NONE'; + $lead_order = 'DOWN'; + $list_order_mix = 'DISABLED'; + $no_hopper_leads_logins = 'Y'; + $queue_priority = '50'; + $safe_harbor_exten = '8300'; + $voicemail_ext = ''; + } + if (ereg('list_activation',$stage)) + { + $p=0; + echo "
    ACTIVE LISTS CHANGED"; + $list_active_change_ct = count($list_active_change); + while ($p < $list_active_change_ct) + { + $LIST_ACTIVATE .= "'$list_active_change[$p]',"; + $p++; + } + + $stmt = "UPDATE vicidial_lists SET active='Y' where list_id IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $stmtB = "UPDATE vicidial_lists SET active='N' where list_id NOT IN($LIST_ACTIVATE'') and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN ACTIVE LISTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($DB > 0) {echo "|$stmt|\n|$stmtB|\n";} + } + else + { + if ( (strlen($campaign_name) < 6) or (strlen($active) < 1) ) + { + echo "
    CAMPAIGN NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    the campaign name needs to be at least 6 characters in length\n"; + } + else + { + echo "
    CAMPAIGN MODIFIED: $campaign_id\n"; + + if ($dial_method == 'RATIO') + { + if ($auto_dial_level < 1) {$auto_dial_level = "1.0";} + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + else + { + if ($dial_method == 'MANUAL') + { + $auto_dial_level='0'; + $adlSQL = "auto_dial_level='0',"; + } + else + { + $adlSQL = ""; + if ($auto_dial_level < 1) + { + $auto_dial_level = "1.0"; + $adlSQL = "auto_dial_level='$auto_dial_level',"; + } + } + } + if ( (!ereg("DISABLED",$list_order_mix)) and ($hopper_level < 100) ) + {$hopper_level='100';} + + $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',hopper_level='$hopper_level', $adlSQL lead_filter_id='$lead_filter_id',dial_method='$dial_method',adaptive_intensity='$adaptive_intensity',campaign_changedate='$SQLdate',list_order_mix='$list_order_mix' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_hopper == 'Y') + { + echo "
    RESETTING CAMPAIGN LEAD HOPPER\n"; + echo "
    - Wait 1 minute before dialing next number\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id' and status IN('READY','QUEUE','DONE');;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN LEAD HOPPER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=34; # go to campaign modification form below + } + + +###################### +# ADD=45 modify campaign lead recycle in the system +###################### + +if ($ADD==45) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) or ($attempt_delay < 120) or ($attempt_delay >= 43200) or ($attempt_maximum < 1) or ($attempt_maximum > 10) ) + { + echo "
    CAMPAIGN LEAD RECYCLE NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 6 characters in length\n"; + echo "
    attempt delay must be at least 120 seconds and less than 43200 seconds or 12 hours\n"; + echo "
    maximum attempts must be from 1 to 10\n"; + } + else + { + echo "
    CAMPAIGN LEAD MODIFIED: $campaign_id - $status - $attempt_delay\n"; + + $stmt="UPDATE vicidial_lead_recycle SET attempt_delay='$attempt_delay',attempt_maximum='$attempt_maximum',active='$active' where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=47 modify agent pause code in the system +###################### + +if ($ADD==47) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) or (strlen($pause_code) > 6) or (strlen($pause_code_name) < 2) ) + { + echo "
    AGENT PAUSE CODE NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    pause_code must be between 1 and 6 characters in length\n"; + echo "
    pause_code name must be between 2 and 30 characters in length\n"; + } + else + { + echo "
    AGENT PAUSE CODE MODIFIED: $campaign_id - $pause_code - $pause_code_name\n"; + + $stmt="UPDATE vicidial_pause_codes SET pause_code_name='$pause_code_name',billable='$billable' where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODE', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=48 modify campaign QC settings in the system +###################### +if ($ADD==48) + { + if ( ($LOGmodify_campaigns==1) and ($SSqc_features_active) ) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
    QC SETTINGS NOT MODIFIED - Please go back and look at the data you entered\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + echo "
    QC SETTINGS MODIFIED: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_lists='$QC_lists',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_shift_id='$qc_shift_id' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_QC', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN QC SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=28; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=40A modify campaign survey settings in the system +###################### + +if ($ADD=='40A') + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
    SURVEY SETTINGS NOT MODIFIED - Please go back and look at the data you entered\n"; + } + else + { + echo "
    SURVEY SETTINGS MODIFIED: $campaign_id\n"; + + $stmt="UPDATE vicidial_campaigns SET survey_first_audio_file='$survey_first_audio_file',survey_dtmf_digits='$survey_dtmf_digits',survey_ni_digit='$survey_ni_digit',survey_opt_in_audio_file='$survey_opt_in_audio_file',survey_ni_audio_file='$survey_ni_audio_file',survey_method='$survey_method',survey_no_response_action='$survey_no_response_action',survey_ni_status='$survey_ni_status',survey_response_digit_map='$survey_response_digit_map',survey_xfer_exten='$survey_xfer_exten',survey_camp_record_dir='$survey_camp_record_dir',voicemail_ext='$voicemail_ext',survey_third_digit='$survey_third_digit',survey_fourth_digit='$survey_fourth_digit',survey_third_audio_file='$survey_third_audio_file',survey_fourth_audio_file='$survey_fourth_audio_file',survey_third_status='$survey_third_status',survey_fourth_status='$survey_fourth_status',survey_third_exten='$survey_third_exten',survey_fourth_exten='$survey_fourth_exten' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_SURVEY', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN SURVEY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB='20A'; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=49 modify campaign list mix in the system +###################### + +if ($ADD==49) + { + if ($LOGmodify_campaigns==1) + { + ##### MODIFY a list mix container entry ##### + if ($stage=='MODIFY') + { + echo ""; + + $Flist_mix_container = "list_mix_container_$vcl_id"; + $Fmix_method = "mix_method_$vcl_id"; + $Fstatus = "status_$vcl_id"; + $Fvcl_name = "vcl_name_$vcl_id"; + + if (isset($_GET[$Flist_mix_container])) {$list_mix_container=$_GET[$Flist_mix_container];} + elseif (isset($_POST[$Flist_mix_container])) {$list_mix_container=$_POST[$Flist_mix_container];} + if (isset($_GET[$Fmix_method])) {$mix_method=$_GET[$Fmix_method];} + elseif (isset($_POST[$Fmix_method])) {$mix_method=$_POST[$Fmix_method];} + if (isset($_GET[$Fstatus])) {$status=$_GET[$Fstatus];} + elseif (isset($_POST[$Fstatus])) {$status=$_POST[$Fstatus];} + if (isset($_GET[$Fvcl_name])) {$vcl_name=$_GET[$Fvcl_name];} + elseif (isset($_POST[$Fvcl_name])) {$vcl_name=$_POST[$Fvcl_name];} + $list_mix_container = preg_replace("/:$/","",$list_mix_container); + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_mix_container) < 6) or (strlen($vcl_name) < 2) ) + { + echo "
    LIST MIX NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    vcl_id must be between 1 and 20 characters in length\n"; + echo "
    vcl_name name must be between 2 and 30 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET vcl_name='$vcl_name',mix_method='$mix_method',list_mix_container='$list_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='List Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    LIST MIX MODIFIED: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### ADD a list mix container entry ##### + if ($stage=='ADD') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
    LIST MIX NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    vcl_id must be between 1 and 20 characters in length\n"; + echo "
    list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $OLDlist_mix_container = $row[0]; + $NEWlist_mix_container = "$OLDlist_mix_container:$list_id|10|0| -|"; + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='List Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    LIST MIX MODIFIED: $campaign_id - $vcl_id - $list_id\n"; + } + } + + ##### REMOVE a list mix container entry ##### + if ($stage=='REMOVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($list_id) < 1) ) + { + echo "
    LIST MIX NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    vcl_id must be between 1 and 20 characters in length\n"; + echo "
    list_id must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT list_mix_container from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $MIXentries = $MT; + $MIXentries = explode(":", $row[0]); + $Ms_to_print = (count($MIXentries) - 0); + + if ($Ms_to_print < 2) + { + echo "
    LIST MIX NOT MODIFIED: You cannot delete the last list_id entry from a list mix\n"; + } + else + { + $MIXdetailsPCT = explode('|', $MIXentries[$mix_container_item]); + $MIXpercentPCT = $MIXdetailsPCT[2]; + + $q=0; + while ($Ms_to_print > $q) + { + if ( ($mix_container_item > $q) or ($mix_container_item < $q) ) + { + if ( ($q==0) and ($mix_container_item > 0) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + if ( ($q==1) and ($mix_container_item < 1) ) + { + $MIXdetailsONE = explode('|', $MIXentries[$q]); + $MIXpercentONE = ($MIXdetailsONE[2] + $MIXpercentPCT); + $NEWlist_mix_container .= "$MIXdetailsONE[0]|$MIXdetailsONE[1]|$MIXpercentONE|$MIXdetailsONE[3]|:"; + } + else + { + $NEWlist_mix_container .= "$MIXentries[$q]:"; + } + } + } + $q++; + } + $NEWlist_mix_container = preg_replace("/.$/",'',$NEWlist_mix_container); + + $stmt="UPDATE vicidial_campaigns_list_mix SET list_mix_container='$NEWlist_mix_container' where campaign_id='$campaign_id' and vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='List Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    LIST MIX MODIFIED: $campaign_id - $vcl_id - $list_id - $mix_container_item\n"; + } + } + } + + ##### ADD a NEW list mix ##### + if ($stage=='NEWMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) or (strlen($vcl_name) < 2) ) + { + echo "
    LIST MIX NOT ADDED - Please go back and look at the data you entered\n"; + echo "
    vcl_id must be between 1 and 20 characters in length\n"; + echo "
    vcl_name must be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where vcl_id='$vcl_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "
    LIST MIX NOT ADDED - There is already a list mix with this ID in the system\n"; + } + else + { + $stmt="INSERT INTO vicidial_campaigns_list_mix SET list_mix_container='$list_id|1|100| $status -|',campaign_id='$campaign_id',vcl_id='$vcl_id',vcl_name='$vcl_name',mix_method='$mix_method',status='INACTIVE';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='ADD', record_id='$campaign_id', event_code='ADMIN ADD CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='List Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    LIST MIX ADDED: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + + ##### DELETE an existing list mix ##### + if ($stage=='DELMIX') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
    LIST MIX NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_campaigns_list_mix where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LIST MIX', event_sql=\"$SQL_log\", event_notes='List Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    LIST MIX DELETED: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + + ##### Set list mix entry to active ##### + if ($stage=='SETACTIVE') + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($vcl_id) < 1) ) + { + echo "
    LIST MIX NOT ACTIVATED - Please go back and look at the data you entered\n"; + echo "
    vcl_id must be between 1 and 20 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_campaigns_list_mix SET status='INACTIVE' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_campaigns_list_mix SET status='ACTIVE' where vcl_id='$vcl_id' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_LISTMIX', event_type='MODIFY', record_id='$campaign_id', event_code='ADMIN MODIFY CAMPAIGN LIST MIX ACTIVE', event_sql=\"$SQL_log\", event_notes='List Mix: $vcl_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    LIST MIX ACTIVATED: $campaign_id - $vcl_id - $vcl_name\n"; + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=29; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=411 submit list modifications to the system +###################### + +if ($ADD==411) + { + if ($LOGmodify_lists==1) + { + echo ""; + + if ( (strlen($list_name) < 2) or (strlen($campaign_id) < 2) ) + { + echo "
    LIST NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    list name must be at least 2 characters in length\n"; + } + else + { + if (strlen($reset_time) < 4) {$reset_time='';} + + echo "
    LIST MODIFIED: $list_id\n"; + + $stmt="UPDATE vicidial_lists set list_name='$list_name',campaign_id='$campaign_id',active='$active',list_description='$list_description',list_changedate='$SQLdate',reset_time='$reset_time',agent_script_override='$agent_script_override',campaign_cid_override='$campaign_cid_override',am_message_exten_override='$am_message_exten_override',drop_inbound_group_override='$drop_inbound_group_override',xferconf_a_number='$xferconf_a_number',xferconf_b_number='$xferconf_b_number',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='MODIFY', record_id='$list_id', event_code='ADMIN MODIFY LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($reset_list == 'Y') + { + echo "
    RESETTING LIST-CALLED-STATUS\n"; + $stmtB="UPDATE vicidial_list set called_since_last_reset='N' where list_id='$list_id';"; + $rslt=mysql_query($stmtB, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='RESET', record_id='$list_id', event_code='ADMIN RESET LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if ($campaign_id != "$old_campaign_id") + { + echo "
    REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER ($old_campaign_id)\n"; + $stmtC="DELETE from vicidial_hopper where list_id='$list_id' and campaign_id='$old_campaign_id';"; + $rslt=mysql_query($stmtC, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=311; # go to list modification form below + } + + +###################### +# ADD=4111 modify in-group info in the system +###################### + +if ($ADD==4111) + { + if ($LOGmodify_ingroups==1) + { + echo ""; + + if ( (strlen($group_name) < 2) or (strlen($group_color) < 2) ) + { + echo "
    GROUP NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    group name and group color must be at least 2 characters in length\n"; + } + else + { + $p=0; + $qc_statuses_ct = count($qc_statuses); + while ($p < $qc_statuses_ct) + { + $QC_statuses .= " $qc_statuses[$p]"; + $p++; + } + $p=0; + $qc_lists_ct = count($qc_lists); + while ($p < $qc_lists_ct) + { + $QC_lists .= " $qc_lists[$p]"; + $p++; + } + + if (strlen($QC_statuses)>0) {$QC_statuses .= " -";} + if (strlen($QC_lists)>0) {$QC_lists .= " -";} + + + if ($no_agent_action == "INGROUP") + { + if (isset($_GET["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_GET["IGgroup_id_no_agent_action"];} + elseif (isset($_POST["IGgroup_id_no_agent_action"])) {$IGgroup_id=$_POST["IGgroup_id_no_agent_action"];} + if (isset($_GET["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_GET["IGhandle_method_no_agent_action"];} + elseif (isset($_POST["IGhandle_method_no_agent_action"])) {$IGhandle_method=$_POST["IGhandle_method_no_agent_action"];} + if (isset($_GET["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_GET["IGsearch_method_no_agent_action"];} + elseif (isset($_POST["IGsearch_method_no_agent_action"])) {$IGsearch_method=$_POST["IGsearch_method_no_agent_action"];} + if (isset($_GET["IGlist_id_no_agent_action"])) {$IGlist_id=$_GET["IGlist_id_no_agent_action"];} + elseif (isset($_POST["IGlist_id_no_agent_action"])) {$IGlist_id=$_POST["IGlist_id_no_agent_action"];} + if (isset($_GET["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_GET["IGcampaign_id_no_agent_action"];} + elseif (isset($_POST["IGcampaign_id_no_agent_action"])) {$IGcampaign_id=$_POST["IGcampaign_id_no_agent_action"];} + if (isset($_GET["IGphone_code_no_agent_action"])) {$IGphone_code=$_GET["IGphone_code_no_agent_action"];} + elseif (isset($_POST["IGphone_code_no_agent_action"])) {$IGphone_code=$_POST["IGphone_code_no_agent_action"];} + + $no_agent_action_value = "$IGgroup_id,$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($no_agent_action == "EXTENSION") + { + if (isset($_GET["EXextension_no_agent_action"])) {$EXextension=$_GET["EXextension_no_agent_action"];} + elseif (isset($_POST["EXextension_no_agent_action"])) {$EXextension=$_POST["EXextension_no_agent_action"];} + if (isset($_GET["EXcontext_no_agent_action"])) {$EXcontext=$_GET["EXcontext_no_agent_action"];} + elseif (isset($_POST["EXcontext_no_agent_action"])) {$EXcontext=$_POST["EXcontext_no_agent_action"];} + + $no_agent_action_value = "$EXextension,$EXcontext"; + } + + $no_agent_action_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$no_agent_action_value); + + echo "
    GROUP MODIFIED: $group_id\n"; + + $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_action='$drop_action',drop_call_seconds='$drop_call_seconds',drop_exten='$drop_exten',call_time_id='$call_time_id',after_hours_action='$after_hours_action',after_hours_message_filename='$after_hours_message_filename',after_hours_exten='$after_hours_exten',after_hours_voicemail='$after_hours_voicemail',welcome_message_filename='$welcome_message_filename',moh_context='$moh_context',onhold_prompt_filename='$onhold_prompt_filename',prompt_interval='$prompt_interval',agent_alert_exten='$agent_alert_exten',agent_alert_delay='$agent_alert_delay',default_xfer_group='$default_xfer_group',queue_priority='$queue_priority',drop_inbound_group='$drop_inbound_group',ingroup_recording_override='$ingroup_recording_override',ingroup_rec_filename='$ingroup_rec_filename',afterhours_xfer_group='$afterhours_xfer_group',qc_enabled='$qc_enabled',qc_statuses='$QC_statuses',qc_shift_id='$qc_shift_id',qc_get_record_launch='$qc_get_record_launch',qc_show_recording='$qc_show_recording',qc_web_form_address='$qc_web_form_address',qc_script='$qc_script',play_place_in_line='$play_place_in_line',play_estimate_hold_time='$play_estimate_hold_time',hold_time_option='$hold_time_option',hold_time_option_seconds='$hold_time_option_seconds',hold_time_option_exten='$hold_time_option_exten',hold_time_option_voicemail='$hold_time_option_voicemail',hold_time_option_xfer_group='$hold_time_option_xfer_group',hold_time_option_callback_filename='$hold_time_option_callback_filename',hold_time_option_callback_list_id='$hold_time_option_callback_list_id',hold_recall_xfer_group='$hold_recall_xfer_group',no_delay_call_route='$no_delay_call_route',play_welcome_message='$play_welcome_message',answer_sec_pct_rt_stat_one='$answer_sec_pct_rt_stat_one',answer_sec_pct_rt_stat_two='$answer_sec_pct_rt_stat_two',default_group_alias='$default_group_alias',no_agent_no_queue='$no_agent_no_queue',no_agent_action='$no_agent_action',no_agent_action_value='$no_agent_action_value',web_form_address_two='" . mysql_real_escape_string($web_form_address_two) . "',timer_action='$timer_action',timer_action_message='$timer_action_message',timer_action_seconds='$timer_action_seconds',start_call_url='" . mysql_real_escape_string($start_call_url) . "',dispo_call_url='" . mysql_real_escape_string($dispo_call_url) . "',xferconf_c_number='$xferconf_c_number',xferconf_d_number='$xferconf_d_number',xferconf_e_number='$xferconf_e_number' where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='MODIFY', record_id='$group_id', event_code='ADMIN MODIFY INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3111; # go to in-group modification form below + } + + +###################### +# ADD=4311 modify did info in the system +###################### + +if ($ADD==4311) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if ( (strlen($did_id) < 1) or (strlen($did_pattern) < 1) ) + { + echo "
    DID NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    did_extension must be at least 1 character in length\n"; + } + else + { + echo "
    DID MODIFIED: $did_pattern\n"; + + $stmt="UPDATE vicidial_inbound_dids set did_pattern='$did_pattern',did_description='$did_description',did_active='$did_active',did_route='$did_route',extension='$extension',exten_context='$exten_context',voicemail_ext='$voicemail_ext',phone='$phone',server_ip='$server_ip',user='$user',user_unavailable_action='$user_unavailable_action',user_route_settings_ingroup='$user_route_settings_ingroup',group_id='$group_id',call_handle_method='$call_handle_method',agent_search_method='$agent_search_method',list_id='$list_id',campaign_id='$campaign_id',phone_code='$phone_code',menu_id='$menu_id' where did_id='$did_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='MODIFY', record_id='$did_id', event_code='ADMIN MODIFY DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3311; # go to did modification form below + } + + +###################### +# ADD=4511 modify call menu info in the system +###################### + +if ($ADD==4511) + { + if ($LOGmodify_dids==1) + { + echo ""; + + if (strlen($menu_id) < 1) + { + echo "
    CALL MENU NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    menu_id must be at least 1 character in length\n"; + } + else + { + echo "
    CALL MENU MODIFIED: $menu_id\n"; + + $stmt="UPDATE vicidial_call_menu set menu_name='$menu_name',menu_prompt='$menu_prompt',menu_timeout='$menu_timeout',menu_timeout_prompt='$menu_timeout_prompt',menu_invalid_prompt='$menu_invalid_prompt',menu_repeat='$menu_repeat',menu_time_check='$menu_time_check',call_time_id='$call_time_id',track_in_vdac='$track_in_vdac',custom_dialplan_entry='$custom_dialplan_entry',tracking_group='$tracking_group' where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + + $h=0; + $option_value_list='|'; + while ($h <= 18) + { + $option_value=''; $option_description=''; $option_route=''; $option_route_value=''; $option_route_value_context=''; + + if (isset($_GET["option_value_$h"])) {$option_value=$_GET["option_value_$h"];} + elseif (isset($_POST["option_value_$h"])) {$option_value=$_POST["option_value_$h"];} + if (isset($_GET["option_description_$h"])) {$option_description=$_GET["option_description_$h"];} + elseif (isset($_POST["option_description_$h"])) {$option_description=$_POST["option_description_$h"];} + if (isset($_GET["option_route_$h"])) {$option_route=$_GET["option_route_$h"];} + elseif (isset($_POST["option_route_$h"])) {$option_route=$_POST["option_route_$h"];} + if (isset($_GET["option_route_value_$h"])) {$option_route_value=$_GET["option_route_value_$h"];} + elseif (isset($_POST["option_route_value_$h"])) {$option_route_value=$_POST["option_route_value_$h"];} + if (isset($_GET["option_route_value_context_$h"])) {$option_route_value_context=$_GET["option_route_value_context_$h"];} + elseif (isset($_POST["option_route_value_context_$h"])) {$option_route_value_context=$_POST["option_route_value_context_$h"];} + + if ($option_route == "INGROUP") + { + if (isset($_GET["IGhandle_method_$h"])) {$IGhandle_method=$_GET["IGhandle_method_$h"];} + elseif (isset($_POST["IGhandle_method_$h"])) {$IGhandle_method=$_POST["IGhandle_method_$h"];} + if (isset($_GET["IGsearch_method_$h"])) {$IGsearch_method=$_GET["IGsearch_method_$h"];} + elseif (isset($_POST["IGsearch_method_$h"])) {$IGsearch_method=$_POST["IGsearch_method_$h"];} + if (isset($_GET["IGlist_id_$h"])) {$IGlist_id=$_GET["IGlist_id_$h"];} + elseif (isset($_POST["IGlist_id_$h"])) {$IGlist_id=$_POST["IGlist_id_$h"];} + if (isset($_GET["IGcampaign_id_$h"])) {$IGcampaign_id=$_GET["IGcampaign_id_$h"];} + elseif (isset($_POST["IGcampaign_id_$h"])) {$IGcampaign_id=$_POST["IGcampaign_id_$h"];} + if (isset($_GET["IGphone_code_$h"])) {$IGphone_code=$_GET["IGphone_code_$h"];} + elseif (isset($_POST["IGphone_code_$h"])) {$IGphone_code=$_POST["IGphone_code_$h"];} + + $option_route_value_context = "$IGhandle_method,$IGsearch_method,$IGlist_id,$IGcampaign_id,$IGphone_code"; + } + + if ($non_latin < 1) + { + $option_value = ereg_replace("[^-\_0-9A-Z]","",$option_value); + $option_description = ereg_replace("[^- \:\/\_0-9a-zA-Z]","",$option_description); + $option_route = ereg_replace("[^-_0-9a-zA-Z]","",$option_route); + $option_route_value = ereg_replace("[^-\/\|\_\#\*\,\.\_0-9a-zA-Z]","",$option_route_value); + $option_route_value_context = ereg_replace("[^,-_0-9a-zA-Z]","",$option_route_value_context); + } + + if (strlen($option_route) > 0) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists = $row[0]; + + if ($option_exists > 0) + { + $stmtA="UPDATE vicidial_call_menu_options SET option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context' where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + else + { + $stmtA="INSERT INTO vicidial_call_menu_options SET menu_id='$menu_id',option_value='$option_value',option_description='$option_description',option_route='$option_route',option_route_value='$option_route_value',option_route_value_context='$option_route_value_context';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + else + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$option_value';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $option_value_list .= "$option_value|"; + $h++; + } + ## delete existing database records that were not in the submit + while ($h <= 18) + { + if (!preg_match("/\|$dtmf[$h]\|/i",$option_value_list)) + { + $stmtA="SELECT count(*) from vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $row=mysql_fetch_row($rslt); + $option_exists_db = $row[0]; + + if ($option_exists_db > 0) + { + $stmtA="DELETE FROM vicidial_call_menu_options where menu_id='$menu_id' and option_value='$dtmf[$h]';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + } + } + $h++; + } + + $stmtA="UPDATE servers set rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + $stmtAX .= "$stmtA|"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtAX"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='MODIFY', record_id='$menu_id', event_code='ADMIN MODIFY CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3511; # go to call menu modification form below + } + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + if ($LOGmodify_remoteagents==1) + { + echo ""; + + if ( (strlen($server_ip) < 2) or (strlen($user_start) < 2) or (strlen($campaign_id) < 2) or (strlen($conf_exten) < 2) ) + { + echo "
    REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    User ID Start and External Extension must be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_remote_agents set user_start='$user_start', number_of_lines='$number_of_lines', server_ip='$server_ip', conf_exten='$conf_exten', status='$status', campaign_id='$campaign_id', closer_campaigns='$groups_value' where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
    REMOTE AGENTS MODIFIED\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='MODIFY', record_id='$remote_agent_id', event_code='ADMIN MODIFY REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=31111; # go to remote agents modification form below + } + + +###################### +# ADD=411111 modify user group info in the system +###################### + +if ($ADD==411111) + { + if ($LOGmodify_usergroups==1) + { + echo ""; + + if ( (strlen($user_group) < 2) or (strlen($group_name) < 2) ) + { + echo "
    USER GROUP NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    Group name and description must be at least 2 characters in length\n"; + } + else + { + $p=0; + $GROUP_shifts=' '; + $group_shifts_ct = count($group_shifts); + while ($p <= $group_shifts_ct) + { + $group_shifts[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$group_shifts[$p]); + $GROUP_shifts .= "$group_shifts[$p] "; + $p++; + } + $p=0; + $VGROUP_vgroups=' '; + $vgroup_vgroups_ct = count($agent_status_viewable_groups); + while ($p <= $vgroup_vgroups_ct) + { + $agent_status_viewable_groups[$p] = ereg_replace("[^ -_0-9a-zA-Z]","",$agent_status_viewable_groups[$p]); + $VGROUP_vgroups .= "$agent_status_viewable_groups[$p] "; + $p++; + } + + $stmt="UPDATE vicidial_user_groups set user_group='$user_group', group_name='$group_name',allowed_campaigns='$campaigns_value',qc_allowed_campaigns='$qc_campaigns_value',qc_allowed_inbound_groups='$qc_groups_value',group_shifts='$GROUP_shifts',forced_timeclock_login='$forced_timeclock_login',shift_enforcement='$shift_enforcement',agent_status_viewable_groups='$VGROUP_vgroups',agent_status_view_time='$agent_status_view_time' where user_group='$OLDuser_group';"; + $rslt=mysql_query($stmt, $link); + + echo "
    USER GROUP MODIFIED\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$user_group', event_code='ADMIN MODIFY USER GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + ############################################################### + ##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + $stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } + ##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### + ############################################################# + + if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + echo 'Connected successfully'; + mysql_select_db("$vtiger_dbname", $linkV); + + ###################################### + ##### BEGIN Add/Update group info in Vtiger + $stmt="SELECT count(*) from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, update it + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$user_group';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + + $stmtA = "UPDATE vtiger_groups SET description='$group_name' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$user_group',description='$group_name';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #### END CREATE NEW GROUP RECORD IN VTIGER + } + ##### END Add/Update group info in Vtiger + ###################################### + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=311111; # go to user group modification form below + } + + +###################### +# ADD=4111111 modify script in the system +###################### + +if ($ADD==4111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($script_id) < 2) or (strlen($script_name) < 2) or (strlen($script_text) < 2) ) + { + echo "
    SCRIPT NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    Script name, description and text must be at least 2 characters in length\n"; + } + else + { + $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); + + echo "
    SCRIPT MODIFIED\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPTS', event_type='MODIFY', record_id='$script_id', event_code='ADMIN MODIFY SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3111111; # go to script modification form below + } + + +###################### +# ADD=41111111 modify filter in the system +###################### + +if ($ADD==41111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo ""; + + if ( (strlen($lead_filter_id) < 2) or (strlen($lead_filter_name) < 2) or (strlen($lead_filter_sql) < 2) ) + { + echo "
    FILTER NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    Filter ID, name and SQL must be at least 2 characters in length\n"; + } + else + { + $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); + + echo "
    FILTER MODIFIED\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTERS', event_type='MODIFY', record_id='$lead_filter_id', event_code='ADMIN MODIFY FILTER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=31111111; # go to filter modification form below + } + + +###################### +# ADD=411111111 modify call time in the system +###################### + +if ($ADD==411111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) ) + { + echo "
    CALL TIME NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    Call Time ID and name must be at least 2 characters in length\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_call_times set call_time_name='$call_time_name', call_time_comments='$call_time_comments', ct_default_start='$ct_default_start', ct_default_stop='$ct_default_stop', ct_sunday_start='$ct_sunday_start', ct_sunday_stop='$ct_sunday_stop', ct_monday_start='$ct_monday_start', ct_monday_stop='$ct_monday_stop', ct_tuesday_start='$ct_tuesday_start', ct_tuesday_stop='$ct_tuesday_stop', ct_wednesday_start='$ct_wednesday_start', ct_wednesday_stop='$ct_wednesday_stop', ct_thursday_start='$ct_thursday_start', ct_thursday_stop='$ct_thursday_stop', ct_friday_start='$ct_friday_start', ct_friday_stop='$ct_friday_stop', ct_saturday_start='$ct_saturday_start', ct_saturday_stop='$ct_saturday_stop' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
    CALL TIME MODIFIED\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=311111111; # go to call time modification form below + } + + +###################### +# ADD=4111111111 modify state call time in the system +###################### + +if ($ADD==4111111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or (strlen($call_time_name) < 2) or (strlen($state_call_time_state) < 2) ) + { + echo "
    STATE CALL TIME NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    State Call Time ID, name and state must be at least 2 characters in length\n"; + } + else + { + $ct_default_start = preg_replace('/\D/', '', $ct_default_start); + $ct_default_stop = preg_replace('/\D/', '', $ct_default_stop); + $ct_sunday_start = preg_replace('/\D/', '', $ct_sunday_start); + $ct_sunday_stop = preg_replace('/\D/', '', $ct_sunday_stop); + $ct_monday_start = preg_replace('/\D/', '', $ct_monday_start); + $ct_monday_stop = preg_replace('/\D/', '', $ct_monday_stop); + $ct_tuesday_start = preg_replace('/\D/', '', $ct_tuesday_start); + $ct_tuesday_stop = preg_replace('/\D/', '', $ct_tuesday_stop); + $ct_wednesday_start = preg_replace('/\D/', '', $ct_wednesday_start); + $ct_wednesday_stop = preg_replace('/\D/', '', $ct_wednesday_stop); + $ct_thursday_start = preg_replace('/\D/', '', $ct_thursday_start); + $ct_thursday_stop = preg_replace('/\D/', '', $ct_thursday_stop); + $ct_friday_start = preg_replace('/\D/', '', $ct_friday_start); + $ct_friday_stop = preg_replace('/\D/', '', $ct_friday_stop); + $ct_saturday_start = preg_replace('/\D/', '', $ct_saturday_start); + $ct_saturday_stop = preg_replace('/\D/', '', $ct_saturday_stop); + $stmt="UPDATE vicidial_state_call_times set state_call_time_name='$call_time_name', state_call_time_comments='$call_time_comments', sct_default_start='$ct_default_start', sct_default_stop='$ct_default_stop', sct_sunday_start='$ct_sunday_start', sct_sunday_stop='$ct_sunday_stop', sct_monday_start='$ct_monday_start', sct_monday_stop='$ct_monday_stop', sct_tuesday_start='$ct_tuesday_start', sct_tuesday_stop='$ct_tuesday_stop', sct_wednesday_start='$ct_wednesday_start', sct_wednesday_stop='$ct_wednesday_stop', sct_thursday_start='$ct_thursday_start', sct_thursday_stop='$ct_thursday_stop', sct_friday_start='$ct_friday_start', sct_friday_stop='$ct_friday_stop', sct_saturday_start='$ct_saturday_start', sct_saturday_stop='$ct_saturday_stop', state_call_time_state='$state_call_time_state' where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
    STATE CALL TIME MODIFIED\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='MODIFY', record_id='$call_time_id', event_code='ADMIN MODIFY STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3111111111; # go to state call time modification form below + } + + +###################### +# ADD=431111111 modify shift in the system +###################### + +if ($ADD==431111111) + { + if ($LOGmodify_call_times==1) + { + echo ""; + + $shift_length_test = eregi_replace(':','',$shift_length); + if ( (strlen($shift_id) < 2) or (strlen($shift_name) < 2) or (strlen($shift_start_time) < 4) or (strlen($shift_start_time) > 4) or (strlen($shift_length) < 5) or (strlen($shift_length) > 5) or ($shift_start_time > 2359) or ($shift_length_test > 2400) ) + { + echo "
    SHIFT DEFINITION NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    Shift ID and name must be at least 2 characters in length\n"; + echo "
    Shift Start Time must be 4 digits in length and be a valid time\n"; + echo "
    Shift Length must be 5 characters in length and be 24 hours or less\n"; + } + else + { + $p=0; + $shift_weekdays_ct = count($shift_weekdays); + while ($p <= $shift_weekdays_ct) + { + $SHIFT_weekdays .= "$shift_weekdays[$p]"; + $p++; + } + $shift_start_time = preg_replace('/\D/', '', $shift_start_time); + $stmt="UPDATE vicidial_shifts set shift_name='$shift_name', shift_start_time='$shift_start_time', shift_length='$shift_length', shift_weekdays='$SHIFT_weekdays' where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
    SHIFT MODIFIED\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='MODIFY', record_id='$shift_id', event_code='ADMIN MODIFY SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=331111111; # go to shift modification form below + } + + +###################### +# ADD=41111111111 modify phone record in the system +###################### + +if ($ADD==41111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($extension != $old_extension) or ($server_ip != $old_server_ip) ) ) + {echo "
    PHONE NOT MODIFIED - there is already a Phone in the system with this extension/server\n";} + else + { + if ( (strlen($extension) < 1) or (strlen($server_ip) < 7) or (strlen($dialplan_number) < 1) or (strlen($voicemail_id) < 1) or (strlen($login) < 1) or (strlen($pass) < 1)) + {echo "
    PHONE NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + echo "
    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='" . 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', enable_sipsak_messages='$enable_sipsak_messages', email='$email', template_id='$template_id', conf_override='$conf_override',phone_context='$phone_context',phone_ring_timeout='$phone_ring_timeout',conf_secret='$conf_secret', delete_vm_after_email='$delete_vm_after_email' where extension='$old_extension' and server_ip='$old_server_ip';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='MODIFY', record_id='$extension', event_code='ADMIN MODIFY PHONE', event_sql=\"$SQL_log\", event_notes='Server IP: $server_ip';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=31111111111; # go to phone modification form below + } + + +###################### +# ADD=42111111111 modify phone alias record in the system +###################### + +if ($ADD==42111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($alias_id) < 1) or (strlen($alias_name) < 2) ) + {echo "
    PHONE ALIAS NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + echo "
    PHONE ALIAS MODIFIED: $alias_id\n"; + + $stmt="UPDATE phones_alias set alias_name='$alias_name', logins_list='$logins_list' where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='MODIFY', record_id='$alias_id', event_code='ADMIN MODIFY PHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=32111111111; # go to phone alias modification form below + } + + +###################### +# ADD=43111111111 modify group alias record in the system +###################### + +if ($ADD==43111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( (strlen($group_alias_id) < 1) or (strlen($group_alias_name) < 2) ) + {echo "
    GROUP ALIAS NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + echo "
    GROUP ALIAS MODIFIED: $alias_id\n"; + + $stmt="UPDATE groups_alias set group_alias_name='$group_alias_name', caller_id_number='$caller_id_number', caller_id_name='$caller_id_name', active='$active' where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='MODIFY', record_id='$group_alias_id', event_code='ADMIN MODIFY GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=33111111111; # go to group alias modification form below + } + + +###################### +# ADD=411111111111 modify server record in the system +###################### + +if ($ADD==411111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + $stmt="SELECT count(*) from servers where server_id='$server_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_id != $old_server_id) ) + {echo "
    SERVER NOT MODIFIED - there is already a server in the system with this server_id\n";} + else + { + $stmt="SELECT count(*) from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ($server_ip != $old_server_ip) ) + {echo "
    SERVER NOT MODIFIED - there is already a server in the system with this server_ip\n";} + else + { + if ( (strlen($server_id) < 1) or (strlen($server_ip) < 7) ) + {echo "
    SERVER NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + $stmt="UPDATE servers set server_id='$server_id',server_description='$server_description',server_ip='$server_ip',active='$active',asterisk_version='$asterisk_version', max_vicidial_trunks='$max_vicidial_trunks', telnet_host='$telnet_host', telnet_port='$telnet_port', ASTmgrUSERNAME='$ASTmgrUSERNAME', ASTmgrSECRET='$ASTmgrSECRET', ASTmgrUSERNAMEupdate='$ASTmgrUSERNAMEupdate', ASTmgrUSERNAMElisten='$ASTmgrUSERNAMElisten', ASTmgrUSERNAMEsend='$ASTmgrUSERNAMEsend', local_gmt='$local_gmt', voicemail_dump_exten='$voicemail_dump_exten', answer_transfer_agent='$answer_transfer_agent', ext_context='$ext_context', sys_perf_log='$sys_perf_log', vd_server_logs='$vd_server_logs', agi_output='$agi_output', vicidial_balance_active='$vicidial_balance_active',balance_trunks_offlimits='$balance_trunks_offlimits',recording_web_link='$recording_web_link',alt_server_ip='$alt_server_ip',active_asterisk_server='$active_asterisk_server',generate_vicidial_conf='$generate_vicidial_conf',rebuild_conf_files='$rebuild_conf_files',outbound_calls_per_second='$outbound_calls_per_second',sounds_update='$sounds_update',vicidial_recording_limit='$vicidial_recording_limit',carrier_logging_active='$carrier_logging_active',vicidial_balance_rank='$vicidial_balance_rank',rebuild_music_on_hold='$rebuild_music_on_hold',active_agent_login_server='$active_agent_login_server',conf_secret='$conf_secret' where server_id='$old_server_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
    SERVER MODIFIED: $server_ip\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='MODIFY', record_id='$server_id', event_code='ADMIN MODIFY SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=421111111111 modify vicidial server trunks record in the system +###################### + +if ($ADD==421111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + $stmt="SELECT max_vicidial_trunks from servers where server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $MAXvicidial_trunks = $rowx[0]; + + $stmt="SELECT sum(dedicated_trunks) from vicidial_server_trunks where server_ip='$server_ip' and campaign_id !='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $SUMvicidial_trunks = ($rowx[0] + $dedicated_trunks); + + if ($SUMvicidial_trunks > $MAXvicidial_trunks) + { + echo "
    VICIDIAL SERVER TRUNK RECORD NOT ADDED - the number of vicidial trunks is too high: $SUMvicidial_trunks / $MAXvicidial_trunks\n"; + } + else + { + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) or (strlen($dedicated_trunks) < 1) or (strlen($trunk_restriction) < 1) ) + { + echo "
    VICIDIAL SERVER TRUNK RECORD NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    campaign must be between 3 and 8 characters in length\n"; + echo "
    server_ip delay must be at least 7 characters\n"; + echo "
    trunks must be a digit from 0 to 9999\n"; + } + else + { + $stmt="UPDATE vicidial_server_trunks SET dedicated_trunks='$dedicated_trunks',trunk_restriction='$trunk_restriction' where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + echo "
    VICIDIAL SERVER TRUNK RECORD MODIFIED: $campaign_id - $server_ip - $dedicated_trunks - $trunk_restriction\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTRUNKS', event_type='MODIFY', record_id='$server_ip', event_code='ADMIN MODIFY SERVER TRUNK', event_sql=\"$SQL_log\", event_notes='Campaign: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=431111111111 modify conf template record in the system +###################### '$template_id','$template_name','$template_contents' + +if ($ADD==431111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($template_id) < 1) or (strlen($template_name) < 1) ) + {echo "
    CONF TEMPLATE NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + $stmt="UPDATE vicidial_conf_templates set template_name='$template_name',template_contents='$template_contents' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
    CONF TEMPLATE MODIFIED: $template_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='MODIFY', record_id='$template_id', event_code='ADMIN MODIFY CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=331111111111; # go to conf template modification form below + } + + +###################### +# ADD=441111111111 modify carrier record in the system +###################### + +if ($ADD==441111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($carrier_id) < 1) or (strlen($server_ip) < 7) or (strlen($protocol) < 1) ) + {echo "
    CARRIER NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + $stmt="UPDATE vicidial_server_carriers set carrier_name='$carrier_name',registration_string='$registration_string',template_id='$template_id',account_entry='$account_entry',protocol='$protocol',globals_string='$globals_string',dialplan_entry='$dialplan_entry',server_ip='$server_ip',active='$active',carrier_description='$carrier_description' where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + echo "
    CARRIER MODIFIED: $carrier_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='MODIFY', record_id='$carrier_id', event_code='ADMIN MODIFY CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=341111111111; # go to carrier modification form below + } + + +###################### +# ADD=451111111111 modify tts record in the system +###################### + +if ($ADD==451111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($tts_id) < 2) or (strlen($tts_name) < 5) ) + {echo "
    TTS ENTRY NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + $stmt="UPDATE vicidial_tts_prompts set tts_name='$tts_name',active='$active',tts_text=\"$tts_text\" where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
    TTS ENTRY MODIFIED: $tts_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='MODIFY', record_id='$tts_id', event_code='ADMIN MODIFY TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=351111111111; # go to tts entry modification form below + } + + +###################### +# ADD=461111111111 modify music on hold record in the system +###################### + +if ($ADD==461111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ($stage == "FILEDELETE") + { + if ( (strlen($moh_id) < 2) or (strlen($filename) < 1) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
    MUSIC ON HOLD ENTRY NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + $stmt="DELETE FROM vicidial_music_on_hold_files where moh_id='$moh_id' and filename='$filename';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
    MUSIC ON HOLD ENTRY MODIFIED: $moh_id - $filename\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='FILE DELETE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + if ( (strlen($moh_id) < 2) or (strlen($moh_name) < 5) or ($moh_id=='sounds') or ($moh_id=='agi-bin') or ($moh_id=='astdb') or ($moh_id=='keys') ) + {echo "
    MUSIC ON HOLD ENTRY NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + $stmt="UPDATE vicidial_music_on_hold set moh_name='$moh_name',active='$active',random='$random' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST = $stmt; + + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 1); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $mohfiles[$o] = $rowx[0]; + $mohranks[$o] = $rowx[1]; + $o++; + } + + $o=0; + while ($mohfiles_to_print > $o) + { + $new_rank=0; + $Ffilename = $mohfiles[$o]; + if (isset($_GET[$Ffilename])) {$new_rank=$_GET[$Ffilename];} + elseif (isset($_POST[$Ffilename])) {$new_rank=$_POST[$Ffilename];} + + $stmt="UPDATE vicidial_music_on_hold_files set rank='$new_rank' where moh_id='$moh_id' and filename='$mohfiles[$o]';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + $o++; + } + + if (strlen($filename) > 0) + { + $stmt="INSERT INTO vicidial_music_on_hold_files set filename='$filename',rank='$ranks',moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $stmtLIST .= "|$stmt"; + } + + $stmtA="UPDATE servers SET rebuild_conf_files='Y',rebuild_music_on_hold='Y',sounds_update='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmtA, $link); + + echo "
    MUSIC ON HOLD ENTRY MODIFIED: $moh_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtLIST|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='MODIFY', record_id='$moh_id', event_code='ADMIN MODIFY MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=361111111111; # go to music on hold entry modification form below + } + + +###################### +# ADD=471111111111 modify voicemail record in the system +###################### + +if ($ADD==471111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or (strlen($fullname) < 2) ) + {echo "
    VOICEMAIL BOX NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + $stmt="UPDATE vicidial_voicemail set fullname='$fullname',active='$active',pass='$pass',email='$email',delete_vm_after_email='$delete_vm_after_email' where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + echo "
    VOICEMAIL BOX MODIFIED: $voicemail_id\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='MODIFY', record_id='$voicemail_id', event_code='ADMIN MODIFY VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=371111111111; # go to voicemail entry modification form below + } + + +###################### +# ADD=4111111111111 modify conference record in the system +###################### + +if ($ADD==4111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
    CONFERENCE NOT MODIFIED - there is already a Conference in the system with this extension-server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
    CONFERENCE NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + echo "
    CONFERENCE MODIFIED: $conf_exten\n"; + + $stmt="UPDATE conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=3111111111111; # go to conference modification form below + } + + +###################### +# ADD=41111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==41111111111111) + { + if ($LOGast_admin_access==1) + { + echo ""; + + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 0) && ( ($conf_exten != $old_conf_exten) or ($server_ip != $old_server_ip) ) ) + {echo "
    VICIDIAL CONFERENCE NOT MODIFIED - there is already a Conference in the system with this extension-server\n";} + else + { + if ( (strlen($conf_exten) < 1) or (strlen($server_ip) < 7) ) + {echo "
    VICIDIAL CONFERENCE NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + echo "
    VICIDIAL CONFERENCE MODIFIED: $conf_exten\n"; + + $stmt="UPDATE vicidial_conferences set conf_exten='$conf_exten',server_ip='$server_ip',extension='$extension' where conf_exten='$old_conf_exten';"; + $rslt=mysql_query($stmt, $link); + + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=31111111111111; # go to vicidial conference modification form below + } + + +###################### +# ADD=411111111111111 modify vicidial system settings +###################### + +if ($ADD==411111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + echo "
    VICIDIAL SYSTEM SETTINGS MODIFIED\n"; + + $stmt="UPDATE system_settings set use_non_latin='$use_non_latin',webroot_writable='$webroot_writable',enable_queuemetrics_logging='$enable_queuemetrics_logging',queuemetrics_server_ip='$queuemetrics_server_ip',queuemetrics_dbname='$queuemetrics_dbname',queuemetrics_login='$queuemetrics_login',queuemetrics_pass='$queuemetrics_pass',queuemetrics_url='$queuemetrics_url',queuemetrics_log_id='$queuemetrics_log_id',queuemetrics_eq_prepend='$queuemetrics_eq_prepend',vicidial_agent_disable='$vicidial_agent_disable',allow_sipsak_messages='$allow_sipsak_messages',admin_home_url='$admin_home_url',enable_agc_xfer_log='$enable_agc_xfer_log',timeclock_end_of_day='$timeclock_end_of_day',vdc_header_date_format='$vdc_header_date_format',vdc_customer_date_format='$vdc_customer_date_format',vdc_header_phone_format='$vdc_header_phone_format',vdc_agent_api_active='$vdc_agent_api_active',enable_vtiger_integration='$enable_vtiger_integration',vtiger_server_ip='$vtiger_server_ip',vtiger_dbname='$vtiger_dbname',vtiger_login='$vtiger_login',vtiger_pass='$vtiger_pass',vtiger_url='$vtiger_url',qc_features_active='$qc_features_active',outbound_autodial_active='$outbound_autodial_active',outbound_calls_per_second='$outbound_calls_per_second',enable_tts_integration='$enable_tts_integration',agentonly_callback_campaign_lock='$agentonly_callback_campaign_lock',sounds_central_control_active='$sounds_central_control_active',sounds_web_server='$sounds_web_server',sounds_web_directory='$sounds_web_directory',active_voicemail_server='$active_voicemail_server',auto_dial_limit='$auto_dial_limit',user_territories_active='$user_territories_active',allow_custom_dialplan='$allow_custom_dialplan',enable_second_webform='$enable_second_webform';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSETTINGS', event_type='MODIFY', record_id='system_settings', event_code='ADMIN MODIFY SYSTEM SETTINGS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=311111111111111; # go to vicidial system settings form below + } + + +###################### +# ADD=421111111111111 modify/delete system status in the system +###################### + +if ($ADD==421111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($status) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$status)) ) + { + echo "
    SYSTEM STATUS NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    the system status cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
    the system status needs to be at least 1 characters in length\n"; + } + else + { + echo "
    SYSTEM STATUS DELETED: $status\n"; + + $stmt="DELETE FROM vicidial_statuses where status='$status';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE FROM vicidial_campaign_hotkeys where status='$status';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='DELETE', record_id='$status', event_code='ADMIN DELETE SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($status) < 1) or (strlen($status_name) < 2) ) + { + echo "
    SYSTEM STATUS NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    the system status needs to be at least 1 characters in length\n"; + echo "
    the system status name needs to be at least 1 characters in length\n"; + } + else + { + echo "
    SYSTEM STATUS MODIFIED: $status\n"; + + $stmt="UPDATE vicidial_statuses SET status_name='$status_name',selectable='$selectable',human_answered='$human_answered',category='$category',sale='$sale',dnc='$dnc',customer_contact='$customer_contact',not_interested='$not_interested',unworkable='$unworkable' where status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SYSTEMSTATUSES', event_type='MODIFY', record_id='$status', event_code='ADMIN MODIFY SYSTEM STATUS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=321111111111111; # go to system settings modification form below + } + + +###################### +# ADD=431111111111111 modify/delete status category in the system +###################### + +if ($ADD==431111111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($vsc_id) < 2) or (preg_match("/^UNDEFINED$/i",$vsc_id)) ) + { + echo "
    STATUS CATEGORY NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    the status category cannot be a reserved category: UNDEFINED\n"; + echo "
    the status category needs to be at least 2 characters in length\n"; + } + else + { + if (ereg('delete',$stage)) + { + echo "
    STATUS CATEGORY DELETED: $vsc_id\n"; + + $stmt="DELETE FROM vicidial_status_categories where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE STATUS CATEGORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + if (ereg('modify',$stage)) + { + echo "
    STATUS CATEGORY MODIFIED: $vsc_id\n"; + + $stmt="SELECT count(*) from vicidial_status_categories where tovdad_display='Y' and vsc_id NOT IN('$vsc_id');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ( ($row[0] > 3) and (ereg('Y',$tovdad_display)) ) + { + $tovdad_display = 'N'; + echo "
    ERROR: There are already 4 Status Categories set to TimeOnVDAD Display\n"; + } + + $stmt="UPDATE vicidial_status_categories SET vsc_name='$vsc_name',vsc_description='$vsc_description',tovdad_display='$tovdad_display',sale_category='$sale_category',dead_lead_category='$dead_lead_category' where vsc_id='$vsc_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='STATUSCATEGORIES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY STATUS CATEGORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=331111111111111; # go to system settings modification form below + } + + +###################### +# ADD=441111111111111 modify/delete qc status code in the system +###################### + +if ($ADD==441111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo ""; + + if (ereg('delete',$stage)) + { + if ( (strlen($code) < 1) or (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$code)) ) + { + echo "
    QC STATUS CODE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    the qc status code cannot be a reserved status: B,NA,DNC,NA,DROP,INCALL,QUEUE,NEW\n"; + echo "
    the qc status code needs to be at least 1 characters in length\n"; + } + else + { + echo "
    QC STATUS CODE DELETED: $code\n"; + + $stmt="DELETE FROM vicidial_qc_codes where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='DELETE', record_id='$vsc_id', event_code='ADMIN DELETE QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + if (ereg('modify',$stage)) + { + if ( (strlen($code) < 1) or (strlen($code_name) < 2) ) + { + echo "
    QC STATUS CODE NOT MODIFIED - Please go back and look at the data you entered\n"; + echo "
    the qc status code needs to be at least 1 characters in length\n"; + echo "
    the qc status code name needs to be at least 1 characters in length\n"; + } + else + { + echo "
    QC STATUS CODE MODIFIED: $code\n"; + + $stmt="UPDATE vicidial_qc_codes SET code_name='$code_name' where code='$code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='QCCODES', event_type='MODIFY', record_id='$vsc_id', event_code='ADMIN MODIFY QC CODES', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=341111111111111; # go to qc status code modification form below + } + + + + +###################################################################################################### +###################################################################################################### +####### 5 series, delete records confirmation +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=5 confirmation before deletion of user +###################### + +if ($ADD==5) + { + echo ""; + + if ( (strlen($user) < 2) or ($LOGdelete_users < 1) ) + { + echo "
    USER NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    User be at least 2 characters in length\n"; + } + else + { + echo "
    USER DELETION CONFIRMATION: $user\n"; + echo "

    Click here to delete user $user


    \n"; + } + + $ADD='3'; # go to user modification below + } + +###################### +# ADD=51 confirmation before deletion of campaign +###################### + +if ($ADD==51) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or ($LOGdelete_campaigns < 1) ) + { + echo "
    CAMPAIGN NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Campaign_id be at least 2 characters in length\n"; + } + else + { + echo "
    CAMPAIGN DELETION CONFIRMATION: $campaign_id\n"; + echo "

    Click here to delete campaign $campaign_id


    \n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=52 confirmation before logging all agents out of campaign of campaign +###################### + +if ($ADD==52) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
    AGENTS NOT LOGGED OUT OF CAMPAIGN - Please go back and look at the data you entered\n"; + echo "
    Campaign_id be at least 2 characters in length\n"; + } + else + { + echo "
    AGENT LOGOUT CONFIRMATION: $campaign_id\n"; + echo "

    Click here to log all agents out of $campaign_id


    \n"; + } + + $ADD='31'; # go to campaign modification below + } + +###################### +# ADD=53 confirmation before Emergency VDAC Jam Clear - deletes oldest LIVE vicidial_auto_call record +###################### + +if ($ADD==53) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
    VDAC NOT CLEARED FOR CAMPAIGN - Please go back and look at the data you entered\n"; + echo "
    Campaign_id be at least 2 characters in length\n"; + } + else + { + echo "
    VDAC CLEAR CONFIRMATION: $campaign_id\n"; + echo "

    Click here to delete the oldest LIVE record in VDAC for $campaign_id


    \n"; + } + + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + +###################### +# ADD=511 confirmation before deletion of list +###################### + +if ($ADD==511) + { + echo ""; + + if ( (strlen($list_id) < 2) or ($LOGdelete_lists < 1) ) + { + echo "
    LIST NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    List_id be at least 2 characters in length\n"; + } + else + { + echo "
    LIST DELETION CONFIRMATION: $list_id\n"; + echo "

    Click here to delete list and all of its leads $list_id


    \n"; + } + + $ADD='311'; # go to campaign modification below + } + +###################### +# ADD=5111 confirmation before deletion of in-group +###################### + +if ($ADD==5111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($LOGdelete_ingroups < 1) ) + { + echo "
    IN-GROUP NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Group_id be at least 2 characters in length\n"; + } + else + { + echo "
    IN-GROUP DELETION CONFIRMATION: $group_id\n"; + echo "

    Click here to delete in-group $group_id


    \n"; + } + + $ADD='3111'; # go to in-group modification below + } + +###################### +# ADD=5311 confirmation before deletion of did +###################### + +if ($ADD==5311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($LOGdelete_dids < 1) ) + { + echo "
    DID NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    did_id be at least 1 characters in length\n"; + } + else + { + echo "
    DID DELETION CONFIRMATION: $menu_id\n"; + echo "

    Click here to delete DID $did_id


    \n"; + } + + $ADD='3311'; # go to did modification below + } + +###################### +# ADD=5511 confirmation before deletion of call menu +###################### + +if ($ADD==5511) + { + echo ""; + + if ( (strlen($menu_id) < 2) or ($LOGdelete_dids < 1) ) + { + echo "
    CALL MENU NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    menu_id be at least 2 characters in length\n"; + } + else + { + echo "
    CALL MENU DELETION CONFIRMATION: $menu_id\n"; + echo "

    Click here to delete CALL MENU $menu_id


    \n"; + } + + $ADD='3511'; # go to call menu modification below + } + +###################### +# ADD=51111 confirmation before deletion of remote agent record +###################### + +if ($ADD==51111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($LOGdelete_remote_agents < 1) ) + { + echo "
    REMOTE AGENT NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Remote_agent_id be at least 2 characters in length\n"; + } + else + { + echo "
    REMOTE AGENT DELETION CONFIRMATION: $remote_agent_id\n"; + echo "

    Click here to delete remote agent $remote_agent_id


    \n"; + } + + $ADD='31111'; # go to remote agent modification below + } + +###################### +# ADD=511111 confirmation before deletion of user group record +###################### + +if ($ADD==511111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($LOGdelete_user_groups < 1) ) + { + echo "
    USER GROUP NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    User_group be at least 2 characters in length\n"; + } + else + { + echo "
    USER GROUP DELETION CONFIRMATION: $user_group\n"; + echo "

    Click here to delete user group $user_group


    \n"; + } + + $ADD='311111'; # go to user group modification below + } + +###################### +# ADD=5111111 confirmation before deletion of script record +###################### + +if ($ADD==5111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($LOGdelete_scripts < 1) ) + { + echo "
    SCRIPT NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Script_id must be at least 2 characters in length\n"; + } + else + { + echo "
    SCRIPT DELETION CONFIRMATION: $script_id\n"; + echo "

    Click here to delete script $script_id


    \n"; + } + + $ADD='3111111'; # go to script modification below + } + +###################### +# ADD=51111111 confirmation before deletion of filter record +###################### + +if ($ADD==51111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($LOGdelete_filters < 1) ) + { + echo "
    FILTER NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Filter ID must be at least 2 characters in length\n"; + } + else + { + echo "
    FILTER DELETION CONFIRMATION: $lead_filter_id\n"; + echo "

    Click here to delete filter $lead_filter_id


    \n"; + } + + $ADD='31111111'; # go to filter modification below + } + +###################### +# ADD=511111111 confirmation before deletion of call time record +###################### + +if ($ADD==511111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
    CALL TIME NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Call Time ID must be at least 2 characters in length\n"; + } + else + { + echo "
    CALL TIME DELETION CONFIRMATION: $call_time_id\n"; + echo "

    Click here to delete call time $call_time_id


    \n"; + } + + $ADD='311111111'; # go to call time modification below + } + +###################### +# ADD=5111111111 confirmation before deletion of state call time record +###################### + +if ($ADD==5111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
    STATE CALL TIME NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Call Time ID must be at least 2 characters in length\n"; + } + else + { + echo "
    STATE CALL TIME DELETION CONFIRMATION: $call_time_id\n"; + echo "

    Click here to delete state call time $call_time_id


    \n"; + } + + $ADD='3111111111'; # go to state call time modification below + } + +###################### +# ADD=531111111 confirmation before deletion of shift record +###################### + +if ($ADD==531111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
    SHIFT NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Shift ID must be at least 2 characters in length\n"; + } + else + { + echo "
    SHIFT DELETION CONFIRMATION: $shift_id\n"; + echo "

    Click here to delete shift $shift_id


    \n"; + } + + $ADD='331111111'; # go to call time modification below + } + +###################### +# ADD=51111111111 confirmation before deletion of phone record +###################### + +if ($ADD==51111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
    PHONE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Extension be at least 2 characters in length\n"; + echo "
    Server IP be at least 7 characters in length\n"; + } + else + { + echo "
    PHONE DELETION CONFIRMATION: $extension - $server_ip\n"; + echo "

    Click here to delete phone $extension - $server_ip


    \n"; + } + $ADD='31111111111'; # go to phone modification below + } + + +###################### +# ADD=52111111111 confirmation before deletion of phone alias record +###################### + +if ($ADD==52111111111) + { + echo ""; + + if ( (strlen($alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
    PHONE ALIAS NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Alias ID must be at least 2 characters in length\n"; + } + else + { + echo "
    PHONE ALIAS DELETION CONFIRMATION: $alias_id\n"; + echo "

    Click here to delete phone alias $alias_id


    \n"; + } + $ADD='32111111111'; # go to phone alias modification below + } + + +###################### +# ADD=53111111111 confirmation before deletion of group alias record +###################### + +if ($ADD==53111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 1) or ($LOGast_delete_phones < 1) ) + { + echo "
    GROUP ALIAS NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Group Alias ID must be at least 2 characters in length\n"; + } + else + { + echo "
    GROUP ALIAS DELETION CONFIRMATION: $group_alias_id\n"; + echo "

    Click here to delete group alias $group_alias_id


    \n"; + } + $ADD='33111111111'; # go to group alias modification below + } + + +###################### +# ADD=511111111111 confirmation before deletion of server record +###################### + +if ($ADD==511111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
    SERVER NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Server ID be at least 2 characters in length\n"; + echo "
    Server IP be at least 7 characters in length\n"; + } + else + { + echo "
    SERVER DELETION CONFIRMATION: $server_id - $server_ip\n"; + echo "

    Click here to delete phone $server_id - $server_ip


    \n"; + } + $ADD='311111111111'; # go to server modification below + } + + +###################### +# ADD=531111111111 confirmation before deletion of conf template record +###################### + +if ($ADD==531111111111) + { + echo ""; + + if (strlen($template_id) < 2) + { + echo "
    CONF TEMPLATE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Template ID be at least 2 characters in length\n"; + } + else + { + echo "
    CONF TEMPLATE DELETION CONFIRMATION: $template_id - $template_name\n"; + echo "

    Click here to delete conf template $template_id - $template_name


    \n"; + } + $ADD='331111111111'; # go to conf template modification below + } + + +###################### +# ADD=541111111111 confirmation before deletion of carrier record +###################### + +if ($ADD==541111111111) + { + echo ""; + + if (strlen($carrier_id) < 2) + { + echo "
    CARRIER NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Carrier ID be at least 2 characters in length\n"; + } + else + { + echo "
    CARRIER DELETION CONFIRMATION: $carrier_id - $carrier_name\n"; + echo "

    Click here to delete carrier $carrier_id - $carrier_name


    \n"; + } + $ADD='341111111111'; # go to carrier modification below + } + + +###################### +# ADD=551111111111 confirmation before deletion of tts record +###################### + +if ($ADD==551111111111) + { + echo ""; + + if (strlen($tts_id) < 2) + { + echo "
    TTS ENTRY NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    TTS ID be at least 2 characters in length\n"; + } + else + { + echo "
    TTS ENTRY DELETION CONFIRMATION: $tts_id - $tts_name\n"; + echo "

    Click here to delete tts entry $tts_id - $tts_name


    \n"; + } + $ADD='351111111111'; # go to tts entry modification below + } + + +###################### +# ADD=561111111111 confirmation before deletion of music on hold record +###################### + +if ($ADD==561111111111) + { + echo ""; + + if (strlen($moh_id) < 2) + { + echo "
    MUSIC ON HOLD ENTRY NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    MOH ID be at least 2 characters in length\n"; + } + else + { + echo "
    MUSIC ON HOLD ENTRY DELETION CONFIRMATION: $moh_id - $moh_name\n"; + echo "

    Click here to delete music on hold entry $moh_id - $moh_name


    \n"; + } + $ADD='361111111111'; # go to music on hold entry modification below + } + + +###################### +# ADD=571111111111 confirmation before deletion of voicemail record +###################### + +if ($ADD==571111111111) + { + echo ""; + + if (strlen($voicemail_id) < 2) + { + echo "
    VOICEMAIL BOX NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Voicemail ID be at least 2 characters in length\n"; + } + else + { + echo "
    VOICEMAIL BOX DELETION CONFIRMATION: $voicemail_id - $fullname\n"; + echo "

    Click here to delete voicemail box $voicemail_id - $fullname


    \n"; + } + $ADD='371111111111'; # go to voicemail entry modification below + } + + +###################### +# ADD=5111111111111 confirmation before deletion of conference record +###################### + +if ($ADD==5111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
    CONFERENCE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Conference must be at least 2 characters in length\n"; + echo "
    Server IP be at least 7 characters in length\n"; + } + else + { + echo "
    CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

    Click here to delete phone $conf_exten - $server_ip


    \n"; + } + $ADD='3111111111111'; # go to conference modification below + } + + +###################### +# ADD=51111111111111 confirmation before deletion of vicidial conference record +###################### + +if ($ADD==51111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($LOGast_delete_phones < 1) ) + { + echo "
    VICIDIAL CONFERENCE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Conference must be at least 2 characters in length\n"; + echo "
    Server IP be at least 7 characters in length\n"; + } + else + { + echo "
    VICIDIAL CONFERENCE DELETION CONFIRMATION: $conf_exten - $server_ip\n"; + echo "

    Click here to delete phone $conf_exten - $server_ip


    \n"; + } + $ADD='31111111111111'; # go to vicidial conference modification below + } + + + +###################################################################################################### +###################################################################################################### +####### 6 series, delete records +###################################################################################################### +###################################################################################################### + + +###################### +# ADD=6 delete user record +###################### + +if ($ADD==6) + { + echo ""; + + if ( ( strlen($user) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_users < 1) ) + { + echo "
    USER NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    User be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_users where user='$user' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where user='$user';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERS', event_type='DELETE', record_id='$user', event_code='ADMIN DELETE USER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    USER DELETION COMPLETED: $user\n"; + echo "

    \n"; + } + + $ADD='0'; # go to user list + } + +###################### +# ADD=61 delete campaign record +###################### + +if ($ADD==61) + { + echo ""; + + if ( ( strlen($campaign_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_campaigns < 1) ) + { + echo "
    CAMPAIGN NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Campaign_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_campaigns where campaign_id='$campaign_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_campaign_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_statuses where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_hotkeys where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_callbacks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_lead_recycle where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_server_stats where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_server_trunks where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_pause_codes where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaigns_list_mix where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
    REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER ($campaign_id)\n"; + $stmt="DELETE from vicidial_hopper where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    CAMPAIGN DELETION COMPLETED: $campaign_id\n"; + echo "

    \n"; + } + + $ADD='10'; # go to campaigns list + } + + +###################### +# ADD=62 Logout all agents from a campaign +###################### + +if ($ADD==62) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
    AGENTS NOT LOGGED OUT OF CAMPAIGN - Please go back and look at the data you entered\n"; + echo "
    Campaign_id be at least 2 characters in length\n"; + } + else + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
    $stmt\n";} + $vla_ct = mysql_num_rows($rslt); + $k=0; + while ($vla_ct > $k) + { + $row=mysql_fetch_row($rslt); + $VLA_user[$k] = $row[0]; + $VLA_campaign_id[$k] = $row[1]; + $VLA_update_time[$k] = $row[2]; + $k++; + } + + $k=0; + while ($vla_ct > $k) + { + if ($VLA_update_time[$k] > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user[$k]' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
    $stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n
    VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "
    $stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "
    $stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='$VLA_user[$k]';"; + if ($DB) {echo "
    $stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user[$k]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
    $stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user[$k]','LOGOUT','$VLA_campaign_id[$k]','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "
    $stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "
    $stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/$VLA_user[$k]' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "
    $stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='$VLA_user[$k]$agents',data2='$time_logged_in';"; + if ($DB) {echo "
    $stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "\n"; + + $k++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='LOGOUT', record_id='$campaign_id', event_code='ADMIN LOGOUT CAMPAIGN AGENTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    AGENT LOGOUT COMPLETED: $campaign_id\n"; + echo "

    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD='31'; # go to campaign modification below + } + + +###################### +# ADD=63 Emergency VDAC Jam Clear +###################### + +if ($ADD==63) + { + if ($LOGmodify_campaigns==1) + { + if (eregi('IN',$stage)) + {$group_id=$campaign_id;} + echo ""; + + if (strlen($campaign_id) < 2) + { + echo "
    VDAC NOT CLEARED FOR CAMPAIGN - Please go back and look at the data you entered\n"; + echo "
    Campaign_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_auto_calls where status='LIVE' and campaign_id='$campaign_id' order by call_time limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGNS', event_type='RESET', record_id='$campaign_id', event_code='ADMIN RESET CAMPAIGN JAM', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    LAST VDAC RECORD CLEARED FOR CAMPAIGN: $campaign_id\n"; + echo "

    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + # go to campaign modification below + if (eregi('IN',$stage)) + {$ADD='3111';} + else + {$ADD='31';} + } + + +###################### +# ADD=65 delete campaign lead recycle in the system +###################### + +if ($ADD==65) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
    CAMPAIGN LEAD RECYCLE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 6 characters in length\n"; + echo "
    attempt delay must be at least 120 seconds\n"; + echo "
    maximum attempts must be from 1 to 10\n"; + } + else + { + echo "
    CAMPAIGN LEAD RECYCLE DELETED: $campaign_id - $status - $attempt_delay\n"; + + $stmt="DELETE FROM vicidial_lead_recycle where campaign_id='$campaign_id' and status='$status';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_RECYCLE', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN LEAD RECYCLE', event_sql=\"$SQL_log\", event_notes='Status: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=25; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=66 delete auto alt dial status from the campaign +###################### + +if ($ADD==66) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and auto_alt_dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
    AUTO ALT DIAL STATUS NOT DELETED - this auto alt dial status is not in this campaign\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
    AUTO ALT DIAL STATUS NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 6 characters in length\n"; + } + else + { + echo "
    AUTO ALT DIAL STATUS DELETED: $campaign_id - $status\n"; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $auto_alt_dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set auto_alt_dial_statuses='$auto_alt_dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_ALTDIALS', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN ALT DIAL', event_sql=\"$SQL_log\", event_notes='Status: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=26; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=67 delete agent pause code in the system +###################### + +if ($ADD==67) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($pause_code) < 1) ) + { + echo "
    CAMPAIGN PAUSE CODE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    pause code must be between 1 and 6 characters in length\n"; + } + else + { + echo "
    CAMPAIGN PAUSE CODE DELETED: $campaign_id - $pause_code\n"; + + $stmt="DELETE FROM vicidial_pause_codes where campaign_id='$campaign_id' and pause_code='$pause_code';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_PAUSECODES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN PAUSE CODE', event_sql=\"$SQL_log\", event_notes='Status: $pause_code';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $SUB=27; + $ADD=31; # go to campaign modification form below + } + + +###################### +# ADD=68 remove campaign dial status +###################### + +if ($ADD==68) + { + if ($LOGmodify_campaigns==1) + { + echo ""; + $stmt="SELECT count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_statuses LIKE \"% $status %\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + {echo "
    CAMPAIGN DIAL STATUS NOT REMOVED - this dial status is not selected for this campaign\n";} + else + { + if ( (strlen($campaign_id) < 2) or (strlen($status) < 1) ) + { + echo "
    CAMPAIGN DIAL STATUS NOT REMOVED - Please go back and look at the data you entered\n"; + echo "
    status must be between 1 and 6 characters in length\n"; + } + else + { + echo "
    CAMPAIGN DIAL STATUS REMOVED: $campaign_id - $status\n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $dial_statuses = eregi_replace(" $status "," ",$row[0]); + $stmt="UPDATE vicidial_campaigns set dial_statuses='$dial_statuses' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CAMPAIGN_DIALSTATUSES', event_type='DELETE', record_id='$campaign_id', event_code='ADMIN DELETE CAMPAIGN DIAL STATUS', event_sql=\"$SQL_log\", event_notes='Status: $status';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + #$SUB=28; + $ADD=31; # go to campaign modification form below + } + +###################### +# ADD=611 delete list record and all leads within it +###################### + +if ($ADD==611) + { + echo ""; + + if ( ( strlen($list_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_lists < 1) ) + { + echo "
    LIST NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    List_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_lists where list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + echo "
    REMOVING LIST HOPPER LEADS FROM OLD CAMPAIGN HOPPER ($list_id)\n"; + $stmt="DELETE from vicidial_hopper where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + echo "
    REMOVING LIST LEADS FROM VICIDIAL_LIST TABLE\n"; + $stmt="DELETE from vicidial_list where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='DELETE', record_id='$list_id', event_code='ADMIN DELETE LIST', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    LIST DELETION COMPLETED: $list_id\n"; + echo "

    \n"; + } + + $ADD='100'; # go to lists list + } + +###################### +# ADD=6111 delete in-group record +###################### + +if ($ADD==6111) + { + echo ""; + + if ( (strlen($group_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_ingroups < 1) ) + { + echo "
    IN-GROUP NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Group_id be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_inbound_groups where group_id='$group_id' and group_id NOT IN('AGENTDIRECT') limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="DELETE from vicidial_inbound_group_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_live_inbound_agents where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_campaign_stats where campaign_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='INGROUPS', event_type='DELETE', record_id='$group_id', event_code='ADMIN DELETE INGROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    IN-GROUP DELETION COMPLETED: $group_id\n"; + echo "

    \n"; + } + + $ADD='1000'; # go to in-group list + } + + +###################### +# ADD=6311 delete did record +###################### + +if ($ADD==6311) + { + echo ""; + + if ( (strlen($did_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
    DID NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    did_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_inbound_dids where did_id='$did_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='DIDS', event_type='DELETE', record_id='$did_id', event_code='ADMIN DELETE DID', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    DID DELETION COMPLETED: $did_id\n"; + echo "

    \n"; + } + + $ADD='1300'; # go to did list + } + +###################### +# ADD=6511 delete call menu record +###################### + +if ($ADD==6511) + { + echo ""; + + if ( (strlen($menu_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_dids < 1) ) + { + echo "
    CALL MENU NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    menu_id be at least 1 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_menu where menu_id='$menu_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_call_menu_options where menu_id='$menu_id' limit 17;"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLMENUS', event_type='DELETE', record_id='$menu_id', event_code='ADMIN DELETE CALL MENU', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    CALL MENU DELETION COMPLETED: $menu_id\n"; + echo "

    \n"; + } + + $ADD='1500'; # go to call menu list + } + +###################### +# ADD=61111 delete remote agent record +###################### + +if ($ADD==61111) + { + echo ""; + + if ( (strlen($remote_agent_id) < 1) or ($CoNfIrM != 'YES') or ($LOGdelete_remote_agents < 1) ) + { + echo "
    REMOTE AGENT NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Remote_agent_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_remote_agents where remote_agent_id='$remote_agent_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='REMOTEAGENTS', event_type='DELETE', record_id='$remote_agent_id', event_code='ADMIN DELETE REMOTE AGENT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    REMOTE AGENT DELETION COMPLETED: $remote_agent_id\n"; + echo "

    \n"; + } + + $ADD='10000'; # go to remote agents list + } + +###################### +# ADD=611111 delete user group record +###################### + +if ($ADD==611111) + { + echo ""; + + if ( (strlen($user_group) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_user_groups < 1) ) + { + echo "
    USER GROUP NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    User_group be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_user_groups where user_group='$user_group' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='DELETE', record_id='$user_group', event_code='ADMIN DELETE USER GROUP', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    USER GROUP DELETION COMPLETED: $user_group\n"; + echo "

    \n"; + } + + $ADD='100000'; # go to user group list + } + +###################### +# ADD=6111111 delete script record +###################### + +if ($ADD==6111111) + { + echo ""; + + if ( (strlen($script_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_scripts < 1) ) + { + echo "
    SCRIPT NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Script_id be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_scripts where script_id='$script_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SCRIPTS', event_type='DELETE', record_id='$script_id', event_code='ADMIN DELETE SCRIPT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    SCRIPT DELETION COMPLETED: $script_id\n"; + echo "

    \n"; + } + + $ADD='1000000'; # go to script list + } + + +###################### +# ADD=61111111 delete filter record +###################### + +if ($ADD==61111111) + { + echo ""; + + if ( (strlen($lead_filter_id) < 2) or ($CoNfIrM != 'YES') or ($LOGdelete_filters < 1) ) + { + echo "
    FILTER NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Filter ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_lead_filters where lead_filter_id='$lead_filter_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='FILTERS', event_type='DELETE', record_id='$lead_filter_id', event_code='ADMIN DELETE FILTERS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    FILTER DELETION COMPLETED: $lead_filter_id\n"; + echo "

    \n"; + } + + $ADD='10000000'; # go to filter list + } + + +###################### +# ADD=611111111 delete call times record +###################### + +if ($ADD==611111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
    CALL TIME NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Call Time ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_call_times where call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    CALL TIME DELETION COMPLETED: $call_time_id\n"; + echo "

    \n"; + } + + $ADD='100000000'; # go to call times list + } + + +###################### +# ADD=6111111111 delete state call times record +###################### + +if ($ADD==6111111111) + { + echo ""; + + if ( (strlen($call_time_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
    STATE CALL TIME NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Call Time ID must be at least 2 characters in length\n"; + } + else + { + $stmtA="DELETE from vicidial_state_call_times where state_call_time_id='$call_time_id' limit 1;"; + $rslt=mysql_query($stmtA, $link); + + $stmt="SELECT call_time_id,ct_state_call_times from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\" order by call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_ids[$o] = "$rowx[0]"; + $sct_states[$o] = "$rowx[1]"; + $o++; + } + $o=0; + while ($sct_to_print > $o) + { + $sct_states[$o] = eregi_replace("\|$call_time_id\|",'|',$sct_states[$o]); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$sct_states[$o]' where call_time_id='$sct_ids[$o]';"; + $rslt=mysql_query($stmt, $link); + echo "$stmt\n"; + echo "State Rule Removed: $sct_ids[$o]
    \n"; + $o++; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CALLTIMES', event_type='DELETE', record_id='$call_time_id', event_code='ADMIN DELETE STATE CALL TIME', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    STATE CALL TIME DELETION COMPLETED: $call_time_id\n"; + echo "

    \n"; + } + + $ADD='1000000000'; # go to call times list + } + + +###################### +# ADD=631111111 delete shift record +###################### + +if ($ADD==631111111) + { + echo ""; + + if ( (strlen($shift_id) < 2) or ($LOGdelete_call_times < 1) ) + { + echo "
    SHIFT NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Shift ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_shifts where shift_id='$shift_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SHIFTS', event_type='DELETE', record_id='$shift_id', event_code='ADMIN DELETE SHIFT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    SHIFT DELETION COMPLETED: $shift_id\n"; + echo "

    \n"; + } + + $ADD='130000000'; # go to shifts list + } + + +###################### +# ADD=61111111111 delete phone record +###################### + +if ($ADD==61111111111) + { + echo ""; + + if ( (strlen($extension) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
    PHONE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Extension be at least 2 characters in length\n"; + echo "
    Server IP be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from phones where extension='$extension' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$server_ip';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONES', event_type='DELETE', record_id='$extension', event_code='ADMIN DELETE PHONE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    PHONE DELETION COMPLETED: $extension - $server_ip\n"; + echo "

    \n"; + } + $ADD='10000000000'; # go to phone list + } + + +###################### +# ADD=62111111111 delete phone alias record +###################### + +if ($ADD==62111111111) + { + echo ""; + + if ( (strlen($alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
    PHONE ALIAS NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Alias ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from phones_alias where alias_id='$alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='PHONEALIASES', event_type='DELETE', record_id='$alias_id', event_code='ADMIN DELETE PHONE ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    PHONE ALIAS DELETION COMPLETED: $alias_id\n"; + echo "

    \n"; + } + $ADD='12000000000'; # go to phone alias list + } + + +###################### +# ADD=63111111111 delete group alias record +###################### + +if ($ADD==63111111111) + { + echo ""; + + if ( (strlen($group_alias_id) < 2) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
    GROUP ALIAS NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Group Alias ID must be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from groups_alias where group_alias_id='$group_alias_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='GROUPALIASES', event_type='DELETE', record_id='$group_alias_id', event_code='ADMIN DELETE GROUP ALIAS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    GROUP ALIAS DELETION COMPLETED: $group_alias_id\n"; + echo "

    \n"; + } + $ADD='13000000000'; # go to group alias list + } + + +###################### +# ADD=611111111111 delete server record +###################### + +if ($ADD==611111111111) + { + echo ""; + + if ( (strlen($server_id) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
    SERVER NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Server ID be at least 2 characters in length\n"; + echo "
    Server IP be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from servers where server_id='$server_id' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERS', event_type='DELETE', record_id='$server_id', event_code='ADMIN DELETE SERVER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    SERVER DELETION COMPLETED: $server_id - $server_ip\n"; + echo "

    \n"; + } + $ADD='100000000000'; # go to server list + } + + +###################### +# ADD=621111111111 delete vicidial server trunk record in the system +###################### + +if ($ADD==621111111111) + { + if ($LOGmodify_servers==1) + { + echo ""; + + if ( (strlen($campaign_id) < 2) or (strlen($server_ip) < 7) ) + { + echo "
    VICIDIAL SERVER TRUNK RECORD NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    campaign must be between 3 and 8 characters in length\n"; + echo "
    server_ip delay must be at least 7 characters\n"; + } + else + { + echo "
    VICIDIAL SERVER TRUNK RECORD DELETED: $campaign_id - $server_ip\n"; + + $stmt="DELETE FROM vicidial_server_trunks where campaign_id='$campaign_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='SERVERTRUNKS', event_type='DELETE', record_id='$server_ip', event_code='ADMIN DELETE SERVER TRUNK', event_sql=\"$SQL_log\", event_notes='Campaign: $campaign_id';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + $ADD=311111111111; # go to server modification form below + } + + +###################### +# ADD=631111111111 delete conf template record +###################### + +if ($ADD==631111111111) + { + echo ""; + + if ( (strlen($template_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
    CONF TEMPLATE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Template ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE phones SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE vicidial_server_carriers SET template_id='' where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y';"; + $rslt=mysql_query($stmt, $link); + + $stmt="DELETE from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFTEMPLATES', event_type='DELETE', record_id='$template_id', event_code='ADMIN DELETE CONF TEMPLATE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    CONF TEMPLATE DELETION COMPLETED: $server_id - $server_ip\n"; + echo "

    \n"; + } + $ADD='130000000000'; # go to conf template list + } + + +###################### +# ADD=641111111111 delete carrier record +###################### + +if ($ADD==641111111111) + { + echo ""; + + if ( (strlen($carrier_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
    CARRIER NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Carrier ID be at least 2 characters in length\n"; + } + else + { + $stmt="SELECT server_ip from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $CARRIERserver_ip = $row[0]; + + $stmt="DELETE from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$CARRIERserver_ip';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CARRIERS', event_type='DELETE', record_id='$carrier_id', event_code='ADMIN DELETE CARRIER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    CARRIER DELETION COMPLETED: $carrier_id\n"; + echo "

    \n"; + } + $ADD='140000000000'; # go to carrier list + } + + +###################### +# ADD=651111111111 delete tts record +###################### + +if ($ADD==651111111111) + { + echo ""; + + if ( (strlen($tts_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
    TTS ENTRY NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    TTS ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TTS', event_type='DELETE', record_id='$tts_id', event_code='ADMIN DELETE TTS', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    TTS DELETION COMPLETED: $tts_id\n"; + echo "

    \n"; + } + $ADD='150000000000'; # go to tts entry list + } + + +###################### +# ADD=661111111111 delete music on hold record +###################### + +if ($ADD==661111111111) + { + echo ""; + + if ( (strlen($moh_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
    MUSIC ON HOLD ENTRY NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    MOH ID be at least 2 characters in length\n"; + } + else + { + $stmt="UPDATE vicidial_music_on_hold SET remove='Y' where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + + $stmtA="DELETE from vicidial_music_on_hold_files where moh_id='$moh_id';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='MOH', event_type='DELETE', record_id='$moh_id', event_code='ADMIN DELETE MOH', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    MUSIC ON HOLD DELETION COMPLETED: $moh_id\n"; + echo "

    \n"; + } + $ADD='160000000000'; # go to music on hold entry list + } + + +###################### +# ADD=671111111111 delete voicemail record +###################### + +if ($ADD==671111111111) + { + echo ""; + + if ( (strlen($voicemail_id) < 2) or ($CoNfIrM != 'YES') ) + { + echo "
    VOICEMAIL BOX NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Voicemail ID be at least 2 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $active_voicemail_server = $row[0]; + + $stmtA="UPDATE servers SET rebuild_conf_files='Y' where generate_vicidial_conf='Y' and active_asterisk_server='Y' and server_ip='$active_voicemail_server';"; + $rslt=mysql_query($stmtA, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='VOICEMAIL', event_type='DELETE', record_id='$voicemail_id', event_code='ADMIN DELETE VOICEMAIL', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    VOICEMAIL BOX DELETION COMPLETED: $voicemail_id\n"; + echo "

    \n"; + } + $ADD='170000000000'; # go to voicemail entry list + } + + +###################### +# ADD=6111111111111 delete conference record +###################### + +if ($ADD==6111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
    CONFERENCE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Conference be at least 2 characters in length\n"; + echo "
    Server IP be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

    \n"; + } + $ADD='1000000000000'; # go to conference list + } + + +###################### +# ADD=61111111111111 delete vicidial conference record +###################### + +if ($ADD==61111111111111) + { + echo ""; + + if ( (strlen($conf_exten) < 2) or (strlen($server_ip) < 7) or ($CoNfIrM != 'YES') or ($LOGast_delete_phones < 1) ) + { + echo "
    VICIDIAL CONFERENCE NOT DELETED - Please go back and look at the data you entered\n"; + echo "
    Conference be at least 2 characters in length\n"; + echo "
    Server IP be at least 7 characters in length\n"; + } + else + { + $stmt="DELETE from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip' limit 1;"; + $rslt=mysql_query($stmt, $link); + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$SQLdate', user='$PHP_AUTH_USER', ip_address='$ip', event_section='CONFERENCES', event_type='DELETE', record_id='$conf_exten', event_code='ADMIN DELETE CONFERENCE', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    VICIDIAL CONFERENCE DELETION COMPLETED: $conf_exten - $server_ip\n"; + echo "

    \n"; + } + $ADD='10000000000000'; # go to vicidial conference list + } + + + + + +###################################################################################################### +###################################################################################################### +####### 3 series, record modification forms +###################################################################################################### +###################################################################################################### + + + + +###################### +# ADD=3 modify user info in the system +###################### + +if ($ADD==3) + { + if ($LOGmodify_users==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts,agent_choose_territories,custom_one,custom_two,custom_three,custom_four,custom_five from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + $user = $row[1]; + $pass = $row[2]; + $full_name = $row[3]; + $user_level = $row[4]; + $user_group = $row[5]; + $phone_login = $row[6]; + $phone_pass = $row[7]; + $delete_users = $row[8]; + $delete_user_groups = $row[9]; + $delete_lists = $row[10]; + $delete_campaigns = $row[11]; + $delete_ingroups = $row[12]; + $delete_remote_agents = $row[13]; + $load_leads = $row[14]; + $campaign_detail = $row[15]; + $ast_admin_access = $row[16]; + $ast_delete_phones = $row[17]; + $delete_scripts = $row[18]; + $modify_leads = $row[19]; + $hotkeys_active = $row[20]; + $change_agent_campaign =$row[21]; + $agent_choose_ingroups =$row[22]; + $scheduled_callbacks = $row[24]; + $agentonly_callbacks = $row[25]; + $agentcall_manual = $row[26]; + $vicidial_recording = $row[27]; + $vicidial_transfers = $row[28]; + $delete_filters = $row[29]; + $alter_agent_interface_options =$row[30]; + $closer_default_blended = $row[31]; + $delete_call_times = $row[32]; + $modify_call_times = $row[33]; + $modify_users = $row[34]; + $modify_campaigns = $row[35]; + $modify_lists = $row[36]; + $modify_scripts = $row[37]; + $modify_filters = $row[38]; + $modify_ingroups = $row[39]; + $modify_usergroups = $row[40]; + $modify_remoteagents = $row[41]; + $modify_servers = $row[42]; + $view_reports = $row[43]; + $vicidial_recording_override = $row[44]; + $alter_custdata_override = $row[45]; + $qc_enabled = $row[46]; + $qc_user_level = $row[47]; + $qc_pass = $row[48]; + $qc_finish = $row[49]; + $qc_commit = $row[50]; + $add_timeclock_log = $row[51]; + $modify_timeclock_log = $row[52]; + $delete_timeclock_log = $row[53]; + $alter_custphone_override = $row[54]; + $vdc_agent_api_access = $row[55]; + $modify_inbound_dids = $row[56]; + $delete_inbound_dids = $row[57]; + $active = $row[58]; + $alert_enabled = $row[59]; + $download_lists = $row[60]; + $agent_shift_enforcement_override = $row[61]; + $manager_shift_enforcement_override = $row[62]; + $export_reports = $row[64]; + $delete_from_dnc = $row[65]; + $email = $row[66]; + $user_code = $row[67]; + $territory = $row[68]; + $allow_alerts = $row[69]; + $agent_choose_territories = $row[70]; + $user_custom_one = $row[71]; + $user_custom_two = $row[72]; + $user_custom_three = $row[73]; + $user_custom_four = $row[74]; + $user_custom_five = $row[75]; + + if ( ($user_level >= $LOGuser_level) and ($LOGuser_level < 9) ) + { + echo "
    You do not have permissions to modify this user: $user\n"; + } + else + { + echo "
    MODIFY A USERS RECORD: $user\n"; + if ($LOGuser_level > 8) + {echo "\n";} + else + { + if ($LOGalter_agent_interface == "1") + {echo "\n";} + else + {echo "\n";} + } + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSuser_territories_active > 0) + { + $stmt="SELECT vut.territory,vt.territory_description from vicidial_user_territories vut,vicidial_territories vt where user='$user' and vut.territory=vt.territory;"; + $rslt=mysql_query($stmt, $link); + $Uterrs_to_print = mysql_num_rows($rslt); + $Uterrs_list=''; + $o=0; + while ($Uterrs_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Uterrs_list .= "$rowx[0] - $rowx[1]
    \n"; + $o++; + } + echo "\n"; + } + + if ( ($LOGuser_level > 8) or ($LOGalter_agent_interface == "1") ) + { + echo "\n"; + echo "\n"; + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + if ($LOGuser_level > 8) + { + echo "\n"; + + #9BB9FB + #B9CBFD + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + echo "\n"; + echo "
    User Number: $user$NWB#vicidial_users-user$NWE
    Password: $NWB#vicidial_users-pass$NWE
    Full Name: $NWB#vicidial_users-full_name$NWE
    User Level: $NWB#vicidial_users-user_level$NWE
    User Group: $NWB#vicidial_users-user_group$NWE
    Phone Login: $NWB#vicidial_users-phone_login$NWE
    Phone Pass: $NWB#vicidial_users-phone_pass$NWE
    Active: $NWB#vicidial_users-active$NWE
    Email: $NWB#vicidial_users-optional$NWE
    User Code: $NWB#vicidial_users-optional$NWE
    Main Territory: $NWB#vicidial_users-optional$NWE
    User Territories: $Uterrs_list
    AGENT INTERFACE OPTIONS:
    Agent Choose Ingroups: $NWB#vicidial_users-agent_choose_ingroups$NWE
    Agent Choose Territories: $NWB#vicidial_users-agent_choose_territories$NWE
    Hot Keys Active: $NWB#vicidial_users-hotkeys_active$NWE
    Scheduled Callbacks: $NWB#vicidial_users-scheduled_callbacks$NWE
    Agent-Only Callbacks: $NWB#vicidial_users-agentonly_callbacks$NWE
    Agent Call Manual: $NWB#vicidial_users-agentcall_manual$NWE
    Vicidial Recording: $NWB#vicidial_users-vicidial_recording$NWE
    Vicidial Transfers: $NWB#vicidial_users-vicidial_transfers$NWE
    Closer Default Blended: $NWB#vicidial_users-closer_default_blended$NWE
    VICIDIAL Recording Override: $NWB#vicidial_users-vicidial_recording_override$NWE
    Agent Alter Customer Data Override: $NWB#vicidial_users-alter_custdata_override$NWE
    Agent Alter Customer Phone Override: $NWB#vicidial_users-alter_custphone_override$NWE
    Agent Shift Enforcement Override: $NWB#vicidial_users-agent_shift_enforcement_override$NWE
    Alert Enabled: $alert_enabled $NWB#vicidial_users-alert_enabled$NWE
    Allow Alerts: $NWB#vicidial_users-allow_alerts$NWE
    Campaign Ranks: $NWB#vicidial_users-campaign_ranks$NWE
    \n"; + echo "\n"; + echo "$RANKcampaigns_list"; + echo "
    \n"; + echo "
    Inbound Groups: $NWB#vicidial_users-closer_campaigns$NWE
    \n"; + echo "\n"; + echo "$RANKgroups_list"; + echo "
    \n"; + echo "
    Custom 1: $NWB#vicidial_users-custom_one$NWE
    Custom 2: $NWB#vicidial_users-custom_two$NWE
    Custom 3: $NWB#vicidial_users-custom_three$NWE
    Custom 4: $NWB#vicidial_users-custom_four$NWE
    Custom 5: $NWB#vicidial_users-custom_five$NWE
    QC Enabled: $NWB#vicidial_users-qc_enabled$NWE
    QC User Level: $NWB#vicidial_users-qc_user_level$NWE
    QC Pass: $NWB#vicidial_users-qc_pass$NWE
    QC Finish: $NWB#vicidial_users-qc_finish$NWE
    QC Commit: $NWB#vicidial_users-qc_commit$NWE
    ADMIN INTERFACE OPTIONS:
    View Reports: $NWB#vicidial_users-view_reports$NWE
    Alter Agent Interface Options: $NWB#vicidial_users-alter_agent_interface_options$NWE
    Modify Users: $NWB#vicidial_users-modify_sections$NWE
    Change Agent Campaign: $NWB#vicidial_users-change_agent_campaign$NWE
    Delete Users: $NWB#vicidial_users-delete_users$NWE
    Modify User Groups: $NWB#vicidial_users-modify_sections$NWE
    Delete User Groups: $NWB#vicidial_users-delete_user_groups$NWE
    Modify Lists: $NWB#vicidial_users-modify_sections$NWE
    Delete Lists: $NWB#vicidial_users-delete_lists$NWE
    Load Leads: $NWB#vicidial_users-load_leads$NWE
    Modify Leads: $NWB#vicidial_users-modify_leads$NWE
    Download Lists: $NWB#vicidial_users-modify_leads$NWE
    Export Reports: $NWB#vicidial_users-export_reports$NWE
    Delete From DNC Lists: $NWB#vicidial_users-delete_from_dnc$NWE
    Modify Campaigns: $NWB#vicidial_users-modify_sections$NWE
    Campaign Detail: $NWB#vicidial_users-campaign_detail$NWE
    Delete Campaigns: $NWB#vicidial_users-delete_campaigns$NWE
    Modify In-Groups: $NWB#vicidial_users-modify_sections$NWE
    Delete In-Groups: $NWB#vicidial_users-delete_ingroups$NWE
    Modify DIDs: $NWB#vicidial_users-modify_sections$NWE
    Delete DIDs: $NWB#vicidial_users-delete_ingroups$NWE
    Modify Remote Agents: $NWB#vicidial_users-modify_sections$NWE
    Delete Remote Agents: $NWB#vicidial_users-delete_remote_agents$NWE
    Modify Scripts: $NWB#vicidial_users-modify_sections$NWE
    Delete Scripts: $NWB#vicidial_users-delete_scripts$NWE
    Modify Filters: $NWB#vicidial_users-modify_sections$NWE
    Delete Filters: $NWB#vicidial_users-delete_filters$NWE
    AGC Admin Access: $NWB#vicidial_users-ast_admin_access$NWE
    AGC Delete Phones: $NWB#vicidial_users-ast_delete_phones$NWE
    Modify Call Times: $NWB#vicidial_users-modify_call_times$NWE
    Delete Call Times: $NWB#vicidial_users-delete_call_times$NWE
    Modify Servers: $NWB#vicidial_users-modify_sections$NWE
    Agent API Access: $NWB#vicidial_users-vdc_agent_api_access$NWE
    Add Timeclock Log Record: $NWB#vicidial_users-add_timeclock_log$NWE
    Modify Timeclock Log Record: $NWB#vicidial_users-modify_timeclock_log$NWE
    Delete Timeclock Log Record: $NWB#vicidial_users-delete_timeclock_log$NWE
    Manager Shift Enforcement Override: $NWB#vicidial_users-manager_shift_enforcement_override$NWE
    \n"; + + if ($LOGdelete_users > 0) + { + echo "

    DELETE THIS USER\n"; + } + echo "

    Click here for user time sheet\n"; + echo "

    Click here for user status\n"; + echo "

    Click here for user stats\n"; + echo "

    Click here for user multiple day status detail report\n"; + echo "

    Click here for user CallBack Holds\n"; + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this record
    \n"; + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=31 modify campaign info in the system - Detail view +###################### + +if ( ($LOGcampaign_detail < 1) and ($ADD==31) ) {$ADD=34;} # send to Basic if not allowed + +if ( ($ADD==31) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==31) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT enable_vtiger_integration,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options,agent_select_territories,campaign_calldate,crm_popup_login,crm_login_address,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_name = $row[1]; + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $web_form_address = stripslashes($row[11]); + $allow_closers = $row[12]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $campaign_rec_exten = $row[22]; + $campaign_recording = $row[23]; + $campaign_rec_filename = $row[24]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $am_message_exten = $row[27]; + $amd_send_to_vmx = $row[28]; + $xferconf_a_dtmf = $row[29]; + $xferconf_a_number = $row[30]; + $xferconf_b_dtmf = $row[31]; + $xferconf_b_number = $row[32]; + $alt_number_dialing = $row[33]; + $scheduled_callbacks = $row[34]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $drop_call_seconds = $row[36]; + $drop_action = $row[37]; + $safe_harbor_exten = $row[38]; + $display_dialable_count = $row[39]; + $wrapup_seconds = $row[40]; + $wrapup_message = $row[41]; + # $closer_campaigns = $row[42]; + $use_internal_dnc = $row[43]; + $allcalls_delay = $row[44]; + $omit_phone_code = $row[45]; + $dial_method = $row[46]; + $available_only_ratio_tally = $row[47]; + $adaptive_dropped_percentage = $row[48]; + $adaptive_maximum_level = $row[49]; + $adaptive_latest_server_time = $row[50]; + $adaptive_intensity = $row[51]; + $adaptive_dl_diff_target = $row[52]; + $concurrent_transfers = $row[53]; + $auto_alt_dial = $row[54]; + $auto_alt_dial_statuses = $row[55]; + $agent_pause_codes_active = $row[56]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $disable_alter_custdata = $row[62]; + $no_hopper_leads_logins = $row[63]; + $list_order_mix = $row[64]; + $campaign_allow_inbound = $row[65]; + $manual_dial_list_id = $row[66]; + $default_xfer_group = $row[67]; + $queue_priority = $row[69]; + $drop_inbound_group = $row[70]; + $qc_enabled = $row[71]; + $qc_statuses = $row[72]; + $qc_lists = $row[73]; + $qc_shift_id = $row[74]; + $qc_get_record_launch = $row[75]; + $qc_show_recording = $row[76]; + $qc_web_form_address = stripslashes($row[77]); + $qc_script = $row[78]; + $survey_first_audio_file = $row[79]; + $survey_dtmf_digits = $row[80]; + $survey_ni_digit = $row[81]; + $survey_opt_in_audio_file = $row[82]; + $survey_ni_audio_file = $row[83]; + $survey_method = $row[84]; + $survey_no_response_action = $row[85]; + $survey_ni_status = $row[86]; + $survey_response_digit_map = $row[87]; + $survey_xfer_exten = $row[88]; + $survey_camp_record_dir = $row[89]; + $disable_alter_custphone = $row[90]; + $display_queue_count = $row[91]; + $manual_dial_filter = $row[92]; + $agent_clipboard_copy = $row[93]; + $agent_extended_alt_dial = $row[94]; + $use_campaign_dnc = $row[95]; + $three_way_call_cid = $row[96]; + $three_way_dial_prefix = $row[97]; + $web_form_target = $row[98]; + $vtiger_search_category = $row[99]; + $vtiger_create_call_record = $row[100]; + $vtiger_create_lead_record = $row[101]; + $vtiger_screen_login = $row[102]; + $cpd_amd_action = $row[103]; + $agent_allow_group_alias = $row[104]; + $default_group_alias = $row[105]; + $vtiger_search_dead = $row[106]; + $vtiger_status_call = $row[107]; + $survey_third_digit = $row[108]; + $survey_third_audio_file = $row[109]; + $survey_third_status = $row[110]; + $survey_third_exten = $row[111]; + $survey_fourth_digit = $row[112]; + $survey_fourth_audio_file = $row[113]; + $survey_fourth_status = $row[114]; + $survey_fourth_exten = $row[115]; + $drop_lockout_time = $row[116]; + $quick_transfer_button = $row[117]; + $prepopulate_transfer_preset = $row[118]; + $drop_rate_group = $row[119]; + $view_calls_in_queue = $row[120]; + $view_calls_in_queue_launch = $row[121]; + $grab_calls_in_queue = $row[122]; + $call_requeue_button = $row[123]; + $pause_after_each_call = $row[124]; + $no_hopper_dialing = $row[125]; + $agent_dial_owner_only = $row[126]; + $agent_display_dialable_leads = $row[127]; + $web_form_address_two = $row[128]; + $waitforsilence_options = $row[129]; + $agent_select_territories = $row[130]; + $campaign_calldate = $row[131]; + $crm_popup_login = $row[132]; + $crm_login_address = $row[133]; + $timer_action = $row[134]; + $timer_action_message = $row[135]; + $timer_action_seconds = $row[136]; + $start_call_url = $row[137]; + $dispo_call_url = $row[138]; + $xferconf_c_number = $row[139]; + $xferconf_d_number = $row[140]; + $xferconf_e_number = $row[141]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + + $qc_lists = preg_replace("/^ | -$/","",$qc_lists); + $QClists = explode(" ", $qc_lists); + $QCL_to_print = (count($QClists) -0); + + ##### get status listings for dynamic pulldown + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $qc_statuses_list=''; + $survey_ni_status_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') + { + $dial_statuses_list .= "\n"; + if ($survey_ni_status == $rowx[0]) + { + $survey_ni_status_list .= "\n"; + } + else + { + $survey_ni_status_list .= "\n"; + } + } + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic transfer group pulldown list menu + $stmt="SELECT group_id,group_name from vicidial_inbound_groups $xfer_groupsSQL order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==28) {$camp_qc_color=$subcamp_color;} + else {$camp_qc_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + if ($SUB=='20A') {$camp_survey_color=$subcamp_color;} + else {$camp_survey_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo ""; + if ($SSqc_features_active > 0) + { + echo ""; + } + if ($SSoutbound_autodial_active < 1) + { + echo "\n"; + } + echo "\n"; + echo "
    $row[0]: Basic Detail StatusesHotKeysLead RecyclingAuto Alt DialList MixSurveyPause CodesQC Real-Time
    \n"; + + echo "
    \n"; + echo ""; + + echo "
    \n"; + + if ($SUB < 1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + + echo "\n"; + + + + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSuser_territories_active > 0) + { + echo "\n"; + } + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($agent_allow_group_alias == 'Y') + { + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + } + + if ($SSenable_vtiger_integration > 0) + { + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + else + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + if ($campaign_allow_inbound == 'Y') + { + echo "\n"; + } + + echo "\n"; + + if ($allow_closers == 'Y') + { + echo "\n"; + } + + echo "\n"; + echo "
    Campaign ID: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
    Campaign Name: $NWB#vicidial_campaigns-campaign_name$NWE
    Campaign Description: $NWB#vicidial_campaigns-campaign_description$NWE
    Campaign Change Date: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
    Campaign Login Date: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
    Campaign Call Date: $campaign_calldate   $NWB#vicidial_campaigns-campaign_calldate$NWE
    Active: $NWB#vicidial_campaigns-active$NWE
    Park Extension: - Filename: $NWB#vicidial_campaigns-park_ext$NWE
    Web Form: $NWB#vicidial_campaigns-web_form_address$NWE
    Web Form Two: $NWB#vicidial_campaigns-web_form_address$NWE
    Web Form Target: $NWB#vicidial_campaigns-web_form_target$NWE
    Allow Closers: $NWB#vicidial_campaigns-allow_closers$NWE
    Allow Inbound and Blended: $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
    Dial Status $o: \n"; + + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
    Add A Dial Status:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
    List Order: $NWB#vicidial_campaigns-lead_order$NWE
    List Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
    Lead Filter: $NWB#vicidial_campaigns-lead_filter_id$NWE
    Drop Lockout Time: $NWB#vicidial_campaigns-drop_lockout_time$NWE
    Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
    Force Reset of Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
    Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
    Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE       ADAPT OVERRIDE
    Available Only Tally: $NWB#vicidial_campaigns-available_only_ratio_tally$NWE
    Drop Percentage Limit: % $NWB#vicidial_campaigns-adaptive_dropped_percentage$NWE
    Maximum Adapt Dial Level: number only $NWB#vicidial_campaigns-adaptive_maximum_level$NWE
    Latest Server Time: 4 digits only $NWB#vicidial_campaigns-adaptive_latest_server_time$NWE
    Adapt Intensity Modifier: $NWB#vicidial_campaigns-adaptive_intensity$NWE
    Dial Level Difference Target: $NWB#vicidial_campaigns-adaptive_dl_diff_target$NWE
    Concurrent Transfers: $NWB#vicidial_campaigns-concurrent_transfers$NWE
    Queue Priority: $NWB#vicidial_campaigns-queue_priority$NWE
    Multiple Campaign Drop Rate Group: $NWB#vicidial_campaigns-drop_rate_group$NWE
    Auto Alt-Number Dialing: $NWB#vicidial_campaigns-auto_alt_dial$NWE
    Next Agent Call: $NWB#vicidial_campaigns-next_agent_call$NWE
    Local Call Time: $NWB#vicidial_campaigns-local_call_time$NWE
    Dial Timeout: in seconds$NWB#vicidial_campaigns-dial_timeout$NWE
    Dial Prefix: for 91NXXNXXXXXX value would be 9, for no dial prefix use X$NWB#vicidial_campaigns-dial_prefix$NWE
    Omit Phone Code: $NWB#vicidial_campaigns-omit_phone_code$NWE
    Campaign CallerID: $NWB#vicidial_campaigns-campaign_cid$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and campaign_cid_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
    Campaign VDAD exten: $NWB#vicidial_campaigns-campaign_vdad_exten$NWE
    Campaign Rec exten: $NWB#vicidial_campaigns-campaign_rec_exten$NWE
    Campaign Recording: $NWB#vicidial_campaigns-campaign_recording$NWE
    Campaign Rec Filename: $NWB#vicidial_campaigns-campaign_rec_filename$NWE
    Recording Delay: in seconds$NWB#vicidial_campaigns-allcalls_delay$NWE
    Script: $NWB#vicidial_campaigns-campaign_script$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and agent_script_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
    Get Call Launch: $NWB#vicidial_campaigns-get_call_launch$NWE
    Answering Machine Message: audio chooser $NWB#vicidial_campaigns-am_message_exten$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and am_message_exten_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
    WaitForSilence Options: $NWB#vicidial_campaigns-waitforsilence_options$NWE
    AMD Send to VM exten: $NWB#vicidial_campaigns-amd_send_to_vmx$NWE
    CPD AMD Action: $NWB#vicidial_campaigns-cpd_amd_action$NWE
    Transfer-Conf DTMF 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
    Transfer-Conf Number 1: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
    Transfer-Conf DTMF 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
    Transfer-Conf Number 2: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
    Transfer-Conf Number 3: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
    Transfer-Conf Number 4: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
    Transfer-Conf Number 5: $NWB#vicidial_campaigns-xferconf_a_dtmf$NWE
    Quick Transfer Button: $NWB#vicidial_campaigns-quick_transfer_button$NWE
    PrePopulate Transfer Preset: $NWB#vicidial_campaigns-prepopulate_transfer_preset$NWE
    Timer Action: $NWB#vicidial_campaigns-timer_action$NWE
    Timer Action Message: $NWB#vicidial_campaigns-timer_action_message$NWE
    Timer Action Seconds: $NWB#vicidial_campaigns-timer_action_seconds$NWE
    Alt Number Dialing: $NWB#vicidial_campaigns-alt_number_dialing$NWE
    Scheduled Callbacks: $NWB#vicidial_campaigns-scheduled_callbacks$NWE
    Drop Call Seconds: $NWB#vicidial_campaigns-drop_call_seconds$NWE
    Drop Action: $NWB#vicidial_campaigns-drop_action$NWE
    Safe Harbor Exten: $NWB#vicidial_campaigns-safe_harbor_exten$NWE
    Voicemail: voicemail chooser$NWB#vicidial_campaigns-voicemail_ext$NWE
    Drop Transfer Group: $NWB#vicidial_campaigns-drop_inbound_group$NWE\n"; + $stmt="SELECT count(*) from vicidial_lists where campaign_id='$campaign_id' and drop_inbound_group_override != '' and active='Y';"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + {echo " LIST OVERRIDE ACTIVE";} + echo "
    Wrap Up Seconds: $NWB#vicidial_campaigns-wrapup_seconds$NWE
    Wrap Up Message: $NWB#vicidial_campaigns-wrapup_message$NWE
    Use Internal DNC List: $NWB#vicidial_campaigns-use_internal_dnc$NWE
    Use Campaign DNC List: $NWB#vicidial_campaigns-use_campaign_dnc$NWE
    Agent Pause Codes Active: $NWB#vicidial_campaigns-agent_pause_codes_active$NWE
    Campaign Stats Refresh: $NWB#vicidial_campaigns-campaign_stats_refresh$NWE
    Disable Alter Customer Data: $NWB#vicidial_campaigns-disable_alter_custdata$NWE
    Disable Alter Customer Phone: $NWB#vicidial_campaigns-disable_alter_custphone$NWE
    Allow No-Hopper-Leads Logins: $NWB#vicidial_campaigns-no_hopper_leads_logins$NWE
    No Hopper Dialing: $NWB#vicidial_campaigns-no_hopper_dialing$NWE
    Owner Only Dialing: $NWB#vicidial_campaigns-agent_dial_owner_only$NWE
    Agent Select Territories: $NWB#vicidial_campaigns-agent_select_territories$NWE
    Agent Display Dialable Leads: $NWB#vicidial_campaigns-agent_display_dialable_leads$NWE
    Agent Display Queue Count: $NWB#vicidial_campaigns-display_queue_count$NWE
    Agent View Calls in Queue: $NWB#vicidial_campaigns-view_calls_in_queue$NWE
    View Calls in Queue Launch: $NWB#vicidial_campaigns-view_calls_in_queue_launch$NWE
    Agent Grab Calls in Queue: $NWB#vicidial_campaigns-grab_calls_in_queue$NWE
    Agent Call Re-Queue Button: $NWB#vicidial_campaigns-call_requeue_button$NWE
    Agent Pause After Each Call: $NWB#vicidial_campaigns-pause_after_each_call$NWE
    Manual Dial List ID: $NWB#vicidial_campaigns-manual_dial_list_id$NWE
    Manual Dial Filter: $NWB#vicidial_campaigns-manual_dial_filter$NWE
    Agent Screen Clipboard Copy: $NWB#vicidial_campaigns-agent_clipboard_copy$NWE
    Agent Screen Extended Alt Dial: $NWB#vicidial_campaigns-agent_extended_alt_dial$NWE
    3-Way Call Outbound CallerID: $NWB#vicidial_campaigns-three_way_call_cid$NWE
    3-Way Call Dial Prefix: $NWB#vicidial_campaigns-three_way_dial_prefix$NWE
    Group Alias Allowed: $NWB#vicidial_campaigns-agent_allow_group_alias$NWE
    Default Group Alias: $NWB#vicidial_campaigns-default_group_alias$NWE
    Vtiger Search Category: $NWB#vicidial_campaigns-vtiger_search_category$NWE
    Vtiger Search Dead Accounts: $NWB#vicidial_campaigns-vtiger_search_dead$NWE
    Vtiger Create Call Record: $NWB#vicidial_campaigns-vtiger_create_call_record$NWE
    Vtiger Create Lead Record: $NWB#vicidial_campaigns-vtiger_create_lead_record$NWE
    Vtiger Status Call: $NWB#vicidial_campaigns-vtiger_status_call$NWE
    Vtiger Screen Login: $NWB#vicidial_campaigns-vtiger_screen_login$NWE
    CRM Popup Login: $NWB#vicidial_campaigns-crm_popup_login$NWE
    CRM Popup Address: $NWB#vicidial_campaigns-crm_login_address$NWE
    Start Call URL: $NWB#vicidial_campaigns-start_call_url$NWE
    Dispo Call URL: $NWB#vicidial_campaigns-dispo_call_url$NWE
    Allowed Inbound Groups:
    "; + echo " $NWB#vicidial_campaigns-closer_campaigns$NWE
    \n"; + echo "$groups_list"; + echo "
    Default Transfer Group: $NWB#vicidial_campaigns-default_xfer_group$NWE
    Allowed Transfer Groups:
    "; + echo " $NWB#vicidial_campaigns-xfer_groups$NWE
    \n"; + echo "$XFERgroups_list"; + echo "
    \n"; + + echo "
    \n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
    LISTS WITHIN THIS CAMPAIGN:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
    \n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
    LIST IDLIST NAMEDESCRIPTIONLEADS COUNTACTIVELAST CALL DATEMODIFY
    $row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFY

    \n"; + + echo "
    \n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "This campaign has $active_lists active lists and $inactive_lists inactive lists

    \n"; + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - HIDE

    "; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - SHOW

    "; + } + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "This campaign has $hopper_leads leads in the dial hopper

    \n"; + echo "Click here to see what leads are in the hopper right now

    \n"; + echo "Click here to see a VDAD report for this campaign

    \n"; + } + echo "Click here to see all CallBack Holds in this campaign

    \n"; + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this campaign
    \n"; + } + echo "
    \n"; + } + + + ##### CAMPAIGN CUSTOM STATUSES ##### + if ($SUB==22) + { + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + echo "
    \n"; + echo "
    CUSTOM STATUSES WITHIN THIS CAMPAIGN:   $NWB#vicidial_campaign_statuses$NWE
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[5]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
    STATUSDESCRIPTIONSELECTABLEHUMAN ANSWERCATEGORYMODIFY-DELETE
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
    \n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + echo "DELETE\n"; + echo "
    \n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
    \n"; + + echo "
    ADD NEW CUSTOM CAMPAIGN STATUS
    \n"; + echo "\n"; + echo "\n"; + echo "Status:   \n"; + echo "Description:   \n"; + echo "Selectable:  
    \n"; + echo "Human Answer:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
    \n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Category: \n"; + echo "  
    \n"; + echo "
    \n"; + + echo "

    \n"; + } + + ##### CAMPAIGN HOTKEYS ##### + if ($SUB==23) + { + echo "
    CUSTOM HOT KEYS WITHIN THIS CAMPAIGN:   $NWB#vicidial_campaign_hotkeys$NWE
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT status,hotkey,status_name,selectable,campaign_id from vicidial_campaign_hotkeys where campaign_id='$campaign_id' order by hotkey"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + + } + + echo "
    HOT KEYSTATUSDESCRIPTIONDELETE
    $rowx[1]$rowx[0]$rowx[2]DELETE
    \n"; + + echo "
    ADD NEW CUSTOM CAMPAIGN HOT KEY
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Hotkey:   \n"; + echo "Status:   \n"; + echo "
    \n"; + echo "

    \n"; + } + + ##### CAMPAIGN LEAD RECYCLING ##### + if ($SUB==25) + { + ### display counts on leads that have hit the limit in this campaign + $stmt="SELECT list_id,active,list_name from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $camp_lists=''; + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + if (ereg("Y", $rowx[1])) {$camp_lists .= "'$rowx[0]',";} + $o++; + } + $camp_lists = eregi_replace(".$","",$camp_lists); + + $stmt="SELECT recycle_id,campaign_id,status,attempt_delay,attempt_maximum,active from vicidial_lead_recycle where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $RECYCLE_status[$o] = $rowx[2]; + $RECYCLE_delay[$o] = $rowx[3]; + $RECYCLE_attempt[$o] = $rowx[4]; + $RECYCLE_active[$o] = $rowx[5]; + $RECYCLE_count[$o] = "'Y','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'"; + if ($RECYCLE_attempt[$o]==1) {$RECYCLE_count[$o] = "'Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==2) {$RECYCLE_count[$o] = "'Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==3) {$RECYCLE_count[$o] = "'Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==4) {$RECYCLE_count[$o] = "'Y4','Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==5) {$RECYCLE_count[$o] = "'Y5','Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==6) {$RECYCLE_count[$o] = "'Y6','Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==7) {$RECYCLE_count[$o] = "'Y7','Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==8) {$RECYCLE_count[$o] = "'Y8','Y9','Y10'";} + if ($RECYCLE_attempt[$o]==9) {$RECYCLE_count[$o] = "'Y9','Y10'";} + if ($RECYCLE_attempt[$o]>9) {$RECYCLE_count[$o] = "'Y10'";} + $o++; + } + $o=0; + + echo "

    LEAD RECYCLING WITHIN THIS CAMPAIGN:   $NWB#vicidial_lead_recycle$NWE
    \n"; + echo "\n"; + echo "\n"; + + while ($recycle_to_print > $o) + { + $recycle_limit=0; + if (strlen($camp_lists) > 2) + { + $stmt="SELECT count(*) from vicidial_list where status='$RECYCLE_status[$o]' and list_id IN($camp_lists) and called_since_last_reset IN($RECYCLE_count[$o]);"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $counts_to_print = mysql_num_rows($rslt); + if ($counts_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + $recycle_limit = $rowx[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $o++; + } + + echo "
    STATUSATTEMPT DELAYATTEMPT MAXIMUMLEADS AT LIMITACTIVE DELETE
      $RECYCLE_status[$o]
    \n"; + echo "\n"; + echo "\n"; + echo "
    $recycle_limit   DELETE
    \n"; + + echo "
    ADD NEW CAMPAIGN LEAD RECYCLE
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Status:   \n"; + echo "Attempt Delay: \n"; + echo "Attempt Maximum: \n"; + echo "
    \n"; + + echo "

    \n"; + echo "
    \n"; + echo "* Lead counts taken from active lists in the campaign only.\n"; + } + + ##### CAMPAIGN AUTO-ALT-NUMBER DIALING ##### + if ($SUB==26) + { + echo "

    AUTO ALT NUMBER DIALING FOR THIS CAMPAIGN:   $NWB#vicidial_auto_alt_dial_statuses$NWE
    \n"; + echo "\n"; + echo "\n"; + + $auto_alt_dial_statuses = preg_replace("/ -$/","",$auto_alt_dial_statuses); + $AADstatuses = explode(" ", $auto_alt_dial_statuses); + $AADs_to_print = (count($AADstatuses) -1); + + $o=0; + while ($AADs_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + $o++; + + echo "\n"; + echo "\n"; + } + + echo "
    STATUSESDELETE
    $AADstatuses[$o]DELETE
    \n"; + + echo "
    ADD NEW AUTO ALT NUMBER DIALING STATUS
    \n"; + echo "\n"; + echo "\n"; + echo "Status:   \n"; + echo "
    \n"; + + echo "

    \n"; + } + + ##### CAMPAIGN PAUSE CODES ##### + if ($SUB==27) + { + echo "

    AGENT PAUSE CODES FOR THIS CAMPAIGN:   $NWB#vicidial_pause_codes$NWE
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT pause_code,pause_code_name,billable,campaign_id from vicidial_pause_codes where campaign_id='$campaign_id' order by pause_code"; + $rslt=mysql_query($stmt, $link); + $pause_codes_to_print = mysql_num_rows($rslt); + $o=0; + while ($pause_codes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
    PAUSE CODESBILLABLEMODIFYDELETE
    $rowx[0]\n"; + echo "\n"; + echo "\n"; + echo "  \n"; + echo "
    DELETE
    \n"; + + echo "
    ADD NEW AGENT PAUSE CODE
    \n"; + echo "\n"; + echo "\n"; + echo "Pause Code: \n"; + echo "Pause Code Name: \n"; + echo "   Billable: \n"; + echo "
    \n"; + + echo "

    \n"; + } + + ##### CAMPAIGN QC SETTINGS ##### + if ( ($SUB==28) and ($SSqc_features_active > 0) ) + { + $stmt="SELECT list_id,list_name,active from vicidial_lists where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $qc_lists_list=''; + + $p=0; + while ($lists_to_print > $p) + { + $rowx=mysql_fetch_row($rslt); + $qc_lists_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "

    QC SETTINGS FOR THIS CAMPAIGN:
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; +# echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "QC Enabled: $NWB#vicidial_campaigns-qc_enabled$NWE
    QC Statuses:
    $NWB#vicidial_campaigns-qc_statuses$NWE
    $qc_statuses_list
    QC Lists:
    $NWB#vicidial_campaigns-qc_lists$NWE
    $qc_lists_list
    QC WebForm: $NWB#vicidial_campaigns-qc_web_form_address$NWE
    QC Script: $NWB#vicidial_campaigns-qc_script$NWE
    QC Shift: $NWB#vicidial_campaigns-qc_shift_id$NWE
    QC Get Record Launch: $NWB#vicidial_campaigns-qc_get_record_launch$NWE
    QC Show Recording: $NWB#vicidial_campaigns-qc_show_recording$NWE
    \n"; + echo "

    \n"; + } + + ##### CAMPAIGN SURVEY SETTINGS ##### + if ($SUB=='20A') + { + + echo "

    SURVEY SETTINGS FOR THIS CAMPAIGN:
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    \n"; + echo "\n"; + + echo "
    Survey First Audio File: audio chooser $NWB#vicidial_campaigns-survey_first_audio_file$NWE
    Survey DTMF Digits: $NWB#vicidial_campaigns-survey_dtmf_digits$NWE
    Survey Not Interested Digit: $NWB#vicidial_campaigns-survey_ni_digit$NWE
    Survey Opt-in Audio File: audio chooser $NWB#vicidial_campaigns-survey_opt_in_audio_file$NWE
    Survey Not Interested Audio File: audio chooser $NWB#vicidial_campaigns-survey_ni_audio_file$NWE
    Survey Method: $NWB#vicidial_campaigns-survey_method$NWE
    Survey No-Response Action: $NWB#vicidial_campaigns-survey_no_response_action$NWE
    Survey Not Interested Status: $NWB#vicidial_campaigns-survey_ni_status$NWE
    Survey Third Digit: $NWB#vicidial_campaigns-survey_third_digit$NWE
    Survey Third Audio File: audio chooser $NWB#vicidial_campaigns-survey_third_audio_file$NWE
    Survey Third Status: $NWB#vicidial_campaigns-survey_third_status$NWE
    Survey Third Extension: $NWB#vicidial_campaigns-survey_third_exten$NWE
    Survey Fourth Digit: $NWB#vicidial_campaigns-survey_fourth_digit$NWE
    Survey Fourth Audio File: audio chooser $NWB#vicidial_campaigns-survey_fourth_audio_file$NWE
    Survey Fourth Status: $NWB#vicidial_campaigns-survey_fourth_status$NWE
    Survey Fourth Extension: $NWB#vicidial_campaigns-survey_fourth_exten$NWE
    Survey Response Digit Map: $NWB#vicidial_campaigns-survey_response_digit_map$NWE
    Survey Survey Xfer Extension: $NWB#vicidial_campaigns-survey_xfer_exten$NWE
    Survey Campaign Recording Directory: $NWB#vicidial_campaigns-survey_camp_record_dir$NWE
    Voicemail: voicemail chooser $NWB#vicidial_campaigns-voicemail_ext$NWE
    \n"; + echo "

    \n"; + } + + + if ($SUB < 1) + { + echo "

    \n"; + echo "LOG ALL AGENTS OUT OF THIS CAMPAIGN

    \n"; + echo "EMERGENCY VDAC CLEAR FOR THIS CAMPAIGN

    \n"; + + if ($LOGdelete_campaigns > 0) + { + echo "

    DELETE THIS CAMPAIGN\n"; + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } +} + + +###################### +# ADD=34 modify campaign info in the system - Basic View +###################### + +if ( ($ADD==34) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ($ADD==34) + { + if ($LOGmodify_campaigns==1) + { + if ($stage=='show_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='Y' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + if ($stage=='hide_dialable') + { + $stmt="UPDATE vicidial_campaigns set display_dialable_count='N' where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + } + + $stmt="SELECT campaign_id,campaign_name,active,dial_status_a,dial_status_b,dial_status_c,dial_status_d,dial_status_e,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,dial_timeout,dial_prefix,campaign_cid,campaign_vdad_exten,campaign_rec_exten,campaign_recording,campaign_rec_filename,campaign_script,get_call_launch,am_message_exten,amd_send_to_vmx,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,alt_number_dialing,scheduled_callbacks,lead_filter_id,drop_call_seconds,drop_action,safe_harbor_exten,display_dialable_count,wrapup_seconds,wrapup_message,closer_campaigns,use_internal_dnc,allcalls_delay,omit_phone_code,dial_method,available_only_ratio_tally,adaptive_dropped_percentage,adaptive_maximum_level,adaptive_latest_server_time,adaptive_intensity,adaptive_dl_diff_target,concurrent_transfers,auto_alt_dial,auto_alt_dial_statuses,agent_pause_codes_active,campaign_description,campaign_changedate,campaign_stats_refresh,campaign_logindate,dial_statuses,disable_alter_custdata,no_hopper_leads_logins,list_order_mix,campaign_allow_inbound,manual_dial_list_id,default_xfer_group,xfer_groups,queue_priority,drop_inbound_group,qc_enabled,qc_statuses,qc_lists,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,survey_first_audio_file,survey_dtmf_digits,survey_ni_digit,survey_opt_in_audio_file,survey_ni_audio_file,survey_method,survey_no_response_action,survey_ni_status,survey_response_digit_map,survey_xfer_exten,survey_camp_record_dir,disable_alter_custphone,display_queue_count,manual_dial_filter,agent_clipboard_copy,agent_extended_alt_dial,use_campaign_dnc,three_way_call_cid,three_way_dial_prefix,web_form_target,vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_screen_login,cpd_amd_action,agent_allow_group_alias,default_group_alias,vtiger_search_dead,vtiger_status_call,survey_third_digit,survey_third_audio_file,survey_third_status,survey_third_exten,survey_fourth_digit,survey_fourth_audio_file,survey_fourth_status,survey_fourth_exten,drop_lockout_time,quick_transfer_button,prepopulate_transfer_preset,drop_rate_group,view_calls_in_queue,view_calls_in_queue_launch,grab_calls_in_queue,call_requeue_button,pause_after_each_call,no_hopper_dialing,agent_dial_owner_only,agent_display_dialable_leads,web_form_address_two,waitforsilence_options from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dial_status_a = $row[3]; + $dial_status_b = $row[4]; + $dial_status_c = $row[5]; + $dial_status_d = $row[6]; + $dial_status_e = $row[7]; + $lead_order = $row[8]; + $hopper_level = $row[13]; + $auto_dial_level = $row[14]; + $next_agent_call = $row[15]; + $local_call_time = $row[16]; + $voicemail_ext = $row[17]; + $dial_timeout = $row[18]; + $dial_prefix = $row[19]; + $campaign_cid = $row[20]; + $campaign_vdad_exten = $row[21]; + $script_id = $row[25]; + $get_call_launch = $row[26]; + $lead_filter_id = $row[35]; + if ($lead_filter_id=='') {$lead_filter_id='NONE';} + $display_dialable_count = $row[39]; + $dial_method = $row[46]; + $adaptive_intensity = $row[51]; + $campaign_description = $row[57]; + $campaign_changedate = $row[58]; + $campaign_stats_refresh = $row[59]; + $campaign_logindate = $row[60]; + $dial_statuses = $row[61]; + $list_order_mix = $row[64]; + $default_xfer_group = $row[67]; + $campaign_allow_inbound = $row[65]; + $default_xfer_group = $row[67]; + $drop_lockout_time = $row[116]; + + if (ereg("DISABLED",$list_order_mix)) + {$DEFlistDISABLE = ''; $DEFstatusDISABLED=0;} + else + {$DEFlistDISABLE = 'disabled'; $DEFstatusDISABLED=1;} + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $statuses_list=''; + $dial_statuses_list=''; + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list .= "\n"; + if ($rowx[0] != 'CBHOLD') {$dial_statuses_list .= "\n";} + $statname_list["$rowx[0]"] = "$rowx[1]"; + $LRstatuses_list .= "\n"; + if (eregi("Y",$rowx[2])) + {$HKstatuses_list .= "\n";} + $o++; + } + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) -1); + + $stmt="SELECT count(*) from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE'"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] < 1) + { + $mixes_list="\n"; + $mixname_list["DISABLED"] = "DISABLED"; + } + else + { + ##### get list_mix listings for dynamic pulldown + $stmt="SELECT vcl_id,vcl_name from vicidial_campaigns_list_mix where campaign_id='$campaign_id' and status='ACTIVE' limit 1"; + $rslt=mysql_query($stmt, $link); + $mixes_to_print = mysql_num_rows($rslt); + $mixes_list="\n"; + + $o=0; + while ($mixes_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixes_list .= "\n"; + $mixname_list["ACTIVE"] = "$rowx[0] - $rowx[1]"; + $o++; + } + } + + if ($SUB<1) {$camp_detail_color=$subcamp_color;} + else {$camp_detail_color=$campaigns_color;} + if ($SUB==22) {$camp_statuses_color=$subcamp_color;} + else {$camp_statuses_color=$campaigns_color;} + if ($SUB==23) {$camp_hotkeys_color=$subcamp_color;} + else {$camp_hotkeys_color=$campaigns_color;} + if ($SUB==25) {$camp_recycle_color=$subcamp_color;} + else {$camp_recycle_color=$campaigns_color;} + if ($SUB==26) {$camp_autoalt_color=$subcamp_color;} + else {$camp_autoalt_color=$campaigns_color;} + if ($SUB==27) {$camp_pause_color=$subcamp_color;} + else {$camp_pause_color=$campaigns_color;} + if ($SUB==29) {$camp_listmix_color=$subcamp_color;} + else {$camp_listmix_color=$campaigns_color;} + echo "\n"; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + } + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active < 1) + { + echo ""; + } + echo "
    $row[0]: Basic View Detail View List Mix Real-Time Screen  
    \n"; + + if ($SUB < 1) + { + echo "
    \n"; + echo ""; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSoutbound_autodial_active > 0) + { + echo "\n"; + + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dstatus = $Dstatuses[$o]; + + echo "\n"; + } + else + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE\n"; + } + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    Campaign ID: $row[0]$NWB#vicidial_campaigns-campaign_id$NWE
    Campaign Name: $NWB#vicidial_campaigns-campaign_name$NWE
    Campaign Description: $row[57]$NWB#vicidial_campaigns-campaign_description$NWE
    Campaign Change Date: $campaign_changedate   $NWB#vicidial_campaigns-campaign_changedate$NWE
    Campaign Login Date: $campaign_logindate   $NWB#vicidial_campaigns-campaign_logindate$NWE
    Active: $NWB#vicidial_campaigns-active$NWE
    Park Extension: $row[9] - $row[10]$NWB#vicidial_campaigns-park_ext$NWE
    Web Form: $row[11]$NWB#vicidial_campaigns-web_form_address$NWE
    Allow Closers: $row[12] $NWB#vicidial_campaigns-allow_closers$NWE
    Default Transfer Group: $default_xfer_group $NWB#vicidial_campaigns-default_xfer_group$NWE
    Allow Inbound and Blended: $campaign_allow_inbound $NWB#vicidial_campaigns-campaign_allow_inbound$NWE
    Dial Status $o: \n"; + if ($DEFstatusDISABLED > 0) + { + echo "$Dstatus - $statname_list[$Dstatus]         \n"; + echo "REMOVE
    Add A Dial Status:   \n"; + echo "     $NWB#vicidial_campaigns-dial_status$NWE
    List Order: $NWB#vicidial_campaigns-lead_order$NWE
    List Mix: $NWB#vicidial_campaigns-list_order_mix$NWE
    Lead Filter: $NWB#vicidial_campaigns-lead_filter_id$NWE
    Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE
    Force Reset of Hopper: $NWB#vicidial_campaigns-force_reset_hopper$NWE
    Dial Method: $NWB#vicidial_campaigns-dial_method$NWE
    Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE
    Adapt Intensity Modifier: $NWB#vicidial_campaigns-adaptive_intensity$NWE
    Script: $script_id
    Get Call Launch: $get_call_launch
    \n"; + + echo "
    \n"; + + if ($SSoutbound_autodial_active > 0) + { + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    LISTS WITHIN THIS CAMPAIGN:   $NWB#vicidial_campaign_lists$NWE\n"; + + echo "
    \n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id and campaign_id='$campaign_id' group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o++; + } + + echo "\n"; + echo "
    LIST IDLIST NAMEDESCRIPTIONLEADS COUNTACTIVELAST CALL DATEMODIFY
    $row[0] $row[1] $row[2] $row[3] $row[4]"; + + if (ereg('Y',$row[4])) + { + $active_lists++; + $camp_lists .= "'$row[0]',"; + echo ""; + } + else + { + $inactive_lists++; + echo ""; + echo " $row[5]MODIFY

    \n"; + echo "
    \n"; + + $filterSQL = $filtersql_list[$lead_filter_id]; + $filterSQL = preg_replace("/\\\\/","",$filterSQL); + $filterSQL = eregi_replace("^and|and$|^or|or$","",$filterSQL); + if (strlen($filterSQL)>4) + {$fSQL = "and $filterSQL";} + else + {$fSQL = '';} + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "This campaign has $active_lists active lists and $inactive_lists inactive lists

    \n"; + + + if ($display_dialable_count == 'Y') + { + ### call function to calculate and print dialable leads + dialable_leads($DB,$link,$local_call_time,$dial_statuses,$camp_lists,$drop_lockout_time,$fSQL); + echo " - HIDE

    "; + } + else + { + echo "Popup Dialable Leads Count"; + echo " - SHOW

    "; + } + + + + $stmt="SELECT count(*) FROM vicidial_hopper where campaign_id='$campaign_id' and status IN('READY')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $hopper_leads = "$rowx[0]"; + + echo "This campaign has $hopper_leads leads in the dial hopper

    \n"; + echo "Click here to see what leads are in the hopper right now

    \n"; + echo "Click here to see a VDAD report for this campaign

    \n"; + } + echo "Click here to see all CallBack Holds in this campaign

    \n"; + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this campaign
    \n"; + } + + echo "
    \n"; + + echo "
    \n"; + + ### list of agent rank or skill-level for this campaign + echo "
    \n"; + echo "
    AGENT RANKS FOR THIS CAMPAIGN:
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,vca.campaign_rank,vca.calls_today,full_name from vicidial_campaign_agents vca, vicidial_users vu where campaign_id='$campaign_id' and active='Y' and vu.user=vca.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    USER     RANK     CALLS TODAY
    $rowx[0] - $rowx[3]$rowx[1]$rowx[2]

    \n"; + + + echo "LOG ALL AGENTS OUT OF THIS CAMPAIGN

    \n"; + + + if ($LOGdelete_campaigns > 0) + { + echo "

    DELETE THIS CAMPAIGN\n"; + } + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } +} + + +###################### +# ADD=31 or 34 and SUB=29 for list mixes +###################### +if ( ( ($ADD==34) or ($ADD==31) ) and ( (!eregi("$campaign_id",$LOGallowed_campaigns)) and (!eregi("ALL-CAMPAIGNS",$LOGallowed_campaigns)) ) ) + {$ADD=30;} # send to not allowed screen if not in vicidial_user_groups allowed_campaigns list + +if ( ($ADD==34) or ($ADD==31) ) +{ + if ($LOGmodify_campaigns==1) + { + ##### CAMPAIGN LIST MIX SETTINGS ##### + if ($SUB==29) + { + ##### get list_id listings for dynamic pulldown + $stmt="SELECT list_id,list_name from vicidial_lists where campaign_id='$campaign_id' order by list_id"; + $rslt=mysql_query($stmt, $link); + $mixlists_to_print = mysql_num_rows($rslt); + $mixlists_list=""; + + $o=0; + while ($mixlists_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $mixlists_list .= "\n"; + $mixlistsname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + + echo "

    LIST MIXES FOR THIS CAMPAIGN:   $NWB#vicidial_campaigns-list_order_mix$NWE
    \n"; + + echo "
    WARNING, we only recommend List Mix for advanced users, Please read the ViciDial Manager Manual
    \n"; + + $stmt="SELECT dial_statuses from vicidial_campaigns where campaign_id='$campaign_id'"; + $rslt=mysql_query($stmt, $link); + $statuses = mysql_num_rows($rslt); + if ($statuses > 0) + { + $rowy=mysql_fetch_row($rslt); + $LMdial_statuses=$rowy[0]; + } + + $stmt="SELECT vcl_id,vcl_name,campaign_id,list_mix_container,mix_method,status from vicidial_campaigns_list_mix where campaign_id='$campaign_id' order by status, vcl_id"; + $rslt=mysql_query($stmt, $link); + $listmixes = mysql_num_rows($rslt); + $o=0; + while ($listmixes > $o) + { + $rowx=mysql_fetch_row($rslt); + $vcl_id=$rowx[0]; + $o++; + + if ($o < 2) + {$tablecolor='bgcolor="#99FF99"'; $bgcolor='bgcolor="#CCFFCC"';} + else + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$tablecolor='bgcolor="#B9CBFD"'; $bgcolor='bgcolor="#9BB9FB"';} + else + {$tablecolor='bgcolor="#9BB9FB"'; $bgcolor='bgcolor="#B9CBFD"';} + } + echo "
    \n"; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + } + else + {echo "$rowx[5]\n";} + echo "\n"; + echo "\n"; + +# list_id|order|percent|statuses|:list_id|order|percent|statuses|:... +# 101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -| +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX','TESTCAMP List Mix','TESTCAMP','101|1|40| A B NA -|:102|2|25| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX2','TESTCAMP List Mix2','TESTCAMP','101|1|20| A B -|:102|2|45| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); +# INSERT INTO vicidial_campaigns_list_mix values('TESTMIX3','TESTCAMP List Mix3','TESTCAMP','101|1|30| A NA -|:102|2|35| NEW -|:103|3|30| DROP CALLBK -|:101|4|5| DROP -|','IN_ORDER','ACTIVE'); + + $MIXentries = $MT; + $MIXentries = explode(":", $rowx[3]); + $Ms_to_print = (count($MIXentries) - 0); + $q=0; + while ($Ms_to_print > $q) + { + $MIXdetails = explode('|', $MIXentries[$q]); + $MIXdetailsLIST = $MIXdetails[0]; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $r=0; + while ($Ds_to_print > $r) + { + $r++; + $Dsql .= "'$Dstatuses[$r]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "\n"; + + + echo "\n"; + + + $q++; + + } + + + + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + $X='X'; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$vcl_id:\n"; + echo "\n"; + echo "     DELETE LIST MIX
    Status: \n"; + if ($rowx[5]=='INACTIVE') + { + echo "$rowx[5]\n"; + echo "SET TO ACTIVEMethod:\n"; + echo "
    LIST IDPRIORITY% MIXSTATUSES
    \n"; + echo "\n"; + echo "List: $MIXdetailsLIST   REMOVE\n"; + + + + echo " \n"; + echo "ADD   \n"; + echo "REMOVE\n"; + echo "
    \n"; + echo "Difference %: \n"; + echo "   \n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "List: \n"; + + if ($q > 39) {$AE_disabled = 'DISABLED';} + else {$AE_disabled = '';} + echo "\n"; + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "
    CHANGE: \n"; + echo "ALL   \n"; + echo "EMPTY\n"; + echo "
    \n"; + echo " \n"; + echo "ADD   \n"; + echo "REMOVE\n"; + echo "
    \n"; + } + + + echo "

    ADD NEW LIST MIX
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Mix ID: Mix Name: Mix Method: "; + echo "
    List: Dial Status:  
    \n"; + + echo "
    \n"; + + } + } + echo "
    \n"; +} + + +###################### +# ADD=30 campaign not allowed +###################### + +if ($ADD==30) +{ +echo "
    \n"; + echo ""; +echo "You do not have permission to view campaign $campaign_id\n"; +} + + +###################### +# ADD=32 display all campaign statuses +###################### +if ($ADD==32) +{ +echo "
    \n"; + echo ""; + +echo "
    CUSTOM CAMPAIGN STATUSES LISTINGS:\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
    CAMPAIGNNAMESTATUSESMODIFY
    $campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_statuses where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY STATUSES
    \n"; +} + + +###################### +# ADD=33 display all campaign hotkeys +###################### +if ($ADD==33) +{ +echo "
    \n"; + echo ""; + +echo "
    CAMPAIGN HOTKEYS LISTINGS:\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
    CAMPAIGNNAMEHOTKEYSMODIFY
    $campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_campaign_hotkeys where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY HOTKEYS
    \n"; +} + + +###################### +# ADD=35 display all campaign lead recycle entries +###################### +if ($ADD==35) +{ +echo "
    \n"; + echo ""; + +echo "
    CAMPAIGN LEAD RECYCLE LISTINGS:\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
    CAMPAIGNNAMELEAD RECYCLESMODIFY
    $campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT status from vicidial_lead_recycle where campaign_id='$campaigns_id_list[$o]' order by status"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY LEAD RECYCLES
    \n"; +} + + +###################### +# ADD=36 display all campaign auto-alt dial entries +###################### +if ($ADD==36) +{ +echo "
    \n"; + echo ""; + +echo "
    CAMPAIGN LEAD AUTO-ALT DIAL LISTINGS:\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
    CAMPAIGNNAMEAUTO-ALT DIALMODIFY
    $campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT auto_alt_dial_statuses from vicidial_campaigns where campaign_id='$campaigns_id_list[$o]';"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if (strlen($row[0])<3) + {echo "NONE";} + echo "MODIFY AUTO-ALT DIAL
    \n"; +} + + +###################### +# ADD=37 display all campaign agent pause codes +###################### +if ($ADD==37) +{ +echo "
    \n"; + echo ""; + +echo "
    CAMPAIGN AGENT PAUSE CODE LISTINGS:\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
    CAMPAIGNNAMEPAUSE CODESMODIFY
    $campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT pause_code from vicidial_pause_codes where campaign_id='$campaigns_id_list[$o]' order by pause_code;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY PAUSE CODES
    \n"; +} + + +###################### +# ADD=39 display all campaign list mixes +###################### +if ($ADD==39) +{ +echo "
    \n"; + echo ""; + +echo "
    CAMPAIGN LIST MIX LISTINGS:\n"; +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $campaigns_id_list[$o] = $row[0]; + $campaigns_name_list[$o] = $row[1]; + $o++; + } + + $o=0; + while ($campaigns_to_print > $o) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + +echo "
    CAMPAIGNNAMELIST MIXMODIFY
    $campaigns_id_list[$o] $campaigns_name_list[$o] "; + + $stmt="SELECT vcl_id from vicidial_campaigns_list_mix where campaign_id='$campaigns_id_list[$o]' order by status,vcl_id;"; + $rslt=mysql_query($stmt, $link); + $campstatus_to_print = mysql_num_rows($rslt); + $p=0; + while ( ($campstatus_to_print > $p) and ($p < 10) ) + { + $row=mysql_fetch_row($rslt); + echo "$row[0] "; + $p++; + } + if ($p<1) + {echo "NONE";} + echo "MODIFY LIST MIX
    \n"; +} + + + + + +###################### +# ADD=311 modify list info in the system +###################### + +if ($ADD==311) + { + if ($LOGmodify_lists==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT list_id,list_name,campaign_id,active,list_description,list_changedate,list_lastcalldate,reset_time,agent_script_override,campaign_cid_override,am_message_exten_override,drop_inbound_group_override,xferconf_a_number,xferconf_b_number,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_name = $row[1]; + $campaign_id = $row[2]; + $active = $row[3]; + $list_description = $row[4]; + $list_changedate = $row[5]; + $list_lastcalldate = $row[6]; + $reset_time = $row[7]; + $agent_script_override = $row[8]; + $campaign_cid_override = $row[9]; + $am_message_exten_override = $row[10]; + $drop_inbound_group_override = $row[11]; + $xferconf_a_number = $row[12]; + $xferconf_b_number = $row[13]; + $xferconf_c_number = $row[14]; + $xferconf_d_number = $row[15]; + $xferconf_e_number = $row[16]; + + # grab names of global statuses and statuses in the selected campaign + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + $stmt="SELECT status,status_name,selectable,campaign_id,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_campaign_statuses where campaign_id='$campaign_id' order by status"; + $rslt=mysql_query($stmt, $link); + $Cstatuses_to_print = mysql_num_rows($rslt); + + $o=0; + while ($Cstatuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $statuses_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + # end grab status names + + ##### get scripts listings for pulldown + $Lscripts_list = "\n"; + $stmt="SELECT script_id,script_name from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + $o=0; + while ($scripts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Lscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + ##### get in-groups listings for dynamic drop in-group pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
    MODIFY A LISTS RECORD: $list_id
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + echo "
    List ID: $list_id$NWB#vicidial_lists-list_id$NWE
    List Name: $NWB#vicidial_lists-list_name$NWE
    List Description: $NWB#vicidial_lists-list_description$NWE
    Campaign: $NWB#vicidial_lists-campaign_id$NWE
    Active: $NWB#vicidial_lists-active$NWE
    Reset Lead-Called-Status for this list: $NWB#vicidial_lists-reset_list$NWE
    Reset Times: $NWB#vicidial_lists-reset_time$NWE
    List Change Date: $list_changedate   $NWB#vicidial_lists-list_changedate$NWE
    List Last Call Date: $list_lastcalldate   $NWB#vicidial_lists-list_lastcalldate$NWE
    Agent Script Override: $NWB#vicidial_lists-agent_script_override$NWE
    Campaign CID Override: $NWB#vicidial_lists-campaign_cid_override$NWE
    Answering Machine Message Override: audio chooser $NWB#vicidial_lists-am_message_exten_override$NWE
    Drop Inbound Group Override: $NWB#vicidial_lists-drop_inbound_group_override$NWE
    Transfer-Conf Number 1 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
    Transfer-Conf Number 2 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
    Transfer-Conf Number 3 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
    Transfer-Conf Number 4 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
    Transfer-Conf Number 5 Override: $NWB#vicidial_lists-xferconf_a_dtmf$NWE
    \n"; + + echo "
    \n"; + echo "
    STATUSES WITHIN THIS LIST:
    \n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 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"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($dispo,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if ($dispo == 'CBHOLD') + { + $CLB=""; + $CLE=""; + } + else + { + $CLB=''; + $CLE=''; + } + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
    STATUSSTATUS NAMECALLEDNOT CALLED
    $CLB$dispo$CLE$statuses_list[$dispo]".$lead_list['Y'][$dispo]."".$lead_list['N'][$dispo]."
    SUBTOTALS$lead_list[Y_count]$lead_list[N_count]
    TOTAL$lead_list[count]

    \n"; + unset($lead_list); + + + echo "
    \n"; + echo "
    TIME ZONES WITHIN THIS LIST:
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT gmt_offset_now,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by gmt_offset_now,called_since_last_reset order by gmt_offset_now,called_since_last_reset"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + + $o=0; + $plus='+'; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + if ($lead_list['count'] > 0) + { + while (list($tzone,) = each($lead_list[$since_reset])) + { + $LOCALzone=3600 * $tzone; + $LOCALdate=gmdate("D M Y H:i", time() + $LOCALzone); + + if ($tzone >= 0) {$DISPtzone = "$plus$tzone";} + else {$DISPtzone = "$tzone";} + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + } + + echo "\n"; + echo "\n"; + + echo "
    GMT OFFSET NOW (local time)CALLEDNOT CALLED
    ".$DISPtzone."     ($LOCALdate)".$lead_list['Y'][$tzone]."".$lead_list['N'][$tzone]."
    SUBTOTALS$lead_list[Y_count]$lead_list[N_count]
    TOTAL$lead_list[count]

    \n"; + unset($lead_list); + + + echo "
    \n"; + echo "
    OWNERS WITHIN THIS LIST:
    \n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT owner,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by owner,called_since_last_reset order by owner,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $owners_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($owners_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($owner,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
    OWNERCALLEDNOT CALLED
    $CLB$owner$CLE".$lead_list['Y'][$owner]."".$lead_list['N'][$owner]."
    SUBTOTALS$lead_list[Y_count]$lead_list[N_count]
    TOTAL$lead_list[count]

    \n"; + unset($lead_list); + + + echo "
    \n"; + echo "
    RANKS WITHIN THIS LIST:
    \n"; + echo "\n"; + echo "\n"; + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT rank,called_since_last_reset,count(*) from vicidial_list where list_id='$list_id' group by rank,called_since_last_reset order by rank,called_since_last_reset"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $ranks_to_print = mysql_num_rows($rslt); + + $o=0; + $lead_list['count'] = 0; + $lead_list['Y_count'] = 0; + $lead_list['N_count'] = 0; + while ($ranks_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + + $lead_list['count'] = ($lead_list['count'] + $rowx[2]); + if ($rowx[1] == 'N') + { + $since_reset = 'N'; + $since_resetX = 'Y'; + } + else + { + $since_reset = 'Y'; + $since_resetX = 'N'; + } + $lead_list[$since_reset][$rowx[0]] = ($lead_list[$since_reset][$rowx[0]] + $rowx[2]); + $lead_list[$since_reset.'_count'] = ($lead_list[$since_reset.'_count'] + $rowx[2]); + #If opposite side is not set, it may not in the future so give it a value of zero + if (!isset($lead_list[$since_resetX][$rowx[0]])) + { + $lead_list[$since_resetX][$rowx[0]]=0; + } + $o++; + } + + $o=0; + if ($lead_list['count'] > 0) + { + while (list($rank,) = each($lead_list[$since_reset])) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CLB=''; + $CLE=''; + + echo "\n"; + $o++; + } + } + + echo "\n"; + echo "\n"; + + echo "
    RANKCALLEDNOT CALLED
    $CLB$rank$CLE".$lead_list['Y'][$rank]."".$lead_list['N'][$rank]."
    SUBTOTALS$lead_list[Y_count]$lead_list[N_count]
    TOTAL$lead_list[count]

    \n"; + unset($lead_list); + + + $leads_in_list = 0; + $leads_in_list_N = 0; + $leads_in_list_Y = 0; + $stmt="SELECT status, if(called_count >= 100, 100, called_count), count(*) from vicidial_list where list_id='$list_id' group by status, if(called_count >= 100, 100, called_count) order by status,called_count"; + $rslt=mysql_query($stmt, $link); + $status_called_to_print = mysql_num_rows($rslt); + + $o=0; + $sts=0; + $first_row=1; + $all_called_first=1000; + $all_called_last=0; + while ($status_called_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $leads_in_list = ($leads_in_list + $rowx[2]); + $count_statuses[$o] = $rowx[0]; + $count_called[$o] = $rowx[1]; + $count_count[$o] = $rowx[2]; + $all_called_count[$rowx[1]] = ($all_called_count[$rowx[1]] + $rowx[2]); + + if ( (strlen($status[$sts]) < 1) or ($status[$sts] != "$rowx[0]") ) + { + if ($first_row) {$first_row=0;} + else {$sts++;} + $status[$sts] = "$rowx[0]"; + $status_called_first[$sts] = "$rowx[1]"; + if ($status_called_first[$sts] < $all_called_first) {$all_called_first = $status_called_first[$sts];} + } + $leads_in_sts[$sts] = ($leads_in_sts[$sts] + $rowx[2]); + $status_called_last[$sts] = "$rowx[1]"; + if ($status_called_last[$sts] > $all_called_last) {$all_called_last = $status_called_last[$sts];} + + $o++; + } + + + echo "
    \n"; + echo "
    CALLED COUNTS WITHIN THIS LIST:
    \n"; + echo "\n"; + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + if ($first >= 100) {$Fplus='+';} + else {$Fplus='';} + echo ""; + $first++; + } + echo "\n"; + + $sts=0; + $statuses_called_to_print = count($status); + while ($statuses_called_to_print > $sts) + { + $Pstatus = $status[$sts]; + if (eregi("1$|3$|5$|7$|9$", $sts)) + {$bgcolor='bgcolor="#B9CBFD"'; $AB='bgcolor="#9BB9FB"';} + else + {$bgcolor='bgcolor="#9BB9FB"'; $AB='bgcolor="#B9CBFD"';} + # echo "$status[$sts]|$status_called_first[$sts]|$status_called_last[$sts]|$leads_in_sts[$sts]|\n"; + # echo "$status[$sts]|"; + echo ""; + + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $sts)) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + else + { + if (eregi("0$|2$|4$|6$|8$", $first)) {$AB='bgcolor="#9BB9FB"';} + else{$AB='bgcolor="#B9CBFD"';} + } + + $called_printed=0; + $o=0; + while ($status_called_to_print > $o) + { + if ( ($count_statuses[$o] == "$Pstatus") and ($count_called[$o] == "$first") ) + { + $called_printed++; + echo ""; + } + + $o++; + } + if (!$called_printed) + {echo "";} + $first++; + } + echo "\n\n"; + + $sts++; + } + + echo ""; + $first = $all_called_first; + while ($first <= $all_called_last) + { + if (eregi("1$|3$|5$|7$|9$", $first)) {$AB='bgcolor="#AFEEEE"';} + else{$AB='bgcolor="#E0FFFF"';} + echo ""; + $first++; + } + echo "\n"; + + echo "
    STATUSSTATUS NAME$first$FplusSUBTOTAL
    $Pstatus$statuses_list[$Pstatus] $count_count[$o]  $leads_in_sts[$sts]
    TOTAL$all_called_count[$first]$leads_in_list

    \n"; + + + + + + echo "
    \n"; + + echo "

    Click here to see all CallBack Holds in this list

    \n"; + echo "

    Click here to download this list

    \n"; + + if ($LOGdelete_lists > 0) + { + echo "

    DELETE THIS LIST\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this list
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + +###################### +# ADD=3111 modify in-group info in the system +###################### + +if ($ADD==3111) + { + if ($LOGmodify_ingroups==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT group_id,group_name,group_color,active,web_form_address,voicemail_ext,next_agent_call,fronter_display,ingroup_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number,drop_call_seconds,drop_action,drop_exten,call_time_id,after_hours_action,after_hours_message_filename,after_hours_exten,after_hours_voicemail,welcome_message_filename,moh_context,onhold_prompt_filename,prompt_interval,agent_alert_exten,agent_alert_delay,default_xfer_group,queue_priority,drop_inbound_group,ingroup_recording_override,ingroup_rec_filename,afterhours_xfer_group,qc_enabled,qc_statuses,qc_shift_id,qc_get_record_launch,qc_show_recording,qc_web_form_address,qc_script,play_place_in_line,play_estimate_hold_time,hold_time_option,hold_time_option_seconds,hold_time_option_exten,hold_time_option_voicemail,hold_time_option_xfer_group,hold_time_option_callback_filename,hold_time_option_callback_list_id,hold_recall_xfer_group,no_delay_call_route,play_welcome_message,answer_sec_pct_rt_stat_one,answer_sec_pct_rt_stat_two,default_group_alias,no_agent_no_queue,no_agent_action,no_agent_action_value,web_form_address_two,timer_action,timer_action_message,timer_action_seconds,start_call_url,dispo_call_url,xferconf_c_number,xferconf_d_number,xferconf_e_number from vicidial_inbound_groups where group_id='$group_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[1]; + $group_color = $row[2]; + $active = $row[3]; + $web_form_address = stripslashes($row[4]); + $voicemail_ext = $row[5]; + $next_agent_call = $row[6]; + $fronter_display = $row[7]; + $script_id = $row[8]; + $get_call_launch = $row[9]; + $xferconf_a_dtmf = $row[10]; + $xferconf_a_number = $row[11]; + $xferconf_b_dtmf = $row[12]; + $xferconf_b_number = $row[13]; + $drop_call_seconds = $row[14]; + $drop_action = $row[15]; + $drop_exten = $row[16]; + $call_time_id = $row[17]; + $after_hours_action = $row[18]; + $after_hours_message_filename = $row[19]; + $after_hours_exten = $row[20]; + $after_hours_voicemail = $row[21]; + $welcome_message_filename = $row[22]; + $moh_context = $row[23]; + $onhold_prompt_filename = $row[24]; + $prompt_interval = $row[25]; + $agent_alert_exten = $row[26]; + $agent_alert_delay = $row[27]; + $default_xfer_group = $row[28]; + $queue_priority = $row[29]; + $drop_inbound_group = $row[30]; + $ingroup_recording_override = $row[31]; + $ingroup_rec_filename = $row[32]; + $afterhours_xfer_group = $row[33]; + $qc_enabled = $row[34]; + $qc_statuses = $row[35]; + $qc_shift_id = $row[36]; + $qc_get_record_launch = $row[37]; + $qc_show_recording = $row[38]; + $qc_web_form_address = stripslashes($row[39]); + $qc_script = $row[40]; + $play_place_in_line = $row[41]; + $play_estimate_hold_time = $row[42]; + $hold_time_option = $row[43]; + $hold_time_option_seconds = $row[44]; + $hold_time_option_exten = $row[45]; + $hold_time_option_voicemail = $row[46]; + $hold_time_option_xfer_group = $row[47]; + $hold_time_option_callback_filename = $row[48]; + $hold_time_option_callback_list_id = $row[49]; + $hold_recall_xfer_group = $row[50]; + $no_delay_call_route = $row[51]; + $play_welcome_message = $row[52]; + $answer_sec_pct_rt_stat_one = $row[53]; + $answer_sec_pct_rt_stat_two = $row[54]; + $default_group_alias = $row[55]; + $no_agent_no_queue = $row[56]; + $no_agent_action = $row[57]; + $no_agent_action_value = $row[58]; + $web_form_address_two = stripslashes($row[59]); + $timer_action = $row[60]; + $timer_action_message = $row[61]; + $timer_action_seconds = $row[62]; + $start_call_url = $row[63]; + $dispo_call_url = $row[64]; + $xferconf_c_number = $row[65]; + $xferconf_d_number = $row[66]; + $xferconf_e_number = $row[67]; + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $Dgroups_menu=''; + $Dgroups_selected=0; + $Agroups_menu=''; + $Agroups_selected=0; + $Hgroups_menu=''; + $Hgroups_selected=0; + $Tgroups_menu=''; + $Tgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $Dgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + if ($group_id!=$rowx[0]) + { + $Agroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Tgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + $Hgroups_menu .= "value=\"$rowx[0]\">$rowx[0] - $rowx[1]\n"; + } + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + if ($Agroups_selected < 1) + {$Agroups_menu .= "\n";} + else + {$Agroups_menu .= "\n";} + if ($Tgroups_selected < 1) + {$Tgroups_menu .= "\n";} + else + {$Tgroups_menu .= "\n";} + if ($Hgroups_selected < 1) + {$Hgroups_menu .= "\n";} + else + {$Hgroups_menu .= "\n";} + + + echo "
    MODIFY A GROUPS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($SSenable_second_webform > 0) + { + echo "\n"; + } + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $eswHTML=''; + if ($SSenable_second_webform > 0) + {$eswHTML = '';} + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + ##### get groups_alias listings for dynamic default group alias pulldown list menu + $stmt="SELECT group_alias_id,group_alias_name from groups_alias where active='Y' order by group_alias_id"; + $rslt=mysql_query($stmt, $link); + $group_alias_to_print = mysql_num_rows($rslt); + $group_alias_menu=''; + $group_alias_selected=0; + $o=0; + while ($group_alias_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_alias_menu .= "\n"; + $o++; + } + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + + ##### get status listings for dynamic pulldown + $qc_statuses = preg_replace("/^ | -$/","",$qc_statuses); + $QCstatuses = explode(" ", $qc_statuses); + $QCs_to_print = (count($QCstatuses) -0); + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses where status NOT IN('QUEUE','INCALL') order by status"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $qc_statuses_list=''; + + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + if (!ereg("\"$rowx[0]\"",$qc_statuses_list)) + { + $qc_statuses_list .= " $o) + { + $rowx=mysql_fetch_row($rslt); + $QCscripts_list .= "\n"; + $scriptname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + ##### get shifts listings for pulldown + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $QCshifts_list=""; + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $QCshifts_list .= "\n"; + $shiftname_list["$rowx[0]"] = "$rowx[1]"; + $o++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
    Group ID: $row[0]$NWB#vicidial_inbound_groups-group_id$NWE
    Group Name: $NWB#vicidial_inbound_groups-group_name$NWE
    Group Color: $NWB#vicidial_inbound_groups-group_color$NWE
    Active: $NWB#vicidial_inbound_groups-active$NWE
    Web Form: $NWB#vicidial_inbound_groups-web_form_address$NWE
    Web Form Two: $NWB#vicidial_inbound_groups-web_form_address$NWE
    Next Agent Call: $NWB#vicidial_inbound_groups-next_agent_call$NWE
    Queue Priority: $NWB#vicidial_inbound_groups-queue_priority$NWE
    Fronter Display: $NWB#vicidial_inbound_groups-fronter_display$NWE
    Script: $NWB#vicidial_inbound_groups-ingroup_script$NWE
    Get Call Launch: $NWB#vicidial_inbound_groups-get_call_launch$NWE
    Transfer-Conf DTMF 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
    Transfer-Conf Number 1: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
    Transfer-Conf DTMF 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
    Transfer-Conf Number 2: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
    Transfer-Conf Number 3: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
    Transfer-Conf Number 4: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
    Transfer-Conf Number 5: $NWB#vicidial_inbound_groups-xferconf_a_dtmf$NWE
    Timer Action: $NWB#vicidial_inbound_groups-timer_action$NWE
    Timer Action Message: $NWB#vicidial_inbound_groups-timer_action_message$NWE
    Timer Action Seconds: $NWB#vicidial_inbound_groups-timer_action_seconds$NWE
    Drop Call Seconds: $NWB#vicidial_inbound_groups-drop_call_seconds$NWE
    Drop Action: $NWB#vicidial_inbound_groups-drop_action$NWE
    Drop Exten: $NWB#vicidial_inbound_groups-drop_exten$NWE
    Voicemail: voicemail chooser$NWB#vicidial_inbound_groups-voicemail_ext$NWE
    Drop Transfer Group: $NWB#vicidial_inbound_groups-drop_inbound_group$NWE
    Call Time: $NWB#vicidial_inbound_groups-call_time_id$NWE
    After Hours Action: $NWB#vicidial_inbound_groups-after_hours_action$NWE
    After Hours Message Filename: audio chooser $NWB#vicidial_inbound_groups-after_hours_message_filename$NWE
    After Hours Extension: $NWB#vicidial_inbound_groups-after_hours_exten$NWE
    After Hours Voicemail: voicemail chooser$NWB#vicidial_inbound_groups-after_hours_voicemail$NWE
    After Hours Transfer Group: $NWB#vicidial_inbound_groups-afterhours_xfer_group$NWE
    No Agents No Queueing: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE
    No Agent No Queue Action: $NWB#vicidial_inbound_groups-no_agent_no_queue$NWE\n"; + + echo "
    "; + echo "\n"; + + if ($no_agent_action=='CALLMENU') + { + echo ""; + echo "Call Menu:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='INGROUP') + { + if (strlen($no_agent_action_value) < 10) + {$no_agent_action_value = 'SALESLINE,CID,LB,998,TESTCAMP,1';} + $IGno_agent_action_value = explode(",",$no_agent_action_value); + $IGgroup_id = $IGno_agent_action_value[0]; + $IGhandle_method = $IGno_agent_action_value[1]; + $IGsearch_method = $IGno_agent_action_value[2]; + $IGlist_id = $IGno_agent_action_value[3]; + $IGcampaign_id = $IGno_agent_action_value[4]; + $IGphone_code = $IGno_agent_action_value[5]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo "   Handle Method: \n"; + echo "
    Search Method: \n"; + echo "   List ID: "; + echo "
    Campaign ID: \n"; + echo "   Phone Code: "; + } + if ($no_agent_action=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$no_agent_action_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($no_agent_action=='MESSAGE') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = 'nbdy-avail-to-take-call|vm-goodbye';} + echo "Audio File: audio chooser\n"; + } + if ($no_agent_action=='EXTENSION') + { + if (strlen($no_agent_action_value) < 3) + {$no_agent_action_value = '8304,default';} + $EXno_agent_action_value = explode(",",$no_agent_action_value); + $EXextension = $EXno_agent_action_value[0]; + $EXcontext = $EXno_agent_action_value[1]; + echo "Extension:   Context: \n"; + } + if ($no_agent_action=='VOICEMAIL') + { + echo "Voicemail Box: voicemail chooser\n"; + } + + echo "
    +
     
    Welcome Message Filename: audio chooser $NWB#vicidial_inbound_groups-welcome_message_filename$NWE
    Play Welcome Message: $NWB#vicidial_inbound_groups-play_welcome_message$NWE
    Music On Hold Context: moh chooser $NWB#vicidial_inbound_groups-moh_context$NWE
    On Hold Prompt Filename: audio chooser $NWB#vicidial_inbound_groups-onhold_prompt_filename$NWE
    On Hold Prompt Interval: $NWB#vicidial_inbound_groups-prompt_interval$NWE
    Play Place in Line: $NWB#vicidial_inbound_groups-play_place_in_line$NWE
    Play Estimated Hold Time: $NWB#vicidial_inbound_groups-play_estimate_hold_time$NWE
    Hold Time Option: $NWB#vicidial_inbound_groups-hold_time_option$NWE
    Hold Time Option Seconds: $NWB#vicidial_inbound_groups-hold_time_option_seconds$NWE
    Hold Time Option Extension: $NWB#vicidial_inbound_groups-hold_time_option_exten$NWE
    Hold Time Option Voicemail: voicemail chooser $NWB#vicidial_inbound_groups-hold_time_option_voicemail$NWE
    Hold Time Option Transfer In-Group: $NWB#vicidial_inbound_groups-hold_time_option_xfer_group$NWE
    Hold Time Option Callback Filename: audio chooser $NWB#vicidial_inbound_groups-hold_time_option_callback_filename$NWE
    Hold Time Option Callback List ID: $NWB#vicidial_inbound_groups-hold_time_option_callback_list_id$NWE
    Agent Alert Filename: audio chooser $NWB#vicidial_inbound_groups-agent_alert_exten$NWE
    Agent Alert Delay: $NWB#vicidial_inbound_groups-agent_alert_delay$NWE
    Default Transfer Group: $NWB#vicidial_inbound_groups-default_xfer_group$NWE
    Default Group Alias: $NWB#vicidial_inbound_groups-default_group_alias$NWE
    Hold Recall Transfer In-Group: $NWB#vicidial_inbound_groups-hold_recall_xfer_group$NWE
    No Delay Call Route: $NWB#vicidial_inbound_groups-no_delay_call_route$NWE
    In-Group Recording Override: $NWB#vicidial_inbound_groups-ingroup_recording_override$NWE
    In-Group Recording Filename: $NWB#vicidial_inbound_groups-ingroup_rec_filename$NWE
    Stats Percent of Calls Answered Within X seconds 1: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
    Stats Percent of Calls Answered Within X seconds 2: $NWB#vicidial_inbound_groups-answer_sec_pct_rt_stat_one$NWE
    Start Call URL: $NWB#vicidial_inbound_groups-start_call_url$NWE
    Dispo Call URL: $NWB#vicidial_inbound_groups-dispo_call_url$NWE
     
    Inbound Group QC Settings:
    QC Enabled: $NWB#vicidial_inbound_groups-qc_enabled$NWE
    QC Statuses:
    $NWB#vicidial_inbound_groups-qc_statuses$NWE
    $qc_statuses_list
    QC WebForm: $NWB#vicidial_inbound_groups-qc_web_form_address$NWE
    QC Script: $NWB#vicidial_inbound_groups-qc_script$NWE
    QC Shift: $NWB#vicidial_inbound_groups-qc_shift_id$NWE
    QC Get Record Launch: $NWB#vicidial_inbound_groups-qc_get_record_launch$NWE
    QC Show Recording: $NWB#vicidial_inbound_groups-qc_show_recording$NWE
    \n"; + echo "

    \n"; + + + ### list of agent rank or skill-level for this inbound group + echo "
    \n"; + echo "
    AGENT RANKS FOR THIS INBOUND GROUP:
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vu.user,viga.group_rank,calls_today,full_name from vicidial_inbound_group_agents viga, vicidial_users vu where group_id='$group_id' and active='Y' and vu.user=viga.user;"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    USER     RANK     CALLS TODAY
    $rowx[0] - $rowx[3]$rowx[1]$rowx[2]

    \n"; + + echo "

    \n"; + + echo "
    Click here to see a report for this inbound group

    \n"; + + echo "
    \n"; + + echo "DIDS USING THIS IN-GROUP:
    \n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where group_id='$group_id' and did_route='IN_GROUP';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[1] $row[2]

    \n"; + echo "CALL MENUS USING THIS IN-GROUP:
    \n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='INGROUP' and option_route_value='$group_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]

    \n"; + echo "CAMPAIGNS ALLOWING THIS IN-GROUP:
    \n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where closer_campaigns LIKE \"% $group_id %\";"; + $rslt=mysql_query($stmt, $link); + $campin_to_print = mysql_num_rows($rslt); + $o=0; + while ($campin_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]
    \n"; + + if ($LOGdelete_ingroups > 0) + { + echo "

    EMERGENCY VDAC CLEAR FOR THIS IN-GROUP

    \n"; + echo "

    DELETE THIS IN-GROUP\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this In-Group\n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + +###################### +# ADD=3311 modify did info in the system +###################### + +if ($ADD==3311) + { + if ($LOGmodify_dids==1) + { + echo "
    \n"; + echo ""; + + $didSQL = "did_id='$did_id'"; + if ( (strlen($did_id)<1) and (strlen($did_pattern)>0) ) + {$didSQL = "did_pattern='$did_pattern'";} + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route,extension,exten_context,voicemail_ext,phone,server_ip,user,user_unavailable_action,user_route_settings_ingroup,group_id,call_handle_method,agent_search_method,list_id,campaign_id,phone_code,menu_id from vicidial_inbound_dids where $didSQL;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + $did_pattern = $row[1]; + $did_description = $row[2]; + $did_active = $row[3]; + $did_route = $row[4]; + $extension = $row[5]; + $exten_context = $row[6]; + $voicemail_ext = $row[7]; + $phone = $row[8]; + $server_ip = $row[9]; + $user = $row[10]; + $user_unavailable_action = $row[11]; + $user_route_settings_ingroup = $row[12]; + $group_id = $row[13]; + $call_handle_method = $row[14]; + $agent_search_method = $row[15]; + $list_id = $row[16]; + $campaign_id = $row[17]; + $phone_code = $row[18]; + $menu_id = $row[19]; + + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $Xgroups_to_print = mysql_num_rows($rslt); + $Xgroups_menu=''; + $Xgroups_selected=0; + $o=0; + while ($Xgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Xgroups_menu .= "\n"; + $o++; + } + if ($Xgroups_selected < 1) + {$Xgroups_menu .= "\n";} + else + {$Xgroups_menu .= "\n";} + + + ##### get in-groups listings for dynamic pulldown + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where group_id NOT IN('AGENTDIRECT') order by group_id"; + $rslt=mysql_query($stmt, $link); + $Dgroups_to_print = mysql_num_rows($rslt); + $Dgroups_menu=''; + $Dgroups_selected=0; + $o=0; + while ($Dgroups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Dgroups_menu .= "\n"; + $o++; + } + if ($Dgroups_selected < 1) + {$Dgroups_menu .= "\n";} + else + {$Dgroups_menu .= "\n";} + + + echo "
    MODIFY A DID RECORD: $row[0]
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="select menu_id,menu_name,menu_prompt from vicidial_call_menu;"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + $menu_list=''; + $i=0; + while ($i < $menus_to_print) + { + $row=mysql_fetch_row($rslt); + $menu_list .= ""; + $i++; + } + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    DID Extension: $NWB#vicidial_inbound_dids-did_pattern$NWE
    DID Description: $NWB#vicidial_inbound_dids-did_description$NWE
    Active: $NWB#vicidial_inbound_dids-did_active$NWE
    DID Route: $NWB#vicidial_inbound_dids-did_route$NWE
    Extension: $NWB#vicidial_inbound_dids-extension$NWE
    Extension Context: $NWB#vicidial_inbound_dids-exten_context$NWE
    Voicemail Box: voicemail chooser$NWB#vicidial_inbound_dids-voicemail_ext$NWE
    Phone Extension: $NWB#vicidial_inbound_dids-phone$NWE
    Server IP: $NWB#vicidial_inbound_dids-server_ip$NWE
    Call Menu: $NWB#vicidial_inbound_dids-menu_id$NWE
    User Agent: $NWB#vicidial_inbound_dids-user$NWE
    User Unavailable Action: $NWB#vicidial_inbound_dids-user_unavailable_action$NWE
    User Route Settings In-Group: $NWB#vicidial_inbound_dids-user_route_settings_ingroup$NWE
    In-Group ID: $NWB#vicidial_inbound_dids-group_id$NWE
    In-Group Call Handle Method: $NWB#vicidial_inbound_dids-call_handle_method$NWE
    In-Group Agent Search Method: $NWB#vicidial_inbound_dids-agent_search_method$NWE
    In-Group List ID: $NWB#vicidial_inbound_dids-list_id$NWE
    In-Group Campaign ID: $NWB#vicidial_inbound_dids-campaign_id$NWE
    In-Group Phone Code: $NWB#vicidial_inbound_dids-phone_code$NWE
    \n"; + echo "

    \n"; + + echo "
    Click here to see a traffic report for this DID

    \n"; + + if ($LOGdelete_dids > 0) + { + echo "

    DELETE THIS DID\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this DID\n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + +###################### +# ADD=3511 modify call menu info in the system +###################### + +if ($ADD==3511) + { + if ($LOGmodify_dids==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT menu_name,menu_prompt,menu_timeout,menu_timeout_prompt,menu_invalid_prompt,menu_repeat,menu_time_check,call_time_id,track_in_vdac,custom_dialplan_entry,tracking_group from vicidial_call_menu where menu_id='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $menu_name = $row[0]; + $menu_prompt = $row[1]; + $menu_timeout = $row[2]; + $menu_timeout_prompt = $row[3]; + $menu_invalid_prompt = $row[4]; + $menu_repeat = $row[5]; + $menu_time_check = $row[6]; + $call_time_id = $row[7]; + $track_in_vdac = $row[8]; + $custom_dialplan_entry= $row[9]; + $tracking_group = $row[10]; + + + echo "
    MODIFY A CALL MENU RECORD: $menu_id
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + $j=0; + $stmtA="SELECT option_value,option_description,option_route,option_route_value,option_route_value_context from vicidial_call_menu_options where menu_id='$menu_id' order by option_value;"; + $rslt=mysql_query($stmtA, $link); + $menus_to_print = mysql_num_rows($rslt); + + while ($menus_to_print > $j) + { + $row=mysql_fetch_row($rslt); + $Aoption_value[$j] = $row[0]; + $Aoption_description[$j] = $row[1]; + $Aoption_route[$j] = $row[2]; + $Aoption_route_value[$j] = $row[3]; + $Aoption_route_value_context[$j] = $row[4]; + $j++; + } + + $j=0; + while ($menus_to_print > $j) + { + $choose_height = (($j * 40) + 400); + $option_value = $Aoption_value[$j]; + $option_description = $Aoption_description[$j]; + $option_route = $Aoption_route[$j]; + $option_route_value = $Aoption_route_value[$j]; + $option_route_value_context = $Aoption_route_value_context[$j]; + + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#CCFFFF"';} + else + {$bgcolor='bgcolor="#99FFCC"';} + + echo "\n"; + $j++; + } + + while ($j <= 18) + { + $choose_height = (($j * 40) + 400); + $dtmf_list = ""; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + $j++; + } + + if ($SSallow_custom_dialplan > 0) + { + echo "\n"; + } + else + { + echo "\n"; + } + + echo "\n"; + echo "
    Menu ID: $menu_id $NWB#vicidial_call_menu-menu_id$NWE
    Menu Name: $NWB#vicidial_call_menu-menu_name$NWE
    Menu Prompt: audio chooser $NWB#vicidial_call_menu-menu_prompt$NWE
    Menu Timeout: $NWB#vicidial_call_menu-menu_timeout$NWE
    Menu Timeout Prompt: audio chooser $NWB#vicidial_call_menu-menu_timeout_prompt$NWE
    Menu Invalid Prompt: audio chooser $NWB#vicidial_call_menu-menu_invalid_prompt$NWE
    Menu Repeat: $NWB#vicidial_call_menu-menu_repeat$NWE
    Menu Time Check: $NWB#vicidial_call_menu-menu_time_check$NWE
    Call Time: $NWB#vicidial_call_menu-call_time_id$NWE
    Track Calls in Real-Time Report: $NWB#vicidial_call_menu-track_in_vdac$NWE
    Tracking Group: $NWB#vicidial_call_menu-tracking_group$NWE
    Call Menu Options:
    + Option: $dtmf_list   + Description: + Route: $NWB#vicidial_call_menu-option_value$NWE
    + + \n"; + + if ($option_route=='CALLMENU') + { + echo ""; + echo "Call Menu:"; + echo ""; + echo " \n"; + } + if ($option_route=='INGROUP') + { + if (strlen($option_route_value_context) < 10) + {$option_route_value_context = 'CID,LB,998,TESTCAMP,1';} + $IGoption_route_value_context = explode(",",$option_route_value_context); + $IGhandle_method = $IGoption_route_value_context[0]; + $IGsearch_method = $IGoption_route_value_context[1]; + $IGlist_id = $IGoption_route_value_context[2]; + $IGcampaign_id = $IGoption_route_value_context[3]; + $IGphone_code = $IGoption_route_value_context[4]; + echo ""; + echo "In-Group:"; + echo ""; + echo " "; + echo " "; + echo "   Handle Method: \n"; + echo "
    Search Method: \n"; + echo "   List ID: "; + echo "
    Campaign ID: \n"; + echo "   Phone Code: "; + } + if ($option_route=='DID') + { + $stmt="SELECT did_id from vicidial_inbound_dids where did_pattern='$option_route_value';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $did_id = $row[0]; + + echo ""; + echo "DID:"; + echo ""; + echo " \n"; + } + if ($option_route=='HANGUP') + { + echo "Audio File: audio chooser\n"; + } + if ($option_route=='EXTENSION') + { + echo "Extension:   Context: \n"; + } + if ($option_route=='PHONE') + { + echo "Phone: \n"; + } + if ($option_route=='VOICEMAIL') + { + echo "Voicemail Box: voicemail chooser\n"; + } + if ($option_route=='AGI') + { + echo "AGI: \n"; + } + + echo "
    +
     
    + Option: $dtmf_list   + Description: + Route: + $NWB#vicidial_call_menu-option_value$NWE
    + + \n"; + echo " +
     
    Custom Dialplan Entry:
    $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
    Custom Dialplan Entry: Disabled $NWB#vicidial_call_menu-custom_dialplan_entry$NWE
    \n"; + echo "

    \n"; + + echo "DIDS USING THIS CALL MENU:
    \n"; + echo "\n"; + + $stmt="SELECT did_id,did_pattern,did_description from vicidial_inbound_dids where menu_id='$menu_id' and did_route='CALLMENU';"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[1] $row[2]

    \n"; + + echo "CALL MENUS USING THIS CALL MENU:
    \n"; + echo "\n"; + + $stmt="SELECT distinct vm.menu_id,menu_name from vicidial_call_menu vm,vicidial_call_menu_options vmo where vm.menu_id=vmo.menu_id and option_route='CALLMENU' and option_route_value='$menu_id';"; + $rslt=mysql_query($stmt, $link); + $cms_to_print = mysql_num_rows($rslt); + $o=0; + while ($cms_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]
    \n"; + + + if ($LOGdelete_dids > 0) + { + echo "

    DELETE THIS CALL MENU\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this CALL MENU
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + +###################### +# ADD=31111 modify remote agents info in the system +###################### + +if ($ADD==31111) + { + if ($LOGmodify_remoteagents==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='$remote_agent_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
    MODIFY A REMOTE AGENTS ENTRY: $row[0]
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    User ID Start: (numbers only, incremented)$NWB#vicidial_remote_agents-user_start$NWE
    Number of Lines: (numbers only)$NWB#vicidial_remote_agents-number_of_lines$NWE
    Server IP: $NWB#vicidial_remote_agents-server_ip$NWE
    External Extension: (dial plan number dialed to reach agents)$NWB#vicidial_remote_agents-conf_exten$NWE
    Status: $NWB#vicidial_remote_agents-status$NWE
    Campaign: $NWB#vicidial_remote_agents-campaign_id$NWE
    Inbound Groups: \n"; + echo "$groups_list"; + echo "$NWB#vicidial_remote_agents-closer_campaigns$NWE
    \n"; + echo "NOTE: It can take up to 30 seconds for changes submitted on this screen to go live\n"; + + + if ($LOGdelete_remote_agents > 0) + { + echo "

    DELETE THIS REMOTE AGENT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this remote agent
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=311111 modify user group info in the system +###################### + +if ($ADD==311111) + { + if ($LOGmodify_usergroups==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT user_group,group_name,allowed_campaigns,qc_allowed_campaigns,qc_allowed_inbound_groups,group_shifts,forced_timeclock_login,shift_enforcement,agent_status_viewable_groups,agent_status_view_time from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $user_group = $row[0]; + $group_name = $row[1]; + $GROUP_shifts = $row[5]; + $forced_timeclock_login = $row[6]; + $shift_enforcement = $row[7]; + $VGROUP_vgroups = $row[8]; + $agent_status_view_time = $row[9]; + + echo ""; + + echo "
    MODIFY A USERS GROUP ENTRY\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + + echo "\n"; + + + echo "\n"; + + echo "\n"; + + if ($SSqc_features_active > 0) + { + echo "\n"; + echo "\n"; + } + + echo "\n"; + echo "
    Group: (no spaces or punctuation)$NWB#vicidial_user_groups-user_group$NWE
    Description: (description of group)$NWB#vicidial_user_groups-group_name$NWE
    Force Timeclock Login: $NWB#vicidial_user_groups-forced_timeclock_login$NWE
    Shift Enforcement: $NWB#vicidial_user_groups-shift_enforcement$NWE
    Allowed Campaigns:
    $NWB#vicidial_user_groups-allowed_campaigns$NWE
    \n"; + echo "$campaigns_list
     "; + echo "
    Group Shifts:
    $NWB#vicidial_user_groups-group_shifts$NWE
    \n"; + $stmt="SELECT shift_id,shift_name from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + $o=0; + while ($shifts_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $shift_id_value = $rowx[0]; + $shift_name_value = $rowx[1]; + echo " $shift_id_value - $shift_name_value
    \n"; + $o++; + } + echo "
     
    Agent Status Viewable Groups:
    $NWB#vicidial_user_groups-agent_status_viewable_groups$NWE
    \n"; + echo "ALL-GROUPS - All user groups in the system
    \n"; + echo "CAMPAIGN-AGENTS - All users logged into the same campaign as the agent
    \n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $view_groups_to_print = mysql_num_rows($rslt); + $o=0; + while ($view_groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $vgroups_id_value = $rowx[0]; + $vgroups_name_value = $rowx[1]; + echo " $vgroups_id_value - $vgroups_name_value
    \n"; + $o++; + } + echo "
     
    Agent Status View Time: $NWB#vicidial_user_groups-agent_status_view_time$NWE
    QC Allowed Campaigns:
    $NWB#vicidial_user_groups-qc_allowed_campaigns$NWE
    \n"; + echo "$qc_campaigns_list"; + echo "
     
    QC Allowed Inbound Groups:
    $NWB#vicidial_user_groups-qc_allowed_inbound_groups$NWE
    \n"; + echo "$qc_groups_list"; + echo "
     
    \n"; + + + ### list of users in this user group + + $active_confs = 0; + $stmt="SELECT user,full_name,user_level,active from vicidial_users where user_group='$user_group'"; + $rsltx=mysql_query($stmt, $link); + $users_to_print = mysql_num_rows($rsltx); + + echo "
    \n"; + echo "
    USERS WITHIN THIS USER GROUP: $users_to_print
    \n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($users_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
    USERFULL NAMELEVELACTIVE
    $rowx[0]$rowx[1]$rowx[2]$rowx[3]

    \n"; + + + echo "

    Click here to see all CallBack Holds in this user group

    \n"; + echo "

    Click here to see the Timeclock Status for this user group

    \n"; + + if ($LOGdelete_user_groups > 0) + { + echo "

    DELETE THIS USER GROUP\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this user group
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=3111111 modify script info in the system +###################### + +if ($ADD==3111111) + { + if ($LOGmodify_scripts==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo ""; + + $stmt="SELECT script_id,script_name,script_comments,script_text,active from vicidial_scripts where script_id='$script_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $script_name = $row[1]; + $script_comments = $row[2]; + $script_text = stripslashes($row[3]); + $active = $row[4]; + echo ""; + + echo "
    MODIFY A SCRIPT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Script ID: $script_id$NWB#vicidial_scripts-script_name$NWE
    Script Name: (title of the script)$NWB#vicidial_scripts-script_name$NWE
    Script Comments: $NWB#vicidial_scripts-script_comments$NWE
    Active: $NWB#vicidial_scripts-active$NWE
    Script Text:

    Preview Script
    "; + # BEGIN Insert Field + echo ""; + echo "
    "; + # END Insert Field + echo " $NWB#vicidial_scripts-script_text$NWE
    \n"; + + + + echo "


    \n"; + echo " CAMPAIGNS USING THIS SCRIPT:
    \n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where campaign_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]


    \n"; + echo " IN-GROUPS USING THIS SCRIPT:
    \n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where ingroup_script='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]


    \n"; + echo " LIST OVERRIDES USING THIS SCRIPT:
    \n"; + echo "\n"; + + $stmt="SELECT list_id,list_name from vicidial_lists where agent_script_override='$script_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]
    \n"; + + + if ($LOGdelete_scripts > 0) + { + echo "

    DELETE THIS SCRIPT\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this script\n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=31111111 modify filter info in the system +###################### + +if ($ADD==31111111) + { + if ($LOGmodify_filters==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name,lead_filter_comments,lead_filter_sql from vicidial_lead_filters where lead_filter_id='$lead_filter_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $lead_filter_name = $row[1]; + $lead_filter_comments = $row[2]; + $lead_filter_sql = stripslashes($row[3]); + echo ""; + + echo "
    MODIFY A FILTER\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Filter ID: $lead_filter_id$NWB#vicidial_lead_filters-lead_filter_id$NWE
    Filter Name: (short description of the filter)$NWB#vicidial_lead_filters-lead_filter_name$NWE
    Filter Comments: $NWB#vicidial_lead_filters-lead_filter_comments$NWE
    Filter SQL: $NWB#vicidial_lead_filters-lead_filter_sql$NWE
    \n"; + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + echo "

    "; + echo "
    TEST ON CAMPAIGN:
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + if ($LOGdelete_filters > 0) + { + echo "

    DELETE THIS FILTER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this filter\n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=321111111 modify call time definition info in the system +###################### + +if ($ADD==321111111) + { + if ($LOGmodify_call_times==1) + { + if ( ($stage=="ADD") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + if (eregi("\|$",$ct_state_call_times)) + {$ct_state_call_times = "$ct_state_call_times$state_rule\|";} + else + {$ct_state_call_times = "$ct_state_call_times\|$state_rule\|";} + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "State Rule Added: $state_rule
    \n"; + } + if ( ($stage=="REMOVE") and (strlen($state_rule)>0) ) + { + $stmt="SELECT ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $ct_state_call_times = $row[0]; + + $ct_state_call_times = eregi_replace("\|$state_rule\|",'|',$ct_state_call_times); + $stmt="UPDATE vicidial_call_times set ct_state_call_times='$ct_state_call_times' where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + echo "State Rule Removed: $state_rule
    \n"; + } + + $ADD=311111111; + } + else + { + echo "You are not authorized to view this page. Please go back."; + } + } + + +###################### +# ADD=311111111 modify call time definition info in the system +###################### + +if ($ADD==311111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $ct_srs=1; + $b=0; + $srs_SQL =''; + if (strlen($ct_state_call_times)>2) + { + $state_rules = explode('|',$ct_state_call_times); + $ct_srs = ((count($state_rules)) - 1); + } + echo "\n"; + echo "\n"; + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>0) + { + $stmt="SELECT state_call_time_state,state_call_time_name from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + echo "\n"; + $srs_SQL .= "'$state_rules[$b]',"; + $srs_state_SQL .= "'$row[0]',"; + } + $b++; + } + if (strlen($srs_SQL)>2) + { + $srs_SQL = "$srs_SQL''"; + $srs_state_SQL = "$srs_state_SQL''"; + $srs_SQL = "where state_call_time_id NOT IN($srs_SQL) and state_call_time_state NOT IN($srs_state_SQL)"; + } + else + {$srs_SQL='';} + $stmt="SELECT state_call_time_id,state_call_time_name from vicidial_state_call_times $srs_SQL order by state_call_time_id;"; + $rslt=mysql_query($stmt, $link); + $sct_to_print = mysql_num_rows($rslt); + $sct_list=''; + + $o=0; + while ($sct_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $sct_list .= "\n"; + $o++; + } + echo "\n"; + echo "\n"; + + echo "
    \n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times from vicidial_call_times where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $call_time_name = $row[1]; + $call_time_comments = $row[2]; + $ct_default_start = $row[3]; + $ct_default_stop = $row[4]; + $ct_sunday_start = $row[5]; + $ct_sunday_stop = $row[6]; + $ct_monday_start = $row[7]; + $ct_monday_stop = $row[8]; + $ct_tuesday_start = $row[9]; + $ct_tuesday_stop = $row[10]; + $ct_wednesday_start = $row[11]; + $ct_wednesday_stop = $row[12]; + $ct_thursday_start = $row[13]; + $ct_thursday_stop = $row[14]; + $ct_friday_start = $row[15]; + $ct_friday_stop = $row[16]; + $ct_saturday_start = $row[17]; + $ct_saturday_stop = $row[18]; + $ct_state_call_times = $row[19]; + + echo ""; + + echo "
    MODIFY A CALL TIME\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Call Time ID: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
    Call Time Name: (short description of the call time)$NWB#vicidial_call_times-call_time_name$NWE
    Call Time Comments: $NWB#vicidial_call_times-call_time_comments$NWE
    Default Start: Default Stop: $NWB#vicidial_call_times-ct_default_start$NWE
    Sunday Start: Sunday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Monday Start: Monday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Tuesday Start: Tuesday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Wednesday Start: Wednesday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Thursday Start: Thursday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Friday Start: Friday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Saturday Start: Saturday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Active State Call Time Definitions for this Record:  
    $state_rules[$b] - REMOVE $row[0] - $row[1]
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Add state call time rule:


    \n"; + echo "CAMPAIGNS USING THIS CALL TIME:
    \n"; + echo "\n"; + + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns where local_call_time='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]
    \n"; + echo "INBOUND GROUPS USING THIS CALL TIME:
    \n"; + echo "\n"; + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups where call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]
    \n"; + echo "

    \n"; + + if ($LOGdelete_call_times > 0) + { + echo "

    DELETE THIS CALL TIME DEFINITION\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this call time\n"; + } + } + else + { + echo "You are not authorized to view this page. Please go back."; + } + + } + + +###################### +# ADD=3111111111 modify state call time definition info in the system +###################### + +if ($ADD==3111111111) + { + if ($LOGmodify_call_times==1) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    \n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$call_time_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $state_call_time_state =$row[1]; + $call_time_name = $row[2]; + $call_time_comments = $row[3]; + $ct_default_start = $row[4]; + $ct_default_stop = $row[5]; + $ct_sunday_start = $row[6]; + $ct_sunday_stop = $row[7]; + $ct_monday_start = $row[8]; + $ct_monday_stop = $row[9]; + $ct_tuesday_start = $row[10]; + $ct_tuesday_stop = $row[11]; + $ct_wednesday_start = $row[12]; + $ct_wednesday_stop = $row[13]; + $ct_thursday_start = $row[14]; + $ct_thursday_stop = $row[15]; + $ct_friday_start = $row[16]; + $ct_friday_stop = $row[17]; + $ct_saturday_start = $row[18]; + $ct_saturday_stop = $row[19]; + + echo ""; + + echo "
    MODIFY A STATE CALL TIME
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Call Time ID: $call_time_id$NWB#vicidial_call_times-call_time_id$NWE
    State Call Time State: $NWB#vicidial_call_times-state_call_time_state$NWE
    State Call Time Name: (short description of the call time)$NWB#vicidial_call_times-call_time_name$NWE
    State Call Time Comments: $NWB#vicidial_call_times-call_time_comments$NWE
    Default Start: Default Stop: $NWB#vicidial_call_times-ct_default_start$NWE
    Sunday Start: Sunday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Monday Start: Monday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Tuesday Start: Tuesday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Wednesday Start: Wednesday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Thursday Start: Thursday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Friday Start: Friday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE
    Saturday Start: Saturday Stop: $NWB#vicidial_call_times-ct_sunday_start$NWE


    \n"; + echo "CALL TIMES USING THIS STATE CALL TIME:
    \n"; + echo "\n"; + + $stmt="SELECT call_time_id,call_time_name from vicidial_call_times where ct_state_call_times LIKE \"%|$call_time_id|%\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]
    \n"; + echo "

    \n"; + + if ($LOGdelete_call_times > 0) + { + echo "

    DELETE THIS STATE CALL TIME DEFINITION\n"; + } + } + else + { + echo "You are not authorized to view this page. Please go back."; + } + } + + +###################### +# ADD=331111111 modify shift definition info in the system +###################### + +if ($ADD==331111111) + { + if ($LOGmodify_call_times==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts where shift_id='$shift_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $shift_name = $row[1]; + $shift_start_time = $row[2]; + $shift_length = $row[3]; + $shift_weekdays = $row[4]; + + $shift_start_hour = substr($shift_start_time,0,2); + $shift_start_min = substr($shift_start_time,2,2); + $shift_length_hour = substr($shift_length,0,2); + $shift_length_min = substr($shift_length,3,2); + $shift_end_hour = ($shift_start_hour + $shift_length_hour); + $shift_end_min = ($shift_start_min + $shift_length_min); + if ($shift_end_min >=60) + { + $shift_end_min = ($shift_end_min - 60); + $shift_end_hour++; + } + if ($shift_end_hour >=24) + { + $shift_end_hour = ($shift_end_hour - 24); + } + $shift_end_hour = sprintf("%02s", $shift_end_hour); + $shift_end_min = sprintf("%02s", $shift_end_min); + $shift_end = "$shift_end_hour$shift_end_min"; + + echo ""; + + echo "
    MODIFY A SHIFT\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Shift ID: $shift_id
    Shift Name: (short description of the shift)$NWB#vicidial_shifts-shift_name$NWE
    Shift Start Time: \n"; + echo "   Shift End Time: \n"; + echo " $NWB#vicidial_shifts-shift_start_time$NWE
    Shift Length: $NWB#vicidial_shifts-shift_length$NWE
    Shift Weekdays:
    $NWB#vicidial_shifts-shift_weekdays$NWE
    \n"; + echo "Sunday
    \n"; + echo "Monday
    \n"; + echo "Tuesday
    \n"; + echo "Wednesday
    \n"; + echo "Thursday
    \n"; + echo "Friday
    \n"; + echo "Saturday
    \n"; + echo "
    \n"; + + echo "


    \n"; + echo "USER GROUPS USING THIS SHIFT:
    \n"; + echo "\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups where group_shifts LIKE\"% $shift_id %\";"; + $rslt=mysql_query($stmt, $link); + $camps_to_print = mysql_num_rows($rslt); + $o=0; + while ($camps_to_print > $o) + { + $row=mysql_fetch_row($rslt); + echo "\n"; + $o++; + } + + echo "
    $row[0] $row[1]
    \n"; + echo "

    \n"; + + if ($LOGdelete_call_times > 0) + { + echo "

    DELETE THIS SHIFT DEFINITION\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this shift\n"; + } + } + else + { + echo "You are not authorized to view this page. Please go back."; + } + + } + + +###################### +# ADD=31111111111 modify phone record in the system +###################### + +if ($ADD==31111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT extension,dialplan_number,voicemail_id,phone_ip,computer_ip,server_ip,login,pass,status,active,phone_type,fullname,company,picture,messages,old_messages,protocol,local_gmt,ASTmgrUSERNAME,ASTmgrSECRET,login_user,login_pass,login_campaign,park_on_extension,conf_on_extension,VICIDIAL_park_on_extension,VICIDIAL_park_on_filename,monitor_prefix,recording_exten,voicemail_exten,voicemail_dump_exten,ext_context,dtmf_send_extension,call_out_number_group,client_browser,install_directory,local_web_callerID_URL,VICIDIAL_web_URL,AGI_call_logging_enabled,user_switching_enabled,conferencing_enabled,admin_hangup_enabled,admin_hijack_enabled,admin_monitor_enabled,call_parking_enabled,updater_check_enabled,AFLogging_enabled,QUEUE_ACTION_enabled,CallerID_popup_enabled,voicemail_button_enabled,enable_fast_refresh,fast_refresh_rate,enable_persistant_mysql,auto_dial_next_number,VDstop_rec_after_each_call,DBX_server,DBX_database,DBX_user,DBX_pass,DBX_port,DBY_server,DBY_database,DBY_user,DBY_pass,DBY_port,outbound_cid,enable_sipsak_messages,email,template_id,conf_override,phone_context,phone_ring_timeout,conf_secret,delete_vm_after_email from phones where extension='$extension' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
    MODIFY A PHONE RECORD: $row[1]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    Phone extension: $NWB#phones-extension$NWE (Agent Screen Phone Login)
    Dial Plan Number: (digits only)$NWB#phones-dialplan_number$NWE
    Voicemail Box: (digits only)$NWB#phones-voicemail_id$NWE
    Outbound CallerID: (digits only)$NWB#phones-outbound_cid$NWE
    Phone IP address: (optional)$NWB#phones-phone_ip$NWE
    Computer IP address: (optional)$NWB#phones-computer_ip$NWE
    Server IP: $NWB#phones-server_ip$NWE
    Login: $NWB#phones-login$NWE
    Password: $NWB#phones-pass$NWE
    Status: $NWB#phones-status$NWE
    Active Account: $NWB#phones-active$NWE
    Phone Type: $NWB#phones-phone_type$NWE
    Full Name: $NWB#phones-fullname$NWE
    Email: $NWB#phones-email$NWE
    Delete Voicemail After Email: $NWB#phones-delete_vm_after_email$NWE
    Company: $NWB#phones-company$NWE
    Picture: $NWB#phones-picture$NWE
    New Messages: $row[14]$NWB#phones-messages$NWE
    Old Messages: $row[15]$NWB#phones-old_messages$NWE
    Client Protocol: $NWB#phones-protocol$NWE
    Local GMT: (Do NOT Adjust for DST)$NWB#phones-local_gmt$NWE
    Phone Ring Timeout: $NWB#phones-phone_ring_timeout$NWE
    Manager Login: $NWB#phones-ASTmgrUSERNAME$NWE
    Manager Secret: $NWB#phones-ASTmgrSECRET$NWE
    VICIDIAL Default User: $NWB#phones-login_user$NWE
    VICIDIAL Default Pass: $NWB#phones-login_pass$NWE
    VICIDIAL Default Campaign: $NWB#phones-login_campaign$NWE
    Park Exten: $NWB#phones-park_on_extension$NWE
    Conf Exten: $NWB#phones-conf_on_extension$NWE
    VICIDIAL Park Exten: $NWB#phones-VICIDIAL_park_on_extension$NWE
    VICIDIAL Park File: $NWB#phones-VICIDIAL_park_on_filename$NWE
    Monitor Prefix: $NWB#phones-monitor_prefix$NWE
    Recording Exten: $NWB#phones-recording_exten$NWE
    VMailMain Exten: $NWB#phones-voicemail_exten$NWE
    VMailDump Exten: $NWB#phones-voicemail_dump_exten$NWE
    Exten Context: $NWB#phones-ext_context$NWE
    Phone Context: $NWB#phones-phone_context$NWE
    Conf File Secret: $NWB#phones-conf_secret$NWE
    DTMFSend Channel: $NWB#phones-dtmf_send_extension$NWE
    Outbound Call Group: $NWB#phones-call_out_number_group$NWE
    Browser Location: $NWB#phones-client_browser$NWE
    Install Directory: $NWB#phones-install_directory$NWE
    CallerID URL: $NWB#phones-local_web_callerID_URL$NWE
    VICIDIAL Default URL: $NWB#phones-VICIDIAL_web_URL$NWE
    Call Logging: $NWB#phones-AGI_call_logging_enabled$NWE
    User Switching: $NWB#phones-user_switching_enabled$NWE
    Conferencing: $NWB#phones-conferencing_enabled$NWE
    Admin Hang Up: $NWB#phones-admin_hangup_enabled$NWE
    Admin Hijack: $NWB#phones-admin_hijack_enabled$NWE
    Admin Monitor: $NWB#phones-admin_monitor_enabled$NWE
    Call Park: $NWB#phones-call_parking_enabled$NWE
    Updater Check: $NWB#phones-updater_check_enabled$NWE
    AF Logging: $NWB#phones-AFLogging_enabled$NWE
    Queue Enabled: $NWB#phones-QUEUE_ACTION_enabled$NWE
    CallerID Popup: $NWB#phones-CallerID_popup_enabled$NWE
    VMail Button: $NWB#phones-voicemail_button_enabled$NWE
    Fast Refresh: $NWB#phones-enable_fast_refresh$NWE
    Fast Refresh Rate: (in ms)$NWB#phones-fast_refresh_rate$NWE
    Persistant MySQL: $NWB#phones-enable_persistant_mysql$NWE
    Auto Dial Next Number: $NWB#phones-auto_dial_next_number$NWE
    Stop Rec after each call: $NWB#phones-VDstop_rec_after_each_call$NWE
    Enable SIPSAK Messages: $NWB#phones-enable_sipsak_messages$NWE
    DBX Server: (Primary DB Server)$NWB#phones-DBX_server$NWE
    DBX Database: (Primary Server Database)$NWB#phones-DBX_database$NWE
    DBX User: (Primary DB Login)$NWB#phones-DBX_user$NWE
    DBX Pass: (Primary DB Secret)$NWB#phones-DBX_pass$NWE
    DBX Port: (Primary DB Port)$NWB#phones-DBX_port$NWE
    DBY Server: (Secondary DB Server)$NWB#phones-DBY_server$NWE
    DBY Database: (Secondary Server Database)$NWB#phones-DBY_database$NWE
    DBY User: (Secondary DB Login)$NWB#phones-DBY_user$NWE
    DBY Pass: (Secondary DB Secret)$NWB#phones-DBY_pass$NWE
    DBY Port: (Secondary DB Port)$NWB#phones-DBY_port$NWE
    Template ID: $NWB#phones-template_id$NWE
    Conf Override: $NWB#phones-conf_override$NWE
    \n"; + + echo "

    Click here for phone stats\n"; + + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS PHONE\n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=32111111111 modify phone alias record in the system +###################### + +if ($ADD==32111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias where alias_id='$alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
    MODIFY A PHONE ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Alias ID: $row[0] $NWB#phones-alias_id$NWE
    Alias Name: $NWB#phones-alias_name$NWE
    Phones Logins List: (comma separated)$NWB#phones-logins_list$NWE
    \n"; + + + ### list of phones in this phones alias + $phone_alias_SQL = ereg_replace(',',"','",$row[2]); + + echo "
    \n"; + echo "
    PHONES WITHIN THIS PHONES ALIAS:
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT login,extension,server_ip,protocol,phone_ip from phones where login IN ('$phone_alias_SQL');"; + if ($DB) {echo "|$stmt|";} + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + + $o=0; + while ($lists_to_print > $o) { + $rowx=mysql_fetch_row($rsltx); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    LOGINEXTENSIONSERVERPROTOCOLIP
    $rowx[0]$rowx[1]$rowx[2]$rowx[3]$rowx[4]

    \n"; + + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS PHONE ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this phone alias
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=33111111111 modify group alias record in the system +###################### + +if ($ADD==33111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias where group_alias_id='$group_alias_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + echo "
    MODIFY A GROUP ALIAS RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Group Alias ID: $row[0] $NWB#phones-group_alias_id$NWE
    Group Alias Name: $NWB#phones-group_alias_name$NWE
    CallerID Number: $NWB#phones-caller_id_number$NWE
    CallerID Name: $NWB#phones-caller_id_name$NWE
    Active:
    \n"; + + + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS GROUP ALIAS\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this group alias
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=311111111111 modify server record in the system +###################### + +if ($ADD==311111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,local_gmt,voicemail_dump_exten,answer_transfer_agent,ext_context,sys_perf_log,vd_server_logs,agi_output,vicidial_balance_active,balance_trunks_offlimits,recording_web_link,alt_server_ip,active_asterisk_server,generate_vicidial_conf,rebuild_conf_files,outbound_calls_per_second,sysload,channels_total,cpu_idle_percent,disk_usage,sounds_update,vicidial_recording_limit,carrier_logging_active,vicidial_balance_rank,rebuild_music_on_hold,active_agent_login_server,conf_secret from servers where server_id='$server_id' or server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $server_id = $row[0]; + $server_description = $row[1]; + $server_ip = $row[2]; + $active = $row[3]; + $asterisk_version = $row[4]; + $max_vicidial_trunks = $row[5]; + $telnet_host = $row[6]; + $telnet_port = $row[7]; + $ASTmgrUSERNAME = $row[8]; + $ASTmgrSECRET = $row[9]; + $ASTmgrUSERNAMEupdate = $row[10]; + $ASTmgrUSERNAMElisten = $row[11]; + $ASTmgrUSERNAMEsend = $row[12]; + $local_gmt = $row[13]; + $voicemail_dump_exten = $row[14]; + $answer_transfer_agent = $row[15]; + $ext_context = $row[16]; + $sys_perf_log = $row[17]; + $vd_server_logs = $row[18]; + $agi_output = $row[19]; + $vicidial_balance_active = $row[20]; + $balance_trunks_offlimits = $row[21]; + $recording_web_link = $row[22]; + $alt_server_ip = $row[23]; + $active_asterisk_server = $row[24]; + $generate_vicidial_conf = $row[25]; + $rebuild_conf_files = $row[26]; + $outbound_calls_per_second = $row[27]; + $sysload = $row[28]; + $channels_total = $row[29]; + $cpu_idle_percent = $row[30]; + $disk_usage = $row[31]; + $sounds_update = $row[32]; + $vicidial_recording_limit = $row[33]; + $carrier_logging_active = $row[34]; + $vicidial_balance_rank = $row[35]; + $rebuild_music_on_hold = $row[36]; + $active_agent_login_server = $row[37]; + $conf_secret = $row[38]; + + $cpu = (100 - $cpu_idle_percent); + $disk_usage = preg_replace("/ /"," - ",$disk_usage); + $disk_usage = preg_replace("/\|/","%     ",$disk_usage); + + echo "
    MODIFY A SERVER RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
    Server ID: $NWB#servers-server_id$NWE
    Server Description: $NWB#servers-server_description$NWE
    Server IP Address: $NWB#servers-server_ip$NWE
    Active: $NWB#servers-active$NWE
    System Load: $sysload - $cpu%   $NWB#servers-sysload$NWE
    Live Channels: $channels_total   $NWB#servers-channels_total$NWE
    Disk Usage: $disk_usage   $NWB#servers-disk_usage$NWE
    Asterisk Version: $NWB#servers-asterisk_version$NWE
    Max VICIDIAL Trunks: $NWB#servers-max_vicidial_trunks$NWE
    Max Calls per Second: $NWB#servers-outbound_calls_per_second$NWE
    VICIDIAL Balance Dialing: $NWB#servers-vicidial_balance_active$NWE
    VICIDIAL Balance Rank: $NWB#servers-vicidial_balance_rank$NWE
    VICIDIAL Balance Offlimits: $NWB#servers-balance_trunks_offlimits$NWE
    Telnet Host: $NWB#servers-telnet_host$NWE
    Telnet Port: $NWB#servers-telnet_port$NWE
    Manager User: $NWB#servers-ASTmgrUSERNAME$NWE
    Manager Secret: $NWB#servers-ASTmgrSECRET$NWE
    Manager Update User: $NWB#servers-ASTmgrUSERNAMEupdate$NWE
    Manager Listen User: $NWB#servers-ASTmgrUSERNAMElisten$NWE
    Manager Send User: $NWB#servers-ASTmgrUSERNAMEsend$NWE
    Conf File Secret: $NWB#servers-conf_secret$NWE
    Local GMT: (Do NOT Adjust for DST)$NWB#servers-local_gmt$NWE
    VMail Dump Exten: $NWB#servers-voicemail_dump_exten$NWE
    VICIDIAL AD extension: $NWB#servers-answer_transfer_agent$NWE
    Default Context: $NWB#servers-ext_context$NWE
    System Performance: $NWB#servers-sys_perf_log$NWE
    Server Logs: $NWB#servers-vd_server_logs$NWE
    AGI Output: $NWB#servers-agi_output$NWE
    Carrier Logging Active: $NWB#servers-carrier_logging_active$NWE
    Recording Web Link: $NWB#servers-recording_web_link$NWE
    Alternate Recording Server IP: $NWB#servers-alt_server_ip$NWE
    Active Asterisk Server: $NWB#servers-active_asterisk_server$NWE
    Active Agent Server: $NWB#servers-active_agent_login_server$NWE
    Generate conf files: $NWB#servers-generate_vicidial_conf$NWE
    Rebuild conf files: $NWB#servers-rebuild_conf_files$NWE
    Rebuild Music On Hold: $NWB#servers-rebuild_music_on_hold$NWE
    Sounds Update: $NWB#servers-sounds_update$NWE
    ViciDial Recording Limit: $NWB#servers-vicidial_recording_limit$NWE
    \n"; + + + ### vicidial server trunk records for this server + echo "

    VICIDIAL TRUNKS FOR THIS SERVER:   $NWB#vicidial_server_trunks$NWE
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT server_ip,campaign_id,dedicated_trunks,trunk_restriction from vicidial_server_trunks where server_ip='$server_ip' order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $recycle_to_print = mysql_num_rows($rslt); + $o=0; + while ($recycle_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
    CAMPAIGN TRUNKS RESTRICTION DELETE
    $rowx[1]
    \n"; + echo "\n"; + echo "\n"; + echo "
    DELETE
    \n"; + + echo "
    ADD NEW SERVER VICIDIAL TRUNK RECORD
    \n"; + echo "\n"; + echo "\n"; + echo "TRUNKS:
    \n"; + echo "CAMPAIGN:
    \n"; + echo "RESTRICTION:
    \n"; + echo "
    \n"; + + echo "

    \n"; + + + ### list of carriers on this server + echo "
    \n"; + echo "
    CARRIERS WITHIN THIS SERVER:
    \n"; + echo "\n"; + echo "\n"; + + $active_carriers = 0; + $inactive_carriers = 0; + $stmt="SELECT carrier_id,carrier_name,registration_string,active from vicidial_server_carriers where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($carriers_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[3])) {$active_carriers++;} + if (ereg("N", $rowx[3])) {$inactive_carriers++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    CARRIER IDNAMEREGISTRATIONACTIVE
    $rowx[0]$rowx[1]$rowx[2]$rowx[3]

    \n"; + + + ### list of phones on this server + echo "
    \n"; + echo "
    PHONES WITHIN THIS SERVER:
    \n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname from phones where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    EXTENSIONNAMEACTIVE
    $rowx[0]$rowx[2]$rowx[1]

    \n"; + + + ### list of conferences on this server + echo "
    \n"; + echo "
    CONFERENCES WITHIN THIS SERVER:
    \n"; + echo "\n"; + echo "\n"; + + $active_confs = 0; + $stmt="SELECT conf_exten,extension from conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_confs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    CONFERENCEEXTENSION
    $rowx[0]$rowx[2]

    \n"; + + + ### list of vicidial conferences on this server + echo "
    \n"; + echo "
    VICIDIAL CONFERENCES WITHIN THIS SERVER:
    \n"; + echo "\n"; + echo "\n"; + + $active_vdconfs = 0; + $stmt="SELECT conf_exten,extension from vicidial_conferences where server_ip='$row[2]'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + $active_vdconfs++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    VD CONFERENCEEXTENSION
    $rowx[0]$rowx[2]

    \n"; + + + echo "
    \n"; + + $camp_lists = eregi_replace(".$","",$camp_lists); + echo "This server has $active_carriers active carriers and $inactive_carriers inactive carriers

    \n"; + echo "This server has $active_phones active phones and $inactive_phones inactive phones

    \n"; + echo "This server has $active_confs active conferences

    \n"; + echo "This server has $active_vdconfs active vicidial conferences

    \n"; + echo "
    \n"; + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS SERVER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this server
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=331111111111 modify conf template record in the system +###################### + +if ($ADD==331111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT template_id,template_name,template_contents from vicidial_conf_templates where template_id='$template_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $template_id = $row[0]; + $template_name = $row[1]; + $template_contents = $row[2]; + + echo "
    MODIFY A CONF TEMPLATE RECORD: $row[0]
    \n"; + echo "\n"; + echo "\n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Template ID: $template_id
    Template Name: $NWB#vicidial_conf_templates-template_name$NWE
    Template Contents: $NWB#vicidial_conf_templates-template_contents$NWE
    \n"; + + echo "
    \n"; + + ### list of phones using this conf template + echo "
    \n"; + echo "
    PHONES USING THIS CONF TEMPLATE:
    \n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT extension,active,fullname,server_ip from phones where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    EXTENSIONNAMESERVERACTIVE
    $rowx[0]$rowx[2]$rowx[3]$rowx[1]

    \n"; + + ### list of carriers using this conf template + echo "
    \n"; + echo "
    CARRIERS USING THIS CONF TEMPLATE:
    \n"; + echo "\n"; + echo "\n"; + + $active_phones = 0; + $inactive_phones = 0; + $stmt="SELECT carrier_id,active,carrier_name,server_ip from vicidial_server_carriers where template_id='$template_id'"; + $rsltx=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rsltx); + $camp_lists=''; + + $o=0; + while ($lists_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + $o++; + if (ereg("Y", $rowx[1])) {$active_phones++; $camp_lists .= "'$rowx[0]',";} + if (ereg("N", $rowx[1])) {$inactive_phones++;} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + } + + echo "
    CARRIERNAMESERVERACTIVE
    $rowx[0]$rowx[2]$rowx[3]$rowx[1]

    \n"; + + + + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS CONF TEMPLATE\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this conf template
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=341111111111 modify carrier record in the system +###################### + +if ($ADD==341111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,registration_string,template_id,account_entry,protocol,globals_string,dialplan_entry,server_ip,active,carrier_description from vicidial_server_carriers where carrier_id='$carrier_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $carrier_id = $row[0]; + $carrier_name = $row[1]; + $registration_string = $row[2]; + $template_id = $row[3]; + $account_entry = $row[4]; + $protocol = $row[5]; + $globals_string = $row[6]; + $dialplan_entry = $row[7]; + $server_ip = $row[8]; + $active = $row[9]; + $carrier_description = $row[10]; + + echo "
    MODIFY A CARRIER RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Carrier ID: $carrier_id
    Carrier Name: $NWB#vicidial_server_carriers-carrier_name$NWE
    Carrier Description: $NWB#vicidial_server_carriers-carrier_description$NWE
    Registration String: $NWB#vicidial_server_carriers-registration_string$NWE
    Template ID: $NWB#vicidial_server_carriers-template_id$NWE
    Account Entry: $NWB#vicidial_server_carriers-account_entry$NWE
    Protocol: $NWB#vicidial_server_carriers-protocol$NWE
    Globals String: $NWB#vicidial_server_carriers-globals_string$NWE
    Dialplan Entry: $NWB#vicidial_server_carriers-dialplan_entry$NWE
    Server IP: $NWB#vicidial_server_carriers-server_ip$NWE
    Active: $NWB#vicidial_server_carriers-active$NWE
    \n"; + + echo "
    \n"; + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS CARRIER\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this carrier
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=351111111111 modify tts record in the system +###################### + +if ($ADD==351111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts where tts_id='$tts_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $tts_id = $row[0]; + $tts_name = $row[1]; + $active = $row[2]; + $tts_text = $row[3]; + + echo "
    MODIFY A TTS RECORD: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    TTS ID: $tts_id
    TTS Name: $NWB#vicidial_tts_prompts-tts_name$NWE
    Active: $NWB#vicidial_tts_prompts-active$NWE
    TTS Text: $NWB#vicidial_tts_prompts-tts_text$NWE
    \n"; + + echo "
    \n"; + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS TTS ENTRY\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this TTS entry
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=361111111111 modify music on hold record in the system +###################### + +if ($ADD==361111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where moh_id='$moh_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $moh_id = $row[0]; + $moh_name = $row[1]; + $active = $row[2]; + $random = $row[3]; + + echo "
    MODIFY A MUSIC ON HOLD RECORD: $moh_id\n"; + echo "\n"; + echo "\n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    Music On Hold ID: $moh_id
    Music On Hold Name: $NWB#vicidial_music_on_hold-moh_name$NWE
    Active: $NWB#vicidial_music_on_hold-active$NWE
    Random Order: $NWB#vicidial_music_on_hold-random$NWE
    Audio Files: \n"; + ##### get files listing for rank/delete options + $stmt="SELECT filename,rank from vicidial_music_on_hold_files where moh_id='$moh_id' order by rank;"; + $rsltx=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rsltx); + $ranks = ($mohfiles_to_print + 2); + $o=0; + while ($mohfiles_to_print > $o) + { + $rowx=mysql_fetch_row($rsltx); + echo "Rank: \n"; + + echo "   $rowx[0] - DELETE
    \n"; + $o++; + } + + echo "
    Add An Audio File: audio chooser $NWB#vicidial_music_on_hold-filename$NWE
    \n"; + + echo "
    \n"; + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE MUSIC ON HOLD ENTRY\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this Music On Hold entry
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=371111111111 modify voicemail box in the system +###################### + +if ($ADD==371111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT voicemail_id,pass,fullname,active,email,messages,old_messages,delete_vm_after_email from vicidial_voicemail where voicemail_id='$voicemail_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $voicemail_id = $row[0]; + $pass = $row[1]; + $fullname = $row[2]; + $active = $row[3]; + $email = $row[4]; + $messages = $row[5]; + $old_messages = $row[6]; + $delete_vm_after_email = $row[7]; + + echo "
    MODIFY A VOICEMAIL BOX: $tts_id\n"; + echo "\n"; + echo "\n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    Voicemail ID: $voicemail_id
    Password: $NWB#vicidial_voicemail-pass$NWE
    Name: $NWB#vicidial_voicemail-fullname$NWE
    Email: $NWB#vicidial_voicemail-email$NWE
    Active: $NWB#vicidial_voicemail-active$NWE
    Delete Voicemail After Email: $NWB#vicidial_voicemail-delete_vm_after_email$NWE
    New Messages: $messages
    Old Messages: $old_messages
    \n"; + + echo "
    \n"; + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS VOICEMAIL BOX\n"; + } + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to this voicemail box
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=3111111111111 modify conference record in the system +###################### + +if ($ADD==3111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
    MODIFY A CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Conference: $NWB#conferences-conf_exten$NWE
    Server IP: $NWB#conferences-server_ip$NWE
    Current Extension:
    \n"; + + echo "
    \n"; + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS CONFERENCE\n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +###################### +# ADD=31111111111111 modify vicidial conference record in the system +###################### + +if ($ADD==31111111111111) + { + if ($LOGast_admin_access==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension,leave_3way,leave_3way_datetime from vicidial_conferences where conf_exten='$conf_exten' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $conf_exten = $row[0]; + $server_ip = $row[1]; + + echo "
    MODIFY A VICIDIAL CONFERENCE RECORD: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Conference: $NWB#conferences-conf_exten$NWE
    Server IP: $NWB#conferences-server_ip$NWE
    Current Extension:
    \n"; + + echo "
    \n"; + if ($LOGast_delete_phones > 0) + { + echo "

    DELETE THIS VICIDIAL CONFERENCE\n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + +###################### +# ADD=311111111111111 modify vicidial system settings +###################### + +if ($ADD==311111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT version,install_date,use_non_latin,webroot_writable,enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_url,queuemetrics_log_id,queuemetrics_eq_prepend,vicidial_agent_disable,allow_sipsak_messages,admin_home_url,enable_agc_xfer_log,db_schema_version,auto_user_add_value,timeclock_end_of_day,timeclock_last_reset_date,vdc_header_date_format,vdc_customer_date_format,vdc_header_phone_format,vdc_agent_api_active,qc_last_pull_time,enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url,qc_features_active,outbound_autodial_active,outbound_calls_per_second,enable_tts_integration,agentonly_callback_campaign_lock,sounds_central_control_active,sounds_web_server,sounds_web_directory,active_voicemail_server,auto_dial_limit,user_territories_active,allow_custom_dialplan,db_schema_update_date,enable_second_webform from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $version = $row[0]; + $install_date = $row[1]; + $use_non_latin = $row[2]; + $webroot_writable = $row[3]; + $enable_queuemetrics_logging = $row[4]; + $queuemetrics_server_ip = $row[5]; + $queuemetrics_dbname = $row[6]; + $queuemetrics_login = $row[7]; + $queuemetrics_pass = $row[8]; + $queuemetrics_url = $row[9]; + $queuemetrics_log_id = $row[10]; + $queuemetrics_eq_prepend = $row[11]; + $vicidial_agent_disable = $row[12]; + $allow_sipsak_messages = $row[13]; + $admin_home_url = $row[14]; + $enable_agc_xfer_log = $row[15]; + $db_schema_version = $row[16]; + $auto_user_add_value = $row[17]; + $timeclock_end_of_day = $row[18]; + $timeclock_last_reset_date = $row[19]; + $vdc_header_date_format = $row[20]; + $vdc_customer_date_format = $row[21]; + $vdc_header_phone_format = $row[22]; + $vdc_agent_api_active = $row[23]; + $qc_last_pull_time = $row[24]; + $enable_vtiger_integration = $row[25]; + $vtiger_server_ip = $row[26]; + $vtiger_dbname = $row[27]; + $vtiger_login = $row[28]; + $vtiger_pass = $row[29]; + $vtiger_url = $row[30]; + $qc_features_active = $row[31]; + $outbound_autodial_active = $row[32]; + $outbound_calls_per_second = $row[33]; + $enable_tts_integration = $row[34]; + $agentonly_callback_campaign_lock = $row[35]; + $sounds_central_control_active = $row[36]; + $sounds_web_server = $row[37]; + $sounds_web_directory = $row[38]; + $active_voicemail_server = $row[39]; + $auto_dial_limit = $row[40]; + $user_territories_active = $row[41]; + $allow_custom_dialplan = $row[42]; + $db_schema_update_date = $row[43]; + $enable_second_webform = $row[44]; + + echo "
    MODIFY VICIDIAL SYSTEM SETTINGS\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    Version: $version
    DB Schema Version: $db_schema_version
    DB Schema Update Date: $db_schema_update_date
    Auto User-add Value: $auto_user_add_value
    Install Date: $install_date
    Use Non-Latin: $NWB#settings-use_non_latin$NWE
    Webroot Writable: $NWB#settings-webroot_writable$NWE
    VICIDIAL Agent Disable Display: $NWB#settings-vicidial_agent_disable$NWE
    Allow SIPSAK Messages: $NWB#settings-allow_sipsak_messages$NWE
    Admin Home URL: $NWB#settings-admin_home_url$NWE
    Enable Agent Transfer Logfile: $NWB#settings-enable_agc_xfer_log$NWE
    Timeclock End Of Day: $NWB#settings-timeclock_end_of_day$NWE
    Timeclock Last Auto Logout: $timeclock_last_reset_date
    Agent Screen Header Date Format: $NWB#settings-vdc_header_date_format$NWE
    Agent Screen Customer Date Format: $NWB#settings-vdc_customer_date_format$NWE
    Agent Screen Customer Phone Format: $NWB#settings-vdc_header_phone_format$NWE
    Agent API Active: $NWB#settings-vdc_agent_api_active$NWE
    Agent Only Callback Campaign Lock: $NWB#settings-agentonly_callback_campaign_lock$NWE
    Central Sound Control Active: $NWB#settings-sounds_central_control_active$NWE
    Sounds Web Server: $NWB#settings-sounds_web_server$NWE
    Sounds Web Directory: $sounds_web_directory $NWB#settings-sounds_web_directory$NWE
    Active Voicemail Server: $NWB#settings-active_voicemail_server$NWE
    Auto Dial Limit: $NWB#settings-auto_dial_limit$NWE
    Outbound Auto-Dial Active: $NWB#settings-outbound_autodial_active$NWE
    Max FILL Calls per Second: $NWB#settings-outbound_calls_per_second$NWE
    Allow Custom Dialplan Entries: $NWB#settings-allow_custom_dialplan$NWE
    User Territories Active: $NWB#settings-user_territories_active$NWE
    Enable Second Webform: $NWB#settings-enable_second_webform$NWE
    Enable TTS Integration: $NWB#settings-enable_tts_integration$NWE
    QC Features Active: $NWB#settings-qc_features_active$NWE
    QC Last Pull Time: $qc_last_pull_time
    Enable QueueMetrics Logging: $NWB#settings-enable_queuemetrics_logging$NWE
    QueueMetrics Server IP: $NWB#settings-queuemetrics_server_ip$NWE
    QueueMetrics DB Name: $NWB#settings-queuemetrics_dbname$NWE
    QueueMetrics DB Login: $NWB#settings-queuemetrics_login$NWE
    QueueMetrics DB Password: $NWB#settings-queuemetrics_pass$NWE
    QueueMetrics URL: $NWB#settings-queuemetrics_url$NWE
    QueueMetrics Log ID: $NWB#settings-queuemetrics_log_id$NWE
    QueueMetrics EnterQueue Prepend: $NWB#settings-queuemetrics_eq_prepend$NWE
    Enable Vtiger Integration: $NWB#settings-enable_vtiger_integration$NWE\n"; + echo "   Click here to Synchronize users with Vtiger\n"; + echo "
    Vtiger DB Server IP: $NWB#settings-vtiger_server_ip$NWE
    Vtiger DB Name: $NWB#settings-vtiger_dbname$NWE
    Vtiger DB Login: $NWB#settings-vtiger_login$NWE
    Vtiger DB Password: $NWB#settings-vtiger_pass$NWE
    Vtiger URL: $NWB#settings-vtiger_url$NWE
    \n"; + echo "\n"; + if ($LOGuser_level >= 9) + { + echo "

    Click here to see Admin chages to the system settings
    \n"; + } + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + + + + +###################### +# ADD=321111111111111 modify vicidial system statuses +###################### + +if ($ADD==321111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + echo "
    \n"; + echo "VICIDIAL STATUSES WITHIN THIS SYSTEM:   $NWB#vicidial_statuses$NWE
    \n"; + echo "\n"; + echo "\n"; + + ##### get status category listings for dynamic pulldown + $stmt="SELECT vsc_id,vsc_name from vicidial_status_categories order by vsc_id desc"; + $rslt=mysql_query($stmt, $link); + $cats_to_print = mysql_num_rows($rslt); + $cats_list=""; + + $o=0; + while ($cats_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $cats_list .= "\n"; + $catsname_list["$rowx[0]"] = substr($rowx[1],0,20); + $o++; + } + + + $stmt="SELECT status,status_name,selectable,human_answered,category,sale,dnc,customer_contact,not_interested,unworkable from vicidial_statuses order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $AScategory = $rowx[4]; + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "
    STATUSDESCRIPTIONSELECT-
    ABLE
    HUMAN
    ANSWER
    CATEGORYMODIFY/DELETE
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
    \n"; + echo "\n"; + echo "         \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "DELETE\n"; + } + else + { + echo "DELETE\n"; + } + + echo "
    \n"; + + echo "  Sale:   \n"; + echo "  DNC:   \n"; + echo "  Customer Contact:   \n"; + echo "  Not Interested:   \n"; + echo "  Unworkable:   \n"; + + echo "
    \n"; + + echo "
    ADD NEW SYSTEM STATUS
    \n"; + echo "\n"; + echo "Status:   \n"; + echo "Description:
    \n"; + echo "Selectable:   \n"; + echo "Human Answer:   \n"; + echo "Sale:   \n"; + echo "DNC:   \n"; + echo "Customer Contact:  
    \n"; + echo "Not Interested:   \n"; + echo "Unworkable:   \n"; + echo "Category: \n"; + echo "  
    \n"; + echo "
    \n"; + + echo "

    \n"; + + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + + + +###################### +# ADD=331111111111111 modify vicidial status categories +###################### + +if ($ADD==331111111111111) + { + if ($LOGmodify_servers==1) + { + echo "
    \n"; + echo ""; + + echo "
    \n"; + echo "VICIDIAL STATUS CATEGORIES:   $NWB#vicidial_status_categories$NWE
    \n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT vsc_id,vsc_name,vsc_description,tovdad_display,sale_category,dead_lead_category from vicidial_status_categories order by vsc_id;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Avsc_id[$o] = $rowx[0]; + $Avsc_name[$o] = $rowx[1]; + $Avsc_description[$o] = $rowx[2]; + $Atovdad_display[$o] = $rowx[3]; + $Asale_category[$o] = $rowx[4]; + $Adead_lead_category[$o] = $rowx[5]; + $o++; + } + $p=0; + while ($o > $p) + { + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $CATstatuses=''; + $stmt="SELECT status from vicidial_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + $stmt="SELECT status from vicidial_campaign_statuses where category='$Avsc_id[$p]' order by status;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $q=0; + while ($statuses_to_print > $q) + { + $rowx=mysql_fetch_row($rslt); + $CATstatuses.=" $rowx[0]"; + $q++; + } + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $p++; + } + + echo "
    CATEGORYNAMESTATUSES IN THIS CATEGORY
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$Avsc_id[$p]
    \n"; + echo "$CATstatuses"; + echo "
    TO VDAD Display:     Sale Category:     Dead Lead Category:  
    Description:
            \n"; + echo "   DELETE
     
    \n"; + + echo "
    ADD NEW STATUS CATEGORY
    \n"; + echo "\n"; + echo "Category ID:   \n"; + echo "Name:  
    \n"; + echo "TimeOnVDAD Display:   \n"; + echo "Sale Category:   \n"; + echo "Dead Lead Category:  
    \n"; + echo "Description:   \n"; + echo "
    \n"; + + echo "

    \n"; + + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + + + +###################### +# ADD=341111111111111 modify vicidial QC status code +###################### + +if ($ADD==341111111111111) + { + if ( ($LOGmodify_servers==1) and ($SSqc_features_active > 0) ) + { + echo "
    \n"; + echo ""; + + echo "
    \n"; + echo "VICIDIAL QC STATUS CODES WITHIN THIS SYSTEM:   $NWB#vicidial_qc_status_codes$NWE
    \n"; + echo "\n"; + echo "\n"; + + ##### go through each QC status code + $stmt="SELECT count(*) from vicidial_qc_codes;"; + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + if ($rowx[0] > 0) + { + $stmt="SELECT code,code_name from vicidial_qc_codes order by code;"; + $rslt=mysql_query($stmt, $link); + $statuses_to_print = mysql_num_rows($rslt); + $o=0; + while ($statuses_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $o++; + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
    STATUS CODEDESCRIPTIONMODIFY/DELETE
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "$rowx[0]
            \n"; + echo "   \n"; + + if (preg_match("/^B$|^NA$|^DNC$|^NA$|^DROP$|^INCALL$|^QUEUE$|^NEW$/i",$rowx[0])) + { + echo "DELETE\n"; + } + else + { + echo "DELETE\n"; + } + echo "
    \n"; + + echo "
    ADD NEW QC STATUS CODE
    \n"; + echo "\n"; + echo "Status:   \n"; + echo "Description:
    \n"; + echo "
    \n"; + + echo "

    \n"; + + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + + + + + +###################### +# ADD=550 user search form +###################### + +if ($ADD==550) + { + echo "
    \n"; + echo ""; + + echo "
    SEARCH FOR A USER
    \n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "
    User Number:
    Full Name:
    User Level:
    User Group:
    \n"; + } + +###################### +# ADD=660 user search results +###################### + +if ($ADD==660) + { + echo "
    \n"; + echo ""; + + $SQL = ''; + if ($user) {$SQL .= " user LIKE \"%$user%\" and";} + if ($full_name) {$SQL .= " full_name LIKE \"%$full_name%\" and";} + if ($user_level > 0) {$SQL .= " user_level LIKE \"%$user_level%\" and";} + if ($user_group) {$SQL .= " user_group = '$user_group' and";} + $SQL = eregi_replace(" and$", "", $SQL); + if (strlen($SQL)>5) {$SQL = "and $SQL";} + + $stmt="SELECT user_id,user,pass,full_name,user_level,user_group,phone_login,phone_pass,delete_users,delete_user_groups,delete_lists,delete_campaigns,delete_ingroups,delete_remote_agents,load_leads,campaign_detail,ast_admin_access,ast_delete_phones,delete_scripts,modify_leads,hotkeys_active,change_agent_campaign,agent_choose_ingroups,closer_campaigns,scheduled_callbacks,agentonly_callbacks,agentcall_manual,vicidial_recording,vicidial_transfers,delete_filters,alter_agent_interface_options,closer_default_blended,delete_call_times,modify_call_times,modify_users,modify_campaigns,modify_lists,modify_scripts,modify_filters,modify_ingroups,modify_usergroups,modify_remoteagents,modify_servers,view_reports,vicidial_recording_override,alter_custdata_override,qc_enabled,qc_user_level,qc_pass,qc_finish,qc_commit,add_timeclock_log,modify_timeclock_log,delete_timeclock_log,alter_custphone_override,vdc_agent_api_access,modify_inbound_dids,delete_inbound_dids,active,alert_enabled,download_lists,agent_shift_enforcement_override,manager_shift_enforcement_override,shift_override_flag,export_reports,delete_from_dnc,email,user_code,territory,allow_alerts from vicidial_users where user_level <= $LOGuser_level $SQL order by full_name desc;"; +# echo "\n|$stmt|\n"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
    SEARCH RESULTS:\n"; + echo "
    \n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo "\n"; + $o++; + } + + echo "
    $row[1]$row[3]$row[4]$row[5]MODIFY | STATS | STATUS | TIME
    \n"; + + } + + +###################################################################################################### +###################################################################################################### +####### 8 series, Callback lists +###################################################################################################### +###################################################################################################### + +###################### +# ADD=8 find all callbacks on hold by a User +###################### +if ($ADD==8) + { + if ($LOGmodify_users==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
    User($user) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user='$user' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
    User($user) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
    Remove LIVE Callbacks older than one month for this user
    Remove LIVE Callbacks older than one week for this user
    "; + + echo ""; + + $CBquerySQLwhere = "and user='$user'"; + + echo "
    USER CALLBACK HOLD LISTINGS: $user\n"; + $oldADD = "ADD=8&user=$user"; + $ADD='82'; + } + +###################### +# ADD=81 find all callbacks on hold within a Campaign +###################### +if ($ADD==81) + { + if ($LOGmodify_campaigns==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
    campaign($campaign_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where campaign_id='$campaign_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
    campaign($campaign_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
    Remove LIVE Callbacks older than one month for this campaign
    Remove LIVE Callbacks older than one week for this campaign
    "; + + echo ""; + + $CBquerySQLwhere = "and campaign_id='$campaign_id'"; + + echo "
    CAMPAIGN CALLBACK HOLD LISTINGS: $campaign_id\n"; + $oldADD = "ADD=81&campaign_id=$campaign_id"; + $ADD='82'; + } + +###################### +# ADD=811 find all callbacks on hold within a List +###################### +if ($ADD==811) + { + if ($LOGmodify_lists==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
    list($list_id) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where list_id='$list_id' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
    list($list_id) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
    Remove LIVE Callbacks older than one month for this list
    Remove LIVE Callbacks older than one week for this list
    "; + + echo ""; + + $CBquerySQLwhere = "and list_id='$list_id'"; + + echo "
    LIST CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=811&list_id=$list_id"; + $ADD='82'; + } + +###################### +# ADD=8111 find all callbacks on hold within a user group +###################### +if ($ADD==8111) + { + if ($LOGmodify_usergroups==1) + { + if ($SUB==89) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_month_date';"; + $rslt=mysql_query($stmt, $link); + echo "
    user group($user_group) callback listings LIVE for more than one month have been made INACTIVE\n"; + } + if ($SUB==899) + { + $stmt="UPDATE vicidial_callbacks SET status='INACTIVE' where user_group='$user_group' and status IN('LIVE','ACTIVE') and callback_time < '$past_week_date';"; + $rslt=mysql_query($stmt, $link); + echo "
    user group($user_group) callback listings LIVE for more than one week have been made INACTIVE\n"; + } + } + $CBinactiveLINK = "
    Remove LIVE Callbacks older than one month for this user group
    Remove LIVE Callbacks older than one week for this user group
    "; + + echo ""; + + $CBquerySQLwhere = "and user_group='$user_group'"; + + echo "
    USER GROUP CALLBACK HOLD LISTINGS: $list_id\n"; + $oldADD = "ADD=8111&user_group=$user_group"; + $ADD='82'; + } + +###################### +# ADD=82 display all callbacks on hold +###################### +if ($ADD==82) + { + $USERlink='stage=USERIDDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $ENDATElink='stage=ENDATEDOWN'; + $SQLorder='order by '; + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc,'; $USERlink='stage=USERIDUP';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc,'; $NAMElink='stage=NAMEUP';} + if (eregi("ENDATEDOWN",$stage)) {$SQLorder='order by entry_time desc,'; $LEVELlink='stage=LEVELUP';} + + $stmt="SELECT callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group from vicidial_callbacks where status IN('ACTIVE','LIVE') $CBquerySQLwhere $SQLorder recipient,status desc,callback_time"; + $rslt=mysql_query($stmt, $link); + $cb_to_print = mysql_num_rows($rslt); + + echo "
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($cb_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    LEADLIST CAMPAIGNENTRY DATECALLBACK DATEUSERRECIPIENTSTATUSGROUP
    $row[1]$row[2]$row[3]$row[5]$row[6]$row[8]$row[9]$row[4]$row[11]
    \n"; + + echo "$CBinactiveLINK"; + } + + + +###################################################################################################### +###################################################################################################### +####### 0 series, displays and searches +###################################################################################################### +###################################################################################################### + +###################### +# ADD=0 display all active users +###################### +if ($ADD==0) + { + echo "
    \n"; + echo ""; + echo "
    USER LISTINGS: "; + if (ereg('display_all',$status)) + { + $SQLstatus = ''; + echo "   show only active users\n"; + } + else + { + $SQLstatus = "and active='Y'"; + echo "   show all users\n"; + } + + $USERlink='stage=USERIDDOWN'; + $NAMElink='stage=NAMEDOWN'; + $LEVELlink='stage=LEVELDOWN'; + $GROUPlink='stage=GROUPDOWN'; + $SQLorder='order by full_name'; + if (eregi("USERIDUP",$stage)) {$SQLorder='order by user asc'; $USERlink='stage=USERIDDOWN';} + if (eregi("USERIDDOWN",$stage)) {$SQLorder='order by user desc'; $USERlink='stage=USERIDUP';} + if (eregi("NAMEUP",$stage)) {$SQLorder='order by full_name asc'; $NAMElink='stage=NAMEDOWN';} + if (eregi("NAMEDOWN",$stage)) {$SQLorder='order by full_name desc'; $NAMElink='stage=NAMEUP';} + if (eregi("LEVELUP",$stage)) {$SQLorder='order by user_level asc'; $LEVELlink='stage=LEVELDOWN';} + if (eregi("LEVELDOWN",$stage)) {$SQLorder='order by user_level desc'; $LEVELlink='stage=LEVELUP';} + if (eregi("GROUPUP",$stage)) {$SQLorder='order by user_group asc'; $GROUPlink='stage=GROUPDOWN';} + if (eregi("GROUPDOWN",$stage)) {$SQLorder='order by user_group desc'; $GROUPlink='stage=GROUPUP';} + $stmt="SELECT user,full_name,user_level,user_group,active from vicidial_users where user_level <= $LOGuser_level $SQLstatus $SQLorder"; + $rslt=mysql_query($stmt, $link); + $people_to_print = mysql_num_rows($rslt); + + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($people_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    USER IDFULL NAMELEVELGROUPACTIVELINKS
    $row[0]$row[1]$row[2]$row[3]$row[4]
    MODIFY | STATS | STATUS | TIME
    \n"; + } + +###################### +# ADD=10 display all campaigns +###################### +if ($ADD==10) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT campaign_id,campaign_name,active,dial_method,auto_dial_level,lead_order,dial_statuses from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + + echo "
    CAMPAIGN LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + + $o=0; + while ($campaigns_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($SSoutbound_autodial_active > 0) + { + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "\n"; + $o++; + } + + echo "
    CAMPAIGN ID
    NAME
    ACTIVE   DIAL METHOD   LEVEL   LEAD ORDER   DIAL STATUSES   MODIFY
    $row[0]   $row[1]   $row[2]   $row[3]   $row[4]   $row[5]   $row[6]MODIFY
    \n"; + } + + +###################### +# ADD=100 display all lists +###################### +if ($ADD==100) + { + echo "
    \n"; + echo ""; + + $LISTlink='stage=LISTIDDOWN'; + $TALLYlink='stage=TALLYDOWN'; + $ACTIVElink='stage=ACTIVEDOWN'; + $CAMPAIGNlink='stage=CAMPAIGNDOWN'; + $CALLDATElink='stage=CALLDATEDOWN'; + $SQLorder='order by list_id'; + if (eregi("LISTIDUP",$stage)) {$SQLorder='order by list_id asc'; $LISTlink='stage=LISTIDDOWN';} + if (eregi("LISTIDDOWN",$stage)) {$SQLorder='order by list_id desc'; $LISTlink='stage=LISTIDUP';} + if (eregi("TALLYUP",$stage)) {$SQLorder='order by tally asc'; $TALLYlink='stage=TALLYDOWN';} + if (eregi("TALLYDOWN",$stage)) {$SQLorder='order by tally desc'; $TALLYlink='stage=TALLYUP';} + if (eregi("ACTIVEUP",$stage)) {$SQLorder='order by active asc'; $ACTIVElink='stage=ACTIVEDOWN';} + if (eregi("ACTIVEDOWN",$stage)) {$SQLorder='order by active desc'; $ACTIVElink='stage=ACTIVEUP';} + if (eregi("CAMPAIGNUP",$stage)) {$SQLorder='order by campaign_id asc'; $CAMPAIGNlink='stage=CAMPAIGNDOWN';} + if (eregi("CAMPAIGNDOWN",$stage)) {$SQLorder='order by campaign_id desc'; $CAMPAIGNlink='stage=CAMPAIGNUP';} + if (eregi("CALLDATEUP",$stage)) {$SQLorder='order by list_lastcalldate asc'; $CALLDATElink='stage=CALLDATEDOWN';} + if (eregi("CALLDATEDOWN",$stage)) {$SQLorder='order by list_lastcalldate desc'; $CALLDATElink='stage=CALLDATEUP';} + $stmt="SELECT vls.list_id,list_name,list_description,count(*) as tally,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists vls,vicidial_list vl where vls.list_id=vl.list_id group by list_id $SQLorder"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + + echo "
    LIST LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $lists_printed = ''; + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $lists_printed .= "'$row[0]',"; + $o++; + } + + $stmt="SELECT list_id,list_name,list_description,0,active,list_lastcalldate,campaign_id,reset_time from vicidial_lists where list_id NOT IN($lists_printed'');"; + $rslt=mysql_query($stmt, $link); + $lists_to_print = mysql_num_rows($rslt); + $o=0; + while ($lists_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    LIST IDLIST NAMEDESCRIPTIONRTIMELEADS COUNTACTIVELAST CALL DATECAMPAIGNMODIFY
    $row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]MODIFY
    $row[0] $row[1] $row[2] $row[7] $row[3] $row[4] $row[5] $row[6]MODIFY
    \n"; + } + + + +###################### +# ADD=1000 display all inbound groups +###################### +if ($ADD==1000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT group_id,group_name,queue_priority,active,call_time_id,group_color from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $ingroups_to_print = mysql_num_rows($rslt); + + echo "
    INBOUND GROUP LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + $o=0; + while ($ingroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    IN-GROUPNAMEPRIORITYACTIVETIMECOLORMODIFY
    $row[0] $row[1] $row[2] $row[3] $row[4]  MODIFY
    \n"; + } + + +###################### +# ADD=1300 display all inbound dids +###################### +if ($ADD==1300) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT did_id,did_pattern,did_description,did_active,did_route from vicidial_inbound_dids order by did_pattern"; + $rslt=mysql_query($stmt, $link); + $dids_to_print = mysql_num_rows($rslt); + + echo "
    INBOUND DID LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + while ($dids_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    #DIDDESCRIPTIONACTIVEROUTEMODIFY
    $row[0] $row[1] $row[2] $row[3] $row[4]MODIFY
    \n"; + } + + +###################### +# ADD=1500 display all call menus +###################### +if ($ADD==1500) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT menu_id,menu_name,menu_prompt,menu_timeout from vicidial_call_menu order by menu_id"; + $rslt=mysql_query($stmt, $link); + $menus_to_print = mysql_num_rows($rslt); + + echo "
    CALL MENU LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + + $o=0; + $menu_id = $MT; + + while ($menus_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $menu_id[$o] = $row[0]; + $menu_name[$o] = $row[1]; + $menu_prompt[$o] = $row[2]; + $menu_timeout[$o] = $row[3]; + $o++; + } + + $o=0; + while ($menus_to_print > $o) + { + $stmt="SELECT count(*) from vicidial_call_menu_options where menu_id=\"$menu_id[$o]\";"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    MENU IDNAMEPROMPTTIMEOUTOPTIONSMODIFY
    $menu_id[$o] $menu_name[$o] $menu_prompt[$o] $menu_timeout[$o] $row[0]MODIFY
    \n"; + } + + +###################### +# ADD=10000 display all remote agents +###################### +if ($ADD==10000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id from vicidial_remote_agents order by server_ip,campaign_id,user_start"; + $rslt=mysql_query($stmt, $link); + $remoteagents_to_print = mysql_num_rows($rslt); + + echo "
    REMOTE AGENTS LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($remoteagents_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    USERLINESSERVER   CONF-EXTEN   STATUS   CAMPAIGN   MODIFY
    $row[1] $row[2] $row[3] $row[4] $row[5] $row[6]MODIFY
    \n"; + } + + +###################### +# ADD=100000 display all user groups +###################### +if ($ADD==100000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT user_group,group_name,forced_timeclock_login from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $usergroups_to_print = mysql_num_rows($rslt); + + echo "
    USER GROUPS LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($usergroups_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    USER GROUPGROUP NAMEFORCE TIMECLOCK   MODIFY
    $row[0] $row[1] $row[2]MODIFY
    \n"; + } + + +###################### +# ADD=1000000 display all scripts +###################### +if ($ADD==1000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT script_id,script_name,active from vicidial_scripts order by script_id"; + $rslt=mysql_query($stmt, $link); + $scripts_to_print = mysql_num_rows($rslt); + + echo "
    SCRIPTS LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($scripts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    SCRIPT IDSCRIPT NAMEACTIVE   MODIFY
    $row[0] $row[1] $row[2]MODIFY
    \n"; + } + + +###################### +# ADD=10000000 display all filters +###################### +if ($ADD==10000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT lead_filter_id,lead_filter_name from vicidial_lead_filters order by lead_filter_id"; + $rslt=mysql_query($stmt, $link); + $filters_to_print = mysql_num_rows($rslt); + + echo "
    LEAD FILTER LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($filters_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    FILTER IDFILTER NAMEMODIFY
    $row[0] $row[1]MODIFY
    \n"; + } + + +###################### +# ADD=100000000 display all call times +###################### +if ($ADD==100000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT call_time_id,call_time_name,ct_default_start,ct_default_stop from vicidial_call_times order by call_time_id"; + $rslt=mysql_query($stmt, $link); + $calltimes_to_print = mysql_num_rows($rslt); + + echo "
    CALL TIME LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($calltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    CALLTIME IDCALLTIME NAMEDEFAULT STARTDEFAULT STOPMODIFY
    $row[0] $row[1] $row[2] $row[3] MODIFY
    \n"; + } + +###################### +# ADD=1000000000 display all state call times +###################### +if ($ADD==1000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,sct_default_start,sct_default_stop from vicidial_state_call_times order by state_call_time_id"; + $rslt=mysql_query($stmt, $link); + $statecalltimes_to_print = mysql_num_rows($rslt); + + echo "
    STATE CALL TIME LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($statecalltimes_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    CALLTIME IDCALLTIME STATECALLTIME NAMEDEFAULT STARTDEFAULT STOPMODIFY
    $row[0] $row[1] $row[2] $row[3] $row[4] MODIFY
    \n"; + } + +###################### +# ADD=130000000 display all shifts +###################### +if ($ADD==130000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT shift_id,shift_name,shift_start_time,shift_length,shift_weekdays from vicidial_shifts order by shift_id"; + $rslt=mysql_query($stmt, $link); + $shifts_to_print = mysql_num_rows($rslt); + + echo "
    SHIFT LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($shifts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    SHIFT IDSHIFT NAMESHIFT STARTSHIFT LENGTHWEEKDAYSMODIFY
    $row[0] $row[1] $row[2] $row[3] $row[4] MODIFY
    \n"; + } + +###################### +# ADD=10000000000 display all phones +###################### +if ($ADD==10000000000) + { + echo "
    \n"; + echo ""; + + $EXTENlink='stage=EXTENDOWN'; + $PROTOlink='stage=PROTODOWN'; + $SERVERlink='stage=SERVERDOWN'; + $STATUSlink='stage=STATUSDOWN'; + $SQLorder='order by extension,server_ip'; + if (eregi("EXTENUP",$stage)) {$SQLorder='order by extension asc'; $EXTENlink='stage=EXTENDOWN';} + if (eregi("EXTENDOWN",$stage)) {$SQLorder='order by extension desc'; $EXTENlink='stage=EXTENUP';} + if (eregi("PROTOUP",$stage)) {$SQLorder='order by protocol asc'; $PROTOlink='stage=PROTODOWN';} + if (eregi("PROTODOWN",$stage)) {$SQLorder='order by protocol desc'; $PROTOlink='stage=PROTOUP';} + if (eregi("SERVERUP",$stage)) {$SQLorder='order by server_ip asc'; $SERVERlink='stage=SERVERDOWN';} + if (eregi("SERVERDOWN",$stage)) {$SQLorder='order by server_ip desc'; $SERVERlink='stage=SERVERUP';} + if (eregi("STATUSUP",$stage)) {$SQLorder='order by status asc'; $STATUSlink='stage=STATUSDOWN';} + if (eregi("STATUSDOWN",$stage)) {$SQLorder='order by status desc'; $STATUSlink='stage=STATUSUP';} + $stmt="SELECT extension,protocol,server_ip,dialplan_number,voicemail_id,status,fullname,messages,old_messages from phones $SQLorder"; + $rslt=mysql_query($stmt, $link); + $phones_to_print = mysql_num_rows($rslt); + + echo "
    PHONE LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phones_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo " + + + + + + + + "; + echo "\n"; + $o++; + } + + echo "
    EXTENPROTOSERVERDIAL PLANSTATUSNAMEVMAILLINKS
    $row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]$row[7]$row[8]MODIFY | STATS
    \n"; + } + +###################### +# ADD=12000000000 display all phones alias +###################### +if ($ADD==12000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT alias_id,alias_name,logins_list from phones_alias order by alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
    PHONE ALIAS LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    ALIAS IDALIAS NAMEPHONE LOGINS LISTMODIFY
    $row[0]$row[1]$row[2]MODIFY
    \n"; + } + +###################### +# ADD=13000000000 display all group alias +###################### +if ($ADD==13000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT group_alias_id,group_alias_name,caller_id_number,caller_id_name,active from groups_alias order by group_alias_id;"; + $rslt=mysql_query($stmt, $link); + $phonealias_to_print = mysql_num_rows($rslt); + + echo "
    GROUP ALIAS LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($phonealias_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    GROUP ALIAS IDGROUP ALIAS NAMECID NUMBERCID NAMEACTIVEMODIFY
    $row[0]$row[1]$row[2]$row[3]$row[4]MODIFY
    \n"; + } + +###################### +# ADD=100000000000 display all servers +###################### +if ($ADD==100000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT server_id,server_description,server_ip,active,asterisk_version,max_vicidial_trunks,local_gmt from servers order by server_id"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + + echo "
    SERVER LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($servers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    SERVER IDNAMESERVER IPACTIVEASTERISKTRUNKSGMTMODIFY
    $row[0]$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]MODIFY
    \n"; + } + +###################### +# ADD=130000000000 display all conf templates +###################### +if ($ADD==130000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT template_id,template_name from vicidial_conf_templates order by template_id"; + $rslt=mysql_query($stmt, $link); + $templates_to_print = mysql_num_rows($rslt); + + echo "
    CONF TEMPLATE LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($templates_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    Template IDTemplate NameMODIFY
    $row[0]$row[1]MODIFY
    \n"; + } + +###################### +# ADD=140000000000 display all carriers +###################### +if ($ADD==140000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT carrier_id,carrier_name,server_ip,protocol,registration_string,active from vicidial_server_carriers order by carrier_id"; + $rslt=mysql_query($stmt, $link); + $carriers_to_print = mysql_num_rows($rslt); + + echo "
    CARRIER LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($carriers_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    Carrier IDCarrier NameServer IPProtocolRegistrationActiveMODIFY
    $row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFY
    \n"; + } + + +###################### +# ADD=150000000000 display all tts entries +###################### +if ($ADD==150000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT tts_id,tts_name,active,tts_text from vicidial_tts_prompts order by tts_id"; + $rslt=mysql_query($stmt, $link); + $tts_to_print = mysql_num_rows($rslt); + + echo "
    TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($tts_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    TTS IDTTS NameActiveTTS TextMODIFY
    $row[0]$row[1]$row[2]$row[3]MODIFY
    \n"; + } + + +###################### +# ADD=160000000000 display all music on hold entries +###################### +if ($ADD==160000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT moh_id,moh_name,active,random from vicidial_music_on_hold where remove='N' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + + echo "
    TEXT-TO-SPEECH(TTS) LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($moh_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $row[3]=ereg_replace(";|<|>","",$row[3]); + while(strlen($row[3]) > 50) {$row[3] = substr("$row[3]", 0, -1);} + if(strlen($row[3]) > 47) {$row[3] = "$row[3]...";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    MOH IDMOH NameActiveRandom OrderMODIFY
    $row[0]$row[1]$row[2]$row[3]MODIFY
    \n"; + } + + +###################### +# ADD=170000000000 display all voicemail entries +###################### +if ($ADD==170000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT voicemail_id,fullname,active,messages,old_messages,delete_vm_after_email from vicidial_voicemail order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + + echo "
    VOICEMAIL BOXES:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vm_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    VOICEMAIL IDNameActiveNew MessagesOld MessagesDeleteMODIFY
    $row[0]$row[1]$row[2]$row[3]$row[4]$row[5]MODIFY
    \n"; + } + + +###################### +# ADD=1000000000000 display all conferences +###################### +if ($ADD==1000000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $conferences_to_print = mysql_num_rows($rslt); + + echo "
    CONFERENCE LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($conferences_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    CONFERENCESERVER IPEXTENSIONMODIFY
    $row[0]$row[1]$row[2]MODIFY
    \n"; + } + +###################### +# ADD=10000000000000 display all vicidial conferences +###################### +if ($ADD==10000000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT conf_exten,server_ip,extension from vicidial_conferences order by conf_exten"; + $rslt=mysql_query($stmt, $link); + $vicidialconf_to_print = mysql_num_rows($rslt); + + echo "
    VICIDIAL CONFERENCE LISTINGS:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + + $o=0; + while ($vicidialconf_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    CONFERENCESERVER IPEXTENSIONMODIFY
    $row[0] $row[1] $row[2]MODIFY
    \n"; + } + + + + + +###################### +# ADD=700000000000000 view all activity in the admin log +###################### + +if ($ADD==700000000000000) + { + echo "
    \n"; + echo ""; + + if ($stage > 9999) + { + $next_limit = ($stage + 10000); + $limitSQL = "10000 offset $stage"; + } + else + { + $next_limit = "10000"; + $limitSQL = "10000"; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log order by event_date desc limit $limitSQL;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
    ADMIN CHANGE LOG: (Last 10000 records)\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
    IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPTIONGOTO
    $row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


    \n"; + echo "NEXT\n"; + echo "
    \n"; + } + + +###################### +# ADD=710000000000000 view all activity in the admin log made by one user +###################### + +if ($ADD==710000000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT full_name from vicidial_users where user='$stage';"; + $rslt=mysql_query($stmt, $link); + $names_to_print = mysql_num_rows($rslt); + if ($names_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $user_name = $row[0]; + } + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where user='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
    ADMIN CHANGE LOG: Changes made by $stage - $user_name\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
    IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPTIONGOTO
    $row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


    \n"; + echo "\n"; + echo "
    \n"; + } + + +###################### +# ADD=720000000000000 view all activity in the admin log made to one section/value +###################### + +if ($ADD==720000000000000) + { + echo "\n"; +echo "
    \n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,user,ip_address,event_section,event_type,record_id,event_code from vicidial_admin_log where event_section='$category' and record_id='$stage' order by event_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + echo "
    ADMIN CHANGE LOG: Section Records - $category - $stage\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $logs_printed = ''; + $o=0; + while ($logs_to_print > $o) + { + $row=mysql_fetch_row($rslt); + + if (eregi("USER|AGENT",$row[4])) {$record_link = "ADD=3&user=$row[6]";} + if (eregi('CAMPAIGN',$row[4])) {$record_link = "ADD=31&campaign_id=$row[6]";} + if (eregi('LIST',$row[4])) {$record_link = "ADD=311&list_id=$row[6]";} + if (eregi('SCRIPT',$row[4])) {$record_link = "ADD=3111111&script_id=$row[6]";} + if (eregi('FILTER',$row[4])) {$record_link = "ADD=31111111&lead_filter_id=$row[6]";} + if (eregi('INGROUP',$row[4])) {$record_link = "ADD=3111&group_id=$row[6]";} + if (eregi('DID',$row[4])) {$record_link = "ADD=3311&did_id=$row[6]";} + if (eregi('USERGROUP',$row[4])) {$record_link = "ADD=311111&user_group=$row[6]";} + if (eregi('REMOTEAGENT',$row[4])) {$record_link = "ADD=31111&remote_agent_id=$row[6]";} + if (eregi('PHONE',$row[4])) {$record_link = "ADD=10000000000";} + if (eregi('CALLTIME',$row[4])) {$record_link = "ADD=311111111&call_time_id=$row[6]";} + if (eregi('SHIFT',$row[4])) {$record_link = "ADD=331111111&shift_id=$row[6]";} + if (eregi('CONFTEMPLATE',$row[4])) {$record_link = "ADD=331111111111&template_id=$row[6]";} + if (eregi('CARRIER',$row[4])) {$record_link = "ADD=341111111111&carrier_id=$row[6]";} + if (eregi('SERVER',$row[4])) {$record_link = "ADD=311111111111&server_id=$row[6]";} + if (eregi('CONFERENCE',$row[4])) {$record_link = "ADD=1000000000000";} + if (eregi('SYSTEM',$row[4])) {$record_link = "ADD=311111111111111";} + if (eregi('CATEGOR',$row[4])) {$record_link = "ADD=331111111111111";} + if (eregi('GROUPALIAS',$row[4])) {$record_link = "ADD=33111111111&group_alias_id=$row[6]";} + + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + $logs_printed .= "'$row[0]',"; + $o++; + } + echo "
    IDDATE TIMEUSERIPSECTIONTYPERECORD IDDESCRIPTIONGOTO
    $row[0] $row[1] $row[2] $row[3] $row[4] $row[5] $row[6] $row[7] GOTO


    \n"; + echo "\n"; + echo "
    \n"; + } + + +###################### +# ADD=730000000000000 detail view of one admin log entry +###################### + +if ($ADD==730000000000000) + { + echo "
    \n"; + echo ""; + + $stmt="SELECT admin_log_id,event_date,val.user,ip_address,event_section,event_type,record_id,event_code,event_notes,event_sql,full_name from vicidial_admin_log val, vicidial_users vu where admin_log_id='$stage' and val.user=vu.user;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + if ($logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + echo "
    ADMIN CHANGE LOG: Record Detail - $stage

    \n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + echo ""; + echo ""; + echo "\n"; + $row[9] = eregi_replace("',","' ,",$row[9]); + echo ""; + echo ""; + echo "\n"; + echo "
    ID: $row[0]
    DATE TIME: $row[1]
    USER: $row[2] - $row[10]
    IP: $row[3]
    SECTION: $row[4]
    TYPE: $row[5]
    RECORD ID: $row[6]
    DESCRIPTION: $row[7]
    NOTES: $row[8]
    SQL:

    $row[9]



    \n"; + echo "\n"; + echo "
    \n"; + } + } + + +###################### +# ADD=999999 display reports section +###################### +if ($ADD==999999) + { + if ($LOGview_reports==1) + { + echo "
    \n"; + echo ""; + + $stmt="select server_id,server_description,server_ip,active,sysload,channels_total,cpu_idle_percent,disk_usage from servers order by server_id;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $servers_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $servers_to_print) + { + $row=mysql_fetch_row($rslt); + $server_id[$i] = $row[0]; + $server_description[$i] = $row[1]; + $server_ip[$i] = $row[2]; + $active[$i] = $row[3]; + $sysload[$i] = $row[4]; + $channels_total[$i] = $row[5]; + $cpu_idle_percent[$i] = $row[6]; + $disk_usage[$i] = $row[7]; + $i++; + } + + $stmt="SELECT queuemetrics_url,vtiger_url from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $queuemetrics_url_LU = $row[0]; + $vtiger_url_LU = $row[1]; + + $stmt="SELECT count(*) from vicidial_list_update_log;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $list_update_count = $row[0]; + ?> + + + + + + Server Stats and Reports + Server Stats and Reports

    +
    +       + + Real-Time Reports
    +
    + Inbound and Outbound Calling Reports
    + + +
    +       + + Agent Reports
    +
    + Time Clock Reports
    +
    + Other Reports and Links
    + +
    + + +
    
    +		
    +		 $o)
    +			{
    +			$cpu = (100 - $cpu_idle_percent[$o]);
    +			$disk = '';
    +			$disk_ary = explode('|',$disk_usage[$o]);
    +			$disk_ary_ct = count($disk_ary);
    +			$k=0;
    +			while ($k < $disk_ary_ct)
    +				{
    +				$disk_ary[$k] = preg_replace("/^\d* /","",$disk_ary[$k]);
    +				if ($k<1) {$disk = "$disk_ary[$k]";}
    +				else
    +					{
    +					if ($disk_ary[$k] > $disk) {$disk = "$disk_ary[$k]";}
    +					}
    +				$k++;
    +				}
    +			$disk = "$disk%";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			$o++;
    +			}
    +
    +		echo "
    SERVERDESCRIPTIONIPACTLOADCHANDISKOUTBOUNDINBOUND
    $server_id[$o]$server_description[$o]$server_ip[$o]$active[$o]$sysload[$o] - $cpu%$channels_total[$o]$diskLINKLINK
    \n"; + } + else + { + echo "You do not have permission to view this page\n"; + exit; + } + } + + +echo "
    \n"; +echo "
    \n"; + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "
    \n"; +echo "

    "; +echo "VERSION: $admin_version
    "; +echo "BUILD: $build
    \n"; + +?> + +
    +
    + + + +1) + { + if (strlen($dial_statuses)>2) + { + $g=0; + $p='13'; + $GMT_gmt[0] = ''; + $GMT_hour[0] = ''; + $GMT_day[0] = ''; + while ($p > -13) + { + $pzone=3600 * $p; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt[$g] = "$tz"; + $GMT_day[$g] = "$pday"; + $GMT_hour[$g] = ($phour + $pmin); + $p = ($p - 0.25); + $g++; + } + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if (strlen($state_rules[$b])>1) + { + $stmt="SELECT state_call_time_id,state_call_time_state,state_call_time_name,state_call_time_comments,sct_default_start,sct_default_stop,sct_sunday_start,sct_sunday_stop,sct_monday_start,sct_monday_stop,sct_tuesday_start,sct_tuesday_stop,sct_wednesday_start,sct_wednesday_stop,sct_thursday_start,sct_thursday_stop,sct_friday_start,sct_friday_stop,sct_saturday_start,sct_saturday_stop from vicidial_state_call_times where state_call_time_id='$state_rules[$b]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + + $r=0; + $default_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_sunday_start) and ($GMT_hour[$r]<$Gct_sunday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_monday_start) and ($GMT_hour[$r]<$Gct_monday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_tuesday_start) and ($GMT_hour[$r]<$Gct_tuesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_wednesday_start) and ($GMT_hour[$r]<$Gct_wednesday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_thursday_start) and ($GMT_hour[$r]<$Gct_thursday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_friday_start) and ($GMT_hour[$r]<$Gct_friday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gct_default_start) and ($GMT_hour[$r]<$Gct_default_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gct_saturday_start) and ($GMT_hour[$r]<$Gct_saturday_stop) ) + {$default_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + + $default_gmt = "$default_gmt'99'"; + $all_gmtSQL = "(gmt_offset_now IN($default_gmt) $ct_statesSQL) $ct_state_gmt_SQL"; + + $dial_statuses = preg_replace("/ -$/","",$dial_statuses); + $Dstatuses = explode(" ", $dial_statuses); + $Ds_to_print = (count($Dstatuses) - 0); + $Dsql = ''; + $o=0; + while ($Ds_to_print > $o) + { + $o++; + $Dsql .= "'$Dstatuses[$o]',"; + } + $Dsql = preg_replace("/,$/","",$Dsql); + if (strlen($Dsql) < 2) {$Dsql = "''";} + + $DLTsql=''; + if ($drop_lockout_time > 0) + { + $DLseconds = ($drop_lockout_time * 3600); + $DLseconds = floor($DLseconds); + $DLseconds = intval("$DLseconds"); + $DLTsql = "and ( ( (status IN('DROP','XDROP')) and (last_local_call_time < CONCAT(DATE_ADD(NOW(), INTERVAL -$DLseconds SECOND),' ',CURTIME()) ) ) or (status NOT IN('DROP','XDROP')) )"; + } + + $stmt="SELECT count(*) FROM vicidial_list where called_since_last_reset='N' and status IN($Dsql) and list_id IN($camp_lists) and ($all_gmtSQL) $DLTsql $fSQL"; + #$DB=1; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rslt_rows = mysql_num_rows($rslt); + if ($rslt_rows) + { + $rowx=mysql_fetch_row($rslt); + $active_leads = "$rowx[0]"; + } + else {$active_leads = '0';} + + echo "|$DB|\n"; + echo "This campaign has $active_leads leads to be dialed in those lists\n"; + } + else + { + echo "no dial statuses selected for this campaign\n"; + } + } + else + { + echo "no active lists selected for this campaign\n"; + } + } +else + { + echo "no active lists selected for this campaign\n"; + } +##### END calculate what gmt_offset_now values are within the allowed local_call_time setting ### +} +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/admin_header.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/admin_header.php new file mode 100644 index 00000000..1391c159 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/admin_header.php @@ -0,0 +1,1287 @@ + LICENSE: AGPLv2 +# + +# CHANGES +# 90310-0709 - First Build +# 90508-0542 - Added Call Menu option, changed script to use long PHP tags +# 90514-0605 - Added audio prompt selection functions +# 90530-1206 - Changed List Mix to allow for 40 mixes and a default populate option +# 90531-2339 - Added Dynamic options for Call Menu +# 90612-0852 - Changed relative links +# 90635-0943 - Added javascript for dynamic menus in In-Groups +# 90627-0548 - Added no-agent-no-queue options +# 90628-1016 - Added Text-to-speech options +# 90830-2213 - Added Music On Hold options +# 90904-1534 - Added launch_moh_chooser +# 90916-2334 - Added Voicemail options +# 91223-1030 - Added VIDPROMPT options for in-group routing in Call Menus +# + + +######################### SMALL HTML HEADER BEGIN ####################################### +if($short_header) + { + ?> +
    + + + + + + + + + + + + +
        Users     Campaigns     Lists     Scripts     Filters     In-Groups     User Groups     Remote Agents     Admin     Reports  
    + 0) + { + if ($hh=='lists') + {$lists_hh="bgcolor=\"$lists_color\""; $lists_fc="$lists_font"; $lists_bold="$header_selected_bold";} + else {$lists_hh=''; $lists_fc='WHITE'; $lists_bold="$header_nonselected_bold";} + } +if ($hh=='ingroups') + {$ingroups_hh="bgcolor=\"$ingroups_color\""; $ingroups_fc="$ingroups_font"; $ingroups_bold="$header_selected_bold";} + else {$ingroups_hh=''; $ingroups_fc='WHITE'; $ingroups_bold="$header_nonselected_bold";} +if ($hh=='remoteagent') + {$remoteagent_hh="bgcolor=\"$remoteagent_color\""; $remoteagent_fc="$remoteagent_font"; $remoteagent_bold="$header_selected_bold";} + else {$remoteagent_hh=''; $remoteagent_fc='WHITE'; $remoteagent_bold="$header_nonselected_bold";} +if ($hh=='usergroups') + {$usergroups_hh="bgcolor=\"$usergroups_color\""; $usergroups_fc="$usergroups_font"; $usergroups_bold="$header_selected_bold";} + else {$usergroups_hh=''; $usergroups_fc='WHITE'; $usergroups_bold="$header_nonselected_bold";} +if ($hh=='scripts') + {$scripts_hh="bgcolor=\"$scripts_color\""; $scripts_fc="$scripts_font"; $scripts_bold="$header_selected_bold";} + else {$scripts_hh=''; $scripts_fc='WHITE'; $scripts_bold="$header_nonselected_bold";} +if ($SSoutbound_autodial_active > 0) + { + if ($hh=='filters') + {$filters_hh="bgcolor=\"$filters_color\""; $filters_fc="$filters_font"; $filters_bold="$header_selected_bold";} + else {$filters_hh=''; $filters_fc='WHITE'; $filters_bold="$header_nonselected_bold";} + } +if ($hh=='admin') + {$admin_hh="bgcolor=\"$admin_color\""; $admin_fc="$admin_font"; $admin_bold="$header_selected_bold";} + else {$admin_hh=''; $admin_fc='WHITE'; $admin_bold="$header_nonselected_bold";} +if ($hh=='reports') + {$reports_hh="bgcolor=\"$reports_color\""; $reports_fc="$reports_font"; $reports_bold="$header_selected_bold";} + else {$reports_hh=''; $reports_fc='WHITE'; $reports_bold="$header_nonselected_bold";} + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +$stmt="SELECT admin_home_url,enable_tts_integration from system_settings;"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$admin_home_url_LU = $row[0]; +$SSenable_tts_integration = $row[1]; + +?> +
    + + + +\r\n"; + print " \r\n"; + } + $rec_count++; + } +$sthA->finish(); + +exit; diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader_super.pl b/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader_super.pl new file mode 100644 index 00000000..9b09bba7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader_super.pl @@ -0,0 +1,1162 @@ +#!/usr/bin/perl +# +# listloader_super.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60906-1056 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1207 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1341 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$vars=$ARGV[0]; +@xls_fields=split(/\,/, $vars); + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + +### Grab Server values from the database +$stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } +$sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[0]]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[1]]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[2]]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[3]]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[4]]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[5]]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[6]]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[7]]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[8]]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[9]]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[10]]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[11]]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[12]]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[13]]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[14]]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[15]]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[16]]; + if ($oWkC) {$country_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[17]]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[18]]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[19]]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[20]]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[21]]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[22]]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[23]]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][$xls_fields[24]]; + if ($oWkC) {$owner=$oWkC->Value; } + + + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "
    record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "

    Done
    GOOD: $good       BAD: $bad       TOTAL: $total"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/log_test.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/log_test.php new file mode 100644 index 00000000..30727891 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/log_test.php @@ -0,0 +1,37 @@ + LICENSE: AGPLv2 +# + + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + +$fp = fopen ("./closer_SQL_updates.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + fwrite ($fp, "CLOSER SQL UPDATE|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + + +exit; + + + +?> + + +Hello + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/loud.mid b/agc_2-X/branches/agc_2.2.0/www/vicidial/loud.mid new file mode 100644 index 00000000..e44094b8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/loud.mid differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/loud_phone.mid b/agc_2-X/branches/agc_2.2.0/www/vicidial/loud_phone.mid new file mode 100644 index 00000000..f5d9c4f7 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/loud_phone.mid differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/new_listloader_superL.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/new_listloader_superL.php new file mode 100644 index 00000000..0e36b8de --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/new_listloader_superL.php @@ -0,0 +1,2258 @@ + LICENSE: AGPLv2 +# +# AST GUI lead loader from formatted file +# +# CHANGES +# 50602-1640 - First version created by Joe Johnson +# 51128-1108 - Removed PHP global vars requirement +# 60113-1603 - Fixed a few bugs in Excel import +# 60421-1624 - check GET/POST vars lines with isset to not trigger PHP NOTICES +# 60616-1240 - added listID override +# 60616-1604 - added gmt lookup for each lead +# 60619-1651 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1121 - fixed for nonwritable directories +# 60906-1100 - added filter of non-digits in alt_phone field +# 61110-1222 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1149 - added postal code GMT lookup and duplicate check options +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0417 - UTF8 changes +# 80514-1030 - removed filesize limit and raised number of errors to be displayed +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 81011-2009 - a few bug fixes +# 90309-1831 - Added admin_log logging +# 90310-2128 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90522-0506 - Security fix +# 90721-1339 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# +# 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 = '2.2.0-33'; +$build = '91112-0616'; + + +require("dbconnect.php"); + +### links used for testing +#$link=mysql_connect("10.10.10.15", "cron", "1234"); +#mysql_select_db("asterisk"); +#$WeBServeRRooT = '/home/www/htdocs'; + +$US='_'; + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$leadfile=$_FILES["leadfile"]; + $LF_orig = $_FILES['leadfile']['name']; + $LF_path = $_FILES['leadfile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["leadfile_name"])) {$leadfile_name=$_GET["leadfile_name"];} + elseif (isset($_POST["leadfile_name"])) {$leadfile_name=$_POST["leadfile_name"];} +if (isset($_FILES["leadfile"])) {$leadfile_name=$_FILES["leadfile"]['name'];} +if (isset($_GET["file_layout"])) {$file_layout=$_GET["file_layout"];} + elseif (isset($_POST["file_layout"])) {$file_layout=$_POST["file_layout"];} +if (isset($_GET["OK_to_process"])) {$OK_to_process=$_GET["OK_to_process"];} + elseif (isset($_POST["OK_to_process"])) {$OK_to_process=$_POST["OK_to_process"];} +if (isset($_GET["vendor_lead_code_field"])) {$vendor_lead_code_field=$_GET["vendor_lead_code_field"];} + elseif (isset($_POST["vendor_lead_code_field"])) {$vendor_lead_code_field=$_POST["vendor_lead_code_field"];} +if (isset($_GET["source_id_field"])) {$source_id_field=$_GET["source_id_field"];} + elseif (isset($_POST["source_id_field"])) {$source_id_field=$_POST["source_id_field"];} +if (isset($_GET["list_id_field"])) {$list_id_field=$_GET["list_id_field"];} + elseif (isset($_POST["list_id_field"])) {$list_id_field=$_POST["list_id_field"];} +if (isset($_GET["phone_code_field"])) {$phone_code_field=$_GET["phone_code_field"];} + elseif (isset($_POST["phone_code_field"])) {$phone_code_field=$_POST["phone_code_field"];} +if (isset($_GET["phone_number_field"])) {$phone_number_field=$_GET["phone_number_field"];} + elseif (isset($_POST["phone_number_field"])) {$phone_number_field=$_POST["phone_number_field"];} +if (isset($_GET["title_field"])) {$title_field=$_GET["title_field"];} + elseif (isset($_POST["title_field"])) {$title_field=$_POST["title_field"];} +if (isset($_GET["first_name_field"])) {$first_name_field=$_GET["first_name_field"];} + elseif (isset($_POST["first_name_field"])) {$first_name_field=$_POST["first_name_field"];} +if (isset($_GET["middle_initial_field"])) {$middle_initial_field=$_GET["middle_initial_field"];} + elseif (isset($_POST["middle_initial_field"])) {$middle_initial_field=$_POST["middle_initial_field"];} +if (isset($_GET["last_name_field"])) {$last_name_field=$_GET["last_name_field"];} + elseif (isset($_POST["last_name_field"])) {$last_name_field=$_POST["last_name_field"];} +if (isset($_GET["address1_field"])) {$address1_field=$_GET["address1_field"];} + elseif (isset($_POST["address1_field"])) {$address1_field=$_POST["address1_field"];} +if (isset($_GET["address2_field"])) {$address2_field=$_GET["address2_field"];} + elseif (isset($_POST["address2_field"])) {$address2_field=$_POST["address2_field"];} +if (isset($_GET["address3_field"])) {$address3_field=$_GET["address3_field"];} + elseif (isset($_POST["address3_field"])) {$address3_field=$_POST["address3_field"];} +if (isset($_GET["city_field"])) {$city_field=$_GET["city_field"];} + elseif (isset($_POST["city_field"])) {$city_field=$_POST["city_field"];} +if (isset($_GET["state_field"])) {$state_field=$_GET["state_field"];} + elseif (isset($_POST["state_field"])) {$state_field=$_POST["state_field"];} +if (isset($_GET["province_field"])) {$province_field=$_GET["province_field"];} + elseif (isset($_POST["province_field"])) {$province_field=$_POST["province_field"];} +if (isset($_GET["postal_code_field"])) {$postal_code_field=$_GET["postal_code_field"];} + elseif (isset($_POST["postal_code_field"])) {$postal_code_field=$_POST["postal_code_field"];} +if (isset($_GET["country_code_field"])) {$country_code_field=$_GET["country_code_field"];} + elseif (isset($_POST["country_code_field"])) {$country_code_field=$_POST["country_code_field"];} +if (isset($_GET["gender_field"])) {$gender_field=$_GET["gender_field"];} + elseif (isset($_POST["gender_field"])) {$gender_field=$_POST["gender_field"];} +if (isset($_GET["date_of_birth_field"])) {$date_of_birth_field=$_GET["date_of_birth_field"];} + elseif (isset($_POST["date_of_birth_field"])) {$date_of_birth_field=$_POST["date_of_birth_field"];} +if (isset($_GET["alt_phone_field"])) {$alt_phone_field=$_GET["alt_phone_field"];} + elseif (isset($_POST["alt_phone_field"])) {$alt_phone_field=$_POST["alt_phone_field"];} +if (isset($_GET["email_field"])) {$email_field=$_GET["email_field"];} + elseif (isset($_POST["email_field"])) {$email_field=$_POST["email_field"];} +if (isset($_GET["security_phrase_field"])) {$security_phrase_field=$_GET["security_phrase_field"];} + elseif (isset($_POST["security_phrase_field"])) {$security_phrase_field=$_POST["security_phrase_field"];} +if (isset($_GET["comments_field"])) {$comments_field=$_GET["comments_field"];} + elseif (isset($_POST["comments_field"])) {$comments_field=$_POST["comments_field"];} +if (isset($_GET["rank_field"])) {$rank_field=$_GET["rank_field"];} + elseif (isset($_POST["rank_field"])) {$rank_field=$_POST["rank_field"];} +if (isset($_GET["owner_field"])) {$owner_field=$_GET["owner_field"];} + elseif (isset($_POST["owner_field"])) {$owner_field=$_POST["owner_field"];} +if (isset($_GET["list_id_override"])) {$list_id_override=$_GET["list_id_override"];} + elseif (isset($_POST["list_id_override"])) {$list_id_override=$_POST["list_id_override"];} + $list_id_override = (preg_replace("/\D/","",$list_id_override)); +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} +if (isset($_GET["dupcheck"])) {$dupcheck=$_GET["dupcheck"];} + elseif (isset($_POST["dupcheck"])) {$dupcheck=$_POST["dupcheck"];} +if (isset($_GET["postalgmt"])) {$postalgmt=$_GET["postalgmt"];} + elseif (isset($_POST["postalgmt"])) {$postalgmt=$_POST["postalgmt"];} +if (isset($_GET["phone_code_override"])) {$phone_code_override=$_GET["phone_code_override"];} + elseif (isset($_POST["phone_code_override"])) {$phone_code_override=$_POST["phone_code_override"];} + $phone_code_override = (preg_replace("/\D/","",$phone_code_override)); + +# $country_field=$_GET["country_field"]; if (!$country_field) {$country_field=$_POST["country_field"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $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); + } +else + { + $PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); + $PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + } + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + + +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name$script_name"; +$admDIR = eregi_replace('new_listloader_superL.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + ### Grab Server GMT value from the database + $stmt="SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $rslt=mysql_query($stmt, $link); + $gmt_recs = mysql_num_rows($rslt); + if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } + else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +#if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +function macfontfix($fontsize) { + + $browser = getenv("HTTP_USER_AGENT"); + $pctype = explode("(", $browser); + if (ereg("Mac",$pctype[1])) { + /* Browser is a Mac. If not Netscape 6, raise fonts */ + + $blownbrowser = explode('/', $browser); + $ver = explode(' ', $blownbrowser[1]); + $ver = $ver[0]; + if ($ver >= 5.0) return $fontsize; else return ($fontsize+2); + + } else return $fontsize; /* Browser is not a Mac - don't touch fonts */ +} + +echo "\n"; + +?> + + + +ADMINISTRATION: Lead Loader + + + +
    +VICIDIAL logo +ADMINISTRATION
    + + + + 1) { + ?> + >>>>>>> + 0) or ($user_territories_active > 0) ) + { ?> + + > + + + + + 1) + { + if ($sh=='basic') {$sh='list';} + if ($sh=='detail') {$sh='list';} + if ($sh=='dialstat') {$sh='list';} + + if ($sh=='list') {$list_sh="bgcolor=\"$subcamp_color\""; $list_fc="$subcamp_font";} + else {$list_sh=''; $list_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$subcamp_color\""; $status_fc="$subcamp_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='hotkey') {$hotkey_sh="bgcolor=\"$subcamp_color\""; $hotkey_fc="$subcamp_font";} + else {$hotkey_sh=''; $hotkey_fc='BLACK';} + if ($sh=='recycle') {$recycle_sh="bgcolor=\"$subcamp_color\""; $recycle_fc="$subcamp_font";} + else {$recycle_sh=''; $recycle_fc='BLACK';} + if ($sh=='autoalt') {$autoalt_sh="bgcolor=\"$subcamp_color\""; $autoalt_fc="$subcamp_font";} + else {$autoalt_sh=''; $autoalt_fc='BLACK';} + if ($sh=='pause') {$pause_sh="bgcolor=\"$subcamp_color\""; $pause_fc="$subcamp_font";} + else {$pause_sh=''; $pause_fc='BLACK';} + if ($sh=='listmix') {$listmix_sh="bgcolor=\"$subcamp_color\""; $listmix_fc="$subcamp_font";} + else {$listmix_sh=''; $listmix_fc='BLACK';} + + ?> + > + + > + + > + + 0) + { + ?> + > + + > + + > + + + > + + + + 0) + { + ?> + + 1) { + if ($LOGdelete_from_dnc > 0) {$DNClink = 'Add-Delete Number From DNC';} + else {$DNClink = 'Add Number To DNC';} + ?> + >>>>> + + + + 1) + { + ?> + >> + + + 0) + { + ?> + + 1) + { + ?> + >> + + + + 1) + { + ?> + >>>>>>>>> + + + + 1) + { + ?> + >>>> + + + + 1) + { + ?> + >> + + + + 1) + { + if ($sh=='times') {$times_sh="bgcolor=\"$times_color\""; $times_fc="$times_font";} + else {$times_sh=''; $times_fc='BLACK';} + if ($sh=='shifts') {$shifts_sh="bgcolor=\"$shifts_color\""; $shifts_fc="$shifts_font";} + else {$shifts_sh=''; $shifts_fc='BLACK';} + if ($sh=='templates') {$templates_sh="bgcolor=\"$templates_color\""; $templates_fc="$templates_font";} + else {$templates_sh=''; $templates_fc='BLACK';} + if ($sh=='carriers') {$carriers_sh="bgcolor=\"$carriers_color\""; $carriers_fc="$carriers_font";} + else {$carriers_sh=''; $carriers_fc='BLACK';} + if ($sh=='phones') {$phones_sh="bgcolor=\"$server_color\""; $phones_fc="$phones_font";} + else {$phones_sh=''; $phones_fc='BLACK';} + if ($sh=='server') {$server_sh="bgcolor=\"$server_color\""; $server_fc="$server_font";} + else {$server_sh=''; $server_fc='BLACK';} + if ($sh=='conference') {$conference_sh="bgcolor=\"$server_color\""; $conference_fc="$server_font";} + else {$conference_sh=''; $conference_fc='BLACK';} + if ($sh=='settings') {$settings_sh="bgcolor=\"$settings_color\""; $settings_fc="$settings_font";} + else {$settings_sh=''; $settings_fc='BLACK';} + if ($sh=='status') {$status_sh="bgcolor=\"$status_color\""; $status_fc="$status_font";} + else {$status_sh=''; $status_fc='BLACK';} + if ($sh=='audio') {$audio_sh="bgcolor=\"$audio_color\""; $audio_fc="$audio_font";} + else {$audio_sh=''; $audio_fc='BLACK';} + if ($sh=='moh') {$moh_sh="bgcolor=\"$moh_color\""; $moh_fc="$moh_font";} + else {$moh_sh=''; $moh_fc='BLACK';} + if ($sh=='vm') {$vm_sh="bgcolor=\"$vm_color\""; $vm_fc="$vm_font";} + else {$vm_sh=''; $vm_fc='BLACK';} + if ($sh=='tts') {$tts_sh="bgcolor=\"$tts_color\""; $tts_fc="$tts_font";} + else {$tts_sh=''; $tts_fc='BLACK';} + + ?> + > + + > + > + > + > + > + > + > + > + > + + 0) or ($SSsounds_central_control_active > 0) ) + { ?> + > + + > + + + 0) + { ?> + > + + + + + + +
    WIDTH=160> + SIZE=>Users +
    +   >Show Users +
    +   >Add A New User +
    +   >Copy User +
    +   >Search For A User +
    +   >User Stats +
    +   >User Status +
    +   >Time Sheet
    +   >User Territories
    > + SIZE=>Campaigns +
    >   SIZE=>Campaigns Main
    >   SIZE=>Statuses
    >   SIZE=>HotKeys
    >   SIZE=>Lead Recycle
    >   SIZE=>Auto-Alt Dial
    >   SIZE=>List Mix
    >   SIZE=>Pause Codes
    > SIZE=>Lists
      + > Show Lists +
      + > Add A New List +
      + > Search For A Lead +
      + > +
      + > Load New Leads +
    > + SIZE=> Scripts +
      + > Show Scripts +
      + > Add A New Script +
    > SIZE=> Filters
      + > Show Filters +
      + > Add A New Filter +
    > + SIZE=> In-Groups +
      + > Show In-Groups +
      + > Add A New In-Group +
      + > Copy In-Group
    +
      + > Show DIDs +
      + > Add A New DID +
      + > Copy DID
    +
      + > Show Call Menus +
      + > Add A New Call Menu +
      + > Copy Call Menu +
    > + SIZE=> User Groups +
      + > Show User Groups +
      + > Add A New User Group +
      + > Group Hourly Report +
      + > Bulk Group Change +
    > + SIZE=> Remote Agents +
      + > Show Remote Agents +
      + > Add New Remote Agents +
    > + SIZE=> Admin +
    COLSPAN=2>   + SIZE=> Call Times
    >   + SIZE=> Shifts
    >   + SIZE=> Phones
    >   + SIZE=> Templates
    >   + SIZE=> Carriers
    >   + SIZE=> Servers
    >   + SIZE=> Conferences
    >   + SIZE=> System Settings
    >   + SIZE=> System Statuses
    >   + SIZE=> Voicemail
    >   + SIZE=> Audio Store
    >   + SIZE=> Music On Hold
    >   + SIZE=> Text To Speech
    > + SIZE=> Reports +
     
    +
    BGCOLOR=#D9E6FE> + + + + + HEIGHT=15> + + + + + + + + + + + + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) and (strlen($admin_hh) > 1) ) { + ?> + > + 1) { + ?> + > + 1) and (!eregi('campaign',$hh) ) ) { + ?> + > + + > + 1) { + ?> +> + + + + +"; + $alts_output .= ""; + $alts_output .= ""; + $alts_output .= "\n"; + $alts_output .= "\n"; + $alts_output .= "\n"; + } + + ##### grab vicidial_log records ##### + $stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial from vicidial_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by uniqueid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + $call_log = ''; + $log_campaign = ''; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (strlen($log_campaign)<1) {$log_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + $call_log .= ""; + $call_log .= ""; + $call_log .= ""; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + $call_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_agent_log records ##### + $stmt="select agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status from vicidial_agent_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Alogs_to_print = mysql_num_rows($rslt); + + $y=0; + $agent_log = ''; + $Alog_campaign = ''; + while ($Alogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Alog_campaign)<1) {$Alog_campaign = $row[5];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= ""; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + $agent_log .= "\n"; + + $campaign_id = $row[5]; + } + + ##### grab vicidial_closer_log records ##### + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by closecallid desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $Clogs_to_print = mysql_num_rows($rslt); + + $y=0; + $closer_log = ''; + $Clog_campaign = ''; + while ($Clogs_to_print > $y) + { + $row=mysql_fetch_row($rslt); + if (strlen($Clog_campaign)<1) {$Clog_campaign = $row[3];} + if (eregi("1$|3$|5$|7$|9$", $y)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $y++; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= ""; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + $closer_log .= "\n"; + + $campaign_id = $row[3]; + } + + ##### grab vicidial_list data for lead ##### + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $dispo = "$row[3]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $gmt_offset_now = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; + $address1 = "$row[16]"; + $address2 = "$row[17]"; + $address3 = "$row[18]"; + $city = "$row[19]"; + $state = "$row[20]"; + $province = "$row[21]"; + $postal_code = "$row[22]"; + $country_code = "$row[23]"; + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; + $email = "$row[27]"; + $security = "$row[28]"; + $comments = "$row[29]"; + $called_count = "$row[30]"; + $last_local_call_time = "$row[31]"; + $rank = "$row[32]"; + $owner = "$row[33]"; + + echo "
    Call information: $first_name $last_name - $phone_number

    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    HOME | Timeclock | Logout  
    >   > Show Campaigns     |     > Add A New Campaign     |     > Copy Campaign     |     > Real-Time Campaigns Summary
      > Show Call Times  | > Add A New Call Time  | > Show State Call Times  | > Add A New State Call Time
      > Show Shifts  | > Add A New Shift
      > Show Phones  | > Add A New Phone  | > Phone Alias List  | > Add A New Phone Alias  | > Group Alias List  | > Add A New Group Alias
      > Show Conferences   |   > Add A New Conference   |   > Show VICIDIAL Conferences   |   > Add A New VICIDIAL Conference
      > Show Servers   |   > Add A New Server
      > Show Templates   |   > Add A New Template
      > Show Carriers   |   > Add A New Carrier
      > Show TTS Entries   |   > Add A New TTS Entry
      > Show MOH Entries   |   > Add A New MOH Entry
      > Show Voicemail Entries   |   > Add A New Voicemail Entry
      > System Settings
      > System Statuses   |   > Status Categories   |   > QC Status Codes
      >User Stats   |   >User Status   |   >Time Sheet   |   >Days Status
    >  
    + LICENSE: AGPLv2 +# +# CHANGES +# +# 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 +# 60609-1112 - Added DNC list addition if status changed to DNC +# 60619-1539 - Added variable filtering to eliminate SQL injection attack threat +# 61130-1639 - Added recording_log lookup and list for this lead_id +# 61201-1136 - Added recording_log user(TSR) display and link +# 70305-1133 - Changed to default CHECKED modify logs upon status change +# 70424-1128 - Added campaign-specific statuses, reformatted recordings list +# 70702-1259 - Added recording location link and truncation +# 70906-2132 - Added closer_log records display +# 80428-0144 - UTF8 cleanup +# 80501-0454 - Added Hangup Reason to logs display +# 80516-0936 - Cleanup of logging changes, added vicidial_agent_log display +# 80701-0832 - Changed to allow for altering of main phone number +# 80805-2106 - Changed comments to TEXTAREA +# 81210-1529 - Added server recording display options +# 90309-1829 - Added admin_log logging +# 90508-0644 - Changed to PHP long tags +# 90708-1549 - Added phone number dialed to outbound log +# 90721-1246 - Added rank and owner as vicidial_list fields +# 90917-2355 - Added extended alt phone entries +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["old_phone"])) {$old_phone=$_GET["old_phone"];} + elseif (isset($_POST["old_phone"])) {$old_phone=$_POST["old_phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_GET["CBchangeUSERtoANY"];} + elseif (isset($_POST["CBchangeUSERtoANY"])) {$CBchangeUSERtoANY=$_POST["CBchangeUSERtoANY"];} +if (isset($_GET["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_GET["CBchangeUSERtoUSER"];} + elseif (isset($_POST["CBchangeUSERtoUSER"])) {$CBchangeUSERtoUSER=$_POST["CBchangeUSERtoUSER"];} +if (isset($_GET["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_GET["CBchangeANYtoUSER"];} + elseif (isset($_POST["CBchangeANYtoUSER"])) {$CBchangeANYtoUSER=$_POST["CBchangeANYtoUSER"];} +if (isset($_GET["callback_id"])) {$callback_id=$_GET["callback_id"];} + elseif (isset($_POST["callback_id"])) {$callback_id=$_POST["callback_id"];} +if (isset($_GET["CBuser"])) {$CBuser=$_GET["CBuser"];} + elseif (isset($_POST["CBuser"])) {$CBuser=$_POST["CBuser"];} +if (isset($_GET["modify_logs"])) {$modify_logs=$_GET["modify_logs"];} + elseif (isset($_POST["modify_logs"])) {$modify_logs=$_POST["modify_logs"];} +if (isset($_GET["modify_closer_logs"])) {$modify_closer_logs=$_GET["modify_closer_logs"];} + elseif (isset($_POST["modify_closer_logs"])) {$modify_closer_logs=$_POST["modify_closer_logs"];} +if (isset($_GET["modify_agent_logs"])) {$modify_agent_logs=$_GET["modify_agent_logs"];} + elseif (isset($_POST["modify_agent_logs"])) {$modify_agent_logs=$_POST["modify_agent_logs"];} +if (isset($_GET["add_closer_record"])) {$add_closer_record=$_GET["add_closer_record"];} + elseif (isset($_POST["add_closer_record"])) {$add_closer_record=$_POST["add_closer_record"];} + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $old_phone = ereg_replace("[^0-9]","",$old_phone); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $alt_phone = ereg_replace("[^0-9]","",$alt_phone); + } +if (strlen($phone_number)<6) {$phone_number=$old_phone;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname =$row[0]; + $LOGmodify_leads =$row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Lead record modification + + +
    +ADMINISTRATION: Lead record modification
    \n"; + +if ($end_call > 0) + { + ### update the lead record in the vicidial_list table + $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) . "',phone_number='$phone_number',email='" . mysql_real_escape_string($email) . "',security_phrase='" . mysql_real_escape_string($security) . "',comments='" . mysql_real_escape_string($comments) . "',rank='" . mysql_real_escape_string($rank) . "',owner='" . mysql_real_escape_string($owner) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "information modified

    \n"; + echo "\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='MODIFY', record_id='$lead_id', event_code='ADMIN MODIFY LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ( ($dispo != $status) and ($dispo == 'CBHOLD') ) + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set status='INACTIVE' where lead_id='" . mysql_real_escape_string($lead_id) . "' and status='ACTIVE';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    vicidial_callback record inactivated: $lead_id
    \n"; + } + if ( ($dispo != $status) and ($dispo == 'CALLBK') ) + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
    vicidial_callback record inactivated: $lead_id
    \n"; + } + + if ( ($dispo != $status) and ($status == 'DNC') ) + { + ### add lead to the internal DNC list + $stmt="INSERT INTO vicidial_dnc (phone_number) values('" . mysql_real_escape_string($phone_number) . "');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    Lead added to DNC List: $lead_id - $phone_number
    \n"; + } + ### update last record in vicidial_log table + if (($dispo != $status) and ($modify_logs > 0)) + { + $stmt="UPDATE vicidial_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_closer_log table + if (($dispo != $status) and ($modify_closer_logs > 0)) + { + $stmt="UPDATE vicidial_closer_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by call_date desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + ### update last record in vicidial_agent_log table + if (($dispo != $status) and ($modify_agent_logs > 0)) + { + $stmt="UPDATE vicidial_agent_log set status='" . mysql_real_escape_string($status) . "' where lead_id='" . mysql_real_escape_string($lead_id) . "' order by agent_log_id desc limit 1"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + if ($add_closer_record > 0) + { + ### 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('" . mysql_real_escape_string($lead_id) . "','" . mysql_real_escape_string($list_id) . "','" . mysql_real_escape_string($campaign_id) . "','" . mysql_real_escape_string($parked_time) . "','$NOW_TIME','$STARTtime','1','" . 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";} + $rslt=mysql_query($stmt, $link); + } + + + } +else + { + + if ($CBchangeUSERtoANY == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $stmt="UPDATE vicidial_callbacks set recipient='ANYONE' where callback_id='" . mysql_real_escape_string($callback_id) . "';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + echo "
    vicidial_callback record changed to ANYONE
    \n"; + } + if ($CBchangeUSERtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
    vicidial_callback record user changed to $CBuser
    \n"; + } + if ($CBchangeANYtoUSER == 'YES') + { + ### inactivate vicidial_callbacks record for this lead + $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";} + $rslt=mysql_query($stmt, $link); + + echo "
    vicidial_callback record changed to USERONLY, user: $CBuser
    \n"; + } + + + + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + ##### grab vicidial_list_alt_phones records ##### + $stmt="select phone_code,phone_number,alt_phone_note,alt_phone_count,active from vicidial_list_alt_phones where lead_id='" . mysql_real_escape_string($lead_id) . "' order by alt_phone_count limit 500;"; + $rslt=mysql_query($stmt, $link); + $alts_to_print = mysql_num_rows($rslt); + + $c=0; + $alts_output = ''; + while ($alts_to_print > $c) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $c)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $c++; + $alts_output .= "
    $c$row[0] $row[1] $row[2] $row[3] $row[4]
    $u$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1] $row[15]   $row[10]
    $y$row[3] $row[5] $row[1] $row[7] $row[9] $row[11] $row[13]   $row[14]   $row[15]   $row[17]
    $y$row[4] $row[7] $row[8] $row[11] $row[3] $row[2] $row[1]   $row[14]   $row[17]
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
    Vendor ID: $vendor_id     Lead ID: $lead_id
    Fronter: $tsr     List ID: $list_id
    First Name:   \n"; + echo " Last Name:
    Address 1 :
    Address 2 :
    Address 3 :
    City :
    State:   \n"; + echo " Postal Code:
    Province :
    Country :
    Main Phone :
    Alt Phone :
    Email :
    Security :
    Rank :
    Owner :
    Comments :
    Disposition: (with $log_campaign statuses)
    Modify vicidial log
    Modify agent log
    Modify closer log
    Add closer log record
    \n"; + echo "


    \n"; + + if ( ($dispo == 'CALLBK') or ($dispo == 'CBHOLD') ) + { + ### find any vicidial_callback records for this lead + $stmt="select callback_id,lead_id,list_id,campaign_id,status,entry_time,callback_time,modify_date,user,recipient,comments,user_group 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";} + $rslt=mysql_query($stmt, $link); + $CB_to_print = mysql_num_rows($rslt); + $rowx=mysql_fetch_row($rslt); + + if ($CB_to_print>0) + { + if ($rowx[9] == 'USERONLY') + { + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "

    \n"; + + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UserID: \n"; + echo "

    \n"; + } + else + { + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "New Callback Owner UserID: \n"; + echo "

    \n"; + } + } + else + { + echo "
    No Callback records found
    \n"; + } + } + } + else + { + echo "lead lookup FAILED for lead_id $lead_id       $NOW_TIME\n

    \n"; +# echo "Close this window\n

    \n"; + } + + + + echo "

    \n"; + + echo "
    \n"; + + if ($c > 0) + { + echo "EXTENDED ALTERNATE PHONE NUMBERS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$alts_output\n"; + + echo "
    # ALT PHONE ALT NOTE ALT COUNT ACTIVE
    \n"; + echo "

    \n"; + } + + echo "CALLS TO THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$call_log\n"; + + echo "
    # DATE/TIME LENGTH STATUS TSR CAMPAIGN LIST LEAD HANGUP REASON PHONE
    \n"; + echo "

    \n"; + + echo "CLOSER RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$closer_log\n"; + + echo "
    # DATE/TIME LENGTH STATUS TSR CAMPAIGN LIST LEAD WAIT HANGUP REASON
    \n"; + echo "

    \n"; + + + echo "AGENT LOG RECORDS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + echo "$agent_log\n"; + + echo "
    # DATE/TIME CAMPAIGN TSR PAUSE WAIT TALK DISPO STATUS GROUP SUB
    \n"; + echo "

    \n"; + + + echo "RECORDINGS FOR THIS LEAD:\n"; + echo "\n"; + echo "\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where lead_id='" . mysql_real_escape_string($lead_id) . "' order by recording_id desc limit 500;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "$locat";} + else + {$location = $locat;} + $u++; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo ""; + echo "\n"; + + } + + + echo "
    # LEADDATE/TIME SECONDS   RECIDFILENAMELOCATIONTSR
    $u $row[12] $row[4] $row[8] $row[0]   $row[10] $location $row[13]
    \n"; + } + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/admin_search_lead.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/admin_search_lead.php new file mode 100644 index 00000000..5bd89ff3 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/admin_search_lead.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 80710-0023 - Added searching by list, user, status +# 90121-0500 - Added filter for phone to remove non-digits +# 90309-1828 - Added admin_log logging +# 90310-2146 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90917-2307 - Added alternate phone number searching option +# 90921-0713 - Removed SELECT STAR +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["alt_phone_search"])) {$alt_phone_search=$_GET["alt_phone_search"];} + elseif (isset($_POST["alt_phone_search"])) {$alt_phone_search=$_POST["alt_phone_search"];} + +$PHP_AUTH_USER = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_USER); +$PHP_AUTH_PW = ereg_replace("[^0-9a-zA-Z]","",$PHP_AUTH_PW); +$phone = ereg_replace("[^0-9]","",$phone); +if (strlen($alt_phone_search) < 2) {$alt_phone_search='No';} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); + +$vicidial_list_fields = 'lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner'; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and modify_leads='1';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) + {$fp = fopen ("./project_auth_entries.txt", "a");} + +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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; + } +else + { + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $LOGmodify_leads = $row[1]; + + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?> + + + +ADMINISTRATION: Lead Search +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '100'; +$hh = 'lists'; +$LOGast_admin_access = '1'; +$SSoutbound_autodial_active = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$lists_color = '#FFFF99'; +$lists_font = 'BLACK'; +$lists_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + +echo " Lead search: $vendor_id $phone $lead_id $status $list_id $user<BR>\n"; + +if ( (!$vendor_id) and (!$phone) and (!$lead_id) and ( (strlen($status)<1) and (strlen($list_id)<1) and (strlen($user)<1) )) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\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 "<br><b>a Home Phone Number: <input type=text name=phone size=20 maxlength=16> Alt phone search: \n"; + echo "<select size=1 name=alt_phone_search><option>No</option><option>Yes</option><option SELECTED>$alt_phone_search</option></select> or \n"; + echo "<br><b>a lead ID: <input type=text name=lead_id size=10 maxlength=10> or\n"; + echo "<br><b>status: <input type=text name=status size=7 maxlength=6>   \n"; + echo "<b>list ID: <input type=text name=list_id size=15 maxlength=14>   \n"; + echo "<b>user: <input type=text name=user size=15 maxlength=20> <br><br>\n"; + echo "<input type=submit name=submit value=SUBMIT></b>\n"; + echo "</form>\n</center>\n"; + echo "</body></html>\n"; + exit; + } + +else + { + + if ($vendor_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where vendor_lead_code='" . mysql_real_escape_string($vendor_id) . "'"; + } + else + { + if ($phone) + { + if ($alt_phone_search=="Yes") + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "' or alt_phone='" . mysql_real_escape_string($phone) . "' or address3='" . mysql_real_escape_string($phone) . "'"; + } + else + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where phone_number='" . mysql_real_escape_string($phone) . "'"; + } + } + else + { + if ($lead_id) + { + $stmt="SELECT $vicidial_list_fields from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + } + else + { + if ( (strlen($status)>0) or (strlen($list_id)>0) or (strlen($user)>0) ) + { + $statusSQL = ''; + $list_idSQL = ''; + $userSQL = ''; + if (strlen($status)>0) + { + $statusSQL = "status='" . mysql_real_escape_string($status) . "'"; $SQLctA++; + } + if (strlen($list_id)>0) + { + if ($SQLctA > 0) {$andA = 'and';} + $list_idSQL = "$andA list_id='" . mysql_real_escape_string($list_id) . "'"; $SQLctB++; + } + if (strlen($user)>0) + { + if ( ($SQLctA > 0) or ($SQLctB > 0) ) {$andB = 'and';} + $userSQL = "$andB user='" . mysql_real_escape_string($user) . "'"; + } + $stmt="SELECT $vicidial_list_fields from vicidial_list where $statusSQL $list_idSQL $userSQL"; + } + else + { + print "ERROR: you must search for something! Go back and search for something"; + exit; + } + } + } + } + + $stmt_alt=''; + $results_to_printX=0; + if ( ($alt_phone_search=="Yes") and (strlen($phone) > 4) ) + { + $stmtX="SELECT lead_id from vicidial_list_alt_phones where phone_number='" . mysql_real_escape_string($phone) . "' limit 1000;"; + $rsltX=mysql_query($stmtX, $link); + $results_to_printX = mysql_num_rows($rsltX); + if ($DB) + {echo "\n\n$results_to_printX|$stmtX\n\n";} + $o=0; + while ($results_to_printX > $o) + { + $row=mysql_fetch_row($rsltX); + if ($o > 0) {$stmt_alt .= ",";} + $stmt_alt .= "'$row[0]'"; + $o++; + } + if (strlen($stmt_alt) > 2) + {$stmt_alt = "or lead_id IN($stmt_alt)";} + } + + $stmt = "$stmt$stmt_alt order by modify_date desc limit 1000;"; + + if ($DB) + { + echo "\n\n$stmt\n\n"; + } + + $rslt=mysql_query("$stmt", $link); + $results_to_print = mysql_num_rows($rslt); + if ( ($results_to_print < 1) and ($results_to_printX < 1) ) + { + echo date("l F j, Y G:i:s A"); + echo "\n<br><br><center>\n"; + echo "<b>The search variables you entered are not active in the system</b><br><br>\n"; + echo "<b>Please go back and double check the information you entered and submit again</b>\n"; + echo "</center>\n"; + echo "</body></html>\n"; + exit; + } + else + { + echo "<b>RESULTS: $results_to_print</b><BR><BR>\n"; + echo "<TABLE BGCOLOR=WHITE CELLPADDING=1 CELLSPACING=0>\n"; + echo "<TR BGCOLOR=BLACK>\n"; + echo "<TD ALIGN=LEFT><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>#</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LEAD ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>STATUS</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>VENDOR ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LAST AGENT</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>LIST ID</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>PHONE</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>NAME</B></FONT></TD>\n"; + echo "<TD ALIGN=CENTER><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE><B>CITY</B></FONT></TD>\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"; + echo "</TR>\n"; + $o=0; + while ($results_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $o++; + $search_lead = $row[0]; + 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]\" target=\"_blank\">$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[31]</FONT></TD>\n"; + echo "</TR>\n"; + } + echo "</TABLE>\n"; + } + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='SEARCH', record_id='$search_lead', event_code='ADMIN SEARCH LEAD', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n<a href=\"$PHP_SELF\">NEW SEARCH</a>"; + + +echo "\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds"; + + +?> + + + +</body> +</html> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/audio_store.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/audio_store.php new file mode 100644 index 00000000..4f8941ea --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/audio_store.php @@ -0,0 +1,316 @@ +<?php +# audio_store.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# Central Audio Storage script +# +# CHANGES +# 90511-1325 - First build +# 90618-0640 - Fix for users going through proxy or tunnel +# + +$version = '2.2.0-2'; +$build = '90618-0640'; + +$MT[0]=''; + +require("dbconnect.php"); + +$server_name = getenv("SERVER_NAME"); +$PHP_SELF=$_SERVER['PHP_SELF']; +$audiofile=$_FILES["audiofile"]; + $AF_orig = $_FILES['audiofile']['name']; + $AF_path = $_FILES['audiofile']['tmp_name']; +if (isset($_GET["submit_file"])) {$submit_file=$_GET["submit_file"];} + elseif (isset($_POST["submit_file"])) {$submit_file=$_POST["submit_file"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["overwrite"])) {$overwrite=$_GET["overwrite"];} + elseif (isset($_POST["overwrite"])) {$overwrite=$_POST["overwrite"];} +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["audio_server_ip"])) {$audio_server_ip=$_GET["audio_server_ip"];} + elseif (isset($_POST["audio_server_ip"])) {$audio_server_ip=$_POST["audio_server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} +if (isset($_GET["audiofile_name"])) {$audiofile_name=$_GET["audiofile_name"];} + elseif (isset($_POST["audiofile_name"])) {$audiofile_name=$_POST["audiofile_name"];} +if (isset($_FILES["audiofile"])) {$audiofile_name=$_FILES["audiofile"]['name'];} +if (isset($_GET["lead_file"])) {$lead_file=$_GET["lead_file"];} + elseif (isset($_POST["lead_file"])) {$lead_file=$_POST["lead_file"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + $SSoutbound_autodial_active = $row[4]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + +### check if sounds server matches this server IP, if not then exit with an error +if ( ( (strlen($sounds_web_server)) != (strlen($server_name)) ) or (!eregi("$sounds_web_server",$server_name) ) ) + { + echo "ERROR: server($server_name) does not match sounds web server ip($sounds_web_server)\n"; + exit; + } + + +### check if web directory exists, if not generate one +if (strlen($sounds_web_directory) < 30) + { + $sounds_web_directory = ''; + $possible = "0123456789cdfghjkmnpqrstvwxyz"; + $i = 0; + $length = 30; + while ($i < $length) + { + $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); + $sounds_web_directory .= $char; + $i++; + } + mkdir("$WeBServeRRooT/$sounds_web_directory"); + chmod("$WeBServeRRooT/$sounds_web_directory", 0766); + if ($DB > 0) {echo "$WeBServeRRooT/$sounds_web_directory\n";} + + $stmt="UPDATE system_settings set sounds_web_directory='$sounds_web_directory';"; + $rslt=mysql_query($stmt, $link); + echo "NOTICE: new web directory created\n"; + } + + +### get list of all servers, if not one of them, then force authentication check +$stmt = "SELECT server_ip FROM servers;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$sv_conf_ct = mysql_num_rows($rslt); +$i=0; +$server_ips ='|'; +while ($sv_conf_ct > $i) + { + $row=mysql_fetch_row($rslt); + $server_ips .= "$row[0]|"; + $i++; + } + +$user_set=0; +$formIPvalid=0; +if (strlen($audio_server_ip) > 6) + { + if (preg_match("/\|$audio_server_ip\|/", $server_ips)) + {$formIPvalid=1;} + } +$ip = getenv("REMOTE_ADDR"); +if ( (!preg_match("/\|$ip\|/", $server_ips)) and ($formIPvalid < 1) ) + { + $user_set=1; + $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 > 7 and modify_campaigns='1'"; + 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|$ip|\n"; + exit; + } + } + + +### list all files in sounds web directory +if ($action == "LIST") + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $filename_sort[$i] = $file . "----------" . $i . "----------" . $file_sizes[$i]; + $i++; + } + } + } + closedir($dh); + + sort($filename_sort); + + sleep(1); + + $k=0; + while($k < $i) + { + $filename_split = explode('----------',$filename_sort[$k]); + $m = $filename_split[1]; + $size = $filename_split[2]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($size == $NOWsize) + { + echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n"; + } + $k++; + } + exit; + } + + +### upload audio file from server to webserver +# curl 'http://10.0.0.4/vicidial/audio_store.php?action=AUTOUPLOAD' -F "audiofile=@/var/lib/asterisk/sounds/beep.gsm" +if ($action == "AUTOUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + exit; + } + else + { + echo "ERROR: no file uploaded\n"; + } + exit; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: Audio Store +<?php + + +if ($user_set < 1) + { + $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); + } +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111111111111'; +$hh = 'admin'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$admin_color = '#FFFF99'; +$admin_font = 'BLACK'; +$admin_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   Audio Store</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   <a href=\"javascript:openNewWindow('$admDIR$admSCR?ADD=99999"; +$NWE = "')\"><IMG SRC=\"help.gif\" WIDTH=20 HEIGHT=20 BORDER=0 ALT=\"HELP\" ALIGN=TOP></A>"; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + +if ($action == "MANUALUPLOAD") + { + if ($audiofile) + { + copy($AF_path, "$WeBServeRRooT/$sounds_web_directory/$audiofile_name"); + chmod("$WeBServeRRooT/$sounds_web_directory/$audiofile_name", 0766); + + echo "SUCCESS: $audiofile_name uploaded size:" . filesize("$WeBServeRRooT/$sounds_web_directory/$audiofile_name") . "\n"; + + $stmt="UPDATE servers SET sounds_update='Y';"; + $rslt=mysql_query($stmt, $link); + } + else + { + echo "ERROR: no file uploaded\n"; + } + } + +?> + + +<form action=<?php echo $PHP_SELF ?> method=post enctype="multipart/form-data"> +<input type=hidden name=action value="MANUALUPLOAD"> +<input type=hidden name=sample_prompt id=sample_prompt value=""> + +<table align=center width="700" border=0 cellpadding=5 cellspacing=0 bgcolor=#D9E6FE> + <tr> + <td align=right width="35%"><B><font face="arial, helvetica" size=2>Audio File to Upload:</font></B></td> + <td align=left width="65%"><input type=file name="audiofile" value=""> <?php echo "$NWB#audio_store$NWE"; ?></td> + </tr> + <tr> + <td align=center colspan=2><input type=submit name=submit value=submit></td> + </tr> + <tr><td align=left><font size=1>   </font></td><td align=right><font size=1>Audio Store-     VERSION: <?php echo $version ?>     BUILD: <?php echo $build ?>     </td></tr> +</table> +<BR><BR> +<CENTER><B>We STRONGLY recommend uploading only 16bit 8k PCM WAV audio files(.wav) +<BR><BR> +<a href="javascript:launch_chooser('sample_prompt','date',30);">audio file list</a></CENTER> + +</TD></TR></TABLE> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/call_report_export.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/call_report_export.php new file mode 100644 index 00000000..77a49b05 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/call_report_export.php @@ -0,0 +1,562 @@ +<?php +# call_report_export.php +# +# displays options to select for downloading of leads and their vicidial_log +# and/or vicidial_closer_log information by status, list_id and date range. +# downloads to a flat text file that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90310-2247 - First build +# 90330-1343 - Added more debug info, bug fixes +# 90508-0644 - Changed to PHP long tags +# 90721-1137 - Added rank and owner as vicidial_list fields +# 91121-0253 - Added list name, list description and status name +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["run_export"])) {$run_export=$_GET["run_export"];} + elseif (isset($_POST["run_export"])) {$run_export=$_POST["run_export"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and export_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +##### START RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### +if ($run_export > 0) + { + $US='_'; + $MT[0]=''; + $ip = getenv("REMOTE_ADDR"); + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $FILE_TIME = date("Ymd-His"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $campaign_ct = count($campaign); + $group_ct = count($group); + $user_group_ct = count($user_group); + $list_ct = count($list_id); + $status_ct = count($status); + $campaign_string='|'; + $group_string='|'; + $user_group_string='|'; + $list_string='|'; + $status_string='|'; + + $i=0; + while($i < $campaign_ct) + { + $campaign_string .= "$campaign[$i]|"; + $campaign_SQL .= "'$campaign[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$campaign_string) ) or ($campaign_ct < 1) ) + { + $campaign_SQL = "campaign_id IN('')"; + $RUNcampaign=0; + } + else + { + $campaign_SQL = eregi_replace(",$",'',$campaign_SQL); + $campaign_SQL = "and vl.campaign_id IN($campaign_SQL)"; + $RUNcampaign++; + } + + $i=0; + while($i < $group_ct) + { + $group_string .= "$group[$i]|"; + $group_SQL .= "'$group[$i]',"; + $i++; + } + if ( (ereg("--NONE--",$group_string) ) or ($group_ct < 1) ) + { + $group_SQL = "''"; + $group_SQL = "campaign_id IN('')"; + $RUNgroup=0; + } + else + { + $group_SQL = eregi_replace(",$",'',$group_SQL); + $group_SQL = "and vl.campaign_id IN($group_SQL)"; + $RUNgroup++; + } + + $i=0; + while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } + else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vl.user_group IN($user_group_SQL)"; + } + + $i=0; + while($i < $list_ct) + { + $list_string .= "$list_id[$i]|"; + $list_SQL .= "'$list_id[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$list_string) ) or ($list_ct < 1) ) + { + $list_SQL = ""; + } + else + { + $list_SQL = eregi_replace(",$",'',$list_SQL); + $list_SQL = "and vi.list_id IN($list_SQL)"; + } + + $i=0; + while($i < $status_ct) + { + $status_string .= "$status[$i]|"; + $status_SQL .= "'$status[$i]',"; + $i++; + } + if ( (ereg("--ALL--",$status_string) ) or ($status_ct < 1) ) + { + $status_SQL = ""; + } + else + { + $status_SQL = eregi_replace(",$",'',$status_SQL); + $status_SQL = "and vl.status IN($status_SQL)"; + } + + + if ($DB > 0) + { + echo "<BR>\n"; + echo "$campaign_ct|$campaign_string|$campaign_SQL\n"; + echo "<BR>\n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + echo "$list_ct|$list_string|$list_SQL\n"; + echo "<BR>\n"; + echo "$status_ct|$status_string|$status_SQL\n"; + echo "<BR>\n"; + } + + $outbound_calls=0; + $export_rows=''; + $k=0; + if ($RUNcampaign > 0) + { + $stmt = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.alt_dial,vi.rank,vi.owner from vicidial_users vu,vicidial_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $campaign_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $outbound_to_print = mysql_num_rows($rslt); + if ($outbound_to_print < 1) + { + echo "There are no outbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $outbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + $outbound_calls++; + } + } + } + + if ($RUNgroup > 0) + { + $stmtA = "SELECT vl.call_date,vl.phone_number,vl.status,vl.user,vu.full_name,vl.campaign_id,vi.vendor_lead_code,vi.source_id,vi.list_id,vi.gmt_offset_now,vi.phone_code,vi.phone_number,vi.title,vi.first_name,vi.middle_initial,vi.last_name,vi.address1,vi.address2,vi.address3,vi.city,vi.state,vi.province,vi.postal_code,vi.country_code,vi.gender,vi.date_of_birth,vi.alt_phone,vi.email,vi.security_phrase,vi.comments,vl.length_in_sec,vl.user_group,vl.queue_seconds,vi.rank,vi.owner from vicidial_users vu,vicidial_closer_log vl,vicidial_list vi where vl.call_date >= '$query_date 00:00:00' and vl.call_date <= '$end_date 23:59:59' and vu.user=vl.user and vi.lead_id=vl.lead_id $list_SQL $group_SQL $user_group_SQL $status_SQL order by vl.call_date limit 100000;"; + $rslt=mysql_query($stmtA, $link); + if ($DB) {echo "$stmt\n";} + $inbound_to_print = mysql_num_rows($rslt); + if ( ($inbound_to_print < 1) and ($outbound_calls < 1) ) + { + echo "There are no inbound calls during this time period for these parameters\n"; + exit; + } + else + { + $i=0; + while ($i < $inbound_to_print) + { + $row=mysql_fetch_row($rslt); + + $export_status[$k] = $row[2]; + $export_list_id[$k] = $row[8]; + $export_rows[$k] = "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\t$row[34]\t"; + $i++; + $k++; + } + } + } + + + if ( ($outbound_to_print > 0) or ($inbound_to_print > 0) ) + { + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='', event_code='ADMIN EXPORT CALLS REPORT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $TXTfilename = "EXPORT_CALL_REPORT_$FILE_TIME.txt"; + + // We'll be outputting a TXT file + header('Content-type: application/octet-stream'); + + // It will be called LIST_101_20090209-121212.txt + header("Content-Disposition: attachment; filename=\"$TXTfilename\""); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + ob_clean(); + flush(); + + $i=0; + while ($k > $i) + { + $ex_list_name=''; + $ex_list_description=''; + $stmt = "SELECT list_name,list_description FROM vicidial_lists where list_id='$export_list_id[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_list_name = $row[0]; + $ex_list_description = $row[1]; + } + + $ex_status_name=''; + $stmt = "SELECT status_name FROM vicidial_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + else + { + $stmt = "SELECT status_name FROM vicidial_campaign_statuses where status='$export_status[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $ex_list_ct = mysql_num_rows($rslt); + if ($ex_list_ct > 0) + { + $row=mysql_fetch_row($rslt); + $ex_status_name = $row[0]; + } + } + + echo "$export_rows[$i]$ex_list_name\t$ex_list_description\t$ex_status_name\r\n"; + $i++; + } + } + else + { + echo "There are no calls during this time period for these parameters\n"; + exit; + } + } +##### END RUN THE EXPORT AND OUTPUT FLAT DATA FILE ##### + + +else + { + $NOW_DATE = date("Y-m-d"); + $NOW_TIME = date("Y-m-d H:i:s"); + $STARTtime = date("U"); + if (!isset($group)) {$group = '';} + if (!isset($query_date)) {$query_date = $NOW_DATE;} + if (!isset($end_date)) {$end_date = $NOW_DATE;} + + $stmt="select campaign_id from vicidial_campaigns;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $campaigns_to_print = mysql_num_rows($rslt); + $i=0; + $LISTcampaigns[$i]='---NONE---'; + $i++; + $campaigns_to_print++; + while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTcampaigns[$i] =$row[0]; + $i++; + } + + $stmt="select group_id from vicidial_inbound_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; + while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $i++; + } + + $stmt="select user_group from vicidial_user_groups;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; + while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + + $stmt="select list_id from vicidial_lists;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $lists_to_print = mysql_num_rows($rslt); + $i=0; + $LISTlists[$i]='---ALL---'; + $i++; + $lists_to_print++; + while ($i < $lists_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTlists[$i] =$row[0]; + $i++; + } + + $stmt="select status from vicidial_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $statuses_to_print = mysql_num_rows($rslt); + $i=0; + $LISTstatus[$i]='---ALL---'; + $i++; + $statuses_to_print++; + while ($i < $statuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + } + + $stmt="select distinct status from vicidial_campaign_statuses;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $Cstatuses_to_print = mysql_num_rows($rslt); + $j=0; + while ($j < $Cstatuses_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTstatus[$i] =$row[0]; + $i++; + $j++; + } + $statuses_to_print = ($statuses_to_print + $Cstatuses_to_print); + + echo "<HTML><HEAD>\n"; + + + echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"; + echo "<TITLE>ADMINISTRATION: Export Calls Report"; + + ##### BEGIN Set variables to make header show properly ##### + $ADD = '100'; + $hh = 'lists'; + $LOGast_admin_access = '1'; + $SSoutbound_autodial_active = '1'; + $ADMIN = 'admin.php'; + $page_width='770'; + $section_width='750'; + $header_font_size='3'; + $subheader_font_size='2'; + $subcamp_font_size='2'; + $header_selected_bold='<b>'; + $header_nonselected_bold=''; + $lists_color = '#FFFF99'; + $lists_font = 'BLACK'; + $lists_color = '#E6E6E6'; + $subcamp_color = '#C6C6C6'; + ##### END Set variables to make header show properly ##### + + require("admin_header.php"); + + + echo "<CENTER><BR>\n"; + echo "<FONT SIZE=3 FACE=\"Arial,Helvetica\"><B>Export Calls Report</B></FONT><BR><BR>\n"; + echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; + echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; + echo "<INPUT TYPE=HIDDEN NAME=run_export VALUE=\"1\">"; + echo "<TABLE BORDER=0 CELLSPACING=8><TR><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + + echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; + echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; + echo "<BR>to<BR>\n"; + echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=2>\n"; + echo "<font class=\"select_bold\"><B>Campaigns:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=campaign[] multiple>\n"; + $o=0; + while ($campaigns_to_print > $o) + { + if (ereg("\|$LISTcampaigns[$o]\|",$campaign_string)) + {echo "<option selected value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + else + {echo "<option value=\"$LISTcampaigns[$o]\">$LISTcampaigns[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Inbound Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=group[] multiple>\n"; + $o=0; + while ($groups_to_print > $o) + { + if (ereg("\|$LISTgroups[$o]\|",$group_string)) + {echo "<option selected value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + else + {echo "<option value=\"$LISTgroups[$o]\">$LISTgroups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Lists:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=list_id[] multiple>\n"; + $o=0; + while ($lists_to_print > $o) + { + if (ereg("\|$LISTlists[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + else + {echo "<option value=\"$LISTlists[$o]\">$LISTlists[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>Statuses:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=status[] multiple>\n"; + $o=0; + while ($statuses_to_print > $o) + { + if (ereg("\|$LISTstatus[$o]\|",$list_string)) + {echo "<option selected value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + else + {echo "<option value=\"$LISTstatus[$o]\">$LISTstatus[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "</TD><TD ALIGN=LEFT VALIGN=TOP ROWSPAN=3>\n"; + echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; + echo "<SELECT SIZE=15 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=2>\n"; + + echo "</TD></TR><TR></TD><TD ALIGN=LEFT VALIGN=TOP COLSPAN=3>\n"; + echo "<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; + echo "</TD></TR></TABLE>\n"; + echo "</FORM>\n\n"; + + } +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/closer-fronter_popup.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer-fronter_popup.php new file mode 100644 index 00000000..891e92f4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer-fronter_popup.php @@ -0,0 +1,517 @@ +<?php +# closer-fronter_popup.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# 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 +# 61201-1114 - Added lead_id and user to recording_log entry +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +# $ext_context = 'default'; defined in dbconnect file + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name from vicidial_users where user='$user' and pass='$pass'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + if ( (strlen($customer_zap_channel)>2) and (eregi('zap',$customer_zap_channel)) ) + { + echo "\n<!-- zap channel: $customer_zap_channel -->\n"; + echo "\n<!-- session_id: $session_id -->\n"; + + } + else + { + echo "Bad channel: $customer_zap_channel\n"; + echo "Make sure the Zap channel is live and try again\n"; + exit; + } + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$user|$pass|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "<html>\n"; +echo "<head>\n"; +echo "<title>VICIDIAL FRONTER-CLOSER: Popup\n"; +echo "\n"; + +if (eregi('CL_UNIV',$channel_group)) + { + ?> + + \n"; + echo "function WaitFirefix() {setTimeout(document.forms[0].search_phone.focus(), 1000)}\n"; + echo "\n"; + } +?> + + +
    + + 0) +{ + +# $stmt="DELETE from parked_channels where server_ip='$server_ip' and parked_time='$parked_time' and channel='$channel' LIMIT 1"; +# if ($DB) {echo "|$stmt|\n";} +# $rslt=mysql_query($stmt, $link); + + $DTqueryCID = "RZ$FILE_datetime$user"; + + ### insert a NEW record to the vicidial_manager table to be processed + + $channel = $customer_zap_channel; + $channel = eregi_replace('Zap/', "", $channel); + $SIPexten = eregi_replace('SIP/', "", $SIPexten); + $filename = "$REC_TIME$US$SIPexten"; + +# $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Monitor','$DTqueryCID','Channel: Zap/$channel','File: $filename','Callerid: $DTqueryCID','','','','','','','')"; +# if ($DB) {echo "|$stmt|\n";} +# $rslt=mysql_query($stmt, $link); + + # Local/78600098@demo-6617,2 + + $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";} + $rslt=mysql_query($stmt, $link); + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) 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) . "','$lead_id','$user')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT recording_id FROM recording_log where filename='" . mysql_real_escape_string($filename) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + + echo "Recording command sent for channel $channel - $filename - $recording_id       $NOW_TIME\n

    \n"; + + $stmt="SELECT full_name from vicidial_users where user='" . mysql_real_escape_string($user) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "Call Referred by: $user - $full_name\n

    \n"; + + $url = "http://10.10.99.2/vicidial/closer_dispo.php?lead_id=$lead_id&channel=$channel&server_ip=$server_ip&extension=$SIPexten&call_began=$STARTtime&parked_time=$parked_time&DB=$DB"; + + echo "View Customer Info and Disposition Call\n

    \n"; + + + +# $stmt="UPDATE park_log set grab_time='$NOW_TIME',status='TALKING',extension='$extension',user='$user' where parked_time='$parked_time' and server_ip='$server_ip' and channel='$channel'"; +# if ($DB) {echo "|$stmt|\n";} +# $fp = fopen ("./closer_SQL_updates.txt", "a"); +# fwrite ($fp, "$date|$user|$stmt|\n"); +# fclose($fp); +# $rslt=mysql_query($stmt, $link); + +########################################################################################### +####### HERE IS WHERE YOU DEFINE DIFFERENT CONTENTS DEPENDING UPON THE CHANNEL_GROUP PREFIX +########################################################################################### +if (eregi('CL_TEST',$channel_group)) + { + echo "GALLERIA TEST CLOSER GROUP: $channel_group\n"; + + $stmt="SELECT user,phone_number from vicidial_list where lead_id='" . mysql_real_escape_string($parked_by) . "';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $fronter=$row[0]; + $search_phone=$row[1]; + + + ?> +
    + + + + + + + + + + + + + + + +
    COF MW Customer Search
    Phone number
    +
    +

    + +
    + + + + + + + + + + + + + + + +
    COF MW Customer Search
    Phone number
    +
    +

    + -- INTERNAL CALL GALLERIA FRONT --
    \n"; + $group_color='#99FF99'; + } + if (eregi('CL_GALLER2',$channel_group)) + { + echo "
    -- TouchAsia CALL Simple Escapes FRONT --
    \n"; + $group_color='#FF9999'; + } + if (eregi('CL_GALLER3',$channel_group)) + { + echo "
    -- DebitSupplies CALL Simple Escapes FRONT --
    \n"; + $group_color='#FF9999'; + } + if (eregi('CL_GALLER4',$channel_group)) + { + echo "
    -- Vishnu CALL Simple Escapes FRONT --
    \n"; + $group_color='#FF9999'; + } + + + ?> +
    + + + + + + + + + + + + + + + +
    COF MW Customer Search
    Phone number
    +
    +

    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    New Search
    Reservation Number:
    Confirmation #:
    Phone #:


    Back
    + +
    + + + Close this window\n

    \n"; +} +else +{ + echo "Record command FAILED for channel $channel       $NOW_TIME\n

    \n"; + echo "Please go back and try again\n

    \n"; +# echo "
    \n"; +} + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/closer-fronter_popup2.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer-fronter_popup2.php new file mode 100644 index 00000000..dac9df76 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer-fronter_popup2.php @@ -0,0 +1,432 @@ + LICENSE: AGPLv2 +# +# 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 +# 61201-1114 - Added lead_id and user to recording_log entry +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +# $ext_context = 'default'; defined in dbconnect file +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 0;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if (!$auth) + { + if ( (strlen($PHP_AUTH_USER)>1) and ( (eregi("tsr",$PHP_AUTH_PW)) or (eregi("sales",$PHP_AUTH_PW)) ) ) + { + $auth=1; + $user = $PHP_AUTH_USER; + $pass = $PHP_AUTH_PW; + } + } + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($user)<2) or (strlen($pass)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER - $user - $PHP_AUTH_USER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$user|$pass|\n"; + exit; + } + else + { + + if($auth>0) + { + $office_no=strtoupper($user); + $password=strtoupper($pass); + $stmt="SELECT full_name from vicidial_users where user='$user' and pass='$pass'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$user|$pass|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + if ( (strlen($customer_zap_channel)>2) and ( (eregi('zap',$customer_zap_channel)) or (eregi('iax',$customer_zap_channel)) ) ) + { + echo "\n\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + } + else + { + echo "Bad channel: $customer_zap_channel\n"; + echo "Make sure the Zap channel is live and try again\n"; + exit; + } + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$user|$pass|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "VICIDIAL FRONTER-CLOSER: Popup\n"; +echo "\n"; + +if (eregi('CL_UNIV',$channel_group)) + { + ?> + + \n"; + echo "function WaitFirefix() {setTimeout(document.forms[0].search_phone.focus(), 1000)}\n"; + echo "\n"; + } +?> + + +
    + + 0) +{ + +# $stmt="DELETE from parked_channels where server_ip='$server_ip' and parked_time='$parked_time' and channel='$channel' LIMIT 1"; +# if ($DB) {echo "|$stmt|\n";} +# $rslt=mysql_query($stmt, $link); + + $DTqueryCID = "RZ$FILE_datetime$user"; + + ### insert a NEW record to the vicidial_manager table to be processed + + $channel = $customer_zap_channel; +# $channel = eregi_replace('Zap/', "", $channel); + $SIPexten = eregi_replace('SIP/', "", $SIPexten); + $filename = "$REC_TIME$US$SIPexten"; + +# $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Monitor','$DTqueryCID','Channel: Zap/$channel','File: $filename','Callerid: $DTqueryCID','','','','','','','')"; +# if ($DB) {echo "|$stmt|\n";} +# $rslt=mysql_query($stmt, $link); + + # Local/78600098@demo-6617,2 + + $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";} + $rslt=mysql_query($stmt, $link); + + $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename,lead_id,user) values('$channel','" . mysql_real_escape_string($server_ip) . "','SIP/" . mysql_real_escape_string($SIPexten) . "','$NOW_TIME','$STARTtime','" . mysql_real_escape_string($filename) . "','$lead_id','$user')"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + $stmt="SELECT recording_id FROM recording_log where filename='" . mysql_real_escape_string($filename) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + + echo "Recording command sent for channel $channel - $filename - $recording_id       $NOW_TIME\n

    \n"; + + $stmt="SELECT full_name from vicidial_users where user='" . mysql_real_escape_string($fronter) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "Call Referred by: $fronter - $full_name\n

    \n"; + + $url = "http://10.10.10.196/vicidial/closer_dispo.php?lead_id=$lead_id&channel=$channel&server_ip=$server_ip&extension=$SIPexten&call_began=$STARTtime&parked_time=$parked_time&DB=$DB"; + + echo "View Customer Info and Disposition Call\n

    \n"; + + + $stmt="SELECT group_name,group_color from vicidial_inbound_groups where group_id='" . mysql_real_escape_string($channel_group) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + $group_color = $row[1]; + + echo "
    \n"; + echo "
    $channel_group - $group_name

    \n\n"; + +########################################################################################### +####### HERE IS WHERE YOU DEFINE DIFFERENT CONTENTS DEPENDING UPON THE CHANNEL_GROUP PREFIX +########################################################################################### + +if (eregi('CL',$channel_group)) + { + if (strlen($phone) > 9) {$search_phone = $phone;} + if ( (strlen($search_phone) < 10) or (strlen($fronter) < 1) ) + { + echo "\n"; + $stmt="SELECT user,phone_number from vicidial_list where lead_id='$parked_by';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if (strlen($fronter) < 1) {$fronter=$row[0];} + if (strlen($search_phone) < 10) {$search_phone=$row[1];} + } + + ?> +
    + + + + + + + + + + + + + + + +
    COF MW Customer Search
    Phone number
    +
    +

    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    New Search
    Reservation Number:
    Confirmation #:
    Phone #:


    Back
    + +
    + + + Close this window\n

    \n"; +} +else +{ + echo "Record command FAILED for channel $channel       $NOW_TIME\n

    \n"; + echo "Please go back and try again\n

    \n"; +# echo "
    \n"; +} + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/closer.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer.php new file mode 100644 index 00000000..3069c281 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer.php @@ -0,0 +1,354 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["group_selected"])) {$group_selected=$_GET["group_selected"];} + elseif (isset($_POST["group_selected"])) {$group_selected=$_POST["group_selected"];} +if (isset($_GET["dialplan_number"])) {$dialplan_number=$_GET["dialplan_number"];} + elseif (isset($_POST["dialplan_number"])) {$dialplan_number=$_POST["dialplan_number"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["groupselect"])) {$groupselect=$_GET["groupselect"];} + elseif (isset($_POST["groupselect"])) {$groupselect=$_POST["groupselect"];} +if (isset($_GET["PHONE_LOGIN"])) {$PHONE_LOGIN=$_GET["PHONE_LOGIN"];} + elseif (isset($_POST["PHONE_LOGIN"])) {$PHONE_LOGIN=$_POST["PHONE_LOGIN"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["debugvars"])) {$debugvars=$_GET["debugvars"];} + elseif (isset($_POST["debugvars"])) {$debugvars=$_POST["debugvars"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$popup_page = './closer_popup.php'; + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 2;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + +$color_class[0] = 'green'; +$color_class[1] = 'red'; +$color_class[2] = 'blue'; +$color_class[3] = 'purple'; +$color_class[4] = 'orange'; +$color_class[5] = 'green'; +$color_class[6] = 'red'; +$color_class[7] = 'blue'; +$color_class[8] = 'purple'; +$color_class[9] = 'orange'; +?> + + + + + +VICIDIAL CLOSER: Main + + +
    + + 0) + { + $stmt="SELECT dialplan_number,server_ip from phones where extension='" . mysql_real_escape_string($extension) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number=$row[0]; + $server_ip=$row[1]; + + if (!$group_selected) + { + $stmt="select distinct channel_group from park_log;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $groups_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + echo "
    Please select the groups you want to pick calls up from:
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Inbound Call Groups:
    \n"; + $o=0; + while ($groups_to_print > $o) + { + $group_form_print = sprintf("%-20s", $groups[$o]); + echo "$group_form_print
    \n"; + $o++; + } + echo "
    \n"; + echo "\n"; + echo "


    \n"; + } + else + { + $o=0; + while($o < $group_selected) + { + $form_groups = "$form_groups&groupselect[$o]=$groupselect[$o]"; + $o++; + } + + $stmt="INSERT INTO vicidial_user_log values('','" . mysql_real_escape_string($user) . "','LOGIN','CLOSER','$NOW_TIME','$STARTtime');"; + $rslt=mysql_query($stmt, $link); + + echo "\n"; + echo"\n"; + + echo "extension found, forwarding you to closer page, please wait 3 seconds...
    \n"; + } + + } + else + { + echo "The extension you entered does not exist, please try again
    \n"; + echo "
    Please enter your phone_ID: \n"; + echo "\n"; + echo "phone station ID:   \n"; + echo "\n"; + echo "


    \n"; + } + + } + else + { + echo "
    Please enter your phone_ID: \n"; + echo "\n"; + echo "phone station ID:   \n"; + echo "\n"; + echo "


    \n"; + } + +exit; + +} + +$o=0; +while($o < $group_selected) +{ + $listen_groups = "$listen_groups     $groupselect[$o]"; + $form_groups = "$form_groups&groupselect[$o]=$groupselect[$o]"; + $o++; +} + + +echo "\n"; +echo"\n"; + +#CHANNEL SERVER CHANNEL_GROUP EXTENSION PARKED_BY PARKED_TIME +#---------------------------------------------------------------------------------------------- +#Zap/73-1 10.10.11.11 IN_800_TPP_CS TPPpark 7275338730 2004-04-22 12:41:00 + + + +echo "$NOW_TIME           $PHP_AUTH_USER - $fullname - CALLS SENT TO: $dialplan_number

    \n"; + +echo "Click on the channel below that you would like to have directed to your phone
    \n"; + +echo "
    \n";
    +echo "CHANNEL    SERVER        CHANNEL_GROUP   EXTENSION    PARKED_BY            PARKED_TIME         \n";
    +echo "---------------------------------------------------------------------------------------------- \n";
    +
    +
    +
    +
    +
    +$stmt="SELECT count(*) from parked_channels where server_ip='" . mysql_real_escape_string($server_ip) . "'";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +$parked_count = $row[0];
    +	if ($parked_count > 0)
    +	{
    +	$stmt="SELECT channel,server_ip,channel_group,extension,parked_by,parked_time 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);
    +	if ($DB) {echo "$stmt\n";}
    +	$parked_to_print = mysql_num_rows($rslt);
    +	$i=0;
    +	while ($i < $parked_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$channel =			sprintf("%-11s", $row[0]);
    +		$server =			sprintf("%-14s", $row[1]);
    +		$channel_group =	sprintf("%-16s", $row[2]);
    +		$park_extension =	sprintf("%-13s", $row[3]);
    +		$parked_by =		sprintf("%-21s", $row[4]);
    +		$parked_time =		sprintf("%-19s", $row[5]);
    +
    +		$G='';   $EG='';
    +		$o=0;
    +		$with_color=0;
    +		while($o < $group_selected)
    +			{
    +				if (eregi("$groupselect[$o]",$channel_group))
    +					{
    +					$G=""; $EG='';
    +					$with_color++;
    +					}
    +				$o++;
    +			}
    +		if ($with_color)
    +			{
    +			if (eregi('CL_GAL',$row[2]))
    +				{
    +				echo "$G$channel$server$channel_group$park_extension                     $parked_time $EG\n";
    +				}
    +			else
    +				{
    +				echo "$G$channel$server$channel_group$park_extension$parked_by$parked_time $EG\n";
    +				}
    +			}
    +#	
    +		$i++;
    +		}
    +
    +	}
    +	else
    +	{
    +	echo "********************************************************************************************** \n";
    +	echo "********************************************************************************************** \n";
    +	echo "*************************************** NO PARKED CALLS ************************************** \n";
    +	echo "********************************************************************************************** \n";
    +	echo "********************************************************************************************** \n";
    +	}
    +
    +echo "  \n\n";
    +echo "looking for calls on these groups:\n";
    +$o=0;
    +while($o < $group_selected)
    +{
    +	$group_print =		sprintf("%-20s", $groupselect[$o]);
    +	echo "             - $group_print\n";
    +	$o++;
    +}
    +
    +
    +$ENDtime = date("U");
    +
    +$RUNtime = ($ENDtime - $STARTtime);
    +
    +echo "
    \n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/closer_dispo.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer_dispo.php new file mode 100644 index 00000000..486351a4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer_dispo.php @@ -0,0 +1,332 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +?> + + +VICIDIAL CLOSER: Call Disposition +\n"; +?> + + +
    + + 0) +{ + +$call_length = ($STARTtime - $call_began); + + ### 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('" . 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";} + $rslt=mysql_query($stmt, $link); + + ### update the lead record in the vicidial_list table + $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";} + $rslt=mysql_query($stmt, $link); + + $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); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $parked_count = $row[0]; + + if ($parked_count > 0) + { + + $DTqueryCID = "RR$FILE_datetime$PHP_AUTH_USER"; + + ### insert a NEW record to the vicidial_manager table to be processed + $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";} + $rslt=mysql_query($stmt, $link); + + echo "Hangup command sent for channel $channel       $NOW_TIME\n

    \n"; + + echo "\n"; + } + else + { + echo "Hangup command FAILED for channel $channel       $NOW_TIME\n

    \n"; + echo "
    \n"; + } +} +else +{ + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $campaign_id = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; # + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; # + $address1 = "$row[16]"; # + $address2 = "$row[17]"; # + $address3 = "$row[18]"; # + $city = "$row[19]"; # + $state = "$row[20]"; # + $province = "$row[21]"; # + $postal_code = "$row[22]"; # + $country_code = "$row[23]"; # + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; # + $email = "$row[27]"; # + $security = "$row[28]"; # + $comments = "$row[29]"; # + + echo "
    Call information: $first_name $last_name - $phone_number

    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
    Vendor ID: $vendor_id     Campaign ID: $campaign_id
    Fronter: $tsr     List ID: $list_id
    First Name:   \n"; + echo " Last Name:
    Address 1 :
    Address 2 :
    Address 3 :
    City :
    State:   \n"; + echo " Postal Code:
    Province :
    Country :
    Alt Phone :
    Email :
    Security :
    Comments :
    Disposition:
    \n"; + echo "


    \n"; + + } + else + { + echo "lead lookup FAILED for lead_id $lead_id       $NOW_TIME\n

    \n"; +# echo "Close this window\n

    \n"; + } + + + + + + +} + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/closer_popup.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer_popup.php new file mode 100644 index 00000000..57c6c6ee --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/closer_popup.php @@ -0,0 +1,456 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["group_selected"])) {$group_selected=$_GET["group_selected"];} + elseif (isset($_POST["group_selected"])) {$group_selected=$_POST["group_selected"];} +if (isset($_GET["dialplan_number"])) {$dialplan_number=$_GET["dialplan_number"];} + elseif (isset($_POST["dialplan_number"])) {$dialplan_number=$_POST["dialplan_number"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["groupselect"])) {$groupselect=$_GET["groupselect"];} + elseif (isset($_POST["groupselect"])) {$groupselect=$_POST["groupselect"];} +if (isset($_GET["PHONE_LOGIN"])) {$PHONE_LOGIN=$_GET["PHONE_LOGIN"];} + elseif (isset($_POST["PHONE_LOGIN"])) {$PHONE_LOGIN=$_POST["PHONE_LOGIN"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["debugvars"])) {$debugvars=$_GET["debugvars"];} + elseif (isset($_POST["debugvars"])) {$debugvars=$_POST["debugvars"];} +if (isset($_GET["parked_by"])) {$parked_by=$_GET["parked_by"];} + elseif (isset($_POST["parked_by"])) {$parked_by=$_POST["parked_by"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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; +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "VICIDIAL CLOSER: Popup\n"; +echo "\n"; + +if (eregi('CL_UNIV',$channel_group)) + { + ?> + + \n"; + echo "function WaitFirefix() {setTimeout(document.forms[0].search_phone.focus(), 1000)}\n"; + echo "\n"; + } +?> + + +
    + + 0) +{ + $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";} + $rslt=mysql_query($stmt, $link); + + + #$monitor_channel = eregi_replace('Zap/', "", $channel); + $monitor_channel = eregi_replace('-1', "", $channel); + $SIPexten = $extension; + $filename = "$REC_TIME$US$SIPexten"; + $DTqueryCID = "RR$FILE_datetime$PHP_AUTH_USER"; + +# $stmt="INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Monitor','$DTqueryCID','Channel: $monitor_channel','File: $filename','Callerid: $DTqueryCID','','','','','','','')"; +# if ($DB) {echo "|$stmt|\n";} +# $rslt=mysql_query($stmt, $link); + +# $stmt = "INSERT INTO recording_log (channel,server_ip,extension,start_time,start_epoch,filename) values('$monitor_channel','$server_ip','SIP/$SIPexten','$NOW_TIME','$STARTtime','$filename')"; +# if ($DB) {echo "|$stmt|\n";} +# $rslt=mysql_query($stmt, $link); + +# $stmt="SELECT recording_id FROM recording_log where filename='$filename'"; +# $rslt=mysql_query($stmt, $link); +# if ($DB) {echo "$stmt\n";} +# $row=mysql_fetch_row($rslt); +# $recording_id = $row[0]; + +# echo "Recording command sent for channel $channel - $filename - $recording_id
    \n"; + + ### insert a NEW record to the vicidial_manager table to be processed + $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";} + $rslt=mysql_query($stmt, $link); + + echo "Redirect command sent for channel $channel       $NOW_TIME\n

    \n"; + + $stmt="SELECT full_name from vicidial_users where user='" . mysql_real_escape_string($parked_by) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "Call Referred by: $parked_by - $full_name\n

    \n"; + + $url = "http://10.10.10.196/vicidial/closer_dispo.php?lead_id=$parked_by&channel=$channel&server_ip=$server_ip&extension=$extension&call_began=$STARTtime&parked_time=$parked_time&DB=$DB"; + + echo "View Customer Info and Disposition Call\n

    \n"; + + + + $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";} + $fp = fopen ("./closer_SQL_updates.txt", "a"); + fwrite ($fp, "$date|$PHP_AUTH_USER|$stmt|\n"); + fclose($fp); + + + $rslt=mysql_query($stmt, $link); + +########################################################################################### +####### HERE IS WHERE YOU DEFINE DIFFERENT CONTENTS DEPENDING UPON THE CHANNEL_GROUP PREFIX +########################################################################################### +if (eregi('CL_TEST',$channel_group)) + { + echo "GALLERIA TEST CLOSER GROUP: $channel_group\n"; + + $stmt="SELECT user,phone_number from vicidial_list where lead_id='" . mysql_real_escape_string($parked_by) . "';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $fronter=$row[0]; + $search_phone=$row[1]; + + + ?> +
    + + + + + + + + + + + + + + + +
    COF MW Customer Search
    Phone number
    +
    +

    + +
    + + + + + + + + + + + + + + + +
    COF MW Customer Search
    Phone number
    +
    +

    + -- INTERNAL CALL GALLERIA FRONT --
    \n"; + $group_color='#99FF99'; + } + if (eregi('CL_GALLER2',$channel_group)) + { + echo "
    -- TouchAsia CALL Simple Escapes FRONT --
    \n"; + $group_color='#FF9999'; + } + if (eregi('CL_GALLER3',$channel_group)) + { + echo "
    -- DebitSupplies CALL Simple Escapes FRONT --
    \n"; + $group_color='#FF9999'; + } + if (eregi('CL_GALLER4',$channel_group)) + { + echo "
    -- Vishnu CALL Simple Escapes FRONT --
    \n"; + $group_color='#FF9999'; + } + + + ?> +
    + + + + + + + + + + + + + + + +
    COF MW Customer Search
    Phone number
    +
    +

    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    New Search
    Reservation Number:
    Confirmation #:
    Phone #:


    Back
    + +
    + + + Close this window\n

    \n"; +} +else +{ + echo "Redirect command FAILED for channel $channel       $NOW_TIME\n

    \n"; + echo "
    \n"; +} + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/count.htm b/agc_2-X/branches/agc_2.2.0/www/vicidial/count.htm new file mode 100644 index 00000000..51f8a361 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/count.htm @@ -0,0 +1 @@ + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/dbconnect.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/dbconnect.php new file mode 100644 index 00000000..dca45485 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/dbconnect.php @@ -0,0 +1,62 @@ + LICENSE: AGPLv2 +# +if ( file_exists("/etc/astguiclient.conf") ) +{ +$DBCagc = file("/etc/astguiclient.conf"); +foreach ($DBCagc as $DBCline) + { + $DBCline = preg_replace("/ |>|\n|\r|\t|\#.*|;.*/","",$DBCline); + if (ereg("^PATHlogs", $DBCline)) + {$PATHlogs = $DBCline; $PATHlogs = preg_replace("/.*=/","",$PATHlogs);} + if (ereg("^PATHweb", $DBCline)) + {$WeBServeRRooT = $DBCline; $WeBServeRRooT = preg_replace("/.*=/","",$WeBServeRRooT);} + if (ereg("^VARserver_ip", $DBCline)) + {$WEBserver_ip = $DBCline; $WEBserver_ip = preg_replace("/.*=/","",$WEBserver_ip);} + if (ereg("^VARDB_server", $DBCline)) + {$VARDB_server = $DBCline; $VARDB_server = preg_replace("/.*=/","",$VARDB_server);} + if (ereg("^VARDB_database", $DBCline)) + {$VARDB_database = $DBCline; $VARDB_database = preg_replace("/.*=/","",$VARDB_database);} + if (ereg("^VARDB_user", $DBCline)) + {$VARDB_user = $DBCline; $VARDB_user = preg_replace("/.*=/","",$VARDB_user);} + if (ereg("^VARDB_pass", $DBCline)) + {$VARDB_pass = $DBCline; $VARDB_pass = preg_replace("/.*=/","",$VARDB_pass);} + if (ereg("^VARDB_port", $DBCline)) + {$VARDB_port = $DBCline; $VARDB_port = preg_replace("/.*=/","",$VARDB_port);} + } + +} +else +{ +#defaults for DB connection +$VARDB_server = 'localhost'; +$VARDB_user = 'cron'; +$VARDB_pass = '1234'; +$VARDB_database = '1234'; +$WeBServeRRooT = '/usr/local/apache2/htdocs'; +} + +$link=mysql_connect("$VARDB_server", "$VARDB_user", "$VARDB_pass"); +if (!$link) { + die('MySQL connect ERROR: ' . mysql_error()); +} +mysql_select_db("$VARDB_database"); + +$local_DEF = 'Local/'; +$conf_silent_prefix = '7'; +$local_AMP = '@'; +$ext_context = 'demo'; +$recording_exten = '8309'; +$WeBRooTWritablE = '1'; +$non_latin = '0'; # set to 1 for UTF rules +$AM_shift_BEGIN = '03:45:00'; +$AM_shift_END = '17:45:00'; +$PM_shift_BEGIN = '17:45:01'; +$PM_shift_END = '23:59:59'; +$admin_qc_enabled = '0'; +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/fcstats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/fcstats.php new file mode 100644 index 00000000..cd2e4f4b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/fcstats.php @@ -0,0 +1,601 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 70813-1526 - First Build +# 71008-1436 - Added shift to be defined in dbconnect.php +# 71217-1128 - Changed method for calculating stats +# 71228-1140 - added percentages, cross-day start/stop +# 80328-1139 - adapted for basic fronter/closer stats +# 90310-2132 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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); + +if (strlen($shift)<2) {$shift='ALL';} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = 'CL_TEST_L';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } +?> + + + + + +\n"; +echo "In-Group Fronter-Closer Stats Report\n"; + + $short_header=1; + + require("admin_header.php"); + +echo "
    "; + +echo "
    \n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "           MODIFY | REPORTS \n"; +echo "
    \n\n"; + +echo "
    \n\n";
    +
    +
    +if (!$group)
    +{
    +echo "\n\n";
    +echo "PLEASE SELECT AN IN-GROUP AND DATE ABOVE THEN CLICK SUBMIT\n";
    +}
    +
    +else
    +{
    +#	$time_BEGIN=$AM_shift_BEGIN;
    +#	$time_END=$AM_shift_END;
    +#$query_date_BEGIN = "$query_date $time_BEGIN";   
    +#$query_date_END = "$query_date $time_END";
    +
    +$Cqdate = explode('-',$query_date);
    +
    +if ($shift == 'AM') 
    +	{
    +	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
    +	$query_date_END = date("Y-m-d H:i:s", mktime(17, 45, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
    +	}
    +if ($shift == 'PM') 
    +	{
    +	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(17, 45, 1, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
    +	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
    +	}
    +if ($shift == 'ALL') 
    +	{
    +	$query_date_BEGIN = date("Y-m-d H:i:s", mktime(1, 0, 0, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
    +	$query_date_END = date("Y-m-d H:i:s", mktime(24, 59, 59, $Cqdate[1], $Cqdate[2], $Cqdate[0]));
    +	}
    +
    +echo "In-Group Fronter-Closer Stats Report                      $NOW_TIME\n";
    +
    +echo "\n";
    +echo "---------- TOTALS FOR $query_date_BEGIN to $query_date_END\n";
    +
    +$stmt="select count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "' and status = 'SALE';";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +$A1_points = ($row[0] * 1);
    +$A1_points =	sprintf("%10s", $A1_points);
    +$A1_tally =	sprintf("%10s", $row[0]);
    +
    +$TOT_tally = ($A1_tally + $A2_tally + $A3_tally + $A4_tally);
    +$TOT_points = ($A1_points + $A2_points + $A3_points + $A4_points);
    +$TOT_tally =	sprintf("%10s", $TOT_tally);
    +$TOT_points =	sprintf("%10s", $TOT_points);
    +
    +echo "STATUS   CUSTOMERS\n";
    +echo "SALES:   $A1_tally\n";
    +
    +echo "\n";
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +##############################
    +#########  FRONTER STATS
    +
    +$TOTagents=0;
    +$TOTcalls=0;
    +$TOTsales=0;
    +$totA1=0;
    +$totA2=0;
    +$totA3=0;
    +$totA4=0;
    +$totA5=0;
    +$totA6=0;
    +$totA7=0;
    +$totA8=0;
    +$totA9=0;
    +$totDROP=0;
    +$totOTHER=0;
    +
    +echo "\n";
    +echo "---------- FRONTER STATS\n";
    +echo "+--------------------------+-------+--------+--------+------+------+------+\n";
    +echo "| AGENT                    |SUCCESS| XFERS  |SUCCESS%| SALE | DROP |OTHER |\n";
    +echo "+--------------------------+-------+--------+--------+------+------+------+\n";
    +
    +#$stmt="select vicidial_xfer_log.user,full_name,count(*) from vicidial_xfer_log,vicidial_users where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and vicidial_xfer_log.user is not null and vicidial_xfer_log.user=vicidial_users.user group by vicidial_xfer_log.user;";
    +$stmt="select user,count(distinct lead_id) from vicidial_xfer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
    +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$users_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $users_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTcalls = ($TOTcalls + $row[1]);
    +
    +	$userRAW[$i]=$row[0];
    +	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
    +	$USERcallsRAW[$i] =	$row[1];
    +	$USERcalls[$i] =	sprintf("%6s", $row[1]);
    +
    +	$i++;
    +	}
    +
    +$i=0;
    +while ($i < $users_to_print)
    +	{
    +	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$names_to_print = mysql_num_rows($rslt);
    +	if ($names_to_print > 0)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		if ($non_latin < 1)
    +			{
    +			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
    +			}
    +		else
    +			{
    +			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
    +			}
    +		}
    +	else
    +		{$full_name[$i] = '               ';}
    +
    +	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; 
    +	$stmt="select vc.status,count(distinct vc.lead_id) from vicidial_xfer_log vx, vicidial_closer_log vc where vx.call_date >= '$query_date_BEGIN' and vx.call_date <= '$query_date_END' and vc.call_date >= '$query_date_BEGIN' and vc.call_date <= '$query_date_END' and  vc.campaign_id='" . mysql_real_escape_string($group) . "' and vx.campaign_id='" . mysql_real_escape_string($group) . "' and vx.user='$userRAW[$i]' and vc.lead_id=vx.lead_id and vc.xfercallid=vx.xfercallid group by vc.status;";
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$lead_ids_to_print = mysql_num_rows($rslt);
    +	$j=0;
    +	while ($j < $lead_ids_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$recL=0;
    +		if ( ($row[0]=='SALE') and ($recL < 1) ) {$A1=$row[1]; $recL++; $sales=($sales + $row[1]);}
    +	#	if ( ($row[0]=='A2') and ($recL < 1) ) {$A2=$row[1]; $recL++; $sales=($sales + $row[1]);}
    +	#	if ( ($row[0]=='A3') and ($recL < 1) ) {$A3=$row[1]; $recL++; $sales=($sales + $row[1]);}
    +	#	if ( ($row[0]=='A4') and ($recL < 1) ) {$A4=$row[1]; $recL++; $sales=($sales + $row[1]);}
    +	#	if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
    +	#	if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
    +	#	if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
    +	#	if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
    +	#	if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
    +		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
    +		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
    +		$j++;
    +		}
    +
    +	$totA1 = ($totA1 + $A1);
    +	$totA2 = ($totA2 + $A2);
    +	$totA3 = ($totA3 + $A3);
    +	$totA4 = ($totA4 + $A4);
    +	$totA5 = ($totA5 + $A5);
    +	$totA6 = ($totA6 + $A6);
    +	$totA7 = ($totA7 + $A7);
    +	$totA8 = ($totA8 + $A8);
    +	$totA9 = ($totA9 + $A9);
    +	$totDROP = ($totDROP + $DROP);
    +	$totOTHER = ($totOTHER + $OTHER);
    +	$TOTsales = ($TOTsales + $sales);
    +
    +	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Spct = ( ($sales / $USERcallsRAW[$i]) * 100);}
    +		else {$Spct=0;}
    +	$Spct = round($Spct, 2);
    +	$Spct =	sprintf("%01.2f", $Spct);
    +	
    +
    +	$A1 =	sprintf("%4s", $A1);
    +	$A2 =	sprintf("%4s", $A2);
    +	$A3 =	sprintf("%4s", $A3);
    +	$A4 =	sprintf("%4s", $A4);
    +	$A5 =	sprintf("%4s", $A5);
    +	$A6 =	sprintf("%4s", $A6);
    +	$A7 =	sprintf("%4s", $A7);
    +	$A8 =	sprintf("%4s", $A8);
    +	$A9 =	sprintf("%4s", $A9);
    +	$DROP =	sprintf("%4s", $DROP);
    +	$OTHER =	sprintf("%4s", $OTHER);
    +	$sales =	sprintf("%5s", $sales);
    +	$Spct =	sprintf("%6s", $Spct);
    +
    +	echo "| $user[$i] - $full_name[$i] | $sales | $USERcalls[$i] | $Spct%| $A1 | $DROP | $OTHER |\n";
    +
    +	$i++;
    +	}
    +
    +
    +if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totSpct = ( ($TOTsales / $TOTcalls) * 100);}
    +	else {$totSpct=0;}
    +$totSpct = round($totSpct, 2);
    +$totSpct =	sprintf("%01.2f", $totSpct);
    +$totSpct =	sprintf("%6s", $totSpct);
    +	
    +$TOTagents =	sprintf("%6s", $i);
    +$TOTcalls =		sprintf("%6s", $TOTcalls);
    +$TOTsales =		sprintf("%5s", $TOTsales);
    +$totA1 =		sprintf("%5s", $totA1);
    +$totA2 =		sprintf("%5s", $totA2);
    +$totA3 =		sprintf("%5s", $totA3);
    +$totA4 =		sprintf("%5s", $totA4);
    +$totA5 =		sprintf("%5s", $totA5);
    +$totA6 =		sprintf("%5s", $totA6);
    +$totA7 =		sprintf("%5s", $totA7);
    +$totA8 =		sprintf("%5s", $totA8);
    +$totA9 =		sprintf("%5s", $totA9);
    +$totDROP =		sprintf("%5s", $totDROP);
    +$totOTHER =		sprintf("%5s", $totOTHER);
    +
    +
    +$stmt="select avg(queue_seconds) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and campaign_id='" . mysql_real_escape_string($group) . "';";
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$row=mysql_fetch_row($rslt);
    +
    +$AVGwait = $row[0];
    +$AVGwait_M = ($AVGwait / 60);
    +$AVGwait_M = round($AVGwait_M, 2);
    +$AVGwait_M_int = intval("$AVGwait_M");
    +$AVGwait_S = ($AVGwait_M - $AVGwait_M_int);
    +$AVGwait_S = ($AVGwait_S * 60);
    +$AVGwait_S = round($AVGwait_S, 0);
    +if ($AVGwait_S < 10) {$AVGwait_S = "0$AVGwait_S";}
    +$AVGwait_MS = "$AVGwait_M_int:$AVGwait_S";
    +$AVGwait =		sprintf("%6s", $AVGwait_MS);
    +
    +
    +echo "+--------------------------+-------+--------+--------+------+------+------+\n";
    +echo "| TOTAL FRONTERS: $TOTagents   | $TOTsales | $TOTcalls | $totSpct%|$totA1 |$totDROP |$totOTHER |\n";
    +echo "+--------------------------+-------+--------+--------+------+------+------+\n";
    +echo "|                          Average time in Queue for customers:    $AVGwait |\n";
    +echo "+--------------------------+-------+--------+--------+------+------+------+\n";
    +
    +
    +
    +
    +
    +##############################
    +#########  CLOSER STATS
    +
    +$TOTagents=0;
    +$TOTcalls=0;
    +$totA1=0;
    +$totA2=0;
    +$totA3=0;
    +$totA4=0;
    +$totA5=0;
    +$totA6=0;
    +$totA7=0;
    +$totA8=0;
    +$totA9=0;
    +$totDROP=0;
    +$totOTHER=0;
    +$TOTsales=0;
    +
    +echo "\n";
    +echo "---------- CLOSER STATS\n";
    +echo "+--------------------------+--------+------+------+------+------+-------+\n";
    +echo "| AGENT                    | CALLS  | SALE | DROP |OTHER | SALE | CONV %|\n";
    +echo "+--------------------------+--------+------+------+------+------+-------+\n";
    +
    +$stmt="select user,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user is not null group by user;";
    +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +$rslt=mysql_query($stmt, $link);
    +if ($DB) {echo "$stmt\n";}
    +$users_to_print = mysql_num_rows($rslt);
    +$i=0;
    +while ($i < $users_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +
    +	$TOTcalls = ($TOTcalls + $row[1]);
    +	$userRAW[$i]=$row[0];
    +	$user[$i] =	sprintf("%-6s", $row[0]);while(strlen($user[$i])>6) {$user[$i] = substr("$user[$i]", 0, -1);}
    +	$USERcalls[$i] =	sprintf("%6s", $row[1]);
    +	$USERcallsRAW[$i] =	$row[1];
    +
    +	$i++;
    +	}
    +
    +$i=0;
    +while ($i < $users_to_print)
    +	{
    +	$stmt="select full_name from vicidial_users where user='$userRAW[$i]';";
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$names_to_print = mysql_num_rows($rslt);
    +	if ($names_to_print > 0)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		if ($non_latin < 1)
    +			{
    +			 $full_name[$i] =	sprintf("%-15s", $row[0]); while(strlen($full_name[$i])>15) {$full_name[$i] = substr("$full_name[$i]", 0, -1);}	
    +			}
    +		else
    +			{
    +			 $full_name[$i] =	sprintf("%-45s", $row[0]); while(mb_strlen($full_name[$i],'utf-8')>15) {$full_name[$i] = mb_substr("$full_name[$i]", 0, -1,'utf-8');}	
    +			}
    +		}
    +	else
    +		{$full_name[$i] = '               ';}
    +
    +	$A1=0; $A2=0; $A3=0; $A4=0; $A5=0; $A6=0; $A7=0; $A8=0; $A9=0; $DROP=0; $OTHER=0; $sales=0; $uTOP=0; $uBOT=0; $points=0;
    +	$stmt="select status,count(*) from vicidial_closer_log where call_date >= '$query_date_BEGIN' and call_date <= '$query_date_END' and  campaign_id='" . mysql_real_escape_string($group) . "' and user='$userRAW[$i]' group by status;";
    +	if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");}
    +	$rslt=mysql_query($stmt, $link);
    +	if ($DB) {echo "$stmt\n";}
    +	$lead_ids_to_print = mysql_num_rows($rslt);
    +	$j=0;
    +	while ($j < $lead_ids_to_print)
    +		{
    +		$row=mysql_fetch_row($rslt);
    +		$recL=0;
    +		if ( ($row[0]=='SALE') and ($recL < 1) ) 
    +			{
    +			$A1=$row[1]; $recL++; 
    +			$sales=($sales + $row[1]);
    +			$points = ($points + ($row[1] * 1) );
    +			}
    +		if ( ($row[0]=='A2') and ($recL < 1) ) 
    +			{
    +			$A2=$row[1]; $recL++; 
    +			$sales=($sales + $row[1]); 
    +			$uTOP=($uTOP + $row[1]);
    +			$points = ($points + ($row[1] * 2) );
    +			}
    +		if ( ($row[0]=='A3') and ($recL < 1) ) 
    +			{
    +			$A3=$row[1]; $recL++; 
    +			$sales=($sales + $row[1]); 
    +			$uBOT=($uBOT + $row[1]);
    +			$points = ($points + ($row[1] * 2) );
    +			}
    +		if ( ($row[0]=='A4') and ($recL < 1) ) 
    +			{
    +			$A4=$row[1]; $recL++; 
    +			$sales=($sales + $row[1]); 
    +			$uTOP=($uTOP + $row[1]); 
    +			$uBOT=($uBOT + $row[1]);
    +			$points = ($points + ($row[1] * 3) );
    +			}
    +#		if ( ($row[0]=='A5') and ($recL < 1) ) {$A5=$row[1]; $recL++;}
    +#		if ( ($row[0]=='A6') and ($recL < 1) ) {$A6=$row[1]; $recL++;}
    +#		if ( ($row[0]=='A7') and ($recL < 1) ) {$A7=$row[1]; $recL++;}
    +#		if ( ($row[0]=='A8') and ($recL < 1) ) {$A8=$row[1]; $recL++;}
    +#		if ( ($row[0]=='A9') and ($recL < 1) ) {$A9=$row[1]; $recL++;}
    +		if ( ($row[0]=='DROP') and ($recL < 1) ) {$DROP=$row[1]; $recL++;}
    +		if ($recL < 1) {$OTHER=($row[1] + $OTHER); $recL++;}
    +		
    +		$j++;
    +		}
    +
    +	$totA1 = ($totA1 + $A1);	$TOTsales = ($TOTsales + $A1);
    +	$totA2 = ($totA2 + $A2);	$TOTsales = ($TOTsales + $A2);	$totTOP = ($totTOP + $A2);
    +	$totA3 = ($totA3 + $A3);	$TOTsales = ($TOTsales + $A3);	$totBOT = ($totBOT + $A3);
    +	$totA4 = ($totA4 + $A4);	$TOTsales = ($TOTsales + $A4);	$totTOP = ($totTOP + $A4);	$totBOT = ($totBOT + $A4);
    +	$totA5 = ($totA5 + $A5);
    +	$totA6 = ($totA6 + $A6);
    +	$totA7 = ($totA7 + $A7);
    +	$totA8 = ($totA8 + $A8);
    +	$totA9 = ($totA9 + $A9);
    +	$totDROP = ($totDROP + $DROP);
    +	$totOTHER = ($totOTHER + $OTHER);
    +	$totPOINTS = ($totPOINTS + $points);
    +
    +	if ( ($USERcallsRAW[$i] > 0) and ($sales > 0) ) {$Cpct = ( ($sales / ( ($USERcallsRAW[$i] - 0) - $DROP) ) * 100);}
    +		else {$Cpct=0;}
    +	$Cpct = round($Cpct, 2);
    +	$Cpct =	sprintf("%01.2f", $Cpct);
    +	$Cpct =	sprintf("%6s", $Cpct);
    +
    +	if ( ($sales > 0) and ($uTOP > 0) ) {$TOP = ( ($uTOP / $sales) * 100);}
    +		else {$TOP=0;}
    +	$TOP = round($TOP, 0);
    +	$TOP =	sprintf("%01.0f", $TOP);
    +	$TOP =	sprintf("%3s", $TOP);
    +
    +	if ( ($sales > 0) and ($uBOT > 0) ) {$BOT = ( ($uBOT / $sales) * 100);}
    +		else {$BOT=0;}
    +	$BOT = round($BOT, 0);
    +	$BOT =	sprintf("%01.0f", $BOT);
    +	$BOT =	sprintf("%3s", $BOT);
    +
    +	if ( ($USERcallsRAW[$i] > 0) and ($points > 0) ) {$ppc = ($points / ( ($USERcallsRAW[$i] - 0) - $DROP) );}
    +		else {$ppc=0;}
    +	$ppc = round($ppc, 2);
    +	$ppc =	sprintf("%01.2f", $ppc);
    +	$ppc =	sprintf("%4s", $ppc);
    +
    +
    +	$A1 =	sprintf("%4s", $A1);
    +	$A2 =	sprintf("%4s", $A2);
    +	$A3 =	sprintf("%4s", $A3);
    +	$A4 =	sprintf("%4s", $A4);
    +	$A5 =	sprintf("%4s", $A5);
    +	$A6 =	sprintf("%4s", $A6);
    +	$A7 =	sprintf("%4s", $A7);
    +	$A8 =	sprintf("%4s", $A8);
    +	$A9 =	sprintf("%4s", $A9);
    +	$DROP =	sprintf("%4s", $DROP);
    +	$OTHER =	sprintf("%4s", $OTHER);
    +	$sales =	sprintf("%4s", $sales);
    +
    +	echo "| $user[$i] - $full_name[$i] | $USERcalls[$i] | $A1 | $DROP | $OTHER | $sales |$Cpct%|\n";
    +
    +	$i++;
    +	}
    +
    +
    +if ( ($TOTcalls > 0) and ($TOTsales > 0) ) {$totCpct = ( ($TOTsales / ( ($TOTcalls - 0) - $totDROP) ) * 100);}
    +	else {$totCpct=0;}
    +$totCpct = round($totCpct, 2);
    +$totCpct =	sprintf("%01.2f", $totCpct);
    +$totCpct =	sprintf("%6s", $totCpct);
    +		
    +if ( ($TOTcalls > 0) and ($totPOINTS > 0) ) {$ppc = ($totPOINTS / ( ($TOTcalls - $totOTHER) - $totDROP) );}
    +	else {$ppc=0;}
    +$ppc = round($ppc, 2);
    +$ppc =	sprintf("%01.2f", $ppc);
    +$ppc =	sprintf("%4s", $ppc);
    +		
    +if ( ($TOTsales > 0) and ($totTOP > 0) ) {$TOP = ( ($totTOP / $TOTsales) * 100);}
    +	else {$TOP=0;}
    +$TOP = round($TOP, 0);
    +$TOP =	sprintf("%01.0f", $TOP);
    +$TOP =	sprintf("%3s", $TOP);
    +
    +if ( ($TOTsales > 0) and ($totBOT > 0) ) {$BOT = ( ($totBOT / $TOTsales) * 100);}
    +	else {$BOT=0;}
    +$BOT = round($BOT, 0);
    +$BOT =	sprintf("%01.0f", $BOT);
    +$BOT =	sprintf("%3s", $BOT);
    +
    +$TOTagents =	sprintf("%6s", $i);
    +$TOTcalls =		sprintf("%6s", $TOTcalls);
    +$totA1 =		sprintf("%5s", $totA1);
    +$totA2 =		sprintf("%5s", $totA2);
    +$totA3 =		sprintf("%5s", $totA3);
    +$totA4 =		sprintf("%5s", $totA4);
    +$totA5 =		sprintf("%5s", $totA5);
    +$totA6 =		sprintf("%5s", $totA6);
    +$totA7 =		sprintf("%5s", $totA7);
    +$totA8 =		sprintf("%5s", $totA8);
    +$totA9 =		sprintf("%5s", $totA9);
    +$totDROP =		sprintf("%5s", $totDROP);
    +$totOTHER =		sprintf("%5s", $totOTHER);
    +$TOTsales =		sprintf("%5s", $TOTsales);
    +
    +echo "+--------------------------+--------+------+------+------+------+-------+\n";
    +echo "| TOTAL CLOSERS:  $TOTagents   | $TOTcalls |$totA1 |$totDROP |$totOTHER |$TOTsales |$totCpct%|\n";
    +echo "+--------------------------+--------+------+------+------+------+-------+\n";
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +$ENDtime = date("U");
    +$RUNtime = ($ENDtime - $STARTtime);
    +if ($DB) {echo "\nRun Time: $RUNtime seconds\n";}
    +}
    +
    +
    +
    +
    +
    +?>
    +
    +
    + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/functions.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/functions.php new file mode 100644 index 00000000..f3a6e7b7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/functions.php @@ -0,0 +1,91 @@ + LICENSE: AGPLv2 +# +# +# CHANGES: +# 90524-1503 - First Build +# + +##### reformat seconds into HH:MM:SS or MM:SS ##### +function sec_convert($sec,$precision) + { + $sec = round($sec,0); + + if ($sec < 1) + { + return "0:00"; + } + else + { + if ($sec < 3600) {$precision='M';} + + if ($precision == 'H') + { + $Fhours_H = ($sec / 3600); + $Fhours_H_int = floor($Fhours_H); + $Fhours_H_int = intval("$Fhours_H_int"); + $Fhours_M = ($Fhours_H - $Fhours_H_int); + $Fhours_M = ($Fhours_M * 60); + $Fhours_M_int = floor($Fhours_M); + $Fhours_M_int = intval("$Fhours_M_int"); + $Fhours_S = ($Fhours_M - $Fhours_M_int); + $Fhours_S = ($Fhours_S * 60); + $Fhours_S = round($Fhours_S, 0); + if ($Fhours_S < 10) {$Fhours_S = "0$Fhours_S";} + if ($Fhours_M_int < 10) {$Fhours_M_int = "0$Fhours_M_int";} + $Ftime = "$Fhours_H_int:$Fhours_M_int:$Fhours_S"; + } + if ($precision == 'M') + { + $Fminutes_M = ($sec / 60); + $Fminutes_M_int = floor($Fminutes_M); + $Fminutes_M_int = intval("$Fminutes_M_int"); + $Fminutes_S = ($Fminutes_M - $Fminutes_M_int); + $Fminutes_S = ($Fminutes_S * 60); + $Fminutes_S = round($Fminutes_S, 0); + if ($Fminutes_S < 10) {$Fminutes_S = "0$Fminutes_S";} + $Ftime = "$Fminutes_M_int:$Fminutes_S"; + } + if ($precision == 'S') + { + $Ftime = $sec; + } + return "$Ftime"; + } + } + + +##### counts like elements in an array, optional sort asc desc ##### +function array_group_count($array, $sort = false) + { + $tally_array = array(); + + $i=0; + foreach (array_unique($array) as $value) + { + $count = 0; + foreach ($array as $element) + { + if ($element == "$value") + {$count++;} + } + + $count = sprintf("%010s", $count); + $tally_array[$i] = "$count $value"; + $i++; + } + + if ( $sort == 'desc' ) + {rsort($tally_array);} + elseif ( $sort == 'asc' ) + {sort($tally_array);} + + return $tally_array; + } + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/group_hourly_stats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/group_hourly_stats.php new file mode 100644 index 00000000..096e3378 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/group_hourly_stats.php @@ -0,0 +1,295 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 60620-1014 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 90310-2138 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["date_with_hour"])) {$date_with_hour=$_GET["date_with_hour"];} + elseif (isset($_POST["date_with_hour"])) {$date_with_hour=$_POST["date_with_hour"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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"); +$TODAY = date("Y-m-d"); +$date_with_hour_default = date("Y-m-d H"); +$date_no_hour_default = $TODAY; + +if (!isset($date_with_hour)) {$date_with_hour = $date_with_hour_default;} + $date_no_hour = $date_with_hour; + $date_no_hour = eregi_replace(" ([0-9]{2})",'',$date_no_hour); +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + +# $stmt="SELECT full_name from vicidial_users where user='$user';"; +# $rslt=mysql_query($stmt, $link); +# $row=mysql_fetch_row($rslt); +# $full_name = $row[0]; + + } + + + + +?> + + + +ADMINISTRATION: Group Hourly Stats +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   Group Hourly Stats <?php echo $group ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +if ( ($group) and ($status) and ($date_with_hour) ) +{ +$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";} +$rslt=mysql_query($stmt, $link); +$tsrs_to_print = mysql_num_rows($rslt); + $o=0; + while($o < $tsrs_to_print) + { + $row=mysql_fetch_row($rslt); + $VDuser[$o] = "$row[0]"; + $VDname[$o] = "$row[1]"; + $o++; + } + + $o=0; + while($o < $tsrs_to_print) + { + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDtotal[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDday[$o] = "$row[0]"; + + $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";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $VDcount[$o] = "$row[0]"; + $o++; + } + +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +echo "<B>TSR HOUR COUNTS: <a href=\"./admin.php?ADD=3111&group_id=$group\">$group</a> | $status | $date_with_hour | $date_no_hour</B>\n"; + +echo "<center><TABLE width=600 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>TSR </td><td align=left><font size=2>ID </td><td align=right><font size=2>   $status</td><td align=right><font size=2>   TOTAL CALLS</td><td align=right><font size=2>   $status DAY</td><td align=right><font size=2>     </td></tr>\n"; + + $day_calls=0; + $hour_calls=0; + $total_calls=0; + $o=0; + while($o < $tsrs_to_print) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo "<tr $bgcolor><td><font size=2>$VDuser[$o]</td>"; + echo "<td align=left><font size=2> $VDname[$o]</td>\n"; + echo "<td align=right><font size=2> $VDcount[$o]</td>\n"; + echo "<td align=right><font size=2> $VDtotal[$o]</td>\n"; + echo "<td align=right><font size=2> $VDday[$o]</td>\n"; + echo "<td align=right><font size=1><a href=\"./admin.php?ADD=3&user=$VDuser[$o]\">MODIFY</a> | <a href=\"./user_stats.php?user=$VDuser[$o]\">STATS</a></td></tr>\n"; + $total_calls = ($total_calls + $VDtotal[$o]); + $hour_calls = ($hour_calls + $VDcount[$o]); + $day_calls = ($day_calls + $VDday[$o]); + + $o++; + } + +echo "<tr><td><font size=2>TOTAL </td><td align=right><font size=2> $status </td><td align=right><font size=2> $hour_calls</td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $day_calls</td></tr>\n"; + + +} + +echo "</TABLE></center>\n"; +echo "<br><br>\n"; + + + echo "<br>Please enter the group you want to get hourly stats for: <form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=$DB>\n"; + echo "group: <select size=1 name=group>\n"; + + $stmt="SELECT user_group,group_name from vicidial_user_groups order by user_group"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $o=0; + $groups_list=''; + while ($groups_to_print > $o) { + $rowx=mysql_fetch_row($rslt); + if ($group == $group) + {$groups_list .= "<option selected value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + else + {$groups_list .= "<option value=\"$rowx[0]\">$rowx[0] - $rowx[1]</option>\n";} + $o++; + } + echo "$groups_list</select><br>\n"; + echo "status: <input type=text name=status size=10 maxlength=10 value=\"$status\">   (example: XFER)<br>\n"; + echo "date with hour: <input type=text name=date_with_hour size=14 maxlength=13 value=\"$date_with_hour\">   (example: 2004-06-25 14)<br>\n"; + echo "<input type=submit name=submit value=SUBMIT>\n"; + echo "<BR><BR><BR>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds</font>"; + + +?> + + +</TD></TR></TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/help.gif b/agc_2-X/branches/agc_2.2.0/www/vicidial/help.gif new file mode 100644 index 00000000..5575d7c8 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/help.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/high_pitch.mid b/agc_2-X/branches/agc_2.2.0/www/vicidial/high_pitch.mid new file mode 100644 index 00000000..40b32750 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/high_pitch.mid differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/list_download.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/list_download.php new file mode 100644 index 00000000..440f143a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/list_download.php @@ -0,0 +1,132 @@ +<?php +# list_download.php +# +# downloads the entire contents of a vicidial list ID to a flat text file +# that is tab delimited +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 90209-1310 - First build +# 90508-0644 - Changed to PHP long tags +# 90721-1238 - Added rank and owner as vicidial_list fields +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 > 7 and download_lists='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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 or no list download permission: |$PHP_AUTH_USER|\n"; + exit; + } + +$stmt="select count(*) from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$count_to_print = mysql_num_rows($rslt); +if ($count_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $leads_count =$row[0]; + $i++; + } + +if ($leads_count < 1) + { + echo "There are no leads in list_id: $list_id\n"; + exit; + } + +$US='_'; +$MT[0]=''; +$ip = getenv("REMOTE_ADDR"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_TIME = date("Ymd-His"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +### LOG INSERTION Admin Log Table ### +$SQL_log = "$stmt|$stmtA|"; +$SQL_log = ereg_replace(';','',$SQL_log); +$SQL_log = addslashes($SQL_log); +$stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LEADS', event_type='EXPORT', record_id='$list_id', event_code='ADMIN EXPORT LIST', event_sql=\"$SQL_log\", event_notes='';"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); + + +$TXTfilename = "LIST_$list_id$US$FILE_TIME.txt"; + +// We'll be outputting a TXT file +header('Content-type: application/octet-stream'); + +// It will be called LIST_101_20090209-121212.txt +header("Content-Disposition: attachment; filename=\"$TXTfilename\""); +header('Expires: 0'); +header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); +header('Pragma: public'); +ob_clean(); +flush(); + +$stmt="select lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where list_id='$list_id';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$leads_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $leads_to_print) + { + $row=mysql_fetch_row($rslt); + + echo "$row[0]\t$row[1]\t$row[2]\t$row[3]\t$row[4]\t$row[5]\t$row[6]\t$row[7]\t$row[8]\t$row[9]\t$row[10]\t$row[11]\t$row[12]\t$row[13]\t$row[14]\t$row[15]\t$row[16]\t$row[17]\t$row[18]\t$row[19]\t$row[20]\t$row[21]\t$row[22]\t$row[23]\t$row[24]\t$row[25]\t$row[26]\t$row[27]\t$row[28]\t$row[29]\t$row[30]\t$row[31]\t$row[32]\t$row[33]\r\n"; + + $i++; + } + +exit; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader.pl b/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader.pl new file mode 100644 index 00000000..052d93e0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader.pl @@ -0,0 +1,1160 @@ +#!/usr/bin/perl +# +# listloader.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# +# CHANGES +# 60616-1548 - Added listID override feature to force all leads into same list +# - Added gmt_offset_now lookup for each lead +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 60822-1121 - fixed for nonwritable directories +# 60906-1058 - added filter of non-digits in alt_phone field +# 61110-1229 - added new USA-Canada DST scheme and Brazil DST scheme +# 61128-1215 - added postal code GMT lookup and duplicate check options +# 70205-1703 - Defaulted phone_code to 1 if not populated +# 70417-1059 - Fixed default phone_code bug +# 70510-1518 - Added campaign and system duplicate check and phonecode override +# 80428-0144 - UTF8 cleanup +# 80713-0023 - added last_local_call_time field default of 2008-01-01 +# 90721-1425 - Added rank and owner as vicidial_list fields +# 91112-0616 - Added title/alt-phone duplicate checking +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) + { + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-duplicate-campaign-check/i) + {$dupcheckcamp=1;} + if ($args =~ /-duplicate-system-check/i) + {$dupchecksys=1;} + if ($args =~ /-duplicate-tap-list-check/i) + {$duptapchecklist=1;} + if ($args =~ /-duplicate-tap-system-check/i) + {$duptapchecksys=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--forcelistid=/i) + { + @data_in = split(/--forcelistid=/,$args); + $forcelistid = $data_in[1]; + $forcelistid =~ s/ .*//gi; + print "\n----- FORCE LISTID OVERRIDE: $forcelistid -----\n\n"; + } + else + {$forcelistid = '';} + + if ($args =~ /--forcephonecode=/i) + { + @data_in = split(/--forcephonecode=/,$args); + $forcephonecode = $data_in[1]; + $forcephonecode =~ s/ .*//gi; + print "\n----- FORCE PHONECODE OVERRIDE: $forcephonecode -----\n\n"; + } + else + {$forcephonecode = '';} + + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } + } +### end parsing run-time options ### + + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = <conf>; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$|=0; +$secX = time(); + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); +$year = ($year + 1900); +$mon++; +if ($hour < 10) {$hour = "0$hour";} +if ($min < 10) {$min = "0$min";} +if ($sec < 10) {$sec = "0$sec";} +if ($mon < 10) {$mon = "0$mon";} +if ($mday < 10) {$mday = "0$mday";} +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$pulldate="$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmtA = "SELECT use_non_latin FROM system_settings;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $non_latin = "$aryA[0]"; + } +$sthA->finish(); +##### END SETTINGS LOOKUP ##### +########################################### + + +if ($non_latin > 0) {$affected_rows = $dbhA->do("SET NAMES 'UTF8'");} + + ### Grab Server values from the database + $stmtA = "SELECT local_gmt FROM servers where server_ip = '$server_ip';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $DBSERVER_GMT = "$aryA[0]"; + if ($DBSERVER_GMT) {$SERVER_GMT = $DBSERVER_GMT;} + $rec_count++; + } + $sthA->finish(); + + $LOCAL_GMT_OFF = $SERVER_GMT; + $LOCAL_GMT_OFF_STD = $SERVER_GMT; + +if ($isdst) {$LOCAL_GMT_OFF++;} +if ($DB) {print "SEED TIME $secX : $year-$mon-$mday $hour:$min:$sec LOCAL GMT OFFSET NOW: $LOCAL_GMT_OFF\n";} + + + +$total=0; $good=0; $bad=0; +print "<center><font face='arial, helvetica' size=3 color='#009900'><B>Processing Excel file...\n"; +open(STMT_FILE, "> $PATHlogs/listloader_stmts.txt"); + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for($iR = 0 ; defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) { + + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user = ""; + $oWkC = $oWkS->{Cells}[$iR][0]; + if ($oWkC) {$vendor_lead_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][1]; + if ($oWkC) {$source_code=$oWkC->Value; } + $source_id=$source_code; + $oWkC = $oWkS->{Cells}[$iR][2]; + if ($oWkC) {$list_id=$oWkC->Value; } + $gmt_offset = '0'; + $called_since_last_reset='N'; + $oWkC = $oWkS->{Cells}[$iR][3]; + if ($oWkC) {$phone_code=$oWkC->Value; } + $phone_code=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][4]; + if ($oWkC) {$phone_number=$oWkC->Value; } + $phone_number=~s/[^0-9]//g; + $USarea = substr($phone_number, 0, 3); + $oWkC = $oWkS->{Cells}[$iR][5]; + if ($oWkC) {$title=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][6]; + if ($oWkC) {$first_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][7]; + if ($oWkC) {$middle_initial=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][8]; + if ($oWkC) {$last_name=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][9]; + if ($oWkC) {$address1=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][10]; + if ($oWkC) {$address2=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][11]; + if ($oWkC) {$address3=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][12]; + if ($oWkC) {$city=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][13]; + if ($oWkC) {$state=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][14]; + if ($oWkC) {$province=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][15]; + if ($oWkC) {$postal_code=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][16]; + if ($oWkC) {$country=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][17]; + if ($oWkC) {$gender=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][18]; + if ($oWkC) {$date_of_birth=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][19]; + if ($oWkC) {$alt_phone=$oWkC->Value; } + $alt_phone=~s/[^0-9]//g; + $oWkC = $oWkS->{Cells}[$iR][20]; + if ($oWkC) {$email=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][21]; + if ($oWkC) {$security_phrase=$oWkC->Value; } + $oWkC = $oWkS->{Cells}[$iR][22]; + if ($oWkC) {$comments=$oWkC->Value; } + $comments=~s/^\s*(.*?)\s*$/$1/; + $oWkC = $oWkS->{Cells}[$iR][23]; + if ($oWkC) {$rank=$oWkC->Value; } + if (length($rank)<1) {$rank='0';} + $oWkC = $oWkS->{Cells}[$iR][24]; + if ($oWkC) {$owner=$oWkC->Value; } + + if (length($forcelistid) > 0) + { + $list_id = $forcelistid; # set list_id to override value + } + if (length($forcephonecode) > 0) + { + $phone_code = $forcephonecode; # set phone_code to override value + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if ($dupchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where phone_number='$phone_number';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if ($dupcheck > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if ($dupcheckcamp > 0) + { + $dup_lead=0; + $dup_lists=''; + + $stmtA = "select count(*) from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $ci_recs = $aryA[0]; + $sthA->finish(); + if ($ci_recs > 0) + { + $stmtA = "select campaign_id from vicidial_lists where list_id='$list_id';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + @aryA = $sthA->fetchrow_array; + $dup_camp = $aryA[0]; + $sthA->finish(); + + $stmtA = "select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lists .= "'$aryA[0]',"; + $rec_count++; + } + $sthA->finish(); + + chop($dup_lists); + $stmtA = "select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = "'$aryA[0]',"; + $rec_count++; + $dup_lead=1; + } + $sthA->finish(); + } + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$phone_number$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table entire database ##### + if ($duptapchecksys > 0) + { + $dup_lead=0; + $stmtA = "select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead = $aryA[0]; + $dup_lead_list=$list_id; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + ##### Check for duplicate title/alt-phone in vicidial_list table for one list_id ##### + if ($duptapchecklist > 0) + { + $dup_lead=0; + $stmtA = "select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + if ($sthArows > 0) + { + @aryA = $sthA->fetchrow_array; + $dup_lead_list = $aryA[0]; + $dup_lead++; + } + $sthA->finish(); + if ($dup_lead < 1) + { + if ($phone_list =~ /\|$alt_phone$title$US$list_id\|/) + {$dup_lead++;} + } + } + + if ( (length($phone_number)>6) && ($dup_lead < 1) ) + { + if ( ($duptapchecklist > 0) || ($duptapchecksys > 0) ) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + $postalgmt_found=0; + if (length($phone_code)<1) {$phone_code = '1';} + + if ( ($postalgmt > 0) && (length($postal_code)>4) ) + { + if ($phone_code =~ /^1$/) + { + $stmtA = "select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[2]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[3]; + $dst_range = $aryA[4]; + $PC_processed++; + $rec_count++; + $postalgmt_found++; + if ($DBX) {print " Postal GMT record found for $postal_code: |$gmt_offset|$dst|$dst_range|\n";} + } + $sthA->finish(); + } + } + if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =~ /^1$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### MEXICO ### + if ($phone_code =~ /^52$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### AUSTRALIA ### + if ($phone_code =~ /^61$/) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $stmtA = "select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + if($DBX){print STDERR "\n|$stmtA|\n";} + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $gmt_offset = $aryA[4]; $gmt_offset =~ s/\+| //gi; + $dst = $aryA[5]; + $dst_range = $aryA[6]; + $PC_processed++; + $rec_count++; + } + $sthA->finish(); + } + } + + ### Find out if DST to raise the gmt offset ### + $AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); + $AC_localtime = ($secX + (3600 * $AC_GMT_diff)); + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($AC_localtime); + $year = ($year + 1900); + $mon++; + if ($mon < 10) {$mon = "0$mon";} + if ($mday < 10) {$mday = "0$mday";} + if ($hour < 10) {$hour = "0$hour";} + if ($min < 10) {$min = "0$min";} + if ($sec < 10) {$sec = "0$sec";} + $dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + + $AC_processed=0; + + if ( (!$AC_processed) && ($dst_range =~ /SSM-FSN/) ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + &USACAN_dstcalc; + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSA-LSO/) ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + &NA_dstcalc; + if ($DBX) {print " DST: $NA_DST\n";} + if ($NA_DST) {$area_GMT++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSM-LSO/) ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + &GBR_dstcalc; + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /LSO-LSM/) ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + &AUS_dstcalc; + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-LSM/) ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + &AUST_dstcalc; + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /FSO-TSM/) ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + &NZL_dstcalc; + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + if ( (!$AC_processed) && ($dst_range =~ /TSO-LSF/) ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + &BZL_dstcalc; + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$area_GMT++;} + $AC_processed++; + } + if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner');"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$called_since_last_reset','$phone_code','$phone_number','$title','$first_name','$middle_initial','$last_name','$address1','$address2','$address3','$city','$state','$province','$postal_code','$country','$gender','$date_of_birth','$alt_phone','$email','$security_phrase','$comments',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 10000) {print "<BR></b><font size=1 color=red>record $total BAD- PHONE: $phone_number ROW: |$row[0]| $dup_lead_list</font><b>\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print "<script language='JavaScript1.2'>ShowProgress($good, $bad, $total, $dup_lead, $postalgmt_found)</script>"; + sleep(1); +# flush(); + } + } +} + +if ($multi_insert_counter > 0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values ".substr($multistmt, 0, -1).";"; + $affected_rows = $dbhA->do($stmtZ); + print STMT_FILE $stmtZ."\r\n"; +} + +print "<BR><BR>Done</B> GOOD: $good       BAD: $bad       TOTAL: $total</font></center>"; + +exit; + + + + + + +sub USACAN_dstcalc { +#********************************************************************** +# SSM-FSN +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on Second Sunday March to First Sunday November at 2 am. +# INPUTS: +# mm INTEGER Month. +# dd INTEGER Day of the month. +# ns INTEGER Seconds into the day. +# dow INTEGER Day of week (0=Sunday, to 6=Saturday) +# OPTIONAL INPUT: +# timezone INTEGER hour difference UTC - local standard time +# (DEFAULT is blank) +# make calculations based on UTC time, +# which means shift at 10:00 UTC in April +# and 9:00 UTC in October +# OUTPUT: +# INTEGER 1 = DST, 0 = not DST +# +# S M T W T F S +# 1 2 3 4 5 6 7 +# 8 9 10 11 12 13 14 +#15 16 17 18 19 20 21 +#22 23 24 25 26 27 28 +#29 30 31 +# +# S M T W T F S +# 1 2 3 4 5 6 +# 7 8 9 10 11 12 13 +#14 15 16 17 18 19 20 +#21 22 23 24 25 26 27 +#28 29 30 31 +# +#********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 10) { + $USACAN_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; return 1; + } elsif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $USACAN_DST=0; return 0; + } else { + $USACAN_DST=1; return 1; + } + } + } else { + $USACAN_DST=0; return 0; + } + } elsif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; return 0; + } elsif ($dd < ($dow+1)) { + $USACAN_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; return 1; + } else { + $USACAN_DST=0; return 0; + } + } + } else { + $USACAN_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub NA_dstcalc { +#********************************************************************** +# FSA-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in April and last Sunday in October at 2 am. +#********************************************************************** + + $NA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $NA_DST=0; return 0; + } elsif ($mm >= 5 && $mm <= 9) { + $NA_DST=1; return 1; + } elsif ($mm == 4) { + if ($dd > 7) { + $NA_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 7200) { + $NA_DST=0; return 0; + } else { + $NA_DST=1; return 1; + } + } + } else { + $NA_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $NA_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $NA_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 7200) { + $NA_DST=1; return 1; + } else { + $NA_DST=0; return 0; + } + } + } else { + $NA_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub GBR_dstcalc { +#********************************************************************** +# LSM-LSO +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in March and last Sunday in October at 1 am. +#********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; return 0; + } elsif ($mm >= 4 && $mm <= 9) { + $GBR_DST=1; return 1; + } elsif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $GBR_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; return 0; + } else { + $GBR_DST=1; return 1; + } + } + } else { + $GBR_DST=1; return 1; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $GBR_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; return 1; + } else { + $GBR_DST=0; return 0; + } + } + } else { + $GBR_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub AUS_dstcalc { +#********************************************************************** +# LSO-LSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on last Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUS_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUS_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; return 1; + } else { + $AUS_DST=0; return 0; + } + } + } else { + $AUS_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; return 0; + } elsif ($dd < ($dow+25)) { + $AUS_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; return 0; + } else { + $AUS_DST=1; return 1; + } + } + } else { + $AUS_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub AUST_dstcalc { +#********************************************************************** +# FSO-LSM +# TASMANIA ONLY +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and last Sunday in March at 1 am. +#********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $AUST_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; return 1; + } elsif ($dd < ($dow+25)) { + $AUST_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; return 1; + } else { + $AUST_DST=0; return 0; + } + } + } else { + $AUST_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $AUST_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $AUST_DST=0; return 0; + } else { + $AUST_DST=1; return 1; + } + } + } else { + $AUST_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + + +sub NZL_dstcalc { +#********************************************************************** +# FSO-TSM +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. +# Based on first Sunday in October and third Sunday in March at 1 am. +#********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; return 1; + } elsif ($mm >= 4 && $mm <= 9) { + $NZL_DST=0; return 0; + } elsif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; return 1; + } elsif ($dd < ($dow+14)) { + $NZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; return 1; + } else { + $NZL_DST=0; return 0; + } + } + } else { + $NZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd >= 8) { + $NZL_DST=1; return 1; + } elsif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 && $ns < (7200+$timezone*3600)) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } else { + if ($dow == 0 && $ns < 3600) { + $NZL_DST=0; return 0; + } else { + $NZL_DST=1; return 1; + } + } + } else { + $NZL_DST=0; return 0; + } + } # end of month checks +} # end of subroutine dstcalc + + + + +sub BZL_dstcalc { +#********************************************************************** +# TSO-LSF +# This is returns 1 if Daylight Savings Time is in effect and 0 if +# Standard time is in effect. Brazil +# Based on Third Sunday October to Last Sunday February at 1 am. +#********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; return 1; + } elsif ($mm >= 3 && $mm <= 9) { + $BZL_DST=0; return 0; + } elsif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; return 1; + } elsif ($dd < ($dow+22)) { + $BZL_DST=1; return 1; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; return 1; + } else { + $BZL_DST=0; return 0; + } + } + } else { + $BZL_DST=0; return 0; + } + } elsif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; return 0; + } elsif ($dd < ($dow+22)) { + $BZL_DST=0; return 0; + } elsif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; return 0; + } else { + $BZL_DST=1; return 1; + } + } + } else { + $BZL_DST=1; return 1; + } + } # end of month checks +} # end of subroutine dstcalc diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/listloaderMAIN.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/listloaderMAIN.php new file mode 100644 index 00000000..acd614fb --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/listloaderMAIN.php @@ -0,0 +1,87 @@ +<?php +# listloaderMAIN.php +# +# Copyright (C) 2009 Matt Florell,Joe Johnson <vicidial@gmail.com> LICENSE: AGPLv2 +# +# 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 +# +# changes: +# 60620-1149 - Added variable filtering to eliminate SQL injection attack threat +# 60822-1105 - fixed for nonwritable directories +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +if ($WeBRooTWritablE > 0) {$fp = fopen ("./project_auth_entries.txt", "a");} +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-LEAD-LOADER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + header ("Content-type: text/html; charset=utf-8"); + if($auth>0) + { + $office_no=strtoupper($PHP_AUTH_USER); + $password=strtoupper($PHP_AUTH_PW); + $stmt="SELECT load_leads from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGload_leads =$row[0]; + + if ($LOGload_leads < 1) + { + echo "You do not have permissions to load leads\n"; + exit; + } + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($WeBRooTWritablE > 0) + { + fwrite ($fp, "LIST_LOAD|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +?><HTML> +<HEAD> +<TITLE>VICIDIAL: Lead Loader Module + + + + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader_rowdisplay.pl b/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader_rowdisplay.pl new file mode 100644 index 00000000..9caaeab2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/listloader_rowdisplay.pl @@ -0,0 +1,154 @@ +#!/usr/bin/perl +# +# listloader_rowdisplay.pl version 2.2.0 +# +# Copyright (C) 2009 Matt Florell,Joe Johnson LICENSE: AGPLv2 +# +# +# CHANGES +# +# 60811-1232 - Changed to DBI +# 60811-1329 - changed to use /etc/astguiclient.conf for configs +# 90721-1340 - Added rank and owner as vicidial_list fields +# + +### begin parsing run-time options ### +if (length($ARGV[0])>1) +{ + $i=0; + while ($#ARGV >= $i) + { + $args = "$args $ARGV[$i]"; + $i++; + } + + if ($args =~ /--help|-h/i) + { + print "allowed run time options:\n [-forcelistid=1234] = overrides the listID given in the file with the 1234\n [-h] = this help screen\n\n"; + + exit; + } + else + { + if ($args =~ /-duplicate-check/i) + {$dupcheck=1;} + if ($args =~ /-postal-code-gmt/i) + {$postalgmt=1;} + if ($args =~ /--lead-file=/i) + { + @data_in = split(/--lead-file=/,$args); + $lead_file = $data_in[1]; + $lead_file =~ s/ .*//gi; + # print "\n----- LEAD FILE: $lead_file -----\n\n"; + } + else + {$lead_file = './vicidial_temp_file.xls';} + } +} +### end parsing run-time options ### + +use Spreadsheet::ParseExcel; +use Time::Local; +use DBI; + + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + + +$oBook = Spreadsheet::ParseExcel::Workbook->Parse("$lead_file"); +my($iR, $iC, $oWkS, $oWkC); +$var_str=""; + +foreach $oWkS (@{$oBook->{Worksheet}}) { + for(my $iC = $oWkS->{MinCol} ; defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ; $iC++) { + $oWkC = $oWkS->{Cells}[0][$iC]; + if ($oWkC) { + $var_str.=$oWkC->Value."|"; + } else { + $var_str.="|"; + } + } +} + +@xls_row=split(/\|/, $var_str); + + +$stmtA = "select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + my $names = $sthA->{'NAME'}; + my $numFields = $sthA->{'NUM_OF_FIELDS'}; + for (my $i = 0; $i < $numFields; $i++) + { + # printf("%s%s", $i ? "," : "", $$names[$i]); + # printf("%s%s", $i ? "," : "", $$ref[$i]); + + $field_name=uc($$names[$i]); + $field_name=~s/\_/ /g; + print "
    ".$field_name.": \r\n"; + print " \r\n"; + print "
    "; +?> + + +
    method=post onSubmit="ParseFileName()" enctype="multipart/form-data"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Load leads from this file:
    List ID Override: (numbers only or leave blank for values in the file)
    Phone Code Override: (numbers only or leave blank for values in the file)
    File layout to use:Standard Format    Custom layout
    Lead Duplicate Check:
    Lead Time Zone Lookup:
            
            BACK TO ADMINLIST LOADER-     VERSION:     BUILD:    
    + + +document.forms[0].leadfile.disabled=true;document.forms[0].list_id_override.disabled=true;document.forms[0].phone_code_override.disabled=true; document.forms[0].submit_file.disabled=true; document.forms[0].reload_page.disabled=true;"; + flush(); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.txt"); + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + { + $stmt_file=fopen("listloader_stmts.txt", "w"); + } + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + print "
    Processing $delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

    LIST ID OVERRIDE FOR THIS FILE: $list_id_override

    "; + } + + if (strlen($phone_code_override)>0) + { + print "

    PHONE CODE OVERRIDE FOR THIS FILE: $phone_code_override

    "; + } + + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($list_id_override)>0) + { + # print "

    LIST ID OVERRIDE FOR THIS FILE: $list_id_override

    "; + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
    record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead $dup_lead_list\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

    Done
    GOOD: $good       BAD: $bad       TOTAL: $total
    "; + + } else { + print "
    ERROR: The file does not have the required number of fields to process it.
    "; + } + } else if (!eregi(".csv", $leadfile_name)) { + # copy($leadfile, "./vicidial_temp_file.xls"); + $file=fopen("$lead_file", "r"); + + print "
    Processing Excel file... \n"; + if (strlen($list_id_override)>0) + { + print "

    LIST ID OVERRIDE FOR THIS FILE: $list_id_override

    \n"; + } + if (strlen($phone_code_override)>0) + { + print "

    PHONE CODE OVERRIDE FOR THIS FILE: $phone_code_override

    \n"; + } + # print "|$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --lead_file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_super.pl $vendor_lead_code_field,$source_id_field,$list_id_field,$phone_code_field,$phone_number_field,$title_field,$first_name_field,$middle_initial_field,$last_name_field,$address1_field,$address2_field,$address3_field,$city_field,$state_field,$province_field,$postal_code_field,$country_code_field,$gender_field,$date_of_birth_field,$alt_phone_field,$email_field,$security_phrase_field,$comments_field,$rank_field,$owner_field, --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } else { + # copy($leadfile, "./vicidial_temp_file.csv"); + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
    Processing CSV file... \n"; + if (strlen($list_id_override)>0) + { + print "

    LIST ID OVERRIDE FOR THIS FILE: $list_id_override

    "; + } + + if (strlen($phone_code_override)>0) + { + print "

    PHONE CODE OVERRIDE FOR THIS FILE: $phone_code_override

    "; + } + + while($row=fgetcsv($file, 1000, ",")) { + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[$vendor_lead_code_field]; + $source_code = $row[$source_id_field]; + $source_id=$source_code; + $list_id = $row[$list_id_field]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[$phone_code_field]); + $phone_number = eregi_replace("[^0-9]", "", $row[$phone_number_field]); + $USarea = substr($phone_number, 0, 3); + $title = $row[$title_field]; + $first_name = $row[$first_name_field]; + $middle_initial = $row[$middle_initial_field]; + $last_name = $row[$last_name_field]; + $address1 = $row[$address1_field]; + $address2 = $row[$address2_field]; + $address3 = $row[$address3_field]; + $city =$row[$city_field]; + $state = $row[$state_field]; + $province = $row[$province_field]; + $postal_code = $row[$postal_code_field]; + $country_code = $row[$country_code_field]; + $gender = $row[$gender_field]; + $date_of_birth = $row[$date_of_birth_field]; + $alt_phone = eregi_replace("[^0-9]", "", $row[$alt_phone_field]); + $email = $row[$email_field]; + $security_phrase = $row[$security_phrase_field]; + $comments = trim($row[$comments_field]); + $rank = $row[$rank_field]; + $owner = $row[$owner_field]; + + if (strlen($rank)<1) {$rank='0';} + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
    record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + print "

    Done
    GOOD: $good       BAD: $bad       TOTAL: $total
    "; + } + print ""; + } + +if ($leadfile) { + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + + ### LOG INSERTION Admin Log Table ### + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='LISTS', event_type='LOAD', record_id='$list_id_override', event_code='ADMIN LOAD LIST', event_sql='', event_notes='File Name: $leadfile_name';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + if ($file_layout=="standard") { + + print ""; + flush(); + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) { + + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "./vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + + if (count($field_check)>=5) { + flush(); + $file=fopen("$lead_file", "r"); + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + print "
    Processing $delim_name-delimited file... ($tab_count|$pipe_count)\n"; + if (strlen($list_id_override)>0) + { + print "

    LIST ID OVERRIDE FOR THIS FILE: $list_id_override

    "; + } + if (strlen($phone_code_override)>0) + { + print "

    PHONE CODE OVERRIDE FOR THIS FILE: $phone_code_override

    \n"; + } + while (!feof($file)) { + $record++; + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + + if (strlen($buffer)>0) { + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
    record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

    Done
    GOOD: $good       BAD: $bad       TOTAL: $total
    "; + + } else { + print "
    ERROR: The file does not have the required number of fields to process it.
    "; + } + } else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + $file=fopen("$lead_file", "r"); + + # echo "|$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader.pl --forcelistid=$list_id_override --forcephonecode=$phone_code_override --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
    Processing CSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

    LIST ID OVERRIDE FOR THIS FILE: $list_id_override

    "; + } + if (strlen($phone_code_override)>0) + { + print "

    PHONE CODE OVERRIDE FOR THIS FILE: $phone_code_override

    "; + } + + while($row=fgetcsv($file, 1000, ",")) { + $pulldate=date("Y-m-d H:i:s"); + $entry_date = "$pulldate"; + $modify_date = ""; + $status = "NEW"; + $user =""; + $vendor_lead_code = $row[0]; + $source_code = $row[1]; + $source_id=$source_code; + $list_id = $row[2]; + $gmt_offset = '0'; + $called_since_last_reset='N'; + $phone_code = eregi_replace("[^0-9]", "", $row[3]); + $phone_number = eregi_replace("[^0-9]", "", $row[4]); + $USarea = substr($phone_number, 0, 3); + $title = $row[5]; + $first_name = $row[6]; + $middle_initial = $row[7]; + $last_name = $row[8]; + $address1 = $row[9]; + $address2 = $row[10]; + $address3 = $row[11]; + $city =$row[12]; + $state = $row[13]; + $province = $row[14]; + $postal_code = $row[15]; + $country_code = $row[16]; + $gender = $row[17]; + $date_of_birth = $row[18]; + $alt_phone = eregi_replace("[^0-9]", "", $row[19]); + $email = $row[20]; + $security_phrase = $row[21]; + $comments = trim($row[22]); + $rank = $row[23]; + $owner = $row[24]; + + if (strlen($list_id_override)>0) + { + $list_id = $list_id_override; + } + if (strlen($phone_code_override)>0) + { + $phone_code = $phone_code_override; + } + + ##### Check for duplicate phone numbers in vicidial_list table for all lists in a campaign ##### + if (eregi("DUPCAMP",$dupcheck)) + { + $dup_lead=0; + $dup_lists=''; + $stmt="select campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$dup_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $dup_lists .= "'$row[0]',"; + $L++; + } + $dup_lists = eregi_replace(",$",'',$dup_lists); + + $stmt="select list_id from vicidial_list where phone_number='$phone_number' and list_id IN($dup_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPSYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where phone_number='$phone_number';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table for one list_id ##### + if (eregi("DUPLIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where phone_number='$phone_number' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$phone_number$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate title and alt-phone in vicidial_list table for one list_id ##### + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) + { + $dup_lead=0; + $stmt="select count(*) from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $dup_lead = $row[0]; + $dup_lead_list = $list_id; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + ##### Check for duplicate phone numbers in vicidial_list table entire database ##### + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) + { + $dup_lead=0; + $stmt="select list_id from vicidial_list where title='$title' and alt_phone='$alt_phone';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $dup_lead=1; + $row=mysql_fetch_row($rslt); + $dup_lead_list = $row[0]; + } + if ($dup_lead < 1) + { + if (eregi("$alt_phone$title$US$list_id",$phone_list)) + {$dup_lead++; $dup++;} + } + } + + if ( (strlen($phone_number)>6) and ($dup_lead<1) ) + { + if (strlen($phone_code)<1) {$phone_code = '1';} + + if (eregi("TITLEALTPHONE",$dupcheck)) + {$phone_list .= "$alt_phone$title$US$list_id|";} + else + {$phone_list .= "$phone_number$US$list_id|";} + + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + if ($multi_insert_counter > 8) { + ### insert good deal into pending_transactions table ### + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values$multistmt('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner');"; + $rslt=mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + $multistmt=''; + $multi_insert_counter=0; + + } else { + $multistmt .= "('','$entry_date','$modify_date','$status','$user','$vendor_lead_code','$source_id','$list_id','$gmt_offset','$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',0,'2008-01-01 00:00:00','$rank','$owner'),"; + $multi_insert_counter++; + } + + $good++; + } else { + if ($bad < 1000000) {print "
    record $total BAD- PHONE: $phone_number ROW: |$row[0]| DUP: $dup_lead\n";} + $bad++; + } + $total++; + if ($total%100==0) { + print ""; + usleep(1000); + flush(); + } + } + if ($multi_insert_counter!=0) { + $stmtZ = "INSERT INTO vicidial_list (lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner) values".substr($multistmt, 0, -1).";"; + mysql_query($stmtZ, $link); + if ($WeBRooTWritablE > 0) + {fwrite($stmt_file, $stmtZ."\r\n");} + } + + print "

    Done
    GOOD: $good       BAD: $bad       TOTAL: $total
    "; + + } + print ""; + + } else { + print "
    "; + flush(); + print "\r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + + $rslt=mysql_query("select vendor_lead_code, source_id, list_id, 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, rank, owner from vicidial_list limit 1", $link); + + + if (!eregi(".csv", $leadfile_name) && !eregi(".xls", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.txt"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.txt"); + $lead_file = "/tmp/vicidial_temp_file.txt"; + } + $file=fopen("$lead_file", "r"); + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + $buffer=fgets($file, 4096); + $tab_count=substr_count($buffer, "\t"); + $pipe_count=substr_count($buffer, "|"); + + if ($tab_count>$pipe_count) {$delimiter="\t"; $delim_name="tab";} else {$delimiter="|"; $delim_name="pipe";} + $field_check=explode($delimiter, $buffer); + flush(); + $file=fopen("$lead_file", "r"); + print "
    Processing $delim_name-delimited file...\n"; + + if (strlen($list_id_override)>0) + { + print "

    LIST ID OVERRIDE FOR THIS FILE: $list_id_override

    "; + } + if (strlen($phone_code_override)>0) + { + print "

    PHONE CODE OVERRIDE FOR THIS FILE: $phone_code_override

    "; + } + $buffer=rtrim(fgets($file, 4096)); + $buffer=stripslashes($buffer); + $row=explode($delimiter, eregi_replace("[\'\"]", "", $buffer)); + + for ($i=0; $i\n"; + } else { + print "
    \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + + } + } + else if (!eregi(".csv", $leadfile_name)) + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.xls"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.xls"); + $lead_file = "/tmp/vicidial_temp_file.xls"; + } + + # echo "|$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file|"; + $dupcheckCLI=''; $postalgmtCLI=''; + if (eregi("DUPLIST",$dupcheck)) {$dupcheckCLI='--duplicate-check';} + if (eregi("DUPCAMP",$dupcheck)) {$dupcheckCLI='--duplicate-campaign-check';} + if (eregi("DUPSYS",$dupcheck)) {$dupcheckCLI='--duplicate-system-check';} + if (eregi("DUPTITLEALTPHONELIST",$dupcheck)) {$dupcheckCLI='--duplicate-tap-list-check';} + if (eregi("DUPTITLEALTPHONESYS",$dupcheck)) {$dupcheckCLI='--duplicate-tap-system-check';} + if (eregi("POSTAL",$postalgmt)) {$postalgmtCLI='--postal-code-gmt';} + passthru("$WeBServeRRooT/vicidial/listloader_rowdisplay.pl --lead-file=$lead_file $postalgmtCLI $dupcheckCLI"); + } + else + { + if ($WeBRooTWritablE > 0) + { + copy($LF_path, "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"); + $lead_file = "$WeBServeRRooT/vicidial/vicidial_temp_file.csv"; + } + else + { + copy($LF_path, "/tmp/vicidial_temp_file.csv"); + $lead_file = "/tmp/vicidial_temp_file.csv"; + } + $file=fopen("$lead_file", "r"); + + if ($WeBRooTWritablE > 0) + {$stmt_file=fopen("$WeBServeRRooT/vicidial/listloader_stmts.txt", "w");} + + print "
    Processing CSV file... \n"; + + if (strlen($list_id_override)>0) + { + print "

    LIST ID OVERRIDE FOR THIS FILE: $list_id_override

    "; + } + if (strlen($phone_code_override)>0) + { + print "

    PHONE CODE OVERRIDE FOR THIS FILE: $phone_code_override

    "; + } + + $total=0; $good=0; $bad=0; $dup=0; $post=0; $phone_list=''; + $row=fgetcsv($file, 1000, ","); + for ($i=0; $i\n"; + } else { + print "
    \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + } + } + } + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print " \r\n"; + print "
    VICIDIAL ColumnFile data
    ".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
    ".strtoupper(eregi_replace("_", " ", mysql_field_name($rslt, $i))).":
            
    \r\n"; + # } + print ""; + } +#} else if (filesize($leadfile)>8388608) { +# print "
    ERROR: File exceeds the 8MB limit.
    "; +} +?> + + + + + + + + +4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + +?> +
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/non_agent_api.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/non_agent_api.php new file mode 100644 index 00000000..b64ab4c0 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/non_agent_api.php @@ -0,0 +1,2500 @@ + LICENSE: AGPLv2 +# +# This script is designed as an API(Application Programming Interface) to allow +# other programs to interact with all non-agent-screen VICIDIAL functions +# +# required variables: +# - $user +# - $pass +# - $function - ('add_lead','version') +# - $source - ('vtiger','webform','adminweb') +# - $format - ('text','debug') + +# CHANGELOG: +# 80724-0021 - First build of script +# 80801-0047 - Added gmt lookup and hopper insert time validation +# 80909-2012 - Added support for campaign-specific DNC lists +# 80910-0020 - Added support for multi-alt-phones, added version function +# 90118-1056 - Added logging of API functions +# 90428-0209 - Added blind_monitor function +# 90508-0642 - Changed to PHP long tags +# 90514-0602 - Added sounds_list function +# 90522-0506 - Security fix +# 90530-0946 - Added QueueMetrics blind monitoring option +# 90721-1428 - Added rank and owner as vicidial_list fields +# 90904-1535 - Added moh_list musiconhold list +# 90916-2342 - Added vm_list voicemail list +# 91026-1059 - Added AREACODE DNC option +# 91203-1140 - Added agent_ingroup_info feature +# 91216-0331 - Added duplication check features to add_lead function +# + +$version = '2.2.0-16'; +$build = '91216-0331'; + +require("dbconnect.php"); + +### If you have globals turned off uncomment these lines +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["function"])) {$function=$_GET["function"];} + elseif (isset($_POST["function"])) {$function=$_POST["function"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["vendor_lead_code"])) {$vendor_lead_code=$_GET["vendor_lead_code"];} + elseif (isset($_POST["vendor_lead_code"])) {$vendor_lead_code=$_POST["vendor_lead_code"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} + elseif (isset($_POST["source_id"])) {$source_id=$_POST["source_id"];} +if (isset($_GET["gmt_offset_now"])) {$gmt_offset_now=$_GET["gmt_offset_now"];} + elseif (isset($_POST["gmt_offset_now"])) {$gmt_offset_now=$_POST["gmt_offset_now"];} +if (isset($_GET["title"])) {$title=$_GET["title"];} + elseif (isset($_POST["title"])) {$title=$_POST["title"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["middle_initial"])) {$middle_initial=$_GET["middle_initial"];} + elseif (isset($_POST["middle_initial"])) {$middle_initial=$_POST["middle_initial"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["gender"])) {$gender=$_GET["gender"];} + elseif (isset($_POST["gender"])) {$gender=$_POST["gender"];} +if (isset($_GET["date_of_birth"])) {$date_of_birth=$_GET["date_of_birth"];} + elseif (isset($_POST["date_of_birth"])) {$date_of_birth=$_POST["date_of_birth"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["security_phrase"])) {$security_phrase=$_GET["security_phrase"];} + elseif (isset($_POST["security_phrase"])) {$security_phrase=$_POST["security_phrase"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["dnc_check"])) {$dnc_check=$_GET["dnc_check"];} + elseif (isset($_POST["dnc_check"])) {$dnc_check=$_POST["dnc_check"];} +if (isset($_GET["campaign_dnc_check"])) {$campaign_dnc_check=$_GET["campaign_dnc_check"];} + elseif (isset($_POST["campaign_dnc_check"])) {$campaign_dnc_check=$_POST["campaign_dnc_check"];} +if (isset($_GET["add_to_hopper"])) {$add_to_hopper=$_GET["add_to_hopper"];} + elseif (isset($_POST["add_to_hopper"])) {$add_to_hopper=$_POST["add_to_hopper"];} +if (isset($_GET["hopper_priority"])) {$hopper_priority=$_GET["hopper_priority"];} + elseif (isset($_POST["hopper_priority"])) {$hopper_priority=$_POST["hopper_priority"];} +if (isset($_GET["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_GET["hopper_local_call_time_check"];} + elseif (isset($_POST["hopper_local_call_time_check"])) {$hopper_local_call_time_check=$_POST["hopper_local_call_time_check"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["multi_alt_phones"])) {$multi_alt_phones=$_GET["multi_alt_phones"];} + elseif (isset($_POST["multi_alt_phones"])) {$multi_alt_phones=$_POST["multi_alt_phones"];} +if (isset($_GET["source"])) {$source=$_GET["source"];} + elseif (isset($_POST["source"])) {$source=$_POST["source"];} +if (isset($_GET["phone_login"])) {$phone_login=$_GET["phone_login"];} + elseif (isset($_POST["phone_login"])) {$phone_login=$_POST["phone_login"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["rank"])) {$rank=$_GET["rank"];} + elseif (isset($_POST["rank"])) {$rank=$_POST["rank"];} +if (isset($_GET["owner"])) {$owner=$_GET["owner"];} + elseif (isset($_POST["owner"])) {$owner=$_POST["owner"];} +if (isset($_GET["agent_user"])) {$agent_user=$_GET["agent_user"];} + elseif (isset($_POST["agent_user"])) {$agent_user=$_POST["agent_user"];} +if (isset($_GET["duplicate_check"])) {$duplicate_check=$_GET["duplicate_check"];} + elseif (isset($_POST["duplicate_check"])) {$duplicate_check=$_POST["duplicate_check"];} + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +if ($non_latin < 1) + { + $DB=ereg_replace("[^0-9]","",$DB); + $user=ereg_replace("[^0-9a-zA-Z]","",$user); + $pass=ereg_replace("[^0-9a-zA-Z]","",$pass); + $function = ereg_replace("[^-\_0-9a-zA-Z]","",$function); + $format = ereg_replace("[^0-9a-zA-Z]","",$format); + $list_id = ereg_replace("[^0-9]","",$list_id); + $phone_code = ereg_replace("[^0-9]","",$phone_code); + $phone_number = ereg_replace("[^0-9]","",$phone_number); + $vendor_lead_code = ereg_replace(";","",$vendor_lead_code); + $vendor_lead_code = ereg_replace("\+"," ",$vendor_lead_code); + $source_id = ereg_replace(";","",$source_id); + $source_id = ereg_replace("\+"," ",$source_id); + $gmt_offset_now = ereg_replace("-\_\.0-9","",$gmt_offset_now); + $title = ereg_replace("[^- \_\.0-9a-zA-Z]","",$title); + $first_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$first_name); + $first_name = ereg_replace("\+"," ",$first_name); + $middle_initial = ereg_replace("[^0-9a-zA-Z]","",$middle_initial); + $last_name = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$last_name); + $last_name = ereg_replace("\+"," ",$last_name); + $address1 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address1); + $address2 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address2); + $address3 = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$address3); + $address1 = ereg_replace("\+"," ",$address1); + $address2 = ereg_replace("\+"," ",$address2); + $address3 = ereg_replace("\+"," ",$address3); + $city = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$city); + $city = ereg_replace("\+"," ",$city); + $state = ereg_replace("[^- 0-9a-zA-Z]","",$state); + $province = ereg_replace("[^- \+\.\_0-9a-zA-Z]","",$province); + $province = ereg_replace("\+"," ",$province); + $postal_code = ereg_replace("[^- \+0-9a-zA-Z]","",$postal_code); + $postal_code = ereg_replace("\+"," ",$postal_code); + $country_code = ereg_replace("[^A-Z]","",$country_code); + $gender = ereg_replace("[^A-Z]","",$gender); + $date_of_birth = ereg_replace("[^-0-9]","",$date_of_birth); + $alt_phone = ereg_replace("[^- \+\_\.0-9a-zA-Z]","",$alt_phone); + $alt_phone = ereg_replace("\+"," ",$alt_phone); + $email = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$email); + $email = ereg_replace("\+"," ",$email); + $security_phrase = ereg_replace("[^- \+\.\:\/\@\_0-9a-zA-Z]","",$security_phrase); + $security_phrase = ereg_replace("\+"," ",$security_phrase); + $comments = ereg_replace(";","",$comments); + $comments = ereg_replace("\+"," ",$comments); + $dnc_check = ereg_replace("[^A-Z]","",$dnc_check); + $campaign_dnc_check = ereg_replace("[^A-Z]","",$campaign_dnc_check); + $add_to_hopper = ereg_replace("[^A-Z]","",$add_to_hopper); + $hopper_priority = ereg_replace("-0-9","",$hopper_priority); + $hopper_local_call_time_check = ereg_replace("[^A-Z]","",$hopper_local_call_time_check); + $campaign_id = ereg_replace("[^-\_0-9a-zA-Z]","",$campaign_id); + $multi_alt_phones = ereg_replace("[^- \+\!\:\_0-9a-zA-Z]","",$multi_alt_phones); + $multi_alt_phones = ereg_replace("\+"," ",$multi_alt_phones); + $source = ereg_replace("[^0-9a-zA-Z]","",$source); + $phone_login = ereg_replace("[^0-9a-zA-Z]","",$phone_login); + $session_id = ereg_replace("[^0-9]","",$session_id); + $server_ip = ereg_replace("[^\.0-9]","",$server_ip); + $stage = ereg_replace("[^a-zA-Z]","",$stage); + $rank = ereg_replace("[^0-9]","",$rank); + $owner = ereg_replace("[^-_0-9a-zA-Z]","",$owner); + $duplicate_check = ereg_replace("[^-_0-9a-zA-Z]","",$duplicate_check); + } +else + { + $user = ereg_replace("'|\"|\\\\|;","",$user); + $pass = ereg_replace("'|\"|\\\\|;","",$pass); + $source = ereg_replace("'|\"|\\\\|;","",$source); + } + +if (strlen($list_id)<1) {$list_id='999';} +if (strlen($phone_code)<1) {$phone_code='1';} +$USarea = substr($phone_number, 0, 3); +if (strlen($hopper_priority)<1) {$hopper_priority=0;} +if (strlen($gender)<1) {$gender='U';} +if (strlen($rank)<1) {$rank='0';} + +$StarTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$CIDdate = date("mdHis"); +$ENTRYdate = date("YmdHis"); +$MT[0]=''; +$postalgmt=''; +$api_script = 'non-agent'; +$api_logging = 1; + + +$secX = date("U"); +$hour = date("H"); +$min = date("i"); +$sec = date("s"); +$mon = date("m"); +$mday = date("d"); +$year = date("Y"); +$isdst = date("I"); +$Shour = date("H"); +$Smin = date("i"); +$Ssec = date("s"); +$Smon = date("m"); +$Smday = date("d"); +$Syear = date("Y"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; +$inSD = $pulldate0; +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +### Grab Server GMT value from the database +$stmt="SELECT local_gmt FROM servers where active='Y' limit 1;"; +if ($non_latin > 0) {$rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$gmt_recs = mysql_num_rows($rslt); +if ($gmt_recs > 0) + { + $row=mysql_fetch_row($rslt); + $DBSERVER_GMT = "$row[0]"; + if (strlen($DBSERVER_GMT)>0) {$SERVER_GMT = $DBSERVER_GMT;} + if ($isdst) {$SERVER_GMT++;} + } +else + { + $SERVER_GMT = date("O"); + $SERVER_GMT = eregi_replace("\+","",$SERVER_GMT); + $SERVER_GMT = ($SERVER_GMT + 0); + $SERVER_GMT = ($SERVER_GMT / 100); + } + +$LOCAL_GMT_OFF = $SERVER_GMT; +$LOCAL_GMT_OFF_STD = $SERVER_GMT; + + + + + +################################################################################ +### version - show version and date information for the API +################################################################################ +if ($function == 'version') + { + $data = "VERSION: $version|BUILD: $build|DATE: $NOW_TIME|EPOCH: $StarTtime"; + $result = 'SUCCESS'; + echo "$data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } +################################################################################ +### END version +################################################################################ + + + + +################################################################################ +### sounds_list - sends a list of the sounds in the audio store +################################################################################ +if ($function == 'sounds_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + if ($DB>0) {echo "DEBUG: sounds_list query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $i=0; + $filename_sort=$MT; + $dirpath = "$WeBServeRRooT/$sounds_web_directory"; + $dh = opendir($dirpath); + if ($DB>0) {echo "DEBUG: sounds_list variables - $dirpath|$stage|$format\n";} + while (false !== ($file = readdir($dh))) + { + # Do not list subdirectories + if ( (!is_dir("$dirpath/$file")) and (preg_match('/\.wav$|\.gsm$/', $file)) ) + { + if (file_exists("$dirpath/$file")) + { + $file_names[$i] = $file; + $file_namesPROMPT[$i] = preg_replace("/\.wav$|\.gsm$/","",$file); + $file_epoch[$i] = filemtime("$dirpath/$file"); + $file_dates[$i] = date ("Y-m-d H:i:s.", filemtime("$dirpath/$file")); + $file_sizes[$i] = filesize("$dirpath/$file"); + $file_sizesPAD[$i] = sprintf("[%020s]\n",filesize("$dirpath/$file")); + if (eregi('date',$stage)) {$file_sort[$i] = $file_epoch[$i] . "----------" . $i;} + if (eregi('name',$stage)) {$file_sort[$i] = $file_names[$i] . "----------" . $i;} + if (eregi('size',$stage)) {$file_sort[$i] = $file_sizesPAD[$i] . "----------" . $i;} + + $i++; + } + } + } + closedir($dh); + + if (eregi('date',$stage)) {rsort($file_sort);} + if (eregi('name',$stage)) {sort($file_sort);} + if (eregi('size',$stage)) {rsort($file_sort);} + + sleep(1); + + $k=0; + $sf=0; + while($k < $i) + { + $file_split = explode('----------',$file_sort[$k]); + $m = $file_split[1]; + $NOWsize = filesize("$dirpath/$file_names[$m]"); + if ($DB>0) {echo "DEBUG: sounds_list variables - $file_sort[$k]|$size|$NOWsize|\n";} + if ($file_sizes[$m] == $NOWsize) + { + if (eregi('tab',$format)) + {echo "$k\t$file_names[$m]\t$file_dates[$m]\t$file_sizes[$m]\t$file_epoch[$m]\n";} + if (eregi('link',$format)) + {echo "$file_names[$m]
    \n";} + if (eregi('selectframe',$format)) + { + if ($sf < 1) + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + $sf++; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + $k++; + } + if ($sf > 0) + { + echo "
    #FILENAMEDATESIZEPLAY
    $sf$file_names[$m]$file_dates[$m]$file_sizes[$m]PLAY
    \n"; + } + + exit; + + } + } + } +################################################################################ +### END sounds_list +################################################################################ + + + +################################################################################ +### moh_list - sends a list of the moh classes in the system +################################################################################ +if ($function == 'moh_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list USER DOES NOT HAVE PERMISSION TO VIEW SOUNDS LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + ############################################# + ##### START SYSTEM_SETTINGS LOOKUP ##### + $stmt = "SELECT use_non_latin,sounds_central_control_active,sounds_web_server,sounds_web_directory FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + $ss_conf_ct = mysql_num_rows($rslt); + if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $sounds_central_control_active = $row[1]; + $sounds_web_server = $row[2]; + $sounds_web_directory = $row[3]; + } + ##### END SETTINGS LOOKUP ##### + ########################################### + + if ($sounds_central_control_active < 1) + { + $result = 'ERROR'; + $result_reason = "sounds_list CENTRAL SOUND CONTROL IS NOT ACTIVE"; + echo "$result: $result_reason: |$user|$sounds_central_control_active|\n"; + $data = "$sounds_central_control_active"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT moh_id,moh_name,random from vicidial_music_on_hold where active='Y' order by moh_id"; + $rslt=mysql_query($stmt, $link); + $moh_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $moh_id[$k] = $rowx[0]; + $moh_name[$k] = $rowx[1]; + $random[$k] = $rowx[2]; + $k++; + } + + $k=0; + $sf=0; + while ($moh_to_print > $k) + { + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT filename from vicidial_music_on_hold_files where moh_id='$moh_id[$k]';"; + $rslt=mysql_query($stmt, $link); + $mohfiles_to_print = mysql_num_rows($rslt); + $m=0; + while ($mohfiles_to_print > $m) + { + $rowx=mysql_fetch_row($rslt); + $MOHfiles .= "$rowx[0]   "; + $m++; + } + + + echo "\n"; + echo "\n"; + + $k++; + } + echo "
    #Music On Hold ClassNameRandom
    $sf$moh_id[$k]$moh_name[$k]$random[$k]
     Files: $MOHfiles
    \n"; + + exit; + } + } + } +################################################################################ +### END moh_list +################################################################################ + + + + +################################################################################ +### vm_list - sends a list of the voicemail boxes in the system +################################################################################ +if ($function == 'vm_list') + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ($allowed_user < 1) + { + $result = 'ERROR'; + $result_reason = "vm_list USER DOES NOT HAVE PERMISSION TO VIEW VOICEMAIL BOXES LIST"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name:$server_port"; + + echo "\n"; + echo "NON-AGENT API\n"; + echo "\n"; + echo "\n\n"; + + echo "\n"; + echo "close frame\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $stmt="SELECT voicemail_id,fullname,email from vicidial_voicemail where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + + $stmt="SELECT voicemail_id,fullname,email,extension from phones where active='Y' order by voicemail_id"; + $rslt=mysql_query($stmt, $link); + $vm_to_print = mysql_num_rows($rslt); + $k=0; + $sf=0; + while ($vm_to_print > $k) + { + $rowx=mysql_fetch_row($rslt); + $voicemail_id[$k] = $rowx[0]; + $fullname[$k] = $rowx[1]; + $email[$k] = $rowx[2]; + $extension[$k] = $rowx[3]; + $sf++; + if (eregi("1$|3$|5$|7$|9$", $sf)) + {$bgcolor='bgcolor="#E6E6E6"';} + else + {$bgcolor='bgcolor="#F6F6F6"';} + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $k++; + } + echo "
    #Voicemail BoxesNameEmail
    $sf$voicemail_id[$k]$fullname[$k]$email[$k]
    $sf$voicemail_id[$k]$extension[$k] - $fullname[$k]$email[$k]
    \n"; + + exit; + } + } +################################################################################ +### END vm_list +################################################################################ + + + + +################################################################################ +### agent_ingroup_info - displays agent in-group info in an HTML form allowing for changes +################################################################################ +if ($function == 'agent_ingroup_info') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info USER DOES NOT HAVE PERMISSION TO GET AGENT INFO"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "agent_ingroup_info INVALID USER ID"; + echo "$result: $result_reason - $agent_user|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT campaign_id,closer_campaigns,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $campaign_id = $row[0]; + $closer_campaigns = $row[1]; + $blended = $row[2]; + $manager_ingroup_set = $row[3]; + $external_igb_set_user = $row[4]; + + $stmt="SELECT full_name from vicidial_users where user='$agent_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and campaign_allow_inbound='Y' and dial_method NOT IN('MANUAL');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_inbound=$row[0]; + + $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign_id' and dial_method NOT IN('MANUAL','INBOUND_MAN');"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_campaign_autodial=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and change_agent_campaign='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_change_ingroups=$row[0]; + + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and modify_users='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user_modify_user=$row[0]; + + + $result = 'SUCCESS'; + $result_reason = ""; + $data = "$agent_user|$stage"; + + if ($stage == 'text') + { + $output .= "SELECTED INGROUPS: $closer_campaigns\n"; + $output .= "OUTBOUND AUTODIAL: $blended\n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set\n"; + $output .= "MANAGER: $external_igb_set_user\n"; + echo "$result: $result_reason - $data\n$output\n"; + } + else + { + $output = ''; + $output .= "
    \n"; + $output .= "Agent: $agent_user - $full_name \n"; + $output .= "   Campaign: $campaign_id\n"; + $output .= "Close
    \n"; + + $stmt="SELECT closer_campaigns from vicidial_campaigns where campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($allowed_campaign_inbound < 1) + {$row[0]='';} + $closer_groups_pre = preg_replace('/-$/','',$row[0]); + $closer_groups = explode(" ",$closer_groups_pre); + $closer_groups_ct = count($closer_groups); + + $in_groups_pre = preg_replace('/-$/','',$closer_campaigns); + $in_groups = explode(" ",$in_groups_pre); + $in_groups_ct = count($in_groups); + $k=1; + while ($k < $closer_groups_ct) + { + $closer_select[$k]=0; + if (strlen($closer_groups[$k])>1) + { + $m=0; + while ($m < $in_groups_ct) + { + if (strlen($in_groups[$m])>1) + { + if ($closer_groups[$k] == $in_groups[$m]) + {$closer_select[$k]++;} + } + $m++; + } + } + $k++; + } + + if ( ($allowed_user_change_ingroups > 0) and ($stage == 'change') ) + { + $output .= "\n"; + $output .= "\n"; + + $output .= "\n"; + + $output .= "\n"; + + if ( ($manager_ingroup_set == 'SET') or ($manager_ingroup_set == 'Y') ) + { + $stmt="SELECT full_name from vicidial_users where user='$external_igb_set_user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Mfull_name = $row[0]; + + $output .= "\n"; + } + + $output .= "\n"; + + $output .= "
    Selected In-Groups: \n"; + $output .= "\n"; + $output .= "
    Change, Add, Remove:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
    Blended Outbound Autodial:\n"; + $output .= "\n"; + $output .= "\n"; + $output .= "
    Manager In-Group Override:\n"; + $output .= "\n"; + $output .= "$manager_ingroup_set - $external_igb_set_user - $Mfull_name\n"; + $output .= "
    \n"; + $output .= "\n"; + $output .= "
    \n"; + $output .= "
    \n"; + } + else + { + $output .= "\n"; + + $m=0; + $m_printed=0; + while ($m < $closer_groups_ct) + { + if (strlen($closer_groups[$m])>1) + { + $stmt="SELECT group_name from vicidial_inbound_groups where group_id='$closer_groups[$m]';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + + $output .= "\n"; + $m_printed++; + } + $m++; + } + + if ($m_printed < 1) + {$output .= "\n";} + + $output .= "
    $closer_groups[$m]"; + + if ($closer_select[$m] > 0) + {$output .= " *";} + $output .= "$row[0]
    No In-Groups Allowed

    \n"; + + $output .= "SELECTED INGROUPS: $closer_campaigns
    \n"; + $output .= "OUTBOUND AUTODIAL: $blended
    \n"; + $output .= "MANAGER OVERRIDE: $manager_ingroup_set
    \n"; + $output .= "MANAGER: $external_igb_set_user
    \n"; + $output .= "\n"; + $output .= "
    \n"; + } + + echo "$output"; + } + + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } +################################################################################ +### END agent_ingroup_info +################################################################################ + + + + +################################################################################ +### blind_monitor - sends call to phone from session from listening +################################################################################ +if ($function == 'blind_monitor') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and user_level > 6;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $allowed_user=$row[0]; + if ( ($allowed_user < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor USER DOES NOT HAVE PERMISSION TO BLIND MONITOR"; + echo "$result: $result_reason: |$user|$allowed_user|\n"; + $data = "$allowed_user"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_conferences where conf_exten='$session_id' and server_ip='$server_ip';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $session_exists=$row[0]; + + if ($session_exists < 1) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID SESSION ID"; + echo "$result: $result_reason - $session_id|$server_ip|$user\n"; + $data = "$session_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + $stmt="SELECT count(*) from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $phone_exists=$row[0]; + + if ( ($phone_exists < 1) and ($source != 'queuemetrics') ) + { + $result = 'ERROR'; + $result_reason = "blind_monitor INVALID PHONE LOGIN"; + echo "$result: $result_reason - $phone_login|$user\n"; + $data = "$phone_login"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ($source == 'queuemetrics') + { + $stmt="SELECT active_voicemail_server from system_settings;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $monitor_server_ip = $row[0]; + $dialplan_number = $phone_login; + $outbound_cid = ''; + if (strlen($monitor_server_ip)<7) + {$monitor_server_ip = $server_ip;} + } + else + { + $stmt="SELECT dialplan_number,server_ip,outbound_cid from phones where login='$phone_login';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dialplan_number = $row[0]; + $monitor_server_ip =$row[1]; + $outbound_cid = $row[2]; + } + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $monitor_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S"; + + $PADuser = sprintf("%08s", $user); + while (strlen($PADuser) > 8) {$PADuser = substr("$PADuser", 0, -1);} + $BMquery = "BM$StarTtime$PADuser"; + + if ( (ereg('MONITOR',$stage)) or (strlen($stage)<1) ) {$stage = '0';} + if (ereg('BARGE',$stage)) {$stage = '';} + if (ereg('HIJACK',$stage)) {$stage = '';} + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$monitor_server_ip','','Originate','$BMquery','Channel: Local/$monitor_dialstring$stage$session_id@default','Context; default','Exten: $dialplan_number','Priority: 1','Callerid: \"VC Blind Monitor\" <$outbound_cid>','','','','','');"; + if ($DB>0) {echo "DEBUG: blind_monitor query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $man_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "blind_monitor HAS BEEN LAUNCHED"; + echo "$result: $result_reason - $phone_login|$monitor_dialstring$stage$session_id|$dialplan_number|$session_id|$man_id|$user\n"; + $data = "$phone_login|$monitor_dialstring|$session_id|$man_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + } + exit; + } +################################################################################ +### END blind_monitor +################################################################################ + + + + + +################################################################################ +### add_lead - inserts a lead into the vicidial_list table +################################################################################ +if ($function == 'add_lead') + { + if(strlen($source)<2) + { + $result = 'ERROR'; + $result_reason = "Invalid Source"; + echo "$result: $result_reason - $source\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + echo "ERROR: Invalid Source: |$source|\n"; + exit; + } + else + { + $stmt="SELECT count(*) from vicidial_users where user='$user' and pass='$pass' and vdc_agent_api_access='1' and modify_leads='1' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $modify_leads=$row[0]; + + if ($modify_leads < 1) + { + $result = 'ERROR'; + $result_reason = "add_lead USER DOES NOT HAVE PERMISSION TO ADD LEADS TO THE SYSTEM"; + echo "$result: $result_reason: |$user|$modify_leads|\n"; + $data = "$modify_leads"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + if ( (strlen($phone_number)<6) || (strlen($phone_number)>16) ) + { + $result = 'ERROR'; + $result_reason = "add_lead INVALID PHONE NUMBER"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + else + { + ### START checking for DNC if defined ### + if ( ($dnc_check == 'Y') or ($dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for system DNC\n";} + if ($dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_dnc where phone_number IN('$phone_number','$phone_areacode');"; + } + else + {$stmt="SELECT count(*) from vicidial_dnc where phone_number='$phone_number';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN DNC"; + echo "$result: $result_reason - $phone_number|$user\n"; + $data = "$phone_number"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if ( ($campaign_dnc_check == 'Y') or ($campaign_dnc_check == 'AREACODE') ) + { + if ($DB>0) {echo "DEBUG: Checking for campaign DNC\n";} + if ($campaign_dnc_check == 'AREACODE') + { + $phone_areacode = substr($phone_number, 0, 3); + $phone_areacode .= "XXXXXXX"; + $stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number IN('$phone_number','$phone_areacode') and campaign_id='$campaign_id';"; + } + else + {$stmt="SELECT count(*) from vicidial_campaign_dnc where phone_number='$phone_number' and campaign_id='$campaign_id';";} + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $dnc_found=$row[0]; + + if ($dnc_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead PHONE NUMBER IN CAMPAIGN DNC"; + echo "$result: $result_reason - $phone_number|$campaign_id|$user\n"; + $data = "$phone_number|$campaign_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for DNC if defined ### + + ### START checking for duplicate if defined ### + if (eregi("CAMP",$duplicate_check)) # find lists within campaign + { + $stmt="SELECT campaign_id from vicidial_lists where list_id='$list_id';"; + $rslt=mysql_query($stmt, $link); + $ci_recs = mysql_num_rows($rslt); + if ($ci_recs > 0) + { + $row=mysql_fetch_row($rslt); + $duplicate_camp = $row[0]; + + $stmt="select list_id from vicidial_lists where campaign_id='$duplicate_camp';"; + $rslt=mysql_query($stmt, $link); + $li_recs = mysql_num_rows($rslt); + if ($li_recs > 0) + { + $L=0; + while ($li_recs > $L) + { + $row=mysql_fetch_row($rslt); + $duplicate_lists .= "'$row[0]',"; + $L++; + } + $duplicate_lists = eregi_replace(",$",'',$dup_lists); + } + } + } + ### find list of list_ids in this campaign + if (eregi("DUPLIST",$duplicate_check)) # duplicate check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPLIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN LIST"; + $data = "$phone_number|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPCAMP",$duplicate_check)) # duplicate check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPCAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN CAMPAIGN LISTS"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPSYS",$duplicate_check)) # duplicate check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPSYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where phone_number='$phone_number' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE PHONE NUMBER IN SYSTEM"; + $data = "$phone_number|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONELIST",$duplicate_check)) # duplicate title/alt_phone check within list + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONELIST\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id='$list_id' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN LIST"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONECAMP",$duplicate_check)) # duplicate title/alt_phone check within campaign lists + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONECAMP\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' and list_id IN($duplicate_lists) limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN CAMPAIGN LISTS"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + if (eregi("DUPTITLEALTPHONESYS",$duplicate_check)) # duplicate title/alt_phone check within entire system + { + if ($DB>0) {echo "DEBUG: Checking for duplicates - DUPTITLEALTPHONESYS\n";} + $duplicate_found=0; + $stmt="SELECT lead_id,list_id from vicidial_list where title='$title' and alt_phone='$alt_phone' limit 1;"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $duplicate_found=1; + $row=mysql_fetch_row($rslt); + $duplicate_lead_id = $row[0]; + $duplicate_lead_list = $row[1]; + } + + if ($duplicate_found > 0) + { + $result = 'ERROR'; + $result_reason = "add_lead DUPLICATE TITLE ALT_PHONE IN SYSTEM"; + $data = "$title|$alt_phone|$list_id|$duplicate_lead_id|$duplicate_lead_list"; + echo "$result: $result_reason - $data\n"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + exit; + } + } + ### END checking for duplicate if defined ### + + + ### get current gmt_offset of the phone_number + $gmt_offset = lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code); + + + ### insert a new lead in the system with this phone number + $stmt = "INSERT INTO vicidial_list SET phone_code='$phone_code',phone_number='$phone_number',list_id='$list_id',status='NEW',user='$user',vendor_lead_code='$vendor_lead_code',source_id='$source_id',gmt_offset_now='$gmt_offset',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',called_since_last_reset='N',entry_date='$ENTRYdate',last_local_call_time='$NOW_TIME',rank='$rank',owner='$owner';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $lead_id = mysql_insert_id($link); + + $result = 'SUCCESS'; + $result_reason = "add_lead LEAD HAS BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$lead_id|$gmt_offset|$user\n"; + $data = "$phone_number|$list_id|$lead_id|$gmt_offset"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + if (strlen($multi_alt_phones) > 5) + { + $map=$MT; $ALTm_phone_code=$MT; $ALTm_phone_number=$MT; $ALTm_phone_note=$MT; + $map = explode('!', $multi_alt_phones); + $map_count = count($map); + if ($DB>0) {echo "DEBUG: add_lead multi-al-entry - $a|$map_count|$multi_alt_phones\n";} + $g++; + $r=0; $s=0; $inserted_alt_phones=0; + while ($r < $map_count) + { + $s++; + $ncn=$MT; + $ncn = explode('_', $map[$r]); + print "$ncn[0]|$ncn[1]|$ncn[2]"; + + if (strlen($forcephonecode) > 0) + {$ALTm_phone_code[$r] = $forcephonecode;} + else + {$ALTm_phone_code[$r] = $ncn[1];} + if (strlen($ALTm_phone_code[$r]) < 1) + {$ALTm_phone_code[$r]='1';} + $ALTm_phone_number[$r] = $ncn[0]; + $ALTm_phone_note[$r] = $ncn[2]; + $stmt = "INSERT INTO vicidial_list_alt_phones (lead_id,phone_code,phone_number,alt_phone_note,alt_phone_count) values('$lead_id','$ALTm_phone_code[$r]','$ALTm_phone_number[$r]','$ALTm_phone_note[$r]','$s');"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Zaffected_rows = mysql_affected_rows($link); + $inserted_alt_phones = ($inserted_alt_phones + $Zaffected_rows); + $r++; + } + $result = 'NOTICE'; + $result_reason = "add_lead MULTI-ALT-PHONE NUMBERS LOADED"; + echo "$result: $result_reason - $inserted_alt_phones|$lead_id|$user\n"; + $data = "$inserted_alt_phones|$lead_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + + if ($add_to_hopper == 'Y') + { + $dialable=1; + + $stmt="SELECT local_call_time,vicidial_campaigns.campaign_id from vicidial_campaigns,vicidial_lists where list_id='$list_id' and vicidial_campaigns.campaign_id=vicidial_lists.campaign_id;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $local_call_time=$row[0]; + $VD_campaign_id=$row[1]; + + if ($hopper_local_call_time_check == 'Y') + { + ### call function to determine if lead is dialable + $dialable = dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state); + } + if ($dialable < 1) + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER, OUTSIDE OF LOCAL TIME"; + echo "$result: $result_reason - $phone_number|$lead_id|$gmt_offset|$dialable|$user\n"; + $data = "$phone_number|$lead_id|$gmt_offset|$dialable"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + ### code to insert into hopper goes here + + ### insert record into vicidial_hopper for alt_phone call attempt + $stmt = "INSERT INTO vicidial_hopper SET lead_id='$lead_id',campaign_id='$VD_campaign_id',status='READY',list_id='$list_id',gmt_offset_now='$gmt_offset',state='$state',user='',priority='$hopper_priority';"; + if ($DB>0) {echo "DEBUG: add_lead query - $stmt\n";} + $rslt=mysql_query($stmt, $link); + $Haffected_rows = mysql_affected_rows($link); + if ($Haffected_rows > 0) + { + $hopper_id = mysql_insert_id($link); + + $result = 'NOTICE'; + $result_reason = "add_lead ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$hopper_id|$user\n"; + $data = "$phone_number|$lead_id|$hopper_id"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + else + { + $result = 'NOTICE'; + $result_reason = "add_lead NOT ADDED TO HOPPER"; + echo "$result: $result_reason - $phone_number|$lead_id|$stmt|$user\n"; + $data = "$phone_number|$lead_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + } + else + { + $result = 'ERROR'; + $result_reason = "add_lead LEAD HAS NOT BEEN ADDED"; + echo "$result: $result_reason - $phone_number|$list_id|$stmt|$user\n"; + $data = "$phone_number|$list_id|$stmt"; + api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + } + } + } + exit; + } + } +################################################################################ +### END add_lead +################################################################################ + + + +$result = 'ERROR'; +$result_reason = "NO FUNCTION SPECIFIED"; +echo "$result: $result_reason\n"; +api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + + + + + + + + + +if ($format=='debug') + { + $ENDtime = date("U"); + $RUNtime = ($ENDtime - $StarTtime); + echo "\n"; + echo "\n\n\n"; + } + +exit; + + + + + + + +##### FUNCTIONS ##### + +##### LOOKUP GMT, FINDS THE CURRENT GMT OFFSET FOR A PHONE NUMBER ##### + +function lookup_gmt($phone_code,$USarea,$state,$LOCAL_GMT_OFF_STD,$Shour,$Smin,$Ssec,$Smon,$Smday,$Syear,$postalgmt,$postal_code) +{ +require("dbconnect.php"); + +$postalgmt_found=0; +if ( (eregi("POSTAL",$postalgmt)) && (strlen($postal_code)>4) ) + { + if (preg_match('/^1$/', $phone_code)) + { + $stmt="select postal_code,state,GMT_offset,DST,DST_range,country,country_code from vicidial_postal_codes where country_code='$phone_code' and postal_code LIKE \"$postal_code%\";"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[2]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[3]; + $dst_range = $row[4]; + $PC_processed++; + $postalgmt_found++; + $post++; + } + } + } +if ($postalgmt_found < 1) + { + $PC_processed=0; + ### UNITED STATES ### + if ($phone_code =='1') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### MEXICO ### + if ($phone_code =='52') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and areacode='$USarea';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### AUSTRALIA ### + if ($phone_code =='61') + { + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code' and state='$state';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + ### ALL OTHER COUNTRY CODES ### + if (!$PC_processed) + { + $PC_processed++; + $stmt="select country_code,country,areacode,state,GMT_offset,DST,DST_range,geographic_description from vicidial_phone_codes where country_code='$phone_code';"; + $rslt=mysql_query($stmt, $link); + $pc_recs = mysql_num_rows($rslt); + if ($pc_recs > 0) + { + $row=mysql_fetch_row($rslt); + $gmt_offset = $row[4]; $gmt_offset = eregi_replace("\+","",$gmt_offset); + $dst = $row[5]; + $dst_range = $row[6]; + $PC_processed++; + } + } + } + +### Find out if DST to raise the gmt offset ### +$AC_GMT_diff = ($gmt_offset - $LOCAL_GMT_OFF_STD); +$AC_localtime = mktime(($Shour + $AC_GMT_diff), $Smin, $Ssec, $Smon, $Smday, $Syear); + $hour = date("H",$AC_localtime); + $min = date("i",$AC_localtime); + $sec = date("s",$AC_localtime); + $mon = date("m",$AC_localtime); + $mday = date("d",$AC_localtime); + $wday = date("w",$AC_localtime); + $year = date("Y",$AC_localtime); +$dsec = ( ( ($hour * 3600) + ($min * 60) ) + $sec ); + +$AC_processed=0; +if ( (!$AC_processed) and ($dst_range == 'SSM-FSN') ) + { + if ($DBX) {print " Second Sunday March to First Sunday November\n";} + #********************************************************************** + # SSM-FSN + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on Second Sunday March to First Sunday November at 2 am. + # INPUTS: + # mm INTEGER Month. + # dd INTEGER Day of the month. + # ns INTEGER Seconds into the day. + # dow INTEGER Day of week (0=Sunday, to 6=Saturday) + # OPTIONAL INPUT: + # timezone INTEGER hour difference UTC - local standard time + # (DEFAULT is blank) + # make calculations based on UTC time, + # which means shift at 10:00 UTC in April + # and 9:00 UTC in October + # OUTPUT: + # INTEGER 1 = DST, 0 = not DST + # + # S M T W T F S + # 1 2 3 4 5 6 7 + # 8 9 10 11 12 13 14 + #15 16 17 18 19 20 21 + #22 23 24 25 26 27 28 + #29 30 31 + # + # S M T W T F S + # 1 2 3 4 5 6 + # 7 8 9 10 11 12 13 + #14 15 16 17 18 19 20 + #21 22 23 24 25 26 27 + #28 29 30 31 + # + #********************************************************************** + + $USACAN_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 11) { + $USACAN_DST=0; + } elseif ($mm >= 4 and $mm <= 10) { + $USACAN_DST=1; + } elseif ($mm == 3) { + if ($dd > 13) { + $USACAN_DST=1; + } elseif ($dd >= ($dow+8)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USACAN_DST=0; + } else { + $USACAN_DST=1; + } + } + } else { + $USACAN_DST=0; + } + } elseif ($mm == 11) { + if ($dd > 7) { + $USACAN_DST=0; + } elseif ($dd < ($dow+1)) { + $USACAN_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USACAN_DST=1; + } else { + $USACAN_DST=0; + } + } + } else { + $USACAN_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $USACAN_DST\n";} + if ($USACAN_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSA-LSO') ) + { + if ($DBX) {print " First Sunday April to Last Sunday October\n";} + #********************************************************************** + # FSA-LSO + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in April and last Sunday in October at 2 am. + #********************************************************************** + + $USA_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 4 || $mm > 10) { + $USA_DST=0; + } elseif ($mm >= 5 and $mm <= 9) { + $USA_DST=1; + } elseif ($mm == 4) { + if ($dd > 7) { + $USA_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } else { + if ($dow == 0 and $ns < 7200) { + $USA_DST=0; + } else { + $USA_DST=1; + } + } + } else { + $USA_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $USA_DST=1; + } elseif ($dd < ($dow+25)) { + $USA_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (7200+($timezone-1)*3600)) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } else { # local time calculations + if ($ns < 7200) { + $USA_DST=1; + } else { + $USA_DST=0; + } + } + } else { + $USA_DST=0; + } + } # end of month checks + + if ($DBX) {print " DST: $USA_DST\n";} + if ($USA_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'LSM-LSO') ) + { + if ($DBX) {print " Last Sunday March to Last Sunday October\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in March and last Sunday in October at 1 am. + #********************************************************************** + + $GBR_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $GBR_DST=0; + } elseif ($mm >= 4 and $mm <= 9) { + $GBR_DST=1; + } elseif ($mm == 3) { + if ($dd < 25) { + $GBR_DST=0; + } elseif ($dd < ($dow+25)) { + $GBR_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=0; + } else { + $GBR_DST=1; + } + } + } else { + $GBR_DST=1; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $GBR_DST=1; + } elseif ($dd < ($dow+25)) { + $GBR_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $GBR_DST=1; + } else { + $GBR_DST=0; + } + } + } else { + $GBR_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $GBR_DST\n";} + if ($GBR_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'LSO-LSM') ) + { + if ($DBX) {print " Last Sunday October to Last Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on last Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUS_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUS_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUS_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUS_DST=1; + } elseif ($dd < ($dow+25)) { + $AUS_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=1; + } else { + $AUS_DST=0; + } + } + } else { + $AUS_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 25) { + $AUS_DST=0; + } elseif ($dd < ($dow+25)) { + $AUS_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $AUS_DST=0; + } else { + $AUS_DST=1; + } + } + } else { + $AUS_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $AUS_DST\n";} + if ($AUS_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'FSO-LSM') ) + { + if ($DBX) {print " First Sunday October to Last Sunday March\n";} + #********************************************************************** + # TASMANIA ONLY + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and last Sunday in March at 1 am. + #********************************************************************** + + $AUST_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $AUST_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $AUST_DST=0; + } elseif ($mm == 3) { + if ($dd < 25) { + $AUST_DST=1; + } elseif ($dd < ($dow+25)) { + $AUST_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $AUST_DST=1; + } else { + $AUST_DST=0; + } + } + } else { + $AUST_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $AUST_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $AUST_DST=0; + } else { + $AUST_DST=1; + } + } + } else { + $AUST_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $AUST_DST\n";} + if ($AUST_DST) {$gmt_offset++;} + $AC_processed++; + } +if ( (!$AC_processed) and ($dst_range == 'FSO-TSM') ) + { + if ($DBX) {print " First Sunday October to Third Sunday March\n";} + #********************************************************************** + # This is s 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. + # Based on first Sunday in October and third Sunday in March at 1 am. + #********************************************************************** + + $NZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 3 || $mm > 10) { + $NZL_DST=1; + } elseif ($mm >= 4 and $mm <= 9) { + $NZL_DST=0; + } elseif ($mm == 3) { + if ($dd < 14) { + $NZL_DST=1; + } elseif ($dd < ($dow+14)) { + $NZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $NZL_DST=1; + } else { + $NZL_DST=0; + } + } + } else { + $NZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd > 7) { + $NZL_DST=1; + } elseif ($dd >= ($dow+1)) { + if ($timezone) { + if ($dow == 0 and $ns < (7200+$timezone*3600)) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } else { + if ($dow == 0 and $ns < 3600) { + $NZL_DST=0; + } else { + $NZL_DST=1; + } + } + } else { + $NZL_DST=0; + } + } # end of month checks + if ($DBX) {print " DST: $NZL_DST\n";} + if ($NZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if ( (!$AC_processed) and ($dst_range == 'TSO-LSF') ) + { + if ($DBX) {print " Third Sunday October to Last Sunday February\n";} + #********************************************************************** + # TSO-LSF + # This is returns 1 if Daylight Savings Time is in effect and 0 if + # Standard time is in effect. Brazil + # Based on Third Sunday October to Last Sunday February at 1 am. + #********************************************************************** + + $BZL_DST=0; + $mm = $mon; + $dd = $mday; + $ns = $dsec; + $dow= $wday; + + if ($mm < 2 || $mm > 10) { + $BZL_DST=1; + } elseif ($mm >= 3 and $mm <= 9) { + $BZL_DST=0; + } elseif ($mm == 2) { + if ($dd < 22) { + $BZL_DST=1; + } elseif ($dd < ($dow+22)) { + $BZL_DST=1; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=1; + } else { + $BZL_DST=0; + } + } + } else { + $BZL_DST=0; + } + } elseif ($mm == 10) { + if ($dd < 22) { + $BZL_DST=0; + } elseif ($dd < ($dow+22)) { + $BZL_DST=0; + } elseif ($dow == 0) { + if ($timezone) { # UTC calculations + if ($ns < (3600+($timezone-1)*3600)) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } else { # local time calculations + if ($ns < 3600) { + $BZL_DST=0; + } else { + $BZL_DST=1; + } + } + } else { + $BZL_DST=1; + } + } # end of month checks + if ($DBX) {print " DST: $BZL_DST\n";} + if ($BZL_DST) {$gmt_offset++;} + $AC_processed++; + } + +if (!$AC_processed) + { + if ($DBX) {print " No DST Method Found\n";} + if ($DBX) {print " DST: 0\n";} + $AC_processed++; + } + +return $gmt_offset; +} + + + + + +##### DETERMINE IF LEAD IS DIALABLE ##### +function dialable_gmt($DB,$link,$local_call_time,$gmt_offset,$state) + { + $dialable=0; + + $pzone=3600 * $gmt_offset; + $pmin=(gmdate("i", time() + $pzone)); + $phour=( (gmdate("G", time() + $pzone)) * 100); + $pday=gmdate("w", time() + $pzone); + $tz = sprintf("%.2f", $p); + $GMT_gmt = "$tz"; + $GMT_day = "$pday"; + $GMT_hour = ($phour + $pmin); + + $stmt="SELECT call_time_id,call_time_name,call_time_comments,ct_default_start,ct_default_stop,ct_sunday_start,ct_sunday_stop,ct_monday_start,ct_monday_stop,ct_tuesday_start,ct_tuesday_stop,ct_wednesday_start,ct_wednesday_stop,ct_thursday_start,ct_thursday_stop,ct_friday_start,ct_friday_stop,ct_saturday_start,ct_saturday_stop,ct_state_call_times FROM vicidial_call_times where call_time_id='$local_call_time';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rslt); + $Gct_default_start = "$rowx[3]"; + $Gct_default_stop = "$rowx[4]"; + $Gct_sunday_start = "$rowx[5]"; + $Gct_sunday_stop = "$rowx[6]"; + $Gct_monday_start = "$rowx[7]"; + $Gct_monday_stop = "$rowx[8]"; + $Gct_tuesday_start = "$rowx[9]"; + $Gct_tuesday_stop = "$rowx[10]"; + $Gct_wednesday_start = "$rowx[11]"; + $Gct_wednesday_stop = "$rowx[12]"; + $Gct_thursday_start = "$rowx[13]"; + $Gct_thursday_stop = "$rowx[14]"; + $Gct_friday_start = "$rowx[15]"; + $Gct_friday_stop = "$rowx[16]"; + $Gct_saturday_start = "$rowx[17]"; + $Gct_saturday_stop = "$rowx[18]"; + $Gct_state_call_times = "$rowx[19]"; + + if ($GMT_day==0) #### Sunday local time + { + if (($Gct_sunday_start==0) and ($Gct_sunday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_sunday_start) and ($GMT_hour<$Gct_sunday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==1) #### Monday local time + { + if (($Gct_monday_start==0) and ($Gct_monday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_monday_start) and ($GMT_hour<$Gct_monday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==2) #### Tuesday local time + { + if (($Gct_tuesday_start==0) and ($Gct_tuesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_tuesday_start) and ($GMT_hour<$Gct_tuesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==3) #### Wednesday local time + { + if (($Gct_wednesday_start==0) and ($Gct_wednesday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_wednesday_start) and ($GMT_hour<$Gct_wednesday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==4) #### Thursday local time + { + if (($Gct_thursday_start==0) and ($Gct_thursday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_thursday_start) and ($GMT_hour<$Gct_thursday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==5) #### Friday local time + { + if (($Gct_friday_start==0) and ($Gct_friday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_friday_start) and ($GMT_hour<$Gct_friday_stop) ) + {$dialable=1;} + } + } + if ($GMT_day==6) #### Saturday local time + { + if (($Gct_saturday_start==0) and ($Gct_saturday_stop==0)) + { + if ( ($GMT_hour>=$Gct_default_start) and ($GMT_hour<$Gct_default_stop) ) + {$dialable=1;} + } + else + { + if ( ($GMT_hour>=$Gct_saturday_start) and ($GMT_hour<$Gct_saturday_stop) ) + {$dialable=1;} + } + } + + return $dialable; + } + +/* + $ct_states = ''; + $ct_state_gmt_SQL = ''; + $ct_srs=0; + $b=0; + if (strlen($Gct_state_call_times)>2) + { + $state_rules = explode('|',$Gct_state_call_times); + $ct_srs = ((count($state_rules)) - 2); + } + while($ct_srs >= $b) + { + if ( (strlen($state_rules[$b])>1) and (strlen($state)>1) ) + { + $stmt="SELECT STAR from vicidial_state_call_times where state_call_time_id='$state_rules[$b]' and state_call_time_state='$state';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $Gstate_call_time_id = "$row[0]"; + $Gstate_call_time_state = "$row[1]"; + $Gsct_default_start = "$row[4]"; + $Gsct_default_stop = "$row[5]"; + $Gsct_sunday_start = "$row[6]"; + $Gsct_sunday_stop = "$row[7]"; + $Gsct_monday_start = "$row[8]"; + $Gsct_monday_stop = "$row[9]"; + $Gsct_tuesday_start = "$row[10]"; + $Gsct_tuesday_stop = "$row[11]"; + $Gsct_wednesday_start = "$row[12]"; + $Gsct_wednesday_stop = "$row[13]"; + $Gsct_thursday_start = "$row[14]"; + $Gsct_thursday_stop = "$row[15]"; + $Gsct_friday_start = "$row[16]"; + $Gsct_friday_stop = "$row[17]"; + $Gsct_saturday_start = "$row[18]"; + $Gsct_saturday_stop = "$row[19]"; + + $ct_states .="'$Gstate_call_time_state',"; + + $r=0; + $state_gmt=''; + while($r < $g) + { + if ($GMT_day[$r]==0) #### Sunday local time + { + if (($Gsct_sunday_start==0) and ($Gsct_sunday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_sunday_start) and ($GMT_hour[$r]<$Gsct_sunday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==1) #### Monday local time + { + if (($Gsct_monday_start==0) and ($Gsct_monday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_monday_start) and ($GMT_hour[$r]<$Gsct_monday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==2) #### Tuesday local time + { + if (($Gsct_tuesday_start==0) and ($Gsct_tuesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_tuesday_start) and ($GMT_hour[$r]<$Gsct_tuesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==3) #### Wednesday local time + { + if (($Gsct_wednesday_start==0) and ($Gsct_wednesday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_wednesday_start) and ($GMT_hour[$r]<$Gsct_wednesday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==4) #### Thursday local time + { + if (($Gsct_thursday_start==0) and ($Gsct_thursday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_thursday_start) and ($GMT_hour[$r]<$Gsct_thursday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==5) #### Friday local time + { + if (($Gsct_friday_start==0) and ($Gsct_friday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_friday_start) and ($GMT_hour[$r]<$Gsct_friday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + if ($GMT_day[$r]==6) #### Saturday local time + { + if (($Gsct_saturday_start==0) and ($Gsct_saturday_stop==0)) + { + if ( ($GMT_hour[$r]>=$Gsct_default_start) and ($GMT_hour[$r]<$Gsct_default_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + else + { + if ( ($GMT_hour[$r]>=$Gsct_saturday_start) and ($GMT_hour[$r]<$Gsct_saturday_stop) ) + {$state_gmt.="'$GMT_gmt[$r]',";} + } + } + $r++; + } + $state_gmt = "$state_gmt'99'"; + $ct_state_gmt_SQL .= "or (state='$Gstate_call_time_state' and gmt_offset_now IN($state_gmt)) "; + } + + $b++; + } + if (strlen($ct_states)>2) + { + $ct_states = eregi_replace(",$",'',$ct_states); + $ct_statesSQL = "and state NOT IN($ct_states)"; + } + else + { + $ct_statesSQL = ""; + } + +*/ + + + + +##### Logging ##### +function api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data) + { + if ($api_logging > 0) + { + $NOW_TIME = date("Y-m-d H:i:s"); + # api_log($link,$api_logging,$api_script,$user,$agent_user,$function,$value,$result,$result_reason,$source,$data); + $stmt="INSERT INTO vicidial_api_log set user='$user',agent_user='$agent_user',function='$function',value='$value',result='$result',result_reason='$result_reason',source='$source',data='$data',api_date='$NOW_TIME',api_script='$api_script';"; + $rslt=mysql_query($stmt, $link); + } + return 1; + } + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/phone_stats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/phone_stats.php new file mode 100644 index 00000000..6a7ee6aa --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/phone_stats.php @@ -0,0 +1,246 @@ + LICENSE: AGPLv2 +# +# +# changes: +# 60620-1333 - Added variable filtering to eliminate SQL injection attack threat +# - Added required user/pass to gain access to this page +# 60927-1548 - Changed to vicidial_users for authentication +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["full_name"])) {$full_name=$_GET["full_name"];} + elseif (isset($_POST["full_name"])) {$full_name=$_POST["full_name"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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"); +$TODAY = date("Y-m-d"); +$admin_page = './admin.php'; + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-ASTERISK\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "ASTERISK|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + ##### get server listing for dynamic pulldown + $stmt="SELECT fullname from phones where server_ip='$server_ip' and extension='$extension'"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + $fullname = $row[0]; + } + else + { + fwrite ($fp, "ASTERISK|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +?> + + +VICIDIAL ADMIN: Phone Stats + + +
    + + + + + + + +\n"; +echo "
      VICIDIAL ADMIN: Administration  
      LIST ALL PHONES | ADD A NEW PHONE | SEARCH FOR A PHONE | ADD A SERVER | LIST ALL SERVERS
      SHOW ALL CONFERENCES | ADD A NEW CONFERENCE
      \n"; + +echo "
    \n"; +echo "\n"; +echo "\n"; +echo " to \n"; +echo "  \n"; +echo "\n"; + + +echo "           $user - $full_name\n"; + +echo "
    \n"; + + + $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); + $statuses_to_print = mysql_num_rows($rslt); +# echo "|$stmt|\n"; + +echo "
    \n"; + +echo "CALL TIME AND CHANNELS:\n"; + +echo "
    \n"; +echo "\n"; + + $total_calls=0; + $o=0; + while ($statuses_to_print > $o) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $call_seconds = $row[2]; + $call_hours = ($call_seconds / 3600); + $call_hours = round($call_hours, 2); + $call_hours_int = intval("$call_hours"); + $call_minutes = ($call_hours - $call_hours_int); + $call_minutes = ($call_minutes * 60); + $call_minutes_int = round($call_minutes, 0); + if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} + + echo ""; + echo "\n"; + echo "\n"; + $total_calls = ($total_calls + $row[0]); + + $call_seconds=0; + $o++; + } + + $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); + $counts_to_print = mysql_num_rows($rslt); + $row=mysql_fetch_row($rslt); + $call_seconds = $row[0]; + $call_hours = ($call_seconds / 3600); + $call_hours = round($call_hours, 2); + $call_hours_int = intval("$call_hours"); + $call_minutes = ($call_hours - $call_hours_int); + $call_minutes = ($call_minutes * 60); + $call_minutes_int = round($call_minutes, 0); + if ($call_minutes_int < 10) {$call_minutes_int = "0$call_minutes_int";} +# echo "|$stmt|\n"; + +echo "\n"; +echo "
    CHANNEL GROUP COUNT HOURS:MINUTES
    $row[1] $row[0] $call_hours_int:$call_minutes_int
    TOTAL CALLS $total_calls $call_hours_int:$call_minutes_int
    \n"; +echo "

    \n"; + +echo "
    \n"; + +echo "LAST 1000 CALLS FOR DATE RANGE:\n"; +echo "\n"; +echo "\n"; + + $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); + $events_to_print = mysql_num_rows($rslt); +# echo "|$stmt|\n"; + + $total_calls=0; + $o=0; + $event_start_seconds=''; + $event_stop_seconds=''; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + + + $call_seconds=0; + $o++; + } + + +echo "
    NUMBER CHANNEL GROUP DATE LENGTH(MIN.)
    $row[0] $row[1] $row[2] $row[3]
    \n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + +
    + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/quick.mid b/agc_2-X/branches/agc_2.2.0/www/vicidial/quick.mid new file mode 100644 index 00000000..99406b01 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/quick.mid differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/quick_ring.mid b/agc_2-X/branches/agc_2.2.0/www/vicidial/quick_ring.mid new file mode 100644 index 00000000..ea4ff61b Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/quick_ring.mid differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/record_conf_1_hour.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/record_conf_1_hour.php new file mode 100644 index 00000000..0de6813b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/record_conf_1_hour.php @@ -0,0 +1,157 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["station"])) {$station=$_GET["station"];} + elseif (isset($_POST["station"])) {$station=$_POST["station"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["NEW_RECORDING"])) {$NEW_RECORDING=$_GET["NEW_RECORDING"];} + elseif (isset($_POST["NEW_RECORDING"])) {$NEW_RECORDING=$_POST["NEW_RECORDING"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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 and view_reports='1';"; + 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"); +$TODAY = date("Y-m-d"); +$MYSQL_datetime = date("Y-m-d H:i:s"); +$FILE_datetime = date("Ymd-His_"); +$secX = $STARTtime; + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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; + } + else + { + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + + $stmt="SELECT full_name from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + } + + + + +?> + + +VICIDIAL RECORD CONFERENCE: 1 hour +\n"; +?> + + +
    + + 8) && (strlen($session_id) > 3) && (strlen($station) > 3) ) + { + $local_DEF = 'Local/'; + $local_AMP = '@'; + $conf_silent_prefix = '7'; + $ext_context = 'demo'; + + $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

    \n"; + $rslt=mysql_query($stmt, $link); + + $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

    \n"; + $rslt=mysql_query($stmt, $link); + + echo "Recording started\n

    \n"; + echo "Back to main recording screen\n

    \n"; + } + else + { + echo "ERROR!!!! Not all info entered properly\n

    \n"; + echo "|$server_ip| |$session_id| |$station|\n

    \n"; + echo "Back to main recording screen\n

    \n"; + } +} +else +{ +echo "
    Start recording a conference for 1 hour: \n"; +echo "\n"; +echo "server_ip: | \n"; +echo "session_id: | \n"; +echo "station: | \n"; +echo "\n"; +echo "


    \n"; + + + +} +?> + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/recording_lookup.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/recording_lookup.php new file mode 100644 index 00000000..1b662b20 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/recording_lookup.php @@ -0,0 +1,171 @@ + LICENSE: AGPLv2 +# + +# CHANGES +# 71015-0845 - First build +# 71112-1347 - added GSM option +# 90508-0644 - Changed to PHP long tags +# + +$STARTtime = date("U"); +$TODAYstart = date("H/i/s 00:00:00"); + +$linkAST=mysql_connect("10.10.10.15", "cron", "1234"); +mysql_select_db("asterisk"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["QUERY_recid"])) {$QUERY_recid=$_GET["QUERY_recid"];} + elseif (isset($_POST["QUERY_recid"])) {$QUERY_recid=$_POST["QUERY_recid"];} + +$web_server = '1.1.1.1'; +$US='_'; + + if( (eregi("VDC",$PHP_AUTH_USER)) or (eregi("VDC",$PHP_AUTH_PW)) ) + { +# $package=''; + } + else + { + Header("WWW-Authenticate: Basic realm=\"VICI-VERIF\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + $fp = fopen ("/usr/local/apache2/htdocs/vicidial/auth_entries.txt", "a"); + $date = date("r"); + $ip = getenv("REMOTE_ADDR"); + $browser = getenv("HTTP_USER_AGENT"); + fwrite ($fp, "AUTH|VDC |$date|$username|$passwd|$ip|$QUERY_recid|$browser|\n"); + fclose($fp); + +?> + + +Recording ID Lookup: + + + +
    \n"; + +#echo "
    \n"; + +if (strlen($QUERY_recid)<10) +{ +echo "Please enter a recording ID(customer phone number) below:\n"; +} +else +{ +$logs_to_print=0; +echo "searching for: $QUERY_recid\n"; +echo "
    \n";
    +
    +	$stmt="select recording_id,lead_id,user,filename,location,start_time,length_in_sec from recording_log where filename LIKE \"%$QUERY_recid%\" order by recording_id desc LIMIT 1;";
    +	$rslt=mysql_query($stmt, $linkAST);
    +	$logs_to_print = mysql_num_rows($rslt);
    +#echo "|$stmt|";
    +
    +$u=0;
    +if ($logs_to_print)
    +	{
    +	$row=mysql_fetch_row($rslt);
    +	$phone = $QUERY_recid;
    +	$recording_id = $row[0]; 
    +	$lead_id =		$row[1]; 
    +	$user =			$row[2];
    +	$filename =		$row[3];
    +	$location =		$row[4];
    +	$start_time =	$row[5];
    +	$length_in_sec = $row[6];
    +		$AUDname =	explode("/",$location);
    +		$AUDnamect =	(count($AUDname)) - 1;
    +
    +	
    +	eregi_replace('10.10.10.16','10.10.10.16',$AUDname[$AUDnamect]);
    +
    +	echo "Call Date/Time:        $start_time\n";
    +	echo "Recording Length:      $length_in_sec\n";
    +	echo "Phone Number:          $phone\n";
    +	echo "Recording ID:          $recording_id\n";
    +	echo "Agent:                 $user\n";
    +#	echo "filename:              $filename\n";
    +#	echo "Location:              $location\n";
    +#	echo "AUDname:               $AUDname[$AUDnamect]\n";
    +	echo "Unique ID:             $lead_id\n";
    +
    +$fileGSM=$AUDname[$AUDnamect];
    +$locationGSM=$location;
    +$fileGSM = eregi_replace('.wav','.gsm',$fileGSM);
    +if (!eregi('gsm',$locationGSM))
    +{
    +$locationGSM = eregi_replace('10.10.10.16','10.10.10.16/GSM',$locationGSM);
    +$locationGSM = eregi_replace('.wav','.gsm',$locationGSM);
    +}
    +	passthru("/usr/local/apache2/htdocs/vicidial/wget --output-document=/usr/local/apache2/htdocs/vicidial/temp/$AUDname[$AUDnamect] $location\n");
    +	passthru("/usr/local/apache2/htdocs/vicidial/wget --output-document=/usr/local/apache2/htdocs/vicidial/temp/$fileGSM $locationGSM\n");
    +
    +	echo "Link Uncompressed WAV: $AUDname[$AUDnamect]\n";
    +	echo "Link Compressed GSM:   $fileGSM\n";
    +
    +	}
    +
    +else
    +	{
    +	echo "ERROR:        $QUERY_recid\n";
    +	}
    +
    +
    +echo "
    \n"; + +} + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; +echo "\n"; +echo "\n"; +echo "\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds"; + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/recording_lookup_DIRECT.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/recording_lookup_DIRECT.php new file mode 100644 index 00000000..79c819be --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/recording_lookup_DIRECT.php @@ -0,0 +1,144 @@ + LICENSE: AGPLv2 +# + +# CHANGES +# 71112-1409 - First Build +# 90508-0644 - Changed to PHP long tags +# + +$STARTtime = date("U"); +$TODAYstart = date("H/i/s 00:00:00"); + +$linkAST=mysql_connect("10.10.10.15", "cron", "1234"); +mysql_select_db("asterisk"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["format"])) {$format=$_GET["format"];} + elseif (isset($_POST["format"])) {$format=$_POST["format"];} +if (isset($_GET["auth"])) {$auth=$_GET["auth"];} + elseif (isset($_POST["auth"])) {$auth=$_POST["auth"];} + +$US='_'; + + if(eregi("VDC1234593JH654398722",$auth)) + {$nothing=1;} + else + { + echo "auth code: |$auth|\n"; + exit; + } + + $fp = fopen ("/usr/local/apache2/htdocs/vicidial/auth_entries.txt", "a"); + $date = date("r"); + $ip = getenv("REMOTE_ADDR"); + $browser = getenv("HTTP_USER_AGENT"); + fwrite ($fp, "AUTH|VDC |$date|$auth|$ip|$phone|$format|$browser|\n"); + fclose($fp); + +if (strlen($format)<3) {$format='WAV';} +if ( (strlen($phone)<10) or (strlen($phone)>10) ) + { + echo "\n"; + echo "\n"; + echo "Recording ID Lookup: \n"; + echo "\n"; + echo "\n"; + echo "

    \n"; + echo "You need to use only a 10-digit phone number
    \n"; + echo "recording_lookup_DIRECT.php?format=WAV&phone=7275551212&auth=VDC1234593JH654398722\n
    "; + exit; + } +else + { + $stmt="select recording_id,filename,location,start_time from recording_log where filename LIKE \"%$phone%\" order by recording_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $linkAST); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + if ($logs_to_print) + { + $row=mysql_fetch_row($rslt); + $recording_id = $row[0]; + $filename = $row[1]; + $location = $row[2]; + $start_time = $row[3]; + $AUDname = explode("/",$location); + $AUDnamect = (count($AUDname)) - 1; + + eregi_replace('10.10.10.16','10.10.10.16',$AUDname[$AUDnamect]); + + $fileGSM=$AUDname[$AUDnamect]; + $locationGSM=$location; + $fileGSM = eregi_replace('.wav','.gsm',$fileGSM); + if (!eregi('gsm',$locationGSM)) + { + $locationGSM = eregi_replace('10.10.10.16','10.10.10.16/GSM',$locationGSM); + $locationGSM = eregi_replace('.wav','.gsm',$locationGSM); + } + if ($format == 'WAV') + { + exec("/usr/local/apache2/htdocs/vicidial/wget --output-document=/usr/local/apache2/htdocs/vicidial/temp/$AUDname[$AUDnamect] $location\n"); + + $AUDIOfile = "/usr/local/apache2/htdocs/vicidial/temp/$AUDname[$AUDnamect]"; + $AUDIOfilename = "$AUDname[$AUDnamect]"; + // We'll be outputting a PDF + header('Content-type: audio/wav'); + // It will be named properly + header("Content-Disposition: attachment; filename=\"$AUDIOfilename\""); + // The PDF source is in original.pdf + readfile($AUDIOfile); + } + + if ($format == 'GSM') + { + passthru("/usr/local/apache2/htdocs/vicidial/wget --output-document=/usr/local/apache2/htdocs/vicidial/temp/$fileGSM $locationGSM\n"); + + $AUDIOfile = "/usr/local/apache2/htdocs/vicidial/temp/$fileGSM"; + $AUDIOfilename = "$fileGSM"; + // We'll be outputting a PDF + header('Content-type: audio/gsm'); + // It will be named properly + header("Content-Disposition: attachment; filename=\"$AUDIOfilename\""); + // The PDF source is in original.pdf + readfile($AUDIOfile); + } + } + + else + { + echo "ERROR: $phone|$format\n"; + } + + } +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/remote_dispo.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/remote_dispo.php new file mode 100644 index 00000000..bef1008b --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/remote_dispo.php @@ -0,0 +1,330 @@ + LICENSE: AGPLv2 +# +# 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 +# 90508-0644 - Changed to PHP long tags +# + + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ext_context = 'demo'; +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + +$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;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + if( (strlen($PHP_AUTH_USER)<2) or (strlen($PHP_AUTH_PW)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICIDIAL-CLOSER\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + else + { + + 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'"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + $fullname = $row[0]; + fwrite ($fp, "VD_CLOSER|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + + } + else + { + fwrite ($fp, "VD_CLOSER|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +?> + + +VICIDIAL REMOTE: Call Disposition +\n"; +?> + + +
    + +"; + +if ($end_call > 0) +{ + +$call_length = ($STARTtime - $call_began); + + ### insert a NEW record to the vicidial_closer_log table + $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";} + $rslt=mysql_query($stmt, $link); + + ### update the lead record in the vicidial_list table + $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";} + $rslt=mysql_query($stmt, $link); + + echo "Call has been dispositioned       $NOW_TIME\n

    \n"; + + echo "
    \n"; + +} +else +{ + $stmt="SELECT count(*) from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_count = $row[0]; + + if ($lead_count > 0) + { + + $stmt="SELECT lead_id,entry_date,modify_date,status,user,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,called_count,last_local_call_time,rank,owner from vicidial_list where lead_id='" . mysql_real_escape_string($lead_id) . "'"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $lead_id = "$row[0]"; + $tsr = "$row[4]"; + $vendor_id = "$row[5]"; + $list_id = "$row[7]"; + $campaign_id = "$row[8]"; + $phone_code = "$row[10]"; + $phone_number = "$row[11]"; + $title = "$row[12]"; + $first_name = "$row[13]"; # + $middle_initial = "$row[14]"; + $last_name = "$row[15]"; # + $address1 = "$row[16]"; # + $address2 = "$row[17]"; # + $address3 = "$row[18]"; # + $city = "$row[19]"; # + $state = "$row[20]"; # + $province = "$row[21]"; # + $postal_code = "$row[22]"; # + $country_code = "$row[23]"; # + $gender = "$row[24]"; + $date_of_birth = "$row[25]"; + $alt_phone = "$row[26]"; # + $email = "$row[27]"; # + $security = "$row[28]"; # + $comments = "$row[29]"; # + + echo "
    Call information: $first_name $last_name - $phone_number

    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + echo "\n"; + echo "
    Vendor ID: $vendor_id     Campaign ID: $campaign_id
    Fronter: $tsr     List ID: $list_id
    First Name:   \n"; + echo " Last Name:
    Address 1 :
    Address 2 :
    Address 3 :
    City :
    State:   \n"; + echo " Postal Code:
    Province :
    Country :
    Alt Phone :
    Email :
    Security :
    Comments :
    Disposition:
    \n"; + echo "


    \n"; + + } + else + { + echo "lead lookup FAILED for lead_id $lead_id       $NOW_TIME\n

    \n"; +# echo "Close this window\n

    \n"; + } + + + + + + +} + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/send_CID_call.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/send_CID_call.php new file mode 100644 index 00000000..accf324f --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/send_CID_call.php @@ -0,0 +1,132 @@ + LICENSE: GPLv2 +# +# CHANGES +# +# 90714-1355 - First Build +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +$ip = getenv("REMOTE_ADDR"); + +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["sender"])) {$sender=$_GET["sender"];} + elseif (isset($_POST["sender"])) {$sender=$_POST["sender"];} +if (isset($_GET["receiver"])) {$receiver=$_GET["receiver"];} + elseif (isset($_POST["receiver"])) {$receiver=$_POST["receiver"];} +if (isset($_GET["cid_number"])) {$cid_number=$_GET["cid_number"];} + elseif (isset($_POST["cid_number"])) {$cid_number=$_POST["cid_number"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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); + +$sender = ereg_replace("[^0-9]","",$sender); +$receiver = ereg_replace("[^0-9]","",$receiver); +$cid_number = ereg_replace("[^0-9]","",$cid_number); +$server_ip = ereg_replace("[^\.0-9]","",$server_ip); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 6 and view_reports='1';"; +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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); + + +?> + + + + + +\n"; +echo "VICIDIAL: Manual CID call\n"; +echo "
    \n"; +echo "Sender:     \n"; +echo "Receiver:     \n"; +echo "CID Number:     \n"; +echo "Server:   \n"; +echo "\n"; +echo "\n"; +echo "           REPORTS \n"; +echo "

    \n\n"; + + +if ( (strlen($sender) < 6) or (strlen($receiver) < 6) or (strlen($cid_number) < 6) or (strlen($server_ip) < 7) ) + { + echo "\n\n"; + echo "PLEASE ENTER A CALLER, RECEIVER AND CALLERID NUMBER ABOVE AND CLICK SUBMIT\n"; + } + +else + { + $stmt = "INSERT INTO user_call_log (user,call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id) values('$PHP_AUTH_USER','$NOW_TIME','CID','$server_ip','$sender','$receiver','0','$cid_number','$ip')"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + + $Local_end = '@default'; + + $stmt = "INSERT INTO vicidial_manager values('','','$NOW_TIME','NEW','N','$server_ip','','Originate','TESTCIDCALL098765432','Exten: 91$receiver','Context: default','Channel: Local/91$sender$Local_end','Priority: 1','Callerid: \"$cid_number\" <$cid_number>','','','','','');"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + + echo "Call sent from $sender to $receiver using CIDnumber: $cid_number"; + } + +?> + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/short_long.mid b/agc_2-X/branches/agc_2.2.0/www/vicidial/short_long.mid new file mode 100644 index 00000000..f10433c2 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/short_long.mid differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/sph_report.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/sph_report.php new file mode 100644 index 00000000..a9427ef2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/sph_report.php @@ -0,0 +1,568 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80502-0857 - First build +# 80506-0228 - Added user field to search by +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +##### Pull values from posted form variables ##### +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["role"])) {$role=$_GET["role"];} + elseif (isset($_POST["role"])) {$role=$_POST["role"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($role)<2) {$role='ALL';} +if (strlen($order)<2) {$order='sales_down';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$campaigns_to_print = mysql_num_rows($rslt); +$i=0; + $LISTcampaigns[$i]='---NONE---'; + $i++; + $campaigns_to_print++; +while ($i < $campaigns_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTcampaigns[$i] =$row[0]; + $i++; + } + +$stmt="select group_id from vicidial_inbound_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTgroups[$i]='---NONE---'; + $i++; + $groups_to_print++; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTgroups[$i] =$row[0]; + $i++; + } + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + +##### START HTML ##### +?> + + + + + + + +VICIDIAL: Agent SPH Report + + + + 0) + { + echo "
    \n"; + echo "$campaign_ct|$campaign_string|$campaign_SQL\n"; + echo "
    \n"; + echo "$group_ct|$group_string|$group_SQL\n"; + echo "
    \n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "
    \n"; + echo "$role|$role_SQL\n"; + echo "
    \n"; + + } + +echo "
    \n"; +echo "
    \n"; +echo ""; +echo "
    \n"; + +echo "Date Range:
    \n"; +echo ""; +echo "
    to
    \n"; +echo "\n"; +/* +echo "
    \n"; +echo "Campaigns:
    \n"; +echo "\n"; +*/ +echo "
    \n"; +echo "Inbound Groups:
    \n"; +echo "\n"; +echo "
    \n"; +echo "User Groups:
    \n"; +echo "\n"; +echo "
    \n"; +echo "Shift:
    \n"; +echo " \n"; + +echo "
    \n"; +echo "Role:
    \n"; +echo " \n"; + +echo "
    \n"; +echo "     REPORTS \n"; + +echo "
    \n"; +echo "Order:
    \n"; +echo "
    \n"; + +echo "
    \n"; +echo "User:
    \n"; +echo "\n"; + +echo "
    \n"; +echo "\n"; +echo "
    \n"; +echo "
    \n\n"; + +echo "
    \n";
    +
    +
    +if ($group_ct < 1)
    +{
    +echo "\n";
    +echo "PLEASE SELECT AN IN-GROUP AND DATE RANGE ABOVE AND CLICK SUBMIT\n";
    +echo " NOTE: stats taken from shift specified\n";
    +}
    +
    +else
    +{
    +/*
    +if ($shift == 'AM') 
    +	{
    +	$time_BEGIN=$AM_shift_BEGIN;
    +	$time_END=$AM_shift_END;
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "03:45:00";}   
    +	if (strlen($time_END) < 6) {$time_END = "15:15:00";}
    +	}
    +if ($shift == 'PM') 
    +	{
    +	$time_BEGIN=$PM_shift_BEGIN;
    +	$time_END=$PM_shift_END;
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "15:15:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:15:00";}
    +	}
    +if ($shift == 'ALL') 
    +	{
    +	if (strlen($time_BEGIN) < 6) {$time_BEGIN = "00:00:00";}
    +	if (strlen($time_END) < 6) {$time_END = "23:59:59";}
    +	}
    +$query_date_BEGIN = "$query_date $time_BEGIN";   
    +$query_date_END = "$end_date $time_END";
    +
    +if (strlen($user_group)>0) {$ugSQL="and vicidial_agent_log.user_group='$user_group'";}
    +else {$ugSQL='';}
    +*/
    +
    +echo "VICIDIAL: Agent SPH Report                        $NOW_TIME\n";
    +
    +echo "Time range: $query_date to $end_date\n\n";
    +echo "---------- AGENTS SPH DETAILS -------------\n
    \n"; + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +$order_SQL=''; +if ($order == 'sph_up') {$order_SQL = "order by full_name,campaign_group_id,role";} +if ($order == 'sph_down') {$order_SQL = "order by full_name,campaign_group_id,role";} +if ($order == 'hours_up') {$order_SQL = "order by login";} +if ($order == 'hours_down') {$order_SQL = "order by login desc";} +if ($order == 'sales_up') {$order_SQL = "order by sales, sph desc";} +if ($order == 'sales_down') {$order_SQL = "order by sales desc, sph";} +if ($order == 'calls_up') {$order_SQL = "order by calls";} +if ($order == 'calls_down') {$order_SQL = "order by calls desc";} +if ($order == 'user_up') {$order_SQL = "order by vicidial_users.user";} +if ($order == 'user_down') {$order_SQL = "order by vicidial_users.user desc";} +if ($order == 'name_up') {$order_SQL = "order by full_name";} +if ($order == 'name_down') {$order_SQL = "order by full_name desc";} + +if (strlen($user) > 0) {$user_SQL = "and vicidial_agent_sph.user='$user'";} +else {$user_SQL='';} + +$stmt="select vicidial_users.user,full_name,role,campaign_group_id,sum(login_sec) as login,sum(calls) as calls,sum(sales) as sales,avg(sph) as sph from vicidial_users,vicidial_agent_sph where stat_date >= '$query_date' and stat_date <= '$end_date' and shift='$shift' and vicidial_users.user=vicidial_agent_sph.user and campaign_group_id IN($group_SQL) $role_SQL $user_SQL group by vicidial_users.user,campaign_group_id,role $order_SQL limit 100000;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$rows_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $rows_to_print) + { + $dbHOURS=0; $dbSPH=0; + $row=mysql_fetch_row($rslt); + $user_id[$i] = $row[0]; + $full_name[$i] = $row[1]; + $roleX[$i] = $row[2]; + $group[$i] = $row[3]; + $login_sec[$i] = $row[4]; $TOTlogin_sec = ($TOTlogin_sec + $row[4]); + $calls[$i] = $row[5]; $TOTcalls = ($TOTcalls + $row[5]); + $sales[$i] = $row[6]; $TOTsales = ($TOTsales + $row[6]); + + if ($login_sec[$i] > 0) + { + $dbHOURS = ($login_sec[$i] / 3600); + if ($sales[$i] > 0) + { + $dbSPH = ( $sales[$i] / $dbHOURS ); + $dbSPH = round($dbSPH, 2); + $dbSPH = sprintf("%01.2f", $dbSPH); + } + else + {$dbSPH='0.00';} + $dbHOURS = round($dbHOURS, 2); + $dbHOURS = sprintf("%01.2f", $dbHOURS); + } + else + {$dbHOURS='0.00';} + + $sph[$i] = $dbSPH; + $hours[$i] = $dbHOURS; + + $sphSORT[$i] = "$dbSPH-----$i"; + $hoursSORT[$i] = "$dbHOURS-----$i"; + + $i++; + } + +### Sort by sph if selected +if ($order == 'sph_up') + { + sort($sphSORT, SORT_NUMERIC); + } +if ($order == 'sph_down') + { + rsort($sphSORT, SORT_NUMERIC); + } + +$j=0; +while ($j < $rows_to_print) + { + + $sph_split = explode("-----",$sphSORT[$j]); + $i = $sph_split[1]; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + + $j++; + } + + +if ($TOTlogin_sec > 0) + { + $TOTdbHOURS = ($TOTlogin_sec / 3600); + if ($TOTsales > 0) + { + $TOTdbSPH = ( $TOTsales / $TOTdbHOURS ); + $TOTdbSPH = round($TOTdbSPH, 2); + $TOTdbSPH = sprintf("%01.2f", $TOTdbSPH); + } + else + {$TOTdbSPH='0.00';} + $TOTdbHOURS = round($TOTdbHOURS, 0); + $TOTdbHOURS = sprintf("%01.0f", $TOTdbHOURS); + } +else + {$TOTdbHOURS='0.00';} + +$TOTsph = $TOTdbSPH; +$TOThours = $TOTdbHOURS; + + +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; + +echo "
    #  USER    NAME    ROLE    GROUP    CALLS    HOURS    SALES    SPH  
    $j$user_id[$i] $full_name[$i] $roleX[$i] $group[$i] $calls[$i] $hours[$i] $sales[$i] $sph[$i]
    TOTALS $TOTcalls $TOThours $TOTsales $TOTsph
    \n"; + +/* + $TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60); + $TOTavgWAIT_M = round($TOTavgWAIT_M, 2); + $TOTavgWAIT_M_int = intval("$TOTavgWAIT_M"); + $TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int); + $TOTavgWAIT_S = ($TOTavgWAIT_S * 60); + $TOTavgWAIT_S = round($TOTavgWAIT_S, 0); + if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";} + $TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S"; + $TOTavgWAIT_MS = sprintf("%6s", $TOTavgWAIT_MS); + while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);} +*/ + + +echo "\n"; + +} + + +?> +
    + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/spreadsheet_sales_viewer.pl b/agc_2-X/branches/agc_2.2.0/www/vicidial/spreadsheet_sales_viewer.pl new file mode 100644 index 00000000..4ba2e3d6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/spreadsheet_sales_viewer.pl @@ -0,0 +1,384 @@ +#!/usr/bin/perl +# +# spreadsheet_sales_viewer.pl version 2.0.5 +# +# Copyright (C) 2008 Joe Johnson,Matt Florell LICENSE: AGPLv2 +# +# +# CHANGES +# 70521-1734 - First build +# 70522-1554 - Changed to use DBI instead of Net::MySQL +# + +use Spreadsheet::WriteExcel; +use Time::Local; +use DBI; + +# default path to astguiclient configuration file: +$PATHconf = '/etc/astguiclient.conf'; + +open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; +@conf = ; +close(conf); +$i=0; +foreach(@conf) + { + $line = $conf[$i]; + $line =~ s/ |>|\n|\r|\t|\#.*|;.*//gi; + if ( ($line =~ /^PATHhome/) && ($CLIhome < 1) ) + {$PATHhome = $line; $PATHhome =~ s/.*=//gi;} + if ( ($line =~ /^PATHlogs/) && ($CLIlogs < 1) ) + {$PATHlogs = $line; $PATHlogs =~ s/.*=//gi;} + if ( ($line =~ /^PATHagi/) && ($CLIagi < 1) ) + {$PATHagi = $line; $PATHagi =~ s/.*=//gi;} + if ( ($line =~ /^PATHweb/) && ($CLIweb < 1) ) + {$PATHweb = $line; $PATHweb =~ s/.*=//gi;} + if ( ($line =~ /^PATHsounds/) && ($CLIsounds < 1) ) + {$PATHsounds = $line; $PATHsounds =~ s/.*=//gi;} + if ( ($line =~ /^PATHmonitor/) && ($CLImonitor < 1) ) + {$PATHmonitor = $line; $PATHmonitor =~ s/.*=//gi;} + if ( ($line =~ /^VARserver_ip/) && ($CLIserver_ip < 1) ) + {$VARserver_ip = $line; $VARserver_ip =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_server/) && ($CLIDB_server < 1) ) + {$VARDB_server = $line; $VARDB_server =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) + {$VARDB_database = $line; $VARDB_database =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_user/) && ($CLIDB_user < 1) ) + {$VARDB_user = $line; $VARDB_user =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_pass/) && ($CLIDB_pass < 1) ) + {$VARDB_pass = $line; $VARDB_pass =~ s/.*=//gi;} + if ( ($line =~ /^VARDB_port/) && ($CLIDB_port < 1) ) + {$VARDB_port = $line; $VARDB_port =~ s/.*=//gi;} + $i++; + } + +# Customized Variables +$server_ip = $VARserver_ip; # Asterisk server IP + +if (!$VARDB_port) {$VARDB_port='3306';} + +$dbhA = DBI->connect("DBI:mysql:$VARDB_database:$VARDB_server:$VARDB_port", "$VARDB_user", "$VARDB_pass") + or die "Couldn't connect to database: " . DBI->errstr; + +$list_ids=$ARGV[0]; +$sales_number=$ARGV[1]; +$timestamp=$ARGV[2]; +$forc=$ARGV[3]; +$now=$ARGV[4]; +$dcampaign=$ARGV[5]; + +$list_id_clause="and v.list_id in ("; +@lists=split(/\,/, $list_ids); +for ($i=0; $i0)) { $list_id_clause.="$lists[$i], "; } +} +$list_id_clause=substr($list_id_clause, 0, -2); +$list_id_clause.=")"; + + +if ($sales_number==0) {undef $sales_number;} + + +$xl = Spreadsheet::WriteExcel->new("$PATHweb/vicidial/vicidial_closer_report_$now.xls"); +$xlsheet = $xl->add_worksheet(); +$xlsheet->set_landscape(); +$rptheader = $xl->add_format(); # Add a format +$rptheader->set_bold(); +$rptheader->set_size('8'); +$rptheader->set_color('10'); +$rptheader->set_align('center'); + +$rptheaderLEFT = $xl->add_format(); # Add a format +$rptheaderLEFT->set_bold(); +$rptheaderLEFT->set_size('8'); +$rptheaderLEFT->set_color('10'); +$rptheaderLEFT->set_align('left'); + +$normcell = $xl->add_format(); # Add a format +$normcell->set_size('8'); +$normcell->set_align('center'); +$normcell->set_bg_color('22'); + +$boldcell = $xl->add_format(); # Add a format +$boldcell->set_bold(); +$boldcell->set_size('8'); +$boldcell->set_align('center'); +$boldcell->set_bg_color('22'); + +$dollarformat = $xl->add_format(); # Add a format +$dollarformat->set_size('8'); +$dollarformat->set_num_format('$0.00'); + +$intformat = $xl->add_format(); # Add a format +$intformat->set_size('8'); +$intformat->set_num_format('0'); + +$numberformat = $xl->add_format(); # Add a format +$numberformat->set_size('8'); +$numberformat->set_num_format('0.00'); + +$pformat = $xl->add_format(); # Add a format +$pformat->set_size('8'); +$pformat->set_num_format('0.00%'); + +$p2format = $xl->add_format(); # Add a format +$p2format->set_size('8'); +$p2format->set_num_format('0%'); + +$statcell = $xl->add_format(num_format => '@'); # Add a format +$statcell->set_size('8'); + +$countcell = $xl->add_format(); # Add a format +$countcell->set_size('8'); +$countcell->set_bg_color('35'); + +$terminateheader = $xl->add_format(); # Add a format +$terminateheader->set_bold(); +$terminateheader->set_size('8'); +$terminateheader->set_color('10'); +$terminateheader->set_num_format('0.00'); + +$xlsheet->write("B1", "Closer stats", $rptheader); +$xlsheet->write("D1", "$dcampaign", $rptheaderLEFT); +$xlsheet->write("F1", "$list_ids", $rptheaderLEFT); +$xlsheet->write("A2", "Closer Name", $rptheader); +$xlsheet->write("B2", "# of calls", $rptheader); +$xlsheet->write("C2", "# of sales", $rptheader); +$xlsheet->write("D2", "Sales percentage", $rptheader); +$xlsheet->write("E2", "Calls per hour", $rptheader); +$xlsheet->write("F2", "Sales per hour", $rptheader); +$xlsheet->write("G2", "Total time in system", $rptheader); + +%closers=(); +%fronters=(); + + + +# Non-transfer +$sales=0; +$stmtA = "select v.status, u.full_name, u.user from vicidial_users u, vicidial_list v, vicidial_log vl where vl.call_date>='$timestamp' and vl.call_date<='$now' and vl.lead_id=v.lead_id $list_id_clause and vl.user=u.user;"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if (length($sales_number)==0 || $sales<$sales_number) + { + $closers{"$aryA[1]"}[0]++; + $fronters{"$aryA[1]"}[0]++; + if ($aryA[0] eq "SALE") + { + $sales++; + $closers{"$aryA[1]"}[1]++; + $fronters{"$aryA[1]"}[1]++; + } + } + $closers{"$aryA[1]"}[2]=$aryA[2]; + $fronters{"$aryA[1]"}[2]=$aryA[2]; + $rec_count++; + } +$sthA->finish(); + + +if ($forc eq "F") { + %closers=(); + + $sales=0; + $stmtA = "select v.status, u.full_name, u.user from vicidial_list v, vicidial_users u, vicidial_xfer_log vl where vl.call_date>='$timestamp' and vl.call_date<='$now' and vl.lead_id=v.lead_id $list_id_clause and vl.closer=u.user;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + if (!$sales_number || $sales<$sales_number) + { + $closers{"$aryA[1]"}[0]++; + if ($aryA[0] eq "SALE") + { + $sales++; + $closers{"$aryA[1]"}[1]++; + } + } + $closers{"$aryA[1]"}[2]=$aryA[2]; + $rec_count++; + } + $sthA->finish(); +} + + +$x=3; +$grand_total_time=0; +foreach $closername (sort(keys(%closers))) +{ + $closers{$closername}[0]+=0; + $closers{$closername}[1]+=0; + + $stmtA = "select sum(pause_sec+wait_sec+talk_sec), sec_to_time(sum(pause_sec+wait_sec+talk_sec)) from vicidial_agent_log where user=".$closers{$closername}[2]." and event_time>='$timestamp' and event_time<='$now' and pause_sec<28800 and wait_sec<28800 and talk_sec<28800;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $hours=($aryA[0]/3600); + $grand_total_time+=$aryA[0]; + $total_time=$aryA[1]; + $rec_count++; + } + $sthA->finish(); + $xlsheet->write("A$x", "$closername", $normcell); + $xlsheet->write("B$x", "=$closers{$closername}[0]+0", $intformat); + $xlsheet->write("C$x", "=$closers{$closername}[1]+0", $intformat); + $xlsheet->write("D$x", "=C$x/B$x", $pformat); + $xlsheet->write("E$x", "=B$x/$hours", $numberformat); + $xlsheet->write("F$x", "=C$x/$hours", $numberformat); + $xlsheet->write("G$x", "$total_time", $normcell); + $x++; +} +$hours=($grand_total_time/3600); + +$stmtA = "select sec_to_time($grand_total_time)"; +$sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; +$sthA->execute or die "executing: $stmtA ", $dbhA->errstr; +$sthArows=$sthA->rows; +$rec_count=0; +while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $grand_total_time=$aryA[0]; + $rec_count++; + } +$sthA->finish(); + + +$y=($x+1); +$xlsheet->write("A$y", "Grand Total", $boldcell); +$xlsheet->write("B$y", "=SUM(B3:B$x)", $intformat); +$xlsheet->write("C$y", "=SUM(C3:C$x)", $intformat); +$xlsheet->write("D$y", "=C$y/B$y", $pformat); +$xlsheet->write("E$y", "=B$y/$hours", $numberformat); +$xlsheet->write("F$y", "=C$y/$hours", $numberformat); +$xlsheet->write("G$y", "$grand_total_time", $normcell); +$xl->close(); + + +if ($forc eq "F") { + $xl = Spreadsheet::WriteExcel->new("$PATHweb/vicidial/vicidial_fronter_report_$now.xls"); + $xlsheet = $xl->add_worksheet(); + $xlsheet->set_landscape(); + $rptheader = $xl->add_format(); # Add a format + $rptheader->set_bold(); + $rptheader->set_size('8'); + $rptheader->set_color('10'); + $rptheader->set_align('center'); + + $normcell = $xl->add_format(); # Add a format + $normcell->set_size('8'); + $normcell->set_align('center'); + $normcell->set_bg_color('22'); + + $boldcell = $xl->add_format(); # Add a format + $boldcell->set_bold(); + $boldcell->set_size('8'); + $boldcell->set_align('center'); + $boldcell->set_bg_color('22'); + + $dollarformat = $xl->add_format(); # Add a format + $dollarformat->set_size('8'); + $dollarformat->set_num_format('$0.00'); + + $intformat = $xl->add_format(); # Add a format + $intformat->set_size('8'); + $intformat->set_num_format('0'); + + $numberformat = $xl->add_format(); # Add a format + $numberformat->set_size('8'); + $numberformat->set_num_format('0.00'); + + $pformat = $xl->add_format(); # Add a format + $pformat->set_size('8'); + $pformat->set_num_format('0.00%'); + + $statcell = $xl->add_format(num_format => '@'); # Add a format + $statcell->set_size('8'); + + $countcell = $xl->add_format(); # Add a format + $countcell->set_size('8'); + $countcell->set_bg_color('35'); + + $terminateheader = $xl->add_format(); # Add a format + $terminateheader->set_bold(); + $terminateheader->set_size('8'); + $terminateheader->set_color('10'); + $terminateheader->set_num_format('0.00'); + + $xlsheet->write("D1", "Fronter stats", $rptheader); + $xlsheet->write("A2", "Fronter Name", $rptheader); + $xlsheet->write("B2", "# of calls", $rptheader); + $xlsheet->write("C2", "# of sales", $rptheader); + $xlsheet->write("D2", "Sales percentage", $rptheader); + $xlsheet->write("E2", "Calls per hour", $rptheader); + $xlsheet->write("F2", "Sales per hour", $rptheader); + $xlsheet->write("G2", "Total time in system", $rptheader); + + $x=3; + $grand_total_time=0; + foreach $tsrname (sort(keys(%fronters))) { + $fronters{$tsrname}[0]+=0; + $fronters{$tsrname}[1]+=0; + $stmtA = "select sum(pause_sec+wait_sec+talk_sec), sec_to_time(sum(pause_sec+wait_sec+talk_sec)) from vicidial_agent_log where user=".$fronters{$tsrname}[2]." and event_time>='$timestamp' and event_time<='$now' and pause_sec<28800 and wait_sec<28800 and talk_sec<28800;"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $hours=($aryA[0]/3600); + $grand_total_time+=$aryA[0]; + $total_time=$aryA[1]; + $rec_count++; + } + $sthA->finish(); + + $xlsheet->write("A$x", "$tsrname", $normcell); + $xlsheet->write("B$x", "=$fronters{$tsrname}[0]+0", $intformat); + $xlsheet->write("C$x", "=$fronters{$tsrname}[1]+0", $intformat); + $xlsheet->write("D$x", "=C$x/B$x", $pformat); + $xlsheet->write("E$x", "=B$x/$hours", $numberformat); + $xlsheet->write("F$x", "=C$x/$hours", $numberformat); + $xlsheet->write("G$x", "$total_time", $normcell); + $x++; + } + $hours=($grand_total_time/3600); + + $stmtA = "select sec_to_time($grand_total_time)"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $sthArows=$sthA->rows; + $rec_count=0; + while ($sthArows > $rec_count) + { + @aryA = $sthA->fetchrow_array; + $grand_total_time=$aryA[0]; + $rec_count++; + } + $sthA->finish(); + + $y=($x+1); + $xlsheet->write("A$y", "Grand Total", $boldcell); + $xlsheet->write("B$y", "=SUM(B3:B$x)", $intformat); + $xlsheet->write("C$y", "=SUM(C3:C$x)", $intformat); + $xlsheet->write("D$y", "=C$y/B$y", $pformat); + $xlsheet->write("E$y", "=B$y/$hours", $numberformat); + $xlsheet->write("F$y", "=C$y/$hours", $numberformat); + $xlsheet->write("G$y", "$grand_total_time", $normcell); + + $xl->close(); +} + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_edit.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_edit.php new file mode 100644 index 00000000..4e60fdf6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_edit.php @@ -0,0 +1,481 @@ + LICENSE: AGPLv2 +# +# CHANGES +# +# 80624-1342 - First build +# 80701-1323 - functional beta version done +# 90310-2109 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["oldLOGINepoch"])) {$oldLOGINepoch=$_GET["oldLOGINepoch"];} + elseif (isset($_POST["oldLOGINepoch"])) {$oldLOGINepoch=$_POST["oldLOGINepoch"];} +if (isset($_GET["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_GET["oldLOGOUTepoch"];} + elseif (isset($_POST["oldLOGOUTepoch"])) {$oldLOGOUTepoch=$_POST["oldLOGOUTepoch"];} +if (isset($_GET["oldLOGINdate"])) {$oldLOGINdate=$_GET["oldLOGINdate"];} + elseif (isset($_POST["oldLOGINdate"])) {$oldLOGINdate=$_POST["oldLOGINdate"];} +if (isset($_GET["oldLOGOUTdate"])) {$oldLOGOUTdate=$_GET["oldLOGOUTdate"];} + elseif (isset($_POST["oldLOGOUTdate"])) {$oldLOGOUTdate=$_POST["oldLOGOUTdate"];} +if (isset($_GET["LOGINepoch"])) {$LOGINepoch=$_GET["LOGINepoch"];} + elseif (isset($_POST["LOGINepoch"])) {$LOGINepoch=$_POST["LOGINepoch"];} +if (isset($_GET["LOGOUTepoch"])) {$LOGOUTepoch=$_GET["LOGOUTepoch"];} + elseif (isset($_POST["LOGOUTepoch"])) {$LOGOUTepoch=$_POST["LOGOUTepoch"];} +if (isset($_GET["notes"])) {$notes=$_GET["notes"];} + elseif (isset($_POST["notes"])) {$notes=$_POST["notes"];} +if (isset($_GET["LOGINevent_id"])) {$LOGINevent_id=$_GET["LOGINevent_id"];} + elseif (isset($_POST["LOGINevent_id"])) {$LOGINevent_id=$_POST["LOGINevent_id"];} +if (isset($_GET["LOGOUTevent_id"])) {$LOGOUTevent_id=$_GET["LOGOUTevent_id"];} + elseif (isset($_POST["LOGOUTevent_id"])) {$LOGOUTevent_id=$_POST["LOGOUTevent_id"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["timeclock_id"])) {$timeclock_id=$_GET["timeclock_id"];} + elseif (isset($_POST["timeclock_id"])) {$timeclock_id=$_POST["timeclock_id"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); +$invalid_record=0; + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $modify_timeclock_log = $row[1]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT event,tcid_link from vicidial_timeclock_log where timeclock_id='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $event = $row[0]; + $tcid_link = $row[1]; + } + if (ereg("LOGIN",$event)) + { + $LOGINevent_id = $timeclock_id; + $LOGOUTevent_id = $tcid_link; + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (ereg("LOGOUT",$event)) + { + $LOGOUTevent_id = $timeclock_id; + $stmt="SELECT timeclock_id from vicidial_timeclock_log where tcid_link='" . mysql_real_escape_string($timeclock_id) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_id = $row[0]; + } + if ( (ereg('NULL',$LOGOUTevent_id)) or (strlen($LOGOUTevent_id)<1) ) + {$invalid_record++;} + } + if (strlen($LOGOUTevent_id)<1) + {$invalid_record++;} + + ### + if ($invalid_record < 1) + { + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGINevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGINevent_epoch = $row[0]; + $LOGINevent_date = $row[1]; + $LOGINlogin_sec = $row[2]; + $LOGINevent = $row[3]; + $LOGINuser = $row[4]; + $LOGINuser_group = $row[5]; + $LOGINip_address = $row[6]; + $LOGINshift_id = $row[7]; + $LOGINnotes = $row[8]; + $LOGINmanager_user = $row[9]; + $LOGINmanager_ip = $row[10]; + $LOGINevent_datestamp = $row[11]; + } + $stmt="SELECT event_epoch,event_date,login_sec,event,user,user_group,ip_address,shift_id,notes,manager_user,manager_ip,event_datestamp from vicidial_timeclock_log where timeclock_id='$LOGOUTevent_id';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $LOGOUTevent_epoch = $row[0]; + $LOGOUTevent_date = $row[1]; + $LOGOUTlogin_sec = $row[2]; + $LOGOUTevent = $row[3]; + $LOGOUTuser = $row[4]; + $LOGOUTuser_group = $row[5]; + $LOGOUTip_address = $row[6]; + $LOGOUTshift_id = $row[7]; + $LOGOUTnotes = $row[8]; + $LOGOUTmanager_user = $row[9]; + $LOGOUTmanager_ip = $row[10]; + $LOGOUTevent_datestamp =$row[11]; + } + + $user=$LOGINuser; + } + } + + + +?> + + + +ADMINISTRATION: Timeclock Record Edit +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$TCedit_javascript = '1'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +?> + + +<CENTER> +<TABLE WIDTH=720 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Timeclock Record Edit for <?php echo $user ?></TD><TD ALIGN=RIGHT>   </TD></TR> + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + + + + + +##### BEGIN TIMECLOCK RECORD MODIFY ##### + +if ( ($invalid_record < 1) or (strlen($timeclock_id)<1) ) +{ + +if ($stage == "edit_TC_log") + { + $log_time = ($LOGOUTepoch - $LOGINepoch); + $NEXTevent_epoch = $StarTtimE; + $PREVevent_epoch = 0; + + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id > '$LOGOUTevent_id' and user='$user' order by timeclock_id limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $NEXTevent_epoch = $row[0]; + $NEXTevent_id = $row[1]; + } + $stmt="SELECT event_epoch,timeclock_id from vicidial_timeclock_log where timeclock_id < '$LOGINevent_id' and user='$user' order by timeclock_id desc limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $PREVevent_epoch = $row[0]; + $PREVevent_id = $row[1]; + } + + if ( ($LOGINepoch <= $PREVevent_epoch) || ($LOGOUTepoch >= $NEXTevent_epoch) ) + { + echo "ERROR- There is a problem with the data that you entered, please go back<BR>\n"; + echo "A timeclock session cannot overlap another timeclock session<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + echo "$PREVevent_epoch<BR>\n"; + echo "$PREVevent_id<BR>\n"; + echo "$NEXTevent_epoch<BR>\n"; + echo "$NEXTevent_id<BR>\n"; + exit; + } + if ( ($LOGINepoch > $StarTtimE) || ($LOGOUTepoch > $StarTtimE) || ($log_time > 86400) || ($log_time < 1) ) + { + echo "ERROR- There is a problem with the data that you entered, please go back<BR>\n"; + echo "$LOGINepoch<BR>\n"; + echo "$LOGOUTepoch<BR>\n"; + echo "$notes<BR>\n"; + echo "$LOGINevent_id<BR>\n"; + echo "$LOGOUTevent_id<BR>\n"; + echo "$LOGINuser<BR>\n"; + exit; + } + else + { + $LOGINdatetime = date("Y-m-d H:i:s", $LOGINepoch); + $LOGOUTdatetime = date("Y-m-d H:i:s", $LOGOUTepoch); + + ### update LOGIN record in the timeclock log + $stmtA="UPDATE vicidial_timeclock_log set event_epoch='$LOGINepoch', event_date='$LOGINdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGINevent_id';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGINevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGINepoch|$oldLOGINdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + ### update LOGOUT record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set event_epoch='$LOGOUTepoch', event_date='$LOGOUTdatetime', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager MODIFY', login_sec='$log_time' where timeclock_id='$LOGOUTevent_id';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- UPDATE vicidial_timeclock_log record updated for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='MODIFY', record_id='$LOGOUTevent_id', event_code='MANAGER MODIFY TIMECLOCK LOG', event_sql=\"$SQL_log\", event_notes='user: $user|$oldLOGOUTepoch|$oldLOGOUTdate|sec: $log_time|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + echo "The timeclock session has been updated. <A HREF=\"$PHP_SELF?timeclock_id=$LOGINevent_id\">Click here to view</A>.<BR>\n"; + exit; + } + } +##### END TIMECLOCK RECORD MODIFY ##### + + + + +echo "\n<BR>"; + +if ($modify_timeclock_log > 0) + { +# $LOGINevent_id = $timeclock_id; +# $LOGOUTevent_id = $tcid_link; + + $event_hours = ($LOGINlogin_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + + $stmt="SELECT full_name from vicidial_users where user='$LOGINuser';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST name=edit_log id=edit_log>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<input type=hidden name=oldLOGINepoch id=oldLOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGOUTepoch id=oldLOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=oldLOGINdate id=oldLOGINdate value=\"$LOGINevent_date\">\n"; + echo "<input type=hidden name=oldLOGOUTdate id=oldLOGOUTdate value=\"$LOGOUTevent_date\">\n"; + echo "<input type=hidden name=LOGINepoch id=LOGINepoch value=\"$LOGINevent_epoch\">\n"; + echo "<input type=hidden name=LOGOUTepoch id=LOGOUTepoch value=\"$LOGOUTevent_epoch\">\n"; + echo "<input type=hidden name=LOGINevent_id id=LOGINevent_id value=\"$LOGINevent_id\">\n"; + echo "<input type=hidden name=LOGOUTevent_id id=LOGOUTevent_id value=\"$LOGOUTevent_id\">\n"; + echo "<input type=hidden name=stage value=edit_TC_log>\n"; + echo "<TABLE BORDER=0><TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "        USER: $LOGINuser ($full_name)         \n"; + echo "HOURS: <span name=login_time id=login_time> $event_hours_int:$event_minutes_int </span>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD>\n"; + echo "<TABLE BORDER=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGIN TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGINbegin_date id=LOGINbegin_date value=\"$LOGINevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGINevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>USER GROUP: </TD><TD ALIGN=RIGHT>$LOGINuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGINip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGINmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGINmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGINnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGINevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + + echo "</TD><TD>         \n"; + echo "</TD><TD>\n"; + echo "<TABLE BORDER=0>\n"; + echo "<TR><TD ALIGN=RIGHT>LOGOUT TIME: </TD><TD ALIGN=RIGHT><input type=text name=LOGOUTbegin_date id=LOGOUTbegin_date value=\"$LOGOUTevent_date\" size=20 maxlength=20 onchange=\"calculate_hours();\"></TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>TIMECLOCK ID: </TD><TD ALIGN=RIGHT>$LOGOUTevent_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>USER GROUP: </TD><TD ALIGN=RIGHT>$LOGOUTuser_group</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>IP ADDRESS: </TD><TD ALIGN=RIGHT>$LOGOUTip_address</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER USER: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_user</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>MANAGER IP: </TD><TD ALIGN=RIGHT>$LOGOUTmanager_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>NOTES: </TD><TD ALIGN=RIGHT>$LOGOUTnotes</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>LAST CHANGE: </TD><TD ALIGN=RIGHT>$LOGOUTevent_datestamp</TD></TR>\n"; + echo "</TABLE>\n"; + echo "</TD></TR>\n"; + + echo "<TR><TD COLSPAN=3 ALIGN=LEFT>\n"; + echo "NEW NOTES: <input type=text name=notes value='' size=80 maxlength=255>\n"; + echo "</TD></TR>\n"; + echo "<TR><TD COLSPAN=3 ALIGN=CENTER>\n"; + echo "<input type=button name=go_submit id=go_submit value=SUBMIT onclick=\"run_submit();\"><BR></form>\n"; + echo "</TD></TR></TABLE>\n"; + echo "<BR><BR>\n"; + } + + +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " - <a href=\"./user_stats.php?user=$user\">User Stats</a>\n"; +echo " - <a href=\"./admin.php?ADD=3&user=$user\">Modify User</a>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +} +else +{ + +echo "ERROR! You cannot edit this timeclock record: $timeclock_id\n"; +} +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_report.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_report.php new file mode 100644 index 00000000..1d1bb654 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_report.php @@ -0,0 +1,361 @@ +<?php +# timeclock_report.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80529-0055 - First build +# 80617-1416 - Fixed totals tally bug +# 80707-0754 - Fixed groups bug, changed formatting +# 90310-2059 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +##### Pull values from posted form variables ##### +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["query_date"])) {$query_date=$_GET["query_date"];} + elseif (isset($_POST["query_date"])) {$query_date=$_POST["query_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["shift"])) {$shift=$_GET["shift"];} + elseif (isset($_POST["shift"])) {$shift=$_POST["shift"];} +if (isset($_GET["order"])) {$order=$_GET["order"];} + elseif (isset($_POST["order"])) {$order=$_POST["order"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (strlen($shift)<2) {$shift='ALL';} +if (strlen($order)<2) {$order='hours_down';} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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 and view_reports='1';"; +if ($DB) {echo "|$stmt|\n";} +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + + 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_TIME = date("Y-m-d H:i:s"); +$STARTtime = date("U"); +if (!isset($group)) {$group = '';} +if (!isset($query_date)) {$query_date = $NOW_DATE;} +if (!isset($end_date)) {$end_date = $NOW_DATE;} + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); +$i=0; + $LISTuser_groups[$i]='---ALL---'; + $i++; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + $i++; + } + +##### START HTML ##### +?> + +<HTML> +<HEAD> + +<style type="text/css"> +<!-- + div.scroll_callback {height: 300px; width: 620px; overflow: scroll;} + div.scroll_list {height: 400px; width: 140px; overflow: scroll;} + div.scroll_script {height: 331px; width: 600px; background: #FFF5EC; overflow: scroll; font-size: 12px; font-family: sans-serif;} + div.text_input {overflow: auto; font-size: 10px; font-family: sans-serif;} + .body_text {font-size: 13px; font-family: sans-serif;} + .preview_text {font-size: 13px; font-family: sans-serif; background: #CCFFCC} + .preview_text_red {font-size: 13px; font-family: sans-serif; background: #FFCCCC} + .body_small {font-size: 11px; font-family: sans-serif;} + .body_tiny {font-size: 10px; font-family: sans-serif;} + .log_text {font-size: 11px; font-family: monospace;} + .log_text_red {font-size: 11px; font-family: monospace; font-weight: bold; background: #FF3333} + .sd_text {font-size: 16px; font-family: sans-serif; font-weight: bold;} + .sh_text {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .sb_text {font-size: 12px; font-family: sans-serif;} + .sk_text {font-size: 11px; font-family: sans-serif;} + .skb_text {font-size: 13px; font-family: sans-serif; font-weight: bold;} + .ON_conf {font-size: 11px; font-family: monospace; color: black; background: #FFFF99} + .OFF_conf {font-size: 11px; font-family: monospace; color: black; background: #FFCC77} + .cust_form {font-family: sans-serif; font-size: 10px; overflow: auto} + + .select_bold {font-size: 14px; font-family: sans-serif; font-weight: bold;} + .header_white {font-size: 14px; font-family: sans-serif; font-weight: bold; color: white} + .data_records {font-size: 12px; font-family: sans-serif; color: black} + .data_records_fix {font-size: 12px; font-family: monospace; color: black} + .data_records_fix_small {font-size: 9px; font-family: monospace; color: black} + +--> +</style> + +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<TITLE>User Timeclock Report + +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +$user_group_ct = count($user_group); +$user_group_string='|'; + +$i=0; +while($i < $user_group_ct) + { + $user_group_string .= "$user_group[$i]|"; + $user_group_SQL .= "'$user_group[$i]',"; + $i++; + } +if ( (ereg("--ALL--",$user_group_string) ) or ($user_group_ct < 1) ) + { + $user_group_SQL = ""; + } +else + { + $user_group_SQL = eregi_replace(",$",'',$user_group_SQL); + $user_group_SQL = "and vicidial_timeclock_log.user_group IN($user_group_SQL)"; + } + +if ($DB > 0) + { + echo "<BR>\n"; + echo "$user_group_ct|$user_group_string|$user_group_SQL\n"; + echo "<BR>\n"; + } + +echo "<CENTER>\n"; +echo "<FORM ACTION=\"$PHP_SELF\" METHOD=GET>\n"; +echo "<INPUT TYPE=HIDDEN NAME=DB VALUE=\"$DB\">"; +echo "<TABLE BORDER=0 CELLSPACING=6><TR><TD ALIGN=LEFT VALIGN=TOP>\n"; + +echo "<font class=\"select_bold\"><B>Date Range:</B></font><BR><CENTER>\n"; +echo "<INPUT TYPE=TEXT NAME=query_date SIZE=10 MAXLENGTH=10 VALUE=\"$query_date\">"; +echo "<BR>to<BR>\n"; +echo "<INPUT TYPE=TEXT NAME=end_date SIZE=10 MAXLENGTH=10 VALUE=\"$end_date\">\n"; +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>User Groups:</B></font><BR><CENTER>\n"; +echo "<SELECT SIZE=5 NAME=user_group[] multiple>\n"; + $o=0; + while ($user_groups_to_print > $o) + { + if (ereg("\|$LISTuser_groups[$o]\|",$user_group_string)) + {echo "<option selected value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + else + {echo "<option value=\"$LISTuser_groups[$o]\">$LISTuser_groups[$o]</option>\n";} + $o++; + } +echo "</SELECT>\n"; + +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>Order:</B></font><BR>\n"; +echo "<SELECT SIZE=1 NAME=order>\n"; +echo "<option selected value=\"$order\">$order</option>\n"; +echo "<option value=\"\">--</option>\n"; +echo "<option>hours_up</option>\n"; +echo "<option>hours_down</option>\n"; +echo "<option>user_up</option>\n"; +echo "<option>user_down</option>\n"; +echo "<option>name_up</option>\n"; +echo "<option>name_down</option>\n"; +echo "<option>group_up</option>\n"; +echo "<option>group_down</option>\n"; +echo "</SELECT><BR><CENTER>\n"; + +echo "</TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "<font class=\"select_bold\"><B>User:</B></font><BR>\n"; +echo "<INPUT TYPE=text NAME=user SIZE=7 MAXLENGTH=20 VALUE=\"$user\">\n"; + +echo "<BR><BR><INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=SUBMIT>\n"; +echo "</TD></TD><TD ALIGN=LEFT VALIGN=TOP>\n"; +echo "</TD><TD ALIGN=CENTER VALIGN=TOP ROWSPAN=3>\n"; +echo "<FONT class=\"select_bold\" COLOR=BLACK SIZE=2>     <a href=\"./admin.php?ADD=999999\">REPORTS</a> </FONT>\n"; + +echo "</TD></TR></TABLE>\n"; +echo "</FORM>\n\n"; + +echo "<PRE><FONT SIZE=3>\n"; + + +echo "User Timeclock Report $NOW_TIME\n"; + +echo "Time range: $query_date to $end_date\n\n"; +echo "---------- USER TIMECLOCK DETAILS -------------\n"; +echo "These totals do NOT include any active sessions\n</PRE>\n"; + +echo "<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3><TR BGCOLOR=BLACK>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">#</TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  USER  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  NAME  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  GROUP  </TD>\n"; +echo "<TD ALIGN=CENTER><FONT class=\"header_white\">  HOURS  </TD>\n"; +echo "</TR>\n"; + +$order_SQL=''; +if ($order == 'hours_up') {$order_SQL = "order by login";} +if ($order == 'hours_down') {$order_SQL = "order by login desc";} +if ($order == 'user_up') {$order_SQL = "order by vicidial_users.user";} +if ($order == 'user_down') {$order_SQL = "order by vicidial_users.user desc";} +if ($order == 'name_up') {$order_SQL = "order by full_name";} +if ($order == 'name_down') {$order_SQL = "order by full_name desc";} +if ($order == 'group_up') {$order_SQL = "order by vicidial_timeclock_log.user_group";} +if ($order == 'group_down') {$order_SQL = "order by vicidial_timeclock_log.user_group desc";} + +if (strlen($user) > 0) {$user_SQL = "and vicidial_timeclock_log.user='$user'";} +else {$user_SQL='';} + +$stmt="select vicidial_users.user,full_name,sum(login_sec) as login,vicidial_timeclock_log.user_group from vicidial_users,vicidial_timeclock_log where event IN('LOGIN','START') and event_date >= '$query_date 00:00:00' and event_date <= '$end_date 23:59:59' and vicidial_users.user=vicidial_timeclock_log.user $user_SQL $user_group_SQL group by vicidial_users.user,vicidial_timeclock_log.user_group $order_SQL limit 100000;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$rows_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $rows_to_print) + { + $dbHOURS=0; + $row=mysql_fetch_row($rslt); + $user_id[$i] = $row[0]; + $full_name[$i] = $row[1]; + $login_sec[$i] = $row[2]; $TOTlogin_sec = ($TOTlogin_sec + $row[2]); + $u_group[$i] = $row[3]; + + if ($login_sec[$i] > 0) + { + $dbHOURS = ($login_sec[$i] / 3600); + $dbHOURS = round($dbHOURS, 2); + $dbHOURS = sprintf("%01.2f", $dbHOURS); + } + else + {$dbHOURS='0.00';} + + $hours[$i] = $dbHOURS; + $hoursSORT[$i] = "$dbHOURS-----$i"; + + $i++; + } + + +$j=0; +while ($j < $rows_to_print) + { + + $hours_split = explode("-----",$hoursSORT[$j]); + $i = $hours_split[1]; + + if (eregi("1$|3$|5$|7$|9$", $j)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + echo "<TR $bgcolor>\n"; + echo "<TD ALIGN=LEFT><FONT class=\"data_records_fix_small\">$j</TD>\n"; + echo "<TD><FONT class=\"data_records\"><A HREF=\"user_status.php?user=$user_id[$i]\">$user_id[$i]</A> </TD>\n"; + echo "<TD><FONT class=\"data_records\">$full_name[$i] </TD>\n"; + echo "<TD><FONT class=\"data_records\">$u_group[$i] </TD>\n"; + echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $hours[$i]</TD>\n"; + echo "</TR>\n"; + + $j++; + } + + +if ($TOTlogin_sec > 0) + { + $TOTdbHOURS = ($TOTlogin_sec / 3600); + $TOTdbHOURS = round($TOTdbHOURS, 0); + $TOTdbHOURS = sprintf("%01.0f", $TOTdbHOURS); + } +else + {$TOTdbHOURS='0.00';} + +$TOThours = $TOTdbHOURS; + + +echo "<TR BGCOLOR=#E6E6E6>\n"; +echo "<TD ALIGN=LEFT COLSPAN=4><FONT class=\"data_records\">TOTALS</TD>\n"; +echo "<TD ALIGN=RIGHT><FONT class=\"data_records_fix\"> $TOThours</TD>\n"; +echo "</TR>\n"; + +echo "</TABLE>\n"; + +echo "\n"; + +/* + $TOTavgWAIT_M = ( ($TOTtotWAIT / $TOTcalls) / 60); + $TOTavgWAIT_M = round($TOTavgWAIT_M, 2); + $TOTavgWAIT_M_int = intval("$TOTavgWAIT_M"); + $TOTavgWAIT_S = ($TOTavgWAIT_M - $TOTavgWAIT_M_int); + $TOTavgWAIT_S = ($TOTavgWAIT_S * 60); + $TOTavgWAIT_S = round($TOTavgWAIT_S, 0); + if ($TOTavgWAIT_S < 10) {$TOTavgWAIT_S = "0$TOTavgWAIT_S";} + $TOTavgWAIT_MS = "$TOTavgWAIT_M_int:$TOTavgWAIT_S"; + $TOTavgWAIT_MS = sprintf("%6s", $TOTavgWAIT_MS); + while(strlen($TOTavgWAIT_MS)>6) {$TOTavgWAIT_MS = substr("$TOTavgWAIT_MS", 0, -1);} +*/ +?> +</CENTER> +</BODY></HTML> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_status.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_status.php new file mode 100644 index 00000000..03727924 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/timeclock_status.php @@ -0,0 +1,550 @@ +<?php +# timeclock_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 80602-0201 - First Build +# 80603-1500 - formatting changes +# 90310-2103 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["user_group"])) {$user_group=$_GET["user_group"];} + elseif (isset($_POST["user_group"])) {$user_group=$_POST["user_group"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,timeclock_end_of_day,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $timeclock_end_of_day = $row[2]; + $SSoutbound_autodial_active = $row[3]; + + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$HHMM = date("Hi"); +$HHteod = substr($timeclock_end_of_day,0,2); +$MMteod = substr($timeclock_end_of_day,2,2); + +if ($HHMM < $timeclock_end_of_day) + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d")-1, date("Y"));} +else + {$EoD = mktime($HHteod, $MMteod, 10, date("m"), date("d"), date("Y"));} + +$EoDdate = date("Y-m-d H:i:s", $EoD); + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + + } + + +$stmt="select user_group from vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$user_groups_to_print = mysql_num_rows($rslt); + $i=0; + $user_groups_to_print++; +while ($i < $user_groups_to_print) + { + $row=mysql_fetch_row($rslt); + $LISTuser_groups[$i] =$row[0]; + if ($row[0]==$user_group) + {$FORMuser_groups.="<option value=\"$row[0]\" SELECTED>$row[0]</option>";} + else + {$FORMuser_groups.="<option value=\"$row[0]\">$row[0]</option>";} + $i++; + } + +if (strlen($user_group) > 0) + { + $stmt="SELECT group_name from vicidial_user_groups where user_group='$user_group';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $group_name = $row[0]; + } + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: Timeclock Status +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<CENTER> +<TABLE WIDTH=750 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT> +<FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>Timeclock Status for <?php echo $user_group ?></TD><TD ALIGN=RIGHT>             +<?php +echo "<a href=\"./timeclock_report.php\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>TIMECLOCK REPORT</a> | "; +echo "<a href=\"./admin.php?ADD=311111&user_group=$user_group\"><FONT FACE=\"ARIAL,HELVETICA\" COLOR=WHITE SIZE=2><B>USER GROUP</a>\n"; +?> +</TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<select size=1 name=user_group>$FORMuser_groups</select>"; +echo "<input type=submit name=submit value=submit>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; +echo "<br><center>\n"; + +if (strlen($user_group) < 1) + { + exit; + } + + +##### grab all users in this user_group ##### +$stmt="SELECT user,full_name from vicidial_users where user_group='" . mysql_real_escape_string($user_group) . "' order by full_name;"; +if ($DB>0) {echo "|$stmt|";} +$rslt=mysql_query($stmt, $link); +$users_to_print = mysql_num_rows($rslt); +$o=0; +while ($users_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $users[$o] = $row[0]; + $full_name[$o] = $row[1]; + $Vevent_time[$o] = ''; + $Vevent_epoch[$o] = 0; + $Vcampaign[$o] = ''; + $Tevent_epoch[$o] = ''; + $Tevent_date[$o] = ''; + $Tstatus[$o] = ''; + $Tip_address[$o] = ''; + $Tlogin_time[$o] = ''; + $Tlogin_sec[$o] = 0; + + $o++; + } + +$o=0; +while ($users_to_print > $o) + { + $total_login_time = 0; + ##### grab timeclock status record for this user ##### + $stmt="SELECT event_epoch,event_date,status,ip_address from vicidial_timeclock_status where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $stats_to_print = mysql_num_rows($rslt); + if ($stats_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_epoch[$o] = $row[0]; + $Tevent_date[$o] = $row[1]; + $Tstatus[$o] = $row[2]; + $Tip_address[$o] = $row[3]; + + if ( ($row[2]=='START') or ($row[2]=='LOGIN') ) + {$bgcolor[$o]='bgcolor="#B9CBFD"';} + else + {$bgcolor[$o]='bgcolor="#9BB9FB"';} + } + + ##### grab timeclock logged-in time for each user ##### + $stmt="SELECT event,event_epoch,login_sec from vicidial_timeclock_log where user='$users[$o]' and event_epoch >= '$EoD';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $logs_to_parse = mysql_num_rows($rslt); + $p=0; + while ($logs_to_parse > $p) + { + $row=mysql_fetch_row($rslt); + if ( (ereg("LOGIN", $row[0])) or (ereg("START", $row[0])) ) + { + $login_sec=''; + $Tevent_time[$o] = date("Y-m-d H:i:s", $row[1]); + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[2]; + $total_login_time = ($total_login_time + $login_sec); + } + $p++; + } + if ( (strlen($login_sec)<1) and ($logs_to_parse > 0) ) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } + if ($logs_to_parse > 0) + { + $total_login_hours = ($total_login_time / 3600); + $total_login_hours_int = round($total_login_hours, 2); + $total_login_hours_int = intval("$total_login_hours"); + $total_login_minutes = ($total_login_hours - $total_login_hours_int); + $total_login_minutes = ($total_login_minutes * 60); + $total_login_minutes_int = round($total_login_minutes, 0); + if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + + $Tlogin_time[$o] = "$total_login_hours_int:$total_login_minutes_int"; + $Tlogin_sec[$o] = $total_login_time; + } + else + { + $total_login_time = 0; + $Tlogin_time[$o] = "0:00"; + $Tlogin_sec[$o] = $total_login_time; + } + + if ($DB>0) {echo "|$Tlogin_sec[$o]|$Tlogin_time[$o]|";} + + ##### grab vicidial_agent_log records in this user_group ##### + $stmt="SELECT event_time,UNIX_TIMESTAMP(event_time),campaign_id from vicidial_agent_log where user='$users[$o]' and event_time >= '$EoDdate' order by agent_log_id desc limit 1;"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $vals_to_print = mysql_num_rows($rslt); + if ($vals_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Vevent_time[$o] = $row[0]; + $Vevent_epoch[$o] = $row[1]; + $Vcampaign[$o] = $row[2]; + } + + $o++; + } + + +##### print each user that has any activity for today ##### +echo "<br>\n"; +echo "<center>\n"; + +echo "<TABLE width=720 cellspacing=0 cellpadding=1>\n"; +echo "<TR>\n"; +echo "<TD bgcolor=\"#99FF33\">     </TD><TD align=left> TC Logged in and VICI active</TD>\n"; # bright green +echo "<TD bgcolor=\"#FFFF33\">     </TD><TD align=left> TC Logged in only</TD>\n"; # bright yellow +echo "<TD bgcolor=\"#FF6666\">     </TD><TD align=left> VICI active only</TD>\n"; # bright red +echo "</TR><TR>\n"; +echo "<TD bgcolor=\"#66CC66\">     </TD><TD align=left> TC Logged out and VICI active</TD>\n"; # dull green +echo "<TD bgcolor=\"#CCCC00\">     </TD><TD align=left> TC Logged out only</TD>\n"; # dull yellow +echo "<TD>     </TD><TD align=left>   </TD>\n"; +echo "</TR></TABLE><BR>\n"; + +echo "<B>USER STATUS FOR USER GROUP: $user_group</B>\n"; +echo "<TABLE width=700 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2># </td><td><font size=2>USER </td><td align=left><font size=2>NAME </td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> TC TIME</td><td align=right><font size=2>TC LOGIN</td><td align=right><font size=2> VICI LAST LOG</td><td align=right><font size=2> VICI CAMPAIGN</td></tr>\n"; + +$o=0; +$s=0; +while ($users_to_print > $o) + { + if ( ($Tlogin_sec[$o] > 0) or (strlen($Vevent_time[$o]) > 0) ) + { + if ( ($Tstatus[$o]=='START') or ($Tstatus[$o]=='LOGIN') ) + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#FFFF33"';} # yellow + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#99FF33"';} # green + } + else + { + if ($Tlogin_sec[$o] > 0) + {$bgcolor[$o]='bgcolor="#CCCC00"';} # yellow + if (strlen($Vevent_time[$o]) > 0) + {$bgcolor[$o]='bgcolor="#FF6666"';} # red + if ( ($Tlogin_sec[$o] > 0) and (strlen($Vevent_time[$o]) > 0) ) + {$bgcolor[$o]='bgcolor="#66CC66"';} # green + } + + $s++; + echo "<tr $bgcolor[$o]>"; + echo "<td><font size=1>$s</td>"; + echo "<td><font size=2><a href=\"./user_status.php?user=$users[$o]\">$users[$o]</a></td>"; + echo "<td><font size=2>$full_name[$o]</td>"; + echo "<td><font size=2>$Tip_address[$o]</td>"; + echo "<td align=right><font size=2>$Tlogin_time[$o]</td>"; + echo "<td align=right><font size=2>$Tevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vevent_time[$o]</td>"; + echo "<td align=right><font size=2>$Vcampaign[$o]</td>"; + echo "</tr>"; + + if (strlen($Tstatus[$o])>0) + {$TOTlogin_sec = ($TOTlogin_sec + $Tlogin_sec[$o]);} + } + $o++; + } + + + +$total_login_hours = ($TOTlogin_sec / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr bgcolor=white>"; +echo "<td colspan=4><font size=2>TOTALS</td>"; +echo "<td align=right><font size=2>$total_login_hours_int:$total_login_minutes_int</td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "<td align=right><font size=2></td>"; +echo "</tr>"; +echo "</table>"; + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php +exit; + + + + + + + + + + + +##### vicidial_timeclock log records for user ##### + +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK LOGIN/LOGOUT TIME:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MINUTES</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours = ($login_sec / 3600); + $event_hours_int = round($event_hours, 2); + $event_hours_int = intval("$event_hours_int"); + $event_minutes = ($event_hours - $event_hours_int); + $event_minutes = ($event_minutes * 60); + $event_minutes_int = round($event_minutes, 0); + if ($event_minutes_int < 10) {$event_minutes_int = "0$event_minutes_int";} + echo "<tr $bgcolor><td><font size=2>$row[5]</td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_int:$event_minutes_int</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + } +$total_login_hours = ($total_login_time / 3600); +$total_login_hours_int = round($total_login_hours, 2); +$total_login_hours_int = intval("$total_login_hours"); +$total_login_minutes = ($total_login_hours - $total_login_hours_int); +$total_login_minutes = ($total_login_minutes * 60); +$total_login_minutes_int = round($total_login_minutes, 0); +if ($total_login_minutes_int < 10) {$total_login_minutes_int = "0$total_login_minutes_int";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_int:$total_login_minutes_int </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/up_down.mid b/agc_2-X/branches/agc_2.2.0/www/vicidial/up_down.mid new file mode 100644 index 00000000..f3c944a3 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/up_down.mid differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/user_group_bulk_change.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/user_group_bulk_change.php new file mode 100644 index 00000000..83c74115 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/user_group_bulk_change.php @@ -0,0 +1,271 @@ +<?php +# user_group_bulk_change.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# 81119-0918 - First build +# 90309-1830 - Added admin_log logging +# 90310-2144 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["old_group"])) {$old_group=$_GET["old_group"];} + elseif (isset($_POST["old_group"])) {$old_group=$_POST["old_group"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $qm_conf_ct) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $i++; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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; + } + else + { + + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + } + +$stmt="select user_group,group_name from vicidial_user_groups order by user_group desc;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] = $row[0]; + $group_names[$i] = $row[1]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: User Group Bulk Change +<?php + +##### BEGIN Set variables to make header show properly ##### +$ADD = '311111'; +$hh = 'usergroups'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$usergroups_color = '#FFFF99'; +$usergroups_font = 'BLACK'; +$usergroups_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + + +?> + +<CENTER> +<TABLE WIDTH=620 BGCOLOR=#D9E6FE cellpadding=2 cellspacing=0><TR BGCOLOR=#015B91><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   User Group Bulk Change</TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" COLOR=WHITE SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### GROUP CHANGE FOR ALL USERS IN A USER GROUP ##### +if ($stage == "one_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group='" . mysql_real_escape_string($old_group) . "';"; + $rslt=mysql_query($stmt, $link); + + echo "All User Group $old_group Users changed to the $group User Group<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK USER GROUP CHANGE', event_sql=\"$SQL_log\", event_notes='Old Group: $old_group';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +##### GROUP CHANGE FOR ALL USERS IN THE SYSTEM EXCEPT FOR LEVEL > 6 AND ADMIN GROUP ##### +if ($stage == "all_user_group_change") + { + $stmt="UPDATE vicidial_users set user_group='" . mysql_real_escape_string($group) . "' where user_group!='ADMIN' and user_group < 7;"; + $rslt=mysql_query($stmt, $link); + + echo "All non-Admin Users changed to the $group User Group<BR>\n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='USERGROUPS', event_type='MODIFY', record_id='$group', event_code='ADMIN BULK USER GROUP CHANGE', event_sql=\"$SQL_log\", event_notes='ALL NON-ADMIN;"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + + exit; + } + +### one user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"one_user_group_change\">\n"; +echo "Change Users in this group: <SELECT SIZE=1 NAME=old_group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR>   to this group: <SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=SUBMIT></CENTER><BR></form>\n"; + +echo "\n<BR><BR><BR>"; + + + +### all user_group change +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=hidden name=stage value=\"all_user_group_change\">\n"; +echo "Change ALL non-Admin Users to this group: <BR><SELECT SIZE=1 NAME=group>\n"; +$o=0; +while ($groups_to_print > $o) + { + echo "<option value=\"$groups[$o]\">$groups[$o] - $group_names[$o]</option>\n"; + $o++; + } +echo "</SELECT>\n"; +echo "<BR><CENTER><input type=submit name=submit value=SUBMIT></CENTER><BR></form>\n"; + +echo "\n<BR>"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/user_stats.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/user_stats.php new file mode 100644 index 00000000..cb93bce7 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/user_stats.php @@ -0,0 +1,677 @@ +<?php +# user_stats.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1743 - Added variable filtering to eliminate SQL injection attack threat +# 61201-1136 - Added recordings display and changed calls to time range with 10000 limit +# 70118-1605 - Added user group column to login/out and calls lists +# 70702-1231 - Added recording location link and truncation +# 80117-0316 - Added vicidial_user_closer_log entries to display +# 80501-0506 - Added Hangup Reason to logs display +# 80523-2012 - Added vicidial timeclock records display +# 80617-1402 - Fixed timeclock total logged-in time +# 81210-1634 - Added server recording display options +# 90208-0504 - Added link to multi-day report and fixed call status summary section +# 90305-1226 - Added user_call_log manual dial logs +# 90310-0734 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 90524-2009 - Changed time display to use functions.php +# 91130-2037 - Added user closer log manager flag display +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); +require("functions.php"); + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $SSoutbound_autodial_active = $row[1]; + $user_territories_active = $row[2]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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"); +$TODAY = date("Y-m-d"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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; + } +else + { + + if($auth>0) + { + $stmt="SELECT full_name from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + + $stmt="SELECT full_name from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + } + + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: User Stats +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=770 BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   User Stats for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=2><B>   \n"; + +echo "<form action=$PHP_SELF method=POST>\n"; +echo "<input type=hidden name=DB value=\"$DB\">\n"; +echo "<input type=text name=begin_date value=\"$begin_date\" size=10 maxsize=10> to \n"; +echo "<input type=text name=end_date value=\"$end_date\" size=10 maxsize=10>  \n"; +if (strlen($user)>1) + {echo "<input type=hidden name=user value=\"$user\">\n";} +else + {echo "<input type=text name=user size=12 maxlength=10>\n";} +echo "<input type=submit name=submit value=submit>\n"; + + +echo "           $user - $full_name<BR><BR>\n"; + +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " | <a href=\"./user_status.php?user=$user\">User Status</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modify User</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$begin_date&end_date=$end_date&group[]=--ALL--&shift=ALL\">User multiple day status detail report</a>"; +echo "</center>\n"; + + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + +echo "<br><center>\n"; + +##### vicidial agent talk time and status ##### + +echo "<B>AGENT TALK TIME AND STATUS:</B>\n"; + +echo "<center><TABLE width=300 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>STATUS</td><td align=right><font size=2>COUNT</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + +$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); +$VLstatuses_to_print = mysql_num_rows($rslt); +$total_calls=0; +$o=0; $p=0; +while ($VLstatuses_to_print > $o) + { + $row=mysql_fetch_row($rslt); + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $p++; + $o++; + } + +$stmt="SELECT count(*),status, sum(length_in_sec) from vicidial_closer_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); +$VCLstatuses_to_print = mysql_num_rows($rslt); +$o=0; +while ($VCLstatuses_to_print > $o) + { + $status_match=0; + $r=0; + $row=mysql_fetch_row($rslt); + while ($VLstatuses_to_print > $r) + { + if ($status[$r] == $row[1]) + { + $counts[$r] = ($counts[$r] + $row[0]); + $call_sec[$r] = ($call_sec[$r] + $row[2]); + $status_match++; + } + $r++; + } + if ($status_match < 1) + { + $counts[$p] = $row[0]; + $status[$p] = $row[1]; + $call_sec[$p] = $row[2]; + $VLstatuses_to_print++; + $p++; + } + $o++; + } + +$o=0; +$total_sec=0; +while ($o < $p) + { + if (eregi("1$|3$|5$|7$|9$", $o)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $call_hours_minutes = sec_convert($call_sec[$o],'H'); + + echo "<tr $bgcolor><td><font size=2>$status[$o]</td>"; + echo "<td align=right><font size=2> $counts[$o]</td>\n"; + echo "<td align=right><font size=2> $call_hours_minutes</td></tr>\n"; + $total_calls = ($total_calls + $counts[$o]); + $total_sec = ($total_sec + $call_sec[$o]); + $call_seconds=0; + $o++; + } + +$call_hours_minutes = sec_convert($total_sec,'H'); + +echo "<tr><td><font size=2>TOTAL CALLS </td><td align=right><font size=2> $total_calls</td><td align=right><font size=2> $call_hours_minutes</td></tr>\n"; +echo "</TABLE></center>\n"; + + +##### Login and Logout time from vicidial agent interface ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>AGENT LOGIN/LOGOUT TIME:</B>\n"; +echo "<TABLE width=500 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> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,event_date,campaign_id,user_group 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); + $events_to_print = mysql_num_rows($rslt); + + $total_calls=0; + $o=0; + $event_start_seconds=''; + $event_stop_seconds=''; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if (eregi("LOGIN", $row[0])) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + if (ereg("LOGIN", $row[0])) + { + $event_start_seconds = $row[1]; + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + if ($event_start_seconds) + { + + $event_stop_seconds = $row[1]; + $event_seconds = ($event_stop_seconds - $event_start_seconds); + $total_login_time = ($total_login_time + $event_seconds); + $event_hours_minutes = sec_convert($event_seconds,'H'); + + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes</td></tr>\n"; + $event_start_seconds=''; + $event_stop_seconds=''; + } + else + { + echo "<tr $bgcolor><td><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $row[3]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + } + + $total_calls = ($total_calls + $row[0]); + + $call_seconds=0; + $o++; + } + +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +echo "<tr><td><font size=2>TOTAL</td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes</td></tr>\n"; + +echo "</TABLE></center>\n"; + + + + + +##### vicidial_timeclock log records for user ##### + +$total_login_time=0; +$SQday_ARY = explode('-',$begin_date); +$EQday_ARY = explode('-',$end_date); +$SQepoch = mktime(0, 0, 0, $SQday_ARY[1], $SQday_ARY[2], $SQday_ARY[0]); +$EQepoch = mktime(23, 59, 59, $EQday_ARY[1], $EQday_ARY[2], $EQday_ARY[0]); + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>TIMECLOCK LOGIN/LOGOUT TIME:</B>\n"; +echo "<TABLE width=550 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=2>ID </td><td><font size=2>EDIT </td><td align=right><font size=2>EVENT </td><td align=right><font size=2> DATE</td><td align=right><font size=2> IP ADDRESS</td><td align=right><font size=2> GROUP</td><td align=right><font size=2>HOURS:MM:SS</td></tr>\n"; + + $stmt="SELECT event,event_epoch,user_group,login_sec,ip_address,timeclock_id,manager_user from vicidial_timeclock_log where user='" . mysql_real_escape_string($user) . "' and event_epoch >= '$SQepoch' and event_epoch <= '$EQepoch';"; + if ($DB>0) {echo "|$stmt|";} + $rslt=mysql_query($stmt, $link); + $events_to_print = mysql_num_rows($rslt); + + $total_logs=0; + $o=0; + while ($events_to_print > $o) { + $row=mysql_fetch_row($rslt); + if ( ($row[0]=='START') or ($row[0]=='LOGIN') ) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $TC_log_date = date("Y-m-d H:i:s", $row[1]); + + $manager_edit=''; + if (strlen($row[6])>0) {$manager_edit = ' * ';} + + if (ereg("LOGIN", $row[0])) + { + $login_sec=''; + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> </td></tr>\n"; + } + if (ereg("LOGOUT", $row[0])) + { + $login_sec = $row[3]; + $total_login_time = ($total_login_time + $login_sec); + $event_hours_minutes = sec_convert($login_sec,'H'); + + echo "<tr $bgcolor><td><font size=2><A HREF=\"./timeclock_edit.php?timeclock_id=$row[5]\">$row[5]</A></td>"; + echo "<td align=right><font size=2>$manager_edit</td>"; + echo "<td align=right><font size=2>$row[0]</td>"; + echo "<td align=right><font size=2> $TC_log_date</td>\n"; + echo "<td align=right><font size=2> $row[4]</td>\n"; + echo "<td align=right><font size=2> $row[2]</td>\n"; + echo "<td align=right><font size=2> $event_hours_minutes"; + if ($DB) {echo " - $total_login_time - $login_sec";} + echo "</td></tr>\n"; + } + $o++; + } +if (strlen($login_sec)<1) + { + $login_sec = ($STARTtime - $row[1]); + $total_login_time = ($total_login_time + $login_sec); + if ($DB) {echo "LOGIN ONLY - $total_login_time - $login_sec";} + } +$total_login_hours_minutes = sec_convert($total_login_time,'H'); + +if ($DB) {echo " - $total_login_time - $login_sec";} + +echo "<tr><td align=right><font size=2> </td>"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2> </td>\n"; +echo "<td align=right><font size=2><font size=2>TOTAL </td>\n"; +echo "<td align=right><font size=2> $total_login_hours_minutes </td></tr>\n"; + +echo "</TABLE></center>\n"; + + + +##### closer in-group selection logs ##### + +echo "<br><br>\n"; + +echo "<center>\n"; + +echo "<B>CLOSER IN-GROUP SELECTION LOGS:</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CAMPAIGN</td><td align=left><font size=2>BLEND</td><td align=left><font size=2> GROUPS</td><td align=left><font size=2> MANAGER</td></tr>\n"; + +$stmt="select user,campaign_id,event_date,blended,closer_campaigns,manager_change from vicidial_user_closer_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' order by event_date desc limit 1000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[2]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[3]</td>\n"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[5]</td>\n"; + echo "</tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound calls for this time period ##### + +echo "<B>OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> GROUP</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + +$stmt="select uniqueid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,user_group,term_reason,alt_dial 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' order by call_date desc limit 10000;"; +$rslt=mysql_query($stmt, $link); +$logs_to_print = mysql_num_rows($rslt); + +$u=0; +while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[15] </td></tr>\n"; + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent inbound calls for this time period ##### + +echo "<B>INBOUND/CLOSER CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=670 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><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> WAIT (S)</td><td align=right><font size=2> LIST</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> HANGUP REASON</td></tr>\n"; + + $stmt="select closecallid,lead_id,list_id,campaign_id,call_date,start_epoch,end_epoch,length_in_sec,status,phone_code,phone_number,user,comments,processed,queue_seconds,user_group,xfercallid,term_reason,uniqueid,agent_only from vicidial_closer_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[4]</td>"; + echo "<td align=left><font size=2> $row[7]</td>\n"; + echo "<td align=left><font size=2> $row[8]</td>\n"; + echo "<td align=left><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[14] </td>\n"; + echo "<td align=right><font size=2> $row[2] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[1]\" target=\"_blank\">$row[1]</A> </td>\n"; + echo "<td align=right><font size=2> $row[17] </td></tr>\n"; + + } + + +echo "</TABLE></center><BR><BR>\n"; + + +##### vicidial recordings for this time period ##### + +echo "<B>RECORDINGS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td align=left><font size=2> LEAD</td><td><font size=2>DATE/TIME </td><td align=left><font size=2>SECONDS </td><td align=left><font size=2>   RECID</td><td align=center><font size=2>FILENAME</td><td align=center><font size=2>LOCATION   </td></tr>\n"; + + $stmt="select recording_id,channel,server_ip,extension,start_time,start_epoch,end_time,end_epoch,length_in_sec,length_in_min,filename,location,lead_id,user,vicidial_id from recording_log where user='" . mysql_real_escape_string($user) . "' and start_time >= '" . mysql_real_escape_string($begin_date) . " 0:00:01' and start_time <= '" . mysql_real_escape_string($end_date) . " 23:59:59' order by recording_id desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) + { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $location = $row[11]; + + if (strlen($location)>2) + { + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + } + + if (strlen($location)>30) + {$locat = substr($location,0,27); $locat = "$locat...";} + else + {$locat = $location;} + if (eregi("http",$location)) + {$location = "<a href=\"$location\">$locat</a>";} + else + {$location = $locat;} + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td align=left><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[12]\" target=\"_blank\">$row[12]</A> </td>"; + echo "<td align=left><font size=2> $row[4] </td>\n"; + echo "<td align=left><font size=2> $row[8] </td>\n"; + echo "<td align=left><font size=2> $row[0] </td>\n"; + echo "<td align=center><font size=2> $row[10] </td>\n"; + echo "<td align=right><font size=2> $location   </td>\n"; + echo "</tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + +##### vicidial agent outbound user manual calls for this time period ##### + +echo "<B>MANUAL OUTBOUND CALLS FOR THIS TIME PERIOD: (10000 record limit)</B>\n"; +echo "<TABLE width=750 cellspacing=0 cellpadding=1>\n"; +echo "<tr><td><font size=1># </td><td><font size=2>DATE/TIME </td><td align=left><font size=2> CALL TYPE</td><td align=left><font size=2> SERVER</td><td align=left><font size=2> PHONE</td><td align=right><font size=2> DIALED</td><td align=right><font size=2> LEAD</td><td align=right><font size=2> CALLERID</td><td align=right><font size=2> ALIAS</td></tr>\n"; + + $stmt="select call_date,call_type,server_ip,phone_number,number_dialed,lead_id,callerid,group_alias_id from user_call_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' order by call_date desc limit 10000;"; + $rslt=mysql_query($stmt, $link); + $logs_to_print = mysql_num_rows($rslt); + + $u=0; + while ($logs_to_print > $u) { + $row=mysql_fetch_row($rslt); + if (eregi("1$|3$|5$|7$|9$", $u)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + + $u++; + echo "<tr $bgcolor>"; + echo "<td><font size=1>$u</td>"; + echo "<td><font size=2>$row[0]</td>"; + echo "<td align=left><font size=2> $row[1]</td>\n"; + echo "<td align=left><font size=2> $row[2]</td>\n"; + echo "<td align=left><font size=2> $row[3] </td>\n"; + echo "<td align=right><font size=2> $row[4] </td>\n"; + echo "<td align=right><font size=2> <A HREF=\"admin_modify_lead.php?lead_id=$row[5]\" target=\"_blank\">$row[5]</A> </td>\n"; + echo "<td align=right><font size=2> $row[6] </td>\n"; + echo "<td align=right><font size=2> $row[7] </td></tr>\n"; + + } + + +echo "</TABLE><BR><BR>\n"; + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds</font>"; + + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/user_status.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/user_status.php new file mode 100644 index 00000000..9687a5b2 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/user_status.php @@ -0,0 +1,677 @@ +<?php +# user_status.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# CHANGES +# +# 60619-1738 - Added variable filtering to eliminate SQL injection attack threat +# 80603-1452 - Added manager timeclock force login/logout of user +# 81118-1034 - Disabled change campaign because it does not work +# 90208-0511 - Added link to user multi-day status report +# 90310-0741 - Added admin header +# 90508-0644 - Changed to PHP long tags +# 91012-0536 - Added selected territories display +# 91130-2039 - Added user closer log manager flag display +# 91212-0656 - Added more complete logging of Emergency Logout process +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["begin_date"])) {$begin_date=$_GET["begin_date"];} + elseif (isset($_POST["begin_date"])) {$begin_date=$_POST["begin_date"];} +if (isset($_GET["end_date"])) {$end_date=$_GET["end_date"];} + elseif (isset($_POST["end_date"])) {$end_date=$_POST["end_date"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["stage"])) {$stage=$_GET["stage"];} + elseif (isset($_POST["stage"])) {$stage=$_POST["stage"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,webroot_writable,outbound_autodial_active,user_territories_active FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$qm_conf_ct = mysql_num_rows($rslt); +if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $webroot_writable = $row[1]; + $SSoutbound_autodial_active = $row[2]; + $user_territories_active = $row[3]; + } +##### END SETTINGS LOOKUP ##### +########################################### + +$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"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$ip = getenv("REMOTE_ADDR"); + +if (!isset($begin_date)) {$begin_date = $TODAY;} +if (!isset($end_date)) {$end_date = $TODAY;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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; + } +else + { + if($auth>0) + { + $stmt="SELECT full_name,change_agent_campaign,modify_timeclock_log from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname = $row[0]; + $change_agent_campaign = $row[1]; + $modify_timeclock_log = $row[2]; + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + } + else + { + if ($webroot_writable > 0) + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + echo "Invalid Username/Password: |$PHP_AUTH_USER|$PHP_AUTH_PW|\n"; + exit; + } + } + + $stmt="SELECT full_name,user_group from vicidial_users where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + $user_group = $row[1]; + + $stmt="SELECT live_agent_id,user,server_ip,conf_exten,extension,status,lead_id,campaign_id,uniqueid,callerid,channel,random_id,last_call_time,last_update_time,last_call_finish,closer_campaigns,call_server_ip,user_level,comments,campaign_weight,calls_today,external_hangup,external_status,external_pause,external_dial,agent_log_id,last_state_change,agent_territories,outbound_autodial,manager_ingroup_set,external_igb_set_user from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $agents_to_print = mysql_num_rows($rslt); + $i=0; + while ($i < $agents_to_print) + { + $row=mysql_fetch_row($rslt); + $Aserver_ip = $row[2]; + $Asession_id = $row[3]; + $Aextension = $row[4]; + $Astatus = $row[5]; + $Acampaign = $row[7]; + $Alast_call = $row[14]; + $Acl_campaigns = $row[15]; + $agent_territories = $row[27]; + $outbound_autodial = $row[28]; + $manager_ingroup_set = $row[29]; + $external_igb_set_user = $row[30]; + $i++; + } + + $stmt="SELECT event_date,status,ip_address from vicidial_timeclock_status where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $tc_logs_to_print = mysql_num_rows($rslt); + if ($tc_logs_to_print > 0) + { + $row=mysql_fetch_row($rslt); + $Tevent_date = $row[0]; + $Tstatus = $row[1]; + $Tip_address = $row[2]; + $i++; + } + + } + +$stmt="select campaign_id from vicidial_campaigns;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$groups_to_print = mysql_num_rows($rslt); +$i=0; +while ($i < $groups_to_print) + { + $row=mysql_fetch_row($rslt); + $groups[$i] =$row[0]; + $i++; + } + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<title>ADMINISTRATION: User Status +<?php + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '3'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold='<b>'; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + + + +?> +<TABLE WIDTH=<?php echo $page_width ?> BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0><TR BGCOLOR=#E6E6E6><TD ALIGN=LEFT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   User Status for <?php echo $user ?></TD><TD ALIGN=RIGHT><FONT FACE="ARIAL,HELVETICA" SIZE=2><B>   </TD></TR> + + + + +<?php + +echo "<TR BGCOLOR=\"#F0F5FE\"><TD ALIGN=LEFT COLSPAN=2><FONT FACE=\"ARIAL,HELVETICA\" COLOR=BLACK SIZE=3><B>   \n"; + +##### EMERGENCY CAMPAIGN CHANGE FOR AN AGENT ##### +if ($stage == "live_campaign_change") + { + $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); + + echo "Agent $user - $full_name changed to $group campaign<BR>\n"; + + exit; + } + +##### EMERGENCY LOGOUT OF AN AGENT ##### +if ($stage == "log_agent_out") + { + $now_date_epoch = date('U'); + $inactive_epoch = ($now_date_epoch - 60); + $stmt = "SELECT user,campaign_id,UNIX_TIMESTAMP(last_update_time) from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $vla_ct = mysql_num_rows($rslt); + if ($vla_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLA_user = $row[0]; + $VLA_campaign_id = $row[1]; + $VLA_update_time = $row[2]; + + if ($VLA_update_time > $inactive_epoch) + { + $lead_active=0; + $stmt = "SELECT agent_log_id,user,server_ip,event_time,lead_id,campaign_id,pause_epoch,pause_sec,wait_epoch,wait_sec,talk_epoch,talk_sec,dispo_epoch,dispo_sec,status,user_group,comments,sub_status,dead_epoch,dead_sec from vicidial_agent_log where user='$VLA_user' order by agent_log_id desc LIMIT 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_agent_log_id = $row[0]; + $VAL_user = $row[1]; + $VAL_server_ip = $row[2]; + $VAL_event_time = $row[3]; + $VAL_lead_id = $row[4]; + $VAL_campaign_id = $row[5]; + $VAL_pause_epoch = $row[6]; + $VAL_pause_sec = $row[7]; + $VAL_wait_epoch = $row[8]; + $VAL_wait_sec = $row[9]; + $VAL_talk_epoch = $row[10]; + $VAL_talk_sec = $row[11]; + $VAL_dispo_epoch = $row[12]; + $VAL_dispo_sec = $row[13]; + $VAL_status = $row[14]; + $VAL_user_group = $row[15]; + $VAL_comments = $row[16]; + $VAL_sub_status = $row[17]; + $VAL_dead_epoch = $row[18]; + $VAL_dead_sec = $row[19]; + + if ($DB) {echo "\n<BR>VAL VALUES: $VAL_agent_log_id|$VAL_status|$VAL_lead_id\n";} + + if ( ($VAL_wait_epoch < 1) || ( ($VAL_status == 'PAUSE') && ($VAL_dispo_epoch < 1) ) ) + { + $VAL_pause_sec = ( ($now_date_epoch - $VAL_pause_epoch) + $VAL_pause_sec); + $stmt = "UPDATE vicidial_agent_log SET wait_epoch='$now_date_epoch', pause_sec='$VAL_pause_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_talk_epoch < 1) + { + $VAL_wait_sec = ( ($now_date_epoch - $VAL_wait_epoch) + $VAL_wait_sec); + $stmt = "UPDATE vicidial_agent_log SET talk_epoch='$now_date_epoch', wait_sec='$VAL_wait_sec' where agent_log_id='$VAL_agent_log_id';"; + } + else + { + $lead_active++; + $status_update_SQL=''; + if ( ( (strlen($VAL_status) < 1) or ($VAL_status == 'NULL') ) and ($VAL_lead_id > 0) ) + { + $status_update_SQL = ", status='PU'"; + $stmt="UPDATE vicidial_list SET status='PU' where lead_id='$VAL_lead_id';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + if ($VAL_dispo_epoch < 1) + { + $VAL_talk_sec = ($now_date_epoch - $VAL_talk_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_epoch='$now_date_epoch', talk_sec='$VAL_talk_sec'$status_update_SQL where agent_log_id='$VAL_agent_log_id';"; + } + else + { + if ($VAL_dispo_sec < 1) + { + $VAL_dispo_sec = ($now_date_epoch - $VAL_dispo_epoch); + $stmt = "UPDATE vicidial_agent_log SET dispo_sec='$VAL_dispo_sec' where agent_log_id='$VAL_agent_log_id';"; + } + } + } + } + + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + } + } + + $stmt="DELETE from vicidial_live_agents where user='" . mysql_real_escape_string($user) . "';"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + if (strlen($VAL_user_group) < 1) + { + $stmt = "SELECT user_group FROM vicidial_users where user='$VLA_user';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $val_ct = mysql_num_rows($rslt); + if ($val_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VAL_user_group = $row[0]; + } + } + + $stmt = "INSERT INTO vicidial_user_log (user,event,campaign_id,event_date,event_epoch,user_group) values('$VLA_user','LOGOUT','$VLA_campaign_id','$NOW_TIME','$now_date_epoch','$VAL_user_group');"; + if ($DB) {echo "<BR>$stmt\n";} + $rslt=mysql_query($stmt, $link); + + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "<BR>$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $agents='@agents'; + $agent_logged_in=''; + $time_logged_in=''; + + $stmtB = "SELECT agent,time_id FROM queue_log where agent='Agent/" . mysql_real_escape_string($user) . "' and verb='AGENTLOGIN' order by time_id desc limit 1;"; + $rsltB=mysql_query($stmtB, $linkB); + if ($DB) {echo "<BR>$stmtB\n";} + $qml_ct = mysql_num_rows($rsltB); + if ($qml_ct > 0) + { + $row=mysql_fetch_row($rsltB); + $agent_logged_in = $row[0]; + $time_logged_in = $row[1]; + } + + $time_logged_in = ($now_date_epoch - $time_logged_in); + if ($time_logged_in > 1000000) {$time_logged_in=1;} + + $stmtB = "INSERT INTO queue_log SET partition='P01',time_id='$now_date_epoch',call_id='NONE',queue='NONE',agent='$agent_logged_in',verb='AGENTLOGOFF',serverid='$queuemetrics_log_id',data1='" . mysql_real_escape_string($user) . "$agents',data2='$time_logged_in';"; + if ($DB) {echo "<BR>$stmtB\n";} + $rsltB=mysql_query($stmtB, $linkB); + } + + echo "Agent $user - $full_name has been emergency logged out, make sure they close their web browser<BR>\n"; + } + else + { + echo "Agent $user is not logged in<BR>\n"; + } + + exit; + } + + + + + +##### BEGIN TIMECLOCK LOGOUT OF A USER ##### +if ( ( ($stage == "tc_log_user_OUT") or ($stage == "tc_log_user_IN") ) and ($modify_timeclock_log > 0) ) + { + ### get vicidial_timeclock_status record count for this user + $stmt="SELECT count(*) from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $vts_count = $row[0]; + + $LOG_run=0; + $last_action_sec=99; + + if ($vts_count > 0) + { + ### vicidial_timeclock_status record found, grab status and date of last activity + $stmt="SELECT status,event_epoch from vicidial_timeclock_status where user='$user';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $status = $row[0]; + $event_epoch = $row[1]; + $last_action_date = date("Y-m-d H:i:s", $event_epoch); + $last_action_sec = ($StarTtimE - $event_epoch); + + if ($last_action_sec > 0) + { + $totTIME_H = ($last_action_sec / 3600); + $totTIME_H_int = round($totTIME_H, 2); + $totTIME_H_int = intval("$totTIME_H"); + $totTIME_M = ($totTIME_H - $totTIME_H_int); + $totTIME_M = ($totTIME_M * 60); + $totTIME_M_int = round($totTIME_M, 2); + $totTIME_M_int = intval("$totTIME_M"); + $totTIME_S = ($totTIME_M - $totTIME_M_int); + $totTIME_S = ($totTIME_S * 60); + $totTIME_S = round($totTIME_S, 0); + if (strlen($totTIME_H_int) < 1) {$totTIME_H_int = "0";} + if ($totTIME_M_int < 10) {$totTIME_M_int = "0$totTIME_M_int";} + if ($totTIME_S < 10) {$totTIME_S = "0$totTIME_S";} + $totTIME_HMS = "$totTIME_H_int:$totTIME_M_int:$totTIME_S"; + } + else + { + $totTIME_HMS='0:00:00'; + } + } + + else + { + ### No vicidial_timeclock_status record found, insert one + $stmt="INSERT INTO vicidial_timeclock_status set status='START', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $status='START'; + $totTIME_HMS='0:00:00'; + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_status record inserted for $user: |$affected_rows| -->\n"; + } + + + ##### Run timeclock login queries ##### + if ( ( ($status=='AUTOLOGOUT') or ($status=='START') or ($status=='LOGOUT') ) and ($stage == "tc_log_user_IN") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGIN of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update the user's timeclock status record + $stmtB="UPDATE vicidial_timeclock_status set status='LOGIN', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtC="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGIN', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGIN', record_id='$user', event_code='USER FORCED LOGIN FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='Timeclock ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-in the user: $user - $full_name"; + } + + ##### Run timeclock logout queries ##### + if ( ( ($status=='LOGIN') or ($status=='START') ) and ($stage == "tc_log_user_OUT") ) + { + ### Add a record to the timeclock log + $stmtA="INSERT INTO vicidial_timeclock_log set event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME', manager_user='$PHP_AUTH_USER', manager_ip='$ip', notes='Manager LOGOUT of user from user status page';"; + if ($DB) {echo "$stmtA\n";} + $rslt=mysql_query($stmtA, $link); + $affected_rows = mysql_affected_rows($link); + $timeclock_id = mysql_insert_id($link); + print "<!-- NEW vicidial_timeclock_log record inserted for $user: |$affected_rows|$timeclock_id| -->\n"; + + ### Update last login record in the timeclock log + $stmtB="UPDATE vicidial_timeclock_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtB\n";} + $rslt=mysql_query($stmtB, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_log record updated for $user: |$affected_rows| -->\n"; + + ### Update the user's timeclock status record + $stmtC="UPDATE vicidial_timeclock_status set status='LOGOUT', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip' where user='$user';"; + if ($DB) {echo "$stmtC\n";} + $rslt=mysql_query($stmtC, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_status record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the timeclock audit log + $stmtD="INSERT INTO vicidial_timeclock_audit_log set timeclock_id='$timeclock_id', event='LOGOUT', user='$user', user_group='$user_group', event_epoch='$StarTtimE', ip_address='$ip', login_sec='$last_action_sec', event_date='$NOW_TIME';"; + if ($DB) {echo "$stmtD\n";} + $rslt=mysql_query($stmtD, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_timeclock_audit_log record inserted for $user: |$affected_rows| -->\n"; + + ### Update last login record in the timeclock audit log + $stmtE="UPDATE vicidial_timeclock_audit_log set login_sec='$last_action_sec',tcid_link='$timeclock_id' where event='LOGIN' and user='$user' order by timeclock_id desc limit 1;"; + if ($DB) {echo "$stmtE\n";} + $rslt=mysql_query($stmtE, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- vicidial_timeclock_audit_log record updated for $user: |$affected_rows| -->\n"; + + ### Add a record to the vicidial_admin_log + $SQL_log = "$stmtA|$stmtB|$stmtC|$stmtD|$stmtE|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$PHP_AUTH_USER', ip_address='$ip', event_section='TIMECLOCK', event_type='LOGOUT', record_id='$user', event_code='USER FORCED LOGOUT FROM STATUS PAGE', event_sql=\"$SQL_log\", event_notes='User login time: $last_action_sec|Timeclock ID: $timeclock_id|';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + print "<!-- NEW vicidial_admin_log record inserted for $PHP_AUTH_USER: |$affected_rows| -->\n"; + + $LOG_run++; + $VDdisplayMESSAGE = "You have now logged-out the user: $user - $full_name<BR>Amount of time user was logged-in: $totTIME_HMS"; + } + + if ($LOG_run < 1) + {$VDdisplayMESSAGE = "ERROR: timeclock log problem, could not process: $status|$stage";} + + echo "$VDdisplayMESSAGE\n"; + + exit; + } + +##### END TIMECLOCK LOGOUT OF A USER ##### + +if ($agents_to_print > 0) + { + echo "<BR>\n"; + echo "$user - $full_name \n"; + echo "       GROUP: $user_group <BR>\n"; + + echo "<TABLE CELLPADDING=0 CELLSPACING=0>"; + echo "<TR><TD ALIGN=RIGHT>Agent Logged in at server:</TD><TD ALIGN=LEFT>   $Aserver_ip</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>in session:</TD><TD ALIGN=LEFT>   $Asession_id</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>from phone:</TD><TD ALIGN=LEFT>   $Aextension</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Agent is in campaign:</TD><TD ALIGN=LEFT>   $Acampaign</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>status:</TD><TD ALIGN=LEFT>   $Astatus</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>hungup last call at:</TD><TD ALIGN=LEFT>   $Alast_call</TD></TR>\n"; + echo "<TR><TD ALIGN=RIGHT>Closer groups:</TD><TD ALIGN=LEFT>   $Acl_campaigns</TD></TR>\n"; + if ($manager_ingroup_set != 'N') + {echo "<TR><TD ALIGN=RIGHT>Manager InGroup Select:</TD><TD ALIGN=LEFT>   YES, by $external_igb_set_user</TD></TR>\n";} + if ($outbound_autodial == 'Y') + {echo "<TR><TD ALIGN=RIGHT>Outbound Auto-Dial:</TD><TD ALIGN=LEFT>   YES</TD></TR>\n";} + if ($user_territories_active > 0) + {echo "<TR><TD ALIGN=RIGHT>Selected Territories:</TD><TD ALIGN=LEFT>   $agent_territories</TD></TR>\n";} + echo "</TABLE>\n<BR>\n"; + + if ($change_agent_campaign > 0) + { + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"live_campaign_change\">\n"; + echo "Current Campaign: <SELECT SIZE=1 NAME=group>\n"; + $o=0; + while ($groups_to_print > $o) + { + if ($groups[$o] == "$Acampaign") {echo "<option selected value=\"$groups[$o]\">$groups[$o]</option>\n";} + else {echo "<option value=\"$groups[$o]\">$groups[$o]</option>\n";} + $o++; + } + echo "</SELECT>\n"; + echo "<input type=submit name=submit value=CHANGE disabled><BR></form>\n"; + + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"log_agent_out\">\n"; + echo "<input type=submit name=submit value=\"EMERGENCY LOG AGENT OUT\"><BR></form>\n"; + } + } + +else + { + echo "Agent is not logged in\n<BR>"; + } + +echo "\n<BR>"; + +if ( ($Tstatus == "LOGIN") or ($Tstatus == "START") ) + { + echo "User $user($full_name) - is logged in to the timeclock. <BR>Login time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_OUT'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER OUT'; + } +else + { + echo "User $user($full_name) - is NOT logged in to the timeclock. <BR>Last logout time: $Tevent_date from $Tip_address<BR>\n"; + $TC_log_change_stage = 'tc_log_user_IN'; + $TC_log_change_button = 'TIMECLOCK LOG THIS USER IN'; + } + +if ($modify_timeclock_log > 0) + { + echo "<BR><BR>\n"; + echo "<form action=$PHP_SELF method=POST>\n"; + echo "<input type=hidden name=DB value=\"$DB\">\n"; + echo "<input type=hidden name=user value=\"$user\">\n"; + echo "<input type=hidden name=stage value=\"$TC_log_change_stage\">\n"; + echo "<input type=submit name=submit value=\"$TC_log_change_button\"><BR></form>\n"; + echo "<BR><BR>\n"; + } + + +$REPORTdate = date("Y-m-d"); +echo "<center>\n"; +echo "<a href=\"./AST_agent_time_sheet.php?agent=$user\">Agent Time Sheet</a>\n"; +echo " | <a href=\"./user_stats.php?user=$user\">User Stats</a>\n"; +echo " | <a href=\"./admin.php?ADD=3&user=$user\">Modify User</a>\n"; +echo " | <a href=\"./AST_agent_days_detail.php?user=$user&query_date=$REPORTdate&end_date=$REPORTdate&group[]=--ALL--&shift=ALL\">User multiple day status detail report</a>"; +echo "</center>\n"; + +echo "</B></TD></TR>\n"; +echo "<TR><TD ALIGN=LEFT COLSPAN=2>\n"; + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $StarTtimE); + +echo "\n\n\n<br><br><br>\n\n"; + + +echo "<font size=0>\n\n\n<br><br><br>\nscript runtime: $RUNtime seconds</font>"; + +echo "|$stage|$group|"; + +?> + + +</TD></TR><TABLE> +</body> +</html> + +<?php + +exit; + + + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/user_territories.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/user_territories.php new file mode 100644 index 00000000..92006655 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/user_territories.php @@ -0,0 +1,1089 @@ +<?php +# user_territories.php +# +# Copyright (C) 2009 Matt Florell <vicidial@gmail.com> LICENSE: AGPLv2 +# +# This territories script is for use with custom tables in Vtiger which is why +# it is separate from the standard admin.php script. user_territories_active in +# the system_settings table must be active for this script to work. +# +# CHANGES +# 90520-1928 - first build +# 90717-0651 - Added batch +# 90726-2302 - Added vicidial_list user owner update option +# 91012-0310 - Added vicidial_list counts for territory as owner +# + +$version = '2.2.0-4'; +$build = '91012-0310'; + +$MT[0]=''; + +require("dbconnect.php"); + +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["action"])) {$action=$_GET["action"];} + elseif (isset($_POST["action"])) {$action=$_POST["action"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["territory"])) {$territory=$_GET["territory"];} + elseif (isset($_POST["territory"])) {$territory=$_POST["territory"];} +if (isset($_GET["territory_description"])) {$territory_description=$_GET["territory_description"];} + elseif (isset($_POST["territory_description"])) {$territory_description=$_POST["territory_description"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["level"])) {$level=$_GET["level"];} + elseif (isset($_POST["level"])) {$level=$_POST["level"];} +if (isset($_GET["accountid"])) {$accountid=$_GET["accountid"];} + elseif (isset($_POST["accountid"])) {$accountid=$_POST["accountid"];} +if (isset($_GET["batch"])) {$batch=$_GET["batch"];} + elseif (isset($_POST["batch"])) {$batch=$_POST["batch"];} +if (isset($_GET["vl_owner"])) {$vl_owner=$_GET["vl_owner"];} + elseif (isset($_POST["vl_owner"])) {$vl_owner=$_POST["vl_owner"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + + +header ("Content-type: text/html; charset=utf-8"); +header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 +header ("Pragma: no-cache"); // HTTP/1.0 + +############################################# +##### START SYSTEM_SETTINGS LOOKUP ##### +$stmt = "SELECT use_non_latin,user_territories_active,enable_vtiger_integration,outbound_autodial_active,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $non_latin = $row[0]; + $user_territories_active = $row[1]; + $enable_vtiger_integration = $row[2]; + $SSoutbound_autodial_active = $row[3]; + $vtiger_server_ip = $row[4]; + $vtiger_dbname = $row[5]; + $vtiger_login = $row[6]; + $vtiger_pass = $row[7]; + $vtiger_url = $row[8]; + } +##### END SETTINGS LOOKUP ##### +########################################### + + + +if ($user_territories_active < 1) + { + echo "ERROR: User Territories are not active on this system\n"; + exit; + } + +if ($non_latin < 1) + { + ### Clean Variable Values ### + $DB = ereg_replace("[^0-9]","",$DB); + $action = ereg_replace("[^\_0-9a-zA-Z]","",$action); + $territory = ereg_replace("[^-\_0-9a-zA-Z]","",$territory); + $territory_description = ereg_replace("[^ -\_\.\,0-9a-zA-Z]","",$territory_description); + $user = ereg_replace("[^-\_0-9a-zA-Z]","",$user); + $level = ereg_replace("[^\_A-Z]","",$level); + $old_territory = ereg_replace("[^-\_0-9a-zA-Z]","",$old_territory); + $old_user = ereg_replace("[^-\_0-9a-zA-Z]","",$old_user); + $accountid = ereg_replace("[^-\_0-9a-zA-Z]","",$accountid); + } + +if (eregi("YES",$batch)) + { + $USER='batch'; + $PASS='batch'; + } +else + { + $USER=$_SERVER['PHP_AUTH_USER']; + $PASS=$_SERVER['PHP_AUTH_PW']; + $USER = ereg_replace("[^0-9a-zA-Z]","",$USER); + $PASS = ereg_replace("[^0-9a-zA-Z]","",$PASS); + + $stmt="SELECT count(*) from vicidial_users where user='$USER' and pass='$PASS' and user_level > 7 and modify_users='1'"; + if ($DB) {echo "|$stmt|\n";} + if ($non_latin > 0) { $rslt=mysql_query("SET NAMES 'UTF8'");} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + + if( (strlen($USER)<2) or (strlen($PASS)<2) or (!$auth)) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + echo "Invalid Username/Password: |$USER|$PASS|\n"; + exit; + } + } + +if ($enable_vtiger_integration > 0) + { + ### connect to your vtiger database + $linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); + if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} + mysql_select_db("$vtiger_dbname", $linkV); + } + + +if (strlen($action) < 1) + {$action = 'LIST_ALL_TERRITORIES';} + + + +?> +<html> +<head> +<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> +<!-- VERSION: <?php echo $version ?> BUILD: <?php echo $build ?> --> +<title>ADMINISTRATION: User Territories +<?php + + + + + + +### BEGIN change territory owner for one account +if ( ($action == "CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + echo "
    \n"; + echo ""; + + echo "
    Vtiger Change Territory Owner
    \n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    Account ID:
    New Owner:
    Update ViciDial List Owner:
    \n"; + exit; + } +### END change territory owner for one account + + +### BEGIN process change territory owner for one account +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER_ACCOUNT") and ($enable_vtiger_integration > 0) ) + { + echo "\n"; + + if ( (strlen($accountid)<1) or (strlen($user)<1) ) + { + echo "ERROR: Account ID and User must be filled in
    \n"; + } + else + { + if (eregi("YES",$batch)) + {$AID_lookupSQL = "website='$accountid'";} + else + {$AID_lookupSQL = "accountid='$accountid'";} + $stmtV="SELECT tickersymbol,accountid from vtiger_account where $AID_lookupSQL;"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + if ($vat_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $territory = $row[0]; + $accountid = $row[1]; + + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='STANDARD_AGENT';"; + $rslt=mysql_query($stmt, $link); + + echo "NOTICE: Had to add user territory: $user $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$accountid';"; + $rsltV=mysql_query($stmt, $linkV); + $changed = mysql_affected_rows($linkV); + + $stmtB="UPDATE vtiger_tracker SET user_id='$user_id' where item_id='$accountid';"; + $rsltV=mysql_query($stmtB, $linkV); + + if ( ($vl_owner == 'YES') and ($accountid > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$accountid';"; + $rsltV=mysql_query($stmtB, $link); + } + + echo "Vtiger Territory Owner Changed: $user $territory
    \n"; + echo "Records Changed: $changed
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$accountid', event_code='VTIGER MODIFY TERRITORY OWNER ACCOUNT', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + } + exit; + } +### END process change territory owner for one account + + + + + +##### BEGIN Set variables to make header show properly ##### +$ADD = '0'; +$hh = 'users'; +$LOGast_admin_access = '1'; +$ADMIN = 'admin.php'; +$page_width='770'; +$section_width='750'; +$header_font_size='3'; +$subheader_font_size='2'; +$subcamp_font_size='2'; +$header_selected_bold=''; +$header_nonselected_bold=''; +$users_color = '#FFFF99'; +$users_font = 'BLACK'; +$users_color = '#E6E6E6'; +$subcamp_color = '#C6C6C6'; +##### END Set variables to make header show properly ##### + +require("admin_header.php"); + +$colspan='3'; + +?> + BGCOLOR=#E6E6E6 cellpadding=2 cellspacing=0> + + + + + 0) + { ?> + + + + + +
      ">List Territories   ?action=ADD_TERRITORY">Add Territory   ?action=ADD_USER_TERRITORY">Add User Territory   ?action=CHANGE_TERRITORY_OWNER">Change Vtiger Territory Owner
      \n"; + +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$FILE_datetime = $STARTtime; + +$ip = getenv("REMOTE_ADDR"); +$date = date("r"); +$browser = getenv("HTTP_USER_AGENT"); +$script_name = getenv("SCRIPT_NAME"); +$server_name = getenv("SERVER_NAME"); +$server_port = getenv("SERVER_PORT"); +if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} +$admDIR = "$HTTPprotocol$server_name:$server_port$script_name"; +$admDIR = eregi_replace('audio_store.php','',$admDIR); +$admSCR = 'admin.php'; +$NWB = "   \"HELP\""; + +$secX = date("U"); +$pulldate0 = "$year-$mon-$mday $hour:$min:$sec"; + + + + + + + +### BEGIN change territory owner in the system +if ( ($action == "CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + echo "
    \n"; + echo ""; + + echo "
    Vtiger Change Territory Owner\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    Territory:
    New Owner:
    Update ViciDial List Owner:
    \n"; + } +### END change territory owner in the system + + +### BEGIN process change territory owner in the system +if ( ($action == "PROCESS_CHANGE_TERRITORY_OWNER") and ($enable_vtiger_integration > 0) ) + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='TOP_AGENT';"; + $rslt=mysql_query($stmt, $link); + + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + + echo "NOTICE: Had to add user territory: $user $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + + $stmtV="SELECT id from vtiger_users where user_name='$user';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV="SELECT accountid from vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vat_ct = mysql_num_rows($rsltV); + $account_ids[0]=''; + $p=0; + while ($vat_ct > $p) + { + $row=mysql_fetch_row($rsltV); + $account_ids[$p] = $row[0]; + $p++; + } + + $p=0; + while ($vat_ct > $p) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmt, $linkV); + $changedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$changedX\n";} + $changed = ($changed + $changedX); + + $stmtV="select activityid from vtiger_seactivityrel where crmid='$account_ids[$p]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vact_ct = mysql_num_rows($rsltV); + $activity_ids[0]=''; + $r=0; + while ($vact_ct > $r) + { + $row=mysql_fetch_row($rsltV); + $activity_ids[$r] = $row[0]; + $r++; + } + + $r=0; + while ($vact_ct > $r) + { + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id' where crmid='$activity_ids[$r]';"; + $rsltV=mysql_query($stmt, $linkV); + $AchangedX = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$AchangedX\n";} + $Achanged = ($Achanged + $AchangedX); + $r++; + } + + if ( ($vl_owner == 'YES') and ($account_ids[$p] > 0) ) + { + $stmtB="UPDATE vicidial_list SET owner='$user' where vendor_lead_code='$account_ids[$p]';"; + $rslt=mysql_query($stmtB, $link); + $VchangedX = mysql_affected_rows($link); + if ($DB) {echo "$stmtB|$VchangedX\n";} + $Vchanged = ($Vchanged + $VchangedX); + } + + $p++; + } + + + $stmt="UPDATE vtiger_crmentity SET smownerid='$user_id',smcreatorid='$user_id',modifiedby='$user_id' where crmid IN(SELECT accountid from vtiger_account where tickersymbol='$territory');"; + $rsltV=mysql_query($stmt, $linkV); + $Cchanged = mysql_affected_rows($linkV); + if ($DB) {echo "$stmt|$Cchanged\n";} + + $stmtB="UPDATE vtiger_tracker vt, vtiger_account va SET user_id='$user_id' where vt.item_id=va.accountid and va.tickersymbol='$territory';"; + $rsltV=mysql_query($stmtB, $linkV); + + echo "Vtiger Territory Owner Changed: $user $territory       Records Changed: $changed - $Achanged - $Cchanged - $Vchanged
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='VTIGER', event_type='MODIFY', record_id='$territory', event_code='VTIGER MODIFY TERRITORY OWNER', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process change territory owner in the system + + + + + +### BEGIN add user territory page +if ($action == "ADD_USER_TERRITORY") + { + echo "
    \n"; + echo ""; + + echo "
    Add User Territory\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Agent:
    Territory:
    Level:
    \n"; + } +### END add user territory page + + +### BEGIN process add user territory page +if ($action == "PROCESS_ADD_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: this territory user is already in the system
    \n"; + } + else + { + $stmt="INSERT INTO vicidial_user_territories SET territory='$territory',user='$user',level='$level';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Added: $user $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process add user territory page + + +### BEGIN process modify user territory page +if ($action == "PROCESS_MODIFY_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) or (strlen($level)<1) ) + { + echo "ERROR: Territory, User and Level must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
    \n"; + } + else + { + $stmt="UPDATE vicidial_user_territories SET level='$level' where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + if ($level == "TOP_AGENT") + { + $stmtB="UPDATE vicidial_user_territories SET level='STANDARD_AGENT' where territory='$territory' and user!='$user' and level='TOP_AGENT';"; + $rslt=mysql_query($stmtB, $link); + } + + echo "User Territory Modified: $user $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify user territory page + + +### BEGIN delete user territory page +if ($action == "DELETE_USER_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($user)<1) ) + { + echo "ERROR: Territory and User must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: this territory user is not in the system
    \n"; + } + else + { + $stmt="DELETE from vicidial_user_territories where territory='$territory' and user='$user';"; + $rslt=mysql_query($stmt, $link); + + echo "User Territory Deleted: $user $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|$stmtB|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE USER TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END delete user territory page + + + + + + +### BEGIN add territory page +if ($action == "ADD_TERRITORY") + { + echo "
    \n"; + echo ""; + + echo "
    Add Territory\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    Territory:
    Territory Description:
    \n"; + } +### END add territory page + + +### BEGIN process add territory page +if ($action == "PROCESS_ADD_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] > 0) + { + echo "ERROR: there is already a territory in the system with this name
    \n"; + } + else + { + $stmt="INSERT INTO vicidial_territories SET territory='$territory',territory_description='$territory_description';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Added: $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='ADD', record_id='$territory', event_code='ADMIN ADD TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END process add territory page + + +### BEGIN delete territory page +if ($action == "DELETE_TERRITORY") + { + if (strlen($territory)<1) + { + echo "ERROR: Territory must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 0) + { + echo "ERROR: This territory is not in the system with this name
    \n"; + } + else + { + $stmt="DELETE from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Deleted: $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='DELETE', record_id='$territory', event_code='ADMIN DELETE TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "LIST_ALL_TERRITORIES"; + } +### END delete territory page + + +### BEGIN process modify territory page +if ($action == "PROCESS_MODIFY_TERRITORY") + { + if ( (strlen($territory)<1) or (strlen($territory_description)<1) ) + { + echo "ERROR: Territory and Territory Description must be filled in
    \n"; + } + else + { + $stmt="SELECT count(*) from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + if ($row[0] < 1) + { + echo "ERROR: This territory is not in the system with this name
    \n"; + } + else + { + $stmt="UPDATE vicidial_territories SET territory_description='$territory_description' where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + + echo "Territory Modified: $territory
    \n"; + + ### LOG INSERTION Admin Log Table ### + $SQL_log = "$stmt|"; + $SQL_log = ereg_replace(';','',$SQL_log); + $SQL_log = addslashes($SQL_log); + $stmt="INSERT INTO vicidial_admin_log set event_date='$NOW_TIME', user='$USER', ip_address='$ip', event_section='TERRITORIES', event_type='MODIFY', record_id='$territory', event_code='ADMIN MODIFY TERRITORY', event_sql=\"$SQL_log\", event_notes='';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + } + } + $action = "MODIFY_TERRITORY"; + } +### END process modify territory page + + +### BEGIN modify territory page +if ($action == "MODIFY_TERRITORY") + { + $stmt="SELECT territory,territory_description from vicidial_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + if ($territories_to_print > 0) + { + $rowx=mysql_fetch_row($rslt); + + echo "
    \n"; + echo ""; + + echo "
    Modify Territory\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $user_count = $row[0]; + } + echo ""; + + $owner_count=0; + $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $owner_count = $row[0]; + } + echo ""; + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vta_ct = mysql_num_rows($rsltV); + if ($vta_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $vtiger_count = $row[0]; + } + echo ""; + } + echo "\n"; + echo "
    Territory: $rowx[0]
    Territory Description:
    Agents: $user_count
    Accounts: $owner_count
    Vtiger Accounts: $vtiger_count
    \n"; + echo "

    \n"; + + echo "\n"; + + $stmt="SELECT vut.user,level,full_name from vicidial_user_territories vut,vicidial_users vu where vut.territory='$territory' and vut.user=vu.user order by vu.user;"; + $rslt=mysql_query($stmt, $link); + $territories_to_print = mysql_num_rows($rslt); + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $Tuser[$o] = $rowx[0]; + $Tlevel[$o] = $rowx[1]; + $Tfull_name[$o] = $rowx[2]; + $o++; + } + $o=0; + while ($territories_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $p++; + + if (eregi("1$|3$|5$|7$|9$", $p)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + $stmtV="SELECT id from vtiger_users where user_name='$Tuser[$o]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vtu_ct = mysql_num_rows($rsltV); + if ($vtu_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $user_id = $row[0]; + + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$territory' and accountid IN(SELECT crmid from vtiger_crmentity where smownerid='$user_id');"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $vca_ct = mysql_num_rows($rsltV); + if ($vca_ct > 0) + { + $row=mysql_fetch_row($rsltV); + echo ""; + } + } + } + + # $owner_count=0; + # $stmt = "SELECT count(*) FROM vicidial_list where owner='$territory';"; + # $rslt=mysql_query($stmt, $link); + # if ($DB) {echo "$stmt\n";} + # $VLo_ct = mysql_num_rows($rslt); + # if ($VLo_ct > 0) + # { + # $row=mysql_fetch_row($rslt); + # $owner_count = $row[0]; + # } + # echo ""; + + echo ""; + echo ""; + echo "\n"; + $o++; + } + + echo "
    Users in this Territory:
    $p$Tuser[$o]$Tfull_name[$o]VT Accounts: $row[0]Accounts: $owner_count"; + echo "
    "; + echo ""; + echo ""; + echo ""; + echo " "; + echo ""; + echo "
    "; + echo "
    DELETE
    \n"; + echo "


    \n"; + + echo "Delete This Territory\n"; + echo "

    \n"; + } + else + { + echo "ERROR: Territory not found: $territory
    \n"; + } + } +### END modify territory page + + + + + +### BEGIN list all territories in the system +if ($action == "LIST_ALL_TERRITORIES") + { + echo " +
    \n"; + echo ""; + echo "
    List All Territories:\n"; + echo "
    \n"; + echo ""; + echo ""; + echo ""; + echo ""; + echo "\n"; + echo "\n"; + echo "\n"; + if ($enable_vtiger_integration > 0) + { + echo "\n"; + } + echo "\n"; + + $stmt = "SELECT territory_id,territory,territory_description FROM vicidial_territories order by territory;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vt_ct = mysql_num_rows($rslt); + $i=0; + while ($vt_ct > $i) + { + $row=mysql_fetch_row($rslt); + $Lterritory_id[$i] = $row[0]; + $Lterritory[$i] = $row[1]; + $Lterritory_description[$i] = $row[2]; + $i++; + } + $i=0; + while ($vt_ct > $i) + { + $stmt = "SELECT count(*) FROM vicidial_user_territories where territory='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vut_ct = mysql_num_rows($rslt); + if ($vut_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_count[$i] = $row[0]; + } + + $stmt = "SELECT count(*) FROM vicidial_list where owner='$Lterritory[$i]';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $VLo_ct = mysql_num_rows($rslt); + if ($VLo_ct > 0) + { + $row=mysql_fetch_row($rslt); + $Lterritory_owner_count[$i] = $row[0]; + } + + if ($enable_vtiger_integration > 0) + { + $stmtV = "SELECT count(*) FROM vtiger_account where tickersymbol='$Lterritory[$i]';"; + $rsltV=mysql_query($stmtV, $linkV); + if ($DB) {echo "$stmtV\n";} + $va_ct = mysql_num_rows($rsltV); + if ($va_ct > 0) + { + $row=mysql_fetch_row($rsltV); + $Lvtiger_count[$i] = $row[0]; + } + } + + if (eregi("1$|3$|5$|7$|9$", $i)) + {$bgcolor='bgcolor="#B9CBFD"';} + else + {$bgcolor='bgcolor="#9BB9FB"';} + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + if ($enable_vtiger_integration > 0) + { + echo ""; + } + echo "\n"; + + $i++; + } + echo "
    #IDTERRITORYDESCRIPTIONAGENTSACCOUNTSVT ACCOUNTS
    $i $Lterritory_id[$i] $Lterritory[$i] $Lterritory_description[$i] $Lterritory_count[$i] $Lterritory_owner_count[$i] $Lvtiger_count[$i]


    \n"; + echo "\n"; + echo "
    \n"; + } +### END list all territories in the system + + + + + + + + +?> + + + +
    User Territories     VERSION:     BUILD:    
    diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/vdremote.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/vdremote.php new file mode 100644 index 00000000..a4c1d7e8 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/vdremote.php @@ -0,0 +1,591 @@ + LICENSE: AGPLv2 +# +# Changes +# 50307-1721 - First version +# 51123-1502 - removed requirement of PHP Globals=on +# 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 +# 90508-0644 - Changed to PHP long tags +# 91129-2249 - Replaced SELECT STAR in SQL queries, formatting fixes +# + +$version = '2.2.0'; +$build = '91129-2249'; + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["ADD"])) {$ADD=$_GET["ADD"];} + elseif (isset($_POST["ADD"])) {$ADD=$_POST["ADD"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["force_logout"])) {$force_logout=$_GET["force_logout"];} + elseif (isset($_POST["force_logout"])) {$force_logout=$_POST["force_logout"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["remote_agent_id"])) {$remote_agent_id=$_GET["remote_agent_id"];} + elseif (isset($_POST["remote_agent_id"])) {$remote_agent_id=$_POST["remote_agent_id"];} +if (isset($_GET["user_start"])) {$user_start=$_GET["user_start"];} + elseif (isset($_POST["user_start"])) {$user_start=$_POST["user_start"];} +if (isset($_GET["number_of_lines"])) {$number_of_lines=$_GET["number_of_lines"];} + elseif (isset($_POST["number_of_lines"])) {$number_of_lines=$_POST["number_of_lines"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["conf_exten"])) {$conf_exten=$_GET["conf_exten"];} + elseif (isset($_POST["conf_exten"])) {$conf_exten=$_POST["conf_exten"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["groups"])) {$groups=$_GET["groups"];} + elseif (isset($_POST["groups"])) {$groups=$_POST["groups"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +if (!isset($force_logout)) {$force_logout = 0;} + +if ($force_logout) + { + if( (strlen($PHP_AUTH_USER)>0) or (strlen($PHP_AUTH_PW)>0) ) + { + Header("WWW-Authenticate: Basic realm=\"VICI-PROJECTS\""); + Header("HTTP/1.0 401 Unauthorized"); + } + echo "You have now logged out. Thank you\n"; + 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'; +$STARTtime = date("U"); +$NOW_DATE = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +if (!isset($query_date)) {$query_date = $NOW_DATE;} + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 3;"; +if ($DB) {echo "|$stmt|\n";} +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + +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; + } +else + { + header ("Content-type: text/html; charset=utf-8"); + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + + $stmt="SELECT count(*) from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $authx=$row[0]; + + if($authx>0) + { + $stmt="SELECT remote_agent_id,server_ip,number_of_lines from vicidial_remote_agents where user_start='$PHP_AUTH_USER';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id=$row[0]; + $server_ip=$row[1]; + if (!$number_of_lines) {$number_of_lines=$row[2];} + + fwrite ($fp, "VDremote|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + echo "This remote agent does not exist: |$PHP_AUTH_USER|\n"; + exit; + } + } + else + { + fwrite ($fp, "VDremote|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + } + +echo "\n"; +echo "\n"; +echo "\n"; +if ($ADD==61111) + { + echo"\n"; + } +echo "\n"; +?> + +REMOTE AGENTS: $LOGfullname - $PHP_AUTH_USER "; + +if (!$ADD) {$ADD="31111";} +if ($ADD==31111) {echo "Modify Remote Agents";} +if ($ADD==41111) {echo "Modify Remote Agents";} +if ($ADD==61111) {echo "Remote Agent Status";} +if ($ADD==71111) {echo "Remote Agent Closer Stats";} + + +if (strlen($ADD)>4) + { + ##### get server listing for dynamic pulldown + $stmt="SELECT server_ip,server_description from servers order by server_ip"; + $rslt=mysql_query($stmt, $link); + $servers_to_print = mysql_num_rows($rslt); + $servers_list=''; + + $o=0; + while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "\n"; + $o++; + } + + ##### get campaigns listing for dynamic pulldown + $stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; + $rslt=mysql_query($stmt, $link); + $campaigns_to_print = mysql_num_rows($rslt); + $campaigns_list=''; + + $o=0; + while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + ##### get inbound groups listing for checkboxes + if ( (($ADD==31111) or ($ADD==31111)) and (count($groups)<1) ) + { + $stmt="SELECT closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $closer_campaigns = $row[0]; + $closer_campaigns = preg_replace("/ -$/","",$closer_campaigns); + $groups = explode(" ", $closer_campaigns); + } + + $stmt="SELECT group_id,group_name from vicidial_inbound_groups order by group_id"; + $rslt=mysql_query($stmt, $link); + $groups_to_print = mysql_num_rows($rslt); + $groups_list=''; + $groups_value=''; + + $o=0; + while ($groups_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $group_id_value = $rowx[0]; + $group_name_value = $rowx[1]; + $groups_list .= "2) {$groups_value .= " -";} + } + +?> + + + +
    + + + + +
      REMOTE AGENTS:   Logout  
      MODIFY | ">STATUS | ">INBOUND STATS
    +"; + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
    MODIFY A REMOTE AGENTS ENTRY: $row[0]
    \n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    User ID Start: $user_start
    Number of Lines: (numbers only)
    Server IP: $row[3]
    External Extension: (number dialed to reach agents [i.e. 913125551212])
    Status:
    Campaign: $campaign_id
    Inbound Groups: \n"; + echo "$groups_list"; + echo "
    \n"; + echo "NOTE: It can take up to 30 seconds for changes submitted on this screen to go live\n"; + } + + + +###################### +# ADD=41111 modify remote agents info in the system +###################### + +if ($ADD==41111) + { + echo ""; + + if ( (strlen($number_of_lines) < 1) or (strlen($conf_exten) < 2) ) + {echo "
    REMOTE AGENTS NOT MODIFIED - Please go back and look at the data you entered\n";} + else + { + $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); + +# echo "$stmt\n"; + echo "
    REMOTE AGENTS MODIFIED\n"; + + ### LOG CHANGES TO LOG FILE ### + $fp = fopen ("./admin_changes_log.txt", "a"); + fwrite ($fp, "$date|MODIFY REMOTE AGENTS ENTRY |$PHP_AUTH_USER|$ip|$stmt|\n"); + fclose($fp); + } + + $stmt="SELECT remote_agent_id,user_start,number_of_lines,server_ip,conf_exten,status,campaign_id,closer_campaigns from vicidial_remote_agents where remote_agent_id='" . mysql_real_escape_string($remote_agent_id) . "';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $remote_agent_id = $row[0]; + $user_start = $row[1]; + $number_of_lines = $row[2]; + $server_ip = $row[3]; + $conf_exten = $row[4]; + $status = $row[5]; + $campaign_id = $row[6]; + + echo "
    MODIFY A REMOTE AGENTS ENTRY: $row[0]\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    User ID Start: $user_start
    Number of Lines: (numbers only)
    Server IP: $row[3]
    External Extension: (number dialed to reach agents [i.e. 913125551212])
    Status:
    Campaign: $campaign_id
    Inbound Groups: \n"; + echo "$groups_list"; + echo "
    \n"; + echo "NOTE: It can take up to 30 seconds for changes submitted on this screen to go live\n"; + } + + + +###################### +# ADD=61111 status of remote agent in the system and active calls and queue +###################### + +if ($ADD==61111) + { + echo "
    ";
    +
    +	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
    +		{echo "
    REMOTE AGENTS ERROR - Please go back and look at the data you entered\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'" . mysql_real_escape_string($nextuser) . "',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + echo "Remote Agent Time On Calls $NOW_TIME\n\n"; + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo "| STATION | USER | LEADID | CHANNEL | STATUS | START TIME | MINUTES |\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='" . mysql_real_escape_string($server_ip) . "' and user IN($users_list) order by extension;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $leadlink=0; + $row=mysql_fetch_row($rslt); + if (eregi("READY|PAUSED",$row[4])) + { + $row[3]=''; + $row[5]=' - WAITING - '; + $row[6]=$row[7]; + } + $extension = sprintf("%-10s", $row[0]); + $user = sprintf("%-6s", $row[1]); + $leadid = sprintf("%-12s", $row[2]); + if ($row[2] > 0) + { + $leadidLINK=$row[2]; + $leadlink++; + if ( eregi("QUEUE",$row[4]) ) {$row[6]=$STARTtime;} + $leadid = "$leadid"; + } + $channel = sprintf("%-10s", $row[3]); + $cc=0; + while ( (strlen($channel) > 10) and ($cc < 100) ) + { + $channel = eregi_replace(".$","",$channel); + $cc++; + if (strlen($channel) <= 10) {$cc=101;} + } + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = ($STARTtime - $row[6]); + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + if ($call_time_M_int >= 5) {$G=''; $EG='';} + if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$extension$EG | $G$user$EG | $G$leadid$EG | $G$channel$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+------------|--------+--------------+------------+--------+---------------------+---------+\n"; + echo " $i agents logged in on server $server_ip\n\n"; + + echo " - 5 minutes or more on call\n"; + echo " - Over 10 minutes on call\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "********************************* NO AGENTS ON CALLS *********************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
    \n\n"; + } + + +###################### +# ADD=71111 stats for remote agents from closer logs(vicidial_closer_log) +###################### + +if ($ADD==71111) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n\n"; + echo "
    ";
    +
    +	if ( (strlen($server_ip) < 2) or (strlen($user) < 2) )
    +		{echo "
    REMOTE AGENTS ERROR - Please go back and look at the data you entered\n";} + else + { + $users_list = ''; + $k=0; + while($k < $number_of_lines) + { + $nextuser=($user + $k); + $users_list .= "'$nextuser',"; + $k++; + } + $users_list = preg_replace("/.$/","",$users_list); + + $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 user IN($users_list);"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $in_calls = $row[0]; + $in_time = $row[1]; + $in_time_M = ($in_time / 60); + $in_time_M = round($in_time_M, 2); + $in_time_M_int = intval("$in_time_M"); + $in_time_SEC = ($in_time_M - $in_time_M_int); + $in_time_SEC = ($in_time_SEC * 60); + $in_time_SEC = round($in_time_SEC, 0); + if ($in_time_SEC < 10) {$in_time_SEC = "0$in_time_SEC";} + $in_time_MS = "$in_time_M_int:$in_time_SEC"; + $in_time_MS = sprintf("%7s", $in_time_MS); + + echo "Remote Agent inbound stats $NOW_TIME\n\n"; + echo "\n"; + echo "Total calls taken $query_date: $in_calls\n"; + echo "Total talk time on $query_date: $in_time_MS (minutes:seconds)\n"; + echo "\n"; + echo "\n"; + echo "Call list for $query_date:\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + echo "| USER | LEADID | GROUP | PHONE NUM | STATUS | CALL TIME | MINUTES |\n"; + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; + + + $stmt="select user,lead_id,campaign_id,phone_number,status,call_date,length_in_sec from vicidial_closer_log where call_date >= '$query_date 00:00:01' and call_date <= '$query_date 23:59:59' and user IN($users_list) order by call_date;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $talking_to_print = mysql_num_rows($rslt); + if ($talking_to_print > 0) + { + $i=0; + while ($i < $talking_to_print) + { + $row=mysql_fetch_row($rslt); + $user = sprintf("%-8s", $row[0]); + $leadid = sprintf("%-10s", $row[1]); + $group = sprintf("%-14s", $row[2]); + $phone = sprintf("%-10s", $row[3]); + $status = sprintf("%-6s", $row[4]); + $start_time = sprintf("%-19s", $row[5]); + $call_time_S = $row[6]; + + $call_time_M = ($call_time_S / 60); + $call_time_M = round($call_time_M, 2); + $call_time_M_int = intval("$call_time_M"); + $call_time_SEC = ($call_time_M - $call_time_M_int); + $call_time_SEC = ($call_time_SEC * 60); + $call_time_SEC = round($call_time_SEC, 0); + if ($call_time_SEC < 10) {$call_time_SEC = "0$call_time_SEC";} + $call_time_MS = "$call_time_M_int:$call_time_SEC"; + $call_time_MS = sprintf("%7s", $call_time_MS); + $G = ''; $EG = ''; + # if ($call_time_M_int >= 5) {$G=''; $EG='';} + # if ($call_time_M_int >= 10) {$G=''; $EG='';} + + echo "| $G$user$EG | $G$leadid$EG | $G$group$EG | $G$phone$EG | $G$status$EG | $G$start_time$EG | $G$call_time_MS$EG |\n"; + + $i++; + } + + echo "+----------+------------+----------------+------------+--------+---------------------+---------+\n"; +# echo " $i agents logged in on server $server_ip\n\n"; + +# echo " - 5 minutes or more on call\n"; +# echo " - Over 10 minutes on call\n"; + } + else + { + echo "**************************************************************************************\n"; + echo "********************************* NO CALLS ON THIS DAY *******************************\n"; + echo "**************************************************************************************\n"; + } + } + + echo "
    \n\n"; + } + + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n


    \n\n"; + + +echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + +
    + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_admin_web_logo.gif b/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_admin_web_logo.gif new file mode 100644 index 00000000..8c5a9d22 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_admin_web_logo.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_admin_web_logo_small.gif b/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_admin_web_logo_small.gif new file mode 100644 index 00000000..95738d49 Binary files /dev/null and b/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_admin_web_logo_small.gif differ diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_sales_viewer.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_sales_viewer.php new file mode 100644 index 00000000..3ad853a9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/vicidial_sales_viewer.php @@ -0,0 +1,258 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 80310-1500 - first build +# 90310-2135 - Added admin header +# 90508-0644 - Changed to PHP long tags +# + +if (isset($_GET["dcampaign"])) {$dcampaign=$_GET["dcampaign"];} + elseif (isset($_POST["dcampaign"])) {$dcampaign=$_POST["dcampaign"];} +if (isset($_GET["submit_report"])) {$submit_report=$_GET["submit_report"];} + elseif (isset($_POST["submit_report"])) {$submit_report=$_POST["submit_report"];} +if (isset($_GET["list_ids"])) {$list_ids=$_GET["list_ids"];} + elseif (isset($_POST["list_ids"])) {$list_ids=$_POST["list_ids"];} +if (isset($_GET["sales_number"])) {$sales_number=$_GET["sales_number"];} + elseif (isset($_POST["sales_number"])) {$sales_number=$_POST["sales_number"];} +if (isset($_GET["sales_time_frame"])) {$sales_time_frame=$_GET["sales_time_frame"];} + elseif (isset($_POST["sales_time_frame"])) {$sales_time_frame=$_POST["sales_time_frame"];} +if (isset($_GET["forc"])) {$forc=$_GET["forc"];} + elseif (isset($_POST["forc"])) {$forc=$_POST["forc"];} + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; + +$PHP_AUTH_PW = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_PW); +$PHP_AUTH_USER = ereg_replace("'|\"|\\\\|;","",$PHP_AUTH_USER); + +$stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7 and view_reports='1';"; +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 or no export report permission: |$PHP_AUTH_USER|\n"; + exit; + } + + +?> + + +Recent Sales Lookup + + + + + +
    "; +?> + +
    + + + + + + + + + + + + + + + + + + + + + +
    Vicidial OUTBOUND recent sales report               Back to Admin +
    + + + + + + + + + + +
    Select a campaign:
    Select list ID(s) # (optional):
    +
    View sales made within the last OR...View the last sales**
    (If you enter values in both fields, the results will be limited by the first criteria met)
    Campaign is:    Transfer  Non-transfer
    ** - sorted by call date
    +
    +0)) { $list_id_clause.="$lists[$i], "; } + } + $list_id_clause=substr($list_id_clause, 0, -2); + $list_id_clause.=")"; + + if ($sales_number && $sales_number>0) { + $sales_number=eregi_replace("[^0-9]", "", $sales_number); + $limit_clause="limit $sales_number"; + } else { + $sales_number=0; + $limit_clause=""; + } + if ($sales_time_frame && $sales_time_frame>0) { + $hours=$sales_time_frame/60; + $timestamp=date("YmdHis", mktime(date("H"),(date("i")-$sales_time_frame),date("s"),date("m"),date("d"),date("Y"))); + } else { + $timestamp=date("YmdHis", mktime(date("H"),date("i"),date("s"),date("m"),(date("d")-1),date("Y"))); + $hours=24; + } + print "
    "; + print ""; + $i=0; + + $dfile=fopen("discover_stmts.txt", "w"); + if ($forc=="C") { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, u.full_name from vicidial_users u, vicidial_list v, vicidial_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause and vl.user=u.user order by call_date desc $limit_clause"; + } else { + $stmt="select v.first_name, v.last_name, v.phone_number, vl.call_date, v.lead_id, vl.user, vl.closer from vicidial_list v, vicidial_xfer_log vl where vl.call_date>='$timestamp' and vl.lead_id=v.lead_id and v.status='SALE' $list_id_clause order by call_date desc $limit_clause"; + } + fwrite($dfile, "$stmt\n"); + $rslt=mysql_query($stmt, $link); + $q=0; + print "\n"; + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + while ($row=mysql_fetch_row($rslt)) { + $rec_stmt="select max(recording_id) from recording_log where lead_id='$row[4]'"; + $rec_rslt=mysql_query($rec_stmt, $link); + $rec_row=mysql_fetch_row($rec_rslt); + + if ($forc=="F") { + $rep_stmt="select full_name from vicidial_users where user='$row[5]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $fr_row=mysql_fetch_array($rep_rslt); + + $rep_stmt="select full_name from vicidial_users where user='$row[6]'"; + $rep_rslt=mysql_query($rep_stmt, $link); + $cl_row=mysql_fetch_array($rep_rslt); + + $rep_name="$fr_row[full_name]/$cl_row[full_name]"; + } else { + $rep_name=$row[5]; + } + + if ($i%2==0) {$bgcolor="#999999";} else {$bgcolor="#CCCCCC";} + print "\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\t\n"; + print "\n"; + flush(); + } + print "
    Last ".mysql_num_rows($rslt)." sales made
    Sales Rep(s)Customer NamePhoneRecording IDTimestamp
    $rep_name$row[0] $row[1]$row[2]$rec_row[0]$row[3]
    "; + passthru("$WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign"); +# print "\n\n
    $WeBServeRRooT/vicidial/spreadsheet_sales_viewer.pl $list_ids $sales_number $timestamp $forc $now $dcampaign
    \n"; + flush(); + print ""; + if ($forc=="F") { + print ""; + } + print ""; + print "
    View complete Excel fronter report for this shiftView complete Excel sales report for this shift
    "; +} +?> + +
    + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/voice_lab.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/voice_lab.php new file mode 100644 index 00000000..8b9621f6 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/voice_lab.php @@ -0,0 +1,313 @@ + LICENSE: AGPLv2 +# +# +# CHANGES +# +# 61220-1050 - First Build +# 70115-1246 - Added ability to define an exten to play +# 90508-0644 - Changed to PHP long tags +# + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["message"])) {$message=$_GET["message"];} + elseif (isset($_POST["message"])) {$message=$_POST["message"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["campaign_id"])) {$campaign_id=$_GET["campaign_id"];} + elseif (isset($_POST["campaign_id"])) {$campaign_id=$_POST["campaign_id"];} +if (isset($_GET["NEW_VOICE_LAB"])) {$NEW_VOICE_LAB=$_GET["NEW_VOICE_LAB"];} + elseif (isset($_POST["NEW_VOICE_LAB"])) {$NEW_VOICE_LAB=$_POST["NEW_VOICE_LAB"];} +if (isset($_GET["KILL_VOICE_LAB"])) {$KILL_VOICE_LAB=$_GET["KILL_VOICE_LAB"];} + elseif (isset($_POST["KILL_VOICE_LAB"])) {$KILL_VOICE_LAB=$_POST["KILL_VOICE_LAB"];} +if (isset($_GET["PLAY_MESSAGE"])) {$PLAY_MESSAGE=$_GET["PLAY_MESSAGE"];} + elseif (isset($_POST["PLAY_MESSAGE"])) {$PLAY_MESSAGE=$_POST["PLAY_MESSAGE"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["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"); +$TODAY = date("Y-m-d"); +$MYSQL_datetime = date("Y-m-d H:i:s"); +$FILE_datetime = date("Ymd-His_"); +$secX = $STARTtime; + +$local_DEF = 'Local/'; +$local_AMP = '@'; +$ext_context = 'demo'; + + $stmt="SELECT count(*) from vicidial_users where user='$PHP_AUTH_USER' and pass='$PHP_AUTH_PW' and user_level > 7;"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $auth=$row[0]; + +$fp = fopen ("./project_auth_entries.txt", "a"); +$date = date("r"); +$ip = getenv("REMOTE_ADDR"); +$browser = getenv("HTTP_USER_AGENT"); + + 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; + } + else + { + + 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'"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $LOGfullname=$row[0]; + fwrite ($fp, "VICIDIAL|GOOD|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|$LOGfullname|\n"); + fclose($fp); + } + else + { + fwrite ($fp, "VICIDIAL|FAIL|$date|$PHP_AUTH_USER|$PHP_AUTH_PW|$ip|$browser|\n"); + fclose($fp); + } + + $stmt="SELECT full_name from vicidial_users where user='$user';"; + $rslt=mysql_query($stmt, $link); + $row=mysql_fetch_row($rslt); + $full_name = $row[0]; + + } + + +##### get server listing for dynamic pulldown +$stmt="SELECT server_ip,server_description from servers order by server_ip"; +$rslt=mysql_query($stmt, $link); +$servers_to_print = mysql_num_rows($rslt); +$servers_list=''; + +$o=0; +while ($servers_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $servers_list .= "\n"; + $o++; + } + +##### get campaigns listing for dynamic pulldown +$stmt="SELECT campaign_id,campaign_name from vicidial_campaigns order by campaign_id"; +$rslt=mysql_query($stmt, $link); +$campaigns_to_print = mysql_num_rows($rslt); +$campaigns_list=''; + +$o=0; +while ($campaigns_to_print > $o) + { + $rowx=mysql_fetch_row($rslt); + $campaigns_list .= "\n"; + $o++; + } + + + + +?> + + +VICIDIAL VOICE LAB: Admin +\n"; +?> + + +
    + + 0) +{ + if ( (strlen($server_ip) > 6) && (strlen($session_id) > 6) && (strlen($campaign_id) > 2) ) + { + echo "


    TO START YOUR VOICE LAB, DIAL 9$session_id ON YOUR PHONE NOW
    \n"; + + echo "
    or, you can enter an extension that you want played below
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Message Extension\n"; + echo "\n"; + echo "



    \n"; + + $S='*'; + $D_s_ip = explode('.', $server_ip); + if (strlen($D_s_ip[0])<2) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[0])<3) {$D_s_ip[0] = "0$D_s_ip[0]";} + if (strlen($D_s_ip[1])<2) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[1])<3) {$D_s_ip[1] = "0$D_s_ip[1]";} + if (strlen($D_s_ip[2])<2) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[2])<3) {$D_s_ip[2] = "0$D_s_ip[2]";} + if (strlen($D_s_ip[3])<2) {$D_s_ip[3] = "0$D_s_ip[3]";} + if (strlen($D_s_ip[3])<3) {$D_s_ip[3] = "0$D_s_ip[3]";} + $remote_dialstring = "$D_s_ip[0]$S$D_s_ip[1]$S$D_s_ip[2]$S$D_s_ip[3]$S$session_id"; + + $thirty_minutes_old = mktime(date("H"), date("i"), date("s")-30, date("m"), date("d"), date("Y")); + $past_thirty = date("Y-m-d H:i:s",$thirty_minutes_old); + + $stmt="SELECT conf_exten,server_ip,user from vicidial_live_agents where last_update_time > '$past_thirty' and campaign_id='$campaign_id';"; + $rslt=mysql_query($stmt, $link); + $agents_to_loop = mysql_num_rows($rslt); + $agents_sessions[0]=''; + $agents_servers[0]=''; + $agents_users[0]=''; + + $o=0; + while ($agents_to_loop > $o) + { + $rowx=mysql_fetch_row($rslt); + $agents_sessions[$o] = "$rowx[0]"; + $agents_servers[$o] = "$rowx[1]"; + $agents_users[$o] = "$rowx[2]"; + $o++; + } + + $o=0; + while ($agents_to_loop > $o) + { + if ($agents_servers[$o] == "$server_ip") + {$dial_string = $session_id;} + else + {$dial_string = $remote_dialstring;} + + $stmt="INSERT INTO vicidial_manager values('','','$MYSQL_datetime','NEW','N','$agents_servers[$o]','','Originate','VL$FILE_datetime$o','Channel: $local_DEF$dial_string$local_AMP$ext_context','Context: $ext_context','Exten: $agents_sessions[$o]','Priority: 1','Callerid: VL$FILE_datetime$o','','','','','')"; + echo "|$stmt|\n

    \n"; + $rslt=mysql_query($stmt, $link); + + echo "LOGGED IN USER $agents_users[$o] at session $agents_sessions[$o] on server $agents_servers[$o]\n"; + + $o++; + } + + + + echo "
    Kill a Voice Lab Session: 8600900
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "



    \n"; + } + else + { + echo "ERROR!!!! Not all info entered properly\n

    \n"; + echo "|$server_ip| |$session_id| |$campaign_id|\n

    \n"; + echo "Back to main voicelab screen\n

    \n"; + } +} +else +{ + if ($PLAY_MESSAGE > 0) + { + if ( (strlen($server_ip) > 6) && (strlen($session_id) > 6) && (strlen($campaign_id) > 2) && (strlen($message) > 0) ) + { + echo "


    TO START YOUR VOICE LAB, DIAL 9$session_id ON YOUR PHONE NOW
    \n"; + + echo "
    or, you can enter an extension that you want played below
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "Message Extension\n"; + echo "\n"; + echo "



    \n"; + + $nn='99'; + $n='9'; + + $stmt="INSERT INTO vicidial_manager values('','','$MYSQL_datetime','NEW','N','$server_ip','','Originate','VL$FILE_datetime$nn','Channel: $local_DEF$n$session_id$local_AMP$ext_context','Context: $ext_context','Exten: $message','Priority: 1','Callerid: VL$FILE_datetime$nn','','','','','')"; + echo "|$stmt|\n

    \n"; + $rslt=mysql_query($stmt, $link); + + echo "MESSAGE $message played at session $session_id on server $server_ip\n"; + + echo "
    Kill a Voice Lab Session: 8600900
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "



    \n"; + } + else + { + echo "ERROR!!!! Not all info entered properly\n

    \n"; + echo "|$server_ip| |$session_id| |$campaign_id|\n

    \n"; + echo "Back to main voicelab screen\n

    \n"; + } + } +else + { + echo "
    Start a Voice Lab Session: 8600900
    \n"; + echo "\n"; + echo "\n"; + echo "Your Server: \n"; + echo "
    \n"; + echo "Campaign: "; + echo "
    \n"; + echo "\n"; + echo "



    \n"; + + + echo "
    Kill a Voice Lab Session: 8600900
    \n"; + echo "\n"; + echo "\n"; + echo "Your Server: \n"; + echo "
    \n"; + echo "Campaign: "; + echo "
    \n"; + echo "\n"; + echo "



    \n"; + } +} + + +if ($KILL_VOICE_LAB > 1) +{ + if ( (strlen($server_ip) > 6) && (strlen($session_id) > 6) && (strlen($campaign_id) > 2) ) + { + $kill_dial_string = "5555$session_id"; + $hangup_exten='8300'; + $stmt="INSERT INTO vicidial_manager values('','','$MYSQL_datetime','NEW','N','$server_ip','','Originate','VLK$FILE_datetime','Channel: $local_DEF$kill_dial_string$local_AMP$ext_context','Context: $ext_context','Exten: $hangup_exten','Priority: 1','Callerid: VLK$FILE_datetime','','','','','')"; + echo "|$stmt|\n

    \n"; + $rslt=mysql_query($stmt, $link); + + echo "VOICELAB SESSION KILLED: $session_id at $server_ip | $KILL_VOICE_LAB\n"; + } + else + { + echo "ERROR!!!! Not all info entered properly\n

    \n"; + echo "|$server_ip| |$session_id| |$campaign_id|\n

    \n"; + echo "Back to main voicelab screen\n

    \n"; + } + +} + +?> + + \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/vtiger_search.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/vtiger_search.php new file mode 100644 index 00000000..6636a431 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/vtiger_search.php @@ -0,0 +1,885 @@ + LICENSE: AGPLv2 +# +# This page does a search against a standard vtiger CRM system. If the record +# is not present, it will create a new one and send the agent's screen to that new page. +# +# This code is tested against vtiger 5.0.4 and 5.1.0 +# +# CHANGES +# 60719-1615 - First version +# 60801-2304 - Added mysql debug and auto-forward +# 60802-1111 - Added insertion of not-found record into vtiger system +# 71220-0000 - Modified by I. Taushanov for VTiger 5.03- search/create lead +# 80120-1934 - Added changes for compatibility with vtiger 5.0.3 +# 81229-1017 - Added usage of system_settings connection settings for vtiger database +# 81229-1441 - Added options for searching by ACCTID, ACCOUNT, VENDOR and LEAD +# 90111-1451 - Added logging of call as activity for account/lead +# 90112-0336 - Added create call and create lead options +# 90323-2104 - Added deleted account/lead check and reactivation from campaign option +# 91228-1751 - Added UNIFIED_CONTACT search option +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; +if (isset($_GET["address1"])) {$address1=$_GET["address1"];} + elseif (isset($_POST["address1"])) {$address1=$_POST["address1"];} +if (isset($_GET["address2"])) {$address2=$_GET["address2"];} + elseif (isset($_POST["address2"])) {$address2=$_POST["address2"];} +if (isset($_GET["address3"])) {$address3=$_GET["address3"];} + elseif (isset($_POST["address3"])) {$address3=$_POST["address3"];} +if (isset($_GET["alt_phone"])) {$alt_phone=$_GET["alt_phone"];} + elseif (isset($_POST["alt_phone"])) {$alt_phone=$_POST["alt_phone"];} +if (isset($_GET["call_began"])) {$call_began=$_GET["call_began"];} + elseif (isset($_POST["call_began"])) {$call_began=$_POST["call_began"];} +if (isset($_GET["campaign"])) {$campaign=$_GET["campaign"];} + elseif (isset($_POST["campaign"])) {$campaign=$_POST["campaign"];} +if (isset($_GET["channel"])) {$channel=$_GET["channel"];} + elseif (isset($_POST["channel"])) {$channel=$_POST["channel"];} +if (isset($_GET["channel_group"])) {$channel_group=$_GET["channel_group"];} + elseif (isset($_POST["channel_group"])) {$channel_group=$_POST["channel_group"];} +if (isset($_GET["city"])) {$city=$_GET["city"];} + elseif (isset($_POST["city"])) {$city=$_POST["city"];} +if (isset($_GET["comments"])) {$comments=$_GET["comments"];} + elseif (isset($_POST["comments"])) {$comments=$_POST["comments"];} +if (isset($_GET["country_code"])) {$country_code=$_GET["country_code"];} + elseif (isset($_POST["country_code"])) {$country_code=$_POST["country_code"];} +if (isset($_GET["customer_zap_channel"])) {$customer_zap_channel=$_GET["customer_zap_channel"];} + elseif (isset($_POST["customer_zap_channel"])) {$customer_zap_channel=$_POST["customer_zap_channel"];} +if (isset($_GET["DB"])) {$DB=$_GET["DB"];} + elseif (isset($_POST["DB"])) {$DB=$_POST["DB"];} +if (isset($_GET["dispo"])) {$dispo=$_GET["dispo"];} + elseif (isset($_POST["dispo"])) {$dispo=$_POST["dispo"];} +if (isset($_GET["email"])) {$email=$_GET["email"];} + elseif (isset($_POST["email"])) {$email=$_POST["email"];} +if (isset($_GET["end_call"])) {$end_call=$_GET["end_call"];} + elseif (isset($_POST["end_call"])) {$end_call=$_POST["end_call"];} +if (isset($_GET["extension"])) {$extension=$_GET["extension"];} + elseif (isset($_POST["extension"])) {$extension=$_POST["extension"];} +if (isset($_GET["first_name"])) {$first_name=$_GET["first_name"];} + elseif (isset($_POST["first_name"])) {$first_name=$_POST["first_name"];} +if (isset($_GET["group"])) {$group=$_GET["group"];} + elseif (isset($_POST["group"])) {$group=$_POST["group"];} +if (isset($_GET["last_name"])) {$last_name=$_GET["last_name"];} + elseif (isset($_POST["last_name"])) {$last_name=$_POST["last_name"];} +if (isset($_GET["lead_id"])) {$lead_id=$_GET["lead_id"];} + elseif (isset($_POST["lead_id"])) {$lead_id=$_POST["lead_id"];} +if (isset($_GET["list_id"])) {$list_id=$_GET["list_id"];} + elseif (isset($_POST["list_id"])) {$list_id=$_POST["list_id"];} +if (isset($_GET["parked_time"])) {$parked_time=$_GET["parked_time"];} + elseif (isset($_POST["parked_time"])) {$parked_time=$_POST["parked_time"];} +if (isset($_GET["pass"])) {$pass=$_GET["pass"];} + elseif (isset($_POST["pass"])) {$pass=$_POST["pass"];} +if (isset($_GET["phone_code"])) {$phone_code=$_GET["phone_code"];} + elseif (isset($_POST["phone_code"])) {$phone_code=$_POST["phone_code"];} +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} + elseif (isset($_POST["phone_number"])) {$phone_number=$_POST["phone_number"];} +if (isset($_GET["phone"])) {$phone=$_GET["phone"];} + elseif (isset($_POST["phone"])) {$phone=$_POST["phone"];} +if (isset($_GET["postal_code"])) {$postal_code=$_GET["postal_code"];} + elseif (isset($_POST["postal_code"])) {$postal_code=$_POST["postal_code"];} +if (isset($_GET["province"])) {$province=$_GET["province"];} + elseif (isset($_POST["province"])) {$province=$_POST["province"];} +if (isset($_GET["security"])) {$security=$_GET["security"];} + elseif (isset($_POST["security"])) {$security=$_POST["security"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["server_ip"])) {$server_ip=$_GET["server_ip"];} + elseif (isset($_POST["server_ip"])) {$server_ip=$_POST["server_ip"];} +if (isset($_GET["session_id"])) {$session_id=$_GET["session_id"];} + elseif (isset($_POST["session_id"])) {$session_id=$_POST["session_id"];} +if (isset($_GET["state"])) {$state=$_GET["state"];} + elseif (isset($_POST["state"])) {$state=$_POST["state"];} +if (isset($_GET["status"])) {$status=$_GET["status"];} + elseif (isset($_POST["status"])) {$status=$_POST["status"];} +if (isset($_GET["tsr"])) {$tsr=$_GET["tsr"];} + elseif (isset($_POST["tsr"])) {$tsr=$_POST["tsr"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + elseif (isset($_POST["user"])) {$user=$_POST["user"];} +if (isset($_GET["vendor_id"])) {$vendor_id=$_GET["vendor_id"];} + elseif (isset($_POST["vendor_id"])) {$vendor_id=$_POST["vendor_id"];} +if (isset($_GET["submit"])) {$submit=$_GET["submit"];} + elseif (isset($_POST["submit"])) {$submit=$_POST["submit"];} +if (isset($_GET["SUBMIT"])) {$SUBMIT=$_GET["SUBMIT"];} + elseif (isset($_POST["SUBMIT"])) {$SUBMIT=$_POST["SUBMIT"];} + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$HHMMnow = date("H:i"); +$minute_old = mktime(date("H"), date("i")+5, date("s"), date("m"), date("d"), date("Y")); +$HHMMend = date("H:i",$minute_old); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger Lookup\n"; +echo "\n"; + + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +$stmt = "SELECT vtiger_search_category,vtiger_create_call_record,vtiger_create_lead_record,vtiger_search_dead FROM vicidial_campaigns where campaign_id='$campaign';"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$vtc_conf_ct = mysql_num_rows($rslt); +if ($vtc_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $vtiger_search_category = $row[0]; + $vtiger_create_call_record = $row[1]; + $vtiger_create_lead_record = $row[2]; + $vtiger_search_dead = $row[3]; + } +if (strlen($vtiger_search_category)<1) + {$vtiger_search_category = 'LEAD';} + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo 'Connected successfully'; +mysql_select_db("$vtiger_dbname", $linkV); + +# Methods of searching for records: +# +# ACCTID: +# $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; +# +# ACCOUNT: +# $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; +# $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; +# +# VENDOR: +# $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; +# +# LEAD: +# $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + +$lead_search=0; $account_search=0; $vendor_search=0; $acctid_search=0; $unified_contact=0; + +if (ereg('ACCTID',$vtiger_search_category)) {$acctid_search=1;} +if (ereg('ACCOUNT',$vtiger_search_category)) {$account_search=1;} +if (ereg('VENDOR',$vtiger_search_category)) {$vendor_search=1;} +if (ereg('LEAD',$vtiger_search_category)) {$lead_search=1;} +if (ereg('UNIFIED_CONTACT',$vtiger_search_category)) {$unified_contact=1;} + + + +########################################################################## +##### BEGIN - UNIFIED_CONTACT - Search using beta 5.1.0 unified search feature +########################################################################## +if ($unified_contact > 0) + { + $unified_contact_URL = "$vtiger_url/index.php?action=UnifiedSearch&module=Home&search_module=Contacts&query_string=$phone&_service=vicidial"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +	echo "Forwarding to Vtiger Unified Contact Search page...\n";
    +	echo "phone number:   $phone\n";
    +	echo "

    "; + exit; + } +########################################################################## +##### END - UNIFIED_CONTACT +########################################################################## + + + +########################################################################## +##### BEGIN - ACCTID - Search in the account records for accountid number +########################################################################## +if ($acctid_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where accountid='$vendor_id';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nACCTID|$vendor_id|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$vendor_id' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$vendor_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$vendor_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $vendor_id',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$vendor_id&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$vendor_id&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +			echo "account found! ACCTID\n";
    +			echo "accountid:   $vendor_id\n";
    +			echo "

    "; + exit; + } + } + } +########################################################################## +##### END - ACCTID - Search in the account records for accountid number +########################################################################## + + +########################################################################## +##### BEGIN - ACCOUNT - Search in the account records for phone number +########################################################################## +if ($account_search > 0) + { + $stmt="SELECT count(*) from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nACCOUNT|$phone|$found_count|vtiger_account\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nACCOUNT|$phone|$found_count|vtiger_contactdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + + $stmt="SELECT count(*) from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nACCOUNT|$phone|$found_count|vtiger_contactsubdetails\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_contact + $stmt="SELECT contactsubscriptionid from vtiger_contactsubdetails where homephone='$phone' or otherphone='$phone' or assistantphone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $contactid = $row[0]; + + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where contactid='$contactid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_contactdetails where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + } + else + { + # find vtiger_account + $stmt="SELECT accountid from vtiger_account where phone='$phone' or otherphone='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $accountid = $row[0]; + } + if (strlen($accountid) > 0) + { + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$accountid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$accountid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$accountid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Account call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL User $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$accountid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Accounts&action=DetailView&record=$accountid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +			echo "account found! ACCOUNT\n";
    +			echo "accountid:   $accountid\n";
    +			echo "phone:       $phone\n";
    +			echo "

    "; + exit; + } + } + } +########################################################################## +##### END - ACCOUNT - Search in the account records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - VENDOR - Search in the vendor records for phone number +########################################################################## +if ($vendor_search > 0) + { + $stmt="SELECT count(*) from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nVENDOR|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + } + else + { + # find vtiger_vendor + $stmt="SELECT vendorid from vtiger_vendor where phone='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $vendorid = $row[0]; + + # http://mysite.com/vtigercrm/index.php?module=Vendors&action=DetailView&record=2&parenttab=Inventory + $account_URL = "$vtiger_url/index.php?module=Vendors&action=DetailView&record=$vendorid&parenttab=Inventory"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +		echo "account found! VENDOR\n";
    +		echo "vendorid:   $vendorid\n";
    +		echo "phone:       $phone\n";
    +		echo "

    "; + exit; + } + } +########################################################################## +##### END - VENDOR - Search in the vendor records for phone number +########################################################################## + + +########################################################################## +##### BEGIN - LEAD - Search in the leads records for phone number +########################################################################## +if ($lead_search > 0) + { + $stmt="SELECT count(*) from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + if ($DB) {echo "
    \nLEAD|$phone|$found_count|\n";} + + if ($found_count < 1) + { + echo "\n"; + if (ereg('Y',$vtiger_create_lead_record)) + { + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "$phone not found, creating account...\n"; + + $DB=1; + + #Get logged in user ID + if ($DB) {echo "
    ";}
    +			$stmt="SELECT id from vtiger_users where user_name='$user';";
    +			if ($DB) {echo "$stmt\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			$row=mysql_fetch_row($rslt);
    +			$user_id = $row[0];
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +			
    +			#Vtiger no longer use auto increment for vtiger_crmentity crmid, vtiger_crmentity_seq is used instead to list next aviable entity ID
    +			# Get next aviable id to use as  crmid in vtiger_crmentity	
    +			$stmt="SELECT id from vtiger_crmentity_seq ;";
    +			if ($DB) {echo "$stmt\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			$row=mysql_fetch_row($rslt);
    +			$leadid = ($row[0] + 1);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			# Increase 	next aviable crmid with 1 so next record gets proper id
    +			$stmt="UPDATE vtiger_crmentity_seq SET id = '$leadid';";
    +			if ($DB) {echo "$stmt\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +			
    +			#Insert values into vtiger_crmentity
    +			$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$leadid', '$user_id', '$user_id','$user_id', 'Leads', '(Memo)', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if ($DB) {echo "|$leadid|\n";}
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			#Insert values into vtiger_leaddetails	
    +			$stmt = "INSERT INTO vtiger_leaddetails (leadid,firstname,lastname,company) values('$leadid','$first_name','$last_name','$first_name $last_name');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			#Insert values into vtiger_leaddetails
    +			$stmt = "INSERT INTO vtiger_leadaddress (leadaddressid,city,code,state,country,phone,mobile,lane) values('$leadid','$city','$postal_code','$province','$country','$phone','$alt_phone','$address1 $address2');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			#Insert values into vtiger_leadsubdetails	
    +			$stmt = "INSERT INTO vtiger_leadsubdetails (leadsubscriptionid) VALUES ('$leadid');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +			
    +			#Insert values into vtiger_leadscf, these are custom created fields example	
    +			$stmt = "INSERT INTO vtiger_leadscf (leadid) VALUES ('$leadid');";
    +			if ($DB) {echo "|$stmt|\n";}
    +			$rslt=mysql_query($stmt, $linkV);
    +			if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +			if ($DB) {echo "DONE creating lead records\n";}
    +
    +			if (ereg('Y',$vtiger_create_call_record))
    +				{
    +				### Log the call in Vtiger
    +
    +				#Get logged in user ID
    +				$stmt="SELECT id from vtiger_users where user_name='$user';";
    +				if ($DB) {echo "$stmt\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				$row=mysql_fetch_row($rslt);
    +				$user_id = $row[0];
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +				
    +				# Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity	
    +				$stmt="SELECT id from vtiger_crmentity_seq ;";
    +				if ($DB) {echo "$stmt\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				$row=mysql_fetch_row($rslt);
    +				$activityid = ($row[0] + 1);
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +				# Increase next aviable crmid with 1 so next record gets proper id
    +				$stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';";
    +				if ($DB) {echo "$stmt\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +				
    +				#Insert values into vtiger_salesmanactivityrel
    +				$stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';";
    +				if ($DB) {echo "|$stmt|\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if ($DB) {echo "|$leadid|\n";}
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +				
    +				#Insert values into vtiger_seactivityrel
    +				$stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';";
    +				if ($DB) {echo "|$stmt|\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if ($DB) {echo "|$leadid|\n";}
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +				
    +				#Insert values into vtiger_crmentity
    +				$stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');";
    +				if ($DB) {echo "|$stmt|\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if ($DB) {echo "|$leadid|\n";}
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +				#Insert values into vtiger_activity
    +				$stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';";
    +				if ($DB) {echo "|$stmt|\n";}
    +				$rslt=mysql_query($stmt, $linkV);
    +				if ($DB) {echo "|$leadid|\n";}
    +				if (!$rslt) {die('Could not execute: ' . mysql_error());}
    +
    +
    +				# http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales
    +				$account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales";
    +				}
    +			else
    +				{
    +				# http://mysite.com/vtigercrm/index.php?module=Accounts&action=EditView&record=2&parenttab=Sales
    +				$account_URL = "$vtiger_url/index.php?module=Leads&action=EditView&record=$leadid&parenttab=Sales";
    +				}
    +
    +			echo "\n";
    +			echo "\n";
    +			echo "\n";
    +			echo "
    \n"; + + echo "
    ";
    +			echo "account created! LEAD\n";
    +			echo "leadid:   $leadid\n";
    +			echo "phone:       $phone\n";
    +			echo "

    "; + exit; + } + } + else + { + $stmt="SELECT leadaddressid from vtiger_leadaddress where phone='$phone' or mobile='$phone' or fax='$phone';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + $row=mysql_fetch_row($rslt); + $leadid = $row[0]; + + $stmt="SELECT count(*) from vtiger_crmentity where crmid='$leadid' and deleted='1';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $deleted_count = $row[0]; + if ( ($deleted_count > 0) and (ereg('DISABLED',$vtiger_search_dead)) ) + { + echo "\n"; + } + else + { + if ( ($deleted_count > 0) and ( (ereg('RESURRECT',$vtiger_search_dead)) or (ereg('ASK',$vtiger_search_dead)) ) ) + { + # un-delete the record + $stmt="UPDATE vtiger_crmentity SET deleted='0' where crmid='$leadid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "\n"; + } + + if (ereg('Y',$vtiger_create_call_record)) + { + ### Log the call in Vtiger + + #Get logged in user ID + $stmt="SELECT id from vtiger_users where user_name='$user';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $user_id = $row[0]; + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Get next aviable id from vtiger_crmentity_seq to use as activityid in vtiger_crmentity + $stmt="SELECT id from vtiger_crmentity_seq ;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $activityid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + # Increase next aviable crmid with 1 so next record gets proper id + $stmt="UPDATE vtiger_crmentity_seq SET id = '$activityid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_salesmanactivityrel + $stmt = "INSERT INTO vtiger_salesmanactivityrel SET smid='$user_id',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_seactivityrel + $stmt = "INSERT INTO vtiger_seactivityrel SET crmid='$leadid',activityid='$activityid';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_crmentity + $stmt = "INSERT INTO vtiger_crmentity (crmid, smcreatorid, smownerid, modifiedby, setype, description, createdtime, modifiedtime, viewedtime, status, version, presence, deleted) VALUES ('$activityid', '$user_id', '$user_id','$user_id', 'Calendar', 'VICIDIAL Call user $user', '$NOW_TIME', '$NOW_TIME', '$NOW_TIME', NULL, '0', '1', '0');"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + #Insert values into vtiger_activity + $stmt = "INSERT INTO vtiger_activity SET activityid='$activityid',subject='VICIDIAL Lead call $phone',activitytype='Call',date_start='$TODAY',due_date='$TODAY',time_start='$HHMMnow',time_end='$HHMMend',sendnotification='0',duration_hours='0',duration_minutes='1',status='',eventstatus='Held',priority='Medium',location='VICIDIAL user $user',notime='0',visibility='Public',recurringtype='--None--';"; + if ($DB) {echo "|$stmt|\n";} + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "|$leadid|\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + + # http://mysite.com/vtigercrm/index.php?module=Calendar&action=EditView&return_module=Accounts&return_action=DetailView&record=16&activity_mode=Events&return_id=9&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Calendar&action=EditView&return_module=Leads&return_action=DetailView&record=$activityid&activity_mode=Events&return_id=$leadid&parenttab=Sales"; + } + else + { + # http://mysite.com/vtigercrm/index.php?module=Accounts&action=DetailView&record=2&parenttab=Sales + $account_URL = "$vtiger_url/index.php?module=Leads&action=DetailView&record=$leadid&parenttab=Sales"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + + echo "
    ";
    +			echo "lead found! LEAD\n";
    +			echo "leadid:   $leadid\n";
    +			echo "phone:       $phone\n";
    +			echo "

    "; + exit; + } + } + } +########################################################################## +##### END - LEAD - Search in the leads records for phone number +########################################################################## + + + + +$ENDtime = date("U"); + +$RUNtime = ($ENDtime - $STARTtime); + +echo "\n\n\n
    $phone NOT FOUND

    \n\n"; +echo "Click here to go to the Vtiger home page\n"; + +# echo "\n\n\n


    \nscript runtime: $RUNtime seconds
    "; + + +?> + + + + + + + + + + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/vtiger_user.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/vtiger_user.php new file mode 100644 index 00000000..f53a989a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/vtiger_user.php @@ -0,0 +1,317 @@ + LICENSE: AGPLv2 +# +# CHANGES +# 81231-1307 - First build +# 90228-2152 - Added Groups support +# 90508-0644 - Changed to PHP long tags +# + +header ("Content-type: text/html; charset=utf-8"); + +require("dbconnect.php"); + +$PHP_AUTH_USER=$_SERVER['PHP_AUTH_USER']; +$PHP_AUTH_PW=$_SERVER['PHP_AUTH_PW']; +$PHP_SELF=$_SERVER['PHP_SELF']; + + +#$DB = '1'; # DEBUG override +$US = '_'; +$STARTtime = date("U"); +$TODAY = date("Y-m-d"); +$NOW_TIME = date("Y-m-d H:i:s"); +$REC_TIME = date("Ymd-His"); +$FILE_datetime = $STARTtime; +$parked_time = $STARTtime; + +############################################################### +##### START SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +$stmt = "SELECT enable_vtiger_integration,vtiger_server_ip,vtiger_dbname,vtiger_login,vtiger_pass,vtiger_url FROM system_settings;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$ss_conf_ct = mysql_num_rows($rslt); +if ($ss_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_vtiger_integration = $row[0]; + $vtiger_server_ip = $row[1]; + $vtiger_dbname = $row[2]; + $vtiger_login = $row[3]; + $vtiger_pass = $row[4]; + $vtiger_url = $row[5]; + } +##### END SYSTEM_SETTINGS VTIGER CONNECTION INFO LOOKUP ##### +############################################################# + +echo "\n"; +echo "\n"; +echo "VICIDIAL Vtiger user synchronization utility\n"; +echo "\n"; + +if ($enable_vtiger_integration < 1) + { + echo "ERROR! - Vtiger integration is disabled in the VICIDIAL system_settings"; + exit; + } + +##### grab the existing user_groups in the vicidial_user_groups table +$stmt="SELECT user_group,group_name FROM vicidial_user_groups;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_groups_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_groups_ct) + { + $row=mysql_fetch_row($rslt); + $UGid[$i] = $row[0]; + $UGname[$i] = $row[1]; + $i++; + } + +##### grab the existing users in the vicidial_users table +$stmt="SELECT user,pass,full_name,user_level,active,user_group FROM vicidial_users;"; +$rslt=mysql_query($stmt, $link); +if ($DB) {echo "$stmt\n";} +$VD_users_ct = mysql_num_rows($rslt); +$i=0; +while ($i < $VD_users_ct) + { + $row=mysql_fetch_row($rslt); + $user[$i] = $row[0]; + $pass[$i] = $row[1]; + $full_name[$i] = $row[2]; while (strlen($full_name[$i])>30) {$full_name[$i] = eregi_replace(".$",'',$full_name[$i]);} + $user_level[$i] = $row[3]; + $active[$i] = $row[4]; + $user_group[$i] = $row[5]; + $i++; + } + + +### connect to your vtiger database +$linkV=mysql_connect("$vtiger_server_ip", "$vtiger_login","$vtiger_pass"); +if (!$linkV) {die("Could not connect: $vtiger_server_ip|$vtiger_dbname|$vtiger_login|$vtiger_pass" . mysql_error());} +echo "Connected successfully\n
    \n"; +mysql_select_db("$vtiger_dbname", $linkV); + + +########################## +### BEGIN Group export +$i=0; +while ($i < $VD_groups_ct) + { + $VTgroup_name = $UGid[$i]; + $VTgroup_description = $UGname[$i]; + + $stmt="SELECT count(*) from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $group_found_count = $row[0]; + + ### group exists in vtiger, grab groupid, update description + if ($group_found_count > 0) + { + $stmt="SELECT groupid from vtiger_groups where groupname='$VTgroup_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $groupid = $row[0]; + $VTugID[$i] = $groupid; + + $stmtA = "UPDATE vtiger_groups SET description='$VTgroup_description' where groupid='$groupid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
    \n"; + echo "
    \n"; + } + + ### group doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW GROUP RECORD IN VTIGER + + # Get next available id from vtiger_users_seq to use as groupid + $stmt="SELECT id from vtiger_users_seq;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + $row=mysql_fetch_row($rslt); + $groupid = ($row[0] + 1); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $VTugID[$i] = $groupid; + + # Increase next available groupid with 1 so next record gets proper id + $stmt="UPDATE vtiger_users_seq SET id = '$groupid';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtA = "INSERT INTO vtiger_groups SET groupid='$groupid',groupname='$VTgroup_name',description='$VTgroup_description';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "GROUP- $VTgroup_name: $groupid
    \n"; + echo "
    \n"; + #### END CREATE NEW GROUP RECORD IN VTIGER + } + $i++; + } +### END Group export +########################## + + + +########################## +### BEGIN User export +$i=0; +while ($i < $VD_users_ct) + { + $user_name = $user[$i]; + $VUgroup = $user_group[$i]; + $user_password = $pass[$i]; + $last_name = $full_name[$i]; + $is_admin = 'off'; + $roleid = 'H5'; + $status = 'Active'; + $groupid = '1'; + if ($user_level[$i] >= 7) {$roleid = 'H4';} + if ($user_level[$i] >= 8) {$roleid = 'H3';} + if ($user_level[$i] >= 9) {$roleid = 'H2';} + if ($user_level[$i] >= 9) {$is_admin = 'on';} + if (ereg('N',$active[$i])) {$status = 'Inactive';} + $salt = substr($user_name, 0, 2); + $salt = '$1$' . $salt . '$'; + $encrypted_password = crypt($user_password, $salt); + $i++; + + $j=0; + $all_VICIDIAL_groups_SQL=''; + while ($j < $VD_groups_ct) + { + if ( (eregi("$UGid[$j]",$VUgroup)) and ( (strlen($UGid[$j]))==(strlen($VUgroup)) ) ) + { + $groupid = $VTugID[$j]; + $VTgroup_name = $UGid[$j]; + $VTgroup_description = $UGname[$j]; + } + else + {$all_VICIDIAL_groups_SQL .= "'$VTugID[$j]',";} + $j++; + } + $all_VICIDIAL_groups_SQL = preg_replace("/.$/",'',$all_VICIDIAL_groups_SQL); + + $stmt="SELECT count(*) from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $found_count = $row[0]; + + ### user exists in vtiger, update it + if ($found_count > 0) + { + $stmt="SELECT id from vtiger_users where user_name='$user_name';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $userid = $row[0]; + + $stmt="SELECT count(*) from vtiger_users2group WHERE userid='$userid' and groupid='$groupid';"; + $rslt=mysql_query($stmt, $linkV); + if ($DB) {echo "$stmt\n";} + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $row=mysql_fetch_row($rslt); + $usergroupcount = $row[0]; + + $stmtA = "UPDATE vtiger_users SET user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status' where id='$userid';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtB = "UPDATE vtiger_user2role SET roleid='$roleid' where userid='$userid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + if ($usergroupcount < 1) + { + $stmtC = "DELETE FROM vtiger_users2group WHERE userid='$userid' and groupid IN($all_VICIDIAL_groups_SQL);"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + } + else + {$stmtC='';} + + echo "$user_name: $userid
    \n"; + echo "$stmtA
    \n"; + echo "$stmtB
    \n"; + echo "$stmtC
    \n"; + echo "$stmtD
    \n"; + echo "
    \n"; + + } + + ### user doesn't exist in vtiger, insert it + else + { + #### BEGIN CREATE NEW USER RECORD IN VTIGER + $stmtA = "INSERT INTO vtiger_users SET user_name='$user_name',user_password='$encrypted_password',last_name='$last_name',is_admin='$is_admin',status='$status',date_format='yyyy-mm-dd',first_name='',reports_to_id='',description='',title='',department='',phone_home='',phone_mobile='',phone_work='',phone_other='',phone_fax='',email1='',email2='',yahoo_id='',signature='',address_street='',address_city='',address_state='',address_country='',address_postalcode='',user_preferences='',imagename='';"; + if ($DB) {echo "|$stmtA|\n";} + $rslt=mysql_query($stmtA, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + $userid = mysql_insert_id($linkV); + + $stmtB = "INSERT INTO vtiger_user2role SET userid='$userid',roleid='$roleid';"; + if ($DB) {echo "|$stmtB|\n";} + $rslt=mysql_query($stmtB, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtC = "INSERT INTO vtiger_users2group SET userid='$userid',groupid='$groupid';"; + if ($DB) {echo "|$stmtC|\n";} + $rslt=mysql_query($stmtC, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + $stmtD = "UPDATE vtiger_users_seq SET id='$userid';"; + if ($DB) {echo "|$stmtD|\n";} + $rslt=mysql_query($stmtD, $linkV); + if (!$rslt) {die('Could not execute: ' . mysql_error());} + + echo "$user_name:
    \n"; + echo "$stmtA
    \n"; + echo "$stmtB
    \n"; + echo "$stmtC
    \n"; + echo "$stmtD
    \n"; + echo "
    \n"; + #### END CREATE NEW USER RECORD IN VTIGER + } + + + } +### END User export +########################## + + + + + +echo "DONE\n"; + +exit; + + diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/web_form_forward.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/web_form_forward.php new file mode 100644 index 00000000..529194b4 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/web_form_forward.php @@ -0,0 +1,38 @@ + LICENSE: AGPLv2 +# +# You will need to customize this to your needs +# +# CHANGELOG: +# 80626-1121 - First Build +# 90508-0644 - Changed to PHP long tags +# + +if (isset($_GET["phone_number"])) {$phone_number=$_GET["phone_number"];} +if (isset($_GET["source_id"])) {$source_id=$_GET["source_id"];} +if (isset($_GET["user"])) {$user=$_GET["user"];} + +require("dbconnect.php"); + +$stmt="SELECT full_name from vicidial_users where user='$user';"; +$rslt=mysql_query($stmt, $link); +$row=mysql_fetch_row($rslt); +$fullname=$row[0]; + +$URL = "http://astguiclient.sf.net/test.php?userid=$user&phone=$phone_number&Rep=$fullname&source_id=$source_id"; + +header("Location: $URL"); +#exit; +echo"\n"; +echo"Group1\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"\n"; +echo"click here to continue. . .\n"; +echo"\n"; + + +?> diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome.php new file mode 100644 index 00000000..7879e6e1 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome.php @@ -0,0 +1,26 @@ + LICENSE: AGPLv2 +# + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "




    "; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Welcome
     
    Agent Login
     
    Timeclock
     
    Administration
     
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome_demo.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome_demo.php new file mode 100644 index 00000000..238cf5cf --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome_demo.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



    "; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
     
    \n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    "; +echo "   English Agent Login"; +echo "
    "; +echo "   Spanish Agent Login"; +echo "
    "; +echo "   German Agent Login"; +echo "
    "; +echo "   Italian Agent Login"; +echo "
    "; +echo "   Greek Agent Login"; +echo "
    "; +echo "   French Agent Login"; +echo "
    "; +echo "   Brazillian Portuguese Agent Login"; +echo "
    "; +echo "   Portuguese Agent Login"; +echo "
    "; +echo "   Polish Agent Login"; +echo "
    "; +echo "   Slovak Agent Login"; +echo "
    "; +echo "   Russian Agent Login"; +echo "
    "; +echo "   Dutch Agent Login"; +echo "
    "; +echo "   Chinese(T) Agent Login"; +echo "
    \n"; + +echo "
    \n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    "; +echo "   English Administration"; +echo "
    "; +echo "   Spanish Administration"; +echo "
    "; +echo "   German Administration"; +echo "
    "; +echo "   Italian Administration"; +echo "
    "; +echo "   Greek Administration"; +echo "
    "; +echo "   French Administration"; +echo "
    \n"; +echo "
     
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome_languages.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome_languages.php new file mode 100644 index 00000000..d53707a9 --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/welcome_languages.php @@ -0,0 +1,88 @@ + LICENSE: GPLv2 +# +header ("Content-type: text/html; charset=utf-8"); + +echo "ViciDial Welcome\n"; +echo "\n"; +echo "\n"; +echo "



    "; +echo ""; +echo ""; +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    Welcome! Bienvenue!   Willkommen! Benvenuto! Υποδοχή!
     
    \n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    "; +echo "   English Agent Login"; +echo "
    "; +echo "   Spanish Agent Login"; +echo "
    "; +echo "   German Agent Login"; +echo "
    "; +echo "   Italian Agent Login"; +echo "
    "; +echo "   Greek Agent Login"; +echo "
    "; +echo "   French Agent Login"; +echo "
    "; +echo "   Brazillian Portuguese Agent Login"; +echo "
    "; +echo "   Portuguese Agent Login"; +echo "
    "; +echo "   Polish Agent Login"; +echo "
    "; +echo "   Slovak Agent Login"; +echo "
    "; +echo "   Russian Agent Login"; +echo "
    "; +echo "   Dutch Agent Login"; +echo "
    "; +echo "   Chinese(T) Agent Login"; +echo "
    \n"; + +echo "
    \n"; + +echo ""; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "\n"; +echo "
    "; +echo "   English Administration"; +echo "
    "; +echo "   Spanish Administration"; +echo "
    "; +echo "   German Administration"; +echo "
    "; +echo "   Italian Administration"; +echo "
    "; +echo "   Greek Administration"; +echo "
    "; +echo "   French Administration"; +echo "
    \n"; +echo "
     
    \n"; +echo "\n\n"; +echo "\n\n"; +echo "\n\n"; + +?> \ No newline at end of file diff --git a/agc_2-X/branches/agc_2.2.0/www/vicidial/xml_rpc_audio_server_vicidial.php b/agc_2-X/branches/agc_2.2.0/www/vicidial/xml_rpc_audio_server_vicidial.php new file mode 100644 index 00000000..6fbe6c4a --- /dev/null +++ b/agc_2-X/branches/agc_2.2.0/www/vicidial/xml_rpc_audio_server_vicidial.php @@ -0,0 +1,363 @@ + LICENSE: AGPLv2 +# Copyright (C) 2007 Lenz Emilitri LICENSE: ???? +# +# CHANGES +# 90525-1141 - First build +# 90529-2041 - Added Realtime monitoring +# 91012-0641 - Fixed to work with non-sequential time_ids in the queue_log +# + +// $Id: xmlrpc_audio_server.php,v 1.3 2007/11/12 17:53:09 lenz Exp $ +// +// This is an example of a remote audio XML-RPC server for QueueMetrics. +// In QueueMetrics, calls to this client are activated by entering its URL in +// the 'default.audioRpcServer' property. +// +// In order to make it very easy to customize, you should change the contents of the +// functions 'find_file()' and 'listen_call()' only. You can populate some or all of the +// return fields, according to the data you actually have. As the calling user is passed along, +// it's pretty easy to log who listened to which calls if you need to do it. +// +// +// IMPORTANT: +// in order to run this, you must have the XML_RPC module that comes with the PEAR library +// correctly installed on your PHP server. See http://pear.php.net +// "pear install XML_RPC-1.5.1" +// + + +require_once 'XML/RPC/Server.php'; + + + +// the following variables hold the return status for your file. + +// Listening to a stored call +$FILE_FOUND = false; +$FILE_LISTEN_URL = ""; +$FILE_LENGTH = ""; +$FILE_ENCODING = ""; +$FILE_DURATION = ""; + +// Listening to an ongoing call +$CALL_FOUND = false; +$CALL_LISTEN_URL = ""; +$CALL_POPUP_WIDTH = ""; +$CALL_POPUP_HEIGHT = ""; + + +// +// This function must be implemented by the user. +// +function find_file( $ServerID, $AsteriskID, $QMUserID, $QMUserName ) + { + global $FILE_FOUND; + global $FILE_LISTEN_URL; + global $FILE_LENGTH; + global $FILE_ENCODING; + global $FILE_DURATION; + + require("dbconnect.php"); + require("functions.php"); + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging,queuemetrics_server_ip,queuemetrics_dbname,queuemetrics_login,queuemetrics_pass,queuemetrics_log_id FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + $queuemetrics_server_ip = $row[1]; + $queuemetrics_dbname = $row[2]; + $queuemetrics_login = $row[3]; + $queuemetrics_pass = $row[4]; + $queuemetrics_log_id = $row[5]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $linkB=mysql_connect("$queuemetrics_server_ip", "$queuemetrics_login", "$queuemetrics_pass"); + mysql_select_db("$queuemetrics_dbname", $linkB); + + $stmt="SELECT time_id from queue_log where call_id='$AsteriskID' order by time_id limit 1;"; + $rslt=mysql_query($stmt, $linkB); + if ($DB) {echo "$stmt\n";} + $QM_ql_ct = mysql_num_rows($rslt); + if ($QM_ql_ct > 0) + { + $row=mysql_fetch_row($rslt); + $time_id = $row[0]; + $time_id_end = ($time_id + 14400); + + $lead_id = substr($AsteriskID, -9); + $lead_id = ($lead_id + 0); + $stmt = "SELECT start_epoch,length_in_sec,location from recording_log where start_epoch>=$time_id and start_epoch<=$time_id_end and lead_id='$lead_id' order by recording_id limit 1;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $rl_ct = mysql_num_rows($rslt); + if ($rl_ct > 0) + { + $row=mysql_fetch_row($rslt); + $start_epoch = $row[0]; + $length_in_sec = $row[1]; + $location = $row[2]; + if (strlen($location)>2) + { + $extension = substr($location, strrpos($location, '.') + 1); + if (ereg("mp3|gsm",$extension)) + {$filesize = (2000 * $length_in_sec);} + else + {$filesize = (15660 * $length_in_sec);} + $URLserver_ip = $location; + $URLserver_ip = eregi_replace('http://','',$URLserver_ip); + $URLserver_ip = eregi_replace('https://','',$URLserver_ip); + $URLserver_ip = eregi_replace("\/.*",'',$URLserver_ip); + $stmt="select count(*) from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if ($rowx[0] > 0) + { + $stmt="select recording_web_link,alt_server_ip from servers where server_ip='$URLserver_ip';"; + $rsltx=mysql_query($stmt, $link); + $rowx=mysql_fetch_row($rsltx); + + if (eregi("ALT_IP",$rowx[0])) + { + $location = eregi_replace($URLserver_ip, $rowx[1], $location); + } + } + $FILE_FOUND = true; + $FILE_LISTEN_URL = "$location"; + $FILE_LENGTH = "$filesize"; + $FILE_ENCODING = "$extension"; + $FILE_DURATION = sec_convert($length_in_sec,'H'); + } + else + { + $FILE_FOUND = false; + $FILE_LISTEN_URL = ""; + $FILE_LENGTH = "0"; + $FILE_ENCODING = "wav"; + $FILE_DURATION = "0:00"; + } + } + else + { + $FILE_FOUND = false; + $FILE_LISTEN_URL = ""; + $FILE_LENGTH = "0"; + $FILE_ENCODING = "wav"; + $FILE_DURATION = "0:00"; + } + } + else + { + $FILE_FOUND = false; + $FILE_LISTEN_URL = ""; + $FILE_LENGTH = "0"; + $FILE_ENCODING = "wav"; + $FILE_DURATION = "0:00"; + } + mysql_close($linkB); + } + +# $FILE_FOUND = true; +# $FILE_LISTEN_URL = "http://listennow.server/$ServerID/$AsteriskID/$QMUserID/$QMUserName"; +# $FILE_LENGTH = "125000"; +# $FILE_ENCODING = "mp3"; +# $FILE_DURATION = "1:12"; + } + +function listen_call( $ServerID, $AsteriskID, $Agent, $QMUserID, $QMUserName ) + { + global $CALL_FOUND; + global $CALL_LISTEN_URL; + global $CALL_POPUP_WIDTH; + global $CALL_POPUP_HEIGHT; + + require("dbconnect.php"); + require("functions.php"); + + $CALL_POPUP_WIDTH = "250"; + $CALL_POPUP_HEIGHT = "250"; + + ############################################# + ##### START QUEUEMETRICS LOGGING LOOKUP ##### + $stmt = "SELECT enable_queuemetrics_logging FROM system_settings;"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $qm_conf_ct = mysql_num_rows($rslt); + if ($qm_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $enable_queuemetrics_logging = $row[0]; + } + ##### END QUEUEMETRICS LOGGING LOOKUP ##### + ########################################### + if ($enable_queuemetrics_logging > 0) + { + $stmt = "SELECT user,server_ip,conf_exten,comments FROM vicidial_live_agents where callerid='$AsteriskID';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vla_conf_ct = mysql_num_rows($rslt); + if ($vla_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VLAuser = $row[0]; + $VLAserver_ip = $row[1]; + $VLAconf_exten = $row[2]; + + $stmt = "SELECT campaign_id,phone_number,call_type FROM vicidial_auto_calls where callerid='$AsteriskID';"; + $rslt=mysql_query($stmt, $link); + if ($DB) {echo "$stmt\n";} + $vla_conf_ct = mysql_num_rows($rslt); + if ($vla_conf_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VACcampaign = $row[0]; + $VACphone = $row[1]; + $VACtype = $row[2]; + + $script_name = getenv("SCRIPT_NAME"); + $server_name = getenv("SERVER_NAME"); + $server_port = getenv("SERVER_PORT"); + if (eregi("443",$server_port)) {$HTTPprotocol = 'https://';} + else {$HTTPprotocol = 'http://';} + $admDIR = "$HTTPprotocol$server_name$script_name"; + $admDIR = eregi_replace('xml_rpc_audio_server_vicidial.php','',$admDIR); + $monitor_script = 'QM_live_monitor.php'; + + $CALL_FOUND = true; + $CALL_LISTEN_URL = "$admDIR$monitor_script?campaign=$VACcampaign&user=$VLAuser&server_ip=$VLAserver_ip&session=$VLAconf_exten&phone=$VACphone&type=$VACtype&call=$AsteriskID&QMuser=$QMUserID"; + } + else + { + $CALL_FOUND = false; + $CALL_LISTEN_URL = ""; + } + } + else + { + $CALL_FOUND = false; + $CALL_LISTEN_URL = ""; + } + } + +# $CALL_FOUND = true; +# $CALL_LISTEN_URL = "http://listennow.server/$ServerID/$AsteriskID/$QMUserID/$QMUserName/$Agent"; + } + + +// +// This function does the XML-RPC call handling +// All the PHP's XML-RPC details are handled here. +// +function xmlrpc_find_file( $params ) { + global $FILE_FOUND; + global $FILE_LISTEN_URL; + global $FILE_LENGTH; + global $FILE_ENCODING; + global $FILE_DURATION; + + $p0 = $params->getParam(0)->scalarval(); // server ID + $p1 = $params->getParam(1)->scalarval(); // Asterisk call ID + $p2 = $params->getParam(2)->scalarval(); // QM User ID + $p3 = $params->getParam(3)->scalarval(); // Qm user name + + find_file( $p0, $p1, $p2, $p3 ); + + $response = new XML_RPC_Value(array( + new XML_RPC_Value( $FILE_FOUND, 'boolean' ), + new XML_RPC_Value( $FILE_LISTEN_URL ), + new XML_RPC_Value( $FILE_LENGTH ), + new XML_RPC_Value( $FILE_ENCODING ), + new XML_RPC_Value( $FILE_DURATION ), + ), "array"); + + return new XML_RPC_Response($response); +} + + + + + + + + + + + + + + +function xmlrpc_listen_call( $params ) { + global $CALL_FOUND; + global $CALL_LISTEN_URL; + global $CALL_POPUP_WIDTH; + global $CALL_POPUP_HEIGHT; + + $p0 = $params->getParam(0)->scalarval(); // server ID + $p1 = $params->getParam(1)->scalarval(); // asterisk call ID + $p2 = $params->getParam(2)->scalarval(); // agent code + $p3 = $params->getParam(3)->scalarval(); // QM user ID + $p4 = $params->getParam(3)->scalarval(); // QM user name + + listen_call( $p0, $p1, $p2, $p3, $p4 ); + + $response = new XML_RPC_Value(array( + new XML_RPC_Value( $CALL_FOUND, 'boolean' ), + new XML_RPC_Value( $CALL_LISTEN_URL ), + new XML_RPC_Value( $CALL_POPUP_WIDTH, 'int' ), + new XML_RPC_Value( $CALL_POPUP_HEIGHT, 'int' ), + ), "array"); + + return new XML_RPC_Response($response); +} + + + +// +// Instantiates a very simple XML-RPC audio server for QueueMetrics +// +$server = new XML_RPC_Server( + array( + 'QMAudio.findStoredFile' => array( + 'function' => 'xmlrpc_find_file' + ), + 'QMAudio.listenOngoingCall' => array( + 'function' => 'xmlrpc_listen_call' + ), + 'QMAudio.listenOngoingCallOutbound' => array( + 'function' => 'xmlrpc_listen_call' + ), + + ), + 1 // serviceNow +); + + +// $Log: xmlrpc_audio_server.php,v $ +// Revision 1.3 2007/11/12 17:53:09 lenz +// Bug #182: queue direction for inbound/outbound call listen. +// +// Revision 1.2 2007/05/12 20:45:06 lenz +// Merge IMM4 +// +// Revision 1.1.2.1 2007/04/03 17:43:06 lenz +// Prima versione. +// +// +// +// + +?>